--- gcc-3.4-3.4.3.orig/debian/fixincludes.in +++ gcc-3.4-3.4.3/debian/fixincludes.in @@ -0,0 +1,8 @@ +#! /bin/sh + +PATH="/@LIBEXECDIR@/install-tools:$PATH" + +TARGET_MACHINE=`dpkg-architecture -qDEB_HOST_GNU_TYPE` +export TARGET_MACHINE + +exec fixinc.sh "$@" --- gcc-3.4-3.4.3.orig/debian/gij-wrapper.1 +++ gcc-3.4-3.4.3/debian/gij-wrapper.1 @@ -0,0 +1,22 @@ +.TH GIJ-WRAPPER 1 "August 11, 2001" gij-wrapper "Java User's Manual" +.SH NAME +gij-wrapper \- a wrapper around gij + +.SH SYNOPSIS +gij-wrapper [\fB\s-1OPTION\s0\fR] ... \fI\s-1JARFILE\s0\fR [\fI\s-1ARGS\s0\fR...] +.PP +gij-wrapper [\fB\-jar\fR] [\fB\s-1OPTION\s0\fR] ... \fI\s-1CLASS\s0\fR [\fI\s-1ARGS\s0\fR...] + +.SH DESCRIPTION + +\fBgij-wrapper\fR is a wrapper around gij(1) to be called as the java +interpreter. Options different for java(1) and gij(1) are translated, +options unknown to gij(1) are silently ignored. + +.SH OPTIONS +See gij-3.3(1) for a list of options that gij understands. + +.SH "SEE ALSO" +.BR gij-3.3(1) +, +.BR java(1) --- gcc-3.4-3.4.3.orig/debian/logwatch.sh +++ gcc-3.4-3.4.3/debian/logwatch.sh @@ -0,0 +1,104 @@ +#! /bin/sh + +# script to trick the build daemons and output something, if there is +# still test/build activity + +# $1: primary file to watch. if there is activity on this file, we do nothing +# $2+: files to watch to look for activity despite no output in $1 +# if the files are modified or are newly created, then the message +# is printed on stdout. +# if nothing is modified, don't output anything (so the buildd timeout +# hits). + +pidfile=logwatch.pid +timeout=3600 +message='\nlogwatch still running\n' + +usage() +{ + echo >&2 "usage: `basename $0` [-p ] [-t ] [-m ]" + echo >&2 " [ ...]" + exit 1 +} + +while [ $# -gt 0 ]; do + case $1 in + -p) + pidfile=$2 + shift + shift + ;; + -t) + timeout=$2 + shift + shift + ;; + -m) + message="$2" + shift + shift + ;; + -*) + usage + ;; + *) + break + esac +done + +[ $# -gt 0 ] || usage + +logfile="$1" +shift +otherlogs="$@" + +cleanup() +{ + rm -f $pidfile + exit 0 +} + +trap cleanup 0 1 3 15 + +echo $$ > $pidfile + +update() +{ + _logvar=$1 + _othervar=$2 + + # logfile may not exist yet + if [ -r $logfile ]; then + _logtail="`tail -10 $logfile | md5sum` $f" + else + _logtail="does not exist: $logfile" + fi + eval $_logvar="'$_logtail'" + + _othertails='' + for f in $otherlogs; do + if [ -r $f ]; then + _othertails="$_othertails `tail -10 $f | md5sum` $f" + else + _othertails="$_othertails does not exist: $f" + fi + done + eval $_othervar="'$_othertails'" +} + +update logtail othertails +while true; do + sleep $timeout + update newlogtail newothertails + if [ "$logtail" != "$newlogtail" ]; then + # there is still action in the primary logfile. do nothing. + logtail="$newlogtail" + elif [ "$othertails" != "$newothertails" ]; then + # there is still action in the other log files, so print the message + /bin/echo -e $message + othertails="$newothertails" + else + # nothing changed in the other log files. maybe a timeout ... + : + fi +done --- gcc-3.4-3.4.3.orig/debian/gcj-wrapper +++ gcc-3.4-3.4.3/debian/gcj-wrapper @@ -0,0 +1,89 @@ +#!/usr/bin/perl -w +# +# Starts the GNU Java compiler. +# +# Command-line arguments should be in the style of Sun's Java compiler; +# these will be converted to gcj arguments before being passed to the +# gcj itself. +# +# Copyright (C) 2002-2003 by Ben Burton +# Based on the original gcj-wrapper-3.2 shell script. + +use strict; + +# The real Java compiler: +my $javaCompiler = '/usr/bin/gcj-3.4'; + +# The command-line arguments to pass to the real Java compiler: +my @commandLine; + +# The warning flags to pass to the GNU Java compiler: +my $warnings = '-Wall'; + +# Build the command-line from the arguments given. +my $parsingOptions = 1; +my $copyNextArg = 0; +my $ignoreNextArg = 0; +my $appendNextArg = ''; +foreach my $arg (@ARGV) { + # See if we already know what to do with this argument. + if ($ignoreNextArg) { + # Throw it away. + $ignoreNextArg = 0; + next; + } elsif ($copyNextArg or not $parsingOptions) { + # Copy it directly. + push @commandLine, $arg; + $copyNextArg = 0; + next; + } elsif ($appendNextArg) { + # Append it to $appendNextArg and then copy directly. + push @commandLine, ($appendNextArg . $arg); + $appendNextArg = ''; + next; + } + + # Try to interpret Sun-style options. + if ($arg eq '-version') { + push @commandLine, '--version'; + } elsif ($arg eq '-h' or $arg eq '-help') { + push @commandLine, '--help'; + } elsif ($arg eq '-classpath' or $arg eq '--classpath' or $arg eq '--cp') { + $appendNextArg = '--classpath='; + } elsif ($arg eq '-encoding' or $arg eq '-bootclasspath' or + $arg eq '-extdirs') { + $appendNextArg = '-' . $arg . '='; + } elsif ($arg eq '-d') { + push @commandLine, '-d'; + $copyNextArg = 1; + } elsif ($arg eq '-nowarn') { + $warnings = ''; + } elsif ($arg =~ /^-g/) { + # Some kind of debugging option - just switch debugging on. + push @commandLine, '-g' if ($arg ne '-g:none'); + } elsif ($arg eq '-O') { + push @commandLine, '-O2'; + } elsif ($arg =~ /^-X/) { + # An extended Sun option (which we don't support). + push @commandLine, '--help' if ($arg eq '-X'); + } elsif ($arg eq '-source' or $arg eq '-sourcepath' or $arg eq '-target') { + # An unsupported option with a following argument. + $ignoreNextArg = 1; + } elsif ($arg =~ /^-/) { + # An unsupported standalone option. + } else { + # Some non-option argument has been given. + # Stop parsing options at this point. + push @commandLine, $arg; + $parsingOptions = 0; + } +} + +# Was there a partial argument that was never completed? +push @commandLine, $appendNextArg if ($appendNextArg); + +# Call the real Java compiler. +my @fullCommandLine = ( $javaCompiler, '-C' ); +push @fullCommandLine, $warnings if ($warnings); +push @fullCommandLine, @commandLine; +exec @fullCommandLine or exit(1); --- gcc-3.4-3.4.3.orig/debian/rename-pkgs.sh +++ gcc-3.4-3.4.3/debian/rename-pkgs.sh @@ -0,0 +1,32 @@ +#! /bin/bash + +rename_pkg() +{ + src=$1 + dest=$2 + for ext in preinst postinst prerm postrm doc-base; do + if [ -f $src.$ext ]; then + if [ -f $dest.ext ]; then + echo already exists: $dest.$ext + else + echo "$src.$ext --> $dest.$ext" + svn rename $src.$ext $dest.$ext + #mv $src.$ext $dest.$ext + fi + fi + done +} + +v_new=3.4 +v_old=3.3 + +for p in chill cpp gcc g++ g77 gpc gij gcj gobjc protoize treelang; do + rename_pkg $p-$v_old $p-$v_new +done + +for p in cpp gcc g77 gnat; do + rename_pkg $p-$v_old-doc $p-$v_new-doc +done + +rename_pkg gcc-$v_old-base gcc-$v_new-base +rename_pkg gcc-$v_old-sparc64 gcc-$v_new-sparc64 --- gcc-3.4-3.4.3.orig/debian/compat +++ gcc-3.4-3.4.3/debian/compat @@ -0,0 +1 @@ +4 --- gcc-3.4-3.4.3.orig/debian/gcjh-wrapper.1 +++ gcc-3.4-3.4.3/debian/gcjh-wrapper.1 @@ -0,0 +1,20 @@ +.TH GCJH-WRAPPER 1 "June 6, 2002" gcjh-wrapper "Java User's Manual" +.SH NAME +gcjh-wrapper \- a wrapper around gcjh + +.SH SYNOPSIS +gcjh-wrapper [\fB\s-1OPTION\s0\fR] ... [\fI\s-1ARGS\s0\fR...] + +.SH DESCRIPTION + +\fBgcjh-wrapper\fR is a wrapper around gcjh(1) to be called as the java header +compiler. Options different for javah(1) and gcjh(1) are translated, +options unknown to gcjh(1) are silently ignored. + +.SH OPTIONS +See gcjh-3.3(1) for a list of options that gcj understands. + +.SH "SEE ALSO" +.BR gcjh-3.3(1) +, +.BR javah(1) --- gcc-3.4-3.4.3.orig/debian/gnat.1 +++ gcc-3.4-3.4.3/debian/gnat.1 @@ -0,0 +1,39 @@ +.\" Hey, Emacs! This is an -*- nroff -*- source file. +.\" +.\" Copyright (C) 1996 Erick Branderhorst +.\" +.\" This 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. +.\" +.\" This 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 with +.\" your Debian GNU/Linux system, in /usr/doc/copyright/GPL, or with the +.\" dpkg source package as the file COPYING. If not, write to the Free +.\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +.\" +.\" +.TH "GNAT TOOLBOX" 1 "Jun 2002" "Debian Project" "Debian Linux" +.SH NAME +gnat, gnatbind, gnatbl, gnatchop, gnatfind, gnatkr, gnatlink, +gnatls, gnatmake, gnatprep, gnatpsta, gnatpsys, gnatxref \- +GNAT toolbox +.SH DESCRIPTION +Those programs are part of GNU GNAT 3.4, a freely available Ada 95 compiler. +.PP +For accessing the full GNAT manuals, use +.B info gnat-ug-3.4 +and +.B info gnat-rm-3.4 +for the sections related to the reference manual. If those sections cannot +be found, you will have to install the gnat-3.4-doc package as well. +.SH SEE ALSO +.BR gcc-3.4 (1) +.SH AUTHOR +This manpage has been written by Samuel Tardieu , for the +Debian GNU/Linux project. --- gcc-3.4-3.4.3.orig/debian/dh_rmemptydirs +++ gcc-3.4-3.4.3/debian/dh_rmemptydirs @@ -0,0 +1,10 @@ +#! /bin/sh -e + +pkg=`echo $1 | sed 's/^-p//'` + +: # remove empty directories, when all components are in place +for d in `find debian/$pkg -depth -type d -empty 2> /dev/null`; do \ + while rmdir $d 2> /dev/null; do d=`dirname $d`; done; \ +done + +exit 0 --- gcc-3.4-3.4.3.orig/debian/README.libf2c +++ gcc-3.4-3.4.3/debian/README.libf2c @@ -0,0 +1,8 @@ +Building libraries and executables dependent on libg2c +====================================================== + +The header file for the g2c library is specific to the compiler +version used and therefore is included in the g77-X.Y package. + +If you use the g2c header and libraries without using g77, +make sure you have the g77 package installed. --- gcc-3.4-3.4.3.orig/debian/README.C++ +++ gcc-3.4-3.4.3/debian/README.C++ @@ -0,0 +1,47 @@ +libstdc++ is an implementation of the Standard C++ Library, including the +Standard Template Library (i.e. as specified by ANSI and ISO). + +Some notes on porting applications from libstdc++-2.90 (or earlier versions) +to libstdc++-v3 can be found in the libstdc++3-doc package. After the +installation of the package, look at: + +file://usr/share/doc/gcc-3.4-base/libstdc++/html/17_intro/porting-howto.html + +On Debian GNU/Linux you find additional documentation in the +libstdc++6-doc and stl-manual packages. After installing these packages, +point your browser to + + file://localhost/usr/share/doc/libstdc++6-doc/libstdc++/html/index.html + + file://localhost/usr/share/doc/stl-manual/html/index.html + +Other documentation can be found: + + http://www.cs.rpi.edu/~musser/stl.html + http://www.sgi.com/tech/stl/ + http://www.dinkumware.com/htm_cpl/ + +with a good, recent, book on C++. + +A great deal of useful C++ documentation can be found in the C++ FAQ-Lite, +maintained by Marshall Cline . It can be found at the +following locations (this list was last updated on 2000/11/19): + +USA: http://www.cerfnet.com/~mpcline/c++-faq-lite/ + +Canada: http://new-brunswick.net/workshop/c++/faq + +Finland: http://www.utu.fi/~sisasa/oasis/cppfaq/ + +France: http://caor.ensmp.fr/FAQ/c++-faq-lite/ + +Germany: http://www.informatik.uni-konstanz.de/~kuehl/cpp/cppfaq.htm + +Spain: http://geneura.ugr.es/~jmerelo/c++-faq/ + +Taiwan: http://www.cis.nctu.edu.tw/c++/C++FAQ-English/ + +U.K.: http://www.cs.bham.ac.uk/~jdm/CPP/index.html + + +Please send updates to this list as bug report for the g++ package. --- gcc-3.4-3.4.3.orig/debian/protoize.1 +++ gcc-3.4-3.4.3/debian/protoize.1 @@ -0,0 +1,42 @@ +.TH PROTOIZE 1 +.\" NAME should be all caps, SECTION should be 1-8, maybe w/ subsection +.\" other parms are allowed: see man(7), man(1) +.SH NAME +protoize, unprotoize \- create/remove ANSI prototypes from C code +.SH SYNOPSIS +.B protoize +.I "[options] files ...." +.br +.B unprotoize +.I "[options] files ...." +.SH "DESCRIPTION" +This manual page documents briefly the +.BR protoize , +and +.B unprotoize +commands. +This manual page was written for the Debian GNU/Linux distribution +(but may be used by others), because the original program does not +have a manual page. +Instead, it has documentation in the GNU Info format; see below. +.PP +.B protoize +is an optional part of GNU C. You can use it to add prototypes to a +program, thus converting the program to ANSI C in one respect. The companion +program `unprotoize' does the reverse: it removes argument types from +any prototypes that are found. +.PP +When you run these programs, you must specify a set of source files +as command line arguments. +.SH OPTIONS +These programs are non-trivial to operate, and it is neither possible nor +desirable to properly summarize options in this man page. Read the info +documentation for more information. +.SH "SEE ALSO" +The programs are documented fully by +.IR "Gcc: The use and the internals of the GNU compiler", +available via the Info system. The documentation for protoize/unprotoize +can be found in the subsection "Invoking GCC", under "Running Protoize." +.SH AUTHOR +This manual page was written by Galen Hazelwood, +for the Debian GNU/Linux system. --- gcc-3.4-3.4.3.orig/debian/gcjh-wrapper +++ gcc-3.4-3.4.3/debian/gcjh-wrapper @@ -0,0 +1,86 @@ +#!/usr/bin/perl -w +# +# Starts the GNU Java header generator. +# +# Command-line arguments should be in the style of Sun's javah command; +# these will be converted to gcjh arguments before being passed to the +# gcjh itself. +# +# Copyright (C) 2003 by Peter Hawkins +# Haphazardly hacked up based on the gcj-wrapper perl script. +# Copyright (C) 2002-2003 by Ben Burton +# Based on the original gcj-wrapper-3.2 shell script. + +use strict; + +# The real Java header generator: +my $javaHeaderGen = '/usr/bin/gcjh-3.4'; + +# The command-line arguments to pass to the real Java compiler: +my @commandLine; + +# Build the command-line from the arguments given. +my $parsingOptions = 1; +my $copyNextArg = 0; +my $ignoreNextArg = 0; +my $appendNextArg = ''; +foreach my $arg (@ARGV) { + # See if we already know what to do with this argument. + if ($ignoreNextArg) { + # Throw it away. + $ignoreNextArg = 0; + next; + } elsif ($copyNextArg or not $parsingOptions) { + # Copy it directly. + push @commandLine, $arg; + $copyNextArg = 0; + next; + } elsif ($appendNextArg) { + # Append it to $appendNextArg and then copy directly. + push @commandLine, ($appendNextArg . $arg); + $appendNextArg = ''; + next; + } + + # Try to interpret Sun-style options. + if ($arg eq '-version') { + push @commandLine, '--version'; + } elsif ($arg eq '-h' or $arg eq '-help') { + push @commandLine, '--help'; + } elsif ($arg eq '-verbose') { + push @commandLine, '--verbose'; + } elsif ($arg eq '-classpath' or $arg eq '--classpath' or $arg eq '--cp') { + $appendNextArg = '--classpath='; + } elsif ($arg eq '-encoding' or $arg eq '-bootclasspath' or + $arg eq '-extdirs') { + $appendNextArg = "-".$arg . '='; + } elsif ($arg eq '-d') { + push @commandLine, '-d'; + $copyNextArg = 1; + } elsif ($arg eq '-o') { + push @commandLine, '-o'; + $copyNextArg = 1; + } elsif ($arg eq '-stubs') { + push @commandLine, '-stubs'; + } elsif ($arg eq '-jni') { + push @commandLine, '-jni'; + } elsif ($arg =~ /^-old/) { + # An extended Sun option (which we don't support). + push @commandLine, '--help' if ($arg eq '-old'); + } elsif ($arg =~ /^-/) { + # An unsupported standalone option. + } else { + # Some non-option argument has been given. + # Stop parsing options at this point. + push @commandLine, $arg; + $parsingOptions = 0; + } +} + +# Was there a partial argument that was never completed? +push @commandLine, $appendNextArg if ($appendNextArg); + +# Call the real Java header generator. +my @fullCommandLine = ( $javaHeaderGen ); +push @fullCommandLine, @commandLine; +exec @fullCommandLine or exit(1); --- gcc-3.4-3.4.3.orig/debian/reduce-test-diff.awk +++ gcc-3.4-3.4.3/debian/reduce-test-diff.awk @@ -0,0 +1,33 @@ +#! /usr/bin/gawk -f + +BEGIN { + skip=0 + warn=0 +} + +/^-(FAIL|ERROR|UNRESOLVED|WARNING)/ { + next +} + +# only compare gcc, g++, g77 and objc results +/=== treelang tests ===/ { + skip=1 +} + +# omit extra files appended to test-summary +/^\+Compiler version/ { + skip=1 +} + +skip == 0 { + print + next +} + +/^\+(FAIL|ERROR|UNRESOLVED|WARNING)/ { + warn=1 +} + +END { + exit warn +} --- gcc-3.4-3.4.3.orig/debian/fastjar.postinst +++ gcc-3.4-3.4.3/debian/fastjar.postinst @@ -0,0 +1,15 @@ +#! /bin/sh -e + +if [ -f /usr/share/info/fastjar.info.gz ]; then + install-info --quiet --section "Development" "Development" \ + /usr/share/info/fastjar.info.gz +else + # GFDL invariant free + true +fi + +update-alternatives --quiet --install /usr/bin/jar jar /usr/bin/fastjar 33 \ + --slave /usr/share/man/man1/jar.1.gz jar.1.gz /usr/share/man/man1/fastjar.1.gz \ +|| true + +#DEBHELPER# --- gcc-3.4-3.4.3.orig/debian/gccbug.1 +++ gcc-3.4-3.4.3/debian/gccbug.1 @@ -0,0 +1,178 @@ +.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13 +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sh \" Subsection heading +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. | will give a +.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to +.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' +.\" expand to `' in nroff, nothing in troff, for use with C<>. +.tr \(*W-|\(bv\*(Tr +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.\" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.hy 0 +.if n .na +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "GCCBUG 1" +.TH GCCBUG 1 "2003-06-03" "gcc-3.4" "GNU" +.SH "NAME" +gccbug \- Reporting GCC Bugs +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +gccbug + [ \fB\-\-cc\fR \fImail-address\fR ] + [ \fB\-\-version\fR ] | [ \fB\-\-help\fR ] +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +\&\fBgccbug\fR is a version of \s-1GNU\s0 \s-1GNATS\s0 send-pr configured for \s-1GCC\s0 bug +reporting. +.PP +Invoking \fBgccbug\fR calls the editor named in your environment +variable \fB\s-1VISUAL\s0\fR or \fB\s-1EDITOR\s0\fR on a problem report template. +.PP +Your bug reports play an essential role in making \s-1GCC\s0 reliable. However +since the maintainers are very overloaded, please first make sure that: +.IP "\(bu" 4 +The problem is not already known. See +<\fBhttp://gcc.gnu.org/bugs.html#known\fR> for a list of known bugs. +If it isn't known, then you should report the problem. +.Sp +You can browse the bug database for bugs reported at +<\fBhttp://gcc.gnu.org/cgi\-bin/gnatsweb.pl\fR>. +.IP "\(bu" 4 +You include the information that makes for fixing the bug. See +<\fBhttp://gcc.gnu.org/bugs.html#report\fR> for bug reporting instructions. +.SH "OPTIONS" +.IX Header "OPTIONS" +.IP "\fB\-\-cc\fR \fImail-address\fR" 4 +.IX Item "--cc mail-address" +Specifies the mail-address to which the \s-1PR\s0 should be carbon\-copied. +.IP "\fB\-\-version\fR" 4 +.IX Item "--version" +Displays the \fBgccbug\fR version number and a usage summary. No mail +is sent. +.IP "\fB\-\-help\fR" 4 +.IX Item "--help" +Displays a usage summary for \fBgccbug\fR. No mail is sent. +.PP +\&\fBgccbug\fR has more (undocumented) options, which may be +unsupported by a future \s-1GCC\s0 bug tracking system. +.SH "SEE ALSO" +.IX Header "SEE ALSO" +\&\fIgcc\fR\|(1), \fIsend\-pr\fR\|(1), \fIsend\-pr\fR\|(8), the info entries for \fIgcc\fR (node Bugs), +and the online pages at <\fBhttp://gcc.gnu.org/bugs.html\fR>. --- gcc-3.4-3.4.3.orig/debian/libffi.preinst +++ gcc-3.4-3.4.3/debian/libffi.preinst @@ -0,0 +1,9 @@ +#! /bin/sh -e + +if [ -h /usr/share/doc/libffi2 ]; then + rm -f /usr/share/doc/libffi2 +else + true +fi + +#DEBHELPER# --- gcc-3.4-3.4.3.orig/debian/gcj-wrapper.1 +++ gcc-3.4-3.4.3/debian/gcj-wrapper.1 @@ -0,0 +1,20 @@ +.TH GCJ-WRAPPER 1 "June 6, 2002" gcj-wrapper "Java User's Manual" +.SH NAME +gcj-wrapper \- a wrapper around gcj + +.SH SYNOPSIS +gcj-wrapper [\fB\s-1OPTION\s0\fR] ... [\fI\s-1ARGS\s0\fR...] + +.SH DESCRIPTION + +\fBgcj-wrapper\fR is a wrapper around gcj(1) to be called as the java +compiler. Options different for javac(1) and gcj(1) are translated, +options unknown to gcj(1) are silently ignored. + +.SH OPTIONS +See gcj-3.3(1) for a list of options that gcj understands. + +.SH "SEE ALSO" +.BR gcj-3.3(1) +, +.BR javac(1) --- gcc-3.4-3.4.3.orig/debian/README.patches +++ gcc-3.4-3.4.3/debian/README.patches @@ -0,0 +1,30 @@ +Patches applied to the Debian version of egcs +--------------------------------------------- + +Debian specific patches can be found in the debian/patches directory. +Each patch is accompanied by a shell script to apply and unapply the +patch: + +- The script can be found in the debian/patches directory and is called + .dpatch. +- The shell script is called by the debian/rules file with the option + '-patch' to apply the patch and and with '-unpatch' to unapply + the patch. The working directory is the source directory. +- The shell script returns 0 on success and 1 on failure when + (un)applying the patch. The patch program itself should be called with + --force to prevent questions. +- debian/rules creates a file patched- in the source + directory when applying the patch and removes this file when + unapplying the patch. + +Besides the patches, the following add-ons were included: + +- gpc (unpacked from gpc-19990118.tar.gz) + ftp://agnes.dida.physik.uni-essen.de/gnu-pascal/beta/gpc-19990118.tar.gz + +If these package(s) aren't found in the gcc source directory, it's +assumed that the tarball(s) can be found in the parent directory. See +debian/rules for more details. + +Before making a source package, these packages need to be unpacked. +You can use "debian/rules unpack-addons". --- gcc-3.4-3.4.3.orig/debian/README.cross +++ gcc-3.4-3.4.3/debian/README.cross @@ -0,0 +1,134 @@ +Building cross-compiler Debian packages +--------------------------------------- + +It is possible to build C and C++ cross compilers and support libraries +from gcc-3.4 source package. This document describes how to do so. +Cross-compiler build support is not perfect yet, please send fixes +and improvements to debian-gcc@lists.debian.org + +Before you start, you should probably check available pre-built +cross-toolchain debs. At the time of writing (Jul 2004) those are +available from + http://zigzag.lvk.cs.msu.su/~nikita/debian/ +If they are no longer there, you may check EmDebian web site at + http://emdebian.sf.net/ +or ask debian-embedded@lists.debian.org for newer location. + + +0. What's wrong with toolchain-source approach + +Package toolchain-source contains sources for binutils and gcc, as well as +some support scripts to build cross-compiler packages. They seem to work. + +However, there is one fundamental problem with this approach. +Gcc package is actively maintained and frequently updated. These updates +do contain bug fixes and improvements, especially for non-x86 architectures. +Cross-compilers built using toolchain-source will not get those fixes unless +toolchain-source package is updated after each binutils and gcc update. +The later is not hapenning in real life. For example, toolchain-source +was upgraded from gcc-3.2 to gcc-3.3 half a year later than gcc-3.3 became +Debian default compiler. + +Keeping toolchain-source package up-to-date requires lots of work, and seems +to be a waste of time. It is much better to build cross-compilers directly +from gcc source package. + + +1. What is needed to build a cross-compiler from gcc-3.4 source + +1.1. dpkg-cross package + +Dpkg-cross package contains several tools to manage cross-compile environment. + +It can convert native debian library and lib-dev packages for the target +architecture to binary-all packages that keep libraries and headers under +/usr/$(TARGET)/. + +Also it contains helper tools for cross-compiling debian packages. Some of +these tools are used while building libgcc1 and libstdc++ library packages. +The resulting library packages follow the same convensions as library packages +converted by dpkg-cross. + +Currently, at least version 1.18 of dpkg-cross is needed for cross-gcc +package build. + +1.2. cross-binutils for the target + +You need cross-binutils for your target to build cross-compiler. +Binutils-multiarch package will not work because it does not provide cross- +assemblers. + +If you don't want to use pre-built cross-binutils packages, you may build +your own from binutils debian source package, using patches posted to +bug #231707. Please use the latest of patch versions available there. + +Alternatively, you may use toolchain-source package to build cross-binutils +(but in this case you will probably also want to use toolchain-source +to build cross-compiler itself). However, multilib'ed cross-compilers may +not build or work with these binutils. + +1.3. libc for target + +You also need libc library and development packages for the target +architecture installed. + +To get those, download linux-kernel-headers, libdb1-compat, libc6, +and libc6-dev binary debs for your target, convert those using +dpkg-cross -b, and install resulting -arch-cross debs. Consult dpkg-cross +manual page for more information. + +Building with/for alternative libc's is not supported yet (but this is in +TODO). + +Note that if you plan to use your cross-toolchain to develop kernel drivers +or similar low-level things, you will probably also need kernel headers +for the exact kernel version that your target hardware uses. + + +2. Building cross-compiler packages + +Get gcc-3.4 source package. + +Unpack it using dpkg-source -x, and cd to the package directory. + +Set GCC_TARGET environment variable to the target architectire name. Note +that currently you should use debian architecture name (i.e 'powerpc' or 'arm'), +not GNU system type (i.e. 'powerpc-linux' or 'arm-linux'). Setting GCC_TARGET +to GNU system type will cause cross-compiler build to fail. + +Instead of setting GCC_TARGET, target architecture name may be put into +debian/target file. If both GCC_TARGET is defined and debian/target file +exists, GCC_TARGET is used. + +Run debian/rules control. This will change debian/control file, adjusting +build-depends. + +Build the package using dpkg-buildpackage. + + +3. Using crosshurd + +Jeff Bailey suggests alternate way to setup +environment to build cross-compiler, using 'crosshurd' package. +Crosshurd is like debootstrap but cross-arch, and works on the Hurd, +Linux and FreeBSD. (The name is historical). + +If you setup your environment with crosshurd, you will need to fix symlinks +in lib and usr/lib to be relative instead of absolute. For example: + +lrwxrwxrwx 1 root root 20 2004-05-06 23:02 libcom_err.so -> /lib/libcom_err.so.2 + +Needs to be changed to: + +lrwxrwxrwx 1 root root 20 2004-05-06 23:02 libcom_err.so -> ../../lib/libcom_err.so.2 + +Also, if you choose this method, set the environment variable 'with_sysroot' +to point to the ABSOLUTE PATH where the crosshurd was done. + +Note however that build-depends of cross-gcc and dependencies in generated +libgcc1 and libstdc++ packages assume that you use dpkg-cross to set up +your environment, and may be wrong or incomplete if you use alternate methods. +But probably you don't care. + +-- +Nikita V. Youshchenko --- gcc-3.4-3.4.3.orig/debian/rules.patch +++ gcc-3.4-3.4.3/debian/rules.patch @@ -0,0 +1,188 @@ +# -*- makefile -*- +# rules to patch the unpacked files in the source directory +# --------------------------------------------------------------------------- +# various rules to unpack addons and (un)apply patches. +# - patch / apply-patches +# - unpatch / reverse-patches + +.NOTPARALLEL: + +patchdir = debian/patches + +# which patches should be applied? +debian_patches = \ + cvs-updates \ + gcc-version \ + gcc-textdomain \ + rename-info-files \ + libstdc++-pic \ + libstdc++-doclink \ + amd64-specs \ + gccbug \ + gccbug-posix \ + hppa-toplevel hppa-libffi hppa-libjava hppa-libjava-update \ + fastjar-update \ + java-gui-branch \ + boehm-gc-nocheck \ + libltdl \ + pr19311 \ + +# cvs-updates \ +# disable-gnat-testsuite \ + +ifeq ($(with_oldcxxabi),yes) + debian_patches += libstdc++-soname cxx-abi-version-1 +endif + +ifeq ($(with_multiarch),yes) + debian_patches += multiarch-include +endif + +ifeq ($(with_java),yes) + debian_patches += gcj-without-rpath +endif + +debian_patches += libffi-soversion # package disabled, but patch needed +ifeq ($(with_libffi),yes) + #debian_patches += libffi-soversion + ifneq ($(with_java),yes) + debian_patches += libffi-without-libgcj + endif +endif + +ifeq ($(with_proto),yes) + debian_patches += deb-protoize +endif + +ifeq ($(with_objc),yes) + debian_patches += # libobjc +endif + +ifeq ($(with_ada),yes) + ifeq ($(with_libgnat),yes) + debian_patches += ada-link-lib + endif + debian_patches += ada-gcc-name #ada-names +endif + +ifeq ($(with_pascal),yes) + debian_patches += gpc-3.x gpc-updates gpc-parse gpc-dwarf2out-update + debian_patches += gpc-names gpc-profiled gpc-lang-update + ifneq ($(with_gpidump),yes) + debian_patches += gpc-no-gpidump + endif +endif + +ifeq ($(DEB_TARGET_GNU_SYSTEM),gnu) + debian_patches += hurd-changes +endif + +ifeq ($(DEB_TARGET_ARCH),amd64) + debian_patches += amd64-biarch # amd64-multilib +endif +ifeq ($(DEB_TARGET_GNU_CPU),m32r) + debian_patches += autoreconf m32r-gotoff m32r-stack m32r-libffi m32r-fixes m32r-limits +endif +ifeq ($(DEB_TARGET_GNU_CPU),alpha) + debian_patches += # alpha-ieee +endif + +ifeq ($(DEB_TARGET_GNU_CPU),arm) + debian_patches += libstdc++-soname +endif +ifeq ($(DEB_TARGET_GNU_CPU),i386) + ifeq ($(DEB_TARGET_GNU_SYSTEM),gnu) + debian_patches += cpu-default-i586 + else + debian_patches += cpu-default-i486 + endif +endif +ifeq ($(DEB_TARGET_GNU_CPU),ia64) + debian_patches += +endif +ifeq ($(DEB_TARGET_GNU_CPU), $(findstring $(DEB_TARGET_GNU_CPU),mips mipsel)) + debian_patches += libffi-mips libjava-mips libstdc++-mips-atomic #autoreconf +endif +ifeq ($(DEB_TARGET_GNU_CPU)-$(biarch),i386-yes) + debian_patches += i386-biarch +endif +ifeq ($(DEB_TARGET_GNU_CPU),powerpc) + debian_patches += #powerpc-config-ml powerpc-biarch +endif +ifeq ($(DEB_TARGET_GNU_CPU)-$(biarch),s390-yes) + debian_patches += s390-biarch s390-config-ml +endif +ifeq ($(DEB_TARGET_GNU_CPU),sparc) + ifeq ($(biarch),yes) + debian_patches += sparc-biarch sparc-config-ml + endif +endif + +ifeq ($(DEB_TARGET_GNU_SYSTEM),kfreebsd-gnu) + debian_patches += kbsd-gnu +endif +ifeq ($(DEB_TARGET_GNU_SYSTEM),knetbsd-gnu) + debian_patches += kbsd-gnu +endif + +ifeq ($(DEB_TARGET_GNU_SYSTEM),netbsd-elf-gnu) + debian_patches += # netbsd-all-gcc netbsd-archs-gcc +endif + +ifdef DEB_CROSS + debian_patches += cross-configure +endif + +# not applied by default +#debian_patches += protector + +debian_patches += link-libs reporting + + +patch: $(patch_stamp) +$(patch_stamp): $(unpack_stamp) pre-patch \ + $(foreach p,$(debian_patches),$(patch_stamp)-$(p)) + echo -e "\nPatches that Debian applied in this version:" > pxxx + for i in $(debian_patches); do \ + echo -e "\n$$i:" >> pxxx; \ + sed -n 's/^# *DP: */ /p' $(patchdir)/$$i.dpatch >> pxxx; \ + done + mv -f pxxx $@ + +pre-patch: + @if [ -x /usr/bin/automake-1.4 ]; then \ + : ; \ + else \ + mkdir -p $(PWD)/bin; \ + ln -sf /usr/bin/automake $(PWD)/bin/automake-1.4; \ + fi + +unpatch: + for stamp in none `ls -1t $(patch_stamp)-*`; do \ + case "$$stamp" in none|patched-stamp|patched-\*) continue; esac; \ + patch=`echo $$stamp | sed -e 's,$(patch_stamp)-,,'`; \ + echo "trying to revert patch $$patch ..."; \ + if [ -x $(patchdir)/$$patch.dpatch ]; then true; else \ + chmod +x $(patchdir)/$$patch.dpatch; fi; \ + if $(patchdir)/$$patch.dpatch -unpatch -d $(srcdir); then \ + echo "reverted $$patch patch."; \ + rm -f $$stamp; \ + else \ + echo "error in reverting $$patch patch."; \ + exit 1; \ + fi; \ + done + rm -f patched-stamp + +# debian/rules.conf isn't yet sourced +SOURCE_VERSION := $(shell dpkg-parsechangelog | awk '/^Version:/ {print $$NF}') +DEB_VERSION := $(shell echo $(SOURCE_VERSION) | sed 's/ds[0-9]*//') + +$(patch_stamp)-%: $(patchdir)/%.dpatch + if [ -x $< ]; then true; else chmod +x $<; fi + if [ -f $@ ]; then \ + echo "$* patches already applied."; exit 1; \ + fi + DEB_VERSION='$(DEB_VERSION)'; export DEB_VERSION; \ + $< -patch -d $(srcdir) + echo "$* patches applied." > $@ --- gcc-3.4-3.4.3.orig/debian/libstdc++6-doc.doc-base +++ gcc-3.4-3.4.3/debian/libstdc++6-doc.doc-base @@ -0,0 +1,13 @@ +Document: libstdc++6-doc +Title: The GNU Standard C++ Library v3 (gcc-3.4) +Author: Various +Abstract: This package contains documentation files for the GNU stdc++ library. + One set is the distribution documentation, the other set is the + source documentation including a namespace list, class hierarchy, + alphabetical list, compound list, file list, namespace members, + compound members and file members. +Section: Apps/Programming + +Format: html +Index: /usr/share/doc/libstdc++6-doc/libstdc++/html_user/index.html +Files: /usr/share/doc/libstdc++6-doc/libstdc++/html*/* --- gcc-3.4-3.4.3.orig/debian/dh_doclink +++ gcc-3.4-3.4.3/debian/dh_doclink @@ -0,0 +1,12 @@ +#! /bin/sh + +pkg=`echo $1 | sed 's/^-p//'` +target=$2 + +[ -d debian/$pkg/usr/share/doc ] || mkdir -p debian/$pkg/usr/share/doc +if [ -d debian/$pkg/usr/share/doc/$p -a ! -h debian/$pkg/usr/share/doc/$p ] +then + echo "WARNING: removing doc directory $pkg" + rm -rf debian/$pkg/usr/share/doc/$pkg +fi +ln -sf $target debian/$pkg/usr/share/doc/$pkg --- gcc-3.4-3.4.3.orig/debian/rules +++ gcc-3.4-3.4.3/debian/rules @@ -0,0 +1,79 @@ +#! /usr/bin/make -f +# -*- makefile -*- +# Build rules for gcc (>= 2.95) and gcc-snapshot +# Targets found in this makefile: +# - unpack tarballs +# - patch sources +# - (re)create the control file +# - create a debian/rules.parameters file, which is included +# by debian/rules2 +# All other targets are passed to the debian/rules2 file + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +default: build + +include debian/rules.defs +include debian/rules.unpack +include debian/rules.patch + +control: $(control_dependencies) + -mkdir -p $(stampdir) + $(MAKE) -f debian/rules.conf $@ + +configure: $(configure_dependencies) +$(configure_stamp): control $(unpack_stamp) $(patch_stamp) + $(MAKE) -f debian/rules2 $@ +$(configure_dummy_stamp): control + $(MAKE) -f debian/rules2 $@ +$(configure_hppa64_stamp): $(build_stamp) + $(MAKE) -f debian/rules2 $@ + +build: $(build_dependencies) +$(build_stamp): $(unpack_stamp) $(patch_stamp) $(configure_stamp) + $(MAKE) -f debian/rules2 $@ +$(build_dummy_stamp): $(configure_dummy_stamp) + $(MAKE) -f debian/rules2 $@ +$(build_hppa64_stamp): $(configure_hppa64_stamp) + $(MAKE) -f debian/rules2 $@ + +check: $(build_stamp) + $(MAKE) -f debian/rules2 $@ + +clean: + rm -rf $(stampdir) +# remove temporary dirs used for unpacking + rm -rf $(gcc_srcdir) $(gpc_srcdir) p + -$(MAKE) -f debian/rules2 $@ + rm -rf $(srcdir) $(builddir)* debian/tmp* html + rm -f bootstrap-* first-move-stamp + rm -f debian/*.tmp + -find debian -name '.#*' | xargs rm -f + dh_clean + +install: $(install_dependencies) +$(install_stamp): $(build_stamp) + $(MAKE) -f debian/rules2 $@ +$(install_dummy_stamp): $(build_dummy_stamp) + $(MAKE) -f debian/rules2 $@ +$(install_hppa64_stamp): $(build_hppa64_stamp) + $(MAKE) -f debian/rules2 $@ + +html-docs doxygen-docs xxx: + $(MAKE) -f debian/rules2 $@ + +binary-indep binary-arch binary: install + $(MAKE) -f debian/rules2 $@ + +source diff: + @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false + +release: + foo=$(shell basename $(CURDIR)); \ + if [ "$$foo" != "gcc-3.4" ]; then \ + find -name CVS -o -name .cvsignore -o -name '.#*' | \ + xargs rm -rf; \ + fi + +.PHONY: build clean binary-indep binary-arch binary release --- gcc-3.4-3.4.3.orig/debian/changelog +++ gcc-3.4-3.4.3/debian/changelog @@ -0,0 +1,4218 @@ +gcc-3.4 (3.4.3-9ubuntu4) hoary; urgency=low + + * Apply patch to fix PR c++/19311, taken from the 3.4 branch. + * Correctly fix libgcc_s_32.so symlink on amd64. Ubuntu #7099. + + -- Matthias Klose Wed, 30 Mar 2005 18:56:59 +0200 + +gcc-3.4 (3.4.3-9ubuntu3) hoary; urgency=low + + * Fix libgcc_s_32.so symlink on amd64. Ubuntu #7099. + + -- Matthias Klose Fri, 4 Mar 2005 20:03:23 +0100 + +gcc-3.4 (3.4.3-9ubuntu2) hoary; urgency=low + + * Build libstdc++6-0 on amd64. + + -- Matthias Klose Fri, 11 Feb 2005 11:56:10 +0100 + +gcc-3.4 (3.4.3-9ubuntu1) hoary; urgency=low + + * Do not build packages, now built from the gcc-4.0 source package: + libgcc1, lib32gcc1, lib64gcc1, libstdc++6, lib64stdc++6, fastjar. + * Remove the libunwind sources. + * Resynchronise with Debian. + + -- Matthias Klose Wed, 9 Feb 2005 11:15:56 +0100 + +gcc-3.4 (3.4.3-9) unstable; urgency=medium + + * Build-depend on graphviz (moved to main), remove the pregenerated + libstdc++ docs from the diff. + * Updated to gcc-3.4 CVS 20050207. + * Fix typo in gij-3.4 suggests (closes: #290483). + + -- Matthias Klose Sat, 29 Jan 2005 13:58:12 +0100 + +gcc-3.4 (3.4.3-8) unstable; urgency=low + + * Fix powerpc biarch build and package dependencies. + + -- Matthias Klose Mon, 10 Jan 2005 23:46:40 +0100 + +gcc-3.4 (3.4.3-7ubuntu1) hoary; urgency=low + + * Resynchronise with Debian. + * On ia64, do not build the libunwind library from the gcc-3.4 source. + * For libgcc1 on ia64, set a hard dependency on libunwind7. + + -- Matthias Klose Sun, 9 Jan 2005 11:08:01 +0100 + +gcc-3.4 (3.4.3-7) unstable; urgency=low + + * Updated to gcc-3.4 CVS 20050108. + * debian/patches/protector.uue: Update for gcc-3.4.3. + * Add debian/patches/libssp.dpatch: Hardened Debian SSP/ProPolice + library (libssp), not applied by default (Lorenzo Hernandez Garcia-Hierro). + * Update cross build patches (Nikita V. Youshchenko). + + -- Matthias Klose Sat, 8 Jan 2005 10:57:39 +0100 + +gcc-3.4 (3.4.3-6ubuntu1) hoary; urgency=low + + * Resynchronise with Debian. + + -- Matthias Klose Mon, 20 Dec 2004 21:23:09 +0100 + +gcc-3.4 (3.4.3-6) unstable; urgency=low + + * On ia64, configure --with-system-libunwind, build libunwind from the + libunwind-0.98.3 source to include the shared library in libgcc1. + Fixes FTBFS of libunwind on ia64. + * Updated to gcc-3.4 CVS 20041218. + - Fixes PR19005, 3.4 regression on valid code (closes: #285695). + + -- Matthias Klose Sun, 19 Dec 2004 00:20:03 +0100 + +gcc-3.4 (3.4.3-5ubuntu1) hoary; urgency=low + + * Resynchronise with Debian. + + -- Matthias Klose Wed, 15 Dec 2004 09:54:45 +0000 + +gcc-3.4 (3.4.3-5) unstable; urgency=low + + * Updated to gcc-3.4 CVS 20041215. + + -- Matthias Klose Wed, 15 Dec 2004 09:54:45 +0000 + +gcc-3.4 (3.4.3-4) unstable; urgency=medium + + * Reupload witch fixed diff.gz. + + -- Matthias Klose Sun, 5 Dec 2004 11:37:23 +0100 + +gcc-3.4 (3.4.3-3) unstable; urgency=medium + + * Reenable fastjar package on mips/mipsel, left out in 3.4.3-2. + * On i386, libgcj5 doesn't depend on lib64gcc1 anymore. dh_shlibdeps found + the wrong library. Closes: #283741. + + -- Matthias Klose Sat, 4 Dec 2004 09:12:29 +0100 + +gcc-3.4 (3.4.3-2) unstable; urgency=high + + * Tighten dependency on binutils (>= 2.15-5). Add libunwind support + on ia64. Include the libunwind shared library in the libgcc1 package. + For sarge, we cannot introduce another required package; after the release + of sarge libgcc1 will depend on libunwind7 on ia64. + * Updated to gcc-3.4 CVS 20041127. + - Fix PR 14838, ICE on hppa. Addresses: #272673. + - Applies backport of patch to fix PR17813. + * Add M32R support (NIIBE Yutaka). Closes: #282880. + - debian/rules.patch: Added M32R support. + - debian/rules.defs: Disable Java and Ada for M32R. + - debian/patches/m32r-{fixes,gotoff,libffi,limits,stack}.dpatch: New files. + - debian/patches/autoreconf.dpatch: Enable again. + + -- Matthias Klose Thu, 25 Nov 2004 23:25:10 +0100 + +gcc-3.4 (3.4.3-1ubuntu1) hoary; urgency=low + + * Resynchronise with Debian. + + -- Scott James Remnant Mon, 22 Nov 2004 12:49:47 +0000 + +gcc-3.4 (3.4.3-0ubuntu0) hoary; urgency=low + + * New upstream version 3.4.3. + * Resync with Debian. + * For amd64, add missing 32bit libstdc++ files to 'libstdc++-dev' package. + * For amd64, move 32bit libs from /emul/ia32-linux to /lib32 and + /usr/lib32. + * Fix PR fortran/17541, data statements with double precision + constants fail. + * Remove fix for PR 17186, reverted upstream. + + -- Matthias Klose Mon, 1 Nov 2004 20:45:36 +0000 + +gcc-3.4 (3.4.3-1) unstable; urgency=medium + + * gcc-3.4.3 release. + - Doesn't reject valid C++ code (namespaces). Closes: #279185. + * Tightened dependencies on the gcc-3.4-base package. + * Don't build java on mips/mipsel, until the GOT handling is fixed. + Closes: #279850. + * Fix atomic stdc++ operations are broken on some MIPS machines. Patch + by Thiemo Seufer. Closes: #278409. + * Fixed empty libstdc++ manpages. Closes: #280913. + * README.Debian: Add a note, that lib64gcc1, amd64-libs and maybe other + library packages need to be installed when targeting 64bit on the i386 + platform. Closes: #272536. + * On ia64, the ACATS hangs in unaligned memory access. Start a shell + script, which kills these tests manually. + * README.Debian: Add note on gcc-3.4 -m64 code generation. Closes: #268757. + * Don't run the boehm-gc test, hangs at least on m68k. + + -- Matthias Klose Mon, 18 Oct 2004 07:04:37 +0200 + +gcc-3.4 (3.4.2-3) unstable; urgency=medium + + * Patches to fix wrong code regressions from the gcc-3.4 CVS branch: + - Fix PR fortran/17541, data statements with double precision constants + fail. Closes: #273755. + - Fix PR c++/17976, calling destructor twice. Closes: #260747. + - Fix PR 15526, -ftrapv aborts on 0 * (-1). Closes: #273564. + * For amd64, add missing 32bit libstdc++ files to 'libstdc++6-dev' package. + (Andreas Jochens). Closes: #274362. + * Update cross build patches (Nikita V. Youshchenko). + + -- Matthias Klose Fri, 15 Oct 2004 07:01:03 +0200 + +gcc-3.4 (3.4.2-2) unstable; urgency=medium + + * Updated to gcc-3.4.2: + - adding updated libstdc++-v3 baseline files for 3.4.0. + - C++ updates + - Fix references in cpp-3.4(1) and gcc-3.4(1) manpages. + - Fix bus errors with g77-3.4 on sparc (closes: #267703). + - Fix segfault with java example code from report (closes: #268991). + * Add some packaging corrections for amd64 (closes: #267049). + * Normalize pathes in .la and .lai files (closes: #268140, #268929). + * Fix building libffi without libgcj (closes: #267647). + * libltdl.dpatch: Search the versioned extension, when loading a shared + library (i.e. gij looks for .so.5 for loading additional libraries + like the GTK based AWT peers. Thanks to Michael Koch. Closes: #270030. + + -- Matthias Klose Tue, 7 Sep 2004 20:28:14 +0200 + +gcc-3.4 (3.4.2-2ubuntu1) warty; urgency=low + + * Built from the gcc-3.4.2 release tarball. + * lib64stdc++6: Fix versioned dependency on lib64gcc1. + + -- Matthias Klose Tue, 7 Sep 2004 20:06:40 +0000 + +gcc-3.4 (3.4.1ds1-7ubuntu4) warty; urgency=low + + * debian/rules2: Fix realpath usage. + + -- Matthias Klose Sun, 29 Aug 2004 09:37:05 +0000 + +gcc-3.4 (3.4.1ds1-7ubuntu3) warty; urgency=low + + * debian/rules2: Fix realpath usage. + + -- Matthias Klose Sun, 29 Aug 2004 09:37:05 +0000 + +gcc-3.4 (3.4.1ds1-7ubuntu2) warty; urgency=low + + * Fix dependencies on libgcc1 and ia32-libs. + * Updated to gcc-3.4 CVS 20040829 (3.4.2 release candidate): + - adding updated libstdc++-v3 baseline files for 3.4.0. + - C++ updates + - Fix references in cpp-3.4(1) and gcc-3.4(1) manpages. + * Normalize pathes in .la and .lai files. + * Fix building libffi without libgcj. + + -- Matthias Klose Sun, 29 Aug 2004 09:37:05 +0000 + +gcc-3.4 (3.4.1ds1-7ubuntu1) warty; urgency=low + + * Revert change to binutils dependencies. + * Depend and build depend on warty's glibc version. + * Set the C++ ABI version to 1 (compatible with gcc-3.3), rename + libstdc++ packages to libstdc++6-0{,-dev,-dbg}. + + -- Matthias Klose Thu, 19 Aug 2004 16:19:58 +0200 + +gcc-3.4 (3.4.1ds1-7) unstable; urgency=medium + + * Updated to gcc-3.4 CVS 20040819. + * On amd64, build a biarch compiler defaulting to 64 bit. + - build lib32gcc1 and lib32stdc++6 packages (closes: #257906). + * On i386, build a biarch compiler defaulting to 32bit (Dan Jacobowitz). + * Add proposed patch for 3.4 regression PR16706 (closes: #261051). + * Remove superfluous ')' in debian/rules.def (closes: #263951). + * debian/rules2: Correct typo for cross builds (closes: #263928). + * Update cross-configure.dpatch (closes: #263925). + * Tighten binutils build-dependency/dependency to (>= 2.15-2). + Closes: #263019. + * Tighten glibc dependency, needed at least for m68k to avoid + regressions with new binutils. + * libgcj.pc is included in libgcj5-dev package (closes: #264129). + * Replace 'lib64' hack by setting proper MULTILIB_OSDIRNAMES + (Andreas Metzler). Closes: #262892. + * Reenable the complete build of the libgcj5-awt package. + * Add /lib64 link to /lib for architecture powerpc64 (closes: #264857). + * Fix libgcj5-common doc dir symlink (closes: #265652). + + -- Matthias Klose Thu, 19 Aug 2004 11:35:04 +0200 + +gcc-3.4 (3.4.1ds1-4sarge1) testing-proposed-updates; urgency=low + + * Upload to testing-proposed-updates to avoid the dependency on + binutils-2.15. + * Add path of newly built libgcc to LD_LIBRARY_PATH for building the + shared gnat libraries (closes: #262860). + * Really fix build-dependencies for hurd systems (closes: #262459). + * Fix locations of Ada docs in gnat-doc's doc-base (closes: #262911). + * Fix build with java disabled, but libffi enabled (closes: #263013). + * Add epoch to libg2c-dev's version number (closes: #262884). + * On amd64, do not build-depend on g77-3.3, gobjc3.3, g++-3.3. + Closes: #262898. The dependencies only needed for running the testsuite + with the installed compilers. + * Build an empty libgcj5-awt package. + + -- Matthias Klose Wed, 4 Aug 2004 22:56:35 +0200 + +gcc-3.4 (3.4.1ds1-5) unstable; urgency=high + + * Fix gpc build failures on alpha, mips, mipsel (closes: #262208). + * Fix gcc-hppa64 build failure (closes: #262249). + * Don't build the GTK+ based peers to avoid dependency on libtiff. + * Fix build-dependencies for hurd systems (closes: #262459). + * Disable the testsuite, locales is currently not installable while + libc and libc-dev are out of date on many architectures. + + -- Matthias Klose Sat, 31 Jul 2004 06:34:04 +0200 + +gcc-3.4 (3.4.1ds1-4) unstable; urgency=high + + * Update gpc to gpc-2.1 20040516. + - Fixing about 1200 gpc testsuite failures on mips. + * Update to gcc-3.4 CVS 20040728. + * Remove --enable-threads=posix from the configure options, it's + the default for *-linux, but not for other archs (closes: #261361). + * Fix libgnat symlinks (closes: #261004). + + -- Matthias Klose Wed, 28 Jul 2004 08:04:34 +0200 + +gcc-3.4 (3.4.1-3) unstable; urgency=medium + + * Add missing closing parantheses in build dependencies. + * Fix libstdc++.so symlink (closes: #260523). + * Install language files with versioned package name. + + -- Matthias Klose Wed, 21 Jul 2004 23:54:06 +0200 + +gcc-3.4 (3.4.1-2) unstable; urgency=low + + * Update to gcc-3.4 CVS 20040717. + * Update the stack protector patch to 3.4-2, but don't apply it by default. + * On arm, build packages libstdc++6-0, libstdc++6-0-dev, ... gcc-3.5 + changes the ABI on arm, but likely keeping the soname. + + -- Matthias Klose Sat, 17 Jul 2004 10:54:41 +0200 + +gcc-3.4 (3.4.1-1) unstable; urgency=medium + + * gcc-3.4.1 final release. + - configured with --enable-libstdcxx-allocator=mt. + * Update to gcc-3.4 CVS 20040710. + * Fixes for generating cross compiler packages (Jeff Bailey). + * Make gccbug script POSIX compliant (David Weinehall). + * Disable the build of the libobjc, libg2c, libffi, libgcj-common, + fixincludes and protoize packages (still built from the gcc-3.3 package). + * Build fastjar, implemented -u option (closes: #116145). + * Integrated multiarch support. + * Lower priorities of all packages except libgcc1 to optional. + * Add notes on GCC 3.3 / 3.4 incompatinilities (NEWS.Debian, README.Debian). + * Split out the gcj-3.4 jar file to it's own binary indep package. + + -- Matthias Klose Sat, 10 Jul 2004 11:21:26 +0200 + +gcc-3.4 (3.4.0-4) experimental; urgency=low + + * gcc-3.4.1 release candidate 1. + * Add logic to build biarch compiler on powerpc (disabled, needs lib64c). + * Don't build the libg2c0 package on mipsel-linux (no clear answer on + debian-mips, if the libg2c0's built by gcc-3.3 and gcc-3.4 are compatible + (post-sarge issue). + * Don't use gcc-2.95 as bootstrap compiler on m68k anymore. + + -- Matthias Klose Sat, 26 Jun 2004 22:40:20 +0200 + +gcc-3.4 (3.4.0-3) experimental; urgency=low + + * Update to gcc-3.4 CVS 20040613. + * On sparc, set the the build target to sparc64-linux, build with + switch defaulting to code generation for v7. To generate code for + sparc64, use the -m64 switch. + * Add missing doc-base files to -doc packages. + * Add portability patches and kbsd-gnu patch (Robert Millan). + Closes: #251293, #251294. + * Apply fixes for cross build (Nikita V. Youshchenko). + * Do not include the precompiled libstdc++ header files into the -dev + package (still experimental). Closes: #251707. + * Reflect renaming of Ada user's guide. + * Move AWT peer libraries for libgcj into it's own package (fixes: #247791). + + -- Matthias Klose Mon, 14 Jun 2004 00:03:18 +0200 + +gcc-3.4 (3.4.0-2) experimental; urgency=low + + * Update to gcc-3.4 CVS 20040516. + * Do not provide the /usr/hppa64-linux/include in the gcc-hppa64 package, + migrated to libc6-dev. Adjust dependencies. + * Integrate gpc test results into the GCC test summary. + * gnatchop calls gcc-3.4 (closes: #245438). + * debian/locale-gen.sh: Update for recent libstdc+++ testsuite. + * debian/copyright: Add libstdc++-v3's exception clause. + * Add libffi update for mips (Thiemo Seufer). + * Reference Debian specific bug reporting instructions. + * Update README.Bugs. + * Fix FTBFS for libstdc++-doc. + * Update libjava patch for hppa (Randolph Chung). + * Fix installation of ffitarget.h header file. + * On amd64-linux, configure --without-multilib, disable Ada. + + -- Matthias Klose Sun, 16 May 2004 07:53:39 +0200 + +gcc-3.4 (3.4.0-1) experimental; urgency=low + + * gcc-3.4.0 final release. + + * Why experimental? + - Do not interfer with packages currently built from gcc-3.3 sources, + i.e. libgcc1, libobjc1, libffi2, libffi2-dev, libg2c0. + - Biarch sparc compiler doesn't built yet. + - Use of configure flags affecting binary ABI's not yet determined. + - Several ABI bugs have been fixed. Unfortunately, these changes will break + binary compatibility with earlier releases on several architectures: + alpha, mips, sparc, + - hppa and m68k changed sjlj based exception handling to dwarf2 based + exception handling. + + See NEWS.html or http://gcc.gnu.org/gcc-3.4/changes.html for more + specific information. + + -- Matthias Klose Tue, 20 Apr 2004 20:54:56 +0200 + +gcc-3.4 (3.4ds3-0pre4) experimental; urgency=low + + * Update to gcc-3.4 CVS 20040403. + * Add gpc tarball, gpc patches for 3.4 (Waldek Hebisch). + * Reenable sparc-biarch patches (closes: #239856). + * Build the shared libgnat library, needed to fix FTBFS for some + Ada library packages (Ludovic Brenta). + Currently enabled for hppa, i386, ia64. + + -- Matthias Klose Sat, 3 Apr 2004 08:47:55 +0200 + +gcc-3.4 (3.4ds1-0pre2) experimental; urgency=low + + * Update to gcc-3.4 CVS 20040320. + * For libstdc++6-doc, add a conflict to libstdc++5-3.3-doc (closes: #236560). + * For libstdc++6-dbg, add a conflict to libstdc++5-3.3-dbg (closes: #236798). + * Reenable s390-biarch patches. + * Update the cross compiler build files (Nikita V. Youshchenko). + + -- Matthias Klose Sat, 20 Mar 2004 09:15:10 +0100 + +gcc-3.4 (3.4ds0-0pre1) experimental; urgency=low + + * Start gcc-3.4 packaging, get rid of the epoch for most of the + packages. + + -- Matthias Klose Sun, 22 Feb 2004 16:00:03 +0100 + +gcc-3.3 (1:3.3.3ds6-6) unstable; urgency=medium + + * Update to gcc-3_3-branch CVS 20040401. + - Fixed ICE in emit_move_insn_1 on legal code (closed: #223215). + - Fix PR 14755, miscompilation of loops with bitfield counter. + Closes: #241255. + - Fix PR 16040, crash in function initializing const data with + reinterpret_cast-ed pointer-to-member function crashes (closes: #238621). + - Remove patches integrated upstream. + * Reenable build of gpidump on powerpc and s390. + + -- Matthias Klose Thu, 1 Apr 2004 23:51:54 +0200 + +gcc-3.3 (1:3.3.3ds6-5) unstable; urgency=medium + + * Update to gcc-3_3-branch CVS 20040321. + - Fix PR target/13889 (ICE on valid code on m68k). + * Fix FTFBS on s390. Do not build gpc's gpidump on s390. + * Reenable gpc on arm. + + -- Matthias Klose Mon, 22 Mar 2004 07:37:26 +0100 + +gcc-3.3 (1:3.3.3ds6-4) unstable; urgency=low + + * Update to gcc-3_3-branch CVS 20040320. + - Revert patch for PR14640 (with this, at least mozilla-firefox was + miscompiled on x86 (closes: #238621). + * Update the gpc tarball (there were two releases with the same name ...). + * Reenable gpc on alpha and ia64. + + -- Matthias Klose Sat, 20 Mar 2004 07:39:24 +0100 + +gcc-3.3 (1:3.3.3ds5-3) unstable; urgency=low + + * Update to gcc-3_3-branch CVS 20040314. + - Fixes miscompilation with -O -funroll-loops on powerpc (closes: #229567). + - Fix ICE in dwarf-2 on code using altivec (closes: #203835). + * Update hurd-changes patch. + * Add libgcj4-dev as a recommendation for gcj (closes: #236547). + * debian/copyright: Added exemption to static linking of libgcc. + + * Phil Blundell: + - debian/patches/arm-ldm.dpatch, debian/patches/arm-gotoff.dpatch: Update. + + -- Matthias Klose Sun, 14 Mar 2004 09:56:06 +0100 + +gcc-3.3 (1:3.3.3ds5-2) unstable; urgency=low + + * Update to gcc-3_3-branch CVS 20040306. + - Fixes bootstrap comparision error on ia64. + - Allows ghc build with gcc-3.3. + - On amd64, don't imply 3DNow! for -m64 by default. + - Some arm specific changes + - Fix C++/13944: exception in constructor of a class to be thrown is not + caught. Closes: #228099. + * Enable the build of gcc-3.3-hppa64 on hppa. + Add symlinks for as and ld to point to hppa64-linux-{as,ld}. + * gcj-3.3 depends on g++-3.3, recommends gij-3.3. gij-3.3 suggests gcj-3.3. + * Fix libgc2c-pic compatibility links (closes: #234333). + The link will be removed for gcc-3.4. + * g77-3.3: Conflict with other g77-x.y packages. + * Tighten shlibs dependencies to latest released versions. + + * Phil Blundell: + - debian/patches/arm-233633.dpatch: New Fixes problems with half-word + loads on ARMv3 architecture. (Closes: #233633) + - debian/patches/arm-ldm.dpatch: New. Avoids inefficient epilogue for + leaf functions in PIC code on ARM. + + -- Matthias Klose Sat, 6 Mar 2004 10:57:14 +0100 + +gcc-3.3 (1:3.3.3ds5-1) unstable; urgency=medium + + * gcc-3.3.3 final release. + See /usr/share/doc/gcc-3.3/NEWS.{gcc,html}. + + -- Matthias Klose Mon, 16 Feb 2004 08:59:52 +0100 + +gcc-3.3 (1:3.3.3ds4-0pre4) unstable; urgency=low + + * Update to gcc-3.3.3 CVS 20040214 (2nd gcc-3.3.3 prerelease). + * Fix title of libstdc++'s html main index (closes: #196381). + * Move libg2c libraray files out of the gcc specific libdir to /usr/lib. + For g77-3.3 add conflicts to other g77 packages. Closes: #224848. + * Update the stack protector patch to 3.3-7, but don't apply it by default. + Closes: #230338. + * On arm, use arm6 as the cpu default (backport from mainline, PR12527). + * Add libffi and libjava support for hppa (Randolph Chung). Closes: #232615. + + -- Matthias Klose Sat, 14 Feb 2004 09:26:15 +0100 + +gcc-3.3 (1:3.3.3ds3-0pre3) unstable; urgency=low + + * Update to gcc-3.3.3 CVS 20040125. + - Fixed PR11350, undefined labels with -Os -fPIC (closes: #195911). + - Fixed PR11793, ICE in extract_insn, at recog.c (closes: #203835). + - Fixed PR13544, removed backport for PR12862. + - Integrated backport for PR12441. + * Fixed since 3.3: java: not implemented interface methods of abstract + classes not found (closes: #225438). + * Disable pascal on arm architecture (currently broken). + * Update the build files to build a cross compiler (Nikita V. Youshchenko). + See debian/README.cross in the source package. + * Apply revised patch to make -mieee the default on alpha-linux, + and add -mieee-disable switch to turn the default off (closes: #212912). + (Tyson Whitehead) + + -- Matthias Klose Sun, 25 Jan 2004 17:41:04 +0100 + +gcc-3.3 (1:3.3.3ds2-0pre2) unstable; urgency=medium + + * Update to gcc-3.3.3 CVS 20040110. + - Fixes compilation not terminating at -O1 on hppa (closes: #207516). + * Add backport to fix PR12441 (closes: #224576). + * Revert backport to 3.3 branch to fix PR12862, which introduced another + regression (PR13544). Closes: #225663. + * Tighten dependency of gnat-3.3 on gcc-3.3 (closes: #226273). + * Disable treelang build for cross compiler build. + * Disable pascal on alpha and ia64 architectures (currently broken). + + -- Matthias Klose Sat, 10 Jan 2004 12:33:59 +0100 + +gcc-3.3 (1:3.3.3ds1-0pre1) unstable; urgency=low + + * Update to gcc-3.3.3 CVS 20031229. + - Fixes bootstrap error on ia64-linux. + - Fix -pthread on mips{,el}-linux (closes: #224875). + - Fix -Wformat for C++ (closes: #217075). + * Backport from mainline: Preserve inline-ness when redeclaring + a function template (closes: #195264). + * Add missing intrinsics headers on ix86 (closes: #224593). + * Fix location of libg2c libdir in libg2c.la file (closes: #224848). + + -- Matthias Klose Mon, 29 Dec 2003 10:36:29 +0100 + +gcc-3.3 (1:3.3.3ds0-0pre0.1) unstable; urgency=high + + * NMU + * Fixed mips(el) spec file for -pthread: (Closes: #224875) + * [debian/patches/mips-pthread.dpatch] New. + * [debian/rules.patch] Added it to debian_patches. + + -- J.H.M. Dassen (Ray) Sat, 27 Dec 2003 15:51:47 +0100 + +gcc-3.3 (1:3.3.3ds0-0pre0) unstable; urgency=low + + * Update to gcc-3.3.3 CVS 20031206. + - Fixes ICE in verify_local_live_at_start (hppa). Closes: #201550. + - Fixes miscompilation of linux-2.6/sound/core/oss/rate.c. + Closes: #219949. + * Add missing unwind.h to gcc package (closes: #220846). + * Regenerate control file to fix build dependencies for m68k. + * More gpc only patches to fix test failures on m68k. + * Reenable gpc for the Hurd (closes: #189851). + + -- Matthias Klose Sat, 6 Dec 2003 10:29:07 +0100 + +gcc-3.3 (1:3.3.2ds5-4) unstable; urgency=low + + * Update libffi-dev package description (closes: #219508). + * For gij and libgcj fix dependency on the libstdc++ package, if + the latter isn't installed during the build. + * Apply patch to emit .note.GNU-stack section on linux arches + which by default need executable stack. + * Prefer gnat-3.3 over gnat-3.2 as a build dependency. + * Update the pascal tarball (different version released with the + same name). + * Add pascal patches to address various gpc testsuite failures. + On alpha and ia64, build gpc from the 20030830 version. Reenable + the build on m68k. + Remove the 20030507 gpc version from the tarball. + * Apply patch to build the shared ada libs and link the ada tools + against the shared libs. Not enabled by default, because gnat + and gnatlib are rebuilt during install. (Ludovic Brenta) + + -- Matthias Klose Sun, 9 Nov 2003 22:34:33 +0100 + +gcc-3.3 (1:3.3.2ds4-3) unstable; urgency=low + + * Fix rules to omit inclusion of gnatpsta in mips(el) gnat package. + + -- Matthias Klose Sun, 2 Nov 2003 14:29:59 +0100 + +gcc-3.3 (1:3.3.2ds4-2) unstable; urgency=medium + + * s390-ifcvt patch added. Fixes gcl miscompilation (closes: #217240). + (Gerhard Tonn) + * Fix an infinite loop in g++ compiling lufs, regression from 3.3.1. + * Fix a wrong code generation bug on alpha. + (Falk Hueffner) + * Update NEWS files. + * Add Falk Hueffner to the Debian GCC maintainers. + * Enable ada on mips and mipsel, but don't build the gnatpsta tool. + + -- Matthias Klose Wed, 29 Oct 2003 00:12:37 +0100 + +gcc-3.3 (1:3.3.2ds4-1) unstable; urgency=medium + + * Update to gcc-3.3.2. + * Update NEWS files. + * Miscompilation in the pari package at -O3 fixed (closes: #198172). + * On alpha-linux, revert -mieee as the default (Falk Hueffner). + Reopens: #212912. + * Add ia64-unwind patch (Jeff Bailey). + * Closed reports reported against gcc-2.96 (ia64), fixed at least in gcc-3.3: + - ICE in verify_local_live_at_start, at flow.c:2733 (closes: #135404). + - Compilation failure of stlport (closes: #135224). + - Infinite loop compiling cssc's pfile.cc with -O2 (closes: #115390). + - Added missing some string::compare() members (closes: #141199). + - header declares std::pow (closes: #161853). + - does have at() method (closes: #59776). + - Fixed error in stl_deque.h (closes: #69530). + - Fixed problem with bastring (closes: #75759, #96539). + - bad_alloc and std:: namespace problem (closes: #75120). + - Excessive warnings from headers with -Weffc++ (closes: #76827). + + -- Matthias Klose Fri, 17 Oct 2003 08:07:01 +0200 + +gcc-3.3 (1:3.3.2ds3-0pre5) unstable; urgency=low + + * Update to gcc-3.3.2 CVS 20031005. + - Fixes cpp inserting a spurious newline (closes: #210478, #210482). + - Fixes generation of unrecognizable insn compiling kernel source + on alpha (closes: #202762). + - Fixes ICE in add_abstract_origin_attribute (closes: #212406). + - Fixes forward declaration in libstdc++ (closes: #209386). + - Fixes ICE in in extract_insn, at recog.c on alpha (closes: #207564). + * Make libgcj-common architecture all (closes: #211909). + * Build depend on: flex-old | flex (<< 2.5.31). + * Fix spec linking libraries with -pthread on powerpc (closes: #211054). + * debian/patches/arm-gotoff.dpatch: fix two kinds of PIC lossage. + (Phil Blundell) + * debian/patches/arm-common.dpatch: fix excessive alignment of common + blocks causing binutils testsuite failures. + (Phil Blundell) + * Update priorities in debian/control to match the archive. + (Ryan Murray) + * s390-nonlocal-goto patch added. Fixes some pascal testcase failures. + (Gerhard Tonn) + * On alpha-linux, make -mieee default and add -mieee-disable switch + to turn default off (closes: #212912). + (Tyson Whitehead) + * Add gpc upstream patch for memory corruption fix. + + -- Matthias Klose Sun, 5 Oct 2003 19:53:49 +0200 + +gcc-3.3 (1:3.3.2ds2-0pre4) unstable; urgency=low + + * Add gcc-unsharing_lhs patch (closes: #210848) + + -- Ryan Murray Fri, 19 Sep 2003 22:51:19 -0600 + +gcc-3.3 (1:3.3.2ds2-0pre3) unstable; urgency=low + + * Update to gcc-3.3.2 CVS 20030908. + * PR11716 (Michael Eager, Dan Jacobowitz): + Make GCC think that the maximum length of a short branch is + 64K instead of 128K. It's a big hammer, but it works. + Closes: #207915. + * Downgrade gpc to 20030507 on alpha and ia64 (closes: #208717). + + -- Matthias Klose Mon, 8 Sep 2003 21:49:52 +0200 + +gcc-3.3 (1:3.3.2ds1-0pre2) unstable; urgency=low + + * Update to gcc-3.3.2 CVS 20030831. + - Fix java NullPointerException detection with 2.6 kernels. + Closes: #206377. + - Fix bug in C++ typedef handling (closes: #205402). + - Fix -Wunreachable-code giving false complaints (closes: #196600). + * Update to gpc-20030830. + * Don't include /usr/share/java/repository into the class path according + to the new version of th Debian Java policy (closes: #205643). + * Build-Depend/Depend on libgc-dev. + + -- Matthias Klose Sun, 31 Aug 2003 08:56:53 +0200 + +gcc-3.3 (1:3.3.2ds0-0pre1) unstable; urgency=low + + * Remove the build dependency on locales for now. + + -- Matthias Klose Fri, 15 Aug 2003 07:48:18 +0200 + +gcc-3.3 (1:3.3.2ds0-0pre0) unstable; urgency=medium + + * Update to gcc-3.3.2 CVS 20030812. + - Fixes generation of wrong code for XDM-AUTHORIZATION-1 key generation + and/or validation. Closes: #196090. + * Update NEWS files. + * Change ix86 default CPU type for code generation: + - i386-linux -> i486-linux + - i386-gnu -> i586-gnu + - i386-freebsd-gnu -> i486-freebsd-gnu + Use -march=i386 to target i386 CPUs. + + -- Matthias Klose Tue, 12 Aug 2003 10:31:28 +0200 + +gcc-3.3 (1:3.3.1ds3-1) unstable; urgency=low + + * gcc-3.3.1 (taken from CVS 20030805). + - C++: Fix declaration conflicts (closes: #203351). + - Fix ICE on ia64 (closes: #203840). + + -- Matthias Klose Tue, 5 Aug 2003 20:38:02 +0200 + +gcc-3.3 (1:3.3.1ds2-0rc2) unstable; urgency=low + + * Update to gcc-3.3.1 CVS 20030728. + - Fix ICE in extract_insn, at recog.c:2148 on m68k. + Closes: #177840, #180375, #190818. + - Fix ICE while building libquicktime on alpha (closes: #192576). + - Fix failure to deal with using and private inheritance (closes: #202696). + * On sparc, /usr/lib was added to the library search path. Fix it. + * Closed reports reported against gcc-3.2.x and fixed in gcc-3.3: + - Fix error building the gcl package on arm (closes: #199835). + + -- Matthias Klose Mon, 28 Jul 2003 20:39:07 +0200 + +gcc-3.3 (1:3.3.1ds1-0rc1) unstable; urgency=low + + * Update to gcc-3.3.1 CVS 20030722 (3.3.1 release candidate 1). + - Fix ICE in copy_to_mode_reg on 64-bit targets (closes: #189365). + - Remove documentation about multi-line strings (closes: #194391). + - Correctly document -falign-* parameters (closes: #198269). + - out-of-class specialization of a private nested template class. + Closes: #193830. + - Tighten shlibs dependency due to new symbols in libgcc. + * README.Debian for libg2c0, describing the need for g77-x.y when + working with the g2c header and library (closes: #189059). + * Call make with -j, if USE_NJOBS is set and non-empty + in the environment. + * Add another two m68k patches, partly replacing the workarounds provided + by Roman Zippel. + * Add the stack protector patch, but don't apply it by default. Edit + debian/rules.patch to apply it (closes: #171699, #189494). + * Remove wrong symlinks from gnat package (closes: #201882). + * Closed reports reported against gcc-2.95 and fixed in newer versions: + - SMP kernel compilation on alpha (closes: #134197, #146883). + - ICE on arm while building imagemagick (closes: #173475). + * Closed reports reported against gcc-3.2.x and fixed in gcc-3.3: + - Miscompilation of octave2.1 on hppa (closes: #192296, #193804). + + -- Matthias Klose Sun, 13 Jul 2003 10:26:30 +0200 + +gcc-3.3 (1:3.3.1ds0-0pre0) unstable; urgency=medium + + * Update to gcc-3.3.1 CVS 20030626. + - Fix ICE on arm compiling xfree86 (closes: #195424). + - Fix ICE on arm compiling fftw (closes: #186185). + - Fix ICE on arm in change_address_1, affecting a few packages. + Closes: #197099. + - Fix ICE in merge_assigned_reloads building Linux 2.4.2x sched.c. + Closes: #195237. + - Do not warn about failing to inline functions declared in system headers. + Closes: #193049. + - Fix ICE on mips{,el} in propagate_one_insn (closes: #194330, #196091). + - Fix ICE on m68k in reg_overlap_mentioned_p (closes: #194749). + - Build crtbeginT.o on m68k (closes: #197613). + * Fix g++ man page symlink (closes: #196271). + * mips/mipsel: Depend on binutils (>= 2.14.90.0.4). Closes: #196744. + * Disable treelang on powerpc (again). Closes: #196915. + * Pass -encoding in gcj-wrapper. + + -- Matthias Klose Fri, 27 Jun 2003 00:14:43 +0200 + +gcc-3.3 (1:3.3ds9-3) unstable; urgency=low + + * Closing more reports, fixed in 3.2/3.3: + - ICE building texmacs on m68k (closes: #177433). + - libstdc++: doesn't define trunc(...) (closes: #105285). + - libstdc++: setw is ignored for strings output (closes: #52382, #76645). + * Add build support to omit the manual pages and info docs from the + packages, disabled by default. Wait for a Debian statement, which can + be cited. Adresses: #193787. + * Reenable the m68k-const patch, don't run the g77 testsuite on m68k. + Addresses ICEs (#177840, #190818). + * Update arm-xscale patch. + * libstdc++: use __attribute__(__unknown__), instead of (unknown). + Closes: #195796. + * Build-Depend on glibc (>= 2.3.1) to prevent incorrect builds on woody. + Request from Adrian Bunk. + * Add treelang-update patch (Tim Josling), reenable treelang on powerpc. + * Add -{cpp,gcc,g++,gcj,g77} symlinks (addresses: #189466). + * Make sure not to build using binutils-2.14.90.0.[12]. + + -- Matthias Klose Mon, 2 Jun 2003 22:35:45 +0200 + +gcc-3.3 (1:3.3ds9-2) unstable; urgency=medium + + * Correct autoconf-related snafu in newly added ARM patches (Phil Blundell). + * Correct libgcc1 dependency (closes: #193689). + * Work around ldd/dpkg-shlibs failure on s390x. + + -- Matthias Klose Sun, 18 May 2003 09:40:15 +0200 + +gcc-3.3 (1:3.3ds9-1) unstable; urgency=low + + * gcc-3.3 final release. + See /usr/share/doc/gcc-3.3/NEWS.{gcc,html}. + * First merge of i386/x86-64 biarch support (Arnd Bergmann). + Disabled by default. Closes: #190066. + * New gpc-20030507 version. + * Upstream gpc update to fix netbsd build failure (closes: #191407). + * Add arm-xscale.dpatch, arm-10730.dpatch, arm-tune.dpatch, copied + from gcc-3.2 (Phil Blundell). + * Closing bug reports reported against older gcc versions (some of them + still present in Debian, but not anymore as the default compiler). + Usually, forwarded bug reports are linked to + http://gcc.gnu.org/PR + The upstream bug number usually can be found in the Debian reports. + + * Closed reports reported against gcc-3.1.x, gcc-3.2.x and fixed in gcc-3.3: + - General: + + GCC accepts multi-line strings without \ or " " &c (closes: #2910). + + -print-file-name sometimes fails (closes: #161615). + + ICE: reporting routines re-entered (closes: #179597, #180937). + + Misplaced paragraph in gcc documentation (closes: #179363). + + Error: suffix or operands invalid for `div' (closes: #150558). + + builtin memcmp() could be optimised (closes: #85535). + - Ada: + + Preelaborate, exceptions, and -gnatN (closes: #181679). + - C: + + Duplicate loop conditions even with -Os (closes: #94701). + + ICE (signal 11) (closes: #65686). + - C++: + + C++ error on virtual function which uses ... (closes: #165829). + + ICE when warning about cleanup nastiness in switch statements + (closes: #184108). + + Fails to compile virtual inheritance with variable number of + argument method (closes: #151357). + + xmmintrin.h broken for c++ (closes: #168310). + + Stack corruption with variable-length automatic arrays and virtual + destructors (closes: #188527). + + ICE on illegal code (closes: #184862). + + _attribute__((unused)) is ignored in C++ (closes: #45440). + + g++ handles &(void *)foo bizzarely (closes: #79225). + + ICE (with wrong code, though) (closes: #81122). + - Java: + + Broken zip file handling (closes: #180567). + - ObjC: + + @protocol forward definitions do not work (closes: #80468). + - Architecture specific: + - alpha + + va_start is off by one (closes: #186139). + + ICE while building kseg/ddd (closes: #184753). + + g++ -O2 optimization error (closes: #70743). + - arm + + ICE with -O2 in change_address_1 (closes: #180750). + + gcc optimization error with -O2, affecting bison (closes: #185903). + - hppa + + ICE in insn_default_length (closes: #186447). + - ia64 + + gcc-3.2 fails w/ optimization (closes: #178830). + - i386 + + unnecessary generation of instruction cwtl (closes: #95318). + + {athlon} ICE building mplayer (closes: #184800). + + {pentium4} ICE while compiling mozilla with -march=pentium4 + (closes: #187910). + + i386 optimisation: joining tests (closes: #105309). + - m68k + + ICE in instantiate_virtual_regs_1 (closes: #180493). + + gcc optimizer bug on m68k (closes: #64832). + - powerpc + + ICE in extract_insn, at recog.c:2175 building php3 (closes: #186299). + + ICE with -O -Wunreachable-code (closes: #189702). + - s390 + + Operand out of range at assembly time when using -O2 + (closes: #178596). + - sparc + + gcc-3.2 regression (wrong code) (closes: #176387). + + ICE in mem_loc_descriptor when optimizing (closes: #178909). + + ICE in gen_reg_rtx when optimizing (closes: #178965). + + Optimisation leads to unaligned access in memcpy (closes: #136659). + + * Closed reports reported against gcc-3.0 and fixed in gcc-3.2.x: + - General: + + Use mkstemp instead of mktemp (closed: #127802). + - Preprocessor: + + Fix redundant error message from cpp (closed: #100722). + - C: + + Optimization issue on ix86 (pointless moving) (closed: #97904). + + Miscompilation of allegro on ix86 (closed: #105741). + + Fix generation of ..ng references for static aliases (alpha-linux). + (closed: #108036). + + ICE compiling pari on hppa (closed: #111613). + + ICE on ia64 in instantiate_virtual_regs_1 (closed: #121668). + + ICE in c-typeck.c (closed: #123687). + + ICE in gen_subprogram_die on alpha (closed: #127890). + + SEGV in initialization of flexible char array member (closed: #131399). + + ICE on arm compiling lapack (closed: #135967). + + ICE in incomplete_type_error (closed: #140606). + + Fix -Wswitch (also part of -Wall) (closed: #140995). + + Wrong code in mke2fs on hppa (closed: #150232). + + sin(a) * sin(b) gives wrong result (closed: #164135). + - C++: + + Error in std library headers on arm (closed: #107633). + + ICE nr. 19970302 (closed: #119635). + + std::wcout does not perform encoding conversions (closed: #128026). + + SEGV, when compiling iostream.h with -fPIC (closed: #134315). + + Fixed segmentation fault in included code for (closed: #137017). + + Fix with exception handling and -O (closed: #144232). + + Fix octave-2.1 build failure on ia64 (closed: #144584). + + nonstandard overloads in num_get facet (closed: #155900). + + ICE in expand_end_loop with -O (closed: #158371). + - Fortran: + + Fix blas build failure on arm (closed: #137959). + - Java: + + Interface members are public by default (closed: #94974). + + Strange message with -fno-bounds-check in combination with -W. + (closed: #102353). + + Crash in FileWriter using IOException (closed: #116128). + + Fix ObjectInputStream.readObject() calling constructors. + (closed: #121636). + + gij: better error reporting on `class not found' (closed: #125649). + + Lockup during .java->.class compilation (closed: #141899). + + Compile breaks using temporary inner class instance (closed: #141900). + + Default constructor for inner class causes broken bytecode. + (closed: #141902). + + gij-3.2 linked against libgcc1 (closed: #165180). + + gij-wrapper understands -classpath parameter (closed: #146634). + + gij-3.2 doesn't ignore -jar when run as "java" (closed: #167673). + - ObjC: + + ICE on alpha (closed: #172353). + + * Closed reports reported against gcc-2.95 and fixed in newer versions: + - General: + + Undocumented option -pthread (closes: #165110). + + stdbool.h broken (closes: #167439). + + regparm/profiling breakage (closes: #20695). + + another gcc optimization error (closes: #51456). + + ICE in `output_fix_trunc' (closes: #55967). + + Fix "Unable to generate reloads for" (closes: #58219, #131890). + + gcc -c -MD x/y.c -o x/y.o leaves y.d in cwd (closes: #59232). + + Compiler error with -O2 (closes: #67631). + + ICE (unrecognizable insn) compiling php4 (closes: #83550, #84969). + + Another ICE (closes: #90666). + + man versus info inconsistency (-W and -Wall) (closes: #93708). + + ICE on invalid extended asm (closes: #136630). + + ICE in `emit_no_conflict_block' compiling perl (closes: #154599). + + ICE in `gen_tagged_type_instantiation_die'(closes: #166766). + + ICE on __builtin_memset(s, 0, -1) (closes: #170994). + + -Q option to gcc appears twice in the documentation (closes: #137382). + + New options for specifying targets:- -MQ and -MT (closes: #27878). + + Configure using --enable-nls (closes: #51651). + + gcc -dumpspecs undocumented (closes: #65406). + - Preprocessor: + + cpp fails to parse macros with varargs correctly(closes: #154767). + + __VA_ARGS__ stringification crashes preprocessor if __VA_ARGS__ is + empty (closes: #152709). + + gcc doesn't handle empty args in macro function if there is only + one arg(closes: #156450). + - C: + + Uncaught floating point exception causes ICE (closes: #33786). + + gcc -fpack-struct doesn't pack structs (closes: #64628). + + ICE in kernel (matroxfb) code (closes: #151196). + + gcc doesn't warn about unreachable code (closes: #158704). + + Fix docs for __builtin_return_address(closes: #165992). + + C99 symbols in limits.h not defined (closes: #168346). + + %zd printf spec generates warning, even in c9x mode (closes: #94891). + + Update GCC attribute syntax (closes: #12253, #43119). + - C++ & libstdc++-v3: + + template and virtual inheritance bug (closes: #152315). + + g++ has some troubles with nested templates (closes: #21255). + + vtable thunks implementation is broken (closes: #34876, #35477). + + ICE for templated friend (closes: #42662). + + ICE compiling mnemonic (closes: #42989). + + Deprecated: result naming doesn't work for functions defined in a + class (closes: #43170). + + volatile undefined ... (closes: #50529). + + ICE concerning templates (closes: #53698). + + Program compiled -O3 -malign-double segfaults in ofstream::~ofstream + (closes: #56867). + + __attribute__ ((constructor)) doesn't work with C++ (closes: #61806). + + Another ICE (closes: #65687). + + ICE in `const_hash' (closes: #72933). + + ICE on illegal code (closes: #83221). + + Wrong code with -O2 (closes: #83363). + + ICE on template class (closes: #85934). + + No warning for missing return in non-void member func (closes: #88260). + + Not a bug/fixed in libgcc1: libgcc.a symbols end up exported by + shared libraries (closes: #118670). + + ICE using nested templates (closes: #118781). + + Another ICE with templates (closes: #127489). + + More ICEs (closes: #140427, #141797). + + ICE when template declared after use(closes: #148603). + + template function default arguments are not handled (closes: #157292). + + Warning when including stl.h (closes: #162074). + + g++ -pedantic-errors -D_GNU_SOURCE cannot #include + (closes: #151671). + + c++ error message improvement suggestion (closes: #46181). + + Compilation error in stl_alloc.h with -fhonor-std (closes: #59005). + + libstdc++ has no method at() in stl_= (closes: #68963). + - Fortran: + + g77 crash (closes: #130415). + - ObjC: + + ICE: program cc1obj got fatal signal 11 (closes: #62309). + + Interface to garbage collector is undocumented. (closes: #68987). + - Architecture specific: + - alpha + + Can't compile with define gnu_source with stdio and curses + (closes: #97603). + + Header conflicts on alpha (closes: #134558). + + lapack-dev: cannot link on alpha (closes: #144602). + + ICE `fixup_var_refs_1' (closes: #43001). + + Mutt segv on viewing list of attachments (closes: #47981). + + ICE building open-amulet (closes: #48530). + + ICE compiling hatman (closes: #55291). + + dead code removal in switch() broken (closes: #142844). + - arm + + Miscompilation using -fPIC on arm (closes: #90363). + + infinite loop with -O on arm (closes: #151675). + - i386 + + ICE when using -mno-ieee-fp and -march=i686 (closes: #87540). + - m68k + + Optimization (-O2) broken on m68k (closes: #146006). + - mips + + g++ exception catching does not work... (closes: #105569). + + update-menus gets Bus Error (closes: #120333). + - mipsel + + aspell: triggers ICE on mipsel (closes: #128367). + - powerpc + + -O2 produces wrong code (gnuchess example) (closes: #131454). + - sparc + + Misleading documentation for -malign-{jump,loop,function}s + (closes: #114029). + + Sparc GCC issue with -mcpu=ultrasparc (closes: #172956). + + flightgear: build failure on sparc (closes: #88694). + + -- Matthias Klose Fri, 16 May 2003 07:13:57 +0200 + +gcc-3.3 (1:3.3ds8-0pre9) unstable; urgency=high + + * gcc-3.3 second prerelease. + - Fixing exception handling on s390 (urgency high). + * Reenabled gpc build (I had it disabled ...). Closes: #192347. + + -- Matthias Klose Fri, 9 May 2003 07:32:14 +0200 + +gcc-3.3 (1:3.3ds8-0pre8) unstable; urgency=low + + * gcc-3.3 prerelease. + - Fixes gcj ICE (closes: #189545). + * For libstdc++ use the i486 atomicity implementation, introduced with + 0pre6, left out in 0pre7 (closes: #191684). + * Add README.Debian for treelang (closes: #190812). + * Apply NetBSD changes (Joel Baker). Closes: #191551. + * New symbols in libgcc1, tighten the shlibs dependency. + * Disable testsuite run on mips/mipsel because of an outdated libc-dev + package. + * Do not build libffi with debug information, although configuring + with --enable-debug. + + -- Matthias Klose Tue, 6 May 2003 06:53:49 +0200 + +gcc-3.3 (1:3.3ds7-0pre7) unstable; urgency=low + + * gcc-3.3 prerelease taken from the gcc-3_3-branch (CVS 20030429). + * Revert upstream libstdc++ change (closes: #191145, #191147, #191148, + #191149, #149159, #149151, and other reports). + Sorry for not detecting this before the upload, seems to be + broken on i386 "only". + * hurd-i386: Use /usr/include, not /include. + * Disable gpc on hurd-i386 (closes: #189851). + * Disable building the debug version of libstdc++ on powerpc-linux + (fixes about 200 java test cases). + * Install libstdc++v3 man pages (closes: #127263). + + -- Matthias Klose Tue, 29 Apr 2003 23:28:44 +0200 + +gcc-3.3 (1:3.3ds6-0pre6) unstable; urgency=high + + * gcc-3.3 prerelease taken from the gcc-3_3-branch (CVS 20030426). + * libstdc++-doc: Fix index.html link (closes: #189424). + * Revert back to the i486 atomicity implementation, that was used + for gcc-3.2 as well. Reopens: #184446, #185662. Closes: #189983. + For this reason, tighten the libstdc++5 shlibs dependency. See + http://lists.debian.org/debian-devel/2003/debian-devel-200304/msg01895.html + Don't build the ix86 specfic libstdc++ libs anymore. + + -- Matthias Klose Sun, 27 Apr 2003 19:47:54 +0200 + +gcc-3.3 (1:3.3ds5-0pre5) unstable; urgency=low + + * gcc-3.3 prerelease taken from the gcc-3_3-branch (CVS 20030415). + * Disable treelang on powerpc. + * Disable gpc on m68k. + * Install locale data. Conflict with gcc-3.2 (<= 1:3.2.3-0pre8). + * Fix generated bits/atomicity.h (closes: #189183). + * Tighten libgcc1 shlibs dependency (new symbol _Unwind_Backtrace). + + -- Matthias Klose Wed, 16 Apr 2003 00:37:05 +0200 + +gcc-3.3 (1:3.3ds4-0pre4) unstable; urgency=low + + * gcc-3.3 prerelease taken from the gcc-3_3-branch (CVS 20030412). + * Avoid sparc64 dependencies for libgcc1 on sparc (Clint Adams). + * Make the default sparc 32bit target v8 instead of v7. This mainly + enables hardmul, which should speed up v8 and v9 systems by a large + margin (Ben Collins). + * Tighten binutils dependency for sparc. + * On i386, build libstdc++ optimized for i486 and above. The library + in /usr/lib is built for i386. Closes: #184446, #185662. + * Add gpc build (from gcc-snapshot package). + * debian/control: Include all packages, that _can_ be built from + this source package (except the cross packages). + * Add m68k patches: m68k-const, m68k-subreg, m68k-loop. + * Run the 3.3 testsuite a second time with the installed gcc-3.2 + to check for regressions (promised, only this time, and for the + final release ;). Add build dependencies (gobjc-3.2, g77-3.2, g++-3.2). + + -- Matthias Klose Sat, 12 Apr 2003 10:11:11 +0200 + +gcc-3.3 (1:3.3ds3-0pre3) unstable; urgency=low + + * gcc-3.3 prerelease taken from the gcc-3_3-branch (CVS 20030331). + * Reenable java on arm. + * Build-Depend on binutils-2.13.90.0.18-1.3 on m68k. Fixes all + bprob/gcov testsuite failures. + * Enable C++ build on arm. + * Enable the sparc64 build. + + -- Matthias Klose Mon, 31 Mar 2003 23:24:54 +0200 + +gcc-3.3 (1:3.3ds2-0pre2) unstable; urgency=low + + * gcc-3.3 prerelease taken from the gcc-3_3-branch (CVS 20030317). + * Disable building the gcc-3.3-nof package. + * Disable Ada on mips and mipsel. + * Remove the workaround to build Ada on powerpc. + * Add GNU Free documentation license to copyright file. + * Update the sparc64 build patches (Clint Adams). Not yet enabled. + * Disable C++ on arm (Not yet tested). + * Add fix for ICE on powerpc (see: #184684). + + -- Matthias Klose Sun, 16 Mar 2003 21:40:57 +0100 + +gcc-3.3 (1:3.3ds1-0pre1) unstable; urgency=low + + * gcc-3.3 prerelease taken from the gcc-3_3-branch (CVS 20030310). + * Add gccbug manpage. + * Don't build libgnat package (no shared library). + * Configure with --enable-sjlj-exceptions on hppa and m68k for + binary compatibility with libstdc++ built with gcc-3.2. + * Disable Java on arm-linux (never seen it sucessfully bootstrap). + * Install non-conflicting baseline README. + * multilib *.so and *.a moved to /usr/lib/gcc-lib/... , so that several + compiler versions can be installed concurrently. + * Remove libstdc++-incdir patch applied upstream. + * libstdc++ 64 bit development files now handled in -dev target. + (Gerhard Tonn) + * Drop build dependencies for gpc (tetex-bin, help2man, libncurses5-dev). + * Add libstdc++5-3.3-dev confict to libstdc++5-dev (<= 1:3.2.3-0pre3). + * Enable builds on m68k (all but C++ for the moment). gcc-3.3 bootstraps, + while gcc-3.2 doesn't. + + -- Matthias Klose Mon, 10 Mar 2003 23:41:00 +0100 + +gcc-3.3 (1:3.3ds0-0pre0) unstable; urgency=low + + * First gcc-3.3 package, built for s390 only. All other architectures + build the gcc-3.3-base package only. + To build the package on other architectures, edit debian/rules.defs + (macro no_dummy_archs). + * gcc-3.3 prerelease taken from the gcc-3_3-branch (CVS 20030301). + * Don't include the gcc locale files (would conflict with 3.2). + * Remove libffi-install-fix patch. + * Fix netbsd-i386 patches. + * Change priority of libstdc++5 and gcc-3.2-base to important. + * Install gcjh-wrapper for javah. + * gij suggests fastjar, gcj recommends fastjar. + * Allow builds using automake1.4 | automake (<< 1.5). + * Backport fix for to output more correct line numbers. + * Add help2man to build dependencies needed for some gpc man pages. + * gpc: Install binobj and gpidump binaries and man pages. + * Apply cross compilation patches submitted by Bastian Blank. + * Replace s390-biarch patch and copy s390-config-ml patch from 3.2 + (Gerhard Tonn). + * Configure using --enable-debug. + * Add infrastructure to only build a subset of binary packages. + * Rename libstdc++-{dev,dbg,pic,doc} packages. + * Build treelang compiler. + + -- Matthias Klose Sat, 1 Mar 2003 12:56:42 +0100 + +gcc-3.2 (1:3.2.3ds2-0pre3) unstable; urgency=low + + * gcc-3.2.3 prerelease (CVS 20030228) + - Fixes bootstrap failure on alpha-linux. + - Fixes ICE on m68k (closes: #177016). + * Build Pascal with -O1 on powerpc, disable Pascal on arm, m68k and + sparc (due to wrong code generation for fwrite in glibc, + see PR optimization/9279). + * Apply cross compilation patches submitted by Bastian Blank. + + -- Matthias Klose Fri, 28 Feb 2003 20:26:30 +0100 + +gcc-3.2 (1:3.2.3ds1-0pre2) unstable; urgency=medium + + * gcc-3.2.3 prerelease (CVS 20030221) + - Fixes ICE on hppa (closes: #181813). + * Patch for ffitest in s390-java.dpatch deleted, since already fixed + upstream. (Gerhard Tonn) + * Build crtbeginT.o on m68k-linux (closes: #179807). + * Install gcjh-wrapper for javah (closes: #180218). + * gij suggests fastjar, gcj recommends fastjar (closes: #179298). + * Allow builds using automake1.4 | automake (<< 1.5) (closes: #180048). + * Backport fix for to output more correct line numbers (closes: #153965). + * Add help2man to build dependencies needed for some gpc man pages. + * gpc: Install binobj and gpidump binaries and man pages. + * Disable gpc on arm due to wrong code generation for fwrite in + glibc (see PR optimization/9279). + + -- Matthias Klose Sat, 22 Feb 2003 19:58:20 +0100 + +gcc-3.2 (1:3.2.3ds0-0pre1) unstable; urgency=low + + * gcc-3.2.3 prerelease (CVS 20030210) + - Fixes long millicode calls on hppa (closes: #180520) + * New gpc-20030209 version. Remove gpc-update.dpatch and gpc-testsuite.dptch + as they are no longer needed. + * Fix netbsd-i386 patches (closes: #180129, #179931) + * m68k-bootstrap.dpatch: backport gcse.c changes from 3.3/MAIN to 3.2 + * Change priority of libstdc++5 and gcc-3.2-base to important. + + -- Ryan Murray Tue, 11 Feb 2003 06:18:09 -0700 + +gcc-3.2 (1:3.2.2ds8-1) unstable; urgency=low + + * gcc-3.2.2 release. + - Fixes ICE, regression from 2.95 (closes: #176117). + - Fixes ICE, regression from 2.95 (closes: #179161). + * libstdc++ for biarch installs now upstream to usr/lib64, + therefore mv usr/lib/64 usr/lib64 no longer necessary. (Gerhard Tonn) + + -- Ryan Murray Wed, 5 Feb 2003 01:35:29 -0700 + +gcc-3.2 (1:3.2.2ds7-0pre8) unstable; urgency=low + + * gcc-3.2.2 prerelease (CVS 20030130). + * update s390 libffi patch + * debian/control: add myself to uploaders and change libc12-dev depends to + libc-dev on i386 (closes: #179128) + * Build-Depend on procps so that ps is available for logwatch + + -- Ryan Murray Fri, 31 Jan 2003 04:00:15 -0700 + +gcc-3.2 (1:3.2.2ds6-0pre7) unstable; urgency=low + + * gcc-3.2.2 prerelease (CVS 20030128). + - Update needed for hppa. + - Fixes ICE on arm, regression from 2.95.x (closes: #168086). + - Can use default bison (1.875). + * Apply netbsd build patches (closes: #177674, #178328, #178325, + #178326, #178327). + * Run the logwatch script on "slow" architectures (arm, m68k) only. + * autoreconf.dpatch: Only update libtool.m4, which is newer conceptually + than libtool 1.4 (Ryan Murray). + * Apply autoreconf patch universally (Ryan Murray). + * More robust gij/gcj wrapper scripts, include /usr/lib/jni in default + JNI search path (Ben Burton). Closes: #167932. + * Build crtbeginT.o on m68k (closes: #177036). + * Fixed libc-dev source dependency (closes: #178602). + * Tighten shlib dependency to the current package version; should be + 1:3.2.2-1 for the final release (closes: #178867). + + -- Matthias Klose Tue, 28 Jan 2003 21:59:30 +0100 + +gcc-3.2 (1:3.2.2ds5-0pre6) unstable; urgency=low + + * gcc-3.2 snapshot taken from the gcc-3_2-branch (CVS 20030123). + * Build locales needed by the libstdc++ testsuite. + * Update config.{guess,sub} files from autotools-dev (closes: #177674). + * Disable Ada and Java on netbsd-i386 (closes: #177679). + * gnat: Add suggests for gnat-doc and ada-reference-manual. + + -- Matthias Klose Thu, 23 Jan 2003 22:16:53 +0100 + +gcc-3.2 (1:3.2.2ds4-0pre5.1) unstable; urgency=low + + * Readd build dependency `locales' on arm. locales is now installable + * Add autoreconf patch for mips{,el}. (closes: #176311) + + -- Ryan Murray Wed, 22 Jan 2003 14:31:14 -0800 + +gcc-3.2 (1:3.2.2ds4-0pre5) unstable; urgency=low + + * Remove build dependency `libc6-dev-sparc64 [sparc]' for now. + * Remove build dependency `locales' on arm. locales is uninstallable + on arm due to the missing glibc-2.3. + * Use bison-1.35. bison-1.875 causes an hard error on the reduce/reduce + conflict in objc-parse.y. + + -- Matthias Klose Fri, 10 Jan 2003 10:10:43 +0100 + +gcc-3.2 (1:3.2.2ds4-0pre4) unstable; urgency=low + + * Try building with gcc-2.95 on m68k-linux. Building gcc-3.2 with gcc-3.2 + does not work for me. m68k-linux doesn't look good at all ... + * Fix s390 build error. + * Add locales to build dependencies. A still unsolved issue is the + presence of the locales de_DE, en_PH, en_US, es_MX, fr_FR and it_IT, + or else some tests in the libstdc++ testsuite will fail. + * Put all -nof files in the -nof package (closes: #175253). + * Correctly exit logwatch script (closes: #175251). + * Install linker-map.gnu file for libstdc++_pic (closes: #175144). + * Install versioned gpcs docs only (closes: #173844). + * Include gpc test results in gpc package. + * Link local libstdc++ documentation to local source-level documentation. + * Clarify libstdc++ description (so version and library version). + Closes: #175799. + * Include library in libstdc++-dbg package (closes: #176005). + + -- Matthias Klose Wed, 8 Jan 2003 23:39:50 +0100 + +gcc-3.2 (1:3.2.2ds3-0pre3) unstable; urgency=low + + * gcc-3.2 snapshot taken from the gcc-3_2-branch (CVS 20021231). + - Fix loop count computation for preconditioned unrolled loops. + Closes: #162919. + - Fix xmmintrin.h (_MM_TRANSPOSE4_PS) CVS 20021027 (closes: #163647). + - Fix [PR 8601] strlen/template interaction causes ICE CVS 20021201. + Closes: #166143. + * Watch the log files, which are written during the testsuite runs and print + out a message, if there is still activity. No more buildd timeouts on arm + and m68k ... + * Remove gpc's reference to librx1g-dev package (closes: #172953). + * Remove trailing dots on package descriptions. + * Fix external reference to cpp.info in gcc.info (closes: #174598). + + -- Matthias Klose Tue, 31 Dec 2002 13:47:52 +0100 + +gcc-3.2 (1:3.2.2ds2-0pre2) unstable; urgency=medium + + * Friday, 13th upload, so what do you expect ... + * gcc-3.2 snapshot taken from the gcc-3_2-branch (CVS 20021212). + * Fix gnat build (autobuild maintainers: please revert back to gnat-3.2 + (<= 1:3.2.1ds6-1) for building gnat-3.2, if the build fails building + gnatlib and gnattools). + * Really disable sparc64 support. + + -- Matthias Klose Fri, 13 Dec 2002 00:26:37 +0100 + +gcc-3.2 (1:3.2.2ds1-0pre1) unstable; urgency=low + + * A candidate for the transition ... + * gcc-3.2 snapshot taken from the gcc-3_2-branch (CVS 20021210). + - doc/invoke.texi: Remove last reference to -a (closes: #171748). + * Disable sparc64 support. For now please use egcs64 to build sparc64 + kernels. + * Disable Pascal on the sparc architecture (doesn't bootstrap). + + -- Matthias Klose Tue, 10 Dec 2002 22:33:13 +0100 + +gcc-3.2 (1:3.2.2ds0-0pre0) unstable; urgency=low + + * gcc-3.2 snapshot taken from the gcc-3_2-branch (CVS 20021202). + - Should fix _Pragma expansion within macros (closes: #157416). + * New gpc-20021128 version. Run check using EXTRA_TEST_PFLAGS=-g0 + * Add tetex-bin to build dependencies (gpc needs it). Closes: #171203. + + -- Matthias Klose Tue, 3 Dec 2002 08:22:33 +0100 + +gcc-3.2 (1:3.2.1ds6-1) unstable; urgency=low + + * gcc-3.2.1 final release. + * Build gpc-20021111 for all architectures. hppa and i386 are + known to work. For the other architectures, send the usual FTBFS ... + WARNING: this gpc version is an alpha version, especially debug info + doesn't work well, so use -g0 for compiling. If you need a stable + gpc compiler, use gpc-2.95. + * Encode the gpc upstream version in the package name, the gpc release + date in the version number (requested by gpc upstream). + * Added libncurses5-dev and libgmp3-dev as build dependencies for the + gpc tests and runtime. + * Clean CVS files as well (closes: #169101). + * s390-biarch.dpatch added, backported from CVS (Gerhard Tonn). + * s390-config-ml.dpatch added, disables biarch for java, + libffi and boehm-gc on s390. They need a 64 bit runtime + during build which is not yet available on s390 (Gerhard Tonn). + * Biarch support for packaging adapted (Gerhard Tonn). + biarch variable added and with-sparc64 variable substituted in + most places by biarch. + dh_shlibdeps is applied only to 32 bit libraries on s390, since + ldd for 64 bit libraries don't work on 32 bit runtime. + Build dependency to libc6-dev-s390x added. + + -- Matthias Klose Wed, 20 Nov 2002 00:20:58 +0100 + +gcc-3.2 (1:3.2.1ds5-0pre6) unstable; urgency=medium + + * gcc-3.2.1 prerelease. + * Removed arm patch integrated upstream. + * Adjust gnat build dependency (closes: #167116). + * Always configure with --enable-clocale=gnu. The autobuilders do have + locales installed, but not generated the "de_DE" locale needed for + the autoconf test in libstdcc++-v3/aclocal.m4. + * libstdc++ documentaion: Don't compresss '*.txt' referenced by html pages. + + -- Matthias Klose Tue, 12 Nov 2002 07:19:44 +0100 + +gcc-3.2 (1:3.2.1ds4-0pre5) unstable; urgency=medium + + * gcc-3.2.1 snapshot (CVS 20021103). + * sparc64-build.dpatch: Updated. Lets sparc boostrap again. + * s390-loop.dpatch removed, already fixed upstream (Gerhard Tonn). + * bison.dpatch: Removed, patch submitted upstream. + * backport-java-6865.dpatch: Apply again during build. + * Tighten glibc dependency (closes: #166703). + + -- Matthias Klose Sun, 3 Nov 2002 12:22:02 +0100 + +gcc-3.2 (1:3.2.1ds3-0pre4) unstable; urgency=high + + * gcc-3.2.1 snapshot (CVS 20021020). + - Expansion of _Pragma within macros fixed (closes: #157416). + * FTBFS: With the switch to bison-1.50 (and 1.75), gcc-3.2 fails to build from + source on Debian unstable systems. This is fixed in gcc HEAD, but not on + the current release branch. + HELP NEEDED: + - check what is missing from the patches in debian/patches/bison.dpatch. + This is a backport of the bison related patches, but showing regressions + in the gcc testsuite, so it cannot be applied. + - build gcc using byacc (bootstrap currently fails using byacc). + - build bison-1.35 in it's own package (the current 1.35-3 package fails + to build form source). + - and finally ask upstream to backport the patch to the branch. It's not + helpful not beeing able to follow the stable branch. Maybe we should + just switch to gcc HEAD as BSD does ... + As a terrible workaround, build the sources from CVS first on a machine, + with bison-1.35 installed, then package the tarball, so the bison + generated files are not rebuilt. + + * re-add lost patch: configure with --enable-__cxa_atexit (closes: #163422), + Therefore urgency high. + * gcj-wrapper, gij-wrapper: Accept names starting with `.' (closes: #163172, + #164009). + * Point g++ manpage to correct g++ version (closes: #162843). + * Support for i386-freebsd-gnu (closes: #163883). + * s390-java.dpatch replaced with backport from cvs head (Gerhard Tonn). + * Disable the testsuite run on the Hurd (closes: #159650). + * s390-loop.dpatch added, fixes runtime problem (Gerhard Tonn). + * debian/patches/bison.dpatch: Backport for bison-1.75 compatibility. + Don't use it due to regressions. + * debian/patches/backport-java-6865.dpatch: Directly applied in the + included tarball because of bison problems. + * Make fixincludes priority optional, so linda can depend on it. + * Tighten binutils dependency. + + -- Matthias Klose Sun, 20 Oct 2002 10:52:49 +0200 + +gcc-3.2 (1:3.2.1ds2-0pre3) unstable; urgency=low + + * gcc-3.2.1 snapshot (CVS 20020923). + * Run the libstdc++ check-abi script. Results are put into the file + /usr/share/doc/libstdc++5/README.libstdc++-baseline in the libstdc++5-dev + package. This file contains a new baseline, if no baseline for this + architecture is included in the gcc sources. + * gcj-wrapper: Accept files starting with an underscore, accept + path names (closes: #160859, #161517). + * Explicitely call automake-1.4 when rebuilding Makefiles (closes: #161438). + * Let installed fixincludes script find files in /usr/lib/fixincludes. + * debian/rules.patch: Add .NOTPARALLEL as target, so that patches are + applied sequentially (closes: #159395). + + -- Matthias Klose Tue, 24 Sep 2002 07:36:56 +0200 + +gcc-3.2 (1:3.2.1ds1-0pre2) unstable; urgency=low + + * gcc-3.2.1 snapshot (CVS 20020913). Welcome back m68k in bootstrap land! + * Fix arm-tune.dpatch (closes: #159354). + * Don't overwrite LD_LIBRARY_PATH in build (closes: #158459). + * --disable-__cxa_atexit on NetBSD (closes: #159620). + * Reenable installation of message catalogs (disabled in 3.2-0pre2). + Closes: #160175. + * Ben Collins + - Re-enable sparc64 build. This time, it's part of the default compiler. + I have disabled 64/alt libraries as they are too much overhead. All + libraries build 64bit, but currently only libgcc/libstdc++ include the + 64bit libraries. + Closes: #160404. + * Depend on autoconf2.13, instead of autoconf. + * Phil Blundell + - debian/patches/arm-update.dpatch: Fix python2.2 build failure. + + -- Matthias Klose Sat, 7 Sep 2002 08:05:02 +0200 + +gcc-3.2 (1:3.2.1ds0-0pre1) unstable; urgency=medium + + * gcc-3.2.1 snapshot (CVS 20020829). + New g++ option -Wabi: + Warn when G++ generates code that is probably not compatible with the + vendor-neutral C++ ABI. Although an effort has been made to warn about + all such cases, there are probably some cases that are not warned about, + even though G++ is generating incompatible code. There may also be + cases where warnings are emitted even though the code that is generated + will be compatible. + The current version of the ABI is 102, defined by the __GXX_ABI_VERSION + macro. + * debian/NEWS.*: Updated. + * Fix libstdc++-dev dependency on libc-dev for the Hurd (closes: #157004). + * Add versioned expect build dependency. + * Tighten binutils dependency to 2.13.90.0.4. + * debian/patches/arm-tune.dpatch: Increase stack limit for configure. + * 3.2-0pre4 did build gnat-3.2 compilers for all architectures. Build-Depend + on gnat-3.2 now (closes: #156734). + * Remove bashism's in gcj-wrapper (closes: #157982). + * Add -cp and -classpath options to gij(1). Backport from HEAD (#146634). + * Add fastjar documentation. + + -- Matthias Klose Fri, 30 Aug 2002 10:35:00 +0200 + +gcc-3.2 (1:3.2ds0-0pre4) unstable; urgency=low + + * Correct build dependency on gnat-3.1. + + -- Matthias Klose Mon, 12 Aug 2002 01:21:58 +0200 + +gcc-3.2 (1:3.2ds0-0pre3) unstable; urgency=low + + * gcc-3.2 upstream prerelease. + * Disable all configure options, which are standard: + --enable-threads=posix --enable-long-long, --enable-clocale=gnu + + -- Matthias Klose Fri, 9 Aug 2002 21:59:08 +0200 + +gcc-3.2 (1:3.2ds0-0pre2) unstable; urgency=low + + * gcc-3.2 snapshot (CVS 20020802). + * Fix g++-include dir. + * Don't install the locale files (temporarily, until we don't build + gcc-3.1 anymore). + * New package libgcj-common to avoid conflict with classpath package. + + -- Matthias Klose Sat, 3 Aug 2002 09:08:34 +0200 + +gcc-3.2 (1:3.2ds0-0pre1) unstable; urgency=low + + * gcc-3.2 snapshot (CVS 20020729). + + -- Matthias Klose Mon, 29 Jul 2002 20:36:54 +0200 + +gcc-3.1 (1:3.1.1ds3-1) unstable; urgency=low + + * gcc-3.1.1 release. Following this release we will have a gcc-3.2 + release soon, which is gcc-3.1.1 plus some C++ ABI changes. Once + gcc-3.2 hits the archives, gcc-3.1.1 will go away. + * Don't build the sparc64 compiler. The packaging/patches are + currently broken. + * Add missing headers on m68k and powerpc. + * Install libgcc_s_nof on powerpc. + * Install libffi's copyright and doc files (closes: #152198). + * Remove dangling symlink (closes: #149002). + * libgcj3: Add a conflict to the classpath package (closes: #148664). + * README.C++: Fix URLs. + * libstdc++-dbg: Install into /usr/lib/debug, document it. + * backport-java-6865.dpatch: backport from HEAD. + * Fix typo in gcj docs (closes: #148890). + * Change libstdc++ include dir: /usr/include/c++/3.1. + * libstdc++-codecvt.dpatch: New patch (closes: #149776). + * Build libstdc++-pic package. + * Move 64bit libgcc in its own package libgcc1-64 (closes: #147249). + * Tighten glibc dependency. + + -- Matthias Klose Mon, 29 Jul 2002 00:34:49 +0200 + +gcc-3.1 (1:3.1.1ds2-0pre3) unstable; urgency=low + + * Updated to CVS 2002-06-06 (gcc-3_1-branch). + * Updated s390-java patch (Gerhard Tonn). + * Don't use -O in STAGE1_FLAGS on m68k. + * Fix `-classpath' option in gcj-wrapper script (closes: #150142). + * Remove g++-cxa-atexit patch, use --enable-__cxa_atexit configure option. + + -- Matthias Klose Wed, 3 Jul 2002 23:52:58 +0200 + +gcc-3.1 (1:3.1.1ds1-0pre2) unstable; urgency=low + + * Updated to CVS 2002-06-06 (gcc-3_1-branch), fixing an ObjC regression. + * Welcome m68k to bootstrap land (thanks to Andreas Schwab). + * Add javac wrapper for gcj-3.1 (Michael Koch). + * Remove dangling symlink in /usr/share/doc/gcc-3.1 (closes: #149002). + + -- Matthias Klose Fri, 7 Jun 2002 00:26:05 +0200 + +gcc-3.1 (1:3.1.1ds0-0pre1) unstable; urgency=low + + * Updated to CVS 2002-05-31 (gcc-3_1-branch). + * Change priorities from fastjar and gij-wrapper-3.1 from 30 to 31. + * Update arm-tune patch. + * Install xmmintrin.h header on i386 (closes: #148181). + * Install altivec.h header on powerpc. + * Call correct gij in gij-wrapper (closes: #148662, #148682). + + -- Matthias Klose Wed, 29 May 2002 22:47:40 +0200 + +gcc-3.1 (1:3.1ds2-2) unstable; urgency=low + + * Tighten binutils dependency. + * Fix libstdc include dir for multilibs (Dan Jacobowitz). + + -- Matthias Klose Tue, 21 May 2002 08:03:49 +0200 + +gcc-3.1 (1:3.1ds2-1) unstable; urgency=low + + * GCC 3.1 release. + * Ada cannot be built by the autobuilders for the first time. Do it by hand. + gnatgcc and gnatbind need to be in the PATH. + * Build with CC=gnatgcc, when building the Ada compiler. + * Hurd fixes. + * Don't build the sparc64 compiler; the hack isn't up to date and glibc + isn't converted to use /lib64 and /usr/lib64. + * m68k-linux shows bootstrap comparision failures. If you want to build + the compiler anyway and ignore the bootstrap comparision failure, edit + debian/rules.patch and uncomment the patch to ignore the failure. See + /usr/share/doc/gcc-3.1/BOOTSTRAP_COMPARISION_FAILURE for the differences. + + -- Matthias Klose Wed, 15 May 2002 09:53:00 +0200 + +gcc-3.1 (1:3.1ds1-0pre6) unstable; urgency=low + + * Build from the "final prerelease" tarball (gcc-3.1-20020508.tar.gz). + * Build gnat-3.1-doc package. + * Build fastjar package without building java packages. + * Hurd fixes. + * Updated sparc64-build patch. + * Add s390-ada patch (Gerhard Tonn). + * Undo the dwarf2 support for hppa from -0pre5. + + -- Matthias Klose Thu, 9 May 2002 17:21:09 +0200 + +gcc-3.1 (1:3.1ds0-0pre5) unstable; urgency=low + + * Use /usr/include/g++-v3-3.1 as C++ include dir. + * Update s390-java patch (Gerhard Tonn). + * Tighten binutils dependency (gas patch for m68k-linux). + * Use gnat-3.1 as the gnat package name (as found in gcc/ada/gnatvsn.ads). + * dwarf2 support hppa: a snapshot of the gcc/config/pa directory + from the trunk dated 2002-05-02. + + -- Matthias Klose Fri, 3 May 2002 22:51:37 +0200 + +gcc-3.1 (1:3.1ds0-0pre4) unstable; urgency=low + + * Use gnat-5.00w as the gnat package name (as found in gcc/ada/gnatvsn.ads). + * Don't build the shared libgnat library. It assumes an existing shared + libiberty library. + * Don't install the libgcjgc library. + + -- Matthias Klose Thu, 25 Apr 2002 08:48:04 +0200 + +gcc-3.1 (1:3.1ds0-0pre3) unstable; urgency=low + + * Build fastjar on all architectures. + * Update m68k patches. + * Update s390-java patch (Gerhard Tonn). + + -- Matthias Klose Sun, 14 Apr 2002 15:34:47 +0200 + +gcc-3.1 (1:3.1ds0-0pre2) unstable; urgency=low + + * Add Ada support. To successfully build, a working gnatbind and gcc + driver with Ada support is needed. + * Apply needed arm patches from 3.0.4. + + -- Matthias Klose Sat, 6 Apr 2002 13:17:08 +0200 + +gcc-3.1 (1:3.1ds0-0pre1) unstable; urgency=low + + * First try for gcc-3.1. + + -- Matthias Klose Mon, 1 Apr 2002 23:39:30 +0200 + +gcc-3.0 (1:3.0.4ds3-6) unstable; urgency=medium + + * Second try at fixing sparc build problems. + + -- Phil Blundell Sun, 24 Mar 2002 14:49:26 +0000 + +gcc-3.0 (1:3.0.4ds3-5) unstable; urgency=medium + + * Enable java on ARM. + * Create missing directory to fix sparc build. + + -- Phil Blundell Fri, 22 Mar 2002 20:21:59 +0000 + +gcc-3.0 (1:3.0.4ds3-4) unstable; urgency=low + + * Link with system zlib (closes: #136359). + + -- Matthias Klose Tue, 12 Mar 2002 20:47:59 +0100 + +gcc-3.0 (1:3.0.4ds3-3) unstable; urgency=low + + * Build libf2c (pic and non-pic) with -mieee on alpha-linux. + + -- Matthias Klose Sun, 10 Mar 2002 00:37:24 +0100 + +gcc-3.0 (1:3.0.4ds3-2) unstable; urgency=medium + + * Apply hppa-build patch (Randolph Chung). Closes: #136731. + * Make libgcc1 conflict/replace with libgcc1-sparc64. Closes: #135709. + * gij-3.0 provides the `java' command. Closes: #128947. + * Depend on binutils (>= 2.11.93.0.2-2), allows stripping of libgcj.a + again. Closes: #99307. + * Update README.cross pointing to the README of the toolchain-source + package. + + -- Matthias Klose Wed, 6 Mar 2002 21:53:34 +0100 + +gcc-3.0 (1:3.0.4ds3-1) unstable; urgency=low + + * Final gcc-3.0.4 release. + * debian/rules.d/binary-java.mk: Fix dormant typo, exposed by removing the + duplicate libgcj dependency and adding the gij-3.0 package. + Closes: #134005. + * New patch by Phil Blundell to fix scalapack build error on m68k. + + -- Matthias Klose Wed, 20 Feb 2002 23:59:43 +0100 + +gcc-3.0 (1:3.0.4ds2-0pre020210) unstable; urgency=low + + * Make the base package dependent on the binary-arch target. Closes: #133433. + * Get libstdc++ on arm woring (define _GNU_SOURCE). Closes: #133435. + + -- Matthias Klose Mon, 11 Feb 2002 20:31:12 +0100 + +gcc-3.0 (1:3.0.4ds2-0pre020209) unstable; urgency=high + + * Update to CVS sources (20020209 gcc-3_0-branch). + * Apply patch to fix bootstrap error on arm-linux (submitted upstream + by Phil Blundell). Closes: #130422. + * Make base package architecture any. + * Decouple versioned shlib dependencies from release number for + libobjc as well. + + -- Matthias Klose Sat, 9 Feb 2002 01:30:11 +0100 + +gcc-3.0 (1:3.0.4ds1-0pre020203) unstable; urgency=medium + + * One release critical bug outstanding: + - bootstrap error on arm. + * Update to CVS sources (20020203 gcc-3_0-branch). + * Fixed upstream: PR c/3504: Correct documentation of __alignof__. + Closes: #85445. + * Remove libgcc-powerpc patch, integrated upstream (closes: #131977). + * Tighten binutils build dependency (to address #126162). + * Move jv-convert to gcj package (closes: #131985). + + -- Matthias Klose Sun, 3 Feb 2002 14:47:14 +0100 + +gcc-3.0 (1:3.0.4ds0-0pre020127) unstable; urgency=low + + * Two release critical bugs outstanding: + - bootstrap error on arm. + - bus errors for C++ and java executables on sparc (see the testsuite + results). + * Update to CVS sources (20020125 gcc-3_0-branch). + * Enable java support for s390 architecture (patch from Gerhard Tonn). + * Updated NEWS file for 3.0.3. + * Disable building the gcc-sparc64, but build a multilibbed compiler + for sparc as the default. + * Disabled the subreg-byte patch for sparc (request from Ben Collins). + * Fixed reference to libgcc1 package in README (closes: #126218). + * Do recommend libc-dev, not depend on it. For low-end or embedded systems + the dependency on libc-dev can make the difference between + having enough or having too little space to build a kernel. + * README.cross: Updated by Hakan Ardo. + * Decouple versioned shlib dependencies from release number. Closes: #118391. + * Fix diversions for gcc-3.0-sparc64 package (closes: #128178), + unconditionally remove `sparc64-linux-gcc' alternative. + * g77/README.libg2c.Debian: New file mentioning `libg2c-pic'. The next + g77 version (3.1) does build a static and shared library (closes: #104250). + * Fix formatting errors in the synopsis of the java man pages. Maybe the + reason for #127571. Closes: #127571. + * fastjar: Fail for the (currently incorrect) -u option. Addresses: #116145. + Add alternative for `jar' using priority 30 (closes: #118648). + * jv-convert: Add --help option and man page. Backport from HEAD branch. + * libgcj2-dev: Remove duplicate dependency (closes: #127805). + * Giving up and make just another new package gij-X.Y with only the gij-X.Y + binary for policy conformance (closes: #127111). + * gij: Provides an alternative for `java' (priority 30) using a wrapper + script (Stephen Zander) (closes: #128974). Added simple manpage. + + -- Matthias Klose Sun, 27 Jan 2002 13:33:41 +0100 + +gcc-3.0 (1:3.0.3ds3-1) unstable; urgency=low + + * Final gcc-3.0.3 release. + * Do not compress .txt files in libstdc++ docs referenced from html + pages (closes: #124136). + * libstdc++-dev suggests libstdc++-doc. + * debian/patches/gcc-ia64-NaT.dpatch: Update (closes: #123685). + + -- Matthias Klose Fri, 21 Dec 2001 02:54:11 +0100 + +gcc-3.0 (1:3.0.3ds2-0pre011215) unstable; urgency=low + + * Update to CVS sources (011215). + * libstdc++ documentation updated upstream (closes: #123790). + * debian/patches/gcc-ia64-NaT.dpatch: Disable. Fixes bootstrap error + on ia64 (#123685). + + -- Matthias Klose Sat, 15 Dec 2001 14:43:21 +0100 + +gcc-3.0 (1:3.0.3ds1-0pre011210) unstable; urgency=medium + + * Update to CVS sources (011208). + * Supposed to fix powerpc build error (closes: #123155). + + -- Matthias Klose Thu, 13 Dec 2001 07:26:05 +0100 + +gcc-3.0 (1:3.0.3ds0-0pre011209) unstable; urgency=medium + + * Update to CVS sources (011208). Frozen for upstream 3.0.3 release. + * Apply contrib/PR3145.patch, a backport of Nathan Sidwell's patch to + fix PR c++/3145, the infamous "virtual inheritance" bug. This affected + especially KDE2 (eg. artsd). Franz Sirl + * cc1plus segfault in strength reduction fixed upstream. Closes: #122547. + * debian/patches/gcc-ia64-NaT.dpatch: Add patch to avoid a bug that can + cause miscompiled userapps to crash the kernel. Closes: #121924. + * Reenable shared libgcc for powerpc. Fixed upstream. + http://gcc.gnu.org/ml/gcc-patches/2001-11/msg00340.html + debian/patches/libgcc-powerpc.dpatch: New patch. + * Add upstream changelogs. + * Remove gij alternative. Move to gij package. + + -- Matthias Klose Sun, 9 Dec 2001 09:36:48 +0100 + +gcc-3.0 (1:3.0.2ds4-4) unstable; urgency=medium + + * Disable building of libffi on mips and mipsel. + (closes: #117503). + * Enable building of shared libgcc on s390 + (closes: #120452). + + -- Christopher C. Chimelis Sat, 1 Dec 2001 06:15:29 -0500 + +gcc-3.0 (1:3.0.2ds4-3) unstable; urgency=medium + + * Fix logic to build libffi without java (closes: #117503). + + -- Matthias Klose Sun, 4 Nov 2001 14:34:50 +0100 + +gcc-3.0 (1:3.0.2ds4-2) unstable; urgency=medium + + * Enable java for ia64 (Jeff Licquia). Closes: #116798. + * Allow building of libffi without gcj (Jeff Licquia). + New libffi packages for arm hurd-i386 mips mipsel, + still missing: hppa, s390. + * debian/NEWS.gcc: Add 3.0.2 release notes. + * debian/patches/hppa-align.dpatch: New patch from Alan Modra, + submitted by Randolph Tausq. + + -- Matthias Klose Thu, 25 Oct 2001 23:59:31 +0200 + +gcc-3.0 (1:3.0.2ds4-1) unstable; urgency=medium + + * Final gcc-3.0.2 release. The source tarball is not the released + tarball, but taken from CVS 011024). + * Remove patch for s390, included upstream. + + -- Matthias Klose Wed, 24 Oct 2001 00:49:40 +0200 + +gcc-3.0 (1:3.0.2ds3-0pre011014) unstable; urgency=low + + * Update to CVS sources (011014). Frozen for upstream 3.0.2 release. + Closes: #109351, #114099, #114216, #105741 (allegro3938). + * Added debian/patches/fastjar.dpatch, which makes fastjar extract + filenames correctly (previously, some had incorrect names on extract). + Closes: #113236. + * Priorities fixed in the past (closes: #94404). + + -- Matthias Klose Sun, 14 Oct 2001 13:19:43 +0200 + +gcc-3.0 (1:3.0.2ds2-0pre010923) unstable; urgency=low + + * Bootstraps on powerpc again (closes: #112777). + + -- Matthias Klose Sun, 23 Sep 2001 01:32:11 +0200 + +gcc-3.0 (1:3.0.2ds2-0pre010922) unstable; urgency=low + + * Update to CVS sources (010922). + * Fixed upstream (closes: #111801). #105569 on hppa. + * Update hppa patch (Matt Taggart). + * Fix libstdc++-dev package description (closes: #112758). + * debian/rules.d/binary-objc.mk: Fix build error (closes: #112462). + * Make gobjc-3.0 conflict with gcc-3.0-sparc64 (closes: #111772). + + -- Matthias Klose Sat, 22 Sep 2001 09:34:49 +0200 + +gcc-3.0 (1:3.0.2ds1-0pre010908) unstable; urgency=low + + * Update to CVS sources (010908). + * Update hppa patch (Matt Taggart). + * Depend on libgc6-dev, not libgc5-dev, which got obsolete (during + the freeze ...). However adds s390 support (closes: #110189). + * debian/patches/m68k-reload.dpatch: New patch (Roman Zippel). + Fixes #89023. + * debian/patches/gcc-sparc.dpatch: New patch ("David S. Miller"). + Fixes libstdc++ testsuite failures on sparc. + + -- Matthias Klose Sat, 8 Sep 2001 14:26:20 +0200 + +gcc-3.0 (1:3.0.2ds0-0pre010826) unstable; urgency=low + + * gcc-3.0-nof: Fix symlink to gcc-3.0-base doc directory. + * debian/patches/gcj-without-rpath: New patch. + * Remove self dependency on libgcj package. + * Handle diversions for upgrades from 3.0 and 3.0.1 -> 3.0.2 + in gcc-3.0-sparc64 package. + * Build libg2c.a with -fPIC -DPIC and name the result libg2c-pic.a. + Link with this library to avoid linking with non-pic code. + Use this library when building dynamically loadable objects (python + modules, gimp plugins, ...), which need to be linked against g2c or + a library which is linked against g2c (i.e. lapack). + Packages needing '-lg2c-pic' must have a build dependency on + 'g77-3.0 (>= 1:3.0.2-0pre010826). + + -- Matthias Klose Sun, 26 Aug 2001 13:59:03 +0200 + +gcc-3.0 (1:3.0.2ds0-0pre010825) unstable; urgency=low + + * Update to CVS sources (010825). + * Add libc6-dev-sparc64 to gcc-3.0-sparc64 and to sparc build dependencies. + * Remove conflicts on egcc package (closes: #109718). + * Fix gcc-3.0-nof dependency. + * s390 patches against gcc-3.0.1 (Gerhard Tonn). + * debian/control: Require binutils (>= 2.11.90.0.27) + + -- Matthias Klose Sat, 25 Aug 2001 10:59:15 +0200 + +gcc-3.0 (1:3.0.1ds3-1) unstable; urgency=low + + * Final gcc-3.0.1 release. + * Changed upstream: default of -flimit-inline is 600 (closes: #106716). + * Add fastjar man page (submitted by "The Missing Man Pages Project", + http://www.netmeister.org/misc/m2p2i/) (closes: #103051). + * Fixed in last upload as well: #105246. + * debian/patches/cpp-memory-leak.dpatch: New patch + * Disable installation of shared libgcc on s390 (Gerhard Tonn). + + -- Matthias Klose Mon, 20 Aug 2001 20:47:13 +0200 + +gcc-3.0 (1:3.0.1ds2-0pre010811) unstable; urgency=high + + * Update to CVS sources (010811). Includes s390 support. + * Add xlibs-dev to Build-Depends (libgcj). + * Enable java for powerpc, disable java for ia64. + * Enable ObjC garbage collection for all archs, which have a libgc5-dev + package. + * New patch libstdc++-codecvt (Michael Piefel) (closes: #104614). + * Don't strip static libgcj library (work around binutils bug #107812). + * Handle diversions for upgrade 3.0 -> 3.0.1 in gcc-3.0-sparc64 package + (closes: #107569). + + -- Matthias Klose Sat, 11 Aug 2001 20:42:15 +0200 + +gcc-3.0 (1:3.0.1ds1-0pre010801) unstable; urgency=high + + * Update to CVS sources (010801). (closes: #107012). + * Remove build dependency on non-free graphviz and include pregenerated + docs (closes: #107124). + * Fixed in 3.0.1 (closes: #99307). + * Updated m68k-updates patch (Roman Zippel). + * Another fix for ia64 packaging bits (Randolph Chung). + + -- Matthias Klose Tue, 31 Jul 2001 21:52:55 +0200 + +gcc-3.0 (1:3.0.1ds0-0pre010727) unstable; urgency=high + + * Update to CVS sources (010727). + * Add epoch to source version. Change '.dsx' to 'dsx', so that + 3.1.1ds0 gt 3.1ds7 (closes: #106538). + + -- Matthias Klose Sat, 28 Jul 2001 09:56:29 +0200 + +gcc-3.0 (3.0.1.ds0-0pre010723) unstable; urgency=high + + * ia64 packaging bits (Randolph Chung) (closes: #106252). + + -- Matthias Klose Mon, 23 Jul 2001 23:02:03 +0200 + +gcc-3.0 (3.0.1.ds0-0pre010721) unstable; urgency=high + + * Update to CVS sources (010721). + - Remove patches applied upstream: libstdc++-limits.dpatch, + objc-data-references + - Updated other patches. + * Fix gij alternative (closes: #103468, #103883). + * Patch to fix bootstrap on sparc (closes: #103568). + * Corrected (closes: #105371) and updated README.Debian. + * m68k patches for sucessful bootstrap (Roman Zippel). + * Add libstdc++v3 porting hints to README.Debian and README.C++. + * m68k md fix (#105622) (Roman Zippel). + * debian/rules2: Disable non-functional ulimit on Hurd (#105884). + * debian/control: Require binutils (>= 2.11.90.0.24) + * Java is enabled for alpha (closes: #87300). + + -- Matthias Klose Sun, 22 Jul 2001 08:24:04 +0200 + +gcc-3.0 (3.0.ds9-4) unstable; urgency=high + + * Move this version to testing ASAP. testing still has a prerelease + version with now incompatible ABI's. If sparc doesn't build, + then IMHO it's better to remove it from testing. + * debian/control.m4: Set uploaders field. Adjust description of + gcc-3.0 (binary) package (closes: #102271, #102620). + * Separate gij.1 in it's own pseudo man page (closes: #99523). + * debian/patches/java-manpages.dpatch: New patch. + * libgcj: Install unversioned gij. + + -- Matthias Klose Tue, 3 Jul 2001 07:38:08 +0200 + +gcc-3.0 (3.0.ds9-3) unstable; urgency=high + + * Reenable configuration with posix threads on i386 (lost in hurd-i386 + merge). + + -- Matthias Klose Sun, 24 Jun 2001 22:21:45 +0200 + +gcc-3.0 (3.0.ds9-2) unstable; urgency=medium + + * Move this version to testing ASAP. testing still has a prerelease + version with now incompatible ABI's. + * Add libgcc0 and libgcc300 to the build conflicts (#102041). + * debian/README.FIRST: Removed (#101534). + * Updated subreg-byte patch (doc files). + * Disable java for the Hurd, mips and mipsel (#101570). + * Patch for building on the Hurd (#101708) (Jeff Bailey ). + * Packaging fixes for the Hurd (#101711) (Jeff Bailey ). + * Include pregenerated doxygen (1.2.6) docs for libstdc++-v3 (#101557). + The current doxygen-1.2.8.1 segaults. + * C++: Enable -fuse-cxa-atexit by default (#101901). + * Correct mail address in gccbug (#101743). + * Make rules resumable after failure in binary-xxx targets (#101637). + + -- Matthias Klose Sun, 24 Jun 2001 16:04:53 +0200 + +gcc-3.0 (3.0.ds9-1) unstable; urgency=low + + * Final 3.0 release. + * Update libgcc version number (#100983, #100988, #101069, #101115, #101328). + * Updated hppa-build patch (Matt Taggart ). + * Disable java for hppa. + * Updated subreg-byte patch for sparc (Ben Collins). + + -- Matthias Klose Mon, 18 Jun 2001 18:26:04 +0200 + +gcc-3.0 (3.0.ds8-0pre010613) unstable; urgency=low + + * Update patches for recent (010613 23:13 +0200) CVS sources. + * Fix packaging bugs (#100459, #100447, #100483). + * Build-Depend on gawk, mawk doesn't work well with test_summary. + + -- Matthias Klose Wed, 13 Jun 2001 23:13:38 +0200 + +gcc-3.0 (3.0.ds7-0pre010609) unstable; urgency=low + + * Fix build dependency for the hurd (#99164). + * Update patches for recent (010609) CVS sources. + * Disable java on powerpc (link error in libjava). + * gcc-3.0-base.postinst: Don't prompt for non-interactive installs (#100110). + + -- Matthias Klose Sun, 10 Jun 2001 09:45:57 +0200 + +gcc-3.0 (3.0.ds6-0pre010526) unstable; urgency=high + + * Urgency "high" for replacing the gcc-3.0 snapshots in testing, which + now are incompatile due to the changed ABIs. + * Upstream begins tagging with "gcc-3_0_pre_2001mmdd". + * Tighten dependencies to install only binary packages derived from + one source (#98851). Tighten libc6-dev dependency to match libc6. + + -- Matthias Klose Sun, 27 May 2001 11:35:31 +0200 + +gcc-3.0 (3.0.ds6-0pre010525) unstable; urgency=low + + * ATTENTION: The ABI (exception handling) changed. No upgrade path from + earlier snapshots (you had been warned in the postinst ...) + Closing #93597, #94576, #96448, #96461. + You have to rebuild + * HELP is appreciated for scanning the Debian BTS and sending followups + to bug reports!!! + * Should we name debian gcc uploads? What about a "still seeking + g++ maintainer" upload? + * Fixed in gcc-3.0: #97030 + * Update patches for recent (010525) CVS sources. + * Make check depend on build target (fakeroot problmes). + * debian/rules.d/binary-libgcc.mk: new file, build first. + * Free memory detection on the hurd for running the testsuite. + * Update debhelper build dependency. + * libstdc++-doc: Include doxygen generated docs. + * Fix boring packaging bugs, too tired for appropriate changelogs ... + #93343, #96348, #96262, #97134, #97905, #96451, #95812, #93157 + * Fixed bugs: #87000. + + -- Matthias Klose Sat, 26 May 2001 23:10:42 +0200 + +gcc-3.0 (3.0.ds5-0pre010510) unstable; urgency=low + + * Update patches for recent (010506) CVS sources. + * New version of source, as of 2001-05-10 + * New version of gpc source, as of 2001-05-06 (disabled by default). + * Make gcc-3.0-sparc64 provide an alternative for sparc64-linux-gcc, + since it can build kernels just fine (it seems) + * Add hppa patch from Matt Taggart + * Fix objc info inclusion...now merged with gcc info + * Do not install the .la for libstdc++, since it confuses libtool linked + applications when libstdc++3-dev and libstdc++2.10-dev are both + installed (closes #97905). + * Fixed gcc-base and libgcc section/prio to match overrides + + -- Ben Collins Mon, 7 May 2001 00:08:52 +0200 + +gcc-3.0 (3.0.ds5-0pre010427) unstable; urgency=low + + * Fixed priority for fastjar from optional to extra + * New version of source, as of 2001-04-27 + * Fix description of libgcj-dev + * libffi-install: Make libffi installable + * Add libffi and libffi-dev packages. libffi is only enabled for java + targets right now. Perhaps more will be enabled later. + * Fixes to build cross compiler package (for avr) + (Hakan Ardo ). + * Better fixincludes description (#93157). + * Remove all remnants of libg++ + * Remove all hacks around libstdc++ version. Since we are strictly v3 now, + we can treat it like a normal shared lib, and not worry about all those + ABI changes. + * Remove all cruft control scripts. Note, debhelper will create scripts + that it needs to. It will do the doc link stuff and the ldconfig stuff + explicitly. + * Clean up the SONAME parsing stuff, make it a little more cleaner over + all the lib packages + * Make libffi install when built (IOW, whenever java is enabled). This + should obsolete the libffi package, which is old and broken + * Revert to normal sonames, except for ia64 (for now) + * Remove all references to dh_testversion, since they are deprecated for + Build-Depends + * Fix powerpc nof build + * Remove all references to the MULTILIB stuff, since the arches are + using specialized builds anyway (nof, softfloat). + * Added 64bit sparc64 package (gcc-3.0-sparc64, libgcc0-sparc64) + * Removed obsolete shlibs.local file + + -- Ben Collins Sun, 15 Apr 2001 21:33:15 -0400 + +gcc-3.0 (3.0.ds4-0pre010403) unstable; urgency=low + + * debian/README: Updated for gcc-3.0 + * debian/rules.patch: Added subreg-byte patch for sparc + * debian/rules.unpack: Update to current CVS for gcc tarball name + * debian/patches/subreg-byte.dpatch: sparc subreg-byte support + * debian/patches/gcc-rawhide.dpatch: Removed + debian/patches/gpc-2.95.dpatch: Removed + debian/patches/sparc32-rfi.dpatch: Removed + debian/patches/temporary.dpatch: Removed + * Moving to unstable now + * debian/patches/gcc-ppc-disable-shared-libgcc.dpatch: New patch, + disables shared libgcc for powerpc target, since it isn't compatible + with the EABI objects. + * Create $(with_shared_libgcc) var + * debian/rules.d/binary-gcc.mk: Use this new variable to determine if + the libgcc package actually has any files + + -- Ben Collins Tue, 3 Apr 2001 23:00:55 -0400 + +gcc-3.0 (3.0.ds2-0pre010223) experimental; urgency=low + + * New snapshot. Use distinct shared object names for shared libraries: + we don't know if binary API's still change until the final release. + * Versioned package names. + * debian/control.m4: New file. Add gcc-base, libgcc0, libobjc1, + libstdc++-doc, libgcj1, libgcj1-dev, fastjar, fixincludes packages. + Remove gcc-docs package. + * debian/gcov.1: Remove. + * debian/*: Remove 2.95.x support. Prepare for 3.0. + * debian/patches: Remove 2.95.x patches. + * Changed source package name. It's not allowed anymore to overwrite + source packages with different content. Introducing a 'debian source + element' (.ds), which is stripped again from the version number + for the binary packages. + * Fixed bugs and added functionality: + #26436, #27878, #33786, #34876, #35477, #42662, #46181, #42989, + #47981, #48530, #50529, #51227, #51456, #51651, #52382, #53698, + #55291, #55967, #56867, #58219, #59005, #59232, #59776, #64628, + #65687, #67631, #68632, #68963, #68987, #69530, #72933, #75120, + #75759, #76645, #76827, #83221, #87540 + * libgcj fixes: 42894, #51266, #68560, #71187, #79984 + + -- Matthias Klose Sat, 24 Feb 2001 13:41:11 +0100 + +gcc-2.95 (2.95.3-2.001222) experimental; urgency=low + + * New upstream version 2.95.3 experimental (CVS 20001222). + * debian/control.in: Versioned package names, removal of snapshot logic. + Remove fake gcc-docs package. + * Reserve -1 release numbers for woody. + * Updated to gpc-20001218. + + -- Matthias Klose Fri, 22 Dec 2000 19:53:03 +0100 + +gcc (2.95.2-20) unstable; urgency=low + + * Apply patch from gcc-2_95-branch; remove ulimit for make check. + + -- Matthias Klose Sun, 10 Dec 2000 17:01:13 +0100 + +gcc (2.95.2-19) unstable; urgency=low + + * Added testsuite-20001207 from current snapshots. We'll need results + for 2.95.2 to make sure there are no regressions against that release. + Dear build daemons and porters to other architectures, please send an + email to gcc-testresults@gcc.gnu.org. + You can do this by running "debian/rules mail-summary". + * Updated to gpc-20001206. + * Added S/390 patch prepared by Chu-yeon Park (#78983). + * debian/patches/libio.dpatch: Fix iostream doc (fixes #77647). + * debian/patches/gcc-doc.dpatch: Update URL (fixes #77542). + * debian/patches/gcc-reload1.dpatch Patch from the gcc-bug list which + fixes a problem in "long long" on i[345]86 (i686 was not affected). + + -- Matthias Klose Sat, 9 Dec 2000 12:30:32 +0100 + +gcc (2.95.2-18) unstable; urgency=low + + * debian/control.in: Fix syntax errors (fixes #76146, #76458). + Disable gpc on the hurd by request (#75686). + * debian/patches/arm-various.dpatch: Patches from Philip Blundell + for ARM arch (fixes #75801). + * debian/patches/gcc-alpha-mi-thunk.dpatch: Patches from Chris Chimelis + for alpha arch. + * debian/patches/g77-docs.dpatch: Adjust g77 docs (fixes #72594). + * Update gpc to gpc-20001118. + * Reenable gpc for alpha. + * debian/README.C++: Merge debian/README.libstdc++ and C++ FAQ information + provided by Matt Zimmermann. + * Build gcj only on architectures, where libgcj-2.95.1 can be built as well. + Probably needs some adjustments ... + * Conditionalize for chill, fortran, java, objc and chill. + + * NOT APPLIED: + debian/patches/libstdc++-bastring.dpatch: Apply fix (fixes #75759). + + -- Matthias Klose Sun, 19 Nov 2000 10:40:41 +0100 + +gcc (2.95.2-17) unstable; urgency=low + + * Disable gpc for alpha. + * Include gpc-cpp in gpc package (fixes #74492). + * Don't build gcc-docs compatibility package anymore. + + -- Matthias Klose Wed, 11 Oct 2000 06:16:53 +0200 + +gcc (2.95.2-16) unstable; urgency=low + + * Applied the emdebian/cross compiler patch and documentation + (Frank Smith ). + * Applied patch for avr target (Hakan Ardo ). + * debian/control.in: Add awk to Build-Depends. + Tighten libc6-dev dependency for libstdc++-dev (fixes #73031, + #72531, #72534). + * Disable libobjc_gc for m68k again (fixes #74380). + * debian/patches/arm-namespace.dpatch: Apply patch from Philip + Blundell to fix name space pollution on arm + (fixes #70937). + * Fix more warnings in STL headers (fixes #69352, #71943). + + -- Matthias Klose Mon, 9 Oct 2000 21:51:41 +0200 + +gcc (2.95.2-15) unstable; urgency=low + + * debian/control.in: Add libgc5-dev to build depends (fixes #67015). + * debian/rules.def: Build GC enabled ObjC runtime for sparc. + * Bug #58741 fixed (in some version since 2.95.2-5). + * debian/control.in: Recommend librx1g-dev, libgmp2-dev, libncurses5-dev + (unit dependencies). + * Patches from Marcus Brinkmann for the hurd (fixes #67763): + - debian/rules.defs: Disable objc_gc on hurd-i386. + Disable libg++ on GNU systems. + - debian/rules2: Set correct names of libstdc++/libg++ + libraries on GNU systems. + Write out correct shlibs and shlibs.local file content. + - Keep _G_config.h for the Hurd. + * Apply patch for ObjC linker warnings. + * Don't apply gcj backport patch for sparc. + * Apply libio compatability patch + * debian/glibcver.sh: generate appropriate version for glibc + * debian/rules.conf: for everything after glibc 2.1, we always append + "-glibc$(ver)" to the C++ libs for linux. + * Back down gpc to -13 version (-14 wont compile on anything but i386 + and m68k becuase of gpc). + * Remove extraneous and obsolete sparc64 patches/files from debian/* + + -- Ben Collins Thu, 21 Sep 2000 08:08:35 -0400 + +gcc-snapshot (20000901-2.2) experimental; urgency=low + + * New snapshot. + * debian/rules2: Move tradcpp0 to cpp package. + + -- Matthias Klose Sat, 2 Sep 2000 01:14:28 +0200 + +gcc-snapshot (20000802-2.1) experimental; urgency=low + + * New snapshot. + * debian/rules2: Fixes. tradcpp0 is in gcc package, not cpp. + + -- Matthias Klose Thu, 3 Aug 2000 07:40:05 +0200 + +gcc-snapshot (20000720-2) experimental; urgency=low + + * New snapshot. + * Enable libstdc++-v3. + * debian/rules2: Don't use -D for /usr/bin/install. + + -- Matthias Klose Thu, 20 Jul 2000 22:33:37 +0200 + +gcc (2.95.2-14) unstable; urgency=low + + * Update gpc patch. + + -- Matthias Klose Wed, 5 Jul 2000 20:51:16 +0200 + +gcc (2.95.2-13) frozen unstable; urgency=low + + * Update debian/README: document how to compile 2.0.xx kernels; don't + register gcc272 as an alternative for gcc (closes #62419). + Clarify compiler setup (closes #65548). + * debian/control.in: Make libstdc++-dev depend on current version of g++. + * Undo CVS update from release -8 (problems on alpha, #55263). + + -- Matthias Klose Mon, 19 Jun 2000 23:06:48 +0200 + +gcc (2.95.2-12) frozen unstable; urgency=low + + * debian/gpc.postinst: Correct typo introduced with -11 (fixes #64193). + * debian/patches/gcc-rs600.dpatch: ppc codegen fix (fixes #63933). + + -- Matthias Klose Sun, 21 May 2000 15:56:05 +0200 + +gcc (2.95.2-11) frozen unstable; urgency=medium + + * Upload to unstable again (fixes critical #63784). + * Fix doc-base files (fixes important #63810). + * gpc wasn't built in -10 (fixes #63977). + * Make /usr/bin/pc an alternative (fixes #63888). + * Add SYSCALLS.c.X to gcc package. + + -- Matthias Klose Sun, 14 May 2000 22:17:44 +0200 + +gcc (2.95.2-10) frozen; urgency=low + + * debian/control.in: make gcc conflict on any version of egcc + (slink to potato upgrade problem, fixes grave #62084). + * Build protoize programs, separate out in new package (fixes #59436, + #62911). + * Create dummy gcc-docs package for smooth update from slink (fixes #62537). + * Add doc-base support for all -doc packages (fixes #63380). + + -- Matthias Klose Mon, 1 May 2000 22:24:28 +0200 + +gcc (2.95.2-9) frozen unstable; urgency=low + + * Disable the sparc-bi-arch.dpatch (patch from Ben Collins, built + for sparc as NMU 8.1) (fixes critical #61529 and #61511). + "Seems that when you compile gcc 2.95.x for sparc64-linux and compile + sparc32 programs, the code is not the same as sparc-linux compile for + sparc32 (this is a bug, and is fixed in gcc 2.96 CVS)." + * debian/patches/gcj-vs-iconv.dpatch: Option '--encoding' for + encoding of input files. Patch from Tom Tromey + backported to 2.95.2 (fixes #42895). + Compile a Latin-1 encoded file with `gcj --encoding=Latin1 ...'. + * debian/control.in: gcc, g++ and gobjc suggest their corresponding + task packages (fixes #59623). + + -- Matthias Klose Sat, 8 Apr 2000 20:19:15 +0200 + +gcc (2.95.2-8) frozen unstable; urgency=low + + * Post-2.95.2 CVS updates of the gcc-2_95-branch until 20000313. + * debian/rules2: configure with --enable-java-gc=no for sparc. Fixes + gcj side of #60535. + * debian/rules.patch: Disable gcc-emit-rtl patch for all archs but + alpha. Disable g++-is-tree patch ("just for 2.95.1"). + * debian/README: Update for gcc-2.95. + + -- Matthias Klose Mon, 27 Mar 2000 00:03:16 +0200 + +gcc (2.95.2-7) frozen unstable; urgency=low + + * debian/patches/gcc-empty-struct-init.dpatch; Apply patch from + http://gcc.gnu.org/ml/gcc-patches/2000-02/msg00637.html. Fixes + compilation of 2.3.4x kernels. + * debian/patches/gcc-emit-rtl.dpatch: Apply patch from David Huggins-Daines + (backport from 2.96 CVS to fix #55263). + * debian/patches/gcc-pointer-arith.dpatch: Apply patch from Jim Kingdon + (backport from 2.96 CVS to fix #54951). + + -- Matthias Klose Thu, 2 Mar 2000 23:16:43 +0100 + +gcc (2.95.2-6) frozen unstable; urgency=low + + * Post-2.95.2 CVS updates of the gcc-2_95-branch until 20000220. + * Remove dangling symlink probably left over from libstdc++2.9 + package (fixes #53661). + * debian/patches/gcc-alpha-complex-float.dpatch: Fixed patch by + David Huggins-Daines (fixes #58486). + * debian/g++.{postinst,prerm}: Remove outdated g++FAQ registration + (fixes #58253). + * debian/control.in: gcc-doc replaces gcc-docs (fixes #58108). + * debian/rules2: Include some fixed headers (asm, bits, linux, ...). + * debian/patches/{gcc-alpha-ev5-fix,libstdc++-valarray}.dpatch: Remove. + Applied upstream. + * debian/patches/libstdc++-bastring.dpatch: Add patch from + sicard@bigruth.solsoft.fr (fixes #56715). + + -- Matthias Klose Sun, 20 Feb 2000 15:08:13 +0100 + +gcc (2.95.2-5) frozen unstable; urgency=low + + * Post-2.95.2 CVS updates of the gcc-2_95-branch until 20000116. + * Add more build dependencies (fixes #53204). + * debian/patches/gcc-alpha-complex-float.dpatch: Patch from + Joel Klecker to compile glibc correctly on alpha. + "Should fix the g77 problems too." + * debian/patches/{libio,libstdc++-wall2}.dpatch. Remove patches + applied upstream. + + -- Matthias Klose Sun, 16 Jan 2000 19:16:54 +0100 + +gcc (2.95.2-4) unstable; urgency=low + + * debian/patches/libio.dpatch: Patch from Martin v. Loewis. + (fixes: #35628). + * debian/patches/libstdc++-deque.dpatch: Patch from Martin v. Loewis. + (fixes: #52689). + * debian/control.in: Updated Build-Depends, removed outdated README.build. + Fixes #51246. + * Tighten dependencies to cpp (>= 2.95.2-4) (closes: #50294). + * debian/rules.patch: Really do not apply patches/gcj-backport.dpatch. + Fixes #51636. + * Apply updated sparc-bi-arch.dpatch from Ben Collins. + * libstdc++: Define wstring type, if __ENABLE_WSTRING is defined. Request + from the author of the War FTP Daemon for Linux ("Jarle Aase" + ). + * debain/g++.preinst: Remove dangling sysmlinks (fixes #52359). + + -- Matthias Klose Sun, 19 Dec 1999 21:53:48 +0100 + +gcc (2.95.2-3) unstable; urgency=low + + * debian/rules2: Don't install $(gcc_lib_dir)/include/asm; these are + headers fixed for glibc-1.x (closes: #49434). + * debian/patches/cpp-dos-newlines.dpatch: Keep CR's without + following LF (closes: #49186). + * Bug #37358 (internal compiler errors when building vdk_0.6.0-5) + fixed in gcc-2.95.? (closes: #37358). + * Apply patch gcc-alpha-ev5-fix from Richard Henderson + (should fix #48527 and #46963). + * debian/README.Bugs: Documented non bug #44554. + * Applied patch from Alexandre Oliva to fix gpc boostrap on alpha. + Reenabled gpc on all architectures. + * Post-2.95.2 CVS updates of the gcc-2_95-branch until 19991108. + * Explicitely generate postinst/prerm chunks for usr/doc transition. + debhelper currently doesn't handle generation for packages with + symlinked directories. + * debian/patches/libstdc++-wall3.dpatch: Fix warnings in stl_deque.h + and stl_rope.h (closes: #46444, #46720). + * debian/patches/gcj-backport.dpatch: Add file, don't apply (yet). + + -- Matthias Klose Wed, 10 Nov 1999 18:58:45 +0100 + +gcc (2.95.2-2) unstable; urgency=low + + * New gpc-19991030 snapshot. + * Post-2.95.2 CVS updates of the gcc-2_95-branch until 19991103. + * Reintegrated sparc patches (bcollins@debian.org), which were lost + in 2.95.2-1. + * debian/rules2: Only install $(gcc_lib_dir)/include/asm, when existing. + * debian/patches/gpc-2.95.{dpatch,diff}: updated patch to drop + initialization in stor-layout.c. + * debian/NEWS.gcc: Updated for gcc-2.95.2. + * debian/bugs/bug-...: Removed testcases for fixed bugs. + * debian/patches/...dpatch: Removed patches applied upstream. + * debian/{rules2,g++.postinst,g++.prerm}: Handle c++ alternative. + * debian/changelog: Merged gcc272, egcs and snapshot changelogs. + + -- Matthias Klose Tue, 2 Nov 1999 23:09:23 +0200 + +gcc (2.95.2-1.1) unstable; urgency=low + + * Most of the powerpc patches have been applied upstream. Remove all + but ppc-ice, ppc-andrew-dwarf-eh, and ppc-descriptions. + * mulilib-install.dpatch was definitely a bad idea. Fix it properly + by using install -D. + * Also, don't make directories before installing any more. Simplifies + rules a (tiny) bit. + * Do not build with LDFLAGS=-s. Everything gets stripped out anyway by + dh_strip -a -X_debug; so leave the binaries in the build tree with + debugging symbols for simplified debugging of the packages. + + -- Daniel Jacobowitz Sat, 30 Oct 1999 12:40:12 -0400 + +gcc (2.95.2-1) unstable; urgency=low + + * gcc-2.95.2 release (taken from the CVS archive). -fstrict-aliasing + is disabled upstream. + + -- Matthias Klose Mon, 25 Oct 1999 10:26:19 +0200 + +gcc (2.95.2-0pre4) unstable; urgency=low + + * Updated to cvs updates of the gcc-2_95-branch until 19991021. + * Updated gpc to gpc-19991018 snapshot (closes: #33037, #47453). + Enable gpc for all architectures ... + * Document gcc exit codes (closes: #43863). + * According to the bug submitter (Sergey V Kovalyov ) + the original source of these CERN librarties is outdated now. The latest + version of cernlibs compiles and works fine with slink (closes #31546). + * According to the bug submitter (Gergely Madarasz ), + the problem triggered on i386 cannot be reproduced with the current + jade and php3 versions anymore (closes: #35215). + * Replace corrupted m68k-pic.dpatch (from Roman Hodek and Andreas Schwab + and apply to + all architectures (closes: #48011). + * According to the bug submitter (Herbert Xu ) + this bug "probably has been fixed". Setting it to severity "fixed" + (fixes: #39616), will close it later ... + * debian/README.Bugs: Document throwing C++ exceptions "through" C + libraries (closes: #22769). + + -- Matthias Klose Fri, 22 Oct 1999 20:33:00 +0200 + +gcc (2.95.2-0pre3) unstable; urgency=low + + * Updated to cvs updates of the gcc-2_95-branch until 19991019. + * Apply NMU patches (closes: #46217). + * debian/control.in: Fix egcs64 conflict-dependency for sparc + architecture (closes: #47088). + * debian/rules2: dbg-packages share doc dir with lib packages + (closes #45067). + * debian/patches/gcj-debian-policy.dpatch: Patch from Stephane + Bortzmeyer to conform to Debian policy (closes: #44463). + * debian/bugs/bug-*: Added test cases for new bug reports. + * debian/patches/libstdc++-bastring.dpatch: Patch by Richard Kettlewell + (closes #46550). + * debian/rules.patch: Apply libstdc++-wall2 patch (closes #46609). + * debian/README: Fix typo (closes: #45253). + * debian/control.in: Remove primary/secondary distinction; + dbg-packages don't provide their normal counterparts (closes #45206). + * debian/rules.patch: gcc-combine patch applied upstream. + * debian/rules2: Only use mail if with_check is set (off by default). + * debian/rules.conf: Tighten binutils dependency to 2.9.5.0.12. + + -- Matthias Klose Tue, 19 Oct 1999 20:33:00 +0200 + +gcc (2.95.2-0pre2.0.2) unstable; urgency=HIGH (for m68k) + + * Binary-only NMU for m68k as quick fix for another bug; the patch + is in CVS already, too. + * Applied another patch by Andreas Schwab to fix %a5 restauration in + some cases. + + -- Roman Hodek Thu, 30 Sep 1999 16:09:15 +0200 + +gcc (2.95.2-0pre2.0.1) unstable; urgency=HIGH (for m68k) + + * Binary-only NMU for m68k as quick fix for serious bugs; the patches + are already checked into gcc CVS and should be in the next official + version, too. + * Applied two patches by Andreas Schwab to fix -fpic and loop optimization. + + -- Roman Hodek Mon, 27 Sep 1999 15:32:49 +0200 + +gcc (2.95.2-0pre2) unstable; urgency=low + + * Fixed in 2.95.2 (closes: #43478). + * Previous version had Pascal examples missing in doc directory. + + -- Matthias Klose Wed, 8 Sep 1999 22:18:17 +0200 + +gcc (2.95.2-0pre1) unstable; urgency=low + + * Updated to cvs updates of the gcc-2_95-branch until 19990828. + * Apply work around memory corruption (just for 2.95.1) by + Daniel Jacobowitz . + * debian/patches/libstdc++-wall2.dpatch: Patch from Franck Sicard + to fix some warnings (closes: #44670). + * debian/patches/libstdc++-valarray.dpatch: Patch from Hideaki Fujitani + to fix a bug in valarray_array.h. + * Applied NMU from Jim Pick minus the jump.c and fold-const.c patches + already in the gcc-2_95-branch (closes: #44690). + * Conform to debian-java policy (closes: #44463). + * Move docs to /usr/share/doc (closes: #44782). + * Remove debian/patches/gcc-align.dpatch applied upstream. + * debian/*.postinst: Call install-info only, when configuring. + * debian/*.{postinst,prerm}: Add #DEBHELPER# comments to handle + /usr/doc -> /usr/share/doc transition. + + -- Matthias Klose Wed, 8 Sep 1999 22:18:17 +0200 + +gcc (2.95.1-2.1) unstable; urgency=low + + * Non-maintainer upload. + * ARM platform no longer needs library-prefix patch. + * Updated patches from Philip Blundell. + + -- Jim Pick Wed, 8 Sep 1999 20:14:07 -0700 + +gcc (2.95.1-2) unstable; urgency=low + + * debian/gcc.{postinst,prerm}: gcc provides an alternative for + sparc64-linux-gcc. + * Applied patch from Ben Collins to enable bi-architecture (32/64) + support for sparc. + * Rebuild debian/control and debian/rules.parameters after unpacking. + * debian/rules2: binary-indep. Conditionalize on with_pascal. + + -- Matthias Klose Sat, 4 Sep 1999 13:47:30 +0200 + +gcc (2.95.1-1) unstable; urgency=low + + * Updated to release gcc-2.95.1 and cvs updates of the gcc-2_95-branch + until 19990828. + * debian/README.gcc: Updated NEWS file to include 2.95 and 2.95.1 news. + * debian/README.java: New file. + * debian/rules.defs: Disabled gpc for alpha, arm. Disabled ObjC-GC + for alpha. + * debian/rules [clean]: Remove debian/rules.parameters. + * debian/rules2 [binary-arch]: Call dh_shlibdeps with LD_LIBRARY_PATH set + to installation dir of libstdc++. Why isn't this the default? + * debian/control.in: *-dev packages do not longer conflict with + libg++272-dev package. + * Apply http://egcs.cygnus.com/ml/gcc-patches/1999-08/msg00599.html. + * Only define BAD_THROW_ALLOC, when using exceptions (fixes #43462). + * For ObjC (when configured with GC) recommend libgc4-dev, not libgc4. + * New version of 68060 build patch. + * debian/rules.conf: For m68k, depend on binutils version 2.9.1. + + -- Matthias Klose Sat, 28 Aug 1999 18:16:31 +0200 + +gcc (2.95.1-0pre2) unstable; urgency=medium + + * gpc is back again (fixes grave #43022). + * debian/patches/gpc-updates.dpatch: Patches sent to upstream authors. + * Work around the fatal dependtry assertion failure bug in dpkg (hint + from "Antti-Juhani Kaijanaho" , fixes important #43072). + + -- Matthias Klose Mon, 16 Aug 1999 19:34:14 +0200 + +gcc (2.95.1-0pre1) unstable; urgency=low + + * Updated to cvs 19990815 gcc-2_95-branch; included install docs and + FAQ from 2.95 release; upload source package as well. + * Source package contains tarballs only (gcc, libg++, installdocs). + * debian/rules: Splitted into debian/rules{,.unpack,.patch,.conf,2}. + * debian/gcc.postinst: s/any key/RETURN; warn only when upgrading from + pre 2.95 version; reference /usr/doc, not /usr/share/doc. + * Checked syntax for attributes of functions; checked for #35068; + checked for bad gmon.out files (at least with libc6 2.1.2-0pre5 and + binutils 2.9.1.0.25-2 the problem doesn't show up anymore). + * debian/patches/cpp-macro-doc.dpatch: Document macro varargs in cpp.texi. + * gcc is primary compiler for all platforms but m68k. Setting + severity of #22513 to fixed. + * debian/patches/gcc-default-arch.dpatch: New patch to enable generation + of i386 instruction as default (fixes #42743). + * debian/rules: Removed outdated gcc NEWS file (fixes #42742). + * debian/patches/libstdc++-out-of-mem.dpatch: Throw exception instead + of aborting when out of memory (fixes #42622). + * debian/patches/cpp-dos-newlines.dpatch: Handle ibackslashes after + DOS newlines (fixes #29240). + * Fixed in gcc-2.95.1: #43001. + * Bugs closed in this version: + Closes: #11525, #12253, #22513, #29240, #35068, #36182, #42584, #42585, + #42602, #42622, #42742 #42743, #43001, #43002. + + -- Matthias Klose Sun, 15 Aug 1999 10:31:50 +0200 + +gcc (2.95-3) unstable; urgency=high + + * Provide /lib/cpp again (fixes important bug #42524). + * Updated to cvs 19990805 gcc-2_95-branch. + * Build with the default scheduler. + * Apply install-multilib patch from Dan Jacobowitz. + * Apply revised cpp-A- patch from Dan Jacobowitz. + + -- Matthias Klose Fri, 6 Aug 1999 07:25:19 +0200 + +gcc (2.95-2) unstable; urgency=low + + * Remove /lib/cpp. This driver uses files from /usr/lib/gcc-lib anyway. + * The following bugs are fixed (compared to egcs-1.1.2). + Closes: #4429, #20889, #21122, #26369, #28417, #28261, #31416, #35261, + #35900, #35906, #38246, #38872, #39098, #39526, #40659, #40991, #41117, + #41290, #41302, #41313. + * The following by Joel Klecker: + - Adopt dpkg-architecture variables. + - Go back to SHELL = bash -e or it breaks where /bin/sh is not bash. + - Disabled the testsuite, it is not included in the gcc 2.95 release. + + -- Matthias Klose Sat, 31 Jul 1999 18:00:42 +0200 + +gcc (2.95-1) unstable; urgency=low + + * Update for official gcc-2.95 release. + * Built without gpc. + * debian/rules: Remove g++FAQ from rules, which is outdated. + For ix86, build for i386, not i486. + * Apply patch from Jim Pick for building multilib package on arm. + + -- Matthias Klose Sat, 31 Jul 1999 16:38:21 +0200 + +gcc (2.95-0pre10) unstable; urgency=low + + * Use ../builddir-gcc-$(VER) by default instead of ./builddir; upstream + strongly advises configuring outside of the source tree, and it makes + some things much easier. + * Add patch to prevent @local branches to weak symbols on powerpc (fixes + apt compilation). + * Add patch to make cpp -A- work as expected. + * Renamed debian/patches/ppc-library-prefix.dpatch to library-prefix.dpatch; + apply on all architectures. + * debian/control.in: Remove snapshot dependencies. + * debian/*.postinst: Reflect use of /usr/share/{info,man}. + + -- Daniel Jacobowitz Thu, 22 Jul 1999 19:27:12 -0400 + +gcc (2.95-0pre9) unstable; urgency=low + + * The following bugs are fixed (compared to egcs-1.1.2): #4429, #20889, + #21122, #26369, #28417, #28261, #35261, #38246, #38872, #39526, #40659, + #40991, #41117, #41290. + * Updated to CVS gcc-19990718 snapshot. + * debian/control.in: Removed references to egcs in descriptions. + Changed gcj's Recommends libgcj-dev to Depends. + * debian/rules: Apply ppc-library-prefix for alpha as well. + * debian/patches/arm-config.dpatch: Updated patch sent by Jim Pick. + + -- Matthias Klose Sun, 18 Jul 1999 12:21:07 +0200 + +gcc (2.95-0pre8) unstable; urgency=low + + * Updated CVS. + * debian/copyright: s%doc/copyright%share/common-licenses% + * debian/README.Bugs: s/egcs.cygnus.com/gcc.gnu.org/ s/egcs-bugs/gcc-bugs/ + * debian/patches/reporting.dpatch: Remake diff for current sources. + * debian/libstdc++-dev.postinst: It's /usr/share/info/iostream.info. + * debian/rules: Current dejagnu snapshot reports a framework version + of 1.3.1. + + -- Joel Klecker Sun, 18 Jul 1999 02:09:57 -0700 + +gcc-snapshot (19990714-0pre6) experimental; urgency=low + + * Updated to CVS gcc-19990714 snapshot. + * Applied ARM patch (#40515). + * Converted DOS style linefeeds in debian/patches/ppc-* files. + * debian/rules: Reflect change in gcc/version.c; use sh -e as shell: + for some obscure reason, bash -e doesn't work. + * Reflect version change for libstdc++ (2.10). Remove libg++-name + patch; libg++ now has version 2.8.1.3. Removed libc version from + the package name. + + -- Matthias Klose Wed, 14 Jul 1999 18:43:57 +0200 + +gcc-snapshot (19990625-0pre5.1) experimental; urgency=low + + * Non-maintainer upload. + * Added ARM specific patch. + + -- Jim Pick Tue, 29 Jun 1999 22:36:08 -0700 + +gcc-snapshot (19990625-0pre5) experimental; urgency=low + + * Updated to CVS gcc-19990625 snapshot. + + -- Matthias Klose Fri, 25 Jun 1999 16:11:53 +0200 + +gcc-snapshot (19990609-0pre4.1) experimental; urgency=low + + * Added and re-added a few last PPC patches. + + -- Daniel Jacobowitz Sat, 12 Jun 1999 16:48:01 -0500 + +gcc-snapshot (19990609-0pre4) experimental; urgency=low + + * Updated to CVS egcs-19990611 snapshot. + + -- Matthias Klose Fri, 11 Jun 1999 10:20:09 +0200 + +gcc-snapshot (19990609-0pre3) experimental; urgency=low + + * CVS gcc-19990609 snapshot. + * New gpc-19990607 snapshot. + + -- Matthias Klose Wed, 9 Jun 1999 19:40:44 +0200 + +gcc-snapshot (19990524-0pre1) experimental; urgency=low + + * egcs-19990524 snapshot. + * First snapshot of the gcc-2_95-branch. egcs-1.2 is renamed to gcc-2.95, + which is now the "official" successor to gcc-2.8.1. The full version + name is: gcc-2.95 19990521 (prerelease). + * debian/control.in: Changed maintainers to `Debian GCC maintainers'. + * Moved all version numbers to epoch 1. + * debian/rules: Major changes. The support for secondary compilers + was already removed for the egcs-1.2 snapshots. Many fixes by + Joel Klecker . + - Send mail to Debian maintainers for successful builds. + - Fix VER and VERNO sed expressions. + - Replace remaining GNUARCH occurrences. + * New gpc snapshot (but don't build). + * debian/patches/valarray.dpatch: Backport from libstdc++-v3. + * debian/gcc-doc.*: Info is now gcc.info* (Joel Klecker ). + * Use cpp driver provided by the package. + * New script c89 (fixes #28261). + + -- Matthias Klose Sat, 22 May 1999 16:10:36 +0200 + +egcs (1.1.2-2) unstable; urgency=low + + * Integrate NMU's for arm and sparc (fixes #37582, #36857). + * Apply patch for the Hurd (fixes #37753). + * Describe open bugs in TODO.Debian. Please have a look if you can help. + * Update README / math functions section (fixes #35906). + * Done by J.H.M. Dassen (Ray) : + - At Richard Braakman's request, made -dbg packages for libstdc++ + and libg++. + - Provide egcc(1) (fixes lintian error). + + -- Matthias Klose Sun, 16 May 1999 14:30:56 +0200 + +egcs-snapshot (19990502-1) experimental; urgency=low + + * New snapshot. + + -- Matthias Klose Thu, 6 May 1999 11:51:02 +0200 + +egcs-snapshot (19990418-2) experimental; urgency=low + + * Merged Rays changes to build debug packages. + + -- Matthias Klose Wed, 21 Apr 1999 16:54:56 +0200 + +egcs-snapshot (19990418-1) experimental; urgency=low + + * New snapshot. + * Disable cpplib. + + -- Matthias Klose Mon, 19 Apr 1999 11:32:19 +0200 + +egcs (1.1.2-1.2) unstable; urgency=low + + * NMU for arm + * Added arm-optimizer.dpatch with optimizer workaround for ARM + + -- Jim Pick Mon, 19 Apr 1999 06:17:13 -0700 + +egcs (1.1.2-1.1) unstable; urgency=low + + * NMU for sparc + * Included dpatch to modify the references to gcc/crtstuff.c so that + __register_frame_info is not a weak reference. This allows potato to + remain binary compatible with slink, while still retaining compatibility + with other sparc/egcs1.1.2 distributions. Diff in .dpatch format has + been sent to the maintainer with a note it may not be needed for 1.1.3. + + -- Ben Collins Tue, 27 Apr 1999 10:15:03 -0600 + +egcs (1.1.2-1) unstable; urgency=low + + * Final egcs-1.1.2 release built for potato as primary compiler + for all architectures except m68k. + + -- J.H.M. Dassen (Ray) Thu, 8 Apr 1999 13:14:29 +0 200 + +egcs-snapshot (19990321-1) experimental; urgency=low + + * New snapshot. + * Disable gpc. + * debian/rules: Simplified (no secondary compiler, bumped all versions + to same epoch, libapi patch is included upstream). + * Separated out cpp documentation to cpp-doc package. + * Fixed in this version: #28417. + + -- Matthias Klose Tue, 23 Mar 1999 02:11:18 +0100 + +egcs (1.1.2-0slink2) stable; urgency=low + + * Applied H.J.Lu's egcs-19990315.linux patch. + * Install faq.html and egcs-1.1.2 announcment. + + -- Matthias Klose Tue, 23 Mar 1999 01:14:54 +0100 + +egcs (1.1.2-0slink1) stable; urgency=low + + * Final egcs-1.1.2 release; compiled with glibc-2.0 for slink on i386. + * debian/control.in: gcc provides egcc, when FIRST_PRIMARY defined. + * Fixes #30767, #32278, #34252, #34352. + * Don't build the libstdc++.so.2.9 library on architectures, which have + switched to glibc-2.1. + + -- Matthias Klose Wed, 17 Mar 1999 12:55:59 +0100 + +egcs (1.1.1.63-2.2) unstable; urgency=low + + * Non-maintainer upload. + * Incorporate patch from Joel Klecker to fix snapshot packages + by moving/removing the application of libapi. + * Disable the new libstdc++-dev-config and the postinst message in + glibc 2.1 versions. + + -- Daniel Jacobowitz Mon, 12 Mar 1999 14:16:02 -0500 + +egcs (1.1.1.63-2.1) unstable; urgency=low + + * Non-maintainer upload. + * Compile with glibc 2.1 release version. + * New upstream version egcs-1.1.2 pre3. + * Miscellaneous rules updates (see changelog.snapshot). + * New set of powerpc-related patches from Franz Sirl, + . + * Disable libgcc.dpatch (new solution implemented upstream). Remove it. + * Also pass $target to config.if. + * Enable Dwarf2 EH for powerpc. Bump the C++ binary version. No + loss in -backwards- compatibility as far as I can tell, so add a + compatibility symlink, and add to shlibs file. + * Add --no-backup-if-mismatch to the debian/patches/*.dpatch files, + to prevent bogus .orig's in diffs. + * Merged with (unreleased) 1.1.1.62-1 and 1.1.1.63-{1,2} packages from + Matthias Klose . + * Stop adding a backwards compatibility link for egcs-nof on powerpc. + To my knowledge, nothing uses it. Do add the libstdc++ API change + link, though. + + -- Daniel Jacobowitz Mon, 8 Mar 1999 14:24:01 -0500 + +egcs (1.1.1.63-2) stable; urgency=low + + * Provide a libstdc++ with a shared object name, which is compatible + to other distributions. Documented the change in README.Debian, + the libstdc++-2.9.postinst and the libstdc++-dev-config script. + + -- Matthias Klose Fri, 12 Mar 1999 00:36:20 +0100 + +egcs (1.1.1.63-1.1) unstable; urgency=low + + * Non-Maintainer release. + * Build against glibc 2.1. + * Make egcs the primary compiler on i386. + * Also confilct with egcc (<< FIRST_PRIMARY) + if FIRST_PRIMARY is defined. + (this tells dpkg that gcc completely obsoletes egcc) + * Remove hjl-12 patch again, HJL says it should not be + necessary with egcs 1.1.2. + (as per forwarded reply from Christopher Chimelis) + * Apply libapi patch in clean target before regenerating debian/control + and remove the patch afterward. Otherwise, the libstdc++ and libg++ + package names are generated wrong on a glibc 2.1 system. + + -- Joel Klecker Tue, 9 Mar 1999 15:31:02 -0800 + +egcs (1.1.1.63-1) unstable; urgency=low + + * New upstream version egcs-1.1.1-pre3. + * Applied improved libstdc++ warning patch from Rob Browning. + + -- Matthias Klose Tue, 9 Mar 1999 16:14:07 +0100 + +egcs (1.1.1.62-1) unstable; urgency=low + + * New upstream version egcs-1.1.1-pre2. + * New upstream version libg++-2.8.1.3. + * Readded ARM support + * Readded hjl-12 per request from Christopher C Chimelis + + + -- Matthias Klose Fri, 26 Feb 1999 09:54:01 +0100 + +egcs-snapshot (19990224-0.1) experimental; urgency=low + + * New snapshot. + * Add the ability to disable CPPLIB by setting CPPLIB=no in + the environment. + * Disable gpc for powerpc; I spent a long time getting it to + make correctly, and then it goes and ICEs. + + -- Daniel Jacobowitz Tue, 24 Feb 1999 23:34:12 -0500 + +egcs (1.1.1.61-1) unstable; urgency=low + + * New upstream version egcs-1.1.1-pre1. + * debian/control.in: Applied patch from bug report #32987. + * Split up H.J.Lu's hjl-19990115-linux patch into several small + chunks: libapi, arm-mips, libgcc, hjl-other. The changelog.Linux + aren't included in the separate chunks. Please refer to the + unmodified hjl-19990115-linux patch file in the egcs source pkg. + * Apply warning patch to fix the annoying spew you get if you try to + use ropes or deques with -Wall (which makes -Wall mostly useless for + spotting errors in your own code). Fixes #32996. + * debian/rules: Unapply patches in the exact reverse order they were + applied. + + -- Matthias Klose Sat, 20 Feb 1999 22:06:21 +0100 + +egcs (1.1.1-5) frozen unstable; urgency=medium + + * Move libgcc.map file to g++ package, where gcc is the secondary + compiler (fixes #32329, #32605, #32631). + * Prepare to rename libstdc++2.9 package for glibc-2.1 (fixes #32148). + * Apply NMU patch for arm architecure (fixes #32367). + * Don't apply hjl-12 patch for alpha architectures (requested by the + alpha developers, Christopher C Chimelis ). + * Call makeinfo with --no-validate to fix obscure build failure on alpha. + * Build gpc info files in doc subdirectory. + * Remove c++filt diversion (C++ name demangling patch is now in binutils, + fixes #30820 and #32502). + + -- Matthias Klose Sun, 31 Jan 1999 23:19:35 +0100 + +egcs (1.1.1-4.1) unstable; urgency=low + + * Non-maintainer upload. + * Pascal doesn't build for ARM. + + -- Jim Pick Sun, 24 Jan 1999 16:13:34 -0800 + +egcs (1.1.1-4) frozen unstable; urgency=high + + * Don't strip compiler libraries libgcc.a libobjc.a libg2c.a libgpc.a + * Move Pascal examples to the right place (fixes #32149, part 1). + * Add dependencies for switching from secondary to primary compiler, + if FIRST_PRIMARY is defined (fixes #32149, part 2). + + -- Matthias Klose Wed, 20 Jan 1999 16:51:30 +0100 + +egcs (1.1.1-3) frozen unstable; urgency=low + + * Updated with the H.J.Lu's hjl-19990115-linux patch (fixes the + __register_frame_info problems, mips and arm port included). + * Update gpc to 19990118 (beta release candidate). + * Strip static libraries (fixes #31247 and #31248). + * Changed maintainer address. + + -- Matthias Klose Tue, 19 Jan 1999 16:34:28 +0100 + +egcs (1.1.1-2) frozen unstable; urgency=low + + * Moved egcs-docs, g77-doc and gpc-doc packages to doc section. + * Downgraded Recommends: egcs-docs to Suggests: egcs-docs dependencies + (for archs, where egcs is the primary compiler). + * Add 'Suggests: stl-manual' dependency to libstdc++2.9-dev. + * Applied one more alpha patch: + ftp://ftp.yggdrasil.com/private/hjl/egcs/1.1.1/egcs-1.1.1.diff.12.gz + * Applied PPro optimization patch. + * Apply emit-rtl-nan patch. + * Upgraded to libg++-2.8.1.2a-19981218.tar.gz. + * Upgraded to gpc-19981218. + * Make symlinks for gobjc, libstdc++2.9-dev and libg++2.8.2 doc directories. + + -- Matthias Klose Wed, 23 Dec 1998 18:04:53 +0200 + +egcs-snapshot (19981211-1) experimental; urgency=low + + * New snapshot. + * Adapted gpc to egcs-2.92.x (BOOT_CFLAGS must include -g). + * New libg++-2.8.1.2a-19981209.tar.gz. + * debian/rules: new target mail-summary. + + -- Matthias Klose Fri, 11 Dec 1998 18:14:53 +0200 + +egcs (1.1.1-1) frozen unstable; urgency=high + + * Final egcs-1.1.1 release. + * The last version depended on a versioned libc6 again. + * Add lost dependency for libg++ on libstdc++. + * Added debian-libstdc++.sh script to generate a libstdc++ on a Linux + system, which doesn't use the libapi patch. + + -- Matthias Klose Wed, 2 Dec 1998 12:06:15 +0200 + +egcs (1.1.0.91.59-2) frozen unstable; urgency=high + + * Fixes bugs from libc6 2.0.7u-6 upload without dependency line + Conflicts: libstdc++-2.9 (<< 2.91.59): #30019, #30066, #30078. + * debian/copyright: Updated URLs. + * gcc --help now mentions /usr/doc/debian/bug-reporting.txt. + * Install README.Debian and include information about patches applied. + * Depend on unversioned libc6 on i386, such that libstdc++2.9 can be used + on a hamm system. + + -- Matthias Klose Fri, 27 Nov 1998 18:32:02 +0200 + +egcs (1.1.0.91.59-1) frozen unstable; urgency=low + + * This is egcs-1.1.1 prerelease #3, compiled with libc6 2.0.7u-6. + * Added dependency for libstdc++2.9-dev on g++ (fixes #29631). + * Package g77 provides f77 (fixes #29817). + * Already fixed in earlier egcs-1.1 releases: #2493, #25271, #10620. + * Bugs reported for gcc-2.7.x and fixed in the egcs version of gcc: + #2493, #4430, #4954, #5367, #6047, #10612, #12375, #20606, #24788, #26100. + * Upgraded libg++ to libg++-2.8.1.2a-19981114. + * Upgraded gpc to gpc-19981124. + * Close #25869: egcs and splay maintainers are unable to reproduce this + bug with the current Debian packages. Bug submitter doesn't respond. + * Close #25407: egcs maintainer cannot reproduce this bug with the current + Debian compiler. Bug submitter doesn't respond. + * Use debhelper 1.2.7 for building. + * Replace the libstdc++ and libg++ compatibility links with fake libraries. + + -- Matthias Klose Wed, 25 Nov 1998 12:11:42 +0200 + +egcs (1.1.0.91.58-5) frozen unstable; urgency=low + + * Applied patch to build on the m68060. + * Added c++filt and c++filt.1 to the g++ package. + * Updated gpc to gpc-981105; fixes some regressions compared to egcs-1.1. + * Separated out g77 and gpc doumentation to new packages g77-doc and gpc-doc. + * Closed bugs (#22158). + * Close #20248; on platforms where gas and gld are the default versions, + it makes no difference to configure with or without enable-ld. + * Close #24349. The bugs are in the amulet source. + See http://www.cs.cmu.edu/afs/cs/project/amulet/www/FAQ.html#GCC28x + * Rename gcc.info* files to egcs.info* (fixes #24088). + * Documented known bugs (and workarounds) in BUGS.Debian. + * Fixed demangling of C++ names (fixes #28787). + * Applied patch form aspell to libstdc++/stl/stl_rope.h. + * Updated from cvs 16 Nov 1998. + + -- Matthias Klose Tue, 17 Nov 1998 09:41:24 +0200 + +egcs-snapshot (19981115-2) experimental; urgency=low + + * New snapshot. Disabled gpc. + * New packages g77-doc and gpc-doc. + + -- Matthias Klose Mon, 16 Nov 1998 12:48:09 +0200 + +egcs (1.1.0.91.58-3) frozen unstable; urgency=low + + * Previous version installed in potato, not slink. + * Updated from cvs 3 Nov 1998. + + -- Matthias Klose Tue, 3 Nov 1998 18:34:44 +0200 + +egcs (1.1.0.91.58-2) unstable; urgency=low + + * [debian/rules]: added targets to apply and unapply patches. + * [debian/README.patches]: New file. + * Moved patches dir to debian/patches. debian/rules has to select + the patches to apply. + * Manual pages for genclass and gcov (fixes #5995, #20950, #22196). + * Apply egcs-1.1-reload patch needed for powerpc architecture. + * Fixed bugs (#17768, #20252, #25508, #27788). + * Reapplied alpha patch (#20875). + * Fixes first part of #22513, extended README.Debian (combining C & C++). + * Already fixed in earlier egcs-1.1 releases: #17963, #20252, #20524, + #20640, #22450, #24244, #24288, #28520. + + -- Matthias Klose Fri, 30 Oct 1998 13:41:45 +0200 + +egcs (1.1.0.91.58-1) experimental; urgency=low + + * New upstream version. That's the egcs-1.1.1 prerelease plus patches from + the cvs archive upto 29 Oct 1998. + * Merged files from the egcs and snapshot packages. + * Updated libg++ to libg++-2.8.1.2 (although the Debian package name is still + 2.8.2). + * Moved patches dir to patches-1.1. + * Dan Jacobowitz: + * This is a snapshot from the egcs_1_1_branch, with + libapi, reload, builtin-apply, and egcs patches from + the debian/patches/ dir applied, along with the egcs-gpc-patches + and gcc/p/diffs/gcc-egcs-2.91.55.diff. + * Conditionalize gcj and chill (since they aren't in this branch). + * Fake snapshots drop the -snap-main. + + -- Matthias Klose Thu, 29 Oct 1998 15:15:19 +0200 + +egcs-snapshot (1.1-19981019-5.1) experimental; urgency=low + + * This is a snapshot from the egcs_1_1_branch, with + libapi, reload, builtin-apply, and egcs patches from + the debian/patches/ dir applied, along with the egcs-gpc-patches + and gcc/p/diffs/gcc-egcs-2.91.55.diff. + * Conditionalize gcj and chill (since they aren't in this + branch). + * Fake snapshots drop the -snap-main. + + -- Daniel Jacobowitz Mon, 19 Oct 1998 22:19:23 -0400 + +egcs (1.1b-5) unstable; urgency=low + + * [debian/control.in] Fixed typo in dependencies (#28076, #28087, #28092). + + -- J.H.M. Dassen (Ray) Sun, 18 Oct 1998 22:56:51 +0200 + +egcs (1.1b-4) unstable; urgency=low + + * Strengthened g++ dependency on libstdc++_LIB_SO_-dev from + `Recommends' to `Depends'. + * Updated README.Debian for egcs-1.1. + * Updated TODO. + + -- Matthias Klose Thu, 15 Oct 1998 12:38:47 +0200 + +egcs-snapshot (19981005-0.1) experimental; urgency=low + + * Make libstdc++2.9-snap-main and libg++-snap-main provide + their mainstream equivalents and put those equivalents into + their shlibs file. + * Package gcj, the GNU Compiler for Java(TM). + + * New upstream version of egcs (The -regcs_latest_snapshot branch). + * Build without libg++ entirely. + * Leave out gpc for now - the internals are sufficiently different + that it does not trivially compile. + * Include an experimental reload patch for powerpc - this is, + in the words of its author, not release quality, but it allows + powerpc linuxthreads to function. + * On architectures where we are the primary compiler, let snapshots + build with --prefix=/usr and conflict with the stable versions. + * Package chill, a front end for the language Chill. + * Other applied patches from debian/patches/: egcs-patches and + builtin-apply-patch. + * Use reload.c revision 1.43 to avoid a nasty bug. + + -- Daniel Jacobowitz Wed, 7 Oct 1998 00:27:42 -0400 + +egcs (1.1b-3.1) unstable; urgency=low + + * NMU to fix the egcc -> gcc link once and for all + + -- Christopher C. Chimelis Tue, 22 Sep 1998 16:11:19 -0500 + +egcs (1.1b-3) unstable; urgency=low + + * Oops. The egcc -> gcc link on archs where gcc is egcc was broken. + Thanks to Chris Chimelis for pointing this out. + + -- J.H.M. Dassen (Ray) Mon, 21 Sep 1998 20:51:35 +0200 + +egcs (1.1b-2) unstable; urgency=low + + * New upstream spellfix release (Debian revision is 2 as the internal + version numbers didn't change). + * Added egcc -> gcc symlink on architectures where egcc is the primary C + compiler. Thus, maintainers of packages that require egcc, can now + simply use "egcc" without conditionals. + * Porters: we hope/plan to make egcs's gcc the default C compiler on all + platforms once the 2.2.x kernels are available. Please test this version + thoroughly, and give us a GO / NO GO for your architecture. + * Some symbols cpp used to predefine were removed upstream in order to clean + up the cpp namespace, but imake requires them for determining the proper + settings for LinuxMachineDefines (see /usr/X11R6/lib/X11/{Imake,linux}.cf), + thus we put them back. Thanks to Paul Slootman for reporting his imake + problems on Alpha. + * [gcc/config/alpha/linux.h] Added -D__alpha to CPP_PREDEFINES . + Thanks to Chris Chimelis for the alpha-only 1.1a-1.1 NMU which fixed + this already. + * [gcc/config/i386/linux.h] Added -D__i386__ to CPP_PREDEFINES . + * [gcc/config/sparc/linux.h] Has -Dsparc in CPP_PREDEFINES . + * [gcc/config/sparc/linux64.h] Has -Dsparc in CPP_PREDEFINES . + * [gcc/config/m68k/linux.h] Has -Dmc68000 in CPP_PREDEFINES . + * [gcc/config/rs6000/linux.h] Has -Dpowerpc in CPP_PREDEFINES . + * [gcc/config/arm/linux.h] Has -Darm in CPP_PREDEFINES . + * [gcc/config/i386/gnu.h] Has -Di386 in CPP_PREDEFINES . + * Small fixes and updates in README. + * Changes affecting the source package only: + * [gcc/Makefile.in, gcc/cp/Make-lang.in, gcc/p/Make-lang.in] + Daniel Jacobowitz: Ugly hacks of various kinds to make cplib2.txt get + properly regenerated with multilib. + * [debian/TODO] Created. + * [INSTALL/index.html] Fixed broken link. + + -- J.H.M. Dassen (Ray) Sun, 20 Sep 1998 14:05:15 +0200 + +egcs (1.1a-1) unstable; urgency=low + + * New upstream release. + * Added README.libstdc++ . + * Updated Standards-Version. + * Matthias: + * Downgraded gobjc dependency on egcs-docs from Recommends: to Suggests: . + * [libg++/Makefile.in] Patched not to rely on a `-f' flag of `ln'. + + -- J.H.M. Dassen (Ray) Wed, 2 Sep 1998 19:57:43 +0200 + +egcs (1.1-1) unstable; urgency=low + + * egcs-1.1 prerelease (from the last Debian package only the version file + changed). + * "Final" gpc Beta 2.1 gpc-19980830. + * Included libg++ and gpc in the .orig tarball. so that diffs are getting + smaller. + * debian/control.in: Changed maintainer address to galenh-egcs@debian.org. + * debian/copyright: Updated URLs. + + -- Matthias Klose Mon, 31 Aug 1998 12:43:13 +0200 + +egcs (1.0.99.56-0.1) unstable; urgency=low + + * New upstream snapshot 19980830 from CVS (called egcs-1.1 19980830). + * New libg++ snapshot 980828. + * Put all patches patches subdirectory; see patches/README in the source. + * debian/control.in: readded for libg++2.8.2-dev: + Replaces: libstdc++2.8-dev (<= 2.90.29-0.5) + * Renamed libg++2.9 package to libg++2.8.2. + * gcc/p/gpc-decl.c: Fix from Peter@Gerwinski.de; fixes optimization errors. + * patches/gpc-patch2: Fix from Peter@Gerwinski.de; fixes alpha errors. + * debian/rules: New configuration flag for building with and without + libstdc++api patch; untested without ... + + -- Matthias Klose Sun, 30 Aug 1998 12:04:22 +0200 + +egcs (1.0.99-0.6) unstable; urgency=low + + * PowerPC fixes. + * On powerpc, generate the -msoft-float libs and package them + as egcs-nof. + * Fix signed char error in gpc. + * Create a libg++.so.2.9 compatibility symlink. + + -- Daniel Jacobowitz Tue, 25 Aug 1998 11:44:09 -0400 + +egcs (1.0.99-0.5) unstable; urgency=low + + * New upstream snapshot 19980824. + * New gpc snapshot gpc-980822; reenabled gpc for alpha. + + -- Matthias Klose Tue, 25 Aug 1998 01:21:08 +0200 + +egcs (1.0.99-0.4) unstable; urgency=low + + * New upstream snapshot 19980819. Should build glibc 2.0.9x on PPC. + + -- Matthias Klose Wed, 19 Aug 1998 14:18:07 +0200 + +egcs (1.0.99-0.3) unstable; urgency=low + + * New upstream snapshot 19980816. + * debian/rules: build correct debian/control and debian/*.shlibs + * Enabled Haifa scheduler for ix86. + + -- Matthias Klose Mon, 17 Aug 1998 16:29:35 +0200 + +egcs (1.0.99-0.2) unstable; urgency=low + + * New upstream snapshot: egcs-19980812, minor changes only. + * Fixes for building on `primary' targets. + * Disabled gpc on `alpha' architecture. + * Uses debhelper 1.1.6 + * debian/control.in: Replace older snapshot versions in favor of newer + normal versions. + * debian/rules: Fixes building of binary-arch target only. + + -- Matthias Klose Thu, 13 Aug 1998 11:59:41 +0200 + +egcs (1.0.99-0.1) unstable; urgency=low + + * New upstream version: pre egcs-1.1 version. + * Many changes ... for details see debian/changelog.snapshot in the + source package. + * New packages libstdc++2.9 and libstdc++2.9-dev. + * New libg++ snapshot 980731: new packages libg++2.9 and libg++2.9-dev. + * New gpc snapshot gpc-980729: new package gpc. + * Uses debhelper 1.1 + + -- Matthias Klose Mon, 10 Aug 1998 13:00:27 +0200 + +egcs-snapshot (19980803-4) experimental; urgency=low + + * rebuilt debian/control. + + -- Matthias Klose Wed, 5 Aug 1998 08:51:47 +0200 + +egcs-snapshot (19980803-3) experimental; urgency=low + + * debian/rules: fix installation locations of NEWS, header and + `undocumented' files. + * man pages aren't compressed for the snapshot package. + + -- Matthias Klose Tue, 4 Aug 1998 17:34:31 +0200 + +egcs-snapshot (19980803-2) experimental; urgency=low + + * debian/rules: Uses debhelper. Old in debian/rules.old. + renamed postinst, prerm files for use with debhelper. + * debian/{libg++2.9,libstdc++2.9}/postinst: call ldconfig only, + when called for configure. + * egcs-docs is architecture independent package. + * new libg++ snapshot 980731. + * installed libstdc++ api patch (still buggy). + + -- Matthias Klose Mon, 3 Aug 1998 13:20:59 +0200 + +egcs-snapshot (19980729-1) experimental; urgency=low + + * New snapshot version 19980729 from CVS archive. + * New gpc snapshot gpc-980729. + * Let gcc/configure decide about using the Haifa scheduler. + * Remove -DDEBIAN. That was needed for the security improvements with + regard to the /tmp problem. egcs-1.1 chooses another approach. + * Save test-protocol and extract gpc errors to gpc-test-summary. + * Tighten binutils dependency to 2.9.1. + * debian/rules: new build-info target + * debian/{control.in,rules}: _SO_ and BINUTILSV substitution. + * debian/rules: add dependency for debian/control. + * debian/rules: remove bin/c++filt + * TODO: next version will use debhelper; the unorganized moving of + files becomes unmanageable ... + * TODO: g++ headers in stdc++ package? check! + + -- Matthias Klose Thu, 30 Jul 1998 12:10:20 +0200 + +egcs-snapshot (19980721-1) experimental; urgency=low + + * Unreleased. Infinite loops in executables made by gpc. + + -- Matthias Klose Wed, 22 Jul 1998 18:07:20 +0200 + +egcs-snapshot (19980715-1) experimental; urgency=low + + * New snapshot version from CVS archive. + * New gpc snapshot gpc-980715. + * New libg++ version libg++-2.8.2-980708. Changed versioning + schema for library. The major versions of libc, libstdc++ and the + g++ interface are coded in the library name. Use this new schema, + but provide a symlink to our previous schema, since the library + seems to be binary compatible. + * [debian/rules]: Fixed bug in build target, when bootstrap returns + with an error + + -- Matthias Klose Wed, 15 Jul 1998 10:55:05 +0200 + +egcs-snapshot (19980701-1) experimental; urgency=low + + * New snapshot version from CVS archive. + Two check programs in libg++ had to be manually killed to finish the + testsuite (tBag and tSet). + * New gpc snapshot gpc-980629. + * Incorporated debian/rules changes from egcs-1.0.3a-0.5 (but don't remove + gcc/cp/parse.c gcc/c-parse.c gcc/c-parse.y gcc/objc/objc-parse.c + gcc/objc/objc-parse.y, since these files are part of the release). + * Disable the -DMKTEMP_EACH_FILE -DHAVE_MKSTEMP -DDEBIAN flags for the + snapshot. egcs-1.1 will have another solution. + * Don't bootstrap the snapshot with -fno-force-mem. Internal compiler + error :-( + * libf2c.a and f2c.h have changed names to libg2c.a and g2c.h and + have moved again into the gcc-lib dir. They are installed under + libg2c.a and g2c.h. Is it necessary to provide links f2c -> g2c ? + * debian/rules: reflect change of build dir of libraries. + + -- Matthias Klose Wed, 2 Jul 1998 13:15:28 +0200 + +egcs-snapshot (19980628-0.1) experimental; urgency=low + + * New upstream snapshot version. + * Non-maintainer upload; Matthias appears to be absent currently. + * Updated shlibs. + * Merged changes from regular egcs: + * [debian/control] Tightened dependency on binutils to 2.8.1.0.23 or + newer, as according to INSTALL/SPECIFIC PowerPC (and possibly Sparc) + need this. + * [debian/rules] Clean up some generated files outside builddir, + so the .diff.gz becomes smaller. + * [debian/rules] Partial sync/update with the one for the regular egcs + version. + * [debian/rules] Make gcc/p/configure executable. + + -- J.H.M. Dassen (Ray) Wed, 1 Jul 1998 07:12:15 +0200 + +egcs (1.0.3a-0.6) frozen unstable; urgency=low + + * Some libg++ development files were in libstdc++2.8-dev rather than + libg++2.8-dev. Fixed this and dealt with upgrading from the earlier + versions (fixes #23908; this bug is not marked release-critical, but + is annoying and can be quite confusing for users. Therefore, I think + this fix should go in 2.0). + + -- J.H.M. Dassen (Ray) Tue, 30 Jun 1998 11:10:14 +0200 + +egcs (1.0.3a-0.5) frozen unstable; urgency=low + + * Fixed location of .hP files (Fixes #23448). + * [debian/rules] simplified extraction of the files for libg++2.8-dev. + + -- J.H.M. Dassen (Ray) Wed, 17 Jun 1998 09:33:41 +0200 + +egcs (1.0.3a-0.4) frozen unstable; urgency=low + + * [gcc/gcc.c] There is one call to choose_temp_base for determining the + tempdir to be used only; #ifdef HAVE_MKSTEMP delete the tempfile created + as a side effect. (fixes #23123 for egcs). + * [gcc/collect2.c] There's still a vulnerability here; I don't see how + I can fix it without leaving behind tempfiles though. + * [debian/control] Tightened dependency on binutils to 2.8.1.0.23 or + newer, as according to INSTALL/SPECIFIC PowerPC (and possibly Sparc) + need this. + * [debian/rules] Clean up some generated files outside builddir, so the + .diff.gz becomes smaller. + + -- J.H.M. Dassen (Ray) Sat, 13 Jun 1998 09:06:52 +0200 + +egcs-snapshot (19980608-1) experimental; urgency=low + + * New snapshot version. + + -- Matthias Klose Tue, 9 Jun 1998 14:07:44 +0200 + +egcs (1.0.3a-0.3) frozen unstable; urgency=high (security fixes) + + * [gcc/toplev.c] set flag_force_mem to 1 at optimisation level 3 or higher. + This works around #17768 which is considered release-critical. + * Changes by Matthias: + * [debian/README] Documentation of the compiler situation for Objective C. + * [debian/rules, debian/control.*] Generate control file from a master + file. + * [debian/rules] Updates for Pascal and Fortran parts; brings it in sync + with the one for the egcs snapshots. + * Use the recommended settings LDFLAGS=-s CFLAGS= BOOT_CFLAGS='-O2'. + * Really compile -DMKTEMP_EACH_FILE -DHAVE_MKSTEMP (really fixes #19453 + for egcs). + * [gcc/gcc.c] A couple of temp files weren't marked for deletion. + + -- J.H.M. Dassen (Ray) Sun, 31 May 1998 22:56:22 +0200 + +egcs (1.0.3a-0.2) frozen unstable; urgency=high (security fixes) + + * Security improvements with regard to the /tmp problem + (gcc opens predictably named files in TMPDIR which can be abused via + symlinks) (Fixes #19453 for egcs). + * Compile -DMKTEMP_EACH_FILE to ensure the %u name is generated randomly + every time; affects gcc/gcc.c . + * [gcc/choose-temp.c, libiberty/choose-temp.c]: use mktemp(3) if compiled + -DUSE_MKSTEMP . + * Security improvements: don't use the result of choose_temp_base in a + predictable fashion. + [gcc/gcc.c]: + * @c, @objective-c: use random name rather then tempbasename.i for + intermediate preprocessor output (%g.i -> %d%u). + * @c, @objective-c: use random name rather then tempbasename.s for + intermediate compiler output (%g.s -> %d%u). + * @c, @objective-c, @cpp-output, @assembler-with-cpp: switched + "as [-o output file] " to + "as [-o output file]". + * @c, @objective-c, @assembler-with-cpp: use previous random name + (cc1|cpp output) rather then tempbasename.s for intermediate assembler + input (%g.s -> %U) + [gcc/f/lang-specs.h]: + * @f77-cpp-input: use random name rather then tempbasename.i for + intermediate cpp output (%g.i -> %d%u). + * @f77-cpp-input: use previous random name (cpp output) rather than + tempbasename.i for f771 input (%g.i -> %U). + * @f77-cpp-input: switched + "as [-o output file] " to + "as [-o output file]". + * @f77-cpp-input: use random name rather then tempbasename.s for + intermediate compiler output (%g.s -> %d%u). + * @ratfor: use random name rather then tempbasename.i for + intermediate ratfor output (%g.f -> %d%u). + * @ratfor: use previous random name (ratfor output) rather than + tempbasename.i for f771 input (%g.f -> %U). + * @ratfor: use random name rather then tempbasename.s for + intermediate compiler output (%g.s -> %d%u). + * @ratfor: switched + "as [-o output file] " to + "as [-o output file]". + * @ratfor: use previous random name + (ratfor output) rather then tempbasename.s for intermediate assembler + input (%g.s -> %U). + * @f77: use random name rather then tempbasename.s for + intermediate ratfor output (%g.f -> %d%u). + * @ratfor: use previous random name (ratfor output) rather than + tempbasename.i for f771 input (%g.f -> %U). + * @ratfor: use random name rather then tempbasename.s for + intermediate compiler output (%g.s -> %d%u). + * @ratfor: switched + "as [-o output file] " to + "as [-o output file]". + * @ratfor: use previous random name + (ratfor output) rather then tempbasename.s for intermediate assembler + input (%g.s -> %U). + * @f77: use random name rather then tempbasename.s for + intermediate compiler output (%g.s -> %d%u). + * @f77: switched + "as [-o output file] " to + "as [-o output file]". + * @ratfor: use random name rather then tempbasename.s for + intermediate compiler output (%g.s -> %U). + * Run the testsuite (this requires the dejagnu package in experimental; + unfortunately, it is difficult to distinguish this version from the one + in frozen). + if possible, and log the results in warn_summary and bootstrap-summary. + * [gcc/choose-temp.c, libiberty/choose-temp.c]: s|returh|return| in + comment. + * Added notes on the Debian compiler setup [debian/README] to the + development packages. + * Matthias: + * [libg++/etc/lf/Makefile.in] Replaced "-ltermcap" by "-lncurses". + * [debian/rules] Updated so it can be used for both egcs releases and + snapshots easily; added support for the GNU Pascal Compiler gpc. + * [contrib/test_summary, contrib/warn_summary] Added from CVS. + * Run compiler checks and include results in /usr/doc/. + * Updates to the README. + * [debian/rules] Use assignments to speed up startup. + * [debian/rules] Show the important variables at the start of the build + process. + * [debian/control.secondary] Added a dependency of gobjc on egcc on + architectures where egcs provides the secondary compiler, as + /usr/bin/egcc is the compiler driver for gobjc. (Fixes #22829). + * [debian/control.*] Bumped Standards-Version; used shorter version + numbers in the dependency relationships (esthetic difference only); + fixed typo. + + -- J.H.M. Dassen (Ray) Tue, 26 May 1998 21:47:41 +0200 + +egcs-snapshot (19980525-1) experimental; urgency=low + + * New snapshot version. + + -- Matthias Klose Tue, 26 May 1998 18:04:06 +0200 + +egcs-snapshot (19980517-1) experimental; urgency=low + + * "Initial" release of the egcs-snapshot package; many debian/* files + derived from the egcs-1.0.3a-0.1 package (maintained by Galen Hazelwood + , NMU's by J.H.M. Dassen (Ray) ) + * The egcs-snapshot packages can coexist with the packages of the + egcs release. Package names have a '-ss' appended. + * All packages are installed in a separate tree (/usr/lib/egcs-ss following + the FHSS). + * Made all snapshot packages extra, all snapshot packages conflict + with correspondent egcs packages, which are newer than the snapshot. + * Included libg++-2.8.1-980505. + * Included GNU Pascal (gpc-980511). + * Haifa scheduler enabled for all snapshot packages. + * Run compiler checks and include results in /usr/doc/. + * Further information in /usr/doc//README.snapshot. + + -- Matthias Klose Wed, 20 May 1998 11:14:06 +0200 + +egcs (1.0.3a-0.1) frozen unstable; urgency=low + + * New upstream release egcs-2.90.29 980515 (egcs-1.0.3 release) + (we were using 1.0.3-prerelease). This includes the Haifa patches + we had since 1.0.3-0.2 and the gcc/objc/thr-posix.c patch we had + since 1.0.3-0.1; the differences with 1.0.3-prerelease + patches + we had is negligable. + * iostream info documentation was in the wrong package (libg++2.8-dev). + Now it's in libstdc++2.8-dev. (Thanks to Jens Rosenboom for bringing + this to my attention). As 1.0.3-0.3 didn't make it out of Incoming, + I'm not adding "Replaces:" for this; folks who had 1.0.3-0.3 installed + already know enough to use --force-overwrite. + * [gcc/objc/objc-act.c] Applied patch Matthias Klose supplied me with that + demangles Objective C method names in gcc error messages. + * Explicitly disable Haifa scheduling on Alpha, to make it easier to use + this package's diff with egcs snapshots, which may turn on Haifa + scheduling even though it is still unstable. (Requested by Chris Chimelis) + * Don't run "configure" again if builddir already exists (makes it faster + to restart builds in case one is hacking internals). Requested by + Johnnie Ingram. + * [gcc/gbl-ctors.h] Don't use extern declaration for atexit on glibc 2.1 + and higher (the prototype has probably changed; having the declaration + broke Sparc compiles). + * [debian/rules] Determine all version number automatically (from the + version string in gcc/version.c). + * [debian/copyright] Updated FTP locations; added text about libg++ (fixes + #22465). + + -- J.H.M. Dassen (Ray) Sat, 16 May 1998 17:41:44 +0200 + +egcs (1.0.3-0.3) frozen unstable; urgency=low + + * Made an "egcs-doc" package containing documentation for egcs (e)gcc, + g++, gobjc, so that administrators can choose whether to have this + documenation or the documentation that comes with the GNU gcc package. + Dependency on this is Recommends: on architectures where egcs provides + the primary C compiler; Suggests: on the others (where GNU gcc is still + the primary C compiler). + * Use the g++ FAQ from gcc/cp rather than libg++, as that version is more + up to date. + * Added iostream info documentation to libstdc++2.8-dev. + + -- J.H.M. Dassen (Ray) Wed, 13 May 1998 08:46:10 +0200 + +egcs (1.0.3-0.2) frozen unstable; urgency=low + + * Added libg++ that works with egcs, found at + ftp://ftp.yggdrasil.com/private/hjl/libg++-2.8.1-980505.tar.gz + (fixes #20587 (Severity: important)). + * The "libg++" and "libg++-dev" virtual packages now refer to the GNU + extensions. + * Added the g++ FAQ that comes with libg++ to the g++ package. + * libg++/Makefile.in: added $(srcdir) to rule for g++FAQ.info so that it + builds OK in builddir. + * Added -D__i386__ to the cpp predefines on intel. + * Patches Matthias supplied me with: + * Further 1.0.3 prerelease patches from CVS. + This includes patches to the Haifa scheduler. Alpha porters, please + check if this makes the Haifa scheduler OK again. + * Objective C patches from CVS. + + -- J.H.M. Dassen (Ray) Fri, 8 May 1998 14:43:20 +0200 + +egcs (1.0.3-0.1) frozen unstable; urgency=low (high for maintainers that use objc) + + * bug fixes only in new upstream version + * Applied patches from egcs CVS archive (egcs_1_03_prerelease) + (see gcc/ChangeLog in the egcs source package). + * libstdc++2.8-dev no longer Provides: libg++-dev (fixes #21153). + * libstdc++2.8-dev now Conflicts: libg++27-dev (bo), + libg++272-dev (hamm) [regular packages] rather than + Conflicts: libg++-dev [virtual package] to prepare the way for "libg++" + to be used as a virtual package for a new libg++ package (i.e. an up to + date one, which not longer contains libstdc++, but only the GNU + extensions) that is compatible with the egcs g++ packages. Such a package + isn't available yet. Joel Klecker tried building libg++2.8.1.1a within + egcs's libstdc++ setup, but it appears to need true gcc 2.8.1 . + * Filed Severity: important bugs against wxxt1-dev (#21707) because these + still depend on libg++-dev, which is removed in this version. + A fixed libsidplay1-dev has already been uploaded. + * libstdc++2.8 is now Section: base and Priority: required (as dselect is + linked against it). + * Disabled Haifa scheduling on Alpha again; Chris Chimelis reported + that this caused problems on some machines. + * [gcc/extend.texi] + ftp://maya.idiap.ch/pub/tmb/usenix88-lexic.ps.Z is no longer available; + use http://master.debian.org/~karlheg/Usenix88-lexic.pdf . + (fixes the egcs part of #20002). + * Updated Standards-Version. + * Changed chmod in debian/rules at Johnie Ingram's request. + * Rather than hardwire the Debian part of the packages' version number, + extract it from debian/changelog . + * Use gcc/objc/thr-posix.c from 980418 egcs snapshot to make objc work. + (Fixes #21192). + * Applied workaround for the GNUstep packages on sparc systems. + See README.sparc (on sparc packages only) in the doc directory. + This affects the other compilers as well. + * Already done in 1.0.2-0.7: the gobjc package now provides a virtual + package objc-compiler. + + -- J.H.M. Dassen (Ray) Tue, 28 Apr 1998 12:05:28 +0200 + -- Matthias Klose Tue, 28 Apr 1998 14:13:23 +0200 + +egcs (1.0.2-0.7) frozen unstable; urgency=low + + * Separated out Objective-C compiler. + * Applied patch from http://www.cygnus.com/ml/egcs/1998-Apr/0614.html + + -- Matthias Klose Fri, 17 Apr 1998 10:25:48 +0200 + +egcs (1.0.2-0.6) frozen unstable; urgency=low + + * Due to upstream changes (libg++ is now only the GNU specific C++ + classes, and is no longer maintained; libstdc++ contains the C++ + standard library, including STL), the virtual "libg++-dev" + package's meaning has become confusing. Therefore, new or updated + packages should no longer use the virtual "libg++-dev" package. + * Corrected g++'s Recommends to libstdc++2.8-dev (>=2.90.27-0.1). + The previous version had Recommends: libstdc++-dev (>=2.90.27-0.1) + which doesn't work, as libstc++-dev is a virtual package. + * Bumped Standards-Version. + + -- J.H.M. Dassen (Ray) Tue, 14 Apr 1998 11:52:08 +0200 + +egcs (1.0.2-0.5) frozen unstable; urgency=low (high for maintainers of packages that use libstdc++) + + * Modified shlibs file for libstdc++ to generate versioned dependencies, + as it is not link compatible with the 1.0.1-x versions in + project/experimental. (Fixes #20247, #20033) + Packages depending on libstd++ should be recompiled to fix their + dependencies. + * Strenghtened g++'s Recommends: libstdc++-dev to the 1.0.2 version or + newer. + * Fixed problems with the unknown(7) symlink for gcov. + * Reordering links now works. + + -- Adam Heath Sun, 12 Apr 1998 13:09:30 -0400 + +egcs (1.0.2-0.4) frozen unstable; urgency=low + + * Unreleased. This is the version Adam Heath received from me. + * Replaces: gcc (<= 2.7.2.3-3) so that the overlap with the older gcc + packages (including bo's gcc_2.7.2.1-8) is handled properly + (fixes #19931, #19672, #20217, #20593). + * Alpha architecture (fixes #20875): + * Patched gcc/config/alpha/linux.h for the gmon functions to operate + properly. + * Made egcs the primary C compiler. + * Enabled Hafia scheduling. + * Lintian-detected problems: + * E: libstdc++2.8: ldconfig-symlink-before-shlib-in-deb usr/lib/libstdc++.so.2.8 + * E: egcc: binary-without-manpage gcov + Reported as wishlist bug; added link to undocumented(7). + * W: libstdc++2.8: non-standard-executable-perm usr/lib/libstdc++.so.2.8.0 0555 + * E: libstdc++2.8: shlib-with-executable-bit usr/lib/libstdc++.so.2.8.0 0555 + + -- J.H.M. Dassen (Ray) Fri, 10 Apr 1998 14:46:46 +0200 + +egcs (1.0.2-0.3) frozen unstable; urgency=low + + * Really fixed dependencies. + + -- J.H.M. Dassen (Ray) Mon, 30 Mar 1998 11:30:26 +0200 + +egcs (1.0.2-0.2) frozen unstable; urgency=low + + * Fixed dependencies. + + -- J.H.M. Dassen (Ray) Sat, 28 Mar 1998 13:58:58 +0100 + +egcs (1.0.2-0.1) frozen unstable; urgency=low + + * New upstream version; it now has -Di386 in CPP_PREDEFINES. + * Only used the debian/* patches from 1.0.1-2; the rest of it appears + to be in 1.0.2 already. + + -- J.H.M. Dassen (Ray) Fri, 27 Mar 1998 11:47:14 +0100 + +egcs (1.0.1-2) unstable; urgency=low + + * Integrated pre-release 1.0.2 patches + * Split out g++ + * egcs may now provide either the primary or secondary C compiler + + -- Galen Hazelwood Sat, 14 Mar 1998 14:15:32 -0700 + +egcs (1.0.1-1) unstable; urgency=low + + * New upstream version + * egcs is now the standard Debian gcc! + * gcc now provides c-compiler (#15248 et al.) + * g77 now provides fortran77-compiler + * g77 dependencies now correct (#16991) + * /usr/doc/gcc/changelog.gz now has correct permissions (#16139) + + -- Galen Hazelwood Sat, 7 Feb 1998 19:22:30 -0700 + +egcs (1.0-1) experimental; urgency=low + + * First official release + + -- Galen Hazelwood Thu, 4 Dec 1997 16:30:11 -0700 + +From late September until the release, I was unable to get any snapshot to +compile... + +egcs (970917-1) experimental; urgency=low + + * New upstream snapshot (There's a lot of stuff here as well, including + a new libstdc++, but it _still_ won't build...) + * eg77 driver now works properly + + -- Galen Hazelwood Wed, 17 Sep 1997 20:44:29 -0600 + +egcs (970904-1) experimental; urgency=low + + * New upstream snapshot + + -- Galen Hazelwood Sun, 7 Sep 1997 18:25:06 -0600 + +egcs (ss-970814-1) experimental; urgency=low + + * Initial packaging (of initial snapshot!) + + -- Galen Hazelwood Wed, 20 Aug 1997 00:36:28 +0000 + +gcc272 (2.7.2.3-12) unstable; urgency=low + + * Compiled on a glibc-2.0 based system. + * Reflect move of manpage to /usr/share in gcc.postinst as well. + * Moved gcc272-docs to section doc, priority optional. + + -- Matthias Klose Sat, 28 Aug 1999 13:42:13 +0200 + +gcc272 (2.7.2.3-11) unstable; urgency=low + + * Follow Debian policy for GNU system type (fixes #42657). + * config/i386/linux.h: Remove %[cpp_cpu] from CPP_SPEC. Stops gcc-2.95 + complaining about obsolete spec operators (using gcc -V 2.7.2.3). + Patch suggested by Zack Weinberg . + + -- Matthias Klose Sun, 15 Aug 1999 20:12:21 +0200 + +gcc272 (2.7.2.3-10) unstable; urgency=low + + * Renamed source package to gcc272. The egcs source package is renamed + to gcc, because it's now the "official" GNU C compiler. + * Changed maintainer address to "Debian GCC maintainers". + * Install info and man stuff to /usr/share. + + -- Matthias Klose Thu, 27 May 1999 12:29:23 +0200 + +gcc (2.7.2.3-9) unstable; urgency=low + + * debian/{postinst,prerm}-doc: handle gcc272.info, not gcc.info. + Fixes #36306. + + -- Matthias Klose Tue, 20 Apr 1999 07:32:58 +0200 + +gcc (2.7.2.3-8) unstable; urgency=low + + * Make gcc-2.7 the secondary compiler. Rename gcc package to gcc272. + On i386, sparc and m68k, this package is compiled against glibc2.0. + * The cpp package is built from the egcs source package. + + -- Matthias Klose Mon, 29 Mar 1999 22:48:50 +0200 + +gcc (2.7.2.3-7) frozen unstable; urgency=low + + * Separated out ObjC compiler to gobjc27 package. + * Changed maintainer address. + * Synchronized README.Debian with egcs-1.1.1-3. + + -- Matthias Klose Tue, 29 Dec 1998 19:05:26 +0100 + +gcc (2.7.2.3-6) frozen unstable; urgency=low + + * Link with -lc on i386, m68k, sparc, when building shared libraries + (fixes #25122). + + -- Matthias Klose Thu, 3 Dec 1998 12:12:12 +0200 + +gcc (2.7.2.3-5) frozen unstable; urgency=low + + * Updated maintainer info. + * Updated Standards-Version; made lintian-clean. + * gcc-docs can coexist with the latest egcs-docs, so added (<= version) to + the Conflicts. + * Updated the README and renamed it to README.Debian . + * Put a reference to /usr/doc/gcc/README.Debian in the info docs. + * Updated description of g++272 . + * Clean up generated info files, to keep the diff small. + + -- J.H.M. Dassen (Ray) Tue, 17 Nov 1998 20:05:59 +0100 + +gcc (2.7.2.3-4.8) frozen unstable; urgency=high + + * Non-maintainer release + * Fix type in extended description + * Removed wrong test in postinst + * Add preinst to clean up some stuff from an older gcc package properly + and stop man complaining about dangling symlinks + + -- Wichert Akkerman Fri, 17 Jul 1998 18:48:32 +0200 + +gcc (2.7.2.3-4.7) frozen unstable; urgency=high + + * Really fixed gcc-docs postinst (Fixes #23470), so that `gcc-docs' + becomes installable. + + -- J.H.M. Dassen (Ray) Mon, 15 Jun 1998 07:53:40 +0200 + +gcc (2.7.2.3-4.6) frozen unstable; urgency=high + + * [gcc.c] There is one call to choose_temp_base for determining the + tempdir to be used only; + #ifdef HAVE_MKSTEMP delete the tempfile created as a side effect. + (fixes #23123 for gcc). + * gcc-docs postinst was broken (due to a broken line) (fixes #23391, #23401). + * [debian/control] description for gcc-docs said `egcs' where it should have + said `gcc' (fixes #23396). + + -- J.H.M. Dassen (Ray) Thu, 11 Jun 1998 12:48:50 +0200 + +gcc (2.7.2.3-4.5) frozen unstable; urgency=high + + * The previous version left temporary files behind, as they were not + marked for deletion afterwards. + + -- J.H.M. Dassen (Ray) Sun, 31 May 1998 22:49:14 +0200 + +gcc (2.7.2.3-4.4) frozen unstable; urgency=high (security fixes) + + * Security improvements with regard to the /tmp problem + (gcc opens predictably named files in TMPDIR which can be abused via + symlinks) (Fixes #19453 for gcc): + * Compile -DMKTEMP_EACH_FILE to ensure the %u name is generated randomly + every time; affects gcc/gcc.c . + * [cp/g++.c, collect2.c, gcc.c] If compiled -DHAVE_MKSTEMP use mkstemp(3) + rather than mktemp(3). + * Security improvements: don't use the result of choose_temp_base in a + predictable fashion. + [gcc.c]: + * @c, @objective-c: use random name rather then tempbasename.i for + intermediate preprocessor output (%g.i -> %d%u). + * @c, @objective-c: use random name rather then tempbasename.s for + intermediate compiler output (%g.s -> %d%u). + * @c, @objective-c, @cpp-output, @assembler-with-cpp: switched + "as [-o output file] " to + "as [-o output file]". + * @c, @objective-c, @assembler-with-cpp: use previous random name + (cc1|cpp output) rather then tempbasename.s for intermediate assembler + input (%g.s -> %U) + [f/lang-specs.h]: + * @f77-cpp-input: use random name rather then tempbasename.i for + intermediate cpp output (%g.i -> %d%u). + * @f77-cpp-input: use previous random name (cpp output) rather than + tempbasename.i for f771 input (%g.i -> %U). + * @f77-cpp-input: switched + "as [-o output file] " to + "as [-o output file]". + * @f77-cpp-input: use random name rather then tempbasename.s for + intermediate compiler output (%g.s -> %d%u). + * @ratfor: use random name rather then tempbasename.i for + intermediate ratfor output (%g.f -> %d%u). + * @ratfor: use previous random name (ratfor output) rather than + tempbasename.i for f771 input (%g.f -> %U). + * @ratfor: use random name rather then tempbasename.s for + intermediate compiler output (%g.s -> %d%u). + * @ratfor: switched + "as [-o output file] " to + "as [-o output file]". + * @ratfor: use previous random name + (ratfor output) rather then tempbasename.s for intermediate assembler + input (%g.s -> %U). + * @f77: use random name rather then tempbasename.s for + intermediate ratfor output (%g.f -> %d%u). + * @ratfor: use previous random name (ratfor output) rather than + tempbasename.i for f771 input (%g.f -> %U). + * @ratfor: use random name rather then tempbasename.s for + intermediate compiler output (%g.s -> %d%u). + * @ratfor: switched + "as [-o output file] " to + "as [-o output file]". + * @ratfor: use previous random name + (ratfor output) rather then tempbasename.s for intermediate assembler + input (%g.s -> %U). + * @f77: use random name rather then tempbasename.s for + intermediate compiler output (%g.s -> %d%u). + * @f77: switched + "as [-o output file] " to + "as [-o output file]". + * @ratfor: use random name rather then tempbasename.s for + intermediate compiler output (%g.s -> %U). + + -- J.H.M. Dassen (Ray) Sat, 30 May 1998 17:27:03 +0200 + +gcc (2.7.2.3-4.3) frozen unstable; urgency=high + + * The "alpha" patches from -4 affected a lot more than alpha support, + and in all likeliness broke compilation of libc6 2.0.7pre3-1 + and 2.0.7pre1-4 . I removed them by selective application of the + diff between -4 and -4. (should fix #22292). + * Fixed reference to the trampolines paper (fixes #20002 for Debian; + this still needs to be forwarded). + * This is for frozen too. (obsoletes #22390 (request to move -4.2 to + frozen)). + * Split of gcc-docs package, so that the gcc can be succesfully installed + on systems that have egcs-docs installed. + * Added the README on the compiler situation that's already in the egcs + packages. + * Use the recommended settings LDFLAGS=-s CFLAGS= BOOT_CFLAGS='-O2'. + + -- J.H.M. Dassen (Ray) Thu, 28 May 1998 20:03:59 +0200 + +gcc (2.7.2.3-4.2) unstable; urgency=low + + * Still for unstable, as I have received no feedback about the g++272 + package yet. + * gcc now Provides: objc-compiler . + * Clean up /etc/alternatives/{g++,g++.1.gz} if they are dangling. + (fixes #19765, #20563) + + -- J.H.M. Dassen (Ray) Wed, 22 Apr 1998 12:40:45 +0200 + +gcc (2.7.2.3-4.1) unstable; urgency=low + + * Bumped Standards-Version. + * Forked off a g++272 package (e.g. for code that uses the GNU extensions + in libg++); for now this is in "unstable" only; feedback appreciated. + * Some cleanup (lintian): permissions, absolute link, gzip manpage. + + -- J.H.M. Dassen (Ray) Fri, 17 Apr 1998 13:05:25 +0200 + +gcc (2.7.2.3-4) unstable; urgency=low + + * Added alpha patches + * Only build C and objective-c compilers, split off g++ + + -- Galen Hazelwood Sun, 8 Mar 1998 21:16:39 -0700 + +gcc (2.7.2.3-3) unstable; urgency=low + + * Added patches for m68k + * Added patches for sparc (#13968) + + -- Galen Hazelwood Fri, 17 Oct 1997 18:25:21 -0600 + +gcc (2.7.2.3-2) unstable; urgency=low + + * Added g77 support (g77 0.5.21) + + -- Galen Hazelwood Wed, 10 Sep 1997 18:44:54 -0600 + +gcc (2.7.2.3-1) unstable; urgency=low + + * New upstream version + * Now using pristine source + * Removed misplaced paragraph in cpp.texi (#10877) + * Fix security bug for temporary files (#5298) + * Added Suggests: libg++-dev (#12335) + * Patched objc/thr-posix.c to support conditions (#12502) + + -- Galen Hazelwood Mon, 8 Sep 1997 12:20:07 -0600 + +gcc (2.7.2.2-7) unstable; urgency=low + + * Made cc and c++ managed through alternates mechanism (for egcs) + + -- Galen Hazelwood Tue, 19 Aug 1997 22:37:03 +0000 + +gcc (2.7.2.2-6) unstable; urgency=low + + * Tweaked Objective-C thread support (#11069) + + -- Galen Hazelwood Wed, 9 Jul 1997 11:56:57 -0600 + +gcc (2.7.2.2-5) unstable; urgency=low + + * More updated m68k patches + * Now conflicts with libc5-dev (#10006, #10112) + * More strict Depends: cpp, prevents version mismatch (#9954) + + -- Galen Hazelwood Thu, 19 Jun 1997 01:29:02 -0600 + +gcc (2.7.2.2-4) unstable; urgency=low + + * Moved to unstable + * Temporarily removed fortran support (waiting for new g77) + * Updated m68k patches + + -- Galen Hazelwood Fri, 9 May 1997 13:35:14 -0600 + +gcc (2.7.2.2-3) experimental; urgency=low + + * Built against libc6 (fixes bug #8511) + + -- Galen Hazelwood Fri, 4 Apr 1997 13:30:10 -0700 + +gcc (2.7.2.2-2) experimental; urgency=low + + * Fixed configure to build crt{begin,end}S.o on i386 + + -- Galen Hazelwood Tue, 11 Mar 1997 16:15:02 -0700 + +gcc (2.7.2.2-1) experimental; urgency=low + + * Built for use with libc6-dev (experimental purposes only!) + * Added m68k patches from Andreas Schwab + + -- Galen Hazelwood Fri, 7 Mar 1997 12:44:17 -0700 + +gcc (2.7.2.1-7) unstable; urgency=low + + * Patched to support g77 0.5.20 + + -- Galen Hazelwood Thu, 6 Mar 1997 22:20:23 -0700 + +gcc (2.7.2.1-6) unstable; urgency=low + + * Added (small) manpage for protoize/unprotoize (fixes bug #6904) + * Removed -lieee from specs file (fixes bug #7741) + * No longer builds aout-gcc + + -- Galen Hazelwood Mon, 3 Mar 1997 11:10:20 -0700 + +gcc (2.7.2.1-5) unstable; urgency=low + + * debian/control now lists cpp in section "interpreters" + * Re-added Objective-c patches for unstable + + -- Galen Hazelwood Wed, 22 Jan 1997 10:27:52 -0700 + +gcc (2.7.2.1-4) stable unstable; urgency=low + + * Changed original source file so dpkg-source -x works + * Removed Objective-c patches (unsafe for stable) + * Built against rex's libc, so fixes placed in -3 are available to + those still using rex + + -- Galen Hazelwood Tue, 21 Jan 1997 11:11:53 -0700 + +gcc (2.7.2.1-3) unstable; urgency=low + + * New (temporary) maintainer + * Updated to new standards and source format + * Integrated aout-gcc into gcc source package + * Demoted aout-gcc to Priority "extra" + * cpp package description more clear (fixes bug #5428) + * Removed cpp "Replaces: gcc" (fixes bug #5762) + * Minor fix to invoke.texi (fixes bug #2909) + * Added latest Objective-C patches for GNUstep people (fixes bug #4657) + + -- Galen Hazelwood Sun, 5 Jan 1997 09:57:36 -0700 --- gcc-3.4-3.4.3.orig/debian/libgcj-common.preinst +++ gcc-3.4-3.4.3/debian/libgcj-common.preinst @@ -0,0 +1,9 @@ +#! /bin/sh -e + +if [ -d /usr/share/doc/libgcj-common ]; then + rm -rf /usr/share/doc/libgcj-common +else + true +fi + +#DEBHELPER# --- gcc-3.4-3.4.3.orig/debian/gcc-cross.prerm +++ gcc-3.4-3.4.3/debian/gcc-cross.prerm @@ -0,0 +1,5 @@ +#!/bin/sh + +update-alternatives --quiet --remove cross-gcc /usr/bin/cross-gcc-ver + +exit 0 --- gcc-3.4-3.4.3.orig/debian/FAQ.gcj +++ gcc-3.4-3.4.3/debian/FAQ.gcj @@ -0,0 +1,494 @@ +The GCJ FAQ +=========== + + The latest version of this document is always available at + http://gcc.gnu.org/java/faq.html. + + General Questions + + What license is used for libgcj? + How can I report a bug in libgcj? + How can I contribute to libgcj + Is libgcj part of GCC? + Will gcj and libgcj work on my machine? + How can I debug my Java program? + Can I interface byte-compiled and native java code? + + + Java Feature Support + + What Java API's are supported? How complete is + the support? + Does GCJ support using straight C native methods + ala JNI? + Why does GCJ use CNI? + What is the state of AWT support? + How about support for Swing ? + What support is there for RMI ? + Can I use any code from other OpenSource projects + to supplement libgcj's current features ? + What features of the Java language are/arn't supported + + + Build Issues + + I need something more recent than the last release; how + should I build it? + Linker bug on Solaris + Can I configure/build in the source tree? + My libgcj build fails with "invalid use of undefined type + struct sigcontext_struct" + + + Gcj Compile/Link Questions + + Why do I get undefined reference to `main' errors? + Can GCJ only handle source code? + "gcj -C" Doesn't seem to work like javac/jikes. Whats going on? + Where does GCJ look for files? + How does gcj resolve wether to compile .class or .java files? + I'm getting link errors! + I'm getting 'undefined symbol: __dso_handle' + + + Runtime Questions + + My program is dumping core! What's going on? + When I run the debugger I get a SEGV in the GC! What's going on? + I have just compiled and benchmarked my Java application + and it seems to be running slower than than XXX JIT JVM. Is there + anything I can do to make it go faster? + Can I profile Garbage Collection? + How do I increase the runtime's initial and maximum heap sizes? + How can I profile my application? + My program seems to hang and doesn't produce any output + + + Programming Issues + + Are there any examples of how to use CNI? + Is it possible to invoke GCJ compiled Java code from a + C++ application? + +General Questions +================= + + 1.1 What license is used for libgcj? + + libgcj is distributed under the GPL, with the 'libgcc exception'. + This means that linking with libgcj does not by itself cause + your program to fall under the GPL. See LIBGCJ_LICENSE in + the source tree for more details. + + 1.2 How can I report a bug in libgcj? + + libgcj has a corresponding Gnats bug database which you can + browse. You can also submit new bug reports from the Gnats + page. + + 1.3 How can I contribute to libgcj? + + You can send simple bug fixes in as patches. Please follow + the GCC guidelines for submitting patches. For more complex + changes, you must sign copyright over to the Free Software + Foundation. See the contribution page for details. + + 1.4 Is libgcj part of GCC? + + Yes, libgcj is now part of GCC. It can be downloaded, + configured and built as one single tree. + + 1.5 Will gcj and libgcj work on my machine? + + Gcj and libgcj are known to work more or less with IA-32 and + Sparc Solaris, Tru64 Unix, as well as IA-32, IA-64, Alpha, + and PowerPC Linux. They might work on other + systems. Generally speaking, porting to a new system should + not be hard. This would be a good way to volunteer. + + 1.6 How can I debug my Java program? + + gdb 5.0 includes support for debugging gcj-compiled Java + programs. For more information please read Java Debugging + with gdb. + + 1.7 Can I interface byte-compiled and native java code + + libgcj has a bytecode interpreter that allows you to mix + .class files with compiled code. It works pretty + transparently: if a compiled version of a class is not found + in the application binary or linked shared libraries, the + class loader will search for a bytecode version in your + classpath, much like a VM would. Be sure to build libgcj + with the --enable-interpreter option to enable this + functionality. + + The program "gij" provides a front end to the interpreter + that behaves much like a traditional virtual machine. You + can even use "gij" to run a shared library which is compiled + from java code and contains a main method: + + $ gcj -shared -o lib-HelloWorld.so HelloWorld.java + $ gij HelloWorld + + This works because gij uses Class.forName, which knows how + to load shared objects. + +Java Feature Support +==================== + + 2.1 What Java API's are supported? How complete is + the support? + + Matt Welsh writes: + + Just look in the 'libjava' directory of libgcj and see + what classes are there. Most GUI stuff isn't there yet, + that's true, but many of the other classes are easy to add + if they don't yet exist. + + I think it's important to stress that there is a big + difference between Java and the many libraries which Java + supports. Unfortunately, Sun's promise of "write once, run + everywhere" assumes much more than a JVM: you also need + the full set of JDK libraries. Considering that new Java + APIs come out every week, it's going to be impossible to + track everything. + + To make things worse, you can't simply run Sun's JDK + classes on any old JVM -- they assume that a bunch of + native methods are also defined. Since this native method + requirement isn't defined by the JDK specs, you're + effectively constrained to using Sun's JVMs if you want to + use Sun's JDK libraries. Oh yes -- you could also + reimplement all of those native methods yourself, and make + sure they behave exactly as Sun's do. Note that they're + undocumented! + + 2.2 Does GCJ support using straight C native methods + ala JNI? + + Yes. libgcj now has experimental support for JNI, in + addition to its native Compiled Native Interface (CNI). gcjh + will generate JNI stubs and headers using the "-jni" + option. However, we do prefer CNI: it is more efficient, + easier to write, and (at least potentially) easier to debug. + + 2.3 Why does GCJ use CNI? + + Per Bothner explains: + + We use CNI because we think it is a better solution, + especially for a Java implementation that is based on the + idea that Java is just another programming language that + can be implemented using standard compilation + techniques. Given that, and the idea that languages + implemented using Gcc should be compatible where it makes + sense, it follows that the Java calling convention should + be as similar as practical to that used for other + languages, especially C++, since we can think of Java as a + subset of C++. CNI is just a set of helper functions and + conventions built on the idea that C++ and Java have the + *same* calling convention and object layout; they are + binary compatible. (This is a simplification, but close + enough.) + + 2.4 What is the state of AWT support? + + Work is in progress to implement AWT and Java2D. We intend + to support both GTK and xlib peers written using CNI. Some + components are already working atop the xlib peers. + + 2.5 How about support for Swing? + + Once AWT support is working then Swing support can be + considered. There is at least one free-software partial + implementations of Swing that may be usable. + + 2.6 What support is there for RMI? + + RMI code exists on the CVS trunk (aka gcc 3.1), but it has + not been heavily tested. This code was donated by + Transvirtual Technologies. + + 2.7 Can I use any code from other OpenSource + projects to supplement libgcj's current features? + + Certainly. However, in many cases, if you wanted to + contribute the code back into the official libgcj + distribution, we would require that the original author(s) + assign copyright to the Free Software Foundation. As of + March 6, 2000, libgcj has been relicenced, and copyright + has been assigned to the FSF. This allows us to share and + merge much of the libgcj codebase with the Classpath + project. Our eventual goal is for Classpath to be an + upstream source provider for libgcj, however it will be + some time before this becomes reality: libgcj and Classpath + have different implementations of many core java + classes. In order to merge them, we need to select the best + (most efficient, cleanest) implementation of each + method/class/package, resolve any conflicts created by the + merge, and test the final result. Needless to say, this is + a lot of work. If you can help out, please let us know! + + 2.8 What features of the Java language are/aren't supported. + + GCJ supports all Java language constructs as per the Java + language Specification. Recent GCJ snapshots have added + support for most JDK1.1 (and beyond) language features, + including inner classes. + +Build Issues +============ + + 3.1 I need something more recent than the last release. + How should I build it? + + Please read here: http://gcc.gnu.org/java/build-snapshot.html + + 3.2 Linker bug on Solaris + + There is a known problem with the native Solaris linker when + using gcc/gcj. A good indication you've run into this + problem is if you get an error that looks like the following + when building libgcj: + +ld: warning: option -o appears more than once, first setting taken +ld: fatal: file libfoo.so: cannot open file: No such file or directory +ld: fatal: File processing errors. No output written to .libs/libfoo.so +collect2: ld returned 1 exit status + + A known workaround for this and other reported link problems + on the various releases of Solaris is to build gcc/gcj with + the latest GNU binutils instead of the native Solaris + ld. The most straightforward way to do this is to build and + install binutils, and then reference it in the configure for + gcc via --with-ld=/path_to_binutils_install/bin/ld + (--with-as may also be similarly specified but is not + believed to be required). + + Please note, gcc/gcj must be built using GNU ld prior to + doing a clean build of libgcj! + + 3.3 Can I configure/build in the source tree? + + No. You cannot configure/build in the source tree. If you + try, you'll see something like: + + $ ./configure [...] + Configuring for a i686-pc-linux-gnu host. + *** Cannot currently configure in source tree. + + Instead, you must build in another directory. E.g.: + + $ mkdir build + $ cd build + $ ../configure [...] + + 3.4 My libgcj build fails with "invalid use of undefined type + struct sigcontext_struct" + + If you're using Linux, this probably means you need to + upgrade to a newwer, glibc (libc6) based Linux + distribution. libgcj does not support the older linux libc5. + It might be possible to get a working libgcj by changing + occurances of "sigcontext_struct" to "sigcontext", however + this has not been tested. Even if it works, it is likely + that there are other issues with older libc versions that + would prevent libgcj from working correctly (threads bugs, + for example). + +Gcj Compile/Link Questions +========================== + + 4.1 Why do I get undefined reference to `main' errors? + + When using gcj to link a Java program, you must use the --main= + option to indicate the class that has the desired main method. + This is because every Java class can have a main method, thus + you have to tell gcj which one to use. + + 4.2 Can GCJ only handle source code? + + GCJ will compile both source (.java) and bytecode (.class) + files. However, in many cases the native code produced by + compiling from source is better optimized than that compiled + from .class files. + + Per Bothner explains: + + The reason is that when you compile to bytecode you lose a + lot of information about program structure etc. That + information helps in generating better code. We can in + theory recover the information we need by analysing the + structure of the bytecodes, but it is sometimes difficult + - or sometimes it just that no-one has gotten around to + it. Specific examples include loop structure (gcc + generates better code with explicit loops rather than with + the equivalent spaghetti code), array initializers, and + the JDK 1.1 `CLASS.class' syntax, all of which are + represented using more low-level constructs in bytecode. + + 4.3 "gcj -C" Doesn't seem to work like javac/jikes. Whats going on? + + The behavior of "gcj -C" is not at all like javac or jikes, + which will compile (not just scan) all .java's which are out + of date with regard to their .class's. + + 4.4 Where does GCJ look for files? + + GCJ looks for classes to compile based on the CLASSPATH + environment variable. libgcj.jar and other files are found + relative to the path of the compiler itself, so it is safe + to move the entire compiler tree to a different path, and + there is no need to include libgcj.jar in your CLASSPATH. + + 4.5 How does gcj resolve whether to compile .class or .java files? + + GCJ compiles only the files presented to it on the command + line. However, it also needs to scan other files in order to + determine the layout of other classes and check for errors + in your code. For these dependencies, GCJ will favour + .class files if they are available because it is faster to + parse a class file than source code. + + 4.6 I'm getting link errors + + If you get errors at link time that refer to 'undefined + reference to `java::lang::Object type_info function', verify + that you have compiled any CNI C++ files with the -fno-rtti + option. This is only required for versions of GCJ earlier + than 3.0. + + 4.7 I'm getting 'undefined symbol: __dso_handle' + + Some versions of the GNU linker have broken support for the + '.hidden' directive, which results in problems with shared + libraries built with recent versions of gcc. + + There are three solutions: + + - downgrade to binutils that don't support .hidden at all, + - upgrade to a recent binutils, or + - undef the HAVE_GAS_HIDDEN definition in gcc's auto-host.h + (and rebuild gcc). + +Runtime Questions +================= + + 5.1 My program is dumping core! What's going on? + + It could be any number of things. One common mistake is + having your CLASSPATH environment variable pointing at a + third party's java.lang and friends. Either unset CLASSPATH, + or make sure it does not refer to core libraries other than + those found in libgcj.jar.Note that newwer versions of GCJ + will reject the core class library if it wasn't generated by + GCJ itself. + + 5.2 When I run the debugger I get a SEGV in the GC! What's going on? + + This is "normal"; the Garbage Collector (GC) uses it to + determine stack boundaries. It is ordinarily caught and + handled by the GC -- you can see this in the debugger by + using cont to continue to the "real" segv. + + 5.3 I have just compiled and benchmarked my Java application + and it seems to be running slower than than XXX JIT JVM. Is there + anything I can do to make it go faster? + + A few things: + + - If your programs allocate many small, short lived objects, + the heap could be filling and triggering GC too + regularly. Try increasing the initial and maximum heap sizes + as per 5.5 How do I increase the runtime's initial and + maximum heap size? + - RE - array accesses. We have sub-optimal runtime checking + code, and the compiler is still not so smart about + automatically removing array checks. If your code is ready, + and it doesn't rely on them, try compiling with + --no-bounds-check. + - Try static linking. On many platforms, dynamic (PIC) + function calls are more expensive than static ones. In + particular, the interaction with boehm-gc seems to incur + extra overhead when shared libraries are used. + - If your Java application doesn't need threads, try + building libgcj using --enable-threads=none. Portions of the + libgcj runtime are still more efficient when + single-threaded. + + 5.4 Can I profile Garbage Collection? + + It is possible to turn on verbose GC output by supressing + the -DSILENT flag during build. One way to do this is to + comment out the line with #define SILENT 1 from + boehm-gc/configure before configuring libgcj. The GC will + print collection statistics to stdout. (Rebuilding boehm-gc + alone without this flag doesn't seem to work.) + + 5.5 How do I increase the runtime's initial and maximum heap sizes? + + Some programs that allocate many small, short-lived objects + can cause the default-sized heap to fill quickly and GC + often. With the 2.95.1 release there is no means to adjust + the heap at runtime. Recent snapshots provide the -ms and + -mx arguments to gij to specify the initial and maximum heap + sizes, respectively. + + 5.6 How can I profile my application? + + Currently, only single threaded Java code may be used by the + profiler (gprof). POSIX threads seem to be incompatible with + the gmon stuff. A couple of other tools that have been + mentioned on the GCJ mailing list are sprof and cprof. The + former is part of GNU libc. + + 5.7 My program seems to hang and doesn't produce any output + + Some versions had a bug in the iconv support. You can work + around it by setting LANG=en_US.UTF-8 at runtime, or give + the following option during compile time + -Dfile.encoding=UTF-8. This problem should no longer occur + as of November 1, 2000. + +Programming Issues +================== + + 6.1 Are there any examples of how to use CNI? + + Glenn Chambers has created a couple of trivial examples for + version 2.95 and version 3.0. As a comparison, here is the + same example as a JNI application using Kaffe. The same + code will work with GCJ, as shown here. + + Note that for version 2.95, you must compile the C++ files + used for CNI with the -fno-rtti option. This constraint + does not apply in version 3.0 and later. + + The primary source of documentation for CNI is at + http://gcc.gnu.org/java/papers/cni/t1.html + + 6.2 Is it possible to invoke GCJ compiled Java code from a + C++ application? + + Yes, GCJ 3.1 supports a CNI-based invocation interface as + well as the traditional JNI invocation API. See the GCJ + Manual for more details on how to use the CNI interface. + +Please send FSF & GNU inquiries & questions tognu@gnu.org.There are +also other waysto contact the FSF. + +These pages are maintained by The GCC team. + +Please send comments on these web pages and GCC to our publicmailing +list at gcc@gnu.org orgcc@gcc.gnu.org, send other questions to +gnu@gnu.org. + +Copyright (C) Free Software Foundation, Inc., +59 Temple Place - Suite 330, Boston, MA 02111, USA. + +Verbatim copying and distribution of this entire article is permitted +in any medium, provided this notice is preserved. + +Last modified 2003-04-30 --- gcc-3.4-3.4.3.orig/debian/rules.d/binary-fastjar.mk +++ gcc-3.4-3.4.3/debian/rules.d/binary-fastjar.mk @@ -0,0 +1,54 @@ +arch_binaries := $(arch_binaries) fastjar + +p_jar = fastjar +d_jar = debian/$(p_jar) + +dirs_jar = \ + $(docdir)/$(p_jar) \ + $(PF)/bin \ + $(PF)/share/man/man1 \ + $(PF)/share/info + +files_jar = \ + $(PF)/bin/{fastjar,grepjar} \ + $(PF)/share/man/man1/{fastjar,grepjar}.1 \ + $(PF)/share/info/fastjar.info + +# ---------------------------------------------------------------------- +$(binary_stamp)-fastjar: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_jar) + dh_installdirs -p$(p_jar) $(dirs_jar) + +ifeq ($(versioned_packages),yes) + : # rename versioned files back to unversioned ones. + for i in jar grepjar; do \ + mv $(d)/$(PF)/bin/$$i$(pkg_ver) $(d)/$(PF)/bin/$$i; \ + mv $(d)/$(PF)/share/man/man1/$$i$(pkg_ver).1 \ + $(d)/$(PF)/share/man/man1/$$i.1; \ + done +endif + + mv $(d)/$(PF)/bin/jar $(d)/$(PF)/bin/fastjar + mv $(d)/$(PF)/share/man/man1/jar.1 $(d)/$(PF)/share/man/man1/fastjar.1 + + DH_COMPAT=2 dh_movefiles -p$(p_jar) $(files_jar) + + dh_installdocs -p$(p_jar) $(srcdir)/fastjar/{CHANGES,NEWS,README} + dh_installchangelogs -p$(p_jar) $(srcdir)/fastjar/ChangeLog + + debian/dh_rmemptydirs -p$(p_jar) + + dh_strip -p$(p_jar) + dh_compress -p$(p_jar) + dh_fixperms -p$(p_jar) + dh_shlibdeps -p$(p_jar) + dh_gencontrol -p$(p_jar) -u-v$(DEB_EVERSION) + dh_installdeb -p$(p_jar) + dh_md5sums -p$(p_jar) + dh_builddeb -p$(p_jar) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-3.4-3.4.3.orig/debian/rules.d/binary-hppa64.mk +++ gcc-3.4-3.4.3/debian/rules.d/binary-hppa64.mk @@ -0,0 +1,21 @@ +arch_binaries := $(arch_binaries) hppa64 + +# ---------------------------------------------------------------------- +$(binary_stamp)-hppa64: $(install_hppa64_stamp) + dh_testdir + dh_testroot + +# dh_installdirs -p$(p_hppa64) + debian/dh_doclink -p$(p_hppa64) $(p_base) + debian/dh_rmemptydirs -p$(p_hppa64) + + dh_strip -p$(p_hppa64) -X.o -Xlibgcc.a -Xlibgcov.a + dh_compress -p$(p_hppa64) + dh_fixperms -p$(p_hppa64) + dh_shlibdeps -p$(p_hppa64) + dh_gencontrol -p$(p_hppa64) -u-v$(DEB_VERSION) + dh_installdeb -p$(p_hppa64) + dh_md5sums -p$(p_hppa64) + dh_builddeb -p$(p_hppa64) + + touch $@ --- gcc-3.4-3.4.3.orig/debian/rules.d/binary-nof-cross.mk +++ gcc-3.4-3.4.3/debian/rules.d/binary-nof-cross.mk @@ -0,0 +1,46 @@ +arch_binaries := $(arch_binaries) nof + +p_nof = gcc$(pkg_arch)-nof +d_nof = debian/$(p_nof) + +dirs_nof = \ + $(docdir) \ + $(PF)/$(DEB_TARGET_GNU_TYPE)/lib/nof +ifeq ($(with_cdev),yes) + dirs_nof += \ + $(gcc_lib_dir)/nof +endif + +ifeq ($(with_cdev),yes) + files_nof = \ + $(PF)/$(DEB_TARGET_GNU_TYPE)/lib/libgcc_s_nof.so.$(GCC_SONAME) \ + $(gcc_lib_dir)/libgcc_s_nof.so \ + $(PF)/$(DEB_TARGET_GNU_TYPE)/lib/nof \ + $(gcc_lib_dir)/nof +else + files_nof = \ + lib/libgcc_s_nof.so.$(GCC_SONAME) +endif + +# ---------------------------------------------------------------------- +$(binary_stamp)-nof: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + ln -sf /$(PF)/$(DEB_TARGET_GNU_TYPE)/lib/libgcc_s_nof.so.$(GCC_SONAME) \ + $(d)/$(gcc_lib_dir)/libgcc_s_nof.so + + rm -rf $(d_nof) + dh_installdirs -p$(p_nof) $(dirs_nof) + DH_COMPAT=2 dh_movefiles -p$(p_nof) $(files_nof) + debian/dh_doclink -p$(p_nof) $(p_base) + dh_strip -p$(p_nof) + dh_compress -p$(p_nof) + dh_fixperms -p$(p_nof) + dh_gencontrol -p$(p_nof) -u-v$(DEB_VERSION) + dh_installdeb -p$(p_nof) + dh_md5sums -p$(p_nof) + dh_builddeb -p$(p_nof) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-3.4-3.4.3.orig/debian/rules.d/binary-treelang.mk +++ gcc-3.4-3.4.3/debian/rules.d/binary-treelang.mk @@ -0,0 +1,55 @@ +arch_binaries := $(arch_binaries) treelang + +p_tree = treelang$(pkg_ver) +d_tree = debian/$(p_tree) + +dirs_tree = \ + $(docdir)/$(p_base)/treelang \ + $(gcc_lexec_dir) \ + $(PF)/bin \ + $(PF)/share/info + +files_tree = \ + $(PF)/bin/tree1$(pkg_ver) \ + $(gcc_lexec_dir)/tree1 + +ifneq ($(GFDL_INVARIANT_FREE),yes) + files_tree += \ + $(PF)/share/info/treelang* +endif + +$(binary_stamp)-treelang: $(build_html_stamp) $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_tree) + dh_installdirs -p$(p_tree) $(dirs_tree) + DH_COMPAT=2 dh_movefiles -p$(p_tree) $(files_tree) + + debian/dh_doclink -p$(p_tree) $(p_base) +ifneq ($(GFDL_INVARIANT_FREE),yes) + dh_installdocs -p$(p_tree) + rm -f $(d_tree)/$(docdir)/$(p_base)/copyright + cp -p html/treelang.html $(d_tree)/$(docdir)/$(p_base)/treelang/ +endif + cp -p $(srcdir)/gcc/treelang/README \ + $(d_tree)/$(docdir)/$(p_base)/treelang/. + cp -p $(srcdir)/gcc/treelang/ChangeLog \ + $(d_tree)/$(docdir)/$(p_base)/treelang/changelog + cp -p debian/README.treelang \ + $(d_tree)/$(docdir)/$(p_base)/treelang/README.Debian + + debian/dh_rmemptydirs -p$(p_tree) + + dh_strip -p$(p_tree) + dh_compress -p$(p_tree) + + dh_fixperms -p$(p_tree) + dh_shlibdeps -p$(p_tree) + dh_gencontrol -p$(p_tree) -u-v$(DEB_VERSION) + dh_installdeb -p$(p_tree) + dh_md5sums -p$(p_tree) + dh_builddeb -p$(p_tree) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-3.4-3.4.3.orig/debian/rules.d/binary-base.mk +++ gcc-3.4-3.4.3/debian/rules.d/binary-base.mk @@ -0,0 +1,24 @@ +arch_binaries := base $(arch_binaries) + +# --------------------------------------------------------------------------- +# gcc-base + +$(binary_stamp)-base: $(install_dependencies) + dh_testdir + dh_testroot + rm -rf $(d_base) + dh_installdirs -p$(p_base) + dh_installdocs -p$(p_base) + cp -p debian/NEWS.sarge $(d_base)/usr/share/doc/$(p_base)/NEWS.Debian +ifeq ($(with_base_only),yes) + dh_installchangelogs -p$(p_base) +else + dh_installchangelogs -p$(p_base) $(srcdir)/ChangeLog +endif + dh_compress -p$(p_base) + dh_fixperms -p$(p_base) + dh_gencontrol -p$(p_base) -u-v$(DEB_VERSION) + dh_installdeb -p$(p_base) + dh_md5sums -p$(p_base) + dh_builddeb -p$(p_base) + touch $@ --- gcc-3.4-3.4.3.orig/debian/rules.d/binary-cpp.mk +++ gcc-3.4-3.4.3/debian/rules.d/binary-cpp.mk @@ -0,0 +1,73 @@ +arch_binaries := $(arch_binaries) cpp +indep_binaries := $(indep_binaries) cpp-doc + +dirs_cpp = \ + $(docdir) \ + $(PF)/share/man/man1 \ + $(PF)/bin \ + $(gcc_lexec_dir) + +files_cpp = \ + $(PF)/bin/cpp$(pkg_ver) \ + $(PF)/share/man/man1/cpp$(pkg_ver).1 \ + $(gcc_lexec_dir)/cc1 + +# ---------------------------------------------------------------------- +$(binary_stamp)-cpp: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_cpp) + dh_installdirs -p$(p_cpp) $(dirs_cpp) + DH_COMPAT=2 dh_movefiles -p$(p_cpp) $(files_cpp) + + ln -sf cpp$(pkg_ver) \ + $(d_cpp)/$(PF)/bin/$(DEB_TARGET_GNU_TYPE)-cpp$(pkg_ver) + ln -sf cpp$(pkg_ver).1 \ + $(d_cpp)/$(PF)/share/man/man1/$(DEB_TARGET_GNU_TYPE)-cpp$(pkg_ver).1 + ln -sf cpp$(pkg_ver) \ + $(d_cpp)/$(PF)/bin/$(TARGET_ALIAS)-cpp$(pkg_ver) + ln -sf cpp$(pkg_ver).1 \ + $(d_cpp)/$(PF)/share/man/man1/$(TARGET_ALIAS)-cpp$(pkg_ver).1 + + debian/dh_doclink -p$(p_cpp) $(p_base) + debian/dh_rmemptydirs -p$(p_cpp) + + dh_strip -p$(p_cpp) + dh_compress -p$(p_cpp) + dh_fixperms -p$(p_cpp) + dh_shlibdeps -p$(p_cpp) + dh_gencontrol -p$(p_cpp) -u-v$(DEB_VERSION) + dh_installdeb -p$(p_cpp) + dh_md5sums -p$(p_cpp) + dh_builddeb -p$(p_cpp) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- +$(binary_stamp)-cpp-doc: $(build_html_stamp) $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_cppd) + dh_installdirs -p$(p_cppd) \ + $(docdir)/$(p_base) \ + $(PF)/share/info + DH_COMPAT=2 dh_movefiles -p$(p_cppd) \ + $(PF)/share/info/cpp* + + debian/dh_doclink -p$(p_cppd) $(p_base) + dh_installdocs -p$(p_cppd) html/cpp.html html/cppinternals.html + rm -f $(d_cppd)/$(docdir)/$(p_base)/copyright + debian/dh_rmemptydirs -p$(p_cppd) + + dh_compress -p$(p_cppd) + dh_fixperms -p$(p_cppd) + dh_installdeb -p$(p_cppd) + dh_gencontrol -p$(p_cppd) -u-v$(DEB_VERSION) + dh_md5sums -p$(p_cppd) + dh_builddeb -p$(p_cppd) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-3.4-3.4.3.orig/debian/rules.d/binary-cxx-cross.mk +++ gcc-3.4-3.4.3/debian/rules.d/binary-cxx-cross.mk @@ -0,0 +1,42 @@ +arch_binaries := $(arch_binaries) cxx + +dirs_cxx = \ + $(docdir) \ + $(PF)/bin \ + $(gcc_lib_dir) \ + $(PF)/share/man/man1 +files_cxx = \ + $(PF)/bin/$(DEB_TARGET_GNU_TYPE)-g++$(pkg_ver) \ + $(PF)/share/man/man1/$(DEB_TARGET_GNU_TYPE)-g++$(pkg_ver).1 \ + $(gcc_lib_dir)/cc1plus + +# ---------------------------------------------------------------------- +$(binary_stamp)-cxx: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_cxx) + dh_installdirs -p$(p_cxx) $(dirs_cxx) + DH_COMPAT=2 dh_movefiles -p$(p_cxx) $(files_cxx) +# g++ man page is a .so link + rm -f $(d_cxx)/$(PF)/share/man/man1/$(DEB_TARGET_GNU_TYPE)-g++$(pkg_ver).1 + ln -sf $(DEB_TARGET_GNU_TYPE)-gcc$(pkg_ver).1.gz \ + $(d_cxx)/$(PF)/share/man/man1/$(DEB_TARGET_GNU_TYPE)-g++$(pkg_ver).1.gz + + debian/dh_doclink -p$(p_cxx) $(p_base) + debian/dh_rmemptydirs -p$(p_cxx) + + dh_strip -p$(p_cxx) + dh_compress -p$(p_cxx) + dh_fixperms -p$(p_cxx) + dh_shlibdeps -p$(p_cxx) + dh_gencontrol -p$(p_cxx) -u-v$(DEB_VERSION) + dh_installdeb -p$(p_cxx) + sed 's/cross-/$(TP)/g;s/-ver/$(pkg_ver)/g;s/gcc/g++/g' < debian/gcc-cross.postinst > debian/$(p_cxx)/DEBIAN/postinst + sed 's/cross-/$(TP)/g;s/-ver/$(pkg_ver)/g;s/gcc/g++/g' < debian/gcc-cross.prerm > debian/$(p_cxx)/DEBIAN/prerm + chmod 755 debian/$(p_cxx)/DEBIAN/{postinst,prerm} + dh_md5sums -p$(p_cxx) + dh_builddeb -p$(p_cxx) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-3.4-3.4.3.orig/debian/rules.d/binary-cxx.mk +++ gcc-3.4-3.4.3/debian/rules.d/binary-cxx.mk @@ -0,0 +1,52 @@ +arch_binaries := $(arch_binaries) cxx + +dirs_cxx = \ + $(docdir)/$(p_base)/C++ \ + $(PF)/bin \ + $(PF)/share/info \ + $(gcc_lexec_dir) \ + $(PF)/share/man/man1 +files_cxx = \ + $(PF)/bin/g++$(pkg_ver) \ + $(PF)/share/man/man1/g++$(pkg_ver).1 \ + $(gcc_lexec_dir)/cc1plus + +# ---------------------------------------------------------------------- +$(binary_stamp)-cxx: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_cxx) + dh_installdirs -p$(p_cxx) $(dirs_cxx) + DH_COMPAT=2 dh_movefiles -p$(p_cxx) $(files_cxx) +# g++ man page is a .so link + rm -f $(d_cxx)/$(PF)/share/man/man1/g++$(pkg_ver).1 + ln -sf gcc$(pkg_ver).1.gz \ + $(d_cxx)/$(PF)/share/man/man1/g++$(pkg_ver).1.gz + + ln -sf g++$(pkg_ver) \ + $(d_cxx)/$(PF)/bin/$(DEB_TARGET_GNU_TYPE)-g++$(pkg_ver) + ln -sf g++$(pkg_ver).1.gz \ + $(d_cxx)/$(PF)/share/man/man1/$(DEB_TARGET_GNU_TYPE)-g++$(pkg_ver).1.gz + ln -sf g++$(pkg_ver) \ + $(d_cxx)/$(PF)/bin/$(TARGET_ALIAS)-g++$(pkg_ver) + ln -sf g++$(pkg_ver).1.gz \ + $(d_cxx)/$(PF)/share/man/man1/$(TARGET_ALIAS)-g++$(pkg_ver).1.gz + + debian/dh_doclink -p$(p_cxx) $(p_base) + cp -p debian/README.C++ $(d_cxx)/$(docdir)/$(p_base)/C++/ + cp -p $(srcdir)/gcc/cp/ChangeLog \ + $(d_cxx)/$(docdir)/$(p_base)/C++/changelog + debian/dh_rmemptydirs -p$(p_cxx) + + dh_strip -p$(p_cxx) + dh_compress -p$(p_cxx) + dh_fixperms -p$(p_cxx) + dh_shlibdeps -p$(p_cxx) + dh_gencontrol -p$(p_cxx) -u-v$(DEB_VERSION) + dh_installdeb -p$(p_cxx) + dh_md5sums -p$(p_cxx) + dh_builddeb -p$(p_cxx) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-3.4-3.4.3.orig/debian/rules.d/binary-pascal.mk +++ gcc-3.4-3.4.3/debian/rules.d/binary-pascal.mk @@ -0,0 +1,100 @@ +arch_binaries := $(arch_binaries) pascal +indep_binaries := $(indep_binaries) pascal-doc + +p_gpc = gpc$(gpc_pkg_ver) +p_gpcd = gpc$(gpc_pkg_ver)-doc + +d_gpc = debian/$(p_gpc) +d_gpcd = debian/$(p_gpcd) + +dirs_gpc = \ + $(docdir)/$(p_base)/pascal \ + $(PF)/bin \ + $(gcc_lexec_dir) \ + $(gcc_lib_dir)/{include,units} \ + $(PF)/share/man/man1 +ifeq ($(with_gpidump),yes) + files_gpc = \ + $(PF)/bin/{binobj,gpc,gpc-run,gpidump}$(gpc_pkg_ver) \ + $(PF)/share/man/man1/{binobj,gpc,gpc-run,gpidump}$(gpc_pkg_ver).1 \ + $(gcc_lexec_dir)/{gpcpp,gpc1} \ + $(gcc_lib_dir)/{libgpc.a,units} \ + $(gcc_lib_dir)/include/gpc-in-c.h +else + files_gpc = \ + $(PF)/bin/{binobj,gpc,gpc-run}$(gpc_pkg_ver) \ + $(PF)/share/man/man1/{binobj,gpc,gpc-run}$(gpc_pkg_ver).1 \ + $(gcc_lexec_dir)/{gpcpp,gpc1} \ + $(gcc_lib_dir)/{libgpc.a,units} \ + $(gcc_lib_dir)/include/gpc-in-c.h +endif + +# ---------------------------------------------------------------------- +$(binary_stamp)-pascal: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_gpc) + dh_installdirs -p$(p_gpc) $(dirs_gpc) + + rm -f $(d)/$(PF)/bin/pc $(d)/$(PF)/share/man/man1/pc.1 + DH_COMPAT=2 dh_movefiles -p$(p_gpc) $(files_gpc) + + debian/dh_doclink -p$(p_gpc) $(p_base) + cp -p $(srcdir)/gcc/p/{AUTHORS,FAQ,NEWS,README} \ + $(d_gpc)/$(docdir)/$(p_base)/pascal/. + cp -p $(srcdir)/gcc/p/test/README \ + $(d_gpc)/$(docdir)/$(p_base)/pascal/README.gpc-test + cp -p $(srcdir)/gcc/p/ChangeLog \ + $(d_gpc)/$(docdir)/$(p_base)/pascal/changelog + +# ln -sf ../$(p_gpc)/examples $(d_gpcd)/$(docdir)/$(p_gpcd)/examples +# ln -sf ../$(p_gpc)/docdemos $(d_gpcd)/$(docdir)/$(p_gpcd)/docdemos + + dh_strip -p$(p_gpc) + dh_compress -p$(p_gpc) + dh_fixperms -p$(p_gpc) + dh_shlibdeps -p$(p_gpc) + dh_gencontrol -p$(p_gpc) -u-v$(DEB_GPC_VERSION) + dh_installdeb -p$(p_gpc) + dh_md5sums -p$(p_gpc) + dh_builddeb -p$(p_gpc) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- +$(binary_stamp)-pascal-doc: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_gpcd) + dh_installdirs -p$(p_gpcd) \ + $(docdir)/$(p_base)/pascal \ + $(PF)/share/info + DH_COMPAT=2 dh_movefiles -p$(p_gpcd) \ + $(PF)/share/info/gpc*$(gpc_pkg_ver)*info* + debian/dh_doclink -p$(p_gpcd) $(p_base) + dh_installdocs -p$(p_gpcd) + rm -f $(d_gpcd)/$(docdir)/$(p_base)/copyright + cp -p html/gpc.html html/gpcs.html \ + $(d_gpcd)/$(docdir)/$(p_base)/pascal/ + mv $(d)/$(PF)/doc/gpc/demos \ + $(d_gpcd)/$(docdir)/$(p_base)/pascal/examples + mv $(d)/$(PF)/doc/gpc/docdemos \ + $(d_gpcd)/$(docdir)/$(p_base)/pascal/. + +# -$(MAKE) -C $(builddir)/gcc gpc.ps +# cp -p $(builddir)/gcc/gpc.ps $(d_gpcd)/$(docdir)/$(p_base)/pascal/. + + debian/dh_rmemptydirs -p$(p_gpcd) + + dh_compress -p$(p_gpcd) + dh_fixperms -p$(p_gpcd) + dh_installdeb -p$(p_gpcd) + dh_gencontrol -p$(p_gpcd) -u-v$(DEB_GPC_VERSION) + dh_md5sums -p$(p_gpcd) + dh_builddeb -p$(p_gpcd) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-3.4-3.4.3.orig/debian/rules.d/binary-proto.mk +++ gcc-3.4-3.4.3/debian/rules.d/binary-proto.mk @@ -0,0 +1,43 @@ +arch_binaries := $(arch_binaries) proto + +p_proto = protoize +d_proto = debian/$(p_proto) + +dirs_proto = \ + $(docdir) \ + $(PF)/share/man/man1 \ + $(PF)/bin +files_proto = \ + $(PF)/bin/{protoize,unprotoize} \ + $(PF)/share/man/man1/{protoize,unprotoize}.1 + +# ---------------------------------------------------------------------- +$(binary_stamp)-proto: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_proto) + dh_installdirs -p$(p_proto) $(dirs_proto) + +ifeq ($(versioned_packages),yes) + : # rename versioned files back to unversioned ones. + for i in protoize unprotoize; do \ + mv $(d)/$(PF)/bin/$$i$(pkg_ver) $(d)/$(PF)/bin/$$i; \ + done +endif + $(IR) debian/protoize.1 $(d)/$(PF)/share/man/man1/ + ln -sf protoize.1 $(d)/$(PF)/share/man/man1/unprotoize.1 + DH_COMPAT=2 dh_movefiles -p$(p_proto) $(files_proto) + + debian/dh_doclink -p$(p_proto) $(p_base) + dh_strip -p$(p_proto) + dh_compress -p$(p_proto) + dh_fixperms -p$(p_proto) + dh_shlibdeps -p$(p_proto) + dh_gencontrol -p$(p_proto) -u-v$(DEB_EVERSION) + dh_installdeb -p$(p_proto) + dh_md5sums -p$(p_proto) + dh_builddeb -p$(p_proto) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-3.4-3.4.3.orig/debian/rules.d/binary-ada.mk +++ gcc-3.4-3.4.3/debian/rules.d/binary-ada.mk @@ -0,0 +1,187 @@ +arch_binaries := $(arch_binaries) ada +ifneq ($(GFDL_INVARIANT_FREE),yes) + indep_binaries := $(indep_binaries) ada-doc +endif + +ifeq ($(with_libgnat),yes) + arch_binaries := $(arch_binaries) libgnat +endif + +p_gnat = gnat-$(GNAT_VERSION) +p_lgnat = libgnat-$(GNAT_VERSION) +p_gnatd = $(p_gnat)-doc + +d_gnat = debian/$(p_gnat) +d_lgnat = debian/$(p_lgnat) +d_gnatd = debian/$(p_gnatd) + +GNAT_TOOLS = gnat gnatbind gnatbl gnatchop gnatclean gnatfind gnatkr gnatlink \ + gnatls gnatmake gnatname gnatprep gnatxref gpr2make gprcmd + +dirs_gnat = \ + $(docdir)/$(p_base)/Ada \ + $(PF)/bin \ + $(PF)/share/man/man1 \ + $(gcc_lib_dir) \ + $(gcc_lexec_dir) \ + $(PF)/$(libdir)/gnat + +files_gnat = \ + $(PF)/share/gnat \ + $(gcc_lexec_dir)/gnat1 \ + $(gcc_lib_dir)/{adalib,adainclude} \ + $(foreach i,$(GNAT_TOOLS),$(PF)/bin/$(i)) + +# $(foreach i,$(GNAT_TOOLS),$(PF)/bin/$(i)-$(GNAT_VERSION)) + +dirs_lgnat = \ + $(docdir) \ + $(PF)/lib +files_lgnat = \ + $(PF)/$(libdir)/lib{gnat,gnarl}-$(GNAT_VERSION).so.1 + +update-ada-files: + cd $(builddir) && tar cfj ada-generated.tar.bz2 \ + gcc/ada/{sinfo.h,einfo.h,nmake.ads,nmake.adb,treeprs.ads} + uuencode $(builddir)/ada-generated.tar.bz2 ada-generated.tar.bz2 \ + > debian/patches/ada-generated.uue + +$(binary_stamp)-libgnat: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_lgnat) + dh_installdirs -p$(p_lgnat) $(dirs_lgnat) + + for lib in lib{gnat,gnarl}; do \ + vlib=$$lib-$(GNAT_VERSION); \ + mv $(d)/$(gcc_lib_dir)/adalib/$$vlib.so.1 $(d)/$(PF)/$(libdir)/. ; \ + rm -f $(d)/$(gcc_lib_dir)/adalib/$$lib.so.1; \ + done + + DH_COMPAT=2 dh_movefiles -p$(p_lgnat) $(files_lgnat) + + debian/dh_doclink -p$(p_lgnat) $(p_base) + + debian/dh_rmemptydirs -p$(p_lgnat) + + dh_strip -p$(p_lgnat) + dh_compress -p$(p_lgnat) + dh_fixperms -p$(p_lgnat) + b=libgnat; \ + for ext in preinst postinst prerm postrm; do \ + for t in '' -dev -dbg; do \ + v=$(GNAT_VERSION); \ + if [ -f debian/$$b$$t.$$ext ]; then \ + cp -pf debian/$$b$$t.$$ext debian/$$b$$v$$t.$$ext; \ + fi; \ + done; \ + done + + dh_makeshlibs -p$(p_lgnat) -V '$(p_lgnat) (>= $(DEB_SOVERSION))' + cat debian/$(p_lgnat)/DEBIAN/shlibs >> debian/shlibs.local + + dh_shlibdeps -p$(p_lgnat) + dh_gencontrol -p$(p_lgnat) -u-v$(DEB_VERSION) + dh_installdeb -p$(p_lgnat) + dh_md5sums -p$(p_lgnat) + dh_builddeb -p$(p_lgnat) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +ifeq ($(with_libgnat),yes) +$(binary_stamp)-ada: $(install_stamp) $(binary_stamp)-libgnat +else +$(binary_stamp)-ada: $(install_stamp) +endif + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_gnat) + dh_installdirs -p$(p_gnat) $(dirs_gnat) + + DH_COMPAT=2 dh_movefiles -p$(p_gnat) $(files_gnat) + +ifeq ($(with_libgnat),yes) + for lib in lib{gnat,gnarl}; do \ + vlib=$$lib-$(GNAT_VERSION); \ + dh_link -p$(p_gnat) \ + /$(PF)/$(libdir)/$$vlib.so.1 /$(gcc_lib_dir)/adalib/$$vlib.so \ + /$(PF)/$(libdir)/$$vlib.so.1 /$(gcc_lib_dir)/adalib/$$lib.so; \ + done +endif + + debian/dh_doclink -p$(p_gnat) $(p_base) + + cp -p $(srcdir)/gcc/ada/ChangeLog \ + $(d_gnat)/$(docdir)/$(p_base)/Ada/changelog + + for i in $(GNAT_TOOLS); do \ + case "$$i" in \ + gnat) cp -p debian/gnat.1 $(d_gnat)/$(PF)/share/man/man1/ ;; \ + *) ln -sf gnat.1 $(d_gnat)/$(PF)/share/man/man1/$$i.1; \ + esac; \ + done + + ln -sf gcc$(pkg_ver) $(d_gnat)/$(PF)/bin/gnatgcc + ln -sf gcc$(pkg_ver).1.gz $(d_gnat)/$(PF)/share/man/man1/gnatgcc.1.gz + + debian/dh_rmemptydirs -p$(p_gnat) + + dh_strip -p$(p_gnat) + dh_compress -p$(p_gnat) + dh_fixperms -p$(p_gnat) +ifeq ($(with_libgnat),yes) + dh_shlibdeps -p$(p_gnat) -L $(p_lgnat) -l $(d_lgnat)/$(PF)/$(libdir) +else + dh_shlibdeps -p$(p_gnat) +endif + dh_gencontrol -p$(p_gnat) -u-v$(DEB_VERSION) + dh_installdeb -p$(p_gnat) + dh_md5sums -p$(p_gnat) + dh_builddeb -p$(p_gnat) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + + +ada_info_dir = $(d_gnatd)/$(PF)/share/info + +$(binary_stamp)-ada-doc: $(build_html_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_gnatd) + dh_installdirs -p$(p_gnatd) \ + $(docdir)/$(p_base)/Ada \ + $(PF)/share/info + + cd $(ada_info_dir) && \ + makeinfo -I $(srcdir)/gcc/doc/include -I $(srcdir)/gcc/ada \ + -o gnat_ugn_unw-$(GNAT_VERSION).info \ + $(builddir)/gcc/doc/gnat_ugn_unw.texi + cd $(ada_info_dir) && \ + makeinfo -I $(srcdir)/gcc/doc/include -I $(srcdir)/gcc/ada \ + -o gnat_rm-$(GNAT_VERSION).info \ + $(srcdir)/gcc/ada/gnat_rm.texi + cd $(ada_info_dir) && \ + makeinfo -I $(srcdir)/gcc/doc/include -I $(srcdir)/gcc/ada \ + -o gnat-style-$(GNAT_VERSION).info \ + $(srcdir)/gcc/ada/gnat-style.texi + + debian/dh_doclink -p$(p_gnatd) $(p_base) + dh_installdocs -p$(p_gnatd) + rm -f $(d_gnatd)/$(docdir)/$(p_base)/copyright + cp -p html/gnat_ugn_unw.html html/gnat_rm.html html/gnat-style.html \ + $(d_gnatd)/$(docdir)/$(p_base)/Ada/ + + dh_compress -p$(p_gnatd) + dh_fixperms -p$(p_gnatd) + dh_installdeb -p$(p_gnatd) + dh_gencontrol -p$(p_gnatd) -u-v$(DEB_VERSION) + dh_md5sums -p$(p_gnatd) + dh_builddeb -p$(p_gnatd) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-3.4-3.4.3.orig/debian/rules.d/binary-cross.mk +++ gcc-3.4-3.4.3/debian/rules.d/binary-cross.mk @@ -0,0 +1,57 @@ +arch_binaries := $(arch_binaries) gcc-cross + +dirs_gcc = \ + $(docdir)/$(p_base)/gcc \ + $(PF)/bin \ + $(gcc_lib_dir)/include \ + $(PF)/share/man/man1 + +files_gcc = \ + $(PF)/bin/{$(GCC_TARGET)-linux-gcc,$(GCC_TARGET)-linux-cpp}$(pkg_ver) \ + $(PF)/share/man/man1/{$(GCC_TARGET)-linux-gcc}$(pkg_ver).1 \ + $(gcc_lib_dir) \ + + +files_gcc += \ + $(shell test -e $(d)/$(gcc_lib_dir)/SYSCALLS.c.X \ + && echo $(gcc_lib_dir)/SYSCALLS.c.X) + +usr_doc_files = debian/README.Bugs \ + $(shell test -f $(srcdir)/FAQ && echo $(srcdir)/FAQ) +ifeq ($(with_check),yes) + usr_doc_files += test-summary +endif +ifeq ($(DEB_HOST_ARCH),sparc) + usr_doc_files += debian/README.sparc +endif + +# ---------------------------------------------------------------------- +$(binary_stamp)-gcc-cross: $(install_stamp) + dh_testdir + dh_testroot + rm -rf $(d_gcc) + dh_installdirs -p$(p_gcc) $(dirs_gcc) + $(IS) debian/c89 $(d)/$(PF)/bin/ + $(IR) debian/c89.1 $(d)/$(PF)/share/man/man1/ + + rm -f $(d)/$(PF)/$(libdir)/libgcc_s.so + ln -sf /$(libdir)/libgcc_s.so.$(GCC_SONAME) $(d)/$(gcc_lib_dir)/libgcc_s.so + + DH_COMPAT=2 dh_movefiles -p$(p_gcc) $(files_gcc) + +# dh_installdebconf + debian/dh_doclink -p$(p_gcc) $(p_base) + cp -p $(usr_doc_files) $(d_gcc)/$(docdir)/$(p_base)/. + cp -p debian/NEWS.gcc $(d_gcc)/$(docdir)/$(p_base)/NEWS + dh_undocumented -p$(p_gcc) gccbug$(pkg_ver).1 + debian/dh_rmemptydirs -p$(p_gcc) + dh_strip -p$(p_gcc) + dh_compress -p$(p_gcc) + dh_fixperms -p$(p_gcc) + dh_shlibdeps -p$(p_gcc) + dh_gencontrol -p$(p_gcc) -u-v$(DEB_VERSION) + dh_installdeb -p$(p_gcc) + dh_md5sums -p$(p_gcc) + dh_builddeb -p$(p_gcc) + touch $@ + --- gcc-3.4-3.4.3.orig/debian/rules.d/binary-fixincl.mk +++ gcc-3.4-3.4.3/debian/rules.d/binary-fixincl.mk @@ -0,0 +1,47 @@ +arch_binaries := $(arch_binaries) fixincl + +p_fix = fixincludes +d_fix = debian/$(p_fix) + +dirs_fix = \ + $(docdir)/$(p_base)/fixincludes \ + $(PF)/share/man/man1 \ + $(PF)/bin \ + $(gcc_lexec_dir) \ + $(gcc_lib_dir) +files_fix = \ + $(gcc_lexec_dir)/install-tools \ + $(gcc_lib_dir)/install-tools + +# ---------------------------------------------------------------------- +$(binary_stamp)-fixincl: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_fix) + dh_installdirs -p$(p_fix) $(dirs_fix) + DH_COMPAT=2 dh_movefiles -p$(p_fix) $(files_fix) + +# $(IP) $(builddir)/gcc/fixinc/fixincl $(d_fix)/$(PF)/lib/fixincludes/ +# sed -e "s,^FIXINCL=\(.*\),FIXINCL=/$(PF)/lib/fixincludes/fixincl," \ +# $(builddir)/gcc/fixinc.sh \ +# > $(d_fix)/$(PF)/lib/fixincludes/fixinc.sh +# chmod 755 $(d_fix)/$(PF)/lib/fixincludes/fixinc.sh + $(IR) $(srcdir)/gcc/fixinc/README \ + $(d_fix)/$(docdir)/$(p_base)/fixincludes + sed -e 's,@LIBEXECDIR@,$(gcc_lexec_dir),g' debian/fixincludes.in \ + > $(d_fix)/$(PF)/bin/fixincludes + chmod 755 $(d_fix)/$(PF)/bin/fixincludes + + debian/dh_doclink -p$(p_fix) $(p_base) + dh_strip -p$(p_fix) + dh_compress -p$(p_fix) + dh_fixperms -p$(p_fix) + dh_shlibdeps -p$(p_fix) + dh_gencontrol -p$(p_fix) -u-v$(DEB_EVERSION) + dh_installdeb -p$(p_fix) + dh_md5sums -p$(p_fix) + dh_builddeb -p$(p_fix) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-3.4-3.4.3.orig/debian/rules.d/binary-libobjc.mk +++ gcc-3.4-3.4.3/debian/rules.d/binary-libobjc.mk @@ -0,0 +1,67 @@ +ifeq ($(with_objcdev),yes) + arch_binaries := $(arch_binaries) libobjc +endif + +p_lobjc = libobjc$(OBJC_SONAME) +d_lobjc = debian/$(p_lobjc) + +dirs_lobjc = \ + $(docdir)/objc \ + $(PF)/$(libdir) +files_lobjc = \ + $(PF)/$(libdir)/libobjc.so.* +ifeq ($(with_objc_gc),yes) + files_lobjc += \ + $(PF)/$(libdir)/libobjc_gc.so.* +endif + +ifeq ($(with_lib64objc),yes) + dirs_lobjc += $(PF)/$(lib64) + files_lobjc += $(PF)/$(lib64)/libobjc.so.* + ifeq ($(with_objc_gc),yes) + files_lobjc += $(PF)/$(lib64)/libobjc_gc.so.* + endif +endif + + +$(binary_stamp)-libobjc: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_lobjc) + dh_installdirs -p$(p_lobjc) $(dirs_lobjc) +# mv $(d)/$(gcc_lib_dir)/libobjc.so.* $(d)/$(PF)/$(libdir)/. +#ifeq ($(with_objc_gc),yes) +# mv $(d)/$(gcc_lib_dir)/libobjc_gc.so.* $(d)/$(PF)/$(libdir)/. +#endif + DH_COMPAT=2 dh_movefiles -p$(p_lobjc) $(files_lobjc) + + dh_installdocs -p$(p_lobjc) + echo "See /$(docdir)/$(p_base) for more information" \ + > $(d_lobjc)/$(docdir)/$(p_lobjc)/README.Debian + dh_installchangelogs -p$(p_lobjc) $(srcdir)/libobjc/ChangeLog + + debian/dh_rmemptydirs -p$(p_lobjc) + + dh_strip -p$(p_lobjc) + dh_compress -p$(p_lobjc) + + dh_fixperms -p$(p_lobjc) + b=libobjc; \ + for ext in preinst postinst prerm postrm; do \ + for t in '' -dev -dbg; do \ + v=$(OBJC_SONAME); \ + if [ -f debian/$$b$$t.$$ext ]; then \ + cp -pf debian/$$b$$t.$$ext debian/$$b$$v$$t.$$ext; \ + fi; \ + done; \ + done + dh_makeshlibs -p$(p_lobjc) -V '$(p_lobjc) (>= $(DEB_SOEVERSION))' + dh_shlibdeps -p$(p_lobjc) + dh_gencontrol -p$(p_lobjc) -u-v$(DEB_EVERSION) + dh_installdeb -p$(p_lobjc) + dh_md5sums -p$(p_lobjc) + dh_builddeb -p$(p_lobjc) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-3.4-3.4.3.orig/debian/rules.d/binary-nof.mk +++ gcc-3.4-3.4.3/debian/rules.d/binary-nof.mk @@ -0,0 +1,56 @@ +arch_binaries := $(arch_binaries) nof + +p_nof = gcc$(pkg_ver)-nof +d_nof = debian/$(p_nof) + +dirs_nof = \ + $(docdir) \ + $(PF)/$(libdir)/nof +ifeq ($(with_cdev),yes) + dirs_nof += \ + $(gcc_lib_dir)/nof +endif + +ifeq ($(with_cdev),yes) + files_nof = \ + $(libdir)/libgcc_s_nof.so.$(GCC_SONAME) \ + $(gcc_lib_dir)/libgcc_s_nof.so \ + $(PF)/$(libdir)/nof \ + $(gcc_lib_dir)/nof +else + files_nof = \ + $(libdir)/libgcc_s_nof.so.$(GCC_SONAME) +endif + +# ---------------------------------------------------------------------- +$(binary_stamp)-nof: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + mv $(d)/$(PF)/$(libdir)/libgcc_s_nof.so.$(GCC_SONAME) $(d)/$(libdir)/. + rm -f $(d)/$(PF)/$(libdir)/libgcc_s_nof.so + ln -sf /$(libdir)/libgcc_s_nof.so.$(GCC_SONAME) \ + $(d)/$(gcc_lib_dir)/libgcc_s_nof.so + + rm -rf $(d_nof) + dh_installdirs -p$(p_nof) $(dirs_nof) + DH_COMPAT=2 dh_movefiles -p$(p_nof) $(files_nof) + debian/dh_doclink -p$(p_nof) $(p_base) + dh_strip -p$(p_nof) + dh_compress -p$(p_nof) + dh_fixperms -p$(p_nof) + dh_shlibdeps -p$(p_nof) + + dh_makeshlibs -p$(p_nof) + : # Only keep the shlibs file for the libgcc_s_nof library + fgrep libgcc_s_nof debian/$(p_nof)/DEBIAN/shlibs \ + > debian/$(p_nof)/DEBIAN/shlibs.tmp + mv -f debian/$(p_nof)/DEBIAN/shlibs.tmp debian/$(p_nof)/DEBIAN/shlibs + + dh_gencontrol -p$(p_nof) -u-v$(DEB_VERSION) + dh_installdeb -p$(p_nof) + dh_md5sums -p$(p_nof) + dh_builddeb -p$(p_nof) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-3.4-3.4.3.orig/debian/rules.d/binary-softfloat.mk +++ gcc-3.4-3.4.3/debian/rules.d/binary-softfloat.mk @@ -0,0 +1,33 @@ +arch_binaries := $(arch_binaries) softfloat + +p_softfloat = gcc$(pkg_ver)-soft-float +d_softfloat = debian/$(p_softfloat) + +dirs_softfloat = \ + $(PF)/$(libdir)/soft-float \ + $(gcc_lib_dir)/soft-float + +files_softfloat = \ + $(PF)/$(libdir)/soft-float \ + $(gcc_lib_dir)/soft-float + +# ---------------------------------------------------------------------- +$(binary_stamp)-softfloat: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_softfloat) + dh_installdirs -p$(p_softfloat) $(dirs_softfloat) + DH_COMPAT=2 dh_movefiles -p$(p_softfloat) $(files_softfloat) + debian/dh_doclink -p$(p_softfloat) $(p_base) + dh_strip -p$(p_softfloat) -Xlibgcj.a + dh_compress -p$(p_softfloat) + dh_fixperms -p$(p_softfloat) + dh_shlibdeps -p$(p_softfloat) + dh_gencontrol -p$(p_softfloat) -u-v$(DEB_VERSION) + dh_installdeb -p$(p_softfloat) + dh_md5sums -p$(p_softfloat) + dh_builddeb -p$(p_softfloat) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-3.4-3.4.3.orig/debian/rules.d/binary-libffi.mk +++ gcc-3.4-3.4.3/debian/rules.d/binary-libffi.mk @@ -0,0 +1,71 @@ +arch_binaries := $(arch_binaries) libffi + +p_ffi = libffi$(FFI_SONAME) +p_ffid = libffi$(FFI_SONAME)-dev + +d_ffi = debian/$(p_ffi) +d_ffid = debian/$(p_ffid) + +dirs_ffi = \ + $(docdir)/$(p_ffi) \ + $(PF)/$(libdir) +files_ffi = \ + $(PF)/$(libdir)/libffi.so.* + +dirs_ffid = \ + $(docdir) \ + $(PF)/include \ + $(gcc_lib_dir)/include +files_ffid = \ + $(gcc_lib_dir)/include/libffi \ + $(PF)/include/{ffi.h,ffitarget.h} \ + $(PF)/$(libdir)/libffi.{a,so,la} + +ifeq ($(with_lib64ffi),yes) + dirs_ffi += $(PF)/$(lib64) + files_ffi += $(PF)/$(lib64)/libffi.so.* + dirs_ffid += $(PF)/$(lib64) + files_ffid += $(PF)/$(lib64)/libffi.{a,so,la} +endif + +$(binary_stamp)-libffi: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_ffi) $(d_ffid) + dh_installdirs -p$(p_ffi) $(dirs_ffi) + dh_installdirs -p$(p_ffid) $(dirs_ffid) + + mv $(d)/$(gcc_lib_dir)/include/libffi/ffitarget.h $(d)/$(PF)/include/. + + DH_COMPAT=2 dh_movefiles -p$(p_ffi) $(files_ffi) + DH_COMPAT=2 dh_movefiles -p$(p_ffid) $(files_ffid) + + dh_installdocs -p$(p_ffi) $(srcdir)/libffi/README + dh_installchangelogs -p$(p_ffi) $(srcdir)/libffi/ChangeLog + cp -p $(srcdir)/libffi/LICENSE $(d_ffi)/$(docdir)/$(p_ffi)/copyright + cp -p $(srcdir)/libffi/ChangeLog.libgcj \ + $(d_ffi)/$(docdir)/$(p_ffi)/changelog.libgcj + debian/dh_doclink -p$(p_ffid) $(p_ffi) + + debian/dh_rmemptydirs -p$(p_ffi) + debian/dh_rmemptydirs -p$(p_ffid) + + dh_strip -p$(p_ffi) -p$(p_ffid) + dh_compress -p$(p_ffi) -p$(p_ffid) + dh_fixperms -p$(p_ffi) -p$(p_ffid) + dh_makeshlibs -p$(p_ffi) -V '$(p_ffi) (>= $(DEB_FFI_SOVERSION))' + dh_shlibdeps -p$(p_ffi) -p$(p_ffid) + dh_gencontrol -p$(p_ffi) -p$(p_ffid) -u-v$(DEB_EVERSION) + b=libffi; v=$(FFI_SONAME); \ + for ext in preinst postinst prerm postrm; do \ + if [ -f debian/$$b$$t.$$ext ]; then \ + cp -pf debian/$$b$$t.$$ext debian/$$b$$v$$t.$$ext; \ + fi; \ + done + dh_installdeb -p$(p_ffi) -p$(p_ffid) + dh_md5sums -p$(p_ffi) -p$(p_ffid) + dh_builddeb -p$(p_ffi) -p$(p_ffid) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-3.4-3.4.3.orig/debian/rules.d/binary-fortran.mk +++ gcc-3.4-3.4.3/debian/rules.d/binary-fortran.mk @@ -0,0 +1,196 @@ +ifeq ($(with_libg2c),yes) + arch_binaries := $(arch_binaries) libg2c +endif + +ifeq ($(with_fdev),yes) + arch_binaries := $(arch_binaries) fdev + ifneq ($(GFDL_INVARIANT_FREE),yes) + indep_binaries := $(indep_binaries) fortran-doc + endif + ifeq ($(with_common_libs),yes) + arch_binaries := $(arch_binaries) libg2c-dev + endif +endif + +p_g77 = g77$(pkg_ver) +p_g77d = g77$(pkg_ver)-doc +p_g2c = libg2c$(F77_SONAME) +p_g2cd = libg2c$(F77_SONAME)-dev + +d_g77 = debian/$(p_g77) +d_g77d = debian/$(p_g77d) +d_g2c = debian/$(p_g2c) +d_g2cd = debian/$(p_g2cd) + +dirs_g77 = \ + $(docdir)/$(p_base)/fortran \ + $(PF)/bin \ + $(gcc_lexec_dir) \ + $(gcc_lib_dir)/include \ + $(PF)/include \ + $(PF)/share/man/man1 +files_g77 = \ + $(PF)/bin/g77$(pkg_ver) \ + $(gcc_lexec_dir)/f771 \ + $(PF)/share/man/man1/g77$(pkg_ver).1 + +dirs_g2c = \ + $(docdir)/$(p_base)/fortran \ + $(PF)/$(libdir) \ + +files_g2c = \ + $(PF)/$(libdir)/libg2c.so.* + +dirs_g2cd = \ + $(docdir)/$(p_base)/fortran \ + $(PF)/$(libdir) \ + +files_g2cd = \ + $(PF)/$(libdir)/libg2c.{a,la,so} \ + $(PF)/$(libdir)/libfrtbegin.a \ + $(gcc_lib_dir)/include/g2c.h + +ifeq ($(with_lib64g2c),yes) + dirs_g2c += $(PF)/$(lib64) + files_g2c += $(PF)/$(lib64)/libg2c.so.* + + dirs_g2cd += $(PF)/$(lib64) + files_g2cd += $(PF)/$(lib64)/{libg2c.{a,la,so},libfrtbegin.a} +endif + +# ---------------------------------------------------------------------- +$(binary_stamp)-libg2c: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_g2c) + dh_installdirs -p$(p_g2c) $(dirs_g2c) + DH_COMPAT=2 dh_movefiles -p$(p_g2c) $(files_g2c) + debian/dh_doclink -p$(p_g2c) $(p_base) + cp -p debian/README.libf2c \ + $(d_g2c)/$(docdir)/$(p_base)/fortran/README.Debian + + dh_strip -p$(p_g2c) + dh_compress -p$(p_g2c) + dh_fixperms -p$(p_g2c) + dh_makeshlibs -p$(p_g2c) -V '$(p_g2c) (>= $(DEB_SOEVERSION))' + dh_shlibdeps -p$(p_g2c) + dh_gencontrol -p$(p_g2c) -u-v$(DEB_EVERSION) + dh_installdeb -p$(p_g2c) + dh_md5sums -p$(p_g2c) + dh_builddeb -p$(p_g2c) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- +$(binary_stamp)-libg2c-dev: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_g2cd) + dh_installdirs -p$(p_g2cd) $(dirs_g2cd) + dh_movefiles -p$(p_g2cd) $(files_g2cd) + debian/dh_doclink -p$(p_g2cd) $(p_base) + + dh_strip -p$(p_g2cd) + dh_compress -p$(p_g2cd) + dh_fixperms -p$(p_g2cd) + dh_shlibdeps -p$(p_g2cd) + dh_gencontrol -p$(p_g2cd) -u-v$(DEB_EVERSION) + dh_installdeb -p$(p_g2cd) + dh_md5sums -p$(p_g2cd) + dh_builddeb -p$(p_g2cd) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- +$(binary_stamp)-fdev: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + +# sed "s,^libdir=.*,libdir='/$(gcc_lib_dir)'," \ +# $(d)/$(PF)/$(libdir)/libg2c.la > $(d)/$(gcc_lib_dir)/libg2c.la +# rm -f $(d)/$(PF)/$(libdir)/libg2c.la +# mv $(d)/$(PF)/$(libdir)/libg2c.{a,so} $(d)/$(gcc_lib_dir)/ +# ln -sf ../../../libg2c.so.$(F77_SONAME) \ +# $(d)/$(gcc_lib_dir)/libg2c.so +# mv $(d)/$(PF)/$(libdir)/libfrtbegin.a $(d)/$(gcc_lib_dir)/ + +#ifeq ($(biarch),yes) +# ifeq ($(DEB_TARGET_GNU_CPU),i386) +# mv $(d)/$(PF)/$(lib64)/libg2c.{a,la,so} $(d)/$(gcc_lib_dir)/64 +# ln -sf ../../../../lib64/libg2c.so.$(F77_SONAME) \ +# $(d)/$(gcc_lib_dir)/64/libg2c.so +# mv $(d)/$(PF)/$(lib64)/libfrtbegin.a $(d)/$(gcc_lib_dir)/64 +# endif +#endif + rm -rf $(d_g77) + dh_installdirs -p$(p_g77) $(dirs_g77) + DH_COMPAT=2 dh_movefiles -p$(p_g77) $(files_g77) + +# dh_installdirs -p$(p_g2cd) $(dirs_g2cd) +# DH_COMPAT=2 dh_movefiles -p$(p_g2cd) $(files_g2cd) + + ln -sf g77$(pkg_ver) \ + $(d_g77)/$(PF)/bin/$(DEB_TARGET_GNU_TYPE)-g77$(pkg_ver) + ln -sf g77$(pkg_ver).1 \ + $(d_g77)/$(PF)/share/man/man1/$(DEB_TARGET_GNU_TYPE)-g77$(pkg_ver).1 + ln -sf g77$(pkg_ver) \ + $(d_g77)/$(PF)/bin/$(TARGET_ALIAS)-g77$(pkg_ver) + ln -sf g77$(pkg_ver).1 \ + $(d_g77)/$(PF)/share/man/man1/$(TARGET_ALIAS)-g77$(pkg_ver).1 + + debian/dh_doclink -p$(p_g77) $(p_base) +# debian/dh_doclink -p$(p_g2cd) $(p_base) + +# #cp -p $(srcdir)/gcc/f/{NEWS,BUGS} \ +# # $(d_g77)/$(docdir)/$(p_base)/fortran/. + cp -p $(srcdir)/libf2c/README \ + $(d_g77)/$(docdir)/$(p_base)/fortran/README.libf2c + cp -p $(srcdir)/gcc/f/ChangeLog \ + $(d_g77)/$(docdir)/$(p_base)/fortran/changelog + debian/dh_rmemptydirs -p$(p_g77) +# debian/dh_rmemptydirs -p$(p_g2cd) + + dh_strip -p$(p_g77) + dh_compress -p$(p_g77) + dh_fixperms -p$(p_g77) + dh_shlibdeps -p$(p_g77) + dh_gencontrol -p$(p_g77) -u-v$(DEB_VERSION) + dh_installdeb -p$(p_g77) + dh_md5sums -p$(p_g77) + dh_builddeb -p$(p_g77) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- +$(binary_stamp)-fortran-doc: $(build_html_stamp) $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_g77d) + dh_installdirs -p$(p_g77d) \ + $(docdir)/$(p_base)/fortran \ + $(PF)/share/info + DH_COMPAT=2 dh_movefiles -p$(p_g77d) \ + $(PF)/share/info/g77* + + debian/dh_doclink -p$(p_g77d) $(p_base) +ifneq ($(GFDL_INVARIANT_FREE),yes) + dh_installdocs -p$(p_g77d) + rm -f $(d_g77d)/$(docdir)/$(p_base)/copyright + cp -p html/g77.html $(d_g77d)/$(docdir)/$(p_base)/fortran/ +endif + + dh_compress -p$(p_g77d) + dh_fixperms -p$(p_g77d) + dh_installdeb -p$(p_g77d) + dh_gencontrol -p$(p_g77d) -u-v$(DEB_VERSION) + dh_md5sums -p$(p_g77d) + dh_builddeb -p$(p_g77d) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-3.4-3.4.3.orig/debian/rules.d/binary-objc.mk +++ gcc-3.4-3.4.3/debian/rules.d/binary-objc.mk @@ -0,0 +1,51 @@ +arch_binaries := $(arch_binaries) objc + +p_objc = gobjc$(pkg_ver) +d_objc = debian/$(p_objc) + +dirs_objc = \ + $(docdir)/$(p_base)/ObjC \ + $(gcc_lexec_dir) \ + $(gcc_lib_dir)/include + +files_objc = \ + $(gcc_lexec_dir)/cc1obj \ + $(gcc_lib_dir)/include/objc \ + $(gcc_lib_dir)/{libobjc*.a,libobjc*.la} + +$(binary_stamp)-objc: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + mv $(d)/$(PF)/$(libdir)/libobjc*.{a,la} $(d)/$(gcc_lib_dir)/ + + rm -rf $(d_objc) + dh_installdirs -p$(p_objc) $(dirs_objc) + DH_COMPAT=2 dh_movefiles -p$(p_objc) $(files_objc) + + dh_link -p$(p_objc) \ + /$(PF)/$(libdir)/libobjc.so.$(OBJC_SONAME) /$(gcc_lib_dir)/libobjc.so +ifeq ($(with_objc_gc),yes) + dh_link -p$(p_objc) \ + /$(PF)/$(libdir)/libobjc_gc.so.$(OBJC_SONAME) \ + /$(gcc_lib_dir)/libobjc_gc.so +endif + + debian/dh_doclink -p$(p_objc) $(p_base) + cp -p $(srcdir)/libobjc/{README*,THREADS*} \ + $(d_objc)/$(docdir)/$(p_base)/ObjC/. + + debian/dh_rmemptydirs -p$(p_objc) + + dh_strip -p$(p_objc) + dh_compress -p$(p_objc) + + dh_fixperms -p$(p_objc) + dh_shlibdeps -p$(p_objc) + dh_gencontrol -p$(p_objc) -u-v$(DEB_VERSION) + dh_installdeb -p$(p_objc) + dh_md5sums -p$(p_objc) + dh_builddeb -p$(p_objc) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-3.4-3.4.3.orig/debian/rules.d/binary-cpp-cross.mk +++ gcc-3.4-3.4.3/debian/rules.d/binary-cpp-cross.mk @@ -0,0 +1,40 @@ +arch_binaries := $(arch_binaries) cpp + +dirs_cpp = \ + $(docdir) \ + $(PF)/share/man/man1 \ + $(PF)/bin \ + $(gcc_lexec_dir) + +files_cpp = \ + $(PF)/bin/$(DEB_TARGET_GNU_TYPE)-cpp$(pkg_ver) \ + $(PF)/share/man/man1/$(DEB_TARGET_GNU_TYPE)-cpp$(pkg_ver).1 \ + $(gcc_lexec_dir)/cc1 + +# ---------------------------------------------------------------------- +$(binary_stamp)-cpp: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_cpp) + dh_installdirs -p$(p_cpp) $(dirs_cpp) + DH_COMPAT=2 dh_movefiles -p$(p_cpp) $(files_cpp) + + debian/dh_doclink -p$(p_cpp) $(p_base) + debian/dh_rmemptydirs -p$(p_cpp) + + dh_strip -p$(p_cpp) + dh_compress -p$(p_cpp) + dh_fixperms -p$(p_cpp) + dh_shlibdeps -p$(p_cpp) + dh_gencontrol -p$(p_cpp) -u-v$(DEB_VERSION) + dh_installdeb -p$(p_cpp) + sed 's/cross-/$(TP)/g;s/-ver/$(pkg_ver)/g;s/gcc/cpp/g' < debian/gcc-cross.postinst > debian/$(p_cpp)/DEBIAN/postinst + sed 's/cross-/$(TP)/g;s/-ver/$(pkg_ver)/g;s/gcc/cpp/g' < debian/gcc-cross.prerm > debian/$(p_cpp)/DEBIAN/prerm + chmod 755 debian/$(p_cpp)/DEBIAN/{postinst,prerm} + dh_md5sums -p$(p_cpp) + dh_builddeb -p$(p_cpp) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + --- gcc-3.4-3.4.3.orig/debian/rules.d/binary-gcc-cross.mk +++ gcc-3.4-3.4.3/debian/rules.d/binary-gcc-cross.mk @@ -0,0 +1,102 @@ +arch_binaries := $(arch_binaries) gcc + +# gcc must be moved after g77 and g++ +# not all files $(PF)/include/*.h are part of gcc, +# but it becomes difficult to name all these files ... + +dirs_gcc = \ + $(PF)/bin \ + $(gcc_lexec_dir) \ + $(gcc_lib_dir)/include \ + $(PF)/share/man/man1 $(libdir) + +files_gcc = \ + $(PF)/bin/$(DEB_TARGET_GNU_TYPE)-gcc$(pkg_ver) \ + $(PF)/share/man/man1/$(DEB_TARGET_GNU_TYPE)-gcc$(pkg_ver).1 \ + $(gcc_lexec_dir)/collect2 \ + $(gcc_lib_dir)/{specs,libgcc*,*.o} \ + $(gcc_lib_dir)/include/README \ + $(gcc_lib_dir)/include/{float,iso646,limits,std*,syslimits,unwind,varargs}.h \ + $(shell for d in asm bits gnu linux; do \ + test -e $(d)/$(gcc_lib_dir)/include/$$d \ + && echo $(gcc_lib_dir)/include/$$d; \ + done) + +ifeq ($(biarch),yes) + files_gcc += $(gcc_lib_dir)/64/{libgcc*,*.o} +endif + +files_gcc += \ + $(shell test -e $(d)/$(gcc_lib_dir)/SYSCALLS.c.X \ + && echo $(gcc_lib_dir)/SYSCALLS.c.X) + +ifeq ($(DEB_TARGET_ARCH),ia64) + files_gcc += $(gcc_lib_dir)/include/ia64intrin.h +endif + +ifeq ($(DEB_TARGET_ARCH),i386) + files_gcc += $(gcc_lib_dir)/include/{,e,p,x}mmintrin.h +endif + +ifeq ($(DEB_TARGET_ARCH),hurd-i386) + files_gcc += $(gcc_lib_dir)/include/{,e,p,x}mmintrin.h +endif + +ifeq ($(DEB_TARGET_ARCH),m68k) + files_gcc += $(gcc_lib_dir)/include/math-68881.h +endif + +ifeq ($(DEB_TARGET_ARCH),powerpc) + files_gcc += $(gcc_lib_dir)/include/{altivec.h,ppc-asm.h} +endif + +usr_doc_files = debian/README.Bugs \ + $(shell test -f $(srcdir)/FAQ && echo $(srcdir)/FAQ) +ifeq ($(with_check),yes) + usr_doc_files += test-summary +endif + +# ---------------------------------------------------------------------- +$(binary_stamp)-gcc: $(install_dependencies) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_gcc) + dh_installdirs -p$(p_gcc) $(dirs_gcc) + + rm -f $(d)/$(PF)/$(libdir)/libgcc_s.so + ln -sf /$(PF)/$(DEB_TARGET_GNU_TYPE)/$(libdir)/libgcc_s.so.$(GCC_SONAME) $(d)/$(gcc_lib_dir)/libgcc_s.so +ifeq ($(biarch),yes) + rm -f $(d)/$(PF)/$(lib64)/libgcc_s.so + ln -sf /$(PF)/$(DEB_TARGET_GNU_TYPE)/$(lib64)/libgcc_s.so.$(GCC_SONAME) $(d)/$(gcc_lib_dir)/libgcc_s_64.so + ln -sf /$(PF)/$(DEB_TARGET_GNU_TYPE)/$(lib64)/libgcc_s.so.$(GCC_SONAME) $(d)/$(gcc_lib_dir)/64/libgcc_s.so +endif + + DH_COMPAT=2 dh_movefiles -p$(p_gcc) $(files_gcc) + +# dh_installdebconf + debian/dh_doclink -p$(p_gcc) $(p_base) + debian/dh_rmemptydirs -p$(p_gcc) + PATH=/usr/share/dpkg-cross:$$PATH dh_strip -p$(p_gcc) + dh_compress -p$(p_gcc) + dh_fixperms -p$(p_gcc) + dh_shlibdeps -p$(p_gcc) + dh_gencontrol -p$(p_gcc) -u-v$(DEB_VERSION) + sed 's/cross-/$(TP)/g;s/-ver/$(pkg_ver)/g' < debian/gcc-cross.postinst > debian/$(p_gcc)/DEBIAN/postinst + sed 's/cross-/$(TP)/g;s/-ver/$(pkg_ver)/g' < debian/gcc-cross.prerm > debian/$(p_gcc)/DEBIAN/prerm + chmod 755 debian/$(p_gcc)/DEBIAN/{postinst,prerm} + dh_installdeb -p$(p_gcc) + dh_md5sums -p$(p_gcc) + dh_builddeb -p$(p_gcc) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + + : # remove empty directories, when all components are in place + for d in `find $(d) -depth -type d -empty 2> /dev/null`; do \ + while rmdir $$d 2> /dev/null; do d=`dirname $$d`; done; \ + done + + @echo "Listing installed files not included in any package:" + -find $(d) ! -type d + --- gcc-3.4-3.4.3.orig/debian/rules.d/binary-java.mk +++ gcc-3.4-3.4.3/debian/rules.d/binary-java.mk @@ -0,0 +1,304 @@ +ifeq ($(with_java),yes) + arch_binaries := $(arch_binaries) java + indep_binaries := $(indep_binaries) gcjjar +endif + +ifeq ($(with_common_libs),yes) + indep_binaries := $(indep_binaries) libgcj-common +endif + +ifeq ($(with_javadev),yes) + arch_binaries := $(arch_binaries) javadev +endif + +p_gcj = gcj$(pkg_ver) +p_gij = gij$(pkg_ver) +p_jcom = libgcj-common +p_jlib = libgcj$(GCJ_SONAME) +p_jlibc = libgcj$(GCJ_SONAME)-common +p_jlibx = libgcj$(GCJ_SONAME)-awt +p_jdev = libgcj$(GCJ_SONAME)-dev + +d_gcj = debian/$(p_gcj) +d_gij = debian/$(p_gij) +d_jcom = debian/$(p_jcom) +d_jlib = debian/$(p_jlib) +d_jlibc = debian/$(p_jlibc) +d_jlibx = debian/$(p_jlibx) +d_jdev = debian/$(p_jdev) + +dirs_gcj = \ + $(docdir)/$(p_base)/java \ + $(PF)/bin \ + $(PF)/share/man/man1 \ + $(PF)/share/info \ + $(gcc_lexec_dir) +files_gcj = \ + $(PF)/bin/{gcj,gcjh,jv-convert,jv-scan,jcf-dump,rmic}$(pkg_ver) \ + $(PF)/share/man/man1/{gcj,gcjh,jv-convert,jv-scan,jcf-dump,rmic}$(pkg_ver).1 \ + $(gcc_lexec_dir)/{jc1,jvgenmain} + +ifneq ($(GFDL_INVARIANT_FREE),yes) + files_gcj += \ + $(PF)/share/info/gcj* +endif + +dirs_gij = \ + $(docdir)/$(p_base)/java \ + $(PF)/bin \ + $(PF)/share/man/man1 + +files_gij = \ + $(PF)/bin/{gij,rmiregistry}$(pkg_ver) \ + $(PF)/share/man/man1/{gij,rmiregistry}$(pkg_ver).1 + +dirs_jcom = \ + $(PF)/$(libdir) + +files_jcom = \ + $(PF)/$(libdir)/security + +dirs_jlib = \ + $(docdir)/$(p_jlib) \ + $(PF)/$(libdir) + +files_jlib = \ + $(PF)/$(libdir)/libgcj*.so.* \ + $(PF)/$(libdir)/lib-org-*.so.* + +dirs_jlibc = \ + $(docdir)/$(p_jlib) \ + $(PF)/share/java + +files_jlibc = \ + $(PF)/share/java/libgcj-$(VER).jar + +dirs_jlibx = \ + $(docdir)/$(p_jlib) \ + $(PF)/$(libdir) \ + $(PF)/share/java + +files_jlibx = \ + $(PF)/lib/lib-gnu-java-awt*.so.* + +dirs_jdev = \ + $(docdir)/$(p_jlib)/examples \ + $(PF)/include \ + $(PF)/$(libdir) \ + $(gcc_lib_dir)/include/gcj + +files_jdev = \ + $(PF)/include/{gcj,java,javax,jni.h,jvmpi.h} \ + $(PF)/include/gnu/{awt,classpath,gcj,java,javax} \ + $(PF)/$(libdir)/libgcj*.{a,la} \ + $(PF)/$(libdir)/{libgcj*.so,libgcj.spec} \ + $(gcc_lib_dir)/include/gcj/libgcj-config.h \ + $(PF)/$(libdir)/pkgconfig/libgcj.pc \ + $(PF)/$(libdir)/lib-gnu-*.{a,la} \ + $(PF)/$(libdir)/lib-gnu-*.so \ + $(PF)/$(libdir)/lib-org-*.{a,la} \ + $(PF)/$(libdir)/lib-org-*.so + +ifeq ($(with_lib64gcj),yes) + dirs_jlib += $(PF)/$(lib64) + files_jlib += $(PF)/$(lib64)/libgcj*.so.* \ + $(PF)/$(lib64)/lib-org-*.so.* + + dirs_jlibx += $(PF)/$(lib64) + files_jlibx += $(PF)/$(lib64)/lib-gnu-java-awt-*.so.* + + dirs_jdev += $(PF)/$(lib64) + files_jdev += $(PF)/$(lib64)/libgcj*.{a,so,la} \ + $(PF)/$(lib64)/lib-gnu-*.{a,so,la} \ + $(PF)/$(lib64)/lib-org-*.{a,so,la} +endif + +# ---------------------------------------------------------------------- +$(binary_stamp)-libgcj-common: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + dh_installdirs -p$(p_jcom) $(dirs_jcom) + [ -d $(d)/$(PF)/$(libdir)/security ] \ + || mkdir -p $(d)/$(PF)/$(libdir)/security + [ -f $(d)/$(PF)/$(libdir)/security/classpath.security ] || \ + cp $(srcdir)/libjava/java/security/*.security \ + $(d)/$(PF)/$(libdir)/security/. + DH_COMPAT=2 dh_movefiles -p$(p_jcom) $(files_jcom) + debian/dh_doclink -p$(p_jcom) $(p_base) + debian/dh_rmemptydirs -p$(p_jcom) + dh_compress -p$(p_jcom) + dh_fixperms -p$(p_jcom) + dh_gencontrol -p$(p_jcom) -u-v$(DEB_EVERSION) + dh_installdeb -p$(p_jcom) + dh_md5sums -p$(p_jcom) + dh_builddeb -p$(p_jcom) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- +$(binary_stamp)-gcjjar: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + dh_installdirs -p$(p_jlibc) $(dirs_jlibc) + DH_COMPAT=2 dh_movefiles -p$(p_jlibc) $(files_jlibc) + debian/dh_doclink -p$(p_jlibc) $(p_base) + debian/dh_rmemptydirs -p$(p_jlibc) + dh_compress -p$(p_jlibc) + dh_fixperms -p$(p_jlibc) + dh_gencontrol -p$(p_jlibc) -u-v$(DEB_VERSION) + cp -p debian/libgcj5-common.preinst.in debian/libgcj5-common.preinst + dh_installdeb -p$(p_jlibc) + dh_md5sums -p$(p_jlibc) + dh_builddeb -p$(p_jlibc) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- +$(binary_stamp)-java: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + dh_installdirs -p$(p_gij) $(dirs_gij) + dh_installdirs -p$(p_jlib) $(dirs_jlib) + dh_installdirs -p$(p_jlibx) $(dirs_jlibx) + + DH_COMPAT=2 dh_movefiles -p$(p_gij) $(files_gij) + DH_COMPAT=2 dh_movefiles -p$(p_jlib) $(files_jlib) + DH_COMPAT=2 dh_movefiles -p$(p_jlibx) $(files_jlibx) + + debian/dh_doclink -p$(p_gij) $(p_base) + dh_installdocs -p$(p_jlib) $(srcdir)/libjava/{NEWS,README,THANKS} + dh_installchangelogs -p$(p_jlib) + debian/dh_doclink -p$(p_jlibx) $(p_jlib) + + cp -p debian/gij-wrapper $(d_gij)/$(PF)/bin/gij-wrapper$(pkg_ver) + chmod 755 $(d_gij)/$(PF)/bin/gij-wrapper$(pkg_ver) + cp -p debian/gij-wrapper.1 \ + $(d_gij)/$(PF)/share/man/man1/gij-wrapper$(pkg_ver).1 + + debian/dh_rmemptydirs -p$(p_gij) + debian/dh_rmemptydirs -p$(p_jlib) + debian/dh_rmemptydirs -p$(p_jlibx) + + dh_makeshlibs -p$(p_jlib) -V '$(p_jlib) (>= $(DEB_SOVERSION))' + cat debian/$(p_jlib)/DEBIAN/shlibs >> debian/shlibs.local + + dh_makeshlibs -p$(p_jlibx) -V '$(p_jlibx) (>= $(DEB_SOVERSION))' + + dh_strip -p$(p_gij) -p$(p_jlib) -p$(p_jlibx) + dh_compress -p$(p_gij) -p$(p_jlib) -p$(p_jlibx) + dh_fixperms -p$(p_gij) -p$(p_jlib) -p$(p_jlibx) +# the libstdc++ binary packages aren't built yet ... + echo 'libstdc++ $(CXX_SONAME) $(p_lib) (>= $(DEB_STDCXX_SOVERSION))' \ + >> debian/shlibs.local +# dh_shlibdeps finds libgcc in lib64gcc1 ... move it away for a moment ... + -[ -d $(d_l64gcc) ] && mv $(d_l64gcc) $(d_l64gcc).away + dh_shlibdeps \ + -L$(p_lgcc) \ + -L$(p_jlib) \ + -l:$(d)/$(PF)/$(libdir):$(d_lib)/$(PF)/$(libdir):$(d_jlib)/$(PF)/$(libdir):$(d_lgcc)/lib \ + -p$(p_gij) -p$(p_jlib) -p$(p_jlibx) + -[ -d $(d_l64gcc).away ] && mv $(d_l64gcc).away $(d_l64gcc) + sed -e 's/$(p_jlib)[^,]*//' -e 's/, *,/,/' debian/$(p_jlib).substvars \ + >> debian/$(p_jlib).substvars.tmp \ + && mv -f debian/$(p_jlib).substvars.tmp debian/$(p_jlib).substvars + dh_gencontrol \ + -p$(p_gij) -p$(p_jlib) -p$(p_jlibx) \ + -u-v$(DEB_VERSION) + b=libgcj; \ + for ext in preinst postinst prerm postrm; do \ + for t in '' -awt -dev; do \ + v=$(GCJ_SONAME); \ + if [ -f debian/$$b$$t.$$ext ]; then \ + cp -pf debian/$$b$$t.$$ext debian/$$b$$v$$t.$$ext; \ + fi; \ + done; \ + done + dh_installdeb -p$(p_gij) -p$(p_jlib) -p$(p_jlibx) + dh_md5sums -p$(p_gij) -p$(p_jlib) -p$(p_jlibx) + dh_builddeb -p$(p_gij) -p$(p_jlib) -p$(p_jlibx) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- +$(binary_stamp)-javadev: $(build_html_stamp) $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_gcj) + dh_installdirs -p$(p_gcj) $(dirs_gcj) + dh_installdirs -p$(p_jdev) $(dirs_jdev) + + DH_COMPAT=2 dh_movefiles -p$(p_gcj) $(files_gcj) + DH_COMPAT=2 dh_movefiles -p$(p_jdev) $(files_jdev) + + ln -sf gcj$(pkg_ver) \ + $(d_gcj)/$(PF)/bin/$(DEB_TARGET_GNU_TYPE)-gcj$(pkg_ver) + ln -sf gcj$(pkg_ver).1 \ + $(d_gcj)/$(PF)/share/man/man1/$(DEB_TARGET_GNU_TYPE)-gcj$(pkg_ver).1 + ln -sf gcj$(pkg_ver) \ + $(d_gcj)/$(PF)/bin/$(TARGET_ALIAS)-gcj$(pkg_ver) + ln -sf gcj$(pkg_ver).1 \ + $(d_gcj)/$(PF)/share/man/man1/$(TARGET_ALIAS)-gcj$(pkg_ver).1 + + debian/dh_doclink -p$(p_gcj) $(p_base) +ifneq ($(GFDL_INVARIANT_FREE),yes) + dh_installdocs -p$(p_gcj) + rm -f $(d_gcj)/$(docdir)/$(p_base)/copyright + cp -p html/gcj.html $(d_gcj)/$(docdir)/$(p_base)/java/ +endif + cp -p $(srcdir)/libjava/doc/cni.sgml $(d_jdev)/$(docdir)/$(p_jlib)/. + debian/dh_doclink -p$(p_jdev) $(p_jlib) + cp -p debian/FAQ.gcj $(d_gcj)/$(docdir)/$(p_base)/java/. + cp -p $(srcdir)/gcc/java/ChangeLog \ + $(d_gcj)/$(docdir)/$(p_base)/java/changelog + cp -p $(srcdir)/libjava/ChangeLog \ + $(d_jdev)/$(docdir)/$(p_jlib)/changelog + + cp -p $(srcdir)/libjava/gnu/java/awt/peer/gtk/Test* \ + debian/testswing.java \ + $(d_jdev)/$(docdir)/$(p_jlib)/examples + + cp -p debian/gcj-wrapper $(d_gcj)/$(PF)/bin/gcj-wrapper$(pkg_ver) + chmod 755 $(d_gcj)/$(PF)/bin/gcj-wrapper$(pkg_ver) + cp -p debian/gcj-wrapper.1 \ + $(d_gcj)/$(PF)/share/man/man1/gcj-wrapper$(pkg_ver).1 + + cp -p debian/gcjh-wrapper $(d_gcj)/$(PF)/bin/gcjh-wrapper$(pkg_ver) + chmod 755 $(d_gcj)/$(PF)/bin/gcjh-wrapper$(pkg_ver) + cp -p debian/gcjh-wrapper.1 \ + $(d_gcj)/$(PF)/share/man/man1/gcjh-wrapper$(pkg_ver).1 + + debian/dh_rmemptydirs -p$(p_gcj) + debian/dh_rmemptydirs -p$(p_jdev) + + dh_strip -p$(p_gcj) -p$(p_jdev) + dh_compress -p$(p_gcj) -p$(p_jdev) -X.java + dh_fixperms -p$(p_gcj) -p$(p_jdev) + dh_shlibdeps \ + -L$(p_lgcc) \ + -l:$(d)/$(PF)/$(libdir):$(d_lib)/$(PF)/$(libdir):$(d_jlib)/$(PF)/$(libdir):$(d_lgcc)/lib \ + -p$(p_gcj) -p$(p_jdev) + dh_gencontrol \ + -p$(p_gcj) -p$(p_jdev) \ + -u-v$(DEB_VERSION) + b=libgcj; \ + for ext in preinst postinst prerm postrm; do \ + for t in '' -dev; do \ + v=$(GCJ_SONAME); \ + if [ -f debian/$$b$$t.$$ext ]; then \ + cp -pf debian/$$b$$t.$$ext debian/$$b$$v$$t.$$ext; \ + fi; \ + done; \ + done + dh_installdeb -p$(p_gcj) -p$(p_jdev) + dh_md5sums -p$(p_gcj) -p$(p_jdev) + dh_builddeb -p$(p_gcj) -p$(p_jdev) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-3.4-3.4.3.orig/debian/rules.d/binary-libstdcxx-cross.mk +++ gcc-3.4-3.4.3/debian/rules.d/binary-libstdcxx-cross.mk @@ -0,0 +1,249 @@ +ifeq ($(with_libcxx),yes) + arch_binaries := $(arch_binaries) libstdcxx +endif +ifeq ($(with_lib64cxx),yes) + arch_binaries := $(arch_binaries) lib64stdcxx +endif +ifeq ($(biarch_ia32),yes) + arch_binaries := $(arch_binaries) lib32stdcxx +endif + +ifeq ($(with_cxxdev),yes) + arch_binaries := $(arch_binaries) libstdcxx-dev +endif + +p_lib = libstdc++$(CXX_SONAME)$(cross_lib_arch) +ifeq ($(with_oldcxxabi),yes) + p_lib = libstdc++6-0$(cross_lib_arch) +endif +ifeq ($(with_oldarmabi),yes) + p_lib = libstdc++6-0$(cross_lib_arch) +endif +p_dev = $(p_lib:%$(cross_lib_arch)=%-dev$(cross_lib_arch)) +p_pic = $(p_lib:%$(cross_lib_arch)=%-pic$(cross_lib_arch)) +p_dbg = $(p_lib:%$(cross_lib_arch)=%-dbg$(cross_lib_arch)) +p_lib64 = lib64stdc++$(CXX_SONAME)$(cross_lib_arch) +p_lib32 = lib32stdc++$(CXX_SONAME)$(cross_lib_arch) + +d_lib = debian/$(p_lib) +d_lib64 = debian/$(p_lib64) +d_lib32 = debian/$(p_lib32) +d_dev = debian/$(p_dev) +d_pic = debian/$(p_pic) +d_dbg = debian/$(p_dbg) + +dirs_lib = \ + $(docdir) \ + $(PF)/$(DEB_TARGET_GNU_TYPE)/lib + +dirs_lib64 = \ + $(docdir) \ + $(PF)/$(DEB_TARGET_GNU_TYPE)/lib64 + +files_lib = \ + $(PF)/$(DEB_TARGET_GNU_TYPE)/lib/libstdc++.so.* + +files_lib64 = \ + $(PF)/$(DEB_TARGET_GNU_TYPE)/lib64/libstdc++.so.* + +dirs_dev = \ + $(docdir)/$(p_lib) \ + $(PF)/$(DEB_TARGET_GNU_TYPE)/lib \ + $(gcc_lib_dir)/include \ + $(cxx_inc_dir) + +files_dev = \ + $(cxx_inc_dir)/ \ + $(gcc_lib_dir)/libstdc++.{a,so} \ + $(gcc_lib_dir)/libsupc++.a +# Not yet... +# $(PF)/$(libdir)/lib{supc,stdc}++.la + +dirs_dbg = \ + $(docdir) \ + $(PF)/$(DEB_TARGET_GNU_TYPE)/lib/debug \ + $(gcc_lib_dir) +files_dbg = \ + $(PF)/$(DEB_TARGET_GNU_TYPE)/lib/debug/libstdc++.* + +dirs_pic = \ + $(docdir) \ + $(gcc_lib_dir) +files_pic = \ + $(gcc_lib_dir)/libstdc++_pic.a + +ifeq ($(with_lib64cxx),yes) + dirs_dev += $(gcc_lib_dir)/64/ + files_dev += $(gcc_lib_dir)/64/libstdc++.{a,so} \ + $(gcc_lib_dir)/64/libsupc++.a + dirs_dbg += $(PF)/$(DEB_TARGET_GNU_TYPE)/lib64/debug + files_dbg += $(PF)/$(DEB_TARGET_GNU_TYPE)/lib64/debug/libstdc++.* + dirs_pic += $(gcc_lib_dir) + files_pic += $(gcc_lib_dir)/64/libstdc++_pic.a +endif + +# ---------------------------------------------------------------------- + +$(binary_stamp)-libstdcxx: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_lib) + dh_installdirs -p$(p_lib) $(dirs_lib) + DH_COMPAT=2 dh_movefiles -p$(p_lib) $(files_lib) + + dh_installdocs -p$(p_lib) + echo "See /$(docdir)/$(p_base) for more information" \ + > $(d_lib)/$(docdir)/$(p_lib)/README.Debian + + dh_installchangelogs -p$(p_lib) + debian/dh_rmemptydirs -p$(p_lib) + + PATH=/usr/share/dpkg-cross:$$PATH dh_strip -p$(p_lib) + dh_compress -p$(p_lib) + dh_fixperms -p$(p_lib) + dh_makeshlibs -p$(p_lib) -V '$(p_lib) (>= $(DEB_STDCXX_SOVERSION))' -n + sed s/$(cross_lib_arch)//g < debian/$(p_lib)/DEBIAN/shlibs > debian/$(p_lib)/DEBIAN/shlibs.fixed + mv debian/$(p_lib)/DEBIAN/shlibs.fixed debian/$(p_lib)/DEBIAN/shlibs + ARCH=$(DEB_TARGET_ARCH) MAKEFLAGS="CC=something" dh_shlibdeps -p$(p_lib) + sed 's/\(lib[^ ]*\) /\1$(cross_lib_arch) /g' < debian/$(p_lib).substvars > debian/$(p_lib).substvars.new + mv debian/$(p_lib).substvars.new debian/$(p_lib).substvars + dh_gencontrol -p$(p_lib) -u-v$(DEB_VERSION) + + dh_installdeb -p$(p_lib) + dh_md5sums -p$(p_lib) + dh_builddeb -p$(p_lib) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- + +$(binary_stamp)-lib64stdcxx: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_lib64) + dh_installdirs -p$(p_lib64) $(dirs_lib64) + DH_COMPAT=2 dh_movefiles -p$(p_lib64) $(files_lib64) + + dh_installdocs -p$(p_lib64) + echo "See /$(docdir)/$(p_base) for more information" \ + > $(d_lib64)/$(docdir)/$(p_lib64)/README.Debian + + dh_installchangelogs -p$(p_lib64) + debian/dh_rmemptydirs -p$(p_lib64) + + PATH=/usr/share/dpkg-cross:$$PATH dh_strip -p$(p_lib64) + dh_compress -p$(p_lib64) + dh_fixperms -p$(p_lib64) + dh_makeshlibs -p$(p_lib64) -V '$(p_lib64) (>= $(DEB_STDCXX_SOVERSION))' -n + sed s/$(cross_lib_arch)//g < debian/$(p_lib64)/DEBIAN/shlibs > debian/$(p_lib64)/DEBIAN/shlibs.fixed + mv debian/$(p_lib64)/DEBIAN/shlibs.fixed debian/$(p_lib64)/DEBIAN/shlibs + ARCH=$(DEB_TARGET_ARCH) MAKEFLAGS="CC=something" dh_shlibdeps -p$(p_lib64) + sed 's/\(lib[^ ]*\) /\1$(cross_lib_arch) /g' < debian/$(p_lib64).substvars > debian/$(p_lib64).substvars.new + mv debian/$(p_lib64).substvars.new debian/$(p_lib64).substvars + dh_gencontrol -p$(p_lib64) -u-v$(DEB_VERSION) + + dh_installdeb -p$(p_lib64) + dh_md5sums -p$(p_lib64) + dh_builddeb -p$(p_lib64) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- + +$(binary_stamp)-lib32stdcxx: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_lib32) + dh_installdirs -p$(p_lib32) $(dirs_lib32) + DH_COMPAT=2 dh_movefiles -p$(p_lib32) $(files_lib32) + + dh_installdocs -p$(p_lib32) + echo "See /$(docdir)/$(p_base) for more information" \ + > $(d_lib32)/$(docdir)/$(p_lib32)/README.Debian + + dh_installchangelogs -p$(p_lib32) + debian/dh_rmemptydirs -p$(p_lib32) + + PATH=/usr/share/dpkg-cross:$$PATH dh_strip -p$(p_lib32) + dh_compress -p$(p_lib32) + dh_fixperms -p$(p_lib32) + dh_makeshlibs -p$(p_lib32) -V '$(p_lib32) (>= $(DEB_STDCXX_SOVERSION))' -n + sed s/$(cross_lib_arch)//g < debian/$(p_lib32)/DEBIAN/shlibs > debian/$(p_lib32)/DEBIAN/shlibs.fixed + mv debian/$(p_lib32)/DEBIAN/shlibs.fixed debian/$(p_lib32)/DEBIAN/shlibs + ARCH=$(DEB_TARGET_ARCH) MAKEFLAGS="CC=something" dh_shlibdeps -p$(p_lib32) + sed 's/\(lib[^ ]*\) /\1$(cross_lib_arch) /g' < debian/$(p_lib32).substvars > debian/$(p_lib32).substvars.new + mv debian/$(p_lib32).substvars.new debian/$(p_lib32).substvars + dh_gencontrol -p$(p_lib32) -u-v$(DEB_VERSION) + + dh_installdeb -p$(p_lib32) + dh_md5sums -p$(p_lib32) + dh_builddeb -p$(p_lib32) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- +$(binary_stamp)-libstdcxx-dev: $(install_stamp) \ + $(binary_stamp)-libstdcxx + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_dev) $(d_pic) + dh_installdirs -p$(p_dev) $(dirs_dev) + dh_installdirs -p$(p_pic) $(dirs_pic) + dh_installdirs -p$(p_dbg) $(dirs_dbg) + + : # - correct libstdc++-v3 file locations + mv $(d)/$(PF)/$(DEB_TARGET_GNU_TYPE)/lib/libsupc++.a $(d)/$(gcc_lib_dir)/ + mv $(d)/$(PF)/$(DEB_TARGET_GNU_TYPE)/lib/libstdc++.{a,so} $(d)/$(gcc_lib_dir)/ + ln -sf ../../../../$(DEB_TARGET_GNU_TYPE)/lib/libstdc++.so.$(CXX_SONAME) $(d)/$(gcc_lib_dir)/libstdc++.so + mv $(d)/$(PF)/$(DEB_TARGET_GNU_TYPE)/lib/libstdc++_pic.a \ + $(d)/$(gcc_lib_dir)/ + + rm -f $(d)/$(PF)/$(DEB_TARGET_GNU_TYPE)/lib/debug/libstdc++_pic.a + rm -f $(d)/$(PF)/$(DEB_TARGET_GNU_TYPE)/lib64/debug/libstdc++_pic.a + + : # remove precompiled headers + -find $(d) -type d -name '*.gch' | xargs rm -rf + +ifeq ($(with_lib64cxx),yes) + mv $(d)/$(PF)/$(DEB_TARGET_GNU_TYPE)/lib64/lib*c++*.a $(d)/$(gcc_lib_dir)/64/. + ln -sf ../../../../../lib64/libstdc++.so.$(CXX_SONAME) \ + $(d)/$(gcc_lib_dir)/64/libstdc++.so +endif + + DH_COMPAT=2 dh_movefiles -p$(p_dev) $(files_dev) + DH_COMPAT=2 dh_movefiles -p$(p_pic) $(files_pic) + DH_COMPAT=2 dh_movefiles -p$(p_dbg) $(files_dbg) + + debian/dh_doclink -p$(p_dev) $(p_lib) + debian/dh_doclink -p$(p_pic) $(p_lib) + debian/dh_doclink -p$(p_dbg) $(p_lib) + cp -p $(srcdir)/libstdc++-v3/ChangeLog \ + $(d_dev)/usr/share/doc/$(p_lib)/changelog + cp -p $(srcdir)/libstdc++-v3/config/linker-map.gnu \ + $(d_pic)/$(gcc_lib_dir)/libstdc++_pic.map + +ifeq ($(with_cxxdev),yes) + debian/dh_rmemptydirs -p$(p_dev) + debian/dh_rmemptydirs -p$(p_pic) + debian/dh_rmemptydirs -p$(p_dbg) +endif + + PATH=/usr/share/dpkg-cross:$$PATH dh_strip -p$(p_dev) -p$(p_pic) + dh_compress -p$(p_dev) -p$(p_pic) -p$(p_dbg) -X.txt + dh_fixperms -p$(p_dev) -p$(p_pic) -p$(p_dbg) + dh_gencontrol -p$(p_dev) -p$(p_pic) -p$(p_dbg) \ + -u-v$(DEB_VERSION) + + dh_installdeb -p$(p_dev) -p$(p_pic) -p$(p_dbg) + dh_md5sums -p$(p_dev) -p$(p_pic) -p$(p_dbg) + dh_builddeb -p$(p_dev) -p$(p_pic) -p$(p_dbg) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-3.4-3.4.3.orig/debian/rules.d/binary-libgcc-cross.mk +++ gcc-3.4-3.4.3/debian/rules.d/binary-libgcc-cross.mk @@ -0,0 +1,213 @@ +arch_binaries := $(arch_binaries) libgcc +ifeq ($(with_lib64gcc),yes) + arch_binaries := $(arch_binaries) lib64gcc +endif +ifeq ($(biarch_ia32),yes) + arch_binaries := $(arch_binaries) lib32gcc +endif + +p_lgcc = libgcc$(GCC_SONAME)$(cross_lib_arch) +d_lgcc = debian/$(p_lgcc) + +p_l64gcc = lib32gcc$(GCC_SONAME)$(cross_lib_arch) +d_l64gcc = debian/$(p_l32gcc) + +p_l64gcc = lib64gcc$(GCC_SONAME)$(cross_lib_arch) +d_l64gcc = debian/$(p_l64gcc) + +ifeq ($(with_shared_libgcc),yes) +files_lgcc = \ + $(PF)/$(DEB_TARGET_GNU_TYPE)/lib/libgcc_s.so.$(GCC_SONAME) +files_l64gcc = \ + $(PF)/$(DEB_TARGET_GNU_TYPE)/lib64/libgcc_s.so.$(GCC_SONAME) +endif + +# ---------------------------------------------------------------------- +ifeq ($(DEB_TARGET_GNU_CPU),ia64) +$(binary_stamp)-libgcc: $(install_dependencies) $(binary_stamp)-libunwind +else +$(binary_stamp)-libgcc: $(install_dependencies) +endif + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_lgcc) + dh_installdirs -p$(p_lgcc) \ + $(docdir)/$(p_lgcc) \ + $(PF)/$(DEB_TARGET_GNU_TYPE)/lib + +ifeq ($(with_shared_libgcc),yes) + DH_COMPAT=2 dh_movefiles -p$(p_lgcc) $(files_lgcc) +endif + + dh_installdocs -p$(p_lgcc) + dh_installchangelogs -p$(p_lgcc) + + debian/dh_rmemptydirs -p$(p_lgcc) +ifeq ($(with_shared_libgcc),yes) + ifeq ($(DEB_TARGET_GNU_CPU),ia64) + cp -a $(PWD)/$(d)-unwind/usr/lib/libunwind.so.* $(d_lgcc)/usr/$(DEB_TARGET_GNU_TYPE)/lib/ + dh_makeshlibs -p$(p_lgcc) -V '$(p_lgcc) (>= 1:3.4.3-6)' -n + sed s/$(cross_lib_arch)//g < debian/$(p_lgcc)/DEBIAN/shlibs > debian/$(p_lgcc)/DEBIAN/shlibs.fixed + mv debian/$(p_lgcc)/DEBIAN/shlibs.fixed debian/$(p_lgcc)/DEBIAN/shlibs + touch debian/$(p_lgcc).substvars + ARCH=$(DEB_TARGET_ARCH) MAKEFLAGS="CC=something" dh_shlibdeps -p$(p_lgcc) -Xlibgcc_s + sed 's/\(lib[^ ]*\) /\1$(cross_lib_arch) /g' < debian/$(p_lgcc).substvars > debian/$(p_lgcc).substvars.new + mv debian/$(p_lgcc).substvars.new debian/$(p_lgcc).substvars + else + dh_makeshlibs -p$(p_lgcc) -V '$(p_lgcc) (>= $(DEB_LIBGCC_SOVERSION))' -n + sed s/$(cross_lib_arch)//g < debian/$(p_lgcc)/DEBIAN/shlibs > debian/$(p_lgcc)/DEBIAN/shlibs.fixed + mv debian/$(p_lgcc)/DEBIAN/shlibs.fixed debian/$(p_lgcc)/DEBIAN/shlibs + touch debian/$(p_lgcc).substvars + ARCH=$(DEB_TARGET_ARCH) MAKEFLAGS="CC=something" dh_shlibdeps -p$(p_lgcc) + sed 's/\(lib[^ ]*\) /\1$(cross_lib_arch) /g' < debian/$(p_lgcc).substvars > debian/$(p_lgcc).substvars.new + mv debian/$(p_lgcc).substvars.new debian/$(p_lgcc).substvars + endif + cat debian/$(p_lgcc)/DEBIAN/shlibs >> debian/shlibs.local +endif + PATH=/usr/share/dpkg-cross:$$PATH dh_strip -p$(p_lgcc) + dh_compress -p$(p_lgcc) + dh_fixperms -p$(p_lgcc) + dh_gencontrol -p$(p_lgcc) -u-v$(DEB_LIBGCC_VERSION) + b=libgcc; v=$(GCC_SONAME); \ + for ext in preinst postinst prerm postrm; do \ + if [ -f debian/$$b$$t.$$ext ]; then \ + cp -pf debian/$$b$$t.$$ext debian/$$b$$v$$t.$$ext; \ + fi; \ + done + dh_installdeb -p$(p_lgcc) + dh_md5sums -p$(p_lgcc) + dh_builddeb -p$(p_lgcc) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- +$(binary_stamp)-lib64gcc: $(install_dependencies) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_l64gcc) + dh_installdirs -p$(p_l64gcc) \ + $(docdir)/$(p_l64gcc) \ + $(PF)/$(DEB_TARGET_GNU_TYPE)/lib64 + +ifeq ($(with_shared_libgcc),yes) + DH_COMPAT=2 dh_movefiles -p$(p_l64gcc) $(files_l64gcc) +endif + + dh_installdocs -p$(p_l64gcc) + dh_installchangelogs -p$(p_l64gcc) + + debian/dh_rmemptydirs -p$(p_l64gcc) + PATH=/usr/share/dpkg-cross:$$PATH dh_strip -p$(p_l64gcc) + dh_compress -p$(p_l64gcc) + dh_fixperms -p$(p_l64gcc) +ifeq ($(with_shared_libgcc),yes) + dh_makeshlibs -p$(p_l64gcc) \ + -V '$(p_l64gcc) (>= $(DEB_LIBGCC_SOVERSION))' -n + sed s/$(cross_lib_arch)//g < debian/$(p_l64gcc)/DEBIAN/shlibs > debian/$(p_l64gcc)/DEBIAN/shlibs.fixed + mv debian/$(p_l64gcc)/DEBIAN/shlibs.fixed debian/$(p_l64gcc)/DEBIAN/shlibs + cat debian/$(p_l64gcc)/DEBIAN/shlibs >> debian/shlibs.local +endif + ARCH=$(DEB_TARGET_ARCH) MAKEFLAGS="CC=something" dh_shlibdeps -p$(p_l64gcc) + sed 's/\(lib[^ ]*\) /\1$(cross_lib_arch) /g' < debian/$(p_l64gcc).substvars > debian/$(p_l64gcc).substvars.new + mv debian/$(p_l64gcc).substvars.new debian/$(p_l64gcc).substvars + dh_gencontrol -p$(p_l64gcc) -u-v$(DEB_VERSION) + b=libgcc; v=$(GCC_SONAME); \ + for ext in preinst postinst prerm postrm; do \ + if [ -f debian/$$b$$t.$$ext ]; then \ + cp -pf debian/$$b$$t.$$ext debian/$$b$$v$$t.$$ext; \ + fi; \ + done + dh_installdeb -p$(p_l64gcc) + dh_md5sums -p$(p_l64gcc) + dh_builddeb -p$(p_l64gcc) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- + +$(binary_stamp)-lib32gcc: $(install_dependencies) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_l32gcc) + dh_installdirs -p$(p_l32gcc) \ + $(docdir)/$(p_l32gcc) \ + $(PF)/$(DEB_TARGET_GNU_TYPE)/lib32 + +ifeq ($(with_shared_libgcc),yes) + DH_COMPAT=2 dh_movefiles -p$(p_l32gcc) $(files_l32gcc) +endif + + dh_installdocs -p$(p_l32gcc) + dh_installchangelogs -p$(p_l32gcc) + + debian/dh_rmemptydirs -p$(p_l32gcc) + PATH=/usr/share/dpkg-cross:$$PATH dh_strip -p$(p_l32gcc) + dh_compress -p$(p_l32gcc) + dh_fixperms -p$(p_l32gcc) +ifeq ($(with_shared_libgcc),yes) + dh_makeshlibs -p$(p_l32gcc) \ + -V '$(p_l32gcc) (>= $(DEB_LIBGCC_SOVERSION))' -n + sed s/$(cross_lib_arch)//g < debian/$(p_l32gcc)/DEBIAN/shlibs > debian/$(p_l32gcc)/DEBIAN/shlibs.fixed + mv debian/$(p_l32gcc)/DEBIAN/shlibs.fixed debian/$(p_l32gcc)/DEBIAN/shlibs + cat debian/$(p_l32gcc)/DEBIAN/shlibs >> debian/shlibs.local +endif + ARCH=$(DEB_TARGET_ARCH) MAKEFLAGS="CC=something" dh_shlibdeps -p$(p_l32gcc) + sed 's/\(lib[^ ]*\) /\1$(cross_lib_arch) /g' < debian/$(p_l32gcc).substvars > debian/$(p_l32gcc).substvars.new + mv debian/$(p_l32gcc).substvars.new debian/$(p_l32gcc).substvars + dh_gencontrol -p$(p_l32gcc) -u-v$(DEB_VERSION) + b=libgcc; v=$(GCC_SONAME); \ + for ext in preinst postinst prerm postrm; do \ + if [ -f debian/$$b$$t.$$ext ]; then \ + cp -pf debian/$$b$$t.$$ext debian/$$b$$v$$t.$$ext; \ + fi; \ + done + dh_installdeb -p$(p_l32gcc) + dh_md5sums -p$(p_l32gcc) + dh_builddeb -p$(p_l32gcc) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- + +unwind_dir = libunwind-0.98.3 +xxx: $(binary_stamp)-libunwind +$(binary_stamp)-libunwind: + rm -rf $(unwind_dir).tar.gz $(unwind_dir) $(d)-unwind + uudecode libunwind.uue + tar xfz $(unwind_dir).tar.gz + + : Below are several hacks to allow cross-build of libunwind unless + : related bugs both at unwind side and at gcc side are fixed + + : Put pre-built Gcursor_i.h and Lcursor_i.h into src/ ... + cp debian/cross-unwind/[GL]cursor_i.h $(unwind_dir)/src/ + touch $(unwind_dir)/src/[GL]cursor_i.h + + : ... and avoid rebuilding of those files + sed 's/\(@[GL]cursor_i.h\):/\1DISABLE:/g' $(unwind_dir)/src/Makefile.in > $(unwind_dir)/src/Makefile.in.tmp + mv -f $(unwind_dir)/src/Makefile.in.tmp $(unwind_dir)/src/Makefile.in + + : also, alter configure to disable REMOTE_ONLY mode of libunwind + : that is turned on with target!=build + : /manually checked that the following regexp affects only this/ + sed 's/test x\$$target_arch != x\$$build_arch/false/g' $(unwind_dir)/configure > $(unwind_dir)/configure.tmp + mv $(unwind_dir)/configure.tmp $(unwind_dir)/configure + chmod 755 $(unwind_dir)/configure + + : also, patch iseveral files to ensure PATH_MAX is defined + : /limits.h does not include it because of some problem/ + cd $(unwind_dir)/src && patch -p1 < ../../debian/cross-unwind/path_max.patch + + cd $(unwind_dir) && CC="$(PWD)/build/gcc/xgcc -B$(PWD)/build/gcc/" ./configure \ + --build=$(DEB_BUILD_GNU_TYPE) \ + --host=$(DEB_TARGET_GNU_TYPE) \ + --prefix=/usr + $(MAKE) -C $(unwind_dir) + $(MAKE) -C $(unwind_dir) install DESTDIR=$(PWD)/$(d)-unwind + touch $(binary_stamp)-libunwind --- gcc-3.4-3.4.3.orig/debian/rules.d/binary-libgcc.mk +++ gcc-3.4-3.4.3/debian/rules.d/binary-libgcc.mk @@ -0,0 +1,169 @@ +ifeq ($(with_libgcc),yes) + arch_binaries := $(arch_binaries) libgcc + ifeq ($(with_lib64gcc),yes) + arch_binaries := $(arch_binaries) lib64gcc + endif + ifeq ($(biarch_ia32),yes) + arch_binaries := $(arch_binaries) lib32gcc + endif +endif + +p_lgcc = libgcc$(GCC_SONAME) +d_lgcc = debian/$(p_lgcc) + +p_l32gcc = lib32gcc$(GCC_SONAME) +d_l32gcc = debian/$(p_l32gcc) + +p_l64gcc = lib64gcc$(GCC_SONAME) +d_l64gcc = debian/$(p_l64gcc) + +ifeq ($(with_shared_libgcc),yes) +files_lgcc = \ + $(libdir)/libgcc_s.so.$(GCC_SONAME) +files_l64gcc = \ + lib64/libgcc_s.so.$(GCC_SONAME) +endif + +# ---------------------------------------------------------------------- +$(binary_stamp)-libgcc: $(install_dependencies) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_lgcc) + dh_installdirs -p$(p_lgcc) \ + $(docdir)/$(p_lgcc) \ + $(libdir) + +ifeq ($(with_shared_libgcc),yes) + mv $(d)/$(PF)/lib/libgcc_s.so.$(GCC_SONAME) $(d)/$(libdir)/. + DH_COMPAT=2 dh_movefiles -p$(p_lgcc) $(files_lgcc) +endif + + dh_installdocs -p$(p_lgcc) + dh_installchangelogs -p$(p_lgcc) + + debian/dh_rmemptydirs -p$(p_lgcc) +ifeq ($(with_shared_libgcc),yes) + ifeq ($(DEB_TARGET_GNU_CPU),ia64) + dh_makeshlibs -p$(p_lgcc) -V '$(p_lgcc) (>= 1:3.4.3-7ubuntu1)' + dh_shlibdeps -p$(p_lgcc) -Xlibgcc_s + else + dh_makeshlibs -p$(p_lgcc) -V '$(p_lgcc) (>= $(DEB_LIBGCC_SOVERSION))' + dh_shlibdeps -p$(p_lgcc) + endif + cat debian/$(p_lgcc)/DEBIAN/shlibs >> debian/shlibs.local +endif + dh_strip -p$(p_lgcc) + dh_compress -p$(p_lgcc) + dh_fixperms -p$(p_lgcc) + dh_gencontrol -p$(p_lgcc) -u-v$(DEB_LIBGCC_VERSION) + b=libgcc; v=$(GCC_SONAME); \ + for ext in preinst postinst prerm postrm; do \ + if [ -f debian/$$b$$t.$$ext ]; then \ + cp -pf debian/$$b$$t.$$ext debian/$$b$$v$$t.$$ext; \ + fi; \ + done + dh_installdeb -p$(p_lgcc) + dh_md5sums -p$(p_lgcc) + dh_builddeb -p$(p_lgcc) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- +$(binary_stamp)-lib64gcc: $(install_dependencies) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_l64gcc) + dh_installdirs -p$(p_l64gcc) \ + $(docdir)/$(p_l64gcc) \ + lib64 + +ifeq ($(with_shared_libgcc),yes) + install -d $(d)/lib64 + mv $(d)/$(PF)/lib64/libgcc_s.so.$(GCC_SONAME) $(d)/lib64/. +endif + DH_COMPAT=2 dh_movefiles -p$(p_l64gcc) $(files_l64gcc) + + dh_installdocs -p$(p_l64gcc) + dh_installchangelogs -p$(p_l64gcc) + + debian/dh_rmemptydirs -p$(p_l64gcc) + dh_strip -p$(p_l64gcc) + dh_compress -p$(p_l64gcc) + dh_fixperms -p$(p_l64gcc) +ifeq ($(with_shared_libgcc),yes) + dh_makeshlibs -p$(p_l64gcc) \ + -V '$(p_l64gcc) (>= $(DEB_LIBGCC_SOVERSION))' +# this does not work ... shlibs.local doesn't distinguish 32/64 bit libs +# cat debian/$(p_l64gcc)/DEBIAN/shlibs >> debian/shlibs.local +endif +ifeq ($(DEB_TARGET_GNU_CPU),s390) +# dh_shlibdeps -p$(p_l64gcc) +#/usr/bin/ldd: line 1: /lib/ld64.so.1: cannot execute binary file +#dpkg-shlibdeps: failure: ldd on `debian/lib64gcc1/lib64/libgcc_s.so.1' gave error exit status 1 + echo 'shlibs:Depends=libc6-s390x (>= 2.3.1-1)' \ + > debian/$(p_l64gcc).substvars +else + ifeq ($(DEB_TARGET_GNU_CPU),i386) + echo 'shlibs:Depends=amd64-libs (>= 0.1)' \ + > debian/$(p_l64gcc).substvars + else + ifeq ($(DEB_TARGET_GNU_CPU),powerpc) + # XXX change dependency when lib64c6 exists + echo 'shlibs:Depends=libc6 (>= 0.1)' \ + > debian/$(p_lib64).substvars + else + dh_shlibdeps -p$(p_l64gcc) + endif + endif +endif + dh_gencontrol -p$(p_l64gcc) -u-v$(DEB_LIBGCC_VERSION) + b=lib64gcc; v=$(GCC_SONAME); \ + for ext in preinst postinst prerm postrm; do \ + if [ -f debian/$$b$$t.$$ext ]; then \ + cp -pf debian/$$b$$t.$$ext debian/$$b$$v$$t.$$ext; \ + fi; \ + done + dh_installdeb -p$(p_l64gcc) + dh_md5sums -p$(p_l64gcc) + dh_builddeb -p$(p_l64gcc) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- + +$(binary_stamp)-lib32gcc: $(install_dependencies) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_l32gcc) + dh_installdirs -p$(p_l32gcc) \ + $(docdir)/$(p_l32gcc) \ + lib32 + + mv $(d)/$(PF)/lib32/libgcc_s.so.$(GCC_SONAME) \ + $(d_l32gcc)/lib32/. + + dh_installdocs -p$(p_l32gcc) + dh_installchangelogs -p$(p_l32gcc) + + debian/dh_rmemptydirs -p$(p_l32gcc) + dh_strip -p$(p_l32gcc) + dh_compress -p$(p_l32gcc) + dh_fixperms -p$(p_l32gcc) + dh_gencontrol -p$(p_l32gcc) -u-v$(DEB_VERSION) + b=lib32gcc; v=$(GCC_SONAME); \ + for ext in preinst postinst prerm postrm; do \ + if [ -f debian/$$b$$t.$$ext ]; then \ + cp -pf debian/$$b$$t.$$ext debian/$$b$$v$$t.$$ext; \ + fi; \ + done + dh_installdeb -p$(p_l32gcc) + dh_md5sums -p$(p_l32gcc) + dh_builddeb -p$(p_l32gcc) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-3.4-3.4.3.orig/debian/rules.d/binary-libstdcxx.mk +++ gcc-3.4-3.4.3/debian/rules.d/binary-libstdcxx.mk @@ -0,0 +1,438 @@ +ifeq ($(with_libcxx),yes) + arch_binaries := $(arch_binaries) libstdcxx +endif +ifeq ($(with_lib64cxx),yes) + arch_binaries := $(arch_binaries) lib64stdcxx +endif +ifeq ($(biarch_ia32),yes) + arch_binaries := $(arch_binaries) lib32stdcxx +endif + +ifeq ($(with_cxxdev),yes) + arch_binaries := $(arch_binaries) libstdcxx-dev + indep_binaries := $(indep_binaries) libstdcxx-doc +endif + +p_lib = libstdc++$(CXX_SONAME) +ifeq ($(with_oldcxxabi),yes) + p_lib = libstdc++6-0 +endif +ifeq ($(with_oldarmabi),yes) + p_lib = libstdc++6-0 +endif +p_dev = $(p_lib)-dev +p_pic = $(p_lib)-pic +p_dbg = $(p_lib)-dbg +p_lib64 = lib64stdc++$(CXX_SONAME) +p_lib32 = lib32stdc++$(CXX_SONAME) +p_libd = libstdc++6-doc +ifeq ($(with_oldcxxabi),yes) + p_lib64 = lib64stdc++6-0 + p_lib32 = lib32stdc++6-0 +endif + +d_lib = debian/$(p_lib) +d_lib64 = debian/$(p_lib64) +d_lib32 = debian/$(p_lib32) +d_dev = debian/$(p_dev) +d_pic = debian/$(p_pic) +d_dbg = debian/$(p_dbg) +d_libd = debian/$(p_libd) + +dirs_lib = \ + $(docdir) \ + $(PF)/$(libdir) + +dirs_lib64 = \ + $(docdir) \ + $(PF)/lib64 + +files_lib = \ + $(PF)/$(libdir)/libstdc++.so.* + +files_lib64 = \ + $(PF)/lib64/libstdc++.so.* + +dirs_dev = \ + $(docdir)/$(p_base)/C++ \ + $(PF)/$(libdir) \ + $(gcc_lib_dir)/include \ + $(cxx_inc_dir) + +files_dev = \ + $(cxx_inc_dir)/ \ + $(gcc_lib_dir)/libstdc++.{a,so} \ + $(gcc_lib_dir)/libsupc++.a +# Not yet... +# $(PF)/$(libdir)/lib{supc,stdc}++.la + +dirs_dbg = \ + $(docdir) \ + $(PF)/$(libdir)/debug \ + $(gcc_lib_dir) +files_dbg = \ + $(PF)/$(libdir)/debug/libstdc++.* + +dirs_pic = \ + $(docdir) \ + $(gcc_lib_dir) +files_pic = \ + $(gcc_lib_dir)/libstdc++_pic.a + +ifeq ($(with_lib64cxx),yes) + dirs_dev += $(gcc_lib_dir)/64/ + files_dev += $(gcc_lib_dir)/64/libstdc++.{a,so} \ + $(gcc_lib_dir)/64/libsupc++.a + dirs_dbg += $(PF)/lib64/debug + files_dbg += $(PF)/lib64/debug/libstdc++.* + dirs_pic += $(gcc_lib_dir) + files_pic += $(gcc_lib_dir)/64/libstdc++_pic.a +endif +ifeq ($(biarch_ia32),yes) + dirs_dev += $(gcc_lib_dir)/32/ + files_dev += $(gcc_lib_dir)/32/libstdc++.{a,so} \ + $(gcc_lib_dir)/32/libsupc++.a + dirs_dbg += $(PF)/lib32/debug + files_dbg += $(PF)/lib32/debug/libstdc++.* + dirs_pic += $(gcc_lib_dir) + files_pic += $(gcc_lib_dir)/32/libstdc++_pic.a +endif + +# ---------------------------------------------------------------------- + +gxx_baseline_dir = $(shell \ + sed -n '/^baseline_dir *=/s,.*= *\(.*\)\$$.*$$,\1,p' \ + $(buildlibdir)/libstdc++-v3/testsuite/Makefile) +gxx_baseline_file = $(gxx_baseline_dir)/baseline_symbols.txt + +debian/README.libstdc++-baseline: + cat debian/README.libstdc++-baseline.in \ + > debian/README.libstdc++-baseline + + baseline_name=`basename $(gxx_baseline_dir)`; \ + baseline_parentdir=`dirname $(gxx_baseline_dir)`; \ + compat_baseline_name=""; \ + if [ -f "$(gxx_baseline_file)" ]; then \ + ( \ + echo "A baseline file for $$baseline_name was found."; \ + echo "Running the check-abi script ..."; \ + echo ""; \ + $(MAKE) -C $(buildlibdir)/libstdc++-v3/testsuite \ + check-abi; \ + ) >> debian/README.libstdc++-baseline; \ + else \ + ( \ + echo "No baseline file found for $$baseline_name."; \ + echo "Generating a new baseline file ..."; \ + echo ""; \ + ) >> debian/README.libstdc++-baseline; \ + mkdir $(gxx_baseline_dir); \ + $(MAKE) -C $(buildlibdir)/libstdc++-v3/testsuite new-abi-baseline; \ + cat $(gxx_baseline_file) >> debian/README.libstdc++-baseline; \ + fi + +# ---------------------------------------------------------------------- +$(binary_stamp)-libstdcxx: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_lib) + dh_installdirs -p$(p_lib) $(dirs_lib) + DH_COMPAT=2 dh_movefiles -p$(p_lib) $(files_lib) + + dh_installdocs -p$(p_lib) + echo "See /$(docdir)/$(p_base) for more information" \ + > $(d_lib)/$(docdir)/$(p_lib)/README.Debian + + dh_installchangelogs -p$(p_lib) + debian/dh_rmemptydirs -p$(p_lib) + + dh_strip -p$(p_lib) + dh_compress -p$(p_lib) + dh_fixperms -p$(p_lib) + dh_makeshlibs -p$(p_lib) -V '$(p_lib) (>= $(DEB_STDCXX_SOVERSION))' + cat debian/$(p_lib)/DEBIAN/shlibs >> debian/shlibs.local + dh_shlibdeps \ + -L$(p_lgcc) -l:$(d)/$(PF)/lib:$(d_lgcc)/lib:\ + -p$(p_lib) + dh_gencontrol -p$(p_lib) -u-v$(DEB_VERSION) + + b=libstdc++; \ + for ext in preinst postinst prerm postrm; do \ + for t in ''; do \ + v=$(CXX_SONAME); \ + if [ -f debian/$$b$$t.$$ext ]; then \ + cp -pf debian/$$b$$t.$$ext debian/$$b$$v$$t.$$ext; \ + fi; \ + done; \ + done + + dh_installdeb -p$(p_lib) + dh_md5sums -p$(p_lib) + dh_builddeb -p$(p_lib) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- +$(binary_stamp)-lib64stdcxx: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_lib64) + dh_installdirs -p$(p_lib64) $(dirs_lib64) + install -d $(d)/lib64 + DH_COMPAT=2 dh_movefiles -p$(p_lib64) $(files_lib64) + dh_installdocs -p$(p_lib64) + echo "See /$(docdir)/$(p_base) for more information" \ + > $(d_lib64)/$(docdir)/$(p_lib64)/README.Debian + dh_installchangelogs -p$(p_lib64) + debian/dh_rmemptydirs -p$(p_lib64) + dh_strip -p$(p_lib64) + dh_compress -p$(p_lib64) + dh_fixperms -p$(p_lib64) + dh_makeshlibs -p$(p_lib64) -V '$(p_lib64) (>= $(DEB_STDCXX_SOVERSION))' +# pass explicit dependencies to dh_shlibdeps +ifeq ($(DEB_TARGET_GNU_CPU),s390) +# dh_shlibdeps -p$(p_lib64) -L $(p_l64gcc) -l $(d_l64gcc)/lib +#/usr/bin/ldd: line 1: /lib/ld64.so.1: cannot execute binary file +#dpkg-shlibdeps: failure: ldd on `debian/lib64gcc1/lib64/libgcc_s.so.1' gave error exit status 1 + echo 'shlibs:Depends=libc6-s390x (>= 2.3.1-1), $(p_l64gcc) (>= $(DEB_LIBGCC_SOVERSION))' \ + > debian/$(p_lib64).substvars +else + ifeq ($(DEB_TARGET_GNU_CPU),i386) + echo 'shlibs:Depends=amd64-libs (>= 0.1), $(p_l64gcc) (>= $(DEB_LIBGCC_SOVERSION))' \ + > debian/$(p_lib64).substvars + else + ifeq ($(DEB_TARGET_GNU_CPU),powerpc) + # XXX change dependency when lib64c6 exists + echo 'shlibs:Depends=libc6 (>= 0.1), $(p_l64gcc) (>= $(DEB_LIBGCC_SOVERSION))' \ + > debian/$(p_lib64).substvars + else + dh_shlibdeps -p$(p_lib64) -L $(p_l64gcc) -l $(d_l64gcc)/lib + endif + endif +endif + dh_gencontrol -p$(p_lib64) -u-v$(DEB_VERSION) + + b=lib64stdc++; \ + for ext in preinst postinst prerm postrm; do \ + for t in ''; do \ + v=$(CXX_SONAME); \ + if [ -f debian/$$b$$t.$$ext ]; then \ + cp -pf debian/$$b$$t.$$ext debian/$$b$$v$$t.$$ext; \ + fi; \ + done; \ + done + + dh_installdeb -p$(p_lib64) + dh_md5sums -p$(p_lib64) + dh_builddeb -p$(p_lib64) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- +$(binary_stamp)-lib32stdcxx: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_lib32) + dh_installdirs -p$(p_lib32) \ + $(docdir)/$(p_lib32) \ + $(PF)/lib32 + + mv $(d)/$(PF)/lib32/libstdc++.so.* \ + $(d_lib32)/$(PF)/lib32/. + + dh_installdocs -p$(p_lib32) + echo "See /$(docdir)/$(p_base) for more information" \ + > $(d_lib32)/$(docdir)/$(p_lib32)/README.Debian + dh_installchangelogs -p$(p_lib32) + debian/dh_rmemptydirs -p$(p_lib32) + dh_strip -p$(p_lib32) + dh_compress -p$(p_lib32) + dh_fixperms -p$(p_lib32) + dh_gencontrol -p$(p_lib32) -u-v$(DEB_VERSION) + + b=lib32stdc++; \ + for ext in preinst postinst prerm postrm; do \ + for t in ''; do \ + v=$(CXX_SONAME); \ + if [ -f debian/$$b$$t.$$ext ]; then \ + cp -pf debian/$$b$$t.$$ext debian/$$b$$v$$t.$$ext; \ + fi; \ + done; \ + done + + dh_installdeb -p$(p_lib32) + dh_md5sums -p$(p_lib32) + dh_builddeb -p$(p_lib32) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- +ifeq ($(with_libcxx),yes) +$(binary_stamp)-libstdcxx-dev: $(install_stamp) \ + $(binary_stamp)-libstdcxx debian/README.libstdc++-baseline +else +$(binary_stamp)-libstdcxx-dev: $(install_stamp) debian/README.libstdc++-baseline +endif + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_dev) $(d_pic) + dh_installdirs -p$(p_dev) $(dirs_dev) + dh_installdirs -p$(p_pic) $(dirs_pic) + dh_installdirs -p$(p_dbg) $(dirs_dbg) + + : # - correct libstdc++-v3 file locations + mv $(d)/$(PF)/$(libdir)/libsupc++.a $(d)/$(gcc_lib_dir)/ + mv $(d)/$(PF)/$(libdir)/libstdc++.{a,so} $(d)/$(gcc_lib_dir)/ + mv $(d)/$(PF)/$(libdir)/libstdc++_pic.a $(d)/$(gcc_lib_dir)/ + + rm -f $(d)/$(PF)/$(libdir)/debug/libstdc++_pic.a + rm -f $(d)/$(PF)/lib64/debug/libstdc++_pic.a + + : # remove precompiled headers + -find $(d) -type d -name '*.gch' | xargs rm -rf + +ifeq ($(with_lib64cxx),yes) + mv $(d)/$(PF)/lib64/lib*c++*.{a,so} $(d)/$(gcc_lib_dir)/64/. +endif +ifeq ($(biarch_ia32),yes) + mv $(d)/$(PF)/lib32/lib*c++*.{a,so} $(d)/$(gcc_lib_dir)/32/. +endif + + DH_COMPAT=2 dh_movefiles -p$(p_dev) $(files_dev) + DH_COMPAT=2 dh_movefiles -p$(p_pic) $(files_pic) + DH_COMPAT=2 dh_movefiles -p$(p_dbg) $(files_dbg) + + dh_link -p$(p_dev) \ + /$(PF)/$(libdir)/libstdc++.so.$(CXX_SONAME) \ + /$(gcc_lib_dir)/libstdc++.so +ifeq ($(with_lib64cxx),yes) + dh_link -p$(p_dev) \ + /$(PF)/lib64/libstdc++.so.$(CXX_SONAME) \ + /$(gcc_lib_dir)/64/libstdc++.so +endif +ifeq ($(biarch_ia32),yes) + dh_link -p$(p_dev) \ + /$(PF)/lib32/libstdc++.so.$(CXX_SONAME) \ + /$(gcc_lib_dir)/32/libstdc++.so +endif + + debian/dh_doclink -p$(p_dev) $(p_base) + debian/dh_doclink -p$(p_pic) $(p_base) + debian/dh_doclink -p$(p_dbg) $(p_base) + cp -p $(srcdir)/libstdc++-v3/ChangeLog \ + $(d_dev)/$(docdir)/$(p_base)/C++/changelog.libstdc++ + cp -p debian/README.libstdc++-baseline \ + $(d_dev)/$(docdir)/$(p_base)/C++/README.libstdc++-baseline + if [ -f $(buildlibdir)/libstdc++-v3/testsuite/current_symbols.txt ]; \ + then \ + cp -p $(buildlibdir)/libstdc++-v3/testsuite/current_symbols.txt \ + $(d_dev)/$(docdir)/$(p_base)/C++/libstdc++_symbols.txt; \ + fi + cp -p $(srcdir)/libstdc++-v3/config/linker-map.gnu \ + $(d_pic)/$(gcc_lib_dir)/libstdc++_pic.map + +ifeq ($(with_cxxdev),yes) + debian/dh_rmemptydirs -p$(p_dev) + debian/dh_rmemptydirs -p$(p_pic) + debian/dh_rmemptydirs -p$(p_dbg) +endif + + dh_strip -p$(p_dev) -p$(p_pic) + dh_compress -p$(p_dev) -p$(p_pic) -p$(p_dbg) -X.txt + dh_fixperms -p$(p_dev) -p$(p_pic) -p$(p_dbg) +ifeq ($(with_lib64cxx),yes) + dh_shlibdeps -p$(p_dev) -p$(p_pic) -p$(p_dbg) -Xlib64 +else + dh_shlibdeps -p$(p_dev) -p$(p_pic) -p$(p_dbg) -Xlib32/debug +endif + dh_gencontrol -p$(p_dev) -p$(p_pic) -p$(p_dbg) \ + -u-v$(DEB_VERSION) + + b=libstdc++; \ + for ext in preinst postinst prerm postrm; do \ + for t in -dev -dbg -pic; do \ + v=$(CXX_SONAME); \ + if [ -f debian/$$b$$t.$$ext ]; then \ + cp -pf debian/$$b$$t.$$ext debian/$$b$$v$$t.$$ext; \ + fi; \ + done; \ + done + + dh_installdeb -p$(p_dev) -p$(p_pic) -p$(p_dbg) + dh_md5sums -p$(p_dev) -p$(p_pic) -p$(p_dbg) + dh_builddeb -p$(p_dev) -p$(p_pic) -p$(p_dbg) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- + +doxygen_doc_dir = $(buildlibdir)/libstdc++-v3/docs/doxygen + +doxygen-docs: $(build_doxygen_stamp) +$(build_doxygen_stamp): + rm -rf $(doxygen_doc_dir)/html* + $(MAKE) -C $(buildlibdir)/libstdc++-v3 SHELL=/bin/bash doxygen; \ + $(MAKE) -C $(buildlibdir)/libstdc++-v3 SHELL=/bin/bash doxygen-man + if [ -f $(doxygen_doc_dir)/html_user/index.html ]; then \ + sed -e 's,http://gcc\.gnu\.org/onlinedocs/libstdc++,../html,g' \ + -e 's,Main Page,libstdc++-v3 Source: Main Index,' \ + $(doxygen_doc_dir)/html_user/index.html \ + > $(doxygen_doc_dir)/html_user/index.html.new; \ + mv -f $(doxygen_doc_dir)/html_user/index.html.new \ + $(doxygen_doc_dir)/html_user/index.html; \ + else \ + echo "unable to generate doxygen docs"; \ + exit 2; \ + fi + touch $@ + +$(binary_stamp)-libstdcxx-doc: $(install_stamp) doxygen-docs + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_libd) + dh_installdirs -p$(p_libd) \ + $(docdir)/$(p_base)/libstdc++ \ + $(PF)/share/man + +# debian/dh_doclink -p$(p_libd) $(p_base) + dh_link -p$(p_libd) /usr/share/doc/$(p_base) /usr/share/doc/$(p_libd) + dh_installdocs -p$(p_libd) + rm -f $(d_libd)/$(docdir)/$(p_base)/copyright + + cp -a $(srcdir)/libstdc++-v3/docs/html \ + $(d_libd)/$(docdir)/$(p_base)/libstdc++/. + ln -sf documentation.html \ + $(d_libd)/$(docdir)/$(p_base)/libstdc++/html/index.html + -find $(d_libd)/$(docdir)/$(p_base)/libstdc++/ -name CVS -type d \ + | xargs rm -rf + + cp -a $(doxygen_doc_dir)/html_user \ + $(d_libd)/$(docdir)/$(p_base)/libstdc++/. + cp -a $(doxygen_doc_dir)/man/man3 \ + $(d_libd)/$(PF)/share/man/. + cp -p $(srcdir)/libstdc++-v3/docs/doxygen/Intro.3 \ + $(d_libd)/$(PF)/share/man/man3/C++Intro.3 + +# mkdir -p $(d_libd)/usr/share/lintian/overrides +# cp -p debian/$(p_libd).overrides \ +# $(d_libd)/usr/share/lintian/overrides/$(p_libd) + + dh_compress -p$(p_libd) -Xhtml/17_intro -X.txt -X.tag + dh_fixperms -p$(p_libd) + dh_gencontrol -p$(p_libd) -u-v$(DEB_VERSION) + + dh_installdeb -p$(p_libd) + dh_md5sums -p$(p_libd) + dh_builddeb -p$(p_libd) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-3.4-3.4.3.orig/debian/rules.d/binary-gcc.mk +++ gcc-3.4-3.4.3/debian/rules.d/binary-gcc.mk @@ -0,0 +1,173 @@ +arch_binaries := $(arch_binaries) gcc +ifneq ($(GFDL_INVARIANT_FREE),yes) + indep_binaries := $(indep_binaries) gcc-doc +endif + +# gcc must be moved after g77 and g++ +# not all files $(PF)/include/*.h are part of gcc, +# but it becomes difficult to name all these files ... + +dirs_gcc = \ + $(docdir)/$(p_base)/gcc \ + $(PF)/bin \ + $(gcc_lexec_dir) \ + $(gcc_lib_dir)/include \ + $(PF)/share/man/man1 $(libdir) + +files_gcc = \ + $(PF)/bin/{gcc,gcov,gccbug}$(pkg_ver) \ + $(PF)/share/man/man1/{gcc,gcov,gccbug}$(pkg_ver).1 \ + $(gcc_lexec_dir)/collect2 \ + $(gcc_lib_dir)/{specs,libgcc*,libgcov.a,*.o} \ + $(gcc_lib_dir)/include/README \ + $(gcc_lib_dir)/include/{float,iso646,limits,std*,syslimits,unwind,varargs}.h \ + $(shell for d in asm bits gnu linux; do \ + test -e $(d)/$(gcc_lib_dir)/include/$$d \ + && echo $(gcc_lib_dir)/include/$$d; \ + done) + +ifeq ($(biarch),yes) + files_gcc += $(gcc_lib_dir)/64/{libgcc*,libgcov.a,*.o} +endif +ifeq ($(biarch_ia32),yes) + files_gcc += $(gcc_lib_dir)/64/{libgcc*,*.o} +endif + +ifeq ($(with_nls),yes) + files_gcc += $(PF)/share/locale/*/*/gcc*.* +endif + +files_gcc += \ + $(shell test -e $(d)/$(gcc_lib_dir)/SYSCALLS.c.X \ + && echo $(gcc_lib_dir)/SYSCALLS.c.X) + +ifeq ($(DEB_HOST_ARCH),ia64) + files_gcc += $(gcc_lib_dir)/include/ia64intrin.h +endif + +ifeq ($(DEB_HOST_ARCH),i386) + files_gcc += $(gcc_lib_dir)/include/{,e,p,x}mmintrin.h +endif + +ifeq ($(DEB_HOST_ARCH),hurd-i386) + files_gcc += $(gcc_lib_dir)/include/{,e,p,x}mmintrin.h +endif + +ifeq ($(DEB_HOST_ARCH),m68k) + files_gcc += $(gcc_lib_dir)/include/math-68881.h +endif + +ifeq ($(DEB_HOST_ARCH),powerpc) + files_gcc += $(gcc_lib_dir)/include/{altivec.h,ppc-asm.h} +endif + +usr_doc_files = debian/README.Bugs \ + $(shell test -f $(srcdir)/FAQ && echo $(srcdir)/FAQ) +ifeq ($(with_check),yes) + usr_doc_files += test-summary +endif + +# ---------------------------------------------------------------------- +$(binary_stamp)-gcc: $(install_dependencies) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_gcc) + dh_installdirs -p$(p_gcc) $(dirs_gcc) + + rm -f $(d)/$(PF)/$(libdir)/libgcc_s.so + ln -sf /$(libdir)/libgcc_s.so.$(GCC_SONAME) $(d)/$(gcc_lib_dir)/libgcc_s.so +ifeq ($(biarch),yes) + rm -f $(d)/$(PF)/$(lib64)/libgcc_s.so + ln -sf /$(lib64)/libgcc_s.so.$(GCC_SONAME) $(d)/$(gcc_lib_dir)/libgcc_s_64.so + ln -sf /$(lib64)/libgcc_s.so.$(GCC_SONAME) $(d)/$(gcc_lib_dir)/64/libgcc_s.so +endif +ifeq ($(biarch_ia32),yes) + mkdir -p $(d_gcc)/$(gcc_lib_dir) + mv $(d)/$(gcc_lib_dir)/32 $(d_gcc)/$(gcc_lib_dir)/ + dh_link -p$(p_gcc) \ + /lib32/libgcc_s.so.$(GCC_SONAME) /$(gcc_lib_dir)/libgcc_s_32.so \ + /lib32/libgcc_s.so.$(GCC_SONAME) /$(gcc_lib_dir)/32/libgcc_s.so +endif + cp -p debian/gccbug.1 $(d)/$(PF)/share/man/man1/gccbug$(pkg_ver).1 + + DH_COMPAT=2 dh_movefiles -p$(p_gcc) $(files_gcc) + + ln -sf gcc$(pkg_ver) \ + $(d_gcc)/$(PF)/bin/$(DEB_TARGET_GNU_TYPE)-gcc$(pkg_ver) + ln -sf gcc$(pkg_ver).1 \ + $(d_gcc)/$(PF)/share/man/man1/$(DEB_TARGET_GNU_TYPE)-gcc$(pkg_ver).1 + ln -sf gcc$(pkg_ver) \ + $(d_gcc)/$(PF)/bin/$(TARGET_ALIAS)-gcc$(pkg_ver) + ln -sf gcc$(pkg_ver).1 \ + $(d_gcc)/$(PF)/share/man/man1/$(TARGET_ALIAS)-gcc$(pkg_ver).1 + +# dh_installdebconf + debian/dh_doclink -p$(p_gcc) $(p_base) + cp -p $(usr_doc_files) $(d_gcc)/$(docdir)/$(p_base)/. + if [ -f testsuite-comparision ]; then \ + cp -p testsuite-comparision $(d_gcc)/$(docdir)/$(p_base)/. ; \ + fi + cp -p debian/NEWS.gcc $(d_gcc)/$(docdir)/$(p_base)/NEWS + cp -p debian/NEWS.html $(d_gcc)/$(docdir)/$(p_base)/NEWS.html + cp -p $(srcdir)/gcc/ChangeLog \ + $(d_gcc)/$(docdir)/$(p_base)/gcc/changelog + if [ -f $(builddir)/gcc/.bad_compare ]; then \ + ( \ + echo "The comparision of the stage2 and stage3 object files shows differences."; \ + echo "The Debian package was modified to ignore these differences."; \ + echo ""; \ + echo "The following files differ:"; \ + echo ""; \ + cat $(builddir)/gcc/.bad_compare; \ + ) > $(d_gcc)/$(docdir)/$(p_base)/BOOTSTRAP_COMPARISION_FAILURE; \ + else \ + true; \ + fi + debian/dh_rmemptydirs -p$(p_gcc) + dh_strip -p$(p_gcc) + dh_compress -p$(p_gcc) -X README.Bugs + dh_fixperms -p$(p_gcc) + dh_shlibdeps -p$(p_gcc) + dh_gencontrol -p$(p_gcc) -u-v$(DEB_VERSION) + dh_installdeb -p$(p_gcc) + dh_md5sums -p$(p_gcc) + dh_builddeb -p$(p_gcc) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + + : # remove empty directories, when all components are in place + for d in `find $(d) -depth -type d -empty 2> /dev/null`; do \ + while rmdir $$d 2> /dev/null; do d=`dirname $$d`; done; \ + done + + @echo "Listing installed files not included in any package:" + -find $(d) ! -type d + +# ---------------------------------------------------------------------- +$(binary_stamp)-gcc-doc: $(build_html_stamp) $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_doc) + dh_installdirs -p$(p_doc) \ + $(docdir)/$(p_base) \ + $(PF)/share/info + DH_COMPAT=2 dh_movefiles -p$(p_doc) \ + $(PF)/share/info/gcc* + + debian/dh_doclink -p$(p_doc) $(p_base) + dh_installdocs -p$(p_doc) html/gcc.html html/gccint.html + rm -f $(d_doc)/$(docdir)/$(p_base)/copyright + debian/dh_rmemptydirs -p$(p_doc) + + dh_compress -p$(p_doc) + dh_fixperms -p$(p_doc) + dh_installdeb -p$(p_doc) + dh_gencontrol -p$(p_doc) -u-v$(DEB_VERSION) + dh_md5sums -p$(p_doc) + dh_builddeb -p$(p_doc) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-3.4-3.4.3.orig/debian/fastjar.prerm +++ gcc-3.4-3.4.3/debian/fastjar.prerm @@ -0,0 +1,16 @@ +#! /bin/sh -e + +if [ -f /usr/share/info/fastjar.info.gz ]; then + install-info --quiet --remove fastjar +else + # GFDL invariant free + true +fi + +if [ "$1" != "upgrade" ]; then + update-alternatives --remove jar /usr/bin/fastjar >/dev/null 2>&1 || true +fi + +#DEBHELPER# + +exit 0 --- gcc-3.4-3.4.3.orig/debian/NEWS.html +++ gcc-3.4-3.4.3/debian/NEWS.html @@ -0,0 +1,1794 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GCC 3.4 Release Series — Changes, New Features, and Fixes +- GNU Project - Free Software Foundation (FSF) + + + + + + + + + +

+GCC 3.4 Release Series
Changes, New Features, and Fixes +

+ +

The latest release in the 3.4 release series is +GCC 3.4.3.

+ +

GCC 3.4 has many improvements in the C++ +frontend. Before reporting a bug, please make sure it's really GCC, +and not your code, that is broken.

+ +

Caveats

+ +
    +
  • GNU Make is now required to build GCC.
  • +
  • With -nostdinc the preprocessor used to ignore + both standard include paths and include paths + contained in environment variables. It was neither documented + nor intended that environment variable paths be ignored, so + this has been corrected.
  • +
  • GCC no longer accepts the options -fvolatile, + -fvolatile-global and -fvolatile-static. + It is unlikely that they worked correctly in any 3.x release.
  • +
  • GCC no longer ships <varargs.h>. Use + <stdarg.h> instead.
  • +
  • Support for all the systems obsoleted in + GCC 3.3 has been removed from GCC 3.4. See below for a + list of systems which are obsoleted + in this release.
  • +
  • GCC now requires an ISO C90 (ANSI C89) C compiler to build. + K&R C compilers will not work.
  • +
  • The implementation of the MIPS ABIs has + changed. As a result, the code generated for certain MIPS + targets will not be binary compatible with earlier releases.
  • +
  • In previous releases, the MIPS port had a fake "hilo" register + with the user-visible name accum. This register + has been removed.
  • +
  • The implementation of the SPARC ABIs has + changed. As a result, the code generated will not be binary + compatible with earlier releases in certain cases.
  • +
  • The configure option --enable-threads=pthreads has + been removed; use --enable-threads=posix instead, + which should have the same effect.
  • +
  • Code size estimates used by inlining heuristics for C, Objective-C, C++ + and Java have been redesigned significantly. As a result the parameters + of -finline-insns, + --param max-inline-insns-single + and --param max-inline-insns-auto need to be + reconsidered.
  • +
  • --param max-inline-slope + and --param min-inline-insns + have been removed; they are not needed for the new bottom-up inlining + heuristics.
  • +
  • The new unit-at-a-time compilation scheme has several compatibility + issues: +
      +
    • The order in which functions, variables, and top-level + asm statements are emitted may have changed. Code + relying on some particular ordering needs to be updated. The + majority of such top-level asm statements can be replaced by section + attributes.
    • +
    • Unreferenced static variables and functions are removed. + This may result in undefined references when an asm + statement refers to the variable/function directly. In that + case either the variable/function shall be listed in asm statement + operand or in the case of top-level asm statements the attribute + used shall be used to force function/variable to be + always output and considered as a possibly used by unknown code. + +

      For variables the attribute is accepted only by GCC 3.4 and newer, + while for earlier versions it is sufficient to use + unused to silence warnings about the variables not being + referenced. + To keep code portable across different GCC versions, you can use + appropriate preprocessor conditionals.

    • +
    • Static functions now can use non-standard passing conventions that may + break asm statements calling functions directly. Again + the attribute used shall be used to prevent this + behavior.
    • +
    + As a temporary workaround, -fno-unit-at-a-time can be used, + but this scheme may not be supported by future releases of GCC. +
  • +
  • GCC 3.4 automatically places zero-initialized variables in + the .bss section on some operating systems. + Versions of GNU Emacs up to (and including) 21.3 will not work + correctly when using this optimization; you can use + -fno-zero-initialized-in-bss to disable it.
  • +
  • If GCC 3.4 is configured with --enable-threads=posix + (the default on most targets that support pthreads) then + _REENTRANT will be defined unconditionally by + some libstdc++ headers. C++ code which relies on that macro to + detect whether multi-threaded code is being compiled might + change in meaning, possibly resulting in linker errors for + single-threaded programs. + Affected users of Boost should + compile single-threaded code with -DBOOST_DISABLE_THREADS. + See Bugzilla for + more + information. +
  • +
+ +

General Optimizer Improvements

+ +
    +
  • Usability of the profile feedback and coverage testing has been improved. +
      +
    • Performance of profiled programs has been improved by faster profile + merging code.
    • +
    • Better use of the profile feedback for optimization (loop unrolling + and loop peeling).
    • +
    • File locking support allowing fork() calls and parallel + runs of profiled programs.
    • +
    • Coverage file format has been redesigned.
    • +
    • gcov coverage tool has been improved.
    • +
    • make profiledbootstrap available to build a faster + compiler. + +

      Experiments made on i386 hardware showed an 11% speedup on + -O0 and a 7.5% speedup on -O2 compilation of a + large C++ + testcase.

    • +
    • New value profiling pass enabled via + -fprofile-values
    • +
    • New value profile transformations pass enabled via -fvpt + aims to optimize some code sequences by exploiting knowledge about + value ranges or other properties of the operands. At the moment a + conversion of expensive divisions into cheaper operations has been + implemented.
    • +
    • New -fprofile-generate and -fprofile-use + command line options to simplify the use of profile feedback.
    • +
    +
  • +
  • A new unit-at-a-time compilation scheme for C, Objective-C, C++ and + Java which is enabled via -funit-at-a-time (and implied by + -O2). In this scheme a whole file is parsed first and + optimized later. The following basic inter-procedural optimizations + are implemented: +
      +
    • Removal of unreachable functions and variables
    • +
    • Discovery of local functions (functions with static linkage whose + address is never taken)
    • +
    • On i386, these local functions use register parameter passing + conventions.
    • +
    • Reordering of functions in topological order of the call graph to + enable better propagation of optimizing hints (such as the stack + alignments needed by functions) in the back end.
    • +
    • Call graph based out-of-order inlining heuristics which allows to + limit overall compilation unit growth (--param + inline-unit-growth).
    • +
    + Overall, the unit-at-a-time scheme produces a 1.3% improvement for the + SPECint2000 benchmark on the i386 architecture (AMD Athlon CPU). +
  • +
  • More realistic code size estimates used by inlining for C, Objective-C, + C++ and Java. The growth of large functions can now be limited via + --param large-function-insns + and --param large-function-growth.
  • +
  • A new cfg-level loop optimizer pass replaces the old loop unrolling + pass and adds two other loop transformations -- loop peeling and loop + unswitching -- and also uses the profile feedback to limit code growth. + (The three optimizations are enabled by -funroll-loops, + -fpeel-loops and -funswitch-loops flags, + respectively). + +

    The old loop unroller still can be enabled by + -fold-unroll-loops and may produce better code in some + cases, especially when the webizer optimization pass is not + run.

  • +
  • A new web construction pass enabled via -fweb (and implied + by -O3) improves the quality of register allocation, CSE, + first scheduling pass and some other optimization passes by avoiding + re-use of pseudo registers with non-overlapping live ranges. The pass + almost always improves code quality but does make debugging difficult + and thus is not enabled by default by -O2 +

    The pass is especially effective as cleanup after code duplication + passes, such as the loop unroller or the tracer.

  • +
  • Experimental implementations of superblock or trace scheduling in the + second scheduling pass can be enabled via + -fsched2-use-superblocks and + -fsched2-use-traces, respectively.
  • +
+ + +

New Languages and Language specific improvements

+ +

Ada

+
    +
  • The Ada front end has been updated to include numerous + bug fixes and enhancements. These include: +
      +
    • Improved project file support
    • +
    • Additional set of warnings about potential wrong code
    • +
    • Improved error messages
    • +
    • Improved code generation
    • +
    • Improved cross reference information
    • +
    • Improved inlining
    • +
    • Better run-time check elimination
    • +
    • Better error recovery
    • +
    • More efficient implementation of unbounded strings
    • +
    • Added features in GNAT.Sockets, + GNAT.OS_Lib, GNAT.Debug_Pools, ...
    • +
    • New GNAT.xxxx packages (e.g. GNAT.Strings, + GNAT.Exception_Action)
    • +
    • New pragmas
    • +
    • New -gnatS switch replacing gnatpsta
    • +
    • Implementation of new Ada features (in particular limited with, + limited aggregates)
    • +
    +
  • +
+ +

C/Objective-C/C++

+ +
    + +
  • Precompiled headers are now supported. Precompiled headers + can dramatically speed up compilation of some projects. There + are some known defects in the current precompiled header + implementation that will result in compiler crashes in + relatively rare situations. Therefore, precompiled headers + should be considered a "technology preview" in this + release. Read the manual for details about how to use + precompiled headers.
  • +
  • File handling in the preprocessor has been rewritten. GCC no + longer gets confused by symlinks and hardlinks, and now has + a correct implementation of #import and + #pragma once. + These two directives have therefore been un-deprecated.
  • +
  • The undocumented extension that allowed C programs to have a + label at the end of a compound statement, which has been + deprecated since GCC 3.0, has been removed.
  • +
  • The cast-as-lvalue extension has been removed for C++ and + deprecated for C and Objective-C. In particular, + code like this: +
    +        int i;
    +        (char) i = 5;
    +        
    +

    or this:

    +
    +        char *p;
    +        ((int *) p)++;
    +        
    +

    is no longer accepted for C++ and will not be accepted for + C and Objective-C in a future version.

  • +
  • The conditional-expression-as-lvalue extension has been + deprecated for C and Objective-C. In particular, code like + this: +
    +        int a, b, c;
    +        (a ? b : c) = 2;
    +        
    +

    will not be accepted for C and Objective-C in a future + version.

  • +
  • The compound-expression-as-lvalue extension has been + deprecated for C and Objective-C. In particular, code like + this: +
    +        int a, b;
    +        (a, b) = 2;
    +        
    +

    will not be accepted for C and Objective-C in a future + version. A possible non-intrusive workaround is the following:

    +
    +        (*(a, &b)) = 2;
    +        
  • +
  • Several + + built-in functions such as __builtin_popcount + for counting bits, finding the highest and lowest bit in a + word, and parity have been added.
  • +
  • The -fwritable-strings option has been deprecated + and will be removed.
  • +
  • Many C math library functions are now recognized as built-ins and + optimized.
  • +
  • The C, C++, and Objective-C compilers can now handle source files + written in any character encoding supported by the host C library. + The default input character set is taken from the current locale, + and may be overridden with the -finput-charset command + line option. In the future we will add support for inline encoding + markers.
  • +
+ +

C++

+ +
    +
  • G++ is now much closer to full conformance to + the ISO/ANSI C++ standard. This means, among other things, that a lot + of invalid constructs which used to be accepted in previous versions + will now be rejected. It is very likely that existing C++ code will + need to be fixed. This document lists some of the most common + issues.
  • + +
  • A hand-written recursive-descent C++ parser has replaced the + YACC-derived C++ parser from previous GCC releases. The new + parser contains much improved infrastructure needed for better + parsing of C++ source codes, handling of extensions, and clean + separation (where possible) between proper semantics analysis + and parsing. The new parser fixes many bugs that were found + in the old parser.
  • + +
  • You must now use the typename and + template keywords to disambiguate dependent names, + as required by the C++ standard. + +
    +	struct K {
    +	  typedef int mytype_t;
    +	};
    +	
    +	template <class T1> struct A {
    +	  template <class T2> struct B { 
    +	      void callme(void);
    +	    };
    +
    +	  template <int N> void bar(void) 
    +	  {
    +	    // Use 'typename' to tell the parser that T1::mytype_t names
    +	    //  a type. This is needed because the name is dependent (in
    +	    //  this case, on template parameter T1).
    +	    typename T1::mytype_t x;
    +	    x = 0;
    +	  }
    +	};
    +
    +	template <class T> void template_func(void)
    +	{
    +	  // Use 'template' to prefix member templates within 
    +	  //  dependent types (a has type A<T>, which depends on
    +	  //  the template parameter T).
    +	  A<T> a;
    +	  a.template bar<0>();
    +
    +	  // Use 'template' to tell the parser that B is a nested 
    +	  //  template class (dependent on template parameter T), and 
    +	  //  'typename' because the whole A<T>::B<int> is 
    +	  //  the name of a type (again, dependent).
    +	  typename A<T>::template B<int> b;
    +	  b.callme();
    +	}
    +	
    +	void non_template_func(void)
    +	{
    +	  // Outside of any template class or function, no names can be
    +	  //  dependent, so the use of the keyword 'typename' and 'template'
    +	  //  is not needed (and actually forbidden).
    +	  A<K> a;
    +	  a.bar<0>();
    +	  A<K>::B<float> b;
    +	  b.callme();
    +	}
  • + + + +
  • In a template definition, unqualified names will no longer + find members of a dependent base. For example, +
    +	template <typename T> struct B {
    +	  int m;
    +	  int n;
    +	  int f ();
    +	  int g ();
    +	};
    +	int n;
    +	int g ();
    +	template <typename T> struct C : B<T> {
    +	  void h ()
    +	  {
    +		m = 0; // error
    +		f ();  // error
    +		n = 0; // ::n is modified
    +		g ();  // ::g is called
    +	  }
    +	};
    +

    You must make the names dependent, e.g. by prefixing them + with this->. Here is the corrected definition + of C<T>::h,

    +
    +	template <typename T> void C<T>::h ()
    +	{
    +	  this->m = 0;
    +	  this->f ();
    +	  this->n = 0
    +	  this->g ();
    +	}
    +

    As an alternative solution, you may use using + declarations instead of this->:

    +
    +	template <typename T> struct C : B<T> {
    +	  using B<T>::m;
    +	  using B<T>::f;
    +	  using B<T>::n;
    +	  using B<T>::g;
    +	  void h ()
    +	  {
    +		m = 0;
    +		f ();
    +		n = 0;
    +		g ();
    +	  }
    +	};
  • + +
  • In templates, all non-dependent names are now looked up and bound + at definition time (while parsing the code), instead of later when + the template is instantiated. For instance: + +
    +	void foo(int);
    +
    +	template <int> struct A {
    +	  static void bar(void){
    +	    foo('a');
    +	  }
    +	};
    +
    +	void foo(char);
    +
    +	int main()
    +	{
    +	  A<0>::bar();    // Calls foo(int), used to call foo(char).
    +	}
    +	
  • + +
  • In an explicit instantiation of a class template, you must use + class or struct before the template-id: + +
    +	template <int N>
    +	class A {};
    +	
    +	template A<0>;         // error, not accepted anymore
    +	template class A<0>;   // OK
  • + +
  • The "named return value" and "implicit typename" + extensions have been removed.
  • + +
  • Default arguments in function types have been deprecated and + will be removed.
  • + +
  • ARM-style name-injection of friend declarations has been + deprecated and will be removed. For example: + + struct S { + friend void f(); + }; + + void g() { f(); } + + will not be accepted by future versions of G++; instead a + declaration of "f" will need to be present outside of the + scope of "S".
  • + +
  • Covariant returns are implemented for all but varadic + functions that require an adjustment.
  • + +
  • When -pedantic is used, G++ now issues errors about spurious + semicolons. For example, +
    +        namespace N {}; // Invalid semicolon.
    +        void f() {}; // Invalid semicolon.
  • + +
  • G++ no longer accepts attributes for a declarator after the + initializer associated with that declarator. For example, +
    +        X x(1) __attribute__((...));
    + is no longer accepted. Instead, use: +
    +        X x __attribute__((...)) (1);
  • + +
  • Inside the scope of a template class, the name of the class + itself can be treated as either a class or a template. So + GCC used to accept the class name as argument of type template, + and template template parameter. However this is not C++ standard + compliant. Now the name is not treated as a valid template template + argument unless you qualify the name by its scope. For example, + the code below no longer compiles. +
    +        template <template <class> class TT> class X {};
    +        template <class T> class Y {
    +          X<Y> x; // Invalid, Y is always a type template parameter.
    +        };
    +

    The valid code for the above example is

    +
    +          X< ::Y> x; // Valid.
    +

    (Notice the space between < and : to + prevent GCC to interpret this as a digraph for + [.)

  • + +
  • Friend declarations that refer to template specializations are + rejected if the template has not already been declared. For example, +
    +	template <typename T>
    +	class C {
    +	  friend void f<> (C&);
    +	};
    +

    is rejected. You must first declare f as a + template,

    +
    +	template <typename T>
    +	void f(T);
  • + +
  • In case of friend declarations, every name used in the friend + declaration must be accessible at the point of that declaration. + Previous versions of G++ used to be less strict about this and + allowed friend declarations for private class members, + for example. See the ISO C++ Standard Committee's defect + report #209 for details.
  • + +
  • Declaration of member functions of class templates as friends are + supported. For example, +
    +	template <typename T> struct A {
    +	  void f();
    +	};
    +	class C {
    +	  template <typename T> friend void A<T>::f();
    +	};
  • + +
  • You must use template <> to introduce template + specializations, as required by the standard. For example, +
    +	template <typename T>
    +	struct S;
    +
    +	struct S<int> { };
    +

    is rejected. You must write,

    +
    +	template <> struct S<int> {};
  • + +
  • G++ used to accept code like this, +
    +	struct S {
    +	  int h();
    +	  void f(int i = g());
    +	  int g(int i = h());
    +	};
    +

    This behavior is not mandated by the standard. Now G++ issues + an error about this code. To avoid the error, you must move + the declaration of g before the declaration of + f. The default arguments for g must + be visible at the point where it is called.

  • + +
  • The C++ ABI Section 3.3.3 specifications for the array + construction routines __cxa_vec_new2 and + __cxa_vec_new3 were changed to return + NULL when the allocator argument returns + NULL. These changes are incorporated into the + libstdc++ runtime library.
  • + +
  • Using a name introduced by a typedef in a friend declaration or in an + explicit instantiation is now rejected, as specified by the ISO C++ + standard. +
    +	class A;
    +	typedef A B;
    +	class C { 
    +	  friend class B;      // error, no typedef name here
    +	  friend B;            // error, friend always needs class/struct/enum
    +	  friend class A;      // OK
    +	};
    +	
    +	template <int> class Q {};
    +	typedef Q<0> R;
    +	template class R;      // error, no typedef name here
    +	template class Q<0>;   // OK
  • + +
  • When allocating an array with a new expression, GCC used to allow + parentheses around the type name. This is actually ill-formed and it is + now rejected: +
    +	int* a = new (int)[10];    // error, not accepted anymore
    +	int* a = new int[10];      // OK
  • + +
  • When binding an rvalue of class type to a reference, the copy + constructor of the class must be accessible. For instance, consider + the following code: +
    +	class A 
    +	{
    +	public:
    +	  A();
    +	  
    +	private:
    +	  A(const A&);   // private copy ctor
    +	};
    +	
    +	A makeA(void);
    +	void foo(const A&);
    +	
    +	void bar(void)
    +	{
    +	  foo(A());       // error, copy ctor is not accessible
    +	  foo(makeA());   // error, copy ctor is not accessible
    +	  
    +	  A a1;
    +	  foo(a1);        // OK, a1 is a lvalue
    +	}
    + +

    This might be surprising at first sight, especially since most + popular compilers do not correctly implement this rule + (further details).

  • + +
  • When forming a pointer to member or a pointer to member function, + access checks for class visibility (public, protected, private) + are now performed using the qualifying scope of the name itself. + This is better explained with an example: + +
    +	class A
    +	{
    +	public:
    +	  void pub_func();
    +	protected:
    +	  void prot_func();
    +	private:
    +	  void priv_func();
    +	};
    +
    +	class B : public A
    +	{
    +	public:
    +	  void foo()
    +	  {
    +	    &A::pub_func;   // OK, pub_func is accessible through A
    +	    &A::prot_func;  // error, cannot access prot_func through A
    +	    &A::priv_func;  // error, cannot access priv_func through A
    +
    +	    &B::pub_func;   // OK, pub_func is accessible through B
    +	    &B::prot_func;  // OK, can access prot_func through B (within B)
    +	    &B::priv_func;  // error, cannot access priv_func through B
    +	  }
    +	};
  • +
+ +

Runtime Library (libstdc++)

+ +
    +
  • Optimization work: +
      +
    • Streamlined streambuf, filebuf, separate + synched with C Standard I/O streambuf.
    • +
    • All formatted I/O now uses cached locale information.
    • +
    • STL optimizations (memory/speed for list, red-black trees as used + by sets and maps).
    • +
    • More use of GCC builtins.
    • +
    • String optimizations (avoid contention on increment/decrement-and-test + of the reference count in the empty-string object, constructor from + input_iterators speedup).
    • +
  • +
  • Static linkage size reductions.
  • +
  • Large File Support (files larger than 2 GB on 32-bit systems).
  • +
  • Wide character and variable encoding filebuf work + (UTF-8, Unicode).
  • +
  • Generic character traits.
  • +
  • Also support wchar_t specializations on Mac OS 10.3.x, + FreeBSD 5.x, Solaris 2.7 and above, AIX 5.x, Irix 6.5.
  • +
  • The allocator class is now standard-conformant, and two additional + extension allocators have been added, mt_alloc and bitmap_allocator.
  • +
  • PCH support: -include bits/stdc++.h (2x compile speedup).
  • +
  • Rewrote __cxa_demangle with support for C++ style + allocators.
  • +
  • New debug modes for STL containers and iterators.
  • +
  • Testsuite rewrite: five times as many tests, plus increasingly + sophisticated tests, including I/O, MT, multi-locale, wide and + narrow characters.
  • +
  • Use current versions of GNU "autotools" for build/configuration.
  • +
+ +

Objective-C

+ +
    +
  • The Objective-C front end has been updated to include the numerous + bug fixes and enhancements previously available only in Apple's + version of GCC. These include: +
      +
    • Structured exception (@try... @catch... + @finally, @throw) and synchronization + (@synchronized) support. These are accessible via + the -fobjc-exceptions switch; as of this writing, + they may only be used in conjunction with -fnext-runtime + on Mac OS X 10.3 and later. See Options Controlling Objective-C Dialect for more + information.
    • +
    • An overhaul of @encode logic. The C99 _Bool + and C++ bool type may now be encoded as + 'B'. In addition, the back-end/codegen dependencies + have been removed.
    • +
    • An overhaul of message dispatch construction, ensuring that the + various receiver types (and casts thereof) are handled properly, + and that correct diagnostics are issued.
    • +
    • Support for "Zero-Link" (-fzero-link) and + "Fix-and-Continue" (-freplace-objc-classes) debugging + modes, currently available on Mac OS X 10.3 and later. See Options Controlling Objective-C Dialect for more + information.
    • +
    • Access to optimized runtime entry points (-fno-nil-receivers + ) on the assumption that message receivers are never + nil. This is currently available on Mac OS X 10.3 and + later. See Options Controlling Objective-C Dialect for more + information.
    • +
  • +
+ +

Java

+ +
    +
  • Compiling a .jar file will now cause non-.class entries to be + automatically compiled as resources.
  • +
  • libgcj has been ported to Darwin.
  • +
  • Jeff Sturm has adapted Jan Hubicka's call graph optimization + code to gcj.
  • +
  • libgcj has a new gcjlib URL type; this + lets URLClassLoader load code from shared + libraries.
  • +
  • libgcj has been much more completely merged with GNU Classpath.
  • +
  • Class loading is now much more correct; in particular the + caller's class loader is now used when that is required.
  • +
  • Eclipse 2.x will run + out of the box using gij.
  • +
  • Parts of java.nio have been implemented. + Direct and indirect buffers work, as do fundamental file and + socket operations.
  • +
  • java.awt has been improved, though it is still + not ready for general use.
  • +
  • The HTTP protocol handler now uses HTTP/1.1 and can handle + the POST method.
  • +
  • The MinGW port has matured. Enhancements include socket + timeout support, thread interruption, improved + Runtime.exec() handling and support for accented + characters in filenames.
  • +
+ +

Fortran

+ + + +

New Targets and Target Specific Improvements

+ +

Alpha

+
    +
  • Several + + built-in functions have been added such as + __builtin_alpha_zap to allow utilizing the more + obscure instructions of the CPU.
  • + +
  • Parameter passing of complex arguments has changed to match the + + ABI. This change is incompatible with previous GCC versions, but + does fix compatibility with the Tru64 compiler and several corner cases + where GCC was incompatible with itself.
  • +
+ +

ARM

+
    +
  • Nicolas Pitre has contributed his hand-coded floating-point support + code for ARM. It is both significantly smaller and faster than the + existing C-based implementation, even when building applications for + Thumb. The arm-elf configuration has been converted to use + the new code.
  • + +
  • Support for the Intel's iWMMXt architecture, a second + generation XScale processor, has been added. + Enabled at run time with the -mcpu=iwmmxt command + line switch.
  • + +
  • A new ARM target has been added: arm-wince-pe. This is + similar to the arm-pe target, but it defaults to using the + APCS32 ABI.
  • + +
  • The existing ARM pipeline description has been converted to + the use the DFA + processor pipeline model. There is not much change in code + performance, but the description is now easier + to understand.
  • + +
  • Support for the Cirrus EP9312 Maverick floating point + co-processor added. Enabled at run time with the + -mcpu=ep9312 command line switch. Note however that + the multilibs to support this chip are currently disabled in + gcc/config/arm/t-arm-elf, so if you want to enable their + production you will have to uncomment the entries in that + file.
  • +
+ +

H8/300

+
    +
  • Support for long long has been added.
  • + +
  • Support for saveall attribute has been added.
  • + +
  • Pavel Pisa contributed hand-written 32-bit-by-32-bit division + code for H8/300H and H8S, which is much faster than the previous + implementation.
  • + +
  • A lot of small performance improvements.
  • +
+ +

IA-32/AMD64 (x86-64)

+
    +
  • Tuning for K8 (AMD Opteron/Athlon64) core is available via + -march=k8 and -mcpu=k8.
  • +
  • Scalar SSE code generation carefully avoids reformatting penalties, + hidden dependencies and minimizes the number of uops generated on + both Intel and AMD CPUs.
  • +
  • Vector MMX and SSE operands are now passed in registers to improve + performance and match the argument passing convention used by the Intel + C++ Compiler. As a result it is not possible to call functions + accepting vector arguments compiled by older GCC version.
  • +
  • Conditional jump elimination is now more aggressive on modern CPUs.
  • +
  • The Athlon ports has been converted to use the DFA + processor pipeline description.
  • +
  • Optimization of indirect tail calls is now possible in a similar + fashion as direct sibcall optimization.
  • +
  • Further small performance improvements.
  • +
  • -m128bit-long-double is now less buggy.
  • +
  • __float128 support in 64-bit compilation.
  • +
  • Support for data structures exceeding 2GB in 64-bit mode.
  • +
  • -mcpu has been renamed to -mtune.
  • +
+ +

IA-64

+
    +
  • Tuning code for the Itanium 2 processor has been added. The + generation of code tuned for Itanium 2 (option + -mtune=itanium2) is enabled by default now. To + generate code tuned for Itanium 1 the option + -mtune=itanium1 should be used.
  • + +
  • DFA + processor pipeline descriptions for the IA-64 processors + have been added. This resulted in about 3% improvement on the + SPECInt2000 benchmark for Itanium 2.
  • + +
  • Instruction bundling for the IA-64 processors has been + rewritten using the DFA pipeline hazard recognizer. It + resulted in about 60% compiler speedup on the SPECInt2000 C + programs.
  • +
+ +

M32R

+
    +
  • Support for the M32R/2 processor has been added by Renesas.
  • +
  • Support for an M32R Linux target and PIC code generation has + been added by Renesas.
  • +
+ +

M68000

+
    +
  • Bernardo Innocenti (Develer S.r.l.) has contributed + the m68k-uclinux target, based on former work done + by Paul Dale (SnapGear Inc.). Code generation for the + ColdFire processors family has been enhanced and extended + to support the MCF 53xx and MCF 54xx cores, integrating + former work done by Peter Barada (Motorola).
  • +
+ +

MIPS

+

Processor-specific changes

+
    +
  • Support for the RM7000 and RM9000 processors has been added. + It can be selected using the -march compiler option + and should work with any MIPS I (mips-*) or MIPS III + (mips64-*) configuration.
  • +
  • Support for revision 2 of the MIPS32 ISA has been added. + It can be selected with the command-line option + -march=mips32r2.
  • +
  • There is a new option, -mfix-sb1, to work around + certain SB-1 errata.
  • +
+

Configuration

+
    +
  • It is possible to customize GCC using the following configure-time + options: +
      +
    • --with-arch, which specifies the default + value of the -march option.
    • +
    • --with-tune, which specifies the default + value of the -mtune option.
    • +
    • --with-abi, which specifies the default ABI.
    • +
    • --with-float=soft, which tells GCC to + use software floating point by default.
    • +
    • --with-float=hard, which tells GCC to + use hardware floating point by default.
    • +
  • +
  • A 64-bit GNU/Linux port has been added. The associated + configurations are mips64-linux-gnu and + mips64el-linux-gnu.
  • +
  • The 32-bit GNU/Linux port now supports Java.
  • +
  • The IRIX 6 configuration now supports the o32 ABI and will + build o32 multilibs by default. This support is compatible with + both binutils and the SGI tools, but note that several features, + including debugging information and DWARF2 exception handling, + are only available when using the GNU assembler. Use of the + GNU assembler and linker (version 2.15 or above) is strongly + recommended.
  • +
  • The IRIX 6 configuration now supports 128-bit long doubles.
  • +
  • There are two new RTEMS-specific configurations, + mips-rtems and mipsel-rtems.
  • +
  • There are two new *-elf configurations, + mipsisa32r2-elf and mipsisa32r2el-elf.
  • +
+

General

+
    +
  • Several ABI bugs have been fixed. + Unfortunately, these changes will break binary compatibility + with earlier releases.
  • +
  • GCC can now use explicit relocation operators when generating + -mabicalls code. This behavior is controlled by + -mexplicit-relocs and can have several performance + benefits. For example: +
      +
    • It allows for more optimization of GOT accesses, including + better scheduling and redundancy elimination.
    • +
    • It allows sibling calls to be implemented as jumps.
    • +
    • n32 and n64 leaf functions can use a call-clobbered + global pointer instead of $28.
    • +
    • The code to set up $gp can be removed from + functions that don't need it.
    • +
  • +
  • A new option, -mxgot, allows the GOT to be bigger + than 64k. This option is equivalent to the assembler's + -xgot option and should be used instead of + -Wa,-xgot.
  • +
  • Frame pointer elimination is now supported when generating 64-bit + MIPS16 code.
  • +
  • Inline block moves have been optimized to take more account of + alignment information.
  • +
  • Many internal changes have been made to the MIPS port, mostly + aimed at reducing the reliance on assembler macros.
  • +
+ +

PowerPC Darwin

+
    +
  • Support for shared/dylib gcc libraries has been added. It is + enabled by default on powerpc-apple-darwin7.0.0 + and up.
  • + +
  • Libgcj is enabled by default. On systems older than + powerpc-apple-darwin7.0.0 you need to install dlcompat. +
  • +
+ +

S/390 and zSeries

+
    +
  • New command-line options allow to specify the intended execution + environment for generated code: +
      +
    • -mesa/-mzarch allows to specify + whether to generate code running in ESA/390 mode or in + z/Architecture mode (this is applicable to 31-bit code + only).
    • +
    • -march allows to specify a minimum processor + architecture level (g5, g6, + z900, or z990).
    • +
    • -mtune allows to specify which processor to tune + for.
    • +
  • +
  • It is possible to customize GCC using the following configure-time + options: +
      +
    • --with-mode, which specifies whether to + default to assuming ESA/390 or z/Architecture mode.
    • +
    • --with-arch, which specifies the default + value of the -march option.
    • +
    • --with-tune, which specifies the default + value of the -mtune option.
    • +
  • +
  • Support for the z990 processor has been added, and can be selected + using -march=z990 or -mtune=z990. This + includes instruction scheduling tuned for the superscalar instruction + pipeline of the z990 processor as well as support for all new + instructions provided by the long-displacement facility.
  • +
  • Support to generate 31-bit code optimized for zSeries processors + (running in ESA/390 or in z/Architecture mode) has been added. + This can be selected using -march=z900 and + -mzarch respectively.
  • +
  • Instruction scheduling for the z900 and z990 + processors now uses the DFA pipeline hazard recognizer.
  • +
  • GCC no longer generates code to maintain a stack backchain, + previously used to generate stack backtraces for debugging + purposes. As replacement that does not incur runtime overhead, + DWARF-2 call frame information is provided by GCC; + this is supported by GDB 6.1. The old behavior can + be restored using the -mbackchain option.
  • +
  • The stack frame size of functions may now exceed 2 GB in 64-bit + code.
  • +
  • A port for the 64-bit IBM TPF operating system has been added; + the configuration is s390x-ibm-tpf. This + configuration is supported as cross-compilation target only.
  • +
  • Various changes to improve the generated code have been implemented, + including: +
      +
    • GCC now uses the MULTIPLY AND ADD and + MULTIPLY AND SUBTRACT instructions to + significantly speed up many floating-point applications.
    • +
    • GCC now uses the ADD LOGICAL WITH CARRY and + SUBTRACT LOGICAL WITH BORROW instructions to + speed up long long arithmetic.
    • +
    • GCC now uses the SEARCH STRING instruction to + implement strlen().
    • +
    • In many cases, function call overhead for 31-bit code has + been reduced by placing the literal pool after the function + code instead of after the function prolog.
    • +
    • Register 14 is no longer reserved in 64-bit code.
    • +
    • Handling of global register variables has been improved.
    • +
  • +
+ +

SPARC

+
    +
  • The option -mflat is deprecated.
  • + +
  • Support for large (> 2GB) frames has been added to the + 64-bit port.
  • + +
  • Several ABI bugs have been fixed. + Unfortunately, these changes will break binary compatibility with + earlier releases.
  • + +
  • The default debugging format has been switched from STABS to + DWARF-2 for 32-bit code on Solaris 7 and later. DWARF-2 is already + the default debugging format for 64-bit code on Solaris.
  • +
+ +

SuperH

+
    +
  • Support for the SH2E processor has been added. + Enabled at run time with the -m2e command line + switch, or at configure time by specifying sh2e as the machine + part of the target triple.
  • +
+ +

V850

+
    +
  • Support for the Mitsubishi V850E1 processor has been added. + This is a variant of the V850E processor with some additional + debugging instructions.
  • +
+ +

Xtensa

+
    +
  • Several ABI bugs have been fixed. Unfortunately, these changes + break binary compatibility with earlier releases. +
      +
    • For big-endian processors, the padding of aggregate return values + larger than a word has changed. If the size of an aggregate return + value is not a multiple of 32 bits, previous versions of GCC inserted + padding in the most-significant bytes of the first return value + register. Aggregates larger than a word are now padded in the + least-significant bytes of the last return value register used. + Aggregates smaller than a word are still padded in the most-significant + bytes. The return value padding has not changed for little-endian + processors.
    • +
    • Function arguments with 16-byte alignment are now properly + aligned.
    • +
    • The implementation of the va_list type has changed. + A va_list value created by va_start from a + previous release cannot be used with va_arg from this + release, or vice versa.
    • +
  • +
  • More processor configuration options for Xtensa processors are + supported: +
      +
    • the ABS instruction is now optional;
    • +
    • the ADDX* and SUBX* instructions are + now optional;
    • +
    • an experimental CONST16 instruction can be used to + synthesize constants instead of loading them from constant pools.
    • +
    + These and other Xtensa processor configuration options can no longer + be enabled or disabled by command-line options; the processor + configuration must be specified by the xtensa-config.h + header file when building GCC. Additionally, the + -mno-serialize-volatile option is no longer supported.
  • +
+ +

Obsolete Systems

+ +

Support for a number of older systems has been declared obsolete in + GCC 3.4. Unless there is activity to revive them, the next release of + GCC will have their sources permanently removed.

+ +

All configurations of the following processor architectures have + been declared obsolete:

+ +
    +
  • Mitsubishi D30V, d30v-*
  • +
  • AT&T DSP1600 and DSP1610, dsp16xx-*
  • +
  • Intel 80960, i960
  • +
+ +

Also, some individual systems have been obsoleted:

+ +
    +
  • ARM Family +
      +
    • Support for generating code for operation in APCS/26 mode + (-mapcs-26).
    • +
  • +
  • IBM ESA/390 +
      +
    • "Bigfoot" port, i370-*. (The other port, + s390-*, is actively maintained and + supported.)
    • +
  • +
  • Intel 386 family +
      +
    • MOSS, i?86-moss-msdos and + i?86-*-moss*
    • +
    • NCR 3000 running System V r.4, i?86-ncr-sysv4*
    • +
    • FreeBSD with a.out object format, i?86-*-freebsd*aout* + and i?86-*-freebsd2*
    • +
    • Linux with a.out object format, i?86-linux*aout*
    • +
    • Linux with libc5, a.k.a. glibc1, i?86-linux*libc1*
    • +
    • Interix versions before Interix 3, i?86-*-interix
    • +
    • Mach microkernel, i?86-mach*
    • +
    • SCO UnixWare with UDK, i?86-*-udk*
    • +
    • Generic System V releases 1, 2, and 3, + i?86-*-sysv[123]*
    • +
    • VSTa microkernel, i386-*-vsta
    • +
  • +
  • Motorola M68000 family +
      +
    • HPUX, m68k-hp-hpux* and + m68000-hp-hpux*
    • +
    • NetBSD with a.out object format (before NetBSD 1.4), + m68k-*-*-netbsd* except + m68k-*-*-netbsdelf*
    • +
    • Generic System V r.4, m68k-*-sysv4*
    • +
  • +
  • VAX +
      +
    • Generic VAX, vax-*-* (This is generic VAX only; + we have not obsoleted any VAX triples for specific operating + systems.)
    • +
  • +
+ + +

Documentation improvements

+ + +

Other significant improvements

+ +
    +
  • The build system has undergone several significant cleanups. + Subdirectories will only be configured if they are being built, + and all subdirectory configures are run from the make + command. The top level has been autoconfiscated.
  • +
  • Building GCC no longer writes to its source directory. This + should help those wishing to share a read-only source directory + over NFS or build from a CD. The exceptions to this feature are + if you configure with either --enable-maintainer-mode + or --enable-generated-files-in-srcdir.
  • +
  • The -W warning option has been renamed to + -Wextra, which is more easily understood. The older + spelling will be retained for backwards compatibility.
  • +
  • Substantial improvements in compile time have been made, particularly + for non-optimizing compilations.
  • +
+ +
+

GCC 3.4.0

+ +

Bug Fixes

+ +

+A vast number of bugs have been fixed in 3.4.0, too many to publish a +complete list here. +Follow +this link to query the Bugzilla database for the list of over 900 bugs +fixed in 3.4.0. This is the list of all bugs marked as resolved and fixed +in 3.4.0 that are not flagged as 3.4 regressions.

+ +
+

GCC 3.4.1

+ + +

Bug Fixes

+ +

This section lists the problem reports (PRs) from GCC's bug tracking +system that +are known to be fixed in the 3.4.1 release. This list might not be complete +(that is, it is possible that some PRs that have been fixed are not listed +here).

+ +

Bootstrap failures

+
    +
  • 10129 Ada bootstrap fails on PPC-Darwin - invalid assembler emitted - PIC related
  • +
  • 14576 [ARM] ICE in libiberty when building gcc-3.4 for arm-elf
  • +
  • 14760 A bug in configure.in prevents using both --program-suffix and --program-prefix
  • +
  • 14671 [hppa64] bootstrap fails: ICE in save_call_clobbered_regs, in caller_save.c
  • +
  • 15093 [alpha][Java] make bootstrap fails to configure libffi on Alpha
  • +
  • 15178 Solaris 9/x86 fails linking after stage 3
  • +
+

Multi-platform internal compiler errors (ICEs)

+
    +
  • 12753 (preprocessor) Memory corruption in preprocessor on bad input
  • +
  • 13985 ICE in gcc.c-torture/compile/930621-1.c
  • +
  • 14810 (c++) tree check failures with invalid code involving templates
  • +
  • 14883 (c++) ICE on invalid code, in cp_parser_lookup_name, in cp/parser.c
  • +
  • 15044 (c++) ICE on syntax error, template header
  • +
  • 15057 (c++) Compiling of conditional value throw constructs cause a segmentation violation
  • +
  • 15064 (c++) typeid of template parameter gives ICE
  • +
  • 15142 (c++) ICE when passing a string where a char* is expected in a throw statement
  • +
  • 15159 ICE in rtl_verify_flow_info_1
  • +
  • 15165 (c++) ICE in instantiate_template
  • +
  • 15193 Unary minus using pointer to V4SF vector causes -fforce-mem to exhaust all memory
  • +
  • 15209 (c++) Runs out of memory with packed structs
  • +
  • 15227 (c++) Trouble with invalid function definition
  • +
  • 15285 (c++) instantiate_type ICE when forming pointer to template function
  • +
  • 15299 (c++) ICE in resolve_overloaded_unification
  • +
  • 15329 (c++) ICE on constructor of member template
  • +
  • 15550 ICE in extract_insn, in recog.c
  • +
  • 15554 (c++) ICE in tsubst_copy, in cp/pt.c
  • +
  • 15640 (c++) ICE on invalid code in arg_assoc, in cp/name-lookup.c
  • +
  • 15666 [unit-at-a-time] Gcc abort on valid code
  • +
  • 15696 (c++) ICE with bad pointer-to-member code
  • +
  • 15701 (c++) ICE with friends and template template parameter
  • +
  • 15761 ICE in do_SUBST, in combine.c
  • +
  • 15829 (c++) ICE on Botan-1.3.13 due to -funroll-loops
  • +
+

Ada

+
    +
  • 14538 All RTEMS targets broken for gnat
  • +
+

C front end

+
    +
  • 12391 missing warning about assigning to an incomplete type
  • +
  • 14649 atan(1.0) should not be a constant expression
  • +
  • 15004 [unit-at-a-time] no warning for unused paramater in static function
  • +
  • 15749 --pedantic-errors behaves differently from --pedantic with C-compiler on GNU/Linux
  • +
+

C++ compiler and library

+
    +
  • 10646 non-const reference is incorrectly matched in a "const T" partial specialization
  • +
  • 12077 wcin.rdbuf()->in_avail() return value too high
  • +
  • 13598 enc_filebuf doesn't work
  • +
  • 14211 const_cast returns lvalue but should be rvalue
  • +
  • 14220 num_put::do_put() undesired float/double behavior
  • +
  • 14245 problem with user-defined allocators in std::basic_string
  • +
  • 14340 libstdc++ Debug mode: failure to convert iterator to const_iterator
  • +
  • 14600 __gnu_cxx::stdio_sync_filebuf should expose internal FILE*
  • +
  • 14668 no warning anymore for reevaluation of declaration
  • +
  • 14775 LFS (large file support) tests missing
  • +
  • 14821 Duplicate namespace alias declaration should not conflict
  • +
  • 14930 Friend declaration ignored
  • +
  • 14932 cannot use offsetof to get offsets of array elements in g++ 3.4.0
  • +
  • 14950 [non unit-at-a-time] always_inline does not mix with templates and -O0
  • +
  • 14962 g++ ignores #pragma redefine_extname
  • +
  • 14975 Segfault on low-level write error during imbue
  • +
  • 15002 Linewise stream input is unusably slow (std::string slow)
  • +
  • 15025 compiler accepts redeclaration of template as non-template
  • +
  • 15046 [arm] Math functions misdetected by cross configuration
  • +
  • 15069 a bit test on a variable of enum type is miscompiled
  • +
  • 15074 g++ -lsupc++ still links against libstdc++
  • +
  • 15083 spurious "statement has no effect" warning
  • +
  • 15096 parse error with templates and pointer to const member
  • +
  • 15287 combination of operator[] and operator .* fails in templates
  • +
  • 15317 __attribute__ unused in first parameter of constructor gives error
  • +
  • 15337 sizeof on incomplete type diagnostic
  • +
  • 15361 bitset<>::_Find_next fails
  • +
  • 15412 _GLIBCXX_ symbols symbols defined and used in different namespaces
  • +
  • 15427 valid code results in incomplete type error
  • +
  • 15471 Incorrect member pointer offsets in anonymous structs/unions
  • +
  • 15503 nested template problem
  • +
  • 15507 compiler hangs while laying out union
  • +
  • 15542 operator & and template definitions
  • +
  • 15565 SLES9: leading + sign for unsigned int with showpos
  • +
  • 15625 friend defined inside a template fails to find static function
  • +
  • 15629 Function templates, overloads, and friend name injection
  • +
  • 15742 'noreturn' attribute ignored in method of template functions.
  • +
  • 15775 Allocator::pointer consistently ignored
  • +
  • 15821 Duplicate namespace alias within namespace rejected
  • +
  • 15862 'enum yn' fails (confict with undeclared builtin)
  • +
  • 15875 rejects pointer to member in template
  • +
  • 15877 valid code using templates and anonymous enums is rejected
  • +
  • 15947 Puzzling error message for wrong destructor declaration in template class
  • +
  • 16020 cannot copy __gnu_debug::bitset
  • +
  • 16154 input iterator concept too restrictive
  • +
  • 16174 deducing top-level consts
  • +
+

Java

+
    +
  • 14315 Java compiler is not parallel make safe
  • +
+

Fortran

+
    +
  • 15151 [g77] incorrect logical i/o in 64-bit mode
  • +
+

Objective-C

+
    +
  • 7993 private variables cannot be shadowed in subclasses
  • +
+

Optimization bugs

+
    +
  • 15228 useless copies of floating point operands
  • +
  • 15345 [non-unit-at-a-time] unreferenced nested inline functions not optimized away
  • +
  • 15945 Incorrect floating point optimization
  • +
  • 15526 ftrapv aborts on 0 * (-1)
  • +
  • 14690 Miscompiled POOMA tests
  • +
  • 15112 GCC generates code to write to unchanging memory
  • +
+

Preprocessor

+
    +
  • 15067 Minor glitch in the source of cpp
  • +
+

Main driver program bugs

+
    +
  • 1963 collect2 interprets -oldstyle_liblookup as -o ldstyle_liblookup
  • +
+

x86-specific (Intel/AMD)

+
    +
  • 15717 Error: can't resolve `L0' {*ABS* section} - `xx' {*UND* section}
  • +
+

HPPA-specific

+
    +
  • 14782 GCC produces an unaligned data access at -O2
  • +
  • 14828 FAIL: gcc.c-torture/execute/20030408-1.c execution, -O2
  • +
  • 15202 ICE in reload_cse_simplify_operands, in postreload.c
  • +
+

IA64-specific

+
    +
  • 14610 __float80 constants incorrectly emitted
  • +
  • 14813 init_array sections are initialized in the wrong order
  • +
  • 14857 GCC segfault on duplicated asm statement
  • +
  • 15598 Gcc 3.4 ICE on valid code
  • +
  • 15653 Gcc 3.4 ICE on valid code
  • +
+

MIPS-specific

+
    +
  • 15189 wrong filling of delay slot with -march=mips1 -G0 -mno-split-addresses -mno-explicit-relocs
  • +
  • 15331 Assembler error building gnatlib on IRIX 6.5 with GNU as 2.14.91
  • +
  • 16144 Bogus reference to __divdf3 when -O1
  • +
  • 16176 Miscompilation of unaligned data in MIPS backend
  • +
+

PowerPC-specific

+
    +
  • 11591 ICE in gcc.dg/altivec-5.c
  • +
  • 12028 powerpc-eabispe produces bad sCOND operation
  • +
  • 14478 rs6000 geu/ltu patterns generate incorrect code
  • +
  • 14567 long double and va_arg complex args
  • +
  • 14715 Altivec stack layout may overlap gpr save with stack temps
  • +
  • 14902 (libstdc++) Stream checking functions fail when -pthread option is used.
  • +
  • 14924 Compiler ICE on valid code
  • +
  • 14960 -maltivec affects vector return with -mabi=no-altivec
  • +
  • 15106 vector varargs failure passing from altivec to non-altivec code for -m32
  • +
  • 16026 ICE in function.c:4804, assign_parms, when -mpowerpc64 & half-word operation
  • +
  • 15191 -maltivec -mabi=no-altivec results in mis-aligned lvx and stvx
  • +
  • 15662 Segmentation fault when an exception is thrown - even if try and catch are specified
  • +
+

s390-specific

+
    +
  • 15054 Bad code due to overlapping stack temporaries
  • +
+

SPARC-specific

+
    +
  • 15783 ICE with union assignment in 64-bit mode
  • +
  • 15626 GCC 3.4 emits "ld: warning: relocation error: R_SPARC_UA32"
  • +
+

x86-64-specific

+
    +
  • 14326 boehm-gc hardcodes to 3DNow! prefetch for x86_64
  • +
  • 14723 Backported -march=nocona from mainline
  • +
  • 15290 __float128 failed to pass to function properly
  • +
+

Cygwin/Mingw32-specific

+
    +
  • 15250 Option -mms-bitfields support on GCC 3.4 is not conformant to MS layout
  • +
  • 15551 -mtune=pentium4 -O2 with sjlj EH breaks stack probe worker on windows32 targets
  • +
+

Bugs specific to embedded processors

+
    +
  • 8309 [m68k] -m5200 produces erroneous SImode set of short varaible on stack
  • +
  • 13250 [SH] Gcc code for rotation clobbers the register, but gcc continues to use the register as if it was not clobbered
  • +
  • 13803 [coldfire] movqi operand constraints too restrictivefor TARGET_COLDFIRE
  • +
  • 14093 [SH] ICE for code when using -mhitachi option in SH
  • +
  • 14457 [m6811hc] ICE with simple c++ source
  • +
  • 14542 [m6811hc] ICE on simple source
  • +
  • 15100 [SH] cc1plus got hang-up on libstdc++-v3/testsuite/abi_check.cc
  • +
  • 15296 [CRIS] Delayed branch scheduling causing invalid code on cris-*
  • +
  • 15396 [SH] ICE with -O2 -fPIC
  • +
  • 15782 [coldfire] m68k_output_mi_thunk emits wrong code for ColdFire
  • +
+

Testsuite problems (compiler not affected)

+
    +
  • 11610 libstdc++ testcases 27_io/* don't work properly remotely
  • +
  • 15488 (libstdc++) possibly insufficient file permissions for executing test suite
  • +
  • 15489 (libstdc++) testsuite_files determined incorrectly
  • +
+

Documentation bugs

+
    +
  • 13928 (libstdc++) no whatis info in some man pages generated by doxygen
  • +
  • 14150 Ada documentation out of date
  • +
  • 14949 (c++) Need to document method visibility changes
  • +
  • 15123 libstdc++-doc: Allocators.3 manpage is empty
  • +
+ +
+

GCC 3.4.2

+ + +

Bug Fixes

+ +

This section lists the problem reports (PRs) from GCC's bug tracking +system that +are known to be fixed in the 3.4.2 release. This list might not be complete +(that is, it is possible that some PRs that have been fixed are not listed +here).

+ +

Bootstrap failures and issues

+
    +
  • 16469 [mips-sgi-irix5.3] bootstrap fails in libstdc++-v3/testsuite
  • +
  • 16344 [hppa-linux-gnu] libstdc++'s PCH built by profiledbootstrap does not work with the built compiler
  • +
  • 16842 [Solaris/x86] mkheaders can not find mkheaders.conf
  • +
+

Multi-platform internal compiler errors (ICEs)

+
    +
  • 12608 (c++) ICE: expected class 't', have 'x' (error_mark) in cp_parser_class_specifier, in cp/parser.c
  • +
  • 14492 ICE in loc_descriptor_from_tree, in dwarf2out.c
  • +
  • 15461 (c++) ICE due to NRV and inlining
  • +
  • 15890 (c++) ICE in c_expand_expr, in c-common.c
  • +
  • 16180 ICE: segmentation fault in RTL optimization
  • +
  • 16224 (c++) ICE in write_unscoped_name (template/namespace)
  • +
  • 16408 ICE: in delete_insn, in cfgrtl.c
  • +
  • 16529 (c++) ICE for: namespace-alias shall not be declared as the name of any other entity
  • +
  • 16698 (c++) ICE with exceptions and declaration of __cxa_throw
  • +
  • 16706 (c++) ICE in finish_member_declaration, in cp/semantics.c
  • +
  • 16810 (c++) Legal C++ program with cast gives ICE in build_ptrmemfunc
  • +
  • 16851 (c++) ICE when throwing a comma expression
  • +
  • 16870 (c++) Boost.Spirit causes ICE in tsubst, in cp/pt.c
  • +
  • 16904 (c++) ICE in finish_class_member_access_expr, in cp/typeck.c
  • +
  • 16905 (c++) ICE (segfault) with exceptions
  • +
  • 16964 (c++) ICE in cp_parser_class_specifier due to redefinition
  • +
  • 17068 (c++) ICE: tree check: expected class 'd', have 'x' (identifier_node) in dependent_template_p, in cp/pt.c
  • +
+

Preprocessor bugs

+
    +
  • 16366 Preprocessor option -remap causes memory corruption
  • +
+

Optimization

+
    +
  • 15345 unreferenced nested inline functions not optimized away
  • +
  • 16590 Incorrect execution when compiling with -O2
  • +
  • 16693 Bitwise AND is lost when used within a cast to an enum of the same precision
  • +
  • 17078 Jump into if(0) substatement fails
  • +
+

Problems in generated debug information

+
    +
  • 13956 incorrect stabs for nested local variables
  • +
+

C front end bugs

+
    +
  • 16684 GCC should not warn about redundant redeclarations of built-ins
  • +
+

C++ compiler and library

+
    +
  • 12658 Thread safety problems in locale::global() and locale::locale()
  • +
  • 13092 g++ accepts invalid pointer-to-member conversion
  • +
  • 15320 Excessive memory consumption
  • +
  • 16246 Incorrect template argument deduction
  • +
  • 16273 Memory exhausted when using nested classes and virtual functions
  • +
  • 16401 ostringstream in gcc 3.4.x very slow for big data
  • +
  • 16411 undefined reference to __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >::file()
  • +
  • 16489 G++ incorrectly rejects use of a null constant integral expression as a null constant pointer
  • +
  • 16618 offsetof fails with constant member
  • +
  • 16637 syntax error reported for valid input code
  • +
  • 16717 __attribute__((constructor)) broken in C++
  • +
  • 16813 compiler error in DEBUG version of range insertion std::map::insert
  • +
  • 16853 pointer-to-member initialization from incompatible one accepted
  • +
  • 16889 ambiguity is not detected
  • +
  • 16959 Segmentation fault in ios_base::sync_with_stdio
  • +
+

Java compiler and library

+
    +
  • 7587 direct threaded interpreter not thread-safe
  • +
  • 16473 ServerSocket accept() leaks file descriptors
  • +
  • 16478 Hash synchronization deadlock with finalizers
  • +
+

Alpha-specific

+
    +
  • 10695 ICE in dwarf2out_frame_debug_expr, in dwarf2out.c
  • +
  • 16974 could not split insn (ice in final_scan_insn, in final.c)
  • +
+

x86-specific

+
    +
  • 16298 ICE in output_operand
  • +
  • 17113 ICE with SSE2 intrinsics
  • +
+

x86-64 specific

+
    +
  • 14697 libstdc++ couldn't find 32bit libgcc_s
  • +
+

MIPS-specific

+
    +
  • 15869 [mips64] No NOP after LW (with -mips1 -O0)
  • +
  • 16325 [mips64] value profiling clobbers gp on mips
  • +
  • 16357 [mipsisa64-elf] ICE copying 7 bytes between extern char[]s
  • +
  • 16380 [mips64] Use of uninitialised register after dbra conversion
  • +
  • 16407 [mips64] Unaligned access to local variables
  • +
  • 16643 [mips64] verify_local_live_at_start ICE after crossjumping & cfgcleanup
  • +
+

ARM-specific

+
    +
  • 15927 THUMB -O2: strength-reduced iteration variable ends up off by 1
  • +
  • 15948 THUMB: ICE with non-commutative cbranch
  • +
  • 17019 THUMB: bad switch statement in md code for addsi3_cbranch_scratch
  • +
+

IA64-specific

+
    +
  • 16130 ICE on valid code: in bundling, in config/ia64/ia64.c (-mtune=merced)
  • +
  • 16142 ICE on valid code: in bundling, in config/ia64/ia64.c (-mtune=itanium)
  • +
  • 16278 Gcc failed to build Linux kernel with -mtune=merced
  • +
  • 16414 ICE on valid code: typo in comparison of asm_noperands result
  • +
  • 16445 ICE on valid code: don't count ignored insns
  • +
  • 16490 ICE (segfault) while compiling with -fprofile-use
  • +
  • 16683 ia64 does not honor SUBTARGET_EXTRA_SPECS
  • +
+

PowerPC-specific

+
    +
  • 16195 (ppc64): Miscompilation of GCC 3.3.x by 3.4.x
  • +
  • 16239 ICE on ppc64 (mozilla 1.7 compile, -O1 -fno-exceptions issue)
  • +
+

SPARC-specific

+
    +
  • 16199 ICE while compiling apache 2.0.49
  • +
  • 16416 -m64 doesn't imply -mcpu=v9 anymore
  • +
  • 16430 ICE when returning non-C aggregates larger than 16 bytes
  • +
+

Bugs specific to embedded processors

+
    +
  • 16379 [m32r] can't output large model function call of memcpy
  • +
  • 17093 [m32r] ICE with -msdata=use -O0
  • +
  • 17119 [m32r] ICE at switch case 0x8000
  • +
+

DJGPP-specific

+
    +
  • 15928 libstdc++ in 3.4.x doesn't cross-compile for djgpp
  • +
+

Alpha Tru64-specific

+
    +
  • 16210 libstdc++ gratuitously omits "long long" I/O
  • +
+

Testsuite, documentation issues (compiler is not affected):

+
    +
  • 15488 (libstdc++) possibly insufficient file permissions for executing test suite
  • +
  • 16250 ada/doctools runs makeinfo even in release tarball
  • +
+ +
+

GCC 3.4.3

+ +

This is the list +of problem reports (PRs) from GCC's bug tracking system that are +known to be fixed in the 3.4.3 release. This list might not be +complete (that is, it is possible that some PRs that have been fixed +are not listed here).

+ +

Bootstrap failures

+
    +
  • 17369 [ia64] Bootstrap failure with binutils-2.15.90.0.1.1
  • +
  • 17850 [arm-elf] bootstrap failure - libstdc++ uses strtold when undeclared
  • +
+

Internal compiler errors (ICEs) affecting multiple platforms

+
    +
  • 13948 (java) GCJ segmentation fault while compiling GL4Java .class files
  • +
  • 14492 ICE in loc_descriptor_from_tree, in dwarf2out.c
  • +
  • 16301 (c++) ICE when "strong" attribute is attached to a using directive
  • +
  • 16566 ICE with flexible arrays
  • +
  • 17023 ICE with nested functions in parameter declaration
  • +
  • 17027 ICE with noreturn function in loop at -O2
  • +
  • 17524 ICE in grokdeclarator, in cp/decl.c
  • +
  • 17826 (c++) ICE in cp_tree_equal
  • +
+

C and optimization bugs

+
    +
  • 15526 -ftrapv aborts on 0 * (-1)
  • +
  • 16999 #ident stopped working
  • +
  • 17503 quadratic behaviour in invalid_mode_change_p
  • +
  • 17581 Long long arithmetic fails inside a switch/case statement when compiled with -O2
  • +
  • 18129 -fwritable-strings doesn't work
  • +
+

C++ compiler and library bugs

+
    +
  • 10975 incorrect initial ostringstream::tellp()
  • +
  • 11722 Unbuffered filebuf::sgetn is slow
  • +
  • 14534 Unrecognizing static function as a template parameter when its return value is also templated
  • +
  • 15172 Copy constructor optimization in aggregate initialization
  • +
  • 15786 Bad error message for frequently occuring error.
  • +
  • 16162 Rejects valid member-template-definition
  • +
  • 16612 empty basic_strings can't live in shared memory
  • +
  • 16715 std::basic_iostream is instantiated when used, even though instantiations are already contained in libstdc++
  • +
  • 16848 code in /ext/demangle.h appears broken
  • +
  • 17132 GCC fails to eliminate function template specialization when argument deduction fails
  • +
  • 17259 One more _S_leaf incorrectly qualified with _RopeRep:: in ropeimpl.h
  • +
  • 17327 use of `enumeral_type' in template type unification
  • +
  • 17393 "unused variable '._0'" warning with -Wall
  • +
  • 17501 Confusion with member templates
  • +
  • 17537 g++ not passing -lstdc++ to linker when all command line arguments are libraries
  • +
  • 17585 usage of unqualified name of static member from within class not allowed
  • +
  • 17821 Poor diagnostic for using "." instead of "->"
  • +
  • 17829 wrong error: call of overloaded function is ambiguous
  • +
  • 17851 Misleading diagnostic for invalid function declarations with undeclared types
  • +
  • 17976 Destructor is called twice
  • +
  • 18020 rejects valid definition of enum value in template
  • +
  • 18093 bogus conflict in namespace aliasing
  • +
  • 18140 C++ parser bug when using >> in templates
  • +
+

Fortran

+
    +
  • 17541 data statements with double precision constants fail
  • +
+

x86-specific

+
    +
  • 17853 -O2 ICE for MMX testcase
  • +
+

Sparc-specific

+
    +
  • 17245 ICE compiling gsl-1.5 statistics/lag1.c
  • +
+

Darwin-specific

+
    +
  • 17167 FATAL:Symbol L_foo$stub already defined.
  • +
+

AIX-specific

+
    +
  • 17277 could not catch an exception when specified -maix64
  • +
+

Solaris-specific

+
    +
  • 17505 <cmath> calls acosf(), ceilf(), and other functions missing from system libraries
  • +
+

HP/UX specific:

+
    +
  • 17684 /usr/ccs/bin/ld: Can't create libgcc_s.sl
  • +
+

ARM-specific

+
    +
  • 17384 ICE with mode attribute on structures
  • +
+

MIPS-specific

+
    +
  • 17770 No NOP after LWL with -mips1
  • +
+

Other embedded target specific

+
    +
  • 11476 [arc-elf] gcc ICE on newlib's vfprintf.c
  • +
  • 14064 [avr-elf] -fdata-sections triggers ICE
  • +
  • 14678 [m68hc11-elf] gcc ICE
  • +
  • 15583 [powerpc-rtems] powerpc-rtems lacks __USE_INIT_FINI__
  • +
  • 15790 [i686-coff] Alignment error building gcc with i686-coff target
  • +
  • 15886 [SH] Miscompilation with -O2 -fPIC
  • +
  • 16884 [avr-elf] [fweb related] bug while initializing variables
  • +
+

Bugs relating to debugger support

+
    +
  • 13841 missing debug info for _Complex function arguments
  • +
  • 15860 [big-endian targets] No DW_AT_location debug info is emitted for formal arguments to a function that uses "register" qualifiers
  • +
+

Testsuite issues (compiler not affected)

+
    +
  • 17465 Testsuite in libffi overrides LD_LIBRARY_PATH
  • +
  • 17469 Testsuite in libstdc++ overrides LD_LIBRARY_PATH
  • +
  • 18138 [mips-sgi-irix6.5] libgcc_s.so.1 not found by 64-bit testsuite
  • +
+

Documentation

+
    +
  • 15498 typo in gcc manual: non-existing locale example en_UK, should be en_GB
  • +
  • 15747 [mips-sgi-irix5.3] /bin/sh hangs during bootstrap: document broken shell
  • +
  • 16406 USE_LD_AS_NEEDED undocumented
  • +
+ + + + +
+ +

Please send FSF & GNU inquiries & questions to +gnu@gnu.org. +There are also other ways +to contact the FSF.

+ +

These pages are maintained by +the GCC team.

+ +
For questions related to the use of GCC, please consult these web +pages and the GCC manuals. If +that fails, the gcc-help@gcc.gnu.org +mailing list might help.
+Please send comments on these web pages and the development of GCC to our +developer mailing list at gcc@gnu.org +or gcc@gcc.gnu.org. All of our lists +have public archives. +
+ +

Copyright (C) Free Software Foundation, Inc., +59 Temple Place - Suite 330, Boston, MA 02111, USA.

+ +

Verbatim copying and distribution of this entire article is +permitted in any medium, provided this notice is preserved.

+ +
+ Last modified 2004-11-09 + + + Valid XHTML 1.0 + + +
+ + + + + --- gcc-3.4-3.4.3.orig/debian/relink +++ gcc-3.4-3.4.3/debian/relink @@ -0,0 +1,74 @@ +#! /bin/sh +# +# Relink GNAT utilities using the shared library +# + +set -e + +pwd=`pwd` + +# why? +chmod a-w build/gcc/ada/rts/*.ali + +rm -rf tmp +ln -s $pwd/build/gcc/ada/rts/libgnat.so.1 tmp/libgnat.so + +LD_LIBRARY_PATH=$pwd/tmp +export LD_LIBRARY_PATH + +PATH=$pwd/debian:$pwd/tmp:$PATH +export PATH + +echo "#! /bin/sh" > tmp/dgcc +echo "$pwd/build/gcc/xgcc -B$pwd/build/gcc/ "'"$@"' >> tmp/dgcc +chmod 755 tmp/dgcc + +echo "#! /bin/sh" > tmp/dgnatlink +echo "$pwd/build/gcc/gnatlink --GCC=dgcc "'"$@"' >> tmp/dgnatlink +chmod 755 tmp/dgnatlink + +GMCMD="$pwd/build/gcc/gnatmake -I- -Irts -I. -a -m --GNATBIND=$pwd/build/gcc/gnatbind --GNATLINK=dgnatlink --GCC=dgcc" + +#cd $pwd/build/gcc/ada +#make CFLAGS="-O2" CC="../xgcc -B../" STAGE_PREFIX=../ a-link.o a-gmem.o +#cd $pwd + +[ -f build/gcc/gnatmake.old ] || cp -p build/gcc/gnatmake build/gcc/gnatmake.old +[ -f build/gcc/gnatlink.old ] || cp -p build/gcc/gnatlink build/gcc/gnatlink.old + +make -C build/gcc/ada \ + CFLAGS='-gnatp -gnata -O2 ' \ + ADA_INCLUDES="-I." \ + CC="../xgcc -B../" \ + STAGE_PREFIX=../ \ + ../gnatmake ../gnatlink + +mv gnatmake bgnatmake +mv gnatlink bgnatlink +exit 0 + +cd build/gcc/ada +for i in ../gnatchop ../gnatcmd \ + ../gnatkr ../gnatlbr \ + ../gnatls ../gnatmake \ + ../gnatprep ../gnatpsys \ + ../gnatxref ../gnatfind +do + rm -f $i + $GMCMD -O2 -gnatp -o $i `basename $i`.adb -largs -L.. +done + +rm -f ../gnatmem +$GMCMD -O2 -gnatp -o ../gnatmem gnatmem.adb -largs -L.. a-gmem.o +$GMCMD -O2 -gnatp -o ../gnatlink gnatlink -largs -L.. a-link.o +rm -f ../gnatpsta + +make CFLAGS="-O2" CC="../xgcc -B../" a-gettty.o a-deftar.o +$GMCMD -O2 -gnatp -o ../gnatpsta gnatpsta -largs -L.. a-gettty.o a-deftar.o +rm -f ../gnatbl + +make CFLAGS="-O2" CC="../xgcc -B../" gnatbl.o +../xgcc -B../ -o ../gnatbl gnatbl.o -L.. -lgnat +rm -f ../bgnatmake ../bgnatlink ../debian/dgcc ../debian/dgnatlink + +chmod +w rts/*.ali --- gcc-3.4-3.4.3.orig/debian/patches/libstdc++-doclink.dpatch +++ gcc-3.4-3.4.3/debian/patches/libstdc++-doclink.dpatch @@ -0,0 +1,49 @@ +#! /bin/sh -e + +# DP: adjust hrefs to point to the local documentation + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- libstdc++-v3/docs/doxygen/mainpage.html~ 2004-02-21 13:49:31.000000000 +0100 ++++ libstdc++-v3/docs/doxygen/mainpage.html 2004-02-21 13:59:02.000000000 +0100 +@@ -30,8 +30,8 @@ +

There are two types of documentation for libstdc++-v3. One is the + distribution documentation, which can be read online at + http://gcc.gnu.org/onlinedocs/libstdc++/documentation.html +- or offline from docs/html/documentation.html in the library source +- directory. ++ or offline from ++ /usr/share/doc/gcc-3.4/libstdc++/html/documentation.html. +

+ +

The other type is the source documentation, of which this is the first page. +@@ -78,7 +78,7 @@ + +

License, Copyright, and Other Lawyerly Verbosity

+

The libstdc++-v3 documentation is released under +- ++ + these terms. +

+

Part of the generated documentation involved comments and notes from --- gcc-3.4-3.4.3.orig/debian/patches/protector.dpatch +++ gcc-3.4-3.4.3/debian/patches/protector.dpatch @@ -0,0 +1,45 @@ +#! /bin/sh -e + +# DP: gcc prototector patch: http://www.trl.ibm.com/projects/security/ssp/ + +# the basename of the protector tarball. the tarball is searched in the +# top level package directory. If it's not found, a uuencoded tarball +# is searched in debian/patches. + +pbase=protector-3.4-2.1 + +dir=./ +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi + +case "$1" in + -patch) + rm -rf protector + mkdir protector + ( + cd protector; + if [ -f ../$pbase.tar.gz ]; then + tar xfz ../$pbase.tar.gz + else + uudecode ../debian/patches/protector.uue; + tar xfz $pbase.tar.gz + fi + ) + (cd protector && tar cf - gcc) | (cd ${dir} && tar xvf -) + patch $pdir -f --no-backup-if-mismatch -p0 < protector/protector.dif + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < protector/protector.dif + rm -f ${dir}gcc/protector.[ch] + rm -rf protector + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 --- gcc-3.4-3.4.3.orig/debian/patches/hppa-libffi.dpatch +++ gcc-3.4-3.4.3/debian/patches/hppa-libffi.dpatch @@ -0,0 +1,1132 @@ +#! /bin/sh -e + +# DP: libffi support for hppa + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + cd ${dir}libffi && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +2004-03-13 Matthias Klose + + * Makefile.am: Update + * Makefile.in: Regenerate. + * src/pa/ffi.h.in: Remove. + * src/pa/ffitarget.h: New file. + +2004-02-10 Randolph Chung + + * Makefile.am: Add PA support. + * Makefile.in: Regenerate. + * include/Makefile.in: Regenerate. + * configure.in: Add PA target. + * configure: Regenerate. + * src/pa/ffi.c: New file. + * src/pa/ffi.h.in: Add PA support. + * src/pa/linux.S: New file. + * prep_cif.c: Add PA support. + +diff -urN libffi.old/Makefile.am libffi/Makefile.am +--- libffi.old/Makefile.am 2004-03-20 19:32:43.000000000 +0100 ++++ libffi/Makefile.am 2004-03-20 19:38:44.000000000 +0100 +@@ -10,6 +10,7 @@ + src/mips/ffi.c src/mips/n32.S src/mips/o32.S \ + src/mips/ffitarget.h \ + src/m68k/ffi.c src/m68k/sysv.S src/m68k/ffitarget.h \ ++ src/pa/ffi.c src/pa/linux.S src/pa/ffitarget.h \ + src/powerpc/ffi.c src/powerpc/sysv.S \ + src/powerpc/linux64.S src/powerpc/linux64_closure.S \ + src/powerpc/ppc_closure.S src/powerpc/asm.h \ +@@ -95,6 +96,7 @@ + TARGET_SRC_ALPHA = src/alpha/ffi.c src/alpha/osf.S + TARGET_SRC_IA64 = src/ia64/ffi.c src/ia64/unix.S + TARGET_SRC_M68K = src/m68k/ffi.c src/m68k/sysv.S ++TARGET_SRC_PA = src/pa/ffi.c src/pa/linux.S + TARGET_SRC_POWERPC = src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/ppc_closure.S src/powerpc/linux64.S src/powerpc/linux64_closure.S + TARGET_SRC_POWERPC_AIX = src/powerpc/ffi_darwin.c src/powerpc/aix.S src/powerpc/aix_closure.S + TARGET_SRC_POWERPC_DARWIN = src/powerpc/ffi_darwin.c src/powerpc/darwin.S src/powerpc/darwin_closure.S +@@ -172,6 +174,10 @@ + libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_SH64) + libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_SH64) + endif ++if PA ++libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_PA) ++libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_PA) ++endif + + AM_CFLAGS = -Wall -g -fexceptions + +diff -urN libffi.old/Makefile.in libffi/Makefile.in +--- libffi.old/Makefile.in 2003-11-24 00:52:28.000000000 +0100 ++++ libffi/Makefile.in 2004-03-20 19:47:00.000000000 +0100 +@@ -101,6 +101,7 @@ + src/mips/ffi.c src/mips/n32.S src/mips/o32.S \ + src/mips/ffitarget.h \ + src/m68k/ffi.c src/m68k/sysv.S src/m68k/ffitarget.h \ ++ src/pa/ffi.c src/pa/linux.S src/pa/ffitarget.h \ + src/powerpc/ffi.c src/powerpc/sysv.S \ + src/powerpc/linux64.S src/powerpc/linux64_closure.S \ + src/powerpc/ppc_closure.S src/powerpc/asm.h \ +@@ -179,6 +180,7 @@ + TARGET_SRC_ALPHA = src/alpha/ffi.c src/alpha/osf.S + TARGET_SRC_IA64 = src/ia64/ffi.c src/ia64/unix.S + TARGET_SRC_M68K = src/m68k/ffi.c src/m68k/sysv.S ++TARGET_SRC_PA = src/pa/ffi.c src/pa/linux.S + TARGET_SRC_POWERPC = src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/ppc_closure.S src/powerpc/linux64.S src/powerpc/linux64_closure.S + TARGET_SRC_POWERPC_AIX = src/powerpc/ffi_darwin.c src/powerpc/aix.S src/powerpc/aix_closure.S + TARGET_SRC_POWERPC_DARWIN = src/powerpc/ffi_darwin.c src/powerpc/darwin.S src/powerpc/darwin_closure.S +@@ -199,6 +201,7 @@ + @ALPHA_TRUE@libffi_la_SOURCES = @ALPHA_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_ALPHA) + @IA64_TRUE@libffi_la_SOURCES = @IA64_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_IA64) + @M68K_TRUE@libffi_la_SOURCES = @M68K_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_M68K) ++@PA_TRUE@libffi_la_SOURCES = @PA_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_PA) + @POWERPC_TRUE@libffi_la_SOURCES = @POWERPC_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC) + @POWERPC_AIX_TRUE@libffi_la_SOURCES = @POWERPC_AIX_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC_AIX) + @POWERPC_DARWIN_TRUE@libffi_la_SOURCES = @POWERPC_DARWIN_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC_DARWIN) +@@ -215,6 +218,7 @@ + @ALPHA_TRUE@libffi_convenience_la_SOURCES = @ALPHA_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_ALPHA) + @IA64_TRUE@libffi_convenience_la_SOURCES = @IA64_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_IA64) + @M68K_TRUE@libffi_convenience_la_SOURCES = @M68K_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_M68K) ++@PA_TRUE@libffi_convenience_la_SOURCES = @PA_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_PA) + @POWERPC_TRUE@libffi_convenience_la_SOURCES = @POWERPC_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC) + @POWERPC_AIX_TRUE@libffi_convenience_la_SOURCES = @POWERPC_AIX_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC_AIX) + @POWERPC_DARWIN_TRUE@libffi_convenience_la_SOURCES = @POWERPC_DARWIN_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC_DARWIN) +@@ -260,6 +264,9 @@ + @ARM_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo src/prep_cif.lo \ + @ARM_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \ + @ARM_TRUE@src/arm/sysv.lo src/arm/ffi.lo ++@PA_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo src/prep_cif.lo \ ++@PA_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \ ++@PA_TRUE@src/pa/ffi.lo src/pa/linux.lo + @POWERPC_AIX_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo \ + @POWERPC_AIX_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \ + @POWERPC_AIX_TRUE@src/java_raw_api.lo src/powerpc/ffi_darwin.lo \ +@@ -316,6 +323,9 @@ + @ARM_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo src/types.lo \ + @ARM_TRUE@src/raw_api.lo src/java_raw_api.lo src/arm/sysv.lo \ + @ARM_TRUE@src/arm/ffi.lo ++@PA_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo src/types.lo \ ++@PA_TRUE@src/raw_api.lo src/java_raw_api.lo src/pa/linux.lo \ ++@PA_TRUE@src/pa/ffi.lo + @POWERPC_AIX_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \ + @POWERPC_AIX_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \ + @POWERPC_AIX_TRUE@src/powerpc/ffi_darwin.lo src/powerpc/aix.lo \ +@@ -608,7 +618,7 @@ + mkdir $(distdir) + -chmod 777 $(distdir) + $(mkinstalldirs) $(distdir)/src/alpha $(distdir)/src/arm \ +- $(distdir)/src/m68k $(distdir)/src/mips \ ++ $(distdir)/src/m68k $(distdir)/src/mips $(distdir)/src/pa \ + $(distdir)/src/powerpc $(distdir)/src/s390 $(distdir)/src/sh \ + $(distdir)/src/sh64 $(distdir)/src/sparc $(distdir)/src/x86 + @for file in $(DISTFILES); do \ +diff -urN libffi.old/configure.in libffi/configure.in +--- libffi.old/configure.in 2004-03-20 19:32:43.000000000 +0100 ++++ libffi/configure.in 2004-03-20 19:33:57.000000000 +0100 +@@ -85,6 +85,7 @@ + x86_64-*-linux*) TARGET=X86_64; TARGETDIR=x86;; + sh-*-linux* | sh[[34]]*-*-linux*) TARGET=SH; TARGETDIR=sh;; + sh64-*-linux* | sh5*-*-linux*) TARGET=SH64; TARGETDIR=sh64;; ++hppa-*-linux* | parisc-*-linux*) TARGET=PA; TARGETDIR=pa;; + esac + + AC_SUBST(AM_RUNTESTFLAGS) +@@ -109,6 +110,7 @@ + AM_CONDITIONAL(X86_64, test x$TARGET = xX86_64) + AM_CONDITIONAL(SH, test x$TARGET = xSH) + AM_CONDITIONAL(SH64, test x$TARGET = xSH64) ++AM_CONDITIONAL(PA, test x$TARGET = xPA) + + case x$TARGET in + xMIPS*) TARGET=MIPS ;; +diff -urN libffi.old/src/pa/ffi.c libffi/src/pa/ffi.c +--- libffi.old/src/pa/ffi.c 1970-01-01 01:00:00.000000000 +0100 ++++ libffi/src/pa/ffi.c 2004-03-20 19:33:57.000000000 +0100 +@@ -0,0 +1,603 @@ ++/* ----------------------------------------------------------------------- ++ ffi.c - (c) 2003-2004 Randolph Chung ++ ++ HPPA Foreign Function Interface ++ ++ Permission is hereby granted, free of charge, to any person obtaining ++ a copy of this software and associated documentation files (the ++ ``Software''), to deal in the Software without restriction, including ++ without limitation the rights to use, copy, modify, merge, publish, ++ distribute, sublicense, and/or sell copies of the Software, and to ++ permit persons to whom the Software is furnished to do so, subject to ++ the following conditions: ++ ++ The above copyright notice and this permission notice shall be included ++ in all copies or substantial portions of the Software. ++ ++ THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS ++ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ++ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. ++ IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR ++ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ++ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ++ OTHER DEALINGS IN THE SOFTWARE. ++ ----------------------------------------------------------------------- */ ++ ++#include ++#include ++ ++#include ++ ++#define ROUND_UP(v, a) (((size_t)(v) + (a) - 1) & ~((a) - 1)) ++#define ROUND_DOWN(v, a) (((size_t)(v) - (a) + 1) & ~((a) - 1)) ++#define MIN_STACK_SIZE 64 ++#define FIRST_ARG_SLOT 9 ++#define DEBUG_LEVEL 0 ++ ++#define fldw(addr, fpreg) asm volatile ("fldw 0(%0), %%" #fpreg "L" : : "r"(addr) : #fpreg) ++#define fstw(fpreg, addr) asm volatile ("fstw %%" #fpreg "L, 0(%0)" : : "r"(addr)) ++#define fldd(addr, fpreg) asm volatile ("fldd 0(%0), %%" #fpreg : : "r"(addr) : #fpreg) ++#define fstd(fpreg, addr) asm volatile ("fstd %%" #fpreg "L, 0(%0)" : : "r"(addr)) ++ ++#define debug(lvl, x...) do { if (lvl <= DEBUG_LEVEL) { printf(x); } } while (0) ++ ++static inline int ffi_struct_type(ffi_type *t) ++{ ++ size_t sz = t->size; ++ ++ /* Small structure results are passed in registers, ++ larger ones are passed by pointer. */ ++ ++ if (sz <= 1) ++ return FFI_TYPE_UINT8; ++ else if (sz == 2) ++ return FFI_TYPE_UINT16; ++ else if (sz == 3) ++ return FFI_TYPE_SMALL_STRUCT1; ++ else if (sz == 4) ++ return FFI_TYPE_UINT32; ++ else if (sz <= 6) ++ return FFI_TYPE_SMALL_STRUCT2; ++ else if (sz <= 8) ++ return FFI_TYPE_UINT64; ++ else ++ return FFI_TYPE_STRUCT; /* else, we pass it by pointer. */ ++} ++ ++/* PA has a downward growing stack, which looks like this: ++ ++ Offset ++ [ Variable args ] ++ SP = (4*(n+9)) arg word N ++ ... ++ SP-52 arg word 4 ++ [ Fixed args ] ++ SP-48 arg word 3 ++ SP-44 arg word 2 ++ SP-40 arg word 1 ++ SP-36 arg word 0 ++ [ Frame marker ] ++ ... ++ SP-20 RP ++ SP-4 previous SP ++ ++ First 4 non-FP 32-bit args are passed in gr26, gr25, gr24 and gr23 ++ First 2 non-FP 64-bit args are passed in register pairs, starting ++ on an even numbered register (i.e. r26/r25 and r24+r23) ++ First 4 FP 32-bit arguments are passed in fr4L, fr5L, fr6L and fr7L ++ First 2 FP 64-bit arguments are passed in fr5 and fr7 ++ The rest are passed on the stack starting at SP-52, but 64-bit ++ arguments need to be aligned to an 8-byte boundary ++ ++ This means we can have holes either in the register allocation, ++ or in the stack. */ ++ ++/* ffi_prep_args is called by the assembly routine once stack space ++ has been allocated for the function's arguments ++ ++ The following code will put everything into the stack frame ++ (which was allocated by the asm routine), and on return ++ the asm routine will load the arguments that should be ++ passed by register into the appropriate registers ++ ++ NOTE: We load floating point args in this function... that means we ++ assume gcc will not mess with fp regs in here. */ ++ ++/*@-exportheader@*/ ++void ffi_prep_args_LINUX(UINT32 *stack, extended_cif *ecif, unsigned bytes) ++/*@=exportheader@*/ ++{ ++ register unsigned int i; ++ register ffi_type **p_arg; ++ register void **p_argv; ++ unsigned int slot = FIRST_ARG_SLOT - 1; ++ char *dest_cpy; ++ ++ debug(1, "%s: stack = %p, ecif = %p, bytes = %u\n", __FUNCTION__, stack, ecif, bytes); ++ ++ p_arg = ecif->cif->arg_types; ++ p_argv = ecif->avalue; ++ ++ for (i = 0; i < ecif->cif->nargs; i++) ++ { ++ int type = (*p_arg)->type; ++ ++ switch (type) ++ { ++ case FFI_TYPE_SINT8: ++ slot++; ++ *(SINT32 *)(stack - slot) = *(SINT8 *)(*p_argv); ++ break; ++ ++ case FFI_TYPE_UINT8: ++ slot++; ++ *(UINT32 *)(stack - slot) = *(UINT8 *)(*p_argv); ++ break; ++ ++ case FFI_TYPE_SINT16: ++ slot++; ++ *(SINT32 *)(stack - slot) = *(SINT16 *)(*p_argv); ++ break; ++ ++ case FFI_TYPE_UINT16: ++ slot++; ++ *(UINT32 *)(stack - slot) = *(UINT16 *)(*p_argv); ++ break; ++ ++ case FFI_TYPE_UINT32: ++ case FFI_TYPE_SINT32: ++ case FFI_TYPE_POINTER: ++ slot++; ++ debug(3, "Storing UINT32 %u in slot %u\n", *(UINT32 *)(*p_argv), slot); ++ *(UINT32 *)(stack - slot) = *(UINT32 *)(*p_argv); ++ break; ++ ++ case FFI_TYPE_UINT64: ++ case FFI_TYPE_SINT64: ++ slot += 2; ++ if (slot & 1) ++ slot++; ++ ++ *(UINT32 *)(stack - slot) = (*(UINT64 *)(*p_argv)) >> 32; ++ *(UINT32 *)(stack - slot + 1) = (*(UINT64 *)(*p_argv)) & 0xffffffffUL; ++ break; ++ ++ case FFI_TYPE_FLOAT: ++ /* First 4 args go in fr4L - fr7L */ ++ slot++; ++ switch (slot - FIRST_ARG_SLOT) ++ { ++ case 0: fldw(*p_argv, fr4); break; ++ case 1: fldw(*p_argv, fr5); break; ++ case 2: fldw(*p_argv, fr6); break; ++ case 3: fldw(*p_argv, fr7); break; ++ default: ++ /* Other ones are just passed on the stack. */ ++ debug(3, "Storing UINT32(float) in slot %u\n", slot); ++ *(UINT32 *)(stack - slot) = *(UINT32 *)(*p_argv); ++ break; ++ } ++ break; ++ ++ case FFI_TYPE_DOUBLE: ++ slot += 2; ++ if (slot & 1) ++ slot++; ++ switch (slot - FIRST_ARG_SLOT + 1) ++ { ++ /* First 2 args go in fr5, fr7 */ ++ case 2: fldd(*p_argv, fr5); break; ++ case 4: fldd(*p_argv, fr7); break; ++ default: ++ debug(3, "Storing UINT64(double) at slot %u\n", slot); ++ *(UINT64 *)(stack - slot) = *(UINT64 *)(*p_argv); ++ break; ++ } ++ break; ++ ++ case FFI_TYPE_STRUCT: ++ ++ /* Structs smaller or equal than 4 bytes are passed in one ++ register. Structs smaller or equal 8 bytes are passed in two ++ registers. Larger structures are passed by pointer. */ ++ ++ if((*p_arg)->size <= 4) ++ { ++ slot++; ++ dest_cpy = (char *)(stack - slot); ++ dest_cpy += 4 - (*p_arg)->size; ++ memcpy((char *)dest_cpy, (char *)*p_argv, (*p_arg)->size); ++ } ++ else if ((*p_arg)->size <= 8) ++ { ++ slot += 2; ++ if (slot & 1) ++ slot++; ++ dest_cpy = (char *)(stack - slot); ++ dest_cpy += 8 - (*p_arg)->size; ++ memcpy((char *)dest_cpy, (char *)*p_argv, (*p_arg)->size); ++ } ++ else ++ { ++ slot++; ++ *(UINT32 *)(stack - slot) = (UINT32)(*p_argv); ++ } ++ break; ++ ++ default: ++ FFI_ASSERT(0); ++ } ++ ++ p_arg++; ++ p_argv++; ++ } ++ ++ /* Make sure we didn't mess up and scribble on the stack. */ ++ { ++ int n; ++ ++ debug(5, "Stack setup:\n"); ++ for (n = 0; n < (bytes + 3) / 4; n++) ++ { ++ if ((n%4) == 0) { debug(5, "\n%08x: ", (unsigned int)(stack - n)); } ++ debug(5, "%08x ", *(stack - n)); ++ } ++ debug(5, "\n"); ++ } ++ ++ FFI_ASSERT(slot * 4 <= bytes); ++ ++ return; ++} ++ ++static void ffi_size_stack_LINUX(ffi_cif *cif) ++{ ++ ffi_type **ptr; ++ int i; ++ int z = 0; /* # stack slots */ ++ ++ for (ptr = cif->arg_types, i = 0; i < cif->nargs; ptr++, i++) ++ { ++ int type = (*ptr)->type; ++ ++ switch (type) ++ { ++ case FFI_TYPE_DOUBLE: ++ case FFI_TYPE_UINT64: ++ case FFI_TYPE_SINT64: ++ z += 2 + (z & 1); /* must start on even regs, so we may waste one */ ++ break; ++ ++ case FFI_TYPE_STRUCT: ++ z += 1; /* pass by ptr, callee will copy */ ++ break; ++ ++ default: /* <= 32-bit values */ ++ z++; ++ } ++ } ++ ++ /* We can fit up to 6 args in the default 64-byte stack frame, ++ if we need more, we need more stack. */ ++ if (z <= 6) ++ cif->bytes = MIN_STACK_SIZE; /* min stack size */ ++ else ++ cif->bytes = 64 + ROUND_UP((z - 6) * sizeof(UINT32), MIN_STACK_SIZE); ++ ++ debug(3, "Calculated stack size is %u bytes\n", cif->bytes); ++} ++ ++/* Perform machine dependent cif processing. */ ++ffi_status ffi_prep_cif_machdep(ffi_cif *cif) ++{ ++ /* Set the return type flag */ ++ switch (cif->rtype->type) ++ { ++ case FFI_TYPE_VOID: ++ case FFI_TYPE_FLOAT: ++ case FFI_TYPE_DOUBLE: ++ cif->flags = (unsigned) cif->rtype->type; ++ break; ++ ++ case FFI_TYPE_STRUCT: ++ /* For the return type we have to check the size of the structures. ++ If the size is smaller or equal 4 bytes, the result is given back ++ in one register. If the size is smaller or equal 8 bytes than we ++ return the result in two registers. But if the size is bigger than ++ 8 bytes, we work with pointers. */ ++ cif->flags = ffi_struct_type(cif->rtype); ++ break; ++ ++ case FFI_TYPE_UINT64: ++ case FFI_TYPE_SINT64: ++ cif->flags = FFI_TYPE_UINT64; ++ break; ++ ++ default: ++ cif->flags = FFI_TYPE_INT; ++ break; ++ } ++ ++ /* Lucky us, because of the unique PA ABI we get to do our ++ own stack sizing. */ ++ switch (cif->abi) ++ { ++ case FFI_LINUX: ++ ffi_size_stack_LINUX(cif); ++ break; ++ ++ default: ++ FFI_ASSERT(0); ++ break; ++ } ++ ++ return FFI_OK; ++} ++ ++/*@-declundef@*/ ++/*@-exportheader@*/ ++extern void ffi_call_LINUX(void (*)(UINT32 *, extended_cif *, unsigned), ++ /*@out@*/ extended_cif *, ++ unsigned, unsigned, ++ /*@out@*/ unsigned *, ++ void (*fn)()); ++/*@=declundef@*/ ++/*@=exportheader@*/ ++ ++void ffi_call(/*@dependent@*/ ffi_cif *cif, ++ void (*fn)(), ++ /*@out@*/ void *rvalue, ++ /*@dependent@*/ void **avalue) ++{ ++ extended_cif ecif; ++ ++ ecif.cif = cif; ++ ecif.avalue = avalue; ++ ++ /* If the return value is a struct and we don't have a return ++ value address then we need to make one. */ ++ ++ if ((rvalue == NULL) && ++ (cif->rtype->type == FFI_TYPE_STRUCT)) ++ { ++ /*@-sysunrecog@*/ ++ ecif.rvalue = alloca(cif->rtype->size); ++ /*@=sysunrecog@*/ ++ } ++ else ++ ecif.rvalue = rvalue; ++ ++ ++ switch (cif->abi) ++ { ++ case FFI_LINUX: ++ /*@-usedef@*/ ++ debug(2, "Calling ffi_call_LINUX: ecif=%p, bytes=%u, flags=%u, rvalue=%p, fn=%p\n", &ecif, cif->bytes, cif->flags, ecif.rvalue, (void *)fn); ++ ffi_call_LINUX(ffi_prep_args_LINUX, &ecif, cif->bytes, ++ cif->flags, ecif.rvalue, fn); ++ /*@=usedef@*/ ++ break; ++ ++ default: ++ FFI_ASSERT(0); ++ break; ++ } ++} ++ ++#if FFI_CLOSURES ++/* This is more-or-less an inverse of ffi_call -- we have arguments on ++ the stack, and we need to fill them into a cif structure and invoke ++ the user function. This really ought to be in asm to make sure ++ the compiler doesn't do things we don't expect. */ ++UINT32 ffi_closure_inner_LINUX(ffi_closure *closure, UINT32 *stack) ++{ ++ ffi_cif *cif; ++ void **avalue; ++ void *rvalue; ++ UINT32 ret[2]; /* function can return up to 64-bits in registers */ ++ ffi_type **p_arg; ++ char *tmp; ++ int i, avn, slot = FIRST_ARG_SLOT - 1; ++ register UINT32 r28 asm("r28"); ++ ++ cif = closure->cif; ++ ++ /* If returning via structure, callee will write to our pointer. */ ++ if (cif->flags == FFI_TYPE_STRUCT) ++ rvalue = (void *)r28; ++ else ++ rvalue = &ret[0]; ++ ++ avalue = (void **)alloca(cif->nargs * FFI_SIZEOF_ARG); ++ avn = cif->nargs; ++ p_arg = cif->arg_types; ++ ++ for (i = 0; i < avn; i++) ++ { ++ int type = (*p_arg)->type; ++ ++ switch (type) ++ { ++ case FFI_TYPE_SINT8: ++ case FFI_TYPE_UINT8: ++ case FFI_TYPE_SINT16: ++ case FFI_TYPE_UINT16: ++ case FFI_TYPE_SINT32: ++ case FFI_TYPE_UINT32: ++ case FFI_TYPE_POINTER: ++ slot++; ++ avalue[i] = (char *)(stack - slot) + sizeof(UINT32) - (*p_arg)->size; ++ break; ++ ++ case FFI_TYPE_SINT64: ++ case FFI_TYPE_UINT64: ++ slot += 2; ++ if (slot & 1) ++ slot++; ++ avalue[i] = (void *)(stack - slot); ++ break; ++ ++ case FFI_TYPE_FLOAT: ++ slot++; ++ switch (slot - FIRST_ARG_SLOT) ++ { ++ case 0: fstw(fr4, (void *)(stack - slot)); break; ++ case 1: fstw(fr5, (void *)(stack - slot)); break; ++ case 2: fstw(fr6, (void *)(stack - slot)); break; ++ case 3: fstw(fr7, (void *)(stack - slot)); break; ++ } ++ avalue[i] = (void *)(stack - slot); ++ break; ++ ++ case FFI_TYPE_DOUBLE: ++ slot += 2; ++ if (slot & 1) ++ slot++; ++ switch (slot - FIRST_ARG_SLOT + 1) ++ { ++ case 2: fstd(fr5, (void *)(stack - slot)); break; ++ case 4: fstd(fr7, (void *)(stack - slot)); break; ++ } ++ avalue[i] = (void *)(stack - slot); ++ break; ++ ++ case FFI_TYPE_STRUCT: ++ /* Structs smaller or equal than 4 bytes are passed in one ++ register. Structs smaller or equal 8 bytes are passed in two ++ registers. Larger structures are passed by pointer. */ ++ if((*p_arg)->size <= 4) { ++ slot++; ++ avalue[i] = (void *)(stack - slot) + sizeof(UINT32) - ++ (*p_arg)->size; ++ } else if ((*p_arg)->size <= 8) { ++ slot += 2; ++ if (slot & 1) ++ slot++; ++ avalue[i] = (void *)(stack - slot) + sizeof(UINT64) - ++ (*p_arg)->size; ++ } else { ++ slot++; ++ avalue[i] = (void *) *(stack - slot); ++ } ++ break; ++ ++ default: ++ FFI_ASSERT(0); ++ } ++ ++ p_arg++; ++ } ++ ++ /* Invoke the closure. */ ++ (closure->fun) (cif, rvalue, avalue, closure->user_data); ++ ++ debug(3, "after calling function, ret[0] = %d, ret[1] = %d\n", ret[0], ret[1]); ++ ++ /* Store the result */ ++ switch (cif->flags) ++ { ++ case FFI_TYPE_UINT8: ++ *(stack - FIRST_ARG_SLOT) = *(UINT8 *)&ret[0]; ++ break; ++ case FFI_TYPE_SINT8: ++ *(stack - FIRST_ARG_SLOT) = *(SINT8 *)&ret[0]; ++ break; ++ case FFI_TYPE_UINT16: ++ *(stack - FIRST_ARG_SLOT) = *(UINT16 *)&ret[0]; ++ break; ++ case FFI_TYPE_SINT16: ++ *(stack - FIRST_ARG_SLOT) = *(SINT16 *)&ret[0]; ++ break; ++ case FFI_TYPE_INT: ++ case FFI_TYPE_UINT32: ++ *(stack - FIRST_ARG_SLOT) = *(UINT32 *)&ret[0]; ++ break; ++ case FFI_TYPE_SINT32: ++ *(stack - FIRST_ARG_SLOT) = *(SINT32 *)&ret[0]; ++ break; ++ case FFI_TYPE_SINT64: ++ case FFI_TYPE_UINT64: ++ *(stack - FIRST_ARG_SLOT) = *(UINT32 *)&ret[0]; ++ *(stack - FIRST_ARG_SLOT - 1) = *(UINT32 *)&ret[1]; ++ break; ++ ++ case FFI_TYPE_DOUBLE: ++ fldd(rvalue, fr4); ++ break; ++ ++ case FFI_TYPE_FLOAT: ++ fldw(rvalue, fr4); ++ break; ++ ++ case FFI_TYPE_STRUCT: ++ /* Don't need a return value, done by caller. */ ++ break; ++ ++ case FFI_TYPE_SMALL_STRUCT1: ++ tmp = (void*)(stack - FIRST_ARG_SLOT); ++ tmp += 4 - cif->rtype->size; ++ memcpy((void*)tmp, &ret[0], cif->rtype->size); ++ break; ++ ++ case FFI_TYPE_SMALL_STRUCT2: ++ *(stack - FIRST_ARG_SLOT) = ret[0]; ++ *(stack - FIRST_ARG_SLOT - 1) = ret[1]; ++ break; ++ ++ case FFI_TYPE_POINTER: ++ case FFI_TYPE_VOID: ++ break; ++ ++ default: ++ debug(0, "assert with cif->flags: %d\n",cif->flags); ++ FFI_ASSERT(0); ++ break; ++ } ++ return FFI_OK; ++} ++ ++/* Fill in a closure to refer to the specified fun and user_data. ++ cif specifies the argument and result types for fun. ++ The cif must already be prep'ed. */ ++ ++void ffi_closure_LINUX(void); ++ ++ffi_status ++ffi_prep_closure (ffi_closure* closure, ++ ffi_cif* cif, ++ void (*fun)(ffi_cif*,void*,void**,void*), ++ void *user_data) ++{ ++ UINT32 *tramp = (UINT32 *)(closure->tramp); ++ ++ FFI_ASSERT (cif->abi == FFI_LINUX); ++ ++ /* Make a small trampoline that will branch to our ++ handler function. Use PC-relative addressing. */ ++ ++ tramp[0] = 0xeaa00000; /* b,l .+8, %r21 ; %r21 <- pc+8 */ ++ tramp[1] = 0xd6a01c1e; /* depi 0,31,2, %r21 ; mask priv bits */ ++ tramp[2] = 0x4aa10028; /* ldw 20(%r21), %r1 ; load plabel */ ++ tramp[3] = 0x36b53ff1; /* ldo -8(%r21), %r21 ; get closure addr */ ++ tramp[4] = 0x0c201096; /* ldw 0(%r1), %r22 ; address of handler */ ++ tramp[5] = 0xeac0c000; /* bv %r0(%r22) ; branch to handler */ ++ tramp[6] = 0x0c281093; /* ldw 4(%r1), %r19 ; GP of handler */ ++ tramp[7] = ((UINT32)(ffi_closure_LINUX) & ~2); ++ ++ /* Flush d/icache -- have to flush up 2 two lines because of ++ alignment. */ ++ asm volatile ( ++ "fdc 0(%0)\n" ++ "fdc %1(%0)\n" ++ "fic 0(%%sr4, %0)\n" ++ "fic %1(%%sr4, %0)\n" ++ "sync\n" ++ : : "r"((unsigned long)tramp & ~31), "r"(32 /* stride */)); ++ ++ closure->cif = cif; ++ closure->user_data = user_data; ++ closure->fun = fun; ++ ++ return FFI_OK; ++} ++#endif +diff -urN libffi.old/src/pa/ffitarget.h libffi/src/pa/ffitarget.h +--- libffi.old/src/pa/ffitarget.h 1970-01-01 01:00:00.000000000 +0100 ++++ libffi/src/pa/ffitarget.h 2004-03-20 19:33:57.000000000 +0100 +@@ -0,0 +1,57 @@ ++/* -----------------------------------------------------------------*-C-*- ++ ffitarget.h - Copyright (c) 1996-2003 Red Hat, Inc. ++ Target configuration macros for hppa. ++ ++ Permission is hereby granted, free of charge, to any person obtaining ++ a copy of this software and associated documentation files (the ++ ``Software''), to deal in the Software without restriction, including ++ without limitation the rights to use, copy, modify, merge, publish, ++ distribute, sublicense, and/or sell copies of the Software, and to ++ permit persons to whom the Software is furnished to do so, subject to ++ the following conditions: ++ ++ The above copyright notice and this permission notice shall be included ++ in all copies or substantial portions of the Software. ++ ++ THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS ++ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ++ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. ++ IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR ++ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ++ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ++ OTHER DEALINGS IN THE SOFTWARE. ++ ++ ----------------------------------------------------------------------- */ ++ ++#ifndef LIBFFI_TARGET_H ++#define LIBFFI_TARGET_H ++ ++/* ---- System specific configurations ----------------------------------- */ ++ ++#ifndef LIBFFI_ASM ++typedef unsigned long ffi_arg; ++typedef signed long ffi_sarg; ++ ++typedef enum ffi_abi { ++ FFI_FIRST_ABI = 0, ++ ++#ifdef PA ++ FFI_LINUX, ++ FFI_DEFAULT_ABI = FFI_LINUX, ++#endif ++ ++ FFI_LAST_ABI = FFI_DEFAULT_ABI + 1 ++} ffi_abi; ++#endif ++ ++/* ---- Definitions for closures ----------------------------------------- */ ++ ++#define FFI_CLOSURES 1 ++#define FFI_NATIVE_RAW_API 0 ++ ++#define FFI_TRAMPOLINE_SIZE 32 ++ ++#define FFI_TYPE_SMALL_STRUCT1 -1 ++#define FFI_TYPE_SMALL_STRUCT2 -2 ++#endif ++ +diff -urN libffi.old/src/pa/linux.S libffi/src/pa/linux.S +--- libffi.old/src/pa/linux.S 1970-01-01 01:00:00.000000000 +0100 ++++ libffi/src/pa/linux.S 2004-03-20 19:33:57.000000000 +0100 +@@ -0,0 +1,281 @@ ++/* ----------------------------------------------------------------------- ++ linux.S - (c) 2003-2004 Randolph Chung ++ ++ HPPA Foreign Function Interface ++ ++ Permission is hereby granted, free of charge, to any person obtaining ++ a copy of this software and associated documentation files (the ++ ``Software''), to deal in the Software without restriction, including ++ without limitation the rights to use, copy, modify, merge, publish, ++ distribute, sublicense, and/or sell copies of the Software, and to ++ permit persons to whom the Software is furnished to do so, subject to ++ the following conditions: ++ ++ The above copyright notice and this permission notice shall be included ++ in all copies or substantial portions of the Software. ++ ++ THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS ++ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ++ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. ++ IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR ++ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ++ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ++ OTHER DEALINGS IN THE SOFTWARE. ++ ----------------------------------------------------------------------- */ ++ ++#define LIBFFI_ASM ++#include ++#include ++ ++ .text ++ .align 4 ++ ++ /* void ffi_call_LINUX(void (*)(char *, extended_cif *), ++ extended_cif *ecif, ++ unsigned bytes, ++ unsigned flags, ++ unsigned *rvalue, ++ void (*fn)()); ++ */ ++ ++ .export ffi_call_LINUX,code ++ .import ffi_prep_args_LINUX,code ++ ++ .type ffi_call_LINUX, @function ++.LFB1: ++ffi_call_LINUX: ++ .proc ++ .callinfo FRAME=64,CALLS,SAVE_RP,SAVE_SP,ENTRY_GR=4 ++ .entry ++ stw %rp, -20(%sp) ++ copy %r3, %r1 ++.LCFI11: ++ ++ copy %sp, %r3 ++.LCFI12: ++ ++ /* Setup the stack for calling prep_args... ++ We want the stack to look like this: ++ ++ [ Previous stack ] <- %r3 ++ ++ [ 64-bytes register save area ] <- %r4 ++ ++ [ Stack space for actual call, passed as ] <- %arg0 ++ [ arg0 to ffi_prep_args_LINUX ] ++ ++ [ Stack for calling prep_args ] <- %sp ++ */ ++ ++ stwm %r1, 64(%sp) ++ stw %r4, 12(%r3) ++.LCFI13: ++ copy %sp, %r4 ++ ++ addl %arg2, %r4, %arg0 /* arg stack */ ++ stw %arg3, -48(%r3) /* save flags; we need it later */ ++ ++ /* Call prep_args: ++ %arg0(stack) -- set up above ++ %arg1(ecif) -- same as incoming param ++ %arg2(bytes) -- same as incoming param */ ++ bl ffi_prep_args_LINUX,%r2 ++ ldo 64(%arg0), %sp ++ ldo -64(%sp), %sp ++ ++ /* now %sp should point where %arg0 was pointing. */ ++ ++ /* Load the arguments that should be passed in registers ++ The fp args were loaded by the prep_args function. */ ++ ldw -36(%sp), %arg0 ++ ldw -40(%sp), %arg1 ++ ldw -44(%sp), %arg2 ++ ldw -48(%sp), %arg3 ++ ++ /* in case the function is going to return a structure ++ we need to give it a place to put the result. */ ++ ldw -52(%r3), %ret0 /* %ret0 <- rvalue */ ++ ldw -56(%r3), %r22 /* %r22 <- function to call */ ++ bl $$dyncall, %r31 /* Call the user function */ ++ copy %r31, %rp ++ ++ /* Prepare to store the result; we need to recover flags and rvalue. */ ++ ldw -48(%r3), %r21 /* r21 <- flags */ ++ ldw -52(%r3), %r20 /* r20 <- rvalue */ ++ ++ /* Store the result according to the return type. */ ++ ++checksmst1: ++ comib,<>,n FFI_TYPE_SMALL_STRUCT1, %r21, checksmst2 ++ /* There is maybe a better way to handle 3 byte structs. */ ++ sh2add %ret0,0,%ret0 ++ sh2add %ret0,0,%ret0 ++ sh2add %ret0,0,%ret0 ++ sh2add %ret0,0,%ret0 ++ b done ++ stw %ret0, 0(%r20) ++ ++checksmst2: ++ comib,<>,n FFI_TYPE_SMALL_STRUCT2, %r21, checkint8 ++ /* Up to now I don't have a way to handle 6/7 byte structs. ++ The values are left bounded in the registers. In the struct ++ itself they are left bounded. */ ++ stw %ret0, 0(%r20) ++ b done ++ stw %ret1, 4(%r20) ++ ++checkint8: ++ comib,<>,n FFI_TYPE_UINT8, %r21, checkint16 ++ b done ++ stb %ret0, 0(%r20) ++ ++checkint16: ++ comib,<>,n FFI_TYPE_UINT16, %r21, checkint32 ++ b done ++ sth %ret0, 0(%r20) ++ ++checkint32: ++ comib,<>,n FFI_TYPE_UINT32, %r21, checkint ++ b done ++ stw %ret0, 0(%r20) ++ ++checkint: ++ comib,<>,n FFI_TYPE_INT, %r21, checkll ++ b done ++ stw %ret0, 0(%r20) ++ ++checkll: ++ comib,<>,n FFI_TYPE_UINT64, %r21, checkdbl ++ stw %ret0, 0(%r20) ++ b done ++ stw %ret1, 4(%r20) ++ ++checkdbl: ++ comib,<>,n FFI_TYPE_DOUBLE, %r21, checkfloat ++ b done ++ fstd %fr4,0(%r20) ++ ++checkfloat: ++ comib,<>,n FFI_TYPE_FLOAT, %r21, done ++ fstw %fr4L,0(%r20) ++ ++ /* structure returns are either handled by one of the ++ INT/UINT64 cases above, or, if passed by pointer, ++ is handled by the callee. */ ++ ++done: ++ /* all done, return */ ++ copy %r4, %sp /* pop arg stack */ ++ ldw 12(%r3), %r4 ++ ldwm -64(%sp), %r3 /* .. and pop stack */ ++ ldw -20(%sp), %rp ++ bv %r0(%rp) ++ nop ++ .exit ++ .procend ++.LFE1: ++ ++ /* void ffi_closure_LINUX(void); ++ Called with closure argument in %r21 */ ++ .export ffi_closure_LINUX,code ++ .import ffi_closure_inner_LINUX,code ++ ++ .type ffi_closure_LINUX, @function ++.LFB2: ++ffi_closure_LINUX: ++ .proc ++ .callinfo FRAME=64,CALLS,SAVE_RP,SAVE_SP,ENTRY_GR=3 ++ .entry ++ ++ stw %rp, -20(%sp) ++.LCFI20: ++ copy %r3, %r1 ++.LCFI21: ++ copy %sp, %r3 ++.LCFI22: ++ stwm %r1, 64(%sp) ++ ++ /* Put arguments onto the stack and call ffi_closure_inner. */ ++ stw %arg0, -36(%r3) ++ stw %arg1, -40(%r3) ++ stw %arg2, -44(%r3) ++ stw %arg3, -48(%r3) ++ ++ copy %r21, %arg0 ++ bl ffi_closure_inner_LINUX, %r2 ++ copy %r3, %arg1 ++ ++ ldwm -64(%sp), %r3 ++ ldw -20(%sp), %rp ++ ldw -36(%sp), %ret0 ++ bv %r0(%r2) ++ ldw -40(%sp), %ret1 ++ ++ .exit ++ .procend ++.LFE2: ++ ++ .section ".eh_frame",EH_FRAME_FLAGS,@progbits ++.Lframe1: ++ .word .LECIE1-.LSCIE1 ;# Length of Common Information Entry ++.LSCIE1: ++ .word 0x0 ;# CIE Identifier Tag ++ .byte 0x1 ;# CIE Version ++ .ascii "\0" ;# CIE Augmentation ++ .uleb128 0x1 ;# CIE Code Alignment Factor ++ .sleb128 4 ;# CIE Data Alignment Factor ++ .byte 0x2 ;# CIE RA Column ++ .byte 0xc ;# DW_CFA_def_cfa ++ .uleb128 0x1e ++ .uleb128 0x0 ++ .align 4 ++.LECIE1: ++.LSFDE1: ++ .word .LEFDE1-.LASFDE1 ;# FDE Length ++.LASFDE1: ++ .word .LASFDE1-.Lframe1 ;# FDE CIE offset ++ .word .LFB1 ;# FDE initial location ++ .word .LFE1-.LFB1 ;# FDE address range ++ ++ .byte 0x4 ;# DW_CFA_advance_loc4 ++ .word .LCFI11-.LFB1 ++ .byte 0x83 ;# DW_CFA_offset, column 0x3 ++ .uleb128 0x0 ++ .byte 0x11 ;# DW_CFA_offset_extended_sf; save r2 at [r30-20] ++ .uleb128 0x2 ++ .sleb128 -5 ++ ++ .byte 0x4 ;# DW_CFA_advance_loc4 ++ .word .LCFI12-.LCFI11 ++ .byte 0xd ;# DW_CFA_def_cfa_register = r3 ++ .uleb128 0x3 ++ ++ .byte 0x4 ;# DW_CFA_advance_loc4 ++ .word .LCFI13-.LCFI12 ++ .byte 0x84 ;# DW_CFA_offset, column 0x4 ++ .uleb128 0x3 ++ ++ .align 4 ++.LEFDE1: ++ ++.LSFDE2: ++ .word .LEFDE2-.LASFDE2 ;# FDE Length ++.LASFDE2: ++ .word .LASFDE2-.Lframe1 ;# FDE CIE offset ++ .word .LFB2 ;# FDE initial location ++ .word .LFE2-.LFB2 ;# FDE address range ++ .byte 0x4 ;# DW_CFA_advance_loc4 ++ .word .LCFI21-.LFB2 ++ .byte 0x83 ;# DW_CFA_offset, column 0x3 ++ .uleb128 0x0 ++ .byte 0x11 ;# DW_CFA_offset_extended_sf ++ .uleb128 0x2 ++ .sleb128 -5 ++ ++ .byte 0x4 ;# DW_CFA_advance_loc4 ++ .word .LCFI12-.LCFI11 ++ .byte 0xd ;# DW_CFA_def_cfa_register = r3 ++ .uleb128 0x3 ++ ++ .align 4 ++.LEFDE2: +diff -urN libffi.old/src/prep_cif.c libffi/src/prep_cif.c +--- libffi.old/src/prep_cif.c 2004-03-20 19:32:43.000000000 +0100 ++++ libffi/src/prep_cif.c 2004-03-20 19:33:57.000000000 +0100 +@@ -113,7 +113,7 @@ + FFI_ASSERT_VALID_TYPE(cif->rtype); + + /* x86-64 and s390 stack space allocation is handled in prep_machdep. */ +-#if !defined M68K && !defined __x86_64__ && !defined S390 ++#if !defined M68K && !defined __x86_64__ && !defined S390 && !defined PA + /* Make space for the return structure pointer */ + if (cif->rtype->type == FFI_TYPE_STRUCT + #ifdef SPARC +@@ -134,7 +134,7 @@ + check after the initialization. */ + FFI_ASSERT_VALID_TYPE(*ptr); + +-#if !defined __x86_64__ && !defined S390 ++#if !defined __x86_64__ && !defined S390 && !defined PA + #ifdef SPARC + if (((*ptr)->type == FFI_TYPE_STRUCT + && ((*ptr)->size > 16 || cif->abi != FFI_V9)) --- gcc-3.4-3.4.3.orig/debian/patches/ada-generated.uue +++ gcc-3.4-3.4.3/debian/patches/ada-generated.uue @@ -0,0 +1,523 @@ +begin 644 ada-generated.tar.bz2 +M0EIH.3%!629369#XX9$!3>]_Q?_________[/___^O____H$````A``("&"2 +M_OJW%&^`7&``-Y5>5Z`EJVI,\>A1LN!7E`:N\W'N\^\=.C1N +MP=44[MUI]WIQ=.B7:KUW:HV7Q?<#??<':SUG=N`Y/660>]CCO2.V*)*J4^WS +MFMFI%H-K3:91MM'WP18[AU.T/0HH['2]:)@V7;MAV9I2AS9(VS-E)"L` +M1:VS%5;CG7;"6E6U`R:`T*T9@#%:00VU5%301LU61!54>\G8$`.GMM&VSAUY +M>M[7>)U2JNRZHTU`#5JJJJ-F2N5E;@P::!-"!`C4::$TFU3S4&IZ,J>C4_5/ +MTRH/2#;5````])H!ZF0`$IZ1"((B:*GA-&D"?JGHF9-3!#!,`CR@81H9&)@` +M@/00&JG_M55*FC`F``$P````"83$P`````31DP`$GJE%$$:1)DU/-34Q/:H' +MJ``&0:````-``````$11"`@$9`F"!H0-`!&FFH,F"8&IAID-,H>DR:::-#0* +MB1$!$T)D:$T$R:FPF0U3U'J`:`-````!D]0`#0]3_JG^O^!^7\Y]=.HU36D4 +MFR`GWOM?:?;X#VF_ +MY_VYP$W$"HM^W_H`,/^W^-3*LG^O]R;YI;'JF:,H#]6DC0I1PUIO\]EUCE)< +MK36VKPUS]R\T),A$TQ%9;7^?1C3J*TTFFZ51\[)>N]Y5T'FS_1E&?_.N=MO.==NL[Z-]] +M]]XWA>NYF.\[ZZ[V.[[TWO7?5WWU-WSOG6M9.'77"'9WWWWUUIOLZZX\[S-S +MF[[W@]WS>^3F]V2.S +M>```````@`#``,!```8``!``.K*X``':M=P&","!``!U:LX!W<``B@`!VE/= +M?>^GQ\=FM?N?2MNVWM")01.`B8$3)1?QPCETTYZ7]/IE!^%BNFWBKP)O^:'C +M]^G1N^/LW=&>2H?((Y@(=:@T3G(E04$/E2*.A$%0AT@*)$1]D41(21Y[/LPK +M9J*8XG_BPU%U'V^GU>OV>;33333V^_[?5XD$1Z^GPG3,]V]9]\[R__?E[\^/I??9 +MOP`=`AX+,+$KIJQ&KSF;]?/.GY>NSEGWYSUXG+>5S5R=DJS;2T5H*="F*P0] +M>,-=P_^NGS]WOZ^J.^N=/RV3Y+"S90>0J&@GPE1);9%&$+I@,0 +M<0MMD480N,)2$+$AB?AH]V86T.V<[G>9XR]SPUIK(?7XBY2'0/QN$[OAS\*-E4="559]-Y5#TC +M9)''36^13.6EQQP&3/2X9C-.HB(#&.DQ`,4:+NH]!D]8,2Z,6==QNHY6V!:1 +M,@_L'^@3%O-U'3.?![.B/O+U`'!$]SZ51#=QZC=E`-$T\9`< +MO3($D8R!H*E;"VHU$1:,65=:EVJ2OC6KS;7>(2RTZJM;.Q;")--VW175,&[3 +M70R4#M!AE6ELM*LK"1)#2)#Z>N-J_K5O[#2^]J7TB2;"7YR05]NW*(A`U6+X +MTW93`2*2-H)0A&62MC04@$,DF1BML:6R^^L93UC4/ZVMK*I2-`!')H#D]>L9M^V.0B:^]6`B6<+Z,C)[FPB:?..(XV$2MQ[1UC6_ +M,9\G+Y*UWJ74RA5L3>7)D]FP?.S3=5!LLAR' +MO/S6G\6+W0P+[*[_+4G$0)(7971OEP)'XGFZDFZT'M`?BIE78AR!!%G8YW?V +MR,33>K=TI^1"GAJTVL&A_A9PM:YEGIJ%Z[+WKG:,WOO>B^=X +MY.KYF7O7=[ZY-W#.C-=]M\.N<>^I?'+++CWCKK=[WSIZ>^S6KXL;D2UGN]7M +M:]F<.%O<6IA9IE3IBL8M*M%Z=V-7W +M[;S5]><.MZOON9UG6N33L]GL`HIG>=GGN:[8V8CJ\J_'IO!%=/F9UUJ^[S.: +M>\T.LU=9K;SDYR:NV]PXFWCC*5N67%K62,>-ZT#++FF+S6B":PF:NY9,)9ES +M+Q$TYI339=Z@,RQRF0))=W4NV''+Y99QY<..]0T9O1F9N\PW-8X3W0?`TOO\ +M:?-U,$[H'B9DSA3&&$@&,JL!QD+RO-7[[&@VSZ;JN8VJ#&:;1:,EJ*L:C9*DD2121D0F_O3C-VN@6!U]M,#NY +M<;SN5O+F3/*&'9`@F_*JJ?O#"%F'#"K*P=&W\LJRG4J%5(JD7?9 +M&\F&I7M+R_E7,+P>;+>RC3;AHG*ML8>XUUCGQZ9_#]+]9\IR.0\#^\R<34T- +MYDJ:[G1R[G1W.'X+F\XXD@22:;-8BU@JM- +M+-6(B.M)>L_)EKI1M#[VONOKG-8F9*MMJ/VH^-)=#2ZEC-#9U +M.LK'$/"?C:M_(Z>)",6O4HD2T513\B9W%,2-OAI9[N[U,3'E+1ZP(GZ0BPE +M@0A3^.\=79A +M7+79XX[?/],D=&D/0Q3H('^'GO\6&S[$^@VTTJ(MG1*MJ*6UOIIJVK7X1>$M +M*X8Y/I\/+;GK9MOQ@"9)H3&A37"K6*0F2MI6O6=YAG.I6P\&&C#`5:6Z[N'" +MS9AJJ5"_O[YMRQ:QM]ERUDC9*BI2BK%1/O5OOM\RBF8,4TL`1%,Q&QF8Q)4D +MDCCLZ8[+NY`??Z2 +M8:-#>3R[S+JTI16@I:'L^^N#N,HAVI]E*J=`B3<44=ZIT=YL;SHSNZRU:?!] +M+-:8#D-+K7/DJJ`)RJV24#>46*C/WFG5>R\JQ4]SW3K&,GVQMM%A[Y)75^?VX +MU9T%JV']:I&55>(`\!$OJA$WRB;<.H4PHYA.0Q-#363%LFU#!,6>3UW0R'H2 +M2.IF'XNQ$)V03T")Y0CW:PD2381/2).S:O@Z'XA.PSL>W[E-.'`ZK?DN2R55F'.[Y?# +MGGP9[GJ]/#\C@REBT20FY.`W?T70-K(UF$^VE]2@905SG=;JYS]FCXQ5S`NU55OR)OQX/%:\-3<0-\E+7 +MYTY)C)'Z'W$H[F)MO]WL]GP:WIE=C>WLR:'9V'#AGO01>BF8G)(:>^&F[) +MI/.1>U.24@N4W$?4-478@;D"ZCF6C%*&P41(!!?\K,0W=V[\E4 +M44^']+YG*.SP66!%TT5]UH@B?'PS:43=!OX!DZCVIIL^Q-G.NVZ"TL`**]:G +M$/PN7URCOHRCR?%\/LT:N3YZ^[`AU5T#QSM`VH-`<`!`AEZ&WO"",9^1D$H* +M2+/(=G9PYG,YI$V,6!T%#7*#D.@P=O3XS;8SS\4`$>SKO?H<,:#L.N89$R?Z("$`*6*:N@O +M8OW0'U\A,#J.J/*#:`H'CY:"[[@SGU>9,\SFZZ93V^+Q^+KTXG-(92)S2)A, +MIDP3CQS$63BHJXQ9!B:#7%!ZO?G,;C0-@1Z5$#A,\X$RG`I2A"!4!$B@7;\X +M)*'6G@%!RG=KS#K$^CGB=#JGV=;[FM==7.8TV.UO;0M]&EI!Y*@PR@*L`*L/FAQ*AJXG6TR;;NW!2 +MQOYTS;2;\>*QC>=&O?I3"(.6.EN3BU71K,J?R#]'Z!]K!/X_">^,-GNG"\(/ +M/MSQDZ_)Q/?W?-G_/['NVW3S<&]7+=KM\NWI_;%5/WO:U2T[;A#V45?OGS_< +M]7K_7_!^'[_W]MMMMOPF_]7M^K_=]W];>J=AW_$6V^]:."$]9G"*3ZVN'2=`=$@2C7[%@6G< +MEIX$O?.',T9YWAY)O9LM2AX5MI.67>2M)6&]:K6:MFL;+#H2 +M!B/*3C5DXG&K_S>1,X5$`\7_X?/^NWW_9_-_X_H^O]'];X?#X?#X?#W?#X>' +ML]1\E]?FJ*')\_B+^J^K=(37.#V77&QI<.LBIYSUH*'\<1$_)^7\?],/IY_) +M^+/]OY3^+^W\O]?XY_5#/Y*=']G0;^K'Y^P07HW;B?GE[/[/S+SR^K:#BWAU +MN.ISR7]CSTWG-OV/A^*:\#E5N%?$\+N^AJRXO8M.3>U97C08Y8?NU\O+:SX? +M7SJ"9OG"X,:6Y&I+];S6G)6[6''7H0M7/'"V#RSM%NO*FGPSUY3#1XX@/IU9]7JVZWM;:V/#QZVVHSKCT=8&- +MNQ':U^N^\B"Q9>+X%<^%Y=MN<6P;<-S[Z\]+W&FM5:.>^B\N?>>>-;]JZ+;3 +MI.FO*=S68G.-=^;8UQJU6?.^11Y/V;==^7&NFJ]&QOOEJV%W6,'P#=?XK1UJ +M_/*6\%MV%MNN?2`@##EOZ%\=N/+T;KX9QMX^W;.WSZ($D^=!;():DA:1"A`0 +M(B:KWB+]5[VL.['G+\])[,[-K9FX$:A:KA5VKIJ;"P-L;VVTFU3&N--EL#%L +MYQMORG:.W+.-\<3S;KRY:."N/#9VN'VC1;5TP-AY'N\VO%Z$;7FM)[[VROC"ZSRZ\+IG=K[7[9A^_;F_'&G/58/5>-%[ +M\N?5=/!A/*W(;=._CG;P7<<^VCXYD=$\6_7''CTG5.OM\-5%1^&'WO8GPP9# +MUQ/@EF(-_A6_JY.NLN[EW=XYN>+H&[+F)*(&,2TEY9C4&TJJDAC4$ +MRZE"6W>F(Y,2):42XH:$7LWDG767=R[N]\W.B\])5ZY>+O/ +M?+UNEI55)#&H)EU*$MN],1R8D2THE\5\2+V_SNQLF-I6;1J6RTLVE9J4VFIM +M*:LU-I4VEFTLVF;1K:6DU4E:5;+6:LMHVU+&U-*?2VM?!'A[N&/V)C +MEG=OQIDAI]F_[4B='S15_4BH;?N33'^V"A!8`0"+T9S8%)TN+)"XHC9!"_5Y +M64J>]7+P?>1`+FVZI'DWK!UEMU!N$VS-:^;TNV?W[ZZ:_;GH +M:TQWRN7Q,S+N99)+ME;5(6?%P;8_T[G\B&<3WWMG,WK(OHHJ$W#2C=WK^+K+ +M68T6FM(5PU?SN6IGN[YGTL/HX:?4/#<[;]9EYE;OUJ;0ALKE^*=$ZE= +M8T\OC=+6G-&AJZOJ[;D<&Y2T:;=Y0/"BN&L.&Z0VL)67>#C1@ER<'#.,29,U +M&:+&$&MY9A;#,C"3K67CUNU0<4YO=HO;U+('#:G*J@*.P"BK/QW7WNL +M1F51$1&1#6-L:UC:HQ;&"I+;&Q5B+:*Q&,=557]+6V_?5^S_+M?]4O^L>X?: +M/F^KW#\PL+@@$!$(SR$`]M^;]BGD']'BZ`^K]/V_=T;[?N\_NJI9:-W/W7B= +M\Q%Y!_GZ5F2)YQI2I3%3:L+-1=8I8K"FS7$B2ABKK$,6+FVHN0UK/T>]WN#: +M],F75%/NI=(%8R+5[[+6^$TTXTW-ZWFM]M].$``&4&J`B$"_$W\>K]JHK1: +M9:C:V)-;Q/E\+/AP#C(0D59$D20"15D&='7(3S/T79TIGC*NH'_!AP:!:*\U(4;= +M*LAPET\@8MK%<_0_0S/R[EKG5]?&HA^GRM*EQ5R=I:#2)A+^I%NNDKTYFK77 +M$H$QB\+GJ%3JBI(D\$HF[CG>F[T:;S^$XXXF[?JFGIG3O[L=4WIGT\=_^P15 +M/[SD8*UK@1/:D$.=]H/Z7XWW?)/<^M]SN=PQ1CP*'W%C!+:O=5&MRU<+6N:Y +MK5\>/MP/AW]ZS)Y//H>$T\ +MXE/X$\Z?X)\Z9.*?6XI<<2<9[).?LQCU;_)/L^WNGCVW]?U'2+*[!1&&- +MI-2<*)0V45A7KI-X6S79L+>D!07HE4'W5<)1-^0J8-8X@R?B_[_T2;DV$TUE +MX=28\NG03W*,HGO6G1Q"WWS6.\++7WUG*,TI9!2AB2*M1;#Q&(D8J\V6M\RJ +MVO/LK#QC'5_BSE[]7Y[E][V^M[OTQ=PB]S\WXQBC"09%9"-$&2H1K?_F_AKZ +M]ON>(^M7CZ;T.&I1HSXSQD:RVK%;'H@5!R0%B9522223R_JJQ.RQ^OG?BT.! +M0>K;M[=DWZ\+>E+="EA).RV2$@_=.?M83W7LOK<7WLN_H2*L)%U,1_Z_76(22=57LJDZ*I).%[MG*PH8A&0"97KPS$DF +M;6]8E+))RMS?W<;YFOUN-#(:R32V+XH=75#?59K*B+L.4H`/+:X8K..T-:N= +MJ6M1%[V5D8S;%E?"ER@4$G15%]T8CD"2$)((!)()!*$%'XK +MU\@KZ5MAM&!F=:`&J"Z@Z#F+>=2?K +M6JK':+;A5TJL[3U46QQ#=;WIPO[I'J/[Y\!]7YE]#_2P'JIFKVIX>[IV[=N[ +M^#6[]?*+K>/`8J/FJHSG'*>\6#3H^EWTG`?0-=""2FJMRNS:XY@HV=#LHQMJ-=K1S]G)N^B!=4!1)$+&8$%-(P7\UJJOI82-$ +M"X9?E6]]&A!@XW5_F-5H+U:>%"_%2UG4XLD>VUFOO-B_.RV-X"H3^N%B+=-* +MS92?UK>^^)'-!@DXQEG&-IOR>FQC"U:K1^O.,>2[>NS5Z=\VV6V,BM<7,;*F +M/+164$%00P5055E)4LH12BE2BLH89GTZ3@8)E`4)604T9LE]3;EX[-51FH;Q +M6VF;.VEZ@P??35E;S>E#^^EIX02K]I76(P],O>RQ<0%U"A_A*]N>\N?A+/.& +MG,MM&VM17P6L/MXC[#[D]WR!Q\K>H']Q;.!^84?#.G'/IT'#&._2W9JQ#K,Q +MZKVKVKX7.E[1I68?.B@(\5#U?D64\U9B2"$N+`B6MDK[=]_G?7OX\RS#WHY\ +M>>KDT43Z^I=L5QBU8IN:WR]'$+]4M,0&)-H:@]%CY+&^L.?PK'$[#$6TRS?- +M=MHF;$0#9;&_%IR1!\[+?2&0_?"L@M&HW<%?'O_3[CU@8WVQTQH-+<[;+>&K +MGG03C.96T3D1-I5Y#7$:;5L +M=:5Y%F;JLUK`<_A6(U0M'A#!D&57Z%Y`S6)#\ +M4V(A&/U+%W$\+!^^6?-K=:\/'X_:6]WK^/[/P!_9<-:R:Z>&[;\".3&?'PZ7 +M9K^D2_Y,1>CX$;0\869H8U;)N6*)=]62@"$(:O;.)BSJM1E$I\N^6)0-:^WM +MU;)<`@^MV8:JOR*[!%]I;=\Y]C3)XV6VN_&;6B^NH]]PHOX2#DU:GJYD\==: +M,76S=7AX2,*MSU[?Y]LYMIG;-G6=9TVP<1@O;G>B`/5KOZ&_`W2$CR"A1TQRYZ#;7ESYWI6O:_(4V +M/A+VOT?#JM+,WQFKYG:_($/A0)9!;/41F$4V:&F-):7T5]WP577JPS+HO':: +MUN^WOQ+V3=P^,F<(%WX[WH6(=$LXDB(PLN%>,,@5\'H/8!^7D.G?I[++\_O_ +M=S\7M?5_H=&KU/U;/U>:ZYUUFKXZ-7J=6=)H$K_C/U`PG9_$?K/#INW%54QM +M^Y_*[NK8OGQCQG\>>X6_'QLYD-SDX+?.;X>#9[#AL\EF%=&CAAV'9X.C8(5^ +MMZ.^F86<^=^OV9PZXSHLZZWUUSEOL][NX=WJJN[T8/.%)O^I5!BU%J#K5*3:E42-@P<$4'&H8*(%A]`N'`2PM(LFI0\NO+I`&F +M#L^V?HM&EI`M`8HQ1`G#T]^)T:3H^YUNK[L&Q=>-`,8/ +M)]<[6C2T@6@,48H@3D]/?E.C2='Y'6ZONP;%UY:YSRA,8N.PL(`T#BX8*'&O +MU7V?4X:+.XOR'19T>#11:M4B>S9[GA]W+;[]\U5W=UP[/N-FA`P/D^!*LP.B +MQ)\5V\N5;:59X.%6$-FS#1\>EH3A9V(GD]#1T5LQP\P(G)Z%'R?&/X0(AH(( +M^V*(`?YGD/F_`BA]"#_1/9-)].8<`\'/[@'KQSG#QZ\'#GH\'`/7[7KX!\`Y +MSA^U\O7CU\#GV?#QP````#UX^CGH`#AS]KQ]'R^!SY?#UST'BL<;5MXQMT[= +MO\9QVQCQC;^VX]O;'P#^O<\?9]7R/AS_0>/`?F#^D\?@<#Y<\<^CZ@^KU]7# +MX?#X>O7CX>CQX\>O7/`?1SG#P>C_%>O!SUSR6?NS,^UFG[VW,=0XLDY%#@9* +M$(0I%F+F8T2JC1II-*VQI4:-L*QLO*\NNO;M;M&MJ2T&FO3KK5[+=+C$P75) +M>UTFN:3,3U<,Q.7$F&#:WM*,+5HJ5I-M,:(E%:5--L74;&6E2U><>5[;K/.[ +MN5W"5Y6\NO;0*W@ZE)9>6[;EHP5BT8-2E*^FJVI:O+R2Y$NNX^+D5WQ$NEO) +M:L2ZMIHQI1J-+7"(#=")^\`(Y`$?Y_T?P_H_;_8V_1O.'1WO5UI_8FFG3KK^ +MA-$]"IG6:;T!$/[44`/L_R_+_?_)^*?SWZWU_VO\?I?/RW_X\?M[^',;`_O_ +MX_O?\[?O:C]['V3^GG7*/LC7I2V^P?SN70GICQT-KZ;7WYXC'H[=9[:8M%^> +MOV=2%7?[OK2N_/1M^_"[>'6G3])K7*-Y]ND>&G^;:^N.==?&>+&W/Q\;6VQU +M?+[;ZV]'CGC[E;.[-Y>AI[^KIXY]6=Q*)/B_AX<_';U>>X\-EZ/;R[]]:_WA +M`$"?D0>A$_5]J#^`8@?13!_2GV$T3ZZ?Y)_=J]KSM_N(RZ^BEZMD8I8L%*2U(UD +MQ.#,;I*I9(DD@;$+VW0Q>%J$B@F"U_/+"?\:9,7?6J2*I@MQ:(3=5:1`O2X* +M6]!3!$MDM0Y9G?,251(A@MXTJ!@MG*`"+\/Y^>/S`_@0`_'C[3[/PN*_11DA +ME"LI+),D&P85M@EDER%(E(E#W!;9* +M.13%4RI5+-"59%R6ZV@8"T_F*%`D1,%J+(&D5P8NMH=ER3$S1+2H!?YZ'R)A +M/+(I!DFO#"82;]1&G32KF4@:DNEL@LY5`0*17VJ[JU^)1-+A-,:E?*]GC-I) +M`)@595`XJ,JK;&6`2+@4M4PI5*J"$P2IOEA'JE7);K0H,BX&UWM6A"*R*DD( +MK(N"I*RH'=D&@1\2IH)#HA'2PPN9#2:F]SDA$C-$58 +M:4DVVFIM5E:4TI4-9(SHJI[$GAE/V/8GOIA-$ZX,($(L(E&6:@DM%_F[-KA9 +ME12V*LLL6BK:^VSQ(*?A[F?&_-J3!":4:@0"=^X;A[VA5P6YI2(`ZY&6<3M>.2D;>7=YW8> +M3O>W/)VOER;Y:==29:C6DA``XQI&TH=L-3%UH59%P6[4T9J1:+87&V:[XP73 +MMFB1I"5EE:]V#12KH:6HINU-Y:\R-QD8MB+%5*KC\;!5A$[T+D@#$^.R-(0A +M`V+4W521P3$]LXY7X:]%^?5:YOLMKDK&VBT58U1;1;%:-1:+16C:C5&J+8K) +MS\O.58M46HV-C9O';&QJ-:-C4;"[BW?:,WQ5H,BQZ*4A(!""D@+8+*/?'[(T +M2-([Y!B+8=1F'687,T8\-,EHJBT6R7A?.F5%5;"^,,S&6#\D?W(^;>Y.6=B: +M3325D&=LQ84EHM'U<&:5JID"04]Z*G:2=A4A%>R)^;]%VBZ0*,XL8[IF4\,E +MQE6>L?A'TC4@]P(D_N1@(D_5']V-Q_)V2((X"(^204@2H@80@RD'D+E@GWR0 +MR;:Y&T62HB+$L9'JM748G]8X(OQ0*\X&0(552JD5^QD1]4?KC;\P(D +MR,W0E\8/+6?ADTNKYQ![79$WB)42HWG"60_)MP-8:F&0OZU9(DH3IC40(*HQ +M@1%="WJM6<+82.3=<0D$P,L31K1('7QJG6)_D>X#4,R7\+&,8QC&,8QC&,8Q +MC&,8QC&,8QC&,8QC&,8QC&,8QC&,8QC&,8QC&,8QC&,8QC&,8QC&,8QC&,8Q +MC&,8QC&,8QC&,8QC&,8QC&,8QC&,8QC&,8QC&,8QC&,8QC&,8QC&,8QC&,8Q +MC&,8QC&,8QC&,8QC&,8QC&,8QC&,8QC&,8QC&,;K57YRZEIBI.!*G*6!-*A8 +MK)-\X#@34Q?"Z$]OPD'(1-`_6J1TL`=HB218!'_F*Z@`B]*?`E1!%\$^5(FB +MA<-Q_]KC8``))&'.[BXN(8`DLDT8`D``$@`$C$@D```#``````%H"22R```` +M(@````DD8FDB<&ED#<"20```!@````,262<())````)`+@DDC`%D$@`%DD`` +M```$EF@``D`F@``#@```!AB0`,"022"20!@230`"VVVVVV\`%P",Q`%Z@A&( +MP""IN(86:F9@V%EW!3(D58HN\&S6&[;DLDI2R?YP!&+A@GCD"/I(.A/>G:8[ +M,'I(*IW1?=3@2);%DDDJA*J%55B-:OQ:JI;;:T:V[*63)9-!5&SQVU?BNZ^; +MKRGE[V[6-@FE*34BM^3W">Y(GPI4RGT#5&Q7JG&>-$^[=MJ3%HK%8U%HM&HU +M&HU&HJ-1J+1J-1M%HU&HJ*BT6BK&VU46HMG=5V_<)=L;/YW3@UCT8Q+SAU:3 +M^2`_:C\D>K[>(_%'N=MKQ;%J+:*BV*P6J-OSFU[VAS(681,BVK@:N"8Z;3M) +MTQZS=16$A15BI(EE1RS).WG?R^XU&R5/(E'8 +ME(1VM,A*;%*K(HB,)$"!P+5.E.I,/H2!VIA/5JY(^\FJ=T3Q&3BBV2V2V'?& +M1%\EQ/9<5IF:S`&$"=$JS(RKEE8.#^F]6'V.D!X?@SW5U54+3YS#%DH][,^[&26R:&8?(PTNMY]^H1LB"J"34Q2R +M_EC`9UR&5)0V-62BFE&W:JUNJM;IL4J")SD1]*EL32PG*%F6$>J44M=H4RVV +ME;-K;;RU=VJ^TI9NBR+FV[Z=K7/C*Z%+51TN24J.3,Y/!(G_G*;^ +MG*83ZB`/FZGDG17J,P_'A9AGNQ&5%RX%V7$[_+-*7XY$RBR+"E%YY,TP5"C( +MHQGQA1R3">*6&"W%I`B$(**R""8+5$D$W1"NT*D(U,GOIA/ +M0F"BPA5D3I3(6R6DM%+$[,P>:F1%"*>UHW(&*+@GNA1)%D6(0L;&I+]FVES6 +MT:GQ.L?L>7G?JK0'`VNYK5BD(;B0J!8"2(2(^\G2D3FD0`RI\Q#^0_?)_4?B +MI_'_*0_20^;W\O(1W7#_9VO;VWOL&H@=UP_IW\GQ>^P$(2'E]CSR![_O?'5/ +MQG\Q_1I..[B9SB9G]9^,?R;!`DD-QJC@ZSDIN/FGX8GDN79)>#"\E5T0GBJ.K% +M7JNJ^"JV%?'2T2!1I\,PEMG4`RM'R;W&<=JKD_Z<9AM,VLS8+4M'"E6:=J[* +M[=FZNW71=?-7Q\0$M7U=1Q_T,')PKG%6KQF*MNM(Y2+)U>K<#;G@DY;;[V>, +MF6WGA;;V=5W5LFVS9L=!(+5"O3NPJ)(@2($@EW>D`DEZ#+3NOGV9_I_R535*--*B4A/%8!M$+*AY+/NRRXP +M$1N$N$LES:O;>W&,`9.OU77X]@(.4:U!@',/DVD&#&)-F!0/CQ>=SHUAIXY: +MFLJ;UGZ-&LW2:^@EV::C/)/"T.,X4MRLJU;]&WPE5QPM[5=XRXF65\&?M]/I![?O??'OL'O=".W7#.RX61669II2& +M;Q9%;/!0ATCRJ)UH55%6WXR>67A`_!'>A4 +MKG7.NW5+MKG%75\R8[EJ;[S6)TD3N;U#">K/NL\ZK:>7'?_%AYTQB=SO) +MCW+4YS-8G:1.YO6]%4A`$@4B4GUM[[OS^(1VVW7`D"#M8&?)WW9E_$JQXU%7 +M!$:VV%RTM_.ZRB]W6DYF(J"NYC>X`=7"*(.[H +M/IOF\\@]RI5Y?>]]NN72$KLKLRQ5PT5=BKNK/1LK76:&FA.`)?KSCH^/X6]S +M-+E;Z\BK?U/0&8*O`.-^&94,/C(Z&/%M^+4[JTG\;J.T\>%)*J"`$GQ!?0<+ +MAEJVQGJOOES-G:+3%G1`F$W65V94+\^Y;D/.#?Y/S??HEYAUT*K<(K[^\S"3 +MSV]N#NN'TNZ#SYOK=WO>T5LPNQ5NK$J[%7[51]B5O\&F:N[DC,S!556\5=U5 +M>-T)QUR>!6*!))())55!)'6R[%145IR059Z*,/Q?=>+7U^I[.%9T?NBK9O9= +M96J"M8:$4N]&J3IAUNZ#YM=T'Q;]_] +MZDLM;:P@QR0C3HVD==&<,$J`CRGHC4PR)8V))FTF*2LE%F9A:`PFFNZU4,2$ +MK@DMS)`,R^*_O[FUA:4L:*B*2+;>JKFN;;HS44FHT5$4D6VY5T/'L58'Y?"S1AUT*MGFM"H9@JR@9BVW2R#:?3CSEJ5[-_*W[S +MZET=CZ6GS\+?W#H^OP:8R044%=LI>M:&CD7YX6VZU9:MK:LL'H\MCO[+8X3' +M9]5!NPKP^"*^.QNQ5\_G:WPSGW0<+;LU9'-8N--W#AI,"><7`0`H$3!4S3NY +M;%.&HGO.LMY>SQL^F_*:H\E<*#Z?$`PDJ-!&IJUYY?JM>^@`"&MOSOR_7;[7 +MM?;=/>JYS$Z3UL%J3(HC!4/4<\\O:MY994+)4DD@8U=K*:I*RZ[:9Z=EM +MMJVWEQEW,\H\)PTDD]6G<5Q`CM`7J;(KX/%&Q\&DT,DC'T=%'7+ZK(G*NPUK +M4U8RM3&(C1IBW-83)=4QK(F-,M+?1AY:3PZ*YG#;)UD[2QC&,>ZZ&D-6:T*ODVZ/0<*_` +MZ^GSUK&\SKP^"+3LD%1H.;&TLLML;8W)=HJR)%D(QD15P\":">9QT+GMS*QH +M6[NR=5T+#T.&7+'4+S6M%D-%W+LG1401`&]R;E;\%@I +M)9U8K;>O)/"8,62GN[PT%XJ52JI"`02#83ZE)!'P%R[-LJM&:JS#`P2S9!0V +M!>]3,QO,J:E,-7#-&L%K-D)IC1C-Y+N.R9D-82766&QT:2OR%X,JRMTB=[%7 +MT<,.?9P9PYP5>P+KK?0TC&O?VG;=WG?8J]4$@BNBB28?I>WMY5^E7W^?J]CN +MX@U/+KAK3F3(J[VMMTL")3ZFM+;>^UZ]Y7M?"$("`D#?CG;F/?Q^;6>31%98 +M%;/9K0JNJA%8>!##9K0JY=4:,P5?5:]O/Q9PUF97=:/?$6'1:;[0+$D#(/:I +MH'`AT;:V':6XE:2L:LEW=RBVVUKKYFG*U +MJHA\7KA:&-H66U?K/JPUNIA"EF79>27*R@@EA9@A;:W,LE,A&9#,RR-]9K1F +MJCF0S+:JFBAH&DI1*::V?(86!WZ7\5_?]/%FC[7:6],^%$PA]B7EY>.33U8< +MZWKMZ[R)AAV=&-+79T0T=D(:!HU=6.:NS>^9W<[,WF2[[O&SJ[ZD[UWG99V[ +MK'G?=Z-'=W-F[ODG$#Z>8D[-1S:4ZPQJ:8N9BW&)Z*BNDW(Y:-\GJZ +M\K;?A'*\'K'K9"V2;<]CF?-I[V.KUKODT062(J]\Y&9>+9ACEPR7<9F9>>NP +M[.<%71(*KG?;Y#XJC"V*YU<5B[-JVE[[OADO2NZR;L7#!S@A00[PUG7O8J@4 +MZHA!6%5LNQ5K5`>CL]4['4TD]>O5PY!JT6E/NZ+-2)W'2XD?,BROC:!98>!3NQ>1,1$0T,JD\U +M"RZCERL9%&RXFUK6>!$&>MX#PW,ZJ3>K#3-KXE<8IW),W+11$!:=^S\_^37' +MYZET_,[C?<\%^+S.M9%3&$)\]][U??-O/?%1I41Z/K<6)&,=_$;J,+L2%@@V +MVVW=L98JW=WX.DT7@LNW+AG6K%,(0T)=1NUK62\A&9XF9INX6RX1@0\EA]0\ +M8`HJJ0DF0M(230-;;MU&,23A7(Q370Z.A6-IFT;2^U]*_@NOK5]/O`0?'VE8 +MHF8*JBK9HT9@J^M^Z^97+[WE.:S1I-Z/8<_#\))\><&2+W"*SN<81E$H?8]F +MJZA7L:JK.M"K9T?4NCY-05='JJ!'(!$`_2.+1T()4\+- +MEYUS)5[PK5,AJN;J#C'!)+0 +MB9<67+1G3?KQ9RMDVQLI=NN:8A^JG%3D#X\2/E*,&$DB`/V#H1!R:F! +MA^%/O/Y_1]>G#]9\7,^+WH(4GC\4B/2P+"BBA4HK4D6)$-[CFV5*-)&2B'2( +M?-/>@1.CG?H-46++4A/XH@ +M-6K"%5*JV0K(!1U5(-_;%!/2,9$)G=?CMM5]S63VAI3PZ#$DYD]C&))"67%*8:@BU:R0%@M4H@X"@F&I5M5#M'+R/FNI>8 +M\"<7XJ>25%8J&03[X!DDD1^=\'H28;V*Q#HJ;#QW`/@:G`$.:KWP$D4_9C?: +M+/P=X0\>WB(MA5%LBU%I9(/6(T@0YH<7LWR[LYX)$RCXA(JR$/,4#F/J#TD' +M]UWD/?$1Y^2'B.HB,/8+V@>/TSK2U\W2.?M)Z.71L/,#>'WO-Y3XC>PDFU='`T#H4I1=DA +MO0%#"=W<84?.0RO6([]N0EBR$D:4)258T&FD)BN%UPRRU?K+B+<-J&&N#0T< +M*VUU9I#(Q&*2J51528F"MUMTMNN[<[EQ8TW=TNF#7)E=W= +M+FS(0++R$IC%*1L&0D"1*P*%:MUDK<6D*1DD2PC`MM(6+E-16DU/5RL9&X+$ +MD[(5EZ7D,(R+((2BT:0"K0I&K1I+(6M%=G+==G.=KE=-VHXNFZF_,0X%B:WF +M2RVJN07\OZ9(X1&ED2/F^M/2>X?E=H.4FE8A5*%B1'K/6]?<*=,3Y8KTG,7E +M`!'*BT1SQ'"?S0DYUS;(JPJ%#A$URASLC]]%IH`CJN`1JJ#W@P#9,BI!'1IG +MMG?,5L))30C@DS"L0!&(W5A^SKO4FS+0B9EX1?JBC02K$D4L@_@.LPLG5S&J +M.BLA);(3*F6`Q*D%AM]L=B'FQ(YUUC.TNDL3$D!LQ$,2085+8SF5KF*C%YW8 +MZ5=;W56MVQ%.B*\4IP-%#D"'U!1J&2,(CC4B"P@0P#OWZ0MI(/+>^Y4L]@5@ +M>HW(N#J%V`\YN30`AQ4%@(KP%:TD4T*PC0(1)Z:@8,`P$6JI"``IVNJT8=)! +MX$%R)1$65"H9[/`74:Y`R31"=J@G=T=N3W68@R9TY0]FVUVVRLJ6M:R$V"2? +M`EJ&I'"DF1)[]DT)\_?3IRV$,@"-2D9%.Z)5`)FJ29WN*JCC-<\:V$.(DXLY +MLF]YA"T%H.;SF9K6M7:();))0B6:JI$T_9\;9W*.UUE==KE;]!B$,Q@`B$@H +M%B*TTUHC);5V]7/&\]U56YL3+*0$A041J21-DR8"(UHEL@QMI(2W=YW:R,:S +M)=%:WCA!!=DD\VV#A)76EL@M2U3$8-MEFU25MY9=+W5I1T-,D*B6"+%0546R +M*I:C>Y;,&BJ*3)%A&6*P4RV2K:M*J"RFRHF+XCB'"`W\#UP"85SHCE"E`EWH +MR*",81^&W036U9I5M58UL;35]/;AQN.ERWL:25',?U)(D74]85ZP%V*;^94X +M%3&$X\1WY@F14XD4#1^MQS'1&H2>%D.Y40U)^^/]F-N(5Z/'2XO +MOU3-&KJR6]C9LX]`;@*1#P_TOQ_I^;\/T/NU/I^.[G&XXNT8OR7T^_Y.9#(F +M,*!U:4`8`9'IPN+I@3-EP9*4]-9Y*A;C4\^N]F@TUZ:K5]^)APT51=KUYE'9 +MHAI4T[R)IE::U>6;\D=L5WN]!4//E<+&O.F>3KOK`ZZ`A-W=;.K+^_?+*P\D +MK34]>K?!YYFTMZ8AZFK$A=@1KCK(==0KAGJSCT\>GC1TVEZCW*-CCZR5GJKU +M1D,M[);+J]"@$"4**+979<-3$*@"BO'- +MZE%>>^0L\)7BHF_*8<=8D)R8[-NBM#&E3CV]O;>][WOPKJJ=A79_(8[MQDR5 +MQPM6[:RSOWSOY\=HWU68\:>LW?:*=Z$=:GJ3K0:B&(J(Z[JF,NR;7)OUQL9G +M7YO0^4K7/%E]44^X!NY1P/#10M`5T7)PKAJ+ +M$F^%A7:#V[7Q:I)-!0RLH8A2QG.F>>O7;ID +M^\]A3Z)16JFO0/<:UXTT]._!>F_3]_R?JWS))%L#OGN[ +M-N]@CE``4*(^:&BBSEB3I985V@[[[XM4DF@H1-*GA5JT&OF]\<'S]2<"B +MB*610VHTIZ[LM(K]BX:=U;I-FQ)HV&18Q.DE*E2S8:AXL+9!5D6E4BV+8 +M;14T&.[1HTI&LLM3`>'2&"5*;%-*23E21RU"1/2K422*I`6606Q$F:T:MI+6 +MHL62VU))"*H)-&X43<@YTJVVRJNB;=1)EUFJUT=7)N1PP4"C)[EFVCRH +M]%)P.[)UI5+2TJBBBBBBHHHHHJ42J6^I1U%#T%#E*/)NVPZ)T[WB98XG19:M +MMMGNT1H4=!1U@1*=RAR5;;$><68QEES,MSU\1:MEBRVU@VCPZ:&2DVB%AJRA +M01*6FFA13OY^?CWDR&8Y))88.9EXLF9)+S!DS)0!\'88(4>Y1[A2 +M4IX*;>:ZW.F54N9JZR!J:TT-FD12>:1T=F#9^.N6CW137&ITS79RY7Z3][RK +M]S,ML5(54O2+Y)"?"O/`;B/XR:DGGBO2P^`-$^5^BF5%'91V$4@JAVPD2U$C +MLB3HIW__"V2DJ#4E)Z3V62-BI!1N61/W_\OWN[??OLY\8?Z2J.)IF +M)+E+,MG[^2"AR05EEM5=O@/!AZ+(\*Z +M/*)(V#1C&+,B2_F^[**9%%8Q4$,@AZ57U(`'!,"GN1)^<(G9J?T=T(]8X0?EL +M)CV=!Y*IY0'K07D=R9$>7,-HR$8ZT*0]`M5$>40\BC!!\D5=`)ZD@.O=Y?+< +M3&+AYR)$KR(>4PIO$0R'FB0&0:2EBI2J44/X_F$3_:E^;J/T(>UJR`KO]L.) +M#V2/PEBR'X/L,F9IVG5VM)6E(J92;\-5TTO+L:HG*\C22R&)',[17 +M4]A_%(3I&BNHAU5(E63Y>".B'NZ)8_%#K$D>?_1AH8'J>IT'/PAJ +M*666)"0V/=$D1X$`-X,$GHU%\D8L%X)V]S^,/P5;;/I98JU?#,?MCU9PL35W +MM_0PK$FX8/:-R1S9":.668.8@O0K$`7B-4XZH(H8&"@A0((:=38B9(:DDW&M +M(ZR-N:+9+76*P*2)4C^>1J2:C@$3^:SA.G[[+4JR.*_?H$,A%11))]99`X2D +MQI@85;;(&6<0G]/]GU?V?V<_3))(TU#"K(_M)NJ;4M4LVU-1DC1B9_/VT_&O +MO:7`)>TT5.8)UB,`5.M-@!&J$5).>J',21.RK4D-HD.*B*"A^>,2:C=#\V1.6M-$RF3K".O4Z(X.8H9&I(=(Z=8XC3ER':01RX_ +MB_AMZIRXF*J2?A(?V][[>KK5^V=E$S&EFTPS(0C!C`%^AS#2"E6BIEX;@E:@ +M2V30BFF86!F)D0IF2G&+2:4632GXT=;(J+:B6I+%"RC8Q9-%BBP:(M)1:U?O +M_02"1;Z[4U;^/>6V^M/(I\"'N3C!^VK%[3)LN#@JOA&36F> +MYG]2'=E]$GPDB)X%4W`D]H1TC.R=B/1#C]1J*GQ5`0^H8$.GYA7B>LG02U&L +M(^@1I42(OHC]J'DR?4]S+%FS#]K5??'^,/SQ^I\7O?.1/R$^OXOPXD![V$+A +M^;[8^\(G)*(0'PAR#)W$2D*/;1,*J\A'U-4[PWGU@0[44#E.A01X"HI/')X` +MS5]55:A3.'+V?IQI)9U)J%?!))7*MOZ71 +MJ=(Z$(QG19)C'17OTO$.Z)1H[.3).B5>UEO`DW,UCU#?;BYE>](('@[R/=U= +MKL4H7]1*BV!4+2@P&(E/T!-9(K)(;XX<)_5#;V1'K2K49E1MM&*TLM"IL;&2 +MOS6V=VV5K*V-8K=-;=935FBMBQM;0RU2S5LT65JMB!31?S'910R3;&1IK&L6 +MQMJ-8&8VEFI9E*3,DF695:2J9M$M&&Q;&VHU@*E3:LR*M)D$C4S;:5-JJ*M3 +M:46VFFUBT4U26AE3%B6P6R6HKN?HTC$T_%#\A^"1/>.\1$^9858M5:7CW!2# +MYE@2T3W1#XQ^A(]3VG![W[UOE8UK)BILM%C1;:S)09!!/2=7!7)L>5]-A)&$ +MA(1^K#I17/,V;RUUPU);^.S4MOO==4`T2G$-MN9V/E'RC'15^V(=)`/B](A! +M6>I-P-34/+&$9$'])/9R>^VP581:1Q%8LD'8JST+`F2)NRU(L4A5)XC4AT[1LGQDGT(> +M3[9`_+7WU?S=&1,1%TMDI+NM3X0D^*.]+;?)&9EG%:7+BM!E9=EN-HH7-BYK +MR2MDVLK[\&%44*M)$^T0B5NR#']56KJ^=M7\0``;?SK7E\T-DP>#V;K-(2+; +M4M@6S`!"1'$3$"[E22@I4:!;L"!8VJ)`LL@E#:R[BT4T-`R1^WY8&JU4":MN +MX,"P1I$2VUA=Q'5%EA8R+,@RCHU(8TP8IM@HLABHJI$ITQ#$J)5DFK+4C)"B +ME1*U^?:NW]BW.:2BBC&[;)L-9;56PJREGD<*'],>_XT$+[_0388`<55$^57X +MN`>1.E>@0P!H)JRK;=JM]-,5O:;/M8PIBS7UCZ-:L?GBL4&@P\.Y(3LZPD]A +M]BQ9(>\\21T-))U-)'+]LAXB._T'"2=26*'"65"]GU_9(1/A4>9Z0T\1S(?P +M=?6TL2/A9*JVK5A5VUYL)HQ0==5TI^@DR1N"QD +M32R?8GS![020\O-DGT#N3M,]J>->\.[8ASY'"6MTB +MUBK;FJYJI,;;%94%J%L2V23%).U&"H_$R;DK\4KZ*W,05A+;;NWKS:M_%[9( +ME2:&$:LC(6)#5!9$85I(+"/X-\14J=1YFI(Q-I'&D +MC$9&)(C%'V221L=8IT;3AK$0Y")8CBR$ZV#523=B&[JR";+-ZQ-61INYPK8) +M86.-N-Q;;&(&(@Y(J"8T+:41&RD1<`@PFFA%$4P@",`5!LD19DFB/", +MDZ1Y6"K(="P,BA9/*+VB3N'N3CEV(XAUD$D[$^G3OFU6E805BD!&$DQC&P(1 +MR(Q@KDVMWU0B5>_*KQKG4<;YVB79D29<;D&K$)=\QOC6]\72)-#ER;)+)+(I +MV<[-1V+N".P295I;;Z8Q"HE-L>["HG::B*&B9OB30>*. +MDB0C($"*D98(D\(A43B';$B24\FYYQ9ED943#:U?2OBF5M:NU6JEF[J2%&R( +MFZ.GQ6_X3T!MU\>8^4?'WS6X61[>`_6_75JU56$JU:JJJJM"R1Z^QL1&5XQD +MB)VQ["$.U0U-"%`-6(:1.E`JJKH55JH/;DS&0"0#2T+BA20F!LO*=URC7-:4 +MN1;1N;5TL[K;D5TW+>+QH\72MSHZX$/&J\;4EI;RZVKKX=:E>=M=MVVBU:SM +MTDW,E;LJ-KJPT;7.454FT5-W;5R;44N[M)8C1M&(6Y*2Y;WZJ;8 +MQQ#H%=`:%)Y1^-^*K)8I[[GG]_&(3&*8ZM\P)\![Q\P9:8&!W1,N3(X&2-#A +MJ:F--5IT&IJII-DA^1(,D#Q(2:)VI/U(?#=[\28E++)!4&0PPI" +M^_15,10205!!@F/@/?3@;"N$4^*"@]B)Q/)) +M)!C%A\V@T%!QLKXDZTJ'@=I`[CQ?2'*I18)&`J$6"^4%#XXB@'8,;F)$9+`, +M5(2V)"3Y75(JDU2?2I)&4A:A+9-2DG:+`:L0EL@=EA!5)5B"E(.B1HA20Z'U +M-)(C29\]^0YDD2^TU:WY?2IJULUC4F1"#`A(Q@D2*R*OD'H#B>(#P40>SYB# +M]QY^2#Q(^D4>^-P]I/5N*MC1\3_?:2$8%O>FN3`PR0PF+BMP.4L^1*_;=M\\ +MXS)53,LN3@U`S!A%+!>@1W@KJD#90WIVI0?>3R1W`;S.Y?,_UXTV'UV$&?6) +MJ&:7SYMD'9Z07RAJ'@#W=RY4P`QG7N;X)S.9"$A`B213QIWHFQB#XA%-CM7Z +M@'N7N3CTIV]A@1[H#VJ]`7K$WIIZU01[#Q];1^0@.7I'M\)/<63Y_>17YE/D +MZ,G8A/8.C]1X,/BM"WD?1O8RN_SDJF"(.PQ1(0(L*$9)*(461^5C)'YG^'VJ +MG:1_.D^>NKYOG'>PM(6I%L@MB6I:-8U&K8L:E3:JI2VI+7Y.J<5(_-6*(EH2 +M<1PCR]!H=)HDVG>$/!%DGT1L1)J.UBD-I(C*M'JGO/07B>9)(YCY<23]D;Z;5E=7`^G?>\Z?IK +MJYHC5J/%KE`_.?/CN7<\1-YN1"1D`D5C$$&BT*1`:46PD1(0 +M!*AU(GM)")M#:J2615B3U6*B4R33"6UD5B8BQPS(IJZMBU=&JJIB81D+`^]^ +MZ'5W?RA[%*G@=J\X'(D)Q'D,-4]]7A[4AQP!W%<$PK[C@!R/*&P(>,1XO)U4 +M&+T`1&2,AV:@`O>B81#VC1C%5'J/*(L!13\(`C%0'[=`!&BO1-R&O%#B?6D` +M(M(*XW]HJ9%4]$42G,5,OU$?Q1]T/A%.L0/)RG1)8BI!*<(N1]"D0*EF(%1+!+$6;1JE:)82"IH>85<`(:(N5 +M@5>E.Y7FE4R$4T@(.@C$60B0B'<62O688`!`GD+K\:WN8GY,"H$``>=*B"[J +M)(4=%A`T=Y^SHJ9`EZLLH_>C=\X2KS3L(>KUO8$&@O?CDP,&E%](;LH.^[VF +MT26MQKK".(]%@%$Y$2^I$D"@$!.FQ'$`((`X$;A[Z:VR=IE[:E&UUIL,H;8B +MM-Y?(-P@*K[<]LV-K)HSC4C/.D3&HE;AY6:GMV*77KZ$F8:#UWSNBZF>OL=E +MNS7#Q"KYO+]:JOREG'DZUGE*^*.\.4--#X-#XL+NCY3=PFYW<_3LBW/-[<.I +MF2E,1D?I`A]9S)FIY8BU1:$!/3N\L/=6GUOPK7>X;C7=A=[FUR@7`DKMPN`7 +M>6/MFJD%HDF^R!LQ[B:V[,\;\7=5*'9DZH\)F^'7-5;_0-U7B1BO*F-O@8YE +M1LXL##WM,=U.J63T5S7@4Y4TE*HN,3J.[&U52R3T8X&F(Y5,:8Q6*9*55EK291I557IQW;3U4VP8<'I*PI719BX4K&"JJI@X>S-[,>*\6 +MZ:U&]+*;4Z6W1N)X::?&V;K%]K203@>9JBV`@$'GS$?;!9"\$K&K$TJ-1894 +M>O#<:GK8X1%M+9.:Q4MB[--&JE$FVDZ0HQ,U?8R`%7M5VKMJO;2[^*[\XA-D +M2J^=*G4<417&%V-Q[QT1#0^O.@UC(\&)&FO1)MWB5M4;/W^'LV6-N_6D-45; +M%5)I%2$U:U;5D%EC(J9:Y'8LC%&@M)U9S)#<;:C'GBK5OX"^R1'6>>_:0DL; +M0V8=!&K:54"Q+#ZA89(BHX,*"X1Y'*B@E'B.A)(Q.[7'EU[NM5MU7D`*]R&I +M1YGRJ2(;CMYDZ]W9.RKJ-$W.@\J"053179SA,&'#'0"<0".G'R_1^;CII$][ +M6O'-'JB%DQ?%[).K"]&DDLM0M*.Q^SRR+5:U"THTYDHM*HCVT%?J-4:$[HP^.\MW*M[R4_&6*K]%Z_DGRM&_2:YZBJY;NX>2Z+$""`=>_?Q[7S +MK6M:76RJZ.B`?!\EFAW!8HQ0(Y#)&63)8O.!H)";ZDJ +MBD%:0+7%()/G%.HVN@LA1+(-Y%HM#%/>[HV#7X=RN=78$;:2FBZ4*I94M%4L +MLNO?C*WO'K9O>#K[_?XSSTRJW\SL:[0CSOOG.NUOKONIXE4$;2(!C&,8P3BR +M#!".=E9L')`4@#.6-LW0T3&R=1>2D60D&*QB0DB"T*";D:?E* +MB47W")UD/#69`/'KU[SENE77G=YP$`Y&'H4Y#S*8W$;BD8226VZFK+W)?#<( +MQR*ZIWI&T;K9:5XNG[RBF9`LO/W3VK>WV3NLOQ9WF,D4AG:DM:[MBTI8J2QM +M%1BQMVOI4M<\VX3H**E9HQ$R<::DR12O,R$MBJ[I[SCFW=>)V31/1.)D5!(@ +M91IKLNC#-D)6&`U*55DHZUYNKO)JX-O*-8B6E0Z=%U'E7,D=%7=>JV5)E49A +MHHJZ*TXZ9HE!C;9DG%KE93E%V/3M;224B6R)825$I>&G'#'O,D:26"]K:J+? +M=-Q<598R[MLD@M1MK*V)L&J(-&C"".VU-=4CC$DM2HCA9)D+"/`?'5]W49J#OM<+.HX<6VVV&HQ4CT9-)&KZTJW,@2D.5\0:2Z.B;I!T +MJG>5E9CR]]'10\SN@FBX>(AH*Q$$(%PXU/$18@C0B\"G@)$!0Y4'L4>9HANB=P<;8L(XW),8N3&#"I"QDQ`'-&N1"*K"/ +M!0#<+P34X)3@?$B,CJZL'Z?R=[9"R60]ZHJWLB)T+A/A1].5,(FY0-_"!(O- +M5R)E%%J]@',[>O*CJ,4"20"$(DC(KYZNJ)DC:#2OJ[-HI((8Q<$C95A+6R%H +MI2"\\8`<.^G9[W;U=+%YU>7O73W:C35,:TJU+8-*TDJ62I&0V)!A#5)LZU6M +M[?'F]T*0/7>MT48R3)J[3=DTR4L)-1%H2HV4B:*0P,S,V-=>;M>`I2M38S:6 +MS3)IDI82:B+0E1J9MMW@MUMUEXBDD#!=%7FKJZV^+S5U>5[4KXO/1()#RV2V +M:FN;5>ZXUH,+I(FK:%MDS(C%A&,[:\[32:\:W+$7+;E46WVM?*"-)\=B'&A3 +M",GB#U'5]AYC4G$FV&8HXM'"C@"B$\:C(,,G$]B:0IX!TP1R(["G +M9%#N!44-A\JO9O!+8D6M18,$61411"HLG?D/7Z`[8DA(P?/!"8EL;&3L8RT4 +MQ(!@K;:/KB?$3_V)_YL?;41W^D1ZI0#F04&,59`03VE.]-D"19))4^(QVDA5 +M'J3^5AUBG\WRCNB>XX0'Y1?+S8$8(0^<34/`U5('L4(R&'1[26)W01*A*[PC +MH60^4?//9I955?[\;&T>'#V'EXC[^8D1.Y\[:D54'UB$A^U2."?C5]?:];BY +MP.;A)VU?R[:U^>IM::]J(E"0A\QXA/]4U.U(GFGPJ\1R@F[*U-Y[!?0AZ^@[ +M@ZRVX)C!)987`=1#3OXA@DDG:*26HAN+8XBFXIX/0F#9-Q9:3B,LD<2;PZ8A +MJ$LM!&;SZ!#5."L$XN@5(0^**5^>I`(&^)@$&U-Y\?0-;.0LF+)5GQYF&DN,UDQ$;;3:ADB&F,? +MH*C$-L3@K2I)B33B!=!3F66%!<+LHA"R%HA9AJO^%#8<<6\:3#*%E@R57*]Z +MELR2CET# +HB>?E'OI*J+26P6VU*JC]E@?6\>Y_-!$,@B'[8C__%W)%.%"0D/CAD0`` +` +end --- gcc-3.4-3.4.3.orig/debian/patches/gccbug.dpatch +++ gcc-3.4-3.4.3/debian/patches/gccbug.dpatch @@ -0,0 +1,38 @@ +#! /bin/sh -e + +# DP: Use sensible-editor instead of vi as fallback editor + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- gcc/gccbug.in~ 2003-03-01 00:51:42.000000000 +0100 ++++ gcc/gccbug.in 2003-03-02 12:08:36.000000000 +0100 +@@ -134,7 +134,7 @@ + # If they don't have a preferred editor set, then use + if [ -z "$VISUAL" ]; then + if [ -z "$EDITOR" ]; then +- EDIT=vi ++ EDIT=/usr/bin/sensible-editor + else + EDIT="$EDITOR" + fi --- gcc-3.4-3.4.3.orig/debian/patches/ada-gcc-name.dpatch +++ gcc-3.4-3.4.3/debian/patches/ada-gcc-name.dpatch @@ -0,0 +1,108 @@ +#! /bin/sh -e + +# DP: use gcc-3.4 instead of gcc as the command name. + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +diff -ur gcc/ada.old/ali.adb gcc/ada/ali.adb +--- gcc/ada.old/ali.adb 2004-02-21 15:23:32.000000000 +0100 ++++ gcc/ada/ali.adb 2004-02-21 15:23:57.000000000 +0100 +@@ -260,7 +260,7 @@ + Write_Str (" is incorrectly formatted"); + Write_Eol; + Write_Str +- ("make sure you are using consistent versions of gcc/gnatbind"); ++ ("make sure you are using consistent versions of gcc-3.4/gnatbind"); + Write_Eol; + + -- Find start of line +diff -ur gcc/ada.old/comperr.adb gcc/ada/comperr.adb +--- gcc/ada.old/comperr.adb 2004-02-21 15:23:32.000000000 +0100 ++++ gcc/ada/comperr.adb 2004-02-21 15:23:57.000000000 +0100 +@@ -292,7 +292,7 @@ + End_Line; + + Write_Str +- ("| Include the exact gcc or gnatmake command " & ++ ("| Include the exact gcc-3.4 or gnatmake command " & + "that you entered."); + End_Line; + +diff -ur gcc/ada.old/gnatlink.adb gcc/ada/gnatlink.adb +--- gcc/ada.old/gnatlink.adb 2004-02-21 15:23:32.000000000 +0100 ++++ gcc/ada/gnatlink.adb 2004-02-21 15:23:57.000000000 +0100 +@@ -123,7 +123,7 @@ + + subtype chars_ptr is System.Address; + +- Gcc : String_Access := Program_Name ("gcc"); ++ Gcc : String_Access := Program_Name ("gcc-3.4"); + + Read_Mode : constant String := "r" & ASCII.Nul; + +@@ -1287,7 +1287,8 @@ + Write_Line (" -b target Compile the binder source to run on target"); + Write_Line (" -Bdir Load compiler executables from dir"); + Write_Line (" --GCC=comp Use comp as the compiler"); +- Write_Line (" --LINK=nam Use 'nam' for the linking rather than 'gcc'"); ++ Write_Line (" --LINK=nam Use 'nam' for the linking rather " & ++ "than 'gcc-3.4'"); + Write_Eol; + Write_Line (" [non-Ada-objects] list of non Ada object files"); + Write_Line (" [linker-options] other options for the linker"); +diff -ur gcc/ada.old/make.adb gcc/ada/make.adb +--- gcc/ada.old/make.adb 2004-02-21 15:23:32.000000000 +0100 ++++ gcc/ada/make.adb 2004-02-21 15:23:57.000000000 +0100 +@@ -650,7 +650,7 @@ + -- Compiler, Binder & Linker Data and Subprograms -- + ---------------------------------------------------- + +- Gcc : String_Access := Program_Name ("gcc"); ++ Gcc : String_Access := Program_Name ("gcc-3.4"); + Gnatbind : String_Access := Program_Name ("gnatbind"); + Gnatlink : String_Access := Program_Name ("gnatlink"); + -- Default compiler, binder, linker programs +diff -ur gcc/ada.old/par-ch10.adb gcc/ada/par-ch10.adb +--- gcc/ada.old/par-ch10.adb 2004-02-21 15:23:32.000000000 +0100 ++++ gcc/ada/par-ch10.adb 2004-02-21 15:23:57.000000000 +0100 +@@ -224,7 +224,7 @@ + else + Item := First (Config_Pragmas); + Error_Msg_N +- ("cannot compile configuration pragmas with gcc", Item); ++ ("cannot compile configuration pragmas with gcc-3.4", Item); + Error_Msg_N + ("use gnatchop -c to process configuration pragmas!", Item); + raise Unrecoverable_Error; +--- gcc/ada/gnatchop.adb~ 2004-01-05 16:20:44.000000000 +0100 ++++ gcc/ada/gnatchop.adb 2004-04-25 09:33:51.000000000 +0200 +@@ -43,7 +43,7 @@ + Config_File_Name : constant String_Access := new String'("gnat.adc"); + -- The name of the file holding the GNAT configuration pragmas + +- Gcc : String_Access := new String'("gcc"); ++ Gcc : String_Access := new String'("gcc-3.4"); + -- May be modified by switch --GCC= + + Gcc_Set : Boolean := False; --- gcc-3.4-3.4.3.orig/debian/patches/ada-missing-lib.dpatch +++ gcc-3.4-3.4.3/debian/patches/ada-missing-lib.dpatch @@ -0,0 +1,49 @@ +#! /bin/sh -e + +# DP: Diable usage auf addr2line library (currently not packaged for Debian) + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p1 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p1 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- src/gcc/ada/adaint.c~ Sat Mar 2 00:38:10 2002 ++++ src/gcc/ada/adaint.c Fri Apr 5 18:36:10 2002 +@@ -2214,7 +2214,7 @@ + } + #endif + +-#if defined (CROSS_COMPILE) \ ++#if 1 || defined (CROSS_COMPILE) \ + || (! (defined (sparc) && defined (sun) && defined (__SVR4)) \ + && ! defined (linux) \ + && ! defined (sgi) \ +--- src/gcc/ada/Makefile.in~ Thu Mar 14 12:46:04 2002 ++++ src/gcc/ada/Makefile.in Fri Apr 5 18:39:51 2002 +@@ -1169,7 +1169,7 @@ + system.ads<5lsystem.ads + + MLIB_TGT=5lml-tgt +- MISCLIB=-laddr2line -lbfd ++ MISCLIB=-lbfd + THREADSLIB=-lpthread + GNATLIB_SHARED=gnatlib-shared-dual + GMEM_LIB=gmemlib --- gcc-3.4-3.4.3.orig/debian/patches/cpu-default-i586.dpatch +++ gcc-3.4-3.4.3/debian/patches/cpu-default-i586.dpatch @@ -0,0 +1,41 @@ +#! /bin/sh -e + +# DP: generate code for architecture i586, tuned for i686 by default. + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- gcc/config/i386/i386.c~ 2004-03-11 07:03:59.000000000 +0100 ++++ gcc/config/i386/i386.c 2004-03-11 07:05:22.000000000 +0100 +@@ -1158,9 +1158,9 @@ + if (!ix86_tune_string && ix86_arch_string) + ix86_tune_string = ix86_arch_string; + if (!ix86_tune_string) +- ix86_tune_string = cpu_names [TARGET_CPU_DEFAULT]; ++ ix86_tune_string = cpu_names [TARGET_CPU_DEFAULT_pentiumpro]; + if (!ix86_arch_string) +- ix86_arch_string = TARGET_64BIT ? "x86-64" : "i386"; ++ ix86_arch_string = TARGET_64BIT ? "x86-64" : "i586"; + + if (ix86_cmodel_string != 0) + { --- gcc-3.4-3.4.3.orig/debian/patches/libobjc.dpatch +++ gcc-3.4-3.4.3/debian/patches/libobjc.dpatch @@ -0,0 +1,31 @@ +#! /bin/sh -e + +# DP: Find gc.h header in /usr/include/gc for --enable-objc-gc enabled builds. + + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- libobjc/Makefile.in~ Fri Jul 21 13:16:47 2000 ++++ libobjc/Makefile.in Fri Jul 21 13:20:23 2000 +@@ -76,7 +76,7 @@ + -I$(srcdir)/$(MULTISRCTOP)../gcc/config -I$(MULTIBUILDTOP)../../gcc \ + -I$(srcdir)/$(MULTISRCTOP)../include + +-OBJC_GCFLAGS=-DOBJC_WITH_GC=1 ++OBJC_GCFLAGS=-I/usr/include/gc -DOBJC_WITH_GC=1 + OBJC_THREAD_FILE=thr-objc + + .SUFFIXES: --- gcc-3.4-3.4.3.orig/debian/patches/libgpc-shared.dpatch +++ gcc-3.4-3.4.3/debian/patches/libgpc-shared.dpatch @@ -0,0 +1,49 @@ +#! /bin/sh -e + +# DP: build shared libgpc (pascal runtime library) + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- gcc/p/Make-lang.in~ 2003-01-13 22:37:21.000000000 +0100 ++++ gcc/p/Make-lang.in 2003-01-13 22:42:48.000000000 +0100 +@@ -98,7 +98,7 @@ + GPCSOLIBSHORTNAME=libgpc.so + GPCSOLIBNAME=$(GPCSOLIBSHORTNAME).$(gpc_major).$(gpc_minor).$(rts_version) + GPCSOLIBDIR=lib +-WITH_SHARED=@with_shared@ ++WITH_SHARED=yes + + BISON=bison + BISONFLAGS= +--- gcc/p/rts/Makefile.in~ 2002-11-14 17:23:41.000000000 +0100 ++++ gcc/p/rts/Makefile.in 2003-01-13 22:43:00.000000000 +0100 +@@ -42,7 +42,7 @@ + WITH_SHARED=@with_shared@ + VERSION_FILENAME=$(srcdir)/rts-version + gpc_major=2 +-gpc_minor=0 ++gpc_minor=1 + rts_version=`cat $(VERSION_FILENAME)` + GPCSOLIBSHORTNAME=libgpc.so + GPCSOLIBNAME=$(GPCSOLIBSHORTNAME).$(gpc_major).$(gpc_minor).$(rts_version) --- gcc-3.4-3.4.3.orig/debian/patches/gpc-names.dpatch +++ gcc-3.4-3.4.3/debian/patches/gpc-names.dpatch @@ -0,0 +1,117 @@ +#! /bin/sh -e + +# DP: versioned gpc names + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- src-old/gcc/p/doc/en/gpc.texi Mon Oct 9 09:32:26 2000 ++++ src-native/gcc/p/doc/en/gpc.texi Tue Dec 19 21:04:21 2000 +@@ -28,11 +28,11 @@ + + @dircategory GNU programming tools + @direntry +-* GPC: (gpc). The GNU Pascal Compiler. ++* GPC-2.1-3.3: (gpc-2.1-3.3). The GNU Pascal Compiler. + @end direntry + @dircategory Individual utilities + @direntry +-* GPC: (gpc)Invoking GPC. The GNU Pascal Compiler. ++* GPC-2.1-3.3: (gpc-2.1-3.3)Invoking GPC. The GNU Pascal Compiler. + @end direntry + + @c Version numbers appear twice: in lowercase and capitalized for headlines. + +--- src/gcc/p/Make-lang.in~ 2003-08-31 10:13:01.000000000 +0200 ++++ src/gcc/p/Make-lang.in 2003-08-31 10:20:51.000000000 +0200 +@@ -711,42 +711,42 @@ + pascal.start.encap: + pascal.rest.encap: + +-pascal.info: $(srcdir)/p/doc/info/gpc.info \ +- $(srcdir)/p/doc/info/gpcs.info \ +- $(srcdir)/p/doc/info/gpcs-de.info \ +- $(srcdir)/p/doc/info/gpc-hr.info \ +- $(srcdir)/p/doc/info/gpcs-hr.info \ +- $(srcdir)/p/doc/info/gpc-es.info \ +- $(srcdir)/p/doc/info/gpcs-es.info ++pascal.info: $(srcdir)/p/doc/info/gpc-2.1$(iv).info \ ++ $(srcdir)/p/doc/info/gpcs-2.1$(iv).info \ ++ $(srcdir)/p/doc/info/gpcs-de-2.1$(iv).info \ ++ $(srcdir)/p/doc/info/gpc-hr-2.1$(iv).info \ ++ $(srcdir)/p/doc/info/gpcs-hr-2.1$(iv).info \ ++ $(srcdir)/p/doc/info/gpc-es-2.1$(iv).info \ ++ $(srcdir)/p/doc/info/gpcs-es-2.1$(iv).info + pascal.dvi: gpc.dvi + +-$(srcdir)/p/doc/info/gpc.info: $(GPC_TEXI_EN) ++$(srcdir)/p/doc/info/gpc-2.1$(iv).info: $(GPC_TEXI_EN) + [ -d "$(srcdir)/p/doc/info" ] || $(srcdir)/p/script/mkdir-p "$(srcdir)/p/doc/info" +- $(MAKEINFO_EN) -o $(srcdir)/p/doc/info/gpc.info gpc.texi ++ $(MAKEINFO_EN) -o $(srcdir)/p/doc/info/gpc-2.1$(iv).info gpc.texi + +-$(srcdir)/p/doc/info/gpcs.info: $(GPC_TEXI_EN) ++$(srcdir)/p/doc/info/gpcs-2.1$(iv).info: $(GPC_TEXI_EN) + [ -d "$(srcdir)/p/doc/info" ] || $(srcdir)/p/script/mkdir-p "$(srcdir)/p/doc/info" +- $(MAKEINFO_EN) --no-split -o $(srcdir)/p/doc/info/gpcs.info gpcs.texi ++ $(MAKEINFO_EN) --no-split -o $(srcdir)/p/doc/info/gpcs-2.1$(iv).info gpcs.texi + +-$(srcdir)/p/doc/info/gpcs-de.info: $(GPC_TEXI_DE) ++$(srcdir)/p/doc/info/gpcs-de-2.1$(iv).info: $(GPC_TEXI_DE) + [ -d "$(srcdir)/p/doc/info" ] || $(srcdir)/p/script/mkdir-p "$(srcdir)/p/doc/info" +- $(MAKEINFO_DE) --no-split -o $(srcdir)/p/doc/info/gpcs-de.info gpcs.texi ++ $(MAKEINFO_DE) --no-split -o $(srcdir)/p/doc/info/gpcs-de-2.1$(iv).info gpcs.texi + +-$(srcdir)/p/doc/info/gpc-hr.info: $(GPC_TEXI_HR) ++$(srcdir)/p/doc/info/gpc-hr-2.1$(iv).info: $(GPC_TEXI_HR) + [ -d "$(srcdir)/p/doc/info" ] || $(srcdir)/p/script/mkdir-p "$(srcdir)/p/doc/info" +- $(MAKEINFO_HR) -o $(srcdir)/p/doc/info/gpc-hr.info gpc.texi ++ $(MAKEINFO_HR) -o $(srcdir)/p/doc/info/gpc-hr-2.1$(iv).info gpc.texi + +-$(srcdir)/p/doc/info/gpcs-hr.info: $(GPC_TEXI_HR) ++$(srcdir)/p/doc/info/gpcs-hr-2.1$(iv).info: $(GPC_TEXI_HR) + [ -d "$(srcdir)/p/doc/info" ] || $(srcdir)/p/script/mkdir-p "$(srcdir)/p/doc/info" +- $(MAKEINFO_HR) --no-split -o $(srcdir)/p/doc/info/gpcs-hr.info gpcs.texi ++ $(MAKEINFO_HR) --no-split -o $(srcdir)/p/doc/info/gpcs-hr-2.1$(iv).info gpcs.texi + +-$(srcdir)/p/doc/info/gpc-es.info: $(GPC_TEXI_ES) ++$(srcdir)/p/doc/info/gpc-es-2.1$(iv).info: $(GPC_TEXI_ES) + [ -d "$(srcdir)/p/doc/info" ] || $(srcdir)/p/script/mkdir-p "$(srcdir)/p/doc/info" +- $(MAKEINFO_ES) -o $(srcdir)/p/doc/info/gpc-es.info gpc.texi ++ $(MAKEINFO_ES) -o $(srcdir)/p/doc/info/gpc-es-2.1$(iv).info gpc.texi + +-$(srcdir)/p/doc/info/gpcs-es.info: $(GPC_TEXI_ES) ++$(srcdir)/p/doc/info/gpcs-es-2.1$(iv).info: $(GPC_TEXI_ES) + [ -d "$(srcdir)/p/doc/info" ] || $(srcdir)/p/script/mkdir-p "$(srcdir)/p/doc/info" +- $(MAKEINFO_ES) --no-split -o $(srcdir)/p/doc/info/gpcs-es.info gpcs.texi ++ $(MAKEINFO_ES) --no-split -o $(srcdir)/p/doc/info/gpcs-es-2.1$(iv).info gpcs.texi + + gpc.dvi: $(GPC_TEXI_EN) + TEXINPUTS=$(srcdir)/p/doc:$(srcdir)/p/doc/images:$$TEXINPUTS \ +@@ -942,11 +942,11 @@ + fi + + pascal.install-info: pascal.install-info-man-dirs pascal.info +- rm -f $(DESTDIR)$(infodir)/gpc.info* $(DESTDIR)$(infodir)/gpcs.info* $(DESTDIR)$(infodir)/gpcs-de.info* $(DESTDIR)$(infodir)/gpcs-hr.info* $(DESTDIR)$(infodir)/gpcs-es.info* +- for f in `cd $(srcdir)/p/doc/info && echo gpc.info* gpcs*.info*`; do \ ++ rm -f $(DESTDIR)$(infodir)/gpc*.info* $(DESTDIR)$(infodir)/gpcs*.info* $(DESTDIR)$(infodir)/gpcs-de*.info* $(DESTDIR)$(infodir)/gpcs-hr*.info* $(DESTDIR)$(infodir)/gpcs-es*.info* ++ for f in `cd $(srcdir)/p/doc/info && echo gpc-2.1$(iv).info* gpcs*.info*`; do \ + $(INSTALL_DATA) $(srcdir)/p/doc/info/$$f $(DESTDIR)$(infodir)/$$f || exit 1; \ + done +- chmod a-x $(DESTDIR)$(infodir)/gpc.info* $(DESTDIR)$(infodir)/gpcs.info* $(DESTDIR)$(infodir)/gpcs-de.info* $(DESTDIR)$(infodir)/gpcs-hr.info* $(DESTDIR)$(infodir)/gpcs-es.info* ++ chmod a-x $(DESTDIR)$(infodir)/gpc*.info* $(DESTDIR)$(infodir)/gpcs*.info* $(DESTDIR)$(infodir)/gpcs-de*.info* $(DESTDIR)$(infodir)/gpcs-hr*.info* $(DESTDIR)$(infodir)/gpcs-es*.info* + + pascal.install-man: pascal.install-info-man-dirs $(srcdir)/p/doc/en/gpc.1 $(srcdir)/p/doc/generated/gpc-run.1 + -if [ -f gpc1$(exeext) ]; then \ --- gcc-3.4-3.4.3.orig/debian/patches/gcj-without-rpath.dpatch +++ gcc-3.4-3.4.3/debian/patches/gcj-without-rpath.dpatch @@ -0,0 +1,120 @@ +#! /bin/sh -e + +# DP: don't define runtime link path for java binaries and libraries + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p1 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p1 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- src/libjava/Makefile.am~ Mon Apr 1 11:29:37 2002 ++++ src/libjava/Makefile.am Mon Apr 1 11:42:55 2002 +@@ -109,6 +109,8 @@ + + ## ################################################################ + ++rpath_def = $(shell if test "$(toolexeclibdir)" != /usr/lib -a test "$(toolexeclibdir)" != /usr/lib/.; then echo -rpath $(toolexeclibdir); fi) ++ + ## + ## How to build libgcj.a and libgcj.jar + ## +@@ -423,7 +425,7 @@ + ## need this because we are explicitly using libtool to link using the + ## `.la' file. + jv_convert_LDFLAGS = --main=gnu.gcj.convert.Convert \ +- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) ++ $(rpath_def) -shared-libgcc $(THREADLDFLAGS) + jv_convert_LINK = $(GCJLINK) + ## We explicitly link in the libraries we need. This way we don't + ## need -nodefaultlibs, so we can still rely on gcj picking up the +@@ -440,7 +442,7 @@ + ## We need -nodefaultlibs because we want to avoid gcj's `-lgcj'. We + ## need this because we are explicitly using libtool to link using the + ## `.la' file. +-gij_LDFLAGS = -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) ++gij_LDFLAGS = $(rpath_def) -shared-libgcc $(THREADLDFLAGS) + gij_LINK = $(GCJLINK) + ## We explicitly link in the libraries we need. This way we don't + ## need -nodefaultlibs, so we can still rely on gcj picking up the +@@ -456,7 +458,7 @@ + ## This is a dummy definition. + EXTRA_rmic_SOURCES = $(rmi_java_source_files) + rmic_LDFLAGS = --main=gnu.java.rmi.rmic.RMIC \ +- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) ++ $(rpath_def) -shared-libgcc $(THREADLDFLAGS) + rmic_LINK = $(GCJLINK) + ## We explicitly link in the libraries we need. This way we don't + ## need -nodefaultlibs, so we can still rely on gcj picking up the +@@ -472,7 +474,7 @@ + ## This is a dummy definition. + EXTRA_rmiregistry_SOURCES = $(rmi_java_source_files) + rmiregistry_LDFLAGS = --main=gnu.java.rmi.registry.RegistryImpl \ +- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) ++ $(rpath_def) -shared-libgcc $(THREADLDFLAGS) + rmiregistry_LINK = $(GCJLINK) + ## We explicitly link in the libraries we need. This way we don't + ## need -nodefaultlibs, so we can still rely on gcj picking up the +--- src/libjava/Makefile.in~ Mon Apr 1 11:29:37 2002 ++++ src/libjava/Makefile.in Mon Apr 1 11:44:02 2002 +@@ -195,6 +195,7 @@ + $(GCINCS) $(THREADINCS) $(INCLTDL) \ + $(GCC_UNWIND_INCLUDE) $(ZINCS) $(LIBFFIINCS) + ++rpath_def = $(shell if test "$(toolexeclibdir)" != /usr/lib -a test "$(toolexeclibdir)" != /usr/lib/.; then echo -rpath $(toolexeclibdir); fi) + + nat_files = $(nat_source_files:.cc=.lo) + x_nat_files = $(x_nat_source_files:.cc=.lo) +@@ -267,7 +268,7 @@ + jv_convert_SOURCES = + EXTRA_jv_convert_SOURCES = $(convert_source_files) + jv_convert_LDFLAGS = --main=gnu.gcj.convert.Convert \ +- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) ++ $(rpath_def) -shared-libgcc $(THREADLDFLAGS) + + jv_convert_LINK = $(GCJLINK) + jv_convert_LDADD = libgcj.la -L$(here)/.libs +@@ -276,7 +277,7 @@ + + + gij_SOURCES = gij.cc +-gij_LDFLAGS = -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) ++gij_LDFLAGS = $(rpath_def) -shared-libgcc $(THREADLDFLAGS) + gij_LINK = $(GCJLINK) + gij_LDADD = libgcj.la -L$(here)/.libs + gij_DEPENDENCIES = libgcj.la libgcj.spec +@@ -284,7 +285,7 @@ + rmic_SOURCES = + EXTRA_rmic_SOURCES = $(rmi_java_source_files) + rmic_LDFLAGS = --main=gnu.java.rmi.rmic.RMIC \ +- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) ++ $(rpath_def) -shared-libgcc $(THREADLDFLAGS) + + rmic_LINK = $(GCJLINK) + rmic_LDADD = libgcj.la -L$(here)/.libs +@@ -293,7 +294,7 @@ + rmiregistry_SOURCES = + EXTRA_rmiregistry_SOURCES = $(rmi_java_source_files) + rmiregistry_LDFLAGS = --main=gnu.java.rmi.registry.RegistryImpl \ +- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) ++ $(rpath_def) -shared-libgcc $(THREADLDFLAGS) + + rmiregistry_LINK = $(GCJLINK) + rmiregistry_LDADD = libgcj.la -L$(here)/.libs --- gcc-3.4-3.4.3.orig/debian/patches/ada-driver.dpatch +++ gcc-3.4-3.4.3/debian/patches/ada-driver.dpatch @@ -0,0 +1,38 @@ +#! /bin/sh -e + +# DP: Look for gcc-3.3 as gcc with Ada support. + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + + +--- gcc/aclocal.m4~ Sat Mar 2 00:37:42 2002 ++++ gcc/aclocal.m4 Sat Apr 6 13:01:36 2002 +@@ -312,6 +312,7 @@ + ${ac_tool_prefix}$user_cc $user_cc \ + ${ac_tool_prefix}gcc gcc \ + ${ac_tool_prefix}cc cc \ ++ ${ac_tool_prefix}gcc-3.3 gcc-3.3 \ + ${ac_tool_prefix}gnatgcc gnatgcc \ + ${ac_tool_prefix}gnatcc gnatcc \ + ${ac_tool_prefix}adagcc adagcc \ --- gcc-3.4-3.4.3.orig/debian/patches/libstdc++-pic.dpatch +++ gcc-3.4-3.4.3/debian/patches/libstdc++-pic.dpatch @@ -0,0 +1,72 @@ +#! /bin/sh -e + +# DP: Build and install libstdc++_pic.a library. + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- libstdc++-v3/src/Makefile.am~ 2003-02-28 09:21:05.000000000 +0100 ++++ libstdc++-v3/src/Makefile.am 2003-02-28 09:28:50.000000000 +0100 +@@ -224,6 +224,10 @@ + @OPT_LDFLAGS@ @SECTION_LDFLAGS@ $(AM_CXXFLAGS) $(LDFLAGS) -o $@ + + ++install-exec-local: ++ $(AR) cru libstdc++_pic.a .libs/*.o $(top_builddir)/libsupc++/*.o ++ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) ++ + # Added bits to build debug library. + if GLIBCPP_BUILD_DEBUG + all-local: build_debug + +--- libstdc++-v3/src/Makefile.in~ 2004-02-21 09:55:48.000000000 +0100 ++++ libstdc++-v3/src/Makefile.in 2004-02-21 09:59:34.000000000 +0100 +@@ -585,7 +585,7 @@ + + install-data-am: install-data-local + +-install-exec-am: install-toolexeclibLTLIBRARIES ++install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local + + install-info: install-info-am + +@@ -618,6 +618,7 @@ + distclean-tags distdir dvi dvi-am info info-am install \ + install-am install-data install-data-am install-data-local \ + install-exec install-exec-am install-info install-info-am \ ++ install-exec-local \ + install-man install-strip install-toolexeclibLTLIBRARIES \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ +@@ -707,6 +708,11 @@ + install_debug: + (cd ${debugdir} && $(MAKE) \ + toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install) ++ ++install-exec-local: ++ $(AR) cru libstdc++_pic.a .libs/*.o $(top_builddir)/libsupc++/*.o ++ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) ++ + # 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: --- gcc-3.4-3.4.3.orig/debian/patches/gcc-version.dpatch +++ gcc-3.4-3.4.3/debian/patches/gcc-version.dpatch @@ -0,0 +1,32 @@ +#! /bin/sh -e + +# DP: Add "(Debian )" to the gcc version string + +pkgversion= +if [ -n "$DEB_VERSION" ]; then + pkgversion=" $DEB_VERSION" +fi + +dir=gcc +if [ $# -eq 3 -a "$2" = '-d' ]; then + dir=$3/gcc +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + sed -e '/version_string/s/"\([^"]*\)"/"\1 (Debian'"$pkgversion"')"/' \ + $dir/version.c > $dir/version.c.new \ + && mv -f $dir/version.c.new $dir/version.c + ;; + -unpatch) + sed -e 's/ *(Debian.*)//g' -e 's/Debian *//' \ + $dir/version.c > $dir/version.c.new \ + && mv -f $dir/version.c.new $dir/version.c + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 --- gcc-3.4-3.4.3.orig/debian/patches/arm-tune.dpatch +++ gcc-3.4-3.4.3/debian/patches/arm-tune.dpatch @@ -0,0 +1,72 @@ +#! /bin/sh -e + +# DP: ARM patch for default tuning + +src=gcc +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + src=$3/gcc +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p1 --fuzz 10 < $0 + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p1 --fuzz 10 < $0 + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- src/gcc/config/arm/arm.c 2001/05/24 21:09:05 1.146 ++++ src/gcc/config/arm/arm.c 2001/06/17 19:10:22 +@@ -430,6 +430,32 @@ arm_override_options () + abort (); + + insn_flags = sel->flags; ++ ++#ifdef TARGET_TUNE_DEFAULT ++ /* If the user didn't specify tuning either, use the target's ++ preferred flags. */ ++ if (tune_flags == 0) ++ { ++ struct processors * tunesel; ++ struct cpu_default * tunedef; ++ ++ for (tunedef = cpu_defaults; tunedef->name; tunedef++) ++ if (tunedef->cpu == TARGET_TUNE_DEFAULT) ++ break; ++ ++ if (tunedef->name == NULL) ++ abort (); ++ ++ for (tunesel = all_cores; tunesel->name != NULL; tunesel++) ++ if (streq (tunedef->name, tunesel->name)) ++ break; ++ ++ if (tunesel->name == NULL) ++ abort (); ++ ++ tune_flags = tunesel->flags; ++ } ++#endif + + /* Now check to see if the user has specified some command line + switch that require certain abilities from the cpu. */ +--- src/gcc/config/arm/linux-elf.h~ 13 Dec 2001 00:27:30 -0000 1.30 ++++ src/gcc/config/arm/linux-elf.h Thu May 23 07:59:25 2002 +@@ -122,6 +122,9 @@ + #undef CC1_SPEC + #define CC1_SPEC "%{profile:-p}" + ++/* Tune for XScale. */ ++#define TARGET_TUNE_DEFAULT TARGET_CPU_xscale ++ + /* Copied from config/linux.h, needed for libstdc++v3. */ + #undef CPLUSPLUS_CPP_SPEC + #define CPLUSPLUS_CPP_SPEC "-D_GNU_SOURCE %(cpp)" --- gcc-3.4-3.4.3.orig/debian/patches/sparc-config-ml.dpatch +++ gcc-3.4-3.4.3/debian/patches/sparc-config-ml.dpatch @@ -0,0 +1,58 @@ +#! /bin/sh -e + +# sparc-config-ml.dpatch by +# +# DP: disable some biarch libraries for sparc64 build + +if [ $# -eq 3 ] && [ "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 + +--- config-ml.in.bak 2002-07-02 12:36:38.000000000 +0000 ++++ config-ml.in 2003-03-14 21:37:47.000000000 +0000 +@@ -478,13 +478,29 @@ + ;; + sparc*-*-*) + case " $multidirs " in +- *" m64 "*) ++ *" 64 "*) + # We will not be able to create libraries with -m64 if + # we cannot even link a trivial program. It usually + # indicates the 64bit libraries are missing. + if echo 'main() {}' > conftest.c && + ${CC-gcc} -m64 conftest.c -o conftest; then +- : ++ echo Enable only libstdc++. ++ old_multidirs="${multidirs}" ++ multidirs="" ++ for x in ${old_multidirs}; do ++ case "$x" in ++ *64* ) case ${ml_realsrcdir} in ++ *"libstdc++-v3" ) multidirs="${multidirs} ${x}" ;; ++ *"libf2c" ) multidirs="${multidirs} ${x}" ;; ++ *"libobjc" ) multidirs="${multidirs} ${x}" ;; ++ *"libiberty" ) multidirs="${multidirs} ${x}" ;; ++ *"zlib" ) multidirs="${multidirs} ${x}" ;; ++ *) : ;; ++ esac ++ ;; ++ *) multidirs="${multidirs} ${x}" ;; ++ esac ++ done + else + echo Could not link program with -m64, disabling it. + old_multidirs="${multidirs}" + --- gcc-3.4-3.4.3.orig/debian/patches/ada-link-lib.dpatch +++ gcc-3.4-3.4.3/debian/patches/ada-link-lib.dpatch @@ -0,0 +1,66 @@ +#! /bin/sh -e + +# DP: - Install the shared Ada libraries as '.so.1', not '.so' to conform +# DP: to the Debian policy. +# DP: - Don't include a runtime link path (-rpath), when linking binaries. +# DP: - Build the shared libraries on hppa-linux. + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p1 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p1 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- src/gcc/ada/Makefile.in~ Fri Apr 5 19:03:14 2002 ++++ src/gcc/ada/Makefile.in Sun Feb 15 16:30:14 2002 +@@ -133,7 +133,7 @@ + objext = .o + exeext = + arext = .a +-soext = .so ++soext = .so.1 + shext = + + HOST_CC=$(CC) +@@ -750,6 +750,11 @@ + LIBRARY_VERSION := $(strip $(shell grep Library_Version $(fsrcpfx)gnatvsn.ads | sed -e 's/.*GNAT Lib v\(.*\)[ "].*/\1/')) + endif + ++ifeq ($(strip $(filter-out hppa% unknown linux gnu,$(targ))),) ++ GNATLIB_SHARED = gnatlib-shared-dual ++ LIBRARY_VERSION := $(LIB_VERSION) ++endif ++ + ifeq ($(strip $(filter-out hppa% hp hpux10%,$(targ))),) + LIBGNAT_TARGET_PAIRS = \ + a-excpol.adb<4wexcpol.adb \ +--- src/gcc/ada/link.c~ 2004-03-26 00:14:55.000000000 +0100 ++++ src/gcc/ada/link.c 2004-03-26 00:17:13.000000000 +0100 +@@ -165,8 +165,8 @@ + + #elif defined (linux) + const char *object_file_option = ""; +-const char *run_path_option = "-Wl,-rpath,"; +-char shared_libgnat_default = STATIC; ++const char *run_path_option = ""; ++char shared_libgnat_default = SHARED; + int link_max = 8192; + unsigned char objlist_file_supported = 1; + unsigned char using_gnu_linker = 1; --- gcc-3.4-3.4.3.orig/debian/patches/alpha-ieee.dpatch +++ gcc-3.4-3.4.3/debian/patches/alpha-ieee.dpatch @@ -0,0 +1,55 @@ +#! /bin/sh -e + +# DP: #212912 +# DP: on alpha-linux, make -mieee default and add -mieee-disable switch +# DP: to turn default off + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p1 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p1 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + + +--- src/gcc/config/alpha/alpha.c_ 2003-12-23 15:08:11.000000000 -0500 ++++ src/gcc/config/alpha/alpha.c 2003-12-23 15:16:31.000000000 -0500 +@@ -337,4 +337,8 @@ + }; + ++ /* If not -ffinite-math-only, enable -mieee*/ ++ if (!flag_finite_math_only) ++ target_flags |= MASK_IEEE|MASK_IEEE_CONFORMANT; ++ + /* Unicos/Mk doesn't have shared libraries. */ + if (TARGET_ABI_UNICOSMK && flag_pic) +--- src/gcc/doc/invoke.texi_ 2004-01-06 10:59:19.000000000 -0500 ++++ src/gcc/doc/invoke.texi 2004-01-06 11:26:11.000000000 -0500 +@@ -8571,4 +8571,11 @@ + compilers call this option @option{-ieee_with_no_inexact}. + ++DEBIAN SPECIFIC: This option is on by default, unless ++@option{-ffinite-math-only} (which is part of the @option{-ffast-math} ++set) is specified, because the software functions in the GNU libc math ++libraries generate denormalized numbers, NaNs, and infs (all of which ++will cause a programs to SIGFPE when it attempts to use the results without ++@option{-mieee}). ++ + @item -mieee-with-inexact + @opindex mieee-with-inexact --- gcc-3.4-3.4.3.orig/debian/patches/libssp.dpatch +++ gcc-3.4-3.4.3/debian/patches/libssp.dpatch @@ -0,0 +1,94 @@ +#! /bin/sh -e + +# All lines beginning with `# DPATCH:' are a description of the patch. +# DP: Hardened Debian SSP/ProPolice library (libssp). lorenzo@gnu.org + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- gcc/Makefile.in 2004-11-11 01:11:56.000000000 +0100 ++++ gcc/Makefile.in 2004-11-11 01:10:15.000000000 +0100 +@@ -486,11 +486,11 @@ + INSTALL_LIBGCC = install-libgcc + + # Options to use when compiling libgcc2.a. + # + LIBGCC2_DEBUG_CFLAGS = -g +-LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(TARGET_LIBGCC2_CFLAGS) $(LIBGCC2_DEBUG_CFLAGS) $(GTHREAD_FLAGS) -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED @inhibit_libc@ ++LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(TARGET_LIBGCC2_CFLAGS) $(LIBGCC2_DEBUG_CFLAGS) $(GTHREAD_FLAGS) -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED @inhibit_libc@ -D_LIBSSP_PROVIDES_SSP_ + + # Additional options to use when compiling libgcc2.a. + # Some targets override this to -isystem include + LIBGCC2_INCLUDES = + +--- gcc/gcc.c 2004-11-14 21:17:58.585438344 -0500 ++++ gcc/gcc.c 2004-11-21 13:28:43.699379520 -0500 +@@ -711,7 +711,17 @@ + static const char *link_gcc_c_sequence_spec = LINK_GCC_C_SEQUENCE_SPEC; + static const char *asm_spec = ASM_SPEC; + static const char *asm_final_spec = ASM_FINAL_SPEC; ++ ++#if defined(_LIBSSP_PROVIDES_SSP_) ++#if defined(EFAULT_PIE_SSP) || defined(EFAULT_SSP) ++static const char *link_spec = LINK_SPEC " %{!fno-stack-protector|!fno-stack-protector-all:-lssp %{static: -lc}}"; ++#else ++static const char *link_spec = LINK_SPEC " %{fstack-protector|fstack-protector-all:-lssp %{static: -lc}}"; ++#endif // defined(EFAULT_PIE_SSP) || defined(EFAULT_SSP) ++#else + static const char *link_spec = LINK_SPEC; ++#endif // defined(_LIBSSP_PROVIDES_SSP_) ++ + static const char *lib_spec = LIB_SPEC; + static const char *libgcc_spec = LIBGCC_SPEC; + static const char *endfile_spec = ENDFILE_SPEC; +diff -Nru gcc-3.4.3-ssp/gcc/libgcc-std.ver gcc-3.4.3-ssp-libssp/gcc/libgcc-std.ver +--- gcc/libgcc-std.ver 2004-11-14 21:18:00.004222656 -0500 ++++ gcc/libgcc-std.ver 2004-11-15 19:22:11.802713352 -0500 +@@ -175,7 +175,7 @@ + _Unwind_SjLj_ForcedUnwind + _Unwind_SjLj_Resume + +-%if !defined(_LIBC_PROVIDES_SSP_) ++%if !defined(_LIBC_PROVIDES_SSP_) && !defined(_LIBSSP_PROVIDES_SSP_) + # stack smash handler symbols + __guard + __stack_smash_handler +diff -Nru gcc-3.4.3-ssp/gcc/libgcc2.c gcc-3.4.3-ssp-libssp/gcc/libgcc2.c +--- gcc/libgcc2.c 2004-11-14 21:18:00.004222656 -0500 ++++ gcc/libgcc2.c 2004-11-15 19:24:58.428382400 -0500 +@@ -1680,7 +1680,7 @@ + + + #ifdef L_stack_smash_handler +-#ifndef _LIBC_PROVIDES_SSP_ ++#if !defined(_LIBC_PROVIDES_SSP_) && !defined(_LIBSSP_PROVIDES_SSP_) + #include + #include + #include +@@ -1797,5 +1797,5 @@ + #endif + _exit (127); + } +-#endif /* _LIBC_PROVIDES_SSP_ */ ++#endif /* _LIBC_PROVIDES_SSP_ && _LIBSSP_PROVIDES_SSP_ */ + #endif /* L_stack_smash_handler */ --- gcc-3.4-3.4.3.orig/debian/patches/libffi-without-libgcj.dpatch +++ gcc-3.4-3.4.3/debian/patches/libffi-without-libgcj.dpatch @@ -0,0 +1,67 @@ +#! /bin/sh -e + +# DP: build libffi without building libgcj + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- configure.in.orig 2004-08-03 00:53:36.000000000 +0200 ++++ configure.in 2004-08-03 00:52:35.000000000 +0200 +@@ -136,8 +136,7 @@ + host_tools="texinfo byacc flex bison binutils gas ld gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils gettext zip fastjar" + + # libgcj represents the runtime libraries only used by gcj. +-libgcj="target-libffi \ +- target-boehm-gc \ ++libgcj="target-boehm-gc \ + target-zlib \ + target-qthreads \ + target-libjava" +@@ -150,6 +150,7 @@ + target-libstdc++-v3 \ + target-libf2c \ + ${libgcj} \ ++ target-libffi \ + target-libobjc" + + # these tools are built using the target libraries, and are intended to +--- configure~ 2004-08-28 02:31:04.000000000 +0200 ++++ configure 2004-08-28 10:55:28.000000000 +0200 +@@ -876,8 +876,7 @@ + host_tools="texinfo byacc flex bison binutils gas ld gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils gettext zip fastjar" + + # libgcj represents the runtime libraries only used by gcj. +-libgcj="target-libffi \ +- target-boehm-gc \ ++libgcj="target-boehm-gc \ + target-zlib \ + target-qthreads \ + target-libjava" +@@ -891,6 +890,7 @@ + target-libstdc++-v3 \ + target-libf2c \ + ${libgcj} \ ++ target-libffi \ + target-libobjc" + + # these tools are built using the target libraries, and are intended to --- gcc-3.4-3.4.3.orig/debian/patches/amd64-specs.dpatch +++ gcc-3.4-3.4.3/debian/patches/amd64-specs.dpatch @@ -0,0 +1,38 @@ +#! /bin/sh -e + +# DP: On x86-64 use 64bits mode assembly except with -m32. + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p1 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p1 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- src/gcc/config/i386/x86-64.h.old 2002-11-16 14:33:38.000000000 +0100 ++++ src/gcc/config/i386/x86-64.h 2003-11-26 22:54:35.000000000 +0100 +@@ -49,7 +49,7 @@ + + #undef ASM_SPEC + #define ASM_SPEC "%{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} \ +- %{Wa,*:%*} %{m32:--32}" ++ %{Wa,*:%*} %{m32:--32} %{!m32:--64}" + + /* A C statement (sans semicolon) to output to the stdio stream + FILE the assembler definition of uninitialized global DECL named --- gcc-3.4-3.4.3.orig/debian/patches/hppa-libjava.dpatch +++ gcc-3.4-3.4.3/debian/patches/hppa-libjava.dpatch @@ -0,0 +1,142 @@ +#! /bin/sh -e + +# All lines beginning with `# DPATCH:' are a description of the patch. +# DP: Enable libjava support for hppa + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p1 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p1 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +2004-02-10 Randolph Chung + + * configure.in: Build java for hppa target. + * libjava/configure.host (hppa-*): Add target. + * libjava/sysdeps/pa/lock.h: New file. + +diff -uNr src.orig/configure.in src/configure.in +--- src.orig/configure.in 2004-02-11 21:34:27.418499952 -0800 ++++ src/configure.in 2004-02-11 21:37:17.619625448 -0800 +@@ -487,7 +487,6 @@ + hppa*-*-lites* | \ + hppa*-*-openbsd* | \ + hppa*64*-*-*) +- noconfigdirs="$noconfigdirs ${libgcj}" + # Do configure ld/binutils/gas for this case. + ;; + hppa*-*-*) +diff -uNr src.orig/libjava/configure.host src/libjava/configure.host +--- src.orig/libjava/configure.host 2004-02-11 21:34:26.638618512 -0800 ++++ src/libjava/configure.host 2004-02-11 21:38:59.687108832 -0800 +@@ -115,6 +115,11 @@ + enable_hash_synchronization_default=yes + IEEESPEC=-mieee + ;; ++ hppa-*) ++ sysdeps_dir=pa ++ libgcj_interpreter=yes ++ enable_hash_synchronization_default=yes ++ ;; + powerpc64*-*) + sysdeps_dir=powerpc + libgcj_interpreter=yes +diff -uNr src.orig/libjava/sysdep/pa/locks.h src/libjava/sysdep/pa/locks.h +--- src.orig/libjava/sysdep/pa/locks.h 1969-12-31 16:00:00.000000000 -0800 ++++ src/libjava/sysdep/pa/locks.h 2004-02-11 21:40:03.542401352 -0800 +@@ -0,0 +1,78 @@ ++// locks.h - Thread synchronization primitives. PARISC implementation. ++ ++/* Copyright (C) 2002 Free Software Foundation ++ ++ This file is part of libgcj. ++ ++This software is copyrighted work licensed under the terms of the ++Libgcj License. Please consult the file "LIBGCJ_LICENSE" for ++details. */ ++ ++#ifndef __SYSDEP_LOCKS_H__ ++#define __SYSDEP_LOCKS_H__ ++ ++typedef size_t obj_addr_t; /* Integer type big enough for object */ ++ /* address. */ ++ ++// Atomically replace *addr by new_val if it was initially equal to old. ++// Return true if the comparison succeeded. ++// Assumed to have acquire semantics, i.e. later memory operations ++// cannot execute before the compare_and_swap finishes. ++inline static bool ++compare_and_swap(volatile obj_addr_t *addr, ++ obj_addr_t old, ++ obj_addr_t new_val) ++{ ++ /* FIXME: not atomic */ ++ obj_addr_t prev; ++ ++ if ((prev = *addr) == old) ++ { ++ *addr = new_val; ++ return true; ++ } ++ else ++ { ++ return false; ++ } ++} ++ ++// Set *addr to new_val with release semantics, i.e. making sure ++// that prior loads and stores complete before this ++// assignment. ++inline static void ++release_set(volatile obj_addr_t *addr, obj_addr_t new_val) ++{ ++ __asm__ __volatile__(" " : : : "memory"); ++ *(addr) = new_val; ++} ++ ++// Compare_and_swap with release semantics instead of acquire semantics. ++// On many architecture, the operation makes both guarantees, so the ++// implementation can be the same. ++inline static bool ++compare_and_swap_release(volatile obj_addr_t *addr, ++ obj_addr_t old, ++ obj_addr_t new_val) ++{ ++ return compare_and_swap(addr, old, new_val); ++} ++ ++// Ensure that subsequent instructions do not execute on stale ++// data that was loaded from memory before the barrier. ++inline static void ++read_barrier() ++{ ++ __asm__ __volatile__(" " : : : "memory"); ++} ++ ++// Ensure that prior stores to memory are completed with respect to other ++// processors. ++inline static void ++write_barrier() ++{ ++ __asm__ __volatile__(" " : : : "memory"); ++} ++ ++#endif ++ --- gcc-3.4-3.4.3.orig/debian/patches/gccbug-manpage.dpatch +++ gcc-3.4-3.4.3/debian/patches/gccbug-manpage.dpatch @@ -0,0 +1,184 @@ +#! /bin/sh -e + +# DP: add gccbug(1) manpage + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +2003-03-11 Matthias Klose + + * Makefile.in (generated-manpages): Add $(docdir)/gccbug.1. + ($(docdir)/gccbug.1): Build from doc/bugreport.texi, + (maintainer-clean): Remove gccbug.1, + (install-man): Install gccbug.1. + * doc/bugreport.texi: Add manpage sections for gccbug(1). + (contributed by Omni Flux ). + Do not document options possibly unsupported by a future BTS. + * doc/.cvsignore: Add gccbug.1. + + +--- gcc/Makefile.in~ 2003-03-02 13:49:32.000000000 +0100 ++++ gcc/Makefile.in 2003-03-03 23:13:21.000000000 +0100 +@@ -2541,6 +2541,7 @@ + $(TEXI2DVI) -I $(docdir) -I $(docdir)/include $(docdir)/cppinternals.texi + + generated-manpages: $(docdir)/gcov.1 $(docdir)/cpp.1 $(docdir)/gcc.1 \ ++ $(docdir)/gccbug.1 \ + $(docdir)/gfdl.7 $(docdir)/gpl.7 $(docdir)/fsf-funding.7 \ + lang.generated-manpages + +@@ -2570,6 +2571,14 @@ + (rm -f $(docdir)/gcc.1.T$$$$ && exit 1) + -rm -f gcc.pod + ++$(docdir)/gccbug.1: $(docdir)/bugreport.texi ++ $(STAMP) $(docdir)/gccbug.1 ++ -$(TEXI2POD) $(docdir)/bugreport.texi > gccbug.pod ++ -($(POD2MAN) --section=1 gccbug.pod > $(docdir)/gccbug.1.T$$$$ && \ ++ mv -f $(docdir)/gccbug.1.T$$$$ $(docdir)/gccbug.1) || \ ++ (rm -f $(docdir)/gccbug.1.T$$$$ && exit 1) ++ -rm -f gccbug.pod ++ + $(docdir)/gfdl.7: $(docdir)/include/fdl.texi + $(STAMP) $(docdir)/gfdl.7 + -$(TEXI2POD) $(docdir)/include/fdl.texi > gfdl.pod +@@ -2736,6 +2745,7 @@ + -rm -f $(docdir)/cpp.info* $(docdir)/gcc.info* $(docdir)/gccint.info* + -rm -f $(docdir)/cppinternals.info* + -rm -f $(docdir)/gcov.1 $(docdir)/cpp.1 $(docdir)/gcc.1 ++ -rm -f $(docdir)/gccbug.1 + -rm -f $(docdir)/fsf-funding.7 $(docdir)/gfdl.7 $(docdir)/gpl.7 + # + # Entry points `install' and `uninstall'. +@@ -2893,6 +2903,9 @@ + $(INSTALL_DATA) $(docdir)/gcc.1 $(DESTDIR)$(man1dir)/$(GCC_INSTALL_NAME)$(man1ext); \ + chmod a-x $(DESTDIR)$(man1dir)/$(GCC_INSTALL_NAME)$(man1ext); \ + fi ++ -rm -f $(DESTDIR)$(man1dir)/gccbug$(man1ext) ++ -$(INSTALL_DATA) $(docdir)/gccbug.1 $(DESTDIR)$(man1dir)/gccbug$(man1ext) ++ -chmod a-x $(DESTDIR)$(man1dir)/gccbug$(man1ext) + -rm -f $(DESTDIR)$(man1dir)/cpp$(man1ext) + -$(INSTALL_DATA) $(docdir)/cpp.1 $(DESTDIR)$(man1dir)/cpp$(man1ext) + -chmod a-x $(DESTDIR)$(man1dir)/cpp$(man1ext) +@@ -3069,6 +3082,7 @@ + -rm -rf $(DESTDIR)$(bindir)/$(GCOV_INSTALL_NAME)$(exeext) + -rm -rf $(DESTDIR)$(man1dir)/$(GCC_INSTALL_NAME)$(man1ext) + -rm -rf $(DESTDIR)$(man1dir)/$(GCC_CROSS_NAME)$(man1ext) ++ -rm -rf $(DESTDIR)$(man1dir)/gccbug$(man1ext) + -rm -rf $(DESTDIR)$(man1dir)/cpp$(man1ext) + -rm -rf $(DESTDIR)$(man1dir)/protoize$(man1ext) + -rm -rf $(DESTDIR)$(man1dir)/unprotoize$(man1ext) + +--- gcc/doc/bugreport.texi.old 2003-03-13 20:56:48.000000000 +0100 ++++ gcc/doc/bugreport.texi 2003-03-13 20:59:11.000000000 +0100 +@@ -374,6 +374,44 @@ + @section The gccbug script + @cindex gccbug script + ++@ignore ++@c man begin SYNOPSIS ++gccbug ++ [ @option{--cc} @var{mail-address} ] ++ [ @option{--version} ] | [ @option{--help} ] ++@c man end ++@c Set file name and title for the man page. ++@setfilename gccbug ++@settitle Reporting GCC Bugs ++@c man begin SEEALSO ++gcc(1), send-pr(1), send-pr(8), the info entries for @file{gcc} (node Bugs), ++and the online pages at @uref{http://gcc.gnu.org/bugs.html}. ++@c man end ++@c man begin DESCRIPTION ++@command{gccbug} is a version of GNU GNATS send-pr configured for GCC bug ++reporting. ++ ++Invoking @command{gccbug} calls the editor named in your environment ++variable @env{VISUAL} or @env{EDITOR} on a problem report template. ++ ++Your bug reports play an essential role in making GCC reliable. However ++since the maintainers are very overloaded, please first make sure that: ++@itemize @bullet ++@item ++The problem is not already known. See ++@uref{http://gcc.gnu.org/bugs.html#known} for a list of known bugs. ++If it isn't known, then you should report the problem. ++ ++You can browse the bug database for bugs reported at ++@uref{http://gcc.gnu.org/cgi-bin/gnatsweb.pl}. ++ ++@item ++You include the information that makes for fixing the bug. See ++@uref{http://gcc.gnu.org/bugs.html#report} for bug reporting instructions. ++@end itemize ++@c man end ++@end ignore ++ + To simplify creation of bug reports, and to allow better tracking of + reports, we use the GNATS bug tracking system. Part of that system is + the @command{gccbug} script. This is a Unix shell script, so you need a +@@ -382,9 +420,31 @@ + + The gccbug script is derived from send-pr, @pxref{using + send-pr,,Creating new Problem Reports,send-pr,Reporting Problems}. When +-invoked, it starts a text editor so you can fill out the various fields +-of the report. When the you quit the editor, the report is automatically ++invoked, it starts a text editor named in your environment variable ++@env{VISUAL} or @env{EDITOR} so you can fill out the various fields of ++the report. When the you quit the editor, the report is automatically + send to the bug reporting address. + + A number of fields in this bug report form are specific to GCC, and are + explained at @uref{http://gcc.gnu.org/gnats.html}. ++ ++The @command{gccbug} script accepts the following options: ++ ++@c man begin OPTIONS ++@table @gcctabopt ++ ++@item --cc @var{mail-address} ++Specifies the mail-address to which the PR should be carbon-copied. ++ ++@item --version ++Displays the @command{gccbug} version number and a usage summary. No mail ++is sent. ++ ++@item --help ++Displays a usage summary for @command{gccbug}. No mail is sent. ++@end table ++ ++@command{gccbug} has more (undocumented) options, which may be ++unsupported by a future GCC bug tracking system. ++ ++@c man end + +#--- gcc/doc/.cvsignore~ 2002-06-26 20:27:50.000000000 +0200 +#+++ gcc/doc/.cvsignore 2003-03-13 21:07:13.000000000 +0100 +#@@ -4,6 +4,7 @@ +# cpp.info* +# cppinternals.info* +# gcc.1 +#+gccbug.1 +# cpp.1 +# gcov.1 +# gfdl.7 + --- gcc-3.4-3.4.3.orig/debian/patches/arm-gotoff.dpatch +++ gcc-3.4-3.4.3/debian/patches/arm-gotoff.dpatch @@ -0,0 +1,98 @@ +#! /bin/sh -e + +src=gcc +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + src=$3/gcc +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 --fuzz 10 < $0 + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 --fuzz 10 < $0 + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: use GOTOFF not GOT relocs for .LCn and other local symbols; +# DP: don't use gotoff for non-static functions, even if defined locally + +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/arm/arm.c,v +retrieving revision 1.243.2.5 +diff -u -r1.243.2.5 arm.c +--- gcc/config/arm/arm.c 14 Jun 2003 14:20:53 -0000 1.243.2.5 ++++ gcc/config/arm/arm.c 20 Sep 2003 14:18:02 -0000 +@@ -2364,6 +2364,40 @@ + return 1; + } + ++/* Return true if OP is a symbolic operand that resolves locally. */ ++ ++static int ++local_symbolic_operand (op, mode) ++ rtx op; ++ enum machine_mode mode ATTRIBUTE_UNUSED; ++{ ++ if (GET_CODE (op) == CONST ++ && GET_CODE (XEXP (op, 0)) == PLUS ++ && GET_CODE (XEXP (XEXP (op, 0), 1)) == CONST_INT) ++ op = XEXP (XEXP (op, 0), 0); ++ ++ if (GET_CODE (op) == LABEL_REF) ++ return 1; ++ ++ if (GET_CODE (op) != SYMBOL_REF) ++ return 0; ++ ++ /* These we've been told are local by varasm and encode_section_info ++ respectively. */ ++ if (CONSTANT_POOL_ADDRESS_P (op) || SYMBOL_REF_FLAG (op)) ++ return 1; ++ ++ /* There is, however, a not insubstantial body of code in the rest of ++ the compiler that assumes it can just stick the results of ++ ASM_GENERATE_INTERNAL_LABEL in a symbol_ref and have done. */ ++ /* ??? This is a hack. Should update the body of the compiler to ++ always create a DECL an invoke targetm.encode_section_info. */ ++ if (strncmp (XSTR (op, 0), ".L", 2) == 0) ++ return 1; ++ ++ return 0; ++} ++ + rtx + legitimize_pic_address (orig, mode, reg) + rtx orig; +@@ -2404,10 +2438,7 @@ + else + emit_insn (gen_pic_load_addr_thumb (address, orig)); + +- if ((GET_CODE (orig) == LABEL_REF +- || (GET_CODE (orig) == SYMBOL_REF && +- ENCODED_SHORT_CALL_ATTR_P (XSTR (orig, 0)))) +- && NEED_GOT_RELOC) ++ if (local_symbolic_operand (orig, Pmode) && NEED_GOT_RELOC) + pic_ref = gen_rtx_PLUS (Pmode, pic_offset_table_rtx, address); + else + { +@@ -8804,11 +8835,7 @@ + if (NEED_GOT_RELOC && flag_pic && making_const_table && + (GET_CODE (x) == SYMBOL_REF || GET_CODE (x) == LABEL_REF)) + { +- if (GET_CODE (x) == SYMBOL_REF +- && (CONSTANT_POOL_ADDRESS_P (x) +- || ENCODED_SHORT_CALL_ATTR_P (XSTR (x, 0)))) +- fputs ("(GOTOFF)", asm_out_file); +- else if (GET_CODE (x) == LABEL_REF) ++ if (local_symbolic_operand (x, Pmode)) + fputs ("(GOTOFF)", asm_out_file); + else + fputs ("(GOT)", asm_out_file); --- gcc-3.4-3.4.3.orig/debian/patches/cpu-default-i486.dpatch +++ gcc-3.4-3.4.3/debian/patches/cpu-default-i486.dpatch @@ -0,0 +1,41 @@ +#! /bin/sh -e + +# DP: generate code for architecture i486, tuned for i686 by default. + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- gcc/config/i386/i386.c~ 2004-03-11 07:03:59.000000000 +0100 ++++ gcc/config/i386/i386.c 2004-03-11 07:05:22.000000000 +0100 +@@ -1158,9 +1158,9 @@ + if (!ix86_tune_string && ix86_arch_string) + ix86_tune_string = ix86_arch_string; + if (!ix86_tune_string) +- ix86_tune_string = cpu_names [TARGET_CPU_DEFAULT]; ++ ix86_tune_string = cpu_names [TARGET_CPU_DEFAULT_pentiumpro]; + if (!ix86_arch_string) +- ix86_arch_string = TARGET_64BIT ? "x86-64" : "i386"; ++ ix86_arch_string = TARGET_64BIT ? "x86-64" : "i486"; + + if (ix86_cmodel_string != 0) + { --- gcc-3.4-3.4.3.orig/debian/patches/deb-protoize.dpatch +++ gcc-3.4-3.4.3/debian/patches/deb-protoize.dpatch @@ -0,0 +1,30 @@ +#! /bin/sh -e + +# DP: build protoize/unprotoize binaries + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- gcc/Makefile.in~ 2004-02-21 12:42:04.000000000 +0100 ++++ gcc/Makefile.in 2004-02-21 12:42:59.000000000 +0100 +@@ -121,7 +121,7 @@ + + # Selection of languages to be made. + CONFIG_LANGUAGES = @all_languages@ +-LANGUAGES = c gcov$(exeext) gcov-dump$(exeext) $(CONFIG_LANGUAGES) ++LANGUAGES = c proto gcov$(exeext) gcov-dump$(exeext) $(CONFIG_LANGUAGES) + + # Selection of languages to be made during stage1 build. + BOOT_LANGUAGES = c @all_boot_languages@ --- gcc-3.4-3.4.3.orig/debian/patches/protector.uue +++ gcc-3.4-3.4.3/debian/patches/protector.uue @@ -0,0 +1,696 @@ +begin 644 protector-3.4-2.1.tar.gz +M'XL(`*_5WT$``^QOOCEJ-M^\?O4->_.U!+C\*F/@>OSP^G79_K]Z +M_?(U[#_\T3SZ`?Z%_7_U%E:0_2&+^/]\_U\\8\-QEUUOYG,>LN"&AW,ON&52 +M)=S`9_.-+_\(0G;9F[`VFP:KM>OQL,H8:P?K^]!=+&-6:]?92]@_=A%RSD;! +M/+YU0LXN@HT_>.V5==\K]B#,'),"6:,EG[/J>R%'^:H'\)XR[\#QDL$H1 +MKLC+!H/A:TZ,$L+JK9&J#F+=,\\!":J2,)E8(O^,N3Z-M@S6(.X2F,`$;EW/ +M8]><;2(^WW@-V)>8?>B,W_4G8];J?:I^:`V'K=[XTPE0QLL`GO(;+OBXJ[7G +M`EL0.G3\^!XG?V4-V^^`OG76Z7;>#:ZD5GW+-&(W;1'[(6&[2&XTY[TFT- +MV6`R'/1'UB%C(\YW+%MU3LL.JS/CL>-Z$OCAKL+(AB)+IJ58]>-IO-@^:KH[<--AFU +M8*!G+ZK5*AC(.9]ZR/5RTAJ>LQLG=)UKCPN";V=\[OKRF;VJ5`:@C5PW3WJ= +M\<@>6$.;""KT^6^PFZO6Q]I9Y_+2&HWM5K=SV;NR>F/V@ITI>NS98)?6V+[J +MGUOVJ/-?%JO)4>KU:O5;=P[*/F==&QS8]+,=K9QH:2_!)-`P4>P.K"G8EL,6 +M&R><:;E!O>:X<[`M2R=TIJ"GRORA,S;Z"['N08C6A!NW#EP?Z12/J)'K'%%O +M1>B$B\V*^W$DEY'?0:O/;@(7:$(.1L^EW(:G837H7#^AN>'4QD/+LMLP>YS- +MB#OA=)F2&A7]'GQ%L")QHS6?NG,T@?@>30HT(CTZ<`>=0C8V6J&_L'&4&A+" +MJ-]R']P(K9QUYZQP]VZ7G.R=S,M?@[5-`Q_TW4HULSQO&#JH']`&Z,U$H,=LD[B'S05NF`P +M`>D"A3\!P7#/(KZ9!6"&"_`YN#]3Z(1L<;T67G#M>#:Q28O\K@\:^:$#*M"17XLV/R'_E)X[_I5QEC*_Y[V7S3?/D*\=_+MV^:@`6/!/Y[ +M^Q?^^R,^?^&_O_#?7_BO'/^!?23JJJ-_!*N.$UAQ6(1[`B(`FA#P:'.)4#)I +M1A3AEK@D%/,E6B#`1/-+80FY3A3;L"/%:T=\/R"4!S"#.3%^)TS@>%&`A##8 +MC3OCD>"IK)8T2\H1Y8&!J$R.,,;E_PH +M>,*I$PEC%V.[A`I]O@`COD$8WXHB2"B(0K,3(Z]!/F$UMT$Z)[OH]OM#>]B? +M],YK[UO=B=6@3*O.:N)KG7W'_K=6DXT'K(EY%:8:[LJ%A$]XWY#61*Z%#QB4 +M+2':F2M"B[#B/";+0[G-"1ORM*U.MT"<2DW+\YR9TICB2>E0O%[@_YV'`7/G +MB95?RN6C$-H<3:QN2FP6SZFZ31Q;)5'\^!U^"N@9Y"&IT=,OY&@T(TR<,N6`.@#]HJ]-9<)3:IW0. +M1UQD%A?0$"7#):FG'A"$C`%,N,`6!LVFE%L&76^BI:T9RG'9*3LJ&YLRNM]O +M:'.ZR;`C,6:3.7-*$5($D3X4*KDB+R*9+#@N"JV=CY%7E#TE!D0"`$(\3 +MDH@6#BTEVIMZQJ=>;B[%Y,'<7GN;8M:Q9RO;+'O.P;N6/9<8$!?6IL)9H42( +MA&G+A((D698JJIC$PG#EWNG""H[=2*O\MGZN;RY0(UOY>`@?E/NQ;&`S2 +M'7Z41)`ZA8BB!2/TN<\>Q&\%"2].BXQ"[(/B)/_9UEN42JE_P;1*1=K.I6A6 +M^S,#].1"XL.%)"@2Z$W(YX4JKXGE@%ER.:(L]8VHO'JO'!]6`L%O*UPA,S]( +M7:52JTJCS%R8REP('TEH<<:G#LP9GV':J^K(D,!A)92\KHLETGCCB)1*C`WP +M!;GH8H7HV"`$`P[+`2@JY(L(DPGHI@3^X36[!J^N`HE$:+*8/IJ,!IUVIS\9 +MV6>3"RJZ:_16\(S]JZX:*ZK69-RWSUHC:S`>UC[6&=;Z:UC%QSHVPY;34S;H +M3D;L/]A'Z^,`FAKLJ,Z.V<=ZFDG_XF)DC7?Q`!4`[`B-BA?`1&!V!,PV-"7( +M\*_L06LTLLY!7^PKZZH__*1'*GQ:PU8:UACUW&IW@:3=OX(LW,::D2`C8:!? +M(CV5[=]W1IVQ=5[K06<$W/3_P8\07E>0!&U\\#+YN=;OVQ;`/,QI:()QEC\:M]D_PK3^VVN-.OUC-[!7ZTKJU*I +M-`7&'H@S"IWH"QTV_#6BDU`<<9"\5+<6<%+C/E12=YY.QP'$0MXOCR[P[TS= +MO)'H.!I3`JJSI0"6*04TJ)S@ZG,$C6,/J]AUC.<#%\+,W-0>`!IM]$) +M$M6:]4@>LT@1&]3\LB[`J@%X66#4]P75J_ILL_9<.@[(G0,A'@@R\UT$3N.[JM:>HY4(\2NYE^O_@)#8-1BU\#L'5=D:X(`?)*_O_N./4&,`0!.4'#L7P1%MR!CMAT(,H9N^+.[ID4R +ME;%`R?Q`3!>7%ZN40C,P;2?I-+%84%+4_$*8TZT3IRT!!L^*9`"LT^HARR=J +MT7_]=?MJ"O:B0D9SW3_1I)ZG.\'Q;O=0IX$+5V+[X`RG1]N?548QK5\D54%& +M"(*;"T<2,%8B17*6J*J,]6KEEVI%D-\ZH9\6(`CK53KQPD?H*VI/T3A_19T+BVV['/8_C.SS_H?>A];P/!'+['C, +M@AU)+F;9QADK3+9#AB+V6Q?IM;6HTU(]7,I?K391C&Y;'G5*1&-.V?"@IP5Y +M(ZN==7^BT\KLU8$&.VB25>%G,!'7`L#HC!*$NAV@J"`JV^_[W=:XT[7L@4D+ +M09LU3Y)+!!3]BE>T<#?2Q02%@?2:7.#I@/,9-2`,(&11Z4)>0H`(WV`1%J@P +M%`FUQ\@U=^_$I0-B"ON@JN2R'J[S'U5SO'80'^*YE%D^QQT<*>XSNK@AL2/P +MT5&D8$0U'O3?.6*N:&_N<$G69FY49FM1]2LE&@6RB)4CE<%\12/::X"P/EEU +M1HE-"P.WD$*3!!--68[J=?`1$CX6/$5$B2X`W91O0T(`>+`'"0A66FKO^YUS +MH:UY-<%9F_ARE`6"YW",*9R@$WX!<[@CPT+HR)-.YF4>$OC>/6FHXZV7 +MCE:?,BR[4S](/;:&OT+6,@B6*6XZ+)4K(."<*#ZRJ<1Q4#C0ED$,=UKL,>N$ +MDW)!L64D.*)`6);=B"X%!44!I8T;3F? +M+'##?$<#O)J$'FBZ6OGW.ODAQP4Y5+&E[(E@Y2464-WDD/)?\&PKAJ")=PN> +M-I2#S-=R0/3?,/6O,G754)Z3\\WJ,(P6I'`I47E2`P +M!Z^F#@>J>Q3]Y>BY5+>!1KRBY)[*]H+%6N>2#L()ARZK1*JJCU5SK*"1UYDZ +MTR6AX'FP==6\M.>DVRAQ&<]N+BBM+$X=3>/J1*_5XKX"J<% +M#B6?0L/F1]+?IY/S/9=6[9ZA(TG3;TI$-;F4?@JZ'-JX5O# +MRPE&W%'YTD,7#.6U$^D=-`-QX?I=JP,^BMKJ=6TTQ+Q''DH\PM6E#N-/@Z3Q +MR2GC80A(>>6$GR$XS+BR)\`6R*>PXIP,5R%"RJ/*U(/.)/7(JN>)Z)5>^TK! +M-E5$?!*[E43I7?8,N,C-9X]JA8T9 +M7IXN8"GO/J>;*J8IWRXI*E,OO5U8SA=-]=/3LVZ__5.F1H6J08P1R.%S^WUK +M.))=3N283%$D.B,ZU0T8J6N51B(NLNF0RU<&F+C5;2R8!I?`P`?D=2R&.D0> +MA]AP*(_A7<#S[HP5?00#X2I(<:V/8VO80W\DA*1ZK9`=S'#<::L'2F7,U=*= +M(&+`4MC(T:![H@QOW+D`4)$,8M`0Q7#\H"E:E!O +M,PC=3[+_15M!?"=>#CAEV3%.-'-L.T+G7S[.%CN^P#";2FT&_TX.= +MMY%X!D&F\72&$4-S/0[*Y$7Q(>"8IP^K9"G$[<.%3268,WY:ZFBXS5?NO*.K#B- +M8E%`A;U;+JZX!2)O=^XIA1#2&-E5NMZ7B9L5=%.5!X;]"F1VI-W*7JC:N1'O +M39F%`.W%A$L5GED'(`P]22V=8M9V[R_\\&AR1G^,I$^O:V>;&4&S%JY?^7$9 +MVJ4GUZD:(5$9W8A1-KI]R4M7^9"F[Q(1J1G%^.I$B2%\MB`H1.'1K1N#2+6, +M=ZZ;08PND^)-^4_D$8^3E+B--Y+4>9F8BFM65Y2R)UN8;!&R`J!V16M(8U+9 +M!)X#V8UAL_$(F!C)) +M+8&T\90BR,9#$TML40`5[O97@LKOH0$Y<+ME>E2NA#DN0NZ(```>M*`0DI_R +MPY1:[`B$-;L]&MO=_H<,$Y.'FM?S)BW(CZ>%E9FRB>Z;/&NG*&0T3EKT&QKX +M&@W$47WN*0\TZ%4>69^7Q7<11>-@G3*-J-C8I,@Y/YC3VA-Y`$2>:]+K]'N& +MYZ+&OTU:7;OPR=!J]P&%E'DZ[H"[!`]-[^5$6PO6`OKS%4X#-^FB8W7/1W*C +M3\A/,_G8R!2AQ03]_176K'G(92)$<4%<0=P`;*?@_=D/;@&+WN*B1IOU&K8+ +M%W=U:*A>RL/#$*C[0G4`O-931ITX/8((W&4IZ:/?7L;0 +MG7UKF05K$;'IO5H\!IR"1V7X#^7&0'&G$E&WP7ZFVA.6V44P>39?Q605=Z`\ +MP5K=#KF3!P^%D9X&.#4RH[MZ"@%,=7'!B/KZGYQUK6RS\7WTZ>JL +M#VF1=9$B.K?L;NO,ZJ;V[]+XUCH_'UJC4?_B.&WUR4PD(>1&AH'2&0NURQM; +M"WDL"?`C-MZ=3I`S'N_A.W%XA=FFQ77`^]TB@$9\&]$;@/-[NN)L@PILHMPM +M'Q7'13IR1ZG6:5FJ!JM7'2`5HH-6HX_FA?](=7K;%4I!-5%7.I=,U<]N^: +ML&OU+L?O%"%SGS]O(*OGSY/RV#-B?: +MLZ4YDYP_"SE_!CD_O@=79_4D8VA#R0H&!S(]/MAHD0B/<"H8*U/W(?+%K=QK +M!7],*O!5`ZI3=`GD\9'T3PZ!J9WZ@B"X+0]+HZ*RD?*XZ-'1U,"T0ZMUWN]U +M/^4*9W43RU#IQ4U>F\U=D%-/U,$B0)^"F_`:4J=GGGY])B>'L:CII?ZJR"`S +ML3)+SK_Z\X]ORA4AAGD_70^3G#O`.ETYX6=QTP:Q*]CX4MP/NN;<9_C.*@5I +M#Y9\9A9Z"AC+>W:*<;D/*5[WRJ-]B0Y%-/D"-T'<9$F;J)/R[DHDL +M_KX[^!&7_DMP<[*FOP\X3I\GJI4VMH[@*;@.F@@@YF,%/G(JE,/+^<-,+V-UN;T-\674Q'SP?$(4G>0=Z'FLS7"J[!`?I>R, +M7GS9\0A7Z+7P9PR9^K*%>I5-*L2+$KI7JM>"C5)K19.JQ2;]F+ +M--PE[\PL>6^0_8N@$&:NY6`RI/DA;+#[W!Q8.M5``QG +M981I\L):D3S+35.F7((ZN#4/7K>I7]F)Z\D#CE93!H.[7V`T&EWA1?0;\T)[ +M"H[M83OFCQLHW/6H`%`,KKX(5LF*)X^D":M[Y?A#;]X]Y,P._E`0Z/@M_L@. +MG^&=A5E`)26:9RSN",LW;5=)J>4?%*^92`VCF$&K0Y_97T4[HZW7'YN2T?@9 +MPI8PU11F5Y)<,4O9Q(DD-5E]0M!:U?5(]+RBF_%^/+.M"2I_=EV_>UL:5]`W/O_+U?(AC,D\B&8EH12S!M``FSHQU)5CJ/OM2IZI.U:^2O*\D>-K!2OHILUP8[M*[#+8WCM"B&5VTSY(.FWDT/(;SC*7L[=.WWM$Q6_N9!#\=_=CR +MO![L$HV2\&;[U+-S:IB`Y`MM,8HM\#[ZW<=AEG&[/\M!0_&+=[!_V/(.S]^^ +M:IW$TE"!GM8CO&KM%>++E\9#]5?DXUW`])9N4VN>X/O_X*!\5Y2`W;=D:[C9BI"9!6MK-@G)CM+#AK17D[7Y1#I864I_D;]Z +M1LX>:'<1_#8)^NU`^70S,IKE0`H\H88R+^JGYN@5^6/V`5OR..\2D^^@%XX] +M@NQAMZ04_#59(^S*A%\],D"=1..H3$SD29_M/&;.@&DK;*92..TW]1@4SL&8 +MLD1Y^G7I78(D$'A=_R+H;CHT2&C(.;21WE0"$SZ(D)]C7I!!"A"?U9-*"FTO +MGCF#TEWAS?9/+9E)[F+K27+OV%N&TW"KY3J@[SCO\ND-]34)$`B\%O>+49*?)!/V6=H9X\,V!_R6I#V!KS[H"D7D[#; +M429IZ*'2#?K)0XERYM$>KLA&X)DI<#*L&P9944'71,9=9/J(VDW;"A*Y[4W9 +M-BIM2S#BK3$IH:M8620RVX92=L.+D3^Z(R\J=!.=1KI3XE(L%8K*.P"FT:`' +M5(O/4A<-<[BJI2S]RPK2@2]B,X6:"F17I&VSDJP3,T;FX*J/%S!V(=ZVX'JA +M%?/)6C%R9\06R4-JME@B2Q?#OUNGYP>9W(OD=A`U3FY4?64R-^%&PA:G"RXQ +MC^\3FG3.FS=B57SD7%I!M/U>IS+SE/)0EKR&/(,19<15/$KL+%KU8<+4L2CA +M,\)QI/$UL)E.I`IEWLF/DO[?PT$4&H,J^_#.`(#,5F&ZJ*7*:UT>A/=2:<*@ +M9,%H)>`F0D0('H[Q%GH4C6=^Q+:%12C11FN:T&P?5PNI4;0]P9'L^32,]MS-;;GX_MGMXLCW,E^U)O=D>YL]& +M'FU&5:\=IQ)>SLH]*TXAD1Z1$\.6G+]\PM5`+F8.EJ56\[(+/4+0ZHH+2<+6 +MJ,;M8`R!42]0F(IR0YC&H3AEH.CGPSS)":L7#LZ.>EPT95J-T<30A%>ZE.VR +MP(#P](F(9O$]Y?"-Y$D5F7=2CLJ2[JO:KC3$FWI5,I8 +M"*V!@3ZV[8IL%8&+RJ*U!L`/JY-L81B$I+&AA/Y$1J-# +MX)T<,>YC8'$8-FX"'M=3C7-U3UP#0USHHRO:5+09MV91:%G*@A0ZEY/K+,*+ +M"F+VS5)QVJ?3]@>]$/A$E3C1$=)^Y7)IVJ]<3)ED"(EJ/3,`KCTD3:)_&=A& +MD/*?3-3P5%V7';4N7G51?(MUL$"?,],(S_3P48MRML82[Z,DQC)L:4;IY-!& +M.F`)Y,`.P!*1*K:XYI6K30R%U5.LF^Z=GE8+V#46*\1N +M1;S#R?F3J\4T)WNY88)9*^Z37+CD3!]HI.81S0H&:^LS1#U2,[Z/NT"+0#0R +M1]!OJH0$7J1(JF*]<&T:"">53>;4BK4-FU%JM+(45!J''IK7N([M(K-)',;! +M"]'5-GM7Z"&]/_W#.OYHFH=MN`^=^\/(G%PNSM19,8V1[QJ@2C<>OY7@2+%D +M>[4K+DW7DHYA3&UCVJ46@&(,K/E,I++T#N)O)EVI0@$-8L6,S6 +M_$NR"1\Q*&"Z4HH%X#50^8ZT6 +MQ5G.#"_KE'RV!E-[CBBEOMU\5SN4VH28@9WN1\SZ,E&NBF!CAB*EI)BEGNN6 +MGG#^O@_NNU26"%?--AOR/2/8UCP@F'S':P^'HY6*=7A69U2[39?F +M:CQ'^)I/[4*MG]'XM$``?-5AXMTD8P%PHS.G::%P`&D===G.U"B-V?WBCNUT +M`X1(0O,X:,SY:6L7HTJ1.D\&TXIDL`DKQ$%L67(W,]!4IYFFS[.V6+$VQ38V +M$U9_EI(6R3?2[[>H;J0X07)=ZGBQ#A\IYXW5T--5C.G1V`3/"&&0D`"`WT#V +MFTZ)OZ3%ERGQ<,^D6$-=^@PKC3N4C34^;9&X%^Y\8B?4R5P9>D1'L3IF'+%N +M:$)6N,=GU=F(1MA/2V0F?[Y[]H>[$/W14*F/Z""4>2M>4*IJHR>>XCC$X^*B +M2LQT'K(8[DO&C\3UDK:4=!,R[W5G^1D94Z7,ULXJ/W:_.PT^ARM`QM\)9"05 +M0D1@9*Q'"WU/6YXDI">2.6SNZ8X2TV)5[A!U#L1VME1S;K9V[ +MOM\+T1[PSHFM93!0EBVLQD +M;+>D.*6[8VM7%J81:B"S]\8"1()[AYFLK266%R<6D"]K4&=$EI)[0;7&Q)9B +M+2E>RTJMZ/1MH98:_CL/`4DGITDBHA9`[EY4!`O`@SN#BDP;-\X](RQ7RMP\ +M:.P^Q70ZQEPB@[/+L!PLZC%V)2VWF5SR_(88>?U9[!YO32;A!M'BN#6*8S9?/2S7N23=4F.WQSZC$S!ZOW&;FT +M>U%>PS(\A/C:A%<.LJ$?_YY\6RK-Y>SW);OW&SF'Y*H?&J*=-"\51'+J2T0W +MKI;2E?]C5<2!'LO5S>DVK0HJNN[EL""UW;XI#58(2=T?D4&-1&Y +M/V"[C4V]TJM0R.I(8U.;X9I!GUT]BM$232?1N9D$^HO#O(G-BN6N%S^O%+F3 +M6J5O74

:,WY;2=6>!):\]#M]33N8N,+]79BTF%/[<63NJJ(;^-](5#;,// +MN!DT,B?!GH72M@="OF!&(ZCA$I>VIF&!($XG7S +ML>:/#3P&')4<4SE[04M+4XOO#FXRFH:$3+==Z__OW/TVQY:R9]Q5N[X`$LG; +M9\KVFH/S0>QG+"L;C$3!E13%!P4VD<4FI8%+/R)@R=.!2:<#B3"^X2G:.!R? +MVP7C+9_W4VLG_FAW__7KV'/V7YV-5"U%<3OCG@,M9S,^8;^-)D%7;`LL,9V! +MGMU.$Z^S4DCE05:BP61\-9A55_O2ERQ8DE8F<1630"?`2!H`%:""J$.%-?9K +MC_Z9#/D8((!M?HK\!AH9X/-G.<14'7:#C6>Y/)F&D',[U+YQNB]N;X%IS%#R +MD/$L9\E((/)X*ZO.`@>^.P5`N^PX^6@UR"US>5,85W=<'@_*.^U*V887LW:` +M!34#Q\0;\A5%K3FJE3C)0`51UE96A$NB-&GW@C=?"(Q<8S+?.H+*U0`C&,`2 +M[0:*)W%XJ!SKS5.EE]N"CM?!QY6.,8J1HD5G<-/G4-%TY23Y-[7]E-H?A51U +MRJEC(^$IH*_H^(I%YHT&4K3&F%(JI!I=T[']!1=:$A455AKY.@*OP@,7S^&Q +M-&T:WA$K[*-ESN0B&H?CR1CW!]+SX`JMHI0!'(\APN.@5>+>R?89B)DXZ.KR +M`.E^J:('9G$Y+EN^`/'J@^7.9A[.$,,D)\89[R^(J1**:I8: +MG;/>.H($,V*YF;HO'J1*.:4N +M6XTR@A/^(,HX%W[4\_KZQC.M@*RQ@BI=MC:>!8EA53J,$^]EC'EE)&(B#MO=8"2) +MY!RG&,LH2(#A?6H@^;G/-47D9AW/\PS6!NQ?#-C3MP+%F`&,QSE_EANJVZ') +MB*"EX4A`+>J&X96$R&/'D47*P_K_GK_I1Y)[JC0+,E2[A]MFC3DF\Z"1Y(WF +M1J6+@[;5%,PK;6WI@J7OK!@H39\NP6]QRD+'==CD4D\B_"BQB-4M%8Z^F>10S#G&Y +M=Z"9F:V*@P=.;=LGJ%!JG$.M_RD@8=K9V +M(:[[,<-.OGH92C&7@4X0"\4)VF9[#U)))*^M>=FBVLX(W]]^&],S_)!RWVTR +M+O/J)A,=*U/:)3EOC;*QT5S6P!JE:75H@=156\QGQQ;325A%V,*XA#TPJN@D +ME\H_9FD,XXME$8WAHZR:^36*,N5S8=2)[GK+4!1^>8M/24*QO%MIM5J+,)>; +M=P$6_F#5F7KHW)5\DA/"O[(E7GS["%(O%A.3?',\P9EA]YQKC:P=LD1R#I!J +M.$3)T#-.7)=0][L_%KW`[T=LCTZZ9>MF4A[_E6ALN`-4$.,=2>=^VZSR;T2< +MT_7'GW=[T(J/:?06LCPV]CZN'C!1SQP;)7N)?AG*F4RYSA&FD\+,9]+%\/DF +MF7IG1#+D\+*6PZG',\4T6QHOLS2>TKE/UJ9-551+C3/5:28,RIO52F=N8,N& +MY"ON=[L!>S#)@(CTE197)AV@ZP-I\43P]2Q+:>D"GJ2)5*9C4\-^E578+PE8 +MIV72M&1LJI5X+AA>WD(88WT+_(ZEQ06.2SI>@GU7`BDJ-S@H<`86:=&2JW0A`A1.(4!& +M$?B3O/PQ*AJ-5Y`6+LEZ3T95^/]9/)XZPIN,!M)*-XN=&6,1:GZ +MPGXG&,)10?#0L2H)L&U6N\BX+1K$AH?B#R"LK,:^M@14822PNK +M_4`7NU">\SKY_I?)>A9E8F<>4PU-S4%$YXN9#ZC0TW.6-U[%>G,G%KV"-84% +M@N2C/<`M@S:/:;MAT$\Q<)S:_*21XS0]H50X6G?JKNXP34=H&SP^MK[P_#2A +M$OQ/UA[&-$*:5-&&O[LO8:Z21_`D77#II0SI +M$+WC%UC(^Q6B6+QEIE16$1Q2R8,I\M]1!>]7Y!9]5WV_TC,%R!@JUJ_;P;!L +M"W_(_L*SBOVLHCH@K5L<=J>GXK_*M7(X`+8CY'!YWT5X<--!$T2B,\`XA.C5 +M>J,$=T4TE1$=BI>D$^EQF!^#/1@I%SZUK)X#*S:MU[KB`O0!.E3DL2JP=RJ/ +MV_-8I!G\R,Z3&1Z(N?B.#%>HHQ4>'-U?CD>SUSKT7N\%*!`K$SW^V$E&"+"G7GA".OD(6I0I_!\)[&]5Y":"A,M!54W]Z$,.JX`U4J8O(1 +M!+H37K*]+WEN(FZ?"YX:41!`I5-A8!&/BN%IET]0]:^KKQQMR6GML6I9JK)%OE`5)N#GN*F(P^ +M&>U_''Q`EQL=;CUD)B`TR(6Q$6"/HI.`8Z'$4'3(M0<-$M';R,DGJ[B87!)^ +M"Z3SB2<50LI![3$MD\@:>(!#4(V!4AN^-'C"44PK/L.M5.6O+>"1U=$ +MY!'8*;ZU^8&RDD)E&!+]0XM"HH'1!&0R/LCD5BLJA'U-@P=62*D5 +MI7XRBJ6.)!8OSQ?UB7G"=(9< +MX[TF;6>*!J\T'FHWG9S\ZU^&X*33$TW6T["#^4;6PC.ER44&4^)ZD<^*C@XQ +M`P9/2>ZDM$QTS_^(Z]IV2!"3?CB./%AJM,J++)GAI0,E4T(_8^;AR<@!"X>3 +M$:H\%5IY,9'`/CBU^="4HU#R%!B(@0!?@:LPCY[+,3!/$IT/<)G9& +M-X0$-0W)*.PK%%Y%GEC9UR=';[WC\],W'`NH,*4>Y5^NGT3.(3[O!"-[-WU( +M8;Z?)TY[,J%H1QC7<(Q`RC!V06NNDG +MH+DL69":&`Z3^#XI&Z!FX#'$810QK/'!R!PR,`U?MFIU0O\JKDM06C-*$`W")H+E3!YV9:I&M"HQG';_`L,`.F/[N1%\'19 +M,Y^$1']*G/=4#<:\*.]"*1W5..B>/PG,>YK>9'Z0]_G;G@U(G=Y^;O9"8V]4 +M-BXW,$_S4E4K;"D:5Y*DUYRNFTFM.CNK98.9T>8Y-L(GI0W&T23U(!FP#2Y= +M3[>T!I.9R+1>VWMZ5E,LW2Y>%1*R#Z%4\YUZ6OW9:50SU,1]!I#]I\/7MY>G +M07//4DM+"W(T7KJ4@HPFIJ&K@^<>99'H&'U6!IPIZS;5%($O6;8.MH%,_[1_ +M_NG9ZV3Y0I?O/3\6US._8&\SE*<>UHM[\+W,1?#6S)524V)=Y1I +M]^\Z<'7ZI;H#`"R3I>$XFJ2\*U5L2^6=:U`=:%XUPY[FME*6!H+<->*P$F.M +M-_IG'&E5QZQQMM)EC?*4\;N]QZC=9HZ5I%W'R$(QM3+GM@/5F@@E@4%N_0]X +MU:(".F"ACL3E!OU+9T_F"CQ`R57$,FKY--[E:\2!1XPXD&+#.B7D0"X.%3LS +MWL#"$0=F0).G$J;LJ`,I#7Y@\3+\+-NI)Z%UT6HDL7DU8_>O?^FUC`DUZHK= +MRMQL*/M$!0;%7F\EA8$:0T"=AG]JT.$?/$H,9&_"SR^(8J^750+'_C$;*6'L +MIP3PF@I(+WNW`,I\-G"]7B$&">KEED7W./JF +M2NU_#<:-CFQN"$])>L*RG7&4M +M:P@R:N1W#,9]QB0"A7QDZOTN$@9CJ(6X1VGZ$ZO(%Y=#%@BDGE23(:-Z,==3 +M,7)CG8NSHGQEF=BD@G1;Q'0:G<'KFGXX%KH';#-H^I.G#A;$;5L*Q5)Z\M#B +M@2Z,H([!)=LQ,U;=%XK"@Z%+"8;'6@$&^)O0;XYM_3,W@HB#!9^88:*4CM63 +M?J*E5(4`X/-4D``+G[\*'!8!^^_$.P!I.!4')]6%)GZ*QUJDDWJOSP]WSO:/ +M#KWST^T]59HT@9G12E+"Q-Q4HO%=ER^74>M^D>)!AKXI1#BB08(H1-?*RD_Z +MA#%=1V`=3!HOBXJ)-\$:(VO):&$^3[%PMT!(O?.B81K)#@'`J3PH<$_>31;V6&QC*V@B8V$ORC5W$"PDU;(>KKC%CG.5*#_ +M@>,IP-.M%ZD,R[>C!@D/N,$D(M4Z,,E(2P9D?XM+<-1SHH;T@EX;LME%FA.' +M=SOYE'6"RP(BU,HWH_&DCY;/5+V[*>T]8IH8IZMB*SGUFY*=&2,38N&+39MT +MU0].+ET\3+5$-W=;!RV)U\QO8AR1F0:S1>2&5ULCOH.8SY*);'W&C(25]*!O +M5D'XVF81K:P26C93PG:23HWZ1O!C2AJ84@0.H6)5WD'O#H_2NOY>F&C8=K@= +M!ZS-(9?6J#/O(EF'F&I:WJ7TQ62HG2U0^LNK-ID;I71N\.*.W;K9^=8((J0N +MM*)52+NHZ>)G!IH;^8";N])[,8E*\8UES8XR\17R[0F=-EVGU"`-.52+F:C!2A1!B^KS9LNO%8A:E'D[@>N[VAJ7*PT6V61 +MA9NNEJ*T7=`"O*N\Y%3:W6Z>.4X_7SGE>X0ZG_9>VXW)QAV/!D/_"IG<1VH@ +M?69M63MA9G,KW!V*HY'L">*5I=XI<]FP,,@/&@_&BV"4/A8O)?S#K!&;VL18 +MR!=#X2V'Q=PC"Q, +MQ=6Z>%>^K9??SWW*9,Q!-BDX/7]ER!7_P.TYGWW*O^V\.1P)SISB&H1A-X:\ +M-^BRAM^OX*=`_\I$.@NS[J\0&S$^D]/H==IT3J':Z>1]UB&TT"RF3)BY#9E: +MTSUG]Y%F=!Y:1\Z(BN`55A+SKB?1F7&><+TH9.II$SW/\;+PV7Q\TOK)5H(Z +M[Y3.)I[(285*O=T6*OVRTULJC%N^*D]K:E(]F"PH'71&+T/%D\Y5U+UH38ZQ +M.N:I@#,^`C&*[8`X4NFC+&#:I;!XSZZMUWX7&(/.'3N3^?)V3R@'TU\1#(4N +M&@F@DHI^EK-T^8^RE!,=UU)%;(12A^'XH1%\\'C]7*%[4B\7'32@:>89TW-7 +M'I2[.LLTY$^+EI(.RYD4YU,8]5C4FU15H!7A9NH5G@.V.6VD'PMP,GSU9P= +M#:US.)(F_N,CV;;'5$?E;#V5?8D[Q6CI5EHLL2I67^(\3PK(?&N2:@RH1R67 +M8;&3TNP%^-)T`YU$+`G7.B>7PN];PYZ;1V26R9)D38[K`W40BVHA$B9'?!1%CDN3D`<0D[O/SAY&2>;PU1(9N#1C1S^NQ,0FSEU^%4=]]K=J27>;Y\'[0]I`-@&N5(B@!GS +M0G0HID"(*1>ST.AGTZ&:4JWUW,W]Q9G/3460<'BXN`64[EC!B$5._'B<$?E8 +M6N*ES(SV2Y3$ZA'F(G%ESF#ICWL-/O]UMS9#_'KI/3]2L1JTV&7W@ESI"S6/_'=A.QB_#Q25%@Y)^H765JG^,V-GH-'U70\0:SB&:@X#D=M4[&4 +M93%O497'*ZHZNZ@_O5YD/MKM:"_F.FX>0X6Q0/N2^HPIK4PY#27.RE^^?OX\ +MGZMV^_MQ$(VC23@.OO\\=93ATVPT\-]*LU&V_U6?OU3*E=5FL]YH-&M_*5=J +MC6;]+Z+Q>9KC?B8(?"7$7SJ##X-IZ6:]5QU1__Y)/N[\PZ^5SM5C+X/%Y[_> +MK%:^SO]3?%+G/XJ&I1M_U%]I/TH=.!ZK]7K6_,/4PYPWFS#U]>9JHPGSO[I: +M7_V+>))!_`^??V"H?A>=JU)G`"Q^;XB0%)^0D5+/!T/6,BR5+@FMK*11C)R +M-,K[)%1;+@97((DLH9>50LKM7VFUW@8BHRD\6A/L2C;3M+-*C9+!I]R:Y>^/ +M^*"?;(G@-_,V3#MU4\LXJJ'&T>@&_:OQM42'3[2QEH\UK_&0<>%*4`-AX$S7 +MQ,4=ACCI#OI7LOH_>BE^_?P!GR3][X51NT2/'HL/6/S\7ZU7JU_/_Z?X3)U_ +MY`."VZ`]&0>5!_`",\[_:JW2A/D'KJ_<`#8`YK]:@?7R]?Q_B@]>N<% +M?33N;HC\,MH9EMJ5@KDS?#%$)VG.R9P-18S*,^JC++3!A5:G%KK<2"VVD5UL +MJ<+EUC+*M=I;2F\SE)!9>GV=2Z]/;W5]/;5DR)TL6O(6I, +MTRK!P.E!-5\,;!'2LNPBNU'S@$+/"$5Z/`9_A\B7+?\V\Q/-:$[@(0]QE:4%E% +MZ$UBZZ\L7%;9].H[.+@;/Y7JN6O +MY_]3?&*G>5&>M[]RV)\/UNGNN^>V/JT)T!?%2/&BDW;PTZM`9:8L;%/CLRA; +MQ\<8J+1!N>'+*GY!:X@\YGU1:-).Y]1KBIYA,.!+#-0@I5N^_,$KD3Y?B?3% +M#P*6$7Q1ES@LUBM97A*@7^F&&VT07OR*I*B:I-"8C!NK[\+CKR^FO&M/>=>9 +M\B[(JE+2/:$(7XP^RHG\H(;[UW=U.?9L,B/@26T=QZ&*/Q"LKK:IZ"ID_)9> +M0P%?R>J__V=>^K\"!_I]ZYA!_VO5:IWI?Z.ZNEJK(_VO5^I?Z?]3?+X!RH*` +M-Z/PZAHHRDY!5&%&Q&N$!SD=7(YO$)W\-5T#FN!M,!%[48TQCC#9V,<%@W(1C^3T0:0X\"L7`(RA;1F\"-K07 +MJ2`B>X?G8B_H!R._*XXG%]VP+0["=M"/`L3&'.(3,IJ[P&(P0U:;-T40DG$' +MG!AH*B"JJ@I97E$,1E!&WA]CLT>"==X%:.N=Z!)O+'.N0*J4KIL>DLDM1U,= +MJOBL)OKJ)`HN)]TBE`!IQ<_[9V^.SL_$]N$OXN?MDY/MP[-?-@G$#^W$@H\* +M0+`W[(90\`W*X/WQ'6+:?R/>MDYVWD".[5?[!_MGOT`'Q.O]L\/6Z:EX?70B +MML4Q!E39.3_8/A''YR?'1Z>(VG8:D*$PY)\RN)2G?X%)E1B +ME9%CTRAH!^%'!"IE5*F9LP9E^,0+$$[AV!K#33SN^H-Q4=R,PK$.*./,)^2. +MK\*B:*R+LP"M=,0QA6`MB5,D8Z)6*Q?%JT$TQJ1OMP4RE)52I59N%L7YZ?8* +MNF-\PWH/TA-(3;G?#6E\5;LB=272X38GKD!P:"@J+.K;N^&'0`#EA%-Z,@KD +M(H+10V'K[.CD[/RDY1T=(^[FH+#Y-?5^9\;XZ\WWI +MV*Q+\=?Q"-99%S9GE]&U^$XKHL?V6V2E_@`7 +M9Q=S_!7>=L+1]W^-)A?XKW5LOUAIOW\O6_F-V+\4-\%WN#@QS!!61/B%"J;P +M,E2A<\8[A49[CTS5( +M&O+<6'(),P"JL90'1NZ//A/_DSYJG<."6($C^;/4,8/_:]1KJZC_;Y3A#]X% +MX$U`K?*5_WN*SSXP7[<;`L6`M_Z'`+?Q2MA_MO7PS[.3G5,B*1OB^_;':#08 +MC%&^T/];U14_/AL%P$(%'Y$>C>`?XM,J*Y5JM;927:G4G\':O!2EMB@!O1Z* +MTLAZ)^R&OWCQ(MZ97$5L#T?(U]9%976CWMQHU$4))REGUU`JE9(Y*U#X'6C*I\S]MY?;"]=PHUE:Z> +M/=?OS%,XX_^:5X_W#W<.SG=;IP5X!@]D,OQUMGV"1K!N_H*5U:Z-LI^].6EM +M[WKR06EW_U#EAA^>A\6_/CC:/D-42N^PU=IM[8K_"OO7X44XQJ.O_5^L?OE& +M;'BE^::RB`*^P!F^B/K@(X:5`3-`H[`9]:D+\41G?1.`#>O-_N3CH! +M3:T:>_A>^H\>>V!Q^H-2C,M!#NJ))R6^@5+'0FS1QFF4R\5&>77>C=,>C2^" +MJ[#_?=#O8-MV3LY.S\Y?OXY/D#L9]C2]/3\X`\GJE7Y=NBI+'A$Y3!K.$OIY +ME8#A0H,;D(AH7!/<)ST-;MN!;/$_8;T(?OJ_P0@SP&"#Y/&_00>^ERXBF04C +M>99\^*\T#GM!RMQ$(*JV`QJ":_;C,+5LJO'O!`3>J68%!.=^$'0"&A7H7G5[ +M=[?U!L;CKWGF(0O?3_HW8;]3ZMQ45]JICTN7G0!>_9-VE9J8.7?5O]_$++*; +M_O`9BV^Y\0!DYX\K`[&AOF(!.T>'K_?WO#_G)ZUWM(>K#1JU2+\65.[ +M$#Y=OW]U/1A\B%:NR?VO1%#)\*-]>=7U[P:3,7P'":8K'X%4`]]XNL0U".@J +M,U"\[<.]-T='/YX"S7N-E;=!!!]>T[N=HY]:)]M[+7Q,?KT@`0Z@3"@G!V]W +ML*5X]IHE0[^.CU.6$$YS#N9Y5](;C"^R]<^EO^9YQ+W^H-_VX0\&`RK\GQR=M7;.CDZ^_$GXH[GSS_\QNJS/)?W-D/\J]7H#WK']7Z/: +M(/OO6J/V]?[W23Y_$X.+7TMA;6T5!)7^Y/89/Y"@?/`KIB"PGHSD;Q2:S+-V +MXLFU?#+%S2`U1?9%U`+)*PL57J74P-=>5MO?PS^OF\WO_F6@RX*\ +M?M2#-Q_9S'*@KYO@6R_J7%QQ2V[;@\M+_FJ=R+(]B +M7$*=,WP;PC2/[X!-#?N8!MCL/3C';X*+E0%SJS2*O0YQE^0M>O$K;&'2[1;4 +M:W_4OD:F&M.T_G%VLNWA8SQ6D;GPL%;,5T"'A^LQQ8>2_6<.7#48)US-D.)N +MOLY0]@Q99/2L29\N/ZC4U]T,? +M+]RH1/EU,:[MKQCE;_OM:8R#DT.\(;\L6B9SQV]P.-VIV<@LR$F']1V?M,[. +M?@&N=__P#(M:MF<2NVN.S@5;A]%PZ0O%1'R#C/8R.89+B4`#'EW3[!^?<&I@ +MD[=?GC4B-$.XZ$3W"X]J&IH8B,BV^2.B-.)?]K'.M(S6'=/<:3+JC*/\UJE`6=M +M(^4PEV^$:JPZQN7O7*4!![$\PZNUC6IUHU[59[@J5IW@.E/B]&Z4,TYO8.G\ +M?L?#G#(N*3SAJ#`L$+(U8D@-J]:JE2+\T7J('+L6$O3']R_$Z\%(N]F1)J@C +M>*5$1:"DHH?XJQAMC8'#Z&+?E]6H4O`HXDM1"LM(UZ;PWXA,$U081$B"E[X# +M-M,@#9"XAC1%EG;I@]F,R41_(&Y\,C#XT!_(W'W +M([3!]L9!;RCR5O13&"*$T./_"M*BD7)2'%1,[R&LK#<&EJHO\AU*DY/WU9,V +MWKQZ9.=-R72TB0Y'-<;IE$-=JRHJ_6\TU)#5RGW&%]ZR?#DZF-TW8'02[H)[ +M2-?D:!&/E^1607[<:X;L:4RSE8,F6J9$`R[!RHY3!T,UB52D)9Y]"@$L+6Q^ +M;+6.35Q@Z%'C'LNF\;F6C4WZ!KT+9"&>AOBIRC+)7[U<7JFOK*:0/_E&F`9K +M`JB>Y*H5\3JXD&(,D,#Z!O(ND@2JHC4)U-E2B!6+;[X\]F9/#U`T-#%N! +M&:EZN5*$/ZL6(\6/*F5KB^+GVV_%I1"1QNA(@H6Z+K<%Y5-.MJ!+!PB%IH:38$' +M/UN5R%A#EH^R6<9H*H<7!F@M1:&@1#B^*QB)`VW6#P[H@I +MEH8D5%@^,#1HO"CC#4!@CQ$Q3W:RH%!K$4%)KA("4"*DHO9W!5JB,$SU8FVM7+.6Z&<<*\2:?RZ^ +M"2^!$EV*UR`4M+R]DZ.?3[W=HY\/?]X^V>5$\ORB\?/YJFH46'Z#5Z/!320F +MPQO@_\Q!DZ#D4,2'(!CR2!M?0U..-%;3)0P'44A#[3A3/5<#CJ3>*]0IPT_H4J%=6J_"H63=; +M#'H(/1TA*W0C"``,:"C"B=$ZMV'\9H51HS5&/<;30G58(AUZ>MO&-B^1X:F[ +M<%GD"/!WVH9*A%DFELR-/XX%XRAQ2$Y9[Q/KW) +M,IMJH0W:6'S@LJPV80U6F^OZ2/RD#EXI+NRH*SV0%$2^%_8GD=B6T7M>B9T" +MJB'4<_WZ50'>(!--9$#2S$@1S:GKUPKQ)XE.:^]D^\![BY"AD`2'B;B8M)%^ +MNW\X?:CM!#:X9>H(QZ(*0B+:MM7UU6*]5E[7V_9S#AG]HC\+[SG*%=]WCS<' +M3.$Q4OG4#0FI"3S+UOY +M$88IC*()[Q_<9%'/CZ[QIUG+I!6(!@2SZT=4`M3A3VY+&%M<-TR2MW#A/C*3,5_`UD).D>CMR'1 +M1F>O1D^EY8BF:3BJS3781VD*7OE&<$/U]HRD9L-6[I8K^I8U9XK46S/*T&K4 +M,W;EY:#;<=@&5Z-1KY9KP#24-=-@5!-XH/2#&\;-UW[0N9R$!'YN)86#DA6' +MR.\"]S]HASZ[MER'EV/#O$=%T1F@4TLW&!.C3P7B,NA,VABK2Z9G\0T5FNJ[ +M5/K!INVB^G*TPCE);=@FM>.@W9Z,F`+[@BU4VKC==S/.V*14QQ$;E>CGIM!]LT0\ +MJW.6GK4AFC40[IIU6[@#`@R/&@W+"M!2?W$8 +M00X",FS3C"AA+25*X"WS.@28CTCZM*XVE;:-$)8F8QFZ@`ZLH7_E*PKI$%=T +M_93J.Z.3PX_&K(XKY[#NWU$\(E*`JAR[_9M**+/B"52LN*FQ#EGA4V_MH.B2(M#BI1>&MH22"2(2KQEI!I%+Q\M' +M

<>!O4 +MLK5Z<;ULC*'IMC+H,;`I7E?BQC91A23HR'.1!`6Q55N\A-!&Q!^--]A*!NJI +MF+U_GWJTE$;7`MEG`KZGD!\?P]%XXG<]VO$>,,01A6B8V=X'#6AEK5&L0%?U +MD.+'B63QR>W:\C!A=J%@KX,2(NA9`*,N#%I;N,T +MDTU85J&U-9:S5X0A; +MMP^UU6*C7$D>:6ZQ>`K@J<85H_T%K;_]L +M_^W^_VLI+:=&18P5))$*9*]+G6`(C``H$DBL4#2#[D=871&A<\0]B.T`H +M;PS%4M2KK"%1M]`,,'(+*+EB@[4!>M'0"RGL1(%N,N"_2P0F9F^$` +M-@MJ%ZBX(H&?)'>,RZZ,GHQ9&4UA558K#60ITG@5]4K(QEJLRBB545G3C(HN +MU>)41NE\RFH&GY**S)."AL*T=ZW8J%F4%WX:-UCIC2F6@)/HKEPO.<_&/6^8 +M>$;F._ATV7IJF>@M\6F##'#0Q@,?A":ZE#2F--]%6G2(%*C,16!"/?(*IIB. +ME^$H(BN7KA^1@$9/Z0<:\^#;E:2XY??A!/H8>!=WWC#$!2ORD[Z$LK3X#N8Z +MRJOE(OQ9M500@BR16H>[Q[CLRXK?&0^*N)G5\XIZ+@/O^4S541;TNSX7`Z^& +M[2'L4WG_J/)68WE51M;AXUTDXK-3.<0R1&,L1EW;/2,J"G_CO23F<,#")8Y4 +M4:3U&_B";M#G.PCH>06ZWZQ86H@OMOMLM`6?GZ^#?NI=O)*)?"7$HJ5V0.-4 +M1&LKXE/Y',=G7)H53Y'7EW7,DP6*5%3BXN"/):?` +MBU<5U`G:HX"L7:SZ'GE&$TS:G*7Q3JA4:T7XLV:IR^$7/*HUW-4A#[7STY9W +M<+0-`O1)"^3XG9/6VQ;RG'2I@Z'#2".[G?##$QG +M:;!BZ"<H9P9MD.,\Z83E"#%`Z>BUH1QMS7O\*L.CQIZH^;FZ*)^JT.CFYD[ +M/3N":;O?U(T'GW?BH/WS3IM,FCUI<$Y,FS)Z/7O"O`I/6?X%2%QPD!7H9U&L +MK/"$5=?@%*D:A4`.AQ[54'[GUTDT-G(2MJ#TDF><11M^HN/=QC;9F^V?XK,D +MIZ?T,MZ1'Z0N->C1,U0XHGP(=5?E3\ZGQHSTKJB;U>)BR8WU7*!8MH78ZIF[ +M2;0=YFV4V7\+-H>K4ZK0FO6QH-*D38<<BMN4\5>060<@AJ:S/2A&9K(/[UK\QFEBKRPG[A5?8TZ^Q>/9,ES-VWE,7Z +M%,LU3J/(I-8E4KP(8F^(1E7KS4:Q6E^KN)SN0D="Z67B3"B]C!\*SQ6EU6M@ +M(4+..>/DW*HF1L^3BY0).MG3D!\#@O]4Z^OKF5S,8W8<=;)\UNF.;&J3T]2M +M;7A2FK4$/^I8G\[+E\YI5JK-*^E@WLHXF1\XHX\TE[-6?S7CB.;5WP#^J=IH +MZ-6?@ZV52>.1,_OR3V>11EC:>&4,@\"%T6SP8+@/\)?;.^ZQ18.G4*0V.@%( +M+Z'&:A4&MFF\A/ZH@?U\1R>MM"_U[/S#5T%\7[+^T@E:3U>7MDL?7WSJ/O,V=DN'EEGB]?P*#_-/^R=GY-EZ! +M[.V?GK5.M*GB[#)^P.N3E"+D6:$]%\A%:TLY09*M;8`&A8.AK?ZEPJ'DMK$] +MQ&6167]1#(955O'`UJS`(%?7+0>,?_=!MDQ*Y_"H@!V;60=>-4RYAWNRF;04 +MY-+W^BDTY+*J*1@AS:S;?'ZCO-%INULE3K<(5<4J%;G.-+^.'*UR1GUQ,1AT +M$3R][W6"X2A`=]*.AU:3FRRWTRUNQ48FP`>VOBM1$%I.MN%@ZX8^7M+):T@X +M?!YH!*K,:."_E#IQY>DS;9,-1M'9;M!GX\I+O`HF2R@$VL/[5SAQ.H0;<4GH +M>Y:J41:/G"J_#CP'1"3"@>X=P^A^W#G?A]/=.CLX/ +M=_9+&M/9CV6KP^/]Q!C#WO%6ZO[9-?4D0RZ'Y;[)W]DL_#\F*> +MT@8AF'RVI]15,0$B*3F,8KM'3&NK+,@S;58;=V:I!3'' +M_TAM4ED-[E#RKE='$,6M,MKQ6K%NG&&'\5JM6R.!"6G61:X6$I18@,C#0"R +M-O(E[@,.+ARV#(,@S1&4=$(.$2$O`>6NIIL5&3=']Z[L<@)SB]5KG_57SG22 +M)B4.Y*#.,7*QA:+9*L*J7U-\RT?=6BDTW^1[OFEFFPHQB!/J^A)F!G@56`?B +M;>MMA/?>PRB8=`;VZR&1E9^V3_!V]2XQ1Q(`@L\#-G-*M=&21&FMN%JWYFRU +MWBBN-FS[K)OK`9Q2W?`R(-Q;LHSNCQ$IBX+PB)V#UO;A^;%W?(1`1P@WA,-/ +M:!60MO9,2?;2CMN!]QC@24>```BLP;[<0H;9(+?.,06I[$"G)$]A.>E()Q(H +MZP/T<.5J!<9#G*+Z`!M16&&3*=60AFJ#JMP7/)`TIG0GK:=C10O4A)TA\4&( +M0!!@@178IQ/#^<#EIQFNJ5-#JQ4R,^%QIHBGI@Y38QMPK`*A7%VU#`_UA3!; +M@\)W%MX3N_3%L"A>7&"XCJ$R%&7!!=]NZ@6+"]_C-;\UPT&6Y"?@K=#,#@7` +M"OZ(`H0=\]C!R,.S)H]]LQ04;-%/&D88U%(%[\Z9$Z)QQ?5P,>C<"60).LY2 +M\37%NE,DP%%[$E'A@7_8J#?A7+9\64GI.RR]#/L>S+9\(L%N/`2Z0;7G91?E +M`A#V("&66Z2U4I"I\VKD9;Q!_EEZ263PI9#?E%"*!J)."C3OEU^A,/6*IIMS +MTU<#RR&A>E!7I=-!&?P%2K#*)?W1,PGO0TML#;D2@RGRY^D]%L".I-8JAM(@ +MA7ONDNWP0\?J04NL">=DTSXGFY7U8K/:B"&Y8(.DPE+N6?-B-`86!;B"Y!NJ +MK]=H\A!3#S0=3O>8J#$[3'IRU#]YBP+=GWY36UBI=9CG10\ +MQM))B??JX$?VRM:32Q=;:G=<^)$>X^78#&QA^58"]EJ3NTNAAOT=>X6!IBZ1 +MMSK>U$A!?V>OU6.-L9&3`TF%+U/AS+19[TSMG,!B[50J:S@JZNDGZI)V5?HM +MWJ_?8OT:SN[7L=.OOYM^'7.__N[VZS?3KZ'J%RYTF-#B^JJ+Y_1%32I4(CWZ +MTO8)I[:?_;LN`C4.N?N/PB,LF3C%&$[&>!?K87ZFM=HD0(N*+^`;$9`*^F54 +M+(L`ID*6NT@_N)&>2NRY0K]39`NT/$"MJL=W>[%;9/VFH"ZT\/X)(;?#CQ@V +M[F^B5$7R6:0V&CX14?WYW@&Z5$192-Y+X8NWYH4I7UKTR'[5[>-BCG[I$?J; +M=M1Y<%>QD*F]U55MI%6&9R3+?GS%;FJ6(XD59+>!0/D>,)KQY17RW7X(O+BG +M;D408$Z9Q[V`5N,U'RVOVGJM7(0_YG8O9T"99!A08/>5SXN%K:3.2.7@!`N: +M;O:/;4M!_%@8&Y`69G'3=7_^"#Q1X4)3=L-PWI"A7'/'5MO=Z$P3"V]U_\8!B_[>P[ +MM,\T8)9.^NK)T!6N9L`KK*VM5%?2P/#E&W'EXBM<28`%2P.-"/AU&SU7%:H4 +MT%>9"`MK6;B1."T)[W)6!:"+_J^3WC"2SN65YEJQ7EFKNRZ6B(07HM5^WX8; +M94D<8Q#A@F.C>C3BA]/JHQ]V"6(%ITY:2I`1D]+FD3+&Q1C#`Q,(+-3C47Y/ +M>4'WT:L`_=\W'2RAYT+Q62IVJ&/>,/2Q.$A"5A:C30F#IOKG2`E?;O]0,DV! +ML.0^%1;HO;5?S,W!DVP:J[HIT$%UC/*0BAU$;X3=:+5]K&>Y:DW\-TR?NL6I +MK6Z4RQ9\$!>O]I"=,64C9<60(',V.OOPS"7\>^P'`U+C\R(AXPMUM`$QM^YQ +M\$&]7(TKN?%B;W0526QBOWOCW\$"&PX#H`B,+524T:^E`C&TE-8$VWM^VMI% +M_,`A.CA*---E7;Y@G/Z.`UHD483]2.P?X@T.%0_L9'2#:KJ+.^MRT\)2G>J. +M3$UAYD$V90M5SVB==:``5_$[I#G>CS5X62O]3H.Q0F8O#6_"2]1+;I]LG>:@HIHB,34*3%&.5`Z^W*WV,\P..+UTT\V1>(XD:5H +MW%GY&(R>@BBY-6;3I5H:2:J)6(,507(?Y^J(SH64I28J90QL4V\8DE33U"B6 +M:P&"A/?TM94RZQE%!5>?[4)/#]8L5!COG$+^>:>_'OSJG?AA%+14?,'D^]=H +MH]?A)RFY@VC2"_C2\_]BH&^^%>[D,3[G#H9P^VE_MW7JG9X>>[S]O['M7*3[ +M[TA$=[V+03>B%)YW-?%''?F=91Q*[YRJBYV +MM*&U=]+^_B5U>;1?AC+RYZU%PSI@G:@*0_@&-E +M'\A)BVT!MD_?>D?'Q#SA.;.C*J"P@G#Z['I`MULGA]L'![](.Q]=UH&'M@F1 +MO"=;%O_'$,>#C"6B[!=25J)M^?`#;+APL'+],O80[Z3B3R_;Y/SL/IST0]RS +M]-2TRCL^.MW_AW=Z='ZRTW*+!L;25Z7P,E89A=H]9-1\^LOIP=%>P"C]]# +MIB6[_79'N@-8Z'(3OUM[#V?([^6B2/GOTZ:Q>D!EM2*?)UD8]52#$4,:N(7`K[1BX/'O^N+RLK.IN1G5T/)["1-C@\)SLDN, +MDS`88I0#[OT$[94'O276FFB^J(,EE"H%61,<]ZAZ\\9"7CN,`K^#R8K`]5S[ +MHQ>%;V7E14HQN%2-,6A1[2Y>ID.>@E"/L"K[DLG.IN\E[.9_4FS@/EZ`UG%E]_]L_]=QOL:OJ\V&OCZ$R\*O1I2Z`//`-&[=^^+`@,) +M[;\Z/P,N^I#X:%*D^SW_*M!+Q]J?N&KV#L^1LIQLG_SBR:--FMA1R2^@7AA& +MV.J]8-/>(*SDX\MST4.(C*O@'39^:2-N`0KK'G^'?:-O7#*W[Q>3R^A_J=.K +MY#C#;ZA8>/6.7K_?G$Y8I!/2X(H"(G$)RB\,B`GY[$SZ<#I''B;"WYML]2H",$)8'"]G9-]JV88T_;P3N1A4HIBZ8?J +MRZ7")L[95FUSKI4%^?MMD.6Y`+.RBG(5E*2[=$6VC=W*(!=^P4R%V!I$(L)9 +M7Y+3E>R]FHUXC7*=9E4G,JL4FOXL6".N^/M7IZ;C&*.KB6`T&NB]9B8%T6R! +MMIZ>[;9.3KS7^P>MPR.J4BR+6E'662O,WD+0L[S:0]@H.H9%7NX16&.P@KQ= +MD+'>LB\"GQ+6`)A%?8KK9^D2+X265(LUJ=4G+^IUKIUU;6W0E6C2]R[]'EKJ +M;:F-J@:'#T,::ER/B7Q8<-&<]D5EN\,'34:&@C,WJ4G>S2Z`"7SY.UT.#,5X +MH`>69H9FA9B'?(Q,"3A-[;*+4D!.J[>0L8-G$BDG@@1."23W)]VQ%F-0*2AQ +M1U4@JS0J))L>7OE,U2-?=5K^TPMZ3*0BGWHKS_EXQD(AE5)&_DKD>TPO#'JE];V`UO]_6!59]L>UYV$$@D-M8BD&JU?4#KM_Q5,!Z& +MG7PA3G*=20"!+[@%*2Y?J38+ZB@W4D`**V^?,RPHI)WVKO4ZQ3I_&BF0:IIB +MM8Y*_33E@GPC9%.U'$@_40@T0:;J&_75C;(59$H6J@5!F<>5`JOE#4352Y4" +MF3=$M-D.^SJB)Y-@QELM7BR5FK7:J-30`M0V5>='5**XTE9UV;!JS31`M::PFZIVAO4,D"J$U:%UXVN1_0`J`^U +MK8$>E?I:VQO#$L`5B2(U4&A@[3W_(OH885[\0H7`9,&3&G^!TBAG-+G@A_B% +MJH"Z^0E^4:W@HO`+%45:$\I_>1G1*_B7WW3_E_Y$\H=,+G^/^?=P,"1<8F_L +M7^`MKWX0V6\YJ0_LU%UDOL+3[U@Y]XW8#2.Z=OG]U6:8C59?E_V!"+ +MM//N\X^[13@&0VCY$X6N575E:^K+&"*DFJ:NYS="-U=1#O4@5S/7[^7R1KVA +M*4#.E*M(A\Z40C>R`H](=U_IYYL%@ZN.U>9:<77-MN:'!\URS3U2E8L\'PS\ +M"PU%^;`CL!KOMTDP"512'=N/E$;+BD +M1$BQ?+E&#!8P+E@-4<+^.WZ!8_=^A6ZD,(.1$^U1@M-9FL?P$Y.*#D/SVK&> +MD<8SR\(I\SD<[U0=0B*\HU:^7Y%(!N_*[U>&L&U"]$0H**,6-JM4'(+A//`M +MR80*EGZ^1L2`(?"^\K1U)O(_'>WO\DJB:DF`DQ=P+@2TL?_$4'2X\,KXIU*P +ML>J=.SM+OE;#0,N'81Q`9E$+\7?;I.)@X'=$9X((%^B8T1_T2Q\'77^,PK(< +ML(A0Z5DJ<2G+T]&5:52E`5QU*IO.+X1LJ$51B#1,QH"E>"%P<"EYHGJ# +M(0N[2J%/F`RDR:7!;JZO%3%PJ1[LM7*EN%8IN_9%::,-&UV/+7\T-+RZ`L"@ +MHT?'9][/L6':T+LT;1!-P3\&'?LGK7SM\>^BJCM=U0G_27)NE@PNI5:>6H\.C2&HR0L`4CW4X\D(7 +M#;FL!WD762LB,R\*9>;Y03.:>J0W)'YJ02BUZ`718H`ID<,Z2@9-W+4"_17 +MQTAO0!T_!C(Z3,<91;F>'[A(-#*"I^I0)L"J2^Q0Y-^FI3H.<(V-A +ME1M-',6FJ\;Z$XSB?&?:HP[O]'4^][C'%SM[^Y"/("G8>*V3JA`>RM6^7E]# +M=+MZDO=2"5%WAU8,!MF0T,K$A_[@IF^@4J(AWOYRN(.7:!)*`".$H0)RL`4^ +M?)OJ+FJKJJ_V][S6X>[^]J%V?>:PZFW$E@&F6%R$5R6\FO/[P""/1E+F0F87 +M+;2235^1S@#U=1S)E*"<3SN2"0?1/_'`VL(J&N0^B:"*%64+J74,*IGF\R?? +M"&ZH%E#Q5YIP:MWCRR*U<$I9%A!,I3DB6=:.QA^#MD?RF'?I0R\[C$F!\458 +M,&V"*-JT15-\8$&[2"6RYVEL-Z^PR:'@^`6LG4WQJ2"OZ*7=\,G9`4$(>CMO +M6CL_KN +MJ);QO#Y/YD;&\]5Y,CPLBF4+350NR+1Z\Y9M[`M"@2X*YY$F1GAHN>_4&6]L>0^/ +M3EIGYR>',W9&=D-X9ZRMP4:P=+L-A*(N:^.6]*6^.GNIPU308LTLHSG?=IE9 +MSMK\VZX@BWJT':Q;IAQVK%8B$MR)ASYHA#)*26'EQ&<+Q,[?>4WAK\9:K=@P +MP5]566ASB_?;IWF$>RQ0H$3Z6A3-@EMMW.F-ZY7;`GFT?'SXEN)9EHI,9XJ" +MJ]C9/CCPZ"O30UJA_WW^]I@?,@0E^KH4Q:OMDY/]U@GD01P&BIM:Y$O0(E5/ +M60^/SEH%]*63#JJ=0JS]L-W>;!_N[1_NQ=HODNVO9UQC$#2.'56WW+AE?+$'MH$66-_H +MP>5DORKY)3>]Z1?ZV%J-5EIXI]&H6U%H'I?HN8`(AL#R7ET!,PZM+HH@)"4+ +M6X#S`:??BG`Y:MT@`E0J&&*UO&8Y3%8=^/A8WA1F +MNY'!;*N<'H6VX?"4;..#5XYDQ,(X_IBX6FU4B_"G:6'?RD>6GA_%\KXW&*)= +M=A6E=(1LBOTD-H4,MXNB+W^9B.]2ER65(.8YR/R_\AUD#.YVJ""K5'AXS*&, +MT:%JRQA=P,]"ZLWY@D/1;$*_UZKV4#37\%'3@C9C/S211]P#*D(+D[^K+W2Y +MB=1Y0YK^S[1OLN)74[F#X?0HUBI+/,J%SIP1R!H_]M#"FY^V#])R;SJ=>;M_ +MB+T1MJ>_7!!;?'3F<2O0:6-E +M,'3[;&>BA]N'9P@L8&>K4K:D4DX'@"%_RU@U+BQ*['4_N!+_GXC5T4=U%AS; +MJDCXS5L$0<]4O'B.LF$*3[03[>G<<%6))$4]I5R:51RE*Y4,!\M(,9/P`VAWU>@VF:#6&)4YJQY?(X!QM1H9`22PENQR`["QM91=]V`08A9M:E,@`B@ +M3404&+@S"")TQT6,1K>#V@548K0P4:>L!#;.Q(4:[5ZM$&PAS8E+[-4XJOXF +M%\VFBF&UV!2I@DO2&@4>WF\FK,FTAM]LI(=OJ`<2R\8Z[D3+9JE:Q].L46LD +M-JP]DT:W\)X +M$EAWUBIVUW!$)QW>+>/(P>9)#X0D\DR$<$'?%@AR/2=>2\Z +MLP)Z@5^9`X,A&*'Y@2P=?EY8+Q6[2VF4*G0IE,JER=2RQ(U=EKBQB?+Y'$7#:=:CVB2BDD4FM,;5 +M)A65+'+!R7,SB(9J4"KA,&/AC*78,D$&:0A*9B0W%QS"9,Y/9J;U5YL:70ZZ +MW<$-`21(](&A/T:%K@5<+O)`(!`&X=7Y:\0Z?:\VMXSL&,E("#H*JIT5B0RT +M2Y1DYH)07^Q45:`Q.BG4-BH@J5%[-Z>/7J*[FOM7&"-3QCS>7ZX!!!/934.7 +M]$`@Z4SK??A^0X0;K$."WQNFK+`OGF<1#:N'_NAJ@N9@&TY(61A+5="L_F[- +M[*]ZJ4UAM6X.<7XMV#X9B&GE:D5L[_]#U%=N=6`W?4N@3S:03G9^ +M1)_OLQ8B1F7;N;J>L\I'F-`:@/!T0JP930UO"6"9[$=T'+G,1*)L6A4?(QU% +MQ5.\.4$,;,HQ62^NKUFLX?I:K;B^;AF^"&`OPQZPEIJSMV,7_3\3]*T_,&]D +M"*&V8F"EGH<<<%+;(N+04K'QY+C5SCN7(!2>/2CP'5.'J<'N%,A@9F@ZA4N@ +M.)19I97G+,VL%H34PM7"SNW/E`>3?;VHO=\IDF-"<&!/$TZ$H=?0>3X80A5H +M,,'.#S!S'JV-2J6!>O;5LM&R_+[4"WJE48"!#I<0;29`TQ#\580#_E.1$Z&U +MMS_\B`FH:_3+37#C)+BQ$CSG!/W@IC3R=0J$6D9%<9?PN"M$<3]M:G7UFX"# +M3?EB3*)J+)83A3GJK5P+1NCH`I=+0;DPQEJI)[5V\B(!<>(J34LR^G+Z+!,N +MT5(I::JB,Z2MLVD92U"TSAQ??Y]KE.-+.%226S)/K2-[-1L&=G?28Q9H-.YR +MJ%(3%ZP#[^A0'7>M@*5*I13T/4S`D#SYW=?[((AT&;&^D#2)0\0G1$=0^]0* +MG5*OKU6+\,=2U=?1`*#>J-A!SY0F"`/O$7XK1B-LM5H2<04;>N@?1D5!"@:, +MY-!%E[3Q-8*F"5S3-DJT'DR=V^L#V35&_7HG#%6(4HV@JR%_*?`:1HE@LUL6 +M5+&'O?!_\3XL)JY&Y$/7]H&T1W*Z?();'B&V%KN$<$D,I^2/,Z=31E)#E59G +M@-HLW&DW(AQ;\>YT#^-+80:*_++I?P;U/SLY;U'T/+V]]MF!`.W4;/<6<8$G +M%I#HA.,I^]0\":-(-66;E36RH.3E&R&;JEE$^IFS/4\K&XVJ8U?6<)'D998% +MF$,5+PY-4BDLDQW5L5)?6R]6ZNNV)Y]\9/NPW%P3S2.&AHSY-4.CF#)";-:RLC1GK&&UC![THO<6NO,,@UF?!(0S0.E.EK#.HB2A`J$#)#.&F^ +ME&,5#D-Y6ZPHIES.:8K>Z)K@NDE4"\>1-I)7P08I??R&V8*_5AU3K9O9IT0T +M9^R;,RQV?#PGFJFX`3Z->TLA`+%4/D)UC-"/H4_-_A]^^QUT[.X&@TM"-3O? +M[RPORZ":M/_4(<5R-:3_X%_)*^HHZ&'LCS9YE'TG"]O$.:?;;!@X4F*C"*L: +M1R$R&:$\C.R]B`'CPJOOQR5X.;E]BCWIUIA]0;V:=C>]*E1+U99TBT.$>@,' +MO;;1:.APP3DJ4VW+6+:4[9D199AW85&[S7TC=IC@B?9H?!%C/Y\"5?UK/O&\($J7Q_L[3A4*==BW +MBGPNSK9/4,]WL/]J;V>G*K/C#8',3T4<*=:"K-WHR-M$,2G@K9VMAN-$7F*E;(B$IMHUK?J%D;LE&/ +M[T@[:W)39B!K4_VUM7JY"'],F*,\L&[M:^6NLK&[#[+!DH)?DT^7Q-)2H?"> +M*.N27"NM_;,WK9,E?D8R"#)4\N79F_.WKY)0'*1Q[@](^I%!@FTO41E\B)MH +M>0]^EB9NG[Q5X:Q^MR]36QB]GB/\2A!7M)#:DG(U@7CB3_R+?/-%P&X"@1\A +MVF7,G\R^6F!WH'?E]W2I@!&M=%*A44@8@9B5*>0BL;NO,'ET`GVUSY?`I/%$ +J=ML:^A7X&%Y^@0GXR]?/U\_7S]?/U\_7S]?/U\\7]/G_`>FKZ(H`,`(` +` +end --- gcc-3.4-3.4.3.orig/debian/patches/netbsd-archs-gcc.dpatch +++ gcc-3.4-3.4.3/debian/patches/netbsd-archs-gcc.dpatch @@ -0,0 +1,40 @@ +#! /bin/sh -e + +# DP: Arch-specific changes to gcc.config + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +diff -urN gcc/config.gcc src/gcc/config.gcc +--- gcc/config.gcc 2003-03-02 07:39:03.000000000 +0000 ++++ gcc/config.gcc 2003-04-24 06:02:55.000000000 +0000 +@@ -1127,6 +1127,9 @@ + x86_64-*-freebsd*) + tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/x86-64.h i386/freebsd.h i386/freebsd64.h" + ;; ++i[34567]86-*-netbsdelf*-gnu*) ++ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd-gnu.h netbsd-elf-gnu.h i386/netbsd-elf.h" ++ ;; + i[34567]86-*-netbsdelf*) + tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h" + ;; --- gcc-3.4-3.4.3.orig/debian/patches/hurd-changes.dpatch +++ gcc-3.4-3.4.3/debian/patches/hurd-changes.dpatch @@ -0,0 +1,42 @@ +#! /bin/sh -e + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Traditional GNU systems don't have a /usr directory. However, Debian +# DP: systems do, and we support both having a /usr -> . symlink, and having a +# DP: /usr directory like the other ports. So this patch should NOT go +# DP: upstream. + +--- gcc/config/t-gnu.old 2003-04-27 15:01:15.000000000 -0400 ++++ gcc/config/t-gnu 2003-04-27 15:01:48.000000000 -0400 +@@ -1,2 +1,3 @@ + # In GNU, "/usr" is a four-letter word. +-NATIVE_SYSTEM_HEADER_DIR = /include ++# Overridden for Debian GNU/Hurd (hurd-i386) ++NATIVE_SYSTEM_HEADER_DIR = /usr/include + + + + + --- gcc-3.4-3.4.3.orig/debian/patches/reporting.dpatch +++ gcc-3.4-3.4.3/debian/patches/reporting.dpatch @@ -0,0 +1,170 @@ +#! /bin/sh -e + +# DP: Add Debian URL for bug reporting isntructions. + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir=$3/ +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + if grep -q debian_bug_report_url ${dir}gcc/version.c; then + : + else + echo 'const char debian_bug_report_url[] = "";' >> ${dir}gcc/version.c + fi + ;; + -unpatch) + grep -v debian_bug_report_url ${dir}gcc/version.c > ${dir}gcc/version.c.new + ${dir}move-if-change ${dir}gcc/version.c.new ${dir}gcc/version.c + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- gcc/gccbug.in~ Tue Nov 14 07:21:47 2000 ++++ gcc/gccbug.in Tue Nov 14 07:24:59 2000 +@@ -24,13 +24,13 @@ + VERSION=3.113 + + # The submitter-id for your site. +-SUBMITTER=net ++SUBMITTER=net # net-debian + + # The default mail address for PR submissions. +-GNATS_ADDR=gcc-gnats@gcc.gnu.org ++GNATS_ADDR="gcc-gnats@gcc.gnu.org,debian-gcc@lists.debian.org" + + # The default release for this host. +-DEFAULT_RELEASE="@gcc_version_full@" ++DEFAULT_RELEASE="@gcc_version_full@ (Debian testing/unstable)" + + # The default organization. + DEFAULT_ORGANIZATION= + +--- gcc/java/gjavah.c~ 2003-03-28 23:18:48.000000000 +0100 ++++ gcc/java/gjavah.c 2004-05-14 07:26:44.000000000 +0200 +@@ -2320,6 +2320,8 @@ + printf ("\n"); + printf ("For bug reporting instructions, please see:\n"); + printf ("%s.\n", bug_report_url); ++ printf ("For Debian GNU/Linux specific bug reporting instructions, please see:\n"); ++ printf ("%s.\n", debian_bug_report_url); + exit (0); + } + +--- gcc/java/jcf-dump.c~ 2003-03-28 23:18:48.000000000 +0100 ++++ gcc/java/jcf-dump.c 2004-05-14 07:27:03.000000000 +0200 +@@ -893,6 +893,8 @@ + printf ("\n"); + printf ("For bug reporting instructions, please see:\n"); + printf ("%s.\n", bug_report_url); ++ printf ("For Debian GNU/Linux specific bug reporting instructions, please see:\n"); ++ printf ("%s.\n", debian_bug_report_url); + exit (0); + } + +--- gcc/java/jv-scan.c~ 2003-02-03 15:06:32.000000000 +0100 ++++ gcc/java/jv-scan.c 2004-05-14 07:27:26.000000000 +0200 +@@ -116,6 +116,8 @@ + printf ("\n"); + printf ("For bug reporting instructions, please see:\n"); + printf ("%s.\n", bug_report_url); ++ printf ("For Debian GNU/Linux specific bug reporting instructions, please see:\n"); ++ printf ("%s.\n", debian_bug_report_url); + exit (0); + } + +--- gcc/gcov.c~ 2002-10-08 21:45:17.000000000 +0200 ++++ gcc/gcov.c 2004-05-14 07:28:07.000000000 +0200 +@@ -350,6 +350,8 @@ + fnotice (file, " -p, --preserve-paths Preserve all pathname components\n"); + fnotice (file, "\nFor bug reporting instructions, please see:\n%s.\n", + bug_report_url); ++ fnotice (file, "\nFor Debian GNU/Linux specific bug reporting instructions, please see:\n%s.\n", ++ debian_bug_report_url); + exit (status); + } + +--- gcc/version.h~ 2002-10-08 19:27:39.000000000 +0200 ++++ gcc/version.h 2004-05-14 07:14:38.000000000 +0200 +@@ -2,4 +2,5 @@ + #define GCC_VERSION_H + extern const char version_string[]; + extern const char bug_report_url[]; ++extern const char debian_bug_report_url[]; + #endif /* ! GCC_VERSION_H */ + +--- gcc/diagnostic.c~ 2004-05-14 07:39:39.000000000 +0200 ++++ gcc/diagnostic.c 2004-05-14 07:42:06.000000000 +0200 +@@ -66,7 +66,9 @@ + #define bug_report_request \ + "Please submit a full bug report,\n\ + with preprocessed source if appropriate.\n\ +-See %s for instructions.\n" ++See %s for instructions.\n\ ++For Debian GNU/Linux specific bug reporting instructions,\n\ ++see %s.\n" + + + /* Return a malloc'd string containing MSG formatted a la printf. The +@@ -271,7 +273,7 @@ + if (context->abort_on_error) + real_abort (); + +- fnotice (stderr, bug_report_request, bug_report_url); ++ fnotice (stderr, bug_report_request, bug_report_url, debian_bug_report_url); + exit (FATAL_EXIT_CODE); + + case DK_FATAL: +@@ -570,7 +572,7 @@ + + fnotice (stderr, + "Internal compiler error: Error reporting routines re-entered.\n"); +- fnotice (stderr, bug_report_request, bug_report_url); ++ fnotice (stderr, bug_report_request, bug_report_url, debian_bug_report_url); + exit (FATAL_EXIT_CODE); + } + +--- gcc/gcc.c~ 2004-05-16 08:14:42.000000000 +0200 ++++ gcc/gcc.c 2004-05-16 08:19:13.000000000 +0200 +@@ -2829,9 +2829,11 @@ + fatal ("\ + Internal error: %s (program %s)\n\ + Please submit a full bug report.\n\ +-See %s for instructions.", ++See %s for instructions.\n\ ++For Debian GNU/Linux specific bug reporting instructions, see\n\ ++%s.\n", + strsignal (WTERMSIG (status)), commands[j].prog, +- bug_report_url); ++ bug_report_url, debian_bug_report_url); + signal_count++; + ret_code = -1; + } +@@ -6250,6 +6252,8 @@ + { + printf (_("\nFor bug reporting instructions, please see:\n")); + printf ("%s.\n", bug_report_url); ++ printf ("For Debian GNU/Linux specific bug reporting instructions, please see:\n"); ++ printf ("%s.\n", debian_bug_report_url); + + return (0); + } +@@ -6453,6 +6457,8 @@ + { + printf (("\nFor bug reporting instructions, please see:\n")); + printf ("%s\n", bug_report_url); ++ printf ("For Debian GNU/Linux specific bug reporting instructions, please see:\n"); ++ printf ("%s\n", debian_bug_report_url); + } + + return (signal_count != 0 ? 2 --- gcc-3.4-3.4.3.orig/debian/patches/libffi-soversion.dpatch +++ gcc-3.4-3.4.3/debian/patches/libffi-soversion.dpatch @@ -0,0 +1,61 @@ +#! /bin/sh -e + +# DP: Install libffi with soversion 3. + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +diff -urN libffi.old/Makefile.am libffi/Makefile.am +--- libffi.old/Makefile.am 2003-10-22 01:02:59.000000000 +0200 ++++ libffi/Makefile.am 2004-02-21 10:06:49.000000000 +0100 +@@ -175,7 +175,7 @@ + + AM_CFLAGS = -Wall -g -fexceptions + +-libffi_la_LDFLAGS = -release $(VERSION) ++libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` + + INCLUDES = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src + +diff -urN libffi.old/Makefile.in libffi/Makefile.in +--- libffi.old/Makefile.in 2003-11-24 00:52:28.000000000 +0100 ++++ libffi/Makefile.in 2004-02-21 10:06:49.000000000 +0100 +@@ -226,7 +226,7 @@ + + AM_CFLAGS = -Wall -g -fexceptions + +-libffi_la_LDFLAGS = -release $(VERSION) ++libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` + + INCLUDES = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +diff -urN libffi.old/libtool-version libffi/libtool-version +--- libffi.old/libtool-version 1970-01-01 01:00:00.000000000 +0100 ++++ libffi/libtool-version 2004-02-21 10:06:49.000000000 +0100 +@@ -0,0 +1,6 @@ ++# This file is used to maintain libtool version info for libffi. See ++# the libtool manual to understand the meaning of the fields. This is ++# a separate file so that version updates don't involve re-running ++# automake. ++# CURRENT:REVISION:AGE ++3:0:0 --- gcc-3.4-3.4.3.orig/debian/patches/ignore-comp-fail.dpatch +++ gcc-3.4-3.4.3/debian/patches/ignore-comp-fail.dpatch @@ -0,0 +1,40 @@ +#! /bin/sh -e + +# DP: Ignore the bootstrap comparision failure + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- gcc/Makefile.in~ 2004-02-06 08:03:12.000000000 +0100 ++++ gcc/Makefile.in 2004-02-14 10:27:19.000000000 +0100 +@@ -3567,7 +3567,9 @@ + if [ -f .bad_compare ]; then \ + echo "Bootstrap comparison failure!"; \ + cat .bad_compare; \ +- exit 1; \ ++ echo ""; \ ++ echo "Ignore the comparision failure!"; \ ++ true; \ + else \ + case "$@" in \ + *-lean ) rm -rf stage$$stage ;; \ --- gcc-3.4-3.4.3.orig/debian/patches/ada-no-gnatpsta.dpatch +++ gcc-3.4-3.4.3/debian/patches/ada-no-gnatpsta.dpatch @@ -0,0 +1,57 @@ +#! /bin/sh -e + +# DP: Don't build the gnatpsta tool + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +2003-10-22 Arnaud Charlet + + * Makefile.in: Disable build of gnatpsta. PR ada/10110. + +--- gcc/ada/Makefile.in~ 2003-07-04 21:53:53.000000000 +0200 ++++ gcc/ada/Makefile.in 2003-10-29 11:02:58.000000000 +0100 +@@ -1609,7 +1609,7 @@ + TOOLSCASE=native \ + ../../gnatchop$(exeext) ../../gnat$(exeext) ../../gnatkr$(exeext) \ + ../../gnatls$(exeext) ../../gnatprep$(exeext) \ +- ../../gnatpsta$(exeext) ../../gnatxref$(exeext) \ ++ ../../gnatxref$(exeext) \ + ../../gnatfind$(exeext) ../../gnatname$(exeext) + + # These tools are only built for the native version. +@@ -1653,10 +1653,10 @@ + $(TOOLS_LIBS) + + ../../gnatpsta$(exeext): deftarg.o +- $(GNATMAKE) -c $(ADA_INCLUDES) gnatpsta --GCC="$(CC) $(ALL_ADAFLAGS)" +- $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatpsta +- $(GNATLINK) -v gnatpsta -o $@ --GCC="$(CC) $(ADA_INCLUDES)"\ +- ../targtyps.o deftarg.o $(TOOLS_LIBS) ++# $(GNATMAKE) -c $(ADA_INCLUDES) gnatpsta --GCC="$(CC) $(ALL_ADAFLAGS)" ++# $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatpsta ++# $(GNATLINK) -v gnatpsta -o $@ --GCC="$(CC) $(ADA_INCLUDES)"\ ++# ../targtyps.o deftarg.o $(TOOLS_LIBS) + + ../../gnatxref$(exeext): + $(GNATMAKE) -c $(ADA_INCLUDES) gnatxref --GCC="$(CC) $(ALL_ADAFLAGS)" --- gcc-3.4-3.4.3.orig/debian/patches/gpc-3.x.dpatch +++ gcc-3.4-3.4.3/debian/patches/gpc-3.x.dpatch @@ -0,0 +1,42 @@ +#! /bin/sh -e + +# DP: The gpc patch from the gpc tarball. + +if [ "x$gpc_gcc_patch" = "x" ] +then + gpc_gcc_patch=gcc-3.2.1.diff +fi + +pdir=gcc +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="$3/gcc" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi + +gpc_gcc_patch=$pdir/p/diffs/gcc-3.3.diff +gpc_gcc_patch=debian/patches/gcc-3.4.diff8 + +case "$1" in + -patch) + # keep the backup files ... to regenerate p/diffs/${gpc_gcc_patch} + # dan@debian.org: no, don't. Apply it by hand if you need to regen. + # get the patch from the gpc source + echo Using patch file ${gpc_gcc_patch} + patch -d $pdir -f -p2 < ${gpc_gcc_patch} + #pf=`echo $0 | sed 's/\.dpatch/.diff/'` + #patch -d $pdir -f -p1 < $pf + ;; + -unpatch) + # get the patch from the gpc source + echo Using patch file ${gpc_gcc_patch} + patch -d $pdir -f -R -p2 < ${gpc_gcc_patch} + #pf=`echo $0 | sed 's/\.dpatch/.diff/'` + #patch -d $pdir -f -R -p1 < $pf + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 --- gcc-3.4-3.4.3.orig/debian/patches/s390-biarch.dpatch +++ gcc-3.4-3.4.3/debian/patches/s390-biarch.dpatch @@ -0,0 +1,38 @@ +#! /bin/sh -e + +# DP: enable biarch for 31 bit compiler + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p1 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p1 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- src/gcc/config.gcc.bak 2003-02-25 09:24:14.000000000 +0000 ++++ src/gcc/config.gcc 2003-02-25 09:23:42.000000000 +0000 +@@ -2199,7 +2199,7 @@ + ;; + s390-*-linux*) + tm_file="s390/s390.h dbxelf.h elfos.h svr4.h linux.h s390/linux.h" +- tmake_file="t-slibgcc-elf-ver t-linux s390/t-crtstuff" ++ tmake_file="t-slibgcc-elf-ver t-linux s390/t-crtstuff s390/t-linux64" + ;; + s390x-*-linux*) + tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h svr4.h linux.h s390/linux.h" --- gcc-3.4-3.4.3.orig/debian/patches/libstdc++-baseline.dpatch +++ gcc-3.4-3.4.3/debian/patches/libstdc++-baseline.dpatch @@ -0,0 +1,44 @@ +#! /bin/sh -e + +# DP: overwrite baseline detection for i386: use the i486 headers + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- libstdc++-v3/configure.target~ 2003-06-19 19:55:35.000000000 +0200 ++++ libstdc++-v3/configure.target 2003-06-20 09:15:08.000000000 +0200 +@@ -91,6 +91,14 @@ + ;; + esac + ++# Debian adjustments ++echo "LIBSTDCXX TARGET CPU: $target_cpu" ++case "${target_cpu}" in ++ i386) ++ # we use the i486 ABI ... ++ try_cpu=i486 ++ ;; ++esac + + # Now look for the file(s) usually tied to a CPU model, and make + # default choices for those if they haven't been explicitly set --- gcc-3.4-3.4.3.orig/debian/patches/s390-config-ml.dpatch +++ gcc-3.4-3.4.3/debian/patches/s390-config-ml.dpatch @@ -0,0 +1,101 @@ +#! /bin/sh -e + +# DP: disable all libraries except libstdc++ for biarch + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p1 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p1 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- src/config-ml.in.bak 2002-11-12 15:32:40.000000000 +0100 ++++ src/config-ml.in 2002-11-12 15:38:55.000000000 +0100 +@@ -516,6 +516,48 @@ + ;; + esac + ;; ++s390-*-*) ++ ac_configure_args="${ac_configure_args} --host=s390x-linux" ++ ++ case " $multidirs " in ++ *" 64 "*) ++ # We will not be able to create libraries with -m64 if ++ # we cannot even link a trivial program. It usually ++ # indicates the 64bit libraries are missing. ++ if echo 'main() {}' > conftest.c && ++ ${CC-gcc} -m64 conftest.c -o conftest; then ++ echo Enable only libstdc++. ++ old_multidirs="${multidirs}" ++ multidirs="" ++ for x in ${old_multidirs}; do ++ case "$x" in ++ *64* ) case ${ml_realsrcdir} in ++ *"libstdc++-v3" ) multidirs="${multidirs} ${x}" ;; ++ *"libf2c" ) multidirs="${multidirs} ${x}" ;; ++ *"libobjc" ) multidirs="${multidirs} ${x}" ;; ++ *"libiberty" ) multidirs="${multidirs} ${x}" ;; ++ *"zlib" ) multidirs="${multidirs} ${x}" ;; ++ *) : ;; ++ esac ++ ;; ++ *) multidirs="${multidirs} ${x}" ;; ++ esac ++ done ++ else ++ echo Could not link program with -m64, disabling it. ++ old_multidirs="${multidirs}" ++ multidirs="" ++ for x in ${old_multidirs}; do ++ case "$x" in ++ *64* ) : ;; ++ *) multidirs="${multidirs} ${x}" ;; ++ esac ++ done ++ fi ++ rm -f conftest.c conftest ++ ;; ++ esac ++ ;; + esac + + # Remove extraneous blanks from multidirs. +@@ -898,9 +900,20 @@ + fi + fi + ++ ml_configure_args= ++ for arg in ${ac_configure_args} ++ do ++ case $arg in ++ *CC=*) ml_configure_args=${ml_config_env} ;; ++ *CXX=*) ml_configure_args=${ml_config_env} ;; ++ *GCJ=*) ml_configure_args=${ml_config_env} ;; ++ *) ;; ++ esac ++ done ++ + if eval ${ml_config_env} ${ml_config_shell} ${ml_recprog} \ + --with-multisubdir=${ml_dir} --with-multisrctop=${multisrctop} \ +- ${ac_configure_args} ${ml_srcdiroption} ; then ++ ${ac_configure_args} ${ml_configure_args} ${ml_srcdiroption} ; then + true + else + exit 1 + --- gcc-3.4-3.4.3.orig/debian/patches/template.dpatch +++ gcc-3.4-3.4.3/debian/patches/template.dpatch @@ -0,0 +1,33 @@ +#! /bin/sh -e + +# All lines beginning with `# DPATCH:' are a description of the patch. +# DP: + +# remove the next line +exit 0 + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# append the patch here and adjust the -p? flag in the patch calls. + --- gcc-3.4-3.4.3.orig/debian/patches/netbsd-all-gcc.dpatch +++ gcc-3.4-3.4.3/debian/patches/netbsd-all-gcc.dpatch @@ -0,0 +1,397 @@ +#! /bin/sh -e + +# DP: General NetBSD support patches + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +diff -urN gcc/config/netbsd-elf-gnu.h src/gcc/config/netbsd-elf-gnu.h +--- gcc/config/netbsd-elf-gnu.h 1970-01-01 00:00:00.000000000 +0000 ++++ gcc/config/netbsd-elf-gnu.h 2003-04-24 05:42:44.000000000 +0000 +@@ -0,0 +1,98 @@ ++/* Common configuration file for NetBSD ELF w/ GNU userland targets. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ Contributed by Wasabi Systems, Inc. ++ ++This file is part of GNU CC. ++ ++GNU CC 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 CC 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 CC; see the file COPYING. If not, write to ++the Free Software Foundation, 59 Temple Place - Suite 330, ++Boston, MA 02111-1307, USA. */ ++ ++/* TARGET_OS_CPP_BUILTINS() common to all NetBSD ELF targets. */ ++#define NETBSD_OS_CPP_BUILTINS_ELF() \ ++ do \ ++ { \ ++ NETBSD_OS_CPP_BUILTINS_COMMON(); \ ++ builtin_define ("__ELF__"); \ ++ } \ ++ while (0) ++ ++/* This defines which switch letters take arguments. On NetBSD, most ++ of the normal cases (defined by gcc.c) apply, and we also have -h* ++ and -z* options (for the linker) (coming from SVR4). */ ++ ++#undef SWITCH_TAKES_ARG ++#define SWITCH_TAKES_ARG(CHAR) \ ++ (DEFAULT_SWITCH_TAKES_ARG (CHAR) \ ++ || (CHAR) == 'h' \ ++ || (CHAR) == 'z' \ ++ || (CHAR) == 'R') ++ ++ ++/* Provide a STARTFILE_SPEC appropriate for NetBSD ELF. Here we ++ provide support for the special GCC option -static. On ELF ++ targets, we also add the crtbegin.o file, which provides part ++ of the support for getting C++ file-scope static objects ++ constructed before entering "main". */ ++ ++#define NETBSD_STARTFILE_SPEC \ ++ "%{!shared: \ ++ %{pg:gcrt0%O%s} \ ++ %{!pg: \ ++ %{p:gcrt0%O%s} \ ++ %{!p:crt0%O%s}}} \ ++ %:if-exists(crti%O%s) \ ++ %{static:%:if-exists-else(crtbeginT%O%s crtbegin%O%s)} \ ++ %{!static: \ ++ %{!shared:crtbegin%O%s} %{shared:crtbeginS%O%s}}" ++ ++#undef STARTFILE_SPEC ++#define STARTFILE_SPEC NETBSD_STARTFILE_SPEC ++ ++ ++/* Provide an ENDFILE_SPEC appropriate for NetBSD ELF. Here we ++ add crtend.o, which provides part of the support for getting ++ C++ file-scope static objects deconstructed after exiting "main". */ ++ ++#define NETBSD_ENDFILE_SPEC \ ++ "%{!shared:crtend%O%s} %{shared:crtendS%O%s} \ ++ %:if-exists(crtn%O%s)" ++ ++#undef ENDFILE_SPEC ++#define ENDFILE_SPEC NETBSD_ENDFILE_SPEC ++ ++/* Provide a LINK_SPEC appropriate for NetBSD ELF. Here we provide ++ support for the special GCC options -assert, -R, -rpath, -shared, ++ -nostdlib, -static, -rdynamic, and -dynamic-linker. ++ ++ Target-specific code can use this in conjunction with any other ++ target-specific LINK_SPEC options. ++ ++ Target-specific code must provide the %(netbsd_entry_point) spec. */ ++ ++/* This differs from native NetBSD only in that the linker is expected to ++ live in /lib, rather than /usr/libexec (or /libexec). */ ++ ++#define NETBSD_LINK_SPEC_ELF \ ++ "%{assert*} %{R*} %{rpath*} \ ++ %{shared:-shared} \ ++ %{!shared: \ ++ -dc -dp \ ++ %{!nostdlib: \ ++ %{!r*: \ ++ %{!e*:-e %(netbsd_entry_point)}}} \ ++ %{!static: \ ++ %{rdynamic:-export-dynamic} \ ++ %{!dynamic-linker:-dynamic-linker /lib/ld.elf_so}} \ ++ %{static:-static}}" +diff -urN gcc/config/netbsd-gnu.h src/gcc/config/netbsd-gnu.h +--- gcc/config/netbsd-gnu.h 1970-01-01 00:00:00.000000000 +0000 ++++ gcc/config/netbsd-gnu.h 2003-04-24 05:41:04.000000000 +0000 +@@ -0,0 +1,206 @@ ++/* Base configuration file for all NetBSD w/ GNU userland targets. ++ Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 ++ Free Software Foundation, Inc. ++ ++This file is part of GNU CC. ++ ++GNU CC 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 CC 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 CC; see the file COPYING. If not, write to ++the Free Software Foundation, 59 Temple Place - Suite 330, ++Boston, MA 02111-1307, USA. */ ++ ++/* TARGET_OS_CPP_BUILTINS() common to all NetBSD targets. */ ++#define NETBSD_OS_CPP_BUILTINS_COMMON() \ ++ do \ ++ { \ ++ builtin_define ("__NetBSD__"); \ ++ builtin_assert ("system=unix"); \ ++ builtin_assert ("system=NetBSD"); \ ++ } \ ++ while (0) ++ ++/* TARGET_OS_CPP_BUILTINS() common to all LP64 NetBSD targets. */ ++#define NETBSD_OS_CPP_BUILTINS_LP64() \ ++ do \ ++ { \ ++ builtin_define ("_LP64"); \ ++ } \ ++ while (0) ++ ++/* CPP_SPEC parts common to all NetBSD targets. */ ++#define NETBSD_CPP_SPEC \ ++ "%{posix:-D_POSIX_SOURCE} \ ++ %{pthread:-D_REENTRANT -D_PTHREADS}" ++ ++/* NETBSD_NATIVE is defined only when gcc is integrated into a NetBSD ++ system with a NetBSD userland - NetBSD with a GNU userland never defines ++ it, and all references to it have been removed for this system type. */ ++ ++/* FIXME: This should link to libc, but there are problems with that under ++ 3.2 - find out of they still apply under 3.3! */ ++ ++/* Provide a LIB_SPEC appropriate for NetBSD. Here we: ++ ++ 1. Select the appropriate set of libs, depending on whether we're ++ profiling. ++ ++ 2. Include the pthread library if -pthread is specified (only ++ if threads are enabled). ++ ++ 3. Include the posix library if -posix is specified. ++ ++ FIXME: Could eliminate the duplication here if we were allowed to ++ use string concatenation. */ ++ ++#ifdef NETBSD_ENABLE_PTHREADS ++#define NETBSD_LIB_SPEC \ ++ "%{pthread: \ ++ %{!p: \ ++ %{!pg:-lpthread}} \ ++ %{p:-lpthread_p} \ ++ %{pg:-lpthread_p}} \ ++ %{posix: \ ++ %{!p: \ ++ %{!pg:-lposix}} \ ++ %{p:-lposix_p} \ ++ %{pg:-lposix_p}} \ ++ %{!shared: \ ++ %{!symbolic: \ ++ %{!p: \ ++ %{!pg:-lc}} \ ++ %{p:-lc_p} \ ++ %{pg:-lc_p}}}" ++#else ++#define NETBSD_LIB_SPEC \ ++ "%{posix: \ ++ %{!p: \ ++ %{!pg:-lposix}} \ ++ %{p:-lposix_p} \ ++ %{pg:-lposix_p}} \ ++ %{!shared: \ ++ %{!symbolic: \ ++ %{!p: \ ++ %{!pg:-lc}} \ ++ %{p:-lc_p} \ ++ %{pg:-lc_p}}}" ++#endif ++ ++#undef LIB_SPEC ++#define LIB_SPEC NETBSD_LIB_SPEC ++ ++/* Provide a LIBGCC_SPEC appropriate for NetBSD. We also want to exclude ++ libgcc with -symbolic. */ ++ ++#ifdef NETBSD_NATIVE ++#define NETBSD_LIBGCC_SPEC \ ++ "%{!symbolic: \ ++ %{!shared: \ ++ %{!p: \ ++ %{!pg: -lgcc}}} \ ++ %{shared: -lgcc_pic} \ ++ %{p: -lgcc_p} \ ++ %{pg: -lgcc_p}}" ++#else ++#define NETBSD_LIBGCC_SPEC "%{!shared:%{!symbolic: -lgcc}}" ++#endif ++ ++#undef LIBGCC_SPEC ++#define LIBGCC_SPEC NETBSD_LIBGCC_SPEC ++ ++/* When building shared libraries, the initialization and finalization ++ functions for the library are .init and .fini respectively. */ ++ ++#define COLLECT_SHARED_INIT_FUNC(STREAM,FUNC) \ ++ do { \ ++ fprintf ((STREAM), "void __init() __asm__ (\".init\");"); \ ++ fprintf ((STREAM), "void __init() {\n\t%s();\n}\n", (FUNC)); \ ++ } while (0) ++ ++#define COLLECT_SHARED_FINI_FUNC(STREAM,FUNC) \ ++ do { \ ++ fprintf ((STREAM), "void __fini() __asm__ (\".fini\");"); \ ++ fprintf ((STREAM), "void __fini() {\n\t%s();\n}\n", (FUNC)); \ ++ } while (0) ++ ++#undef TARGET_HAS_F_SETLKW ++#define TARGET_HAS_F_SETLKW ++ ++/* Implicit library calls should use memcpy, not bcopy, etc. */ ++ ++#undef TARGET_MEM_FUNCTIONS ++#define TARGET_MEM_FUNCTIONS 1 ++ ++/* Handle #pragma weak and #pragma pack. */ ++ ++#define HANDLE_SYSV_PRAGMA 1 ++ ++ ++/* Define some types that are the same on all NetBSD platforms, ++ making them agree with . */ ++ ++#undef WCHAR_TYPE ++#define WCHAR_TYPE "int" ++ ++#undef WCHAR_TYPE_SIZE ++#define WCHAR_TYPE_SIZE 32 ++ ++#undef WINT_TYPE ++#define WINT_TYPE "int" ++ ++ ++/* Attempt to turn on execute permission for the stack. This may be ++ used by TRANSFER_FROM_TRAMPOLINE of the target needs it (that is, ++ if the target machine can change execute permissions on a page). ++ ++ There is no way to query the execute permission of the stack, so ++ we always issue the mprotect() call. ++ ++ Note that we go out of our way to use namespace-non-invasive calls ++ here. Unfortunately, there is no libc-internal name for mprotect(). ++ ++ Also note that no errors should be emitted by this code; it is considered ++ dangerous for library calls to send messages to stdout/stderr. */ ++ ++#define NETBSD_ENABLE_EXECUTE_STACK \ ++extern void __enable_execute_stack (void *); \ ++void \ ++__enable_execute_stack (addr) \ ++ void *addr; \ ++{ \ ++ extern int mprotect (void *, size_t, int); \ ++ extern int __sysctl (int *, unsigned int, void *, size_t *, \ ++ void *, size_t); \ ++ \ ++ static int size; \ ++ static long mask; \ ++ \ ++ char *page, *end; \ ++ \ ++ if (size == 0) \ ++ { \ ++ int mib[2]; \ ++ size_t len; \ ++ \ ++ mib[0] = 6; /* CTL_HW */ \ ++ mib[1] = 7; /* HW_PAGESIZE */ \ ++ len = sizeof (size); \ ++ (void) __sysctl (mib, 2, &size, &len, NULL, 0); \ ++ mask = ~((long) size - 1); \ ++ } \ ++ \ ++ page = (char *) (((long) addr) & mask); \ ++ end = (char *) ((((long) (addr + TRAMPOLINE_SIZE)) & mask) + size); \ ++ \ ++ /* 7 == PROT_READ | PROT_WRITE | PROT_EXEC */ \ ++ (void) mprotect (page, end - page, 7); \ ++} +diff -urN gcc/config/t-netbsd-gnu src/gcc/config/t-netbsd-gnu +--- gcc/config/t-netbsd-gnu 1970-01-01 00:00:00.000000000 +0000 ++++ gcc/config/t-netbsd-gnu 2003-02-21 10:31:17.000000000 +0000 +@@ -0,0 +1,5 @@ ++# Don't run fixproto ++STMP_FIXPROTO = ++ ++# Always build crtstuff with PIC. ++CRTSTUFF_T_CFLAGS = -fPIC +diff -urN gcc/config.gcc src/gcc/config.gcc +--- gcc/config.gcc 2003-03-02 07:39:03.000000000 +0000 ++++ gcc/config.gcc 2003-04-24 06:02:55.000000000 +0000 +@@ -329,6 +329,45 @@ + ;; + esac + ;; ++*-*-netbsd*-gnu*) ++ tmake_file="t-slibgcc-elf-ver t-libc-ok t-netbsd" ++ xm_defines=POSIX ++ gas=yes ++ gnu_ld=yes ++ ++ # This section MUST go above the matches for Hurd and native NetBSD, ++ # or they will catch the value, due to using excessively permissive ++ # match values. Also, $machine doesn't contain any version data, on ++ # a NetBSD w/ GNU userland machine, so we use uname -r instead. ++ ++ osr=`uname -r` ++ ++ # NetBSD 2.0 and later get POSIX threads enabled by default. ++ # Allow them to be explicitly enabled on any other version. ++ case x${enable_threads} in ++ x) ++ case $osr in ++ [2-9]*) ++ thread_file='posix' ++ tm_defines="${tm_defines} NETBSD_ENABLE_PTHREADS" ++ ;; ++ esac ++ ;; ++ xyes | xposix) ++ thread_file='posix' ++ tm_defines="${tm_defines} NETBSD_ENABLE_PTHREADS" ++ ;; ++ esac ++ ++ # NetBSD 1.7 and later are set up to use GCC's crtstuff for ++ # ELF configurations. We will clear extra_parts in the ++ # a.out configurations. ++ case $osr in ++ 1.[7-9]* | [2-9]*) ++ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o" ++ ;; ++ esac ++ ;; + *-*-gnu*) + # On the Hurd, the setup is just about the same on + # each different CPU. The specific machines that we --- gcc-3.4-3.4.3.orig/debian/patches/netbsd-dynlinker.dpatch +++ gcc-3.4-3.4.3/debian/patches/netbsd-dynlinker.dpatch @@ -0,0 +1,47 @@ +#! /bin/sh -e + +# JB: Dynamic linker patches for netbsd. + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p1 < $0 + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p1 < $0 + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +diff -ur src.orig/gcc/config/i386/netbsd-elf.h src/gcc/config/i386/netbsd-elf.h +--- src.orig/gcc/config/i386/netbsd-elf.h 2002-03-01 23:38:15.000000000 +0000 ++++ src/gcc/config/i386/netbsd-elf.h 2003-01-21 19:44:46.000000000 +0000 +@@ -35,7 +35,7 @@ + %{!e*:-e __start}}} \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.elf_so}} \ ++ %{!dynamic-linker:-dynamic-linker /lib/ld.elf_so}} \ + %{static:-static}}" + + /* Names to predefine in the preprocessor for this target machine. */ +diff -ur src.orig/gcc/config/netbsd-elf.h src/gcc/config/netbsd-elf.h +--- src.orig/gcc/config/netbsd-elf.h 2002-01-22 04:23:02.000000000 +0000 ++++ src/gcc/config/netbsd-elf.h 2003-01-21 19:44:27.000000000 +0000 +@@ -72,5 +72,5 @@ + %{!e*:-e __start}}} \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.elf_so}} \ ++ %{!dynamic-linker:-dynamic-linker /lib/ld.elf_so}} \ + %{static:-static}}" --- gcc-3.4-3.4.3.orig/debian/patches/libjava-no-rpath.dpatch +++ gcc-3.4-3.4.3/debian/patches/libjava-no-rpath.dpatch @@ -0,0 +1,104 @@ +#! /bin/sh -e + +# DP: work around libtool adding ld run path to gcj tools + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- libjava/Makefile.am~ 2004-01-26 07:36:06.000000000 +0100 ++++ libjava/Makefile.am 2004-02-21 22:39:34.000000000 +0100 +@@ -719,7 +719,7 @@ + ## need this because we are explicitly using libtool to link using the + ## `.la' file. + jv_convert_LDFLAGS = --main=gnu.gcj.convert.Convert \ +- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) ++ $(shell test $(toolexeclibdir) = /usr/lib || echo -rpath $(toolexeclibdir)) -shared-libgcc $(THREADLDFLAGS) + jv_convert_LINK = $(GCJLINK) + ## We don't explicitly link in the libraries we need; libgcj.la brings + ## in all dependencies. We need the -L so that gcj can find libgcj +@@ -738,7 +738,8 @@ + ## We need -nodefaultlibs because we want to avoid gcj's `-lgcj'. We + ## need this because we are explicitly using libtool to link using the + ## `.la' file. +-gij_LDFLAGS = -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) ++gij_LDFLAGS = $(shell test $(toolexeclibdir) = /usr/lib || echo -rpath $(toolexeclibdir)) -shared-libgcc $(THREADLDFLAGS) ++ + gij_LINK = $(GCJLINK) + ## See jv_convert_LDADD. + gij_LDADD = -L$(here)/.libs libgcj.la +@@ -750,7 +751,7 @@ + ## This is a dummy definition. + EXTRA_rmic_SOURCES = $(rmi_java_source_files) + rmic_LDFLAGS = --main=gnu.java.rmi.rmic.RMIC \ +- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) ++ $(shell test $(toolexeclibdir) = /usr/lib || echo -rpath $(toolexeclibdir)) -shared-libgcc $(THREADLDFLAGS) + rmic_LINK = $(GCJLINK) + ## See jv_convert_LDADD. + rmic_LDADD = -L$(here)/.libs libgcj.la +@@ -762,7 +763,7 @@ + ## This is a dummy definition. + EXTRA_rmiregistry_SOURCES = $(rmi_java_source_files) + rmiregistry_LDFLAGS = --main=gnu.java.rmi.registry.RegistryImpl \ +- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) ++ $(shell test $(toolexeclibdir) = /usr/lib || echo -rpath $(toolexeclibdir)) -shared-libgcc $(THREADLDFLAGS) + rmiregistry_LINK = $(GCJLINK) + ## See jv_convert_LDADD. + rmiregistry_LDADD = -L$(here)/.libs libgcj.la +--- libjava/Makefile.in~ 2004-01-26 07:36:06.000000000 +0100 ++++ libjava/Makefile.in 2004-02-21 22:48:12.000000000 +0100 +@@ -499,7 +499,7 @@ + jv_convert_SOURCES = + EXTRA_jv_convert_SOURCES = $(convert_source_files) + jv_convert_LDFLAGS = --main=gnu.gcj.convert.Convert \ +- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) ++ $(shell test $(toolexeclibdir) = /usr/lib || echo -rpath $(toolexeclibdir)) -shared-libgcc $(THREADLDFLAGS) + + jv_convert_LINK = $(GCJLINK) + jv_convert_LDADD = -L$(here)/.libs libgcj.la +@@ -508,7 +508,7 @@ + + + gij_SOURCES = gij.cc +-gij_LDFLAGS = -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) ++gij_LDFLAGS = $(shell test $(toolexeclibdir) = /usr/lib || echo -rpath $(toolexeclibdir)) -shared-libgcc $(THREADLDFLAGS) + gij_LINK = $(GCJLINK) + gij_LDADD = -L$(here)/.libs libgcj.la + gij_DEPENDENCIES = libgcj.la libgcj.spec +@@ -516,7 +516,7 @@ + rmic_SOURCES = + EXTRA_rmic_SOURCES = $(rmi_java_source_files) + rmic_LDFLAGS = --main=gnu.java.rmi.rmic.RMIC \ +- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) ++ $(shell test $(toolexeclibdir) = /usr/lib || echo -rpath $(toolexeclibdir)) -shared-libgcc $(THREADLDFLAGS) + + rmic_LINK = $(GCJLINK) + rmic_LDADD = -L$(here)/.libs libgcj.la +@@ -525,7 +525,7 @@ + rmiregistry_SOURCES = + EXTRA_rmiregistry_SOURCES = $(rmi_java_source_files) + rmiregistry_LDFLAGS = --main=gnu.java.rmi.registry.RegistryImpl \ +- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) ++ $(shell test $(toolexeclibdir) = /usr/lib || echo -rpath $(toolexeclibdir)) -shared-libgcc $(THREADLDFLAGS) + + rmiregistry_LINK = $(GCJLINK) + rmiregistry_LDADD = -L$(here)/.libs libgcj.la --- gcc-3.4-3.4.3.orig/debian/patches/hppa-toplevel.dpatch +++ gcc-3.4-3.4.3/debian/patches/hppa-toplevel.dpatch @@ -0,0 +1,53 @@ +#! /bin/sh -e + +# DP: For hppa-linux enable libgcj and dependent libs in the toplevel directory + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- configure.in~ 2004-02-22 16:12:01.000000000 +0100 ++++ configure.in 2004-02-22 16:22:19.000000000 +0100 +@@ -482,8 +482,9 @@ + # headers, crt*.o, etc., all of which are needed by these. + noconfigdirs="$noconfigdirs target-zlib" + ;; ++ parisc*-*-linux* | hppa*-*-linux*) ++ ;; + hppa*-*-*elf* | \ +- parisc*-*-linux* | hppa*-*-linux* | \ + hppa*-*-lites* | \ + hppa*-*-openbsd* | \ + hppa*64*-*-*) +--- configure~ 2004-02-21 20:43:26.000000000 +0100 ++++ configure 2004-02-22 16:24:31.000000000 +0100 +@@ -1243,8 +1243,9 @@ + # headers, crt*.o, etc., all of which are needed by these. + noconfigdirs="$noconfigdirs target-zlib" + ;; ++ parisc*-*-linux* | hppa*-*-linux*) ++ ;; + hppa*-*-*elf* | \ +- parisc*-*-linux* | hppa*-*-linux* | \ + hppa*-*-lites* | \ + hppa*-*-openbsd* | \ + hppa*64*-*-*) --- gcc-3.4-3.4.3.orig/debian/patches/gpc-updates.dpatch +++ gcc-3.4-3.4.3/debian/patches/gpc-updates.dpatch @@ -0,0 +1,36 @@ +#! /bin/sh -e + +# DP: Updates from gpc-20030820. + +pdir=gcc +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="$3/gcc" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi + +gpc_gcc_patch=debian/patches/gpc-update27i.diff + +case "$1" in + -patch) + # keep the backup files ... to regenerate p/diffs/${gpc_gcc_patch} + # dan@debian.org: no, don't. Apply it by hand if you need to regen. + # get the patch from the gpc source + echo Using patch file ${gpc_gcc_patch} + patch -d $pdir -f -p1 < ${gpc_gcc_patch} + #pf=`echo $0 | sed 's/\.dpatch/.diff/'` + #patch -d $pdir -f -p1 < $pf + ;; + -unpatch) + # get the patch from the gpc source + echo Using patch file ${gpc_gcc_patch} + patch -d $pdir -f -R -p1 < ${gpc_gcc_patch} + #pf=`echo $0 | sed 's/\.dpatch/.diff/'` + #patch -d $pdir -f -R -p1 < $pf + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 --- gcc-3.4-3.4.3.orig/debian/patches/gpc-parse.dpatch +++ gcc-3.4-3.4.3/debian/patches/gpc-parse.dpatch @@ -0,0 +1,11173 @@ +#! /bin/sh -e + +# DP: generated gcc/p/parse.[ch] files (using bison-1.875c). + +dir=p +pdir="-d gcc" +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3/gcc" + dir="$3/gcc" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p1 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p1 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + + +--- gpc-20040516.orig/p/parse.c Sun May 16 18:03:15 2004 ++++ gpc-20040516/p/parse.c Thu Jul 8 22:04:58 2004 +@@ -46,234 +46,236 @@ + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { +- prec_if = 258, +- prec_lower_than_error = 259, +- prec_import = 260, +- p_operator = 261, +- p_destructor = 262, +- p_constructor = 263, +- p_implementation = 264, +- p_uses = 265, +- p_else = 266, +- p_and = 267, +- p_array = 268, +- p_begin = 269, +- p_case = 270, +- p_div = 271, +- p_do = 272, +- p_downto = 273, +- p_end = 274, +- p_file = 275, +- p_for = 276, +- p_function = 277, +- p_goto = 278, +- p_if = 279, +- p_in = 280, +- p_label = 281, +- p_mod = 282, +- p_nil = 283, +- p_not = 284, +- p_of = 285, +- p_or = 286, +- p_packed = 287, +- p_procedure = 288, +- p_to = 289, +- p_program = 290, +- p_record = 291, +- p_repeat = 292, +- p_set = 293, +- p_then = 294, +- p_type = 295, +- p_until = 296, +- p_var = 297, +- p_while = 298, +- p_with = 299, +- p_absolute = 300, +- p_abstract = 301, +- p_and_then = 302, +- p_as = 303, +- p_asm = 304, +- p_attribute = 305, +- p_bindable = 306, +- p_const = 307, +- p_external = 308, +- p_far = 309, +- p_finalization = 310, +- p_forward = 311, +- p_import = 312, +- p_inherited = 313, +- p_initialization = 314, +- p_is = 315, +- p_near = 316, +- p_object = 317, +- p_only = 318, +- p_otherwise = 319, +- p_or_else = 320, +- p_pow = 321, +- p_restricted = 322, +- p_shl = 323, +- p_shr = 324, +- p_unit = 325, +- p_value = 326, +- p_virtual = 327, +- p_xor = 328, +- p_asmname = 329, +- p_c = 330, +- p_c_language = 331, +- p_Addr = 332, +- p_Assigned = 333, +- p_Dispose = 334, +- p_FormatString = 335, +- p_New = 336, +- p_Return = 337, +- LEX_ID = 338, +- LEX_BUILTIN_PROCEDURE = 339, +- LEX_BUILTIN_PROCEDURE_WRITE = 340, +- LEX_BUILTIN_FUNCTION = 341, +- LEX_BUILTIN_FUNCTION_VT = 342, +- LEX_BUILTIN_VARIABLE = 343, +- LEX_INTCONST = 344, +- LEX_INTCONST_BASE = 345, +- LEX_STRCONST = 346, +- LEX_REALCONST = 347, +- LEX_CARET_WHITE = 348, +- LEX_STRUCTOR = 349, +- LEX_CARET_LETTER = 350, +- LEX_CONST_EQUAL = 351, +- LEX_BPPLUS = 352, +- LEX_BPMINUS = 353, +- LEX_RANGE = 354, +- LEX_ELLIPSIS = 355, +- LEX_RENAME = 356, +- LEX_SYMDIFF = 357, +- LEX_ASSIGN = 358, +- LEX_NE = 359, +- LEX_GE = 360, +- LEX_LE = 361, +- LEX_POWER = 362, +- LEX_CEIL_PLUS = 363, +- LEX_CEIL_MINUS = 364, +- LEX_FLOOR_PLUS = 365, +- LEX_FLOOR_MINUS = 366, +- LEX_CEIL_MULT = 367, +- LEX_CEIL_DIV = 368, +- LEX_FLOOR_MULT = 369, +- LEX_FLOOR_DIV = 370 ++ prec_id = 258, ++ prec_if = 259, ++ prec_lower_than_error = 260, ++ prec_import = 261, ++ p_operator = 262, ++ p_destructor = 263, ++ p_constructor = 264, ++ p_implementation = 265, ++ p_initialization = 266, ++ p_uses = 267, ++ p_else = 268, ++ p_and = 269, ++ p_array = 270, ++ p_begin = 271, ++ p_case = 272, ++ p_div = 273, ++ p_do = 274, ++ p_downto = 275, ++ p_end = 276, ++ p_file = 277, ++ p_for = 278, ++ p_function = 279, ++ p_goto = 280, ++ p_if = 281, ++ p_in = 282, ++ p_label = 283, ++ p_mod = 284, ++ p_nil = 285, ++ p_not = 286, ++ p_of = 287, ++ p_or = 288, ++ p_packed = 289, ++ p_procedure = 290, ++ p_to = 291, ++ p_program = 292, ++ p_record = 293, ++ p_repeat = 294, ++ p_set = 295, ++ p_then = 296, ++ p_type = 297, ++ p_until = 298, ++ p_var = 299, ++ p_while = 300, ++ p_with = 301, ++ p_absolute = 302, ++ p_abstract = 303, ++ p_and_then = 304, ++ p_as = 305, ++ p_asm = 306, ++ p_attribute = 307, ++ p_bindable = 308, ++ p_const = 309, ++ p_external = 310, ++ p_far = 311, ++ p_finalization = 312, ++ p_forward = 313, ++ p_import = 314, ++ p_inherited = 315, ++ p_is = 316, ++ p_near = 317, ++ p_object = 318, ++ p_only = 319, ++ p_otherwise = 320, ++ p_or_else = 321, ++ p_pow = 322, ++ p_restricted = 323, ++ p_shl = 324, ++ p_shr = 325, ++ p_unit = 326, ++ p_value = 327, ++ p_virtual = 328, ++ p_xor = 329, ++ p_asmname = 330, ++ p_c = 331, ++ p_c_language = 332, ++ p_Addr = 333, ++ p_Assigned = 334, ++ p_Dispose = 335, ++ p_FormatString = 336, ++ p_New = 337, ++ p_Return = 338, ++ LEX_ID = 339, ++ LEX_BUILTIN_PROCEDURE = 340, ++ LEX_BUILTIN_PROCEDURE_WRITE = 341, ++ LEX_BUILTIN_FUNCTION = 342, ++ LEX_BUILTIN_FUNCTION_VT = 343, ++ LEX_BUILTIN_VARIABLE = 344, ++ LEX_INTCONST = 345, ++ LEX_INTCONST_BASE = 346, ++ LEX_STRCONST = 347, ++ LEX_REALCONST = 348, ++ LEX_CARET_WHITE = 349, ++ LEX_STRUCTOR = 350, ++ LEX_CARET_LETTER = 351, ++ LEX_CONST_EQUAL = 352, ++ LEX_BPPLUS = 353, ++ LEX_BPMINUS = 354, ++ LEX_RANGE = 355, ++ LEX_ELLIPSIS = 356, ++ LEX_RENAME = 357, ++ LEX_SYMDIFF = 358, ++ LEX_ASSIGN = 359, ++ LEX_NE = 360, ++ LEX_GE = 361, ++ LEX_LE = 362, ++ LEX_POWER = 363, ++ LEX_CEIL_PLUS = 364, ++ LEX_CEIL_MINUS = 365, ++ LEX_FLOOR_PLUS = 366, ++ LEX_FLOOR_MINUS = 367, ++ LEX_CEIL_MULT = 368, ++ LEX_CEIL_DIV = 369, ++ LEX_FLOOR_MULT = 370, ++ LEX_FLOOR_DIV = 371 + }; + #endif +-#define prec_if 258 +-#define prec_lower_than_error 259 +-#define prec_import 260 +-#define p_operator 261 +-#define p_destructor 262 +-#define p_constructor 263 +-#define p_implementation 264 +-#define p_uses 265 +-#define p_else 266 +-#define p_and 267 +-#define p_array 268 +-#define p_begin 269 +-#define p_case 270 +-#define p_div 271 +-#define p_do 272 +-#define p_downto 273 +-#define p_end 274 +-#define p_file 275 +-#define p_for 276 +-#define p_function 277 +-#define p_goto 278 +-#define p_if 279 +-#define p_in 280 +-#define p_label 281 +-#define p_mod 282 +-#define p_nil 283 +-#define p_not 284 +-#define p_of 285 +-#define p_or 286 +-#define p_packed 287 +-#define p_procedure 288 +-#define p_to 289 +-#define p_program 290 +-#define p_record 291 +-#define p_repeat 292 +-#define p_set 293 +-#define p_then 294 +-#define p_type 295 +-#define p_until 296 +-#define p_var 297 +-#define p_while 298 +-#define p_with 299 +-#define p_absolute 300 +-#define p_abstract 301 +-#define p_and_then 302 +-#define p_as 303 +-#define p_asm 304 +-#define p_attribute 305 +-#define p_bindable 306 +-#define p_const 307 +-#define p_external 308 +-#define p_far 309 +-#define p_finalization 310 +-#define p_forward 311 +-#define p_import 312 +-#define p_inherited 313 +-#define p_initialization 314 +-#define p_is 315 +-#define p_near 316 +-#define p_object 317 +-#define p_only 318 +-#define p_otherwise 319 +-#define p_or_else 320 +-#define p_pow 321 +-#define p_restricted 322 +-#define p_shl 323 +-#define p_shr 324 +-#define p_unit 325 +-#define p_value 326 +-#define p_virtual 327 +-#define p_xor 328 +-#define p_asmname 329 +-#define p_c 330 +-#define p_c_language 331 +-#define p_Addr 332 +-#define p_Assigned 333 +-#define p_Dispose 334 +-#define p_FormatString 335 +-#define p_New 336 +-#define p_Return 337 +-#define LEX_ID 338 +-#define LEX_BUILTIN_PROCEDURE 339 +-#define LEX_BUILTIN_PROCEDURE_WRITE 340 +-#define LEX_BUILTIN_FUNCTION 341 +-#define LEX_BUILTIN_FUNCTION_VT 342 +-#define LEX_BUILTIN_VARIABLE 343 +-#define LEX_INTCONST 344 +-#define LEX_INTCONST_BASE 345 +-#define LEX_STRCONST 346 +-#define LEX_REALCONST 347 +-#define LEX_CARET_WHITE 348 +-#define LEX_STRUCTOR 349 +-#define LEX_CARET_LETTER 350 +-#define LEX_CONST_EQUAL 351 +-#define LEX_BPPLUS 352 +-#define LEX_BPMINUS 353 +-#define LEX_RANGE 354 +-#define LEX_ELLIPSIS 355 +-#define LEX_RENAME 356 +-#define LEX_SYMDIFF 357 +-#define LEX_ASSIGN 358 +-#define LEX_NE 359 +-#define LEX_GE 360 +-#define LEX_LE 361 +-#define LEX_POWER 362 +-#define LEX_CEIL_PLUS 363 +-#define LEX_CEIL_MINUS 364 +-#define LEX_FLOOR_PLUS 365 +-#define LEX_FLOOR_MINUS 366 +-#define LEX_CEIL_MULT 367 +-#define LEX_CEIL_DIV 368 +-#define LEX_FLOOR_MULT 369 +-#define LEX_FLOOR_DIV 370 ++#define prec_id 258 ++#define prec_if 259 ++#define prec_lower_than_error 260 ++#define prec_import 261 ++#define p_operator 262 ++#define p_destructor 263 ++#define p_constructor 264 ++#define p_implementation 265 ++#define p_initialization 266 ++#define p_uses 267 ++#define p_else 268 ++#define p_and 269 ++#define p_array 270 ++#define p_begin 271 ++#define p_case 272 ++#define p_div 273 ++#define p_do 274 ++#define p_downto 275 ++#define p_end 276 ++#define p_file 277 ++#define p_for 278 ++#define p_function 279 ++#define p_goto 280 ++#define p_if 281 ++#define p_in 282 ++#define p_label 283 ++#define p_mod 284 ++#define p_nil 285 ++#define p_not 286 ++#define p_of 287 ++#define p_or 288 ++#define p_packed 289 ++#define p_procedure 290 ++#define p_to 291 ++#define p_program 292 ++#define p_record 293 ++#define p_repeat 294 ++#define p_set 295 ++#define p_then 296 ++#define p_type 297 ++#define p_until 298 ++#define p_var 299 ++#define p_while 300 ++#define p_with 301 ++#define p_absolute 302 ++#define p_abstract 303 ++#define p_and_then 304 ++#define p_as 305 ++#define p_asm 306 ++#define p_attribute 307 ++#define p_bindable 308 ++#define p_const 309 ++#define p_external 310 ++#define p_far 311 ++#define p_finalization 312 ++#define p_forward 313 ++#define p_import 314 ++#define p_inherited 315 ++#define p_is 316 ++#define p_near 317 ++#define p_object 318 ++#define p_only 319 ++#define p_otherwise 320 ++#define p_or_else 321 ++#define p_pow 322 ++#define p_restricted 323 ++#define p_shl 324 ++#define p_shr 325 ++#define p_unit 326 ++#define p_value 327 ++#define p_virtual 328 ++#define p_xor 329 ++#define p_asmname 330 ++#define p_c 331 ++#define p_c_language 332 ++#define p_Addr 333 ++#define p_Assigned 334 ++#define p_Dispose 335 ++#define p_FormatString 336 ++#define p_New 337 ++#define p_Return 338 ++#define LEX_ID 339 ++#define LEX_BUILTIN_PROCEDURE 340 ++#define LEX_BUILTIN_PROCEDURE_WRITE 341 ++#define LEX_BUILTIN_FUNCTION 342 ++#define LEX_BUILTIN_FUNCTION_VT 343 ++#define LEX_BUILTIN_VARIABLE 344 ++#define LEX_INTCONST 345 ++#define LEX_INTCONST_BASE 346 ++#define LEX_STRCONST 347 ++#define LEX_REALCONST 348 ++#define LEX_CARET_WHITE 349 ++#define LEX_STRUCTOR 350 ++#define LEX_CARET_LETTER 351 ++#define LEX_CONST_EQUAL 352 ++#define LEX_BPPLUS 353 ++#define LEX_BPMINUS 354 ++#define LEX_RANGE 355 ++#define LEX_ELLIPSIS 356 ++#define LEX_RENAME 357 ++#define LEX_SYMDIFF 358 ++#define LEX_ASSIGN 359 ++#define LEX_NE 360 ++#define LEX_GE 361 ++#define LEX_LE 362 ++#define LEX_POWER 363 ++#define LEX_CEIL_PLUS 364 ++#define LEX_CEIL_MINUS 365 ++#define LEX_FLOOR_PLUS 366 ++#define LEX_FLOOR_MINUS 367 ++#define LEX_CEIL_MULT 368 ++#define LEX_CEIL_DIV 369 ++#define LEX_FLOOR_MULT 370 ++#define LEX_FLOOR_DIV 371 + + + +@@ -294,6 +296,8 @@ + static int parentheses_count = 0; + static tree iso_no_parentheses PARAMS ((tree)); + ++static int in_uses = 0; ++ + enum { od_none, od_uses, od_label, od_const, od_type, od_var, od_routine }; + static int check_decl_order PARAMS ((int, int)); + +@@ -303,7 +307,17 @@ + union yyGLRStackItem; + static void locations PARAMS ((YYLTYPE *, const union yyGLRStackItem*, int)); + #define YYLLOC_DEFAULT(DEST, SRC, N) locations (&DEST, SRC, N) ++#ifndef GCC_3_4 + #define LOCATION_NOTE(LOC) if (current_function_decl) emit_line_note ((LOC).first_file, (LOC).first_line) ++#else ++#define LOCATION_NOTE(LOC) if (current_function_decl) \ ++ { \ ++ location_t loc_aux; \ ++ loc_aux.file = (LOC).first_file; \ ++ loc_aux.line = (LOC).first_line; \ ++ emit_line_note (loc_aux); \ ++ } ++#endif + #define COPYLOC(D, S) (* (YYLTYPE *) memcpy (&(D), &(S), sizeof (YYLTYPE))) + + #define YYASSERT assert +@@ -325,14 +339,14 @@ + #endif + + #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) +-#line 103 "parse.y" ++#line 115 "parse.y" + typedef union YYSTYPE { + enum tree_code code; + long itype; + tree ttype; + } YYSTYPE; + /* Line 187 of glr.c. */ +-#line 336 "parse.c" ++#line 350 "parse.c" + # define YYSTYPE_IS_DECLARED 1 + # define YYSTYPE_IS_TRIVIAL 1 + #endif +@@ -363,7 +377,7 @@ + + + /* Line 219 of glr.c. */ +-#line 367 "parse.c" ++#line 381 "parse.c" + + #ifndef YYFREE + # define YYFREE free +@@ -406,16 +420,16 @@ + /* YYFINAL -- State number of the termination state. */ + #define YYFINAL 68 + /* YYLAST -- Last index in YYTABLE. */ +-#define YYLAST 8214 ++#define YYLAST 8489 + + /* YYNTOKENS -- Number of terminals. */ +-#define YYNTOKENS 133 ++#define YYNTOKENS 134 + /* YYNNTS -- Number of nonterminals. */ +-#define YYNNTS 300 ++#define YYNNTS 306 + /* YYNRULES -- Number of rules. */ +-#define YYNRULES 787 ++#define YYNRULES 796 + /* YYNRULES -- Number of states. */ +-#define YYNSTATES 1289 ++#define YYNSTATES 1304 + /* YYMAXRHS -- Maximum number of symbols on right-hand side of rule. */ + #define YYMAXRHS 12 + /* YYMAXLEFT -- Maximum number of symbols to the left of a handle +@@ -424,7 +438,7 @@ + + /* YYTRANSLATE(X) -- Bison symbol number corresponding to X. */ + #define YYUNDEFTOK 2 +-#define YYMAXUTOK 370 ++#define YYMAXUTOK 371 + + #define YYTRANSLATE(YYX) \ + ((YYX <= 0) ? YYEOF : \ +@@ -437,12 +451,12 @@ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, +- 117, 119, 128, 126, 118, 127, 125, 129, 2, 2, +- 2, 2, 2, 2, 2, 2, 2, 2, 120, 116, +- 130, 131, 132, 2, 123, 2, 2, 2, 2, 2, ++ 119, 121, 129, 127, 120, 128, 4, 130, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 122, 118, ++ 131, 132, 133, 2, 125, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, +- 2, 121, 2, 122, 124, 2, 2, 2, 2, 2, ++ 2, 123, 2, 124, 126, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, +@@ -458,19 +472,19 @@ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, +- 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, +- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, +- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, +- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, +- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, +- 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, +- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, +- 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, +- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, +- 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, +- 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, +- 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, +- 115 ++ 2, 2, 2, 2, 2, 2, 1, 2, 3, 5, ++ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, ++ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, ++ 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, ++ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, ++ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, ++ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, ++ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ++ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, ++ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, ++ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, ++ 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, ++ 116, 117 + }; + + #if YYDEBUG +@@ -482,400 +496,405 @@ + 25, 30, 31, 34, 36, 38, 39, 42, 43, 46, + 50, 52, 55, 58, 59, 64, 67, 68, 69, 82, + 84, 86, 87, 91, 92, 93, 103, 104, 111, 112, +- 113, 122, 123, 131, 132, 140, 141, 145, 147, 151, +- 153, 156, 157, 160, 162, 164, 166, 167, 170, 172, +- 173, 176, 178, 179, 180, 187, 188, 191, 193, 195, +- 196, 203, 204, 211, 212, 215, 218, 221, 222, 228, +- 230, 232, 236, 238, 240, 244, 248, 252, 255, 257, +- 261, 263, 267, 269, 273, 277, 281, 282, 284, 288, +- 290, 295, 297, 299, 303, 305, 309, 313, 316, 320, +- 324, 326, 329, 330, 331, 336, 338, 342, 346, 350, +- 352, 356, 360, 365, 366, 368, 370, 374, 379, 381, +- 384, 386, 390, 392, 396, 400, 403, 405, 409, 411, +- 415, 419, 422, 424, 426, 428, 430, 432, 434, 437, +- 439, 444, 453, 455, 459, 461, 465, 469, 472, 478, +- 479, 486, 490, 491, 501, 505, 509, 511, 515, 519, +- 523, 526, 530, 532, 535, 537, 540, 542, 545, 547, +- 550, 553, 555, 557, 559, 561, 563, 566, 568, 570, +- 572, 576, 580, 582, 586, 588, 592, 596, 598, 600, +- 604, 608, 610, 614, 618, 622, 625, 629, 634, 637, +- 640, 643, 647, 649, 651, 653, 656, 660, 662, 664, +- 666, 668, 670, 677, 679, 683, 687, 690, 692, 694, +- 696, 698, 703, 705, 707, 711, 715, 719, 723, 724, +- 727, 731, 733, 735, 739, 743, 747, 750, 754, 761, +- 765, 769, 771, 773, 775, 776, 782, 784, 788, 792, +- 794, 797, 803, 805, 809, 813, 817, 820, 822, 826, +- 830, 834, 838, 840, 842, 844, 848, 852, 854, 857, +- 859, 861, 864, 868, 872, 876, 882, 886, 890, 892, +- 895, 897, 899, 901, 904, 905, 914, 916, 918, 922, +- 924, 927, 928, 934, 936, 940, 943, 945, 950, 952, +- 956, 958, 960, 962, 966, 971, 978, 980, 982, 984, +- 986, 989, 992, 994, 995, 999, 1002, 1003, 1006, 1008, +- 1010, 1014, 1016, 1018, 1022, 1024, 1026, 1028, 1030, 1034, +- 1038, 1042, 1044, 1046, 1048, 1050, 1054, 1058, 1060, 1064, +- 1068, 1072, 1074, 1076, 1079, 1082, 1086, 1090, 1091, 1092, +- 1101, 1103, 1105, 1109, 1115, 1121, 1127, 1135, 1141, 1147, +- 1149, 1151, 1155, 1158, 1162, 1163, 1170, 1177, 1184, 1188, +- 1191, 1194, 1196, 1200, 1204, 1206, 1208, 1210, 1212, 1214, +- 1217, 1219, 1220, 1222, 1225, 1227, 1229, 1232, 1234, 1236, +- 1239, 1243, 1247, 1253, 1257, 1259, 1263, 1267, 1271, 1275, +- 1280, 1285, 1289, 1291, 1295, 1301, 1303, 1305, 1306, 1309, +- 1311, 1313, 1315, 1317, 1324, 1332, 1334, 1336, 1338, 1342, +- 1346, 1350, 1356, 1360, 1362, 1364, 1370, 1372, 1376, 1377, +- 1379, 1381, 1383, 1386, 1389, 1391, 1393, 1395, 1397, 1399, +- 1401, 1403, 1405, 1407, 1409, 1411, 1414, 1417, 1420, 1425, +- 1427, 1431, 1433, 1437, 1441, 1443, 1447, 1448, 1454, 1456, +- 1457, 1462, 1463, 1464, 1474, 1475, 1480, 1482, 1484, 1486, +- 1490, 1492, 1496, 1500, 1501, 1508, 1509, 1510, 1519, 1520, +- 1521, 1530, 1531, 1543, 1544, 1554, 1556, 1558, 1560, 1561, +- 1565, 1567, 1570, 1572, 1575, 1577, 1579, 1582, 1584, 1589, +- 1592, 1597, 1603, 1605, 1608, 1612, 1614, 1615, 1620, 1622, +- 1626, 1628, 1632, 1634, 1638, 1642, 1646, 1648, 1652, 1658, +- 1664, 1672, 1682, 1694, 1695, 1697, 1699, 1701, 1703, 1707, +- 1712, 1714, 1718, 1720, 1722, 1724, 1728, 1730, 1732, 1735, +- 1739, 1743, 1744, 1749, 1750, 1755, 1757, 1761, 1765, 1766, +- 1771, 1772, 1777, 1779, 1783, 1787, 1791, 1795, 1799, 1802, +- 1805, 1807, 1809, 1811, 1813, 1815, 1817, 1819, 1821, 1823, +- 1825, 1827, 1829, 1831, 1833, 1836, 1838, 1840, 1842, 1844, +- 1846, 1848, 1850, 1852, 1854, 1856, 1858, 1860, 1862, 1864, +- 1866, 1868, 1870, 1872, 1874, 1877, 1879, 1882, 1884, 1886, +- 1888, 1891, 1895, 1899, 1902, 1907, 1911, 1912, 1918, 1923, +- 1928, 1929, 1935, 1940, 1945, 1948, 1953, 1959, 1963, 1965, +- 1967, 1969, 1973, 1975, 1979, 1983, 1985, 1989, 1992, 1996, +- 1998, 2002, 2006, 2010, 2012, 2016, 2018, 2020, 2022, 2024, +- 2026, 2028, 2030, 2032, 2034, 2036, 2038, 2040, 2042, 2044, +- 2046, 2048, 2050, 2052, 2054, 2056, 2058, 2060, 2063, 2065, +- 2067, 2069, 2071, 2073, 2075, 2077, 2079, 2081, 2083, 2085, +- 2088, 2090, 2092, 2094, 2096, 2098, 2100, 2102, 2104, 2106, +- 2108, 2110, 2112, 2114, 2116, 2118, 2120, 2122, 2124, 2126, +- 2128, 2130, 2132, 2134, 2136, 2138, 2140, 2142, 2144, 2146, +- 2148, 2150, 2152, 2154, 2156, 2158, 2160, 2162, 2164, 2166, +- 2168, 2170, 2172, 2174, 2176, 2178, 2180, 2182, 2184, 2186, +- 2188, 2190, 2192, 2194, 2196, 2198, 2200, 2202, 2204, 2206, +- 2208, 2210, 2212, 2214, 2216, 2218, 2220, 2222, 2224, 2226, +- 2228, 2230, 2232, 2234, 2236, 2238, 2240, 2242, 2244, 2246, +- 2248, 2250, 2252, 2254, 2256, 2258, 2260, 2262, 2264, 2266, +- 2268, 2269, 2270, 2271, 2272, 2274, 2275, 2277, 2279, 2281, +- 2283, 2285, 2287, 2289, 2291, 2293, 2295, 2296 ++ 113, 122, 123, 131, 132, 140, 141, 146, 148, 152, ++ 154, 157, 158, 161, 163, 165, 167, 168, 171, 173, ++ 174, 177, 179, 180, 181, 188, 189, 192, 194, 196, ++ 197, 204, 205, 212, 213, 216, 219, 222, 223, 229, ++ 231, 233, 237, 239, 241, 245, 249, 253, 256, 258, ++ 262, 264, 268, 270, 274, 278, 282, 283, 285, 289, ++ 291, 296, 298, 300, 304, 306, 310, 314, 317, 321, ++ 325, 327, 331, 333, 336, 337, 338, 339, 344, 347, ++ 349, 353, 357, 358, 363, 365, 369, 373, 378, 379, ++ 381, 383, 387, 392, 394, 397, 399, 403, 405, 409, ++ 413, 416, 418, 422, 424, 428, 432, 435, 437, 439, ++ 441, 443, 445, 447, 450, 452, 457, 466, 468, 472, ++ 474, 478, 482, 485, 491, 492, 499, 503, 504, 514, ++ 518, 522, 524, 528, 532, 536, 539, 543, 545, 548, ++ 550, 553, 555, 558, 560, 563, 566, 568, 570, 572, ++ 574, 576, 579, 581, 583, 585, 587, 591, 595, 599, ++ 601, 605, 607, 611, 615, 617, 619, 623, 627, 629, ++ 633, 637, 641, 644, 648, 653, 656, 659, 662, 666, ++ 668, 670, 672, 675, 679, 681, 683, 685, 687, 689, ++ 696, 698, 702, 706, 709, 711, 713, 715, 717, 722, ++ 724, 726, 730, 734, 738, 742, 743, 746, 750, 752, ++ 754, 758, 762, 766, 769, 773, 780, 784, 788, 790, ++ 792, 794, 795, 801, 803, 807, 811, 813, 816, 822, ++ 824, 828, 832, 836, 839, 841, 845, 849, 853, 857, ++ 859, 861, 863, 867, 871, 873, 876, 878, 880, 883, ++ 887, 891, 895, 901, 905, 909, 911, 914, 916, 918, ++ 920, 923, 924, 933, 935, 937, 941, 943, 946, 947, ++ 953, 955, 959, 962, 964, 969, 971, 975, 977, 979, ++ 981, 985, 990, 997, 999, 1001, 1003, 1005, 1008, 1011, ++ 1013, 1014, 1018, 1021, 1022, 1025, 1027, 1029, 1033, 1035, ++ 1037, 1041, 1043, 1045, 1047, 1049, 1053, 1057, 1061, 1063, ++ 1065, 1067, 1069, 1073, 1077, 1079, 1083, 1087, 1091, 1093, ++ 1095, 1098, 1101, 1105, 1109, 1110, 1111, 1121, 1123, 1125, ++ 1129, 1135, 1141, 1147, 1155, 1161, 1167, 1169, 1171, 1175, ++ 1178, 1182, 1183, 1190, 1197, 1204, 1208, 1211, 1214, 1216, ++ 1220, 1224, 1226, 1228, 1230, 1232, 1234, 1237, 1239, 1240, ++ 1242, 1245, 1247, 1249, 1252, 1254, 1256, 1259, 1263, 1267, ++ 1273, 1277, 1279, 1283, 1287, 1291, 1295, 1300, 1305, 1309, ++ 1311, 1315, 1321, 1323, 1325, 1326, 1329, 1331, 1333, 1335, ++ 1337, 1344, 1352, 1354, 1356, 1358, 1362, 1366, 1370, 1376, ++ 1380, 1382, 1384, 1390, 1392, 1396, 1397, 1399, 1401, 1403, ++ 1406, 1409, 1411, 1413, 1415, 1417, 1419, 1421, 1423, 1425, ++ 1427, 1429, 1431, 1434, 1437, 1440, 1445, 1447, 1451, 1453, ++ 1457, 1461, 1463, 1467, 1468, 1474, 1476, 1477, 1482, 1483, ++ 1484, 1494, 1495, 1500, 1502, 1504, 1506, 1510, 1512, 1516, ++ 1520, 1521, 1528, 1529, 1530, 1539, 1540, 1541, 1550, 1551, ++ 1563, 1564, 1574, 1576, 1578, 1580, 1581, 1585, 1587, 1590, ++ 1592, 1595, 1597, 1599, 1602, 1604, 1609, 1612, 1617, 1623, ++ 1625, 1628, 1632, 1634, 1635, 1640, 1642, 1646, 1648, 1652, ++ 1654, 1658, 1662, 1666, 1668, 1672, 1678, 1684, 1692, 1702, ++ 1714, 1715, 1717, 1719, 1721, 1723, 1727, 1732, 1734, 1738, ++ 1740, 1742, 1744, 1748, 1750, 1752, 1755, 1759, 1763, 1764, ++ 1769, 1770, 1775, 1777, 1781, 1785, 1786, 1791, 1792, 1797, ++ 1799, 1803, 1807, 1811, 1815, 1819, 1822, 1825, 1827, 1829, ++ 1831, 1833, 1835, 1837, 1839, 1841, 1843, 1845, 1847, 1849, ++ 1851, 1853, 1856, 1858, 1860, 1862, 1864, 1866, 1868, 1870, ++ 1872, 1874, 1876, 1878, 1880, 1882, 1884, 1886, 1888, 1890, ++ 1892, 1894, 1897, 1899, 1902, 1904, 1906, 1908, 1912, 1914, ++ 1917, 1921, 1925, 1928, 1933, 1937, 1938, 1944, 1949, 1954, ++ 1955, 1961, 1966, 1971, 1974, 1979, 1985, 1989, 1991, 1993, ++ 1995, 1999, 2001, 2005, 2009, 2011, 2015, 2018, 2022, 2024, ++ 2028, 2032, 2036, 2038, 2042, 2044, 2046, 2048, 2050, 2052, ++ 2054, 2056, 2058, 2060, 2062, 2064, 2066, 2068, 2070, 2072, ++ 2074, 2076, 2078, 2080, 2082, 2084, 2086, 2089, 2091, 2093, ++ 2095, 2097, 2099, 2101, 2103, 2105, 2107, 2109, 2111, 2114, ++ 2116, 2118, 2120, 2122, 2124, 2126, 2128, 2130, 2132, 2134, ++ 2136, 2138, 2140, 2142, 2144, 2146, 2148, 2150, 2152, 2154, ++ 2156, 2158, 2160, 2162, 2164, 2166, 2168, 2170, 2172, 2174, ++ 2176, 2178, 2180, 2182, 2184, 2186, 2188, 2190, 2192, 2194, ++ 2196, 2198, 2200, 2202, 2204, 2206, 2208, 2210, 2212, 2214, ++ 2216, 2218, 2220, 2222, 2224, 2226, 2228, 2230, 2232, 2234, ++ 2236, 2238, 2240, 2242, 2244, 2246, 2248, 2250, 2252, 2254, ++ 2256, 2258, 2260, 2262, 2264, 2266, 2268, 2270, 2272, 2274, ++ 2276, 2278, 2280, 2282, 2284, 2286, 2288, 2290, 2292, 2294, ++ 2295, 2296, 2297, 2298, 2300, 2301, 2303, 2305, 2307, 2309, ++ 2311, 2313, 2315, 2317, 2319, 2321, 2322 + }; + + /* YYRHS -- A `-1'-separated list of the rules' RHS. */ + static const short yyrhs[] = + { +- 134, 0, -1, -1, 135, -1, -1, -1, 138, 164, +- 136, 194, 139, 137, 319, 430, -1, 147, -1, -1, +- 35, 412, 182, 116, -1, 35, 1, 182, 116, -1, +- -1, 139, 140, -1, 197, -1, 142, -1, -1, 141, +- 142, -1, -1, 143, 144, -1, 26, 205, 116, -1, +- 289, -1, 423, 145, -1, 52, 209, -1, -1, 40, +- 146, 211, 116, -1, 42, 261, -1, -1, -1, 70, +- 412, 116, 164, 83, 148, 194, 165, 149, 161, 19, +- 430, -1, 154, -1, 159, -1, -1, 154, 150, 159, +- -1, -1, -1, 162, 412, 163, 151, 157, 116, 152, +- 170, 430, -1, -1, 162, 412, 163, 153, 170, 430, +- -1, -1, -1, 162, 412, 83, 155, 163, 156, 157, +- 430, -1, -1, 83, 158, 186, 116, 194, 165, 19, +- -1, -1, 162, 412, 9, 116, 160, 170, 430, -1, +- -1, 9, 139, 180, -1, 83, -1, 182, 116, 164, +- -1, 431, -1, 269, 116, -1, -1, 165, 166, -1, +- 197, -1, 144, -1, 288, -1, -1, 167, 168, -1, +- 197, -1, -1, 169, 144, -1, 289, -1, -1, -1, +- 171, 194, 167, 172, 173, 19, -1, -1, 174, 176, +- -1, 174, -1, 176, -1, -1, 34, 14, 17, 175, +- 322, 116, -1, -1, 34, 19, 17, 177, 322, 116, +- -1, -1, 179, 320, -1, 14, 178, -1, 59, 178, +- -1, -1, 59, 178, 55, 181, 320, -1, 173, -1, +- 431, -1, 117, 183, 429, -1, 184, -1, 412, -1, +- 184, 118, 412, -1, 184, 1, 412, -1, 184, 118, +- 1, -1, 184, 1, -1, 416, -1, 185, 118, 416, +- -1, 187, -1, 186, 116, 187, -1, 1, -1, 186, +- 1, 187, -1, 186, 116, 1, -1, 416, 188, 189, +- -1, -1, 428, -1, 117, 191, 119, -1, 190, -1, +- 190, 117, 191, 119, -1, 83, -1, 192, -1, 191, +- 118, 192, -1, 1, -1, 191, 1, 192, -1, 191, +- 118, 1, -1, 412, 193, -1, 412, 99, 412, -1, +- 425, 412, 193, -1, 431, -1, 101, 412, -1, -1, +- -1, 195, 57, 196, 116, -1, 199, -1, 196, 116, +- 199, -1, 196, 1, 199, -1, 10, 198, 116, -1, +- 199, -1, 198, 118, 199, -1, 198, 1, 199, -1, +- 412, 200, 201, 202, -1, -1, 83, -1, 431, -1, +- 117, 203, 119, -1, 63, 117, 203, 119, -1, 431, +- -1, 25, 373, -1, 204, -1, 203, 118, 204, -1, +- 1, -1, 203, 1, 204, -1, 203, 118, 1, -1, +- 412, 193, -1, 206, -1, 205, 118, 206, -1, 1, +- -1, 205, 1, 206, -1, 205, 118, 1, -1, 205, +- 1, -1, 208, -1, 412, -1, 208, -1, 419, -1, +- 89, -1, 210, -1, 209, 210, -1, 1, -1, 416, +- 428, 370, 116, -1, 416, 424, 120, 218, 96, 276, +- 267, 116, -1, 212, -1, 211, 116, 212, -1, 1, +- -1, 211, 1, 212, -1, 211, 116, 1, -1, 211, +- 1, -1, 416, 424, 428, 218, 273, -1, -1, 414, +- 215, 428, 213, 218, 273, -1, 414, 215, 1, -1, +- -1, 416, 424, 428, 214, 256, 62, 257, 258, 19, +- -1, 117, 216, 119, -1, 117, 1, 119, -1, 217, +- -1, 216, 116, 217, -1, 216, 1, 217, -1, 216, +- 116, 1, -1, 216, 1, -1, 183, 120, 225, -1, +- 220, -1, 218, 269, -1, 220, -1, 423, 221, -1, +- 222, -1, 51, 222, -1, 224, -1, 67, 224, -1, +- 225, 226, -1, 255, -1, 228, -1, 232, -1, 234, +- -1, 235, -1, 223, 235, -1, 32, -1, 225, -1, +- 419, -1, 117, 227, 119, -1, 121, 373, 122, -1, +- 373, -1, 227, 118, 373, -1, 1, -1, 227, 1, +- 373, -1, 227, 118, 1, -1, 229, -1, 231, -1, +- 117, 230, 119, -1, 117, 1, 119, -1, 412, -1, +- 230, 118, 412, -1, 230, 1, 412, -1, 230, 118, +- 1, -1, 230, 1, -1, 373, 99, 373, -1, 223, +- 373, 99, 373, -1, 123, 233, -1, 124, 233, -1, +- 93, 233, -1, 427, 52, 233, -1, 412, -1, 234, +- -1, 240, -1, 33, 306, -1, 22, 306, 305, -1, +- 236, -1, 239, -1, 242, -1, 243, -1, 432, -1, +- 13, 121, 237, 122, 30, 219, -1, 238, -1, 237, +- 118, 238, -1, 237, 1, 238, -1, 237, 1, -1, +- 1, -1, 228, -1, 225, -1, 240, -1, 20, 241, +- 30, 219, -1, 20, -1, 431, -1, 121, 238, 122, +- -1, 38, 30, 219, -1, 36, 244, 19, -1, 36, +- 1, 19, -1, -1, 245, 426, -1, 245, 116, 247, +- -1, 247, -1, 246, -1, 245, 116, 246, -1, 245, +- 1, 246, -1, 245, 116, 1, -1, 245, 1, -1, +- 183, 120, 219, -1, 15, 248, 30, 251, 426, 250, +- -1, 412, 120, 225, -1, 412, 120, 249, -1, 419, +- -1, 249, -1, 228, -1, -1, 338, 117, 244, 119, +- 426, -1, 252, -1, 251, 116, 252, -1, 251, 1, +- 252, -1, 1, -1, 251, 1, -1, 253, 120, 117, +- 244, 119, -1, 254, -1, 253, 118, 254, -1, 253, +- 118, 1, -1, 253, 1, 254, -1, 253, 1, -1, +- 370, -1, 370, 99, 370, -1, 370, 1, 370, -1, +- 370, 99, 1, -1, 40, 30, 373, -1, 431, -1, +- 46, -1, 431, -1, 117, 225, 119, -1, 117, 1, +- 119, -1, 259, -1, 259, 260, -1, 1, -1, 431, +- -1, 259, 83, -1, 259, 260, 116, -1, 183, 120, +- 219, -1, 33, 412, 306, -1, 22, 412, 306, 302, +- 305, -1, 8, 412, 306, -1, 7, 412, 306, -1, +- 72, -1, 72, 373, -1, 46, -1, 269, -1, 262, +- -1, 261, 262, -1, -1, 185, 424, 120, 218, 263, +- 274, 264, 116, -1, 1, -1, 431, -1, 264, 116, +- 265, -1, 268, -1, 53, 385, -1, -1, 53, 385, +- 83, 266, 373, -1, 431, -1, 267, 116, 268, -1, +- 74, 373, -1, 269, -1, 50, 117, 270, 119, -1, +- 271, -1, 270, 118, 271, -1, 431, -1, 52, -1, +- 412, -1, 412, 428, 373, -1, 412, 117, 373, 119, +- -1, 412, 117, 419, 118, 373, 119, -1, 71, -1, +- 103, -1, 96, -1, 431, -1, 272, 276, -1, 272, +- 1, -1, 273, -1, -1, 45, 275, 373, -1, 45, +- 1, -1, -1, 277, 278, -1, 279, -1, 284, -1, +- 117, 280, 119, -1, 373, -1, 431, -1, 117, 280, +- 119, -1, 281, -1, 284, -1, 286, -1, 1, -1, +- 283, 282, 283, -1, 281, 282, 283, -1, 281, 1, +- 283, -1, 116, -1, 118, -1, 278, -1, 286, -1, +- 121, 285, 122, -1, 121, 1, 122, -1, 286, -1, +- 285, 116, 286, -1, 285, 1, 286, -1, 287, 120, +- 278, -1, 412, -1, 383, -1, 402, 383, -1, 401, +- 383, -1, 293, 116, 295, -1, 292, 116, 296, -1, +- -1, -1, 292, 116, 299, 290, 141, 291, 319, 116, +- -1, 293, -1, 294, -1, 33, 412, 306, -1, 22, +- 412, 306, 302, 305, -1, 6, 301, 306, 304, 305, +- -1, 33, 412, 125, 412, 306, -1, 22, 412, 125, +- 412, 306, 302, 305, -1, 8, 412, 125, 412, 306, +- -1, 7, 412, 125, 412, 306, -1, 299, -1, 296, +- -1, 299, 297, 299, -1, 56, 116, -1, 53, 385, +- 116, -1, -1, 53, 385, 83, 298, 373, 116, -1, +- 53, 385, 116, 74, 373, 116, -1, 74, 373, 116, +- 53, 385, 116, -1, 74, 373, 116, -1, 75, 116, +- -1, 76, 116, -1, 431, -1, 299, 269, 116, -1, +- 299, 300, 116, -1, 54, -1, 61, -1, 412, -1, +- 411, -1, 431, -1, 303, 412, -1, 428, -1, -1, +- 412, -1, 428, 412, -1, 431, -1, 321, -1, 120, +- 224, -1, 432, -1, 431, -1, 117, 119, -1, 117, +- 307, 119, -1, 117, 100, 119, -1, 117, 307, 116, +- 100, 119, -1, 117, 1, 119, -1, 308, -1, 307, +- 116, 308, -1, 307, 1, 308, -1, 307, 116, 1, +- -1, 183, 120, 312, -1, 425, 183, 120, 312, -1, +- 310, 42, 183, 311, -1, 52, 183, 311, -1, 309, +- -1, 33, 412, 306, -1, 22, 412, 306, 302, 305, +- -1, 431, -1, 425, -1, -1, 120, 312, -1, 318, +- -1, 255, -1, 313, -1, 317, -1, 13, 121, 315, +- 122, 30, 314, -1, 223, 13, 121, 316, 122, 30, +- 225, -1, 225, -1, 313, -1, 316, -1, 315, 116, +- 316, -1, 315, 1, 316, -1, 315, 116, 1, -1, +- 412, 99, 412, 120, 225, -1, 13, 30, 318, -1, +- 225, -1, 240, -1, 14, 421, 320, 422, 19, -1, +- 322, -1, 320, 116, 322, -1, -1, 321, -1, 323, +- -1, 325, -1, 325, 324, -1, 326, 322, -1, 324, +- -1, 319, -1, 352, -1, 357, -1, 364, -1, 327, +- -1, 332, -1, 334, -1, 342, -1, 345, -1, 348, +- -1, 23, 207, -1, 207, 120, -1, 42, 262, -1, +- 44, 328, 17, 322, -1, 329, -1, 328, 118, 329, +- -1, 1, -1, 328, 1, 329, -1, 328, 118, 1, +- -1, 372, -1, 372, 120, 412, -1, -1, 24, 371, +- 39, 331, 322, -1, 330, -1, -1, 330, 11, 333, +- 322, -1, -1, -1, 15, 373, 30, 335, 339, 426, +- 336, 337, 19, -1, -1, 338, 421, 320, 422, -1, +- 11, -1, 64, -1, 340, -1, 339, 116, 340, -1, +- 1, -1, 339, 1, 340, -1, 339, 116, 1, -1, +- -1, 253, 120, 341, 421, 322, 422, -1, -1, -1, +- 37, 343, 421, 320, 41, 344, 371, 422, -1, -1, +- -1, 43, 346, 421, 371, 347, 17, 322, 422, -1, +- -1, 21, 389, 356, 373, 351, 373, 349, 17, 421, +- 322, 422, -1, -1, 21, 389, 25, 373, 350, 17, +- 421, 322, 422, -1, 34, -1, 18, -1, 1, -1, +- -1, 354, 353, 355, -1, 390, -1, 123, 390, -1, +- 431, -1, 356, 373, -1, 103, -1, 428, -1, 410, +- 359, -1, 85, -1, 85, 117, 362, 429, -1, 358, +- 429, -1, 358, 118, 361, 429, -1, 358, 118, 94, +- 359, 429, -1, 82, -1, 82, 373, -1, 79, 117, +- 373, -1, 431, -1, -1, 360, 117, 361, 429, -1, +- 373, -1, 361, 118, 373, -1, 1, -1, 361, 118, +- 1, -1, 363, -1, 362, 118, 363, -1, 362, 1, +- 363, -1, 362, 118, 1, -1, 373, -1, 373, 120, +- 373, -1, 373, 120, 373, 120, 373, -1, 49, 365, +- 117, 388, 119, -1, 49, 365, 117, 388, 120, 366, +- 119, -1, 49, 365, 117, 388, 120, 366, 120, 366, +- 119, -1, 49, 365, 117, 388, 120, 366, 120, 366, +- 120, 369, 119, -1, -1, 83, -1, 431, -1, 367, +- -1, 368, -1, 367, 118, 368, -1, 384, 117, 373, +- 119, -1, 384, -1, 369, 118, 384, -1, 373, -1, +- 373, -1, 373, -1, 374, 403, 374, -1, 374, -1, +- 377, -1, 401, 377, -1, 374, 404, 377, -1, 374, +- 405, 377, -1, -1, 374, 31, 375, 377, -1, -1, +- 374, 406, 376, 377, -1, 380, -1, 377, 407, 380, +- -1, 377, 408, 380, -1, -1, 377, 12, 378, 380, +- -1, -1, 377, 409, 379, 380, -1, 381, -1, 380, +- 419, 381, -1, 381, 66, 381, -1, 381, 107, 381, +- -1, 380, 60, 225, -1, 380, 48, 225, -1, 402, +- 381, -1, 123, 381, -1, 384, -1, 382, -1, 28, +- -1, 398, -1, 390, -1, 383, -1, 92, -1, 89, +- -1, 90, -1, 388, -1, 431, -1, 384, -1, 91, +- -1, 93, -1, 124, 387, -1, 95, -1, 118, -1, +- 125, -1, 120, -1, 116, -1, 117, -1, 119, -1, +- 121, -1, 122, -1, 126, -1, 127, -1, 128, -1, +- 129, -1, 130, -1, 131, -1, 132, -1, 123, -1, +- 124, -1, 386, -1, 388, 386, -1, 390, -1, 86, +- 359, -1, 88, -1, 391, -1, 418, -1, 58, 412, +- -1, 389, 125, 412, -1, 117, 373, 119, -1, 389, +- 427, -1, 389, 121, 396, 122, -1, 391, 117, 119, +- -1, -1, 391, 117, 392, 361, 429, -1, 240, 117, +- 373, 119, -1, 80, 117, 362, 119, -1, -1, 78, +- 393, 117, 373, 119, -1, 77, 117, 390, 119, -1, +- 87, 117, 395, 119, -1, 394, 119, -1, 394, 118, +- 361, 119, -1, 394, 118, 94, 359, 119, -1, 81, +- 117, 395, -1, 390, -1, 240, -1, 397, -1, 396, +- 118, 397, -1, 1, -1, 396, 1, 397, -1, 396, +- 118, 1, -1, 373, -1, 373, 99, 373, -1, 121, +- 122, -1, 121, 399, 122, -1, 400, -1, 399, 118, +- 400, -1, 399, 1, 400, -1, 399, 118, 1, -1, +- 373, -1, 373, 99, 373, -1, 126, -1, 127, -1, +- 97, -1, 98, -1, 29, -1, 104, -1, 106, -1, +- 105, -1, 131, -1, 130, -1, 132, -1, 25, -1, +- 126, -1, 97, -1, 127, -1, 98, -1, 73, -1, +- 102, -1, 108, -1, 109, -1, 110, -1, 111, -1, +- 31, 11, -1, 65, -1, 128, -1, 129, -1, 16, +- -1, 27, -1, 68, -1, 69, -1, 112, -1, 113, +- -1, 114, -1, 115, -1, 12, 39, -1, 47, -1, +- 84, -1, 12, -1, 31, -1, 29, -1, 73, -1, +- 68, -1, 69, -1, 126, -1, 97, -1, 127, -1, +- 98, -1, 128, -1, 129, -1, 16, -1, 27, -1, +- 107, -1, 25, -1, 130, -1, 428, -1, 132, -1, +- 104, -1, 105, -1, 106, -1, 12, -1, 31, -1, +- 102, -1, 408, -1, 405, -1, 413, -1, 415, -1, +- 8, -1, 7, -1, 53, -1, 9, -1, 57, -1, +- 59, -1, 6, -1, 10, -1, 415, -1, 416, -1, +- 74, -1, 50, -1, 417, -1, 83, -1, 420, -1, +- 54, -1, 56, -1, 61, -1, 86, -1, 88, -1, +- 84, -1, 85, -1, 87, -1, 82, -1, 77, -1, +- 78, -1, 81, -1, 79, -1, 80, -1, 45, -1, +- 46, -1, 47, -1, 48, -1, 49, -1, 51, -1, +- 75, -1, 76, -1, 55, -1, 58, -1, 60, -1, +- 62, -1, 63, -1, 65, -1, 64, -1, 66, -1, +- 67, -1, 68, -1, 69, -1, 70, -1, 71, -1, +- 72, -1, 73, -1, 419, -1, 83, -1, 420, -1, +- 54, -1, 56, -1, 61, -1, 95, -1, -1, -1, +- -1, -1, 83, -1, -1, 116, -1, 124, -1, 93, +- -1, 123, -1, 131, -1, 96, -1, 119, -1, 1, +- -1, 125, -1, 1, -1, -1, 1, -1 ++ 135, 0, -1, -1, 136, -1, -1, -1, 139, 165, ++ 137, 199, 140, 138, 325, 437, -1, 148, -1, -1, ++ 38, 419, 183, 118, -1, 38, 1, 183, 118, -1, ++ -1, 140, 141, -1, 201, -1, 143, -1, -1, 142, ++ 143, -1, -1, 144, 145, -1, 29, 210, 118, -1, ++ 295, -1, 430, 146, -1, 55, 214, -1, -1, 43, ++ 147, 216, 118, -1, 45, 267, -1, -1, -1, 72, ++ 419, 118, 165, 85, 149, 199, 166, 150, 162, 22, ++ 437, -1, 155, -1, 160, -1, -1, 155, 151, 160, ++ -1, -1, -1, 163, 419, 164, 152, 158, 118, 153, ++ 171, 437, -1, -1, 163, 419, 164, 154, 171, 437, ++ -1, -1, -1, 163, 419, 85, 156, 164, 157, 158, ++ 437, -1, -1, 85, 159, 187, 118, 199, 166, 22, ++ -1, -1, 163, 419, 11, 118, 161, 171, 437, -1, ++ -1, 11, 197, 140, 181, -1, 85, -1, 183, 118, ++ 165, -1, 438, -1, 275, 118, -1, -1, 166, 167, ++ -1, 201, -1, 145, -1, 294, -1, -1, 168, 169, ++ -1, 201, -1, -1, 170, 145, -1, 295, -1, -1, ++ -1, 172, 199, 168, 173, 174, 22, -1, -1, 175, ++ 177, -1, 175, -1, 177, -1, -1, 37, 17, 20, ++ 176, 328, 118, -1, -1, 37, 22, 20, 178, 328, ++ 118, -1, -1, 180, 326, -1, 17, 179, -1, 12, ++ 179, -1, -1, 12, 179, 58, 182, 326, -1, 174, ++ -1, 438, -1, 119, 184, 436, -1, 185, -1, 419, ++ -1, 185, 120, 419, -1, 185, 1, 419, -1, 185, ++ 120, 1, -1, 185, 1, -1, 423, -1, 186, 120, ++ 423, -1, 188, -1, 187, 118, 188, -1, 1, -1, ++ 187, 1, 188, -1, 187, 118, 1, -1, 423, 189, ++ 190, -1, -1, 435, -1, 119, 192, 121, -1, 191, ++ -1, 191, 119, 192, 121, -1, 85, -1, 193, -1, ++ 192, 120, 193, -1, 1, -1, 192, 1, 193, -1, ++ 192, 120, 1, -1, 194, 195, -1, 194, 101, 194, ++ -1, 432, 194, 195, -1, 419, -1, 419, 4, 419, ++ -1, 438, -1, 103, 419, -1, -1, -1, -1, 60, ++ 198, 200, 118, -1, 196, 197, -1, 204, -1, 200, ++ 118, 204, -1, 200, 1, 204, -1, -1, 13, 202, ++ 203, 118, -1, 204, -1, 203, 120, 204, -1, 203, ++ 1, 204, -1, 419, 205, 206, 207, -1, -1, 85, ++ -1, 438, -1, 119, 208, 121, -1, 65, 119, 208, ++ 121, -1, 438, -1, 28, 379, -1, 209, -1, 208, ++ 120, 209, -1, 1, -1, 208, 1, 209, -1, 208, ++ 120, 1, -1, 419, 195, -1, 211, -1, 210, 120, ++ 211, -1, 1, -1, 210, 1, 211, -1, 210, 120, ++ 1, -1, 210, 1, -1, 213, -1, 419, -1, 213, ++ -1, 426, -1, 91, -1, 215, -1, 214, 215, -1, ++ 1, -1, 423, 435, 376, 118, -1, 423, 431, 122, ++ 223, 98, 282, 273, 118, -1, 217, -1, 216, 118, ++ 217, -1, 1, -1, 216, 1, 217, -1, 216, 118, ++ 1, -1, 216, 1, -1, 423, 431, 435, 223, 279, ++ -1, -1, 421, 220, 435, 218, 223, 279, -1, 421, ++ 220, 1, -1, -1, 423, 431, 435, 219, 262, 64, ++ 263, 264, 22, -1, 119, 221, 121, -1, 119, 1, ++ 121, -1, 222, -1, 221, 118, 222, -1, 221, 1, ++ 222, -1, 221, 118, 1, -1, 221, 1, -1, 184, ++ 122, 230, -1, 225, -1, 223, 275, -1, 225, -1, ++ 430, 226, -1, 227, -1, 54, 227, -1, 229, -1, ++ 69, 229, -1, 230, 232, -1, 261, -1, 234, -1, ++ 238, -1, 240, -1, 241, -1, 228, 241, -1, 35, ++ -1, 230, -1, 231, -1, 426, -1, 426, 4, 426, ++ -1, 119, 233, 121, -1, 123, 379, 124, -1, 379, ++ -1, 233, 120, 379, -1, 1, -1, 233, 1, 379, ++ -1, 233, 120, 1, -1, 235, -1, 237, -1, 119, ++ 236, 121, -1, 119, 1, 121, -1, 419, -1, 236, ++ 120, 419, -1, 236, 1, 419, -1, 236, 120, 1, ++ -1, 236, 1, -1, 379, 101, 379, -1, 228, 379, ++ 101, 379, -1, 125, 239, -1, 126, 239, -1, 95, ++ 239, -1, 434, 55, 239, -1, 419, -1, 240, -1, ++ 246, -1, 36, 312, -1, 25, 312, 311, -1, 242, ++ -1, 245, -1, 248, -1, 249, -1, 439, -1, 16, ++ 123, 243, 124, 33, 224, -1, 244, -1, 243, 120, ++ 244, -1, 243, 1, 244, -1, 243, 1, -1, 1, ++ -1, 234, -1, 230, -1, 246, -1, 23, 247, 33, ++ 224, -1, 23, -1, 438, -1, 123, 244, 124, -1, ++ 41, 33, 224, -1, 39, 250, 22, -1, 39, 1, ++ 22, -1, -1, 251, 433, -1, 251, 118, 253, -1, ++ 253, -1, 252, -1, 251, 118, 252, -1, 251, 1, ++ 252, -1, 251, 118, 1, -1, 251, 1, -1, 184, ++ 122, 224, -1, 18, 254, 33, 257, 433, 256, -1, ++ 419, 122, 230, -1, 419, 122, 255, -1, 426, -1, ++ 255, -1, 234, -1, -1, 344, 119, 250, 121, 433, ++ -1, 258, -1, 257, 118, 258, -1, 257, 1, 258, ++ -1, 1, -1, 257, 1, -1, 259, 122, 119, 250, ++ 121, -1, 260, -1, 259, 120, 260, -1, 259, 120, ++ 1, -1, 259, 1, 260, -1, 259, 1, -1, 376, ++ -1, 376, 101, 376, -1, 376, 1, 376, -1, 376, ++ 101, 1, -1, 43, 33, 379, -1, 438, -1, 49, ++ -1, 438, -1, 119, 230, 121, -1, 119, 1, 121, ++ -1, 265, -1, 265, 266, -1, 1, -1, 438, -1, ++ 265, 85, -1, 265, 266, 118, -1, 184, 122, 224, ++ -1, 36, 419, 312, -1, 25, 419, 312, 308, 311, ++ -1, 10, 419, 312, -1, 9, 419, 312, -1, 74, ++ -1, 74, 379, -1, 49, -1, 275, -1, 268, -1, ++ 267, 268, -1, -1, 186, 431, 122, 223, 269, 280, ++ 270, 118, -1, 1, -1, 438, -1, 270, 118, 271, ++ -1, 274, -1, 56, 391, -1, -1, 56, 391, 85, ++ 272, 379, -1, 438, -1, 273, 118, 274, -1, 76, ++ 379, -1, 275, -1, 53, 119, 276, 121, -1, 277, ++ -1, 276, 120, 277, -1, 438, -1, 55, -1, 419, ++ -1, 419, 435, 379, -1, 419, 119, 379, 121, -1, ++ 419, 119, 426, 120, 379, 121, -1, 73, -1, 105, ++ -1, 98, -1, 438, -1, 278, 282, -1, 278, 1, ++ -1, 279, -1, -1, 48, 281, 379, -1, 48, 1, ++ -1, -1, 283, 284, -1, 285, -1, 290, -1, 119, ++ 286, 121, -1, 379, -1, 438, -1, 119, 286, 121, ++ -1, 287, -1, 290, -1, 292, -1, 1, -1, 289, ++ 288, 289, -1, 287, 288, 289, -1, 287, 1, 289, ++ -1, 118, -1, 120, -1, 284, -1, 292, -1, 123, ++ 291, 124, -1, 123, 1, 124, -1, 292, -1, 291, ++ 118, 292, -1, 291, 1, 292, -1, 293, 122, 284, ++ -1, 419, -1, 389, -1, 409, 389, -1, 408, 389, ++ -1, 299, 118, 301, -1, 298, 118, 302, -1, -1, ++ -1, 298, 118, 305, 296, 197, 142, 297, 325, 118, ++ -1, 299, -1, 300, -1, 36, 419, 312, -1, 25, ++ 419, 312, 308, 311, -1, 8, 307, 312, 310, 311, ++ -1, 36, 419, 4, 419, 312, -1, 25, 419, 4, ++ 419, 312, 308, 311, -1, 10, 419, 4, 419, 312, ++ -1, 9, 419, 4, 419, 312, -1, 305, -1, 302, ++ -1, 305, 303, 305, -1, 59, 118, -1, 56, 391, ++ 118, -1, -1, 56, 391, 85, 304, 379, 118, -1, ++ 56, 391, 118, 76, 379, 118, -1, 76, 379, 118, ++ 56, 391, 118, -1, 76, 379, 118, -1, 77, 118, ++ -1, 78, 118, -1, 438, -1, 305, 275, 118, -1, ++ 305, 306, 118, -1, 57, -1, 63, -1, 419, -1, ++ 418, -1, 438, -1, 309, 419, -1, 435, -1, -1, ++ 419, -1, 435, 419, -1, 438, -1, 327, -1, 122, ++ 229, -1, 439, -1, 438, -1, 119, 121, -1, 119, ++ 313, 121, -1, 119, 102, 121, -1, 119, 313, 118, ++ 102, 121, -1, 119, 1, 121, -1, 314, -1, 313, ++ 118, 314, -1, 313, 1, 314, -1, 313, 118, 1, ++ -1, 184, 122, 318, -1, 432, 184, 122, 318, -1, ++ 316, 45, 184, 317, -1, 55, 184, 317, -1, 315, ++ -1, 36, 419, 312, -1, 25, 419, 312, 308, 311, ++ -1, 438, -1, 432, -1, -1, 122, 318, -1, 324, ++ -1, 261, -1, 319, -1, 323, -1, 16, 123, 321, ++ 124, 33, 320, -1, 228, 16, 123, 322, 124, 33, ++ 230, -1, 230, -1, 319, -1, 322, -1, 321, 118, ++ 322, -1, 321, 1, 322, -1, 321, 118, 1, -1, ++ 419, 101, 419, 122, 230, -1, 16, 33, 324, -1, ++ 230, -1, 246, -1, 17, 428, 326, 429, 22, -1, ++ 328, -1, 326, 118, 328, -1, -1, 327, -1, 329, ++ -1, 331, -1, 331, 330, -1, 332, 328, -1, 330, ++ -1, 325, -1, 358, -1, 363, -1, 370, -1, 333, ++ -1, 338, -1, 340, -1, 348, -1, 351, -1, 354, ++ -1, 26, 212, -1, 212, 122, -1, 45, 268, -1, ++ 47, 334, 20, 328, -1, 335, -1, 334, 120, 335, ++ -1, 1, -1, 334, 1, 335, -1, 334, 120, 1, ++ -1, 378, -1, 378, 122, 419, -1, -1, 27, 377, ++ 42, 337, 328, -1, 336, -1, -1, 336, 14, 339, ++ 328, -1, -1, -1, 18, 379, 33, 341, 345, 433, ++ 342, 343, 22, -1, -1, 344, 428, 326, 429, -1, ++ 14, -1, 66, -1, 346, -1, 345, 118, 346, -1, ++ 1, -1, 345, 1, 346, -1, 345, 118, 1, -1, ++ -1, 259, 122, 347, 428, 328, 429, -1, -1, -1, ++ 40, 349, 428, 326, 44, 350, 377, 429, -1, -1, ++ -1, 46, 352, 428, 377, 353, 20, 328, 429, -1, ++ -1, 24, 395, 362, 379, 357, 379, 355, 20, 428, ++ 328, 429, -1, -1, 24, 395, 28, 379, 356, 20, ++ 428, 328, 429, -1, 37, -1, 21, -1, 1, -1, ++ -1, 360, 359, 361, -1, 396, -1, 125, 396, -1, ++ 438, -1, 362, 379, -1, 105, -1, 435, -1, 417, ++ 365, -1, 87, -1, 87, 119, 368, 436, -1, 364, ++ 436, -1, 364, 120, 367, 436, -1, 364, 120, 96, ++ 365, 436, -1, 84, -1, 84, 379, -1, 81, 119, ++ 379, -1, 438, -1, -1, 366, 119, 367, 436, -1, ++ 379, -1, 367, 120, 379, -1, 1, -1, 367, 120, ++ 1, -1, 369, -1, 368, 120, 369, -1, 368, 1, ++ 369, -1, 368, 120, 1, -1, 379, -1, 379, 122, ++ 379, -1, 379, 122, 379, 122, 379, -1, 52, 371, ++ 119, 394, 121, -1, 52, 371, 119, 394, 122, 372, ++ 121, -1, 52, 371, 119, 394, 122, 372, 122, 372, ++ 121, -1, 52, 371, 119, 394, 122, 372, 122, 372, ++ 122, 375, 121, -1, -1, 85, -1, 438, -1, 373, ++ -1, 374, -1, 373, 120, 374, -1, 390, 119, 379, ++ 121, -1, 390, -1, 375, 120, 390, -1, 379, -1, ++ 379, -1, 379, -1, 380, 410, 380, -1, 380, -1, ++ 383, -1, 408, 383, -1, 380, 411, 383, -1, 380, ++ 412, 383, -1, -1, 380, 34, 381, 383, -1, -1, ++ 380, 413, 382, 383, -1, 386, -1, 383, 414, 386, ++ -1, 383, 415, 386, -1, -1, 383, 15, 384, 386, ++ -1, -1, 383, 416, 385, 386, -1, 387, -1, 386, ++ 426, 387, -1, 387, 68, 387, -1, 387, 109, 387, ++ -1, 386, 62, 230, -1, 386, 51, 230, -1, 409, ++ 387, -1, 125, 387, -1, 390, -1, 388, -1, 31, ++ -1, 405, -1, 396, -1, 389, -1, 94, -1, 91, ++ -1, 92, -1, 394, -1, 438, -1, 390, -1, 93, ++ -1, 95, -1, 126, 393, -1, 97, -1, 120, -1, ++ 4, -1, 122, -1, 118, -1, 119, -1, 121, -1, ++ 123, -1, 124, -1, 127, -1, 128, -1, 129, -1, ++ 130, -1, 131, -1, 132, -1, 133, -1, 125, -1, ++ 126, -1, 392, -1, 394, 392, -1, 396, -1, 88, ++ 365, -1, 90, -1, 398, -1, 425, -1, 426, 4, ++ 419, -1, 397, -1, 61, 419, -1, 395, 4, 419, ++ -1, 119, 379, 121, -1, 395, 434, -1, 395, 123, ++ 403, 124, -1, 398, 119, 121, -1, -1, 398, 119, ++ 399, 367, 436, -1, 246, 119, 379, 121, -1, 82, ++ 119, 368, 121, -1, -1, 80, 400, 119, 379, 121, ++ -1, 79, 119, 396, 121, -1, 89, 119, 402, 121, ++ -1, 401, 121, -1, 401, 120, 367, 121, -1, 401, ++ 120, 96, 365, 121, -1, 83, 119, 402, -1, 396, ++ -1, 246, -1, 404, -1, 403, 120, 404, -1, 1, ++ -1, 403, 1, 404, -1, 403, 120, 1, -1, 379, ++ -1, 379, 101, 379, -1, 123, 124, -1, 123, 406, ++ 124, -1, 407, -1, 406, 120, 407, -1, 406, 1, ++ 407, -1, 406, 120, 1, -1, 379, -1, 379, 101, ++ 379, -1, 127, -1, 128, -1, 99, -1, 100, -1, ++ 32, -1, 106, -1, 108, -1, 107, -1, 132, -1, ++ 131, -1, 133, -1, 28, -1, 127, -1, 99, -1, ++ 128, -1, 100, -1, 75, -1, 104, -1, 110, -1, ++ 111, -1, 112, -1, 113, -1, 34, 14, -1, 67, ++ -1, 129, -1, 130, -1, 19, -1, 30, -1, 70, ++ -1, 71, -1, 114, -1, 115, -1, 116, -1, 117, ++ -1, 15, 42, -1, 50, -1, 86, -1, 15, -1, ++ 34, -1, 32, -1, 75, -1, 70, -1, 71, -1, ++ 127, -1, 99, -1, 128, -1, 100, -1, 129, -1, ++ 130, -1, 19, -1, 30, -1, 109, -1, 28, -1, ++ 131, -1, 435, -1, 133, -1, 106, -1, 107, -1, ++ 108, -1, 15, -1, 34, -1, 104, -1, 415, -1, ++ 412, -1, 420, -1, 422, -1, 10, -1, 9, -1, ++ 56, -1, 11, -1, 60, -1, 12, -1, 8, -1, ++ 13, -1, 422, -1, 423, -1, 76, -1, 53, -1, ++ 424, -1, 85, -1, 427, -1, 57, -1, 59, -1, ++ 63, -1, 88, -1, 90, -1, 86, -1, 87, -1, ++ 89, -1, 84, -1, 79, -1, 80, -1, 83, -1, ++ 81, -1, 82, -1, 48, -1, 49, -1, 50, -1, ++ 51, -1, 52, -1, 54, -1, 77, -1, 78, -1, ++ 58, -1, 61, -1, 62, -1, 64, -1, 65, -1, ++ 67, -1, 66, -1, 68, -1, 69, -1, 70, -1, ++ 71, -1, 72, -1, 73, -1, 74, -1, 75, -1, ++ 426, -1, 85, -1, 427, -1, 57, -1, 59, -1, ++ 63, -1, 97, -1, -1, -1, -1, -1, 85, -1, ++ -1, 118, -1, 126, -1, 95, -1, 125, -1, 132, ++ -1, 98, -1, 121, -1, 1, -1, 4, -1, 1, ++ -1, -1, 1, -1 + }; + + /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ + static const unsigned short yyrline[] = + { +- 0, 236, 236, 237, 249, 251, 248, 254, 260, 261, +- 263, 269, 270, 275, 276, 281, 282, 287, 287, 290, +- 292, 297, 307, 310, 309, 313, 319, 321, 318, 324, +- 325, 327, 326, 335, 337, 334, 343, 342, 349, 351, +- 348, 358, 357, 365, 364, 370, 371, 375, 380, 385, +- 386, 391, 392, 397, 398, 399, 405, 406, 411, 412, +- 412, 415, 420, 422, 420, 426, 428, 429, 430, 435, +- 434, 442, 441, 448, 448, 454, 455, 457, 456, 460, +- 464, 465, 470, 475, 477, 479, 485, 487, 491, 493, +- 498, 499, 501, 503, 505, 510, 516, 517, 521, 523, +- 524, 529, 534, 535, 537, 539, 541, 546, 548, 550, +- 555, 556, 562, 563, 563, 568, 569, 570, 575, 580, +- 581, 582, 587, 593, 594, 599, 600, 602, 607, 608, +- 613, 614, 616, 618, 620, 625, 632, 634, 636, 638, +- 640, 642, 646, 647, 654, 655, 659, 666, 667, 668, +- 672, 674, 685, 686, 688, 689, 691, 693, 697, 708, +- 707, 719, 722, 721, 732, 734, 739, 740, 742, 744, +- 746, 750, 755, 756, 761, 771, 781, 782, 791, 792, +- 802, 804, 805, 806, 807, 809, 810, 815, 820, 832, +- 846, 848, 856, 861, 866, 868, 874, 881, 882, 887, +- 889, 894, 896, 898, 900, 902, 906, 908, 918, 920, +- 922, 924, 935, 951, 957, 963, 965, 970, 971, 972, +- 973, 974, 978, 983, 984, 986, 988, 990, 996, 998, +- 1003, 1004, 1009, 1014, 1015, 1020, 1025, 1027, 1033, 1034, +- 1036, 1038, 1043, 1044, 1046, 1048, 1050, 1054, 1059, 1064, +- 1066, 1068, 1070, 1075, 1081, 1082, 1087, 1088, 1090, 1092, +- 1094, 1098, 1103, 1104, 1106, 1108, 1110, 1114, 1116, 1121, +- 1127, 1132, 1144, 1145, 1149, 1150, 1152, 1157, 1158, 1160, +- 1165, 1166, 1168, 1173, 1175, 1177, 1179, 1181, 1183, 1185, +- 1187, 1189, 1195, 1196, 1201, 1200, 1225, 1230, 1231, 1236, +- 1237, 1240, 1239, 1246, 1247, 1252, 1254, 1259, 1264, 1265, +- 1270, 1271, 1273, 1275, 1277, 1279, 1284, 1285, 1287, 1292, +- 1293, 1295, 1300, 1302, 1301, 1309, 1329, 1329, 1335, 1337, +- 1338, 1346, 1359, 1360, 1362, 1364, 1365, 1366, 1374, 1376, +- 1378, 1383, 1384, 1389, 1390, 1394, 1399, 1408, 1409, 1411, +- 1416, 1421, 1422, 1423, 1425, 1539, 1550, 1553, 1555, 1552, +- 1567, 1568, 1572, 1574, 1576, 1586, 1588, 1590, 1592, 1597, +- 1598, 1602, 1607, 1609, 1612, 1611, 1615, 1617, 1619, 1621, +- 1623, 1628, 1629, 1631, 1639, 1640, 1644, 1645, 1649, 1650, +- 1655, 1657, 1661, 1662, 1664, 1669, 1671, 1673, 1677, 1678, +- 1683, 1685, 1687, 1689, 1694, 1695, 1697, 1699, 1703, 1705, +- 1707, 1709, 1711, 1716, 1718, 1723, 1724, 1729, 1730, 1735, +- 1736, 1737, 1738, 1742, 1744, 1753, 1754, 1758, 1759, 1761, +- 1763, 1767, 1775, 1783, 1784, 1790, 1795, 1796, 1807, 1811, +- 1813, 1818, 1819, 1820, 1821, 1825, 1826, 1827, 1828, 1829, +- 1830, 1831, 1832, 1833, 1834, 1835, 1840, 1845, 1853, 1858, +- 1859, 1861, 1863, 1865, 1870, 1872, 1878, 1877, 1887, 1890, +- 1889, 1901, 1906, 1900, 1923, 1929, 1933, 1935, 1939, 1940, +- 1942, 1944, 1946, 1952, 1951, 1962, 1964, 1961, 1975, 1977, +- 1974, 1984, 1983, 1988, 1987, 1994, 1996, 1998, 2006, 2005, +- 2017, 2018, 2040, 2041, 2046, 2047, 2052, 2054, 2056, 2058, +- 2060, 2068, 2070, 2072, 2077, 2082, 2083, 2083, 2089, 2091, +- 2093, 2095, 2100, 2101, 2103, 2105, 2111, 2113, 2115, 2120, +- 2122, 2124, 2126, 2132, 2133, 2138, 2139, 2143, 2144, 2149, +- 2154, 2156, 2163, 2180, 2191, 2196, 2198, 2203, 2204, 2209, +- 2211, 2214, 2213, 2218, 2217, 2224, 2225, 2227, 2230, 2229, +- 2234, 2233, 2240, 2241, 2243, 2245, 2247, 2249, 2254, 2256, +- 2261, 2262, 2263, 2265, 2266, 2281, 2282, 2286, 2287, 2291, +- 2296, 2297, 2301, 2302, 2303, 2308, 2309, 2309, 2309, 2309, +- 2309, 2309, 2309, 2309, 2310, 2310, 2310, 2310, 2310, 2310, +- 2310, 2310, 2310, 2314, 2316, 2321, 2326, 2328, 2330, 2334, +- 2335, 2337, 2339, 2350, 2352, 2354, 2360, 2359, 2366, 2368, +- 2371, 2370, 2377, 2379, 2381, 2383, 2394, 2399, 2404, 2405, +- 2410, 2411, 2413, 2415, 2417, 2422, 2424, 2432, 2434, 2439, +- 2440, 2442, 2444, 2449, 2451, 2458, 2459, 2463, 2464, 2465, +- 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2479, 2480, 2481, +- 2482, 2483, 2484, 2488, 2489, 2490, 2491, 2495, 2497, 2501, +- 2502, 2503, 2504, 2505, 2506, 2510, 2511, 2512, 2513, 2517, +- 2519, 2525, 2528, 2529, 2530, 2531, 2532, 2533, 2539, 2540, +- 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, +- 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2563, +- 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2581, +- 2586, 2587, 2588, 2593, 2598, 2599, 2600, 2601, 2602, 2603, +- 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, +- 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, +- 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, +- 2634, 2635, 2636, 2640, 2645, 2646, 2647, 2648, 2649, 2653, +- 2661, 2666, 2671, 2681, 2685, 2691, 2692, 2697, 2698, 2699, +- 2703, 2704, 2708, 2709, 2714, 2715, 2721, 2725 ++ 0, 253, 253, 254, 266, 268, 265, 271, 277, 278, ++ 280, 286, 287, 292, 293, 298, 299, 304, 304, 307, ++ 309, 314, 324, 327, 326, 330, 336, 338, 335, 341, ++ 342, 344, 343, 352, 354, 351, 360, 359, 366, 368, ++ 365, 375, 374, 382, 381, 387, 388, 392, 397, 402, ++ 403, 408, 409, 414, 415, 416, 422, 423, 428, 429, ++ 429, 432, 437, 439, 437, 443, 445, 446, 447, 452, ++ 451, 459, 458, 465, 465, 471, 472, 474, 473, 477, ++ 481, 482, 487, 492, 494, 496, 502, 504, 508, 510, ++ 515, 516, 518, 520, 522, 527, 533, 534, 538, 540, ++ 541, 546, 551, 552, 554, 556, 558, 563, 565, 567, ++ 572, 573, 578, 579, 586, 589, 592, 592, 596, 600, ++ 601, 602, 607, 607, 612, 613, 614, 619, 626, 627, ++ 632, 633, 635, 640, 641, 646, 647, 649, 651, 653, ++ 658, 665, 667, 669, 671, 673, 675, 679, 680, 687, ++ 688, 692, 699, 700, 701, 705, 707, 718, 719, 721, ++ 722, 724, 726, 730, 741, 740, 752, 755, 754, 765, ++ 767, 772, 773, 775, 777, 779, 783, 788, 789, 794, ++ 804, 814, 815, 824, 825, 835, 837, 838, 839, 840, ++ 842, 843, 848, 853, 865, 879, 880, 885, 887, 895, ++ 900, 905, 907, 913, 920, 921, 926, 928, 933, 935, ++ 937, 939, 941, 945, 947, 957, 959, 961, 963, 974, ++ 990, 996, 1002, 1004, 1009, 1010, 1011, 1012, 1013, 1017, ++ 1022, 1023, 1025, 1027, 1029, 1035, 1037, 1042, 1043, 1048, ++ 1053, 1054, 1059, 1064, 1066, 1072, 1073, 1075, 1077, 1082, ++ 1083, 1085, 1087, 1089, 1093, 1098, 1103, 1105, 1107, 1109, ++ 1114, 1120, 1121, 1126, 1127, 1129, 1131, 1133, 1137, 1142, ++ 1143, 1145, 1147, 1149, 1153, 1155, 1160, 1166, 1171, 1183, ++ 1184, 1188, 1189, 1191, 1196, 1197, 1199, 1204, 1205, 1207, ++ 1212, 1214, 1216, 1218, 1220, 1222, 1224, 1226, 1228, 1234, ++ 1235, 1240, 1239, 1264, 1269, 1270, 1275, 1276, 1279, 1278, ++ 1285, 1286, 1291, 1293, 1298, 1303, 1304, 1309, 1310, 1312, ++ 1314, 1316, 1318, 1323, 1324, 1326, 1331, 1332, 1334, 1339, ++ 1341, 1340, 1348, 1368, 1368, 1374, 1376, 1377, 1385, 1398, ++ 1399, 1401, 1403, 1404, 1405, 1413, 1415, 1417, 1422, 1423, ++ 1428, 1429, 1433, 1438, 1447, 1448, 1450, 1455, 1460, 1461, ++ 1462, 1464, 1578, 1589, 1592, 1595, 1591, 1607, 1608, 1612, ++ 1614, 1616, 1626, 1628, 1630, 1632, 1637, 1638, 1642, 1647, ++ 1649, 1652, 1651, 1655, 1657, 1659, 1661, 1663, 1668, 1669, ++ 1671, 1679, 1680, 1684, 1685, 1689, 1690, 1695, 1697, 1701, ++ 1702, 1704, 1709, 1711, 1713, 1717, 1718, 1723, 1725, 1727, ++ 1729, 1734, 1735, 1737, 1739, 1743, 1745, 1747, 1749, 1751, ++ 1756, 1758, 1763, 1764, 1769, 1770, 1775, 1776, 1777, 1778, ++ 1782, 1784, 1793, 1794, 1798, 1799, 1801, 1803, 1807, 1815, ++ 1823, 1824, 1830, 1835, 1836, 1847, 1851, 1853, 1858, 1859, ++ 1860, 1861, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, ++ 1873, 1874, 1875, 1880, 1885, 1893, 1898, 1899, 1901, 1903, ++ 1905, 1910, 1912, 1918, 1917, 1927, 1930, 1929, 1941, 1946, ++ 1940, 1963, 1969, 1973, 1975, 1979, 1980, 1982, 1984, 1986, ++ 1992, 1991, 2002, 2004, 2001, 2015, 2017, 2014, 2024, 2023, ++ 2028, 2027, 2034, 2036, 2038, 2046, 2045, 2057, 2058, 2080, ++ 2081, 2086, 2087, 2092, 2094, 2096, 2098, 2100, 2108, 2110, ++ 2112, 2117, 2122, 2123, 2123, 2129, 2131, 2133, 2135, 2140, ++ 2141, 2143, 2145, 2151, 2153, 2155, 2160, 2162, 2164, 2166, ++ 2172, 2173, 2178, 2179, 2183, 2184, 2189, 2194, 2196, 2203, ++ 2220, 2231, 2236, 2238, 2243, 2244, 2249, 2251, 2254, 2253, ++ 2258, 2257, 2264, 2265, 2267, 2270, 2269, 2274, 2273, 2280, ++ 2281, 2283, 2285, 2287, 2289, 2294, 2296, 2301, 2302, 2303, ++ 2305, 2306, 2321, 2322, 2326, 2327, 2331, 2336, 2337, 2341, ++ 2342, 2343, 2348, 2349, 2349, 2349, 2349, 2349, 2349, 2349, ++ 2349, 2350, 2350, 2350, 2350, 2350, 2350, 2350, 2350, 2350, ++ 2354, 2356, 2361, 2366, 2368, 2370, 2374, 2375, 2380, 2381, ++ 2383, 2385, 2396, 2398, 2400, 2406, 2405, 2412, 2414, 2417, ++ 2416, 2423, 2425, 2427, 2429, 2440, 2445, 2450, 2451, 2456, ++ 2457, 2459, 2461, 2463, 2468, 2470, 2478, 2480, 2485, 2486, ++ 2488, 2490, 2495, 2497, 2504, 2505, 2509, 2510, 2511, 2515, ++ 2516, 2517, 2518, 2519, 2520, 2521, 2525, 2526, 2527, 2528, ++ 2529, 2530, 2534, 2535, 2536, 2537, 2541, 2543, 2547, 2548, ++ 2549, 2550, 2551, 2552, 2556, 2557, 2558, 2559, 2563, 2565, ++ 2571, 2574, 2575, 2576, 2577, 2578, 2579, 2585, 2586, 2587, ++ 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, ++ 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2609, 2614, ++ 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2627, 2632, ++ 2633, 2634, 2639, 2644, 2645, 2646, 2647, 2648, 2649, 2650, ++ 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, ++ 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, ++ 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, ++ 2681, 2682, 2686, 2691, 2692, 2693, 2694, 2695, 2699, 2707, ++ 2712, 2717, 2727, 2731, 2737, 2738, 2743, 2744, 2745, 2749, ++ 2750, 2754, 2755, 2760, 2761, 2767, 2771 + }; + #endif + +@@ -884,19 +903,19 @@ + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ + static const char *const yytname[] = + { +- "$end", "error", "$undefined", "prec_if", "prec_lower_than_error", +- "prec_import", "p_operator", "p_destructor", "p_constructor", +- "p_implementation", "p_uses", "p_else", "p_and", "p_array", "p_begin", +- "p_case", "p_div", "p_do", "p_downto", "p_end", "p_file", "p_for", +- "p_function", "p_goto", "p_if", "p_in", "p_label", "p_mod", "p_nil", +- "p_not", "p_of", "p_or", "p_packed", "p_procedure", "p_to", "p_program", +- "p_record", "p_repeat", "p_set", "p_then", "p_type", "p_until", "p_var", +- "p_while", "p_with", "p_absolute", "p_abstract", "p_and_then", "p_as", +- "p_asm", "p_attribute", "p_bindable", "p_const", "p_external", "p_far", +- "p_finalization", "p_forward", "p_import", "p_inherited", +- "p_initialization", "p_is", "p_near", "p_object", "p_only", +- "p_otherwise", "p_or_else", "p_pow", "p_restricted", "p_shl", "p_shr", +- "p_unit", "p_value", "p_virtual", "p_xor", "p_asmname", "p_c", ++ "$end", "error", "$undefined", "prec_id", "'.'", "prec_if", ++ "prec_lower_than_error", "prec_import", "p_operator", "p_destructor", ++ "p_constructor", "p_implementation", "p_initialization", "p_uses", ++ "p_else", "p_and", "p_array", "p_begin", "p_case", "p_div", "p_do", ++ "p_downto", "p_end", "p_file", "p_for", "p_function", "p_goto", "p_if", ++ "p_in", "p_label", "p_mod", "p_nil", "p_not", "p_of", "p_or", "p_packed", ++ "p_procedure", "p_to", "p_program", "p_record", "p_repeat", "p_set", ++ "p_then", "p_type", "p_until", "p_var", "p_while", "p_with", ++ "p_absolute", "p_abstract", "p_and_then", "p_as", "p_asm", "p_attribute", ++ "p_bindable", "p_const", "p_external", "p_far", "p_finalization", ++ "p_forward", "p_import", "p_inherited", "p_is", "p_near", "p_object", ++ "p_only", "p_otherwise", "p_or_else", "p_pow", "p_restricted", "p_shl", ++ "p_shr", "p_unit", "p_value", "p_virtual", "p_xor", "p_asmname", "p_c", + "p_c_language", "p_Addr", "p_Assigned", "p_Dispose", "p_FormatString", + "p_New", "p_Return", "LEX_ID", "LEX_BUILTIN_PROCEDURE", + "LEX_BUILTIN_PROCEDURE_WRITE", "LEX_BUILTIN_FUNCTION", +@@ -907,8 +926,8 @@ + "LEX_ASSIGN", "LEX_NE", "LEX_GE", "LEX_LE", "LEX_POWER", "LEX_CEIL_PLUS", + "LEX_CEIL_MINUS", "LEX_FLOOR_PLUS", "LEX_FLOOR_MINUS", "LEX_CEIL_MULT", + "LEX_CEIL_DIV", "LEX_FLOOR_MULT", "LEX_FLOOR_DIV", "';'", "'('", "','", +- "')'", "':'", "'['", "']'", "'@'", "'^'", "'.'", "'+'", "'-'", "'*'", +- "'/'", "'<'", "'='", "'>'", "$accept", "program_component", ++ "')'", "':'", "'['", "']'", "'@'", "'^'", "'+'", "'-'", "'*'", "'/'", ++ "'<'", "'='", "'>'", "$accept", "program_component", + "program_component_1", "@1", "@2", "optional_program_heading", + "declarations_and_uses", "declaration_or_uses", "any_declaration_part", + "any_decl", "@3", "simple_decl", "simple_decl_1", "@4", +@@ -923,43 +942,44 @@ + "optional_unit_init_and_final_part", "@21", "optional_par_id_list", + "id_list", "id_list1", "id_list_limited", "export_part_list", + "export_part", "equals_or_error", "export_list_or_all", "export_all", +- "export_list", "export_list_item", "optional_rename", +- "optional_import_part", "@22", "import_specification_list", "uses_part", ++ "export_list", "export_list_item", "new_quid", "optional_rename", ++ "extra_import_part", "optional_import_part1", "@22", ++ "optional_import_part", "import_specification_list", "uses_part", "@23", + "uses_list", "import_specification", "optional_access_qualifier", + "optional_import_qualifier", "optional_unit_filename", + "import_clause_list", "import_clause", "label_list", "new_label", + "label", "num_label", "constant_definition_list", "constant_definition", +- "type_definition_list", "type_definition", "@23", "@24", ++ "type_definition_list", "type_definition", "@24", "@25", + "formal_schema_discriminants", "discriminant_specification_list", + "discriminant_specification", "type_denoter_with_attributes", + "type_denoter_no_init", "type_denoter", "type_denoter_1", + "type_denoter_0", "packed", "typename_or_string255", "typename", +- "actual_schema_discriminants", "discriminant_expression_list", +- "new_ordinal_type", "enumerated_type", "enum_list", "subrange_type", +- "new_pointer_type", "pointer_domain_type", "new_procedural_type", +- "unpacked_structured_type", "array_type", "array_index_list", +- "ordinal_index_type", "file_type", "untyped_file", ++ "typename_1", "actual_schema_discriminants", ++ "discriminant_expression_list", "new_ordinal_type", "enumerated_type", ++ "enum_list", "subrange_type", "new_pointer_type", "pointer_domain_type", ++ "new_procedural_type", "unpacked_structured_type", "array_type", ++ "array_index_list", "ordinal_index_type", "file_type", "untyped_file", + "direct_access_index_type", "set_type", "record_type", + "record_field_list", "fixed_part", "record_section", "variant_part", + "variant_selector", "new_ordinal_type_non_iso", "rest_of_variant", + "variant_list", "variant", "case_constant_list", "one_case_constant", + "type_inquiry", "optional_abstract", "object_parent", + "object_field_list", "object_field_list_1", "object_section", +- "variable_declaration_list", "variable_declaration", "@25", +- "optional_variable_directive_list", "variable_directive", "@26", ++ "variable_declaration_list", "variable_declaration", "@26", ++ "optional_variable_directive_list", "variable_directive", "@27", + "optional_variable_directive_list_no_external", + "variable_directive_no_external", "attributes", "attribute_list", + "attrib", "var_init", "optional_value_specification", +- "absolute_or_value_specification", "@27", "initializer_expression", +- "@28", "initializer_expression_0", "static_initializer_expression", ++ "absolute_or_value_specification", "@28", "initializer_expression", ++ "@29", "initializer_expression_0", "static_initializer_expression", + "structured_bp_initializer", "bp_initializer_list", + "initializer_separator", "bp_initializer_expression", + "structured_iso_initializer", "iso_initializer_list", + "iso_initializer_expression", "initializer_field", +- "routine_interface_decl", "routine_declaration", "@29", "@30", ++ "routine_interface_decl", "routine_declaration", "@30", "@31", + "routine_or_method_heading", "routine_heading", "method_heading", + "optional_routine_interface_directive_list", "remote_directive_list", +- "remote_directive", "@31", "optional_routine_directive_list", ++ "remote_directive", "@32", "optional_routine_directive_list", + "bp_directive", "operator_identifier", "optional_result_def", + "optional_result_equals", "operator_result_def", "resulttype", + "optional_formal_parameter_list", "formal_parameter_list", +@@ -970,24 +990,24 @@ + "compound_statement", "statement_sequence", "empty_lte", + "optional_statement", "statement", "unlabelled_statement", "set_label", + "statement_var_decl", "with_statement", "with_list", "with_variable", +- "simple_if", "@32", "if_statement", "@33", "case_statement", "@34", +- "@35", "optional_case_default", "otherwise", "case_element_list", +- "case_element", "@36", "repeat_statement", "@37", "@38", +- "while_statement", "@39", "@40", "for_statement", "@41", "@42", +- "for_direction", "assignment_or_call_statement", "@43", ++ "simple_if", "@33", "if_statement", "@34", "case_statement", "@35", ++ "@36", "optional_case_default", "otherwise", "case_element_list", ++ "case_element", "@37", "repeat_statement", "@38", "@39", ++ "while_statement", "@40", "@41", "for_statement", "@42", "@43", ++ "for_direction", "assignment_or_call_statement", "@44", + "start_of_statement", "rest_of_statement", "assign", + "standard_procedure_statement", "start_of_dispose", +- "optional_actual_parameter_list", "@44", "actual_parameter_list", ++ "optional_actual_parameter_list", "@45", "actual_parameter_list", + "write_actual_parameter_list", "write_actual_parameter", "asm_statement", + "asm_qualifier", "asm_operands", "nonempty_asm_operands", "asm_operand", + "asm_clobbers", "static_expression", "boolean_expression", +- "expression_no_par", "expression", "simple_expression", "@45", "@46", +- "term", "@47", "@48", "factor", "primary", "unsigned_number", "intconst", ++ "expression_no_par", "expression", "simple_expression", "@46", "@47", ++ "term", "@48", "@49", "factor", "primary", "unsigned_number", "intconst", + "combined_string", "optional_combined_string", "string_constant", + "caret_chars", "string_constants", + "variable_or_routine_access_no_parentheses", +- "variable_or_routine_access", +- "variable_or_routine_access_no_builtin_function", "@49", "@50", ++ "variable_or_routine_access", "qualified_id_access", ++ "variable_or_routine_access_no_builtin_function", "@50", "@51", + "start_of_new", "variable_or_typename", "index_expression_list", + "index_expression_item", "set_constructor", + "set_constructor_element_list", "member_designator", "sign", +@@ -1006,85 +1026,86 @@ + /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ + static const unsigned short yyr1[] = + { +- 0, 133, 134, 134, 136, 137, 135, 135, 138, 138, +- 138, 139, 139, 140, 140, 141, 141, 143, 142, 142, +- 142, 144, 145, 146, 145, 145, 148, 149, 147, 147, +- 147, 150, 147, 151, 152, 147, 153, 147, 155, 156, +- 154, 158, 157, 160, 159, 161, 161, 162, 163, 164, +- 164, 165, 165, 166, 166, 166, 167, 167, 168, 169, +- 168, 168, 171, 172, 170, 173, 173, 173, 173, 175, +- 174, 177, 176, 179, 178, 180, 180, 181, 180, 180, +- 182, 182, 183, 184, 184, 184, 184, 184, 185, 185, +- 186, 186, 186, 186, 186, 187, 188, 188, 189, 189, +- 189, 190, 191, 191, 191, 191, 191, 192, 192, 192, +- 193, 193, 194, 195, 194, 196, 196, 196, 197, 198, +- 198, 198, 199, 200, 200, 201, 201, 201, 202, 202, +- 203, 203, 203, 203, 203, 204, 205, 205, 205, 205, +- 205, 205, 206, 206, 207, 207, 208, 209, 209, 209, +- 210, 210, 211, 211, 211, 211, 211, 211, 212, 213, +- 212, 212, 214, 212, 215, 215, 216, 216, 216, 216, +- 216, 217, 218, 218, 219, 220, 221, 221, 222, 222, +- 222, 222, 222, 222, 222, 222, 222, 223, 224, 225, +- 226, 226, 227, 227, 227, 227, 227, 228, 228, 229, +- 229, 230, 230, 230, 230, 230, 231, 231, 232, 232, +- 232, 232, 233, 233, 233, 234, 234, 235, 235, 235, +- 235, 235, 236, 237, 237, 237, 237, 237, 238, 238, +- 239, 239, 240, 241, 241, 242, 243, 243, 244, 244, +- 244, 244, 245, 245, 245, 245, 245, 246, 247, 248, +- 248, 248, 248, 249, 250, 250, 251, 251, 251, 251, +- 251, 252, 253, 253, 253, 253, 253, 254, 254, 254, +- 254, 255, 256, 256, 257, 257, 257, 258, 258, 258, +- 259, 259, 259, 260, 260, 260, 260, 260, 260, 260, +- 260, 260, 261, 261, 263, 262, 262, 264, 264, 265, +- 265, 266, 265, 267, 267, 268, 268, 269, 270, 270, +- 271, 271, 271, 271, 271, 271, 272, 272, 272, 273, +- 273, 273, 274, 275, 274, 274, 277, 276, 278, 278, +- 278, 279, 280, 280, 280, 280, 280, 280, 281, 281, +- 281, 282, 282, 283, 283, 284, 284, 285, 285, 285, +- 286, 287, 287, 287, 287, 288, 289, 290, 291, 289, +- 292, 292, 293, 293, 293, 294, 294, 294, 294, 295, +- 295, 296, 297, 297, 298, 297, 297, 297, 297, 297, +- 297, 299, 299, 299, 300, 300, 301, 301, 302, 302, +- 303, 303, 304, 304, 304, 305, 305, 305, 306, 306, +- 306, 306, 306, 306, 307, 307, 307, 307, 308, 308, +- 308, 308, 308, 309, 309, 310, 310, 311, 311, 312, +- 312, 312, 312, 313, 313, 314, 314, 315, 315, 315, +- 315, 316, 317, 318, 318, 319, 320, 320, 321, 322, +- 322, 323, 323, 323, 323, 324, 324, 324, 324, 324, +- 324, 324, 324, 324, 324, 324, 325, 326, 327, 328, +- 328, 328, 328, 328, 329, 329, 331, 330, 332, 333, +- 332, 335, 336, 334, 337, 337, 338, 338, 339, 339, +- 339, 339, 339, 341, 340, 343, 344, 342, 346, 347, +- 345, 349, 348, 350, 348, 351, 351, 351, 353, 352, +- 354, 354, 355, 355, 356, 356, 357, 357, 357, 357, +- 357, 357, 357, 357, 358, 359, 360, 359, 361, 361, +- 361, 361, 362, 362, 362, 362, 363, 363, 363, 364, +- 364, 364, 364, 365, 365, 366, 366, 367, 367, 368, +- 369, 369, 370, 371, 372, 373, 373, 374, 374, 374, +- 374, 375, 374, 376, 374, 377, 377, 377, 378, 377, +- 379, 377, 380, 380, 380, 380, 380, 380, 381, 381, +- 381, 381, 381, 381, 381, 382, 382, 383, 383, 384, +- 385, 385, 386, 386, 386, 387, 387, 387, 387, 387, +- 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, +- 387, 387, 387, 388, 388, 389, 390, 390, 390, 391, +- 391, 391, 391, 391, 391, 391, 392, 391, 391, 391, +- 393, 391, 391, 391, 391, 391, 391, 394, 395, 395, +- 396, 396, 396, 396, 396, 397, 397, 398, 398, 399, +- 399, 399, 399, 400, 400, 401, 401, 402, 402, 402, +- 403, 403, 403, 403, 403, 403, 403, 404, 404, 404, +- 404, 404, 404, 405, 405, 405, 405, 406, 406, 407, +- 407, 407, 407, 407, 407, 408, 408, 408, 408, 409, +- 409, 410, 410, 410, 410, 410, 410, 410, 411, 411, +- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, +- 411, 411, 411, 411, 411, 411, 411, 411, 411, 412, +- 413, 413, 413, 413, 413, 413, 413, 413, 413, 414, +- 415, 415, 415, 416, 417, 417, 417, 417, 417, 417, +- 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, +- 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, +- 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, +- 417, 417, 417, 418, 419, 419, 419, 419, 419, 420, +- 421, 422, 423, 424, 425, 426, 426, 427, 427, 427, +- 428, 428, 429, 429, 430, 430, 431, 432 ++ 0, 134, 135, 135, 137, 138, 136, 136, 139, 139, ++ 139, 140, 140, 141, 141, 142, 142, 144, 143, 143, ++ 143, 145, 146, 147, 146, 146, 149, 150, 148, 148, ++ 148, 151, 148, 152, 153, 148, 154, 148, 156, 157, ++ 155, 159, 158, 161, 160, 162, 162, 163, 164, 165, ++ 165, 166, 166, 167, 167, 167, 168, 168, 169, 170, ++ 169, 169, 172, 173, 171, 174, 174, 174, 174, 176, ++ 175, 178, 177, 180, 179, 181, 181, 182, 181, 181, ++ 183, 183, 184, 185, 185, 185, 185, 185, 186, 186, ++ 187, 187, 187, 187, 187, 188, 189, 189, 190, 190, ++ 190, 191, 192, 192, 192, 192, 192, 193, 193, 193, ++ 194, 194, 195, 195, 196, 197, 198, 197, 199, 200, ++ 200, 200, 202, 201, 203, 203, 203, 204, 205, 205, ++ 206, 206, 206, 207, 207, 208, 208, 208, 208, 208, ++ 209, 210, 210, 210, 210, 210, 210, 211, 211, 212, ++ 212, 213, 214, 214, 214, 215, 215, 216, 216, 216, ++ 216, 216, 216, 217, 218, 217, 217, 219, 217, 220, ++ 220, 221, 221, 221, 221, 221, 222, 223, 223, 224, ++ 225, 226, 226, 227, 227, 227, 227, 227, 227, 227, ++ 227, 227, 228, 229, 230, 231, 231, 232, 232, 233, ++ 233, 233, 233, 233, 234, 234, 235, 235, 236, 236, ++ 236, 236, 236, 237, 237, 238, 238, 238, 238, 239, ++ 239, 239, 240, 240, 241, 241, 241, 241, 241, 242, ++ 243, 243, 243, 243, 243, 244, 244, 245, 245, 246, ++ 247, 247, 248, 249, 249, 250, 250, 250, 250, 251, ++ 251, 251, 251, 251, 252, 253, 254, 254, 254, 254, ++ 255, 256, 256, 257, 257, 257, 257, 257, 258, 259, ++ 259, 259, 259, 259, 260, 260, 260, 260, 261, 262, ++ 262, 263, 263, 263, 264, 264, 264, 265, 265, 265, ++ 266, 266, 266, 266, 266, 266, 266, 266, 266, 267, ++ 267, 269, 268, 268, 270, 270, 271, 271, 272, 271, ++ 273, 273, 274, 274, 275, 276, 276, 277, 277, 277, ++ 277, 277, 277, 278, 278, 278, 279, 279, 279, 280, ++ 281, 280, 280, 283, 282, 284, 284, 284, 285, 286, ++ 286, 286, 286, 286, 286, 287, 287, 287, 288, 288, ++ 289, 289, 290, 290, 291, 291, 291, 292, 293, 293, ++ 293, 293, 294, 295, 296, 297, 295, 298, 298, 299, ++ 299, 299, 300, 300, 300, 300, 301, 301, 302, 303, ++ 303, 304, 303, 303, 303, 303, 303, 303, 305, 305, ++ 305, 306, 306, 307, 307, 308, 308, 309, 309, 310, ++ 310, 310, 311, 311, 311, 312, 312, 312, 312, 312, ++ 312, 313, 313, 313, 313, 314, 314, 314, 314, 314, ++ 315, 315, 316, 316, 317, 317, 318, 318, 318, 318, ++ 319, 319, 320, 320, 321, 321, 321, 321, 322, 323, ++ 324, 324, 325, 326, 326, 327, 328, 328, 329, 329, ++ 329, 329, 330, 330, 330, 330, 330, 330, 330, 330, ++ 330, 330, 330, 331, 332, 333, 334, 334, 334, 334, ++ 334, 335, 335, 337, 336, 338, 339, 338, 341, 342, ++ 340, 343, 343, 344, 344, 345, 345, 345, 345, 345, ++ 347, 346, 349, 350, 348, 352, 353, 351, 355, 354, ++ 356, 354, 357, 357, 357, 359, 358, 360, 360, 361, ++ 361, 362, 362, 363, 363, 363, 363, 363, 363, 363, ++ 363, 364, 365, 366, 365, 367, 367, 367, 367, 368, ++ 368, 368, 368, 369, 369, 369, 370, 370, 370, 370, ++ 371, 371, 372, 372, 373, 373, 374, 375, 375, 376, ++ 377, 378, 379, 379, 380, 380, 380, 380, 381, 380, ++ 382, 380, 383, 383, 383, 384, 383, 385, 383, 386, ++ 386, 386, 386, 386, 386, 387, 387, 387, 387, 387, ++ 387, 387, 388, 388, 389, 389, 390, 391, 391, 392, ++ 392, 392, 393, 393, 393, 393, 393, 393, 393, 393, ++ 393, 393, 393, 393, 393, 393, 393, 393, 393, 393, ++ 394, 394, 395, 396, 396, 396, 397, 397, 398, 398, ++ 398, 398, 398, 398, 398, 399, 398, 398, 398, 400, ++ 398, 398, 398, 398, 398, 398, 401, 402, 402, 403, ++ 403, 403, 403, 403, 404, 404, 405, 405, 406, 406, ++ 406, 406, 407, 407, 408, 408, 409, 409, 409, 410, ++ 410, 410, 410, 410, 410, 410, 411, 411, 411, 411, ++ 411, 411, 412, 412, 412, 412, 413, 413, 414, 414, ++ 414, 414, 414, 414, 415, 415, 415, 415, 416, 416, ++ 417, 417, 417, 417, 417, 417, 417, 418, 418, 418, ++ 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, ++ 418, 418, 418, 418, 418, 418, 418, 418, 419, 420, ++ 420, 420, 420, 420, 420, 420, 420, 420, 421, 422, ++ 422, 422, 423, 424, 424, 424, 424, 424, 424, 424, ++ 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, ++ 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, ++ 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, ++ 424, 424, 425, 426, 426, 426, 426, 426, 427, 428, ++ 429, 430, 431, 432, 433, 433, 434, 434, 434, 435, ++ 435, 436, 436, 437, 437, 438, 439 + }; + + /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ +@@ -1094,71 +1115,71 @@ + 4, 0, 2, 1, 1, 0, 2, 0, 2, 3, + 1, 2, 2, 0, 4, 2, 0, 0, 12, 1, + 1, 0, 3, 0, 0, 9, 0, 6, 0, 0, +- 8, 0, 7, 0, 7, 0, 3, 1, 3, 1, ++ 8, 0, 7, 0, 7, 0, 4, 1, 3, 1, + 2, 0, 2, 1, 1, 1, 0, 2, 1, 0, + 2, 1, 0, 0, 6, 0, 2, 1, 1, 0, + 6, 0, 6, 0, 2, 2, 2, 0, 5, 1, + 1, 3, 1, 1, 3, 3, 3, 2, 1, 3, + 1, 3, 1, 3, 3, 3, 0, 1, 3, 1, + 4, 1, 1, 3, 1, 3, 3, 2, 3, 3, +- 1, 2, 0, 0, 4, 1, 3, 3, 3, 1, +- 3, 3, 4, 0, 1, 1, 3, 4, 1, 2, +- 1, 3, 1, 3, 3, 2, 1, 3, 1, 3, +- 3, 2, 1, 1, 1, 1, 1, 1, 2, 1, +- 4, 8, 1, 3, 1, 3, 3, 2, 5, 0, +- 6, 3, 0, 9, 3, 3, 1, 3, 3, 3, +- 2, 3, 1, 2, 1, 2, 1, 2, 1, 2, +- 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, +- 3, 3, 1, 3, 1, 3, 3, 1, 1, 3, +- 3, 1, 3, 3, 3, 2, 3, 4, 2, 2, +- 2, 3, 1, 1, 1, 2, 3, 1, 1, 1, +- 1, 1, 6, 1, 3, 3, 2, 1, 1, 1, +- 1, 4, 1, 1, 3, 3, 3, 3, 0, 2, +- 3, 1, 1, 3, 3, 3, 2, 3, 6, 3, +- 3, 1, 1, 1, 0, 5, 1, 3, 3, 1, +- 2, 5, 1, 3, 3, 3, 2, 1, 3, 3, +- 3, 3, 1, 1, 1, 3, 3, 1, 2, 1, +- 1, 2, 3, 3, 3, 5, 3, 3, 1, 2, +- 1, 1, 1, 2, 0, 8, 1, 1, 3, 1, +- 2, 0, 5, 1, 3, 2, 1, 4, 1, 3, +- 1, 1, 1, 3, 4, 6, 1, 1, 1, 1, +- 2, 2, 1, 0, 3, 2, 0, 2, 1, 1, +- 3, 1, 1, 3, 1, 1, 1, 1, 3, 3, +- 3, 1, 1, 1, 1, 3, 3, 1, 3, 3, +- 3, 1, 1, 2, 2, 3, 3, 0, 0, 8, +- 1, 1, 3, 5, 5, 5, 7, 5, 5, 1, +- 1, 3, 2, 3, 0, 6, 6, 6, 3, 2, +- 2, 1, 3, 3, 1, 1, 1, 1, 1, 2, +- 1, 0, 1, 2, 1, 1, 2, 1, 1, 2, +- 3, 3, 5, 3, 1, 3, 3, 3, 3, 4, +- 4, 3, 1, 3, 5, 1, 1, 0, 2, 1, +- 1, 1, 1, 6, 7, 1, 1, 1, 3, 3, +- 3, 5, 3, 1, 1, 5, 1, 3, 0, 1, +- 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, +- 1, 1, 1, 1, 1, 2, 2, 2, 4, 1, +- 3, 1, 3, 3, 1, 3, 0, 5, 1, 0, +- 4, 0, 0, 9, 0, 4, 1, 1, 1, 3, +- 1, 3, 3, 0, 6, 0, 0, 8, 0, 0, +- 8, 0, 11, 0, 9, 1, 1, 1, 0, 3, +- 1, 2, 1, 2, 1, 1, 2, 1, 4, 2, +- 4, 5, 1, 2, 3, 1, 0, 4, 1, 3, +- 1, 3, 1, 3, 3, 3, 1, 3, 5, 5, +- 7, 9, 11, 0, 1, 1, 1, 1, 3, 4, +- 1, 3, 1, 1, 1, 3, 1, 1, 2, 3, +- 3, 0, 4, 0, 4, 1, 3, 3, 0, 4, +- 0, 4, 1, 3, 3, 3, 3, 3, 2, 2, +- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, +- 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, ++ 1, 3, 1, 2, 0, 0, 0, 4, 2, 1, ++ 3, 3, 0, 4, 1, 3, 3, 4, 0, 1, ++ 1, 3, 4, 1, 2, 1, 3, 1, 3, 3, ++ 2, 1, 3, 1, 3, 3, 2, 1, 1, 1, ++ 1, 1, 1, 2, 1, 4, 8, 1, 3, 1, ++ 3, 3, 2, 5, 0, 6, 3, 0, 9, 3, ++ 3, 1, 3, 3, 3, 2, 3, 1, 2, 1, ++ 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, ++ 1, 2, 1, 1, 1, 1, 3, 3, 3, 1, ++ 3, 1, 3, 3, 1, 1, 3, 3, 1, 3, ++ 3, 3, 2, 3, 4, 2, 2, 2, 3, 1, ++ 1, 1, 2, 3, 1, 1, 1, 1, 1, 6, ++ 1, 3, 3, 2, 1, 1, 1, 1, 4, 1, ++ 1, 3, 3, 3, 3, 0, 2, 3, 1, 1, ++ 3, 3, 3, 2, 3, 6, 3, 3, 1, 1, ++ 1, 0, 5, 1, 3, 3, 1, 2, 5, 1, ++ 3, 3, 3, 2, 1, 3, 3, 3, 3, 1, ++ 1, 1, 3, 3, 1, 2, 1, 1, 2, 3, ++ 3, 3, 5, 3, 3, 1, 2, 1, 1, 1, ++ 2, 0, 8, 1, 1, 3, 1, 2, 0, 5, ++ 1, 3, 2, 1, 4, 1, 3, 1, 1, 1, ++ 3, 4, 6, 1, 1, 1, 1, 2, 2, 1, ++ 0, 3, 2, 0, 2, 1, 1, 3, 1, 1, ++ 3, 1, 1, 1, 1, 3, 3, 3, 1, 1, ++ 1, 1, 3, 3, 1, 3, 3, 3, 1, 1, ++ 2, 2, 3, 3, 0, 0, 9, 1, 1, 3, ++ 5, 5, 5, 7, 5, 5, 1, 1, 3, 2, ++ 3, 0, 6, 6, 6, 3, 2, 2, 1, 3, ++ 3, 1, 1, 1, 1, 1, 2, 1, 0, 1, ++ 2, 1, 1, 2, 1, 1, 2, 3, 3, 5, ++ 3, 1, 3, 3, 3, 3, 4, 4, 3, 1, ++ 3, 5, 1, 1, 0, 2, 1, 1, 1, 1, ++ 6, 7, 1, 1, 1, 3, 3, 3, 5, 3, ++ 1, 1, 5, 1, 3, 0, 1, 1, 1, 2, ++ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 2, 2, 2, 4, 1, 3, 1, 3, ++ 3, 1, 3, 0, 5, 1, 0, 4, 0, 0, ++ 9, 0, 4, 1, 1, 1, 3, 1, 3, 3, ++ 0, 6, 0, 0, 8, 0, 0, 8, 0, 11, ++ 0, 9, 1, 1, 1, 0, 3, 1, 2, 1, ++ 2, 1, 1, 2, 1, 4, 2, 4, 5, 1, ++ 2, 3, 1, 0, 4, 1, 3, 1, 3, 1, ++ 3, 3, 3, 1, 3, 5, 5, 7, 9, 11, ++ 0, 1, 1, 1, 1, 3, 4, 1, 3, 1, ++ 1, 1, 3, 1, 1, 2, 3, 3, 0, 4, ++ 0, 4, 1, 3, 3, 0, 4, 0, 4, 1, ++ 3, 3, 3, 3, 3, 2, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, +- 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, +- 2, 3, 3, 2, 4, 3, 0, 5, 4, 4, +- 0, 5, 4, 4, 2, 4, 5, 3, 1, 1, +- 1, 3, 1, 3, 3, 1, 3, 2, 3, 1, +- 3, 3, 3, 1, 3, 1, 1, 1, 1, 1, ++ 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, +- 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, +- 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, ++ 1, 2, 1, 2, 1, 1, 1, 3, 1, 2, ++ 3, 3, 2, 4, 3, 0, 5, 4, 4, 0, ++ 5, 4, 4, 2, 4, 5, 3, 1, 1, 1, ++ 3, 1, 3, 3, 1, 3, 2, 3, 1, 3, ++ 3, 3, 1, 3, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, +@@ -1167,8 +1188,9 @@ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, +- 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, +- 1, 1, 1, 1, 1, 1, 0, 1 ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, ++ 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 0, 1 + }; + + /* YYDPREC[RULE-NUM] -- Dynamic precedence of rule #RULE-NUM (0 if none). */ +@@ -1252,7 +1274,8 @@ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0 ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0 + }; + + /* YYMERGER[RULE-NUM] -- Index of merging function for rule #RULE-NUM. */ +@@ -1336,7 +1359,8 @@ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0 ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0 + }; + + /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE +@@ -1344,1179 +1368,1212 @@ + error. */ + static const unsigned short yydefact[] = + { +- 8, 0, 0, 47, 0, 3, 786, 7, 29, 30, +- 0, 786, 717, 712, 711, 714, 718, 740, 741, 742, +- 743, 744, 722, 745, 713, 726, 748, 727, 715, 749, +- 716, 750, 728, 751, 752, 754, 753, 755, 756, 757, +- 758, 759, 760, 761, 762, 721, 746, 747, 735, 736, +- 738, 739, 737, 734, 724, 731, 732, 729, 733, 730, +- 769, 786, 709, 710, 720, 723, 725, 0, 1, 0, +- 4, 0, 49, 0, 786, 0, 0, 80, 0, 786, +- 786, 112, 50, 32, 0, 0, 38, 36, 0, 0, +- 0, 83, 10, 9, 0, 311, 0, 308, 312, 310, +- 11, 0, 0, 43, 786, 0, 62, 786, 783, 782, +- 81, 87, 0, 26, 786, 307, 781, 0, 780, 0, +- 17, 0, 62, 39, 41, 0, 0, 112, 48, 85, +- 86, 84, 112, 309, 232, 572, 649, 766, 767, 0, +- 768, 0, 620, 0, 0, 764, 786, 0, 607, 577, +- 578, 582, 576, 583, 647, 648, 0, 0, 0, 0, +- 645, 646, 0, 0, 546, 547, 555, 562, 571, 575, +- 570, 603, 579, 0, 574, 608, 0, 573, 0, 0, +- 609, 763, 765, 313, 763, 0, 0, 0, 0, 0, +- 0, 0, 0, 12, 14, 772, 13, 20, 0, 360, +- 361, 0, 115, 123, 0, 0, 0, 34, 785, 784, +- 37, 56, 51, 610, 0, 0, 0, 0, 606, 0, +- 515, 0, 0, 637, 643, 0, 639, 569, 585, 589, +- 590, 586, 591, 588, 592, 593, 601, 602, 587, 594, +- 595, 596, 597, 598, 599, 600, 584, 0, 314, 656, +- 551, 668, 661, 658, 660, 662, 650, 652, 651, 663, +- 664, 665, 666, 657, 659, 654, 653, 655, 0, 0, +- 0, 553, 558, 671, 672, 680, 673, 674, 675, 676, +- 677, 678, 669, 670, 0, 0, 560, 0, 0, 0, +- 0, 0, 604, 778, 0, 779, 777, 0, 613, 616, +- 0, 624, 548, 568, 0, 704, 694, 697, 695, 705, +- 689, 691, 706, 701, 702, 703, 696, 688, 690, 692, +- 693, 698, 700, 786, 708, 707, 387, 386, 699, 0, +- 0, 0, 119, 786, 138, 146, 0, 136, 142, 143, +- 786, 770, 0, 18, 0, 786, 0, 114, 124, 786, +- 44, 0, 92, 0, 90, 96, 62, 59, 772, 605, +- 0, 0, 522, 526, 629, 605, 627, 0, 0, 612, +- 0, 0, 0, 638, 0, 667, 0, 545, 549, 550, +- 0, 679, 0, 556, 557, 0, 567, 189, 566, 563, +- 564, 565, 632, 635, 0, 630, 611, 615, 0, 520, +- 516, 0, 518, 0, 0, 786, 398, 0, 0, 0, +- 118, 0, 0, 391, 141, 19, 0, 0, 362, 438, +- 6, 23, 0, 0, 21, 356, 357, 381, 117, 116, +- 0, 0, 786, 125, 40, 0, 0, 0, 97, 0, +- 57, 772, 65, 58, 61, 0, 0, 54, 45, 52, +- 53, 55, 0, 622, 0, 0, 0, 619, 0, 0, +- 623, 644, 641, 642, 640, 618, 552, 554, 559, 561, +- 0, 0, 0, 614, 0, 0, 0, 625, 315, 0, +- 0, 0, 0, 774, 0, 399, 0, 0, 404, 412, +- 0, 416, 415, 0, 392, 0, 394, 786, 786, 121, +- 120, 786, 0, 0, 390, 388, 139, 140, 137, 786, +- 682, 0, 0, 0, 0, 684, 683, 485, 0, 488, +- 0, 533, 686, 687, 685, 0, 512, 681, 507, 0, +- 0, 144, 445, 771, 439, 436, 440, 444, 441, 438, +- 449, 468, 450, 451, 452, 453, 454, 446, 498, 447, +- 0, 448, 500, 786, 763, 0, 296, 773, 0, 292, +- 88, 149, 22, 147, 773, 786, 384, 0, 385, 0, +- 0, 0, 0, 15, 786, 0, 0, 132, 0, 130, +- 786, 0, 122, 128, 93, 94, 91, 51, 101, 0, +- 95, 99, 35, 60, 0, 0, 67, 68, 786, 786, +- 11, 0, 786, 621, 524, 525, 523, 527, 517, 636, +- 633, 634, 631, 617, 626, 521, 519, 403, 786, 786, +- 417, 401, 0, 786, 0, 400, 0, 0, 787, 0, +- 364, 395, 397, 393, 368, 367, 391, 363, 389, 365, +- 0, 0, 605, 455, 145, 0, 543, 770, 457, 770, +- 461, 0, 459, 464, 544, 534, 0, 0, 513, 0, +- 501, 456, 438, 0, 442, 443, 469, 786, 0, 509, +- 506, 154, 0, 152, 0, 719, 773, 0, 0, 293, +- 148, 0, 0, 581, 0, 580, 372, 0, 379, 380, +- 382, 17, 371, 383, 0, 0, 0, 126, 0, 135, +- 110, 129, 772, 104, 0, 102, 786, 0, 0, 0, +- 0, 64, 0, 66, 17, 0, 355, 370, 369, 0, +- 391, 413, 0, 411, 0, 187, 0, 0, 433, 434, +- 420, 408, 421, 422, 419, 406, 407, 0, 405, 417, +- 0, 396, 188, 0, 471, 0, 504, 0, 505, 466, +- 438, 0, 0, 438, 0, 0, 0, 514, 0, 437, +- 435, 438, 499, 0, 502, 786, 0, 157, 0, 0, +- 0, 0, 89, 772, 772, 0, 542, 374, 373, 378, +- 16, 0, 127, 133, 134, 131, 111, 42, 0, 0, +- 98, 0, 107, 786, 0, 69, 71, 73, 73, 79, +- 46, 28, 528, 0, 418, 0, 0, 0, 0, 402, +- 410, 409, 366, 0, 493, 0, 438, 0, 489, 462, +- 458, 463, 460, 465, 0, 783, 508, 470, 503, 0, +- 510, 155, 156, 153, 0, 0, 0, 166, 161, 159, +- 772, 294, 172, 0, 0, 150, 0, 0, 786, 0, +- 105, 106, 103, 108, 109, 100, 438, 438, 75, 438, +- 76, 414, 432, 0, 427, 0, 271, 0, 480, 0, +- 262, 0, 478, 0, 0, 497, 496, 495, 0, 467, +- 486, 0, 529, 786, 511, 165, 0, 170, 0, 164, +- 772, 786, 786, 786, 173, 0, 232, 786, 786, 0, +- 0, 0, 0, 583, 0, 779, 777, 175, 176, 0, +- 178, 188, 182, 197, 198, 183, 184, 185, 217, 218, +- 230, 219, 220, 181, 0, 763, 0, 221, 326, 0, +- 0, 0, 359, 0, 0, 74, 77, 0, 0, 0, +- 0, 0, 266, 0, 483, 0, 0, 472, 0, 0, +- 770, 491, 0, 438, 0, 536, 537, 0, 535, 171, +- 168, 169, 167, 786, 273, 0, 272, 316, 318, 317, +- 0, 158, 319, 0, 322, 786, 0, 0, 0, 233, +- 0, 215, 0, 0, 0, 0, 0, 242, 241, 772, +- 177, 179, 210, 213, 214, 212, 0, 766, 767, 749, +- 768, 735, 736, 739, 737, 764, 786, 733, 607, 0, +- 201, 765, 208, 214, 585, 209, 186, 0, 0, 0, +- 180, 0, 0, 786, 0, 375, 376, 377, 70, 72, +- 438, 429, 430, 428, 0, 0, 0, 265, 264, 263, +- 770, 481, 482, 479, 474, 269, 270, 268, 438, 0, +- 771, 771, 530, 786, 0, 0, 160, 786, 321, 320, +- 325, 0, 0, 297, 227, 0, 229, 228, 0, 223, +- 0, 772, 216, 237, 253, 0, 252, 0, 763, 772, +- 236, 246, 0, 239, 235, 174, 200, 205, 0, 199, +- 0, 194, 0, 192, 0, 206, 211, 0, 303, 0, +- 0, 327, 328, 329, 331, 78, 0, 425, 426, 423, +- 0, 0, 438, 476, 477, 0, 770, 771, 770, 487, +- 490, 0, 538, 0, 0, 0, 274, 324, 295, 226, +- 0, 0, 234, 231, 0, 0, 247, 244, 245, 243, +- 240, 203, 204, 202, 207, 0, 0, 190, 191, 151, +- 337, 0, 343, 0, 0, 0, 329, 344, 0, 331, +- 575, 0, 0, 351, 332, 0, 0, 347, 431, 424, +- 771, 473, 438, 494, 438, 531, 0, 539, 0, 0, +- 279, 0, 277, 280, 786, 0, 298, 299, 306, 225, +- 224, 772, 259, 0, 256, 0, 249, 250, 195, 196, +- 193, 304, 0, 330, 0, 341, 342, 0, 0, 0, +- 575, 575, 346, 0, 0, 345, 484, 771, 771, 0, +- 540, 276, 275, 163, 712, 711, 0, 0, 741, 722, +- 761, 281, 0, 278, 291, 300, 305, 222, 260, 776, +- 254, 0, 330, 340, 344, 339, 338, 350, 349, 352, +- 0, 0, 348, 475, 492, 0, 532, 786, 786, 786, +- 786, 289, 772, 282, 301, 258, 257, 248, 0, 238, +- 354, 353, 541, 287, 286, 391, 284, 283, 0, 238, +- 0, 0, 302, 0, 261, 285, 775, 776, 255 ++ 8, 0, 0, 47, 0, 3, 795, 7, 29, 30, ++ 0, 795, 726, 721, 720, 723, 725, 727, 749, 750, ++ 751, 752, 753, 731, 754, 722, 735, 757, 736, 724, ++ 758, 759, 737, 760, 761, 763, 762, 764, 765, 766, ++ 767, 768, 769, 770, 771, 730, 755, 756, 744, 745, ++ 747, 748, 746, 743, 733, 740, 741, 738, 742, 739, ++ 778, 795, 718, 719, 729, 732, 734, 0, 1, 0, ++ 4, 0, 49, 0, 795, 0, 0, 80, 0, 795, ++ 795, 114, 50, 32, 0, 0, 38, 36, 0, 0, ++ 0, 83, 10, 9, 0, 318, 0, 315, 319, 317, ++ 115, 11, 0, 43, 795, 0, 62, 795, 792, 791, ++ 81, 87, 0, 26, 795, 314, 790, 0, 789, 0, ++ 116, 118, 17, 62, 39, 41, 0, 0, 114, 48, ++ 85, 86, 84, 114, 316, 239, 579, 658, 775, 776, ++ 0, 777, 0, 629, 0, 0, 773, 795, 0, 614, ++ 584, 585, 589, 583, 590, 656, 657, 0, 0, 0, ++ 0, 654, 655, 0, 0, 553, 554, 562, 569, 578, ++ 582, 577, 610, 586, 0, 581, 618, 615, 0, 580, ++ 0, 0, 616, 772, 774, 320, 772, 0, 0, 0, ++ 0, 122, 0, 0, 0, 0, 12, 14, 781, 13, ++ 20, 0, 367, 368, 0, 0, 0, 34, 794, 793, ++ 37, 56, 51, 619, 0, 0, 0, 0, 613, 0, ++ 522, 0, 0, 646, 652, 0, 648, 576, 594, 592, ++ 596, 597, 593, 598, 595, 599, 600, 608, 609, 601, ++ 602, 603, 604, 605, 606, 607, 591, 0, 321, 665, ++ 558, 677, 670, 667, 669, 671, 659, 661, 660, 672, ++ 673, 674, 675, 666, 668, 663, 662, 664, 0, 0, ++ 0, 560, 565, 680, 681, 689, 682, 683, 684, 685, ++ 686, 687, 678, 679, 0, 0, 567, 0, 0, 0, ++ 0, 0, 611, 0, 787, 0, 788, 786, 622, 625, ++ 0, 633, 555, 575, 0, 0, 0, 119, 128, 713, ++ 703, 706, 704, 714, 698, 700, 715, 710, 711, 712, ++ 705, 697, 699, 701, 702, 707, 709, 795, 717, 716, ++ 394, 393, 708, 0, 0, 0, 795, 143, 151, 0, ++ 141, 147, 148, 795, 779, 0, 18, 0, 795, 44, ++ 0, 92, 0, 90, 96, 62, 59, 781, 612, 0, ++ 0, 529, 533, 638, 612, 636, 0, 0, 621, 0, ++ 0, 0, 647, 0, 676, 0, 552, 556, 557, 0, ++ 688, 0, 563, 564, 0, 574, 194, 195, 573, 570, ++ 571, 572, 620, 641, 644, 0, 639, 624, 0, 527, ++ 523, 0, 525, 617, 0, 0, 117, 129, 795, 0, ++ 795, 405, 0, 0, 0, 124, 0, 398, 146, 19, ++ 0, 0, 369, 445, 6, 23, 0, 0, 21, 363, ++ 364, 388, 40, 0, 0, 0, 97, 0, 57, 781, ++ 65, 58, 61, 0, 0, 54, 45, 52, 53, 55, ++ 0, 631, 0, 0, 0, 628, 0, 0, 632, 653, ++ 650, 651, 649, 627, 559, 561, 566, 568, 0, 0, ++ 0, 0, 623, 0, 0, 0, 634, 322, 121, 120, ++ 0, 0, 795, 130, 0, 0, 0, 0, 783, 0, ++ 406, 0, 0, 411, 419, 0, 423, 422, 0, 399, ++ 0, 401, 795, 795, 0, 123, 0, 795, 0, 0, ++ 397, 395, 144, 145, 142, 795, 691, 0, 0, 0, ++ 0, 693, 692, 492, 0, 495, 0, 540, 695, 696, ++ 694, 0, 519, 690, 514, 0, 0, 149, 452, 780, ++ 446, 443, 447, 451, 448, 445, 456, 475, 457, 458, ++ 459, 460, 461, 453, 505, 454, 0, 455, 507, 795, ++ 772, 0, 303, 782, 0, 299, 88, 154, 22, 152, ++ 782, 795, 391, 0, 392, 0, 0, 0, 0, 115, ++ 795, 0, 93, 94, 91, 51, 101, 0, 95, 99, ++ 35, 60, 0, 0, 67, 68, 795, 795, 115, 0, ++ 795, 630, 531, 532, 530, 534, 524, 196, 645, 642, ++ 643, 640, 626, 635, 528, 526, 0, 137, 0, 135, ++ 795, 0, 127, 133, 410, 795, 795, 424, 408, 0, ++ 795, 0, 407, 0, 0, 796, 0, 371, 402, 404, ++ 400, 375, 374, 126, 125, 398, 370, 396, 372, 0, ++ 0, 612, 462, 150, 0, 550, 779, 464, 779, 468, ++ 0, 466, 471, 551, 541, 0, 0, 520, 0, 508, ++ 463, 445, 0, 449, 450, 476, 795, 0, 516, 513, ++ 159, 0, 157, 0, 728, 782, 0, 0, 300, 153, ++ 0, 0, 588, 0, 587, 379, 0, 386, 387, 389, ++ 15, 378, 390, 781, 104, 0, 102, 795, 110, 0, ++ 0, 0, 0, 64, 0, 66, 11, 0, 362, 377, ++ 376, 0, 0, 0, 0, 131, 0, 140, 112, 134, ++ 398, 420, 0, 418, 0, 192, 0, 0, 440, 441, ++ 427, 415, 428, 429, 426, 413, 414, 0, 412, 424, ++ 0, 403, 193, 0, 478, 0, 511, 0, 512, 473, ++ 445, 0, 0, 445, 0, 0, 0, 521, 0, 444, ++ 442, 445, 506, 0, 509, 795, 0, 162, 0, 0, ++ 0, 0, 89, 781, 781, 0, 549, 381, 380, 385, ++ 17, 42, 0, 0, 98, 0, 107, 0, 795, 0, ++ 69, 71, 17, 28, 535, 132, 138, 139, 136, 113, ++ 0, 425, 0, 0, 0, 0, 409, 417, 416, 373, ++ 0, 500, 0, 445, 0, 496, 469, 465, 470, 467, ++ 472, 0, 792, 515, 477, 510, 0, 517, 160, 161, ++ 158, 0, 0, 0, 171, 166, 164, 781, 301, 177, ++ 0, 0, 155, 0, 0, 795, 16, 0, 105, 106, ++ 103, 108, 111, 109, 100, 445, 445, 73, 73, 79, ++ 46, 421, 439, 0, 434, 0, 278, 0, 487, 0, ++ 269, 0, 485, 0, 0, 504, 503, 502, 0, 474, ++ 493, 0, 536, 795, 518, 170, 0, 175, 0, 169, ++ 781, 795, 795, 795, 178, 0, 239, 795, 795, 0, ++ 0, 0, 0, 590, 0, 788, 786, 180, 181, 0, ++ 183, 193, 187, 204, 205, 188, 189, 190, 224, 225, ++ 237, 226, 227, 186, 0, 772, 0, 228, 333, 0, ++ 0, 0, 0, 0, 0, 76, 445, 75, 0, 0, ++ 0, 0, 0, 273, 0, 490, 0, 0, 479, 0, ++ 0, 779, 498, 0, 445, 0, 543, 544, 0, 542, ++ 176, 173, 174, 172, 795, 280, 0, 279, 323, 325, ++ 324, 0, 163, 326, 0, 329, 795, 0, 0, 0, ++ 240, 0, 222, 0, 0, 0, 0, 0, 249, 248, ++ 781, 182, 184, 217, 220, 221, 219, 0, 735, 736, ++ 758, 737, 744, 745, 748, 746, 733, 795, 742, 614, ++ 0, 208, 734, 215, 221, 592, 216, 191, 0, 0, ++ 0, 185, 0, 0, 0, 795, 0, 382, 383, 384, ++ 366, 70, 72, 77, 74, 436, 437, 435, 0, 0, ++ 0, 272, 271, 270, 779, 488, 489, 486, 481, 276, ++ 277, 275, 445, 0, 780, 780, 537, 795, 0, 0, ++ 165, 795, 328, 327, 332, 0, 0, 304, 234, 0, ++ 236, 235, 0, 230, 0, 781, 223, 244, 260, 0, ++ 259, 0, 772, 781, 243, 253, 0, 246, 242, 179, ++ 207, 212, 0, 206, 0, 201, 0, 199, 0, 213, ++ 218, 0, 310, 0, 0, 334, 335, 336, 338, 445, ++ 0, 432, 433, 430, 0, 0, 445, 483, 484, 0, ++ 779, 780, 779, 494, 497, 0, 545, 0, 0, 0, ++ 281, 331, 302, 233, 0, 0, 241, 238, 0, 0, ++ 254, 251, 252, 250, 247, 210, 211, 209, 214, 0, ++ 0, 197, 198, 156, 344, 0, 350, 0, 0, 0, ++ 336, 351, 0, 338, 582, 0, 0, 358, 339, 0, ++ 0, 354, 78, 438, 431, 780, 480, 445, 501, 445, ++ 538, 0, 546, 0, 0, 286, 0, 284, 287, 795, ++ 0, 305, 306, 313, 232, 231, 781, 266, 0, 263, ++ 0, 256, 257, 202, 203, 200, 311, 0, 337, 0, ++ 348, 349, 0, 0, 0, 582, 582, 353, 0, 0, ++ 352, 491, 780, 780, 0, 547, 283, 282, 168, 721, ++ 720, 0, 0, 750, 731, 770, 288, 0, 285, 298, ++ 307, 312, 229, 267, 785, 261, 0, 337, 347, 351, ++ 346, 345, 357, 356, 359, 0, 0, 355, 482, 499, ++ 0, 539, 795, 795, 795, 795, 296, 781, 289, 308, ++ 265, 264, 255, 0, 245, 361, 360, 548, 294, 293, ++ 398, 291, 290, 0, 245, 0, 0, 309, 0, 268, ++ 292, 784, 785, 262 + }; + + /* YYPDEFGOTO[NTERM-NUM]. */ + static const short yydefgoto[] = + { +- -1, 4, 5, 81, 192, 6, 120, 193, 691, 194, +- 195, 447, 424, 555, 7, 132, 448, 73, 105, 356, +- 106, 8, 104, 205, 125, 206, 9, 122, 601, 10, +- 87, 70, 358, 449, 357, 440, 441, 126, 127, 442, +- 595, 596, 856, 597, 857, 858, 859, 800, 1030, 88, +- 984, 90, 557, 353, 354, 437, 590, 591, 704, 705, +- 699, 100, 101, 201, 196, 331, 202, 349, 432, 582, +- 578, 579, 336, 337, 530, 531, 562, 563, 672, 673, +- 890, 891, 770, 836, 837, 841, 1084, 1085, 907, 908, +- 1065, 910, 728, 1020, 1092, 1067, 913, 1009, 914, 915, +- 992, 993, 917, 918, 1068, 1069, 919, 162, 978, 921, +- 922, 985, 986, 987, 988, 1075, 1076, 1267, 1193, 1194, +- 869, 870, 730, 965, 1125, 1181, 1182, 1233, 558, 559, +- 893, 1062, 1186, 1278, 1097, 1187, 894, 96, 97, 970, +- 971, 975, 1061, 1023, 1024, 1152, 1102, 1153, 1154, 1207, +- 1155, 1103, 1166, 1244, 1158, 451, 197, 573, 781, 198, +- 199, 200, 716, 425, 574, 846, 426, 575, 323, 502, +- 503, 493, 630, 413, 487, 488, 489, 490, 723, 731, +- 732, 1109, 863, 864, 733, 734, 532, 533, 534, 535, +- 536, 537, 538, 539, 540, 651, 652, 541, 816, 542, +- 761, 543, 813, 1044, 1115, 1116, 871, 872, 1040, 544, +- 647, 952, 545, 649, 881, 546, 1049, 874, 878, 547, +- 667, 548, 762, 747, 549, 550, 218, 219, 401, 361, +- 362, 551, 656, 954, 955, 956, 1219, 873, 645, 653, +- 776, 164, 376, 380, 165, 382, 385, 166, 167, 168, +- 169, 170, 684, 171, 246, 172, 173, 174, 175, 398, +- 215, 176, 366, 394, 395, 177, 225, 226, 178, 179, +- 268, 269, 270, 271, 284, 285, 286, 553, 326, 91, +- 62, 674, 63, 64, 65, 180, 184, 182, 419, 663, +- 843, 678, 707, 947, 298, 504, 110, 210, 406, 632 ++ -1, 4, 5, 81, 195, 6, 122, 196, 790, 197, ++ 198, 445, 428, 561, 7, 133, 446, 73, 105, 355, ++ 106, 8, 104, 205, 126, 206, 9, 123, 599, 10, ++ 87, 70, 357, 447, 356, 438, 439, 127, 128, 440, ++ 593, 594, 865, 595, 866, 945, 946, 870, 1119, 88, ++ 995, 90, 563, 352, 353, 435, 588, 589, 705, 706, ++ 707, 727, 100, 121, 187, 101, 306, 199, 335, 414, ++ 307, 408, 482, 622, 618, 619, 339, 340, 536, 537, ++ 568, 569, 681, 682, 900, 901, 780, 843, 844, 848, ++ 1098, 1099, 917, 918, 1079, 920, 738, 386, 1031, 1106, ++ 1081, 923, 1020, 924, 925, 1003, 1004, 927, 928, 1082, ++ 1083, 929, 163, 989, 931, 932, 996, 997, 998, 999, ++ 1089, 1090, 1282, 1208, 1209, 879, 880, 740, 976, 1139, ++ 1196, 1197, 1248, 564, 565, 903, 1076, 1201, 1293, 1111, ++ 1202, 904, 96, 97, 981, 982, 986, 1075, 1035, 1036, ++ 1166, 1116, 1167, 1168, 1222, 1169, 1117, 1180, 1259, 1172, ++ 449, 200, 579, 857, 201, 202, 203, 718, 429, 580, ++ 853, 430, 581, 327, 508, 509, 498, 637, 417, 492, ++ 493, 494, 495, 733, 741, 742, 1123, 873, 874, 743, ++ 744, 538, 539, 540, 541, 542, 543, 544, 545, 546, ++ 660, 661, 547, 823, 548, 771, 549, 820, 1058, 1129, ++ 1130, 881, 882, 1054, 550, 656, 963, 551, 658, 891, ++ 552, 1063, 884, 888, 553, 676, 554, 772, 757, 555, ++ 556, 218, 219, 401, 360, 361, 557, 665, 965, 966, ++ 967, 1234, 883, 654, 662, 786, 165, 375, 379, 166, ++ 381, 384, 167, 168, 169, 170, 171, 693, 172, 246, ++ 173, 174, 175, 176, 177, 398, 215, 178, 365, 395, ++ 396, 179, 225, 226, 180, 181, 268, 269, 270, 271, ++ 284, 285, 286, 559, 330, 91, 62, 683, 63, 64, ++ 65, 182, 186, 184, 423, 672, 850, 687, 709, 958, ++ 298, 510, 110, 210, 411, 639 + }; + + /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +-#define YYPACT_NINF -1176 ++#define YYPACT_NINF -1081 + static const short yypact[] = + { +- 583, 6089, 7857, -1176, 165, -1176, 283, -1176, 275, -1176, +- 7857, 268, -1176, -1176, -1176, -1176, -1176, -1176, -1176, -1176, +- -1176, -1176, -1176, -1176, -1176, -1176, -1176, -1176, -1176, -1176, +- -1176, -1176, -1176, -1176, -1176, -1176, -1176, -1176, -1176, -1176, +- -1176, -1176, -1176, -1176, -1176, -1176, -1176, -1176, -1176, -1176, +- -1176, -1176, -1176, -1176, -1176, -1176, -1176, -1176, -1176, -1176, +- -1176, 268, -1176, -1176, -1176, -1176, -1176, 274, -1176, 288, +- -1176, 284, -1176, 335, 222, 7857, 333, -1176, 340, 283, +- 7607, 414, -1176, -1176, 7857, 352, -1176, 406, 389, 99, +- 236, -1176, -1176, -1176, 451, -1176, 108, -1176, 6, -1176, +- -1176, 481, 543, -1176, 268, 493, -1176, 283, -1176, -1176, +- -1176, 7857, 6179, -1176, 7607, -1176, -1176, 5282, -1176, 5282, +- 1017, 7857, -1176, -1176, -1176, 448, 66, 414, -1176, -1176, +- -1176, -1176, 414, -1176, -1176, -1176, -1176, -1176, -1176, 7857, +- -1176, 497, -1176, 504, 507, -1176, 512, 526, -1176, -1176, +- -1176, -1176, -1176, -1176, -1176, -1176, 5282, 5134, 2028, 1413, +- -1176, -1176, 532, 491, 1257, 604, 580, 14, -1176, -1176, +- -1176, -1176, 394, 840, 891, 538, 260, -1176, 2028, 2028, +- -1176, 556, -1176, -1176, -1176, 2132, 7857, 7857, 7857, 7857, +- 5909, 7857, 672, -1176, -1176, -1176, -1176, -1176, 573, -1176, +- -1176, 63, -1176, 608, 66, 493, 7090, -1176, -1176, -1176, +- -1176, -1176, -1176, -1176, 1390, 579, 5282, 1390, -1176, 591, +- -1176, 1390, 606, -1176, 611, 58, -1176, -1176, -1176, -1176, +- -1176, -1176, -1176, -1176, -1176, -1176, -1176, -1176, -1176, -1176, +- -1176, -1176, -1176, -1176, -1176, -1176, -1176, 5282, -1176, -1176, +- 718, -1176, -1176, -1176, -1176, -1176, -1176, -1176, -1176, -1176, +- -1176, -1176, -1176, -1176, -1176, -1176, -1176, -1176, 5282, 2028, +- 2028, -1176, 692, -1176, -1176, -1176, -1176, -1176, -1176, -1176, +- -1176, -1176, -1176, -1176, 2028, 2028, -1176, 886, 886, 2028, +- 2028, 2028, -1176, -1176, 3087, -1176, -1176, 7857, -1176, 617, +- 2851, -1176, 604, -1176, 5282, -1176, -1176, -1176, -1176, -1176, +- -1176, -1176, -1176, -1176, -1176, -1176, -1176, -1176, -1176, -1176, +- -1176, -1176, -1176, 624, -1176, -1176, -1176, -1176, -1176, 619, +- 622, 56, -1176, 177, -1176, -1176, 114, -1176, -1176, -1176, +- 344, -1176, 66, -1176, 561, -1176, 7857, 7857, -1176, 27, +- -1176, 66, -1176, 146, -1176, -3, -1176, 1063, 1250, 638, +- 5282, 138, -1176, 641, 532, 411, -1176, 3161, 653, -1176, +- 5282, 5282, 3235, -1176, 655, -1176, 2028, 1090, 604, 604, +- 2028, -1176, 2028, 580, 580, 2028, -1176, -1176, -1176, -1176, +- -1176, -1176, -1176, 683, 76, -1176, -1176, -1176, 3161, -1176, +- 667, 520, -1176, 673, 4762, 4290, -1176, 7857, 7857, 7857, +- -1176, 7857, 7857, 162, 7690, -1176, 5999, 7857, -1176, 4935, +- -1176, -1176, 7141, 7192, -1176, -1176, 1249, -1176, -1176, -1176, +- 682, 6269, 791, -1176, -1176, 8119, 6987, 34, -1176, 66, +- -1176, -1176, 784, -1176, -1176, 7857, 7857, -1176, 818, -1176, +- -1176, -1176, 712, -1176, 719, 5282, 3309, -1176, 5282, 307, +- -1176, -1176, -1176, -1176, -1176, -1176, 604, 604, 580, 580, +- 5282, 5282, 3383, -1176, 307, 720, 3457, -1176, -1176, 722, +- 7857, 7857, 7857, 167, 723, -1176, 716, 347, -1176, -1176, +- 802, 7857, -1176, 100, -1176, 7857, -1176, 624, 624, -1176, +- -1176, 624, 100, 7857, -1176, -1176, -1176, -1176, -1176, 624, +- -1176, 5282, 1390, 795, 5282, -1176, -1176, -1176, 7141, -1176, +- 3531, 754, -1176, -1176, -1176, 728, 5282, -1176, 731, 1390, +- 732, -1176, -1176, 738, -1176, -1176, -1176, -1176, 5013, 4935, +- -1176, 846, -1176, -1176, -1176, -1176, -1176, -1176, -1176, -1176, +- 313, -1176, 891, 512, 747, 7039, -1176, 740, 5639, -1176, +- -1176, -1176, 8119, -1176, -3, 394, -1176, 756, -1176, 5282, +- 761, 764, 766, -1176, -1176, 769, 6269, -1176, 336, -1176, +- 768, 5282, -1176, -1176, -1176, -1176, -1176, -1176, -1176, 6359, +- -1176, 771, -1176, -1176, 148, 870, 857, -1176, 624, 624, +- -1176, 873, -1176, -1176, -1176, -1176, -1176, 775, -1176, -1176, +- -1176, -1176, -1176, -1176, -1176, -1176, -1176, -1176, 624, 624, +- 777, -1176, 1225, 7358, 5454, -1176, 7857, 779, -1176, 886, +- -1176, -1176, -1176, -1176, -1176, -1176, 162, -1176, -1176, -1176, +- 876, 750, -1176, -1176, -1176, 861, -1176, -1176, -1176, -1176, +- -1176, 135, -1176, 790, -1176, -1176, 794, 5282, -1176, 5282, +- 891, -1176, 4935, 896, -1176, -1176, -1176, 364, 2932, -1176, +- -1176, -1176, 278, -1176, 799, -1176, 800, 8119, 806, -1176, +- -1176, 808, 5282, -1176, 16, -1176, -1176, 804, -1176, -1176, +- -1176, 1151, 478, -1176, 358, 7857, 6449, -1176, 7857, -1176, +- -1176, -1176, 1208, -1176, 392, -1176, 422, 7857, 6359, 905, +- 912, -1176, 911, -1176, 1109, 66, -1176, -1176, 1249, 5282, +- 105, -1176, 1225, -1176, 35, -1176, 902, 921, -1176, -1176, +- -1176, -1176, -1176, -1176, -1176, -1176, -1176, 819, -1176, 777, +- 1225, -1176, -1176, 100, -1176, 5282, -1176, 5282, -1176, -1176, +- 4935, 5282, 5282, 4935, 3605, 7857, 394, -1176, 408, -1176, +- -1176, 4935, -1176, 5282, -1176, 512, 307, 8074, 5549, 6539, +- 62, -3, -1176, -1176, -1176, 828, -1176, -1176, 872, 895, +- -1176, 672, -1176, -1176, -1176, -1176, -1176, -1176, 7940, 6629, +- -1176, 7857, -1176, 768, 418, -1176, -1176, -1176, -1176, -1176, +- -1176, -1176, -1176, 124, -1176, 717, 7857, 5282, 831, -1176, +- -1176, -1176, -1176, 3679, -1176, 614, 4935, 45, -1176, -1176, +- -1176, -1176, -1176, -1176, 657, 5282, -1176, -1176, -1176, 99, +- -1176, -1176, -1176, -1176, 830, 833, 372, -1176, -1176, -1176, +- 436, 283, -1176, 2677, 53, -1176, 5282, 5282, 394, 838, +- -1176, -1176, -1176, -1176, -1176, -1176, 4935, 4935, -1176, 4935, +- 900, -1176, -1176, 87, -1176, 863, -1176, 7857, -1176, 115, +- -1176, 514, -1176, 153, 949, -1176, -1176, -1176, 5282, -1176, +- -1176, 951, -1176, 394, -1176, -1176, 886, 7857, 6719, -1176, +- -1176, 924, 499, 508, -1176, 852, 38, 624, 624, 5819, +- 945, 2777, 886, 7275, 2577, 4669, 2245, -1176, -1176, 1624, +- -1176, 353, -1176, -1176, -1176, -1176, -1176, -1176, -1176, -1176, +- 532, -1176, -1176, -1176, 878, 280, 933, -1176, -1176, 862, +- 877, 884, -1176, 888, 892, 738, -1176, 7857, 6809, 958, +- 7857, 880, 5282, 3753, -1176, 5282, 1891, -1176, 5282, 3827, +- -1176, -1176, 5282, 4935, 393, 874, -1176, 893, -1176, -1176, +- -1176, -1176, -1176, 499, -1176, 947, -1176, -1176, -1176, -1176, +- 3901, -1176, -1176, 3975, -1176, -1176, 3013, 5208, 981, -1176, +- 321, -1176, 998, 4381, 898, 1000, 334, -1176, -1176, -1176, +- -1176, -1176, -1176, -1176, -1176, -1176, 901, 541, 744, 8023, +- 805, 497, 909, 504, 507, 926, 428, 526, 988, 432, +- -1176, 1133, -1176, 532, 864, -1176, -1176, 929, 4049, 5282, +- -1176, 5282, 7441, -1176, 5356, -1176, -1176, -1176, -1176, -1176, +- 4935, -1176, -1176, -1176, 918, 910, 1002, -1176, -1176, -1176, +- -1176, -1176, -1176, -1176, 310, -1176, -1176, -1176, 4935, 1018, +- -1176, -1176, -1176, 394, 394, 5282, -1176, 917, -1176, -1176, +- -1176, 5282, 920, -1176, -1176, 5282, -1176, -1176, 77, -1176, +- 915, -1176, -1176, -1176, -1176, 1024, -1176, 927, 1027, -1176, +- -1176, 7857, 4857, -1176, -1176, -1176, -1176, 7857, 6899, -1176, +- 5282, -1176, 450, -1176, 940, -1176, -1176, 932, -1176, 2377, +- 2477, -1176, -1176, -1176, -1176, 738, 943, -1176, -1176, -1176, +- 886, 886, 4935, -1176, -1176, 1048, -1176, -1176, -1176, -1176, +- -1176, 545, -1176, 953, 708, 5729, -1176, -1176, 55, 5208, +- 5208, 1038, -1176, -1176, 4123, 5208, -1176, -1176, -1176, -1176, +- -1176, -1176, -1176, -1176, -1176, 5282, 4197, -1176, -1176, 245, +- -1176, 2377, -1176, 955, 346, 464, 957, 960, 963, 606, +- 968, 2028, 2028, -1176, -1176, 970, 97, -1176, -1176, -1176, +- -1176, -1176, 4935, -1176, 4935, -1176, 394, -1176, 974, 975, +- -1176, 1058, 7524, -1176, 394, 5282, -1176, -1176, -1176, -1176, +- -1176, -1176, -1176, 356, -1176, 152, -1176, -1176, -1176, -1176, +- -1176, -1176, 976, -1176, 4481, -1176, -1176, 4481, 4481, 5356, +- 980, 985, -1176, 4574, 4574, -1176, -1176, 738, -1176, 552, +- -1176, -1176, -1176, -1176, 7857, 7857, 7857, 7857, 41, 288, +- 5060, 172, 990, 995, -1176, 1029, -1176, -1176, 5282, 5282, +- 310, 984, 994, -1176, -1176, -1176, -1176, -1176, -1176, -1176, +- 589, 589, -1176, -1176, -1176, 394, -1176, 624, 624, 624, +- 624, -1176, -1176, -1176, -1176, -1176, -1176, -1176, 1001, 7774, +- -1176, -1176, -1176, -1176, -1176, 50, -1176, -1176, 5282, 7774, +- 1003, 264, -1176, 1008, -1176, -1176, 1004, -1176, -1176 ++ 81, 6324, 8099, -1081, 91, -1081, 49, -1081, 30, -1081, ++ 8099, 21, -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, ++ -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, ++ -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, ++ -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, ++ -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, ++ -1081, 21, -1081, -1081, -1081, -1081, -1081, 43, -1081, 144, ++ -1081, 187, -1081, 318, 52, 8099, 336, -1081, 369, 49, ++ 7843, -1081, -1081, -1081, 8099, 406, -1081, 329, 427, 75, ++ 260, -1081, -1081, -1081, 480, -1081, 546, -1081, 487, -1081, ++ 514, -1081, 571, -1081, 21, 510, -1081, 49, -1081, -1081, ++ -1081, 8099, 6414, -1081, 7843, -1081, -1081, 5482, -1081, 5482, ++ -1081, -1081, 1291, -1081, -1081, -1081, 495, 543, -1081, -1081, ++ -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, ++ 8099, -1081, 501, -1081, 506, 509, -1081, 524, 552, -1081, ++ -1081, -1081, -1081, -1081, -1081, -1081, -1081, 5482, 2009, 5592, ++ 340, -1081, -1081, 556, 541, 1144, 732, 1059, 17, -1081, ++ -1081, -1081, -1081, 228, 160, 388, -1081, 570, 567, -1081, ++ 5592, 5592, -1081, 355, -1081, -1081, 698, 8099, 4467, 8099, ++ 8099, -1081, 8099, 6142, 8099, 700, -1081, -1081, -1081, -1081, ++ -1081, 601, -1081, -1081, 543, 510, 7330, -1081, -1081, -1081, ++ -1081, -1081, -1081, -1081, 977, 602, 5482, 977, -1081, 609, ++ -1081, 977, 610, -1081, 633, 89, -1081, -1081, -1081, -1081, ++ -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, ++ -1081, -1081, -1081, -1081, -1081, -1081, -1081, 5482, -1081, -1081, ++ 728, -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, ++ -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, 5482, 5592, ++ 5592, -1081, 704, -1081, -1081, -1081, -1081, -1081, -1081, -1081, ++ -1081, -1081, -1081, -1081, 5592, 5592, -1081, 933, 933, 5592, ++ 5592, 5592, -1081, 8099, -1081, 3541, -1081, -1081, -1081, 623, ++ 1836, -1081, 732, -1081, 8099, 5482, 169, -1081, 676, -1081, ++ -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, ++ -1081, -1081, -1081, -1081, -1081, -1081, -1081, 648, -1081, -1081, ++ -1081, -1081, -1081, 759, 765, 8099, 152, -1081, -1081, 108, ++ -1081, -1081, -1081, 379, -1081, 543, -1081, 652, -1081, -1081, ++ 543, -1081, 312, -1081, 214, -1081, 881, 668, 650, 5482, ++ 115, -1081, 661, 556, 619, -1081, 3596, 674, -1081, 5482, ++ 5482, 3651, -1081, 678, -1081, 5592, 858, 732, 732, 5592, ++ -1081, 5592, 1059, 1059, 5592, -1081, -1081, 784, -1081, -1081, ++ -1081, -1081, -1081, -1081, 703, 99, -1081, -1081, 3596, -1081, ++ 680, 628, -1081, -1081, 685, 8099, 8099, -1081, 241, 4861, ++ 4577, -1081, 8099, 8099, 275, -1081, 8099, 86, 7926, -1081, ++ 6233, 8099, -1081, 5208, -1081, -1081, 7374, 7428, -1081, -1081, ++ 1112, -1081, -1081, 8392, 7224, 488, -1081, 543, -1081, -1081, ++ 790, -1081, -1081, 8099, 8099, -1081, 819, -1081, -1081, -1081, ++ 734, -1081, 739, 5482, 3706, -1081, 5482, 315, -1081, -1081, ++ -1081, -1081, -1081, -1081, 732, 732, 1059, 1059, 933, 5482, ++ 5482, 3761, -1081, 315, 757, 3816, -1081, -1081, -1081, -1081, ++ 761, 6504, 853, -1081, 764, 8099, 8099, 8099, 178, 766, ++ -1081, 776, 323, -1081, -1081, 841, 8099, -1081, 103, -1081, ++ 8099, -1081, 648, 648, 8099, -1081, 8099, 648, 103, 8099, ++ -1081, -1081, -1081, -1081, -1081, 648, -1081, 5482, 977, 810, ++ 5482, -1081, -1081, -1081, 7374, -1081, 3871, 820, -1081, -1081, ++ -1081, 791, 5482, -1081, 792, 977, 787, -1081, -1081, 798, ++ -1081, -1081, -1081, -1081, 5285, 5208, -1081, 905, -1081, -1081, ++ -1081, -1081, -1081, -1081, -1081, -1081, 319, -1081, 388, 524, ++ 145, 7276, -1081, 800, 5872, -1081, -1081, -1081, 8392, -1081, ++ 214, 228, -1081, 803, -1081, 5482, 804, 805, 806, 514, ++ -1081, 808, -1081, -1081, -1081, -1081, -1081, 6594, -1081, 811, ++ -1081, -1081, 521, 910, 898, -1081, 648, 648, 514, 915, ++ -1081, -1081, -1081, -1081, -1081, 816, -1081, -1081, -1081, -1081, ++ -1081, -1081, -1081, -1081, -1081, -1081, 6504, -1081, 357, -1081, ++ 839, 5482, -1081, -1081, -1081, 648, 648, 821, -1081, 985, ++ 7594, 5687, -1081, 8099, 823, -1081, 933, -1081, -1081, -1081, ++ -1081, -1081, -1081, -1081, -1081, 86, -1081, -1081, -1081, 913, ++ 274, -1081, -1081, -1081, 914, -1081, -1081, -1081, -1081, -1081, ++ 281, -1081, 837, -1081, -1081, 842, 5482, -1081, 5482, 388, ++ -1081, 5208, 938, -1081, -1081, -1081, 437, 3411, -1081, -1081, ++ -1081, 327, -1081, 844, -1081, 854, 8392, 850, -1081, -1081, ++ 861, 5482, -1081, 289, -1081, -1081, 866, -1081, -1081, -1081, ++ -1081, 589, -1081, 966, -1081, 361, -1081, 248, 983, 8099, ++ 6594, 969, 974, -1081, 981, -1081, -1081, 543, -1081, -1081, ++ 1112, 5482, 372, 8099, 6684, -1081, 8099, -1081, -1081, -1081, ++ 79, -1081, 985, -1081, 45, -1081, 971, 989, -1081, -1081, ++ -1081, -1081, -1081, -1081, -1081, -1081, -1081, 878, -1081, 821, ++ 985, -1081, -1081, 103, -1081, 5482, -1081, 5482, -1081, -1081, ++ 5208, 5482, 5482, 5208, 3926, 8099, 228, -1081, 376, -1081, ++ -1081, 5208, -1081, 5482, -1081, 524, 315, 1282, 5782, 6774, ++ 71, 214, -1081, -1081, -1081, 888, -1081, -1081, 931, 954, ++ 1376, -1081, 8182, 6864, -1081, 8099, -1081, 8099, 839, 397, ++ -1081, -1081, 1137, -1081, -1081, -1081, -1081, -1081, -1081, -1081, ++ 119, -1081, 774, 8099, 5482, 890, -1081, -1081, -1081, -1081, ++ 3981, -1081, 538, 5208, 23, -1081, -1081, -1081, -1081, -1081, ++ -1081, 462, 5482, -1081, -1081, -1081, 75, -1081, -1081, -1081, ++ -1081, 893, 889, 335, -1081, -1081, -1081, 385, 49, -1081, ++ 3249, 269, -1081, 5482, 5482, 228, -1081, 700, -1081, -1081, ++ -1081, -1081, -1081, -1081, -1081, 5208, 5208, -1081, -1081, -1081, ++ -1081, -1081, -1081, 88, -1081, 916, -1081, 8099, -1081, 146, ++ -1081, 639, -1081, 61, 995, -1081, -1081, -1081, 5482, -1081, ++ -1081, 996, -1081, 228, -1081, -1081, 933, 8099, 6954, -1081, ++ -1081, 972, 539, 25, -1081, 899, 53, 648, 648, 6052, ++ 990, 1628, 933, 7511, 3143, 5120, 2788, -1081, -1081, 1477, ++ -1081, 540, -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, ++ 556, -1081, -1081, -1081, 924, 503, 976, -1081, -1081, 908, ++ 909, 911, 917, 923, 925, 987, 5208, -1081, 8099, 7044, ++ 1013, 8099, 927, 5482, 4036, -1081, 5482, 3356, -1081, 5482, ++ 4091, -1081, -1081, 5482, 5208, 631, 932, -1081, 928, -1081, ++ -1081, -1081, -1081, -1081, 539, -1081, 994, -1081, -1081, -1081, ++ -1081, 4146, -1081, -1081, 4201, -1081, -1081, 3486, 5427, 1020, ++ -1081, 638, -1081, 1032, 4668, 941, 1042, 401, -1081, -1081, ++ -1081, -1081, -1081, -1081, -1081, -1081, -1081, 947, 2126, 2259, ++ 8265, 2392, 501, 950, 506, 509, 2525, 702, 552, 831, ++ 412, -1081, 2658, -1081, 556, 493, -1081, -1081, 970, 4256, ++ 5482, -1081, 5482, 8348, 7677, -1081, 5537, -1081, -1081, -1081, ++ -1081, -1081, -1081, -1081, 798, -1081, -1081, -1081, 1045, 953, ++ 1039, -1081, -1081, -1081, -1081, -1081, -1081, -1081, 297, -1081, ++ -1081, -1081, 5208, 1056, -1081, -1081, -1081, 228, 228, 5482, ++ -1081, 960, -1081, -1081, -1081, 5482, 965, -1081, -1081, 5482, ++ -1081, -1081, 100, -1081, 961, -1081, -1081, -1081, -1081, 1051, ++ -1081, 964, 292, -1081, -1081, 8099, 5037, -1081, -1081, -1081, ++ -1081, 8099, 7134, -1081, 5482, -1081, 428, -1081, 963, -1081, ++ -1081, 973, -1081, 2921, 3022, -1081, -1081, -1081, -1081, 5208, ++ 975, -1081, -1081, -1081, 933, 933, 5208, -1081, -1081, 1066, ++ -1081, -1081, -1081, -1081, -1081, 644, -1081, 968, 635, 5962, ++ -1081, -1081, 534, 5427, 5427, 1060, -1081, -1081, 4311, 5427, ++ -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, 5482, ++ 4366, -1081, -1081, 82, -1081, 2921, -1081, 978, 250, 356, ++ 982, 986, 984, 610, 992, 5592, 5592, -1081, -1081, 991, ++ 121, -1081, 798, -1081, -1081, -1081, -1081, 5208, -1081, 5208, ++ -1081, 228, -1081, 998, 999, -1081, 1075, 7760, -1081, 228, ++ 5482, -1081, -1081, -1081, -1081, -1081, -1081, -1081, 536, -1081, ++ 171, -1081, -1081, -1081, -1081, -1081, -1081, 1003, -1081, 4766, ++ -1081, -1081, 4766, 4766, 5537, 1004, 1005, -1081, 4944, 4944, ++ -1081, -1081, 798, -1081, 665, -1081, -1081, -1081, -1081, 8099, ++ 8099, 8099, 8099, 47, 144, 5354, 209, 1007, 993, -1081, ++ 1040, -1081, -1081, 5482, 5482, 297, 1012, 1011, -1081, -1081, ++ -1081, -1081, -1081, -1081, -1081, 717, 717, -1081, -1081, -1081, ++ 228, -1081, 648, 648, 648, 648, -1081, -1081, -1081, -1081, ++ -1081, -1081, -1081, 1018, 8016, -1081, -1081, -1081, -1081, -1081, ++ 124, -1081, -1081, 5482, 8016, 1017, 126, -1081, 1022, -1081, ++ -1081, 1021, -1081, -1081 + }; + + /* YYPGOTO[NTERM-NUM]. */ + static const short yypgoto[] = + { +- -1176, -1176, -1176, -1176, -1176, -1176, 529, -1176, -1176, 439, +- -1176, -153, -1176, -1176, -1176, -1176, -1176, -1176, -1176, -1176, +- -1176, -1176, -1176, -1176, 928, -1176, 1059, -1176, -1176, 1065, +- 1037, 225, 557, -1176, -1176, -1176, -1176, -76, -1176, -1176, +- 431, -1176, -1176, 550, -1176, 350, -1176, -1176, -1176, 70, +- -68, -1176, -1176, -1176, 246, -1176, -1176, -1176, 441, -86, +- -633, -94, -1176, -1176, -330, -1176, -135, -1176, -1176, -1176, +- 575, 39, -1176, 171, 640, -147, -1176, 592, -1176, -45, +- -1176, -1176, -1176, -1176, -108, -463, -987, -273, -1176, 263, +- -598, -589, -217, -1176, -1176, -812, -1176, -1176, -1176, -1176, +- -830, -771, 257, -1176, -1176, -915, -1176, -163, -1176, -1176, +- -1176, -1175, -1176, -329, 85, -1176, 36, -1176, -1176, -443, +- -850, -145, -758, -1176, -1176, -1176, -1176, -1176, -1176, -229, +- -1176, -1176, -1176, -1176, -1176, 20, 12, -1176, 1056, -1176, +- -581, -1176, -1176, 204, -1176, -975, -1176, 24, -1176, 21, +- -614, -1033, -1176, -501, -1176, -1176, 822, -1176, -1176, -1176, +- -339, -1176, -1176, 578, -1176, -1176, -268, -1176, -1176, -623, +- -1176, -1176, -496, -301, -1176, 178, -1176, -1176, 443, -378, +- 151, -1176, -1176, -551, -1176, 381, -181, -733, -488, -507, +- -1176, 651, -1176, -1176, -1176, -1176, -119, -1176, -1176, -1176, +- -1176, -1176, -1176, -1176, -1176, -50, -1176, -124, -1176, -1176, +- -1176, -1176, -1176, -1176, -1176, -1176, -1176, -1176, -1176, -1176, +- -1176, -1176, -1176, 524, -1176, -1176, -384, -1176, -337, 536, +- -430, -1176, -1176, 143, -1176, 154, -1176, -648, -701, -1176, +- 946, 937, -1176, -1176, -174, -1176, -1176, 158, -156, -1176, +- -642, -557, -819, -162, -1176, 453, 685, -169, -1176, -1176, +- -1176, -1176, 989, -1176, 339, -1176, -1176, 454, -493, -400, +- -1176, -1176, 1026, -1176, -1176, 1030, -1176, -1176, -1176, 644, +- -1176, -1176, -508, -194, -1176, -1176, 753, -1, -612, -995, +- -180, -437, -360, -945, -756, -78, -438, -201, 103, -761 ++ -1081, -1081, -1081, -1081, -1081, -1081, 425, -1081, -1081, 358, ++ -1081, -151, -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, ++ -1081, -1081, -1081, -1081, 912, -1081, 1079, -1081, -1081, 1080, ++ 1053, -4, 573, -1081, -1081, -1081, -1081, -75, -1081, -1081, ++ 353, -1081, -1081, 566, -1081, 295, -1081, -1081, -1081, 60, ++ -69, -1081, -1081, -1081, 377, -1081, -1081, -1081, 460, 22, ++ -645, -641, -1081, -188, -1081, -97, -1081, -315, -1081, -1081, ++ -277, -1081, -1081, -1081, 560, 93, -1081, 264, 660, -143, ++ -1081, 612, -1081, 41, -1081, -1081, -1081, -1081, -72, -295, ++ -1028, -253, -1081, 270, -596, -602, -261, -1081, -1081, -1081, ++ -804, -1081, -1081, -1081, -1081, -494, -780, 263, -1081, -1081, ++ -929, -1081, -178, -1081, -1081, -1081, -588, -1081, -255, 87, ++ -1081, 35, -1081, -1081, -411, -1080, -103, -744, -1081, -1081, ++ -1081, -1081, -1081, -1081, -440, -1081, -1081, -1081, -1081, -1081, ++ 24, -2, -1081, 1071, -1081, -815, -1081, -1081, 210, -1081, ++ -981, -1081, 27, -1081, 28, -574, -799, -1081, -612, -1081, ++ -1081, 843, -1081, -1081, -1081, -342, -1081, -1081, 605, -1081, ++ -1081, -486, -1081, -1081, -635, -1081, -1081, -503, -308, -1081, ++ 224, -1081, -1081, 453, -216, 159, -1081, -1081, -371, -1081, ++ 398, -187, -730, -491, -533, -1081, 669, -1081, -1081, -1081, ++ -1081, -49, -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, ++ -41, -1081, -99, -1081, -1081, -1081, -1081, -1081, -1081, -1081, ++ -1081, -1081, -1081, -1081, -1081, -1081, -1081, -1081, 547, -1081, ++ -1081, -379, -1081, -338, 548, -416, -1081, -1081, 150, -1081, ++ 156, -1081, -651, -705, -1081, 920, 958, -1081, -1081, -177, ++ -1081, -1081, 296, -157, -1081, -881, -558, -844, -153, -1081, ++ 463, 712, -192, -1081, -1081, -1081, -1081, -1081, 1014, -1081, ++ 395, -1081, -1081, 504, -449, -384, -1081, -1081, 1046, -1081, ++ -1081, 1048, -1081, -1081, -1081, 788, -1081, -1081, -508, -174, ++ -1081, -1081, 667, -1, -604, -968, -182, -194, -358, -974, ++ -546, -80, -412, -190, 38, -768 + }; + + /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule which + number is the opposite. If zero, do what YYDEFACT says. + If YYTABLE_NINF, syntax error. */ +-#define YYTABLE_NINF -787 ++#define YYTABLE_NINF -796 + static const short yytable[] = + { +- 66, 66, 227, 350, 302, 631, 637, 89, 683, 66, +- 292, 342, 355, 743, 631, 344, 475, 817, 71, 452, +- 119, 608, 405, 303, 727, 604, 606, 443, 450, 931, +- 459, 912, 665, 211, 775, 750, 613, 751, 212, 418, +- 741, 1083, 343, 338, 491, 359, 204, 675, 365, 1101, +- 818, -786, 365, 332, 364, 1119, 1120, 409, 364, 371, +- -290, 474, 1070, 838, 346, 805, 1156, 208, -786, -786, +- 386, 388, 916, 792, 66, 1012, 1015, 471, 1129, 66, +- 290, 76, 927, 66, 1133, 923, 880, 926, 937, 912, +- 430, 71, 1136, 116, 1280, 378, 379, 803, 1213, 777, +- 108, 628, 116, 69, 1283, 69, -786, 328, 1184, 72, +- 66, 66, 669, 66, 77, 414, 942, 588, 1156, 71, +- 66, 291, 1173, 117, 727, 628, 935, 681, 118, 1185, +- 916, 78, 778, 389, 390, 391, 752, 118, 66, 455, +- 927, 420, 727, 923, 431, 926, 116, 435, 927, 928, +- 434, 589, 753, 942, 948, 759, 806, -290, 116, 977, +- 854, 662, 709, -786, 77, 68, -786, 710, -724, 670, +- -786, 1074, 410, -724, 411, 1216, 372, 77, 344, 347, +- 373, 118, 72, 99, 66, 66, 66, 66, 66, 66, +- 66, 209, 1096, 118, 472, 1130, 634, 635, 473, 1131, +- 636, 116, 466, 938, 1237, 66, 467, 77, 639, 939, +- 72, 428, 429, 1214, 1189, 1190, -438, 99, 109, 1215, +- 629, -786, 1253, 1254, -786, -786, 114, 115, 560, 564, +- 415, 85, 416, 943, 1247, 944, 118, 111, 592, 771, +- -438, 355, 355, -438, 629, 909, 820, 812, 1240, 220, +- 552, 1050, 949, 754, 827, 631, 456, 457, 116, 675, +- 675, 344, 436, 491, 491, 628, -724, 338, -724, 338, +- 943, -267, 1241, -267, 499, 1277, 500, 438, -786, 767, +- 439, -189, -786, -438, 1195, -724, -724, -724, 593, 648, +- -724, 683, -724, 118, 404, 69, 66, 1105, 418, -189, +- 1045, 1047, 412, 909, 94, 86, 692, 861, 108, 879, +- -189, 844, 974, 991, 108, 631, 941, 720, 721, 1185, +- 826, 1113, 628, 1074, 560, -189, 957, 495, 830, 679, +- -189, 766, 128, 69, 718, 1081, 486, 695, 1048, 75, +- -438, 1288, 587, 642, 804, 66, 66, 1204, 623, 933, +- 934, -189, -82, -775, 112, -82, -82, 1238, -31, 695, +- 660, 676, 811, 452, 560, 1235, -438, -775, 564, 552, +- 552, -438, 450, 887, 1114, -775, -189, 892, 300, 301, +- -438, 829, 1056, -189, 629, 75, 1031, 1033, 1195, 1195, +- 79, 884, -438, 788, 768, 604, -189, -189, -189, -189, +- 82, -189, -189, 66, 66, 80, 66, 66, 66, 825, +- 66, 66, 742, 66, 620, 66, 66, -438, 3, 788, +- -775, 66, 66, 627, -438, 476, 109, 963, 1112, -729, +- 66, 668, 109, 1087, 66, 66, 727, -438, 572, 1217, +- -438, 629, 383, 384, 66, 66, 1051, -729, 427, 92, +- 1082, 1145, 433, -775, 696, 697, 93, 1160, 1160, 729, +- 116, 404, 1205, 624, 1206, -334, 625, 746, 103, 417, +- 1018, -113, 1239, -729, 1019, -775, 696, 782, -729, 66, +- 66, 66, -162, 772, 1072, 151, 682, 153, 888, -33, +- 66, 889, 631, 552, 66, 118, 957, 957, -162, -729, +- 842, 842, 66, 220, 1172, 107, 1174, 492, 496, 1160, +- 789, 790, 1052, 1053, 801, 945, 505, 66, 159, 1210, +- 1211, 791, 344, 698, -729, -775, 456, 109, 69, -628, +- -628, -729, 566, -775, 113, 583, 789, 855, 121, 568, +- 468, 1117, -726, 469, -729, -516, -729, -729, -729, 69, +- 1088, 1089, 85, 973, 66, 486, 486, 66, 739, 729, +- -726, 66, 1160, 748, 207, 1160, 1160, 842, 1146, 1147, +- 967, 1249, 1249, 676, 676, 66, 124, 729, -775, 967, +- 1205, 552, 1206, -2, 552, 506, -726, 508, 66, 748, +- 1243, -726, 552, 1245, 1246, 968, 980, 981, 1157, 1167, +- 849, 421, 969, 422, 968, 1170, 1161, 1161, 1270, 1271, +- 248, 969, -726, 423, 214, 875, 272, 842, 1, 1220, +- 273, 216, 66, 66, 217, 66, 911, 683, 287, -516, +- 946, 274, 876, 819, 137, 822, 138, -726, 476, 477, +- 288, 140, 729, 221, -726, 61, 67, 552, 877, 247, +- 1157, 275, 1281, 2, 74, 299, 220, -726, 1161, -726, +- -726, -726, 292, 145, 1175, 1176, 3, 1218, 685, 959, +- 1255, 1256, 276, 277, 304, 60, 66, 427, 149, 150, +- 920, 584, 586, 700, 911, 742, 341, 552, 552, 345, +- 552, 348, 839, 840, 66, 66, 360, 66, 1272, 1162, +- 1162, 835, 850, 852, 572, 427, 66, 66, 367, 1178, +- 370, 1161, 1248, 1252, 1161, 1161, 278, 279, 280, 281, +- 1250, 1250, 831, 833, 98, 369, 492, 492, 102, 375, +- 572, 381, 282, 283, 783, 785, 397, 134, 920, 505, +- 994, 404, 1013, 994, 407, -727, 920, 408, 151, 227, +- 153, 1162, 1137, 1139, 66, 129, 131, 453, 98, 1066, +- 1066, 458, 137, -727, 138, 203, 66, 66, 66, 140, +- 764, 137, 460, 138, 465, 745, 882, 883, 140, 960, +- 962, 159, 470, 213, 552, 1285, -786, 66, 66, -727, +- 66, 145, 478, 631, -727, 1265, 1266, 1037, 1039, 576, +- 145, 735, 738, 60, 1162, 66, -728, 1162, 1162, 700, +- 610, 612, 60, 1251, 1251, -727, 581, 1107, 594, 835, +- 835, 1041, 1043, 505, -728, 462, 464, 600, 602, 327, +- 329, 330, 203, 333, 339, 340, 622, 655, 603, 614, +- -727, 617, 621, 293, 626, 657, 116, -727, 659, 137, +- -728, 138, 661, 746, 662, -728, 140, 666, 677, 994, +- -727, 552, -727, -727, -727, -769, 66, -145, 220, 698, +- 181, 294, 686, 295, 296, 297, -728, 688, 145, 552, +- 689, 118, 690, -769, 335, 693, 66, 66, 708, 711, +- 60, 712, 715, 1168, 1169, 719, 700, 722, 66, 740, +- 749, -728, 66, 1011, 1011, 66, 744, 1179, -728, -769, +- 755, 756, 1066, 1066, -769, 760, 769, -720, 1196, 289, +- 779, -728, 795, -728, -728, -728, 773, -724, 774, 796, +- 710, 1106, 807, 293, 808, -769, 66, 66, 809, 66, +- 137, 396, 138, 552, 845, -724, 847, 140, 848, 885, +- 725, 685, 867, 886, 932, 936, 1273, 1274, 1275, 1276, +- -769, 294, 940, 295, 296, 297, 950, -769, 953, 145, +- 964, -724, 137, 976, 138, 989, -724, 1021, 1025, 140, +- -769, 60, 1011, -769, -605, 1022, 958, 302, 1034, -607, +- 203, 203, 1054, 1026, 966, 972, 972, -724, 66, 979, +- 1027, 145, 1036, 552, 1028, 552, 303, -730, 1029, 1057, +- 1055, 1071, -605, 60, -605, -605, -605, 1073, 1079, 1080, +- 1086, 66, -724, 185, 186, 187, -620, 188, 1090, -724, +- 1110, -5, 1111, -730, 1124, 1118, 1128, 1132, -730, 189, +- 387, 387, -724, 190, -724, -724, -724, 1135, 1149, 494, +- 191, 497, 498, 203, 1134, 203, 501, -251, 339, -730, +- 339, 509, 1148, 163, 806, 183, 972, 1171, 1191, 185, +- 186, 187, 1177, 188, 1203, 580, -335, 1223, 1063, -336, +- 66, 66, -63, 1209, -730, 189, 66, 66, -352, 598, +- 599, -730, 1212, 1221, 1222, 1242, 191, -63, 1011, 1011, +- -354, 1269, 222, 224, -607, -353, -607, -607, -730, 220, +- 1262, 1263, 1264, -333, 1232, 185, 186, 187, 1279, 188, +- 1287, 250, 1284, 797, 618, 619, 1098, 1286, -65, 714, +- 780, 189, 83, 351, -725, 190, 289, 289, 84, 633, +- 1188, 123, 191, 594, 702, 799, 713, 638, 860, 794, +- 1011, 694, -725, 643, 680, 251, 958, 185, 186, 187, +- 1126, 1188, 363, 252, 990, -358, 1016, 1140, 798, 1201, +- 133, 1197, 554, 189, 1059, 1202, 1208, 190, -725, 444, +- 717, 66, 810, -725, 191, 1108, 862, 253, 254, 664, +- 1268, 763, 255, 374, 1234, 758, 1121, 641, 259, 260, +- 261, 262, 1164, 1011, -725, 377, 1011, 1011, 1122, 824, +- 368, 324, 66, 66, 185, 325, 263, 264, 188, 0, +- 580, 289, 289, 66, 66, 66, 66, 787, 1183, -725, +- 445, 0, 0, 706, 0, 0, -725, 0, 724, 0, +- 393, 446, 0, 0, 0, 134, 402, 0, 0, -725, +- 403, -725, -725, -725, 1164, 0, 185, 725, 0, -27, +- 188, 0, 0, 0, 0, 726, 644, 0, 66, -27, +- 0, 0, 445, 0, 0, 0, 0, 0, 66, 137, +- 0, 138, 249, 446, 0, 0, 140, 685, 250, 0, +- 0, 0, 554, 0, 0, 0, 0, 0, 0, 69, +- 0, 0, 565, 566, 0, 567, 454, 0, 145, 0, +- 568, 0, 0, 402, 0, 0, 461, 224, 224, 0, +- 60, 0, 251, 569, 570, 571, 0, 0, 0, 0, +- 252, 0, 0, 0, 0, 0, 0, 0, 0, 580, +- 580, 0, 786, 0, 402, 0, 0, 0, 0, 0, +- 0, 793, 706, 0, 253, 254, 0, 0, 0, 255, +- 0, 256, 257, 258, 0, 259, 260, 261, 262, 0, +- 0, 0, 0, 0, 0, 387, 0, 0, 505, 0, +- 0, 0, 387, 263, 264, 0, 0, 265, 266, 267, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 823, +- 0, 363, 363, 0, 607, 0, 0, 0, 0, 0, +- 134, 0, 0, 0, 0, 554, 609, 393, 393, 0, +- 0, 0, 616, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 706, 706, 0, 853, 0, 0, 0, 0, +- 0, 0, 0, 0, 137, 0, 138, 0, 139, 0, +- 865, 140, 0, 0, 0, 0, 0, 640, 0, 0, +- 646, 0, 0, 0, 0, 0, 654, 141, 142, 0, +- 143, 144, 658, 145, 0, 387, 146, 147, 148, 0, +- 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, +- 0, 0, 0, 387, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 554, 0, 0, 554, 156, 228, 0, +- 0, 865, 0, 0, 554, 687, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 701, 0, 229, +- 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, +- 240, 241, 242, 243, 244, 245, 0, 995, 1010, 995, +- 995, 0, 0, 0, 0, 0, 0, 0, 387, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 554, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 865, 865, 0, 1035, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 925, 0, 0, 0, +- 0, 0, 0, 757, 0, 363, 0, 0, 0, 554, +- 554, 0, 554, 0, 402, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 628, 0, 1077, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 895, 0, 387, +- 0, 0, 0, 213, 896, 0, 0, 0, 0, 0, +- 0, 0, 135, 136, 925, 387, 0, 0, 0, 0, +- 899, 0, 900, 0, 0, 802, 995, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 137, 0, +- 138, 0, 139, 0, 0, 140, 0, 0, 0, 0, +- 0, 814, 0, 815, 0, 0, 0, 646, 654, 0, +- 654, 141, 142, 0, 143, 144, 554, 145, 0, 828, +- 146, 147, 148, 149, 150, 151, 152, 153, 0, 60, +- 0, 154, 155, 0, 0, 0, 0, 0, 0, 925, +- 925, 1141, 1143, 0, 0, 0, 1078, 0, 0, 0, +- 0, 156, 0, 1163, 1163, 157, 0, 158, 159, 0, +- 160, 161, 0, 866, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 363, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 554, 0, 0, 0, 387, 0, 924, +- 0, 0, 929, 930, 0, 1163, 0, 0, 0, 0, +- 0, 554, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 951, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 924, 1163, 0, +- 222, 1163, 1163, 0, 0, 1017, 0, 1163, 1163, 0, +- 0, 0, 0, 387, 387, 554, 0, 0, 1257, 1258, +- 1259, 1260, 0, 0, 0, 0, 0, 387, 0, 0, +- 0, 0, 925, 925, 0, 0, 0, 0, 925, 0, +- 0, 0, 1042, 0, 0, 0, 0, 0, 646, 0, +- 0, 0, -776, 0, 0, 0, 0, 0, 0, 0, +- -776, 134, 0, 0, 0, 0, 0, 0, 0, 135, +- 136, 0, 924, 924, 0, 554, 0, 554, 0, 924, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 137, 0, 138, 0, 139, +- 0, 0, 140, 0, 0, -776, 0, 0, 0, 0, +- 0, 0, 0, 0, 1093, 1094, 0, 1095, 141, 142, +- 1104, 143, 144, 0, 145, 0, 0, 146, 147, 148, +- 149, 150, 151, 152, 153, 0, 60, 0, 154, 155, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 1123, 0, 0, 0, 0, 0, 1127, 156, 0, +- 0, 1017, 157, 0, 158, 159, 0, 160, 161, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 1144, 0, 0, 0, +- 0, 0, 0, 0, 0, 1159, 224, 0, 134, 0, +- 0, 0, 0, 0, 0, 0, 135, 136, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 924, 924, 0, 0, 0, +- 0, 924, 137, 0, 138, 0, 139, 0, 0, 140, +- 0, 1198, 1200, 0, 0, 0, 0, 1159, 0, 0, +- 0, 0, 0, 0, 0, 141, 142, 0, 143, 144, +- 0, 145, 0, 0, 146, 147, 148, 149, 150, 151, +- 152, 153, 0, 60, 0, 154, 155, 0, 0, 0, +- 0, 1236, 0, 0, 0, 0, 0, 0, 12, 13, +- 14, 15, 16, 0, 305, 156, 0, 0, 306, 157, +- 1104, 158, 159, 1104, 1104, 1104, 0, 307, 0, 308, +- 0, 0, 0, 309, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 1261, 17, 18, 19, +- 20, 21, 22, 23, 0, 24, 25, 26, 27, 28, +- 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, +- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, +- 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, +- 59, 0, 0, 0, 1282, 0, 0, 60, 116, 310, +- 311, 0, 0, 0, 312, 0, 313, 314, 315, 316, +- 259, 260, 261, 262, 278, 279, 280, 281, 0, 0, +- 0, 12, 13, 14, 15, 16, 0, 0, 317, 318, +- 319, 320, 321, 118, 322, 134, 0, 897, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 898, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, +- 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, +- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, +- 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, +- 56, 57, 58, 59, 0, 0, 0, 0, 0, 0, +- 1014, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 229, 230, 231, 232, 233, 234, 235, 236, 237, +- 238, 239, 240, 241, 242, 243, 244, 245, 1150, 0, +- 0, 0, 0, 12, 13, 14, 15, 16, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 134, 0, 0, +- 0, 0, 0, 0, 0, 135, 136, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 17, 18, 19, 20, 21, 22, 23, 0, +- 24, 997, 26, 998, 28, 999, 30, 31, 1000, 33, +- 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, +- 44, 45, 46, 47, 1001, 1002, 50, 1003, 1004, 53, +- 1005, 55, 56, 1006, 1007, 1008, 149, 150, 151, 152, +- 153, 0, 60, 0, 154, 155, 0, 0, 1165, 0, +- 0, 0, 0, 12, 13, 14, 15, 16, 0, 0, +- 0, 0, 0, 0, 1151, 0, -786, 134, 1100, 0, +- 158, 159, 0, 160, 161, 135, 136, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 17, 18, 19, 20, 21, 22, 23, 0, +- 24, 997, 26, 998, 28, 999, 30, 31, 1000, 33, +- 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, +- 44, 45, 46, 47, 1001, 1002, 50, 1003, 1004, 53, +- 1005, 55, 56, 1006, 1007, 1008, 149, 150, 151, 152, +- 153, 0, 60, 0, 154, 155, 0, 0, 996, 0, +- 0, 0, 0, 12, 13, 14, 15, 16, 0, 0, +- 0, 0, 0, 0, 156, 0, 0, 134, 157, 223, +- 158, 159, 0, 160, 161, 135, 136, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 17, 18, 19, 20, 21, 22, 23, 0, +- 24, 997, 26, 998, 28, 999, 30, 31, 1000, 33, +- 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, +- 44, 45, 46, 47, 1001, 1002, 50, 1003, 1004, 53, +- 1005, 55, 56, 1006, 1007, 1008, 149, 150, 151, 152, +- 153, 0, 60, 0, 154, 155, 0, 0, 628, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 895, 0, 0, 0, 156, 0, 0, 896, 157, 897, +- 158, 159, 0, 160, 161, 135, 136, 0, 0, 725, +- 898, 0, 0, 899, 0, 900, 0, 726, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 901, 0, +- 0, 137, 0, 138, 0, 139, 0, 0, 140, 0, +- 0, 0, 0, 0, 902, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 141, 142, 0, 143, 144, 0, +- 145, 0, 0, 146, 147, 148, 149, 150, 151, 152, +- 903, 0, 60, 0, 154, 155, 0, 0, 628, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 895, 0, 0, 0, 904, 0, 0, 896, 157, 897, +- 905, 906, 0, 160, 161, 135, 136, 0, 0, 725, +- 898, 0, 0, 899, 0, 900, 0, 726, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 137, 0, 138, 0, 139, 0, 0, 140, 0, +- 0, 0, 0, 0, 902, 0, 0, 0, 0, 0, +- 0, 0, 399, 0, 141, 142, 0, 143, 144, 0, +- 145, 0, 0, 146, 147, 148, 149, 150, 151, 152, +- 903, 134, 60, 0, 154, 155, 0, 0, 0, 135, +- 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 904, 0, 0, 0, 157, 0, +- 905, 906, 0, 160, 161, 137, 0, 138, 0, 139, +- 0, 0, 140, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 141, 142, +- 0, 143, 144, 399, 145, 0, 0, 146, 147, 148, +- 149, 150, 151, 152, 153, 400, 60, 0, 154, 155, +- 0, 0, 134, 0, 0, 0, 0, 0, 0, 0, +- 135, 136, 0, 0, 0, 0, 0, 0, 156, 0, +- 0, 0, 157, 0, 158, 159, 0, 160, 161, 0, +- 0, 0, 0, 0, 0, 0, 137, 0, 138, 0, +- 139, 0, 0, 140, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 141, +- 142, 0, 143, 144, 1064, 145, 0, 0, 146, 147, +- 148, 149, 150, 151, 152, 153, 765, 60, 0, 154, +- 155, 0, 0, 134, 0, 0, 0, 0, 0, 0, +- 0, 135, 136, 0, 0, 725, 0, 0, 0, 156, +- 0, 0, 0, 157, 0, 158, 159, 0, 160, 161, +- 0, 0, 0, 0, 0, 0, 0, 137, 0, 138, +- 0, 139, 0, 0, 140, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 392, 0, +- 141, 142, 0, 143, 144, 0, 145, 0, 0, 146, +- 147, 148, 149, 150, 151, 152, 153, 134, 60, 0, +- 154, 155, 0, 0, 0, 135, 136, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 904, 0, 0, 0, 157, 0, 158, 159, 0, 160, +- 161, 137, 0, 138, 0, 139, 0, 0, 140, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 399, 0, 141, 142, 0, 143, 144, 0, +- 145, 0, 0, 146, 147, 148, 149, 150, 151, 152, +- 153, 134, 60, 0, 154, 155, 0, 0, 0, 135, +- 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 156, 0, 0, 0, 157, 0, +- 158, 159, 0, 160, 161, 137, 0, 138, 0, 139, +- 0, 0, 140, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 463, 0, 141, 142, +- 0, 143, 144, 0, 145, 0, 0, 146, 147, 148, +- 149, 150, 151, 152, 153, 134, 60, 0, 154, 155, +- 0, 0, 0, 135, 136, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 156, 0, +- 0, 0, 157, 0, 158, 159, 0, 160, 161, 137, +- 0, 138, 0, 139, 0, 0, 140, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 605, 0, 141, 142, 0, 143, 144, 0, 145, 0, +- 0, 146, 147, 148, 149, 150, 151, 152, 153, 134, +- 60, 0, 154, 155, 0, 0, 0, 135, 136, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 156, 0, 0, 0, 157, 0, 158, 159, +- 0, 160, 161, 137, 0, 138, 0, 139, 0, 0, +- 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 611, 0, 141, 142, 0, 143, +- 144, 0, 145, 0, 0, 146, 147, 148, 149, 150, +- 151, 152, 153, 134, 60, 0, 154, 155, 0, 0, +- 0, 135, 136, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, +- 157, 0, 158, 159, 0, 160, 161, 137, 0, 138, +- 0, 139, 0, 0, 140, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 615, 0, +- 141, 142, 0, 143, 144, 0, 145, 0, 0, 146, +- 147, 148, 149, 150, 151, 152, 153, 134, 60, 0, +- 154, 155, 0, 0, 0, 135, 136, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 156, 0, 0, 0, 157, 0, 158, 159, 0, 160, +- 161, 137, 0, 138, 0, 139, 0, 0, 140, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 650, 0, 141, 142, 0, 143, 144, 0, +- 145, 0, 0, 146, 147, 148, 149, 150, 151, 152, +- 153, 134, 60, 0, 154, 155, 0, 0, 0, 135, +- 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 156, 0, 0, 0, 157, 0, +- 158, 159, 0, 160, 161, 137, 0, 138, 0, 139, +- 0, 0, 140, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 821, 0, 141, 142, +- 0, 143, 144, 0, 145, 0, 0, 146, 147, 148, +- 149, 150, 151, 152, 153, 134, 60, 0, 154, 155, +- 0, 0, 0, 135, 136, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 156, 0, +- 0, 0, 157, 0, 158, 159, 0, 160, 161, 137, +- 0, 138, 0, 139, 0, 0, 140, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 868, 0, 141, 142, 0, 143, 144, 0, 145, 0, +- 0, 146, 147, 148, 149, 150, 151, 152, 153, 134, +- 60, 0, 154, 155, 0, 0, 0, 135, 136, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 156, 0, 0, 0, 157, 0, 158, 159, +- 0, 160, 161, 137, 0, 138, 0, 139, 0, 0, +- 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 1038, 0, 141, 142, 0, 143, +- 144, 0, 145, 0, 0, 146, 147, 148, 149, 150, +- 151, 152, 153, 134, 60, 0, 154, 155, 0, 0, +- 0, 135, 136, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, +- 157, 0, 158, 159, 0, 160, 161, 137, 0, 138, +- 0, 139, 0, 0, 140, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 1046, 0, +- 141, 142, 0, 143, 144, 0, 145, 0, 0, 146, +- 147, 148, 149, 150, 151, 152, 153, 134, 60, 0, +- 154, 155, 0, 0, 0, 135, 136, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 156, 0, 0, 0, 157, 0, 158, 159, 0, 160, +- 161, 137, 0, 138, 0, 139, 0, 0, 140, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 1058, 0, 141, 142, 0, 143, 144, 0, +- 145, 0, 0, 146, 147, 148, 149, 150, 151, 152, +- 153, -326, 60, 0, 154, 155, 0, 0, 0, -326, +- -326, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 156, 0, 0, 0, 157, 0, +- 158, 159, 0, 160, 161, -326, 0, -326, 0, -326, +- 0, 0, -326, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 1060, 0, -326, -326, +- 0, -326, -326, 0, -326, 0, 0, -326, -326, -326, +- -326, -326, -326, -326, -326, -323, -326, 0, -326, -326, +- 0, 0, 0, -323, -323, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, -326, 0, +- 0, 0, -326, 0, -326, -326, 0, -326, -326, -323, +- 0, -323, 0, -323, 0, 0, -323, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 1091, 0, -323, -323, 0, -323, -323, 0, -323, 0, +- 0, -323, -323, -323, -323, -323, -323, -323, -323, 134, +- -323, 0, -323, -323, 0, 0, 0, 135, 136, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, -323, 0, 0, 0, -323, 0, -323, -323, +- 0, -323, -323, 137, 0, 138, 0, 139, 0, 0, +- 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 1192, 0, 141, 142, 0, 143, +- 144, 0, 145, 0, 0, 146, 147, 148, 149, 150, +- 151, 152, 153, 134, 60, 0, 154, 155, 0, 0, +- 0, 135, 136, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, +- 157, 0, 158, 159, 0, 160, 161, 137, 0, 138, +- 0, 139, 0, 0, 140, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 1199, 0, +- 141, 142, 0, 143, 144, 0, 145, 0, 0, 146, +- 147, 148, 149, 150, 151, 152, 153, 134, 60, 0, +- 154, 155, 0, 0, 0, 135, 136, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 156, 0, 0, 0, 157, 0, 158, 159, 0, 160, +- 161, 137, 0, 138, 0, 139, 0, 0, 140, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 141, 142, 0, 143, 144, 0, +- 145, 0, 0, 146, 147, 148, 149, 150, 151, 152, +- 153, 0, 60, 0, 154, 155, 12, 13, 14, 15, +- 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 156, 0, 0, 0, 157, 0, +- 158, 159, 0, 160, 161, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 17, 18, 19, 20, 21, +- 22, 23, 0, 24, 25, 26, 27, 28, 29, 30, ++ 66, 66, 227, 302, 71, 646, 89, 638, 345, 66, ++ 753, 941, 674, 692, 349, 450, 347, 638, 119, 410, ++ 292, 474, 358, 1097, 303, 364, 385, 388, 457, 364, ++ 824, 211, 354, 737, 751, 422, 212, 602, 604, 363, ++ 785, 441, 448, 363, 72, 606, 922, 346, 204, 77, ++ 341, 496, 760, 684, 761, 1115, 825, 1147, 415, 1084, ++ 473, 612, 959, 85, 798, 1150, 796, 890, 1210, -297, ++ 926, 76, 845, 984, 66, 94, 108, 71, 812, 66, ++ -795, -2, 937, 66, 657, 290, -795, -795, 985, 948, ++ 370, 68, 377, 378, 701, 810, 1133, 1134, 978, 77, ++ 470, 1143, 69, 129, 635, 71, 933, 922, 332, 418, ++ 66, 66, 77, 66, 720, -31, 453, 72, 99, 1, ++ 635, 78, 1228, 979, 688, -795, 291, 635, 478, 479, ++ 980, 926, 389, 390, 391, 69, 737, 86, 769, 66, ++ 75, 671, 77, 937, 678, 72, -795, 953, -445, 304, ++ 861, 937, 99, 2, 737, 424, 416, 863, 1200, 1070, ++ 432, 79, 960, 1188, 293, -297, 3, 933, 813, 116, ++ 405, 75, 953, 1210, 1210, 347, 988, 116, 1252, -733, ++ 679, -274, -733, -274, 116, 220, 66, 66, 66, 66, ++ 1088, 66, 66, 66, 641, 642, 109, -795, 464, 645, ++ -795, -795, 465, 118, -795, 66, 949, 648, -795, 371, ++ -733, 118, 950, 372, 1204, 1205, 1044, 1231, 118, 471, ++ 1144, -445, 116, 472, 1145, 636, 419, 643, 420, 644, ++ 827, 558, 1174, 1174, 1255, 454, 455, -445, 834, 1229, ++ -445, 636, -795, 1262, -445, 1230, -795, 590, 636, 1292, ++ 819, 1219, 566, 570, 919, 294, 118, 347, 1064, 354, ++ 354, 111, 638, 80, 1268, 1269, 954, -150, 955, 684, ++ 684, 409, 496, 496, 436, 341, 504, 341, 293, -733, ++ 437, -733, 762, 295, 1174, 296, 297, 406, 591, 422, ++ 889, 954, 66, 1256, 1225, 1226, 304, 692, -733, -733, ++ -733, 763, 755, 66, 936, 82, 480, 871, 1059, 1061, ++ 1002, 1127, 116, 433, 1170, 919, 108, 730, 731, 638, ++ 108, 152, 69, 154, 630, -258, 651, 1303, 777, -733, ++ 500, -733, 943, 944, 66, 968, 897, 585, 1174, 776, ++ 491, 1174, 1174, 669, 228, 1088, 118, 1264, 1264, 795, ++ 566, 726, 558, 558, 160, 1250, 833, 1062, 723, 304, ++ 481, 450, 792, 1128, 837, 936, 1170, 938, 1220, 294, ++ 1221, -341, 116, 723, 787, 752, 690, 832, -82, 756, ++ 112, -82, -82, 421, 1285, 1286, 431, 685, 448, 1182, ++ 566, 700, -612, 505, 570, 506, 836, 295, 792, 296, ++ 297, 764, 1095, 3, 66, 66, 118, 788, 66, 66, ++ 716, 66, 66, 1101, -33, 66, 602, 66, 627, 66, ++ 66, 1023, 1026, -784, 894, 66, 66, 634, 578, 1159, ++ 434, 1065, 66, 66, -167, 475, 109, 229, 220, 677, ++ 109, 631, 66, 66, 632, 778, 483, 497, 501, -167, ++ 1126, 739, 737, 898, 92, 511, 899, 1232, 230, 231, ++ 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, ++ 242, 243, 244, 245, 1220, 305, 1221, 724, 725, 558, ++ 66, 793, 794, -612, 66, 66, 66, 93, 1086, 851, ++ 691, 781, 724, 805, -778, 66, 454, 109, 409, 66, ++ 638, 1171, 1181, 66, -195, 66, 952, 1033, 66, 968, ++ 968, -612, 782, -612, -612, -778, 811, 793, 864, 1096, ++ 623, 347, -784, 66, 103, -195, 1187, 803, 1189, 1131, ++ 849, 849, 1102, 1103, 818, 116, -195, 1253, 711, 885, ++ 1110, -778, 756, 712, 208, 107, -778, 209, 1160, 1161, ++ -784, -195, 902, 1171, 739, 152, -195, 154, -784, 886, ++ 66, 491, 491, 66, 749, 113, -778, 66, 558, 118, ++ 758, 558, 739, 586, 120, 887, -195, 1045, 1047, 558, ++ 382, 383, 85, 892, 893, 116, 66, 69, 160, 921, ++ 1199, -778, 69, 1185, 849, 125, 758, 220, -778, 991, ++ 992, -195, -784, 685, 685, 974, 117, 587, -195, 694, ++ 1200, -778, 978, 207, -778, 66, 1263, 1267, 431, 118, ++ 214, -195, -195, -195, -195, 216, -195, -195, 217, 66, ++ 66, 558, 66, 1235, 739, 970, 1193, 979, 431, 635, ++ 956, 692, 69, -523, 980, 1258, 572, 849, 1260, 1261, ++ 921, 752, 574, -784, 1254, 1296, 1233, -784, 728, 1029, ++ -445, -784, 248, 1030, 1175, 1175, 114, 115, 497, 497, ++ 942, 221, 930, 558, 558, 247, 188, 466, 292, -27, ++ 467, 191, 512, 511, 514, 66, -445, 300, 301, 299, ++ -27, -445, 138, 443, 139, 425, 1295, 426, 141, 578, ++ 846, 847, 304, -738, 444, -784, 1298, 427, 66, 66, ++ 842, -445, 1287, 826, 774, 829, 1175, 344, 578, 348, ++ 146, 359, 66, 66, -738, 66, 1080, 1080, 366, 1176, ++ 1176, 368, 60, 930, 369, 1005, -445, 1024, 1005, -637, ++ -637, 930, 374, -445, 397, 728, 380, 272, 475, 476, ++ -738, 273, 1066, 1067, 558, -738, -445, 957, 227, -445, ++ 636, 407, 274, 412, 66, 1190, 1191, 409, 511, 413, ++ 1175, 451, 558, 1175, 1175, -738, 66, 66, 66, 1265, ++ 1265, 1176, 275, 456, 183, 1270, 1271, 1121, 468, 61, ++ 67, 66, 66, 1300, 66, 458, 66, 135, 74, 463, ++ -738, -795, 276, 277, 469, 638, 477, -738, 150, 151, ++ 582, 584, 66, 220, 858, 860, 806, 808, 838, 840, ++ -738, -523, -738, -738, -738, 971, 973, 592, 842, 842, ++ 598, 138, -614, 139, 289, 1176, 728, 141, 1176, 1176, ++ 1151, 1153, 1280, 1281, 1266, 1266, 278, 279, 280, 281, ++ 1051, 1053, 600, -739, 745, 748, 1005, 1055, 1057, 146, ++ 601, 282, 283, 1183, 1184, 609, 611, 138, 98, 139, ++ 558, 60, 102, 141, 460, 462, 66, 1194, 613, -739, ++ 616, 621, 1080, 1080, -739, 624, 633, 628, 1211, 188, ++ 189, 190, 250, 694, 191, 146, 66, 66, 629, 130, ++ 132, 338, 98, -63, -739, 664, 192, 60, 66, 670, ++ 666, 668, 66, 1022, 1022, 66, 671, 194, -63, 675, ++ 686, 695, 697, 698, 699, 251, 702, 558, 213, -739, ++ 710, 969, 713, 252, 558, 714, -739, 717, 721, 977, ++ 983, 983, 726, 732, 990, 750, 754, 66, 66, -614, ++ 66, -614, -614, -739, 387, 387, 759, 253, 254, 765, ++ 770, 766, 255, 779, 1288, 1289, 1290, 1291, 259, 260, ++ 261, 262, 783, -729, 188, 308, 331, 333, 334, 191, ++ 336, 342, 343, 784, 789, 263, 264, 797, 791, 800, ++ 138, 443, 139, 1022, 801, 558, 141, 558, 302, 816, ++ 135, 734, 444, 712, 814, 815, 852, 854, 135, 66, ++ 855, 896, 983, 877, 895, 961, 964, 951, 146, 303, ++ 735, 975, 987, 1000, 1077, 1032, 1037, 1038, 736, 1039, ++ 60, 1034, 1022, 66, 138, 1040, 139, 164, 140, 185, ++ 141, 1041, 138, 1042, 139, 1043, 1048, 1069, 141, 289, ++ 289, 1050, 1068, 1085, 1087, 220, 142, 143, 1071, 144, ++ 145, 1120, 146, 1093, 1094, 147, 148, 149, 1100, -629, ++ 146, 1104, 1125, 1112, 60, 1124, 1132, 222, 224, 1138, ++ 735, 392, 60, 1142, 1148, 1146, 1149, 1162, 1186, 1192, ++ 560, 1163, 403, 1206, 66, 66, 157, 1238, 813, 1218, ++ 66, 66, 138, -342, 139, 969, 1224, -343, 141, 1140, ++ 287, 1278, 1022, 1022, -359, 1227, 138, 350, 139, 1236, ++ 1237, 288, 141, 308, 1257, 1279, -361, -360, 1247, 1277, ++ 146, 1284, -340, 289, 289, 607, 362, 1294, 1299, 1302, ++ 1203, 802, 60, 1301, 146, 188, 189, 190, 856, 867, ++ 191, 1178, 83, 84, 868, 869, 60, 124, 703, -65, ++ 715, 1203, 192, 947, 1022, 69, 193, 373, 571, 572, ++ 799, 573, 249, 194, 592, 574, 722, 1198, 250, 652, ++ 689, 1001, 1027, 1154, 1212, 134, 653, 1216, 575, 576, ++ 577, 1073, 1217, 308, 308, 1249, 66, 1223, 499, 442, ++ 502, 503, 817, 1178, 507, 719, 342, 1122, 342, 515, ++ 872, 251, 560, 673, 1283, 394, 768, 1135, 1022, 252, ++ 402, 1022, 1022, 773, 1136, 404, 376, 66, 66, 831, ++ 650, 596, 597, 0, 328, 367, 329, 694, 66, 66, ++ 66, 66, 0, 253, 254, 0, 0, 0, 255, 0, ++ 256, 257, 258, 0, 259, 260, 261, 262, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 620, ++ 0, 263, 264, 625, 626, 265, 266, 267, 0, 452, ++ 0, 0, 0, 66, 0, 0, 402, 0, 640, 459, ++ 224, 224, 308, 66, 308, 0, 387, 647, 0, 188, ++ 189, 190, 0, 387, 191, 0, 0, 0, -5, 0, ++ 0, 0, 0, 0, 0, 0, 192, 0, 402, 0, ++ 193, 0, 0, 0, 0, 0, 0, 194, 511, 0, ++ 18, 19, 20, 21, 22, 23, 24, 0, 560, 26, ++ 27, 28, 0, 30, 31, 32, 33, 34, 35, 36, ++ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, ++ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, ++ 57, 58, 59, 362, 362, 708, 605, 0, 0, 60, ++ 0, 0, 0, 0, 188, 189, 190, 0, 0, 608, ++ 394, 394, 0, -365, 0, 615, 0, 0, 0, 387, ++ 0, 192, 0, 0, 620, 193, 0, 0, 0, 0, ++ 0, 0, 194, 0, 0, 0, 0, 387, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 560, 0, 0, ++ 560, 0, 0, 0, 0, 0, 0, 649, 560, 0, ++ 655, 0, 0, 0, 0, 0, 663, 0, 0, 0, ++ 0, 0, 667, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 635, 387, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 560, 0, 0, 905, 0, 696, 0, 708, 708, 0, ++ 906, 0, 0, 0, 0, 0, 0, 0, 136, 137, ++ 0, 620, 620, 0, 809, 0, 909, 935, 910, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 560, 560, 138, 0, 139, 0, 140, 0, ++ 141, 729, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 830, 0, 0, 142, 143, 0, 144, ++ 145, 0, 146, 387, 0, 147, 148, 149, 150, 151, ++ 152, 153, 154, 0, 60, 0, 155, 156, 935, 387, ++ 708, 708, 0, 708, 0, 862, 767, 0, 362, 0, ++ 0, 0, 0, 0, 0, 0, 157, 402, 0, 0, ++ 158, 875, 159, 160, 161, 162, 0, 0, 0, 0, ++ 0, 0, 0, 560, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 635, ++ 0, 560, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 804, 0, 0, 905, 0, 0, 0, 0, 0, ++ 0, 906, 0, 907, 935, 935, 0, 0, 0, 136, ++ 137, 1092, 0, 735, 908, 875, 0, 909, 0, 910, ++ 0, 736, 0, 0, 0, 821, 0, 822, 0, 0, ++ 0, 655, 663, 0, 663, 138, 0, 139, 0, 140, ++ 0, 141, 0, 835, 0, 0, 0, 912, 0, 0, ++ 607, 1006, 1021, 1006, 1006, 0, 0, 142, 143, 0, ++ 144, 145, 0, 146, 0, 387, 147, 148, 149, 150, ++ 151, 152, 153, 913, 0, 60, 0, 155, 156, 560, ++ 0, 0, 0, 0, 876, 0, 875, 875, 0, 1049, ++ 0, 0, 0, 0, 0, 0, 0, 914, 0, 0, ++ 0, 158, 362, 915, 916, 161, 162, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 934, 0, 0, 939, 940, 0, 0, 0, 0, 0, ++ 0, 0, 1091, 0, 0, 0, 560, 0, 0, 0, ++ 0, 387, 387, 560, 0, 0, 0, 0, 213, 0, ++ 0, 0, 0, 0, 0, 387, 0, 0, 962, 0, ++ 935, 935, 0, 0, 0, 0, 935, 0, 0, 0, ++ 0, 403, 1006, 0, 0, 0, 0, 0, 0, 0, ++ 0, 934, 0, 0, 222, 0, 0, 399, 0, 1028, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 560, 0, 560, 0, 0, 135, ++ 0, 0, 0, 0, 0, 0, 0, 136, 137, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 655, 0, 0, 0, 0, 0, 1155, ++ 1157, 0, 0, 138, 0, 139, 0, 140, 0, 141, ++ 0, 1177, 1177, 0, 0, 0, 0, 934, 934, 0, ++ 0, 0, 0, 0, 934, 142, 143, 0, 144, 145, ++ 0, 146, 0, 0, 147, 148, 149, 150, 151, 152, ++ 153, 154, 400, 60, 0, 155, 156, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1107, ++ 1108, 0, 1109, 1177, 0, 157, 1118, 0, 0, 158, ++ 0, 159, 160, 161, 162, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1137, ++ 0, 0, 0, 0, 0, 1141, 0, 0, 0, 1028, ++ 0, 0, 0, 0, 0, 0, 0, 1177, 0, 0, ++ 1177, 1177, 0, 0, 0, 0, 1177, 1177, 0, 0, ++ 0, 0, 0, 0, 1158, 0, 0, 1272, 1273, 1274, ++ 1275, 0, 135, 1173, 224, 0, 0, 0, 0, 0, ++ 136, 137, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 934, 934, 0, 138, 0, 139, 934, ++ 140, 0, 141, 0, 0, 0, 0, 0, 0, 1213, ++ 1215, 0, 0, 0, 0, 1173, 0, 0, 142, 143, ++ 0, 144, 145, 0, 146, 0, 0, 147, 148, 149, ++ 150, 151, 152, 153, 154, 0, 60, 0, 155, 156, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 1251, 0, 0, 0, 0, 0, 0, -735, 157, 0, ++ -735, 0, 158, 223, 159, 160, 161, 162, 0, 1118, ++ 0, -735, 1118, 1118, 1118, -735, 0, 0, -735, 0, ++ 0, 0, 0, 0, -735, 0, -735, 0, 0, -775, ++ -735, 0, 0, 0, 0, 1276, 0, 0, 0, 0, ++ 0, 0, 0, 0, -735, 0, -735, -735, 0, -735, ++ 0, 0, 0, -735, 0, -735, 0, 0, -735, -735, ++ 0, 0, 0, -735, -735, 0, -735, -735, 0, -735, ++ 0, -735, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, -735, 0, 1297, 0, 0, 0, 0, 0, 0, ++ 0, -735, 0, -735, -735, -735, -735, -735, 0, 0, ++ -735, -735, -735, -735, -735, -735, -735, -735, -735, -735, ++ -735, -735, -735, -735, -735, -735, -735, -735, 0, -735, ++ -775, -735, -735, -735, -735, -735, -735, -735, -735, -735, ++ -736, 0, 0, -736, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, -736, 0, 0, 0, -736, 0, ++ 0, -736, 0, 0, 0, 0, 0, -736, 0, -736, ++ 0, 0, -776, -736, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, -736, 0, -736, ++ -736, 0, -736, 0, 0, 0, -736, 0, -736, 0, ++ 0, -736, -736, 0, 0, 0, -736, -736, 0, -736, ++ -736, 0, -736, 0, -736, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, -736, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, -736, 0, -736, -736, -736, -736, ++ -736, 0, 0, -736, -736, -736, -736, -736, -736, -736, ++ -736, -736, -736, -736, -736, -736, -736, -736, -736, -736, ++ -736, 0, -736, -776, -736, -736, -736, -736, -736, -736, ++ -736, -736, -736, -737, 0, 0, -737, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, -737, 0, 0, ++ 0, -737, 0, 0, -737, 0, 0, 0, 0, 0, ++ -737, 0, -737, 0, 0, -777, -737, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ -737, 0, -737, -737, 0, -737, 0, 0, 0, -737, ++ 0, -737, 0, 0, -737, -737, 0, 0, 0, -737, ++ -737, 0, -737, -737, 0, -737, 0, -737, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, -737, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, -737, 0, -737, ++ -737, -737, -737, -737, 0, 0, -737, -737, -737, -737, ++ -737, -737, -737, -737, -737, -737, -737, -737, -737, -737, ++ -737, -737, -737, -737, 0, -737, -777, -737, -737, -737, ++ -737, -737, -737, -737, -737, -737, -733, 0, 0, -733, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ -733, 0, 0, 0, -733, 0, 0, -733, 0, 0, ++ 0, 0, 0, -733, 0, -733, 0, 0, -773, -733, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, -733, 0, -733, -733, 0, -733, 0, ++ 0, 0, -733, 0, -733, 0, 0, -733, -733, 0, ++ 0, 0, -733, -733, 0, -733, -733, 0, -733, 0, ++ -733, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ -733, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ -733, 0, -733, -733, -733, -733, -733, 0, 0, -733, ++ -733, -733, -733, -733, -733, -733, -733, -733, -733, -733, ++ -733, -733, -733, -733, -733, -733, -733, 0, -733, -773, ++ -733, -733, -733, -733, -733, -733, -733, -733, -733, -734, ++ 0, 0, -734, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, -734, 0, 0, 0, -734, 0, 0, ++ -734, 0, 0, 0, 0, 0, -734, 0, -734, 0, ++ 0, -774, -734, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, -734, 0, -734, -734, ++ 0, -734, 0, 0, 0, -734, 0, -734, 0, 0, ++ -734, -734, 0, 0, 0, -734, -734, 0, -734, -734, ++ 0, -734, 0, -734, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, -734, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, -734, 0, -734, -734, -734, -734, -734, ++ 0, 0, -734, -734, -734, -734, -734, -734, -734, -734, ++ -734, -734, -734, -734, -734, -734, -734, -734, -734, -734, ++ 0, -734, -774, -734, -734, -734, -734, -734, -734, -734, ++ -734, -734, 228, 0, 0, 0, 12, 13, 14, 15, ++ 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 135, 0, 907, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 908, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 18, 19, 20, 21, ++ 22, 23, 24, 0, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 0, +- 0, 0, 0, 0, 0, 60, 116, 12, 13, 14, +- 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 134, 0, 0, 0, 0, 0, 0, 0, 135, +- 136, 0, 0, 725, 0, 0, 0, 0, 0, 0, +- 0, 118, 0, 0, 0, 0, 17, 18, 19, 20, +- 21, 22, 23, 0, 24, 997, 26, 998, 28, 999, +- 30, 31, 1000, 33, 34, 35, 36, 37, 38, 39, +- 40, 41, 42, 43, 44, 45, 46, 47, 1001, 1002, +- 50, 1003, 1004, 53, 1005, 55, 56, 1006, 1007, 1008, +- 149, 150, 151, 152, 153, 0, 60, 0, 154, 155, +- 0, 0, 0, 0, 0, 0, 0, 12, 13, 14, +- 15, 16, 0, 0, 0, 0, 0, 0, 904, 0, +- 0, 134, 157, 0, 158, 159, 0, 160, 161, 135, +- 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 17, 18, 19, 20, +- 21, 22, 23, 0, 24, 997, 26, 998, 28, 999, +- 30, 31, 1000, 33, 34, 35, 36, 37, 38, 39, +- 40, 41, 42, 43, 44, 45, 46, 47, 1001, 1002, +- 50, 1003, 1004, 53, 1005, 55, 56, 1006, 1007, 1008, +- 149, 150, 151, 152, 153, 0, 60, 0, 154, 155, +- 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 1099, 0, +- 0, 0, 1100, 136, 158, 159, 0, 160, 161, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, +- 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, +- 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, +- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, +- 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, +- 57, 58, 59, 149, 150, 0, 0, 0, 0, 60, +- 0, 154, 155, 0, 0, 12, 13, 14, 15, 16, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 134, +- 0, 897, 0, 0, 0, 0, 0, 135, 136, 0, +- 160, 161, 898, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 17, 18, 19, 20, 21, 22, +- 23, 0, 24, 997, 26, 998, 28, 999, 30, 31, +- 1000, 33, 34, 35, 36, 37, 38, 39, 40, 41, +- 42, 43, 44, 45, 46, 47, 1001, 1002, 50, 1003, +- 1004, 53, 1005, 55, 56, 1006, 1007, 1008, 149, 150, +- 151, 152, 153, 479, 60, 0, 154, 155, 12, 13, +- 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 480, 0, 156, 0, 0, 0, +- 157, 0, 158, 159, 0, 481, 0, 0, 0, 0, +- 0, 0, 0, 0, -786, 0, 0, 17, 18, 19, +- 20, 21, 22, 23, 482, 24, 25, 26, 27, 28, +- 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, +- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, +- 49, 50, 51, 52, 53, 483, 55, 56, 57, 58, +- 59, 0, 0, 0, 0, 0, 0, 60, 1138, 0, +- 0, 0, 484, 12, 13, 14, 15, 16, 0, 0, +- 0, 0, 983, 0, 0, 0, -776, 0, 0, 0, +- 0, 485, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 1025, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 17, 18, 19, 20, 21, 22, 23, 0, +- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, +- 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, +- 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, +- 54, 55, 56, 57, 58, 59, 0, 510, 0, 341, +- 511, 0, 60, 0, 0, 134, 512, 0, 513, 514, +- 0, 0, 0, 0, 515, 0, 516, 0, 0, 0, +- 0, 0, 517, 0, 0, 0, -776, 518, 519, 520, +- 0, 0, 0, 0, 521, 0, 0, 0, 0, 137, +- 0, 138, 0, 139, 0, 0, 140, 0, 0, 0, +- 0, 0, 0, 522, 523, 0, 0, 0, 524, 0, +- 0, 0, 141, 142, 525, 143, 144, 526, 145, 527, +- 528, 146, 147, 148, 335, 510, 0, 341, 511, 0, +- 60, 0, 0, 134, 512, 0, 513, 514, 0, 0, +- 0, 0, 515, 0, 516, 0, 0, 0, 0, 0, +- 517, 0, 156, 0, 0, 0, 519, 520, 529, 0, +- 0, 0, 521, 0, 0, 0, 0, 137, 0, 138, +- 0, 139, 0, 0, 140, 0, 0, 0, 0, -288, +- 134, 522, 523, 0, 0, 0, 524, 0, 135, 136, +- 141, 142, 525, 143, 144, 526, 145, 527, 528, 146, +- 147, 148, 0, 0, 0, 0, 0, 0, 60, 0, +- 0, 0, 0, 0, 137, 0, 138, 0, 139, 0, +- 0, 140, 0, 0, 0, 0, 0, 0, 0, 0, +- 156, 0, 0, 0, 0, 0, 529, 141, 142, 0, +- 143, 144, 0, 145, 0, 0, 146, 147, 148, 149, +- 150, 151, 152, 153, 134, 60, 0, 154, 155, 0, +- 0, 0, 135, 136, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, -288, 156, 0, 0, +- 0, 157, 0, 158, 159, 0, 160, 161, 137, 0, +- 138, 0, 139, 0, 0, 140, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 141, 142, 0, 143, 144, 0, 145, 0, 0, +- 146, 147, 148, 149, 150, 151, 152, 153, 134, 60, +- 0, 154, 155, 0, 0, 0, 135, 136, 0, 0, +- 725, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 156, 0, 0, 0, 157, 223, 158, 159, 0, +- 160, 161, 137, 0, 138, 0, 139, 0, 0, 140, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 141, 142, 0, 143, 144, +- 0, 145, 0, 0, 146, 147, 148, 149, 150, 151, +- 152, 153, 134, 60, 0, 154, 155, 0, 0, 0, +- 135, 136, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 904, 0, 0, 0, 157, +- 0, 158, 159, 0, 160, 161, 137, 0, 138, 0, +- 139, 0, 0, 140, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 141, +- 142, 0, 143, 144, 0, 145, 0, 0, 146, 147, +- 148, 149, 150, 151, 152, 153, 134, 60, 0, 154, +- 155, 0, 0, 0, 135, 136, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, +- 0, 0, 0, 157, 0, 158, 159, 0, 160, 161, +- 137, 0, 138, 0, 139, 0, 0, 140, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 141, 142, 0, 143, 144, 0, 145, +- 0, 0, 146, 147, 148, 149, 150, 151, 152, 153, +- 0, 60, 0, 154, 155, 736, 0, 0, 0, 0, +- 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, +- 0, 0, 0, 1099, 0, 0, 480, 1100, 0, 158, +- 159, 0, 160, 161, 0, 0, 0, 481, 0, 0, +- 0, 0, 0, 0, 0, 0, -786, 0, 0, 17, +- 18, 19, 20, 21, 22, 23, 482, 24, 25, 26, +- 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, ++ 0, 0, 0, 0, 0, 0, 230, 231, 232, 233, ++ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, ++ 244, 245, 1164, 0, 0, 0, 0, 0, 0, 12, ++ 13, 14, 15, 16, 17, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 135, 0, 0, 0, 0, 0, ++ 0, 0, 136, 137, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, ++ 19, 20, 21, 22, 23, 24, 0, 25, 1008, 27, ++ 1009, 29, 1010, 31, 1011, 33, 34, 35, 36, 37, ++ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, ++ 1012, 1013, 50, 1014, 1015, 53, 1016, 55, 56, 1017, ++ 1018, 1019, 150, 151, 152, 153, 154, 0, 60, 0, ++ 155, 156, 0, 1179, 0, 0, 0, 0, 0, 0, ++ 12, 13, 14, 15, 16, 17, 0, 0, 0, 0, ++ 1165, 0, -795, 0, 1114, 135, 159, 160, 161, 162, ++ 0, 0, 0, 136, 137, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 18, 19, 20, 21, 22, 23, 24, 0, 25, 1008, ++ 27, 1009, 29, 1010, 31, 1011, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, +- 47, 48, 49, 50, 51, 52, 53, 483, 55, 56, +- 57, 58, 59, 0, 0, 0, 0, 0, 0, 60, +- 832, 0, 0, 0, 737, -24, -24, -24, -24, -24, +- 0, 0, 0, -24, 0, 0, 0, 0, -24, 0, +- 0, -24, 0, 0, 0, -24, 0, 0, 0, 0, +- 0, 0, -24, -24, 0, 0, 0, 0, 0, -24, +- 0, -24, 0, 0, 17, 18, 19, 20, 21, 22, +- 23, -24, 0, 25, 26, 27, 0, 29, -24, 31, ++ 47, 1012, 1013, 50, 1014, 1015, 53, 1016, 55, 56, ++ 1017, 1018, 1019, 150, 151, 152, 153, 154, 0, 60, ++ 0, 155, 156, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 157, 0, 0, 1007, 158, 223, 159, 160, 161, ++ 162, 12, 13, 14, 15, 16, 17, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 135, 0, 0, 0, ++ 0, 0, 0, 0, 136, 137, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 18, 19, 20, 21, 22, 23, 24, 0, 25, ++ 1008, 27, 1009, 29, 1010, 31, 1011, 33, 34, 35, ++ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, ++ 46, 47, 1012, 1013, 50, 1014, 1015, 53, 1016, 55, ++ 56, 1017, 1018, 1019, 150, 151, 152, 153, 154, 0, ++ 60, 0, 155, 156, 0, 0, 0, 0, 0, 0, ++ 635, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 157, 0, 0, 905, 158, 0, 159, 160, ++ 161, 162, 906, 0, 907, 0, 0, 0, 0, 0, ++ 136, 137, 0, 0, 735, 908, 0, 0, 909, 0, ++ 910, 0, 736, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 911, 0, 0, 138, 0, 139, 0, ++ 140, 0, 141, 0, 0, 0, 0, 0, 912, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 142, 143, ++ 0, 144, 145, 0, 146, 0, 0, 147, 148, 149, ++ 150, 151, 152, 153, 913, 0, 60, 0, 155, 156, ++ 0, 0, 0, 0, 0, 0, 0, 1056, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 914, 0, ++ -785, 0, 158, 0, 915, 916, 161, 162, -785, 135, ++ 0, 0, 0, 0, 0, 0, 0, 136, 137, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 399, 138, 0, 139, 0, 140, 0, 141, ++ 0, 0, -785, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 135, 142, 143, 0, 144, 145, ++ 0, 146, 136, 137, 147, 148, 149, 150, 151, 152, ++ 153, 154, 0, 60, 0, 155, 156, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 138, 0, ++ 139, 0, 140, 0, 141, 157, 0, 0, 0, 158, ++ 0, 159, 160, 161, 162, 0, 0, 1078, 0, 0, ++ 142, 143, 0, 144, 145, 0, 146, 0, 0, 147, ++ 148, 149, 150, 151, 152, 153, 154, 775, 60, 135, ++ 155, 156, 0, 0, 0, 0, 0, 136, 137, 0, ++ 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, ++ 157, 0, 0, 0, 158, 0, 159, 160, 161, 162, ++ 0, 0, 393, 138, 0, 139, 0, 140, 0, 141, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 135, 142, 143, 0, 144, 145, ++ 0, 146, 136, 137, 147, 148, 149, 150, 151, 152, ++ 153, 154, 0, 60, 0, 155, 156, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 399, 138, 0, ++ 139, 0, 140, 0, 141, 914, 0, 0, 0, 158, ++ 0, 159, 160, 161, 162, 0, 0, 0, 0, 135, ++ 142, 143, 0, 144, 145, 0, 146, 136, 137, 147, ++ 148, 149, 150, 151, 152, 153, 154, 0, 60, 0, ++ 155, 156, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 461, 138, 0, 139, 0, 140, 0, 141, ++ 157, 0, 0, 0, 158, 0, 159, 160, 161, 162, ++ 0, 0, 0, 0, 135, 142, 143, 0, 144, 145, ++ 0, 146, 136, 137, 147, 148, 149, 150, 151, 152, ++ 153, 154, 0, 60, 0, 155, 156, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 603, 138, 0, ++ 139, 0, 140, 0, 141, 157, 0, 0, 0, 158, ++ 0, 159, 160, 161, 162, 0, 0, 0, 0, 135, ++ 142, 143, 0, 144, 145, 0, 146, 136, 137, 147, ++ 148, 149, 150, 151, 152, 153, 154, 0, 60, 0, ++ 155, 156, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 610, 138, 0, 139, 0, 140, 0, 141, ++ 157, 0, 0, 0, 158, 0, 159, 160, 161, 162, ++ 0, 0, 0, 0, 135, 142, 143, 0, 144, 145, ++ 0, 146, 136, 137, 147, 148, 149, 150, 151, 152, ++ 153, 154, 0, 60, 0, 155, 156, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 614, 138, 0, ++ 139, 0, 140, 0, 141, 157, 0, 0, 0, 158, ++ 0, 159, 160, 161, 162, 0, 0, 0, 0, 135, ++ 142, 143, 0, 144, 145, 0, 146, 136, 137, 147, ++ 148, 149, 150, 151, 152, 153, 154, 0, 60, 0, ++ 155, 156, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 659, 138, 0, 139, 0, 140, 0, 141, ++ 157, 0, 0, 0, 158, 0, 159, 160, 161, 162, ++ 0, 0, 0, 0, 135, 142, 143, 0, 144, 145, ++ 0, 146, 136, 137, 147, 148, 149, 150, 151, 152, ++ 153, 154, 0, 60, 0, 155, 156, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 828, 138, 0, ++ 139, 0, 140, 0, 141, 157, 0, 0, 0, 158, ++ 0, 159, 160, 161, 162, 0, 0, 0, 0, 135, ++ 142, 143, 0, 144, 145, 0, 146, 136, 137, 147, ++ 148, 149, 150, 151, 152, 153, 154, 0, 60, 0, ++ 155, 156, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 878, 138, 0, 139, 0, 140, 0, 141, ++ 157, 0, 0, 0, 158, 0, 159, 160, 161, 162, ++ 0, 0, 0, 0, 135, 142, 143, 0, 144, 145, ++ 0, 146, 136, 137, 147, 148, 149, 150, 151, 152, ++ 153, 154, 0, 60, 0, 155, 156, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 1052, 138, 0, ++ 139, 0, 140, 0, 141, 157, 0, 0, 0, 158, ++ 0, 159, 160, 161, 162, 0, 0, 0, 0, 135, ++ 142, 143, 0, 144, 145, 0, 146, 136, 137, 147, ++ 148, 149, 150, 151, 152, 153, 154, 0, 60, 0, ++ 155, 156, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 1060, 138, 0, 139, 0, 140, 0, 141, ++ 157, 0, 0, 0, 158, 0, 159, 160, 161, 162, ++ 0, 0, 0, 0, 135, 142, 143, 0, 144, 145, ++ 0, 146, 136, 137, 147, 148, 149, 150, 151, 152, ++ 153, 154, 0, 60, 0, 155, 156, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 1072, 138, 0, ++ 139, 0, 140, 0, 141, 157, 0, 0, 0, 158, ++ 0, 159, 160, 161, 162, 0, 0, 0, 0, -333, ++ 142, 143, 0, 144, 145, 0, 146, -333, -333, 147, ++ 148, 149, 150, 151, 152, 153, 154, 0, 60, 0, ++ 155, 156, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 1074, -333, 0, -333, 0, -333, 0, -333, ++ 157, 0, 0, 0, 158, 0, 159, 160, 161, 162, ++ 0, 0, 0, 0, -330, -333, -333, 0, -333, -333, ++ 0, -333, -330, -330, -333, -333, -333, -333, -333, -333, ++ -333, -333, 0, -333, 0, -333, -333, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 1105, -330, 0, ++ -330, 0, -330, 0, -330, -333, 0, 0, 0, -333, ++ 0, -333, -333, -333, -333, 0, 0, 0, 0, 135, ++ -330, -330, 0, -330, -330, 0, -330, 136, 137, -330, ++ -330, -330, -330, -330, -330, -330, -330, 0, -330, 0, ++ -330, -330, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 1207, 138, 0, 139, 0, 140, 0, 141, ++ -330, 0, 0, 0, -330, 0, -330, -330, -330, -330, ++ 0, 0, 0, 0, 135, 142, 143, 0, 144, 145, ++ 0, 146, 136, 137, 147, 148, 149, 150, 151, 152, ++ 153, 154, 0, 60, 0, 155, 156, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 1214, 138, 0, ++ 139, 0, 140, 0, 141, 157, 0, 0, 0, 158, ++ 0, 159, 160, 161, 162, 0, 0, 0, 0, 135, ++ 142, 143, 0, 144, 145, 0, 146, 136, 137, 147, ++ 148, 149, 150, 151, 152, 153, 154, 0, 60, 0, ++ 155, 156, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 138, 0, 139, 0, 140, 0, 141, ++ 157, 0, 0, 0, 158, 0, 159, 160, 161, 162, ++ 0, 0, 0, 0, 0, 142, 143, 0, 144, 145, ++ 0, 146, 0, 0, 147, 148, 149, 150, 151, 152, ++ 153, 154, 0, 60, 0, 155, 156, 0, 0, 0, ++ 0, 0, 0, 0, 0, 12, 13, 14, 15, 16, ++ 17, 0, 309, 0, 0, 157, 310, 0, 0, 158, ++ 0, 159, 160, 161, 162, 311, 0, 312, 0, 0, ++ 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 18, 19, 20, 21, 22, ++ 23, 24, 0, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 0, 0, +- 556, 0, 0, 0, 60, -25, -25, -25, -25, -25, +- 0, 0, 0, -25, 0, 0, 0, 0, -25, 0, +- 0, -25, 0, 0, 0, -25, 0, 0, 0, 0, +- 0, 0, -25, -25, 0, 0, 0, 0, 0, -25, +- 0, -25, 0, 0, 17, 18, 19, 20, 21, 0, +- 23, -25, 0, 25, 26, 27, 0, 29, -25, 31, ++ 0, 0, 0, 0, 60, 116, 314, 315, 0, 0, ++ 0, 316, 0, 317, 318, 319, 320, 259, 260, 261, ++ 262, 278, 279, 280, 281, 12, 13, 14, 15, 16, ++ 17, 0, 0, 0, 321, 322, 323, 324, 325, 118, ++ 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 18, 19, 20, 21, 22, ++ 23, 24, 0, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, +- 42, 43, 44, 0, 46, 47, 48, 49, 50, 51, ++ 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 0, 0, +- 1180, 0, 0, 0, 60, -786, -786, -786, -786, -786, +- 0, 0, 0, 0, 0, 0, 0, 0, -786, 0, +- 0, -786, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, -786, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, -786, -786, -786, -786, -786, -786, +- -786, 0, -786, -786, -786, -786, -786, -786, -786, -786, +- -786, -786, -786, -786, -786, -786, -786, -786, -786, -786, +- -786, -786, -786, -786, -786, -786, -786, -786, -786, -786, +- -786, -786, -786, -786, -786, -786, -786, -786, 0, 0, +- 982, 0, 0, 0, -786, 12, 13, 14, 15, 16, +- 0, 0, 0, 0, 983, 0, 0, 0, -238, 0, ++ 0, 0, 0, 0, 60, 116, 12, 13, 14, 15, ++ 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 135, 0, 0, 0, 0, 0, 0, 0, 136, ++ 137, 0, 0, 735, 0, 0, 0, 0, 0, 118, ++ 0, 0, 0, 0, 0, 0, 18, 19, 20, 21, ++ 22, 23, 24, 0, 25, 1008, 27, 1009, 29, 1010, ++ 31, 1011, 33, 34, 35, 36, 37, 38, 39, 40, ++ 41, 42, 43, 44, 45, 46, 47, 1012, 1013, 50, ++ 1014, 1015, 53, 1016, 55, 56, 1017, 1018, 1019, 150, ++ 151, 152, 153, 154, 0, 60, 0, 155, 156, 0, ++ 0, 0, 0, 0, 12, 13, 14, 15, 16, 17, ++ 0, 0, 0, 0, 0, 0, 0, 914, 0, 135, ++ 0, 158, 0, 159, 160, 161, 162, 136, 137, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 17, 18, 19, 20, 21, 22, +- 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, ++ 0, 0, 0, 0, 18, 19, 20, 21, 22, 23, ++ 24, 0, 25, 1008, 27, 1009, 29, 1010, 31, 1011, ++ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, ++ 43, 44, 45, 46, 47, 1012, 1013, 50, 1014, 1015, ++ 53, 1016, 55, 56, 1017, 1018, 1019, 150, 151, 152, ++ 153, 154, 484, 60, 0, 155, 156, 0, 0, 12, ++ 13, 14, 15, 16, 17, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 1113, 485, 0, 0, 1114, ++ 0, 159, 160, 161, 162, 0, 0, 486, 0, 0, ++ 0, 0, 0, 0, 0, 0, -795, 0, 0, 18, ++ 19, 20, 21, 22, 23, 24, 487, 25, 26, 27, ++ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, ++ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, ++ 48, 49, 50, 51, 52, 53, 488, 55, 56, 57, ++ 58, 59, 12, 13, 14, 15, 16, 17, 60, 0, ++ 0, 0, 0, 489, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 137, 0, 0, 0, ++ 0, 0, 490, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 18, 19, 20, 21, 22, 23, 24, 0, ++ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, ++ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, ++ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, ++ 55, 56, 57, 58, 59, 150, 151, 0, 1152, 0, ++ 0, 60, 0, 155, 156, 12, 13, 14, 15, 16, ++ 17, 0, 0, 0, 0, 994, 0, 0, 0, -785, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 161, 162, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 18, 19, 20, 21, 22, ++ 23, 24, 0, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, +- 52, 53, 54, 55, 56, 57, 58, 59, 0, 0, +- 334, 0, 0, 0, 60, 12, 13, 14, 15, 16, ++ 52, 53, 54, 55, 56, 57, 58, 59, 12, 13, ++ 14, 15, 16, 17, 60, 0, 0, 0, 0, 0, ++ 0, 0, 0, 135, 0, 907, 0, 0, 0, 0, ++ 0, 136, 137, 0, 0, 0, 908, 0, -785, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 18, 19, ++ 20, 21, 22, 23, 24, 0, 25, 1008, 27, 1009, ++ 29, 1010, 31, 1011, 33, 34, 35, 36, 37, 38, ++ 39, 40, 41, 42, 43, 44, 45, 46, 47, 1012, ++ 1013, 50, 1014, 1015, 53, 1016, 55, 56, 1017, 1018, ++ 1019, 150, 151, 152, 153, 154, 0, 60, 0, 155, ++ 156, 0, 0, 516, 0, 344, 517, 0, 0, 0, ++ 0, 135, 518, 0, 519, 520, 0, 0, 0, 157, ++ 521, 0, 522, 158, 0, 159, 160, 0, 523, 0, ++ 0, 0, 0, 524, 525, 526, 0, 0, 0, 0, ++ 527, 0, 0, 0, 0, 138, 0, 139, 0, 140, ++ 0, 141, 0, 0, 0, 0, 0, 0, 528, 529, ++ 0, 0, 0, 530, 0, 0, 0, 142, 143, 531, ++ 144, 145, 532, 146, 533, 534, 147, 148, 149, 338, ++ 516, 0, 344, 517, 0, 60, 0, 0, 135, 518, ++ 0, 519, 520, 0, 0, 0, 0, 521, 0, 522, ++ 0, 0, 0, 0, 0, 523, 0, 157, 0, 0, ++ 0, 525, 526, 535, 0, 0, 0, 527, 0, 0, ++ 0, 0, 138, 0, 139, 0, 140, 0, 141, 0, ++ 0, 0, 0, 0, 0, 528, 529, 0, 0, 0, ++ 530, 0, 0, 0, 142, 143, 531, 144, 145, 532, ++ 146, 533, 534, 147, 148, 149, -295, 135, 0, 0, ++ 0, 0, 60, 0, 0, 136, 137, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, ++ 535, 138, 0, 139, 0, 140, 0, 141, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 142, 143, 0, 144, 145, 0, 146, ++ 0, 0, 147, 148, 149, 150, 151, 152, 153, 154, ++ 135, 60, 0, 155, 156, 0, 0, 0, 136, 137, ++ 0, 0, 735, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, -295, 157, 0, 0, 0, 158, 0, 159, ++ 160, 161, 162, 0, 138, 0, 139, 0, 140, 0, ++ 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 135, 142, 143, 0, 144, ++ 145, 0, 146, 136, 137, 147, 148, 149, 150, 151, ++ 152, 153, 154, 0, 60, 0, 155, 156, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, ++ 0, 139, 0, 140, 0, 141, 914, 0, 0, 0, ++ 158, 0, 159, 160, 161, 162, 0, 0, 0, 0, ++ 135, 142, 143, 0, 144, 145, 0, 146, 136, 137, ++ 147, 148, 149, 150, 151, 152, 153, 154, 0, 60, ++ 0, 155, 156, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 138, 0, 139, 0, 140, 0, ++ 141, 157, 0, 0, 0, 158, 0, 159, 160, 161, ++ 162, 0, 0, 0, 0, 135, 142, 143, 0, 144, ++ 145, 0, 146, 136, 137, 147, 148, 149, 150, 151, ++ 152, 153, 154, 0, 60, 0, 155, 156, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, ++ 0, 139, 0, 140, 0, 141, 1113, 0, 0, 0, ++ 1114, 0, 159, 160, 161, 162, 0, 0, 0, 0, ++ 0, 142, 143, 0, 144, 145, 0, 146, 0, 0, ++ 147, 148, 149, 150, 151, 152, 153, 154, 746, 60, ++ 0, 155, 156, 0, 0, 12, 13, 14, 15, 16, ++ 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 157, 485, 0, 0, 158, 0, 159, 160, 0, ++ 0, 0, 0, 486, 0, 0, 0, 0, 0, 0, ++ 0, 0, -795, 0, 0, 18, 19, 20, 21, 22, ++ 23, 24, 487, 25, 26, 27, 28, 29, 30, 31, ++ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, ++ 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, ++ 52, 53, 488, 55, 56, 57, 58, 59, 0, 0, ++ 0, 0, 0, 839, 60, 0, 0, 0, 0, 747, ++ -24, -24, -24, -24, -24, -24, 0, 0, 0, -24, ++ 0, 0, 0, 0, -24, 0, 0, -24, 0, 0, ++ 0, -24, 0, 0, 0, 0, 0, 0, -24, -24, ++ 0, 0, 0, 0, 0, -24, 0, -24, 0, 0, ++ 18, 19, 20, 21, 22, 23, 24, -24, 0, 26, ++ 27, 28, 0, 30, 31, 32, 33, 34, 35, 36, ++ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, ++ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, ++ 57, 58, 59, 562, 0, 0, 0, 0, 0, 60, ++ -25, -25, -25, -25, -25, -25, 0, 0, 0, -25, ++ 0, 0, 0, 0, -25, 0, 0, -25, 0, 0, ++ 0, -25, 0, 0, 0, 0, 0, 0, -25, -25, ++ 0, 0, 0, 0, 0, -25, 0, -25, 0, 0, ++ 18, 19, 20, 21, 22, 0, 24, -25, 0, 26, ++ 27, 28, 0, 30, 31, 32, 33, 34, 35, 36, ++ 37, 38, 39, 40, 41, 42, 43, 44, 0, 46, ++ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, ++ 57, 58, 59, 1195, 0, 0, 0, 0, 0, 60, ++ -795, -795, -795, -795, -795, -795, 0, 0, 0, 0, ++ 0, 0, 0, 0, -795, 0, 0, -795, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, -795, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ -795, -795, -795, -795, -795, -795, -795, 0, -795, -795, ++ -795, -795, -795, -795, -795, -795, -795, -795, -795, -795, ++ -795, -795, -795, -795, -795, -795, -795, -795, -795, -795, ++ -795, -795, -795, -795, -795, -795, -795, -795, -795, -795, ++ -795, -795, -795, 993, 0, 0, 0, 0, 0, -795, ++ 12, 13, 14, 15, 16, 17, 0, 0, 0, 0, ++ 994, 0, 0, 0, -245, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 18, 19, 20, 21, 22, 23, 24, 0, 25, 26, ++ 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, ++ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, ++ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, ++ 57, 58, 59, 337, 0, 0, 0, 0, 0, 60, ++ 12, 13, 14, 15, 16, 17, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 17, 18, 19, 20, 21, 22, +- 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, +- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, +- 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, +- 52, 53, 54, 55, 56, 57, 58, 59, 335, 0, +- 507, 0, 0, 0, 60, 12, 13, 14, 15, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 18, 19, 20, 21, 22, 23, 24, 0, 25, 26, ++ 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, ++ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, ++ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, ++ 57, 58, 59, 338, 513, 0, 0, 0, 0, 60, ++ 0, 12, 13, 14, 15, 16, 17, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 17, 18, 19, 20, 21, 22, +- 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, +- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, +- 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, +- 52, 53, 54, 55, 56, 57, 58, 59, 335, 0, +- 11, 0, 0, 0, 60, 12, 13, 14, 15, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 18, 19, 20, 21, 22, 23, 24, 0, 25, ++ 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, ++ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, ++ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, ++ 56, 57, 58, 59, 338, 11, 0, 0, 0, 0, ++ 60, 0, 12, 13, 14, 15, 16, 17, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 17, 18, 19, 20, 21, 22, +- 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, +- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, +- 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, +- 52, 53, 54, 55, 56, 57, 58, 59, 0, 0, +- 130, 0, 0, 0, 60, 12, 13, 14, 15, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 18, 19, 20, 21, 22, 23, 24, 0, ++ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, ++ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, ++ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, ++ 55, 56, 57, 58, 59, 131, 0, 0, 0, 0, ++ 0, 60, 12, 13, 14, 15, 16, 17, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 17, 18, 19, 20, 21, 22, +- 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, +- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, +- 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, +- 52, 53, 54, 55, 56, 57, 58, 59, 0, 0, +- 577, 0, 0, 0, 60, 12, 13, 14, 15, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 18, 19, 20, 21, 22, 23, 24, 0, ++ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, ++ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, ++ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, ++ 55, 56, 57, 58, 59, 617, 0, 0, 0, 0, ++ 0, 60, 12, 13, 14, 15, 16, 17, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 17, 18, 19, 20, 21, 22, +- 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, +- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, +- 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, +- 52, 53, 54, 55, 56, 57, 58, 59, 0, 0, +- 703, 0, 0, 0, 60, 12, 13, 14, 15, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 18, 19, 20, 21, 22, 23, 24, 0, ++ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, ++ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, ++ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, ++ 55, 56, 57, 58, 59, 704, 0, 0, 0, 0, ++ 0, 60, 12, 13, 14, 15, 16, 17, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 17, 18, 19, 20, 21, 22, +- 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, +- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, +- 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, +- 52, 53, 483, 55, 56, 57, 58, 59, 0, 0, +- 784, 0, 0, 0, 60, 12, 13, 14, 15, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 18, 19, 20, 21, 22, 23, 24, 0, ++ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, ++ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, ++ 45, 46, 47, 48, 49, 50, 51, 52, 53, 488, ++ 55, 56, 57, 58, 59, 807, 0, 0, 0, 0, ++ 0, 60, 12, 13, 14, 15, 16, 17, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 17, 18, 19, 20, 21, 22, +- 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, +- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, +- 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, +- 52, 53, 54, 55, 56, 57, 58, 59, 0, 0, +- 834, 0, 0, 0, 60, 12, 13, 14, 15, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 18, 19, 20, 21, 22, 23, 24, 0, ++ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, ++ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, ++ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, ++ 55, 56, 57, 58, 59, 841, 0, 0, 0, 0, ++ 0, 60, 12, 13, 14, 15, 16, 17, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 17, 18, 19, 20, 21, 22, +- 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, +- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, +- 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, +- 52, 53, 54, 55, 56, 57, 58, 59, 0, 0, +- 851, 0, 0, 0, 60, 12, 13, 14, 15, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 18, 19, 20, 21, 22, 23, 24, 0, ++ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, ++ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, ++ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, ++ 55, 56, 57, 58, 59, 859, 0, 0, 0, 0, ++ 0, 60, 12, 13, 14, 15, 16, 17, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 17, 18, 19, 20, 21, 22, +- 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, +- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, +- 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, +- 52, 53, 483, 55, 56, 57, 58, 59, 0, 0, +- 961, 0, 0, 0, 60, 12, 13, 14, 15, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 18, 19, 20, 21, 22, 23, 24, 0, ++ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, ++ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, ++ 45, 46, 47, 48, 49, 50, 51, 52, 53, 488, ++ 55, 56, 57, 58, 59, 972, 0, 0, 0, 0, ++ 0, 60, 12, 13, 14, 15, 16, 17, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 17, 18, 19, 20, 21, 22, +- 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, +- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, +- 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, +- 52, 53, 54, 55, 56, 57, 58, 59, 0, 0, +- 1032, 0, 0, 0, 60, 12, 13, 14, 15, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 18, 19, 20, 21, 22, 23, 24, 0, ++ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, ++ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, ++ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, ++ 55, 56, 57, 58, 59, 1046, 0, 0, 0, 0, ++ 0, 60, 12, 13, 14, 15, 16, 17, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 17, 18, 19, 20, 21, 22, +- 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, +- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, +- 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, +- 52, 53, 54, 55, 56, 57, 58, 59, 0, 0, +- 1142, 0, 0, 0, 60, 12, 13, 14, 15, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 18, 19, 20, 21, 22, 23, 24, 0, ++ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, ++ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, ++ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, ++ 55, 56, 57, 58, 59, 1156, 0, 0, 0, 0, ++ 0, 60, 12, 13, 14, 15, 16, 17, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 17, 18, 19, 20, 21, 22, +- 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, +- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, +- 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, +- 52, 53, 54, 55, 56, 57, 58, 59, 585, 0, +- 0, 0, 0, -112, 60, 0, 0, -112, 0, 0, +- 0, 0, 0, 0, 0, 0, -112, 0, 0, -112, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- -112, 0, 0, 0, 0, 0, 0, -112, 0, -112, +- 0, 0, 17, 18, 19, 20, 21, 0, 23, -112, +- 671, 25, 26, 27, -113, 29, 0, 31, 32, 33, +- 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, +- 44, 0, 46, 47, 48, 49, 50, 51, 52, 53, +- 54, 55, 56, 57, 58, 59, 0, 0, 0, 0, +- 0, 0, 60, 0, 17, 18, 19, 20, 21, 22, +- 23, 352, 0, 25, 26, 27, 0, 29, 0, 31, +- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, +- 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, +- 52, 53, 54, 55, 56, 57, 58, 59, 0, 0, +- 0, 0, 0, 0, 60, 17, 18, 19, 20, 21, +- 0, 23, 556, 0, 25, 26, 27, 0, 29, 0, +- 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, +- 41, 42, 43, 44, 0, 46, 47, 48, 49, 50, +- 51, 52, 53, 54, 55, 56, 57, 58, 59, 0, +- 0, 0, 0, 0, 0, 60, 17, 18, 19, 20, +- 21, 0, 23, 561, 0, 25, 26, 27, 0, 29, +- 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, +- 40, 41, 42, 43, 44, 0, 46, 47, 48, 49, +- 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, +- 0, 0, 0, 0, 0, 0, 60, 17, 18, 19, +- 20, 21, 0, 23, 0, 0, 25, 26, 27, 0, +- 29, 0, 31, 32, 33, 34, 35, 36, 37, 38, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 18, 19, 20, 21, 22, 23, 24, 0, ++ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, ++ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, ++ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, ++ 55, 56, 57, 58, 59, 583, 0, 0, 0, 0, ++ 0, 60, -114, 0, 0, 0, 0, -114, 0, 0, ++ 0, 0, 0, 0, 0, 0, -114, 0, 0, -114, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ -114, 0, 0, 0, 0, 0, 0, -114, 0, -114, ++ 0, 0, 18, 19, 20, 21, 22, 680, 24, -114, ++ 0, 26, 27, 28, -114, 30, 31, 32, 33, 34, ++ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, ++ 0, 46, 47, 48, 49, 50, 51, 52, 53, 54, ++ 55, 56, 57, 58, 59, 0, 0, 0, 0, 0, ++ 0, 60, 0, 0, 18, 19, 20, 21, 22, 23, ++ 24, 351, 0, 26, 27, 28, 0, 30, 31, 32, ++ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, ++ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, ++ 53, 54, 55, 56, 57, 58, 59, 0, 0, 0, ++ 0, 0, 0, 60, 0, 562, 0, 0, 18, 19, ++ 20, 21, 22, 0, 24, 0, 0, 26, 27, 28, ++ 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 0, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, +- 59, 12, 13, 14, 15, 16, 0, 60, 0, 0, +- 0, 0, 0, 0, 0, 134, 0, 897, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 898, 0, ++ 59, 0, 18, 19, 20, 21, 22, 60, 24, 567, ++ 0, 26, 27, 28, 0, 30, 31, 32, 33, 34, ++ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, ++ 0, 46, 47, 48, 49, 50, 51, 52, 53, 54, ++ 55, 56, 57, 58, 59, 0, 0, 0, 0, 0, ++ 0, 60, 0, 0, 0, 0, 18, 19, 20, 21, ++ 22, 0, 24, 0, 0, 26, 27, 28, 0, 30, ++ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, ++ 41, 42, 43, 44, 0, 46, 47, 48, 49, 50, ++ 51, 52, 53, 54, 55, 56, 57, 58, 59, 12, ++ 13, 14, 15, 16, 17, 60, 0, 0, 0, 0, ++ 0, 0, 0, 0, 135, 0, 907, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 908, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, ++ 19, 20, 21, 22, 23, 24, -787, 25, 26, 27, ++ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, ++ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, ++ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, ++ 58, 59, 12, 13, 14, 15, 16, 17, 60, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 485, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 486, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 18, 19, 20, 21, 22, 23, 24, 487, ++ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, ++ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, ++ 45, 46, 47, 48, 49, 50, 51, 52, 53, 488, ++ 55, 56, 57, 58, 59, 12, 13, 14, 15, 16, ++ 17, 60, 0, 0, 0, 0, 0, 0, 0, 0, ++ 135, 0, 907, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 908, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 18, 19, 20, 21, 22, ++ 23, 24, 0, 25, 26, 27, 28, 29, 30, 31, ++ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, ++ 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, ++ 52, 53, 54, 55, 56, 57, 58, 59, 12, 1239, ++ 1240, 15, 16, 17, 60, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 1241, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 1242, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 18, 1243, ++ 20, 21, 22, 1244, 24, 0, 25, 26, 27, 28, ++ 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, ++ 39, 40, 41, 42, 1245, 44, 45, 46, 47, 48, ++ 49, 50, 51, 52, 53, 1246, 55, 56, 57, 58, ++ 59, 12, 13, 14, 15, 16, 17, 60, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 17, 18, 19, 20, 21, 22, 23, -778, 24, 25, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 18, 19, 20, 21, 22, 23, 24, 95, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, +- 56, 57, 58, 59, 12, 13, 14, 15, 16, 0, ++ 56, 57, 58, 59, 12, 13, 14, 15, 16, 17, + 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 481, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 17, 18, 19, 20, 21, 22, 23, +- 482, 24, 25, 26, 27, 28, 29, 30, 31, 32, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 18, 19, 20, 21, 22, 23, ++ 24, 0, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, +- 53, 483, 55, 56, 57, 58, 59, 12, 13, 14, +- 15, 16, 0, 60, 0, 0, 0, 0, 0, 0, +- 0, 134, 0, 897, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 898, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 17, 18, 19, 20, +- 21, 22, 23, 0, 24, 25, 26, 27, 28, 29, +- 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, +- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, +- 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, +- 12, 1224, 1225, 15, 16, 0, 60, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 1226, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 1227, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, +- 1228, 19, 20, 21, 1229, 23, 0, 24, 25, 26, +- 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, +- 37, 38, 39, 40, 41, 42, 1230, 44, 45, 46, +- 47, 48, 49, 50, 51, 52, 53, 1231, 55, 56, +- 57, 58, 59, 12, 13, 14, 15, 16, 0, 60, ++ 53, 54, 55, 56, 57, 58, 59, 338, 0, 0, ++ 0, 0, 0, 60, 12, 13, 14, 15, 16, 17, ++ 0, 0, 0, 0, 994, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 18, 19, 20, 21, 22, 23, ++ 24, 0, 25, 26, 27, 28, 29, 30, 31, 32, ++ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, ++ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, ++ 53, 54, 55, 56, 57, 58, 59, 12, 13, 14, ++ 15, 16, 17, 60, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 17, 18, 19, 20, 21, 22, 23, 95, +- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, +- 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, +- 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, +- 54, 55, 56, 57, 58, 59, 12, 13, 14, 15, +- 16, 0, 60, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 18, 19, 20, ++ 21, 22, 23, 24, 0, 25, 26, 27, 28, 29, ++ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, ++ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, ++ 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, ++ 12, 13, 14, 15, 16, 17, 60, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 17, 18, 19, 20, 21, +- 22, 23, 0, 24, 25, 26, 27, 28, 29, 30, +- 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, +- 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, +- 51, 52, 53, 54, 55, 56, 57, 58, 59, 335, +- 12, 13, 14, 15, 16, 60, 0, 0, 0, 983, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, +- 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, ++ 18, 19, 20, 21, 22, 23, 24, 0, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, +- 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, +- 57, 58, 59, 12, 13, 14, 15, 16, 0, 60, ++ 47, 48, 49, 50, 51, 52, 53, 488, 55, 56, ++ 57, 58, 59, 12, 13, 14, 15, 16, 17, 60, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 17, 18, 19, 20, 21, 22, 23, 0, +- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, ++ 0, 0, 0, 18, 19, 20, 21, 22, 23, 24, ++ 0, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 12, 13, 14, 15, +- 16, 0, 60, 0, 0, 0, 0, 0, 0, 0, ++ 16, 17, 60, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 17, 18, 19, 20, 21, +- 22, 23, 0, 24, 25, 26, 27, 28, 29, 30, +- 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, ++ 0, 0, 0, 0, 0, 0, 18, 19, 20, 21, ++ 22, 23, 24, 0, 25, 1008, 27, 1009, 29, 30, ++ 31, 1011, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, +- 51, 52, 53, 483, 55, 56, 57, 58, 59, 12, +- 13, 14, 15, 16, 0, 60, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 17, 18, +- 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, +- 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, +- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, +- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, +- 58, 59, 0, 0, 0, 0, 0, 0, 60, 17, +- 18, 19, 20, 21, 22, 23, 0, 0, 25, 26, +- 27, 0, 29, 0, 31, 32, 33, 34, 35, 36, +- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, ++ 51, 52, 53, 1016, 55, 56, 57, 58, 59, 0, ++ 18, 19, 20, 21, 22, 60, 24, 0, 0, 26, ++ 27, 28, 0, 30, 31, 32, 33, 34, 35, 36, ++ 37, 38, 39, 40, 41, 42, 43, 44, 0, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, +- 57, 58, 59, 0, 17, 18, 19, 20, 21, 60, +- 23, 0, 0, 25, 26, 27, 0, 29, 0, 31, +- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, +- 42, 43, 44, 0, 46, 47, 48, 49, 50, 51, +- 52, 53, 54, 55, 56, 57, 58, 59, 0, 0, +- 0, 0, 0, 0, 60 ++ 57, 58, 59, 0, 0, 0, 0, 0, 0, 60 + }; + + /* YYCONFLP[YYPACT[STATE-NUM]] -- Pointer into YYCONFL of start of + list of conflicting reductions corresponding to action entry for + state STATE-NUM in yytable. 0 means no conflicts. The list in + yyconfl is terminated by a rule number of 0. */ +-static const unsigned char yyconflp[] = ++static const unsigned short yyconflp[] = + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +@@ -2557,22 +2614,6 @@ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, +- 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 31, 0, 71, 0, 73, 75, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +@@ -2583,8 +2624,6 @@ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 33, 0, 35, +- 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +@@ -2592,48 +2631,46 @@ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 27, 0, 0, 0, 29, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 41, 0, 43, 45, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 493, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 55, 0, 57, 59, 0, 0, 61, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 495, 0, 497, 499, 0, 0, 0, 0, 0, 0, ++ 0, 0, 501, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 63, 0, 65, 67, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 79, 0, 81, 83, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 85, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 503, ++ 0, 505, 507, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +@@ -2642,8 +2679,6 @@ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, +- 0, 89, 91, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +@@ -2752,9 +2787,74 @@ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, ++ 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 35, 0, 0, 0, 37, 0, 0, 39, 0, ++ 0, 0, 0, 0, 41, 0, 43, 0, 0, 0, ++ 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 47, 0, 49, 51, 0, 53, ++ 0, 0, 0, 55, 0, 57, 0, 0, 59, 61, ++ 0, 0, 0, 63, 65, 0, 67, 69, 0, 71, ++ 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 77, 0, 79, 81, 83, 85, 87, 0, 0, ++ 89, 91, 93, 95, 97, 99, 101, 103, 105, 107, ++ 109, 111, 113, 115, 117, 119, 121, 123, 0, 125, ++ 0, 127, 129, 131, 133, 135, 137, 139, 141, 143, ++ 145, 0, 0, 147, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 149, 0, 0, 0, 151, 0, ++ 0, 153, 0, 0, 0, 0, 0, 155, 0, 157, ++ 0, 0, 0, 159, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 161, 0, 163, ++ 165, 0, 167, 0, 0, 0, 169, 0, 171, 0, ++ 0, 173, 175, 0, 0, 0, 177, 179, 0, 181, ++ 183, 0, 185, 0, 187, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 189, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 191, 0, 193, 195, 197, 199, ++ 201, 0, 0, 203, 205, 207, 209, 211, 213, 215, ++ 217, 219, 221, 223, 225, 227, 229, 231, 233, 235, ++ 237, 0, 239, 0, 241, 243, 245, 247, 249, 251, ++ 253, 255, 257, 265, 0, 0, 267, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 269, 0, 0, ++ 0, 271, 0, 0, 273, 0, 0, 0, 0, 0, ++ 275, 0, 277, 0, 0, 0, 279, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 281, 0, 283, 285, 0, 287, 0, 0, 0, 289, ++ 0, 291, 0, 0, 293, 295, 0, 0, 0, 297, ++ 299, 0, 301, 303, 0, 305, 0, 307, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 309, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 311, 0, 313, ++ 315, 317, 319, 321, 0, 0, 323, 325, 327, 329, ++ 331, 333, 335, 337, 339, 341, 343, 345, 347, 349, ++ 351, 353, 355, 357, 0, 359, 0, 361, 363, 365, ++ 367, 369, 371, 373, 375, 377, 379, 0, 0, 381, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 383, 0, 0, 0, 385, 0, 0, 387, 0, 0, ++ 0, 0, 0, 389, 0, 391, 0, 0, 0, 393, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 395, 0, 397, 399, 0, 401, 0, ++ 0, 0, 403, 0, 405, 0, 0, 407, 409, 0, ++ 0, 0, 411, 413, 0, 415, 417, 0, 419, 0, ++ 421, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 423, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 425, 0, 427, 429, 431, 433, 435, 0, 0, 437, ++ 439, 441, 443, 445, 447, 449, 451, 453, 455, 457, ++ 459, 461, 463, 465, 467, 469, 471, 0, 473, 0, ++ 475, 477, 479, 481, 483, 485, 487, 489, 491, 509, ++ 0, 0, 511, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 513, 0, 0, 0, 515, 0, 0, ++ 517, 0, 0, 0, 0, 0, 519, 0, 521, 0, ++ 0, 0, 523, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 525, 0, 527, 529, ++ 0, 531, 0, 0, 0, 533, 0, 535, 0, 0, ++ 537, 539, 0, 0, 0, 541, 543, 0, 545, 547, ++ 0, 549, 0, 551, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 553, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 555, 0, 557, 559, 561, 563, 565, ++ 0, 0, 567, 569, 571, 573, 575, 577, 579, 581, ++ 583, 585, 587, 589, 591, 593, 595, 597, 599, 601, ++ 0, 603, 0, 605, 607, 609, 611, 613, 615, 617, ++ 619, 621, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +@@ -3231,6 +3331,11 @@ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 1, 3, 0, 0, 0, 0, 0, 5, 0, ++ 7, 0, 0, 9, 11, 0, 0, 0, 13, 15, ++ 0, 17, 19, 0, 0, 0, 21, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +@@ -3250,12 +3355,7 @@ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 1, 3, 0, 0, 0, 0, 0, 5, +- 0, 7, 0, 0, 0, 9, 11, 0, 0, 0, +- 13, 15, 0, 17, 19, 0, 0, 0, 21, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +@@ -3306,7 +3406,9 @@ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 259, 0, 0, 0, 0, 261, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 263, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +@@ -3321,1002 +3423,1066 @@ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, +- 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0 ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; + + /* YYCONFL[I] -- lists of conflicting rule numbers, each terminated by + 0, pointed into by YYCONFLP. */ + static const short yyconfl[] = + { +- 0, 583, 0, 583, 0, 583, 0, 583, 0, 583, +- 0, 583, 0, 583, 0, 583, 0, 583, 0, 583, +- 0, 583, 0, 583, 0, 583, 0, 763, 0, 763, +- 0, 766, 0, 766, 0, 766, 0, 766, 0, 767, +- 0, 767, 0, 767, 0, 767, 0, 749, 0, 749, +- 0, 749, 0, 768, 0, 768, 0, 768, 0, 768, +- 0, 764, 0, 764, 0, 764, 0, 764, 0, 786, +- 0, 786, 0, 786, 0, 786, 0, 730, 0, 730, +- 0, 730, 0, 730, 0, 765, 0, 765, 0, 765, +- 0, 765, 0 ++ 0, 590, 0, 590, 0, 590, 0, 590, 0, 590, ++ 0, 590, 0, 590, 0, 590, 0, 590, 0, 590, ++ 0, 590, 0, 590, 0, 590, 0, 772, 0, 772, ++ 0, 775, 0, 775, 0, 775, 0, 775, 0, 775, ++ 0, 775, 0, 775, 0, 775, 0, 775, 0, 775, ++ 0, 775, 0, 775, 0, 775, 0, 775, 0, 775, ++ 0, 775, 0, 775, 0, 775, 0, 775, 0, 775, ++ 0, 775, 0, 775, 0, 775, 0, 775, 0, 775, ++ 0, 775, 0, 775, 0, 775, 0, 775, 0, 775, ++ 0, 775, 0, 775, 0, 775, 0, 775, 0, 775, ++ 0, 775, 0, 775, 0, 775, 0, 775, 0, 775, ++ 0, 775, 0, 775, 0, 775, 0, 775, 0, 775, ++ 0, 775, 0, 775, 0, 775, 0, 775, 0, 775, ++ 0, 775, 0, 775, 0, 775, 0, 775, 0, 775, ++ 0, 775, 0, 775, 0, 776, 0, 776, 0, 776, ++ 0, 776, 0, 776, 0, 776, 0, 776, 0, 776, ++ 0, 776, 0, 776, 0, 776, 0, 776, 0, 776, ++ 0, 776, 0, 776, 0, 776, 0, 776, 0, 776, ++ 0, 776, 0, 776, 0, 776, 0, 776, 0, 776, ++ 0, 776, 0, 776, 0, 776, 0, 776, 0, 776, ++ 0, 776, 0, 776, 0, 776, 0, 776, 0, 776, ++ 0, 776, 0, 776, 0, 776, 0, 776, 0, 776, ++ 0, 776, 0, 776, 0, 776, 0, 776, 0, 776, ++ 0, 776, 0, 776, 0, 776, 0, 776, 0, 776, ++ 0, 776, 0, 776, 0, 776, 0, 776, 0, 776, ++ 0, 776, 0, 776, 0, 776, 0, 776, 0, 758, ++ 0, 758, 0, 758, 0, 777, 0, 777, 0, 777, ++ 0, 777, 0, 777, 0, 777, 0, 777, 0, 777, ++ 0, 777, 0, 777, 0, 777, 0, 777, 0, 777, ++ 0, 777, 0, 777, 0, 777, 0, 777, 0, 777, ++ 0, 777, 0, 777, 0, 777, 0, 777, 0, 777, ++ 0, 777, 0, 777, 0, 777, 0, 777, 0, 777, ++ 0, 777, 0, 777, 0, 777, 0, 777, 0, 777, ++ 0, 777, 0, 777, 0, 777, 0, 777, 0, 777, ++ 0, 777, 0, 777, 0, 777, 0, 777, 0, 777, ++ 0, 777, 0, 777, 0, 777, 0, 777, 0, 777, ++ 0, 777, 0, 777, 0, 777, 0, 777, 0, 777, ++ 0, 777, 0, 777, 0, 777, 0, 777, 0, 773, ++ 0, 773, 0, 773, 0, 773, 0, 773, 0, 773, ++ 0, 773, 0, 773, 0, 773, 0, 773, 0, 773, ++ 0, 773, 0, 773, 0, 773, 0, 773, 0, 773, ++ 0, 773, 0, 773, 0, 773, 0, 773, 0, 773, ++ 0, 773, 0, 773, 0, 773, 0, 773, 0, 773, ++ 0, 773, 0, 773, 0, 773, 0, 773, 0, 773, ++ 0, 773, 0, 773, 0, 773, 0, 773, 0, 773, ++ 0, 773, 0, 773, 0, 773, 0, 773, 0, 773, ++ 0, 773, 0, 773, 0, 773, 0, 773, 0, 773, ++ 0, 773, 0, 773, 0, 773, 0, 773, 0, 773, ++ 0, 773, 0, 773, 0, 773, 0, 773, 0, 773, ++ 0, 773, 0, 795, 0, 795, 0, 795, 0, 795, ++ 0, 739, 0, 739, 0, 739, 0, 739, 0, 774, ++ 0, 774, 0, 774, 0, 774, 0, 774, 0, 774, ++ 0, 774, 0, 774, 0, 774, 0, 774, 0, 774, ++ 0, 774, 0, 774, 0, 774, 0, 774, 0, 774, ++ 0, 774, 0, 774, 0, 774, 0, 774, 0, 774, ++ 0, 774, 0, 774, 0, 774, 0, 774, 0, 774, ++ 0, 774, 0, 774, 0, 774, 0, 774, 0, 774, ++ 0, 774, 0, 774, 0, 774, 0, 774, 0, 774, ++ 0, 774, 0, 774, 0, 774, 0, 774, 0, 774, ++ 0, 774, 0, 774, 0, 774, 0, 774, 0, 774, ++ 0, 774, 0, 774, 0, 774, 0, 774, 0, 774, ++ 0, 774, 0, 774, 0, 774, 0, 774, 0, 774, ++ 0, 774, 0 + }; + + static const short yycheck[] = + { +- 1, 2, 158, 204, 178, 493, 502, 75, 565, 10, +- 172, 192, 206, 636, 502, 195, 400, 750, 6, 358, +- 98, 459, 323, 179, 622, 455, 456, 357, 358, 848, +- 367, 843, 539, 127, 682, 647, 474, 649, 132, 340, +- 629, 986, 195, 190, 404, 214, 122, 555, 217, 1024, +- 751, 1, 221, 188, 217, 1050, 1051, 1, 221, 1, +- 19, 398, 977, 1, 1, 30, 1099, 1, 30, 19, +- 287, 288, 843, 706, 75, 905, 906, 1, 1, 80, +- 66, 11, 843, 84, 1071, 843, 41, 843, 1, 901, +- 63, 79, 1079, 96, 1269, 269, 270, 720, 1, 83, +- 1, 1, 96, 50, 1279, 50, 1, 185, 53, 6, +- 111, 112, 550, 114, 11, 1, 1, 83, 1151, 107, +- 121, 107, 1117, 117, 722, 1, 859, 564, 131, 74, +- 901, 61, 116, 289, 290, 291, 1, 131, 139, 1, +- 901, 342, 740, 901, 117, 901, 96, 1, 909, 96, +- 351, 117, 17, 1, 1, 662, 121, 116, 96, 121, +- 793, 116, 14, 1, 61, 0, 116, 19, 1, 553, +- 120, 983, 116, 1, 118, 1170, 118, 74, 358, 116, +- 122, 131, 79, 80, 185, 186, 187, 188, 189, 190, +- 191, 125, 1022, 131, 118, 118, 497, 498, 122, 122, +- 501, 96, 376, 116, 1191, 206, 380, 104, 509, 122, +- 107, 346, 347, 116, 1129, 1130, 116, 114, 119, 122, +- 120, 116, 1217, 1218, 119, 120, 118, 119, 422, 423, +- 116, 9, 118, 118, 1209, 120, 131, 1, 439, 676, +- 116, 435, 436, 119, 120, 843, 753, 743, 1193, 146, +- 419, 952, 99, 118, 761, 743, 118, 119, 96, 767, +- 768, 441, 116, 623, 624, 1, 99, 414, 101, 416, +- 118, 118, 120, 120, 409, 1262, 411, 355, 116, 1, +- 356, 1, 120, 19, 1134, 118, 119, 120, 441, 518, +- 118, 848, 120, 131, 117, 50, 297, 1030, 599, 19, +- 948, 949, 125, 901, 79, 83, 574, 803, 1, 816, +- 30, 774, 893, 902, 1, 803, 867, 618, 619, 74, +- 758, 11, 1, 1135, 518, 45, 883, 405, 766, 558, +- 50, 668, 107, 50, 602, 1, 404, 1, 950, 117, +- 19, 1286, 436, 512, 722, 346, 347, 1, 1, 856, +- 857, 71, 116, 19, 118, 119, 120, 1, 83, 1, +- 529, 555, 740, 702, 558, 1184, 45, 11, 562, 538, +- 539, 50, 702, 1, 64, 19, 96, 840, 118, 119, +- 116, 765, 963, 103, 120, 117, 937, 938, 1238, 1239, +- 116, 829, 71, 1, 116, 825, 116, 117, 118, 119, +- 116, 121, 122, 404, 405, 117, 407, 408, 409, 1, +- 411, 412, 629, 414, 482, 416, 417, 96, 83, 1, +- 64, 422, 423, 491, 103, 118, 119, 890, 1040, 1, +- 431, 118, 119, 1, 435, 436, 1034, 116, 426, 1172, +- 119, 120, 284, 285, 445, 446, 953, 19, 345, 116, +- 116, 1, 349, 119, 118, 119, 116, 1099, 1100, 622, +- 96, 117, 116, 116, 118, 119, 119, 103, 116, 125, +- 117, 57, 116, 45, 121, 119, 118, 119, 50, 480, +- 481, 482, 46, 677, 980, 91, 564, 93, 116, 83, +- 491, 119, 980, 662, 495, 131, 1053, 1054, 62, 71, +- 773, 774, 503, 400, 1116, 116, 1118, 404, 405, 1151, +- 118, 119, 119, 120, 715, 1, 413, 518, 124, 1161, +- 1162, 99, 702, 101, 96, 11, 118, 119, 50, 118, +- 119, 103, 54, 19, 83, 432, 118, 119, 57, 61, +- 382, 1048, 1, 385, 116, 117, 118, 119, 120, 50, +- 118, 119, 9, 45, 555, 623, 624, 558, 626, 722, +- 19, 562, 1204, 641, 116, 1207, 1208, 840, 118, 119, +- 71, 1213, 1214, 767, 768, 576, 83, 740, 64, 71, +- 116, 750, 118, 0, 753, 414, 45, 416, 589, 667, +- 1204, 50, 761, 1207, 1208, 96, 897, 898, 1099, 1100, +- 781, 40, 103, 42, 96, 1112, 1099, 1100, 1250, 1251, +- 119, 103, 71, 52, 117, 1, 12, 890, 35, 1176, +- 16, 117, 623, 624, 117, 626, 843, 1184, 48, 117, +- 116, 27, 18, 752, 54, 754, 56, 96, 118, 119, +- 60, 61, 805, 117, 103, 1, 2, 816, 34, 117, +- 1151, 47, 1275, 70, 10, 117, 553, 116, 1151, 118, +- 119, 120, 824, 83, 119, 120, 83, 1174, 565, 886, +- 118, 119, 68, 69, 118, 95, 677, 574, 89, 90, +- 843, 435, 436, 580, 901, 902, 14, 856, 857, 116, +- 859, 83, 770, 771, 695, 696, 117, 698, 1255, 1099, +- 1100, 769, 788, 789, 692, 602, 707, 708, 117, 1, +- 99, 1204, 1213, 1214, 1207, 1208, 112, 113, 114, 115, +- 1213, 1214, 767, 768, 80, 119, 623, 624, 84, 11, +- 718, 39, 128, 129, 695, 696, 119, 20, 901, 636, +- 903, 117, 905, 906, 125, 1, 909, 125, 91, 905, +- 93, 1151, 1081, 1082, 755, 111, 112, 119, 114, 976, +- 977, 120, 54, 19, 56, 121, 767, 768, 769, 61, +- 667, 54, 119, 56, 119, 25, 119, 120, 61, 887, +- 888, 124, 99, 139, 953, 1281, 119, 788, 789, 45, +- 791, 83, 119, 1281, 50, 1238, 1239, 942, 943, 117, +- 83, 623, 624, 95, 1204, 806, 1, 1207, 1208, 706, +- 471, 472, 95, 1213, 1214, 71, 25, 1034, 34, 887, +- 888, 945, 946, 720, 19, 371, 372, 9, 116, 185, +- 186, 187, 188, 189, 190, 191, 120, 83, 119, 119, +- 96, 119, 119, 93, 42, 117, 96, 103, 117, 54, +- 45, 56, 120, 103, 116, 50, 61, 11, 118, 1022, +- 116, 1030, 118, 119, 120, 1, 867, 120, 765, 101, +- 117, 121, 116, 123, 124, 125, 71, 116, 83, 1048, +- 116, 131, 116, 19, 89, 116, 887, 888, 117, 19, +- 95, 34, 19, 1110, 1111, 120, 793, 120, 899, 120, +- 39, 96, 903, 904, 905, 906, 30, 1124, 103, 45, +- 120, 117, 1129, 1130, 50, 19, 117, 117, 1135, 166, +- 116, 116, 17, 118, 119, 120, 120, 1, 120, 17, +- 19, 13, 30, 93, 13, 71, 937, 938, 119, 940, +- 54, 297, 56, 1112, 116, 19, 74, 61, 53, 119, +- 32, 848, 121, 120, 116, 55, 1257, 1258, 1259, 1260, +- 96, 121, 99, 123, 124, 125, 17, 103, 17, 83, +- 46, 45, 54, 121, 56, 30, 50, 99, 116, 61, +- 116, 95, 983, 119, 93, 52, 883, 1161, 30, 1, +- 346, 347, 118, 116, 891, 892, 893, 71, 999, 896, +- 116, 83, 122, 1172, 116, 1174, 1162, 19, 116, 62, +- 117, 30, 121, 95, 123, 124, 125, 19, 120, 19, +- 119, 1022, 96, 6, 7, 8, 117, 10, 99, 103, +- 120, 14, 30, 45, 117, 17, 116, 122, 50, 22, +- 287, 288, 116, 26, 118, 119, 120, 120, 116, 405, +- 33, 407, 408, 409, 30, 411, 412, 30, 414, 71, +- 416, 417, 122, 117, 121, 119, 963, 19, 30, 6, +- 7, 8, 119, 10, 119, 431, 119, 19, 975, 119, +- 1081, 1082, 19, 120, 96, 22, 1087, 1088, 120, 445, +- 446, 103, 122, 119, 119, 119, 33, 34, 1099, 1100, +- 120, 117, 156, 157, 116, 120, 118, 119, 120, 1006, +- 120, 116, 83, 119, 1182, 6, 7, 8, 117, 10, +- 116, 31, 119, 14, 480, 481, 1023, 119, 19, 600, +- 691, 22, 73, 205, 1, 26, 383, 384, 73, 495, +- 1128, 104, 33, 34, 587, 714, 596, 503, 798, 708, +- 1151, 576, 19, 513, 562, 65, 1053, 6, 7, 8, +- 1057, 1149, 216, 73, 901, 14, 909, 1082, 59, 1149, +- 114, 1135, 419, 22, 970, 1151, 1155, 26, 45, 357, +- 602, 1182, 739, 50, 33, 1034, 805, 97, 98, 538, +- 1240, 667, 102, 247, 1182, 659, 1053, 512, 108, 109, +- 110, 111, 1099, 1204, 71, 268, 1207, 1208, 1054, 756, +- 221, 185, 1213, 1214, 6, 185, 126, 127, 10, -1, +- 576, 468, 469, 1224, 1225, 1226, 1227, 19, 1125, 96, +- 22, -1, -1, 589, -1, -1, 103, -1, 13, -1, +- 294, 33, -1, -1, -1, 20, 300, -1, -1, 116, +- 304, 118, 119, 120, 1151, -1, 6, 32, -1, 9, +- 10, -1, -1, -1, -1, 40, 513, -1, 1269, 19, +- -1, -1, 22, -1, -1, -1, -1, -1, 1279, 54, +- -1, 56, 25, 33, -1, -1, 61, 1184, 31, -1, +- -1, -1, 539, -1, -1, -1, -1, -1, -1, 50, +- -1, -1, 53, 54, -1, 56, 360, -1, 83, -1, +- 61, -1, -1, 367, -1, -1, 370, 371, 372, -1, +- 95, -1, 65, 74, 75, 76, -1, -1, -1, -1, +- 73, -1, -1, -1, -1, -1, -1, -1, -1, 695, +- 696, -1, 698, -1, 398, -1, -1, -1, -1, -1, +- -1, 707, 708, -1, 97, 98, -1, -1, -1, 102, +- -1, 104, 105, 106, -1, 108, 109, 110, 111, -1, +- -1, -1, -1, -1, -1, 622, -1, -1, 1275, -1, +- -1, -1, 629, 126, 127, -1, -1, 130, 131, 132, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, 755, +- -1, 455, 456, -1, 458, -1, -1, -1, -1, -1, +- 20, -1, -1, -1, -1, 662, 470, 471, 472, -1, +- -1, -1, 476, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, 788, 789, -1, 791, -1, -1, -1, -1, +- -1, -1, -1, -1, 54, -1, 56, -1, 58, -1, +- 806, 61, -1, -1, -1, -1, -1, 511, -1, -1, +- 514, -1, -1, -1, -1, -1, 520, 77, 78, -1, +- 80, 81, 526, 83, -1, 722, 86, 87, 88, -1, +- -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, +- -1, -1, -1, 740, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, 750, -1, -1, 753, 117, 95, -1, +- -1, 867, -1, -1, 761, 569, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, 581, -1, 116, +- 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, +- 127, 128, 129, 130, 131, 132, -1, 903, 904, 905, +- 906, -1, -1, -1, -1, -1, -1, -1, 805, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, 816, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, 937, 938, -1, 940, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, 843, -1, -1, -1, +- -1, -1, -1, 657, -1, 659, -1, -1, -1, 856, +- 857, -1, 859, -1, 668, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, 1, -1, 983, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, 13, -1, 886, +- -1, -1, -1, 999, 20, -1, -1, -1, -1, -1, +- -1, -1, 28, 29, 901, 902, -1, -1, -1, -1, +- 36, -1, 38, -1, -1, 719, 1022, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, 54, -1, +- 56, -1, 58, -1, -1, 61, -1, -1, -1, -1, +- -1, 745, -1, 747, -1, -1, -1, 751, 752, -1, +- 754, 77, 78, -1, 80, 81, 953, 83, -1, 763, +- 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, +- -1, 97, 98, -1, -1, -1, -1, -1, -1, 976, +- 977, 1087, 1088, -1, -1, -1, 983, -1, -1, -1, +- -1, 117, -1, 1099, 1100, 121, -1, 123, 124, -1, +- 126, 127, -1, 807, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, 825, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, 1030, -1, -1, -1, 1034, -1, 843, +- -1, -1, 846, 847, -1, 1151, -1, -1, -1, -1, +- -1, 1048, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, 878, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, 901, 1204, -1, +- 904, 1207, 1208, -1, -1, 909, -1, 1213, 1214, -1, +- -1, -1, -1, 1110, 1111, 1112, -1, -1, 1224, 1225, +- 1226, 1227, -1, -1, -1, -1, -1, 1124, -1, -1, +- -1, -1, 1129, 1130, -1, -1, -1, -1, 1135, -1, +- -1, -1, 1, -1, -1, -1, -1, -1, 952, -1, +- -1, -1, 11, -1, -1, -1, -1, -1, -1, -1, +- 19, 20, -1, -1, -1, -1, -1, -1, -1, 28, +- 29, -1, 976, 977, -1, 1172, -1, 1174, -1, 983, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, 54, -1, 56, -1, 58, +- -1, -1, 61, -1, -1, 64, -1, -1, -1, -1, +- -1, -1, -1, -1, 1018, 1019, -1, 1021, 77, 78, +- 1024, 80, 81, -1, 83, -1, -1, 86, 87, 88, +- 89, 90, 91, 92, 93, -1, 95, -1, 97, 98, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, 1055, -1, -1, -1, -1, -1, 1061, 117, -1, +- -1, 1065, 121, -1, 123, 124, -1, 126, 127, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, 1090, -1, -1, -1, +- -1, -1, -1, -1, -1, 1099, 1100, -1, 20, -1, +- -1, -1, -1, -1, -1, -1, 28, 29, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, 1129, 1130, -1, -1, -1, +- -1, 1135, 54, -1, 56, -1, 58, -1, -1, 61, +- -1, 1145, 1146, -1, -1, -1, -1, 1151, -1, -1, +- -1, -1, -1, -1, -1, 77, 78, -1, 80, 81, +- -1, 83, -1, -1, 86, 87, 88, 89, 90, 91, +- 92, 93, -1, 95, -1, 97, 98, -1, -1, -1, +- -1, 1185, -1, -1, -1, -1, -1, -1, 6, 7, +- 8, 9, 10, -1, 12, 117, -1, -1, 16, 121, +- 1204, 123, 124, 1207, 1208, 1209, -1, 25, -1, 27, +- -1, -1, -1, 31, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, 1230, 45, 46, 47, +- 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, +- 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, ++ 1, 2, 159, 180, 6, 508, 75, 498, 195, 10, ++ 645, 855, 545, 571, 204, 357, 198, 508, 98, 327, ++ 173, 400, 214, 997, 181, 217, 287, 288, 366, 221, ++ 760, 128, 206, 629, 636, 343, 133, 453, 454, 217, ++ 691, 356, 357, 221, 6, 457, 850, 198, 123, 11, ++ 193, 409, 656, 561, 658, 1036, 761, 1085, 335, 988, ++ 398, 473, 1, 11, 709, 1093, 707, 44, 1148, 22, ++ 850, 11, 1, 48, 75, 79, 1, 79, 33, 80, ++ 1, 0, 850, 84, 524, 68, 33, 1, 903, 1, ++ 1, 0, 269, 270, 580, 730, 1064, 1065, 73, 61, ++ 1, 1, 53, 107, 1, 107, 850, 911, 188, 1, ++ 111, 112, 74, 114, 600, 85, 1, 79, 80, 38, ++ 1, 61, 1, 98, 564, 1, 109, 1, 405, 406, ++ 105, 911, 289, 290, 291, 53, 732, 85, 671, 140, ++ 119, 118, 104, 911, 556, 107, 22, 1, 22, 4, ++ 795, 919, 114, 72, 750, 345, 4, 798, 76, 974, ++ 350, 118, 101, 1131, 4, 118, 85, 911, 123, 98, ++ 1, 119, 1, 1253, 1254, 357, 123, 98, 1206, 1, ++ 559, 120, 4, 122, 98, 147, 187, 188, 189, 190, ++ 994, 192, 193, 194, 502, 503, 121, 118, 375, 507, ++ 121, 122, 379, 132, 118, 206, 118, 515, 122, 120, ++ 1, 132, 124, 124, 1143, 1144, 946, 1185, 132, 120, ++ 120, 118, 98, 124, 124, 122, 118, 504, 120, 506, ++ 763, 423, 1113, 1114, 1208, 120, 121, 118, 771, 118, ++ 121, 122, 118, 1224, 118, 124, 122, 437, 122, 1277, ++ 753, 1, 426, 427, 850, 95, 132, 439, 963, 433, ++ 434, 1, 753, 119, 1232, 1233, 120, 122, 122, 777, ++ 778, 119, 630, 631, 354, 418, 1, 420, 4, 101, ++ 355, 103, 1, 123, 1165, 125, 126, 118, 439, 597, ++ 823, 120, 293, 122, 1175, 1176, 4, 855, 120, 121, ++ 122, 20, 28, 304, 850, 118, 65, 810, 959, 960, ++ 912, 14, 98, 1, 1113, 911, 1, 625, 626, 810, ++ 1, 93, 53, 95, 1, 33, 518, 1301, 1, 120, ++ 410, 122, 865, 866, 335, 893, 1, 434, 1219, 677, ++ 409, 1222, 1223, 535, 4, 1149, 132, 1228, 1229, 101, ++ 524, 103, 544, 545, 126, 1199, 768, 961, 1, 4, ++ 119, 703, 1, 66, 776, 911, 1165, 98, 118, 95, ++ 120, 121, 98, 1, 85, 636, 570, 1, 118, 105, ++ 120, 121, 122, 4, 1265, 1266, 348, 561, 703, 1119, ++ 564, 579, 4, 118, 568, 120, 775, 123, 1, 125, ++ 126, 120, 1, 85, 405, 406, 132, 118, 409, 410, ++ 598, 412, 413, 1, 85, 416, 832, 418, 487, 420, ++ 421, 915, 916, 22, 836, 426, 427, 496, 430, 1, ++ 118, 964, 433, 434, 49, 120, 121, 97, 400, 120, ++ 121, 118, 443, 444, 121, 118, 408, 409, 410, 64, ++ 1054, 629, 1048, 118, 118, 417, 121, 1187, 118, 119, ++ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, ++ 130, 131, 132, 133, 118, 120, 120, 120, 121, 671, ++ 481, 120, 121, 95, 485, 486, 487, 118, 991, 784, ++ 570, 685, 120, 121, 1, 496, 120, 121, 119, 500, ++ 991, 1113, 1114, 504, 1, 506, 877, 4, 509, 1067, ++ 1068, 123, 686, 125, 126, 22, 732, 120, 121, 118, ++ 482, 703, 121, 524, 118, 22, 1130, 717, 1132, 1062, ++ 783, 784, 120, 121, 750, 98, 33, 1, 17, 1, ++ 1034, 48, 105, 22, 1, 118, 53, 4, 120, 121, ++ 14, 48, 847, 1165, 732, 93, 53, 95, 22, 21, ++ 561, 630, 631, 564, 633, 85, 73, 568, 760, 132, ++ 650, 763, 750, 85, 60, 37, 73, 948, 949, 771, ++ 284, 285, 11, 121, 122, 98, 587, 53, 126, 850, ++ 56, 98, 53, 1126, 847, 85, 676, 559, 105, 907, ++ 908, 98, 66, 777, 778, 900, 119, 119, 105, 571, ++ 76, 118, 73, 118, 121, 616, 1228, 1229, 580, 132, ++ 119, 118, 119, 120, 121, 119, 123, 124, 119, 630, ++ 631, 823, 633, 1191, 812, 896, 1, 98, 600, 1, ++ 1, 1199, 53, 119, 105, 1219, 57, 900, 1222, 1223, ++ 911, 912, 63, 14, 118, 1290, 1189, 121, 620, 119, ++ 22, 22, 121, 123, 1113, 1114, 120, 121, 630, 631, ++ 857, 119, 850, 865, 866, 119, 8, 381, 831, 11, ++ 384, 13, 418, 645, 420, 686, 48, 120, 121, 119, ++ 22, 53, 57, 25, 59, 43, 1284, 45, 63, 701, ++ 780, 781, 4, 1, 36, 66, 1294, 55, 709, 710, ++ 779, 73, 1270, 762, 676, 764, 1165, 17, 720, 118, ++ 85, 119, 723, 724, 22, 726, 987, 988, 119, 1113, ++ 1114, 121, 97, 911, 101, 913, 98, 915, 916, 120, ++ 121, 919, 14, 105, 121, 707, 42, 15, 120, 121, ++ 48, 19, 121, 122, 946, 53, 118, 118, 915, 121, ++ 122, 85, 30, 4, 765, 121, 122, 119, 730, 4, ++ 1219, 121, 964, 1222, 1223, 73, 777, 778, 779, 1228, ++ 1229, 1165, 50, 122, 117, 120, 121, 1048, 4, 1, ++ 2, 792, 793, 1296, 795, 121, 797, 23, 10, 121, ++ 98, 121, 70, 71, 101, 1296, 121, 105, 91, 92, ++ 433, 434, 813, 775, 792, 793, 723, 724, 777, 778, ++ 118, 119, 120, 121, 122, 897, 898, 37, 897, 898, ++ 11, 57, 1, 59, 167, 1219, 798, 63, 1222, 1223, ++ 1095, 1096, 1253, 1254, 1228, 1229, 114, 115, 116, 117, ++ 953, 954, 118, 22, 630, 631, 1034, 956, 957, 85, ++ 121, 129, 130, 1124, 1125, 470, 471, 57, 80, 59, ++ 1062, 97, 84, 63, 370, 371, 877, 1138, 121, 48, ++ 119, 28, 1143, 1144, 53, 121, 45, 121, 1149, 8, ++ 9, 10, 34, 855, 13, 85, 897, 898, 122, 111, ++ 112, 91, 114, 22, 73, 85, 25, 97, 909, 122, ++ 119, 119, 913, 914, 915, 916, 118, 36, 37, 14, ++ 120, 118, 118, 118, 118, 67, 118, 1119, 140, 98, ++ 119, 893, 22, 75, 1126, 37, 105, 22, 122, 901, ++ 902, 903, 103, 122, 906, 122, 33, 948, 949, 118, ++ 951, 120, 121, 122, 287, 288, 42, 99, 100, 122, ++ 22, 119, 104, 119, 1272, 1273, 1274, 1275, 110, 111, ++ 112, 113, 122, 119, 8, 187, 188, 189, 190, 13, ++ 192, 193, 194, 122, 118, 127, 128, 4, 22, 20, ++ 57, 25, 59, 994, 20, 1187, 63, 1189, 1175, 121, ++ 23, 16, 36, 22, 33, 16, 118, 76, 23, 1010, ++ 56, 122, 974, 123, 121, 20, 20, 101, 85, 1176, ++ 35, 49, 123, 33, 986, 101, 118, 118, 43, 118, ++ 97, 55, 1033, 1034, 57, 118, 59, 117, 61, 119, ++ 63, 118, 57, 118, 59, 58, 33, 119, 63, 382, ++ 383, 124, 120, 33, 22, 1017, 79, 80, 64, 82, ++ 83, 16, 85, 122, 22, 88, 89, 90, 121, 119, ++ 85, 101, 33, 1035, 97, 122, 20, 157, 158, 119, ++ 35, 293, 97, 118, 33, 124, 122, 124, 22, 121, ++ 423, 118, 304, 33, 1095, 1096, 119, 22, 123, 121, ++ 1101, 1102, 57, 121, 59, 1067, 122, 121, 63, 1071, ++ 51, 118, 1113, 1114, 122, 124, 57, 205, 59, 121, ++ 121, 62, 63, 335, 121, 85, 122, 122, 1197, 122, ++ 85, 119, 121, 466, 467, 468, 216, 119, 121, 118, ++ 1142, 716, 97, 121, 85, 8, 9, 10, 790, 12, ++ 13, 1113, 73, 73, 17, 802, 97, 104, 585, 22, ++ 594, 1163, 25, 868, 1165, 53, 29, 247, 56, 57, ++ 710, 59, 28, 36, 37, 63, 616, 1139, 34, 519, ++ 568, 911, 919, 1096, 1149, 114, 519, 1163, 76, 77, ++ 78, 981, 1165, 405, 406, 1197, 1197, 1169, 410, 356, ++ 412, 413, 749, 1165, 416, 600, 418, 1048, 420, 421, ++ 812, 67, 545, 544, 1255, 295, 668, 1067, 1219, 75, ++ 300, 1222, 1223, 676, 1068, 305, 268, 1228, 1229, 766, ++ 518, 443, 444, -1, 188, 221, 188, 1199, 1239, 1240, ++ 1241, 1242, -1, 99, 100, -1, -1, -1, 104, -1, ++ 106, 107, 108, -1, 110, 111, 112, 113, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, 481, ++ -1, 127, 128, 485, 486, 131, 132, 133, -1, 359, ++ -1, -1, -1, 1284, -1, -1, 366, -1, 500, 369, ++ 370, 371, 504, 1294, 506, -1, 629, 509, -1, 8, ++ 9, 10, -1, 636, 13, -1, -1, -1, 17, -1, ++ -1, -1, -1, -1, -1, -1, 25, -1, 398, -1, ++ 29, -1, -1, -1, -1, -1, -1, 36, 1290, -1, ++ 48, 49, 50, 51, 52, 53, 54, -1, 671, 57, ++ 58, 59, -1, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, +- 88, -1, -1, -1, 1278, -1, -1, 95, 96, 97, +- 98, -1, -1, -1, 102, -1, 104, 105, 106, 107, +- 108, 109, 110, 111, 112, 113, 114, 115, -1, -1, +- -1, 6, 7, 8, 9, 10, -1, -1, 126, 127, +- 128, 129, 130, 131, 132, 20, -1, 22, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, ++ 88, 89, 90, 453, 454, 587, 456, -1, -1, 97, ++ -1, -1, -1, -1, 8, 9, 10, -1, -1, 469, ++ 470, 471, -1, 17, -1, 475, -1, -1, -1, 732, ++ -1, 25, -1, -1, 616, 29, -1, -1, -1, -1, ++ -1, -1, 36, -1, -1, -1, -1, 750, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, 760, -1, -1, ++ 763, -1, -1, -1, -1, -1, -1, 517, 771, -1, ++ 520, -1, -1, -1, -1, -1, 526, -1, -1, -1, ++ -1, -1, 532, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, 1, 812, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ 823, -1, -1, 16, -1, 575, -1, 709, 710, -1, ++ 23, -1, -1, -1, -1, -1, -1, -1, 31, 32, ++ -1, 723, 724, -1, 726, -1, 39, 850, 41, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 865, 866, 57, -1, 59, -1, 61, -1, ++ 63, 621, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, 765, -1, -1, 79, 80, -1, 82, ++ 83, -1, 85, 896, -1, 88, 89, 90, 91, 92, ++ 93, 94, 95, -1, 97, -1, 99, 100, 911, 912, ++ 792, 793, -1, 795, -1, 797, 666, -1, 668, -1, ++ -1, -1, -1, -1, -1, -1, 119, 677, -1, -1, ++ 123, 813, 125, 126, 127, 128, -1, -1, -1, -1, ++ -1, -1, -1, 946, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, ++ -1, 964, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, 721, -1, -1, 16, -1, -1, -1, -1, -1, ++ -1, 23, -1, 25, 987, 988, -1, -1, -1, 31, ++ 32, 994, -1, 35, 36, 877, -1, 39, -1, 41, ++ -1, 43, -1, -1, -1, 755, -1, 757, -1, -1, ++ -1, 761, 762, -1, 764, 57, -1, 59, -1, 61, ++ -1, 63, -1, 773, -1, -1, -1, 69, -1, -1, ++ 1033, 913, 914, 915, 916, -1, -1, 79, 80, -1, ++ 82, 83, -1, 85, -1, 1048, 88, 89, 90, 91, ++ 92, 93, 94, 95, -1, 97, -1, 99, 100, 1062, ++ -1, -1, -1, -1, 814, -1, 948, 949, -1, 951, ++ -1, -1, -1, -1, -1, -1, -1, 119, -1, -1, ++ -1, 123, 832, 125, 126, 127, 128, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ 850, -1, -1, 853, 854, -1, -1, -1, -1, -1, ++ -1, -1, 994, -1, -1, -1, 1119, -1, -1, -1, ++ -1, 1124, 1125, 1126, -1, -1, -1, -1, 1010, -1, ++ -1, -1, -1, -1, -1, 1138, -1, -1, 888, -1, ++ 1143, 1144, -1, -1, -1, -1, 1149, -1, -1, -1, ++ -1, 1033, 1034, -1, -1, -1, -1, -1, -1, -1, ++ -1, 911, -1, -1, 914, -1, -1, 1, -1, 919, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, 1187, -1, 1189, -1, -1, 23, ++ -1, -1, -1, -1, -1, -1, -1, 31, 32, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, 963, -1, -1, -1, -1, -1, 1101, ++ 1102, -1, -1, 57, -1, 59, -1, 61, -1, 63, ++ -1, 1113, 1114, -1, -1, -1, -1, 987, 988, -1, ++ -1, -1, -1, -1, 994, 79, 80, -1, 82, 83, ++ -1, 85, -1, -1, 88, 89, 90, 91, 92, 93, ++ 94, 95, 96, 97, -1, 99, 100, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, 1029, ++ 1030, -1, 1032, 1165, -1, 119, 1036, -1, -1, 123, ++ -1, 125, 126, 127, 128, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, 1069, ++ -1, -1, -1, -1, -1, 1075, -1, -1, -1, 1079, ++ -1, -1, -1, -1, -1, -1, -1, 1219, -1, -1, ++ 1222, 1223, -1, -1, -1, -1, 1228, 1229, -1, -1, ++ -1, -1, -1, -1, 1104, -1, -1, 1239, 1240, 1241, ++ 1242, -1, 23, 1113, 1114, -1, -1, -1, -1, -1, ++ 31, 32, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, 1143, 1144, -1, 57, -1, 59, 1149, ++ 61, -1, 63, -1, -1, -1, -1, -1, -1, 1159, ++ 1160, -1, -1, -1, -1, 1165, -1, -1, 79, 80, ++ -1, 82, 83, -1, 85, -1, -1, 88, 89, 90, ++ 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ 1200, -1, -1, -1, -1, -1, -1, 1, 119, -1, ++ 4, -1, 123, 124, 125, 126, 127, 128, -1, 1219, ++ -1, 15, 1222, 1223, 1224, 19, -1, -1, 22, -1, ++ -1, -1, -1, -1, 28, -1, 30, -1, -1, 33, ++ 34, -1, -1, -1, -1, 1245, -1, -1, -1, -1, ++ -1, -1, -1, -1, 48, -1, 50, 51, -1, 53, ++ -1, -1, -1, 57, -1, 59, -1, -1, 62, 63, ++ -1, -1, -1, 67, 68, -1, 70, 71, -1, 73, ++ -1, 75, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, 85, -1, 1293, -1, -1, -1, -1, -1, -1, ++ -1, 95, -1, 97, 98, 99, 100, 101, -1, -1, ++ 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, ++ 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, ++ 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, ++ 1, -1, -1, 4, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, 15, -1, -1, -1, 19, -1, ++ -1, 22, -1, -1, -1, -1, -1, 28, -1, 30, ++ -1, -1, 33, 34, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, 48, -1, 50, ++ 51, -1, 53, -1, -1, -1, 57, -1, 59, -1, ++ -1, 62, 63, -1, -1, -1, 67, 68, -1, 70, ++ 71, -1, 73, -1, 75, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, 95, -1, 97, 98, 99, 100, ++ 101, -1, -1, 104, 105, 106, 107, 108, 109, 110, ++ 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, ++ 121, -1, 123, 124, 125, 126, 127, 128, 129, 130, ++ 131, 132, 133, 1, -1, -1, 4, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, ++ -1, 19, -1, -1, 22, -1, -1, -1, -1, -1, ++ 28, -1, 30, -1, -1, 33, 34, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ 48, -1, 50, 51, -1, 53, -1, -1, -1, 57, ++ -1, 59, -1, -1, 62, 63, -1, -1, -1, 67, ++ 68, -1, 70, 71, -1, 73, -1, 75, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, 95, -1, 97, ++ 98, 99, 100, 101, -1, -1, 104, 105, 106, 107, ++ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, ++ 118, 119, 120, 121, -1, 123, 124, 125, 126, 127, ++ 128, 129, 130, 131, 132, 133, 1, -1, -1, 4, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ 15, -1, -1, -1, 19, -1, -1, 22, -1, -1, ++ -1, -1, -1, 28, -1, 30, -1, -1, 33, 34, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, 48, -1, 50, 51, -1, 53, -1, ++ -1, -1, 57, -1, 59, -1, -1, 62, 63, -1, ++ -1, -1, 67, 68, -1, 70, 71, -1, 73, -1, ++ 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ 95, -1, 97, 98, 99, 100, 101, -1, -1, 104, ++ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, ++ 115, 116, 117, 118, 119, 120, 121, -1, 123, 124, ++ 125, 126, 127, 128, 129, 130, 131, 132, 133, 1, ++ -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, 15, -1, -1, -1, 19, -1, -1, ++ 22, -1, -1, -1, -1, -1, 28, -1, 30, -1, ++ -1, 33, 34, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, 48, -1, 50, 51, ++ -1, 53, -1, -1, -1, 57, -1, 59, -1, -1, ++ 62, 63, -1, -1, -1, 67, 68, -1, 70, 71, ++ -1, 73, -1, 75, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, 95, -1, 97, 98, 99, 100, 101, ++ -1, -1, 104, 105, 106, 107, 108, 109, 110, 111, ++ 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, ++ -1, 123, 124, 125, 126, 127, 128, 129, 130, 131, ++ 132, 133, 4, -1, -1, -1, 8, 9, 10, 11, ++ 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, 23, -1, 25, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, 36, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, ++ 52, 53, 54, -1, 56, 57, 58, 59, 60, 61, ++ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, ++ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ++ 82, 83, 84, 85, 86, 87, 88, 89, 90, -1, ++ -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- 45, 46, 47, 48, 49, 50, 51, -1, 53, 54, +- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, +- 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, +- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, +- 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, +- 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, 118, 119, 120, 121, ++ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, ++ 132, 133, 1, -1, -1, -1, -1, -1, -1, 8, ++ 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, 23, -1, -1, -1, -1, -1, ++ -1, -1, 31, 32, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, 48, ++ 49, 50, 51, 52, 53, 54, -1, 56, 57, 58, ++ 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, ++ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, ++ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, ++ 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, ++ 99, 100, -1, 1, -1, -1, -1, -1, -1, -1, ++ 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, ++ 119, -1, 121, -1, 123, 23, 125, 126, 127, 128, ++ -1, -1, -1, 31, 32, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, +- 125, 126, 127, 128, 129, 130, 131, 132, 1, -1, +- -1, -1, -1, 6, 7, 8, 9, 10, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, +- -1, -1, -1, -1, -1, 28, 29, -1, -1, -1, ++ 48, 49, 50, 51, 52, 53, 54, -1, 56, 57, ++ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, ++ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ++ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, ++ 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, ++ -1, 99, 100, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, 45, 46, 47, 48, 49, 50, 51, -1, +- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, +- 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, +- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, +- 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, +- 93, -1, 95, -1, 97, 98, -1, -1, 1, -1, +- -1, -1, -1, 6, 7, 8, 9, 10, -1, -1, +- -1, -1, -1, -1, 117, -1, 119, 20, 121, -1, +- 123, 124, -1, 126, 127, 28, 29, -1, -1, -1, ++ -1, 119, -1, -1, 1, 123, 124, 125, 126, 127, ++ 128, 8, 9, 10, 11, 12, 13, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, 23, -1, -1, -1, ++ -1, -1, -1, -1, 31, 32, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, 45, 46, 47, 48, 49, 50, 51, -1, +- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, ++ -1, 48, 49, 50, 51, 52, 53, 54, -1, 56, ++ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, ++ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ++ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, ++ 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, ++ 97, -1, 99, 100, -1, -1, -1, -1, -1, -1, ++ 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 119, -1, -1, 16, 123, -1, 125, 126, ++ 127, 128, 23, -1, 25, -1, -1, -1, -1, -1, ++ 31, 32, -1, -1, 35, 36, -1, -1, 39, -1, ++ 41, -1, 43, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, 54, -1, -1, 57, -1, 59, -1, ++ 61, -1, 63, -1, -1, -1, -1, -1, 69, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, 79, 80, ++ -1, 82, 83, -1, 85, -1, -1, 88, 89, 90, ++ 91, 92, 93, 94, 95, -1, 97, -1, 99, 100, ++ -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, 119, -1, ++ 14, -1, 123, -1, 125, 126, 127, 128, 22, 23, ++ -1, -1, -1, -1, -1, -1, -1, 31, 32, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 1, 57, -1, 59, -1, 61, -1, 63, ++ -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, 23, 79, 80, -1, 82, 83, ++ -1, 85, 31, 32, 88, 89, 90, 91, 92, 93, ++ 94, 95, -1, 97, -1, 99, 100, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, ++ 59, -1, 61, -1, 63, 119, -1, -1, -1, 123, ++ -1, 125, 126, 127, 128, -1, -1, 1, -1, -1, ++ 79, 80, -1, 82, 83, -1, 85, -1, -1, 88, ++ 89, 90, 91, 92, 93, 94, 95, 96, 97, 23, ++ 99, 100, -1, -1, -1, -1, -1, 31, 32, -1, ++ -1, 35, -1, -1, -1, -1, -1, -1, -1, -1, ++ 119, -1, -1, -1, 123, -1, 125, 126, 127, 128, ++ -1, -1, 1, 57, -1, 59, -1, 61, -1, 63, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, 23, 79, 80, -1, 82, 83, ++ -1, 85, 31, 32, 88, 89, 90, 91, 92, 93, ++ 94, 95, -1, 97, -1, 99, 100, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, 1, 57, -1, ++ 59, -1, 61, -1, 63, 119, -1, -1, -1, 123, ++ -1, 125, 126, 127, 128, -1, -1, -1, -1, 23, ++ 79, 80, -1, 82, 83, -1, 85, 31, 32, 88, ++ 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, ++ 99, 100, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 1, 57, -1, 59, -1, 61, -1, 63, ++ 119, -1, -1, -1, 123, -1, 125, 126, 127, 128, ++ -1, -1, -1, -1, 23, 79, 80, -1, 82, 83, ++ -1, 85, 31, 32, 88, 89, 90, 91, 92, 93, ++ 94, 95, -1, 97, -1, 99, 100, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, 1, 57, -1, ++ 59, -1, 61, -1, 63, 119, -1, -1, -1, 123, ++ -1, 125, 126, 127, 128, -1, -1, -1, -1, 23, ++ 79, 80, -1, 82, 83, -1, 85, 31, 32, 88, ++ 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, ++ 99, 100, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 1, 57, -1, 59, -1, 61, -1, 63, ++ 119, -1, -1, -1, 123, -1, 125, 126, 127, 128, ++ -1, -1, -1, -1, 23, 79, 80, -1, 82, 83, ++ -1, 85, 31, 32, 88, 89, 90, 91, 92, 93, ++ 94, 95, -1, 97, -1, 99, 100, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, 1, 57, -1, ++ 59, -1, 61, -1, 63, 119, -1, -1, -1, 123, ++ -1, 125, 126, 127, 128, -1, -1, -1, -1, 23, ++ 79, 80, -1, 82, 83, -1, 85, 31, 32, 88, ++ 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, ++ 99, 100, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 1, 57, -1, 59, -1, 61, -1, 63, ++ 119, -1, -1, -1, 123, -1, 125, 126, 127, 128, ++ -1, -1, -1, -1, 23, 79, 80, -1, 82, 83, ++ -1, 85, 31, 32, 88, 89, 90, 91, 92, 93, ++ 94, 95, -1, 97, -1, 99, 100, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, 1, 57, -1, ++ 59, -1, 61, -1, 63, 119, -1, -1, -1, 123, ++ -1, 125, 126, 127, 128, -1, -1, -1, -1, 23, ++ 79, 80, -1, 82, 83, -1, 85, 31, 32, 88, ++ 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, ++ 99, 100, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 1, 57, -1, 59, -1, 61, -1, 63, ++ 119, -1, -1, -1, 123, -1, 125, 126, 127, 128, ++ -1, -1, -1, -1, 23, 79, 80, -1, 82, 83, ++ -1, 85, 31, 32, 88, 89, 90, 91, 92, 93, ++ 94, 95, -1, 97, -1, 99, 100, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, 1, 57, -1, ++ 59, -1, 61, -1, 63, 119, -1, -1, -1, 123, ++ -1, 125, 126, 127, 128, -1, -1, -1, -1, 23, ++ 79, 80, -1, 82, 83, -1, 85, 31, 32, 88, ++ 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, ++ 99, 100, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 1, 57, -1, 59, -1, 61, -1, 63, ++ 119, -1, -1, -1, 123, -1, 125, 126, 127, 128, ++ -1, -1, -1, -1, 23, 79, 80, -1, 82, 83, ++ -1, 85, 31, 32, 88, 89, 90, 91, 92, 93, ++ 94, 95, -1, 97, -1, 99, 100, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, 1, 57, -1, ++ 59, -1, 61, -1, 63, 119, -1, -1, -1, 123, ++ -1, 125, 126, 127, 128, -1, -1, -1, -1, 23, ++ 79, 80, -1, 82, 83, -1, 85, 31, 32, 88, ++ 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, ++ 99, 100, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 1, 57, -1, 59, -1, 61, -1, 63, ++ 119, -1, -1, -1, 123, -1, 125, 126, 127, 128, ++ -1, -1, -1, -1, 23, 79, 80, -1, 82, 83, ++ -1, 85, 31, 32, 88, 89, 90, 91, 92, 93, ++ 94, 95, -1, 97, -1, 99, 100, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, 1, 57, -1, ++ 59, -1, 61, -1, 63, 119, -1, -1, -1, 123, ++ -1, 125, 126, 127, 128, -1, -1, -1, -1, 23, ++ 79, 80, -1, 82, 83, -1, 85, 31, 32, 88, ++ 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, ++ 99, 100, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 1, 57, -1, 59, -1, 61, -1, 63, ++ 119, -1, -1, -1, 123, -1, 125, 126, 127, 128, ++ -1, -1, -1, -1, 23, 79, 80, -1, 82, 83, ++ -1, 85, 31, 32, 88, 89, 90, 91, 92, 93, ++ 94, 95, -1, 97, -1, 99, 100, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, 1, 57, -1, ++ 59, -1, 61, -1, 63, 119, -1, -1, -1, 123, ++ -1, 125, 126, 127, 128, -1, -1, -1, -1, 23, ++ 79, 80, -1, 82, 83, -1, 85, 31, 32, 88, ++ 89, 90, 91, 92, 93, 94, 95, -1, 97, -1, ++ 99, 100, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, 57, -1, 59, -1, 61, -1, 63, ++ 119, -1, -1, -1, 123, -1, 125, 126, 127, 128, ++ -1, -1, -1, -1, -1, 79, 80, -1, 82, 83, ++ -1, 85, -1, -1, 88, 89, 90, 91, 92, 93, ++ 94, 95, -1, 97, -1, 99, 100, -1, -1, -1, ++ -1, -1, -1, -1, -1, 8, 9, 10, 11, 12, ++ 13, -1, 15, -1, -1, 119, 19, -1, -1, 123, ++ -1, 125, 126, 127, 128, 28, -1, 30, -1, -1, ++ -1, 34, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, ++ 53, 54, -1, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, +- 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, +- 93, -1, 95, -1, 97, 98, -1, -1, 1, -1, +- -1, -1, -1, 6, 7, 8, 9, 10, -1, -1, +- -1, -1, -1, -1, 117, -1, -1, 20, 121, 122, +- 123, 124, -1, 126, 127, 28, 29, -1, -1, -1, ++ 83, 84, 85, 86, 87, 88, 89, 90, -1, -1, ++ -1, -1, -1, -1, 97, 98, 99, 100, -1, -1, ++ -1, 104, -1, 106, 107, 108, 109, 110, 111, 112, ++ 113, 114, 115, 116, 117, 8, 9, 10, 11, 12, ++ 13, -1, -1, -1, 127, 128, 129, 130, 131, 132, ++ 133, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, 45, 46, 47, 48, 49, 50, 51, -1, +- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, ++ -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, ++ 53, 54, -1, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, +- 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, +- 93, -1, 95, -1, 97, 98, -1, -1, 1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- 13, -1, -1, -1, 117, -1, -1, 20, 121, 22, +- 123, 124, -1, 126, 127, 28, 29, -1, -1, 32, +- 33, -1, -1, 36, -1, 38, -1, 40, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, 51, -1, +- -1, 54, -1, 56, -1, 58, -1, -1, 61, -1, +- -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, 77, 78, -1, 80, 81, -1, +- 83, -1, -1, 86, 87, 88, 89, 90, 91, 92, +- 93, -1, 95, -1, 97, 98, -1, -1, 1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- 13, -1, -1, -1, 117, -1, -1, 20, 121, 22, +- 123, 124, -1, 126, 127, 28, 29, -1, -1, 32, +- 33, -1, -1, 36, -1, 38, -1, 40, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, 54, -1, 56, -1, 58, -1, -1, 61, -1, +- -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, +- -1, -1, 1, -1, 77, 78, -1, 80, 81, -1, +- 83, -1, -1, 86, 87, 88, 89, 90, 91, 92, +- 93, 20, 95, -1, 97, 98, -1, -1, -1, 28, +- 29, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, 117, -1, -1, -1, 121, -1, +- 123, 124, -1, 126, 127, 54, -1, 56, -1, 58, +- -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, 77, 78, +- -1, 80, 81, 1, 83, -1, -1, 86, 87, 88, +- 89, 90, 91, 92, 93, 94, 95, -1, 97, 98, +- -1, -1, 20, -1, -1, -1, -1, -1, -1, -1, +- 28, 29, -1, -1, -1, -1, -1, -1, 117, -1, +- -1, -1, 121, -1, 123, 124, -1, 126, 127, -1, +- -1, -1, -1, -1, -1, -1, 54, -1, 56, -1, +- 58, -1, -1, 61, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, 77, +- 78, -1, 80, 81, 1, 83, -1, -1, 86, 87, +- 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, +- 98, -1, -1, 20, -1, -1, -1, -1, -1, -1, +- -1, 28, 29, -1, -1, 32, -1, -1, -1, 117, +- -1, -1, -1, 121, -1, 123, 124, -1, 126, 127, +- -1, -1, -1, -1, -1, -1, -1, 54, -1, 56, +- -1, 58, -1, -1, 61, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, +- 77, 78, -1, 80, 81, -1, 83, -1, -1, 86, +- 87, 88, 89, 90, 91, 92, 93, 20, 95, -1, +- 97, 98, -1, -1, -1, 28, 29, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- 117, -1, -1, -1, 121, -1, 123, 124, -1, 126, +- 127, 54, -1, 56, -1, 58, -1, -1, 61, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, 1, -1, 77, 78, -1, 80, 81, -1, +- 83, -1, -1, 86, 87, 88, 89, 90, 91, 92, +- 93, 20, 95, -1, 97, 98, -1, -1, -1, 28, +- 29, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, 117, -1, -1, -1, 121, -1, +- 123, 124, -1, 126, 127, 54, -1, 56, -1, 58, +- -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, 1, -1, 77, 78, +- -1, 80, 81, -1, 83, -1, -1, 86, 87, 88, +- 89, 90, 91, 92, 93, 20, 95, -1, 97, 98, +- -1, -1, -1, 28, 29, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, 117, -1, +- -1, -1, 121, -1, 123, 124, -1, 126, 127, 54, +- -1, 56, -1, 58, -1, -1, 61, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- 1, -1, 77, 78, -1, 80, 81, -1, 83, -1, +- -1, 86, 87, 88, 89, 90, 91, 92, 93, 20, +- 95, -1, 97, 98, -1, -1, -1, 28, 29, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, 117, -1, -1, -1, 121, -1, 123, 124, +- -1, 126, 127, 54, -1, 56, -1, 58, -1, -1, +- 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, 1, -1, 77, 78, -1, 80, +- 81, -1, 83, -1, -1, 86, 87, 88, 89, 90, +- 91, 92, 93, 20, 95, -1, 97, 98, -1, -1, +- -1, 28, 29, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, 117, -1, -1, -1, +- 121, -1, 123, 124, -1, 126, 127, 54, -1, 56, +- -1, 58, -1, -1, 61, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, +- 77, 78, -1, 80, 81, -1, 83, -1, -1, 86, +- 87, 88, 89, 90, 91, 92, 93, 20, 95, -1, +- 97, 98, -1, -1, -1, 28, 29, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- 117, -1, -1, -1, 121, -1, 123, 124, -1, 126, +- 127, 54, -1, 56, -1, 58, -1, -1, 61, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, 1, -1, 77, 78, -1, 80, 81, -1, +- 83, -1, -1, 86, 87, 88, 89, 90, 91, 92, +- 93, 20, 95, -1, 97, 98, -1, -1, -1, 28, +- 29, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, 117, -1, -1, -1, 121, -1, +- 123, 124, -1, 126, 127, 54, -1, 56, -1, 58, +- -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, 1, -1, 77, 78, +- -1, 80, 81, -1, 83, -1, -1, 86, 87, 88, +- 89, 90, 91, 92, 93, 20, 95, -1, 97, 98, +- -1, -1, -1, 28, 29, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, 117, -1, +- -1, -1, 121, -1, 123, 124, -1, 126, 127, 54, +- -1, 56, -1, 58, -1, -1, 61, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- 1, -1, 77, 78, -1, 80, 81, -1, 83, -1, +- -1, 86, 87, 88, 89, 90, 91, 92, 93, 20, +- 95, -1, 97, 98, -1, -1, -1, 28, 29, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, 117, -1, -1, -1, 121, -1, 123, 124, +- -1, 126, 127, 54, -1, 56, -1, 58, -1, -1, +- 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, 1, -1, 77, 78, -1, 80, +- 81, -1, 83, -1, -1, 86, 87, 88, 89, 90, +- 91, 92, 93, 20, 95, -1, 97, 98, -1, -1, +- -1, 28, 29, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, 117, -1, -1, -1, +- 121, -1, 123, 124, -1, 126, 127, 54, -1, 56, +- -1, 58, -1, -1, 61, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, +- 77, 78, -1, 80, 81, -1, 83, -1, -1, 86, +- 87, 88, 89, 90, 91, 92, 93, 20, 95, -1, +- 97, 98, -1, -1, -1, 28, 29, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- 117, -1, -1, -1, 121, -1, 123, 124, -1, 126, +- 127, 54, -1, 56, -1, 58, -1, -1, 61, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, 1, -1, 77, 78, -1, 80, 81, -1, +- 83, -1, -1, 86, 87, 88, 89, 90, 91, 92, +- 93, 20, 95, -1, 97, 98, -1, -1, -1, 28, +- 29, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, 117, -1, -1, -1, 121, -1, +- 123, 124, -1, 126, 127, 54, -1, 56, -1, 58, +- -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, 1, -1, 77, 78, +- -1, 80, 81, -1, 83, -1, -1, 86, 87, 88, +- 89, 90, 91, 92, 93, 20, 95, -1, 97, 98, +- -1, -1, -1, 28, 29, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, 117, -1, +- -1, -1, 121, -1, 123, 124, -1, 126, 127, 54, +- -1, 56, -1, 58, -1, -1, 61, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- 1, -1, 77, 78, -1, 80, 81, -1, 83, -1, +- -1, 86, 87, 88, 89, 90, 91, 92, 93, 20, +- 95, -1, 97, 98, -1, -1, -1, 28, 29, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, 117, -1, -1, -1, 121, -1, 123, 124, +- -1, 126, 127, 54, -1, 56, -1, 58, -1, -1, +- 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, 1, -1, 77, 78, -1, 80, +- 81, -1, 83, -1, -1, 86, 87, 88, 89, 90, +- 91, 92, 93, 20, 95, -1, 97, 98, -1, -1, +- -1, 28, 29, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, 117, -1, -1, -1, +- 121, -1, 123, 124, -1, 126, 127, 54, -1, 56, +- -1, 58, -1, -1, 61, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, +- 77, 78, -1, 80, 81, -1, 83, -1, -1, 86, +- 87, 88, 89, 90, 91, 92, 93, 20, 95, -1, +- 97, 98, -1, -1, -1, 28, 29, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- 117, -1, -1, -1, 121, -1, 123, 124, -1, 126, +- 127, 54, -1, 56, -1, 58, -1, -1, 61, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, 77, 78, -1, 80, 81, -1, +- 83, -1, -1, 86, 87, 88, 89, 90, 91, 92, +- 93, -1, 95, -1, 97, 98, 6, 7, 8, 9, +- 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, 117, -1, -1, -1, 121, -1, +- 123, 124, -1, 126, 127, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, 45, 46, 47, 48, 49, +- 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, +- 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, +- 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, +- 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, +- -1, -1, -1, -1, -1, 95, 96, 6, 7, 8, +- 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, 20, -1, -1, -1, -1, -1, -1, -1, 28, +- 29, -1, -1, 32, -1, -1, -1, -1, -1, -1, +- -1, 131, -1, -1, -1, -1, 45, 46, 47, 48, +- 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, +- 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, +- 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, +- 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, +- 89, 90, 91, 92, 93, -1, 95, -1, 97, 98, +- -1, -1, -1, -1, -1, -1, -1, 6, 7, 8, +- 9, 10, -1, -1, -1, -1, -1, -1, 117, -1, +- -1, 20, 121, -1, 123, 124, -1, 126, 127, 28, +- 29, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, 45, 46, 47, 48, +- 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, ++ 83, 84, 85, 86, 87, 88, 89, 90, -1, -1, ++ -1, -1, -1, -1, 97, 98, 8, 9, 10, 11, ++ 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, 23, -1, -1, -1, -1, -1, -1, -1, 31, ++ 32, -1, -1, 35, -1, -1, -1, -1, -1, 132, ++ -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, ++ 52, 53, 54, -1, 56, 57, 58, 59, 60, 61, ++ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, ++ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ++ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, ++ 92, 93, 94, 95, -1, 97, -1, 99, 100, -1, ++ -1, -1, -1, -1, 8, 9, 10, 11, 12, 13, ++ -1, -1, -1, -1, -1, -1, -1, 119, -1, 23, ++ -1, 123, -1, 125, 126, 127, 128, 31, 32, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, ++ 54, -1, 56, 57, 58, 59, 60, 61, 62, 63, ++ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, ++ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, ++ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, ++ 94, 95, 1, 97, -1, 99, 100, -1, -1, 8, ++ 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, 119, 25, -1, -1, 123, ++ -1, 125, 126, 127, 128, -1, -1, 36, -1, -1, ++ -1, -1, -1, -1, -1, -1, 45, -1, -1, 48, ++ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, +- 89, 90, 91, 92, 93, -1, 95, -1, 97, 98, +- 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, 117, -1, +- -1, -1, 121, 29, 123, 124, -1, 126, 127, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, 45, +- 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, ++ 89, 90, 8, 9, 10, 11, 12, 13, 97, -1, ++ -1, -1, -1, 102, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, 32, -1, -1, -1, ++ -1, -1, 121, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 48, 49, 50, 51, 52, 53, 54, -1, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, +- 86, 87, 88, 89, 90, -1, -1, -1, -1, 95, +- -1, 97, 98, -1, -1, 6, 7, 8, 9, 10, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, +- -1, 22, -1, -1, -1, -1, -1, 28, 29, -1, +- 126, 127, 33, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, 45, 46, 47, 48, 49, 50, +- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, +- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, +- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, +- 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, +- 91, 92, 93, 1, 95, -1, 97, 98, 6, 7, +- 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, 22, -1, 117, -1, -1, -1, +- 121, -1, 123, 124, -1, 33, -1, -1, -1, -1, +- -1, -1, -1, -1, 42, -1, -1, 45, 46, 47, +- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, ++ 86, 87, 88, 89, 90, 91, 92, -1, 1, -1, ++ -1, 97, -1, 99, 100, 8, 9, 10, 11, 12, ++ 13, -1, -1, -1, -1, 18, -1, -1, -1, 22, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, 127, 128, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, ++ 53, 54, -1, 56, 57, 58, 59, 60, 61, 62, ++ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, ++ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, ++ 83, 84, 85, 86, 87, 88, 89, 90, 8, 9, ++ 10, 11, 12, 13, 97, -1, -1, -1, -1, -1, ++ -1, -1, -1, 23, -1, 25, -1, -1, -1, -1, ++ -1, 31, 32, -1, -1, -1, 36, -1, 121, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, ++ 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, ++ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, ++ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, ++ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, ++ 90, 91, 92, 93, 94, 95, -1, 97, -1, 99, ++ 100, -1, -1, 15, -1, 17, 18, -1, -1, -1, ++ -1, 23, 24, -1, 26, 27, -1, -1, -1, 119, ++ 32, -1, 34, 123, -1, 125, 126, -1, 40, -1, ++ -1, -1, -1, 45, 46, 47, -1, -1, -1, -1, ++ 52, -1, -1, -1, -1, 57, -1, 59, -1, 61, ++ -1, 63, -1, -1, -1, -1, -1, -1, 70, 71, ++ -1, -1, -1, 75, -1, -1, -1, 79, 80, 81, ++ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, ++ 15, -1, 17, 18, -1, 97, -1, -1, 23, 24, ++ -1, 26, 27, -1, -1, -1, -1, 32, -1, 34, ++ -1, -1, -1, -1, -1, 40, -1, 119, -1, -1, ++ -1, 46, 47, 125, -1, -1, -1, 52, -1, -1, ++ -1, -1, 57, -1, 59, -1, 61, -1, 63, -1, ++ -1, -1, -1, -1, -1, 70, 71, -1, -1, -1, ++ 75, -1, -1, -1, 79, 80, 81, 82, 83, 84, ++ 85, 86, 87, 88, 89, 90, 22, 23, -1, -1, ++ -1, -1, 97, -1, -1, 31, 32, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, ++ 125, 57, -1, 59, -1, 61, -1, 63, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, 79, 80, -1, 82, 83, -1, 85, ++ -1, -1, 88, 89, 90, 91, 92, 93, 94, 95, ++ 23, 97, -1, 99, 100, -1, -1, -1, 31, 32, ++ -1, -1, 35, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 118, 119, -1, -1, -1, 123, -1, 125, ++ 126, 127, 128, -1, 57, -1, 59, -1, 61, -1, ++ 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, 23, 79, 80, -1, 82, ++ 83, -1, 85, 31, 32, 88, 89, 90, 91, 92, ++ 93, 94, 95, -1, 97, -1, 99, 100, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, ++ -1, 59, -1, 61, -1, 63, 119, -1, -1, -1, ++ 123, -1, 125, 126, 127, 128, -1, -1, -1, -1, ++ 23, 79, 80, -1, 82, 83, -1, 85, 31, 32, ++ 88, 89, 90, 91, 92, 93, 94, 95, -1, 97, ++ -1, 99, 100, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, 57, -1, 59, -1, 61, -1, ++ 63, 119, -1, -1, -1, 123, -1, 125, 126, 127, ++ 128, -1, -1, -1, -1, 23, 79, 80, -1, 82, ++ 83, -1, 85, 31, 32, 88, 89, 90, 91, 92, ++ 93, 94, 95, -1, 97, -1, 99, 100, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, ++ -1, 59, -1, 61, -1, 63, 119, -1, -1, -1, ++ 123, -1, 125, 126, 127, 128, -1, -1, -1, -1, ++ -1, 79, 80, -1, 82, 83, -1, 85, -1, -1, ++ 88, 89, 90, 91, 92, 93, 94, 95, 1, 97, ++ -1, 99, 100, -1, -1, 8, 9, 10, 11, 12, ++ 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, 119, 25, -1, -1, 123, -1, 125, 126, -1, ++ -1, -1, -1, 36, -1, -1, -1, -1, -1, -1, ++ -1, -1, 45, -1, -1, 48, 49, 50, 51, 52, ++ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, ++ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, ++ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, ++ 83, 84, 85, 86, 87, 88, 89, 90, -1, -1, ++ -1, -1, -1, 1, 97, -1, -1, -1, -1, 102, ++ 8, 9, 10, 11, 12, 13, -1, -1, -1, 17, ++ -1, -1, -1, -1, 22, -1, -1, 25, -1, -1, ++ -1, 29, -1, -1, -1, -1, -1, -1, 36, 37, ++ -1, -1, -1, -1, -1, 43, -1, 45, -1, -1, ++ 48, 49, 50, 51, 52, 53, 54, 55, -1, 57, ++ 58, 59, -1, 61, 62, 63, 64, 65, 66, 67, ++ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ++ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, ++ 88, 89, 90, 1, -1, -1, -1, -1, -1, 97, ++ 8, 9, 10, 11, 12, 13, -1, -1, -1, 17, ++ -1, -1, -1, -1, 22, -1, -1, 25, -1, -1, ++ -1, 29, -1, -1, -1, -1, -1, -1, 36, 37, ++ -1, -1, -1, -1, -1, 43, -1, 45, -1, -1, ++ 48, 49, 50, 51, 52, -1, 54, 55, -1, 57, ++ 58, 59, -1, 61, 62, 63, 64, 65, 66, 67, ++ 68, 69, 70, 71, 72, 73, 74, 75, -1, 77, ++ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, ++ 88, 89, 90, 1, -1, -1, -1, -1, -1, 97, ++ 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, ++ -1, -1, -1, -1, 22, -1, -1, 25, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, 36, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ 48, 49, 50, 51, 52, 53, 54, -1, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, +- 88, -1, -1, -1, -1, -1, -1, 95, 1, -1, +- -1, -1, 100, 6, 7, 8, 9, 10, -1, -1, +- -1, -1, 15, -1, -1, -1, 19, -1, -1, -1, +- -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, ++ 88, 89, 90, 1, -1, -1, -1, -1, -1, 97, ++ 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, ++ 18, -1, -1, -1, 22, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, 45, 46, 47, 48, 49, 50, 51, -1, +- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, +- 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, +- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, +- 83, 84, 85, 86, 87, 88, -1, 12, -1, 14, +- 15, -1, 95, -1, -1, 20, 21, -1, 23, 24, +- -1, -1, -1, -1, 29, -1, 31, -1, -1, -1, +- -1, -1, 37, -1, -1, -1, 119, 42, 43, 44, +- -1, -1, -1, -1, 49, -1, -1, -1, -1, 54, +- -1, 56, -1, 58, -1, -1, 61, -1, -1, -1, +- -1, -1, -1, 68, 69, -1, -1, -1, 73, -1, +- -1, -1, 77, 78, 79, 80, 81, 82, 83, 84, +- 85, 86, 87, 88, 89, 12, -1, 14, 15, -1, +- 95, -1, -1, 20, 21, -1, 23, 24, -1, -1, +- -1, -1, 29, -1, 31, -1, -1, -1, -1, -1, +- 37, -1, 117, -1, -1, -1, 43, 44, 123, -1, +- -1, -1, 49, -1, -1, -1, -1, 54, -1, 56, +- -1, 58, -1, -1, 61, -1, -1, -1, -1, 19, +- 20, 68, 69, -1, -1, -1, 73, -1, 28, 29, +- 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, +- 87, 88, -1, -1, -1, -1, -1, -1, 95, -1, +- -1, -1, -1, -1, 54, -1, 56, -1, 58, -1, +- -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, +- 117, -1, -1, -1, -1, -1, 123, 77, 78, -1, +- 80, 81, -1, 83, -1, -1, 86, 87, 88, 89, +- 90, 91, 92, 93, 20, 95, -1, 97, 98, -1, +- -1, -1, 28, 29, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, 116, 117, -1, -1, +- -1, 121, -1, 123, 124, -1, 126, 127, 54, -1, +- 56, -1, 58, -1, -1, 61, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, 77, 78, -1, 80, 81, -1, 83, -1, -1, +- 86, 87, 88, 89, 90, 91, 92, 93, 20, 95, +- -1, 97, 98, -1, -1, -1, 28, 29, -1, -1, +- 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, 117, -1, -1, -1, 121, 122, 123, 124, -1, +- 126, 127, 54, -1, 56, -1, 58, -1, -1, 61, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, 77, 78, -1, 80, 81, +- -1, 83, -1, -1, 86, 87, 88, 89, 90, 91, +- 92, 93, 20, 95, -1, 97, 98, -1, -1, -1, +- 28, 29, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, 117, -1, -1, -1, 121, +- -1, 123, 124, -1, 126, 127, 54, -1, 56, -1, +- 58, -1, -1, 61, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, 77, +- 78, -1, 80, 81, -1, 83, -1, -1, 86, 87, +- 88, 89, 90, 91, 92, 93, 20, 95, -1, 97, +- 98, -1, -1, -1, 28, 29, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, 117, +- -1, -1, -1, 121, -1, 123, 124, -1, 126, 127, +- 54, -1, 56, -1, 58, -1, -1, 61, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, 77, 78, -1, 80, 81, -1, 83, +- -1, -1, 86, 87, 88, 89, 90, 91, 92, 93, +- -1, 95, -1, 97, 98, 1, -1, -1, -1, -1, +- 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, +- -1, -1, -1, 117, -1, -1, 22, 121, -1, 123, +- 124, -1, 126, 127, -1, -1, -1, 33, -1, -1, +- -1, -1, -1, -1, -1, -1, 42, -1, -1, 45, +- 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, +- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, +- 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, +- 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, +- 86, 87, 88, -1, -1, -1, -1, -1, -1, 95, +- 1, -1, -1, -1, 100, 6, 7, 8, 9, 10, +- -1, -1, -1, 14, -1, -1, -1, -1, 19, -1, +- -1, 22, -1, -1, -1, 26, -1, -1, -1, -1, +- -1, -1, 33, 34, -1, -1, -1, -1, -1, 40, +- -1, 42, -1, -1, 45, 46, 47, 48, 49, 50, +- 51, 52, -1, 54, 55, 56, -1, 58, 59, 60, +- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, +- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, +- 81, 82, 83, 84, 85, 86, 87, 88, -1, -1, +- 1, -1, -1, -1, 95, 6, 7, 8, 9, 10, +- -1, -1, -1, 14, -1, -1, -1, -1, 19, -1, +- -1, 22, -1, -1, -1, 26, -1, -1, -1, -1, +- -1, -1, 33, 34, -1, -1, -1, -1, -1, 40, +- -1, 42, -1, -1, 45, 46, 47, 48, 49, -1, +- 51, 52, -1, 54, 55, 56, -1, 58, 59, 60, +- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, +- 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, +- 81, 82, 83, 84, 85, 86, 87, 88, -1, -1, +- 1, -1, -1, -1, 95, 6, 7, 8, 9, 10, +- -1, -1, -1, -1, -1, -1, -1, -1, 19, -1, +- -1, 22, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, 45, 46, 47, 48, 49, 50, +- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, +- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, +- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, +- 81, 82, 83, 84, 85, 86, 87, 88, -1, -1, +- 1, -1, -1, -1, 95, 6, 7, 8, 9, 10, +- -1, -1, -1, -1, 15, -1, -1, -1, 19, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, 45, 46, 47, 48, 49, 50, +- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, +- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, +- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, +- 81, 82, 83, 84, 85, 86, 87, 88, -1, -1, +- 1, -1, -1, -1, 95, 6, 7, 8, 9, 10, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ 48, 49, 50, 51, 52, 53, 54, -1, 56, 57, ++ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, ++ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ++ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, ++ 88, 89, 90, 1, -1, -1, -1, -1, -1, 97, ++ 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, 45, 46, 47, 48, 49, 50, +- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, +- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, +- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, +- 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, +- 1, -1, -1, -1, 95, 6, 7, 8, 9, 10, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ 48, 49, 50, 51, 52, 53, 54, -1, 56, 57, ++ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, ++ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ++ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, ++ 88, 89, 90, 91, 1, -1, -1, -1, -1, 97, ++ -1, 8, 9, 10, 11, 12, 13, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, 45, 46, 47, 48, 49, 50, +- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, +- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, +- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, +- 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, +- 1, -1, -1, -1, 95, 6, 7, 8, 9, 10, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, 48, 49, 50, 51, 52, 53, 54, -1, 56, ++ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, ++ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ++ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, ++ 87, 88, 89, 90, 91, 1, -1, -1, -1, -1, ++ 97, -1, 8, 9, 10, 11, 12, 13, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, 45, 46, 47, 48, 49, 50, +- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, +- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, +- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, +- 81, 82, 83, 84, 85, 86, 87, 88, -1, -1, +- 1, -1, -1, -1, 95, 6, 7, 8, 9, 10, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 48, 49, 50, 51, 52, 53, 54, -1, ++ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, ++ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ++ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, ++ 86, 87, 88, 89, 90, 1, -1, -1, -1, -1, ++ -1, 97, 8, 9, 10, 11, 12, 13, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, 45, 46, 47, 48, 49, 50, +- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, +- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, +- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, +- 81, 82, 83, 84, 85, 86, 87, 88, -1, -1, +- 1, -1, -1, -1, 95, 6, 7, 8, 9, 10, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 48, 49, 50, 51, 52, 53, 54, -1, ++ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, ++ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ++ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, ++ 86, 87, 88, 89, 90, 1, -1, -1, -1, -1, ++ -1, 97, 8, 9, 10, 11, 12, 13, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, 45, 46, 47, 48, 49, 50, +- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, +- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, +- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, +- 81, 82, 83, 84, 85, 86, 87, 88, -1, -1, +- 1, -1, -1, -1, 95, 6, 7, 8, 9, 10, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 48, 49, 50, 51, 52, 53, 54, -1, ++ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, ++ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ++ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, ++ 86, 87, 88, 89, 90, 1, -1, -1, -1, -1, ++ -1, 97, 8, 9, 10, 11, 12, 13, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, 45, 46, 47, 48, 49, 50, +- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, +- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, +- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, +- 81, 82, 83, 84, 85, 86, 87, 88, -1, -1, +- 1, -1, -1, -1, 95, 6, 7, 8, 9, 10, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 48, 49, 50, 51, 52, 53, 54, -1, ++ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, ++ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ++ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, ++ 86, 87, 88, 89, 90, 1, -1, -1, -1, -1, ++ -1, 97, 8, 9, 10, 11, 12, 13, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, 45, 46, 47, 48, 49, 50, +- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, +- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, +- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, +- 81, 82, 83, 84, 85, 86, 87, 88, -1, -1, +- 1, -1, -1, -1, 95, 6, 7, 8, 9, 10, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 48, 49, 50, 51, 52, 53, 54, -1, ++ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, ++ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ++ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, ++ 86, 87, 88, 89, 90, 1, -1, -1, -1, -1, ++ -1, 97, 8, 9, 10, 11, 12, 13, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, 45, 46, 47, 48, 49, 50, +- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, +- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, +- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, +- 81, 82, 83, 84, 85, 86, 87, 88, -1, -1, +- 1, -1, -1, -1, 95, 6, 7, 8, 9, 10, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 48, 49, 50, 51, 52, 53, 54, -1, ++ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, ++ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ++ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, ++ 86, 87, 88, 89, 90, 1, -1, -1, -1, -1, ++ -1, 97, 8, 9, 10, 11, 12, 13, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, 45, 46, 47, 48, 49, 50, +- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, +- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, +- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, +- 81, 82, 83, 84, 85, 86, 87, 88, -1, -1, +- 1, -1, -1, -1, 95, 6, 7, 8, 9, 10, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 48, 49, 50, 51, 52, 53, 54, -1, ++ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, ++ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ++ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, ++ 86, 87, 88, 89, 90, 1, -1, -1, -1, -1, ++ -1, 97, 8, 9, 10, 11, 12, 13, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, 45, 46, 47, 48, 49, 50, +- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, +- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, +- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, +- 81, 82, 83, 84, 85, 86, 87, 88, -1, -1, +- 1, -1, -1, -1, 95, 6, 7, 8, 9, 10, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 48, 49, 50, 51, 52, 53, 54, -1, ++ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, ++ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ++ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, ++ 86, 87, 88, 89, 90, 1, -1, -1, -1, -1, ++ -1, 97, 8, 9, 10, 11, 12, 13, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, 45, 46, 47, 48, 49, 50, +- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, +- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, +- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, +- 81, 82, 83, 84, 85, 86, 87, 88, -1, -1, +- 1, -1, -1, -1, 95, 6, 7, 8, 9, 10, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 48, 49, 50, 51, 52, 53, 54, -1, ++ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, ++ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ++ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, ++ 86, 87, 88, 89, 90, 1, -1, -1, -1, -1, ++ -1, 97, 8, 9, 10, 11, 12, 13, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, 45, 46, 47, 48, 49, 50, +- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, +- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, +- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, +- 81, 82, 83, 84, 85, 86, 87, 88, 1, -1, +- -1, -1, -1, 6, 95, -1, -1, 10, -1, -1, +- -1, -1, -1, -1, -1, -1, 19, -1, -1, 22, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- 33, -1, -1, -1, -1, -1, -1, 40, -1, 42, +- -1, -1, 45, 46, 47, 48, 49, -1, 51, 52, +- 1, 54, 55, 56, 57, 58, -1, 60, 61, 62, +- 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, +- 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, +- 83, 84, 85, 86, 87, 88, -1, -1, -1, -1, +- -1, -1, 95, -1, 45, 46, 47, 48, 49, 50, +- 51, 1, -1, 54, 55, 56, -1, 58, -1, 60, +- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, +- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, +- 81, 82, 83, 84, 85, 86, 87, 88, -1, -1, +- -1, -1, -1, -1, 95, 45, 46, 47, 48, 49, +- -1, 51, 1, -1, 54, 55, 56, -1, 58, -1, +- 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, +- 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, +- 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, +- -1, -1, -1, -1, -1, 95, 45, 46, 47, 48, +- 49, -1, 51, 1, -1, 54, 55, 56, -1, 58, +- -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, +- 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, +- 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, +- -1, -1, -1, -1, -1, -1, 95, 45, 46, 47, +- 48, 49, -1, 51, -1, -1, 54, 55, 56, -1, +- 58, -1, 60, 61, 62, 63, 64, 65, 66, 67, +- 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, +- 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, +- 88, 6, 7, 8, 9, 10, -1, 95, -1, -1, +- -1, -1, -1, -1, -1, 20, -1, 22, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, +- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, +- 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, +- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, +- 85, 86, 87, 88, 6, 7, 8, 9, 10, -1, +- 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, 45, 46, 47, 48, 49, 50, 51, +- 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, ++ -1, -1, 48, 49, 50, 51, 52, 53, 54, -1, ++ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, ++ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ++ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, ++ 86, 87, 88, 89, 90, 1, -1, -1, -1, -1, ++ -1, 97, 8, -1, -1, -1, -1, 13, -1, -1, ++ -1, -1, -1, -1, -1, -1, 22, -1, -1, 25, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ 36, -1, -1, -1, -1, -1, -1, 43, -1, 45, ++ -1, -1, 48, 49, 50, 51, 52, 1, 54, 55, ++ -1, 57, 58, 59, 60, 61, 62, 63, 64, 65, ++ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ++ -1, 77, 78, 79, 80, 81, 82, 83, 84, 85, ++ 86, 87, 88, 89, 90, -1, -1, -1, -1, -1, ++ -1, 97, -1, -1, 48, 49, 50, 51, 52, 53, ++ 54, 1, -1, 57, 58, 59, -1, 61, 62, 63, ++ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, ++ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, ++ 84, 85, 86, 87, 88, 89, 90, -1, -1, -1, ++ -1, -1, -1, 97, -1, 1, -1, -1, 48, 49, ++ 50, 51, 52, -1, 54, -1, -1, 57, 58, 59, ++ -1, 61, 62, 63, 64, 65, 66, 67, 68, 69, ++ 70, 71, 72, 73, 74, 75, -1, 77, 78, 79, ++ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, ++ 90, -1, 48, 49, 50, 51, 52, 97, 54, 1, ++ -1, 57, 58, 59, -1, 61, 62, 63, 64, 65, ++ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, ++ -1, 77, 78, 79, 80, 81, 82, 83, 84, 85, ++ 86, 87, 88, 89, 90, -1, -1, -1, -1, -1, ++ -1, 97, -1, -1, -1, -1, 48, 49, 50, 51, ++ 52, -1, 54, -1, -1, 57, 58, 59, -1, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, +- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, +- 82, 83, 84, 85, 86, 87, 88, 6, 7, 8, +- 9, 10, -1, 95, -1, -1, -1, -1, -1, -1, +- -1, 20, -1, 22, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, 45, 46, 47, 48, +- 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, ++ 72, 73, 74, 75, -1, 77, 78, 79, 80, 81, ++ 82, 83, 84, 85, 86, 87, 88, 89, 90, 8, ++ 9, 10, 11, 12, 13, 97, -1, -1, -1, -1, ++ -1, -1, -1, -1, 23, -1, 25, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, 36, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, 48, ++ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, +- 6, 7, 8, 9, 10, -1, 95, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, 45, +- 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, ++ 89, 90, 8, 9, 10, 11, 12, 13, 97, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, +- 86, 87, 88, 6, 7, 8, 9, 10, -1, 95, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, 45, 46, 47, 48, 49, 50, 51, 52, +- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, ++ 86, 87, 88, 89, 90, 8, 9, 10, 11, 12, ++ 13, 97, -1, -1, -1, -1, -1, -1, -1, -1, ++ 23, -1, 25, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, 36, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, ++ 53, 54, -1, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, +- 83, 84, 85, 86, 87, 88, 6, 7, 8, 9, +- 10, -1, 95, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, 45, 46, 47, 48, 49, +- 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, ++ 83, 84, 85, 86, 87, 88, 89, 90, 8, 9, ++ 10, 11, 12, 13, 97, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, 25, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, 36, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, ++ 50, 51, 52, 53, 54, -1, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, +- 6, 7, 8, 9, 10, 95, -1, -1, -1, 15, ++ 90, 8, 9, 10, 11, 12, 13, 97, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, -1, 45, +- 46, 47, 48, 49, 50, 51, -1, 53, 54, 55, +- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, +- 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, +- 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, +- 86, 87, 88, 6, 7, 8, 9, 10, -1, 95, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, ++ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, ++ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, ++ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, ++ 87, 88, 89, 90, 8, 9, 10, 11, 12, 13, ++ 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, 45, 46, 47, 48, 49, 50, 51, -1, +- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, +- 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, +- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, +- 83, 84, 85, 86, 87, 88, 6, 7, 8, 9, +- 10, -1, 95, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, ++ 54, -1, 56, 57, 58, 59, 60, 61, 62, 63, ++ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, ++ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, ++ 84, 85, 86, 87, 88, 89, 90, 91, -1, -1, ++ -1, -1, -1, 97, 8, 9, 10, 11, 12, 13, ++ -1, -1, -1, -1, 18, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, 45, 46, 47, 48, 49, +- 50, 51, -1, 53, 54, 55, 56, 57, 58, 59, +- 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, +- 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, +- 80, 81, 82, 83, 84, 85, 86, 87, 88, 6, +- 7, 8, 9, 10, -1, 95, -1, -1, -1, -1, ++ -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, ++ 54, -1, 56, 57, 58, 59, 60, 61, 62, 63, ++ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, ++ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, ++ 84, 85, 86, 87, 88, 89, 90, 8, 9, 10, ++ 11, 12, 13, 97, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +- -1, -1, -1, -1, -1, -1, -1, -1, 45, 46, +- 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, +- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, +- 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, +- 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, +- 87, 88, -1, -1, -1, -1, -1, -1, 95, 45, +- 46, 47, 48, 49, 50, 51, -1, -1, 54, 55, +- 56, -1, 58, -1, 60, 61, 62, 63, 64, 65, +- 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, +- 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, +- 86, 87, 88, -1, 45, 46, 47, 48, 49, 95, +- 51, -1, -1, 54, 55, 56, -1, 58, -1, 60, ++ -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, ++ 51, 52, 53, 54, -1, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, +- 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, +- 81, 82, 83, 84, 85, 86, 87, 88, -1, -1, +- -1, -1, -1, -1, 95 ++ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, ++ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, ++ 8, 9, 10, 11, 12, 13, 97, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ 48, 49, 50, 51, 52, 53, 54, -1, 56, 57, ++ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, ++ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, ++ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, ++ 88, 89, 90, 8, 9, 10, 11, 12, 13, 97, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, ++ -1, 56, 57, 58, 59, 60, 61, 62, 63, 64, ++ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ++ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, ++ 85, 86, 87, 88, 89, 90, 8, 9, 10, 11, ++ 12, 13, 97, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, ++ 52, 53, 54, -1, 56, 57, 58, 59, 60, 61, ++ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, ++ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ++ 82, 83, 84, 85, 86, 87, 88, 89, 90, -1, ++ 48, 49, 50, 51, 52, 97, 54, -1, -1, 57, ++ 58, 59, -1, 61, 62, 63, 64, 65, 66, 67, ++ 68, 69, 70, 71, 72, 73, 74, 75, -1, 77, ++ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, ++ 88, 89, 90, -1, -1, -1, -1, -1, -1, 97 + }; + + /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ + static const unsigned short yystos[] = + { +- 0, 35, 70, 83, 134, 135, 138, 147, 154, 159, +- 162, 1, 6, 7, 8, 9, 10, 45, 46, 47, +- 48, 49, 50, 51, 53, 54, 55, 56, 57, 58, +- 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, +- 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, +- 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, +- 95, 412, 413, 415, 416, 417, 420, 412, 0, 50, +- 164, 269, 431, 150, 412, 117, 182, 431, 182, 116, +- 117, 136, 116, 159, 162, 9, 83, 163, 182, 183, +- 184, 412, 116, 116, 164, 52, 270, 271, 412, 431, +- 194, 195, 412, 116, 155, 151, 153, 116, 1, 119, +- 429, 1, 118, 83, 118, 119, 96, 117, 131, 428, +- 139, 57, 160, 163, 83, 157, 170, 171, 164, 412, +- 1, 412, 148, 271, 20, 28, 29, 54, 56, 58, +- 61, 77, 78, 80, 81, 83, 86, 87, 88, 89, +- 90, 91, 92, 93, 97, 98, 117, 121, 123, 124, +- 126, 127, 240, 373, 374, 377, 380, 381, 382, 383, +- 384, 386, 388, 389, 390, 391, 394, 398, 401, 402, +- 418, 419, 420, 373, 419, 6, 7, 8, 10, 22, +- 26, 33, 137, 140, 142, 143, 197, 289, 292, 293, +- 294, 196, 199, 412, 170, 156, 158, 116, 1, 125, +- 430, 194, 194, 412, 117, 393, 117, 117, 359, 360, +- 431, 117, 373, 122, 373, 399, 400, 381, 95, 116, +- 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, +- 127, 128, 129, 130, 131, 132, 387, 117, 119, 25, +- 31, 65, 73, 97, 98, 102, 104, 105, 106, 108, +- 109, 110, 111, 126, 127, 130, 131, 132, 403, 404, +- 405, 406, 12, 16, 27, 47, 68, 69, 112, 113, +- 114, 115, 128, 129, 407, 408, 409, 48, 60, 419, +- 66, 107, 386, 93, 121, 123, 124, 125, 427, 117, +- 118, 119, 377, 381, 118, 12, 16, 25, 27, 31, +- 97, 98, 102, 104, 105, 106, 107, 126, 127, 128, +- 129, 130, 132, 301, 405, 408, 411, 412, 428, 412, +- 412, 198, 199, 412, 1, 89, 205, 206, 208, 412, +- 412, 14, 319, 144, 423, 116, 1, 116, 83, 200, +- 430, 157, 1, 186, 187, 416, 152, 167, 165, 390, +- 117, 362, 363, 373, 240, 390, 395, 117, 395, 119, +- 99, 1, 118, 122, 373, 11, 375, 374, 377, 377, +- 376, 39, 378, 380, 380, 379, 225, 419, 225, 381, +- 381, 381, 1, 373, 396, 397, 412, 119, 392, 1, +- 94, 361, 373, 373, 117, 306, 431, 125, 125, 1, +- 116, 118, 125, 306, 1, 116, 118, 125, 306, 421, +- 430, 40, 42, 52, 145, 296, 299, 431, 199, 199, +- 63, 117, 201, 431, 430, 1, 116, 188, 428, 170, +- 168, 169, 172, 197, 289, 22, 33, 144, 149, 166, +- 197, 288, 293, 119, 373, 1, 118, 119, 120, 361, +- 119, 373, 400, 1, 400, 119, 377, 377, 380, 380, +- 99, 1, 118, 122, 361, 359, 118, 119, 119, 1, +- 22, 33, 52, 83, 100, 119, 183, 307, 308, 309, +- 310, 425, 431, 304, 412, 428, 431, 412, 412, 199, +- 199, 412, 302, 303, 428, 431, 206, 1, 206, 412, +- 12, 15, 21, 23, 24, 29, 31, 37, 42, 43, +- 44, 49, 68, 69, 73, 79, 82, 84, 85, 123, +- 207, 208, 319, 320, 321, 322, 323, 324, 325, 326, +- 327, 330, 332, 334, 342, 345, 348, 352, 354, 357, +- 358, 364, 390, 410, 419, 146, 1, 185, 261, 262, +- 416, 1, 209, 210, 416, 53, 54, 56, 61, 74, +- 75, 76, 269, 290, 297, 300, 117, 1, 203, 204, +- 412, 25, 202, 431, 187, 1, 187, 194, 83, 117, +- 189, 190, 430, 144, 34, 173, 174, 176, 412, 412, +- 9, 161, 116, 119, 363, 1, 363, 373, 429, 373, +- 397, 1, 397, 429, 119, 1, 373, 119, 412, 412, +- 183, 119, 120, 1, 116, 119, 42, 183, 1, 120, +- 305, 321, 432, 412, 306, 306, 306, 305, 412, 306, +- 373, 389, 390, 207, 419, 371, 373, 343, 262, 346, +- 1, 328, 329, 372, 373, 83, 365, 117, 373, 117, +- 390, 120, 116, 422, 324, 322, 11, 353, 118, 429, +- 359, 1, 211, 212, 414, 415, 416, 118, 424, 262, +- 210, 424, 428, 384, 385, 431, 116, 373, 116, 116, +- 116, 141, 299, 116, 203, 1, 118, 119, 101, 193, +- 431, 373, 165, 1, 191, 192, 412, 425, 117, 14, +- 19, 19, 34, 176, 139, 19, 295, 296, 299, 120, +- 306, 306, 120, 311, 13, 32, 40, 223, 225, 240, +- 255, 312, 313, 317, 318, 308, 1, 100, 308, 183, +- 120, 224, 225, 302, 30, 25, 103, 356, 428, 39, +- 421, 421, 1, 17, 118, 120, 117, 373, 362, 322, +- 19, 333, 355, 356, 431, 94, 361, 1, 116, 117, +- 215, 424, 416, 120, 120, 370, 373, 83, 116, 116, +- 142, 291, 119, 204, 1, 204, 412, 19, 1, 118, +- 119, 99, 193, 412, 191, 17, 17, 14, 59, 173, +- 180, 430, 373, 302, 312, 30, 121, 30, 13, 119, +- 311, 312, 305, 335, 373, 373, 331, 320, 371, 329, +- 322, 1, 329, 412, 388, 1, 429, 322, 373, 359, +- 429, 212, 1, 212, 1, 183, 216, 217, 1, 428, +- 428, 218, 220, 423, 218, 116, 298, 74, 53, 319, +- 192, 1, 192, 412, 193, 119, 175, 177, 178, 179, +- 178, 305, 318, 315, 316, 412, 373, 121, 1, 253, +- 254, 339, 340, 370, 350, 1, 18, 34, 351, 322, +- 41, 347, 119, 120, 429, 119, 120, 1, 116, 119, +- 213, 214, 218, 263, 269, 13, 20, 22, 33, 36, +- 38, 51, 67, 93, 117, 123, 124, 221, 222, 223, +- 224, 225, 228, 229, 231, 232, 234, 235, 236, 239, +- 240, 242, 243, 255, 373, 419, 427, 432, 96, 373, +- 373, 385, 116, 322, 322, 320, 55, 1, 116, 122, +- 99, 316, 1, 118, 120, 1, 116, 426, 1, 99, +- 17, 373, 344, 17, 366, 367, 368, 384, 431, 225, +- 217, 1, 217, 218, 46, 256, 431, 71, 96, 103, +- 272, 273, 431, 45, 273, 274, 121, 121, 241, 431, +- 306, 306, 1, 15, 183, 244, 245, 246, 247, 30, +- 222, 224, 233, 234, 240, 412, 1, 54, 56, 58, +- 61, 77, 78, 80, 81, 83, 86, 87, 88, 230, +- 412, 420, 233, 240, 95, 233, 235, 373, 117, 121, +- 226, 99, 52, 276, 277, 116, 116, 116, 116, 116, +- 181, 316, 1, 316, 30, 412, 122, 254, 1, 254, +- 341, 340, 1, 340, 336, 370, 1, 370, 421, 349, +- 371, 322, 119, 120, 118, 117, 273, 62, 1, 276, +- 1, 275, 264, 431, 1, 223, 225, 228, 237, 238, +- 238, 30, 305, 19, 228, 248, 249, 412, 419, 120, +- 19, 1, 116, 426, 219, 220, 119, 1, 118, 119, +- 99, 1, 227, 373, 373, 373, 233, 267, 431, 117, +- 121, 278, 279, 284, 373, 320, 13, 225, 313, 314, +- 120, 30, 421, 11, 64, 337, 338, 322, 17, 422, +- 422, 366, 368, 373, 117, 257, 431, 373, 116, 1, +- 118, 122, 122, 219, 30, 120, 219, 246, 1, 246, +- 247, 412, 1, 412, 373, 1, 118, 119, 122, 116, +- 1, 117, 278, 280, 281, 283, 284, 286, 287, 373, +- 383, 401, 402, 412, 431, 1, 285, 286, 225, 225, +- 322, 19, 421, 422, 421, 119, 120, 119, 1, 225, +- 1, 258, 259, 431, 53, 74, 265, 268, 269, 238, +- 238, 30, 1, 251, 252, 253, 225, 249, 373, 1, +- 373, 268, 280, 119, 1, 116, 118, 282, 282, 120, +- 383, 383, 122, 1, 116, 122, 422, 320, 322, 369, +- 384, 119, 119, 19, 7, 8, 22, 33, 46, 50, +- 72, 83, 183, 260, 269, 385, 373, 219, 1, 116, +- 426, 120, 119, 283, 286, 283, 283, 278, 286, 383, +- 401, 402, 286, 422, 422, 118, 119, 412, 412, 412, +- 412, 373, 120, 116, 83, 252, 252, 250, 338, 117, +- 383, 383, 384, 306, 306, 306, 306, 219, 266, 117, +- 244, 302, 373, 244, 119, 305, 119, 116, 426 ++ 0, 38, 72, 85, 135, 136, 139, 148, 155, 160, ++ 163, 1, 8, 9, 10, 11, 12, 13, 48, 49, ++ 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, ++ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, ++ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, ++ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, ++ 97, 419, 420, 422, 423, 424, 427, 419, 0, 53, ++ 165, 275, 438, 151, 419, 119, 183, 438, 183, 118, ++ 119, 137, 118, 160, 163, 11, 85, 164, 183, 184, ++ 185, 419, 118, 118, 165, 55, 276, 277, 419, 438, ++ 196, 199, 419, 118, 156, 152, 154, 118, 1, 121, ++ 436, 1, 120, 85, 120, 121, 98, 119, 132, 435, ++ 60, 197, 140, 161, 164, 85, 158, 171, 172, 165, ++ 419, 1, 419, 149, 277, 23, 31, 32, 57, 59, ++ 61, 63, 79, 80, 82, 83, 85, 88, 89, 90, ++ 91, 92, 93, 94, 95, 99, 100, 119, 123, 125, ++ 126, 127, 128, 246, 379, 380, 383, 386, 387, 388, ++ 389, 390, 392, 394, 395, 396, 397, 398, 401, 405, ++ 408, 409, 425, 426, 427, 379, 426, 198, 8, 9, ++ 10, 13, 25, 29, 36, 138, 141, 143, 144, 201, ++ 295, 298, 299, 300, 171, 157, 159, 118, 1, 4, ++ 437, 199, 199, 419, 119, 400, 119, 119, 365, 366, ++ 438, 119, 379, 124, 379, 406, 407, 387, 4, 97, ++ 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, ++ 128, 129, 130, 131, 132, 133, 393, 119, 121, 28, ++ 34, 67, 75, 99, 100, 104, 106, 107, 108, 110, ++ 111, 112, 113, 127, 128, 131, 132, 133, 410, 411, ++ 412, 413, 15, 19, 30, 50, 70, 71, 114, 115, ++ 116, 117, 129, 130, 414, 415, 416, 51, 62, 426, ++ 68, 109, 392, 4, 95, 123, 125, 126, 434, 119, ++ 120, 121, 383, 387, 4, 120, 200, 204, 419, 15, ++ 19, 28, 30, 34, 99, 100, 104, 106, 107, 108, ++ 109, 127, 128, 129, 130, 131, 133, 307, 412, 415, ++ 418, 419, 435, 419, 419, 202, 419, 1, 91, 210, ++ 211, 213, 419, 419, 17, 325, 145, 430, 118, 437, ++ 158, 1, 187, 188, 423, 153, 168, 166, 396, 119, ++ 368, 369, 379, 246, 396, 402, 119, 402, 121, 101, ++ 1, 120, 124, 379, 14, 381, 380, 383, 383, 382, ++ 42, 384, 386, 386, 385, 230, 231, 426, 230, 387, ++ 387, 387, 419, 1, 379, 403, 404, 121, 399, 1, ++ 96, 367, 379, 419, 379, 1, 118, 85, 205, 119, ++ 312, 438, 4, 4, 203, 204, 4, 312, 1, 118, ++ 120, 4, 312, 428, 437, 43, 45, 55, 146, 302, ++ 305, 438, 437, 1, 118, 189, 435, 171, 169, 170, ++ 173, 201, 295, 25, 36, 145, 150, 167, 201, 294, ++ 299, 121, 379, 1, 120, 121, 122, 367, 121, 379, ++ 407, 1, 407, 121, 383, 383, 386, 386, 4, 101, ++ 1, 120, 124, 367, 365, 120, 121, 121, 204, 204, ++ 65, 119, 206, 438, 1, 25, 36, 55, 85, 102, ++ 121, 184, 313, 314, 315, 316, 432, 438, 310, 419, ++ 435, 438, 419, 419, 1, 118, 120, 419, 308, 309, ++ 435, 438, 211, 1, 211, 419, 15, 18, 24, 26, ++ 27, 32, 34, 40, 45, 46, 47, 52, 70, 71, ++ 75, 81, 84, 86, 87, 125, 212, 213, 325, 326, ++ 327, 328, 329, 330, 331, 332, 333, 336, 338, 340, ++ 348, 351, 354, 358, 360, 363, 364, 370, 396, 417, ++ 426, 147, 1, 186, 267, 268, 423, 1, 214, 215, ++ 423, 56, 57, 59, 63, 76, 77, 78, 275, 296, ++ 303, 306, 188, 1, 188, 199, 85, 119, 190, 191, ++ 437, 145, 37, 174, 175, 177, 419, 419, 11, 162, ++ 118, 121, 369, 1, 369, 379, 436, 426, 379, 404, ++ 1, 404, 436, 121, 1, 379, 119, 1, 208, 209, ++ 419, 28, 207, 438, 121, 419, 419, 184, 121, 122, ++ 1, 118, 121, 45, 184, 1, 122, 311, 327, 439, ++ 419, 312, 312, 204, 204, 312, 311, 419, 312, 379, ++ 395, 396, 212, 426, 377, 379, 349, 268, 352, 1, ++ 334, 335, 378, 379, 85, 371, 119, 379, 119, 396, ++ 122, 118, 429, 330, 328, 14, 359, 120, 436, 365, ++ 1, 216, 217, 421, 422, 423, 120, 431, 268, 215, ++ 431, 435, 390, 391, 438, 118, 379, 118, 118, 118, ++ 197, 305, 118, 166, 1, 192, 193, 194, 419, 432, ++ 119, 17, 22, 22, 37, 177, 197, 22, 301, 302, ++ 305, 122, 208, 1, 120, 121, 103, 195, 438, 379, ++ 312, 312, 122, 317, 16, 35, 43, 228, 230, 246, ++ 261, 318, 319, 323, 324, 314, 1, 102, 314, 184, ++ 122, 229, 230, 308, 33, 28, 105, 362, 435, 42, ++ 428, 428, 1, 20, 120, 122, 119, 379, 368, 328, ++ 22, 339, 361, 362, 438, 96, 367, 1, 118, 119, ++ 220, 431, 423, 122, 122, 376, 379, 85, 118, 118, ++ 142, 22, 1, 120, 121, 101, 195, 4, 194, 192, ++ 20, 20, 140, 437, 379, 121, 209, 1, 209, 419, ++ 308, 318, 33, 123, 33, 16, 121, 317, 318, 311, ++ 341, 379, 379, 337, 326, 377, 335, 328, 1, 335, ++ 419, 394, 1, 436, 328, 379, 365, 436, 217, 1, ++ 217, 1, 184, 221, 222, 1, 435, 435, 223, 225, ++ 430, 223, 118, 304, 76, 56, 143, 297, 193, 1, ++ 193, 194, 419, 195, 121, 176, 178, 12, 17, 174, ++ 181, 311, 324, 321, 322, 419, 379, 123, 1, 259, ++ 260, 345, 346, 376, 356, 1, 21, 37, 357, 328, ++ 44, 353, 121, 122, 436, 121, 122, 1, 118, 121, ++ 218, 219, 223, 269, 275, 16, 23, 25, 36, 39, ++ 41, 54, 69, 95, 119, 125, 126, 226, 227, 228, ++ 229, 230, 234, 235, 237, 238, 240, 241, 242, 245, ++ 246, 248, 249, 261, 379, 426, 434, 439, 98, 379, ++ 379, 391, 325, 328, 328, 179, 180, 179, 1, 118, ++ 124, 101, 322, 1, 120, 122, 1, 118, 433, 1, ++ 101, 20, 379, 350, 20, 372, 373, 374, 390, 438, ++ 230, 222, 1, 222, 223, 49, 262, 438, 73, 98, ++ 105, 278, 279, 438, 48, 279, 280, 123, 123, 247, ++ 438, 312, 312, 1, 18, 184, 250, 251, 252, 253, ++ 33, 227, 229, 239, 240, 246, 419, 1, 57, 59, ++ 61, 63, 79, 80, 82, 83, 85, 88, 89, 90, ++ 236, 419, 427, 239, 246, 97, 239, 241, 379, 119, ++ 123, 232, 101, 4, 55, 282, 283, 118, 118, 118, ++ 118, 118, 118, 58, 326, 322, 1, 322, 33, 419, ++ 124, 260, 1, 260, 347, 346, 1, 346, 342, 376, ++ 1, 376, 428, 355, 377, 328, 121, 122, 120, 119, ++ 279, 64, 1, 282, 1, 281, 270, 438, 1, 228, ++ 230, 234, 243, 244, 244, 33, 311, 22, 234, 254, ++ 255, 419, 426, 122, 22, 1, 118, 433, 224, 225, ++ 121, 1, 120, 121, 101, 1, 233, 379, 379, 379, ++ 239, 273, 438, 119, 123, 284, 285, 290, 379, 182, ++ 16, 230, 319, 320, 122, 33, 428, 14, 66, 343, ++ 344, 328, 20, 429, 429, 372, 374, 379, 119, 263, ++ 438, 379, 118, 1, 120, 124, 124, 224, 33, 122, ++ 224, 252, 1, 252, 253, 419, 1, 419, 379, 1, ++ 120, 121, 124, 118, 1, 119, 284, 286, 287, 289, ++ 290, 292, 293, 379, 389, 408, 409, 419, 438, 1, ++ 291, 292, 326, 230, 230, 328, 22, 428, 429, 428, ++ 121, 122, 121, 1, 230, 1, 264, 265, 438, 56, ++ 76, 271, 274, 275, 244, 244, 33, 1, 257, 258, ++ 259, 230, 255, 379, 1, 379, 274, 286, 121, 1, ++ 118, 120, 288, 288, 122, 389, 389, 124, 1, 118, ++ 124, 429, 326, 328, 375, 390, 121, 121, 22, 9, ++ 10, 25, 36, 49, 53, 74, 85, 184, 266, 275, ++ 391, 379, 224, 1, 118, 433, 122, 121, 289, 292, ++ 289, 289, 284, 292, 389, 408, 409, 292, 429, 429, ++ 120, 121, 419, 419, 419, 419, 379, 122, 118, 85, ++ 258, 258, 256, 344, 119, 389, 389, 390, 312, 312, ++ 312, 312, 224, 272, 119, 250, 308, 379, 250, 121, ++ 311, 121, 118, 433 + }; + + +@@ -4645,12 +4811,12 @@ + switch (yyn) + { + case 2: +-#line 236 "parse.y" ++#line 253 "parse.y" + { error ("empty input file"); ;} + break; + + case 3: +-#line 238 "parse.y" ++#line 255 "parse.y" + { + if (co->ignore_garbage_after_dot) + { +@@ -4661,146 +4827,146 @@ + break; + + case 4: +-#line 249 "parse.y" +- { initialize_module (TREE_PURPOSE (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype), build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype ? TREE_PURPOSE (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype) : NULL_TREE, TREE_VALUE (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype)), 0); ;} ++#line 266 "parse.y" ++ { initialize_module (TREE_PURPOSE (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype), build_tree_list (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype ? TREE_PURPOSE (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype) : NULL_TREE, TREE_VALUE (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype)), 0); ;} + break; + + case 5: +-#line 251 "parse.y" ++#line 268 "parse.y" + { start_main_program (); ;} + break; + + case 6: +-#line 253 "parse.y" ++#line 270 "parse.y" + { finish_main_program (); ;} + break; + + case 7: +-#line 255 "parse.y" ++#line 272 "parse.y" + { finalize_module (0); ;} + break; + + case 8: +-#line 260 "parse.y" ++#line 277 "parse.y" + { (*yyvalp).ttype = build_tree_list (NULL_TREE, NULL_TREE); ;} + break; + + case 9: +-#line 262 "parse.y" +- { (*yyvalp).ttype = build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++#line 279 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} + break; + + case 10: +-#line 264 "parse.y" +- { (*yyvalp).ttype = build_tree_list (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++#line 281 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (NULL_TREE, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} + break; + + case 11: +-#line 269 "parse.y" ++#line 286 "parse.y" + { (*yyvalp).itype = 2 * od_none; ;} + break; + + case 12: +-#line 271 "parse.y" +- { (*yyvalp).itype = check_decl_order (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.itype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.itype); ;} ++#line 288 "parse.y" ++ { (*yyvalp).itype = check_decl_order (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.itype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.itype); ;} + break; + + case 15: +-#line 281 "parse.y" ++#line 298 "parse.y" + { (*yyvalp).itype = 2 * od_none; ;} + break; + + case 16: +-#line 283 "parse.y" +- { (*yyvalp).itype = check_decl_order (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.itype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.itype); ;} ++#line 300 "parse.y" ++ { (*yyvalp).itype = check_decl_order (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.itype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.itype); ;} + break; + + case 17: +-#line 287 "parse.y" ++#line 304 "parse.y" + { check_forward_decls (0); ;} + break; + + case 18: +-#line 289 "parse.y" +- { (*yyvalp).itype = ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.itype; ;} ++#line 306 "parse.y" ++ { (*yyvalp).itype = yyvsp[YYFILL (0)].yystate.yysemantics.yysval.itype; ;} + break; + + case 19: +-#line 291 "parse.y" ++#line 308 "parse.y" + { (*yyvalp).itype = od_label; ;} + break; + + case 20: +-#line 293 "parse.y" ++#line 310 "parse.y" + { (*yyvalp).itype = od_routine; ;} + break; + + case 21: +-#line 298 "parse.y" ++#line 315 "parse.y" + { + #ifndef EGCS97 + pop_obstacks (); + #endif +- (*yyvalp).itype = ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.itype; ++ (*yyvalp).itype = yyvsp[YYFILL (0)].yystate.yysemantics.yysval.itype; + ;} + break; + + case 22: +-#line 308 "parse.y" ++#line 325 "parse.y" + { (*yyvalp).itype = od_const; ;} + break; + + case 23: +-#line 310 "parse.y" ++#line 327 "parse.y" + { current_type_list = build_tree_list (NULL_TREE, NULL_TREE); ;} + break; + + case 24: +-#line 312 "parse.y" ++#line 329 "parse.y" + { declare_types (); (*yyvalp).itype = od_type; ;} + break; + + case 25: +-#line 314 "parse.y" ++#line 331 "parse.y" + { (*yyvalp).itype = od_var; ;} + break; + + case 26: +-#line 319 "parse.y" +- { ASSERT_ID (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yyloc, p_interface); initialize_module (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, 1); ;} ++#line 336 "parse.y" ++ { ASSERT_ID (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yyloc, p_interface); initialize_module (yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, 1); ;} + break; + + case 27: +-#line 321 "parse.y" ++#line 338 "parse.y" + { start_unit_implementation (); ;} + break; + + case 28: +-#line 323 "parse.y" ++#line 340 "parse.y" + { check_forward_decls (1); ;} + break; + + case 31: +-#line 327 "parse.y" ++#line 344 "parse.y" + { (*yyvalp).ttype = current_module->name; finalize_module (1); ;} + break; + + case 32: +-#line 329 "parse.y" ++#line 346 "parse.y" + { +- if (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype && current_module->name != ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype) ++ if (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype && current_module->name != yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype) + error ("implementation of module `%s' after interface of module `%s'", +- IDENTIFIER_NAME (current_module->name), IDENTIFIER_NAME (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype)); ++ IDENTIFIER_NAME (current_module->name), IDENTIFIER_NAME (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype)); + ;} + break; + + case 33: +-#line 335 "parse.y" +- { initialize_module (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, 2); ;} ++#line 352 "parse.y" ++ { initialize_module (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, 2); ;} + break; + + case 34: +-#line 337 "parse.y" ++#line 354 "parse.y" + { + if (co->interface_only) + exit_compilation (); +@@ -4808,442 +4974,453 @@ + break; + + case 36: +-#line 343 "parse.y" +- { initialize_module (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, 4); ;} ++#line 360 "parse.y" ++ { initialize_module (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, 4); ;} + break; + + case 38: +-#line 349 "parse.y" +- { ASSERT_ID (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yyloc, p_interface); ;} ++#line 366 "parse.y" ++ { ASSERT_ID (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yyloc, p_interface); ;} + break; + + case 39: +-#line 351 "parse.y" +- { initialize_module (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, 2); ;} ++#line 368 "parse.y" ++ { initialize_module (yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, 2); ;} + break; + + case 40: +-#line 353 "parse.y" ++#line 370 "parse.y" + { clear_forward_decls (); /* don't complain in poplevel */ ;} + break; + + case 41: +-#line 358 "parse.y" +- { ASSERT_ID (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yyloc, p_export); start_module_interface (); ;} ++#line 375 "parse.y" ++ { ASSERT_ID (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yyloc, p_export); start_module_interface (); ;} + break; + + case 42: +-#line 360 "parse.y" ++#line 377 "parse.y" + { create_gpi_files (); ;} + break; + + case 43: +-#line 365 "parse.y" +- { initialize_module (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, NULL_TREE, 3); ;} ++#line 382 "parse.y" ++ { initialize_module (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, NULL_TREE, 3); ;} + break; + + case 45: +-#line 370 "parse.y" ++#line 387 "parse.y" + { chk_dialect ("units without `implementation' part are", U_M_PASCAL); ;} + break; + + case 46: +-#line 371 "parse.y" ++#line 388 "parse.y" + { ;} + break; + + case 47: +-#line 376 "parse.y" +- { ASSERT_ID (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yyloc, p_module); ;} ++#line 393 "parse.y" ++ { ASSERT_ID (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yyloc, p_module); ;} + break; + + case 48: +-#line 381 "parse.y" +- { (*yyvalp).ttype = build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype ? TREE_PURPOSE (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype) : NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype); ;} ++#line 398 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype ? TREE_PURPOSE (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype) : NULL_TREE, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype); ;} + break; + + case 51: +-#line 391 "parse.y" ++#line 408 "parse.y" + { (*yyvalp).itype = 2 * od_none; ;} + break; + + case 52: +-#line 393 "parse.y" +- { (*yyvalp).itype = check_decl_order (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.itype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.itype); ;} ++#line 410 "parse.y" ++ { (*yyvalp).itype = check_decl_order (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.itype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.itype); ;} + break; + + case 55: +-#line 400 "parse.y" ++#line 417 "parse.y" + { (*yyvalp).itype = od_routine; ;} + break; + + case 56: +-#line 405 "parse.y" ++#line 422 "parse.y" + { (*yyvalp).itype = 2 * od_none; ;} + break; + + case 57: +-#line 407 "parse.y" +- { (*yyvalp).itype = check_decl_order (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.itype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.itype); ;} ++#line 424 "parse.y" ++ { (*yyvalp).itype = check_decl_order (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.itype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.itype); ;} + break; + + case 59: +-#line 412 "parse.y" ++#line 429 "parse.y" + { check_forward_decls (0); ;} + break; + + case 60: +-#line 414 "parse.y" +- { (*yyvalp).itype = ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.itype; ;} ++#line 431 "parse.y" ++ { (*yyvalp).itype = yyvsp[YYFILL (0)].yystate.yysemantics.yysval.itype; ;} + break; + + case 61: +-#line 416 "parse.y" ++#line 433 "parse.y" + { (*yyvalp).itype = od_routine; ;} + break; + + case 62: +-#line 420 "parse.y" ++#line 437 "parse.y" + { current_module->implementation = 1; ;} + break; + + case 63: +-#line 422 "parse.y" ++#line 439 "parse.y" + { check_forward_decls (1); ;} + break; + + case 69: +-#line 435 "parse.y" ++#line 452 "parse.y" + { chk_dialect_name ("to begin do", E_O_PASCAL); start_constructor (0); ;} + break; + + case 70: +-#line 437 "parse.y" ++#line 454 "parse.y" + { finish_constructor (); ;} + break; + + case 71: +-#line 442 "parse.y" ++#line 459 "parse.y" + { chk_dialect_name ("to end do", E_O_PASCAL); start_destructor (); ;} + break; + + case 72: +-#line 444 "parse.y" ++#line 461 "parse.y" + { finish_destructor (); ;} + break; + + case 73: +-#line 448 "parse.y" ++#line 465 "parse.y" + { start_constructor (0); ;} + break; + + case 74: +-#line 450 "parse.y" ++#line 467 "parse.y" + { finish_constructor (); ;} + break; + + case 76: +-#line 455 "parse.y" ++#line 472 "parse.y" + { ;} + break; + + case 77: +-#line 457 "parse.y" ++#line 474 "parse.y" + { start_destructor (); ;} + break; + + case 78: +-#line 459 "parse.y" ++#line 476 "parse.y" + { finish_destructor (); ;} + break; + + case 81: +-#line 466 "parse.y" +- { (*yyvalp).ttype = ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype; ;} ++#line 483 "parse.y" ++ { (*yyvalp).ttype = yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype; ;} + break; + + case 82: +-#line 471 "parse.y" +- { (*yyvalp).ttype = nreverse (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++#line 488 "parse.y" ++ { (*yyvalp).ttype = nreverse (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + + case 83: +-#line 476 "parse.y" +- { (*yyvalp).ttype = build_tree_list (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++#line 493 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (NULL_TREE, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + + case 84: +-#line 478 "parse.y" +- { (*yyvalp).ttype = tree_cons (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype); ;} ++#line 495 "parse.y" ++ { (*yyvalp).ttype = tree_cons (NULL_TREE, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype); ;} + break; + + case 85: +-#line 480 "parse.y" ++#line 497 "parse.y" + { +- (*yyvalp).ttype = tree_cons (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype); +- error ("comma missing after `%s'", IDENTIFIER_NAME (TREE_VALUE (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype))); ++ (*yyvalp).ttype = tree_cons (NULL_TREE, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype); ++ error ("comma missing after `%s'", IDENTIFIER_NAME (TREE_VALUE (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype))); + yyerrok; + ;} + break; + + case 86: +-#line 486 "parse.y" ++#line 503 "parse.y" + { error ("extra comma following identifier list"); ;} + break; + + case 88: +-#line 492 "parse.y" +- { (*yyvalp).ttype = build_tree_list (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++#line 509 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (NULL_TREE, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + + case 89: +-#line 494 "parse.y" +- { (*yyvalp).ttype = tree_cons (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype); ;} ++#line 511 "parse.y" ++ { (*yyvalp).ttype = tree_cons (NULL_TREE, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype); ;} + break; + + case 91: +-#line 500 "parse.y" ++#line 517 "parse.y" + { yyerrok; ;} + break; + + case 92: +-#line 502 "parse.y" ++#line 519 "parse.y" + { error ("module specifications need an export part"); ;} + break; + + case 93: +-#line 504 "parse.y" ++#line 521 "parse.y" + { warning ("missing semicolon"); yyerrok; ;} + break; + + case 94: +-#line 506 "parse.y" ++#line 523 "parse.y" + { error ("extra semicolon"); ;} + break; + + case 95: +-#line 511 "parse.y" +- { export_interface (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++#line 528 "parse.y" ++ { export_interface (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + + case 96: +-#line 516 "parse.y" ++#line 533 "parse.y" + { error ("missing `='"); ;} + break; + + case 98: +-#line 522 "parse.y" +- { (*yyvalp).ttype = ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype; ;} ++#line 539 "parse.y" ++ { (*yyvalp).ttype = yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype; ;} + break; + + case 100: +-#line 525 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++#line 542 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} + break; + + case 101: +-#line 530 "parse.y" +- { ASSERT_ID (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yyloc, p_all); (*yyvalp).ttype = build_tree_list (NULL_TREE, NULL_TREE); ;} ++#line 547 "parse.y" ++ { ASSERT_ID (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yyloc, p_all); (*yyvalp).ttype = build_tree_list (NULL_TREE, NULL_TREE); ;} + break; + + case 103: +-#line 536 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++#line 553 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + + case 104: +-#line 538 "parse.y" ++#line 555 "parse.y" + { (*yyvalp).ttype = NULL_TREE; ;} + break; + + case 105: +-#line 540 "parse.y" ++#line 557 "parse.y" + { (*yyvalp).ttype = NULL_TREE; ;} + break; + + case 106: +-#line 542 "parse.y" ++#line 559 "parse.y" + { (*yyvalp).ttype = NULL_TREE; ;} + break; + + case 107: +-#line 547 "parse.y" +- { (*yyvalp).ttype = build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++#line 564 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} + break; + + case 108: +-#line 549 "parse.y" +- { (*yyvalp).ttype = build_tree_list (NULL_TREE, build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype)); ;} ++#line 566 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (NULL_TREE, build_tree_list (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype)); ;} + break; + + case 109: +-#line 551 "parse.y" +- { (*yyvalp).ttype = build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); TREE_READONLY ((*yyvalp).ttype) = 1; ;} ++#line 568 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); TREE_READONLY ((*yyvalp).ttype) = 1; ;} + break; + + case 111: +-#line 557 "parse.y" +- { (*yyvalp).ttype = ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype; ;} +- break; +- +- case 112: +-#line 562 "parse.y" +- { do_extra_import (); ;} ++#line 574 "parse.y" ++ { (*yyvalp).ttype = build_qualified_id (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype,yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype);;} + break; + + case 113: +-#line 563 "parse.y" +- { do_extra_import (); ;} ++#line 580 "parse.y" ++ { (*yyvalp).ttype = yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype; ;} + break; + +- case 117: +-#line 571 "parse.y" +- { warning ("missing semicolon"); yyerrok; ;} ++ case 114: ++#line 586 "parse.y" ++ { do_extra_import (); ;} + break; + +- case 118: +-#line 576 "parse.y" +- { (*yyvalp).itype = od_uses; ;} ++ case 116: ++#line 592 "parse.y" ++ { in_uses = 0 ;} + break; + + case 121: +-#line 583 "parse.y" +- { warning ("missing comma"); yyerrok; ;} ++#line 603 "parse.y" ++ { warning ("missing semicolon"); yyerrok; ;} + break; + + case 122: +-#line 588 "parse.y" +- { import_interface (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.itype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++#line 607 "parse.y" ++ { in_uses = 1 ;} + break; + + case 123: +-#line 593 "parse.y" +- { (*yyvalp).itype = 0; ;} +- break; +- +- case 124: +-#line 595 "parse.y" +- { ASSERT_ID (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yyloc, p_qualified); (*yyvalp).itype = 1; ;} ++#line 608 "parse.y" ++ { (*yyvalp).itype = od_uses; ;} + break; + + case 126: +-#line 601 "parse.y" +- { (*yyvalp).ttype = build_tree_list (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++#line 615 "parse.y" ++ { warning ("missing comma"); yyerrok; ;} + break; + + case 127: +-#line 603 "parse.y" +- { (*yyvalp).ttype = build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++#line 620 "parse.y" ++ { import_interface (yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.itype == 1) ? IMPORT_QUALIFIED : ++ (in_uses ? IMPORT_USES : IMPORT_ISO), yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ break; ++ ++ case 128: ++#line 626 "parse.y" ++ { (*yyvalp).itype = 0; ;} + break; + + case 129: +-#line 609 "parse.y" +- { (*yyvalp).ttype = ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype; chk_dialect ("file name specification with `in' is", BORLAND_DELPHI); ;} ++#line 628 "parse.y" ++ { ASSERT_ID (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yyloc, p_qualified); (*yyvalp).itype = 1; ;} + break; + + case 131: +-#line 615 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++#line 634 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (NULL_TREE, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} + break; + + case 132: +-#line 617 "parse.y" ++#line 636 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++ break; ++ ++ case 134: ++#line 642 "parse.y" ++ { (*yyvalp).ttype = yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype; chk_dialect ("file name specification with `in' is", BORLAND_DELPHI); ;} ++ break; ++ ++ case 136: ++#line 648 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ break; ++ ++ case 137: ++#line 650 "parse.y" + { (*yyvalp).ttype = NULL_TREE; ;} + break; + +- case 133: +-#line 619 "parse.y" +- { error ("missing comma"); (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 138: ++#line 652 "parse.y" ++ { error ("missing comma"); (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 134: +-#line 621 "parse.y" ++ case 139: ++#line 654 "parse.y" + { (*yyvalp).ttype = NULL_TREE; ;} + break; + +- case 135: +-#line 626 "parse.y" +- { (*yyvalp).ttype = build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 140: ++#line 659 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 136: +-#line 633 "parse.y" +- { declare_label (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 141: ++#line 666 "parse.y" ++ { declare_label (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 137: +-#line 635 "parse.y" +- { declare_label (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 142: ++#line 668 "parse.y" ++ { declare_label (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 138: +-#line 637 "parse.y" ++ case 143: ++#line 670 "parse.y" + { error ("non-label in label_list"); ;} + break; + +- case 139: +-#line 639 "parse.y" +- { declare_label (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); error ("missing comma"); yyerrok; ;} ++ case 144: ++#line 672 "parse.y" ++ { declare_label (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); error ("missing comma"); yyerrok; ;} + break; + +- case 140: +-#line 641 "parse.y" ++ case 145: ++#line 674 "parse.y" + { error ("extra comma"); ;} + break; + +- case 143: +-#line 648 "parse.y" ++ case 148: ++#line 681 "parse.y" + { chk_dialect ("non-numeric labels are", B_D_M_PASCAL); ;} + break; + +- case 146: +-#line 660 "parse.y" +- { (*yyvalp).ttype = numeric_label (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 151: ++#line 693 "parse.y" ++ { (*yyvalp).ttype = numeric_label (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 150: +-#line 673 "parse.y" +- { declare_constant (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++ case 155: ++#line 706 "parse.y" ++ { declare_constant (yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 151: +-#line 676 "parse.y" ++ case 156: ++#line 709 "parse.y" + { + lex_const_equal = -1; +- declare_variables (build_tree_list (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-7)].yystate.yysemantics.yysval.ttype), ((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, VQ_BP_CONST, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ++ declare_variables (build_tree_list (NULL_TREE, yyvsp[YYFILL (-7)].yystate.yysemantics.yysval.ttype), yyvsp[YYFILL (-4)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, VQ_BP_CONST, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); + ;} + break; + +- case 153: +-#line 687 "parse.y" ++ case 158: ++#line 720 "parse.y" + { yyerrok; ;} + break; + +- case 155: +-#line 690 "parse.y" ++ case 160: ++#line 723 "parse.y" + { error ("missing semicolon"); yyerrok; ;} + break; + +- case 156: +-#line 692 "parse.y" ++ case 161: ++#line 725 "parse.y" + { error ("extra semicolon"); ;} + break; + +- case 158: +-#line 698 "parse.y" ++ case 163: ++#line 731 "parse.y" + { + lex_const_equal = -1; +- if (!EM (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype)) ++ if (!EM (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype)) + { +- if (PASCAL_TYPE_UNDISCRIMINATED_SCHEMA (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype)) ++ if (PASCAL_TYPE_UNDISCRIMINATED_SCHEMA (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype)) + chk_dialect ("undiscriminated schemata on the right side of a type definition are", GNU_PASCAL); +- build_type_decl (((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ++ build_type_decl (yyvsp[YYFILL (-4)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); + } + ;} + break; + +- case 159: +-#line 708 "parse.y" ++ case 164: ++#line 741 "parse.y" + { + (*yyvalp).itype = immediate_size_expand; + immediate_size_expand = 0; +@@ -5251,100 +5428,100 @@ + ;} + break; + +- case 160: +-#line 714 "parse.y" ++ case 165: ++#line 747 "parse.y" + { +- build_type_decl (((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.ttype, build_schema_type (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.ttype), ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); +- immediate_size_expand = ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.itype; ++ build_type_decl (yyvsp[YYFILL (-5)].yystate.yysemantics.yysval.ttype, build_schema_type (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-4)].yystate.yysemantics.yysval.ttype), yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ++ immediate_size_expand = yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.itype; + size_volatile--; + ;} + break; + +- case 161: +-#line 720 "parse.y" +- { build_schema_type (error_mark_node, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++ case 166: ++#line 753 "parse.y" ++ { build_schema_type (error_mark_node, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 162: +-#line 722 "parse.y" +- { (*yyvalp).ttype = start_object_type (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype); ;} ++ case 167: ++#line 755 "parse.y" ++ { (*yyvalp).ttype = start_object_type (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 163: +-#line 724 "parse.y" ++ case 168: ++#line 757 "parse.y" + { + lex_const_equal = -1; +- finish_object_type (((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.ttype != NULL_TREE); ++ finish_object_type (yyvsp[YYFILL (-5)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-4)].yystate.yysemantics.yysval.ttype != NULL_TREE); + yyerrok; + ;} + break; + +- case 164: +-#line 733 "parse.y" +- { (*yyvalp).ttype = ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype; ;} ++ case 169: ++#line 766 "parse.y" ++ { (*yyvalp).ttype = yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype; ;} + break; + +- case 165: +-#line 735 "parse.y" ++ case 170: ++#line 768 "parse.y" + { error ("invalid schema discriminants"); (*yyvalp).ttype = NULL_TREE; ;} + break; + +- case 167: +-#line 741 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 172: ++#line 774 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 168: +-#line 743 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); error ("missing semicolon"); yyerrok; ;} ++ case 173: ++#line 776 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); error ("missing semicolon"); yyerrok; ;} + break; + +- case 169: +-#line 745 "parse.y" ++ case 174: ++#line 778 "parse.y" + { error ("extra semicolon"); ;} + break; + +- case 171: +-#line 751 "parse.y" +- { (*yyvalp).ttype = build_discriminants (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 176: ++#line 784 "parse.y" ++ { (*yyvalp).ttype = build_discriminants (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 173: +-#line 757 "parse.y" +- { type_attributes (&(*yyvalp).ttype, TREE_PURPOSE (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype)); ;} ++ case 178: ++#line 790 "parse.y" ++ { type_attributes (&(*yyvalp).ttype, TREE_PURPOSE (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype)); ;} + break; + +- case 174: +-#line 762 "parse.y" ++ case 179: ++#line 795 "parse.y" + { +- if (!EM (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype) && TYPE_GET_INITIALIZER (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype)) ++ if (!EM (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype) && TYPE_GET_INITIALIZER (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype)) + warning ("initial value of type ignored here"); + ;} + break; + +- case 175: +-#line 772 "parse.y" ++ case 180: ++#line 805 "parse.y" + { + #ifndef EGCS97 + pop_obstacks (); + #endif +- (*yyvalp).ttype = ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype; ++ (*yyvalp).ttype = yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype; + ;} + break; + +- case 177: +-#line 783 "parse.y" ++ case 182: ++#line 816 "parse.y" + { +- if (!PASCAL_TYPE_FILE (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype)) ++ if (!PASCAL_TYPE_FILE (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype)) + warning ("GPC supports `bindable' only for files"); +- (*yyvalp).ttype = pascal_type_variant (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, TYPE_QUALIFIER_BINDABLE); ++ (*yyvalp).ttype = pascal_type_variant (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, TYPE_QUALIFIER_BINDABLE); + ;} + break; + +- case 179: +-#line 793 "parse.y" ++ case 184: ++#line 826 "parse.y" + { +- (*yyvalp).ttype = pascal_type_variant (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, TYPE_QUALIFIER_RESTRICTED | (TYPE_PACKED (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype) ? TYPE_QUALIFIER_PACKED : 0)); ++ (*yyvalp).ttype = pascal_type_variant (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, TYPE_QUALIFIER_RESTRICTED | (TYPE_PACKED (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype) ? TYPE_QUALIFIER_PACKED : 0)); + /* Special case for `restricted Void' (fjf369*.pas) */ + if (TREE_CODE ((*yyvalp).ttype) == VOID_TYPE) + { +@@ -5354,28 +5531,28 @@ + ;} + break; + +- case 180: +-#line 803 "parse.y" +- { (*yyvalp).ttype = build_discriminated_type (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 185: ++#line 836 "parse.y" ++ { (*yyvalp).ttype = build_discriminated_type (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 184: +-#line 808 "parse.y" ++ case 189: ++#line 841 "parse.y" + { chk_dialect ("procedural variables and types are", B_D_M_PASCAL); ;} + break; + +- case 186: +-#line 811 "parse.y" +- { defining_packed_type -= ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.itype; (*yyvalp).ttype = ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.itype ? pack_type (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype) : ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype; ;} ++ case 191: ++#line 844 "parse.y" ++ { defining_packed_type -= yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.itype; (*yyvalp).ttype = yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.itype ? pack_type (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype) : yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype; ;} + break; + +- case 187: +-#line 816 "parse.y" ++ case 192: ++#line 849 "parse.y" + { defining_packed_type += (*yyvalp).itype = !co->ignore_packed; /* can be nested */ ;} + break; + +- case 188: +-#line 821 "parse.y" ++ case 193: ++#line 854 "parse.y" + { + if (PASCAL_TYPE_UNDISCRIMINATED_STRING ((*yyvalp).ttype)) + { +@@ -5386,145 +5563,150 @@ + ;} + break; + +- case 189: +-#line 833 "parse.y" ++ case 194: ++#line 866 "parse.y" + { +- tree decl = lookup_name (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ++ tree decl = lookup_name (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); + (*yyvalp).ttype = error_mark_node; + if (!decl) +- error ("unknown identifier `%s'", IDENTIFIER_NAME (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype)); ++ error ("unknown identifier `%s'", IDENTIFIER_NAME (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype)); + else if (TREE_CODE (decl) != TYPE_DECL) +- error ("type name expected, `%s' given", IDENTIFIER_NAME (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype)); ++ error ("type name expected, `%s' given", IDENTIFIER_NAME (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype)); + else + (*yyvalp).ttype = TREE_TYPE (decl); + ;} + break; + +- case 190: +-#line 847 "parse.y" +- { chk_dialect ("schema/string discriminants are", E_O_PASCAL); (*yyvalp).ttype = ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype; ;} ++ case 196: ++#line 881 "parse.y" ++ { (*yyvalp).ttype = build_qualified_id (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype,yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype);;} + break; + +- case 191: +-#line 849 "parse.y" ++ case 197: ++#line 886 "parse.y" ++ { chk_dialect ("schema/string discriminants are", E_O_PASCAL); (*yyvalp).ttype = yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype; ;} ++ break; ++ ++ case 198: ++#line 888 "parse.y" + { + chk_dialect ("string capacity in brackets is", U_B_D_M_PASCAL); +- (*yyvalp).ttype = build_tree_list (NULL_TREE, maybe_schema_discriminant (string_may_be_char (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, 0))); ++ (*yyvalp).ttype = build_tree_list (NULL_TREE, maybe_schema_discriminant (string_may_be_char (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, 0))); + ;} + break; + +- case 192: +-#line 857 "parse.y" ++ case 199: ++#line 896 "parse.y" + { + /* This expression might be a discriminant of another schema. */ +- (*yyvalp).ttype = build_tree_list (NULL_TREE, maybe_schema_discriminant (string_may_be_char (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0))); ++ (*yyvalp).ttype = build_tree_list (NULL_TREE, maybe_schema_discriminant (string_may_be_char (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0))); + ;} + break; + +- case 193: +-#line 862 "parse.y" ++ case 200: ++#line 901 "parse.y" + { +- (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, build_tree_list (NULL_TREE, maybe_schema_discriminant (string_may_be_char (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0)))); ++ (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, build_tree_list (NULL_TREE, maybe_schema_discriminant (string_may_be_char (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0)))); + yyerrok; + ;} + break; + +- case 194: +-#line 867 "parse.y" ++ case 201: ++#line 906 "parse.y" + { error ("missing expression"); (*yyvalp).ttype = NULL_TREE; ;} + break; + +- case 195: +-#line 869 "parse.y" ++ case 202: ++#line 908 "parse.y" + { + error ("missing comma"); +- (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, build_tree_list (NULL_TREE, maybe_schema_discriminant (string_may_be_char (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0)))); ++ (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, build_tree_list (NULL_TREE, maybe_schema_discriminant (string_may_be_char (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0)))); + yyerrok; + ;} + break; + +- case 196: +-#line 875 "parse.y" ++ case 203: ++#line 914 "parse.y" + { error ("extra comma"); ;} + break; + +- case 199: +-#line 888 "parse.y" +- { (*yyvalp).ttype = build_enum_type (nreverse (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype)); ;} ++ case 206: ++#line 927 "parse.y" ++ { (*yyvalp).ttype = build_enum_type (nreverse (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype)); ;} + break; + +- case 200: +-#line 890 "parse.y" ++ case 207: ++#line 929 "parse.y" + { (*yyvalp).ttype = error_mark_node; ;} + break; + +- case 201: +-#line 895 "parse.y" +- { (*yyvalp).ttype = build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE); ;} ++ case 208: ++#line 934 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE); ;} + break; + +- case 202: +-#line 897 "parse.y" +- { (*yyvalp).ttype = tree_cons (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype); yyerrok; ;} ++ case 209: ++#line 936 "parse.y" ++ { (*yyvalp).ttype = tree_cons (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype); yyerrok; ;} + break; + +- case 203: +-#line 899 "parse.y" +- { (*yyvalp).ttype = tree_cons (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype); error ("missing comma"); yyerrok; ;} ++ case 210: ++#line 938 "parse.y" ++ { (*yyvalp).ttype = tree_cons (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype); error ("missing comma"); yyerrok; ;} + break; + +- case 204: +-#line 901 "parse.y" ++ case 211: ++#line 940 "parse.y" + { error ("extra comma"); ;} + break; + +- case 206: +-#line 907 "parse.y" +- { (*yyvalp).ttype = build_pascal_subrange_type (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0); ;} ++ case 213: ++#line 946 "parse.y" ++ { (*yyvalp).ttype = build_pascal_subrange_type (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0); ;} + break; + +- case 207: +-#line 909 "parse.y" ++ case 214: ++#line 948 "parse.y" + { +- defining_packed_type -= ((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.itype; ++ defining_packed_type -= yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.itype; + chk_dialect ("packed subrange types are", B_D_PASCAL); +- (*yyvalp).ttype = build_pascal_subrange_type (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.itype); ++ (*yyvalp).ttype = build_pascal_subrange_type (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.itype); + ;} + break; + +- case 208: +-#line 919 "parse.y" +- { (*yyvalp).ttype = EM (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype) ? error_mark_node : build_pointer_type (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 215: ++#line 958 "parse.y" ++ { (*yyvalp).ttype = EM (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype) ? error_mark_node : build_pascal_pointer_type (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 209: +-#line 921 "parse.y" +- { (*yyvalp).ttype = EM (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype) ? error_mark_node : build_pointer_type (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 216: ++#line 960 "parse.y" ++ { (*yyvalp).ttype = EM (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype) ? error_mark_node : build_pascal_pointer_type (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 210: +-#line 923 "parse.y" +- { (*yyvalp).ttype = EM (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype) ? error_mark_node : build_pointer_type (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 217: ++#line 962 "parse.y" ++ { (*yyvalp).ttype = EM (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype) ? error_mark_node : build_pascal_pointer_type (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 211: +-#line 925 "parse.y" ++ case 218: ++#line 964 "parse.y" + { + chk_dialect ("pointers to `const' types are", GNU_PASCAL); +- (*yyvalp).ttype = EM (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype) ? error_mark_node : build_pointer_type (p_build_type_variant (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, 1, TYPE_VOLATILE (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype))); ++ (*yyvalp).ttype = EM (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype) ? error_mark_node : build_pascal_pointer_type (p_build_type_variant (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, 1, TYPE_VOLATILE (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype))); + ;} + break; + +- case 212: +-#line 936 "parse.y" ++ case 219: ++#line 975 "parse.y" + { + tree decl, scan; +- for (scan = current_type_list; scan && TREE_VALUE (scan) != ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype; scan = TREE_CHAIN (scan)) ; ++ for (scan = current_type_list; scan && TREE_VALUE (scan) != yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype; scan = TREE_CHAIN (scan)) ; + if (scan) + (*yyvalp).ttype = TREE_TYPE (TREE_PURPOSE (scan)); + else if (current_type_list) +- (*yyvalp).ttype = TREE_TYPE (build_type_decl (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, make_node (LANG_TYPE), NULL_TREE)); +- else if ((decl = lookup_name (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype)) && TREE_CODE (decl) == TYPE_DECL) ++ (*yyvalp).ttype = TREE_TYPE (build_type_decl (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, make_node (LANG_TYPE), NULL_TREE)); ++ else if ((decl = lookup_name (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype)) && TREE_CODE (decl) == TYPE_DECL) + (*yyvalp).ttype = TREE_TYPE (decl); + else + { +@@ -5534,323 +5716,323 @@ + ;} + break; + +- case 213: +-#line 952 "parse.y" ++ case 220: ++#line 991 "parse.y" + { + chk_dialect ("pointers to routines are", GNU_PASCAL); +- assert (EM (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype) || (TREE_CODE (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype) == REFERENCE_TYPE && TREE_TYPE (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype))); +- (*yyvalp).ttype = TREE_TYPE (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ++ assert (EM (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype) || (TREE_CODE (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype) == REFERENCE_TYPE && TREE_TYPE (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype))); ++ (*yyvalp).ttype = TREE_TYPE (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); + ;} + break; + +- case 215: +-#line 964 "parse.y" +- { (*yyvalp).ttype = build_procedural_type (void_type_node, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 222: ++#line 1003 "parse.y" ++ { (*yyvalp).ttype = build_procedural_type (void_type_node, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 216: +-#line 966 "parse.y" +- { (*yyvalp).ttype = build_procedural_type (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++ case 223: ++#line 1005 "parse.y" ++ { (*yyvalp).ttype = build_procedural_type (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 222: +-#line 979 "parse.y" +- { (*yyvalp).ttype = build_pascal_array_type (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype); ;} ++ case 229: ++#line 1018 "parse.y" ++ { (*yyvalp).ttype = build_pascal_array_type (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 224: +-#line 985 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); yyerrok; ;} ++ case 231: ++#line 1024 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); yyerrok; ;} + break; + +- case 225: +-#line 987 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); error ("missing comma"); yyerrok; ;} ++ case 232: ++#line 1026 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); error ("missing comma"); yyerrok; ;} + break; + +- case 226: +-#line 989 "parse.y" ++ case 233: ++#line 1028 "parse.y" + { (*yyvalp).ttype = build_tree_list (error_mark_node, error_mark_node); ;} + break; + +- case 227: +-#line 991 "parse.y" ++ case 234: ++#line 1030 "parse.y" + { (*yyvalp).ttype = build_tree_list (error_mark_node, error_mark_node); ;} + break; + +- case 228: +-#line 997 "parse.y" +- { (*yyvalp).ttype = build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, convert_type_to_range (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype)); ;} ++ case 235: ++#line 1036 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, convert_type_to_range (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype)); ;} + break; + +- case 229: +-#line 999 "parse.y" +- { (*yyvalp).ttype = build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, convert_type_to_range (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype)); ;} ++ case 236: ++#line 1038 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, convert_type_to_range (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype)); ;} + break; + +- case 231: +-#line 1005 "parse.y" +- { (*yyvalp).ttype = build_file_type (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, 0); ;} ++ case 238: ++#line 1044 "parse.y" ++ { (*yyvalp).ttype = build_file_type (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, 0); ;} + break; + +- case 232: +-#line 1010 "parse.y" ++ case 239: ++#line 1049 "parse.y" + { chk_dialect ("untyped files are", U_B_D_M_PASCAL); (*yyvalp).ttype = untyped_file_type_node; ;} + break; + +- case 234: +-#line 1016 "parse.y" +- { (*yyvalp).ttype = ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype; ;} ++ case 241: ++#line 1055 "parse.y" ++ { (*yyvalp).ttype = yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype; ;} + break; + +- case 235: +-#line 1021 "parse.y" +- { (*yyvalp).ttype = pascal_build_set_type (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 242: ++#line 1060 "parse.y" ++ { (*yyvalp).ttype = pascal_build_set_type (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 236: +-#line 1026 "parse.y" +- { (*yyvalp).ttype = ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype; yyerrok; ;} ++ case 243: ++#line 1065 "parse.y" ++ { (*yyvalp).ttype = yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype; yyerrok; ;} + break; + +- case 237: +-#line 1028 "parse.y" ++ case 244: ++#line 1067 "parse.y" + { (*yyvalp).ttype = finish_struct (start_struct (RECORD_TYPE), NULL_TREE, 1); ;} + break; + +- case 238: +-#line 1033 "parse.y" ++ case 245: ++#line 1072 "parse.y" + { (*yyvalp).ttype = finish_struct (start_struct (RECORD_TYPE), NULL_TREE, 1); ;} + break; + +- case 239: +-#line 1035 "parse.y" +- { (*yyvalp).ttype = finish_struct (start_struct (RECORD_TYPE), ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, 1); ;} ++ case 246: ++#line 1074 "parse.y" ++ { (*yyvalp).ttype = finish_struct (start_struct (RECORD_TYPE), yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, 1); ;} + break; + +- case 240: +-#line 1037 "parse.y" +- { (*yyvalp).ttype = build_variant_record (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 247: ++#line 1076 "parse.y" ++ { (*yyvalp).ttype = build_variant_record (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 241: +-#line 1039 "parse.y" +- { (*yyvalp).ttype = build_variant_record (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 248: ++#line 1078 "parse.y" ++ { (*yyvalp).ttype = build_variant_record (NULL_TREE, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 243: +-#line 1045 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); yyerrok; ;} ++ case 250: ++#line 1084 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); yyerrok; ;} + break; + +- case 244: +-#line 1047 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); error ("missing semicolon"); yyerrok; ;} ++ case 251: ++#line 1086 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); error ("missing semicolon"); yyerrok; ;} + break; + +- case 245: +-#line 1049 "parse.y" ++ case 252: ++#line 1088 "parse.y" + { error ("extra semicolon"); ;} + break; + +- case 247: +-#line 1055 "parse.y" +- { (*yyvalp).ttype = build_fields (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 254: ++#line 1094 "parse.y" ++ { (*yyvalp).ttype = build_fields (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 248: +-#line 1060 "parse.y" +- { (*yyvalp).ttype = build_record_variant_part (((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.ttype, chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype)); ;} ++ case 255: ++#line 1099 "parse.y" ++ { (*yyvalp).ttype = build_record_variant_part (yyvsp[YYFILL (-4)].yystate.yysemantics.yysval.ttype, chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype)); ;} + break; + +- case 249: +-#line 1065 "parse.y" +- { (*yyvalp).ttype = build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, build_field (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype)); ;} ++ case 256: ++#line 1104 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, build_field (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype)); ;} + break; + +- case 250: +-#line 1067 "parse.y" +- { (*yyvalp).ttype = build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, build_field (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype)); ;} ++ case 257: ++#line 1106 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, build_field (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype)); ;} + break; + +- case 251: +-#line 1069 "parse.y" +- { (*yyvalp).ttype = build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE); ;} ++ case 258: ++#line 1108 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE); ;} + break; + +- case 252: +-#line 1071 "parse.y" +- { (*yyvalp).ttype = build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE); ;} ++ case 259: ++#line 1110 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE); ;} + break; + +- case 253: +-#line 1076 "parse.y" ++ case 260: ++#line 1115 "parse.y" + { chk_dialect ("type denoters (no identifiers) as variant tag type are", U_B_D_PASCAL); ;} + break; + +- case 254: +-#line 1081 "parse.y" ++ case 261: ++#line 1120 "parse.y" + { (*yyvalp).ttype = NULL_TREE; ;} + break; + +- case 255: +-#line 1083 "parse.y" +- { (*yyvalp).ttype = build_tree_list (NULL_TREE, build_field (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype)); ;} ++ case 262: ++#line 1122 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (NULL_TREE, build_field (NULL_TREE, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype)); ;} + break; + +- case 257: +-#line 1089 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); yyerrok; ;} ++ case 264: ++#line 1128 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); yyerrok; ;} + break; + +- case 258: +-#line 1091 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); error ("missing semicolon"); yyerrok; ;} ++ case 265: ++#line 1130 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); error ("missing semicolon"); yyerrok; ;} + break; + +- case 259: +-#line 1093 "parse.y" ++ case 266: ++#line 1132 "parse.y" + { (*yyvalp).ttype = NULL_TREE; ;} + break; + +- case 261: +-#line 1099 "parse.y" +- { (*yyvalp).ttype = build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.ttype, build_field (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype)); ;} ++ case 268: ++#line 1138 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (yyvsp[YYFILL (-4)].yystate.yysemantics.yysval.ttype, build_field (NULL_TREE, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype)); ;} + break; + +- case 263: +-#line 1105 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); yyerrok; ;} ++ case 270: ++#line 1144 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); yyerrok; ;} + break; + +- case 264: +-#line 1107 "parse.y" ++ case 271: ++#line 1146 "parse.y" + { error ("extra comma"); ;} + break; + +- case 265: +-#line 1109 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); error ("missing comma"); yyerrok; ;} ++ case 272: ++#line 1148 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); error ("missing comma"); yyerrok; ;} + break; + +- case 267: +-#line 1115 "parse.y" +- { (*yyvalp).ttype = build_tree_list (NULL_TREE, string_may_be_char (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0)); ;} ++ case 274: ++#line 1154 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (NULL_TREE, string_may_be_char (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0)); ;} + break; + +- case 268: +-#line 1117 "parse.y" ++ case 275: ++#line 1156 "parse.y" + { + chk_dialect ("`case' ranges are", NOT_CLASSIC_PASCAL); +- (*yyvalp).ttype = build_tree_list (string_may_be_char (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0), string_may_be_char (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, 0)); ++ (*yyvalp).ttype = build_tree_list (string_may_be_char (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0), string_may_be_char (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, 0)); + ;} + break; + +- case 269: +-#line 1122 "parse.y" ++ case 276: ++#line 1161 "parse.y" + { +- (*yyvalp).ttype = build_tree_list (string_may_be_char (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0), string_may_be_char (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, 0)); ++ (*yyvalp).ttype = build_tree_list (string_may_be_char (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0), string_may_be_char (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, 0)); + error ("missing `..'"); + yyerrok; + ;} + break; + +- case 270: +-#line 1128 "parse.y" +- { error ("extra `..'"); (*yyvalp).ttype = build_tree_list (NULL_TREE, string_may_be_char (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, 0)); ;} ++ case 277: ++#line 1167 "parse.y" ++ { error ("extra `..'"); (*yyvalp).ttype = build_tree_list (NULL_TREE, string_may_be_char (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, 0)); ;} + break; + +- case 271: +-#line 1133 "parse.y" ++ case 278: ++#line 1172 "parse.y" + { + chk_dialect_name ("type of", E_O_PASCAL); +- (*yyvalp).ttype = TREE_TYPE (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ++ (*yyvalp).ttype = TREE_TYPE (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); + if (!EM ((*yyvalp).ttype)) + (*yyvalp).ttype = TYPE_MAIN_VARIANT ((*yyvalp).ttype); + ;} + break; + +- case 275: +-#line 1151 "parse.y" +- { (*yyvalp).ttype = ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype; ;} ++ case 282: ++#line 1190 "parse.y" ++ { (*yyvalp).ttype = yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype; ;} + break; + +- case 276: +-#line 1153 "parse.y" ++ case 283: ++#line 1192 "parse.y" + { (*yyvalp).ttype = NULL_TREE; ;} + break; + +- case 278: +-#line 1159 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 285: ++#line 1198 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 279: +-#line 1161 "parse.y" ++ case 286: ++#line 1200 "parse.y" + { (*yyvalp).ttype = error_mark_node; ;} + break; + +- case 281: +-#line 1167 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, build_tree_list (void_type_node, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype)); ;} ++ case 288: ++#line 1206 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, build_tree_list (void_type_node, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype)); ;} + break; + +- case 282: +-#line 1169 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); yyerrok; ;} ++ case 289: ++#line 1208 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); yyerrok; ;} + break; + +- case 283: +-#line 1174 "parse.y" +- { (*yyvalp).ttype = build_fields (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 290: ++#line 1213 "parse.y" ++ { (*yyvalp).ttype = build_fields (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 284: +-#line 1176 "parse.y" +- { (*yyvalp).ttype = build_method_description (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE, void_type_node, 0); ;} ++ case 291: ++#line 1215 "parse.y" ++ { (*yyvalp).ttype = build_method_description (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE, void_type_node, 0); ;} + break; + +- case 285: +-#line 1178 "parse.y" +- { (*yyvalp).ttype = build_method_description (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0); ;} ++ case 292: ++#line 1217 "parse.y" ++ { (*yyvalp).ttype = build_method_description (yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0); ;} + break; + +- case 286: +-#line 1180 "parse.y" +- { (*yyvalp).ttype = build_method_description (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE, boolean_type_node, 1); ;} ++ case 293: ++#line 1219 "parse.y" ++ { (*yyvalp).ttype = build_method_description (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE, boolean_type_node, 1); ;} + break; + +- case 287: +-#line 1182 "parse.y" +- { (*yyvalp).ttype = build_method_description (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE, void_type_node, 1); ;} ++ case 294: ++#line 1221 "parse.y" ++ { (*yyvalp).ttype = build_method_description (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE, void_type_node, 1); ;} + break; + +- case 288: +-#line 1184 "parse.y" +- { (*yyvalp).ttype = build_tree_list (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 295: ++#line 1223 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (NULL_TREE, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 289: +-#line 1186 "parse.y" +- { (*yyvalp).ttype = build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++ case 296: ++#line 1225 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 290: +-#line 1188 "parse.y" +- { (*yyvalp).ttype = build_tree_list (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 297: ++#line 1227 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (NULL_TREE, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 292: +-#line 1195 "parse.y" ++ case 299: ++#line 1234 "parse.y" + { ;} + break; + +- case 294: +-#line 1201 "parse.y" ++ case 301: ++#line 1240 "parse.y" + { +- tree t, ids = (*yyvalp).ttype = nreverse (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype); +- if ((TREE_CODE (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype) == POINTER_TYPE || TREE_CODE (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype) == REFERENCE_TYPE) +- && TREE_CODE (TREE_TYPE (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype)) == FUNCTION_TYPE) ++ tree t, ids = (*yyvalp).ttype = nreverse (yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype); ++ if ((TREE_CODE (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype) == POINTER_TYPE || TREE_CODE (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype) == REFERENCE_TYPE) ++ && TREE_CODE (TREE_TYPE (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype)) == FUNCTION_TYPE) + TREE_PRIVATE (ids) = !!allow_function_calls (0); /* kludge */ + /* With `begin var Result: Integer; Result := ...' where `Result' + is a built-in identifier, parser look-ahead would already get +@@ -5861,167 +6043,167 @@ + ;} + break; + +- case 295: +-#line 1214 "parse.y" ++ case 302: ++#line 1253 "parse.y" + { +- tree t, ids = ((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype; ++ tree t, ids = yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype; + for (t = ids; t; t = TREE_CHAIN (t)) + PASCAL_PENDING_DECLARATION (TREE_VALUE (t)) = 0; + lex_const_equal = -1; +- (*yyvalp).ttype = declare_variables (ids, ((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, 0, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); +- if ((TREE_CODE (((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.ttype) == POINTER_TYPE || TREE_CODE (((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.ttype) == REFERENCE_TYPE) +- && TREE_CODE (TREE_TYPE (((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.ttype)) == FUNCTION_TYPE) ++ (*yyvalp).ttype = declare_variables (ids, yyvsp[YYFILL (-4)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, 0, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ++ if ((TREE_CODE (yyvsp[YYFILL (-4)].yystate.yysemantics.yysval.ttype) == POINTER_TYPE || TREE_CODE (yyvsp[YYFILL (-4)].yystate.yysemantics.yysval.ttype) == REFERENCE_TYPE) ++ && TREE_CODE (TREE_TYPE (yyvsp[YYFILL (-4)].yystate.yysemantics.yysval.ttype)) == FUNCTION_TYPE) + allow_function_calls (TREE_PRIVATE (ids)); + yyerrok; + ;} + break; + +- case 296: +-#line 1226 "parse.y" ++ case 303: ++#line 1265 "parse.y" + { (*yyvalp).ttype = NULL_TREE; lex_const_equal = -1; ;} + break; + +- case 298: +-#line 1232 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 305: ++#line 1271 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 300: +-#line 1238 "parse.y" +- { (*yyvalp).ttype = build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 307: ++#line 1277 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 301: +-#line 1240 "parse.y" +- { ASSERT_ID (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yyloc, p_name); ;} ++ case 308: ++#line 1279 "parse.y" ++ { ASSERT_ID (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yyloc, p_name); ;} + break; + +- case 302: +-#line 1242 "parse.y" +- { (*yyvalp).ttype = tree_cons (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype)); ;} ++ case 309: ++#line 1281 "parse.y" ++ { (*yyvalp).ttype = tree_cons (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, build_tree_list (yyvsp[YYFILL (-4)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype)); ;} + break; + +- case 304: +-#line 1248 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 311: ++#line 1287 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 305: +-#line 1253 "parse.y" +- { (*yyvalp).ttype = build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 312: ++#line 1292 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 306: +-#line 1255 "parse.y" +- { (*yyvalp).ttype = TREE_PURPOSE (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 313: ++#line 1294 "parse.y" ++ { (*yyvalp).ttype = TREE_PURPOSE (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 307: +-#line 1260 "parse.y" +- { (*yyvalp).ttype = build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype); ;} ++ case 314: ++#line 1299 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 309: +-#line 1266 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 316: ++#line 1305 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 311: +-#line 1272 "parse.y" +- { (*yyvalp).ttype = build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE); ;} ++ case 318: ++#line 1311 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE); ;} + break; + +- case 312: +-#line 1274 "parse.y" +- { (*yyvalp).ttype = build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE); ;} ++ case 319: ++#line 1313 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE); ;} + break; + +- case 313: +-#line 1276 "parse.y" +- { (*yyvalp).ttype = build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, build_tree_list (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype)); ;} ++ case 320: ++#line 1315 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, build_tree_list (NULL_TREE, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype)); ;} + break; + +- case 314: +-#line 1278 "parse.y" +- { (*yyvalp).ttype = build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, build_tree_list (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype)); ;} ++ case 321: ++#line 1317 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, build_tree_list (NULL_TREE, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype)); ;} + break; + +- case 315: +-#line 1280 "parse.y" +- { (*yyvalp).ttype = build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.ttype, tree_cons (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype)); ;} ++ case 322: ++#line 1319 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (yyvsp[YYFILL (-5)].yystate.yysemantics.yysval.ttype, tree_cons (NULL_TREE, yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype)); ;} + break; + +- case 316: +-#line 1284 "parse.y" ++ case 323: ++#line 1323 "parse.y" + { lex_const_equal = -1; ;} + break; + +- case 317: +-#line 1286 "parse.y" ++ case 324: ++#line 1325 "parse.y" + { chk_dialect ("initialization with `:=' is", VAX_PASCAL); ;} + break; + +- case 318: +-#line 1288 "parse.y" ++ case 325: ++#line 1327 "parse.y" + { chk_dialect ("initialization with `=' is", BORLAND_DELPHI); ;} + break; + +- case 320: +-#line 1294 "parse.y" +- { (*yyvalp).ttype = ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype; ;} ++ case 327: ++#line 1333 "parse.y" ++ { (*yyvalp).ttype = yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype; ;} + break; + +- case 321: +-#line 1296 "parse.y" ++ case 328: ++#line 1335 "parse.y" + { (*yyvalp).ttype = NULL_TREE; ;} + break; + +- case 323: +-#line 1302 "parse.y" ++ case 330: ++#line 1341 "parse.y" + { (*yyvalp).itype = allow_function_calls (0); lex_const_equal = -1; ;} + break; + +- case 324: +-#line 1304 "parse.y" ++ case 331: ++#line 1343 "parse.y" + { +- allow_function_calls (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.itype); +- (*yyvalp).ttype = build_tree_list (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ++ allow_function_calls (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.itype); ++ (*yyvalp).ttype = build_tree_list (NULL_TREE, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); + PASCAL_ABSOLUTE_CLAUSE ((*yyvalp).ttype) = 1; + ;} + break; + +- case 325: +-#line 1310 "parse.y" ++ case 332: ++#line 1349 "parse.y" + { (*yyvalp).ttype = NULL_TREE; ;} + break; + +- case 326: +-#line 1329 "parse.y" ++ case 333: ++#line 1368 "parse.y" + { parentheses_count = 0; (*yyvalp).itype = allow_function_calls (0); ;} + break; + +- case 327: +-#line 1331 "parse.y" +- { allow_function_calls (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.itype); (*yyvalp).ttype = ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype; ;} ++ case 334: ++#line 1370 "parse.y" ++ { allow_function_calls (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.itype); (*yyvalp).ttype = yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype; ;} + break; + +- case 328: +-#line 1336 "parse.y" +- { (*yyvalp).ttype = build_tree_list (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 335: ++#line 1375 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (NULL_TREE, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 330: +-#line 1339 "parse.y" ++ case 337: ++#line 1378 "parse.y" + { + chk_dialect ("initializers in `()' are", B_D_M_PASCAL); +- (*yyvalp).ttype = build_tree_list (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ++ (*yyvalp).ttype = build_tree_list (NULL_TREE, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); + ;} + break; + +- case 331: +-#line 1347 "parse.y" ++ case 338: ++#line 1386 "parse.y" + { +- (*yyvalp).ttype = maybe_schema_discriminant (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ++ (*yyvalp).ttype = maybe_schema_discriminant (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); + /* Convert outer pairs of parentheses (which are meaningless in normal + expressions) into extra levels of tree lists for structured initializers. */ + if (last_parenthesized_expression == (*yyvalp).ttype) +@@ -6031,51 +6213,51 @@ + ;} + break; + +- case 333: +-#line 1361 "parse.y" +- { (*yyvalp).ttype = build_tree_list (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++ case 340: ++#line 1400 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (NULL_TREE, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 334: +-#line 1363 "parse.y" +- { (*yyvalp).ttype = nreverse (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 341: ++#line 1402 "parse.y" ++ { (*yyvalp).ttype = nreverse (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 337: +-#line 1367 "parse.y" ++ case 344: ++#line 1406 "parse.y" + { error ("invalid structured initializer"); (*yyvalp).ttype = error_mark_node; ;} + break; + +- case 338: +-#line 1375 "parse.y" +- { TREE_CHAIN (((*yyvalp).ttype = ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype)) = ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype; ;} ++ case 345: ++#line 1414 "parse.y" ++ { TREE_CHAIN (((*yyvalp).ttype = yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype)) = yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype; ;} + break; + +- case 339: +-#line 1377 "parse.y" +- { TREE_CHAIN (((*yyvalp).ttype = ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype)) = ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype; ;} ++ case 346: ++#line 1416 "parse.y" ++ { TREE_CHAIN (((*yyvalp).ttype = yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype)) = yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype; ;} + break; + +- case 340: +-#line 1379 "parse.y" +- { TREE_CHAIN (((*yyvalp).ttype = ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype)) = ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype; error ("missing separator"); ;} ++ case 347: ++#line 1418 "parse.y" ++ { TREE_CHAIN (((*yyvalp).ttype = yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype)) = yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype; error ("missing separator"); ;} + break; + +- case 342: +-#line 1385 "parse.y" ++ case 349: ++#line 1424 "parse.y" + { chk_dialect ("initializers separated with `,' are", B_D_M_PASCAL); ;} + break; + +- case 345: +-#line 1395 "parse.y" ++ case 352: ++#line 1434 "parse.y" + { + chk_dialect ("initializers in `[]' are", E_O_PASCAL); +- (*yyvalp).ttype = build_tree_list (NULL_TREE, nreverse (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype)); ++ (*yyvalp).ttype = build_tree_list (NULL_TREE, nreverse (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype)); + ;} + break; + +- case 346: +-#line 1400 "parse.y" ++ case 353: ++#line 1439 "parse.y" + { + error ("invalid structured initializer"); + chk_dialect ("initializers in `[]' are", E_O_PASCAL); +@@ -6083,433 +6265,433 @@ + ;} + break; + +- case 348: +-#line 1410 "parse.y" +- { TREE_CHAIN (((*yyvalp).ttype = ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype)) = ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype; ;} ++ case 355: ++#line 1449 "parse.y" ++ { TREE_CHAIN (((*yyvalp).ttype = yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype)) = yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype; ;} + break; + +- case 349: +-#line 1412 "parse.y" +- { TREE_CHAIN (((*yyvalp).ttype = ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype)) = ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype; error ("missing separator"); ;} ++ case 356: ++#line 1451 "parse.y" ++ { TREE_CHAIN (((*yyvalp).ttype = yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype)) = yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype; error ("missing separator"); ;} + break; + +- case 350: +-#line 1417 "parse.y" +- { (*yyvalp).ttype = build_tree_list (build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, NULL_TREE), TREE_VALUE (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype)); ;} ++ case 357: ++#line 1456 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (build_tree_list (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, NULL_TREE), TREE_VALUE (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype)); ;} + break; + +- case 353: +-#line 1424 "parse.y" +- { (*yyvalp).ttype = build_pascal_unary_op (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.code, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 360: ++#line 1463 "parse.y" ++ { (*yyvalp).ttype = build_pascal_unary_op (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.code, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 354: +-#line 1426 "parse.y" +- { (*yyvalp).ttype = build_pascal_unary_op (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.code, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 361: ++#line 1465 "parse.y" ++ { (*yyvalp).ttype = build_pascal_unary_op (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.code, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 355: +-#line 1540 "parse.y" +- { declare_routine (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, 1); ;} ++ case 362: ++#line 1579 "parse.y" ++ { declare_routine (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, 1); ;} + break; + +- case 356: +-#line 1551 "parse.y" +- { declare_routine (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0); ;} ++ case 363: ++#line 1590 "parse.y" ++ { declare_routine (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0); ;} + break; + +- case 357: +-#line 1553 "parse.y" +- { (*yyvalp).ttype = start_routine (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 364: ++#line 1592 "parse.y" ++ { (*yyvalp).ttype = start_routine (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 358: +-#line 1555 "parse.y" ++ case 365: ++#line 1595 "parse.y" + { + do_setjmp (); + un_initialize_block (getdecls (), 0, 0); + ;} + break; + +- case 359: +-#line 1560 "parse.y" ++ case 366: ++#line 1600 "parse.y" + { + finish_routine (); +- restore_identifiers (((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.ttype); ++ restore_identifiers (yyvsp[YYFILL (-5)].yystate.yysemantics.yysval.ttype); + ;} + break; + +- case 362: +-#line 1573 "parse.y" +- { (*yyvalp).ttype = build_routine_heading (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE, void_type_node, 1, 0); ;} ++ case 369: ++#line 1613 "parse.y" ++ { (*yyvalp).ttype = build_routine_heading (NULL_TREE, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE, void_type_node, 1, 0); ;} + break; + +- case 363: +-#line 1575 "parse.y" +- { (*yyvalp).ttype = build_routine_heading (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, 1, 0); ;} ++ case 370: ++#line 1615 "parse.y" ++ { (*yyvalp).ttype = build_routine_heading (NULL_TREE, yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, 1, 0); ;} + break; + +- case 364: +-#line 1577 "parse.y" +- { (*yyvalp).ttype = build_operator_heading (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 371: ++#line 1617 "parse.y" ++ { (*yyvalp).ttype = build_operator_heading (yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 365: +-#line 1587 "parse.y" +- { (*yyvalp).ttype = build_routine_heading (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE, void_type_node, 1, 0); ;} ++ case 372: ++#line 1627 "parse.y" ++ { (*yyvalp).ttype = build_routine_heading (yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE, void_type_node, 1, 0); ;} + break; + +- case 366: +-#line 1589 "parse.y" +- { (*yyvalp).ttype = build_routine_heading (((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, 1, 0); ;} ++ case 373: ++#line 1629 "parse.y" ++ { (*yyvalp).ttype = build_routine_heading (yyvsp[YYFILL (-5)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, 1, 0); ;} + break; + +- case 367: +-#line 1591 "parse.y" +- { (*yyvalp).ttype = build_routine_heading (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE, boolean_type_node, 1, 1); ;} ++ case 374: ++#line 1631 "parse.y" ++ { (*yyvalp).ttype = build_routine_heading (yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE, boolean_type_node, 1, 1); ;} + break; + +- case 368: +-#line 1593 "parse.y" +- { (*yyvalp).ttype = build_routine_heading (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE, void_type_node, 1, 1); ;} ++ case 375: ++#line 1633 "parse.y" ++ { (*yyvalp).ttype = build_routine_heading (yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE, void_type_node, 1, 1); ;} + break; + +- case 371: +-#line 1603 "parse.y" +- { (*yyvalp).ttype = chainon (chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype), ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 378: ++#line 1643 "parse.y" ++ { (*yyvalp).ttype = chainon (chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype), yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 372: +-#line 1608 "parse.y" +- { (*yyvalp).ttype = build_tree_list (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++ case 379: ++#line 1648 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (NULL_TREE, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 373: +-#line 1610 "parse.y" +- { (*yyvalp).ttype = build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype); ;} ++ case 380: ++#line 1650 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 374: +-#line 1612 "parse.y" +- { ASSERT_ID (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yyloc, p_name); ;} ++ case 381: ++#line 1652 "parse.y" ++ { ASSERT_ID (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yyloc, p_name); ;} + break; + +- case 375: +-#line 1614 "parse.y" +- { (*yyvalp).ttype = tree_cons (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.ttype)); ;} ++ case 382: ++#line 1654 "parse.y" ++ { (*yyvalp).ttype = tree_cons (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, build_tree_list (yyvsp[YYFILL (-4)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-5)].yystate.yysemantics.yysval.ttype)); ;} + break; + +- case 376: +-#line 1616 "parse.y" +- { (*yyvalp).ttype = tree_cons (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.ttype)); ;} ++ case 383: ++#line 1656 "parse.y" ++ { (*yyvalp).ttype = tree_cons (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, build_tree_list (yyvsp[YYFILL (-4)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-5)].yystate.yysemantics.yysval.ttype)); ;} + break; + +- case 377: +-#line 1618 "parse.y" +- { (*yyvalp).ttype = tree_cons (((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.ttype, build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype)); ;} ++ case 384: ++#line 1658 "parse.y" ++ { (*yyvalp).ttype = tree_cons (yyvsp[YYFILL (-4)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-5)].yystate.yysemantics.yysval.ttype, build_tree_list (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype)); ;} + break; + +- case 378: +-#line 1620 "parse.y" +- { (*yyvalp).ttype = build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype); ;} ++ case 385: ++#line 1660 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 379: +-#line 1622 "parse.y" +- { (*yyvalp).ttype = build_tree_list (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++ case 386: ++#line 1662 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (NULL_TREE, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 380: +-#line 1624 "parse.y" +- { (*yyvalp).ttype = build_tree_list (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++ case 387: ++#line 1664 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (NULL_TREE, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 382: +-#line 1630 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++ case 389: ++#line 1670 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 383: +-#line 1632 "parse.y" ++ case 390: ++#line 1672 "parse.y" + { + if (co->warn_near_far) +- warning ("`%s' directive ignored in flat memory model", IDENTIFIER_NAME (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype)); ++ warning ("`%s' directive ignored in flat memory model", IDENTIFIER_NAME (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype)); + ;} + break; + +- case 389: +-#line 1651 "parse.y" +- { (*yyvalp).ttype = ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype; chk_dialect ("function result variable specifications are", E_O_PASCAL); ;} ++ case 396: ++#line 1691 "parse.y" ++ { (*yyvalp).ttype = yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype; chk_dialect ("function result variable specifications are", E_O_PASCAL); ;} + break; + +- case 391: +-#line 1657 "parse.y" ++ case 398: ++#line 1697 "parse.y" + { chk_dialect ("function result variables without `=' are", GNU_PASCAL); ;} + break; + +- case 393: +-#line 1663 "parse.y" +- { (*yyvalp).ttype = ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype; chk_dialect ("operator result variables with `=' are", GNU_PASCAL); ;} ++ case 400: ++#line 1703 "parse.y" ++ { (*yyvalp).ttype = yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype; chk_dialect ("operator result variables with `=' are", GNU_PASCAL); ;} + break; + +- case 394: +-#line 1665 "parse.y" ++ case 401: ++#line 1705 "parse.y" + { error ("missing operator result variable"); ;} + break; + +- case 395: +-#line 1670 "parse.y" ++ case 402: ++#line 1710 "parse.y" + { (*yyvalp).ttype = NULL_TREE; ;} + break; + +- case 396: +-#line 1672 "parse.y" +- { (*yyvalp).ttype = check_result_type (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 403: ++#line 1712 "parse.y" ++ { (*yyvalp).ttype = check_result_type (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 399: +-#line 1679 "parse.y" ++ case 406: ++#line 1719 "parse.y" + { + chk_dialect ("empty parentheses are", BORLAND_DELPHI); + (*yyvalp).ttype = build_tree_list (NULL_TREE, void_type_node); + ;} + break; + +- case 400: +-#line 1684 "parse.y" +- { (*yyvalp).ttype = ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype; ;} ++ case 407: ++#line 1724 "parse.y" ++ { (*yyvalp).ttype = yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype; ;} + break; + +- case 401: +-#line 1686 "parse.y" ++ case 408: ++#line 1726 "parse.y" + { (*yyvalp).ttype = build_tree_list (NULL_TREE, NULL_TREE); ;} + break; + +- case 402: +-#line 1688 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, build_tree_list (NULL_TREE, NULL_TREE)); ;} ++ case 409: ++#line 1728 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, build_tree_list (NULL_TREE, NULL_TREE)); ;} + break; + +- case 403: +-#line 1690 "parse.y" ++ case 410: ++#line 1730 "parse.y" + { (*yyvalp).ttype = NULL_TREE; ;} + break; + +- case 405: +-#line 1696 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); yyerrok; ;} ++ case 412: ++#line 1736 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); yyerrok; ;} + break; + +- case 406: +-#line 1698 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); error ("missing semicolon"); yyerrok; ;} ++ case 413: ++#line 1738 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); error ("missing semicolon"); yyerrok; ;} + break; + +- case 408: +-#line 1704 "parse.y" +- { (*yyvalp).ttype = build_formal_param (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0, 0); ;} ++ case 415: ++#line 1744 "parse.y" ++ { (*yyvalp).ttype = build_formal_param (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0, 0); ;} + break; + +- case 409: +-#line 1706 "parse.y" +- { (*yyvalp).ttype = build_formal_param (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0, 1); ;} ++ case 416: ++#line 1746 "parse.y" ++ { (*yyvalp).ttype = build_formal_param (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0, 1); ;} + break; + +- case 410: +-#line 1708 "parse.y" +- { (*yyvalp).ttype = build_formal_param (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, 1, !!((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype); ;} ++ case 417: ++#line 1748 "parse.y" ++ { (*yyvalp).ttype = build_formal_param (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, 1, !!yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 411: +-#line 1710 "parse.y" +- { (*yyvalp).ttype = build_formal_param (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, 2, 1); ;} ++ case 418: ++#line 1750 "parse.y" ++ { (*yyvalp).ttype = build_formal_param (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, 2, 1); ;} + break; + +- case 412: +-#line 1712 "parse.y" +- { (*yyvalp).ttype = build_formal_param (TREE_PURPOSE (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype), TREE_VALUE (TREE_VALUE (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype)), 0, 0); ;} ++ case 419: ++#line 1752 "parse.y" ++ { (*yyvalp).ttype = build_formal_param (TREE_PURPOSE (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype), TREE_VALUE (TREE_VALUE (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype)), 0, 0); ;} + break; + +- case 413: +-#line 1717 "parse.y" +- { (*yyvalp).ttype = build_routine_heading (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE, void_type_node, 0, 0); ;} ++ case 420: ++#line 1757 "parse.y" ++ { (*yyvalp).ttype = build_routine_heading (NULL_TREE, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE, void_type_node, 0, 0); ;} + break; + +- case 414: +-#line 1719 "parse.y" +- { (*yyvalp).ttype = build_routine_heading (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0, 0); ;} ++ case 421: ++#line 1759 "parse.y" ++ { (*yyvalp).ttype = build_routine_heading (NULL_TREE, yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0, 0); ;} + break; + +- case 417: +-#line 1729 "parse.y" ++ case 424: ++#line 1769 "parse.y" + { (*yyvalp).ttype = void_type_node; chk_dialect ("untyped parameters are", U_B_D_PASCAL); ;} + break; + +- case 418: +-#line 1731 "parse.y" +- { (*yyvalp).ttype = ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype; ;} ++ case 425: ++#line 1771 "parse.y" ++ { (*yyvalp).ttype = yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype; ;} + break; + +- case 423: +-#line 1743 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 430: ++#line 1783 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 424: +-#line 1745 "parse.y" ++ case 431: ++#line 1785 "parse.y" + { +- defining_packed_type -= ((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval.itype; +- PASCAL_TREE_PACKED (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype) = ((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval.itype; +- (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ++ defining_packed_type -= yyvsp[YYFILL (-6)].yystate.yysemantics.yysval.itype; ++ PASCAL_TREE_PACKED (yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype) = yyvsp[YYFILL (-6)].yystate.yysemantics.yysval.itype; ++ (*yyvalp).ttype = chainon (yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); + ;} + break; + +- case 428: +-#line 1760 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); yyerrok; ;} ++ case 435: ++#line 1800 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); yyerrok; ;} + break; + +- case 429: +-#line 1762 "parse.y" ++ case 436: ++#line 1802 "parse.y" + { error ("missing semicolon"); yyerrok; ;} + break; + +- case 431: +-#line 1768 "parse.y" ++ case 438: ++#line 1808 "parse.y" + { +- (*yyvalp).ttype = build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype); +- TREE_TYPE ((*yyvalp).ttype) = ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype; ++ (*yyvalp).ttype = build_tree_list (yyvsp[YYFILL (-4)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype); ++ TREE_TYPE ((*yyvalp).ttype) = yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype; + ;} + break; + +- case 432: +-#line 1776 "parse.y" ++ case 439: ++#line 1816 "parse.y" + { + (*yyvalp).ttype = build_tree_list (NULL_TREE, NULL_TREE); +- TREE_TYPE ((*yyvalp).ttype) = ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype; ++ TREE_TYPE ((*yyvalp).ttype) = yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype; + ;} + break; + +- case 435: +-#line 1791 "parse.y" ++ case 442: ++#line 1831 "parse.y" + { yyerrok; ;} + break; + +- case 436: +-#line 1795 "parse.y" ++ case 443: ++#line 1835 "parse.y" + { ;} + break; + +- case 437: +-#line 1797 "parse.y" ++ case 444: ++#line 1837 "parse.y" + { yyerrok; ;} + break; + +- case 439: +-#line 1812 "parse.y" ++ case 446: ++#line 1852 "parse.y" + { (*yyvalp).itype = 0; ;} + break; + +- case 440: +-#line 1814 "parse.y" ++ case 447: ++#line 1854 "parse.y" + { (*yyvalp).itype = 1; ;} + break; + +- case 455: +-#line 1836 "parse.y" +- { pascal_expand_goto (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 462: ++#line 1876 "parse.y" ++ { pascal_expand_goto (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 456: +-#line 1841 "parse.y" +- { set_label (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++ case 463: ++#line 1881 "parse.y" ++ { set_label (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 457: +-#line 1846 "parse.y" ++ case 464: ++#line 1886 "parse.y" + { + chk_dialect ("variable declarations in the statement part are", GNU_PASCAL); +- un_initialize_block (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0, 0); ++ un_initialize_block (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0, 0); + ;} + break; + +- case 458: +-#line 1854 "parse.y" +- { restore_identifiers (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype); ;} ++ case 465: ++#line 1894 "parse.y" ++ { restore_identifiers (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 460: +-#line 1860 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); yyerrok; ;} ++ case 467: ++#line 1900 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); yyerrok; ;} + break; + +- case 461: +-#line 1862 "parse.y" ++ case 468: ++#line 1902 "parse.y" + { (*yyvalp).ttype = NULL_TREE; ;} + break; + +- case 462: +-#line 1864 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); error ("missing comma"); yyerrok; ;} ++ case 469: ++#line 1904 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); error ("missing comma"); yyerrok; ;} + break; + +- case 463: +-#line 1866 "parse.y" ++ case 470: ++#line 1906 "parse.y" + { error ("extra comma"); ;} + break; + +- case 464: +-#line 1871 "parse.y" +- { (*yyvalp).ttype = pascal_shadow_record_fields (undo_schema_dereference (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype), NULL_TREE); ;} ++ case 471: ++#line 1911 "parse.y" ++ { (*yyvalp).ttype = pascal_shadow_record_fields (undo_schema_dereference (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype), NULL_TREE); ;} + break; + +- case 465: +-#line 1873 "parse.y" +- { (*yyvalp).ttype = pascal_shadow_record_fields (undo_schema_dereference (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype), ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 472: ++#line 1913 "parse.y" ++ { (*yyvalp).ttype = pascal_shadow_record_fields (undo_schema_dereference (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype), yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 466: +-#line 1878 "parse.y" +- { expand_start_cond (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, 0); ;} ++ case 473: ++#line 1918 "parse.y" ++ { expand_start_cond (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, 0); ;} + break; + +- case 467: +-#line 1880 "parse.y" ++ case 474: ++#line 1920 "parse.y" + { +- if (!((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.itype && extra_warnings) ++ if (!yyvsp[YYFILL (0)].yystate.yysemantics.yysval.itype && extra_warnings) + warning ("empty statement after `then'"); + ;} + break; + +- case 468: +-#line 1888 "parse.y" ++ case 475: ++#line 1928 "parse.y" + { expand_end_cond (); ;} + break; + +- case 469: +-#line 1890 "parse.y" ++ case 476: ++#line 1930 "parse.y" + { expand_start_else (); ;} + break; + +- case 470: +-#line 1892 "parse.y" ++ case 477: ++#line 1932 "parse.y" + { +- if (!((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.itype && extra_warnings) ++ if (!yyvsp[YYFILL (0)].yystate.yysemantics.yysval.itype && extra_warnings) + warning ("empty statement after `else'"); + expand_end_cond (); + ;} + break; + +- case 471: +-#line 1901 "parse.y" ++ case 478: ++#line 1941 "parse.y" + { + (*yyvalp).ttype = current_case_expression; +- current_case_expression = pascal_expand_start_case (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ++ current_case_expression = pascal_expand_start_case (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); + ;} + break; + +- case 472: +-#line 1906 "parse.y" ++ case 479: ++#line 1946 "parse.y" + { + tree duplicate; + if (!EM (current_case_expression)) +@@ -6517,19 +6699,19 @@ + ;} + break; + +- case 473: +-#line 1912 "parse.y" ++ case 480: ++#line 1952 "parse.y" + { + expand_exit_something (); + if (!EM (current_case_expression)) +- expand_end_case (((yyGLRStackItem const *)yyvsp)[YYFILL (-7)].yystate.yysemantics.yysval.ttype); +- current_case_expression = ((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.ttype; ++ expand_end_case (yyvsp[YYFILL (-7)].yystate.yysemantics.yysval.ttype); ++ current_case_expression = yyvsp[YYFILL (-5)].yystate.yysemantics.yysval.ttype; + yyerrok; + ;} + break; + +- case 474: +-#line 1923 "parse.y" ++ case 481: ++#line 1963 "parse.y" + { + /* Create an implicit `otherwise' (in the rule above) to avoid warnings + about unhandled cases. In ISO Pascal, this is a run-time error. */ +@@ -6538,143 +6720,143 @@ + ;} + break; + +- case 476: +-#line 1934 "parse.y" ++ case 483: ++#line 1974 "parse.y" + { chk_dialect ("`else' in `case' statements is", B_D_PASCAL); ;} + break; + +- case 477: +-#line 1935 "parse.y" ++ case 484: ++#line 1975 "parse.y" + { ;} + break; + +- case 479: +-#line 1941 "parse.y" ++ case 486: ++#line 1981 "parse.y" + { yyerrok; ;} + break; + +- case 480: +-#line 1943 "parse.y" ++ case 487: ++#line 1983 "parse.y" + { error ("case element expected"); ;} + break; + +- case 481: +-#line 1945 "parse.y" ++ case 488: ++#line 1985 "parse.y" + { error ("missing semicolon"); yyerrok; ;} + break; + +- case 482: +-#line 1947 "parse.y" ++ case 489: ++#line 1987 "parse.y" + { error ("extra semicolon"); ;} + break; + +- case 483: +-#line 1952 "parse.y" +- { pascal_pushcase (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++ case 490: ++#line 1992 "parse.y" ++ { pascal_pushcase (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 484: +-#line 1954 "parse.y" ++ case 491: ++#line 1994 "parse.y" + { expand_exit_something (); ;} + break; + +- case 485: +-#line 1962 "parse.y" ++ case 492: ++#line 2002 "parse.y" + { emit_nop (); expand_start_loop_continue_elsewhere (1); ;} + break; + +- case 486: +-#line 1964 "parse.y" +- { LOCATION_NOTE (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yyloc); expand_loop_continue_here (); ;} ++ case 493: ++#line 2004 "parse.y" ++ { LOCATION_NOTE (yyvsp[YYFILL (0)].yystate.yyloc); expand_loop_continue_here (); ;} + break; + +- case 487: +-#line 1966 "parse.y" ++ case 494: ++#line 2006 "parse.y" + { +- LOCATION_NOTE (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yyloc); +- expand_exit_loop_if_false (0, build_pascal_unary_op (TRUTH_NOT_EXPR, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype)); ++ LOCATION_NOTE (yyvsp[YYFILL (-1)].yystate.yyloc); ++ expand_exit_loop_if_false (0, build_pascal_unary_op (TRUTH_NOT_EXPR, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype)); + expand_end_loop (); + ;} + break; + +- case 488: +-#line 1975 "parse.y" ++ case 495: ++#line 2015 "parse.y" + { expand_start_loop (1); ;} + break; + +- case 489: +-#line 1977 "parse.y" +- { LOCATION_NOTE (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yyloc); expand_exit_loop_if_false (0, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 496: ++#line 2017 "parse.y" ++ { LOCATION_NOTE (yyvsp[YYFILL (0)].yystate.yyloc); expand_exit_loop_if_false (0, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 490: +-#line 1979 "parse.y" ++ case 497: ++#line 2019 "parse.y" + { expand_end_loop (); ;} + break; + +- case 491: +-#line 1984 "parse.y" +- { (*yyvalp).ttype = start_for_loop (((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.code); ;} ++ case 498: ++#line 2024 "parse.y" ++ { (*yyvalp).ttype = start_for_loop (yyvsp[YYFILL (-4)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.code); ;} + break; + +- case 492: +-#line 1986 "parse.y" +- { LOCATION_NOTE (((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yyloc); finish_for_loop (((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval.code); ;} ++ case 499: ++#line 2026 "parse.y" ++ { LOCATION_NOTE (yyvsp[YYFILL (-6)].yystate.yyloc); finish_for_loop (yyvsp[YYFILL (-4)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-6)].yystate.yysemantics.yysval.code); ;} + break; + +- case 493: +-#line 1988 "parse.y" +- { (*yyvalp).ttype = start_for_set_loop (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 500: ++#line 2028 "parse.y" ++ { (*yyvalp).ttype = start_for_set_loop (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 494: +-#line 1990 "parse.y" +- { LOCATION_NOTE (((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yyloc); finish_for_set_loop (((yyGLRStackItem const *)yyvsp)[YYFILL (-7)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.ttype); ;} ++ case 501: ++#line 2030 "parse.y" ++ { LOCATION_NOTE (yyvsp[YYFILL (-6)].yystate.yyloc); finish_for_set_loop (yyvsp[YYFILL (-7)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-4)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 495: +-#line 1995 "parse.y" ++ case 502: ++#line 2035 "parse.y" + { (*yyvalp).code = LE_EXPR; ;} + break; + +- case 496: +-#line 1997 "parse.y" ++ case 503: ++#line 2037 "parse.y" + { (*yyvalp).code = GE_EXPR; ;} + break; + +- case 497: +-#line 1999 "parse.y" ++ case 504: ++#line 2039 "parse.y" + { error ("missing `to' or `downto'"); (*yyvalp).code = LE_EXPR; ;} + break; + +- case 498: +-#line 2006 "parse.y" +- { (*yyvalp).itype = allow_function_calls (!PASCAL_PROCEDURAL_TYPE (TREE_TYPE (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype))); ;} ++ case 505: ++#line 2046 "parse.y" ++ { (*yyvalp).itype = allow_function_calls (!PASCAL_PROCEDURAL_TYPE (TREE_TYPE (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype))); ;} + break; + +- case 499: +-#line 2008 "parse.y" ++ case 506: ++#line 2048 "parse.y" + { +- if (!((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype) +- allow_function_calls (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.itype); +- expand_assignment_or_call_statement (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); +- allow_function_calls (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.itype); ++ if (!yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype) ++ allow_function_calls (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.itype); ++ expand_assignment_or_call_statement (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ++ allow_function_calls (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.itype); + ;} + break; + +- case 501: +-#line 2019 "parse.y" ++ case 508: ++#line 2059 "parse.y" + { + chk_dialect ("the address operator is", B_D_M_PASCAL); + /* Special case where `@foo' can be an lvalue: If `foo' is a procedure + reference, `@foo' is a type cast to a procedure pointer. */ +- if (PASCAL_PROCEDURAL_TYPE (TREE_TYPE (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype))) ++ if (PASCAL_PROCEDURAL_TYPE (TREE_TYPE (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype))) + { + tree ftype; + if (!(co->pascal_dialect & B_D_PASCAL)) + warning ("using address expression as lvalue"); +- ftype = TREE_TYPE (TREE_TYPE (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype)); +- (*yyvalp).ttype = convert (build_pointer_type (ftype), ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ++ ftype = TREE_TYPE (TREE_TYPE (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype)); ++ (*yyvalp).ttype = convert (build_pointer_type (ftype), yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); + } + else + { +@@ -6684,187 +6866,187 @@ + ;} + break; + +- case 503: +-#line 2042 "parse.y" +- { (*yyvalp).ttype = ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype; ;} ++ case 510: ++#line 2082 "parse.y" ++ { (*yyvalp).ttype = yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype; ;} + break; + +- case 505: +-#line 2048 "parse.y" ++ case 512: ++#line 2088 "parse.y" + { error ("using `=' instead of `:=' in assignment"); ;} + break; + +- case 506: +-#line 2053 "parse.y" +- { build_predef_call (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.itype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 513: ++#line 2093 "parse.y" ++ { build_predef_call (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.itype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 507: +-#line 2055 "parse.y" +- { build_predef_call (IDENTIFIER_BUILT_IN_VALUE (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype)->symbol, NULL_TREE); ;} ++ case 514: ++#line 2095 "parse.y" ++ { build_predef_call (IDENTIFIER_BUILT_IN_VALUE (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype)->symbol, NULL_TREE); ;} + break; + +- case 508: +-#line 2057 "parse.y" +- { build_predef_call (IDENTIFIER_BUILT_IN_VALUE (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype)->symbol, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); yyerrok; ;} ++ case 515: ++#line 2097 "parse.y" ++ { build_predef_call (IDENTIFIER_BUILT_IN_VALUE (yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype)->symbol, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); yyerrok; ;} + break; + +- case 509: +-#line 2059 "parse.y" +- { build_predef_call (p_Dispose, build_tree_list (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype)); ;} ++ case 516: ++#line 2099 "parse.y" ++ { build_predef_call (p_Dispose, build_tree_list (NULL_TREE, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype)); ;} + break; + +- case 510: +-#line 2061 "parse.y" ++ case 517: ++#line 2101 "parse.y" + { + current_structor_object_type = NULL_TREE; +- if (TREE_CODE (TREE_TYPE (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype)) == POINTER_TYPE && PASCAL_TYPE_OBJECT (TREE_TYPE (TREE_TYPE (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype)))) ++ if (TREE_CODE (TREE_TYPE (yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype)) == POINTER_TYPE && PASCAL_TYPE_OBJECT (TREE_TYPE (TREE_TYPE (yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype)))) + error ("invalid arguments to object `Dispose'"); + else +- build_predef_call (p_Dispose, tree_cons (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype)); ++ build_predef_call (p_Dispose, tree_cons (NULL_TREE, yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype)); + ;} + break; + +- case 511: +-#line 2069 "parse.y" +- { build_predef_call (p_Dispose, tree_cons (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.ttype, build_tree_list (NULL_TREE, call_method (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype)))); ;} ++ case 518: ++#line 2109 "parse.y" ++ { build_predef_call (p_Dispose, tree_cons (NULL_TREE, yyvsp[YYFILL (-4)].yystate.yysemantics.yysval.ttype, build_tree_list (NULL_TREE, call_method (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype)))); ;} + break; + +- case 512: +-#line 2071 "parse.y" ++ case 519: ++#line 2111 "parse.y" + { build_predef_call (p_Return, NULL_TREE); ;} + break; + +- case 513: +-#line 2073 "parse.y" +- { build_predef_call (p_Return, build_tree_list (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype)); ;} ++ case 520: ++#line 2113 "parse.y" ++ { build_predef_call (p_Return, build_tree_list (NULL_TREE, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype)); ;} + break; + +- case 514: +-#line 2078 "parse.y" +- { (*yyvalp).ttype = set_structor_object (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0); ;} ++ case 521: ++#line 2118 "parse.y" ++ { (*yyvalp).ttype = set_structor_object (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0); ;} + break; + +- case 516: +-#line 2083 "parse.y" ++ case 523: ++#line 2123 "parse.y" + { (*yyvalp).itype = allow_function_calls (0); ;} + break; + +- case 517: +-#line 2085 "parse.y" +- { (*yyvalp).ttype = ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype; allow_function_calls (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.itype); yyerrok; ;} ++ case 524: ++#line 2125 "parse.y" ++ { (*yyvalp).ttype = yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype; allow_function_calls (yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.itype); yyerrok; ;} + break; + +- case 518: +-#line 2090 "parse.y" +- { (*yyvalp).ttype = build_tree_list (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 525: ++#line 2130 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (NULL_TREE, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 519: +-#line 2092 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, build_tree_list (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype)); yyerrok; ;} ++ case 526: ++#line 2132 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, build_tree_list (NULL_TREE, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype)); yyerrok; ;} + break; + +- case 520: +-#line 2094 "parse.y" ++ case 527: ++#line 2134 "parse.y" + { (*yyvalp).ttype = build_tree_list (NULL_TREE, error_mark_node); ;} + break; + +- case 521: +-#line 2096 "parse.y" ++ case 528: ++#line 2136 "parse.y" + { (*yyvalp).ttype = build_tree_list (NULL_TREE, error_mark_node); error ("extra comma"); ;} + break; + +- case 523: +-#line 2102 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); yyerrok; ;} ++ case 530: ++#line 2142 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); yyerrok; ;} + break; + +- case 524: +-#line 2104 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); error ("missing comma"); yyerrok; ;} ++ case 531: ++#line 2144 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); error ("missing comma"); yyerrok; ;} + break; + +- case 525: +-#line 2106 "parse.y" ++ case 532: ++#line 2146 "parse.y" + { error ("extra comma"); ;} + break; + +- case 526: +-#line 2112 "parse.y" +- { (*yyvalp).ttype = build_tree_list (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 533: ++#line 2152 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (NULL_TREE, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 527: +-#line 2114 "parse.y" +- { (*yyvalp).ttype = build_tree_list (build_tree_list (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype), ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype); ;} ++ case 534: ++#line 2154 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (build_tree_list (NULL_TREE, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype), yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 528: +-#line 2116 "parse.y" +- { (*yyvalp).ttype = build_tree_list (build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype), ((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.ttype); ;} ++ case 535: ++#line 2156 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (build_tree_list (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype), yyvsp[YYFILL (-4)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 529: +-#line 2121 "parse.y" +- { pascal_expand_asm_operands (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, NULL_TREE, NULL_TREE, NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.itype); ;} ++ case 536: ++#line 2161 "parse.y" ++ { pascal_expand_asm_operands (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, NULL_TREE, NULL_TREE, NULL_TREE, yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.itype); ;} + break; + +- case 530: +-#line 2123 "parse.y" +- { pascal_expand_asm_operands (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, NULL_TREE, NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.itype); ;} ++ case 537: ++#line 2163 "parse.y" ++ { pascal_expand_asm_operands (yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, NULL_TREE, NULL_TREE, yyvsp[YYFILL (-5)].yystate.yysemantics.yysval.itype); ;} + break; + +- case 531: +-#line 2125 "parse.y" +- { pascal_expand_asm_operands (((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-7)].yystate.yysemantics.yysval.itype); ;} ++ case 538: ++#line 2165 "parse.y" ++ { pascal_expand_asm_operands (yyvsp[YYFILL (-5)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, NULL_TREE, yyvsp[YYFILL (-7)].yystate.yysemantics.yysval.itype); ;} + break; + +- case 532: +-#line 2127 "parse.y" +- { pascal_expand_asm_operands (((yyGLRStackItem const *)yyvsp)[YYFILL (-7)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval.itype); ;} ++ case 539: ++#line 2167 "parse.y" ++ { pascal_expand_asm_operands (yyvsp[YYFILL (-7)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-5)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-9)].yystate.yysemantics.yysval.itype); ;} + break; + +- case 533: +-#line 2132 "parse.y" ++ case 540: ++#line 2172 "parse.y" + { (*yyvalp).itype = 0; ;} + break; + +- case 534: +-#line 2134 "parse.y" +- { ASSERT_ID (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yyloc, p_volatile); (*yyvalp).itype = 1; ;} ++ case 541: ++#line 2174 "parse.y" ++ { ASSERT_ID (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yyloc, p_volatile); (*yyvalp).itype = 1; ;} + break; + +- case 538: +-#line 2145 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 545: ++#line 2185 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 539: +-#line 2150 "parse.y" +- { (*yyvalp).ttype = build_tree_list (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++ case 546: ++#line 2190 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 540: +-#line 2155 "parse.y" +- { (*yyvalp).ttype = build_tree_list (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 547: ++#line 2195 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (NULL_TREE, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 541: +-#line 2157 "parse.y" +- { (*yyvalp).ttype = tree_cons (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype); ;} ++ case 548: ++#line 2197 "parse.y" ++ { (*yyvalp).ttype = tree_cons (NULL_TREE, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 542: +-#line 2164 "parse.y" ++ case 549: ++#line 2204 "parse.y" + { + if (PEDANTIC (NOT_CLASSIC_PASCAL)) + { +- tree t = ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype; ++ tree t = yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype; + STRIP_TYPE_NOPS (t); + if (TREE_CODE (t) == CONVERT_EXPR || TREE_CODE (t) == NEGATE_EXPR) + t = TREE_OPERAND (t, 0); +- if (last_parenthesized_expression == ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype ++ if (last_parenthesized_expression == yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype + || last_parenthesized_expression == t + || !(TREE_CODE_CLASS (TREE_CODE (t)) == 'c' && PASCAL_TREE_FRESH_CST (t))) + error ("ISO 7185 Pascal allows only simple constants"); +@@ -6872,8 +7054,8 @@ + ;} + break; + +- case 543: +-#line 2181 "parse.y" ++ case 550: ++#line 2221 "parse.y" + { + if (!EM (TREE_TYPE ((*yyvalp).ttype)) && TREE_CODE (TREE_TYPE ((*yyvalp).ttype)) != BOOLEAN_TYPE) + { +@@ -6883,131 +7065,131 @@ + ;} + break; + +- case 544: +-#line 2192 "parse.y" +- { (*yyvalp).ttype = iso_no_parentheses (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} +- break; +- +- case 545: +-#line 2197 "parse.y" +- { (*yyvalp).ttype = fold (parser_build_binary_op (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.code, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype)); ;} +- break; +- +- case 546: +-#line 2199 "parse.y" +- { (*yyvalp).ttype = fold (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} +- break; +- +- case 548: +-#line 2205 "parse.y" +- { (*yyvalp).ttype = set_exp_original_code (build_pascal_unary_op (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.code, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype), ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.code); ;} +- break; +- +- case 549: +-#line 2210 "parse.y" +- { (*yyvalp).ttype = parser_build_binary_op (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.code, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} +- break; +- +- case 550: +-#line 2212 "parse.y" +- { (*yyvalp).ttype = build_operator_call (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, 1); ;} +- break; +- + case 551: +-#line 2214 "parse.y" +- { (*yyvalp).ttype = start_boolean_binary_op (TRUTH_OR_EXPR, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++#line 2232 "parse.y" ++ { (*yyvalp).ttype = iso_no_parentheses (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + + case 552: +-#line 2216 "parse.y" +- { if (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype) LOCATION_NOTE (COPYLOC ((*yylocp), ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yyloc)); (*yyvalp).ttype = finish_boolean_binary_op (TRUTH_OR_EXPR, ((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++#line 2237 "parse.y" ++ { (*yyvalp).ttype = fold (parser_build_binary_op (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.code, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype)); ;} + break; + + case 553: +-#line 2218 "parse.y" +- { (*yyvalp).ttype = start_boolean_binary_op (TRUTH_ORIF_EXPR, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++#line 2239 "parse.y" ++ { (*yyvalp).ttype = fold (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 554: +-#line 2220 "parse.y" +- { if (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype) LOCATION_NOTE (COPYLOC ((*yylocp), ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yyloc)); (*yyvalp).ttype = finish_boolean_binary_op (TRUTH_ORIF_EXPR, ((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++ case 555: ++#line 2245 "parse.y" ++ { (*yyvalp).ttype = set_exp_original_code (build_pascal_unary_op (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.code, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype), yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.code); ;} + break; + + case 556: +-#line 2226 "parse.y" +- { (*yyvalp).ttype = parser_build_binary_op (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.code, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++#line 2250 "parse.y" ++ { (*yyvalp).ttype = parser_build_binary_op (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.code, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + + case 557: +-#line 2228 "parse.y" +- { (*yyvalp).ttype = build_operator_call (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, 1); ;} ++#line 2252 "parse.y" ++ { (*yyvalp).ttype = build_operator_call (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, 1); ;} + break; + + case 558: +-#line 2230 "parse.y" +- { (*yyvalp).ttype = start_boolean_binary_op (TRUTH_AND_EXPR, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++#line 2254 "parse.y" ++ { (*yyvalp).ttype = start_boolean_binary_op (TRUTH_OR_EXPR, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} + break; + + case 559: +-#line 2232 "parse.y" +- { if (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype) LOCATION_NOTE (COPYLOC ((*yylocp), ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yyloc)); (*yyvalp).ttype = finish_boolean_binary_op (TRUTH_AND_EXPR, ((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++#line 2256 "parse.y" ++ { if (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype) LOCATION_NOTE (COPYLOC ((*yylocp), yyvsp[YYFILL (0)].yystate.yyloc)); (*yyvalp).ttype = finish_boolean_binary_op (TRUTH_OR_EXPR, yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} + break; + + case 560: +-#line 2234 "parse.y" +- { (*yyvalp).ttype = start_boolean_binary_op (TRUTH_ANDIF_EXPR, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++#line 2258 "parse.y" ++ { (*yyvalp).ttype = start_boolean_binary_op (TRUTH_ORIF_EXPR, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} + break; + + case 561: +-#line 2236 "parse.y" +- { if (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype) LOCATION_NOTE (COPYLOC ((*yylocp), ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yyloc)); (*yyvalp).ttype = finish_boolean_binary_op (TRUTH_ANDIF_EXPR, ((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++#line 2260 "parse.y" ++ { if (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype) LOCATION_NOTE (COPYLOC ((*yylocp), yyvsp[YYFILL (0)].yystate.yyloc)); (*yyvalp).ttype = finish_boolean_binary_op (TRUTH_ORIF_EXPR, yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} + break; + + case 563: +-#line 2242 "parse.y" +- { (*yyvalp).ttype = build_operator_call (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0); ;} ++#line 2266 "parse.y" ++ { (*yyvalp).ttype = parser_build_binary_op (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.code, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + + case 564: +-#line 2244 "parse.y" +- { (*yyvalp).ttype = parser_build_binary_op (POW_EXPR, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++#line 2268 "parse.y" ++ { (*yyvalp).ttype = build_operator_call (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, 1); ;} + break; + + case 565: +-#line 2246 "parse.y" +- { (*yyvalp).ttype = parser_build_binary_op (POWER_EXPR, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++#line 2270 "parse.y" ++ { (*yyvalp).ttype = start_boolean_binary_op (TRUTH_AND_EXPR, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} + break; + + case 566: +-#line 2248 "parse.y" +- { (*yyvalp).ttype = build_is_as (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, p_is); ;} ++#line 2272 "parse.y" ++ { if (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype) LOCATION_NOTE (COPYLOC ((*yylocp), yyvsp[YYFILL (0)].yystate.yyloc)); (*yyvalp).ttype = finish_boolean_binary_op (TRUTH_AND_EXPR, yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} + break; + + case 567: +-#line 2250 "parse.y" +- { (*yyvalp).ttype = build_is_as (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, p_as); ;} ++#line 2274 "parse.y" ++ { (*yyvalp).ttype = start_boolean_binary_op (TRUTH_ANDIF_EXPR, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} + break; + + case 568: +-#line 2255 "parse.y" +- { (*yyvalp).ttype = set_exp_original_code (build_pascal_unary_op (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.code, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype), ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.code); ;} ++#line 2276 "parse.y" ++ { if (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype) LOCATION_NOTE (COPYLOC ((*yylocp), yyvsp[YYFILL (0)].yystate.yyloc)); (*yyvalp).ttype = finish_boolean_binary_op (TRUTH_ANDIF_EXPR, yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++ break; ++ ++ case 570: ++#line 2282 "parse.y" ++ { (*yyvalp).ttype = build_operator_call (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, 0); ;} + break; + +- case 569: +-#line 2257 "parse.y" ++ case 571: ++#line 2284 "parse.y" ++ { (*yyvalp).ttype = parser_build_binary_op (POW_EXPR, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ break; ++ ++ case 572: ++#line 2286 "parse.y" ++ { (*yyvalp).ttype = parser_build_binary_op (POWER_EXPR, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ break; ++ ++ case 573: ++#line 2288 "parse.y" ++ { (*yyvalp).ttype = build_is_as (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, p_is); ;} ++ break; ++ ++ case 574: ++#line 2290 "parse.y" ++ { (*yyvalp).ttype = build_is_as (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, p_as); ;} ++ break; ++ ++ case 575: ++#line 2295 "parse.y" ++ { (*yyvalp).ttype = set_exp_original_code (build_pascal_unary_op (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.code, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype), yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.code); ;} ++ break; ++ ++ case 576: ++#line 2297 "parse.y" + { + chk_dialect ("the address operator is", B_D_M_PASCAL); +- (*yyvalp).ttype = build_pascal_address_expression (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, !co->typed_address); ++ (*yyvalp).ttype = build_pascal_address_expression (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, !co->typed_address); + ;} + break; + +- case 572: +-#line 2264 "parse.y" ++ case 579: ++#line 2304 "parse.y" + { (*yyvalp).ttype = null_pointer_node; ;} + break; + +- case 574: +-#line 2267 "parse.y" ++ case 581: ++#line 2307 "parse.y" + { + if (TREE_CODE ((*yyvalp).ttype) == TYPE_DECL) + { +@@ -7021,55 +7203,60 @@ + ;} + break; + +- case 579: +-#line 2292 "parse.y" +- { (*yyvalp).ttype = combine_strings (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, 1); ;} ++ case 586: ++#line 2332 "parse.y" ++ { (*yyvalp).ttype = combine_strings (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, 1); ;} + break; + +- case 584: +-#line 2304 "parse.y" +- { (*yyvalp).ttype = build_caret_string_constant (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.itype); ;} ++ case 591: ++#line 2344 "parse.y" ++ { (*yyvalp).ttype = build_caret_string_constant (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.itype); ;} ++ break; ++ ++ case 610: ++#line 2355 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (NULL_TREE, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 603: +-#line 2315 "parse.y" +- { (*yyvalp).ttype = build_tree_list (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 611: ++#line 2357 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, build_tree_list (NULL_TREE, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype)); ;} + break; + +- case 604: +-#line 2317 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, build_tree_list (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype)); ;} ++ case 612: ++#line 2362 "parse.y" ++ { (*yyvalp).ttype = iso_no_parentheses (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 605: +-#line 2322 "parse.y" +- { (*yyvalp).ttype = iso_no_parentheses (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 613: ++#line 2367 "parse.y" ++ { (*yyvalp).ttype = build_predef_call (IDENTIFIER_BUILT_IN_VALUE (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype)->symbol, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 606: +-#line 2327 "parse.y" +- { (*yyvalp).ttype = build_predef_call (IDENTIFIER_BUILT_IN_VALUE (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype)->symbol, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 614: ++#line 2369 "parse.y" ++ { (*yyvalp).ttype = get_builtin_variable (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 607: +-#line 2329 "parse.y" +- { (*yyvalp).ttype = get_builtin_variable (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 617: ++#line 2376 "parse.y" ++ { (*yyvalp).ttype = build_qualified_or_component_acces (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 610: +-#line 2336 "parse.y" +- { (*yyvalp).ttype = build_inherited_method (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 619: ++#line 2382 "parse.y" ++ { (*yyvalp).ttype = build_inherited_method (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 611: +-#line 2338 "parse.y" +- { (*yyvalp).ttype = build_component_ref (undo_schema_dereference (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype), ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 620: ++#line 2384 "parse.y" ++ { (*yyvalp).ttype = build_component_ref (undo_schema_dereference (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype), yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 612: +-#line 2340 "parse.y" ++ case 621: ++#line 2386 "parse.y" + { +- (*yyvalp).ttype = set_exp_original_code (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, NOP_EXPR); ++ (*yyvalp).ttype = set_exp_original_code (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, NOP_EXPR); + if (last_parenthesized_expression == (*yyvalp).ttype) + parentheses_count++; + else +@@ -7080,519 +7267,519 @@ + ;} + break; + +- case 613: +-#line 2351 "parse.y" +- { (*yyvalp).ttype = build_pascal_pointer_reference (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++ case 622: ++#line 2397 "parse.y" ++ { (*yyvalp).ttype = build_pascal_pointer_reference (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 614: +-#line 2353 "parse.y" +- { (*yyvalp).ttype = build_pascal_array_ref (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++ case 623: ++#line 2399 "parse.y" ++ { (*yyvalp).ttype = build_pascal_array_ref (yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 615: +-#line 2355 "parse.y" ++ case 624: ++#line 2401 "parse.y" + { + chk_dialect ("empty parentheses are", BORLAND_DELPHI); +- (*yyvalp).ttype = build_call_or_cast (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, NULL_TREE); ++ (*yyvalp).ttype = build_call_or_cast (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, NULL_TREE); + ;} + break; + +- case 616: +-#line 2360 "parse.y" ++ case 625: ++#line 2406 "parse.y" + { (*yyvalp).itype = allow_function_calls (0); ;} + break; + +- case 617: +-#line 2362 "parse.y" ++ case 626: ++#line 2408 "parse.y" + { +- allow_function_calls (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.itype); +- (*yyvalp).ttype = build_call_or_cast (((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ++ allow_function_calls (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.itype); ++ (*yyvalp).ttype = build_call_or_cast (yyvsp[YYFILL (-4)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); + ;} + break; + +- case 618: +-#line 2367 "parse.y" +- { chk_dialect ("type casts are", B_D_M_PASCAL); (*yyvalp).ttype = build_type_cast (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++ case 627: ++#line 2413 "parse.y" ++ { chk_dialect ("type casts are", B_D_M_PASCAL); (*yyvalp).ttype = build_type_cast (yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 619: +-#line 2369 "parse.y" +- { (*yyvalp).ttype = build_predef_call (p_FormatString, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++ case 628: ++#line 2415 "parse.y" ++ { (*yyvalp).ttype = build_predef_call (p_FormatString, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 620: +-#line 2371 "parse.y" ++ case 629: ++#line 2417 "parse.y" + { (*yyvalp).itype = allow_function_calls (0); ;} + break; + +- case 621: +-#line 2373 "parse.y" ++ case 630: ++#line 2419 "parse.y" + { +- (*yyvalp).ttype = build_predef_call (p_Assigned, build_tree_list (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype)); +- allow_function_calls (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.itype); ++ (*yyvalp).ttype = build_predef_call (p_Assigned, build_tree_list (NULL_TREE, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype)); ++ allow_function_calls (yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.itype); + ;} + break; + +- case 622: +-#line 2378 "parse.y" +- { (*yyvalp).ttype = build_pascal_address_expression (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype, co->pascal_dialect & B_D_PASCAL); ;} ++ case 631: ++#line 2424 "parse.y" ++ { (*yyvalp).ttype = build_pascal_address_expression (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype, co->pascal_dialect & B_D_PASCAL); ;} + break; + +- case 623: +-#line 2380 "parse.y" +- { (*yyvalp).ttype = build_predef_call (IDENTIFIER_BUILT_IN_VALUE (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype)->symbol, build_tree_list (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype)); ;} ++ case 632: ++#line 2426 "parse.y" ++ { (*yyvalp).ttype = build_predef_call (IDENTIFIER_BUILT_IN_VALUE (yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype)->symbol, build_tree_list (NULL_TREE, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype)); ;} + break; + +- case 624: +-#line 2382 "parse.y" +- { (*yyvalp).ttype = build_predef_call (p_New, build_tree_list (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype)); ;} ++ case 633: ++#line 2428 "parse.y" ++ { (*yyvalp).ttype = build_predef_call (p_New, build_tree_list (NULL_TREE, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype)); ;} + break; + +- case 625: +-#line 2384 "parse.y" ++ case 634: ++#line 2430 "parse.y" + { + current_structor_object_type = NULL_TREE; +- if (TREE_CODE (TREE_TYPE (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype)) == POINTER_TYPE && PASCAL_TYPE_OBJECT (TREE_TYPE (TREE_TYPE (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype)))) ++ if (TREE_CODE (TREE_TYPE (yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype)) == POINTER_TYPE && PASCAL_TYPE_OBJECT (TREE_TYPE (TREE_TYPE (yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype)))) + { + error ("invalid arguments to object `New'"); + (*yyvalp).ttype = error_mark_node; + } + else +- (*yyvalp).ttype = build_predef_call (p_New, tree_cons (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype)); ++ (*yyvalp).ttype = build_predef_call (p_New, tree_cons (NULL_TREE, yyvsp[YYFILL (-3)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype)); + ;} + break; + +- case 626: +-#line 2395 "parse.y" +- { (*yyvalp).ttype = build_predef_call (p_New, tree_cons (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval.ttype, tree_cons (NULL_TREE, ((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype))); ;} ++ case 635: ++#line 2441 "parse.y" ++ { (*yyvalp).ttype = build_predef_call (p_New, tree_cons (NULL_TREE, yyvsp[YYFILL (-4)].yystate.yysemantics.yysval.ttype, tree_cons (NULL_TREE, yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype))); ;} + break; + +- case 627: +-#line 2400 "parse.y" +- { (*yyvalp).ttype = set_structor_object (iso_no_parentheses (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype), 1); ;} ++ case 636: ++#line 2446 "parse.y" ++ { (*yyvalp).ttype = set_structor_object (iso_no_parentheses (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype), 1); ;} + break; + +- case 629: +-#line 2406 "parse.y" +- { (*yyvalp).ttype = TYPE_NAME (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 638: ++#line 2452 "parse.y" ++ { (*yyvalp).ttype = TYPE_NAME (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 631: +-#line 2412 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); yyerrok; ;} ++ case 640: ++#line 2458 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); yyerrok; ;} + break; + +- case 632: +-#line 2414 "parse.y" ++ case 641: ++#line 2460 "parse.y" + { error ("missing index expression"); (*yyvalp).ttype = NULL_TREE; ;} + break; + +- case 633: +-#line 2416 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); error ("missing comma"); yyerrok; ;} ++ case 642: ++#line 2462 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); error ("missing comma"); yyerrok; ;} + break; + +- case 634: +-#line 2418 "parse.y" ++ case 643: ++#line 2464 "parse.y" + { error ("extra comma"); ;} + break; + +- case 635: +-#line 2423 "parse.y" +- { (*yyvalp).ttype = build_tree_list (NULL_TREE, string_may_be_char (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, 1)); ;} ++ case 644: ++#line 2469 "parse.y" ++ { (*yyvalp).ttype = build_tree_list (NULL_TREE, string_may_be_char (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, 1)); ;} + break; + +- case 636: +-#line 2425 "parse.y" ++ case 645: ++#line 2471 "parse.y" + { + chk_dialect ("substring access is", E_O_PASCAL); +- (*yyvalp).ttype = build_tree_list (string_may_be_char (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, 1), string_may_be_char (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, 1)); ++ (*yyvalp).ttype = build_tree_list (string_may_be_char (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, 1), string_may_be_char (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, 1)); + ;} + break; + +- case 637: +-#line 2433 "parse.y" ++ case 646: ++#line 2479 "parse.y" + { (*yyvalp).ttype = build_set_constructor (NULL_TREE); ;} + break; + +- case 638: +-#line 2435 "parse.y" +- { (*yyvalp).ttype = build_set_constructor (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} ++ case 647: ++#line 2481 "parse.y" ++ { (*yyvalp).ttype = build_set_constructor (yyvsp[YYFILL (-1)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 640: +-#line 2441 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); yyerrok; ;} ++ case 649: ++#line 2487 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); yyerrok; ;} + break; + +- case 641: +-#line 2443 "parse.y" +- { (*yyvalp).ttype = chainon (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); error ("missing comma"); yyerrok; ;} ++ case 650: ++#line 2489 "parse.y" ++ { (*yyvalp).ttype = chainon (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); error ("missing comma"); yyerrok; ;} + break; + +- case 642: +-#line 2445 "parse.y" ++ case 651: ++#line 2491 "parse.y" + { error ("extra comma"); ;} + break; + +- case 643: +-#line 2450 "parse.y" +- { (*yyvalp).ttype = construct_set_member (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE); ;} ++ case 652: ++#line 2496 "parse.y" ++ { (*yyvalp).ttype = construct_set_member (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, NULL_TREE); ;} + break; + +- case 644: +-#line 2452 "parse.y" +- { (*yyvalp).ttype = construct_set_member (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 653: ++#line 2498 "parse.y" ++ { (*yyvalp).ttype = construct_set_member (yyvsp[YYFILL (-2)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 645: +-#line 2458 "parse.y" ++ case 654: ++#line 2504 "parse.y" + { (*yyvalp).code = CONVERT_EXPR; ;} + break; + +- case 646: +-#line 2459 "parse.y" ++ case 655: ++#line 2505 "parse.y" + { (*yyvalp).code = NEGATE_EXPR; ;} + break; + +- case 647: +-#line 2463 "parse.y" ++ case 656: ++#line 2509 "parse.y" + { (*yyvalp).code = CONVERT_EXPR; ;} + break; + +- case 648: +-#line 2464 "parse.y" ++ case 657: ++#line 2510 "parse.y" + { (*yyvalp).code = NEGATE_EXPR; ;} + break; + +- case 649: +-#line 2465 "parse.y" ++ case 658: ++#line 2511 "parse.y" + { (*yyvalp).code = TRUTH_NOT_EXPR; ;} + break; + +- case 650: +-#line 2469 "parse.y" ++ case 659: ++#line 2515 "parse.y" + { (*yyvalp).code = NE_EXPR; ;} + break; + +- case 651: +-#line 2470 "parse.y" ++ case 660: ++#line 2516 "parse.y" + { (*yyvalp).code = LE_EXPR; ;} + break; + +- case 652: +-#line 2471 "parse.y" ++ case 661: ++#line 2517 "parse.y" + { (*yyvalp).code = GE_EXPR; ;} + break; + +- case 653: +-#line 2472 "parse.y" ++ case 662: ++#line 2518 "parse.y" + { (*yyvalp).code = EQ_EXPR; ;} + break; + +- case 654: +-#line 2473 "parse.y" ++ case 663: ++#line 2519 "parse.y" + { (*yyvalp).code = LT_EXPR; ;} + break; + +- case 655: +-#line 2474 "parse.y" ++ case 664: ++#line 2520 "parse.y" + { (*yyvalp).code = GT_EXPR; ;} + break; + +- case 656: +-#line 2475 "parse.y" ++ case 665: ++#line 2521 "parse.y" + { (*yyvalp).code = IN_EXPR; ;} + break; + +- case 657: +-#line 2479 "parse.y" ++ case 666: ++#line 2525 "parse.y" + { (*yyvalp).code = PLUS_EXPR; ;} + break; + +- case 658: +-#line 2480 "parse.y" ++ case 667: ++#line 2526 "parse.y" + { (*yyvalp).code = PLUS_EXPR; ;} + break; + +- case 659: +-#line 2481 "parse.y" ++ case 668: ++#line 2527 "parse.y" + { (*yyvalp).code = MINUS_EXPR; ;} + break; + +- case 660: +-#line 2482 "parse.y" ++ case 669: ++#line 2528 "parse.y" + { (*yyvalp).code = MINUS_EXPR; ;} + break; + +- case 661: +-#line 2483 "parse.y" ++ case 670: ++#line 2529 "parse.y" + { (*yyvalp).code = TRUTH_XOR_EXPR; ;} + break; + +- case 662: +-#line 2484 "parse.y" ++ case 671: ++#line 2530 "parse.y" + { (*yyvalp).code = SYMDIFF_EXPR; ;} + break; + +- case 663: +-#line 2488 "parse.y" ++ case 672: ++#line 2534 "parse.y" + { (*yyvalp).ttype = get_identifier_with_spelling ("CeilPlus", "+>"); ;} + break; + +- case 664: +-#line 2489 "parse.y" ++ case 673: ++#line 2535 "parse.y" + { (*yyvalp).ttype = get_identifier_with_spelling ("CeilMinus", "->"); ;} + break; + +- case 665: +-#line 2490 "parse.y" ++ case 674: ++#line 2536 "parse.y" + { (*yyvalp).ttype = get_identifier_with_spelling ("FloorPlus", "+<"); ;} + break; + +- case 666: +-#line 2491 "parse.y" ++ case 675: ++#line 2537 "parse.y" + { (*yyvalp).ttype = get_identifier_with_spelling ("FloorMinus", "-<"); ;} + break; + +- case 667: +-#line 2496 "parse.y" ++ case 676: ++#line 2542 "parse.y" + { chk_dialect ("`or else' (without underscore) is", GNU_PASCAL); ;} + break; + +- case 668: +-#line 2497 "parse.y" ++ case 677: ++#line 2543 "parse.y" + { ;} + break; + +- case 669: +-#line 2501 "parse.y" ++ case 678: ++#line 2547 "parse.y" + { (*yyvalp).code = MULT_EXPR; ;} + break; + +- case 670: +-#line 2502 "parse.y" ++ case 679: ++#line 2548 "parse.y" + { (*yyvalp).code = RDIV_EXPR; ;} + break; + +- case 671: +-#line 2503 "parse.y" ++ case 680: ++#line 2549 "parse.y" + { (*yyvalp).code = TRUNC_DIV_EXPR; ;} + break; + +- case 672: +-#line 2504 "parse.y" ++ case 681: ++#line 2550 "parse.y" + { (*yyvalp).code = (co->pascal_dialect & B_D_M_PASCAL) ? TRUNC_MOD_EXPR : FLOOR_MOD_EXPR; ;} + break; + +- case 673: +-#line 2505 "parse.y" ++ case 682: ++#line 2551 "parse.y" + { (*yyvalp).code = LSHIFT_EXPR; ;} + break; + +- case 674: +-#line 2506 "parse.y" ++ case 683: ++#line 2552 "parse.y" + { (*yyvalp).code = RSHIFT_EXPR; ;} + break; + +- case 675: +-#line 2510 "parse.y" ++ case 684: ++#line 2556 "parse.y" + { (*yyvalp).ttype = get_identifier_with_spelling ("CeilMult", "*>"); ;} + break; + +- case 676: +-#line 2511 "parse.y" ++ case 685: ++#line 2557 "parse.y" + { (*yyvalp).ttype = get_identifier_with_spelling ("CeilRDiv", "/>"); ;} + break; + +- case 677: +-#line 2512 "parse.y" ++ case 686: ++#line 2558 "parse.y" + { (*yyvalp).ttype = get_identifier_with_spelling ("FloorMult", "*<"); ;} + break; + +- case 678: +-#line 2513 "parse.y" ++ case 687: ++#line 2559 "parse.y" + { (*yyvalp).ttype = get_identifier_with_spelling ("FloorRDiv", "/<"); ;} + break; + +- case 679: +-#line 2518 "parse.y" ++ case 688: ++#line 2564 "parse.y" + { chk_dialect ("`and then' (without underscore) is", GNU_PASCAL); ;} + break; + +- case 680: +-#line 2519 "parse.y" ++ case 689: ++#line 2565 "parse.y" + { ;} + break; + +- case 681: +-#line 2526 "parse.y" +- { (*yyvalp).itype = IDENTIFIER_BUILT_IN_VALUE (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype)->symbol; ;} ++ case 690: ++#line 2572 "parse.y" ++ { (*yyvalp).itype = IDENTIFIER_BUILT_IN_VALUE (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype)->symbol; ;} + break; + +- case 682: +-#line 2528 "parse.y" ++ case 691: ++#line 2574 "parse.y" + { (*yyvalp).itype = p_and; ;} + break; + +- case 683: +-#line 2529 "parse.y" ++ case 692: ++#line 2575 "parse.y" + { (*yyvalp).itype = p_or; ;} + break; + +- case 684: +-#line 2530 "parse.y" ++ case 693: ++#line 2576 "parse.y" + { (*yyvalp).itype = p_not; ;} + break; + +- case 685: +-#line 2531 "parse.y" ++ case 694: ++#line 2577 "parse.y" + { (*yyvalp).itype = p_xor; ;} + break; + +- case 686: +-#line 2532 "parse.y" ++ case 695: ++#line 2578 "parse.y" + { (*yyvalp).itype = p_shl; ;} + break; + +- case 687: +-#line 2533 "parse.y" ++ case 696: ++#line 2579 "parse.y" + { (*yyvalp).itype = p_shr; ;} + break; + +- case 688: +-#line 2539 "parse.y" ++ case 697: ++#line 2585 "parse.y" + { (*yyvalp).ttype = get_identifier_with_spelling ("BPlus", "+"); ;} + break; + +- case 689: +-#line 2540 "parse.y" ++ case 698: ++#line 2586 "parse.y" + { (*yyvalp).ttype = get_identifier_with_spelling ("BPlus", "+"); ;} + break; + +- case 690: +-#line 2541 "parse.y" ++ case 699: ++#line 2587 "parse.y" + { (*yyvalp).ttype = get_identifier_with_spelling ("BMinus", "-"); ;} + break; + +- case 691: +-#line 2542 "parse.y" ++ case 700: ++#line 2588 "parse.y" + { (*yyvalp).ttype = get_identifier_with_spelling ("BMinus", "-"); ;} + break; + +- case 692: +-#line 2543 "parse.y" ++ case 701: ++#line 2589 "parse.y" + { (*yyvalp).ttype = get_identifier_with_spelling ("BMult", "*"); ;} + break; + +- case 693: +-#line 2544 "parse.y" ++ case 702: ++#line 2590 "parse.y" + { (*yyvalp).ttype = get_identifier_with_spelling ("RDiv", "/"); ;} + break; + +- case 694: +-#line 2545 "parse.y" ++ case 703: ++#line 2591 "parse.y" + { (*yyvalp).ttype = get_identifier ("Div"); ;} + break; + +- case 695: +-#line 2546 "parse.y" ++ case 704: ++#line 2592 "parse.y" + { (*yyvalp).ttype = get_identifier ("Mod"); ;} + break; + +- case 696: +-#line 2547 "parse.y" ++ case 705: ++#line 2593 "parse.y" + { (*yyvalp).ttype = get_identifier_with_spelling ("RPower", "**"); ;} + break; + +- case 697: +-#line 2548 "parse.y" ++ case 706: ++#line 2594 "parse.y" + { (*yyvalp).ttype = get_identifier ("In"); ;} + break; + +- case 698: +-#line 2549 "parse.y" ++ case 707: ++#line 2595 "parse.y" + { (*yyvalp).ttype = get_identifier_with_spelling ("LT", "<"); ;} + break; + +- case 699: +-#line 2550 "parse.y" ++ case 708: ++#line 2596 "parse.y" + { (*yyvalp).ttype = get_identifier_with_spelling ("EQ", "="); ;} + break; + +- case 700: +-#line 2551 "parse.y" ++ case 709: ++#line 2597 "parse.y" + { (*yyvalp).ttype = get_identifier_with_spelling ("GT", ">"); ;} + break; + +- case 701: +-#line 2552 "parse.y" ++ case 710: ++#line 2598 "parse.y" + { (*yyvalp).ttype = get_identifier_with_spelling ("NE", "<>"); ;} + break; + +- case 702: +-#line 2553 "parse.y" ++ case 711: ++#line 2599 "parse.y" + { (*yyvalp).ttype = get_identifier_with_spelling ("GE", ">="); ;} + break; + +- case 703: +-#line 2554 "parse.y" ++ case 712: ++#line 2600 "parse.y" + { (*yyvalp).ttype = get_identifier_with_spelling ("LE", "<="); ;} + break; + +- case 704: +-#line 2555 "parse.y" ++ case 713: ++#line 2601 "parse.y" + { (*yyvalp).ttype = get_identifier ("And"); ;} + break; + +- case 705: +-#line 2556 "parse.y" ++ case 714: ++#line 2602 "parse.y" + { (*yyvalp).ttype = get_identifier ("Or"); ;} + break; + +- case 706: +-#line 2557 "parse.y" ++ case 715: ++#line 2603 "parse.y" + { (*yyvalp).ttype = get_identifier_with_spelling ("SymDiff", "<>"); ;} + break; + +- case 709: +-#line 2564 "parse.y" ++ case 718: ++#line 2610 "parse.y" + { warn_about_keyword_redeclaration ((*yyvalp).ttype, 1); ;} + break; + +- case 719: +-#line 2582 "parse.y" ++ case 728: ++#line 2628 "parse.y" + { warn_about_keyword_redeclaration ((*yyvalp).ttype, 1); ;} + break; + +- case 723: +-#line 2594 "parse.y" ++ case 732: ++#line 2640 "parse.y" + { warn_about_keyword_redeclaration ((*yyvalp).ttype, 1); ;} + break; + +- case 763: +-#line 2641 "parse.y" +- { (*yyvalp).ttype = check_identifier (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} ++ case 772: ++#line 2687 "parse.y" ++ { (*yyvalp).ttype = check_identifier (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype); ;} + break; + +- case 769: +-#line 2654 "parse.y" +- { char c = ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.itype; (*yyvalp).ttype = make_identifier (&c, 1); ;} ++ case 778: ++#line 2700 "parse.y" ++ { char c = yyvsp[YYFILL (0)].yystate.yysemantics.yysval.itype; (*yyvalp).ttype = make_identifier (&c, 1); ;} + break; + +- case 770: +-#line 2661 "parse.y" ++ case 779: ++#line 2707 "parse.y" + { pushlevel_expand (); ;} + break; + +- case 771: +-#line 2666 "parse.y" ++ case 780: ++#line 2712 "parse.y" + { poplevel_expand (0, 1); ;} + break; + +- case 772: +-#line 2671 "parse.y" ++ case 781: ++#line 2717 "parse.y" + { + #ifndef EGCS97 + push_obstacks_nochange (); +@@ -7601,43 +7788,43 @@ + ;} + break; + +- case 773: +-#line 2681 "parse.y" ++ case 782: ++#line 2727 "parse.y" + { lex_const_equal = 0; ;} + break; + +- case 774: +-#line 2686 "parse.y" +- { ASSERT_ID (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval.ttype, ((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yyloc, p_protected); ;} ++ case 783: ++#line 2732 "parse.y" ++ { ASSERT_ID (yyvsp[YYFILL (0)].yystate.yysemantics.yysval.ttype, yyvsp[YYFILL (0)].yystate.yyloc, p_protected); ;} + break; + +- case 775: +-#line 2691 "parse.y" ++ case 784: ++#line 2737 "parse.y" + { yyerrok; ;} + break; + +- case 776: +-#line 2693 "parse.y" ++ case 785: ++#line 2739 "parse.y" + { yyerrok; ;} + break; + +- case 783: +-#line 2710 "parse.y" ++ case 792: ++#line 2756 "parse.y" + { error ("missing `)'"); ;} + break; + +- case 785: +-#line 2716 "parse.y" ++ case 794: ++#line 2762 "parse.y" + { warning ("missing `.' at the end of program/unit/module"); ;} + break; + +- case 786: +-#line 2721 "parse.y" ++ case 795: ++#line 2767 "parse.y" + { (*yyvalp).ttype = NULL_TREE; ;} + break; + +- case 787: +-#line 2726 "parse.y" ++ case 796: ++#line 2772 "parse.y" + { (*yyvalp).ttype = error_mark_node; ;} + break; + +@@ -7653,7 +7840,7 @@ + # undef yyclearin + # undef YYRECOVERING + /* Line 738 of glr.c. */ +-#line 7657 "parse.c" ++#line 7844 "parse.c" + } + + +@@ -8921,7 +9108,7 @@ + } + + +-#line 2729 "parse.y" ++#line 2775 "parse.y" + + + /* Lexical analyzer moved to gpc-lex.c */ +@@ -9005,7 +9192,16 @@ + parser in the right places causes some conflicts (especially assignments + with nontrivial expressions on their left side are problematic). */ + if (current_function_decl) ++#ifndef GCC_3_4 + emit_line_note (dest->first_file, dest->first_line); ++#else ++ { ++ location_t loc_aux; ++ loc_aux.file = dest->first_file; ++ loc_aux.line = dest->first_line; ++ emit_line_note (loc_aux); ++ } ++#endif + } + dest->option_id = 0; + for (i = 1; i <= n; i++) +--- gpc-20040516.orig/p/parse.h Sun May 16 18:03:16 2004 ++++ gpc-20040516/p/parse.h Thu Jul 8 22:04:58 2004 +@@ -24,247 +24,249 @@ + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { +- prec_if = 258, +- prec_lower_than_error = 259, +- prec_import = 260, +- p_operator = 261, +- p_destructor = 262, +- p_constructor = 263, +- p_implementation = 264, +- p_uses = 265, +- p_else = 266, +- p_and = 267, +- p_array = 268, +- p_begin = 269, +- p_case = 270, +- p_div = 271, +- p_do = 272, +- p_downto = 273, +- p_end = 274, +- p_file = 275, +- p_for = 276, +- p_function = 277, +- p_goto = 278, +- p_if = 279, +- p_in = 280, +- p_label = 281, +- p_mod = 282, +- p_nil = 283, +- p_not = 284, +- p_of = 285, +- p_or = 286, +- p_packed = 287, +- p_procedure = 288, +- p_to = 289, +- p_program = 290, +- p_record = 291, +- p_repeat = 292, +- p_set = 293, +- p_then = 294, +- p_type = 295, +- p_until = 296, +- p_var = 297, +- p_while = 298, +- p_with = 299, +- p_absolute = 300, +- p_abstract = 301, +- p_and_then = 302, +- p_as = 303, +- p_asm = 304, +- p_attribute = 305, +- p_bindable = 306, +- p_const = 307, +- p_external = 308, +- p_far = 309, +- p_finalization = 310, +- p_forward = 311, +- p_import = 312, +- p_inherited = 313, +- p_initialization = 314, +- p_is = 315, +- p_near = 316, +- p_object = 317, +- p_only = 318, +- p_otherwise = 319, +- p_or_else = 320, +- p_pow = 321, +- p_restricted = 322, +- p_shl = 323, +- p_shr = 324, +- p_unit = 325, +- p_value = 326, +- p_virtual = 327, +- p_xor = 328, +- p_asmname = 329, +- p_c = 330, +- p_c_language = 331, +- p_Addr = 332, +- p_Assigned = 333, +- p_Dispose = 334, +- p_FormatString = 335, +- p_New = 336, +- p_Return = 337, +- LEX_ID = 338, +- LEX_BUILTIN_PROCEDURE = 339, +- LEX_BUILTIN_PROCEDURE_WRITE = 340, +- LEX_BUILTIN_FUNCTION = 341, +- LEX_BUILTIN_FUNCTION_VT = 342, +- LEX_BUILTIN_VARIABLE = 343, +- LEX_INTCONST = 344, +- LEX_INTCONST_BASE = 345, +- LEX_STRCONST = 346, +- LEX_REALCONST = 347, +- LEX_CARET_WHITE = 348, +- LEX_STRUCTOR = 349, +- LEX_CARET_LETTER = 350, +- LEX_CONST_EQUAL = 351, +- LEX_BPPLUS = 352, +- LEX_BPMINUS = 353, +- LEX_RANGE = 354, +- LEX_ELLIPSIS = 355, +- LEX_RENAME = 356, +- LEX_SYMDIFF = 357, +- LEX_ASSIGN = 358, +- LEX_NE = 359, +- LEX_GE = 360, +- LEX_LE = 361, +- LEX_POWER = 362, +- LEX_CEIL_PLUS = 363, +- LEX_CEIL_MINUS = 364, +- LEX_FLOOR_PLUS = 365, +- LEX_FLOOR_MINUS = 366, +- LEX_CEIL_MULT = 367, +- LEX_CEIL_DIV = 368, +- LEX_FLOOR_MULT = 369, +- LEX_FLOOR_DIV = 370 ++ prec_id = 258, ++ prec_if = 259, ++ prec_lower_than_error = 260, ++ prec_import = 261, ++ p_operator = 262, ++ p_destructor = 263, ++ p_constructor = 264, ++ p_implementation = 265, ++ p_initialization = 266, ++ p_uses = 267, ++ p_else = 268, ++ p_and = 269, ++ p_array = 270, ++ p_begin = 271, ++ p_case = 272, ++ p_div = 273, ++ p_do = 274, ++ p_downto = 275, ++ p_end = 276, ++ p_file = 277, ++ p_for = 278, ++ p_function = 279, ++ p_goto = 280, ++ p_if = 281, ++ p_in = 282, ++ p_label = 283, ++ p_mod = 284, ++ p_nil = 285, ++ p_not = 286, ++ p_of = 287, ++ p_or = 288, ++ p_packed = 289, ++ p_procedure = 290, ++ p_to = 291, ++ p_program = 292, ++ p_record = 293, ++ p_repeat = 294, ++ p_set = 295, ++ p_then = 296, ++ p_type = 297, ++ p_until = 298, ++ p_var = 299, ++ p_while = 300, ++ p_with = 301, ++ p_absolute = 302, ++ p_abstract = 303, ++ p_and_then = 304, ++ p_as = 305, ++ p_asm = 306, ++ p_attribute = 307, ++ p_bindable = 308, ++ p_const = 309, ++ p_external = 310, ++ p_far = 311, ++ p_finalization = 312, ++ p_forward = 313, ++ p_import = 314, ++ p_inherited = 315, ++ p_is = 316, ++ p_near = 317, ++ p_object = 318, ++ p_only = 319, ++ p_otherwise = 320, ++ p_or_else = 321, ++ p_pow = 322, ++ p_restricted = 323, ++ p_shl = 324, ++ p_shr = 325, ++ p_unit = 326, ++ p_value = 327, ++ p_virtual = 328, ++ p_xor = 329, ++ p_asmname = 330, ++ p_c = 331, ++ p_c_language = 332, ++ p_Addr = 333, ++ p_Assigned = 334, ++ p_Dispose = 335, ++ p_FormatString = 336, ++ p_New = 337, ++ p_Return = 338, ++ LEX_ID = 339, ++ LEX_BUILTIN_PROCEDURE = 340, ++ LEX_BUILTIN_PROCEDURE_WRITE = 341, ++ LEX_BUILTIN_FUNCTION = 342, ++ LEX_BUILTIN_FUNCTION_VT = 343, ++ LEX_BUILTIN_VARIABLE = 344, ++ LEX_INTCONST = 345, ++ LEX_INTCONST_BASE = 346, ++ LEX_STRCONST = 347, ++ LEX_REALCONST = 348, ++ LEX_CARET_WHITE = 349, ++ LEX_STRUCTOR = 350, ++ LEX_CARET_LETTER = 351, ++ LEX_CONST_EQUAL = 352, ++ LEX_BPPLUS = 353, ++ LEX_BPMINUS = 354, ++ LEX_RANGE = 355, ++ LEX_ELLIPSIS = 356, ++ LEX_RENAME = 357, ++ LEX_SYMDIFF = 358, ++ LEX_ASSIGN = 359, ++ LEX_NE = 360, ++ LEX_GE = 361, ++ LEX_LE = 362, ++ LEX_POWER = 363, ++ LEX_CEIL_PLUS = 364, ++ LEX_CEIL_MINUS = 365, ++ LEX_FLOOR_PLUS = 366, ++ LEX_FLOOR_MINUS = 367, ++ LEX_CEIL_MULT = 368, ++ LEX_CEIL_DIV = 369, ++ LEX_FLOOR_MULT = 370, ++ LEX_FLOOR_DIV = 371 + }; + #endif +-#define prec_if 258 +-#define prec_lower_than_error 259 +-#define prec_import 260 +-#define p_operator 261 +-#define p_destructor 262 +-#define p_constructor 263 +-#define p_implementation 264 +-#define p_uses 265 +-#define p_else 266 +-#define p_and 267 +-#define p_array 268 +-#define p_begin 269 +-#define p_case 270 +-#define p_div 271 +-#define p_do 272 +-#define p_downto 273 +-#define p_end 274 +-#define p_file 275 +-#define p_for 276 +-#define p_function 277 +-#define p_goto 278 +-#define p_if 279 +-#define p_in 280 +-#define p_label 281 +-#define p_mod 282 +-#define p_nil 283 +-#define p_not 284 +-#define p_of 285 +-#define p_or 286 +-#define p_packed 287 +-#define p_procedure 288 +-#define p_to 289 +-#define p_program 290 +-#define p_record 291 +-#define p_repeat 292 +-#define p_set 293 +-#define p_then 294 +-#define p_type 295 +-#define p_until 296 +-#define p_var 297 +-#define p_while 298 +-#define p_with 299 +-#define p_absolute 300 +-#define p_abstract 301 +-#define p_and_then 302 +-#define p_as 303 +-#define p_asm 304 +-#define p_attribute 305 +-#define p_bindable 306 +-#define p_const 307 +-#define p_external 308 +-#define p_far 309 +-#define p_finalization 310 +-#define p_forward 311 +-#define p_import 312 +-#define p_inherited 313 +-#define p_initialization 314 +-#define p_is 315 +-#define p_near 316 +-#define p_object 317 +-#define p_only 318 +-#define p_otherwise 319 +-#define p_or_else 320 +-#define p_pow 321 +-#define p_restricted 322 +-#define p_shl 323 +-#define p_shr 324 +-#define p_unit 325 +-#define p_value 326 +-#define p_virtual 327 +-#define p_xor 328 +-#define p_asmname 329 +-#define p_c 330 +-#define p_c_language 331 +-#define p_Addr 332 +-#define p_Assigned 333 +-#define p_Dispose 334 +-#define p_FormatString 335 +-#define p_New 336 +-#define p_Return 337 +-#define LEX_ID 338 +-#define LEX_BUILTIN_PROCEDURE 339 +-#define LEX_BUILTIN_PROCEDURE_WRITE 340 +-#define LEX_BUILTIN_FUNCTION 341 +-#define LEX_BUILTIN_FUNCTION_VT 342 +-#define LEX_BUILTIN_VARIABLE 343 +-#define LEX_INTCONST 344 +-#define LEX_INTCONST_BASE 345 +-#define LEX_STRCONST 346 +-#define LEX_REALCONST 347 +-#define LEX_CARET_WHITE 348 +-#define LEX_STRUCTOR 349 +-#define LEX_CARET_LETTER 350 +-#define LEX_CONST_EQUAL 351 +-#define LEX_BPPLUS 352 +-#define LEX_BPMINUS 353 +-#define LEX_RANGE 354 +-#define LEX_ELLIPSIS 355 +-#define LEX_RENAME 356 +-#define LEX_SYMDIFF 357 +-#define LEX_ASSIGN 358 +-#define LEX_NE 359 +-#define LEX_GE 360 +-#define LEX_LE 361 +-#define LEX_POWER 362 +-#define LEX_CEIL_PLUS 363 +-#define LEX_CEIL_MINUS 364 +-#define LEX_FLOOR_PLUS 365 +-#define LEX_FLOOR_MINUS 366 +-#define LEX_CEIL_MULT 367 +-#define LEX_CEIL_DIV 368 +-#define LEX_FLOOR_MULT 369 +-#define LEX_FLOOR_DIV 370 ++#define prec_id 258 ++#define prec_if 259 ++#define prec_lower_than_error 260 ++#define prec_import 261 ++#define p_operator 262 ++#define p_destructor 263 ++#define p_constructor 264 ++#define p_implementation 265 ++#define p_initialization 266 ++#define p_uses 267 ++#define p_else 268 ++#define p_and 269 ++#define p_array 270 ++#define p_begin 271 ++#define p_case 272 ++#define p_div 273 ++#define p_do 274 ++#define p_downto 275 ++#define p_end 276 ++#define p_file 277 ++#define p_for 278 ++#define p_function 279 ++#define p_goto 280 ++#define p_if 281 ++#define p_in 282 ++#define p_label 283 ++#define p_mod 284 ++#define p_nil 285 ++#define p_not 286 ++#define p_of 287 ++#define p_or 288 ++#define p_packed 289 ++#define p_procedure 290 ++#define p_to 291 ++#define p_program 292 ++#define p_record 293 ++#define p_repeat 294 ++#define p_set 295 ++#define p_then 296 ++#define p_type 297 ++#define p_until 298 ++#define p_var 299 ++#define p_while 300 ++#define p_with 301 ++#define p_absolute 302 ++#define p_abstract 303 ++#define p_and_then 304 ++#define p_as 305 ++#define p_asm 306 ++#define p_attribute 307 ++#define p_bindable 308 ++#define p_const 309 ++#define p_external 310 ++#define p_far 311 ++#define p_finalization 312 ++#define p_forward 313 ++#define p_import 314 ++#define p_inherited 315 ++#define p_is 316 ++#define p_near 317 ++#define p_object 318 ++#define p_only 319 ++#define p_otherwise 320 ++#define p_or_else 321 ++#define p_pow 322 ++#define p_restricted 323 ++#define p_shl 324 ++#define p_shr 325 ++#define p_unit 326 ++#define p_value 327 ++#define p_virtual 328 ++#define p_xor 329 ++#define p_asmname 330 ++#define p_c 331 ++#define p_c_language 332 ++#define p_Addr 333 ++#define p_Assigned 334 ++#define p_Dispose 335 ++#define p_FormatString 336 ++#define p_New 337 ++#define p_Return 338 ++#define LEX_ID 339 ++#define LEX_BUILTIN_PROCEDURE 340 ++#define LEX_BUILTIN_PROCEDURE_WRITE 341 ++#define LEX_BUILTIN_FUNCTION 342 ++#define LEX_BUILTIN_FUNCTION_VT 343 ++#define LEX_BUILTIN_VARIABLE 344 ++#define LEX_INTCONST 345 ++#define LEX_INTCONST_BASE 346 ++#define LEX_STRCONST 347 ++#define LEX_REALCONST 348 ++#define LEX_CARET_WHITE 349 ++#define LEX_STRUCTOR 350 ++#define LEX_CARET_LETTER 351 ++#define LEX_CONST_EQUAL 352 ++#define LEX_BPPLUS 353 ++#define LEX_BPMINUS 354 ++#define LEX_RANGE 355 ++#define LEX_ELLIPSIS 356 ++#define LEX_RENAME 357 ++#define LEX_SYMDIFF 358 ++#define LEX_ASSIGN 359 ++#define LEX_NE 360 ++#define LEX_GE 361 ++#define LEX_LE 362 ++#define LEX_POWER 363 ++#define LEX_CEIL_PLUS 364 ++#define LEX_CEIL_MINUS 365 ++#define LEX_FLOOR_PLUS 366 ++#define LEX_FLOOR_MINUS 367 ++#define LEX_CEIL_MULT 368 ++#define LEX_CEIL_DIV 369 ++#define LEX_FLOOR_MULT 370 ++#define LEX_FLOOR_DIV 371 + + + + + #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) +-#line 103 "parse.y" ++#line 115 "parse.y" + typedef union YYSTYPE { + enum tree_code code; + long itype; + tree ttype; + } YYSTYPE; + /* Line 2039 of glr.c. */ +-#line 268 "parse.h" ++#line 270 "parse.h" + # define YYSTYPE_IS_DECLARED 1 + # define YYSTYPE_IS_TRIVIAL 1 + #endif --- gcc-3.4-3.4.3.orig/debian/patches/rename-info-files.dpatch +++ gcc-3.4-3.4.3/debian/patches/rename-info-files.dpatch @@ -0,0 +1,570 @@ +#! /bin/sh -e + +# DP: Allow transformations on info file names. Reference the +# DP: transformed info file names in the texinfo files. + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + + +gcc/ChangeLog: + +2004-02-17 Matthias Klose + + * Makefile.in: Allow transformations on info file names. + Define MAKEINFODEFS, macros to pass transformated info file + names to makeinfo. + * doc/cpp.texi: Use macros defined in MAKEINFODEFS for references. + * doc/cppinternals.texi: Likewise. + * doc/extend.texi: Likewise. + * doc/gcc.texi: Likewise. + * doc/gccint.texi: Likewise. + * doc/invoke.texi: Likewise. + * doc/libgcc.texi: Likewise. + * doc/makefile.texi: Likewise. + * doc/passes.texi: Likewise. + * doc/sourcebuild.texi: Likewise. + * doc/standards.texi: Likewise. + * doc/trouble.texi: Likewise. + +gcc/f/ChangeLog: + * Make-lang.in: Allow transformations on info file names. + Pass macros of transformated info file defined in MAKEINFODEFS + names to makeinfo. + * g77.texi: Use macros defined in MAKEINFODEFS for references. + +gcc/java/ChangeLog: + * Make-lang.in: Allow transformations on info file names. + Pass macros of transformated info file defined in MAKEINFODEFS + names to makeinfo. + * gcj.texi: Use macros defined in MAKEINFODEFS for references. + +gcc/treelang/ChangeLog: + * Make-lang.in: Allow transformations on info file names. + Pass macros of transformated info file defined in MAKEINFODEFS + names to makeinfo. + Define TREELANG_MAKEINFODEFS macros to pass transformated info file + names to makeinfo. + * treelang.texi: Use macros defined in MAKEINFO_DEFS for references. + + +diff -ur gcc.old/Makefile.in gcc/Makefile.in +--- gcc.old/Makefile.in 2004-02-06 08:03:12.000000000 +0100 ++++ gcc/Makefile.in 2004-02-21 13:28:52.000000000 +0100 +@@ -2615,8 +2615,24 @@ + + doc: $(BUILD_INFO) $(GENERATED_MANPAGES) gccbug + +-INFOFILES = doc/cpp.info doc/gcc.info doc/gccint.info \ +- doc/gccinstall.info doc/cppinternals.info ++INFO_CPP_NAME = $(shell echo cpp|sed '$(program_transform_name)') ++INFO_GCC_NAME = $(shell echo gcc|sed '$(program_transform_name)') ++INFO_GCCINT_NAME = $(shell echo gccint|sed '$(program_transform_name)') ++INFO_GCCINSTALL_NAME = $(shell echo gccinstall|sed '$(program_transform_name)') ++INFO_CPPINT_NAME = $(shell echo cppinternals|sed '$(program_transform_name)') ++ ++INFO_G77_NAME = $(shell echo g77|sed '$(program_transform_name)') ++INFO_GCJ_NAME = $(shell echo gcj|sed '$(program_transform_name)') ++ ++INFOFILES = doc/$(INFO_CPP_NAME).info doc/$(INFO_GCC_NAME).info \ ++ doc/$(INFO_GCCINT_NAME).info \ ++ doc/$(INFO_GCCINSTALL_NAME).info doc/$(INFO_CPPINT_NAME).info ++ ++MAKEINFODEFS = -D 'fncpp $(INFO_CPP_NAME)' -D 'fngcc $(INFO_GCC_NAME)' \ ++ -D 'fngccint $(INFO_GCCINT_NAME)' \ ++ -D 'fngccinstall $(INFO_GCCINSTALL_NAME)' \ ++ -D 'fncppint $(INFO_CPPINT_NAME)' \ ++ -D 'fng77 $(INFO_G77_NAME)' -D 'fngcj $(INFO_GCJ_NAME)' + + info: $(INFOFILES) lang.info @GENINSRC@ srcinfo lang.srcinfo + +@@ -2645,21 +2661,40 @@ + # patterns. To use them, put each of the specific target with with their + # specific dependencies but no build commands. + +-doc/cpp.info: $(TEXI_CPP_FILES) +-doc/gcc.info: $(TEXI_GCC_FILES) +-doc/gccint.info: $(TEXI_GCCINT_FILES) +-doc/cppinternals.info: $(TEXI_CPPINT_FILES) +- ++# Generic entry to handle info files, which are not renamed (currently Ada) + doc/%.info: %.texi + if [ x$(BUILD_INFO) = xinfo ]; then \ + $(MAKEINFO) $(MAKEINFOFLAGS) -I $(docdir) \ + -I $(docdir)/include -o $@ $<; \ + fi + +-# Duplicate entry to handle renaming of gccinstall.info +-doc/gccinstall.info: $(TEXI_GCCINSTALL_FILES) ++doc/$(INFO_CPP_NAME).info: $(TEXI_CPP_FILES) + if [ x$(BUILD_INFO) = xinfo ]; then \ +- $(MAKEINFO) $(MAKEINFOFLAGS) -I $(docdir) \ ++ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(docdir) \ ++ -I $(docdir)/include -o $@ $<; \ ++ fi ++ ++doc/$(INFO_GCC_NAME).info: $(TEXI_GCC_FILES) ++ if [ x$(BUILD_INFO) = xinfo ]; then \ ++ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(docdir) \ ++ -I $(docdir)/include -o $@ $<; \ ++ fi ++ ++doc/$(INFO_GCCINT_NAME).info: $(TEXI_GCCINT_FILES) ++ if [ x$(BUILD_INFO) = xinfo ]; then \ ++ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(docdir) \ ++ -I $(docdir)/include -o $@ $<; \ ++ fi ++ ++doc/$(INFO_CPPINT_NAME).info: $(TEXI_CPPINT_FILES) ++ if [ x$(BUILD_INFO) = xinfo ]; then \ ++ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(docdir) \ ++ -I $(docdir)/include -o $@ $<; \ ++ fi ++ ++doc/$(INFO_GCCINSTALL_NAME).info: $(TEXI_GCCINSTALL_FILES) ++ if [ x$(BUILD_INFO) = xinfo ]; then \ ++ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(docdir) \ + -I $(docdir)/include -o $@ $<; \ + fi + +@@ -2935,11 +2970,11 @@ + # $(INSTALL_DATA) might be a relative pathname, so we can't cd into srcdir + # to do the install. + install-info:: doc installdirs \ +- $(DESTDIR)$(infodir)/cpp.info \ +- $(DESTDIR)$(infodir)/gcc.info \ +- $(DESTDIR)$(infodir)/cppinternals.info \ +- $(DESTDIR)$(infodir)/gccinstall.info \ +- $(DESTDIR)$(infodir)/gccint.info ++ $(DESTDIR)$(infodir)/$(INFO_CPP_NAME).info \ ++ $(DESTDIR)$(infodir)/$(INFO_GCC_NAME).info \ ++ $(DESTDIR)$(infodir)/$(INFO_CPPINT_NAME).info \ ++ $(DESTDIR)$(infodir)/$(INFO_GCCINSTALL_NAME).info \ ++ $(DESTDIR)$(infodir)/$(INFO_GCCINT_NAME).info + + $(DESTDIR)$(infodir)/%.info: doc/%.info installdirs + rm -f $@ +@@ -3107,8 +3142,11 @@ + -rm -rf $(DESTDIR)$(man1dir)/cpp$(man1ext) + -rm -rf $(DESTDIR)$(man1dir)/protoize$(man1ext) + -rm -rf $(DESTDIR)$(man1dir)/unprotoize$(man1ext) +- -rm -f $(DESTDIR)$(infodir)/cpp.info* $(DESTDIR)$(infodir)/gcc.info* +- -rm -f $(DESTDIR)$(infodir)/cppinternals.info* $(DESTDIR)$(infodir)/gccint.info* ++ -rm -f $(DESTDIR)$(infodir)/$(INFO_CPP_NAME).info* ++ -rm -f $(DESTDIR)$(infodir)/$(INFO_GCC_NAME).info* ++ -rm -f $(DESTDIR)$(infodir)/$(INFO_CPPINT_NAME).info* ++ -rm -f $(DESTDIR)$(infodir)/$(INFO_GCCINT_NAME).info* ++ -rm -f $(DESTDIR)$(infodir)/$(INFO_GCCINSTALL_NAME).info* + # + # These targets are for the dejagnu testsuites. The file site.exp + # contains global variables that all the testsuites will use. +diff -ur gcc.old/doc/cpp.texi gcc/doc/cpp.texi +--- gcc.old/doc/cpp.texi 2004-01-18 23:43:09.000000000 +0100 ++++ gcc/doc/cpp.texi 2004-02-21 13:28:52.000000000 +0100 +@@ -54,7 +54,7 @@ + @ifinfo + @dircategory Programming + @direntry +-* Cpp: (cpp). The GNU C preprocessor. ++* @value{fncpp}: (@value{fncpp}). The GNU C preprocessor. + @end direntry + @end ifinfo + +diff -ur gcc.old/doc/cppinternals.texi gcc/doc/cppinternals.texi +--- gcc.old/doc/cppinternals.texi 2002-03-02 00:38:51.000000000 +0100 ++++ gcc/doc/cppinternals.texi 2004-02-21 13:28:52.000000000 +0100 +@@ -5,7 +5,7 @@ + @ifinfo + @dircategory Programming + @direntry +-* Cpplib: (cppinternals). Cpplib internals. ++* @value{fncppint}: (@value{fncppint}). Cpplib internals. + @end direntry + @end ifinfo + +diff -ur gcc.old/doc/extend.texi gcc/doc/extend.texi +--- gcc.old/doc/extend.texi 2004-01-22 00:41:23.000000000 +0100 ++++ gcc/doc/extend.texi 2004-02-21 13:28:52.000000000 +0100 +@@ -7671,7 +7671,7 @@ + test for the GNU compiler the same way as for C programs: check for a + predefined macro @code{__GNUC__}. You can also use @code{__GNUG__} to + test specifically for GNU C++ (@pxref{Common Predefined Macros,, +-Predefined Macros,cpp,The GNU C Preprocessor}). ++Predefined Macros,@value{fncpp},The GNU C Preprocessor}). + + @menu + * Min and Max:: C++ Minimum and maximum operators. +diff -ur gcc.old/doc/gcc.texi gcc/doc/gcc.texi +--- gcc.old/doc/gcc.texi 2004-01-02 12:27:45.000000000 +0100 ++++ gcc/doc/gcc.texi 2004-02-21 13:28:52.000000000 +0100 +@@ -79,7 +79,7 @@ + @ifnottex + @dircategory Programming + @direntry +-* gcc: (gcc). The GNU Compiler Collection. ++* @value{fngcc}: (@value{fngcc}). The GNU Compiler Collection. + @end direntry + This file documents the use of the GNU compilers. + @sp 1 +@@ -131,7 +131,7 @@ + The internals of the GNU compilers, including how to port them to new + targets and some information about how to write front ends for new + languages, are documented in a separate manual. @xref{Top,, +-Introduction, gccint, GNU Compiler Collection (GCC) Internals}. ++Introduction, @value{fngccint}, GNU Compiler Collection (GCC) Internals}. + + @menu + * G++ and GCC:: You can compile C or C++ programs. +diff -ur gcc.old/doc/gccint.texi gcc/doc/gccint.texi +--- gcc.old/doc/gccint.texi 2004-01-02 12:27:45.000000000 +0100 ++++ gcc/doc/gccint.texi 2004-02-21 13:28:52.000000000 +0100 +@@ -65,7 +65,7 @@ + @ifnottex + @dircategory Programming + @direntry +-* gccint: (gccint). Internals of the GNU Compiler Collection. ++* @value{fngccint}: (@value{fngccint}). Internals of the GNU Compiler Collection. + @end direntry + This file documents the internals of the GNU compilers. + @sp 1 +@@ -114,7 +114,7 @@ + how to port them to new targets and some information about how to + write front ends for new languages. It corresponds to GCC version + @value{version-GCC}. The use of the GNU compilers is documented in a +-separate manual. @xref{Top,, Introduction, gcc, Using the GNU ++separate manual. @xref{Top,, Introduction, @value{fngcc}, Using the GNU + Compiler Collection (GCC)}. + + This manual is mainly a reference manual rather than a tutorial. It +diff -ur gcc.old/doc/invoke.texi gcc/doc/invoke.texi +--- gcc.old/doc/invoke.texi 2004-02-18 09:17:23.000000000 +0100 ++++ gcc/doc/invoke.texi 2004-02-21 13:28:52.000000000 +0100 +@@ -763,7 +763,7 @@ + Fortran source code which must be preprocessed with a RATFOR + preprocessor (not included with GCC)@. + +-@xref{Overall Options,,Options Controlling the Kind of Output, g77, ++@xref{Overall Options,,Options Controlling the Kind of Output, @value{fng77}, + Using and Porting GNU Fortran}, for more details of the handling of + Fortran input files. + +@@ -5045,7 +5045,7 @@ + @option{-nodefaultlibs} is @file{libgcc.a}, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or special + needs for some languages. +-(@xref{Interface,,Interfacing to GCC Output,gccint,GNU Compiler ++(@xref{Interface,,Interfacing to GCC Output,@value{fngccint},GNU Compiler + Collection (GCC) Internals}, + for more discussion of @file{libgcc.a}.) + In most cases, you need @file{libgcc.a} even when you want to avoid +@@ -5053,7 +5053,7 @@ + or @option{-nodefaultlibs} you should usually specify @option{-lgcc} as well. + This ensures that you have no unresolved references to internal GCC + library subroutines. (For example, @samp{__main}, used to ensure C++ +-constructors will be called; @pxref{Collect2,,@code{collect2}, gccint, ++constructors will be called; @pxref{Collect2,,@code{collect2}, @value{fngccint}, + GNU Compiler Collection (GCC) Internals}.) + + @item -pie +@@ -11211,7 +11211,7 @@ + @option{-B}, @option{-I} and @option{-L} (@pxref{Directory Options}). These + take precedence over places specified using environment variables, which + in turn take precedence over those specified by the configuration of GCC@. +-@xref{Driver,, Controlling the Compilation Driver @file{gcc}, gccint, ++@xref{Driver,, Controlling the Compilation Driver @file{gcc}, @value{fngccint}, + GNU Compiler Collection (GCC) Internals}. + + @table @env +@@ -11363,7 +11363,7 @@ + + A precompiled header file will be searched for when @code{#include} is + seen in the compilation. As it searches for the included file +-(@pxref{Search Path,,Search Path,cpp,The C Preprocessor}) the ++(@pxref{Search Path,,Search Path,@value{fncpp},The C Preprocessor}) the + compiler looks for a precompiled header in each directory just before it + looks for the include file in that directory. The name searched for is + the name specified in the @code{#include} with @samp{.gch} appended. If +diff -ur gcc.old/doc/libgcc.texi gcc/doc/libgcc.texi +--- gcc.old/doc/libgcc.texi 2004-01-18 23:43:10.000000000 +0100 ++++ gcc/doc/libgcc.texi 2004-02-21 13:28:52.000000000 +0100 +@@ -24,7 +24,7 @@ + GCC will also generate calls to C library routines, such as + @code{memcpy} and @code{memset}, in some cases. The set of routines + that GCC may possibly use is documented in @ref{Other +-Builtins,,,gcc, Using the GNU Compiler Collection (GCC)}. ++Builtins,,,@value{fngcc}, Using the GNU Compiler Collection (GCC)}. + + These routines take arguments and return values of a specific machine + mode, not a specific C type. @xref{Machine Modes}, for an explanation +diff -ur gcc.old/doc/makefile.texi gcc/doc/makefile.texi +--- gcc.old/doc/makefile.texi 2004-02-08 09:09:36.000000000 +0100 ++++ gcc/doc/makefile.texi 2004-02-21 13:28:52.000000000 +0100 +@@ -121,7 +121,7 @@ + @item profiledbootstrap + Builds a compiler with profiling feedback information. For more + information, see +-@ref{Building,,Building with profile feedback,gccinstall,Installing GCC}. ++@ref{Building,,Building with profile feedback,@value{fngccinstall},Installing GCC}. + This is actually a target in the top-level directory, which then + recurses into the @file{gcc} subdirectory multiple times. + +diff -ur gcc.old/doc/passes.texi gcc/doc/passes.texi +--- gcc.old/doc/passes.texi 2003-11-24 00:52:07.000000000 +0100 ++++ gcc/doc/passes.texi 2004-02-21 13:28:52.000000000 +0100 +@@ -45,7 +45,7 @@ + definition's compilation is entirely freed, unless it is an inline + function, or was deferred for some reason (this can occur in + templates, for example). +-(@pxref{Inline,,An Inline Function is As Fast As a Macro,gcc,Using the ++(@pxref{Inline,,An Inline Function is As Fast As a Macro,@value{fngcc},Using the + GNU Compiler Collection (GCC)}). + + Here is a list of all the passes of the compiler and their source files. +@@ -74,7 +74,7 @@ + C preprocessing, for language front ends, that want or require it, is + performed by cpplib, which is covered in separate documentation. In + particular, the internals are covered in @xref{Top, ,Cpplib internals, +-cppinternals, Cpplib Internals}. ++@value{fncppinternals}, Cpplib Internals}. + + The source files to parse C are found in the toplevel directory, and + by convention are named @file{c-*}. Some of these are also used by +diff -ur gcc.old/doc/standards.texi gcc/doc/standards.texi +--- gcc.old/doc/standards.texi 2004-01-18 23:43:10.000000000 +0100 ++++ gcc/doc/standards.texi 2004-02-21 13:28:52.000000000 +0100 +@@ -185,8 +185,8 @@ + GNAT Reference Manual}, for information on standard + conformance and compatibility of the Ada compiler. + +-@xref{Language,,The GNU Fortran Language, g77, Using and Porting GNU ++@xref{Language,,The GNU Fortran Language, @value{fng77}, Using and Porting GNU + Fortran}, for details of the Fortran language supported by GCC@. + +-@xref{Compatibility,,Compatibility with the Java Platform, gcj, GNU gcj}, ++@xref{Compatibility,,Compatibility with the Java Platform, @value{fngcj}, GNU gcj}, + for details of compatibility between @command{gcj} and the Java Platform. +diff -ur gcc.old/doc/trouble.texi gcc/doc/trouble.texi +--- gcc.old/doc/trouble.texi 2004-02-04 22:12:40.000000000 +0100 ++++ gcc/doc/trouble.texi 2004-02-21 13:28:52.000000000 +0100 +@@ -88,7 +88,7 @@ + as @code{REAL_VALUE_TYPE}. But doing so is a substantial amount of + work for each target machine. + @xref{Cross-compilation,,Cross Compilation and Floating Point, +-gccint, GNU Compiler Collection (GCC) Internals}. ++@value{fngccint}, GNU Compiler Collection (GCC) Internals}. + + @item + At present, the program @file{mips-tfile} which adds debug +diff -ur gcc.old/f/Make-lang.in gcc/f/Make-lang.in +--- gcc.old/f/Make-lang.in 2004-02-20 11:53:17.000000000 +0100 ++++ gcc/f/Make-lang.in 2004-02-21 13:28:52.000000000 +0100 +@@ -153,7 +153,8 @@ + cd $(srcdir)/f; etags -o TAGS.sub *.c *.h; \ + etags --include TAGS.sub --include ../TAGS.sub + +-f77.info: doc/g77.info ++INFO_G77_NAME = $(shell echo g77|sed '$(program_transform_name)') ++f77.info: doc/$(INFO_G77_NAME).info + dvi:: doc/g77.dvi + f77.man: doc/g77.1 + +@@ -166,10 +167,10 @@ + $(docdir)/include/gpl.texi $(docdir)/include/funding.texi \ + $(docdir)/include/gcc-common.texi $(srcdir)/f/intdoc.texi + +-doc/g77.info: $(TEXI_G77_FILES) ++doc/$(INFO_G77_NAME).info: $(TEXI_G77_FILES) + if test "x$(BUILD_INFO)" = xinfo; then \ + rm -f $(@)*; \ +- $(MAKEINFO) $(MAKEINFOFLAGS) -I$(docdir)/include -I$(srcdir)/f \ ++ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I$(docdir)/include -I$(srcdir)/f \ + -o$@ $<; \ + else true; fi + +@@ -264,7 +265,7 @@ + echo ''; \ + else true; fi + +-install-info:: $(DESTDIR)$(infodir)/g77.info ++install-info:: $(DESTDIR)$(infodir)/$(INFO_G77_NAME).info + + f77.install-man: installdirs $(DESTDIR)$(man1dir)/$(G77_INSTALL_NAME)$(man1ext) + +@@ -280,7 +281,7 @@ + else : ; fi + rm -rf $(DESTDIR)$(bindir)/$(G77_INSTALL_NAME)$(exeext); \ + rm -rf $(DESTDIR)$(man1dir)/$(G77_INSTALL_NAME)$(man1ext); \ +- rm -rf $(DESTDIR)$(infodir)/g77.info* ++ rm -f $(DESTDIR)$(infodir)/$(INFO_G77_NAME).info* + # + # Clean hooks: + # A lot of the ancillary files are deleted by the main makefile. +diff -ur gcc.old/java/Make-lang.in gcc/java/Make-lang.in +--- gcc.old/java/Make-lang.in 2004-02-06 08:04:13.000000000 +0100 ++++ gcc/java/Make-lang.in 2004-02-21 13:28:52.000000000 +0100 +@@ -158,12 +158,23 @@ + --regex='/DEFTREECODE [(]\([A-Z_]+\)/\1/' java-tree.def; \ + etags --include TAGS.sub --include ../TAGS.sub + ++TEXI_GCJ_FILES = java/gcj.texi \ ++ $(docdir)/include/gpl.texi $(docdir)/include/funding.texi \ ++ $(docdir)/include/fdl.texi $(docdir)/include/gcc-common.texi ++INFO_GCJ_NAME = $(shell echo gcj|sed '$(program_transform_name)') + +-java.info: doc/gcj.info ++java.info: doc/$(INFO_GCJ_NAME).info + +-java.srcinfo: doc/gcj.info ++java.srcinfo: doc/$(INFO_GCJ_NAME).info + -cp -p $^ $(srcdir)/doc + ++doc/$(INFO_GCJ_NAME).info: $(TEXI_GCJ_FILES) ++ if test "x$(BUILD_INFO)" = xinfo; then \ ++ rm -f $(@)*; \ ++ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) \ ++ -I$(docdir)/include -I$(srcdir)/f -o$@ $<; \ ++ else true; fi ++ + dvi:: doc/gcj.dvi + JAVA_MANFILES = doc/gcj.1 doc/gcjh.1 doc/jv-scan.1 doc/jcf-dump.1 doc/gij.1 \ + doc/jv-convert.1 doc/rmic.1 doc/rmiregistry.1 +@@ -224,8 +235,9 @@ + -rm -rf $(DESTDIR)$(man1dir)/jcf-dump$(man1ext) + -rm -rf $(DESTDIR)$(man1dir)/gij$(man1ext) + -rm -rf $(DESTDIR)$(man1dir)/jv-convert$(man1ext) ++ -rm -f $(DESTDIR)$(infodir)/$(INFO_GCJ_NAME).info* + +-install-info:: $(DESTDIR)$(infodir)/gcj.info ++install-info:: $(DESTDIR)$(infodir)/$(INFO_GCJ_NAME).info + + # + # Clean hooks: +diff -ur gcc.old/java/gcj.texi gcc/java/gcj.texi +--- gcc.old/java/gcj.texi 2003-08-29 23:25:30.000000000 +0200 ++++ gcc/java/gcj.texi 2004-02-21 13:28:52.000000000 +0100 +@@ -52,7 +52,7 @@ + @format + @dircategory Programming + @direntry +-* Gcj: (gcj). Ahead-of-time compiler for the Java language ++* @value{fngcj}: (@value{fngcj}). Ahead-of-time compiler for the Java language + @end direntry + + @dircategory Individual utilities +@@ -151,7 +151,7 @@ + + As @command{gcj} is just another front end to @command{gcc}, it supports many + of the same options as gcc. @xref{Option Summary, , Option Summary, +-gcc, Using the GNU Compiler Collection (GCC)}. This manual only documents the ++@value{fngcc}, Using the GNU Compiler Collection (GCC)}. This manual only documents the + options specific to @command{gcj}. + + @c man end +diff -ur gcc.old/treelang/Make-lang.in gcc/treelang/Make-lang.in +--- gcc.old/treelang/Make-lang.in 2004-01-31 07:53:34.000000000 +0100 ++++ gcc/treelang/Make-lang.in 2004-02-21 13:28:52.000000000 +0100 +@@ -146,17 +146,21 @@ + cd $(srcdir)/treelang; etags -o TAGS.sub *.y *.l *.c *.h; \ + etags --include TAGS.sub --include ../TAGS.sub + +-treelang.info: doc/treelang.info ++INFO_TREELANG_NAME = $(shell echo treelang|sed '$(program_transform_name)') ++TREELANG_MAKEINFODEFS = -D 'fntreelang $(INFO_TREELANG_NAME)' + +-treelang.srcinfo: doc/treelang.info ++treelang.info: doc/$(INFO_TREELANG_NAME).info ++ ++treelang.srcinfo: doc/$(INFO_TREELANG_NAME).info + -cp -p $^ $(srcdir)/doc + + dvi:: doc/treelang.dvi + +-doc/treelang.info: treelang/treelang.texi $(docdir)/include/gcc-common.texi \ ++doc/$(INFO_TREELANG_NAME).info: treelang/treelang.texi $(docdir)/include/gcc-common.texi \ + $(docdir)/include/gpl.texi $(docdir)/include/fdl.texi \ + $(docdir)/include/funding.texi +- $(MAKEINFO) $(MAKEINFOFLAGS) -I$(docdir)/include -o $@ $< ++ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) \ ++ $(TREELANG_MAKEINFODEFS) -I$(docdir)/include -o $@ $< + + doc/treelang.dvi: treelang/treelang.texi $(docdir)/include/gcc-common.texi \ + $(docdir)/include/gpl.texi $(docdir)/include/fdl.texi \ +@@ -189,7 +193,7 @@ + $(STAMP) treelang.install.common.done + + # We might not be able to build the info files +-install-info:: $(DESTDIR)$(infodir)/treelang.info ++install-info:: $(DESTDIR)$(infodir)/$(INFO_TREELANG_NAME).info + + treelang.install-man: + +@@ -202,6 +206,7 @@ + echo -rm -rf $(DESTDIR)$(bindir)/$$name2$(exeext); \ + rm -rf $(DESTDIR)$(bindir)/$$name2$(exeext); \ + done ++ -rm -f $(DESTDIR)$(infodir)/$(INFO_TREELANG_NAME).info* + -rm treelang.install.common.done + + # +diff -ur gcc.old/treelang/treelang.texi gcc/treelang/treelang.texi +--- gcc.old/treelang/treelang.texi 2003-12-06 00:15:02.000000000 +0100 ++++ gcc/treelang/treelang.texi 2004-02-21 13:28:52.000000000 +0100 +@@ -106,7 +106,7 @@ + @ifnottex + @dircategory Programming + @direntry +-* treelang: (treelang). The GNU Treelang compiler. ++* @value{fntreelang}: (@value{fntreelang}). The GNU Treelang compiler. + @end direntry + @ifset INTERNALS + @ifset USING +@@ -278,7 +278,7 @@ + @item + The packaging and compiler portions of GNU Treelang are based largely + on the GCC compiler. +-@xref{Contributors,,Contributors to GCC,GCC,Using and Maintaining GCC}, ++@xref{Contributors,,Contributors to GCC,@value{fngcc},Using and Maintaining GCC}, + for more information. + + @item +@@ -885,7 +885,7 @@ + command-line options that are designed to cater to Treelang users + but apply to other languages as well. + +-@xref{G++ and GCC,,Programming Languages Supported by GCC,GCC,Using ++@xref{G++ and GCC,,Programming Languages Supported by GCC,@value{fngcc},Using + the GNU Compiler Collection (GCC)}, + for information on the way different languages are handled + by the GCC compiler (@code{gcc}). +diff -ur gcc.old/f/g77.texi gcc/f/g77.texi +--- gcc.old/f/g77.texi 2003-05-16 17:08:37.000000000 +0200 ++++ gcc/f/g77.texi 2004-02-28 16:04:22.000000000 +0100 +@@ -88,7 +88,7 @@ + @ifinfo + @dircategory Programming + @direntry +-* g77: (g77). The GNU Fortran compiler. ++* * @value{fng77}: (@value{fng77}). The GNU Fortran compiler. + @end direntry + @ifset INTERNALS + @ifset USING --- gcc-3.4-3.4.3.orig/debian/patches/java-gui-branch.dpatch +++ gcc-3.4-3.4.3/debian/patches/java-gui-branch.dpatch @@ -0,0 +1,129200 @@ +#! /bin/sh -e + +# DP: Michael Koch +# DP: Backport AWT, Swing and GTK peer from java-gui-branch (20040906). + +dir=libjava +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3/libjava" + dir="$3/libjava" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +? gnu/regexp +? gnu/java/awt/doc-files +? gnu/java/nio/channels +Index: Makefile.am +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/Makefile.am,v +retrieving revision 1.354.2.3 +diff -u -r1.354.2.3 Makefile.am +--- Makefile.am 24 Jan 2004 20:47:28 -0000 1.354.2.3 ++++ Makefile.am 6 Sep 2004 16:35:34 -0000 +@@ -182,11 +182,13 @@ + ## Gtk JNI sources. + gtk_c_source_files = \ + $(gtk_cairo_c_source_files) \ ++jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c \ ++jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c \ +@@ -195,11 +197,13 @@ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c \ ++jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c \ ++jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c \ +@@ -219,15 +223,16 @@ + + ## Java sources for Gtk peers. + gtk_awt_peer_sources = \ ++gnu/java/awt/peer/gtk/GThreadMutex.java \ ++gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java \ + gnu/java/awt/peer/gtk/GdkClasspathFontPeer.java \ + gnu/java/awt/peer/gtk/GdkClasspathFontPeerMetrics.java \ + gnu/java/awt/peer/gtk/GdkFontMetrics.java \ + gnu/java/awt/peer/gtk/GdkGlyphVector.java \ + gnu/java/awt/peer/gtk/GdkGraphics.java \ + gnu/java/awt/peer/gtk/GdkGraphics2D.java \ ++gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java \ + gnu/java/awt/peer/gtk/GdkPixbufDecoder.java \ +-gnu/java/awt/peer/gtk/GtkArg.java \ +-gnu/java/awt/peer/gtk/GtkArgList.java \ + gnu/java/awt/peer/gtk/GtkButtonPeer.java \ + gnu/java/awt/peer/gtk/GtkCanvasPeer.java \ + gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.java \ +@@ -1074,24 +1079,32 @@ + java/awt/geom/FlatteningPathIterator.java \ + java/awt/geom/GeneralPath.java \ + java/awt/geom/QuadCurve2D.java \ ++java/awt/image/AffineTransformOp.java \ ++java/awt/image/ByteLookupTable.java \ + java/awt/image/BufferedImage.java \ + java/awt/image/ColorModel.java \ + java/awt/image/ComponentColorModel.java \ + java/awt/image/ComponentSampleModel.java \ + java/awt/image/DataBuffer.java \ + java/awt/image/DataBufferByte.java \ ++java/awt/image/DataBufferDouble.java \ ++java/awt/image/DataBufferFloat.java \ + java/awt/image/DataBufferInt.java \ ++java/awt/image/DataBufferShort.java \ + java/awt/image/DataBufferUShort.java \ + java/awt/image/DirectColorModel.java \ + java/awt/image/ImageConsumer.java \ + java/awt/image/ImageObserver.java \ + java/awt/image/ImageProducer.java \ + java/awt/image/IndexColorModel.java \ ++java/awt/image/Kernel.java \ ++java/awt/image/LookupTable.java \ + java/awt/image/PackedColorModel.java \ + java/awt/image/Raster.java \ + java/awt/image/RasterOp.java \ + java/awt/image/SampleModel.java \ + java/awt/image/SinglePixelPackedSampleModel.java \ ++java/awt/image/ShortLookupTable.java \ + java/awt/image/WritableRaster.java \ + java/awt/image/AreaAveragingScaleFilter.java \ + java/awt/image/CropImageFilter.java \ +@@ -1099,6 +1112,7 @@ + java/awt/image/ImageFilter.java \ + java/awt/image/MemoryImageSource.java \ + java/awt/image/PixelGrabber.java \ ++java/awt/image/PixelInterleavedSampleModel.java \ + java/awt/image/RGBImageFilter.java \ + java/awt/image/ReplicateScaleFilter.java \ + java/awt/image/BufferStrategy.java \ +@@ -1293,26 +1307,59 @@ + javax/swing/GrayFilter.java \ + javax/swing/AbstractAction.java \ + javax/swing/AbstractButton.java \ ++javax/swing/plaf/basic/BasicArrowButton.java \ ++javax/swing/plaf/basic/BasicButtonListener.java \ + javax/swing/plaf/basic/BasicButtonUI.java \ ++javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java \ + javax/swing/plaf/basic/BasicCheckBoxUI.java \ +-javax/swing/plaf/basic/BasicDefaults.java \ ++javax/swing/plaf/basic/BasicColorChooserUI.java \ ++javax/swing/plaf/basic/BasicComboBoxEditor.java \ ++javax/swing/plaf/basic/BasicComboBoxRenderer.java \ ++javax/swing/plaf/basic/BasicComboBoxUI.java \ ++javax/swing/plaf/basic/BasicComboPopup.java \ ++javax/swing/plaf/basic/BasicDesktopIconUI.java \ ++javax/swing/plaf/basic/BasicDesktopPaneUI.java \ ++javax/swing/plaf/basic/BasicFormattedTextFieldUI.java \ + javax/swing/plaf/basic/BasicGraphicsUtils.java \ ++javax/swing/plaf/basic/BasicInternalFrameTitlePane.java \ ++javax/swing/plaf/basic/BasicInternalFrameUI.java \ ++javax/swing/plaf/basic/BasicMenuBarUI.java \ ++javax/swing/plaf/basic/BasicMenuItemUI.java \ ++javax/swing/plaf/basic/BasicMenuUI.java \ + javax/swing/plaf/basic/BasicLabelUI.java \ + javax/swing/plaf/basic/BasicListUI.java \ + javax/swing/plaf/basic/BasicOptionPaneUI.java \ + javax/swing/plaf/basic/BasicPanelUI.java \ ++javax/swing/plaf/basic/BasicPasswordFieldUI.java \ ++javax/swing/plaf/basic/BasicPopupMenuSeparatorUI.java \ ++javax/swing/plaf/basic/BasicPopupMenuUI.java \ ++javax/swing/plaf/basic/BasicProgressBarUI.java \ ++javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java \ + javax/swing/plaf/basic/BasicRadioButtonUI.java \ ++javax/swing/plaf/basic/BasicRootPaneUI.java \ ++javax/swing/plaf/basic/BasicScrollBarUI.java \ + javax/swing/plaf/basic/BasicScrollPaneUI.java \ ++javax/swing/plaf/basic/BasicSeparatorUI.java \ ++javax/swing/plaf/basic/BasicSliderUI.java \ ++javax/swing/plaf/basic/BasicSpinnerUI.java \ + javax/swing/plaf/basic/BasicSplitPaneDivider.java \ + javax/swing/plaf/basic/BasicSplitPaneUI.java \ + javax/swing/plaf/basic/BasicTabbedPaneUI.java \ ++javax/swing/plaf/basic/BasicTableHeaderUI.java \ ++javax/swing/plaf/basic/BasicTableUI.java \ ++javax/swing/plaf/basic/BasicTextAreaUI.java \ ++javax/swing/plaf/basic/BasicTextFieldUI.java \ + javax/swing/plaf/basic/BasicTextUI.java \ + javax/swing/plaf/basic/BasicToggleButtonUI.java \ ++javax/swing/plaf/basic/BasicToolBarSeparatorUI.java \ ++javax/swing/plaf/basic/BasicToolBarUI.java \ ++javax/swing/plaf/basic/BasicToolTipUI.java \ + javax/swing/plaf/basic/BasicTreeUI.java \ + javax/swing/plaf/basic/BasicViewportUI.java \ + javax/swing/plaf/basic/BasicLookAndFeel.java \ + javax/swing/plaf/basic/BasicBorders.java \ + javax/swing/plaf/basic/BasicIconFactory.java \ ++javax/swing/plaf/basic/ComboPopup.java \ + javax/swing/plaf/BorderUIResource.java \ + javax/swing/plaf/UIResource.java \ + javax/swing/plaf/ButtonUI.java \ +@@ -1357,10 +1404,15 @@ + javax/swing/plaf/ToolTipUI.java \ + javax/swing/AbstractListModel.java \ + javax/swing/AbstractSet.java \ ++javax/swing/AbstractSpinnerModel.java \ + javax/swing/colorchooser/AbstractColorChooserPanel.java \ + javax/swing/colorchooser/ColorChooserComponentFactory.java \ + javax/swing/colorchooser/ColorSelectionModel.java \ + javax/swing/colorchooser/DefaultColorSelectionModel.java \ ++javax/swing/colorchooser/DefaultHSBChooserPanel.java \ ++javax/swing/colorchooser/DefaultPreviewPanel.java \ ++javax/swing/colorchooser/DefaultRGBChooserPanel.java \ ++javax/swing/colorchooser/DefaultSwatchChooserPanel.java \ + javax/swing/filechooser/FileFilter.java \ + javax/swing/filechooser/FileSystemView.java \ + javax/swing/filechooser/FileView.java \ +@@ -1406,7 +1458,9 @@ + javax/swing/JRootPane.java \ + javax/swing/JScrollBar.java \ + javax/swing/JScrollPane.java \ ++javax/swing/JSpinner.java \ + javax/swing/JTabbedPane.java \ ++javax/swing/JTextArea.java \ + javax/swing/JTextField.java \ + javax/swing/JToggleButton.java \ + javax/swing/JToolTip.java \ +@@ -1419,10 +1473,12 @@ + javax/swing/ListSelectionModel.java \ + javax/swing/LookAndFeel.java \ + javax/swing/Scrollable.java \ ++javax/swing/SpinnerModel.java \ ++javax/swing/SpinnerNumberModel.java \ + javax/swing/SwingConstants.java \ + javax/swing/SwingUtilities.java \ + javax/swing/Timer.java \ +-javax/swing/ToggleButtonModel.java \ ++javax/swing/TransferHandler.java \ + javax/swing/UIDefaults.java \ + javax/swing/UIManager.java \ + javax/swing/UnsupportedLookAndFeelException.java \ +@@ -1474,22 +1530,33 @@ + javax/swing/text/AttributeSet.java \ + javax/swing/text/BadLocationException.java \ + javax/swing/text/Caret.java \ +-javax/swing/text/CharacterIterator.java \ + javax/swing/text/ComponentView.java \ + javax/swing/text/DefaultCaret.java \ + javax/swing/text/DefaultEditorKit.java \ ++javax/swing/text/DefaultHighlighter.java \ + javax/swing/text/Document.java \ + javax/swing/text/DocumentFilter.java \ + javax/swing/text/EditorKit.java \ + javax/swing/text/Element.java \ ++javax/swing/text/FieldView.java \ + javax/swing/text/GapContent.java \ ++javax/swing/text/Highlighter.java \ + javax/swing/text/JTextComponent.java \ + javax/swing/text/Keymap.java \ ++javax/swing/text/LayeredHighlighter.java \ + javax/swing/text/PlainDocument.java \ +-javax/swing/text/PlainEditorKit.java \ ++javax/swing/text/PlainView.java \ + javax/swing/text/Position.java \ + javax/swing/text/Segment.java \ ++javax/swing/text/SimpleAttributeSet.java \ + javax/swing/text/Style.java \ ++javax/swing/text/StyleConstants.java \ ++javax/swing/text/StyleContext.java \ ++javax/swing/text/TabExpander.java \ ++javax/swing/text/TabableView.java \ ++javax/swing/text/TabSet.java \ ++javax/swing/text/TabStop.java \ ++javax/swing/text/Utilities.java \ + javax/swing/text/View.java \ + javax/swing/text/ViewFactory.java \ + javax/swing/text/MutableAttributeSet.java \ +@@ -1577,6 +1644,8 @@ + javax/swing/ProgressMonitorInputStream.java \ + javax/swing/RepaintManager.java \ + javax/swing/ScrollPaneLayout.java \ ++javax/swing/Spring.java \ ++javax/swing/SpringLayout.java \ + javax/swing/ToolTipManager.java \ + javax/swing/ViewportLayout.java + +@@ -2351,6 +2420,8 @@ + gnu/java/nio/charset/UTF_8.java \ + gnu/java/security/Engine.java \ + gnu/java/security/OID.java \ ++gnu/java/security/action/GetPropertyAction.java \ ++gnu/java/security/action/SetAccessibleAction.java \ + gnu/java/security/der/BitString.java \ + gnu/java/security/der/DER.java \ + gnu/java/security/der/DEREncodingException.java \ +@@ -2800,7 +2871,6 @@ + gnu/gcj/runtime/natStackTrace.cc \ + gnu/gcj/runtime/natStringBuffer.cc \ + gnu/gcj/runtime/natVMClassLoader.cc \ +-gnu/java/awt/natEmbeddedWindow.cc \ + gnu/java/net/natPlainDatagramSocketImpl.cc \ + gnu/java/net/natPlainSocketImpl.cc \ + gnu/java/net/protocol/core/natCoreInputStream.cc \ +Index: Makefile.in +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/Makefile.in,v +retrieving revision 1.378.2.3 +diff -u -r1.378.2.3 Makefile.in +--- Makefile.in 24 Jan 2004 20:47:28 -0000 1.378.2.3 ++++ Makefile.in 6 Sep 2004 16:35:36 -0000 +@@ -274,11 +274,13 @@ + + gtk_c_source_files = \ + $(gtk_cairo_c_source_files) \ ++jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c \ ++jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c \ +@@ -287,11 +289,13 @@ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c \ ++jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c \ ++jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c \ + jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c \ +@@ -311,15 +315,16 @@ + + + gtk_awt_peer_sources = \ ++gnu/java/awt/peer/gtk/GThreadMutex.java \ ++gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java \ + gnu/java/awt/peer/gtk/GdkClasspathFontPeer.java \ + gnu/java/awt/peer/gtk/GdkClasspathFontPeerMetrics.java \ + gnu/java/awt/peer/gtk/GdkFontMetrics.java \ + gnu/java/awt/peer/gtk/GdkGlyphVector.java \ + gnu/java/awt/peer/gtk/GdkGraphics.java \ + gnu/java/awt/peer/gtk/GdkGraphics2D.java \ ++gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java \ + gnu/java/awt/peer/gtk/GdkPixbufDecoder.java \ +-gnu/java/awt/peer/gtk/GtkArg.java \ +-gnu/java/awt/peer/gtk/GtkArgList.java \ + gnu/java/awt/peer/gtk/GtkButtonPeer.java \ + gnu/java/awt/peer/gtk/GtkCanvasPeer.java \ + gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.java \ +@@ -772,24 +777,32 @@ + java/awt/geom/FlatteningPathIterator.java \ + java/awt/geom/GeneralPath.java \ + java/awt/geom/QuadCurve2D.java \ ++java/awt/image/AffineTransformOp.java \ ++java/awt/image/ByteLookupTable.java \ + java/awt/image/BufferedImage.java \ + java/awt/image/ColorModel.java \ + java/awt/image/ComponentColorModel.java \ + java/awt/image/ComponentSampleModel.java \ + java/awt/image/DataBuffer.java \ + java/awt/image/DataBufferByte.java \ ++java/awt/image/DataBufferDouble.java \ ++java/awt/image/DataBufferFloat.java \ + java/awt/image/DataBufferInt.java \ ++java/awt/image/DataBufferShort.java \ + java/awt/image/DataBufferUShort.java \ + java/awt/image/DirectColorModel.java \ + java/awt/image/ImageConsumer.java \ + java/awt/image/ImageObserver.java \ + java/awt/image/ImageProducer.java \ + java/awt/image/IndexColorModel.java \ ++java/awt/image/Kernel.java \ ++java/awt/image/LookupTable.java \ + java/awt/image/PackedColorModel.java \ + java/awt/image/Raster.java \ + java/awt/image/RasterOp.java \ + java/awt/image/SampleModel.java \ + java/awt/image/SinglePixelPackedSampleModel.java \ ++java/awt/image/ShortLookupTable.java \ + java/awt/image/WritableRaster.java \ + java/awt/image/AreaAveragingScaleFilter.java \ + java/awt/image/CropImageFilter.java \ +@@ -797,6 +810,7 @@ + java/awt/image/ImageFilter.java \ + java/awt/image/MemoryImageSource.java \ + java/awt/image/PixelGrabber.java \ ++java/awt/image/PixelInterleavedSampleModel.java \ + java/awt/image/RGBImageFilter.java \ + java/awt/image/ReplicateScaleFilter.java \ + java/awt/image/BufferStrategy.java \ +@@ -991,26 +1005,59 @@ + javax/swing/GrayFilter.java \ + javax/swing/AbstractAction.java \ + javax/swing/AbstractButton.java \ ++javax/swing/plaf/basic/BasicArrowButton.java \ ++javax/swing/plaf/basic/BasicButtonListener.java \ + javax/swing/plaf/basic/BasicButtonUI.java \ ++javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java \ + javax/swing/plaf/basic/BasicCheckBoxUI.java \ +-javax/swing/plaf/basic/BasicDefaults.java \ ++javax/swing/plaf/basic/BasicColorChooserUI.java \ ++javax/swing/plaf/basic/BasicComboBoxEditor.java \ ++javax/swing/plaf/basic/BasicComboBoxRenderer.java \ ++javax/swing/plaf/basic/BasicComboBoxUI.java \ ++javax/swing/plaf/basic/BasicComboPopup.java \ ++javax/swing/plaf/basic/BasicDesktopIconUI.java \ ++javax/swing/plaf/basic/BasicDesktopPaneUI.java \ ++javax/swing/plaf/basic/BasicFormattedTextFieldUI.java \ + javax/swing/plaf/basic/BasicGraphicsUtils.java \ ++javax/swing/plaf/basic/BasicInternalFrameTitlePane.java \ ++javax/swing/plaf/basic/BasicInternalFrameUI.java \ ++javax/swing/plaf/basic/BasicMenuBarUI.java \ ++javax/swing/plaf/basic/BasicMenuItemUI.java \ ++javax/swing/plaf/basic/BasicMenuUI.java \ + javax/swing/plaf/basic/BasicLabelUI.java \ + javax/swing/plaf/basic/BasicListUI.java \ + javax/swing/plaf/basic/BasicOptionPaneUI.java \ + javax/swing/plaf/basic/BasicPanelUI.java \ ++javax/swing/plaf/basic/BasicPasswordFieldUI.java \ ++javax/swing/plaf/basic/BasicPopupMenuSeparatorUI.java \ ++javax/swing/plaf/basic/BasicPopupMenuUI.java \ ++javax/swing/plaf/basic/BasicProgressBarUI.java \ ++javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java \ + javax/swing/plaf/basic/BasicRadioButtonUI.java \ ++javax/swing/plaf/basic/BasicRootPaneUI.java \ ++javax/swing/plaf/basic/BasicScrollBarUI.java \ + javax/swing/plaf/basic/BasicScrollPaneUI.java \ ++javax/swing/plaf/basic/BasicSeparatorUI.java \ ++javax/swing/plaf/basic/BasicSliderUI.java \ ++javax/swing/plaf/basic/BasicSpinnerUI.java \ + javax/swing/plaf/basic/BasicSplitPaneDivider.java \ + javax/swing/plaf/basic/BasicSplitPaneUI.java \ + javax/swing/plaf/basic/BasicTabbedPaneUI.java \ ++javax/swing/plaf/basic/BasicTableHeaderUI.java \ ++javax/swing/plaf/basic/BasicTableUI.java \ ++javax/swing/plaf/basic/BasicTextAreaUI.java \ ++javax/swing/plaf/basic/BasicTextFieldUI.java \ + javax/swing/plaf/basic/BasicTextUI.java \ + javax/swing/plaf/basic/BasicToggleButtonUI.java \ ++javax/swing/plaf/basic/BasicToolBarSeparatorUI.java \ ++javax/swing/plaf/basic/BasicToolBarUI.java \ ++javax/swing/plaf/basic/BasicToolTipUI.java \ + javax/swing/plaf/basic/BasicTreeUI.java \ + javax/swing/plaf/basic/BasicViewportUI.java \ + javax/swing/plaf/basic/BasicLookAndFeel.java \ + javax/swing/plaf/basic/BasicBorders.java \ + javax/swing/plaf/basic/BasicIconFactory.java \ ++javax/swing/plaf/basic/ComboPopup.java \ + javax/swing/plaf/BorderUIResource.java \ + javax/swing/plaf/UIResource.java \ + javax/swing/plaf/ButtonUI.java \ +@@ -1055,10 +1102,15 @@ + javax/swing/plaf/ToolTipUI.java \ + javax/swing/AbstractListModel.java \ + javax/swing/AbstractSet.java \ ++javax/swing/AbstractSpinnerModel.java \ + javax/swing/colorchooser/AbstractColorChooserPanel.java \ + javax/swing/colorchooser/ColorChooserComponentFactory.java \ + javax/swing/colorchooser/ColorSelectionModel.java \ + javax/swing/colorchooser/DefaultColorSelectionModel.java \ ++javax/swing/colorchooser/DefaultHSBChooserPanel.java \ ++javax/swing/colorchooser/DefaultPreviewPanel.java \ ++javax/swing/colorchooser/DefaultRGBChooserPanel.java \ ++javax/swing/colorchooser/DefaultSwatchChooserPanel.java \ + javax/swing/filechooser/FileFilter.java \ + javax/swing/filechooser/FileSystemView.java \ + javax/swing/filechooser/FileView.java \ +@@ -1104,7 +1156,9 @@ + javax/swing/JRootPane.java \ + javax/swing/JScrollBar.java \ + javax/swing/JScrollPane.java \ ++javax/swing/JSpinner.java \ + javax/swing/JTabbedPane.java \ ++javax/swing/JTextArea.java \ + javax/swing/JTextField.java \ + javax/swing/JToggleButton.java \ + javax/swing/JToolTip.java \ +@@ -1117,10 +1171,12 @@ + javax/swing/ListSelectionModel.java \ + javax/swing/LookAndFeel.java \ + javax/swing/Scrollable.java \ ++javax/swing/SpinnerModel.java \ ++javax/swing/SpinnerNumberModel.java \ + javax/swing/SwingConstants.java \ + javax/swing/SwingUtilities.java \ + javax/swing/Timer.java \ +-javax/swing/ToggleButtonModel.java \ ++javax/swing/TransferHandler.java \ + javax/swing/UIDefaults.java \ + javax/swing/UIManager.java \ + javax/swing/UnsupportedLookAndFeelException.java \ +@@ -1172,22 +1228,33 @@ + javax/swing/text/AttributeSet.java \ + javax/swing/text/BadLocationException.java \ + javax/swing/text/Caret.java \ +-javax/swing/text/CharacterIterator.java \ + javax/swing/text/ComponentView.java \ + javax/swing/text/DefaultCaret.java \ + javax/swing/text/DefaultEditorKit.java \ ++javax/swing/text/DefaultHighlighter.java \ + javax/swing/text/Document.java \ + javax/swing/text/DocumentFilter.java \ + javax/swing/text/EditorKit.java \ + javax/swing/text/Element.java \ ++javax/swing/text/FieldView.java \ + javax/swing/text/GapContent.java \ ++javax/swing/text/Highlighter.java \ + javax/swing/text/JTextComponent.java \ + javax/swing/text/Keymap.java \ ++javax/swing/text/LayeredHighlighter.java \ + javax/swing/text/PlainDocument.java \ +-javax/swing/text/PlainEditorKit.java \ ++javax/swing/text/PlainView.java \ + javax/swing/text/Position.java \ + javax/swing/text/Segment.java \ ++javax/swing/text/SimpleAttributeSet.java \ + javax/swing/text/Style.java \ ++javax/swing/text/StyleConstants.java \ ++javax/swing/text/StyleContext.java \ ++javax/swing/text/TabExpander.java \ ++javax/swing/text/TabableView.java \ ++javax/swing/text/TabSet.java \ ++javax/swing/text/TabStop.java \ ++javax/swing/text/Utilities.java \ + javax/swing/text/View.java \ + javax/swing/text/ViewFactory.java \ + javax/swing/text/MutableAttributeSet.java \ +@@ -1275,6 +1342,8 @@ + javax/swing/ProgressMonitorInputStream.java \ + javax/swing/RepaintManager.java \ + javax/swing/ScrollPaneLayout.java \ ++javax/swing/Spring.java \ ++javax/swing/SpringLayout.java \ + javax/swing/ToolTipManager.java \ + javax/swing/ViewportLayout.java + +@@ -2042,6 +2111,8 @@ + gnu/java/nio/charset/UTF_8.java \ + gnu/java/security/Engine.java \ + gnu/java/security/OID.java \ ++gnu/java/security/action/GetPropertyAction.java \ ++gnu/java/security/action/SetAccessibleAction.java \ + gnu/java/security/der/BitString.java \ + gnu/java/security/der/DER.java \ + gnu/java/security/der/DEREncodingException.java \ +@@ -2490,7 +2561,6 @@ + gnu/gcj/runtime/natStackTrace.cc \ + gnu/gcj/runtime/natStringBuffer.cc \ + gnu/gcj/runtime/natVMClassLoader.cc \ +-gnu/java/awt/natEmbeddedWindow.cc \ + gnu/java/net/natPlainDatagramSocketImpl.cc \ + gnu/java/net/natPlainSocketImpl.cc \ + gnu/java/net/protocol/core/natCoreInputStream.cc \ +@@ -2670,7 +2740,6 @@ + gnu/gcj/runtime/natFirstThread.lo gnu/gcj/runtime/natNameFinder.lo \ + gnu/gcj/runtime/natSharedLibLoader.lo gnu/gcj/runtime/natStackTrace.lo \ + gnu/gcj/runtime/natStringBuffer.lo gnu/gcj/runtime/natVMClassLoader.lo \ +-gnu/java/awt/natEmbeddedWindow.lo \ + gnu/java/net/natPlainDatagramSocketImpl.lo \ + gnu/java/net/natPlainSocketImpl.lo \ + gnu/java/net/protocol/core/natCoreInputStream.lo \ +@@ -2732,15 +2801,16 @@ + org/w3c/dom/traversal/TreeWalker.lo + lib_gnu_java_awt_peer_gtk_la_DEPENDENCIES = + @GTK_CAIRO_FALSE@lib_gnu_java_awt_peer_gtk_la_OBJECTS = \ ++@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GThreadMutex.lo \ ++@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.lo \ + @GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkClasspathFontPeer.lo \ + @GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkClasspathFontPeerMetrics.lo \ + @GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkFontMetrics.lo \ + @GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkGlyphVector.lo \ + @GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkGraphics.lo \ + @GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkGraphics2D.lo \ ++@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.lo \ + @GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkPixbufDecoder.lo \ +-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkArg.lo \ +-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkArgList.lo \ + @GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkButtonPeer.lo \ + @GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkCanvasPeer.lo \ + @GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.lo \ +@@ -2775,11 +2845,13 @@ + @GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkTextFieldPeer.lo \ + @GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkToolkit.lo \ + @GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkWindowPeer.lo \ ++@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.lo \ + @GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.lo \ + @GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.lo \ + @GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.lo \ + @GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.lo \ + @GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.lo \ ++@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.lo \ + @GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.lo \ + @GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.lo \ + @GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.lo \ +@@ -2788,11 +2860,13 @@ + @GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.lo \ + @GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.lo \ + @GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.lo \ ++@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.lo \ + @GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.lo \ + @GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.lo \ + @GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.lo \ + @GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.lo \ + @GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.lo \ ++@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.lo \ + @GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.lo \ + @GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.lo \ + @GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.lo \ +@@ -2808,15 +2882,16 @@ + @GTK_CAIRO_FALSE@jni/classpath/jnilink.lo jni/classpath/native_state.lo \ + @GTK_CAIRO_FALSE@jni/classpath/primlib.lo + @GTK_CAIRO_TRUE@lib_gnu_java_awt_peer_gtk_la_OBJECTS = \ ++@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GThreadMutex.lo \ ++@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.lo \ + @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GdkClasspathFontPeer.lo \ + @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GdkClasspathFontPeerMetrics.lo \ + @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GdkFontMetrics.lo \ + @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GdkGlyphVector.lo \ + @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GdkGraphics.lo \ + @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GdkGraphics2D.lo \ ++@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.lo \ + @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GdkPixbufDecoder.lo \ +-@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkArg.lo \ +-@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkArgList.lo \ + @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkButtonPeer.lo \ + @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkCanvasPeer.lo \ + @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.lo \ +@@ -2855,11 +2930,13 @@ + @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeerMetrics.lo \ + @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.lo \ + @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.lo \ ++@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.lo \ + @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.lo \ + @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.lo \ + @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.lo \ + @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.lo \ + @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.lo \ ++@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.lo \ + @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.lo \ + @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.lo \ + @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.lo \ +@@ -2868,11 +2945,13 @@ + @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.lo \ + @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.lo \ + @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.lo \ ++@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.lo \ + @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.lo \ + @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.lo \ + @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.lo \ + @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.lo \ + @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.lo \ ++@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.lo \ + @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.lo \ + @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.lo \ + @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.lo \ +@@ -2930,7 +3009,7 @@ + + DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +-TAR = gtar ++TAR = tar + GZIP_ENV = --best + DIST_SUBDIRS = @DIRLTDL@ testsuite gcj include @DIRLTDL@ gcj include + DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \ +@@ -3020,19 +3099,19 @@ + .deps/gnu/java/awt/EventModifier.P \ + .deps/gnu/java/awt/image/ImageDecoder.P \ + .deps/gnu/java/awt/image/XBMDecoder.P \ +-.deps/gnu/java/awt/natEmbeddedWindow.P \ + .deps/gnu/java/awt/peer/ClasspathFontPeer.P \ + .deps/gnu/java/awt/peer/EmbeddedWindowPeer.P \ + .deps/gnu/java/awt/peer/GLightweightPeer.P \ ++.deps/gnu/java/awt/peer/gtk/GThreadMutex.P \ ++.deps/gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.P \ + .deps/gnu/java/awt/peer/gtk/GdkClasspathFontPeer.P \ + .deps/gnu/java/awt/peer/gtk/GdkClasspathFontPeerMetrics.P \ + .deps/gnu/java/awt/peer/gtk/GdkFontMetrics.P \ + .deps/gnu/java/awt/peer/gtk/GdkGlyphVector.P \ + .deps/gnu/java/awt/peer/gtk/GdkGraphics.P \ + .deps/gnu/java/awt/peer/gtk/GdkGraphics2D.P \ ++.deps/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.P \ + .deps/gnu/java/awt/peer/gtk/GdkPixbufDecoder.P \ +-.deps/gnu/java/awt/peer/gtk/GtkArg.P \ +-.deps/gnu/java/awt/peer/gtk/GtkArgList.P \ + .deps/gnu/java/awt/peer/gtk/GtkButtonPeer.P \ + .deps/gnu/java/awt/peer/gtk/GtkCanvasPeer.P \ + .deps/gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.P \ +@@ -3300,6 +3379,8 @@ + .deps/gnu/java/rmi/server/UnicastServer.P \ + .deps/gnu/java/rmi/server/UnicastServerRef.P \ + .deps/gnu/java/security/Engine.P .deps/gnu/java/security/OID.P \ ++.deps/gnu/java/security/action/GetPropertyAction.P \ ++.deps/gnu/java/security/action/SetAccessibleAction.P \ + .deps/gnu/java/security/der/BitString.P \ + .deps/gnu/java/security/der/DER.P \ + .deps/gnu/java/security/der/DEREncodingException.P \ +@@ -3502,16 +3583,21 @@ + .deps/java/awt/im/spi/InputMethod.P \ + .deps/java/awt/im/spi/InputMethodContext.P \ + .deps/java/awt/im/spi/InputMethodDescriptor.P \ ++.deps/java/awt/image/AffineTransformOp.P \ + .deps/java/awt/image/AreaAveragingScaleFilter.P \ + .deps/java/awt/image/BufferStrategy.P \ + .deps/java/awt/image/BufferedImage.P \ + .deps/java/awt/image/BufferedImageOp.P \ ++.deps/java/awt/image/ByteLookupTable.P \ + .deps/java/awt/image/ColorModel.P \ + .deps/java/awt/image/ComponentColorModel.P \ + .deps/java/awt/image/ComponentSampleModel.P \ + .deps/java/awt/image/CropImageFilter.P \ + .deps/java/awt/image/DataBuffer.P .deps/java/awt/image/DataBufferByte.P \ ++.deps/java/awt/image/DataBufferDouble.P \ ++.deps/java/awt/image/DataBufferFloat.P \ + .deps/java/awt/image/DataBufferInt.P \ ++.deps/java/awt/image/DataBufferShort.P \ + .deps/java/awt/image/DataBufferUShort.P \ + .deps/java/awt/image/DirectColorModel.P \ + .deps/java/awt/image/FilteredImageSource.P \ +@@ -3519,15 +3605,18 @@ + .deps/java/awt/image/ImageObserver.P \ + .deps/java/awt/image/ImageProducer.P \ + .deps/java/awt/image/ImagingOpException.P \ +-.deps/java/awt/image/IndexColorModel.P \ ++.deps/java/awt/image/IndexColorModel.P .deps/java/awt/image/Kernel.P \ ++.deps/java/awt/image/LookupTable.P \ + .deps/java/awt/image/MemoryImageSource.P \ + .deps/java/awt/image/PackedColorModel.P \ + .deps/java/awt/image/PixelGrabber.P \ ++.deps/java/awt/image/PixelInterleavedSampleModel.P \ + .deps/java/awt/image/RGBImageFilter.P .deps/java/awt/image/Raster.P \ + .deps/java/awt/image/RasterFormatException.P \ + .deps/java/awt/image/RasterOp.P .deps/java/awt/image/RenderedImage.P \ + .deps/java/awt/image/ReplicateScaleFilter.P \ + .deps/java/awt/image/SampleModel.P \ ++.deps/java/awt/image/ShortLookupTable.P \ + .deps/java/awt/image/SinglePixelPackedSampleModel.P \ + .deps/java/awt/image/TileObserver.P \ + .deps/java/awt/image/VolatileImage.P \ +@@ -4303,13 +4392,14 @@ + .deps/javax/swing/AbstractAction.P .deps/javax/swing/AbstractButton.P \ + .deps/javax/swing/AbstractCellEditor.P \ + .deps/javax/swing/AbstractListModel.P .deps/javax/swing/AbstractSet.P \ +-.deps/javax/swing/Action.P .deps/javax/swing/ActionMap.P \ +-.deps/javax/swing/BorderFactory.P .deps/javax/swing/BoundedRangeModel.P \ +-.deps/javax/swing/Box.P .deps/javax/swing/BoxLayout.P \ +-.deps/javax/swing/ButtonGroup.P .deps/javax/swing/ButtonModel.P \ +-.deps/javax/swing/CellEditor.P .deps/javax/swing/CellRendererPane.P \ +-.deps/javax/swing/ComboBoxEditor.P .deps/javax/swing/ComboBoxModel.P \ +-.deps/javax/swing/ComponentInputMap.P .deps/javax/swing/DebugGraphics.P \ ++.deps/javax/swing/AbstractSpinnerModel.P .deps/javax/swing/Action.P \ ++.deps/javax/swing/ActionMap.P .deps/javax/swing/BorderFactory.P \ ++.deps/javax/swing/BoundedRangeModel.P .deps/javax/swing/Box.P \ ++.deps/javax/swing/BoxLayout.P .deps/javax/swing/ButtonGroup.P \ ++.deps/javax/swing/ButtonModel.P .deps/javax/swing/CellEditor.P \ ++.deps/javax/swing/CellRendererPane.P .deps/javax/swing/ComboBoxEditor.P \ ++.deps/javax/swing/ComboBoxModel.P .deps/javax/swing/ComponentInputMap.P \ ++.deps/javax/swing/DebugGraphics.P \ + .deps/javax/swing/DefaultBoundedRangeModel.P \ + .deps/javax/swing/DefaultButtonModel.P \ + .deps/javax/swing/DefaultCellEditor.P \ +@@ -4341,8 +4431,9 @@ + .deps/javax/swing/JRadioButtonMenuItem.P .deps/javax/swing/JRootPane.P \ + .deps/javax/swing/JScrollBar.P .deps/javax/swing/JScrollPane.P \ + .deps/javax/swing/JSeparator.P .deps/javax/swing/JSlider.P \ +-.deps/javax/swing/JSplitPane.P .deps/javax/swing/JTabbedPane.P \ +-.deps/javax/swing/JTable.P .deps/javax/swing/JTextField.P \ ++.deps/javax/swing/JSpinner.P .deps/javax/swing/JSplitPane.P \ ++.deps/javax/swing/JTabbedPane.P .deps/javax/swing/JTable.P \ ++.deps/javax/swing/JTextArea.P .deps/javax/swing/JTextField.P \ + .deps/javax/swing/JTextPane.P .deps/javax/swing/JToggleButton.P \ + .deps/javax/swing/JToolBar.P .deps/javax/swing/JToolTip.P \ + .deps/javax/swing/JTree.P .deps/javax/swing/JViewport.P \ +@@ -4361,9 +4452,11 @@ + .deps/javax/swing/ScrollPaneLayout.P .deps/javax/swing/Scrollable.P \ + .deps/javax/swing/SingleSelectionModel.P \ + .deps/javax/swing/SizeRequirements.P .deps/javax/swing/SizeSequence.P \ ++.deps/javax/swing/SpinnerModel.P .deps/javax/swing/SpinnerNumberModel.P \ ++.deps/javax/swing/Spring.P .deps/javax/swing/SpringLayout.P \ + .deps/javax/swing/SwingConstants.P .deps/javax/swing/SwingUtilities.P \ +-.deps/javax/swing/Timer.P .deps/javax/swing/ToggleButtonModel.P \ +-.deps/javax/swing/ToolTipManager.P .deps/javax/swing/UIDefaults.P \ ++.deps/javax/swing/Timer.P .deps/javax/swing/ToolTipManager.P \ ++.deps/javax/swing/TransferHandler.P .deps/javax/swing/UIDefaults.P \ + .deps/javax/swing/UIManager.P \ + .deps/javax/swing/UnsupportedLookAndFeelException.P \ + .deps/javax/swing/ViewportLayout.P .deps/javax/swing/WindowConstants.P \ +@@ -4381,6 +4474,10 @@ + .deps/javax/swing/colorchooser/ColorChooserComponentFactory.P \ + .deps/javax/swing/colorchooser/ColorSelectionModel.P \ + .deps/javax/swing/colorchooser/DefaultColorSelectionModel.P \ ++.deps/javax/swing/colorchooser/DefaultHSBChooserPanel.P \ ++.deps/javax/swing/colorchooser/DefaultPreviewPanel.P \ ++.deps/javax/swing/colorchooser/DefaultRGBChooserPanel.P \ ++.deps/javax/swing/colorchooser/DefaultSwatchChooserPanel.P \ + .deps/javax/swing/event/AncestorEvent.P \ + .deps/javax/swing/event/AncestorListener.P \ + .deps/javax/swing/event/CaretEvent.P \ +@@ -4459,26 +4556,59 @@ + .deps/javax/swing/plaf/TextUI.P .deps/javax/swing/plaf/ToolBarUI.P \ + .deps/javax/swing/plaf/ToolTipUI.P .deps/javax/swing/plaf/TreeUI.P \ + .deps/javax/swing/plaf/UIResource.P .deps/javax/swing/plaf/ViewportUI.P \ ++.deps/javax/swing/plaf/basic/BasicArrowButton.P \ + .deps/javax/swing/plaf/basic/BasicBorders.P \ ++.deps/javax/swing/plaf/basic/BasicButtonListener.P \ + .deps/javax/swing/plaf/basic/BasicButtonUI.P \ ++.deps/javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.P \ + .deps/javax/swing/plaf/basic/BasicCheckBoxUI.P \ +-.deps/javax/swing/plaf/basic/BasicDefaults.P \ ++.deps/javax/swing/plaf/basic/BasicColorChooserUI.P \ ++.deps/javax/swing/plaf/basic/BasicComboBoxEditor.P \ ++.deps/javax/swing/plaf/basic/BasicComboBoxRenderer.P \ ++.deps/javax/swing/plaf/basic/BasicComboBoxUI.P \ ++.deps/javax/swing/plaf/basic/BasicComboPopup.P \ ++.deps/javax/swing/plaf/basic/BasicDesktopIconUI.P \ ++.deps/javax/swing/plaf/basic/BasicDesktopPaneUI.P \ ++.deps/javax/swing/plaf/basic/BasicFormattedTextFieldUI.P \ + .deps/javax/swing/plaf/basic/BasicGraphicsUtils.P \ + .deps/javax/swing/plaf/basic/BasicIconFactory.P \ ++.deps/javax/swing/plaf/basic/BasicInternalFrameTitlePane.P \ ++.deps/javax/swing/plaf/basic/BasicInternalFrameUI.P \ + .deps/javax/swing/plaf/basic/BasicLabelUI.P \ + .deps/javax/swing/plaf/basic/BasicListUI.P \ + .deps/javax/swing/plaf/basic/BasicLookAndFeel.P \ ++.deps/javax/swing/plaf/basic/BasicMenuBarUI.P \ ++.deps/javax/swing/plaf/basic/BasicMenuItemUI.P \ ++.deps/javax/swing/plaf/basic/BasicMenuUI.P \ + .deps/javax/swing/plaf/basic/BasicOptionPaneUI.P \ + .deps/javax/swing/plaf/basic/BasicPanelUI.P \ ++.deps/javax/swing/plaf/basic/BasicPasswordFieldUI.P \ ++.deps/javax/swing/plaf/basic/BasicPopupMenuSeparatorUI.P \ ++.deps/javax/swing/plaf/basic/BasicPopupMenuUI.P \ ++.deps/javax/swing/plaf/basic/BasicProgressBarUI.P \ ++.deps/javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.P \ + .deps/javax/swing/plaf/basic/BasicRadioButtonUI.P \ ++.deps/javax/swing/plaf/basic/BasicRootPaneUI.P \ ++.deps/javax/swing/plaf/basic/BasicScrollBarUI.P \ + .deps/javax/swing/plaf/basic/BasicScrollPaneUI.P \ ++.deps/javax/swing/plaf/basic/BasicSeparatorUI.P \ ++.deps/javax/swing/plaf/basic/BasicSliderUI.P \ ++.deps/javax/swing/plaf/basic/BasicSpinnerUI.P \ + .deps/javax/swing/plaf/basic/BasicSplitPaneDivider.P \ + .deps/javax/swing/plaf/basic/BasicSplitPaneUI.P \ + .deps/javax/swing/plaf/basic/BasicTabbedPaneUI.P \ ++.deps/javax/swing/plaf/basic/BasicTableHeaderUI.P \ ++.deps/javax/swing/plaf/basic/BasicTableUI.P \ ++.deps/javax/swing/plaf/basic/BasicTextAreaUI.P \ ++.deps/javax/swing/plaf/basic/BasicTextFieldUI.P \ + .deps/javax/swing/plaf/basic/BasicTextUI.P \ + .deps/javax/swing/plaf/basic/BasicToggleButtonUI.P \ ++.deps/javax/swing/plaf/basic/BasicToolBarSeparatorUI.P \ ++.deps/javax/swing/plaf/basic/BasicToolBarUI.P \ ++.deps/javax/swing/plaf/basic/BasicToolTipUI.P \ + .deps/javax/swing/plaf/basic/BasicTreeUI.P \ + .deps/javax/swing/plaf/basic/BasicViewportUI.P \ ++.deps/javax/swing/plaf/basic/ComboPopup.P \ + .deps/javax/swing/plaf/metal/MetalLookAndFeel.P \ + .deps/javax/swing/table/AbstractTableModel.P \ + .deps/javax/swing/table/DefaultTableCellRenderer.P \ +@@ -4493,25 +4623,32 @@ + .deps/javax/swing/text/AbstractDocument.P \ + .deps/javax/swing/text/AttributeSet.P \ + .deps/javax/swing/text/BadLocationException.P \ +-.deps/javax/swing/text/Caret.P \ +-.deps/javax/swing/text/CharacterIterator.P \ +-.deps/javax/swing/text/ComponentView.P \ ++.deps/javax/swing/text/Caret.P .deps/javax/swing/text/ComponentView.P \ + .deps/javax/swing/text/DefaultCaret.P \ + .deps/javax/swing/text/DefaultEditorKit.P \ ++.deps/javax/swing/text/DefaultHighlighter.P \ + .deps/javax/swing/text/Document.P \ + .deps/javax/swing/text/DocumentFilter.P \ + .deps/javax/swing/text/EditorKit.P .deps/javax/swing/text/Element.P \ +-.deps/javax/swing/text/GapContent.P \ ++.deps/javax/swing/text/FieldView.P .deps/javax/swing/text/GapContent.P \ ++.deps/javax/swing/text/Highlighter.P \ + .deps/javax/swing/text/JTextComponent.P .deps/javax/swing/text/Keymap.P \ ++.deps/javax/swing/text/LayeredHighlighter.P \ + .deps/javax/swing/text/MutableAttributeSet.P \ + .deps/javax/swing/text/NavigationFilter.P \ + .deps/javax/swing/text/PlainDocument.P \ +-.deps/javax/swing/text/PlainEditorKit.P \ +-.deps/javax/swing/text/Position.P .deps/javax/swing/text/Segment.P \ +-.deps/javax/swing/text/Style.P .deps/javax/swing/text/StyledDocument.P \ ++.deps/javax/swing/text/PlainView.P .deps/javax/swing/text/Position.P \ ++.deps/javax/swing/text/Segment.P \ ++.deps/javax/swing/text/SimpleAttributeSet.P \ ++.deps/javax/swing/text/Style.P .deps/javax/swing/text/StyleConstants.P \ ++.deps/javax/swing/text/StyleContext.P \ ++.deps/javax/swing/text/StyledDocument.P \ + .deps/javax/swing/text/StyledEditorKit.P \ +-.deps/javax/swing/text/TextAction.P .deps/javax/swing/text/View.P \ +-.deps/javax/swing/text/ViewFactory.P .deps/javax/swing/text/html/HTML.P \ ++.deps/javax/swing/text/TabExpander.P .deps/javax/swing/text/TabSet.P \ ++.deps/javax/swing/text/TabStop.P .deps/javax/swing/text/TabableView.P \ ++.deps/javax/swing/text/TextAction.P .deps/javax/swing/text/Utilities.P \ ++.deps/javax/swing/text/View.P .deps/javax/swing/text/ViewFactory.P \ ++.deps/javax/swing/text/html/HTML.P \ + .deps/javax/swing/text/html/parser/ParserDelegator.P \ + .deps/javax/swing/tree/AbstractLayoutCache.P \ + .deps/javax/swing/tree/DefaultMutableTreeNode.P \ +@@ -4557,6 +4694,7 @@ + .deps/javax/transaction/xa/Xid.P .deps/jni.P .deps/jni/classpath/jcl.P \ + .deps/jni/classpath/jnilink.P .deps/jni/classpath/native_state.P \ + .deps/jni/classpath/primlib.P \ ++.deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.P \ + .deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeer.P \ + .deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeerMetrics.P \ + .deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.P \ +@@ -4566,6 +4704,7 @@ + .deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.P \ + .deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.P \ + .deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.P \ ++.deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.P \ + .deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.P \ + .deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.P \ + .deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.P \ +@@ -4574,11 +4713,13 @@ + .deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.P \ + .deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.P \ + .deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.P \ ++.deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.P \ + .deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.P \ + .deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.P \ + .deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.P \ + .deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.P \ + .deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.P \ ++.deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.P \ + .deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.P \ + .deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.P \ + .deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.P \ +Index: gnu/awt/LightweightRedirector.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/awt/LightweightRedirector.java,v +retrieving revision 1.1 +diff -u -r1.1 LightweightRedirector.java +--- gnu/awt/LightweightRedirector.java 22 Oct 2000 17:46:08 -0000 1.1 ++++ gnu/awt/LightweightRedirector.java 6 Sep 2004 16:35:37 -0000 +@@ -141,7 +141,7 @@ + + MouseEvent redirected = new MouseEvent(source, event.getID(), + event.getWhen(), +- event.getModifiers(), ++ event.getModifiersEx(), + x, y, + event.getClickCount(), + event.isPopupTrigger()); +@@ -157,20 +157,20 @@ + */ + int getButtonNumber(InputEvent event) + { +- int modifiers = event.getModifiers(); ++ int modifiers = event.getModifiersEx(); + + modifiers &= +- InputEvent.BUTTON1_MASK | +- InputEvent.BUTTON2_MASK | +- InputEvent.BUTTON3_MASK; ++ InputEvent.BUTTON1_DOWN_MASK | ++ InputEvent.BUTTON2_DOWN_MASK | ++ InputEvent.BUTTON3_DOWN_MASK; + + switch (modifiers) + { +- case InputEvent.BUTTON1_MASK: ++ case InputEvent.BUTTON1_DOWN_MASK: + return 1; +- case InputEvent.BUTTON2_MASK: ++ case InputEvent.BUTTON2_DOWN_MASK: + return 2; +- case InputEvent.BUTTON3_MASK: ++ case InputEvent.BUTTON3_DOWN_MASK: + return 3; + case 0: + return 0; +Index: gnu/java/awt/BitwiseXORComposite.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/BitwiseXORComposite.java,v +retrieving revision 1.1 +diff -u -r1.1 BitwiseXORComposite.java +--- gnu/java/awt/BitwiseXORComposite.java 12 Jan 2004 19:11:00 -0000 1.1 ++++ gnu/java/awt/BitwiseXORComposite.java 6 Sep 2004 16:35:37 -0000 +@@ -232,7 +232,7 @@ + WritableRaster dstOut) + { + int aX, bX, dstX, aY, bY, dstY, width, height; +- int xorPixel, transferType; ++ int xorPixel; + int[] srcLine, dstLine; + + aX = src.getMinX(); +Index: gnu/java/awt/Buffers.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/Buffers.java,v +retrieving revision 1.2 +diff -u -r1.2 Buffers.java +--- gnu/java/awt/Buffers.java 22 Jan 2002 22:39:48 -0000 1.2 ++++ gnu/java/awt/Buffers.java 6 Sep 2004 16:35:37 -0000 +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2000, 2002 Free Software Foundation ++/* Copyright (C) 2000, 2002, 2004 Free Software Foundation + + This file is part of GNU Classpath. + +@@ -83,10 +83,16 @@ + { + case DataBuffer.TYPE_BYTE: + return new DataBufferByte(size, numBanks); ++ case DataBuffer.TYPE_SHORT: ++ return new DataBufferShort(size, numBanks); + case DataBuffer.TYPE_USHORT: + return new DataBufferUShort(size, numBanks); + case DataBuffer.TYPE_INT: + return new DataBufferInt(size, numBanks); ++ case DataBuffer.TYPE_FLOAT: ++ return new DataBufferFloat(size, numBanks); ++ case DataBuffer.TYPE_DOUBLE: ++ return new DataBufferDouble(size, numBanks); + default: + throw new UnsupportedOperationException(); + } +@@ -106,10 +112,16 @@ + { + case DataBuffer.TYPE_BYTE: + return new DataBufferByte((byte[]) data, size); ++ case DataBuffer.TYPE_SHORT: ++ return new DataBufferShort((short[]) data, size); + case DataBuffer.TYPE_USHORT: + return new DataBufferUShort((short[]) data, size); + case DataBuffer.TYPE_INT: + return new DataBufferInt((int[]) data, size); ++ case DataBuffer.TYPE_FLOAT: ++ return new DataBufferFloat((float[]) data, size); ++ case DataBuffer.TYPE_DOUBLE: ++ return new DataBufferDouble((double[]) data, size); + default: + throw new UnsupportedOperationException(); + } +@@ -126,10 +138,22 @@ + { + if (buffer instanceof DataBufferByte) + return ((DataBufferByte) buffer).getData(); ++ ++ if (buffer instanceof DataBufferShort) ++ return ((DataBufferShort) buffer).getData(); ++ + if (buffer instanceof DataBufferUShort) + return ((DataBufferUShort) buffer).getData(); ++ + if (buffer instanceof DataBufferInt) + return ((DataBufferInt) buffer).getData(); ++ ++ if (buffer instanceof DataBufferFloat) ++ return ((DataBufferFloat) buffer).getData(); ++ ++ if (buffer instanceof DataBufferDouble) ++ return ((DataBufferDouble) buffer).getData(); ++ + throw new ClassCastException("Unknown data buffer type"); + } + +@@ -149,6 +173,11 @@ + from = ((DataBufferByte) src).getData(); + if (dest == null) dest = new byte[length+destOffset]; + } ++ else if (src instanceof DataBufferShort) ++ { ++ from = ((DataBufferShort) src).getData(); ++ if (dest == null) dest = new short[length+destOffset]; ++ } + else if (src instanceof DataBufferUShort) + { + from = ((DataBufferUShort) src).getData(); +@@ -159,6 +188,16 @@ + from = ((DataBufferInt) src).getData(); + if (dest == null) dest = new int[length+destOffset]; + } ++ else if (src instanceof DataBufferFloat) ++ { ++ from = ((DataBufferFloat) src).getData(); ++ if (dest == null) dest = new float[length+destOffset]; ++ } ++ else if (src instanceof DataBufferDouble) ++ { ++ from = ((DataBufferDouble) src).getData(); ++ if (dest == null) dest = new double[length+destOffset]; ++ } + else + { + throw new ClassCastException("Unknown data buffer type"); +Index: gnu/java/awt/ClasspathToolkit.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/ClasspathToolkit.java,v +retrieving revision 1.1 +diff -u -r1.1 ClasspathToolkit.java +--- gnu/java/awt/ClasspathToolkit.java 25 Oct 2003 18:41:45 -0000 1.1 ++++ gnu/java/awt/ClasspathToolkit.java 6 Sep 2004 16:35:37 -0000 +@@ -48,6 +48,7 @@ + import java.awt.HeadlessException; + import java.awt.Toolkit; + import java.awt.image.ColorModel; ++import java.awt.image.ImageProducer; + import java.io.File; + import java.io.InputStream; + import java.io.IOException; +@@ -331,4 +332,17 @@ + .initCause(muex); + } + } ++ ++ /** ++ * Creates an ImageProducer from the specified URL. The image is assumed ++ * to be in a recognised format. If the toolkit does not implement the ++ * image format or the image format is not recognised, null is returned. ++ * This default implementation is overriden by the Toolkit implementations. ++ * ++ * @param url URL to read image data from. ++ */ ++ public ImageProducer createImageProducer(URL url) ++ { ++ return null; ++ } + } +Index: gnu/java/awt/ComponentDataBlitOp.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/ComponentDataBlitOp.java,v +retrieving revision 1.2 +diff -u -r1.2 ComponentDataBlitOp.java +--- gnu/java/awt/ComponentDataBlitOp.java 22 Jan 2002 22:39:48 -0000 1.2 ++++ gnu/java/awt/ComponentDataBlitOp.java 6 Sep 2004 16:35:37 -0000 +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2000, 2002 Free Software Foundation ++/* Copyright (C) 2000, 2002, 2004 Free Software Foundation + + This file is part of GNU Classpath. + +@@ -36,9 +36,14 @@ + + package gnu.java.awt; + +-import java.awt.geom.*; +-import java.awt.image.*; + import java.awt.RenderingHints; ++import java.awt.geom.Point2D; ++import java.awt.geom.Rectangle2D; ++import java.awt.image.ComponentSampleModel; ++import java.awt.image.DataBuffer; ++import java.awt.image.Raster; ++import java.awt.image.RasterOp; ++import java.awt.image.WritableRaster; + + /** + * This raster copy operation assumes that both source and destination +@@ -52,7 +57,7 @@ + */ + public class ComponentDataBlitOp implements RasterOp + { +- public static ComponentDataBlitOp INSTANCE = new ComponentDataBlitOp(); ++ public static final ComponentDataBlitOp INSTANCE = new ComponentDataBlitOp(); + + public WritableRaster filter(Raster src, WritableRaster dest) + { +Index: gnu/java/awt/EmbeddedWindow.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/EmbeddedWindow.java,v +retrieving revision 1.3 +diff -u -r1.3 EmbeddedWindow.java +--- gnu/java/awt/EmbeddedWindow.java 5 Jan 2004 21:41:20 -0000 1.3 ++++ gnu/java/awt/EmbeddedWindow.java 6 Sep 2004 16:35:37 -0000 +@@ -1,5 +1,5 @@ + /* EmbeddedWindow.java -- +- Copyright (C) 2003 Free Software Foundation, Inc. ++ Copyright (C) 2003, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -38,15 +38,21 @@ + + package gnu.java.awt; + ++import gnu.classpath.Configuration; + import gnu.java.awt.peer.EmbeddedWindowPeer; ++import gnu.java.security.action.SetAccessibleAction; ++ ++import java.awt.Component; + import java.awt.Frame; + import java.awt.Toolkit; ++import java.lang.reflect.Field; ++import java.security.AccessController; + + /** + * Represents an AWT window that can be embedded into another + * application. + * +- * @author Michael Koch ++ * @author Michael Koch (konqueror@gmx.de) + */ + public class EmbeddedWindow extends Frame + { +@@ -84,16 +90,29 @@ + + if (! (tk instanceof EmbeddedWindowSupport)) + throw new UnsupportedOperationException +- ("Embedded windows are not supported by the current peers: " + tk.getClass()); ++ ("Embedded windows are not supported by the current peers: " ++ + tk.getClass()); ++ ++ // Circumvent the package-privateness of the AWT internal ++ // java.awt.Component.peer member variable. ++ try ++ { ++ Field peerField = Component.class.getDeclaredField("peer"); ++ AccessController.doPrivileged(new SetAccessibleAction(peerField)); ++ peerField.set(this, ((EmbeddedWindowSupport) tk).createEmbeddedWindow (this)); ++ } ++ catch (IllegalAccessException e) ++ { ++ // This should never happen. ++ } ++ catch (NoSuchFieldException e) ++ { ++ // This should never happen. ++ } + +- setWindowPeer (((EmbeddedWindowSupport) tk).createEmbeddedWindow (this)); + super.addNotify(); + } + +- // This method is only made native to circumvent the package-privateness of +- // an AWT internal java.awt.Component.peer member variable. +- native void setWindowPeer (EmbeddedWindowPeer peer); +- + /** + * If the native peer for this embedded window has been created, + * then setHandle will embed the window. If not, setHandle tells +@@ -108,8 +127,8 @@ + throw new RuntimeException ("EmbeddedWindow is already embedded"); + + this.handle = handle; +- if (peer != null) +- ((EmbeddedWindowPeer) peer).embed (this.handle); ++ if (getPeer() != null) ++ ((EmbeddedWindowPeer) getPeer()).embed (this.handle); + } + + /** +Index: gnu/java/awt/natEmbeddedWindow.cc +=================================================================== +RCS file: gnu/java/awt/natEmbeddedWindow.cc +diff -N gnu/java/awt/natEmbeddedWindow.cc +--- gnu/java/awt/natEmbeddedWindow.cc 4 Sep 2003 16:58:13 -0000 1.3 ++++ /dev/null 1 Jan 1970 00:00:00 -0000 +@@ -1,18 +0,0 @@ +-/* Copyright (C) 2003 Free Software Foundation +- +- This file is part of libgcj. +- +-This software is copyrighted work licensed under the terms of the +-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for +-details. */ +- +-#include +-#include +-#include +- +-void +-gnu::java::awt::EmbeddedWindow::setWindowPeer (gnu::java::awt::peer::EmbeddedWindowPeer* w) +-{ +- if (!peer) +- peer = reinterpret_cast< ::java::awt::peer::ComponentPeer *> (w); +-} +Index: gnu/java/awt/image/ImageDecoder.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/image/ImageDecoder.java,v +retrieving revision 1.3 +diff -u -r1.3 ImageDecoder.java +--- gnu/java/awt/image/ImageDecoder.java 10 Jan 2004 21:32:22 -0000 1.3 ++++ gnu/java/awt/image/ImageDecoder.java 6 Sep 2004 16:35:37 -0000 +@@ -1,5 +1,5 @@ + /* ImageDecoder.java +- Copyright (C) 1999, 2000 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2000, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -37,11 +37,14 @@ + + package gnu.java.awt.image; + +-import java.awt.*; +-import java.awt.image.*; +-import java.util.*; +-import java.io.*; ++import java.awt.image.ImageConsumer; ++import java.awt.image.ImageProducer; ++import java.io.ByteArrayInputStream; ++import java.io.FileInputStream; ++import java.io.InputStream; ++import java.io.IOException; + import java.net.URL; ++import java.util.Vector; + + public abstract class ImageDecoder implements ImageProducer + { +@@ -53,8 +56,6 @@ + int length; + InputStream input; + +- public static ColorModel cm; +- + static + { + // FIXME: there was some broken code here that looked like +@@ -97,7 +98,9 @@ + + public void startProduction (ImageConsumer ic) + { ++ if (!isConsumer(ic)) + addConsumer (ic); ++ + Vector list = (Vector) consumers.clone (); + try + { +Index: gnu/java/awt/peer/ClasspathFontPeer.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/ClasspathFontPeer.java,v +retrieving revision 1.1 +diff -u -r1.1 ClasspathFontPeer.java +--- gnu/java/awt/peer/ClasspathFontPeer.java 25 Oct 2003 18:41:45 -0000 1.1 ++++ gnu/java/awt/peer/ClasspathFontPeer.java 6 Sep 2004 16:35:37 -0000 +@@ -1,5 +1,5 @@ + /* ClasspathFontPeer.java -- Font peer used by GNU Classpath. +- Copyright (C) 2003 Free Software Foundation, Inc. ++ Copyright (C) 2003, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -56,12 +56,12 @@ + *

State kept by the peer: a peer is generated for each Font + * object in the default implementation. If you wish to share peers between + * fonts, you will need to subclass both ClasspathFontPeer and +- * {@link ClasspathToolKit}. ++ * {@link ClasspathToolKit}.

+ * + *

Thread Safety: Methods of this interface may be called + * from arbitrary threads at any time. Implementations of the + * ClasspathFontPeer interface are required to perform +- * the necessary synchronization. ++ * the necessary synchronization.

+ * + * @see java.awt.Font#getPeer + * @see java.awt.Toolkit#getFontPeer +@@ -395,6 +395,23 @@ + } + + /** ++ * Implementation of {@link Font#deriveFont(int, float)} ++ * ++ * @param font the font this peer is being called from. This may be ++ * useful if you are sharing peers between Font objects. Otherwise it may ++ * be ignored. ++ */ ++ ++ public Font deriveFont (Font font, int style, float size) ++ { ++ Map attrs = new HashMap (); ++ getStandardAttributes (attrs); ++ copyStyleToAttrs (style, attrs); ++ copySizeToAttrs (size, attrs); ++ return tk().getFont (logicalName, attrs); ++ } ++ ++ /** + * Implementation of {@link Font#deriveFont(float)} + * + * @param font the font this peer is being called from. This may be +@@ -444,6 +461,22 @@ + } + + /** ++ * Implementation of {@link Font#deriveFont(AffineTransform)} ++ * ++ * @param font the font this peer is being called from. This may be ++ * useful if you are sharing peers between Font objects. Otherwise it may ++ * be ignored. ++ */ ++ ++ public Font deriveFont (Font font, AffineTransform t) ++ { ++ Map attrs = new HashMap (); ++ getStandardAttributes (attrs); ++ copyTransformToAttrs (t, attrs); ++ return tk().getFont (logicalName, attrs); ++ } ++ ++ /** + * Implementation of {@link Font#deriveFont(Map)} + * + * @param font the font this peer is being called from. This may be +@@ -501,6 +534,8 @@ + + public AffineTransform getTransform (Font font) + { ++ if (transform == null) ++ transform = new AffineTransform (); + return transform; + } + +Index: gnu/java/awt/peer/GLightweightPeer.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/GLightweightPeer.java,v +retrieving revision 1.2 +diff -u -r1.2 GLightweightPeer.java +--- gnu/java/awt/peer/GLightweightPeer.java 10 Jan 2004 21:32:22 -0000 1.2 ++++ gnu/java/awt/peer/GLightweightPeer.java 6 Sep 2004 16:35:37 -0000 +@@ -1,5 +1,5 @@ + /* GLightweightPeer.java -- +- Copyright (C) 2003 Free Software Foundation, Inc. ++ Copyright (C) 2003, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -45,7 +45,6 @@ + import java.awt.Cursor; + import java.awt.Dimension; + import java.awt.Font; +-import java.awt.Font; + import java.awt.FontMetrics; + import java.awt.Graphics; + import java.awt.GraphicsConfiguration; +Index: gnu/java/awt/peer/gtk/GThreadMutex.java +=================================================================== +RCS file: gnu/java/awt/peer/gtk/GThreadMutex.java +diff -N gnu/java/awt/peer/gtk/GThreadMutex.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gnu/java/awt/peer/gtk/GThreadMutex.java 6 Sep 2004 16:35:37 -0000 +@@ -0,0 +1,109 @@ ++/* GThreadMutex.java -- Implements a mutex object for glib's gthread ++ abstraction, for use with GNU Classpath's --portable-native-sync option. ++ This is used in gthread-jni.c ++ ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package gnu.java.awt.peer.gtk; ++ ++/** Implements a mutex object for glib's gthread ++ abstraction, for use with GNU Classpath's --portable-native-sync option. ++ This is used in gthread-jni.c. ++ ++ We use this object to implement the POSIX semantics for Mutexes. They are ++ needed are needed for the function vector that is passed to glib's ++ g_thread subpackage's initialization function. ++ ++ The GThreadMutex object itself serves as the Real Lock; if code has ++ entered the monitor for this GThreadMutex object (in Java language, if ++ it's synchronized on this object) then it holds the lock that this object ++ represents. ++ ++ @author Steven Augart ++ May, 2004 ++ ++ ++*/ ++ ++class GThreadMutex ++{ ++ /** Might "lock" be locked? Is anyone waiting ++ to get that lock? How long is the queue? ++ ++ If zero, nobody holds a lock on this GThreadMutex object, and nobody is ++ trying to get one. Before someone attempts to acquire a lock on this ++ object, they must increment potentialLockers. After they release their ++ lock on this object, they must decrement potentialLockers. ++ ++ Access to this field is guarded by synchronizing on the object ++ lockForPotentialLockers. ++ ++ After construction, we only access this field via JNI. ++ */ ++ volatile int potentialLockers; ++ ++ /** An object to synchronize to if you want to examine or modify the ++ potentialLockers field. Only hold this lock for brief ++ moments, just long enough to check or set the value of ++ lockForPotentialLockers. ++ ++ We use this representation so that g_thread_mutex_trylock() will work ++ with the POSIX semantics. This is the only case in which you ever hold a ++ lock on lockForPotentialLockers while trying to get another ++ lock -- if you are the mutex_trylock() implementation, and you have just ++ checked that potentialLockers has the value zero. In that ++ case, mutex_trylock() holds the lock on lockForPotentialLockers so that ++ another thread calling mutex_trylock() or mutex_lock() won't increment ++ potentialLockers after we've checked it and before we've gained the lock ++ on the POSIX mutex. Of course, in that case the operation of gaining ++ the POSIX lock itself will succeed immediately, and once it has ++ succeeded, trylock releases lockForPotentialLockers right away, ++ incremented to 1 (one). ++ ++ After construction, we only access this field via JNI. ++ */ ++ Object lockForPotentialLockers; ++ ++ GThreadMutex() ++ { ++ potentialLockers = 0; ++ lockForPotentialLockers = new Object(); ++ } ++} ++// Local Variables: ++// c-file-style: "gnu" ++// End: +Index: gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java +=================================================================== +RCS file: gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java +diff -N gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java 6 Sep 2004 16:35:38 -0000 +@@ -0,0 +1,302 @@ ++/* GThreadNativeMethodRunner.java -- Implements pthread_create(), under ++ glib's gthread abstraction, for use with GNU Classpath's ++ --portable-native-sync option. ++ This is used by gthread-jni.c ++ ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package gnu.java.awt.peer.gtk; ++import java.lang.ref.WeakReference; ++import java.util.Set; ++import java.util.Collections; ++import java.util.HashSet; ++ ++/** Implements pthread_create(), under glib's gthread abstraction, for use ++ with GNU Classpath's --portable-native-sync option. This is used in ++ gthread-jni.c ++ ++ Also implements a registry for threads, mapping Thread objects to small ++ integers. The registry uses weak references for threads that aren't ++ joinable, so that they will be garbage collected. ++ ++ There are a number of possible alternative implementations. ++ ++ ++ The rest of this comment consists of an answer to a question that was ++ raised on the commit-classpath mailing list: ++ ++ Mark Wielaard wrote: ++ ++ > Can't we assume that jobject and gpointer are both (void *) so we don't ++ > need the int <-> Thread (global jobject ref) mapping? ++ > Maybe there are platforms where jobject and gpointer aren't the same, ++ > but I guess that is pretty unlikely. ++ ++ ++ I agree with you on the pointer size issues. A gpointer is a void *, so ++ it's certainly guaranteed to be at least as large as any other ++ pointer. And a jobject is implicitly an opaque pointer (in Jikes RVM, we ++ use small integers, but we coerce them into the representation of a ++ pointer). ++ ++ The int <==> Thread mapping addresses a different issue. I realize that I ++ did not document this properly (two and a half lines in thread_create), ++ and the point is subtle (at least to me; took me a while to figure out). ++ ++ The int => Thread mapping always returns jobjects that are local ++ references, not global ones. This is because Thread objects need to be ++ able to go away and be garbage collected after the thread they refer to ++ has died. ++ ++ If we keep a global object reference to a thread, then when do we delete ++ that global object reference? We have an answer in the case of GThread ++ objects that were explicitly created with the joinable attribute. It is ++ safe for us to maintain a global reference to any joinable thread, since ++ the joinable thread must linger (even if only in a zombie state) ++ until it's explicitly joined via a g_thread_join() call. The global ref ++ could be cleaned up at that point too. ++ ++ However, in the case of GThreads that were created non-joinable by ++ g_thread_create(), and in the case of Java threads that were created ++ within pure Java code (not via g_thread_create()), we don't want them to ++ linger forever, and there is no way to tell when the last reference ++ to such threads needs to expire. In the case of this application -- AWT ++ with GTK peers -- it would probably be safe anyway, since there are not ++ very many threads we create, but I was going for correctness even in the ++ case of long-running programs that might set up and tear down AWT ++ interfaces many times. ++ ++ So, I duplicated the POSIX thread-ID semantics. The thread ID of a ++ non-joinable thread remains valid as long as that thread is still alive. ++ Once that thread dies, the old thread ID may be reused at any moment. And ++ that's why the array indexed by thread ID numbers is an array of weak ++ references. ++ ++ That's also why the int => Thread jobject mapping function always returns ++ local references, since global references would lock the Thread in memory ++ forever. ++ ++ I would dearly love there to be a cleaner solution. I dislike the ++ repeated dips from C code into Java that are necessary to look up thread ++ ID numbers. If anyone can think of one, I'm all ears. ++*/ ++ ++class GThreadNativeMethodRunner ++ extends Thread ++{ ++ /** The C function pointer that was passed to g_thread_create(). ++ Specifically, this the numeric address of an object of ++ C type "void *(*funcPtr)(void *funcArg)". ++ */ ++ private final long funcPtr; ++ ++ /** The argument for the function "funcPtr(funcArg)". */ ++ private final long funcArg; ++ ++ GThreadNativeMethodRunner(long funcPtr, long funcArg, boolean joinable) ++ { ++ this.funcPtr = funcPtr; ++ this.funcArg = funcArg; ++ ++ if (joinable) ++ registerSelfJoinable(); ++ } ++ ++ public void run() ++ { ++ nativeRun(funcPtr, funcArg); ++ } ++ ++ private native void nativeRun(long funcPtr, long funcArg); ++ ++ /** THREADS is an array of threads, indexed by thread ID codes. Not sure ++ whether this is the "best" approach but it does make it O(1) to look up a ++ thread by its ID. ++ ++ Zero is a valid thread ID code. Any negative number is invalid. ++ ++ Possible future fixes (TODO?) ++ ++ - The THREADS array will only grow. probably not a problem. ++ But we could keep count when nulling entries and shrink when we have ++ lots of nulls at the end. Probably not worth it. --mjw ++ ++ - Could make this a set of Object; see the comment on "joinable" below. ++ ++ The initial size of 17 is just a starting point. Any number will do, ++ including zero. ++ */ ++ private static WeakReference[] threads = new WeakReference[17]; ++ ++ /** Used by threadToThreadID, below. Returns the registration number of ++ the newly-registered thread. ++ */ ++ private static synchronized int registerThread(Thread t) ++ { ++ int i; ++ ++ for (i = 0; i < threads.length; ++i) ++ { ++ WeakReference ref = threads[i]; ++ if (ref == null) ++ break; // found an empty spot. ++ } ++ ++ if (i == threads.length) ++ { ++ /* expand the array */ ++ WeakReference[] bigger = new WeakReference[threads.length * 2]; ++ System.arraycopy(threads, 0, bigger, 0, threads.length); ++ threads = bigger; ++ } ++ ++ threads[i] = new WeakReference(t); ++ ++ return i; ++ } ++ ++ /** Look up the Thread ID # for a Thread. Assign a Thread ID # if none ++ exists. This is a general routine for handling all threads, including ++ the VM's main thread, if appropriate. ++ ++ ++ Runs in O(n/2) time. ++ ++ We can't just issue a threadID upon thread creation. If we were to do ++ that, not all threads would have a threadID, because not all threads ++ are launched by GThreadNativeMethodRunner. ++ */ ++ static synchronized int threadToThreadID(Thread t) ++ { ++ for (int i = 0; i < threads.length; ++i ) ++ { ++ if (threads[i] == null) ++ continue; ++ Thread referent = (Thread) threads[i].get(); ++ if (referent == null) ++ { ++ threads[i] = null; // Purge the dead WeakReference. ++ continue; ++ } ++ if (referent.equals(t)) ++ return i; ++ } // for() ++ ++ /* No match found. */ ++ return registerThread(t); ++ } ++ ++ /** @param threadID Must be a non-negative integer. ++ ++ Used to return null if the thread number was out of range or if ++ the thread was unregistered. Now we throw an exception. ++ ++ Possible Alternative Interface: We could go back to returning null in ++ some sort of check-free mode, so code that calls this function must ++ be prepared to get null. ++ */ ++ static Thread threadIDToThread(int threadID) ++ throws IllegalArgumentException ++ { ++ if (threadID < 0) ++ throw new IllegalArgumentException("Received a negative threadID, " ++ + threadID); ++ if (threadID >= threads.length) ++ throw new IllegalArgumentException("Received a threadID (" + threadID ++ + ") higher than was" ++ + " ever issued"); ++ ++ /* Note: if the user is using a stale reference, things will just ++ break. We might end up getting a different thread than the one ++ expected. ++ ++ TODO: Add an error-checking mode where the user's problems with threads ++ are announced. For instance, if the user asks for the thread ++ associated with a threadID that was never issued, we could print a ++ warning or even abort. ++ ++ TODO: Consider optionally disabling all of the error-checking we ++ already have; it probably slows down the implementation. We could ++ just return NULL. This is just the reverse of the above TODO item. ++ */ ++ ++ WeakReference threadRef = threads[threadID]; ++ ++ if (threadRef == null) ++ throw new IllegalArgumentException("Asked to look up a stale or unissued" ++ + "threadID (" + threadID + ")" ); ++ ++ ++ Thread referent = (Thread) threadRef.get(); ++ if (referent == null) ++ throw new IllegalArgumentException ("Asked to look up a stale threadID (" ++ + threadID + ")"); ++ return referent; ++ } ++ ++ /** Joinable threads need a hard reference, so that they won't go away when ++ they die. That is because their thread IDs need to stay valid until the ++ thread is joined via thread_join(threadID). Joinable threads have to be ++ explicitly joined before they are allowed to go away completely. ++ ++ Possible Alternative Implementation: Eliminate the Joinable set. When ++ calling getThreadIDFromThread() you know whether or not the thread ++ is joinable. So just store the Thread itself in the threads array? ++ Make that array an Object array and check with instanceof. This ++ looks cleaner and more robust to me and it saves a native -> Java ++ call. But instanceof might be expensive. --mjw ++ */ ++ private static final Set joinable = ++ Collections.synchronizedSet(new HashSet()); ++ ++ /** Only called from the constructor. */ ++ private void registerSelfJoinable() ++ { ++ joinable.add(this); ++ } ++ ++ /** This method is only called from JNI, and only after we have succeeded in ++ a thread_join() operation. */ ++ static void deRegisterJoinable(Thread thread) ++ { ++ joinable.remove(thread); ++ } ++} ++ ++// Local Variables: ++// c-file-style: "gnu" ++// End: +Index: gnu/java/awt/peer/gtk/GdkClasspathFontPeer.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GdkClasspathFontPeer.java,v +retrieving revision 1.2 +diff -u -r1.2 GdkClasspathFontPeer.java +--- gnu/java/awt/peer/gtk/GdkClasspathFontPeer.java 20 Nov 2003 22:44:01 -0000 1.2 ++++ gnu/java/awt/peer/gtk/GdkClasspathFontPeer.java 6 Sep 2004 16:35:38 -0000 +@@ -70,7 +70,9 @@ + { + System.loadLibrary("gtkpeer"); + } +- initStaticState (); ++ ++ if (GtkToolkit.useGraphics2D ()) ++ initStaticState (); + } + native static void initStaticState (); + private final int native_state = GtkGenericPeer.getUniqueInteger (); +Index: gnu/java/awt/peer/gtk/GdkFontMetrics.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GdkFontMetrics.java,v +retrieving revision 1.3 +diff -u -r1.3 GdkFontMetrics.java +--- gnu/java/awt/peer/gtk/GdkFontMetrics.java 1 Dec 2003 23:12:07 -0000 1.3 ++++ gnu/java/awt/peer/gtk/GdkFontMetrics.java 6 Sep 2004 16:35:38 -0000 +@@ -50,19 +50,21 @@ + MAX_ADVANCE = 4; + + private int[] metrics; +- private native int[] initState (String fname, int size); ++ private native int[] initState (String fname, int style, int size); + + public GdkFontMetrics (Font font) + { + super (font); +- metrics = initState (font.getName (), font.getSize ()); ++ metrics = initState (font.getName (), font.getStyle (), font.getSize ()); + } + +- native public int stringWidth (String fname, int size, String str); ++ native public int stringWidth (String fname, int style, int size, ++ String str); + + public int stringWidth (String str) + { +- return stringWidth (font.getName (), font.getSize (), str); ++ return stringWidth (font.getName (), font.getStyle (), font.getSize (), ++ str); + } + + public int charWidth (char ch) +Index: gnu/java/awt/peer/gtk/GdkGlyphVector.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GdkGlyphVector.java,v +retrieving revision 1.1 +diff -u -r1.1 GdkGlyphVector.java +--- gnu/java/awt/peer/gtk/GdkGlyphVector.java 25 Oct 2003 18:41:45 -0000 1.1 ++++ gnu/java/awt/peer/gtk/GdkGlyphVector.java 6 Sep 2004 16:35:38 -0000 +@@ -60,7 +60,9 @@ + { + System.loadLibrary("gtkpeer"); + } +- initStaticState (); ++ ++ if (GtkToolkit.useGraphics2D ()) ++ initStaticState (); + } + native static void initStaticState (); + private final int native_state = GtkGenericPeer.getUniqueInteger (); +Index: gnu/java/awt/peer/gtk/GdkGraphics.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GdkGraphics.java,v +retrieving revision 1.4 +diff -u -r1.4 GdkGraphics.java +--- gnu/java/awt/peer/gtk/GdkGraphics.java 22 Aug 2003 20:33:49 -0000 1.4 ++++ gnu/java/awt/peer/gtk/GdkGraphics.java 6 Sep 2004 16:35:38 -0000 +@@ -46,6 +46,7 @@ + import java.awt.Image; + import java.awt.Rectangle; + import java.awt.Shape; ++import java.awt.SystemColor; + import java.awt.image.ImageObserver; + import java.text.AttributedCharacterIterator; + +@@ -63,7 +64,7 @@ + + static final int GDK_COPY = 0, GDK_XOR = 2; + +- native int[] initState (GtkComponentPeer component); ++ native void initState (GtkComponentPeer component); + native void initState (int width, int height); + native void copyState (GdkGraphics g); + +@@ -83,15 +84,15 @@ + initState (width, height); + color = Color.black; + clip = new Rectangle (0, 0, width, height); +- font = new Font ("Dialog", Font.PLAIN, 10); ++ font = new Font ("Dialog", Font.PLAIN, 12); + } + + GdkGraphics (GtkComponentPeer component) + { + this.component = component; +- int rgb[] = initState (component); +- color = new Color (rgb[0], rgb[1], rgb[2]); +- font = new Font ("Dialog", Font.PLAIN, 10); ++ initState (component); ++ color = component.awtComponent.getForeground (); ++ font = component.awtComponent.getFont (); + Dimension d = component.awtComponent.getSize (); + clip = new Rectangle (0, 0, d.width, d.height); + } +@@ -125,6 +126,11 @@ + native public void dispose (); + + native void copyPixmap (Graphics g, int x, int y, int width, int height); ++ native void copyAndScalePixmap (Graphics g, boolean flip_x, boolean flip_y, ++ int src_x, int src_y, ++ int src_width, int src_height, ++ int dest_x, int dest_y, ++ int dest_width, int dest_height); + public boolean drawImage (Image img, int x, int y, + Color bgcolor, ImageObserver observer) + { +@@ -149,7 +155,10 @@ + return true; + } + +- return drawImage (img, x, y, component.getBackground (), observer); ++ if (component != null) ++ return drawImage (img, x, y, component.getBackground (), observer); ++ else ++ return drawImage (img, x, y, SystemColor.window, observer); + } + + public boolean drawImage (Image img, int x, int y, int width, int height, +@@ -157,7 +166,10 @@ + { + if (img instanceof GtkOffScreenImage) + { +- throw new RuntimeException (); ++ copyAndScalePixmap (img.getGraphics (), false, false, ++ 0, 0, img.getWidth (null), img.getHeight (null), ++ x, y, width, height); ++ return true; + } + + GtkImage image = (GtkImage) img; +@@ -168,8 +180,12 @@ + public boolean drawImage (Image img, int x, int y, int width, int height, + ImageObserver observer) + { +- return drawImage (img, x, y, width, height, component.getBackground (), +- observer); ++ if (component != null) ++ return drawImage (img, x, y, width, height, component.getBackground (), ++ observer); ++ else ++ return drawImage (img, x, y, width, height, SystemColor.window, ++ observer); + } + + public boolean drawImage (Image img, int dx1, int dy1, int dx2, int dy2, +@@ -178,7 +194,60 @@ + { + if (img instanceof GtkOffScreenImage) + { +- throw new RuntimeException (); ++ int dx_start, dy_start, d_width, d_height; ++ int sx_start, sy_start, s_width, s_height; ++ boolean x_flip = false; ++ boolean y_flip = false; ++ ++ if (dx1 < dx2) ++ { ++ dx_start = dx1; ++ d_width = dx2 - dx1; ++ } ++ else ++ { ++ dx_start = dx2; ++ d_width = dx1 - dx2; ++ x_flip ^= true; ++ } ++ if (dy1 < dy2) ++ { ++ dy_start = dy1; ++ d_height = dy2 - dy1; ++ } ++ else ++ { ++ dy_start = dy2; ++ d_height = dy1 - dy2; ++ y_flip ^= true; ++ } ++ if (sx1 < sx2) ++ { ++ sx_start = sx1; ++ s_width = sx2 - sx1; ++ } ++ else ++ { ++ sx_start = sx2; ++ s_width = sx1 - sx2; ++ x_flip ^= true; ++ } ++ if (sy1 < sy2) ++ { ++ sy_start = sy1; ++ s_height = sy2 - sy1; ++ } ++ else ++ { ++ sy_start = sy2; ++ s_height = sy1 - sy2; ++ y_flip ^= true; ++ } ++ ++ copyAndScalePixmap (img.getGraphics (), x_flip, y_flip, ++ sx_start, sy_start, s_width, s_height, ++ dx_start, dy_start, d_width, d_height); ++ return true; + } + + GtkImage image = (GtkImage) img; +@@ -191,8 +260,12 @@ + int sx1, int sy1, int sx2, int sy2, + ImageObserver observer) + { +- return drawImage (img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, +- component.getBackground (), observer); ++ if (component != null) ++ return drawImage (img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, ++ component.getBackground (), observer); ++ else ++ return drawImage (img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, ++ SystemColor.window, observer); + } + + native public void drawLine (int x1, int y1, int x2, int y2); +@@ -212,10 +285,10 @@ + native public void drawRect(int x, int y, int width, int height); + native public void fillRect (int x, int y, int width, int height); + +- native void drawString (String str, int x, int y, String fname, int size); ++ native void drawString (String str, int x, int y, String fname, int style, int size); + public void drawString (String str, int x, int y) + { +- drawString (str, x, y, font.getName(), font.getSize()); ++ drawString (str, x, y, font.getName(), font.getStyle(), font.getSize()); + } + + public void drawString (AttributedCharacterIterator ci, int x, int y) +@@ -226,13 +299,48 @@ + public void drawRoundRect(int x, int y, int width, int height, + int arcWidth, int arcHeight) + { +- // System.out.println ("drawRoundRect called [UNIMPLEMENTED]"); ++ if (arcWidth > width) ++ arcWidth = width; ++ if (arcHeight > height) ++ arcHeight = height; ++ ++ int xx = x + width - arcWidth; ++ int yy = y + height - arcHeight; ++ ++ drawArc (x, y, arcWidth, arcHeight, 90, 90); ++ drawArc (xx, y, arcWidth, arcHeight, 0, 90); ++ drawArc (xx, yy, arcWidth, arcHeight, 270, 90); ++ drawArc (x, yy, arcWidth, arcHeight, 180, 90); ++ ++ int y1 = y + arcHeight / 2; ++ int y2 = y + height - arcHeight / 2; ++ drawLine (x, y1, x, y2); ++ drawLine (x + width, y1, x + width, y2); ++ ++ int x1 = x + arcWidth / 2; ++ int x2 = x + width - arcWidth / 2; ++ drawLine (x1, y, x2, y); ++ drawLine (x1, y + height, x2, y + height); + } + + public void fillRoundRect (int x, int y, int width, int height, + int arcWidth, int arcHeight) + { +- // System.out.println ("fillRoundRect called [UNIMPLEMENTED]"); ++ if (arcWidth > width) ++ arcWidth = width; ++ if (arcHeight > height) ++ arcHeight = height; ++ ++ int xx = x + width - arcWidth; ++ int yy = y + height - arcHeight; ++ ++ fillArc (x, y, arcWidth, arcHeight, 90, 90); ++ fillArc (xx, y, arcWidth, arcHeight, 0, 90); ++ fillArc (xx, yy, arcWidth, arcHeight, 270, 90); ++ fillArc (x, yy, arcWidth, arcHeight, 180, 90); ++ ++ fillRect (x, y + arcHeight / 2, width, height - arcHeight + 1); ++ fillRect (x + arcWidth / 2, y, width - arcWidth + 1, height); + } + + public Shape getClip () +@@ -287,7 +395,10 @@ + + public void setColor (Color c) + { +- color = c; ++ if (c == null) ++ color = new Color (0, 0, 0); ++ else ++ color = c; + + if (xorColor == null) /* paint mode */ + setFGColor (color.getRed (), color.getGreen (), color.getBlue ()); +Index: gnu/java/awt/peer/gtk/GdkGraphics2D.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GdkGraphics2D.java,v +retrieving revision 1.6 +diff -u -r1.6 GdkGraphics2D.java +--- gnu/java/awt/peer/gtk/GdkGraphics2D.java 16 Jan 2004 14:22:23 -0000 1.6 ++++ gnu/java/awt/peer/gtk/GdkGraphics2D.java 6 Sep 2004 16:35:39 -0000 +@@ -1,5 +1,5 @@ + /* GdkGraphics2D.java +- Copyright (C) 2003 Free Software Foundation, Inc. ++ Copyright (C) 2003, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -48,7 +48,6 @@ + import java.util.Map; + + import java.text.AttributedCharacterIterator; +-import java.util.Map; + import java.util.Stack; + import java.lang.Integer; + import gnu.java.awt.ClasspathToolkit; +@@ -84,13 +83,16 @@ + private GtkComponentPeer component; + private Font font; + private RenderingHints hints; ++ private BufferedImage bimage; + + private Stack stateStack; + +- native private int[] initState (GtkComponentPeer component); ++ native private void initState (GtkComponentPeer component); + native private void initState (int width, int height); + native private void copyState (GdkGraphics2D g); + native public void dispose (); ++ native private int[] getImagePixels(); ++ native private void cairoSurfaceSetFilter(int filter); + + public void finalize () + { +@@ -158,7 +160,7 @@ + setFont (new Font("SansSerif", Font.PLAIN, 12)); + setTransform (new AffineTransform ()); + setStroke (new BasicStroke ()); +- setRenderingHints (new HashMap ()); ++ setRenderingHints (getDefaultHints()); + + stateStack = new Stack(); + } +@@ -166,19 +168,41 @@ + GdkGraphics2D (GtkComponentPeer component) + { + this.component = component; +- int rgb[] = initState (component); ++ initState (component); + +- setColor (new Color (rgb[0], rgb[1], rgb[2])); +- setBackground (new Color (rgb[3], rgb[4], rgb[5])); ++ setColor (component.awtComponent.getForeground ()); ++ setBackground (component.awtComponent.getBackground ()); + setPaint (getColor()); + setFont (new Font("SansSerif", Font.PLAIN, 12)); + setTransform (new AffineTransform ()); + setStroke (new BasicStroke ()); +- setRenderingHints (new HashMap ()); ++ setRenderingHints (getDefaultHints()); + + stateStack = new Stack (); + } + ++ GdkGraphics2D (BufferedImage bimage) ++ { ++ ++ this.bimage = bimage; ++ initState (bimage.getWidth(), bimage.getHeight()); ++ ++ setColor(Color.black); ++ setBackground (Color.black); ++ setPaint (getColor()); ++ setFont (new Font("SansSerif", Font.PLAIN, 12)); ++ setTransform (new AffineTransform ()); ++ setStroke (new BasicStroke ()); ++ setRenderingHints (getDefaultHints()); ++ ++ stateStack = new Stack(); ++ ++ // draw current buffered image to the pixmap associated ++ // with it. ++ ++ drawImage (bimage, new AffineTransform (1,0,0,1,0,0), bg, null); ++ } ++ + + //////////////////////////////////// + ////// Native Drawing Methods ////// +@@ -364,6 +388,121 @@ + + } + ++ private void updateBufferedImage() ++ { ++ int[] pixels = getImagePixels(); ++ updateImagePixels(pixels); ++ } ++ ++ ++ private boolean isBufferedImageGraphics () ++ { ++ ++ if (bimage != null) ++ return true; ++ else ++ return false; ++ } ++ ++ private void updateImagePixels (int[] pixels) ++ { ++ ++ // This function can only be used if ++ // this graphics object is used to draw into ++ // buffered image ++ ++ if (! isBufferedImageGraphics ()) ++ return; ++ ++ WritableRaster raster = bimage.getRaster(); ++ DataBuffer db = raster.getDataBuffer (); ++ ++ // update pixels in the bufferedImage ++ ++ if (raster.getSampleModel ().getDataType () == DataBuffer.TYPE_INT ++ && db instanceof DataBufferInt ++ && db.getNumBanks () == 1) ++ { ++ ++ // single bank, ARGB-ints buffer in sRGB space ++ DataBufferInt dbi = (DataBufferInt) raster.getDataBuffer (); ++ ++ for (int i=0; i < pixels.length; i++) ++ dbi.setElem(i, pixels[i]); ++ ++ } ++ else ++ { ++ bimage.getRaster().setPixels (0, 0, raster.getWidth (), ++ raster.getHeight (), pixels); ++ } ++ } ++ ++ ++ private boolean drawImage(Image img, ++ AffineTransform xform, ++ Color bgcolor, ++ ImageObserver obs) ++ { ++ if (img instanceof GtkOffScreenImage && ++ img.getGraphics () instanceof GdkGraphics2D && ++ (xform == null ++ || xform.getType () == AffineTransform.TYPE_IDENTITY ++ || xform.getType () == AffineTransform.TYPE_TRANSLATION) ++ ) ++ { ++ // we are being asked to flush a double buffer from Gdk ++ GdkGraphics2D g2 = (GdkGraphics2D) img.getGraphics (); ++ gdkDrawDrawable (g2, (int)xform.getTranslateX(), (int)xform.getTranslateY()); ++ ++ if (isBufferedImageGraphics ()) ++ updateBufferedImage(); ++ ++ return true; ++ } ++ else ++ { ++ ++ // In this case, xform is an AffineTransform that transforms bounding ++ // box of the specified image from image space to user space. However ++ // when we pass this transform to cairo, cairo will use this transform ++ // to map "user coordinates" to "pixel" coordinates, which is the ++ // other way around. Therefore to get the "user -> pixel" transform ++ // that cairo wants from "image -> user" transform that we currently ++ // have, we will need to invert the transformation matrix. ++ ++ AffineTransform invertedXform = new AffineTransform(); ++ ++ try ++ { ++ invertedXform = xform.createInverse(); ++ if (img instanceof BufferedImage) ++ { ++ // draw an image which has actually been loaded ++ // into memory fully ++ ++ BufferedImage b = (BufferedImage) img; ++ return drawRaster (b.getColorModel (), ++ b.getData (), ++ invertedXform, ++ bgcolor); ++ } ++ else ++ { ++ // begin progressive loading in a separate thread ++ new PainterThread (this, img, invertedXform, bgcolor); ++ return false; ++ } ++ } ++ catch (NoninvertibleTransformException e) ++ { ++ throw new ImagingOpException("Unable to invert transform " ++ + xform.toString()); ++ } ++ } ++ } ++ ++ + ////////////////////////////////////////////////// + ////// Implementation of Graphics2D Methods ////// + ////////////////////////////////////////////////// +@@ -401,6 +540,10 @@ + translate (-0.5,-0.5); + + stateRestore (); ++ ++ if (isBufferedImageGraphics ()) ++ updateBufferedImage(); ++ + } + + public void fill (Shape s) +@@ -416,6 +559,10 @@ + walkPath (s.getPathIterator (null)); + cairoFill (); + stateRestore (); ++ ++ if (isBufferedImageGraphics ()) ++ updateBufferedImage(); ++ + } + + public void clip (Shape s) +@@ -475,11 +622,21 @@ + { + TexturePaint tp = (TexturePaint) paint; + BufferedImage img = tp.getImage (); +- int pixels[] = img.getRGB(0, 0, img.getWidth (), +- img.getHeight (), null, +- 0, img.getWidth ()); +- setTexturePixels (pixels, img.getWidth (), +- img.getHeight (), img.getWidth ()); ++ ++ // map the image to the anchor rectangle ++ ++ int width = (int) tp.getAnchorRect ().getWidth (); ++ int height = (int) tp.getAnchorRect ().getHeight (); ++ ++ double scaleX = width / (double) img.getWidth (); ++ double scaleY = width / (double) img.getHeight (); ++ ++ AffineTransform at = new AffineTransform (scaleX, 0, 0, scaleY, 0, 0); ++ AffineTransformOp op = new AffineTransformOp (at, getRenderingHints()); ++ BufferedImage texture = op.filter(img, null); ++ int pixels[] = texture.getRGB (0, 0, width, height, null, 0, width); ++ setTexturePixels (pixels, width, height, width); ++ + } + else if (paint instanceof GradientPaint) + { +@@ -518,6 +675,26 @@ + else + transform.concatenate (tx); + setTransform (transform); ++ if (clip != null) ++ { ++ // FIXME: this should actuall try to transform the shape ++ // rather than degrade to bounds. ++ Rectangle2D r = clip.getBounds2D(); ++ double[] coords = new double[] { r.getX(), r.getY(), ++ r.getX() + r.getWidth(), ++ r.getY() + r.getHeight() }; ++ try ++ { ++ tx.createInverse().transform(coords, 0, coords, 0, 2); ++ r.setRect(coords[0], coords[1], ++ coords[2] - coords[0], ++ coords[3] - coords[1]); ++ clip = r; ++ } ++ catch (java.awt.geom.NoninvertibleTransformException e) ++ { ++ } ++ } + } + + public void rotate(double theta) +@@ -645,19 +822,29 @@ + + public void setClip (int x, int y, int width, int height) + { +- cairoNewPath (); +- cairoRectangle (x, y, width, height); +- cairoClosePath (); +- cairoClip (); +- clip = new Rectangle2D.Double ((double)x, (double)y, +- (double)width, (double)height); ++ setClip(new Rectangle2D.Double ((double)x, (double)y, ++ (double)width, (double)height)); + } +- ++ + public void setClip (Shape s) + { +- clip (s); ++ clip = s; ++ if (s != null) ++ { ++ cairoNewPath (); ++ if (s instanceof Rectangle2D) ++ { ++ Rectangle2D r = (Rectangle2D)s; ++ cairoRectangle (r.getX (), r.getY (), ++ r.getWidth (), r.getHeight ()); ++ } ++ else ++ walkPath (s.getPathIterator (null)); ++ cairoClosePath (); ++ cairoClip (); ++ } + } +- ++ + public void draw3DRect(int x, int y, int width, + int height, boolean raised) + { +@@ -708,6 +895,10 @@ + cairoStroke (); + + stateRestore (); ++ ++ if (isBufferedImageGraphics ()) ++ updateBufferedImage(); ++ + } + + public void fill3DRect(int x, int y, int width, +@@ -734,6 +925,10 @@ + cairoClosePath (); + cairoFill (); + stateRestore (); ++ ++ if (isBufferedImageGraphics ()) ++ updateBufferedImage(); ++ + } + + +@@ -759,6 +954,10 @@ + cairoClosePath (); + cairoFill (); + stateRestore (); ++ ++ if (isBufferedImageGraphics ()) ++ updateBufferedImage(); ++ + } + + public void setBackground(Color c) +@@ -828,7 +1027,8 @@ + } + + private boolean drawRaster (ColorModel cm, Raster r, +- AffineTransform imageToUser) ++ AffineTransform imageToUser, ++ Color bgcolor) + { + if (r == null) + return false; +@@ -849,7 +1049,7 @@ + { + i2u[0] = 1; i2u[1] = 0; + i2u[2] = 0; i2u[3] = 1; +- i2u[2] = 0; i2u[3] = 0; ++ i2u[4] = 0; i2u[5] = 0; + } + + int pixels[] = null; +@@ -875,17 +1075,33 @@ + pixels = pixels2; + } + ++ // change all transparent pixels in the image to the ++ // specified bgcolor ++ ++ if (bgcolor != null) ++ { ++ for (int i = 0; i < pixels.length; i++) ++ { ++ if (cm.getAlpha (pixels[i]) == 0) ++ pixels[i] = bgcolor.getRGB (); ++ } ++ } ++ + stateSave (); + translate (x, y); + drawPixels (pixels, r.getWidth (), r.getHeight (), r.getWidth (), i2u); + stateRestore (); ++ ++ if (isBufferedImageGraphics ()) ++ updateBufferedImage(); ++ + return true; + } + + public void drawRenderedImage(RenderedImage image, + AffineTransform xform) + { +- drawRaster (image.getColorModel(), image.getData(), xform); ++ drawRaster (image.getColorModel(), image.getData(), xform, bg); + } + + public void drawRenderableImage(RenderableImage image, +@@ -898,33 +1114,7 @@ + AffineTransform xform, + ImageObserver obs) + { +- if (img instanceof GtkOffScreenImage && +- img.getGraphics () instanceof GdkGraphics2D && +- (xform == null +- || xform.getType () == AffineTransform.TYPE_IDENTITY +- || xform.getType () == AffineTransform.TYPE_TRANSLATION) +- ) +- { +- // we are being asked to flush a double buffer from Gdk +- GdkGraphics2D g2 = (GdkGraphics2D) img.getGraphics (); +- gdkDrawDrawable (g2, (int)xform.getTranslateX(), (int)xform.getTranslateY()); +- return true; +- } +- else +- { +- if (img instanceof BufferedImage) +- { +- // draw an image which has actually been loaded into memory fully +- BufferedImage b = (BufferedImage) img; +- return drawRaster (b.getColorModel (), b.getData (), xform); +- } +- else +- { +- // begin progressive loading in a separate thread +- new PainterThread (this, img, xform); +- return false; +- } +- } ++ return drawImage(img, xform, bg, obs); + } + + public void drawImage(BufferedImage image, +@@ -933,13 +1123,13 @@ + int y) + { + Image filtered = op.filter(image, null); +- drawImage(filtered, new AffineTransform(1f,0f,0f,1f,x,y), null); ++ drawImage(filtered, new AffineTransform(1f,0f,0f,1f,x,y), bg, null); + } + + public boolean drawImage (Image img, int x, int y, + ImageObserver observer) + { +- return drawImage(img, new AffineTransform(1f,0f,0f,1f,x,y), observer); ++ return drawImage(img, new AffineTransform(1f,0f,0f,1f,x,y), bg, observer); + } + + +@@ -962,11 +1152,14 @@ + Image image; + ColorModel defaultModel; + AffineTransform xform; ++ Color bgcolor; + +- public PainterThread (GdkGraphics2D g, Image im, AffineTransform xf) ++ public PainterThread (GdkGraphics2D g, Image im, ++ AffineTransform xf, Color bg) + { + image = im; + xform = xf; ++ bgcolor = bg; + this.gr = (GdkGraphics2D) g.create (); + new Thread (this).start (); + } +@@ -1016,6 +1209,18 @@ + else + pixels2 = pixels; + ++ // change all transparent pixels in the image to the ++ // specified bgcolor ++ ++ if (bgcolor != null) ++ { ++ for (int i = 0; i < pixels2.length; i++) ++ { ++ if (model.getAlpha (pixels2[i]) == 0) ++ pixels2[i] = bgcolor.getRGB (); ++ } ++ } ++ + double[] xf = new double[6]; + xform.getMatrix(xf); + gr.drawPixels (pixels2, w, h, scansize, xf); +@@ -1054,13 +1259,46 @@ + + public void setComposite(Composite comp) + { +- throw new java.lang.UnsupportedOperationException (); ++ if (comp instanceof AlphaComposite) ++ { ++ AlphaComposite a = (AlphaComposite) comp; ++ cairoSetOperator(a.getRule()); ++ Color c = getColor(); ++ setColor(new Color(c.getRed(), ++ c.getGreen(), ++ c.getBlue(), ++ (int) (a.getAlpha() * ((float) c.getAlpha())))); ++ } ++ else ++ throw new java.lang.UnsupportedOperationException (); + } + + public void setRenderingHint(RenderingHints.Key hintKey, + Object hintValue) + { + hints.put (hintKey, hintValue); ++ ++ if (hintKey.equals(RenderingHints.KEY_INTERPOLATION) ++ || hintKey.equals(RenderingHints.KEY_ALPHA_INTERPOLATION)) ++ { ++ ++ if (hintValue.equals(RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR)) ++ cairoSurfaceSetFilter(0); ++ ++ else if (hintValue.equals(RenderingHints.VALUE_INTERPOLATION_BILINEAR)) ++ cairoSurfaceSetFilter(1); ++ ++ else if (hintValue.equals(RenderingHints.VALUE_ALPHA_INTERPOLATION_SPEED)) ++ cairoSurfaceSetFilter(2); ++ ++ else if (hintValue.equals(RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY)) ++ cairoSurfaceSetFilter(3); ++ ++ else if (hintValue.equals(RenderingHints.VALUE_ALPHA_INTERPOLATION_DEFAULT)) ++ cairoSurfaceSetFilter(4); ++ ++ } ++ + } + + public Object getRenderingHint(RenderingHints.Key hintKey) +@@ -1072,6 +1310,27 @@ + { + this.hints = new RenderingHints (getDefaultHints ()); + this.hints.add (new RenderingHints (hints)); ++ ++ if (hints.containsKey(RenderingHints.KEY_INTERPOLATION)) ++ { ++ if(hints.containsValue(RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR)) ++ cairoSurfaceSetFilter(0); ++ ++ else if(hints.containsValue(RenderingHints.VALUE_INTERPOLATION_BILINEAR)) ++ cairoSurfaceSetFilter(1); ++ } ++ ++ if (hints.containsKey(RenderingHints.KEY_ALPHA_INTERPOLATION)) ++ { ++ if (hints.containsValue(RenderingHints.VALUE_ALPHA_INTERPOLATION_SPEED)) ++ cairoSurfaceSetFilter(2); ++ ++ else if (hints.containsValue(RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY)) ++ cairoSurfaceSetFilter(3); ++ ++ else if(hints.containsValue(RenderingHints.VALUE_ALPHA_INTERPOLATION_DEFAULT)) ++ cairoSurfaceSetFilter(4); ++ } + } + + public void addRenderingHints(Map hints) +@@ -1104,6 +1363,10 @@ + int codes[] = g.getGlyphCodes (0, nglyphs, (int []) null); + float posns[] = g.getGlyphPositions (0, nglyphs, (float []) null); + cairoShowGlyphs (codes, posns); ++ ++ if (isBufferedImageGraphics ()) ++ updateBufferedImage(); ++ + stateRestore (); + } + +@@ -1124,33 +1387,86 @@ + public boolean drawImage (Image img, int x, int y, Color bgcolor, + ImageObserver observer) + { +- throw new java.lang.UnsupportedOperationException (); ++ return drawImage (img, x, y, img.getWidth (observer), ++ img.getHeight (observer), bgcolor, observer); + } + + public boolean drawImage (Image img, int x, int y, int width, int height, + Color bgcolor, ImageObserver observer) + { +- throw new java.lang.UnsupportedOperationException (); ++ ++ double scaleX = width / (double) img.getWidth (observer); ++ double scaleY = height / (double) img.getHeight (observer); ++ ++ return drawImage (img, ++ new AffineTransform(scaleX, 0f, 0f, scaleY, x, y), ++ bgcolor, ++ observer); ++ + } + + public boolean drawImage (Image img, int x, int y, int width, int height, + ImageObserver observer) + { +- throw new java.lang.UnsupportedOperationException (); ++ ++ return drawImage (img, x, y, width, height, bg, observer); ++ + } + + public boolean drawImage (Image img, int dx1, int dy1, int dx2, int dy2, + int sx1, int sy1, int sx2, int sy2, + Color bgcolor, ImageObserver observer) + { +- throw new java.lang.UnsupportedOperationException (); ++ ++ Image subImage; ++ ++ int sourceWidth = sx2 - sx1; ++ int sourceHeight = sy2 - sy1; ++ ++ int destWidth = dx2 - dx1; ++ int destHeight = dy2 - dy1; ++ ++ double scaleX = destWidth / (double) sourceWidth; ++ double scaleY = destHeight / (double) sourceHeight; ++ ++ // Get the subimage of the source enclosed in the ++ // rectangle specified by sx1, sy1, sx2, sy2 ++ ++ if (img instanceof BufferedImage) ++ { ++ ++ BufferedImage b = (BufferedImage) img; ++ subImage = b.getSubimage(sx1,sy1,sx2,sy2); ++ } ++ else ++ { ++ ++ // FIXME: This code currently doesn't work. Null Pointer ++ // exception is thrown in this case. This happens ++ // because img.getSource() always returns null, since source gets ++ // never initialized when it is created with the help of ++ // createImage(int width, int height). ++ ++ CropImageFilter filter = new CropImageFilter(sx1,sx2,sx2,sy2); ++ FilteredImageSource src = new FilteredImageSource(img.getSource(), ++ filter); ++ ++ subImage = Toolkit.getDefaultToolkit().createImage(src); ++ } ++ ++ return drawImage(subImage, new AffineTransform(scaleX, 0, 0, ++ scaleY, dx1, dy1), ++ bgcolor, ++ observer); + } + + public boolean drawImage (Image img, int dx1, int dy1, int dx2, int dy2, + int sx1, int sy1, int sx2, int sy2, + ImageObserver observer) + { +- throw new java.lang.UnsupportedOperationException (); ++ ++ return drawImage (img, dx1, dy1, dx2, dy2, ++ sx1, sy1, sx2, sy2, bg, observer); + } + + public void drawOval(int x, int y, int width, int height) +@@ -1161,14 +1477,28 @@ + public void drawRoundRect(int x, int y, int width, int height, + int arcWidth, int arcHeight) + { +- int x1 = x + arcWidth, x2 = x + width - arcWidth; +- int y1 = y + arcHeight, y2 = y + height - arcHeight; +- fillRect (x1, y, x2 - x1, height); +- fillRect (x, y1, width, y2 - y1); +- fillArc (x, y, arcWidth, arcHeight, 90, 90); +- fillArc (x1, y, arcWidth, arcHeight, 0, 90); +- fillArc (x2, y2, arcWidth, arcHeight, 270, 90); +- fillArc (x, y2, arcWidth, arcHeight, 180, 90); ++ if (arcWidth > width) ++ arcWidth = width; ++ if (arcHeight > height) ++ arcHeight = height; ++ ++ int xx = x + width - arcWidth; ++ int yy = y + height - arcHeight; ++ ++ drawArc (x, y, arcWidth, arcHeight, 90, 90); ++ drawArc (xx, y, arcWidth, arcHeight, 0, 90); ++ drawArc (xx, yy, arcWidth, arcHeight, 270, 90); ++ drawArc (x, yy, arcWidth, arcHeight, 180, 90); ++ ++ int y1 = y + arcHeight / 2; ++ int y2 = y + height - arcHeight / 2; ++ drawLine (x, y1, x, y2); ++ drawLine (x + width, y1, x + width, y2); ++ ++ int x1 = x + arcWidth / 2; ++ int x2 = x + width - arcWidth / 2; ++ drawLine (x1, y, x2, y); ++ drawLine (x1, y + height, x2, y + height); + } + + public void drawString (String str, int x, int y) +@@ -1210,14 +1540,21 @@ + public void fillRoundRect (int x, int y, int width, int height, + int arcWidth, int arcHeight) + { +- int x1 = x + arcWidth, x2 = x + width - arcWidth; +- int y1 = y + arcHeight, y2 = y + height - arcHeight; +- fillRect (x1, y, x2 - x1, height); +- fillRect (x, y1, width, y2 - y1); ++ if (arcWidth > width) ++ arcWidth = width; ++ if (arcHeight > height) ++ arcHeight = height; ++ ++ int xx = x + width - arcWidth; ++ int yy = y + height - arcHeight; ++ + fillArc (x, y, arcWidth, arcHeight, 90, 90); +- fillArc (x1, y, arcWidth, arcHeight, 0, 90); +- fillArc (x2, y2, arcWidth, arcHeight, 270, 90); +- fillArc (x, y2, arcWidth, arcHeight, 180, 90); ++ fillArc (xx, y, arcWidth, arcHeight, 0, 90); ++ fillArc (xx, yy, arcWidth, arcHeight, 270, 90); ++ fillArc (x, yy, arcWidth, arcHeight, 180, 90); ++ ++ fillRect (x, y + arcHeight / 2, width, height - arcHeight + 1); ++ fillRect (x + arcWidth / 2, y, width - arcWidth + 1, height); + } + + public Font getFont () +@@ -1251,7 +1588,9 @@ + + public String toString() + { +- throw new java.lang.UnsupportedOperationException (); ++ return getClass ().getName () + ++ "[font=" + font.toString () + ++ ",color=" + fg.toString () + "]"; + } + + } +Index: gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java +=================================================================== +RCS file: gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java +diff -N gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java 6 Sep 2004 16:35:39 -0000 +@@ -0,0 +1,87 @@ ++/* GdkGraphicsEnvironment.java -- information about the graphics environment ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++ ++package gnu.java.awt.peer.gtk; ++ ++import java.awt.*; ++import java.awt.GraphicsEnvironment; ++import java.awt.image.BufferedImage; ++import java.util.Locale; ++ ++ ++public class GdkGraphicsEnvironment extends GraphicsEnvironment ++{ ++ ++ public GdkGraphicsEnvironment () ++ { ++ super(); ++ } ++ ++ public GraphicsDevice[] getScreenDevices () ++ { ++ throw new java.lang.UnsupportedOperationException (); ++ } ++ ++ public GraphicsDevice getDefaultScreenDevice () ++ { ++ throw new java.lang.UnsupportedOperationException (); ++ } ++ ++ public Graphics2D createGraphics (BufferedImage image) ++ { ++ return new GdkGraphics2D (image); ++ } ++ ++ public Font[] getAllFonts () ++ { ++ throw new java.lang.UnsupportedOperationException (); ++ } ++ ++ public String[] getAvailableFontFamilyNames () ++ { ++ throw new java.lang.UnsupportedOperationException (); ++ } ++ ++ public String[] getAvailableFontFamilyNames (Locale l) ++ { ++ throw new java.lang.UnsupportedOperationException (); ++ } ++ ++ ++} // class GdkGraphicsEnvironment ++ +Index: gnu/java/awt/peer/gtk/GdkPixbufDecoder.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java,v +retrieving revision 1.3 +diff -u -r1.3 GdkPixbufDecoder.java +--- gnu/java/awt/peer/gtk/GdkPixbufDecoder.java 2 Dec 2003 19:56:30 -0000 1.3 ++++ gnu/java/awt/peer/gtk/GdkPixbufDecoder.java 6 Sep 2004 16:35:39 -0000 +@@ -77,19 +77,16 @@ + public GdkPixbufDecoder (String filename) + { + super (filename); +- initState (); + } + + public GdkPixbufDecoder (URL url) + { + super (url); +- initState (); + } + + public GdkPixbufDecoder (byte[] imagedata, int imageoffset, int imagelength) + { + super (imagedata, imageoffset, imagelength); +- initState (); + } + + // called back by native side +@@ -135,6 +132,7 @@ + + byte bytes[] = new byte[4096]; + int len = 0; ++ initState(); + while ((len = is.read (bytes)) != -1) + pumpBytes (bytes, len); + +@@ -220,4 +218,31 @@ + dec.startProduction (bb); + return bb.getBufferedImage (); + } ++ ++ public static BufferedImage createBufferedImage (URL u) ++ { ++ BufferedImageBuilder bb = new BufferedImageBuilder (); ++ GdkPixbufDecoder dec = new GdkPixbufDecoder (u); ++ dec.startProduction (bb); ++ return bb.getBufferedImage (); ++ } ++ ++ public static BufferedImage createBufferedImage (byte[] imagedata, int imageoffset, ++ int imagelength) ++ { ++ BufferedImageBuilder bb = new BufferedImageBuilder (); ++ GdkPixbufDecoder dec = new GdkPixbufDecoder (imagedata, imageoffset, imagelength); ++ dec.startProduction (bb); ++ return bb.getBufferedImage (); ++ } ++ ++ public static BufferedImage createBufferedImage (ImageProducer producer) ++ { ++ BufferedImageBuilder bb = new BufferedImageBuilder (); ++ producer.startProduction(bb); ++ return bb.getBufferedImage (); ++ } ++ ++ ++ + } +Index: gnu/java/awt/peer/gtk/GtkArg.java +=================================================================== +RCS file: gnu/java/awt/peer/gtk/GtkArg.java +diff -N gnu/java/awt/peer/gtk/GtkArg.java +--- gnu/java/awt/peer/gtk/GtkArg.java 31 Jan 2003 17:54:13 -0000 1.1 ++++ /dev/null 1 Jan 1970 00:00:00 -0000 +@@ -1,61 +0,0 @@ +-/* GtkArg.java +- Copyright (C) 1999 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., 59 Temple Place, Suite 330, Boston, MA +-02111-1307 USA. +- +-Linking this library statically or dynamically with other modules is +-making a combined work based on this library. Thus, the terms and +-conditions of the GNU General Public License cover the whole +-combination. +- +-As a special exception, the copyright holders of this library give you +-permission to link this library with independent modules to produce an +-executable, regardless of the license terms of these independent +-modules, and to copy and distribute the resulting executable under +-terms of your choice, provided that you also meet, for each linked +-independent module, the terms and conditions of the license of that +-module. An independent module is a module which is not derived from +-or based on this library. If you modify this library, you may extend +-this exception to your version of the library, but you are not +-obligated to do so. If you do not wish to do so, delete this +-exception statement from your version. */ +- +- +-package gnu.java.awt.peer.gtk; +- +-public class GtkArg +-{ +- String name; +- Object value; +- +- public GtkArg (String name, Object value) +- { +- this.name = name; +- this.value = value; +- } +- +- public String getName () +- { +- return name; +- } +- +- public Object getValue () +- { +- return value; +- } +-} +Index: gnu/java/awt/peer/gtk/GtkArgList.java +=================================================================== +RCS file: gnu/java/awt/peer/gtk/GtkArgList.java +diff -N gnu/java/awt/peer/gtk/GtkArgList.java +--- gnu/java/awt/peer/gtk/GtkArgList.java 31 Jan 2003 17:54:13 -0000 1.1 ++++ /dev/null 1 Jan 1970 00:00:00 -0000 +@@ -1,75 +0,0 @@ +-/* GtkArgList.java +- Copyright (C) 1999 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., 59 Temple Place, Suite 330, Boston, MA +-02111-1307 USA. +- +-Linking this library statically or dynamically with other modules is +-making a combined work based on this library. Thus, the terms and +-conditions of the GNU General Public License cover the whole +-combination. +- +-As a special exception, the copyright holders of this library give you +-permission to link this library with independent modules to produce an +-executable, regardless of the license terms of these independent +-modules, and to copy and distribute the resulting executable under +-terms of your choice, provided that you also meet, for each linked +-independent module, the terms and conditions of the license of that +-module. An independent module is a module which is not derived from +-or based on this library. If you modify this library, you may extend +-this exception to your version of the library, but you are not +-obligated to do so. If you do not wish to do so, delete this +-exception statement from your version. */ +- +- +-package gnu.java.awt.peer.gtk; +-import java.util.Vector; +- +-public class GtkArgList extends Vector +-{ +- void add (GtkArg arg) +- { +- addElement (arg); +- } +- +- void add (String name, boolean value) +- { +- addElement (new GtkArg (name, new Boolean (value))); +- } +- +- void add (String name, int value) +- { +- addElement (new GtkArg (name, new Integer (value))); +- } +- +- void add (String name, float value) +- { +- addElement (new GtkArg (name, new Float (value))); +- } +- +- void add (String name, Object value) +- { +- addElement (new GtkArg (name, value)); +- } +- +- synchronized void setArgs (GtkComponentPeer cp) +- { +- for (int i = 0; i < elementCount; i++) +- cp.set ((GtkArg)elementData[i]); +- } +-} +- +Index: gnu/java/awt/peer/gtk/GtkButtonPeer.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkButtonPeer.java,v +retrieving revision 1.7 +diff -u -r1.7 GtkButtonPeer.java +--- gnu/java/awt/peer/gtk/GtkButtonPeer.java 11 Dec 2003 13:50:50 -0000 1.7 ++++ gnu/java/awt/peer/gtk/GtkButtonPeer.java 6 Sep 2004 16:35:39 -0000 +@@ -42,6 +42,7 @@ + import java.awt.Button; + import java.awt.Component; + import java.awt.Font; ++import java.awt.Point; + import java.awt.event.MouseEvent; + import java.awt.event.KeyEvent; + import java.awt.peer.ButtonPeer; +@@ -49,54 +50,57 @@ + public class GtkButtonPeer extends GtkComponentPeer + implements ButtonPeer + { +- native void create (); ++ native void create (String label); ++ + public native void connectJObject (); + public native void connectSignals (); + +- native void gtkSetFont(String name, int style, int size); ++ native void gtkSetFont (String name, int style, int size); ++ native void gtkSetLabel (String label); + native void gtkWidgetSetForeground (int red, int green, int blue); ++ native void gtkActivate (); + + public GtkButtonPeer (Button b) + { + super (b); + } + ++ void create () ++ { ++ create (((Button) awtComponent).getLabel ()); ++ } ++ + public void setLabel (String label) + { +- set ("label", label); ++ gtkSetLabel(label); + } + + public void handleEvent (AWTEvent e) + { +- if (e.getID () == MouseEvent.MOUSE_CLICKED && isEnabled ()) ++ if (e.getID () == MouseEvent.MOUSE_RELEASED && isEnabled ()) + { + MouseEvent me = (MouseEvent) e; ++ Point p = me.getPoint(); ++ p.translate(((Component) me.getSource()).getX(), ++ ((Component) me.getSource()).getY()); + if (!me.isConsumed () +- && (me.getModifiers () & MouseEvent.BUTTON1_MASK) != 0) ++ && (me.getModifiersEx () & MouseEvent.BUTTON1_DOWN_MASK) != 0 ++ && awtComponent.getBounds().contains(p)) + postActionEvent (((Button)awtComponent).getActionCommand (), +- me.getModifiers ()); ++ me.getModifiersEx ()); + } + + if (e.getID () == KeyEvent.KEY_PRESSED) + { + KeyEvent ke = (KeyEvent) e; + if (!ke.isConsumed () && ke.getKeyCode () == KeyEvent.VK_SPACE) +- postActionEvent (((Button)awtComponent).getActionCommand (), +- ke.getModifiers ()); ++ { ++ postActionEvent (((Button) awtComponent).getActionCommand (), ++ ke.getModifiersEx ()); ++ gtkActivate (); ++ } + } + + super.handleEvent (e); + } +- +- public void getArgs (Component component, GtkArgList args) +- { +- super.getArgs (component, args); +- +- args.add ("label", ((Button)component).getLabel ()); +- } +- +- public void setFont (Font f) +- { +- gtkSetFont(f.getName(), f.getStyle(), f.getSize()); +- } + } +Index: gnu/java/awt/peer/gtk/GtkCheckboxPeer.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkCheckboxPeer.java,v +retrieving revision 1.4 +diff -u -r1.4 GtkCheckboxPeer.java +--- gnu/java/awt/peer/gtk/GtkCheckboxPeer.java 11 Dec 2003 13:50:50 -0000 1.4 ++++ gnu/java/awt/peer/gtk/GtkCheckboxPeer.java 6 Sep 2004 16:35:39 -0000 +@@ -41,6 +41,7 @@ + import java.awt.Checkbox; + import java.awt.CheckboxGroup; + import java.awt.Component; ++import java.awt.Font; + import java.awt.peer.CheckboxPeer; + + public class GtkCheckboxPeer extends GtkComponentPeer +@@ -51,37 +52,39 @@ + // The current state of the GTK checkbox. + private boolean currentState; + +- public native void nativeCreate (GtkCheckboxGroupPeer group, +- boolean state); ++ public native void create (GtkCheckboxGroupPeer group); + public native void nativeSetCheckboxGroup (GtkCheckboxGroupPeer group); + public native void connectSignals (); ++ native void gtkSetFont (String name, int style, int size); ++ native void gtkButtonSetLabel (String label); ++ native void gtkToggleButtonSetActive (boolean is_active); + + public GtkCheckboxPeer (Checkbox c) + { + super (c); + } + +- // We can't fully use the ordinary getArgs code here, due to +- // oddities of this particular widget. In particular we must be +- // able to switch between a checkbutton and a radiobutton +- // dynamically. ++ // FIXME: we must be able to switch between a checkbutton and a ++ // radiobutton dynamically. + public void create () + { +- CheckboxGroup g = ((Checkbox) awtComponent).getCheckboxGroup (); ++ Checkbox checkbox = (Checkbox) awtComponent; ++ CheckboxGroup g = checkbox.getCheckboxGroup (); + old_group = GtkCheckboxGroupPeer.getCheckboxGroupPeer (g); +- currentState = ((Checkbox)awtComponent).getState(); +- nativeCreate (old_group, currentState); ++ create (old_group); ++ gtkToggleButtonSetActive (checkbox.getState ()); ++ gtkButtonSetLabel (checkbox.getLabel ()); + } + + public void setState (boolean state) + { + if (currentState != state) +- set ("active", state); ++ gtkToggleButtonSetActive (state); + } + + public void setLabel (String label) + { +- set ("label", label); ++ gtkButtonSetLabel (label); + } + + public void setCheckboxGroup (CheckboxGroup group) +@@ -97,13 +100,6 @@ + } + } + +- public void getArgs (Component component, GtkArgList args) +- { +- super.getArgs (component, args); +- args.add ("active", ((Checkbox) component).getState ()); +- args.add ("label", ((Checkbox) component).getLabel ()); +- } +- + // Override the superclass postItemEvent so that the peer doesn't + // need information that we have. + public void postItemEvent (Object item, int stateChange) +Index: gnu/java/awt/peer/gtk/GtkChoicePeer.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkChoicePeer.java,v +retrieving revision 1.5 +diff -u -r1.5 GtkChoicePeer.java +--- gnu/java/awt/peer/gtk/GtkChoicePeer.java 5 Jan 2004 21:18:06 -0000 1.5 ++++ gnu/java/awt/peer/gtk/GtkChoicePeer.java 6 Sep 2004 16:35:39 -0000 +@@ -58,25 +58,22 @@ + items[i] = c.getItem (i); + + append (items); +- +- // Must set our state before notifying listeners +- ((Choice) awtComponent).select (c.getItem (0)); +- postItemEvent (c.getItem (0), ItemEvent.SELECTED); + } + } + + native void create (); + + native void append (String items[]); +- native int getHistory (); ++ native int nativeGetSelected (); + native void nativeAdd (String item, int index); + native void nativeRemove (int index); ++ native void nativeRemoveAll (); + + native public void select (int position); + + public void add (String item, int index) + { +- int before = getHistory(); ++ int before = nativeGetSelected(); + + nativeAdd (item, index); + +@@ -92,11 +89,11 @@ + + public void remove (int index) + { +- int before = getHistory(); ++ int before = nativeGetSelected(); + int after; + + nativeRemove (index); +- after = getHistory(); ++ after = nativeGetSelected(); + + /* Generate an ItemEvent if we are removing the currently selected item + and there are at least one item left. */ +@@ -110,7 +107,7 @@ + + public void removeAll () + { +- nativeRemove (-1); ++ nativeRemoveAll(); + } + + public void addItem (String item, int position) +Index: gnu/java/awt/peer/gtk/GtkComponentPeer.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkComponentPeer.java,v +retrieving revision 1.13 +diff -u -r1.13 GtkComponentPeer.java +--- gnu/java/awt/peer/gtk/GtkComponentPeer.java 13 Jan 2004 20:54:46 -0000 1.13 ++++ gnu/java/awt/peer/gtk/GtkComponentPeer.java 6 Sep 2004 16:35:39 -0000 +@@ -1,5 +1,5 @@ + /* GtkComponentPeer.java -- Implements ComponentPeer with GTK +- Copyright (C) 1998, 1999, 2002 Free Software Foundation, Inc. ++ Copyright (C) 1998, 1999, 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -42,6 +42,7 @@ + import java.awt.BufferCapabilities; + import java.awt.Color; + import java.awt.Component; ++import java.awt.Container; + import java.awt.Cursor; + import java.awt.Dimension; + import java.awt.Font; +@@ -53,6 +54,7 @@ + import java.awt.Image; + import java.awt.Insets; + import java.awt.ItemSelectable; ++import java.awt.KeyboardFocusManager; + import java.awt.Point; + import java.awt.Rectangle; + import java.awt.Toolkit; +@@ -90,6 +92,15 @@ + native void gtkWidgetSetCursor (int type); + native void gtkWidgetSetBackground (int red, int green, int blue); + native void gtkWidgetSetForeground (int red, int green, int blue); ++ native void gtkWidgetSetSensitive (boolean sensitive); ++ native void gtkWidgetSetParent (ComponentPeer parent); ++ native void gtkWidgetRequestFocus (); ++ native void gtkWidgetDispatchKeyEvent (int id, long when, int mods, ++ int keyCode, int keyLocation); ++ native void gtkSetFont (String name, int style, int size); ++ native void gtkWidgetQueueDrawArea(int x, int y, int width, int height); ++ native void addExposeFilter(); ++ native void removeExposeFilter(); + + void create () + { +@@ -105,29 +116,59 @@ + this.awtComponent = awtComponent; + insets = new Insets (0, 0, 0, 0); + +- /* temporary try/catch block until all peers use this creation method */ +- try { +- create (); +- +- GtkArgList args = new GtkArgList (); +- getArgs (awtComponent, args); +- args.setArgs (this); +- +- connectJObject (); +- connectSignals (); +- +- if (awtComponent.getForeground () != null) +- setForeground (awtComponent.getForeground ()); +- if (awtComponent.getBackground () != null) +- setBackground (awtComponent.getBackground ()); +- if (awtComponent.getFont() != null) +- setFont(awtComponent.getFont()); +- +- setCursor (awtComponent.getCursor ()); +- Rectangle bounds = awtComponent.getBounds (); +- setBounds (bounds.x, bounds.y, bounds.width, bounds.height); ++ create (); ++ ++ setParent (); ++ ++ connectJObject (); ++ connectSignals (); ++ ++ if (awtComponent.getForeground () != null) ++ setForeground (awtComponent.getForeground ()); ++ if (awtComponent.getBackground () != null) ++ setBackground (awtComponent.getBackground ()); ++ if (awtComponent.getFont() != null) ++ setFont(awtComponent.getFont()); ++ ++ setCursor (awtComponent.getCursor ()); ++ ++ setComponentBounds (); ++ ++ Rectangle bounds = awtComponent.getBounds (); ++ setBounds (bounds.x, bounds.y, bounds.width, bounds.height); ++ setVisibleAndEnabled (); ++ } ++ ++ void setParent () ++ { ++ ComponentPeer p; ++ Component component = awtComponent; ++ do ++ { ++ component = component.getParent (); ++ p = component.getPeer (); ++ } ++ while (p instanceof java.awt.peer.LightweightPeer); ++ ++ if (p != null) ++ gtkWidgetSetParent (p); ++ } ++ ++ /* ++ * Set the bounds of this peer's AWT Component based on dimensions ++ * returned by the native windowing system. Most Components impose ++ * their dimensions on the peers so the default implementation does ++ * nothing. However some peers, like GtkFileDialogPeer, need to ++ * pass their size back to the AWT Component. ++ */ ++ void setComponentBounds () ++ { ++ } + +- } catch (RuntimeException ex) { ; } ++ void setVisibleAndEnabled () ++ { ++ setVisible (awtComponent.isVisible ()); ++ setEnabled (awtComponent.isEnabled ()); + } + + public int checkImage (Image image, int width, int height, +@@ -179,7 +220,10 @@ + + public Graphics getGraphics () + { +- return null; ++ if (GtkToolkit.useGraphics2D ()) ++ return new GdkGraphics2D (this); ++ else ++ return new GdkGraphics (this); + } + + public Point getLocationOnScreen () +@@ -206,6 +250,48 @@ + + public void handleEvent (AWTEvent event) + { ++ int id = event.getID(); ++ KeyEvent ke = null; ++ ++ switch (id) ++ { ++ case PaintEvent.PAINT: ++ case PaintEvent.UPDATE: ++ { ++ try ++ { ++ Graphics g = getGraphics (); ++ ++ // Some peers like GtkFileDialogPeer are repainted by Gtk itself ++ if (g == null) ++ break; ++ ++ g.setClip (((PaintEvent)event).getUpdateRect()); ++ ++ if (id == PaintEvent.PAINT) ++ awtComponent.paint (g); ++ else ++ awtComponent.update (g); ++ ++ g.dispose (); ++ } ++ catch (InternalError e) ++ { ++ System.err.println (e); ++ } ++ } ++ break; ++ case KeyEvent.KEY_PRESSED: ++ ke = (KeyEvent) event; ++ gtkWidgetDispatchKeyEvent (ke.getID (), ke.getWhen (), ke.getModifiersEx (), ++ ke.getKeyCode (), ke.getKeyLocation ()); ++ break; ++ case KeyEvent.KEY_RELEASED: ++ ke = (KeyEvent) event; ++ gtkWidgetDispatchKeyEvent (ke.getID (), ke.getWhen (), ke.getModifiersEx (), ++ ke.getKeyCode (), ke.getKeyLocation ()); ++ break; ++ } + } + + public boolean isFocusTraversable () +@@ -224,7 +310,21 @@ + + public void paint (Graphics g) + { +- awtComponent.paint (g); ++ Component parent = awtComponent.getParent(); ++ GtkComponentPeer parentPeer = null; ++ if ((parent instanceof Container) && !parent.isLightweight()) ++ parentPeer = (GtkComponentPeer) parent.getPeer(); ++ ++ addExposeFilter(); ++ if (parentPeer != null) ++ parentPeer.addExposeFilter(); ++ ++ Rectangle clip = g.getClipBounds(); ++ gtkWidgetQueueDrawArea(clip.x, clip.y, clip.width, clip.height); ++ ++ removeExposeFilter(); ++ if (parentPeer != null) ++ parentPeer.removeExposeFilter(); + } + + public Dimension preferredSize () +@@ -275,7 +375,11 @@ + new Rectangle (x, y, width, height))); + } + +- native public void requestFocus (); ++ public void requestFocus () ++ { ++ gtkWidgetRequestFocus(); ++ postFocusEvent(FocusEvent.FOCUS_GAINED, false); ++ } + + public void reshape (int x, int y, int width, int height) + { +@@ -292,8 +396,34 @@ + public void setBounds (int x, int y, int width, int height) + { + Component parent = awtComponent.getParent (); +- +- if (parent instanceof Window) ++ ++ // Heavyweight components that are children of one or more ++ // lightweight containers have to be handled specially. Because ++ // calls to GLightweightPeer.setBounds do nothing, GTK has no ++ // knowledge of the lightweight containers' positions. So we have ++ // to add the offsets manually when placing a heavyweight ++ // component within a lightweight container. The lightweight ++ // container may itself be in a lightweight container and so on, ++ // so we need to continue adding offsets until we reach a ++ // container whose position GTK knows -- that is, the first ++ // non-lightweight. ++ boolean lightweightChild = false; ++ Insets i; ++ while (parent.isLightweight ()) ++ { ++ lightweightChild = true; ++ ++ i = ((Container) parent).getInsets (); ++ ++ x += parent.getX () + i.left; ++ y += parent.getY () + i.top; ++ ++ parent = parent.getParent (); ++ } ++ ++ // We only need to convert from Java to GTK coordinates if we're ++ // placing a heavyweight component in a Window. ++ if (parent instanceof Window && !lightweightChild) + { + Insets insets = ((Window) parent).getInsets (); + // Convert from Java coordinates to GTK coordinates. +@@ -310,7 +440,7 @@ + + public void setEnabled (boolean b) + { +- set ("sensitive", b); ++ gtkWidgetSetSensitive (b); + } + + public void setFont (Font f) +@@ -318,6 +448,7 @@ + // FIXME: This should really affect the widget tree below me. + // Currently this is only handled if the call is made directly on + // a text widget, which implements setFont() itself. ++ gtkSetFont(f.getName(), f.getStyle(), f.getSize()); + } + + public void setForeground (Color c) +@@ -339,18 +470,14 @@ + + public void setVisible (boolean b) + { +- set ("visible", b); +- } +- +- public void hide () +- { +- setVisible (false); ++ if (b) ++ show (); ++ else ++ hide (); + } + +- public void show () +- { +- setVisible (true); +- } ++ public native void hide (); ++ public native void show (); + + protected void postMouseEvent(int id, long when, int mods, int x, int y, + int clickCount, boolean popupTrigger) +@@ -366,10 +493,28 @@ + } + + protected void postKeyEvent (int id, long when, int mods, +- int keyCode, char keyChar, int keyLocation) ++ int keyCode, char keyChar, int keyLocation) + { +- q.postEvent (new KeyEvent (awtComponent, id, when, mods, +- keyCode, keyChar, keyLocation)); ++ KeyEvent keyEvent = new KeyEvent (awtComponent, id, when, mods, ++ keyCode, keyChar, keyLocation); ++ ++ // Also post a KEY_TYPED event if keyEvent is a key press that ++ // doesn't represent an action or modifier key. ++ if (keyEvent.getID () == KeyEvent.KEY_PRESSED ++ && (!keyEvent.isActionKey () ++ && keyCode != KeyEvent.VK_SHIFT ++ && keyCode != KeyEvent.VK_CONTROL ++ && keyCode != KeyEvent.VK_ALT)) ++ { ++ synchronized (q) ++ { ++ q.postEvent (keyEvent); ++ q.postEvent (new KeyEvent (awtComponent, KeyEvent.KEY_TYPED, when, mods, ++ KeyEvent.VK_UNDEFINED, keyChar, keyLocation)); ++ } ++ } ++ else ++ q.postEvent (keyEvent); + } + + protected void postFocusEvent (int id, boolean temporary) +@@ -384,46 +529,6 @@ + item, stateChange)); + } + +- public void getArgs (Component component, GtkArgList args) +- { +- args.add ("visible", component.isVisible ()); +- args.add ("sensitive", component.isEnabled ()); +- +- ComponentPeer p; +- +- do +- { +- component = component.getParent (); +- p = component.getPeer (); +- } while (p instanceof java.awt.peer.LightweightPeer); +- +- if (p != null) +- args.add ("parent", p); +- } +- +- native void set (String name, String value); +- native void set (String name, boolean value); +- native void set (String name, int value); +- native void set (String name, float value); +- native void set (String name, Object value); +- +- void set (GtkArg arg) +- { +- String name = arg.getName (); +- Object value = arg.getValue (); +- +- if (value instanceof Boolean) +- set (name, ((Boolean)value).booleanValue ()); +- else if (value instanceof Integer) +- set (name, ((Integer)value).intValue ()); +- else if (value instanceof Float) +- set (name, ((Float)value).floatValue ()); +- else if (value instanceof String) +- set (name, ((String) value)); +- else +- set (name, value); +- } +- + public GraphicsConfiguration getGraphicsConfiguration () + { + // FIXME: just a stub for now. +Index: gnu/java/awt/peer/gtk/GtkContainerPeer.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkContainerPeer.java,v +retrieving revision 1.7 +diff -u -r1.7 GtkContainerPeer.java +--- gnu/java/awt/peer/gtk/GtkContainerPeer.java 13 Jan 2004 17:55:20 -0000 1.7 ++++ gnu/java/awt/peer/gtk/GtkContainerPeer.java 6 Sep 2004 16:35:39 -0000 +@@ -42,6 +42,7 @@ + import java.awt.Color; + import java.awt.Component; + import java.awt.Container; ++import java.awt.Font; + import java.awt.Graphics; + import java.awt.Insets; + import java.awt.event.PaintEvent; +@@ -89,50 +90,23 @@ + public void setBounds (int x, int y, int width, int height) + { + super.setBounds (x, y, width, height); +- awtComponent.validate (); + } + +- public Graphics getGraphics () ++ public void setFont(Font f) + { +- if (GtkToolkit.useGraphics2D ()) +- return new GdkGraphics2D (this); +- else +- return new GdkGraphics (this); ++ super.setFont(f); ++ Component[] components = ((Container) awtComponent).getComponents(); ++ for (int i = 0; i < components.length; i++) ++ { ++ GtkComponentPeer peer = (GtkComponentPeer) components[i].getPeer(); ++ if (peer != null && ! peer.awtComponent.isFontSet()) ++ peer.setFont(f); ++ } + } + +- public void handleEvent (AWTEvent event) ++ public Graphics getGraphics () + { +- int id = event.getID(); +- +- switch (id) +- { +- case PaintEvent.PAINT: +- case PaintEvent.UPDATE: +- { +- try +- { +- Graphics g = getGraphics (); +- +- // Some peers like GtkFileDialogPeer are repainted by Gtk itself +- if (g == null) +- break; +- +- g.setClip (((PaintEvent)event).getUpdateRect()); +- +- if (id == PaintEvent.PAINT) +- awtComponent.paint (g); +- else +- awtComponent.update (g); +- +- g.dispose (); +- } +- catch (InternalError e) +- { +- System.err.println (e); +- } +- } +- break; +- } ++ return super.getGraphics(); + } + + public void beginLayout () { } +Index: gnu/java/awt/peer/gtk/GtkDialogPeer.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkDialogPeer.java,v +retrieving revision 1.9 +diff -u -r1.9 GtkDialogPeer.java +--- gnu/java/awt/peer/gtk/GtkDialogPeer.java 13 Jan 2004 20:54:46 -0000 1.9 ++++ gnu/java/awt/peer/gtk/GtkDialogPeer.java 6 Sep 2004 16:35:39 -0000 +@@ -41,7 +41,10 @@ + import java.awt.AWTEvent; + import java.awt.Component; + import java.awt.Dialog; ++import java.awt.Graphics; + import java.awt.peer.DialogPeer; ++import java.awt.Rectangle; ++import java.awt.event.PaintEvent; + + public class GtkDialogPeer extends GtkWindowPeer + implements DialogPeer +@@ -50,22 +53,43 @@ + { + super (dialog); + } ++ ++ public Graphics getGraphics () ++ { ++ Graphics g; ++ if (GtkToolkit.useGraphics2D ()) ++ g = new GdkGraphics2D (this); ++ else ++ g = new GdkGraphics (this); ++ g.translate (-insets.left, -insets.top); ++ return g; ++ } ++ ++ protected void postMouseEvent(int id, long when, int mods, int x, int y, ++ int clickCount, boolean popupTrigger) ++ { ++ super.postMouseEvent (id, when, mods, ++ x + insets.left, y + insets.top, ++ clickCount, popupTrigger); ++ } ++ ++ protected void postExposeEvent (int x, int y, int width, int height) ++ { ++ q.postEvent (new PaintEvent (awtComponent, PaintEvent.PAINT, ++ new Rectangle (x + insets.left, ++ y + insets.top, ++ width, height))); ++ } + + void create () + { + // Create a decorated dialog window. + create (GDK_WINDOW_TYPE_HINT_DIALOG, true); +- } +- +- public void getArgs (Component component, GtkArgList args) +- { +- super.getArgs (component, args); + +- Dialog dialog = (Dialog) component; ++ Dialog dialog = (Dialog) awtComponent; + +- args.add ("title", dialog.getTitle ()); +- args.add ("modal", dialog.isModal ()); +- args.add ("allow_shrink", dialog.isResizable ()); +- args.add ("allow_grow", dialog.isResizable ()); ++ gtkWindowSetModal (dialog.isModal ()); ++ setTitle (dialog.getTitle ()); ++ setResizable (dialog.isResizable ()); + } + } +Index: gnu/java/awt/peer/gtk/GtkFileDialogPeer.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java,v +retrieving revision 1.4 +diff -u -r1.4 GtkFileDialogPeer.java +--- gnu/java/awt/peer/gtk/GtkFileDialogPeer.java 8 Jan 2004 21:12:25 -0000 1.4 ++++ gnu/java/awt/peer/gtk/GtkFileDialogPeer.java 6 Sep 2004 16:35:39 -0000 +@@ -1,5 +1,5 @@ + /* GtkFileDialogPeer.java -- Implements FileDialogPeer with GTK +- Copyright (C) 1998, 1999, 2002 Free Software Foundation, Inc. ++ Copyright (C) 1998, 1999, 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -42,9 +42,11 @@ + import java.awt.Dialog; + import java.awt.FileDialog; + import java.awt.Graphics; ++import java.awt.Window; + import java.awt.event.WindowEvent; + import java.awt.peer.FileDialogPeer; + import java.io.FilenameFilter; ++import java.io.File; + + public class GtkFileDialogPeer extends GtkDialogPeer implements FileDialogPeer + { +@@ -52,17 +54,47 @@ + + private String currentFile = null; + private String currentDirectory = null; ++ private FilenameFilter filter; + +- native void create (); ++ native void create (GtkContainerPeer parent); ++ native void connectJObject (); ++ native void connectSignals (); ++ native void nativeSetFile (String file); ++ native public String nativeGetDirectory(); ++ native public void nativeSetDirectory(String directory); ++ native void nativeSetFilenameFilter (FilenameFilter filter); ++ ++ public void create() { ++ create((GtkContainerPeer) awtComponent.getParent().getPeer()); ++ ++ FileDialog fd = (FileDialog) awtComponent; ++ ++ setDirectory(fd.getDirectory()); ++ setFile(fd.getFile()); ++ ++ FilenameFilter filter = fd.getFilenameFilter(); ++ if (filter != null) ++ setFilenameFilter(filter); ++ } + + public GtkFileDialogPeer (FileDialog fd) + { + super (fd); + } + +- native void connectJObject (); +- native void connectSignals (); +- native void nativeSetFile (String file); ++ void setComponentBounds () ++ { ++ if (awtComponent.getHeight () == 0 ++ && awtComponent.getWidth () == 0) ++ { ++ int[] dims = new int[2]; ++ gtkWidgetGetPreferredDimensions (dims); ++ ((GtkFileDialogPeer) this).setBoundsCallback ((Window) awtComponent, ++ awtComponent.getX (), ++ awtComponent.getY (), ++ dims[0], dims[1]); ++ } ++ } + + public void setFile (String fileName) + { +@@ -80,26 +112,16 @@ + return; + } + +- // Remove any directory path from the filename +- int sepIndex = fileName.lastIndexOf (FS); +- if (sepIndex < 0) +- { ++ // GtkFileChooser requires absolute filenames. If the given filename ++ // is not absolute, let's construct it based on current directory. + currentFile = fileName; ++ if (fileName.indexOf(FS) == 0) ++ { + nativeSetFile (fileName); + } + else + { +- if (fileName.length() > (sepIndex + 1)) +- { +- String fn = fileName.substring (sepIndex + 1); +- currentFile = fn; +- nativeSetFile (fn); +- } +- else +- { +- currentFile = ""; +- nativeSetFile (""); +- } ++ nativeSetFile (nativeGetDirectory() + FS + fileName); + } + } + +@@ -120,20 +142,25 @@ + } + + currentDirectory = directory; +- +- // Gtk expects the directory to end with a file separator +- if (directory.substring (directory.length () - 1).equals (FS)) +- nativeSetFile (directory); +- else +- nativeSetFile (directory + FS); ++ nativeSetDirectory (directory); + } + + public void setFilenameFilter (FilenameFilter filter) + { +- /* GTK has no filter callbacks yet. It works by setting a pattern +- * (see gtk_file_selection_complete), which we can't convert +- * to the callback paradigm. With GTK-2.4 there will be a +- * gtk_file_filter_add_custom function that we can use. */ ++ this.filter = filter; ++ nativeSetFilenameFilter(filter); ++ } ++ ++ /* This method interacts with the native callback function of the ++ same name. The native function will extract the filename from the ++ GtkFileFilterInfo object and send it to this method, which will ++ in turn call the filter's accept() method and give back the return ++ value. */ ++ boolean filenameFilterCallback (String fullname) { ++ String filename = fullname.substring(fullname.lastIndexOf(FS) + 1); ++ String dirname = fullname.substring(0, fullname.lastIndexOf(FS)); ++ File dir = new File(dirname); ++ return filter.accept(dir, filename); + } + + public Graphics getGraphics () +Index: gnu/java/awt/peer/gtk/GtkFontPeer.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkFontPeer.java,v +retrieving revision 1.3 +diff -u -r1.3 GtkFontPeer.java +--- gnu/java/awt/peer/gtk/GtkFontPeer.java 31 Dec 2003 08:58:30 -0000 1.3 ++++ gnu/java/awt/peer/gtk/GtkFontPeer.java 6 Sep 2004 16:35:39 -0000 +@@ -43,6 +43,7 @@ + import java.awt.font.*; + import java.util.Locale; + import java.util.ResourceBundle; ++import java.util.MissingResourceException; + import java.text.*; + import gnu.java.awt.peer.ClasspathFontPeer; + +@@ -62,15 +63,32 @@ + } + } + +- final private String Xname; // uses %d for font size. ++ final private String Xname; + + public GtkFontPeer (String name, int style) + { +- super(name, style, 12 /* kludge */); ++ // All fonts get a default size of 12 if size is not specified. ++ this(name, style, 12); ++ } ++ ++ public GtkFontPeer (String name, int style, int size) ++ { ++ super(name, style, size); + ++ String Xname = null; + if (bundle != null) +- Xname = bundle.getString (name.toLowerCase () + "." + style); +- else ++ { ++ try ++ { ++ Xname = bundle.getString (name.toLowerCase () + "." + style); ++ } ++ catch (MissingResourceException mre) ++ { ++ // ignored ++ } ++ } ++ ++ if (Xname == null) + { + String weight; + String slant; +@@ -90,8 +108,10 @@ + else + spacing = "c"; + +- Xname = "-*-*-" + weight + "-" + slant + "-normal-*-%d-*-*-*-" + spacing + "-*-*-*"; ++ Xname = "-*-*-" + weight + "-" + slant + "-normal-*-*-" + size + "-*-*-" + spacing + "-*-*-*"; + } ++ ++ this.Xname = Xname; + } + + public String getXLFD () +Index: gnu/java/awt/peer/gtk/GtkFramePeer.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkFramePeer.java,v +retrieving revision 1.8 +diff -u -r1.8 GtkFramePeer.java +--- gnu/java/awt/peer/gtk/GtkFramePeer.java 13 Jan 2004 20:54:46 -0000 1.8 ++++ gnu/java/awt/peer/gtk/GtkFramePeer.java 6 Sep 2004 16:35:39 -0000 +@@ -1,5 +1,5 @@ + /* GtkFramePeer.java -- Implements FramePeer with GTK +- Copyright (C) 1999, 2002 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -45,24 +45,87 @@ + import java.awt.Image; + import java.awt.MenuBar; + import java.awt.Rectangle; ++import java.awt.Window; + import java.awt.event.PaintEvent; ++import java.awt.image.ColorModel; + import java.awt.peer.FramePeer; + import java.awt.peer.MenuBarPeer; + + public class GtkFramePeer extends GtkWindowPeer + implements FramePeer + { +- int menuBarHeight = 0; +- native int getMenuBarHeight (); +- +- native public void setMenuBarPeer (MenuBarPeer bar); ++ private int menuBarHeight; ++ private MenuBarPeer menuBar; ++ native int getMenuBarHeight (MenuBarPeer bar); ++ ++ native void setMenuBarPeer (MenuBarPeer bar); ++ native void removeMenuBarPeer (); ++ native void moveLayout (int offset); ++ native void gtkLayoutSetVisible (boolean vis); + + public void setMenuBar (MenuBar bar) + { + if (bar == null) +- setMenuBarPeer (null); ++ { ++ if (menuBar != null) ++ { ++ gtkLayoutSetVisible(false); ++ removeMenuBarPeer(); ++ menuBar = null; ++ moveLayout(menuBarHeight); ++ insets.top -= menuBarHeight; ++ menuBarHeight = 0; ++ awtComponent.doLayout(); ++ gtkLayoutSetVisible(true); ++ } ++ } + else +- setMenuBarPeer ((MenuBarPeer) bar.getPeer ()); ++ { ++ gtkLayoutSetVisible(false); ++ int oldHeight = 0; ++ if (menuBar != null) ++ { ++ removeMenuBarPeer(); ++ oldHeight = menuBarHeight; ++ insets.top -= menuBarHeight; ++ } ++ menuBar = (MenuBarPeer) ((MenuBar) bar).getPeer(); ++ setMenuBarPeer(menuBar); ++ menuBarHeight = getMenuBarHeight (menuBar); ++ if (oldHeight != menuBarHeight) ++ moveLayout(oldHeight - menuBarHeight); ++ insets.top += menuBarHeight; ++ awtComponent.doLayout(); ++ gtkLayoutSetVisible(true); ++ } ++ } ++ ++ public void setBounds (int x, int y, int width, int height) ++ { ++ nativeSetBounds (x, y, ++ width - insets.left - insets.right, ++ height - insets.top - insets.bottom ++ + menuBarHeight); ++ } ++ ++ public void setResizable (boolean resizable) ++ { ++ // Call setSize; otherwise when resizable is changed from true to ++ // false the frame will shrink to the dimensions it had before it ++ // was resizable. ++ setSize (awtComponent.getWidth() - insets.left - insets.right, ++ awtComponent.getHeight() - insets.top - insets.bottom ++ + menuBarHeight); ++ gtkWindowSetResizable (resizable); ++ } ++ ++ protected void postInsetsChangedEvent (int top, int left, ++ int bottom, int right) ++ { ++ insets.top = top + menuBarHeight; ++ insets.left = left; ++ insets.bottom = bottom; ++ insets.right = right; + } + + public GtkFramePeer (Frame frame) +@@ -74,22 +137,46 @@ + { + // Create a normal decorated window. + create (GDK_WINDOW_TYPE_HINT_NORMAL, true); +- } + +- public void getArgs (Component component, GtkArgList args) +- { +- super.getArgs (component, args); ++ Frame frame = (Frame) awtComponent; + +- Frame frame = (Frame) component; ++ setMenuBar (frame.getMenuBar ()); + +- args.add ("title", frame.getTitle ()); +- args.add ("allow_shrink", frame.isResizable ()); +- args.add ("allow_grow", frame.isResizable ()); ++ setTitle (frame.getTitle ()); ++ setResizable (frame.isResizable ()); ++ setIconImage(frame.getIconImage()); + } + ++ native void nativeSetIconImageFromDecoder (GdkPixbufDecoder decoder); ++ native void nativeSetIconImageFromData (int[] pixels, int width, int height); + public void setIconImage (Image image) + { +- /* TODO: Waiting on Toolkit Image routines */ ++ if (image != null) ++ { ++ GtkImage img = (GtkImage) image; ++ // FIXME: Image should be loaded, but if not, do image loading here. ++ if (img.isLoaded()) ++ { ++ if (img.getSource() instanceof GdkPixbufDecoder) ++ { ++ nativeSetIconImageFromDecoder((GdkPixbufDecoder) img.getSource()); ++ } ++ else ++ { ++ int[] pixels = img.getPixelCache(); ++ ColorModel model = img.getColorModel(); ++ int[] data = new int[pixels.length * 4]; ++ for (int i = 0; i < pixels.length; i++) ++ { ++ data[i * 4] = model.getRed(pixels[i]); ++ data[i * 4 + 1] = model.getGreen(pixels[i]); ++ data[i * 4 + 2] = model.getBlue(pixels[i]); ++ data[i * 4 + 3] = model.getAlpha(pixels[i]); ++ } ++ nativeSetIconImageFromData(data, img.getWidth(null), img.getHeight(null)); ++ } ++ } ++ } + } + + public Graphics getGraphics () +@@ -102,10 +189,32 @@ + g.translate (-insets.left, -insets.top); + return g; + } +- +- // FIXME: When MenuBars work, override postConfigureEvent and +- // setBounds to account for MenuBar dimensions. +- ++ ++ protected void postConfigureEvent (int x, int y, int width, int height) ++ { ++ int frame_x = x - insets.left; ++ // Since insets.top includes the MenuBar height, we need to add back ++ // the MenuBar height to the frame's y position. ++ // If no MenuBar exists in this frame, the MenuBar height will be 0. ++ int frame_y = y - insets.top + menuBarHeight; ++ int frame_width = width + insets.left + insets.right; ++ // Ditto as above. Since insets.top already includes the MenuBar's height, ++ // we need to subtract the MenuBar's height from the top inset. ++ int frame_height = height + insets.top + insets.bottom - menuBarHeight; ++ if (frame_x != awtComponent.getX() ++ || frame_y != awtComponent.getY() ++ || frame_width != awtComponent.getWidth() ++ || frame_height != awtComponent.getHeight()) ++ { ++ setBoundsCallback ((Window) awtComponent, ++ frame_x, ++ frame_y, ++ frame_width, ++ frame_height); ++ } ++ awtComponent.validate(); ++ } ++ + protected void postMouseEvent(int id, long when, int mods, int x, int y, + int clickCount, boolean popupTrigger) + { +Index: gnu/java/awt/peer/gtk/GtkImage.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkImage.java,v +retrieving revision 1.4 +diff -u -r1.4 GtkImage.java +--- gnu/java/awt/peer/gtk/GtkImage.java 1 Dec 2003 15:28:22 -0000 1.4 ++++ gnu/java/awt/peer/gtk/GtkImage.java 6 Sep 2004 16:35:39 -0000 +@@ -89,6 +89,18 @@ + this.observer = observer; + } + ++ public synchronized int[] ++ getPixelCache () ++ { ++ return pixelCache; ++ } ++ ++ public synchronized ColorModel ++ getColorModel () ++ { ++ return model; ++ } ++ + public synchronized int + getWidth (ImageObserver observer) + { +@@ -202,7 +214,7 @@ + public synchronized void + setColorModel (ColorModel model) + { +- if (this.model == null || this.model == model) ++ if (this.model == null || this.model.equals(model)) + this.model = model; + else + isCacheable = false; +@@ -235,13 +247,13 @@ + if (!isCacheable) + return; + +- if (cm != model || pixelCache == null) ++ if (!cm.equals(model) || pixelCache == null) + { + isCacheable = false; + return; + } + +- if (scansize == width) ++ if (scansize == width && height == 1) + { + System.arraycopy (pixels, offset, + pixelCache, y * this.width + x, +Index: gnu/java/awt/peer/gtk/GtkImagePainter.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkImagePainter.java,v +retrieving revision 1.2 +diff -u -r1.2 GtkImagePainter.java +--- gnu/java/awt/peer/gtk/GtkImagePainter.java 13 Jul 2003 15:09:20 -0000 1.2 ++++ gnu/java/awt/peer/gtk/GtkImagePainter.java 6 Sep 2004 16:35:39 -0000 +@@ -104,7 +104,7 @@ + s_width = Math.abs (sx2 - sx1); + s_height = Math.abs (sy2 - sy1); + clip = new Rectangle (sx1, sy1, s_width, s_height); +- ++ + new Thread (this).start (); + } + +@@ -119,6 +119,11 @@ + static int[] + convertPixels (int[] pixels, ColorModel model) + { ++ if (pixels == null || model == null) ++ { ++ return null; ++ } ++ + if (model.equals (ColorModel.getRGBdefault ())) + return pixels; + +@@ -133,6 +138,11 @@ + static int[] + convertPixels (byte[] pixels, ColorModel model) + { ++ if (pixels == null || model == null) ++ { ++ return null; ++ } ++ + int ret[] = new int[pixels.length]; + + for (int i = 0; i < pixels.length; i++) +@@ -160,8 +170,6 @@ + + offset += r.y * scansize + r.x; + +- r.translate (-Math.abs (clip.x - startX), -Math.abs (clip.y - startY)); +- + width = r.width; + height = r.height; + x = r.x; +@@ -178,8 +186,8 @@ + setPixels (int x, int y, int width, int height, ColorModel model, + byte[] pixels, int offset, int scansize) + { +- setPixels (x, y, width, height, model, convertPixels (pixels, model), +- offset, scansize); ++ setPixels (x, y, width, height, ColorModel.getRGBdefault(), ++ convertPixels (pixels, model), offset, scansize); + } + + public void +@@ -238,5 +246,6 @@ + public void + imageComplete (int status) + { ++ image.imageComplete(status); + } + } +Index: gnu/java/awt/peer/gtk/GtkLabelPeer.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkLabelPeer.java,v +retrieving revision 1.3 +diff -u -r1.3 GtkLabelPeer.java +--- gnu/java/awt/peer/gtk/GtkLabelPeer.java 11 Nov 2003 17:04:46 -0000 1.3 ++++ gnu/java/awt/peer/gtk/GtkLabelPeer.java 6 Sep 2004 16:35:39 -0000 +@@ -39,28 +39,30 @@ + package gnu.java.awt.peer.gtk; + + import java.awt.Component; ++import java.awt.Font; + import java.awt.Label; + import java.awt.peer.LabelPeer; + + public class GtkLabelPeer extends GtkComponentPeer + implements LabelPeer + { ++ native void create (String text, float alignment); ++ native void gtkSetFont (String name, int style, int size); ++ native void nativeSetAlignment (float alignment); ++ ++ native public void setText (String text); ++ + void create () + { + Label label = (Label) awtComponent; + create (label.getText (), getGtkAlignment (label.getAlignment ())); + } + +- native void create (String text, float alignment); +- + public GtkLabelPeer (Label l) + { + super (l); + } + +- native public void setText (String text); +- +- native void nativeSetAlignment (float alignment); + public void setAlignment (int alignment) + { + nativeSetAlignment (getGtkAlignment (alignment)); +Index: gnu/java/awt/peer/gtk/GtkListPeer.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkListPeer.java,v +retrieving revision 1.6 +diff -u -r1.6 GtkListPeer.java +--- gnu/java/awt/peer/gtk/GtkListPeer.java 17 Dec 2003 18:02:56 -0000 1.6 ++++ gnu/java/awt/peer/gtk/GtkListPeer.java 6 Sep 2004 16:35:39 -0000 +@@ -48,13 +48,22 @@ + public class GtkListPeer extends GtkComponentPeer + implements ListPeer + { +-// native void create (ComponentPeer parent, String [] items, boolean mode); ++ void create () ++ { ++ List list = (List) awtComponent; ++ ++ create (list.getRows ()); + +- native void create (); ++ setMultipleMode (list.isMultipleMode ()); ++ } ++ ++ native void create (int rows); + native void connectJObject (); + native void connectSignals (); ++ native void gtkSetFont (String name, int style, int size); ++ native void gtkWidgetRequestFocus (); + +- native void getSize (int rows, int dims[]); ++ native void getSize (int rows, int visibleRows, int dims[]); + + public GtkListPeer (List list) + { +@@ -85,18 +94,12 @@ + + public Dimension getMinimumSize (int rows) + { +- int dims[] = new int[2]; +- +- getSize (rows, dims); +- return (new Dimension (dims[0], dims[1])); ++ return minimumSize (rows); + } + + public Dimension getPreferredSize (int rows) + { +- int dims[] = new int[2]; +- +- getSize (rows, dims); +- return (new Dimension (dims[0], dims[1])); ++ return preferredSize (rows); + } + + public native int[] getSelectedIndexes (); +@@ -104,12 +107,20 @@ + + public Dimension minimumSize (int rows) + { +- return (getMinimumSize (rows)); ++ int dims[] = new int[2]; ++ ++ int visibleRows = ((List) awtComponent).getRows(); ++ getSize (rows, visibleRows, dims); ++ return new Dimension (dims[0], dims[1]); + } + + public Dimension preferredSize (int rows) + { +- return (getPreferredSize (rows)); ++ int dims[] = new int[2]; ++ ++ int visibleRows = ((List) awtComponent).getRows(); ++ getSize (rows, visibleRows, dims); ++ return new Dimension (dims[0], dims[1]); + } + + public void removeAll () +@@ -129,20 +140,20 @@ + { + if (e.getID () == MouseEvent.MOUSE_CLICKED && isEnabled ()) + { +- /* Only generate the ActionEvent on the second click of +- a multiple click */ ++ // Only generate the ActionEvent on the second click of a ++ // multiple click. + MouseEvent me = (MouseEvent) e; + if (!me.isConsumed () +- && (me.getModifiers () & MouseEvent.BUTTON1_MASK) != 0 ++ && (me.getModifiersEx () & MouseEvent.BUTTON1_DOWN_MASK) != 0 + && me.getClickCount() == 2) + { +- String selectedItem = ((List)awtComponent).getSelectedItem (); ++ String selectedItem = ((List) awtComponent).getSelectedItem (); + +- /* Double-click only generates an Action event +- if something is selected */ ++ // Double-click only generates an Action event if ++ // something is selected. + if (selectedItem != null) +- postActionEvent (((List)awtComponent).getSelectedItem (), +- me.getModifiers ()); ++ postActionEvent (((List) awtComponent).getSelectedItem (), ++ me.getModifiersEx ()); + } + } + +@@ -151,11 +162,12 @@ + KeyEvent ke = (KeyEvent) e; + if (!ke.isConsumed () && ke.getKeyCode () == KeyEvent.VK_ENTER) + { +- String selectedItem = ((List)awtComponent).getSelectedItem (); ++ String selectedItem = ((List) awtComponent).getSelectedItem (); + +- /* Enter only generates an Action event if something is selected */ ++ // Enter only generates an Action event if something is ++ // selected. + if (selectedItem != null) +- postActionEvent (selectedItem, ke.getModifiers ()); ++ postActionEvent (selectedItem, ke.getModifiersEx ()); + } + } + +Index: gnu/java/awt/peer/gtk/GtkMainThread.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkMainThread.java,v +retrieving revision 1.1 +diff -u -r1.1 GtkMainThread.java +--- gnu/java/awt/peer/gtk/GtkMainThread.java 31 Jan 2003 17:54:13 -0000 1.1 ++++ gnu/java/awt/peer/gtk/GtkMainThread.java 6 Sep 2004 16:35:39 -0000 +@@ -43,7 +43,18 @@ + private static Thread mainThread = null; + private static Object mainThreadLock = new Object(); + +- static native void gtkInit(); ++ // Whether the gtk+ subsystem has been initialized. ++ private boolean gtkInitCalled = false; ++ ++ /** ++ * Call gtk_init. It is very important that this happen before any other ++ * gtk calls. ++ * ++ * @param portableNativeSync 1 if the Java property ++ * gnu.classpath.awt.gtk.portable.native.sync is set to "true". 0 if it is ++ * set to "false". -1 if unset. ++ */ ++ static native void gtkInit(int portableNativeSync); + native void gtkMain(); + + public GtkMainThread() +@@ -59,18 +70,38 @@ + synchronized (this) + { + mainThread.start(); +- try { +- wait(); +- } catch (InterruptedException e) { } ++ ++ while (!gtkInitCalled) ++ { ++ try ++ { ++ wait(); ++ } ++ catch (InterruptedException e) { } ++ } + } + } + + public void run() + { ++ /* Pass the value of the gnu.classpath.awt.gtk.portable.native.sync system ++ * property to C. */ ++ int portableNativeSync; ++ String portNatSyncProp = ++ System.getProperty("gnu.classpath.awt.gtk.portable.native.sync"); ++ ++ if (portNatSyncProp == null) ++ portableNativeSync = -1; // unset ++ else if (Boolean.valueOf(portNatSyncProp).booleanValue()) ++ portableNativeSync = 1; // true ++ else ++ portableNativeSync = 0; // false ++ + synchronized (this) + { +- gtkInit(); +- notify(); ++ gtkInit(portableNativeSync); ++ gtkInitCalled = true; ++ notifyAll(); + } + gtkMain(); + } +Index: gnu/java/awt/peer/gtk/GtkMenuBarPeer.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkMenuBarPeer.java,v +retrieving revision 1.2 +diff -u -r1.2 GtkMenuBarPeer.java +--- gnu/java/awt/peer/gtk/GtkMenuBarPeer.java 13 Jul 2003 15:09:20 -0000 1.2 ++++ gnu/java/awt/peer/gtk/GtkMenuBarPeer.java 6 Sep 2004 16:35:39 -0000 +@@ -56,15 +56,12 @@ + create (); + } + ++ native void nativeSetHelpMenu(MenuPeer menuPeer); ++ + /* In Gnome, help menus are no longer right flushed. */ + public void addHelpMenu (Menu menu) + { +- addMenu (menu); +- } +- +- public void addMenu (Menu menu) +- { +- addMenu ((MenuPeer) menu.getPeer ()); ++ nativeSetHelpMenu((MenuPeer) menu.getPeer()); + } + + native public void delMenu (int index); +Index: gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java,v +retrieving revision 1.2 +diff -u -r1.2 GtkMenuComponentPeer.java +--- gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java 13 Jul 2003 15:09:20 -0000 1.2 ++++ gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java 6 Sep 2004 16:35:39 -0000 +@@ -47,8 +47,6 @@ + { + super (awtWidget); + } +- +- public void dispose () +- { +- } ++ ++ public native void dispose(); + } +Index: gnu/java/awt/peer/gtk/GtkMenuItemPeer.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkMenuItemPeer.java,v +retrieving revision 1.3 +diff -u -r1.3 GtkMenuItemPeer.java +--- gnu/java/awt/peer/gtk/GtkMenuItemPeer.java 8 Oct 2003 15:49:31 -0000 1.3 ++++ gnu/java/awt/peer/gtk/GtkMenuItemPeer.java 6 Sep 2004 16:35:39 -0000 +@@ -50,6 +50,7 @@ + implements MenuItemPeer + { + native void create (String label); ++ public native void connectSignals (); + + public GtkMenuItemPeer (MenuItem item) + { +@@ -57,6 +58,9 @@ + create (item.getLabel ()); + setEnabled (item.isEnabled ()); + setParent (item); ++ ++ if (item.getParent() instanceof Menu && ! (item instanceof Menu)) ++ connectSignals(); + } + + void setParent (MenuItem item) +@@ -85,10 +89,8 @@ + setEnabled (true); + } + +- public void setEnabled (boolean b) +- { +- // do nothing, for now. +- } ++ native public void setEnabled (boolean b); ++ + native public void setLabel (String label); + + protected void postMenuActionEvent () +Index: gnu/java/awt/peer/gtk/GtkMenuPeer.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkMenuPeer.java,v +retrieving revision 1.2 +diff -u -r1.2 GtkMenuPeer.java +--- gnu/java/awt/peer/gtk/GtkMenuPeer.java 13 Jul 2003 15:09:20 -0000 1.2 ++++ gnu/java/awt/peer/gtk/GtkMenuPeer.java 6 Sep 2004 16:35:39 -0000 +@@ -52,11 +52,15 @@ + native void create (String label); + native void addItem (MenuItemPeer item, int key, boolean shiftModifier); + native void setupAccelGroup (GtkGenericPeer container); ++ native void addTearOff (); + + public GtkMenuPeer (Menu menu) + { + super (menu); + ++ if (menu.isTearOff()) ++ addTearOff(); ++ + MenuContainer parent = menu.getParent (); + if (parent instanceof Menu) + setupAccelGroup ((GtkGenericPeer)((Menu)parent).getPeer ()); +@@ -95,10 +99,5 @@ + addItem (item, key, shiftModifier); + } + +- public void addSeparator () +- { +- addItem (new MenuItem ("-")); +- } +- + native public void delItem (int index); + } +Index: gnu/java/awt/peer/gtk/GtkOffScreenImage.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkOffScreenImage.java,v +retrieving revision 1.2 +diff -u -r1.2 GtkOffScreenImage.java +--- gnu/java/awt/peer/gtk/GtkOffScreenImage.java 13 Jul 2003 15:09:20 -0000 1.2 ++++ gnu/java/awt/peer/gtk/GtkOffScreenImage.java 6 Sep 2004 16:35:39 -0000 +@@ -76,7 +76,10 @@ + + public Graphics getGraphics () + { +- return g; ++ if (g instanceof GdkGraphics2D) ++ return new GdkGraphics2D ((GdkGraphics2D) this.g); ++ else ++ return new GdkGraphics ((GdkGraphics) this.g); + } + + public Object getProperty (String name, ImageObserver observer) +Index: gnu/java/awt/peer/gtk/GtkPanelPeer.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkPanelPeer.java,v +retrieving revision 1.3 +diff -u -r1.3 GtkPanelPeer.java +--- gnu/java/awt/peer/gtk/GtkPanelPeer.java 11 Dec 2003 13:50:50 -0000 1.3 ++++ gnu/java/awt/peer/gtk/GtkPanelPeer.java 6 Sep 2004 16:35:39 -0000 +@@ -38,7 +38,9 @@ + + package gnu.java.awt.peer.gtk; + ++import java.awt.AWTEvent; + import java.awt.Panel; ++import java.awt.event.MouseEvent; + import java.awt.peer.PanelPeer; + + public class GtkPanelPeer extends GtkContainerPeer +@@ -46,10 +48,22 @@ + { + native void create (); + native void connectJObject (); +- native void connectSignals (); + + public GtkPanelPeer (Panel p) + { + super (p); + } ++ ++ public void handleEvent (AWTEvent event) ++ { ++ int id = event.getID(); ++ ++ switch (id) ++ { ++ case MouseEvent.MOUSE_PRESSED: ++ awtComponent.requestFocusInWindow (); ++ break; ++ } ++ super.handleEvent (event); ++ } + } +Index: gnu/java/awt/peer/gtk/GtkScrollPanePeer.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkScrollPanePeer.java,v +retrieving revision 1.3 +diff -u -r1.3 GtkScrollPanePeer.java +--- gnu/java/awt/peer/gtk/GtkScrollPanePeer.java 5 Jan 2004 21:35:32 -0000 1.3 ++++ gnu/java/awt/peer/gtk/GtkScrollPanePeer.java 6 Sep 2004 16:35:39 -0000 +@@ -39,6 +39,7 @@ + package gnu.java.awt.peer.gtk; + + import java.awt.Adjustable; ++import java.awt.Dimension; + import java.awt.ScrollPane; + import java.awt.peer.ComponentPeer; + import java.awt.peer.ScrollPanePeer; +@@ -87,10 +88,10 @@ + native public int getVScrollbarWidth (); + native public void setScrollPosition (int x, int y); + +-// public Dimension getPreferredSize () +-// { +-// return new Dimension (60, 60); +-// } ++ public Dimension getPreferredSize () ++ { ++ return awtComponent.getSize(); ++ } + + public void setUnitIncrement (Adjustable adj, int u) + { +Index: gnu/java/awt/peer/gtk/GtkTextAreaPeer.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkTextAreaPeer.java,v +retrieving revision 1.7 +diff -u -r1.7 GtkTextAreaPeer.java +--- gnu/java/awt/peer/gtk/GtkTextAreaPeer.java 13 Jan 2004 20:58:33 -0000 1.7 ++++ gnu/java/awt/peer/gtk/GtkTextAreaPeer.java 6 Sep 2004 16:35:39 -0000 +@@ -47,9 +47,13 @@ + public class GtkTextAreaPeer extends GtkTextComponentPeer + implements TextAreaPeer + { ++ private static transient int DEFAULT_ROWS = 10; ++ private static transient int DEFAULT_COLS = 80; ++ + native void create (int width, int height, int scrollbarVisibility); + + native void gtkSetFont (String name, int style, int size); ++ native void gtkWidgetRequestFocus (); + + void create () + { +@@ -60,7 +64,7 @@ + // GtkComponent.create. + if (f == null) + { +- f = new Font ("Fixed", Font.PLAIN, 12); ++ f = new Font ("Dialog", Font.PLAIN, 12); + awtComponent.setFont (f); + } + +@@ -71,13 +75,17 @@ + fm = new GdkFontMetrics (f); + + TextArea ta = ((TextArea) awtComponent); +- int rows = ta.getRows (); +- int cols = ta.getColumns (); ++ int sizeRows = ta.getRows (); ++ int sizeCols = ta.getColumns (); ++ ++ sizeRows = sizeRows == 0 ? DEFAULT_ROWS : sizeRows; ++ sizeCols = sizeCols == 0 ? DEFAULT_COLS : sizeCols; + +- int width = cols * fm.getMaxAdvance (); +- int height = rows * (fm.getMaxDescent () + fm.getMaxAscent ()); ++ int width = sizeCols * fm.getMaxAdvance (); ++ int height = sizeRows * (fm.getMaxDescent () + fm.getMaxAscent ()); + + create (width, height, ta.getScrollbarVisibility ()); ++ setEditable (ta.isEditable ()); + } + + public GtkTextAreaPeer (TextArea ta) +@@ -90,12 +98,14 @@ + + public Dimension getMinimumSize (int rows, int cols) + { +- return minimumSize (rows, cols); ++ return minimumSize (rows == 0 ? DEFAULT_ROWS : rows, ++ cols == 0 ? DEFAULT_COLS : cols); + } + + public Dimension getPreferredSize (int rows, int cols) + { +- return preferredSize (rows, cols); ++ return preferredSize (rows == 0 ? DEFAULT_ROWS : rows, ++ cols == 0 ? DEFAULT_COLS : cols); + } + + native int getHScrollbarHeight (); +@@ -105,8 +115,6 @@ + public Dimension minimumSize (int rows, int cols) + { + TextArea ta = ((TextArea) awtComponent); +- int hScrollbarHeight = 0; +- int vScrollbarWidth = 0; + int height = 0; + int width = 0; + +@@ -128,8 +136,11 @@ + else + fm = new GdkFontMetrics (f); + +- width += cols * fm.getMaxAdvance (); +- height += rows * (fm.getMaxDescent () + fm.getMaxAscent ()); ++ int sizeRows = rows == 0 ? DEFAULT_ROWS : rows; ++ int sizeCols = cols == 0 ? DEFAULT_COLS : cols; ++ ++ width += sizeCols * fm.getMaxAdvance (); ++ height += sizeRows * (fm.getMaxDescent () + fm.getMaxAscent ()); + + return new Dimension (width, height); + } +@@ -137,8 +148,6 @@ + public Dimension preferredSize (int rows, int cols) + { + TextArea ta = ((TextArea) awtComponent); +- int hScrollbarHeight = 0; +- int vScrollbarWidth = 0; + int height = 0; + int width = 0; + +@@ -160,8 +169,11 @@ + else + fm = new GdkFontMetrics (f); + +- width += cols * fm.getMaxAdvance (); +- height += rows * (fm.getMaxDescent () + fm.getMaxAscent ()); ++ int sizeRows = rows == 0 ? DEFAULT_ROWS : rows; ++ int sizeCols = cols == 0 ? DEFAULT_COLS : cols; ++ ++ width += sizeCols * fm.getMaxAdvance (); ++ height += sizeRows * (fm.getMaxDescent () + fm.getMaxAscent ()); + + return new Dimension (width, height); + } +@@ -175,9 +187,4 @@ + { + insert (str, pos); + } +- +- public void setFont (Font f) +- { +- gtkSetFont (f.getName (), f.getStyle (), f.getSize ()); +- } + } +Index: gnu/java/awt/peer/gtk/GtkTextComponentPeer.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkTextComponentPeer.java,v +retrieving revision 1.7 +diff -u -r1.7 GtkTextComponentPeer.java +--- gnu/java/awt/peer/gtk/GtkTextComponentPeer.java 11 Dec 2003 13:50:50 -0000 1.7 ++++ gnu/java/awt/peer/gtk/GtkTextComponentPeer.java 6 Sep 2004 16:35:39 -0000 +@@ -54,6 +54,7 @@ + super (tc); + + setText (tc.getText ()); ++ setCaretPosition(0); + } + + public native void connectSignals (); +Index: gnu/java/awt/peer/gtk/GtkTextFieldPeer.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkTextFieldPeer.java,v +retrieving revision 1.8 +diff -u -r1.8 GtkTextFieldPeer.java +--- gnu/java/awt/peer/gtk/GtkTextFieldPeer.java 8 Oct 2003 23:38:44 -0000 1.8 ++++ gnu/java/awt/peer/gtk/GtkTextFieldPeer.java 6 Sep 2004 16:35:39 -0000 +@@ -41,6 +41,7 @@ + import java.awt.AWTEvent; + import java.awt.Dimension; + import java.awt.Font; ++import java.awt.FontMetrics; + import java.awt.TextField; + import java.awt.event.KeyEvent; + import java.awt.peer.TextFieldPeer; +@@ -48,14 +49,42 @@ + public class GtkTextFieldPeer extends GtkTextComponentPeer + implements TextFieldPeer + { ++ native void create (int width); ++ native void gtkWidgetSetBackground (int red, int green, int blue); ++ native void gtkWidgetSetForeground (int red, int green, int blue); ++ ++ void create () ++ { ++ Font f = awtComponent.getFont (); ++ ++ // By default, Sun sets a TextField's font when its peer is ++ // created. If f != null then the peer's font is set by ++ // GtkComponent.create. ++ if (f == null) ++ { ++ f = new Font ("Dialog", Font.PLAIN, 12); ++ awtComponent.setFont (f); ++ } + +-// native void create (ComponentPeer parent, String text); ++ FontMetrics fm; ++ if (GtkToolkit.useGraphics2D ()) ++ fm = new GdkClasspathFontPeerMetrics (f); ++ else ++ fm = new GdkFontMetrics (f); + +- native void create (); ++ TextField tf = ((TextField) awtComponent); ++ int cols = tf.getColumns (); + +- native void gtkEntryGetSize (int dims[]); ++ int text_width = cols * fm.getMaxAdvance (); + +- native void gtkSetFont(String name, int style, int size); ++ create (text_width); ++ ++ setEditable (tf.isEditable ()); ++ } ++ ++ native int gtkEntryGetBorderWidth (); ++ ++ native void gtkSetFont (String name, int style, int size); + + public GtkTextFieldPeer (TextField tf) + { +@@ -67,34 +96,61 @@ + + public Dimension getMinimumSize (int cols) + { +- int dims[] = new int[2]; +- +- gtkEntryGetSize (dims); +- +- return (new Dimension (dims[0], dims[1])); ++ return minimumSize (cols); + } + + public Dimension getPreferredSize (int cols) + { +- int dims[] = new int[2]; +- +- gtkEntryGetSize (dims); +- +- return (new Dimension (dims[0], dims[1])); ++ return preferredSize (cols); + } +- +- public native void setEchoChar (char c); + +- /* Deprecated */ ++ public native void setEchoChar (char c); + ++ // Deprecated + public Dimension minimumSize (int cols) + { +- return getMinimumSize (cols); ++ int dim[] = new int[2]; ++ ++ gtkWidgetGetPreferredDimensions (dim); ++ ++ Font f = awtComponent.getFont (); ++ if (f == null) ++ return new Dimension (2 * gtkEntryGetBorderWidth (), dim[1]); ++ ++ FontMetrics fm; ++ if (GtkToolkit.useGraphics2D ()) ++ fm = new GdkClasspathFontPeerMetrics (f); ++ else ++ fm = new GdkFontMetrics (f); ++ ++ int text_width = cols * fm.getMaxAdvance (); ++ ++ int width = text_width + 2 * gtkEntryGetBorderWidth (); ++ ++ return new Dimension (width, dim[1]); + } + + public Dimension preferredSize (int cols) + { +- return getPreferredSize (cols); ++ int dim[] = new int[2]; ++ ++ gtkWidgetGetPreferredDimensions (dim); ++ ++ Font f = awtComponent.getFont (); ++ if (f == null) ++ return new Dimension (2 * gtkEntryGetBorderWidth (), dim[1]); ++ ++ FontMetrics fm; ++ if (GtkToolkit.useGraphics2D ()) ++ fm = new GdkClasspathFontPeerMetrics (f); ++ else ++ fm = new GdkFontMetrics (f); ++ ++ int text_width = cols * fm.getMaxAdvance (); ++ ++ int width = text_width + 2 * gtkEntryGetBorderWidth (); ++ ++ return new Dimension (width, dim[1]); + } + + public void setEchoCharacter (char c) +@@ -102,20 +158,15 @@ + setEchoChar (c); + } + +- public void setFont (Font f) +- { +- gtkSetFont(f.getName(), f.getStyle(), f.getSize()); +- } +- + public void handleEvent (AWTEvent e) + { + if (e.getID () == KeyEvent.KEY_PRESSED) + { +- KeyEvent ke = (KeyEvent)e; ++ KeyEvent ke = (KeyEvent) e; + +- if (!ke.isConsumed() +- && ke.getKeyCode() == KeyEvent.VK_ENTER) +- postActionEvent (getText(), ke.getModifiers ()); ++ if (!ke.isConsumed () ++ && ke.getKeyCode () == KeyEvent.VK_ENTER) ++ postActionEvent (getText (), ke.getModifiersEx ()); + } + + super.handleEvent (e); +Index: gnu/java/awt/peer/gtk/GtkToolkit.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkToolkit.java,v +retrieving revision 1.7 +diff -u -r1.7 GtkToolkit.java +--- gnu/java/awt/peer/gtk/GtkToolkit.java 10 Jan 2004 21:32:23 -0000 1.7 ++++ gnu/java/awt/peer/gtk/GtkToolkit.java 6 Sep 2004 16:35:40 -0000 +@@ -44,12 +44,17 @@ + import java.awt.dnd.peer.DragSourceContextPeer; + import java.awt.font.TextAttribute; + import java.awt.im.InputMethodHighlight; ++import java.awt.image.BufferedImage; + import java.awt.image.ColorModel; + import java.awt.image.ImageObserver; ++import java.awt.image.ImageConsumer; + import java.awt.image.ImageProducer; ++import java.awt.GraphicsEnvironment; + import java.awt.peer.*; + import java.net.URL; ++import java.util.HashSet; + import java.util.Hashtable; ++import java.util.Iterator; + import java.util.Map; + import java.util.MissingResourceException; + import java.util.Properties; +@@ -115,31 +120,174 @@ + public int checkImage (Image image, int width, int height, + ImageObserver observer) + { +- return ((GtkImage) image).checkImage (); ++ int status = ((GtkImage) image).checkImage (); ++ ++ if (observer != null) ++ observer.imageUpdate (image, status, ++ -1, -1, ++ image.getWidth (observer), ++ image.getHeight (observer)); ++ ++ return status; ++ } ++ ++ /** ++ * A helper class to return to clients in cases where a BufferedImage is ++ * desired but its construction fails. ++ */ ++ private class GtkErrorImage extends Image ++ { ++ public GtkErrorImage() ++ { ++ } ++ ++ public int getWidth(ImageObserver observer) ++ { ++ return -1; ++ } ++ ++ public int getHeight(ImageObserver observer) ++ { ++ return -1; ++ } ++ ++ public ImageProducer getSource() ++ { ++ ++ return new ImageProducer() ++ { ++ HashSet consumers = new HashSet(); ++ public void addConsumer(ImageConsumer ic) ++ { ++ consumers.add(ic); ++ } ++ ++ public boolean isConsumer(ImageConsumer ic) ++ { ++ return consumers.contains(ic); ++ } ++ ++ public void removeConsumer(ImageConsumer ic) ++ { ++ consumers.remove(ic); ++ } ++ ++ public void startProduction(ImageConsumer ic) ++ { ++ consumers.add(ic); ++ Iterator i = consumers.iterator(); ++ while(i.hasNext()) ++ { ++ ImageConsumer c = (ImageConsumer) i.next(); ++ c.imageComplete(ImageConsumer.IMAGEERROR); ++ } ++ } ++ public void requestTopDownLeftRightResend(ImageConsumer ic) ++ { ++ startProduction(ic); ++ } ++ }; ++ } ++ ++ public Graphics getGraphics() ++ { ++ return null; ++ } ++ ++ public Object getProperty(String name, ImageObserver observer) ++ { ++ return null; ++ } ++ public Image getScaledInstance(int width, int height, int flags) ++ { ++ return new GtkErrorImage(); ++ } ++ ++ public void flush() ++ { ++ } + } + ++ ++ /** ++ * Helper to return either a BufferedImage -- the argument -- or a ++ * GtkErrorImage if the argument is null. ++ */ ++ ++ private Image bufferedImageOrError(BufferedImage b) ++ { ++ if (b == null) ++ return new GtkErrorImage(); ++ else ++ return b; ++ } ++ ++ + public Image createImage (String filename) + { +- return new GtkImage (new GdkPixbufDecoder (filename), null); ++ if (useGraphics2D()) ++ return bufferedImageOrError(GdkPixbufDecoder.createBufferedImage (filename)); ++ else ++ { ++ GdkPixbufDecoder d = new GdkPixbufDecoder (filename); ++ GtkImage image = new GtkImage (d, null); ++ d.startProduction (image); ++ return image; ++ } + } + + public Image createImage (URL url) + { +- return new GtkImage (new GdkPixbufDecoder (url), null); ++ if (useGraphics2D()) ++ return bufferedImageOrError(GdkPixbufDecoder.createBufferedImage (url)); ++ else ++ { ++ GdkPixbufDecoder d = new GdkPixbufDecoder (url); ++ GtkImage image = new GtkImage (d, null); ++ d.startProduction (image); ++ return image; ++ } + } + + public Image createImage (ImageProducer producer) + { +- return new GtkImage (producer, null); ++ if (useGraphics2D()) ++ return bufferedImageOrError(GdkPixbufDecoder.createBufferedImage (producer)); ++ else ++ { ++ GtkImage image = new GtkImage (producer, null); ++ producer.startProduction (image); ++ return image; ++ } + } + + public Image createImage (byte[] imagedata, int imageoffset, + int imagelength) + { +- return new GtkImage (new GdkPixbufDecoder (imagedata, +- imageoffset, +- imagelength), +- null); ++ if (useGraphics2D()) ++ return bufferedImageOrError(GdkPixbufDecoder.createBufferedImage (imagedata, ++ imageoffset, ++ imagelength)); ++ else ++ { ++ GdkPixbufDecoder d = new GdkPixbufDecoder (imagedata, ++ imageoffset, ++ imagelength); ++ GtkImage image = new GtkImage (d, null); ++ d.startProduction (image); ++ return image; ++ } ++ } ++ ++ /** ++ * Creates an ImageProducer from the specified URL. The image is assumed ++ * to be in a recognised format. ++ * ++ * @param url URL to read image data from. ++ */ ++ public ImageProducer createImageProducer(URL url) ++ { ++ return new GdkPixbufDecoder(url); + } + + public ColorModel getColorModel () +@@ -166,12 +314,12 @@ + + public Image getImage (String filename) + { +- return new GtkImage (new GdkPixbufDecoder (filename), null); ++ return createImage (filename); + } + + public Image getImage (URL url) + { +- return new GtkImage (new GdkPixbufDecoder (url), null); ++ return createImage (url); + } + + public PrintJob getPrintJob (Frame frame, String jobtitle, Properties props) +@@ -352,14 +500,18 @@ + * @deprecated part of the older "logical font" system in earlier AWT + * implementations. Our newer Font class uses getClasspathFontPeer. + */ +- protected FontPeer getFontPeer (String name, int style) ++ protected FontPeer getFontPeer (String name, int style) { ++ // All fonts get a default size of 12 if size is not specified. ++ return getFontPeer(name, style, 12); ++ } ++ ++ /** ++ * Private method that allows size to be set at initialization time. ++ */ ++ private FontPeer getFontPeer (String name, int style, int size) + { +- try { +- GtkFontPeer fp = new GtkFontPeer (name, style); +- return fp; +- } catch (MissingResourceException ex) { +- return null; +- } ++ GtkFontPeer fp = new GtkFontPeer (name, style, size); ++ return fp; + } + + /** +@@ -374,7 +526,11 @@ + return new GdkClasspathFontPeer (name, attrs); + else + { ++ // Default values ++ int size = 12; + int style = Font.PLAIN; ++ if (name == null) ++ name = "Default"; + + if (attrs.containsKey (TextAttribute.WEIGHT)) + { +@@ -390,7 +546,13 @@ + style += Font.ITALIC; + } + +- return (ClasspathFontPeer) this.getFontPeer (name, style); ++ if (attrs.containsKey (TextAttribute.SIZE)) ++ { ++ Float fsize = (Float) attrs.get (TextAttribute.SIZE); ++ size = fsize.intValue(); ++ } ++ ++ return (ClasspathFontPeer) this.getFontPeer (name, style, size); + } + } + +@@ -399,9 +561,7 @@ + return q; + } + +- protected void loadSystemColors (int[] systemColors) +- { +- } ++ protected native void loadSystemColors (int[] systemColors); + + public DragSourceContextPeer createDragSourceContextPeer(DragGestureEvent e) + { +@@ -417,7 +577,9 @@ + + public GraphicsEnvironment getLocalGraphicsEnvironment() + { +- throw new java.lang.UnsupportedOperationException (); ++ GraphicsEnvironment ge; ++ ge = new GdkGraphicsEnvironment (); ++ return ge; + } + + public Font createFont(int format, java.io.InputStream stream) +Index: gnu/java/awt/peer/gtk/GtkWindowPeer.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkWindowPeer.java,v +retrieving revision 1.10 +diff -u -r1.10 GtkWindowPeer.java +--- gnu/java/awt/peer/gtk/GtkWindowPeer.java 13 Jan 2004 20:54:46 -0000 1.10 ++++ gnu/java/awt/peer/gtk/GtkWindowPeer.java 6 Sep 2004 16:35:40 -0000 +@@ -60,6 +60,10 @@ + private boolean hasBeenShown = false; + private int oldState = Frame.NORMAL; + ++ native void gtkWindowSetTitle (String title); ++ native void gtkWindowSetResizable (boolean resizable); ++ native void gtkWindowSetModal (boolean modal); ++ + native void create (int type, boolean decorated, + int width, int height, + GtkWindowPeer parent, +@@ -92,6 +96,16 @@ + create (GDK_WINDOW_TYPE_HINT_NORMAL, false); + } + ++ void setParent () ++ { ++ setVisible (awtComponent.isVisible ()); ++ setEnabled (awtComponent.isEnabled ()); ++ } ++ ++ void setVisibleAndEnabled () ++ { ++ } ++ + native void connectJObject (); + native void connectSignals (); + +@@ -100,12 +114,6 @@ + super (window); + } + +- public void getArgs (Component component, GtkArgList args) +- { +- args.add ("visible", component.isVisible ()); +- args.add ("sensitive", component.isEnabled ()); +- } +- + native public void toBack (); + native public void toFront (); + +@@ -120,7 +128,7 @@ + + public void setTitle (String title) + { +- set ("title", title); ++ gtkWindowSetTitle (title); + } + + native void setSize (int width, int height); +@@ -132,8 +140,7 @@ + // was resizable. + setSize (awtComponent.getWidth() - insets.left - insets.right, + awtComponent.getHeight() - insets.top - insets.bottom); +- set ("allow_shrink", resizable); +- set ("allow_grow", resizable); ++ gtkWindowSetResizable (resizable); + } + + native void setBoundsCallback (Window window, +Index: gnu/java/awt/peer/gtk/TestAWT.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/TestAWT.java,v +retrieving revision 1.3 +diff -u -r1.3 TestAWT.java +--- gnu/java/awt/peer/gtk/TestAWT.java 13 Jan 2004 20:00:00 -0000 1.3 ++++ gnu/java/awt/peer/gtk/TestAWT.java 6 Sep 2004 16:35:40 -0000 +@@ -272,6 +272,7 @@ + public void windowClosing (WindowEvent e) + { + System.out.println ("Window Closing"); ++ text.setVisible (false); + hide (); + } + }); +@@ -305,7 +306,8 @@ + cb.addActionListener(new ActionListener () { + public void actionPerformed (ActionEvent e) + { +- dispose(); ++ text.setVisible (false); ++ hide(); + } + }); + +Index: gnu/java/security/action/GetPropertyAction.java +=================================================================== +RCS file: gnu/java/security/action/GetPropertyAction.java +diff -N gnu/java/security/action/GetPropertyAction.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gnu/java/security/action/GetPropertyAction.java 6 Sep 2004 16:35:40 -0000 +@@ -0,0 +1,89 @@ ++/* GetPropertyAction.java ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package gnu.java.security.action; ++ ++import java.security.PrivilegedAction; ++ ++/** ++ * PrivilegedAction implementation that calls System.getProperty() with ++ * the property name passed to its constructor. ++ * ++ * Example of use: ++ * ++ * GetPropertyAction action = new GetPropertyAction("http.proxyPort"); ++ * String port = AccessController.doPrivileged(action); ++ * ++ */ ++public class GetPropertyAction implements PrivilegedAction ++{ ++ String name; ++ String value = null; ++ ++ public GetPropertyAction() ++ { ++ } ++ ++ public GetPropertyAction(String propName) ++ { ++ setParameters(propName); ++ } ++ ++ public GetPropertyAction(String propName, String defaultValue) ++ { ++ setParameters(propName, defaultValue); ++ } ++ ++ public Object run() ++ { ++ return System.getProperty(name, value); ++ } ++ ++ public GetPropertyAction setParameters(String propName) ++ { ++ this.name = propName; ++ this.value = null; ++ return this; ++ } ++ ++ public GetPropertyAction setParameters(String propName, String defaultValue) ++ { ++ this.name = propName; ++ this.value = defaultValue; ++ return this; ++ } ++} +Index: gnu/java/security/action/SetAccessibleAction.java +=================================================================== +RCS file: gnu/java/security/action/SetAccessibleAction.java +diff -N gnu/java/security/action/SetAccessibleAction.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gnu/java/security/action/SetAccessibleAction.java 6 Sep 2004 16:35:40 -0000 +@@ -0,0 +1,77 @@ ++/* SetAccessibleAction.java ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package gnu.java.security.action; ++ ++import java.lang.reflect.AccessibleObject; ++import java.security.PrivilegedAction; ++ ++/** ++ * PrivilegedAction implementation that calls setAccessible(true) on the ++ * AccessibleObject passed to its constructor. ++ * ++ * Example of use: ++ * ++ * Field dataField = cl.getDeclaredField("data"); ++ * AccessController.doPrivileged(new SetAccessibleAction(dataField)); ++ * ++ */ ++public class SetAccessibleAction implements PrivilegedAction ++{ ++ AccessibleObject member; ++ ++ public SetAccessibleAction() ++ { ++ } ++ ++ public SetAccessibleAction(AccessibleObject member) ++ { ++ this.member = member; ++ } ++ ++ public Object run() ++ { ++ member.setAccessible(true); ++ return null; ++ } ++ ++ public SetAccessibleAction setMember(AccessibleObject member) ++ { ++ this.member = member; ++ return this; ++ } ++} +Index: java/awt/AWTEvent.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/AWTEvent.java,v +retrieving revision 1.9 +diff -u -r1.9 AWTEvent.java +--- java/awt/AWTEvent.java 9 Aug 2002 04:26:13 -0000 1.9 ++++ java/awt/AWTEvent.java 6 Sep 2004 16:35:41 -0000 +@@ -231,15 +231,23 @@ + } + + /** +- * Returns a string representation of this event. This is in the format +- * getClass().getName() + '[' + paramString() + "] on " +- * + source. ++ * Create a string that represents this event in the format ++ * classname[eventstring] on sourcecomponentname. + * +- * @return a string representation of this event ++ * @return a string representing this event + */ +- public String toString() ++ public String toString () + { +- return getClass().getName() + "[" + paramString() + "] on " + source; ++ String string = null; ++ ++ if (source instanceof Component) ++ string = getClass ().getName () + "[" + paramString () + "] on " ++ + ((Component) source).getName (); ++ else if (source instanceof MenuComponent) ++ string = getClass ().getName () + "[" + paramString () + "] on " ++ + ((MenuComponent) source).getName (); ++ ++ return string; + } + + /** +Index: java/awt/AWTKeyStroke.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/AWTKeyStroke.java,v +retrieving revision 1.1 +diff -u -r1.1 AWTKeyStroke.java +--- java/awt/AWTKeyStroke.java 9 Aug 2002 04:26:13 -0000 1.1 ++++ java/awt/AWTKeyStroke.java 6 Sep 2004 16:35:41 -0000 +@@ -409,13 +409,13 @@ + { + token = t.nextToken(); + if ("shift".equals(token)) +- modifiers |= KeyEvent.SHIFT_MASK | KeyEvent.SHIFT_DOWN_MASK; ++ modifiers |= KeyEvent.SHIFT_DOWN_MASK; + else if ("ctrl".equals(token) || "control".equals(token)) +- modifiers |= KeyEvent.CTRL_MASK | KeyEvent.CTRL_DOWN_MASK; ++ modifiers |= KeyEvent.CTRL_DOWN_MASK; + else if ("meta".equals(token)) +- modifiers |= KeyEvent.META_MASK | KeyEvent.META_DOWN_MASK; ++ modifiers |= KeyEvent.META_DOWN_MASK; + else if ("alt".equals(token)) +- modifiers |= KeyEvent.ALT_MASK | KeyEvent.ALT_DOWN_MASK; ++ modifiers |= KeyEvent.ALT_DOWN_MASK; + else if ("button1".equals(token)) + modifiers |= KeyEvent.BUTTON1_DOWN_MASK; + else if ("button2".equals(token)) +Index: java/awt/AWTPermission.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/AWTPermission.java,v +retrieving revision 1.4 +diff -u -r1.4 AWTPermission.java +--- java/awt/AWTPermission.java 9 Aug 2002 04:26:13 -0000 1.4 ++++ java/awt/AWTPermission.java 6 Sep 2004 16:35:41 -0000 +@@ -79,7 +79,7 @@ + * + * fullScreenExclusive + * enter full-screen exclusive mode +- * malicious code could masquerade as a trusted program ++ * malicious code could masquerade as a trusted program + * + * + * @author Tom Tromey +Index: java/awt/BorderLayout.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/BorderLayout.java,v +retrieving revision 1.10 +diff -u -r1.10 BorderLayout.java +--- java/awt/BorderLayout.java 10 Nov 2002 23:11:21 -0000 1.10 ++++ java/awt/BorderLayout.java 6 Sep 2004 16:35:41 -0000 +@@ -349,7 +349,28 @@ + if (constraints != null && ! (constraints instanceof String)) + throw new IllegalArgumentException("Constraint must be a string"); + +- String str = (String)constraints; ++ addLayoutComponent((String) constraints, component); ++} ++ ++/*************************************************************************/ ++ ++/** ++ * Adds a component to the layout in the specified constraint position, ++ * which must be one of the string constants defined in this class. ++ * ++ * @param constraints The constraint string. ++ * @param component The component to add. ++ * ++ * @exception IllegalArgumentException If the constraint object is not ++ * one of the specified constants in this class. ++ * ++ * @deprecated This method is deprecated in favor of ++ * addLayoutComponent(Component, Object). ++ */ ++public void ++addLayoutComponent(String constraints, Component component) ++{ ++ String str = constraints; + + if (str == null || str.equals(CENTER)) + center = component; +@@ -376,27 +397,6 @@ + /*************************************************************************/ + + /** +- * Adds a component to the layout in the specified constraint position, +- * which must be one of the string constants defined in this class. +- * +- * @param constraints The constraint string. +- * @param component The component to add. +- * +- * @exception IllegalArgumentException If the constraint object is not +- * one of the specified constants in this class. +- * +- * @deprecated This method is deprecated in favor of +- * addLayoutComponent(Component, Object). +- */ +-public void +-addLayoutComponent(String constraints, Component component) +-{ +- addLayoutComponent(component, constraints); +-} +- +-/*************************************************************************/ +- +-/** + * Removes the specified component from the layout. + * + * @param component The component to remove from the layout. +@@ -592,12 +592,21 @@ + + int x1 = i.left; + int x2 = x1 + w.width + hgap; +- int x3 = t.width - i.right - e.width; ++ int x3; ++ if (t.width <= i.right + e.width) ++ x3 = x2 + w.width + hgap; ++ else ++ x3 = t.width - i.right - e.width; + int ww = t.width - i.right - i.left; + + int y1 = i.top; + int y2 = y1 + n.height + vgap; +- int y3 = t.height - i.bottom - s.height; ++ int midh = Math.max(e.height, Math.max(w.height, c.height)); ++ int y3; ++ if (t.height <= i.bottom + s.height) ++ y3 = y2 + midh + vgap; ++ else ++ y3 = t.height - i.bottom - s.height; + int hh = y3-y2-vgap; + + setBounds(center, x2, y2, x3-x2-hgap, hh); +@@ -637,7 +646,7 @@ + private Dimension + calcCompSize(Component comp, int what) + { +- if (comp == null) ++ if (comp == null || !comp.isVisible()) + return new Dimension(0, 0); + if (what == MIN) + return comp.getMinimumSize(); +Index: java/awt/Button.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/Button.java,v +retrieving revision 1.11 +diff -u -r1.11 Button.java +--- java/awt/Button.java 5 Jun 2003 19:58:39 -0000 1.11 ++++ java/awt/Button.java 6 Sep 2004 16:35:41 -0000 +@@ -81,6 +81,11 @@ + // List of ActionListeners for this class. + private transient ActionListener action_listeners; + ++ /* ++ * The number used to generate the name returned by getName. ++ */ ++ private static transient long next_button_number = 0; ++ + /*************************************************************************/ + + /* +@@ -96,7 +101,7 @@ + public + Button() + { +- this(null); ++ this(""); + } + + /*************************************************************************/ +@@ -148,6 +153,7 @@ + setLabel(String label) + { + this.label = label; ++ actionCommand = label; + if (peer != null) + { + ButtonPeer bp = (ButtonPeer) peer; +@@ -304,9 +310,24 @@ + protected String + paramString() + { +- return ("label=" + getLabel() + ",actionCommand=" + getActionCommand() +- + "," + super.paramString()); ++ return getName () + "," + getX () + "," + getY () + "," ++ + getWidth () + "x" + getHeight () + ",label=" + getLabel (); + } + ++ /** ++ * Generate a unique name for this button. ++ * ++ * @return A unique name for this button. ++ */ ++ String generateName () ++ { ++ return "button" + getUniqueLong (); ++ } ++ ++ private static synchronized long getUniqueLong () ++ { ++ return next_button_number++; ++ } ++ + } // class Button + +Index: java/awt/CardLayout.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/CardLayout.java,v +retrieving revision 1.8 +diff -u -r1.8 CardLayout.java +--- java/awt/CardLayout.java 15 Jan 2003 22:47:04 -0000 1.8 ++++ java/awt/CardLayout.java 6 Sep 2004 16:35:41 -0000 +@@ -90,7 +90,7 @@ + if (! (constraints instanceof String)) + throw new IllegalArgumentException ("Object " + constraints + + " is not a string"); +- tab.put (constraints, comp); ++ addLayoutComponent ((String) constraints, comp); + } + + /** Add a new component to the layout. The name can be used later +@@ -102,7 +102,12 @@ + */ + public void addLayoutComponent (String name, Component comp) + { +- addLayoutComponent (comp, name); ++ tab.put (name, comp); ++ // First component added is the default component. ++ if (tab.size() == 1) ++ comp.setVisible(true); ++ else ++ comp.setVisible(false); + } + + /** Cause the first component in the container to be displayed. +@@ -243,6 +248,8 @@ + if (tab.get (key) == comp) + { + tab.remove (key); ++ Container parent = comp.getParent(); ++ next(parent); + break; + } + } +@@ -311,6 +318,13 @@ + int num = parent.ncomponents; + // This is more efficient than calling getComponents(). + Component[] comps = parent.component; ++ ++ if (num == 1) ++ { ++ comps[0].setVisible(true); ++ return; ++ } ++ + int choice = -1; + + if (what == FIRST) +Index: java/awt/CheckboxGroup.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/CheckboxGroup.java,v +retrieving revision 1.4 +diff -u -r1.4 CheckboxGroup.java +--- java/awt/CheckboxGroup.java 22 Jan 2002 22:40:04 -0000 1.4 ++++ java/awt/CheckboxGroup.java 6 Sep 2004 16:35:41 -0000 +@@ -95,8 +95,8 @@ + public Checkbox + getSelectedCheckbox() + { +- return(selectedCheckbox); +-} ++ return getCurrent (); ++} + + /*************************************************************************/ + +@@ -126,17 +126,7 @@ + public void + setSelectedCheckbox(Checkbox selectedCheckbox) + { +- if (this.selectedCheckbox != null) +- { +- if (this.selectedCheckbox.getCheckboxGroup() != this) +- return; +- +- this.selectedCheckbox.setState(false); +- } +- +- this.selectedCheckbox = selectedCheckbox; +- if (selectedCheckbox != null) +- selectedCheckbox.setState(true); ++ setCurrent (selectedCheckbox); + } + + /*************************************************************************/ +@@ -153,7 +143,17 @@ + public void + setCurrent(Checkbox selectedCheckbox) + { +- setSelectedCheckbox(selectedCheckbox); ++ if (this.selectedCheckbox != null) ++ { ++ if (this.selectedCheckbox.getCheckboxGroup() != this) ++ return; ++ ++ this.selectedCheckbox.setState(false); ++ } ++ ++ this.selectedCheckbox = selectedCheckbox; ++ if (selectedCheckbox != null) ++ selectedCheckbox.setState(true); + } + + /*************************************************************************/ +Index: java/awt/Choice.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/Choice.java,v +retrieving revision 1.13 +diff -u -r1.13 Choice.java +--- java/awt/Choice.java 5 Jan 2004 21:18:06 -0000 1.13 ++++ java/awt/Choice.java 6 Sep 2004 16:35:41 -0000 +@@ -111,7 +111,7 @@ + public int + getItemCount() + { +- return(pItems.size()); ++ return countItems (); + } + + /*************************************************************************/ +Index: java/awt/Color.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/Color.java,v +retrieving revision 1.10 +diff -u -r1.10 Color.java +--- java/awt/Color.java 13 Aug 2003 03:19:24 -0000 1.10 ++++ java/awt/Color.java 6 Sep 2004 16:35:41 -0000 +@@ -319,7 +319,12 @@ + { + if ((red & 255) != red || (green & 255) != green || (blue & 255) != blue + || (alpha & 255) != alpha) +- throw new IllegalArgumentException("Bad RGB values"); ++ throw new IllegalArgumentException("Bad RGB values" ++ +" red=0x"+Integer.toHexString(red) ++ +" green=0x"+Integer.toHexString(green) ++ +" blue=0x"+Integer.toHexString(blue) ++ +" alpha=0x"+Integer.toHexString(alpha) ); ++ + value = (alpha << 24) | (red << 16) | (green << 8) | blue; + falpha = 1; + cs = null; +@@ -501,7 +506,7 @@ + + /** + * Returns the RGB value for this color, in the sRGB color space. The blue +- * value will be in bits 0-7, green in 8-15, red in 6-23, and alpha value in ++ * value will be in bits 0-7, green in 8-15, red in 16-23, and alpha value in + * 24-31. + * + * @return the RGB value for this color +@@ -767,9 +772,9 @@ + if (red == max) + array[0] = (green - blue) / delta; + else if (green == max) +- array[0] = 1 / 3 + (blue - red) / delta; ++ array[0] = 1f / 3 + (blue - red) / delta; + else +- array[0] = 2 / 3 + (red - green) / delta; ++ array[0] = 2f / 3 + (red - green) / delta; + if (array[0] < 0) + array[0]++; + } +@@ -950,7 +955,7 @@ + * object, regardless of the parameters. Subclasses, however, may have a + * mutable result. + * +- * @param cm the requested color model, ignored ++ * @param cm the requested color model + * @param deviceBounds the bounding box in device coordinates, ignored + * @param userBounds the bounding box in user coordinates, ignored + * @param xform the bounds transformation, ignored +@@ -962,8 +967,8 @@ + AffineTransform xform, + RenderingHints hints) + { +- if (context == null) +- context = new ColorPaintContext(value); ++ if (context == null || !context.getColorModel().equals(cm)) ++ context = new ColorPaintContext(cm,value); + return context; + } + +Index: java/awt/ColorPaintContext.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/ColorPaintContext.java,v +retrieving revision 1.1 +diff -u -r1.1 ColorPaintContext.java +--- java/awt/ColorPaintContext.java 9 Aug 2002 04:26:13 -0000 1.1 ++++ java/awt/ColorPaintContext.java 6 Sep 2004 16:35:41 -0000 +@@ -1,5 +1,5 @@ + /* ColorPaintContext.java -- context for painting solid colors +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -55,15 +55,31 @@ + * SystemColor. + */ + final int color; ++ final ColorModel colorModel; + ++ private ColorRaster cachedRaster; ++ ++ + /** + * Create the context for a given color. + * +- * @param c the solid color to use ++ * @param c The solid color to use. + */ +- ColorPaintContext(int c) ++ ColorPaintContext(int colorRGB) + { +- color = c; ++ this(ColorModel.getRGBdefault(), colorRGB); ++ } ++ ++ /** ++ * Create the context for a given color. ++ * ++ * @param cm The color model of this context. ++ * @param c The solid color to use. ++ */ ++ ColorPaintContext(ColorModel cm,int colorRGB) ++ { ++ color = colorRGB; ++ colorModel = cm; + } + + /** +@@ -75,14 +91,13 @@ + } + + /** +- * Return the color model of this context. This ignores the model passed +- * in the request, since colors are always in sRGB. ++ * Return the color model of this context. + * + * @return the context color model + */ + public ColorModel getColorModel() + { +- return ColorModel.getRGBdefault(); ++ return colorModel; + } + + /** +@@ -94,10 +109,87 @@ + * @param h the height, in device space + * @return a raster for the given area and color + */ +- public Raster getRaster(int x, int y, int w, int h) ++ public Raster getRaster(int x, int y, int width, int height) ++ { ++ if( cachedRaster == null ++ || cachedRaster.getWidth() < width ++ || cachedRaster.getHeight() < height) ++ { ++ cachedRaster = new ColorRaster(colorModel, 0, 0, width, height, color); ++ } ++ return cachedRaster.createChild(0 ,0 ,width ,height ,x ,y , null); ++ } ++ ++ /** ++ * A ColorRaster is a raster that is completely filled with one color. The ++ * data layout is taken from the color model given to the constructor. ++ */ ++ private class ColorRaster extends Raster + { +- // XXX Implement. Sun uses undocumented implementation class +- // sun.awt.image.IntegerInterleavedRaster. +- throw new Error("not implemented"); ++ ++ /** ++ * Create a raster that is compaltible with the given color model and ++ * filled with the given color. ++ * @param cm The color model for this raster. ++ * @param x The smallest horizontal corrdinate in the raster. ++ * @param y The smallest vertical coordinate in the raster. ++ * @param width The width of the raster. ++ * @param height The height of the raster. ++ * @param rgbPixel The RGB value of the color for this raster. ++ */ ++ ColorRaster(ColorModel cm,int x, int y, int width, int height, int rgbPixel) ++ { ++ super(cm.createCompatibleSampleModel(width,height),new Point(x,y)); ++ Object pixel = cm.getDataElements(rgbPixel,null); ++ getSampleModel().setDataElements(0, 0, ++ width, height, ++ multiplyData(pixel,null,width*height), ++ dataBuffer); ++ } ++ ++ ++ ++ private Object multiplyData(Object src, Object dest, int factor) ++ { ++ Object from; ++ int srcLength = 0; ++ if (src instanceof byte[]) ++ { ++ srcLength = ((byte[])src).length; ++ ++ if (dest == null) dest = new byte[factor * srcLength]; ++ } ++ else if (src instanceof short[]) ++ { ++ srcLength = ((short[])src).length; ++ if (dest == null) dest = new short[factor * srcLength]; ++ } ++ else if (src instanceof int[]) ++ { ++ srcLength = ((int[]) src).length; ++ if (dest == null) dest = new int[factor * srcLength]; ++ } ++ else ++ { ++ throw new ClassCastException("Unknown data buffer type"); ++ } ++ ++ System.arraycopy(src,0,dest,0,srcLength); ++ ++ int count = 1; ++ while(count*2 < factor) ++ { ++ System.arraycopy(dest, 0, dest, count * srcLength, count*srcLength); ++ count *= 2; ++ } ++ ++ if(factor > count) ++ System.arraycopy(dest,0, dest, count * srcLength, ++ (factor - count) * srcLength ); ++ ++ return dest; ++ } ++ + } ++ + } // class ColorPaintContext +Index: java/awt/Component.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/Component.java,v +retrieving revision 1.31 +diff -u -r1.31 Component.java +--- java/awt/Component.java 12 Nov 2003 22:03:49 -0000 1.31 ++++ java/awt/Component.java 6 Sep 2004 16:35:43 -0000 +@@ -39,6 +39,7 @@ + package java.awt; + + import java.awt.dnd.DropTarget; ++import java.awt.event.ActionEvent; + import java.awt.event.ComponentEvent; + import java.awt.event.ComponentListener; + import java.awt.event.FocusEvent; +@@ -48,6 +49,7 @@ + import java.awt.event.HierarchyListener; + import java.awt.event.KeyEvent; + import java.awt.event.KeyListener; ++import java.awt.event.InputEvent; + import java.awt.event.InputMethodEvent; + import java.awt.event.InputMethodListener; + import java.awt.event.MouseEvent; +@@ -56,6 +58,7 @@ + import java.awt.event.MouseWheelListener; + import java.awt.event.MouseWheelEvent; + import java.awt.event.PaintEvent; ++import java.awt.event.WindowEvent; + import java.awt.im.InputContext; + import java.awt.im.InputMethodRequests; + import java.awt.image.BufferStrategy; +@@ -105,7 +108,7 @@ + * in inner classes, rather than using this object itself as the listener, if + * external objects do not need to save the state of this object. + * +- *

++ * 
+  * import java.awt.*;
+  * import java.awt.event.*;
+  * import java.io.Serializable;
+@@ -127,6 +130,7 @@
+  *     aButton.addActionListener(new MyActionListener());
+  *   }
+  * }
++ * 
+ * + *

Status: Incomplete. The event dispatch mechanism is implemented. All + * other methods defined in the J2SE 1.3 API javadoc exist, but are mostly +@@ -382,18 +386,18 @@ + boolean focusable = true; + + /** +- * Tracks whether this component uses default focus traversal, or has a +- * different policy. ++ * Tracks whether this component's {@link #isFocusTraversable} ++ * method has been overridden. + * +- * @see #isFocusTraversableOverridden() + * @since 1.4 + */ + int isFocusTraversableOverridden; + + /** +- * The focus traversal keys, if not inherited from the parent or default +- * keyboard manager. These sets will contain only AWTKeyStrokes that +- * represent press and release events to use as focus control. ++ * The focus traversal keys, if not inherited from the parent or ++ * default keyboard focus manager. These sets will contain only ++ * AWTKeyStrokes that represent press and release events to use as ++ * focus control. + * + * @see #getFocusTraversalKeys(int) + * @see #setFocusTraversalKeys(int, Set) +@@ -556,6 +560,12 @@ + transient BufferStrategy bufferStrategy; + + /** ++ * true if requestFocus was called on this component when its ++ * top-level ancestor was not focusable. ++ */ ++ private transient FocusEvent pendingFocusRequest = null; ++ ++ /** + * The system properties that affect image updating. + */ + private static transient boolean incrementalDraw; +@@ -565,6 +575,8 @@ + { + incrementalDraw = Boolean.getBoolean ("awt.image.incrementalDraw"); + redrawRate = Long.getLong ("awt.image.redrawrate"); ++ // Set the default KeyboardFocusManager. ++ KeyboardFocusManager.setCurrentKeyboardFocusManager (null); + } + + // Public and protected API. +@@ -779,9 +791,7 @@ + */ + public void setEnabled(boolean b) + { +- this.enabled = b; +- if (peer != null) +- peer.setEnabled(b); ++ enable (b); + } + + /** +@@ -791,7 +801,9 @@ + */ + public void enable() + { +- setEnabled(true); ++ this.enabled = true; ++ if (peer != null) ++ peer.setEnabled (true); + } + + /** +@@ -802,7 +814,10 @@ + */ + public void enable(boolean b) + { +- setEnabled(b); ++ if (b) ++ enable (); ++ else ++ disable (); + } + + /** +@@ -812,7 +827,9 @@ + */ + public void disable() + { +- setEnabled(false); ++ this.enabled = false; ++ if (peer != null) ++ peer.setEnabled (false); + } + + /** +@@ -856,10 +873,7 @@ + // Inspection by subclassing shows that Sun's implementation calls + // show(boolean) which then calls show() or hide(). It is the show() + // method that is overriden in subclasses like Window. +- if (b) +- show(); +- else +- hide(); ++ show (b); + } + + /** +@@ -869,9 +883,21 @@ + */ + public void show() + { +- if (peer != null) +- peer.setVisible(true); +- this.visible = true; ++ // We must set visible before showing the peer. Otherwise the ++ // peer could post paint events before visible is true, in which ++ // case lightweight components are not initially painted -- ++ // Container.paint first calls isShowing () before painting itself ++ // and its children. ++ if(!isVisible()) ++ { ++ this.visible = true; ++ if (peer != null) ++ peer.setVisible(true); ++ invalidate(); ++ ComponentEvent ce = ++ new ComponentEvent(this,ComponentEvent.COMPONENT_SHOWN); ++ getToolkit().getSystemEventQueue().postEvent(ce); ++ } + } + + /** +@@ -882,7 +908,10 @@ + */ + public void show(boolean b) + { +- setVisible(b); ++ if (b) ++ show (); ++ else ++ hide (); + } + + /** +@@ -892,9 +921,16 @@ + */ + public void hide() + { +- if (peer != null) +- peer.setVisible(false); +- this.visible = false; ++ if (isVisible()) ++ { ++ if (peer != null) ++ peer.setVisible(false); ++ this.visible = false; ++ invalidate(); ++ ComponentEvent ce = ++ new ComponentEvent(this,ComponentEvent.COMPONENT_HIDDEN); ++ getToolkit().getSystemEventQueue().postEvent(ce); ++ } + } + + /** +@@ -908,7 +944,7 @@ + { + if (foreground != null) + return foreground; +- return parent == null ? null : parent.getForeground(); ++ return parent == null ? SystemColor.windowText : parent.getForeground(); + } + + /** +@@ -949,7 +985,7 @@ + { + if (background != null) + return background; +- return parent == null ? null : parent.getBackground(); ++ return parent == null ? SystemColor.window : parent.getBackground(); + } + + /** +@@ -962,8 +998,11 @@ + */ + public void setBackground(Color c) + { ++ // If c is null, inherit from closest ancestor whose bg is set. ++ if (c == null && parent != null) ++ c = parent.getBackground(); + firePropertyChange("background", background, c); +- if (peer != null) ++ if (peer != null && c != null) + peer.setBackground(c); + background = c; + } +@@ -991,7 +1030,11 @@ + { + if (font != null) + return font; +- return parent == null ? null : parent.getFont(); ++ ++ if (parent != null) ++ return parent.getFont (); ++ else ++ return new Font ("Dialog", Font.PLAIN, 12); + } + + /** +@@ -1006,6 +1049,7 @@ + firePropertyChange("font", font, f); + if (peer != null) + peer.setFont(f); ++ invalidate(); + font = f; + } + +@@ -1078,7 +1122,7 @@ + */ + public Point getLocation() + { +- return new Point(x, y); ++ return location (); + } + + /** +@@ -1105,7 +1149,7 @@ + */ + public Point location() + { +- return getLocation(); ++ return new Point (x, y); + } + + /** +@@ -1120,13 +1164,7 @@ + */ + public void setLocation(int x, int y) + { +- if (this.x == x && this.y == y) +- return; +- invalidate(); +- this.x = x; +- this.y = y; +- if (peer != null) +- peer.setBounds(x, y, width, height); ++ move (x, y); + } + + /** +@@ -1140,7 +1178,7 @@ + */ + public void move(int x, int y) + { +- setLocation(x, y); ++ setBounds(x, y, this.width, this.height); + } + + /** +@@ -1168,7 +1206,7 @@ + */ + public Dimension getSize() + { +- return new Dimension(width, height); ++ return size (); + } + + /** +@@ -1179,7 +1217,7 @@ + */ + public Dimension size() + { +- return getSize(); ++ return new Dimension (width, height); + } + + /** +@@ -1192,13 +1230,7 @@ + */ + public void setSize(int width, int height) + { +- if (this.width == width && this.height == height) +- return; +- invalidate(); +- this.width = width; +- this.height = height; +- if (peer != null) +- peer.setBounds(x, y, width, height); ++ resize (width, height); + } + + /** +@@ -1210,7 +1242,7 @@ + */ + public void resize(int width, int height) + { +- setSize(width, height); ++ setBounds(this.x, this.y, width, height); + } + + /** +@@ -1224,7 +1256,7 @@ + */ + public void setSize(Dimension d) + { +- setSize(d.width, d.height); ++ resize (d); + } + + /** +@@ -1236,7 +1268,7 @@ + */ + public void resize(Dimension d) + { +- setSize(d.width, d.height); ++ resize (d.width, d.height); + } + + /** +@@ -1251,7 +1283,7 @@ + */ + public Rectangle getBounds() + { +- return new Rectangle(x, y, width, height); ++ return bounds (); + } + + /** +@@ -1264,7 +1296,7 @@ + */ + public Rectangle bounds() + { +- return getBounds(); ++ return new Rectangle (x, y, width, height); + } + + /** +@@ -1284,15 +1316,7 @@ + */ + public void setBounds(int x, int y, int w, int h) + { +- if (this.x == x && this.y == y && width == w && height == h) +- return; +- invalidate(); +- this.x = x; +- this.y = y; +- width = w; +- height = h; +- if (peer != null) +- peer.setBounds(x, y, w, h); ++ reshape (x, y, w, h); + } + + /** +@@ -1301,13 +1325,65 @@ + * + * @param x the X coordinate of the upper left corner of the rectangle + * @param y the Y coordinate of the upper left corner of the rectangle +- * @param w the width of the rectangle +- * @param h the height of the rectangle ++ * @param width the width of the rectangle ++ * @param height the height of the rectangle + * @deprecated use {@link #setBounds(int, int, int, int)} instead + */ + public void reshape(int x, int y, int width, int height) + { +- setBounds(x, y, width, height); ++ int oldx = this.x; ++ int oldy = this.y; ++ int oldwidth = this.width; ++ int oldheight = this.height; ++ ++ if (this.x == x && this.y == y ++ && this.width == width && this.height == height) ++ return; ++ invalidate (); ++ this.x = x; ++ this.y = y; ++ this.width = width; ++ this.height = height; ++ if (peer != null) ++ peer.setBounds (x, y, width, height); ++ ++ // Erase old bounds and repaint new bounds for lightweights. ++ if (isLightweight()) ++ { ++ boolean shouldRepaintParent = false; ++ boolean shouldRepaintSelf = false; ++ ++ if (parent != null) ++ { ++ Rectangle parentBounds = parent.getBounds(); ++ Rectangle oldBounds = new Rectangle(parent.getX() + oldx, ++ parent.getY() + oldy, ++ oldwidth, oldheight); ++ Rectangle newBounds = new Rectangle(parent.getX() + x, ++ parent.getY() + y, ++ width, height); ++ shouldRepaintParent = parentBounds.intersects(oldBounds); ++ shouldRepaintSelf = parentBounds.intersects(newBounds); ++ } ++ ++ if (shouldRepaintParent) ++ parent.repaint(oldx, oldy, oldwidth, oldheight); ++ if (shouldRepaintSelf) ++ repaint(); ++ } ++ ++ if (oldx != x || oldy != y) ++ { ++ ComponentEvent ce = new ComponentEvent(this, ++ ComponentEvent.COMPONENT_MOVED); ++ getToolkit().getSystemEventQueue().postEvent(ce); ++ } ++ if (oldwidth != width || oldheight != height) ++ { ++ ComponentEvent ce = new ComponentEvent(this, ++ ComponentEvent.COMPONENT_RESIZED); ++ getToolkit().getSystemEventQueue().postEvent(ce); ++ } + } + + /** +@@ -1324,7 +1400,7 @@ + */ + public void setBounds(Rectangle r) + { +- setBounds(r.x, r.y, r.width, r.height); ++ setBounds (r.x, r.y, r.width, r.height); + } + + /** +@@ -1555,7 +1631,7 @@ + */ + public void doLayout() + { +- // nothing to do unless we're a container ++ layout (); + } + + /** +@@ -1566,7 +1642,7 @@ + */ + public void layout() + { +- doLayout(); ++ // Nothing to do unless we're a container. + } + + /** +@@ -1697,6 +1773,9 @@ + */ + public void paint(Graphics g) + { ++ // Paint the heavyweight peer ++ if (!isLightweight() && peer != null) ++ peer.paint(g); + } + + /** +@@ -1714,6 +1793,15 @@ + */ + public void update(Graphics g) + { ++ if (!isLightweight()) ++ { ++ Rectangle clip = g.getClipBounds(); ++ if (clip == null) ++ g.clearRect(0, 0, width, height); ++ else ++ g.clearRect(clip.x, clip.y, clip.width, clip.height); ++ } ++ + paint(g); + } + +@@ -1727,8 +1815,6 @@ + { + if (! visible) + return; +- if (peer != null) +- peer.paint(g); + paint(g); + } + +@@ -2061,7 +2147,7 @@ + */ + public boolean contains(int x, int y) + { +- return x >= 0 && y >= 0 && x < width && y < height; ++ return inside (x, y); + } + + /** +@@ -2075,7 +2161,7 @@ + */ + public boolean inside(int x, int y) + { +- return contains(x, y); ++ return x >= 0 && y >= 0 && x < width && y < height; + } + + /** +@@ -2090,7 +2176,7 @@ + */ + public boolean contains(Point p) + { +- return contains(p.x, p.y); ++ return contains (p.x, p.y); + } + + /** +@@ -2105,7 +2191,7 @@ + */ + public Component getComponentAt(int x, int y) + { +- return contains(x, y) ? this : null; ++ return locate (x, y); + } + + /** +@@ -2120,7 +2206,7 @@ + */ + public Component locate(int x, int y) + { +- return getComponentAt(x, y); ++ return contains (x, y) ? this : null; + } + + /** +@@ -2136,18 +2222,21 @@ + */ + public Component getComponentAt(Point p) + { +- return getComponentAt(p.x, p.y); ++ return getComponentAt (p.x, p.y); + } + + /** +- * AWT 1.0 event dispatcher. ++ * AWT 1.0 event delivery. + * +- * @param e the event to dispatch ++ * Deliver an AWT 1.0 event to this Component. This method simply ++ * calls {@link #postEvent}. ++ * ++ * @param e the event to deliver + * @deprecated use {@link #dispatchEvent(AWTEvent)} instead + */ + public void deliverEvent(Event e) + { +- // XXX Add backward compatibility handling. ++ postEvent (e); + } + + /** +@@ -2169,16 +2258,24 @@ + } + + /** +- * AWT 1.0 event dispatcher. ++ * AWT 1.0 event handler. + * +- * @param e the event to dispatch +- * @return false: since the method was deprecated, the return has no meaning ++ * This method simply calls handleEvent and returns the result. ++ * ++ * @param e the event to handle ++ * @return true if the event was handled, false otherwise + * @deprecated use {@link #dispatchEvent(AWTEvent)} instead + */ + public boolean postEvent(Event e) + { +- // XXX Add backward compatibility handling. +- return false; ++ boolean handled = handleEvent (e); ++ ++ if (!handled) ++ // FIXME: need to translate event coordinates to parent's ++ // coordinate space. ++ handled = getParent ().postEvent (e); ++ ++ return handled; + } + + /** +@@ -2782,8 +2879,6 @@ + + if (e instanceof FocusEvent) + processFocusEvent((FocusEvent) e); +- else if (e instanceof PaintEvent) +- processPaintEvent((PaintEvent) e); + else if (e instanceof MouseWheelEvent) + processMouseWheelEvent((MouseWheelEvent) e); + else if (e instanceof MouseEvent) +@@ -2858,6 +2953,7 @@ + { + if (focusListener == null) + return; ++ + switch (e.id) + { + case FocusEvent.FOCUS_GAINED: +@@ -2933,6 +3029,7 @@ + mouseListener.mouseReleased(e); + break; + } ++ e.consume(); + } + + /** +@@ -2960,6 +3057,7 @@ + mouseMotionListener.mouseMoved(e); + break; + } ++ e.consume(); + } + + /** +@@ -2978,7 +3076,10 @@ + { + if (mouseWheelListener != null + && e.id == MouseEvent.MOUSE_WHEEL) ++ { + mouseWheelListener.mouseWheelMoved(e); ++ e.consume(); ++ } + } + + /** +@@ -3056,148 +3157,199 @@ + } + + /** +- * AWT 1.0 event processor. ++ * AWT 1.0 event handler. ++ * ++ * This method calls one of the event-specific handler methods. For ++ * example for key events, either {@link #keyDown (Event evt, int ++ * key)} or {@link keyUp (Event evt, int key)} is called. A derived ++ * component can override one of these event-specific methods if it ++ * only needs to handle certain event types. Otherwise it can ++ * override handleEvent itself and handle any event. + * + * @param evt the event to handle +- * @return false: since the method was deprecated, the return has no meaning ++ * @return true if the event was handled, false otherwise + * @deprecated use {@link #processEvent(AWTEvent)} instead + */ + public boolean handleEvent(Event evt) + { +- // XXX Add backward compatibility handling. ++ switch (evt.id) ++ { ++ // Handle key events. ++ case Event.KEY_ACTION: ++ case Event.KEY_PRESS: ++ return keyDown (evt, evt.key); ++ case Event.KEY_ACTION_RELEASE: ++ case Event.KEY_RELEASE: ++ return keyUp (evt, evt.key); ++ ++ // Handle mouse events. ++ case Event.MOUSE_DOWN: ++ return mouseDown (evt, evt.x, evt.y); ++ case Event.MOUSE_UP: ++ return mouseUp (evt, evt.x, evt.y); ++ case Event.MOUSE_MOVE: ++ return mouseMove (evt, evt.x, evt.y); ++ case Event.MOUSE_DRAG: ++ return mouseDrag (evt, evt.x, evt.y); ++ case Event.MOUSE_ENTER: ++ return mouseEnter (evt, evt.x, evt.y); ++ case Event.MOUSE_EXIT: ++ return mouseExit (evt, evt.x, evt.y); ++ ++ // Handle focus events. ++ case Event.GOT_FOCUS: ++ return gotFocus (evt, evt.arg); ++ case Event.LOST_FOCUS: ++ return lostFocus (evt, evt.arg); ++ ++ // Handle action event. ++ case Event.ACTION_EVENT: ++ return action (evt, evt.arg); ++ } ++ // Unknown event. + return false; + } + + /** +- * AWT 1.0 mouse event. ++ * AWT 1.0 MOUSE_DOWN event handler. This method is meant to be ++ * overridden by components providing their own MOUSE_DOWN handler. ++ * The default implementation simply returns false. + * + * @param evt the event to handle + * @param x the x coordinate, ignored + * @param y the y coordinate, ignored +- * @return false: since the method was deprecated, the return has no meaning ++ * @return false + * @deprecated use {@link #processMouseEvent(MouseEvent)} instead + */ + public boolean mouseDown(Event evt, int x, int y) + { +- // XXX Add backward compatibility handling. + return false; + } + + /** +- * AWT 1.0 mouse event. ++ * AWT 1.0 MOUSE_DRAG event handler. This method is meant to be ++ * overridden by components providing their own MOUSE_DRAG handler. ++ * The default implementation simply returns false. + * + * @param evt the event to handle + * @param x the x coordinate, ignored + * @param y the y coordinate, ignored +- * @return false: since the method was deprecated, the return has no meaning ++ * @return false + * @deprecated use {@link #processMouseMotionEvent(MouseEvent)} instead + */ + public boolean mouseDrag(Event evt, int x, int y) + { +- // XXX Add backward compatibility handling. + return false; + } + + /** +- * AWT 1.0 mouse event. ++ * AWT 1.0 MOUSE_UP event handler. This method is meant to be ++ * overridden by components providing their own MOUSE_UP handler. ++ * The default implementation simply returns false. + * + * @param evt the event to handle + * @param x the x coordinate, ignored + * @param y the y coordinate, ignored +- * @return false: since the method was deprecated, the return has no meaning ++ * @return false + * @deprecated use {@link #processMouseEvent(MouseEvent)} instead + */ + public boolean mouseUp(Event evt, int x, int y) + { +- // XXX Add backward compatibility handling. + return false; + } + + /** +- * AWT 1.0 mouse event. ++ * AWT 1.0 MOUSE_MOVE event handler. This method is meant to be ++ * overridden by components providing their own MOUSE_MOVE handler. ++ * The default implementation simply returns false. + * + * @param evt the event to handle + * @param x the x coordinate, ignored + * @param y the y coordinate, ignored +- * @return false: since the method was deprecated, the return has no meaning ++ * @return false + * @deprecated use {@link #processMouseMotionEvent(MouseEvent)} instead + */ + public boolean mouseMove(Event evt, int x, int y) + { +- // XXX Add backward compatibility handling. + return false; + } + + /** +- * AWT 1.0 mouse event. ++ * AWT 1.0 MOUSE_ENTER event handler. This method is meant to be ++ * overridden by components providing their own MOUSE_ENTER handler. ++ * The default implementation simply returns false. + * + * @param evt the event to handle + * @param x the x coordinate, ignored + * @param y the y coordinate, ignored +- * @return false: since the method was deprecated, the return has no meaning ++ * @return false + * @deprecated use {@link #processMouseEvent(MouseEvent)} instead + */ + public boolean mouseEnter(Event evt, int x, int y) + { +- // XXX Add backward compatibility handling. + return false; + } + + /** +- * AWT 1.0 mouse event. ++ * AWT 1.0 MOUSE_EXIT event handler. This method is meant to be ++ * overridden by components providing their own MOUSE_EXIT handler. ++ * The default implementation simply returns false. + * + * @param evt the event to handle + * @param x the x coordinate, ignored + * @param y the y coordinate, ignored +- * @return false: since the method was deprecated, the return has no meaning ++ * @return false + * @deprecated use {@link #processMouseEvent(MouseEvent)} instead + */ + public boolean mouseExit(Event evt, int x, int y) + { +- // XXX Add backward compatibility handling. + return false; + } + + /** +- * AWT 1.0 key press event. ++ * AWT 1.0 KEY_PRESS and KEY_ACTION event handler. This method is ++ * meant to be overridden by components providing their own key ++ * press handler. The default implementation simply returns false. + * + * @param evt the event to handle + * @param key the key pressed, ignored +- * @return false: since the method was deprecated, the return has no meaning ++ * @return false + * @deprecated use {@link #processKeyEvent(KeyEvent)} instead + */ + public boolean keyDown(Event evt, int key) + { +- // XXX Add backward compatibility handling. + return false; + } + + /** +- * AWT 1.0 key press event. ++ * AWT 1.0 KEY_RELEASE and KEY_ACTION_RELEASE event handler. This ++ * method is meant to be overridden by components providing their ++ * own key release handler. The default implementation simply ++ * returns false. + * + * @param evt the event to handle + * @param key the key pressed, ignored +- * @return false: since the method was deprecated, the return has no meaning ++ * @return false + * @deprecated use {@link #processKeyEvent(KeyEvent)} instead + */ + public boolean keyUp(Event evt, int key) + { +- // XXX Add backward compatibility handling. + return false; + } + + /** +- * AWT 1.0 action event processor. ++ * AWT 1.0 ACTION_EVENT event handler. This method is meant to be ++ * overridden by components providing their own action event ++ * handler. The default implementation simply returns false. + * + * @param evt the event to handle + * @param what the object acted on, ignored +- * @return false: since the method was deprecated, the return has no meaning ++ * @return false + * @deprecated in classes which support actions, use + * processActionEvent(ActionEvent) instead + */ + public boolean action(Event evt, Object what) + { +- // XXX Add backward compatibility handling. + return false; + } + +@@ -3241,30 +3393,32 @@ + } + + /** +- * AWT 1.0 focus event. ++ * AWT 1.0 GOT_FOCUS event handler. This method is meant to be ++ * overridden by components providing their own GOT_FOCUS handler. ++ * The default implementation simply returns false. + * + * @param evt the event to handle + * @param what the Object focused, ignored +- * @return false: since the method was deprecated, the return has no meaning ++ * @return false + * @deprecated use {@link #processFocusEvent(FocusEvent)} instead + */ + public boolean gotFocus(Event evt, Object what) + { +- // XXX Add backward compatibility handling. + return false; + } + + /** +- * AWT 1.0 focus event. ++ * AWT 1.0 LOST_FOCUS event handler. This method is meant to be ++ * overridden by components providing their own LOST_FOCUS handler. ++ * The default implementation simply returns false. + * + * @param evt the event to handle + * @param what the Object focused, ignored +- * @return false: since the method was deprecated, the return has no meaning ++ * @return false + * @deprecated use {@link #processFocusEvent(FocusEvent)} instead + */ + public boolean lostFocus(Event evt, Object what) + { +- // XXX Add backward compatibility handling. + return false; + } + +@@ -3279,7 +3433,7 @@ + */ + public boolean isFocusTraversable() + { +- return enabled && visible && (peer == null || peer.isFocusTraversable()); ++ return enabled && visible && (peer == null || isLightweight() || peer.isFocusTraversable()); + } + + /** +@@ -3294,7 +3448,11 @@ + } + + /** +- * Specify whether this component can receive focus. ++ * Specify whether this component can receive focus. This method also ++ * sets the {@link #isFocusTraversableOverridden} field to 1, which ++ * appears to be the undocumented way {@link ++ * DefaultFocusTraversalPolicy#accept()} determines whether to respect ++ * the {@link #isFocusable()} method of the component. + * + * @param focusable the new focusable status + * @since 1.4 +@@ -3303,16 +3461,22 @@ + { + firePropertyChange("focusable", this.focusable, focusable); + this.focusable = focusable; ++ this.isFocusTraversableOverridden = 1; + } + + /** +- * Sets the focus traversal keys for a given type of focus events. Normally, +- * the default values should match the operating system's native choices. To +- * disable a given traversal, use Collections.EMPTY_SET. The +- * event dispatcher will consume PRESSED, RELEASED, and TYPED events for the +- * specified key, although focus can only transfer on PRESSED or RELEASED. ++ * Sets the focus traversal keys for one of the three focus ++ * traversal directions supported by Components: {@link ++ * #KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS}, {@link ++ * #KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS}, or {@link ++ * #KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS}. Normally, the ++ * default values should match the operating system's native ++ * choices. To disable a given traversal, use ++ * Collections.EMPTY_SET. The event dispatcher will ++ * consume PRESSED, RELEASED, and TYPED events for the specified ++ * key, although focus can only transfer on PRESSED or RELEASED. + * +- *

The defauts are: ++ *

The defaults are: + * + * + * +@@ -3325,10 +3489,13 @@ + * + *
IdentifierMeaningDefault
KeyboardFocusManager.FORWARD_TRAVERSAL_KEYSGo up a traversal cycleNone
+ * +- *

Specifying null allows inheritance from the parent, or from the current +- * KeyboardFocusManager default set. If not null, the set must contain only +- * AWTKeyStrokes that are not already focus keys and are not KEY_TYPED +- * events. ++ * If keystrokes is null, this component's focus traversal key set ++ * is inherited from one of its ancestors. If none of its ancestors ++ * has its own set of focus traversal keys, the focus traversal keys ++ * are set to the defaults retrieved from the current ++ * KeyboardFocusManager. If not null, the set must contain only ++ * AWTKeyStrokes that are not already focus keys and are not ++ * KEY_TYPED events. + * + * @param id one of FORWARD_TRAVERSAL_KEYS, BACKWARD_TRAVERSAL_KEYS, or + * UP_CYCLE_TRAVERSAL_KEYS +@@ -3343,7 +3510,24 @@ + public void setFocusTraversalKeys(int id, Set keystrokes) + { + if (keystrokes == null) +- throw new IllegalArgumentException(); ++ { ++ Container parent = getParent (); ++ ++ while (parent != null) ++ { ++ if (parent.areFocusTraversalKeysSet (id)) ++ { ++ keystrokes = parent.getFocusTraversalKeys (id); ++ break; ++ } ++ parent = parent.getParent (); ++ } ++ ++ if (keystrokes == null) ++ keystrokes = KeyboardFocusManager.getCurrentKeyboardFocusManager (). ++ getDefaultFocusTraversalKeys (id); ++ } ++ + Set sa; + Set sb; + String name; +@@ -3371,50 +3555,60 @@ + name = "upCycleFocusTraversalKeys"; + break; + default: +- throw new IllegalArgumentException(); ++ throw new IllegalArgumentException (); + } +- int i = keystrokes.size(); +- Iterator iter = keystrokes.iterator(); ++ ++ int i = keystrokes.size (); ++ Iterator iter = keystrokes.iterator (); ++ + while (--i >= 0) + { +- Object o = iter.next(); +- if (! (o instanceof AWTKeyStroke) +- || sa.contains(o) || sb.contains(o) ++ Object o = iter.next (); ++ if (!(o instanceof AWTKeyStroke) ++ || sa.contains (o) || sb.contains (o) + || ((AWTKeyStroke) o).keyCode == KeyEvent.VK_UNDEFINED) +- throw new IllegalArgumentException(); ++ throw new IllegalArgumentException (); + } ++ + if (focusTraversalKeys == null) + focusTraversalKeys = new Set[3]; +- keystrokes = Collections.unmodifiableSet(new HashSet(keystrokes)); +- firePropertyChange(name, focusTraversalKeys[id], keystrokes); ++ ++ keystrokes = Collections.unmodifiableSet (new HashSet (keystrokes)); ++ firePropertyChange (name, focusTraversalKeys[id], keystrokes); ++ + focusTraversalKeys[id] = keystrokes; + } + + /** +- * Returns the set of keys for a given focus traversal action, as defined +- * in setFocusTraversalKeys. If not set, this is inherited from +- * the parent component, which may have gotten it from the +- * KeyboardFocusManager. ++ * Returns the set of keys for a given focus traversal action, as ++ * defined in setFocusTraversalKeys. If not set, this ++ * is inherited from the parent component, which may have gotten it ++ * from the KeyboardFocusManager. + * +- * @param id one of FORWARD_TRAVERSAL_KEYS, BACKWARD_TRAVERSAL_KEYS, or +- * UP_CYCLE_TRAVERSAL_KEYS ++ * @param id one of FORWARD_TRAVERSAL_KEYS, BACKWARD_TRAVERSAL_KEYS, ++ * or UP_CYCLE_TRAVERSAL_KEYS + * @throws IllegalArgumentException if id is invalid +- * @see #setFocusTraversalKeys(int, Set) ++ * @see #setFocusTraversalKeys (int, Set) + * @see KeyboardFocusManager#FORWARD_TRAVERSAL_KEYS + * @see KeyboardFocusManager#BACKWARD_TRAVERSAL_KEYS + * @see KeyboardFocusManager#UP_CYCLE_TRAVERSAL_KEYS + * @since 1.4 + */ +- public Set getFocusTraversalKeys(int id) ++ public Set getFocusTraversalKeys (int id) + { +- if (id < KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS +- || id > KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS) ++ if (id != KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS && ++ id != KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS && ++ id != KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS) + throw new IllegalArgumentException(); ++ + Set s = null; ++ + if (focusTraversalKeys != null) + s = focusTraversalKeys[id]; ++ + if (s == null && parent != null) +- s = parent.getFocusTraversalKeys(id); ++ s = parent.getFocusTraversalKeys (id); ++ + return s == null ? (KeyboardFocusManager.getCurrentKeyboardFocusManager() + .getDefaultFocusTraversalKeys(id)) : s; + } +@@ -3423,269 +3617,460 @@ + * Tests whether the focus traversal keys for a given action are explicitly + * set or inherited. + * +- * @param id one of FORWARD_TRAVERSAL_KEYS, BACKWARD_TRAVERSAL_KEYS, or +- * UP_CYCLE_TRAVERSAL_KEYS ++ * @param id one of FORWARD_TRAVERSAL_KEYS, BACKWARD_TRAVERSAL_KEYS, ++ * or UP_CYCLE_TRAVERSAL_KEYS + * @return true if that set is explicitly specified + * @throws IllegalArgumentException if id is invalid +- * @see #getFocusTraversalKeys(int) ++ * @see #getFocusTraversalKeys (int) + * @see KeyboardFocusManager#FORWARD_TRAVERSAL_KEYS + * @see KeyboardFocusManager#BACKWARD_TRAVERSAL_KEYS + * @see KeyboardFocusManager#UP_CYCLE_TRAVERSAL_KEYS + * @since 1.4 + */ +- public boolean areFocusTraversalKeysSet(int id) ++ public boolean areFocusTraversalKeysSet (int id) + { +- if (id < KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS +- || id > KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS) +- throw new IllegalArgumentException(); ++ if (id != KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS && ++ id != KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS && ++ id != KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS) ++ throw new IllegalArgumentException (); ++ + return focusTraversalKeys != null && focusTraversalKeys[id] != null; + } + + /** +- * Sets whether focus traversal keys are enabled, which consumes traversal +- * keys and performs the focus event automatically. ++ * Enable or disable focus traversal keys on this Component. If ++ * they are, then the keyboard focus manager consumes and acts on ++ * key press and release events that trigger focus traversal, and ++ * discards the corresponding key typed events. If focus traversal ++ * keys are disabled, then all key events that would otherwise ++ * trigger focus traversal are sent to this Component. + * + * @param focusTraversalKeysEnabled the new value of the flag +- * @see #getFocusTraversalKeysEnabled() +- * @see #setFocusTraversalKeys(int, Set) +- * @see #getFocusTraversalKeys(int) ++ * @see #getFocusTraversalKeysEnabled () ++ * @see #setFocusTraversalKeys (int, Set) ++ * @see #getFocusTraversalKeys (int) + * @since 1.4 + */ +- public void setFocusTraversalKeysEnabled(boolean focusTraversalKeysEnabled) ++ public void setFocusTraversalKeysEnabled (boolean focusTraversalKeysEnabled) + { +- firePropertyChange("focusTraversalKeysEnabled", +- this.focusTraversalKeysEnabled, +- focusTraversalKeysEnabled); ++ firePropertyChange ("focusTraversalKeysEnabled", ++ this.focusTraversalKeysEnabled, ++ focusTraversalKeysEnabled); + this.focusTraversalKeysEnabled = focusTraversalKeysEnabled; + } + + /** +- * Tests whether focus traversal keys are enabled. If they are, then focus +- * traversal keys are consumed and focus events performed automatically, +- * without the component seeing the keystrokes. +- * +- * @return true if focus traversal is enabled +- * @see #setFocusTraversalKeysEnabled(boolean) +- * @see #setFocusTraversalKeys(int, Set) +- * @see #getFocusTraversalKeys(int) ++ * Check whether or not focus traversal keys are enabled on this ++ * Component. If they are, then the keyboard focus manager consumes ++ * and acts on key press and release events that trigger focus ++ * traversal, and discards the corresponding key typed events. If ++ * focus traversal keys are disabled, then all key events that would ++ * otherwise trigger focus traversal are sent to this Component. ++ * ++ * @return true if focus traversal keys are enabled ++ * @see #setFocusTraversalKeysEnabled (boolean) ++ * @see #setFocusTraversalKeys (int, Set) ++ * @see #getFocusTraversalKeys (int) + * @since 1.4 + */ +- public boolean getFocusTraversalKeysEnabled() ++ public boolean getFocusTraversalKeysEnabled () + { + return focusTraversalKeysEnabled; + } + + /** +- * Requests that this component be given focus. A FOCUS_GAINED +- * event will be fired if and only if this request is successful. To be +- * successful, the component must be displayable, visible, and focusable, +- * and the top-level Window must be able to receive focus. Thus, this +- * request may fail, or be delayed until the window receives focus. It is +- * recommended that requestFocusInWindow be used where +- * possible to be more platform-independent. ++ * Request that this Component be given the keyboard input focus and ++ * that its top-level ancestor become the focused Window. ++ * ++ * For the request to be granted, the Component must be focusable, ++ * displayable and showing and the top-level Window to which it ++ * belongs must be focusable. If the request is initially denied on ++ * the basis that the top-level Window is not focusable, the request ++ * will be remembered and granted when the Window does become ++ * focused. ++ * ++ * Never assume that this Component is the focus owner until it ++ * receives a FOCUS_GAINED event. ++ * ++ * The behaviour of this method is platform-dependent. ++ * {@link #requestFocusInWindow} should be used instead. + * +- * @see #requestFocusInWindow() ++ * @see #requestFocusInWindow () + * @see FocusEvent +- * @see #addFocusListener(FocusListener) +- * @see #isFocusable() +- * @see #isDisplayable() +- * @see KeyboardFocusManager#clearGlobalFocusOwner() +- */ +- public void requestFocus() +- { +- // If there's no peer then this component can't get the focus. We +- // treat it as a silent rejection of the request. +- if (peer != null) +- peer.requestFocus(); ++ * @see #addFocusListener (FocusListener) ++ * @see #isFocusable () ++ * @see #isDisplayable () ++ * @see KeyboardFocusManager#clearGlobalFocusOwner () ++ */ ++ public void requestFocus () ++ { ++ if (isDisplayable () ++ && isShowing () ++ && isFocusable ()) ++ { ++ synchronized (getTreeLock ()) ++ { ++ // Find this Component's top-level ancestor. ++ Container parent = getParent (); ++ ++ while (parent != null ++ && !(parent instanceof Window)) ++ parent = parent.getParent (); ++ ++ Window toplevel = (Window) parent; ++ if (toplevel.isFocusableWindow ()) ++ { ++ if (peer != null && !isLightweight()) ++ // This call will cause a FOCUS_GAINED event to be ++ // posted to the system event queue if the native ++ // windowing system grants the focus request. ++ peer.requestFocus (); ++ else ++ { ++ // Either our peer hasn't been created yet or we're a ++ // lightweight component. In either case we want to ++ // post a FOCUS_GAINED event. ++ EventQueue eq = Toolkit.getDefaultToolkit ().getSystemEventQueue (); ++ synchronized (eq) ++ { ++ KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager (); ++ Component currentFocusOwner = manager.getGlobalPermanentFocusOwner (); ++ if (currentFocusOwner != null) ++ { ++ eq.postEvent (new FocusEvent(currentFocusOwner, FocusEvent.FOCUS_LOST, ++ false, this)); ++ eq.postEvent (new FocusEvent(this, FocusEvent.FOCUS_GAINED, false, ++ currentFocusOwner)); ++ } ++ else ++ eq.postEvent (new FocusEvent(this, FocusEvent.FOCUS_GAINED, false)); ++ } ++ } ++ } ++ else ++ pendingFocusRequest = new FocusEvent(this, FocusEvent.FOCUS_GAINED); ++ } ++ } + } + + /** +- * Requests that this component be given focus. A FOCUS_GAINED +- * event will be fired if and only if this request is successful. To be +- * successful, the component must be displayable, visible, and focusable, +- * and the top-level Window must be able to receive focus. Thus, this +- * request may fail, or be delayed until the window receives focus. It is +- * recommended that requestFocusInWindow be used where +- * possible to be more platform-independent. +- * +- *

If the return value is false, the request is guaranteed to fail. If +- * it is true, it will likely succeed unless the action is vetoed or +- * something in the native windowing system intervenes. The temporary flag, +- * and thus this method in general, is not designed for public use; rather +- * it is a hook for lightweight components to notify their container in +- * an attempt to reduce the amount of repainting necessary. ++ * Request that this Component be given the keyboard input focus and ++ * that its top-level ancestor become the focused Window. ++ * ++ * For the request to be granted, the Component must be focusable, ++ * displayable and showing and the top-level Window to which it ++ * belongs must be focusable. If the request is initially denied on ++ * the basis that the top-level Window is not focusable, the request ++ * will be remembered and granted when the Window does become ++ * focused. ++ * ++ * Never assume that this Component is the focus owner until it ++ * receives a FOCUS_GAINED event. ++ * ++ * The behaviour of this method is platform-dependent. ++ * {@link #requestFocusInWindow} should be used instead. ++ * ++ * If the return value is false, the request is guaranteed to fail. ++ * If the return value is true, the request will succeed unless it ++ * is vetoed or something in the native windowing system intervenes, ++ * preventing this Component's top-level ancestor from becoming ++ * focused. This method is meant to be called by derived ++ * lightweight Components that want to avoid unnecessary repainting ++ * when they know a given focus transfer need only be temporary. + * + * @param temporary true if the focus request is temporary + * @return true if the request has a chance of success +- * @see #requestFocusInWindow() ++ * @see #requestFocusInWindow () + * @see FocusEvent +- * @see #addFocusListener(FocusListener) +- * @see #isFocusable() +- * @see #isDisplayable() +- * @see KeyboardFocusManager#clearGlobalFocusOwner() ++ * @see #addFocusListener (FocusListener) ++ * @see #isFocusable () ++ * @see #isDisplayable () ++ * @see KeyboardFocusManager#clearGlobalFocusOwner () + * @since 1.4 + */ +- protected boolean requestFocus(boolean temporary) ++ protected boolean requestFocus (boolean temporary) + { +- // XXX Implement correctly. +- requestFocus(); ++ if (isDisplayable () ++ && isShowing () ++ && isFocusable ()) ++ { ++ synchronized (getTreeLock ()) ++ { ++ // Find this Component's top-level ancestor. ++ Container parent = getParent (); ++ ++ while (parent != null ++ && !(parent instanceof Window)) ++ parent = parent.getParent (); ++ ++ Window toplevel = (Window) parent; ++ if (toplevel.isFocusableWindow ()) ++ { ++ if (peer != null && !isLightweight()) ++ // This call will cause a FOCUS_GAINED event to be ++ // posted to the system event queue if the native ++ // windowing system grants the focus request. ++ peer.requestFocus (); ++ else ++ { ++ // Either our peer hasn't been created yet or we're a ++ // lightweight component. In either case we want to ++ // post a FOCUS_GAINED event. ++ EventQueue eq = Toolkit.getDefaultToolkit ().getSystemEventQueue (); ++ synchronized (eq) ++ { ++ KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager (); ++ Component currentFocusOwner = manager.getGlobalPermanentFocusOwner (); ++ if (currentFocusOwner != null) ++ { ++ eq.postEvent (new FocusEvent(currentFocusOwner, ++ FocusEvent.FOCUS_LOST, ++ temporary, this)); ++ eq.postEvent (new FocusEvent(this, ++ FocusEvent.FOCUS_GAINED, ++ temporary, ++ currentFocusOwner)); ++ } ++ else ++ eq.postEvent (new FocusEvent(this, FocusEvent.FOCUS_GAINED, temporary)); ++ } ++ } ++ } ++ else ++ // FIXME: need to add a focus listener to our top-level ++ // ancestor, so that we can post this event when it becomes ++ // the focused window. ++ pendingFocusRequest = new FocusEvent(this, FocusEvent.FOCUS_GAINED, temporary); ++ } ++ } ++ // Always return true. + return true; + } + + /** +- * Requests that this component be given focus, if it resides in the +- * top-level window which already has focus. A FOCUS_GAINED +- * event will be fired if and only if this request is successful. To be +- * successful, the component must be displayable, visible, and focusable, +- * and the top-level Window must be focused. +- * +- *

If the return value is false, the request is guaranteed to fail. If +- * it is true, it will likely succeed unless the action is vetoed or +- * something in the native windowing system intervenes. The temporary flag, +- * and thus this method in general, is not designed for public use; rather +- * it is a hook for lightweight components to notify their container in +- * an attempt to reduce the amount of repainting necessary. ++ * Request that this component be given the keyboard input focus, if ++ * its top-level ancestor is the currently focused Window. A ++ * FOCUS_GAINED event will be fired if and only if this ++ * request is successful. To be successful, the component must be ++ * displayable, showing, and focusable, and its ancestor top-level ++ * Window must be focused. ++ * ++ * If the return value is false, the request is guaranteed to fail. ++ * If the return value is true, the request will succeed unless it ++ * is vetoed or something in the native windowing system intervenes, ++ * preventing this Component's top-level ancestor from becoming ++ * focused. + * + * @return true if the request has a chance of success +- * @see #requestFocus() ++ * @see #requestFocus () + * @see FocusEvent +- * @see #addFocusListener(FocusListener) +- * @see #isFocusable() +- * @see #isDisplayable() +- * @see KeyboardFocusManager#clearGlobalFocusOwner() ++ * @see #addFocusListener (FocusListener) ++ * @see #isFocusable () ++ * @see #isDisplayable () ++ * @see KeyboardFocusManager#clearGlobalFocusOwner () + * @since 1.4 + */ +- public boolean requestFocusInWindow() ++ public boolean requestFocusInWindow () + { +- // XXX Implement correctly. +- requestFocus(); +- return true; ++ return requestFocusInWindow (false); + } + + /** +- * Requests that this component be given focus, if it resides in the +- * top-level window which already has focus. A FOCUS_GAINED +- * event will be fired if and only if this request is successful. To be +- * successful, the component must be displayable, visible, and focusable, +- * and the top-level Window must be focused. +- * +- *

If the return value is false, the request is guaranteed to fail. If +- * it is true, it will likely succeed unless the action is vetoed or +- * something in the native windowing system intervenes. The temporary flag, +- * and thus this method in general, is not designed for public use; rather +- * it is a hook for lightweight components to notify their container in +- * an attempt to reduce the amount of repainting necessary. ++ * Request that this component be given the keyboard input focus, if ++ * its top-level ancestor is the currently focused Window. A ++ * FOCUS_GAINED event will be fired if and only if this ++ * request is successful. To be successful, the component must be ++ * displayable, showing, and focusable, and its ancestor top-level ++ * Window must be focused. ++ * ++ * If the return value is false, the request is guaranteed to fail. ++ * If the return value is true, the request will succeed unless it ++ * is vetoed or something in the native windowing system intervenes, ++ * preventing this Component's top-level ancestor from becoming ++ * focused. This method is meant to be called by derived ++ * lightweight Components that want to avoid unnecessary repainting ++ * when they know a given focus transfer need only be temporary. + * + * @param temporary true if the focus request is temporary + * @return true if the request has a chance of success +- * @see #requestFocus() ++ * @see #requestFocus () + * @see FocusEvent +- * @see #addFocusListener(FocusListener) +- * @see #isFocusable() +- * @see #isDisplayable() +- * @see KeyboardFocusManager#clearGlobalFocusOwner() ++ * @see #addFocusListener (FocusListener) ++ * @see #isFocusable () ++ * @see #isDisplayable () ++ * @see KeyboardFocusManager#clearGlobalFocusOwner () + * @since 1.4 + */ +- protected boolean requestFocusInWindow(boolean temporary) ++ protected boolean requestFocusInWindow (boolean temporary) + { +- // XXX Implement correctly. +- requestFocus(); +- return true; ++ KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager (); ++ ++ Window focusedWindow = manager.getFocusedWindow (); ++ ++ if (isDisplayable () ++ && isShowing () ++ && isFocusable ()) ++ { ++ if (focusedWindow != null) ++ { ++ synchronized (getTreeLock ()) ++ { ++ Container parent = getParent (); ++ ++ while (parent != null ++ && !(parent instanceof Window)) ++ parent = parent.getParent (); ++ ++ Window toplevel = (Window) parent; ++ ++ // Check if top-level ancestor is currently focused window. ++ if (focusedWindow == toplevel) ++ { ++ if (peer != null ++ && !isLightweight() ++ && !(this instanceof Window)) ++ // This call will cause a FOCUS_GAINED event to be ++ // posted to the system event queue if the native ++ // windowing system grants the focus request. ++ peer.requestFocus (); ++ else ++ { ++ // Either our peer hasn't been created yet or we're a ++ // lightweight component. In either case we want to ++ // post a FOCUS_GAINED event. ++ EventQueue eq = Toolkit.getDefaultToolkit ().getSystemEventQueue (); ++ synchronized (eq) ++ { ++ Component currentFocusOwner = manager.getGlobalPermanentFocusOwner (); ++ if (currentFocusOwner != null) ++ { ++ eq.postEvent (new FocusEvent(currentFocusOwner, FocusEvent.FOCUS_LOST, ++ temporary, this)); ++ eq.postEvent (new FocusEvent(this, FocusEvent.FOCUS_GAINED, temporary, ++ currentFocusOwner)); ++ } ++ else ++ eq.postEvent (new FocusEvent(this, FocusEvent.FOCUS_GAINED, temporary)); ++ } ++ } ++ } ++ else ++ return false; ++ } ++ } ++ ++ return true; ++ } ++ return false; + } + + /** +- * Transfers focus to the next component in the focus traversal order, as +- * though this were the current focus owner. ++ * Transfers focus to the next component in the focus traversal ++ * order, as though this were the current focus owner. + * + * @see #requestFocus() + * @since 1.1 + */ +- public void transferFocus() ++ public void transferFocus () + { +- Component next; +- if (parent == null) +- next = findNextFocusComponent(null); +- else +- next = parent.findNextFocusComponent(this); +- if (next != null && next != this) +- next.requestFocus(); ++ nextFocus (); + } + + /** +- * Returns the root container that owns the focus cycle where this component +- * resides. A focus cycle root is in two cycles, one as the ancestor, and +- * one as the focusable element; this call always returns the ancestor. ++ * Returns the root container that owns the focus cycle where this ++ * component resides. A focus cycle root is in two cycles, one as ++ * the ancestor, and one as the focusable element; this call always ++ * returns the ancestor. + * + * @return the ancestor container that owns the focus cycle + * @since 1.4 + */ +- public Container getFocusCycleRootAncestor() ++ public Container getFocusCycleRootAncestor () + { +- // XXX Implement. +- throw new Error("not implemented"); ++ if (this instanceof Window ++ && ((Container) this).isFocusCycleRoot ()) ++ return (Container) this; ++ ++ Container parent = getParent (); ++ ++ while (parent != null ++ && !parent.isFocusCycleRoot ()) ++ parent = parent.getParent (); ++ ++ return parent; + } + + /** +- * Tests if the container is the ancestor of the focus cycle that this +- * component belongs to. ++ * Tests if the container is the ancestor of the focus cycle that ++ * this component belongs to. + * + * @param c the container to test + * @return true if c is the focus cycle root + * @since 1.4 + */ +- public boolean isFocusCycleRoot(Container c) ++ public boolean isFocusCycleRoot (Container c) + { +- return c == getFocusCycleRootAncestor(); ++ return c == getFocusCycleRootAncestor (); + } + + /** +- * AWT 1.0 focus event processor. ++ * AWT 1.0 focus event processor. Transfers focus to the next ++ * component in the focus traversal order, as though this were the ++ * current focus owner. + * +- * @deprecated use {@link #transferFocus()} instead ++ * @deprecated use {@link #transferFocus ()} instead + */ +- public void nextFocus() ++ public void nextFocus () + { +- transferFocus(); ++ KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager (); ++ ++ manager.focusNextComponent (this); + } + + /** +- * Transfers focus to the previous component in the focus traversal order, as +- * though this were the current focus owner. ++ * Transfers focus to the previous component in the focus traversal ++ * order, as though this were the current focus owner. + * +- * @see #requestFocus() ++ * @see #requestFocus () + * @since 1.4 + */ +- public void transferFocusBackward() ++ public void transferFocusBackward () + { +- // XXX Implement. +- throw new Error("not implemented"); ++ KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager (); ++ ++ manager.focusPreviousComponent (this); + } + + /** +- * Transfers focus to the focus cycle root of this component. However, if +- * this is a Window, the default focus owner in the window in the current +- * focus cycle is focused instead. ++ * Transfers focus to the focus cycle root of this component. ++ * However, if this is a Window, the default focus owner in the ++ * window in the current focus cycle is focused instead. + * +- * @see #requestFocus() +- * @see #isFocusCycleRoot() ++ * @see #requestFocus () ++ * @see #isFocusCycleRoot () + * @since 1.4 + */ +- public void transferFocusUpCycle() ++ public void transferFocusUpCycle () + { +- // XXX Implement. +- throw new Error("not implemented"); ++ KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager (); ++ ++ manager.upFocusCycle (this); + } + + /** +- * Tests if this component is the focus owner. Use {@link #isFocusOwner()} +- * instead. ++ * Tests if this component is the focus owner. Use {@link ++ * #isFocusOwner ()} instead. + * + * @return true if this component owns focus + * @since 1.2 + */ +- public boolean hasFocus() ++ public boolean hasFocus () + { +- return isFocusOwner(); ++ KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager (); ++ ++ Component focusOwner = manager.getFocusOwner (); ++ ++ return this == focusOwner; + } + + /** +@@ -3696,8 +4081,7 @@ + */ + public boolean isFocusOwner() + { +- // XXX Implement. +- throw new Error("not implemented"); ++ return hasFocus (); + } + + /** +@@ -3712,6 +4096,12 @@ + if (popups == null) + popups = new Vector(); + popups.add(popup); ++ ++ if (popup.parent != null) ++ popup.parent.remove(popup); ++ popup.parent = this; ++ if (peer != null) ++ popup.addNotify(); + } + + /** +@@ -3739,8 +4129,8 @@ + String name = getName(); + if (name != null) + param.append(name).append(","); +- param.append(width).append("x").append(height).append("+").append(x) +- .append("+").append(y); ++ param.append(x).append(",").append(y).append(",").append(width) ++ .append("x").append(height); + if (! isValid()) + param.append(",invalid"); + if (! isVisible()) +@@ -4108,15 +4498,238 @@ + } + + /** +- * Implementation of dispatchEvent. Allows trusted package classes to +- * dispatch additional events first. ++ * Translate an AWT 1.1 event ({@link AWTEvent}) into an AWT 1.0 ++ * event ({@link Event}). ++ * ++ * @param e an AWT 1.1 event to translate ++ * ++ * @return an AWT 1.0 event representing e ++ */ ++ private Event translateEvent (AWTEvent e) ++ { ++ Component target = (Component) e.getSource (); ++ Event translated = null; ++ ++ if (e instanceof InputEvent) ++ { ++ InputEvent ie = (InputEvent) e; ++ long when = ie.getWhen (); ++ ++ int oldID = 0; ++ int id = e.getID (); ++ ++ int oldMods = 0; ++ int mods = ie.getModifiersEx (); ++ ++ if ((mods & InputEvent.BUTTON2_DOWN_MASK) != 0) ++ oldMods |= Event.META_MASK; ++ else if ((mods & InputEvent.BUTTON3_DOWN_MASK) != 0) ++ oldMods |= Event.ALT_MASK; ++ ++ if ((mods & InputEvent.SHIFT_DOWN_MASK) != 0) ++ oldMods |= Event.SHIFT_MASK; ++ ++ if ((mods & InputEvent.CTRL_DOWN_MASK) != 0) ++ oldMods |= Event.CTRL_MASK; ++ ++ if ((mods & InputEvent.META_DOWN_MASK) != 0) ++ oldMods |= Event.META_MASK; ++ ++ if ((mods & InputEvent.ALT_DOWN_MASK) != 0) ++ oldMods |= Event.ALT_MASK; ++ ++ if (e instanceof MouseEvent) ++ { ++ if (id == MouseEvent.MOUSE_PRESSED) ++ oldID = Event.MOUSE_DOWN; ++ else if (id == MouseEvent.MOUSE_RELEASED) ++ oldID = Event.MOUSE_UP; ++ else if (id == MouseEvent.MOUSE_MOVED) ++ oldID = Event.MOUSE_MOVE; ++ else if (id == MouseEvent.MOUSE_DRAGGED) ++ oldID = Event.MOUSE_DRAG; ++ else if (id == MouseEvent.MOUSE_ENTERED) ++ oldID = Event.MOUSE_ENTER; ++ else if (id == MouseEvent.MOUSE_EXITED) ++ oldID = Event.MOUSE_EXIT; ++ else ++ // No analogous AWT 1.0 mouse event. ++ return null; ++ ++ MouseEvent me = (MouseEvent) e; ++ ++ translated = new Event (target, when, oldID, ++ me.getX (), me.getY (), 0, oldMods); ++ } ++ else if (e instanceof KeyEvent) ++ { ++ if (id == KeyEvent.KEY_PRESSED) ++ oldID = Event.KEY_PRESS; ++ else if (e.getID () == KeyEvent.KEY_RELEASED) ++ oldID = Event.KEY_RELEASE; ++ else ++ // No analogous AWT 1.0 key event. ++ return null; ++ ++ int oldKey = 0; ++ int newKey = ((KeyEvent) e).getKeyCode (); ++ switch (newKey) ++ { ++ case KeyEvent.VK_BACK_SPACE: ++ oldKey = Event.BACK_SPACE; ++ break; ++ case KeyEvent.VK_CAPS_LOCK: ++ oldKey = Event.CAPS_LOCK; ++ break; ++ case KeyEvent.VK_DELETE: ++ oldKey = Event.DELETE; ++ break; ++ case KeyEvent.VK_DOWN: ++ case KeyEvent.VK_KP_DOWN: ++ oldKey = Event.DOWN; ++ break; ++ case KeyEvent.VK_END: ++ oldKey = Event.END; ++ break; ++ case KeyEvent.VK_ENTER: ++ oldKey = Event.ENTER; ++ break; ++ case KeyEvent.VK_ESCAPE: ++ oldKey = Event.ESCAPE; ++ break; ++ case KeyEvent.VK_F1: ++ oldKey = Event.F1; ++ break; ++ case KeyEvent.VK_F10: ++ oldKey = Event.F10; ++ break; ++ case KeyEvent.VK_F11: ++ oldKey = Event.F11; ++ break; ++ case KeyEvent.VK_F12: ++ oldKey = Event.F12; ++ break; ++ case KeyEvent.VK_F2: ++ oldKey = Event.F2; ++ break; ++ case KeyEvent.VK_F3: ++ oldKey = Event.F3; ++ break; ++ case KeyEvent.VK_F4: ++ oldKey = Event.F4; ++ break; ++ case KeyEvent.VK_F5: ++ oldKey = Event.F5; ++ break; ++ case KeyEvent.VK_F6: ++ oldKey = Event.F6; ++ break; ++ case KeyEvent.VK_F7: ++ oldKey = Event.F7; ++ break; ++ case KeyEvent.VK_F8: ++ oldKey = Event.F8; ++ break; ++ case KeyEvent.VK_F9: ++ oldKey = Event.F9; ++ break; ++ case KeyEvent.VK_HOME: ++ oldKey = Event.HOME; ++ break; ++ case KeyEvent.VK_INSERT: ++ oldKey = Event.INSERT; ++ break; ++ case KeyEvent.VK_LEFT: ++ case KeyEvent.VK_KP_LEFT: ++ oldKey = Event.LEFT; ++ break; ++ case KeyEvent.VK_NUM_LOCK: ++ oldKey = Event.NUM_LOCK; ++ break; ++ case KeyEvent.VK_PAUSE: ++ oldKey = Event.PAUSE; ++ break; ++ case KeyEvent.VK_PAGE_DOWN: ++ oldKey = Event.PGDN; ++ break; ++ case KeyEvent.VK_PAGE_UP: ++ oldKey = Event.PGUP; ++ break; ++ case KeyEvent.VK_PRINTSCREEN: ++ oldKey = Event.PRINT_SCREEN; ++ break; ++ case KeyEvent.VK_RIGHT: ++ case KeyEvent.VK_KP_RIGHT: ++ oldKey = Event.RIGHT; ++ break; ++ case KeyEvent.VK_SCROLL_LOCK: ++ oldKey = Event.SCROLL_LOCK; ++ break; ++ case KeyEvent.VK_TAB: ++ oldKey = Event.TAB; ++ break; ++ case KeyEvent.VK_UP: ++ case KeyEvent.VK_KP_UP: ++ oldKey = Event.UP; ++ break; ++ default: ++ oldKey = newKey; ++ } ++ ++ translated = new Event (target, when, oldID, ++ 0, 0, oldKey, oldMods); ++ } ++ } ++ else if (e instanceof ActionEvent) ++ translated = new Event (target, Event.ACTION_EVENT, ++ ((ActionEvent) e).getActionCommand ()); ++ ++ return translated; ++ } ++ ++ /** ++ * Implementation of dispatchEvent. Allows trusted package classes ++ * to dispatch additional events first. This implementation first ++ * translates e to an AWT 1.0 event and sends the ++ * result to {@link #postEvent}. If the AWT 1.0 event is not ++ * handled, and events of type e are enabled for this ++ * component, e is passed on to {@link #processEvent}. + * + * @param e the event to dispatch + */ +- void dispatchEventImpl(AWTEvent e) ++ ++ void dispatchEventImpl (AWTEvent e) + { ++ Event oldEvent = translateEvent (e); ++ ++ if (oldEvent != null) ++ postEvent (oldEvent); ++ + if (eventTypeEnabled (e.id)) +- processEvent(e); ++ { ++ // the trick we use to communicate between dispatch and redispatch ++ // is to have KeyboardFocusManager.redispatch synchronize on the ++ // object itself. we then do not redispatch to KeyboardFocusManager ++ // if we are already holding the lock. ++ if (! Thread.holdsLock(e)) ++ { ++ switch (e.id) ++ { ++ case WindowEvent.WINDOW_GAINED_FOCUS: ++ case WindowEvent.WINDOW_LOST_FOCUS: ++ case KeyEvent.KEY_PRESSED: ++ case KeyEvent.KEY_RELEASED: ++ case KeyEvent.KEY_TYPED: ++ case FocusEvent.FOCUS_GAINED: ++ case FocusEvent.FOCUS_LOST: ++ if (KeyboardFocusManager ++ .getCurrentKeyboardFocusManager() ++ .dispatchEvent(e)) ++ return; ++ } ++ } ++ processEvent (e); ++ } + } + + /** +@@ -4147,6 +4760,8 @@ + case MouseEvent.MOUSE_EXITED: + case MouseEvent.MOUSE_PRESSED: + case MouseEvent.MOUSE_RELEASED: ++ case MouseEvent.MOUSE_MOVED: ++ case MouseEvent.MOUSE_DRAGGED: + return (mouseListener != null + || mouseMotionListener != null + || (eventMask & AWTEvent.MOUSE_EVENT_MASK) != 0); +@@ -4220,45 +4835,12 @@ + } + + /** +- * Does the work for a paint event. +- * +- * @param event the event to process +- */ +- private void processPaintEvent(PaintEvent event) +- { +- // Can't do graphics without peer +- if (peer == null) +- return; +- +- Graphics gfx = getGraphics(); +- try +- { +- Shape clip = event.getUpdateRect(); +- gfx.setClip(clip); +- +- switch (event.id) +- { +- case PaintEvent.PAINT: +- paint(gfx); +- break; +- case PaintEvent.UPDATE: +- update(gfx); +- break; +- default: +- throw new IllegalArgumentException("unknown paint event"); +- } +- } +- finally +- { +- gfx.dispose(); +- } +- } +- +- /** + * This method is used to implement transferFocus(). CHILD is the child + * making the request. This is overridden by Container; when called for an + * ordinary component there is no child and so we always return null. + * ++ * FIXME: is this still needed, in light of focus traversal policies? ++ * + * @param child the component making the request + * @return the next component to focus on + */ +@@ -4819,23 +5401,23 @@ + * Tests whether this component can accept focus. + * + * @return true if this is focus traversable +- * @see #getAccessibleStateSet() ++ * @see #getAccessibleStateSet () + * @see AccessibleState#FOCUSABLE + * @see AccessibleState#FOCUSED + */ +- public boolean isFocusTraversable() ++ public boolean isFocusTraversable () + { +- return Component.this.isFocusTraversable(); ++ return Component.this.isFocusTraversable (); + } + + /** + * Requests focus for this component. + * +- * @see #isFocusTraversable() ++ * @see #isFocusTraversable () + */ +- public void requestFocus() ++ public void requestFocus () + { +- Component.this.requestFocus(); ++ Component.this.requestFocus (); + } + + /** +Index: java/awt/ComponentOrientation.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/ComponentOrientation.java,v +retrieving revision 1.6 +diff -u -r1.6 ComponentOrientation.java +--- java/awt/ComponentOrientation.java 9 Aug 2002 04:26:13 -0000 1.6 ++++ java/awt/ComponentOrientation.java 6 Sep 2004 16:35:43 -0000 +@@ -171,13 +171,15 @@ + } + + /** +- * Gets an orientation from a resource bundle. This tries the following:

    ++ * Gets an orientation from a resource bundle. This tries the following: ++ * ++ *
      + *
    • Use the key "Orientation" to find an instance of ComponentOrientation + * in the bundle.
    • + *
    • Get the locale of the resource bundle, and get the orientation of + * that locale.
    • +- *
    • Give up and get the orientation of the default locale.
    • +- *
        ++ *
      1. Give up and get the orientation of the default locale.
      2. ++ *
    + * + * @param bdl the bundle to use + * @return the orientation +Index: java/awt/Container.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/Container.java,v +retrieving revision 1.29 +diff -u -r1.29 Container.java +--- java/awt/Container.java 8 Jan 2004 03:52:52 -0000 1.29 ++++ java/awt/Container.java 6 Sep 2004 16:35:43 -0000 +@@ -1,5 +1,5 @@ + /* Container.java -- parent container class in AWT +- Copyright (C) 1999, 2000, 2002, 2003 Free Software Foundation ++ Copyright (C) 1999, 2000, 2002, 2003, 2004 Free Software Foundation + + This file is part of GNU Classpath. + +@@ -46,12 +46,19 @@ + import java.awt.peer.LightweightPeer; + import java.beans.PropertyChangeListener; + import java.beans.PropertyChangeSupport; ++import java.io.ObjectInputStream; ++import java.io.IOException; ++import java.io.ObjectOutputStream; + import java.io.PrintStream; + import java.io.PrintWriter; + import java.io.Serializable; ++import java.util.Collections; + import java.util.EventListener; ++import java.util.Iterator; ++import java.util.HashSet; + import java.util.Set; + import javax.accessibility.Accessible; ++import javax.swing.SwingUtilities; + + /** + * A generic window toolkit object that acts as a container for other objects. +@@ -92,6 +99,21 @@ + transient ContainerListener containerListener; + transient PropertyChangeSupport changeSupport; + ++ /** The focus traversal policy that determines how focus is ++ transferred between this Container and its children. */ ++ private FocusTraversalPolicy focusTraversalPolicy; ++ ++ /** ++ * The focus traversal keys, if not inherited from the parent or default ++ * keyboard manager. These sets will contain only AWTKeyStrokes that ++ * represent press and release events to use as focus control. ++ * ++ * @see #getFocusTraversalKeys(int) ++ * @see #setFocusTraversalKeys(int, Set) ++ * @since 1.4 ++ */ ++ transient Set[] focusTraversalKeys; ++ + /** + * Default constructor for subclasses. + */ +@@ -106,7 +128,7 @@ + */ + public int getComponentCount() + { +- return ncomponents; ++ return countComponents (); + } + + /** +@@ -118,7 +140,7 @@ + */ + public int countComponents() + { +- return getComponentCount(); ++ return ncomponents; + } + + /** +@@ -186,10 +208,7 @@ + */ + public Insets getInsets() + { +- if (peer == null) +- return new Insets(0, 0, 0, 0); +- +- return ((ContainerPeer) peer).getInsets(); ++ return insets (); + } + + /** +@@ -201,7 +220,10 @@ + */ + public Insets insets() + { +- return getInsets(); ++ if (peer == null) ++ return new Insets (0, 0, 0, 0); ++ ++ return ((ContainerPeer) peer).getInsets (); + } + + /** +@@ -396,6 +418,8 @@ + if (layoutMgr != null) + layoutMgr.removeLayoutComponent(r); + ++ r.parent = null; ++ + // Post event to notify of adding the container. + ContainerEvent ce = new ContainerEvent(this, + ContainerEvent.COMPONENT_REMOVED, +@@ -463,8 +487,7 @@ + */ + public void doLayout() + { +- if (layoutMgr != null) +- layoutMgr.layoutContainer(this); ++ layout (); + } + + /** +@@ -474,7 +497,8 @@ + */ + public void layout() + { +- doLayout(); ++ if (layoutMgr != null) ++ layoutMgr.layoutContainer (this); + } + + /** +@@ -501,6 +525,20 @@ + } + + /** ++ * Recursively invalidates the container tree. ++ */ ++ private void invalidateTree() ++ { ++ for (int i = 0; i < ncomponents; i++) ++ { ++ Component comp = component[i]; ++ comp.invalidate(); ++ if (comp instanceof Container) ++ ((Container) comp).invalidateTree(); ++ } ++ } ++ ++ /** + * Recursively validates the container tree, recomputing any invalid + * layouts. + */ +@@ -545,7 +583,10 @@ + public void setFont(Font f) + { + super.setFont(f); +- // FIXME, should invalidate all children with font == null ++ // FIXME: Although it might make more sense to invalidate only ++ // those children whose font == null, Sun invalidates all children. ++ // So we'll do the same. ++ invalidateTree(); + } + + /** +@@ -555,7 +596,7 @@ + */ + public Dimension getPreferredSize() + { +- return preferredSize(); ++ return preferredSize (); + } + + /** +@@ -567,10 +608,10 @@ + */ + public Dimension preferredSize() + { +- if (layoutMgr != null) +- return layoutMgr.preferredLayoutSize(this); +- else +- return super.preferredSize(); ++ if (layoutMgr != null) ++ return layoutMgr.preferredLayoutSize (this); ++ else ++ return super.preferredSize (); + } + + /** +@@ -580,7 +621,7 @@ + */ + public Dimension getMinimumSize() + { +- return minimumSize(); ++ return minimumSize (); + } + + /** +@@ -592,10 +633,10 @@ + */ + public Dimension minimumSize() + { +- if (layoutMgr != null) +- return layoutMgr.minimumLayoutSize(this); +- else +- return super.minimumSize(); ++ if (layoutMgr != null) ++ return layoutMgr.minimumLayoutSize (this); ++ else ++ return super.minimumSize (); + } + + /** +@@ -663,8 +704,9 @@ + { + if (!isShowing()) + return; +- super.paint(g); +- visitChildren(g, GfxPaintVisitor.INSTANCE, true); ++ // Visit heavyweights as well, in case they were ++ // erased when we cleared the background for this container. ++ visitChildren(g, GfxPaintVisitor.INSTANCE, false); + } + + /** +@@ -678,11 +720,6 @@ + */ + public void update(Graphics g) + { +- Rectangle clip = g.getClipBounds(); +- if (clip == null) +- g.clearRect(0, 0, width, height); +- else +- g.clearRect(clip.x, clip.y, clip.width, clip.height); + super.update(g); + } + +@@ -819,6 +856,16 @@ + */ + public void deliverEvent(Event e) + { ++ if (!handleEvent (e)) ++ { ++ synchronized (getTreeLock ()) ++ { ++ Component parent = getParent (); ++ ++ if (parent != null) ++ parent.deliverEvent (e); ++ } ++ } + } + + /** +@@ -837,23 +884,7 @@ + */ + public Component getComponentAt(int x, int y) + { +- synchronized (getTreeLock ()) +- { +- if (! contains(x, y)) +- return null; +- for (int i = 0; i < ncomponents; ++i) +- { +- // Ignore invisible children... +- if (!component[i].isVisible()) +- continue; +- +- int x2 = x - component[i].x; +- int y2 = y - component[i].y; +- if (component[i].contains(x2, y2)) +- return component[i]; +- } +- return this; +- } ++ return locate (x, y); + } + + /** +@@ -873,7 +904,23 @@ + */ + public Component locate(int x, int y) + { +- return getComponentAt(x, y); ++ synchronized (getTreeLock ()) ++ { ++ if (!contains (x, y)) ++ return null; ++ for (int i = 0; i < ncomponents; ++i) ++ { ++ // Ignore invisible children... ++ if (!component[i].isVisible ()) ++ continue; ++ ++ int x2 = x - component[i].x; ++ int y2 = y - component[i].y; ++ if (component[i].contains (x2, y2)) ++ return component[i]; ++ } ++ return this; ++ } + } + + /** +@@ -890,7 +937,7 @@ + */ + public Component getComponentAt(Point p) + { +- return getComponentAt(p.x, p.y); ++ return getComponentAt (p.x, p.y); + } + + public Component findComponentAt(int x, int y) +@@ -990,7 +1037,7 @@ + { + String param = super.paramString(); + if (layoutMgr != null) +- param = param + "," + layoutMgr.getClass().getName(); ++ param = param + ",layout=" + layoutMgr.getClass().getName(); + + return param; + } +@@ -1054,9 +1101,89 @@ + throw new IllegalArgumentException (); + + if (keystrokes == null) +- throw new IllegalArgumentException (); ++ { ++ Container parent = getParent (); ++ ++ while (parent != null) ++ { ++ if (parent.areFocusTraversalKeysSet (id)) ++ { ++ keystrokes = parent.getFocusTraversalKeys (id); ++ break; ++ } ++ parent = parent.getParent (); ++ } + +- throw new Error ("not implemented"); ++ if (keystrokes == null) ++ keystrokes = KeyboardFocusManager.getCurrentKeyboardFocusManager (). ++ getDefaultFocusTraversalKeys (id); ++ } ++ ++ Set sa; ++ Set sb; ++ Set sc; ++ String name; ++ switch (id) ++ { ++ case KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS: ++ sa = getFocusTraversalKeys ++ (KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS); ++ sb = getFocusTraversalKeys ++ (KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS); ++ sc = getFocusTraversalKeys ++ (KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS); ++ name = "forwardFocusTraversalKeys"; ++ break; ++ case KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS: ++ sa = getFocusTraversalKeys ++ (KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS); ++ sb = getFocusTraversalKeys ++ (KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS); ++ sc = getFocusTraversalKeys ++ (KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS); ++ name = "backwardFocusTraversalKeys"; ++ break; ++ case KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS: ++ sa = getFocusTraversalKeys ++ (KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS); ++ sb = getFocusTraversalKeys ++ (KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS); ++ sc = getFocusTraversalKeys ++ (KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS); ++ name = "upCycleFocusTraversalKeys"; ++ break; ++ case KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS: ++ sa = getFocusTraversalKeys ++ (KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS); ++ sb = getFocusTraversalKeys ++ (KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS); ++ sc = getFocusTraversalKeys ++ (KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS); ++ name = "downCycleFocusTraversalKeys"; ++ break; ++ default: ++ throw new IllegalArgumentException (); ++ } ++ ++ int i = keystrokes.size (); ++ Iterator iter = keystrokes.iterator (); ++ ++ while (--i >= 0) ++ { ++ Object o = iter.next (); ++ if (!(o instanceof AWTKeyStroke) ++ || sa.contains (o) || sb.contains (o) || sc.contains (o) ++ || ((AWTKeyStroke) o).keyCode == KeyEvent.VK_UNDEFINED) ++ throw new IllegalArgumentException (); ++ } ++ ++ if (focusTraversalKeys == null) ++ focusTraversalKeys = new Set[3]; ++ ++ keystrokes = Collections.unmodifiableSet (new HashSet (keystrokes)); ++ firePropertyChange (name, focusTraversalKeys[id], keystrokes); ++ ++ focusTraversalKeys[id] = keystrokes; + } + + /** +@@ -1071,7 +1198,7 @@ + * + * @since 1.4 + */ +- public Set getFocusTraversalKeys(int id) ++ public Set getFocusTraversalKeys (int id) + { + if (id != KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS && + id != KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS && +@@ -1079,9 +1206,18 @@ + id != KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS) + throw new IllegalArgumentException (); + +- return null; ++ Set s = null; ++ ++ if (focusTraversalKeys != null) ++ s = focusTraversalKeys[id]; ++ ++ if (s == null && parent != null) ++ s = parent.getFocusTraversalKeys (id); ++ ++ return s == null ? (KeyboardFocusManager.getCurrentKeyboardFocusManager() ++ .getDefaultFocusTraversalKeys(id)) : s; + } +- ++ + /** + * Returns whether the Set of focus traversal keys for the given focus + * traversal operation has been explicitly defined for this Container. +@@ -1096,7 +1232,7 @@ + * + * @since 1.4 + */ +- public boolean areFocusTraversalKeysSet(int id) ++ public boolean areFocusTraversalKeysSet (int id) + { + if (id != KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS && + id != KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS && +@@ -1104,43 +1240,148 @@ + id != KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS) + throw new IllegalArgumentException (); + +- return false; ++ return focusTraversalKeys != null && focusTraversalKeys[id] != null; + } +- +- public boolean isFocusCycleRoot(Container c) ++ ++ /** ++ * Check whether the given Container is the focus cycle root of this ++ * Container's focus traversal cycle. If this Container is a focus ++ * cycle root itself, then it will be in two different focus cycles ++ * -- it's own, and that of its ancestor focus cycle root's. In ++ * that case, if c is either of those containers, this ++ * method will return true. ++ * ++ * @param c the candidate Container ++ * ++ * @return true if c is the focus cycle root of the focus traversal ++ * cycle to which this Container belongs, false otherwise ++ * ++ * @since 1.4 ++ */ ++ public boolean isFocusCycleRoot (Container c) + { ++ if (this == c ++ && isFocusCycleRoot ()) ++ return true; ++ ++ Container ancestor = getFocusCycleRootAncestor (); ++ ++ if (c == ancestor) ++ return true; ++ + return false; + } +- +- public void transferFocusBackward() +- { +- } +- +- public void setFocusTraversalPolicy(FocusTraversalPolicy policy) ++ ++ /** ++ * If this Container is a focus cycle root, set the focus traversal ++ * policy that determines the focus traversal order for its ++ * children. If non-null, this policy will be inherited by all ++ * inferior focus cycle roots. If policy is null, this ++ * Container will inherit its policy from the closest ancestor focus ++ * cycle root that's had its policy set. ++ * ++ * @param policy the new focus traversal policy for this Container or null ++ * ++ * @since 1.4 ++ */ ++ public void setFocusTraversalPolicy (FocusTraversalPolicy policy) + { ++ focusTraversalPolicy = policy; + } +- +- public FocusTraversalPolicy getFocusTraversalPolicy() ++ ++ /** ++ * Return the focus traversal policy that determines the focus ++ * traversal order for this Container's children. This method ++ * returns null if this Container is not a focus cycle root. If the ++ * focus traversal policy has not been set explicitly, then this ++ * method will return an ancestor focus cycle root's policy instead. ++ * ++ * @return this Container's focus traversal policy or null ++ * ++ * @since 1.4 ++ */ ++ public FocusTraversalPolicy getFocusTraversalPolicy () + { +- return null; ++ if (!isFocusCycleRoot ()) ++ return null; ++ ++ if (focusTraversalPolicy == null) ++ { ++ Container ancestor = getFocusCycleRootAncestor (); ++ ++ if (ancestor != this) ++ return ancestor.getFocusTraversalPolicy (); ++ else ++ { ++ KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager (); ++ ++ return manager.getDefaultFocusTraversalPolicy (); ++ } ++ } ++ else ++ return focusTraversalPolicy; + } +- +- public boolean isFocusTraversalPolicySet() ++ ++ /** ++ * Check whether this Container's focus traversal policy has been ++ * explicitly set. If it has not, then this Container will inherit ++ * its focus traversal policy from one of its ancestor focus cycle ++ * roots. ++ * ++ * @return true if focus traversal policy is set, false otherwise ++ */ ++ public boolean isFocusTraversalPolicySet () + { +- return false; ++ return focusTraversalPolicy == null; + } +- +- public void setFocusCycleRoot(boolean focusCycleRoot) ++ ++ /** ++ * Set whether or not this Container is the root of a focus ++ * traversal cycle. This Container's focus traversal policy ++ * determines the order of focus traversal. Some policies prevent ++ * the focus from being transferred between two traversal cycles ++ * until an up or down traversal operation is performed. In that ++ * case, normal traversal (not up or down) is limited to this ++ * Container and all of this Container's descendents that are not ++ * descendents of inferior focus cycle roots. In the default case ++ * however, ContainerOrderFocusTraversalPolicy is in effect, and it ++ * supports implicit down-cycle traversal operations. ++ * ++ * @return true if this is a focus cycle root, false otherwise ++ * ++ * @since 1.4 ++ */ ++ public void setFocusCycleRoot (boolean focusCycleRoot) + { ++ this.focusCycleRoot = focusCycleRoot; + } +- +- public boolean isFocusCycleRoot() ++ ++ /** ++ * Check whether this Container is a focus cycle root. ++ * ++ * @return true if this is a focus cycle root, false otherwise ++ * ++ * @since 1.4 ++ */ ++ public boolean isFocusCycleRoot () + { +- return false; ++ return focusCycleRoot; + } +- +- public void transferFocusDownCycle() ++ ++ /** ++ * Transfer focus down one focus traversal cycle. If this Container ++ * is a focus cycle root, then its default component becomes the ++ * focus owner, and this Container becomes the current focus cycle ++ * root. No traversal will occur if this Container is not a focus ++ * cycle root. ++ * ++ * @since 1.4 ++ */ ++ public void transferFocusDownCycle () + { ++ KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager (); ++ ++ manager.downFocusCycle (this); + } + + /** +@@ -1204,8 +1445,12 @@ + for (int i = ncomponents - 1; i >= 0; --i) + { + Component comp = component[i]; ++ // If we're visiting heavyweights as well, ++ // don't recurse into Containers here. This avoids ++ // painting the same nested child multiple times. + boolean applicable = comp.isVisible() +- && (comp.isLightweight() || !lightweightOnly); ++ && (comp.isLightweight() ++ || !lightweightOnly && ! (comp instanceof Container)); + + if (applicable) + visitChild(gfx, visitor, comp); +@@ -1233,6 +1478,7 @@ + Rectangle oldClip = gfx.getClipBounds(); + if (oldClip == null) + oldClip = bounds; ++ + Rectangle clip = oldClip.intersection(bounds); + + if (clip.isEmpty()) return; +@@ -1259,10 +1505,11 @@ + void dispatchEventImpl(AWTEvent e) + { + // Give lightweight dispatcher a chance to handle it. +- if (dispatcher != null ++ if (eventTypeEnabled (e.id) ++ && dispatcher != null + && dispatcher.handleEvent (e)) + return; +- ++ + if ((e.id <= ContainerEvent.CONTAINER_LAST + && e.id >= ContainerEvent.CONTAINER_FIRST) + && (containerListener != null +@@ -1336,11 +1583,10 @@ + + // If we're not lightweight, and we just got a lightweight + // child, we need a lightweight dispatcher to feed it events. +- if (! this.isLightweight() +- && dispatcher == null) ++ if (! this.isLightweight()) + { +- dispatcher = new LightweightDispatcher (this); +- dispatcher.enableEvents (component[i].eventMask); ++ if (dispatcher == null) ++ dispatcher = new LightweightDispatcher (this); + } + + +@@ -1352,6 +1598,61 @@ + } + } + ++ /** ++ * Deserialize this Container: ++ *
      ++ *
    1. Read from the stream the default serializable fields.
    2. ++ *
    3. Read a list of serializable ContainerListeners as optional ++ * data. If the list is null, no listeners will be registered.
    4. ++ *
    5. Read this Container's FocusTraversalPolicy as optional data. ++ * If this is null, then this Container will use a ++ * DefaultFocusTraversalPolicy.
    6. ++ *
    ++ * ++ * @param s the stream to read from ++ * @throws ClassNotFoundException if deserialization fails ++ * @throws IOException if the stream fails ++ */ ++ private void readObject (ObjectInputStream s) ++ throws ClassNotFoundException, IOException ++ { ++ s.defaultReadObject (); ++ String key = (String) s.readObject (); ++ while (key != null) ++ { ++ Object object = s.readObject (); ++ if ("containerL".equals (key)) ++ addContainerListener((ContainerListener) object); ++ // FIXME: under what key is the focus traversal policy stored? ++ else if ("focusTraversalPolicy".equals (key)) ++ setFocusTraversalPolicy ((FocusTraversalPolicy) object); ++ ++ key = (String) s.readObject(); ++ } ++ } ++ ++ /** ++ * Serialize this Container: ++ *
      ++ *
    1. Write to the stream the default serializable fields.
    2. ++ *
    3. Write the list of serializable ContainerListeners as optional ++ * data.
    4. ++ *
    5. Write this Container's FocusTraversalPolicy as optional data.
    6. ++ *
    ++ * ++ * @param s the stream to write to ++ * @throws IOException if the stream fails ++ */ ++ private void writeObject (ObjectOutputStream s) throws IOException ++ { ++ s.defaultWriteObject (); ++ AWTEventMulticaster.save (s, "containerL", containerListener); ++ if (focusTraversalPolicy instanceof Serializable) ++ s.writeObject (focusTraversalPolicy); ++ else ++ s.writeObject (null); ++ } ++ + // Nested classes. + + /* The following classes are used in concert with the +@@ -1516,7 +1817,7 @@ + (ACCESSIBLE_CHILD_PROPERTY, e.getChild(), null); + } + } // class AccessibleContainerHandler +- } // class AccessibleAWTPanel ++ } // class AccessibleAWTContainer + } // class Container + + /** +@@ -1530,122 +1831,156 @@ + { + private static final long serialVersionUID = 5184291520170872969L; + private Container nativeContainer; +- private Component focus; + private Cursor nativeCursor; + private long eventMask; + + private transient Component mouseEventTarget; ++ private transient Component pressedComponent; ++ private transient Component lastComponentEntered; ++ private transient int pressCount; + + LightweightDispatcher(Container c) + { + nativeContainer = c; + } + +- void dispose() +- { +- } +- +- void enableEvents(long l) +- { +- eventMask |= l; +- } +- +- void mouseExit (MouseEvent me, int x, int y) +- { +- } +- +- void acquireComponentForMouseEvent (MouseEvent me) ++ void acquireComponentForMouseEvent(MouseEvent me) + { + int x = me.getX (); + int y = me.getY (); + +- Component candidate = mouseEventTarget; +- +- boolean candidate_is_container_with_children = +- ((candidate != null) +- && (candidate instanceof Container) +- && (((Container)candidate).getComponentCount () > 0)); +- +- boolean candidate_does_not_contain_point = +- ((candidate != null) +- && (! candidate.contains (x - candidate.getX (), +- y - candidate.getY ()))); +- +- if (candidate == null +- || candidate_is_container_with_children +- || candidate_does_not_contain_point) +- { +- // Try to reacquire. +- candidate = nativeContainer.findComponentAt (x, y); +- } +- +- if (mouseEventTarget != null +- && mouseEventTarget != candidate) +- { +- int nx = x - mouseEventTarget.getX (); +- int ny = y - mouseEventTarget.getY (); +- MouseEvent exited = new MouseEvent (mouseEventTarget, +- MouseEvent.MOUSE_EXITED, +- me.getWhen (), +- me.getModifiers (), +- nx, ny, +- me.getClickCount (), +- me.isPopupTrigger (), +- me.getButton ()); +- mouseEventTarget.dispatchEvent (exited); +- mouseEventTarget = null; +- } ++ // Find the candidate which should receive this event. ++ Component parent = nativeContainer; ++ Component candidate = null; ++ Point p = me.getPoint(); ++ while (candidate == null && parent != null) ++ { ++ candidate = ++ SwingUtilities.getDeepestComponentAt(parent, p.x, p.y); ++ if (candidate == null || (candidate.eventMask & me.getID()) == 0) ++ { ++ candidate = null; ++ p = SwingUtilities.convertPoint(parent, p.x, p.y, parent.parent); ++ parent = parent.parent; ++ } ++ } + ++ // If the only candidate we found was the native container itself, ++ // don't dispatch any event at all. We only care about the lightweight ++ // children here. ++ if (candidate == nativeContainer) ++ candidate = null; ++ ++ // If our candidate is new, inform the old target we're leaving. ++ if (lastComponentEntered != null ++ && lastComponentEntered.isShowing() ++ && lastComponentEntered != candidate) ++ { ++ // Old candidate could have been removed from ++ // the nativeContainer so we check first. ++ if (SwingUtilities.isDescendingFrom(lastComponentEntered, nativeContainer)) ++ { ++ Point tp = ++ SwingUtilities.convertPoint(nativeContainer, ++ x, y, lastComponentEntered); ++ MouseEvent exited = new MouseEvent (lastComponentEntered, ++ MouseEvent.MOUSE_EXITED, ++ me.getWhen (), ++ me.getModifiersEx (), ++ tp.x, tp.y, ++ me.getClickCount (), ++ me.isPopupTrigger (), ++ me.getButton ()); ++ lastComponentEntered.dispatchEvent (exited); ++ } ++ lastComponentEntered = null; ++ } ++ // If we have a candidate, maybe enter it. + if (candidate != null) +- { +- // Possibly set new state. ++ { ++ mouseEventTarget = candidate; + if (candidate.isLightweight() ++ && candidate.isShowing() + && candidate != nativeContainer +- && candidate != mouseEventTarget) +- { +- +- mouseEventTarget = candidate; +- +- int nx = x - mouseEventTarget.getX (); +- int ny = y - mouseEventTarget.getY (); +- +- // If acquired, enter it. +- MouseEvent entered = new MouseEvent (mouseEventTarget, ++ && candidate != lastComponentEntered) ++ { ++ lastComponentEntered = mouseEventTarget; ++ Point cp = SwingUtilities.convertPoint(nativeContainer, ++ x, y, lastComponentEntered); ++ MouseEvent entered = new MouseEvent (lastComponentEntered, + MouseEvent.MOUSE_ENTERED, + me.getWhen (), +- me.getModifiers (), +- nx, ny, ++ me.getModifiersEx (), ++ cp.x, cp.y, + me.getClickCount (), + me.isPopupTrigger (), + me.getButton ()); +- mouseEventTarget.dispatchEvent (entered); ++ lastComponentEntered.dispatchEvent (entered); + } +- } ++ } ++ ++ if (me.getID() == MouseEvent.MOUSE_RELEASED ++ || me.getID() == MouseEvent.MOUSE_PRESSED && pressCount > 0 ++ || me.getID() == MouseEvent.MOUSE_DRAGGED) ++ // If any of the following events occur while a button is held down, ++ // they should be dispatched to the same component to which the ++ // original MOUSE_PRESSED event was dispatched: ++ // - MOUSE_RELEASED ++ // - MOUSE_PRESSED: another button pressed while the first is held down ++ // - MOUSE_DRAGGED ++ if (SwingUtilities.isDescendingFrom(pressedComponent, nativeContainer)) ++ mouseEventTarget = pressedComponent; ++ else if (me.getID() == MouseEvent.MOUSE_CLICKED) ++ { ++ // Don't dispatch CLICKED events whose target is not the same as the ++ // target for the original PRESSED event. ++ if (candidate != pressedComponent) ++ mouseEventTarget = null; ++ else if (pressCount == 0) ++ pressedComponent = null; ++ } + } + +- boolean handleEvent (AWTEvent e) ++ boolean handleEvent(AWTEvent e) + { +- if ((eventMask & e.getID ()) == 0) +- return false; +- + if (e instanceof MouseEvent) +- { ++ { + MouseEvent me = (MouseEvent) e; +- acquireComponentForMouseEvent (me); + +- if (mouseEventTarget != null) ++ acquireComponentForMouseEvent(me); ++ ++ // Avoid dispatching ENTERED and EXITED events twice. ++ if (mouseEventTarget != null ++ && mouseEventTarget.isShowing() ++ && e.getID() != MouseEvent.MOUSE_ENTERED ++ && e.getID() != MouseEvent.MOUSE_EXITED) + { +- Component oldSource = (Component) me.getSource (); +- me.setSource (mouseEventTarget); +- mouseEventTarget.dispatchEvent (me); +- me.setSource (oldSource); ++ MouseEvent newEvt = ++ SwingUtilities.convertMouseEvent(nativeContainer, me, ++ mouseEventTarget); ++ mouseEventTarget.dispatchEvent(newEvt); ++ ++ switch (e.getID()) ++ { ++ case MouseEvent.MOUSE_PRESSED: ++ if (pressCount++ == 0) ++ pressedComponent = mouseEventTarget; ++ break; ++ ++ case MouseEvent.MOUSE_RELEASED: ++ // Clear our memory of the original PRESSED event, only if ++ // we're not expecting a CLICKED event after this. If ++ // there is a CLICKED event after this, it will do clean up. ++ if (--pressCount == 0 ++ && mouseEventTarget != pressedComponent) ++ pressedComponent = null; ++ break; ++ } ++ if (newEvt.isConsumed()) ++ e.consume(); + } +- } +- else if (e instanceof KeyEvent && focus != null) +- { +- focus.processKeyEvent ((KeyEvent) e); +- } +- ++ } ++ + return e.isConsumed(); + } + +Index: java/awt/ContainerOrderFocusTraversalPolicy.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/ContainerOrderFocusTraversalPolicy.java,v +retrieving revision 1.5 +diff -u -r1.5 ContainerOrderFocusTraversalPolicy.java +--- java/awt/ContainerOrderFocusTraversalPolicy.java 24 Mar 2003 13:50:32 -0000 1.5 ++++ java/awt/ContainerOrderFocusTraversalPolicy.java 6 Sep 2004 16:35:43 -0000 +@@ -41,7 +41,23 @@ + import java.io.Serializable; + + /** ++ * ContainerOrderFocusTraversalPolicy defines a focus traversal order ++ * based on the order in which Components were packed in a Container. ++ * This policy performs a pre-order traversal of the Component ++ * hierarchy starting from a given focus cycle root. Portions of the ++ * hierarchy that are not visible and displayable are skipped. ++ * ++ * By default, this policy transfers focus down-cycle implicitly. ++ * That is, if a forward traversal is requested on a focus cycle root ++ * and the focus cycle root has focusable children, the focus will ++ * automatically be transfered down to the lower focus cycle. ++ * ++ * The default implementation of accept accepts only Components that ++ * are visible, displayable, enabled and focusable. Derived classes ++ * can override these acceptance criteria by overriding accept. ++ * + * @author Michael Koch ++ * @author Thomas Fitzsimmons + * @since 1.4 + */ + public class ContainerOrderFocusTraversalPolicy extends FocusTraversalPolicy +@@ -52,12 +68,15 @@ + */ + static final long serialVersionUID = 486933713763926351L; + ++ /** ++ * True if implicit down cycling is enabled. ++ */ + private boolean implicitDownCycleTraversal = true; + + /** + * Creates the ContainerOrderFocusTraversalPolicy object. + */ +- public ContainerOrderFocusTraversalPolicy() ++ public ContainerOrderFocusTraversalPolicy () + { + // Nothing to do here + } +@@ -66,37 +85,196 @@ + * Returns the Component that should receive the focus after current. + * root must be a focus cycle root of current. + * ++ * @param root a focus cycle root of current ++ * @param current a (possibly indirect) child of root, or root itself ++ * ++ * @return the next Component in the focus traversal order for root, ++ * or null if no acceptable Component exists. ++ * + * @exception IllegalArgumentException If root is not a focus cycle + * root of current, or if either root or current is null. + */ +- public Component getComponentAfter(Container root, Component current) ++ public Component getComponentAfter (Container root, Component current) + { +- if (root == null +- || current == null) +- throw new IllegalArgumentException (); +- +- return null; ++ if (root == null) ++ throw new IllegalArgumentException ("focus cycle root is null"); ++ if (current == null) ++ throw new IllegalArgumentException ("current component is null"); ++ ++ if (!root.isFocusCycleRoot ()) ++ throw new IllegalArgumentException ("root is not a focus cycle root"); ++ ++ Container ancestor = current.getFocusCycleRootAncestor (); ++ Container prevAncestor = ancestor; ++ while (ancestor != root) ++ { ++ ancestor = current.getFocusCycleRootAncestor (); ++ if (ancestor == prevAncestor) ++ { ++ // We've reached the top focus cycle root ancestor. Check ++ // if it is root. ++ if (ancestor != root) ++ throw new IllegalArgumentException ("the given container is not" ++ + " a focus cycle root of the" ++ + " current component"); ++ else ++ break; ++ } ++ prevAncestor = ancestor; ++ } ++ ++ // FIXME: is this the right thing to do here? It moves the context ++ // for traversal up one focus traversal cycle. We'll need a test ++ // for this. ++ if ((Component) root == current) ++ root = current.getFocusCycleRootAncestor (); ++ ++ // Check if we've reached the top of the component hierarchy. If ++ // so then we want to loop around to the first component in the ++ // focus traversal cycle. ++ if (current instanceof Window) ++ return getFirstComponent ((Container) current); ++ ++ Container parent = current.getParent (); ++ ++ synchronized (parent.getTreeLock ()) ++ { ++ Component[] components = parent.getComponents (); ++ int componentIndex = 0; ++ int numComponents = parent.getComponentCount (); ++ ++ // Find component's index. ++ for (int i = 0; i < numComponents; i++) ++ { ++ if (components[i] == current) ++ componentIndex = i; ++ } ++ ++ // Search forward for the next acceptable component. ++ for (int i = componentIndex + 1; i < numComponents; i++) ++ { ++ if (accept (components[i])) ++ return components[i]; ++ ++ if (components[i] instanceof Container) ++ { ++ Component result = getFirstComponent ((Container) components[i]); ++ ++ if (result != null ++ && implicitDownCycleTraversal) ++ return result; ++ } ++ } ++ ++ // No focusable components after current in its Container. So go ++ // to the next Component after current's Container (parent). ++ Component result = getComponentAfter (root, parent); ++ ++ return result; ++ } + } + + /** +- * Returns the Component that should receive the focus before current. +- * root must be a focus cycle root of current. ++ * Returns the Component that should receive the focus before ++ * current. root must be a focus cycle ++ * root of current. ++ * ++ * @param root a focus cycle root of current ++ * @param current a (possibly indirect) child of root, or root itself ++ * ++ * @return the previous Component in the focus traversal order for ++ * root, or null if no acceptable Component exists. + * + * @exception IllegalArgumentException If root is not a focus cycle + * root of current, or if either root or current is null. + */ +- public Component getComponentBefore(Container root, Component current) ++ public Component getComponentBefore (Container root, Component current) + { +- if (root == null +- || current == null) +- throw new IllegalArgumentException (); ++ if (root == null) ++ throw new IllegalArgumentException ("focus cycle root is null"); ++ if (current == null) ++ throw new IllegalArgumentException ("current component is null"); ++ ++ if (!root.isFocusCycleRoot ()) ++ throw new IllegalArgumentException ("root is not a focus cycle root"); ++ ++ Container ancestor = current.getFocusCycleRootAncestor (); ++ Container prevAncestor = ancestor; ++ while (ancestor != root) ++ { ++ ancestor = current.getFocusCycleRootAncestor (); ++ if (ancestor == prevAncestor) ++ { ++ // We've reached the top focus cycle root ancestor. Check ++ // if it is root. ++ if (ancestor != root) ++ throw new IllegalArgumentException ("the given container is not" ++ + " a focus cycle root of the" ++ + " current component"); ++ else ++ break; ++ } ++ prevAncestor = ancestor; ++ } + +- return null; ++ // FIXME: is this the right thing to do here? It moves the context ++ // for traversal up one focus traversal cycle. We'll need a test ++ // for this. ++ if ((Component) root == current) ++ root = current.getFocusCycleRootAncestor (); ++ ++ // Check if we've reached the top of the component hierarchy. If ++ // so then we want to loop around to the last component in the ++ // focus traversal cycle. ++ if (current instanceof Window) ++ return getLastComponent ((Container) current); ++ ++ Container parent = current.getParent (); ++ ++ synchronized (parent.getTreeLock ()) ++ { ++ Component[] components = parent.getComponents (); ++ int componentIndex = 0; ++ int numComponents = parent.getComponentCount (); ++ ++ // Find component's index. ++ for (int i = 0; i < numComponents; i++) ++ { ++ if (components[i] == current) ++ componentIndex = i; ++ } ++ ++ // Search backward for the next acceptable component. ++ for (int i = componentIndex - 1; i >= 0; i--) ++ { ++ if (accept (components[i])) ++ return components[i]; ++ ++ if (components[i] instanceof Container) ++ { ++ Component result = getLastComponent ((Container) components[i]); ++ ++ if (result != null) ++ return result; ++ } ++ } ++ ++ // No focusable components before current in its Container. So go ++ // to the previous Component before current's Container (parent). ++ Component result = getComponentBefore (root, parent); ++ ++ return result; ++ } + } + + /** + * Returns the first Component of root that should receive the focus. + * ++ * @param root a focus cycle root ++ * ++ * @return the first Component in the focus traversal order for ++ * root, or null if no acceptable Component exists. ++ * + * @exception IllegalArgumentException If root is null. + */ + public Component getFirstComponent(Container root) +@@ -117,18 +295,16 @@ + { + Component component = componentArray [i]; + ++ if (accept (component)) ++ return component; ++ + if (component instanceof Container) + { +- Component result = getLastComponent ((Container) component); ++ Component result = getFirstComponent ((Container) component); + + if (result != null) + return result; + } +- else +- { +- if (accept (component)) +- return component; +- } + } + + return null; +@@ -137,9 +313,14 @@ + /** + * Returns the last Component of root that should receive the focus. + * ++ * @param root a focus cycle root ++ * ++ * @return the last Component in the focus traversal order for ++ * root, or null if no acceptable Component exists. ++ * + * @exception IllegalArgumentException If root is null. + */ +- public Component getLastComponent(Container root) ++ public Component getLastComponent (Container root) + { + if (root == null) + throw new IllegalArgumentException (); +@@ -153,10 +334,13 @@ + + Component[] componentArray = root.getComponents (); + +- for (int i = componentArray.length - 1; i >= 0; i++) ++ for (int i = componentArray.length - 1; i >= 0; i--) + { + Component component = componentArray [i]; + ++ if (accept (component)) ++ return component; ++ + if (component instanceof Container) + { + Component result = getLastComponent ((Container) component); +@@ -164,11 +348,6 @@ + if (result != null) + return result; + } +- else +- { +- if (accept (component)) +- return component; +- } + } + + return null; +@@ -177,28 +356,58 @@ + /** + * Returns the default Component of root that should receive the focus. + * ++ * @param root a focus cycle root ++ * ++ * @return the default Component in the focus traversal order for ++ * root, or null if no acceptable Component exists. ++ * + * @exception IllegalArgumentException If root is null. + */ +- public Component getDefaultComponent(Container root) ++ public Component getDefaultComponent (Container root) + { + return getFirstComponent (root); + } + +- public void setImplicitDownCycleTraversal(boolean value) ++ /** ++ * Set whether or not implicit down cycling is enabled. If it is, ++ * then initiating a forward focus traversal operation onto a focus ++ * cycle root, the focus will be implicitly transferred into the ++ * root container's focus cycle. ++ * ++ * @param value the setting for implicit down cycling ++ */ ++ public void setImplicitDownCycleTraversal (boolean value) + { + implicitDownCycleTraversal = value; + } + +- public boolean getImplicitDownCycleTraversal() ++ /** ++ * Check whether or not implicit down cycling is enabled. If it is, ++ * then initiating a forward focus traversal operation onto a focus ++ * cycle root, the focus will be implicitly transferred into the ++ * root container's focus cycle. ++ * ++ * @return true if the focus will be transferred down-cycle ++ * implicitly ++ */ ++ public boolean getImplicitDownCycleTraversal () + { + return implicitDownCycleTraversal; + } + +- protected boolean accept(Component current) ++ /** ++ * Check whether the given Component is an acceptable target for the ++ * keyboard input focus. ++ * ++ * @param current the Component to check ++ * ++ * @return true if current is acceptable, false otherwise ++ */ ++ protected boolean accept (Component current) + { + return (current.visible +- && current.isDisplayable() ++ && current.isDisplayable () + && current.enabled + && current.focusable); + } +-} // class ContainerOrderFocusTraversalPolicy ++} +Index: java/awt/DefaultFocusTraversalPolicy.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/DefaultFocusTraversalPolicy.java,v +retrieving revision 1.1 +diff -u -r1.1 DefaultFocusTraversalPolicy.java +--- java/awt/DefaultFocusTraversalPolicy.java 9 Aug 2002 04:26:14 -0000 1.1 ++++ java/awt/DefaultFocusTraversalPolicy.java 6 Sep 2004 16:35:43 -0000 +@@ -39,17 +39,71 @@ + package java.awt; + + /** +- * STUB CLASS ONLY ++ * DefaultFocusTraversalPolicy is the default focus traversal policy ++ * used by Containers. ++ * ++ * This policy sharpens ContainerOrderFocusTraversalPolicy's ++ * acceptance criteria, to reject those Components that have ++ * unfocusable peers. Despite this extra strictness, this policy will ++ * always accept a Component that has explicitly been set focusable by ++ * any means. ++ * ++ * This AWT implementation assumes that the peers of the following ++ * Components are not focusable: Canvas, Panel, Label, ScrollPane, ++ * Scrollbar, Window, and any lightweight Component. ++ * ++ * A Component's focusability is independent of the focusability of ++ * its peer. ++ * ++ * @author Thomas Fitzsimmons ++ * @since 1.4 + */ + public class DefaultFocusTraversalPolicy + extends ContainerOrderFocusTraversalPolicy + { +- public DefaultFocusTraversalPolicy() ++ /** ++ * Construct a default focus traversal policy. ++ */ ++ public DefaultFocusTraversalPolicy () + { + } + +- protected boolean accept(Component comp) ++ /** ++ * Check whether a given Component would be acceptable as a focus ++ * owner. The Component must be displayable, visible and enabled to ++ * be acceptable. If the Component's focus traversability has been ++ * overridden, by overriding Component.isFocusTraversable or ++ * Component.isFocusable, or by calling Component.setFocusable, then ++ * the Component will be accepted if it is focusable. If the ++ * Component uses the default focus traversable behaviour, then ++ * comp will always be rejected if it is a Canvas, ++ * Panel, Label, ScrollPane, Scrollbar, Window or lightweight ++ * Component. ++ * ++ * @param comp the Component to check ++ * ++ * @return true if the Component is an acceptable target for ++ * keyboard input focus, false otherwise ++ */ ++ protected boolean accept (Component comp) + { +- throw new Error("not implemented"); ++ if (comp.visible ++ && comp.isDisplayable () ++ && comp.enabled) ++ { ++ if (comp.isFocusTraversableOverridden != 0 ++ && (comp.isFocusTraversable () || comp.isFocusable())) ++ return true; ++ ++ if (!(comp instanceof Canvas ++ || comp instanceof Panel ++ || comp instanceof Label ++ || comp instanceof ScrollPane ++ || comp instanceof Scrollbar ++ || comp instanceof Window ++ || comp.isLightweight ())) ++ return true; ++ } ++ return false; + } +-} // class DefaultFocusTraversalPolicy ++} +Index: java/awt/DefaultKeyboardFocusManager.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/DefaultKeyboardFocusManager.java,v +retrieving revision 1.1 +diff -u -r1.1 DefaultKeyboardFocusManager.java +--- java/awt/DefaultKeyboardFocusManager.java 9 Aug 2002 04:26:14 -0000 1.1 ++++ java/awt/DefaultKeyboardFocusManager.java 6 Sep 2004 16:35:44 -0000 +@@ -38,59 +38,459 @@ + + package java.awt; + +-import java.awt.event.KeyEvent; ++import java.util.*; ++import java.awt.event.*; + +-/** +- * STUB CLASS ONLY +- */ ++// FIXME: finish documentation + public class DefaultKeyboardFocusManager extends KeyboardFocusManager + { +- public DefaultKeyboardFocusManager() ++ /** ++ * This class models a request to delay the dispatch of events that ++ * arrive after a certain time, until a certain component becomes ++ * the focus owner. ++ */ ++ private class EventDelayRequest implements Comparable ++ { ++ /** A {@link java.util.List} of {@link java.awt.event.KeyEvent}s ++ that are being delayed, pending this request's {@link ++ Component} receiving the keyboard focus. */ ++ private LinkedList enqueuedKeyEvents = new LinkedList (); ++ ++ /** An event timestamp. All events that arrive after this time ++ should be queued in the {@link #enqueuedKeyEvents} {@link ++ java.util.List}. */ ++ public long timestamp; ++ /** When this {@link Component} becomes focused, all events ++ between this EventDelayRequest and the next one in will be ++ dispatched from {@link #enqueuedKeyEvents}. */ ++ public Component focusedComp; ++ ++ /** ++ * Construct a new EventDelayRequest. ++ * ++ * @param timestamp events that arrive after this time will be ++ * delayed ++ * @param focusedComp the Component that needs to receive focus ++ * before events are dispatched ++ */ ++ public EventDelayRequest (long timestamp, Component focusedComp) ++ { ++ this.timestamp = timestamp; ++ this.focusedComp = focusedComp; ++ } ++ ++ public int compareTo (Object o) ++ { ++ if (!(o instanceof EventDelayRequest)) ++ throw new ClassCastException (); ++ ++ EventDelayRequest request = (EventDelayRequest) o; ++ ++ if (request.timestamp < timestamp) ++ return -1; ++ else if (request.timestamp == timestamp) ++ return 0; ++ else ++ return 1; ++ } ++ ++ public boolean equals (Object o) ++ { ++ if (!(o instanceof EventDelayRequest) || o == null) ++ return false; ++ ++ EventDelayRequest request = (EventDelayRequest) o; ++ ++ return (request.timestamp == timestamp ++ && request.focusedComp == focusedComp); ++ } ++ ++ public void enqueueEvent (KeyEvent e) ++ { ++ KeyEvent last = (KeyEvent) enqueuedKeyEvents.getLast (); ++ if (last != null && e.getWhen () < last.getWhen ()) ++ throw new RuntimeException ("KeyEvents enqueued out-of-order"); ++ ++ if (e.getWhen () <= timestamp) ++ throw new RuntimeException ("KeyEvents enqueued before starting timestamp"); ++ ++ enqueuedKeyEvents.add (e); ++ } ++ ++ public void dispatchEvents () ++ { ++ int size = enqueuedKeyEvents.size (); ++ for (int i = 0; i < size; i++) ++ { ++ KeyEvent e = (KeyEvent) enqueuedKeyEvents.remove (0); ++ dispatchKeyEvent (e); ++ } ++ } ++ ++ public void discardEvents () ++ { ++ enqueuedKeyEvents.clear (); ++ } ++ } ++ ++ /** The {@link java.util.SortedSet} of current {@link ++ #EventDelayRequest}s. */ ++ private SortedSet delayRequests = new TreeSet (); ++ ++ public DefaultKeyboardFocusManager () + { + } + +- public boolean dispatchEvent(AWTEvent e) ++ public boolean dispatchEvent (AWTEvent e) ++ { ++ if (e instanceof WindowEvent) ++ { ++ Window target = (Window) e.getSource (); ++ ++ if (e.id == WindowEvent.WINDOW_ACTIVATED) ++ setGlobalActiveWindow (target); ++ else if (e.id == WindowEvent.WINDOW_GAINED_FOCUS) ++ setGlobalFocusedWindow (target); ++ else if (e.id != WindowEvent.WINDOW_LOST_FOCUS ++ && e.id != WindowEvent.WINDOW_DEACTIVATED) ++ return false; ++ ++ redispatchEvent(target, e); ++ return true; ++ } ++ else if (e instanceof FocusEvent) ++ { ++ Component target = (Component) e.getSource (); ++ ++ if (e.id == FocusEvent.FOCUS_GAINED) ++ { ++ if (((FocusEvent) e).isTemporary ()) ++ setGlobalFocusOwner (target); ++ else ++ setGlobalPermanentFocusOwner (target); ++ } ++ else if (e.id == FocusEvent.FOCUS_LOST) ++ { ++ // We need to set the window's focus owner here; we can't ++ // set it when the window loses focus because by that time ++ // the previous focus owner has already lost focus ++ // (FOCUS_LOST events are delivered before ++ // WINDOW_LOST_FOCUS events). ++ ++ // Find the target Component's top-level ancestor. ++ Container parent = target.getParent (); ++ ++ while (parent != null ++ && !(parent instanceof Window)) ++ parent = parent.getParent (); ++ ++ Window toplevel = parent == null ? ++ (Window) target : (Window) parent; ++ ++ Component focusOwner = getFocusOwner (); ++ if (focusOwner != null) ++ toplevel.setFocusOwner (focusOwner); ++ ++ if (((FocusEvent) e).isTemporary ()) ++ setGlobalFocusOwner (null); ++ else ++ setGlobalPermanentFocusOwner (null); ++ } ++ ++ redispatchEvent(target, e); ++ ++ return true; ++ } ++ else if (e instanceof KeyEvent) ++ { ++ // Loop through all registered KeyEventDispatchers, giving ++ // each a chance to handle this event. ++ Iterator i = getKeyEventDispatchers().iterator(); ++ ++ while (i.hasNext ()) ++ { ++ KeyEventDispatcher dispatcher = (KeyEventDispatcher) i.next (); ++ if (dispatcher.dispatchKeyEvent ((KeyEvent) e)) ++ return true; ++ } ++ ++ // processKeyEvent checks if this event represents a focus ++ // traversal key stroke. ++ Component focusOwner = getGlobalPermanentFocusOwner (); ++ ++ if (focusOwner != null) ++ processKeyEvent (focusOwner, (KeyEvent) e); ++ ++ if (e.isConsumed ()) ++ return true; ++ ++ if (enqueueKeyEvent ((KeyEvent) e)) ++ // This event was enqueued for dispatch at a later time. ++ return true; ++ else ++ // This event wasn't handled by any of the registered ++ // KeyEventDispatchers, and wasn't enqueued for dispatch ++ // later, so send it to the default dispatcher. ++ return dispatchKeyEvent ((KeyEvent) e); ++ } ++ ++ return false; ++ } ++ ++ private boolean enqueueKeyEvent (KeyEvent e) + { +- throw new Error("not implemented"); ++ Iterator i = delayRequests.iterator (); ++ boolean oneEnqueued = false; ++ while (i.hasNext ()) ++ { ++ EventDelayRequest request = (EventDelayRequest) i.next (); ++ if (e.getWhen () > request.timestamp) ++ { ++ request.enqueueEvent (e); ++ oneEnqueued = true; ++ } ++ } ++ return oneEnqueued; + } +- public boolean dispatchKeyEvent(KeyEvent e) ++ ++ public boolean dispatchKeyEvent (KeyEvent e) + { +- throw new Error("not implemented"); ++ Component focusOwner = getGlobalPermanentFocusOwner (); ++ ++ if (focusOwner != null) ++ redispatchEvent(focusOwner, e); ++ ++ // Loop through all registered KeyEventPostProcessors, giving ++ // each a chance to process this event. ++ Iterator i = getKeyEventPostProcessors().iterator(); ++ ++ while (i.hasNext ()) ++ { ++ KeyEventPostProcessor processor = (KeyEventPostProcessor) i.next (); ++ if (processor.postProcessKeyEvent ((KeyEvent) e)) ++ return true; ++ } ++ ++ // The event hasn't been consumed yet. Check if it is an ++ // MenuShortcut. ++ if (postProcessKeyEvent (e)) ++ return true; ++ ++ // Always return true. ++ return true; + } +- public boolean postProcessKeyEvent(KeyEvent e) ++ ++ public boolean postProcessKeyEvent (KeyEvent e) + { +- throw new Error("not implemented"); ++ // Check if this event represents a menu shortcut. ++ ++ // MenuShortcuts are activated by Ctrl- KeyEvents, only on KEY_PRESSED. ++ int modifiers = e.getModifiersEx (); ++ if (e.getID() == KeyEvent.KEY_PRESSED ++ && (modifiers & KeyEvent.CTRL_DOWN_MASK) != 0) ++ { ++ Window focusedWindow = getGlobalFocusedWindow (); ++ if (focusedWindow instanceof Frame) ++ { ++ MenuBar menubar = ((Frame) focusedWindow).getMenuBar (); ++ ++ if (menubar != null) ++ { ++ // If there's a menubar, loop through all menu items, ++ // checking whether each one has a shortcut, and if ++ // so, whether this key event should activate it. ++ int numMenus = menubar.getMenuCount (); ++ ++ for (int i = 0; i < numMenus; i++) ++ { ++ Menu menu = menubar.getMenu (i); ++ int numItems = menu.getItemCount (); ++ ++ for (int j = 0; j < numItems; j++) ++ { ++ MenuItem item = menu.getItem (j); ++ MenuShortcut shortcut = item.getShortcut (); ++ ++ if (item.isEnabled() && shortcut != null) ++ { ++ // Dispatch a new ActionEvent if: ++ // ++ // a) this is a Shift- KeyEvent, and the ++ // shortcut requires the Shift modifier ++ // ++ // or, b) this is not a Shift- KeyEvent, and the ++ // shortcut does not require the Shift ++ // modifier. ++ if (shortcut.getKey () == e.getKeyCode () ++ && ((shortcut.usesShiftModifier () ++ && (modifiers & KeyEvent.SHIFT_DOWN_MASK) != 0) ++ || (! shortcut.usesShiftModifier () ++ && (modifiers & KeyEvent.SHIFT_DOWN_MASK) == 0))) ++ { ++ item.dispatchEvent (new ActionEvent (item, ++ ActionEvent.ACTION_PERFORMED, ++ item.getActionCommand (), ++ modifiers)); ++ // The event was dispatched. ++ return true; ++ } ++ } ++ } ++ } ++ } ++ } ++ } ++ return false; + } +- public void processKeyEvent(Component comp, KeyEvent e) ++ ++ public void processKeyEvent (Component comp, KeyEvent e) + { +- throw new Error("not implemented"); ++ AWTKeyStroke eventKeystroke = AWTKeyStroke.getAWTKeyStrokeForEvent (e); ++ // For every focus traversal keystroke, we need to also consume ++ // the other two key event types for the same key (e.g. if ++ // KEY_PRESSED TAB is a focus traversal keystroke, we also need to ++ // consume KEY_RELEASED and KEY_TYPED TAB key events). ++ AWTKeyStroke oppositeKeystroke = AWTKeyStroke.getAWTKeyStroke (e.getKeyCode (), ++ e.getModifiersEx (), ++ !(e.id == KeyEvent.KEY_RELEASED)); ++ ++ Set forwardKeystrokes = comp.getFocusTraversalKeys (KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS); ++ Set backwardKeystrokes = comp.getFocusTraversalKeys (KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS); ++ Set upKeystrokes = comp.getFocusTraversalKeys (KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS); ++ Set downKeystrokes = null; ++ if (comp instanceof Container) ++ downKeystrokes = comp.getFocusTraversalKeys (KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS); ++ ++ if (forwardKeystrokes.contains (eventKeystroke)) ++ { ++ focusNextComponent (comp); ++ e.consume (); ++ } ++ else if (backwardKeystrokes.contains (eventKeystroke)) ++ { ++ focusPreviousComponent (comp); ++ e.consume (); ++ } ++ else if (upKeystrokes.contains (eventKeystroke)) ++ { ++ upFocusCycle (comp); ++ e.consume (); ++ } ++ else if (comp instanceof Container ++ && downKeystrokes.contains (eventKeystroke)) ++ { ++ downFocusCycle ((Container) comp); ++ e.consume (); ++ } ++ else if (forwardKeystrokes.contains (oppositeKeystroke) ++ || backwardKeystrokes.contains (oppositeKeystroke) ++ || upKeystrokes.contains (oppositeKeystroke) ++ || (comp instanceof Container && ++ downKeystrokes.contains (oppositeKeystroke))) ++ e.consume (); + } +- protected void enqueueKeyEvents(long after, Component comp) ++ ++ protected void enqueueKeyEvents (long after, Component untilFocused) + { +- throw new Error("not implemented"); ++ delayRequests.add (new EventDelayRequest (after, untilFocused)); + } +- protected void dequeueKeyEvents(long after, Component comp) ++ ++ protected void dequeueKeyEvents (long after, Component untilFocused) + { +- throw new Error("not implemented"); ++ // FIXME: need synchronization on delayRequests and enqueuedKeyEvents. ++ ++ // Remove the KeyEvent with the oldest timestamp, which should be ++ // the first element in the SortedSet. ++ if (after < 0) ++ { ++ int size = delayRequests.size (); ++ if (size > 0) ++ delayRequests.remove (delayRequests.first ()); ++ } ++ else ++ { ++ EventDelayRequest template = new EventDelayRequest (after, untilFocused); ++ if (delayRequests.contains (template)) ++ { ++ EventDelayRequest actual = (EventDelayRequest) delayRequests.tailSet (template).first (); ++ delayRequests.remove (actual); ++ actual.dispatchEvents (); ++ } ++ } + } +- protected void discardKeyEvents(Component comp) ++ ++ protected void discardKeyEvents (Component comp) + { +- throw new Error("not implemented"); ++ // FIXME: need synchronization on delayRequests and enqueuedKeyEvents. ++ ++ Iterator i = delayRequests.iterator (); ++ ++ while (i.hasNext ()) ++ { ++ EventDelayRequest request = (EventDelayRequest) i.next (); ++ ++ if (request.focusedComp == comp ++ || (comp instanceof Container ++ && ((Container) comp).isAncestorOf (request.focusedComp))) ++ request.discardEvents (); ++ } + } +- public void focusPreviousComponent(Component comp) ++ ++ public void focusPreviousComponent (Component comp) + { +- throw new Error("not implemented"); ++ Component focusComp = (comp == null) ? getGlobalFocusOwner () : comp; ++ Container focusCycleRoot = focusComp.getFocusCycleRootAncestor (); ++ FocusTraversalPolicy policy = focusCycleRoot.getFocusTraversalPolicy (); ++ ++ Component previous = policy.getComponentBefore (focusCycleRoot, focusComp); ++ if (previous != null) ++ previous.requestFocusInWindow (); + } +- public void focusNextComponent(Component comp) ++ ++ public void focusNextComponent (Component comp) + { +- throw new Error("not implemented"); ++ Component focusComp = (comp == null) ? getGlobalFocusOwner () : comp; ++ Container focusCycleRoot = focusComp.getFocusCycleRootAncestor (); ++ FocusTraversalPolicy policy = focusCycleRoot.getFocusTraversalPolicy (); ++ ++ Component next = policy.getComponentAfter (focusCycleRoot, focusComp); ++ if (next != null) ++ next.requestFocusInWindow (); + } +- public void upFocusCycle(Component comp) ++ ++ public void upFocusCycle (Component comp) + { +- throw new Error("not implemented"); ++ Component focusComp = (comp == null) ? getGlobalFocusOwner () : comp; ++ Container focusCycleRoot = focusComp.getFocusCycleRootAncestor (); ++ ++ if (focusCycleRoot instanceof Window) ++ { ++ FocusTraversalPolicy policy = focusCycleRoot.getFocusTraversalPolicy (); ++ Component defaultComponent = policy.getDefaultComponent (focusCycleRoot); ++ if (defaultComponent != null) ++ defaultComponent.requestFocusInWindow (); ++ } ++ else ++ { ++ Container parentFocusCycleRoot = focusCycleRoot.getFocusCycleRootAncestor (); ++ ++ focusCycleRoot.requestFocusInWindow (); ++ setGlobalCurrentFocusCycleRoot (parentFocusCycleRoot); ++ } + } +- public void downFocusCycle(Container cont) ++ ++ public void downFocusCycle (Container cont) + { +- throw new Error("not implemented"); ++ if (cont == null) ++ return; ++ ++ if (cont.isFocusCycleRoot (cont)) ++ { ++ FocusTraversalPolicy policy = cont.getFocusTraversalPolicy (); ++ Component defaultComponent = policy.getDefaultComponent (cont); ++ if (defaultComponent != null) ++ defaultComponent.requestFocusInWindow (); ++ setGlobalCurrentFocusCycleRoot (cont); ++ } + } + } // class DefaultKeyboardFocusManager +Index: java/awt/Dialog.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/Dialog.java,v +retrieving revision 1.13 +diff -u -r1.13 Dialog.java +--- java/awt/Dialog.java 13 Jan 2004 02:56:18 -0000 1.13 ++++ java/awt/Dialog.java 6 Sep 2004 16:35:44 -0000 +@@ -123,8 +123,8 @@ + * parent and modality, that is resizable and which has no title. + * + * @param parent The parent frame of this dialog box. +- * @param modal if this dialog box is modal, false +- * otherwise. ++ * @param modal true if this dialog box is modal, ++ * false otherwise. + * + * @exception IllegalArgumentException If the owner's GraphicsConfiguration + * is not from a screen device, or if owner is null. This exception is always +@@ -164,8 +164,8 @@ + * + * @param parent The parent frame of this dialog box. + * @param title The title string for this dialog box. +- * @param modal if this dialog box is modal, false +- * otherwise. ++ * @param modal true if this dialog box is modal, ++ * false otherwise. + * + * @exception IllegalArgumentException If owner is null or + * GraphicsEnvironment.isHeadless() returns true. +@@ -183,8 +183,8 @@ + * + * @param parent The parent frame of this dialog box. + * @param title The title string for this dialog box. +- * @param modal if this dialog box is modal, false +- * otherwise. ++ * @param modal true if this dialog box is modal, ++ * false otherwise. + * @param gc The GraphicsConfiguration object to use. + * + * @exception IllegalArgumentException If owner is null, the +Index: java/awt/Event.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/Event.java,v +retrieving revision 1.9 +diff -u -r1.9 Event.java +--- java/awt/Event.java 10 Nov 2002 00:16:42 -0000 1.9 ++++ java/awt/Event.java 6 Sep 2004 16:35:44 -0000 +@@ -163,7 +163,8 @@ + + protected String paramString () + { +- return "id=" + id + ",x=" + x + ",y=" + y + "target=" + target; ++ return "id=" + id + ",x=" + x + ",y=" + y ++ + ",target=" + target + ",arg=" + arg; + } + + public boolean shiftDown() +Index: java/awt/EventDispatchThread.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/EventDispatchThread.java,v +retrieving revision 1.5 +diff -u -r1.5 EventDispatchThread.java +--- java/awt/EventDispatchThread.java 16 Jan 2004 16:15:49 -0000 1.5 ++++ java/awt/EventDispatchThread.java 6 Sep 2004 16:35:44 -0000 +@@ -67,7 +67,17 @@ + // We are interrupted when we should finish executing + return; + } +- queue.dispatchEvent(evt); ++ ++ KeyboardFocusManager manager; ++ manager = KeyboardFocusManager.getCurrentKeyboardFocusManager (); ++ ++ // Try to dispatch this event to the current keyboard focus ++ // manager. It will dispatch all FocusEvents, all ++ // WindowEvents related to focus, and all KeyEvents, ++ // returning true. Otherwise, it returns false and we ++ // dispatch the event normally. ++ if (!manager.dispatchEvent (evt)) ++ queue.dispatchEvent(evt); + } + catch (InterruptedException ie) + { +Index: java/awt/EventQueue.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/EventQueue.java,v +retrieving revision 1.13 +diff -u -r1.13 EventQueue.java +--- java/awt/EventQueue.java 16 Jan 2004 16:15:49 -0000 1.13 ++++ java/awt/EventQueue.java 6 Sep 2004 16:35:44 -0000 +@@ -161,6 +161,9 @@ + */ + public synchronized void postEvent(AWTEvent evt) + { ++ if (evt == null) ++ throw new NullPointerException(); ++ + if (next != null) + { + next.postEvent(evt); +@@ -231,10 +234,11 @@ + public static void invokeAndWait(Runnable runnable) + throws InterruptedException, InvocationTargetException + { ++ if (isDispatchThread ()) ++ throw new Error("Can't call invokeAndWait from event dispatch thread"); ++ + EventQueue eq = Toolkit.getDefaultToolkit().getSystemEventQueue(); + Thread current = Thread.currentThread(); +- if (current == eq.dispatchThread) +- throw new Error("Can't call invokeAndWait from event dispatch thread"); + + InvocationEvent ie = + new InvocationEvent(eq, runnable, current, true); +@@ -293,8 +297,18 @@ + public static AWTEvent getCurrentEvent() + { + EventQueue eq = Toolkit.getDefaultToolkit().getSystemEventQueue(); +- if (Thread.currentThread() != eq.dispatchThread) +- return null; ++ Thread ct = Thread.currentThread(); ++ ++ /* Find out if this thread is the dispatch thread for any of the ++ EventQueues in the chain */ ++ while (ct != eq.dispatchThread) ++ { ++ // Try next EventQueue, if any ++ if (eq.next == null) ++ return null; // Not an event dispatch thread ++ eq = eq.next; ++ } ++ + return eq.currentEvent; + } + +@@ -348,30 +362,34 @@ + if (prev == null) + throw new EmptyStackException(); + +- // Don't synchronize both this and prev at the same time, or deadlock could +- // occur. ++ /* The order is important here, we must get the prev lock first, ++ or deadlock could occur as callers usually get here following ++ prev's next pointer, and thus obtain prev's lock before trying ++ to get this lock. */ + synchronized (prev) + { +- prev.next = null; +- } ++ prev.next = next; ++ if (next != null) ++ next.prev = prev; + +- synchronized (this) +- { +- int i = next_out; +- while (i != next_in) ++ synchronized (this) + { +- prev.postEvent(queue[i]); +- next_out = i; +- if (++i == queue.length) +- i = 0; ++ int i = next_out; ++ while (i != next_in) ++ { ++ prev.postEvent(queue[i]); ++ next_out = i; ++ if (++i == queue.length) ++ i = 0; ++ } ++ // Empty the queue so it can be reused ++ next_in = 0; ++ next_out = 0; ++ ++ // Tell our EventDispatchThread that it can end execution ++ dispatchThread.interrupt (); ++ dispatchThread = null; + } +- // Empty the queue so it can be reused +- next_in = 0; +- next_out = 0; +- +- // Tell our EventDispatchThread that it can end execution +- dispatchThread.interrupt (); +- dispatchThread = null; + } + } + +Index: java/awt/FileDialog.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/FileDialog.java,v +retrieving revision 1.7 +diff -u -r1.7 FileDialog.java +--- java/awt/FileDialog.java 5 Jan 2004 21:23:12 -0000 1.7 ++++ java/awt/FileDialog.java 6 Sep 2004 16:35:44 -0000 +@@ -41,6 +41,7 @@ + import java.awt.peer.FileDialogPeer; + import java.awt.peer.DialogPeer; + import java.io.FilenameFilter; ++import java.io.Serializable; + + /** + * This class implements a file selection dialog box widget. +@@ -48,7 +49,7 @@ + * @author Aaron M. Renn (arenn@urbanophile.com) + * @author Tom Tromey + */ +-public class FileDialog extends Dialog implements java.io.Serializable ++public class FileDialog extends Dialog implements Serializable + { + + /* +Index: java/awt/Font.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/Font.java,v +retrieving revision 1.16 +diff -u -r1.16 Font.java +--- java/awt/Font.java 31 Dec 2003 08:58:30 -0000 1.16 ++++ java/awt/Font.java 6 Sep 2004 16:35:44 -0000 +@@ -1,5 +1,5 @@ + /* Font.java -- Font object +- Copyright (C) 1999, 2002 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -330,16 +330,20 @@ + } + + public Font (Map attrs) +-{ +- this.peer = getPeerFromToolkit (null, attrs); +-} ++ { ++ this(null, attrs); ++ } + + /* This extra constructor is here to permit ClasspathToolkit and to build + a font with a "logical name" as well as attrs. */ + public Font (String name, Map attrs) +-{ ++ { ++ // If attrs is null, setting it to an empty HashMap will give this ++ // Font default attributes. ++ if (attrs == null) ++ attrs = new HashMap(); + this.peer = getPeerFromToolkit (name, attrs); +-} ++ } + + /*************************************************************************/ + +@@ -646,6 +650,22 @@ + + /** + * Produces a new {@link Font} based on the current font, adjusted to a ++ * new size and style. ++ * ++ * @param style The style of the newly created font. ++ * @param size The size of the newly created font. ++ * ++ * @return A clone of the current font, with the specified size and style. ++ * ++ * @since 1.2 ++ */ ++ public Font deriveFont (int style, float size) ++{ ++ return peer.deriveFont (this, style, size); ++} ++ ++/** ++ * Produces a new {@link Font} based on the current font, adjusted to a + * new size. + * + * @param size The size of the newly created font. +@@ -698,6 +718,27 @@ + } + + /** ++ * Produces a new {@link Font} based on the current font, subjected ++ * to a new affine transformation. ++ * ++ * @param a The transformation to apply. ++ * ++ * @return A clone of the current font, with the specified transform. ++ * ++ * @throws IllegalArgumentException If transformation is ++ * null. ++ * ++ * @since 1.2 ++ */ ++ public Font deriveFont (AffineTransform a) ++{ ++ if (a == null) ++ throw new IllegalArgumentException ("Affine transformation is null"); ++ ++ return peer.deriveFont (this, a); ++} ++ ++/** + * Produces a new {@link Font} based on the current font, adjusted to a + * new set of attributes. + * +@@ -1224,13 +1265,28 @@ + public String + toString() + { +- return(getClass().getName() +- + "(logical=" + getName () +- + ",family=" + getFamily () +- + ",face=" + getFontName () +- + ",style=" + getStyle () +- + ",size=" + getSize () +- + ",transform=" + getTransform () + ")"); ++ String styleString = ""; ++ ++ switch (getStyle ()) ++ { ++ case 0: ++ styleString = "plain"; ++ break; ++ case 1: ++ styleString = "bold"; ++ break; ++ case 2: ++ styleString = "italic"; ++ break; ++ default: ++ styleString = "unknown"; ++ } ++ ++ return getClass ().getName () ++ + "[family=" + getFamily () ++ + ",name=" + getFontName () ++ + ",style=" + styleString ++ + ",size=" + getSize () + "]"; + } + + +Index: java/awt/FontMetrics.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/FontMetrics.java,v +retrieving revision 1.4 +diff -u -r1.4 FontMetrics.java +--- java/awt/FontMetrics.java 22 Jan 2002 22:58:08 -0000 1.4 ++++ java/awt/FontMetrics.java 6 Sep 2004 16:35:44 -0000 +@@ -47,12 +47,12 @@ + * least the following methods: + *

    + *

      +- *
    • getAscent +- *
    • getDescent +- *
    • getLeading() +- *
    • getMaxAdvance() +- *
    • charWidth(char) +- *
    • charsWidth(char[], int, int) ++ *
    • getAscent()
    • ++ *
    • getDescent()
    • ++ *
    • getLeading()
    • ++ *
    • getMaxAdvance()
    • ++ *
    • charWidth(char)
    • ++ *
    • charsWidth(char[], int, int)
    • + *
    + * + * @author Aaron M. Renn (arenn@urbanophile.com) +@@ -195,7 +195,7 @@ + public int + getMaxDescent() + { +- return(getDescent()); ++ return getMaxDecent (); + } + + /*************************************************************************/ +@@ -212,7 +212,7 @@ + public int + getMaxDecent() + { +- return(getMaxDescent()); ++ return getDescent (); + } + + /*************************************************************************/ +@@ -292,8 +292,7 @@ + { + int total_width = 0; + for (int i = offset; i < len; i++) +- total_width = charWidth(buf[i]); +- ++ total_width += charWidth(buf[i]); + return(total_width); + } + +@@ -328,7 +327,12 @@ + public int[] + getWidths() + { +- return(new int[256]); ++ int [] result = new int[256]; ++ for(char i = 0; i < 256; i++) ++ { ++ result[i]= charWidth(i); ++ } ++ return(result); + } + + /*************************************************************************/ +@@ -347,3 +351,4 @@ + + } // class FontMetrics + ++ +Index: java/awt/Frame.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/Frame.java,v +retrieving revision 1.18 +diff -u -r1.18 Frame.java +--- java/awt/Frame.java 19 Sep 2003 19:27:58 -0000 1.18 ++++ java/awt/Frame.java 6 Sep 2004 16:35:44 -0000 +@@ -1,5 +1,5 @@ + /* Frame.java -- AWT toplevel window +- Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2000, 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -50,11 +50,6 @@ + */ + public class Frame extends Window implements MenuContainer + { +- +-/* +- * Static Variables +- */ +- + /** + * Constant for the default cursor. + * @deprecated Replaced by Cursor.DEFAULT_CURSOR instead. +@@ -148,12 +143,6 @@ + // Serialization version constant + private static final long serialVersionUID = 2673458971256075116L; + +-/*************************************************************************/ +- +-/* +- * Instance Variables +- */ +- + /** + * @serial The version of the class data being serialized + * // FIXME: what is this value? +@@ -208,11 +197,10 @@ + */ + private boolean undecorated = false; + +-/*************************************************************************/ +- + /* +- * Constructors ++ * The number used to generate the name returned by getName. + */ ++ private static transient long next_frame_number = 0; + + /** + * Initializes a new instance of Frame that is not visible +@@ -224,8 +212,6 @@ + this(""); + } + +-/*************************************************************************/ +- + /** + * Initializes a new instance of Frame that is not visible + * and has the specified title. +@@ -256,12 +242,6 @@ + visible = false; + } + +-/*************************************************************************/ +- +-/* +- * Instance Methods +- */ +- + /** + * Returns this frame's title string. + * +@@ -273,8 +253,6 @@ + return(title); + } + +-/*************************************************************************/ +- + /* + * Sets this frame's title to the specified value. + * +@@ -288,8 +266,6 @@ + ((FramePeer) peer).setTitle(title); + } + +-/*************************************************************************/ +- + /** + * Returns this frame's icon. + * +@@ -302,8 +278,6 @@ + return(icon); + } + +-/*************************************************************************/ +- + /** + * Sets this frame's icon to the specified value. + * +@@ -317,8 +291,6 @@ + ((FramePeer) peer).setIconImage(icon); + } + +-/*************************************************************************/ +- + /** + * Returns this frame's menu bar. + * +@@ -331,8 +303,6 @@ + return(menuBar); + } + +-/*************************************************************************/ +- + /** + * Sets this frame's menu bar. + * +@@ -341,13 +311,17 @@ + public synchronized void + setMenuBar(MenuBar menuBar) + { +- this.menuBar = menuBar; + if (peer != null) ++ { ++ if (this.menuBar != null) ++ this.menuBar.removeNotify(); ++ if (menuBar != null) ++ menuBar.addNotify(); + ((FramePeer) peer).setMenuBar(menuBar); ++ } ++ this.menuBar = menuBar; + } + +-/*************************************************************************/ +- + /** + * Tests whether or not this frame is resizable. This will be + * true by default. +@@ -361,8 +335,6 @@ + return(resizable); + } + +-/*************************************************************************/ +- + /** + * Sets the resizability of this frame to the specified value. + * +@@ -377,8 +349,6 @@ + ((FramePeer) peer).setResizable(resizable); + } + +-/*************************************************************************/ +- + /** + * Returns the cursor type of the cursor for this window. This will + * be one of the constants in this class. +@@ -393,8 +363,6 @@ + return(getCursor().getType()); + } + +-/*************************************************************************/ +- + /** + * Sets the cursor for this window to the specified type. The specified + * type should be one of the constants in this class. +@@ -409,8 +377,6 @@ + setCursor(new Cursor(type)); + } + +-/*************************************************************************/ +- + /** + * Removes the specified component from this frame's menu. + * +@@ -422,30 +388,60 @@ + menuBar.remove(menu); + } + +-/*************************************************************************/ +- + /** + * Notifies this frame that it should create its native peer. + */ + public void + addNotify() + { ++ if (menuBar != null) ++ menuBar.addNotify(); + if (peer == null) + peer = getToolkit ().createFrame (this); + super.addNotify(); + } + +-/*************************************************************************/ ++public void removeNotify() ++{ ++ if (menuBar != null) ++ menuBar.removeNotify(); ++ super.removeNotify(); ++} + + /** + * Returns a debugging string describing this window. + * + * @return A debugging string describing this window. + */ +-protected String +-paramString() ++ protected String paramString () + { +- return(getClass().getName()); ++ String title = getTitle (); ++ ++ String resizable = ""; ++ if (isResizable ()) ++ resizable = ",resizable"; ++ ++ String state = ""; ++ switch (getState ()) ++ { ++ case NORMAL: ++ state = ",normal"; ++ break; ++ case ICONIFIED: ++ state = ",iconified"; ++ break; ++ case MAXIMIZED_BOTH: ++ state = ",maximized-both"; ++ break; ++ case MAXIMIZED_HORIZ: ++ state = ",maximized-horiz"; ++ break; ++ case MAXIMIZED_VERT: ++ state = ",maximized-vert"; ++ break; ++ } ++ ++ return super.paramString () + ",title=" + title + resizable + state; + } + + public static Frame[] +@@ -538,5 +534,19 @@ + + this.undecorated = undecorated; + } +-} // class Frame + ++ /** ++ * Generate a unique name for this frame. ++ * ++ * @return A unique name for this frame. ++ */ ++ String generateName () ++ { ++ return "frame" + getUniqueLong (); ++ } ++ ++ private static synchronized long getUniqueLong () ++ { ++ return next_frame_number++; ++ } ++} +Index: java/awt/Graphics.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/Graphics.java,v +retrieving revision 1.6 +diff -u -r1.6 Graphics.java +--- java/awt/Graphics.java 11 Jun 2003 10:37:47 -0000 1.6 ++++ java/awt/Graphics.java 6 Sep 2004 16:35:45 -0000 +@@ -1,5 +1,5 @@ + /* Graphics.java -- Abstract Java drawing class +- Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2000, 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -417,7 +417,7 @@ + drawLine(x1, y2, x1, y1); + setColor(br); + drawLine(x2, y1, x2, y2); +- drawLine(x2, y1, x1, y2); ++ drawLine(x2, y2, x1, y2); + setColor(color); + } + +@@ -732,14 +732,14 @@ + /*************************************************************************/ + + /** +- * Returns a string representation of this object. +- * +- * @param A string representation of this object. +- */ ++ * Returns a string representation of this object. ++ * ++ * @param A string representation of this object. ++ */ + public String + toString() + { +- return(super.toString()); ++ return getClass ().getName () + "[font=" + getFont () + ",color=" + getColor () + "]"; + } + + public boolean +Index: java/awt/GraphicsEnvironment.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/GraphicsEnvironment.java,v +retrieving revision 1.1 +diff -u -r1.1 GraphicsEnvironment.java +--- java/awt/GraphicsEnvironment.java 9 Aug 2002 04:26:14 -0000 1.1 ++++ java/awt/GraphicsEnvironment.java 6 Sep 2004 16:35:45 -0000 +@@ -40,6 +40,7 @@ + + import java.awt.image.BufferedImage; + import java.util.Locale; ++import gnu.java.awt.ClasspathToolkit; + + /** + * This descibes the collection of GraphicsDevice and Font objects available +@@ -70,7 +71,9 @@ + */ + public static GraphicsEnvironment getLocalGraphicsEnvironment() + { +- throw new Error("not implemented"); ++ ClasspathToolkit tk; ++ tk = ((ClasspathToolkit) Toolkit.getDefaultToolkit ()); ++ return tk.getLocalGraphicsEnvironment (); + } + + /** +Index: java/awt/GridBagLayout.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/GridBagLayout.java,v +retrieving revision 1.6 +diff -u -r1.6 GridBagLayout.java +--- java/awt/GridBagLayout.java 14 Nov 2003 22:44:29 -0000 1.6 ++++ java/awt/GridBagLayout.java 6 Sep 2004 16:35:45 -0000 +@@ -39,7 +39,9 @@ + package java.awt; + + import java.io.Serializable; ++import java.util.ArrayList; + import java.util.Hashtable; ++import java.util.HashMap; + + /** + * @author Michael Koch +@@ -54,7 +56,14 @@ + protected static final int PREFERREDSIZE = 2; + protected static final int MAXGRIDSIZE = 512; + ++ // comptable remembers the original contraints given to us. ++ // internalcomptable is used to keep track of modified constraint values ++ // that we calculate, particularly when we are given RELATIVE and ++ // REMAINDER constraints. ++ // Constraints kept in comptable are never modified, and constraints ++ // kept in internalcomptable can be modified internally only. + protected Hashtable comptable; ++ private Hashtable internalcomptable; + protected GridBagLayoutInfo layoutInfo; + protected GridBagConstraints defaultConstraints; + +@@ -66,6 +75,7 @@ + public GridBagLayout () + { + this.comptable = new Hashtable(); ++ this.internalcomptable = new Hashtable(); + this.defaultConstraints= new GridBagConstraints(); + } + +@@ -149,7 +159,7 @@ + + public void layoutContainer (Container parent) + { +- arrangeGrid (parent); ++ arrangeGrid (parent); + } + + public float getLayoutAlignmentX (Container target) +@@ -213,6 +223,20 @@ + return result; + } + ++ private GridBagConstraints lookupInternalConstraints (Component component) ++ { ++ GridBagConstraints result = ++ (GridBagConstraints) internalcomptable.get (component); ++ ++ if (result == null) ++ { ++ result = (GridBagConstraints) lookupConstraints(component).clone(); ++ internalcomptable.put (component, result); ++ } ++ ++ return result; ++ } ++ + /** + * @since 1.1 + */ +@@ -302,7 +326,8 @@ + */ + protected void AdjustForGravity (GridBagConstraints gbc, Rectangle rect) + { +- adjustForGravity (gbc, rect); ++ // FIXME ++ throw new Error ("Not implemented"); + } + + /** +@@ -310,7 +335,116 @@ + */ + protected void ArrangeGrid (Container parent) + { +- arrangeGrid (parent); ++ Component[] components = parent.getComponents(); ++ ++ if (components.length == 0) ++ return; ++ ++ GridBagLayoutInfo info = getLayoutInfo (parent, PREFERREDSIZE); ++ if (info.cols == 0 && info.rows == 0) ++ return; ++ layoutInfo = info; ++ ++ // DEBUG ++ //dumpLayoutInfo (layoutInfo); ++ ++ for(int i = 0; i < components.length; i++) ++ { ++ Component component = components [i]; ++ ++ // If component is not visible we dont have to care about it. ++ if (!component.isVisible()) ++ continue; ++ ++ GridBagConstraints constraints = ++ lookupInternalConstraints(component); ++ ++ int cellx = sumIntArray(layoutInfo.colWidths, constraints.gridx); ++ int celly = sumIntArray(layoutInfo.rowHeights, constraints.gridy); ++ int cellw = sumIntArray(layoutInfo.colWidths, ++ constraints.gridx + constraints.gridwidth) - cellx; ++ int cellh = sumIntArray(layoutInfo.rowHeights, ++ constraints.gridy + constraints.gridheight) - celly; ++ ++ Insets insets = constraints.insets; ++ if (insets != null) ++ { ++ cellx += insets.left; ++ celly += insets.top; ++ cellw -= insets.left + insets.right; ++ cellh -= insets.top + insets.bottom; ++ } ++ ++ Dimension dim = component.getPreferredSize(); ++ ++ // Note: Documentation says that padding is added on both sides, but ++ // visual inspection shows that the Sun implementation only adds it ++ // once, so we do the same. ++ dim.width += constraints.ipadx; ++ dim.height += constraints.ipady; ++ ++ switch(constraints.fill) ++ { ++ case GridBagConstraints.HORIZONTAL: ++ dim.width = cellw; ++ break; ++ case GridBagConstraints.VERTICAL: ++ dim.height = cellh; ++ break; ++ case GridBagConstraints.BOTH: ++ dim.width = cellw; ++ dim.height = cellh; ++ break; ++ } ++ ++ int x; ++ int y; ++ ++ switch(constraints.anchor) ++ { ++ case GridBagConstraints.NORTH: ++ x = cellx + (cellw - dim.width) / 2; ++ y = celly; ++ break; ++ case GridBagConstraints.SOUTH: ++ x = cellx + (cellw - dim.width) / 2; ++ y = celly + cellh - dim.height; ++ break; ++ case GridBagConstraints.WEST: ++ x = cellx; ++ y = celly + (cellh - dim.height) / 2; ++ break; ++ case GridBagConstraints.EAST: ++ x = cellx + cellw - dim.width; ++ y = celly + (cellh - dim.height) / 2; ++ break; ++ case GridBagConstraints.NORTHEAST: ++ x = cellx + cellw - dim.width; ++ y = celly; ++ break; ++ case GridBagConstraints.NORTHWEST: ++ x = cellx; ++ y = celly; ++ break; ++ case GridBagConstraints.SOUTHEAST: ++ x = cellx + cellw - dim.width; ++ y = celly + cellh - dim.height; ++ break; ++ case GridBagConstraints.SOUTHWEST: ++ x = cellx; ++ y = celly + cellh - dim.height; ++ break; ++ default: ++ x = cellx + (cellw - dim.width) / 2; ++ y = celly + (cellh - dim.height) / 2; ++ break; ++ } ++ ++ component.setBounds(layoutInfo.pos_x + x, layoutInfo.pos_y + y, dim.width, dim.height); ++ } ++ ++ // DEBUG ++ //dumpLayoutInfo (layoutInfo); + } + + /** +@@ -318,7 +452,369 @@ + */ + protected GridBagLayoutInfo GetLayoutInfo (Container parent, int sizeflag) + { +- return getLayoutInfo (parent, sizeflag); ++ if (sizeflag != MINSIZE && sizeflag != PREFERREDSIZE) ++ throw new IllegalArgumentException(); ++ ++ Dimension parentDim = parent.getSize (); ++ Insets parentInsets = parent.getInsets (); ++ parentDim.width -= parentInsets.left + parentInsets.right; ++ parentDim.height -= parentInsets.top + parentInsets.bottom; ++ ++ int current_y = 0; ++ int max_x = 0; ++ int max_y = 0; ++ ++ // Guaranteed to contain the last component added to the given row ++ // or column, whose gridwidth/height is not REMAINDER. ++ HashMap lastInRow = new HashMap(); ++ HashMap lastInCol = new HashMap(); ++ ++ Component[] components = parent.getComponents(); ++ ++ // Components sorted by gridwidths/heights, ++ // smallest to largest, with REMAINDER and RELATIVE at the end. ++ // These are useful when determining sizes and weights. ++ ArrayList sortedByWidth = new ArrayList(components.length); ++ ArrayList sortedByHeight = new ArrayList(components.length); ++ ++ // STEP 1: first we figure out how many rows/columns ++ for (int i = 0; i < components.length; i++) ++ { ++ Component component = components [i]; ++ ++ // If component is not visible we dont have to care about it. ++ if (!component.isVisible()) ++ continue; ++ ++ // When looking up the constraint for the first time, check the ++ // original unmodified constraint. After the first time, always ++ // refer to the internal modified constraint. ++ GridBagConstraints originalConstraints = lookupConstraints (component); ++ GridBagConstraints constraints = (GridBagConstraints) originalConstraints.clone(); ++ internalcomptable.put(component, constraints); ++ ++ // Cases: ++ // ++ // 1. gridy == RELATIVE, gridx == RELATIVE ++ // ++ // use y as the row number; check for the next ++ // available slot at row y ++ // ++ // 2. only gridx == RELATIVE ++ // ++ // check for the next available slot at row gridy ++ // ++ // 3. only gridy == RELATIVE ++ // ++ // check for the next available slot at column gridx ++ // ++ // 4. neither gridx or gridy == RELATIVE ++ // ++ // nothing to check; just add it ++ ++ ++ // cases 1 and 2 ++ if(constraints.gridx == GridBagConstraints.RELATIVE) ++ { ++ if (constraints.gridy == GridBagConstraints.RELATIVE) ++ constraints.gridy = current_y; ++ ++ int x; ++ ++ // Check the component that occupies the right-most spot in this ++ // row. We want to add this component after it. ++ // If this row is empty, add to the 0 position. ++ if (!lastInRow.containsKey(new Integer(constraints.gridy))) ++ x = 0; ++ else ++ { ++ Component lastComponent = (Component) lastInRow.get(new Integer(constraints.gridy)); ++ GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent); ++ x = lastConstraints.gridx + Math.max(1, lastConstraints.gridwidth); ++ } ++ ++ // Determine if this component will fit in the slot vertically. ++ // If not, bump it over to where it does fit. ++ for (int y = constraints.gridy + 1; y < constraints.gridy + Math.max(1, constraints.gridheight); y++) ++ { ++ if (lastInRow.containsKey(new Integer(y))) ++ { ++ Component lastComponent = (Component) lastInRow.get(new Integer(y)); ++ GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent); ++ x = Math.max (x, ++ lastConstraints.gridx + Math.max(1, lastConstraints.gridwidth)); ++ } ++ } ++ ++ constraints.gridx = x; ++ } ++ // case 3 ++ else if(constraints.gridy == GridBagConstraints.RELATIVE) ++ { ++ int y; ++ // Check the component that occupies the bottom-most spot in ++ // this column. We want to add this component below it. ++ // If this column is empty, add to the 0 position. ++ if (!lastInCol.containsKey(new Integer(constraints.gridx))) ++ y = 0; ++ else ++ { ++ Component lastComponent = (Component)lastInCol.get(new Integer(constraints.gridx)); ++ GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent); ++ y = lastConstraints.gridy + Math.max(1, lastConstraints.gridheight); ++ } ++ ++ // Determine if this component will fit in the slot horizontally. ++ // If not, bump it down to where it does fit. ++ for (int x = constraints.gridx + 1; x < constraints.gridx + Math.max(1, constraints.gridwidth); x++) ++ { ++ if (lastInCol.containsKey(new Integer(x))) ++ { ++ Component lastComponent = (Component) lastInCol.get(new Integer(x)); ++ GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent); ++ y = Math.max (y, ++ lastConstraints.gridy + Math.max(1, lastConstraints.gridheight)); ++ } ++ } ++ ++ constraints.gridy = y; ++ } ++ // case 4: do nothing ++ ++ max_x = Math.max(max_x, ++ constraints.gridx + Math.max(1, constraints.gridwidth)); ++ max_y = Math.max(max_y, ++ constraints.gridy + Math.max(1, constraints.gridheight)); ++ ++ sortBySpan(component, constraints.gridwidth, sortedByWidth, true); ++ sortBySpan(component, constraints.gridheight, sortedByHeight, false); ++ ++ // Update our reference points for RELATIVE gridx and gridy. ++ if(constraints.gridwidth == GridBagConstraints.REMAINDER) ++ { ++ current_y = constraints.gridy + Math.max(1, constraints.gridheight); ++ } ++ else if (constraints.gridwidth != GridBagConstraints.REMAINDER) ++ { ++ for (int y = constraints.gridy; y < constraints.gridy + Math.max(1, constraints.gridheight); y++) ++ { ++ if(lastInRow.containsKey(new Integer(y))) ++ { ++ Component lastComponent = (Component) lastInRow.get(new Integer(y)); ++ GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent); ++ if (constraints.gridx > lastConstraints.gridx) ++ { ++ lastInRow.put(new Integer(y), component); ++ } ++ } ++ else ++ { ++ lastInRow.put(new Integer(y), component); ++ } ++ } ++ ++ for (int x = constraints.gridx; x < constraints.gridx + Math.max(1, constraints.gridwidth); x++) ++ { ++ if(lastInCol.containsKey(new Integer(x))) ++ { ++ Component lastComponent = (Component) lastInCol.get(new Integer(x)); ++ GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent); ++ if (constraints.gridy > lastConstraints.gridy) ++ { ++ lastInCol.put(new Integer(x), component); ++ } ++ } ++ else ++ { ++ lastInCol.put(new Integer(x), component); ++ } ++ } ++ } ++ } // end of STEP 1 ++ ++ GridBagLayoutInfo info = new GridBagLayoutInfo(max_x, max_y); ++ ++ // Check if column widths and row heights are overridden. ++ ++ for (int x = 0; x < max_x; x++) ++ { ++ if(columnWidths != null && columnWidths.length > x) ++ info.colWidths[x] = columnWidths[x]; ++ if(columnWeights != null && columnWeights.length > x) ++ info.colWeights[x] = columnWeights[x]; ++ } ++ ++ for (int y = 0; y < max_y; y++) ++ { ++ if(rowHeights != null && rowHeights.length > y) ++ info.rowHeights[y] = rowHeights[y]; ++ if(rowWeights != null && rowWeights.length > y) ++ info.rowWeights[y] = rowWeights[y]; ++ } ++ ++ // STEP 2: Fix up any cells with width/height as REMAINDER/RELATIVE. ++ for (int i = 0; i < components.length; i++) ++ { ++ Component component = components [i]; ++ ++ // If component is not visible we dont have to care about it. ++ if (!component.isVisible()) ++ continue; ++ ++ GridBagConstraints constraints = lookupInternalConstraints (component); ++ ++ if(constraints.gridwidth == GridBagConstraints.REMAINDER || constraints.gridwidth == GridBagConstraints.RELATIVE) ++ { ++ if(constraints.gridwidth == GridBagConstraints.REMAINDER) ++ { ++ for (int y = constraints.gridy; y < constraints.gridy + Math.max(1, constraints.gridheight); y++) ++ { ++ if (lastInRow.containsKey(new Integer(y))) ++ { ++ Component lastComponent = (Component) lastInRow.get(new Integer(y)); ++ GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent); ++ ++ if (lastConstraints.gridwidth == GridBagConstraints.RELATIVE) ++ { ++ constraints.gridx = max_x - 1; ++ break; ++ } ++ else ++ { ++ constraints.gridx = Math.max (constraints.gridx, ++ lastConstraints.gridx + Math.max (1, lastConstraints.gridwidth)); ++ } ++ } ++ } ++ constraints.gridwidth = max_x - constraints.gridx; ++ } ++ else if (constraints.gridwidth == GridBagConstraints.RELATIVE) ++ { ++ constraints.gridwidth = max_x - constraints.gridx - 1; ++ } ++ ++ // Re-sort ++ sortedByWidth.remove(sortedByWidth.indexOf(component)); ++ sortBySpan(component, constraints.gridwidth, sortedByWidth, true); ++ } ++ ++ if(constraints.gridheight == GridBagConstraints.REMAINDER || constraints.gridheight == GridBagConstraints.RELATIVE) ++ { ++ if(constraints.gridheight == GridBagConstraints.REMAINDER) ++ { ++ for (int x = constraints.gridx; x < constraints.gridx + Math.max(1, constraints.gridwidth); x++) ++ { ++ if (lastInCol.containsKey(new Integer(x))) ++ { ++ Component lastComponent = (Component) lastInRow.get(new Integer(x)); ++ GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent); ++ ++ if (lastConstraints.gridheight == GridBagConstraints.RELATIVE) ++ { ++ constraints.gridy = max_y - 1; ++ break; ++ } ++ else ++ { ++ constraints.gridy = Math.max (constraints.gridy, ++ lastConstraints.gridy + Math.max (1, lastConstraints.gridheight)); ++ } ++ } ++ } ++ constraints.gridheight = max_y - constraints.gridy; ++ } ++ else if (constraints.gridheight == GridBagConstraints.RELATIVE) ++ { ++ constraints.gridheight = max_y - constraints.gridy - 1; ++ } ++ ++ // Re-sort ++ sortedByHeight.remove(sortedByHeight.indexOf(component)); ++ sortBySpan(component, constraints.gridheight, sortedByHeight, false); ++ } ++ } // end of STEP 2 ++ ++ // STEP 3: Determine sizes and weights for columns. ++ for (int i = 0; i < sortedByWidth.size(); i++) ++ { ++ Component component = (Component) sortedByWidth.get(i); ++ ++ // If component is not visible we dont have to care about it. ++ if (!component.isVisible()) ++ continue; ++ ++ GridBagConstraints constraints = lookupInternalConstraints (component); ++ ++ int width = (sizeflag == PREFERREDSIZE) ? ++ component.getPreferredSize().width : ++ component.getMinimumSize().width; ++ ++ if(constraints.insets != null) ++ width += constraints.insets.left + constraints.insets.right; ++ ++ width += constraints.ipadx; ++ ++ distributeSizeAndWeight(width, ++ constraints.weightx, ++ constraints.gridx, ++ constraints.gridwidth, ++ info.colWidths, ++ info.colWeights); ++ } // end of STEP 3 ++ ++ // STEP 4: Determine sizes and weights for rows. ++ for (int i = 0; i < sortedByHeight.size(); i++) ++ { ++ Component component = (Component) sortedByHeight.get(i); ++ ++ // If component is not visible we dont have to care about it. ++ if (!component.isVisible()) ++ continue; ++ ++ GridBagConstraints constraints = lookupInternalConstraints (component); ++ ++ int height = (sizeflag == PREFERREDSIZE) ? ++ component.getPreferredSize().height : ++ component.getMinimumSize().height; ++ ++ if(constraints.insets != null) ++ height += constraints.insets.top + constraints.insets.bottom; ++ ++ height += constraints.ipady; ++ ++ distributeSizeAndWeight(height, ++ constraints.weighty, ++ constraints.gridy, ++ constraints.gridheight, ++ info.rowHeights, ++ info.rowWeights); ++ } // end of STEP 4 ++ ++ // Adjust cell sizes iff parent size not zero. ++ if (parentDim.width > 0 && parentDim.height > 0) ++ { ++ calcCellSizes (info.colWidths, info.colWeights, parentDim.width); ++ calcCellSizes (info.rowHeights, info.rowWeights, parentDim.height); ++ } ++ ++ int totalWidth = sumIntArray(info.colWidths); ++ int totalHeight = sumIntArray(info.rowHeights); ++ ++ // Make sure pos_x and pos_y are never negative. ++ if (totalWidth >= parentDim.width) ++ info.pos_x = parentInsets.left; ++ else ++ info.pos_x = parentInsets.left + (parentDim.width - totalWidth) / 2; ++ ++ if (totalHeight >= parentDim.height) ++ info.pos_y = parentInsets.top; ++ else ++ info.pos_y = parentInsets.top + (parentDim.height - totalHeight) / 2; ++ ++ // DEBUG ++ //dumpLayoutInfo (info); ++ ++ return info; + } + + /** +@@ -326,7 +822,13 @@ + */ + protected Dimension GetMinSize (Container parent, GridBagLayoutInfo info) + { +- return getMinSize (parent, info); ++ if (parent == null || info == null) ++ return new Dimension (0, 0); ++ ++ Insets insets = parent.getInsets(); ++ int width = sumIntArray (info.colWidths) + insets.left + insets.right; ++ int height = sumIntArray (info.rowHeights) + insets.top + insets.bottom; ++ return new Dimension (width, height); + } + + /** +@@ -334,31 +836,171 @@ + */ + protected Dimension getMinSize (Container parent, GridBagLayoutInfo info) + { +- if (parent == null || info == null) +- return new Dimension (0, 0); ++ return GetMinSize (parent, info); ++ } ++ ++ /** ++ * Helper method used by GetLayoutInfo to keep components sorted, either ++ * by gridwidth or gridheight. ++ * ++ * @param component Component to add to the sorted list. ++ * @param span Either the component's gridwidth or gridheight. ++ * @param list ArrayList of components, sorted by ++ * their span. ++ * @param sortByWidth Flag indicating sorting index. If true, sort by ++ * width. Otherwise, sort by height. ++ * FIXME: Use a better sorting algorithm. ++ */ ++ private void sortBySpan (Component component, int span, ArrayList list, boolean sortByWidth) ++ { ++ if (span == GridBagConstraints.REMAINDER ++ || span == GridBagConstraints.RELATIVE) ++ { ++ // Put all RELATIVE and REMAINDER components at the end. ++ list.add(component); ++ } ++ else ++ { ++ int i = 0; ++ if (list.size() > 0) ++ { ++ GridBagConstraints gbc = lookupInternalConstraints((Component) list.get(i)); ++ int otherspan = sortByWidth ? ++ gbc.gridwidth : ++ gbc.gridheight; ++ while (otherspan != GridBagConstraints.REMAINDER ++ && otherspan != GridBagConstraints.RELATIVE ++ && span >= otherspan) ++ { ++ i++; ++ if (i < list.size()) ++ { ++ gbc = lookupInternalConstraints((Component) list.get(i)); ++ otherspan = sortByWidth ? ++ gbc.gridwidth : ++ gbc.gridheight; ++ } ++ else ++ break; ++ } ++ } ++ list.add(i, component); ++ } ++ } ++ ++ /** ++ * Helper method used by GetLayoutInfo to distribute a component's size ++ * and weight. ++ * ++ * @param size Preferred size of component, with inset and padding ++ * already added. ++ * @param weight Weight of component. ++ * @param start Starting position of component. Either ++ * constraints.gridx or gridy. ++ * @param span Span of component. either contraints.gridwidth or ++ * gridheight. ++ * @param sizes Sizes of rows or columns. ++ * @param weights Weights of rows or columns. ++ */ ++ private void distributeSizeAndWeight (int size, double weight, ++ int start, int span, ++ int[] sizes, double[] weights) ++ { ++ if (span == 1) ++ { ++ sizes[start] = Math.max(sizes[start], size); ++ weights[start] = Math.max(weights[start], weight); ++ } ++ else ++ { ++ int numOccupied = span; ++ int lastOccupied = -1; ++ ++ for(int i = start; i < start + span; i++) ++ { ++ if (sizes[i] == 0.0) ++ numOccupied--; ++ else ++ { ++ size -= sizes[i]; ++ lastOccupied = i; ++ } ++ } ++ ++ // A component needs to occupy at least one row. ++ if(numOccupied == 0) ++ sizes[start + span - 1] = size; ++ else if (size > 0) ++ sizes[lastOccupied] += size; + +- Insets insets = parent.getInsets(); +- int width = sumIntArray (info.colWidths) + insets.left + insets.right; +- int height = sumIntArray (info.rowHeights) + insets.top + insets.bottom; +- return new Dimension (width, height); ++ calcCellWeights(weight, weights, start, span); ++ } + } + ++ /** ++ * Helper method used by GetLayoutInfo to calculate weight distribution. ++ * @param weight Weight of component. ++ * @param weights Weights of rows/columns. ++ * @param start Starting position of component in grid (gridx/gridy). ++ * @param span Span of component (gridwidth/gridheight). ++ */ ++ private void calcCellWeights (double weight, double[] weights, int start, int span) ++ { ++ double totalWeight = 0.0; ++ for(int k = start; k < start + span; k++) ++ totalWeight += weights[k]; ++ ++ if(weight > totalWeight) ++ { ++ if (totalWeight == 0.0) ++ { ++ weights[start + span - 1] += weight; ++ } ++ else ++ { ++ double diff = weight - totalWeight ; ++ double remaining = diff; ++ ++ for(int k = start; k < start + span; k++) ++ { ++ double extraWeight = diff * weights[k] / totalWeight; ++ weights[k] += extraWeight; ++ remaining -= extraWeight; ++ } ++ ++ if (remaining > 0.0 && weights[start + span - 1] != 0.0) ++ { ++ weights[start + span - 1] += remaining; ++ } ++ } ++ } ++ } ++ ++ /** ++ * Helper method used by GetLayoutInfo to distribute extra space ++ * based on weight distribution. ++ * ++ * @param sizes Sizes of rows/columns. ++ * @param weights Weights of rows/columns. ++ * @param range Dimension of container. ++ */ + private void calcCellSizes (int[] sizes, double[] weights, int range) + { +- int diff = range - sumIntArray (sizes); ++ int totalSize = sumIntArray (sizes); ++ double totalWeight = sumDoubleArray (weights); + +- if (diff == 0) +- return; +- +- double weight = sumDoubleArray (weights); ++ int diff = range - totalSize; + +- for (int i = 0; i < sizes.length; i++) +- { +- sizes [i] += (int) (((double) diff) * weights [i] / weight ); ++ if (diff == 0) ++ return; + +- if (sizes [i] < 0) +- sizes [i] = 0; +- } ++ for (int i = 0; i < sizes.length; i++) ++ { ++ int newsize = (int) (sizes[i] + (((double) diff) * weights [i] / totalWeight )); ++ ++ if (newsize > 0) ++ sizes[i] = newsize; ++ } + } + + private void dumpLayoutInfo (GridBagLayoutInfo info) +@@ -404,116 +1046,7 @@ + */ + protected void arrangeGrid (Container parent) + { +- Component[] components = parent.getComponents(); +- +- if (components.length == 0) +- return; +- +- GridBagLayoutInfo info = getLayoutInfo (parent, PREFERREDSIZE); +- if (info.cols == 0 && info.rows == 0) +- return; +- layoutInfo = info; +- +- // DEBUG +- //dumpLayoutInfo (layoutInfo); +- +- for(int i = 0; i < components.length; i++) +- { +- Component component = components [i]; +- +- // If component is not visible we dont have to care about it. +- if (!component.isVisible()) +- continue; +- +- GridBagConstraints constraints = lookupConstraints (component); +- +- int cellx = sumIntArray(layoutInfo.colWidths, constraints.gridx); +- int celly = sumIntArray(layoutInfo.rowHeights, constraints.gridy); +- int cellw = sumIntArray(layoutInfo.colWidths, +- constraints.gridx + constraints.gridwidth) - cellx; +- int cellh = sumIntArray(layoutInfo.rowHeights, +- constraints.gridy + constraints.gridheight) - celly; +- +- Insets insets = constraints.insets; +- if (insets != null) +- { +- cellx += insets.left; +- celly += insets.top; +- cellw -= insets.left + insets.right; +- cellh -= insets.top + insets.bottom; +- } +- +- Dimension dim = component.preferredSize(); +- +- // Note: Documentation says that padding is added on both sides, but +- // visual inspection shows that the Sun implementation only adds it +- // once, so we do the same. +- dim.width += constraints.ipadx; +- dim.height += constraints.ipady; +- +- switch(constraints.fill) +- { +- case GridBagConstraints.HORIZONTAL: +- dim.width = cellw; +- break; +- case GridBagConstraints.VERTICAL: +- dim.height = cellh; +- break; +- case GridBagConstraints.BOTH: +- dim.width = cellw; +- dim.height = cellh; +- break; +- } +- +- int x; +- int y; +- +- switch(constraints.anchor) +- { +- case GridBagConstraints.NORTH: +- x = cellx + (cellw - dim.width) / 2; +- y = celly; +- break; +- case GridBagConstraints.SOUTH: +- x = cellx + (cellw - dim.width) / 2; +- y = celly + cellh - dim.height; +- break; +- case GridBagConstraints.WEST: +- x = cellx; +- y = celly + (cellh - dim.height) / 2; +- break; +- case GridBagConstraints.EAST: +- x = cellx + cellw - dim.width; +- y = celly + (cellh - dim.height) / 2; +- break; +- case GridBagConstraints.NORTHEAST: +- x = cellx + cellw - dim.width; +- y = celly; +- break; +- case GridBagConstraints.NORTHWEST: +- x = cellx; +- y = celly; +- break; +- case GridBagConstraints.SOUTHEAST: +- x = cellx + cellw - dim.width; +- y = celly + cellh - dim.height; +- break; +- case GridBagConstraints.SOUTHWEST: +- x = cellx; +- y = celly + cellh - dim.height; +- break; +- default: +- x = cellx + (cellw - dim.width) / 2; +- y = celly + (cellh - dim.height) / 2; +- break; +- } +- +- component.setBounds(layoutInfo.pos_x + x, layoutInfo.pos_y + y, dim.width, dim.height); +- } +- +- // DEBUG +- //dumpLayoutInfo (layoutInfo); +- ++ ArrangeGrid (parent); + } + + /** +@@ -521,160 +1054,7 @@ + */ + protected GridBagLayoutInfo getLayoutInfo (Container parent, int sizeflag) + { +- if (sizeflag != MINSIZE && sizeflag != PREFERREDSIZE) +- throw new IllegalArgumentException(); +- +- Dimension parentDim = parent.size(); +- Insets parentInsets = parent.insets(); +- parentDim.width -= parentInsets.left + parentInsets.right; +- parentDim.height -= parentInsets.top + parentInsets.bottom; +- +- int x = 0; +- int y = 0; +- int max_x = 0; +- int max_y = 0; +- +- // first we figure out how many rows/columns +- Component[] components = parent.getComponents(); +- for (int i = 0; i < components.length; i++) +- { +- Component component = components [i]; +- +- // If component is not visible we dont have to care about it. +- if (!component.isVisible()) +- continue; +- +- GridBagConstraints constraints = lookupConstraints (component); +- +- if(constraints.gridx == GridBagConstraints.RELATIVE) +- constraints.gridx = x; +- +- if(constraints.gridy == GridBagConstraints.RELATIVE) +- constraints.gridy = y; +- +- max_x = Math.max(max_x, +- constraints.gridx + Math.max(1, constraints.gridwidth)); +- max_y = Math.max(max_y, +- constraints.gridy + Math.max(1, constraints.gridheight)); +- +- if(constraints.gridwidth == GridBagConstraints.REMAINDER) +- { +- x = 0; +- y++; +- } +- else +- { +- x = constraints.gridx + Math.max(1, constraints.gridwidth); +- y = constraints.gridy; +- } +- } +- +- GridBagLayoutInfo info = new GridBagLayoutInfo(max_x, max_y); +- +- for (x = 0; x <= max_x; x++) +- { +- if(columnWidths != null && columnWidths.length > x) +- { +- info.colWidths[x] = columnWidths[x]; +- } +- if(columnWeights != null && columnWeights.length > x) +- { +- info.colWeights[x] = columnWeights[x]; +- } +- for (int i = 0; i < components.length; i++) +- { +- Component component = components [i]; +- +- // If component is not visible we dont have to care about it. +- if (!component.isVisible()) +- continue; +- +- GridBagConstraints constraints = lookupConstraints (component); +- +- // first we fix up any REMAINDER cells +- if(constraints.gridwidth == GridBagConstraints.REMAINDER) +- { +- constraints.gridwidth = max_x - constraints.gridx; +- } +- if(constraints.gridheight == GridBagConstraints.REMAINDER) +- { +- constraints.gridheight = max_y - constraints.gridy; +- } +- +- if(constraints.gridx + constraints.gridwidth - 1 == x) +- { +- int width = (sizeflag == PREFERREDSIZE) ? +- component.preferredSize().width : +- component.minimumSize().width; +- if(constraints.insets != null) +- { +- width += constraints.insets.left + constraints.insets.right; +- } +- width += constraints.ipadx; +- for(int w = 1; w < constraints.gridwidth; w++) +- { +- width -= info.colWidths[x - w]; +- } +- info.colWidths[x] = Math.max(info.colWidths[x], width); +- info.colWeights[x] = +- Math.max(info.colWeights[x], constraints.weightx); +- } +- } +- } +- +- for (y = 0; y <= max_y; y++) +- { +- if(rowHeights != null && rowHeights.length > y) +- { +- info.rowHeights[y] = rowHeights[y]; +- } +- if(rowWeights != null && rowWeights.length > y) +- { +- info.rowWeights[y] = rowWeights[y]; +- } +- for (int i = 0; i < components.length; i++) +- { +- Component component = components [i]; +- +- // If component is not visible we dont have to care about it. +- if (!component.isVisible()) +- continue; +- +- GridBagConstraints constraints = lookupConstraints (component); +- +- if(constraints.gridy + constraints.gridheight - 1 == y) +- { +- int height = (sizeflag == PREFERREDSIZE) ? +- component.preferredSize().height : +- component.minimumSize().height; +- if(constraints.insets != null) +- { +- height += constraints.insets.top + constraints.insets.bottom; +- } +- height += constraints.ipady; +- for(int h = 1; h < constraints.gridheight; h++) +- { +- height -= info.rowHeights[y - h]; +- } +- info.rowHeights[y] = Math.max(info.rowHeights[y], height); +- info.rowWeights[y] = +- Math.max(info.rowWeights[y], constraints.weighty); +- } +- } +- } +- +- calcCellSizes (info.colWidths, info.colWeights, parentDim.width); +- calcCellSizes (info.rowHeights, info.rowWeights, parentDim.height); +- +- int totalWidth = sumIntArray(info.colWidths); +- int totalHeight = sumIntArray(info.rowHeights); +- info.pos_x = parentInsets.left + (parentDim.width - totalWidth) / 2; +- info.pos_y = parentInsets.top + (parentDim.height - totalHeight) / 2; +- +- // DEBUG +- //dumpLayoutInfo (info); +- +- return info; ++ return GetLayoutInfo (parent, sizeflag); + } + + /** +@@ -682,7 +1062,6 @@ + */ + protected void adjustForGravity (GridBagConstraints gbc, Rectangle rect) + { +- // FIXME +- throw new Error ("Not implemented"); ++ AdjustForGravity (gbc, rect); + } + } +Index: java/awt/Image.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/Image.java,v +retrieving revision 1.6 +diff -u -r1.6 Image.java +--- java/awt/Image.java 9 Aug 2002 04:26:14 -0000 1.6 ++++ java/awt/Image.java 6 Sep 2004 16:35:45 -0000 +@@ -39,6 +39,7 @@ + package java.awt; + + import java.awt.image.AreaAveragingScaleFilter; ++import java.awt.image.FilteredImageSource; + import java.awt.image.ImageObserver; + import java.awt.image.ImageProducer; + import java.awt.image.ReplicateScaleFilter; +@@ -179,7 +180,20 @@ + */ + public Image getScaledInstance(int width, int height, int flags) + { +- throw new Error("not implemented"); ++ switch (flags) ++ { ++ case SCALE_DEFAULT: ++ case SCALE_FAST: ++ case SCALE_REPLICATE: ++ ImageProducer producer = ++ new FilteredImageSource(this.getSource(), ++ new ReplicateScaleFilter(width, height)); ++ return Toolkit.getDefaultToolkit().createImage(producer); ++ case SCALE_SMOOTH: ++ case SCALE_AREA_AVERAGING: ++ default: ++ throw new Error("not implemented"); ++ } + } + + /** +Index: java/awt/KeyboardFocusManager.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/KeyboardFocusManager.java,v +retrieving revision 1.2 +diff -u -r1.2 KeyboardFocusManager.java +--- java/awt/KeyboardFocusManager.java 13 Feb 2003 07:02:12 -0000 1.2 ++++ java/awt/KeyboardFocusManager.java 6 Sep 2004 16:35:45 -0000 +@@ -39,34 +39,66 @@ + package java.awt; + + import java.awt.event.KeyEvent; ++import java.awt.event.FocusEvent; + import java.beans.PropertyChangeListener; + import java.beans.PropertyChangeSupport; + import java.beans.PropertyVetoException; + import java.beans.VetoableChangeListener; + import java.beans.VetoableChangeSupport; + import java.util.ArrayList; ++import java.util.Collection; + import java.util.Collections; ++import java.util.HashMap; + import java.util.HashSet; + import java.util.Iterator; + import java.util.List; ++import java.util.Map; + import java.util.Set; + ++// FIXME: finish documentation ++ + /** + * ++ * FIXME: discuss applet contexts and thread groups and codebases ++ * being insulated. ++ * ++ * FIXME: discuss where default focus traversal key sets apply ++ * (inherited by child Components etc.) ++ * + * @author Eric Blake ++ * @author Thomas Fitzsimmons + * @since 1.4 + * @status partially updated to 1.4, needs documentation. + */ + public abstract class KeyboardFocusManager + implements KeyEventDispatcher, KeyEventPostProcessor + { ++ /** Identifies {@link AWTKeyStroke}s that move the focus forward in ++ the focus cycle. */ + public static final int FORWARD_TRAVERSAL_KEYS = 0; ++ ++ /** Identifies {@link AWTKeyStroke}s that move the focus backward in ++ the focus cycle. */ + public static final int BACKWARD_TRAVERSAL_KEYS = 1; ++ ++ /** Identifies {@link AWTKeyStroke}s that move the focus up to the ++ parent focus cycle root. */ + public static final int UP_CYCLE_TRAVERSAL_KEYS = 2; ++ ++ /** Identifies {@link AWTKeyStroke}s that move the focus down to the ++ child focus cycle root. */ + public static final int DOWN_CYCLE_TRAVERSAL_KEYS = 3; + ++ /** The set of {@link AWTKeyStroke}s that cause focus to be moved to ++ the next focusable Component in the focus cycle. */ + private static final Set DEFAULT_FORWARD_KEYS; ++ ++ /** The set of {@link AWTKeyStroke}s that cause focus to be moved to ++ the previous focusable Component in the focus cycle. */ + private static final Set DEFAULT_BACKWARD_KEYS; ++ ++ /** Populate the DEFAULT_FORWARD_KEYS and DEFAULT_BACKWARD_KEYS ++ {@link java.util.Set}s. */ + static + { + Set s = new HashSet(); +@@ -83,232 +115,405 @@ + DEFAULT_BACKWARD_KEYS = Collections.unmodifiableSet(s); + } + +- private static KeyboardFocusManager current +- = new DefaultKeyboardFocusManager(); +- +- // XXX Not implemented correctly. I think a good implementation here may +- // be to have permanentFocusOwner be null, and fall back to focusOwner, +- // unless a temporary focus change is in effect. +- private static Component focusOwner; +- private static Component permanentFocusOwner; +- +- private static Window focusedWindow; +- private static Window activeWindow; +- private static Container focusCycleRoot; ++ /** The global object {@link java.util.Map}s. */ + ++ /** For security reasons, {@link java.applet.Applet}s in different ++ codebases must be insulated from one another. Since {@link ++ KeyboardFocusManager}s have the ability to return {@link ++ Component}s from a given {@link java.applet.Applet}, each ++ codebase must have an independent {@link KeyboardFocusManager}. ++ Since each codebase has its own {@link ThreadGroup} in which its ++ {@link Applet}s run, it makes sense to partition {@link ++ KeyboardFocusManager}s according to {@link ++ java.lang.ThreadGroup}. Thus, currentKeyboardFocusManagers is a ++ {@link java.util.Map} keyed on {@link java.lang.ThreadGroup}. */ ++ private static Map currentKeyboardFocusManagers = new HashMap (); ++ ++ /** {@link java.applet.Applet}s in one codebase must not be allowed ++ to access {@link Component}s in {@link java.applet.Applet}s in ++ other codebases. To enforce this restriction, we key the ++ following {@link java.util.Map}s on {@link java.lang.ThreadGroup}s (which ++ are per-codebase). For example, if {@link ++ java.lang.ThreadGroup} A calls {@link #setGlobalFocusOwner}, ++ passing {@link Component} C, currentFocusOwners[A] is assigned ++ C, and all other currentFocusOwners values are nullified. Then ++ if {@link java.lang.ThreadGroup} A subsequently calls {@link ++ #getGlobalFocusOwner}, it will return currentFocusOwners[A], ++ that is, {@link Component} C. If another {@link ++ java.lang.ThreadGroup} K calls {@link #getGlobalFocusOwner}, it ++ will return currentFocusOwners[K], that is, null. ++ ++ Since this is a static field, we ensure that there is only one ++ focused {@link Component} per class loader. */ ++ private static Map currentFocusOwners = new HashMap (); ++ ++ /** A {@link java.util.Map} keyed on {@link java.lang.ThreadGroup}s ++ that stores the {@link Component} that owns the permanent ++ keyboard focus. @see currentFocusOwners */ ++ private static Map currentPermanentFocusOwners = new HashMap (); ++ ++ /** A {@link java.util.Map} keyed on {@link java.lang.ThreadGroup}s ++ that stores the focused {@link Window}. @see ++ currentFocusOwners */ ++ private static Map currentFocusedWindows = new HashMap (); ++ ++ /** A {@link java.util.Map} keyed on {@link java.lang.ThreadGroup}s ++ that stores the active {@link Window}. @see ++ currentFocusOwners */ ++ private static Map currentActiveWindows = new HashMap (); ++ ++ /** A {@link java.util.Map} keyed on {@link java.lang.ThreadGroup}s ++ that stores the focus cycle root {@link Container}. @see ++ currentFocusOwners */ ++ private static Map currentFocusCycleRoots = new HashMap (); ++ ++ /** The default {@link FocusTraveralPolicy} that focus-managing ++ {@link Container}s will use to define their initial focus ++ traversal policy. */ + private FocusTraversalPolicy defaultPolicy; +- private Set[] defaultFocusKeys = new Set[] { ++ ++ /** An array that stores the {@link #FORWARD_TRAVERSAL_KEYS}, {@link ++ #BACKWARD_TRAVERSAL_KEYS}, {@link #UP_CYCLE_TRAVERSAL_KEYS} and ++ {@link #DOWN_CYCLE_TRAVERSAL_KEYS} {@link AWTKeyStroke}s {@link ++ java.util.Set}s. */ ++ private Set[] defaultFocusKeys = new Set[] ++ { + DEFAULT_FORWARD_KEYS, DEFAULT_BACKWARD_KEYS, + Collections.EMPTY_SET, Collections.EMPTY_SET + }; + +- private final PropertyChangeSupport propertyChangeSupport +- = new PropertyChangeSupport(this); +- private final VetoableChangeSupport vetoableChangeSupport +- = new VetoableChangeSupport(this); ++ private final PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport (this); ++ private final VetoableChangeSupport vetoableChangeSupport = new VetoableChangeSupport (this); ++ ++ /** A list of {@link KeyEventDispatcher}s that process {@link ++ KeyEvent}s before they are processed the default keyboard focus ++ manager. */ + private final ArrayList keyEventDispatchers = new ArrayList(); +- private final ArrayList keyEventPostProcessors = new ArrayList(); + +- +- public KeyboardFocusManager() +- { +- } ++ /** A list of {@link KeyEventPostProcessor}s that process unconsumed ++ {@link KeyEvent}s. */ ++ private final ArrayList keyEventPostProcessors = new ArrayList(); + +- public static KeyboardFocusManager getCurrentKeyboardFocusManager() ++ /** ++ * Construct a KeyboardFocusManager. ++ */ ++ public KeyboardFocusManager () + { +- // XXX Need a way to divide this into contexts. +- return current; + } + +- public static void setCurrentKeyboardFocusManager(KeyboardFocusManager m) ++ /** ++ * Retrieve the keyboard focus manager associated with the {@link ++ * java.lang.ThreadGroup} to which the calling thread belongs. ++ * ++ * @return the keyboard focus manager associated with the current ++ * thread group ++ */ ++ public static KeyboardFocusManager getCurrentKeyboardFocusManager () ++ { ++ ThreadGroup currentGroup = Thread.currentThread ().getThreadGroup (); ++ return (KeyboardFocusManager) currentKeyboardFocusManagers.get (currentGroup); ++ } ++ ++ /** ++ * Set the keyboard focus manager associated with the {@link ++ * java.lang.ThreadGroup} to which the calling thread belongs. ++ * ++ * @param m the keyboard focus manager for the current thread group ++ */ ++ public static void setCurrentKeyboardFocusManager (KeyboardFocusManager m) + { +- SecurityManager sm = System.getSecurityManager(); ++ SecurityManager sm = System.getSecurityManager (); + if (sm != null) +- sm.checkPermission(new AWTPermission("replaceKeyboardFocusManager")); +- // XXX Need a way to divide this into contexts. +- current = m == null ? new DefaultKeyboardFocusManager() : m; +- } ++ sm.checkPermission (new AWTPermission ("replaceKeyboardFocusManager")); + +- public Component getFocusOwner() +- { +- // XXX Need an easy way to test if this thread is in the context of the +- // global focus owner, to avoid creating the exception in the first place. +- try +- { +- return getGlobalFocusOwner(); +- } +- catch (SecurityException e) +- { +- return null; +- } +- } +- +- protected Component getGlobalFocusOwner() +- { +- // XXX Need a way to test if this thread is in the context of the focus +- // owner, and throw a SecurityException if that is the case. +- // XXX Implement. +- return focusOwner; +- } ++ ThreadGroup currentGroup = Thread.currentThread ().getThreadGroup (); ++ KeyboardFocusManager manager; + +- protected void setGlobalFocusOwner(Component owner) ++ if (m == null) ++ manager = new DefaultKeyboardFocusManager (); ++ else ++ manager = m; ++ ++ currentKeyboardFocusManagers.put (currentGroup, manager); ++ } ++ ++ /** ++ * Retrieve the {@link Component} that has the keyboard focus, or ++ * null if the focus owner was not set by a thread in the current ++ * {@link java.lang.ThreadGroup}. ++ * ++ * @return the keyboard focus owner or null ++ */ ++ public Component getFocusOwner () ++ { ++ Component owner = (Component) getObject (currentFocusOwners); ++ if (owner == null) ++ owner = (Component) getObject (currentPermanentFocusOwners); ++ return owner; ++ } ++ ++ /** ++ * Retrieve the {@link Component} that has the keyboard focus, ++ * regardless of whether or not it was set by a thread in the ++ * current {@link java.lang.ThreadGroup}. If there is no temporary ++ * focus owner in effect then this method will return the same value ++ * as {@link #getGlobalPermanentFocusOwner}. ++ * ++ * @return the keyboard focus owner ++ * @throws SecurityException if this is not the keyboard focus ++ * manager associated with the current {@link java.lang.ThreadGroup} ++ */ ++ protected Component getGlobalFocusOwner () ++ { ++ // Check if there is a temporary focus owner. ++ Component focusOwner = (Component) getGlobalObject (currentFocusOwners); ++ ++ return (focusOwner == null) ? getGlobalPermanentFocusOwner () : focusOwner; ++ } ++ ++ /** ++ * Set the {@link Component} that will be returned by {@link ++ * #getFocusOwner} (when it is called from the current {@link ++ * java.lang.ThreadGroup}) and {@link #getGlobalFocusOwner}. This ++ * method does not actually transfer the keyboard focus. ++ * ++ * @param owner the Component to return from getFocusOwner and ++ * getGlobalFocusOwner ++ * ++ * @see Component.requestFocus () ++ * @see Component.requestFocusInWindow () ++ */ ++ protected void setGlobalFocusOwner (Component owner) + { +- // XXX Should this send focus events to the components involved? + if (owner == null || owner.focusable) +- { +- firePropertyChange("focusOwner", focusOwner, owner); +- try +- { +- fireVetoableChange("focusOwner", focusOwner, owner); +- focusOwner = owner; +- } +- catch (PropertyVetoException e) +- { +- } +- } ++ setGlobalObject (currentFocusOwners, owner, "focusOwner"); + } + +- public void clearGlobalFocusOwner() ++ /** ++ * Clear the global focus owner and deliver a FOCUS_LOST event to ++ * the previously-focused {@link Component}. Until another {@link ++ * Component} becomes the keyboard focus owner, key events will be ++ * discarded by top-level windows. ++ */ ++ public void clearGlobalFocusOwner () + { +- // XXX Is this enough? +- setGlobalFocusOwner(null); +- } +- +- public Component getPermanentFocusOwner() +- { +- // XXX Need an easy way to test if this thread is in the context of the +- // global focus owner, to avoid creating the exception in the first place. +- try ++ synchronized (currentFocusOwners) + { +- return getGlobalPermanentFocusOwner(); +- } +- catch (SecurityException e) +- { +- return null; +- } +- } ++ Component focusOwner = getGlobalFocusOwner (); ++ Component permanentFocusOwner = getGlobalPermanentFocusOwner (); + +- protected Component getGlobalPermanentFocusOwner() +- { +- // XXX Need a way to test if this thread is in the context of the focus +- // owner, and throw a SecurityException if that is the case. +- // XXX Implement. +- return permanentFocusOwner == null ? focusOwner : permanentFocusOwner; +- } ++ setGlobalFocusOwner (null); ++ setGlobalPermanentFocusOwner (null); + +- protected void setGlobalPermanentFocusOwner(Component focusOwner) +- { +- // XXX Should this send focus events to the components involved? +- if (focusOwner == null || focusOwner.focusable) +- { +- firePropertyChange("permanentFocusOwner", permanentFocusOwner, +- focusOwner); +- try ++ // Inform the old focus owner that it has lost permanent ++ // focus. ++ if (focusOwner != null) + { +- fireVetoableChange("permanentFocusOwner", permanentFocusOwner, +- focusOwner); +- permanentFocusOwner = focusOwner; ++ // We can't cache the event queue, because of ++ // bootstrapping issues. We need to set the default ++ // KeyboardFocusManager in EventQueue before the event ++ // queue is started. ++ EventQueue q = Toolkit.getDefaultToolkit ().getSystemEventQueue (); ++ if (focusOwner != permanentFocusOwner) ++ q.postEvent (new FocusEvent (focusOwner, FocusEvent.FOCUS_LOST, true)); ++ else ++ q.postEvent (new FocusEvent (focusOwner, FocusEvent.FOCUS_LOST, false)); + } +- catch (PropertyVetoException e) ++ ++ if (focusOwner != permanentFocusOwner) + { ++ EventQueue q = Toolkit.getDefaultToolkit ().getSystemEventQueue (); ++ q.postEvent (new FocusEvent (permanentFocusOwner, FocusEvent.FOCUS_LOST, false)); + } + } + } + +- public Window getFocusedWindow() ++ /** ++ * Retrieve the {@link Component} that has the permanent keyboard ++ * focus, or null if the focus owner was not set by a thread in the ++ * current {@link java.lang.ThreadGroup}. ++ * ++ * @return the keyboard focus owner or null ++ */ ++ public Component getPermanentFocusOwner () ++ { ++ return (Component) getObject (currentPermanentFocusOwners); ++ } ++ ++ /** ++ * Retrieve the {@link Component} that has the permanent keyboard ++ * focus, regardless of whether or not it was set by a thread in the ++ * current {@link java.lang.ThreadGroup}. ++ * ++ * @return the keyboard focus owner ++ * @throws SecurityException if this is not the keyboard focus ++ * manager associated with the current {@link java.lang.ThreadGroup} ++ */ ++ protected Component getGlobalPermanentFocusOwner () ++ { ++ return (Component) getGlobalObject (currentPermanentFocusOwners); ++ } ++ ++ /** ++ * Set the {@link Component} that will be returned by {@link ++ * #getPermanentFocusOwner} (when it is called from the current ++ * {@link java.lang.ThreadGroup}) and {@link ++ * #getGlobalPermanentFocusOwner}. This method does not actually ++ * transfer the keyboard focus. ++ * ++ * @param focusOwner the Component to return from ++ * getPermanentFocusOwner and getGlobalPermanentFocusOwner ++ * ++ * @see Component.requestFocus () ++ * @see Component.requestFocusInWindow () ++ */ ++ protected void setGlobalPermanentFocusOwner (Component focusOwner) + { +- // XXX Need an easy way to test if this thread is in the context of the +- // global focus owner, to avoid creating the exception in the first place. +- try +- { +- return getGlobalFocusedWindow(); +- } +- catch (SecurityException e) +- { +- return null; +- } +- } +- +- protected Window getGlobalFocusedWindow() +- { +- // XXX Need a way to test if this thread is in the context of the focus +- // owner, and throw a SecurityException if that is the case. +- // XXX Implement. +- return focusedWindow; ++ if (focusOwner == null || focusOwner.focusable) ++ setGlobalObject (currentPermanentFocusOwners, focusOwner, ++ "permanentFocusOwner"); + } + +- protected void setGlobalFocusedWindow(Window window) ++ /** ++ * Retrieve the {@link Window} that is or contains the keyboard ++ * focus owner, or null if the focused window was not set by a ++ * thread in the current {@link java.lang.ThreadGroup}. ++ * ++ * @return the focused window or null ++ */ ++ public Window getFocusedWindow () ++ { ++ return (Window) getObject (currentFocusedWindows); ++ } ++ ++ /** ++ * Retrieve the {@link Window} that is or contains the focus owner, ++ * regardless of whether or not the {@link Window} was set focused ++ * by a thread in the current {@link java.lang.ThreadGroup}. ++ * ++ * @return the focused window ++ * @throws SecurityException if this is not the keyboard focus ++ * manager associated with the current {@link java.lang.ThreadGroup} ++ */ ++ protected Window getGlobalFocusedWindow () ++ { ++ return (Window) getGlobalObject (currentFocusedWindows); ++ } ++ ++ /** ++ * Set the {@link Window} that will be returned by {@link ++ * #getFocusedWindow} (when it is called from the current {@link ++ * java.lang.ThreadGroup}) and {@link #getGlobalFocusedWindow}. ++ * This method does not actually cause window to become ++ * the focused {@link Window}. ++ * ++ * @param window the Window to return from getFocusedWindow and ++ * getGlobalFocusedWindow ++ */ ++ protected void setGlobalFocusedWindow (Window window) + { +- // XXX Should this send focus events to the windows involved? + if (window == null || window.focusable) +- { +- firePropertyChange("focusedWindow", focusedWindow, window); +- try +- { +- fireVetoableChange("focusedWindow", focusedWindow, window); +- focusedWindow = window; +- } +- catch (PropertyVetoException e) +- { +- } +- } ++ setGlobalObject (currentFocusedWindows, window, "focusedWindow"); + } + ++ /** ++ * Retrieve the active {@link Window}, or null if the active window ++ * was not set by a thread in the current {@link ++ * java.lang.ThreadGroup}. ++ * ++ * @return the active window or null ++ */ + public Window getActiveWindow() + { +- // XXX Need an easy way to test if this thread is in the context of the +- // global focus owner, to avoid creating the exception in the first place. +- try +- { +- return getGlobalActiveWindow(); +- } +- catch (SecurityException e) +- { +- return null; +- } ++ return (Window) getObject (currentActiveWindows); + } + ++ /** ++ * Retrieve the active {@link Window}, regardless of whether or not ++ * the {@link Window} was made active by a thread in the current ++ * {@link java.lang.ThreadGroup}. ++ * ++ * @return the active window ++ * @throws SecurityException if this is not the keyboard focus ++ * manager associated with the current {@link java.lang.ThreadGroup} ++ */ + protected Window getGlobalActiveWindow() + { +- // XXX Need a way to test if this thread is in the context of the focus +- // owner, and throw a SecurityException if that is the case. +- // XXX Implement. +- return activeWindow; ++ return (Window) getGlobalObject (currentActiveWindows); + } + ++ /** ++ * Set the {@link Window} that will be returned by {@link ++ * #getActiveWindow} (when it is called from the current {@link ++ * java.lang.ThreadGroup}) and {@link #getGlobalActiveWindow}. This ++ * method does not actually cause window to be made ++ * active. ++ * ++ * @param window the Window to return from getActiveWindow and ++ * getGlobalActiveWindow ++ */ + protected void setGlobalActiveWindow(Window window) + { +- // XXX Should this send focus events to the windows involved? +- firePropertyChange("activeWindow", activeWindow, window); +- try +- { +- fireVetoableChange("activeWindow", activeWindow, window); +- activeWindow = window; +- } +- catch (PropertyVetoException e) +- { +- } ++ setGlobalObject (currentActiveWindows, window, "activeWindow"); + } + +- public FocusTraversalPolicy getDefaultFocusTraversalPolicy() ++ /** ++ * Retrieve the default {@link FocusTraversalPolicy}. ++ * Focus-managing {@link Container}s use the returned object to ++ * define their initial focus traversal policy. ++ * ++ * @return a non-null default FocusTraversalPolicy object ++ */ ++ public FocusTraversalPolicy getDefaultFocusTraversalPolicy () + { + if (defaultPolicy == null) +- defaultPolicy = new DefaultFocusTraversalPolicy(); ++ defaultPolicy = new DefaultFocusTraversalPolicy (); + return defaultPolicy; + } + +- public void setDefaultFocusTraversalPolicy(FocusTraversalPolicy policy) ++ /** ++ * Set the {@link FocusTraversalPolicy} returned by {@link ++ * #getDefaultFocusTraversalPolicy}. Focus-managing {@link ++ * Container}s created after this call will use policy as their ++ * initial focus traversal policy. Existing {@link Container}s' ++ * focus traversal policies will not be affected by calls to this ++ * method. ++ * ++ * @param policy the FocusTraversalPolicy that will be returned by ++ * subsequent calls to getDefaultFocusTraversalPolicy ++ * @throws IllegalArgumentException if policy is null ++ */ ++ public void setDefaultFocusTraversalPolicy (FocusTraversalPolicy policy) + { + if (policy == null) +- throw new IllegalArgumentException(); +- firePropertyChange("defaultFocusTraversalPolicy", defaultPolicy, policy); ++ throw new IllegalArgumentException (); ++ firePropertyChange ("defaultFocusTraversalPolicy", defaultPolicy, policy); + defaultPolicy = policy; + } + +- public void setDefaultFocusTraversalKeys(int id, Set keystrokes) +- { ++ /** ++ * Set the default {@link java.util.Set} of focus traversal keys for ++ * one of the focus traversal directions. ++ * ++ * @param id focus traversal direction identifier ++ * @param keystrokes set of AWTKeyStrokes ++ * ++ * @see #FORWARD_TRAVERSAL_KEYS ++ * @see #BACKWARD_TRAVERSAL_KEYS ++ * @see #UP_CYCLE_TRAVERSAL_KEYS ++ * @see #DOWN_CYCLE_TRAVERSAL_KEYS ++ */ ++ public void setDefaultFocusTraversalKeys (int id, Set keystrokes) ++ { ++ if (id != KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS && ++ id != KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS && ++ id != KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS && ++ id != KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS) ++ throw new IllegalArgumentException (); ++ + if (keystrokes == null) +- throw new IllegalArgumentException(); ++ throw new IllegalArgumentException (); ++ + Set sa; + Set sb; + Set sc; +@@ -340,56 +545,82 @@ + type = "downCycleDefaultFocusTraversalKeys"; + break; + default: +- throw new IllegalArgumentException(); ++ throw new IllegalArgumentException (); + } +- int i = keystrokes.size(); +- Iterator iter = keystrokes.iterator(); ++ int i = keystrokes.size (); ++ Iterator iter = keystrokes.iterator (); + while (--i >= 0) + { +- Object o = iter.next(); +- if (! (o instanceof AWTKeyStroke) +- || sa.contains(o) || sb.contains(o) || sc.contains(o) ++ Object o = iter.next (); ++ if (!(o instanceof AWTKeyStroke) ++ || sa.contains (o) || sb.contains (o) || sc.contains (o) + || ((AWTKeyStroke) o).keyCode == KeyEvent.VK_UNDEFINED) +- throw new IllegalArgumentException(); ++ throw new IllegalArgumentException (); + } +- keystrokes = Collections.unmodifiableSet(new HashSet(keystrokes)); +- firePropertyChange(type, defaultFocusKeys[id], keystrokes); ++ keystrokes = Collections.unmodifiableSet (new HashSet (keystrokes)); ++ firePropertyChange (type, defaultFocusKeys[id], keystrokes); + defaultFocusKeys[id] = keystrokes; + } + +- public Set getDefaultFocusTraversalKeys(int id) ++ /** ++ * Retrieve the default {@link java.util.Set} of focus traversal ++ * keys for one of the focus traversal directions. ++ * ++ * @param id focus traversal direction identifier ++ * ++ * @return the default set of AWTKeyStrokes ++ * ++ * @see #FORWARD_TRAVERSAL_KEYS ++ * @see #BACKWARD_TRAVERSAL_KEYS ++ * @see #UP_CYCLE_TRAVERSAL_KEYS ++ * @see #DOWN_CYCLE_TRAVERSAL_KEYS ++ */ ++ public Set getDefaultFocusTraversalKeys (int id) + { + if (id < FORWARD_TRAVERSAL_KEYS || id > DOWN_CYCLE_TRAVERSAL_KEYS) +- throw new IllegalArgumentException(); ++ throw new IllegalArgumentException (); + return defaultFocusKeys[id]; + } + +- public Container getCurrentFocusCycleRoot() ++ /** ++ * Retrieve the current focus cycle root, or null if the focus owner ++ * was not set by a thread in the current {@link ++ * java.lang.ThreadGroup}. ++ * ++ * @return the current focus cycle root or null ++ */ ++ public Container getCurrentFocusCycleRoot () ++ { ++ return (Container) getObject (currentFocusCycleRoots); ++ } ++ ++ /** ++ * Retrieve the current focus cycle root, regardless of whether or ++ * not it was made set by a thread in the current {@link ++ * java.lang.ThreadGroup}. ++ * ++ * @return the current focus cycle root ++ * @throws SecurityException if this is not the keyboard focus ++ * manager associated with the current {@link java.lang.ThreadGroup} ++ */ ++ protected Container getGlobalCurrentFocusCycleRoot () ++ { ++ return (Container) getGlobalObject (currentFocusCycleRoots); ++ } ++ ++ /** ++ * Set the {@link Container} that will be returned by {@link ++ * #getCurrentFocusCycleRoot} (when it is called from the current ++ * {@link java.lang.ThreadGroup}) and {@link ++ * #getGlobalCurrentFocusCycleRoot}. This method does not actually ++ * make cycleRoot the current focus cycle root. ++ * ++ * @param cycleRoot the focus cycle root to return from ++ * getCurrentFocusCycleRoot and getGlobalCurrentFocusCycleRoot ++ */ ++ public void setGlobalCurrentFocusCycleRoot (Container cycleRoot) + { +- // XXX Need an easy way to test if this thread is in the context of the +- // global focus owner, to avoid creating the exception in the first place. +- try +- { +- return getGlobalCurrentFocusCycleRoot(); +- } +- catch (SecurityException e) +- { +- return null; +- } +- } +- +- protected Container getGlobalCurrentFocusCycleRoot() +- { +- // XXX Need a way to test if this thread is in the context of the focus +- // owner, and throw a SecurityException if that is the case. +- // XXX Implement. +- return focusCycleRoot; +- } +- +- public void setGlobalCurrentFocusCycleRoot(Container cycleRoot) +- { +- firePropertyChange("currentFocusCycleRoot", focusCycleRoot, cycleRoot); +- focusCycleRoot = cycleRoot; ++ setGlobalObject (currentFocusCycleRoots, cycleRoot, "currentFocusCycleRoot"); + } + + public void addPropertyChangeListener(PropertyChangeListener l) +@@ -484,73 +715,199 @@ + keyEventDispatchers.remove(dispatcher); + } + +- protected List getKeyEventDispatchers() ++ protected List getKeyEventDispatchers () + { +- return (List) keyEventDispatchers.clone(); ++ return (List) keyEventDispatchers.clone (); + } + +- public void addKeyEventPostProcessor(KeyEventPostProcessor postProcessor) ++ public void addKeyEventPostProcessor (KeyEventPostProcessor postProcessor) + { + if (postProcessor != null) +- keyEventPostProcessors.add(postProcessor); ++ keyEventPostProcessors.add (postProcessor); + } + +- public void removeKeyEventPostProcessor(KeyEventPostProcessor postProcessor) ++ public void removeKeyEventPostProcessor (KeyEventPostProcessor postProcessor) + { +- keyEventPostProcessors.remove(postProcessor); ++ keyEventPostProcessors.remove (postProcessor); + } + +- protected List getKeyEventPostProcessors() ++ protected List getKeyEventPostProcessors () + { +- return (List) keyEventPostProcessors.clone(); ++ return (List) keyEventPostProcessors.clone (); + } + +- public abstract boolean dispatchEvent(AWTEvent e); ++ public abstract boolean dispatchEvent (AWTEvent e); + +- public final void redispatchEvent(Component target, AWTEvent e) ++ public final void redispatchEvent (Component target, AWTEvent e) + { +- throw new Error("not implemented"); ++ synchronized (e) ++ { ++ e.setSource (target); ++ target.dispatchEvent (e); ++ } + } + +- public abstract boolean dispatchKeyEvent(KeyEvent e); ++ public abstract boolean dispatchKeyEvent (KeyEvent e); + +- public abstract boolean postProcessKeyEvent(KeyEvent e); ++ public abstract boolean postProcessKeyEvent (KeyEvent e); + +- public abstract void processKeyEvent(Component focused, KeyEvent e); ++ public abstract void processKeyEvent (Component focused, KeyEvent e); + +- protected abstract void enqueueKeyEvents(long after, Component untilFocused); ++ protected abstract void enqueueKeyEvents (long after, Component untilFocused); + +- protected abstract void dequeueKeyEvents(long after, Component untilFocused); ++ protected abstract void dequeueKeyEvents (long after, Component untilFocused); + +- protected abstract void discardKeyEvents(Component comp); ++ protected abstract void discardKeyEvents (Component comp); + +- public abstract void focusNextComponent(Component comp); ++ public abstract void focusNextComponent (Component comp); + +- public abstract void focusPreviousComponent(Component comp); ++ public abstract void focusPreviousComponent (Component comp); + +- public abstract void upFocusCycle(Component comp); ++ public abstract void upFocusCycle (Component comp); + +- public abstract void downFocusCycle(Container cont); ++ public abstract void downFocusCycle (Container cont); + +- public final void focusNextComponent() ++ public final void focusNextComponent () + { +- focusNextComponent(focusOwner); ++ focusNextComponent (null); + } + +- public final void focusPreviousComponent() ++ public final void focusPreviousComponent () + { +- focusPreviousComponent(focusOwner); ++ focusPreviousComponent (null); + } + +- public final void upFocusCycle() ++ public final void upFocusCycle () + { +- upFocusCycle(focusOwner); ++ upFocusCycle (null); + } + +- public final void downFocusCycle() ++ public final void downFocusCycle () + { ++ Component focusOwner = getGlobalFocusOwner (); + if (focusOwner instanceof Container +- && ((Container) focusOwner).isFocusCycleRoot()) +- downFocusCycle((Container) focusOwner); ++ && ((Container) focusOwner).isFocusCycleRoot ()) ++ downFocusCycle ((Container) focusOwner); ++ } ++ ++ /** ++ * Retrieve an object from one of the global object {@link ++ * java.util.Map}s, if the object was set by the a thread in the ++ * current {@link java.lang.ThreadGroup}. Otherwise, return null. ++ * ++ * @param globalMap one of the global object Maps ++ * ++ * @return a global object set by the current ThreadGroup, or null ++ * ++ * @see getFocusOwner ++ * @see getPermanentFocusOwner ++ * @see getFocusedWindow ++ * @see getActiveWindow ++ * @see getCurrentFocusCycleRoot ++ */ ++ private Object getObject (Map globalMap) ++ { ++ ThreadGroup currentGroup = Thread.currentThread ().getThreadGroup (); ++ return globalMap.get (currentGroup); ++ } ++ ++ /** ++ * Retrieve an object from one of the global object {@link ++ * java.util.Map}s, regardless of whether or not the object was set ++ * by a thread in the current {@link java.lang.ThreadGroup}. ++ * ++ * @param globalMap one of the global object Maps ++ * ++ * @return a global object set by the current ThreadGroup, or null ++ * ++ * @throws SecurityException if this is not the keyboard focus ++ * manager associated with the current {@link java.lang.ThreadGroup} ++ * ++ * @see getGlobalFocusOwner ++ * @see getGlobalPermanentFocusOwner ++ * @see getGlobalFocusedWindow ++ * @see getGlobalActiveWindow ++ * @see getGlobalCurrentFocusCycleRoot ++ */ ++ private Object getGlobalObject (Map globalMap) ++ { ++ ThreadGroup currentGroup = Thread.currentThread ().getThreadGroup (); ++ KeyboardFocusManager managerForCallingThread ++ = (KeyboardFocusManager) currentKeyboardFocusManagers.get (currentGroup); ++ ++ if (this != managerForCallingThread) ++ throw new SecurityException ("Attempted to retrieve an object from a " ++ + "keyboard focus manager that isn't " ++ + "associated with the current thread group."); ++ ++ synchronized (globalMap) ++ { ++ Collection globalObjects = globalMap.values (); ++ Iterator i = globalObjects.iterator (); ++ Component globalObject; ++ ++ while (i.hasNext ()) ++ { ++ globalObject = (Component) i.next (); ++ if (globalObject != null) ++ return globalObject; ++ } ++ } ++ ++ // No Object was found. ++ return null; ++ } ++ ++ /** ++ * Set an object in one of the global object {@link java.util.Map}s, ++ * that will be returned by subsequent calls to getGlobalObject on ++ * the same {@link java.util.Map}. ++ * ++ * @param globalMap one of the global object Maps ++ * @param newObject the object to set ++ * @param property the property that will change ++ * ++ * @see setGlobalFocusOwner ++ * @see setGlobalPermanentFocusOwner ++ * @see setGlobalFocusedWindow ++ * @see setGlobalActiveWindow ++ * @see setGlobalCurrentFocusCycleRoot ++ */ ++ private void setGlobalObject (Map globalMap, ++ Object newObject, ++ String property) ++ { ++ synchronized (globalMap) ++ { ++ // Save old object. ++ Object oldObject = getGlobalObject (globalMap); ++ ++ // Nullify old object. ++ Collection threadGroups = globalMap.keySet (); ++ Iterator i = threadGroups.iterator (); ++ while (i.hasNext ()) ++ { ++ ThreadGroup oldThreadGroup = (ThreadGroup) i.next (); ++ if (globalMap.get (oldThreadGroup) != null) ++ { ++ globalMap.put (oldThreadGroup, null); ++ // There should only be one object set at a time, so ++ // we can short circuit. ++ break; ++ } ++ } ++ ++ ThreadGroup currentGroup = Thread.currentThread ().getThreadGroup (); ++ firePropertyChange (property, oldObject, newObject); ++ try ++ { ++ fireVetoableChange (property, oldObject, newObject); ++ // Set new object. ++ globalMap.put (currentGroup, newObject); ++ } ++ catch (PropertyVetoException e) ++ { ++ } ++ } + } +-} // class KeyboardFocusManager ++} +Index: java/awt/LayoutManager2.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/LayoutManager2.java,v +retrieving revision 1.6 +diff -u -r1.6 LayoutManager2.java +--- java/awt/LayoutManager2.java 9 Aug 2002 04:26:14 -0000 1.6 ++++ java/awt/LayoutManager2.java 6 Sep 2004 16:35:45 -0000 +@@ -52,12 +52,12 @@ + { + /** + * Adds the specified component to the layout, with the specified +- * constraint object. ++ * constraints object. + * + * @param component the component to add +- * @param constraint the constraint to satisfy ++ * @param constraints the constraints to satisfy + */ +- void addLayoutComponent(Component component, Object contraint); ++ void addLayoutComponent(Component component, Object contraints); + + /** + * Determines the maximum size of the specified target container. +Index: java/awt/List.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/List.java,v +retrieving revision 1.16 +diff -u -r1.16 List.java +--- java/awt/List.java 19 Dec 2003 02:53:36 -0000 1.16 ++++ java/awt/List.java 6 Sep 2004 16:35:45 -0000 +@@ -175,7 +175,7 @@ + public int + getItemCount() + { +- return(items.size()); ++ return countItems (); + } + + /*************************************************************************/ +@@ -191,7 +191,7 @@ + public int + countItems() + { +- return(getItemCount()); ++ return items.size (); + } + + /*************************************************************************/ +@@ -249,7 +249,7 @@ + public boolean + isMultipleMode() + { +- return(multipleMode); ++ return allowsMultipleSelections (); + } + + /*************************************************************************/ +@@ -266,7 +266,7 @@ + public boolean + allowsMultipleSelections() + { +- return(multipleMode); ++ return multipleMode; + } + + /*************************************************************************/ +@@ -281,12 +281,7 @@ + public void + setMultipleMode(boolean multipleMode) + { +- this.multipleMode = multipleMode; +- if (peer != null) +- { +- ListPeer l = (ListPeer) peer; +- l.setMultipleMode (multipleMode); +- } ++ setMultipleSelections (multipleMode); + } + + /*************************************************************************/ +@@ -303,7 +298,11 @@ + public void + setMultipleSelections(boolean multipleMode) + { +- setMultipleMode(multipleMode); ++ this.multipleMode = multipleMode; ++ ++ ListPeer peer = (ListPeer) getPeer (); ++ if (peer != null) ++ peer.setMultipleMode (multipleMode); + } + + /*************************************************************************/ +@@ -316,7 +315,7 @@ + public Dimension + getMinimumSize() + { +- return(getMinimumSize(rows)); ++ return getMinimumSize (getRows ()); + } + + /*************************************************************************/ +@@ -332,7 +331,7 @@ + public Dimension + minimumSize() + { +- return(getMinimumSize(rows)); ++ return minimumSize (getRows ()); + } + + /*************************************************************************/ +@@ -348,11 +347,7 @@ + public Dimension + getMinimumSize(int rows) + { +- ListPeer lp = (ListPeer)getPeer(); +- if (lp != null) +- return(lp.minimumSize(rows)); +- else +- return(new Dimension(0,0)); ++ return minimumSize (rows); + } + + /*************************************************************************/ +@@ -371,7 +366,11 @@ + public Dimension + minimumSize(int rows) + { +- return(getMinimumSize(rows)); ++ ListPeer peer = (ListPeer) getPeer (); ++ if (peer != null) ++ return peer.minimumSize (rows); ++ else ++ return new Dimension (0, 0); + } + + /*************************************************************************/ +@@ -384,7 +383,7 @@ + public Dimension + getPreferredSize() + { +- return(getPreferredSize(rows)); ++ return getPreferredSize (getRows ()); + } + + /*************************************************************************/ +@@ -400,7 +399,7 @@ + public Dimension + preferredSize() + { +- return(getPreferredSize(rows)); ++ return preferredSize (getRows ()); + } + + /*************************************************************************/ +@@ -416,11 +415,7 @@ + public Dimension + getPreferredSize(int rows) + { +- ListPeer lp = (ListPeer)getPeer(); +- if (lp != null) +- return(lp.preferredSize(rows)); +- else +- return(new Dimension(0,0)); ++ return preferredSize (rows); + } + + /*************************************************************************/ +@@ -439,7 +434,11 @@ + public Dimension + preferredSize(int rows) + { +- return(getPreferredSize(rows)); ++ ListPeer peer = (ListPeer) getPeer (); ++ if (peer != null) ++ return peer.preferredSize (rows); ++ else ++ return new Dimension (0, 0); + } + + /*************************************************************************/ +@@ -452,7 +451,7 @@ + public void + add(String item) + { +- add(item, -1); ++ add (item, -1); + } + + /*************************************************************************/ +@@ -467,7 +466,7 @@ + public void + addItem(String item) + { +- addItem(item, -1); ++ addItem (item, -1); + } + + /*************************************************************************/ +@@ -484,16 +483,7 @@ + public void + add(String item, int index) + { +- if ((index == -1) || (index >= items.size())) +- items.addElement(item); +- else +- items.insertElementAt(item, index); +- +- if (peer != null) +- { +- ListPeer l = (ListPeer) peer; +- l.add (item, index); +- } ++ addItem (item, index); + } + + /*************************************************************************/ +@@ -512,7 +502,14 @@ + public void + addItem(String item, int index) + { +- add(item, index); ++ if ((index == -1) || (index >= items.size ())) ++ items.addElement (item); ++ else ++ items.insertElementAt (item, index); ++ ++ ListPeer peer = (ListPeer) getPeer (); ++ if (peer != null) ++ peer.add (item, index); + } + + /*************************************************************************/ +@@ -529,7 +526,11 @@ + public void + delItem(int index) throws IllegalArgumentException + { +- remove(index); ++ items.removeElementAt (index); ++ ++ ListPeer peer = (ListPeer) getPeer (); ++ if (peer != null) ++ peer.delItems (index, index); + } + + /*************************************************************************/ +@@ -544,12 +545,7 @@ + public void + remove(int index) throws IllegalArgumentException + { +- items.removeElementAt (index); +- if (peer != null) +- { +- ListPeer l = (ListPeer) peer; +- l.delItems (index, index); +- } ++ delItem (index); + } + + /*************************************************************************/ +@@ -613,12 +609,7 @@ + public synchronized void + removeAll() + { +- items.clear(); +- if (peer != null) +- { +- ListPeer l = (ListPeer) peer; +- l.removeAll (); +- } ++ clear (); + } + + /*************************************************************************/ +@@ -631,7 +622,11 @@ + public void + clear() + { +- removeAll(); ++ items.clear(); ++ ++ ListPeer peer = (ListPeer) getPeer (); ++ if (peer != null) ++ peer.removeAll (); + } + + /*************************************************************************/ +@@ -782,13 +777,7 @@ + public boolean + isIndexSelected(int index) + { +- int[] indexes = getSelectedIndexes(); +- +- for (int i = 0; i < indexes.length; i++) +- if (indexes[i] == index) +- return(true); +- +- return(false); ++ return isSelected (index); + } + + /*************************************************************************/ +@@ -807,7 +796,13 @@ + public boolean + isSelected(int index) + { +- return(isIndexSelected(index)); ++ int[] indexes = getSelectedIndexes (); ++ ++ for (int i = 0; i < indexes.length; i++) ++ if (indexes[i] == index) ++ return true; ++ ++ return false; + } + + /*************************************************************************/ +Index: java/awt/MediaTracker.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/MediaTracker.java,v +retrieving revision 1.5 +diff -u -r1.5 MediaTracker.java +--- java/awt/MediaTracker.java 12 Nov 2003 00:37:34 -0000 1.5 ++++ java/awt/MediaTracker.java 6 Sep 2004 16:35:45 -0000 +@@ -81,12 +81,17 @@ + status = ERRORED | COMPLETE; + else if ((flags & ALLBITS) != 0) + status = COMPLETE; +- else ++ else if ((flags & SOMEBITS) != 0) + status = LOADING; +- +- synchronized (MediaTracker.this) ++ else ++ status = 0; ++ ++ if ((status & COMPLETE) == COMPLETE) + { +- MediaTracker.this.notifyAll(); ++ synchronized (MediaTracker.this) ++ { ++ MediaTracker.this.notifyAll(); ++ } + } + // If status is not COMPLETE then we need more updates. + return (status & COMPLETE) == 0; +@@ -106,7 +111,8 @@ + e.next = head; + head = e; + // Start tracking image status. +- target.checkImage(image, e); ++ int flags = target.checkImage(image, e); ++ e.imageUpdate(image, flags, -1, -1, -1, -1); + } + + public void addImage(Image image, int id, int width, int height) +@@ -119,7 +125,8 @@ + e.height = height; + head = e; + // Start tracking image status. +- target.checkImage(image, width, height, e); ++ int flags = target.checkImage(image, width, height, e); ++ e.imageUpdate(image, flags, -1, -1, width, height); + } + + public boolean checkAll() +Index: java/awt/Menu.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/Menu.java,v +retrieving revision 1.13 +diff -u -r1.13 Menu.java +--- java/awt/Menu.java 11 Jun 2003 10:37:47 -0000 1.13 ++++ java/awt/Menu.java 6 Sep 2004 16:35:45 -0000 +@@ -1,5 +1,5 @@ + /* Menu.java -- A Java AWT Menu +- Copyright (C) 1999, 2002 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -41,6 +41,7 @@ + import java.awt.peer.MenuPeer; + import java.io.Serializable; + import java.util.Vector; ++import java.util.Enumeration; + + /** + * This class represents a pull down or tear off menu in Java's AWT. +@@ -81,7 +82,7 @@ + // From the serialization spec. FIXME: what should it be? + private int menuSerializedDataVersion; + +-static final MenuItem separator = new MenuItem("-"); ++static final String separatorLabel = "-"; + + /*************************************************************************/ + +@@ -170,7 +171,7 @@ + public int + getItemCount() + { +- return(items.size()); ++ return countItems (); + } + + /** +@@ -182,7 +183,7 @@ + */ + public int countItems () + { +- return getItemCount (); ++ return items.size (); + } + + /*************************************************************************/ +@@ -294,7 +295,7 @@ + public void + addSeparator() + { +- add(separator); ++ add(new MenuItem(separatorLabel)); + } + + /*************************************************************************/ +@@ -312,7 +313,7 @@ + public void + insertSeparator(int index) + { +- insert(separator, index); ++ insert(new MenuItem(separatorLabel), index); + } + + /*************************************************************************/ +@@ -376,8 +377,14 @@ + public void + addNotify() + { +- if (peer != null) ++ if (peer == null) + peer = getToolkit().createMenu(this); ++ Enumeration e = items.elements(); ++ while (e.hasMoreElements()) ++ { ++ MenuItem mi = (MenuItem)e.nextElement(); ++ mi.addNotify(); ++ } + super.addNotify (); + } + +@@ -389,6 +396,12 @@ + public void + removeNotify() + { ++ Enumeration e = items.elements(); ++ while (e.hasMoreElements()) ++ { ++ MenuItem mi = (MenuItem) e.nextElement(); ++ mi.removeNotify(); ++ } + super.removeNotify(); + } + +Index: java/awt/MenuBar.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/MenuBar.java,v +retrieving revision 1.10 +diff -u -r1.10 MenuBar.java +--- java/awt/MenuBar.java 2 Jan 2003 00:14:22 -0000 1.10 ++++ java/awt/MenuBar.java 6 Sep 2004 16:35:45 -0000 +@@ -1,5 +1,5 @@ + /* MenuBar.java -- An AWT menu bar class +- Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -128,15 +128,15 @@ + helpMenu.removeNotify (); + helpMenu.parent = null; + } ++ helpMenu = menu; + + if (menu.parent != null) + menu.parent.remove (menu); +- if (menu.parent != null) +- menu.parent.remove (menu); + menu.parent = this; + + if (peer != null) + { ++ menu.addNotify(); + MenuBarPeer mp = (MenuBarPeer) peer; + mp.addHelpMenu (menu); + } +@@ -163,8 +163,7 @@ + + if (peer != null) + { +- MenuBarPeer mp = (MenuBarPeer) peer; +- mp.addMenu (menu); ++ menu.addNotify(); + } + + return(menu); +@@ -219,8 +218,7 @@ + public int + getMenuCount() + { +- // FIXME: How does the help menu fit in here? +- return(menus.size()); ++ return countMenus (); + } + + /*************************************************************************/ +@@ -235,7 +233,8 @@ + public int + countMenus() + { +- return(getMenuCount()); ++ // FIXME: How does the help menu fit in here? ++ return menus.size (); + } + + /*************************************************************************/ +@@ -263,6 +262,17 @@ + { + if (getPeer() == null) + setPeer((MenuComponentPeer)getToolkit().createMenuBar(this)); ++ Enumeration e = menus.elements(); ++ while (e.hasMoreElements()) ++ { ++ Menu mi = (Menu)e.nextElement(); ++ mi.addNotify(); ++ } ++ if (helpMenu != null) ++ { ++ helpMenu.addNotify(); ++ ((MenuBarPeer) peer).addHelpMenu(helpMenu); ++ } + } + + /*************************************************************************/ +@@ -273,6 +283,12 @@ + public void + removeNotify() + { ++ Enumeration e = menus.elements(); ++ while (e.hasMoreElements()) ++ { ++ Menu mi = (Menu) e.nextElement(); ++ mi.removeNotify(); ++ } + super.removeNotify(); + } + +Index: java/awt/MenuItem.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/MenuItem.java,v +retrieving revision 1.14 +diff -u -r1.14 MenuItem.java +--- java/awt/MenuItem.java 4 Dec 2003 19:31:01 -0000 1.14 ++++ java/awt/MenuItem.java 6 Sep 2004 16:35:46 -0000 +@@ -1,5 +1,5 @@ + /* MenuItem.java -- An item in a menu +- Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -77,7 +77,7 @@ + /** + * @serial Indicates whether or not this menu item is enabled. + */ +-private boolean enabled; ++private boolean enabled = true; + + /** + * @serial The mask of events that are enabled for this menu item. +@@ -202,15 +202,7 @@ + public synchronized void + setEnabled(boolean enabled) + { +- if (enabled == this.enabled) +- return; +- +- this.enabled = enabled; +- if (peer != null) +- { +- MenuItemPeer mp = (MenuItemPeer) peer; +- mp.setEnabled (enabled); +- } ++ enable (enabled); + } + + /*************************************************************************/ +@@ -226,7 +218,10 @@ + public void + enable(boolean enabled) + { +- setEnabled(enabled); ++ if (enabled) ++ enable (); ++ else ++ disable (); + } + + /*************************************************************************/ +@@ -239,7 +234,12 @@ + public void + enable() + { +- setEnabled(true); ++ if (enabled) ++ return; ++ ++ this.enabled = true; ++ if (peer != null) ++ ((MenuItemPeer) peer).setEnabled (true); + } + + /*************************************************************************/ +@@ -252,7 +252,12 @@ + public void + disable() + { +- setEnabled(false); ++ if (!enabled) ++ return; ++ ++ this.enabled = false; ++ if (peer != null) ++ ((MenuItemPeer) peer).setEnabled (false); + } + + /*************************************************************************/ +@@ -305,7 +310,10 @@ + public String + getActionCommand() + { +- return(actionCommand); ++ if (actionCommand == null) ++ return label; ++ else ++ return actionCommand; + } + + /*************************************************************************/ +@@ -361,7 +369,7 @@ + public void + addNotify() + { +- if (peer != null) ++ if (peer == null) + peer = getToolkit ().createMenuItem (this); + } + +@@ -416,6 +424,11 @@ + && (action_listeners != null + || (eventMask & AWTEvent.ACTION_EVENT_MASK) != 0)) + processEvent(e); ++ ++ // Send the event to the parent menu if it has not yet been ++ // consumed. ++ if (!e.isConsumed ()) ++ ((Menu) getParent ()).processEvent (e); + } + + /** +Index: java/awt/Panel.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/Panel.java,v +retrieving revision 1.8 +diff -u -r1.8 Panel.java +--- java/awt/Panel.java 5 Jun 2003 19:58:39 -0000 1.8 ++++ java/awt/Panel.java 6 Sep 2004 16:35:46 -0000 +@@ -38,6 +38,7 @@ + + package java.awt; + ++import java.awt.event.PaintEvent; + import javax.accessibility.Accessible; + import javax.accessibility.AccessibleContext; + import javax.accessibility.AccessibleRole; +@@ -62,6 +63,19 @@ + /** The cached accessible context. */ + private transient AccessibleContext context; + ++ /** Flag set when the first system-requested paint event is ++ dispatched. */ ++ private transient boolean initialSystemUpdateDone; ++ ++ /** Flag set when the first application-requested paint event is ++ consumed. */ ++ private transient boolean initialUpdateConsumed; ++ ++ /* ++ * The number used to generate the name returned by getName. ++ */ ++ private static transient long next_panel_number = 0; ++ + /** + * Initializes a new instance of Panel that has a default + * layout manager of FlowLayout. +@@ -84,6 +98,36 @@ + } + + /** ++ * Consume initial application-requested paint event if it has not ++ * already been consumed, and if the initial system-requested paint ++ * event has not already been handled. Otherwise, call ++ * super.dispatchEventImpl. These extra steps are required to ++ * prevent a Panel from being painted twice when it is initially ++ * shown. ++ * ++ * @param e the event to dispatch ++ */ ++ void dispatchEventImpl (AWTEvent e) ++ { ++ if (e instanceof PaintEvent) ++ { ++ if (e.id == PaintEvent.UPDATE) ++ { ++ if (!initialUpdateConsumed ++ && !initialSystemUpdateDone) ++ { ++ e.consume (); ++ initialUpdateConsumed = true; ++ } ++ } ++ else if (e.id == PaintEvent.PAINT) ++ initialSystemUpdateDone = true; ++ } ++ else ++ super.dispatchEventImpl (e); ++ } ++ ++ /** + * Notifies this object to create its native peer. + * + * @see #isDisplayable() +@@ -141,5 +185,20 @@ + { + return AccessibleRole.PANEL; + } +- } // class AccessibleAWTPanel +-} // class Panel ++ } ++ ++ /** ++ * Generate a unique name for this panel. ++ * ++ * @return A unique name for this panel. ++ */ ++ String generateName () ++ { ++ return "panel" + getUniqueLong (); ++ } ++ ++ private static synchronized long getUniqueLong () ++ { ++ return next_panel_number++; ++ } ++} +Index: java/awt/Polygon.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/Polygon.java,v +retrieving revision 1.3 +diff -u -r1.3 Polygon.java +--- java/awt/Polygon.java 8 Dec 2003 22:59:51 -0000 1.3 ++++ java/awt/Polygon.java 6 Sep 2004 16:35:46 -0000 +@@ -258,10 +258,24 @@ + */ + public Rectangle getBounds() + { ++ return getBoundingBox (); ++ } ++ ++ /** ++ * Returns the bounding box of this polygon. This is the smallest ++ * rectangle with sides parallel to the X axis that will contain this ++ * polygon. ++ * ++ * @return the bounding box for this polygon ++ * @see #getBounds2D() ++ * @deprecated use {@link #getBounds()} instead ++ */ ++ public Rectangle getBoundingBox() ++ { + if (bounds == null) + { + if (npoints == 0) +- return bounds = new Rectangle(); ++ return bounds = new Rectangle (); + int i = npoints - 1; + int minx = xpoints[i]; + int maxx = minx; +@@ -280,26 +294,12 @@ + else if (y > maxy) + maxy = y; + } +- bounds = new Rectangle(minx, maxy, maxx - minx, maxy - miny); ++ bounds = new Rectangle (minx, miny, maxx - minx, maxy - miny); + } + return bounds; + } + + /** +- * Returns the bounding box of this polygon. This is the smallest +- * rectangle with sides parallel to the X axis that will contain this +- * polygon. +- * +- * @return the bounding box for this polygon +- * @see #getBounds2D() +- * @deprecated use {@link #getBounds()} instead +- */ +- public Rectangle getBoundingBox() +- { +- return getBounds(); +- } +- +- /** + * Tests whether or not the specified point is inside this polygon. + * + * @param p the point to test +Index: java/awt/PopupMenu.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/PopupMenu.java,v +retrieving revision 1.7 +diff -u -r1.7 PopupMenu.java +--- java/awt/PopupMenu.java 5 Jun 2003 19:58:39 -0000 1.7 ++++ java/awt/PopupMenu.java 6 Sep 2004 16:35:46 -0000 +@@ -105,7 +105,7 @@ + public void + addNotify() + { +- if (peer != null) ++ if (peer == null) + peer = getToolkit ().createPopupMenu (this); + super.addNotify (); + } +@@ -123,6 +123,8 @@ + public void + show(Component component, int x, int y) + { ++ if (getPeer() == null) ++ this.addNotify(); + PopupMenuPeer pmp = (PopupMenuPeer)getPeer(); + if (pmp != null) + { +Index: java/awt/Rectangle.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/Rectangle.java,v +retrieving revision 1.11 +diff -u -r1.11 Rectangle.java +--- java/awt/Rectangle.java 5 Jun 2003 19:58:39 -0000 1.11 ++++ java/awt/Rectangle.java 6 Sep 2004 16:35:46 -0000 +@@ -281,10 +281,7 @@ + */ + public void setBounds(Rectangle r) + { +- x = r.x; +- y = r.y; +- width = r.width; +- height = r.height; ++ setBounds (r.x, r.y, r.width, r.height); + } + + /** +@@ -298,10 +295,7 @@ + */ + public void setBounds(int x, int y, int width, int height) + { +- this.x = x; +- this.y = y; +- this.width = width; +- this.height = height; ++ reshape (x, y, width, height); + } + + /** +@@ -333,7 +327,10 @@ + */ + public void reshape(int x, int y, int width, int height) + { +- setBounds(x, y, width, height); ++ this.x = x; ++ this.y = y; ++ this.width = width; ++ this.height = height; + } + + /** +@@ -360,8 +357,7 @@ + */ + public void setLocation(Point p) + { +- this.x = p.x; +- this.y = p.y; ++ setLocation (p.x, p.y); + } + + /** +@@ -374,8 +370,7 @@ + */ + public void setLocation(int x, int y) + { +- this.x = x; +- this.y = y; ++ move (x, y); + } + + /** +@@ -388,7 +383,8 @@ + */ + public void move(int x, int y) + { +- setLocation(x, y); ++ this.x = x; ++ this.y = y; + } + + /** +@@ -426,8 +422,7 @@ + */ + public void setSize(Dimension d) + { +- width = d.width; +- height = d.height; ++ setSize (d.width, d.height); + } + + /** +@@ -439,8 +434,7 @@ + */ + public void setSize(int width, int height) + { +- this.width = width; +- this.height = height; ++ resize (width, height); + } + + /** +@@ -452,7 +446,8 @@ + */ + public void resize(int width, int height) + { +- setSize(width, height); ++ this.width = width; ++ this.height = height; + } + + /** +@@ -469,9 +464,7 @@ + */ + public boolean contains(Point p) + { +- return width > 0 && height > 0 +- && p.x >= x && p.x < x + width +- && p.y >= y && p.y < y + height; ++ return contains (p.x, p.y); + } + + /** +@@ -487,9 +480,7 @@ + */ + public boolean contains(int x, int y) + { +- return width > 0 && height > 0 +- && x >= this.x && x < this.x + width +- && y >= this.y && y < this.y + height; ++ return inside (x, y); + } + + /** +@@ -504,9 +495,7 @@ + */ + public boolean contains(Rectangle r) + { +- return width > 0 && height > 0 && r.width > 0 && r.height > 0 +- && r.x >= x && r.x + r.width <= x + width +- && r.y >= y && r.y + r.height <= y + height; ++ return contains (r.x, r.y, r.width, r.height); + } + + /** +@@ -537,7 +526,9 @@ + */ + public boolean inside(int x, int y) + { +- return contains(x, y); ++ return width > 0 && height > 0 ++ && x >= this.x && x < this.x + width ++ && y >= this.y && y < this.y + height; + } + + /** +@@ -551,7 +542,7 @@ + */ + public boolean intersects(Rectangle r) + { +- return width > 0 && height > 0 && r.width > 0 && r.height > 0 ++ return r.width > 0 && r.height > 0 && width > 0 && height > 0 + && r.x < x + width && r.x + r.width > x + && r.y < y + height && r.y + r.height > y; + } +Index: java/awt/ScrollPane.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/ScrollPane.java,v +retrieving revision 1.14 +diff -u -r1.14 ScrollPane.java +--- java/awt/ScrollPane.java 5 Jan 2004 21:35:32 -0000 1.14 ++++ java/awt/ScrollPane.java 6 Sep 2004 16:35:46 -0000 +@@ -157,6 +157,9 @@ + } + + wheelScrollingEnabled = true; ++ ++ // Default size. ++ setSize(100,100); + } + + /*************************************************************************/ +@@ -400,6 +403,15 @@ + + setPeer((ComponentPeer)getToolkit().createScrollPane(this)); + super.addNotify(); ++ ++ Component[] list = getComponents(); ++ if (list != null && list.length > 0 && ! (list[0] instanceof Panel)) ++ { ++ Panel panel = new Panel(); ++ panel.setLayout(new BorderLayout()); ++ panel.add(list[0], BorderLayout.CENTER); ++ add(panel); ++ } + } + + /*************************************************************************/ +@@ -446,10 +458,25 @@ + public void + doLayout() + { +- Component[] list = getComponents(); ++ layout (); ++} ++ ++/*************************************************************************/ ++ ++/** ++ * Lays out this component. This consists of resizing the sole child ++ * component to its perferred size. ++ * ++ * @deprecated This method is deprecated in favor of ++ * doLayout(). ++ */ ++public void ++layout() ++{ ++ Component[] list = getComponents (); + if ((list != null) && (list.length > 0)) + { +- Dimension dim = list[0].getPreferredSize(); ++ Dimension dim = list[0].getPreferredSize (); + Dimension vp = getViewportSize (); + + if (dim.width < vp.width) +@@ -462,36 +489,21 @@ + if (peer != null) + peer.childResized (dim.width, dim.height); + +- list[0].resize (dim); ++ list[0].setSize (dim); + +- Point p = getScrollPosition(); ++ Point p = getScrollPosition (); + if (p.x > dim.width) + p.x = dim.width; + if (p.y > dim.height) + p.y = dim.height; + +- setScrollPosition(p); ++ setScrollPosition (p); + } + } + + /*************************************************************************/ + + /** +- * Lays out this component. This consists of resizing the sole child +- * component to its perferred size. +- * +- * @deprecated This method is deprecated in favor of +- * doLayout(). +- */ +-public void +-layout() +-{ +- doLayout(); +-} +- +-/*************************************************************************/ +- +-/** + * This method overrides its superclass method to ensure no layout + * manager is set for this container. ScrollPane's do + * not have layout managers. +@@ -527,7 +539,19 @@ + public String + paramString() + { +- return(getClass().getName()); ++ Insets insets = getInsets(); ++ return getName() + "," ++ + getX() + "," ++ + getY() + "," ++ + getWidth() + "x" + getHeight() + "," ++ + "ScrollPosition=(" + scrollPosition.getX() + "," ++ + scrollPosition.getY() + ")," ++ + "Insets=(" + insets.top + "," ++ + insets.left + "," ++ + insets.bottom + "," ++ + insets.right + ")," ++ + "ScrollbarDisplayPolicy=" + getScrollbarDisplayPolicy() + "," ++ + "wheelScrollingEnabled=" + isWheelScrollingEnabled(); + } + + /** +Index: java/awt/Scrollbar.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/Scrollbar.java,v +retrieving revision 1.15 +diff -u -r1.15 Scrollbar.java +--- java/awt/Scrollbar.java 5 Jun 2003 19:58:39 -0000 1.15 ++++ java/awt/Scrollbar.java 6 Sep 2004 16:35:46 -0000 +@@ -120,6 +120,11 @@ + + private transient boolean valueIsAdjusting = false; + ++ /* ++ * The number used to generate the name returned by getName. ++ */ ++ private static transient long next_scrollbar_number = 0; ++ + /*************************************************************************/ + + /* +@@ -194,9 +199,8 @@ + // Default is 1 according to online docs. + lineIncrement = 1; + +- pageIncrement = (maximum - minimum) / 5; +- if (pageIncrement == 0) +- pageIncrement = 1; ++ // Default is 10 according to javadocs. ++ pageIncrement = 10; + } + + /*************************************************************************/ +@@ -333,7 +337,7 @@ + public int + getVisibleAmount() + { +- return(visibleAmount); ++ return getVisible (); + } + + /*************************************************************************/ +@@ -350,7 +354,7 @@ + public int + getVisible() + { +- return(getVisibleAmount()); ++ return visibleAmount; + } + + /*************************************************************************/ +@@ -394,15 +398,17 @@ + if (visibleAmount > maximum - minimum) + visibleAmount = maximum - minimum; + ++ ScrollbarPeer peer = (ScrollbarPeer) getPeer (); ++ if (peer != null ++ && (this.value != value || this.visibleAmount != visibleAmount ++ || this.minimum != minimum || this.maximum != maximum)) ++ peer.setValues(value, visibleAmount, minimum, maximum); ++ + this.value = value; + this.visibleAmount = visibleAmount; + this.minimum = minimum; + this.maximum = maximum; + +- ScrollbarPeer sp = (ScrollbarPeer)getPeer(); +- if (sp != null) +- sp.setValues(value, visibleAmount, minimum, maximum); +- + int range = maximum - minimum; + if (lineIncrement > range) + { +@@ -411,8 +417,8 @@ + else + lineIncrement = range; + +- if (sp != null) +- sp.setLineIncrement(lineIncrement); ++ if (peer != null) ++ peer.setLineIncrement(lineIncrement); + } + + if (pageIncrement > range) +@@ -422,8 +428,8 @@ + else + pageIncrement = range; + +- if (sp != null) +- sp.setPageIncrement(pageIncrement); ++ if (peer != null) ++ peer.setPageIncrement(pageIncrement); + } + } + +@@ -438,7 +444,7 @@ + public int + getUnitIncrement() + { +- return(lineIncrement); ++ return getLineIncrement (); + } + + /*************************************************************************/ +@@ -455,7 +461,7 @@ + public int + getLineIncrement() + { +- return(lineIncrement); ++ return lineIncrement; + } + + /*************************************************************************/ +@@ -469,26 +475,7 @@ + public synchronized void + setUnitIncrement(int unitIncrement) + { +- if (unitIncrement < 0) +- throw new IllegalArgumentException("Unit increment less than zero."); +- +- int range = maximum - minimum; +- if (unitIncrement > range) +- { +- if (range == 0) +- unitIncrement = 1; +- else +- unitIncrement = range; +- } +- +- if (unitIncrement == lineIncrement) +- return; +- +- lineIncrement = unitIncrement; +- +- ScrollbarPeer sp = (ScrollbarPeer)getPeer(); +- if (sp != null) +- sp.setLineIncrement(lineIncrement); ++ setLineIncrement (unitIncrement); + } + + /*************************************************************************/ +@@ -505,7 +492,26 @@ + public void + setLineIncrement(int lineIncrement) + { +- setUnitIncrement(lineIncrement); ++ if (lineIncrement < 0) ++ throw new IllegalArgumentException ("Unit increment less than zero."); ++ ++ int range = maximum - minimum; ++ if (lineIncrement > range) ++ { ++ if (range == 0) ++ lineIncrement = 1; ++ else ++ lineIncrement = range; ++ } ++ ++ if (lineIncrement == this.lineIncrement) ++ return; ++ ++ this.lineIncrement = lineIncrement; ++ ++ ScrollbarPeer peer = (ScrollbarPeer) getPeer (); ++ if (peer != null) ++ peer.setLineIncrement (this.lineIncrement); + } + + /*************************************************************************/ +@@ -519,7 +525,7 @@ + public int + getBlockIncrement() + { +- return(pageIncrement); ++ return getPageIncrement (); + } + + /*************************************************************************/ +@@ -536,7 +542,7 @@ + public int + getPageIncrement() + { +- return(pageIncrement); ++ return pageIncrement; + } + + /*************************************************************************/ +@@ -550,26 +556,7 @@ + public synchronized void + setBlockIncrement(int blockIncrement) + { +- if (blockIncrement < 0) +- throw new IllegalArgumentException("Block increment less than zero."); +- +- int range = maximum - minimum; +- if (blockIncrement > range) +- { +- if (range == 0) +- blockIncrement = 1; +- else +- blockIncrement = range; +- } +- +- if (blockIncrement == pageIncrement) +- return; +- +- pageIncrement = blockIncrement; +- +- ScrollbarPeer sp = (ScrollbarPeer)getPeer(); +- if (sp != null) +- sp.setPageIncrement(pageIncrement); ++ setPageIncrement (blockIncrement); + } + + /*************************************************************************/ +@@ -586,7 +573,26 @@ + public void + setPageIncrement(int pageIncrement) + { +- setBlockIncrement(pageIncrement); ++ if (pageIncrement < 0) ++ throw new IllegalArgumentException ("Block increment less than zero."); ++ ++ int range = maximum - minimum; ++ if (pageIncrement > range) ++ { ++ if (range == 0) ++ pageIncrement = 1; ++ else ++ pageIncrement = range; ++ } ++ ++ if (pageIncrement == this.pageIncrement) ++ return; ++ ++ this.pageIncrement = pageIncrement; ++ ++ ScrollbarPeer peer = (ScrollbarPeer) getPeer (); ++ if (peer != null) ++ peer.setPageIncrement (this.pageIncrement); + } + + /*************************************************************************/ +@@ -746,5 +752,20 @@ + { + this.valueIsAdjusting = valueIsAdjusting; + } ++ ++ /** ++ * Generate a unique name for this scroll bar. ++ * ++ * @return A unique name for this scroll bar. ++ */ ++ String generateName () ++ { ++ return "scrollbar" + getUniqueLong (); ++ } ++ ++ private static synchronized long getUniqueLong () ++ { ++ return next_scrollbar_number++; ++ } + } // class Scrollbar + +Index: java/awt/SystemColor.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/SystemColor.java,v +retrieving revision 1.4 +diff -u -r1.4 SystemColor.java +--- java/awt/SystemColor.java 9 Aug 2002 04:26:14 -0000 1.4 ++++ java/awt/SystemColor.java 6 Sep 2004 16:35:47 -0000 +@@ -427,7 +427,7 @@ + * as the system color is solid, the context does not need any of the + * passed parameters to do its job. + * +- * @param cm the requested color model, ignored ++ * @param cm the requested color model + * @param deviceBounds the bounding box in device coordinates, ignored + * @param userBounds the bounding box in user coordinates, ignored + * @param xform the bounds transformation, ignored +@@ -441,8 +441,8 @@ + { + Toolkit.getDefaultToolkit().loadSystemColors(colors); + int color = colors[value] | ALPHA_MASK; +- if (context == null || color != context.color) +- context = new ColorPaintContext(color); ++ if (context == null || color != context.color || !context.getColorModel().equals(cm)) ++ context = new ColorPaintContext(cm,color); + return context; + } + +Index: java/awt/TextArea.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/TextArea.java,v +retrieving revision 1.8 +diff -u -r1.8 TextArea.java +--- java/awt/TextArea.java 5 Jun 2003 19:58:39 -0000 1.8 ++++ java/awt/TextArea.java 6 Sep 2004 16:35:47 -0000 +@@ -1,565 +1,599 @@ +-/* TextArea.java -- A multi-line text entry widget +- Copyright (C) 1999 Free Software Foundation, Inc. ++/* TextArea.java -- A multi-line text entry component ++ Copyright (C) 1999, 2004 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., 59 Temple Place, Suite 330, Boston, MA +-02111-1307 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. */ ++ 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., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 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.awt; + + import java.awt.peer.ComponentPeer; + import java.awt.peer.TextAreaPeer; ++import java.awt.event.KeyEvent; ++import java.util.HashSet; ++import java.util.Set; + +-/** +- * This implements a multi-line text entry widget. +- * +- * @author Aaron M. Renn (arenn@urbanophile.com) +- */ +-public class TextArea extends TextComponent implements java.io.Serializable +-{ +- +-/* +- * Static Variables +- */ +- +-/** +- * Use both horiztonal and vertical scroll bars. +- */ +-public static final int SCROLLBARS_BOTH = 0; +- +-/** +- * Use vertical scroll bars only. +- */ +-public static final int SCROLLBARS_VERTICAL_ONLY = 1; +- +-/** +- * Use horizatonal scroll bars only. +- */ +-public static final int SCROLLBARS_HORIZONTAL_ONLY = 2; +- +-/** +- * Use no scrollbars. +- */ +-public static final int SCROLLBARS_NONE = 3; +- +-// Serialization constant +-private static final long serialVersionUID = 3692302836626095722L; +- +-/*************************************************************************/ +- +-/* +- * Instance Variables +- */ +- +-/** +- * @serial The number of columns in this text area. +- */ +-private int columns; +- +-/** +- * @serial The number of rows in this text area. +- */ +-private int rows; + + /** +- * @serial The type of scrollbars to display, which will be one of +- * the contstants from this class. +- */ +-private int scrollbarVisibility; +- +-/*************************************************************************/ +- +-/* +- * Constructors ++ * A TextArea is a text component capable of displaying multiple lines ++ * of user-editable text. A TextArea handles its own scrolling and ++ * can display vertical and horizontal scrollbars as navigation aids. ++ * ++ * @author Aaron M. Renn (arenn@urbanophile.com) + */ +- +-/** +- * Initialize a new instance of TextArea that is empty +- * and is one row and one column. Both horizontal and vertical +- * scrollbars will be used. +- * +- * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true, +- */ +-public +-TextArea() +-{ +- this("", 1, 1, SCROLLBARS_BOTH); +-} +- +-/*************************************************************************/ +- +-/** +- * Initializes a new instance of TextArea that +- * contains the specified string. Both horizontal and veritcal +- * scrollbars will be used. +- * +- * @param text The text to display in this text area. +- * +- * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true, +- */ +-public +-TextArea(String text) +-{ +- this(text, 1, text.length(), SCROLLBARS_BOTH); +-} +- +-/*************************************************************************/ +- +-/** +- * Initializes a new instance of TextArea that is empty +- * and has the specified number of rows and columns. Both +- * horizontal and vertical scrollbars will be used. +- * +- * @param rows The number of rows in this text area. +- * @param columns The number of columns in this text area. +- * +- * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true, +- */ +-public +-TextArea(int rows, int columns) +-{ +- this("", rows, columns, SCROLLBARS_BOTH); +-} +- +-/*************************************************************************/ +- +-/** +- * Initializes a new instance of TextArea that is the +- * specified size and has the specified text. +- * +- * @param text The text to display in this text area. +- * @param rows The number of rows in this text area. +- * @param columns The number of columns in this text area. +- * +- * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true, +- */ +-public +-TextArea(String text, int rows, int columns) +-{ +- this(text, rows, columns, SCROLLBARS_BOTH); +-} +- +-/*************************************************************************/ +- +-/** +- * Initializes a new instance of TextArea with the +- * specified values. The scrollbar visibility value must be one +- * of the constants in this class. +- * +- * @param text The text to display in this text area. +- * @param rows The number of rows in this text area. +- * @param columns The number of columns in this text area. +- * @param scrollbarVisibility Which scrollbars to display. +- * +- * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true, +- */ +-public +-TextArea(String text, int rows, int columns, int scrollbarVisibility) +-{ +- super(text); +- +- if (GraphicsEnvironment.isHeadless()) +- throw new HeadlessException (); +- +- if ((rows < 1) || (columns < 0)) +- throw new IllegalArgumentException("Bad row or column value"); +- +- if ((scrollbarVisibility != SCROLLBARS_BOTH) && +- (scrollbarVisibility != SCROLLBARS_VERTICAL_ONLY) && +- (scrollbarVisibility != SCROLLBARS_HORIZONTAL_ONLY) && +- (scrollbarVisibility != SCROLLBARS_NONE)) +- throw new IllegalArgumentException("Bad scrollbar visibility value"); +- +- this.rows = rows; +- this.columns = columns; +- this.scrollbarVisibility = scrollbarVisibility; +-} +- +-/*************************************************************************/ +- +-/* +- * Instance Variables +- */ +- +-/** +- * Returns the number of columns in the field. +- * +- * @return The number of columns in the field. +- */ +-public int +-getColumns() +-{ +- return(columns); +-} +- +-/*************************************************************************/ +- +-/** +- * Sets the number of columns in this field to the specified value. +- * +- * @param columns The new number of columns in the field. +- * +- * @exception IllegalArgumentException If columns is less than zero. +- */ +-public synchronized void +-setColumns(int columns) +-{ +- if (columns < 0) +- throw new IllegalArgumentException("Value is less than zero: " + +- columns); +- +- this.columns = columns; +- // FIXME: How to we communicate this to our peer? +-} +- +-/*************************************************************************/ +- +-/** +- * Returns the number of rows in the field. +- * +- * @return The number of rows in the field. +- */ +-public int +-getRows() +-{ +- return(rows); +-} +- +-/*************************************************************************/ +- +-/** +- * Sets the number of rows in this field to the specified value. +- * +- * @param rows The new number of rows in the field. +- * +- * @exception IllegalArgumentException If rows is less than zero. +- */ +-public synchronized void +-setRows(int rows) +-{ +- if (rows < 1) +- throw new IllegalArgumentException("Value is less than one: " + +- rows); +- +- this.rows = rows; +- // FIXME: How to we communicate this to our peer? +-} +- +-/*************************************************************************/ +- +-/** +- * Returns the minimum size for this text field. +- * +- * @return The minimum size for this text field. +- */ +-public Dimension +-getMinimumSize() +-{ +- return(getMinimumSize(getRows(), getColumns())); +-} +- +-/*************************************************************************/ +- +-/** +- * Returns the minimum size of a text field with the specified number +- * of rows and columns. +- * +- * @param rows The number of rows to get the minimum size for. +- * @param columns The number of columns to get the minimum size for. +- */ +-public Dimension +-getMinimumSize(int rows, int columns) +-{ +- TextAreaPeer tap = (TextAreaPeer)getPeer(); +- if (tap == null) +- return(null); // FIXME: What do we do if there is no peer? +- +- return(tap.getMinimumSize(rows, columns)); +-} +- +-/*************************************************************************/ +- +-/** +- * Returns the minimum size for this text field. +- * +- * @return The minimum size for this text field. +- * +- * @deprecated This method is depcreated in favor of +- * getMinimumSize(). +- */ +-public Dimension +-minimumSize() +-{ +- return(getMinimumSize(getRows(), getColumns())); +-} +- +-/*************************************************************************/ +- +-/** +- * Returns the minimum size of a text field with the specified number +- * of rows and columns. +- * +- * @param rows The number of rows to get the minimum size for. +- * @param columns The number of columns to get the minimum size for. +- * +- * @deprecated This method is deprecated in favor of +- * getMinimumSize(int). +- */ +-public Dimension +-minimumSize(int rows, int columns) +-{ +- return(getMinimumSize(rows, columns)); +-} +- +-/*************************************************************************/ +- +-/** +- * Returns the preferred size for this text field. +- * +- * @return The preferred size for this text field. +- */ +-public Dimension +-getPreferredSize() +-{ +- return(getPreferredSize(getRows(), getColumns())); +-} +- +-/*************************************************************************/ +- +-/** +- * Returns the preferred size of a text field with the specified number +- * of rows and columns. +- * +- * @param rows The number of rows to get the preferred size for. +- * @param columns The number of columns to get the preferred size for. +- */ +-public Dimension +-getPreferredSize(int rows, int columns) +-{ +- TextAreaPeer tap = (TextAreaPeer)getPeer(); +- if (tap == null) +- { +- // Sun's JDK just seems to return Dimension(0,0) in this case. +- // we do the same. +- return new Dimension(0, 0); +- } +- +- return(tap.getPreferredSize(rows, columns)); +-} +- +-/*************************************************************************/ +- +-/** +- * Returns the preferred size for this text field. +- * +- * @return The preferred size for this text field. +- * +- * @deprecated This method is deprecated in favor of +- * getPreferredSize(). +- */ +-public Dimension +-preferredSize() +-{ +- return(getPreferredSize(getRows(), getColumns())); +-} +- +-/*************************************************************************/ +- +-/** +- * Returns the preferred size of a text field with the specified number +- * of rows and columns. +- * +- * @param rows The number of rows to get the preferred size for. +- * @param columns The number of columns to get the preferred size for. +- * +- * @deprecated This method is deprecated in favor of +- * getPreferredSize(int). +- */ +-public Dimension +-preferredSize(int rows, int columns) +-{ +- return(getPreferredSize(rows, columns)); +-} +- +-/*************************************************************************/ +- +-/** +- * Returns one of the constants from this class indicating which +- * types of scrollbars this object uses, if any. +- * +- * @return The scrollbar type constant for this object. +- */ +-public int +-getScrollbarVisibility() +-{ +- return(scrollbarVisibility); +-} +- +-/*************************************************************************/ +- +-/** +- * Notify this object that it should create its native peer. +- */ +-public void +-addNotify() +-{ +- if (getPeer() != null) +- return; +- +- setPeer((ComponentPeer)getToolkit().createTextArea(this)); +-} +- +-/*************************************************************************/ +- +-/** +- * Appends the specified text to the end of the current text. +- * +- * @param text The text to append. +- */ +-public void +-append(String str) +-{ +- TextAreaPeer tap = (TextAreaPeer)getPeer(); +- if (tap == null) +- return; +- +- tap.insert(str, tap.getText().length()); +-} +- +-/*************************************************************************/ +- +-/** +- * Appends the specified text to the end of the current text. +- * +- * @param text The text to append. +- * +- * @deprecated This method is deprecated in favor of +- * append(). +- */ +-public void +-appendText(String text) +-{ +- append(text); +-} +- +-/*************************************************************************/ +- +-/** +- * Inserts the specified text at the specified location. +- * +- * @param text The text to insert. +- * @param pos The insert position. +- */ +-public void +-insert(String text, int pos) +-{ +- TextAreaPeer tap = (TextAreaPeer)getPeer(); +- if (tap == null) +- return; +- +- tap.insert(text, pos); +-} +- +-/*************************************************************************/ +- +-/** +- * Inserts the specified text at the specified location. +- * +- * @param text The text to insert. +- * @param pos The insert position. +- * +- * @deprecated This method is depcreated in favor of insert(). +- */ +-public void +-insertText(String text, int pos) +-{ +- insert(text, pos); +-} +- +-/*************************************************************************/ +- +-/** +- * Replaces the text bounded by the specified start and end positions +- * with the specified text. +- * +- * @param text The new text for the range. +- * @param start The start position of the replacement range. +- * @param end The end position of the replacement range. +- */ +-public void +-replaceRange(String text, int start, int end) +-{ +- TextAreaPeer tap = (TextAreaPeer)getPeer(); +- if (tap == null) +- return; +- +- tap.replaceRange(text, start, end); +-} +- +-/*************************************************************************/ +- +-/** +- * Replaces the text bounded by the specified start and end positions +- * with the specified text. +- * +- * @param text The new text for the range. +- * @param start The start position of the replacement range. +- * @param end The end position of the replacement range. +- * +- * @deprecated This method is deprecated in favor of +- * replaceRange(). +- */ +-public void +-replaceText(String text, int start, int end) +-{ +- replaceRange(text, start, end); +-} +- +-/*************************************************************************/ +- +-/** +- * Returns a debugging string for this text area. +- * +- * @return A debugging string for this text area. +- */ +-protected String +-paramString() ++public class TextArea extends TextComponent implements java.io.Serializable + { +- return(getClass().getName() + "(rows=" + getRows() + ",columns=" + +- getColumns() + ",scrollbars=" + getScrollbarVisibility() + +- ")"); ++ /** ++ * Display both horiztonal and vertical scroll bars. ++ */ ++ public static final int SCROLLBARS_BOTH = 0; ++ ++ /** ++ * Display vertical scroll bar only. ++ */ ++ public static final int SCROLLBARS_VERTICAL_ONLY = 1; ++ ++ /** ++ * Display horizatonal scroll bar only. ++ */ ++ public static final int SCROLLBARS_HORIZONTAL_ONLY = 2; ++ ++ /** ++ * Do not display scrollbars. ++ */ ++ public static final int SCROLLBARS_NONE = 3; ++ ++ /** ++ * Serialization constant. ++ */ ++ private static final long serialVersionUID = 3692302836626095722L; ++ ++ /** ++ * @serial The number of columns used in this text area's preferred ++ * and minimum size calculations. ++ */ ++ private int columns; ++ ++ /** ++ * @serial The number of rows used in this text area's preferred and ++ * minimum size calculations. ++ */ ++ private int rows; ++ ++ /** ++ * @serial The scrollbar display policy. One of SCROLLBARS_BOTH, ++ * SCROLLBARS_VERTICAL_ONLY, SCROLLBARS_HORIZONTAL_ONLY, ++ * SCROLLBARS_NONE. ++ */ ++ private int scrollbarVisibility; ++ ++ /* ++ * The number used to generate the name returned by getName. ++ */ ++ private static transient long next_text_number = 0; ++ ++ /** ++ * Initialize a new instance of TextArea that is empty. ++ * Conceptually the TextArea has 0 rows and 0 columns ++ * but its initial bounds are defined by its peer or by the ++ * container in which it is packed. Both horizontal and vertical ++ * scrollbars will be displayed. ++ * ++ * @exception HeadlessException if GraphicsEnvironment.isHeadless () is true ++ */ ++ public TextArea () ++ { ++ this ("", 0, 0, SCROLLBARS_BOTH); ++ } ++ ++ /** ++ * Initialize a new instance of TextArea that contains ++ * the specified text. Conceptually the TextArea has 0 ++ * rows and 0 columns but its initial bounds are defined by its peer ++ * or by the container in which it is packed. Both horizontal and ++ * veritcal scrollbars will be displayed. ++ * ++ * @param text The text to display in this text area. ++ * ++ * @exception HeadlessException if GraphicsEnvironment.isHeadless () is true ++ */ ++ public TextArea (String text) ++ { ++ this (text, 0, 0, SCROLLBARS_BOTH); ++ } ++ ++ /** ++ * Initialize a new instance of TextArea that is empty ++ * and can display the specified number of rows and columns of text, ++ * without the need to scroll. Both horizontal and vertical ++ * scrollbars will be displayed. ++ * ++ * @param rows The number of rows in this text area. ++ * @param columns The number of columns in this text area. ++ * ++ * @exception HeadlessException if GraphicsEnvironment.isHeadless () is true ++ */ ++ public TextArea (int rows, int columns) ++ { ++ this ("", rows, columns, SCROLLBARS_BOTH); ++ } ++ ++ /** ++ * Initialize a new instance of TextArea that can ++ * display the specified number of rows and columns of text, without ++ * the need to scroll. The TextArea initially contains the ++ * specified text. ++ * ++ * @param text The text to display in this text area. ++ * @param rows The number of rows in this text area. ++ * @param columns The number of columns in this text area. ++ * ++ * @exception HeadlessException if GraphicsEnvironment.isHeadless () is true ++ */ ++ public TextArea (String text, int rows, int columns) ++ { ++ this (text, rows, columns, SCROLLBARS_BOTH); ++ } ++ ++ /** ++ * Initialize a new instance of TextArea that initially ++ * contains the specified text. The TextArea can display the ++ * specified number of rows and columns of text, without the need to ++ * scroll. This constructor allows specification of the scroll bar ++ * display policy. ++ * ++ * @param text The text to display in this text area. ++ * @param rows The number of rows in this text area. ++ * @param columns The number of columns in this text area. ++ * @param scrollbarVisibility The scroll bar display policy. One of ++ * SCROLLBARS_BOTH, SCROLLBARS_VERTICAL_ONLY, ++ * SCROLLBARS_HORIZONTAL_ONLY, SCROLLBARS_NONE. ++ * ++ * @exception HeadlessException if GraphicsEnvironment.isHeadless () is true ++ */ ++ public TextArea (String text, int rows, int columns, int scrollbarVisibility) ++ { ++ super (text); ++ ++ if (GraphicsEnvironment.isHeadless ()) ++ throw new HeadlessException (); ++ ++ if (rows < 0 || columns < 0) ++ throw new IllegalArgumentException ("Bad row or column value"); ++ ++ if (scrollbarVisibility != SCROLLBARS_BOTH ++ && scrollbarVisibility != SCROLLBARS_VERTICAL_ONLY ++ && scrollbarVisibility != SCROLLBARS_HORIZONTAL_ONLY ++ && scrollbarVisibility != SCROLLBARS_NONE) ++ throw new IllegalArgumentException ("Bad scrollbar visibility value"); ++ ++ this.rows = rows; ++ this.columns = columns; ++ this.scrollbarVisibility = scrollbarVisibility; ++ ++ // TextAreas need to receive tab key events so we override the ++ // default forward and backward traversal key sets. ++ Set s = new HashSet (); ++ s.add (AWTKeyStroke.getAWTKeyStroke (KeyEvent.VK_TAB, ++ KeyEvent.CTRL_DOWN_MASK)); ++ setFocusTraversalKeys (KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, s); ++ s = new HashSet (); ++ s.add (AWTKeyStroke.getAWTKeyStroke (KeyEvent.VK_TAB, ++ KeyEvent.SHIFT_DOWN_MASK ++ | KeyEvent.CTRL_DOWN_MASK)); ++ setFocusTraversalKeys (KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, s); ++ } ++ ++ /** ++ * Retrieve the number of columns that this text area would prefer ++ * to display. This value may or may not correspond to the number ++ * of columns that are actually displayed. ++ * ++ * @return The preferred number of columns. ++ */ ++ public int getColumns () ++ { ++ return columns; ++ } ++ ++ /** ++ * Set the preferred number of columns for this text area. This ++ * method does not cause the number of columns displayed by the text ++ * area to be updated, if the text area is currently visible. ++ * ++ * @param columns The preferred number of columns. ++ * ++ * @exception IllegalArgumentException If columns is less than zero. ++ */ ++ public synchronized void setColumns (int columns) ++ { ++ if (columns < 0) ++ throw new IllegalArgumentException ("Value is less than zero: " ++ + columns); ++ ++ this.columns = columns; ++ } ++ ++ /** ++ * Retrieve the number of rows that this text area would prefer to ++ * display. This value may or may not correspond to the number of ++ * rows that are actually displayed. ++ * ++ * @return The preferred number of rows. ++ */ ++ public int getRows () ++ { ++ return rows; ++ } ++ ++ /** ++ * Set the preferred number of rows for this text area. This method ++ * does not cause the number of columns displayed by the text area ++ * to be updated, if the text area is currently visible. ++ * ++ * @param rows The preferred number of rows. ++ * ++ * @exception IllegalArgumentException If rows is less than zero. ++ */ ++ public synchronized void setRows (int rows) ++ { ++ if (rows < 1) ++ throw new IllegalArgumentException ("Value is less than one: " + rows); ++ ++ this.rows = rows; ++ } ++ ++ /** ++ * Retrieve the minimum size for this text area, considering the ++ * text area's current row and column values. A text area's minimum ++ * size depends on the number of rows and columns of text it would ++ * prefer to display, and on the size of the font in which the text ++ * would be displayed. ++ * ++ * @return The minimum size for this text field. ++ */ ++ public Dimension getMinimumSize () ++ { ++ return getMinimumSize (getRows (), getColumns ()); ++ } ++ ++ /** ++ * Retrieve the minimum size that this text area would have if its ++ * row and column values were equal to those specified. A text ++ * area's minimum size depends on the number of rows and columns of ++ * text it would prefer to display, and on the size of the font in ++ * which the text would be displayed. ++ * ++ * @param rows The number of rows to use in the minimum size ++ * calculation. ++ * @param columns The number of columns to use in the minimum size ++ * calculation. ++ * ++ * @return The minimum size for this text area. ++ */ ++ public Dimension getMinimumSize (int rows, int columns) ++ { ++ return minimumSize (rows, columns); ++ } ++ ++ /** ++ * Retrieve the minimum size for this text area, considering the ++ * text area's current row and column values. A text area's minimum ++ * size depends on the number of rows and columns of text it would ++ * prefer to display, and on the size of the font in which the text ++ * would be displayed. ++ * ++ * @return The minimum size for this text area. ++ * ++ * @deprecated This method is deprecated in favor of ++ * getMinimumSize (). ++ */ ++ public Dimension minimumSize () ++ { ++ return minimumSize (getRows (), getColumns ()); ++ } ++ ++ /** ++ * Retrieve the minimum size that this text area would have if its ++ * row and column values were equal to those specified. A text ++ * area's minimum size depends on the number of rows and columns of ++ * text it would prefer to display, and on the size of the font in ++ * which the text would be displayed. ++ * ++ * @param rows The number of rows to use in the minimum size ++ * calculation. ++ * @param columns The number of columns to use in the minimum size ++ * calculation. ++ * ++ * @return The minimum size for this text area. ++ * ++ * @deprecated This method is deprecated in favor of ++ * getMinimumSize (int, int). ++ */ ++ public Dimension minimumSize (int rows, int columns) ++ { ++ TextAreaPeer peer = (TextAreaPeer) getPeer (); ++ ++ // Sun returns Dimension (0,0) in this case. ++ if (peer == null) ++ return new Dimension (0, 0); ++ ++ return peer.getMinimumSize (rows, columns); ++ } ++ ++ /** ++ * Retrieve the preferred size for this text area, considering the ++ * text area's current row and column values. A text area's preferred ++ * size depends on the number of rows and columns of text it would ++ * prefer to display, and on the size of the font in which the text ++ * would be displayed. ++ * ++ * @return The preferred size for this text field. ++ */ ++ public Dimension getPreferredSize () ++ { ++ return getPreferredSize (getRows (), getColumns ()); ++ } ++ ++ /** ++ * Retrieve the preferred size that this text area would have if its ++ * row and column values were equal to those specified. A text ++ * area's preferred size depends on the number of rows and columns ++ * of text it would prefer to display, and on the size of the font ++ * in which the text would be displayed. ++ * ++ * @param rows The number of rows to use in the preferred size ++ * calculation. ++ * @param columns The number of columns to use in the preferred size ++ * calculation. ++ * ++ * @return The preferred size for this text area. ++ */ ++ public Dimension getPreferredSize (int rows, int columns) ++ { ++ return preferredSize (rows, columns); ++ } ++ ++ /** ++ * Retrieve the preferred size for this text area, considering the ++ * text area's current row and column values. A text area's preferred ++ * size depends on the number of rows and columns of text it would ++ * prefer to display, and on the size of the font in which the text ++ * would be displayed. ++ * ++ * @return The preferred size for this text field. ++ * ++ * @deprecated This method is deprecated in favor of ++ * getPreferredSize (). ++ */ ++ public Dimension preferredSize () ++ { ++ return preferredSize (getRows (), getColumns ()); ++ } ++ ++ /** ++ * Retrieve the preferred size that this text area would have if its ++ * row and column values were equal to those specified. A text ++ * area's preferred size depends on the number of rows and columns ++ * of text it would prefer to display, and on the size of the font ++ * in which the text would be displayed. ++ * ++ * @param rows The number of rows to use in the preferred size ++ * calculation. ++ * @param columns The number of columns to use in the preferred size ++ * calculation. ++ * ++ * @return The preferred size for this text area. ++ * ++ * @deprecated This method is deprecated in favor of ++ * getPreferredSize (int, int). ++ */ ++ public Dimension preferredSize (int rows, int columns) ++ { ++ TextAreaPeer peer = (TextAreaPeer) getPeer (); ++ ++ // Sun returns Dimension (0,0) in this case. ++ if (peer == null) ++ return new Dimension (0, 0); ++ ++ return peer.getPreferredSize (rows, columns); ++ } ++ ++ /** ++ * Retrieve the scroll bar display policy -- one of SCROLLBARS_BOTH, ++ * SCROLLBARS_VERTICAL_ONLY, SCROLLBARS_HORIZONTAL_ONLY, ++ * SCROLLBARS_NONE. ++ * ++ * @return The current scroll bar display policy. ++ */ ++ public int getScrollbarVisibility () ++ { ++ return scrollbarVisibility; ++ } ++ ++ /** ++ * Notify this object that it should create its native peer. ++ */ ++ public void addNotify () ++ { ++ if (getPeer () == null) ++ setPeer ((ComponentPeer) getToolkit().createTextArea (this)); ++ } ++ ++ /** ++ * Append the specified text to the end of the current text. ++ * ++ * @param str The text to append. ++ */ ++ public void append (String str) ++ { ++ appendText (str); ++ } ++ ++ /** ++ * Append the specified text to the end of the current text. ++ * ++ * @param str The text to append. ++ * ++ * @deprecated This method is deprecated in favor of ++ * append (). ++ */ ++ public void appendText (String str) ++ { ++ TextAreaPeer peer = (TextAreaPeer) getPeer (); ++ ++ if (peer != null) ++ peer.insert (str, peer.getText().length ()); ++ } ++ ++ /** ++ * Insert the specified text at the specified position. The first ++ * character in the text area is at position zero. ++ * ++ * @param str The text to insert. ++ * @param pos The position at which to insert text. ++ */ ++ public void insert (String str, int pos) ++ { ++ insertText (str, pos); ++ } ++ ++ /** ++ * Insert the specified text at the specified position. The first ++ * character in the text area is at position zero. ++ * ++ * @param str The text to insert. ++ * @param pos The position at which to insert text. ++ * ++ * @deprecated This method is deprecated in favor of ++ * insert (). ++ */ ++ public void insertText (String str, int pos) ++ { ++ TextAreaPeer peer = (TextAreaPeer) getPeer (); ++ ++ if (peer != null) ++ peer.insert (str, pos); ++ } ++ ++ /** ++ * Replace a range of characters with the specified text. The ++ * character at the start position will be replaced, unless start == ++ * end. The character at the end posistion will not be replaced. ++ * The first character in the text area is at position zero. The ++ * length of the replacement text may differ from the length of the ++ * text that is replaced. ++ * ++ * @param str The new text for the range. ++ * @param start The start position of the replacement range. ++ * @param end The end position of the replacement range. ++ */ ++ public void replaceRange (String str, int start, int end) ++ { ++ replaceText (str, start, end); ++ } ++ ++ /** ++ * Replace a range of characters with the specified text. The ++ * character at the start position will be replaced, unless start == ++ * end. The character at the end posistion will not be replaced. ++ * The first character in the text area is at position zero. The ++ * length of the replacement text may differ from the length of the ++ * text that is replaced. ++ * ++ * @param str The new text for the range. ++ * @param start The start position of the replacement range. ++ * @param end The end position of the replacement range. ++ * ++ * @deprecated This method is deprecated in favor of ++ * replaceRange (). ++ */ ++ public void replaceText (String str, int start, int end) ++ { ++ TextAreaPeer peer = (TextAreaPeer) getPeer (); ++ ++ if (peer != null) ++ peer.replaceRange (str, start, end); ++ } ++ ++ /** ++ * Retrieve a debugging string for this text area. ++ * ++ * @return A debugging string for this text area. ++ */ ++ protected String paramString () ++ { ++ String sbVisibility = ""; ++ ++ switch (scrollbarVisibility) ++ { ++ case SCROLLBARS_BOTH: ++ sbVisibility = "both"; ++ break; ++ case SCROLLBARS_VERTICAL_ONLY: ++ sbVisibility = "vertical-only"; ++ break; ++ case SCROLLBARS_HORIZONTAL_ONLY: ++ sbVisibility = "horizontal-only"; ++ break; ++ case SCROLLBARS_NONE: ++ sbVisibility = "none"; ++ break; ++ } ++ ++ String editable = ""; ++ if (isEditable ()) ++ editable = "editable,"; ++ ++ return getName () + "," + getX () + "," + getY () + "," + getWidth () ++ + "x" + getHeight () + "," + "text=" + getText () + "," + editable ++ + "selection=" + getSelectionStart () + "-" + getSelectionEnd () ++ + ",rows=" + rows + ",columns=" + columns + ",scrollbarVisibility=" ++ + sbVisibility; ++ } ++ ++ /** ++ * Generate a unique name for this text area. ++ * ++ * @return A unique name for this text area. ++ */ ++ String generateName () ++ { ++ return "text" + getUniqueLong (); ++ } ++ ++ private static synchronized long getUniqueLong () ++ { ++ return next_text_number++; ++ } + } +- +-} // class TextArea +- +Index: java/awt/TextComponent.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/TextComponent.java,v +retrieving revision 1.11 +diff -u -r1.11 TextComponent.java +--- java/awt/TextComponent.java 4 Dec 2003 19:31:01 -0000 1.11 ++++ java/awt/TextComponent.java 6 Sep 2004 16:35:47 -0000 +@@ -41,7 +41,6 @@ + import java.awt.event.TextEvent; + import java.awt.event.TextListener; + import java.awt.peer.TextComponentPeer; +-import java.awt.peer.ComponentPeer; + import java.io.Serializable; + import java.util.EventListener; + +@@ -142,6 +141,7 @@ + TextComponentPeer tcp = (TextComponentPeer)getPeer(); + if (tcp != null) + tcp.setText(text); ++ setCaretPosition(0); + } + + /*************************************************************************/ +@@ -234,11 +234,11 @@ + * specified start and end positions. Illegal values for these + * positions are silently fixed. + * +- * @param startSelection The new start position for the selected text. +- * @param endSelection The new end position for the selected text. ++ * @param selectionStart The new start position for the selected text. ++ * @param selectionEnd The new end position for the selected text. + */ + public synchronized void +-select(int selectionStart, int endSelection) ++select(int selectionStart, int selectionEnd) + { + if (selectionStart < 0) + selectionStart = 0; +Index: java/awt/TextField.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/TextField.java,v +retrieving revision 1.8 +diff -u -r1.8 TextField.java +--- java/awt/TextField.java 5 Jun 2003 19:58:39 -0000 1.8 ++++ java/awt/TextField.java 6 Sep 2004 16:35:47 -0000 +@@ -212,11 +212,7 @@ + public void + setEchoChar(char echoChar) + { +- this.echoChar = echoChar; +- +- TextFieldPeer tfp = (TextFieldPeer)getPeer(); +- if (tfp != null) +- tfp.setEchoChar(echoChar); ++ setEchoCharacter (echoChar); + } + + /*************************************************************************/ +@@ -233,7 +229,11 @@ + public void + setEchoCharacter(char echoChar) + { +- setEchoChar(echoChar); ++ this.echoChar = echoChar; ++ ++ TextFieldPeer peer = (TextFieldPeer) getPeer (); ++ if (peer != null) ++ peer.setEchoChar (echoChar); + } + + /*************************************************************************/ +@@ -264,7 +264,7 @@ + public Dimension + getMinimumSize() + { +- return(getMinimumSize(getColumns())); ++ return getMinimumSize (getColumns ()); + } + + /*************************************************************************/ +@@ -278,11 +278,7 @@ + public Dimension + getMinimumSize(int columns) + { +- TextFieldPeer tfp = (TextFieldPeer)getPeer(); +- if (tfp == null) +- return(null); // FIXME: What do we do if there is no peer? +- +- return(tfp.getMinimumSize(columns)); ++ return minimumSize (columns); + } + + /*************************************************************************/ +@@ -292,13 +288,13 @@ + * + * @return The minimum size for this text field. + * +- * @deprecated This method is depcreated in favor of ++ * @deprecated This method is deprecated in favor of + * getMinimumSize(). + */ + public Dimension + minimumSize() + { +- return(getMinimumSize(getColumns())); ++ return minimumSize (getColumns ()); + } + + /*************************************************************************/ +@@ -315,7 +311,11 @@ + public Dimension + minimumSize(int columns) + { +- return(getMinimumSize(columns)); ++ TextFieldPeer peer = (TextFieldPeer) getPeer (); ++ if (peer == null) ++ return null; // FIXME: What do we do if there is no peer? ++ ++ return peer.getMinimumSize (columns); + } + + /*************************************************************************/ +@@ -328,7 +328,7 @@ + public Dimension + getPreferredSize() + { +- return(getPreferredSize(getColumns())); ++ return getPreferredSize (getColumns ()); + } + + /*************************************************************************/ +@@ -342,12 +342,7 @@ + public Dimension + getPreferredSize(int columns) + { +- TextFieldPeer tfp = (TextFieldPeer)getPeer(); +- if (tfp == null) +- { +- return new Dimension(0, 0); +- } +- return(tfp.getPreferredSize(columns)); ++ return preferredSize (columns); + } + + /*************************************************************************/ +@@ -363,7 +358,7 @@ + public Dimension + preferredSize() + { +- return(getPreferredSize(getColumns())); ++ return preferredSize (getColumns ()); + } + + /*************************************************************************/ +@@ -380,7 +375,11 @@ + public Dimension + preferredSize(int columns) + { +- return(getPreferredSize(columns)); ++ TextFieldPeer peer = (TextFieldPeer) getPeer (); ++ if (peer == null) ++ return new Dimension (0, 0); ++ ++ return peer.getPreferredSize (columns); + } + + /*************************************************************************/ +Index: java/awt/Toolkit.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/Toolkit.java,v +retrieving revision 1.25 +diff -u -r1.25 Toolkit.java +--- java/awt/Toolkit.java 18 Sep 2003 22:37:48 -0000 1.25 ++++ java/awt/Toolkit.java 6 Sep 2004 16:35:47 -0000 +@@ -1,5 +1,6 @@ + /* Toolkit.java -- AWT Toolkit superclass +- Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 ++ Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -365,15 +366,46 @@ + + /** + * Copies the current system colors into the specified array. This is +- * the interface used by the SystemColors class. ++ * the interface used by the SystemColor class. Although ++ * this method fills in the array with some default colors a real Toolkit ++ * should override this method and provide real system colors for the ++ * native GUI platform. + * + * @param colors The array to copy the system colors into. ++ * It must be at least 26 elements. + * + * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true. ++ * ++ * @see java.awt.SystemColor + */ + protected void loadSystemColors(int systemColors[]) + { +- // XXX Implement. ++ systemColors[SystemColor.DESKTOP] = 0xFF005C5C; ++ systemColors[SystemColor.ACTIVE_CAPTION] = 0xFF000080; ++ systemColors[SystemColor.ACTIVE_CAPTION_TEXT] = 0xFFFFFFFF; ++ systemColors[SystemColor.ACTIVE_CAPTION_BORDER] = 0xFFC0C0C0; ++ systemColors[SystemColor.INACTIVE_CAPTION] = 0xFF808080; ++ systemColors[SystemColor.INACTIVE_CAPTION_TEXT] = 0xFFC0C0C0; ++ systemColors[SystemColor.INACTIVE_CAPTION_BORDER] = 0xFFC0C0C0; ++ systemColors[SystemColor.WINDOW] = 0xFFFFFFFF; ++ systemColors[SystemColor.WINDOW_BORDER] = 0xFF000000; ++ systemColors[SystemColor.WINDOW_TEXT] = 0xFF000000; ++ systemColors[SystemColor.MENU] = 0xFFC0C0C0; ++ systemColors[SystemColor.MENU_TEXT] = 0xFF000000; ++ systemColors[SystemColor.TEXT] = 0xFFC0C0C0; ++ systemColors[SystemColor.TEXT_TEXT] = 0xFF000000; ++ systemColors[SystemColor.TEXT_HIGHLIGHT] = 0xFF000090; ++ systemColors[SystemColor.TEXT_HIGHLIGHT_TEXT] = 0xFFFFFFFF; ++ systemColors[SystemColor.TEXT_INACTIVE_TEXT] = 0xFF808080; ++ systemColors[SystemColor.CONTROL] = 0xFFC0C0C0; ++ systemColors[SystemColor.CONTROL_TEXT] = 0xFF000000; ++ systemColors[SystemColor.CONTROL_HIGHLIGHT] = 0xFFFFFFFF; ++ systemColors[SystemColor.CONTROL_LT_HIGHLIGHT] = 0xFFE0E0E0; ++ systemColors[SystemColor.CONTROL_SHADOW] = 0xFF808080; ++ systemColors[SystemColor.CONTROL_DK_SHADOW] = 0xFF000000; ++ systemColors[SystemColor.SCROLLBAR] = 0xFFE0E0E0; ++ systemColors[SystemColor.INFO] = 0xFFE0E000; ++ systemColors[SystemColor.INFO_TEXT] = 0xFF000000; + } + + /** +Index: java/awt/Window.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/Window.java,v +retrieving revision 1.32 +diff -u -r1.32 Window.java +--- java/awt/Window.java 24 Oct 2003 19:40:29 -0000 1.32 ++++ java/awt/Window.java 6 Sep 2004 16:35:47 -0000 +@@ -38,6 +38,9 @@ + + package java.awt; + ++import java.awt.event.ComponentEvent; ++import java.awt.event.FocusEvent; ++import java.awt.event.WindowAdapter; + import java.awt.event.WindowEvent; + import java.awt.event.WindowFocusListener; + import java.awt.event.WindowListener; +@@ -82,6 +85,10 @@ + private transient GraphicsConfiguration graphicsConfiguration; + private transient AccessibleContext accessibleContext; + ++ private transient boolean shown; ++ ++ private transient Component windowFocusOwner; ++ + /** + * This (package access) constructor is used by subclasses that want + * to build windows that do not have parents. Eg. toplevel +@@ -91,7 +98,37 @@ + Window() + { + visible = false; ++ // Windows are the only Containers that default to being focus ++ // cycle roots. ++ focusCycleRoot = true; + setLayout(new BorderLayout()); ++ ++ addWindowFocusListener (new WindowAdapter () ++ { ++ public void windowGainedFocus (WindowEvent event) ++ { ++ if (windowFocusOwner != null) ++ { ++ // FIXME: move this section and the other similar ++ // sections in Component into a separate method. ++ EventQueue eq = Toolkit.getDefaultToolkit ().getSystemEventQueue (); ++ synchronized (eq) ++ { ++ KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager (); ++ Component currentFocusOwner = manager.getGlobalPermanentFocusOwner (); ++ if (currentFocusOwner != null) ++ { ++ eq.postEvent (new FocusEvent (currentFocusOwner, FocusEvent.FOCUS_LOST, ++ false, windowFocusOwner)); ++ eq.postEvent (new FocusEvent (windowFocusOwner, FocusEvent.FOCUS_GAINED, ++ false, currentFocusOwner)); ++ } ++ else ++ eq.postEvent (new FocusEvent (windowFocusOwner, FocusEvent.FOCUS_GAINED, false)); ++ } ++ } ++ } ++ }); + } + + Window(GraphicsConfiguration gc) +@@ -241,6 +278,23 @@ + validate(); + super.show(); + toFront(); ++ ++ KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager (); ++ manager.setGlobalFocusedWindow (this); ++ ++ if (!shown) ++ { ++ FocusTraversalPolicy policy = getFocusTraversalPolicy (); ++ Component initialFocusOwner = null; ++ ++ if (policy != null) ++ initialFocusOwner = policy.getInitialComponent (this); ++ ++ if (initialFocusOwner != null) ++ initialFocusOwner.requestFocusInWindow (false); ++ ++ shown = true; ++ } + } + + public void hide() +@@ -626,10 +680,31 @@ + * @return The component that has focus, or null if no + * component has focus. + */ +- public Component getFocusOwner() ++ public Component getFocusOwner () + { +- // FIXME +- return null; ++ KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager (); ++ ++ Window activeWindow = manager.getActiveWindow (); ++ ++ // The currently-focused Component belongs to the active Window. ++ if (activeWindow == this) ++ return manager.getFocusOwner (); ++ else ++ return windowFocusOwner; ++ } ++ ++ /** ++ * Set the focus owner for this window. This method is used to ++ * remember which component was focused when this window lost ++ * top-level focus, so that when it regains top-level focus the same ++ * child component can be refocused. ++ * ++ * @param windowFocusOwner the component in this window that owns ++ * the focus. ++ */ ++ void setFocusOwner (Component windowFocusOwner) ++ { ++ this.windowFocusOwner = windowFocusOwner; + } + + /** +@@ -641,8 +716,7 @@ + */ + public boolean postEvent(Event e) + { +- // FIXME +- return false; ++ return handleEvent (e); + } + + /** +@@ -673,7 +747,8 @@ + */ + public void applyResourceBundle(String rbName) + { +- ResourceBundle rb = ResourceBundle.getBundle(rbName); ++ ResourceBundle rb = ResourceBundle.getBundle(rbName, Locale.getDefault(), ++ ClassLoader.getSystemClassLoader()); + if (rb != null) + applyResourceBundle(rb); + } +@@ -784,9 +859,23 @@ + if (this.x == x && this.y == y && width == w && height == h) + return; + invalidate(); ++ boolean resized = width != w || height != h; ++ boolean moved = this.x != x || this.y != y; + this.x = x; + this.y = y; + width = w; + height = h; ++ if (resized) ++ { ++ ComponentEvent ce = ++ new ComponentEvent(this, ComponentEvent.COMPONENT_RESIZED); ++ getToolkit().getSystemEventQueue().postEvent(ce); ++ } ++ if (moved) ++ { ++ ComponentEvent ce = ++ new ComponentEvent(this, ComponentEvent.COMPONENT_MOVED); ++ getToolkit().getSystemEventQueue().postEvent(ce); ++ } + } + } +Index: java/awt/datatransfer/DataFlavor.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/datatransfer/DataFlavor.java,v +retrieving revision 1.12 +diff -u -r1.12 DataFlavor.java +--- java/awt/datatransfer/DataFlavor.java 8 Dec 2003 23:37:58 -0000 1.12 ++++ java/awt/datatransfer/DataFlavor.java 6 Sep 2004 16:35:47 -0000 +@@ -1,5 +1,5 @@ + /* DataFlavor.java -- A type of data to transfer via the clipboard. +- Copyright (C) 1999, 2001 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2001, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -60,11 +60,7 @@ + { + static final long serialVersionUID = 8367026044764648243L; + +-// FIXME: Serialization: Need to write methods for. +- +-/* +- * Static Variables +- */ ++ // FIXME: Serialization: Need to write methods for. + + /** + * This is the data flavor used for tranferring plain text. The MIME +@@ -90,6 +86,10 @@ + */ + public static final DataFlavor javaFileListFlavor; + ++/** ++ * This is an image flavor used for transferring images. The ++ * representation type is a java.awt.Image. ++ */ + public static final DataFlavor imageFlavor; + + /** +@@ -105,7 +105,7 @@ + * being transferred. + */ + public static final String javaJVMLocalObjectMimeType = +- "application/x-java-jvm-local-object"; ++ "application/x-java-jvm-local-objectref"; + + /** + * This is the MIME type used to transfer a link to a remote object. +@@ -270,7 +270,7 @@ + /** + * Initializes a new instance of DataFlavor with the + * specified MIME type and description. If the MIME type has a +- * "class=" parameter then the representation class will ++ * "class=<rep class>" parameter then the representation class will + * be the class name specified. Otherwise the class defaults to + * java.io.InputStream. If the human readable name + * is not specified (null) then the human readable name +@@ -319,7 +319,7 @@ + /** + * Initializes a new instance of DataFlavor with the + * specified MIME type and description. If the MIME type has a +- * "class=" parameter then the representation class will ++ * "class=<rep class>" parameter then the representation class will + * be the class name specified. Otherwise the class defaults to + * java.io.InputStream. If the human readable name + * is not specified (null) then the human readable name +@@ -709,10 +709,10 @@ + * are met: + *

    + *

      +- *
    • The object is not null. +- *
    • The object is an instance of DataFlavor. ++ *
    • The object is not null.
    • ++ *
    • The object is an instance of DataFlavor.
    • + *
    • The object's MIME type and representation class are equal to +- * this object's. ++ * this object's.
    • + *
    + * + * @param obj The Object to test against. +Index: java/awt/event/InvocationEvent.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/event/InvocationEvent.java,v +retrieving revision 1.4 +diff -u -r1.4 InvocationEvent.java +--- java/awt/event/InvocationEvent.java 9 Aug 2002 04:26:15 -0000 1.4 ++++ java/awt/event/InvocationEvent.java 6 Sep 2004 16:35:48 -0000 +@@ -189,8 +189,13 @@ + } + else + runnable.run(); +- if (notifier != null) +- notifier.notifyAll(); ++ ++ Object o = notifier; ++ if (o != null) ++ synchronized(o) ++ { ++ o.notifyAll(); ++ } + } + + /** +Index: java/awt/event/MouseEvent.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/event/MouseEvent.java,v +retrieving revision 1.5 +diff -u -r1.5 MouseEvent.java +--- java/awt/event/MouseEvent.java 9 Aug 2002 04:26:15 -0000 1.5 ++++ java/awt/event/MouseEvent.java 6 Sep 2004 16:35:48 -0000 +@@ -220,11 +220,11 @@ + if ((modifiers & EventModifier.OLD_MASK) != 0) + { + if ((modifiers & BUTTON1_MASK) != 0) +- button = BUTTON1; ++ this.button = BUTTON1; + else if ((modifiers & BUTTON2_MASK) != 0) +- button = BUTTON2; ++ this.button = BUTTON2; + else if ((modifiers & BUTTON3_MASK) != 0) +- button = BUTTON3; ++ this.button = BUTTON3; + } + } + +Index: java/awt/geom/AffineTransform.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/geom/AffineTransform.java,v +retrieving revision 1.7 +diff -u -r1.7 AffineTransform.java +--- java/awt/geom/AffineTransform.java 17 Sep 2003 19:06:55 -0000 1.7 ++++ java/awt/geom/AffineTransform.java 6 Sep 2004 16:35:48 -0000 +@@ -226,7 +226,7 @@ + private double m00; + + /** +- * The Y coordinate scaling element of the transform matrix. ++ * The Y coordinate shearing element of the transform matrix. + * + * @serial matrix[1,0] + */ +@@ -240,7 +240,7 @@ + private double m01; + + /** +- * The Y coordinate shearing element of the transform matrix. ++ * The Y coordinate scaling element of the transform matrix. + * + * @serial matrix[1,1] + */ +@@ -738,10 +738,10 @@ + */ + public void shear(double shx, double shy) + { +- double n00 = m00 + shx * m01; +- double n01 = shx * m00 + m01; +- double n10 = m10 * shy + m11; +- double n11 = shx * m10 + m11; ++ double n00 = m00 + (shy * m01); ++ double n01 = m01 + (shx * m00); ++ double n10 = m10 + (shy * m11); ++ double n11 = m11 + (shx * m10); + m00 = n00; + m01 = n01; + m10 = n10; +@@ -996,6 +996,38 @@ + * map multiple points to the same line or point). A transform exists only + * if getDeterminant() has a non-zero value. + * ++ * The inverse is calculated as: ++ * ++ *
    ++   *
    ++   * Let A be the matrix for which we want to find the inverse:
    ++   *
    ++   * A = [ m00 m01 m02 ]
    ++   *     [ m10 m11 m12 ]
    ++   *     [ 0   0   1   ] 
    ++   *
    ++   *
    ++   *                 1    
    ++   * inverse (A) =  ---   x  adjoint(A) 
    ++   *                det 
    ++   *
    ++   *
    ++   *
    ++   *             =   1       [  m11  -m01   m01*m12-m02*m11  ]
    ++   *                ---   x  [ -m10   m00  -m00*m12+m10*m02  ]
    ++   *                det      [  0     0     m00*m11-m10*m01  ]
    ++   *
    ++   *
    ++   *
    ++   *             = [  m11/det  -m01/det   m01*m12-m02*m11/det ]
    ++   *               [ -m10/det   m00/det  -m00*m12+m10*m02/det ]
    ++   *               [   0           0          1               ]
    ++   *
    ++   *
    ++   * 
    ++ * ++ * ++ * + * @return a new inverse transform + * @throws NoninvertibleTransformException if inversion is not possible + * @see #getDeterminant() +@@ -1006,8 +1038,15 @@ + double det = getDeterminant(); + if (det == 0) + throw new NoninvertibleTransformException("can't invert transform"); +- return new AffineTransform(m11 / det, -m10 / det, m01 / det, -m00 / det, +- -m02, -m12); ++ ++ double im00 = m11 / det; ++ double im10 = -m10 / det; ++ double im01 = -m01 / det; ++ double im11 = m00 / det; ++ double im02 = (m01 * m12 - m02 * m11) / det; ++ double im12 = (-m00 * m12 + m10 * m02) / det; ++ ++ return new AffineTransform (im00, im10, im01, im11, im02, im12); + } + + /** +Index: java/awt/geom/Arc2D.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/geom/Arc2D.java,v +retrieving revision 1.3 +diff -u -r1.3 Arc2D.java +--- java/awt/geom/Arc2D.java 17 Sep 2003 19:06:55 -0000 1.3 ++++ java/awt/geom/Arc2D.java 6 Sep 2004 16:35:49 -0000 +@@ -50,7 +50,7 @@ + * and while the angle can be any value, the path iterator only traverses the + * first 360 degrees. Storage is up to the subclasses. + * +- * @author Eric Blake ++ * @author Eric Blake (ebb9@email.byu.edu) + * @since 1.2 + * @status updated to 1.4, but still missing functionality + */ +@@ -527,7 +527,7 @@ + * This class is used to iterate over an arc. Since ellipses are a subclass + * of arcs, this is used by Ellipse2D as well. + * +- * @author Eric Blake ++ * @author Eric Blake (ebb9@email.byu.edu) + */ + static final class ArcIterator implements PathIterator + { +@@ -766,7 +766,7 @@ + /** + * This class implements an arc in double precision. + * +- * @author Eric Blake x
    coordinate of the curve’s start + * point. + */ + public abstract double getX1(); + +- + /** + * Returns the y coordinate of the curve’s start + * point. + */ + public abstract double getY1(); + +- + /** + * Returns the curve’s start point. + */ + public abstract Point2D getP1(); + +- + /** + * Returns the x coordinate of the curve’s first + * control point. + */ + public abstract double getCtrlX1(); + +- + /** + * Returns the y coordinate of the curve’s first + * control point. + */ + public abstract double getCtrlY1(); + +- + /** + * Returns the curve’s first control point. + */ + public abstract Point2D getCtrlP1(); + +- + /** + * Returns the x coordinate of the curve’s second + * control point. + */ + public abstract double getCtrlX2(); + +- + /** + * Returns the y coordinate of the curve’s second + * control point. + */ + public abstract double getCtrlY2(); + +- + /** + * Returns the curve’s second control point. + */ + public abstract Point2D getCtrlP2(); + +- + /** + * Returns the x coordinate of the curve’s end + * point. + */ + public abstract double getX2(); + +- + /** + * Returns the y coordinate of the curve’s end + * point. + */ + public abstract double getY2(); + +- + /** + * Returns the curve’s end point. + */ + public abstract Point2D getP2(); + +- + /** + * Changes the curve geometry, separately specifying each coordinate + * value. +@@ -183,7 +171,6 @@ + public abstract void setCurve(double x1, double y1, double cx1, double cy1, + double cx2, double cy2, double x2, double y2); + +- + /** + * Changes the curve geometry, specifying coordinate values in an + * array. +@@ -206,13 +193,11 @@ + */ + public void setCurve(double[] coords, int offset) + { +- setCurve(coords[offset++], coords[offset++], +- coords[offset++], coords[offset++], +- coords[offset++], coords[offset++], ++ setCurve(coords[offset++], coords[offset++], coords[offset++], ++ coords[offset++], coords[offset++], coords[offset++], + coords[offset++], coords[offset++]); + } + +- + /** + * Changes the curve geometry, specifying coordinate values in + * separate Point objects. +@@ -232,11 +217,10 @@ + */ + public void setCurve(Point2D p1, Point2D c1, Point2D c2, Point2D p2) + { +- setCurve(p1.getX(), p1.getY(), c1.getX(), c1.getY(), +- c2.getX(), c2.getY(), p2.getX(), p2.getY()); ++ setCurve(p1.getX(), p1.getY(), c1.getX(), c1.getY(), c2.getX(), c2.getY(), ++ p2.getX(), p2.getY()); + } + +- + /** + * Changes the curve geometry, specifying coordinate values in an + * array of Point objects. +@@ -258,12 +242,10 @@ + */ + public void setCurve(Point2D[] pts, int offset) + { +- setCurve(pts[offset].getX(), pts[offset++].getY(), +- pts[offset].getX(), pts[offset++].getY(), +- pts[offset].getX(), pts[offset++].getY(), ++ setCurve(pts[offset].getX(), pts[offset++].getY(), pts[offset].getX(), ++ pts[offset++].getY(), pts[offset].getX(), pts[offset++].getY(), + pts[offset].getX(), pts[offset++].getY()); + } +- + + /** + * Changes the curve geometry to that of another curve. +@@ -276,7 +258,6 @@ + c.getCtrlX2(), c.getCtrlY2(), c.getX2(), c.getY2()); + } + +- + /** + * Calculates the squared flatness of a cubic curve, directly + * specifying each coordinate value. The flatness is the maximal +@@ -309,7 +290,6 @@ + Line2D.ptSegDistSq(x1, y1, x2, y2, cx2, cy2)); + } + +- + /** + * Calculates the flatness of a cubic curve, directly specifying + * each coordinate value. The flatness is the maximal distance of a +@@ -340,7 +320,6 @@ + return Math.sqrt(getFlatnessSq(x1, y1, cx1, cy1, cx2, cy2, x2, y2)); + } + +- + /** + * Calculates the squared flatness of a cubic curve, specifying the + * coordinate values in an array. The flatness is the maximal +@@ -374,13 +353,11 @@ + */ + public static double getFlatnessSq(double[] coords, int offset) + { +- return getFlatnessSq(coords[offset++], coords[offset++], +- coords[offset++], coords[offset++], +- coords[offset++], coords[offset++], ++ return getFlatnessSq(coords[offset++], coords[offset++], coords[offset++], ++ coords[offset++], coords[offset++], coords[offset++], + coords[offset++], coords[offset++]); + } + +- + /** + * Calculates the flatness of a cubic curve, specifying the + * coordinate values in an array. The flatness is the maximal +@@ -420,7 +397,6 @@ + coords[offset++], coords[offset++])); + } + +- + /** + * Calculates the squared flatness of this curve. The flatness is + * the maximal distance of a control point to the line between start +@@ -441,7 +417,6 @@ + getCtrlX2(), getCtrlY2(), getX2(), getY2()); + } + +- + /** + * Calculates the flatness of this curve. The flatness is the + * maximal distance of a control point to the line between start and +@@ -458,12 +433,10 @@ + */ + public double getFlatness() + { +- return Math.sqrt(getFlatnessSq(getX1(), getY1(), getCtrlX1(), +- getCtrlY1(), getCtrlX2(), getCtrlY2(), +- getX2(), getY2())); ++ return Math.sqrt(getFlatnessSq(getX1(), getY1(), getCtrlX1(), getCtrlY1(), ++ getCtrlX2(), getCtrlY2(), getX2(), getY2())); + } + +- + /** + * Subdivides this curve into two halves. + * +@@ -482,9 +455,11 @@ + public void subdivide(CubicCurve2D left, CubicCurve2D right) + { + // Use empty slots at end to share single array. +- double[] d = new double[] { getX1(), getY1(), getCtrlX1(), getCtrlY1(), +- getCtrlX2(), getCtrlY2(), getX2(), getY2(), +- 0, 0, 0, 0, 0, 0 }; ++ double[] d = new double[] ++ { ++ getX1(), getY1(), getCtrlX1(), getCtrlY1(), getCtrlX2(), ++ getCtrlY2(), getX2(), getY2(), 0, 0, 0, 0, 0, 0 ++ }; + subdivide(d, 0, d, 0, d, 6); + if (left != null) + left.setCurve(d, 0); +@@ -492,7 +467,6 @@ + right.setCurve(d, 6); + } + +- + /** + * Subdivides a cubic curve into two halves. + * +@@ -510,13 +484,12 @@ + * of src, or null if the caller is not + * interested in the right half. + */ +- public static void subdivide(CubicCurve2D src, +- CubicCurve2D left, CubicCurve2D right) ++ public static void subdivide(CubicCurve2D src, CubicCurve2D left, ++ CubicCurve2D right) + { + src.subdivide(left, right); + } + +- + /** + * Subdivides a cubic curve into two halves, passing all coordinates + * in an array. +@@ -563,18 +536,29 @@ + * index where the start point’s x coordinate will be + * stored. + */ +- public static void subdivide(double[] src, int srcOff, +- double[] left, int leftOff, +- double[] right, int rightOff) ++ public static void subdivide(double[] src, int srcOff, double[] left, ++ int leftOff, double[] right, int rightOff) + { + // To understand this code, please have a look at the image + // "CubicCurve2D-3.png" in the sub-directory "doc-files". +- double src_C1_x, src_C1_y, src_C2_x, src_C2_y; +- double left_P1_x, left_P1_y; +- double left_C1_x, left_C1_y, left_C2_x, left_C2_y; +- double right_C1_x, right_C1_y, right_C2_x, right_C2_y; +- double right_P2_x, right_P2_y; +- double Mid_x, Mid_y; // Mid = left.P2 = right.P1 ++ double src_C1_x; ++ double src_C1_y; ++ double src_C2_x; ++ double src_C2_y; ++ double left_P1_x; ++ double left_P1_y; ++ double left_C1_x; ++ double left_C1_y; ++ double left_C2_x; ++ double left_C2_y; ++ double right_C1_x; ++ double right_C1_y; ++ double right_C2_x; ++ double right_C2_y; ++ double right_P2_x; ++ double right_P2_y; ++ double Mid_x; // Mid = left.P2 = right.P1 ++ double Mid_y; // Mid = left.P2 = right.P1 + + left_P1_x = src[srcOff]; + left_P1_y = src[srcOff + 1]; +@@ -599,31 +583,30 @@ + Mid_y = (left_C2_y + right_C1_y) / 2; + + if (left != null) +- { +- left[leftOff] = left_P1_x; +- left[leftOff + 1] = left_P1_y; +- left[leftOff + 2] = left_C1_x; +- left[leftOff + 3] = left_C1_y; +- left[leftOff + 4] = left_C2_x; +- left[leftOff + 5] = left_C2_y; +- left[leftOff + 6] = Mid_x; +- left[leftOff + 7] = Mid_y; +- } ++ { ++ left[leftOff] = left_P1_x; ++ left[leftOff + 1] = left_P1_y; ++ left[leftOff + 2] = left_C1_x; ++ left[leftOff + 3] = left_C1_y; ++ left[leftOff + 4] = left_C2_x; ++ left[leftOff + 5] = left_C2_y; ++ left[leftOff + 6] = Mid_x; ++ left[leftOff + 7] = Mid_y; ++ } + + if (right != null) +- { +- right[rightOff] = Mid_x; +- right[rightOff + 1] = Mid_y; +- right[rightOff + 2] = right_C1_x; +- right[rightOff + 3] = right_C1_y; +- right[rightOff + 4] = right_C2_x; +- right[rightOff + 5] = right_C2_y; +- right[rightOff + 6] = right_P2_x; +- right[rightOff + 7] = right_P2_y; +- } ++ { ++ right[rightOff] = Mid_x; ++ right[rightOff + 1] = Mid_y; ++ right[rightOff + 2] = right_C1_x; ++ right[rightOff + 3] = right_C1_y; ++ right[rightOff + 4] = right_C2_x; ++ right[rightOff + 5] = right_C2_y; ++ right[rightOff + 6] = right_P2_x; ++ right[rightOff + 7] = right_P2_y; ++ } + } + +- + /** + * Finds the non-complex roots of a cubic equation, placing the + * results into the same array as the equation coefficients. The +@@ -670,7 +653,6 @@ + return solveCubic(eqn, eqn); + } + +- + /** + * Finds the non-complex roots of a cubic equation. The following + * equation is being solved: +@@ -727,9 +709,19 @@ + // The Java implementation is very similar to the GSL code, but + // not a strict one-to-one copy. For example, GSL would sort the + // result. +- +- double a, b, c, q, r, Q, R; +- double c3, Q3, R2, CR2, CQ3; ++ ++ double a; ++ double b; ++ double c; ++ double q; ++ double r; ++ double Q; ++ double R; ++ double c3; ++ double Q3; ++ double R2; ++ double CR2; ++ double CQ3; + + // If the cubic coefficient is zero, we have a quadratic equation. + c3 = eqn[3]; +@@ -755,219 +747,267 @@ + CQ3 = 2916 * q * q * q; + + if (R == 0 && Q == 0) +- { +- // The GNU Scientific Library would return three identical +- // solutions in this case. +- res[0] = -a/3; +- return 1; +- } +- +- if (CR2 == CQ3) +- { +- /* this test is actually R2 == Q3, written in a form suitable +- for exact computation with integers */ +- +- /* Due to finite precision some double roots may be missed, and +- considered to be a pair of complex roots z = x +/- epsilon i +- close to the real axis. */ +- +- double sqrtQ = Math.sqrt(Q); +- +- if (R > 0) + { +- res[0] = -2 * sqrtQ - a/3; +- res[1] = sqrtQ - a/3; ++ // The GNU Scientific Library would return three identical ++ // solutions in this case. ++ res[0] = -a / 3; ++ return 1; + } +- else ++ ++ if (CR2 == CQ3) + { +- res[0] = -sqrtQ - a/3; +- res[1] = 2 * sqrtQ - a/3; ++ /* this test is actually R2 == Q3, written in a form suitable ++ for exact computation with integers */ ++ /* Due to finite precision some double roots may be missed, and ++ considered to be a pair of complex roots z = x +/- epsilon i ++ close to the real axis. */ ++ double sqrtQ = Math.sqrt(Q); ++ ++ if (R > 0) ++ { ++ res[0] = -2 * sqrtQ - a / 3; ++ res[1] = sqrtQ - a / 3; ++ } ++ else ++ { ++ res[0] = -sqrtQ - a / 3; ++ res[1] = 2 * sqrtQ - a / 3; ++ } ++ return 2; + } +- return 2; +- } + + if (CR2 < CQ3) /* equivalent to R2 < Q3 */ +- { +- double sqrtQ = Math.sqrt(Q); +- double sqrtQ3 = sqrtQ * sqrtQ * sqrtQ; +- double theta = Math.acos(R / sqrtQ3); +- double norm = -2 * sqrtQ; +- res[0] = norm * Math.cos(theta / 3) - a / 3; +- res[1] = norm * Math.cos((theta + 2.0 * Math.PI) / 3) - a/3; +- res[2] = norm * Math.cos((theta - 2.0 * Math.PI) / 3) - a/3; ++ { ++ double sqrtQ = Math.sqrt(Q); ++ double sqrtQ3 = sqrtQ * sqrtQ * sqrtQ; ++ double theta = Math.acos(R / sqrtQ3); ++ double norm = -2 * sqrtQ; ++ res[0] = norm * Math.cos(theta / 3) - a / 3; ++ res[1] = norm * Math.cos((theta + 2.0 * Math.PI) / 3) - a / 3; ++ res[2] = norm * Math.cos((theta - 2.0 * Math.PI) / 3) - a / 3; + +- // The GNU Scientific Library sorts the results. We don't. +- return 3; +- } ++ // The GNU Scientific Library sorts the results. We don't. ++ return 3; ++ } + + double sgnR = (R >= 0 ? 1 : -1); +- double A = -sgnR * Math.pow(Math.abs(R) + Math.sqrt(R2 - Q3), 1.0/3.0); +- double B = Q / A ; +- res[0] = A + B - a/3; ++ double A = -sgnR * Math.pow(Math.abs(R) + Math.sqrt(R2 - Q3), 1.0 / 3.0); ++ double B = Q / A; ++ res[0] = A + B - a / 3; + return 1; + } + +- + /** +- * Determines whether a position lies inside the area that is bounded ++ * Determines whether a position lies inside the area bounded + * by the curve and the straight line connecting its end points. + * + *

    A drawing of the area spanned by the curve + * + *

    The above drawing illustrates in which area points are +- * considered “contained” in a CubicCurve2D. ++ * considered “inside” a CubicCurve2D. + */ + public boolean contains(double x, double y) + { +- // XXX Implement. +- throw new Error("not implemented"); +- } ++ if (! getBounds2D().contains(x, y)) ++ return false; + ++ return ((getAxisIntersections(x, y, true, BIG_VALUE) & 1) != 0); ++ } + + /** +- * Determines whether a point lies inside the area that is bounded ++ * Determines whether a point lies inside the area bounded + * by the curve and the straight line connecting its end points. + * + *

    A drawing of the area spanned by the curve + * + *

    The above drawing illustrates in which area points are +- * considered “contained” in a CubicCurve2D. ++ * considered “inside” a CubicCurve2D. + */ + public boolean contains(Point2D p) + { + return contains(p.getX(), p.getY()); + } + +- ++ /** ++ * Determines whether any part of a rectangle is inside the area bounded ++ * by the curve and the straight line connecting its end points. ++ * ++ *

    A drawing of the area spanned by the curve ++ * ++ *

    The above drawing illustrates in which area points are ++ * considered “inside” in a CubicCurve2D. ++ * @see #contains(double, double) ++ */ + public boolean intersects(double x, double y, double w, double h) + { +- // XXX Implement. +- throw new Error("not implemented"); +- } ++ if (! getBounds2D().contains(x, y, w, h)) ++ return false; + ++ /* Does any edge intersect? */ ++ if (getAxisIntersections(x, y, true, w) != 0 /* top */ ++ || getAxisIntersections(x, y + h, true, w) != 0 /* bottom */ ++ || getAxisIntersections(x + w, y, false, h) != 0 /* right */ ++ || getAxisIntersections(x, y, false, h) != 0) /* left */ ++ return true; + ++ /* No intersections, is any point inside? */ ++ if ((getAxisIntersections(x, y, true, BIG_VALUE) & 1) != 0) ++ return true; ++ ++ return false; ++ } ++ ++ /** ++ * Determines whether any part of a Rectangle2D is inside the area bounded ++ * by the curve and the straight line connecting its end points. ++ * @see #intersects(double, double, double, double) ++ */ + public boolean intersects(Rectangle2D r) + { + return intersects(r.getX(), r.getY(), r.getWidth(), r.getHeight()); + } + +- ++ /** ++ * Determine whether a rectangle is entirely inside the area that is bounded ++ * by the curve and the straight line connecting its end points. ++ * ++ *

    A drawing of the area spanned by the curve ++ * ++ *

    The above drawing illustrates in which area points are ++ * considered “inside” a CubicCurve2D. ++ * @see #contains(double, double) ++ */ + public boolean contains(double x, double y, double w, double h) + { +- // XXX Implement. +- throw new Error("not implemented"); +- } ++ if (! getBounds2D().intersects(x, y, w, h)) ++ return false; ++ ++ /* Does any edge intersect? */ ++ if (getAxisIntersections(x, y, true, w) != 0 /* top */ ++ || getAxisIntersections(x, y + h, true, w) != 0 /* bottom */ ++ || getAxisIntersections(x + w, y, false, h) != 0 /* right */ ++ || getAxisIntersections(x, y, false, h) != 0) /* left */ ++ return false; + ++ /* No intersections, is any point inside? */ ++ if ((getAxisIntersections(x, y, true, BIG_VALUE) & 1) != 0) ++ return true; + ++ return false; ++ } ++ ++ /** ++ * Determine whether a Rectangle2D is entirely inside the area that is ++ * bounded by the curve and the straight line connecting its end points. ++ * ++ *

    A drawing of the area spanned by the curve ++ * ++ *

    The above drawing illustrates in which area points are ++ * considered “inside” a CubicCurve2D. ++ * @see #contains(double, double) ++ */ + public boolean contains(Rectangle2D r) + { + return contains(r.getX(), r.getY(), r.getWidth(), r.getHeight()); + } + +- + /** + * Determines the smallest rectangle that encloses the +- * curve’s start, end and control points. As the illustration +- * below shows, the invisible control points may cause the bounds to +- * be much larger than the area that is actually covered by the +- * curve. +- * +- *

    An illustration of the bounds of a CubicCurve2D ++ * curve’s start, end and control points. + */ + public Rectangle getBounds() + { + return getBounds2D().getBounds(); + } + +- + public PathIterator getPathIterator(final AffineTransform at) + { + return new PathIterator() +- { +- /** Current coordinate. */ +- private int current = 0; +- +- public int getWindingRule() +- { +- return WIND_NON_ZERO; +- } +- +- public boolean isDone() + { +- return current >= 2; +- } +- +- public void next() +- { +- current++; +- } ++ /** Current coordinate. */ ++ private int current = 0; + +- public int currentSegment(float[] coords) +- { +- int result; +- switch (current) +- { +- case 0: +- coords[0] = (float) getX1(); +- coords[1] = (float) getY1(); +- result = SEG_MOVETO; +- break; +- case 1: +- coords[0] = (float) getCtrlX1(); +- coords[1] = (float) getCtrlY1(); +- coords[2] = (float) getCtrlX2(); +- coords[3] = (float) getCtrlY2(); +- coords[4] = (float) getX2(); +- coords[5] = (float) getY2(); +- result = SEG_CUBICTO; +- break; +- default: +- throw new NoSuchElementException("cubic iterator out of bounds"); +- } +- if (at != null) +- at.transform(coords, 0, coords, 0, 3); +- return result; +- } +- +- public int currentSegment(double[] coords) +- { +- int result; +- switch (current) +- { +- case 0: +- coords[0] = getX1(); +- coords[1] = getY1(); +- result = SEG_MOVETO; +- break; +- case 1: +- coords[0] = getCtrlX1(); +- coords[1] = getCtrlY1(); +- coords[2] = getCtrlX2(); +- coords[3] = getCtrlY2(); +- coords[4] = getX2(); +- coords[5] = getY2(); +- result = SEG_CUBICTO; +- break; +- default: +- throw new NoSuchElementException("cubic iterator out of bounds"); +- } +- if (at != null) +- at.transform(coords, 0, coords, 0, 3); +- return result; +- } +- }; ++ public int getWindingRule() ++ { ++ return WIND_NON_ZERO; ++ } ++ ++ public boolean isDone() ++ { ++ return current >= 2; ++ } ++ ++ public void next() ++ { ++ current++; ++ } ++ ++ public int currentSegment(float[] coords) ++ { ++ int result; ++ switch (current) ++ { ++ case 0: ++ coords[0] = (float) getX1(); ++ coords[1] = (float) getY1(); ++ result = SEG_MOVETO; ++ break; ++ case 1: ++ coords[0] = (float) getCtrlX1(); ++ coords[1] = (float) getCtrlY1(); ++ coords[2] = (float) getCtrlX2(); ++ coords[3] = (float) getCtrlY2(); ++ coords[4] = (float) getX2(); ++ coords[5] = (float) getY2(); ++ result = SEG_CUBICTO; ++ break; ++ default: ++ throw new NoSuchElementException("cubic iterator out of bounds"); ++ } ++ if (at != null) ++ at.transform(coords, 0, coords, 0, 3); ++ return result; ++ } ++ ++ public int currentSegment(double[] coords) ++ { ++ int result; ++ switch (current) ++ { ++ case 0: ++ coords[0] = getX1(); ++ coords[1] = getY1(); ++ result = SEG_MOVETO; ++ break; ++ case 1: ++ coords[0] = getCtrlX1(); ++ coords[1] = getCtrlY1(); ++ coords[2] = getCtrlX2(); ++ coords[3] = getCtrlY2(); ++ coords[4] = getX2(); ++ coords[5] = getY2(); ++ result = SEG_CUBICTO; ++ break; ++ default: ++ throw new NoSuchElementException("cubic iterator out of bounds"); ++ } ++ if (at != null) ++ at.transform(coords, 0, coords, 0, 3); ++ return result; ++ } ++ }; + } + +- + public PathIterator getPathIterator(AffineTransform at, double flatness) + { + return new FlatteningPathIterator(getPathIterator(at), flatness); + } + +- + /** + * Create a new curve with the same contents as this one. + * +@@ -976,15 +1016,118 @@ + public Object clone() + { + try +- { +- return super.clone(); +- } ++ { ++ return super.clone(); ++ } + catch (CloneNotSupportedException e) +- { +- throw (Error) new InternalError().initCause(e); // Impossible +- } ++ { ++ throw (Error) new InternalError().initCause(e); // Impossible ++ } + } + ++ /** ++ * Helper method used by contains() and intersects() methods, that ++ * returns the number of curve/line intersections on a given axis ++ * extending from a certain point. ++ * ++ * @param x x coordinate of the origin point ++ * @param y y coordinate of the origin point ++ * @param useYaxis axis used, if true the positive Y axis is used, ++ * false uses the positive X axis. ++ * ++ * This is an implementation of the line-crossings algorithm, ++ * Detailed in an article on Eric Haines' page: ++ * http://www.acm.org/tog/editors/erich/ptinpoly/ ++ * ++ * A special-case not adressed in this code is self-intersections ++ * of the curve, e.g. if the axis intersects the self-itersection, ++ * the degenerate roots of the polynomial will erroneously count as ++ * a single intersection of the curve, and not two. ++ */ ++ private int getAxisIntersections(double x, double y, boolean useYaxis, ++ double distance) ++ { ++ int nCrossings = 0; ++ double a0; ++ double a1; ++ double a2; ++ double a3; ++ double b0; ++ double b1; ++ double b2; ++ double b3; ++ double[] r = new double[4]; ++ int nRoots; ++ ++ a0 = a3 = 0.0; ++ ++ if (useYaxis) ++ { ++ a0 = getY1() - y; ++ a1 = getCtrlY1() - y; ++ a2 = getCtrlY2() - y; ++ a3 = getY2() - y; ++ b0 = getX1() - x; ++ b1 = getCtrlX1() - x; ++ b2 = getCtrlX2() - x; ++ b3 = getX2() - x; ++ } ++ else ++ { ++ a0 = getX1() - x; ++ a1 = getCtrlX1() - x; ++ a2 = getCtrlX2() - x; ++ a3 = getX2() - x; ++ b0 = getY1() - y; ++ b1 = getCtrlY1() - y; ++ b2 = getCtrlY2() - y; ++ b3 = getY2() - y; ++ } ++ ++ /* If the axis intersects a start/endpoint, shift it up by some small ++ amount to guarantee the line is 'inside' ++ If this is not done, bad behaviour may result for points on that axis.*/ ++ if (a0 == 0.0 || a3 == 0.0) ++ { ++ double small = getFlatness() * (1E-10); ++ if (a0 == 0.0) ++ a0 += small; ++ if (a3 == 0.0) ++ a3 += small; ++ } ++ ++ if (useYaxis) ++ { ++ if (Line2D.linesIntersect(b0, a0, b3, a3, 0.0, 0.0, distance, 0.0)) ++ nCrossings++; ++ } ++ else ++ { ++ if (Line2D.linesIntersect(a0, b0, a3, b3, 0.0, 0.0, 0.0, distance)) ++ nCrossings++; ++ } ++ ++ r[0] = a0; ++ r[1] = 3 * (a1 - a0); ++ r[2] = 3 * (a2 + a0 - 2 * a1); ++ r[3] = a3 - 3 * a2 + 3 * a1 - a0; ++ ++ if ((nRoots = solveCubic(r)) != 0) ++ for (int i = 0; i < nRoots; i++) ++ { ++ double t = r[i]; ++ if (t >= 0.0 && t <= 1.0) ++ { ++ double crossing = -(t * t * t) * (b0 - 3 * b1 + 3 * b2 - b3) ++ + 3 * t * t * (b0 - 2 * b1 + b2) ++ + 3 * t * (b1 - b0) + b0; ++ if (crossing > 0.0 && crossing <= distance) ++ nCrossings++; ++ } ++ } ++ ++ return (nCrossings); ++ } + + /** + * A two-dimensional curve that is parameterized with a cubic +@@ -996,57 +1139,48 @@ + * @author Eric Blake (ebb9@email.byu.edu) + * @author Sascha Brawer (brawer@dandelis.ch) + */ +- public static class Double +- extends CubicCurve2D ++ public static class Double extends CubicCurve2D + { + /** + * The x coordinate of the curve’s start point. + */ + public double x1; + +- + /** + * The y coordinate of the curve’s start point. + */ + public double y1; + +- + /** + * The x coordinate of the curve’s first control point. + */ + public double ctrlx1; + +- + /** + * The y coordinate of the curve’s first control point. + */ + public double ctrly1; + +- + /** + * The x coordinate of the curve’s second control point. + */ + public double ctrlx2; + +- + /** + * The y coordinate of the curve’s second control point. + */ + public double ctrly2; + +- + /** + * The x coordinate of the curve’s end point. + */ + public double x2; + +- + /** + * The y coordinate of the curve’s end point. + */ + public double y2; + +- + /** + * Constructs a new CubicCurve2D that stores its coordinate values + * in double-precision floating-point format. All points are +@@ -1056,7 +1190,6 @@ + { + } + +- + /** + * Constructs a new CubicCurve2D that stores its coordinate values + * in double-precision floating-point format, specifying the +@@ -1089,8 +1222,8 @@ + * @param y2 the y coordinate of the curve’s end + * point. + */ +- public Double(double x1, double y1, double cx1, double cy1, +- double cx2, double cy2, double x2, double y2) ++ public Double(double x1, double y1, double cx1, double cy1, double cx2, ++ double cy2, double x2, double y2) + { + this.x1 = x1; + this.y1 = y1; +@@ -1102,7 +1235,6 @@ + this.y2 = y2; + } + +- + /** + * Returns the x coordinate of the curve’s start + * point. +@@ -1112,7 +1244,6 @@ + return x1; + } + +- + /** + * Returns the y coordinate of the curve’s start + * point. +@@ -1122,7 +1253,6 @@ + return y1; + } + +- + /** + * Returns the curve’s start point. + */ +@@ -1131,7 +1261,6 @@ + return new Point2D.Double(x1, y1); + } + +- + /** + * Returns the x coordinate of the curve’s first + * control point. +@@ -1141,7 +1270,6 @@ + return ctrlx1; + } + +- + /** + * Returns the y coordinate of the curve’s first + * control point. +@@ -1151,7 +1279,6 @@ + return ctrly1; + } + +- + /** + * Returns the curve’s first control point. + */ +@@ -1160,7 +1287,6 @@ + return new Point2D.Double(ctrlx1, ctrly1); + } + +- + /** + * Returns the x coordinate of the curve’s second + * control point. +@@ -1170,7 +1296,6 @@ + return ctrlx2; + } + +- + /** + * Returns the y coordinate of the curve’s second + * control point. +@@ -1180,7 +1305,6 @@ + return ctrly2; + } + +- + /** + * Returns the curve’s second control point. + */ +@@ -1189,7 +1313,6 @@ + return new Point2D.Double(ctrlx2, ctrly2); + } + +- + /** + * Returns the x coordinate of the curve’s end + * point. +@@ -1199,7 +1322,6 @@ + return x2; + } + +- + /** + * Returns the y coordinate of the curve’s end + * point. +@@ -1209,7 +1331,6 @@ + return y2; + } + +- + /** + * Returns the curve’s end point. + */ +@@ -1218,7 +1339,6 @@ + return new Point2D.Double(x2, y2); + } + +- + /** + * Changes the curve geometry, separately specifying each coordinate + * value. +@@ -1263,7 +1383,6 @@ + this.y2 = y2; + } + +- + /** + * Determines the smallest rectangle that encloses the + * curve’s start, end and control points. As the +@@ -1284,7 +1403,6 @@ + } + } + +- + /** + * A two-dimensional curve that is parameterized with a cubic + * function and stores coordinate values in single-precision +@@ -1295,57 +1413,48 @@ + * @author Eric Blake (ebb9@email.byu.edu) + * @author Sascha Brawer (brawer@dandelis.ch) + */ +- public static class Float +- extends CubicCurve2D ++ public static class Float extends CubicCurve2D + { + /** + * The x coordinate of the curve’s start point. + */ + public float x1; + +- + /** + * The y coordinate of the curve’s start point. + */ + public float y1; + +- + /** + * The x coordinate of the curve’s first control point. + */ + public float ctrlx1; + +- + /** + * The y coordinate of the curve’s first control point. + */ + public float ctrly1; + +- + /** + * The x coordinate of the curve’s second control point. + */ + public float ctrlx2; + +- + /** + * The y coordinate of the curve’s second control point. + */ + public float ctrly2; + +- + /** + * The x coordinate of the curve’s end point. + */ + public float x2; + +- + /** + * The y coordinate of the curve’s end point. + */ + public float y2; + +- + /** + * Constructs a new CubicCurve2D that stores its coordinate values + * in single-precision floating-point format. All points are +@@ -1355,7 +1464,6 @@ + { + } + +- + /** + * Constructs a new CubicCurve2D that stores its coordinate values + * in single-precision floating-point format, specifying the +@@ -1388,8 +1496,8 @@ + * @param y2 the y coordinate of the curve’s end + * point. + */ +- public Float(float x1, float y1, float cx1, float cy1, +- float cx2, float cy2, float x2, float y2) ++ public Float(float x1, float y1, float cx1, float cy1, float cx2, ++ float cy2, float x2, float y2) + { + this.x1 = x1; + this.y1 = y1; +@@ -1401,7 +1509,6 @@ + this.y2 = y2; + } + +- + /** + * Returns the x coordinate of the curve’s start + * point. +@@ -1411,7 +1518,6 @@ + return x1; + } + +- + /** + * Returns the y coordinate of the curve’s start + * point. +@@ -1421,7 +1527,6 @@ + return y1; + } + +- + /** + * Returns the curve’s start point. + */ +@@ -1430,7 +1535,6 @@ + return new Point2D.Float(x1, y1); + } + +- + /** + * Returns the x coordinate of the curve’s first + * control point. +@@ -1440,7 +1544,6 @@ + return ctrlx1; + } + +- + /** + * Returns the y coordinate of the curve’s first + * control point. +@@ -1450,7 +1553,6 @@ + return ctrly1; + } + +- + /** + * Returns the curve’s first control point. + */ +@@ -1459,7 +1561,6 @@ + return new Point2D.Float(ctrlx1, ctrly1); + } + +- + /** + * Returns the s coordinate of the curve’s second + * control point. +@@ -1469,7 +1570,6 @@ + return ctrlx2; + } + +- + /** + * Returns the y coordinate of the curve’s second + * control point. +@@ -1479,7 +1579,6 @@ + return ctrly2; + } + +- + /** + * Returns the curve’s second control point. + */ +@@ -1488,7 +1587,6 @@ + return new Point2D.Float(ctrlx2, ctrly2); + } + +- + /** + * Returns the x coordinate of the curve’s end + * point. +@@ -1498,7 +1596,6 @@ + return x2; + } + +- + /** + * Returns the y coordinate of the curve’s end + * point. +@@ -1508,7 +1605,6 @@ + return y2; + } + +- + /** + * Returns the curve’s end point. + */ +@@ -1517,7 +1613,6 @@ + return new Point2D.Float(x2, y2); + } + +- + /** + * Changes the curve geometry, separately specifying each coordinate + * value as a double-precision floating-point number. +@@ -1562,7 +1657,6 @@ + this.y2 = (float) y2; + } + +- + /** + * Changes the curve geometry, separately specifying each coordinate + * value as a single-precision floating-point number. +@@ -1594,8 +1688,8 @@ + * @param y2 the y coordinate of the curve’s new end + * point. + */ +- public void setCurve(float x1, float y1, float cx1, float cy1, +- float cx2, float cy2, float x2, float y2) ++ public void setCurve(float x1, float y1, float cx1, float cy1, float cx2, ++ float cy2, float x2, float y2) + { + this.x1 = x1; + this.y1 = y1; +@@ -1607,7 +1701,6 @@ + this.y2 = y2; + } + +- + /** + * Determines the smallest rectangle that encloses the + * curve’s start, end and control points. As the +Index: java/awt/geom/GeneralPath.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/geom/GeneralPath.java,v +retrieving revision 1.3 +diff -u -r1.3 GeneralPath.java +--- java/awt/geom/GeneralPath.java 21 Oct 2003 13:18:22 -0000 1.3 ++++ java/awt/geom/GeneralPath.java 6 Sep 2004 16:35:49 -0000 +@@ -1,50 +1,80 @@ + /* GeneralPath.java -- represents a shape built from subpaths +- Copyright (C) 2002, 2003 Free Software Foundation ++ Copyright (C) 2002, 2003, 2004 Free Software Foundation + +-This file is part of GNU Classpath. +- +-GNU Classpath is free software; you can redistribute it and/or modify +-it under the terms of the GNU General Public License as published by +-the Free Software Foundation; either version 2, or (at your option) +-any later version. +- +-GNU Classpath is distributed in the hope that it will be useful, but +-WITHOUT ANY WARRANTY; without even the implied warranty of +-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-General Public License for more details. +- +-You should have received a copy of the GNU General Public License +-along with GNU Classpath; see the file COPYING. If not, write to the +-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +-02111-1307 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. */ ++ 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., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 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.awt.geom; + + import java.awt.Rectangle; + import java.awt.Shape; + ++ + /** +- * STUBS ONLY +- * XXX Implement and document. Note that Sun's implementation only expects +- * float precision, not double. ++ * A general geometric path, consisting of any number of subpaths ++ * constructed out of straight lines and cubic or quadratic Bezier ++ * curves. ++ * ++ *

    The inside of the curve is defined for drawing purposes by a winding ++ * rule. Either the WIND_EVEN_ODD or WIND_NON_ZERO winding rule can be chosen. ++ * ++ *

    A drawing of a GeneralPath ++ *

    The EVEN_ODD winding rule defines a point as inside a path if: ++ * A ray from the point towards infinity in an arbitrary direction ++ * intersects the path an odd number of times. Points A and ++ * C in the image are considered to be outside the path. ++ * (both intersect twice) ++ * Point B intersects once, and is inside. ++ * ++ *

    The NON_ZERO winding rule defines a point as inside a path if: ++ * The path intersects the ray in an equal number of opposite directions. ++ * Point A in the image is outside (one intersection in the ++ * ’up’ ++ * direction, one in the ’down’ direction) Point B in ++ * the image is inside (one intersection ’down’) ++ * Point C in the image is outside (two intersections ++ * ’down’) ++ * ++ * @see Line2D ++ * @see CubicCurve2D ++ * @see QuadCurve2D ++ * ++ * @author Sascha Brawer (brawer@dandelis.ch) ++ * @author Sven de Marothy (sven@physto.se) ++ * ++ * @since 1.2 + */ + public final class GeneralPath implements Shape, Cloneable + { +@@ -52,35 +82,63 @@ + public static final int WIND_NON_ZERO = PathIterator.WIND_NON_ZERO; + + /** Initial size if not specified. */ +- private static final int INIT_SIZE = 20; ++ private static final int INIT_SIZE = 10; ++ ++ /** A big number, but not so big it can't survive a few float operations */ ++ private static final double BIG_VALUE = java.lang.Double.MAX_VALUE / 10.0; + + /** The winding rule. */ + private int rule; ++ + /** +- * The path type in points. Note that points[index] maps to +- * types[index >> 1]; the control points of quad and cubic paths map as ++ * The path type in points. Note that xpoints[index] and ypoints[index] maps ++ * to types[index]; the control points of quad and cubic paths map as + * well but are ignored. + */ + private byte[] types; ++ + /** + * The list of all points seen. Since you can only append floats, it makes +- * sense for this to be a float[]. I have no idea why Sun didn't choose to ++ * sense for these to be float[]. I have no idea why Sun didn't choose to + * allow a general path of double precision points. ++ * Note: Storing x and y coords seperately makes for a slower transforms, ++ * But it speeds up and simplifies box-intersection checking a lot. + */ +- private float[] points; ++ private float[] xpoints; ++ private float[] ypoints; ++ + /** The index of the most recent moveto point, or null. */ + private int subpath = -1; ++ + /** The next available index into points. */ + private int index; + ++ /** ++ * Constructs a GeneralPath with the default (NON_ZERO) ++ * winding rule and initial capacity (20). ++ */ + public GeneralPath() + { + this(WIND_NON_ZERO, INIT_SIZE); + } ++ ++ /** ++ * Constructs a GeneralPath with a specific winding rule ++ * and the default initial capacity (20). ++ * @param rule the winding rule (WIND_NON_ZERO or WIND_EVEN_ODD) ++ */ + public GeneralPath(int rule) + { + this(rule, INIT_SIZE); + } ++ ++ /** ++ * Constructs a GeneralPath with a specific winding rule ++ * and the initial capacity. The initial capacity should be ++ * the approximate number of path segments to be used. ++ * @param rule the winding rule (WIND_NON_ZERO or WIND_EVEN_ODD) ++ * @param capacity the inital capacity, in path segments ++ */ + public GeneralPath(int rule, int capacity) + { + if (rule != WIND_EVEN_ODD && rule != WIND_NON_ZERO) +@@ -88,68 +146,112 @@ + this.rule = rule; + if (capacity < INIT_SIZE) + capacity = INIT_SIZE; +- types = new byte[capacity >> 1]; +- points = new float[capacity]; ++ types = new byte[capacity]; ++ xpoints = new float[capacity]; ++ ypoints = new float[capacity]; + } ++ ++ /** ++ * Constructs a GeneralPath from an arbitrary shape object. ++ * The Shapes PathIterator path and winding rule will be used. ++ * @param s the shape ++ */ + public GeneralPath(Shape s) + { +- types = new byte[INIT_SIZE >> 1]; +- points = new float[INIT_SIZE]; ++ types = new byte[INIT_SIZE]; ++ xpoints = new float[INIT_SIZE]; ++ ypoints = new float[INIT_SIZE]; + PathIterator pi = s.getPathIterator(null); + setWindingRule(pi.getWindingRule()); + append(pi, false); + } + ++ /** ++ * Adds a new point to a path. ++ */ + public void moveTo(float x, float y) + { + subpath = index; +- ensureSize(index + 2); +- types[index >> 1] = PathIterator.SEG_MOVETO; +- points[index++] = x; +- points[index++] = y; ++ ensureSize(index + 1); ++ types[index] = PathIterator.SEG_MOVETO; ++ xpoints[index] = x; ++ ypoints[index++] = y; + } ++ ++ /** ++ * Appends a straight line to the current path. ++ * @param x x coordinate of the line endpoint. ++ * @param y y coordinate of the line endpoint. ++ */ + public void lineTo(float x, float y) + { +- ensureSize(index + 2); +- types[index >> 1] = PathIterator.SEG_LINETO; +- points[index++] = x; +- points[index++] = y; ++ ensureSize(index + 1); ++ types[index] = PathIterator.SEG_LINETO; ++ xpoints[index] = x; ++ ypoints[index++] = y; + } ++ ++ /** ++ * Appends a quadratic Bezier curve to the current path. ++ * @param x1 x coordinate of the control point ++ * @param y1 y coordinate of the control point ++ * @param x2 x coordinate of the curve endpoint. ++ * @param y2 y coordinate of the curve endpoint. ++ */ + public void quadTo(float x1, float y1, float x2, float y2) + { +- ensureSize(index + 4); +- types[index >> 1] = PathIterator.SEG_QUADTO; +- points[index++] = x1; +- points[index++] = y1; +- points[index++] = x2; +- points[index++] = y2; +- } +- public void curveTo(float x1, float y1, float x2, float y2, +- float x3, float y3) +- { +- ensureSize(index + 6); +- types[index >> 1] = PathIterator.SEG_CUBICTO; +- points[index++] = x1; +- points[index++] = y1; +- points[index++] = x2; +- points[index++] = y2; +- points[index++] = x3; +- points[index++] = y3; ++ ensureSize(index + 2); ++ types[index] = PathIterator.SEG_QUADTO; ++ xpoints[index] = x1; ++ ypoints[index++] = y1; ++ xpoints[index] = x2; ++ ypoints[index++] = y2; + } ++ ++ /** ++ * Appends a cubic Bezier curve to the current path. ++ * @param x1 x coordinate of the first control point ++ * @param y1 y coordinate of the first control point ++ * @param x2 x coordinate of the second control point ++ * @param y2 y coordinate of the second control point ++ * @param x3 x coordinate of the curve endpoint. ++ * @param y3 y coordinate of the curve endpoint. ++ */ ++ public void curveTo(float x1, float y1, float x2, float y2, float x3, ++ float y3) ++ { ++ ensureSize(index + 3); ++ types[index] = PathIterator.SEG_CUBICTO; ++ xpoints[index] = x1; ++ ypoints[index++] = y1; ++ xpoints[index] = x2; ++ ypoints[index++] = y2; ++ xpoints[index] = x3; ++ ypoints[index++] = y3; ++ } ++ ++ /** ++ * Closes the current subpath by drawing a line ++ * back to the point of the last moveTo. ++ */ + public void closePath() + { +- ensureSize(index + 2); +- types[index >> 1] = PathIterator.SEG_CLOSE; +- points[index++] = points[subpath]; +- points[index++] = points[subpath + 1]; ++ ensureSize(index + 1); ++ types[index] = PathIterator.SEG_CLOSE; ++ xpoints[index] = xpoints[subpath]; ++ ypoints[index++] = ypoints[subpath]; + } + ++ /** ++ * Appends the segments of a Shape to the path. If connect is ++ * true, the new path segments are connected to the existing one with a line. ++ * The winding rule of the Shape is ignored. ++ */ + public void append(Shape s, boolean connect) + { + append(s.getPathIterator(null), connect); + } + +- + /** + * Appends the segments of a PathIterator to this GeneralPath. + * Optionally, the initial {@link PathIterator#SEG_MOVETO} segment +@@ -158,7 +260,7 @@ + * + * @param iter the PathIterator specifying which segments shall be + * appended. +- * ++ * + * @param connect true for substituting the initial + * {@link PathIterator#SEG_MOVETO} segment by a {@link + * PathIterator#SEG_LINETO}, or false for not +@@ -171,50 +273,55 @@ + { + // A bad implementation of this method had caused Classpath bug #6076. + float[] f = new float[6]; +- while (!iter.isDone()) +- { +- switch (iter.currentSegment(f)) ++ while (! iter.isDone()) + { +- case PathIterator.SEG_MOVETO: +- if (!connect || (index == 0)) +- { +- moveTo(f[0], f[1]); +- break; +- } ++ switch (iter.currentSegment(f)) ++ { ++ case PathIterator.SEG_MOVETO: ++ if (! connect || (index == 0)) ++ { ++ moveTo(f[0], f[1]); ++ break; ++ } ++ if ((index >= 1) && (types[index - 1] == PathIterator.SEG_CLOSE) ++ && (f[0] == xpoints[index - 1]) ++ && (f[1] == ypoints[index - 1])) ++ break; ++ ++ // Fall through. ++ case PathIterator.SEG_LINETO: ++ lineTo(f[0], f[1]); ++ break; ++ case PathIterator.SEG_QUADTO: ++ quadTo(f[0], f[1], f[2], f[3]); ++ break; ++ case PathIterator.SEG_CUBICTO: ++ curveTo(f[0], f[1], f[2], f[3], f[4], f[5]); ++ break; ++ case PathIterator.SEG_CLOSE: ++ closePath(); ++ break; ++ } + +- if ((index >= 2) && (types[(index - 2) >> 2] == PathIterator.SEG_CLOSE) +- && (f[0] == points[index - 2]) && (f[1] == points[index - 1])) +- break; +- +- // Fall through. +- +- case PathIterator.SEG_LINETO: +- lineTo(f[0], f[1]); +- break; +- +- case PathIterator.SEG_QUADTO: +- quadTo(f[0], f[1], f[2], f[3]); +- break; +- +- case PathIterator.SEG_CUBICTO: +- curveTo(f[0], f[1], f[2], f[3], f[4], f[5]); +- break; +- +- case PathIterator.SEG_CLOSE: +- closePath(); +- break; ++ connect = false; ++ iter.next(); + } +- +- connect = false; +- iter.next(); +- } + } + +- ++ /** ++ * Returns the path’s current winding rule. ++ */ + public int getWindingRule() + { + return rule; + } ++ ++ /** ++ * Sets the path’s winding rule, which controls which areas are ++ * considered ’inside’ or ’outside’ the path ++ * on drawing. Valid rules are WIND_EVEN_ODD for an even-odd winding rule, ++ * or WIND_NON_ZERO for a non-zero winding rule. ++ */ + public void setWindingRule(int rule) + { + if (rule != WIND_EVEN_ODD && rule != WIND_NON_ZERO) +@@ -222,22 +329,48 @@ + this.rule = rule; + } + ++ /** ++ * Returns the current appending point of the path. ++ */ + public Point2D getCurrentPoint() + { + if (subpath < 0) + return null; +- return new Point2D.Float(points[index - 2], points[index - 1]); ++ return new Point2D.Float(xpoints[index - 1], ypoints[index - 1]); + } ++ ++ /** ++ * Resets the path. All points and segments are destroyed. ++ */ + public void reset() + { + subpath = -1; + index = 0; + } + ++ /** ++ * Applies a transform to the path. ++ */ + public void transform(AffineTransform xform) + { +- xform.transform(points, 0, points, 0, index >> 1); ++ double nx; ++ double ny; ++ double[] m = new double[6]; ++ xform.getMatrix(m); ++ for (int i = 0; i < index; i++) ++ { ++ nx = m[0] * xpoints[i] + m[2] * ypoints[i] + m[4]; ++ ny = m[1] * xpoints[i] + m[3] * ypoints[i] + m[5]; ++ xpoints[i] = (float) nx; ++ ypoints[i] = (float) ny; ++ } + } ++ ++ /** ++ * Creates a transformed version of the path. ++ * @param xform the transform to apply ++ * @return a new transformed GeneralPath ++ */ + public Shape createTransformedShape(AffineTransform xform) + { + GeneralPath p = new GeneralPath(this); +@@ -245,85 +378,174 @@ + return p; + } + ++ /** ++ * Returns the path’s bounding box. ++ */ + public Rectangle getBounds() + { + return getBounds2D().getBounds(); + } ++ ++ /** ++ * Returns the path’s bounding box, in float precision ++ */ + public Rectangle2D getBounds2D() + { +- // XXX Implement. +- throw new Error("not implemented"); ++ float x1; ++ float y1; ++ float x2; ++ float y2; ++ ++ if (index > 0) ++ { ++ x1 = x2 = xpoints[0]; ++ y1 = y2 = ypoints[0]; ++ } ++ else ++ x1 = x2 = y1 = y2 = 0.0f; ++ ++ for (int i = 0; i < index; i++) ++ { ++ x1 = Math.min(xpoints[i], x1); ++ y1 = Math.min(ypoints[i], y1); ++ x2 = Math.max(xpoints[i], x2); ++ y2 = Math.max(ypoints[i], y2); ++ } ++ return (new Rectangle2D.Float(x1, y1, x2 - x1, y2 - y1)); + } + ++ /** ++ * Evaluates if a point is within the GeneralPath, ++ * The NON_ZERO winding rule is used, regardless of the ++ * set winding rule. ++ * @param x x coordinate of the point to evaluate ++ * @param y y coordinate of the point to evaluate ++ * @return true if the point is within the path, false otherwise ++ */ + public boolean contains(double x, double y) + { +- // XXX Implement. +- throw new Error("not implemented"); ++ return (getWindingNumber(x, y) != 0); + } ++ ++ /** ++ * Evaluates if a Point2D is within the GeneralPath, ++ * The NON_ZERO winding rule is used, regardless of the ++ * set winding rule. ++ * @param p The Point2D to evaluate ++ * @return true if the point is within the path, false otherwise ++ */ + public boolean contains(Point2D p) + { + return contains(p.getX(), p.getY()); + } ++ ++ /** ++ * Evaluates if a rectangle is completely contained within the path. ++ * This method will return false in the cases when the box ++ * intersects an inner segment of the path. ++ * (i.e.: The method is accurate for the EVEN_ODD winding rule) ++ */ + public boolean contains(double x, double y, double w, double h) + { +- // XXX Implement. +- throw new Error("not implemented"); ++ if (! getBounds2D().intersects(x, y, w, h)) ++ return false; ++ ++ /* Does any edge intersect? */ ++ if (getAxisIntersections(x, y, false, w) != 0 /* top */ ++ || getAxisIntersections(x, y + h, false, w) != 0 /* bottom */ ++ || getAxisIntersections(x + w, y, true, h) != 0 /* right */ ++ || getAxisIntersections(x, y, true, h) != 0) /* left */ ++ return false; ++ ++ /* No intersections, is any point inside? */ ++ if (getWindingNumber(x, y) != 0) ++ return true; ++ ++ return false; + } ++ ++ /** ++ * Evaluates if a rectangle is completely contained within the path. ++ * This method will return false in the cases when the box ++ * intersects an inner segment of the path. ++ * (i.e.: The method is accurate for the EVEN_ODD winding rule) ++ * @param r the rectangle ++ * @return true if the rectangle is completely contained ++ * within the path, false otherwise ++ */ + public boolean contains(Rectangle2D r) + { + return contains(r.getX(), r.getY(), r.getWidth(), r.getHeight()); + } + ++ /** ++ * Evaluates if a rectangle intersects the path. ++ * @param x x coordinate of the rectangle ++ * @param y y coordinate of the rectangle ++ * @param w width of the rectangle ++ * @param h height of the rectangle ++ * @return true if the rectangle intersects the path, ++ * false otherwise ++ */ + public boolean intersects(double x, double y, double w, double h) + { +- // XXX Implement. +- throw new Error("not implemented"); ++ /* Does any edge intersect? */ ++ if (getAxisIntersections(x, y, false, w) != 0 /* top */ ++ || getAxisIntersections(x, y + h, false, w) != 0 /* bottom */ ++ || getAxisIntersections(x + w, y, true, h) != 0 /* right */ ++ || getAxisIntersections(x, y, true, h) != 0) /* left */ ++ return true; ++ ++ /* No intersections, is any point inside? */ ++ if (getWindingNumber(x, y) != 0) ++ return true; ++ ++ return false; + } ++ ++ /** ++ * Evaluates if a Rectangle2D intersects the path. ++ * @param r The rectangle ++ * @return true if the rectangle intersects the path, ++ * false otherwise ++ */ + public boolean intersects(Rectangle2D r) + { + return intersects(r.getX(), r.getY(), r.getWidth(), r.getHeight()); + } + +- + /** + * A PathIterator that iterates over the segments of a GeneralPath. + * + * @author Sascha Brawer (brawer@dandelis.ch) + */ +- private static class GeneralPathIterator +- implements PathIterator ++ private static class GeneralPathIterator implements PathIterator + { + /** + * The number of coordinate values for each segment type. + */ +- private static final int[] NUM_COORDS = +- { +- /* 0: SEG_MOVETO */ 2, +- /* 1: SEG_LINETO */ 2, +- /* 2: SEG_QUADTO */ 4, +- /* 3: SEG_CUBICTO */ 6, +- /* 4: SEG_CLOSE */ 0 +- }; +- ++ private static final int[] NUM_COORDS = { ++ /* 0: SEG_MOVETO */ 1, ++ /* 1: SEG_LINETO */ 1, ++ /* 2: SEG_QUADTO */ 2, ++ /* 3: SEG_CUBICTO */ 3, ++ /* 4: SEG_CLOSE */ 0}; + + /** + * The GeneralPath whose segments are being iterated. + */ + private final GeneralPath path; + +- + /** + * The affine transformation used to transform coordinates. + */ + private final AffineTransform transform; + +- + /** + * The current position of the iterator. + */ + private int pos; + +- + /** + * Constructs a new iterator for enumerating the segments of a + * GeneralPath. +@@ -338,7 +560,6 @@ + this.transform = transform; + } + +- + /** + * Returns the current winding rule of the GeneralPath. + */ +@@ -347,7 +568,6 @@ + return path.rule; + } + +- + /** + * Determines whether the iterator has reached the last segment in + * the path. +@@ -357,7 +577,6 @@ + return pos >= path.index; + } + +- + /** + * Advances the iterator position by one segment. + */ +@@ -365,70 +584,72 @@ + { + int seg; + +- /* Increment pos by the number of coordinate values. Note that +- * we store two values even for a SEG_CLOSE segment, which is +- * why we increment pos at least by 2. ++ /* ++ * Increment pos by the number of coordinate pairs. + */ +- seg = path.types[pos >> 1]; ++ seg = path.types[pos]; + if (seg == SEG_CLOSE) +- pos += 2; ++ pos++; + else +- pos += NUM_COORDS[seg]; ++ pos += NUM_COORDS[seg]; + } + +- + /** + * Returns the current segment in float coordinates. + */ + public int currentSegment(float[] coords) + { +- int seg, numCoords; ++ int seg; ++ int numCoords; + +- seg = path.types[pos >> 1]; ++ seg = path.types[pos]; + numCoords = NUM_COORDS[seg]; + if (numCoords > 0) +- { +- if (transform == null) +- System.arraycopy(path.points, pos, coords, 0, numCoords); +- else +- transform.transform(/* src */ path.points, /* srcOffset */ pos, +- /* dest */ coords, /* destOffset */ 0, +- /* numPoints */ numCoords >> 1); +- } ++ { ++ for (int i = 0; i < numCoords; i++) ++ { ++ coords[i << 1] = path.xpoints[pos + i]; ++ coords[(i << 1) + 1] = path.ypoints[pos + i]; ++ } ++ ++ if (transform != null) ++ transform.transform( /* src */ ++ coords, /* srcOffset */ ++ 0, /* dest */ coords, /* destOffset */ ++ 0, /* numPoints */ numCoords); ++ } + return seg; + } + +- + /** + * Returns the current segment in double coordinates. + */ + public int currentSegment(double[] coords) + { +- int seg, numCoords; ++ int seg; ++ int numCoords; + +- seg = path.types[pos >> 1]; ++ seg = path.types[pos]; + numCoords = NUM_COORDS[seg]; + if (numCoords > 0) +- { +- if (transform == null) + { +- // System.arraycopy throws an exception if the source and destination +- // array are not of the same primitive type. +- for (int i = 0; i < numCoords; i++) +- coords[i] = (double) path.points[pos + i]; ++ for (int i = 0; i < numCoords; i++) ++ { ++ coords[i << 1] = (double) path.xpoints[pos + i]; ++ coords[(i << 1) + 1] = (double) path.ypoints[pos + i]; ++ } ++ if (transform != null) ++ transform.transform( /* src */ ++ coords, /* srcOffset */ ++ pos, /* dest */ coords, /* destOffset */ ++ 0, /* numPoints */ numCoords); + } +- else +- transform.transform(/* src */ path.points, /* srcOffset */ pos, +- /* dest */ coords, /* destOffset */ 0, +- /* numPoints */ numCoords >> 1); +- } + return seg; + } + } + +- + /** +- * Creates a PathIterator for iterating along the segments of this path. ++ * Creates a PathIterator for iterating along the segments of the path. + * + * @param at an affine transformation for projecting the returned + * points, or null to let the created iterator return +@@ -439,15 +660,17 @@ + return new GeneralPathIterator(this, at); + } + +- ++ /** ++ * Creates a new FlatteningPathIterator for the path ++ */ + public PathIterator getPathIterator(AffineTransform at, double flatness) + { + return new FlatteningPathIterator(getPathIterator(at), flatness); + } + + /** +- * Create a new shape of the same run-time type with the same contents as +- * this one. ++ * Creates a new shape of the same run-time type with the same contents ++ * as this one. + * + * @return the clone + * +@@ -461,17 +684,261 @@ + return new GeneralPath(this); + } + ++ /** ++ * Helper method - ensure the size of the data arrays, ++ * otherwise, reallocate new ones twice the size ++ */ + private void ensureSize(int size) + { + if (subpath < 0) + throw new IllegalPathStateException("need initial moveto"); +- if (size <= points.length) ++ if (size <= xpoints.length) + return; +- byte[] b = new byte[points.length]; +- System.arraycopy(types, 0, b, 0, index >> 1); ++ byte[] b = new byte[types.length << 1]; ++ System.arraycopy(types, 0, b, 0, index); + types = b; +- float[] f = new float[points.length << 1]; +- System.arraycopy(points, 0, f, 0, index); +- points = f; ++ float[] f = new float[xpoints.length << 1]; ++ System.arraycopy(xpoints, 0, f, 0, index); ++ xpoints = f; ++ f = new float[ypoints.length << 1]; ++ System.arraycopy(ypoints, 0, f, 0, index); ++ ypoints = f; ++ } ++ ++ /** ++ * Helper method - Get the total number of intersections from (x,y) along ++ * a given axis, within a given distance. ++ */ ++ private int getAxisIntersections(double x, double y, boolean useYaxis, ++ double distance) ++ { ++ return (evaluateCrossings(x, y, false, useYaxis, distance)); ++ } ++ ++ /** ++ * Helper method - returns the winding number of a point. ++ */ ++ private int getWindingNumber(double x, double y) ++ { ++ /* Evaluate the crossings from x,y to infinity on the y axis (arbitrary ++ choice). Note that we don't actually use Double.INFINITY, since that's ++ slower, and may cause problems. */ ++ return (evaluateCrossings(x, y, true, true, BIG_VALUE)); ++ } ++ ++ /** ++ * Helper method - evaluates the number of intersections on an axis from ++ * the point (x,y) to the point (x,y+distance) or (x+distance,y). ++ * @param x x coordinate. ++ * @param y y coordinate. ++ * @param neg True if opposite-directed intersections should cancel, ++ * false to sum all intersections. ++ * @param useYaxis Use the Y axis, false uses the X axis. ++ * @param distance Interval from (x,y) on the selected axis to find ++ * intersections. ++ */ ++ private int evaluateCrossings(double x, double y, boolean neg, ++ boolean useYaxis, double distance) ++ { ++ float cx = 0.0f; ++ float cy = 0.0f; ++ float firstx = 0.0f; ++ float firsty = 0.0f; ++ ++ int negative = (neg) ? -1 : 1; ++ double x0; ++ double x1; ++ double x2; ++ double x3; ++ double y0; ++ double y1; ++ double y2; ++ double y3; ++ double[] r = new double[4]; ++ int nRoots; ++ double epsilon = 0.0; ++ int pos = 0; ++ int windingNumber = 0; ++ boolean pathStarted = false; ++ ++ if (index == 0) ++ return (0); ++ if (useYaxis) ++ { ++ float[] swap1; ++ swap1 = ypoints; ++ ypoints = xpoints; ++ xpoints = swap1; ++ double swap2; ++ swap2 = y; ++ y = x; ++ x = swap2; ++ } ++ ++ /* Get a value which is hopefully small but not insignificant relative ++ the path. */ ++ epsilon = ypoints[0] * 1E-9; ++ ++ pos = 0; ++ while (pos < index) ++ { ++ switch (types[pos]) ++ { ++ case PathIterator.SEG_MOVETO: ++ if (pathStarted) // close old path ++ { ++ x0 = cx; ++ y0 = cy; ++ x1 = firstx; ++ y1 = firsty; ++ ++ if (y0 == 0.0) ++ y0 += epsilon; ++ if (y1 == 0.0) ++ y1 += epsilon; ++ if (Line2D.linesIntersect(x0, y0, x1, y1, 0.0, 0.0, distance, ++ 0.0)) ++ windingNumber += (y1 < y0) ? 1 : negative; ++ ++ cx = firstx; ++ cy = firsty; ++ } ++ cx = firstx = xpoints[pos] - (float) x; ++ cy = firsty = ypoints[pos++] - (float) y; ++ pathStarted = true; ++ break; ++ case PathIterator.SEG_CLOSE: ++ x0 = cx; ++ y0 = cy; ++ x1 = firstx; ++ y1 = firsty; ++ ++ if (y0 == 0.0) ++ y0 += epsilon; ++ if (y1 == 0.0) ++ y1 += epsilon; ++ if (Line2D.linesIntersect(x0, y0, x1, y1, 0.0, 0.0, distance, 0.0)) ++ windingNumber += (y1 < y0) ? 1 : negative; ++ ++ cx = firstx; ++ cy = firsty; ++ pos++; ++ pathStarted = false; ++ break; ++ case PathIterator.SEG_LINETO: ++ x0 = cx; ++ y0 = cy; ++ x1 = xpoints[pos] - (float) x; ++ y1 = ypoints[pos++] - (float) y; ++ ++ if (y0 == 0.0) ++ y0 += epsilon; ++ if (y1 == 0.0) ++ y1 += epsilon; ++ if (Line2D.linesIntersect(x0, y0, x1, y1, 0.0, 0.0, distance, 0.0)) ++ windingNumber += (y1 < y0) ? 1 : negative; ++ ++ cx = xpoints[pos - 1] - (float) x; ++ cy = ypoints[pos - 1] - (float) y; ++ break; ++ case PathIterator.SEG_QUADTO: ++ x0 = cx; ++ y0 = cy; ++ x1 = xpoints[pos] - x; ++ y1 = ypoints[pos++] - y; ++ x2 = xpoints[pos] - x; ++ y2 = ypoints[pos++] - y; ++ ++ /* check if curve may intersect X+ axis. */ ++ if ((x0 > 0.0 || x1 > 0.0 || x2 > 0.0) ++ && (y0 * y1 <= 0 || y1 * y2 <= 0)) ++ { ++ if (y0 == 0.0) ++ y0 += epsilon; ++ if (y2 == 0.0) ++ y2 += epsilon; ++ ++ r[0] = y0; ++ r[1] = 2 * (y1 - y0); ++ r[2] = (y2 - 2 * y1 + y0); ++ ++ /* degenerate roots (=tangent points) do not ++ contribute to the winding number. */ ++ if ((nRoots = QuadCurve2D.solveQuadratic(r)) == 2) ++ for (int i = 0; i < nRoots; i++) ++ { ++ float t = (float) r[i]; ++ if (t > 0.0f && t < 1.0f) ++ { ++ double crossing = t * t * (x2 - 2 * x1 + x0) ++ + 2 * t * (x1 - x0) + x0; ++ if (crossing >= 0.0 && crossing <= distance) ++ windingNumber += (2 * t * (y2 - 2 * y1 + y0) ++ + 2 * (y1 - y0) < 0) ? 1 : negative; ++ } ++ } ++ } ++ ++ cx = xpoints[pos - 1] - (float) x; ++ cy = ypoints[pos - 1] - (float) y; ++ break; ++ case PathIterator.SEG_CUBICTO: ++ x0 = cx; ++ y0 = cy; ++ x1 = xpoints[pos] - x; ++ y1 = ypoints[pos++] - y; ++ x2 = xpoints[pos] - x; ++ y2 = ypoints[pos++] - y; ++ x3 = xpoints[pos] - x; ++ y3 = ypoints[pos++] - y; ++ ++ /* check if curve may intersect X+ axis. */ ++ if ((x0 > 0.0 || x1 > 0.0 || x2 > 0.0 || x3 > 0.0) ++ && (y0 * y1 <= 0 || y1 * y2 <= 0 || y2 * y3 <= 0)) ++ { ++ if (y0 == 0.0) ++ y0 += epsilon; ++ if (y3 == 0.0) ++ y3 += epsilon; ++ ++ r[0] = y0; ++ r[1] = 3 * (y1 - y0); ++ r[2] = 3 * (y2 + y0 - 2 * y1); ++ r[3] = y3 - 3 * y2 + 3 * y1 - y0; ++ ++ if ((nRoots = CubicCurve2D.solveCubic(r)) != 0) ++ for (int i = 0; i < nRoots; i++) ++ { ++ float t = (float) r[i]; ++ if (t > 0.0 && t < 1.0) ++ { ++ double crossing = -(t * t * t) * (x0 - 3 * x1 ++ + 3 * x2 - x3) ++ + 3 * t * t * (x0 - 2 * x1 + x2) ++ + 3 * t * (x1 - x0) + x0; ++ if (crossing >= 0 && crossing <= distance) ++ windingNumber += (3 * t * t * (y3 + 3 * y1 ++ - 3 * y2 - y0) ++ + 6 * t * (y0 - 2 * y1 + y2) ++ + 3 * (y1 - y0) < 0) ? 1 : negative; ++ } ++ } ++ } ++ ++ cx = xpoints[pos - 1] - (float) x; ++ cy = ypoints[pos - 1] - (float) y; ++ break; ++ } ++ } ++ ++ // swap coordinates back ++ if (useYaxis) ++ { ++ float[] swap; ++ swap = ypoints; ++ ypoints = xpoints; ++ xpoints = swap; ++ } ++ return (windingNumber); + } + } // class GeneralPath +Index: java/awt/geom/QuadCurve2D.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/geom/QuadCurve2D.java,v +retrieving revision 1.6 +diff -u -r1.6 QuadCurve2D.java +--- java/awt/geom/QuadCurve2D.java 5 Jan 2004 19:19:29 -0000 1.6 ++++ java/awt/geom/QuadCurve2D.java 6 Sep 2004 16:35:49 -0000 +@@ -1,5 +1,5 @@ + /* QuadCurve2D.java -- represents a parameterized quadratic curve in 2-D space +- Copyright (C) 2002, 2003 Free Software Foundation ++ Copyright (C) 2002, 2003, 2004 Free Software Foundation + + This file is part of GNU Classpath. + +@@ -35,7 +35,6 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package java.awt.geom; + + import java.awt.Rectangle; +@@ -53,12 +52,14 @@ + * @author Eric Blake (ebb9@email.byu.edu) + * @author Graydon Hoare (graydon@redhat.com) + * @author Sascha Brawer (brawer@dandelis.ch) ++ * @author Sven de Marothy (sven@physto.se) + * + * @since 1.2 + */ +-public abstract class QuadCurve2D +- implements Shape, Cloneable ++public abstract class QuadCurve2D implements Shape, Cloneable + { ++ private static final double BIG_VALUE = java.lang.Double.MAX_VALUE / 10.0; ++ + /** + * Constructs a new QuadCurve2D. Typical users will want to + * construct instances of a subclass, such as {@link +@@ -68,67 +69,57 @@ + { + } + +- + /** + * Returns the x coordinate of the curve’s start + * point. + */ + public abstract double getX1(); + +- + /** + * Returns the y coordinate of the curve’s start + * point. + */ + public abstract double getY1(); + +- + /** + * Returns the curve’s start point. + */ + public abstract Point2D getP1(); + +- + /** + * Returns the x coordinate of the curve’s control + * point. + */ + public abstract double getCtrlX(); + +- + /** + * Returns the y coordinate of the curve’s control + * point. + */ + public abstract double getCtrlY(); + +- + /** + * Returns the curve’s control point. + */ + public abstract Point2D getCtrlPt(); + +- + /** + * Returns the x coordinate of the curve’s end + * point. + */ + public abstract double getX2(); + +- + /** + * Returns the y coordinate of the curve’s end + * point. + */ + public abstract double getY2(); + +- + /** + * Returns the curve’s end point. + */ + public abstract Point2D getP2(); + +- + /** + * Changes the curve geometry, separately specifying each coordinate + * value. +@@ -154,7 +145,6 @@ + public abstract void setCurve(double x1, double y1, double cx, double cy, + double x2, double y2); + +- + /** + * Changes the curve geometry, passing coordinate values in an + * array. +@@ -174,12 +164,10 @@ + */ + public void setCurve(double[] coords, int offset) + { +- setCurve(coords[offset++], coords[offset++], +- coords[offset++], coords[offset++], +- coords[offset++], coords[offset++]); ++ setCurve(coords[offset++], coords[offset++], coords[offset++], ++ coords[offset++], coords[offset++], coords[offset++]); + } + +- + /** + * Changes the curve geometry, specifying coordinate values in + * separate Point objects. +@@ -198,11 +186,9 @@ + */ + public void setCurve(Point2D p1, Point2D c, Point2D p2) + { +- setCurve(p1.getX(), p1.getY(), c.getX(), c.getY(), +- p2.getX(), p2.getY()); ++ setCurve(p1.getX(), p1.getY(), c.getX(), c.getY(), p2.getX(), p2.getY()); + } + +- + /** + * Changes the curve geometry, specifying coordinate values in an + * array of Point objects. +@@ -223,12 +209,11 @@ + */ + public void setCurve(Point2D[] pts, int offset) + { +- setCurve(pts[offset].getX(), pts[offset].getY(), +- pts[offset + 1].getX(), pts[offset + 1].getY(), +- pts[offset + 2].getX(), pts[offset + 2].getY()); ++ setCurve(pts[offset].getX(), pts[offset].getY(), pts[offset + 1].getX(), ++ pts[offset + 1].getY(), pts[offset + 2].getX(), ++ pts[offset + 2].getY()); + } + +- + /** + * Changes the geometry of the curve to that of another curve. + * +@@ -236,11 +221,10 @@ + */ + public void setCurve(QuadCurve2D c) + { +- setCurve(c.getX1(), c.getY1(), c.getCtrlX(), c.getCtrlY(), +- c.getX2(), c.getY2()); ++ setCurve(c.getX1(), c.getY1(), c.getCtrlX(), c.getCtrlY(), c.getX2(), ++ c.getY2()); + } + +- + /** + * Calculates the squared flatness of a quadratic curve, directly + * specifying each coordinate value. The flatness is the distance of +@@ -267,7 +251,6 @@ + return Line2D.ptSegDistSq(x1, y1, x2, y2, cx, cy); + } + +- + /** + * Calculates the flatness of a quadratic curve, directly specifying + * each coordinate value. The flatness is the distance of the +@@ -294,7 +277,6 @@ + return Line2D.ptSegDist(x1, y1, x2, y2, cx, cy); + } + +- + /** + * Calculates the squared flatness of a quadratic curve, specifying + * the coordinate values in an array. The flatness is the distance +@@ -328,7 +310,6 @@ + coords[offset + 2], coords[offset + 3]); + } + +- + /** + * Calculates the flatness of a quadratic curve, specifying the + * coordinate values in an array. The flatness is the distance of +@@ -362,7 +343,6 @@ + coords[offset + 2], coords[offset + 3]); + } + +- + /** + * Calculates the squared flatness of this curve. The flatness is + * the distance of the control point to the line between start and +@@ -378,12 +358,10 @@ + */ + public double getFlatnessSq() + { +- return Line2D.ptSegDistSq(getX1(), getY1(), +- getX2(), getY2(), +- getCtrlX(), getCtrlY()); ++ return Line2D.ptSegDistSq(getX1(), getY1(), getX2(), getY2(), getCtrlX(), ++ getCtrlY()); + } + +- + /** + * Calculates the flatness of this curve. The flatness is the + * distance of the control point to the line between start and end +@@ -399,12 +377,10 @@ + */ + public double getFlatness() + { +- return Line2D.ptSegDist(getX1(), getY1(), +- getX2(), getY2(), +- getCtrlX(), getCtrlY()); ++ return Line2D.ptSegDist(getX1(), getY1(), getX2(), getY2(), getCtrlX(), ++ getCtrlY()); + } + +- + /** + * Subdivides this curve into two halves. + * +@@ -423,8 +399,11 @@ + public void subdivide(QuadCurve2D left, QuadCurve2D right) + { + // Use empty slots at end to share single array. +- double[] d = new double[] { getX1(), getY1(), getCtrlX(), getCtrlY(), +- getX2(), getY2(), 0, 0, 0, 0 }; ++ double[] d = new double[] ++ { ++ getX1(), getY1(), getCtrlX(), getCtrlY(), getX2(), getY2(), ++ 0, 0, 0, 0 ++ }; + subdivide(d, 0, d, 0, d, 4); + if (left != null) + left.setCurve(d, 0); +@@ -432,7 +411,6 @@ + right.setCurve(d, 4); + } + +- + /** + * Subdivides a quadratic curve into two halves. + * +@@ -456,7 +434,6 @@ + src.subdivide(left, right); + } + +- + /** + * Subdivides a quadratic curve into two halves, passing all + * coordinates in an array. +@@ -500,11 +477,15 @@ + * index where the start point’s x coordinate will be + * stored. + */ +- public static void subdivide(double[] src, int srcOff, +- double[] left, int leftOff, +- double[] right, int rightOff) ++ public static void subdivide(double[] src, int srcOff, double[] left, ++ int leftOff, double[] right, int rightOff) + { +- double x1, y1, xc, yc, x2, y2; ++ double x1; ++ double y1; ++ double xc; ++ double yc; ++ double x2; ++ double y2; + + x1 = src[srcOff]; + y1 = src[srcOff + 1]; +@@ -514,16 +495,16 @@ + y2 = src[srcOff + 5]; + + if (left != null) +- { +- left[leftOff] = x1; +- left[leftOff + 1] = y1; +- } ++ { ++ left[leftOff] = x1; ++ left[leftOff + 1] = y1; ++ } + + if (right != null) +- { +- right[rightOff + 4] = x2; +- right[rightOff + 5] = y2; +- } ++ { ++ right[rightOff + 4] = x2; ++ right[rightOff + 5] = y2; ++ } + + x1 = (x1 + xc) / 2; + x2 = (xc + x2) / 2; +@@ -533,23 +514,22 @@ + yc = (y1 + y2) / 2; + + if (left != null) +- { +- left[leftOff + 2] = x1; +- left[leftOff + 3] = y1; +- left[leftOff + 4] = xc; +- left[leftOff + 5] = yc; +- } ++ { ++ left[leftOff + 2] = x1; ++ left[leftOff + 3] = y1; ++ left[leftOff + 4] = xc; ++ left[leftOff + 5] = yc; ++ } + + if (right != null) +- { +- right[rightOff] = xc; +- right[rightOff + 1] = yc; +- right[rightOff + 2] = x2; +- right[rightOff + 3] = y2; +- } ++ { ++ right[rightOff] = xc; ++ right[rightOff + 1] = yc; ++ right[rightOff + 2] = x2; ++ right[rightOff + 3] = y2; ++ } + } + +- + /** + * Finds the non-complex roots of a quadratic equation, placing the + * results into the same array as the equation coefficients. The +@@ -594,7 +574,6 @@ + return solveQuadratic(eqn, eqn); + } + +- + /** + * Finds the non-complex roots of a quadratic equation. The + * following equation is being solved: +@@ -649,8 +628,10 @@ + // The Java implementation is very similar to the GSL code, but + // not a strict one-to-one copy. For example, GSL would sort the + // result. +- +- double a, b, c, disc; ++ double a; ++ double b; ++ double c; ++ double disc; + + c = eqn[0]; + b = eqn[1]; +@@ -661,13 +642,13 @@ + // wouldn't return -1 for constant functions, and 2 instead of 1 + // for linear functions. + if (a == 0) +- { +- if (b == 0) +- return -1; +- +- res[0] = -c / b; +- return 1; +- } ++ { ++ if (b == 0) ++ return -1; ++ ++ res[0] = -c / b; ++ return 1; ++ } + + disc = b * b - 4 * a * c; + +@@ -675,96 +656,149 @@ + return 0; + + if (disc == 0) +- { +- // The GNU Scientific Library returns two identical results here. +- // We just return one. +- res[0] = -0.5 * b / a ; +- return 1; +- } ++ { ++ // The GNU Scientific Library returns two identical results here. ++ // We just return one. ++ res[0] = -0.5 * b / a; ++ return 1; ++ } + + // disc > 0 + if (b == 0) +- { +- double r; ++ { ++ double r; + +- r = Math.abs(0.5 * Math.sqrt(disc) / a); +- res[0] = -r; +- res[1] = r; +- } ++ r = Math.abs(0.5 * Math.sqrt(disc) / a); ++ res[0] = -r; ++ res[1] = r; ++ } + else +- { +- double sgnb, temp; +- +- sgnb = (b > 0 ? 1 : -1); +- temp = -0.5 * (b + sgnb * Math.sqrt(disc)); +- +- // The GNU Scientific Library sorts the result here. We don't. +- res[0] = temp / a; +- res[1] = c / temp; +- } ++ { ++ double sgnb; ++ double temp; ++ ++ sgnb = (b > 0 ? 1 : -1); ++ temp = -0.5 * (b + sgnb * Math.sqrt(disc)); ++ ++ // The GNU Scientific Library sorts the result here. We don't. ++ res[0] = temp / a; ++ res[1] = c / temp; ++ } + return 2; + } + +- + /** +- * Determines whether a point lies inside the area that is bounded ++ * Determines whether a point is inside the area bounded + * by the curve and the straight line connecting its end points. + * + *

    A drawing of the area spanned by the curve + * + *

    The above drawing illustrates in which area points are +- * considered “contained” in a QuadCurve2D. ++ * considered “inside” a QuadCurve2D. + */ + public boolean contains(double x, double y) + { +- // XXX Implement. +- throw new Error("not implemented"); +- } ++ if (! getBounds2D().contains(x, y)) ++ return false; + ++ return ((getAxisIntersections(x, y, true, BIG_VALUE) & 1) != 0); ++ } + + /** +- * Determines whether a point lies inside the area that is bounded ++ * Determines whether a point is inside the area bounded + * by the curve and the straight line connecting its end points. + * + *

    A drawing of the area spanned by the curve + * + *

    The above drawing illustrates in which area points are +- * considered “contained” in a QuadCurve2D. ++ * considered “inside” a QuadCurve2D. + */ + public boolean contains(Point2D p) + { + return contains(p.getX(), p.getY()); + } + +- ++ /** ++ * Determines whether any part of a rectangle is inside the area bounded ++ * by the curve and the straight line connecting its end points. ++ * ++ *

    A drawing of the area spanned by the curve ++ * ++ *

    The above drawing illustrates in which area points are ++ * considered “inside” in a CubicCurve2D. ++ */ + public boolean intersects(double x, double y, double w, double h) + { +- // XXX Implement. +- throw new Error("not implemented"); +- } ++ if (! getBounds2D().contains(x, y, w, h)) ++ return false; ++ ++ /* Does any edge intersect? */ ++ if (getAxisIntersections(x, y, true, w) != 0 /* top */ ++ || getAxisIntersections(x, y + h, true, w) != 0 /* bottom */ ++ || getAxisIntersections(x + w, y, false, h) != 0 /* right */ ++ || getAxisIntersections(x, y, false, h) != 0) /* left */ ++ return true; ++ ++ /* No intersections, is any point inside? */ ++ if ((getAxisIntersections(x, y, true, BIG_VALUE) & 1) != 0) ++ return true; + ++ return false; ++ } + ++ /** ++ * Determines whether any part of a Rectangle2D is inside the area bounded ++ * by the curve and the straight line connecting its end points. ++ * @see #intersects(double, double, double, double) ++ */ + public boolean intersects(Rectangle2D r) + { + return intersects(r.getX(), r.getY(), r.getWidth(), r.getHeight()); + } + +- ++ /** ++ * Determines whether a rectangle is entirely inside the area bounded ++ * by the curve and the straight line connecting its end points. ++ * ++ *

    A drawing of the area spanned by the curve ++ * ++ *

    The above drawing illustrates in which area points are ++ * considered “inside” a QuadCurve2D. ++ * @see #contains(double, double) ++ */ + public boolean contains(double x, double y, double w, double h) + { +- // XXX Implement. +- throw new Error("not implemented"); +- } ++ if (! getBounds2D().intersects(x, y, w, h)) ++ return false; ++ ++ /* Does any edge intersect? */ ++ if (getAxisIntersections(x, y, true, w) != 0 /* top */ ++ || getAxisIntersections(x, y + h, true, w) != 0 /* bottom */ ++ || getAxisIntersections(x + w, y, false, h) != 0 /* right */ ++ || getAxisIntersections(x, y, false, h) != 0) /* left */ ++ return false; + ++ /* No intersections, is any point inside? */ ++ if ((getAxisIntersections(x, y, true, BIG_VALUE) & 1) != 0) ++ return true; ++ ++ return false; ++ } + ++ /** ++ * Determines whether a Rectangle2D is entirely inside the area that is ++ * bounded by the curve and the straight line connecting its end points. ++ * @see #contains(double, double, double, double) ++ */ + public boolean contains(Rectangle2D r) + { + return contains(r.getX(), r.getY(), r.getWidth(), r.getHeight()); + } + +- + /** + * Determines the smallest rectangle that encloses the + * curve’s start, end and control point. As the illustration +@@ -780,97 +814,85 @@ + return getBounds2D().getBounds(); + } + +- + public PathIterator getPathIterator(final AffineTransform at) + { + return new PathIterator() +- { +- /** Current coordinate. */ +- private int current = 0; +- +- +- public int getWindingRule() +- { +- return WIND_NON_ZERO; +- } +- +- +- public boolean isDone() +- { +- return current >= 2; +- } +- +- +- public void next() +- { +- current++; +- } +- +- +- public int currentSegment(float[] coords) + { +- int result; +- switch (current) +- { +- case 0: +- coords[0] = (float) getX1(); +- coords[1] = (float) getY1(); +- result = SEG_MOVETO; +- break; +- +- case 1: +- coords[0] = (float) getCtrlX(); +- coords[1] = (float) getCtrlY(); +- coords[2] = (float) getX2(); +- coords[3] = (float) getY2(); +- result = SEG_QUADTO; +- break; +- +- default: +- throw new NoSuchElementException("quad iterator out of bounds"); +- } +- if (at != null) +- at.transform(coords, 0, coords, 0, 2); +- return result; +- } +- ++ /** Current coordinate. */ ++ private int current = 0; + +- public int currentSegment(double[] coords) +- { +- int result; +- switch (current) +- { +- case 0: +- coords[0] = getX1(); +- coords[1] = getY1(); +- result = SEG_MOVETO; +- break; +- +- case 1: +- coords[0] = getCtrlX(); +- coords[1] = getCtrlY(); +- coords[2] = getX2(); +- coords[3] = getY2(); +- result = SEG_QUADTO; +- break; +- +- default: +- throw new NoSuchElementException("quad iterator out of bounds"); +- } +- if (at != null) +- at.transform(coords, 0, coords, 0, 2); +- return result; +- } +- }; ++ public int getWindingRule() ++ { ++ return WIND_NON_ZERO; ++ } ++ ++ public boolean isDone() ++ { ++ return current >= 2; ++ } ++ ++ public void next() ++ { ++ current++; ++ } ++ ++ public int currentSegment(float[] coords) ++ { ++ int result; ++ switch (current) ++ { ++ case 0: ++ coords[0] = (float) getX1(); ++ coords[1] = (float) getY1(); ++ result = SEG_MOVETO; ++ break; ++ case 1: ++ coords[0] = (float) getCtrlX(); ++ coords[1] = (float) getCtrlY(); ++ coords[2] = (float) getX2(); ++ coords[3] = (float) getY2(); ++ result = SEG_QUADTO; ++ break; ++ default: ++ throw new NoSuchElementException("quad iterator out of bounds"); ++ } ++ if (at != null) ++ at.transform(coords, 0, coords, 0, 2); ++ return result; ++ } ++ ++ public int currentSegment(double[] coords) ++ { ++ int result; ++ switch (current) ++ { ++ case 0: ++ coords[0] = getX1(); ++ coords[1] = getY1(); ++ result = SEG_MOVETO; ++ break; ++ case 1: ++ coords[0] = getCtrlX(); ++ coords[1] = getCtrlY(); ++ coords[2] = getX2(); ++ coords[3] = getY2(); ++ result = SEG_QUADTO; ++ break; ++ default: ++ throw new NoSuchElementException("quad iterator out of bounds"); ++ } ++ if (at != null) ++ at.transform(coords, 0, coords, 0, 2); ++ return result; ++ } ++ }; + } + +- + public PathIterator getPathIterator(AffineTransform at, double flatness) + { + return new FlatteningPathIterator(getPathIterator(at), flatness); + } + +- + /** + * Creates a new curve with the same contents as this one. + * +@@ -879,15 +901,106 @@ + public Object clone() + { + try +- { +- return super.clone(); +- } ++ { ++ return super.clone(); ++ } + catch (CloneNotSupportedException e) +- { +- throw (Error) new InternalError().initCause(e); // Impossible +- } ++ { ++ throw (Error) new InternalError().initCause(e); // Impossible ++ } + } + ++ /** ++ * Helper method used by contains() and intersects() methods ++ * Return the number of curve/line intersections on a given axis ++ * extending from a certain point. useYaxis is true for using the Y axis, ++ * @param x x coordinate of the origin point ++ * @param y y coordinate of the origin point ++ * @param useYaxis axis to follow, if true the positive Y axis is used, ++ * false uses the positive X axis. ++ * ++ * This is an implementation of the line-crossings algorithm, ++ * Detailed in an article on Eric Haines' page: ++ * http://www.acm.org/tog/editors/erich/ptinpoly/ ++ */ ++ private int getAxisIntersections(double x, double y, boolean useYaxis, ++ double distance) ++ { ++ int nCrossings = 0; ++ double a0; ++ double a1; ++ double a2; ++ double b0; ++ double b1; ++ double b2; ++ double[] r = new double[3]; ++ int nRoots; ++ ++ a0 = a2 = 0.0; ++ ++ if (useYaxis) ++ { ++ a0 = getY1() - y; ++ a1 = getCtrlY() - y; ++ a2 = getY2() - y; ++ b0 = getX1() - x; ++ b1 = getCtrlX() - x; ++ b2 = getX2() - x; ++ } ++ else ++ { ++ a0 = getX1() - x; ++ a1 = getCtrlX() - x; ++ a2 = getX2() - x; ++ b0 = getY1() - y; ++ b1 = getCtrlY() - y; ++ b2 = getY2() - y; ++ } ++ ++ /* If the axis intersects a start/endpoint, shift it up by some small ++ amount to guarantee the line is 'inside' ++ If this is not done,bad behaviour may result for points on that axis. */ ++ if (a0 == 0.0 || a2 == 0.0) ++ { ++ double small = getFlatness() * (1E-10); ++ if (a0 == 0.0) ++ a0 += small; ++ ++ if (a2 == 0.0) ++ a2 += small; ++ } ++ ++ r[0] = a0; ++ r[1] = 2 * (a1 - a0); ++ r[2] = (a2 - 2 * a1 + a0); ++ ++ nRoots = solveQuadratic(r); ++ for (int i = 0; i < nRoots; i++) ++ { ++ double t = r[i]; ++ if (t >= 0.0 && t <= 1.0) ++ { ++ double crossing = t * t * (b2 - 2 * b1 + b0) + 2 * t * (b1 - b0) ++ + b0; ++ /* single root is always doubly degenerate in quads */ ++ if (crossing > 0 && crossing < distance) ++ nCrossings += (nRoots == 1) ? 2 : 1; ++ } ++ } ++ ++ if (useYaxis) ++ { ++ if (Line2D.linesIntersect(b0, a0, b2, a2, 0.0, 0.0, distance, 0.0)) ++ nCrossings++; ++ } ++ else ++ { ++ if (Line2D.linesIntersect(a0, b0, a2, b2, 0.0, 0.0, 0.0, distance)) ++ nCrossings++; ++ } ++ ++ return (nCrossings); ++ } + + /** + * A two-dimensional curve that is parameterized with a quadratic +@@ -899,45 +1012,38 @@ + * @author Eric Blake (ebb9@email.byu.edu) + * @author Sascha Brawer (brawer@dandelis.ch) + */ +- public static class Double +- extends QuadCurve2D ++ public static class Double extends QuadCurve2D + { + /** + * The x coordinate of the curve’s start point. + */ + public double x1; + +- + /** + * The y coordinate of the curve’s start point. + */ + public double y1; + +- + /** + * The x coordinate of the curve’s control point. + */ + public double ctrlx; + +- + /** + * The y coordinate of the curve’s control point. + */ + public double ctrly; + +- + /** + * The x coordinate of the curve’s end point. + */ + public double x2; + +- + /** + * The y coordinate of the curve’s end point. + */ + public double y2; + +- + /** + * Constructs a new QuadCurve2D that stores its coordinate values + * in double-precision floating-point format. All points are +@@ -947,7 +1053,6 @@ + { + } + +- + /** + * Constructs a new QuadCurve2D that stores its coordinate values + * in double-precision floating-point format, specifying the +@@ -971,8 +1076,8 @@ + * @param y2 the y coordinate of the curve’s end + * point. + */ +- public Double(double x1, double y1, double cx, double cy, +- double x2, double y2) ++ public Double(double x1, double y1, double cx, double cy, double x2, ++ double y2) + { + this.x1 = x1; + this.y1 = y1; +@@ -982,7 +1087,6 @@ + this.y2 = y2; + } + +- + /** + * Returns the x coordinate of the curve’s start + * point. +@@ -992,7 +1096,6 @@ + return x1; + } + +- + /** + * Returns the y coordinate of the curve’s start + * point. +@@ -1002,7 +1105,6 @@ + return y1; + } + +- + /** + * Returns the curve’s start point. + */ +@@ -1011,7 +1113,6 @@ + return new Point2D.Double(x1, y1); + } + +- + /** + * Returns the x coordinate of the curve’s control + * point. +@@ -1021,7 +1122,6 @@ + return ctrlx; + } + +- + /** + * Returns the y coordinate of the curve’s control + * point. +@@ -1031,7 +1131,6 @@ + return ctrly; + } + +- + /** + * Returns the curve’s control point. + */ +@@ -1040,7 +1139,6 @@ + return new Point2D.Double(ctrlx, ctrly); + } + +- + /** + * Returns the x coordinate of the curve’s end + * point. +@@ -1050,7 +1148,6 @@ + return x2; + } + +- + /** + * Returns the y coordinate of the curve’s end + * point. +@@ -1060,7 +1157,6 @@ + return y2; + } + +- + /** + * Returns the curve’s end point. + */ +@@ -1069,7 +1165,6 @@ + return new Point2D.Double(x2, y2); + } + +- + /** + * Changes the geometry of the curve. + * +@@ -1102,7 +1197,6 @@ + this.y2 = y2; + } + +- + /** + * Determines the smallest rectangle that encloses the + * curve’s start, end and control point. As the +@@ -1123,7 +1217,6 @@ + } + } + +- + /** + * A two-dimensional curve that is parameterized with a quadratic + * function and stores coordinate values in single-precision +@@ -1134,45 +1227,38 @@ + * @author Eric Blake (ebb9@email.byu.edu) + * @author Sascha Brawer (brawer@dandelis.ch) + */ +- public static class Float +- extends QuadCurve2D ++ public static class Float extends QuadCurve2D + { + /** + * The x coordinate of the curve’s start point. + */ + public float x1; + +- + /** + * The y coordinate of the curve’s start point. + */ + public float y1; + +- + /** + * The x coordinate of the curve’s control point. + */ + public float ctrlx; + +- + /** + * The y coordinate of the curve’s control point. + */ + public float ctrly; + +- + /** + * The x coordinate of the curve’s end point. + */ + public float x2; + +- + /** + * The y coordinate of the curve’s end point. + */ + public float y2; + +- + /** + * Constructs a new QuadCurve2D that stores its coordinate values + * in single-precision floating-point format. All points are +@@ -1182,7 +1268,6 @@ + { + } + +- + /** + * Constructs a new QuadCurve2D that stores its coordinate values + * in single-precision floating-point format, specifying the +@@ -1206,8 +1291,7 @@ + * @param y2 the y coordinate of the curve’s end + * point. + */ +- public Float(float x1, float y1, float cx, float cy, +- float x2, float y2) ++ public Float(float x1, float y1, float cx, float cy, float x2, float y2) + { + this.x1 = x1; + this.y1 = y1; +@@ -1217,7 +1301,6 @@ + this.y2 = y2; + } + +- + /** + * Returns the x coordinate of the curve’s start + * point. +@@ -1227,7 +1310,6 @@ + return x1; + } + +- + /** + * Returns the y coordinate of the curve’s start + * point. +@@ -1237,7 +1319,6 @@ + return y1; + } + +- + /** + * Returns the curve’s start point. + */ +@@ -1246,7 +1327,6 @@ + return new Point2D.Float(x1, y1); + } + +- + /** + * Returns the x coordinate of the curve’s control + * point. +@@ -1256,7 +1336,6 @@ + return ctrlx; + } + +- + /** + * Returns the y coordinate of the curve’s control + * point. +@@ -1266,7 +1345,6 @@ + return ctrly; + } + +- + /** + * Returns the curve’s control point. + */ +@@ -1275,7 +1353,6 @@ + return new Point2D.Float(ctrlx, ctrly); + } + +- + /** + * Returns the x coordinate of the curve’s end + * point. +@@ -1285,7 +1362,6 @@ + return x2; + } + +- + /** + * Returns the y coordinate of the curve’s end + * point. +@@ -1295,7 +1371,6 @@ + return y2; + } + +- + /** + * Returns the curve’s end point. + */ +@@ -1304,7 +1379,6 @@ + return new Point2D.Float(x2, y2); + } + +- + /** + * Changes the geometry of the curve, specifying coordinate values + * as double-precision floating-point numbers. +@@ -1338,7 +1412,6 @@ + this.y2 = (float) y2; + } + +- + /** + * Changes the geometry of the curve, specifying coordinate values + * as single-precision floating-point numbers. +@@ -1361,8 +1434,8 @@ + * @param y2 the y coordinate of the curve’s new + * end point. + */ +- public void setCurve(float x1, float y1, float cx, float cy, +- float x2, float y2) ++ public void setCurve(float x1, float y1, float cx, float cy, float x2, ++ float y2) + { + this.x1 = x1; + this.y1 = y1; +@@ -1372,7 +1445,6 @@ + this.y2 = y2; + } + +- + /** + * Determines the smallest rectangle that encloses the + * curve’s start, end and control point. As the +Index: java/awt/geom/RoundRectangle2D.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/geom/RoundRectangle2D.java,v +retrieving revision 1.5 +diff -u -r1.5 RoundRectangle2D.java +--- java/awt/geom/RoundRectangle2D.java 26 Sep 2003 15:14:21 -0000 1.5 ++++ java/awt/geom/RoundRectangle2D.java 6 Sep 2004 16:35:49 -0000 +@@ -1,5 +1,5 @@ + /* RoundRectangle2D.java -- represents a rectangle with rounded corners +- Copyright (C) 2000, 2002, 2003 Free Software Foundation ++ Copyright (C) 2000, 2002, 2003, 2004 Free Software Foundation + + This file is part of GNU Classpath. + +@@ -39,6 +39,7 @@ + + import java.util.NoSuchElementException; + ++ + /** This class implements a rectangle with rounded corners. + * @author Tom Tromey + * @date December 3, 2000 +@@ -60,12 +61,12 @@ + * @param arcHeight The arc height + */ + public abstract void setRoundRect(double x, double y, double w, double h, +- double arcWidth, double arcHeight); ++ double arcWidth, double arcHeight); + + /** Create a RoundRectangle2D. This is protected because this class + * is abstract and cannot be instantiated. + */ +- protected RoundRectangle2D() ++ protected RoundRectangle2D() + { + } + +@@ -87,8 +88,11 @@ + // Now check to see if the point is in range of an arc. + double dy = Math.min(Math.abs(my - y), Math.abs(my + mh - y)); + double dx = Math.min(Math.abs(mx - x), Math.abs(mx + mw - x)); +- double aw = getArcWidth(); +- double ah = getArcHeight(); ++ ++ // The arc dimensions are that of the corresponding ellipse ++ // thus a 90 degree segment is half of that. ++ double aw = getArcWidth() / 2.0; ++ double ah = getArcHeight() / 2.0; + if (dx > aw || dy > ah) + return true; + +@@ -112,8 +116,8 @@ + { + // We have to check all four points here (for ordinary rectangles + // we can just check opposing corners). +- return (contains(x, y) && contains(x + w, h) +- && contains(x, y + h) && contains(x + w, y + h)); ++ return (contains(x, y) && contains(x, y + h) && contains(x + w, y + h) ++ && contains(x + w, y)); + } + + /** Return a new path iterator which iterates over this rectangle. +@@ -128,154 +132,161 @@ + final double arcwidth = getArcWidth(); + final double archeight = getArcHeight(); + return new PathIterator() +- { +- /** We iterate clockwise around the rectangle, starting in the +- * upper left. This variable tracks our current point, which +- * can be on either side of a given corner. */ +- private int current = 0; +- +- /** Child path iterator, used for corners. */ +- private PathIterator corner; +- +- /** This is used when rendering the corners. We re-use the arc +- * for each corner. */ +- private Arc2D arc = new Arc2D.Double(); +- +- /** Temporary array used by getPoint. */ +- private double[] temp = new double[2]; +- +- public int getWindingRule() +- { +- return WIND_NON_ZERO; +- } +- +- public boolean isDone() +- { +- return current > 9; +- } +- +- private void getPoint(int val) +- { +- switch (val) +- { +- case 0: +- case 8: +- temp[0] = minx; +- temp[1] = miny + archeight; +- break; +- case 1: +- temp[0] = minx + arcwidth; +- temp[1] = miny; +- break; +- case 2: +- temp[0] = maxx - arcwidth; +- temp[1] = maxy; +- break; +- case 3: +- temp[0] = maxx; +- temp[1] = miny + archeight; +- break; +- case 4: +- temp[0] = maxx; +- temp[1] = maxy - archeight; +- break; +- case 5: +- temp[0] = maxx - arcwidth; +- temp[1] = maxy; +- break; +- case 6: +- temp[0] = minx + arcwidth; +- temp[1] = maxy; +- break; +- case 7: +- temp[0] = minx; +- temp[1] = maxy - archeight; +- break; +- } +- } +- +- public void next() +- { +- if (current >= 8) +- ++current; +- else if (corner != null) +- { +- // We're iterating through the corner. Work on the child +- // iterator; if it finishes, reset and move to the next +- // point along the rectangle. +- corner.next(); +- if (corner.isDone()) +- { +- corner = null; +- ++current; +- } +- } +- else +- { +- // Make an arc between this point on the rectangle and +- // the next one, and then iterate over this arc. +- getPoint(current); +- double x1 = temp[0]; +- double y1 = temp[1]; +- getPoint(current + 1); +- arc.setFrameFromDiagonal(x1, y1, temp[0], temp[1]); +- arc.setAngles(x1, y1, temp[0], temp[1]); +- corner = arc.getPathIterator(at); +- } +- } +- +- public int currentSegment(float[] coords) +- { +- if (corner != null) +- { +- int r = corner.currentSegment(coords); +- if (r == SEG_MOVETO) +- r = SEG_LINETO; +- return r; +- } +- +- if (current < 9) +- { +- getPoint(current); +- coords[0] = (float) temp[0]; +- coords[1] = (float) temp[1]; +- } +- else if (current == 9) +- return SEG_CLOSE; +- else +- throw new NoSuchElementException("rect iterator out of bounds"); +- +- if (at != null) +- at.transform(coords, 0, coords, 0, 1); +- return current == 0 ? SEG_MOVETO : SEG_LINETO; +- } +- +- public int currentSegment(double[] coords) + { +- if (corner != null) +- { +- int r = corner.currentSegment(coords); +- if (r == SEG_MOVETO) +- r = SEG_LINETO; +- return r; +- } +- +- if (current < 9) +- { +- getPoint(current); +- coords[0] = temp[0]; +- coords[1] = temp[1]; +- } +- else if (current == 9) +- return SEG_CLOSE; +- else +- throw new NoSuchElementException("rect iterator out of bounds"); +- +- if (at != null) +- at.transform(coords, 0, coords, 0, 1); +- return current == 0 ? SEG_MOVETO : SEG_LINETO; +- } +- }; ++ /** We iterate counterclockwise around the rectangle, starting in the ++ * upper right. This variable tracks our current point, which ++ * can be on either side of a given corner. */ ++ private int current = 0; ++ ++ /** Child path iterator, used for corners. */ ++ private PathIterator corner; ++ ++ /** This is used when rendering the corners. We re-use the arc ++ * for each corner. */ ++ private Arc2D arc = new Arc2D.Double(); ++ ++ /** Temporary array used by getPoint. */ ++ private double[] temp = new double[2]; ++ ++ public int getWindingRule() ++ { ++ return WIND_NON_ZERO; ++ } ++ ++ public boolean isDone() ++ { ++ return current > 9; ++ } ++ ++ private void getPoint(int val) ++ { ++ switch (val) ++ { ++ case 0: ++ case 8: ++ temp[0] = maxx; ++ temp[1] = miny + archeight; ++ break; ++ case 7: ++ temp[0] = maxx; ++ temp[1] = maxy - archeight; ++ break; ++ case 6: ++ temp[0] = maxx - arcwidth; ++ temp[1] = maxy; ++ break; ++ case 5: ++ temp[0] = minx + arcwidth; ++ temp[1] = maxy; ++ break; ++ case 4: ++ temp[0] = minx; ++ temp[1] = maxy - archeight; ++ break; ++ case 3: ++ temp[0] = minx; ++ temp[1] = miny + archeight; ++ break; ++ case 2: ++ temp[0] = minx + arcwidth; ++ temp[1] = miny; ++ break; ++ case 1: ++ temp[0] = maxx - arcwidth; ++ temp[1] = miny; ++ break; ++ } ++ } ++ ++ public void next() ++ { ++ if (current >= 8) ++ ++current; ++ else if (corner != null) ++ { ++ // We're iterating through the corner. Work on the child ++ // iterator; if it finishes, reset and move to the next ++ // point along the rectangle. ++ corner.next(); ++ if (corner.isDone()) ++ { ++ corner = null; ++ ++current; ++ } ++ } ++ else ++ { ++ // Make an arc between this point on the rectangle and ++ // the next one, and then iterate over this arc. ++ getPoint(current); ++ double x1 = temp[0]; ++ double y1 = temp[1]; ++ getPoint(current + 1); ++ Rectangle2D.Double r = new Rectangle2D.Double(Math.min(x1, ++ temp[0]), ++ Math.min(y1, ++ temp[1]), ++ Math.abs(x1 ++ - temp[0]), ++ Math.abs(y1 ++ - temp[1])); ++ arc.setArc(r, (current >> 1) * 90.0, 90.0, Arc2D.OPEN); ++ corner = arc.getPathIterator(at); ++ } ++ } ++ ++ public int currentSegment(float[] coords) ++ { ++ if (corner != null) ++ { ++ int r = corner.currentSegment(coords); ++ if (r == SEG_MOVETO) ++ r = SEG_LINETO; ++ return r; ++ } ++ ++ if (current < 9) ++ { ++ getPoint(current); ++ coords[0] = (float) temp[0]; ++ coords[1] = (float) temp[1]; ++ } ++ else if (current == 9) ++ return SEG_CLOSE; ++ else ++ throw new NoSuchElementException("rect iterator out of bounds"); ++ ++ if (at != null) ++ at.transform(coords, 0, coords, 0, 1); ++ return current == 0 ? SEG_MOVETO : SEG_LINETO; ++ } ++ ++ public int currentSegment(double[] coords) ++ { ++ if (corner != null) ++ { ++ int r = corner.currentSegment(coords); ++ if (r == SEG_MOVETO) ++ r = SEG_LINETO; ++ return r; ++ } ++ ++ if (current < 9) ++ { ++ getPoint(current); ++ coords[0] = temp[0]; ++ coords[1] = temp[1]; ++ } ++ else if (current == 9) ++ return SEG_CLOSE; ++ else ++ throw new NoSuchElementException("rect iterator out of bounds"); ++ ++ if (at != null) ++ at.transform(coords, 0, coords, 0, 1); ++ return current == 0 ? SEG_MOVETO : SEG_LINETO; ++ } ++ }; + } + + /** Return true if the given rectangle intersects this shape. +@@ -286,14 +297,9 @@ + */ + public boolean intersects(double x, double y, double w, double h) + { +- // Here we can use the same code we use for an ordinary rectangle. +- double mx = getX(); +- double mw = getWidth(); +- if (x < mx || x >= mx + mw || x + w < mx || x + w >= mx + mw) +- return false; +- double my = getY(); +- double mh = getHeight(); +- return y >= my && y < my + mh && y + h >= my && y + h < my + mh; ++ // Check if any corner is within the rectangle ++ return (contains(x, y) || contains(x, y + h) || contains(x + w, y + h) ++ || contains(x + w, y)); + } + + /** Set the boundary of this round rectangle. +@@ -315,7 +321,7 @@ + public void setRoundRect(RoundRectangle2D rr) + { + setRoundRect(rr.getX(), rr.getY(), rr.getWidth(), rr.getHeight(), +- rr.getArcWidth(), rr.getArcHeight()); ++ rr.getArcWidth(), rr.getArcHeight()); + } + + /** A subclass of RoundRectangle which keeps its parameters as +@@ -353,8 +359,8 @@ + * @param arcWidth The arc width + * @param arcHeight The arc height + */ +- public Double(double x, double y, double w, double h, +- double arcWidth, double arcHeight) ++ public Double(double x, double y, double w, double h, double arcWidth, ++ double arcHeight) + { + this.x = x; + this.y = y; +@@ -405,7 +411,7 @@ + } + + public void setRoundRect(double x, double y, double w, double h, +- double arcWidth, double arcHeight) ++ double arcWidth, double arcHeight) + { + this.x = x; + this.y = y; +@@ -451,8 +457,8 @@ + * @param arcWidth The arc width + * @param arcHeight The arc height + */ +- public Float(float x, float y, float w, float h, +- float arcWidth, float arcHeight) ++ public Float(float x, float y, float w, float h, float arcWidth, ++ float arcHeight) + { + this.x = x; + this.y = y; +@@ -503,7 +509,7 @@ + } + + public void setRoundRect(float x, float y, float w, float h, +- float arcWidth, float arcHeight) ++ float arcWidth, float arcHeight) + { + this.x = x; + this.y = y; +@@ -514,7 +520,7 @@ + } + + public void setRoundRect(double x, double y, double w, double h, +- double arcWidth, double arcHeight) ++ double arcWidth, double arcHeight) + { + this.x = (float) x; + this.y = (float) y; +Index: java/awt/im/InputContext.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/im/InputContext.java,v +retrieving revision 1.3 +diff -u -r1.3 InputContext.java +--- java/awt/im/InputContext.java 11 Jul 2003 18:27:54 -0000 1.3 ++++ java/awt/im/InputContext.java 6 Sep 2004 16:35:49 -0000 +@@ -86,22 +86,22 @@ + private static final ArrayList descriptors = new ArrayList(); + static + { +- Enumeration enum; ++ Enumeration e; + try + { +- enum = ClassLoader.getSystemResources ++ e = ClassLoader.getSystemResources + ("META_INF/services/java.awt.im.spi.InputMethodDescriptor"); + } + catch (IOException ex) + { + // XXX Should we do something else? +- enum = EmptyEnumeration.getInstance(); ++ e = EmptyEnumeration.getInstance(); + } +- while (enum.hasMoreElements()) ++ while (e.hasMoreElements()) + { +- URL url = (URL) enum.nextElement(); +- BufferedReader in; +- String line; ++ URL url = (URL) e.nextElement(); ++ BufferedReader in = null; ++ String line = null; + try + { + in = new BufferedReader +@@ -125,7 +125,7 @@ + } + line = in.readLine().trim(); + } +- catch (IOException e) ++ catch (IOException ex) + { + continue outer; + } +Index: java/awt/image/AffineTransformOp.java +=================================================================== +RCS file: java/awt/image/AffineTransformOp.java +diff -N java/awt/image/AffineTransformOp.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ java/awt/image/AffineTransformOp.java 6 Sep 2004 16:35:50 -0000 +@@ -0,0 +1,264 @@ ++/* AffineTransformOp.java -- This class performs affine ++ * transformation between two images or rasters in 2 ++ * dimensions. Copyright (C) 2004 Free Software Foundation ++ ++This file is part of GNU Classpath. ++ ++GNU Classpath is free software; you can redistribute it and/or modify ++it under the terms of the GNU General Public License as published by ++the Free Software Foundation; either version 2, or (at your option) ++any later version. ++ ++GNU Classpath is distributed in the hope that it will be useful, but ++WITHOUT ANY WARRANTY; without even the implied warranty of ++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++General Public License for more details. ++ ++You should have received a copy of the GNU General Public License ++along with GNU Classpath; see the file COPYING. If not, write to the ++Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 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.awt.image; ++ ++import java.awt.*; ++import java.awt.Graphics; ++import java.awt.Graphics2D; ++import java.awt.geom.*; ++ ++ ++/** ++ * This class performs affine transformation between two images or ++ * rasters in 2 dimensions. ++ * ++ * @author Olga Rodimina ++ */ ++ ++public class AffineTransformOp implements BufferedImageOp, RasterOp ++{ ++ public static final int TYPE_BILINEAR = 0; ++ public static final int TYPE_NEAREST_NEIGHBOR = 1; ++ ++ private AffineTransform transform; ++ private RenderingHints hints; ++ ++ /** ++ * Construct AffineTransformOp with the given xform and interpolationType. ++ * Interpolation type can be either TYPE_BILINEAR or TYPE_NEAREST_NEIGHBOR. ++ * ++ * @param xform AffineTransform that will applied to the source image ++ * @param interpolationType type of interpolation used ++ */ ++ public AffineTransformOp (AffineTransform xform, int interpolationType) ++ { ++ this.transform = xform; ++ ++ if (interpolationType == 0) ++ hints = new RenderingHints (RenderingHints.KEY_INTERPOLATION, ++ RenderingHints.VALUE_INTERPOLATION_BILINEAR); ++ ++ else ++ hints = new RenderingHints (RenderingHints.KEY_INTERPOLATION, ++ RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR); ++ ++ } ++ ++ /** ++ * Construct AffineTransformOp with the given xform and rendering hints. ++ * ++ * @param xform AffineTransform that will applied to the source image ++ * @param hints rendering hints that will be used during transformation ++ */ ++ public AffineTransformOp (AffineTransform xform, RenderingHints hints) ++ { ++ this.transform = xform; ++ this.hints = hints; ++ } ++ ++ /** ++ * Creates empty BufferedImage with the size equal to that of the ++ * transformed image and correct number of bands. The newly created ++ * image is created with the specified ColorModel. ++ * If the ColorModel is equal to null, then image is created ++ * with the ColorModel of the source image. ++ * ++ * @param src source image ++ * @param destCM color model for the destination image ++ * @return new compatible destination image ++ */ ++ public BufferedImage createCompatibleDestImage (BufferedImage src, ++ ColorModel destCM) ++ { ++ ++ // if destCm is not specified, use color model of the source image ++ ++ if (destCM == null) ++ destCM = src.getColorModel (); ++ ++ return new BufferedImage (destCM, ++ createCompatibleDestRaster (src.getRaster ()), ++ src.isAlphaPremultiplied (), ++ null); ++ ++ } ++ ++ /** ++ * Creates empty WritableRaster with the size equal to the transformed ++ * source raster and correct number of bands ++ * ++ * @param src source raster ++ * @throws RasterFormatException if resulting width or height of raster is 0 ++ * @return new compatible raster ++ */ ++ public WritableRaster createCompatibleDestRaster (Raster src) ++ { ++ Rectangle rect = (Rectangle) getBounds2D (src); ++ ++ // throw RasterFormatException if resulting width or height of the ++ // transformed raster is 0 ++ ++ if (rect.getWidth () == 0 || rect.getHeight () == 0) ++ throw new RasterFormatException("width or height is 0"); ++ ++ return src.createCompatibleWritableRaster ((int) rect.getWidth (), ++ (int) rect.getHeight ()); ++ } ++ ++ /** ++ * Transforms source image using transform specified at the constructor. ++ * The resulting transformed image is stored in the destination image. ++ * ++ * @param src source image ++ * @param dst destination image ++ * @return transformed source image ++ */ ++ public BufferedImage filter (BufferedImage src, BufferedImage dst) ++ { ++ ++ if (dst == src) ++ throw new IllegalArgumentException ("src image cannot be the same as the dst image"); ++ ++ // If the destination image is null, then BufferedImage is ++ // created with ColorModel of the source image ++ ++ if (dst == null) ++ dst = createCompatibleDestImage(src, src.getColorModel ()); ++ ++ // FIXME: Must check if color models of src and dst images are the same. ++ // If it is not, then source image should be converted to color model ++ // of the destination image ++ ++ Graphics2D gr = (Graphics2D) dst.createGraphics (); ++ gr.setRenderingHints (hints); ++ gr.drawImage (src, transform, null); ++ return dst; ++ ++ } ++ ++ /** ++ * Transforms source raster using transform specified at the constructor. ++ * The resulting raster is stored in the destination raster. ++ * ++ * @param src source raster ++ * @param dst destination raster ++ * @return transformed raster ++ */ ++ public WritableRaster filter (Raster src, WritableRaster dst) ++ { ++ throw new UnsupportedOperationException ("not implemented yet"); ++ } ++ ++ /** ++ * Transforms source image using transform specified at the constructor and ++ * returns bounds of the transformed image. ++ * ++ * @param src image to be transformed ++ * @return bounds of the transformed image. ++ */ ++ public Rectangle2D getBounds2D (BufferedImage src) ++ { ++ return getBounds2D (src.getRaster()); ++ } ++ ++ /** ++ * Returns bounds of the transformed raster. ++ * ++ * @param src raster to be transformed ++ * @return bounds of the transformed raster. ++ */ ++ public Rectangle2D getBounds2D (Raster src) ++ { ++ // determine new size for the transformed raster. ++ // Need to calculate transformed coordinates of the lower right ++ // corner of the raster. The upper left corner is always (0,0) ++ ++ double x2 = (double) src.getWidth () + src.getMinX (); ++ double y2 = (double) src.getHeight () + src.getMinY (); ++ Point2D p2 = getPoint2D (new Point2D.Double (x2,y2), null); ++ ++ Rectangle2D rect = new Rectangle (0, 0, (int) p2.getX (), (int) p2.getY ()); ++ return rect.getBounds (); ++ } ++ ++ /** ++ * Returns interpolation type used during transformations ++ * ++ * @return interpolation type ++ */ ++ public int getInterpolationType () ++ { ++ if(hints.containsValue (RenderingHints.VALUE_INTERPOLATION_BILINEAR)) ++ return TYPE_BILINEAR; ++ else ++ return TYPE_NEAREST_NEIGHBOR; ++ } ++ ++ /** ++ * Returns location of the transformed source point. The resulting point ++ * is stored in the dstPt if one is specified. ++ * ++ * @param srcPt point to be transformed ++ * @param dstPt destination point ++ * @return the location of the transformed source point. ++ */ ++ public Point2D getPoint2D (Point2D srcPt, Point2D dstPt) ++ { ++ return transform.transform (srcPt, dstPt); ++ } ++ ++ /** Returns rendering hints that are used during transformation. ++ * ++ * @return rendering hints ++ */ ++ public RenderingHints getRenderingHints () ++ { ++ return hints; ++ } ++ ++ /** Returns transform used in transformation between source and destination ++ * image. ++ * ++ * @return transform ++ */ ++ public AffineTransform getTransform () ++ { ++ return transform; ++ } ++} +Index: java/awt/image/BufferedImage.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/image/BufferedImage.java,v +retrieving revision 1.9 +diff -u -r1.9 BufferedImage.java +--- java/awt/image/BufferedImage.java 25 Sep 2003 18:35:44 -0000 1.9 ++++ java/awt/image/BufferedImage.java 6 Sep 2004 16:35:50 -0000 +@@ -39,6 +39,7 @@ + + import java.awt.Graphics; + import java.awt.Graphics2D; ++import java.awt.GraphicsEnvironment; + import java.awt.Image; + import java.awt.Point; + import java.awt.Rectangle; +@@ -46,6 +47,8 @@ + import java.awt.color.ColorSpace; + import java.util.Hashtable; + import java.util.Vector; ++import java.util.HashSet; ++import java.util.Iterator; + import gnu.java.awt.ComponentDataBlitOp; + + /** +@@ -255,7 +258,8 @@ + public WritableRaster copyData(WritableRaster dest) + { + if (dest == null) +- dest = raster.createCompatibleWritableRaster(); ++ dest = raster.createCompatibleWritableRaster(getMinX(), getMinY(), ++ getWidth(),getHeight()); + + int x = dest.getMinX(); + int y = dest.getMinY(); +@@ -282,8 +286,9 @@ + + public Graphics2D createGraphics() + { +- throw new UnsupportedOperationException("not implemented"); +- // will require a lot of effort to implement ++ GraphicsEnvironment env; ++ env = GraphicsEnvironment.getLocalGraphicsEnvironment (); ++ return env.createGraphics (this); + } + + public void flush() { +@@ -439,7 +444,57 @@ + + public ImageProducer getSource() + { +- throw new UnsupportedOperationException("not implemented"); ++ return new ImageProducer() { ++ ++ HashSet consumers = new HashSet(); ++ ++ public void addConsumer(ImageConsumer ic) ++ { ++ consumers.add(ic); ++ } ++ ++ public boolean isConsumer(ImageConsumer ic) ++ { ++ return consumers.contains(ic); ++ } ++ ++ public void removeConsumer(ImageConsumer ic) ++ { ++ consumers.remove(ic); ++ } ++ ++ public void startProduction(ImageConsumer ic) ++ { ++ int x = 0; ++ int y = 0; ++ int width = getWidth(); ++ int height = getHeight(); ++ int stride = width; ++ int offset = 0; ++ int[] pixels = getRGB(x, y, ++ width, height, ++ (int[])null, offset, stride); ++ ColorModel model = getColorModel(); ++ ++ consumers.add(ic); ++ ++ Iterator i = consumers.iterator(); ++ while(i.hasNext()) ++ { ++ ImageConsumer c = (ImageConsumer) i.next(); ++ c.setHints(ImageConsumer.SINGLEPASS); ++ c.setDimensions(getWidth(), getHeight()); ++ c.setPixels(x, y, width, height, model, pixels, offset, stride); ++ c.imageComplete(ImageConsumer.STATICIMAGEDONE); ++ } ++ } ++ ++ public void requestTopDownLeftRightResend(ImageConsumer ic) ++ { ++ startProduction(ic); ++ } ++ ++ }; + } + + public Vector getSources() +Index: java/awt/image/ByteLookupTable.java +=================================================================== +RCS file: java/awt/image/ByteLookupTable.java +diff -N java/awt/image/ByteLookupTable.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ java/awt/image/ByteLookupTable.java 6 Sep 2004 16:35:50 -0000 +@@ -0,0 +1,162 @@ ++/* ByteLookupTable.java -- Java class for a pixel translation table. ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 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.awt.image; ++ ++/** ++ * ByteLookupTable represents translation arrays for pixel values. It wraps ++ * one or more data arrays for each layer (or component) in an image, such as ++ * Alpha, R, G, and B. When doing translation, the offset is subtracted from ++ * the pixel values to allow a subset of an array to be used. ++ * ++ * @author Jerry Quinn ++ * @version 1.0 ++ */ ++public class ByteLookupTable extends LookupTable ++{ ++ // Array of translation tables. ++ private byte data[][]; ++ ++ /** ++ * Creates a new ByteLookupTable instance. ++ * ++ * Offset is subtracted from pixel values when looking up in the translation ++ * tables. If data.length is one, the same table is applied to all pixel ++ * components. ++ * ++ * @param offset Offset to be subtracted. ++ * @param data Array of lookup tables. ++ * @exception IllegalArgumentException if offset < 0 or data.length < 1. ++ */ ++ public ByteLookupTable(int offset, byte[][] data) ++ throws IllegalArgumentException ++ { ++ super(offset, data.length); ++ this.data = data; ++ } ++ ++ /** ++ * Creates a new ByteLookupTable instance. ++ * ++ * Offset is subtracted from pixel values when looking up in the translation ++ * table. The same table is applied to all pixel components. ++ * ++ * @param offset Offset to be subtracted. ++ * @param data Lookup table for all components. ++ * @exception IllegalArgumentException if offset < 0. ++ */ ++ public ByteLookupTable(int offset, byte[] data) ++ throws IllegalArgumentException ++ { ++ super(offset, 1); ++ this.data = new byte[][] {data}; ++ } ++ ++ /** Return the lookup tables. */ ++ public final byte[][] getTable() ++ { ++ return data; ++ } ++ ++ /** ++ * Return translated values for a pixel. ++ * ++ * For each value in the pixel src, use the value minus offset as an index ++ * in the component array and copy the value there to the output for the ++ * component. If dest is null, the output is a new array, otherwise the ++ * translated values are written to dest. Dest can be the same array as ++ * src. ++ * ++ * For example, if the pixel src is [2, 4, 3], and offset is 1, the output ++ * is [comp1[1], comp2[3], comp3[2]], where comp1, comp2, and comp3 are the ++ * translation arrays. ++ * ++ * @param src Component values of a pixel. ++ * @param dest Destination array for values, or null. ++ * @return Translated values for the pixel. ++ */ ++ public int[] lookupPixel(int[] src, int[] dst) ++ throws ArrayIndexOutOfBoundsException ++ { ++ if (dst == null) ++ dst = new int[numComponents]; ++ ++ if (data.length == 1) ++ for (int i=0; i < src.length; i++) ++ dst[i] = data[0][src[i] - offset]; ++ else ++ for (int i=0; i < src.length; i++) ++ dst[i] = data[i][src[i] - offset]; ++ ++ return dst; ++ } ++ ++ /** ++ * Return translated values for a pixel. ++ * ++ * For each value in the pixel src, use the value minus offset as an index ++ * in the component array and copy the value there to the output for the ++ * component. If dest is null, the output is a new array, otherwise the ++ * translated values are written to dest. Dest can be the same array as ++ * src. ++ * ++ * For example, if the pixel src is [2, 4, 3], and offset is 1, the output ++ * is [comp1[1], comp2[3], comp3[2]], where comp1, comp2, and comp3 are the ++ * translation arrays. ++ * ++ * @param src Component values of a pixel. ++ * @param dest Destination array for values, or null. ++ * @return Translated values for the pixel. ++ */ ++ public byte[] lookupPixel(byte[] src, byte[] dst) ++ throws ArrayIndexOutOfBoundsException ++ { ++ if (dst == null) ++ dst = new byte[numComponents]; ++ ++ if (data.length == 1) ++ for (int i=0; i < src.length; i++) ++ dst[i] = data[0][((int)src[i]) - offset]; ++ else ++ for (int i=0; i < src.length; i++) ++ dst[i] = data[i][((int)src[i]) - offset]; ++ ++ return dst; ++ ++ } ++} +Index: java/awt/image/ColorModel.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/image/ColorModel.java,v +retrieving revision 1.13 +diff -u -r1.13 ColorModel.java +--- java/awt/image/ColorModel.java 25 Jun 2003 11:23:33 -0000 1.13 ++++ java/awt/image/ColorModel.java 6 Sep 2004 16:35:51 -0000 +@@ -37,6 +37,7 @@ + + package java.awt.image; + ++import java.util.Arrays; + import java.awt.Point; + import java.awt.Transparency; + import java.awt.color.ColorSpace; +@@ -166,7 +167,7 @@ + */ + public static ColorModel getRGBdefault() + { +- return new DirectColorModel(8, 0xff0000, 0xff00, 0xff, 0xff000000); ++ return new DirectColorModel(32, 0xff0000, 0xff00, 0xff, 0xff000000); + } + + public final boolean hasAlpha() +@@ -551,8 +552,8 @@ + (transferType == o.transferType) && + (transparency == o.transparency) && + (hasAlpha == o.hasAlpha) && +- (isAlphaPremultiplied == isAlphaPremultiplied) && +- (bits.equals(o.bits)) && ++ (isAlphaPremultiplied == o.isAlphaPremultiplied) && ++ Arrays.equals(bits, o.bits) && + (cspace.equals(o.cspace)); + } + +@@ -597,7 +598,11 @@ + return null; + } + +- // Typically overridden ++ /** ++ * Checks if the given raster has a compatible data-layout (SampleModel). ++ * @param raster The Raster to test. ++ * @return true if raster is compatible. ++ */ + public boolean isCompatibleRaster(Raster raster) + { + SampleModel sampleModel = raster.getSampleModel(); +Index: java/awt/image/ComponentColorModel.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/image/ComponentColorModel.java,v +retrieving revision 1.5 +diff -u -r1.5 ComponentColorModel.java +--- java/awt/image/ComponentColorModel.java 5 Jun 2003 19:58:40 -0000 1.5 ++++ java/awt/image/ComponentColorModel.java 6 Sep 2004 16:35:51 -0000 +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2000, 2002 Free Software Foundation ++/* Copyright (C) 2000, 2002, 2004 Free Software Foundation + + This file is part of GNU Classpath. + +@@ -292,19 +292,56 @@ + return Raster.createWritableRaster(sm, origin); + } + ++ ++ /** ++ * Creates a SampleModel whose arrangement of pixel ++ * data is compatible to this ColorModel. ++ * ++ * @param w the number of pixels in the horizontal direction. ++ * @param h the number of pixels in the vertical direction. ++ */ + public SampleModel createCompatibleSampleModel(int w, int h) + { +- int pixelStride = getNumComponents(); +- +- /* TODO: Maybe we don't need to create a new offset array each +- time, but rather use the same array every time. */ +- int[] bandOffsets = new int[pixelStride]; +- for (int i=0; i +@@ -92,7 +93,7 @@ + */ + public void setProperties(Hashtable props) + { +-// props.put("filters", "ReplicateScaleFilter"); ++ props.put("filters", "CropImageFilter"); + consumer.setProperties(props); + } + +@@ -113,7 +114,27 @@ + public void setPixels(int x, int y, int w, int h, + ColorModel model, byte[] pixels, int offset, int scansize) + { +- consumer.setPixels(x, y, w, h, model, pixels, offset, scansize); ++ Rectangle filterBounds = new Rectangle(this.x, this.y, ++ this.width, this.height); ++ Rectangle pixelBounds = new Rectangle(x, y, w, h); ++ ++ if (filterBounds.intersects(pixelBounds)) ++ { ++ Rectangle bounds = filterBounds.intersection(pixelBounds); ++ ++ byte[] cropped = new byte[bounds.width * bounds.height]; ++ for (int i = 0; i < bounds.height; i++) ++ { ++ int start = (bounds.y - pixelBounds.y + i) * scansize + offset; ++ ++ for (int j = 0; j < bounds.width; j++) ++ cropped[i * bounds.width + j] = pixels[start + bounds.x + j]; ++ } ++ ++ consumer.setPixels(bounds.x, bounds.y, ++ bounds.width, bounds.height, ++ model, cropped, 0, bounds.width); ++ } + } + + /** +@@ -133,7 +154,27 @@ + public void setPixels(int x, int y, int w, int h, + ColorModel model, int[] pixels, int offset, int scansize) + { +- consumer.setPixels(x, y, w, h, model, pixels, offset, scansize); ++ Rectangle filterBounds = new Rectangle(this.x, this.y, ++ this.width, this.height); ++ Rectangle pixelBounds = new Rectangle(x, y, w, h); ++ ++ if (filterBounds.intersects(pixelBounds)) ++ { ++ Rectangle bounds = filterBounds.intersection(pixelBounds); ++ ++ int[] cropped = new int[bounds.width * bounds.height]; ++ for (int i = 0; i < bounds.height; i++) ++ { ++ int start = (bounds.y - pixelBounds.y + i) * scansize + offset; ++ ++ for (int j = 0; j < bounds.width; j++) ++ cropped[i * bounds.width + j] = pixels[start + bounds.x + j]; ++ } ++ ++ consumer.setPixels(bounds.x, bounds.y, ++ bounds.width, bounds.height, ++ model, cropped, 0, bounds.width); ++ } + } + + } +Index: java/awt/image/DataBufferDouble.java +=================================================================== +RCS file: java/awt/image/DataBufferDouble.java +diff -N java/awt/image/DataBufferDouble.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ java/awt/image/DataBufferDouble.java 6 Sep 2004 16:35:51 -0000 +@@ -0,0 +1,174 @@ ++/* Copyright (C) 2004 Free Software Foundation ++ ++This file is part of GNU Classpath. ++ ++GNU Classpath is free software; you can redistribute it and/or modify ++it under the terms of the GNU General Public License as published by ++the Free Software Foundation; either version 2, or (at your option) ++any later version. ++ ++GNU Classpath is distributed in the hope that it will be useful, but ++WITHOUT ANY WARRANTY; without even the implied warranty of ++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++General Public License for more details. ++ ++You should have received a copy of the GNU General Public License ++along with GNU Classpath; see the file COPYING. If not, write to the ++Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 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.awt.image; ++ ++/* This is one of several classes that are nearly identical. Maybe we ++ should have a central template and generate all these files. This ++ is one of the cases where templates or macros would have been ++ useful to have in Java. ++ ++ This file has been created using search-replace. My only fear is ++ that these classes will grow out-of-sync as of a result of changes ++ that are not propagated to the other files. As always, mirroring ++ code is a maintenance nightmare. */ ++ ++/** ++ * @since 1.4 ++ * ++ * @author Rolf W. Rasmussen ++ * @author Sascha Brawer ++ */ ++public final class DataBufferDouble ++ extends DataBuffer ++{ ++ private double[] data; ++ private double[][] bankData; ++ ++ public DataBufferDouble(int size) ++ { ++ super(TYPE_DOUBLE, size); ++ data = new double[size]; ++ } ++ ++ public DataBufferDouble(int size, int numBanks) ++ { ++ super(TYPE_DOUBLE, size, numBanks); ++ bankData = new double[numBanks][size]; ++ data = bankData[0]; ++ } ++ ++ public DataBufferDouble(double[] dataArray, int size) ++ { ++ super(TYPE_DOUBLE, size); ++ data = dataArray; ++ } ++ ++ public DataBufferDouble(double[] dataArray, int size, int offset) ++ { ++ super(TYPE_DOUBLE, size, 1, offset); ++ data = dataArray; ++ } ++ ++ public DataBufferDouble(double[][] dataArray, int size) ++ { ++ super(TYPE_DOUBLE, size, dataArray.length); ++ bankData = dataArray; ++ data = bankData[0]; ++ } ++ ++ public DataBufferDouble(double[][] dataArray, int size, int[] offsets) ++ { ++ super(TYPE_DOUBLE, size, dataArray.length, offsets); ++ bankData = dataArray; ++ data = bankData[0]; ++ } ++ ++ public double[] getData() ++ { ++ return data; ++ } ++ ++ public double[] getData(int bank) ++ { ++ return bankData[bank]; ++ } ++ ++ public double[][] getBankData() ++ { ++ return bankData; ++ } ++ ++ public int getElem(int i) ++ { ++ return (int) data[i+offset]; ++ } ++ ++ public int getElem(int bank, int i) ++ { ++ return (int) bankData[bank][i+offsets[bank]]; ++ } ++ ++ public void setElem(int i, int val) ++ { ++ data[i+offset] = (double) val; ++ } ++ ++ public void setElem(int bank, int i, int val) ++ { ++ bankData[bank][i+offsets[bank]] = (double) val; ++ } ++ ++ public float getElemFloat(int i) ++ { ++ return (float) data[i+offset]; ++ } ++ ++ public float getElemFloat(int bank, int i) ++ { ++ return (float) bankData[bank][i+offsets[bank]]; ++ } ++ ++ public void setElemFloat(int i, float val) ++ { ++ data[i+offset] = val; ++ } ++ ++ public void setElemFloat(int bank, int i, float val) ++ { ++ bankData[bank][i+offsets[bank]] = val; ++ } ++ ++ public double getElemDouble(int i) ++ { ++ return data[i + offset]; ++ } ++ ++ public double getElemDouble(int bank, int i) ++ { ++ return bankData[bank][i + offsets[bank]]; ++ } ++ ++ public void setElemDouble(int i, double val) ++ { ++ data[i + offset] = val; ++ } ++ ++ public void setElemDouble(int bank, int i, double val) ++ { ++ bankData[bank][i + offsets[bank]] = val; ++ } ++} +Index: java/awt/image/DataBufferFloat.java +=================================================================== +RCS file: java/awt/image/DataBufferFloat.java +diff -N java/awt/image/DataBufferFloat.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ java/awt/image/DataBufferFloat.java 6 Sep 2004 16:35:51 -0000 +@@ -0,0 +1,172 @@ ++/* Copyright (C) 2004 Free Software Foundation ++ ++This file is part of GNU Classpath. ++ ++GNU Classpath is free software; you can redistribute it and/or modify ++it under the terms of the GNU General Public License as published by ++the Free Software Foundation; either version 2, or (at your option) ++any later version. ++ ++GNU Classpath is distributed in the hope that it will be useful, but ++WITHOUT ANY WARRANTY; without even the implied warranty of ++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++General Public License for more details. ++ ++You should have received a copy of the GNU General Public License ++along with GNU Classpath; see the file COPYING. If not, write to the ++Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 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.awt.image; ++ ++/* This is one of several classes that are nearly identical. Maybe we ++ should have a central template and generate all these files. This ++ is one of the cases where templates or macros would have been ++ useful to have in Java. ++ ++ This file has been created using search-replace. My only fear is ++ that these classes will grow out-of-sync as of a result of changes ++ that are not propagated to the other files. As always, mirroring ++ code is a maintenance nightmare. */ ++ ++/** ++ * @author Rolf W. Rasmussen ++ * @author Sascha Brawer ++ */ ++public final class DataBufferFloat ++ extends DataBuffer ++{ ++ private float[] data; ++ private float[][] bankData; ++ ++ public DataBufferFloat(int size) ++ { ++ super(TYPE_FLOAT, size); ++ data = new float[size]; ++ } ++ ++ public DataBufferFloat(int size, int numBanks) ++ { ++ super(TYPE_FLOAT, size, numBanks); ++ bankData = new float[numBanks][size]; ++ data = bankData[0]; ++ } ++ ++ public DataBufferFloat(float[] dataArray, int size) ++ { ++ super(TYPE_FLOAT, size); ++ data = dataArray; ++ } ++ ++ public DataBufferFloat(float[] dataArray, int size, int offset) ++ { ++ super(TYPE_FLOAT, size, 1, offset); ++ data = dataArray; ++ } ++ ++ public DataBufferFloat(float[][] dataArray, int size) ++ { ++ super(TYPE_FLOAT, size, dataArray.length); ++ bankData = dataArray; ++ data = bankData[0]; ++ } ++ ++ public DataBufferFloat(float[][] dataArray, int size, int[] offsets) ++ { ++ super(TYPE_FLOAT, size, dataArray.length, offsets); ++ bankData = dataArray; ++ data = bankData[0]; ++ } ++ ++ public float[] getData() ++ { ++ return data; ++ } ++ ++ public float[] getData(int bank) ++ { ++ return bankData[bank]; ++ } ++ ++ public float[][] getBankData() ++ { ++ return bankData; ++ } ++ ++ public int getElem(int i) ++ { ++ return (int) data[i+offset]; ++ } ++ ++ public int getElem(int bank, int i) ++ { ++ return (int) bankData[bank][i+offsets[bank]]; ++ } ++ ++ public void setElem(int i, int val) ++ { ++ data[i+offset] = (float) val; ++ } ++ ++ public void setElem(int bank, int i, int val) ++ { ++ bankData[bank][i+offsets[bank]] = (float) val; ++ } ++ ++ public float getElemFloat(int i) ++ { ++ return data[i+offset]; ++ } ++ ++ public float getElemFloat(int bank, int i) ++ { ++ return bankData[bank][i+offsets[bank]]; ++ } ++ ++ public void setElemFloat(int i, float val) ++ { ++ data[i+offset] = val; ++ } ++ ++ public void setElemFloat(int bank, int i, float val) ++ { ++ bankData[bank][i+offsets[bank]] = val; ++ } ++ ++ public double getElemDouble(int i) ++ { ++ return getElemFloat(i); ++ } ++ ++ public double getElemDouble(int bank, int i) ++ { ++ return getElemFloat(bank, i); ++ } ++ ++ public void setElemDouble(int i, double val) ++ { ++ setElemFloat(i, (float) val); ++ } ++ ++ public void setElemDouble(int bank, int i, double val) ++ { ++ setElemFloat(bank, i, (float) val); ++ } ++} +Index: java/awt/image/DataBufferShort.java +=================================================================== +RCS file: java/awt/image/DataBufferShort.java +diff -N java/awt/image/DataBufferShort.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ java/awt/image/DataBufferShort.java 6 Sep 2004 16:35:51 -0000 +@@ -0,0 +1,130 @@ ++/* Copyright (C) 2004 Free Software Foundation ++ ++This file is part of GNU Classpath. ++ ++GNU Classpath is free software; you can redistribute it and/or modify ++it under the terms of the GNU General Public License as published by ++the Free Software Foundation; either version 2, or (at your option) ++any later version. ++ ++GNU Classpath is distributed in the hope that it will be useful, but ++WITHOUT ANY WARRANTY; without even the implied warranty of ++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++General Public License for more details. ++ ++You should have received a copy of the GNU General Public License ++along with GNU Classpath; see the file COPYING. If not, write to the ++Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 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.awt.image; ++ ++/* This is one of several classes that are nearly identical. Maybe we ++ should have a central template and generate all these files. This ++ is one of the cases where templates or macros would have been ++ useful to have in Java. ++ ++ This file has been created using search-replace. My only fear is ++ that these classes will grow out-of-sync as of a result of changes ++ that are not propagated to the other files. As always, mirroring ++ code is a maintenance nightmare. */ ++ ++/** ++ * @author Rolf W. Rasmussen ++ */ ++public final class DataBufferShort extends DataBuffer ++{ ++ private short[] data; ++ private short[][] bankData; ++ ++ public DataBufferShort(int size) ++ { ++ super(TYPE_SHORT, size); ++ data = new short[size]; ++ } ++ ++ public DataBufferShort(int size, int numBanks) ++ { ++ super(TYPE_SHORT, size, numBanks); ++ bankData = new short[numBanks][size]; ++ data = bankData[0]; ++ } ++ ++ public DataBufferShort(short[] dataArray, int size) ++ { ++ super(TYPE_SHORT, size); ++ data = dataArray; ++ } ++ ++ public DataBufferShort(short[] dataArray, int size, int offset) ++ { ++ super(TYPE_SHORT, size, 1, offset); ++ data = dataArray; ++ } ++ ++ public DataBufferShort(short[][] dataArray, int size) ++ { ++ super(TYPE_SHORT, size, dataArray.length); ++ bankData = dataArray; ++ data = bankData[0]; ++ } ++ ++ public DataBufferShort(short[][] dataArray, int size, int[] offsets) ++ { ++ super(TYPE_SHORT, size, dataArray.length, offsets); ++ bankData = dataArray; ++ data = bankData[0]; ++ } ++ ++ public short[] getData() ++ { ++ return data; ++ } ++ ++ public short[] getData(int bank) ++ { ++ return bankData[bank]; ++ } ++ ++ public short[][] getBankData() ++ { ++ return bankData; ++ } ++ ++ public int getElem(int i) ++ { ++ return data[i+offset]; ++ } ++ ++ public int getElem(int bank, int i) ++ { ++ return bankData[bank][i+offsets[bank]]; ++ } ++ ++ public void setElem(int i, int val) ++ { ++ data[i+offset] = (short) val; ++ } ++ ++ public void setElem(int bank, int i, int val) ++ { ++ bankData[bank][i+offsets[bank]] = (short) val; ++ } ++} +Index: java/awt/image/DirectColorModel.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/image/DirectColorModel.java,v +retrieving revision 1.5 +diff -u -r1.5 DirectColorModel.java +--- java/awt/image/DirectColorModel.java 27 Jun 2003 20:53:01 -0000 1.5 ++++ java/awt/image/DirectColorModel.java 6 Sep 2004 16:35:51 -0000 +@@ -60,7 +60,6 @@ + * @param rmask the bits describing the red component of a pixel + * @param gmask the bits describing the green component of a pixel + * @param bmask the bits describing the blue component of a pixel +- * @param amask the bits describing the alpha component of a pixel + */ + public DirectColorModel(int pixelBits, int rmask, int gmask, int bmask) + { +@@ -82,6 +81,7 @@ + * @param rmask the bits describing the red component of a pixel + * @param gmask the bits describing the green component of a pixel + * @param bmask the bits describing the blue component of a pixel ++ * @param amask the bits describing the alpha component of a pixel + */ + public DirectColorModel(int pixelBits, + int rmask, int gmask, int bmask, int amask) +Index: java/awt/image/Kernel.java +=================================================================== +RCS file: java/awt/image/Kernel.java +diff -N java/awt/image/Kernel.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ java/awt/image/Kernel.java 6 Sep 2004 16:35:51 -0000 +@@ -0,0 +1,143 @@ ++/* Kernel.java -- Java class for an image processing kernel ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 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.awt.image; ++ ++/** ++ * Kernel represents an image processing kernel. It gets used to hold ++ * convolution filters among other purposes. It stores an array of float ++ * values representing a 2-dimensional array in row-major order. ++ * ++ * @author Jerry Quinn ++ * @version 1.0 ++ */ ++public class Kernel implements Cloneable ++{ ++ private final int width; ++ private final int height; ++ private final float[] data; ++ ++ /** ++ * Creates a new Kernel instance. ++ * ++ * @param width The 2D width of data. ++ * @param height The 2D height of data. ++ * @param data The source data array. ++ * @exception IllegalArgumentException if width * height < data.length. ++ */ ++ public Kernel(int width, int height, float[] data) ++ throws IllegalArgumentException ++ { ++ this.width = width; ++ this.height = height; ++ if (data.length < width * height || width < 0 || height < 0) ++ throw new IllegalArgumentException(); ++ this.data = new float[width * height]; ++ System.arraycopy(data, 0, this.data, 0, width * height); ++ } ++ ++ /** ++ * Return the X origin: (width - 1) / 2 ++ */ ++ public final int getXOrigin() ++ { ++ return (width - 1) / 2; ++ } ++ ++ /** ++ * Return the Y origin: (height - 1) / 2 ++ */ ++ public final int getYOrigin() ++ { ++ return (height - 1) / 2; ++ } ++ ++ /** ++ * @return The kernel width. ++ */ ++ public final int getWidth() ++ { ++ return width; ++ } ++ ++ /** ++ * @return The kernel height. ++ */ ++ public final int getHeight() ++ { ++ return height; ++ } ++ ++ /** ++ * Return the kernel data. ++ * ++ * If data is null, allocates a new array and returns it. Otherwise, the ++ * kernel values are copied into data. ++ * ++ * @param data Array to copy values into, or null. ++ * @return The array with copied values. ++ * @exception IllegalArgumentException if data != null and too small. ++ */ ++ public final float[] getKernelData(float[] data) ++ throws IllegalArgumentException ++ { ++ if (data == null) ++ return (float[])this.data.clone(); ++ ++ if (data.length < this.data.length) ++ throw new IllegalArgumentException(); ++ ++ System.arraycopy(this.data, 0, data, 0, this.data.length); ++ return data; ++ } ++ ++ /** ++ * @return a clone of this Kernel. ++ */ ++ public Object clone() ++ { ++ try ++ { ++ return super.clone(); ++ } ++ catch (CloneNotSupportedException e) ++ { ++ throw (Error) new InternalError().initCause(e); // Impossible ++ } ++ } ++} +Index: java/awt/image/LookupTable.java +=================================================================== +RCS file: java/awt/image/LookupTable.java +diff -N java/awt/image/LookupTable.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ java/awt/image/LookupTable.java 6 Sep 2004 16:35:51 -0000 +@@ -0,0 +1,109 @@ ++/* LookupTable.java -- Java class for a pixel translation table. ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 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.awt.image; ++ ++/** ++ * LookupTable represents translation arrays for pixel values. It wraps one ++ * or more data arrays for each layer (or component) in an image, such as ++ * Alpha, R, G, and B. When doing translation, the offset is subtracted from ++ * the pixel values to allow a subset of an array to be used. ++ * ++ * @see ByteLookupTable ++ * @see ShortLookupTable ++ * ++ * @author Jerry Quinn ++ * @version 1.0 ++ */ ++public abstract class LookupTable ++{ ++ // Not protected since that's part of the public API. ++ int offset; ++ int numComponents; ++ ++ /** ++ * Creates a new LookupTable instance. ++ * ++ * If numComponents is 1, the same translation table is used for all pixel ++ * components. ++ * ++ * @param offset Offset to be subtracted. ++ * @param numComponents Number of image components. ++ * @exception IllegalArgumentException if offset < 0 or numComponents < 1. ++ */ ++ protected LookupTable(int offset, int numComponents) ++ throws IllegalArgumentException ++ { ++ if (offset < 0 || numComponents < 1) ++ throw new IllegalArgumentException(); ++ this.offset = offset; ++ this.numComponents = numComponents; ++ } ++ ++ /** Return the number of components. */ ++ public int getNumComponents() ++ { ++ return numComponents; ++ } ++ ++ /** Return the offset. */ ++ public int getOffset() ++ { ++ return offset; ++ } ++ ++ ++ /** ++ * Return translated values for a pixel. ++ * ++ * For each value in the pixel src, use the value minus offset as an index ++ * in the component array and copy the value there to the output for the ++ * component. If dest is null, the output is a new array, otherwise the ++ * translated values are written to dest. Dest can be the same array as ++ * src. ++ * ++ * For example, if the pixel src is [2, 4, 3], and offset is 1, the output ++ * is [comp1[1], comp2[3], comp3[2]], where comp1, comp2, and comp3 are the ++ * translation arrays. ++ * ++ * @param src Component values of a pixel. ++ * @param dest Destination array for values, or null. ++ * @return Translated values for the pixel. ++ */ ++ public abstract int[] lookupPixel(int[] src, int[] dest); ++} +Index: java/awt/image/MemoryImageSource.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/image/MemoryImageSource.java,v +retrieving revision 1.5 +diff -u -r1.5 MemoryImageSource.java +--- java/awt/image/MemoryImageSource.java 14 Jul 2003 05:33:30 -0000 1.5 ++++ java/awt/image/MemoryImageSource.java 6 Sep 2004 16:35:51 -0000 +@@ -41,6 +41,7 @@ + import java.awt.Image; + import java.util.Enumeration; + import java.util.Hashtable; ++import java.util.Vector; + + public class MemoryImageSource implements ImageProducer + { +@@ -49,7 +50,8 @@ + private int pixeli[], width, height, offset, scansize; + private byte pixelb[]; + private ColorModel cm; +- private Hashtable props, consumers = new Hashtable(); ++ private Hashtable props = new Hashtable(); ++ private Vector consumers = new Vector(); + + /** + Constructs an ImageProducer from memory +@@ -126,10 +128,10 @@ + * ImageProducer. + */ + public synchronized void addConsumer(ImageConsumer ic) { +- if (consumers.containsKey(ic)) ++ if (consumers.contains(ic)) + return; + +- consumers.put(ic, ic); ++ consumers.addElement(ic); + } + + /** +@@ -137,7 +139,7 @@ + * already registered with this ImageProducer. + */ + public synchronized boolean isConsumer(ImageConsumer ic) { +- if (consumers.containsKey(ic)) ++ if (consumers.contains(ic)) + return true; + return false; + } +@@ -147,7 +149,7 @@ + * registered consumers for this ImageProducer. + */ + public synchronized void removeConsumer(ImageConsumer ic) { +- consumers.remove(ic); ++ consumers.removeElement(ic); + } + + /** +@@ -157,16 +159,16 @@ + * registered consumers. + */ + public void startProduction(ImageConsumer ic) { +- if (!(consumers.containsKey(ic))) { +- consumers.put(ic, ic); ++ if (!(consumers.contains(ic))) { ++ consumers.addElement(ic); + } +- Enumeration e = consumers.elements(); +- for( ; e.hasMoreElements(); ) { +- ic = (ImageConsumer)e.nextElement(); ++ ++ Vector list = (Vector) consumers.clone(); ++ for(int i = 0; i < list.size(); i++) { ++ ic = (ImageConsumer) list.elementAt(i); + sendPicture( ic ); +- ic.imageComplete( ImageConsumer.SINGLEFRAME ); ++ ic.imageComplete( ImageConsumer.STATICIMAGEDONE ); + } +- + } + + /** +@@ -210,9 +212,9 @@ + { + if( animated == true ) { + ImageConsumer ic; +- Enumeration e = consumers.elements(); +- for( ; e.hasMoreElements(); ) { +- ic = (ImageConsumer)e.nextElement(); ++ Vector list = (Vector) consumers.clone(); ++ for(int i = 0; i < list.size(); i++) { ++ ic = (ImageConsumer) list.elementAt(i); + sendPicture( ic ); + ic.imageComplete( ImageConsumer.SINGLEFRAME ); + } +@@ -227,6 +229,7 @@ + ic.setProperties( props ); + } + ic.setDimensions(width, height); ++ ic.setColorModel(cm); + if( pixeli != null ) { + ic.setPixels( 0, 0, width, height, cm, pixeli, offset, scansize ); + } else { +@@ -249,17 +252,23 @@ + newPixels(); + } else { + ImageConsumer ic; +- Enumeration e = consumers.elements(); +- for( ; e.hasMoreElements(); ) { +- ic = (ImageConsumer)e.nextElement(); ++ Vector list = (Vector) consumers.clone(); ++ for(int i = 0; i < list.size(); i++) { ++ ic = (ImageConsumer) list.elementAt(i); + ic.setHints( ImageConsumer.TOPDOWNLEFTRIGHT ); + if( props != null ) { + ic.setProperties( props ); + } + if( pixeli != null ) { +- ic.setPixels( 0, 0, width, height, cm, pixeli, offset, scansize ); ++ int[] pixelbuf = new int[w * h]; ++ for (int row = y; row < h; row++) ++ System.arraycopy(pixeli, row * scansize + x + offset, pixelbuf, row * w, w); ++ ic.setPixels( x, y, w, h, cm, pixelbuf, 0, w ); + } else { +- ic.setPixels( 0, 0, width, height, cm, pixelb, offset, scansize ); ++ byte[] pixelbuf = new byte[w * h]; ++ for (int row = y; row < h; row++) ++ System.arraycopy(pixelb, row * scansize + x + offset, pixelbuf, row * w, w); ++ ic.setPixels( x, y, w, h, cm, pixelbuf, 0, w ); + } + ic.imageComplete( ImageConsumer.SINGLEFRAME ); + } +@@ -288,17 +297,23 @@ + newPixels(); + } else { + ImageConsumer ic; +- Enumeration e = consumers.elements(); +- for( ; e.hasMoreElements(); ) { +- ic = (ImageConsumer)e.nextElement(); ++ Vector list = (Vector) consumers.clone(); ++ for(int i = 0; i < list.size(); i++) { ++ ic = (ImageConsumer) list.elementAt(i); + ic.setHints( ImageConsumer.TOPDOWNLEFTRIGHT ); + if( props != null ) { + ic.setProperties( props ); + } + if( pixeli != null ) { +- ic.setPixels( 0, 0, width, height, cm, pixeli, offset, scansize ); ++ int[] pixelbuf = new int[w * h]; ++ for (int row = y; row < h; row++) ++ System.arraycopy(pixeli, row * scansize + x + offset, pixelbuf, row * w, w); ++ ic.setPixels( x, y, w, h, cm, pixelbuf, 0, w ); + } else { +- ic.setPixels( 0, 0, width, height, cm, pixelb, offset, scansize ); ++ byte[] pixelbuf = new byte[w * h]; ++ for (int row = y; row < h; row++) ++ System.arraycopy(pixelb, row * scansize + x + offset, pixelbuf, row * w, w); ++ ic.setPixels( x, y, w, h, cm, pixelbuf, 0, w ); + } + if( framenotify == true ) + ic.imageComplete( ImageConsumer.SINGLEFRAME ); +@@ -313,9 +328,14 @@ + int scansize) + + { ++ pixeli = null; ++ pixelb = newpix; ++ cm = newmodel; ++ this.offset = offset; ++ this.scansize = scansize; + if( animated == true ) + { +- //FIXME ++ newPixels(); + } + } + +@@ -325,9 +345,14 @@ + int scansize) + + { ++ pixelb = null; ++ pixeli = newpix; ++ cm = newmodel; ++ this.offset = offset; ++ this.scansize = scansize; + if( animated == true ) + { +- //FIXME ++ newPixels(); + } + } + +Index: java/awt/image/PixelInterleavedSampleModel.java +=================================================================== +RCS file: java/awt/image/PixelInterleavedSampleModel.java +diff -N java/awt/image/PixelInterleavedSampleModel.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ java/awt/image/PixelInterleavedSampleModel.java 6 Sep 2004 16:35:51 -0000 +@@ -0,0 +1,98 @@ ++/* PixelInterleavedSampleModel.java ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 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.awt.image; ++ ++ ++/** ++ * A SampleModel that uses exactly one element of the ++ * raster’s {@link DataBuffer} per pixel, holds all bands in a ++ * single bank, and stores band data in pixel-interleaved manner. ++ * ++ * @since 1.2 ++ * ++ * @author Sascha Brawer ++ */ ++public class PixelInterleavedSampleModel ++ extends ComponentSampleModel ++{ ++ public PixelInterleavedSampleModel(int dataType, int width, int height, ++ int pixelStride, int scanlineStride, ++ int[] bandOffsets) ++ { ++ super(dataType, width, height, pixelStride, scanlineStride, ++ bandOffsets); ++ } ++ ++ ++ /** ++ * Creates a new SampleModel that is like this one, but ++ * uses the specified width and height. ++ * ++ * @param width the number of pixels in the horizontal direction. ++ * ++ * @param height the number of pixels in the vertical direction. ++ */ ++ public SampleModel createCompatibleSampleModel(int width, int height) ++ { ++ return new PixelInterleavedSampleModel(dataType, width, height, ++ pixelStride, scanlineStride, ++ bandOffsets); ++ } ++ ++ ++ /** ++ * Creates a new SampleModel that is like this one, but ++ * uses only a subset of its bands. ++ * ++ * @param bands an array whose elements indicate which bands shall ++ * be part of the subset. For example, [0, 2, 3] would ++ * create a SampleModel containing bands #0, #2 and #3. ++ */ ++ public SampleModel createSubsetSampleModel(int[] bands) ++ { ++ int[] subOffsets; ++ ++ subOffsets = new int[bands.length]; ++ for (int i = 0; i < bands.length; i++) ++ subOffsets[i] = bandOffsets[bands[i]]; ++ ++ return new PixelInterleavedSampleModel(dataType, width, height, ++ pixelStride, scanlineStride, ++ subOffsets); ++ } ++} +Index: java/awt/image/RGBImageFilter.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/image/RGBImageFilter.java,v +retrieving revision 1.2 +diff -u -r1.2 RGBImageFilter.java +--- java/awt/image/RGBImageFilter.java 11 Oct 2003 17:19:46 -0000 1.2 ++++ java/awt/image/RGBImageFilter.java 6 Sep 2004 16:35:51 -0000 +@@ -46,7 +46,7 @@ + */ + public abstract class RGBImageFilter extends ImageFilter + { +- protected ColorModel origmodel = ColorModel.getRGBdefault(); ++ protected ColorModel origmodel; + + protected ColorModel newmodel; + +@@ -79,6 +79,10 @@ + + if( ( model instanceof IndexColorModel) && canFilterIndexColorModel ) { + newmodel = filterIndexColorModel( (IndexColorModel) model ); ++ consumer.setColorModel(newmodel); ++ } ++ else { ++ consumer.setColorModel(ColorModel.getRGBdefault()); + } + } + +@@ -126,7 +130,7 @@ + + private int makeColor( byte a, byte r, byte g, byte b ) + { +- return ( 0xff000000 & (a << 24) | 0xff0000 & (r << 16) | 0xff00 & (b << 8) | 0xff & g ); ++ return ( 0xff000000 & (a << 24) | 0xff0000 & (r << 16) | 0xff00 & (g << 8) | 0xff & b ); + } + + /** +@@ -149,11 +153,15 @@ + int off, + int scansize) + { +- int xp, yp; ++ int xp, yp, i; + ++ i = 0; + for( xp = x; xp < ( x + w); xp++ ) + for( yp = y; yp < (y + h); yp++ ) +- pixels[ off + yp * scansize + xp ] = filterRGB( xp, yp, pixels[ off + yp * scansize + xp ] ); ++ { ++ pixels[i] = filterRGB( xp, yp, pixels[i] ); ++ i++; ++ } + } + + +@@ -172,15 +180,19 @@ + * @param scansize the width to use in extracting pixels from the pixels array + */ + public void setPixels(int x, int y, int w, int h, +- ColorModel model, byte[] pixels, int offset, int scansize) ++ ColorModel model, byte[] pixels, ++ int offset, int scansize) + { +- if( model == origmodel ) { ++ if(model == origmodel && (model instanceof IndexColorModel) && canFilterIndexColorModel) ++ { + consumer.setPixels(x, y, w, h, newmodel, pixels, offset, scansize); +- } else { +- //FIXME +- //convert to proper CM +- int pixelsi[] = new int[ pixels.length / 4 ]; +- filterRGBPixels( x, y, w, h, pixelsi, offset, scansize ); ++ } ++ else ++ { ++ int intPixels[] = ++ convertColorModelToDefault( x, y, w, h, model, pixels, offset, scansize ); ++ filterRGBPixels( x, y, w, h, intPixels, offset, scansize ); ++ consumer.setPixels(x, y, w, h, ColorModel.getRGBdefault(), intPixels, offset, scansize); + } + } + +@@ -199,35 +211,53 @@ + * @param scansize the width to use in extracting pixels from the pixels array + */ + public void setPixels(int x, int y, int w, int h, +- ColorModel model, int[] pixels, int offset, int scansize) ++ ColorModel model, int[] pixels, ++ int offset, int scansize) + { +- if( model == origmodel ) { ++ if(model == origmodel && (model instanceof IndexColorModel) && canFilterIndexColorModel) ++ { + consumer.setPixels(x, y, w, h, newmodel, pixels, offset, scansize); +- } else { ++ } ++ else ++ { ++ //FIXME: Store the filtered pixels in a separate temporary buffer? + convertColorModelToDefault( x, y, w, h, model, pixels, offset, scansize ); + filterRGBPixels( x, y, w, h, pixels, offset, scansize ); ++ consumer.setPixels(x, y, w, h, ColorModel.getRGBdefault(), pixels, offset, scansize); + } + } + +- private void convertColorModelToDefault( int x, int y, int w, int h, +- ColorModel model, int pixels[], int offset, int scansize) +- { +- int xp, yp; ++ private int[] convertColorModelToDefault(int x, int y, int w, int h, ++ ColorModel model, byte pixels[], ++ int offset, int scansize) ++ { ++ int intPixels[] = new int[pixels.length]; ++ for (int i = 0; i < pixels.length; i++) ++ intPixels[i] = makeColorbyDefaultCM(model, pixels[i]); ++ return intPixels; ++ } + +- for( xp = x; xp < ( x + w); xp++ ) +- for( yp = y; yp < (y + h); yp++ ) +- pixels[ offset + yp * scansize + xp ] = makeColorbyDefaultCM( pixels[ offset + yp * scansize + xp ] ); +- +- } +- private int makeColorbyDefaultCM( int rgb ) +- { +- return makeColor( origmodel.getRed( rgb ), origmodel.getGreen( rgb ), origmodel.getGreen( rgb ), origmodel.getBlue( rgb ) ); +- } ++ private void convertColorModelToDefault(int x, int y, int w, int h, ++ ColorModel model, int pixels[], ++ int offset, int scansize) ++ { ++ for (int i = 0; i < pixels.length; i++) ++ pixels[i] = makeColorbyDefaultCM(model, pixels[i]); ++ } ++ ++ private int makeColorbyDefaultCM(ColorModel model, byte rgb) ++ { ++ return makeColor( model.getAlpha( rgb ) * 4, model.getRed( rgb ) * 4, model.getGreen( rgb ) * 4, model.getBlue( rgb ) * 4 ); ++ } + ++ private int makeColorbyDefaultCM(ColorModel model, int rgb) ++ { ++ return makeColor( model.getAlpha( rgb ), model.getRed( rgb ), model.getGreen( rgb ), model.getBlue( rgb ) ); ++ } + + private int makeColor( int a, int r, int g, int b ) + { +- return (int)( 0xff000000 & (a << 24) | 0xff0000 & (r << 16) | 0xff00 & (b << 8) | 0xff & g ); ++ return (int)( 0xff000000 & (a << 24) | 0xff0000 & (r << 16) | 0xff00 & (g << 8) | 0xff & b ); + } + + +Index: java/awt/image/Raster.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/image/Raster.java,v +retrieving revision 1.6 +diff -u -r1.6 Raster.java +--- java/awt/image/Raster.java 25 Sep 2003 18:35:44 -0000 1.6 ++++ java/awt/image/Raster.java 6 Sep 2004 16:35:51 -0000 +@@ -452,4 +452,25 @@ + y-sampleModelTranslateY, + w, h, b, dArray, dataBuffer); + } ++ ++ /** ++ * Create a String representing the stat of this Raster. ++ * @return A String representing the stat of this Raster. ++ * @see java.lang.Object#toString() ++ */ ++ public String toString() ++ { ++ StringBuffer result = new StringBuffer(); ++ ++ result.append(getClass().getName()); ++ result.append("[("); ++ result.append(minX).append(",").append(minY).append("), "); ++ result.append(width).append(" x ").append(height).append(","); ++ result.append(sampleModel).append(","); ++ result.append(dataBuffer); ++ result.append("]"); ++ ++ return result.toString(); ++ } ++ + } +Index: java/awt/image/ReplicateScaleFilter.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/image/ReplicateScaleFilter.java,v +retrieving revision 1.1 +diff -u -r1.1 ReplicateScaleFilter.java +--- java/awt/image/ReplicateScaleFilter.java 24 Jan 2002 01:05:12 -0000 1.1 ++++ java/awt/image/ReplicateScaleFilter.java 6 Sep 2004 16:35:51 -0000 +@@ -104,7 +104,27 @@ + */ + public void setDimensions(int width, int height) + { +- consumer.setDimensions(width, height); ++ srcWidth = width; ++ srcHeight = height; ++ ++ /* If either destHeight or destWidth is < 0, the image should ++ maintain its original aspect ratio. When both are < 0, ++ just maintain the original width and height. */ ++ if (destWidth < 0 && destHeight < 0) ++ { ++ destWidth = width; ++ destHeight = height; ++ } ++ else if (destWidth < 0) ++ { ++ destWidth = (int) (width * ((double) destHeight / srcHeight)); ++ } ++ else if (destHeight < 0) ++ { ++ destHeight = (int) (height * ((double) destWidth / srcWidth)); ++ } ++ ++ consumer.setDimensions(destWidth, destHeight); + } + + /** +@@ -136,7 +156,18 @@ + public void setPixels(int x, int y, int w, int h, + ColorModel model, byte[] pixels, int offset, int scansize) + { +- consumer.setPixels(x, y, w, h, model, pixels, offset, scansize); ++ double rx = ((double) srcWidth) / destWidth; ++ double ry = ((double) srcHeight) / destHeight; ++ ++ int destScansize = (int) Math.round(scansize / rx); ++ ++ byte[] destPixels = replicatePixels(x, y, w, h, ++ model, pixels, offset, scansize, ++ rx, ry, destScansize); ++ ++ consumer.setPixels((int) Math.floor(x/rx), (int) Math.floor(y/ry), ++ (int) Math.ceil(w/rx), (int) Math.ceil(h/ry), ++ model, destPixels, 0, destScansize); + } + + /** +@@ -156,8 +187,58 @@ + public void setPixels(int x, int y, int w, int h, + ColorModel model, int[] pixels, int offset, int scansize) + { +- consumer.setPixels(x, y, w, h, model, pixels, offset, scansize); ++ double rx = ((double) srcWidth) / destWidth; ++ double ry = ((double) srcHeight) / destHeight; ++ ++ int destScansize = (int) Math.round(scansize / rx); ++ ++ int[] destPixels = replicatePixels(x, y, w, h, ++ model, pixels, offset, scansize, ++ rx, ry, destScansize); ++ ++ consumer.setPixels((int) Math.floor(x/rx), (int) Math.floor(y/ry), ++ (int) Math.ceil(w/rx), (int) Math.ceil(h/ry), ++ model, destPixels, 0, destScansize); + } + ++ protected byte[] replicatePixels(int srcx, int srcy, int srcw, int srch, ++ ColorModel model, byte[] srcPixels, ++ int srcOffset, int srcScansize, ++ double rx, double ry, int destScansize) ++ { ++ byte[] destPixels = ++ new byte[(int) Math.ceil(srcw/rx) * (int) Math.ceil(srch/ry)]; ++ ++ int a, b; ++ for (int i = 0; i < destPixels.length; i++) ++ { ++ a = (int) ((int) ( ((double) i) / destScansize) * ry) * srcScansize; ++ b = (int) ((i % destScansize) * rx); ++ if ((a + b + srcOffset) < srcPixels.length) ++ destPixels[i] = srcPixels[a + b + srcOffset]; ++ } ++ ++ return destPixels; ++ } ++ ++ protected int[] replicatePixels(int srcx, int srcy, int srcw, int srch, ++ ColorModel model, int[] srcPixels, ++ int srcOffset, int srcScansize, ++ double rx, double ry, int destScansize) ++ { ++ int[] destPixels = ++ new int[(int) Math.ceil(srcw/rx) * (int) Math.ceil(srch/ry)]; ++ ++ int a, b; ++ for (int i = 0; i < destPixels.length; i++) ++ { ++ a = (int) ((int) ( ((double) i) / destScansize) * ry) * srcScansize; ++ b = (int) ((i % destScansize) * rx); ++ if ((a + b + srcOffset) < srcPixels.length) ++ destPixels[i] = srcPixels[a + b + srcOffset]; ++ } ++ ++ return destPixels; ++ } + } + +Index: java/awt/image/SampleModel.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/image/SampleModel.java,v +retrieving revision 1.6 +diff -u -r1.6 SampleModel.java +--- java/awt/image/SampleModel.java 22 Jan 2002 22:40:10 -0000 1.6 ++++ java/awt/image/SampleModel.java 6 Sep 2004 16:35:51 -0000 +@@ -58,7 +58,9 @@ + + public SampleModel(int dataType, int w, int h, int numBands) + { +- if ((w<=0) || (h<=0)) throw new IllegalArgumentException(); ++ if ((w <= 0) || (h <= 0)) ++ throw new IllegalArgumentException((w <= 0 ? " width<=0" : " width is ok") ++ +(h <= 0 ? " height<=0" : " height is ok")); + + // FIXME: How can an int be greater than Integer.MAX_VALUE? + // FIXME: How do we identify an unsupported data type? +@@ -68,7 +70,7 @@ + this.height = h; + this.numBands = numBands; + } +- ++ + public final int getWidth() + { + return width; +Index: java/awt/image/ShortLookupTable.java +=================================================================== +RCS file: java/awt/image/ShortLookupTable.java +diff -N java/awt/image/ShortLookupTable.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ java/awt/image/ShortLookupTable.java 6 Sep 2004 16:35:51 -0000 +@@ -0,0 +1,162 @@ ++/* ShortLookupTable.java -- Java class for a pixel translation table. ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 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.awt.image; ++ ++/** ++ * ShortLookupTable represents translation arrays for pixel values. It wraps ++ * one or more data arrays for each layer (or component) in an image, such as ++ * Alpha, R, G, and B. When doing translation, the offset is subtracted from ++ * the pixel values to allow a subset of an array to be used. ++ * ++ * @author Jerry Quinn ++ * @version 1.0 ++ */ ++public class ShortLookupTable extends LookupTable ++{ ++ // Array of translation tables. ++ private short data[][]; ++ ++ /** ++ * Creates a new ShortLookupTable instance. ++ * ++ * Offset is subtracted from pixel values when looking up in the translation ++ * tables. If data.length is one, the same table is applied to all pixel ++ * components. ++ * ++ * @param offset Offset to be subtracted. ++ * @param data Array of lookup tables. ++ * @exception IllegalArgumentException if offset < 0 or data.length < 1. ++ */ ++ public ShortLookupTable(int offset, short[][] data) ++ throws IllegalArgumentException ++ { ++ super(offset, data.length); ++ this.data = data; ++ } ++ ++ /** ++ * Creates a new ShortLookupTable instance. ++ * ++ * Offset is subtracted from pixel values when looking up in the translation ++ * table. The same table is applied to all pixel components. ++ * ++ * @param offset Offset to be subtracted. ++ * @param data Lookup table for all components. ++ * @exception IllegalArgumentException if offset < 0. ++ */ ++ public ShortLookupTable(int offset, short[] data) ++ throws IllegalArgumentException ++ { ++ super(offset, 1); ++ this.data = new short[][] {data}; ++ } ++ ++ /** Return the lookup tables. */ ++ public final short[][] getTable() ++ { ++ return data; ++ } ++ ++ /** ++ * Return translated values for a pixel. ++ * ++ * For each value in the pixel src, use the value minus offset as an index ++ * in the component array and copy the value there to the output for the ++ * component. If dest is null, the output is a new array, otherwise the ++ * translated values are written to dest. Dest can be the same array as ++ * src. ++ * ++ * For example, if the pixel src is [2, 4, 3], and offset is 1, the output ++ * is [comp1[1], comp2[3], comp3[2]], where comp1, comp2, and comp3 are the ++ * translation arrays. ++ * ++ * @param src Component values of a pixel. ++ * @param dest Destination array for values, or null. ++ * @return Translated values for the pixel. ++ */ ++ public int[] lookupPixel(int[] src, int[] dst) ++ throws ArrayIndexOutOfBoundsException ++ { ++ if (dst == null) ++ dst = new int[numComponents]; ++ ++ if (data.length == 1) ++ for (int i=0; i < src.length; i++) ++ dst[i] = data[0][src[i] - offset]; ++ else ++ for (int i=0; i < src.length; i++) ++ dst[i] = data[i][src[i] - offset]; ++ ++ return dst; ++ } ++ ++ /** ++ * Return translated values for a pixel. ++ * ++ * For each value in the pixel src, use the value minus offset as an index ++ * in the component array and copy the value there to the output for the ++ * component. If dest is null, the output is a new array, otherwise the ++ * translated values are written to dest. Dest can be the same array as ++ * src. ++ * ++ * For example, if the pixel src is [2, 4, 3], and offset is 1, the output ++ * is [comp1[1], comp2[3], comp3[2]], where comp1, comp2, and comp3 are the ++ * translation arrays. ++ * ++ * @param src Component values of a pixel. ++ * @param dest Destination array for values, or null. ++ * @return Translated values for the pixel. ++ */ ++ public short[] lookupPixel(short[] src, short[] dst) ++ throws ArrayIndexOutOfBoundsException ++ { ++ if (dst == null) ++ dst = new short[numComponents]; ++ ++ if (data.length == 1) ++ for (int i=0; i < src.length; i++) ++ dst[i] = data[0][((int)src[i]) - offset]; ++ else ++ for (int i=0; i < src.length; i++) ++ dst[i] = data[i][((int)src[i]) - offset]; ++ ++ return dst; ++ ++ } ++} +Index: java/awt/image/SinglePixelPackedSampleModel.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/awt/image/SinglePixelPackedSampleModel.java,v +retrieving revision 1.6 +diff -u -r1.6 SinglePixelPackedSampleModel.java +--- java/awt/image/SinglePixelPackedSampleModel.java 9 Jan 2004 08:58:57 -0000 1.6 ++++ java/awt/image/SinglePixelPackedSampleModel.java 6 Sep 2004 16:35:51 -0000 +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2000, 2002, 2003 Free Software Foundation ++/* Copyright (C) 2000, 2002, 2003, 2004 Free Software Foundation + + This file is part of GNU Classpath. + +@@ -162,6 +162,63 @@ + 1 // length + ); + } ++ ++ /** ++ * This is a more efficient implementation of the default implementation in the super ++ * class. ++ * @param x The x-coordinate of the pixel rectangle to store in obj. ++ * @param y The y-coordinate of the pixel rectangle to store in obj. ++ * @param w The width of the pixel rectangle to store in obj. ++ * @param h The height of the pixel rectangle to store in obj. ++ * @param obj The primitive array to store the pixels into or null to force creation. ++ * @param data The DataBuffer that is the source of the pixel data. ++ * @return The primitive array containing the pixel data. ++ * @see java.awt.image.SampleModel#getDataElements(int, int, int, int, java.lang.Object, java.awt.image.DataBuffer) ++ */ ++ public Object getDataElements(int x, int y, int w, int h, Object obj, ++ DataBuffer data) ++ { ++ int size = w*h; ++ int dataSize = size; ++ Object pixelData = null; ++ switch (getTransferType()) ++ { ++ case DataBuffer.TYPE_BYTE: ++ pixelData = ((DataBufferByte) data).getData(); ++ if (obj == null) obj = new byte[dataSize]; ++ break; ++ case DataBuffer.TYPE_USHORT: ++ pixelData = ((DataBufferUShort) data).getData(); ++ if (obj == null) obj = new short[dataSize]; ++ break; ++ case DataBuffer.TYPE_INT: ++ pixelData = ((DataBufferInt) data).getData(); ++ if (obj == null) obj = new int[dataSize]; ++ break; ++ default: ++ // Seems like the only sensible thing to do. ++ throw new ClassCastException(); ++ } ++ if(x==0 && scanlineStride == w) ++ { ++ // The full width need to be copied therefore we can copy in one shot. ++ System.arraycopy(pixelData, scanlineStride*y + data.getOffset(), obj, 0, size); ++ } ++ else ++ { ++ // Since we do not need the full width we need to copy line by line. ++ int outOffset = 0; ++ int dataOffset = scanlineStride*y + x + data.getOffset(); ++ for (int yy = y; yy<(y+h); yy++) ++ { ++ System.arraycopy(pixelData, dataOffset, obj, outOffset, w); ++ dataOffset += scanlineStride; ++ outOffset += w; ++ } ++ } ++ return obj; ++ } ++ + + public int[] getPixel(int x, int y, int[] iArray, DataBuffer data) + { +@@ -201,7 +258,51 @@ + int samples = data.getElem(offset); + return (samples & bitMasks[b]) >>> bitOffsets[b]; + } +- ++ ++ /** ++ * This method implements a more efficient way to set data elements than the default ++ * implementation of the super class. It sets the data elements line by line instead ++ * of pixel by pixel. ++ * @param x The x-coordinate of the data elements in obj. ++ * @param y The y-coordinate of the data elements in obj. ++ * @param w The width of the data elements in obj. ++ * @param h The height of the data elements in obj. ++ * @param obj The primitive array containing the data elements to set. ++ * @param data The DataBuffer to store the data elements into. ++ * @see java.awt.image.SampleModel#setDataElements(int, int, int, int, java.lang.Object, java.awt.image.DataBuffer) ++ */ ++ public void setDataElements(int x, int y, int w, int h, ++ Object obj, DataBuffer data) ++ { ++ ++ Object pixelData; ++ switch (getTransferType()) ++ { ++ case DataBuffer.TYPE_BYTE: ++ pixelData = ((DataBufferByte) data).getData(); ++ break; ++ case DataBuffer.TYPE_USHORT: ++ pixelData = ((DataBufferUShort) data).getData(); ++ break; ++ case DataBuffer.TYPE_INT: ++ pixelData = ((DataBufferInt) data).getData(); ++ break; ++ default: ++ // Seems like the only sensible thing to do. ++ throw new ClassCastException(); ++ } ++ ++ int inOffset = 0; ++ int dataOffset = scanlineStride*y + x + data.getOffset(); ++ for (int yy=y; yy<(y+h); yy++) ++ { ++ System.arraycopy(obj,inOffset,pixelData,dataOffset,w); ++ dataOffset += scanlineStride; ++ inOffset += w; ++ } ++ } ++ ++ + public void setDataElements(int x, int y, Object obj, DataBuffer data) + { + int offset = scanlineStride*y + x + data.getOffset(); +@@ -273,6 +374,39 @@ + data.setElem(offset, samples); + } + ++ /** ++ * This method implements a more efficient way to set pixels than the default ++ * implementation of the super class. It copies the pixel components directly ++ * from the input array instead of creating a intermediate buffer. ++ * @param x The x-coordinate of the pixel rectangle in obj. ++ * @param y The y-coordinate of the pixel rectangle in obj. ++ * @param w The width of the pixel rectangle in obj. ++ * @param h The height of the pixel rectangle in obj. ++ * @param obj The primitive array containing the pixels to set. ++ * @param data The DataBuffer to store the pixels into. ++ * @see java.awt.image.SampleModel#setPixels(int, int, int, int, int[], java.awt.image.DataBuffer) ++ */ ++ public void setPixels(int x, int y, int w, int h, int[] iArray, ++ DataBuffer data) ++ { ++ int inOffset = 0; ++ int[] pixel = new int[numBands]; ++ for (int yy=y; yy<(y+h); yy++) ++ { ++ int offset = scanlineStride*yy + x; ++ for (int xx=x; xx<(x+w); xx++) ++ { ++ int samples = 0; ++ for (int b=0; bThe purpose of this class is to serve as a facade over a number of ++ * classes which collectively represent the semantics of a button: the ++ * button's model, its listeners, its action, and its look and feel. Some ++ * parts of a button's state are stored explicitly in this class, other ++ * parts are delegates to the model. Some methods related to buttons are ++ * implemented in this class, other methods pass through to the current ++ * model or look and feel.

    ++ * ++ *

    Furthermore this class is supposed to serve as a base class for ++ * several kinds of buttons with similar but non-identical semantics: ++ * toggle buttons (radio buttons and checkboxes), simple "push" buttons, ++ * menu items.

    ++ * ++ *

    Buttons have many properties, some of which are stored in this class ++ * while others are delegated to the button's model. The following properties ++ * are available:

    ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ *
    Property Stored inBound?
    action button no
    actionCommand model no
    borderPainted button yes
    contentAreaFilled button yes
    disabledIcon button yes
    disabledSelectedIcon button yes
    displayedMnemonicIndex button no
    enabled model no
    focusPainted button yes
    horizontalAlignment button yes
    horizontalTextPosition button yes
    icon button yes
    iconTextGap button no
    label (same as text) model yes
    margin button yes
    multiClickThreshold button no
    pressedIcon button yes
    rolloverEnabled button yes
    rolloverIcon button yes
    rolloverSelectedIcon button yes
    selected model no
    selectedIcon button yes
    selectedObjects button no
    text model yes
    UI button yes
    verticalAlignment button yes
    verticalTextPosition button yes
    ++ * ++ *

    The various behavioral aspects of these properties follows:

    ++ * ++ *
      ++ * ++ *
    • When non-bound properties stored in the button change, the button ++ * fires ChangeEvents to its ChangeListeners.
    • ++ * ++ *
    • When bound properties stored in the button change, the button fires ++ * PropertyChangeEvents to its PropertyChangeListeners
    • ++ * ++ *
    • If any of the model's properties change, it fires a ChangeEvent to ++ * its ChangeListeners, which include the button.
    • ++ * ++ *
    • If the button receives a ChangeEvent from its model, it will ++ * propagate the ChangeEvent to its ChangeListeners, with the ChangeEvent's ++ * "source" property set to refer to the button, rather than the model. The ++ * the button will request a repaint, to paint its updated state.
    • ++ * ++ *
    • If the model's "selected" property changes, the model will fire an ++ * ItemEvent to its ItemListeners, which include the button, in addition to ++ * the ChangeEvent which models the property change. The button propagates ++ * ItemEvents directly to its ItemListeners.
    • ++ * ++ *
    • If the model's armed and pressed properties are simultaneously ++ * true, the model will fire an ActionEvent to its ++ * ActionListeners, which include the button. The button will propagate ++ * this ActionEvent to its ActionListeners, with the ActionEvent's "source" ++ * property set to refer to the button, rather than the model.
    • ++ * ++ *
    + * + * @author Ronald Veldema (rveldema@cs.vu.nl) ++ * @author Graydon Hoare (graydon@redhat.com) + */ ++ + public abstract class AbstractButton extends JComponent + implements ItemSelectable, SwingConstants + { +- Icon default_icon, pressed_button, disabled_button, +- selected_button, disabled_selected_button, current_icon; ++ private static final long serialVersionUID = -937921345538462020L; ++ ++ /** The icon displayed by default. */ ++ Icon default_icon; ++ ++ /** The icon displayed when the button is pressed. */ ++ Icon pressed_icon; ++ ++ /** The icon displayed when the button is disabled. */ ++ Icon disabeldIcon; ++ ++ /** The icon displayed when the button is selected. */ ++ Icon selectedIcon; ++ ++ /** The icon displayed when the button is selected but disabled. */ ++ Icon disabledSelectedIcon; ++ ++ /** The icon displayed when the button is rolled over. */ ++ Icon rolloverIcon; ++ ++ /** The icon displayed when the button is selected and rolled over. */ ++ Icon rolloverSelectedIcon; ++ ++ /** The icon currently displayed. */ ++ Icon current_icon; ++ ++ /** The text displayed in the button. */ + String text; + +- int vert_align = CENTER; +- int hori_align = CENTER; +- int hori_text_pos = CENTER; +- int vert_text_pos = CENTER; +- +- boolean paint_border = true, paint_focus; +- Action action_taken; +- ButtonModel model; ++ /** The gap between icon and text, if both icon and text are non-null. */ ++ int iconTextGap; ++ ++ /** The vertical alignment of the button's text and icon. */ ++ int verticalAlignment; ++ ++ /** The horizontal alignment of the button's text and icon. */ ++ int horizontalAlignment; ++ ++ /** The horizontal position of the button's text relative to its icon. */ ++ int horizontalTextPosition; ++ ++ /** The vertical position of the button's text relative to its icon. */ ++ int verticalTextPosition; ++ ++ /** Whether or not the button paints its border. */ ++ boolean borderPainted; ++ ++ /** Whether or not the button paints its focus state. */ ++ boolean focusPainted; ++ ++ /** Whether or not the button fills its content area. */ ++ boolean contentAreaFilled; ++ ++ /** Whether rollover is enabled. */ ++ boolean rollOverEnabled; ++ ++ /** The action taken when the button is clicked. */ ++ Action action; ++ ++ /** The button's current state. */ ++ protected ButtonModel model; ++ ++ /** The margin between the button's border and its label. */ + Insets margin; + ++ /** A hint to the look and feel class, suggesting which character in the ++ * button's label should be underlined when drawing the label. */ ++ int mnemonicIndex; ++ ++ /** Listener the button uses to receive ActionEvents from its model. */ ++ protected ActionListener actionListener; ++ ++ /** Listener the button uses to receive ItemEvents from its model. */ ++ protected ItemListener itemListener; ++ ++ /** Listener the button uses to receive ChangeEvents from its model. */ ++ protected ChangeListener changeListener; ++ ++ /** The time in miliseconds in which clicks get coalesced into a single ++ * ActionEvent. */ ++ long multiClickThreshhold; ++ ++ /** Listener the button uses to receive PropertyChangeEvents from its ++ Action. */ ++ PropertyChangeListener actionPropertyChangeListener; ++ ++ /** ChangeEvent that is fired to button's ChangeEventListeners */ ++ private ChangeEvent changeEvent = new ChangeEvent(this); ++ ++ /** Fired in a PropertyChangeEvent when the "borderPainted" property changes. */ ++ public static final String BORDER_PAINTED_CHANGED_PROPERTY = "borderPainted"; ++ ++ /** Fired in a PropertyChangeEvent when the "contentAreaFilled" property changes. */ ++ public static final String CONTENT_AREA_FILLED_CHANGED_PROPERTY = "contentAreaFilled"; ++ ++ /** Fired in a PropertyChangeEvent when the "disabledIcon" property changes. */ ++ public static final String DISABLED_ICON_CHANGED_PROPERTY = "disabledIcon"; ++ ++ /** Fired in a PropertyChangeEvent when the "disabledSelectedIcon" property changes. */ ++ public static final String DISABLED_SELECTED_ICON_CHANGED_PROPERTY = "disabledSelectedIcon"; ++ ++ /** Fired in a PropertyChangeEvent when the "focusPainted" property changes. */ + public static final String FOCUS_PAINTED_CHANGED_PROPERTY = "focusPainted"; + ++ /** Fired in a PropertyChangeEvent when the "horizontalAlignment" property changes. */ ++ public static final String HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY = "horizontalAlignment"; ++ ++ /** Fired in a PropertyChangeEvent when the "horizontalTextPosition" property changes. */ ++ public static final String HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY = "horizontalTextPosition"; ++ ++ /** Fired in a PropertyChangeEvent when the "icon" property changes. */ ++ public static final String ICON_CHANGED_PROPERTY = "icon"; ++ ++ /** Fired in a PropertyChangeEvent when the "margin" property changes. */ ++ public static final String MARGIN_CHANGED_PROPERTY = "margin"; ++ ++ /** Fired in a PropertyChangeEvent when the "mnemonic" property changes. */ ++ public static final String MNEMONIC_CHANGED_PROPERTY = "mnemonic"; ++ ++ /** Fired in a PropertyChangeEvent when the "model" property changes. */ ++ public static final String MODEL_CHANGED_PROPERTY = "model"; ++ ++ /** Fired in a PropertyChangeEvent when the "pressedIcon" property changes. */ ++ public static final String PRESSED_ICON_CHANGED_PROPERTY = "pressedIcon"; ++ ++ /** Fired in a PropertyChangeEvent when the "rolloverEnabled" property changes. */ ++ public static final String ROLLOVER_ENABLED_CHANGED_PROPERTY = "rolloverEnabled"; ++ ++ /** Fired in a PropertyChangeEvent when the "rolloverIcon" property changes. */ ++ public static final String ROLLOVER_ICON_CHANGED_PROPERTY = "rolloverIcon"; ++ ++ /** Fired in a PropertyChangeEvent when the "rolloverSelectedIcon" property changes. */ ++ public static final String ROLLOVER_SELECTED_ICON_CHANGED_PROPERTY = "rolloverSelectedIcon"; ++ ++ /** Fired in a PropertyChangeEvent when the "selectedIcon" property changes. */ ++ public static final String SELECTED_ICON_CHANGED_PROPERTY = "selectedIcon"; ++ ++ /** Fired in a PropertyChangeEvent when the "text" property changes. */ ++ public static final String TEXT_CHANGED_PROPERTY = "text"; ++ ++ /** Fired in a PropertyChangeEvent when the "verticalAlignment" property changes. */ ++ public static final String VERTICAL_ALIGNMENT_CHANGED_PROPERTY = "verticalAlignment"; ++ ++ /** Fired in a PropertyChangeEvent when the "verticalTextPosition" property changes. */ ++ public static final String VERTICAL_TEXT_POSITION_CHANGED_PROPERTY = "verticalTextPosition"; ++ + /** +- * AccessibleAbstractButton ++ * A Java Accessibility extension of the AbstractButton. + */ +- protected abstract class AccessibleAbstractButton +- extends AccessibleJComponent +- implements AccessibleAction, AccessibleValue, AccessibleText { +- +- /** +- * Constructor AccessibleAbstractButton +- * @param component TODO +- */ +- protected AccessibleAbstractButton(AbstractButton component) { +- super(component); +- // TODO +- } // AccessibleAbstractButton() +- +- /** +- * getAccessibleStateSet +- * @returns AccessibleStateSet +- */ +- public AccessibleStateSet getAccessibleStateSet() { +- return null; // TODO +- } // getAccessibleStateSet() +- +- /** +- * getAccessibleName +- * @returns String +- */ +- public String getAccessibleName() { +- return null; // TODO +- } // getAccessibleName() +- +- /** +- * getAccessibleIcon +- * @returns AccessibleIcon[] +- */ +- public AccessibleIcon[] getAccessibleIcon() { +- return null; // TODO +- } // getAccessibleIcon() +- +- /** +- * getAccessibleRelationSet +- * @returns AccessibleRelationSet +- */ +- public AccessibleRelationSet getAccessibleRelationSet() { +- return null; // TODO +- } // getAccessibleRelationSet() +- +- /** +- * getAccessibleAction +- * @returns AccessibleAction +- */ +- public AccessibleAction getAccessibleAction() { +- return null; // TODO +- } // getAccessibleAction() +- +- /** +- * getAccessibleValue +- * @returns AccessibleValue +- */ +- public AccessibleValue getAccessibleValue() { +- return null; // TODO +- } // getAccessibleValue() +- +- /** +- * getAccessibleActionCount +- * @returns int +- */ +- public int getAccessibleActionCount() { ++ protected abstract class AccessibleAbstractButton ++ extends AccessibleJComponent implements AccessibleAction, AccessibleValue, ++ AccessibleText ++ { ++ private static final long serialVersionUID = -5673062525319836790L; ++ ++ protected AccessibleAbstractButton() ++ { ++ } ++ ++ public AccessibleStateSet getAccessibleStateSet() ++ { ++ return null; // TODO ++ } ++ ++ public String getAccessibleName() ++ { ++ return null; // TODO ++ } ++ ++ public AccessibleIcon[] getAccessibleIcon() ++ { ++ return null; // TODO ++ } ++ ++ public AccessibleRelationSet getAccessibleRelationSet() ++ { ++ return null; // TODO ++ } ++ ++ public AccessibleAction getAccessibleAction() ++ { ++ return null; // TODO ++ } ++ ++ public AccessibleValue getAccessibleValue() ++ { ++ return null; // TODO ++ } ++ ++ public int getAccessibleActionCount() ++ { + return 0; // TODO +- } // getAccessibleActionCount() ++ } + +- /** +- * getAccessibleActionDescription +- * @param value0 TODO +- * @returns String +- */ +- public String getAccessibleActionDescription(int value0) { +- return null; // TODO +- } // getAccessibleActionDescription() +- +- /** +- * doAccessibleAction +- * @param value0 TODO +- * @returns boolean +- */ +- public boolean doAccessibleAction(int value0) { ++ public String getAccessibleActionDescription(int value0) ++ { ++ return null; // TODO ++ } ++ ++ public boolean doAccessibleAction(int value0) ++ { + return false; // TODO +- } // doAccessibleAction() ++ } ++ ++ public Number getCurrentAccessibleValue() ++ { ++ return null; // TODO ++ } + +- /** +- * getCurrentAccessibleValue +- * @returns Number +- */ +- public Number getCurrentAccessibleValue() { +- return null; // TODO +- } // getCurrentAccessibleValue() +- +- /** +- * setCurrentAccessibleValue +- * @param value0 TODO +- * @returns boolean +- */ +- public boolean setCurrentAccessibleValue(Number value0) { ++ public boolean setCurrentAccessibleValue(Number value0) ++ { + return false; // TODO +- } // setCurrentAccessibleValue() ++ } + +- /** +- * getMinimumAccessibleValue +- * @returns Number +- */ +- public Number getMinimumAccessibleValue() { +- return null; // TODO +- } // getMinimumAccessibleValue() +- +- /** +- * getMaximumAccessibleValue +- * @returns Number +- */ +- public Number getMaximumAccessibleValue() { +- return null; // TODO +- } // getMaximumAccessibleValue() +- +- /** +- * getAccessibleText +- * @returns AccessibleText +- */ +- public AccessibleText getAccessibleText() { +- return null; // TODO +- } // getAccessibleText() +- +- /** +- * getIndexAtPoint +- * @param value0 TODO +- * @returns int +- */ +- public int getIndexAtPoint(Point value0) { +- return 0; // TODO +- } // getIndexAtPoint() ++ public Number getMinimumAccessibleValue() ++ { ++ return null; // TODO ++ } + +- /** +- * getCharacterBounds +- * @param value0 TODO +- * @returns Rectangle +- */ +- public Rectangle getCharacterBounds(int value0) { +- return null; // TODO +- } // getCharacterBounds() +- +- /** +- * getCharCount +- * @returns int +- */ +- public int getCharCount() { +- return 0; // TODO +- } // getCharCount() ++ public Number getMaximumAccessibleValue() ++ { ++ return null; // TODO ++ } + +- /** +- * getCaretPosition +- * @returns int +- */ +- public int getCaretPosition() { ++ public AccessibleText getAccessibleText() ++ { ++ return null; // TODO ++ } ++ ++ public int getIndexAtPoint(Point value0) ++ { + return 0; // TODO +- } // getCaretPosition() ++ } ++ ++ public Rectangle getCharacterBounds(int value0) ++ { ++ return null; // TODO ++ } + +- /** +- * getAtIndex +- * @param value0 TODO +- * @param value1 TODO +- * @returns String +- */ +- public String getAtIndex(int value0, int value1) { +- return null; // TODO +- } // getAtIndex() +- +- /** +- * getAfterIndex +- * @param value0 TODO +- * @param value1 TODO +- * @returns String +- */ +- public String getAfterIndex(int value0, int value1) { +- return null; // TODO +- } // getAfterIndex() +- +- /** +- * getBeforeIndex +- * @param value0 TODO +- * @param value1 TODO +- * @returns String +- */ +- public String getBeforeIndex(int value0, int value1) { +- return null; // TODO +- } // getBeforeIndex() +- +- /** +- * getCharacterAttribute +- * @param value0 TODO +- * @returns AttributeSet +- */ +- public AttributeSet getCharacterAttribute(int value0) { +- return null; // TODO +- } // getCharacterAttribute() +- +- /** +- * getSelectionStart +- * @returns int +- */ +- public int getSelectionStart() { ++ public int getCharCount() ++ { + return 0; // TODO +- } // getSelectionStart() ++ } + +- /** +- * getSelectionEnd +- * @returns int +- */ +- public int getSelectionEnd() { ++ public int getCaretPosition() ++ { + return 0; // TODO +- } // getSelectionEnd() ++ } + +- /** +- * getSelectedText +- * @returns String +- */ +- public String getSelectedText() { ++ public String getAtIndex(int value0, int value1) ++ { + return null; // TODO +- } // getSelectedText() ++ } + +- /** +- * getTextRectangle +- * @returns Rectangle +- */ +- private Rectangle getTextRectangle() { ++ public String getAfterIndex(int value0, int value1) ++ { + return null; // TODO +- } // getTextRectangle() +- +- +- } // AccessibleAbstractButton ++ } + ++ public String getBeforeIndex(int value0, int value1) ++ { ++ return null; // TODO ++ } + +- static private class JFocusListener implements FocusListener +- { +- AbstractButton c; ++ public AttributeSet getCharacterAttribute(int value0) ++ { ++ return null; // TODO ++ } + +- JFocusListener(AbstractButton c) ++ public int getSelectionStart() + { +- this.c = c; ++ return 0; // TODO + } + +- public void focusLost(FocusEvent event) ++ public int getSelectionEnd() + { +- c.getModel().setArmed(false); ++ return 0; // TODO ++ } + +- System.out.println("LOST FOCUS"); +- if (c.isFocusPainted()) +- { +- c.repaint(); +- } ++ public String getSelectedText() ++ { ++ return null; // TODO + } +- public void focusGained(FocusEvent event) ++ ++ private Rectangle getTextRectangle() + { +- System.out.println("GAIN FOCUS"); ++ return null; // TODO + } +- } ++ } ++ + +- AbstractButton() ++ /** ++ * Creates a new AbstractButton object. ++ */ ++ public AbstractButton() + { + this("",null); + } + +- AbstractButton(String text, +- Icon icon) ++ /** ++ * Creates a new AbstractButton object. ++ * ++ * @param txt Value to use for the button's "text" property ++ * @param icon Value to use for the button's "defaultIcon" property ++ */ ++ AbstractButton(String txt, Icon icon) + { +- this.text = text; +- setIcon(icon); +- +- setAlignmentX(LEFT_ALIGNMENT); +- setAlignmentY(CENTER_ALIGNMENT); ++ init (txt, icon); ++ updateUI(); ++ } + +- addFocusListener( new JFocusListener(this) ); ++ /** ++ * Get the model the button is currently using. ++ * ++ * @return The current model ++ */ ++ public ButtonModel getModel() ++ { ++ return model; ++ } + +- setModel(new DefaultButtonModel(this)); ++ /** ++ * Set the model the button is currently using. This un-registers all ++ * listeners associated with the current model, and re-registers them ++ * with the new model. ++ * ++ * @param newModel The new model ++ */ ++ public void setModel(ButtonModel newModel) ++ { ++ if (newModel == model) ++ return; + +- updateUI(); // get a proper ui ++ if (model != null) ++ { ++ model.removeActionListener(actionListener); ++ model.removeChangeListener(changeListener); ++ model.removeItemListener(itemListener); ++ } ++ ButtonModel old = model; ++ model = newModel; ++ if (model != null) ++ { ++ model.addActionListener(actionListener); ++ model.addChangeListener(changeListener); ++ model.addItemListener(itemListener); ++ } ++ firePropertyChange(MODEL_CHANGED_PROPERTY, old, model); ++ revalidate(); ++ repaint(); + } + +- public ButtonModel getModel() +- { return model; } ++ protected void init(String text, Icon icon) ++ { ++ this.text = text; ++ default_icon = icon; ++ model = new DefaultButtonModel(); ++ actionListener = createActionListener(); ++ changeListener = createChangeListener(); ++ itemListener = createItemListener(); ++ ++ model.addActionListener(actionListener); ++ model.addChangeListener(changeListener); ++ model.addItemListener(itemListener); ++ ++ horizontalAlignment = CENTER; ++ horizontalTextPosition = TRAILING; ++ verticalAlignment = CENTER; ++ verticalTextPosition = CENTER; ++ borderPainted = true; ++ contentAreaFilled = true; + +- public void setModel(ButtonModel newModel) +- { model = newModel; } ++ focusPainted = true; ++ setFocusable(true); + ++ setAlignmentX(LEFT_ALIGNMENT); ++ setAlignmentY(CENTER_ALIGNMENT); ++ ++ setDisplayedMnemonicIndex(-1); ++ } ++ ++ /** ++ * Get the action command string for this button's model. ++ * ++ * @return The current action command string from the button's model ++ */ + public String getActionCommand() +- { return getModel().getActionCommand(); } ++ { ++ return getModel().getActionCommand(); ++ } + ++ /** ++ * Set the action command string for this button's model. ++ * ++ * @param aCommand The new action command string to set in the button's ++ * model. ++ */ + public void setActionCommand(String aCommand) +- { getModel().setActionCommand(aCommand); } ++ { ++ getModel().setActionCommand(aCommand); ++ } + ++ /** ++ * Adds an ActionListener to the button's listener list. When the ++ * button's model is clicked it fires an ActionEvent, and these ++ * listeners will be called. ++ * ++ * @param l The new listener to add ++ */ + public void addActionListener(ActionListener l) +- { getModel().addActionListener(l); } ++ { ++ listenerList.add(ActionListener.class, l); ++ } + ++ /** ++ * Removes an ActionListener from the button's listener list. ++ * ++ * @param l The listener to remove ++ */ + public void removeActionListener(ActionListener l) +- { getModel().removeActionListener(l); } ++ { ++ listenerList.remove(ActionListener.class, l); ++ } ++ ++ /** ++ * Returns all added ActionListener objects. ++ * ++ * @return an array of listeners ++ * ++ * @since 1.4 ++ */ ++ public ActionListener[] getActionListeners() ++ { ++ return (ActionListener[]) listenerList.getListeners(ActionListener.class); ++ } + ++ /** ++ * Adds an ItemListener to the button's listener list. When the button's ++ * model changes state (between any of ARMED, ENABLED, PRESSED, ROLLOVER ++ * or SELECTED) it fires an ItemEvent, and these listeners will be ++ * called. ++ * ++ * @param l The new listener to add ++ */ ++ public void addItemListener(ItemListener l) ++ { ++ listenerList.add(ItemListener.class, l); ++ } ++ ++ /** ++ * Removes an ItemListener from the button's listener list. ++ * ++ * @param l The listener to remove ++ */ ++ public void removeItemListener(ItemListener l) ++ { ++ listenerList.remove(ItemListener.class, l); ++ } ++ ++ /** ++ * Returns all added ItemListener objects. ++ * ++ * @return an array of listeners ++ * ++ * @since 1.4 ++ */ ++ public ItemListener[] getItemListeners() ++ { ++ return (ItemListener[]) listenerList.getListeners(ItemListener.class); ++ } ++ ++ /** ++ * Adds a ChangeListener to the button's listener list. When the button's ++ * model changes any of its (non-bound) properties, these listeners will be ++ * called. ++ * ++ * @param l The new listener to add ++ */ + public void addChangeListener(ChangeListener l) +- { getModel().addChangeListener(l); } ++ { ++ listenerList.add(ChangeListener.class, l); ++ } + ++ /** ++ * Removes a ChangeListener from the button's listener list. ++ * ++ * @param l The listener to remove ++ */ + public void removeChangeListener(ChangeListener l) +- { getModel().removeChangeListener(l); } ++ { ++ listenerList.remove(ChangeListener.class, l); ++ } + +- public void addItemListener(ItemListener l) +- { getModel().addItemListener(l); } ++ /** ++ * Returns all added ChangeListener objects. ++ * ++ * @return an array of listeners ++ * ++ * @since 1.4 ++ */ ++ public ChangeListener[] getChangeListeners() ++ { ++ return (ChangeListener[]) listenerList.getListeners(ChangeListener.class); ++ } + +- public void removeItemListener(ItemListener l) +- { getModel().removeItemListener(l); } ++ /** ++ * Calls {@link ItemListener.itemStateChanged} on each ItemListener in ++ * the button's listener list. ++ * ++ * @param e The event signifying that the button's model changed state ++ */ ++ public void fireItemStateChanged(ItemEvent e) ++ { ++ e.setSource(this); ++ ItemListener[] listeners = getItemListeners(); ++ ++ for (int i = 0; i < listeners.length; i++) ++ listeners[i].itemStateChanged(e); ++ } + +- public int getHorizontalAlignment() +- { return hori_align; } ++ /** ++ * Calls {@link ActionListener.actionPerformed} on each {@link ++ * ActionListener} in the button's listener list. ++ * ++ * @param e The event signifying that the button's model was clicked ++ */ ++ public void fireActionPerformed(ActionEvent e) ++ { ++ e.setSource(this); ++ ActionListener[] listeners = getActionListeners(); ++ ++ for (int i = 0; i < listeners.length; i++) ++ listeners[i].actionPerformed(e); ++ } + +- public int getHorizontalTextPosition() +- { return hori_text_pos; } ++ /** ++ * Calls {@link ChangeEvent.stateChanged} on each {@link ChangeListener} ++ * in the button's listener list. ++ * ++ * @param e The event signifying a change in one of the (non-bound) ++ * properties of the button's model. ++ */ ++ public void fireStateChanged(ChangeEvent e) ++ { ++ ChangeListener[] listeners = getChangeListeners(); + +- public int getVerticalAlignment() +- { return vert_align; } ++ for (int i = 0; i < listeners.length; i++) ++ listeners[i].stateChanged(changeEvent); ++ } + +- public int getVerticalTextPosition() +- { return vert_text_pos; } ++ /** ++ * Get the current keyboard mnemonic value. This value corresponds to a ++ * single key code (one of the {@link java.awt.event.KeyEvent} VK_* ++ * codes) and is used to activate the button when pressed in conjunction ++ * with the "mouseless modifier" of the button's look and feel class, and ++ * when focus is in one of the button's ancestors. ++ * ++ * @return The button's current keyboard mnemonic ++ */ ++ public int getMnemonic() ++ { ++ return getModel().getMnemonic(); ++ } ++ ++ /** ++ * Set the current keyboard mnemonic value. This value corresponds to a ++ * single key code (one of the {@link java.awt.event.KeyEvent} VK_* ++ * codes) and is used to activate the button when pressed in conjunction ++ * with the "mouseless modifier" of the button's look and feel class, and ++ * when focus is in one of the button's ancestors. ++ * ++ * @param mne A new mnemonic to use for the button ++ */ ++ public void setMnemonic(char mne) ++ { ++ setMnemonic((int) mne); ++ } ++ ++ /** ++ * Set the current keyboard mnemonic value. This value corresponds to a ++ * single key code (one of the {@link java.awt.event.KeyEvent} VK_* ++ * codes) and is used to activate the button when pressed in conjunction ++ * with the "mouseless modifier" of the button's look and feel class, and ++ * when focus is in one of the button's ancestors. ++ * ++ * @param mne A new mnemonic to use for the button ++ */ ++ public void setMnemonic(int mne) ++ { ++ int old = getModel().getMnemonic(); ++ ++ if (old != mne) ++ { ++ getModel().setMnemonic(mne); ++ ++ if (text != null && ! text.equals("")) ++ { ++ // Since lower case char = upper case char for ++ // mnemonic, we will convert both text and mnemonic ++ // to upper case before checking if mnemonic character occurs ++ // in the menu item text. ++ int upperCaseMne = Character.toUpperCase((char) mne); ++ String upperCaseText = text.toUpperCase(); ++ setDisplayedMnemonicIndex(upperCaseText.indexOf(upperCaseMne)); ++ } ++ ++ firePropertyChange(MNEMONIC_CHANGED_PROPERTY, old, mne); ++ revalidate(); ++ repaint(); ++ } ++ } + +- protected void fireItemStateChanged(ItemEvent event) ++ /** ++ * Sets the button's mnemonic index. The mnemonic index is a hint to the ++ * look and feel class, suggesting which character in the button's label ++ * should be underlined when drawing the label. If the mnemonic index is ++ * -1, no mnemonic will be displayed. ++ * ++ * If no mnemonic index is set, the button will choose a mnemonic index ++ * by default, which will be the first occurrence of the mnemonic ++ * character in the button's text. ++ * ++ * @param index An offset into the "text" property of the button ++ * @throws IllegalArgumentException If index is not within the ++ * range of legal offsets for the "text" property of the button. ++ * @since 1.4 ++ */ ++ ++ public void setDisplayedMnemonicIndex(int index) + { ++ if (index < -1 || (text != null && index >= text.length())) ++ throw new IllegalArgumentException(); ++ else ++ mnemonicIndex = index; + } + +- protected void fireStateChanged(ChangeEvent event) ++ /** ++ * Get the button's mnemonic index, which is an offset into the button's ++ * "text" property. The character specified by this offset should be ++ * underlined when the look and feel class draws this button. ++ * ++ * @return An index into the button's "text" property ++ */ ++ public int getDisplayedMnemonicIndex() + { ++ return mnemonicIndex; + } + +- protected void fireActionPerformed(ActionEvent event) ++ ++ /** ++ * Set the "rolloverEnabled" property. When rollover is enabled, and the ++ * look and feel supports it, the button will change its icon to ++ * rolloverIcon, when the mouse passes over it. ++ * ++ * @param r Whether or not to enable rollover icon changes ++ */ ++ public void setRolloverEnabled(boolean r) + { ++ if (rollOverEnabled != r) ++ { ++ rollOverEnabled = r; ++ firePropertyChange(ROLLOVER_ENABLED_CHANGED_PROPERTY, !r, r); ++ revalidate(); ++ repaint(); ++ } + } + +- public void setVerticalAlignment(int alignment) +- { vert_align = alignment; } ++ /** ++ * Returns whether or not rollover icon changes are enabled on the ++ * button. ++ * ++ * @return The state of the "rolloverEnabled" property ++ */ ++ public boolean isRolloverEnabled() ++ { ++ return rollOverEnabled; ++ } + +- public void setHorizontalAlignment(int alignment) +- { hori_align = alignment; } ++ /** ++ * Set the value of the button's "selected" property. Selection is only ++ * meaningful for toggle-type buttons (check boxes, radio buttons). ++ * ++ * @param s New value for the property ++ */ ++ public void setSelected(boolean s) ++ { ++ getModel().setSelected(s); ++ } + +- public void setVerticalTextPosition(int textPosition) +- { vert_text_pos = textPosition; } ++ /** ++ * Get the value of the button's "selected" property. Selection is only ++ * meaningful for toggle-type buttons (check boxes, radio buttons). ++ * ++ * @return The value of the property ++ */ ++ public boolean isSelected() ++ { ++ return getModel().isSelected(); ++ } + +- public void setHorizontalTextPosition(int textPosition) +- { hori_text_pos = textPosition; } ++ /** ++ * Enables or disables the button. A button will neither be selectable ++ * nor preform any actions unless it is enabled. ++ * ++ * @param b Whether or not to enable the button ++ */ ++ public void setEnabled(boolean b) ++ { ++ super.setEnabled(b); ++ getModel().setEnabled(b); ++ } + +- public int getMnemonic() +- { return getModel().getMnemonic(); } ++ /** ++ * Set the horizontal alignment of the button's text and icon. The ++ * alignment is a numeric constant from {@link SwingConstants}. It must ++ * be one of: RIGHT, LEFT, CENTER, ++ * LEADING or TRAILING. The default is ++ * RIGHT. ++ * ++ * @return The current horizontal alignment ++ */ ++ public int getHorizontalAlignment() ++ { ++ return horizontalAlignment; ++ } + +- public void setMnemonic(char mne) +- { getModel().setMnemonic(mne); } ++ /** ++ * Set the horizontal alignment of the button's text and icon. The ++ * alignment is a numeric constant from {@link SwingConstants}. It must ++ * be one of: RIGHT, LEFT, CENTER, ++ * LEADING or TRAILING. The default is ++ * RIGHT. ++ * ++ * @param a The new horizontal alignment ++ * @throws IllegalArgumentException If alignment is not one of the legal ++ * constants. ++ */ ++ public void setHorizontalAlignment(int a) ++ { ++ int old = horizontalAlignment; ++ horizontalAlignment = a; ++ if (old != a) ++ { ++ firePropertyChange(HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY, old, a); ++ revalidate(); ++ repaint(); ++ } ++ } + +- public void setMnemonic(int mne) +- { getModel().setMnemonic(mne); } ++ /** ++ * Get the horizontal position of the button's text relative to its ++ * icon. The position is a numeric constant from {@link ++ * SwingConstants}. It must be one of: RIGHT, ++ * LEFT, CENTER, LEADING or ++ * TRAILING. The default is TRAILING. ++ * ++ * @return The current horizontal text position ++ */ ++ public int getHorizontalTextPosition() ++ { ++ return horizontalTextPosition; ++ } + +- public void setRolloverEnabled(boolean b) +- { getModel().setRollover(b); } ++ /** ++ * Set the horizontal position of the button's text relative to its ++ * icon. The position is a numeric constant from {@link ++ * SwingConstants}. It must be one of: RIGHT, ++ * LEFT, CENTER, LEADING or ++ * TRAILING. The default is TRAILING. ++ * ++ * @param t The new horizontal text position ++ * @throws IllegalArgumentException If position is not one of the legal ++ * constants. ++ */ ++ public void setHorizontalTextPosition(int t) ++ { ++ int old = horizontalTextPosition; ++ horizontalTextPosition = t; ++ if (old != t) ++ { ++ firePropertyChange(HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY, old, t); ++ revalidate(); ++ repaint(); ++ } ++ } + +- public boolean isRolloverEnabled() +- { return getModel().isRollover(); } ++ /** ++ * Get the vertical alignment of the button's text and icon. The ++ * alignment is a numeric constant from {@link SwingConstants}. It must ++ * be one of: CENTER, TOP, or ++ * BOTTOM. The default is CENTER. ++ * ++ * @return The current vertical alignment ++ */ ++ public int getVerticalAlignment() ++ { ++ return verticalAlignment; ++ } + ++ /** ++ * Set the vertical alignment of the button's text and icon. The ++ * alignment is a numeric constant from {@link SwingConstants}. It must ++ * be one of: CENTER, TOP, or ++ * BOTTOM. The default is CENTER. ++ * ++ * @param a The new vertical alignment ++ * @throws IllegalArgumentException If alignment is not one of the legal ++ * constants. ++ */ ++ public void setVerticalAlignment(int a) ++ { ++ int old = verticalAlignment; ++ verticalAlignment = a; ++ if (old != a) ++ { ++ firePropertyChange(VERTICAL_ALIGNMENT_CHANGED_PROPERTY, old, a); ++ revalidate(); ++ repaint(); ++ } ++ } ++ ++ /** ++ * Get the vertical position of the button's text relative to its ++ * icon. The alignment is a numeric constant from {@link ++ * SwingConstants}. It must be one of: CENTER, ++ * TOP, or BOTTOM. The default is ++ * CENTER. ++ * ++ * @return The current vertical position ++ */ ++ public int getVerticalTextPosition() ++ { ++ return verticalTextPosition; ++ } ++ ++ /** ++ * Set the vertical position of the button's text relative to its ++ * icon. The alignment is a numeric constant from {@link ++ * SwingConstants}. It must be one of: CENTER, ++ * TOP, or BOTTOM. The default is ++ * CENTER. ++ * ++ * @param t The new vertical position ++ * @throws IllegalArgumentException If position is not one of the legal ++ * constants. ++ */ ++ public void setVerticalTextPosition(int t) ++ { ++ int old = verticalTextPosition; ++ verticalTextPosition = t; ++ if (old != t) ++ { ++ firePropertyChange(VERTICAL_TEXT_POSITION_CHANGED_PROPERTY, old, t); ++ revalidate(); ++ repaint(); ++ } ++ } ++ ++ /** ++ * Set the value of the "borderPainted" property. If set to ++ * false, the button's look and feel class should not paint ++ * a border for the button. The default is true. ++ * ++ * @return The current value of the property. ++ */ + public boolean isBorderPainted() +- { return paint_border; } ++ { ++ return borderPainted; ++ } + ++ /** ++ * Set the value of the "borderPainted" property. If set to ++ * false, the button's look and feel class should not paint ++ * a border for the button. The default is true. ++ * ++ * @param b The new value of the property. ++ */ + public void setBorderPainted(boolean b) + { +- if (b != paint_border) ++ boolean old = borderPainted; ++ borderPainted = b; ++ if (b != old) + { +- paint_border = b; ++ firePropertyChange(BORDER_PAINTED_CHANGED_PROPERTY, old, b); + revalidate(); + repaint(); + } + } + ++ /** ++ * Get the value of the "action" property. ++ * ++ * @return The current value of the "action" property ++ */ + public Action getAction() +- { return action_taken; } ++ { ++ return action; ++ } + ++ /** ++ *

    Set the button's "action" property, subscribing the new action to the ++ * button, as an ActionListener, if it is not already subscribed. The old ++ * Action, if it exists, is unsubscribed, and the button is unsubscribed ++ * from the old Action if it was previously subscribed as a ++ * PropertyChangeListener.

    ++ * ++ *

    This method also configures several of the button's properties from ++ * the Action, by calling {@link configurePropertiesFromAction}, and ++ * subscribes the button to the Action as a PropertyChangeListener. ++ * Subsequent changes to the Action will thus reconfigure the button ++ * automatically.

    ++ * ++ * @param a The new value of the "action" property ++ */ + public void setAction(Action a) + { +- action_taken = a; +- revalidate(); +- repaint(); +- } ++ if (action != null) ++ { ++ action.removePropertyChangeListener(actionPropertyChangeListener); ++ removeActionListener(action); ++ if (actionPropertyChangeListener != null) ++ { ++ action.removePropertyChangeListener(actionPropertyChangeListener); ++ actionPropertyChangeListener = null; ++ } + +- public void setSelected(boolean b) +- { getModel().setSelected(b); } + +- public boolean isSelected() +- { return getModel().isSelected(); } ++ } ++ + +- public Icon getIcon() +- { return default_icon; } ++ Action old = action; ++ action = a; ++ configurePropertiesFromAction(action); ++ if (action != null) ++ { ++ actionPropertyChangeListener = createActionPropertyChangeListener(a); ++ action.addPropertyChangeListener(actionPropertyChangeListener); ++ addActionListener(action); ++ } ++ } + +- public void setIcon(Icon defaultIcon) ++ /** ++ * Return the button's default "icon" property. ++ * ++ * @return The current default icon ++ */ ++ public Icon getIcon() + { +- if (default_icon == defaultIcon) +- return; ++ return default_icon; ++ } + +- default_icon = defaultIcon; +- if (default_icon != null) ++ /** ++ * Set the button's default "icon" property. This icon is used as a basis ++ * for the pressed and disabled icons, if none are explicitly set. ++ * ++ * @param i The new default icon ++ */ ++ public void setIcon(Icon i) ++ { ++ if (default_icon != i) + { +- // XXX FIXME - icons do not know their parent +- // default_icon.setParent(this); +- } ++ Icon old = default_icon; ++ default_icon = i; ++ firePropertyChange(ICON_CHANGED_PROPERTY, old, i); + revalidate(); + repaint(); ++ } + } + ++ /** ++ * Return the button's "text" property. This property is synonymous with ++ * the "label" property. ++ * ++ * @return The current "text" property ++ */ + public String getText() +- { return text; } ++ { ++ return text; ++ } + ++ /** ++ * Set the button's "label" property. This property is synonymous with the ++ * "text" property. ++ * ++ * @param label The new "label" property ++ */ + public void setLabel(String label) +- { setText(label); } ++ { ++ setText(label); ++ } + ++ /** ++ * Return the button's "label" property. This property is synonymous with ++ * the "text" property. ++ * ++ * @return The current "label" property ++ */ + public String getLabel() +- { return getText(); } ++ { ++ return getText(); ++ } + +- public void setText(String text) ++ /** ++ * Set the button's "text" property. This property is synonymous with the ++ * "label" property. ++ * ++ * @param t The new "text" property ++ */ ++ public void setText(String t) + { +- this.text = text; ++ String old = text; ++ text = t; ++ if (t != old) ++ { ++ firePropertyChange(TEXT_CHANGED_PROPERTY, old, t); + revalidate(); + repaint(); + } ++ } ++ ++ /** ++ * Set the value of the {@link #iconTextGap} property. ++ * ++ * @param i The new value of the property ++ */ ++ public void setIconTextGap(int i) ++ { ++ int old = iconTextGap; ++ iconTextGap = i; ++ if (old != i) ++ { ++ fireStateChanged(new ChangeEvent(this)); ++ revalidate(); ++ repaint(); ++ } ++ } ++ ++ /** ++ * Get the value of the {@link #iconTextGap} property. ++ * ++ * @return The current value of the property ++ */ ++ public int getIconTextGap() ++ { ++ return iconTextGap; ++ } + ++ /** ++ * Return the button's "margin" property, which is an {@link Insets} object ++ * describing the distance between the button's border and its text and ++ * icon. ++ * ++ * @return The current "margin" property ++ */ + public Insets getMargin() +- { return margin; } ++ { ++ return margin; ++ } + ++ /** ++ * Set the button's "margin" property, which is an {@link Insets} object ++ * describing the distance between the button's border and its text and ++ * icon. ++ * ++ * @param m The new "margin" property ++ */ + public void setMargin(Insets m) + { ++ Insets old = margin; + margin = m; +- revalidate(); ++ if (m != old) ++ { ++ firePropertyChange(MARGIN_CHANGED_PROPERTY, old, m); ++ revalidate(); + repaint(); + } +- +- public void setEnabled(boolean b) +- { +- super.setEnabled(b); +- getModel().setEnabled(b); +- repaint(); + } + ++ /** ++ * Return the button's "pressedIcon" property. The look and feel class ++ * should paint this icon when the "pressed" property of the button's ++ * {@link ButtonModel} is true. This property may be ++ * null, in which case the default icon is used. ++ * ++ * @return The current "pressedIcon" property ++ */ + public Icon getPressedIcon() +- { return pressed_button; } ++ { ++ return pressed_icon; ++ } + ++ /** ++ * Set the button's "pressedIcon" property. The look and feel class ++ * should paint this icon when the "pressed" property of the button's ++ * {@link ButtonModel} is true. This property may be ++ * null, in which case the default icon is used. ++ * ++ * @param pressedIcon The new "pressedIcon" property ++ */ + public void setPressedIcon(Icon pressedIcon) + { +- pressed_button = pressedIcon; ++ Icon old = pressed_icon; ++ pressed_icon = pressedIcon; ++ if (pressed_icon != old) ++ { ++ firePropertyChange(PRESSED_ICON_CHANGED_PROPERTY, old, pressed_icon); + revalidate(); + repaint(); + } ++ } + ++ /** ++ * Return the button's "disabledIcon" property. The look and feel class ++ * should paint this icon when the "enabled" property of the button's ++ * {@link ButtonModel} is false. This property may be ++ * null, in which case an icon is constructed, based on the ++ * default icon. ++ * ++ * @return The current "disabledIcon" property ++ */ + public Icon getDisabledIcon() +- { return disabled_button; } ++ { ++ if (disabeldIcon == null ++ && default_icon instanceof ImageIcon) ++ disabeldIcon = new ImageIcon(GrayFilter.createDisabledImage(((ImageIcon) default_icon).getImage())); ++ ++ return disabeldIcon; ++ } + +- public void setDisabledIcon(Icon disabledIcon) ++ /** ++ * Set the button's "disabledIcon" property. The look and feel class should ++ * paint this icon when the "enabled" property of the button's {@link ++ * ButtonModel} is false. This property may be ++ * null, in which case an icon is constructed, based on the ++ * default icon. ++ * ++ * @param disabledIcon The new "disabledIcon" property ++ */ ++ public void setDisabledIcon(Icon d) + { +- disabled_button = disabledIcon; ++ disabeldIcon = d; + revalidate(); + repaint(); + } + ++ /** ++ * Return the button's "paintFocus" property. This property controls ++ * whether or not the look and feel class will paint a special indicator ++ * of focus state for the button. If it is false, the button still paints ++ * when focused, but no special decoration is painted to indicate the ++ * presence of focus. ++ * ++ * @return The current "paintFocus" property ++ */ + public boolean isFocusPainted() +- { return paint_focus; } ++ { ++ return focusPainted; ++ } + +- public void setFocusPainted(boolean b) ++ /** ++ * Set the button's "paintFocus" property. This property controls whether ++ * or not the look and feel class will paint a special indicator of focus ++ * state for the button. If it is false, the button still paints when ++ * focused, but no special decoration is painted to indicate the presence ++ * of focus. ++ * ++ * @param b The new "paintFocus" property ++ */ ++ public void setFocusPainted(boolean p) + { +- boolean old = paint_focus; +- paint_focus = b; ++ boolean old = focusPainted; ++ focusPainted = p; + +- firePropertyChange(FOCUS_PAINTED_CHANGED_PROPERTY, +- old, +- b); +- if (hasFocus()) ++ if (old != focusPainted) + { ++ firePropertyChange(FOCUS_PAINTED_CHANGED_PROPERTY, old, p); + revalidate(); + repaint(); + } + } + ++ /** ++ * Return the button's "focusTraversable" property. This property controls ++ * whether or not the button can receive focus when the user attempts to ++ * traverse the focus hierarchy. ++ * ++ * @return The current "focusTraversable" property ++ */ + public boolean isFocusTraversable() + { +- //Identifies whether or not this component can receive the focus. + return true; + } + +- ++ /** ++ * Verifies that a particular key is one of the valid constants used for ++ * describing horizontal alignment and positioning. The valid constants ++ * are the following members of {@link SwingConstants}: ++ * RIGHT, LEFT, CENTER, ++ * LEADING or TRAILING. ++ * ++ * @param key The key to check ++ * @param exception A message to include in an IllegalArgumentException ++ * ++ * @return the value of key ++ * ++ * @throws IllegalArgumentException If key is not one of the valid constants ++ * ++ * @see setHorizontalTextPosition() ++ * @see setHorizontalAlignment() ++ */ + protected int checkHorizontalKey(int key, String exception) + { +- // Verify that key is a legal value for the horizontalAlignment properties. +- return 0; ++ switch (key) ++ { ++ case SwingConstants.RIGHT: ++ case SwingConstants.LEFT: ++ case SwingConstants.CENTER: ++ case SwingConstants.LEADING: ++ case SwingConstants.TRAILING: ++ break; ++ default: ++ throw new IllegalArgumentException(exception); ++ } ++ return key; + } + ++ /** ++ * Verifies that a particular key is one of the valid constants used for ++ * describing vertical alignment and positioning. The valid constants are ++ * the following members of {@link SwingConstants}: TOP, ++ * BOTTOM or CENTER. ++ * ++ * @param key The key to check ++ * @param exception A message to include in an IllegalArgumentException ++ * ++ * @return the value of key ++ * ++ * @throws IllegalArgumentException If key is not one of the valid constants ++ * ++ * @see setVerticalTextPosition() ++ * @see setVerticalAlignment() ++ */ + protected int checkVerticalKey(int key, String exception) + { +- // Ensures that the key is a valid. +- return 0; ++ switch (key) ++ { ++ case SwingConstants.TOP: ++ case SwingConstants.BOTTOM: ++ case SwingConstants.CENTER: ++ break; ++ default: ++ throw new IllegalArgumentException(exception); ++ } ++ return key; + } + ++ /** ++ * Configure various properties of the button by reading properties ++ * of an {@link Action}. The mapping of properties is as follows: ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ *
    Action keyed property AbstractButton property
    NAME text
    SMALL_ICON icon
    SHORT_DESCRIPTION toolTipText
    MNEMONIC_KEY mnemonic
    ACTION_COMMAND_KEY actionCommand
    ++ * ++ *

    In addition, this method always sets the button's "enabled" property to ++ * the value of the Action's "enabled" property.

    ++ * ++ *

    If the provided Action is null, the text, icon, and ++ * toolTipText properties of the button are set to null, and ++ * the "enabled" property is set to true; the mnemonic and ++ * actionCommand properties are unchanged.

    ++ * ++ * @param a An Action to configure the button from ++ */ + protected void configurePropertiesFromAction(Action a) + { +- //Factory method which sets the ActionEvent source's properties according to values from the Action instance. ++ if (a == null) ++ { ++ setText(null); ++ setIcon(null); ++ setEnabled(true); ++ setToolTipText(null); ++ } ++ else ++ { ++ setText((String)(a.getValue(Action.NAME))); ++ setIcon((Icon)(a.getValue(Action.SMALL_ICON))); ++ setEnabled(a.isEnabled()); ++ setToolTipText((String)(a.getValue(Action.SHORT_DESCRIPTION))); ++ if (a.getValue(Action.MNEMONIC_KEY) != null) ++ setMnemonic(((Integer)(a.getValue(Action.MNEMONIC_KEY))).intValue()); ++ String actionCommand = (String)(a.getValue(Action.ACTION_COMMAND_KEY)); ++ ++ // Set actionCommand to button's text by default if it is not specified ++ if (actionCommand != null) ++ setActionCommand((String)(a.getValue(Action.ACTION_COMMAND_KEY))); ++ else ++ setActionCommand(getText()); ++ } + } + ++ /** ++ *

    A factory method which should return an {@link ActionListener} that ++ * propagates events from the button's {@link ButtonModel} to any of the ++ * button's ActionListeners. By default, this is an inner class which ++ * calls {@link AbstractButton.fireActionPerformed} with a modified copy ++ * of the incoming model {@link ActionEvent}.

    ++ * ++ *

    The button calls this method during construction, stores the ++ * resulting ActionListener in its actionListener member ++ * field, and subscribes it to the button's model. If the button's model ++ * is changed, this listener is unsubscribed from the old model and ++ * subscribed to the new one.

    ++ * ++ * @return A new ActionListener ++ */ + protected ActionListener createActionListener() + { + return new ActionListener() + { +- public void actionPerformed(ActionEvent e) { } ++ public void actionPerformed(ActionEvent e) ++ { ++ AbstractButton.this.fireActionPerformed(e); ++ } + }; + } + ++ /** ++ *

    A factory method which should return a {@link PropertyChangeListener} ++ * that accepts changes to the specified {@link Action} and reconfigure ++ * the {@link AbstractButton}, by default using the {@link ++ * configurePropertiesFromAction} method.

    ++ * ++ *

    The button calls this method whenever a new Action is assigned to ++ * the button's "action" property, via {@link setAction}, and stores the ++ * resulting PropertyChangeListener in its ++ * actionPropertyChangeListener member field. The button ++ * then subscribes the listener to the button's new action. If the ++ * button's action is changed subsequently, the listener is unsubscribed ++ * from the old action and subscribed to the new one.

    ++ * ++ * @param a The Action which will be listened to, and which should be ++ * the same as the source of any PropertyChangeEvents received by the ++ * new listener returned from this method. ++ * ++ * @return A new PropertyChangeListener ++ */ + protected PropertyChangeListener createActionPropertyChangeListener(Action a) + { +- //Factory method which creates the PropertyChangeListener used to update the ActionEvent source as properties change on its Action instance. +- return null; ++ return new PropertyChangeListener() ++ { ++ public void propertyChange(PropertyChangeEvent e) ++ { ++ Action act = (Action) (e.getSource()); ++ if (e.getPropertyName().equals(AbstractAction.ENABLED_PROPERTY)) ++ setEnabled(act.isEnabled()); ++ else if (e.getPropertyName().equals(Action.NAME)) ++ setText((String)(act.getValue(Action.NAME))); ++ else if (e.getPropertyName().equals(Action.SMALL_ICON)) ++ setIcon((Icon)(act.getValue(Action.SMALL_ICON))); ++ else if (e.getPropertyName().equals(Action.SHORT_DESCRIPTION)) ++ setToolTipText((String)(act.getValue(Action.SHORT_DESCRIPTION))); ++ else if (e.getPropertyName().equals(Action.MNEMONIC_KEY)) ++ if (act.getValue(Action.MNEMONIC_KEY) != null) ++ setMnemonic(((Integer)(act.getValue(Action.MNEMONIC_KEY))).intValue()); ++ else if (e.getPropertyName().equals(Action.ACTION_COMMAND_KEY)) ++ setActionCommand((String)(act.getValue(Action.ACTION_COMMAND_KEY))); ++ } ++ }; + } + ++ /** ++ *

    Factory method which creates a {@link ChangeListener}, used to ++ * subscribe to ChangeEvents from the button's model. Subclasses of ++ * AbstractButton may wish to override the listener used to subscribe to ++ * such ChangeEvents. By default, the listener just propagates the ++ * {@link ChangeEvent} to the button's ChangeListeners, via the {@link ++ * AbstractButton.fireStateChanged} method.

    ++ * ++ *

    The button calls this method during construction, stores the ++ * resulting ChangeListener in its changeListener member ++ * field, and subscribes it to the button's model. If the button's model ++ * is changed, this listener is unsubscribed from the old model and ++ * subscribed to the new one.

    ++ * ++ * @return The new ChangeListener ++ */ + protected ChangeListener createChangeListener() + { +- // Subclasses that want to handle ChangeEvents differently can override this to return another ChangeListener implementation. + return new ChangeListener() + { +- public void stateChanged(ChangeEvent e) { } ++ public void stateChanged(ChangeEvent e) ++ { ++ AbstractButton.this.fireStateChanged(e); ++ AbstractButton.this.repaint(); ++ } + }; + } + ++ /** ++ *

    Factory method which creates a {@link ItemListener}, used to ++ * subscribe to ItemEvents from the button's model. Subclasses of ++ * AbstractButton may wish to override the listener used to subscribe to ++ * such ItemEvents. By default, the listener just propagates the ++ * {@link ItemEvent} to the button's ItemListeners, via the {@link ++ * AbstractButton.fireItemStateChanged} method.

    ++ * ++ *

    The button calls this method during construction, stores the ++ * resulting ItemListener in its changeListener member ++ * field, and subscribes it to the button's model. If the button's model ++ * is changed, this listener is unsubscribed from the old model and ++ * subscribed to the new one.

    ++ * ++ *

    Note that ItemEvents are only generated from the button's model ++ * when the model's selected property changes. If you want to ++ * subscribe to other properties of the model, you must subscribe to ++ * ChangeEvents. ++ * ++ * @return The new ItemListener ++ */ + protected ItemListener createItemListener() + { + return new ItemListener() + { +- public void itemStateChanged(ItemEvent e) { } ++ public void itemStateChanged(ItemEvent e) ++ { ++ AbstractButton.this.fireItemStateChanged(e); ++ } + }; + } + ++ /** ++ * Programmatically perform a "click" on the button: arming, pressing, ++ * waiting, un-pressing, and disarming the model. ++ */ + public void doClick() + { + doClick(100); + } + ++ /** ++ * Programmatically perform a "click" on the button: arming, pressing, ++ * waiting, un-pressing, and disarming the model. ++ * ++ * @param pressTime The number of milliseconds to wait in the pressed state ++ */ + public void doClick(int pressTime) + { +- //Toolkit.tlkBeep (); +- //Programmatically perform a "click". +- } +- +- public Icon getDisabledSelectedIcon() ++ getModel().setArmed(true); ++ getModel().setPressed(true); ++ try + { +- //Returns the icon used by the button when it's disabled and selected. +- return disabled_selected_button; ++ java.lang.Thread.sleep(pressTime); + } +- +- public Icon getRolloverIcon() ++ catch (java.lang.InterruptedException e) + { +- // Returns the rollover icon for the button. +- return null; ++ // probably harmless + } +- +- Icon getRolloverSelectedIcon() +- { +- // Returns the rollover selection icon for the button. +- return null; ++ getModel().setPressed(false); ++ getModel().setArmed(false); + } + +- Icon getSelectedIcon() ++ /** ++ * Return the button's disabled selected icon. The look and feel class ++ * should paint this icon when the "enabled" property of the button's model ++ * is false and its "selected" property is ++ * true. This icon can be null, in which case ++ * it is synthesized from the button's selected icon. ++ * ++ * @return The current disabled selected icon ++ */ ++ public Icon getDisabledSelectedIcon() + { +- // Returns the selected icon for the button. +- return selected_button; ++ return disabledSelectedIcon; + } + +- public Object[] getSelectedObjects() ++ /** ++ * Set the button's disabled selected icon. The look and feel class ++ * should paint this icon when the "enabled" property of the button's model ++ * is false and its "selected" property is ++ * true. This icon can be null, in which case ++ * it is synthesized from the button's selected icon. ++ * ++ * @param disabledSelectedIcon The new disabled selected icon ++ */ ++ public void setDisabledSelectedIcon(Icon disabledSelectedIcon) + { +- //Returns an array (length 1) containing the label or null if the button is not selected. +- return null; +- } +- +- public boolean imageUpdate(Image img, int infoflags, int x, int y, int w, int h) ++ Icon old = disabledSelectedIcon; ++ disabledSelectedIcon = disabledSelectedIcon; ++ if (old != disabledSelectedIcon) + { +- //This is overridden to return false if the current Icon's Image is not equal to the passed in Image img. +- return current_icon == img; ++ firePropertyChange(DISABLED_SELECTED_ICON_CHANGED_PROPERTY, old, ++ disabledSelectedIcon); ++ revalidate(); ++ repaint(); + } +- +- public boolean isContentAreaFilled() +- { +- // Checks whether the "content area" of the button should be filled. +- return false; + } + +- protected void paintBorder(Graphics g) +- { +- // Paint the button's border if BorderPainted property is true. +- if (isBorderPainted()) +- super.paintBorder(g); +- } + +- protected String paramString() ++ /** ++ * Return the button's rollover icon. The look and feel class should ++ * paint this icon when the "rolloverEnabled" property of the button is ++ * true and the mouse rolls over the button. ++ * ++ * @return The current rollover icon ++ */ ++ public Icon getRolloverIcon() + { +- // Returns a string representation of this AbstractButton. +- return "AbstractButton"; ++ return rolloverIcon; + } + +- public void setContentAreaFilled(boolean b) ++ /** ++ * Set the button's rollover icon. The look and feel class should ++ * paint this icon when the "rolloverEnabled" property of the button is ++ * true and the mouse rolls over the button. ++ * ++ * @param rolloverIcon The new rollover icon ++ */ ++ public void setRolloverIcon(Icon r) + { +- //Sets whether the button should paint the content area or leave it transparent. ++ Icon old = rolloverIcon; ++ rolloverIcon = r; ++ if (old != rolloverIcon) ++ { ++ firePropertyChange(ROLLOVER_ICON_CHANGED_PROPERTY, old, ++ rolloverIcon); ++ revalidate(); ++ repaint(); ++ } + } + +- public void setDisabledSelectedIcon(Icon disabledSelectedIcon) ++ /** ++ * Return the button's rollover selected icon. The look and feel class ++ * should paint this icon when the "rolloverEnabled" property of the button ++ * is true, the "selected" property of the button's model is ++ * true, and the mouse rolls over the button. ++ * ++ * @return The current rollover selected icon ++ */ ++ public Icon getRolloverSelectedIcon() + { +- // Sets the disabled selection icon for the button. ++ return rolloverSelectedIcon; + } + +- public void setRolloverIcon(Icon rolloverIcon) ++ /** ++ * Set the button's rollover selected icon. The look and feel class ++ * should paint this icon when the "rolloverEnabled" property of the button ++ * is true, the "selected" property of the button's model is ++ * true, and the mouse rolls over the button. ++ * ++ * @param rolloverSelectedIcon The new rollover selected icon ++ */ ++ public void setRolloverSelectedIcon(Icon r) + { +- // Sets the rollover icon for the button. +- } +- public void setRolloverSelectedIcon(Icon rolloverSelectedIcon) ++ Icon old = rolloverSelectedIcon; ++ rolloverSelectedIcon = r; ++ if (old != rolloverSelectedIcon) + { +- // Sets the rollover selected icon for the button. ++ firePropertyChange(ROLLOVER_SELECTED_ICON_CHANGED_PROPERTY, old, ++ rolloverSelectedIcon); ++ revalidate(); ++ repaint(); + } +- +- public void setSelectedIcon(Icon selectedIcon) +- { +- // Sets the selected icon for the button. + } + +- public void setUI(ButtonUI ui) +- { // Sets the L&F object that renders this component. +- super.setUI(ui); +- } + +- public ButtonUI getUI() ++ /** ++ * Return the button's selected icon. The look and feel class should ++ * paint this icon when the "selected" property of the button's model is ++ * true, and either the "rolloverEnabled" property of the ++ * button is false or the mouse is not currently rolled ++ * over the button. ++ * ++ * @return The current selected icon ++ */ ++ public Icon getSelectedIcon() + { +- //Returns the L&F object that renders this component. +- return (ButtonUI) ui; ++ return selectedIcon; + } + +- public void updateUI() ++ /** ++ * Set the button's selected icon. The look and feel class should ++ * paint this icon when the "selected" property of the button's model is ++ * true, and either the "rolloverEnabled" property of the ++ * button is false or the mouse is not currently rolled ++ * over the button. ++ * ++ * @param selectedIcon The new selected icon ++ */ ++ public void setSelectedIcon(Icon s) + { +- /* +- // Notification from the UIFactory that the L&F has changed. +- if (getUI() == null) ++ Icon old = selectedIcon; ++ selectedIcon = s; ++ if (old != selectedIcon) + { +- setUI(getUI()); ++ firePropertyChange(SELECTED_ICON_CHANGED_PROPERTY, old, ++ selectedIcon); ++ revalidate(); ++ repaint(); + } +- */ + } + +- protected void processActionEvent(ActionEvent e) ++ /** ++ * Returns an single-element array containing the "text" property of the ++ * button if the "selected" property of the button's model is ++ * true, otherwise returns null. ++ * ++ * @return The button's "selected object" array ++ */ ++ public Object[] getSelectedObjects() + { +- System.out.println("PROCESS-ACTION-EVENT: " + e); ++ if (isSelected()) ++ { ++ Object[] objs = new Object[1]; ++ objs[0] = getText(); ++ return objs; + } +- +- protected void processMouseEvent(MouseEvent e) ++ else + { +- // System.out.println("PROCESS-MOUSE-EVENT: " + e + ", PRESSED-IN-MODEL="+getModel().isPressed()); ++ return null; ++ } ++ } + +- switch (e.getID()) +- { +- case MouseEvent.MOUSE_MOVED: ++ /** ++ * Called when image data becomes available for one of the button's icons. ++ * ++ * @param img The image being updated ++ * @param infoflags One of the constant codes in {@link ImageObserver} used to describe ++ * updated portions of an image. ++ * @param x X coordinate of the region being updated ++ * @param y Y coordinate of the region being updated ++ * @param w Width of the region beign updated ++ * @param h Height of the region being updated ++ * ++ * @return true if img is equal to the button's current ++ * icon, otherwise false ++ */ ++ public boolean imageUpdate(Image img, int infoflags, int x, int y, int w, ++ int h) + { +- break; ++ return current_icon == img; + } +- case MouseEvent.MOUSE_PRESSED: +- { +- if (! isEnabled()) ++ ++ /** ++ * Returns the value of the button's "contentAreaFilled" property. This ++ * property indicates whether the area surrounding the text and icon of ++ * the button should be filled by the look and feel class. If this ++ * property is false, the look and feel class should leave ++ * the content area transparent. ++ * ++ * @return The current value of the "contentAreaFilled" property ++ */ ++ public boolean isContentAreaFilled() + { +- System.out.println("button not enabled, ignoring press"); ++ return contentAreaFilled; + } +- else ++ ++ /** ++ * Sets the value of the button's "contentAreaFilled" property. This ++ * property indicates whether the area surrounding the text and icon of ++ * the button should be filled by the look and feel class. If this ++ * property is false, the look and feel class should leave ++ * the content area transparent. ++ * ++ * @param b The new value of the "contentAreaFilled" property ++ */ ++ public void setContentAreaFilled(boolean b) + { +- System.out.println("telling model:press: " + getModel()); +- getModel().setPressed(true); ++ boolean old = contentAreaFilled; ++ contentAreaFilled = b; ++ if (b != old) ++ { ++ firePropertyChange(CONTENT_AREA_FILLED_CHANGED_PROPERTY, old, b); ++ revalidate(); + repaint(); + } +- break; + } + +- case MouseEvent.MOUSE_RELEASED: +- { +- if (! isEnabled()) ++ /** ++ * Paints the button's border, if the button's "borderPainted" property is ++ * true, by out calling to the button's look and feel class. ++ * ++ * @param g The graphics context used to paint the border ++ */ ++ protected void paintBorder(Graphics g) + { +- System.out.println("button not enabled, ignoring release"); ++ if (isBorderPainted()) ++ super.paintBorder(g); + } +- else +- { +- int flags = 0; + +- System.out.println(" XXX--> " + getActionCommand()); ++ /** ++ * Returns a string, used only for debugging, which identifies or somehow ++ * represents this button. The exact value is implementation-defined. ++ * ++ * @return A string representation of the button ++ */ ++ protected String paramString() ++ { ++ return "AbstractButton"; ++ } + +- fireActionPerformed(new ActionEvent(this, +- ActionEvent.ACTION_PERFORMED, +- getActionCommand(), +- flags)); + +- //System.out.println("telling model:release"); +- getModel().setPressed(false); +- repaint(); +- } +- break; +- } +- case MouseEvent.MOUSE_CLICKED: ++ /** ++ * Set the "UI" property of the button, which is a look and feel class ++ * responsible for handling the button's input events and painting it. ++ * ++ * @param ui The new "UI" property ++ */ ++ public void setUI(ButtonUI ui) + { +- break; ++ super.setUI(ui); + } ++ ++ /** ++ * Set the "UI" property of the button, which is a look and feel class ++ * responsible for handling the button's input events and painting it. ++ * ++ * @return The current "UI" property ++ */ ++ public ButtonUI getUI() ++ { ++ return (ButtonUI) ui; + } ++ ++ /** ++ * Set the "UI" property to a class constructed, via the {@link ++ * UIManager}, from the current look and feel. This should be overridden ++ * for each subclass of AbstractButton, to retrieve a suitable {@link ++ * ButtonUI} look and feel class. ++ */ ++ public void updateUI() ++ { ++ } ++ ++ /** ++ * Returns the current time in milliseconds in which clicks gets coalesced ++ * into a single ActionEvent. ++ * ++ * @return the time in milliseconds ++ * ++ * @since 1.4 ++ */ ++ public long getMultiClickThreshhold() ++ { ++ return multiClickThreshhold; ++ } ++ ++ /** ++ * Sets the time in milliseconds in which clicks gets coalesced into a single ++ * ActionEvent. ++ * ++ * @param threshhold the time in milliseconds ++ * ++ * @since 1.4 ++ */ ++ public void setMultiClickThreshhold(long threshhold) ++ { ++ if (threshhold < 0) ++ throw new IllegalArgumentException(); ++ ++ multiClickThreshhold = threshhold; + } + } +Index: javax/swing/AbstractCellEditor.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/AbstractCellEditor.java,v +retrieving revision 1.3 +diff -u -r1.3 AbstractCellEditor.java +--- javax/swing/AbstractCellEditor.java 11 Jun 2003 13:20:39 -0000 1.3 ++++ javax/swing/AbstractCellEditor.java 6 Sep 2004 16:35:53 -0000 +@@ -1,5 +1,5 @@ + /* AbstractCellEditor.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -54,24 +54,15 @@ + { + static final long serialVersionUID = -1048006551406220959L; + +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * listenerList +- */ +- protected EventListenerList listenerList; +- +- /** +- * changeEvent +- */ +- protected transient ChangeEvent changeEvent; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- ++ /** ++ * listenerList ++ */ ++ protected EventListenerList listenerList; ++ ++ /** ++ * changeEvent ++ */ ++ protected transient ChangeEvent changeEvent; + + /** + * Constructor AbstractCellEditor +@@ -80,11 +71,6 @@ + // TODO + } // AbstractCellEditor() + +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- + /** + * isCellEditable + * @param event TODO +@@ -118,41 +104,59 @@ + // TODO + } // cancelCellEditing() + +- /** +- * addCellEditorListener +- * @param listener TODO +- */ +- public void addCellEditorListener(CellEditorListener listener) { +- // TODO +- } // addCellEditorListener() +- +- /** +- * removeCellEditorListener +- * @param listener TODO +- */ +- public void removeCellEditorListener(CellEditorListener listener) { +- // TODO +- } // removeCellEditorListener() +- +- /** +- * fireEditingStopped +- */ +- protected void fireEditingStopped() { +- // TODO +- } // fireEditingStopped() +- +- /** +- * fireEditingCanceled +- */ +- protected void fireEditingCanceled() { +- // TODO +- } // fireEditingCanceled() +- +- /** +- * getCellEditorValue +- * @returns Object +- */ +- public abstract Object getCellEditorValue(); +- +- +-} // AbstractCellEditor ++ /** ++ * addCellEditorListener ++ * ++ * @param listener The listener to add ++ */ ++ public void addCellEditorListener (CellEditorListener listener) ++ { ++ listenerList.add (CellEditorListener.class, listener); ++ } ++ ++ /** ++ * removeCellEditorListener ++ * ++ * @param listener The listener to remove ++ */ ++ public void removeCellEditorListener (CellEditorListener listener) ++ { ++ listenerList.remove (CellEditorListener.class, listener); ++ } ++ ++ /** ++ * getCellEditorListeners ++ * ++ * @since 1.4 ++ */ ++ public CellEditorListener[] getCellEditorListeners() ++ { ++ return (CellEditorListener[]) listenerList.getListeners (CellEditorListener.class); ++ } ++ ++ /** ++ * fireEditingStopped ++ */ ++ protected void fireEditingStopped() ++ { ++ CellEditorListener[] listeners = getCellEditorListeners(); ++ ++ for (int index = 0; index < listeners.length; index++) ++ { ++ listeners [index].editingStopped (changeEvent); ++ } ++ } ++ ++ /** ++ * fireEditingCanceled ++ */ ++ protected void fireEditingCanceled() ++ { ++ CellEditorListener[] listeners = getCellEditorListeners(); ++ ++ for (int index = 0; index < listeners.length; index++) ++ { ++ listeners [index].editingCanceled (changeEvent); ++ } ++ } ++} +Index: javax/swing/AbstractListModel.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/AbstractListModel.java,v +retrieving revision 1.5 +diff -u -r1.5 AbstractListModel.java +--- javax/swing/AbstractListModel.java 11 Jun 2003 13:20:39 -0000 1.5 ++++ javax/swing/AbstractListModel.java 6 Sep 2004 16:35:53 -0000 +@@ -40,57 +40,64 @@ + import java.io.Serializable; + import java.util.EventListener; + import javax.swing.event.EventListenerList; +-import javax.swing.event.ListDataListener; + import javax.swing.event.ListDataEvent; ++import javax.swing.event.ListDataListener; ++ + + /** + * AbstractListModel +- * A2uthor Ronald Veldema +- * @author Andrew Selkirk +- * @version 1.0 ++ * ++ * @author Ronald Veldema ++ * @author Andrew Selkirk ++ * @version 1.0 + */ +-public abstract class AbstractListModel +- implements ListModel, Serializable ++public abstract class AbstractListModel implements ListModel, Serializable + { + static final long serialVersionUID = -3285184064379168730L; + +- /** +- * listenerList +- */ +- protected EventListenerList listenerList = new EventListenerList (); +- +- /** +- * Constructor AbstractListModel +- */ +- public AbstractListModel () ++ /** List of ListDataListeners called for each change to the list. */ ++ protected EventListenerList listenerList; ++ ++ public AbstractListModel() + { ++ listenerList = new EventListenerList(); + } + + /** +- * addListDataListener +- * @param listener TODO ++ * Add a listener object to this model. The listener will be called ++ * any time the set of elements in the model is changed. ++ * ++ * @param listener The listener to add + */ +- public void addListDataListener(ListDataListener listener) ++ public void addListDataListener(ListDataListener listener) + { +- listenerList.add (ListDataListener.class, listener); ++ listenerList.add(ListDataListener.class, listener); + } + + /** +- * removeListDataListener +- * @param listener TODO ++ * Add a listener object to this model. The listener will no longer be ++ * called when the set of elements in the model is changed. ++ * ++ * @param listener The listener to remove + */ + public void removeListDataListener(ListDataListener listener) + { +- listenerList.remove (ListDataListener.class, listener); ++ listenerList.remove(ListDataListener.class, listener); + } + + /** +- * fireContentsChanged +- * @param source TODO +- * @param startIndex TODO +- * @param endIndex TODO ++ * Call {@link ListDataListener#contentsChanged} on each element of the ++ * {@link listenerList} which is a {@link ListDataListener}. The event ++ * fired has type {@ListDataEvent.CONTENTS_CHANGED} and represents a ++ * change to the data elements in the range [startIndex, endIndex] ++ * inclusive. ++ * ++ * @param source The source of the change, typically this ++ * @param startIndex The index of the first element which changed ++ * @param endIndex The index of the last element which changed + */ +- protected void fireContentsChanged(Object source, int startIndex, int endIndex) ++ protected void fireContentsChanged(Object source, int startIndex, ++ int endIndex) + { + // Variables + ListDataEvent event; +@@ -100,10 +107,10 @@ + + // Create Event + event = new ListDataEvent(source, ListDataEvent.CONTENTS_CHANGED, +- startIndex, endIndex); ++ startIndex, endIndex); + + // Get Listeners +- listeners = getListDataListeners (); ++ listeners = getListDataListeners(); + + // Process Listeners + for (index = 0; index < listeners.length; index++) +@@ -114,12 +121,17 @@ + } + + /** +- * fireIntervalAdded +- * @param source TODO +- * @param startIndex TODO +- * @param endIndex TODO ++ * Call {@link ListDataListener#intervalAdded} on each element of the ++ * {@link listenerList} which is a {@link ListDataListener}. The event ++ * fired has type {@ListDataEvent.INTERVAL_ADDED} and represents an ++ * addition of the data elements in the range [startIndex, endIndex] ++ * inclusive. ++ * ++ * @param source The source of the change, typically this ++ * @param startIndex The index of the first new element ++ * @param endIndex The index of the last new element + */ +- protected void fireIntervalAdded (Object source, int startIndex, int endIndex) ++ protected void fireIntervalAdded(Object source, int startIndex, int endIndex) + { + // Variables + ListDataEvent event; +@@ -128,27 +140,32 @@ + int index; + + // Create Event +- event = new ListDataEvent (source, ListDataEvent.INTERVAL_ADDED, startIndex, +- endIndex); ++ event = new ListDataEvent(source, ListDataEvent.INTERVAL_ADDED, ++ startIndex, endIndex); + + // Get Listeners +- listeners = getListDataListeners (); ++ listeners = getListDataListeners(); + + // Process Listeners + for (index = 0; index < listeners.length; index++) + { +- listener = listeners [index]; +- listener.intervalAdded (event); ++ listener = listeners[index]; ++ listener.intervalAdded(event); + } + } + + /** +- * fireIntervalRemoved +- * @param source TODO +- * @param startIndex TODO +- * @param endIndex TODO ++ * Call {@link ListDataListener#intervalRemoved} on each element of the ++ * {@link listenerList} which is a {@link ListDataListener}. The event ++ * fired has type {@ListDataEvent.INTERVAL_REMOVED} and represents a ++ * removal of the data elements in the range [startIndex, endIndex] ++ * inclusive. ++ * ++ * @param source The source of the change, typically this ++ * @param startIndex The index of the first element removed ++ * @param endIndex The index of the last element removed + */ +- protected void fireIntervalRemoved (Object source, int startIndex, ++ protected void fireIntervalRemoved(Object source, int startIndex, + int endIndex) + { + // Variables +@@ -158,35 +175,41 @@ + int index; + + // Create Event +- event = new ListDataEvent (source, ListDataEvent.INTERVAL_REMOVED, +- startIndex, endIndex); ++ event = new ListDataEvent(source, ListDataEvent.INTERVAL_REMOVED, ++ startIndex, endIndex); + + // Get Listeners +- listeners = getListDataListeners (); ++ listeners = getListDataListeners(); + + // Process Listeners + for (index = 0; index < listeners.length; index++) + { +- listener = listeners [index]; +- listener.intervalRemoved (event); ++ listener = listeners[index]; ++ listener.intervalRemoved(event); + } + } + + /** +- * getListeners +- * @param listenerType TODO +- * @returns EventListener[] ++ * Return the subset of {@link EventListener} objects found in this ++ * object's {@link listenerList} which are elements of the specified ++ * type. ++ * ++ * @param listenerType The type of listeners to select ++ * ++ * @return The set of listeners of the specified type + */ +- public EventListener[] getListeners (Class listenerType) ++ public EventListener[] getListeners(Class listenerType) + { +- return listenerList.getListeners (listenerType); ++ return listenerList.getListeners(listenerType); + } + + /** +- * getListDataListeners ++ * A synonym for getListeners(ListDataListener.class). ++ * ++ * @return The set of ListDataListeners found in the {@link listenerList} + */ +- public ListDataListener[] getListDataListeners () ++ public ListDataListener[] getListDataListeners() + { +- return (ListDataListener[]) getListeners (ListDataListener.class); ++ return (ListDataListener[]) getListeners(ListDataListener.class); + } + } +Index: javax/swing/AbstractSpinnerModel.java +=================================================================== +RCS file: javax/swing/AbstractSpinnerModel.java +diff -N javax/swing/AbstractSpinnerModel.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/AbstractSpinnerModel.java 6 Sep 2004 16:35:53 -0000 +@@ -0,0 +1,115 @@ ++/* AbstractSpinnerModel.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing; ++ ++import java.util.EventListener; ++import javax.swing.event.ChangeEvent; ++import javax.swing.event.ChangeListener; ++import javax.swing.event.EventListenerList; ++ ++/** ++ * AbstractSpinnerModel ++ * @author Ka-Hing Cheung ++ * @version 1.0 ++ */ ++public abstract class AbstractSpinnerModel implements SpinnerModel ++{ ++ private ChangeEvent changeEvent = new ChangeEvent(this); ++ ++ protected EventListenerList listenerList = new EventListenerList(); ++ ++ /** ++ * Creates an AbstractSpinnerModel. ++ */ ++ public AbstractSpinnerModel() ++ { ++ } ++ ++ /** ++ * Adds a ChangeListener. ++ * ++ * @param listener the listener to add ++ */ ++ public void addChangeListener(ChangeListener listener) ++ { ++ listenerList.add(ChangeListener.class, listener); ++ } ++ ++ /** ++ * Gets all the listeners that are of a particular type. ++ * ++ * @param c the type of listener ++ * @return the listeners that are of the specific type ++ */ ++ public EventListener[] getListeners(Class c) ++ { ++ return listenerList.getListeners(c); ++ } ++ ++ /** ++ * Gets all the ChangeListeners. ++ * ++ * @return all the ChangeListeners ++ */ ++ public ChangeListener[] getChangeListeners() ++ { ++ return (ChangeListener[]) listenerList.getListeners(ChangeListener.class); ++ } ++ ++ /** ++ * Remove a particular listener. ++ * ++ * @param listener the listener to remove ++ */ ++ public void removeChangeListener(ChangeListener listener) ++ { ++ listenerList.remove(ChangeListener.class, listener); ++ } ++ ++ /** ++ * Fires a ChangeEvent to all the ChangeListeners ++ * added to this model ++ */ ++ protected void fireStateChanged() ++ { ++ ChangeListener[] listeners = getChangeListeners(); ++ ++ for(int i = 0; i < listeners.length; ++i) ++ listeners[i].stateChanged(changeEvent); ++ } ++} +Index: javax/swing/ActionMap.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/ActionMap.java,v +retrieving revision 1.3 +diff -u -r1.3 ActionMap.java +--- javax/swing/ActionMap.java 9 Jan 2004 10:18:47 -0000 1.3 ++++ javax/swing/ActionMap.java 6 Sep 2004 16:35:53 -0000 +@@ -42,25 +42,21 @@ + import java.io.ObjectOutputStream; + import java.io.Serializable; + import java.util.Arrays; +-import java.util.Collection; + import java.util.HashMap; + import java.util.HashSet; + import java.util.Iterator; + import java.util.Map; + import java.util.Set; + ++ + /** +- * ActionMap + * @author Andrew Selkirk +- * @version 1.0 ++ * @author Michael Koch + */ +-public class ActionMap implements Serializable ++public class ActionMap ++ implements Serializable + { +- static final long serialVersionUID = -6277518704513986346L; +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- ++ private static final long serialVersionUID = -6277518704513986346L; + + /** + * actionMap +@@ -70,170 +66,146 @@ + /** + * parent + */ +- private ActionMap parent = null; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- ++ private ActionMap parent; + + /** +- * Constructor ActionMap ++ * Creates a new ActionMap instance. + */ +- public ActionMap() { +- } // ActionMap() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- ++ public ActionMap() ++ { ++ } + + /** +- * get +- * @param key TODO +- * @returns Action ++ * Returns an action associated with an object. ++ * ++ * @param key the key of the enty ++ * ++ * @return the action associated with key, may be null + */ +- public Action get(Object key) { ++ public Action get(Object key) ++ { ++ Object result = actionMap.get(key); + +- // Variables +- Object result; +- +- // Check Local store +- result = actionMap.get(key); +- +- // Check Parent +- if (result == null) { +- result = parent.get(key); +- } // if ++ if (result == null && parent != null) ++ result = parent.get(key); + + return (Action) result; +- +- } // get() ++ } + + /** +- * put +- * @param key TODO +- * @param action TODO +- */ +- public void put(Object key, Action action) { +- if (action == null) { ++ * Puts a new Action into the ActionMap. ++ * If action is null an existing entry will be removed. ++ * ++ * @param key the key for the entry ++ * @param action the action. ++ */ ++ public void put(Object key, Action action) ++ { ++ if (action == null) + actionMap.remove(key); +- } else { ++ else + actionMap.put(key, action); +- } // if +- } // put() ++ } + + /** +- * remove +- * @param key TODO ++ * Remove an entry from the ActionMap. ++ * ++ * @param key the key of the entry to remove + */ +- public void remove(Object key) { ++ public void remove(Object key) ++ { + actionMap.remove(key); +- } // remove() ++ } + + /** +- * getParent +- * @returns ActionMap ++ * Returns the parent of this ActionMap. ++ * ++ * @return the parent, may be null. + */ +- public ActionMap getParent() { ++ public ActionMap getParent() ++ { + return parent; +- } // getParent() ++ } + + /** +- * setParent +- * @param parentMap TODO ++ * Sets a parent for this ActionMap. ++ * ++ * @param parentMap the new parent + */ +- public void setParent(ActionMap parentMap) { ++ public void setParent(ActionMap parentMap) ++ { + parent = parentMap; +- } // setParent() ++ } + + /** +- * size +- * @returns int ++ * Returns the number of entries in this ActionMap. ++ * ++ * @return the number of entries + */ +- public int size() { ++ public int size() ++ { + return actionMap.size(); +- } // size() ++ } + + /** +- * clear ++ * Clears the ActionMap. + */ +- public void clear() { ++ public void clear() ++ { + actionMap.clear(); +- } // clear() ++ } + + /** +- * keys +- * @returns Object[] ++ * Returns all keys of entries in this ActionMap. ++ * ++ * @return an array of keys + */ +- public Object[] keys() { +- return convertSet(actionMap.keySet()); +- } // keys() ++ public Object[] keys() ++ { ++ return actionMap.keySet().toArray(); ++ } + + /** +- * allKeys +- * @returns Object[] ++ * Returns all keys of entries in this ActionMap ++ * and all its parents. ++ * ++ * @return an array of keys + */ +- public Object[] allKeys() { +- +- // Variables +- Set set; +- +- // Initialize +- set = new HashSet(); ++ public Object[] allKeys() ++ { ++ Set set = new HashSet(); + +- // Get Key Sets +- if (parent != null) { ++ if (parent != null) + set.addAll(Arrays.asList(parent.allKeys())); +- } // if +- set.addAll(actionMap.keySet()); + +- return convertSet(set); +- +- } // allKeys() +- +- private Object[] convertSet(Set set) { +- +- // Variables +- int index; +- Iterator iterator; +- Object[] keys; +- +- // Create Final array +- keys = new Object[set.size()]; +- iterator = set.iterator(); +- index = 0; +- while (iterator.hasNext()) { +- keys[index++] = iterator.next(); +- } // while +- +- return keys; +- +- } // convertSet() +- +- +- //------------------------------------------------------------- +- // Interface: Serializable ------------------------------------ +- //------------------------------------------------------------- ++ set.addAll(actionMap.keySet()); ++ return set.toArray(); ++ } + + /** + * writeObject +- * @param stream TODO +- * @exception IOException TODO +- */ +- private void writeObject(ObjectOutputStream value0) throws IOException { ++ * ++ * @param stream the stream to write to ++ * ++ * @exception IOException If an error occurs ++ */ ++ private void writeObject(ObjectOutputStream stream) ++ throws IOException ++ { + // TODO +- } // writeObject() ++ } + + /** + * readObject +- * @param stream TODO +- * @exception ClassNotFoundException TODO +- * @exception IOException TODO +- */ +- private void readObject(ObjectInputStream value0) throws ClassNotFoundException, IOException { ++ * ++ * @param stream the stream to read from ++ * ++ * @exception ClassNotFoundException If the serialized class cannot be found ++ * @exception IOException If an error occurs ++ */ ++ private void readObject(ObjectInputStream stream) ++ throws ClassNotFoundException, IOException ++ { + // TODO +- } // readObject() +- +- +-} // ActionMap ++ } ++} +Index: javax/swing/Box.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/Box.java,v +retrieving revision 1.2 +diff -u -r1.2 Box.java +--- javax/swing/Box.java 11 Jun 2003 13:20:39 -0000 1.2 ++++ javax/swing/Box.java 6 Sep 2004 16:35:53 -0000 +@@ -1,5 +1,5 @@ + /* Box.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -39,17 +39,245 @@ + package javax.swing; + + import javax.accessibility.Accessible; ++import javax.accessibility.AccessibleContext; ++import javax.accessibility.AccessibleRole; ++import java.awt.LayoutManager; ++import java.awt.Component; ++import java.awt.Dimension; ++import java.awt.AWTError; + + /** +- * Needs some work I guess.... ++ * A component that uses a {@link BoxLayout} as Layout Manager. ++ * ++ * In addition to that, this class provides a set of static methods for ++ * creating some filler components ('struts' and 'glue') for use in ++ * containers that are laid out using BoxLayout. + * + * @author Ronald Veldema (rveldema@cs.vu.nl) + */ + public class Box extends JComponent implements Accessible + { +- Box(int a) ++ private static final long serialVersionUID = 1525417495883046342L; ++ ++ // FIXME: disable to make libjava compile; visibility rules are broken ++ protected class AccessibleBox // extends Container.AccessibleAWTContainer ++ { ++ private static final long serialVersionUID = -7775079816389931944L; ++ ++ protected AccessibleBox() ++ { ++ } ++ ++ public AccessibleRole getAccessibleRole() ++ { ++ return null; ++ } ++ } ++ ++ /** ++ * A component that servers as a filler in BoxLayout controlled containers. ++ */ ++ public static class Filler extends JComponent implements Accessible ++ { ++ private static final long serialVersionUID = -1204263191910183998L; ++ ++ // FIXME: disable to make libjava compile; visibility rules are broken ++ protected class AccessibleBoxFiller // extends Component.AccessibleAWTComponent ++ { ++ private static final long serialVersionUID = 164963348357479321L; ++ ++ protected AccessibleBoxFiller() ++ { ++ } ++ ++ public AccessibleRole getAccessibleRole() ++ { ++ return null; ++ } ++ } ++ ++ protected AccessibleContext accessibleContext; ++ ++ private transient Dimension min, pref, max; ++ ++ /** ++ * Creates a new instance of Filler. ++ * ++ * @param min the minimum size of the filler. ++ * @param pref the preferred size of the filler. ++ * @param max the maximum size of the filler. ++ */ ++ public Filler(Dimension min, Dimension pref, Dimension max) ++ { ++ changeShape(min, pref, max); ++ } ++ ++ /** ++ * Changes the dimensions of this Filler. ++ * ++ * @param min the new minimum size of the filler. ++ * @param pref the new preferred size of the filler. ++ * @param max the new maximum size of the filler. ++ */ ++ public void changeShape(Dimension min, Dimension pref, Dimension max) ++ { ++ this.min = min; ++ this.pref = pref; ++ this.max = max; ++ } ++ ++ public AccessibleContext getAccessibleContext() ++ { ++ // FIXME: disable to make libjava compile; visibility rules are broken ++ // if (accessibleContext == null) ++ // accessibleContext = new AccessibleBoxFiller(); ++ return accessibleContext; ++ } ++ ++ /** ++ * Returns the maximum size of this Filler. ++ * ++ * @return the maximum size of this Filler. ++ */ ++ public Dimension getMaximumSize() ++ { ++ return max; ++ } ++ ++ /** ++ * Returns the minimum size of this Filler. ++ * ++ * @return the minimum size of this Filler. ++ */ ++ public Dimension getMinimumSize() ++ { ++ return min; ++ } ++ ++ /** ++ * Returns the preferred size of this Filler. ++ * ++ * @return the preferred size of this Filler. ++ */ ++ public Dimension getPreferredSize() + { +- setLayout(new BoxLayout(this, +- a)); ++ return pref; + } ++ } ++ ++ /** ++ * Creates a new Box component, that lays out its children according ++ * to the axis parameter. ++ * ++ * @param axis the orientation of the BoxLayout. ++ * ++ * @see BoxLayout#X_AXIS ++ * @see BoxLayout#Y_AXIS ++ * @see BoxLayout#LINE_AXIS ++ * @see BoxLayout#PAGE_AXIS ++ */ ++ public Box(int axis) ++ { ++ super.setLayout(new BoxLayout(this, axis)); ++ } ++ ++ /** ++ * Creates a filler component which acts as glue between components. ++ * It does not take space unless some extra space is available. If extra ++ * space is available, this component can expand in both X and Y directions. ++ * ++ * @return a glue-like filler component. ++ */ ++ public static Component createGlue() ++ { ++ Filler glue = new Filler(new Dimension(0,0), new Dimension(0,0), ++ new Dimension(Integer.MAX_VALUE,Integer.MAX_VALUE) ++ ); ++ return glue; ++ } ++ ++ public static Box createHorizontalBox() ++ { ++ return new Box(BoxLayout.X_AXIS); ++ } ++ ++ /** ++ * Creates a filler component which acts as glue between components. ++ * It does not take space unless some extra space is available. If extra ++ * space is available, this component can expand in the X direction. ++ * ++ * @return a glue-like filler component. ++ */ ++ public static Component createHorizontalGlue() ++ { ++ return createGlue(); ++ } ++ ++ /** ++ * Creates a filler component which acts as strut between components. ++ * It will fill exactly the specified horizontal size. ++ * ++ * @param width the width of this strut in pixels. ++ * ++ * @return a strut-like filler component. ++ */ ++ public static Component createHorizontalStrut(int width) ++ { ++ Filler strut = new Filler(new Dimension(width, 0), ++ new Dimension(width, 0), ++ new Dimension(width, Integer.MAX_VALUE)); ++ return strut; ++ } ++ ++ public static Component createRigidArea(Dimension d) ++ { ++ return new Filler(d, d, d); ++ } ++ ++ public static Box createVerticalBox() ++ { ++ return new Box(BoxLayout.Y_AXIS); ++ } ++ ++ /** ++ * Creates a filler component which acts as glue between components. ++ * It does not take space unless some extra space is available. If extra ++ * space is available, this component can expand in the Y direction. ++ * ++ * @return a glue-like filler component. ++ */ ++ public static Component createVerticalGlue() ++ { ++ return createGlue(); ++ } ++ ++ /** ++ * Creates a filler component which acts as strut between components. ++ * It will fill exactly the specified vertical size. ++ * ++ * @param height the height of this strut in pixels. ++ * ++ * @return a strut-like filler component. ++ */ ++ public static Component createVerticalStrut(int height) ++ { ++ Filler strut = new Filler(new Dimension(0, height), ++ new Dimension(0, height), ++ new Dimension(Integer.MAX_VALUE, height)); ++ return strut; ++ } ++ ++ public void setLayout(LayoutManager l) ++ { ++ throw new AWTError("Not allowed to set layout managers for boxes."); ++ } ++ ++ public AccessibleContext getAccessibleContext() ++ { ++ // if (accessibleContext == null) ++ // accessibleContext = new AccessibleBox(); ++ return accessibleContext; ++ } ++ ++ + } +Index: javax/swing/BoxLayout.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/BoxLayout.java,v +retrieving revision 1.3 +diff -u -r1.3 BoxLayout.java +--- javax/swing/BoxLayout.java 24 Nov 2003 16:55:43 -0000 1.3 ++++ javax/swing/BoxLayout.java 6 Sep 2004 16:35:53 -0000 +@@ -42,15 +42,11 @@ + import java.awt.ComponentOrientation; + import java.awt.Container; + import java.awt.Dimension; +-import java.awt.GridLayout; + import java.awt.LayoutManager2; + import java.io.Serializable; + +- + /** + * A layout for swing components. +- * This implementation delegates its methods to +- * java.awt.GridLayout to do its work. + * + * @author Ronald Veldema (rveldema@cs.vu.nl) + */ +@@ -87,11 +83,6 @@ + private Container container; + + /* +- * Internal layout. +- */ +- private GridLayout grid; +- +- /* + * Current type of component layouting. Defaults to X_AXIS. + */ + private int way = X_AXIS; +@@ -108,75 +99,41 @@ + { + int width = 0; + int height = 0; +- ComponentOrientation orientation = container.getComponentOrientation(); +- + this.container = container; + this.way = way; +- +- switch (way) +- { +- case X_AXIS: +- width = 1; +- break; +- case Y_AXIS: +- height = 1; +- break; +- case LINE_AXIS: +- if (orientation.isHorizontal()) +- height = 1; +- else +- width = 1; +- break; +- case PAGE_AXIS: +- if (!orientation.isHorizontal()) +- height = 1; +- else +- width = 1; +- break; +- default: +- throw new AWTError("Invalid value for way"); +- } +- +- grid = new GridLayout(width, height); + } + + /** +- * Adds a component to the layout. ++ * Adds a component to the layout. Not used in BoxLayout. + * + * @param name The name of the component to add. + * @param component the component to add to the layout. + */ + public void addLayoutComponent(String name, Component component) + { +- if (way == X_AXIS +- || (way == LINE_AXIS +- && component.getComponentOrientation().isHorizontal()) +- || (way == PAGE_AXIS +- && !component.getComponentOrientation().isHorizontal())) +- grid.setColumns(grid.getColumns() + 1); +- else +- grid.setRows(grid.getRows() + 1); + } + + /** +- * Removes a component from the layout. ++ * Removes a component from the layout. Not used in BoxLayout. + * + * @param component The component to remove from the layout. + */ + public void removeLayoutComponent(Component component) + { +- grid.removeLayoutComponent(component); ++ } + +- if (way == X_AXIS +- || (way == LINE_AXIS +- && component.getComponentOrientation().isHorizontal()) +- || (way == PAGE_AXIS +- && !component.getComponentOrientation().isHorizontal())) +- grid.setColumns(grid.getColumns() - 1); +- else +- grid.setRows(grid.getRows() - 1); ++ private boolean isHorizontalIn(Container parent) ++ { ++ ComponentOrientation orientation = parent.getComponentOrientation(); ++ return this.way == X_AXIS ++ || (this.way == LINE_AXIS ++ && orientation.isHorizontal()) ++ || (this.way == PAGE_AXIS ++ && (!orientation.isHorizontal())); + } + ++ ++ + /** + * Returns the preferred size of the layout. + * +@@ -188,8 +145,38 @@ + { + if (parent != container) + throw new AWTError("invalid parent"); ++ ++ int x = 0; ++ int y = 0; ++ ++ Component[] children = parent.getComponents(); ++ ++ if (isHorizontalIn(parent)) ++ { ++ // sum up preferred widths of components, find maximum of preferred ++ // heights ++ for (int index = 0; index < children.length; index++) ++ { ++ Component comp = children[index]; ++ Dimension sz = comp.getPreferredSize(); ++ x += sz.width; ++ y = Math.max(y, sz.height); ++ } ++ } ++ else ++ { ++ // sum up preferred heights of components, find maximum of ++ // preferred widths ++ for (int index = 0; index < children.length; index++) ++ { ++ Component comp = children[index]; ++ Dimension sz = comp.getPreferredSize(); ++ y += sz.height; ++ x = Math.max(x, sz.width); ++ } ++ } + +- return grid.preferredLayoutSize(parent); ++ return new Dimension(x, y); + } + + /** +@@ -203,8 +190,38 @@ + { + if (parent != container) + throw new AWTError("invalid parent"); ++ ++ int x = 0; ++ int y = 0; ++ ++ Component[] children = parent.getComponents(); ++ ++ if (isHorizontalIn(parent)) ++ { ++ // sum up preferred widths of components, find maximum of preferred ++ // heights ++ for (int index = 0; index < children.length; index++) ++ { ++ Component comp = children[index]; ++ Dimension sz = comp.getMinimumSize(); ++ x += sz.width; ++ y = Math.max(y, sz.height); ++ } ++ } ++ else ++ { ++ // sum up preferred heights of components, find maximum of ++ // preferred widths ++ for (int index = 0; index < children.length; index++) ++ { ++ Component comp = children[index]; ++ Dimension sz = comp.getMinimumSize(); ++ y += sz.height; ++ x = Math.max(x, sz.width); ++ } ++ } + +- return grid.minimumLayoutSize(parent); ++ return new Dimension(x, y); + } + + /** +@@ -216,19 +233,69 @@ + { + if (parent != container) + throw new AWTError("invalid parent"); +- +- grid.layoutContainer(parent); +- } + ++ Dimension size = parent.getSize(); ++ ++ Component[] children = parent.getComponents(); ++ ++ if (isHorizontalIn(parent)) ++ { ++ int x = 0; ++ for (int index = 0; index < children.length; index++) ++ { ++ Component comp = children[index]; ++ Dimension sz = comp.getPreferredSize(); ++ int width = sz.width; ++ int height = sz.height; ++ int cy = 0; ++ if (height > size.height) ++ { ++ height = size.height; ++ } ++ else ++ { ++ cy = (int) ((size.height - height) * comp.getAlignmentY()); ++ } ++ ++ comp.setSize(width, height); ++ comp.setLocation(x, cy); ++ x = x + width; ++ } ++ } ++ else ++ { ++ int y = 0; ++ for (int index = 0; index < children.length; index++) ++ { ++ Component comp = children[index]; ++ Dimension sz = comp.getPreferredSize(); ++ int width = sz.width; ++ int height = sz.height; ++ int cx = 0; ++ if (width > size.width) ++ { ++ width = size.width; ++ } ++ else ++ { ++ cx = (int) ((size.width - width) * comp.getAlignmentX()); ++ } ++ ++ comp.setSize(width, height); ++ comp.setLocation(cx, y); ++ y = y + height; ++ } ++ } ++ } ++ + /** +- * Adds a component to the layout. ++ * Adds a component to the layout. Not used in BoxLayout + * + * @param child The component to add to the layout. + * @param constraints The constraints for the component in the layout. + */ + public void addLayoutComponent(Component child, Object constraints) + { +- addLayoutComponent("", child); + } + + /** +@@ -284,7 +351,37 @@ + { + if (parent != container) + throw new AWTError("invalid parent"); +- +- return preferredLayoutSize(parent); ++ ++ int x = 0; ++ int y = 0; ++ ++ Component[] children = parent.getComponents(); ++ ++ if (isHorizontalIn(parent)) ++ { ++ ++ // sum up preferred widths of components, find maximum of preferred ++ // heights ++ for (int index = 0; index < children.length; index++) ++ { ++ Component comp = children[index]; ++ Dimension sz = comp.getMaximumSize(); ++ x += sz.width; ++ y = Math.max(y, sz.height); ++ } ++ } ++ else ++ { ++ // sum up preferred heights of components, find maximum of ++ // preferred widths ++ for (int index = 0; index < children.length; index++) ++ { ++ Component comp = children[index]; ++ Dimension sz = comp.getMaximumSize(); ++ y += sz.height; ++ x = Math.max(x, sz.width); ++ } ++ } ++ return new Dimension(x, y); + } + } +Index: javax/swing/ButtonGroup.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/ButtonGroup.java,v +retrieving revision 1.3 +diff -u -r1.3 ButtonGroup.java +--- javax/swing/ButtonGroup.java 11 Jun 2003 13:20:39 -0000 1.3 ++++ javax/swing/ButtonGroup.java 6 Sep 2004 16:35:53 -0000 +@@ -1,4 +1,4 @@ +-/* ButtonGroup.java -- ++/* ButtonGroup.java -- + Copyright (C) 2002 Free Software Foundation, Inc. + + This file is part of GNU Classpath. +@@ -35,105 +35,145 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing; + + import java.io.Serializable; + import java.util.Enumeration; + import java.util.Vector; + +-public class ButtonGroup implements Serializable +-{ +- static final long serialVersionUID = 4259076101881721375L; +- +- Vector v = new Vector(); +- ButtonModel sel; +- +- public ButtonGroup() {} +- +- public void add(AbstractButton b) +- { +- b.getModel().setGroup(this); +- v.addElement(b); +- } +- +- public void remove(AbstractButton b) +- { +- b.getModel().setGroup(null); +- v.removeElement(b); +- } +- +- +- public Enumeration getElements() { +- return v.elements(); +- } +- +- public ButtonModel getSelection() { +- return sel; +- } +- +- AbstractButton FindButton(ButtonModel m) +- { +- for (int i=0;iEnumeration over all added buttons ++ */ ++ public Enumeration getElements() ++ { ++ return buttons.elements(); ++ } ++ ++ /** ++ * Returns the currently selected button model. ++ * ++ * @return the currently selected button model, null if none was selected ++ * yet ++ */ ++ public ButtonModel getSelection() ++ { ++ return sel; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param m DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ AbstractButton FindButton(ButtonModel m) ++ { ++ for (int i = 0; i < buttons.size(); i++) ++ { ++ AbstractButton a = (AbstractButton) buttons.get(i); ++ if (a.getModel() == m) ++ return a; ++ } ++ return null; ++ } ++ ++ /** ++ * Sets the currently selected button model. Only one button of a group can ++ * be selected at a time. ++ * ++ * @param m the model to select ++ * @param b true if this button is to be selected, false otherwise ++ */ ++ public void setSelected(ButtonModel m, boolean b) ++ { ++ if ((sel != m || b) && (! b || sel == m)) ++ return; ++ ++ if (b && sel != m) ++ { ++ ButtonModel old = sel; ++ sel = m; + ++ if (old != null) ++ old.setSelected(false); ++ AbstractButton button = FindButton(old); ++ if (button != null) ++ button.repaint(); ++ } ++ else if (! b && sel == m) ++ m.setSelected(true); ++ } ++ ++ /** ++ * Checks if the given ButtonModel is selected in this button ++ * group. ++ * ++ * @param m DOCUMENT ME! ++ * ++ * @return true of given ButtonModel is selected, false ++ * otherwise ++ */ ++ public boolean isSelected(ButtonModel m) ++ { ++ return m == sel; ++ } ++ ++ /** ++ * Return the number of buttons in this button group. ++ * ++ * @return the number of buttons ++ * ++ * @since 1.3 ++ */ ++ public int getButtonCount() ++ { ++ return buttons.size(); ++ } ++} +Index: javax/swing/CellEditor.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/CellEditor.java,v +retrieving revision 1.3 +diff -u -r1.3 CellEditor.java +--- javax/swing/CellEditor.java 9 Jan 2004 10:18:47 -0000 1.3 ++++ javax/swing/CellEditor.java 6 Sep 2004 16:35:53 -0000 +@@ -45,54 +45,49 @@ + * @author Andrew Selkirk + * @version 1.0 + */ +-public interface CellEditor { +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * getCellEditorValue +- * @returns Object +- */ +- Object getCellEditorValue(); +- +- /** +- * isCellEditable +- * @param event TODO +- * @returns boolean +- */ +- boolean isCellEditable(EventObject event); +- +- /** +- * shouldSelectCell +- * @param event TODO +- * @returns boolean +- */ +- boolean shouldSelectCell(EventObject event); +- +- /** +- * stopCellEditing +- * @returns boolean +- */ +- boolean stopCellEditing(); +- +- /** +- * cancelCellEditing +- */ +- void cancelCellEditing(); +- +- /** +- * addCellEditorListener +- * @param value0 TODO +- */ +- void addCellEditorListener(CellEditorListener listener); +- +- /** +- * removeCellEditorListener +- * @param listener TODO +- */ +- void removeCellEditorListener(CellEditorListener listener); +- ++public interface CellEditor ++{ ++ /** ++ * getCellEditorValue ++ * @returns Object ++ */ ++ Object getCellEditorValue(); ++ ++ /** ++ * isCellEditable ++ * @param event TODO ++ * @returns boolean ++ */ ++ boolean isCellEditable(EventObject event); ++ ++ /** ++ * shouldSelectCell ++ * @param event TODO ++ * @returns boolean ++ */ ++ boolean shouldSelectCell(EventObject event); ++ ++ /** ++ * stopCellEditing ++ * @returns boolean ++ */ ++ boolean stopCellEditing(); ++ ++ /** ++ * cancelCellEditing ++ */ ++ void cancelCellEditing(); ++ ++ /** ++ * addCellEditorListener ++ * @param value0 TODO ++ */ ++ void addCellEditorListener(CellEditorListener listener); ++ ++ /** ++ * removeCellEditorListener ++ * @param listener TODO ++ */ ++ void removeCellEditorListener(CellEditorListener listener); + + } // CellEditor +Index: javax/swing/CellRendererPane.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/CellRendererPane.java,v +retrieving revision 1.2 +diff -u -r1.2 CellRendererPane.java +--- javax/swing/CellRendererPane.java 9 Jan 2004 10:18:47 -0000 1.2 ++++ javax/swing/CellRendererPane.java 6 Sep 2004 16:35:53 -0000 +@@ -52,50 +52,34 @@ + * @author Andrew Selkirk + * @version 1.0 + */ +-public class CellRendererPane extends Container implements Accessible { +- +- //------------------------------------------------------------- +- // Classes ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * AccessibleCellRendererPane +- */ +- protected class AccessibleCellRendererPane extends AccessibleAWTContainer { +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor AccessibleCellRendererPane +- * @param component TODO +- */ +- protected AccessibleCellRendererPane(CellRendererPane component) { +- super(); +- // TODO +- } // AccessibleCellRendererPane() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * getAccessibleRole +- * @returns AccessibleRole +- */ +- public AccessibleRole getAccessibleRole() { +- return AccessibleRole.PANEL; +- } // getAccessibleRole() +- +- +- } // AccessibleCellRendererPane +- +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- ++public class CellRendererPane extends Container implements Accessible ++{ ++ private static final long serialVersionUID = -7642183829532984273L; ++ ++ /** ++ * AccessibleCellRendererPane ++ */ ++ protected class AccessibleCellRendererPane extends AccessibleAWTContainer ++ { ++ private static final long serialVersionUID = -8981090083147391074L; ++ ++ /** ++ * Constructor AccessibleCellRendererPane ++ * @param component TODO ++ */ ++ protected AccessibleCellRendererPane() ++ { ++ } ++ ++ /** ++ * getAccessibleRole ++ * @returns AccessibleRole ++ */ ++ public AccessibleRole getAccessibleRole() ++ { ++ return AccessibleRole.PANEL; ++ } ++ } + + /** + * accessibleContext +@@ -205,16 +189,15 @@ + // TODO + } // paintComponent() + +- /** +- * getAccessibleContext +- * @returns AccessibleContext +- */ +- public AccessibleContext getAccessibleContext() { +- if (accessibleContext == null) { +- accessibleContext = new AccessibleCellRendererPane(this); +- } // if +- return accessibleContext; +- } // getAccessibleContext() +- +- +-} // CellRendererPane ++ /** ++ * getAccessibleContext ++ * @return AccessibleContext ++ */ ++ public AccessibleContext getAccessibleContext() ++ { ++ if (accessibleContext == null) ++ accessibleContext = new AccessibleCellRendererPane(); ++ ++ return accessibleContext; ++ } ++} +Index: javax/swing/ComboBoxEditor.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/ComboBoxEditor.java,v +retrieving revision 1.3 +diff -u -r1.3 ComboBoxEditor.java +--- javax/swing/ComboBoxEditor.java 9 Jan 2004 10:18:47 -0000 1.3 ++++ javax/swing/ComboBoxEditor.java 6 Sep 2004 16:35:53 -0000 +@@ -42,49 +42,56 @@ + + /** + * ComboBoxEditor +- * @author Andrew Selkirk +- * @version 1.0 ++ * ++ * @author Andrew Selkirk ++ * @author Olga Rodimina ++ * @version 1.0 + */ +-public interface ComboBoxEditor { +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * getEditorComponent +- * @returns Component +- */ +- Component getEditorComponent(); +- +- /** +- * setItem +- * @param item TODO +- */ +- void setItem(Object item); +- +- /** +- * getItem +- * @returns Object +- */ +- Object getItem(); +- +- /** +- * selectAll +- */ +- void selectAll(); +- +- /** +- * addActionListener +- * @param listener TODO +- */ +- void addActionListener(ActionListener listener); +- +- /** +- * removeActionListener +- * @param listener TODO +- */ +- void removeActionListener(ActionListener listener); +- +- ++public interface ComboBoxEditor ++{ ++ /** ++ * This method returns component that will be used by the combo box to ++ * display/edit currently selected item in the combo box. ++ * ++ * @return Component that will be used by the combo box to display/edit ++ * currently selected item ++ */ ++ Component getEditorComponent(); ++ ++ /** ++ * Sets item that should be editted when any editting operation is performed ++ * by the user. The value is always equal to the currently selected value ++ * in the combo box. Thus, whenever a different value is selected from the ++ * combo box list then this method should be called to change editting item ++ * to the new selected item. ++ * ++ * @param selectedItem item that is currently selected in the combo box ++ */ ++ void setItem(Object item); ++ ++ /** ++ * This method returns item that is currently editable. ++ * ++ * @return Item in the combo box that is currently editable ++ */ ++ Object getItem(); ++ ++ /** ++ * selectAll ++ */ ++ void selectAll(); ++ ++ /** ++ * This method adds specified ActionListener to this ComboBoxEditor. ++ * ++ * @param listener ++ */ ++ void addActionListener(ActionListener listener); ++ ++ /** ++ * This method removes given ActionListener from this ComboBoxEditor. ++ * ++ * @param listener TODO ++ */ ++ void removeActionListener(ActionListener listener); + } // ComboBoxEditor +Index: javax/swing/ComboBoxModel.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/ComboBoxModel.java,v +retrieving revision 1.2 +diff -u -r1.2 ComboBoxModel.java +--- javax/swing/ComboBoxModel.java 12 Oct 2003 13:20:49 -0000 1.2 ++++ javax/swing/ComboBoxModel.java 6 Sep 2004 16:35:53 -0000 +@@ -37,28 +37,32 @@ + + package javax.swing; + ++ + /** +- * ComboBoxModel +- * @author Andrew Selkirk +- * @version 1.0 ++ * ComboBoxModel is a data model for JComboBox. This model keeps ++ * track of elements contained in the JComboBox as well as the current ++ * combo box selection. Whenever selection in the JComboBox changes, the ++ * ComboBoxModel should fire ListDataEvents to ComboBox's ListDataListeners. ++ * ++ * @author Andrew Selkirk ++ * @version 1.0 + */ +-public interface ComboBoxModel extends ListModel { +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * setSelectedItem +- * @param item TODO +- */ +- void setSelectedItem(Object item); +- +- /** +- * getSelectedItem +- * @returns Object +- */ +- Object getSelectedItem(); +- ++public interface ComboBoxModel extends ListModel ++{ ++ /** ++ * This method sets the selected item in the combo box. Class ++ * implementing this interface should fire ListDataEvents to ++ * all registered ListDataListeners to indicated that the ++ * selection has changed. ++ * ++ * @param item item in the combo box that should be selected ++ */ ++ void setSelectedItem(Object item); + ++ /** ++ * The method returns currently selected item in the combo box ++ * ++ * @returns item that is currently selected in the combo box. ++ */ ++ Object getSelectedItem(); + } // ComboBoxModel +Index: javax/swing/ComponentInputMap.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/ComponentInputMap.java,v +retrieving revision 1.1 +diff -u -r1.1 ComponentInputMap.java +--- javax/swing/ComponentInputMap.java 9 Aug 2002 04:26:10 -0000 1.1 ++++ javax/swing/ComponentInputMap.java 6 Sep 2004 16:35:53 -0000 +@@ -1,5 +1,5 @@ + /* ComponentInputMap.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -37,79 +37,94 @@ + + package javax.swing; + ++ + /** +- * ComponentInputMap + * @author Andrew Selkirk +- * @version 1.0 ++ * @author Michael Koch + */ +-public class ComponentInputMap extends InputMap { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- ++public class ComponentInputMap extends InputMap ++{ + /** +- * component ++ * The component to notify. + */ + private JComponent component; + +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor ComponentInputMap +- * @param value0 TODO +- */ +- public ComponentInputMap(JComponent value0) { +- // TODO +- } // ComponentInputMap() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * put +- * @param keystroke TODO +- * @param value TODO +- */ +- public void put(KeyStroke keystroke, Object value) { +- // TODO +- } // put() +- + /** +- * clear +- */ +- public void clear() { +- // TODO +- } // clear() +- +- /** +- * remove +- * @param keystroke TODO +- */ +- public void remove(KeyStroke keystroke) { +- // TODO +- } // remove() +- +- /** +- * setParent +- * @param parent TODO +- */ +- public void setParent(InputMap parent) { +- // TODO +- } // setParent() +- +- /** +- * getComponent +- * @returns JComponent +- */ +- public JComponent getComponent() { +- return null; // TODO +- } // getComponent() +- +- +-} // ComponentInputMap ++ * Creates ComponentInputMap object that notifies the given ++ * component about changes to it. ++ * ++ * @param comp the component to notify ++ * ++ * @exception IllegalArgumentException if comp is null ++ */ ++ public ComponentInputMap(JComponent comp) ++ { ++ if (comp == null) ++ throw new IllegalArgumentException(); ++ ++ this.component = comp; ++ } ++ ++ /** ++ * Puts a new entry into the InputMap. ++ * If actionMapKey is null an existing entry will be removed. ++ * ++ * @param keystroke the keystroke for the entry ++ * @param actionMapKey the action. ++ */ ++ public void put(KeyStroke keystroke, Object value) ++ { ++ super.put(keystroke, value); ++ // FIXME: Notify component. ++ } ++ ++ /** ++ * Clears the InputMap. ++ */ ++ public void clear() ++ { ++ super.clear(); ++ // FIXME: Notify component. ++ } ++ ++ /** ++ * Remove an entry from the InputMap. ++ * ++ * @param key the key of the entry to remove ++ */ ++ public void remove(KeyStroke keystroke) ++ { ++ super.remove(keystroke); ++ // FIXME: Notify component. ++ } ++ ++ /** ++ * Sets a parent for this ComponentInputMap. ++ * ++ * @param parentMap the new parent ++ * ++ * @exception IllegalArgument if parentMap is not a ++ * ComponentInputMap or not associated with the same component ++ */ ++ public void setParent(InputMap parentMap) ++ { ++ if (! (parentMap instanceof ComponentInputMap)) ++ throw new IllegalArgumentException(); ++ ++ if (((ComponentInputMap) parentMap).getComponent() != component) ++ throw new IllegalArgumentException(); ++ ++ super.setParent(parentMap); ++ // FIXME: Notify component. ++ } ++ ++ /** ++ * Returns the component to notify about changes. ++ * ++ * @return a JComponent object ++ */ ++ public JComponent getComponent() ++ { ++ return component; ++ } ++} +Index: javax/swing/DefaultBoundedRangeModel.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/DefaultBoundedRangeModel.java,v +retrieving revision 1.5 +diff -u -r1.5 DefaultBoundedRangeModel.java +--- javax/swing/DefaultBoundedRangeModel.java 7 Jan 2004 14:42:03 -0000 1.5 ++++ javax/swing/DefaultBoundedRangeModel.java 6 Sep 2004 16:35:53 -0000 +@@ -203,7 +203,7 @@ + * Changes the current value of this bounded range model. In a + * scroll bar visualization of a {@link BoundedRangeModel}, the + * value is displayed as the position of the thumb; +- * changing the value of a scroll bar’s model ++ * changing the value of a scroll bar's model + * thus moves the thumb to a different position. + */ + public void setValue(int value) +Index: javax/swing/DefaultButtonModel.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/DefaultButtonModel.java,v +retrieving revision 1.3 +diff -u -r1.3 DefaultButtonModel.java +--- javax/swing/DefaultButtonModel.java 11 Jun 2003 13:20:39 -0000 1.3 ++++ javax/swing/DefaultButtonModel.java 6 Sep 2004 16:35:53 -0000 +@@ -1,5 +1,5 @@ +-/* DefaultButtonModel.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++/* DefaultButtonModel.java -- ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,144 +35,502 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing; + + import java.awt.event.ActionEvent; + import java.awt.event.ActionListener; + import java.awt.event.ItemEvent; + import java.awt.event.ItemListener; ++import java.awt.event.KeyEvent; + import java.io.Serializable; + import java.util.EventListener; +-import java.util.Vector; + import javax.swing.event.ChangeEvent; + import javax.swing.event.ChangeListener; + import javax.swing.event.EventListenerList; + +-public class DefaultButtonModel +- implements ButtonModel, Serializable ++ ++/** ++ * The purpose of this class is to model the dynamic state of an abstract ++ * button. The concrete button type holding this state may be a a "toggle" ++ * button (checkbox, radio button) or a "push" button (menu button, button). ++ * If the model is disabled, only the "selected" property can be changed. An ++ * attempt to change the "armed", "rollover" or "pressed" properties while ++ * the model is disabled will be blocked. Any successful (non-blocked) change ++ * to the model's properties will trigger the firing of a ChangeEvent. Any ++ * change to the "selected" property will trigger the firing of an ItemEvent ++ * in addition to ChangeEvent. This is true whether the model is enabled or ++ * not. One other state change is special: the transition from "enabled, ++ * armed and pressd" to "enabled, armed and not-pressed". This is considered ++ * the "trailing edge" of a successful mouse click, and therefore fires an ++ * ActionEvent in addition to a ChangeEvent. In all other respects this class ++ * is just a container of boolean flags. ++ * ++ * @author Graydon Hoare (graydon_at_redhat.com) ++ */ ++public class DefaultButtonModel implements ButtonModel, Serializable + { ++ /** DOCUMENT ME! */ + static final long serialVersionUID = -5342609566534980231L; + +- Vector actions = new Vector(); +- +- Vector items = new Vector(); +- Vector changes = new Vector(); +- ButtonGroup group; +- JComponent comp; +- +- +- DefaultButtonModel(JComponent a) +- { +- comp = a; +- } +- +- +- public Object[] getSelectedObjects() +- { +- return null; +- } +- +- +- public void fireItemStateChanged(ItemEvent event) +- { +- for (int i=0;ipartially committed to being ++ * pressed, but not entirely. This usually happens when a user has pressed ++ * but not yet released the mouse button. ++ */ ++ public static final int ARMED = 1; ++ ++ /** ++ * State constant indicating that the button is enabled. Buttons cannot be ++ * pressed or selected unless they are enabled. ++ */ ++ public static final int ENABLED = 8; ++ ++ /** ++ * State constant indicating that the user is holding down the button. When ++ * this transitions from true to false, an ActionEvent may be fired, ++ * depending on the value of the "armed" property. ++ */ ++ public static final int PRESSED = 4; ++ ++ /** ++ * State constant indicating that the mouse is currently positioned over the ++ * button. ++ */ ++ public static final int ROLLOVER = 16; ++ ++ /** ++ * State constant indicating that the button is selected. This constant is ++ * only meaningful for toggle-type buttons (radio buttons, checkboxes). ++ */ ++ public static final int SELECTED = 2; ++ ++ /** ++ * Represents the "state properties" (armed, enabled, pressed, rollover and ++ * selected) by a bitwise combination of integer constants. ++ */ ++ protected int stateMask = ENABLED; ++ ++ /** ++ * List of ItemListeners, ChangeListeners, and ActionListeners registered on ++ * this model. ++ */ ++ protected EventListenerList listenerList = new EventListenerList(); ++ ; ++ ++ /** The single ChangeEvent this model (re)uses to call its ChangeListeners. */ ++ protected ChangeEvent changeEvent = new ChangeEvent(this); ++ ++ /** ++ * The group this model belongs to. Only one button in a group may be ++ * selected at any given time. ++ */ ++ protected ButtonGroup group; ++ ++ /** ++ * The key code (one of {@link java.awt.event.KeyEvent} VK_) used to press ++ * this button via a keyboard interface. ++ */ ++ protected int mnemonic = KeyEvent.VK_UNDEFINED; ++ ++ /** ++ * The string used as the "command" property of any ActionEvent this model ++ * sends. ++ */ ++ protected String actionCommand; ++ ++ /** ++ * Creates a new DefaultButtonModel object. ++ */ ++ public DefaultButtonModel() ++ { ++ } ++ ++ /** ++ * Return null. Use {@link AbstractButton} if you wish to ++ * interface with a button via an {@link ItemSelectable} interface. ++ * ++ * @return null ++ */ ++ public Object[] getSelectedObjects() ++ { ++ return null; ++ } ++ ++ /** ++ * Returns a specified class of listeners. ++ * ++ * @param listenerType the type of listener to return ++ * ++ * @return array of listeners ++ */ ++ public EventListener[] getListeners(Class listenerType) ++ { ++ return listenerList.getListeners(listenerType); ++ } ++ ++ /** ++ * Add an ActionListener to the model. Usually only called to subscribe an ++ * AbstractButton's listener to the model. ++ * ++ * @param l The listener to add ++ */ ++ public void addActionListener(ActionListener l) ++ { ++ listenerList.add(ActionListener.class, l); ++ } ++ ++ /** ++ * Remove an ActionListener to the model. Usually only called to unsubscribe ++ * an AbstractButton's listener to the model. ++ * ++ * @param l The listener to remove ++ */ ++ public void removeActionListener(ActionListener l) ++ { ++ listenerList.remove(ActionListener.class, l); ++ } ++ ++ /** ++ * Returns all registered ActionListener objects. ++ * ++ * @return array of ActionListener objects ++ */ ++ public ActionListener[] getActionListeners() ++ { ++ return (ActionListener[]) listenerList.getListeners(ActionListener.class); ++ } ++ ++ /** ++ * Add an ItemListener to the model. Usually only called to subscribe an ++ * AbstractButton's listener to the model. ++ * ++ * @param l The listener to add ++ */ ++ public void addItemListener(ItemListener l) ++ { ++ listenerList.add(ItemListener.class, l); ++ } ++ ++ /** ++ * Remove an ItemListener to the model. Usually only called to unsubscribe ++ * an AbstractButton's listener to the model. ++ * ++ * @param l The listener to remove ++ */ ++ public void removeItemListener(ItemListener l) ++ { ++ listenerList.remove(ItemListener.class, l); ++ } ++ ++ /** ++ * Returns all registered ItemListener objects. ++ * ++ * @return array of ItemListener objects ++ */ ++ public ItemListener[] getItemListeners() ++ { ++ return (ItemListener[]) listenerList.getListeners(ItemListener.class); ++ } ++ ++ /** ++ * Add a ChangeListener to the model. Usually only called to subscribe an ++ * AbstractButton's listener to the model. ++ * ++ * @param l The listener to add ++ */ ++ public void addChangeListener(ChangeListener l) ++ { ++ listenerList.add(ChangeListener.class, l); ++ } ++ ++ /** ++ * Remove a ChangeListener to the model. Usually only called to unsubscribe ++ * an AbstractButton's listener to the model. ++ * ++ * @param l The listener to remove ++ */ ++ public void removeChangeListener(ChangeListener l) ++ { ++ listenerList.remove(ChangeListener.class, l); ++ } ++ ++ /** ++ * Returns all registered ChangeListener objects. ++ * ++ * @return array of ChangeListener objects ++ */ ++ public ChangeListener[] getChangeListeners() ++ { ++ return (ChangeListener[]) listenerList.getListeners(ChangeListener.class); ++ } ++ ++ /** ++ * Inform each ItemListener in the {@link listenerList} that an ItemEvent ++ * has occurred. This happens in response to any change to the {@link ++ * stateMask} field. ++ * ++ * @param e The ItemEvent to fire ++ */ ++ public void fireItemStateChanged(ItemEvent e) ++ { ++ ItemListener[] ll = getItemListeners(); ++ ++ for (int i = 0; i < ll.length; i++) ++ ll[i].itemStateChanged(e); ++ } ++ ++ /** ++ * Inform each ActionListener in the {@link listenerList} that an ++ * ActionEvent has occurred. This happens in response to the any change to ++ * the {@link stateMask} field which makes the enabled, armed and pressed ++ * properties all simultaneously true. ++ * ++ * @param e The ActionEvent to fire ++ */ ++ public void fireActionPerformed(ActionEvent e) ++ { ++ ActionListener[] ll = getActionListeners(); ++ ++ for (int i = 0; i < ll.length; i++) ++ ll[i].actionPerformed(e); ++ } ++ ++ /** ++ * Inform each ChangeListener in the {@link listenerList} that a ChangeEvent ++ * has occurred. This happens in response to the any change to a property ++ * of the model. ++ */ ++ public void fireStateChanged() ++ { ++ ChangeListener[] ll = getChangeListeners(); ++ ++ for (int i = 0; i < ll.length; i++) ++ ll[i].stateChanged(changeEvent); ++ } ++ ++ /** ++ * Helper method to fire a ChangeEvent with the model as the event's source. ++ * ++ * @param stateflag DOCUMENT ME! ++ * @param b DOCUMENT ME! ++ */ ++ protected void changeState(int stateflag, boolean b) ++ { ++ int oldstate = stateMask; ++ int newstate; ++ ++ if (b) ++ newstate = oldstate | stateflag; ++ else ++ newstate = oldstate & ~ stateflag; ++ ++ if (oldstate == newstate) ++ return; ++ ++ if ((stateflag != SELECTED) && (stateflag != ENABLED) ++ && (stateMask & ENABLED) == 0) ++ return; ++ ++ stateMask = newstate; ++ ++ fireStateChanged(); ++ ++ if ((oldstate & SELECTED) == 0 && (newstate & SELECTED) == SELECTED) ++ { ++ fireItemStateChanged(new ItemEvent(this, ItemEvent.ITEM_STATE_CHANGED, ++ null, ItemEvent.SELECTED)); ++ if (group != null) ++ group.setSelected(this, true); ++ } ++ ++ else if ((oldstate & SELECTED) == SELECTED && (newstate & SELECTED) == 0) ++ { ++ fireItemStateChanged(new ItemEvent(this, ItemEvent.ITEM_STATE_CHANGED, ++ null, ItemEvent.DESELECTED)); ++ if (group != null) ++ group.setSelected(this, false); ++ } ++ ++ else if (((oldstate & ARMED) == ARMED && (oldstate & PRESSED) == PRESSED) ++ && ((newstate & ARMED) == ARMED && (newstate & PRESSED) == 0)) ++ fireActionPerformed(new ActionEvent(this, ActionEvent.ACTION_PERFORMED, ++ actionCommand)); ++ } ++ ++ /** ++ * Get the value of the model's "armed" property. ++ * ++ * @return The current "armed" property ++ */ ++ public boolean isArmed() ++ { ++ return (stateMask & ARMED) == ARMED; ++ } ++ ++ /** ++ * Set the value of the model's "armed" property. ++ * ++ * @param a The new "armed" property ++ */ ++ public void setArmed(boolean a) ++ { ++ changeState(ARMED, a); ++ } ++ ++ /** ++ * Get the value of the model's "enabled" property. ++ * ++ * @return The current "enabled" property. ++ */ ++ public boolean isEnabled() ++ { ++ return (stateMask & ENABLED) == ENABLED; ++ } ++ ++ /** ++ * Set the value of the model's "enabled" property. ++ * ++ * @param e The new "enabled" property ++ */ ++ public void setEnabled(boolean e) ++ { ++ changeState(ENABLED, e); ++ } ++ ++ /** ++ * Set the value of the model's "pressed" property. ++ * ++ * @param p The new "pressed" property ++ */ ++ public void setPressed(boolean p) ++ { ++ changeState(PRESSED, p); ++ } ++ ++ /** ++ * Get the value of the model's "pressed" property. ++ * ++ * @return The current "pressed" property ++ */ ++ public boolean isPressed() ++ { ++ return (stateMask & PRESSED) == PRESSED; ++ } ++ ++ /** ++ * Set the value of the model's "rollover" property. ++ * ++ * @param r The new "rollover" property ++ */ ++ public void setRollover(boolean r) ++ { ++ changeState(ROLLOVER, r); ++ } ++ ++ /** ++ * Set the value of the model's "selected" property. ++ * ++ * @param s The new "selected" property ++ */ ++ public void setSelected(boolean s) ++ { ++ changeState(SELECTED, s); ++ } ++ ++ /** ++ * Get the value of the model's "selected" property. ++ * ++ * @return The current "selected" property ++ */ ++ public boolean isSelected() ++ { ++ return (stateMask & SELECTED) == SELECTED; ++ } ++ ++ /** ++ * Get the value of the model's "rollover" property. ++ * ++ * @return The current "rollover" property ++ */ ++ public boolean isRollover() ++ { ++ return (stateMask & ROLLOVER) == ROLLOVER; ++ } ++ ++ /** ++ * Get the value of the model's "mnemonic" property. ++ * ++ * @return The current "mnemonic" property ++ */ ++ public int getMnemonic() ++ { ++ return mnemonic; ++ } ++ ++ /** ++ * Set the value of the model's "mnemonic" property. ++ * ++ * @param key The new "mnemonic" property ++ */ ++ public void setMnemonic(int key) ++ { ++ if (mnemonic != key) ++ { ++ mnemonic = key; ++ fireStateChanged(); ++ } ++ } ++ ++ /** ++ * Set the value of the model's "actionCommand" property. This property is ++ * used as the "command" property of the {@link ActionEvent} fired from the ++ * model. ++ * ++ * @param s The new "actionCommand" property. ++ */ ++ public void setActionCommand(String s) ++ { ++ if (actionCommand != s) ++ { ++ actionCommand = s; ++ fireStateChanged(); ++ } ++ } ++ ++ /** ++ * Returns the current value of the model's "actionCommand" property. ++ * ++ * @return The current "actionCommand" property ++ */ ++ public String getActionCommand() ++ { ++ return actionCommand; ++ } ++ ++ /** ++ * Set the value of the model's "group" property. The model is said to be a ++ * member of the {@link ButtonGroup} held in its "group" property, and only ++ * one model in a given group can have their "selected" property be ++ * true at a time. ++ * ++ * @param g The new "group" property ++ */ ++ public void setGroup(ButtonGroup g) ++ { ++ if (group != g) ++ { ++ group = g; ++ fireStateChanged(); ++ } ++ } ++ ++ /** ++ * Returns the current value of the model's "group" property. ++ * ++ * @return The value of the "group" property ++ */ ++ public ButtonGroup getGroup() ++ { ++ return group; ++ } + } +- +- +- +- +- +- +- +Index: javax/swing/DefaultCellEditor.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/DefaultCellEditor.java,v +retrieving revision 1.3 +diff -u -r1.3 DefaultCellEditor.java +--- javax/swing/DefaultCellEditor.java 9 Jan 2004 10:18:47 -0000 1.3 ++++ javax/swing/DefaultCellEditor.java 6 Sep 2004 16:35:53 -0000 +@@ -58,50 +58,34 @@ + { + static final long serialVersionUID = 3564035141373880027L; + +- //------------------------------------------------------------- +- // Classes ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * EditorDelegate +- */ +- protected class EditorDelegate implements ActionListener, +- ItemListener, Serializable { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * value +- */ +- protected Object value; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor EditorDelegate +- * @param value0 TODO +- */ +- protected EditorDelegate(DefaultCellEditor editor) { +- // TODO +- } // EditorDelegate() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * setValue +- * @param event TODO +- */ +- public void setValue(Object event) { +- // TODO +- } // setValue() ++ /** ++ * EditorDelegate ++ */ ++ protected class EditorDelegate ++ implements ActionListener, ItemListener, Serializable ++ { ++ private static final long serialVersionUID = -1420007406015481933L; ++ ++ /** ++ * value ++ */ ++ protected Object value; ++ ++ /** ++ * Constructor EditorDelegate ++ * @param value0 TODO ++ */ ++ protected EditorDelegate() ++ { ++ } ++ ++ /** ++ * setValue ++ * @param event TODO ++ */ ++ public void setValue(Object event) ++ { ++ } + + /** + * getCellEditorValue +@@ -172,11 +156,6 @@ + + } // EditorDelegate + +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- + /** + * editorComponent + */ +@@ -192,11 +171,6 @@ + */ + protected int clickCountToStart; + +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- + /** + * Constructor DefaultCellEditor + * @param textfield TODO +@@ -221,11 +195,6 @@ + // TODO + } // DefaultCellEditor() + +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- + /** + * getComponent + * @returns Component +@@ -320,6 +289,4 @@ + Object value, boolean isSelected, int row, int column) { + return null; // TODO + } // getTableCellEditorComponent() +- +- +-} // DefaultCellEditor ++} +Index: javax/swing/DefaultComboBoxModel.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/DefaultComboBoxModel.java,v +retrieving revision 1.3 +diff -u -r1.3 DefaultComboBoxModel.java +--- javax/swing/DefaultComboBoxModel.java 9 Jan 2004 10:18:47 -0000 1.3 ++++ javax/swing/DefaultComboBoxModel.java 6 Sep 2004 16:35:53 -0000 +@@ -38,146 +38,191 @@ + package javax.swing; + + import java.io.Serializable; ++import java.util.Arrays; + import java.util.Vector; + ++ + /** +- * DefaultComboBoxModel +- * @author Andrew Selkirk +- * @version 1.0 ++ * DefaultComboBoxModel is a data model for JComboBox. This model keeps track ++ * of elements contained in the JComboBox as well as the current combo box ++ * selection. Whenever selection in the JComboBox changes, the ComboBoxModel ++ * will fire ListDataEvents to ComboBox's ListDataListeners. ++ * ++ * @author Andrew Selkirk ++ * @author Olga Rodimina ++ * @version 1.0 + */ +-public class DefaultComboBoxModel extends AbstractListModel +- implements MutableComboBoxModel, Serializable ++public class DefaultComboBoxModel extends AbstractListModel ++ implements MutableComboBoxModel, Serializable + { + static final long serialVersionUID = 6698657703676921904L; + +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * list +- */ +- private Vector list; +- +- /** +- * selectedItem +- */ +- private Object selectedItem; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor DefaultComboBoxModel +- */ +- public DefaultComboBoxModel() { +- // TODO +- } // DefaultComboBoxModel() +- +- /** +- * Constructor DefaultComboBoxModel +- * @param items TODO +- */ +- public DefaultComboBoxModel(Object[] items) { +- // TODO +- } // DefaultComboBoxModel() +- +- /** +- * Constructor DefaultComboBoxModel +- * @param vector TODO +- */ +- public DefaultComboBoxModel(Vector vector) { +- // TODO +- } // DefaultComboBoxModel() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * addElement +- * @param object TODO +- */ +- public void addElement(Object object) { +- // TODO +- } // addElement() +- +- /** +- * removeElementAt +- * @param index TODO +- */ +- public void removeElementAt(int index) { +- // TODO +- } // removeElementAt() +- +- /** +- * insertElementAt +- * @param object TODO +- * @param index TODO +- */ +- public void insertElementAt(Object object, int index) { +- // TODO +- } // insertElementAt() +- +- /** +- * removeElement +- * @param object TODO +- */ +- public void removeElement(Object object) { +- // TODO +- } // removeElement() +- +- /** +- * removeAllElements +- */ +- public void removeAllElements() { +- // TODO +- } // removeAllElements() +- +- /** +- * getSize +- * @returns int +- */ +- public int getSize() { +- return 0; // TODO +- } // getSize() +- +- /** +- * setSelectedItem +- * @param object TODO +- */ +- public void setSelectedItem(Object object) { +- // TODO +- } // setSelectedItem() +- +- /** +- * getSelectedItem +- * @returns Object +- */ +- public Object getSelectedItem() { +- return null; // TODO +- } // getSelectedItem() +- +- /** +- * getElementAt +- * @param index TODO +- * @returns Object +- */ +- public Object getElementAt(int index) { +- return null; // TODO +- } // getElementAt() +- +- /** +- * getIndexOf +- * @param object TODO +- * @returns int +- */ +- public int getIndexOf(Object object) { +- return 0; // TODO +- } // getIndexOf() +- +- +-} // DefaultComboBoxModel ++ /** ++ * List containing items in the combo box ++ */ ++ private Vector list; ++ ++ /** ++ * Currently selected item in the combo box list ++ */ ++ private Object selectedItem = null; ++ ++ /** ++ * Constructor DefaultComboBoxModel. Create empty JComboBox. ++ */ ++ public DefaultComboBoxModel() ++ { ++ list = new Vector(); ++ } ++ ++ /** ++ * Constructs new DefaultComboBoxModel object and initializes its item list ++ * to values in the given array. ++ * ++ * @param items array containing items of the combo box. ++ */ ++ public DefaultComboBoxModel(Object[] items) ++ { ++ list = new Vector(Arrays.asList(items)); ++ } ++ ++ /** ++ * Consturcts new DefaultComboBoxModel object and initializes its item list ++ * to values in the given vector. ++ * ++ * @param vector Vector containing items for this combo box. ++ */ ++ public DefaultComboBoxModel(Vector vector) ++ { ++ this.list = vector; ++ } ++ ++ /** ++ * This method adds element to the combo box list. It fires ListDataEvent ++ * indicating that component was added to the combo box to all of the ++ * JComboBox's registered ListDataListeners. ++ * ++ * @param object item to add to the combo box list ++ */ ++ public void addElement(Object object) ++ { ++ list.add(object); ++ fireIntervalAdded(this, list.size(), list.size()); ++ } ++ ++ /** ++ * This method removes element at the specified index from the combo box ++ * list. It fires ListDataEvent indicating that component was removed from ++ * the combo box list to all of the JComboBox's registered ++ * ListDataListeners. ++ * ++ * @param index index specifying location of the element to remove in the ++ * combo box list. ++ */ ++ public void removeElementAt(int index) ++ { ++ list.remove(index); ++ fireIntervalRemoved(this, index, index); ++ } ++ ++ /** ++ * This method inserts given object to the combo box list at the specified ++ * index. It fires ListDataEvent indicating that component was inserted to ++ * the combo box list to all of the JComboBox's registered ++ * ListDataListeners. ++ * ++ * @param object element to insert ++ * @param index index specifing position in the list where given element ++ * should be inserted. ++ */ ++ public void insertElementAt(Object object, int index) ++ { ++ list.insertElementAt(object, index); ++ fireIntervalAdded(this, index, index); ++ } ++ ++ /** ++ * Removes given object from the combo box list. It fires ListDataEvent ++ * indicating that component was removed from the combo box list to all of ++ * the JComboBox's registered ListDataListeners. ++ * ++ * @param object Element that will be removed from the combo box list ++ */ ++ public void removeElement(Object object) ++ { ++ int index = getIndexOf(object); ++ if (index != -1) ++ removeElementAt(index); ++ } ++ ++ /** ++ * Removes all the items from the JComboBox's item list. It fires ++ * ListDataEvent indicating that all the elements were removed from the ++ * combo box list to all of the JComboBox's registered ListDataListeners. ++ */ ++ public void removeAllElements() ++ { ++ int listSize = getSize(); ++ list.clear(); ++ fireIntervalAdded(this, 0, listSize - 1); ++ } ++ ++ /** ++ * Returns number of items in the combo box list ++ * ++ * @return number of items in the combo box list ++ */ ++ public int getSize() ++ { ++ return list.size(); ++ } ++ ++ /** ++ * Selects given object in the combo box list. This method fires ++ * ListDataEvent to all registered ListDataListeners of the JComboBox. The ++ * start and end index of the event is set to -1 to indicate combo box's ++ * selection has changed, and not its contents. ++ * ++ * @param object item to select in the JComboBox ++ */ ++ public void setSelectedItem(Object object) ++ { ++ selectedItem = object; ++ fireContentsChanged(this, -1, -1); ++ } ++ ++ /** ++ * Returns currently selected item in the combo box list ++ * ++ * @return currently selected item in the combo box list ++ */ ++ public Object getSelectedItem() ++ { ++ return selectedItem; ++ } ++ ++ /** ++ * Returns element in the combo box list located at the given index ++ * ++ * @param index specifying location of the element in the list ++ * ++ * @return return element in the combo box list located at the given index ++ */ ++ public Object getElementAt(int index) ++ { ++ return list.elementAt(index); ++ } ++ ++ /** ++ * Returns index of the specified object in the combo box list. ++ * ++ * @param object element to look for in the combo box list . ++ * ++ * @return Index specifying position of the specified element in combo box ++ * list. ++ */ ++ public int getIndexOf(Object object) ++ { ++ return list.indexOf(object); ++ } ++} +Index: javax/swing/DefaultDesktopManager.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/DefaultDesktopManager.java,v +retrieving revision 1.3 +diff -u -r1.3 DefaultDesktopManager.java +--- javax/swing/DefaultDesktopManager.java 9 Jan 2004 10:18:47 -0000 1.3 ++++ javax/swing/DefaultDesktopManager.java 6 Sep 2004 16:35:54 -0000 +@@ -37,249 +37,594 @@ + + package javax.swing; + ++import java.awt.Color; ++import java.awt.Component; ++import java.awt.Container; ++import java.awt.Dimension; ++import java.awt.Graphics; ++import java.awt.Insets; + import java.awt.Rectangle; ++import java.beans.PropertyVetoException; + import java.io.Serializable; ++import javax.swing.JDesktopPane; ++import javax.swing.JInternalFrame; ++import javax.swing.JInternalFrame.JDesktopIcon; ++ + + /** +- * DefaultDesktopManager +- * @author Andrew Selkirk +- * @version 1.0 ++ * DefaultDesktopManager is the default implementation of DesktopManager for ++ * swing. It implements the basic beaviours for JInternalFrames in arbitrary ++ * parents. The methods provided by the class are not meant to be called by ++ * the user, instead, the JInternalFrame methods will call these methods. + */ + public class DefaultDesktopManager implements DesktopManager, Serializable + { ++ /** DOCUMENT ME! */ + static final long serialVersionUID = 4657624909838017887L; + +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * HAS_BEEN_ICONIFIED_PROPERTY +- */ +- static final String HAS_BEEN_ICONIFIED_PROPERTY = ""; // TODO +- +- /** +- * DEFAULT_DRAG_MODE +- */ +- static final int DEFAULT_DRAG_MODE = 0; // TODO +- +- /** +- * OUTLINE_DRAG_MODE +- */ +- static final int OUTLINE_DRAG_MODE = 0; // TODO +- +- /** +- * FASTER_DRAG_MODE +- */ +- static final int FASTER_DRAG_MODE = 0; // TODO +- +- /** +- * dragMode +- */ +- int dragMode; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor DefaultDesktopManager +- */ +- public DefaultDesktopManager() { +- // TODO +- } // DefaultDesktopManager() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * openFrame +- * @param frame TODO +- */ +- public void openFrame(JInternalFrame frame) { +- // TODO +- } // openFrame() +- +- /** +- * closeFrame +- * @param frame TODO +- */ +- public void closeFrame(JInternalFrame frame) { +- // TODO +- } // closeFrame() +- +- /** +- * maximizeFrame +- * @param frame TODO +- */ +- public void maximizeFrame(JInternalFrame frame) { +- // TODO +- } // maximizeFrame() +- +- /** +- * minimizeFrame +- * @param frame TODO +- */ +- public void minimizeFrame(JInternalFrame frame) { +- // TODO +- } // minimizeFrame() +- +- /** +- * iconifyFrame +- * @param frame TODO +- */ +- public void iconifyFrame(JInternalFrame frame) { +- // TODO +- } // iconifyFrame() +- +- /** +- * deiconifyFrame +- * @param frame TODO +- */ +- public void deiconifyFrame(JInternalFrame frame) { +- // TODO +- } // deiconifyFrame() +- +- /** +- * activateFrame +- * @param frame TODO +- */ +- public void activateFrame(JInternalFrame frame) { +- // TODO +- } // activateFrame() +- +- /** +- * deactivateFrame +- * @param frame TODO +- */ +- public void deactivateFrame(JInternalFrame frame) { +- // TODO +- } // deactivateFrame() +- +- /** +- * beginDraggingFrame +- * @param component TODO +- */ +- public void beginDraggingFrame(JComponent component) { +- // TODO +- } // beginDraggingFrame() +- +- /** +- * dragFrame +- * @param component TODO +- * @param newX TODO +- * @param newY TODO +- */ +- public void dragFrame(JComponent component, int newX, int newY) { +- // TODO +- } // dragFrame() +- +- /** +- * endDraggingFrame +- * @param component TODO +- */ +- public void endDraggingFrame(JComponent component) { +- // TODO +- } // endDraggingFrame() +- +- /** +- * beginResizingFrame +- * @param component TODO +- * @param direction TODO +- */ +- public void beginResizingFrame(JComponent component, int direction) { +- // TODO +- } // beginResizingFrame() +- +- /** +- * resizeFrame +- * @param component TODO +- * @param newX TODO +- * @param newY TODO +- * @param newWidth TODO +- * @param newHeight TODO +- */ +- public void resizeFrame(JComponent component, int newX, int newY, +- int newWidth, int newHeight) { +- // TODO +- } // resizeFrame() +- +- /** +- * endResizingFrame +- * @param component TODO +- */ +- public void endResizingFrame(JComponent component) { +- // TODO +- } // endResizingFrame() +- +- /** +- * setBoundsForFrame +- * @param component TODO +- * @param newX TODO +- * @param newY TODO +- * @param newWidth TODO +- * @param newHeight TODO +- */ +- public void setBoundsForFrame(JComponent component, int newX, +- int newY, int newWidth, int newHeight) { +- // TODO +- } // setBoundsForFrame() +- +- /** +- * removeIconFor +- * @param frame TODO +- */ +- protected void removeIconFor(JInternalFrame frame) { +- // TODO +- } // removeIconFor() +- +- /** +- * getBoundsForIconOf +- * @param frame TODO +- * @returns Rectangle +- */ +- protected Rectangle getBoundsForIconOf(JInternalFrame frame) { +- return null; // TODO +- } // getBoundsForIconOf() +- +- /** +- * setPreviousBounds +- * @param frame TODO +- * @param rect TODO +- */ +- protected void setPreviousBounds(JInternalFrame frame, Rectangle rect) { +- // TODO +- } // setPreviousBounds() +- +- /** +- * getPreviousBounds +- * @param frame TODO +- * @returns Rectangle +- */ +- protected Rectangle getPreviousBounds(JInternalFrame frame) { +- return null; // TODO +- } // getPreviousBounds() +- +- /** +- * setWasIcon +- * @param frame TODO +- * @param value TODO +- */ +- protected void setWasIcon(JInternalFrame frame, Boolean value) { +- // TODO +- } // setWasIcon() +- +- /** +- * wasIcon +- * @param frame TODO +- * @returns boolean +- */ +- protected boolean wasIcon(JInternalFrame frame) { +- return false; // TODO +- } // wasIcon() +- ++ /** The property change event fired when the wasIcon property changes. */ ++ static final String WAS_ICON_ONCE_PROPERTY = "wasIconOnce"; + ++ /** ++ * The method of dragging used by the JDesktopPane that parents the ++ * JInternalFrame that is being dragged. ++ */ ++ private int currentDragMode = 0; ++ ++ /** ++ * The cache of the bounds used to draw the outline rectangle when ++ * OUTLINE_DRAG_MODE is used. ++ */ ++ private transient Rectangle dragCache = new Rectangle(); ++ ++ /** ++ * A cached JDesktopPane that is stored when the JInternalFrame is initially ++ * dragged. ++ */ ++ private transient Container pane; ++ ++ /** ++ * An array of Rectangles that holds the bounds of the JDesktopIcons in the ++ * JDesktopPane when looking for where to place a new icon. ++ */ ++ private transient Rectangle[] iconRects; ++ ++ /** ++ * This creates a new DefaultDesktopManager object. ++ */ ++ public DefaultDesktopManager() ++ { ++ } // DefaultDesktopManager() ++ ++ /** ++ * This method is not normally called since the user will typically add the ++ * JInternalFrame to a Container. If this is called, it will try to ++ * determine the parent of the JInternalFrame and remove any icon that ++ * represents this JInternalFrame and add this JInternalFrame. ++ * ++ * @param frame The JInternalFrame to open. ++ */ ++ public void openFrame(JInternalFrame frame) ++ { ++ Container c = frame.getParent(); ++ if (c == null) ++ c = frame.getDesktopIcon().getParent(); ++ if (c == null) ++ return; ++ ++ c.remove(frame.getDesktopIcon()); ++ c.add(frame); ++ frame.setVisible(true); ++ } // openFrame() ++ ++ /** ++ * This method removes the JInternalFrame and JDesktopIcon (if one is ++ * present) from their parents. ++ * ++ * @param frame The JInternalFrame to close. ++ */ ++ public void closeFrame(JInternalFrame frame) ++ { ++ Container c = frame.getParent(); ++ frame.doDefaultCloseAction(); ++ ++ if (c != null) ++ { ++ if (frame.isIcon()) ++ c.remove(frame.getDesktopIcon()); ++ else ++ c.remove(frame); ++ c.repaint(); ++ } ++ } // closeFrame() ++ ++ /** ++ * This method resizes the JInternalFrame to match its parent's bounds. ++ * ++ * @param frame The JInternalFrame to maximize. ++ */ ++ public void maximizeFrame(JInternalFrame frame) ++ { ++ // Can't maximize from iconified state. ++ // It can only return to maximized state, but that would fall under ++ // deiconify. ++ if (frame.isIcon()) ++ return; ++ frame.setNormalBounds(frame.getBounds()); ++ ++ Container p = frame.getParent(); ++ if (p != null) ++ { ++ Rectangle pBounds = p.getBounds(); ++ Insets insets = p.getInsets(); ++ pBounds.width -= insets.left + insets.right; ++ pBounds.height -= insets.top + insets.bottom; ++ ++ setBoundsForFrame(frame, 0, 0, pBounds.width, pBounds.height); ++ } ++ if (p instanceof JDesktopPane) ++ ((JDesktopPane) p).setSelectedFrame(frame); ++ else ++ { ++ try ++ { ++ frame.setSelected(true); ++ } ++ catch (PropertyVetoException e) ++ { ++ // Do nothing. ++ } ++ } ++ } // maximizeFrame() ++ ++ /** ++ * This method restores the JInternalFrame's bounds to what they were ++ * previous to the setMaximize call. ++ * ++ * @param frame The JInternalFrame to minimize. ++ */ ++ public void minimizeFrame(JInternalFrame frame) ++ { ++ Rectangle normalBounds = frame.getNormalBounds(); ++ ++ JDesktopPane p = frame.getDesktopPane(); ++ if (p != null) ++ p.setSelectedFrame(frame); ++ else ++ { ++ try ++ { ++ frame.setSelected(true); ++ } ++ catch (PropertyVetoException e) ++ { ++ // Do nothing. ++ } ++ } ++ ++ setBoundsForFrame(frame, normalBounds.x, normalBounds.y, ++ normalBounds.width, normalBounds.height); ++ } // minimizeFrame() ++ ++ /** ++ * This method removes the JInternalFrame from its parent and adds its ++ * JDesktopIcon representation. ++ * ++ * @param frame The JInternalFrame to iconify. ++ */ ++ public void iconifyFrame(JInternalFrame frame) ++ { ++ JDesktopPane p = frame.getDesktopPane(); ++ JDesktopIcon icon = frame.getDesktopIcon(); ++ if (p != null && p.getSelectedFrame() == frame) ++ p.setSelectedFrame(null); ++ else ++ { ++ try ++ { ++ frame.setSelected(false); ++ } ++ catch (PropertyVetoException e) ++ { ++ } ++ } ++ ++ Container c = frame.getParent(); ++ ++ if (! wasIcon(frame)) ++ { ++ Rectangle r = getBoundsForIconOf(frame); ++ icon.setBounds(r); ++ setWasIcon(frame, true); ++ } ++ ++ if (c != null) ++ { ++ if (icon != null) ++ { ++ c.add(icon); ++ icon.setVisible(true); ++ } ++ c.remove(frame); ++ } ++ } // iconifyFrame() ++ ++ /** ++ * This method removes the JInternalFrame's JDesktopIcon representation and ++ * adds the JInternalFrame back to its parent. ++ * ++ * @param frame The JInternalFrame to deiconify. ++ */ ++ public void deiconifyFrame(JInternalFrame frame) ++ { ++ JDesktopIcon icon = frame.getDesktopIcon(); ++ Container c = icon.getParent(); ++ ++ removeIconFor(frame); ++ c.add(frame); ++ frame.setVisible(true); ++ ++ if (! frame.isSelected()) ++ { ++ JDesktopPane p = frame.getDesktopPane(); ++ if (p != null) ++ p.setSelectedFrame(frame); ++ else ++ { ++ try ++ { ++ frame.setSelected(true); ++ } ++ catch (PropertyVetoException e) ++ { ++ // Do nothing. ++ } ++ } ++ } ++ ++ c.invalidate(); ++ } // deiconifyFrame() ++ ++ /** ++ * This method activates the JInternalFrame by moving it to the front and ++ * selecting it. ++ * ++ * @param frame The JInternalFrame to activate. ++ */ ++ public void activateFrame(JInternalFrame frame) ++ { ++ JDesktopPane p = frame.getDesktopPane(); ++ ++ if (p != null) ++ p.setSelectedFrame(frame); ++ else ++ { ++ try ++ { ++ frame.setSelected(true); ++ } ++ catch (PropertyVetoException e) ++ { ++ } ++ } ++ ++ frame.toFront(); ++ } // activateFrame() ++ ++ /** ++ * This method is called when the JInternalFrame loses focus. ++ * ++ * @param frame The JInternalFram to deactivate. ++ */ ++ public void deactivateFrame(JInternalFrame frame) ++ { ++ JDesktopPane p = frame.getDesktopPane(); ++ if (p != null) ++ { ++ if (p.getSelectedFrame() == frame) ++ p.setSelectedFrame(null); ++ } ++ else ++ { ++ try ++ { ++ frame.setSelected(false); ++ } ++ catch (PropertyVetoException e) ++ { ++ } ++ } ++ } // deactivateFrame() ++ ++ /** ++ * This method is called to indicate that the DesktopManager should prepare ++ * to drag the JInternalFrame. Any state information needed to drag the ++ * frame will be prepared now. ++ * ++ * @param component The JComponent to drag, usually a JInternalFrame. ++ */ ++ public void beginDraggingFrame(JComponent component) ++ { ++ if (component instanceof JDesktopIcon) ++ pane = ((JDesktopIcon) component).getInternalFrame().getDesktopPane(); ++ else ++ pane = ((JInternalFrame) component).getDesktopPane(); ++ if (pane == null) ++ return; ++ ++ dragCache = component.getBounds(); ++ ++ if (! (pane instanceof JDesktopPane)) ++ currentDragMode = JDesktopPane.LIVE_DRAG_MODE; ++ else ++ currentDragMode = ((JDesktopPane) pane).getDragMode(); ++ } // beginDraggingFrame() ++ ++ /** ++ * This method is called to drag the JInternalFrame to a new location. ++ * ++ * @param component The JComponent to drag, usually a JInternalFrame. ++ * @param newX The new x coordinate. ++ * @param newY The new y coordinate. ++ */ ++ public void dragFrame(JComponent component, int newX, int newY) ++ { ++ if (currentDragMode == JDesktopPane.OUTLINE_DRAG_MODE) ++ { ++ // FIXME: Do outline drag mode painting. ++ } ++ else ++ { ++ Rectangle b = component.getBounds(); ++ if (component instanceof JDesktopIcon) ++ component.setBounds(newX, newY, b.width, b.height); ++ else ++ setBoundsForFrame((JInternalFrame) component, newX, newY, b.width, ++ b.height); ++ } ++ } // dragFrame() ++ ++ /** ++ * This method indicates that the dragging is done. Any state information ++ * stored by the DesktopManager can be cleared. ++ * ++ * @param component The JComponent that has finished dragging. ++ */ ++ public void endDraggingFrame(JComponent component) ++ { ++ if (currentDragMode == JDesktopPane.OUTLINE_DRAG_MODE) ++ { ++ setBoundsForFrame((JInternalFrame) component, dragCache.x, ++ dragCache.y, dragCache.width, dragCache.height); ++ pane = null; ++ dragCache = null; ++ } ++ component.repaint(); ++ } // endDraggingFrame() ++ ++ /** ++ * This method is called to indicate that the given JComponent will be ++ * resized. Any state information necessary to resize the JComponent will ++ * be prepared now. ++ * ++ * @param component The JComponent to resize, usually a JInternalFrame. ++ * @param direction The direction to drag in (a SwingConstant). ++ */ ++ public void beginResizingFrame(JComponent component, int direction) ++ { ++ pane = ((JInternalFrame) component).getDesktopPane(); ++ if (pane == null) ++ return; ++ ++ dragCache = component.getBounds(); ++ if (! (pane instanceof JDesktopPane)) ++ currentDragMode = JDesktopPane.LIVE_DRAG_MODE; ++ else ++ currentDragMode = ((JDesktopPane) pane).getDragMode(); ++ } // beginResizingFrame() ++ ++ /** ++ * This method resizes the give JComponent. ++ * ++ * @param component The JComponent to resize. ++ * @param newX The new x coordinate. ++ * @param newY The new y coordinate. ++ * @param newWidth The new width. ++ * @param newHeight The new height. ++ */ ++ public void resizeFrame(JComponent component, int newX, int newY, ++ int newWidth, int newHeight) ++ { ++ dragCache.setBounds(newX, newY, newWidth, newHeight); ++ ++ if (currentDragMode == JDesktopPane.OUTLINE_DRAG_MODE) ++ { ++ // FIXME: Do outline drag painting. ++ } ++ else ++ setBoundsForFrame(component, dragCache.x, dragCache.y, dragCache.width, ++ dragCache.height); ++ } // resizeFrame() ++ ++ /** ++ * This method is called to indicate that the given JComponent has finished ++ * dragging. Any state information stored by the DesktopManager can be ++ * cleared. ++ * ++ * @param component The JComponent that finished resizing. ++ */ ++ public void endResizingFrame(JComponent component) ++ { ++ if (currentDragMode == JDesktopPane.OUTLINE_DRAG_MODE) ++ { ++ setBoundsForFrame((JInternalFrame) component, dragCache.x, ++ dragCache.y, dragCache.width, dragCache.height); ++ pane = null; ++ dragCache = null; ++ } ++ component.repaint(); ++ } // endResizingFrame() ++ ++ /** ++ * This method calls setBounds with the given parameters and repaints the ++ * JComponent. ++ * ++ * @param component The JComponent to set bounds for. ++ * @param newX The new x coordinate. ++ * @param newY The new y coordinate. ++ * @param newWidth The new width. ++ * @param newHeight The new height. ++ */ ++ public void setBoundsForFrame(JComponent component, int newX, int newY, ++ int newWidth, int newHeight) ++ { ++ component.setBounds(newX, newY, newWidth, newHeight); ++ component.revalidate(); ++ ++ // If not null, I'd rather repaint the parent ++ if (component.getParent() != null) ++ component.getParent().repaint(); ++ else ++ component.repaint(); ++ } // setBoundsForFrame() ++ ++ /** ++ * This is a helper method that removes the JDesktopIcon of the given ++ * JInternalFrame from the parent. ++ * ++ * @param frame The JInternalFrame to remove an icon for. ++ */ ++ protected void removeIconFor(JInternalFrame frame) ++ { ++ JDesktopIcon icon = frame.getDesktopIcon(); ++ Container c = icon.getParent(); ++ if (c != null && icon != null) ++ c.remove(icon); ++ } // removeIconFor() ++ ++ /** ++ * This method is called by iconifyFrame to determine the bounds of the ++ * JDesktopIcon for the given JInternalFrame. ++ * ++ * @param frame The JInternalFrame to find the bounds of its JDesktopIcon ++ * for. ++ * ++ * @return The bounds of the JDesktopIcon. ++ */ ++ protected Rectangle getBoundsForIconOf(JInternalFrame frame) ++ { ++ // IconRects has no order to it. ++ // The icon _must_ be placed in the first free slot (working from ++ // the bottom left corner) ++ // The icon also must not be placed where another icon is placed ++ // (regardless whether that frame is an icon currently or not) ++ JDesktopPane desktopPane = frame.getDesktopPane(); ++ Rectangle paneBounds = desktopPane.getBounds(); ++ Insets insets = desktopPane.getInsets(); ++ Dimension pref = frame.getDesktopIcon().getPreferredSize(); ++ ++ if (desktopPane == null) ++ return frame.getDesktopIcon().getBounds(); ++ ++ Component[] frames = desktopPane.getComponents(); ++ ++ int count = 0; ++ for (int i = 0, j = 0; i < frames.length; i++) ++ if (frames[i] instanceof JDesktopIcon ++ || frames[i] instanceof JInternalFrame ++ && ((JInternalFrame) frames[i]).getWasIcon() && frames[i] != frame) ++ count++; ++ iconRects = new Rectangle[count]; ++ for (int i = 0, j = 0; i < frames.length; i++) ++ if (frames[i] instanceof JDesktopIcon) ++ iconRects[--count] = frames[i].getBounds(); ++ else if (frames[i] instanceof JInternalFrame ++ && ((JInternalFrame) frames[i]).getWasIcon() ++ && frames[i] != frame) ++ iconRects[--count] = ((JInternalFrame) frames[i]).getDesktopIcon() ++ .getBounds(); ++ ++ int startingX = insets.left; ++ int startingY = paneBounds.height - insets.bottom - pref.height; ++ Rectangle ideal = new Rectangle(startingX, startingY, pref.width, ++ pref.height); ++ boolean clear = true; ++ ++ while (iconRects.length > 0) ++ { ++ clear = true; ++ for (int i = 0; i < iconRects.length; i++) ++ { ++ if (iconRects[i] != null && iconRects[i].intersects(ideal)) ++ { ++ clear = false; ++ break; ++ } ++ } ++ if (clear) ++ return ideal; ++ ++ startingX += pref.width; ++ if (startingX + pref.width > paneBounds.width - insets.right) ++ { ++ startingX = insets.left; ++ startingY -= pref.height; ++ } ++ ideal.setBounds(startingX, startingY, pref.width, pref.height); ++ } ++ ++ return ideal; ++ } // getBoundsForIconOf() ++ ++ /** ++ * This method sets the bounds of the JInternalFrame right before the ++ * maximizeFrame call. ++ * ++ * @param frame The JInternalFrame being maximized. ++ * @param rect The normal bounds. ++ */ ++ protected void setPreviousBounds(JInternalFrame frame, Rectangle rect) ++ { ++ frame.setNormalBounds(rect); ++ } // setPreviousBounds() ++ ++ /** ++ * This method returns the normal bounds of the JInternalFrame from before ++ * the maximize call. ++ * ++ * @param frame The JInternalFrame that is being restored. ++ * ++ * @return The previous bounds of the JInternalFrame. ++ */ ++ protected Rectangle getPreviousBounds(JInternalFrame frame) ++ { ++ return frame.getNormalBounds(); ++ } // getPreviousBounds() ++ ++ /** ++ * This method sets the value to true if the given JInternalFrame has been ++ * iconized and the bounds of its DesktopIcon are valid. ++ * ++ * @param frame The JInternalFrame for the JDesktopIcon. ++ * @param value True if the JInternalFrame has been iconized and the bounds ++ * of the JDesktopIcon are valid. ++ */ ++ protected void setWasIcon(JInternalFrame frame, boolean value) ++ { ++ frame.setWasIcon(value, WAS_ICON_ONCE_PROPERTY); ++ } // setWasIcon() ++ ++ /** ++ * This method returns true if the given JInternalFrame has been iconized ++ * and the bounds of its DesktopIcon are valid. ++ * ++ * @param frame The JInternalFrame for the JDesktopIcon. ++ * ++ * @return True if the given JInternalFrame has been iconized and the bounds ++ * of its DesktopIcon are valid. ++ */ ++ protected boolean wasIcon(JInternalFrame frame) ++ { ++ return frame.getWasIcon(); ++ } // wasIcon() + } // DefaultDesktopManager +Index: javax/swing/DefaultListCellRenderer.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/DefaultListCellRenderer.java,v +retrieving revision 1.3 +diff -u -r1.3 DefaultListCellRenderer.java +--- javax/swing/DefaultListCellRenderer.java 9 Jan 2004 10:18:47 -0000 1.3 ++++ javax/swing/DefaultListCellRenderer.java 6 Sep 2004 16:35:54 -0000 +@@ -41,214 +41,137 @@ + import java.awt.Rectangle; + import java.io.Serializable; + import javax.swing.border.Border; ++import javax.swing.border.EmptyBorder; ++ + + /** +- * DefaultListCellRenderer +- * @author Andrew Selkirk +- * @version 1.0 ++ * DefaultListCellRenderer. This class is responsible for rendering list ++ * cells. ++ * ++ * @author Andrew Selkirk ++ * @version 1.0 + */ +-public class DefaultListCellRenderer extends JLabel +- implements ListCellRenderer, Serializable ++public class DefaultListCellRenderer extends JLabel implements ListCellRenderer, ++ Serializable + { + static final long serialVersionUID = 7708947179685189462L; + +- //------------------------------------------------------------- +- // Classes ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * UIResource +- */ +- public static class UIResource extends DefaultListCellRenderer +- implements javax.swing.plaf.UIResource { +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor UIResource +- */ +- public UIResource() { +- // TODO +- } // UIResource() +- +- +- } // UIResource +- +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * noFocusBorder +- */ +- protected static Border noFocusBorder = null; // TODO +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor DefaultListCellRenderer +- */ +- public DefaultListCellRenderer() { +- // TODO +- } // DefaultListCellRenderer() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * getListCellRendererComponent +- * @param list TODO +- * @param value TODO +- * @param index TODO +- * @param isSelected TODO +- * @param cellHasFocus TODO +- * @returns Component +- */ +- public Component getListCellRendererComponent(JList list, +- Object value, int index, boolean isSelected, boolean cellHasFocus) { +- return null; // TODO +- } // getListCellRendererComponent() +- +- /** +- * validate +- */ +- public void validate() { +- // TODO +- } // validate() +- +- /** +- * revalidate +- */ +- public void revalidate() { +- // TODO +- } // revalidate() +- +- /** +- * repaint +- * @param tm TODO +- * @param x TODO +- * @param y TODO +- * @param w TODO +- * @param h TODO +- */ +- public void repaint(long tm, int x, int y, int w, int h) { +- // TODO +- } // repaint() +- +- /** +- * repaint +- * @param rect TODO +- */ +- public void repaint(Rectangle rect) { +- // TODO +- } // repaint() +- +- /** +- * firePropertyChange +- * @param propertyName TODO +- * @param oldValue TODO +- * @param newValue TODO +- */ +- protected void firePropertyChange(String propertyName, +- Object oldValue, Object newValue) { +- // TODO +- } // firePropertyChange() +- +- /** +- * firePropertyChange +- * @param propertyName TODO +- * @param oldValue TODO +- * @param newValue TODO +- */ +- public void firePropertyChange(String propertyName, +- byte oldValue, byte newValue) { +- // TODO +- } // firePropertyChange() +- +- /** +- * firePropertyChange +- * @param propertyName TODO +- * @param oldValue TODO +- * @param newValue TODO +- */ +- public void firePropertyChange(String propertyName, +- char oldValue, char newValue) { +- // TODO +- } // firePropertyChange() +- +- /** +- * firePropertyChange +- * @param propertyName TODO +- * @param oldValue TODO +- * @param newValue TODO +- */ +- public void firePropertyChange(String propertyName, +- short oldValue, short newValue) { +- // TODO +- } // firePropertyChange() +- +- /** +- * firePropertyChange +- * @param propertyName TODO +- * @param oldValue TODO +- * @param newValue TODO +- */ +- public void firePropertyChange(String propertyName, +- int oldValue, int newValue) { +- // TODO +- } // firePropertyChange() +- +- /** +- * firePropertyChange +- * @param propertyName TODO +- * @param oldValue TODO +- * @param newValue TODO +- */ +- public void firePropertyChange(String propertyName, +- long oldValue, long newValue) { +- // TODO +- } // firePropertyChange() +- +- /** +- * firePropertyChange +- * @param propertyName TODO +- * @param oldValue TODO +- * @param newValue TODO +- */ +- public void firePropertyChange(String propertyName, +- float oldValue, float newValue) { +- // TODO +- } // firePropertyChange() +- +- /** +- * firePropertyChange +- * @param propertyName TODO +- * @param oldValue TODO +- * @param newValue TODO +- */ +- public void firePropertyChange(String propertyName, +- double oldValue, double newValue) { +- // TODO +- } // firePropertyChange() +- +- /** +- * firePropertyChange +- * @param propertyName TODO +- * @param oldValue TODO +- * @param newValue TODO +- */ +- public void firePropertyChange(String propertyName, +- boolean oldValue, boolean newValue) { +- // TODO +- } // firePropertyChange() +- +- +-} // DefaultListCellRenderer ++ public static class UIResource extends DefaultListCellRenderer ++ implements javax.swing.plaf.UIResource ++ { ++ public UIResource() ++ { ++ } ++ } ++ ++ /** ++ * This border is used whenever renderer doesn't have a focus. ++ */ ++ protected static Border noFocusBorder = new EmptyBorder(1, 1, 1, 1); ++ ++ /** ++ * getListCellRendererComponent ++ * ++ * @param list JList list for the 'value' ++ * @param value object that should be rendered in the cell ++ * @param index index of the cell ++ * @param isSelected draw cell highlighted if isSelected is true ++ * @param cellHasFocus draw focus rectangle around cell if the cell has ++ * focus ++ * ++ * @return Component that will be painted to the desired cell. ++ */ ++ public Component getListCellRendererComponent(JList list, Object value, ++ int index, boolean isSelected, ++ boolean cellHasFocus) ++ { ++ String s = value.toString(); ++ setText(s); ++ setOpaque(true); ++ ++ if (isSelected) ++ { ++ setBackground(list.getSelectionBackground()); ++ setForeground(list.getSelectionForeground()); ++ } ++ else ++ { ++ setBackground(list.getBackground()); ++ setForeground(list.getForeground()); ++ } ++ ++ setEnabled(list.isEnabled()); ++ setFont(list.getFont()); ++ ++ // Use focusCellHighlightBorder when renderer has focus and ++ // noFocusBorder otherwise ++ ++ if (cellHasFocus) ++ setBorder(UIManager.getBorder("List.focusCellHighlightBorder")); ++ else ++ setBorder(noFocusBorder); ++ ++ return this; ++ } ++ ++ public void validate() ++ { ++ } ++ ++ public void revalidate() ++ { ++ } ++ ++ public void repaint(long tm, int x, int y, int w, int h) ++ { ++ } ++ ++ public void repaint(Rectangle rect) ++ { ++ } ++ ++ protected void firePropertyChange(String propertyName, Object oldValue, ++ Object newValue) ++ { ++ } ++ ++ public void firePropertyChange(String propertyName, byte oldValue, ++ byte newValue) ++ { ++ } ++ ++ public void firePropertyChange(String propertyName, char oldValue, ++ char newValue) ++ { ++ } ++ ++ public void firePropertyChange(String propertyName, short oldValue, ++ short newValue) ++ { ++ } ++ ++ public void firePropertyChange(String propertyName, int oldValue, ++ int newValue) ++ { ++ } ++ ++ public void firePropertyChange(String propertyName, long oldValue, ++ long newValue) ++ { ++ } ++ ++ public void firePropertyChange(String propertyName, float oldValue, ++ float newValue) ++ { ++ } ++ ++ public void firePropertyChange(String propertyName, double oldValue, ++ double newValue) ++ { ++ } ++ ++ public void firePropertyChange(String propertyName, boolean oldValue, ++ boolean newValue) ++ { ++ } ++} +Index: javax/swing/DefaultListModel.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/DefaultListModel.java,v +retrieving revision 1.2 +diff -u -r1.2 DefaultListModel.java +--- javax/swing/DefaultListModel.java 11 Jun 2003 13:20:39 -0000 1.2 ++++ javax/swing/DefaultListModel.java 6 Sep 2004 16:35:54 -0000 +@@ -1,5 +1,5 @@ + /* DefaultListModel.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,499 +35,473 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing; + +-import java.util.ArrayList; + import java.util.Enumeration; +-import java.util.NoSuchElementException; + import java.util.Vector; + + /** +- * DefaultListModel +- * @author Andrew Selkirk +- * @version 1.0 ++ * This is a default subclass of the {@link AbstractListModel}, used by ++ * {@link javax.swing.JList} and similar objects as the model of a list of ++ * values. The implementation is based on an underlying {@link ++ * java.util.Vector}. ++ * ++ * @author Andrew Selkirk ++ * @author Graydon Hoare (graydon@redhat.com) + */ ++ + public class DefaultListModel extends AbstractListModel + { ++ private static final long serialVersionUID = 2315945659722172272L; + +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * elements. Note: Sun obviously implemented the storage as a +- * Vector according to the similar API on this class. I choose +- * instead to implement the model with a proper collection object. +- * Is this a good choice? Probably not (ya..I know there are +- * sync issues by doing this) +- */ +- private ArrayList elements = new ArrayList(); +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor DefaultListModel +- */ +- public DefaultListModel() { +- // TODO +- } // DefaultListModel() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * elementAt +- * @param index TODO +- * @returns Object +- */ +- public Object elementAt(int index) { +- return elements.get(index); +- } // elementAt() +- +- /** +- * toString +- * @returns String +- */ +- public String toString() { +- return elements.toString(); +- } // toString() +- +- /** +- * indexOf +- * @param element TODO +- * @returns int +- */ +- public int indexOf(Object element) { +- return elements.indexOf(element); +- } // indexOf() +- +- /** +- * indexOf +- * @param element TODO +- * @param startIndex TODO +- * @returns int +- */ +- public int indexOf(Object element, int startIndex) { +- +- // Variables +- int index; +- Object test; +- +- // Process Elements +- for (index = startIndex; index < elements.size(); index++) { +- test = elements.get(index); +- if (test.equals(element) == true) { +- return index; +- } // if +- } // for +- return -1; +- +- } // indexOf() +- +- /** +- * lastIndexOf +- * @param element TODO +- * @returns int +- */ +- public int lastIndexOf(Object element) { +- return elements.lastIndexOf(element); +- } // lastIndexOf() +- +- /** +- * lastIndexOf +- * @param element TODO +- * @param endIndex TODO +- * @returns int +- */ +- public int lastIndexOf(Object element, int endIndex) { +- +- // Variables +- int index; +- Object test; +- +- // Process Elements +- for (index = endIndex; index >= 0; index--) { +- test = elements.get(index); +- if (test.equals(element) == true) { +- return index; +- } // if +- } // for +- return -1; +- +- } // lastIndexOf() +- +- /** +- * get +- * @param index TODO +- * @returns Object +- */ +- public Object get(int index) { +- return elements.get(index); +- } // get() +- +- /** +- * set +- * @param index TODO +- * @param element TODO +- * @returns Object +- */ +- public Object set(int index, Object element) { +- +- // Variables +- Object result; +- +- // Process Action +- result = elements.set(index, element); +- +- // Send event +- fireContentsChanged(this, index, index); +- +- return result; +- +- } // set() +- +- /** +- * add +- * @param index TODO +- * @param element TODO +- */ +- public void add(int index, Object element) { +- +- // Process Action +- elements.add(index, element); +- +- // Send event +- fireContentsChanged(this, index, index); +- +- } // add() +- +- /** +- * addElement +- * @param element TODO +- */ +- public void addElement(Object element) { +- +- // Process Action +- elements.add(element); +- +- // Send event +- fireIntervalAdded(this, elements.size(), elements.size()); +- +- } // addElement() +- +- /** +- * size +- * @returns int +- */ +- public int size() { +- return elements.size(); +- } // size() +- +- /** +- * toArray +- * @returns Object[] +- */ +- public Object[] toArray() { +- return elements.toArray(); +- } // toArray() +- +- /** +- * contains +- * @param element TODO +- * @returns boolean +- */ +- public boolean contains(Object element) { +- return elements.contains(element); +- } // contains() +- +- /** +- * copyInto +- * @param array TODO +- */ +- public void copyInto(Object[] array) { +- +- // Variables +- int index; +- int size; +- Object[] srcArray; +- +- // Initialize +- size = size(); +- srcArray = toArray(); +- +- // Process Elements +- for (index = 0; index < size; index++) { +- array[index] = srcArray[index]; +- } // for +- +- } // copyInto() +- +- /** +- * clear +- */ +- public void clear() { +- +- // Process Action +- elements.clear(); +- +- // Send event +- fireIntervalRemoved(this, 0, elements.size()); +- +- } // clear() +- +- /** +- * remove +- * @param index TODO +- * @returns Object +- */ +- public Object remove(int index) { +- +- // Variables +- Object result; +- +- // Process Action +- result = elements.remove(index); +- +- // Send event +- fireIntervalRemoved(this, index, index); +- +- return result; +- +- } // remove() +- +- /** +- * isEmpty +- * @returns boolean +- */ +- public boolean isEmpty() { +- return elements.isEmpty(); +- } // isEmpty() +- +- /** +- * elements +- * @returns Enumeration +- */ +- public Enumeration elements() { +- +- // TODO +- // Note: This is a pathetic implementation. If Vector +- // was used for storage, this wouldn't be an issue. I'll +- // have to implement an Enumeration inner class sometime. +- +- // Variables +- Vector vector; +- +- // Get Enumeration +- vector = new Vector(elements); +- return vector.elements(); +- +- } // elements() +- +- /** +- * trimToSize +- */ +- public void trimToSize() { +- elements.trimToSize(); +- } // trimToSize() +- +- /** +- * ensureCapacity +- * @param size TODO +- */ +- public void ensureCapacity(int size) { +- elements.ensureCapacity(size); +- } // ensureCapacity() +- +- /** +- * setSize +- * @param size TODO +- */ +- public void setSize(int size) { +- elements.ensureCapacity(size); +- } // setSize() +- +- /** +- * capacity +- * @returns int +- */ +- public int capacity() { +- return elements.size(); +- } // capacity() +- +- /** +- * firstElement +- * @returns Object +- */ +- public Object firstElement() { +- +- // Variables +- Object element; +- +- try { +- element = elements.get(0); +- return element; +- } catch (IndexOutOfBoundsException e) { +- throw new NoSuchElementException(); +- } // try +- +- } // firstElement() +- +- /** +- * lastElement +- * @returns Object +- */ +- public Object lastElement() { +- +- // Variables +- Object element; +- +- try { +- element = elements.get(elements.size() - 1); +- return element; +- } catch (ArrayIndexOutOfBoundsException e) { +- throw new NoSuchElementException(); +- } // try +- +- } // lastElement() +- +- /** +- * setElementAt +- * @param element TODO +- * @param index TODO +- */ +- public void setElementAt(Object element, int index) { +- +- // Process Action +- elements.set(index, element); +- +- // Send event +- fireContentsChanged(this, index, index); +- +- } // setElementAt() +- +- /** +- * removeElementAt +- * @param index TODO +- */ +- public void removeElementAt(int index) { +- +- // Process Action +- elements.remove(index); +- +- // Send event +- fireIntervalRemoved(this, index, index); +- +- } // removeElementAt() +- +- /** +- * insertElementAt +- * @param element TODO +- * @param index TODO +- */ +- public void insertElementAt(Object element, int index) { +- +- // Process Action +- elements.add(index, element); +- +- // Send event +- fireIntervalRemoved(this, index, index); +- +- } // insertElementAt() +- +- /** +- * removeElement +- * @param element TODO +- * @returns boolean +- */ +- public boolean removeElement(Object element) { +- +- // Variables +- int index; +- +- index = elements.indexOf(element); +- if (index != -1) { +- elements.remove(index); +- +- // Send event +- fireIntervalRemoved(this, index, index); +- +- return true; +- +- } // if +- +- return false; +- +- } // removeElement() +- +- /** +- * removeAllElements +- */ +- public void removeAllElements() { +- +- // Variables +- int size; +- +- size = size(); +- +- if (size > 0) { +- +- // Process Action +- elements.clear(); +- +- // Send event +- fireIntervalRemoved(this, 0, size - 1); +- +- } // if +- +- } // removeAllElements() +- +- /** +- * removeRange +- * @param startIndex TODO +- * @param endIndex TODO +- */ +- public void removeRange(int startIndex, int endIndex) { +- +- // Variables +- int index; +- +- // Check Indices +- if (startIndex > endIndex) { +- throw new IllegalArgumentException(); +- } // if +- +- // Process Elements +- for (index = endIndex; index >= startIndex; index--) { +- elements.remove(index); +- } // for +- +- // Send event +- fireIntervalRemoved(this, startIndex, endIndex); +- +- } // removeRange() +- +- /** +- * getSize +- * @returns int +- */ +- public int getSize() { +- return elements.size(); +- } // getSize() +- +- /** +- * getElementAt +- * @param index TODO +- * @returns Object +- */ +- public Object getElementAt(int index) { +- return elements.get(index); +- } // getElementAt() +- +- +-} // DefaultListModel ++ /** ++ * The vector of elements in this list model. ++ */ ++ private Vector elements = new Vector(); ++ ++ /** ++ * Gets an element of the list at the provided index. ++ * ++ * @param index The index of the element to get ++ * ++ * @return The object at the given index ++ * ++ * @throws ArrayIndexOutOfBoundsException If the provided index is ++ * outside the bounds of the list [0, size()) ++ */ ++ public Object elementAt(int index) ++ { ++ return elements.elementAt(index); ++ } ++ ++ /** ++ * Convert the list to a string representation. ++ * ++ * @return A string representation of the list ++ */ ++ public String toString() ++ { ++ return elements.toString(); ++ } ++ ++ /** ++ * Gets the first index of a particular element in the list. ++ * ++ * @param element The element to search for ++ * ++ * @return The first index in the list at which an object ++ * obj exists such that obj.equals(element) is ++ * true; if no such object exists, the method returns ++ * -1 ++ */ ++ public int indexOf(Object element) ++ { ++ return elements.indexOf(element); ++ } ++ ++ /** ++ * Gets the first index of a particular element in a list which occurs ++ * at or after a particular index. ++ * ++ * @param element The element to search for ++ * @param startIndex The index to begin searching at ++ * ++ * @return The first index in the list, greater than or equal to ++ * startIndex, at which an object obj exists ++ * such that obj.equals(element) is true; if no ++ * such object exists, the method returns -1 ++ */ ++ public int indexOf(Object element, int startIndex) ++ { ++ return elements.indexOf(element, startIndex); ++ } ++ ++ /** ++ * Gets the last index of a particular element in the list. ++ * ++ * @param element The element to search for ++ * ++ * @return The last index in the list at which an object ++ * obj exists such that obj.equals(element) is ++ * true; if no such object exists, the method returns ++ * -1 ++ */ ++ public int lastIndexOf(Object element) ++ { ++ return elements.lastIndexOf(element); ++ } ++ ++ /** ++ * Gets the last index of a particular element in a list which occurs ++ * at or before a particular index. ++ * ++ * @param element The element to search for ++ * @param endIndex The index to finish searching at ++ * ++ * @return The last index in the list, less than to or equal to ++ * endIndexIndex, at which an object obj exists ++ * such that obj.equals(element) is true; if no ++ * such object exists, the method returns -1 ++ */ ++ public int lastIndexOf(Object element, int endIndex) ++ { ++ return elements.lastIndexOf(element, endIndex); ++ } ++ ++ /** ++ * Gets the list element at a particular index. ++ * ++ * @param index The index to get the list value at ++ * ++ * @return The list value at the provided index ++ * ++ * @throws ArrayIndexOutOfBoundsException If the provided index is ++ * outside the bounds of the list [0, size()) ++ */ ++ public Object get(int index) ++ { ++ return elements.get(index); ++ } ++ ++ /** ++ * Sets the list element at a particular index. ++ * ++ * @param index The list index at which to set a value ++ * @param element The value to set at the specified index ++ * ++ * @return The value previously held at the specified index ++ * ++ * @throws ArrayIndexOutOfBoundsException If the provided index is ++ * outside the bounds of the list [0, size()) ++ */ ++ public Object set(int index, Object element) ++ { ++ Object result; ++ result = elements.set(index, element); ++ fireContentsChanged(this, index, index); ++ return result; ++ } ++ ++ /** ++ * Inserts an element at a particular index in the list. Each element at ++ * index i >= index is shifted to position i+1. ++ * If index is equal to size(), this is ++ * equivalent to appending an element to the array. Any ++ * index greater than size() is illegal. ++ * ++ * @param index The index to insert the element at ++ * @param element The element to insert at the index ++ * ++ * @throws ArrayIndexOutOfBoundsException If the provided index is ++ * outside the bounds [0, size()] ++ */ ++ public void add(int index, Object element) ++ { ++ elements.add(index, element); ++ fireContentsChanged(this, index, index); ++ } ++ ++ /** ++ * Inserts an element at the end of the list. This is equivalent to ++ * calling list.add(list.size(), element). ++ * ++ * @param element The element to add to the list ++ */ ++ public void addElement(Object element) ++ { ++ elements.add(element); ++ fireIntervalAdded(this, elements.size(), elements.size()); ++ } ++ ++ /** ++ * Gets the number of elements in the list. ++ * ++ * @return The number of elements in the list ++ */ ++ public int size() ++ { ++ return elements.size(); ++ } ++ ++ /** ++ * Gets an array containing the elements of the list. ++ * ++ * @return An array of the objects in the list, in the order they occur ++ * in the list ++ */ ++ public Object[] toArray() ++ { ++ return elements.toArray(); ++ } ++ ++ /** ++ * Determines whether a particular element is a member of the list. ++ * ++ * @param element The element to search for ++ * ++ * @return true if element is a member of the ++ * list, otherwise false ++ */ ++ public boolean contains(Object element) ++ { ++ return elements.contains(element); ++ } ++ ++ /** ++ * Copies the list into a provided array. The provided array must be at ++ * least as large as the list. ++ * ++ * @param array The array to copy the list into ++ * ++ * @throws IndexOutOfBoundsException if the array is too small to hold the ++ * elements of the list ++ */ ++ public void copyInto(Object[] array) ++ { ++ elements.copyInto(array); ++ } ++ ++ /** ++ * Erases all the elements of the list, setting the list's size to 0. ++ */ ++ public void clear() ++ { ++ elements.clear(); ++ fireIntervalRemoved(this, 0, elements.size()); ++ } ++ ++ /** ++ * Removes the element at a particular index from the list. ++ * ++ * @param index The index of the element to remove ++ * ++ * @return The value at the index, which has been removed from the list ++ * ++ * @throws ArrayIndexOutOfBoundsException If the provided index is ++ * outside the bounds of the list [0, size()) ++ */ ++ public Object remove(int index) ++ { ++ Object result; ++ result = elements.remove(index); ++ fireIntervalRemoved(this, index, index); ++ return result; ++ } ++ ++ /** ++ * Determines whether the list is empty. ++ * ++ * @return true if the list is empty, otherwise ++ * false ++ */ ++ public boolean isEmpty() ++ { ++ return elements.isEmpty(); ++ } ++ ++ /** ++ * Returns an {@link java.util.Enumeration} over the elements of the list. ++ * ++ * @return A new enumeration which iterates over the list ++ */ ++ public Enumeration elements() ++ { ++ return elements.elements(); ++ } ++ ++ /** ++ * Sets the capacity of the list to be equal to its size. The list's capacity ++ * is the number of elements it can hold before it needs to be reallocated. ++ * The list's size is the number of elements it currently holds. ++ */ ++ public void trimToSize() ++ { ++ elements.trimToSize(); ++ } ++ ++ /** ++ * Ensures that the list's capacity is at least equal to ++ * size. The list's capacity is the number of elements it ++ * can hold before it needs to be reallocated. ++ * ++ * @param size The capacity to ensure the list can hold ++ */ ++ public void ensureCapacity(int size) ++ { ++ elements.ensureCapacity(size); ++ } ++ ++ /** ++ * Sets the size of the list to a particular value. If the specified size ++ * is greater than the current size, the values at the excess list ++ * indices are set to null. If the specified size is less ++ * than the current size, the excess elements are removed from the list. ++ * ++ * @param size The new size to set the list to ++ */ ++ public void setSize(int size) ++ { ++ elements.setSize(size); ++ } ++ ++ /** ++ * Gets the capacity of the list. The list's capacity is the number of ++ * elements it can hold before it needs to be reallocated. ++ * ++ * @return The capacity of the list ++ */ ++ public int capacity() ++ { ++ return elements.capacity(); ++ } ++ ++ /** ++ * Gets the first element in the list. ++ * ++ * @return The first element in the list ++ */ ++ public Object firstElement() ++ { ++ return elements.firstElement(); ++ } ++ ++ /** ++ * Gets the last element in the list. ++ * ++ * @return The last element in the list ++ */ ++ public Object lastElement() ++ { ++ return elements.lastElement(); ++ } ++ ++ /** ++ * Sets the list element at a particular index. ++ * ++ * @param element The value to set at the specified index ++ * @param index The list index at which to set a value ++ * ++ * @throws ArrayIndexOutOfBoundsException If the provided index is ++ * outside the bounds of the list [0, size()) ++ */ ++ public void setElementAt(Object element, int index) ++ { ++ elements.setElementAt(element, index); ++ fireContentsChanged(this, index, index); ++ } ++ ++ /** ++ * Removes the element at a particular index from the list. ++ * ++ * @param index The index of the element to remove ++ * ++ * @throws ArrayIndexOutOfBoundsException If the provided index is ++ * outside the bounds of the list [0, size()) ++ */ ++ public void removeElementAt(int index) ++ { ++ elements.remove(index); ++ fireIntervalRemoved(this, index, index); ++ } ++ ++ /** ++ * Inserts an element at a particular index in the list. Each element at ++ * index i >= index is shifted to position i+1. ++ * If index is equal to size(), this is ++ * equivalent to appending an element to the array. Any ++ * index greater than size() is illegal. ++ * ++ * @param element The element to insert at the index ++ * @param index The index to insert the element at ++ * ++ * @throws ArrayIndexOutOfBoundsException If the provided index is ++ * outside the bounds [0, size()] ++ */ ++ public void insertElementAt(Object element, int index) ++ { ++ elements.insertElementAt(element, index); ++ fireIntervalAdded(this, index, index); ++ } ++ ++ /** ++ * Removes the first occurrence of a particular element in the list. If the ++ * element does not exist in the list, nothing happens. ++ * ++ * @param element The element to remove ++ * ++ * @return true if the element existed in the list (and was ++ * removed), false otherwise ++ */ ++ public boolean removeElement(Object element) ++ { ++ int index; ++ index = elements.indexOf(element); ++ if (index != -1) ++ { ++ elements.remove(index); ++ fireIntervalRemoved(this, index, index); ++ return true; ++ } ++ return false; ++ } ++ ++ /** ++ * Remove all elements in the list. ++ */ ++ public void removeAllElements() ++ { ++ int size; ++ size = size(); ++ if (size > 0) ++ { ++ elements.clear(); ++ fireIntervalRemoved(this, 0, size - 1); ++ } ++ } ++ ++ /** ++ * Remove all elements between startIndex and ++ * endIndex inclusive. ++ * ++ * @param startIndex The first index in the range to remove ++ * @param endIndex The last index in the range to remove ++ * ++ * @throws ArrayIndexOutOfBoundsException if either index is outside the ++ * valid range of indices for this list [0, size()) ++ * @throws IllegalArgumentException if startIndex > endIndex ++ */ ++ public void removeRange(int startIndex, int endIndex) ++ { ++ int index; ++ if (startIndex > endIndex) ++ throw new IllegalArgumentException(); ++ for (index = endIndex; index >= startIndex; index--) ++ elements.remove(index); ++ fireIntervalRemoved(this, startIndex, endIndex); ++ } ++ ++ /** ++ * Gets the size of the list. ++ * ++ * @return The number of elements currently in the list ++ */ ++ public int getSize() ++ { ++ return elements.size(); ++ } ++ ++ /** ++ * Gets the list element at a particular index. ++ * ++ * @param index The index to get the list value at ++ * ++ * @return The list value at the provided index ++ * ++ * @throws ArrayIndexOutOfBoundsException If the provided index is ++ * outside the bounds of the list [0, size()) ++ */ ++ public Object getElementAt(int index) ++ { ++ return elements.get(index); ++ } ++} +Index: javax/swing/DefaultListSelectionModel.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/DefaultListSelectionModel.java,v +retrieving revision 1.2 +diff -u -r1.2 DefaultListSelectionModel.java +--- javax/swing/DefaultListSelectionModel.java 11 Jun 2003 13:20:39 -0000 1.2 ++++ javax/swing/DefaultListSelectionModel.java 6 Sep 2004 16:35:54 -0000 +@@ -1,5 +1,5 @@ +-/* DefaultListSelectionModel.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++/* DefaultListSelectionModel.java -- ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,151 +35,556 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing; + + import java.io.Serializable; + import java.util.EventListener; +-import java.util.Vector; ++import java.util.BitSet; + import javax.swing.event.EventListenerList; ++import javax.swing.event.ListSelectionEvent; + import javax.swing.event.ListSelectionListener; + +-public class DefaultListSelectionModel implements Cloneable, ListSelectionModel, Serializable ++ ++/** ++ *

    This class provides a default implementation of {@link ++ * ListSelectioModel}, which is used by {@link javax.swing.JList} and ++ * similar classes to manage the selection status of a number of data ++ * elements.

    ++ * ++ *

    The class is organized abstractly as a set of intervals of ++ * integers. Each interval indicates an inclusive range of indices in a ++ * list -- held by some other object and unknown to this class -- which is ++ * considered "selected". There are various accessors for querying and ++ * modifying the set of intervals, with simplified forms accepting a single ++ * index, representing an interval with only one element.

    ++ */ ++public class DefaultListSelectionModel implements Cloneable, ++ ListSelectionModel, ++ Serializable + { +- int mode = SINGLE_SELECTION; ++ private static final long serialVersionUID = -5718799865110415860L; ++ ++ /** The list of ListSelectionListeners subscribed to this selection model. */ ++ protected EventListenerList listenerList = new EventListenerList(); + +- Vector sel = new Vector(); + +- Vector listeners; ++ /** ++ * The current list selection mode. Must be one of the numeric constants ++ * SINGLE_SELECTION, SINGLE_INTERVAL_SELECTION ++ * or MULTIPLE_INTERVAL_SELECTION from {@link ++ * ListSelectionModel}. The default value is ++ * MULTIPLE_INTERVAL_SELECTION. ++ */ ++ int selectionMode = MULTIPLE_INTERVAL_SELECTION; ++ ++ ++ /** ++ * The index of the "lead" of the most recent selection. The lead is the ++ * second argument in any call to {@link #setSelectionInterval}, {@link ++ * #addSelectionInterval} or {@link #removeSelectionInterval}. Generally ++ * the lead refers to the most recent position a user dragged their mouse ++ * over. ++ */ ++ int leadSelectionIndex = -1; ++ ++ ++ /** ++ * The index of the "anchor" of the most recent selection. The anchor is ++ * the first argument in any call to {@link #setSelectionInterval}, ++ * {@link #addSelectionInterval} or {@link ++ * #removeSelectionInterval}. Generally the anchor refers to the first ++ * recent position a user clicks when they begin to drag their mouse over ++ * a list. ++ * ++ * @see #getAnchorSelectionIndex ++ * @see #setAnchorSelectionIndex ++ */ ++ int anchorSelectionIndex = -1; ++ ++ ++ /** ++ * controls the range of indices provided in any {@link ++ * ListSelectionEvent} fired by the selectionModel. Let ++ * [A,L] be the range of indices between {@link ++ * anchorSelectionIndex} and {@link leadSelectionIndex} inclusive, and ++ * let [i0,i1] be the range of indices changed in a given ++ * call which generates a {@link ListSelectionEvent}. Then when this ++ * property is true, the {@link ListSelectionEvent} contains ++ * the range [A,L] union [i0,i1]; when false it ++ * will contain only [i0,i1]. The default is ++ * true. ++ * ++ * @see #isLeadAnchorNotificationEnabled ++ * @see #setLeadAnchorNotificationEnabled ++ */ ++ boolean leadAnchorNotificationEnabled = true; ++ ++ ++ /** ++ * Whether the selection is currently "adjusting". Any {@link ++ * ListSelectionEvent} events constructed in response to changes in this ++ * list selection model will have their {@link ++ * ListSelectionEvent#isAdjusting} field set to this value. ++ * ++ * @see #getValueIsAdjusting ++ * @see #setValueIsAdjusting ++ */ ++ boolean valueIsAdjusting = false; ++ ++ ++ /** ++ * The current set of "intervals", represented simply by a {@link ++ * java.util.BitSet}. A set bit indicates a selected index, whereas a ++ * cleared bit indicates a non-selected index. ++ */ ++ BitSet sel = new BitSet(); ++ ++ ++ /** ++ * Gets the value of the {@link #selectionMode} property. ++ * ++ * @return The current value of the property ++ */ ++ public int getSelectionMode() ++ { ++ return selectionMode; ++ } ++ ++ /** ++ * Sets the value of the {@link #selectionMode} property. ++ * ++ * @param a The new value of the property ++ */ ++ public void setSelectionMode(int a) ++ { ++ selectionMode = a; ++ } ++ ++ /** ++ * Gets the value of the {@link #anchorSelectionIndex} property. ++ * ++ * @return The current property value ++ * ++ * @see #setAnchorSelectionIndex ++ */ ++ public int getAnchorSelectionIndex() ++ { ++ return anchorSelectionIndex; ++ } ++ ++ /** ++ * Sets the value of the {@link #anchorSelectionIndex} property. ++ * ++ * @param anchorIndex The new property value ++ * ++ * @see #getAnchorSelectionIndex ++ */ ++ public void setAnchorSelectionIndex(int anchorIndex) ++ { ++ anchorSelectionIndex = anchorIndex; ++ } ++ ++ /** ++ * Gets the value of the {@link #leadSelectionIndex} property. ++ * ++ * @return The current property value ++ * ++ * @see #setLeadSelectionIndex ++ */ ++ public int getLeadSelectionIndex() ++ { ++ return leadSelectionIndex; ++ } ++ ++ /** ++ *

    Sets the value of the {@link #anchorSelectionIndex} property. As a ++ * side effect, alters the selection status of two ranges of indices. Let ++ * OL be the old lead selection index, NL be ++ * the new lead selection index, and A be the anchor ++ * selection index. Then if A is a valid selection index, ++ * one of two things happens depending on the seleciton status of ++ * A:

    ++ * ++ *
      ++ * ++ *
    • isSelectedIndex(A) == true: set [A,OL] ++ * to deselected, then set [A,NL] to ++ * selected.
    • ++ * ++ *
    • isSelectedIndex(A) == false: set [A,OL] ++ * to selected, then set [A,NL] to ++ * deselected.
    • ++ * ++ *
    ++ * ++ *

    This method generates at most a single {@link ListSelectionEvent} ++ * despite changing multiple ranges. The range of values provided to the ++ * {@link ListSelectionEvent} includes only the minimum range of values ++ * which changed selection status between the beginning and end of the ++ * method.

    ++ * ++ * @param anchorIndex The new property value ++ * ++ * @see #getAnchorSelectionIndex ++ */ ++ public void setLeadSelectionIndex(int leadIndex) ++ { ++ int oldLeadIndex = leadSelectionIndex; ++ leadSelectionIndex = leadIndex; ++ ++ if (anchorSelectionIndex == -1) ++ return; ++ ++ int R1 = Math.min(anchorSelectionIndex, oldLeadIndex); ++ int R2 = Math.max(anchorSelectionIndex, oldLeadIndex); ++ int S1 = Math.min(anchorSelectionIndex, leadIndex); ++ int S2 = Math.max(anchorSelectionIndex, leadIndex); ++ ++ int lo = Math.min(R1, S1); ++ int hi = Math.max(R2, S2); ++ ++ BitSet oldRange = sel.get(lo, hi+1); + +- Vector get_listeners() +- { +- if (listeners == null) +- listeners = new Vector(); +- return listeners; +- } ++ if (isSelectedIndex(anchorSelectionIndex)) ++ { ++ sel.clear(R1, R2+1); ++ sel.set(S1, S2+1); ++ } ++ else ++ { ++ sel.set(R1, R2+1); ++ sel.clear(S1, S2+1); ++ } + ++ BitSet newRange = sel.get(lo, hi+1); ++ newRange.xor(oldRange); + +- public void addListSelectionListener(ListSelectionListener listener) +- { +- get_listeners().addElement(listener); +- } +- +- public void removeListSelectionListener(ListSelectionListener listener) +- { +- get_listeners().removeElement(listener); +- } ++ int beg = sel.nextSetBit(0), end = -1; ++ for(int i=beg; i >= 0; i=sel.nextSetBit(i+1)) ++ { ++ end = i; ++ } ++ fireValueChanged(beg, end, valueIsAdjusting); ++ } ++ ++ /** ++ * Gets the value of the {@link #leadAnchorNotificationEnabled} property. ++ * ++ * @return The current property value ++ * ++ * @see #setLeadAnchorNotificationEnabled ++ */ ++ public boolean isLeadAnchorNotificationEnabled() ++ { ++ return leadAnchorNotificationEnabled; ++ } ++ ++ /** ++ * Sets the value of the {@link #leadAnchorNotificationEnabled} property. ++ * ++ * @param flag The new property value ++ * ++ * @see #getLeadAnchorNotificationEnabled ++ */ ++ public void setLeadAnchorNotificationEnabled(boolean l) ++ { ++ leadAnchorNotificationEnabled = l; ++ } ++ ++ ++ /** ++ * Gets the value of the {@link #valueIsAdjusting} property. ++ * ++ * @return The current property value ++ * ++ * @see #setValueIsAdjusting ++ */ ++ public boolean getValueIsAdjusting() ++ { ++ return valueIsAdjusting; ++ } ++ ++ /** ++ * Sets the value of the {@link #valueIsAdjusting} property. ++ * ++ * @param v The new property value ++ * ++ * @see #getValueIsAdjusting ++ */ ++ public void setValueIsAdjusting(boolean v) ++ { ++ valueIsAdjusting = v; ++ } ++ ++ /** ++ * Determines whether the selection is empty. ++ * ++ * @return true if the selection is empty, otherwise ++ * false ++ */ ++ public boolean isSelectionEmpty() ++ { ++ return sel.isEmpty(); ++ } ++ ++ ++ /** ++ * Gets the smallest index which is currently a member of a selection ++ * interval. ++ * ++ * @return The least integer i such that i >= ++ * 0 and i is a member of a selected interval, or ++ * -1 if there are no selected intervals ++ * ++ * @see #getMaxSelectionIndex ++ */ ++ public int getMinSelectionIndex() ++ { ++ if (isSelectionEmpty()) ++ return -1; + +- class Range +- { +- int i0, i1; +- +- Range(int a, int b) +- { +- if (a > b) +- { +- i0 = b; +- i1 = a; +- } +- else +- { +- i0 = a; +- i1 = b; +- } +- } +- } ++ return sel.nextSetBit(0); ++ } + ++ /** ++ * Gets the largest index which is currently a member of a selection ++ * interval. ++ * ++ * @return The greatest integer i such that i >= ++ * 0 and i is a member of a selected interval, or ++ * -1 if there are no selected intervals ++ * ++ * @see #getMinSelectionIndex ++ */ ++ public int getMaxSelectionIndex() ++ { ++ if (isSelectionEmpty()) ++ return -1; ++ ++ int mx = -1; ++ for(int i=sel.nextSetBit(0); i >= 0; i=sel.nextSetBit(i+1)) ++ { ++ mx = i; ++ } ++ return mx; ++ } ++ ++ /** ++ * Determines whether a particular index is a member of a selection ++ * interval. ++ * ++ * @param a The index to search for ++ * ++ * @return true if the index is a member of a selection interval, ++ * otherwise false ++ */ ++ public boolean isSelectedIndex(int a) ++ { ++ return sel.get(a); ++ } ++ ++ /** ++ * If the {@link #selectionMode} property is equal to ++ * SINGLE_SELECTION or ++ * SINGLE_INTERVAL_SELECTION, equivalent to calling ++ * setSelectionInterval(index1, index2); otherwise adds the ++ * range [index0, index1] to the selection interval set. ++ * ++ * @param index0 The beginning of the range of indices to select ++ * @param index1 The end of the range of indices to select ++ * ++ * @see #setSelectionInterval ++ * @see #removeSelectionInterval ++ */ ++ public void addSelectionInterval(int index0, int index1) ++ { ++ if (selectionMode == SINGLE_SELECTION ++ || selectionMode == SINGLE_INTERVAL_SELECTION) ++ sel.clear(); + +- public int getMinSelectionIndex() +- { +- if (isSelectionEmpty()) +- return -1; +- +- boolean first = true; +- int min = -1; +- for (int i=0;i min) +- { +- min = r.i0; +- } +- } +- } +- return min; +- } +- +- public int getMaxSelectionIndex() +- { +- if (isSelectionEmpty()) +- return -1; +- +- boolean first = true; +- int max = -1; +- for (int i=1;i max) +- { +- max = r.i1; +- } +- } +- } +- return max; +- } +- +- public boolean isSelectedIndex(int a) +- { +- for (int i=0;i= a) +- { +- return true; +- } +- } +- return false; +- } +- +- +- public int getSelectionMode() +- { return mode; } +- public void setSelectionMode(int a) +- { mode = a; } +- +- boolean isSelectionEmpty() +- { +- return sel.size() == 0; +- } +- +- public void clearSelection() +- { +- sel.removeAllElements(); +- } +- +- public void setSelectionInterval(int index0, int index1) +- { +- if (mode == SINGLE_SELECTION) +- { +- sel.removeAllElements(); +- } ++ if (selectionMode == SINGLE_SELECTION) ++ index0 = index1; ++ ++ int lo = Math.min(index0, index1); ++ int hi = Math.max(index0, index1); + +- sel.addElement(new Range(index0, index1)); +- } ++ sel.set(lo, hi+1); ++ fireValueChanged(lo, hi, valueIsAdjusting); ++ } ++ ++ ++ /** ++ * Deselects all indices in the inclusive range ++ * [index0,index1]. ++ * ++ * @param index0 The beginning of the range of indices to deselect ++ * @param index1 The end of the range of indices to deselect ++ * ++ * @see #addSelectionInterval ++ * @see #setSelectionInterval ++ */ ++ public void removeSelectionInterval(int index0, ++ int index1) ++ { ++ int lo = Math.min(index0, index1); ++ int hi = Math.max(index0, index1); ++ sel.clear(lo, hi+1); ++ fireValueChanged(lo, hi, valueIsAdjusting); ++ } ++ ++ /** ++ * Removes all intervals in the selection set. ++ */ ++ public void clearSelection() ++ { ++ int sz = sel.size(); ++ sel.clear(); ++ fireValueChanged(0, sz, valueIsAdjusting); ++ } ++ ++ /** ++ * Clears the current selection and marks a given interval as ++ * "selected". If the current selection mode is ++ * SINGLE_SELECTION only the index index2 is ++ * selected. ++ * ++ * @param index0 The low end of the new selection ++ * @param index1 The high end of the new selection ++ */ ++ public void setSelectionInterval(int index0, int index1) ++ { ++ sel.clear(); ++ if (selectionMode == SINGLE_SELECTION) ++ index0 = index1; ++ ++ int lo = Math.min(index0, index1); ++ int hi = Math.max(index0, index1); ++ sel.set(lo, hi+1); ++ fireValueChanged(lo, hi, valueIsAdjusting); ++ } ++ ++ /** ++ * Inserts a number of indices either before or after a particular ++ * position in the set of indices. Renumbers all indices after the ++ * inserted range. The new indices in the inserted range are not ++ * selected. This method is typically called to synchronize the selection ++ * model with an inserted range of elements in a {@link ListModel}. ++ * ++ * @param index The position to insert indices at ++ * @param length The number of indices to insert ++ * @param before Indicates whether to insert the indices before the index ++ * or after it ++ */ ++ public void insertIndexInterval(int index, ++ int length, ++ boolean before) ++ { ++ if (!before) ++ { ++ index++; ++ length--; ++ } ++ BitSet tmp = sel.get(index, sel.size()); ++ sel.clear(index, sel.size()); ++ int n = tmp.size(); ++ for (int i = 0; i < n; ++i) ++ sel.set(index + length + i, tmp.get(i)); ++ } ++ ++ /** ++ * Removes a range from the set of indices. Renumbers all indices after ++ * the removed range. This method is typically called to synchronize the ++ * selection model with a deleted range of elements in a {@link ++ * ListModel}. ++ * ++ * @param index0 The first index to remove (inclusive) ++ * @param index1 The last index to remove (inclusive) ++ */ ++ public void removeIndexInterval(int index0, ++ int index1) ++ { ++ int lo = Math.min(index0, index1); ++ int hi = Math.max(index0, index1); ++ ++ BitSet tmp = sel.get(hi, sel.size()); ++ sel.clear(lo, sel.size()); ++ int n = tmp.size(); ++ for (int i = 0; i < n; ++i) ++ sel.set(lo + i, tmp.get(i)); ++ } ++ ++ /** ++ * Fires a {@link ListSelectionEvent} to all the listeners of type {@link ++ * ListSelectionListener} registered with this selection model. ++ * ++ * @param firstIndex The low index of the changed range ++ * @param lastIndex The high index of the changed range ++ * @param isAdjusting Whether this change is part of a seqence of adjustments ++ * made to the selection, such as during interactive scrolling ++ */ ++ protected void fireValueChanged(int firstIndex, int lastIndex, ++ boolean isAdjusting) ++ { ++ ListSelectionEvent evt = new ListSelectionEvent(this, firstIndex, ++ lastIndex, isAdjusting); ++ ListSelectionListener[] listeners = getListSelectionListeners(); ++ for (int i = 0; i < listeners.length; ++i) ++ listeners[i].valueChanged(evt); ++ } ++ ++ /** ++ * Adds a listener. ++ * ++ * @param listener The listener to add ++ * ++ * @see removeListSelectionListener ++ * @see getListSelectionListeners ++ */ ++ public void addListSelectionListener(ListSelectionListener listener) ++ { ++ listenerList.add(ListSelectionListener.class, listener); ++ } ++ ++ /** ++ * Removes a registered listener. ++ * ++ * @param listener The listener to remove ++ * ++ * @see addListSelectionListener ++ * @see getListSelectionListeners ++ */ ++ public void removeListSelectionListener(ListSelectionListener listener) ++ { ++ listenerList.remove(ListSelectionListener.class, listener); ++ } ++ ++ /** ++ * Returns an array of all registerers listeners. ++ * ++ * @param listenerType The type of listener to retrieve ++ * ++ * @return The array ++ * ++ * @see getListSelectionListener ++ * @since 1.3 ++ */ ++ public EventListener[] getListeners(Class listenerType) ++ { ++ return listenerList.getListeners(listenerType); ++ } ++ ++ /** ++ * Returns an array of all registerd list selection listeners. ++ * ++ * @return the array ++ * ++ * @see addListSelectionListener ++ * @see removeListSelectionListener ++ * @see getListeners ++ * @since 1.4 ++ */ ++ public ListSelectionListener[] getListSelectionListeners() ++ { ++ return (ListSelectionListener[]) getListeners(ListSelectionListener.class); ++ } + } +Index: javax/swing/DefaultSingleSelectionModel.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/DefaultSingleSelectionModel.java,v +retrieving revision 1.4 +diff -u -r1.4 DefaultSingleSelectionModel.java +--- javax/swing/DefaultSingleSelectionModel.java 29 Apr 2003 09:26:29 -0000 1.4 ++++ javax/swing/DefaultSingleSelectionModel.java 6 Sep 2004 16:35:54 -0000 +@@ -115,7 +115,7 @@ + */ + public boolean isSelected () + { +- return (index == -1); ++ return (index != -1); + } + + /** +Index: javax/swing/DesktopManager.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/DesktopManager.java,v +retrieving revision 1.2 +diff -u -r1.2 DesktopManager.java +--- javax/swing/DesktopManager.java 12 Oct 2003 13:20:49 -0000 1.2 ++++ javax/swing/DesktopManager.java 6 Sep 2004 16:35:54 -0000 +@@ -1,5 +1,5 @@ + /* DesktopManager.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -38,118 +38,140 @@ + package javax.swing; + + /** +- * DesktopManager +- * @author Andrew Selkirk +- * @version 1.0 ++ * DesktopManagers are responsible for implementing the behaviours for the ++ * JInternalFrames that belong to JDesktopPanes. Actions such as maximizing, ++ * minimizing, iconifying, etc will be delegated to the DesktopManager. + */ +-public interface DesktopManager { +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * openFrame +- * @param frame TODO +- */ +- void openFrame(JInternalFrame frame); +- +- /** +- * closeFrame +- * @param frame TODO +- */ +- void closeFrame(JInternalFrame frame); +- +- /** +- * maximizeFrame +- * @param frame TODO +- */ +- void maximizeFrame(JInternalFrame frame); +- +- /** +- * minimizeFrame +- * @param frame TODO +- */ +- void minimizeFrame(JInternalFrame frame); +- +- /** +- * iconifyFrame +- * @param frame TODO +- */ +- void iconifyFrame(JInternalFrame frame); +- +- /** +- * deiconifyFrame +- * @param frame TODO +- */ +- void deiconifyFrame(JInternalFrame frame); +- +- /** +- * activateFrame +- * @param frame TODO +- */ +- void activateFrame(JInternalFrame vframe); +- +- /** +- * deactivateFrame +- * @param frame TODO +- */ +- void deactivateFrame(JInternalFrame frame); +- +- /** +- * beginDraggingFrame +- * @param frame TODO +- */ +- void beginDraggingFrame(JComponent frame); +- +- /** +- * dragFrame +- * @param frame TODO +- * @param x TODO +- * @param y TODO +- */ +- void dragFrame(JComponent frame, int x, int y); +- +- /** +- * endDraggingFrame +- * @param frame TODO +- */ +- void endDraggingFrame(JComponent frame); +- +- /** +- * beginResizingFrame +- * @param frame TODO +- * @param direction TODO +- */ +- void beginResizingFrame(JComponent frame, int direction); +- +- /** +- * resizeFrame +- * @param frame TODO +- * @param x TODO +- * @param y TODO +- * @param width TODO +- * @param height TODO +- */ +- void resizeFrame(JComponent frame, int x, int y, +- int width, int height); +- +- /** +- * endResizingFrame +- * @param frame TODO +- */ +- void endResizingFrame(JComponent frame); +- +- /** +- * setBoundsForFrame +- * @param frame TODO +- * @param x TODO +- * @param y TODO +- * @param width TODO +- * @param height TODO +- */ +- void setBoundsForFrame(JComponent frame, int x, int y, +- int width, int height); +- +- ++public interface DesktopManager ++{ ++ /** ++ * This method will cause the JInternalFrame to be displayed in the set ++ * location. This usually is not needed since the user will add the ++ * JInternalFrame to a Container separately. ++ * ++ * @param frame The JInternalFrame to open. ++ */ ++ void openFrame(JInternalFrame frame); ++ ++ /** ++ * This method should remove the JInternalFrame from its parent. ++ * ++ * @param frame The JInternalFrame to close. ++ */ ++ void closeFrame(JInternalFrame frame); ++ ++ /** ++ * This method should maximize the JInternalFrame to match its parent's ++ * bounds. ++ * ++ * @param frame The JInternalFrame to maximize. ++ */ ++ void maximizeFrame(JInternalFrame frame); ++ ++ /** ++ * This method should restore the JInternalFrame to its normal bounds. ++ * ++ * @param frame The JInternalFrame to minimize. ++ */ ++ void minimizeFrame(JInternalFrame frame); ++ ++ /** ++ * This method should remove the JInternalFrame from its parent and replace ++ * it with a JDesktopIcon. ++ * ++ * @param frame The JInternalFrame to iconify. ++ */ ++ void iconifyFrame(JInternalFrame frame); ++ ++ /** ++ * This method should remove the JDesktopIcon from its parent and replace it ++ * with the JInternalFrame that the JDesktopIcon represents. ++ * ++ * @param frame The JInternalFrame to deiconify. ++ */ ++ void deiconifyFrame(JInternalFrame frame); ++ ++ /** ++ * This method should give focus to the JInternalFrame and its default focus ++ * owner. ++ * ++ * @param frame The JInternalFrame to activate. ++ */ ++ void activateFrame(JInternalFrame vframe); ++ ++ /** ++ * This method should be called when the JInternalFrame gets deselected and ++ * subsequently loses focus. ++ * ++ * @param frame The JInternalFrame to deactivate. ++ */ ++ void deactivateFrame(JInternalFrame frame); ++ ++ /** ++ * This method should be called in preparation for dragging. This needs to ++ * be called prior to dragFrame calls so that the DesktopManager can ++ * prepare any state information. ++ * ++ * @param frame The JInternalFrame to prepare for dragging. ++ */ ++ void beginDraggingFrame(JComponent frame); ++ ++ /** ++ * This method drags the given JInternalFrame to the given x and y ++ * coordinates. ++ * ++ * @param frame The JInternalFrame to drag. ++ * @param x The new x coordinate. ++ * @param y The new y coordinate. ++ */ ++ void dragFrame(JComponent frame, int x, int y); ++ ++ /** ++ * This method should be called after dragFrame calls. Any information used ++ * by the DesktopManager for dragging the JInternalFrame can be cleared. ++ * ++ * @param frame The JInternalFrame that finished dragging. ++ */ ++ void endDraggingFrame(JComponent frame); ++ ++ /** ++ * This method should be called prior to any resizeFrame calls. Any state ++ * information needed by the DesktopManager to resize the JInternalFrame ++ * will be prepared here. ++ * ++ * @param frame The JInternalFrame to resize. ++ * @param direction One of eight directions specified by SwingConstants. ++ */ ++ void beginResizingFrame(JComponent frame, int direction); ++ ++ /** ++ * This method is called to resize the given JInternalFrame to the given ++ * bounds. ++ * ++ * @param frame The JInternalFrame to resize. ++ * @param x The new x coordinate. ++ * @param y The new y coordinate. ++ * @param width The new width. ++ * @param height The new height. ++ */ ++ void resizeFrame(JComponent frame, int x, int y, int width, int height); ++ ++ /** ++ * This method is called to signify that the resize is finished. Any ++ * information used to resize the JInternalFrame can now be cleared. ++ * ++ * @param frame The JInternalFrame that just finished dragging. ++ */ ++ void endResizingFrame(JComponent frame); ++ ++ /** ++ * This method does the actual work for reshaping the JInternalFrame. ++ * ++ * @param frame The JInternalFrame to resize. ++ * @param x The new x coordinate. ++ * @param y The new y coordinate. ++ * @param width The new width. ++ * @param height The new height. ++ */ ++ void setBoundsForFrame(JComponent frame, int x, int y, int width, int height); + } // DesktopManager +Index: javax/swing/GrayFilter.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/GrayFilter.java,v +retrieving revision 1.1 +diff -u -r1.1 GrayFilter.java +--- javax/swing/GrayFilter.java 9 Aug 2002 04:26:10 -0000 1.1 ++++ javax/swing/GrayFilter.java 6 Sep 2004 16:35:54 -0000 +@@ -45,41 +45,41 @@ + + public class GrayFilter extends RGBImageFilter + { +- private boolean b; +- private int p; ++ private boolean b; ++ private int p; + +- /** +- Create a GrayFilter. If b is true then brighten. Also, indicate how much gray. +- +- @param b if brighten +- @param p percent of gray, 0 - 100 +- */ +- public GrayFilter(boolean b, int p) +- { +- this.b = b; //FIXME - HANDLE THIS +- this.p = p; +- } ++ /** ++ * Create a GrayFilter. If b is true then brighten. Also, indicate how much gray. ++ * ++ * @param b if brighten ++ * @param p percent of gray, 0 - 100 ++ */ ++ public GrayFilter(boolean b, int p) ++ { ++ this.b = b; //FIXME - HANDLE THIS ++ this.p = p; ++ } + +- /** +- Create grayed image +- +- @param i image to gray +- +- @return a grayed image +- */ +- public static Image createDisabledImage(Image src) +- { +- return Toolkit.getDefaultToolkit().createImage( new FilteredImageSource(src.getSource(), +- new GrayFilter(false, 100))); +- } +- +- /** +- Filter RGB to gray +- */ +- public int filterRGB(int x, +- int y, +- int rgb) +- { +- return (int) ( ( p * ( 0.299 * ( (0xff0000 & rgb) >> 16) + 0.587 * ( (0xff00 & rgb) >> 8 ) + 0.114 * (0xff & rgb ) ) )); +- } ++ /** ++ * Create grayed image ++ * ++ * @param src image to gray ++ * ++ * @return a grayed image ++ */ ++ public static Image createDisabledImage(Image src) ++ { ++ return (Toolkit.getDefaultToolkit(). ++ createImage(new FilteredImageSource(src.getSource(), ++ new GrayFilter(false, 100)))); ++ } ++ ++ /** ++ * Filter RGB to gray ++ */ ++ public int filterRGB(int x, int y, int rgb) ++ { ++ return (int) (p * (0.299 * ((0xff0000 & rgb) >> 16) ++ + 0.587 * ((0xff00 & rgb) >> 8) + 0.114 * (0xff & rgb))); ++ } + } +Index: javax/swing/ImageIcon.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/ImageIcon.java,v +retrieving revision 1.2 +diff -u -r1.2 ImageIcon.java +--- javax/swing/ImageIcon.java 11 Jun 2003 13:20:39 -0000 1.2 ++++ javax/swing/ImageIcon.java 6 Sep 2004 16:35:54 -0000 +@@ -1,5 +1,5 @@ + /* ImageIcon.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,67 +35,107 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing; + + import java.awt.Component; + import java.awt.Graphics; + import java.awt.Image; +-import java.awt.MediaTracker; + import java.awt.Toolkit; ++import java.awt.image.ImageObserver; + import java.io.Serializable; + import java.net.URL; +-import javax.accessibility.Accessible; +-import javax.accessibility.AccessibleContext; + +-public class ImageIcon implements Icon ++ ++public class ImageIcon ++ implements Icon, Serializable + { +- Image image; +- String file, descr; +- Component observer; +- +- public ImageIcon(String s) +- { +- this(s, ""); +- } +- +- public ImageIcon(String file, +- String descr) +- { +- this.file = file; +- this.descr = descr; +- +- image = Toolkit.getDefaultToolkit().getImage(file); +- if (image == null) { +- return; +- } +- //loadImage(image); +- } +- +- // not in SUN's spec !!! +- public void setParent(Component p) +- { +- observer = p; +- } +- +- public Image getImage() +- { return image; } +- +- public String getDescription() +- { return descr; } +- public void setDescription(String description) +- { this.descr = description; } +- +- public int getIconHeight() +- { return image.getHeight(observer); } +- public int getIconWidth() +- { return image.getWidth(observer); } +- +- public void paintIcon(Component c, +- Graphics g, +- int x, +- int y) +- { +- g.drawImage(image, x, y, observer); +- } ++ private static final long serialVersionUID = 532615968316031794L; ++ Image image; ++ String description; ++ ImageObserver observer; ++ ++ public ImageIcon() ++ { ++ } ++ ++ public ImageIcon(String file) ++ { ++ this(file, file); ++ } ++ ++ public ImageIcon(String file, String description) ++ { ++ this(Toolkit.getDefaultToolkit().getImage(file), description); ++ } ++ ++ public ImageIcon(byte[] imageData) ++ { ++ this(imageData, null); ++ } ++ ++ public ImageIcon(byte[] imageData, String description) ++ { ++ this(Toolkit.getDefaultToolkit().createImage(imageData), description); ++ } ++ ++ public ImageIcon(URL url) ++ { ++ this(url, null); ++ } ++ ++ public ImageIcon(URL url, String description) ++ { ++ this(Toolkit.getDefaultToolkit().getImage(url), description); ++ } ++ ++ public ImageIcon(Image image) ++ { ++ this(image, null); ++ } ++ ++ public ImageIcon(Image image, String description) ++ { ++ this.image = Toolkit.getDefaultToolkit().createImage(image.getSource()); ++ this.description = description; ++ } ++ ++ public ImageObserver getImageObserver() ++ { ++ return observer; ++ } ++ ++ public void setImageObserver(ImageObserver newObserver) ++ { ++ observer = newObserver; ++ } ++ ++ public Image getImage() ++ { ++ return image; ++ } ++ ++ public String getDescription() ++ { ++ return description; ++ } ++ ++ public void setDescription(String description) ++ { ++ this.description = description; ++ } ++ ++ public int getIconHeight() ++ { ++ return image.getHeight(observer); ++ } ++ ++ public int getIconWidth() ++ { ++ return image.getWidth(observer); ++ } ++ ++ public void paintIcon(Component c, Graphics g, int x, int y) ++ { ++ g.drawImage(image, x, y, observer != null ? observer : c); ++ } + } +Index: javax/swing/InputMap.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/InputMap.java,v +retrieving revision 1.3 +diff -u -r1.3 InputMap.java +--- javax/swing/InputMap.java 11 Jun 2003 13:20:39 -0000 1.3 ++++ javax/swing/InputMap.java 6 Sep 2004 16:35:54 -0000 +@@ -1,5 +1,5 @@ + /* InputMap.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,7 +35,6 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing; + + import java.io.IOException; +@@ -43,24 +42,23 @@ + import java.io.ObjectOutputStream; + import java.io.Serializable; + import java.util.Arrays; +-import java.util.Iterator; + import java.util.HashMap; + import java.util.HashSet; ++import java.util.Iterator; + import java.util.Map; + import java.util.Set; + ++ + /** +- * InputMap + * @author Andrew Selkirk +- * @version 1.0 ++ * @author Michael Koch ++ * ++ * @since 1.3 + */ +-public class InputMap implements Serializable ++public class InputMap ++ implements Serializable + { +- static final long serialVersionUID = -5429059542008604257L; +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- ++ private static final long serialVersionUID = -5429059542008604257L; + + /** + * inputMap +@@ -70,171 +68,147 @@ + /** + * parent + */ +- private InputMap parent = null; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- ++ private InputMap parent; + + /** +- * Constructor InputMap ++ * Creates a new InputMap instance. + */ +- public InputMap() { ++ public InputMap() ++ { + // TODO +- } // InputMap() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- ++ } + + /** +- * get +- * @param value0 TODO +- * @returns Object +- */ +- public Object get(KeyStroke keystroke) { +- +- // Variables +- Object result; +- +- // Check Local store +- result = inputMap.get(keystroke); +- +- // Check Parent +- if (result == null) { +- result = parent.get(keystroke); +- } // if +- +- return result; +- +- } // get() +- +- /** +- * put +- * @param keystroke TODO +- * @param actionMapKey TODO +- */ +- public void put(KeyStroke keystroke, Object actionMapKey) { +- if (actionMapKey == null) { ++ * Returns the binding for keystroke. ++ * ++ * @param key the key of the enty ++ * ++ * @return the binding associated with keystroke may be null ++ */ ++ public Object get(KeyStroke keystroke) ++ { ++ Object result = inputMap.get(keystroke); ++ ++ if (result == null && parent != null) ++ result = parent.get(keystroke); ++ return result; ++ } ++ ++ /** ++ * Puts a new entry into the InputMap. ++ * If actionMapKey is null an existing entry will be removed. ++ * ++ * @param keystroke the keystroke for the entry ++ * @param actionMapKey the action. ++ */ ++ public void put(KeyStroke keystroke, Object actionMapKey) ++ { ++ if (actionMapKey == null) + inputMap.remove(keystroke); +- } else { ++ else + inputMap.put(keystroke, actionMapKey); +- } // if +- } // put() ++ } + + /** +- * remove +- * @param keystroke TODO ++ * Remove an entry from the InputMap. ++ * ++ * @param key the key of the entry to remove + */ +- public void remove(KeyStroke keystroke) { ++ public void remove(KeyStroke keystroke) ++ { + inputMap.remove(keystroke); +- } // remove() ++ } + + /** +- * getParent +- * @returns InputMap ++ * Returns the parent of this InputMap. ++ * ++ * @return the parent, may be null. + */ +- public InputMap getParent() { ++ public InputMap getParent() ++ { + return parent; +- } // getParent() ++ } + + /** +- * setParent +- * @param parentMap TODO ++ * Sets a parent for this InputMap. ++ * ++ * @param parentMap the new parent + */ +- public void setParent(InputMap parentMap) { ++ public void setParent(InputMap parentMap) ++ { + parent = parentMap; +- } // setParent() ++ } + + /** +- * size +- * @returns int ++ * Returns the number of entries in this InputMap. ++ * ++ * @return the number of entries + */ +- public int size() { ++ public int size() ++ { + return inputMap.size(); +- } // size() ++ } + + /** +- * clear ++ * Clears the InputMap. + */ +- public void clear() { ++ public void clear() ++ { + inputMap.clear(); +- } // clear() ++ } + + /** +- * keys +- * @returns KeyStroke[] ++ * Returns all keys of entries in this InputMap. ++ * ++ * @return an array of keys + */ +- public KeyStroke[] keys() { +- return convertSet(inputMap.keySet()); +- } // keys() ++ public KeyStroke[] keys() ++ { ++ KeyStroke[] array = new KeyStroke[size()]; ++ return (KeyStroke[]) inputMap.keySet().toArray(array); ++ } + + /** +- * allKeys +- * @returns KeyStroke[] ++ * Returns all keys of entries in this InputMap ++ * and all its parents. ++ * ++ * @return an array of keys + */ +- public KeyStroke[] allKeys() { +- +- // Variables +- Set set; +- +- // Initialize +- set = new HashSet(); ++ public KeyStroke[] allKeys() ++ { ++ Set set = new HashSet(); + +- // Get Key Sets +- if (parent != null) { ++ if (parent != null) + set.addAll(Arrays.asList(parent.allKeys())); +- } // if +- set.addAll(inputMap.keySet()); +- +- return convertSet(set); +- +- } // allKeys() +- +- private KeyStroke[] convertSet(Set set) { +- +- // Variables +- int index; +- Iterator iterator; +- KeyStroke[] keys; + +- // Create Final array +- keys = new KeyStroke[set.size()]; +- iterator = set.iterator(); +- index = 0; +- while (iterator.hasNext()) { +- keys[index++] = (KeyStroke) iterator.next(); +- } // while +- +- return keys; +- +- } // convertSet() +- +- +- //------------------------------------------------------------- +- // Interface: Serializable ------------------------------------ +- //------------------------------------------------------------- ++ set.addAll(inputMap.keySet()); ++ KeyStroke[] array = new KeyStroke[size()]; ++ return (KeyStroke[]) set.toArray(array); ++ } + + /** + * writeObject +- * @param stream TODO +- * @exception IOException TODO ++ * ++ * @param stream the stream to write to ++ * ++ * @exception IOException If an error occurs + */ +- private void writeObject(ObjectOutputStream stream) throws IOException { ++ private void writeObject(ObjectOutputStream stream) throws IOException ++ { + // TODO +- } // writeObject() ++ } + + /** + * readObject +- * @param stream TODO +- * @exception ClassNotFoundException TODO +- * @exception IOException TODO +- */ +- private void readObject(ObjectInputStream stream) throws ClassNotFoundException, IOException { ++ * ++ * @param stream the stream to read from ++ * ++ * @exception ClassNotFoundException If the serialized class cannot be found ++ * @exception IOException If an error occurs ++ */ ++ private void readObject(ObjectInputStream stream) ++ throws ClassNotFoundException, IOException ++ { + // TODO +- } // readObject() +- +- +-} // InputMap ++ } ++} +Index: javax/swing/JApplet.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JApplet.java,v +retrieving revision 1.2 +diff -u -r1.2 JApplet.java +--- javax/swing/JApplet.java 11 Jun 2003 13:20:39 -0000 1.2 ++++ javax/swing/JApplet.java 6 Sep 2004 16:35:54 -0000 +@@ -1,5 +1,5 @@ + /* JApplet.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -49,8 +49,9 @@ + import java.awt.event.WindowEvent; + import javax.accessibility.AccessibleContext; + +-public class JApplet extends Applet ++public class JApplet extends Applet implements RootPaneContainer + { ++ private static final long serialVersionUID = 7269359214497372587L; + + public final static int HIDE_ON_CLOSE = 0; + public final static int EXIT_ON_CLOSE = 1; +@@ -80,27 +81,27 @@ + public Dimension getPreferredSize() + { + Dimension d = super.getPreferredSize(); +- System.out.println("JFrame.getPrefSize(): " + d + " , comp="+countComponents() + ", layout=" + getLayout()); ++ System.out.println("JFrame.getPrefSize(): " + d + " , comp="+ getComponentCount () + ", layout=" + getLayout()); + return d; + } + + public void setLayout(LayoutManager manager) + { super.setLayout(manager); } + +- void setLayeredPane(JLayeredPane layeredPane) ++ public void setLayeredPane(JLayeredPane layeredPane) + { getRootPane().setLayeredPane(layeredPane); } + +- JLayeredPane getLayeredPane() ++ public JLayeredPane getLayeredPane() + { return getRootPane().getLayeredPane(); } + +- JRootPane getRootPane() ++ public JRootPane getRootPane() + { + if (rootPane == null) + setRootPane(createRootPane()); + return rootPane; + } + +- void setRootPane(JRootPane root) ++ public void setRootPane(JRootPane root) + { + if (rootPane != null) + remove(rootPane); +@@ -109,19 +110,19 @@ + add(rootPane, BorderLayout.CENTER); + } + +- JRootPane createRootPane() ++ public JRootPane createRootPane() + { return new JRootPane(); } + +- Container getContentPane() ++ public Container getContentPane() + { return getRootPane().getContentPane(); } + +- void setContentPane(Container contentPane) ++ public void setContentPane(Container contentPane) + { getRootPane().setContentPane(contentPane); } + +- Component getGlassPane() ++ public Component getGlassPane() + { return getRootPane().getGlassPane(); } + +- void setGlassPane(Component glassPane) ++ public void setGlassPane(Component glassPane) + { getRootPane().setGlassPane(glassPane); } + + +@@ -136,10 +137,10 @@ + { return close_action; } + + +- JMenuBar getJMenuBar() ++ public JMenuBar getJMenuBar() + { return getRootPane().getJMenuBar(); } + +- void setJMenuBar(JMenuBar menubar) ++ public void setJMenuBar(JMenuBar menubar) + { getRootPane().setJMenuBar(menubar); } + + +Index: javax/swing/JButton.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JButton.java,v +retrieving revision 1.3 +diff -u -r1.3 JButton.java +--- javax/swing/JButton.java 9 Jan 2004 10:18:47 -0000 1.3 ++++ javax/swing/JButton.java 6 Sep 2004 16:35:54 -0000 +@@ -41,17 +41,18 @@ + import javax.accessibility.AccessibleContext; + import javax.swing.plaf.ButtonUI; + ++ + /** + * An instance of JButton can be added to a panel, frame etc + * + * @author Ronald Veldema (rveldema@cs.vu.nl) + */ +-public class JButton extends AbstractButton implements Accessible ++public class JButton extends AbstractButton ++ implements Accessible + { + private static final long serialVersionUID = -1907255238954382202L; +- +- boolean def, is_def; +- ++ boolean def; ++ boolean is_def; + + public JButton() + { +@@ -87,6 +88,7 @@ + protected void configurePropertiesFromAction(Action a) + { + //Factory method which sets the AbstractButton's properties according to values from the Action instance. ++ super.configurePropertiesFromAction(a); + } + + public AccessibleContext getAccessibleContext() +@@ -97,8 +99,8 @@ + + public String getUIClassID() + { +- //Returns a string that specifies the name of the L&F class that renders this component. +- return "JButton"; ++ //Returns a string that specifies the name of the L&F class that renders this component. ++ return "ButtonUI"; + } + + public boolean isDefaultButton() +@@ -118,17 +120,23 @@ + return "JButton"; + } + ++ /** ++ * Overrides JComponent.removeNotify to check if this button is currently ++ * set as the default button on the RootPane, and if so, sets the RootPane's ++ * default button to null to ensure the RootPane doesn't hold onto an invalid ++ * button reference. ++ */ + public void removeNotify() + { +- //Overrides JComponent.removeNotify to check if this button is currently set as the default button on the RootPane, and if so, sets the RootPane's default button to null to ensure the RootPane doesn't hold onto an invalid button reference. + } + + public void setDefaultCapable(boolean defaultCapable) +- { def = defaultCapable; } ++ { ++ def = defaultCapable; ++ } + + public void updateUI() + { +- ButtonUI b = (ButtonUI)UIManager.getUI(this); +- setUI(b); ++ setUI((ButtonUI) UIManager.getUI(this)); + } + } +Index: javax/swing/JCheckBox.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JCheckBox.java,v +retrieving revision 1.2 +diff -u -r1.2 JCheckBox.java +--- javax/swing/JCheckBox.java 11 Jun 2003 13:20:39 -0000 1.2 ++++ javax/swing/JCheckBox.java 6 Sep 2004 16:35:54 -0000 +@@ -1,5 +1,5 @@ + /* JCheckBox.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -47,46 +47,94 @@ + */ + public class JCheckBox extends JToggleButton + { ++ private static final long serialVersionUID = -5246739313864538930L; ++ ++ private boolean borderPaintedFlat; ++ ++ private void init() ++ { ++ borderPainted = false; ++ contentAreaFilled = false; ++ } ++ + public JCheckBox() + { +- this(null, null); ++ super(); ++ init(); + } +- public JCheckBox(Action a) ++ ++ public JCheckBox(Action action) + { +- this(); +- setAction(a); ++ super(action); ++ init(); + } + + public JCheckBox(Icon icon) + { +- this(null, icon); ++ super(icon); ++ init(); ++ } ++ ++ public JCheckBox(Icon icon, boolean selected) ++ { ++ super(icon, selected); ++ init(); + } + + public JCheckBox(String text) + { +- this(text, null); ++ super(text); ++ init(); ++ } ++ ++ public JCheckBox(String text, boolean selected) ++ { ++ super(text, selected); ++ init(); + } + + public JCheckBox(String text, Icon icon) + { + super(text, icon); ++ init(); + } + ++ public JCheckBox(String text, Icon icon, boolean selected) ++ { ++ super(text, icon, selected); ++ init(); ++ } + ++ /** ++ * Gets the AccessibleContext associated with this JCheckBox. ++ */ + public AccessibleContext getAccessibleContext() + { +- //Gets the AccessibleContext associated with this JCheckBox. + return null; + } + ++ /** ++ * Returns a string that specifies the name of the Look and Feel class ++ * that renders this component. ++ */ + public String getUIClassID() + { +- //Returns a string that specifies the name of the L&F class that renders this component. +- return "JCheckBox"; ++ return "CheckBoxUI"; + } + + protected String paramString() + { + return "JCheckBox"; + } ++ ++ public boolean isBorderPaintedFlat() ++ { ++ return borderPaintedFlat; ++ } ++ ++ public void setBorderPaintedFlat(boolean newValue) ++ { ++ firePropertyChange("borderPaintedFlat", borderPaintedFlat, newValue); ++ borderPaintedFlat = newValue; ++ } + } +Index: javax/swing/JCheckBoxMenuItem.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JCheckBoxMenuItem.java,v +retrieving revision 1.3 +diff -u -r1.3 JCheckBoxMenuItem.java +--- javax/swing/JCheckBoxMenuItem.java 9 Jan 2004 10:18:47 -0000 1.3 ++++ javax/swing/JCheckBoxMenuItem.java 6 Sep 2004 16:35:54 -0000 +@@ -43,202 +43,207 @@ + import javax.accessibility.AccessibleContext; + import javax.accessibility.AccessibleRole; + ++ + /** +- * JCheckBoxMenuItem +- * @author Andrew Selkirk +- * @version 1.0 ++ * This class represents JCheckBoxMenuItem. Its behaviour is very similar ++ * to JCheckBoxButton. Just like the JCheckBoxButton, user can check and ++ * uncheck this menu item by clicking on it. Also setSelected()/setState() ++ * can be use used for the same purpose. JCheckBoxMenuItem uses ++ * ToggleButtonModel to keep track of its selection. + */ +-public class JCheckBoxMenuItem extends JMenuItem implements SwingConstants, Accessible ++public class JCheckBoxMenuItem extends JMenuItem implements SwingConstants, ++ Accessible + { ++ private static final long serialVersionUID = -6676402307973384715L; + +- //------------------------------------------------------------- +- // Classes ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * AccessibleJCheckBoxMenuItem +- */ +- protected class AccessibleJCheckBoxMenuItem extends AccessibleJMenuItem { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor AccessibleJCheckBoxMenuItem +- * @param component TODO +- */ +- protected AccessibleJCheckBoxMenuItem(JCheckBoxMenuItem component) { +- super(component); +- // TODO +- } // AccessibleJCheckBoxMenuItem() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * getAccessibleRole +- * @returns AccessibleRole +- */ +- public AccessibleRole getAccessibleRole() { +- return AccessibleRole.CHECK_BOX; +- } // getAccessibleRole() +- +- +- } // AccessibleJCheckBoxMenuItem +- +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * uiClassID +- */ +- private static final String uiClassID = "CheckBoxMenuItemUI"; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor JCheckBoxMenuItem +- */ +- public JCheckBoxMenuItem() { +- // TODO +- } // JCheckBoxMenuItem() +- +- /** +- * Constructor JCheckBoxMenuItem +- * @param icon TODO +- */ +- public JCheckBoxMenuItem(Icon icon) { +- // TODO +- } // JCheckBoxMenuItem() +- +- /** +- * Constructor JCheckBoxMenuItem +- * @param text TODO +- */ +- public JCheckBoxMenuItem(String text) { +- // TODO +- } // JCheckBoxMenuItem() +- +- /** +- * Constructor JCheckBoxMenuItem +- * @param action TODO +- */ +- public JCheckBoxMenuItem(Action action) { +- // TODO +- } // JCheckBoxMenuItem() +- +- /** +- * Constructor JCheckBoxMenuItem +- * @param text TODO +- * @param icon TODO +- */ +- public JCheckBoxMenuItem(String text, Icon icon) { +- // TODO +- } // JCheckBoxMenuItem() +- +- /** +- * Constructor JCheckBoxMenuItem +- * @param text TODO +- * @param state TODO +- */ +- public JCheckBoxMenuItem(String text, boolean state) { +- // TODO +- } // JCheckBoxMenuItem() +- +- /** +- * Constructor JCheckBoxMenuItem +- * @param text TODO +- * @param icon TODO +- * @param state TODO +- */ +- public JCheckBoxMenuItem(String text, Icon icon, boolean state) { +- // TODO +- } // JCheckBoxMenuItem() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * writeObject +- * @param stream TODO +- * @exception IOException TODO +- */ +- private void writeObject(ObjectOutputStream stream) throws IOException { +- // TODO +- } // writeObject() +- +- /** +- * getUIClassID +- * @returns String +- */ +- public String getUIClassID() { +- return uiClassID; +- } // getUIClassID() +- +- /** +- * getState +- * @returns boolean +- */ +- public boolean getState() { +- return false; // TODO +- } // getState() +- +- /** +- * setState +- * @param state TODO +- */ +- public synchronized void setState(boolean state) { +- // TODO +- } // setState() +- +- /** +- * getSelectedObjects +- * @returns Object[] +- */ +- public Object[] getSelectedObjects() { +- return null; // TODO +- } // getSelectedObjects() +- +- /** +- * requestFocus +- */ +- public void requestFocus() { +- // TODO +- } // requestFocus() +- +- /** +- * paramString +- * @returns String +- */ +- protected String paramString() { +- return null; // TODO +- } // paramString() +- +- /** +- * getAccessibleContext +- * @returns AccessibleContext +- */ +- public AccessibleContext getAccessibleContext() { +- if (accessibleContext == null) { +- accessibleContext = new AccessibleJCheckBoxMenuItem(this); +- } // if +- return accessibleContext; +- } // getAccessibleContext() ++ /** name for the UI delegate for this menuItem. */ ++ private static final String uiClassID = "CheckBoxMenuItemUI"; + ++ /** Indicates whether this menu item is checked. */ ++ private boolean state; + +-} // JCheckBoxMenuItem ++ /** ++ * This array contains text of this menu item if this menu item is in ++ * checked state and null it is not. ++ */ ++ private Object[] selectedObjects = new Object[1]; ++ ++ /** ++ * Creates a new JCheckBoxMenuItem object. ++ */ ++ public JCheckBoxMenuItem() ++ { ++ this(null, null); ++ } ++ ++ /** ++ * Creates a new JCheckBoxMenuItem with given icon ++ * ++ * @param icon Icon for this menu item ++ */ ++ public JCheckBoxMenuItem(Icon icon) ++ { ++ this(null, icon); ++ } ++ ++ /** ++ * Creates a new JCheckBoxMenuItem with given label ++ * ++ * @param text Label for this menu item ++ */ ++ public JCheckBoxMenuItem(String text) ++ { ++ this(text, null); ++ } ++ ++ /** ++ * Creates a new JCheckBoxMenuItem using given action ++ * ++ * @param action Action for this menu item. ++ */ ++ public JCheckBoxMenuItem(Action action) ++ { ++ this(); ++ setAction(action); ++ } ++ ++ /** ++ * Creates a new JCheckBoxMenuItem object with given label and icon ++ * ++ * @param text Label for this menu item ++ * @param icon Icon for this menu item ++ */ ++ public JCheckBoxMenuItem(String text, Icon icon) ++ { ++ this(text, icon, false); ++ } ++ ++ /** ++ * Creates a new JCheckBoxMenuItem object using specified label and ++ * marked as checked if given 'state' is true ++ * ++ * @param text Label for this menu item ++ * @param state True if this item should be in checked state and false otherwise ++ */ ++ public JCheckBoxMenuItem(String text, boolean state) ++ { ++ this(text, null, state); ++ } ++ ++ /** ++ * Creates a new JCheckBoxMenuItem object with given label, icon, ++ * and marked as checked if given 'state' is true ++ * ++ * @param text Label for this menu item ++ * @param icon icon for this menu item ++ * @param state True if this item should be in checked state and false otherwise ++ */ ++ public JCheckBoxMenuItem(String text, Icon icon, boolean state) ++ { ++ super(text, icon); ++ setModel(new JToggleButton.ToggleButtonModel()); ++ this.state = state; ++ } ++ ++ private void writeObject(ObjectOutputStream stream) throws IOException ++ { ++ } ++ ++ /** ++ * This method returns a name to identify which look and feel class will be ++ * the UI delegate for the menuItem. ++ * ++ * @return The Look and Feel classID. "JCheckBoxMenuItemUI" ++ */ ++ public String getUIClassID() ++ { ++ return uiClassID; ++ } ++ ++ /** ++ * Returns checked state for this check box menu item. ++ * ++ * @return Returns true if this menu item is in checked state ++ * and false otherwise. ++ */ ++ public boolean getState() ++ { ++ return state; ++ } ++ ++ /** ++ * Sets state for this check box menu item. If ++ * given 'state' is true, then mark menu item as checked, ++ * and uncheck this menu item otherwise. ++ * ++ * @param state new state for this menu item ++ * ++ */ ++ public synchronized void setState(boolean state) ++ { ++ this.state = state; ++ } ++ ++ /** ++ * This method returns array containing label of this ++ * menu item if it is selected and null otherwise. ++ * ++ * @return Array containing label of this ++ * menu item if this menu item is selected or null otherwise. ++ */ ++ public Object[] getSelectedObjects() ++ { ++ if (state == true) ++ selectedObjects[0] = this.getText(); ++ else ++ selectedObjects[0] = null; ++ ++ return selectedObjects; ++ } ++ ++ /** ++ * This method overrides JComponent.requestFocus with an empty ++ * implementation, since JCheckBoxMenuItems should not ++ * receve focus in general. ++ */ ++ public void requestFocus() ++ { ++ // Should do nothing here ++ } ++ ++ /** ++ * A string that describes this JCheckBoxMenuItem. Normally only used ++ * for debugging. ++ * ++ * @return A string describing this JCheckBoxMenuItem ++ */ ++ protected String paramString() ++ { ++ return "JCheckBoxMenuItem"; ++ } ++ ++ public AccessibleContext getAccessibleContext() ++ { ++ if (accessibleContext == null) ++ accessibleContext = new AccessibleJCheckBoxMenuItem(); ++ ++ return accessibleContext; ++ } ++ ++ protected class AccessibleJCheckBoxMenuItem extends AccessibleJMenuItem ++ { ++ private static final long serialVersionUID = 1079958073579370777L; ++ ++ /** ++ * Creates a new AccessibleJCheckBoxMenuItem object. ++ */ ++ protected AccessibleJCheckBoxMenuItem() ++ { ++ } ++ ++ public AccessibleRole getAccessibleRole() ++ { ++ return AccessibleRole.CHECK_BOX; ++ } ++ } ++} +Index: javax/swing/JColorChooser.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JColorChooser.java,v +retrieving revision 1.2 +diff -u -r1.2 JColorChooser.java +--- javax/swing/JColorChooser.java 11 Jun 2003 13:20:39 -0000 1.2 ++++ javax/swing/JColorChooser.java 6 Sep 2004 16:35:54 -0000 +@@ -1,5 +1,5 @@ + /* JColorChooser.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,11 +35,16 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing; + ++import java.awt.AWTError; ++import java.awt.BorderLayout; + import java.awt.Color; + import java.awt.Component; ++import java.awt.Dialog; ++import java.awt.FlowLayout; ++import java.awt.Frame; ++import java.awt.event.ActionEvent; + import java.awt.event.ActionListener; + import java.io.IOException; + import java.io.ObjectOutputStream; +@@ -47,324 +52,654 @@ + import javax.accessibility.AccessibleContext; + import javax.accessibility.AccessibleRole; + import javax.swing.colorchooser.AbstractColorChooserPanel; ++import javax.swing.colorchooser.ColorChooserComponentFactory; + import javax.swing.colorchooser.ColorSelectionModel; ++import javax.swing.colorchooser.DefaultColorSelectionModel; + import javax.swing.plaf.ColorChooserUI; + ++ + /** +- * JColorChooser +- * @author Andrew Selkirk +- * @version 1.0 ++ * The JColorChooser is a Swing widget that offers users different ways to ++ * select a color. By default, three different panels are presented to the ++ * user that are capable of changing the selected color. There are three ways ++ * to utilize JColorChooser. The first is to build a JColorChooser and add it ++ * to the content pane. The second is to use the createDialog method to ++ * create a JDialog that holds a JColorChooser. The third is to show a ++ * JColorChooser in a JDialog directly using the showDialog method. + */ +-public class JColorChooser extends JComponent implements Accessible { +- +- //------------------------------------------------------------- +- // Classes ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * AccessibleJColorChooser +- */ +- protected class AccessibleJColorChooser extends JComponent.AccessibleJComponent { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor AccessibleJColorChooser +- * @param component TODO +- */ +- protected AccessibleJColorChooser(JColorChooser component) { +- super(component); +- // TODO +- } // AccessibleJColorChooser() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * getAccessibleRole +- * @returns AccessibleRole +- */ +- public AccessibleRole getAccessibleRole() { +- return AccessibleRole.COLOR_CHOOSER; +- } // getAccessibleRole() +- +- +- } // AccessibleJColorChooser +- +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * uiClassID +- */ +- private static final String uiClassID = "ColorChooserUI"; +- +- /** +- * selectionModel +- */ +- private ColorSelectionModel selectionModel; +- +- /** +- * previewPanel +- */ +- private JComponent previewPanel; +- +- /** +- * chooserPanels +- */ +- private AbstractColorChooserPanel[] chooserPanels; +- +- /** +- * SELECTION_MODEL_PROPERTY +- */ +- public static final String SELECTION_MODEL_PROPERTY = "selectionModel"; +- +- /** +- * PREVIEW_PANEL_PROPERTY +- */ +- public static final String PREVIEW_PANEL_PROPERTY = "previewPanel"; +- +- /** +- * CHOOSER_PANELS_PROPERTY +- */ +- public static final String CHOOSER_PANELS_PROPERTY = "chooserPanels"; +- +- /** +- * accessibleContext +- */ +- protected AccessibleContext accessibleContext; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor JColorChooser +- */ +- public JColorChooser() { +- // TODO +- } // JColorChooser() +- +- /** +- * Constructor JColorChooser +- * @param initial TODO +- */ +- public JColorChooser(Color initial) { +- // TODO +- } // JColorChooser() +- +- /** +- * Constructor JColorChooser +- * @param model TODO +- */ +- public JColorChooser(ColorSelectionModel model) { +- // TODO +- } // JColorChooser() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * writeObject +- * @param stream TODO +- * @exception IOException TODO +- */ +- private void writeObject(ObjectOutputStream stream) throws IOException { +- // TODO +- } // writeObject() +- +- /** +- * setColor +- * @param color TODO +- */ +- public void setColor(Color color) { +- // TODO +- } // setColor() +- +- /** +- * setColor +- * @param r TODO +- * @param g TODO +- * @param b TODO +- */ +- public void setColor(int r, int g, int b) { +- // TODO +- } // setColor() +- +- /** +- * setColor +- * @param color TODO +- */ +- public void setColor(int color) { +- // TODO +- } // setColor() +- +- /** +- * showDialog +- * @param component TODO +- * @param title TODO +- * @param initial TODO +- * @returns Color +- */ +- public static Color showDialog(Component component, String title, +- Color initial) { +- return null; // TODO +- } // showDialog() +- +- /** +- * createDialog +- * @param component TODO +- * @param title TODO +- * @param modal TODO +- * @param chooserPane TODO +- * @param okListener TODO +- * @param cancelListener TODO +- * @returns JDialog +- */ +- public static JDialog createDialog(Component component, String title, +- boolean modal, JColorChooser chooserPane, +- ActionListener okListener, ActionListener cancelListener) { +- return null; // TODO +- } // createDialog() +- +- /** +- * getUI +- * @returns ColorChooserUI +- */ +- public ColorChooserUI getUI() { +- return (ColorChooserUI) ui; +- } // getUI() +- +- /** +- * setUI +- * @param ui TODO +- */ +- public void setUI(ColorChooserUI ui) { +- super.setUI(ui); +- } // setUI() +- +- /** +- * updateUI +- */ +- public void updateUI() { +- setUI((ColorChooserUI) UIManager.get(this)); +- invalidate(); +- } // updateUI() +- +- /** +- * getUIClassID +- * @returns String +- */ +- public String getUIClassID() { +- return uiClassID; +- } // getUIClassID() +- +- /** +- * getColor +- * @returns Color +- */ +- public Color getColor() { +- return null; // TODO +- } // getColor() +- +- /** +- * setPreviewPanel +- * @param component TODO +- */ +- public void setPreviewPanel(JComponent component) { +- // TODO +- } // setPreviewPanel() +- +- /** +- * getPreviewPanel +- * @returns JComponent +- */ +- public JComponent getPreviewPanel() { +- return null; // TODO +- } // getPreviewPanel() +- +- /** +- * addChooserPanel +- * @param panel TODO +- */ +- public void addChooserPanel(AbstractColorChooserPanel panel) { +- // TODO +- } // addChooserPanel() +- +- /** +- * removeChooserPanel +- * @param panel TODO +- * @returns AbstractColorChooserPanel +- */ +- public AbstractColorChooserPanel removeChooserPanel( +- AbstractColorChooserPanel panel) { +- return null; // TODO +- } // removeChooserPanel() +- +- /** +- * setChooserPanels +- * @param panels TODO +- */ +- public void setChooserPanels(AbstractColorChooserPanel[] panels) { +- // TODO +- } // setChooserPanels() +- +- /** +- * getChooserPanels +- * @returns AbstractColorChooserPanel[] +- */ +- public AbstractColorChooserPanel[] getChooserPanels() { +- return null; // TODO +- } // getChooserPanels() +- +- /** +- * getSelectionModel +- * @returns ColorSelectionModel +- */ +- public ColorSelectionModel getSelectionModel() { +- return null; // TODO +- } // getSelectionModel() +- +- /** +- * setSelectionModel +- * @param model TODO +- */ +- public void setSelectionModel(ColorSelectionModel model) { +- // TODO +- } // setSelectionModel() +- +- /** +- * paramString +- * @returns String +- */ +- protected String paramString() { +- return null; // TODO +- } // paramString() +- +- /** +- * getAccessibleContext +- * @returns AccessibleContext +- */ +- public AccessibleContext getAccessibleContext() { +- if (accessibleContext == null) { +- accessibleContext = new AccessibleJColorChooser(this); +- } // if +- return accessibleContext; +- } // getAccessibleContext() +- +- +-} // JColorChooser ++public class JColorChooser extends JComponent implements Accessible ++{ ++ /** DOCUMENT ME! */ ++ private static final long serialVersionUID = 9168066781620640889L; ++ ++ /** ++ * AccessibleJColorChooser ++ */ ++ protected class AccessibleJColorChooser ++ extends JComponent.AccessibleJComponent ++ { ++ /** DOCUMENT ME! */ ++ private static final long serialVersionUID = -2038297864782299082L; ++ ++ /** ++ * Constructor AccessibleJColorChooser ++ */ ++ protected AccessibleJColorChooser() ++ { ++ } ++ ++ /** ++ * getAccessibleRole ++ * ++ * @return AccessibleRole ++ */ ++ public AccessibleRole getAccessibleRole() ++ { ++ return AccessibleRole.COLOR_CHOOSER; ++ } // getAccessibleRole() ++ } // AccessibleJColorChooser ++ ++ /** The model used with the JColorChooser. */ ++ private ColorSelectionModel selectionModel; ++ ++ /** The preview panel associated with the JColorChooser. */ ++ private JComponent previewPanel; ++ ++ /** ++ * The set of AbstractColorChooserPanels associated with the JColorChooser. ++ */ ++ private AbstractColorChooserPanel[] chooserPanels; ++ ++ /** A Drag and Drop property. */ ++ private boolean dragEnabled; ++ ++ /** ++ * The property fired by the JColorChooser when the selectionModel property ++ * changes. ++ */ ++ public static final String SELECTION_MODEL_PROPERTY = "selectionModel"; ++ ++ /** ++ * The property fired by the JColorChooser when the previewPanel property ++ * changes. ++ */ ++ public static final String PREVIEW_PANEL_PROPERTY = "previewPanel"; ++ ++ /** ++ * The property fired by the JColorChooser when the chooserPanels property ++ * changes. ++ */ ++ public static final String CHOOSER_PANELS_PROPERTY = "chooserPanels"; ++ ++ /** accessibleContext */ ++ protected AccessibleContext accessibleContext; ++ ++ /** ++ * This method creates a new JColorChooser with the default initial color. ++ */ ++ public JColorChooser() ++ { ++ this(new DefaultColorSelectionModel()); ++ } // JColorChooser() ++ ++ /** ++ * This method creates a new JColorChooser with the given initial color. ++ * ++ * @param initial The initial color. ++ */ ++ public JColorChooser(Color initial) ++ { ++ this(new DefaultColorSelectionModel(initial)); ++ } // JColorChooser() ++ ++ /** ++ * This method creates a new JColorChooser with the given model. The model ++ * will dictate what the initial color for the JColorChooser is. ++ * ++ * @param model The Model to use with the JColorChooser. ++ */ ++ public JColorChooser(ColorSelectionModel model) ++ { ++ if (model == null) ++ model = new DefaultColorSelectionModel(); ++ selectionModel = model; ++ updateUI(); ++ } // JColorChooser() ++ ++ /** ++ * This method sets the current color for the JColorChooser. ++ * ++ * @param color The new color for the JColorChooser. ++ */ ++ public void setColor(Color color) ++ { ++ if (color != null) ++ selectionModel.setSelectedColor(color); ++ } // setColor() ++ ++ /** ++ * This method sets the current color for the JColorChooser using RGB ++ * values. ++ * ++ * @param r The red value. ++ * @param g The green value. ++ * @param b The blue value. ++ */ ++ public void setColor(int r, int g, int b) ++ { ++ selectionModel.setSelectedColor(new Color(r, g, b)); ++ } // setColor() ++ ++ /** ++ * This method sets the current color for the JColorChooser using the ++ * integer value. Bits 0-7 represent the blue value. Bits 8-15 represent ++ * the green value. Bits 16-23 represent the red value. ++ * ++ * @param color The new current color of the JColorChooser. ++ */ ++ public void setColor(int color) ++ { ++ setColor(new Color(color, false)); ++ } // setColor() ++ ++ /** ++ * This method shows a JColorChooser inside a JDialog. The JDialog will ++ * block until it is hidden. The JDialog comes with three buttons: OK, ++ * Cancel, and Reset. Pressing OK or Cancel hide the JDialog. Pressing ++ * Reset will reset the JColorChooser to its initial value. ++ * ++ * @param component The Component that parents the JDialog. ++ * @param title The title displayed in the JDialog. ++ * @param initial The initial color. ++ * ++ * @return The selected color. ++ */ ++ public static Color showDialog(Component component, String title, ++ Color initial) ++ { ++ JColorChooser choose = new JColorChooser(initial); ++ ++ JDialog dialog = createDialog(component, title, true, choose, null, null); ++ ++ dialog.getContentPane().add(choose); ++ dialog.pack(); ++ dialog.show(); ++ ++ return choose.getColor(); ++ } // showDialog() ++ ++ /** ++ * This is a helper method to make the given JDialog block until it is ++ * hidden. ++ * ++ * @param dialog The JDialog to block. ++ */ ++ private static void makeModal(JDialog dialog) ++ { ++ try ++ { ++ synchronized (dialog) ++ { ++ while (dialog.isVisible()) ++ dialog.wait(); ++ } ++ } ++ catch (InterruptedException e) ++ { ++ } ++ } ++ ++ /** ++ * This is a helper method to find the first Frame or Dialog ancestor of the ++ * given Component. ++ * ++ * @param c The Component to find ancestors for. ++ * ++ * @return A Frame or Dialog ancestor. Null if none are found. ++ */ ++ private static Component findParent(Component c) ++ { ++ Component parent = SwingUtilities.getAncestorOfClass(Frame.class, c); ++ if (parent != null) ++ return parent; ++ parent = SwingUtilities.getAncestorOfClass(Dialog.class, c); ++ return parent; ++ } ++ ++ /** ++ * This method will take the given JColorChooser and place it in a JDialog ++ * with the given modal property. Three buttons are displayed in the ++ * JDialog: OK, Cancel and Reset. If OK or Cancel are pressed, the JDialog ++ * is hidden. If Reset is pressed, then the JColorChooser will take on its ++ * default color value. The given okListener will be registered to the OK ++ * button and the cancelListener will be registered to the Cancel button. ++ * If the modal property is set, then the JDialog will block until it is ++ * hidden. ++ * ++ * @param component The Component that will parent the JDialog. ++ * @param title The title displayed in the JDialog. ++ * @param modal The modal property. ++ * @param chooserPane The JColorChooser to place in the JDialog. ++ * @param okListener The ActionListener to register to the OK button. ++ * @param cancelListener The ActionListener to register to the Cancel ++ * button. ++ * ++ * @return A JDialog with the JColorChooser inside of it. ++ * ++ * @throws AWTError If the component is not a suitable parent. ++ */ ++ public static JDialog createDialog(Component component, String title, ++ boolean modal, JColorChooser chooserPane, ++ ActionListener okListener, ++ ActionListener cancelListener) ++ { ++ Component parent = findParent(component); ++ if (parent == null) ++ throw new AWTError("No suitable parent found for Component."); ++ JDialog dialog; ++ if (parent instanceof Frame) ++ dialog = new ModalDialog((Frame) parent, title); ++ else ++ dialog = new ModalDialog((Dialog) parent, title); ++ dialog.setModal(modal); ++ ++ dialog.getContentPane().setLayout(new BorderLayout()); ++ ++ JPanel panel = new JPanel(); ++ panel.setLayout(new FlowLayout()); ++ ++ ActionListener al = new DefaultOKCancelListener(dialog); ++ ++ JButton ok = new JButton("OK"); ++ ok.addActionListener(okListener); ++ ok.addActionListener(al); ++ ++ JButton cancel = new JButton("Cancel"); ++ cancel.addActionListener(cancelListener); ++ cancel.addActionListener(al); ++ ++ JButton reset = new JButton("Reset"); ++ reset.addActionListener(new DefaultResetListener(chooserPane)); ++ ++ dialog.getContentPane().add(chooserPane, BorderLayout.NORTH); ++ ++ panel.add(ok); ++ panel.add(cancel); ++ panel.add(reset); ++ ++ dialog.getContentPane().add(panel, BorderLayout.SOUTH); ++ ++ return dialog; ++ } // createDialog() ++ ++ /** ++ * This method returns the UI Component used for this JColorChooser. ++ * ++ * @return The UI Component for this JColorChooser. ++ */ ++ public ColorChooserUI getUI() ++ { ++ return (ColorChooserUI) ui; ++ } // getUI() ++ ++ /** ++ * This method sets the UI Component used for this JColorChooser. ++ * ++ * @param ui The UI Component to use with this JColorChooser. ++ */ ++ public void setUI(ColorChooserUI ui) ++ { ++ super.setUI(ui); ++ } // setUI() ++ ++ /** ++ * This method resets the UI Component property to the Look and Feel ++ * default. ++ */ ++ public void updateUI() ++ { ++ setUI((ColorChooserUI) UIManager.getUI(this)); ++ revalidate(); ++ } // updateUI() ++ ++ /** ++ * This method returns a String identifier for the UI Class to be used with ++ * the JColorChooser. ++ * ++ * @return The String identifier for the UI Class. ++ */ ++ public String getUIClassID() ++ { ++ return "ColorChooserUI"; ++ } // getUIClassID() ++ ++ /** ++ * This method returns the current color for the JColorChooser. ++ * ++ * @return The current color for the JColorChooser. ++ */ ++ public Color getColor() ++ { ++ return selectionModel.getSelectedColor(); // TODO ++ } // getColor() ++ ++ /** ++ * This method changes the previewPanel property for the JTabbedPane. The ++ * previewPanel is responsible for indicating the current color of the ++ * JColorChooser. ++ * ++ * @param component The Component that will act as the previewPanel. ++ */ ++ public void setPreviewPanel(JComponent component) ++ { ++ if (component != previewPanel) ++ { ++ JComponent old = previewPanel; ++ previewPanel = component; ++ firePropertyChange(PREVIEW_PANEL_PROPERTY, old, previewPanel); ++ } ++ } // setPreviewPanel() ++ ++ /** ++ * This method returns the current previewPanel used with this ++ * JColorChooser. ++ * ++ * @return The current previewPanel. ++ */ ++ public JComponent getPreviewPanel() ++ { ++ return previewPanel; // TODO ++ } // getPreviewPanel() ++ ++ /** ++ * This method adds the given AbstractColorChooserPanel to the list of the ++ * JColorChooser's chooserPanels. ++ * ++ * @param panel The AbstractColorChooserPanel to add. ++ */ ++ public void addChooserPanel(AbstractColorChooserPanel panel) ++ { ++ if (panel == null) ++ return; ++ AbstractColorChooserPanel[] old = chooserPanels; ++ AbstractColorChooserPanel[] newPanels = new AbstractColorChooserPanel[(old == null) ++ ? 1 ++ : old.length ++ + 1]; ++ if (old != null) ++ System.arraycopy(old, 0, newPanels, 0, old.length); ++ newPanels[newPanels.length - 1] = panel; ++ chooserPanels = newPanels; ++ panel.installChooserPanel(this); ++ firePropertyChange(CHOOSER_PANELS_PROPERTY, old, newPanels); ++ } // addChooserPanel() ++ ++ /** ++ * This method removes the given AbstractColorChooserPanel from the ++ * JColorChooser's list of chooserPanels. ++ * ++ * @param panel The AbstractColorChooserPanel to remove. ++ * ++ * @return The AbstractColorChooserPanel that was removed. ++ */ ++ public AbstractColorChooserPanel removeChooserPanel(AbstractColorChooserPanel panel) ++ { ++ int index = -1; ++ for (int i = 0; i < chooserPanels.length; i++) ++ if (panel == chooserPanels[i]) ++ { ++ index = i; ++ break; ++ } ++ ++ if (index == -1) ++ return null; ++ ++ AbstractColorChooserPanel[] old = chooserPanels; ++ if (chooserPanels.length == 1) ++ chooserPanels = null; ++ else ++ { ++ AbstractColorChooserPanel[] newPanels = new AbstractColorChooserPanel[chooserPanels.length ++ - 1]; ++ System.arraycopy(chooserPanels, 0, newPanels, 0, index); ++ System.arraycopy(chooserPanels, index, newPanels, index - 1, ++ chooserPanels.length - index); ++ chooserPanels = newPanels; ++ } ++ panel.uninstallChooserPanel(this); ++ firePropertyChange(CHOOSER_PANELS_PROPERTY, old, chooserPanels); ++ return panel; ++ } ++ ++ /** ++ * This method sets the chooserPanels property for this JColorChooser. ++ * ++ * @param panels The new set of AbstractColorChooserPanels to use. ++ */ ++ public void setChooserPanels(AbstractColorChooserPanel[] panels) ++ { ++ if (panels != chooserPanels) ++ { ++ if (chooserPanels != null) ++ for (int i = 0; i < chooserPanels.length; i++) ++ if (chooserPanels[i] != null) ++ chooserPanels[i].uninstallChooserPanel(this); ++ ++ AbstractColorChooserPanel[] old = chooserPanels; ++ chooserPanels = panels; ++ ++ if (panels != null) ++ for (int i = 0; i < panels.length; i++) ++ if (panels[i] != null) ++ panels[i].installChooserPanel(this); ++ ++ firePropertyChange(CHOOSER_PANELS_PROPERTY, old, chooserPanels); ++ } ++ } // setChooserPanels() ++ ++ /** ++ * This method returns the AbstractColorChooserPanels used with this ++ * JColorChooser. ++ * ++ * @return The AbstractColorChooserPanels used with this JColorChooser. ++ */ ++ public AbstractColorChooserPanel[] getChooserPanels() ++ { ++ return chooserPanels; ++ } // getChooserPanels() ++ ++ /** ++ * This method returns the ColorSelectionModel used with this JColorChooser. ++ * ++ * @return The ColorSelectionModel. ++ */ ++ public ColorSelectionModel getSelectionModel() ++ { ++ return selectionModel; ++ } // getSelectionModel() ++ ++ /** ++ * This method sets the ColorSelectionModel to be used with this ++ * JColorChooser. ++ * ++ * @param model The ColorSelectionModel to be used with this JColorChooser. ++ * ++ * @throws AWTError If the given model is null. ++ */ ++ public void setSelectionModel(ColorSelectionModel model) ++ { ++ if (model == null) ++ throw new AWTError("ColorSelectionModel is not allowed to be null."); ++ selectionModel = model; ++ } // setSelectionModel() ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public boolean getDragEnabled() ++ { ++ return dragEnabled; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param b DOCUMENT ME! ++ */ ++ public void setDragEnabled(boolean b) ++ { ++ dragEnabled = b; ++ } ++ ++ /** ++ * This method returns a String describing the JColorChooser. ++ * ++ * @return A String describing the JColorChooser. ++ */ ++ protected String paramString() ++ { ++ return "JColorChooser"; ++ } // paramString() ++ ++ /** ++ * getAccessibleContext ++ * ++ * @return AccessibleContext ++ */ ++ public AccessibleContext getAccessibleContext() ++ { ++ if (accessibleContext == null) ++ accessibleContext = new AccessibleJColorChooser(); ++ ++ return accessibleContext; ++ } ++ ++ /** ++ * A helper class that hides a JDialog when the action is performed. ++ */ ++ static class DefaultOKCancelListener implements ActionListener ++ { ++ /** The JDialog to hide. */ ++ private JDialog dialog; ++ ++ /** ++ * Creates a new DefaultOKCancelListener with the given JDialog to hide. ++ * ++ * @param dialog The JDialog to hide. ++ */ ++ public DefaultOKCancelListener(JDialog dialog) ++ { ++ super(); ++ this.dialog = dialog; ++ } ++ ++ /** ++ * This method hides the JDialog when called. ++ * ++ * @param e The ActionEvent. ++ */ ++ public void actionPerformed(ActionEvent e) ++ { ++ dialog.hide(); ++ } ++ } ++ ++ /** ++ * This method resets the JColorChooser color to the initial color when the ++ * action is performed. ++ */ ++ static class DefaultResetListener implements ActionListener ++ { ++ /** The JColorChooser to reset. */ ++ private JColorChooser chooser; ++ ++ /** The initial color. */ ++ private Color init; ++ ++ /** ++ * Creates a new DefaultResetListener with the given JColorChooser. ++ * ++ * @param chooser The JColorChooser to reset. ++ */ ++ public DefaultResetListener(JColorChooser chooser) ++ { ++ super(); ++ this.chooser = chooser; ++ init = chooser.getColor(); ++ } ++ ++ /** ++ * This method resets the JColorChooser to its initial color. ++ * ++ * @param e The ActionEvent. ++ */ ++ public void actionPerformed(ActionEvent e) ++ { ++ chooser.setColor(init); ++ } ++ } ++ ++ /** ++ * This is a custom JDialog that will notify when it is hidden and the modal ++ * property is set. ++ */ ++ static class ModalDialog extends JDialog ++ { ++ /** The modal property. */ ++ private boolean modal; ++ ++ /** ++ * Creates a new ModalDialog object with the given parent and title. ++ * ++ * @param parent The parent of the JDialog. ++ * @param title The title of the JDialog. ++ */ ++ public ModalDialog(Frame parent, String title) ++ { ++ super(parent, title); ++ } ++ ++ /** ++ * Creates a new ModalDialog object with the given parent and title. ++ * ++ * @param parent The parent of the JDialog. ++ * @param title The title of the JDialog. ++ */ ++ public ModalDialog(Dialog parent, String title) ++ { ++ super(parent, title); ++ } ++ ++ /** ++ * This method sets the modal property. ++ * ++ * @param modal The modal property. ++ */ ++ public void setModal(boolean modal) ++ { ++ this.modal = modal; ++ } ++ ++ /** ++ * This method shows the ModalDialog. ++ */ ++ public void show() ++ { ++ super.show(); ++ if (modal) ++ makeModal(this); ++ } ++ ++ /** ++ * This method hides the ModalDialog. ++ */ ++ public synchronized void hide() ++ { ++ super.hide(); ++ notifyAll(); ++ } ++ } ++} +Index: javax/swing/JComboBox.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JComboBox.java,v +retrieving revision 1.3 +diff -u -r1.3 JComboBox.java +--- javax/swing/JComboBox.java 12 Oct 2003 13:20:49 -0000 1.3 ++++ javax/swing/JComboBox.java 6 Sep 2004 16:35:54 -0000 +@@ -1,5 +1,5 @@ + /* JComboBox.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,805 +35,1139 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing; + +-import java.awt.*; +-import java.awt.event.*; +-import java.beans.*; +-import java.io.*; +-import java.util.*; +-import javax.accessibility.*; +-import javax.swing.event.*; +-import javax.swing.plaf.*; ++import java.awt.Component; ++import java.awt.Dimension; ++import java.awt.ItemSelectable; ++import java.awt.event.ActionEvent; ++import java.awt.event.ActionListener; ++import java.awt.event.ItemEvent; ++import java.awt.event.ItemListener; ++import java.awt.event.KeyEvent; ++import java.beans.PropertyChangeEvent; ++import java.beans.PropertyChangeListener; ++import java.io.IOException; ++import java.io.ObjectOutputStream; ++import java.util.Vector; ++import javax.accessibility.Accessible; ++import javax.accessibility.AccessibleAction; ++import javax.accessibility.AccessibleContext; ++import javax.accessibility.AccessibleRole; ++import javax.accessibility.AccessibleSelection; ++import javax.swing.JComponent; ++import javax.swing.event.ListDataEvent; ++import javax.swing.event.ListDataListener; ++import javax.swing.event.PopupMenuListener; ++import javax.swing.plaf.ComboBoxUI; ++ + + /** +- * JComboBox +- * @author Andrew Selkirk +- * @version 1.0 ++ * JComboBox. JComboBox is a container, that keeps track of elements added to ++ * it by the user. JComboBox allows user to select any item in its list and ++ * displays the selected item to the user. JComboBox also can show/hide popup ++ * menu containing its list of item whenever the mouse is pressed over it. ++ * ++ * @author Andrew Selkirk ++ * @author Olga Rodimina + */ +-public class JComboBox extends JComponent +- implements ItemSelectable, ListDataListener, ActionListener, Accessible ++public class JComboBox extends JComponent implements ItemSelectable, ++ ListDataListener, ++ ActionListener, ++ Accessible + { + private static final long serialVersionUID = 5654585963292734470L; + +- +- //------------------------------------------------------------- +- // Classes ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * AccessibleJComboBox +- */ +- protected class AccessibleJComboBox extends AccessibleJComponent +- implements AccessibleAction, AccessibleSelection { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor AccessibleJComboBox +- * @param component TODO +- */ +- protected AccessibleJComboBox(JComboBox component) { +- super(component); +- // TODO +- } // AccessibleJComboBox() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * getAccessibleChildrenCount +- * @returns int +- */ +- public int getAccessibleChildrenCount() { +- return 0; // TODO +- } // getAccessibleChildrenCount() +- +- /** +- * getAccessibleChild +- * @param value0 TODO +- * @returns Accessible +- */ +- public Accessible getAccessibleChild(int value0) { +- return null; // TODO +- } // getAccessibleChild() +- +- /** +- * getAccessibleSelection +- * @returns AccessibleSelection +- */ +- public AccessibleSelection getAccessibleSelection() { +- return null; // TODO +- } // getAccessibleSelection() +- +- /** +- * getAccessibleSelection +- * @param value0 TODO +- * @returns Accessible +- */ +- public Accessible getAccessibleSelection(int value0) { +- return null; // TODO +- } // getAccessibleSelection() +- +- /** +- * isAccessibleChildSelected +- * @param value0 TODO +- * @returns boolean +- */ +- public boolean isAccessibleChildSelected(int value0) { +- return false; // TODO +- } // isAccessibleChildSelected() +- +- /** +- * getAccessibleRole +- * @returns AccessibleRole +- */ +- public AccessibleRole getAccessibleRole() { +- return AccessibleRole.COMBO_BOX; +- } // getAccessibleRole() +- +- /** +- * getAccessibleAction +- * @returns AccessibleAction +- */ +- public AccessibleAction getAccessibleAction() { +- return null; // TODO +- } // getAccessibleAction() +- +- /** +- * getAccessibleActionDescription +- * @param value0 TODO +- * @returns String +- */ +- public String getAccessibleActionDescription(int value0) { +- return null; // TODO +- } // getAccessibleActionDescription() +- +- /** +- * getAccessibleActionCount +- * @returns int +- */ +- public int getAccessibleActionCount() { +- return 0; // TODO +- } // getAccessibleActionCount() +- +- /** +- * doAccessibleAction +- * @param value0 TODO +- * @returns boolean +- */ +- public boolean doAccessibleAction(int value0) { +- return false; // TODO +- } // doAccessibleAction() +- +- /** +- * getAccessibleSelectionCount +- * @returns int +- */ +- public int getAccessibleSelectionCount() { +- return 0; // TODO +- } // getAccessibleSelectionCount() +- +- /** +- * addAccessibleSelection +- * @param value0 TODO +- */ +- public void addAccessibleSelection(int value0) { +- // TODO +- } // addAccessibleSelection() +- +- /** +- * removeAccessibleSelection +- * @param value0 TODO +- */ +- public void removeAccessibleSelection(int value0) { +- // TODO +- } // removeAccessibleSelection() +- +- /** +- * clearAccessibleSelection +- */ +- public void clearAccessibleSelection() { +- // TODO +- } // clearAccessibleSelection() +- +- /** +- * selectAllAccessibleSelection +- */ +- public void selectAllAccessibleSelection() { +- // TODO +- } // selectAllAccessibleSelection() +- +- +- } // AccessibleJComboBox +- +- /** +- * KeySelectionManager +- */ +- public static interface KeySelectionManager { +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * selectionForKey +- * @param value0 TODO +- * @param value1 TODO +- * @returns int +- */ +- int selectionForKey(char value0, ComboBoxModel value1); +- +- +- } // KeySelectionManager +- +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * uiClassID +- */ +- private static final String uiClassID = "ComboBoxUI"; +- +- /** +- * dataModel +- */ +- protected ComboBoxModel dataModel; +- +- /** +- * renderer +- */ +- protected ListCellRenderer renderer; +- +- /** +- * editor +- */ +- protected ComboBoxEditor editor; +- +- /** +- * maximumRowCount +- */ +- protected int maximumRowCount; +- +- /** +- * isEditable +- */ +- protected boolean isEditable; +- +- /** +- * selectedItemReminder +- */ +- protected Object selectedItemReminder; +- +- /** +- * keySelectionManager +- */ +- protected JComboBox.KeySelectionManager keySelectionManager; +- +- /** +- * actionCommand +- */ +- protected String actionCommand; +- +- /** +- * lightWeightPopupEnabled +- */ +- protected boolean lightWeightPopupEnabled; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor JComboBox +- * @param value0 TODO +- */ +- public JComboBox(ComboBoxModel value0) { +- // TODO +- } // JComboBox() +- +- /** +- * Constructor JComboBox +- * @param value0 TODO +- */ +- public JComboBox(Object[] value0) { +- // TODO +- } // JComboBox() +- +- /** +- * Constructor JComboBox +- * @param value0 TODO +- */ +- public JComboBox(Vector value0) { +- // TODO +- } // JComboBox() +- +- /** +- * Constructor JComboBox +- */ +- public JComboBox() { +- // TODO +- } // JComboBox() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * writeObject +- * @param stream TODO +- * @exception IOException TODO +- */ +- private void writeObject(ObjectOutputStream stream) throws IOException { +- // TODO +- } // writeObject() +- +- /** +- * isEditable +- * @returns boolean +- */ +- public boolean isEditable() { +- return false; // TODO +- } // isEditable() +- +- /** +- * installAncestorListener +- */ +- protected void installAncestorListener() { +- // TODO +- } // installAncestorListener() +- +- /** +- * setUI +- * @param ui TODO +- */ +- public void setUI(ComboBoxUI ui) { +- super.setUI(ui); +- } // setUI() +- +- /** +- * updateUI +- */ +- public void updateUI() { +- setUI((ComboBoxUI) UIManager.get(this)); +- invalidate(); +- } // updateUI() +- +- /** +- * getUIClassID +- * @returns String +- */ +- public String getUIClassID() { +- return uiClassID; +- } // getUIClassID() +- +- /** +- * getUI +- * @returns ComboBoxUI +- */ +- public ComboBoxUI getUI() { +- return (ComboBoxUI) ui; +- } // getUI() +- +- /** +- * setModel +- * @param value0 TODO +- */ +- public void setModel(ComboBoxModel value0) { +- // TODO +- } // setModel() +- +- /** +- * getModel +- * @returns ComboBoxModel +- */ +- public ComboBoxModel getModel() { +- return null; // TODO +- } // getModel() +- +- /** +- * setLightWeightPopupEnabled +- * @param value0 TODO +- */ +- public void setLightWeightPopupEnabled(boolean value0) { +- // TODO +- } // setLightWeightPopupEnabled() +- +- /** +- * isLightWeightPopupEnabled +- * @returns boolean +- */ +- public boolean isLightWeightPopupEnabled() { +- return false; // TODO +- } // isLightWeightPopupEnabled() +- +- /** +- * setEditable +- * @param value0 TODO +- */ +- public void setEditable(boolean value0) { +- // TODO +- } // setEditable() +- +- /** +- * setMaximumRowCount +- * @param value0 TODO +- */ +- public void setMaximumRowCount(int value0) { +- // TODO +- } // setMaximumRowCount() +- +- /** +- * getMaximumRowCount +- * @returns int +- */ +- public int getMaximumRowCount() { +- return 0; // TODO +- } // getMaximumRowCount() +- +- /** +- * setRenderer +- * @param value0 TODO +- */ +- public void setRenderer(ListCellRenderer value0) { +- // TODO +- } // setRenderer() +- +- /** +- * getRenderer +- * @returns ListCellRenderer +- */ +- public ListCellRenderer getRenderer() { +- return null; // TODO +- } // getRenderer() +- +- /** +- * setEditor +- * @param value0 TODO +- */ +- public void setEditor(ComboBoxEditor value0) { +- // TODO +- } // setEditor() +- +- /** +- * getEditor +- * @returns ComboBoxEditor +- */ +- public ComboBoxEditor getEditor() { +- return null; // TODO +- } // getEditor() +- +- /** +- * setSelectedItem +- * @param value0 TODO +- */ +- public void setSelectedItem(Object value0) { +- // TODO +- } // setSelectedItem() +- +- /** +- * getSelectedItem +- * @returns Object +- */ +- public Object getSelectedItem() { +- return null; // TODO +- } // getSelectedItem() +- +- /** +- * setSelectedIndex +- * @param value0 TODO +- */ +- public void setSelectedIndex(int value0) { +- // TODO +- } // setSelectedIndex() +- +- /** +- * getSelectedIndex +- * @returns int +- */ +- public int getSelectedIndex() { +- return 0; // TODO +- } // getSelectedIndex() +- +- /** +- * addItem +- * @param value0 TODO +- */ +- public void addItem(Object value0) { +- // TODO +- } // addItem() +- +- /** +- * insertItemAt +- * @param value0 TODO +- * @param value1 TODO +- */ +- public void insertItemAt(Object value0, int value1) { +- // TODO +- } // insertItemAt() +- +- /** +- * removeItem +- * @param value0 TODO +- */ +- public void removeItem(Object value0) { +- // TODO +- } // removeItem() +- +- /** +- * removeItemAt +- * @param value0 TODO +- */ +- public void removeItemAt(int value0) { +- // TODO +- } // removeItemAt() +- +- /** +- * removeAllItems +- */ +- public void removeAllItems() { +- // TODO +- } // removeAllItems() +- +- /** +- * showPopup +- */ +- public void showPopup() { +- // TODO +- } // showPopup() +- +- /** +- * hidePopup +- */ +- public void hidePopup() { +- // TODO +- } // hidePopup() +- +- /** +- * setPopupVisible +- * @param value0 TODO +- */ +- public void setPopupVisible(boolean value0) { +- // TODO +- } // setPopupVisible() +- +- /** +- * isPopupVisible +- * @returns boolean +- */ +- public boolean isPopupVisible() { +- return false; // TODO +- } // isPopupVisible() +- +- /** +- * addItemListener +- * @param value0 TODO +- */ +- public void addItemListener(ItemListener value0) { +- // TODO +- } // addItemListener() +- +- /** +- * removeItemListener +- * @param value0 TODO +- */ +- public void removeItemListener(ItemListener value0) { +- // TODO +- } // removeItemListener() +- +- /** +- * addActionListener +- * @param value0 TODO +- */ +- public void addActionListener(ActionListener value0) { +- // TODO +- } // addActionListener() +- +- /** +- * removeActionListener +- * @param value0 TODO +- */ +- public void removeActionListener(ActionListener value0) { +- // TODO +- } // removeActionListener() +- +- /** +- * setActionCommand +- * @param value0 TODO +- */ +- public void setActionCommand(String value0) { +- // TODO +- } // setActionCommand() +- +- /** +- * getActionCommand +- * @returns String +- */ +- public String getActionCommand() { +- return null; // TODO +- } // getActionCommand() +- +- /** +- * setAction +- * @param value0 TODO +- */ +- public void setAction(Action value0) { +- // TODO +- } // setAction() +- +- /** +- * isListener +- * @param value0 TODO +- * @param value1 TODO +- * @returns boolean +- */ +- private boolean isListener(Class value0, ActionListener value1) { +- return false; // TODO +- } // isListener() +- +- /** +- * getAction +- * @returns Action +- */ +- public Action getAction() { +- return null; // TODO +- } // getAction() +- +- /** +- * configurePropertiesFromAction +- * @param value0 TODO +- */ +- protected void configurePropertiesFromAction(Action value0) { +- // TODO +- } // configurePropertiesFromAction() +- +- /** +- * createActionPropertyChangeListener +- * @param value0 TODO +- * @returns PropertyChangeListener +- */ +- protected PropertyChangeListener createActionPropertyChangeListener(Action value0) { +- return null; // TODO +- } // createActionPropertyChangeListener() +- +- /** +- * fireItemStateChanged +- * @param value0 TODO +- */ +- protected void fireItemStateChanged(ItemEvent value0) { +- // TODO +- } // fireItemStateChanged() +- +- /** +- * fireActionEvent +- */ +- protected void fireActionEvent() { +- // TODO +- } // fireActionEvent() +- +- /** +- * selectedItemChanged +- */ +- protected void selectedItemChanged() { +- // TODO +- } // selectedItemChanged() +- +- /** +- * getSelectedObjects +- * @returns Object[] +- */ +- public Object[] getSelectedObjects() { +- return null; // TODO +- } // getSelectedObjects() +- +- /** +- * actionPerformed +- * @param value0 TODO +- */ +- public void actionPerformed(ActionEvent value0) { +- // TODO +- } // actionPerformed() +- +- /** +- * contentsChanged +- * @param value0 TODO +- */ +- public void contentsChanged(ListDataEvent value0) { +- // TODO +- } // contentsChanged() +- +- /** +- * selectWithKeyChar +- * @param value0 TODO +- * @returns boolean +- */ +- public boolean selectWithKeyChar(char value0) { +- return false; // TODO +- } // selectWithKeyChar() +- +- /** +- * intervalAdded +- * @param value0 TODO +- */ +- public void intervalAdded(ListDataEvent value0) { +- // TODO +- } // intervalAdded() +- +- /** +- * intervalRemoved +- * @param value0 TODO +- */ +- public void intervalRemoved(ListDataEvent value0) { +- // TODO +- } // intervalRemoved() +- +- /** +- * setEnabled +- * @param value0 TODO +- */ +- public void setEnabled(boolean value0) { +- // TODO +- } // setEnabled() +- +- /** +- * configureEditor +- * @param value0 TODO +- * @param value1 TODO +- */ +- public void configureEditor(ComboBoxEditor value0, Object value1) { +- // TODO +- } // configureEditor() +- +- /** +- * processKeyEvent +- * @param value0 TODO +- */ +- public void processKeyEvent(KeyEvent value0) { +- // TODO +- } // processKeyEvent() +- +- /** +- * isFocusTraversable +- * @returns boolean +- * @deprecated +- */ +- public boolean isFocusTraversable() { +- return false; // TODO +- } // isFocusTraversable() +- +- /** +- * setKeySelectionManager +- * @param value0 TODO +- */ +- public void setKeySelectionManager(KeySelectionManager value0) { +- // TODO +- } // setKeySelectionManager() +- +- /** +- * getKeySelectionManager +- * @returns JComboBox.KeySelectionManager +- */ +- public JComboBox.KeySelectionManager getKeySelectionManager() { +- return null; // TODO +- } // getKeySelectionManager() +- +- /** +- * getItemCount +- * @returns int +- */ +- public int getItemCount() { +- return 0; // TODO +- } // getItemCount() +- +- /** +- * getItemAt +- * @param value0 TODO +- * @returns Object +- */ +- public Object getItemAt(int value0) { +- return null; // TODO +- } // getItemAt() +- +- /** +- * createDefaultKeySelectionManager +- * @returns KeySelectionManager +- */ +- protected KeySelectionManager createDefaultKeySelectionManager() { +- return null; // TODO +- } // createDefaultKeySelectionManager() +- +- /** +- * paramString +- * @returns String +- */ +- protected String paramString() { +- return null; // TODO +- } // paramString() +- +- /** +- * getAccessibleContext +- * @returns AccessibleContext +- */ +- public AccessibleContext getAccessibleContext() { +- if (accessibleContext == null) { +- accessibleContext = new AccessibleJComboBox(this); +- } // if +- return accessibleContext; +- } // getAccessibleContext() +- +- +-} // JComboBox ++ /** ++ * KeySelectionManager interface. Class implementing this interface are ++ * responsible for matching key characters typed by the user with combo ++ * box's items. ++ */ ++ public static interface KeySelectionManager ++ { ++ int selectionForKey(char aKey, ComboBoxModel aModel); ++ } ++ ++ /** ++ * Maximum number of rows that should be visible by default in the ++ * JComboBox's popup ++ */ ++ public static final int DEFAULT_MAXIMUM_ROW_COUNT = 8; ++ ++ /** ++ * Fired in a PropertyChangeEvent when the 'editable' property changes. ++ */ ++ public static final String EDITABLE_CHANGED_PROPERTY = "editable"; ++ ++ /** ++ * Fired in a PropertyChangeEvent when the 'maximumRowCount' property ++ * changes. ++ */ ++ public static final String MAXIMUM_ROW_COUNT_CHANGED_PROPERTY = "maximumRowCount"; ++ ++ /** ++ * Fired in a PropertyChangeEvent when the 'enabled' property changes. ++ */ ++ public static final String ENABLED_CHANGED_PROPERTY = "enabled"; ++ ++ /** ++ * Fired in a PropertyChangeEvent when the 'renderer' property changes. ++ */ ++ public static final String RENDERER_CHANGED_PROPERTY = "renderer"; ++ ++ /** ++ * Fired in a PropertyChangeEvent when the 'editor' property changes. ++ */ ++ public static final String EDITOR_CHANGED_PROPERTY = "editor"; ++ ++ /** ++ * Fired in a PropertyChangeEvent when the 'dataModel' property changes. ++ */ ++ public static final String MODEL_CHANGED_PROPERTY = "dataModel"; ++ ++ /** ++ * name for the UI delegate for this combo box. ++ */ ++ private static final String uiClassID = "ComboBoxUI"; ++ ++ /** ++ * dataModel used by JComboBox to keep track of its list data and currently ++ * selected element in the list. ++ */ ++ protected ComboBoxModel dataModel; ++ ++ /** ++ * Renderer renders(paints) every object in the combo box list in its ++ * associated list cell. This ListCellRenderer is used only when this ++ * JComboBox is uneditable. ++ */ ++ protected ListCellRenderer renderer; ++ ++ /** ++ * editor that is responsible for editting an object in a combo box list ++ */ ++ protected ComboBoxEditor editor; ++ ++ /** ++ * Number of rows that will be visible in the JComboBox's popup. ++ */ ++ protected int maximumRowCount; ++ ++ /** ++ * This field indicates if textfield of this JComboBox is editable or not. ++ */ ++ protected boolean isEditable; ++ ++ /** ++ * This field is reference to the current selection of the combo box. ++ */ ++ protected Object selectedItemReminder; ++ ++ /** ++ * keySelectionManager ++ */ ++ protected KeySelectionManager keySelectionManager; ++ ++ /** ++ * This actionCommand is used in ActionEvent that is fired to JComboBox's ++ * ActionListeneres. ++ */ ++ protected String actionCommand; ++ ++ /** ++ * This property indicates if heavyweight popup or lightweight popup will be ++ * used to diplay JComboBox's elements. ++ */ ++ protected boolean lightWeightPopupEnabled; ++ ++ /** ++ * The action taken when new item is selected in the JComboBox ++ */ ++ private Action action; ++ ++ /** ++ * since 1.4 If this field is set then comboBox's display area for the ++ * selected item will be set by default to this value. ++ */ ++ private Object prototypeDisplayValue; ++ ++ /** ++ * Constructs JComboBox object with specified data model for it. The first ++ * item in the specified data model is selected by default. ++ * ++ * @param model Data model that will be used by this JComboBox to keep track ++ * of its list of items. ++ */ ++ public JComboBox(ComboBoxModel model) ++ { ++ setEditable(false); ++ setEnabled(true); ++ setMaximumRowCount(DEFAULT_MAXIMUM_ROW_COUNT); ++ setModel(model); ++ setActionCommand("comboBoxChanged"); ++ ++ // by default set selected item to the first element in the combo box ++ if (getItemCount() != 0) ++ setSelectedItem(getItemAt(0)); ++ ++ lightWeightPopupEnabled = true; ++ isEditable = false; ++ ++ updateUI(); ++ } ++ ++ /** ++ * Constructs JComboBox with specified list of items. ++ * ++ * @param itemArray array containing list of items for this JComboBox ++ */ ++ public JComboBox(Object[] itemArray) ++ { ++ this(new DefaultComboBoxModel(itemArray)); ++ } ++ ++ /** ++ * Constructs JComboBox object with specified list of items. ++ * ++ * @param itemVector vector containing list of items for this JComboBox. ++ */ ++ public JComboBox(Vector itemVector) ++ { ++ this(new DefaultComboBoxModel(itemVector)); ++ } ++ ++ /** ++ * Constructor. Creates new empty JComboBox. ComboBox's data model is set to ++ * DefaultComboBoxModel. ++ */ ++ public JComboBox() ++ { ++ this(new DefaultComboBoxModel()); ++ } ++ ++ private void writeObject(ObjectOutputStream stream) throws IOException ++ { ++ } ++ ++ /** ++ * This method returns true JComboBox is editable and false otherwise ++ * ++ * @return boolean true if JComboBox is editable and false otherwise ++ */ ++ public boolean isEditable() ++ { ++ return isEditable; ++ } ++ ++ /* ++ * This method adds ancestor listener to this JComboBox. ++ */ ++ protected void installAncestorListener() ++ { ++ /* FIXME: Need to implement. ++ * ++ * Need to add ancestor listener to this JComboBox. This listener ++ * should close combo box's popup list of items whenever it ++ * receives an AncestorEvent. ++ */ ++ } ++ ++ /** ++ * Set the "UI" property of the combo box, which is a look and feel class ++ * responsible for handling comboBox's input events and painting it. ++ * ++ * @param ui The new "UI" property ++ */ ++ public void setUI(ComboBoxUI ui) ++ { ++ super.setUI(ui); ++ } ++ ++ /** ++ * This method sets this comboBox's UI to the UIManager's default for the ++ * current look and feel. ++ */ ++ public void updateUI() ++ { ++ setUI((ComboBoxUI) UIManager.getUI(this)); ++ invalidate(); ++ } ++ ++ /** ++ * This method returns the String identifier for the UI class to the used ++ * with the JComboBox. ++ * ++ * @return The String identifier for the UI class. ++ */ ++ public String getUIClassID() ++ { ++ return uiClassID; ++ } ++ ++ /** ++ * This method returns the UI used to display the JComboBox. ++ * ++ * @return The UI used to display the JComboBox. ++ */ ++ public ComboBoxUI getUI() ++ { ++ return (ComboBoxUI) ui; ++ } ++ ++ /** ++ * Set the data model for this JComboBox. This un-registers all listeners ++ * associated with the current model, and re-registers them with the new ++ * model. ++ * ++ * @param newDataModel The new data model for this JComboBox ++ */ ++ public void setModel(ComboBoxModel newDataModel) ++ { ++ if (this.dataModel == newDataModel) ++ return; ++ ++ if (this.dataModel != null) ++ // remove all listeners currently registered with the model. ++ dataModel.removeListDataListener(this); ++ ++ ComboBoxModel oldDataModel = this.dataModel; ++ this.dataModel = newDataModel; ++ ++ if (this.dataModel != null) ++ // register all listeners with the new data model ++ dataModel.addListDataListener(this); ++ ++ firePropertyChange(MODEL_CHANGED_PROPERTY, oldDataModel, this.dataModel); ++ } ++ ++ /** ++ * This method returns data model for this comboBox. ++ * ++ * @return ComboBoxModel containing items for this combo box. ++ */ ++ public ComboBoxModel getModel() ++ { ++ return dataModel; ++ } ++ ++ /** ++ * This method sets JComboBox's popup to be either lightweight or ++ * heavyweight. If 'enabled' is true then lightweight popup is used and ++ * heavyweight otherwise. By default lightweight popup is used to display ++ * this JComboBox's elements. ++ * ++ * @param enabled indicates if lightweight popup or heavyweight popup should ++ * be used to display JComboBox's elements. ++ */ ++ public void setLightWeightPopupEnabled(boolean enabled) ++ { ++ this.lightWeightPopupEnabled = enabled; ++ } ++ ++ /** ++ * This method returns whether popup menu that is used to display list of ++ * combo box's item is lightWeight or not. ++ * ++ * @return boolean true if popup menu is lightweight and false otherwise. ++ */ ++ public boolean isLightWeightPopupEnabled() ++ { ++ return lightWeightPopupEnabled; ++ } ++ ++ /** ++ * This method sets editability of the combo box. If combo box is editable ++ * the user can choose component from the combo box list by typing ++ * component's name in the editor(JTextfield by default). Otherwise if not ++ * editable, the user should use the list to choose the component. This ++ * method fires PropertyChangeEvents to JComboBox's registered ++ * PropertyChangeListeners to indicate that 'editable' property of the ++ * JComboBox has changed. ++ * ++ * @param editable indicates if the JComboBox's textfield should be editable ++ * or not. ++ */ ++ public void setEditable(boolean editable) ++ { ++ if (this.isEditable != editable) ++ { ++ this.isEditable = editable; ++ firePropertyChange(EDITABLE_CHANGED_PROPERTY, ! isEditable, isEditable); ++ } ++ } ++ ++ /** ++ * Sets number of rows that should be visible in this JComboBox's popup. If ++ * this JComboBox's popup has more elements that maximum number or rows ++ * then popup will have a scroll pane to allow users to view other ++ * elements. ++ * ++ * @param rowCount number of rows that will be visible in JComboBox's popup. ++ */ ++ public void setMaximumRowCount(int rowCount) ++ { ++ if (maximumRowCount != rowCount) ++ { ++ int oldMaximumRowCount = this.maximumRowCount; ++ this.maximumRowCount = rowCount; ++ firePropertyChange(MAXIMUM_ROW_COUNT_CHANGED_PROPERTY, ++ oldMaximumRowCount, this.maximumRowCount); ++ } ++ } ++ ++ /** ++ * This method returns number of rows visible in the JComboBox's list of ++ * items. ++ * ++ * @return int maximun number of visible rows in the JComboBox's list. ++ */ ++ public int getMaximumRowCount() ++ { ++ return maximumRowCount; ++ } ++ ++ /** ++ * This method sets cell renderer for this JComboBox that will be used to ++ * paint combo box's items. The Renderer should only be used only when ++ * JComboBox is not editable. In the case when JComboBox is editable the ++ * editor must be used. This method also fires PropertyChangeEvent when ++ * cellRendered for this JComboBox has changed. ++ * ++ * @param aRenderer cell renderer that will be used by this JComboBox to ++ * paint its elements. ++ */ ++ public void setRenderer(ListCellRenderer aRenderer) ++ { ++ if (this.renderer != aRenderer) ++ { ++ ListCellRenderer oldRenderer = this.renderer; ++ this.renderer = aRenderer; ++ firePropertyChange(RENDERER_CHANGED_PROPERTY, oldRenderer, ++ this.renderer); ++ } ++ } ++ ++ /** ++ * This method returns renderer responsible for rendering selected item in ++ * the combo box ++ * ++ * @return ListCellRenderer ++ */ ++ public ListCellRenderer getRenderer() ++ { ++ return renderer; ++ } ++ ++ /** ++ * Sets editor for this JComboBox ++ * ++ * @param newEditor ComboBoxEditor for this JComboBox. This method fires ++ * PropertyChangeEvent when 'editor' property is changed. ++ */ ++ public void setEditor(ComboBoxEditor newEditor) ++ { ++ if (editor == newEditor) ++ return; ++ ++ if (editor != null) ++ editor.removeActionListener(this); ++ ++ ComboBoxEditor oldEditor = editor; ++ editor = newEditor; ++ ++ if (editor != null) ++ editor.addActionListener(this); ++ ++ firePropertyChange(EDITOR_CHANGED_PROPERTY, oldEditor, editor); ++ } ++ ++ /** ++ * Returns editor component that is responsible for displaying/editting ++ * selected item in the combo box. ++ * ++ * @return ComboBoxEditor ++ */ ++ public ComboBoxEditor getEditor() ++ { ++ return editor; ++ } ++ ++ /** ++ * Forces combo box to select given item ++ * ++ * @param item element in the combo box to select. ++ */ ++ public void setSelectedItem(Object item) ++ { ++ dataModel.setSelectedItem(item); ++ } ++ ++ /** ++ * Returns currently selected item in the combo box. ++ * ++ * @return element that is currently selected in this combo box. ++ */ ++ public Object getSelectedItem() ++ { ++ Object item = dataModel.getSelectedItem(); ++ ++ if (item == null && getItemCount() != 0) ++ item = getItemAt(0); ++ ++ return item; ++ } ++ ++ /** ++ * Forces JComboBox to select component located in the given index in the ++ * combo box. ++ * ++ * @param index index specifying location of the component that should be ++ * selected. ++ */ ++ public void setSelectedIndex(int index) ++ { ++ // FIXME: if index == -1 then nothing should be selected ++ setSelectedItem(dataModel.getElementAt(index)); ++ } ++ ++ /** ++ * Returns index of the item that is currently selected in the combo box. ++ * If no item is currently selected, then -1 is returned. ++ * ++ * @return int index specifying location of the currently selected item in ++ * the combo box or -1 if nothing is selected in the combo box. ++ */ ++ public int getSelectedIndex() ++ { ++ Object selectedItem = getSelectedItem(); ++ if (selectedItem != null && (dataModel instanceof DefaultComboBoxModel)) ++ return ((DefaultComboBoxModel) dataModel).getIndexOf(selectedItem); ++ ++ return -1; ++ } ++ ++ public Object getPrototypeDisplayValue() ++ { ++ return prototypeDisplayValue; ++ } ++ ++ public void setPrototypeDisplayValue(Object prototypeDisplayValue) ++ { ++ this.prototypeDisplayValue = prototypeDisplayValue; ++ } ++ ++ /** ++ * This method adds given element to this JComboBox. ++ * ++ * @param element element to add ++ */ ++ public void addItem(Object element) ++ { ++ ((MutableComboBoxModel) dataModel).addElement(element); ++ } ++ ++ /** ++ * Inserts given element at the specified index to this JComboBox ++ * ++ * @param element element to insert ++ * @param index position where to insert the element ++ */ ++ public void insertItemAt(Object element, int index) ++ { ++ ((MutableComboBoxModel) dataModel).insertElementAt(element, index); ++ } ++ ++ /** ++ * This method removes given element from this JComboBox. ++ * ++ * @param element element to remove ++ */ ++ public void removeItem(Object element) ++ { ++ ((MutableComboBoxModel) dataModel).removeElement(element); ++ } ++ ++ /** ++ * This method remove element location in the specified index in the ++ * JComboBox. ++ * ++ * @param index index specifying position of the element to remove ++ */ ++ public void removeItemAt(int index) ++ { ++ ((MutableComboBoxModel) dataModel).removeElementAt(index); ++ } ++ ++ /** ++ * This method removes all elements from this JComboBox. ++ */ ++ public void removeAllItems() ++ { ++ if (dataModel instanceof DefaultComboBoxModel) ++ ((DefaultComboBoxModel) dataModel).removeAllElements(); ++ } ++ ++ /** ++ * This method displays popup with list of combo box's items on the screen ++ */ ++ public void showPopup() ++ { ++ setPopupVisible(true); ++ } ++ ++ /** ++ * This method hides popup containing list of combo box's items ++ */ ++ public void hidePopup() ++ { ++ setPopupVisible(false); ++ } ++ ++ /** ++ * This method either displayes or hides the popup containing list of combo ++ * box's items. ++ * ++ * @param visible show popup if 'visible' is true and hide it otherwise ++ */ ++ public void setPopupVisible(boolean visible) ++ { ++ getUI().setPopupVisible(this, visible); ++ } ++ ++ /** ++ * Checks if popup is currently visible on the screen. ++ * ++ * @return boolean true if popup is visible and false otherwise ++ */ ++ public boolean isPopupVisible() ++ { ++ return getUI().isPopupVisible(this); ++ } ++ ++ /** ++ * This method sets actionCommand to the specified string. ActionEvent fired ++ * to this JComboBox registered ActionListeners will contain this ++ * actionCommand. ++ * ++ * @param aCommand new action command for the JComboBox's ActionEvent ++ */ ++ public void setActionCommand(String aCommand) ++ { ++ actionCommand = aCommand; ++ } ++ ++ /** ++ * Returns actionCommand associated with the ActionEvent fired by the ++ * JComboBox to its registered ActionListeners. ++ * ++ * @return String actionCommand for the ActionEvent ++ */ ++ public String getActionCommand() ++ { ++ return actionCommand; ++ } ++ ++ /** ++ * setAction ++ * ++ * @param a action to set ++ */ ++ public void setAction(Action a) ++ { ++ Action old = action; ++ action = a; ++ configurePropertiesFromAction(action); ++ if (action != null) ++ // FIXME: remove from old action and add to new action ++ // PropertyChangeListener to listen to changes in the action ++ addActionListener(action); ++ } ++ ++ /** ++ * This method returns Action that is invoked when selected item is changed ++ * in the JComboBox. ++ * ++ * @return Action ++ */ ++ public Action getAction() ++ { ++ return action; ++ } ++ ++ /** ++ * Configure properties of the JComboBox by reading properties of specified ++ * action. This method always sets the comboBox's "enabled" property to the ++ * value of the Action's "enabled" property. ++ * ++ * @param a An Action to configure the combo box from ++ */ ++ protected void configurePropertiesFromAction(Action a) ++ { ++ if (a == null) ++ { ++ setEnabled(true); ++ setToolTipText(null); ++ } ++ else ++ { ++ setEnabled(a.isEnabled()); ++ setToolTipText((String) (a.getValue(Action.SHORT_DESCRIPTION))); ++ } ++ } ++ ++ /** ++ * Creates PropertyChangeListener to listen for the changes in comboBox's ++ * action properties. ++ * ++ * @param action action to listen to for property changes ++ * ++ * @return $PropertyChangeListener$ Listener that listens to changes in ++ * action properties. ++ */ ++ protected PropertyChangeListener createActionPropertyChangeListener(Action action) ++ { ++ return new PropertyChangeListener() ++ { ++ public void propertyChange(PropertyChangeEvent e) ++ { ++ Action act = (Action) (e.getSource()); ++ configurePropertiesFromAction(act); ++ } ++ }; ++ } ++ ++ /** ++ * This method fires ItemEvent to this JComboBox's registered ItemListeners. ++ * This method is invoked when currently selected item in this combo box ++ * has changed. ++ * ++ * @param e the ItemEvent describing the change in the combo box's ++ * selection. ++ */ ++ protected void fireItemStateChanged(ItemEvent e) ++ { ++ ItemListener[] ll = getItemListeners(); ++ ++ for (int i = 0; i < ll.length; i++) ++ ll[i].itemStateChanged(e); ++ } ++ ++ /** ++ * This method fires ActionEvent to this JComboBox's registered ++ * ActionListeners. This method is invoked when user explicitly changes ++ * currently selected item. ++ */ ++ protected void fireActionEvent() ++ { ++ ActionListener[] ll = getActionListeners(); ++ ++ for (int i = 0; i < ll.length; i++) ++ ll[i].actionPerformed(new ActionEvent(this, ++ ActionEvent.ACTION_PERFORMED, ++ actionCommand)); ++ } ++ ++ /** ++ * This method is invoked whenever selected item changes in the combo box's ++ * data model. It fires ItemEvent and ActionEvent to all registered ++ * ComboBox's ItemListeners and ActionListeners respectively, indicating ++ * the change. ++ */ ++ protected void selectedItemChanged() ++ { ++ // Fire ItemEvent to indicated that previously selected item is now ++ // deselected ++ if (selectedItemReminder != null) ++ fireItemStateChanged(new ItemEvent(this, ItemEvent.ITEM_STATE_CHANGED, ++ selectedItemReminder, ++ ItemEvent.DESELECTED)); ++ ++ // Fire ItemEvent to indicate that new item is selected ++ Object newSelection = getSelectedItem(); ++ fireItemStateChanged(new ItemEvent(this, ItemEvent.ITEM_STATE_CHANGED, ++ newSelection, ItemEvent.SELECTED)); ++ ++ // Fire Action Event to JComboBox's registered listeners ++ fireActionEvent(); ++ ++ selectedItemReminder = newSelection; ++ } ++ ++ /** ++ * Returns Object array of size 1 containing currently selected element in ++ * the JComboBox. ++ * ++ * @return Object[] Object array of size 1 containing currently selected ++ * element in the JComboBox. ++ */ ++ public Object[] getSelectedObjects() ++ { ++ Object selectedObject = getSelectedItem(); ++ return new Object[] { selectedObject }; ++ } ++ ++ /** ++ * This method handles actionEvents fired by the ComboBoxEditor. It changes ++ * this JComboBox's selection to the new value currently in the editor and ++ * hides list of combo box items. ++ * ++ * @param e the ActionEvent ++ */ ++ public void actionPerformed(ActionEvent e) ++ { ++ setSelectedItem(((ComboBoxEditor) e.getSource()).getItem()); ++ setPopupVisible(false); ++ } ++ ++ /** ++ * This method selects item in this combo box that matches specified ++ * specified keyChar and returns true if such item is found. Otherwise ++ * false is returned. ++ * ++ * @param keyChar character indicating which item in the combo box should be ++ * selected. ++ * ++ * @return boolean true if item corresponding to the specified keyChar ++ * exists in the combo box. Otherwise false is returned. ++ */ ++ public boolean selectWithKeyChar(char keyChar) ++ { ++ // FIXME: Need to implement ++ return false; ++ } ++ ++ /** ++ * The part of implementation of ListDataListener interface. This method is ++ * invoked when some items where added to the JComboBox's data model. ++ * ++ * @param event ListDataEvent describing the change ++ */ ++ public void intervalAdded(ListDataEvent event) ++ { ++ // FIXME: Need to implement ++ repaint(); ++ } ++ ++ /** ++ * The part of implementation of ListDataListener interface. This method is ++ * invoked when some items where removed from the JComboBox's data model. ++ * ++ * @param event ListDataEvent describing the change. ++ */ ++ public void intervalRemoved(ListDataEvent event) ++ { ++ // FIXME: Need to implement ++ repaint(); ++ } ++ ++ /** ++ * The part of implementation of ListDataListener interface. This method is ++ * invoked when contents of the JComboBox's data model changed. ++ * ++ * @param event ListDataEvent describing the change ++ */ ++ public void contentsChanged(ListDataEvent event) ++ { ++ // if first and last index of the given ListDataEvent are both -1, ++ // then it indicates that selected item in the combo box data model ++ // have changed. ++ if (event.getIndex0() == -1 && event.getIndex1() == -1) ++ selectedItemChanged(); ++ } ++ ++ /** ++ * This method disables or enables JComboBox. If the JComboBox is enabled, ++ * then user is able to make item choice, otherwise if JComboBox is ++ * disabled then user is not able to make a selection. ++ * ++ * @param enabled if 'enabled' is true then enable JComboBox and disable it ++ */ ++ public void setEnabled(boolean enabled) ++ { ++ boolean oldEnabled = super.isEnabled(); ++ if (enabled != oldEnabled) ++ { ++ super.setEnabled(enabled); ++ firePropertyChange(ENABLED_CHANGED_PROPERTY, oldEnabled, ++ (boolean) enabled); ++ } ++ } ++ ++ /** ++ * This method initializes specified ComboBoxEditor to display given item. ++ * ++ * @param anEditor ComboBoxEditor to initialize ++ * @param anItem Item that should displayed in the specified editor ++ */ ++ public void configureEditor(ComboBoxEditor anEditor, Object anItem) ++ { ++ anEditor.setItem(anItem); ++ } ++ ++ /** ++ * This method hides combo box's popup whenever TAB key is pressed. ++ * ++ * @param e The KeyEvent indicating which key was pressed. ++ */ ++ public void processKeyEvent(KeyEvent e) ++ { ++ } ++ ++ /** ++ * This method always returns false to indicate that JComboBox itself is ++ * not focus traversable. ++ * ++ * @return false to indicate that JComboBox itself is not focus traversable. ++ * ++ * @deprecated ++ */ ++ public boolean isFocusTraversable() ++ { ++ return false; ++ } ++ ++ /** ++ * setKeySelectionManager ++ * ++ * @param aManager ++ */ ++ public void setKeySelectionManager(KeySelectionManager aManager) ++ { ++ } ++ ++ /** ++ * getKeySelectionManager ++ * ++ * @return JComboBox.KeySelectionManager ++ */ ++ public KeySelectionManager getKeySelectionManager() ++ { ++ return null; ++ } ++ ++ /** ++ * This method returns number of elements in this JComboBox ++ * ++ * @return int number of elements in this JComboBox ++ */ ++ public int getItemCount() ++ { ++ return ((DefaultComboBoxModel) dataModel).getSize(); ++ } ++ ++ /** ++ * Returns elements located in the combo box at the given index. ++ * ++ * @param index index specifying location of the component to return. ++ * ++ * @return component in the combo box that is located in the given index. ++ */ ++ public Object getItemAt(int index) ++ { ++ return ((MutableComboBoxModel) dataModel).getElementAt(index); ++ } ++ ++ /** ++ * createDefaultKeySelectionManager ++ * ++ * @return KeySelectionManager ++ */ ++ protected KeySelectionManager createDefaultKeySelectionManager() ++ { ++ return null; ++ } ++ ++ /** ++ * A string that describes this JComboBox. Normally only used for debugging. ++ * ++ * @return A string describing this JComboBox ++ */ ++ protected String paramString() ++ { ++ return "JComboBox"; ++ } ++ ++ public AccessibleContext getAccessibleContext() ++ { ++ if (accessibleContext == null) ++ accessibleContext = new AccessibleJComboBox(); ++ ++ return accessibleContext; ++ } ++ ++ /** ++ * This methods adds specified ActionListener to this JComboBox. ++ * ++ * @param listener to add ++ */ ++ public void addActionListener(ActionListener listener) ++ { ++ listenerList.add(ActionListener.class, listener); ++ } ++ ++ /** ++ * This method removes specified ActionListener from this JComboBox. ++ * ++ * @param listener ActionListener ++ */ ++ public void removeActionListener(ActionListener listener) ++ { ++ listenerList.remove(ActionListener.class, listener); ++ } ++ ++ /** ++ * This method returns array of ActionListeners that are registered with ++ * this JComboBox. ++ * ++ * @since 1.4 ++ */ ++ public ActionListener[] getActionListeners() ++ { ++ return (ActionListener[]) getListeners(ActionListener.class); ++ } ++ ++ /** ++ * This method registers given ItemListener with this JComboBox ++ * ++ * @param listener to remove ++ */ ++ public void addItemListener(ItemListener listener) ++ { ++ listenerList.add(ItemListener.class, listener); ++ } ++ ++ /** ++ * This method unregisters given ItemListener from this JComboBox ++ * ++ * @param listener to remove ++ */ ++ public void removeItemListener(ItemListener listener) ++ { ++ listenerList.remove(ItemListener.class, listener); ++ } ++ ++ /** ++ * This method returns array of ItemListeners that are registered with this ++ * JComboBox. ++ * ++ * @since 1.4 ++ */ ++ public ItemListener[] getItemListeners() ++ { ++ return (ItemListener[]) getListeners(ItemListener.class); ++ } ++ ++ /** ++ * Adds PopupMenuListener to combo box to listen to the events fired by the ++ * combo box's popup menu containing its list of items ++ * ++ * @param listener to add ++ */ ++ public void addPopupMenuListener(PopupMenuListener listener) ++ { ++ listenerList.add(PopupMenuListener.class, listener); ++ } ++ ++ /** ++ * Removes PopupMenuListener to combo box to listen to the events fired by ++ * the combo box's popup menu containing its list of items ++ * ++ * @param listener to add ++ */ ++ public void removePopupMenuListener(PopupMenuListener listener) ++ { ++ listenerList.remove(PopupMenuListener.class, listener); ++ } ++ ++ /** ++ * Returns array of PopupMenuListeners that are registered with combo box. ++ */ ++ public PopupMenuListener[] getPopupMenuListeners() ++ { ++ return (PopupMenuListener[]) getListeners(PopupMenuListener.class); ++ } ++ ++ /** ++ * AccessibleJComboBox ++ */ ++ protected class AccessibleJComboBox extends AccessibleJComponent ++ implements AccessibleAction, AccessibleSelection ++ { ++ private static final long serialVersionUID = 8217828307256675666L; ++ ++ protected AccessibleJComboBox() ++ { ++ } ++ ++ public int getAccessibleChildrenCount() ++ { ++ return 0; ++ } ++ ++ public Accessible getAccessibleChild(int value0) ++ { ++ return null; ++ } ++ ++ public AccessibleSelection getAccessibleSelection() ++ { ++ return null; ++ } ++ ++ public Accessible getAccessibleSelection(int value0) ++ { ++ return null; ++ } ++ ++ public boolean isAccessibleChildSelected(int value0) ++ { ++ return false; ++ } ++ ++ public AccessibleRole getAccessibleRole() ++ { ++ return AccessibleRole.COMBO_BOX; ++ } ++ ++ public AccessibleAction getAccessibleAction() ++ { ++ return null; ++ } ++ ++ public String getAccessibleActionDescription(int value0) ++ { ++ return null; ++ } ++ ++ public int getAccessibleActionCount() ++ { ++ return 0; ++ } ++ ++ public boolean doAccessibleAction(int value0) ++ { ++ return false; ++ } ++ ++ public int getAccessibleSelectionCount() ++ { ++ return 0; ++ } ++ ++ public void addAccessibleSelection(int value0) ++ { ++ } ++ ++ public void removeAccessibleSelection(int value0) ++ { ++ } ++ ++ public void clearAccessibleSelection() ++ { ++ } ++ ++ public void selectAllAccessibleSelection() ++ { ++ } ++ } ++} +Index: javax/swing/JComponent.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JComponent.java,v +retrieving revision 1.4 +diff -u -r1.4 JComponent.java +--- javax/swing/JComponent.java 19 Jun 2003 16:30:09 -0000 1.4 ++++ javax/swing/JComponent.java 6 Sep 2004 16:35:55 -0000 +@@ -1,5 +1,5 @@ + /* JComponent.java -- Every component in swing inherits from this class. +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,7 +35,6 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing; + + import java.awt.AWTEvent; +@@ -46,9 +45,11 @@ + import java.awt.FlowLayout; + import java.awt.Font; + import java.awt.Graphics; ++import java.awt.Image; + import java.awt.Insets; + import java.awt.Point; + import java.awt.Rectangle; ++import java.awt.event.ActionEvent; + import java.awt.event.ActionListener; + import java.awt.event.ContainerEvent; + import java.awt.event.ContainerListener; +@@ -56,947 +57,2066 @@ + import java.awt.event.FocusListener; + import java.awt.event.KeyEvent; + import java.awt.event.MouseEvent; ++import java.awt.geom.Rectangle2D; ++import java.awt.image.ImageObserver; + import java.awt.peer.LightweightPeer; ++import java.beans.PropertyChangeEvent; + import java.beans.PropertyChangeListener; + import java.beans.PropertyVetoException; + import java.beans.VetoableChangeListener; + import java.io.Serializable; +-import java.util.Vector; ++import java.util.EventListener; + import java.util.Hashtable; ++import java.util.Locale; ++import java.util.Vector; + import javax.accessibility.Accessible; + import javax.accessibility.AccessibleContext; +-import javax.accessibility.AccessibleExtendedComponent; + import javax.accessibility.AccessibleRole; + import javax.accessibility.AccessibleStateSet; ++import javax.swing.border.Border; + import javax.swing.event.AncestorListener; + import javax.swing.event.EventListenerList; +-import javax.swing.border.Border; ++import javax.swing.event.SwingPropertyChangeSupport; + import javax.swing.plaf.ComponentUI; + ++ + /** + * Every component in swing inherits from this class (JLabel, JButton, etc). +- * It contains generic methods to manage events, properties and sizes. +- * Actual drawing of the component is channeled to a look-and-feel class +- * that is implemented elsewhere. ++ * It contains generic methods to manage events, properties and sizes. Actual ++ * drawing of the component is channeled to a look-and-feel class that is ++ * implemented elsewhere. + * +- * @author Ronald Veldema (rveldema@cs.vu.nl) ++ * @author Ronald Veldema (rveldema&064;cs.vu.nl) ++ * @author Graydon Hoare (graydon&064;redhat.com) + */ + public abstract class JComponent extends Container implements Serializable + { +- static final long serialVersionUID = -5242478962609715464L; +- /** +- * accessibleContext +- */ +- protected AccessibleContext accessibleContext; +- +- Dimension pref,min,max; +- Border border; +- JToolTip tooltip; +- String tool_tip_text; +- boolean use_double_buffer, opaque; +- protected ComponentUI ui; +- +- Vector ancestor_list; +- Vector veto_list; +- Vector change_list; +- Hashtable prop_hash; +- +- /** +- * AccessibleJComponent +- */ +- public abstract class AccessibleJComponent +- extends AccessibleAWTContainer { +- +- //------------------------------------------------------------- +- // Classes ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * AccessibleFocusHandler +- */ +- protected class AccessibleFocusHandler implements FocusListener { +- /** +- * Constructor AccessibleFocusHandler +- * @param component TODO +- */ +- protected AccessibleFocusHandler(AccessibleJComponent component) { +- // TODO +- } // AccessibleFocusHandler() +- +- /** +- * focusGained +- * @param event TODO +- */ +- public void focusGained(FocusEvent event) { +- // TODO +- } // focusGained() +- +- /** +- * focusLost +- * @param event TODO +- */ +- public void focusLost(FocusEvent valevent) { +- // TODO +- } // focusLost() +- } // AccessibleFocusHandler +- +- /** +- * AccessibleContainerHandler +- */ +- protected class AccessibleContainerHandler implements ContainerListener { +- /** +- * Constructor AccessibleContainerHandler +- * @param component TODO +- */ +- protected AccessibleContainerHandler(AccessibleJComponent component) { +- // TODO +- } // AccessibleContainerHandler() +- +- /** +- * componentAdded +- * @param event TODO +- */ +- public void componentAdded(ContainerEvent event) { +- // TODO +- } // componentAdded() +- +- /** +- * componentRemoved +- * @param event TODO +- */ +- public void componentRemoved(ContainerEvent valevent) { +- // TODO +- } // componentRemoved() +- } // AccessibleContainerHandler +- +- /** +- * accessibleContainerHandler +- */ +- protected ContainerListener accessibleContainerHandler; +- +- /** +- * accessibleFocusHandler +- */ +- protected FocusListener accessibleFocusHandler; +- +- /** +- * Constructor AccessibleJComponent +- * @param component TODO +- */ +- protected AccessibleJComponent(JComponent component) { +-// super((Container)component); +- // TODO +- } // AccessibleJComponent() +- +- /** +- * addPropertyChangeListener +- * @param listener TODO +- */ +- public void addPropertyChangeListener(PropertyChangeListener listener) { +- // TODO +- } // addPropertyChangeListener() +- +- /** +- * removePropertyChangeListener +- * @param listener TODO +- */ +- public void removePropertyChangeListener(PropertyChangeListener listener) { +- // TODO +- } // removePropertyChangeListener() +- +- /** +- * getAccessibleChildrenCount +- * @returns int +- */ +- public int getAccessibleChildrenCount() { +- return 0; // TODO +- } // getAccessibleChildrenCount() +- +- /** +- * getAccessibleChild +- * @param value0 TODO +- * @returns Accessible +- */ +- public Accessible getAccessibleChild(int value0) { +- return null; // TODO +- } // getAccessibleChild() +- +- /** +- * getAccessibleStateSet +- * @returns AccessibleStateSet +- */ +- public AccessibleStateSet getAccessibleStateSet() { +- return null; // TODO +- } // getAccessibleStateSet() +- +- /** +- * getAccessibleName +- * @returns String +- */ +- public String getAccessibleName() { +- return null; // TODO +- } // getAccessibleName() +- +- /** +- * getAccessibleDescription +- * @returns String +- */ +- public String getAccessibleDescription() { +- return null; // TODO +- } // getAccessibleDescription() +- +- /** +- * getAccessibleRole +- * @returns AccessibleRole +- */ +- public AccessibleRole getAccessibleRole() { +- return null; // TODO +- } // getAccessibleRole() +- +- /** +- * getBorderTitle +- * @param value0 TODO +- * @returns String +- */ +- protected String getBorderTitle(Border value0) { +- return null; // TODO +- } // getBorderTitle() +- +- +- } // AccessibleJComponent +- +- +- public JComponent() +- { +- super(); +- super.setLayout(new FlowLayout()); ++ private static final long serialVersionUID = -7908749299918704233L; ++ ++ /** ++ * Accessibility support is currently missing. ++ */ ++ ++ protected AccessibleContext accessibleContext; ++ ++ public abstract class AccessibleJComponent ++ extends AccessibleAWTContainer ++ { ++ protected class AccessibleFocusHandler ++ implements FocusListener ++ { ++ protected AccessibleFocusHandler(){} ++ public void focusGained(FocusEvent event){} ++ public void focusLost(FocusEvent valevent){} ++ } ++ ++ protected class AccessibleContainerHandler ++ implements ContainerListener ++ { ++ protected AccessibleContainerHandler() {} ++ public void componentAdded(ContainerEvent event) {} ++ public void componentRemoved(ContainerEvent valevent) {} ++ } ++ ++ private static final long serialVersionUID = -7047089700479897799L; ++ ++ protected ContainerListener accessibleContainerHandler; ++ protected FocusListener accessibleFocusHandler; ++ ++ protected AccessibleJComponent() {} ++ public void addPropertyChangeListener(PropertyChangeListener listener) {} ++ public void removePropertyChangeListener(PropertyChangeListener listener) {} ++ public int getAccessibleChildrenCount() { return 0; } ++ public Accessible getAccessibleChild(int value0) { return null; } ++ public AccessibleStateSet getAccessibleStateSet() { return null; } ++ public String getAccessibleName() { return null; } ++ public String getAccessibleDescription() { return null; } ++ public AccessibleRole getAccessibleRole() { return null; } ++ protected String getBorderTitle(Border value0) { return null; } ++ } ++ ++ /** ++ * An explicit value for the component's preferred size; if not set by a ++ * user, this is calculated on the fly by delegating to the {@link ++ * ComponentUI.getPreferredSize} method on the {@link #ui} property. ++ */ ++ Dimension preferredSize; ++ ++ /** ++ * An explicit value for the component's minimum size; if not set by a ++ * user, this is calculated on the fly by delegating to the {@link ++ * ComponentUI.getMinimumSize} method on the {@link #ui} property. ++ */ ++ Dimension minimumSize; ++ ++ /** ++ * An explicit value for the component's maximum size; if not set by a ++ * user, this is calculated on the fly by delegating to the {@link ++ * ComponentUI.getMaximumSize} method on the {@link #ui} property. ++ */ ++ Dimension maximumSize; ++ ++ ++ /** ++ * A value between 0.0 and 1.0 indicating the preferred horizontal ++ * alignment of the component, relative to its siblings. The values ++ * {@link #LEFT_ALIGNMENT}, {@link #CENTER_ALIGNMENT}, and {@link ++ * #RIGHT_ALIGNMENT} can also be used, as synonyms for 0.0, ++ * 0.5, and 1.0, respectively. Not all layout ++ * managers use this property. ++ * ++ * @see #getAlignmentX ++ * @see #setAlignmentX ++ * @see javax.swing.OverlayLayout ++ * @see javax.swing.BoxLayout ++ */ ++ float alignmentX = 0.0f; ++ ++ /** ++ * A value between 0.0 and 1.0 indicating the preferred vertical ++ * alignment of the component, relative to its siblings. The values ++ * {@link #TOP_ALIGNMENT}, {@link #CENTER_ALIGNMENT}, and {@link ++ * #BOTTOM_ALIGNMENT} can also be used, as synonyms for 0.0, ++ * 0.5, and 1.0, respectively. Not all layout ++ * managers use this property. ++ * ++ * @see #getAlignmentY ++ * @see #setAlignmentY ++ * @see javax.swing.OverlayLayout ++ * @see javax.swing.BoxLayout ++ */ ++ float alignmentY = 0.0f; ++ ++ /** ++ * The border painted around this component. ++ * ++ * @see #paintBorder ++ */ ++ Border border; ++ ++ /** ++ * The text to show in the tooltip associated with this component. ++ * ++ * @see #setToolTipText ++ * @see #getToolTipText ++ */ ++ String toolTipText; ++ ++ /** ++ *

    Whether to double buffer this component when painting. This flag ++ * should generally be false, except for top level ++ * components such as {@link JFrame} or {@link JApplet}.

    ++ * ++ *

    All children of a double buffered component are painted into the ++ * double buffer automatically, so only the top widget in a window needs ++ * to be double buffered.

    ++ * ++ * @see #setDoubleBuffered ++ * @see #isDoubleBuffered ++ * @see #paintLock ++ * @see #paint ++ */ ++ boolean doubleBuffered = false; ++ ++ /** ++ * A set of flags indicating which debugging graphics facilities should ++ * be enabled on this component. The values should be a combination of ++ * {@link DebugGraphics.NONE_OPTION}, {@link DebugGraphics.LOG_OPTION}, ++ * {@link DebugGraphics.FLASH_OPTION}, or {@link ++ * DebugGraphics.BUFFERED_OPTION}. ++ * ++ * @see setDebugGraphicsOptions ++ * @see getDebugGraphicsOptions ++ * @see DebugGraphics ++ * @see getComponentGraphics ++ */ ++ int debugGraphicsOptions; ++ ++ /** ++ *

    This property controls two independent behaviors simultaneously.

    ++ * ++ *

    First, it controls whether to fill the background of this widget ++ * when painting its body. This affects calls to {@link ++ * JComponent#paintComponent}, which in turn calls {@link ++ * ComponentUI#update} on the component's {@link #ui} property. If the ++ * component is opaque during this call, the background will be filled ++ * before calling {@link ComponentUI#paint}. This happens merely as a ++ * convenience; you may fill the component's background yourself too, ++ * but there is no need to do so if you will be filling with the same ++ * color.

    ++ * ++ *

    Second, it the opaque property informs swing's repaint system ++ * whether it will be necessary to paint the components "underneath" this ++ * component, in Z-order. If the component is opaque, it is considered to ++ * completely occlude components "underneath" it, so they will not be ++ * repainted along with the opaque component.

    ++ * ++ *

    The default value for this property is false, but most ++ * components will want to set it to true when installing UI ++ * defaults in {@link ComponentUI#installUI}.

    ++ * ++ * @see #setOpaque ++ * @see #isOpaque ++ * @see #paintComponent ++ */ ++ boolean opaque = false; ++ ++ /** ++ * The user interface delegate for this component. Event delivery and ++ * repainting of the component are usually delegated to this object. ++ * ++ * @see #setUI ++ * @see #getUI ++ * @see #updateUI ++ */ ++ protected ComponentUI ui; ++ ++ /** ++ * A hint to the focus system that this component should or should not ++ * get focus. If this is false, swing will not try to ++ * request focus on this component; if true, swing might ++ * try to request focus, but the request might fail. Thus it is only ++ * a hint guiding swing's behavior. ++ * ++ * @see #requestFocus ++ * @see #isRequestFocusEnabled ++ * @see #setRequestFocusEnabled ++ */ ++ boolean requestFocusEnabled; ++ ++ /** ++ * Flag indicating behavior of this component when the mouse is dragged ++ * outside the component and the mouse stops moving. If ++ * true, synthetic mouse events will be delivered on regular ++ * timed intervals, continuing off in the direction the mouse exited the ++ * component, until the mouse is released or re-enters the component. ++ * ++ * @see setAutoscrolls ++ * @see getAutoscrolls ++ */ ++ boolean autoscrolls = false; ++ ++ /** ++ * Listeners for events other than {@link PropertyChangeEvent} are ++ * handled by this listener list. PropertyChangeEvents are handled in ++ * {@link #changeSupport}. ++ */ ++ protected EventListenerList listenerList = new EventListenerList(); ++ ++ /** ++ * Support for {@link PropertyChangeEvent} events. This is constructed ++ * lazily when the component gets its first {@link ++ * PropertyChangeListener} subscription; until then it's an empty slot. ++ */ ++ private SwingPropertyChangeSupport changeSupport; ++ ++ ++ /** ++ * Storage for "client properties", which are key/value pairs associated ++ * with this component by a "client", such as a user application or a ++ * layout manager. This is lazily constructed when the component gets its ++ * first client property. ++ */ ++ private Hashtable clientProperties; ++ ++ private InputMap inputMap_whenFocused; ++ private InputMap inputMap_whenAncestorOfFocused; ++ private InputMap inputMap_whenInFocusedWindow; ++ private ActionMap actionMap; ++ ++ /** ++ * A lock held during recursive painting; this is used to serialize ++ * access to the double buffer, and also to select the "top level" ++ * object which should acquire the double buffer in a given widget ++ * tree (which may have multiple double buffered children). ++ * ++ * @see #doubleBuffered ++ * @see #paint ++ */ ++ private static final Object paintLock = new Object(); ++ ++ ++ /** ++ * The default locale of the component. ++ * ++ * @see #getDefaultLocale ++ * @see #setDefaultLocale ++ */ ++ private static Locale defaultLocale; ++ ++ public static final String TOOL_TIP_TEXT_KEY = "ToolTipText"; ++ ++ /** ++ * Constant used to indicate that no condition has been assigned to a ++ * particular action. ++ * ++ * @see #registerKeyboardAction ++ */ ++ public static final int UNDEFINED_CONDITION = -1; ++ ++ /** ++ * Constant used to indicate that an action should be performed only when ++ * the component has focus. ++ * ++ * @see #registerKeyboardAction ++ */ ++ public static final int WHEN_FOCUSED = 0; ++ ++ /** ++ * Constant used to indicate that an action should be performed only when ++ * the component is an ancestor of the component which has focus. ++ * ++ * @see #registerKeyboardAction ++ */ ++ public static final int WHEN_ANCESTOR_OF_FOCUSED_COMPONENT = 1; ++ ++ /** ++ * Constant used to indicate that an action should be performed only when ++ * the component is in the window which has focus. ++ * ++ * @see #registerKeyboardAction ++ */ ++ public static final int WHEN_IN_FOCUSED_WINDOW = 2; ++ ++ ++ public JComponent() ++ { ++ super(); ++ super.setLayout(new FlowLayout()); ++ defaultLocale = Locale.getDefault(); ++ debugGraphicsOptions = DebugGraphics.NONE_OPTION; ++ } ++ ++ /** ++ * Helper to lazily construct and return the client properties table. ++ * ++ * @return The current client properties table ++ * ++ * @see #clientProperties ++ * @see #getClientProperty ++ * @see #putClientProperty ++ */ ++ private Hashtable getClientProperties() ++ { ++ if (clientProperties == null) ++ clientProperties = new Hashtable(); ++ return clientProperties; ++ } ++ ++ /** ++ * Get a client property associated with this component and a particular ++ * key. ++ * ++ * @param key The key with which to look up the client property ++ * ++ * @return A client property associated with this object and key ++ * ++ * @see #clientProperties ++ * @see #getClientProperties ++ * @see #putClientProperty ++ */ ++ public Object getClientProperty(Object key) ++ { ++ return getClientProperties().get(key); ++ } ++ ++ /** ++ * Add a client property value to this component, associated ++ * with key. If there is an existing client property ++ * associated with key, it will be replaced. ++ * ++ * @param key The key of the client property association to add ++ * @param value The value of the client property association to add ++ * ++ * @see #clientProperties ++ * @see #getClientProperties ++ * @see #getClientProperty ++ */ ++ public void putClientProperty(Object key, Object value) ++ { ++ getClientProperties().put(key, value); ++ } ++ ++ /** ++ * Unregister an AncestorListener. ++ * ++ * @param listener The listener to unregister ++ * ++ * @see addAncestorListener ++ */ ++ public void removeAncestorListener(AncestorListener listener) ++ { ++ listenerList.remove(AncestorListener.class, listener); ++ } ++ ++ /** ++ * Unregister a PropertyChangeListener. ++ * ++ * @param listener The listener to register ++ * ++ * @see #addPropertyChangeListener ++ * @see #changeSupport ++ */ ++ public void removePropertyChangeListener(PropertyChangeListener listener) ++ { ++ if (changeSupport != null) ++ changeSupport.removePropertyChangeListener(listener); ++ } ++ ++ /** ++ * Unregister a PropertyChangeListener. ++ * ++ * @param propertyName The property name to unregister the listener from ++ * @param listener The listener to unregister ++ * ++ * @see #addPropertyChangeListener ++ * @see #changeSupport ++ */ ++ public void removePropertyChangeListener(String propertyName, ++ PropertyChangeListener listener) ++ { ++ if (changeSupport != null) ++ changeSupport.removePropertyChangeListener(propertyName, listener); ++ } ++ ++ /** ++ * Unregister a VetoableChangeChangeListener. ++ * ++ * @param listener The listener to unregister ++ * ++ * @see #addVetoableChangeListener ++ */ ++ public void removeVetoableChangeListener(VetoableChangeListener listener) ++ { ++ listenerList.remove(VetoableChangeListener.class, listener); ++ } ++ ++ /** ++ * Register an AncestorListener. ++ * ++ * @param listener The listener to register ++ * ++ * @see #removeVetoableChangeListener ++ */ ++ public void addAncestorListener(AncestorListener listener) ++ { ++ listenerList.add(AncestorListener.class, listener); ++ } ++ ++ /** ++ * Register a PropertyChangeListener. This listener will ++ * receive any PropertyChangeEvent, regardless of property name. To ++ * listen to a specific property name, use {@link ++ * #addPropertyChangeListener(String,PropertyChangeListener)} instead. ++ * ++ * @param listener The listener to register ++ * ++ * @see #removePropertyChangeListener ++ * @see #changeSupport ++ */ ++ public void addPropertyChangeListener(PropertyChangeListener listener) ++ { ++ if (changeSupport == null) ++ changeSupport = new SwingPropertyChangeSupport(this); ++ changeSupport.addPropertyChangeListener(listener); ++ } ++ ++ /** ++ * Register a PropertyChangeListener for a specific, named ++ * property. To listen to all property changes, regardless of name, use ++ * {@link #addPropertyChangeListener(PropertyChangeListener)} instead. ++ * ++ * @param propertyName The property name to listen to ++ * @param listener The listener to register ++ * ++ * @see #removePropertyChangeListener ++ * @see #changeSupport ++ */ ++ public void addPropertyChangeListener(String propertyName, ++ PropertyChangeListener listener) ++ { ++ listenerList.add(PropertyChangeListener.class, listener); ++ } ++ ++ /** ++ * Register a VetoableChangeListener. ++ * ++ * @param listener The listener to register ++ * ++ * @see #removeVetoableChangeListener ++ * @see #listenerList ++ */ ++ public void addVetoableChangeListener(VetoableChangeListener listener) ++ { ++ listenerList.add(VetoableChangeListener.class, listener); ++ } ++ ++ /** ++ * Return all registered listeners of a particular type. ++ * ++ * @param listenerType The type of listener to return ++ * ++ * @return All listeners in the {@link #listenerList} which ++ * are of the specified type ++ * ++ * @see #listenerList ++ */ ++ public EventListener[] getListeners(Class listenerType) ++ { ++ return listenerList.getListeners(listenerType); ++ } ++ ++ /** ++ * Return all registered AncestorListener objects. ++ * ++ * @return The set of AncestorListener objects in {@link ++ * #listenerList} ++ */ ++ public AncestorListener[] getAncestorListeners() ++ { ++ return (AncestorListener[]) getListeners(AncestorListener.class); ++ } ++ ++ /** ++ * Return all registered VetoableChangeListener objects. ++ * ++ * @return The set of VetoableChangeListener objects in {@link ++ * #listenerList} ++ */ ++ public VetoableChangeListener[] getVetoableChangeListeners() ++ { ++ return (VetoableChangeListener[]) getListeners(VetoableChangeListener.class); ++ } ++ ++ /** ++ * Return all PropertyChangeListener objects registered to listen ++ * for a particular property. ++ * ++ * @param property The property to return the listeners of ++ * ++ * @return The set of PropertyChangeListener objects in ++ * {@link #changeSupport} registered to listen on the specified propert ++ */ ++ public PropertyChangeListener[] getPropertyChangeListeners(String property) ++ { ++ return changeSupport == null ? new PropertyChangeListener[0] ++ : changeSupport.getPropertyChangeListeners(property); ++ } ++ ++ /** ++ * A variant of {@link #firePropertyChange(String,Object,Object)} ++ * for properties with boolean values. ++ */ ++ public void firePropertyChange(String propertyName, boolean oldValue, ++ boolean newValue) ++ { ++ if (changeSupport != null) ++ changeSupport.firePropertyChange(propertyName, new Boolean(oldValue), ++ new Boolean(newValue)); ++ } ++ ++ /** ++ * A variant of {@link #firePropertyChange(String,Object,Object)} ++ * for properties with byte values. ++ */ ++ public void firePropertyChange(String propertyName, byte oldValue, ++ byte newValue) ++ { ++ if (changeSupport != null) ++ changeSupport.firePropertyChange(propertyName, new Byte(oldValue), ++ new Byte(newValue)); ++ } ++ ++ /** ++ * A variant of {@link #firePropertyChange(String,Object,Object)} ++ * for properties with char values. ++ */ ++ public void firePropertyChange(String propertyName, char oldValue, ++ char newValue) ++ { ++ if (changeSupport != null) ++ changeSupport.firePropertyChange(propertyName, new Character(oldValue), ++ new Character(newValue)); ++ } ++ ++ /** ++ * A variant of {@link #firePropertyChange(String,Object,Object)} ++ * for properties with double values. ++ */ ++ public void firePropertyChange(String propertyName, double oldValue, ++ double newValue) ++ { ++ if (changeSupport != null) ++ changeSupport.firePropertyChange(propertyName, new Double(oldValue), ++ new Double(newValue)); ++ } ++ ++ /** ++ * A variant of {@link #firePropertyChange(String,Object,Object)} ++ * for properties with float values. ++ */ ++ public void firePropertyChange(String propertyName, float oldValue, ++ float newValue) ++ { ++ if (changeSupport != null) ++ changeSupport.firePropertyChange(propertyName, new Float(oldValue), ++ new Float(newValue)); ++ } ++ ++ /** ++ * A variant of {@link #firePropertyChange(String,Object,Object)} ++ * for properties with int values. ++ */ ++ public void firePropertyChange(String propertyName, int oldValue, ++ int newValue) ++ { ++ if (changeSupport != null) ++ changeSupport.firePropertyChange(propertyName, new Integer(oldValue), ++ new Integer(newValue)); ++ } ++ ++ /** ++ * A variant of {@link #firePropertyChange(String,Object,Object)} ++ * for properties with long values. ++ */ ++ public void firePropertyChange(String propertyName, long oldValue, ++ long newValue) ++ { ++ if (changeSupport != null) ++ changeSupport.firePropertyChange(propertyName, new Long(oldValue), ++ new Long(newValue)); ++ } ++ ++ /** ++ * Call {@link PropertyChangeListener#propertyChange} on all listeners ++ * registered to listen to a given property. Any method which changes ++ * the specified property of this component should call this method. ++ * ++ * @param propertyName The property which changed ++ * @param oldValue The old value of the property ++ * @param newValue The new value of the property ++ * ++ * @see #changeSupport ++ * @see #addPropertyChangeListener ++ * @see #removePropertyChangeListener ++ */ ++ protected void firePropertyChange(String propertyName, Object oldValue, ++ Object newValue) ++ { ++ if (changeSupport != null) ++ changeSupport.firePropertyChange(propertyName, oldValue, newValue); ++ } ++ ++ /** ++ * A variant of {@link #firePropertyChange(String,Object,Object)} ++ * for properties with short values. ++ */ ++ public void firePropertyChange(String propertyName, short oldValue, ++ short newValue) ++ { ++ if (changeSupport != null) ++ changeSupport.firePropertyChange(propertyName, new Short(oldValue), ++ new Short(newValue)); ++ } ++ ++ /** ++ * Call {@link VetoableChangeListener#vetoableChange} on all listeners ++ * registered to listen to a given property. Any method which changes ++ * the specified property of this component should call this method. ++ * ++ * @param propertyName The property which changed ++ * @param oldValue The old value of the property ++ * @param newValue The new value of the property ++ * ++ * @throws PropertyVetoException if the change was vetoed by a listener ++ * ++ * @see addVetoableChangeListener ++ * @see removeVetoableChangeListener ++ */ ++ protected void fireVetoableChange(String propertyName, Object oldValue, ++ Object newValue) ++ throws PropertyVetoException ++ { ++ VetoableChangeListener[] listeners = getVetoableChangeListeners(); ++ ++ PropertyChangeEvent evt = new PropertyChangeEvent(this, propertyName, oldValue, newValue); ++ ++ for (int i = 0; i < listeners.length; i++) ++ listeners[i].vetoableChange(evt); ++ } ++ ++ /** ++ * Get the value of the accessibleContext property for this component. ++ * ++ * @return the current value of the property ++ */ ++ public AccessibleContext getAccessibleContext() ++ { ++ return null; ++ } ++ ++ ++ /** ++ * Get the value of the {@link #alignmentX} property. ++ * ++ * @return The current value of the property. ++ * ++ * @see #setAlignmentX ++ * @see #alignmentY ++ */ ++ public float getAlignmentX() ++ { ++ return alignmentX; ++ } ++ ++ /** ++ * Get the value of the {@link #alignmentY} property. ++ * ++ * @return The current value of the property. ++ * ++ * @see #setAlignmentY ++ * @see #alignmentX ++ */ ++ public float getAlignmentY() ++ { ++ return alignmentY; ++ } ++ ++ /** ++ * Get the current value of the {@link #autoscrolls} property. ++ * ++ * @return The current value of the property ++ */ ++ public boolean getAutoscrolls() ++ { ++ return autoscrolls; ++ } ++ ++ /** ++ * Set the value of the {@link #border} property, revalidate ++ * and repaint this component. ++ * ++ * @param border The new value of the property ++ * ++ * @see #getBorder ++ */ ++ public void setBorder(Border border) ++ { ++ this.border = border; ++ revalidate(); ++ repaint(); ++ } ++ ++ /** ++ * Get the value of the {@link #border} property. ++ * ++ * @return The property's current value ++ * ++ * @see #setBorder ++ */ ++ public Border getBorder() ++ { ++ return border; ++ } ++ ++ /** ++ * Get the component's current bounding box. If a rectangle is provided, ++ * use this as the return value (adjusting its fields in place); ++ * otherwise (of null is provided) return a new {@link ++ * Rectangle}. ++ * ++ * @param rv Optional return value to use ++ * ++ * @return A rectangle bounding the component ++ */ ++ public Rectangle getBounds(Rectangle rv) ++ { ++ if (rv == null) ++ return new Rectangle(getX(), getY(), getWidth(), getHeight()); ++ else ++ { ++ rv.setBounds(getX(), getY(), getWidth(), getHeight()); ++ return rv; ++ } ++ } ++ ++ /** ++ * Prepares a graphics context for painting this object. If {@link ++ * #debugGraphicsOptions} is not equal to {@link ++ * DebugGraphics#NONE_OPTION}, produce a new {@link DebugGraphics} object ++ * wrapping the parameter. Otherwise configure the parameter with this ++ * component's foreground color and font. ++ * ++ * @param g The graphics context to wrap or configure ++ * ++ * @return A graphics context to paint this object with ++ * ++ * @see #debugGraphicsOptions ++ * @see #paint ++ */ ++ protected Graphics getComponentGraphics(Graphics g) ++ { ++ g.setFont(this.getFont()); ++ g.setColor(this.getForeground()); ++ return g; ++ } ++ ++ ++ /** ++ * Get the value of the {@link #debugGraphicsOptions} property. ++ * ++ * @return The current value of the property. ++ * ++ * @see #setDebugGraphicsOptions ++ * @see #debugGraphicsOptions ++ */ ++ public int getDebugGraphicsOptions() ++ { ++ return 0; ++ } ++ ++ /** ++ * Get the component's insets, which are calculated from ++ * the {@link #border} property. If the border is null, ++ * calls {@link Container#getInsets}. ++ * ++ * @return The component's current insets ++ */ ++ public Insets getInsets() ++ { ++ if (border == null) ++ return super.getInsets(); ++ return getBorder().getBorderInsets(this); ++ } ++ ++ /** ++ * Get the component's insets, which are calculated from the {@link ++ * #border} property. If the border is null, calls {@link ++ * Container#getInsets}. The passed-in {@link Insets} value will be ++ * used as the return value, if possible. ++ * ++ * @param insets Return value object to reuse, if possible ++ * ++ * @return The component's current insets ++ */ ++ public Insets getInsets(Insets insets) ++ { ++ Insets t = getInsets(); ++ ++ if (insets == null) ++ return t; ++ ++ insets.left = t.left; ++ insets.right = t.right; ++ insets.top = t.top; ++ insets.bottom = t.bottom; ++ return insets; ++ } ++ ++ /** ++ * Get the component's location. The passed-in {@link Point} value ++ * will be used as the return value, if possible. ++ * ++ * @param rv Return value object to reuse, if possible ++ * ++ * @return The component's current location ++ */ ++ public Point getLocation(Point rv) ++ { ++ if (rv == null) ++ return new Point(getX(), getY()); ++ ++ rv.setLocation(getX(), getY()); ++ return rv; ++ } ++ ++ /** ++ * Get the component's maximum size. If the {@link #maximumSize} property ++ * has been explicitly set, it is returned. If the {@link #maximumSize} ++ * property has not been set but the {@link ui} property has been, the ++ * result of {@link ComponentUI#getMaximumSize} is returned. If neither ++ * property has been set, the result of {@link Container#getMaximumSize} ++ * is returned. ++ * ++ * @return The maximum size of the component ++ * ++ * @see #maximumSize ++ * @see #setMaximumSize ++ */ ++ public Dimension getMaximumSize() ++ { ++ if (maximumSize != null) ++ return maximumSize; ++ ++ if (ui != null) ++ { ++ Dimension s = ui.getMaximumSize(this); ++ if (s != null) ++ return s; ++ } ++ ++ Dimension p = super.getMaximumSize(); ++ return p; ++ } ++ ++ /** ++ * Get the component's minimum size. If the {@link #minimumSize} property ++ * has been explicitly set, it is returned. If the {@link #minimumSize} ++ * property has not been set but the {@link ui} property has been, the ++ * result of {@link ComponentUI#getMinimumSize} is returned. If neither ++ * property has been set, the result of {@link Container#getMinimumSize} ++ * is returned. ++ * ++ * @return The minimum size of the component ++ * ++ * @see #minimumSize ++ * @see #setMinimumSize ++ */ ++ public Dimension getMinimumSize() ++ { ++ if (minimumSize != null) ++ return minimumSize; ++ ++ if (ui != null) ++ { ++ Dimension s = ui.getMinimumSize(this); ++ if (s != null) ++ return s; ++ } ++ ++ Dimension p = super.getMinimumSize(); ++ return p; ++ } ++ ++ /** ++ * Get the component's preferred size. If the {@link #preferredSize} ++ * property has been explicitly set, it is returned. If the {@link ++ * #preferredSize} property has not been set but the {@link ui} property ++ * has been, the result of {@link ComponentUI#getPreferredSize} is ++ * returned. If neither property has been set, the result of {@link ++ * Container#getPreferredSize} is returned. ++ * ++ * @return The preferred size of the component ++ * ++ * @see #preferredSize ++ * @see #setPreferredSize ++ */ ++ public Dimension getPreferredSize() ++ { ++ if (preferredSize != null) ++ return preferredSize; ++ ++ if (ui != null) ++ { ++ Dimension s = ui.getPreferredSize(this); ++ if (s != null) ++ return s; ++ } ++ Dimension p = super.getPreferredSize(); ++ return p; ++ } ++ ++ /** ++ * Return the value of the {@link #nextFocusableComponent} property. ++ * ++ * @deprecated See {@link java.awt.FocusTraversalPolicy} ++ * ++ * @return The current value of the property, or null ++ * if none has been set. ++ */ ++ public Component getNextFocusableComponent() ++ { ++ return null; ++ } ++ ++ /** ++ * Return the set of {@link KeyStroke} objects which are registered ++ * to initiate actions on this component. ++ * ++ * @return An array of the registered keystrokes ++ */ ++ public KeyStroke[] getRegisteredKeyStrokes() ++ { ++ return null; ++ } ++ ++ /** ++ * Returns the first ancestor of this component which is a {@link JRootPane}. ++ * Equivalent to calling SwingUtilities.getRootPane(this);. ++ * ++ * @return An ancestral JRootPane, or null if none exists. ++ */ ++ public JRootPane getRootPane() ++ { ++ JRootPane p = SwingUtilities.getRootPane(this); ++ return p; ++ } ++ ++ /** ++ * Get the component's size. The passed-in {@link Dimension} value ++ * will be used as the return value, if possible. ++ * ++ * @param rv Return value object to reuse, if possible ++ * ++ * @return The component's current size ++ */ ++ public Dimension getSize(Dimension rv) ++ { ++ if (rv == null) ++ return new Dimension(getWidth(), getHeight()); ++ else ++ { ++ rv.setSize(getWidth(), getHeight()); ++ return rv; ++ } ++ } ++ ++ /** ++ * Return the {@link #toolTip} property of this component, creating it and ++ * setting it if it is currently null. This method can be ++ * overridden in subclasses which wish to control the exact form of ++ * tooltip created. ++ * ++ * @return The current toolTip ++ */ ++ public JToolTip createToolTip() ++ { ++ JToolTip toolTip = new JToolTip(); ++ toolTip.setComponent(this); ++ toolTip.setTipText(toolTipText); ++ ++ return toolTip; ++ } ++ ++ /** ++ * Return the location at which the {@link #toolTip} property should be ++ * displayed, when triggered by a particular mouse event. ++ * ++ * @param event The event the tooltip is being presented in response to ++ * ++ * @return The point at which to display a tooltip, or null ++ * if swing is to choose a default location. ++ */ ++ public Point getToolTipLocation(MouseEvent event) ++ { ++ return null; ++ } ++ ++ /** ++ * Set the value of the {@link #toolTipText} property. ++ * ++ * @param text The new property value ++ * ++ * @see #getToolTipText ++ */ ++ public void setToolTipText(String text) ++ { ++ if (text == null) ++ { ++ ToolTipManager.sharedInstance().unregisterComponent(this); ++ toolTipText = null; ++ return; ++ } + +- //eventMask |= AWTEvent.COMP_KEY_EVENT_MASK; +- enableEvents( AWTEvent.KEY_EVENT_MASK ); ++ // XXX: The tip text doesn't get updated unless you set it to null ++ // and then to something not-null. This is consistent with the behaviour ++ // of Sun's ToolTipManager. ++ ++ String oldText = toolTipText; ++ toolTipText = text; ++ ++ if (oldText == null) ++ ToolTipManager.sharedInstance().registerComponent(this); ++ } ++ ++ /** ++ * Get the value of the {@link #toolTipText} property. ++ * ++ * @return The current property value ++ * ++ * @see #setToolTipText ++ */ ++ public String getToolTipText() ++ { ++ return toolTipText; ++ } ++ ++ /** ++ * Get the value of the {@link #toolTipText} property, in response to a ++ * particular mouse event. ++ * ++ * @param event The mouse event which triggered the tooltip ++ * ++ * @return The current property value ++ * ++ * @see #setToolTipText ++ */ ++ public String getToolTipText(MouseEvent event) ++ { ++ return getToolTipText(); ++ } ++ ++ /** ++ * Return the top level ancestral container (usually a {@link ++ * java.awt.Window} or {@link java.awt.Applet}) which this component is ++ * contained within, or null if no ancestors exist. ++ * ++ * @return The top level container, if it exists ++ */ ++ public Container getTopLevelAncestor() ++ { ++ Container c = getParent(); ++ for (Container peek = c; peek != null; peek = peek.getParent()) ++ c = peek; ++ return c; ++ } ++ ++ /** ++ * Compute the component's visible rectangle, which is defined ++ * recursively as either the component's bounds, if it has no parent, or ++ * the intersection of the component's bounds with the visible rectangle ++ * of its parent. ++ * ++ * @param rect The return value slot to place the visible rectangle in ++ */ ++ public void computeVisibleRect(Rectangle rect) ++ { ++ Component c = getParent(); ++ if (c != null && c instanceof JComponent) ++ { ++ ((JComponent) c).computeVisibleRect(rect); ++ rect.translate(-getX(), -getY()); ++ Rectangle2D.intersect(rect, ++ new Rectangle(0, 0, getWidth(), getHeight()), ++ rect); ++ } ++ else ++ rect.setRect(0, 0, getWidth(), getHeight()); ++ } ++ ++ /** ++ * Return the component's visible rectangle in a new {@link Rectangle}, ++ * rather than via a return slot. ++ * ++ * @return The component's visible rectangle ++ * ++ * @see #computeVisibleRect(Rectangle) ++ */ ++ public Rectangle getVisibleRect() ++ { ++ Rectangle r = new Rectangle(); ++ computeVisibleRect(r); ++ return r; ++ } ++ ++ /** ++ *

    Requests that this component receive input focus, giving window ++ * focus to the top level ancestor of this component. Only works on ++ * displayable, focusable, visible components.

    ++ * ++ *

    This method should not be called by clients; it is intended for ++ * focus implementations. Use {@link Component#requestFocus} instead.

    ++ * ++ * @see {@link Component#requestFocus} ++ */ ++ public void grabFocus() ++ { ++ } ++ ++ /** ++ * Get the value of the {@link #doubleBuffered} property. ++ * ++ * @return The property's current value ++ */ ++ public boolean isDoubleBuffered() ++ { ++ return doubleBuffered; ++ } ++ ++ /** ++ * Return true if the provided component has no native peer; ++ * in other words, if it is a "lightweight component". ++ * ++ * @param c The component to test for lightweight-ness ++ * ++ * @return Whether or not the component is lightweight ++ */ ++ public static boolean isLightweightComponent(Component c) ++ { ++ return c.getPeer() instanceof LightweightPeer; ++ } ++ ++ /** ++ * Return true if you wish this component to manage its own ++ * focus. In particular: if you want this component to be sent ++ * TAB and SHIFT+TAB key events, and to not ++ * have its children considered as focus transfer targets. If ++ * true, focus traversal around this component changes to ++ * CTRL+TAB and CTRL+SHIFT+TAB. ++ * ++ * @return true if you want this component to manage its own ++ * focus, otherwise (by default) false ++ * ++ * @deprecated Use {@link Component.setFocusTraversalKeys(int,Set)} and ++ * {@link Container.setFocusCycleRoot(boolean)} instead ++ */ ++ public boolean isManagingFocus() ++ { ++ return false; ++ } ++ ++ /** ++ * Return the current value of the {@link opaque} property. ++ * ++ * @return The current property value ++ */ ++ public boolean isOpaque() ++ { ++ return opaque; ++ } ++ ++ /** ++ * Return true if the component can guarantee that none of its ++ * children will overlap in Z-order. This is a hint to the painting system. ++ * The default is to return true, but some components such as ++ * {@link JLayeredPane} should override this to return false. ++ * ++ * @return Whether the component tiles its children ++ */ ++ public boolean isOptimizedDrawingEnabled() ++ { ++ return true; ++ } ++ ++ /** ++ * Return true if this component is currently painting a tile. ++ * ++ * @return Whether the component is painting a tile ++ */ ++ public boolean isPaintingTile() ++ { ++ return false; ++ } ++ ++ /** ++ * Get the value of the {@link #requestFocusEnabled} property. ++ * ++ * @return The current value of the property ++ */ ++ public boolean isRequestFocusEnabled() ++ { ++ return requestFocusEnabled; ++ } ++ ++ /** ++ * Return true if this component is a validation root; this ++ * will cause calls to {@link #invalidate} in this component's children ++ * to be "captured" at this component, and not propagate to its parents. ++ * For most components this should return false, but some ++ * components such as {@link JViewPort} will want to return ++ * true. ++ * ++ * @return Whether this component is a validation root ++ */ ++ public boolean isValidateRoot() ++ { ++ return false; ++ } ++ ++ /** ++ *

    Paint the component. This is a delicate process, and should only be ++ * called from the repaint thread, under control of the {@link ++ * RepaintManager}. Client code should usually call {@link #repaint} to ++ * trigger painting.

    ++ * ++ *

    This method will acquire a double buffer from the {@link ++ * RepaintManager} if the component's {@link #doubleBuffered} property is ++ * true and the paint call is the ++ * first recursive paint call inside swing.

    ++ * ++ *

    The method will also modify the provided {@link Graphics} context ++ * via the {@link #getComponentGraphics} method. If you want to customize ++ * the graphics object used for painting, you should override that method ++ * rather than paint.

    ++ * ++ *

    The body of the paint call involves calling {@link ++ * #paintComponent}, {@link #paintBorder}, and {@link #paintChildren} in ++ * order. If you want to customize painting behavior, you should override ++ * one of these methods rather than paint.

    ++ * ++ *

    For more details on the painting sequence, see this ++ * article.

    ++ * ++ * @param g The graphics context to paint with ++ * ++ * @see #paintImmediately ++ */ ++ public void paint(Graphics g) ++ { ++ Graphics g2 = g; ++ Image doubleBuffer = null; ++ RepaintManager rm = RepaintManager.currentManager(this); ++ ++ if (isDoubleBuffered() ++ && (rm.isDoubleBufferingEnabled()) ++ && (! Thread.holdsLock(paintLock))) ++ { ++ doubleBuffer = rm.getOffscreenBuffer(this, getWidth(), getHeight()); ++ } ++ ++ synchronized (paintLock) ++ { ++ if (doubleBuffer != null) ++ { ++ g2 = doubleBuffer.getGraphics(); ++ g2.setClip(g.getClipBounds()); ++ } ++ ++ g2 = getComponentGraphics(g2); ++ paintComponent(g2); ++ paintBorder(g2); ++ paintChildren(g2); ++ ++ if (doubleBuffer != null) ++ g.drawImage(doubleBuffer, 0, 0, (ImageObserver) null); ++ } ++ } ++ ++ /** ++ * Paint the component's border. This usually means calling {@link ++ * Border#paintBorder} on the {@link #border} property, if it is ++ * non-null. You may override this if you wish to customize ++ * border painting behavior. The border is painted after the component's ++ * body, but before the component's children. ++ * ++ * @param g The graphics context with which to paint the border ++ * ++ * @see #paint ++ * @see #paintChildren ++ * @see #paintComponent ++ */ ++ protected void paintBorder(Graphics g) ++ { ++ if (getBorder() != null) ++ getBorder().paintBorder(this, g, 0, 0, getWidth(), getHeight()); ++ } ++ ++ /** ++ * Paint the component's children. This usually means calling {@link ++ * Container#paint}, which recursively calls {@link #paint} on any of the ++ * component's children, with appropriate changes to coordinate space and ++ * clipping region. You may override this if you wish to customize ++ * children painting behavior. The children are painted after the ++ * component's body and border. ++ * ++ * @param g The graphics context with which to paint the children ++ * ++ * @see #paint ++ * @see #paintBorder ++ * @see #paintComponent ++ */ ++ protected void paintChildren(Graphics g) ++ { ++ super.paint(g); ++ } ++ ++ /** ++ * Paint the component's body. This usually means calling {@link ++ * ComponentUI#update} on the {@link #ui} property of the component, if ++ * it is non-null. You may override this if you wish to ++ * customize the component's body-painting behavior. The component's body ++ * is painted first, before the border and children. ++ * ++ * @param g The graphics context with which to paint the body ++ * ++ * @see #paint ++ * @see #paintBorder ++ * @see #paintChildren ++ */ ++ protected void paintComponent(Graphics g) ++ { ++ if (ui != null) ++ ui.update(g, this); ++ } ++ ++ /** ++ * A variant of {@link #paintImmediately(Rectangle)} which takes ++ * integer parameters. ++ * ++ * @param x The left x coordinate of the dirty region ++ * @param y The top y coordinate of the dirty region ++ * @param w The width of the dirty region ++ * @param h The height of the dirty region ++ */ ++ public void paintImmediately(int x, int y, int w, int h) ++ { ++ paintImmediately(new Rectangle(x, y, w, h)); ++ } ++ ++ /** ++ * Transform the provided dirty rectangle for this component into the ++ * appropriate ancestral {@link JRootPane} and call {@link #paint} on ++ * that root pane. This method is called from the {@link RepaintManager} ++ * and should always be called within the painting thread. ++ * ++ * @param r The dirty rectangle to paint ++ */ ++ public void paintImmediately(Rectangle r) ++ { ++ Component root = SwingUtilities.getRoot(this); ++ if (root == null || ! root.isShowing()) ++ return; ++ Graphics g = root.getGraphics(); ++ if (g == null) ++ return; ++ ++ Rectangle clip = SwingUtilities.convertRectangle(this, r, root); ++ g.setClip(clip); ++ root.paint(g); ++ g.dispose(); ++ } ++ ++ /** ++ * Return a string representation for this component, for use in ++ * debugging. ++ * ++ * @return A string describing this component. ++ */ ++ protected String paramString() ++ { ++ return "JComponent"; ++ } ++ ++ /** ++ * A variant of {@link ++ * #registerKeyboardAction(ActionListener,String,KeyStroke,int)} which ++ * provides null for the command name. ++ */ ++ public void registerKeyboardAction(ActionListener act, ++ KeyStroke stroke, ++ int cond) ++ { ++ registerKeyboardAction(act, null, stroke, cond); ++ } ++ ++ /* ++ * There is some charmingly undocumented behavior sun seems to be using ++ * to simulate the old register/unregister keyboard binding API. It's not ++ * clear to me why this matters, but we shall endeavour to follow suit. ++ * ++ * Two main thing seem to be happening when you do registerKeyboardAction(): ++ * ++ * - no actionMap() entry gets created, just an entry in inputMap() ++ * ++ * - the inputMap() entry is a proxy class which invokes the the ++ * binding's actionListener as a target, and which clobbers the command ++ * name sent in the ActionEvent, providing the binding command name ++ * instead. ++ * ++ * This much you can work out just by asking the input and action maps ++ * what they contain after making bindings, and watching the event which ++ * gets delivered to the recipient. Beyond that, it seems to be a ++ * sun-private solution so I will only immitate it as much as it matters ++ * to external observers. ++ */ ++ ++ private static class ActionListenerProxy ++ extends AbstractAction ++ { ++ ActionListener target; ++ String bindingCommandName; ++ ++ public ActionListenerProxy(ActionListener li, ++ String cmd) ++ { ++ target = li; ++ bindingCommandName = cmd; ++ } ++ ++ public void actionPerformed(ActionEvent e) ++ { ++ ActionEvent derivedEvent = new ActionEvent(e.getSource(), ++ e.getID(), ++ bindingCommandName, ++ e.getModifiers()); ++ target.actionPerformed(derivedEvent); ++ } ++ } ++ ++ ++ /** ++ * An obsolete method to register a keyboard action on this component. ++ * You should use getInputMap and getActionMap ++ * to fetch mapping tables from keystrokes to commands, and commands to ++ * actions, respectively, and modify those mappings directly. ++ * ++ * @param anAction The action to be registered ++ * @param aCommand The command to deliver in the delivered {@link ++ * java.awt.ActionEvent} ++ * @param aKeyStroke The keystroke to register on ++ * @param aCondition One of the values {@link #UNDEFINED_CONDITION}, ++ * {@link #WHEN_ANCESTOR_OF_FOCUSED_COMPONENT}, {@link #WHEN_FOCUSED}, or ++ * {@link #WHEN_IN_FOCUSED_WINDOW}, indicating the condition which must ++ * be met for the action to be fired ++ * ++ * @see #unregisterKeyboardAction ++ * @see #getConditionForKeystroke ++ * @see #resetKeyboardActiond ++ */ ++ public void registerKeyboardAction(ActionListener act, ++ String cmd, ++ KeyStroke stroke, ++ int cond) ++ { ++ getInputMap(cond).put(stroke, new ActionListenerProxy(act, cmd)); ++ } ++ ++ ++ ++ public final void setInputMap(int condition, InputMap map) ++ { ++ enableEvents(AWTEvent.KEY_EVENT_MASK); ++ switch (condition) ++ { ++ case WHEN_FOCUSED: ++ inputMap_whenFocused = map; ++ break; ++ ++ case WHEN_ANCESTOR_OF_FOCUSED_COMPONENT: ++ inputMap_whenAncestorOfFocused = map; ++ break; ++ ++ case WHEN_IN_FOCUSED_WINDOW: ++ inputMap_whenInFocusedWindow = map; ++ break; ++ ++ case UNDEFINED_CONDITION: ++ default: ++ throw new IllegalArgumentException(); ++ } ++ } ++ ++ public final InputMap getInputMap(int condition) ++ { ++ enableEvents(AWTEvent.KEY_EVENT_MASK); ++ switch (condition) ++ { ++ case WHEN_FOCUSED: ++ if (inputMap_whenFocused == null) ++ inputMap_whenFocused = new InputMap(); ++ return inputMap_whenFocused; ++ ++ case WHEN_ANCESTOR_OF_FOCUSED_COMPONENT: ++ if (inputMap_whenAncestorOfFocused == null) ++ inputMap_whenAncestorOfFocused = new InputMap(); ++ return inputMap_whenAncestorOfFocused; ++ ++ case WHEN_IN_FOCUSED_WINDOW: ++ if (inputMap_whenInFocusedWindow == null) ++ inputMap_whenInFocusedWindow = new InputMap(); ++ return inputMap_whenInFocusedWindow; ++ ++ case UNDEFINED_CONDITION: ++ default: ++ return null; ++ } ++ } ++ ++ public final InputMap getInputMap() ++ { ++ return getInputMap(WHEN_FOCUSED); ++ } ++ ++ public final ActionMap getActionMap() ++ { ++ if (actionMap == null) ++ actionMap = new ActionMap(); ++ return actionMap; ++ } ++ ++ public final void setActionMap(ActionMap map) ++ { ++ actionMap = map; ++ } ++ ++ /** ++ * @deprecated As of 1.3 KeyStrokes can be registered with multiple ++ * simultaneous conditions. ++ * ++ * Return the condition that determines whether a registered action ++ * occurs in response to the specified keystroke. ++ * ++ * @param aKeyStroke The keystroke to return the condition of ++ * ++ * @return One of the values {@link #UNDEFINED_CONDITION}, {@link ++ * #WHEN_ANCESTOR_OF_FOCUSED_COMPONENT}, {@link #WHEN_FOCUSED}, or {@link ++ * #WHEN_IN_FOCUSED_WINDOW} ++ * ++ * @see #registerKeyboardAction ++ * @see #unregisterKeyboardAction ++ * @see #resetKeyboardActiond ++ */ ++ public int getConditionForKeyStroke(KeyStroke ks) ++ { ++ if (inputMap_whenFocused != null ++ && inputMap_whenFocused.get(ks) != null) ++ return WHEN_FOCUSED; ++ else if (inputMap_whenAncestorOfFocused != null ++ && inputMap_whenAncestorOfFocused.get(ks) != null) ++ return WHEN_ANCESTOR_OF_FOCUSED_COMPONENT; ++ else if (inputMap_whenInFocusedWindow != null ++ && inputMap_whenInFocusedWindow.get(ks) != null) ++ return WHEN_IN_FOCUSED_WINDOW; ++ else ++ return UNDEFINED_CONDITION; ++ } ++ ++ /** ++ * @deprecated Use {@link #getActionMap()} ++ * ++ * Get the ActionListener (typically an {@link Action} object) which is ++ * associated with a particular keystroke. ++ * ++ * @param aKeyStroke The keystroke to retrieve the action of ++ * ++ * @return The action associated with the specified keystroke ++ */ ++ public ActionListener getActionForKeyStroke(KeyStroke ks) ++ { ++ Object cmd = getInputMap().get(ks); ++ if (cmd != null) ++ { ++ if (cmd instanceof ActionListenerProxy) ++ return (ActionListenerProxy) cmd; ++ else if (cmd instanceof String) ++ return getActionMap().get(cmd); ++ } ++ return null; ++ } ++ ++ /** ++ * A hook for subclasses which want to customize event processing. ++ */ ++ protected void processComponentKeyEvent(KeyEvent e) ++ { ++ } ++ ++ /** ++ * Override the default key dispatch system from Component to hook into ++ * the swing {@link InputMap} / {@link ActionMap} system. ++ * ++ * See this ++ * report for more details, it's somewhat complex. ++ */ ++ protected void processKeyEvent(KeyEvent e) ++ { ++ processComponentKeyEvent(e); ++ ++ // FIXME: this needs to be elaborated significantly, to do all the ++ // focus / ancestor / window searching for the various binding modes. ++ if (! e.isConsumed() && ++ processKeyBinding(KeyStroke.getKeyStrokeForEvent(e), ++ e, WHEN_FOCUSED, e.getID() == KeyEvent.KEY_PRESSED)) ++ e.consume(); ++ } ++ ++ protected boolean processKeyBinding(KeyStroke ks, ++ KeyEvent e, ++ int condition, ++ boolean pressed) ++ { ++ if (isEnabled()) ++ { ++ Action act = null; ++ InputMap map = getInputMap(condition); ++ if (map != null) ++ { ++ Object cmd = map.get(ks); ++ if (cmd != null) ++ { ++ if (cmd instanceof ActionListenerProxy) ++ act = (Action) cmd; ++ else ++ act = (Action) getActionMap().get(cmd); ++ } ++ } ++ if (act != null && act.isEnabled()) ++ return SwingUtilities.notifyAction(act, ks, e, this, e.getModifiers()); ++ } ++ return false; ++ } ++ ++ /** ++ * Remove a keyboard action registry. ++ * ++ * @param stroke The keystroke to unregister ++ * ++ * @see #registerKeyboardAction ++ * @see #getConditionForKeystroke ++ * @see #resetKeyboardActiond ++ */ ++ public void unregisterKeyboardAction(KeyStroke aKeyStroke) ++ { ++ } ++ ++ ++ /** ++ * Reset all keyboard action registries. ++ * ++ * @see #registerKeyboardAction ++ * @see #unregisterKeyboardAction ++ * @see #getConditionForKeystroke ++ */ ++ public void resetKeyboardActions() ++ { ++ if (inputMap_whenFocused != null) ++ inputMap_whenFocused.clear(); ++ if (inputMap_whenAncestorOfFocused != null) ++ inputMap_whenAncestorOfFocused.clear(); ++ if (inputMap_whenInFocusedWindow != null) ++ inputMap_whenInFocusedWindow.clear(); ++ if (actionMap != null) ++ actionMap.clear(); ++ } ++ ++ ++ /** ++ * Mark the described region of this component as dirty in the current ++ * {@link RepaintManager}. This will queue an asynchronous repaint using ++ * the system painting thread in the near future. ++ * ++ * @param tm ignored ++ * @param x coordinate of the region to mark as dirty ++ * @param y coordinate of the region to mark as dirty ++ * @param width dimension of the region to mark as dirty ++ * @param height dimension of the region to mark as dirty ++ */ ++ public void repaint(long tm, int x, int y, int width, int height) ++ { ++ Rectangle dirty = new Rectangle(x, y, width, height); ++ Rectangle vis = getVisibleRect(); ++ dirty = dirty.intersection(vis); ++ RepaintManager.currentManager(this).addDirtyRegion(this, dirty.x, dirty.y, ++ dirty.width, ++ dirty.height); ++ } ++ ++ /** ++ * Mark the described region of this component as dirty in the current ++ * {@link RepaintManager}. This will queue an asynchronous repaint using ++ * the system painting thread in the near future. ++ * ++ * @param r The rectangle to mark as dirty ++ */ ++ public void repaint(Rectangle r) ++ { ++ repaint((long) 0, (int) r.getX(), (int) r.getY(), (int) r.getWidth(), ++ (int) r.getHeight()); ++ } ++ ++ /** ++ * Request focus on the default component of this component's {@link ++ * FocusTraversalPolicy}. ++ * ++ * @return The result of {@link #requestFocus} ++ * ++ * @deprecated Use {@link #requestFocus()} on the default component provided from ++ * the {@link FocusTraversalPolicy} instead. ++ */ ++ public boolean requestDefaultFocus() ++ { ++ return false; ++ } ++ ++ /** ++ * Queue a an invalidation and revalidation of this component, using ++ * {@link RepaintManager#addInvalidComponent}. ++ */ ++ public void revalidate() ++ { ++ invalidate(); ++ RepaintManager.currentManager(this).addInvalidComponent(this); ++ } ++ ++ /** ++ * Calls scrollRectToVisible on the component's parent. ++ * Components which can service this call should override. ++ * ++ * @param r The rectangle to make visible ++ */ ++ public void scrollRectToVisible(Rectangle r) ++ { ++ Component p = getParent(); ++ if (p instanceof JComponent) ++ ((JComponent) p).scrollRectToVisible(r); ++ } ++ ++ /** ++ * Set the value of the {@link #alignmentX} property. ++ * ++ * @param a The new value of the property ++ */ ++ public void setAlignmentX(float a) ++ { ++ alignmentX = a; ++ } ++ ++ /** ++ * Set the value of the {@link #alignmentY} property. ++ * ++ * @param a The new value of the property ++ */ ++ public void setAlignmentY(float a) ++ { ++ alignmentY = a; ++ } ++ ++ /** ++ * Set the value of the {@link #autoscrolls} property. ++ * ++ * @param a The new value of the property ++ */ ++ public void setAutoscrolls(boolean a) ++ { ++ autoscrolls = a; ++ } ++ ++ /** ++ * Set the value of the {@link #debugGraphicsOptions} property. ++ * ++ * @param debugOptions The new value of the property ++ */ ++ public void setDebugGraphicsOptions(int debugOptions) ++ { ++ debugGraphicsOptions = debugOptions; ++ } ++ ++ /** ++ * Set the value of the {@link #doubleBuffered} property. ++ * ++ * @param db The new value of the property ++ */ ++ public void setDoubleBuffered(boolean db) ++ { ++ doubleBuffered = db; ++ } ++ ++ /** ++ * Set the value of the {@link #enabled} property, revalidate ++ * and repaint this component. ++ * ++ * @param e The new value of the property ++ */ ++ public void setEnabled(boolean e) ++ { ++ super.setEnabled(e); ++ revalidate(); ++ repaint(); ++ } ++ ++ /** ++ * Set the value of the {@link #font} property, revalidate ++ * and repaint this component. ++ * ++ * @param f The new value of the property ++ */ ++ public void setFont(Font f) ++ { ++ super.setFont(f); ++ revalidate(); ++ repaint(); ++ } ++ ++ /** ++ * Set the value of the {@link #background} property, revalidate ++ * and repaint this component. ++ * ++ * @param bg The new value of the property ++ */ ++ public void setBackground(Color bg) ++ { ++ super.setBackground(bg); ++ revalidate(); ++ repaint(); ++ } ++ ++ /** ++ * Set the value of the {@link #foreground} property, revalidate ++ * and repaint this component. ++ * ++ * @param fg The new value of the property ++ */ ++ public void setForeground(Color fg) ++ { ++ super.setForeground(fg); ++ revalidate(); ++ repaint(); ++ } ++ ++ /** ++ * Set the value of the {@link #maximumSize} property, revalidate ++ * and repaint this component. ++ * ++ * @param max The new value of the property ++ */ ++ public void setMaximumSize(Dimension max) ++ { ++ maximumSize = max; ++ revalidate(); ++ repaint(); ++ } ++ ++ /** ++ * Set the value of the {@link #minimumSize} property, revalidate ++ * and repaint this component. ++ * ++ * @param min The new value of the property ++ */ ++ public void setMinimumSize(Dimension min) ++ { ++ minimumSize = min; ++ revalidate(); ++ repaint(); ++ } ++ ++ /** ++ * Set the value of the {@link #preferredSize} property, revalidate ++ * and repaint this component. ++ * ++ * @param pref The new value of the property ++ */ ++ public void setPreferredSize(Dimension pref) ++ { ++ preferredSize = pref; ++ } ++ ++ /** ++ * Set the specified component to be the next component in the ++ * focus cycle, overriding the {@link FocusTraversalPolicy} for ++ * this component. ++ * ++ * @param aComponent The component to set as the next focusable ++ * ++ * @deprecated Use FocusTraversalPolicy instead ++ */ ++ public void setNextFocusableComponent(Component aComponent) ++ { ++ } ++ ++ /** ++ * Set the value of the {@link #requestFocusEnabled} property. ++ * ++ * @param e The new value of the property ++ */ ++ public void setRequestFocusEnabled(boolean e) ++ { ++ requestFocusEnabled = e; ++ } ++ ++ /** ++ * Set the value of the {@link #opaque} property, revalidate and repaint ++ * this component. ++ * ++ * @param isOpaque The new value of the property ++ * ++ * @see ComponentUI#update ++ */ ++ public void setOpaque(boolean isOpaque) ++ { ++ opaque = isOpaque; ++ revalidate(); ++ repaint(); ++ } ++ ++ /** ++ * Set the value of the visible property, and revalidate / repaint the ++ * component. ++ * ++ * @param v The new value of the property ++ */ ++ public void setVisible(boolean v) ++ { ++ super.setVisible(v); ++ revalidate(); ++ repaint(); ++ } ++ ++ /** ++ * Call {@link paint}. ++ * ++ * @param g The graphics context to paint into ++ */ ++ public void update(Graphics g) ++ { ++ paint(g); ++ } ++ ++ /** ++ * Get the value of the UIClassID property. This property should be a key ++ * in the {@link UIDefaults} table managed by {@link UIManager}, the ++ * value of which is the name of a class to load for the component's ++ * {@link ui} property. ++ * ++ * @return A "symbolic" name which will map to a class to use for the ++ * component's UI, such as "ComponentUI" ++ * ++ * @see #setUI ++ * @see #updateUI ++ */ ++ public String getUIClassID() ++ { ++ return "ComponentUI"; ++ } ++ ++ /** ++ * Install a new UI delegate as the component's {@link ui} property. In ++ * the process, this will call {@link ComponentUI.uninstallUI} on any ++ * existing value for the {@link ui} property, and {@link ++ * ComponentUI.installUI} on the new UI delegate. ++ * ++ * @param newUI The new UI delegate to install ++ * ++ * @see #updateUI ++ * @see #getUIClassID ++ */ ++ protected void setUI(ComponentUI newUI) ++ { ++ if (ui != null) ++ ui.uninstallUI(this); + +- //updateUI(); // get a proper ui +- } ++ ComponentUI oldUI = ui; ++ ui = newUI; + +- // protected EventListenerList listenerList +- public boolean contains(int x, int y) +- { +- //return dims.contains(x,y); +- return super.contains(x,y); +- } +- +- public void addNotify() +- { +- //Notification to this component that it now has a parent component. +- super.addNotify(); +- } +- +- Hashtable get_prop_hash() +- { +- if (prop_hash == null) +- prop_hash = new Hashtable(); +- return prop_hash; +- } +- public Vector get_veto_list() +- { +- if (veto_list == null) +- veto_list = new Vector(); +- return veto_list; +- } +- public Vector get_change_list() +- { +- if (change_list == null) +- change_list = new Vector(); +- return change_list; +- } +- public Vector get_ancestor_list() +- { +- if (ancestor_list == null) +- ancestor_list = new Vector(); +- return ancestor_list; +- } +- +- public Object getClientProperty(Object key) +- { return get_prop_hash().get(key); } +- +- public void putClientProperty(Object key, Object value) +- { get_prop_hash().put(key, value); } +- +- public void removeAncestorListener(AncestorListener listener) +- { get_ancestor_list().removeElement(listener); } +- +- public void removePropertyChangeListener(PropertyChangeListener listener) +- { get_change_list().removeElement(listener); } +- +- public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) +- { /* FIXME */ get_change_list().removeElement(listener); } +- +- public void removeVetoableChangeListener(VetoableChangeListener listener) +- { get_veto_list().removeElement(listener); } +- +- public void addAncestorListener(AncestorListener listener) +- { get_ancestor_list().addElement(listener); } +- +- public void addPropertyChangeListener(PropertyChangeListener listener) +- { get_change_list().addElement(listener); } +- +- public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) +- { /* FIXME */ get_change_list().addElement(listener); } +- +- public void addVetoableChangeListener(VetoableChangeListener listener) +- { get_veto_list().addElement(listener); } +- +- public void computeVisibleRect(Rectangle rect) +- { +- //Returns the Component's "visible rect rectangle" - the intersection of the visible rectangles for this component and all of its ancestors. +- //super.computeVisibleRect(rect); +- } +- +- public void firePropertyChange(String propertyName, boolean oldValue, boolean newValue) +- { +- //Reports a bound property change. +- } +- public void firePropertyChange(String propertyName, byte oldValue, byte newValue) +- { +- // Reports a bound property change. +- } +- public void firePropertyChange(String propertyName, char oldValue, char newValue) +- { +- //Reports a bound property change. +- } +- +- public void firePropertyChange(String propertyName, double oldValue, double newValue) +- { +- //Reports a bound property change. +- } +- +- public void firePropertyChange(String propertyName, float oldValue, float newValue) +- { +- // Reports a bound property change. +- } +- public void firePropertyChange(String propertyName, int oldValue, int newValue) +- { +- // Reports a bound property change. +- } +- public void firePropertyChange(String propertyName, long oldValue, long newValue) +- { +- //Reports a bound property change. protected +- } +- +- protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) +- { +- // Support for reporting bound property changes. +- } +- public void firePropertyChange(String propertyName, short oldValue, short newValue) +- { +- // Reports a bound property change. +- } +- +- protected void fireVetoableChange(String propertyName, Object oldValue, Object newValue) +- { +- // Support for reporting constrained property changes. +- } +- +- public AccessibleContext getAccessibleContext() +- { +- // Get the AccessibleContext associated with this JComponent +- return null; +- } +- +- public ActionListener getActionForKeyStroke(KeyStroke aKeyStroke) +- { +- //Return the object that will perform the action registered for a given keystroke. +- return null; +- } +- public float getAlignmentX() +- { +- // Overrides Container.getAlignmentX to return the vertical alignment. +- return 0; +- } +- +- public float getAlignmentY() +- { +- // Overrides Container.getAlignmentY to return the horizontal alignment. +- return 0; +- } +- public boolean getAutoscrolls() +- { +- //Returns true if this component automatically scrolls its contents when dragged, (when contained in a component that supports scrolling, like JViewport +- return false; +- } +- +- public void setBorder(Border border) +- { +- //System.out.println("set border called !, new border = " + border); +- this.border = border; +- revalidate(); +- repaint(); +- } +- +- public Border getBorder() +- { return border; } +- +- +- public Rectangle getBounds(Rectangle rv) +- { +- if (rv == null) +- return new Rectangle(getX(),getY(),getWidth(),getHeight()); +- else +- { +- rv.setBounds(getX(),getY(),getWidth(),getHeight()); +- return rv; +- } +- } +- +- protected Graphics getComponentGraphics(Graphics g) +- { return g; } +- +- public int getConditionForKeyStroke(KeyStroke aKeyStroke) +- { +- //Return the condition that determines whether a registered action occurs in response to the specified keystroke. +- return 0; +- } +- public int getDebugGraphicsOptions() +- { +- return 0; +- } +- +- public Graphics getGraphics() +- { return super.getGraphics(); } +- +- +- // static MantaNative void DebugMe(Border b); +- +- public Insets getInsets() +- { +- // System.out.println("watch this border"); +- // DebugMe(border); +- // System.out.println("border = " + border); +- +- if (border == null) +- { +- //System.out.println("compares to null !"); +- return super.getInsets(); +- } +- // System.out.println("compare failed !"); +- return getBorder().getBorderInsets(this); +- } +- +- public Insets getInsets(Insets insets) +- { +- Insets t = getInsets(); +- +- if (insets == null) +- return t; +- +- +- return new Insets(t.top, t.left, t.bottom, t.right); +- } +- public Point getLocation(Point rv) +- { +- //Store the x,y origin of this component into "return value" rv and return rv. +- +- if (rv == null) +- return new Point(getX(), +- getY()); +- +- rv.setLocation(getX(), +- getY()); +- return rv; +- } +- +- public Dimension getMaximumSize() +- { +- if (max != null) +- { +- //System.out.println("HAVE_MAX_SIZE = " + max); +- return max; +- } +- if (ui != null) +- { +- Dimension s = ui.getMaximumSize(this); +- if (s != null) +- { +- //System.out.println(" UI-MAX = " + s + ", UI = " + ui + ", IM="+this); +- return s; +- } +- } +- Dimension p = super.getMaximumSize(); +- //System.out.println(" MAX = " + p + ", COMP="+this); +- return p; +- } +- +- public Dimension getMinimumSize() +- { +- if (min != null) +- { +- //System.out.println("HAVE_MIN_SIZE = " + min); +- return min; +- } +- if (ui != null) +- { +- Dimension s = ui.getMinimumSize(this); +- if (s != null) +- { +- // System.out.println(" UI-MIN = " + s + ", UI = " + ui + ", IM="+this); +- return s; +- } +- } +- Dimension p = super.getMinimumSize(); +- // System.out.println(" MIN = " + p + ", COMP="+this); +- return p; +- } +- +- public Dimension getPreferredSize() +- { +- if (pref != null) +- { +- //System.out.println("HAVE_PREF_SIZE = " + pref); +- return pref; +- } +- +- if (ui != null) +- { +- Dimension s = ui.getPreferredSize(this); +- if (s != null) +- { +- //System.out.println(" UI-PREF = " + s + ", UI = " + ui + ", IM="+this); +- return s; +- } +- } +- Dimension p = super.getPreferredSize(); +- // System.out.println(" PREF = " + p + ", COMP="+this); +- return p; +- } +- +- public Component getNextFocusableComponent() +- { +- // Return the next focusable component or null if the focus manager should choose the next focusable component automatically +- return null; +- } +- +- +- public KeyStroke[] getRegisteredKeyStrokes() +- { +- // Return the KeyStrokes that will initiate registered actions. +- return null; +- } +- +- public JRootPane getRootPane() +- { +- JRootPane p = SwingUtilities.getRootPane(this); +- System.out.println("root = " + p); +- return p; +- } +- +- public Dimension getSize(Dimension rv) +- { +- // System.out.println("JComponent, getsize()"); +- if (rv == null) +- return new Dimension(getWidth(), +- getHeight()); +- else +- { +- rv.setSize(getWidth(), +- getHeight()); +- return rv; +- } +- } +- +- public JToolTip createToolTip() +- { +- if (tooltip == null) +- tooltip = new JToolTip(tool_tip_text); +- return tooltip; +- } +- +- public Point getToolTipLocation(MouseEvent event) +- { return null; } +- +- public void setToolTipText(String text) +- { tool_tip_text = text; } +- +- public String getToolTipText() +- { return tool_tip_text; } +- +- public String getToolTipText(MouseEvent event) +- { return tool_tip_text; } +- +- public Container getTopLevelAncestor() +- { +- // Returns the top-level ancestor of this component (either the containing Window or Applet), or null if this component has not been added to any container. +- System.out.println("JComponent, getTopLevelAncestor()"); +- return null; +- } +- +- public Rectangle getVisibleRect() +- { +- /// Returns the Component's "visible rectangle" - the intersection of this components visible rectangle: +- System.out.println("JComponent, getVisibleRect()"); +- return null; +- } +- +- public void grabFocus() +- { +- // Set the focus on the receiving component. +- } +- +- public boolean hasFocus() +- { +- // Returns true if this Component has the keyboard focus. +- return false; +- } +- +- public boolean isDoubleBuffered() +- { return use_double_buffer; } +- +- public boolean isFocusCycleRoot() +- { +- // Override this method and return true if your component is the root of of a component tree with its own focus cycle. +- return false; +- } +- +- public boolean isFocusTraversable() +- { +- // Identifies whether or not this component can receive the focus. +- return false; +- } +- +- public static boolean isLightweightComponent(Component c) +- { +- return c.getPeer() instanceof LightweightPeer; +- } +- +- public boolean isManagingFocus() +- { +- // Override this method and return true if your JComponent manages focus. +- return false; +- } +- +- public boolean isOpaque() +- { return opaque; } +- +- public boolean isOptimizedDrawingEnabled() +- { +- // Returns true if this component tiles its children, +- return true; +- } +- +- public boolean isPaintingTile() +- { +- // Returns true if the receiving component is currently painting a tile. +- return false; +- } +- +- public boolean isRequestFocusEnabled() +- { +- // Return whether the receiving component can obtain the focus by calling requestFocus +- return false; +- } +- +- public boolean isValidateRoot() +- { +- // If this method returns true, revalidate() calls by descendants of this component will cause the entire tree beginning with this root to be validated. +- return false; +- } +- +- public void paint(Graphics g) +- { +- // System.out.println("SWING_PAINT:" + this); +- +- paintBorder(g); +- paintComponent(g); +- paintChildren(g); +- } +- +- protected void paintBorder(Graphics g) +- { +- // System.out.println("PAINT_BORDER x XXXXXXX x x x x x x x x x x x x:" + getBorder() + ", THIS="+this); +- +- // Paint the component's border. +- if (getBorder() != null) +- { +- //System.out.println("PAINT_BORDER x XXXXXXX x x x x x x x x x x x x:" + getBorder() + ", THIS="+this); +- +- getBorder().paintBorder(this, +- g, +- 0, +- 0, +- getWidth(), +- getHeight()); +- } +- } +- +- protected void paintChildren(Graphics g) +- { +- // Paint this component's children. +- //super.paintChildren(g); +- } +- +- protected void paintComponent(Graphics g) +- { +- // If the UI delegate is non-null, call its paint method. +- if (ui != null) +- { +- ui.paint(g, this); +- } +- } +- +- /** +- * Paint the specified region in this component and all of +- * its descendants that overlap the region, immediately. +- */ +- public void paintImmediately(int x, int y, int w, int h) +- { +- +- //Ronald: this shoudld probably redirect to the PLAF .... +- } +- +- public void paintImmediately(Rectangle r) +- { +- /// Paint the specified region now. +- paintImmediately((int)r.getX(), +- (int)r.getY(), +- (int)r.getWidth(), +- (int)r.getHeight()); +- } +- protected String paramString() +- { +- // Returns a string representation of this JComponent. +- return "JComponent"; +- } +- protected void processComponentKeyEvent(KeyEvent e) +- { +- // Process any key events that the component itself recognizes. +- //System.out.println("COMP_KEY-EVENT: " + e); +- } +- protected void processFocusEvent(FocusEvent e) +- { +- // Processes focus events occurring on this component by dispatching them to any registered FocusListener objects. +- //System.out.println("FOCUS_EVENT: " + e); +- } +- +- protected void processKeyEvent(KeyEvent e) +- { +- // Override processKeyEvent to process events protected +- //System.out.println("KEY-EVENT: " + e); +- } +- +- public void processMouseMotionEvent(MouseEvent e) +- { +- // Processes mouse motion events occurring on this component by dispatching them to any registered MouseMotionListener objects. +- //System.out.println("COMP_MOUSE-EVENT: " + e + ", MEMORY = " + Runtime.getRuntime().freeMemory()); +- } +- +- public void registerKeyboardAction(ActionListener anAction, +- KeyStroke aKeyStroke, +- int aCondition) +- { +- registerKeyboardAction(anAction, +- null, +- aKeyStroke, +- aCondition); +- } +- +- public void registerKeyboardAction(ActionListener anAction, +- String aCommand, +- KeyStroke aKeyStroke, +- int aCondition) +- { +- // Register a new keyboard action. +- } +- +- +- public void removeNotify() +- { +- // Notification to this component that it no longer has a parent component. +- } +- +- public void repaint(long tm, int x, int y, int width, int height) +- { +- // Adds the specified region to the dirty region list if the component is showing. +- //System.out.println("JC: repaint"); +- super.repaint(tm, x,y,width,height); +- } +- +- public void repaint(Rectangle r) +- { +- // Adds the specified region to the dirty region list if the component is showing. +- repaint((long)0, +- (int)r.getX(), +- (int)r.getY(), +- (int)r.getWidth(), +- (int)r.getHeight()); +- } +- +- public boolean requestDefaultFocus() +- { +- // Request the focus for the component that should have the focus by default. +- return false; +- } +- +- public void requestFocus() +- { +- // Set focus on the receiving component if isRequestFocusEnabled returns true +- super.requestFocus(); +- } +- +- public void resetKeyboardActions() +- { +- // Unregister all keyboard actions +- } +- +- public void reshape(int x, int y, int w, int h) +- { +- /// Moves and resizes this component. +- super.reshape(x,y,w,h); +- } +- +- public void revalidate() +- { +- // Support for deferred automatic layout. +- if (getParent() == null) +- invalidate(); +- } +- +- public void scrollRectToVisible(Rectangle aRect) +- { +- // Forwards the scrollRectToVisible() message to the JComponent's parent. +- } +- +- public void setAlignmentX(float alignmentX) +- { +- // Set the the vertical alignment. +- } +- +- public void setAlignmentY(float alignmentY) +- { +- // Set the the horizontal alignment. +- } +- +- public void setAutoscrolls(boolean autoscrolls) +- { +- // If true this component will automatically scroll its contents when dragged, if contained in a component that supports scrolling, such as JViewport +- } +- +- public void setDebugGraphicsOptions(int debugOptions) +- { +- // Enables or disables diagnostic information about every graphics operation performed within the component or one of its children. +- } +- +- public void setDoubleBuffered(boolean aFlag) +- { +- use_double_buffer = aFlag; +- } +- +- public void setEnabled(boolean enabled) +- { +- // Sets whether or not this component is enabled. +- super.setEnabled(enabled); +- repaint(); +- } +- +- public void setFont(Font font) +- { +- super.setFont(font); +- revalidate(); +- repaint(); +- } +- +- public void setBackground(Color bg) +- { +- super.setBackground(bg); +- revalidate(); +- repaint(); +- } +- public void setForeground(Color fg) +- { +- super.setForeground(fg); +- revalidate(); +- repaint(); +- } +- +- public void setMaximumSize(Dimension maximumSize) +- { max = maximumSize; } +- +- public void setMinimumSize(Dimension minimumSize) +- { min = minimumSize; } +- +- public void setPreferredSize(Dimension preferredSize) +- { pref = preferredSize; } +- +- public void setNextFocusableComponent(Component aComponent) +- { +- // Specifies the next component to get the focus after this one, for example, when the tab key is pressed. +- } +- +- public void setOpaque(boolean isOpaque) +- { +- opaque = isOpaque; +- revalidate(); +- repaint(); +- } +- +- +- public void setRequestFocusEnabled(boolean aFlag) +- { +- } +- +- +- public void setVisible(boolean aFlag) +- { +- // Makes the component visible or invisible. +- +- super.setVisible(aFlag); +- if (getParent() != null) +- { +- Rectangle dims = getBounds(); +- getParent().repaint((int)dims.getX(), +- (int)dims.getY(), +- (int)dims.getWidth(), +- (int)dims.getHeight()); +- } +- } +- +- public void unregisterKeyboardAction(KeyStroke aKeyStroke) +- { +- // Unregister a keyboard action. +- } +- +- +- public void update(Graphics g) +- { +- paint(g); +- } +- +- public String getUIClassID() +- { +- /// Return the UIDefaults key used to look up the name of the swing. +- return "JComponent"; +- } +- +- protected void setUI(ComponentUI newUI) +- { +- if (ui != null) +- { +- ui.uninstallUI(this); +- } +- +- // Set the look and feel delegate for this component. +- ui = newUI; +- +- if (ui != null) +- { +- ui.installUI(this); +- } +- +- revalidate(); +- repaint(); +- } +- +- public void updateUI() +- { +- // Resets the UI property to a value from the current look and feel. +- System.out.println("update UI not overwritten in class: " + this); +- } ++ if (ui != null) ++ ui.installUI(this); + ++ firePropertyChange("UI", oldUI, newUI); ++ ++ revalidate(); ++ repaint(); ++ } ++ ++ /** ++ * This method should be overridden in subclasses. In JComponent, the ++ * method does nothing. In subclasses, it should a UI delegate ++ * (corresponding to the symbolic name returned from {@link ++ * getUIClassID}) from the {@link UIManager}, and calls {@link setUI} ++ * with the new delegate. ++ */ ++ public void updateUI() ++ { ++ System.out.println("update UI not overwritten in class: " + this); ++ } ++ ++ public static Locale getDefaultLocale() ++ { ++ return defaultLocale; ++ } ++ ++ public static void setDefaultLocale(Locale l) ++ { ++ defaultLocale = l; ++ } + } +Index: javax/swing/JDesktopPane.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JDesktopPane.java,v +retrieving revision 1.3 +diff -u -r1.3 JDesktopPane.java +--- javax/swing/JDesktopPane.java 9 Jan 2004 10:18:47 -0000 1.3 ++++ javax/swing/JDesktopPane.java 6 Sep 2004 16:35:55 -0000 +@@ -37,6 +37,8 @@ + + package javax.swing; + ++import java.awt.Component; ++import java.beans.PropertyVetoException; + import java.io.IOException; + import java.io.ObjectOutputStream; + import javax.accessibility.Accessible; +@@ -44,244 +46,281 @@ + import javax.accessibility.AccessibleRole; + import javax.swing.plaf.DesktopPaneUI; + ++ + /** +- * JDesktopPane +- * @author Andrew Selkirk +- * @version 1.0 ++ * JDesktopPane is a container (usually for JInternalFrames) that simulates a ++ * desktop. Typically, the user will create JInternalFrames and place thme in ++ * a JDesktopPane. The user can then interact with JInternalFrames like they ++ * usually would with JFrames. The actions (minimize, maximize, close, etc) ++ * are done by using a DesktopManager that is associated with the ++ * JDesktopPane. + */ + public class JDesktopPane extends JLayeredPane implements Accessible + { ++ /** DOCUMENT ME! */ ++ private static final long serialVersionUID = 766333777224038726L; + +- //------------------------------------------------------------- +- // Classes ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * AccessibleJDesktopPane +- */ +- protected class AccessibleJDesktopPane extends AccessibleJComponent { +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor AccessibleJDesktopPane +- * @param component TODO +- */ +- protected AccessibleJDesktopPane(JDesktopPane component) { +- super(component); +- // TODO +- } // AccessibleJDesktopPane() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * getAccessibleRole +- * @returns AccessibleRole +- */ +- public AccessibleRole getAccessibleRole() { +- return AccessibleRole.DESKTOP_PANE; +- } // getAccessibleRole() +- +- +- } // AccessibleJDesktopPane +- +- +- //------------------------------------------------------------- +- // Constants -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * LIVE_DRAG_MODE +- */ +- public static int LIVE_DRAG_MODE = 0; +- +- /** +- * OUTLINE_DRAG_MODE +- */ +- public static int OUTLINE_DRAG_MODE = 1; +- +- /** +- * uiClassID +- */ +- private static final String uiClassID = "DesktopPaneUI"; +- +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * selectedFrame +- */ +- private transient JInternalFrame selectedFrame; +- +- /** +- * desktopManager +- */ +- private transient DesktopManager desktopManager; +- +- +- /** +- * dragMode +- */ +- private int dragMode; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor JDesktopPane +- */ +- public JDesktopPane() { +- // TODO +- } // JDesktopPane() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * writeObject +- * @param stream TODO +- * @exception IOException TODO +- */ +- private void writeObject(ObjectOutputStream stream) throws IOException { +- // TODO +- } // writeObject() +- +- /** +- * getUI +- * @returns DesktopPaneUI +- */ +- public DesktopPaneUI getUI() { +- return (DesktopPaneUI) ui; +- } // getUI() +- +- /** +- * setUI +- * @param ui TODO +- */ +- public void setUI(DesktopPaneUI ui) { +- super.setUI(ui); +- } // setUI() +- +- /** +- * setDragMode +- * @param mode TODO +- */ +- public void setDragMode(int mode) { +- this.dragMode = mode; +- // TODO +- } // setDragMode() +- +- /** +- * getDragMode +- * @returns int +- */ +- public int getDragMode() { +- return dragMode; +- } // getDragMode() +- +- /** +- * getDesktopManager +- * @returns DesktopManager +- */ +- public DesktopManager getDesktopManager() { +- return desktopManager; +- } // getDesktopManager() +- +- /** +- * setDesktopManager +- * @param manager TODO +- */ +- public void setDesktopManager(DesktopManager manager) { +- this.desktopManager = manager; +- // TODO +- } // setDesktopManager() +- +- /** +- * updateUI +- */ +- public void updateUI() { +- setUI((DesktopPaneUI) UIManager.get(this)); +- invalidate(); +- } // updateUI() +- +- /** +- * getUIClassID +- * @returns String +- */ +- public String getUIClassID() { +- return uiClassID; +- } // getUIClassID() +- +- /** +- * getAllFrames +- * @returns JInternalFrame[] +- */ +- public JInternalFrame[] getAllFrames() { +- return null; // TODO +- } // getAllFrames() +- +- /** +- * getSelectedFrame +- * @returns JInternalFrame +- */ +- public JInternalFrame getSelectedFrame() { +- return null; // TODO +- } // getSelectedFrame() +- +- /** +- * setSelectedFrame +- * @param frame TODO +- */ +- public void setSelectedFrame(JInternalFrame frame) { +- // TODO +- } // setSelectedFrame() +- +- /** +- * getAllFramesInLayer +- * @param layer TODO +- * @returns JInternalFrame[] +- */ +- public JInternalFrame[] getAllFramesInLayer(int layer) { +- return null; // TODO +- } // getAllFramesInLayer() +- +- /** +- * isOpaque +- * @returns boolean +- */ +- public boolean isOpaque() { +- return true; +- } // isOpaque() +- +- /** +- * paramString +- * @returns String +- */ +- protected String paramString() { +- return null; // TODO +- } // paramString() +- +- /** +- * getAccessibleContext +- * @returns AccessibleContext +- */ +- public AccessibleContext getAccessibleContext() { +- if (accessibleContext == null) { +- accessibleContext = new AccessibleJDesktopPane(this); +- } // if +- return accessibleContext; +- } // getAccessibleContext() +- +- +-} // JDesktopPane ++ /** ++ * This specifies that when dragged, a JInternalFrame should be completely ++ * visible. ++ */ ++ public static int LIVE_DRAG_MODE = 0; ++ ++ /** ++ * This specifies that when dragged, a JInternalFrame should only be visible ++ * as an outline. ++ */ ++ public static int OUTLINE_DRAG_MODE = 1; ++ ++ /** The selected frame in the JDesktopPane. */ ++ private transient JInternalFrame selectedFrame; ++ ++ /** The JDesktopManager to use for acting on JInternalFrames. */ ++ transient DesktopManager desktopManager; ++ ++ /** The drag mode used by the JDesktopPane. */ ++ private transient int dragMode = LIVE_DRAG_MODE; ++ ++ /** ++ * AccessibleJDesktopPane ++ */ ++ protected class AccessibleJDesktopPane extends AccessibleJComponent ++ { ++ /** DOCUMENT ME! */ ++ private static final long serialVersionUID = 6079388927946077570L; ++ ++ /** ++ * Constructor AccessibleJDesktopPane ++ */ ++ protected AccessibleJDesktopPane() ++ { ++ } ++ ++ /** ++ * getAccessibleRole ++ * ++ * @return AccessibleRole ++ */ ++ public AccessibleRole getAccessibleRole() ++ { ++ return AccessibleRole.DESKTOP_PANE; ++ } ++ } ++ ++ /** ++ * Creates a new JDesktopPane object. ++ */ ++ public JDesktopPane() ++ { ++ setLayout(null); ++ updateUI(); ++ } ++ ++ /** ++ * This method returns the UI used with the JDesktopPane. ++ * ++ * @return The UI used with the JDesktopPane. ++ */ ++ public DesktopPaneUI getUI() ++ { ++ return (DesktopPaneUI) ui; ++ } ++ ++ /** ++ * This method sets the UI used with the JDesktopPane. ++ * ++ * @param ui The UI to use with the JDesktopPane. ++ */ ++ public void setUI(DesktopPaneUI ui) ++ { ++ super.setUI(ui); ++ } ++ ++ /** ++ * This method sets the drag mode to use with the JDesktopPane. ++ * ++ * @param mode The drag mode to use. ++ * ++ * @throws IllegalArgumentException If the drag mode given is not ++ * LIVE_DRAG_MODE or OUTLINE_DRAG_MODE. ++ */ ++ public void setDragMode(int mode) ++ { ++ if ((mode != LIVE_DRAG_MODE) && (mode != OUTLINE_DRAG_MODE)) ++ throw new IllegalArgumentException("Drag mode not valid."); ++ ++ // FIXME: Unsupported mode. ++ if (mode == OUTLINE_DRAG_MODE) ++ throw new IllegalArgumentException("Outline drag modes are unsupported."); ++ ++ dragMode = mode; ++ } ++ ++ /** ++ * This method returns the drag mode used with the JDesktopPane. ++ * ++ * @return The drag mode used with the JDesktopPane. ++ */ ++ public int getDragMode() ++ { ++ return dragMode; ++ } ++ ++ /** ++ * This method returns the DesktopManager used with the JDesktopPane. ++ * ++ * @return The DesktopManager to use with the JDesktopPane. ++ */ ++ public DesktopManager getDesktopManager() ++ { ++ return desktopManager; ++ } ++ ++ /** ++ * This method sets the DesktopManager to use with the JDesktopPane. ++ * ++ * @param manager The DesktopManager to use with the JDesktopPane. ++ */ ++ public void setDesktopManager(DesktopManager manager) ++ { ++ desktopManager = manager; ++ } ++ ++ /** ++ * This method restores the UI used with the JDesktopPane to the default. ++ */ ++ public void updateUI() ++ { ++ setUI((DesktopPaneUI) UIManager.getUI(this)); ++ invalidate(); ++ } ++ ++ /** ++ * This method returns a String identifier that allows the UIManager to know ++ * which class will act as JDesktopPane's UI. ++ * ++ * @return A String identifier for the UI class to use. ++ */ ++ public String getUIClassID() ++ { ++ return "DesktopPaneUI"; ++ } ++ ++ /** ++ * This method returns all JInternalFrames that are in the JDesktopPane. ++ * ++ * @return All JInternalFrames that are in the JDesktopPane. ++ */ ++ public JInternalFrame[] getAllFrames() ++ { ++ return getFramesFromComponents(getComponents()); ++ } ++ ++ /** ++ * This method returns the currently selected frame in the JDesktopPane. ++ * ++ * @return The currently selected frame in the JDesktopPane. ++ */ ++ public JInternalFrame getSelectedFrame() ++ { ++ return selectedFrame; ++ } ++ ++ /** ++ * This method sets the selected frame in the JDesktopPane. ++ * ++ * @param frame The selected frame in the JDesktopPane. ++ */ ++ public void setSelectedFrame(JInternalFrame frame) ++ { ++ if (selectedFrame != null) ++ { ++ try ++ { ++ selectedFrame.setSelected(false); ++ } ++ catch (PropertyVetoException e) ++ { ++ } ++ } ++ selectedFrame = null; ++ ++ try ++ { ++ if (frame != null) ++ frame.setSelected(true); ++ ++ selectedFrame = frame; ++ } ++ catch (PropertyVetoException e) ++ { ++ } ++ } ++ ++ /** ++ * This method returns all the JInternalFrames in the given layer. ++ * ++ * @param layer The layer to grab frames in. ++ * ++ * @return All JInternalFrames in the given layer. ++ */ ++ public JInternalFrame[] getAllFramesInLayer(int layer) ++ { ++ return getFramesFromComponents(getComponentsInLayer(layer)); ++ } ++ ++ /** ++ * This method always returns true to indicate that it is not transparent. ++ * ++ * @return true. ++ */ ++ public boolean isOpaque() ++ { ++ return true; ++ } ++ ++ /** ++ * This method returns a String that describes the JDesktopPane. ++ * ++ * @return A String that describes the JDesktopPane. ++ */ ++ protected String paramString() ++ { ++ return "JDesktopPane"; ++ } ++ ++ /** ++ * This method returns all the JInternalFrames in the given Component array. ++ * ++ * @param components An array to search for JInternalFrames in. ++ * ++ * @return An array of JInternalFrames found in the Component array. ++ */ ++ private static JInternalFrame[] getFramesFromComponents(Component[] components) ++ { ++ int count = 0; ++ ++ for (int i = 0; i < components.length; i++) ++ if (components[i] instanceof JInternalFrame) ++ count++; ++ ++ JInternalFrame[] value = new JInternalFrame[count]; ++ for (int i = 0, j = 0; i < components.length && j != count; i++) ++ if (components[i] instanceof JInternalFrame) ++ value[j++] = (JInternalFrame) components[i]; ++ return value; ++ } ++ ++ /** ++ * getAccessibleContext ++ * ++ * @return AccessibleContext ++ */ ++ public AccessibleContext getAccessibleContext() ++ { ++ if (accessibleContext == null) ++ accessibleContext = new AccessibleJDesktopPane(); ++ ++ return accessibleContext; ++ } ++} +Index: javax/swing/JDialog.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JDialog.java,v +retrieving revision 1.2 +diff -u -r1.2 JDialog.java +--- javax/swing/JDialog.java 11 Jun 2003 13:20:39 -0000 1.2 ++++ javax/swing/JDialog.java 6 Sep 2004 16:35:55 -0000 +@@ -1,5 +1,5 @@ + /* JDialog.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,7 +35,6 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing; + + import java.awt.BorderLayout; +@@ -45,227 +44,519 @@ + import java.awt.Dimension; + import java.awt.Frame; + import java.awt.Graphics; ++import java.awt.GraphicsConfiguration; + import java.awt.LayoutManager; + import java.awt.event.KeyEvent; + import java.awt.event.WindowEvent; ++import java.awt.IllegalComponentStateException; + import javax.accessibility.Accessible; + import javax.accessibility.AccessibleContext; + ++ + /** +- * Unlike JComponent derivatives, JDialog inherits from +- * java.awt.Dialog. But also lets a look-and-feel component to its work. ++ * Unlike JComponent derivatives, JDialog inherits from java.awt.Dialog. But ++ * also lets a look-and-feel component to its work. + * +- * @author Ronald Veldema (rveldema@cs.vu.nl) ++ * @author Ronald Veldema (rveldema_AT_cs.vu.nl) + */ +-public class JDialog extends Dialog implements Accessible ++public class JDialog extends Dialog implements Accessible, WindowConstants, ++ RootPaneContainer + { +- public final static int HIDE_ON_CLOSE = 0; +- public final static int DISPOSE_ON_CLOSE = 1; +- public final static int DO_NOTHING_ON_CLOSE = 2; +- +- protected AccessibleContext accessibleContext; +- +- private int close_action = HIDE_ON_CLOSE; +- +- /*************************************************** +- * +- * +- * constructors +- * +- * +- *************/ +- +- JDialog(Frame owner) +- { +- this(owner, "dialog"); +- } +- +- JDialog(Frame owner, +- String s) +- { +- this(owner, s, true); +- } +- +- JDialog(Frame owner, +- String s, +- boolean modeld) +- { +- super(owner, s, modeld); +- } +- +- JDialog(Frame owner, +- // String s, +- boolean modeld) +- { +- super(owner, "JDialog", modeld); +- } +- JDialog(Dialog owner) +- { +- this(owner, "dialog"); +- } +- +- JDialog(Dialog owner, +- String s) +- { +- this(owner, s, true); +- } +- +- JDialog(Dialog owner, +- String s, +- boolean modeld) +- { +- super(owner, s, modeld); +- } +- +- +- /*************************************************** +- * +- * +- * methods, this part is shared with JDialog, JFrame +- * +- * +- *************/ ++ private static final long serialVersionUID = -864070866424508218L; + +- +- private boolean checking; +- protected JRootPane rootPane; ++ /** DOCUMENT ME! */ ++ protected AccessibleContext accessibleContext; + +- void setLocationRelativeTo(Component c) +- { +- } ++ /** The single RootPane in the Dialog. */ ++ protected JRootPane rootPane; + ++ /** Whether checking is enabled on the RootPane */ ++ protected boolean rootPaneCheckingEnabled = true; + +- protected void frameInit() +- { +- super.setLayout(new BorderLayout(1, 1)); +- getRootPane(); // will do set/create +- } ++ /** The default action taken when closed. */ ++ private int close_action = HIDE_ON_CLOSE; + ++ /** Whether JDialogs are decorated by the Look and Feel. */ ++ private static boolean decorated = false; ++ ++ /** ++ * Creates a new non-modal JDialog with no title ++ * using a shared Frame as the owner. ++ */ ++ public JDialog() ++ { ++ this(SwingUtilities.getOwnerFrame(), "", false, null); ++ } ++ ++ /** ++ * Creates a new non-modal JDialog with no title ++ * using the given owner. ++ * ++ * @param owner The owner of the JDialog. ++ */ ++ public JDialog(Dialog owner) ++ { ++ this(owner, "", false, null); ++ } ++ ++ /** ++ * Creates a new JDialog with no title using the ++ * given modal setting and owner. ++ * ++ * @param owner The owner of the JDialog. ++ * @param modal Whether the JDialog is modal. ++ */ ++ public JDialog(Dialog owner, boolean modal) ++ { ++ this(owner, "", modal, null); ++ } ++ ++ /** ++ * Creates a new non-modal JDialog using the ++ * given title and owner. ++ * ++ * @param owner The owner of the JDialog. ++ * @param title The title of the JDialog. ++ */ ++ public JDialog(Dialog owner, String title) ++ { ++ this(owner, title, false, null); ++ } ++ ++ /** ++ * Creates a new JDialog using the given modal ++ * settings, title, and owner. ++ * ++ * @param owner The owner of the JDialog. ++ * @param title The title of the JDialog. ++ * @param modal Whether the JDialog is modal. ++ */ ++ public JDialog(Dialog owner, String title, boolean modal) ++ { ++ this(owner, title, modal, null); ++ } ++ ++ /** ++ * Creates a new JDialog using the given modal ++ * settings, title, owner and graphics configuration. ++ * ++ * @param owner The owner of the JDialog. ++ * @param title The title of the JDialog. ++ * @param modal Whether the JDialog is modal. ++ * @param gc The Graphics Configuration to use. ++ */ ++ public JDialog(Dialog owner, String title, boolean modal, ++ GraphicsConfiguration gc) ++ { ++ super(owner, title, modal, gc); ++ dialogInit(); ++ } ++ ++ /** ++ * Creates a new non-modal JDialog with no title ++ * using the given owner. ++ * ++ * @param owner The owner of the JDialog. ++ */ ++ public JDialog(Frame owner) ++ { ++ this(owner, "", false, null); ++ } ++ ++ /** ++ * Creates a new JDialog with no title using the ++ * given modal setting and owner. ++ * ++ * @param owner The owner of the JDialog. ++ * @param modal Whether the JDialog is modal. ++ */ ++ public JDialog(Frame owner, boolean modal) ++ { ++ this(owner, "", modal, null); ++ } ++ ++ /** ++ * Creates a new non-modal JDialog using the ++ * given title and owner. ++ * ++ * @param owner The owner of the JDialog. ++ * @param title The title of the JDialog. ++ */ ++ public JDialog(Frame owner, String title) ++ { ++ this(owner, title, false, null); ++ } ++ ++ /** ++ * Creates a new JDialog using the given modal ++ * settings, title, and owner. ++ * ++ * @param owner The owner of the JDialog. ++ * @param title The title of the JDialog. ++ * @param modal Whether the JDialog is modal. ++ */ ++ public JDialog(Frame owner, String title, boolean modal) ++ { ++ this(owner, title, modal, null); ++ } ++ ++ /** ++ * Creates a new JDialog using the given modal ++ * settings, title, owner and graphics configuration. ++ * ++ * @param owner The owner of the JDialog. ++ * @param title The title of the JDialog. ++ * @param modal Whether the JDialog is modal. ++ * @param gc The Graphics Configuration to use. ++ */ ++ public JDialog(Frame owner, String title, boolean modal, ++ GraphicsConfiguration gc) ++ { ++ super((owner == null) ? SwingUtilities.getOwnerFrame() : owner, ++ title, modal, gc); ++ dialogInit(); ++ } ++ ++ /** ++ * This method is called to initialize the ++ * JDialog. It sets the layout used, the locale, ++ * and creates the RootPane. ++ */ ++ protected void dialogInit() ++ { ++ // FIXME: Do a check on GraphicsEnvironment.isHeadless() ++ setRootPaneCheckingEnabled(false); ++ setLocale(JComponent.getDefaultLocale()); ++ getRootPane(); // will do set/create ++ setRootPaneCheckingEnabled(true); ++ invalidate(); ++ ++ } ++ ++ /** ++ * This method returns whether JDialogs will have their ++ * window decorations provided by the Look and Feel. ++ * ++ * @return Whether the window decorations are Look and Feel provided. ++ */ ++ public static boolean isDefaultLookAndFeelDecorated() ++ { ++ return decorated; ++ } ++ ++ /** ++ * This method sets whether JDialogs will have their ++ * window decorations provided by the Look and Feel. ++ * ++ * @param defaultLookAndFeelDecorated Whether the window ++ * decorations are Look and Feel provided. ++ */ ++ public static void setDefaultLookAndFeelDecorated(boolean defaultLookAndFeelDecorated) ++ { ++ decorated = defaultLookAndFeelDecorated; ++ } ++ ++ /** ++ * This method returns the preferred size of ++ * the JDialog. ++ * ++ * @return The preferred size. ++ */ + public Dimension getPreferredSize() + { + Dimension d = super.getPreferredSize(); + return d; + } + +- JMenuBar getJMenuBar() +- { return getRootPane().getJMenuBar(); } +- +- void setJMenuBar(JMenuBar menubar) +- { getRootPane().setJMenuBar(menubar); } +- ++ /** ++ * This method returns the JMenuBar used ++ * in this JDialog. ++ * ++ * @return The JMenuBar in the JDialog. ++ */ ++ public JMenuBar getJMenuBar() ++ { ++ return getRootPane().getJMenuBar(); ++ } + +- public void setLayout(LayoutManager manager) +- { super.setLayout(manager); } ++ /** ++ * This method sets the JMenuBar used ++ * in this JDialog. ++ * ++ * @param menubar The JMenuBar to use. ++ */ ++ public void setJMenuBar(JMenuBar menubar) ++ { ++ getRootPane().setJMenuBar(menubar); ++ } + +- void setLayeredPane(JLayeredPane layeredPane) +- { getRootPane().setLayeredPane(layeredPane); } +- +- JLayeredPane getLayeredPane() +- { return getRootPane().getLayeredPane(); } +- +- JRootPane getRootPane() +- { +- if (rootPane == null) +- setRootPane(createRootPane()); +- return rootPane; +- } +- +- void setRootPane(JRootPane root) +- { +- if (rootPane != null) +- remove(rootPane); +- +- rootPane = root; +- add(rootPane, BorderLayout.CENTER); +- } ++ /** ++ * This method sets the LayoutManager used in the JDialog. ++ * This method will throw an Error if rootPaneChecking is ++ * enabled. ++ * ++ * @param manager The LayoutManager to use. ++ */ ++ public void setLayout(LayoutManager manager) ++ { ++ if (isRootPaneCheckingEnabled()) ++ throw new Error("rootPaneChecking is enabled - cannot set layout."); ++ super.setLayout(manager); ++ } + +- JRootPane createRootPane() +- { return new JRootPane(); } ++ /** ++ * This method sets the JLayeredPane used in the JDialog. ++ * If the given JLayeredPane is null, then this method ++ * will throw an Error. ++ * ++ * @param layeredPane The JLayeredPane to use. ++ */ ++ public void setLayeredPane(JLayeredPane layeredPane) ++ { ++ if (layeredPane == null) ++ throw new IllegalComponentStateException("layeredPane cannot be null."); ++ getRootPane().setLayeredPane(layeredPane); ++ } + +- Container getContentPane() +- { return getRootPane().getContentPane(); } ++ /** ++ * This method returns the JLayeredPane used with this JDialog. ++ * ++ * @return The JLayeredPane used with this JDialog. ++ */ ++ public JLayeredPane getLayeredPane() ++ { ++ return getRootPane().getLayeredPane(); ++ } + +- void setContentPane(Container contentPane) +- { getRootPane().setContentPane(contentPane); } +- +- Component getGlassPane() +- { return getRootPane().getGlassPane(); } +- +- void setGlassPane(Component glassPane) +- { getRootPane().setGlassPane(glassPane); } ++ /** ++ * This method returns the JRootPane used with this JDialog. ++ * ++ * @return The JRootPane used with this JDialog. ++ */ ++ public JRootPane getRootPane() ++ { ++ if (rootPane == null) ++ setRootPane(createRootPane()); ++ return rootPane; ++ } + +- +- protected void addImpl(Component comp, Object constraints, int index) +- { super.addImpl(comp, constraints, index); } ++ /** ++ * This method sets the JRootPane used with this JDialog. ++ * ++ * @param root The JRootPane to use. ++ */ ++ protected void setRootPane(JRootPane root) ++ { ++ if (rootPane != null) ++ remove(rootPane); + ++ rootPane = root; ++ rootPane.show(); ++ add(rootPane); ++ } + +- public void remove(Component comp) +- { getContentPane().remove(comp); } +- +- protected boolean isRootPaneCheckingEnabled() +- { return checking; } ++ /** ++ * This method creates a new JRootPane. ++ * ++ * @return A new JRootPane. ++ */ ++ protected JRootPane createRootPane() ++ { ++ return new JRootPane(); ++ } + ++ /** ++ * This method returns the ContentPane ++ * in the JRootPane. ++ * ++ * @return The ContentPane in the JRootPane. ++ */ ++ public Container getContentPane() ++ { ++ return getRootPane().getContentPane(); ++ } + +- protected void setRootPaneCheckingEnabled(boolean enabled) +- { checking = enabled; } ++ /** ++ * This method sets the ContentPane to use with this ++ * JDialog. If the ContentPane given is null, this method ++ * will throw an exception. ++ * ++ * @param contentPane The ContentPane to use with the JDialog. ++ */ ++ public void setContentPane(Container contentPane) ++ { ++ if (contentPane == null) ++ throw new IllegalComponentStateException("contentPane cannot be null."); ++ getRootPane().setContentPane(contentPane); ++ } + ++ /** ++ * This method returns the GlassPane for this JDialog. ++ * ++ * @return The GlassPane for this JDialog. ++ */ ++ public Component getGlassPane() ++ { ++ return getRootPane().getGlassPane(); ++ } + +- public void update(Graphics g) +- { paint(g); } ++ /** ++ * This method sets the GlassPane for this JDialog. ++ * ++ * @param glassPane The GlassPane for this JDialog. ++ */ ++ public void setGlassPane(Component glassPane) ++ { ++ getRootPane().setGlassPane(glassPane); ++ } + +- protected void processKeyEvent(KeyEvent e) +- { super.processKeyEvent(e); } ++ /** ++ * This method is called when a component is added to the ++ * the JDialog. Calling this method with rootPaneCheckingEnabled ++ * will cause an Error to be thrown. ++ * ++ * @param comp The component to add. ++ * @param constraints The constraints. ++ * @param index The position of the component. ++ */ ++ protected void addImpl(Component comp, Object constraints, int index) ++ { ++ if (isRootPaneCheckingEnabled()) ++ throw new Error("rootPaneChecking is enabled - adding components disallowed."); ++ super.addImpl(comp, constraints, index); ++ } + +- ///////////////////////////////////////////////////////////////////////////////// +- ++ /** ++ * This method removes a component from the JDialog. ++ * ++ * @param comp The component to remove. ++ */ ++ public void remove(Component comp) ++ { ++ // The path changes if the component == root. ++ if (comp == rootPane) ++ super.remove(rootPane); ++ else ++ getContentPane().remove(comp); ++ } + +- protected void processWindowEvent(WindowEvent e) +- { +- // System.out.println("PROCESS_WIN_EV-1: " + e); +- super.processWindowEvent(e); +- // System.out.println("PROCESS_WIN_EV-2: " + e); +- switch (e.getID()) ++ /** ++ * This method returns whether rootPane checking is enabled. ++ * ++ * @return Whether rootPane checking is enabled. ++ */ ++ protected boolean isRootPaneCheckingEnabled() ++ { ++ return rootPaneCheckingEnabled; ++ } ++ ++ /** ++ * This method sets whether rootPane checking is enabled. ++ * ++ * @param enabled Whether rootPane checking is enabled. ++ */ ++ protected void setRootPaneCheckingEnabled(boolean enabled) ++ { ++ rootPaneCheckingEnabled = enabled; ++ } ++ ++ /** ++ * This method simply calls paint and returns. ++ * ++ * @param g The Graphics object to paint with. ++ */ ++ public void update(Graphics g) ++ { ++ paint(g); ++ } ++ ++ ++ /** ++ * This method handles window events. This allows the JDialog ++ * to honour its default close operation. ++ * ++ * @param e The WindowEvent. ++ */ ++ protected void processWindowEvent(WindowEvent e) ++ { ++ // System.out.println("PROCESS_WIN_EV-1: " + e); ++ super.processWindowEvent(e); ++ // System.out.println("PROCESS_WIN_EV-2: " + e); ++ switch (e.getID()) ++ { ++ case WindowEvent.WINDOW_CLOSING: ++ { ++ switch (getDefaultCloseOperation()) + { +- case WindowEvent.WINDOW_CLOSING: +- { +- switch(close_action) +- { +- case DISPOSE_ON_CLOSE: +- { +- System.out.println("user requested dispose on close"); +- dispose(); +- break; +- } +- case HIDE_ON_CLOSE: +- { +- setVisible(false); +- break; +- } +- case DO_NOTHING_ON_CLOSE: +- break; +- } +- break; +- } +- +- case WindowEvent.WINDOW_CLOSED: +- case WindowEvent.WINDOW_OPENED: +- case WindowEvent.WINDOW_ICONIFIED: +- case WindowEvent.WINDOW_DEICONIFIED: +- case WindowEvent.WINDOW_ACTIVATED: +- case WindowEvent.WINDOW_DEACTIVATED: ++ case DISPOSE_ON_CLOSE: ++ { ++ dispose(); ++ break; ++ } ++ case HIDE_ON_CLOSE: ++ { ++ setVisible(false); + break; ++ } ++ case DO_NOTHING_ON_CLOSE: ++ break; + } +- } +- ++ break; ++ } ++ case WindowEvent.WINDOW_CLOSED: ++ case WindowEvent.WINDOW_OPENED: ++ case WindowEvent.WINDOW_ICONIFIED: ++ case WindowEvent.WINDOW_DEICONIFIED: ++ case WindowEvent.WINDOW_ACTIVATED: ++ case WindowEvent.WINDOW_DEACTIVATED: ++ break; ++ } ++ } ++ ++ /** ++ * This method sets the action to take ++ * when the JDialog is closed. ++ * ++ * @param operation The action to take. ++ */ ++ public void setDefaultCloseOperation(int operation) ++ { ++ if (operation == DO_NOTHING_ON_CLOSE || ++ operation == HIDE_ON_CLOSE || ++ operation == DISPOSE_ON_CLOSE) ++ close_action = operation; ++ else ++ throw new IllegalArgumentException("Default close operation must be one of DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE, or DISPOSE_ON_CLOSE"); ++ } + +- void setDefaultCloseOperation(int operation) +- { close_action = operation; } ++ /** ++ * This method returns the action taken when ++ * the JDialog is closed. ++ * ++ * @return The action to take. ++ */ ++ public int getDefaultCloseOperation() ++ { ++ return close_action; ++ } + +- protected String paramString() +- { return "JDialog"; } ++ /** ++ * This method returns a String describing the JDialog. ++ * ++ * @return A String describing the JDialog. ++ */ ++ protected String paramString() ++ { ++ return "JDialog"; ++ } + +- public AccessibleContext getAccessibleContext() +- { +- return null; +- } ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public AccessibleContext getAccessibleContext() ++ { ++ return null; ++ } + } +Index: javax/swing/JEditorPane.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JEditorPane.java,v +retrieving revision 1.2 +diff -u -r1.2 JEditorPane.java +--- javax/swing/JEditorPane.java 11 Jun 2003 13:20:39 -0000 1.2 ++++ javax/swing/JEditorPane.java 6 Sep 2004 16:35:55 -0000 +@@ -1,5 +1,5 @@ +-/* JEditorPane.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++/* JEditorPane.java -- ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,189 +35,284 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing; + + import java.awt.Dimension; + import java.awt.event.KeyEvent; + import java.io.InputStream; ++import java.io.IOException; + import java.net.URL; ++ + import javax.accessibility.AccessibleContext; +-import javax.swing.text.EditorKit; +-import javax.swing.text.JTextComponent; +-import javax.swing.text.PlainEditorKit; + import javax.swing.event.HyperlinkEvent; + import javax.swing.event.HyperlinkListener; ++import javax.swing.text.DefaultEditorKit; ++import javax.swing.text.EditorKit; ++import javax.swing.text.JTextComponent; ++ + + public class JEditorPane extends JTextComponent + { +- URL page_url; +- EditorKit kit; +- String ctype = "text/plain"; +- boolean focus_root; +- boolean manages_focus; +- +- +- public JEditorPane() +- { +- } +- +- public JEditorPane(String url) +- { +- this(); +- setPage(url); +- } +- +- public JEditorPane(String type, String text) +- { +- ctype = text; +- setText(text); +- } +- +- public JEditorPane(URL url) +- { +- setPage(url); +- } +- +- void addHyperlinkListener(HyperlinkListener listener) +- { } +- +- protected EditorKit createDefaultEditorKit() +- { return new PlainEditorKit(); } +- +- static EditorKit createEditorKitForContentType(String type) +- { return new PlainEditorKit(); } +- +- void fireHyperlinkUpdate(HyperlinkEvent e) ++ private static final long serialVersionUID = 3140472492599046285L; ++ ++ URL page_url; ++ EditorKit kit; ++ String ctype = "text/plain"; ++ boolean focus_root; ++ boolean manages_focus; ++ ++ public JEditorPane() ++ { ++ } ++ ++ public JEditorPane(String url) throws IOException ++ { ++ setPage(url); ++ } ++ ++ public JEditorPane(String type, String text) + { ++ ctype = text; ++ setText(text); ++ } ++ ++ public JEditorPane(URL url) throws IOException ++ { ++ setPage(url); ++ } ++ ++ protected EditorKit createDefaultEditorKit() ++ { ++ return new DefaultEditorKit(); ++ } ++ ++ public static EditorKit createEditorKitForContentType(String type) ++ { ++ return new DefaultEditorKit(); ++ } ++ ++ /** ++ * Sends a given HyperlinkEvent to all registered listeners. ++ * ++ * @param event the event to send ++ */ ++ public void fireHyperlinkUpdate(HyperlinkEvent event) ++ { ++ HyperlinkListener[] listeners = getHyperlinkListeners(); ++ ++ for (int index = 0; index < listeners.length; ++index) ++ listeners[index].hyperlinkUpdate(event); + } + + public AccessibleContext getAccessibleContext() +- { return null; } ++ { ++ return null; ++ } + +- String getContentType() +- { return ctype; } ++ public String getContentType() ++ { ++ return ctype; ++ } + +- EditorKit getEditorKit() +- { return kit; } +- +- static String getEditorKitClassNameForContentType(String type) +- { return "text/plain"; } +- +- EditorKit getEditorKitForContentType(String type) +- { return kit; } +- +- public Dimension getPreferredSize() +- { +- //Returns the preferred size for the JEditorPane. +- return super.getPreferredSize(); +- } ++ public EditorKit getEditorKit() ++ { ++ return kit; ++ } ++ ++ public static String getEditorKitClassNameForContentType(String type) ++ { ++ return "text/plain"; ++ } ++ ++ public EditorKit getEditorKitForContentType(String type) ++ { ++ return kit; ++ } ++ ++ /** ++ * Returns the preferred size for the JEditorPane. ++ */ ++ public Dimension getPreferredSize() ++ { ++ return super.getPreferredSize(); ++ } + + public boolean getScrollableTracksViewportHeight() +- { return false; } ++ { ++ return false; ++ } ++ + public boolean getScrollableTracksViewportWidth() +- { return false; } ++ { ++ return false; ++ } ++ ++ public URL getPage() ++ { ++ return page_url; ++ } + +- URL getPage() +- { return page_url; } ++ protected InputStream getStream(URL page) ++ { ++ try ++ { ++ return page.openStream(); ++ } ++ catch (Exception e) ++ { ++ System.out.println("Hhmmm, failed to open stream: " + e); ++ } ++ return null; ++ } + +- protected InputStream getStream(URL page) +- { +- try { +- return page.openStream(); +- } catch (Exception e) { +- System.out.println("Hhmmm, failed to open stream: " + e); +- } +- return null; +- } +- +- public String getText() +- { return super.getText(); } +- +- public String getUIClassID() +- { return "JEditorPane"; } +- +- public boolean isFocusCycleRoot() +- { return focus_root; } +- +- public boolean isManagingFocus() +- { return manages_focus; } +- +- protected String paramString() +- { return "JEditorPane"; } +- +- protected void processComponentKeyEvent(KeyEvent e) +- { +- //Overridden to handle processing of tab/shift tab. +- } +- ++ public String getText() ++ { ++ return super.getText(); ++ } ++ ++ public String getUIClassID() ++ { ++ return "EditorPaneUI"; ++ } ++ ++ public boolean isFocusCycleRoot() ++ { ++ return focus_root; ++ } ++ ++ public boolean isManagingFocus() ++ { ++ return manages_focus; ++ } ++ ++ protected String paramString() ++ { ++ return "JEditorPane"; ++ } ++ ++ /** ++ * Overridden to handle processing of tab/shift tab. ++ */ ++ protected void processComponentKeyEvent(KeyEvent e) ++ { ++ } ++ ++ /** ++ * Make sure that TAB and Shift-TAB events get consumed, ++ * so that awt doesn't attempt focus traversal. ++ */ + protected void processKeyEvent(KeyEvent e) +- { +- //Make sure that TAB and Shift-TAB events get consumed, so that awt doesn't attempt focus traversal. +- } +- +- void read(InputStream in, Object desc) +- { +- //This method initializes from a stream. +- } +- +- static void registerEditorKitForContentType(String type, String classname) +- { +- //Establishes the default bindings of type to classname. +- } +- +- static void registerEditorKitForContentType(String type, String classname, ClassLoader loader) +- { +- //Establishes the default bindings of type to classname. +- } +- +- void removeHyperlinkListener(HyperlinkListener listener) +- { +- //Removes a hyperlink listener. +- } +- +- void replaceSelection(String content) +- { +- //Replaces the currently selected content with new content represented by the given string. +- } +- +- protected void scrollToReference(String reference) +- { +- //Scrolls the view to the given reference location (that is, the value returned by the UL.getRef method for the URL being displayed). +- } +- +- void setContentType(String type) +- { +- ctype = type; +- invalidate(); +- repaint(); +- } +- +- void setEditorKit(EditorKit kit) +- { +- this.kit = kit; +- invalidate(); +- repaint(); +- } +- +- void setEditorKitForContentType(String type, EditorKit k) +- { +- ctype = type; +- setEditorKit(k); +- } +- +- void setPage(String url) +- { +- // Sets the current URL being displayed. +- } +- +- void setPage(URL page) +- { +- // Sets the current URL being displayed. +- } +- +- public void setText(String t) +- { +- super.setText(t); +- } +-} // class JEditorPane ++ { ++ } ++ ++ /** ++ * This method initializes from a stream. ++ */ ++ public void read(InputStream in, Object desc) ++ { ++ } ++ ++ /** ++ * Establishes the default bindings of type to classname. ++ */ ++ public static void registerEditorKitForContentType(String type, ++ String classname) ++ { ++ } ++ ++ /** ++ * Establishes the default bindings of type to classname. ++ */ ++ public static void registerEditorKitForContentType(String type, ++ String classname, ++ ClassLoader loader) ++ { ++ } ++ ++ /** ++ * Replaces the currently selected content with new content represented ++ * by the given string. ++ */ ++ public void replaceSelection(String content) ++ { ++ } ++ ++ /** ++ * Scrolls the view to the given reference location (that is, the value ++ * returned by the UL.getRef method for the URL being displayed). ++ */ ++ public void scrollToReference(String reference) ++ { ++ } ++ ++ public void setContentType(String type) ++ { ++ ctype = type; ++ invalidate(); ++ repaint(); ++ } ++ ++ public void setEditorKit(EditorKit kit) ++ { ++ this.kit = kit; ++ invalidate(); ++ repaint(); ++ } ++ ++ public void setEditorKitForContentType(String type, EditorKit k) ++ { ++ ctype = type; ++ setEditorKit(k); ++ } ++ ++ /** ++ * Sets the current URL being displayed. ++ */ ++ public void setPage(String url) throws IOException ++ { ++ } ++ ++ /** ++ * Sets the current URL being displayed. ++ */ ++ public void setPage(URL page) throws IOException ++ { ++ } ++ ++ public void setText(String t) ++ { ++ super.setText(t); ++ } ++ ++ /** ++ * Add a HyperlinkListener object to this editor pane. ++ * ++ * @param listener the listener to add ++ */ ++ public void addHyperlinkListener(HyperlinkListener listener) ++ { ++ listenerList.add(HyperlinkListener.class, listener); ++ } ++ ++ /** ++ * Removes a HyperlinkListener object to this editor pane. ++ * ++ * @param listener the listener to remove ++ */ ++ public void removeHyperlinkListener(HyperlinkListener listener) ++ { ++ listenerList.remove(HyperlinkListener.class, listener); ++ } ++ ++ /** ++ * Returns all added HyperlinkListener objects. ++ * ++ * @return array of listeners ++ * ++ * @since 1.4 ++ */ ++ public HyperlinkListener[] getHyperlinkListeners() ++ { ++ return (HyperlinkListener[]) getListeners(HyperlinkListener.class); ++ } ++} +Index: javax/swing/JFileChooser.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JFileChooser.java,v +retrieving revision 1.2 +diff -u -r1.2 JFileChooser.java +--- javax/swing/JFileChooser.java 11 Jun 2003 13:20:39 -0000 1.2 ++++ javax/swing/JFileChooser.java 6 Sep 2004 16:35:55 -0000 +@@ -59,53 +59,32 @@ + */ + public class JFileChooser extends JComponent implements Accessible { + +- //------------------------------------------------------------- +- // Classes ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * AccessibleJFileChooser +- */ +- protected class AccessibleJFileChooser extends AccessibleJComponent { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor AccessibleJFileChooser +- * @param component TODO +- */ +- protected AccessibleJFileChooser(JFileChooser component) { +- super(component); +- // TODO +- } // AccessibleJFileChooser() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * getAccessibleRole +- * @returns AccessibleRole +- */ +- public AccessibleRole getAccessibleRole() { +- return AccessibleRole.FILE_CHOOSER; +- } // getAccessibleRole() ++ private static final long serialVersionUID = 3162921138695327837L; + +- +- } // AccessibleJFileChooser +- +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- ++ /** ++ * AccessibleJFileChooser ++ */ ++ protected class AccessibleJFileChooser extends AccessibleJComponent ++ { ++ private static final long serialVersionUID = 8205148454060169244L; ++ ++ /** ++ * Constructor AccessibleJFileChooser ++ * @param component TODO ++ */ ++ protected AccessibleJFileChooser() ++ { ++ } ++ ++ /** ++ * getAccessibleRole ++ * @return AccessibleRole ++ */ ++ public AccessibleRole getAccessibleRole() ++ { ++ return AccessibleRole.FILE_CHOOSER; ++ } ++ } + + /** + * uiClassID +@@ -906,17 +885,24 @@ + * addActionListener + * @param listener TODO + */ +- public void addActionListener(ActionListener listener) { +- // TODO +- } // addActionListener() ++ public void addActionListener(ActionListener listener) ++ { ++ listenerList.add (ActionListener.class, listener); ++ } + + /** + * removeActionListener + * @param listener TODO + */ +- public void removeActionListener(ActionListener listener) { +- // TODO +- } // removeActionListener() ++ public void removeActionListener(ActionListener listener) ++ { ++ listenerList.remove (ActionListener.class, listener); ++ } ++ ++ public ActionListener[] getActionListeners() ++ { ++ return (ActionListener[]) listenerList.getListeners (ActionListener.class); ++ } + + /** + * fireActionPerformed +@@ -958,16 +944,15 @@ + return null; // TODO + } // paramString() + +- /** +- * getAccessibleContext +- * @returns AccessibleContext +- */ +- public AccessibleContext getAccessibleContext() { +- if (accessibleContext == null) { +- accessibleContext = new AccessibleJFileChooser(this); +- } // if +- return accessibleContext; +- } // getAccessibleContext() +- +- +-} // JFileChooser ++ /** ++ * getAccessibleContext ++ * @returns AccessibleContext ++ */ ++ public AccessibleContext getAccessibleContext() ++ { ++ if (accessibleContext == null) ++ accessibleContext = new AccessibleJFileChooser(); ++ ++ return accessibleContext; ++ } ++} +Index: javax/swing/JFormattedTextField.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JFormattedTextField.java,v +retrieving revision 1.2 +diff -u -r1.2 JFormattedTextField.java +--- javax/swing/JFormattedTextField.java 11 Jun 2003 13:20:39 -0000 1.2 ++++ javax/swing/JFormattedTextField.java 6 Sep 2004 16:35:55 -0000 +@@ -1,5 +1,5 @@ + /* JFormattedTextField.java -- +- Copyright (C) 2003 Free Software Foundation, Inc. ++ Copyright (C) 2003, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -52,14 +52,19 @@ + */ + public class JFormattedTextField extends JTextField + { ++ private static final long serialVersionUID = 5464657870110180632L; ++ + public abstract static class AbstractFormatter implements Serializable + { ++ private static final long serialVersionUID = -5193212041738979680L; ++ + public AbstractFormatter () + { + //Do nothing here. + } + + protected Object clone () ++ throws CloneNotSupportedException + { + throw new InternalError ("not implemented"); + } +@@ -99,14 +104,16 @@ + throw new InternalError ("not implemented"); + } + +- protected void setEditValid () ++ protected void setEditValid (boolean valid) + { + throw new InternalError ("not implemented"); + } + +- public abstract Object stringToValue (String text); ++ public abstract Object stringToValue (String text) ++ throws ParseException; + +- public abstract String valueToString (Object value); ++ public abstract String valueToString (Object value) ++ throws ParseException; + } + + public abstract static class AbstractFormatterFactory +@@ -124,9 +131,11 @@ + public static final int REVERT = 2; + public static final int PERSIST = 3; + ++ private Object value; ++ + public JFormattedTextField () + { +- throw new InternalError ("not implemented"); ++ this((AbstractFormatterFactory) null); + } + + public JFormattedTextField (Format format) +@@ -141,7 +150,7 @@ + + public JFormattedTextField (AbstractFormatterFactory factory) + { +- throw new InternalError ("not implemented"); ++ this(factory, null); + } + + public JFormattedTextField (AbstractFormatterFactory factory, Object value) +@@ -151,10 +160,11 @@ + + public JFormattedTextField (Object value) + { +- throw new InternalError ("not implemented"); ++ this.value = value; + } + + public void commitEdit () ++ throws ParseException + { + throw new InternalError ("not implemented"); + } +@@ -181,12 +191,12 @@ + + public String getUIClassID () + { +- throw new InternalError ("not implemented"); ++ return "FormattedTextFieldUI"; + } + + public Object getValue () + { +- throw new InternalError ("not implemented"); ++ return value; + } + + protected void invalidEdit () +@@ -204,9 +214,15 @@ + throw new InternalError ("not implemented"); + } + +- public void setDocument (Document document) ++ public void setDocument(Document newdoc) + { +- throw new InternalError ("not implemented"); ++ Document document = getDocument(); ++ ++ if (document == newdoc) ++ return; ++ ++ setDocument(newdoc); ++ firePropertyChange("document", document, newdoc); + } + + public void setLostFocusBehavior (int behavior) +@@ -224,8 +240,8 @@ + throw new InternalError ("not implemented"); + } + +- public void setValue (Object value) ++ public void setValue (Object newValue) + { +- throw new InternalError ("not implemented"); ++ value = newValue; + } + } +Index: javax/swing/JFrame.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JFrame.java,v +retrieving revision 1.3 +diff -u -r1.3 JFrame.java +--- javax/swing/JFrame.java 22 Nov 2003 00:03:35 -0000 1.3 ++++ javax/swing/JFrame.java 6 Sep 2004 16:35:55 -0000 +@@ -1,5 +1,5 @@ + /* JFrame.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -38,16 +38,17 @@ + + package javax.swing; + ++import java.awt.AWTEvent; + import java.awt.BorderLayout; + import java.awt.Component; + import java.awt.Container; + import java.awt.Dimension; + import java.awt.Frame; + import java.awt.Graphics; +-import java.awt.GraphicsConfiguration; + import java.awt.LayoutManager; + import java.awt.event.KeyEvent; + import java.awt.event.WindowEvent; ++ + import javax.accessibility.AccessibleContext; + + /** +@@ -56,17 +57,25 @@ + * + * @author Ronald Veldema (rveldema@cs.vu.nl) + */ +-public class JFrame extends Frame ++public class JFrame extends Frame implements WindowConstants, RootPaneContainer + { +- public final static int HIDE_ON_CLOSE = 0; +- public final static int EXIT_ON_CLOSE = 1; +- public final static int DISPOSE_ON_CLOSE = 2; +- public final static int DO_NOTHING_ON_CLOSE = 3; ++ private static final long serialVersionUID = -3362141868504252139L; ++ ++ protected AccessibleContext accessibleContext; ++ ++ private int close_action = HIDE_ON_CLOSE; ++ ++ private static boolean defaultLookAndFeelDecorated = false; + +- protected AccessibleContext accessibleContext; ++ public static void setDefaultLookAndFeelDecorated(boolean d) ++ { ++ defaultLookAndFeelDecorated = d; ++ } + +- private int close_action = EXIT_ON_CLOSE; +- ++ public static boolean isDefaultLookAndFeelDecorated() ++ { ++ return defaultLookAndFeelDecorated; ++ } + + /*************************************************** + * +@@ -105,6 +114,7 @@ + protected void frameInit() + { + super.setLayout(new BorderLayout(1, 1)); ++ enableEvents(AWTEvent.WINDOW_EVENT_MASK); + getRootPane(); // will do set/create + } + +@@ -114,30 +124,30 @@ + return d; + } + +- JMenuBar getJMenuBar() ++ public JMenuBar getJMenuBar() + { return getRootPane().getJMenuBar(); } + +- void setJMenuBar(JMenuBar menubar) ++ public void setJMenuBar(JMenuBar menubar) + { getRootPane().setJMenuBar(menubar); } + + + public void setLayout(LayoutManager manager) + { super.setLayout(manager); } + +- void setLayeredPane(JLayeredPane layeredPane) ++ public void setLayeredPane(JLayeredPane layeredPane) + { getRootPane().setLayeredPane(layeredPane); } + +- JLayeredPane getLayeredPane() ++ public JLayeredPane getLayeredPane() + { return getRootPane().getLayeredPane(); } + +- JRootPane getRootPane() ++ public JRootPane getRootPane() + { + if (rootPane == null) + setRootPane(createRootPane()); + return rootPane; + } + +- void setRootPane(JRootPane root) ++ public void setRootPane(JRootPane root) + { + if (rootPane != null) + remove(rootPane); +@@ -146,19 +156,19 @@ + add(rootPane, BorderLayout.CENTER); + } + +- JRootPane createRootPane() ++ public JRootPane createRootPane() + { return new JRootPane(); } + +- public Container getContentPane() ++ public Container getContentPane() + { return getRootPane().getContentPane(); } + +- void setContentPane(Container contentPane) ++ public void setContentPane(Container contentPane) + { getRootPane().setContentPane(contentPane); } + +- Component getGlassPane() ++ public Component getGlassPane() + { return getRootPane().getGlassPane(); } + +- void setGlassPane(Component glassPane) ++ public void setGlassPane(Component glassPane) + { getRootPane().setGlassPane(glassPane); } + + +@@ -190,7 +200,7 @@ + return accessibleContext; + } + +- int getDefaultCloseOperation() ++ public int getDefaultCloseOperation() + { return close_action; } + + +@@ -201,9 +211,7 @@ + + protected void processWindowEvent(WindowEvent e) + { +- // System.out.println("PROCESS_WIN_EV-1: " + e); + super.processWindowEvent(e); +- // System.out.println("PROCESS_WIN_EV-2: " + e); + switch (e.getID()) + { + case WindowEvent.WINDOW_CLOSING: +@@ -212,13 +220,11 @@ + { + case EXIT_ON_CLOSE: + { +- System.out.println("user requested exit on close"); +- System.exit(1); ++ System.exit(0); + break; + } + case DISPOSE_ON_CLOSE: + { +- System.out.println("user requested dispose on close"); + dispose(); + break; + } +@@ -243,8 +249,30 @@ + } + } + +- +- void setDefaultCloseOperation(int operation) +- { close_action = operation; } ++ /** ++ * Defines what happens when this frame is closed. Can be one off ++ * EXIT_ON_CLOSE, ++ * DISPOSE_ON_CLOSE, ++ * HIDE_ON_CLOSE or ++ * DO_NOTHING_ON_CLOSE. ++ * The default is HIDE_ON_CLOSE. ++ * When EXIT_ON_CLOSE is specified this method calls ++ * SecurityManager.checkExit(0) which might throw a ++ * SecurityException. When the specified operation is ++ * not one of the above a IllegalArgumentException is ++ * thrown. ++ */ ++ public void setDefaultCloseOperation(int operation) ++ { ++ SecurityManager sm = System.getSecurityManager(); ++ if (sm != null && operation == EXIT_ON_CLOSE) ++ sm.checkExit(0); ++ ++ if (operation != EXIT_ON_CLOSE && operation != DISPOSE_ON_CLOSE ++ && operation != HIDE_ON_CLOSE && operation != DO_NOTHING_ON_CLOSE) ++ throw new IllegalArgumentException("operation = " + operation); ++ ++ close_action = operation; ++ } + + } +Index: javax/swing/JInternalFrame.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JInternalFrame.java,v +retrieving revision 1.2 +diff -u -r1.2 JInternalFrame.java +--- javax/swing/JInternalFrame.java 19 Jun 2003 16:30:09 -0000 1.2 ++++ javax/swing/JInternalFrame.java 6 Sep 2004 16:35:56 -0000 +@@ -1,5 +1,5 @@ + /* JInternalFrame.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,27 +35,1673 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing; + ++import java.awt.Color; + import java.awt.Component; + import java.awt.Container; ++import java.awt.Graphics; ++import java.awt.KeyboardFocusManager; ++import java.awt.LayoutManager; ++import java.awt.Rectangle; ++import java.beans.PropertyVetoException; + import javax.accessibility.Accessible; ++import javax.accessibility.AccessibleContext; ++import javax.accessibility.AccessibleRole; ++import javax.accessibility.AccessibleValue; ++import javax.swing.event.InternalFrameEvent; ++import javax.swing.event.InternalFrameListener; ++import javax.swing.plaf.DesktopIconUI; ++import javax.swing.plaf.InternalFrameUI; ++ + +-public class JInternalFrame extends JComponent +-/*implements Accessible, WindowConstants, RootPaneContainer*/ ++/** ++ * This class implements a Swing widget that looks and acts like a native ++ * frame. The frame can be dragged, resized, closed, etc. Typically, ++ * JInternalFrames are placed in JDesktopPanes. The actions that the ++ * JInternalFrame performs (maximizing, minimizing, etc.) are performed by a ++ * DesktopManager. As with regular frames, components are added by calling ++ * frame.getContentPane().add. ++ */ ++public class JInternalFrame extends JComponent implements Accessible, ++ WindowConstants, ++ RootPaneContainer + { ++ /** DOCUMENT ME! */ + private static final long serialVersionUID = -5425177187760785402L; + +- public static final String CONTENT_PANE_PROPERTY = "contentPane"; +- public static final String MENU_BAR_PROPERTY = "JMenuBar"; +- public static final String TITLE_PROPERTY = "title"; +- public static final String LAYERED_PANE_PROPERTY = "layeredPane"; +- public static final String ROOT_PANE_PROPERTY = "rootPane"; +- public static final String GLASS_PANE_PROPERTY = "glassPane"; +- public static final String FRAME_ICON_PROPERTY = "frameIcon"; +- public static final String IS_SELECTED_PROPERTY = "selected"; +- public static final String IS_CLOSED_PROPERTY = "closed"; +- public static final String IS_MAXIMUM_PROPERTY = "maximum"; +- public static final String IS_ICON_PROPERTY = "icon"; ++ /** ++ * DOCUMENT ME! ++ */ ++ protected class AccessibleJInternalFrame extends AccessibleJComponent ++ implements AccessibleValue ++ { ++ /** ++ * Creates a new AccessibleJInternalFrame object. ++ */ ++ protected AccessibleJInternalFrame() ++ { ++ super(); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public String getAccessibleName() ++ { ++ return null; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public AccessibleRole getAccessibleRole() ++ { ++ return null; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public AccessibleValue getAccessibleValue() ++ { ++ return null; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public Number getCurrentAccessibleValue() ++ { ++ return null; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public Number getMaximumAccessibleValue() ++ { ++ return null; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public Number getMinimumAccessibleValue() ++ { ++ return null; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param n DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public boolean setCurrentAccessibleValue(Number n) ++ { ++ return false; ++ } ++ } ++ ++ /** ++ * This class represents the JInternalFrame while it is iconified. ++ */ ++ public static class JDesktopIcon extends JComponent implements Accessible ++ { ++ /** ++ * DOCUMENT ME! ++ */ ++ protected class AccessibleJDesktopIcon extends AccessibleJComponent ++ implements AccessibleValue ++ { ++ /** ++ * Creates a new AccessibleJDesktopIcon object. ++ */ ++ protected AccessibleJDesktopIcon() ++ { ++ super(); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public AccessibleRole getAccessibleRole() ++ { ++ return null; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public AccessibleValue getAccessibleValue() ++ { ++ return null; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public Number getCurrentAccessibleValue() ++ { ++ return null; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public Number getMaximumAccessibleValue() ++ { ++ return null; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public Number getMinimumAccessibleValue() ++ { ++ return null; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param n DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public boolean setCurrentAccessibleValue(Number n) ++ { ++ return false; ++ } ++ } ++ ++ /** The JInternalFrame this DesktopIcon represents. */ ++ JInternalFrame frame; ++ ++ /** ++ * Creates a new JDesktopIcon object for representing the given frame. ++ * ++ * @param f The JInternalFrame to represent. ++ */ ++ public JDesktopIcon(JInternalFrame f) ++ { ++ frame = f; ++ updateUI(); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public AccessibleContext getAccessibleContext() ++ { ++ if (accessibleContext == null) ++ accessibleContext = new AccessibleJDesktopIcon(); ++ return accessibleContext; ++ } ++ ++ /** ++ * This method returns the JDesktopPane this JDesktopIcon is in. ++ * ++ * @return The JDesktopPane this JDesktopIcon is in. ++ */ ++ public JDesktopPane getDesktopPane() ++ { ++ JDesktopPane p = (JDesktopPane) SwingUtilities.getAncestorOfClass(JDesktopPane.class, ++ this); ++ return p; ++ } ++ ++ /** ++ * This method returns the JInternalFrame this JDesktopIcon represents. ++ * ++ * @return The JInternalFrame this JDesktopIcon represents. ++ */ ++ public JInternalFrame getInternalFrame() ++ { ++ return frame; ++ } ++ ++ /** ++ * This method returns the UI that is responsible for the JDesktopIcon. ++ * ++ * @return The UI that is responsible for the JDesktopIcon. ++ */ ++ public DesktopIconUI getUI() ++ { ++ return (DesktopIconUI) ui; ++ } ++ ++ /** ++ * This method returns the String identifier that is used to determine ++ * which class is used for JDesktopIcon's UI. ++ * ++ * @return A String identifier for the UI class. ++ */ ++ public String getUIClassID() ++ { ++ return "DesktopIconUI"; ++ } ++ ++ /** ++ * This method sets the JInternalFrame that this JDesktopIcon represents. ++ * ++ * @param f The JInternalFrame that this JDesktopIcon represents. ++ */ ++ public void setInternalFrame(JInternalFrame f) ++ { ++ frame = f; ++ } ++ ++ /** ++ * This method sets the UI used for this JDesktopIcon. ++ * ++ * @param ui The UI to use. ++ */ ++ public void setUI(DesktopIconUI ui) ++ { ++ super.setUI(ui); ++ } ++ ++ /** ++ * This method restores the UI property to the defaults. ++ */ ++ public void updateUI() ++ { ++ setUI((DesktopIconUI) UIManager.getUI(this)); ++ } ++ } ++ ++ /** ++ * The property fired in a PropertyChangeEvent when the contentPane property ++ * changes. ++ */ ++ public static String CONTENT_PANE_PROPERTY = "contentPane"; ++ ++ /** ++ * The property fired in a PropertyChangeEvent when the frameIcon property ++ * changes. ++ */ ++ public static String FRAME_ICON_PROPERTY = "frameIcon"; ++ ++ /** ++ * The property fired in a PropertyChangeEvent when the glassPane property ++ * changes. ++ */ ++ public static String GLASS_PANE_PROPERTY = "glassPane"; ++ ++ /** ++ * The property fired in a PropertyChangeEvent when the closed property ++ * changes. ++ */ ++ public static String IS_CLOSED_PROPERTY = "closed"; ++ ++ /** ++ * The property fired in a PropertyChangeEvent when the icon property ++ * changes. ++ */ ++ public static String IS_ICON_PROPERTY = "icon"; ++ ++ /** ++ * The property fired in a PropertyChangeEvent when the maximum property ++ * changes. ++ */ ++ public static String IS_MAXIMUM_PROPERTY = "maximum"; ++ ++ /** ++ * The property fired in a PropertyChangeEvent when the selected property ++ * changes. ++ */ ++ public static String IS_SELECTED_PROPERTY = "selected"; ++ ++ /** ++ * The property fired in a PropertyChangeEvent when the layeredPane property ++ * changes. ++ */ ++ public static String LAYERED_PANE_PROPERTY = "layeredPane"; ++ ++ /** ++ * The property fired in a PropertyChangeEvent when the jMenuBar property ++ * changes. ++ */ ++ public static String MENU_BAR_PROPERTY = "jMenuBar"; ++ ++ /** ++ * The property fired in a PropertyChangeEvent when the rootPane property ++ * changes. ++ */ ++ public static String ROOT_PANE_PROPERTY = "rootPane"; ++ ++ /** ++ * The property fired in a PropertyChangeEvent when the title property ++ * changes. ++ */ ++ public static String TITLE_PROPERTY = "title"; ++ ++ /** Whether the JInternalFrame is closable. */ ++ protected boolean closable; ++ ++ /** Whether the JInternalFrame can be iconified. */ ++ protected boolean iconable; ++ ++ /** Whether the JInternalFrame is closed. */ ++ protected boolean isClosed; ++ ++ /** Whether the JInternalFrame has been iconified. */ ++ protected boolean isIcon; ++ ++ /** Whether the JInternalFrame has been maximized. */ ++ protected boolean isMaximum; ++ ++ /** Whether the JInternalFrame is the active frame. */ ++ protected boolean isSelected; ++ ++ /** Whether the JInternalFrame can be maximized. */ ++ protected boolean maximizable; ++ ++ /** Whether the JInternalFrame has rootPaneChecking enabled. */ ++ protected boolean rootPaneCheckingEnabled = true; ++ ++ /** Whether the JInternalFrame is resizable. */ ++ protected boolean resizable; ++ ++ /** ++ * The JDesktopIcon that represents the JInternalFrame while it is ++ * iconified. ++ */ ++ protected JDesktopIcon desktopIcon; ++ ++ /** The icon used in the JMenuBar in the TitlePane. */ ++ protected Icon frameIcon; ++ ++ /** The rootPane of the JInternalFrame. */ ++ protected JRootPane rootPane; ++ ++ /** The title on the TitlePane of the JInternalFrame. */ ++ protected String title; ++ ++ /** The bounds of the JInternalFrame before it was maximized. */ ++ private transient Rectangle storedBounds; ++ ++ /** The Component that receives focus by default. */ ++ private transient Component defaultFocus; ++ ++ /** The default close action taken, */ ++ private transient int defaultCloseOperation = DISPOSE_ON_CLOSE; ++ ++ /** Whether the JInternalFrame has become visible for the very first time. */ ++ private transient boolean isFirstTimeVisible = true; ++ ++ /** ++ * Whether the JInternalFrame is in the transition from being a maximized ++ * frame back to a regular sized frame. ++ */ ++ private transient boolean maxTransition = false; ++ ++ /** DOCUMENT ME! */ ++ private transient boolean wasIcon = false; ++ ++ /** ++ * Creates a new JInternalFrame object that has no title, and is ++ * non-resizable, non-maximizable, non-iconifiable, and non-closable. ++ */ ++ public JInternalFrame() ++ { ++ this(null, false, false, false, false); ++ } ++ ++ /** ++ * Creates a new JInternalFrame object with the given title and is ++ * non-resizable, non-maximizable, non-iconifiable, and non-closable. ++ * ++ * @param title The title displayed in the JInternalFrame. ++ */ ++ public JInternalFrame(String title) ++ { ++ this(title, false, false, false, false); ++ } ++ ++ /** ++ * Creates a new JInternalFrame object with the given title and resizable ++ * properties. The JInternalFrame is non-maximizable, non-iconifiable, and ++ * non-closable. ++ * ++ * @param title The title displayed in the JInternalFrame. ++ * @param resizable Whether the JInternalFrame is resizable. ++ */ ++ public JInternalFrame(String title, boolean resizable) ++ { ++ this(title, resizable, false, false, false); ++ } ++ ++ /** ++ * Creates a new JInternalFrame object with the given title, resizable, and ++ * closable properties. The JInternalFrame is non-maximizable and ++ * non-iconifiable. ++ * ++ * @param title The title displayed in the JInternalFrame. ++ * @param resizable Whether the JInternalFrame is resizable. ++ * @param closable Whether the JInternalFrame is closable. ++ */ ++ public JInternalFrame(String title, boolean resizable, boolean closable) ++ { ++ this(title, resizable, closable, false, false); ++ } ++ ++ /** ++ * Creates a new JInternalFrame object with the given title, resizable, ++ * closable and maximizable properties. The JInternalFrame is ++ * non-iconifiable. ++ * ++ * @param title The title displayed in the JInternalFrame. ++ * @param resizable Whether the JInternalFrame is resizable. ++ * @param closable Whether the JInternalFrame is closable. ++ * @param maximizable Whether the JInternalFrame is maximizable. ++ */ ++ public JInternalFrame(String title, boolean resizable, boolean closable, ++ boolean maximizable) ++ { ++ this(title, resizable, closable, maximizable, false); ++ } ++ ++ /** ++ * Creates a new JInternalFrame object with the given title, resizable, ++ * closable, maximizable and iconifiable properties. ++ * ++ * @param title The title displayed in the JInternalFrame. ++ * @param resizable Whether the JInternalFrame is resizable. ++ * @param closable Whether the JInternalFrame is closable. ++ * @param maximizable Whether the JInternalFrame is maximizable. ++ * @param iconifiable Whether the JInternalFrame is iconifiable. ++ */ ++ public JInternalFrame(String title, boolean resizable, boolean closable, ++ boolean maximizable, boolean iconifiable) ++ { ++ this.title = title; ++ this.resizable = resizable; ++ this.closable = closable; ++ this.maximizable = maximizable; ++ this.iconable = iconifiable; ++ storedBounds = new Rectangle(); ++ ++ setRootPaneCheckingEnabled(false); ++ setRootPane(createRootPane()); ++ ++ updateUI(); ++ setRootPaneCheckingEnabled(true); ++ } ++ ++ /** ++ * This method adds Components to this Container. For JInternalFrames, ++ * instead of calling add directly on the JInternalFrame, it should be ++ * called with JInternalFrame.getContentPane().add. If root pane checking ++ * is enabled, calling this method will cause an exception to be thrown. ++ * ++ * @param comp The Component to add. ++ * @param constraints The constraints on the Component added. ++ * @param index The position to place the Component. ++ * ++ * @throws Error DOCUMENT ME! ++ */ ++ protected void addImpl(Component comp, Object constraints, int index) ++ { ++ if (isRootPaneCheckingEnabled()) ++ throw new Error("Do not use add() on JInternalPane directly. Use getContentPane().add() instead"); ++ ++ super.addImpl(comp, constraints, index); ++ } ++ ++ /** ++ * This method adds an InternalFrameListener to this JInternalFrame. ++ * ++ * @param l The listener to add. ++ */ ++ public void addInternalFrameListener(InternalFrameListener l) ++ { ++ listenerList.add(InternalFrameListener.class, l); ++ } ++ ++ /** ++ * This method is used to create a root pane for the JInternalFrame. This ++ * method is called by the constructors. ++ * ++ * @return A root pane for the JInternalFrame to use. ++ */ ++ protected JRootPane createRootPane() ++ { ++ return new JRootPane(); ++ } ++ ++ /** ++ * This method makes this JInternalFrame invisible, unselected and closed. ++ * If this JInternalFrame is not closed already, it will fire an ++ * INTERNAL_FRAME_CLoSED event. This method is similar to setClosed but it ++ * doesn't give vetoable listeners a chance to veto and it will not fire an ++ * INTERNAL_FRAME_CLOSING event. ++ */ ++ public void dispose() ++ { ++ hide(); ++ JDesktopPane pane = getDesktopPane(); ++ if (pane != null) ++ pane.setSelectedFrame(null); ++ else ++ { ++ try ++ { ++ setSelected(false); ++ } ++ catch (PropertyVetoException e) ++ { ++ // Do nothing if they don't want to be unselected. ++ } ++ } ++ isClosed = true; ++ fireInternalFrameEvent(InternalFrameEvent.INTERNAL_FRAME_CLOSED); ++ removeNotify(); ++ } ++ ++ /** ++ * This method is used for closing this JInternalFrame. It fires an ++ * INTERNAL_FRAME_CLOSING event and then performs the action specified by ++ * the default close operation. ++ */ ++ public void doDefaultCloseAction() ++ { ++ fireInternalFrameEvent(InternalFrameEvent.INTERNAL_FRAME_CLOSING); ++ switch (getDefaultCloseOperation()) ++ { ++ case HIDE_ON_CLOSE: ++ hide(); ++ break; ++ case DISPOSE_ON_CLOSE: ++ dispose(); ++ break; ++ } ++ } ++ ++ /** ++ * This method fires an InternalFrameEvent to the listeners. ++ * ++ * @param id The type of event being fired. See InternalFrameEvent. ++ */ ++ protected void fireInternalFrameEvent(int id) ++ { ++ Object[] ifListeners = listenerList.getListenerList(); ++ InternalFrameEvent evt = new InternalFrameEvent(this, id); ++ switch (id) ++ { ++ case InternalFrameEvent.INTERNAL_FRAME_CLOSING: ++ for (int i = ifListeners.length - 2; i >= 0; i -= 2) ++ { ++ if (ifListeners[i] == InternalFrameListener.class) ++ ((InternalFrameListener) ifListeners[i + 1]) ++ .internalFrameClosing(evt); ++ } ++ break; ++ case InternalFrameEvent.INTERNAL_FRAME_ACTIVATED: ++ for (int i = ifListeners.length - 2; i >= 0; i -= 2) ++ { ++ if (ifListeners[i] == InternalFrameListener.class) ++ ((InternalFrameListener) ifListeners[i + 1]) ++ .internalFrameActivated(evt); ++ } ++ break; ++ case InternalFrameEvent.INTERNAL_FRAME_CLOSED: ++ for (int i = ifListeners.length - 2; i >= 0; i -= 2) ++ { ++ if (ifListeners[i] == InternalFrameListener.class) ++ ((InternalFrameListener) ifListeners[i + 1]).internalFrameClosed(evt); ++ } ++ break; ++ case InternalFrameEvent.INTERNAL_FRAME_DEACTIVATED: ++ for (int i = ifListeners.length - 2; i >= 0; i -= 2) ++ { ++ if (ifListeners[i] == InternalFrameListener.class) ++ ((InternalFrameListener) ifListeners[i + 1]) ++ .internalFrameDeactivated(evt); ++ } ++ break; ++ case InternalFrameEvent.INTERNAL_FRAME_DEICONIFIED: ++ for (int i = ifListeners.length - 2; i >= 0; i -= 2) ++ { ++ if (ifListeners[i] == InternalFrameListener.class) ++ ((InternalFrameListener) ifListeners[i + 1]) ++ .internalFrameDeiconified(evt); ++ } ++ break; ++ case InternalFrameEvent.INTERNAL_FRAME_ICONIFIED: ++ for (int i = ifListeners.length - 2; i >= 0; i -= 2) ++ { ++ if (ifListeners[i] == InternalFrameListener.class) ++ ((InternalFrameListener) ifListeners[i + 1]) ++ .internalFrameIconified(evt); ++ } ++ break; ++ case InternalFrameEvent.INTERNAL_FRAME_OPENED: ++ for (int i = ifListeners.length - 2; i >= 0; i -= 2) ++ { ++ if (ifListeners[i] == InternalFrameListener.class) ++ ((InternalFrameListener) ifListeners[i + 1]).internalFrameOpened(evt); ++ } ++ break; ++ } ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public AccessibleContext getAccessibleContext() ++ { ++ if (accessibleContext == null) ++ accessibleContext = new AccessibleJInternalFrame(); ++ return accessibleContext; ++ } ++ ++ /** ++ * This method returns the Content Pane for this JInternalFrame. ++ * ++ * @return The Content Pane for this JInternalFrame. ++ */ ++ public Container getContentPane() ++ { ++ return getRootPane().getContentPane(); ++ } ++ ++ /** ++ * This method returns the default action taken when this JInternalFrame is ++ * closed. ++ * ++ * @return The default action taken when this JInternalFrame is closed. ++ */ ++ public int getDefaultCloseOperation() ++ { ++ return defaultCloseOperation; ++ } ++ ++ /** ++ * This method returns the JDesktopIcon that represents this JInternalFrame ++ * while it is iconified. ++ * ++ * @return The JDesktopIcon that represents this JInternalFrame while it is ++ * iconified. ++ */ ++ public JDesktopIcon getDesktopIcon() ++ { ++ if (desktopIcon == null) ++ desktopIcon = new JDesktopIcon(this); ++ return desktopIcon; ++ } ++ ++ /** ++ * This method searches this JInternalFrame ancestors for an instance of ++ * JDesktopPane. If one is found, it is returned. If none is found, then it ++ * will search the JDesktopIcon for a JDesktopPane. ++ * ++ * @return The JDesktopPane that this JInternalFrame belongs to. ++ */ ++ public JDesktopPane getDesktopPane() ++ { ++ JDesktopPane value = (JDesktopPane) SwingUtilities.getAncestorOfClass(JDesktopPane.class, ++ this); ++ if (value == null && desktopIcon != null) ++ value = desktopIcon.getDesktopPane(); ++ return value; ++ } ++ ++ /** ++ * This method returns null because this must always be the root of a focus ++ * traversal. ++ * ++ * @return null. ++ */ ++ public Container getFocusCycleRootAncestor() ++ { ++ // as defined. ++ return null; ++ } ++ ++ /** ++ * This method returns the child Component that will receive focus if this ++ * JInternalFrame is selected. ++ * ++ * @return The child Component that will receive focus. ++ */ ++ public Component getFocusOwner() ++ { ++ if (isSelected()) ++ { ++ Component focus = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner(); ++ if (SwingUtilities.isDescendingFrom(focus, this)) ++ { ++ defaultFocus = focus; ++ return focus; ++ } ++ } ++ return null; ++ } ++ ++ /** ++ * This method returns the Frame Icon (the icon used in the JInternalFrame ++ * TitlePane and iconified frame). ++ * ++ * @return The Frame Icon. ++ */ ++ public Icon getFrameIcon() ++ { ++ return frameIcon; ++ } ++ ++ /** ++ * This method returns the Glass Pane used with this JInternalFrame. ++ * ++ * @return The Glass Pane used with this JInternalFrame. ++ */ ++ public Component getGlassPane() ++ { ++ return getRootPane().getGlassPane(); ++ } ++ ++ /** ++ * This method returns an array of InternalFrameListeners that are listening ++ * to this JInternalFrame. ++ * ++ * @return An array of InternalFrameListeners that are listening to this ++ * JInternalFrame. ++ */ ++ public InternalFrameListener[] getInternalFrameListeners() ++ { ++ return (InternalFrameListener[]) listenerList.getListeners(InternalFrameListener.class); ++ } ++ ++ /** ++ * This method returns the JMenuBar for this JInternalFrame. ++ * ++ * @return The JMenuBar for this JInternalFrame. ++ */ ++ public JMenuBar getJMenuBar() ++ { ++ return getRootPane().getJMenuBar(); ++ } ++ ++ /** ++ * This method returns the layer that this JInternalFrame resides in. ++ * ++ * @return The layer that this JInternalFrame resides in. ++ */ ++ public int getLayer() ++ { ++ JDesktopPane pane = getDesktopPane(); ++ if (pane != null) ++ return pane.getLayer(this).intValue(); ++ return -1; ++ } ++ ++ /** ++ * This method returns the LayeredPane for this JInternalFrame. ++ * ++ * @return The LayeredPane for this JInternalFrame. ++ */ ++ public JLayeredPane getLayeredPane() ++ { ++ return getRootPane().getLayeredPane(); ++ } ++ ++ /** ++ * This method is deprecated. This method returns the JMenuBar for this ++ * JInternalFrame. ++ * ++ * @return The JMenuBar for this JInternalFrame. ++ */ ++ public JMenuBar getMenuBar() ++ { ++ return getJMenuBar(); ++ } ++ ++ /** ++ * This method returns the child Component that will receive focus when the ++ * JInternalFrame is selected. If the JInternalFrame is selected, this ++ * method returns getFocusOwner(). Otherwise, it will return the child ++ * Component that most recently requested focus. If that is null, then the ++ * initial focus Component is returned. If that is null, then the default ++ * focus component is returned. ++ * ++ * @return The most recent focus owner. ++ */ ++ public Component getMostRecentFocusOwner() ++ { ++ if (isSelected()) ++ return getFocusOwner(); ++ else ++ return defaultFocus; ++ } ++ ++ /** ++ * This method returns the bounds of the JInternalFrame if it is not ++ * maximized. If it is maximized, it returns the bounds of the ++ * JInternalFrame before it was maximized (the bounds that it will be ++ * restored to). ++ * ++ * @return A Rectangle that contains this JInternalFrame's normal bounds (or ++ * just its bounds if it is not maximized). ++ */ ++ public Rectangle getNormalBounds() ++ { ++ if (! isMaximum() && ! maxTransition) ++ return getBounds(); ++ else ++ return storedBounds; ++ } ++ ++ /** ++ * This method returns the Root Pane for this JInternalFrame. ++ * ++ * @return The Root Pane for this JInternalFrame. ++ */ ++ public JRootPane getRootPane() ++ { ++ return rootPane; ++ } ++ ++ /** ++ * This method sets the title of the JInternalFrame. ++ * ++ * @return The String displayed in the TitlePane of this JInternalFrame. ++ */ ++ public String getTitle() ++ { ++ return title; ++ } ++ ++ /** ++ * This method returns the UI used to represent the JInternalFrame. ++ * ++ * @return The UI used to represent the JInternalFrame. ++ */ ++ public InternalFrameUI getUI() ++ { ++ return (InternalFrameUI) ui; ++ } ++ ++ /** ++ * This method returns a String identifier that is used to determine which ++ * class acts as the JInternalFrame's UI. ++ * ++ * @return A String identifier to determine a UI class. ++ */ ++ public String getUIClassID() ++ { ++ return "InternalFrameUI"; ++ } ++ ++ /** ++ * This method returns null. ++ * ++ * @return null. ++ */ ++ public String getWarningString() ++ { ++ // as defined. ++ return null; ++ } ++ ++ /** ++ * This method deselects this JInternalFrame and hides it. ++ */ ++ public void hide() ++ { ++ JDesktopPane pane = getDesktopPane(); ++ if (pane != null) ++ pane.setSelectedFrame(null); ++ else ++ { ++ try ++ { ++ setSelected(false); ++ } ++ catch (PropertyVetoException e) ++ { ++ // Do nothing. ++ } ++ } ++ super.hide(); ++ } ++ ++ /** ++ * This method returns whether this JInternalFrame is closable. ++ * ++ * @return Whether this JInternalFrame is closable. ++ */ ++ public boolean isClosable() ++ { ++ return closable; ++ } ++ ++ /** ++ * This method returns whether this JInternalFrame has been closed. ++ * ++ * @return Whether this JInternalFrame is closed. ++ */ ++ public boolean isClosed() ++ { ++ return isClosed; ++ } ++ ++ /** ++ * This must always return true. ++ * ++ * @return True ++ */ ++ public boolean isFocusCycleRoot() ++ { ++ return true; ++ } ++ ++ /** ++ * This method returns whether this JInternalFrame is currently iconified. ++ * ++ * @return Whether this JInternalFrame is currently iconified. ++ */ ++ public boolean isIcon() ++ { ++ return isIcon; ++ } ++ ++ /** ++ * This method returns whether the JInternalFrame can be iconified. ++ * ++ * @return Whether the JInternalFrame can be iconified. ++ */ ++ public boolean isIconifiable() ++ { ++ return iconable; ++ } ++ ++ /** ++ * This method returns whether this JInternalFrame can be maximized. ++ * ++ * @return Whether this JInternalFrame can be maximized. ++ */ ++ public boolean isMaximizable() ++ { ++ return maximizable; ++ } ++ ++ /** ++ * This method returns whether this JInternalFrame is currently maximized. ++ * ++ * @return Whether this JInternalFrame is maximized. ++ */ ++ public boolean isMaximum() ++ { ++ return isMaximum; ++ } ++ ++ /** ++ * This method returns whether this JInternalFrame is resizable. ++ * ++ * @return Whether this JInternalFrame is resizable. ++ */ ++ public boolean isResizable() ++ { ++ return resizable; ++ } ++ ++ /** ++ * This method returns whether root pane checking is enabled. If root pane ++ * checking is enabled, then calls to addImpl and setLayout will throw ++ * exceptions. ++ * ++ * @return Whether root pane checking is enabled. ++ */ ++ protected boolean isRootPaneCheckingEnabled() ++ { ++ return rootPaneCheckingEnabled; ++ } ++ ++ /** ++ * This method returns whether this JInternalFrame is selected. ++ * ++ * @return Whether this JInternalFrame is selected. ++ */ ++ public boolean isSelected() ++ { ++ return isSelected; ++ } ++ ++ /** ++ * A helper method that moves this JInternalFrame to the back if the parent ++ * is a JLayeredPane. ++ */ ++ public void moveToBack() ++ { ++ if (getParent() instanceof JLayeredPane) ++ ((JLayeredPane) getParent()).moveToBack(this); ++ } ++ ++ /** ++ * A helper method that moves this JInternalFrame to the front if the parent ++ * is a JLayeredPane. ++ */ ++ public void moveToFront() ++ { ++ if (getParent() instanceof JLayeredPane) ++ ((JLayeredPane) getParent()).moveToFront(this); ++ } ++ ++ /** ++ * This method causes the children of this JInternalFrame to be laid out. ++ * Before it begins, if this JInternalFrame is an icon, then it will be ++ * deiconified. If it is maximized, then it will be restored. If either ++ * operation fails, then this method will return. ++ */ ++ public void pack() ++ { ++ try ++ { ++ if (isIcon()) ++ setIcon(false); ++ else if (isMaximum()) ++ setMaximum(false); ++ } ++ catch (PropertyVetoException e) ++ { ++ // Do nothing if they don't want to be restored first. ++ } ++ doLayout(); ++ } ++ ++ /** ++ * This method is overridden to allow for speedier painting while this ++ * JInternalFramme is being dragged. ++ * ++ * @param g The Graphics object to paint with. ++ */ ++ protected void paintComponent(Graphics g) ++ { ++ super.paintComponent(g); ++ } ++ ++ /** ++ * This method returns a String describing this JInternalFrame. ++ * ++ * @return A String describing this JInternalFrame. ++ */ ++ protected String paramString() ++ { ++ return "JInternalFrame"; ++ } ++ ++ /** ++ * This method removes the given Component from the Container. ++ * ++ * @param comp The Component to remove. ++ */ ++ public void remove(Component comp) ++ { ++ super.remove(comp); ++ } ++ ++ /** ++ * This method removes an InternalFrameListener from this JInternalFrame. ++ * ++ * @param l The listener to remove. ++ */ ++ public void removeInternalFrameListener(InternalFrameListener l) ++ { ++ listenerList.remove(InternalFrameListener.class, l); ++ } ++ ++ /** ++ * This method resizes and positions this JInternalFrame. It also forces a ++ * relayout of the Container. ++ * ++ * @param x The x position of this JInternalFrame. ++ * @param y The y position of this JInternalFrame. ++ * @param width The width of this JInternalFrame. ++ * @param height The height of this JInternalFrame. ++ */ ++ public void reshape(int x, int y, int width, int height) ++ { ++ super.reshape(x, y, width, height); ++ invalidate(); ++ doLayout(); ++ } ++ ++ /** ++ * This method gives focus to the last child Component that had focus. This ++ * is used by the UI when this JInternalFrame is activated. ++ */ ++ public void restoreSubcomponentFocus() ++ { ++ Component c = getMostRecentFocusOwner(); ++ if (c != null) ++ c.requestFocus(); ++ } ++ ++ /** ++ * This method sets whether this JInternalFrame can be closed. ++ * ++ * @param b Whether this JInternalFrame can be closed. ++ */ ++ public void setClosable(boolean b) ++ { ++ closable = b; ++ } ++ ++ /** ++ * This method closes the JInternalFrame if the given boolean is true. If it ++ * is false, then the result of this method is unspecified. If the ++ * JInternalFrame is closed, this method does nothing. This method will ++ * first fire an INTERNAL_FRAME_CLOSING event and give a chance for veto ++ * listeners to cancel the close. If no listener vetoes the change, the ++ * closed property is set to true and the JInternalFrame is hidden and ++ * unselected. The method will finish by firing an INTERNAL_FRAME_CLOSED ++ * event. ++ * ++ * @param b Whether the JInternalFrame will be closed. ++ * ++ * @throws PropertyVetoException If a VetoableChangeListener vetoes the change. ++ */ ++ public void setClosed(boolean b) throws PropertyVetoException ++ { ++ if (b && ! isClosed()) ++ { ++ fireInternalFrameEvent(InternalFrameEvent.INTERNAL_FRAME_CLOSING); ++ fireVetoableChange(IS_CLOSED_PROPERTY, false, true); ++ ++ isClosed = b; ++ ++ firePropertyChange(IS_CLOSED_PROPERTY, false, true); ++ fireInternalFrameEvent(InternalFrameEvent.INTERNAL_FRAME_CLOSED); ++ } ++ } ++ ++ /** ++ * This method sets the Container to be used as a Content Pane for this ++ * JInternalFrame. ++ * ++ * @param c The Container to use as a Content Pane. ++ */ ++ public void setContentPane(Container c) ++ { ++ if (c != getContentPane()) ++ { ++ Container old = getContentPane(); ++ getRootPane().setContentPane(c); ++ firePropertyChange(CONTENT_PANE_PROPERTY, old, c); ++ } ++ } ++ ++ /** ++ * This method sets the action taken when this JInternalFrame is closed. ++ * ++ * @param operation One of DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE or ++ * DISPOSE_ON_CLOSE. ++ * ++ * @throws Error If the given operation is not one of the allowed modes. ++ */ ++ public void setDefaultCloseOperation(int operation) ++ { ++ if (operation != DO_NOTHING_ON_CLOSE || operation != HIDE_ON_CLOSE ++ || operation != DISPOSE_ON_CLOSE) ++ throw new Error("Close operation must be one of DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE, or DISPOSE_ON_CLOSE"); ++ defaultCloseOperation = operation; ++ } ++ ++ /** ++ * This method sets the JDesktopIcon that represents this JInternalFrame ++ * while it is iconified. ++ * ++ * @param d The JDesktopIcon that represents this JInternalFrame while it is ++ * iconified. ++ */ ++ public void setDesktopIcon(JDesktopIcon d) ++ { ++ d.setInternalFrame(this); ++ desktopIcon = d; ++ } ++ ++ /** ++ * This method does nothing because this must be the root of a focus ++ * traversal cycle. ++ * ++ * @param focusCycleRoot Not used. ++ */ ++ public final void setFocusCycleRoot(boolean focusCycleRoot) ++ { ++ // Do nothing ++ } ++ ++ /** ++ * This method sets the Icon to be used in two places. The first is icon ++ * that is painted at the top left corner of the JInternalFrame when it is ++ * not iconified (clicking on that icon will activate the TitlePane ++ * JMenuBar). When the JInternalFrame is iconified, it will be the icon ++ * displayed in the JDesktopIcon. If no icon is set, the JInternalFrame ++ * will use a Look and Feel default. ++ * ++ * @param icon The Icon used in the TitlePane JMenuBar and iconified frames. ++ */ ++ public void setFrameIcon(Icon icon) ++ { ++ if (icon != frameIcon) ++ { ++ Icon old = frameIcon; ++ frameIcon = icon; ++ firePropertyChange(FRAME_ICON_PROPERTY, old, frameIcon); ++ } ++ } ++ ++ /** ++ * This method sets the Glass Pane used with this JInternalFrame. ++ * ++ * @param glass The Glass Pane to use with this JInternalFrame. ++ */ ++ public void setGlassPane(Component glass) ++ { ++ if (glass != getGlassPane()) ++ { ++ Component old = getGlassPane(); ++ getRootPane().setGlassPane(glass); ++ firePropertyChange(GLASS_PANE_PROPERTY, old, glass); ++ } ++ } ++ ++ /** ++ * This method iconifies or deiconifies this JInternalFrame given the ++ * boolean argument. If the JInternalFrame becomes iconified, it will fire ++ * an INTERNAL_FRAME_ICONIFIED event. If the JInternalFrame becomes ++ * deiconified, it will fire anINTERNAL_FRAME_DEICONIFIED event. ++ * ++ * @param b Whether this JInternalFrame is to be iconified or deiconified. ++ * ++ * @throws PropertyVetoException DOCUMENT ME! ++ */ ++ public void setIcon(boolean b) throws PropertyVetoException ++ { ++ if (b != isIcon()) ++ { ++ fireVetoableChange(IS_ICON_PROPERTY, b, isIcon); ++ ++ isIcon = b; ++ ++ firePropertyChange(IS_ICON_PROPERTY, ! isIcon, isIcon); ++ if (b) ++ fireInternalFrameEvent(InternalFrameEvent.INTERNAL_FRAME_ICONIFIED); ++ else ++ fireInternalFrameEvent(InternalFrameEvent.INTERNAL_FRAME_DEICONIFIED); ++ } ++ } ++ ++ /** ++ * This method sets whether the JInternalFrame can be iconified. (This means ++ * that the JInternalFrame can be turned into an icon if minimized). ++ * ++ * @param b Whether the JInternalFrame can be iconified. ++ */ ++ public void setIconifiable(boolean b) ++ { ++ iconable = b; ++ } ++ ++ /** ++ * This method sets the JMenuBar to be used with this JInternalFrame. ++ * ++ * @param b The JMenuBar to be used with this JInternalFrame. ++ */ ++ public void setJMenuBar(JMenuBar b) ++ { ++ getRootPane().setJMenuBar(b); ++ } ++ ++ /** ++ * A helper method that set the layer that this JInternalFrame resides in. ++ * Using this version of the method means that the user should not set it ++ * to values that are already defined in JLayeredPane. If predefined values ++ * are to be used, the user should use the setLayer(Integer) version. ++ * ++ * @param layer The layer to place this JInternalFrame in. ++ */ ++ public void setLayer(int layer) ++ { ++ setLayer(new Integer(layer)); ++ } ++ ++ /** ++ * A helper method that sets the layer that this JInternalFrame resides in. ++ * Calling this version of the method should use layer values that are ++ * already defined in JLayeredPane. ++ * ++ * @param layer The layer to place this JInternalFrame in. ++ */ ++ public void setLayer(Integer layer) ++ { ++ JDesktopPane p = getDesktopPane(); ++ if (p != null) ++ { ++ int pos = p.getPosition(this); ++ p.setLayer(this, layer.intValue(), pos); ++ } ++ } ++ ++ /** ++ * This method sets the JLayeredPane to use with this JInternalFrame. ++ * ++ * @param layered The JLayeredPane to use as a layeredPane. ++ */ ++ public void setLayeredPane(JLayeredPane layered) ++ { ++ if (layered != getLayeredPane()) ++ { ++ JLayeredPane old = getLayeredPane(); ++ getRootPane().setLayeredPane(layered); ++ firePropertyChange(LAYERED_PANE_PROPERTY, old, layered); ++ } ++ } ++ ++ /** ++ * This method sets whether the JInternalFrame can be maximized. ++ * ++ * @param b Whether this JInternalFrame can be maximized. ++ */ ++ public void setMaximizable(boolean b) ++ { ++ maximizable = b; ++ } ++ ++ /** ++ * This method sets the Layout Manager used in the JInternalFrame. SetLayout ++ * should not be called on the JInternalFrame directly. Instead, it should ++ * be called with JInternalFrame.getContentPane().setLayout. Calls to this ++ * method with root pane checking enabled will cause exceptions to be ++ * thrown. ++ * ++ * @param manager The Layout Manager to be used with the JInternalFrame. ++ * ++ * @throws Error If rootPaneChecking is enabled. ++ */ ++ public void setLayout(LayoutManager manager) ++ { ++ if (isRootPaneCheckingEnabled()) ++ throw new Error("Cannot set layout. Use getContentPane().setLayout() instead."); ++ super.setLayout(manager); ++ } ++ ++ /** ++ * This method sets the JInternalFrame to maximized (if the given argument ++ * is true) or restores the JInternalFrame to its normal bounds otherwise. ++ * ++ * @param b Whether this JInteralFrame will be maximized or restored. ++ * ++ * @throws PropertyVetoException If a VetoableChangeListener vetoes the change. ++ */ ++ public void setMaximum(boolean b) throws PropertyVetoException ++ { ++ if (b != isMaximum()) ++ { ++ fireVetoableChange(IS_MAXIMUM_PROPERTY, b, isMaximum); ++ isMaximum = b; ++ if (b) ++ setNormalBounds(getBounds()); ++ maxTransition = ! b; ++ firePropertyChange(IS_MAXIMUM_PROPERTY, ! isMaximum, isMaximum); ++ maxTransition = false; ++ } ++ } ++ ++ /** ++ * This method is deprecated. This method sets the JMenuBar used with this ++ * JInternalFrame. ++ * ++ * @param m The JMenuBar to use with this JInternalFrame. ++ */ ++ public void setMenuBar(JMenuBar m) ++ { ++ setJMenuBar(m); ++ } ++ ++ /** ++ * This method sets the bounds that this JInternalFrame will be restored to. ++ * ++ * @param r The bounds that this JInternalFrame will be restored to. ++ */ ++ public void setNormalBounds(Rectangle r) ++ { ++ storedBounds.setBounds(r.x, r.y, r.width, r.height); ++ } ++ ++ /** ++ * This method sets whether the JInternalFrame can be resized by a user ++ * action (like dragging at the frame borders). ++ * ++ * @param b Whether this JInternalFramer can be resized. ++ */ ++ public void setResizable(boolean b) ++ { ++ resizable = b; ++ } ++ ++ /** ++ * This method sets the Root Pane for this JInternalFrame. ++ * ++ * @param root The Root Pane for this JInternalFrame. ++ */ ++ protected void setRootPane(JRootPane root) ++ { ++ if (rootPane != null) ++ remove(rootPane); ++ ++ rootPane = root; ++ add(root); ++ } ++ ++ /** ++ * This method sets whether root pane checking is enabled. If root pane ++ * checking is enabled, then calls to addImpl and setLayout will throw ++ * exceptions. ++ * ++ * @param enabled Whether root pane checking is enabled. ++ */ ++ protected void setRootPaneCheckingEnabled(boolean enabled) ++ { ++ rootPaneCheckingEnabled = enabled; ++ } ++ ++ /** ++ * This method sets whether this JInternalFrame is the selected frame in the ++ * JDesktopPane (or other container). When selected, a JInternalFrame will ++ * have focus and paint its TitlePane differently (usually a different ++ * colour). If this method selects the frame, this JInternalFrame will fire ++ * an INTERNAL_FRAME_ACTIVATED event. If it deselects this frame, it will ++ * fire an INTERNAL_FRAME_DEACTIVATED event. ++ * ++ * @param selected Whether this JInternalFrame will become selected or ++ * deselected. ++ * ++ * @throws PropertyVetoException If a VetoableChangeListener vetoes the change. ++ */ ++ public void setSelected(boolean selected) throws PropertyVetoException ++ { ++ if (selected != isSelected()) ++ { ++ fireVetoableChange(IS_SELECTED_PROPERTY, selected, isSelected); ++ ++ if (! selected) ++ defaultFocus = getMostRecentFocusOwner(); ++ ++ isSelected = selected; ++ ++ if (selected) ++ restoreSubcomponentFocus(); ++ ++ firePropertyChange(IS_SELECTED_PROPERTY, ! isSelected, isSelected); ++ ++ if (isSelected) ++ fireInternalFrameEvent(InternalFrameEvent.INTERNAL_FRAME_ACTIVATED); ++ else ++ fireInternalFrameEvent(InternalFrameEvent.INTERNAL_FRAME_DEACTIVATED); ++ } ++ } ++ ++ /** ++ * This method sets the title displayed in the TitlePane of this ++ * JInternalFrame. ++ * ++ * @param title The title displayed. ++ */ ++ public void setTitle(String title) ++ { ++ if (title == null && this.title == null) ++ return; ++ if (title == null || this.title == null || ! this.title.equals(title)) ++ { ++ String old = title; ++ this.title = title; ++ firePropertyChange(TITLE_PROPERTY, old, this.title); ++ } ++ } ++ ++ /** ++ * This method displays the JInternalFrame. If it is not visible, this ++ * method will bring this JInternalFrame to the front, make it visible and ++ * select it. If this is the first time this JInternalFrame is made ++ * visible, an INTERNAL_FRAME_OPENED event will be fired. ++ */ ++ public void show() ++ { ++ if (! isVisible()) ++ { ++ moveToFront(); ++ super.show(); ++ ++ JDesktopPane pane = getDesktopPane(); ++ if (pane != null) ++ pane.setSelectedFrame(this); ++ else ++ { ++ try ++ { ++ setSelected(true); ++ } ++ catch (PropertyVetoException e) ++ { ++ // Do nothing. if they don't want to be selected. ++ } ++ } ++ if (isFirstTimeVisible) ++ { ++ isFirstTimeVisible = false; ++ fireInternalFrameEvent(InternalFrameEvent.INTERNAL_FRAME_OPENED); ++ } ++ } ++ } ++ ++ /** ++ * This method is used to set the UI responsible for the JInternalFrame. ++ * ++ * @param ui The UI responsible for the JInternalFrame. ++ */ ++ public void setUI(InternalFrameUI ui) ++ { ++ super.setUI(ui); ++ } ++ ++ /** ++ * This method causes the JInternalFrame to be brough to back in the ++ * z-order. ++ */ ++ public void toBack() ++ { ++ moveToBack(); ++ } ++ ++ /** ++ * This method causes the JInternalFrame to be brought to front in the ++ * z-order. ++ */ ++ public void toFront() ++ { ++ moveToFront(); ++ } ++ ++ /** ++ * This method resets the UI to the Look and Feel defaults. ++ */ ++ public void updateUI() ++ { ++ setUI((InternalFrameUI) UIManager.getUI(this)); ++ } ++ ++ /** ++ * This helper method allows JInternalFrames to signal that they were ++ * iconned for the first time. ++ * ++ * @param b Whether the JInternalFrame was iconned. ++ * @param ID The identifier of the property change event to fire if the ++ * JInternalFrame is iconned for the first time. ++ */ ++ void setWasIcon(boolean b, String ID) ++ { ++ if (b && ! wasIcon) ++ { ++ wasIcon = b; ++ firePropertyChange(ID, ! b, b); ++ } ++ } ++ ++ /** ++ * This helper method returns whether the JInternalFrame has been iconned ++ * once already. ++ * ++ * @return Whether the JInternalFrame has been iconned once already. ++ */ ++ boolean getWasIcon() ++ { ++ return wasIcon; ++ } ++ ++ /** ++ * This method is a convenience method to fire vetoable property changes. ++ * ++ * @param name The identifier of the property change. ++ * @param oldValue The old value. ++ * @param newValue The new value. ++ * ++ * @throws PropertyVetoException Fired if a vetoable change listener vetoes ++ * the change. ++ */ ++ private void fireVetoableChange(String name, boolean oldValue, ++ boolean newValue) ++ throws PropertyVetoException ++ { ++ super.fireVetoableChange(name, new Boolean(oldValue), new Boolean(newValue)); ++ } + } // class JInternalFrame +Index: javax/swing/JLabel.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JLabel.java,v +retrieving revision 1.2 +diff -u -r1.2 JLabel.java +--- javax/swing/JLabel.java 11 Jun 2003 13:20:39 -0000 1.2 ++++ javax/swing/JLabel.java 6 Sep 2004 16:35:56 -0000 +@@ -1,5 +1,5 @@ +-/* JLabel.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++/* JLabel.java -- ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,203 +35,662 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing; + + import java.awt.Component; ++import java.awt.Font; + import java.awt.Image; ++import java.awt.event.KeyEvent; + import javax.accessibility.Accessible; + import javax.accessibility.AccessibleContext; ++import javax.swing.Icon; + import javax.swing.plaf.LabelUI; + ++ ++/** ++ *

    ++ * A swing widget that displays a text message and/or an icon. ++ *

    ++ */ + public class JLabel extends JComponent implements Accessible, SwingConstants + { +- String text; +- Icon icon; +- int gap; +- int align; +- +- int hor_align; +- int hor_text_pos; +- +- int vert_align; +- int vert_text_pos; +- +- public JLabel() +- { +- this("", null, 0); +- } +- +- public JLabel(Icon image) +- { +- this("", image, 0); +- } +- +- public JLabel(Icon image, int horizontalAlignment) +- { +- this("", image, horizontalAlignment); +- } +- +- public JLabel(String text) +- { +- this(text, null, 0); +- } +- +- public JLabel(String text, int horizontalAlignment) +- { +- this(text, null, horizontalAlignment); +- } +- +- public JLabel(String text, Icon icon, int horizontalAlignment) +- { +- // do the work..... +- this.text = text; +- setIcon(icon); +- this.align = horizontalAlignment; +- +- updateUI(); // get a proper ui +- } +- +- +- protected int checkHorizontalKey(int key, String message) +- { +- // Verify that key is a legal value for the horizontalAlignment properties. +- return 0; +- } +- protected int checkVerticalKey(int key, String message) +- { +- // Verify that key is a legal value for the verticalAlignment or verticalTextPosition properties. +- return 0; +- } +- public AccessibleContext getAccessibleContext() +- { +- // Get the AccessibleContext of this object +- return null; +- } +- public Icon getDisabledIcon() +- { +- // Returns the value of the disabledIcon property if it's been set, If it hasn't been set and the value of the icon property is an ImageIcon, we compute a "grayed out" version of the icon and update the disabledIcon property with that. +- return null; +- } +- public int getDisplayedMnemonic() +- { +- // Return the keycode that indicates a mnemonic key. +- return 0; +- } +- public int getHorizontalAlignment() +- { +- // Returns the alignment of the label's contents along the X axis. +- return hor_align; +- } +- public int getHorizontalTextPosition() +- { +- // Returns the horizontal position of the label's text, relative to its image. +- return hor_text_pos; +- } +- +- public Icon getIcon() +- { return icon; } +- +- public int getIconTextGap() +- { +- // Returns the amount of space between the text and the icon displayed in this label. +- return 0; +- } +- public Component getLabelFor() +- { +- // Get the component this is labelling. +- return null; +- } +- public String getText() +- { return text; } +- +- public String getUIClassID() +- { return "JLabel"; } +- +- public int getVerticalAlignment() +- { +- // Returns the alignment of the label's contents along the Y axis. +- return vert_align; +- } +- public int getVerticalTextPosition() +- { +- // Returns the vertical position of the label's text, relative to its image. +- return vert_text_pos; +- } +- +- public boolean imageUpdate(Image img, int infoflags, int x, int y, int w, int h) +- { +- // This is overriden to return false if the current Icon's Image is not equal to the passed in Image img. +- return (img == icon); +- } +- protected String paramString() +- { +- // Returns a string representation of this JLabel. +- return "JLabel"; +- } +- public void setDisabledIcon(Icon disabledIcon) +- { +- // Set the icon to be displayed if this JLabel is "disabled" (JLabel.setEnabled(false)). +- } +- public void setDisplayedMnemonic(char aChar) +- { +- // Specifies the displayedMnemonic as a char value. +- } +- public void setDisplayedMnemonic(int key) +- { +- // Specify a keycode that indicates a mnemonic key. +- } +- public void setHorizontalAlignment(int alignment) +- { +- // Sets the alignment of the label's contents along the X axis. +- hor_align = alignment; +- } +- public void setHorizontalTextPosition(int textPosition) +- { +- // Sets the horizontal position of the label's text, relative to its image. +- hor_text_pos = textPosition; +- } +- public void setIcon(Icon icon) +- { +- this.icon = icon; +- if (icon != null) +- { +- // XXX FIXME - icons do not know their parent +-// icon.setParent(this); +- } +- revalidate(); +- repaint(); +- } +- +- public void setIconTextGap(int iconTextGap) +- { +- gap = iconTextGap; +- } +- +- public void setLabelFor(Component c) +- { +- // Set the component this is labelling. +- } +- public void setText(String text) +- { +- this.text = text; +- revalidate(); +- repaint(); +- } +- +- public void setVerticalAlignment(int alignment) +- { +- // Sets the alignment of the label's contents along the Y axis. +- vert_align = alignment; +- } +- public void setVerticalTextPosition(int textPosition) +- { +- // Sets the vertical position of the label's text, relative to its image. +- vert_text_pos = textPosition; +- } +- public void updateUI() +- { +- LabelUI b = (LabelUI)UIManager.getUI(this); +- setUI(b); +- } ++ /** DOCUMENT ME! */ ++ private static final long serialVersionUID = 5496508283662221534L; ++ ++ /** ++ * The Component the label will give focus to when its mnemonic is ++ * activated. ++ */ ++ protected Component labelFor; ++ ++ /** The label's text. */ ++ private transient String text; ++ ++ /** Where the label will be positioned horizontally. */ ++ private transient int horizontalAlignment = LEADING; ++ ++ /** Where the label text will be placed horizontally relative to the icon. */ ++ private transient int horizontalTextPosition = TRAILING; ++ ++ /** Where the label will be positioned vertically. */ ++ private transient int verticalAlignment = CENTER; ++ ++ /** Where the label text will be place vertically relative to the icon. */ ++ private transient int verticalTextPosition = CENTER; ++ ++ /** The icon painted when the label is enabled. */ ++ private transient Icon icon; ++ ++ /** The icon painted when the label is disabled. */ ++ private transient Icon disabledIcon; ++ ++ /** The label's mnemnonic key. */ ++ private transient int displayedMnemonic = KeyEvent.VK_UNDEFINED; ++ ++ /** The index of the menemonic character in the text. */ ++ private transient int displayedMnemonicIndex = -1; ++ ++ /** The gap between the icon and the text. */ ++ private transient int iconTextGap = 4; ++ ++ /** ++ * Fired in a PropertyChangeEvent when the "disabledIcon" property changes. ++ */ ++ public static final String DISABLED_ICON_CHANGED_PROPERTY = "disabledIcon"; ++ ++ /** ++ * Fired in a PropertyChangeEvent when the "displayedMnemonic" property ++ * changes. ++ */ ++ public static final String DISPLAYED_MNEMONIC_CHANGED_PROPERTY = "displayedMnemonic"; ++ ++ /** ++ * Fired in a PropertyChangeEvent when the "displayedMnemonicIndex" property ++ * changes. ++ */ ++ public static final String DISPLAYED_MNEMONIC_INDEX_CHANGED_PROPERTY = "displayedMnemonicIndex"; ++ ++ /** ++ * Fired in a PropertyChangeEvent when the "horizontalAlignment" property ++ * changes. ++ */ ++ public static final String HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY = "horizontalAlignment"; ++ ++ /** ++ * Fired in a PropertyChangeEvent when the "horizontalTextPosition" property ++ * changes. ++ */ ++ public static final String HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY = "horizontalTextPosition"; ++ ++ /** Fired in a PropertyChangeEvent when the "icon" property changes. */ ++ public static final String ICON_CHANGED_PROPERTY = "icon"; ++ ++ /** Fired in a PropertyChangeEvent when the "iconTextGap" property changes. */ ++ public static final String ICON_TEXT_GAP_CHANGED_PROPERTY = "iconTextGap"; ++ ++ /** Fired in a PropertyChangeEvent when the "labelFor" property changes. */ ++ public static final String LABEL_FOR_CHANGED_PROPERTY = "labelFor"; ++ ++ /** Fired in a PropertyChangeEvent when the "text" property changes. */ ++ public static final String TEXT_CHANGED_PROPERTY = "text"; ++ ++ /** ++ * Fired in a PropertyChangeEvent when the "verticalAlignment" property ++ * changes. ++ */ ++ public static final String VERTICAL_ALIGNMENT_CHANGED_PROPERTY = "verticalAlignment"; ++ ++ /** ++ * Fired in a PropertyChangeEvent when the "verticalTextPosition" property ++ * changes. ++ */ ++ public static final String VERTICAL_TEXT_POSITION_CHANGED_PROPERTY = "verticalTextPosition"; ++ ++ /** ++ * Creates a new horizontally and vertically centered JLabel object with no ++ * text and no icon. ++ */ ++ public JLabel() ++ { ++ this(null, null, CENTER); ++ } ++ ++ /** ++ * Creates a new horizontally and vertically centered JLabel object with no ++ * text and the given icon. ++ * ++ * @param image The icon to use with the label. ++ */ ++ public JLabel(Icon image) ++ { ++ this(null, image, CENTER); ++ } ++ ++ /** ++ * Creates a new vertically centered JLabel object with no text and the ++ * given icon and horizontal alignment. By default, the text is TRAILING ++ * the image. ++ * ++ * @param image The icon to use with the label. ++ * @param horizontalAlignment The horizontal alignment of the label. ++ */ ++ public JLabel(Icon image, int horizontalAlignment) ++ { ++ this(null, image, horizontalAlignment); ++ } ++ ++ /** ++ * Creates a new horizontally and vertically centered JLabel object with no ++ * icon and the given text. ++ * ++ * @param text The text to use with the label. ++ */ ++ public JLabel(String text) ++ { ++ this(text, null, CENTER); ++ } ++ ++ /** ++ * Creates a new vertically centered JLabel object with no icon and the ++ * given text and horizontal alignment. ++ * ++ * @param text The text to use with the label. ++ * @param horizontalAlignment The horizontal alignment of the label. ++ */ ++ public JLabel(String text, int horizontalAlignment) ++ { ++ this(text, null, horizontalAlignment); ++ } ++ ++ /** ++ * Creates a new vertically centered JLabel object with the given text, ++ * icon, and horizontal alignment. ++ * ++ * @param text The text to use with the label. ++ * @param icon The icon to use with the label. ++ * @param horizontalAlignment The horizontal alignment of the label. ++ */ ++ public JLabel(String text, Icon icon, int horizontalAlignment) ++ { ++ this.text = text; ++ this.icon = icon; ++ this.horizontalAlignment = horizontalAlignment; ++ updateUI(); ++ } ++ ++ /** ++ * This method returns the label's UI delegate. ++ * ++ * @return The label's UI delegate. ++ */ ++ public LabelUI getUI() ++ { ++ return (LabelUI) ui; ++ } ++ ++ /** ++ * This method sets the label's UI delegate. ++ * ++ * @param ui The label's UI delegate. ++ */ ++ public void setUI(LabelUI ui) ++ { ++ super.setUI(ui); ++ } ++ ++ /** ++ * This method resets the label's UI delegate to the default UI for the ++ * current look and feel. ++ */ ++ public void updateUI() ++ { ++ setUI((LabelUI) UIManager.getUI(this)); ++ } ++ ++ /** ++ * This method returns a name to identify which look and feel class will be ++ * the UI delegate for this label. ++ * ++ * @return The UIClass identifier. "LabelUI" ++ */ ++ public String getUIClassID() ++ { ++ return "LabelUI"; ++ } ++ ++ /** ++ * This method is used primarily for debugging purposes and returns a string ++ * that can be used to represent this label. ++ * ++ * @return A string to represent this label. ++ */ ++ protected String paramString() ++ { ++ return "JLabel"; ++ } ++ ++ /** ++ * This method returns the label text. ++ * ++ * @return The label text. ++ */ ++ public String getText() ++ { ++ return text; ++ } ++ ++ /** ++ * This method changes the "text" property. The given text will be painted ++ * in the label. ++ * ++ * @param newText The label's text. ++ */ ++ public void setText(String newText) ++ { ++ if (text != newText) ++ { ++ String oldText = text; ++ text = newText; ++ firePropertyChange(TEXT_CHANGED_PROPERTY, oldText, newText); ++ ++ if (text != null && text.length() <= displayedMnemonicIndex) ++ setDisplayedMnemonicIndex(text.length() - 1); ++ } ++ } ++ ++ /** ++ * This method returns the active icon. The active icon is painted when the ++ * label is enabled. ++ * ++ * @return The active icon. ++ */ ++ public Icon getIcon() ++ { ++ return icon; ++ } ++ ++ /** ++ * This method changes the "icon" property. This icon (the active icon) will ++ * be the one displayed when the label is enabled. ++ * ++ * @param newIcon The active icon. ++ */ ++ public void setIcon(Icon newIcon) ++ { ++ if (icon != newIcon) ++ { ++ Icon oldIcon = icon; ++ icon = newIcon; ++ firePropertyChange(ICON_CHANGED_PROPERTY, oldIcon, newIcon); ++ } ++ } ++ ++ /** ++ * This method returns the disabled icon. The disabled icon is painted when ++ * the label is disabled. If the disabled icon is null and the active icon ++ * is an ImageIcon, this method returns a grayed version of the icon. The ++ * grayed version of the icon becomes the disabledIcon. ++ * ++ * @return The disabled icon. ++ */ ++ public Icon getDisabledIcon() ++ { ++ if (disabledIcon == null && icon instanceof ImageIcon) ++ disabledIcon = new ImageIcon(GrayFilter.createDisabledImage(((ImageIcon) icon) ++ .getImage())); ++ ++ return disabledIcon; ++ } ++ ++ /** ++ * This method changes the "disabledIcon" property. This icon (the disabled ++ * icon) will be the one displayed when the label is disabled. ++ * ++ * @param newIcon The disabled icon. ++ */ ++ public void setDisabledIcon(Icon newIcon) ++ { ++ if (disabledIcon != newIcon) ++ { ++ Icon oldIcon = disabledIcon; ++ disabledIcon = newIcon; ++ firePropertyChange(DISABLED_ICON_CHANGED_PROPERTY, oldIcon, newIcon); ++ } ++ } ++ ++ /** ++ * This method sets the keycode that will be the label's mnemonic. If the ++ * label is used as a label for another component, the label will give ++ * focus to that component when the mnemonic is activated. ++ * ++ * @param mnemonic The keycode to use for the mnemonic. ++ */ ++ public void setDisplayedMnemonic(int mnemonic) ++ { ++ if (displayedMnemonic != mnemonic) ++ { ++ firePropertyChange(DISPLAYED_MNEMONIC_CHANGED_PROPERTY, ++ displayedMnemonic, mnemonic); ++ displayedMnemonic = mnemonic; ++ ++ if (text != null) ++ setDisplayedMnemonicIndex(text.indexOf(mnemonic)); ++ } ++ } ++ ++ /** ++ * This method sets the character that will be the mnemonic used. If the ++ * label is used as a label for another component, the label will give ++ * focus to that component when the mnemonic is activated. ++ * ++ * @param mnemonic The character to use for the mnemonic. ++ */ ++ public void setDisplayedMnemonic(char mnemonic) ++ { ++ setDisplayedMnemonic((int) mnemonic); ++ } ++ ++ /** ++ * This method returns the keycode that is used for the label's mnemonic. ++ * ++ * @return The keycode that is used for the label's mnemonic. ++ */ ++ public int getDisplayedMnemonic() ++ { ++ return (int) displayedMnemonic; ++ } ++ ++ /** ++ * This method sets which character in the text will be the underlined ++ * character. If the given index is -1, then this indicates that there is ++ * no mnemonic. If the index is less than -1 or if the index is equal to ++ * the length, this method will throw an IllegalArgumentException. ++ * ++ * @param newIndex The index of the character to underline. ++ * ++ * @throws IllegalArgumentException If index less than -1 or index equals ++ * length. ++ */ ++ public void setDisplayedMnemonicIndex(int newIndex) ++ throws IllegalArgumentException ++ { ++ if (newIndex < -1 || (text != null && newIndex >= text.length())) ++ throw new IllegalArgumentException(); ++ ++ if (text == null || text.charAt(newIndex) != displayedMnemonic) ++ newIndex = -1; ++ ++ if (newIndex != displayedMnemonicIndex) ++ { ++ firePropertyChange(DISPLAYED_MNEMONIC_INDEX_CHANGED_PROPERTY, ++ displayedMnemonicIndex, newIndex); ++ displayedMnemonicIndex = newIndex; ++ } ++ } ++ ++ /** ++ * This method returns which character in the text will be the underlined ++ * character. ++ * ++ * @return The index of the character that will be underlined. ++ */ ++ public int getDisplayedMnemonicIndex() ++ { ++ return displayedMnemonicIndex; ++ } ++ ++ /** ++ * This method ensures that the key is valid as a horizontal alignment. ++ * Valid keys are: LEFT, CENTER, RIGHT, LEADING, TRAILING ++ * ++ * @param key The key to check. ++ * @param message The message of the exception to be thrown if the key is ++ * invalid. ++ * ++ * @return The key if it's valid. ++ * ++ * @throws IllegalArgumentException If the key is invalid. ++ */ ++ protected int checkHorizontalKey(int key, String message) ++ { ++ if (key != LEFT && key != CENTER && key != RIGHT && key != LEADING ++ && key != TRAILING) ++ throw new IllegalArgumentException(message); ++ else ++ return key; ++ } ++ ++ /** ++ * This method ensures that the key is valid as a vertical alignment. Valid ++ * keys are: TOP, CENTER, and BOTTOM. ++ * ++ * @param key The key to check. ++ * @param message The message of the exception to be thrown if the key is ++ * invalid. ++ * ++ * @return The key if it's valid. ++ * ++ * @throws IllegalArgumentException If the key is invalid. ++ */ ++ protected int checkVerticalKey(int key, String message) ++ { ++ if (key != TOP && key != BOTTOM && key != CENTER) ++ throw new IllegalArgumentException(message); ++ else ++ return key; ++ } ++ ++ /** ++ * This method returns the gap between the icon and the text. ++ * ++ * @return The gap between the icon and the text. ++ */ ++ public int getIconTextGap() ++ { ++ return iconTextGap; ++ } ++ ++ /** ++ * This method changes the "iconTextGap" property. The iconTextGap ++ * determines how much space there is between the icon and the text. ++ * ++ * @param newGap The gap between the icon and the text. ++ */ ++ public void setIconTextGap(int newGap) ++ { ++ if (iconTextGap != newGap) ++ { ++ firePropertyChange(ICON_TEXT_GAP_CHANGED_PROPERTY, iconTextGap, newGap); ++ iconTextGap = newGap; ++ } ++ } ++ ++ /** ++ * This method returns the vertical alignment of the label. ++ * ++ * @return The vertical alignment of the label. ++ */ ++ public int getVerticalAlignment() ++ { ++ return verticalAlignment; ++ } ++ ++ /** ++ * This method changes the "verticalAlignment" property of the label. The ++ * vertical alignment determines how where the label will be placed ++ * vertically. If the alignment is not valid, it will default to the ++ * center. ++ * ++ * @param alignment The vertical alignment of the label. ++ */ ++ public void setVerticalAlignment(int alignment) ++ { ++ if (alignment != verticalAlignment) ++ { ++ int oldAlignment = verticalAlignment; ++ verticalAlignment = checkVerticalKey(alignment, "verticalAlignment"); ++ firePropertyChange(VERTICAL_ALIGNMENT_CHANGED_PROPERTY, oldAlignment, ++ verticalAlignment); ++ } ++ } ++ ++ /** ++ * This method returns the horziontal alignment of the label. ++ * ++ * @return The horizontal alignment of the label. ++ */ ++ public int getHorizontalAlignment() ++ { ++ return horizontalAlignment; ++ } ++ ++ /** ++ * This method changes the "horizontalAlignment" property. The horizontal ++ * alignment determines where the label will be placed horizontally. ++ * ++ * @param alignment The horizontal alignment of the label. ++ */ ++ public void setHorizontalAlignment(int alignment) ++ { ++ int oldAlignment = horizontalAlignment; ++ horizontalAlignment = checkHorizontalKey(alignment, "horizontalAlignment"); ++ firePropertyChange(HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY, oldAlignment, ++ horizontalAlignment); ++ } ++ ++ /** ++ * This method returns the vertical text position of the label. ++ * ++ * @return The vertical text position of the label. ++ */ ++ public int getVerticalTextPosition() ++ { ++ return verticalTextPosition; ++ } ++ ++ /** ++ * This method changes the "verticalTextPosition" property of the label. The ++ * vertical text position determines where the text will be placed ++ * vertically relative to the icon. ++ * ++ * @param textPosition The vertical text position. ++ */ ++ public void setVerticalTextPosition(int textPosition) ++ { ++ if (textPosition != verticalTextPosition) ++ { ++ int oldPos = verticalTextPosition; ++ verticalTextPosition = checkVerticalKey(textPosition, ++ "verticalTextPosition"); ++ firePropertyChange(VERTICAL_TEXT_POSITION_CHANGED_PROPERTY, oldPos, ++ verticalTextPosition); ++ } ++ } ++ ++ /** ++ * This method returns the horizontal text position of the label. ++ * ++ * @return The horizontal text position. ++ */ ++ public int getHorizontalTextPosition() ++ { ++ return horizontalTextPosition; ++ } ++ ++ /** ++ * This method changes the "horizontalTextPosition" property of the label. ++ * The horizontal text position determines where the text will be placed ++ * horizontally relative to the icon. ++ * ++ * @param textPosition The horizontal text position. ++ */ ++ public void setHorizontalTextPosition(int textPosition) ++ { ++ if (textPosition != horizontalTextPosition) ++ { ++ int oldPos = horizontalTextPosition; ++ horizontalTextPosition = checkHorizontalKey(textPosition, ++ "horizontalTextPosition"); ++ firePropertyChange(HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY, oldPos, ++ horizontalTextPosition); ++ } ++ } ++ ++ /** ++ * This method simply returns false if the current icon image (current icon ++ * will depend on whether the label is enabled) is not equal to the passed ++ * in image. ++ * ++ * @param img The image to check. ++ * @param infoflags The bitwise inclusive OR of ABORT, ALLBITS, ERROR, ++ * FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, and WIDTH ++ * @param x The x position ++ * @param y The y position ++ * @param w The width ++ * @param h The height ++ * ++ * @return Whether the current icon image is equal to the image given. ++ */ ++ public boolean imageUpdate(Image img, int infoflags, int x, int y, int w, ++ int h) ++ { ++ Icon currIcon = isEnabled() ? icon : disabledIcon; ++ ++ // XXX: Is this the correct way to check for image equality? ++ if (currIcon != null && currIcon instanceof ImageIcon) ++ return (((ImageIcon) currIcon).getImage() == img); ++ ++ return false; ++ } ++ ++ /** ++ * This method returns the component that the label gives focus to when the ++ * mnemonic is activated. ++ * ++ * @return The component that gets focus when the label's mnemonic is ++ * activated. ++ */ ++ public Component getLabelFor() ++ { ++ return labelFor; ++ } ++ ++ /** ++ * This method changes the "labelFor" property. The component that the label ++ * is acting as a label for will request focus when the label's mnemonic ++ * is activated. ++ * ++ * @param c The component that gets focus when the label's mnemonic is ++ * activated. ++ */ ++ public void setLabelFor(Component c) ++ { ++ if (c != labelFor) ++ { ++ firePropertyChange(LABEL_FOR_CHANGED_PROPERTY, labelFor, c); ++ labelFor = c; ++ } ++ } ++ ++ /** ++ * This method overrides setFont so that we can call for a repaint after the ++ * font is changed. ++ * ++ * @param f The font for this label. ++ */ ++ public void setFont(Font f) ++ { ++ super.setFont(f); ++ repaint(); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return ++ */ ++ public AccessibleContext getAccessibleContext() ++ { ++ return null; ++ } + } +Index: javax/swing/JLayeredPane.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JLayeredPane.java,v +retrieving revision 1.6 +diff -u -r1.6 JLayeredPane.java +--- javax/swing/JLayeredPane.java 9 Jan 2004 22:52:18 -0000 1.6 ++++ javax/swing/JLayeredPane.java 6 Sep 2004 16:35:56 -0000 +@@ -82,17 +82,18 @@ + *
    An offset into a layer's "logical drawing order". Layer position 0 + * is drawn last. Layer position -1 is a synonym for the first layer + * position (the logical "bottom").
    ++ * + * + *

    Note: the layer numbering order is the reverse of the + * component indexing and position order

    + * + * @author Graydon Hoare + */ +- + public class JLayeredPane extends JComponent implements Accessible + { +- +- public static String LAYER_PROPERTY = "LAYER_PROPERTY"; ++ private static final long serialVersionUID = 5534920399324590459L; ++ ++ public static final String LAYER_PROPERTY = "layeredContainerLayer"; + + public static Integer FRAME_CONTENT_LAYER = new Integer (-30000); + +@@ -105,7 +106,7 @@ + TreeMap layers; // Layer Number (Integer) -> Layer Size (Integer) + Hashtable componentToLayer; // Component -> Layer Number (Integer) + +- JLayeredPane() ++ public JLayeredPane() + { + layers = new TreeMap (); + componentToLayer = new Hashtable (); +@@ -152,7 +153,7 @@ + Map.Entry pair = (Map.Entry) i.next(); + Integer layerNum = (Integer) pair.getKey (); + Integer layerSz = (Integer) pair.getValue (); +- if (layerNum == layer) ++ if (layerNum.intValue() == layer.intValue()) + { + ret[0] = ret[1] - layerSz.intValue (); + return ret; +@@ -313,7 +314,7 @@ + int bot = range[1]; + if (position == -1) + position = (bot - top) - 1; +- int targ = top + position; ++ int targ = Math.min(top + position, bot-1); + int curr = -1; + + Component[] comps = getComponents(); +@@ -330,7 +331,7 @@ + throw new IllegalArgumentException (); + + super.swapComponents (curr, targ); +- validate(); ++ revalidate(); + repaint(); + } + +@@ -493,6 +494,8 @@ + decrLayer (layer); + componentToLayer.remove (c); + super.remove (index); ++ revalidate(); ++ repaint(); + } + + /** +@@ -536,9 +539,10 @@ + int layer, + int position) + { +- componentToLayer.put (c, getObjectForLayer (layer)); ++ remove(c); ++ add(c, getObjectForLayer (layer)); + setPosition(c, position); +- validate(); ++ revalidate(); + repaint(); + } + +@@ -563,13 +567,13 @@ + else + layer = DEFAULT_LAYER; + +- int newIdx = insertIndexForLayer(layer.intValue (), -1); ++ int newIdx = insertIndexForLayer(layer.intValue (), index); + + componentToLayer.put (comp, layer); + incrLayer (layer); + + super.addImpl(comp, null, newIdx); +- validate(); ++ revalidate(); + repaint(); + } + } +Index: javax/swing/JList.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JList.java,v +retrieving revision 1.2 +diff -u -r1.2 JList.java +--- javax/swing/JList.java 11 Jun 2003 13:20:39 -0000 1.2 ++++ javax/swing/JList.java 6 Sep 2004 16:35:56 -0000 +@@ -1,4 +1,4 @@ +-/* JList.java -- ++/* JList.java -- + Copyright (C) 2002, 2003 Free Software Foundation, Inc. + + This file is part of GNU Classpath. +@@ -35,204 +35,1164 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing; + + import java.awt.Color; ++import java.awt.Component; ++import java.awt.ComponentOrientation; + import java.awt.Dimension; ++import java.awt.Point; + import java.awt.Rectangle; + import java.util.Vector; + import javax.accessibility.Accessible; + import javax.accessibility.AccessibleContext; + import javax.swing.event.ListDataEvent; + import javax.swing.event.ListDataListener; ++import javax.swing.event.ListSelectionEvent; + import javax.swing.event.ListSelectionListener; + import javax.swing.plaf.ListUI; + +-public class JList extends JComponent implements Accessible, Scrollable +-{ +- Color select_back, select_fore; +- ListCellRenderer render; +- int visibles = 8; +- +- ListModel model; +- ListSelectionModel sel_model; +- +- public JList() +- { +- init(); +- } +- +- public JList(Object[] listData) +- { +- init(); +- setListData(listData); +- } +- +- +- public JList(Vector listData) +- { +- init(); +- setListData(listData); +- } +- +- +- public JList(ListModel listData) +- { +- init(); +- setModel(listData); +- } +- void init() +- { +- render = new DefaultCellRenderer(); +- +- sel_model = new DefaultListSelectionModel(); +- setModel(new DefaultListModel()); + +- select_back = new Color(0,0,255); +- select_fore = new Color(255,255,255); +- +- updateUI(); +- } +- +- +- public int getVisibleRowCount() +- { return visibles; } +- public void setVisibleRowCount(int visibleRowCount) +- { +- visibles = visibleRowCount; +- invalidate(); +- repaint(); +- } +- +- void addListSelectionListener(ListSelectionListener listener) +- { sel_model.addListSelectionListener(listener); } +- void removeListSelectionListener(ListSelectionListener listener) +- { sel_model.removeListSelectionListener(listener); } +- +- void setSelectionMode(int a) +- { sel_model.setSelectionMode(a); } +- void setSelectedIndex(int a) +- { sel_model.setSelectionInterval(a,a); } +- int getSelectedIndex() +- { return sel_model.getMinSelectionIndex(); } +- Object getSelectedValue() +- { +- int index = getSelectedIndex(); +- if (index == -1) +- return null; +- return getModel().getElementAt(index); +- } +- +- Color getSelectionBackground() +- { return select_back; } +- Color getSelectionForeground() +- { return select_fore; } ++/** ++ *

    This class is a facade over three separate objects: {@link ++ * javax.swing.ListModel}, {@link javax.swing.ListSelectionModel} and ++ * {@link javax.swing.plaf.ListUI}. The facade represents a unified "list" ++ * concept, with independently replacable (possibly client-provided) models ++ * for its contents and its current selection. In addition, each element in ++ * the list is rendered via a strategy class {@link ++ * javax.swing.ListCellRenderer}.

    ++ * ++ *

    Lists have many properties, some of which are stored in this class ++ * while others are delegated to the list's model or selection. The ++ * following properties are available:

    ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ *
    Property Stored inBound?
    accessibleContext list no
    anchorSelectionIndex selectionno
    cellRenderer list yes
    dragEnabled list no
    firstVisibleIndex list no
    fixedCellHeight list yes
    fixedCellWidth list yes
    lastVisibleIndex list no
    layoutOrientation list yes
    leadSelectionIndex selectionno
    maxSelectionIndex selectionno
    minSelectionIndex selectionno
    model list yes
    opaque list no
    preferredScrollableViewportSizelist no
    prototypeCellValue list yes
    scrollableTracksViewportHeight list no
    scrollableTracksViewportWidth list no
    selectedIndex selectionno
    selectedIndices selectionno
    selectedValue model no
    selectedValues model no
    selectionBackground list yes
    selectionEmpty selectionno
    selectionForeground list yes
    selectionMode selectionno
    selectionModel list yes
    UI list yes
    UIClassID list no
    valueIsAdjusting list no
    visibleRowCount list no
    ++ * ++ * @author Graydon Hoare (graydon@redhat.com) ++ */ + ++public class JList extends JComponent implements Accessible, Scrollable ++{ ++ private static final long serialVersionUID = 4406629526391098046L; + +- public void setListData(final Object[] listData) ++ /** ++ * Constant value used in "layoutOrientation" property. This value means ++ * that cells are laid out in a single vertical column. This is the default. ++ */ ++ public static final int VERTICAL = 0; ++ ++ /** ++ * Constant value used in "layoutOrientation" property. This value means ++ * that cells are laid out in multiple columns "newspaper style", filling ++ * vertically first, then horizontally. ++ */ ++ public static final int VERTICAL_WRAP = 1; ++ ++ /** ++ * Constant value used in "layoutOrientation" property. This value means ++ * that cells are laid out in multiple columns "newspaper style", ++ * filling horizontally first, then vertically. ++ */ ++ public static final int HORIZONTAL_WRAP = 2; ++ ++ /** Fired in a PropertyChangeEvent when the "cellRenderer" property changes. */ ++ public static final String CELL_RENDERER_PROPERTY_CHANGED = "cellRenderer"; ++ ++ /** Fired in a PropertyChangeEvent when the "fixedCellHeight" property changes. */ ++ public static final String FIXED_CELL_HEIGHT_PROPERTY_CHANGED = "fixedCellHeight"; ++ ++ /** Fired in a PropertyChangeEvent when the "fixedCellWidth" property changes. */ ++ public static final String FIXED_CELL_WIDTH_PROPERTY_CHANGED = "fixedCellWidth"; ++ ++ /** Fired in a PropertyChangeEvent when the "layoutOrientation" property changes. */ ++ public static final String LAYOUT_ORIENTATION_PROPERTY_CHANGED = "layoutOrientation"; ++ ++ /** Fired in a PropertyChangeEvent when the "model" property changes. */ ++ public static final String MODEL_PROPERTY_CHANGED = "model"; ++ ++ /** Fired in a PropertyChangeEvent when the "prototypeCellValue" property changes. */ ++ public static final String PROTOTYPE_CELL_VALUE_PROPERTY_CHANGED = "prototypeCellValue"; ++ ++ /** Fired in a PropertyChangeEvent when the "selectionBackground" property changes. */ ++ public static final String SELECTION_BACKGROUND_PROPERTY_CHANGED = "selectionBackground"; ++ ++ /** Fired in a PropertyChangeEvent when the "selectionForeground" property changes. */ ++ public static final String SELECTION_FOREGROUND_PROPERTY_CHANGED = "selectionForeground"; ++ ++ /** Fired in a PropertyChangeEvent when the "selectionModel" property changes. */ ++ public static final String SELECTION_MODEL_PROPERTY_CHANGED = "selectionModel"; ++ ++ ++ /** ++ * This property indicates whether "drag and drop" functions are enabled ++ * on the list. ++ */ ++ boolean dragEnabled; ++ ++ /** This property provides a strategy for rendering cells in the list. */ ++ ListCellRenderer cellRenderer; ++ ++ /** ++ * This property indicates an fixed width to assign to all cells in the ++ * list. If its value is -1, no width has been ++ * assigned. This value can be set explicitly, or implicitly by setting ++ * the {@link #prototypeCellValue} property. ++ */ ++ int fixedCellWidth; ++ ++ /** ++ * This property indicates an fixed height to assign to all cells in the ++ * list. If its value is -1, no height has been ++ * assigned. This value can be set explicitly, or implicitly by setting ++ * the {@link #prototypeCellValue} property. ++ */ ++ int fixedCellHeight; ++ ++ /** ++ * This property holds the current layout orientation of the list, which ++ * is one of the integer constants {@link #VERTICAL}, {@link ++ * #VERTICAL_WRAP}, or {@link #HORIZONTAL_WRAP}. ++ */ ++ ++ int layoutOrientation; ++ ++ /** This property holds the data elements displayed by the list. */ ++ ListModel model; ++ ++ /** ++ *

    This property holds a reference to a "prototype" data value -- ++ * typically a String -- which is used to calculate the {@link ++ * #fixedCellWidth} and {@link #fixedCellHeight} properties, using the ++ * {@link #cellRenderer} property to acquire a component to render the ++ * prototype.

    ++ * ++ *

    It is important that you not set this value to a ++ * component. It has to be a data value such as the objects you ++ * would find in the list's model. Setting it to a component will have ++ * undefined (and undesirable) affects.

    ++ */ ++ Object prototypeCellValue; ++ ++ /** ++ * This property specifies a foreground color for the selected cells in ++ * the list. When {@link ListCellRenderer.getListCellRendererComponent} ++ * is called with a selected cell object, the component returned will ++ * have its "foreground" set to this color. ++ */ ++ Color selectionBackground; ++ ++ /** ++ * This property specifies a background color for the selected cells in ++ * the list. When {@link ListCellRenderer.getListCellRendererComponent} ++ * is called with a selected cell object, the component returned will ++ * have its "background" property set to this color. ++ */ ++ Color selectionForeground; ++ ++ /** ++ * This property holds a description of which data elements in the {@link ++ * #model} property should be considered "selected", when displaying and ++ * interacting with the list. ++ */ ++ ListSelectionModel selectionModel; ++ ++ ++ /** ++ * This property indicates that the list's selection is currently ++ * "adjusting" -- perhaps due to a user actively dragging the mouse over ++ * multiple list elements -- and is therefore likely to change again in ++ * the near future. A {@link ListSelectionListener} might choose to delay ++ * updating its view of the list's selection until this property is ++ * false, meaning that the adjustment has completed. ++ */ ++ boolean valueIsAdjusting; ++ ++ /** ++ * This property indicates a preference for the number of rows ++ * displayed in the list, and will scale the ++ * {@link #preferredScrollableViewportSize} property accordingly. The actual ++ * number of displayed rows, when the list is placed in a real {@link ++ * Viewport} or other component, may be greater or less than this number. ++ */ ++ int visibleRowCount; ++ ++ ++ ++ /** ++ * Fire a {@link ListSelectionEvent} to all the registered ListSelectionListeners. ++ */ ++ void fireSelectionValueChanged(int firstIndex, int lastIndex, boolean isAdjusting) ++ { ++ ListSelectionEvent evt = new ListSelectionEvent(this, firstIndex, lastIndex, isAdjusting); ++ ListSelectionListener listeners[] = getListSelectionListeners(); ++ for (int i = 0; i < listeners.length; ++i) ++ { ++ listeners[i].valueChanged(evt); ++ } ++ } ++ ++ ++ /** ++ * This private listener propagates {@link ListSelectionEvent} events ++ * from the list's "selectionModel" property to the list's {@link ++ * ListSelectionListener} listeners. It also listens to {@link ++ * ListDataEvent} events from the list's {@link #model} property. If this ++ * class receives either type of event, it triggers repainting of the ++ * list. ++ */ ++ private class ListListener ++ implements ListSelectionListener, ListDataListener ++ { ++ // ListDataListener events ++ public void contentsChanged(ListDataEvent event) + { +- class AL extends AbstractListModel +- { +- public int getSize() { return listData.length; } +- public Object getElementAt(int i) { return listData[i]; } +- }; +- +- setModel (new AL()); ++ JList.this.revalidate(); ++ JList.this.repaint(); + } +- +- public void setListData(final Vector listData) ++ public void intervalAdded(ListDataEvent event) + { +- class AL extends AbstractListModel +- { +- public int getSize() { return listData.size(); } +- public Object getElementAt(int i) { return listData.elementAt(i); } +- }; +- +- setModel (new AL()); ++ JList.this.revalidate(); ++ JList.this.repaint(); + } +- +- +- public ListCellRenderer getCellRenderer() +- { return render; } +- public void setCellRenderer(ListCellRenderer cellRenderer) ++ public void intervalRemoved(ListDataEvent event) + { +- render = cellRenderer; +- invalidate(); +- repaint(); ++ JList.this.revalidate(); ++ JList.this.repaint(); + } +- +- public void setModel(ListModel model) ++ // ListSelectionListener events ++ public void valueChanged(ListSelectionEvent event) + { +- ListDataListener l = new ListDataListener() +- { +- public void intervalAdded(ListDataEvent e) { +- repaint(); +- } +- public void intervalRemoved(ListDataEvent e) { +- repaint(); +- } +- public void contentsChanged(ListDataEvent e) { +- repaint(); +- } +- }; +- +- this.model = model; +- model.addListDataListener(l); ++ JList.this.fireSelectionValueChanged(event.getFirstIndex(), ++ event.getLastIndex(), ++ event.getValueIsAdjusting()); ++ JList.this.repaint(); + } ++ }; + +- public ListModel getModel() +- { return model; } +- +- +- public ListUI getUI() +- { return (ListUI) ui; } +- public void setUI(ListUI ui) +- { super.setUI(ui); } +- +- public void updateUI() +- { +- setUI((ListUI)UIManager.getUI(this)); +- } +- +- public String getUIClassID() +- { +- return "JList"; +- } +- +- +- public AccessibleContext getAccessibleContext() +- { +- return null; +- } +- +- public Dimension getPreferredScrollableViewportSize() +- { ++ /** ++ * Shared ListListener instance, subscribed to both the current {@link ++ * #model} and {@link #selectionModel} properties of the list. ++ */ ++ ListListener listListener; ++ ++ ++ /** ++ * Creates a new JList object. ++ */ ++ public JList() ++ { ++ init(); ++ } ++ ++ /** ++ * Creates a new JList object. ++ * ++ * @param listData Initial data to populate the list with ++ */ ++ public JList(Object[] listData) ++ { ++ init(); ++ setListData(listData); ++ } ++ ++ /** ++ * Creates a new JList object. ++ * ++ * @param listData Initial data to populate the list with ++ */ ++ public JList(Vector listData) ++ { ++ init(); ++ setListData(listData); ++ } ++ ++ /** ++ * Creates a new JList object. ++ * ++ * @param listData Initial data to populate the list with ++ */ ++ public JList(ListModel listData) ++ { ++ init(); ++ setModel(listData); ++ } ++ ++ void init() ++ { ++ dragEnabled = false; ++ fixedCellHeight = -1; ++ fixedCellWidth = -1; ++ layoutOrientation = VERTICAL; ++ opaque = true; ++ valueIsAdjusting = false; ++ visibleRowCount = 8; ++ ++ cellRenderer = new DefaultListCellRenderer(); ++ listListener = new ListListener(); ++ ++ setModel(new DefaultListModel()); ++ setSelectionModel(new DefaultListSelectionModel()); ++ ++ updateUI(); ++ } ++ ++ /** ++ * Gets the value of the {@link #fixedCellHeight} property. This property ++ * may be -1 to indicate that no cell height has been ++ * set. This property is also set implicitly when the ++ * {@link #prototypeCellValue} property is set. ++ * ++ * @return The current value of the property ++ * ++ * @see #fixedCellHeight ++ * @see #setFixedCellHeight ++ * @see #setPrototypeCellValue ++ */ ++ public int getFixedCellHeight() ++ { ++ return fixedCellHeight; ++ } ++ ++ /** ++ * Sets the value of the {@link #fixedCellHeight} property. This property ++ * may be -1 to indicate that no cell height has been ++ * set. This property is also set implicitly when the {@link ++ * #prototypeCellValue} property is set, but setting it explicitly ++ * overrides the height computed from {@link #prototypeCellValue}. ++ * ++ * @see #getFixedCellHeight ++ * @see #getPrototypeCellValue ++ */ ++ public void setFixedCellHeight(int h) ++ { ++ int old = fixedCellHeight; ++ fixedCellHeight = h; ++ firePropertyChange(FIXED_CELL_WIDTH_PROPERTY_CHANGED, old, h); ++ } ++ ++ ++ /** ++ * Gets the value of the {@link #fixedCellWidth} property. This property ++ * may be -1 to indicate that no cell width has been ++ * set. This property is also set implicitly when the {@link ++ * #prototypeCellValue} property is set. ++ * ++ * @return The current value of the property ++ * ++ * @see #setFixedCellWidth ++ * @see #setPrototypeCellValue ++ */ ++ public int getFixedCellWidth() ++ { ++ return fixedCellWidth; ++ } ++ ++ /** ++ * Sets the value of the {@link #fixedCellWidth} property. This property ++ * may be -1 to indicate that no cell width has been ++ * set. This property is also set implicitly when the {@link ++ * #prototypeCellValue} property is set, but setting it explicitly ++ * overrides the width computed from {@link #prototypeCellValue}. ++ * ++ * @see #getFixedCellWidth ++ * @see #getPrototypeCellValue ++ */ ++ public void setFixedCellWidth(int h) ++ { ++ int old = fixedCellHeight; ++ fixedCellHeight = h; ++ firePropertyChange(FIXED_CELL_HEIGHT_PROPERTY_CHANGED, old, h); ++ } ++ ++ ++ /** ++ * Gets the value of the {@link #visibleRowCount} property. ++ * ++ * @return the current value of the property. ++ */ ++ ++ public int getVisibleRowCount() ++ { ++ return visibleRowCount; ++ } ++ ++ /** ++ * Sets the value of the {@link #visibleRowCount} property. ++ * ++ * @param visibleRowCount The new property value ++ */ ++ public void setVisibleRowCount(int vc) ++ { ++ visibleRowCount = vc; ++ revalidate(); ++ repaint(); ++ } ++ ++ /** ++ * Adds a {@link ListSelectionListener} to the listener list for this ++ * list. The listener will be called back with a {@link ++ * ListSelectionEvent} any time the list's {@link #selectionModel} ++ * property changes. The source of such events will be the JList, ++ * not the selection model. ++ * ++ * @param listener The new listener to add ++ */ ++ public void addListSelectionListener(ListSelectionListener listener) ++ { ++ listenerList.add (ListSelectionListener.class, listener); ++ } ++ ++ /** ++ * Removes a {@link ListSelectionListener} from the listener list for ++ * this list. The listener will no longer be called when the list's ++ * {@link #selectionModel} changes. ++ * ++ * @param listener The listener to remove ++ */ ++ public void removeListSelectionListener(ListSelectionListener listener) ++ { ++ listenerList.remove(ListSelectionListener.class, listener); ++ } ++ ++ /** ++ * Returns an array of all ListSelectionListeners subscribed to this ++ * list. ++ * ++ * @return The current subscribed listeners ++ * ++ * @since 1.4 ++ */ ++ public ListSelectionListener[] getListSelectionListeners() ++ { ++ return (ListSelectionListener[]) getListeners(ListSelectionListener.class); ++ } ++ ++ /** ++ * Sets the list's "selectionMode" property, which simply mirrors the ++ * same property on the list's {@link #selectionModel} property. This ++ * property should be one of the integer constants ++ * SINGLE_SELECTION, SINGLE_INTERVAL_SELECTION, ++ * or MULTIPLE_INTERVAL_SELECTION from the {@link ++ * ListSelectionModel} interface. ++ * ++ * @param a The new selection mode ++ */ ++ public void setSelectionMode(int a) ++ { ++ selectionModel.setSelectionMode(a); ++ } ++ ++ /** ++ * Adds the interval [a,a] to the set of selections managed ++ * by this list's {@link #selectionModel} property. Depending on the ++ * selection mode, this may cause existing selections to become invalid, ++ * or may simply expand the set of selections. ++ * ++ * @param a A number in the half-open range [0, x) where ++ * x = getModel.getSize(), indicating the index of an ++ * element in the list to select. ++ * ++ * @see #setSelectionMode ++ * @see #selectionModel ++ */ ++ public void setSelectedIndex(int a) ++ { ++ selectionModel.setSelectionInterval(a, a); ++ } ++ ++ /** ++ * For each element a[i] of the provided array ++ * a, calls {@link #setSelectedIndex} on a[i]. ++ * ++ * @see #setSelectionMode ++ * @see #selectionModel ++ */ ++ public void setSelectedIndices(int [] a) ++ { ++ for (int i = 0; i < a.length; ++i) ++ setSelectedIndex(a[i]); ++ } ++ ++ /** ++ * Returns the minimum index of an element in the list which is currently ++ * selected. ++ * ++ * @return A number in the half-open range [0, x) where ++ * x = getModel.getSize(), indicating the minimum index of ++ * an element in the list for which the element is selected, or ++ * -1 if no elements are selected ++ */ ++ public int getSelectedIndex() ++ { ++ return selectionModel.getMinSelectionIndex(); ++ } ++ ++ /** ++ * Returns true if the model's selection is empty, otherwise ++ * false. ++ * ++ * @return The return value of {@link ListSelectionModel#isSelectionEmpty} ++ */ ++ public boolean isSelectionEmpty() ++ { ++ return selectionModel.isSelectionEmpty(); ++ } ++ ++ /** ++ * Returns the list index of the upper left or upper right corner of the ++ * {@link #visibleRect} property, depending on the {@link ++ * #componentOrientation} property. ++ * ++ * @return The index of the first visible list cell, or -1 ++ * if none is visible. ++ */ ++ public int getFirstVisibleIndex() ++ { ++ ComponentOrientation or = getComponentOrientation(); ++ Rectangle r = getVisibleRect(); ++ if (or == ComponentOrientation.RIGHT_TO_LEFT) ++ r.translate((int) r.getWidth(), 0); ++ return getUI().locationToIndex(this, r.getLocation()); ++ } ++ ++ ++ /** ++ * Returns index of the cell to which specified location is closest to ++ * @param location for which to look for in the list ++ * ++ * @return index of the cell to which specified location is closest to. ++ */ ++ public int locationToIndex(Point location) { ++ return getUI().locationToIndex(this, location); ++ } ++ ++ /** ++ * Returns location of the cell located at the specified index in the list. ++ * @param index of the cell for which location will be determined ++ * ++ * @return location of the cell located at the specified index in the list. ++ */ ++ public Point indexToLocation(int index){ ++ //FIXME: Need to implement. + return null; +- } +- +- public int getScrollableUnitIncrement(Rectangle visibleRect, +- int orientation, +- int direction) +- { +- return 1; +- } +- +- public int getScrollableBlockIncrement(Rectangle visibleRect, +- int orientation, +- int direction) +- { +- return 1; +- } ++ } + +- public boolean getScrollableTracksViewportWidth() +- { +- return false; +- } ++ /** ++ * Returns the list index of the lower right or lower left corner of the ++ * {@link #visibleRect} property, depending on the {@link ++ * #componentOrientation} property. ++ * ++ * @return The index of the first visible list cell, or -1 ++ * if none is visible. ++ */ ++ public int getLastVisibleIndex() ++ { ++ ComponentOrientation or = getComponentOrientation(); ++ Rectangle r = getVisibleRect(); ++ r.translate(0, (int) r.getHeight()); ++ if (or == ComponentOrientation.LEFT_TO_RIGHT) ++ r.translate((int) r.getWidth(), 0); ++ return getUI().locationToIndex(this, r.getLocation()); ++ } ++ ++ /** ++ * Returns the indices of values in the {@link #model} property which are ++ * selected. ++ * ++ * @return An array of model indices, each of which is selected according ++ * to the {@link #selection} property ++ */ ++ public int[] getSelectedIndices() ++ { ++ int lo, hi, n, i, j; ++ if (selectionModel.isSelectionEmpty()) ++ return new int[0]; ++ lo = selectionModel.getMinSelectionIndex(); ++ hi = selectionModel.getMaxSelectionIndex(); ++ n = 0; ++ for (i = lo; i < hi; ++i) ++ if (selectionModel.isSelectedIndex(i)) ++ n++; ++ int [] v = new int[n]; ++ j = 0; ++ for (i = lo; i < hi; ++i) ++ if (selectionModel.isSelectedIndex(i)) ++ v[j++] = i; ++ return v; ++ } ++ ++ /** ++ * Indicates whether the list element at a given index value is ++ * currently selected. ++ * ++ * @param a The index to check ++ * @return true if a is the index of a selected ++ * list element ++ */ ++ public boolean isSelectedIndex(int a) ++ { ++ return selectionModel.isSelectedIndex(a); ++ } ++ ++ /** ++ * Returns the first value in the list's {@link #model} property which is ++ * selected, according to the list's {@link #selectionModel} property. ++ * This is equivalent to calling ++ * getModel()getElementAt(getSelectedIndex()), with a check ++ * for the special index value of -1 which returns null ++ * null. ++ * ++ * @return The first selected element, or null if no element ++ * is selected. ++ * ++ * @see getSelectedValues ++ */ ++ public Object getSelectedValue() ++ { ++ int index = getSelectedIndex(); ++ if (index == -1) ++ return null; ++ return getModel().getElementAt(index); ++ } + +- public boolean getScrollableTracksViewportHeight() +- { +- return false; +- } +- ++ /** ++ * Returns all the values in the list's {@link #model} property which ++ * are selected, according to the list's {@link #selectionModel} property. ++ * ++ * @return An array containing all the selected values ++ * ++ * @see getSelectedValue ++ */ ++ public Object[] getSelectedValues() ++ { ++ int [] idx = getSelectedIndices(); ++ Object [] v = new Object[idx.length]; ++ for (int i = 0; i < idx.length; ++i) ++ v[i] = getModel().getElementAt(i); ++ return v; ++ } ++ ++ /** ++ * Gets the value of the {@link #selectionBackground} property. ++ * ++ * @return The current value of the property ++ */ ++ public Color getSelectionBackground() ++ { ++ return selectionBackground; ++ } ++ ++ /** ++ * Sets the value of the {@link #selectionBackground} property. ++ * ++ * @param c The new value of the property ++ */ ++ public void setSelectionBackground(Color c) ++ { ++ Color old = selectionBackground; ++ selectionBackground = c; ++ firePropertyChange(SELECTION_BACKGROUND_PROPERTY_CHANGED, old, c); ++ repaint(); ++ } ++ ++ /** ++ * Gets the value of the {@link #selectionForeground} property. ++ * ++ * @return The current value of the property ++ */ ++ public Color getSelectionForeground() ++ { ++ return selectionForeground; ++ } ++ ++ /** ++ * Sets the value of the {@link #selectionForeground} property. ++ * ++ * @param c The new value of the property ++ */ ++ public void setSelectionForeground(Color c) ++ { ++ Color old = selectionForeground; ++ selectionForeground = c; ++ firePropertyChange(SELECTION_FOREGROUND_PROPERTY_CHANGED, old, c); ++ } ++ ++ /** ++ * Sets the selection to cover only the specified value, if it ++ * exists in the model. ++ * ++ * @param obj The object to select ++ * @param scroll Whether to scroll the list to make the newly selected ++ * value visible ++ * ++ * @see #ensureIndexIsVisible ++ */ ++ ++ public void setSelectedValue(Object obj, boolean scroll) ++ { ++ for (int i = 0; i < model.getSize(); ++i) ++ { ++ if (model.getElementAt(i).equals(obj)) ++ { ++ setSelectedIndex(i); ++ if (scroll) ++ ensureIndexIsVisible(i); ++ break; ++ } ++ } ++ } ++ ++ /** ++ * Scrolls this list to make the specified cell visible. This ++ * only works if the list is contained within a viewport. ++ * ++ * @param i The list index to make visible ++ * ++ * @see JComponent#scrollRectToVisible ++ */ ++ public void ensureIndexIsVisible(int i) ++ { ++ scrollRectToVisible(getUI().getCellBounds(this, i, i)); ++ } ++ ++ /** ++ * Sets the {@link #model} property of the list to a new anonymous ++ * {@link AbstractListModel} subclass which accesses the provided Object ++ * array directly. ++ * ++ * @param listData The object array to build a new list model on ++ * @see #setModel ++ */ ++ public void setListData(final Object[] listData) ++ { ++ setModel(new AbstractListModel() ++ { ++ public int getSize() ++ { ++ return listData.length; ++ } ++ ++ public Object getElementAt(int i) ++ { ++ return listData[i]; ++ } ++ }); ++ } ++ ++ /** ++ * Sets the {@link #model} property of the list to a new anonymous {@link ++ * AbstractListModel} subclass which accesses the provided vector ++ * directly. ++ * ++ * @param listData The object array to build a new list model on ++ * @see #setModel ++ */ ++ public void setListData(final Vector listData) ++ { ++ setModel(new AbstractListModel() ++ { ++ public int getSize() ++ { ++ return listData.size(); ++ } ++ ++ public Object getElementAt(int i) ++ { ++ return listData.elementAt(i); ++ } ++ }); ++ } ++ ++ /** ++ * Gets the value of the {@link #cellRenderer} property. ++ * ++ * @return The current value of the property ++ */ ++ public ListCellRenderer getCellRenderer() ++ { ++ return cellRenderer; ++ } ++ ++ /** ++ * Sets the value of the {@link #celLRenderer} property. ++ * ++ * @param cellRenderer The new property value ++ */ ++ public void setCellRenderer(ListCellRenderer cr) ++ { ++ ListCellRenderer old = cellRenderer; ++ cellRenderer = cr; ++ firePropertyChange(CELL_RENDERER_PROPERTY_CHANGED, old, cr); ++ revalidate(); ++ repaint(); ++ } ++ ++ /** ++ * Gets the value of the {@link #model} property. ++ * ++ * @return The current value of the property ++ */ ++ public ListModel getModel() ++ { ++ return model; ++ } ++ ++ /** ++ * Sets the value of the {@link #model} property. The list's {@link ++ * #listListener} is unsubscribed from the existing model, if it exists, ++ * and re-subscribed to the new model. ++ * ++ * @param model The new property value ++ */ ++ public void setModel(ListModel m) ++ { ++ ListModel old = model; ++ if (old != null) ++ old.removeListDataListener(listListener); ++ model = m; ++ if (model != null) ++ model.addListDataListener(listListener); ++ firePropertyChange(MODEL_PROPERTY_CHANGED, old, m); ++ revalidate(); ++ repaint(); ++ } ++ ++ ++ public ListSelectionModel getSelectionModel() ++ { ++ return selectionModel; ++ } ++ ++ /** ++ * Sets the value of the {@link #selectionModel} property. The list's ++ * {@link #listListener} is unsubscribed from the existing selection ++ * model, if it exists, and re-subscribed to the new selection model. ++ * ++ * @param l The new property value ++ */ ++ public void setSelectionModel(ListSelectionModel l) ++ { ++ ListSelectionModel old = selectionModel; ++ if (old != null) ++ old.removeListSelectionListener(listListener); ++ selectionModel = l; ++ if (selectionModel != null) ++ selectionModel.addListSelectionListener(listListener); ++ firePropertyChange(SELECTION_MODEL_PROPERTY_CHANGED, old, l); ++ revalidate(); ++ repaint(); ++ } ++ ++ /** ++ * Gets the value of the UI property. ++ * ++ * @return The current property value ++ */ ++ public ListUI getUI() ++ { ++ return (ListUI) ui; ++ } ++ ++ /** ++ * Sets the value of the UI property. ++ * ++ * @param ui The new property value ++ */ ++ public void setUI(ListUI ui) ++ { ++ super.setUI(ui); ++ } ++ ++ /** ++ * Calls {@link #setUI} with the {@link ListUI} subclass ++ * returned from calling {@link UIManager#getUI}. ++ */ ++ public void updateUI() ++ { ++ setUI((ListUI) UIManager.getUI(this)); ++ } ++ ++ /** ++ * Return the class identifier for the list's UI property. This should ++ * be the constant string "ListUI", and map to an ++ * appropriate UI class in the {@link UIManager}. ++ * ++ * @return The class identifier ++ */ ++ public String getUIClassID() ++ { ++ return "ListUI"; ++ } ++ ++ ++ /** ++ * Returns the current value of the {@link #prototypeCellValue} ++ * property. This property holds a reference to a "prototype" data value ++ * -- typically a String -- which is used to calculate the {@link ++ * #fixedCellWidth} and {@link #fixedCellHeight} properties, using the ++ * {@link #cellRenderer} property to acquire a component to render the ++ * prototype. ++ * ++ * @return The current prototype cell value ++ * @see #setPrototypeCellValue ++ */ ++ public Object getPrototypeCellValue() ++ { ++ return prototypeCellValue; ++ } ++ ++ /** ++ *

    Set the {@link #prototypeCellValue} property. This property holds a ++ * reference to a "prototype" data value -- typically a String -- which ++ * is used to calculate the {@link #fixedCellWidth} and {@link ++ * #fixedCellHeight} properties, using the {@link #cellRenderer} property ++ * to acquire a component to render the prototype.

    ++ * ++ *

    It is important that you not set this value to a ++ * component. It has to be a data value such as the objects you ++ * would find in the list's model. Setting it to a component will have ++ * undefined (and undesirable) affects.

    ++ * ++ * @param obj The new prototype cell value ++ * @see #getPrototypeCellValue ++ */ ++ public void setPrototypeCellValue(Object obj) ++ { ++ Object old = prototypeCellValue; ++ Component comp = getCellRenderer() ++ .getListCellRendererComponent(this, obj, 0, false, false); ++ Dimension d = comp.getPreferredSize(); ++ fixedCellWidth = d.width; ++ fixedCellHeight = d.height; ++ prototypeCellValue = obj; ++ firePropertyChange(PROTOTYPE_CELL_VALUE_PROPERTY_CHANGED, old, obj); ++ } ++ ++ public AccessibleContext getAccessibleContext() ++ { ++ return null; ++ } ++ ++ /** ++ * Returns a size indicating how much space this list would like to ++ * consume, when contained in a scrollable viewport. This is part of the ++ * {@link Scrollable} interface, which interacts with {@link ++ * ScrollPaneLayout} and {@link Viewport} to define scrollable objects. ++ * ++ * @return The preferred size ++ */ ++ public Dimension getPreferredScrollableViewportSize() ++ { ++ int vis = getVisibleRowCount(); ++ int nrows = getModel() == null ? 0 : getModel().getSize(); ++ // FIXME: this is a somewhat arbitrary default, but.. ? ++ Dimension single = new Dimension(10, 10);; ++ Rectangle bounds = null; ++ ++ if (vis > nrows) ++ { ++ if (fixedCellWidth != -1 && ++ fixedCellHeight != -1) ++ { ++ single = new Dimension(fixedCellWidth, fixedCellHeight); ++ } ++ else if (nrows != 0 && getUI() != null) ++ { ++ Rectangle tmp = getUI().getCellBounds(this, 0, 0); ++ if (tmp != null) ++ single = tmp.getSize(); ++ } ++ } ++ else if (getUI() != null) ++ { ++ return getUI().getCellBounds(this, 0, vis - 1).getSize(); ++ } ++ ++ return new Dimension(single.width, single.height * vis); ++ } ++ ++ /** ++ *

    Return the number of pixels the list must scroll in order to move a ++ * "unit" of the list into the provided visible rectangle. When the ++ * provided direction is positive, the call describes a "downwards" ++ * scroll, which will be exposing a cell at a greater index in ++ * the list than those elements currently showing. Then the provided ++ * direction is negative, the call describes an "upwards" scroll, which ++ * will be exposing a cell at a lesser index in the list than ++ * those elements currently showing.

    ++ * ++ *

    If the provided orientation is HORIZONTAL, the above ++ * comments refer to "rightwards" for positive direction, and "leftwards" ++ * for negative.

    ++ * ++ * ++ * @param visibleRect The rectangle to scroll an element into ++ * @param orientation One of the numeric consants VERTICAL ++ * or HORIZONTAL ++ * @param direction An integer indicating the scroll direction: positive means ++ * forwards (down, right), negative means backwards (up, left) ++ * ++ * @return The scrollable unit increment, in pixels ++ */ ++ public int getScrollableUnitIncrement(Rectangle visibleRect, ++ int orientation, int direction) ++ { ++ ListUI lui = this.getUI(); ++ if (orientation == SwingConstants.VERTICAL) ++ { ++ if (direction > 0) ++ { ++ // Scrolling down ++ Point bottomLeft = new Point(visibleRect.x, ++ visibleRect.y + visibleRect.height); ++ int curIdx = lui.locationToIndex(this, bottomLeft); ++ Rectangle curBounds = lui.getCellBounds(this, curIdx, curIdx); ++ if (curBounds.y + curBounds.height == bottomLeft.y) ++ { ++ // we are at the exact bottom of the current cell, so we ++ // are being asked to scroll to the end of the next one ++ if (curIdx + 1 < model.getSize()) ++ { ++ // there *is* a next item in the list ++ Rectangle nxtBounds = lui.getCellBounds(this, curIdx + 1, curIdx + 1); ++ return nxtBounds.height; ++ } ++ else ++ { ++ // no next item, no advance possible ++ return 0; ++ } ++ } ++ else ++ { ++ // we are part way through an existing cell, so we are being ++ // asked to scroll to the bottom of it ++ return (curBounds.y + curBounds.height) - bottomLeft.y; ++ } ++ } ++ else ++ { ++ // scrolling up ++ Point topLeft = new Point(visibleRect.x, visibleRect.y); ++ int curIdx = lui.locationToIndex(this, topLeft); ++ Rectangle curBounds = lui.getCellBounds(this, curIdx, curIdx); ++ if (curBounds.y == topLeft.y) ++ { ++ // we are at the exact top of the current cell, so we ++ // are being asked to scroll to the top of the previous one ++ if (curIdx > 0) ++ { ++ // there *is* a previous item in the list ++ Rectangle nxtBounds = lui.getCellBounds(this, curIdx - 1, curIdx - 1); ++ return -nxtBounds.height; ++ } ++ else ++ { ++ // no previous item, no advance possible ++ return 0; ++ } ++ } ++ else ++ { ++ // we are part way through an existing cell, so we are being ++ // asked to scroll to the top of it ++ return curBounds.y - topLeft.y; ++ } ++ } ++ } ++ ++ // FIXME: handle horizontal scrolling (also wrapping?) ++ return 1; ++ } ++ ++ /** ++ *

    Return the number of pixels the list must scroll in order to move a ++ * "block" of the list into the provided visible rectangle. When the ++ * provided direction is positive, the call describes a "downwards" ++ * scroll, which will be exposing a cell at a greater index in ++ * the list than those elements currently showing. Then the provided ++ * direction is negative, the call describes an "upwards" scroll, which ++ * will be exposing a cell at a lesser index in the list than ++ * those elements currently showing.

    ++ * ++ *

    If the provided orientation is HORIZONTAL, the above ++ * comments refer to "rightwards" for positive direction, and "leftwards" ++ * for negative.

    ++ * ++ * ++ * @param visibleRect The rectangle to scroll an element into ++ * @param orientation One of the numeric consants VERTICAL ++ * or HORIZONTAL ++ * @param direction An integer indicating the scroll direction: positive means ++ * forwards (down, right), negative means backwards (up, left) ++ * ++ * @return The scrollable unit increment, in pixels ++ */ ++ public int getScrollableBlockIncrement(Rectangle visibleRect, ++ int orientation, int direction) ++ { ++ if (orientation == VERTICAL) ++ return visibleRect.height * direction; ++ else ++ return visibleRect.width * direction; ++ } ++ ++ /** ++ * Gets the value of the {@link #scrollableTracksViewportWidth} property. ++ * ++ * @return true if the viewport is larger (horizontally) ++ * than the list and the list should be expanded to fit the viewport; ++ * false if the viewport is smaller than the list and the ++ * list should scroll (horizontally) within the viewport ++ */ ++ public boolean getScrollableTracksViewportWidth() ++ { ++ return false; ++ } ++ ++ /** ++ * Gets the value of the {@link #scrollableTracksViewportWidth} property. ++ * ++ * @return true if the viewport is larger (vertically) ++ * than the list and the list should be expanded to fit the viewport; ++ * false if the viewport is smaller than the list and the ++ * list should scroll (vertically) within the viewport ++ */ ++ public boolean getScrollableTracksViewportHeight() ++ { ++ return false; ++ } + } +Index: javax/swing/JMenu.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JMenu.java,v +retrieving revision 1.3 +diff -u -r1.3 JMenu.java +--- javax/swing/JMenu.java 9 Jan 2004 10:18:47 -0000 1.3 ++++ javax/swing/JMenu.java 6 Sep 2004 16:35:57 -0000 +@@ -1,5 +1,5 @@ + /* JMenu.java -- +- Copyright (C) 2002, 2004 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -39,731 +39,853 @@ + + import java.awt.Component; + import java.awt.Point; ++import java.awt.Window; + import java.awt.event.KeyEvent; + import java.awt.event.WindowAdapter; + import java.awt.event.WindowEvent; ++import java.beans.PropertyChangeEvent; + import java.beans.PropertyChangeListener; + import java.io.IOException; + import java.io.ObjectOutputStream; + import java.io.Serializable; ++import java.util.EventListener; + import java.util.Hashtable; + import javax.accessibility.Accessible; + import javax.accessibility.AccessibleContext; + import javax.accessibility.AccessibleRole; + import javax.accessibility.AccessibleSelection; ++import javax.swing.event.ChangeEvent; ++import javax.swing.event.ChangeListener; + import javax.swing.event.MenuEvent; + import javax.swing.event.MenuListener; +-import javax.swing.event.ChangeListener; ++import javax.swing.plaf.MenuItemUI; ++ + + /** +- * JMenu +- * @author Andrew Selkirk +- * @version 1.0 ++ *

    ++ * This class represents a menu that can be added to a menu bar or ++ * can be a submenu in some other menu. When JMenu is selected it ++ * displays JPopupMenu containing its menu items. ++ *

    ++ * ++ *

    ++ * JMenu's fires MenuEvents when this menu's selection changes. If this menu ++ * is selected, then fireMenuSelectedEvent() is invoked. In case when menu is ++ * deselected or cancelled, then fireMenuDeselectedEvent() or ++ * fireMenuCancelledEvent() is invoked, respectivelly. ++ *

    ++ * + */ +-public class JMenu +- extends JMenuItem +- implements Accessible, MenuElement ++public class JMenu extends JMenuItem implements Accessible, MenuElement + { + static final long serialVersionUID = 4227225638931828014L; + +- //------------------------------------------------------------- +- // Classes ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * AccessibleJMenu +- */ +- protected class AccessibleJMenu extends AccessibleJMenuItem +- implements AccessibleSelection { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor AccessibleJMenu +- * @param component TODO +- */ +- protected AccessibleJMenu(JMenu component) { +- super(component); +- // TODO +- } // AccessibleJMenu() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * getAccessibleChildrenCount +- * @returns int +- */ +- public int getAccessibleChildrenCount() { +- return 0; // TODO +- } // getAccessibleChildrenCount() +- +- /** +- * getAccessibleChild +- * @param value0 TODO +- * @returns Accessible +- */ +- public Accessible getAccessibleChild(int value0) { +- return null; // TODO +- } // getAccessibleChild() +- +- /** +- * getAccessibleSelection +- * @returns AccessibleSelection +- */ +- public AccessibleSelection getAccessibleSelection() { +- return null; // TODO +- } // getAccessibleSelection() +- +- /** +- * getAccessibleSelection +- * @param value0 TODO +- * @returns Accessible +- */ +- public Accessible getAccessibleSelection(int value0) { +- return null; // TODO +- } // getAccessibleSelection() +- +- /** +- * isAccessibleChildSelected +- * @param value0 TODO +- * @returns boolean +- */ +- public boolean isAccessibleChildSelected(int value0) { +- return false; // TODO +- } // isAccessibleChildSelected() +- +- /** +- * getAccessibleRole +- * @returns AccessibleRole +- */ +- public AccessibleRole getAccessibleRole() { +- return AccessibleRole.MENU; +- } // getAccessibleRole() +- +- /** +- * getAccessibleSelectionCount +- * @returns int +- */ +- public int getAccessibleSelectionCount() { +- return 0; // TODO +- } // getAccessibleSelectionCount() +- +- /** +- * addAccessibleSelection +- * @param value0 TODO +- */ +- public void addAccessibleSelection(int value0) { +- // TODO +- } // addAccessibleSelection() +- +- /** +- * removeAccessibleSelection +- * @param value0 TODO +- */ +- public void removeAccessibleSelection(int value0) { +- // TODO +- } // removeAccessibleSelection() +- +- /** +- * clearAccessibleSelection +- */ +- public void clearAccessibleSelection() { +- // TODO +- } // clearAccessibleSelection() +- +- /** +- * selectAllAccessibleSelection +- */ +- public void selectAllAccessibleSelection() { +- // TODO +- } // selectAllAccessibleSelection() +- +- +- } // AccessibleJMenu +- +- /** +- * WinListener +- */ +- protected class WinListener extends WindowAdapter implements Serializable { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * popupMenu +- */ +- JPopupMenu popupMenu; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor WinListener +- * @param value0 TODO +- * @param value1 TODO +- */ +- public WinListener(JMenu value0, JPopupMenu value1) { +- // TODO +- } // WinListener() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * windowClosing +- * @param value0 TODO +- */ +- public void windowClosing(WindowEvent value0) { +- // TODO +- } // windowClosing() +- +- +- } // WinListener +- +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * uiClassID +- */ +- private static final String uiClassID = "MenuUI"; +- +- /** +- * popupMenu +- */ +- private JPopupMenu popupMenu; +- +- /** +- * menuChangeListener +- */ +- private ChangeListener menuChangeListener; +- +- /** +- * menuEvent +- */ +- private MenuEvent menuEvent; +- +- /** +- * listenerRegistry +- */ +- private static Hashtable listenerRegistry = null; // TODO +- +- /** +- * delay +- */ +- private int delay; +- +- /** +- * TRACE +- */ +- private static final boolean TRACE = false; // TODO +- +- /** +- * VERBOSE +- */ +- private static final boolean VERBOSE = false; // TODO +- +- /** +- * DEBUG +- */ +- private static final boolean DEBUG = false; // TODO +- +- /** +- * popupListener +- */ +- protected JMenu.WinListener popupListener; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor JMenu +- */ +- public JMenu() { +- // TODO +- } // JMenu() +- +- /** +- * Constructor JMenu +- * @param text TODO +- */ +- public JMenu(String text) { +- // TODO +- } // JMenu() +- +- /** +- * Constructor JMenu +- * @param action TODO +- */ +- public JMenu(Action action) { +- // TODO +- } // JMenu() +- +- /** +- * Constructor JMenu +- * @param text TODO +- * @param tearoff TODO +- */ +- public JMenu(String text, boolean tearoff) { +- // TODO +- } // JMenu() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * writeObject +- * @param stream TODO +- * @exception IOException TODO +- */ +- private void writeObject(ObjectOutputStream stream) throws IOException { +- // TODO +- } // writeObject() +- +- /** +- * add +- * @param value0 TODO +- * @returns JMenuItem +- */ +- public JMenuItem add(JMenuItem item) { +- return null; // TODO +- } // add() +- +- /** +- * add +- * @param component TODO +- * @returns Component +- */ +- public Component add(Component component) { +- return null; // TODO +- } // add() +- +- /** +- * add +- * @param component TODO +- * @param index TODO +- * @returns Component +- */ +- public Component add(Component component, int index) { +- return null; // TODO +- } // add() +- +- /** +- * add +- * @param text TODO +- * @returns JMenuItem +- */ +- public JMenuItem add(String text) { +- return null; // TODO +- } // add() +- +- /** +- * add +- * @param action TODO +- * @returns JMenuItem +- */ +- public JMenuItem add(Action action) { +- return null; // TODO +- } // add() +- +- /** +- * remove +- * @param item TODO +- */ +- public void remove(JMenuItem item) { +- // TODO +- } // remove() +- +- /** +- * remove +- * @param index TODO +- */ +- public void remove(int index) { +- // TODO +- } // remove() +- +- /** +- * remove +- * @param component TODO +- */ +- public void remove(Component component) { +- // TODO +- } // remove() +- +- /** +- * removeAll +- */ +- public void removeAll() { +- // TODO +- } // removeAll() +- +- /** +- * insert +- * @param text TODO +- * @param index TODO +- */ +- public void insert(String text, int index) { +- // TODO +- } // insert() +- +- /** +- * insert +- * @param item TODO +- * @param index TODO +- * @returns JMenuItem +- */ +- public JMenuItem insert(JMenuItem item, int index) { +- return null; // TODO +- } // insert() +- +- /** +- * insert +- * @param action TODO +- * @param index TODO +- * @returns JMenuItem +- */ +- public JMenuItem insert(Action action, int index) { +- return null; // TODO +- } // insert() +- +- /** +- * updateUI +- */ +- public void updateUI() { +- //setUI((MenuUI) UIManager.get(this)); +- invalidate(); +- } // updateUI() +- +- /** +- * getUIClassID +- * @returns String +- */ +- public String getUIClassID() { +- return uiClassID; +- } // getUIClassID() +- +- /** +- * setModel +- * @param model TODO +- */ +- public void setModel(ButtonModel model) { +- // TODO +- } // setModel() +- +- /** +- * isSelected +- * @returns boolean +- */ +- public boolean isSelected() { +- return false; // TODO +- } // isSelected() +- +- /** +- * setSelected +- * @param selected TODO +- */ +- public void setSelected(boolean selected) { +- // TODO +- } // setSelected() +- +- /** +- * isPopupMenuVisible +- * @returns boolean +- */ +- public boolean isPopupMenuVisible() { +- return false; // TODO +- } // isPopupMenuVisible() +- +- /** +- * setPopupMenuVisible +- * @param popup TODO +- */ +- public void setPopupMenuVisible(boolean popup) { +- // TODO +- } // setPopupMenuVisible() +- +- /** +- * getPopupMenuOrigin +- * @returns Point +- */ +- protected Point getPopupMenuOrigin() { +- return null; // TODO +- } // getPopupMenuOrigin() +- +- /** +- * getDelay +- * @returns int +- */ +- public int getDelay() { +- return 0; // TODO +- } // getDelay() +- +- /** +- * setDelay +- * @param value0 TODO +- */ +- public void setDelay(int delay) { +- // TODO +- } // setDelay() +- +- /** +- * setMenuLocation +- * @param x TODO +- * @param y TODO +- */ +- public void setMenuLocation(int x, int y) { +- // TODO +- } // setMenuLocation() +- +- /** +- * createActionComponent +- * @param action TODO +- * @returns JMenuItem +- */ +- protected JMenuItem createActionComponent(Action action) { +- return null; // TODO +- } // createActionComponent() +- +- /** +- * createActionChangeListener +- * @param item TODO +- * @returns PropertyChangeListener +- */ +- protected PropertyChangeListener createActionChangeListener(JMenuItem item) { +- return null; // TODO +- } // createActionChangeListener() +- +- /** +- * addSeparator +- */ +- public void addSeparator() { +- // TODO +- } // addSeparator() +- +- /** +- * insertSeparator +- * @param index TODO +- */ +- public void insertSeparator(int index) { +- // TODO +- } // insertSeparator() +- +- /** +- * getItem +- * @param index TODO +- * @returns JMenuItem +- */ +- public JMenuItem getItem(int index) { +- return null; // TODO +- } // getItem() +- +- /** +- * getItemCount +- * @returns int +- */ +- public int getItemCount() { +- return 0; // TODO +- } // getItemCount() +- +- /** +- * isTearOff +- * @returns boolean +- */ +- public boolean isTearOff() { +- return false; // TODO +- } // isTearOff() +- +- /** +- * getMenuComponentCount +- * @returns int +- */ +- public int getMenuComponentCount() { +- return 0; // TODO +- } // getMenuComponentCount() +- +- /** +- * getMenuComponent +- * @param index TODO +- * @returns Component +- */ +- public Component getMenuComponent(int index) { +- return null; // TODO +- } // getMenuComponent() +- +- /** +- * getMenuComponents +- * @returns Component[] +- */ +- public Component[] getMenuComponents() { +- return null; // TODO +- } // getMenuComponents() +- +- /** +- * isTopLevelMenu +- * @returns boolean +- */ +- public boolean isTopLevelMenu() { +- return false; // TODO +- } // isTopLevelMenu() +- +- /** +- * isMenuComponent +- * @param component TODO +- * @returns boolean +- */ +- public boolean isMenuComponent(Component component) { +- return false; // TODO +- } // isMenuComponent() +- +- /** +- * getPopupMenu +- * @returns JPopupMenu +- */ +- public JPopupMenu getPopupMenu() { +- return null; // TODO +- } // getPopupMenu() +- +- /** +- * addMenuListener +- * @param listener TODO +- */ +- public void addMenuListener(MenuListener listener) { +- // TODO +- } // addMenuListener() +- +- /** +- * removeMenuListener +- * @param listener TODO +- */ +- public void removeMenuListener(MenuListener listener) { +- // TODO +- } // removeMenuListener() +- +- /** +- * fireMenuSelected +- */ +- protected void fireMenuSelected() { +- // TODO +- } // fireMenuSelected() +- +- /** +- * fireMenuDeselected +- */ +- protected void fireMenuDeselected() { +- // TODO +- } // fireMenuDeselected() +- +- /** +- * fireMenuCanceled +- */ +- protected void fireMenuCanceled() { +- // TODO +- } // fireMenuCanceled() +- +- /** +- * createMenuChangeListener +- * @returns ChangeListener +- */ +- private ChangeListener createMenuChangeListener() { +- return null; // TODO +- } // createMenuChangeListener() +- +- /** +- * createWinListener +- * @param popup TODO +- * @returns JMenu.WinListener +- */ +- protected JMenu.WinListener createWinListener(JPopupMenu popup) { +- return null; // TODO +- } // createWinListener() +- +- /** +- * menuSelectionChanged +- * @param value0 TODO +- */ +- public void menuSelectionChanged(boolean changed) { +- // TODO +- } // menuSelectionChanged() +- +- /** +- * getSubElements +- * @returns MenuElement[] +- */ +- public MenuElement[] getSubElements() { +- return null; // TODO +- } // getSubElements() +- +- /** +- * getComponent +- * @returns Component +- */ +- public Component getComponent() { +- return null; // TODO +- } // getComponent() +- +- /** +- * setAccelerator +- * @param keystroke TODO +- */ +- public void setAccelerator(KeyStroke keystroke) { +- // TODO +- } // setAccelerator() +- +- /** +- * processKeyEvent +- * @param event TODO +- */ +- protected void processKeyEvent(KeyEvent event) { +- // TODO +- } // processKeyEvent() +- +- /** +- * doClick +- * @param time TODO +- */ +- public void doClick(int time) { +- // TODO +- } // doClick() +- +- /** +- * paramString +- * @returns String +- */ +- protected String paramString() { +- return null; // TODO +- } // paramString() +- +- /** +- * getAccessibleContext +- * @returns AccessibleContext +- */ +- public AccessibleContext getAccessibleContext() { +- if (accessibleContext == null) { +- accessibleContext = new AccessibleJMenu(this); +- } // if +- return accessibleContext; +- } // getAccessibleContext() ++ /** name for the UI delegate for this menu. */ ++ private static final String uiClassID = "MenuUI"; + ++ /** A Popup menu associated with this menu, which pops up when menu is selected */ ++ private JPopupMenu popupMenu = new JPopupMenu(); + +-} // JMenu ++ /** Whenever menu is selected or deselected the MenuEvent is fired to ++ menu's registered listeners. */ ++ private MenuEvent menuEvent = new MenuEvent(this); ++ ++ /*Amount of time, in milliseconds, that should pass before popupMenu ++ associated with this menu appears or disappers */ ++ private int delay; ++ ++ /* PopupListener */ ++ protected WinListener popupListener; ++ ++ /** Location at which popup menu associated with this menu will be ++ displayed */ ++ private Point menuLocation; ++ ++ /** ++ * Creates a new JMenu object. ++ */ ++ public JMenu() ++ { ++ super(); ++ } ++ ++ /** ++ * Creates a new JMenu with the spicified label ++ * ++ * @param text label for this menu ++ */ ++ public JMenu(String text) ++ { ++ super(text); ++ } ++ ++ /** ++ * Creates a new JMenu object ++ * ++ * @param action Action that is used to create menu item tha will be ++ * added to the menu. ++ */ ++ public JMenu(Action action) ++ { ++ super(action); ++ createActionChangeListener(this); ++ } ++ ++ /** ++ * Creates a new JMenu with specified label and an option ++ * for this menu to be tear-off menu ++ * ++ * @param text label for this menu ++ * @param tearoff true if this menu should be tear-off and false otherwise ++ */ ++ public JMenu(String text, boolean tearoff) ++ { ++ throw new Error("not implemented"); ++ } ++ ++ private void writeObject(ObjectOutputStream stream) throws IOException ++ { ++ } ++ ++ /** ++ * Adds specified menu item to this menu ++ * ++ * @param item Menu item to add to this menu ++ * ++ * @return Menu item that was added ++ */ ++ public JMenuItem add(JMenuItem item) ++ { ++ return popupMenu.add(item); ++ } ++ ++ /** ++ * Adds specified component to this menu. ++ * ++ * @param component Component to add to this menu ++ * ++ * @return Component that was added ++ */ ++ public Component add(Component component) ++ { ++ return popupMenu.add(component); ++ } ++ ++ /** ++ * Adds specified component to this menu at the given index ++ * ++ * @param component Component to add ++ * @param index Position of this menu item in the menu ++ * ++ * @return Component that was added ++ */ ++ public Component add(Component component, int index) ++ { ++ return popupMenu.add(component, index); ++ } ++ ++ /** ++ * Adds JMenuItem constructed with the specified label to this menu ++ * ++ * @param text label for the menu item that will be added ++ * ++ * @return Menu Item that was added to this menu ++ */ ++ public JMenuItem add(String text) ++ { ++ return popupMenu.add(text); ++ } ++ ++ /** ++ * Adds JMenuItem constructed using properties from specified action. ++ * ++ * @param action action to construct the menu item with ++ * ++ * @return Menu Item that was added to this menu ++ */ ++ public JMenuItem add(Action action) ++ { ++ return popupMenu.add(action); ++ } ++ ++ /** ++ * Removes given menu item from this menu. Nothing happens if ++ * this menu doesn't contain specified menu item. ++ * ++ * @param item Menu Item which needs to be removed ++ */ ++ public void remove(JMenuItem item) ++ { ++ popupMenu.remove(item); ++ } ++ ++ /** ++ * Removes component at the specified index from this menu ++ * ++ * @param index Position of the component that needs to be removed in the menu ++ */ ++ public void remove(int index) ++ { ++ popupMenu.remove(index); ++ } ++ ++ /** ++ * Removes given component from this menu. ++ * ++ * @param component Component to remove ++ */ ++ public void remove(Component component) ++ { ++ int index = popupMenu.getComponentIndex(component); ++ popupMenu.remove(index); ++ } ++ ++ /** ++ * Removes all menu items from the menu ++ */ ++ public void removeAll() ++ { ++ popupMenu.removeAll(); ++ } ++ ++ /** ++ * Creates JMenuItem with the specified text and inserts it in the ++ * at the specified index ++ * ++ * @param text label for the new menu item ++ * @param index index at which to insert newly created menu item. ++ */ ++ public void insert(String text, int index) ++ { ++ this.insert(new JMenuItem(text), index); ++ } ++ ++ /** ++ * Creates JMenuItem with the specified text and inserts it in the ++ * at the specified index. IllegalArgumentException is thrown ++ * if index is less than 0 ++ * ++ * @param item menu item to insert ++ * @param index index at which to insert menu item. ++ * @return Menu item that was added to the menu ++ */ ++ public JMenuItem insert(JMenuItem item, int index) ++ { ++ if (index < 0) ++ throw new IllegalArgumentException("index less than zero"); ++ ++ popupMenu.insert(item, index); ++ ++ return item; ++ } ++ ++ /** ++ * Creates JMenuItem with the associated action and inserts it to the menu ++ * at the specified index. IllegalArgumentException is thrown ++ * if index is less than 0 ++ * ++ * @param action Action for the new menu item ++ * @param index index at which to insert newly created menu item. ++ * @return Menu item that was added to the menu ++ */ ++ public JMenuItem insert(Action action, int index) ++ { ++ JMenuItem item = new JMenuItem(action); ++ this.insert(item, index); ++ ++ return item; ++ } ++ ++ /** ++ * This method sets this menuItem's UI to the UIManager's default for the ++ * current look and feel. ++ */ ++ public void updateUI() ++ { ++ super.setUI((MenuItemUI) UIManager.getUI(this)); ++ invalidate(); ++ } ++ ++ /** ++ * This method returns a name to identify which look and feel class will be ++ * the UI delegate for the menu. ++ * ++ * @return The Look and Feel classID. "MenuUI" ++ */ ++ public String getUIClassID() ++ { ++ return uiClassID; ++ } ++ ++ /** ++ * Sets model for this menu. ++ * ++ * @param model model to set ++ */ ++ public void setModel(ButtonModel model) ++ { ++ super.setModel(model); ++ } ++ ++ /** ++ * Returns true if the menu is selected and false otherwise ++ * ++ * @return true if the menu is selected and false otherwise ++ */ ++ public boolean isSelected() ++ { ++ return super.isArmed(); ++ } ++ ++ /** ++ * Changes this menu selected state if selected is true and false otherwise ++ * This method fires menuEvents to menu's registered listeners. ++ * ++ * @param selected true if the menu should be selected and false otherwise ++ */ ++ public void setSelected(boolean selected) ++ { ++ // if this menu selection is true, then activate this menu and ++ // display popup associated with this menu ++ if (selected) ++ { ++ super.setArmed(true); ++ super.setSelected(true); ++ ++ // FIXME: The popup menu should be shown on the screen after certain ++ // number of seconds pass. The 'delay' property of this menu indicates ++ // this amount of seconds. 'delay' property is 0 by default. ++ if (this.isShowing()) ++ { ++ fireMenuSelected(); ++ ++ int x = 0; ++ int y = 0; ++ ++ if (menuLocation == null) ++ { ++ // Calculate correct position of the popup. Note that location of the popup ++ // passed to show() should be relative to the popup's invoker ++ if (isTopLevelMenu()) ++ y = this.getHeight(); ++ else ++ x = this.getWidth(); ++ ++ getPopupMenu().show(this, x, y); ++ } ++ else ++ getPopupMenu().show(this, menuLocation.x, menuLocation.y); ++ } ++ } ++ ++ else ++ { ++ super.setSelected(false); ++ super.setArmed(false); ++ fireMenuDeselected(); ++ popupMenu.setVisible(false); ++ } ++ } ++ ++ /** ++ * Checks if PopupMenu associated with this menu is visible ++ * ++ * @return true if the popup associated with this menu is currently visible on the screen and ++ * false otherwise. ++ */ ++ public boolean isPopupMenuVisible() ++ { ++ return popupMenu.isVisible(); ++ } ++ ++ /** ++ * Sets popup menu visibility ++ * ++ * @param popup true if popup should be visible and false otherwise ++ */ ++ public void setPopupMenuVisible(boolean popup) ++ { ++ if (getModel().isEnabled()) ++ popupMenu.setVisible(popup); ++ } ++ ++ /** ++ * Returns origin point of the popup menu ++ * ++ * @return Point containing ++ */ ++ protected Point getPopupMenuOrigin() ++ { ++ // if menu in the menu bar ++ if (isTopLevelMenu()) ++ return new Point(0, this.getHeight()); ++ ++ // if submenu ++ return new Point(this.getWidth(), 0); ++ } ++ ++ /** ++ * Returns delay property. ++ * ++ * @return delay property, indicating number of milliseconds before ++ * popup menu associated with the menu appears or disappears after ++ * menu was selected or deselected respectively ++ */ ++ public int getDelay() ++ { ++ return delay; ++ } ++ ++ /** ++ * Sets delay property for this menu. If given time for the delay ++ * property is negative, then IllegalArgumentException is thrown ++ * ++ * @param delay number of milliseconds before ++ * popup menu associated with the menu appears or disappears after ++ * menu was selected or deselected respectively ++ */ ++ public void setDelay(int delay) ++ { ++ if (delay < 0) ++ throw new IllegalArgumentException("delay less than 0"); ++ this.delay = delay; ++ } ++ ++ /** ++ * Sets location at which popup menu should be displayed ++ * The location given is relative to this menu item ++ * ++ * @param x x-coordinate of the menu location ++ * @param y y-coordinate of the menu location ++ */ ++ public void setMenuLocation(int x, int y) ++ { ++ menuLocation = new Point(x, y); ++ } ++ ++ /** ++ * Creates and returns JMenuItem associated with the given action ++ * ++ * @param action Action to use for creation of JMenuItem ++ * ++ * @return JMenuItem that was creted with given action ++ */ ++ protected JMenuItem createActionComponent(Action action) ++ { ++ return new JMenuItem(action); ++ } ++ ++ /** ++ * Creates ActionChangeListener to listen for PropertyChangeEvents occuring ++ * in the action that is associated with this menu ++ * ++ * @param item menu that contains action to listen to ++ * ++ * @return The PropertyChangeListener ++ */ ++ protected PropertyChangeListener createActionChangeListener(JMenuItem item) ++ { ++ return new ActionChangedListener(item); ++ } ++ ++ /** ++ * Adds separator to the end of the menu items in the menu. ++ */ ++ public void addSeparator() ++ { ++ getPopupMenu().addSeparator(); ++ } ++ ++ /** ++ * Inserts separator in the menu at the specified index. ++ * ++ * @param index Index at which separator should be inserted ++ */ ++ public void insertSeparator(int index) ++ { ++ if (index < 0) ++ throw new IllegalArgumentException("index less than 0"); ++ ++ getPopupMenu().insert(new JPopupMenu.Separator(), index); ++ } ++ ++ /** ++ * Returns menu item located at the specified index in the menu ++ * ++ * @param index Index at which to look for the menu item ++ * ++ * @return menu item located at the specified index in the menu ++ */ ++ public JMenuItem getItem(int index) ++ { ++ if (index < 0) ++ throw new IllegalArgumentException("index less than 0"); ++ ++ Component c = popupMenu.getComponentAtIndex(index); ++ ++ if (c instanceof JMenuItem) ++ return (JMenuItem) c; ++ else ++ return null; ++ } ++ ++ /** ++ * Returns number of items in the menu ++ * ++ * @return number of items in the menu ++ */ ++ public int getItemCount() ++ { ++ // returns the number of items on ++ // the menu, including separators. ++ return getComponents().length; ++ } ++ ++ /** ++ * Checks if this menu is a tear-off menu. ++ * ++ * @return true if this menu is a tear-off menu and false otherwise ++ */ ++ public boolean isTearOff() ++ { ++ // NOT YET IMPLEMENTED ++ return false; ++ } ++ ++ /** ++ * Returns number of menu components in this menu ++ * ++ * @return number of menu components in this menu ++ */ ++ public int getMenuComponentCount() ++ { ++ return popupMenu.getComponentCount(); ++ } ++ ++ /** ++ * Returns menu component located at the givent index ++ * in the menu ++ * ++ * @param index index at which to get the menu component in the menu ++ * ++ * @return Menu Component located in the menu at the specified index ++ */ ++ public Component getMenuComponent(int index) ++ { ++ return (Component) popupMenu.getComponentAtIndex(index); ++ } ++ ++ /** ++ * Return components belonging to this menu ++ * ++ * @return components belonging to this menu ++ */ ++ public Component[] getMenuComponents() ++ { ++ return popupMenu.getComponents(); ++ } ++ ++ /** ++ * Checks if this menu is a top level menu. The menu is top ++ * level menu if it is inside the menu bar. While if the menu ++ * inside some other menu, it is considered to be a pull-right menu. ++ * ++ * @return true if this menu is top level menu, and false otherwise ++ */ ++ public boolean isTopLevelMenu() ++ { ++ if (getParent() instanceof JMenuBar) ++ return true; ++ else ++ return false; ++ } ++ ++ /** ++ * Checks if given component exists in this menu. The submenus of ++ * this menu are checked as well ++ * ++ * @param component Component to look for ++ * ++ * @return true if the given component exists in this menu, and false otherwise ++ */ ++ public boolean isMenuComponent(Component component) ++ { ++ return false; ++ } ++ ++ /** ++ * Returns popup menu associated with the menu. ++ * ++ * @return popup menu associated with the menu. ++ */ ++ public JPopupMenu getPopupMenu() ++ { ++ return popupMenu; ++ } ++ ++ /** ++ * Adds MenuListener to the menu ++ * ++ * @param listener MenuListener to add ++ */ ++ public void addMenuListener(MenuListener listener) ++ { ++ listenerList.add(MenuListener.class, listener); ++ } ++ ++ /** ++ * Removes MenuListener from the menu ++ * ++ * @param listener MenuListener to remove ++ */ ++ public void removeMenuListener(MenuListener listener) ++ { ++ listenerList.remove(MenuListener.class, listener); ++ } ++ ++ /** ++ * This method fires MenuEvents to all menu's MenuListeners. In this case ++ * menuSelected() method of MenuListeners is called to indicated that the menu ++ * was selected. ++ */ ++ protected void fireMenuSelected() ++ { ++ EventListener[] ll = listenerList.getListeners(MenuListener.class); ++ ++ for (int i = 0; i < ll.length; i++) ++ ((MenuListener) ll[i]).menuSelected(menuEvent); ++ } ++ ++ /** ++ * This method fires MenuEvents to all menu's MenuListeners. In this case ++ * menuDeselected() method of MenuListeners is called to indicated that the menu ++ * was deselected. ++ */ ++ protected void fireMenuDeselected() ++ { ++ EventListener[] ll = listenerList.getListeners(MenuListener.class); ++ ++ for (int i = 0; i < ll.length; i++) ++ ((MenuListener) ll[i]).menuDeselected(menuEvent); ++ } ++ ++ /** ++ * This method fires MenuEvents to all menu's MenuListeners. In this case ++ * menuSelected() method of MenuListeners is called to indicated that the menu ++ * was cancelled. The menu is cancelled when it's popup menu is close without selection. ++ */ ++ protected void fireMenuCanceled() ++ { ++ EventListener[] ll = listenerList.getListeners(MenuListener.class); ++ ++ for (int i = 0; i < ll.length; i++) ++ ((MenuListener) ll[i]).menuCanceled(menuEvent); ++ } ++ ++ /** ++ * Creates WinListener that listens to the menu;s popup menu. ++ * ++ * @param popup JPopupMenu to listen to ++ * ++ * @return The WinListener ++ */ ++ protected WinListener createWinListener(JPopupMenu popup) ++ { ++ return new WinListener(popup); ++ } ++ ++ /** ++ * Method of the MenuElementInterface. It reacts to the selection ++ * changes in the menu. If this menu was selected, then it ++ * displayes popup menu associated with it and if this menu was ++ * deselected it hides the popup menu. ++ * ++ * @param changed true if the menu was selected and false otherwise ++ */ ++ public void menuSelectionChanged(boolean changed) ++ { ++ // if this menu selection is true, then activate this menu and ++ // display popup associated with this menu ++ setSelected(changed); ++ } ++ ++ /** ++ * Method of MenuElement interface. Returns sub components of ++ * this menu. ++ * ++ * @return array containing popupMenu that is associated with this menu ++ */ ++ public MenuElement[] getSubElements() ++ { ++ return new MenuElement[] { popupMenu }; ++ } ++ ++ /** ++ * @return Returns reference to itself ++ */ ++ public Component getComponent() ++ { ++ return this; ++ } ++ ++ /** ++ * This method is overriden with empty implementation, s.t the ++ * accelerator couldn't be set for the menu. The mnemonic should ++ * be used for the menu instead. ++ * ++ * @param keystroke accelerator for this menu ++ */ ++ public void setAccelerator(KeyStroke keystroke) ++ { ++ throw new Error("setAccelerator() is not defined for JMenu. Use setMnemonic() instead."); ++ } ++ ++ /** ++ * This method process KeyEvent occuring when the menu is visible ++ * ++ * @param event The KeyEvent ++ */ ++ protected void processKeyEvent(KeyEvent event) ++ { ++ } ++ ++ /** ++ * Programatically performs click ++ * ++ * @param time Number of milliseconds for which this menu stays pressed ++ */ ++ public void doClick(int time) ++ { ++ getModel().setArmed(true); ++ getModel().setPressed(true); ++ try ++ { ++ java.lang.Thread.sleep(time); ++ } ++ catch (java.lang.InterruptedException e) ++ { ++ // probably harmless ++ } ++ ++ getModel().setPressed(false); ++ getModel().setArmed(false); ++ popupMenu.show(this, this.getWidth(), 0); ++ } ++ ++ /** ++ * A string that describes this JMenu. Normally only used ++ * for debugging. ++ * ++ * @return A string describing this JMenu ++ */ ++ protected String paramString() ++ { ++ return "JMenu"; ++ } ++ ++ public AccessibleContext getAccessibleContext() ++ { ++ if (accessibleContext == null) ++ accessibleContext = new AccessibleJMenu(); ++ ++ return accessibleContext; ++ } ++ ++ protected class AccessibleJMenu extends AccessibleJMenuItem ++ implements AccessibleSelection ++ { ++ protected AccessibleJMenu() ++ { ++ } ++ ++ public int getAccessibleChildrenCount() ++ { ++ return 0; ++ } ++ ++ public Accessible getAccessibleChild(int value0) ++ { ++ return null; ++ } ++ ++ public AccessibleSelection getAccessibleSelection() ++ { ++ return null; ++ } ++ ++ public Accessible getAccessibleSelection(int value0) ++ { ++ return null; ++ } ++ ++ public boolean isAccessibleChildSelected(int value0) ++ { ++ return false; ++ } ++ ++ public AccessibleRole getAccessibleRole() ++ { ++ return AccessibleRole.MENU; ++ } ++ ++ public int getAccessibleSelectionCount() ++ { ++ return 0; ++ } ++ ++ public void addAccessibleSelection(int value0) ++ { ++ } ++ ++ public void removeAccessibleSelection(int value0) ++ { ++ } ++ ++ public void clearAccessibleSelection() ++ { ++ } ++ ++ public void selectAllAccessibleSelection() ++ { ++ } ++ } ++ ++ protected class WinListener extends WindowAdapter implements Serializable ++ { ++ JPopupMenu popupMenu; ++ private static final long serialVersionUID = -6415815570638474823L; ++ ++ public WinListener(JPopupMenu popup) ++ { ++ } ++ ++ public void windowClosing(WindowEvent event) ++ { ++ } ++ } ++ ++ /** ++ * This class listens to PropertyChangeEvents occuring in menu's action ++ */ ++ protected class ActionChangedListener implements PropertyChangeListener ++ { ++ /** menu item associated with the action */ ++ private JMenuItem menuItem; ++ ++ /** Creates new ActionChangedListener and adds it to menuItem's action */ ++ public ActionChangedListener(JMenuItem menuItem) ++ { ++ this.menuItem = menuItem; ++ ++ Action a = menuItem.getAction(); ++ if (a != null) ++ a.addPropertyChangeListener(this); ++ } ++ ++ /**This method is invoked when some change occures in menuItem's action*/ ++ public void propertyChange(PropertyChangeEvent evt) ++ { ++ // FIXME: Need to implement ++ } ++ } ++} +Index: javax/swing/JMenuBar.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JMenuBar.java,v +retrieving revision 1.2 +diff -u -r1.2 JMenuBar.java +--- javax/swing/JMenuBar.java 11 Jun 2003 13:20:39 -0000 1.2 ++++ javax/swing/JMenuBar.java 6 Sep 2004 16:35:57 -0000 +@@ -1,5 +1,5 @@ + /* JMenuBar.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,17 +35,453 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing; + ++import java.awt.Color; + import java.awt.Component; ++import java.awt.Dimension; ++import java.awt.Font; ++import java.awt.FontMetrics; ++import java.awt.Graphics; ++import java.awt.Graphics2D; ++import java.awt.Insets; ++import java.awt.Point; + import java.awt.event.KeyEvent; + import java.awt.event.MouseEvent; + import javax.accessibility.Accessible; ++import javax.accessibility.AccessibleContext; ++import javax.accessibility.AccessibleRole; ++import javax.accessibility.AccessibleSelection; ++import javax.accessibility.AccessibleStateSet; ++import javax.accessibility.AccessibleValue; ++import javax.swing.UIManager; ++import javax.swing.event.ChangeEvent; ++import javax.swing.event.ChangeListener; ++import javax.swing.event.MenuDragMouseEvent; ++import javax.swing.event.MenuDragMouseListener; ++import javax.swing.event.MenuKeyEvent; ++import javax.swing.event.MenuKeyListener; ++import javax.swing.plaf.MenuBarUI; ++import javax.swing.plaf.MenuItemUI; ++ + +-public class JMenuBar extends JComponent ++/** ++ *

    ++ * JMenuBar is a container for menu's. For a menu bar to be seen on the ++ * screen, at least one menu should be added to it. Just like adding ++ * components to container, one can use add() to add menu's to the menu bar. ++ * Menu's will be displayed in the menu bar in the order they were added. ++ * The JMenuBar uses selectionModel to keep track of selected menu index. ++ * JMenuBar's selectionModel will fire ChangeEvents to its registered ++ * listeners when the selected index changes. ++ *

    ++ */ ++public class JMenuBar extends JComponent implements Accessible, MenuElement + { +- JMenuBar() +- { +- } ++ /** Fired in a PropertyChangeEvent when the "borderPainted" property changes. */ ++ public static final String BORDER_PAINTED_CHANGED_PROPERTY = "borderPainted"; ++ ++ /** Fired in a PropertyChangeEvent when the "model" changes. */ ++ public static final String MODEL_CHANGED_PROPERTY = "model"; ++ ++ /** Fired in a PropertyChangeEvent when the "margin" changes. */ ++ public static final String MARGIN_CHANGED_PROPERTY = "margin"; ++ private static final long serialVersionUID = -8191026883931977036L; ++ ++ /** JMenuBar's model. It keeps track of selected menu's index */ ++ private transient SingleSelectionModel selectionModel; ++ ++ /* borderPainted property indicating if the menuBar's border will be painted*/ ++ private boolean borderPainted; ++ ++ /* margin between menu bar's border and its menues*/ ++ private Insets margin; ++ ++ /** ++ * Creates a new JMenuBar object. ++ */ ++ public JMenuBar() ++ { ++ selectionModel = new DefaultSingleSelectionModel(); ++ borderPainted = true; ++ updateUI(); ++ } ++ ++ /** ++ * Adds menu to the menu bar ++ * ++ * @param c menu to add ++ * ++ * @return reference to the added menu ++ */ ++ public JMenu add(JMenu c) ++ { ++ c.setAlignmentX(Component.LEFT_ALIGNMENT); ++ super.add(c); ++ return c; ++ } ++ ++ /** ++ * This method overrides addNotify() in the Container to register ++ * this menu bar with the current keyboard manager. ++ */ ++ public void addNotify() ++ { ++ // FIXME: Should register this menu bar with the keyboard manager ++ super.addNotify(); ++ } ++ ++ public AccessibleContext getAccessibleContext() ++ { ++ return null; ++ } ++ ++ /** ++ * Returns reference to this menu bar ++ * ++ * @return reference to this menu bar ++ */ ++ public Component getComponent() ++ { ++ return this; ++ } ++ ++ /** ++ * Returns component at the specified index. ++ * ++ * @param i index of the component to get ++ * ++ * @return component at the specified index. Null is returned if ++ * component at the specified index doesn't exist. ++ * @deprecated Replaced by getComponent(int) ++ */ ++ public Component getComponentAtIndex(int i) ++ { ++ return getComponent(i); ++ } ++ ++ /** ++ * Returns index of the specified component ++ * ++ * @param c Component to search for ++ * ++ * @return index of the specified component. -1 is returned if ++ * specified component doesnt' exist in the menu bar. ++ */ ++ public int getComponentIndex(Component c) ++ { ++ Component[] comps = getComponents(); ++ ++ int index = -1; ++ ++ for (int i = 0; i < comps.length; i++) ++ { ++ if (comps[i].equals(c)) ++ { ++ index = i; ++ break; ++ } ++ } ++ ++ return index; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public JMenu getHelpMenu() ++ { ++ return null; ++ } ++ ++ /** ++ * Returns margin betweeen menu bar's border and its menues ++ * ++ * @return margin between menu bar's border and its menues ++ */ ++ public Insets getMargin() ++ { ++ if (margin == null) ++ return new Insets(0, 0, 0, 0); ++ else ++ return margin; ++ } ++ ++ /** ++ * Return menu at the specified index. If component at the ++ * specified index is not a menu, then null is returned. ++ * ++ * @param index index to look for the menu ++ * ++ * @return menu at specified index, or null if menu doesn't exist ++ * at the specified index. ++ */ ++ public JMenu getMenu(int index) ++ { ++ if (getComponentAtIndex(index) instanceof JMenu) ++ return (JMenu) getComponentAtIndex(index); ++ else ++ return null; ++ } ++ ++ /** ++ * Returns number of menu's in this menu bar ++ * ++ * @return number of menu's in this menu bar ++ */ ++ public int getMenuCount() ++ { ++ return getComponentCount(); ++ } ++ ++ /** ++ * Returns selection model for this menu bar. SelectionModel ++ * keeps track of the selected menu in the menu bar. Whenever ++ * selected property of selectionModel changes, the ChangeEvent ++ * will be fired its ChangeListeners. ++ * ++ * @return selection model for this menu bar. ++ */ ++ public SingleSelectionModel getSelectionModel() ++ { ++ return selectionModel; ++ } ++ ++ /** ++ * Method of MenuElement interface. It returns subcomponents ++ * of the menu bar, which are all the menues that it contains. ++ * ++ * @return MenuElement[] array containing menues in this menu bar ++ */ ++ public MenuElement[] getSubElements() ++ { ++ MenuElement[] subElements = new MenuElement[getComponentCount()]; ++ ++ for (int i = 0; i < getComponentCount(); i++) ++ subElements[i] = (MenuElement) getMenu(i); ++ ++ return subElements; ++ } ++ ++ /** ++ * Set the "UI" property of the menu bar, which is a look and feel class ++ * responsible for handling the menuBar's input events and painting it. ++ * ++ * @return The current "UI" property ++ */ ++ public MenuBarUI getUI() ++ { ++ return (MenuBarUI) ui; ++ } ++ ++ /** ++ * This method returns a name to identify which look and feel class will be ++ * the UI delegate for the menu bar. ++ * ++ * @return The Look and Feel classID. "MenuItemUI" ++ */ ++ public String getUIClassID() ++ { ++ return "MenuBarUI"; ++ } ++ ++ /** ++ * Returns true if menu bar paints its border and false otherwise ++ * ++ * @return true if menu bar paints its border and false otherwise ++ */ ++ public boolean isBorderPainted() ++ { ++ return borderPainted; ++ } ++ ++ /** ++ * Returns true if some menu in menu bar is selected. ++ * ++ * @return true if some menu in menu bar is selected and false otherwise ++ */ ++ public boolean isSelected() ++ { ++ return selectionModel.isSelected(); ++ } ++ ++ /** ++ * This method does nothing by default. This method is need for the ++ * MenuElement interface to be implemented. ++ * ++ * @param isIncluded true if menuBar is included in the selection ++ * and false otherwise ++ */ ++ public void menuSelectionChanged(boolean isIncluded) ++ { ++ // Do nothing - needed for implementation of MenuElement interface ++ } ++ ++ /** ++ * Paints border of the menu bar, if its borderPainted property is set to ++ * true. ++ * ++ * @param g The graphics context with which to paint the border ++ */ ++ protected void paintBorder(Graphics g) ++ { ++ if (borderPainted) ++ getBorder().paintBorder(this, g, 0, 0, getSize(null).width, ++ getSize(null).height); ++ } ++ ++ /** ++ * A string that describes this JMenuBar. Normally only used ++ * for debugging. ++ * ++ * @return A string describing this JMenuBar ++ */ ++ protected String paramString() ++ { ++ return "JMenuBar"; ++ } ++ ++ /** ++ * Process key events forwarded from MenuSelectionManager. This method ++ * doesn't do anything. It is here to conform to the MenuElement interface. ++ * ++ * @param event event forwarded from MenuSelectionManager ++ * @param path path to the menu element from which event was generated ++ * @param manager MenuSelectionManager for the current menu hierarchy ++ * ++ */ ++ public void processKeyEvent(KeyEvent e, MenuElement[] path, ++ MenuSelectionManager manager) ++ { ++ // Do nothing - needed for implementation of MenuElement interface ++ } ++ ++ /** ++ * Process mouse events forwarded from MenuSelectionManager. This method ++ * doesn't do anything. It is here to conform to the MenuElement interface. ++ * ++ * @param event event forwarded from MenuSelectionManager ++ * @param path path to the menu element from which event was generated ++ * @param manager MenuSelectionManager for the current menu hierarchy ++ * ++ */ ++ public void processMouseEvent(MouseEvent event, MenuElement[] path, ++ MenuSelectionManager manager) ++ { ++ // Do nothing - needed for implementation of MenuElement interface ++ } ++ ++ /** ++ * This method overrides removeNotify() in the Container to ++ * unregister this menu bar from the current keyboard manager. ++ */ ++ public void removeNotify() ++ { ++ // Must unregister this menu bar with the current keyboard manager. ++ super.removeNotify(); ++ } ++ ++ /** ++ * Sets painting status of the border. If 'b' is true then menu bar's ++ * border will be painted, and it will not be painted otherwise. ++ * ++ * @param b indicates if menu bar's border should be painted. ++ */ ++ public void setBorderPainted(boolean b) ++ { ++ boolean old = borderPainted; ++ borderPainted = b; ++ if (b != old) ++ { ++ firePropertyChange(BORDER_PAINTED_CHANGED_PROPERTY, old, b); ++ revalidate(); ++ repaint(); ++ } ++ } ++ ++ /** ++ * Sets help menu for this menu bar ++ * ++ * @param menu help menu ++ */ ++ public void setHelpMenu(JMenu menu) ++ { ++ } ++ ++ /** ++ * Sets the menu bar's "margin" bound property, which represents ++ * distance between the menubar's border and its menus. ++ * icon. When marging property is modified, PropertyChangeEvent will ++ * be fired to menuBar's PropertyChangeListener's. ++ * ++ * @param m distance between the menubar's border and its menus. ++ * ++ */ ++ public void setMargin(Insets m) ++ { ++ if (m.equals(this.margin)) ++ { ++ Insets oldMargin = this.margin; ++ this.margin = m; ++ firePropertyChange(MARGIN_CHANGED_PROPERTY, oldMargin, margin); ++ } ++ ++ this.margin = m; ++ } ++ ++ /** ++ * Changes menu bar's selection to the specified menu. ++ * This method updates selected index of menu bar's selection model, ++ * which results in a model firing change event. ++ * ++ * @param sel menu to select ++ */ ++ public void setSelected(Component sel) ++ { ++ int index = getComponentIndex(sel); ++ selectionModel.setSelectedIndex(index); ++ } ++ ++ /** ++ * Sets menuBar's selection model to the one specified ++ * ++ * @param model SingleSelectionModel that needs to be set for this menu bar ++ */ ++ public void setSelectionModel(SingleSelectionModel model) ++ { ++ selectionModel = model; ++ if (selectionModel != model) ++ { ++ SingleSelectionModel oldModel = selectionModel; ++ ++ selectionModel = model; ++ ++ firePropertyChange(MODEL_CHANGED_PROPERTY, oldModel, ++ this.selectionModel); ++ } ++ } ++ ++ /** ++ * Set the "UI" property of the menu bar, which is a look and feel class ++ * responsible for handling menuBar's input events and painting it. ++ * ++ * @param ui The new "UI" property ++ */ ++ public void setUI(MenuBarUI ui) ++ { ++ super.setUI(ui); ++ } ++ ++ /** ++ * Set the "UI" property to a class constructed, via the {@link ++ * UIManager}, from the current look and feel. ++ */ ++ public void updateUI() ++ { ++ MenuBarUI ui = ((MenuBarUI) UIManager.getUI(this)); ++ setUI(ui); ++ invalidate(); ++ } + } +Index: javax/swing/JMenuItem.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JMenuItem.java,v +retrieving revision 1.2 +diff -u -r1.2 JMenuItem.java +--- javax/swing/JMenuItem.java 11 Jun 2003 13:20:39 -0000 1.2 ++++ javax/swing/JMenuItem.java 6 Sep 2004 16:35:57 -0000 +@@ -1,5 +1,5 @@ + /* JMenuItem.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,19 +35,22 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing; + + import java.awt.Component; ++import java.awt.event.InputEvent; + import java.awt.event.KeyEvent; + import java.awt.event.MouseEvent; ++import java.beans.PropertyChangeEvent; + import java.beans.PropertyChangeListener; + import java.io.IOException; + import java.io.ObjectInputStream; + import java.io.ObjectOutputStream; ++import java.util.EventListener; + import javax.accessibility.Accessible; + import javax.accessibility.AccessibleContext; + import javax.accessibility.AccessibleRole; ++import javax.swing.UIManager; + import javax.swing.event.ChangeEvent; + import javax.swing.event.ChangeListener; + import javax.swing.event.MenuDragMouseEvent; +@@ -56,418 +59,620 @@ + import javax.swing.event.MenuKeyListener; + import javax.swing.plaf.MenuItemUI; + ++ + /** +- * JMenuItem +- * @author Andrew Selkirk +- * @version 1.0 ++ *

    ++ * JMenuItem represents element in the menu. It inherits most of ++ * its functionality from AbstractButton, however its behavior somewhat ++ * varies from it. JMenuItem fire different kinds of events. ++ * PropertyChangeEvents are fired when menuItems properties are modified; ++ * ChangeEvents are fired when menuItem's state changes and actionEvents are ++ * fired when menu item is selected. In addition to this events menuItem also ++ * fire MenuDragMouseEvent and MenuKeyEvents when mouse is dragged over ++ * the menu item or associated key with menu item is invoked respectively. ++ *

    + */ +-public class JMenuItem extends AbstractButton implements Accessible, MenuElement { +- +- //------------------------------------------------------------- +- // Classes ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * AccessibleJMenuItem +- */ +- protected class AccessibleJMenuItem extends AccessibleAbstractButton +- implements ChangeListener { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor AccessibleJMenuItem +- * @param component TODO +- */ +- AccessibleJMenuItem(JMenuItem component) { +- super(component); +- // TODO +- } // AccessibleJMenuItem() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * stateChanged +- * @param event TODO +- */ +- public void stateChanged(ChangeEvent event) { +- // TODO +- } // stateChanged() +- +- /** +- * getAccessibleRole +- * @returns AccessibleRole +- */ +- public AccessibleRole getAccessibleRole() { +- return AccessibleRole.MENU_ITEM; +- } // getAccessibleRole() +- +- +- } // AccessibleJMenuItem +- +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * uiClassID +- */ +- private static final String uiClassID = "MenuItemUI"; +- +- /** +- * accelerator +- */ +- private KeyStroke accelerator; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor JMenuItem +- */ +- public JMenuItem() { +- // TODO +- } // JMenuItem() +- +- /** +- * Constructor JMenuItem +- * @param icon TODO +- */ +- public JMenuItem(Icon icon) { +- // TODO +- } // JMenuItem() +- +- /** +- * Constructor JMenuItem +- * @param text TODO +- */ +- public JMenuItem(String text) { +- // TODO +- } // JMenuItem() +- +- /** +- * Constructor JMenuItem +- * @param action TODO +- */ +- public JMenuItem(Action action) { +- // TODO +- } // JMenuItem() +- +- /** +- * Constructor JMenuItem +- * @param text TODO +- * @param icon TODO +- */ +- public JMenuItem(String text, Icon icon) { +- // TODO +- } // JMenuItem() +- +- /** +- * Constructor JMenuItem +- * @param text TODO +- * @param mnemonic TODO +- */ +- public JMenuItem(String text, int mnemonic) { +- // TODO +- } // JMenuItem() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * readObject +- * @param stream TODO +- * @exception IOException TODO +- * @exception ClassNotFoundException TODO +- */ +- private void readObject(ObjectInputStream stream) +- throws IOException, ClassNotFoundException { +- // TODO +- } // readObject() +- +- /** +- * writeObject +- * @param stream TODO +- * @exception IOException TODO +- */ +- private void writeObject(ObjectOutputStream stream) throws IOException { +- // TODO +- } // writeObject() +- +- /** +- * init +- * @param text TODO +- * @param icon TODO +- */ +- protected void init(String text, Icon icon) { +- // TODO +- } // init() +- +- /** +- * setUI +- * @param ui TODO +- */ +- public void setUI(MenuItemUI ui) { +- super.setUI(ui); +- // TODO +- } // setUI() +- +- /** +- * updateUI +- */ +- public void updateUI() { +- setUI((MenuItemUI) UIManager.get(this)); +- invalidate(); +- } // updateUI() +- +- /** +- * getUIClassID +- * @returns String +- */ +- public String getUIClassID() { +- return uiClassID; +- } // getUIClassID() +- +- /** +- * isArmed +- * @returns boolean +- */ +- public boolean isArmed() { +- return false; // TODO +- } // isArmed() +- +- /** +- * setArmed +- * @param armed TODO +- */ +- public void setArmed(boolean armed) { +- // TODO +- } // setArmed() +- +- /** +- * setEnabled +- * @param enabled TODO +- */ +- public void setEnabled(boolean enabled) { +- // TODO +- } // setEnabled() +- +- /** +- * getAccelerator +- * @returns KeyStroke +- */ +- public KeyStroke getAccelerator() { +- return null; // TODO +- } // getAccelerator() +- +- /** +- * setAccelerator +- * @param keystroke TODO +- */ +- public void setAccelerator(KeyStroke keystroke) { +- // TODO +- } // setAccelerator() +- +- /** +- * configurePropertiesFromAction +- * @param action TODO +- */ +- protected void configurePropertiesFromAction(Action action) { +- // TODO +- } // configurePropertiesFromAction() +- +- /** +- * createActionPropertyChangeListener +- * @param action TODO +- * @returns PropertyChangeListener +- */ +- protected PropertyChangeListener createActionPropertyChangeListener(Action action) { +- return null; // TODO +- } // createActionPropertyChangeListener() +- +- /** +- * processMouseEvent +- * @param event TODO +- * @param path TODO +- * @param manager TODO +- */ +- public void processMouseEvent(MouseEvent event, MenuElement[] path, +- MenuSelectionManager manager) { +- // TODO +- } // processMouseEvent() +- +- /** +- * processKeyEvent +- * @param event TODO +- * @param path TODO +- * @param manager TODO +- */ +- public void processKeyEvent(KeyEvent event, MenuElement[] path, +- MenuSelectionManager manager) { +- // TODO +- } // processKeyEvent() +- +- /** +- * processMenuDragMouseEvent +- * @param event TODO +- */ +- public void processMenuDragMouseEvent(MenuDragMouseEvent event) { +- // TODO +- } // processMenuDragMouseEvent() +- +- /** +- * processMenuKeyEvent +- * @param event TODO +- */ +- public void processMenuKeyEvent(MenuKeyEvent event) { +- // TODO +- } // processMenuKeyEvent() +- +- /** +- * fireMenuDragMouseEntered +- * @param event TODO +- */ +- protected void fireMenuDragMouseEntered(MenuDragMouseEvent event) { +- // TODO +- } // fireMenuDragMouseEntered() +- +- /** +- * fireMenuDragMouseExited +- * @param event TODO +- */ +- protected void fireMenuDragMouseExited(MenuDragMouseEvent event) { +- // TODO +- } // fireMenuDragMouseExited() +- +- /** +- * fireMenuDragMouseDragged +- * @param event TODO +- */ +- protected void fireMenuDragMouseDragged(MenuDragMouseEvent event) { +- // TODO +- } // fireMenuDragMouseDragged() +- +- /** +- * fireMenuDragMouseReleased +- * @param event TODO +- */ +- protected void fireMenuDragMouseReleased(MenuDragMouseEvent event) { +- // TODO +- } // fireMenuDragMouseReleased() +- +- /** +- * fireMenuKeyPressed +- * @param event TODO +- */ +- protected void fireMenuKeyPressed(MenuKeyEvent event) { +- // TODO +- } // fireMenuKeyPressed() +- +- /** +- * fireMenuKeyReleased +- * @param event TODO +- */ +- protected void fireMenuKeyReleased(MenuKeyEvent event) { +- // TODO +- } // fireMenuKeyReleased() +- +- /** +- * fireMenuKeyTyped +- * @param event TODO +- */ +- protected void fireMenuKeyTyped(MenuKeyEvent event) { +- // TODO +- } // fireMenuKeyTyped() +- +- /** +- * menuSelectionChanged +- * @param changed TODO +- */ +- public void menuSelectionChanged(boolean changed) { +- // TODO +- } // menuSelectionChanged() +- +- /** +- * getSubElements +- * @returns MenuElement[] +- */ +- public MenuElement[] getSubElements() { +- return null; // TODO +- } // getSubElements() +- +- /** +- * getComponent +- * @returns Component +- */ +- public Component getComponent() { +- return null; // TODO +- } // getComponent() +- +- /** +- * addMenuDragMouseListener +- * @param listener TODO +- */ +- public void addMenuDragMouseListener(MenuDragMouseListener listener) { +- // TODO +- } // addMenuDragMouseListener() +- +- /** +- * removeMenuDragMouseListener +- * @param listener TODO +- */ +- public void removeMenuDragMouseListener(MenuDragMouseListener listener) { +- // TODO +- } // removeMenuDragMouseListener() +- +- /** +- * addMenuKeyListener +- * @param listener TODO +- */ +- public void addMenuKeyListener(MenuKeyListener listener) { +- // TODO +- } // addMenuKeyListener() +- +- /** +- * removeMenuKeyListener +- * @param listener TODO +- */ +- public void removeMenuKeyListener(MenuKeyListener listener) { +- // TODO +- } // removeMenuKeyListener() +- +- /** +- * paramString +- * @returns String +- */ +- protected String paramString() { +- return null; // TODO +- } // paramString() +- +- /** +- * getAccessibleContext +- * @returns AccessibleContext +- */ +- public AccessibleContext getAccessibleContext() { +- if (accessibleContext == null) { +- accessibleContext = new AccessibleJMenuItem(this); +- } // if +- return accessibleContext; +- } // getAccessibleContext() +- +- +-} // JMenuItem ++public class JMenuItem extends AbstractButton implements Accessible, ++ MenuElement ++{ ++ private static final long serialVersionUID = -1681004643499461044L; ++ ++ /** name for the UI delegate for this menuItem. */ ++ private static final String uiClassID = "MenuItemUI"; ++ ++ /** Combination of keyboard keys that can be used to activate this menu item */ ++ private KeyStroke accelerator; ++ ++ /** ++ * Creates a new JMenuItem object. ++ */ ++ public JMenuItem() ++ { ++ super(null, null); ++ } ++ ++ /** ++ * Creates a new JMenuItem with the given icon. ++ * ++ * @param icon Icon that will be displayed on the menu item ++ */ ++ public JMenuItem(Icon icon) ++ { ++ // FIXME: The requestedFocusEnabled property should ++ // be set to false, when only icon is set for menu item. ++ super(null, icon); ++ } ++ ++ /** ++ * Creates a new JMenuItem with the given label. ++ * ++ * @param text label for the menu item ++ */ ++ public JMenuItem(String text) ++ { ++ super(text, null); ++ } ++ ++ /** ++ * Creates a new JMenuItem associated with the specified action. ++ * ++ * @param action action for this menu item ++ */ ++ public JMenuItem(Action action) ++ { ++ super(null, null); ++ super.setAction(action); ++ } ++ ++ /** ++ * Creates a new JMenuItem with specified text and icon. ++ * Text is displayed to the left of icon by default. ++ * ++ * @param text label for this menu item ++ * @param icon icon that will be displayed on this menu item ++ */ ++ public JMenuItem(String text, Icon icon) ++ { ++ super(text, icon); ++ } ++ ++ /** ++ * Creates a new JMenuItem object. ++ * ++ * @param text label for this menu item ++ * @param mnemonic - Single key that can be used with a ++ * look-and-feel meta key to activate this menu item. However ++ * menu item should be visible on the screen when mnemonic is used. ++ */ ++ public JMenuItem(String text, int mnemonic) ++ { ++ super(text, null); ++ setMnemonic(mnemonic); ++ } ++ ++ private void readObject(ObjectInputStream stream) ++ throws IOException, ClassNotFoundException ++ { ++ } ++ ++ private void writeObject(ObjectOutputStream stream) throws IOException ++ { ++ } ++ ++ /** ++ * Initializes this menu item ++ * ++ * @param text label for this menu item ++ * @param icon icon to be displayed for this menu item ++ */ ++ protected void init(String text, Icon icon) ++ { ++ super.init(text, icon); ++ ++ // Initializes properties for this menu item, that are different ++ // from Abstract button properties. ++ /* NOTE: According to java specifications paint_border should be set to false, ++ since menu item should not have a border. However running few java programs ++ it seems that menu items and menues can have a border. Commenting ++ out statement below for now. */ ++ //borderPainted = false; ++ focusPainted = false; ++ horizontalAlignment = JButton.LEFT; ++ horizontalTextPosition = JButton.LEFT; ++ } ++ ++ /** ++ * Set the "UI" property of the menu item, which is a look and feel class ++ * responsible for handling menuItem's input events and painting it. ++ * ++ * @param ui The new "UI" property ++ */ ++ public void setUI(MenuItemUI ui) ++ { ++ super.setUI(ui); ++ } ++ ++ /** ++ * This method sets this menuItem's UI to the UIManager's default for the ++ * current look and feel. ++ */ ++ public void updateUI() ++ { ++ MenuItemUI mi = ((MenuItemUI) UIManager.getUI(this)); ++ setUI(mi); ++ invalidate(); ++ } ++ ++ /** ++ * This method returns a name to identify which look and feel class will be ++ * the UI delegate for the menuItem. ++ * ++ * @return The Look and Feel classID. "MenuItemUI" ++ */ ++ public String getUIClassID() ++ { ++ return uiClassID; ++ } ++ ++ /** ++ * Returns true if button's model is armed and false otherwise. The ++ * button model is armed if menu item has focus or it is selected. ++ * ++ * @return $boolean$ true if button's model is armed and false otherwise ++ */ ++ public boolean isArmed() ++ { ++ return getModel().isArmed(); ++ } ++ ++ /** ++ * Sets menuItem's "ARMED" property ++ * ++ * @param armed DOCUMENT ME! ++ */ ++ public void setArmed(boolean armed) ++ { ++ getModel().setArmed(armed); ++ } ++ ++ /** ++ * Enable or disable menu item. When menu item is disabled, ++ * its text and icon are grayed out if they exist. ++ * ++ * @param enabled if true enable menu item, and disable otherwise. ++ */ ++ public void setEnabled(boolean enabled) ++ { ++ super.setEnabled(enabled); ++ } ++ ++ /** ++ * Return accelerator for this menu item. ++ * ++ * @return $KeyStroke$ accelerator for this menu item. ++ */ ++ public KeyStroke getAccelerator() ++ { ++ return accelerator; ++ } ++ ++ /** ++ * Sets accelerator for this menu item. ++ * ++ * @param keystroke accelerator for this menu item. ++ */ ++ public void setAccelerator(KeyStroke keystroke) ++ { ++ this.accelerator = keystroke; ++ } ++ ++ /** ++ * Configures menu items' properties from properties of the specified action. ++ * This method overrides configurePropertiesFromAction from AbstractButton ++ * to also set accelerator property. ++ * ++ * @param action action to configure properties from ++ */ ++ protected void configurePropertiesFromAction(Action action) ++ { ++ super.configurePropertiesFromAction(action); ++ ++ if (! (this instanceof JMenu) && action != null) ++ setAccelerator((KeyStroke) (action.getValue(Action.ACCELERATOR_KEY))); ++ } ++ ++ /** ++ * Creates PropertyChangeListener to listen for the changes in action ++ * properties. ++ * ++ * @param action action to listen to for property changes ++ * ++ * @return $PropertyChangeListener$ Listener that listens to changes in ++ * action properties. ++ */ ++ protected PropertyChangeListener createActionPropertyChangeListener(Action action) ++ { ++ return new PropertyChangeListener() ++ { ++ public void propertyChange(PropertyChangeEvent e) ++ { ++ Action act = (Action) (e.getSource()); ++ configurePropertiesFromAction(act); ++ } ++ }; ++ } ++ ++ /** ++ * Process mouse events forwarded from MenuSelectionManager. ++ * ++ * @param event event forwarded from MenuSelectionManager ++ * @param path path to the menu element from which event was generated ++ * @param manager MenuSelectionManager for the current menu hierarchy ++ */ ++ public void processMouseEvent(MouseEvent event, MenuElement[] path, ++ MenuSelectionManager manager) ++ { ++ // Fire MenuDragMouseEvents if mouse is being dragged. ++ boolean dragged ++ = (event.getModifiersEx() & InputEvent.BUTTON1_DOWN_MASK) != 0; ++ if (dragged) ++ processMenuDragMouseEvent(createMenuDragMouseEvent(event, path, manager)); ++ ++ switch (event.getID()) ++ { ++ case MouseEvent.MOUSE_CLICKED: ++ break; ++ case MouseEvent.MOUSE_ENTERED: ++ if (isRolloverEnabled()) ++ model.setRollover(true); ++ break; ++ case MouseEvent.MOUSE_EXITED: ++ if (isRolloverEnabled()) ++ model.setRollover(false); ++ ++ // for JMenu last element on the path is its popupMenu. ++ // JMenu shouldn't me disarmed. ++ if (! (path[path.length - 1] instanceof JPopupMenu) && ! dragged) ++ setArmed(false); ++ break; ++ case MouseEvent.MOUSE_PRESSED: ++ if ((event.getModifiersEx() & InputEvent.BUTTON1_DOWN_MASK) != 0) ++ { ++ model.setArmed(true); ++ model.setPressed(true); ++ } ++ break; ++ case MouseEvent.MOUSE_RELEASED: ++ break; ++ case MouseEvent.MOUSE_MOVED: ++ break; ++ case MouseEvent.MOUSE_DRAGGED: ++ break; ++ } ++ } ++ ++ /** ++ * Creates MenuDragMouseEvent. ++ * ++ * @param event MouseEvent that occured while mouse was pressed. ++ * @param path Path the the menu element where the dragging event was ++ * originated ++ * @param manager MenuSelectionManager for the current menu hierarchy. ++ * ++ * @return new MenuDragMouseEvent ++ */ ++ private MenuDragMouseEvent createMenuDragMouseEvent(MouseEvent event, ++ MenuElement[] path, ++ MenuSelectionManager manager) ++ { ++ return new MenuDragMouseEvent((Component) event.getSource(), ++ event.getID(), event.getWhen(), ++ event.getModifiers(), event.getX(), ++ event.getY(), event.getClickCount(), ++ event.isPopupTrigger(), path, manager); ++ } ++ ++ /** ++ * Process key events forwarded from MenuSelectionManager. ++ * ++ * @param event event forwarded from MenuSelectionManager ++ * @param path path to the menu element from which event was generated ++ * @param manager MenuSelectionManager for the current menu hierarchy ++ */ ++ public void processKeyEvent(KeyEvent event, MenuElement[] path, ++ MenuSelectionManager manager) ++ { ++ // Need to implement. ++ } ++ ++ /** ++ * This method fires MenuDragMouseEvents to registered listeners. ++ * Different types of MenuDragMouseEvents are fired depending ++ * on the observed mouse event. ++ * ++ * @param event Mouse ++ */ ++ public void processMenuDragMouseEvent(MenuDragMouseEvent event) ++ { ++ switch (event.getID()) ++ { ++ case MouseEvent.MOUSE_ENTERED: ++ fireMenuDragMouseEntered(event); ++ break; ++ case MouseEvent.MOUSE_EXITED: ++ fireMenuDragMouseExited(event); ++ break; ++ case MouseEvent.MOUSE_DRAGGED: ++ fireMenuDragMouseDragged(event); ++ break; ++ case MouseEvent.MOUSE_RELEASED: ++ fireMenuDragMouseReleased(event); ++ break; ++ } ++ } ++ ++ /** ++ * This method fires MenuKeyEvent to registered listeners. ++ * Different types of MenuKeyEvents are fired depending ++ * on the observed key event. ++ * ++ * @param event DOCUMENT ME! ++ */ ++ public void processMenuKeyEvent(MenuKeyEvent event) ++ { ++ // Need to implement. ++ } ++ ++ /** ++ * Fires MenuDragMouseEvent to all of the menuItem's MouseInputListeners. ++ * ++ * @param event The event signifying that mouse entered menuItem while it was dragged ++ */ ++ protected void fireMenuDragMouseEntered(MenuDragMouseEvent event) ++ { ++ EventListener[] ll = listenerList.getListeners(MenuDragMouseListener.class); ++ ++ for (int i = 0; i < ll.length; i++) ++ ((MenuDragMouseListener) ll[i]).menuDragMouseEntered(event); ++ } ++ ++ /** ++ * Fires MenuDragMouseEvent to all of the menuItem's MouseInputListeners. ++ * ++ * @param event The event signifying that mouse has exited menu item, while it was dragged ++ */ ++ protected void fireMenuDragMouseExited(MenuDragMouseEvent event) ++ { ++ EventListener[] ll = listenerList.getListeners(MenuDragMouseListener.class); ++ ++ for (int i = 0; i < ll.length; i++) ++ ((MenuDragMouseListener) ll[i]).menuDragMouseExited(event); ++ } ++ ++ /** ++ * Fires MenuDragMouseEvent to all of the menuItem's MouseInputListeners. ++ * ++ * @param event The event signifying that mouse is being dragged over the menuItem ++ */ ++ protected void fireMenuDragMouseDragged(MenuDragMouseEvent event) ++ { ++ EventListener[] ll = listenerList.getListeners(MenuDragMouseListener.class); ++ ++ for (int i = 0; i < ll.length; i++) ++ ((MenuDragMouseListener) ll[i]).menuDragMouseDragged(event); ++ } ++ ++ /** ++ * This method fires a MenuDragMouseEvent to all the MenuItem's MouseInputListeners. ++ * ++ * @param event The event signifying that mouse was released while it was dragged over the menuItem ++ */ ++ protected void fireMenuDragMouseReleased(MenuDragMouseEvent event) ++ { ++ EventListener[] ll = listenerList.getListeners(MenuDragMouseListener.class); ++ ++ for (int i = 0; i < ll.length; i++) ++ ((MenuDragMouseListener) ll[i]).menuDragMouseReleased(event); ++ } ++ ++ /** ++ * This method fires a MenuKeyEvent to all the MenuItem's MenuKeyListeners. ++ * ++ * @param event The event signifying that key associated with this menu was pressed ++ */ ++ protected void fireMenuKeyPressed(MenuKeyEvent event) ++ { ++ EventListener[] ll = listenerList.getListeners(MenuKeyListener.class); ++ ++ for (int i = 0; i < ll.length; i++) ++ ((MenuKeyListener) ll[i]).menuKeyPressed(event); ++ } ++ ++ /** ++ * This method fires a MenuKeyEvent to all the MenuItem's MenuKeyListeners. ++ * ++ * @param event The event signifying that key associated with this menu was released ++ */ ++ protected void fireMenuKeyReleased(MenuKeyEvent event) ++ { ++ EventListener[] ll = listenerList.getListeners(MenuKeyListener.class); ++ ++ for (int i = 0; i < ll.length; i++) ++ ((MenuKeyListener) ll[i]).menuKeyTyped(event); ++ } ++ ++ /** ++ * This method fires a MenuKeyEvent to all the MenuItem's MenuKeyListeners. ++ * ++ * @param event The event signifying that key associated with this menu was typed. ++ * The key is typed when it was pressed and then released ++ */ ++ protected void fireMenuKeyTyped(MenuKeyEvent event) ++ { ++ EventListener[] ll = listenerList.getListeners(MenuKeyListener.class); ++ ++ for (int i = 0; i < ll.length; i++) ++ ((MenuKeyListener) ll[i]).menuKeyTyped(event); ++ } ++ ++ /** ++ * Method of the MenuElement interface. ++ * This method is invoked by MenuSelectionManager when selection of ++ * this menu item has changed. If this menu item was selected then ++ * arm it's model, and disarm the model otherwise. The menu item ++ * is considered to be selected, and thus highlighted when its model ++ * is armed. ++ * ++ * @param changed indicates selection status of this menu item. If changed is ++ * true then menu item is selected and deselected otherwise. ++ */ ++ public void menuSelectionChanged(boolean changed) ++ { ++ if (changed) ++ { ++ model.setArmed(true); ++ ++ if (this.getParent() instanceof JPopupMenu) ++ ((JPopupMenu) this.getParent()).setSelected(this); ++ } ++ else ++ { ++ model.setArmed(false); ++ ++ if (this.getParent() instanceof JPopupMenu) ++ ((JPopupMenu) this.getParent()).getSelectionModel().clearSelection(); ++ } ++ } ++ ++ /** ++ * Method of the MenuElement interface. ++ * ++ * @return $MenuElement[]$ Returns array of sub-components for this menu ++ * item. By default menuItem doesn't have any subcomponents and so ++ * empty array is returned instead. ++ */ ++ public MenuElement[] getSubElements() ++ { ++ return new MenuElement[0]; ++ } ++ ++ /** ++ * Returns reference to the component that will paint this menu item. ++ * ++ * @return $Component$ Component that will paint this menu item. ++ * Simply returns reference to this menu item. ++ */ ++ public Component getComponent() ++ { ++ return this; ++ } ++ ++ /** ++ * Adds a MenuDragMouseListener to this menu item. When mouse ++ * is dragged over the menu item the MenuDragMouseEvents will be ++ * fired, and these listeners will be called. ++ * ++ * @param listener The new listener to add ++ */ ++ public void addMenuDragMouseListener(MenuDragMouseListener listener) ++ { ++ listenerList.add(MenuDragMouseListener.class, listener); ++ } ++ ++ /** ++ * Removes a MenuDragMouseListener from the menuItem's listener list. ++ * ++ * @param listener The listener to remove ++ */ ++ public void removeMenuDragMouseListener(MenuDragMouseListener listener) ++ { ++ listenerList.remove(MenuDragMouseListener.class, listener); ++ } ++ ++ /** ++ * Returns all added MenuDragMouseListener objects. ++ * ++ * @return an array of listeners ++ * ++ * @since 1.4 ++ */ ++ public MenuDragMouseListener[] getMenuDragMouseListeners() ++ { ++ return (MenuDragMouseListener[]) listenerList.getListeners(MenuDragMouseListener.class); ++ } ++ ++ /** ++ * Adds an MenuKeyListener to this menu item. This listener will be ++ * invoked when MenuKeyEvents will be fired by this menu item. ++ * ++ * @param listener The new listener to add ++ */ ++ public void addMenuKeyListener(MenuKeyListener listener) ++ { ++ listenerList.add(MenuKeyListener.class, listener); ++ } ++ ++ /** ++ * Removes an MenuKeyListener from the menuItem's listener list. ++ * ++ * @param listener The listener to remove ++ */ ++ public void removeMenuKeyListener(MenuKeyListener listener) ++ { ++ listenerList.remove(MenuKeyListener.class, listener); ++ } ++ ++ /** ++ * Returns all added MenuKeyListener objects. ++ * ++ * @return an array of listeners ++ * ++ * @since 1.4 ++ */ ++ public MenuKeyListener[] getMenuKeyListeners() ++ { ++ return (MenuKeyListener[]) listenerList.getListeners(MenuKeyListener.class); ++ } ++ ++ /** ++ * A string that describes this JMenuItem. Normally only used ++ * for debugging. ++ * ++ * @return A string describing this JMenuItem ++ */ ++ protected String paramString() ++ { ++ return "JMenuItem"; ++ } ++ ++ public AccessibleContext getAccessibleContext() ++ { ++ if (accessibleContext == null) ++ accessibleContext = new AccessibleJMenuItem(); ++ ++ return accessibleContext; ++ } ++ ++ protected class AccessibleJMenuItem extends AccessibleAbstractButton ++ implements ChangeListener ++ { ++ private static final long serialVersionUID = 6748924232082076534L; ++ ++ /** ++ * Creates a new AccessibleJMenuItem object. ++ */ ++ AccessibleJMenuItem() ++ { ++ //super(component); ++ } ++ ++ public void stateChanged(ChangeEvent event) ++ { ++ } ++ ++ public AccessibleRole getAccessibleRole() ++ { ++ return AccessibleRole.MENU_ITEM; ++ } ++ } ++} +Index: javax/swing/JOptionPane.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JOptionPane.java,v +retrieving revision 1.2 +diff -u -r1.2 JOptionPane.java +--- javax/swing/JOptionPane.java 11 Jun 2003 13:20:39 -0000 1.2 ++++ javax/swing/JOptionPane.java 6 Sep 2004 16:35:57 -0000 +@@ -1,5 +1,5 @@ +-/* JOptionPane.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++/* JOptionPane.java ++ Copyright (C) 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,365 +35,1515 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing; + +-import java.awt.BorderLayout; + import java.awt.Component; + import java.awt.Dialog; ++import java.awt.Dimension; + import java.awt.Frame; + import javax.accessibility.Accessible; + import javax.accessibility.AccessibleContext; ++import javax.accessibility.AccessibleRole; ++import javax.swing.Icon; ++import javax.swing.JInternalFrame; ++import javax.swing.event.InternalFrameAdapter; ++import javax.swing.event.InternalFrameEvent; + import javax.swing.plaf.OptionPaneUI; + +-public class JOptionPane extends JComponent +-{ +- public static final int DEFAULT_OPTION = 0; +- public static final int YES_NO_OPTION = 1; +- public static final int YES_NO_CANCEL_OPTION = 2; +- public static final int OK_CANCEL_OPTION = 3; +- public static final int YES_OPTION = 4; +- public static final int NO_OPTION = 5; +- public static final int CANCEL_OPTION = 6; +- public static final int OK_OPTION = 7; +- public static final int CLOSED_OPTION = 8; +- +- public static final int ERROR_MESSAGE = 0; +- public static final int INFORMATION_MESSAGE = 1; +- public static final int WARNING_MESSAGE = 2; +- public static final int QUESTION_MESSAGE = 3; +- public static final int PLAIN_MESSAGE = 4; +- +- final static String VALUE_PROPERTY = "value_prop"; +- final static String INPUT_VALUE_PROPERTY = "input_value_prop"; +- +- final static String UNINITIALIZED_VALUE = "uninit"; +- +- // Ronald: shouldnt by public ? +- public Object msg; +- public int mtype; +- public int otype; +- public Icon icon; +- public Object []args; +- public Object init; +- +- public JDialog dialog; +- +- /***************************************************************************** +- * +- * +- * joptionpanels +- * +- * +- ***********************************/ +- +- JOptionPane() +- { +- this("mess"); +- } +- +- JOptionPane(Object m) +- { +- this(m, PLAIN_MESSAGE); +- } +- +- JOptionPane(Object m, +- int mtype) +- { +- this(m, mtype, DEFAULT_OPTION); +- } +- +- JOptionPane(Object m, +- int mtype, +- int otype) +- { +- this(m, mtype, otype, null); +- } +- +- JOptionPane(Object m, +- int mtype, +- int otype, +- Icon icon) +- { +- this(m, mtype, otype, icon, null); +- } + +- JOptionPane(Object m, +- int mtype, +- int otype, +- Icon icon, +- Object []args) +- { +- this(m, mtype, otype, icon, args, null); +- } +- +- JOptionPane(Object msg, +- int mtype, +- int otype, +- Icon icon, +- Object []args, +- Object init) ++/** ++ * This class creates different types of JDialogs and JInternalFrames that can ++ * ask users for input or pass on information. JOptionPane can be used by ++ * calling one of the show static methods or by creating an instance of ++ * JOptionPane and calling createDialog or createInternalFrame. ++ */ ++public class JOptionPane extends JComponent implements Accessible ++{ ++ /** ++ * DOCUMENT ME! ++ */ ++ protected class AccessibleJOptionPane extends JComponent.AccessibleJComponent ++ { ++ /** DOCUMENT ME! */ ++ private static final long serialVersionUID = 686071432213084821L; ++ ++ /** ++ * Creates a new AccessibleJOptionPane object. ++ */ ++ protected AccessibleJOptionPane() + { +- // this(m, mtype, otype, icon, args, init); +- this.msg = msg; +- this.mtype = mtype; +- this.otype = otype; +- this.icon = icon; +- this.args = args; +- this.init = init; +- +- updateUI(); + } + +- +- /***************************************************************************** +- * +- * +- * ++ /** ++ * DOCUMENT ME! + * +- * +- ***********************************/ +- +- Object val; +- public void setValue(Object v) +- { val = v; } +- public Object getValue() +- { return val; } +- +- public String getUIClassID() +- { return "JOptionPane"; } +- +- +- public void setUI(OptionPaneUI ui) { +- super.setUI(ui); +- } +- +- public OptionPaneUI getUI() { +- return (OptionPaneUI)ui; +- } +- +- public void updateUI() { +- setUI((OptionPaneUI)UIManager.getUI(this)); +- } +- +- +- public AccessibleContext getAccessibleContext() +- { +- return null; +- } +- +- protected String paramString() +- { +- return "JOptionPane"; +- } +- +- public static void showMessageDialog(Component frame, +- String msg, +- String title, +- int bla) +- { +- DoShowOptionDialog(frame, +- msg, +- title, +- bla, +- 0, +- null, +- null, +- null); +- } +- +- public static void showMessageDialog(Component frame, +- String msg, +- String title, +- int bla, +- Icon icon) +- { +- DoShowOptionDialog(frame, +- msg, +- title, +- bla, +- 0, +- icon, +- null, +- null); +- } +- +- public static void showMessageDialog(Component frame, +- String msg) +- { +- showMessageDialog(frame, +- msg, +- null); +- } +- +- +- public static void showMessageDialog(Component frame, +- String msg, +- Icon icon) +- { +- //System.out.println("++++++++++++++++++creating message dialog:"+msg + ", frame="+frame); +- DoShowOptionDialog(frame, +- msg, +- "Message", +- DEFAULT_OPTION, +- PLAIN_MESSAGE, +- icon, +- null, +- null); +- } +- +- public static int showConfirmDialog(JFrame frame, +- String yes, +- String no, +- int bla) +- { +- return 0; +- } +- +- public static String showInputDialog(JFrame frame, +- String msg, +- String title, +- int opt_type, +- int msg_type, +- Icon icon, +- Object[] opts, +- Object init) +- { +- return (String) DoShowOptionDialog(frame, +- msg, +- title, +- opt_type, +- msg_type, +- icon, +- opts, +- init); +- } +- +- public static Object showInputDialog(JFrame frame, +- String msg, +- String title, +- int opt_type, +- Icon icon, +- Object[] opts, +- Object init) ++ * @return DOCUMENT ME! ++ */ ++ public AccessibleRole getAccessibleRole() + { +- return DoShowOptionDialog(frame, +- msg, +- title, +- opt_type, +- 0, //msg_type, +- icon, +- opts, +- init); ++ return null; + } ++ } + ++ /** DOCUMENT ME! */ ++ private static final long serialVersionUID = 5231143276678566796L; ++ ++ /** The value returned when cancel option is selected. */ ++ public static final int CANCEL_OPTION = 2; ++ ++ /** The value returned when the dialog is closed without a selection. */ ++ public static final int CLOSED_OPTION = -1; ++ ++ /** An option used in confirmation dialog methods. */ ++ public static final int DEFAULT_OPTION = -1; ++ ++ /** The value returned when the no option is selected. */ ++ public static final int NO_OPTION = 1; ++ ++ /** An option used in confirmation dialog methods. */ ++ public static final int OK_CANCEL_OPTION = 2; ++ ++ /** The value returned when the ok option is selected. */ ++ public static final int OK_OPTION = 0; ++ ++ /** An option used in confirmation dialog methods. */ ++ public static final int YES_NO_CANCEL_OPTION = 1; ++ ++ /** An option used in confirmation dialog methods. */ ++ public static final int YES_NO_OPTION = 0; ++ ++ /** The value returned when the yes option is selected. */ ++ public static final int YES_OPTION = 0; ++ ++ /** Identifier for the error message type. */ ++ public static final int ERROR_MESSAGE = 0; ++ ++ /** Identifier for the information message type. */ ++ public static final int INFORMATION_MESSAGE = 1; ++ ++ /** Identifier for the plain message type. */ ++ public static final int PLAIN_MESSAGE = -1; ++ ++ /** Identifier for the question message type. */ ++ public static final int QUESTION_MESSAGE = 3; ++ ++ /** Identifier for the warning message type. */ ++ public static final int WARNING_MESSAGE = 2; ++ ++ /** ++ * The identifier for the propertyChangeEvent when the icon property ++ * changes. ++ */ ++ public static final String ICON_PROPERTY = "icon"; ++ ++ /** ++ * The identifier for the propertyChangeEvent when the initialSelectionValue ++ * property changes. ++ */ ++ public static final String INITIAL_SELECTION_VALUE_PROPERTY = "initialSelectionValue"; ++ ++ /** ++ * The identifier for the propertyChangeEvent when the initialValue property ++ * changes. ++ */ ++ public static final String INITIAL_VALUE_PROPERTY = "initialValue"; ++ ++ /** ++ * The identifier for the propertyChangeEvent when the inputValue property ++ * changes. ++ */ ++ public static final String INPUT_VALUE_PROPERTY = "inputValue"; ++ ++ /** ++ * The identifier for the propertyChangeEvent when the message property ++ * changes. ++ */ ++ public static final String MESSAGE_PROPERTY = "message"; ++ ++ /** ++ * The identifier for the propertyChangeEvent when the messageType property ++ * changes. ++ */ ++ public static final String MESSAGE_TYPE_PROPERTY = "messageType"; ++ ++ /** ++ * The identifier for the propertyChangeEvent when the optionType property ++ * changes. ++ */ ++ public static final String OPTION_TYPE_PROPERTY = "optionType"; ++ ++ /** ++ * The identifier for the propertyChangeEvent when the options property ++ * changes. ++ */ ++ public static final String OPTIONS_PROPERTY = "options"; ++ ++ /** ++ * The identifier for the propertyChangeEvent when the selectionValues ++ * property changes. ++ */ ++ public static final String SELECTION_VALUES_PROPERTY = "selectionValues"; ++ ++ /** ++ * The identifier for the propertyChangeEvent when the value property ++ * changes. ++ */ ++ public static final String VALUE_PROPERTY = "value"; ++ ++ /** ++ * The identifier for the propertyChangeEvent when the wantsInput property ++ * changes. ++ */ ++ public static final String WANTS_INPUT_PROPERTY = "wantsInput"; ++ ++ /** The value returned when the inputValue is uninitialized. */ ++ public static Object UNINITIALIZED_VALUE = "uninitializedValue"; ++ ++ /** The icon displayed in the dialog/internal frame. */ ++ protected Icon icon; ++ ++ /** The initial selected value in the input component. */ ++ protected Object initialSelectionValue; ++ ++ /** The object that is initially selected for options. */ ++ protected Object initialValue; ++ ++ /** The value the user inputs. */ ++ protected Object inputValue = UNINITIALIZED_VALUE; ++ ++ /** The message displayed in the dialog/internal frame. */ ++ protected Object message; ++ ++ /** The type of message displayed. */ ++ protected int messageType = PLAIN_MESSAGE; ++ ++ /** ++ * The options (usually buttons) aligned at the bottom for the user to ++ * select. ++ */ ++ protected Object[] options; ++ ++ /** The type of options to display. */ ++ protected int optionType = DEFAULT_OPTION; ++ ++ /** The input values the user can select. */ ++ protected Object[] selectionValues; ++ ++ /** The value returned by selecting an option. */ ++ protected Object value = UNINITIALIZED_VALUE; ++ ++ /** Whether the Dialog/InternalFrame needs input. */ ++ protected boolean wantsInput; ++ ++ /** The common frame used when no parent is provided. */ ++ private static Frame privFrame = SwingUtilities.getOwnerFrame(); ++ ++ /** ++ * Creates a new JOptionPane object using a message of "JOptionPane ++ * message", using the PLAIN_MESSAGE type and DEFAULT_OPTION. ++ */ ++ public JOptionPane() ++ { ++ this("JOptionPane message", PLAIN_MESSAGE, DEFAULT_OPTION, null, null, null); ++ } ++ ++ /** ++ * Creates a new JOptionPane object using the given message using the ++ * PLAIN_MESSAGE type and DEFAULT_OPTION. ++ * ++ * @param message The message to display. ++ */ ++ public JOptionPane(Object message) ++ { ++ this(message, PLAIN_MESSAGE, DEFAULT_OPTION, null, null, null); ++ } ++ ++ /** ++ * Creates a new JOptionPane object using the given message and messageType ++ * and DEFAULT_OPTION. ++ * ++ * @param message The message to display. ++ * @param messageType The type of message. ++ */ ++ public JOptionPane(Object message, int messageType) ++ { ++ this(message, messageType, DEFAULT_OPTION, null, null, null); ++ } ++ ++ /** ++ * Creates a new JOptionPane object using the given message, messageType and ++ * optionType. ++ * ++ * @param message The message to display. ++ * @param messageType The type of message. ++ * @param optionType The type of options. ++ */ ++ public JOptionPane(Object message, int messageType, int optionType) ++ { ++ this(message, messageType, optionType, null, null, null); ++ } ++ ++ /** ++ * Creates a new JOptionPane object using the given message, messageType, ++ * optionType and icon. ++ * ++ * @param message The message to display. ++ * @param messageType The type of message. ++ * @param optionType The type of options. ++ * @param icon The icon to display. ++ */ ++ public JOptionPane(Object message, int messageType, int optionType, Icon icon) ++ { ++ this(message, messageType, optionType, icon, null, null); ++ } ++ ++ /** ++ * Creates a new JOptionPane object using the given message, messageType, ++ * optionType, icon and options. ++ * ++ * @param message The message to display. ++ * @param messageType The type of message. ++ * @param optionType The type of options. ++ * @param icon The icon to display. ++ * @param options The options given. ++ */ ++ public JOptionPane(Object message, int messageType, int optionType, ++ Icon icon, Object[] options) ++ { ++ this(message, messageType, optionType, icon, options, null); ++ } ++ ++ /** ++ * Creates a new JOptionPane object using the given message, messageType, ++ * optionType, icon, options and initialValue. The initialValue will be ++ * focused initially. ++ * ++ * @param message The message to display. ++ * @param messageType The type of message. ++ * @param optionType The type of options. ++ * @param icon The icon to display. ++ * @param options The options given. ++ * @param initialValue The component to focus on initially. ++ * ++ * @throws IllegalArgumentException If the messageType or optionType are not ++ * legal values. ++ */ ++ public JOptionPane(Object message, int messageType, int optionType, ++ Icon icon, Object[] options, Object initialValue) ++ { ++ this.message = message; ++ if (! validMessageType(messageType)) ++ throw new IllegalArgumentException("Message Type not legal value."); ++ this.messageType = messageType; ++ if (! validOptionType(optionType)) ++ throw new IllegalArgumentException("Option Type not legal value."); ++ this.optionType = optionType; ++ this.icon = icon; ++ this.options = options; ++ this.initialValue = initialValue; ++ ++ setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); ++ ++ updateUI(); ++ invalidate(); ++ repaint(); ++ } ++ ++ /** ++ * This method creates a new JDialog that is either centered around the ++ * parent's frame or centered on the screen (if the parent is null). The ++ * JDialog will not be resizable and will be modal. Once the JDialog is ++ * disposed, the inputValue and value properties will be set by the ++ * optionPane. ++ * ++ * @param parentComponent The parent of the Dialog. ++ * @param title The title in the bar of the JDialog. ++ * ++ * @return A new JDialog based on the JOptionPane configuration. ++ */ ++ public JDialog createDialog(Component parentComponent, String title) ++ { ++ Frame toUse = getFrameForComponent(parentComponent); ++ if (toUse == null) ++ toUse = getRootFrame(); ++ ++ JDialog dialog = new JDialog(toUse, title); ++ inputValue = UNINITIALIZED_VALUE; ++ value = UNINITIALIZED_VALUE; ++ ++ // FIXME: This dialog should be centered on the parent ++ // or at the center of the screen (if the parent is null) ++ // Need getGraphicsConfiguration to return non-null in ++ // order for that to work so we know how large the ++ // screen is. ++ dialog.getContentPane().add(this); ++ dialog.setModal(true); ++ dialog.setResizable(false); ++ dialog.invalidate(); ++ dialog.repaint(); ++ ++ return dialog; ++ } ++ ++ /** ++ * This method creates a new JInternalFrame that is in the JDesktopPane ++ * which contains the parentComponent given. If no suitable JDesktopPane ++ * can be found from the parentComponent given, a RuntimeException will be ++ * thrown. ++ * ++ * @param parentComponent The parent to find a JDesktopPane from. ++ * @param title The title of the JInternalFrame. ++ * ++ * @return A new JInternalFrame based on the JOptionPane configuration. ++ * ++ * @throws RuntimeException If no suitable JDesktopPane is found. ++ */ ++ public JInternalFrame createInternalFrame(Component parentComponent, ++ String title) ++ throws RuntimeException ++ { ++ JDesktopPane toUse = getDesktopPaneForComponent(parentComponent); ++ if (toUse == null) ++ throw new RuntimeException("parentComponent does not have a valid parent"); ++ ++ JInternalFrame frame = new JInternalFrame(title); ++ ++ inputValue = UNINITIALIZED_VALUE; ++ value = UNINITIALIZED_VALUE; ++ ++ frame.setClosable(true); ++ toUse.add(frame); ++ ++ // FIXME: JLayeredPane broken? See bug # 16576 ++ // frame.setLayer(JLayeredPane.MODAL_LAYER); ++ return frame; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public AccessibleContext getAccessibleContext() ++ { ++ if (accessibleContext == null) ++ accessibleContext = new AccessibleJOptionPane(); ++ return accessibleContext; ++ } ++ ++ /** ++ * This method returns the JDesktopPane for the given parentComponent or ++ * null if none can be found. ++ * ++ * @param parentComponent The component to look in. ++ * ++ * @return The JDesktopPane for the given component or null if none can be ++ * found. ++ */ ++ public static JDesktopPane getDesktopPaneForComponent(Component parentComponent) ++ { ++ return (JDesktopPane) SwingUtilities.getAncestorOfClass(JDesktopPane.class, ++ parentComponent); ++ } ++ ++ /** ++ * This method returns the Frame for the given parentComponent or null if ++ * none can be found. ++ * ++ * @param parentComponent The component to look in. ++ * ++ * @return The Frame for the given component or null if none can be found. ++ */ ++ public static Frame getFrameForComponent(Component parentComponent) ++ { ++ return (Frame) SwingUtilities.getAncestorOfClass(Frame.class, ++ parentComponent); ++ } ++ ++ /** ++ * This method returns the icon displayed. ++ * ++ * @return The icon displayed. ++ */ ++ public Icon getIcon() ++ { ++ return icon; ++ } ++ ++ /** ++ * This method returns the value initially selected from the list of values ++ * the user can input. ++ * ++ * @return The initial selection value. ++ */ ++ public Object getInitialSelectionValue() ++ { ++ return initialSelectionValue; ++ } ++ ++ /** ++ * This method returns the value that is focused from the list of options. ++ * ++ * @return The initial value from options. ++ */ ++ public Object getInitialValue() ++ { ++ return initialValue; ++ } ++ ++ /** ++ * This method returns the value that the user input. ++ * ++ * @return The user's input value. ++ */ ++ public Object getInputValue() ++ { ++ return inputValue; ++ } ++ ++ /** ++ * This method returns the maximum characters per line. By default, this is ++ * Integer.MAX_VALUE. ++ * ++ * @return The maximum characters per line. ++ */ ++ public int getMaxCharactersPerLineCount() ++ { ++ return Integer.MAX_VALUE; ++ } ++ ++ /** ++ * This method returns the message displayed. ++ * ++ * @return The message displayed. ++ */ ++ public Object getMessage() ++ { ++ return message; ++ } ++ ++ /** ++ * This method returns the message type. ++ * ++ * @return The message type. ++ */ ++ public int getMessageType() ++ { ++ return messageType; ++ } ++ ++ /** ++ * This method returns the options. ++ * ++ * @return The options. ++ */ ++ public Object[] getOptions() ++ { ++ return options; ++ } ++ ++ /** ++ * This method returns the option type. ++ * ++ * @return The option type. ++ */ ++ public int getOptionType() ++ { ++ return optionType; ++ } ++ ++ /** ++ * This method returns the Frame used by JOptionPane dialog's that have no ++ * parent. ++ * ++ * @return The Frame used by dialogs that have no parent. ++ */ ++ public static Frame getRootFrame() ++ { ++ return privFrame; ++ } ++ ++ /** ++ * This method returns the selection values. ++ * ++ * @return The selection values. ++ */ ++ public Object[] getSelectionValues() ++ { ++ return selectionValues; ++ } ++ ++ /** ++ * This method returns the UI used by the JOptionPane. ++ * ++ * @return The UI used by the JOptionPane. ++ */ ++ public OptionPaneUI getUI() ++ { ++ return (OptionPaneUI) ui; ++ } ++ ++ /** ++ * This method returns an identifier to determine which UI class will act as ++ * the UI. ++ * ++ * @return The UI identifier. ++ */ ++ public String getUIClassID() ++ { ++ return "OptionPaneUI"; ++ } ++ ++ /** ++ * This method returns the value that the user selected out of options. ++ * ++ * @return The value that the user selected out of options. ++ */ ++ public Object getValue() ++ { ++ return value; ++ } ++ ++ /** ++ * This method returns whether this JOptionPane wants input. ++ * ++ * @return Whether this JOptionPane wants input. ++ */ ++ public boolean getWantsInput() ++ { ++ return wantsInput; ++ } ++ ++ /** ++ * This method returns a String that describes this JOptionPane. ++ * ++ * @return A String that describes this JOptionPane. ++ */ ++ protected String paramString() ++ { ++ return "JOptionPane"; ++ } ++ ++ /** ++ * This method requests focus for the initial value. ++ */ ++ public void selectInitialValue() ++ { ++ if (ui != null) ++ ((OptionPaneUI) ui).selectInitialValue(this); ++ } ++ ++ /** ++ * This method changes the icon property. ++ * ++ * @param newIcon The new icon to use. ++ */ ++ public void setIcon(Icon newIcon) ++ { ++ if (icon != newIcon) ++ { ++ Icon old = icon; ++ icon = newIcon; ++ firePropertyChange(ICON_PROPERTY, old, icon); ++ } ++ } ++ ++ /** ++ * This method changes the initial selection property. ++ * ++ * @param newValue The new initial selection. ++ */ ++ public void setInitialSelectionValue(Object newValue) ++ { ++ if (initialSelectionValue != newValue) ++ { ++ Object old = initialSelectionValue; ++ initialSelectionValue = newValue; ++ firePropertyChange(INITIAL_SELECTION_VALUE_PROPERTY, old, ++ initialSelectionValue); ++ } ++ } ++ ++ /** ++ * This method changes the initial value property. ++ * ++ * @param newValue The new initial value. ++ */ ++ public void setInitialValue(Object newValue) ++ { ++ if (initialValue != newValue) ++ { ++ Object old = initialValue; ++ initialValue = newValue; ++ firePropertyChange(INITIAL_VALUE_PROPERTY, old, initialValue); ++ } ++ } ++ ++ /** ++ * This method changes the inputValue property. ++ * ++ * @param newValue The new inputValue. ++ */ ++ public void setInputValue(Object newValue) ++ { ++ if (inputValue != newValue) ++ { ++ Object old = inputValue; ++ inputValue = newValue; ++ firePropertyChange(INPUT_VALUE_PROPERTY, old, inputValue); ++ } ++ } ++ ++ /** ++ * This method changes the message property. ++ * ++ * @param newMessage The new message. ++ */ ++ public void setMessage(Object newMessage) ++ { ++ if (message != newMessage) ++ { ++ Object old = message; ++ message = newMessage; ++ firePropertyChange(MESSAGE_PROPERTY, old, message); ++ } ++ } ++ ++ /** ++ * This method changes the messageType property. ++ * ++ * @param newType The new messageType. ++ * ++ * @throws IllegalArgumentException If the messageType is not valid. ++ */ ++ public void setMessageType(int newType) ++ { ++ if (! validMessageType(newType)) ++ throw new IllegalArgumentException("Message Type not legal value."); ++ if (newType != messageType) ++ { ++ int old = messageType; ++ messageType = newType; ++ firePropertyChange(MESSAGE_TYPE_PROPERTY, old, messageType); ++ } ++ } ++ ++ /** ++ * This method changes the options property. ++ * ++ * @param newOptions The new options. ++ */ ++ public void setOptions(Object[] newOptions) ++ { ++ if (options != newOptions) ++ { ++ Object[] old = options; ++ options = newOptions; ++ firePropertyChange(OPTIONS_PROPERTY, old, options); ++ } ++ } ++ ++ /** ++ * This method changes the optionType property. ++ * ++ * @param newType The new optionType. ++ * ++ * @throws IllegalArgumentException If the optionType is not valid. ++ */ ++ public void setOptionType(int newType) ++ { ++ if (! validOptionType(newType)) ++ throw new IllegalArgumentException("Option Type not legal value."); ++ if (newType != optionType) ++ { ++ int old = optionType; ++ optionType = newType; ++ firePropertyChange(OPTION_TYPE_PROPERTY, old, optionType); ++ } ++ } ++ ++ /** ++ * This method changes the Frame used for JOptionPane dialogs that have no ++ * parent. ++ * ++ * @param newRootFrame The Frame to use for dialogs that have no parent. ++ */ ++ public static void setRootFrame(Frame newRootFrame) ++ { ++ privFrame = newRootFrame; ++ } ++ ++ /** ++ * This method changes the selectionValues property. ++ * ++ * @param newValues The new selectionValues. ++ */ ++ public void setSelectionValues(Object[] newValues) ++ { ++ if (newValues != selectionValues) ++ { ++ if (newValues != null) ++ wantsInput = true; ++ Object[] old = selectionValues; ++ selectionValues = newValues; ++ firePropertyChange(SELECTION_VALUES_PROPERTY, old, selectionValues); ++ } ++ } ++ ++ /** ++ * This method sets the UI used with the JOptionPane. ++ * ++ * @param ui The UI used with the JOptionPane. ++ */ ++ public void setUI(OptionPaneUI ui) ++ { ++ super.setUI(ui); ++ } ++ ++ /** ++ * This method sets the value has been selected out of options. ++ * ++ * @param newValue The value that has been selected out of options. ++ */ ++ public void setValue(Object newValue) ++ { ++ if (value != newValue) ++ { ++ Object old = value; ++ value = newValue; ++ firePropertyChange(VALUE_PROPERTY, old, value); ++ } ++ } ++ ++ /** ++ * This method changes the wantsInput property. ++ * ++ * @param newValue Whether this JOptionPane requires input. ++ */ ++ public void setWantsInput(boolean newValue) ++ { ++ if (wantsInput != newValue) ++ { ++ boolean old = wantsInput; ++ wantsInput = newValue; ++ firePropertyChange(WANTS_INPUT_PROPERTY, old, wantsInput); ++ } ++ } ++ ++ /** ++ * This method shows a confirmation dialog with the title "Select an Option" ++ * and displays the given message. The parent frame will be the same as the ++ * parent frame of the given parentComponent. This method returns the ++ * option chosen by the user. ++ * ++ * @param parentComponent The parentComponent to find a frame in. ++ * @param message The message to display. ++ * ++ * @return The option that was selected. ++ */ ++ public static int showConfirmDialog(Component parentComponent, Object message) ++ { ++ JOptionPane pane = new JOptionPane(message); ++ JDialog dialog = pane.createDialog(parentComponent, "Select an Option"); ++ ++ dialog.pack(); ++ dialog.show(); ++ ++ return ((Integer) pane.getValue()).intValue(); ++ } ++ ++ /** ++ * This method shows a confirmation dialog with the given message, ++ * optionType and title. The frame that owns the dialog will be the same ++ * frame that holds the given parentComponent. This method returns the ++ * option that was chosen. ++ * ++ * @param parentComponent The component to find a frame in. ++ * @param message The message displayed. ++ * @param title The title of the dialog. ++ * @param optionType The optionType. ++ * ++ * @return The option that was chosen. ++ */ ++ public static int showConfirmDialog(Component parentComponent, ++ Object message, String title, ++ int optionType) ++ { ++ JOptionPane pane = new JOptionPane(message, PLAIN_MESSAGE, optionType); ++ JDialog dialog = pane.createDialog(parentComponent, title); ++ dialog.pack(); ++ dialog.show(); ++ ++ return ((Integer) pane.getValue()).intValue(); ++ } ++ ++ /** ++ * This method shows a confirmation dialog with the given message, title, ++ * messageType and optionType. The frame owner will be the same frame as ++ * the one that holds the given parentComponent. This method returns the ++ * option selected by the user. ++ * ++ * @param parentComponent The component to find a frame in. ++ * @param message The message displayed. ++ * @param title The title of the dialog. ++ * @param optionType The optionType. ++ * @param messageType The messageType. ++ * ++ * @return The selected option. ++ */ ++ public static int showConfirmDialog(Component parentComponent, ++ Object message, String title, ++ int optionType, int messageType) ++ { ++ JOptionPane pane = new JOptionPane(message, messageType, optionType); ++ JDialog dialog = pane.createDialog(parentComponent, title); ++ dialog.pack(); ++ dialog.show(); ++ ++ return ((Integer) pane.getValue()).intValue(); ++ } ++ ++ /** ++ * This method shows a confirmation dialog with the given message, title, ++ * optionType, messageType and icon. The frame owner will be the same as ++ * the one that holds the given parentComponent. This method returns the ++ * option selected by the user. ++ * ++ * @param parentComponent The component to find a frame in. ++ * @param message The message displayed. ++ * @param title The title of the dialog. ++ * @param optionType The optionType. ++ * @param messageType The messsageType. ++ * @param icon The icon displayed. ++ * ++ * @return The selected option. ++ */ ++ public static int showConfirmDialog(Component parentComponent, ++ Object message, String title, ++ int optionType, int messageType, ++ Icon icon) ++ { ++ JOptionPane pane = new JOptionPane(message, messageType, optionType, icon); ++ JDialog dialog = pane.createDialog(parentComponent, title); ++ dialog.pack(); ++ dialog.show(); ++ ++ return ((Integer) pane.getValue()).intValue(); ++ } ++ ++ /** ++ * This method will show a QUESTION_MESSAGE input dialog with the given ++ * message. No selectionValues is set so the Look and Feel will usually ++ * give the user a TextField to fill out. The frame owner will be the same ++ * frame that holds the given parentComponent. This method will return the ++ * value entered by the user. ++ * ++ * @param parentComponent The component to find a frame in. ++ * @param message The message displayed. ++ * ++ * @return The value entered by the user. ++ */ ++ public static String showInputDialog(Component parentComponent, ++ Object message) ++ { ++ JOptionPane pane = new JOptionPane(message, QUESTION_MESSAGE); ++ pane.setWantsInput(true); ++ JDialog dialog = pane.createDialog(parentComponent, null); ++ dialog.pack(); ++ dialog.show(); ++ ++ return (String) pane.getInputValue(); ++ } ++ ++ /** ++ * This method will show a QUESTION_MESSAGE type input dialog with the given ++ * message and initialSelectionValue. Since there is no selectionValues ++ * set, the Look and Feel will usually give a TextField to fill out. The ++ * frame owner will be the same as the one that holds the given ++ * parentComponent. This method will return the value entered by the user. ++ * ++ * @param parentComponent The component to find a frame in. ++ * @param message The message to display. ++ * @param initialSelectionValue The initially selected value. ++ * ++ * @return The value the user input. ++ */ ++ public static String showInputDialog(Component parentComponent, ++ Object message, ++ Object initialSelectionValue) ++ { ++ JOptionPane pane = new JOptionPane(message, QUESTION_MESSAGE); ++ pane.setInitialSelectionValue(initialSelectionValue); ++ pane.setWantsInput(true); ++ JDialog dialog = pane.createDialog(parentComponent, null); ++ dialog.pack(); ++ dialog.show(); ++ ++ return (String) pane.getInputValue(); ++ } ++ ++ /** ++ * This method displays a new input dialog with the given message, title and ++ * messageType. Since no selectionValues value is given, the Look and Feel ++ * will usually give the user a TextField to input data to. This method ++ * returns the value the user inputs. ++ * ++ * @param parentComponent The component to find a frame in. ++ * @param message The message to display. ++ * @param title The title of the dialog. ++ * @param messageType The messageType. ++ * ++ * @return The value the user input. ++ */ ++ public static String showInputDialog(Component parentComponent, ++ Object message, String title, ++ int messageType) ++ { ++ JOptionPane pane = new JOptionPane(message, messageType); ++ pane.setWantsInput(true); ++ JDialog dialog = pane.createDialog(parentComponent, title); ++ dialog.pack(); ++ dialog.show(); ++ ++ return (String) pane.getInputValue(); ++ } ++ ++ /** ++ * This method shows an input dialog with the given message, title, ++ * messageType, icon, selectionValues, and initialSelectionValue. This ++ * method returns the value that the user selects. ++ * ++ * @param parentComponent The component to find a frame in. ++ * @param message The message displayed. ++ * @param title The title of the dialog. ++ * @param messageType The messageType. ++ * @param icon The icon displayed. ++ * @param selectionValues The list of values to select from. ++ * @param initialSelectionValue The initially selected value. ++ * ++ * @return The user selected value. ++ */ ++ public static Object showInputDialog(Component parentComponent, ++ Object message, String title, ++ int messageType, Icon icon, ++ Object[] selectionValues, ++ Object initialSelectionValue) ++ { ++ JOptionPane pane = new JOptionPane(message, messageType); ++ pane.setWantsInput(true); ++ pane.setIcon(icon); ++ pane.setSelectionValues(selectionValues); ++ pane.setInitialSelectionValue(initialSelectionValue); ++ JDialog dialog = pane.createDialog(parentComponent, title); ++ dialog.pack(); ++ dialog.show(); ++ ++ return (String) pane.getInputValue(); ++ } ++ ++ /** ++ * This method shows a QUESTION_MESSAGE type input dialog. Since no ++ * selectionValues is set, the Look and Feel will usually give the user a ++ * TextField to input data to. This method returns the value the user ++ * inputs. ++ * ++ * @param message The message to display. ++ * ++ * @return The user selected value. ++ */ ++ public static String showInputDialog(Object message) ++ { ++ JOptionPane pane = new JOptionPane(message, QUESTION_MESSAGE); ++ pane.setWantsInput(true); ++ JDialog dialog = pane.createDialog(null, null); ++ dialog.pack(); ++ dialog.show(); ++ ++ return (String) pane.getInputValue(); ++ } ++ ++ /** ++ * This method shows a QUESTION_MESSAGE type input dialog. Since no ++ * selectionValues is set, the Look and Feel will usually give the user a ++ * TextField to input data to. The input component will be initialized with ++ * the initialSelectionValue. This method returns the value the user ++ * inputs. ++ * ++ * @param message The message to display. ++ * @param initialSelectionValue The initialSelectionValue. ++ * ++ * @return The user selected value. ++ */ ++ public static String showInputDialog(Object message, ++ Object initialSelectionValue) ++ { ++ JOptionPane pane = new JOptionPane(message, QUESTION_MESSAGE); ++ pane.setWantsInput(true); ++ pane.setInitialSelectionValue(initialSelectionValue); ++ JDialog dialog = pane.createDialog(null, null); ++ dialog.pack(); ++ dialog.show(); ++ ++ return (String) pane.getInputValue(); ++ } ++ ++ /** ++ * This method shows an internal confirmation dialog with the given message. ++ * The internal frame dialog will be placed in the first JDesktopPane ++ * ancestor of the given parentComponent. This method will return the value ++ * selected. ++ * ++ * @param parentComponent The parent to find a JDesktopPane in. ++ * @param message The message to display. ++ * ++ * @return The value selected. ++ */ ++ public static int showInternalConfirmDialog(Component parentComponent, ++ Object message) ++ { ++ JOptionPane pane = new JOptionPane(message); ++ JInternalFrame frame = pane.createInternalFrame(parentComponent, null); ++ ++ startModal(frame, pane); ++ ++ return ((Integer) pane.getValue()).intValue(); ++ } ++ ++ /** ++ * This method shows an internal confirmation dialog with the given message, ++ * optionType and title. The internal frame dialog will be placed in the ++ * first JDesktopPane ancestor of the given parentComponent. This method ++ * will return the selected value. ++ * ++ * @param parentComponent The parent to find a JDesktopPane in. ++ * @param message The message to display. ++ * @param title The title to display. ++ * @param optionType The option type. ++ * ++ * @return The selected value. ++ */ ++ public static int showInternalConfirmDialog(Component parentComponent, ++ Object message, String title, ++ int optionType) ++ { ++ JOptionPane pane = new JOptionPane(message, PLAIN_MESSAGE, optionType); ++ JInternalFrame frame = pane.createInternalFrame(parentComponent, title); ++ ++ startModal(frame, pane); ++ ++ return ((Integer) pane.getValue()).intValue(); ++ } ++ ++ /** ++ * This method shows an internal confirmation dialog with the given message, ++ * title, optionTypes and icon for the given message type. The internal ++ * confirmation dialog will be placed in the first instance of ++ * JDesktopPane ancestor of the given parentComponent. ++ * ++ * @param parentComponent The component to find a JDesktopPane in. ++ * @param message The message to display. ++ * @param title The title of the dialog. ++ * @param optionType The option type. ++ * @param messageType The message type. ++ * ++ * @return The selected value. ++ */ ++ public static int showInternalConfirmDialog(Component parentComponent, ++ Object message, String title, ++ int optionType, int messageType) ++ { ++ JOptionPane pane = new JOptionPane(message, messageType, optionType); ++ JInternalFrame frame = pane.createInternalFrame(parentComponent, title); ++ ++ startModal(frame, pane); ++ ++ return ((Integer) pane.getValue()).intValue(); ++ } ++ ++ /** ++ * This method shows an internal confirmation dialog with the given message, ++ * title, option type, message type, and icon. The internal frame dialog ++ * will be placed in the first JDesktopPane ancestor that is found in the ++ * given parentComponent. This method returns the selected value. ++ * ++ * @param parentComponent The parent to find a JDesktopPane in. ++ * @param message The message to display. ++ * @param title The title to display. ++ * @param optionType The option type. ++ * @param messageType The message type. ++ * @param icon The icon to display. ++ * ++ * @return The selected value. ++ */ ++ public static int showInternalConfirmDialog(Component parentComponent, ++ Object message, String title, ++ int optionType, int messageType, ++ Icon icon) ++ { ++ JOptionPane pane = new JOptionPane(message, messageType, optionType, icon); ++ JInternalFrame frame = pane.createInternalFrame(parentComponent, title); ++ ++ startModal(frame, pane); ++ ++ return ((Integer) pane.getValue()).intValue(); ++ } ++ ++ /** ++ * This method shows an internal input dialog with the given message. The ++ * internal frame dialog will be placed in the first JDesktopPane ancestor ++ * of the given parent component. This method returns the value input by ++ * the user. ++ * ++ * @param parentComponent The parent to find a JDesktopPane in. ++ * @param message The message to display. ++ * ++ * @return The user selected value. ++ */ ++ public static String showInternalInputDialog(Component parentComponent, ++ Object message) ++ { ++ JOptionPane pane = new JOptionPane(message); ++ pane.setWantsInput(true); ++ JInternalFrame frame = pane.createInternalFrame(parentComponent, null); ++ ++ startModal(frame, pane); ++ ++ return (String) pane.getInputValue(); ++ } ++ ++ /** ++ * This method shows an internal input dialog with the given message, title ++ * and message type. The internal input dialog will be placed in the first ++ * JDesktopPane ancestor found in the given parent component. This method ++ * will return the input value given by the user. ++ * ++ * @param parentComponent The component to find a JDesktopPane in. ++ * @param message The message to display. ++ * @param title The title to display. ++ * @param messageType The message type. ++ * ++ * @return The user input value. ++ */ ++ public static String showInternalInputDialog(Component parentComponent, ++ Object message, String title, ++ int messageType) ++ { ++ JOptionPane pane = new JOptionPane(message, messageType); ++ pane.setWantsInput(true); ++ JInternalFrame frame = pane.createInternalFrame(parentComponent, title); ++ ++ startModal(frame, pane); ++ ++ return (String) pane.getInputValue(); ++ } ++ ++ /** ++ * This method shows an internal input dialog with the given message, title ++ * message type, icon, selection value list and initial selection value. ++ * The internal frame dialog will be placed in the first JDesktopPane ++ * ancestor found in the given parent component. This method returns the ++ * input value from the user. ++ * ++ * @param parentComponent The parent to find a JDesktopPane in. ++ * @param message The message to display. ++ * @param title The title to display. ++ * @param messageType The message type. ++ * @param icon The icon to display. ++ * @param selectionValues The selection value list. ++ * @param initialSelectionValue The initial selection value. ++ * ++ * @return The user input value. ++ */ ++ public static Object showInternalInputDialog(Component parentComponent, ++ Object message, String title, ++ int messageType, Icon icon, ++ Object[] selectionValues, ++ Object initialSelectionValue) ++ { ++ JOptionPane pane = new JOptionPane(message, messageType); ++ pane.setWantsInput(true); ++ pane.setIcon(icon); ++ pane.setSelectionValues(selectionValues); ++ pane.setInitialSelectionValue(initialSelectionValue); ++ JInternalFrame frame = pane.createInternalFrame(parentComponent, title); ++ ++ startModal(frame, pane); ++ ++ return (String) pane.getInputValue(); ++ } ++ ++ /** ++ * This method shows an internal message dialog with the given message. The ++ * internal frame dialog will be placed in the first JDesktopPane ancestor ++ * found in the given parent component. ++ * ++ * @param parentComponent The component to find a JDesktopPane in. ++ * @param message The message to display. ++ */ ++ public static void showInternalMessageDialog(Component parentComponent, ++ Object message) ++ { ++ JOptionPane pane = new JOptionPane(message); ++ JInternalFrame frame = pane.createInternalFrame(parentComponent, null); ++ ++ startModal(frame, pane); ++ } ++ ++ /** ++ * This method shows an internal message dialog with the given message, ++ * title and message type. The internal message dialog is placed in the ++ * first JDesktopPane ancestor found in the given parent component. ++ * ++ * @param parentComponent The parent component to find a JDesktopPane in. ++ * @param message The message to display. ++ * @param title The title to display. ++ * @param messageType The message type. ++ */ ++ public static void showInternalMessageDialog(Component parentComponent, ++ Object message, String title, ++ int messageType) ++ { ++ JOptionPane pane = new JOptionPane(message, messageType); ++ JInternalFrame frame = pane.createInternalFrame(parentComponent, title); ++ ++ startModal(frame, pane); ++ } ++ ++ /** ++ * This method shows an internal message dialog with the given message, ++ * title, message type and icon. The internal message dialog is placed in ++ * the first JDesktopPane ancestor found in the given parent component. ++ * ++ * @param parentComponent The component to find a JDesktopPane in. ++ * @param message The message to display. ++ * @param title The title to display. ++ * @param messageType The message type. ++ * @param icon The icon to display. ++ */ ++ public static void showInternalMessageDialog(Component parentComponent, ++ Object message, String title, ++ int messageType, Icon icon) ++ { ++ JOptionPane pane = new JOptionPane(message, messageType); ++ pane.setIcon(icon); ++ JInternalFrame frame = pane.createInternalFrame(parentComponent, title); ++ ++ startModal(frame, pane); ++ } ++ ++ /** ++ * This method displays an internal option dialog with the given message, ++ * title, option type, message type, icon, option list, and initial option ++ * value. The internal option dialog is placed in the first JDesktopPane ++ * ancestor found in the parent component. This method returns the option ++ * selected. ++ * ++ * @param parentComponent The parent to find a JDesktopPane in. ++ * @param message The message displayed. ++ * @param title The title displayed. ++ * @param optionType The option type. ++ * @param messageType The message type. ++ * @param icon The icon to display. ++ * @param options The array of options. ++ * @param initialValue The initial value selected. ++ * ++ * @return The option that was selected. ++ */ ++ public static int showInternalOptionDialog(Component parentComponent, ++ Object message, String title, ++ int optionType, int messageType, ++ Icon icon, Object[] options, ++ Object initialValue) ++ { ++ JOptionPane pane = new JOptionPane(message, messageType, optionType, icon, ++ options, initialValue); ++ ++ JInternalFrame frame = pane.createInternalFrame(parentComponent, title); ++ ++ startModal(frame, pane); ++ ++ return ((Integer) pane.getValue()).intValue(); ++ } ++ ++ /** ++ * This method shows an INFORMATION_MESSAGE type message dialog. ++ * ++ * @param parentComponent The component to find a frame in. ++ * @param message The message displayed. ++ */ ++ public static void showMessageDialog(Component parentComponent, ++ Object message) ++ { ++ JOptionPane pane = new JOptionPane(message, INFORMATION_MESSAGE); ++ JDialog dialog = pane.createDialog(parentComponent, null); ++ dialog.pack(); ++ dialog.show(); ++ } ++ ++ /** ++ * This method shows a message dialog with the given message, title and ++ * messageType. ++ * ++ * @param parentComponent The component to find a frame in. ++ * @param message The message displayed. ++ * @param title The title of the dialog. ++ * @param messageType The messageType. ++ */ ++ public static void showMessageDialog(Component parentComponent, ++ Object message, String title, ++ int messageType) ++ { ++ JOptionPane pane = new JOptionPane(message, messageType); ++ JDialog dialog = pane.createDialog(parentComponent, title); ++ dialog.pack(); ++ dialog.show(); ++ } ++ ++ /** ++ * This method shows a message dialog with the given message, title, ++ * messageType and icon. ++ * ++ * @param parentComponent The component to find a frame in. ++ * @param message The message displayed. ++ * @param title The title of the dialog. ++ * @param messageType The messageType. ++ * @param icon The icon displayed. ++ */ ++ public static void showMessageDialog(Component parentComponent, ++ Object message, String title, ++ int messageType, Icon icon) ++ { ++ JOptionPane pane = new JOptionPane(message, messageType); ++ pane.setIcon(icon); ++ JDialog dialog = pane.createDialog(parentComponent, title); ++ dialog.pack(); ++ dialog.show(); ++ } ++ ++ /** ++ * This method shows an option dialog with the given message, title, ++ * optionType, messageType, icon, options and initialValue. This method ++ * returns the option that was selected. ++ * ++ * @param parentComponent The component to find a frame in. ++ * @param message The message displayed. ++ * @param title The title of the dialog. ++ * @param optionType The optionType. ++ * @param messageType The messageType. ++ * @param icon The icon displayed. ++ * @param options The options to choose from. ++ * @param initialValue The initial value. ++ * ++ * @return The selected option. ++ */ ++ public static int showOptionDialog(Component parentComponent, ++ Object message, String title, ++ int optionType, int messageType, ++ Icon icon, Object[] options, ++ Object initialValue) ++ { ++ JOptionPane pane = new JOptionPane(message, messageType, optionType, icon, ++ options, initialValue); ++ ++ JDialog dialog = pane.createDialog(parentComponent, title); ++ dialog.pack(); ++ dialog.show(); ++ ++ return ((Integer) pane.getValue()).intValue(); ++ } ++ ++ /** ++ * This method resets the UI to the Look and Feel default. ++ */ ++ public void updateUI() ++ { ++ setUI((OptionPaneUI) UIManager.getUI(this)); ++ invalidate(); ++ } ++ ++ /** ++ * This method returns true if the key is a valid messageType. ++ * ++ * @param key The key to check. ++ * ++ * @return True if key is valid. ++ */ ++ private boolean validMessageType(int key) ++ { ++ switch (key) ++ { ++ case ERROR_MESSAGE: ++ case INFORMATION_MESSAGE: ++ case PLAIN_MESSAGE: ++ case QUESTION_MESSAGE: ++ case WARNING_MESSAGE: ++ return true; ++ } ++ return false; ++ } ++ ++ /** ++ * This method returns true if the key is a valid optionType. ++ * ++ * @param key The key to check. ++ * ++ * @return True if key is valid. ++ */ ++ private boolean validOptionType(int key) ++ { ++ switch (key) ++ { ++ case DEFAULT_OPTION: ++ case OK_CANCEL_OPTION: ++ case YES_NO_CANCEL_OPTION: ++ case YES_NO_OPTION: ++ return true; ++ } ++ return false; ++ } ++ ++ /** ++ * This helper method makes the JInternalFrame wait until it is notified by ++ * an InternalFrameClosing event. This method also adds the given ++ * JOptionPane to the JInternalFrame and sizes it according to the ++ * JInternalFrame's preferred size. ++ * ++ * @param f The JInternalFrame to make modal. ++ * @param pane The JOptionPane to add to the JInternalFrame. ++ */ ++ private static void startModal(JInternalFrame f, JOptionPane pane) ++ { ++ f.getContentPane().add(pane); ++ f.pack(); ++ f.show(); ++ ++ Dimension pref = f.getPreferredSize(); ++ f.setBounds(0, 0, pref.width, pref.height); ++ ++ synchronized (f) ++ { ++ final JInternalFrame tmp = f; ++ tmp.toFront(); + +- // everybody comes here eventually +- public static int showOptionDialog(Component frame, +- String msg, +- String title, +- int opt_type, +- int msg_type, +- Icon icon, +- Object[] opts, +- Object init) +- { +- Integer a = (Integer) DoShowOptionDialog(frame, +- msg, +- title, +- opt_type, +- msg_type, +- icon, +- opts, +- init); +- if (a == null) +- return -1; +- return a.intValue(); +- } +- +- public static Object DoShowOptionDialog(Component frame, +- String msg, +- String title, +- int opt_type, +- int msg_type, +- Icon icon, +- Object[] opts, +- Object init) +- { +- +- JOptionPane p = new JOptionPane(msg, +- msg_type, +- opt_type, +- icon, +- opts, +- init); +- System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ " + p.msg); +- +- +- JDialog a; +- +- if (frame == null) +- { +- a = new JDialog((Frame)frame, +- title, +- true); +- } +- else if (frame instanceof Dialog) ++ f.addInternalFrameListener(new InternalFrameAdapter() + { +- a = new JDialog((Dialog) frame, +- title, +- true); +- } +- else if (frame instanceof Frame) +- { +- a = new JDialog((Frame) frame, +- title, +- true); +- } +- else +- { +- System.out.println("HUUUUHHH, not a frame or dialog !"); +- +- a = new JDialog((Frame)null, +- title, +- true); +- } +- +- p.dialog = a; +- +- a.getContentPane().setLayout(new BorderLayout()); +- a.getContentPane().add(p, +- BorderLayout.CENTER); +- // package the deal +- a.pack(); +- +- a.setVisible(true); +- +- Object s = p.getValue(); +- +- System.out.println("RESULT FROM DIALOG = " + s); +- +- if (s == null) +- return null; +- +- return s; +- } +- ++ public void internalFrameClosed(InternalFrameEvent e) ++ { ++ synchronized (tmp) ++ { ++ tmp.removeInternalFrameListener(this); ++ tmp.notifyAll(); ++ } ++ } ++ }); ++ try ++ { ++ while (! f.isClosed()) ++ f.wait(); ++ } ++ catch (InterruptedException ignored) ++ { ++ } ++ } ++ } + } +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +Index: javax/swing/JPanel.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JPanel.java,v +retrieving revision 1.3 +diff -u -r1.3 JPanel.java +--- javax/swing/JPanel.java 9 Jan 2004 10:18:47 -0000 1.3 ++++ javax/swing/JPanel.java 6 Sep 2004 16:35:57 -0000 +@@ -85,7 +85,7 @@ + } + + public String getUIClassID() +- { return "JPanel"; } ++ { return "PanelUI"; } + + + public void setUI(PanelUI ui) { +Index: javax/swing/JPasswordField.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JPasswordField.java,v +retrieving revision 1.3 +diff -u -r1.3 JPasswordField.java +--- javax/swing/JPasswordField.java 9 Jan 2004 10:18:47 -0000 1.3 ++++ javax/swing/JPasswordField.java 6 Sep 2004 16:35:57 -0000 +@@ -49,60 +49,36 @@ + * @author Andrew Selkirk + * @version 1.0 + */ +-public class JPasswordField extends JTextField { +- +- //------------------------------------------------------------- +- // Classes ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * AccessibleJPasswordField +- */ +- protected class AccessibleJPasswordField extends AccessibleJTextField { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor AccessibleJPasswordField +- * @param component TODO +- */ +- protected AccessibleJPasswordField(JPasswordField component) { +- super(component); +- // TODO +- } // AccessibleJPasswordField() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * getAccessibleRole +- * @returns AccessibleRole +- */ +- public AccessibleRole getAccessibleRole() { +- return AccessibleRole.PASSWORD_TEXT; +- } // getAccessibleRole() +- +- +- } // AccessibleJPasswordField +- +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- ++public class JPasswordField extends JTextField ++{ ++ /** ++ * AccessibleJPasswordField ++ */ ++ protected class AccessibleJPasswordField extends AccessibleJTextField ++ { ++ private static final long serialVersionUID = -8477039424200681086L; ++ ++ /** ++ * Constructor AccessibleJPasswordField ++ */ ++ protected AccessibleJPasswordField() ++ { ++ } ++ ++ /** ++ * getAccessibleRole ++ * @return AccessibleRole ++ */ ++ public AccessibleRole getAccessibleRole() ++ { ++ return AccessibleRole.PASSWORD_TEXT; ++ } ++ } + + /** + * uiClassID + */ +- private static final String uiClassID = "PasswordFIeldUI"; ++ private static final String uiClassID = "PasswordFieldUI"; + + /** + * echoChar. Default is 0 +@@ -254,16 +230,15 @@ + return null; // TODO + } // paramString() + +- /** +- * getAccessibleContext +- * @returns AccessibleContext +- */ +- public AccessibleContext getAccessibleContext() { +- if (accessibleContext == null) { +- accessibleContext = new AccessibleJPasswordField(this); +- } // if +- return accessibleContext; +- } // getAccessibleContext() +- +- +-} // JPasswordField ++ /** ++ * getAccessibleContext ++ * @return AccessibleContext ++ */ ++ public AccessibleContext getAccessibleContext() ++ { ++ if (accessibleContext == null) ++ accessibleContext = new AccessibleJPasswordField(); ++ ++ return accessibleContext; ++ } ++} +Index: javax/swing/JPopupMenu.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JPopupMenu.java,v +retrieving revision 1.3 +diff -u -r1.3 JPopupMenu.java +--- javax/swing/JPopupMenu.java 9 Jan 2004 10:18:47 -0000 1.3 ++++ javax/swing/JPopupMenu.java 6 Sep 2004 16:35:57 -0000 +@@ -1,4 +1,4 @@ +-/* JPopupMenu.java -- ++/* JPopupMenu.java + Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. +@@ -37,639 +37,1059 @@ + + package javax.swing; + ++import java.awt.BorderLayout; + import java.awt.Component; ++import java.awt.Container; + import java.awt.Dimension; ++import java.awt.Frame; + import java.awt.Graphics; ++import java.awt.GridBagConstraints; ++import java.awt.GridBagLayout; + import java.awt.Insets; ++import java.awt.LayoutManager; ++import java.awt.Panel; ++import java.awt.Point; ++import java.awt.Window; + import java.awt.event.KeyEvent; + import java.awt.event.MouseEvent; ++import java.beans.PropertyChangeEvent; + import java.beans.PropertyChangeListener; + import java.io.IOException; + import java.io.ObjectInputStream; + import java.io.ObjectOutputStream; ++import java.util.EventListener; ++import java.util.Vector; + import javax.accessibility.Accessible; + import javax.accessibility.AccessibleContext; + import javax.accessibility.AccessibleRole; ++import javax.swing.event.PopupMenuEvent; + import javax.swing.event.PopupMenuListener; + import javax.swing.plaf.PopupMenuUI; + ++ + /** +- * JPopupMenu +- * @author Andrew Selkirk +- * @version 1.0 ++ * JPopupMenu is a container that is used to display popup menu's menu ++ * items. By default JPopupMenu is a lightweight container, however if it ++ * is the case that JPopupMenu's bounds are outside of main window, then ++ * heawyweight container will be used to display menu items. It is also ++ * possible to change JPopupMenu's default behavior and set JPopupMenu ++ * to always use heavyweight container. ++ * ++ * JPopupMenu can be displayed anywhere; it is a floating free popup menu. ++ * However before JPopupMenu is diplayed, its invoker property should be set. ++ * JPopupMenu's invoker is a component relative to which popup menu is ++ * displayed. ++ * ++ * JPopupMenu fires PopupMenuEvents to its registered listeners. Whenever ++ * JPopupMenu becomes visible on the screen then PopupMenuEvent indicating ++ * that popup menu became visible will be fired. In the case when ++ * JPopupMenu becomes invisible or cancelled without selection, then ++ * popupMenuBecomeInvisible() or popupMenuCancelled() methods of ++ * PopupMenuListeners will be invoked. ++ * ++ * JPopupMenu also fires PropertyChangeEvents when its bound properties ++ * change.In addittion to inheritted bound properties, JPopupMenu has ++ * 'visible' bound property. When JPopupMenu becomes visible/invisible on ++ * the screen it fires PropertyChangeEvents to its registered ++ * PropertyChangeListeners. + */ + public class JPopupMenu extends JComponent implements Accessible, MenuElement + { ++ private static final long serialVersionUID = -8336996630009646009L; + +- //------------------------------------------------------------- +- // Classes ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Separator +- */ +- public static class Separator extends JSeparator { +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor Separator +- */ +- public Separator() { +- // TODO +- } // Separator() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * getUIClassID +- * @returns String +- */ +- public String getUIClassID() { +- return null; // TODO +- } // getUIClassID() +- +- +- } // Separator +- +- /** +- * AccessibleJPopupMenu +- */ +- protected class AccessibleJPopupMenu extends AccessibleJComponent { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor AccessibleJPopupMenu +- * @param component TODO +- */ +- protected AccessibleJPopupMenu(JPopupMenu component) { +- super(component); +- // TODO +- } // AccessibleJPopupMenu() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * getAccessibleRole +- * @returns AccessibleRole +- */ +- public AccessibleRole getAccessibleRole() { +- return AccessibleRole.POPUP_MENU; +- } // getAccessibleRole() +- +- +- } // AccessibleJPopupMenu +- +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * uiClassID +- */ +- private static final String uiClassID = "PopupMenuUI"; +- +- /** +- * invoker +- */ +- transient Component invoker; +- +- /** +- * desiredLocationX +- */ +- private int desiredLocationX; +- +- /** +- * desiredLocationY +- */ +- private int desiredLocationY; +- +- /** +- * label +- */ +- private String label; +- +- /** +- * paintBorder +- */ +- private boolean paintBorder; +- +- /** +- * margin +- */ +- private Insets margin; +- +- /** +- * defaultLWPopupEnabledKey +- */ +- private static final Object defaultLWPopupEnabledKey = null; // TODO +- +- /** +- * lightWeightPopupEnabled +- */ +- private boolean lightWeightPopupEnabled; +- +- /** +- * selectionModel +- */ +- private SingleSelectionModel selectionModel; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor JPopupMenu +- */ +- public JPopupMenu() { +- // TODO +- } // JPopupMenu() +- +- /** +- * Constructor JPopupMenu +- * @param label TODO +- */ +- public JPopupMenu(String label) { +- // TODO +- } // JPopupMenu() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * readObject +- * @param stream TODO +- * @exception IOException TODO +- * @exception ClassNotFoundException TODO +- */ +- private void readObject(ObjectInputStream stream) +- throws IOException, ClassNotFoundException { +- // TODO +- } // readObject() +- +- /** +- * writeObject +- * @param stream TODO +- * @exception IOException TODO +- */ +- private void writeObject(ObjectOutputStream stream) throws IOException { +- // TODO +- } // writeObject() +- +- /** +- * add +- * @param item TODO +- * @returns JMenuItem +- */ +- public JMenuItem add(JMenuItem item) { +- return null; // TODO +- } // add() +- +- /** +- * add +- * @param text TODO +- * @returns JMenuItem +- */ +- public JMenuItem add(String text) { +- return null; // TODO +- } // add() +- +- /** +- * add +- * @param action TODO +- * @returns JMenuItem +- */ +- public JMenuItem add(Action action) { +- return null; // TODO +- } // add() +- +- /** +- * remove +- * @param index TODO +- */ +- public void remove(int index) { +- // TODO +- } // remove() +- +- /** +- * insert +- * @param action TODO +- * @param index TODO +- */ +- public void insert(Action action, int index) { +- // TODO +- } // insert() +- +- /** +- * insert +- * @param component TODO +- * @param index TODO +- */ +- public void insert(Component component, int index) { +- // TODO +- } // insert() +- +- /** +- * paintBorder +- * @param graphics TODO +- */ +- protected void paintBorder(Graphics graphics) { +- // TODO +- } // paintBorder() +- +- /** +- * getDefaultLightWeightPopupEnabled +- * @returns boolean +- */ +- public static boolean getDefaultLightWeightPopupEnabled() { +- return false; // TODO +- } // getDefaultLightWeightPopupEnabled() +- +- /** +- * setDefaultLightWeightPopupEnabled +- * @param enabled TODO +- */ +- public static void setDefaultLightWeightPopupEnabled(boolean enabled) { +- // TODO +- } // setDefaultLightWeightPopupEnabled() +- +- /** +- * getUI +- * @returns PopupMenuUI +- */ +- public PopupMenuUI getUI() { +- return (PopupMenuUI) ui; +- } // getUI() +- +- /** +- * setUI +- * @param ui TODO +- */ +- public void setUI(PopupMenuUI ui) { +- super.setUI(ui); +- // TODO +- } // setUI() +- +- /** +- * updateUI +- */ +- public void updateUI() { +- setUI((PopupMenuUI) UIManager.get(this)); +- invalidate(); +- } // updateUI() +- +- /** +- * getUIClassID +- * @returns String +- */ +- public String getUIClassID() { +- return uiClassID; +- } // getUIClassID() +- +- /** +- * getSelectionModel +- * @returns SingleSelectionModel +- */ +- public SingleSelectionModel getSelectionModel() { +- return null; // TODO +- } // getSelectionModel() +- +- /** +- * setSelectionModel +- * @param model TODO +- */ +- public void setSelectionModel(SingleSelectionModel model) { +- // TODO +- } // setSelectionModel() +- +- /** +- * createActionComponent +- * @param action TODO +- * @returns JMenuItem +- */ +- protected JMenuItem createActionComponent(Action action) { +- return null; // TODO +- } // createActionComponent() +- +- /** +- * createActionChangeListener +- * @param item TODO +- * @returns PropertyChangeListener +- */ +- protected PropertyChangeListener createActionChangeListener(JMenuItem item) { +- return null; // TODO +- } // createActionChangeListener() +- +- /** +- * isLightWeightPopupEnabled +- * @returns boolean +- */ +- public boolean isLightWeightPopupEnabled() { +- return false; // TODO +- } // isLightWeightPopupEnabled() +- +- /** +- * setLightWeightPopupEnabled +- * @param enabled TODO +- */ +- public void setLightWeightPopupEnabled(boolean enabled) { +- // TODO +- } // setLightWeightPopupEnabled() +- +- /** +- * getLabel +- * @returns String +- */ +- public String getLabel() { +- return null; // TODO +- } // getLabel() +- +- /** +- * setLabel +- * @param label TODO +- */ +- public void setLabel(String label) { +- // TODO +- } // setLabel() +- +- /** +- * addSeparator +- */ +- public void addSeparator() { +- // TODO +- } // addSeparator() +- +- /** +- * addPopupMenuListener +- * @param listener TODO +- */ +- public void addPopupMenuListener(PopupMenuListener listener) { +- // TODO +- } // addPopupMenuListener() +- +- /** +- * removePopupMenuListener +- * @param listener TODO +- */ +- public void removePopupMenuListener(PopupMenuListener listener) { +- // TODO +- } // removePopupMenuListener() +- +- /** +- * firePopupMenuWillBecomeVisible +- */ +- protected void firePopupMenuWillBecomeVisible() { +- // TODO +- } // firePopupMenuWillBecomeVisible() +- +- /** +- * firePopupMenuWillBecomeInvisible +- */ +- protected void firePopupMenuWillBecomeInvisible() { +- // TODO +- } // firePopupMenuWillBecomeInvisible() +- +- /** +- * firePopupMenuCanceled +- */ +- protected void firePopupMenuCanceled() { +- // TODO +- } // firePopupMenuCanceled() +- +- /** +- * pack +- */ +- public void pack() { +- // TODO +- } // pack() +- +- /** +- * isVisible +- * @returns boolean +- */ +- public boolean isVisible() { +- return false; // TODO +- } // isVisible() +- +- /** +- * setVisible +- * @param visible TODO +- */ +- public void setVisible(boolean visible) { +- // TODO +- } // setVisible() +- +- /** +- * setLocation +- * @param x TODO +- * @param y TODO +- */ +- public void setLocation(int x, int y) { +- // TODO +- } // setLocation() +- +- /** +- * isPopupMenu +- * @returns boolean +- */ +- private boolean isPopupMenu() { +- return false; // TODO +- } // isPopupMenu() +- +- /** +- * getInvoker +- * @returns Component +- */ +- public Component getInvoker() { +- return null; // TODO +- } // getInvoker() +- +- /** +- * setInvoker +- * @param component TODO +- */ +- public void setInvoker(Component component) { +- // TODO +- } // setInvoker() +- +- /** +- * show +- * @param component TODO +- * @param x TODO +- * @param y TODO +- */ +- public void show(Component component, int x, int y) { +- // TODO +- } // show() +- +- /** +- * getRootPopupMenu +- * @returns JPopupMenu +- */ +- JPopupMenu getRootPopupMenu() { +- return null; // TODO +- } // getRootPopupMenu() +- +- /** +- * getComponentAtIndex +- * @param index TODO +- * @returns Component +- */ +- public Component getComponentAtIndex(int index) { +- return null; // TODO +- } // getComponentAtIndex() +- +- /** +- * getComponentIndex +- * @param component TODO +- * @returns int +- */ +- public int getComponentIndex(Component component) { +- return 0; // TODO +- } // getComponentIndex() +- +- /** +- * setPopupSize +- * @param size TODO +- */ +- public void setPopupSize(Dimension size) { +- // TODO +- } // setPopupSize() +- +- /** +- * setPopupSize +- * @param x TODO +- * @param y TODO +- */ +- public void setPopupSize(int x, int y) { +- // TODO +- } // setPopupSize() +- +- /** +- * setSelected +- * @param selected TODO +- */ +- public void setSelected(Component selected) { +- // TODO +- } // setSelected() +- +- /** +- * isBorderPainted +- * @returns boolean +- */ +- public boolean isBorderPainted() { +- return false; // TODO +- } // isBorderPainted() +- +- /** +- * setBorderPainted +- * @param painted TODO +- */ +- public void setBorderPainted(boolean painted) { +- // TODO +- } // setBorderPainted() +- +- /** +- * getMargin +- * @returns Insets +- */ +- public Insets getMargin() { +- return null; // TODO +- } // getMargin() +- +- /** +- * paramString +- * @returns String +- */ +- protected String paramString() { +- return null; // TODO +- } // paramString() +- +- /** +- * processMouseEvent +- * @param event TODO +- * @param path TODO +- * @param manager TODO +- */ +- public void processMouseEvent(MouseEvent event, MenuElement[] path, +- MenuSelectionManager manager) { +- // TODO +- } // processMouseEvent() +- +- /** +- * processKeyEvent +- * @param event TODO +- * @param path TODO +- * @param manager TODO +- */ +- public void processKeyEvent(KeyEvent event, MenuElement[] path, +- MenuSelectionManager manager) { +- // TODO +- } // processKeyEvent() +- +- /** +- * menuSelectionChanged +- * @param changed TODO +- */ +- public void menuSelectionChanged(boolean changed) { +- // TODO +- } // menuSelectionChanged() +- +- /** +- * getSubElements +- * @returns MenuElement[] +- */ +- public MenuElement[] getSubElements() { +- return null; // TODO +- } // getSubElements() +- +- /** +- * getComponent +- * @returns Component +- */ +- public Component getComponent() { +- return null; // TODO +- } // getComponent() +- +- /** +- * isPopupTrigger +- * @param event TODO +- * @returns boolean +- */ +- public boolean isPopupTrigger(MouseEvent event) { +- return false; // TODO +- } // isPopupTrigger() +- +- /** +- * getAccessibleContext +- * @returns AccessibleContext +- */ +- public AccessibleContext getAccessibleContext() { +- if (accessibleContext == null) { +- accessibleContext = new AccessibleJPopupMenu(this); +- } // if +- return accessibleContext; +- } // getAccessibleContext() ++ /** name for the UI delegate for this menuItem. */ ++ private static final String uiClassID = "PopupMenuUI"; + ++ /** Fire a PropertyChangeEvent when the "borderPainted" property changes. */ ++ public static final String LABEL_CHANGED_PROPERTY = "label"; + +-} // JPopupMenu ++ /* indicates if popup's menu border should be painted*/ ++ private boolean borderPainted = true; ++ ++ /** Flag indicating whether lightweight, mediumweight or heavyweight popup ++ is used to display menu items. ++ ++ These are the possible cases: ++ ++ 1. if DefaultLightWeightPopupEnabled true ++ (i) use lightweight container if popup feets inside top-level window ++ (ii) only use heavyweight container (JWindow) if popup doesn't fit. ++ ++ 2. if DefaultLightWeightPopupEnabled false ++ (i) if popup fits, use awt.Panel (mediumWeight) ++ (ii) if popup doesn't fit, use JWindow (heavyWeight) ++ */ ++ private static boolean DefaultLightWeightPopupEnabled = true; ++ ++ /* Component that invokes popup menu. */ ++ transient Component invoker; ++ ++ /* Label for this popup menu. It is not used in most of the look and feel themes. */ ++ private String label; ++ ++ /*Amount of space between menuItem's in JPopupMenu and JPopupMenu's border */ ++ private Insets margin; ++ ++ /** Indicates whether ligthWeight container can be used to display popup ++ menu. This flag is the same as DefaultLightWeightPopupEnabled, but setting ++ this flag can change popup menu after creation of the object */ ++ private boolean lightWeightPopupEnabled; ++ ++ /** SelectionModel that keeps track of menu selection. */ ++ private SingleSelectionModel selectionModel; ++ ++ /* Popup that is used to display JPopupMenu */ ++ private transient Popup popup; ++ ++ /* Location of the popup */ ++ private Point popupLocation; ++ ++ /* Field indicating if popup menu is visible or not */ ++ private boolean visible = false; ++ ++ /* Bound Property indicating visibility of the popup menu*/ ++ public static final String VISIBLE_CHANGED_PROPERTY = "visible"; ++ ++ /** ++ * Creates a new JPopupMenu object. ++ */ ++ public JPopupMenu() ++ { ++ updateUI(); ++ ++ lightWeightPopupEnabled = DefaultLightWeightPopupEnabled; ++ selectionModel = new DefaultSingleSelectionModel(); ++ super.setVisible(false); ++ } ++ ++ /** ++ * Creates a new JPopupMenu with specified label ++ * ++ * @param label Label for popup menu. ++ */ ++ public JPopupMenu(String label) ++ { ++ setLabel(label); ++ } ++ ++ private void readObject(ObjectInputStream stream) ++ throws IOException, ClassNotFoundException ++ { ++ } ++ ++ private void writeObject(ObjectOutputStream stream) throws IOException ++ { ++ } ++ ++ /** ++ * Adds given menu item to the popup menu ++ * ++ * @param item menu item to add to the popup menu ++ * ++ * @return menu item that was added to the popup menu ++ */ ++ public JMenuItem add(JMenuItem item) ++ { ++ this.insert(item, -1); ++ return item; ++ } ++ ++ /** ++ * Constructs menu item with a specified label and adds it to ++ * popup menu ++ * ++ * @param text label for the menu item to be added ++ * ++ * @return constructed menu item that was added to the popup menu ++ */ ++ public JMenuItem add(String text) ++ { ++ JMenuItem item = new JMenuItem(text); ++ return add(item); ++ } ++ ++ /** ++ * Constructs menu item associated with the specified action ++ * and adds it to the popup menu ++ * ++ * @param action Action for the new menu item ++ * ++ * @return menu item that was added to the menu ++ */ ++ public JMenuItem add(Action action) ++ { ++ JMenuItem item = createActionComponent(action); ++ ++ if (action != null) ++ action.addPropertyChangeListener(createActionChangeListener(item)); ++ ++ return add(item); ++ } ++ ++ /** ++ * Revomes component at the given index from the menu. ++ * ++ * @param index index of the component that will be removed in the menu ++ */ ++ public void remove(int index) ++ { ++ super.remove(index); ++ ++ GridBagConstraints constraints = new GridBagConstraints(); ++ constraints.fill = GridBagConstraints.BOTH; ++ constraints.weightx = 100.0; ++ constraints.weighty = 100.0; ++ ++ Component[] items = getComponents(); ++ for (int i = index; i < items.length; i++) ++ { ++ constraints.gridy = i; ++ super.add(items[i], constraints, i); ++ } ++ } ++ ++ /** ++ * Create menu item associated with the given action ++ * and inserts it into the popup menu at the specified index ++ * ++ * @param action Action for the new menu item ++ * @param index index in the popup menu at which to insert new menu item. ++ */ ++ public void insert(Action action, int index) ++ { ++ JMenuItem item = new JMenuItem(action); ++ this.insert(item, index); ++ } ++ ++ /** ++ * Insert given component to the popup menu at the ++ * specified index ++ * ++ * @param component Component to insert ++ * @param index Index at which to insert given component ++ */ ++ public void insert(Component component, int index) ++ { ++ GridBagConstraints constraints = new GridBagConstraints(); ++ constraints.fill = GridBagConstraints.BOTH; ++ constraints.weightx = 100.0; ++ constraints.weighty = 100.0; ++ ++ if (index == -1) ++ index = getComponents().length; ++ ++ constraints.gridy = index; ++ super.add(component, constraints, index); ++ ++ // need to change constraints for the components that were moved by 1 ++ // due to the insertion ++ if (index != -1) ++ { ++ Component[] items = getComponents(); ++ ++ for (int i = index + 1; i < items.length; i++) ++ { ++ constraints.gridy = i; ++ super.add(items[i], constraints, i); ++ } ++ } ++ } ++ ++ /** ++ * Paints popup menu's border if borderPainted is true ++ * ++ * @param graphics graphics context used to paint this popup's menu border. ++ */ ++ protected void borderPainted(Graphics graphics) ++ { ++ if (borderPainted) ++ getBorder().paintBorder(this, graphics, 0, 0, getSize(null).width, ++ getSize(null).height); ++ } ++ ++ /** ++ * Returns flag indicating if newly created JPopupMenu will use ++ * heavyweight or lightweight container to display its menu items ++ * ++ * @return true if JPopupMenu will use lightweight container to display ++ * menu items by default, and false otherwise. ++ */ ++ public static boolean getDefaultLightWeightPopupEnabled() ++ { ++ return DefaultLightWeightPopupEnabled; ++ } ++ ++ /** ++ * Sets whether JPopupMenu should use ligthWeight container to ++ * display it menu items by default ++ * ++ * @param enabled true if JPopupMenu should use lightweight container ++ * for displaying its menu items, and false otherwise. ++ */ ++ public static void setDefaultLightWeightPopupEnabled(boolean enabled) ++ { ++ DefaultLightWeightPopupEnabled = enabled; ++ } ++ ++ /** ++ * This method returns the UI used to display the JPopupMenu. ++ * ++ * @return The UI used to display the JPopupMenu. ++ */ ++ public PopupMenuUI getUI() ++ { ++ return (PopupMenuUI) ui; ++ } ++ ++ /** ++ * Set the "UI" property of the menu item, which is a look and feel class ++ * responsible for handling popupMenu's input events and painting it. ++ * ++ * @param ui The new "UI" property ++ */ ++ public void setUI(PopupMenuUI ui) ++ { ++ super.setUI(ui); ++ } ++ ++ /** ++ * This method sets this menuItem's UI to the UIManager's default for the ++ * current look and feel. ++ */ ++ public void updateUI() ++ { ++ setUI((PopupMenuUI) UIManager.getUI(this)); ++ invalidate(); ++ } ++ ++ /** ++ * This method returns a name to identify which look and feel class will be ++ * the UI delegate for the menuItem. ++ * ++ * @return The Look and Feel classID. "PopupMenuUI" ++ */ ++ public String getUIClassID() ++ { ++ return "PopupMenuUI"; ++ } ++ ++ /** ++ * Returns selectionModel used by this popup menu to keep ++ * track of the selection. ++ * ++ * @return popup menu's selection model ++ */ ++ public SingleSelectionModel getSelectionModel() ++ { ++ return selectionModel; ++ } ++ ++ /** ++ * Sets selection model for this popup menu ++ * ++ * @param model new selection model of this popup menu ++ */ ++ public void setSelectionModel(SingleSelectionModel model) ++ { ++ if (selectionModel != model) ++ { ++ SingleSelectionModel oldModel = this.selectionModel; ++ } ++ } ++ ++ /** ++ * Creates new menu item associated with a given action. ++ * ++ * @param action Action used to create new menu item ++ * ++ * @return new created menu item associated with a given action. ++ */ ++ protected JMenuItem createActionComponent(Action action) ++ { ++ return new JMenuItem(action); ++ } ++ ++ /** ++ * Creates PropertyChangeListener that listens to PropertyChangeEvents ++ * occuring in the Action associated with given menu item in this popup menu. ++ * ++ * @param item MenuItem ++ * ++ * @return The PropertyChangeListener ++ */ ++ protected PropertyChangeListener createActionChangeListener(JMenuItem item) ++ { ++ return new ActionChangeListener(); ++ } ++ ++ /** ++ * Returns true if this popup menu will display its menu item in ++ * a lightweight container and false otherwise. ++ * ++ * @return true if this popup menu will display its menu items ++ * in a lightweight container and false otherwise. ++ */ ++ public boolean isLightWeightPopupEnabled() ++ { ++ return lightWeightPopupEnabled; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param enabled DOCUMENT ME! ++ */ ++ public void setLightWeightPopupEnabled(boolean enabled) ++ { ++ lightWeightPopupEnabled = enabled; ++ } ++ ++ /** ++ * Returns label for this popup menu ++ * ++ * @return label for this popup menu ++ */ ++ public String getLabel() ++ { ++ return label; ++ } ++ ++ /** ++ * Sets label for this popup menu. This method fires PropertyChangeEvent ++ * when the label property is changed. Please note that most ++ * of the Look & Feel will ignore this property. ++ * ++ * @param label label for this popup menu ++ */ ++ public void setLabel(String label) ++ { ++ if (label != this.label) ++ { ++ String oldLabel = this.label; ++ this.label = label; ++ firePropertyChange(LABEL_CHANGED_PROPERTY, oldLabel, label); ++ } ++ } ++ ++ /** ++ * Adds separator to this popup menu ++ */ ++ public void addSeparator() ++ { ++ // insert separator at the end of the list of menu items ++ this.insert(new Separator(), -1); ++ } ++ ++ /** ++ * Adds popupMenuListener to listen for PopupMenuEvents fired ++ * by the JPopupMenu ++ * ++ * @param listener PopupMenuListener to add to JPopupMenu ++ */ ++ public void addPopupMenuListener(PopupMenuListener listener) ++ { ++ listenerList.add(PopupMenuListener.class, listener); ++ } ++ ++ /** ++ * Removes PopupMenuListener from JPopupMenu's list of listeners ++ * ++ * @param listener PopupMenuListener which needs to be removed ++ */ ++ public void removePopupMenuListener(PopupMenuListener listener) ++ { ++ listenerList.remove(PopupMenuListener.class, listener); ++ } ++ ++ /** ++ * Returns array of PopupMenuListeners that are listening to JPopupMenu ++ * ++ * @return Array of PopupMenuListeners that are listening to JPopupMenu ++ */ ++ public PopupMenuListener[] getPopupMenuListeners() ++ { ++ return ((PopupMenuListener[]) listenerList.getListeners(PopupMenuListener.class)); ++ } ++ ++ /** ++ * This method calls popupMenuWillBecomeVisible() of popup menu's ++ * PopupMenuListeners. This method is invoked just before popup menu ++ * will appear on the screen. ++ */ ++ protected void firePopupMenuWillBecomeVisible() ++ { ++ EventListener[] ll = listenerList.getListeners(PopupMenuListener.class); ++ ++ for (int i = 0; i < ll.length; i++) ++ ((PopupMenuListener) ll[i]).popupMenuWillBecomeVisible(new PopupMenuEvent(this)); ++ } ++ ++ /** ++ * This method calls popupMenuWillBecomeInvisible() of popup ++ * menu's PopupMenuListeners. This method is invoked just before popup ++ * menu will disappear from the screen ++ */ ++ protected void firePopupMenuWillBecomeInvisible() ++ { ++ EventListener[] ll = listenerList.getListeners(PopupMenuListener.class); ++ ++ for (int i = 0; i < ll.length; i++) ++ ((PopupMenuListener) ll[i]).popupMenuWillBecomeInvisible(new PopupMenuEvent(this)); ++ } ++ ++ /** ++ * This method calls popupMenuCanceled() of popup menu's PopupMenuListeners. ++ * This method is invoked just before popup menu is cancelled. This happens ++ * when popup menu is closed without selecting any of its menu items. This ++ * usually happens when the top-level window is resized or moved. ++ */ ++ protected void firePopupMenuCanceled() ++ { ++ EventListener[] ll = listenerList.getListeners(PopupMenuListener.class); ++ ++ for (int i = 0; i < ll.length; i++) ++ ((PopupMenuListener) ll[i]).popupMenuCanceled(new PopupMenuEvent(this)); ++ } ++ ++ /** ++ * This methods sets popup menu's size to its' preferred size. If the ++ * popup menu's size is previously set it will be ignored. ++ */ ++ public void pack() ++ { ++ super.setSize(null); ++ } ++ ++ /** ++ * Return visibility of the popup menu ++ * ++ * @return true if popup menu is visible on the screen and false otherwise. ++ */ ++ public boolean isVisible() ++ { ++ return visible; ++ } ++ ++ /** ++ * Sets visibility property of this popup menu. If the property is ++ * set to true then popup menu will be dispayed and popup menu will ++ * hide itself if visible property is set to false. ++ * ++ * @param visible true if popup menu will become visible and false otherwise. ++ */ ++ public void setVisible(boolean visible) ++ { ++ boolean old = isVisible(); ++ this.visible = visible; ++ if (old != isVisible()) ++ { ++ firePropertyChange(VISIBLE_CHANGED_PROPERTY, old, (boolean) isVisible()); ++ if (visible) ++ { ++ firePopupMenuWillBecomeVisible(); ++ Container rootContainer = (Container) SwingUtilities.getRoot(invoker); ++ ++ boolean fit = true; ++ Dimension size; ++ ++ // Determine the size of the popup menu ++ if (this.getSize().width == 0 && this.getSize().width == 0) ++ size = this.getPreferredSize(); ++ else ++ size = this.getSize(); ++ ++ if ((size.width > (rootContainer.getWidth() - popupLocation.x)) ++ || (size.height > (rootContainer.getHeight() - popupLocation.y))) ++ fit = false; ++ if (lightWeightPopupEnabled && fit) ++ popup = new LightWeightPopup(this); ++ else ++ { ++ if (fit) ++ popup = new MediumWeightPopup(this); ++ else ++ popup = new HeavyWeightPopup(this); ++ } ++ if (popup instanceof LightWeightPopup ++ || popup instanceof MediumWeightPopup) ++ { ++ JLayeredPane layeredPane; ++ layeredPane = SwingUtilities.getRootPane(invoker) ++ .getLayeredPane(); ++ Point p = new Point(popupLocation.x, popupLocation.y); ++ SwingUtilities.convertPointFromScreen(p, layeredPane); ++ popup.show(p.x, p.y, size.width, size.height); ++ } ++ else ++ { ++ // Subtract insets of the top-level container if popup menu's ++ // top-left corner is inside it. ++ Insets insets = rootContainer.getInsets(); ++ popup.show(popupLocation.x - insets.left, ++ popupLocation.y - insets.top, size.width, ++ size.height); ++ } ++ } ++ else ++ { ++ firePopupMenuWillBecomeInvisible(); ++ popup.hide(); ++ } ++ } ++ } ++ ++ /** ++ * Sets location of the popup menu. ++ * ++ * @param x X coordinate of the popup menu's location ++ * @param y Y coordinate of the popup menu's location ++ */ ++ public void setLocation(int x, int y) ++ { ++ if (popupLocation == null) ++ popupLocation = new Point(); ++ ++ popupLocation.x = x; ++ popupLocation.y = y; ++ } ++ ++ /** ++ * Returns popup menu's invoker. ++ * ++ * @return popup menu's invoker ++ */ ++ public Component getInvoker() ++ { ++ return invoker; ++ } ++ ++ /** ++ * Sets popup menu's invoker. ++ * ++ * @param component The new invoker of this popup menu ++ */ ++ public void setInvoker(Component component) ++ { ++ invoker = component; ++ } ++ ++ /** ++ * This method displays JPopupMenu on the screen at the specified ++ * location. Note that x and y coordinates given to this method ++ * should be expressed in terms of the popup menus' invoker. ++ * ++ * @param component Invoker for this popup menu ++ * @param x x-coordinate of the popup menu relative to the specified invoker ++ * @param y y-coordiate of the popup menu relative to the specified invoker ++ */ ++ public void show(Component component, int x, int y) ++ { ++ setInvoker(component); ++ Point p = new Point(x, y); ++ SwingUtilities.convertPointToScreen(p, component); ++ setLocation(p.x, p.y); ++ setVisible(true); ++ } ++ ++ /** ++ * Returns component located at the specified index in the popup menu ++ * ++ * @param index index of the component to return ++ * ++ * @return component located at the specified index in the popup menu ++ * ++ * @deprecated Replaced by getComponent(int) ++ */ ++ public Component getComponentAtIndex(int index) ++ { ++ return getComponent(index); ++ } ++ ++ /** ++ * Returns index of the specified component in the popup menu ++ * ++ * @param component Component to look for ++ * ++ * @return index of the specified component in the popup menu ++ */ ++ public int getComponentIndex(Component component) ++ { ++ Component[] items = getComponents(); ++ ++ for (int i = 0; i < items.length; i++) ++ { ++ if (items[i].equals(component)) ++ return i; ++ } ++ ++ return -1; ++ } ++ ++ /** ++ * Sets size of the popup ++ * ++ * @param size Dimensions representing new size of the popup menu ++ */ ++ public void setPopupSize(Dimension size) ++ { ++ super.setSize(size); ++ } ++ ++ /** ++ * Sets size of the popup menu ++ * ++ * @param width width for the new size ++ * @param height height for the new size ++ */ ++ public void setPopupSize(int width, int height) ++ { ++ super.setSize(width, height); ++ } ++ ++ /** ++ * Selects specified component in this popup menu. ++ * ++ * @param selected component to select ++ */ ++ public void setSelected(Component selected) ++ { ++ int index = getComponentIndex(selected); ++ selectionModel.setSelectedIndex(index); ++ } ++ ++ /** ++ * Checks if this popup menu paints its border. ++ * ++ * @return true if this popup menu paints its border and false otherwise. ++ */ ++ public boolean isBorderPainted() ++ { ++ return borderPainted; ++ } ++ ++ /** ++ * Sets if the border of the popup menu should be ++ * painter or not. ++ * ++ * @param painted true if the border should be painted and false otherwise ++ */ ++ public void setBorderPainted(boolean painted) ++ { ++ borderPainted = painted; ++ } ++ ++ /** ++ * Returns margin for this popup menu. ++ * ++ * @return margin for this popup menu. ++ */ ++ public Insets getMargin() ++ { ++ return margin; ++ } ++ ++ /** ++ * A string that describes this JPopupMenu. Normally only used ++ * for debugging. ++ * ++ * @return A string describing this JMenuItem ++ */ ++ protected String paramString() ++ { ++ return "JPopupMenu"; ++ } ++ ++ /** ++ * Process mouse events forwarded from MenuSelectionManager. This method ++ * doesn't do anything. It is here to conform to the MenuElement interface. ++ * ++ * @param event event forwarded from MenuSelectionManager ++ * @param path path to the menu element from which event was generated ++ * @param manager MenuSelectionManager for the current menu hierarchy ++ */ ++ public void processMouseEvent(MouseEvent event, MenuElement[] path, ++ MenuSelectionManager manager) ++ { ++ // Empty Implementation. This method is needed for the implementation ++ // of MenuElement interface ++ } ++ ++ /** ++ * Process key events forwarded from MenuSelectionManager. This method ++ * doesn't do anything. It is here to conform to the MenuElement interface. ++ * ++ * @param event event forwarded from MenuSelectionManager ++ * @param path path to the menu element from which event was generated ++ * @param manager MenuSelectionManager for the current menu hierarchy ++ * ++ */ ++ public void processKeyEvent(KeyEvent event, MenuElement[] path, ++ MenuSelectionManager manager) ++ { ++ // Empty Implementation. This method is needed for the implementation ++ // of MenuElement interface ++ } ++ ++ /** ++ * Method of MenuElement Interface. It is invoked when ++ * popupMenu's selection has changed ++ * ++ * @param changed true if this popupMenu is part of current menu ++ * hierarchy and false otherwise. ++ */ ++ public void menuSelectionChanged(boolean changed) ++ { ++ if (! changed) ++ setVisible(false); ++ } ++ ++ /** ++ * Return subcomonents of this popup menu. ++ * ++ * @return Array containing menuItem's of belonging to this popup menu. ++ */ ++ public MenuElement[] getSubElements() ++ { ++ Component[] items = getComponents(); ++ MenuElement[] subElements = new MenuElement[items.length]; ++ ++ for (int i = 0; i < items.length; i++) ++ subElements[i] = (MenuElement) items[i]; ++ ++ return subElements; ++ } ++ ++ /** ++ * Method of the MenuElement interface. Returns reference to itself. ++ * ++ * @return Returns reference to itself ++ */ ++ public Component getComponent() ++ { ++ return this; ++ } ++ ++ /** ++ * Checks if observing mouse event should trigger popup ++ * menu to show on the screen. ++ * ++ * @param event MouseEvent to check ++ * ++ * @return true if the observing mouse event is popup trigger and false otherwise ++ */ ++ public boolean isPopupTrigger(MouseEvent event) ++ { ++ return ((PopupMenuUI) getUI()).isPopupTrigger(event); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public AccessibleContext getAccessibleContext() ++ { ++ if (accessibleContext == null) ++ accessibleContext = new AccessibleJPopupMenu(); ++ ++ return accessibleContext; ++ } ++ ++ /** ++ * This interface is used to display menu items of the JPopupMenu ++ */ ++ private interface Popup ++ { ++ /** ++ * Displays container on the screen ++ * ++ * @param x x-coordinate of popup menu's location on the screen ++ * @param y y-coordinate of popup menu's location on the screen ++ * @param width width of the container that is used to display menu ++ * item's for popup menu ++ * @param height height of the container that is used to display menu ++ * item's for popup menu ++ */ ++ void show(int x, int y, int width, int height); ++ ++ /** ++ * Hides container used to display popup menu item's from the screen ++ */ ++ void hide(); ++ } ++ ++ /** ++ * This class represents Popup menu that uses light weight container ++ * to display its contents. ++ */ ++ private class LightWeightPopup extends Container implements Popup ++ { ++ /** ++ * Creates a new LightWeightPopup menu ++ * ++ * @param c Container containing menu items ++ */ ++ private Component c; ++ ++ public LightWeightPopup(Container c) ++ { ++ this.c = c; ++ } ++ ++ /** ++ * Displayes lightweight container with menu items to the screen ++ * ++ * @param x x-coordinate of lightweight container on the screen ++ * @param y y-coordinate of lightweight container on the screen ++ * @param width width of the lightweight container ++ * @param height height of the lightweight container ++ */ ++ public void show(int x, int y, int width, int height) ++ { ++ JLayeredPane layeredPane; ++ layeredPane = SwingUtilities.getRootPane(invoker).getLayeredPane(); ++ c.setBounds(x, y, width, height); ++ layeredPane.add(c, JLayeredPane.POPUP_LAYER, 0); ++ } ++ ++ /** ++ * Hides lightweight container from the screen ++ */ ++ public void hide() ++ { ++ // FIXME: Right now the lightweight container is removed from JLayered ++ // pane. It is probably would be better in order to improve performance ++ // to make the container invisible instead of removing it everytime. ++ JLayeredPane layeredPane; ++ layeredPane = SwingUtilities.getRootPane(invoker).getLayeredPane(); ++ int index = layeredPane.getIndexOf(c); ++ layeredPane.remove(index); ++ } ++ } ++ ++ /** ++ * MediumWeightPopup is an AWT Panel with JPopupMenu's menu items. ++ * It is used to display JPopupMenu's menu items on the screen ++ */ ++ private class MediumWeightPopup extends Panel implements Popup ++ { ++ /** ++ * Creates a new MediumWeightPopup object. ++ * ++ * @param c Container with JPopupMenu's menu items ++ */ ++ public MediumWeightPopup(Container c) ++ { ++ this.add(c); ++ } ++ ++ /** ++ * Displays AWT Panel with its components on the screen ++ * ++ * @param x x-coordinate of the upper-left corner of the panel's ++ * @param y y-coordinate of the upper-left corner of the panel's ++ * @param width width of the panel ++ * @param height height of the panel ++ */ ++ public void show(int x, int y, int width, int height) ++ { ++ JLayeredPane layeredPane; ++ layeredPane = SwingUtilities.getRootPane(invoker).getLayeredPane(); ++ layeredPane.add(this, JLayeredPane.POPUP_LAYER, 0); ++ this.setBounds(x, y, width, height); ++ } ++ ++ /** ++ * Hides This panel from the screen ++ */ ++ public void hide() ++ { ++ // FIXME: Right now the lightweight container is removed from JLayered ++ // pane. It is probably would be better in order to improve performance ++ // to make the container invisible instead of removing it everytime. ++ JLayeredPane layeredPane; ++ layeredPane = SwingUtilities.getRootPane(invoker).getLayeredPane(); ++ int index = layeredPane.getIndexOf(this); ++ layeredPane.remove(index); ++ } ++ } ++ ++ /** ++ * HeavyWeightPopup is JWindow that is used to display JPopupMenu menu item's ++ * on the screen ++ */ ++ private class HeavyWeightPopup extends JWindow implements Popup ++ { ++ /** ++ * Creates a new HeavyWeightPopup object. ++ * ++ * @param c Container containing menu items ++ */ ++ public HeavyWeightPopup(Container c) ++ { ++ this.setContentPane(c); ++ } ++ ++ /** ++ * Displays JWindow container JPopupMenu's menu items to the screen ++ * ++ * @param x x-coordinate of JWindow containing menu items ++ * @param y y-coordinate of JWindow containing menu items ++ * @param width width of the JWindow ++ * @param height height of the JWindow ++ */ ++ public void show(int x, int y, int width, int height) ++ { ++ this.setBounds(x, y, width, height); ++ this.show(); ++ } ++ ++ /** ++ * Hides JWindow with menu item's from the screen. ++ */ ++ public void hide() ++ { ++ super.hide(); ++ } ++ } ++ ++ /** ++ * This is the separator that can be used in popup menu. ++ */ ++ public static class Separator extends JSeparator ++ { ++ public Separator() ++ { ++ } ++ ++ public String getUIClassID() ++ { ++ return "PopupMenuSeparatorUI"; ++ } ++ } ++ ++ protected class AccessibleJPopupMenu extends AccessibleJComponent ++ { ++ private static final long serialVersionUID = 7423261328879849768L; ++ ++ protected AccessibleJPopupMenu() ++ { ++ } ++ ++ public AccessibleRole getAccessibleRole() ++ { ++ return AccessibleRole.POPUP_MENU; ++ } ++ } ++ ++ /* This class resizes popup menu and repaints popup menu appropriately if one ++ of item's action has changed */ ++ protected class ActionChangeListener implements PropertyChangeListener ++ { ++ public void propertyChange(PropertyChangeEvent evt) ++ { ++ JPopupMenu.this.revalidate(); ++ JPopupMenu.this.repaint(); ++ } ++ } ++} +Index: javax/swing/JProgressBar.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JProgressBar.java,v +retrieving revision 1.3 +diff -u -r1.3 JProgressBar.java +--- javax/swing/JProgressBar.java 9 Jan 2004 10:18:47 -0000 1.3 ++++ javax/swing/JProgressBar.java 6 Sep 2004 16:35:58 -0000 +@@ -38,8 +38,7 @@ + package javax.swing; + + import java.awt.Graphics; +-import java.io.IOException; +-import java.io.ObjectOutputStream; ++ + import javax.accessibility.Accessible; + import javax.accessibility.AccessibleContext; + import javax.accessibility.AccessibleRole; +@@ -49,440 +48,624 @@ + import javax.swing.event.ChangeListener; + import javax.swing.plaf.ProgressBarUI; + ++ + /** +- * JProgressBar +- * @author Andrew Selkirk +- * @version 1.0 ++ *

    ++ * The ProgressBar is a widget that displays in two modes. In ++ * determinate mode, it displays fills a percentage of its bar ++ * based on its current value. In indeterminate mode, it creates ++ * box and bounces it between its bounds. ++ *

    ++ * ++ *

    ++ * JProgressBars have the following properties: ++ *

    ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ *
    Property Stored in Bound?
    borderPainted progressBar yes
    changeListeners progressBar no
    indeterminate progressBar yes
    maximum model no
    minimum model no
    model progressBar no
    orientation progressBar yes
    percentComplete progressBar no
    string progressBar yes
    stringPainted progressBar yes
    value model no
    + */ +-public class JProgressBar extends JComponent implements SwingConstants, Accessible ++public class JProgressBar extends JComponent implements SwingConstants, ++ Accessible + { +- +- //------------------------------------------------------------- +- // Classes ---------------------------------------------------- +- //------------------------------------------------------------- +- +- +- /** +- * AccessibleJProgressBar +- */ +- protected class AccessibleJProgressBar extends AccessibleJComponent +- implements AccessibleValue { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor AccessibleJProgressBar +- * @param component TODO +- */ +- protected AccessibleJProgressBar(JProgressBar component) { +- super(component); +- // TODO +- } // AccessibleJProgressBar() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * getAccessibleStateSet +- * @returns AccessibleStateSet +- */ +- public AccessibleStateSet getAccessibleStateSet() { +- return null; // TODO +- } // getAccessibleStateSet() +- +- /** +- * getAccessibleRole +- * @returns AccessibleRole +- */ +- public AccessibleRole getAccessibleRole() { +- return AccessibleRole.PROGRESS_BAR; +- } // getAccessibleRole() +- +- /** +- * getAccessibleValue +- * @returns AccessibleValue +- */ +- public AccessibleValue getAccessibleValue() { +- return null; // TODO +- } // getAccessibleValue() +- +- /** +- * getCurrentAccessibleValue +- * @returns Number +- */ +- public Number getCurrentAccessibleValue() { +- return null; // TODO +- } // getCurrentAccessibleValue() +- +- /** +- * setCurrentAccessibleValue +- * @param value0 TODO +- * @returns boolean +- */ +- public boolean setCurrentAccessibleValue(Number value0) { +- return false; // TODO +- } // setCurrentAccessibleValue() +- +- /** +- * getMinimumAccessibleValue +- * @returns Number +- */ +- public Number getMinimumAccessibleValue() { +- return null; // TODO +- } // getMinimumAccessibleValue() +- +- /** +- * getMaximumAccessibleValue +- * @returns Number +- */ +- public Number getMaximumAccessibleValue() { +- return null; // TODO +- } // getMaximumAccessibleValue() +- +- +- } // AccessibleJProgressBar +- +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * uiClassID +- */ +- private static final String uiClassID = "ProgressBarUI"; +- +- /** +- * orientation +- */ +- protected int orientation; +- +- /** +- * paintBorder +- */ +- protected boolean paintBorder; +- +- /** +- * model +- */ +- protected BoundedRangeModel model; +- +- /** +- * progressString +- */ +- protected String progressString; +- +- /** +- * paintString +- */ +- protected boolean paintString; +- +- /** +- * changeEvent +- */ +- protected transient ChangeEvent changeEvent; +- +- /** +- * changeListener +- */ +- protected ChangeListener changeListener; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor JProgressBar +- */ +- public JProgressBar() { +- // TODO +- } // JProgressBar() +- +- /** +- * Constructor JProgressBar +- * @param orientation TODO +- */ +- public JProgressBar(int orientation) { +- // TODO +- } // JProgressBar() +- +- /** +- * Constructor JProgressBar +- * @param minimum TODO +- * @param maximum TODO +- */ +- public JProgressBar(int minimum, int maximum) { +- // TODO +- } // JProgressBar() +- +- /** +- * Constructor JProgressBar +- * @param minimum TODO +- * @param maximum TODO +- * @param orientation TODO +- */ +- public JProgressBar(int minimum, int maximum, int orientation) { +- // TODO +- } // JProgressBar() +- +- /** +- * Constructor JProgressBar +- * @param model TODO +- */ +- public JProgressBar(BoundedRangeModel model) { +- // TODO +- } // JProgressBar() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * writeObject +- * @param stream TODO +- * @exception IOException TODO +- */ +- private void writeObject(ObjectOutputStream stream) throws IOException { +- // TODO +- } // writeObject() +- +- /** +- * getValue +- * @returns int +- */ +- public int getValue() { +- return 0; // TODO +- } // getValue() +- +- /** +- * setValue +- * @param value TODO +- */ +- public void setValue(int value) { +- // TODO +- } // setValue() +- +- /** +- * paintBorder +- * @param graphics TODO +- */ +- protected void paintBorder(Graphics graphics) { +- // TODO +- } // paintBorder() +- +- /** +- * getOrientation +- * @returns int +- */ +- public int getOrientation() { +- return 0; // TODO +- } // getOrientation() +- +- /** +- * setOrientation +- * @param orientation TODO +- */ +- public void setOrientation(int orientation) { +- // TODO +- } // setOrientation() +- +- /** +- * isStringPainted +- * @returns boolean +- */ +- public boolean isStringPainted() { +- return false; // TODO +- } // isStringPainted() +- +- /** +- * setStringPainted +- * @param painted TODO +- */ +- public void setStringPainted(boolean painted) { +- // TODO +- } // setStringPainted() +- +- /** +- * getString +- * @returns String +- */ +- public String getString() { +- return null; // TODO +- } // getString() +- +- /** +- * setString +- * @param string TODO +- */ +- public void setString(String string) { +- // TODO +- } // setString() +- +- /** +- * getPercentComplete +- * @returns double +- */ +- public double getPercentComplete() { +- return 0.0; // TODO +- } // getPercentComplete() +- +- /** +- * isBorderPainted +- * @returns boolean +- */ +- public boolean isBorderPainted() { +- return false; // TODO +- } // isBorderPainted() +- +- /** +- * setBorderPainted +- * @param painted TODO +- */ +- public void setBorderPainted(boolean painted) { +- // TODO +- } // setBorderPainted() +- +- /** +- * getUI +- * @returns ProgressBarUI +- */ +- public ProgressBarUI getUI() { +- return (ProgressBarUI) ui; +- } // getUI() +- +- /** +- * setUI +- * @param ui TODO +- */ +- public void setUI(ProgressBarUI ui) { +- super.setUI(ui); +- // TODO +- } // setUI() +- +- /** +- * updateUI +- */ +- public void updateUI() { +- setUI((ProgressBarUI) UIManager.get(this)); +- invalidate(); +- } // updateUI() +- +- /** +- * getUIClassID +- * @returns String +- */ +- public String getUIClassID() { +- return uiClassID; +- } // getUIClassID() +- +- /** +- * createChangeListener +- * @returns ChangeListener +- */ +- protected ChangeListener createChangeListener() { +- return null; // TODO +- } // createChangeListener() +- +- /** +- * addChangeListener +- * @param listener TODO +- */ +- public void addChangeListener(ChangeListener listener) { +- // TODO +- } // addChangeListener() +- +- /** +- * removeChangeListener +- * @param listener TODO +- */ +- public void removeChangeListener(ChangeListener valulistener) { +- // TODO +- } // removeChangeListener() +- +- /** +- * fireStateChanged +- */ +- protected void fireStateChanged() { +- // TODO +- } // fireStateChanged() +- +- /** +- * getModel +- * @returns BoundedRangeModel +- */ +- public BoundedRangeModel getModel() { +- return null; // TODO +- } // getModel() +- +- /** +- * setModel +- * @param model TODO +- */ +- public void setModel(BoundedRangeModel model) { +- // TODO +- } // setModel() +- +- /** +- * getMinimum +- * @returns int +- */ +- public int getMinimum() { +- return 0; // TODO +- } // getMinimum() +- +- /** +- * setMinimum +- * @param minimum TODO +- */ +- public void setMinimum(int minimum) { +- // TODO +- } // setMinimum() +- +- /** +- * getMaximum +- * @returns int +- */ +- public int getMaximum() { +- return 0; // TODO +- } // getMaximum() +- +- /** +- * setMaximum +- * @param maximum TODO +- */ +- public void setMaximum(int maximum) { +- // TODO +- } // setMaximum() +- +- /** +- * paramString +- * @returns String +- */ +- protected String paramString() { +- return null; // TODO +- } // paramString() +- +- /** +- * getAccessibleContext +- * @returns AccessibleContext +- */ +- public AccessibleContext getAccessibleContext() { +- if (accessibleContext == null) { +- accessibleContext = new AccessibleJProgressBar(this); +- } // if +- return accessibleContext; +- } // getAccessibleContext() +- +- +-} // JProgressBar ++ /** ++ * AccessibleJProgressBar ++ */ ++ protected class AccessibleJProgressBar extends AccessibleJComponent ++ implements AccessibleValue ++ { ++ private static final long serialVersionUID = -2938130009392721813L; ++ ++ /** ++ * Constructor AccessibleJProgressBar ++ * ++ * @param component TODO ++ */ ++ protected AccessibleJProgressBar() ++ { ++ } ++ ++ /** ++ * getAccessibleStateSet ++ * ++ * @return AccessibleStateSet ++ */ ++ public AccessibleStateSet getAccessibleStateSet() ++ { ++ return null; ++ } ++ ++ /** ++ * getAccessibleRole ++ * ++ * @return AccessibleRole ++ */ ++ public AccessibleRole getAccessibleRole() ++ { ++ return AccessibleRole.PROGRESS_BAR; ++ } ++ ++ /** ++ * getAccessibleValue ++ * ++ * @return AccessibleValue ++ */ ++ public AccessibleValue getAccessibleValue() ++ { ++ return null; ++ } ++ ++ /** ++ * getCurrentAccessibleValue ++ * ++ * @return Number ++ */ ++ public Number getCurrentAccessibleValue() ++ { ++ return null; ++ } ++ ++ /** ++ * setCurrentAccessibleValue ++ * ++ * @param value0 TODO ++ * ++ * @return boolean ++ */ ++ public boolean setCurrentAccessibleValue(Number value0) ++ { ++ return false; ++ } ++ ++ /** ++ * getMinimumAccessibleValue ++ * ++ * @return Number ++ */ ++ public Number getMinimumAccessibleValue() ++ { ++ return null; ++ } ++ ++ /** ++ * getMaximumAccessibleValue ++ * ++ * @return Number ++ */ ++ public Number getMaximumAccessibleValue() ++ { ++ return null; ++ } ++ } ++ ++ private static final long serialVersionUID = 1980046021813598781L; ++ ++ /** Fired in a PropertyChangeEvent when the "borderPainted" property changes. */ ++ public static final String BORDER_PAINTED_CHANGED_PROPERTY = "borderPainted"; ++ ++ /** Fired in a PropertyChangeEvent when the "orientation" property changes. */ ++ public static final String ORIENTATION_CHANGED_PROPERTY = "orientation"; ++ ++ /** Fired in a PropertyChangeEvent when the "string" property changes. */ ++ public static final String STRING_CHANGED_PROPERTY = "string"; ++ ++ /** Fired in a PropertyChangeEvent when the "stringPainted" property changes. */ ++ public static final String STRING_PAINTED_CHANGED_PROPERTY = "stringPainted"; ++ ++ /** Fired in a PropertyChangeEvent when the "indeterminate" property changes. */ ++ public static final String INDETERMINATE_CHANGED_PROPERTY = "indeterminate"; ++ ++ /** Whether the ProgressBar is determinate. */ ++ private transient boolean indeterminate = false; ++ ++ /** The orientation of the ProgressBar */ ++ protected int orientation = HORIZONTAL; ++ ++ /** Whether borders should be painted. */ ++ protected boolean paintBorder = true; ++ ++ /** The model describing this ProgressBar. */ ++ protected BoundedRangeModel model; ++ ++ /** The string that is displayed by the ProgressBar. */ ++ protected String progressString; ++ ++ /** Whether the string should be painted. */ ++ protected boolean paintString = false; ++ ++ /** The static changeEvent passed to all ChangeListeners. */ ++ protected transient ChangeEvent changeEvent; ++ ++ /** The ChangeListener that listens to the model. */ ++ protected ChangeListener changeListener; ++ ++ /** ++ * Creates a new horizontally oriented JProgressBar object ++ * with a minimum of 0 and a maximum of 100. ++ */ ++ public JProgressBar() ++ { ++ this(0, 100, HORIZONTAL); ++ } ++ ++ /** ++ * Creates a new JProgressBar object with a minimum of 0, ++ * a maximum of 100, and the given orientation. ++ * ++ * @param orientation The orientation of the JProgressBar. ++ */ ++ public JProgressBar(int orientation) ++ { ++ this(0, 100, orientation); ++ } ++ ++ /** ++ * Creates a new horizontally oriented JProgressBar object ++ * with the given minimum and maximum. ++ * ++ * @param minimum The minimum of the JProgressBar. ++ * @param maximum The maximum of the JProgressBar. ++ */ ++ public JProgressBar(int minimum, int maximum) ++ { ++ this(minimum, maximum, HORIZONTAL); ++ } ++ ++ /** ++ * Creates a new JProgressBar object with the given minimum, ++ * maximum, and orientation. ++ * ++ * @param minimum The minimum of the JProgressBar. ++ * @param maximum The maximum of the JProgressBar. ++ * @param orientation The orientation of the JProgressBar. ++ */ ++ public JProgressBar(int minimum, int maximum, int orientation) ++ { ++ model = new DefaultBoundedRangeModel(minimum, 0, minimum, maximum); ++ if (orientation != HORIZONTAL && orientation != VERTICAL) ++ throw new IllegalArgumentException(orientation + " is not a legal orientation"); ++ this.orientation = orientation; ++ changeListener = createChangeListener(); ++ model.addChangeListener(changeListener); ++ updateUI(); ++ } ++ ++ /** ++ * Creates a new horizontally oriented JProgressBar object ++ * with the given model. ++ * ++ * @param model The model to be used with the JProgressBar. ++ */ ++ public JProgressBar(BoundedRangeModel model) ++ { ++ this.model = model; ++ changeListener = createChangeListener(); ++ model.addChangeListener(changeListener); ++ updateUI(); ++ } ++ ++ /** ++ * This method returns the current value of the JProgressBar. ++ * ++ * @return The current value of the JProgressBar. ++ */ ++ public int getValue() ++ { ++ return model.getValue(); ++ } ++ ++ /** ++ * This method sets the value of the JProgressBar. ++ * ++ * @param value The value of the JProgressBar. ++ */ ++ public void setValue(int value) ++ { ++ model.setValue(value); ++ } ++ ++ /** ++ * This method paints the border of the JProgressBar ++ * ++ * @param graphics The graphics object to paint with. ++ */ ++ protected void paintBorder(Graphics graphics) ++ { ++ getBorder().paintBorder(this, graphics, 0, 0, ++ getWidth(), ++ getHeight()); ++ } ++ ++ /** ++ * This method returns the orientation of the JProgressBar. ++ * ++ * @return The orientation of the JProgressBar. ++ */ ++ public int getOrientation() ++ { ++ return orientation; ++ } ++ ++ /** ++ * This method changes the orientation property. The orientation of the ++ * JProgressBar can be either horizontal or vertical. ++ * ++ * @param orientation The orientation of the JProgressBar. ++ */ ++ public void setOrientation(int orientation) ++ { ++ if (orientation != VERTICAL && orientation != HORIZONTAL) ++ throw new IllegalArgumentException("orientation must be one of VERTICAL or HORIZONTAL"); ++ if (this.orientation != orientation) ++ { ++ int oldOrientation = this.orientation; ++ this.orientation = orientation; ++ firePropertyChange(ORIENTATION_CHANGED_PROPERTY, oldOrientation, ++ this.orientation); ++ } ++ } ++ ++ /** ++ * This method returns whether the progressString will be painted. ++ * ++ * @return Whether the string is painted. ++ */ ++ public boolean isStringPainted() ++ { ++ return paintString; ++ } ++ ++ /** ++ * This method changes the stringPainted property. ++ * ++ * @param painted Whether the string is painted. ++ */ ++ public void setStringPainted(boolean painted) ++ { ++ if (paintString != painted) ++ { ++ boolean oldPainted = paintString; ++ paintString = painted; ++ firePropertyChange(STRING_PAINTED_CHANGED_PROPERTY, oldPainted, ++ paintString); ++ } ++ } ++ ++ /** ++ * This method returns the string that is painted if the ++ * stringPainted property is set to true. If there is no ++ * string set, it will return a string containing the ++ * JProgressBar's value as a percent. ++ * ++ * @return The string that is painted. ++ */ ++ public String getString() ++ { ++ if (progressString != null) ++ return progressString; ++ else ++ return (int) (getPercentComplete() * 100) + "%"; ++ } ++ ++ /** ++ * This method changes the string property. The string ++ * given will be the one painted. If you want to ++ * revert to the default string given, set the ++ * string to null. ++ * ++ * @param string The string to be painted. ++ */ ++ public void setString(String string) ++ { ++ if (((string == null || progressString == null) && ++ string != progressString) || (string != null && ++ ! string.equals(progressString))) ++ { ++ String oldString = progressString; ++ progressString = string; ++ firePropertyChange(STRING_CHANGED_PROPERTY, oldString, progressString); ++ } ++ } ++ ++ /** ++ * This method returns the percent of the bar ++ * that is "complete". (This is the amount value / (max - min)). ++ * ++ * @return DOCUMENT ME! ++ */ ++ public double getPercentComplete() ++ { ++ if (getMaximum() == getMinimum()) ++ return 1.0; ++ else ++ return (double) (model.getValue() - model.getMinimum()) / (model ++ .getMaximum() ++ - model.getMinimum()); ++ } ++ ++ /** ++ * This method returns whether the border is painted. ++ * ++ * @return Whether the border is painted. ++ */ ++ public boolean isBorderPainted() ++ { ++ return paintBorder; ++ } ++ ++ /** ++ * This method changes the borderPainted property. ++ * ++ * @param painted Whether the border is painted. ++ */ ++ public void setBorderPainted(boolean painted) ++ { ++ if (painted != paintBorder) ++ { ++ boolean oldPainted = paintBorder; ++ paintBorder = painted; ++ firePropertyChange(BORDER_PAINTED_CHANGED_PROPERTY, oldPainted, ++ paintBorder); ++ } ++ } ++ ++ /** ++ * This method returns the JProgressBar's UI delegate. ++ * ++ * @return This JProgressBar's UI delegate. ++ */ ++ public ProgressBarUI getUI() ++ { ++ return (ProgressBarUI) ui; ++ } ++ ++ /** ++ * This method changes the UI property for this JProgressBar. ++ * ++ * @param ui The new UI delegate. ++ */ ++ public void setUI(ProgressBarUI ui) ++ { ++ super.setUI(ui); ++ } ++ ++ /** ++ * This method reverts the UI delegate for this JProgressBar ++ * to the default for this Look and Feel. ++ */ ++ public void updateUI() ++ { ++ setUI((ProgressBarUI) UIManager.getUI(this)); ++ invalidate(); ++ } ++ ++ /** ++ * This method returns the identifier to allow the UIManager ++ * to pick the correct class to act as the UI for ++ * this JProgressBar. ++ * ++ * @return The UIClassID: "ProgressBarUI". ++ */ ++ public String getUIClassID() ++ { ++ return "ProgressBarUI"; ++ } ++ ++ /** ++ * This method returns a ChangeListener that gets registered ++ * model. By default, the ChangeListener, propagates the ++ * ChangeEvents to the ChangeListeners of the JProgressBar. ++ * ++ * @return A new ChangeListener. ++ */ ++ protected ChangeListener createChangeListener() ++ { ++ return new ChangeListener() ++ { ++ public void stateChanged(ChangeEvent ce) ++ { ++ fireStateChanged(); ++ } ++ }; ++ } ++ ++ /** ++ * This method adds a ChangeListener to this JProgressBar. ++ * ++ * @param listener The ChangeListener to add to this JProgressBar. ++ */ ++ public void addChangeListener(ChangeListener listener) ++ { ++ listenerList.add(ChangeListener.class, listener); ++ } ++ ++ /** ++ * This method removes a ChangeListener from this JProgressBar. ++ * ++ * @param listener The ChangeListener to remove from this JProgressBar. ++ */ ++ public void removeChangeListener(ChangeListener listener) ++ { ++ listenerList.remove(ChangeListener.class, listener); ++ } ++ ++ /** ++ * This method returns an array of all ChangeListeners listening to this ++ * progress bar. ++ * ++ * @return An array of ChangeListeners listening to this progress bar. ++ */ ++ public ChangeListener[] getChangeListeners() ++ { ++ return (ChangeListener[]) listenerList.getListeners(ChangeListener.class); ++ } ++ ++ /** ++ * This method is called when the JProgressBar receives a ChangeEvent ++ * from its model. This simply propagates the event (changing the source ++ * to the JProgressBar) to the JProgressBar's listeners. ++ */ ++ protected void fireStateChanged() ++ { ++ Object[] changeListeners = listenerList.getListenerList(); ++ if (changeEvent == null) ++ changeEvent = new ChangeEvent(this); ++ for (int i = changeListeners.length - 2; i >= 0; i -= 2) ++ { ++ if (changeListeners[i] == ChangeListener.class) ++ ((ChangeListener) changeListeners[i + 1]).stateChanged(changeEvent); ++ } ++ } ++ ++ /** ++ * This method returns the model used with this JProgressBar. ++ * ++ * @return The model used with this JProgressBar. ++ */ ++ public BoundedRangeModel getModel() ++ { ++ return model; ++ } ++ ++ /** ++ * This method changes the model property for this JProgressBar. ++ * ++ * @param model The model to use with this JProgressBar. ++ */ ++ public void setModel(BoundedRangeModel model) ++ { ++ if (model != this.model) ++ { ++ this.model.removeChangeListener(changeListener); ++ this.model = model; ++ this.model.addChangeListener(changeListener); ++ fireStateChanged(); ++ } ++ } ++ ++ /** ++ * This method returns the minimum value of this JProgressBar. ++ * ++ * @return The minimum value of this JProgressBar. ++ */ ++ public int getMinimum() ++ { ++ return model.getMinimum(); ++ } ++ ++ /** ++ * This method sets the minimum value of this JProgressBar. ++ * ++ * @param minimum The minimum value of this JProgressBar. ++ */ ++ public void setMinimum(int minimum) ++ { ++ model.setMinimum(minimum); ++ } ++ ++ /** ++ * This method returns the maximum value of this JProgressBar. ++ * ++ * @return The maximum value of this JProgressBar. ++ */ ++ public int getMaximum() ++ { ++ return model.getMaximum(); ++ } ++ ++ /** ++ * This method sets the maximum value of this JProgressBar. ++ * ++ * @param maximum The maximum value of this JProgressBar. ++ */ ++ public void setMaximum(int maximum) ++ { ++ model.setMaximum(maximum); ++ } ++ ++ /** ++ * This method returns a string that can be used to ++ * describe this JProgressBar. This method is usually ++ * only used for debugging purposes. ++ * ++ * @return A string that describes this JProgressBar. ++ */ ++ protected String paramString() ++ { ++ return "JProgressBar"; ++ } ++ ++ /** ++ * This method changes the indeterminate property. If the ++ * JProgressBar is determinate, it paints a percentage ++ * of the bar described by its value. If it is indeterminate, ++ * it simply bounces a box between the ends of the bar; the ++ * value of the JProgressBar is ignored. ++ * ++ * @param newValue Whether the JProgressBar is indeterminate. ++ */ ++ public void setIndeterminate(boolean newValue) ++ { ++ if (indeterminate != newValue) ++ { ++ boolean olddeter = indeterminate; ++ indeterminate = newValue; ++ firePropertyChange(INDETERMINATE_CHANGED_PROPERTY, olddeter, ++ indeterminate); ++ } ++ } ++ ++ /** ++ * This method returns whether the JProgressBar is indeterminate. ++ * ++ * @return Whether this JProgressBar is indeterminate. ++ */ ++ public boolean isIndeterminate() ++ { ++ return indeterminate; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public AccessibleContext getAccessibleContext() ++ { ++ if (accessibleContext == null) ++ accessibleContext = new AccessibleJProgressBar(); ++ ++ return accessibleContext; ++ } ++} +Index: javax/swing/JRadioButton.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JRadioButton.java,v +retrieving revision 1.2 +diff -u -r1.2 JRadioButton.java +--- javax/swing/JRadioButton.java 11 Jun 2003 13:20:39 -0000 1.2 ++++ javax/swing/JRadioButton.java 6 Sep 2004 16:35:58 -0000 +@@ -1,5 +1,5 @@ + /* JRadioButton.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -42,31 +42,49 @@ + + public class JRadioButton extends JToggleButton + { +- public JRadioButton() +- { +- this(null, null); +- } +- public JRadioButton(Action a) +- { +- this(); +- setAction(a); +- } ++ private static final long serialVersionUID = 7751949583255506856L; + +- public JRadioButton(Icon icon) +- { +- this(null, icon); +- } ++ public JRadioButton() ++ { ++ this(null, null); ++ } ++ ++ public JRadioButton(Action a) ++ { ++ this(); ++ setAction(a); ++ } ++ ++ public JRadioButton(Icon icon) ++ { ++ this(null, icon); ++ } + +- public JRadioButton(String text) +- { +- this(text, null); +- } ++ public JRadioButton(Icon icon, boolean selected) ++ { ++ this(null, icon, selected); ++ } ++ ++ public JRadioButton(String text) ++ { ++ this(text, null); ++ } ++ ++ public JRadioButton(String text, boolean selected) ++ { ++ this(text, null, selected); ++ } + +- public JRadioButton(String text, Icon icon) +- { +- super(text, icon); +- } +- ++ public JRadioButton(String text, Icon icon) ++ { ++ super(text, icon); ++ borderPainted = false; ++ contentAreaFilled = false; ++ } ++ ++ public JRadioButton(String text, Icon icon, boolean selected) ++ { ++ } + + public AccessibleContext getAccessibleContext() + { +@@ -76,8 +94,9 @@ + + public String getUIClassID() + { +- //Returns a string that specifies the name of the L&F class that renders this component. +- return "JRadioButton"; ++ //Returns a string that specifies the name of the Look and Feel ++ //class that renders this component. ++ return "RadioButtonUI"; + } + + protected String paramString() +Index: javax/swing/JRadioButtonMenuItem.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JRadioButtonMenuItem.java,v +retrieving revision 1.3 +diff -u -r1.3 JRadioButtonMenuItem.java +--- javax/swing/JRadioButtonMenuItem.java 10 Jan 2004 21:07:43 -0000 1.3 ++++ javax/swing/JRadioButtonMenuItem.java 6 Sep 2004 16:35:58 -0000 +@@ -42,183 +42,172 @@ + import javax.accessibility.Accessible; + import javax.accessibility.AccessibleContext; + import javax.accessibility.AccessibleRole; ++import javax.swing.event.ChangeEvent; ++import javax.swing.event.ChangeListener; ++ + + /** +- * JRadioButtonMenuItem +- * @author Andrew Selkirk +- * @version 1.0 ++ * This class represents JRadioButtonMenuItem. Its behaviour is very similar ++ * to JRadioButton. Just like JRadioButton, user can check and uncheck this ++ * menu item by clicking on it. JRadioButtonMenuItem uses ToggleButtonModel ++ * to keep track of its selection. If the JRadioButtonMenuItem is included in ++ * the button group, then only one JRadioButtonMenuItem can be selected at ++ * one time. + */ + public class JRadioButtonMenuItem extends JMenuItem implements Accessible + { ++ private static final long serialVersionUID = 8482658191548521743L; + +- //------------------------------------------------------------- +- // Classes ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * AccessibleJRadioButtonMenuItem +- */ +- protected class AccessibleJRadioButtonMenuItem extends AccessibleJMenuItem { +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor AccessibleJRadioButtonMenuItem +- * @param component TODO +- */ +- protected AccessibleJRadioButtonMenuItem(JRadioButtonMenuItem component) { +- super(component); +- // TODO +- } // AccessibleJRadioButtonMenuItem() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * getAccessibleRole +- * @returns AccessibleRole +- */ +- public AccessibleRole getAccessibleRole() { +- return AccessibleRole.RADIO_BUTTON; +- } // getAccessibleRole() +- +- +- } // AccessibleJRadioButtonMenuItem +- +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * uiClassID +- */ +- private static final String uiClassID = "RadioButtonMenuItemUI"; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor JRadioButtonMenuItem +- */ +- public JRadioButtonMenuItem() { +- // TODO +- } // JRadioButtonMenuItem() +- +- /** +- * Constructor JRadioButtonMenuItem +- * @param icon TODO +- */ +- public JRadioButtonMenuItem(Icon icon) { +- // TODO +- } // JRadioButtonMenuItem() +- +- /** +- * Constructor JRadioButtonMenuItem +- * @param text TODO +- */ +- public JRadioButtonMenuItem(String text) { +- // TODO +- } // JRadioButtonMenuItem() +- +- /** +- * Constructor JRadioButtonMenuItem +- * @param action TODO +- */ +- public JRadioButtonMenuItem(Action action) { +- // TODO +- } // JRadioButtonMenuItem() +- +- /** +- * Constructor JRadioButtonMenuItem +- * @param text TODO +- * @param icon TODO +- */ +- public JRadioButtonMenuItem(String text, Icon icon) { +- // TODO +- } // JRadioButtonMenuItem() +- +- /** +- * Constructor JRadioButtonMenuItem +- * @param text TODO +- * @param selected TODO +- */ +- public JRadioButtonMenuItem(String text, boolean selected) { +- // TODO +- } // JRadioButtonMenuItem() +- +- /** +- * Constructor JRadioButtonMenuItem +- * @param icon TODO +- * @param selected TODO +- */ +- public JRadioButtonMenuItem(Icon icon, boolean selected) { +- // TODO +- } // JRadioButtonMenuItem() +- +- /** +- * Constructor JRadioButtonMenuItem +- * @param text TODO +- * @param icon TODO +- * @param selected TODO +- */ +- public JRadioButtonMenuItem(String text, Icon icon, boolean selected) { +- // TODO +- } // JRadioButtonMenuItem() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * writeObject +- * @param stream TODO +- * @exception IOException TODO +- */ +- private void writeObject(ObjectOutputStream stream) throws IOException { +- // TODO +- } // writeObject() +- +- /** +- * getUIClassID +- * @returns String +- */ +- public String getUIClassID() { +- return uiClassID; +- } // getUIClassID() +- +- /** +- * requestFocus +- */ +- public void requestFocus() { +- // TODO +- } // requestFocus() +- +- /** +- * paramString +- * @returns String +- */ +- protected String paramString() { +- return null; // TODO +- } // paramString() +- +- /** +- * getAccessibleContext +- * @returns AccessibleContext +- */ +- public AccessibleContext getAccessibleContext() { +- if (accessibleContext == null) { +- accessibleContext = new AccessibleJRadioButtonMenuItem(this); +- } // if +- return accessibleContext; +- } // getAccessibleContext() +- ++ /** name for the UI delegate for this radio button menu item. */ ++ private static final String uiClassID = "RadioButtonMenuItemUI"; + +-} // JRadioButtonMenuItem ++ /** ++ * Creates a new JRadioButtonMenuItem object. ++ */ ++ public JRadioButtonMenuItem() ++ { ++ this(null, null); ++ } ++ ++ /** ++ * Creates a new JRadioButtonMenuItem with specified icon ++ * ++ * @param icon Icon to be used for this menu item ++ */ ++ public JRadioButtonMenuItem(Icon icon) ++ { ++ this(null, icon); ++ } ++ ++ /** ++ * Creates a new JRadioButtonMenuItem with specified label ++ * ++ * @param text Label for this menu item ++ */ ++ public JRadioButtonMenuItem(String text) ++ { ++ this(text, null); ++ } ++ ++ /** ++ * Creates a new JRadioButtonMenuItem using specified action ++ * ++ * @param action Action for this menu item ++ */ ++ public JRadioButtonMenuItem(Action action) ++ { ++ this(); ++ setAction(action); ++ } ++ ++ /** ++ * Creates a new JRadioButtonMenuItem with specified label and icon ++ * ++ * @param text Label for this menu item ++ * @param icon Icon for this menu item ++ */ ++ public JRadioButtonMenuItem(String text, Icon icon) ++ { ++ this(text, icon, false); ++ } ++ ++ /** ++ * Creates a new JRadioButtonMenuItem with specified label ++ * and marked selected if 'selected' is true. ++ * ++ * @param text Text for this menu item ++ * @param selected Selected state of this menu item ++ */ ++ public JRadioButtonMenuItem(String text, boolean selected) ++ { ++ this(text, null, selected); ++ } ++ ++ /** ++ * Creates a new JRadioButtonMenuItem with specified icon ++ * and given selected state ++ * ++ * @param icon Icon for this menu item ++ * @param selected Selected state for this menu item ++ */ ++ public JRadioButtonMenuItem(Icon icon, boolean selected) ++ { ++ this(null, icon, selected); ++ } ++ ++ /** ++ * Creates a new JRadioButtonMenuItem with specified label, ++ * icon and selected state. ++ * ++ * @param text Label for this menu item ++ * @param icon Icon to be use for this menu item ++ * @param selected selected state of this menu item ++ */ ++ public JRadioButtonMenuItem(String text, Icon icon, boolean selected) ++ { ++ super(text, icon); ++ setModel(new JToggleButton.ToggleButtonModel()); ++ model.setSelected(selected); ++ } ++ ++ private void writeObject(ObjectOutputStream stream) throws IOException ++ { ++ } ++ ++ /** ++ * This method returns a name to identify which look and feel class will be ++ * the UI delegate for the menuItem. ++ * ++ * @return The Look and Feel classID. "JRadioButtonMenuItemUI" ++ */ ++ public String getUIClassID() ++ { ++ return uiClassID; ++ } ++ ++ /** ++ * This method overrides JComponent.requestFocus with an empty ++ * implementation, since JRadioButtonMenuItems should not ++ * receve focus in general. ++ */ ++ public void requestFocus() ++ { ++ // Should do nothing here ++ } ++ ++ /** ++ * A string that describes this JRadioButtonMenuItem. Normally only used ++ * for debugging. ++ * ++ * @return A string describing this JRadioButtonMenuItem ++ */ ++ protected String paramString() ++ { ++ return "JRadioButtonMenuItem"; ++ } ++ ++ public AccessibleContext getAccessibleContext() ++ { ++ if (accessibleContext == null) ++ accessibleContext = new AccessibleJRadioButtonMenuItem(); ++ ++ return accessibleContext; ++ } ++ ++ protected class AccessibleJRadioButtonMenuItem extends AccessibleJMenuItem ++ { ++ private static final long serialVersionUID = 4381471510145292179L; ++ ++ /** ++ * Creates a new AccessibleJRadioButtonMenuItem object. ++ */ ++ protected AccessibleJRadioButtonMenuItem() ++ { ++ } ++ ++ public AccessibleRole getAccessibleRole() ++ { ++ return AccessibleRole.RADIO_BUTTON; ++ } ++ } ++} +Index: javax/swing/JRootPane.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JRootPane.java,v +retrieving revision 1.3 +diff -u -r1.3 JRootPane.java +--- javax/swing/JRootPane.java 22 Nov 2003 00:03:35 -0000 1.3 ++++ javax/swing/JRootPane.java 6 Sep 2004 16:35:58 -0000 +@@ -1,5 +1,5 @@ + /* JRootPane.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,7 +35,6 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing; + + import java.awt.BorderLayout; +@@ -45,168 +44,498 @@ + import java.awt.LayoutManager; + import java.awt.LayoutManager2; + import java.io.Serializable; +-import javax.accessibility.Accessible; +-import javax.accessibility.AccessibleComponent; ++import javax.accessibility.AccessibleRole; ++import javax.swing.plaf.RootPaneUI; + + /** +- * This class is where JComponents are added to. +- * Unlike awt where you could just say frame.add(), +- * with swing you need to say frame.getRootPane() +- * (which delivers an instance of this class) +- * and add your components to that. +- * +- * It is implemented by several 'layers' (pane() should be read as plane()) +- * each on top of the others +- * where you can add components to. ++ * This class is where JComponents are added to. Unlike awt where you could ++ * just say frame.add(), with swing you need to say frame.getRootPane() ++ * (which delivers an instance of this class) and add your components to ++ * that. It is implemented by several 'layers' (pane() should be read as ++ * plane()) each on top of the others where you can add components to. + * (getContentPane(), getGlassPane(), getLayeredPane()) + * + * @author Ronald Veldema (rveldema@cs.vu.nl) + */ + public class JRootPane extends JComponent + { +- // The class used to obtain the accessible role for this object. +- static protected class AccessibleJRootPane ++ // The class used to obtain the accessible role for this object. ++ protected static class AccessibleJRootPane ++ { ++ /** DOCUMENT ME! */ ++ private static final long serialVersionUID = 1082432482784468088L; ++ ++ /** ++ * Creates a new AccessibleJRootPane object. ++ */ ++ protected AccessibleJRootPane() + { + } +- +- //A custom layout manager +- static protected class RootLayout extends BorderLayout +- { +- public Dimension preferredLayoutSize ( Container c ) +- { +- Dimension p = super.preferredLayoutSize(c); +- System.out.println(" PREF-SIZE from RootLayout = " + p); +- return p; +- } +- } +- +- /***********************************************************/ +- +- +- //The glass pane that overlays the menu bar and content pane, so it can intercept mouse movements and such. +- protected Component glassPane; +- +- //The layered pane that manages the menu bar and content pane. +- protected JLayeredPane layeredPane; +- +- // The menu bar. +- protected JMenuBar menuBar; +- +- protected Container contentPane; +- +- /********************************************************/ +- +- public String getUIClassID() +- { return "JPanel"; } +- +- +- void setJMenuBar(JMenuBar m) +- { menuBar = m; } +- +- JMenuBar getJMenuBar() +- { return menuBar; } +- +- +- public Container getContentPane() +- { +- if (contentPane == null) +- { +- setContentPane(createContentPane()); +- } +- return contentPane; +- } +- +- public void setContentPane(Container p) +- { +- contentPane = p; +- getLayeredPane().add(contentPane, JLayeredPane.FRAME_CONTENT_LAYER); +- } +- +- protected void addImpl(Component comp, +- Object constraints, +- int index) +- { +- super.addImpl(comp, constraints, index); +- //System.out.println("don't do that !"); +- } +- +- public Component getGlassPane() +- { +- if (glassPane == null) +- setGlassPane(createGlassPane()); +- return glassPane; +- } +- +- public void setGlassPane(Component f) +- { +- if (glassPane != null) +- remove(glassPane); +- +- glassPane = f; +- +- glassPane.setVisible(false); +- add(glassPane, 0); +- } + +- public JLayeredPane getLayeredPane() +- { +- if (layeredPane == null) +- setLayeredPane(createLayeredPane()); +- return layeredPane; +- } +- public void setLayeredPane(JLayeredPane f) ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public AccessibleRole getAccessibleRole() ++ { ++ return AccessibleRole.ROOT_PANE; ++ } ++ } ++ ++ // Custom Layout Manager for JRootPane. It positions contentPane and ++ // menuBar withing its layeredPane. ++ protected class RootLayout implements LayoutManager2, Serializable ++ { ++ /** DOCUMENT ME! */ ++ private static final long serialVersionUID = -4100116998559815027L; ++ ++ /** ++ * Creates a new RootLayout object. ++ */ ++ protected RootLayout() + { +- if (layeredPane != null) +- remove(layeredPane); +- +- layeredPane = f; +- add(f, -1); + } + ++ /** ++ * DOCUMENT ME! ++ * ++ * @param comp DOCUMENT ME! ++ * @param constraints DOCUMENT ME! ++ */ ++ public void addLayoutComponent(Component comp, Object constraints) ++ { ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param name DOCUMENT ME! ++ * @param comp DOCUMENT ME! ++ */ ++ public void addLayoutComponent(String name, Component comp) ++ { ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param target DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public float getLayoutAlignmentX(Container target) ++ { ++ return target.getAlignmentX(); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param target DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public float getLayoutAlignmentY(Container target) ++ { ++ return target.getAlignmentY(); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param target DOCUMENT ME! ++ */ ++ public void invalidateLayout(Container target) ++ { ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param c DOCUMENT ME! ++ */ ++ public void layoutContainer(Container c) ++ { ++ Dimension menuBarSize; ++ Dimension containerSize = c.getSize(null); ++ Dimension contentPaneSize = contentPane.getPreferredSize(); ++ ++ /* ++ if size of top-level window wasn't set then just set ++ contentPane and menuBar to its preferred sizes. ++ Otherwise, if the size of top-level window was specified then ++ set menuBar to its preferred size and make content pane ++ to fit into the remaining space ++ ++ ++ +-------------------------------+ ++ | JLayeredPane | ++ | +--------------------------+ | ++ | | menuBar | | ++ | +--------------------------+ | ++ | +--------------------------+ | ++ | |contentPane | | ++ | | | | ++ | | | | ++ | | | | ++ | +--------------------------+ | ++ +-------------------------------+ ++ ++ */ ++ if (containerSize.width == 0 && containerSize.height == 0) ++ { ++ if (menuBar != null) ++ { ++ int maxWidth; ++ menuBarSize = menuBar.getPreferredSize(); ++ maxWidth = Math.max(menuBarSize.width, contentPaneSize.width); ++ menuBar.setBounds(0, 0, maxWidth, menuBarSize.height); ++ glassPane.setBounds(0, menuBarSize.height, maxWidth, ++ contentPaneSize.height); ++ contentPane.setBounds(0, menuBarSize.height, maxWidth, ++ contentPaneSize.height); ++ layeredPane.setSize(maxWidth, ++ menuBarSize.height + contentPaneSize.height); ++ } ++ else ++ { ++ glassPane.setBounds(0, 0, contentPaneSize.width, ++ contentPaneSize.height); ++ contentPane.setBounds(0, 0, contentPaneSize.width, ++ contentPaneSize.height); ++ layeredPane.setSize(contentPaneSize.width, contentPaneSize.height); ++ } ++ } ++ else ++ { ++ if (menuBar != null) ++ { ++ menuBarSize = menuBar.getPreferredSize(); ++ if (menuBarSize.height > containerSize.height) ++ menuBarSize.height = containerSize.height; ++ menuBar.setBounds(0, 0, containerSize.width, menuBarSize.height); ++ int remainingHeight = containerSize.height - menuBarSize.height; ++ glassPane.setBounds(0, menuBarSize.height, containerSize.width, ++ containerSize.height - menuBarSize.height); ++ contentPane.setBounds(0, menuBarSize.height, ++ containerSize.width, ++ (containerSize.height - menuBarSize.height)); ++ } ++ else ++ { ++ glassPane.setBounds(0, 0, containerSize.width, ++ containerSize.height); ++ contentPane.setBounds(0, 0, containerSize.width, ++ containerSize.height); ++ } + +- /********************************************************/ +- +- JRootPane() +- { +- setLayout(createRootLayout()); +- +- getGlassPane(); +- getLayeredPane(); +- getContentPane(); +- +- setDoubleBuffered(true); +- updateUI(); +- } +- +- protected LayoutManager createRootLayout() { +- return new RootLayout(); +- } +- +- JComponent createContentPane() +- { +- JPanel p = new JPanel(); +- p.setName(this.getName()+".contentPane"); +- p.setLayout(new BorderLayout()); +- // p.setVisible(true); +- +- System.out.println("Created ContentPane: " + p); +- return p; +- } +- +- Component createGlassPane() +- { +- JPanel p = new JPanel(); +- p.setName(this.getName()+".glassPane"); +- p.setLayout(new BorderLayout()); +- p.setVisible(false); +- +- System.out.println("created the glasspane: "+p); +- return p; ++ layeredPane.setSize(containerSize.width, containerSize.height); ++ } + } + +- JLayeredPane createLayeredPane() +- { +- JLayeredPane l = new JLayeredPane(); +- return l; +- } ++ /** ++ * DOCUMENT ME! ++ * ++ * @param target DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public Dimension maximumLayoutSize(Container target) ++ { ++ return preferredLayoutSize(target); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param target DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public Dimension minimumLayoutSize(Container target) ++ { ++ return preferredLayoutSize(target); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param c DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public Dimension preferredLayoutSize(Container c) ++ { ++ Dimension menuBarSize; ++ Dimension prefSize; ++ ++ Dimension containerSize = c.getSize(); ++ Dimension contentPaneSize = contentPane.getPreferredSize(); ++ ++ if (containerSize.width == 0 && containerSize.height == 0) ++ { ++ if (menuBar != null) ++ { ++ int maxWidth; ++ menuBarSize = menuBar.getPreferredSize(); ++ maxWidth = Math.max(menuBarSize.width, contentPaneSize.width); ++ prefSize = new Dimension(maxWidth, ++ contentPaneSize.height ++ + menuBarSize.height); ++ } ++ else ++ prefSize = contentPaneSize; ++ } ++ else ++ prefSize = c.getSize(); ++ ++ return prefSize; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param comp DOCUMENT ME! ++ */ ++ public void removeLayoutComponent(Component comp) ++ { ++ } ++ } ++ ++ /** DOCUMENT ME! */ ++ private static final long serialVersionUID = 8690748000348575668L; ++ ++ /** DOCUMENT ME! */ ++ protected Component glassPane; ++ ++ /** DOCUMENT ME! */ ++ protected JLayeredPane layeredPane; ++ ++ /** DOCUMENT ME! */ ++ protected JMenuBar menuBar; ++ ++ /** DOCUMENT ME! */ ++ protected Container contentPane; ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param m DOCUMENT ME! ++ */ ++ public void setJMenuBar(JMenuBar m) ++ { ++ menuBar = m; ++ getLayeredPane().add(menuBar, JLayeredPane.FRAME_CONTENT_LAYER); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public JMenuBar getJMenuBar() ++ { ++ return menuBar; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public boolean isValidateRoot() ++ { ++ return true; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public Container getContentPane() ++ { ++ if (contentPane == null) ++ setContentPane(createContentPane()); ++ return contentPane; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param p DOCUMENT ME! ++ */ ++ public void setContentPane(Container p) ++ { ++ contentPane = p; ++ getLayeredPane().add(contentPane, JLayeredPane.FRAME_CONTENT_LAYER); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param comp DOCUMENT ME! ++ * @param constraints DOCUMENT ME! ++ * @param index DOCUMENT ME! ++ */ ++ protected void addImpl(Component comp, Object constraints, int index) ++ { ++ super.addImpl(comp, constraints, index); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public Component getGlassPane() ++ { ++ if (glassPane == null) ++ setGlassPane(createGlassPane()); ++ return glassPane; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param f DOCUMENT ME! ++ */ ++ public void setGlassPane(Component f) ++ { ++ if (glassPane != null) ++ remove(glassPane); ++ ++ glassPane = f; ++ ++ glassPane.setVisible(false); ++ add(glassPane, 0); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public JLayeredPane getLayeredPane() ++ { ++ if (layeredPane == null) ++ setLayeredPane(createLayeredPane()); ++ return layeredPane; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param f DOCUMENT ME! ++ */ ++ public void setLayeredPane(JLayeredPane f) ++ { ++ if (layeredPane != null) ++ remove(layeredPane); ++ ++ layeredPane = f; ++ add(f, -1); ++ } ++ ++ /** ++ * Creates a new JRootPane object. ++ */ ++ public JRootPane() ++ { ++ setLayout(createRootLayout()); ++ getGlassPane(); ++ getLayeredPane(); ++ getContentPane(); ++ setDoubleBuffered(true); ++ updateUI(); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ protected LayoutManager createRootLayout() ++ { ++ return new RootLayout(); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ protected JComponent createContentPane() ++ { ++ JPanel p = new JPanel(); ++ p.setName(this.getName() + ".contentPane"); ++ p.setLayout(new BorderLayout()); ++ return p; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ protected Component createGlassPane() ++ { ++ JPanel p = new JPanel(); ++ p.setName(this.getName() + ".glassPane"); ++ p.setLayout(new BorderLayout()); ++ p.setVisible(false); ++ p.setOpaque(false); ++ return p; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ protected JLayeredPane createLayeredPane() ++ { ++ JLayeredPane l = new JLayeredPane(); ++ l.setLayout(null); ++ return l; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public RootPaneUI getUI() ++ { ++ return (RootPaneUI) ui; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param ui DOCUMENT ME! ++ */ ++ public void setUI(RootPaneUI ui) ++ { ++ super.setUI(ui); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ */ ++ public void updateUI() ++ { ++ setUI((RootPaneUI) UIManager.getUI(this)); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public String getUIClassID() ++ { ++ return "RootPaneUI"; ++ } + } +Index: javax/swing/JScrollBar.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JScrollBar.java,v +retrieving revision 1.2 +diff -u -r1.2 JScrollBar.java +--- javax/swing/JScrollBar.java 11 Jun 2003 13:20:39 -0000 1.2 ++++ javax/swing/JScrollBar.java 6 Sep 2004 16:35:58 -0000 +@@ -1,5 +1,5 @@ +-/* JScrollBar.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++/* JScrollBar.java -- ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,13 +35,701 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing; + + import java.awt.Adjustable; ++import java.awt.Dimension; ++import java.awt.event.AdjustmentEvent; + import java.awt.event.AdjustmentListener; ++ + import javax.accessibility.Accessible; ++import javax.accessibility.AccessibleContext; ++import javax.accessibility.AccessibleRole; ++import javax.accessibility.AccessibleStateSet; ++import javax.accessibility.AccessibleValue; ++import javax.swing.event.ChangeEvent; ++import javax.swing.event.ChangeListener; ++import javax.swing.plaf.ScrollBarUI; + +-public class JScrollBar extends JComponent ++ ++/** ++ * The JScrollBar. Two buttons control how the values that the ++ * scroll bar can take. You can also drag the thumb or click the track ++ * to move the scroll bar. Typically, the JScrollBar is used with ++ * other components to translate the value of the bar to the viewable ++ * contents of the other components. ++ */ ++public class JScrollBar extends JComponent implements Adjustable, Accessible + { ++ /** ++ * DOCUMENT ME! ++ */ ++ protected class AccessibleJScrollBar extends JComponent.AccessibleJComponent ++ implements AccessibleValue ++ { ++ private static final long serialVersionUID = -7758162392045586663L; ++ ++ /** ++ * Creates a new AccessibleJSlider object. ++ * ++ * @param value0 DOCUMENT ME! ++ */ ++ protected AccessibleJScrollBar() ++ { ++ super(); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public AccessibleStateSet getAccessibleStateSet() ++ { ++ return null; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public AccessibleRole getAccessibleRole() ++ { ++ return null; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public AccessibleValue getAccessibleValue() ++ { ++ return null; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public Number getCurrentAccessibleValue() ++ { ++ return null; ++ } ++ ++ /** ++ * setCurrentAccessibleValue ++ * ++ * @param value0 TODO ++ * ++ * @return boolean ++ */ ++ public boolean setCurrentAccessibleValue(Number value0) ++ { ++ return false; ++ } ++ ++ /** ++ * getMinimumAccessibleValue ++ * ++ * @return Number ++ */ ++ public Number getMinimumAccessibleValue() ++ { ++ return null; ++ } ++ ++ /** ++ * getMaximumAccessibleValue ++ * ++ * @return Number ++ */ ++ public Number getMaximumAccessibleValue() ++ { ++ return null; ++ } ++ } ++ ++ private static final long serialVersionUID = -8195169869225066566L; ++ ++ /** Fired in a PropertyChangeEvent when the "blockIncrement" changes. */ ++ public static final String BLOCK_INCREMENT_CHANGED_PROPERTY = "blockIncrement"; ++ ++ /** Fired in a PropertyChangeEvent when the "model" changes. */ ++ public static final String MODEL_CHANGED_PROPERTY = "model"; ++ ++ /** Fired in a PropertyChangeEvent when the "orientation" changes. */ ++ public static final String ORIENTATION_CHANGED_PROPERTY = "orientation"; ++ ++ /** Fired in a PropertyChangeEvent when the "unitIncrement" changes. */ ++ public static final String UNIT_INCREMENT_CHANGED_PROPERTY = "unitIncrement"; ++ ++ /** How much the thumb moves when moving in a block. */ ++ protected int blockIncrement = 10; ++ ++ /** The model that holds the scroll bar's data. */ ++ protected BoundedRangeModel model; ++ ++ /** The orientation of the scroll bar. */ ++ protected int orientation = SwingConstants.VERTICAL; ++ ++ /** How much the thumb moves when moving in a unit. */ ++ protected int unitIncrement = 1; ++ ++ /** The ChangeListener that listens to the model. */ ++ private transient ChangeListener changeListener; ++ ++ /** The ChangeEvent that's fired. */ ++ private transient ChangeEvent changeEvent; ++ ++ /** ++ * Creates a new horizontal JScrollBar object with a minimum ++ * of 0, a maxmium of 100, a value of 0 and an extent of 10. ++ */ ++ public JScrollBar() ++ { ++ this(SwingConstants.VERTICAL, 0, 10, 0, 100); ++ } ++ ++ /** ++ * Creates a new JScrollBar object with a minimum of 0, a ++ * maximum of 100, a value of 0, an extent of 10 and the given ++ * orientation. ++ * ++ * @param orientation The orientation of the JScrollBar. ++ */ ++ public JScrollBar(int orientation) ++ { ++ this(orientation, 0, 10, 0, 100); ++ } ++ ++ /** ++ * Creates a new JScrollBar object with the given orientation, ++ * value, min, max, and extent. ++ * ++ * @param orientation The orientation to use. ++ * @param value The value to use. ++ * @param extent The extent to use. ++ * @param min The minimum value of the scrollbar. ++ * @param max The maximum value of the scrollbar. ++ */ ++ public JScrollBar(int orientation, int value, int extent, int min, int max) ++ { ++ model = new DefaultBoundedRangeModel(value, extent, min, max); ++ if (orientation != SwingConstants.HORIZONTAL ++ && orientation != SwingConstants.VERTICAL) ++ throw new IllegalArgumentException(orientation ++ + " is not a legal orientation"); ++ this.orientation = orientation; ++ changeListener = createChangeListener(); ++ model.addChangeListener(changeListener); ++ updateUI(); ++ } ++ ++ /** ++ * This method sets the UI of this scrollbar to ++ * the given UI. ++ * ++ * @param ui The UI to use with this scrollbar. ++ */ ++ public void setUI(ScrollBarUI ui) ++ { ++ super.setUI(ui); ++ } ++ ++ /** ++ * This method returns the UI that is being used ++ * with this scrollbar. ++ * ++ * @return The scrollbar's current UI. ++ */ ++ public ScrollBarUI getUI() ++ { ++ return (ScrollBarUI) ui; ++ } ++ ++ /** ++ * This method changes the UI to be the ++ * default for the current look and feel. ++ */ ++ public void updateUI() ++ { ++ setUI((ScrollBarUI) UIManager.getUI(this)); ++ invalidate(); ++ repaint(); ++ } ++ ++ /** ++ * This method returns an identifier to ++ * choose the correct UI delegate for the ++ * scrollbar. ++ * ++ * @return The identifer to choose the UI delegate; "ScrollBarUI" ++ */ ++ public String getUIClassID() ++ { ++ return "ScrollBarUI"; ++ } ++ ++ /** ++ * This method returns the orientation of the scrollbar. ++ * ++ * @return The orientation of the scrollbar. ++ */ ++ public int getOrientation() ++ { ++ return orientation; ++ } ++ ++ /** ++ * This method sets the orientation of the scrollbar. ++ * ++ * @param orientation The orientation of the scrollbar. ++ */ ++ public void setOrientation(int orientation) ++ { ++ if (orientation != SwingConstants.HORIZONTAL ++ && orientation != SwingConstants.VERTICAL) ++ throw new IllegalArgumentException("orientation must be one of HORIZONTAL or VERTICAL"); ++ if (orientation != this.orientation) ++ { ++ int oldOrientation = this.orientation; ++ this.orientation = orientation; ++ firePropertyChange(ORIENTATION_CHANGED_PROPERTY, oldOrientation, ++ this.orientation); ++ } ++ } ++ ++ /** ++ * This method returns the model being used with ++ * the scrollbar. ++ * ++ * @return The scrollbar's model. ++ */ ++ public BoundedRangeModel getModel() ++ { ++ return model; ++ } ++ ++ /** ++ * This method sets the model to use with ++ * the scrollbar. ++ * ++ * @param newModel The new model to use with the scrollbar. ++ */ ++ public void setModel(BoundedRangeModel newModel) ++ { ++ if (model != newModel) ++ { ++ BoundedRangeModel oldModel = model; ++ model = newModel; ++ oldModel.removeChangeListener(changeListener); ++ model.addChangeListener(changeListener); ++ firePropertyChange(MODEL_CHANGED_PROPERTY, oldModel, model); ++ } ++ } ++ ++ /** ++ * This method returns how much the scrollbar's value ++ * should change for a unit increment depending on the ++ * given direction. ++ * ++ * @param direction The direction to scroll in. ++ * ++ * @return The amount the scrollbar's value will change given the direction. ++ */ ++ public int getUnitIncrement(int direction) ++ { ++ return direction * unitIncrement; ++ } ++ ++ /** ++ * This method sets the unitIncrement property. ++ * ++ * @param unitIncrement The new unitIncrement. ++ */ ++ public void setUnitIncrement(int unitIncrement) ++ { ++ if (unitIncrement != this.unitIncrement) ++ { ++ int oldInc = this.unitIncrement; ++ this.unitIncrement = unitIncrement; ++ firePropertyChange(UNIT_INCREMENT_CHANGED_PROPERTY, oldInc, ++ this.unitIncrement); ++ } ++ } ++ ++ /** ++ * The method returns how much the scrollbar's value ++ * should change for a block increment depending on ++ * the given direction. ++ * ++ * @param direction The direction to scroll in. ++ * ++ * @return The amount the scrollbar's value will change given the direction. ++ */ ++ public int getBlockIncrement(int direction) ++ { ++ return direction * blockIncrement; ++ } ++ ++ /** ++ * This method sets the blockIncrement property. ++ * ++ * @param blockIncrement The new blockIncrement. ++ */ ++ public void setBlockIncrement(int blockIncrement) ++ { ++ if (blockIncrement != this.blockIncrement) ++ { ++ int oldInc = this.blockIncrement; ++ this.blockIncrement = blockIncrement; ++ firePropertyChange(BLOCK_INCREMENT_CHANGED_PROPERTY, oldInc, ++ this.blockIncrement); ++ } ++ } ++ ++ /** ++ * This method returns the unitIncrement. ++ * ++ * @return The unitIncrement. ++ */ ++ public int getUnitIncrement() ++ { ++ return unitIncrement; ++ } ++ ++ /** ++ * This method returns the blockIncrement. ++ * ++ * @return The blockIncrement. ++ */ ++ public int getBlockIncrement() ++ { ++ return blockIncrement; ++ } ++ ++ /** ++ * This method returns the value of the scrollbar. ++ * ++ * @return The value of the scrollbar. ++ */ ++ public int getValue() ++ { ++ return model.getValue(); ++ } ++ ++ /** ++ * This method changes the value of the scrollbar. ++ * ++ * @param value The new value of the scrollbar. ++ */ ++ public void setValue(int value) ++ { ++ if (isEnabled() && value != getValue()) ++ { ++ model.setValue(value); ++ fireAdjustmentValueChanged(AdjustmentEvent.ADJUSTMENT_VALUE_CHANGED, ++ AdjustmentEvent.TRACK, value); ++ } ++ } ++ ++ /** ++ * This method returns the visible amount (AKA extent). ++ * The visible amount can be used by UI delegates to ++ * determine the size of the thumb. ++ * ++ * @return The visible amount (AKA extent). ++ */ ++ public int getVisibleAmount() ++ { ++ return model.getExtent(); ++ } ++ ++ /** ++ * This method sets the visible amount (AKA extent). ++ * ++ * @param extent The visible amount (AKA extent). ++ */ ++ public void setVisibleAmount(int extent) ++ { ++ if (extent != getVisibleAmount()) ++ { ++ model.setExtent(extent); ++ fireAdjustmentValueChanged(AdjustmentEvent.ADJUSTMENT_VALUE_CHANGED, ++ AdjustmentEvent.TRACK, extent); ++ } ++ } ++ ++ /** ++ * This method returns the minimum value of the scrollbar. ++ * ++ * @return The minimum value of the scrollbar. ++ */ ++ public int getMinimum() ++ { ++ return model.getMinimum(); ++ } ++ ++ /** ++ * This method sets the minimum value of the scrollbar. ++ * ++ * @param minimum The minimum value of the scrollbar. ++ */ ++ public void setMinimum(int minimum) ++ { ++ if (minimum != getMinimum()) ++ { ++ model.setMinimum(minimum); ++ fireAdjustmentValueChanged(AdjustmentEvent.ADJUSTMENT_VALUE_CHANGED, ++ AdjustmentEvent.TRACK, minimum); ++ } ++ } ++ ++ /** ++ * This method returns the maximum value of the scrollbar. ++ * ++ * @return The maximum value of the scrollbar. ++ */ ++ public int getMaximum() ++ { ++ return model.getMaximum(); ++ } ++ ++ /** ++ * This method sets the maximum value of the scrollbar. ++ * ++ * @param maximum The maximum value of the scrollbar. ++ */ ++ public void setMaximum(int maximum) ++ { ++ if (maximum != getMaximum()) ++ { ++ model.setMaximum(maximum); ++ fireAdjustmentValueChanged(AdjustmentEvent.ADJUSTMENT_VALUE_CHANGED, ++ AdjustmentEvent.TRACK, maximum); ++ } ++ } ++ ++ /** ++ * This method returns the model's isAjusting value. ++ * ++ * @return The model's isAdjusting value. ++ */ ++ public boolean getValueIsAdjusting() ++ { ++ return model.getValueIsAdjusting(); ++ } ++ ++ /** ++ * This method sets the model's isAdjusting value. ++ * ++ * @param b The new isAdjusting value. ++ */ ++ public void setValueIsAdjusting(boolean b) ++ { ++ model.setValueIsAdjusting(b); ++ } ++ ++ /** ++ * This method sets the value, extent, minimum and ++ * maximum. ++ * ++ * @param newValue The new value. ++ * @param newExtent The new extent. ++ * @param newMin The new minimum. ++ * @param newMax The new maximum. ++ */ ++ public void setValue(int newValue, int newExtent, int newMin, int newMax) ++ { ++ if (!isEnabled()) ++ newValue = model.getValue(); ++ // It seems to be that on any change the value is fired. ++ if (newValue != getValue() || newExtent != getVisibleAmount() || ++ newMin != getMinimum() || newMax != getMaximum()) ++ { ++ model.setRangeProperties(newValue, newExtent, newMin, newMax, ++ model.getValueIsAdjusting()); ++ fireAdjustmentValueChanged(AdjustmentEvent.ADJUSTMENT_VALUE_CHANGED, ++ AdjustmentEvent.TRACK, newValue); ++ } ++ } ++ ++ /** ++ * This method creates a new ChangeListener. ++ * ++ * @return A new ChangeListener. ++ */ ++ private ChangeListener createChangeListener() ++ { ++ return new ChangeListener() ++ { ++ public void stateChanged(ChangeEvent e) ++ { ++ fireStateChanged(); ++ } ++ }; ++ } ++ ++ /** ++ * This method is called whenever the model fires a ChangeEvent. It should ++ * propagate the ChangeEvent to its listeners with a new ChangeEvent that ++ * identifies the scroll bar as the source. ++ */ ++ private void fireStateChanged() ++ { ++ Object[] changeListeners = listenerList.getListenerList(); ++ if (changeEvent == null) ++ changeEvent = new ChangeEvent(this); ++ for (int i = changeListeners.length - 2; i >= 0; i -= 2) ++ { ++ if (changeListeners[i] == ChangeListener.class) ++ ((ChangeListener) changeListeners[i + 1]).stateChanged(changeEvent); ++ } ++ } ++ ++ /** ++ * This method adds a ChangeListener to the scroll bar. ++ * ++ * @param listener The listener to add. ++ */ ++ public void addChangeListener(ChangeListener listener) ++ { ++ listenerList.add(ChangeListener.class, listener); ++ } ++ ++ /** ++ * This method removes a ChangeListener from the scroll bar. ++ * ++ * @param listener The listener to remove. ++ */ ++ public void removeChangeListener(ChangeListener listener) ++ { ++ listenerList.remove(ChangeListener.class, listener); ++ } ++ ++ /** ++ * This method returns an array of all ChangeListeners listening to this ++ * scroll bar. ++ * ++ * @return An array of ChangeListeners listening to this scroll bar. ++ */ ++ public ChangeListener[] getChangeListeners() ++ { ++ return (ChangeListener[]) listenerList.getListeners(ChangeListener.class); ++ } ++ ++ /** ++ * This method adds an AdjustmentListener to the scroll bar. ++ * ++ * @param listener The listener to add. ++ */ ++ public void addAdjustmentListener(AdjustmentListener listener) ++ { ++ listenerList.add(AdjustmentListener.class, listener); ++ } ++ ++ /** ++ * This method removes an AdjustmentListener from the scroll bar. ++ * ++ * @param listener The listener to remove. ++ */ ++ public void removeAdjustmentListener(AdjustmentListener listener) ++ { ++ listenerList.remove(AdjustmentListener.class, listener); ++ } ++ ++ /** ++ * This method returns an arry of all AdjustmentListeners listening to ++ * this scroll bar. ++ * ++ * @return An array of AdjustmentListeners listening to this scroll bar. ++ */ ++ public AdjustmentListener[] getAdjustmentListeners() ++ { ++ return (AdjustmentListener[]) listenerList.getListeners(AdjustmentListener.class); ++ } ++ ++ /** ++ * This method is called to fired AdjustmentEvents to the listeners ++ * of this scroll bar. All AdjustmentEvents that are fired ++ * will have an ID of ADJUSTMENT_VALUE_CHANGED and a type of ++ * TRACK. ++ * ++ * @param id The ID of the adjustment event. ++ * @param type The Type of change. ++ * @param value The new value for the property that was changed.. ++ */ ++ protected void fireAdjustmentValueChanged(int id, int type, int value) ++ { ++ Object[] adjustmentListeners = listenerList.getListenerList(); ++ AdjustmentEvent adjustmentEvent = new AdjustmentEvent(this, ++ AdjustmentEvent.ADJUSTMENT_VALUE_CHANGED, ++ AdjustmentEvent.TRACK, ++ value); ++ for (int i = adjustmentListeners.length - 2; i >= 0; i -= 2) ++ { ++ if (adjustmentListeners[i] == AdjustmentListener.class) ++ ((AdjustmentListener) adjustmentListeners[i + 1]).adjustmentValueChanged(adjustmentEvent); ++ } ++ } ++ ++ /** ++ * This method returns the minimum size for this scroll bar. ++ * ++ * @return The minimum size. ++ */ ++ public Dimension getMinimumSize() ++ { ++ return ui.getMinimumSize(this); ++ } ++ ++ /** ++ * This method returns the maximum size for this scroll bar. ++ * ++ * @return The maximum size. ++ */ ++ public Dimension getMaximumSize() ++ { ++ return ui.getMaximumSize(this); ++ } ++ ++ /** ++ * This method overrides the setEnabled in JComponent. ++ * When the scroll bar is disabled, the knob cannot ++ * be moved. ++ * ++ * @param x Whether the scrollbar is enabled. ++ */ ++ public void setEnabled(boolean x) ++ { ++ // nothing special needs to be done here since we ++ // just check the enabled setting before changing the value. ++ super.setEnabled(x); ++ } ++ ++ /** ++ * A string that describes this JScrollBar. Normally only used ++ * for debugging. ++ * ++ * @return A string describing this JScrollBar. ++ */ ++ protected String paramString() ++ { ++ return "JScrollBar"; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public AccessibleContext getAccessibleContext() ++ { ++ if (accessibleContext == null) ++ accessibleContext = new AccessibleJScrollBar(); ++ return accessibleContext; ++ } + } +Index: javax/swing/JScrollPane.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JScrollPane.java,v +retrieving revision 1.2 +diff -u -r1.2 JScrollPane.java +--- javax/swing/JScrollPane.java 11 Jun 2003 13:20:39 -0000 1.2 ++++ javax/swing/JScrollPane.java 6 Sep 2004 16:35:58 -0000 +@@ -1,5 +1,5 @@ + /* JScrollPane.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -39,96 +39,611 @@ + package javax.swing; + + import java.awt.Component; ++import java.awt.ComponentOrientation; ++import java.awt.Dimension; ++import java.awt.Insets; ++import java.awt.LayoutManager; ++import java.awt.Point; ++import java.awt.Rectangle; ++ + import javax.accessibility.Accessible; ++import javax.swing.border.Border; ++import javax.swing.event.ChangeEvent; ++import javax.swing.event.ChangeListener; + import javax.swing.plaf.ScrollPaneUI; ++import javax.swing.plaf.UIResource; + +-public class JScrollPane extends JComponent implements Accessible, ScrollPaneConstants ++/** ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ *
    Property Stored in Bound?
    columnHeader scrollPane yes
    columnHeaderView columnHeader no
    componentOrientation scrollPane yes
    horizontalScrollBar scrollPane yes
    horizontalScrollBarPolicy scrollPane yes
    layout scrollPane yes
    rowHeader scrollPane yes
    rowHeaderView rowHeader no
    validateRoot scrollPane no
    verticalScrollBar scrollPane yes
    verticalScrollBarPolicy scrollPane yes
    viewport scrollPane yes
    viewportBorder scrollPane yes
    viewportBorderBounds scrollPane no
    viewportView viewport no
    wheelScrollingEnabled scrollPane yes
    ++ */ ++public class JScrollPane ++ extends JComponent ++ implements Accessible, ScrollPaneConstants + { +- protected JViewport columnHeader; +- protected JViewport rowHeader; +- +- protected Component lowerLeft; +- protected Component lowerRight; +- protected Component upperLeft; +- protected Component upperRight; +- +- protected JScrollBar horizontalScrollBar; +- protected int horizontalScrollBarPolicy; +- protected JScrollBar verticalScrollBar; +- protected int verticalScrollBarPolicy; +- +- protected JViewport viewport; +- +- +- public JScrollPane() +- { +- this(null, 0, 0); +- } ++ private static final long serialVersionUID = 5203525440012340014L; ++ ++ protected JViewport columnHeader; ++ protected JViewport rowHeader; ++ ++ protected Component lowerLeft; ++ protected Component lowerRight; ++ protected Component upperLeft; ++ protected Component upperRight; ++ ++ protected JScrollBar horizontalScrollBar; ++ protected int horizontalScrollBarPolicy; ++ protected JScrollBar verticalScrollBar; ++ protected int verticalScrollBarPolicy; ++ ++ protected JViewport viewport; ++ ++ Border viewportBorder; ++ boolean wheelScrollingEnabled; ++ ChangeListener scrollListener; ++ ++ public static final String COLUMN_HEADER_CHANGED_PROPERTY = "columnHeader"; ++ public static final String COMPONENT_ORIENTATION_CHANGED_PROPERTY = "componentOrientation"; ++ public static final String HORIZONTAL_SCROLLBAR_CHANGED_PROPERTY = "horizontalScrollBar"; ++ public static final String HORIZONTAL_SCROLLBAR_POLICY_CHANGED_PROPERTY = "horizontalScrollBarPolicy"; ++ public static final String LAYOUT_CHANGED_PROPERTY = "layout"; ++ public static final String ROW_HEADER_CHANGED_PROPERTY = "rowHeader"; ++ public static final String VERTICAL_SCROLLBAR_CHANGED_PROPERTY = "verticalScrollBar"; ++ public static final String VERTICAL_SCROLLBAR_POLICY_CHANGED_PROPERTY = "verticalScrollBarPolicy"; ++ public static final String VIEWPORT_CHANGED_PROPERTY = "viewport"; ++ public static final String VIEWPORT_BORDER_CHANGED_PROPERTY = "viewportBorder"; ++ public static final String WHEEL_SCROLLING_ENABLED_CHANGED_PROPERTY = "wheelScrollingEnabled"; ++ ++ public JViewport getColumnHeader() ++ { ++ return columnHeader; ++ } ++ ++ public Component getCorner(String key) { ++ if (getComponentOrientation() ++ == ComponentOrientation.LEFT_TO_RIGHT) ++ { ++ if (key == LOWER_LEADING_CORNER) ++ key = LOWER_LEFT_CORNER; ++ else if (key == LOWER_TRAILING_CORNER) ++ key = LOWER_RIGHT_CORNER; ++ else if (key == UPPER_LEADING_CORNER) ++ key = UPPER_LEFT_CORNER; ++ else if (key == UPPER_TRAILING_CORNER) ++ key = UPPER_RIGHT_CORNER; ++ } ++ else if (getComponentOrientation() ++ == ComponentOrientation.RIGHT_TO_LEFT) ++ { ++ if (key == LOWER_LEADING_CORNER) ++ key = LOWER_RIGHT_CORNER; ++ else if (key == LOWER_TRAILING_CORNER) ++ key = LOWER_LEFT_CORNER; ++ else if (key == UPPER_LEADING_CORNER) ++ key = UPPER_RIGHT_CORNER; ++ else if (key == UPPER_TRAILING_CORNER) ++ key = UPPER_LEFT_CORNER; ++ } ++ ++ if (key == LOWER_RIGHT_CORNER) ++ return lowerRight; ++ else if (key == UPPER_RIGHT_CORNER) ++ return upperRight; ++ else if (key == LOWER_LEFT_CORNER) ++ return lowerLeft; ++ else if (key == UPPER_LEFT_CORNER) ++ return upperLeft; ++ return null; ++ } ++ ++ public JScrollBar getHorizontalScrollBar() ++ { ++ return horizontalScrollBar; ++ } ++ ++ public int getHorizontalScrollBarPolicy() ++ { ++ return horizontalScrollBarPolicy; ++ } ++ ++ public JViewport getRowHeader() ++ { ++ return rowHeader; ++ } ++ ++ public JScrollBar getVerticalScrollBar() ++ { ++ return verticalScrollBar; ++ } ++ ++ public int getVerticalScrollBarPolicy() ++ { ++ return verticalScrollBarPolicy; ++ } ++ ++ public JViewport getViewport() ++ { ++ return viewport; ++ } ++ ++ public Border getViewportBorder() ++ { ++ return viewportBorder; ++ } ++ ++ public Rectangle getViewportBorderBounds() ++ { ++ if (viewportBorder == null) ++ { ++ if (getViewport() == null) ++ return new Rectangle(0,0,0,0); ++ else ++ return getViewport().getBounds(); ++ } ++ else ++ { ++ Insets i = viewportBorder.getBorderInsets(getViewport()); ++ if (getViewport() == null) ++ return new Rectangle(0,0, ++ i.left+i.right, i.top+i.bottom); ++ else ++ { ++ Rectangle b = getViewport().getBounds(); ++ return new Rectangle(b.x - i.left, ++ b.y - i.top, ++ b.width + i.left + i.right, ++ b.height + i.top + i.bottom); ++ } ++ } ++ } ++ ++ public boolean isWheelScrollingEnabled() ++ { ++ return wheelScrollingEnabled; ++ } ++ ++ ++ ++ private void sync() ++ { ++ LayoutManager m = super.getLayout(); ++ if (m != null && m instanceof ScrollPaneLayout) ++ { ++ ScrollPaneLayout sl = (ScrollPaneLayout) m; ++ sl.syncWithScrollPane(this); ++ } ++ } ++ ++ private void removeNonNull(Component c) ++ { ++ if (c != null) ++ remove(c); ++ } ++ ++ private void addNonNull(Component c) ++ { ++ if (c != null) ++ add(c); ++ } ++ ++ public void setComponentOrientation(ComponentOrientation co) ++ { ++ ComponentOrientation old = super.getComponentOrientation(); ++ super.setComponentOrientation(co); ++ firePropertyChange(COMPONENT_ORIENTATION_CHANGED_PROPERTY, old, co); ++ sync(); ++ } ++ ++ public void setColumnHeader(JViewport h) ++ { ++ JViewport old = columnHeader; ++ removeNonNull(old); ++ columnHeader = h; ++ addNonNull(h); ++ firePropertyChange(COLUMN_HEADER_CHANGED_PROPERTY, old, h); ++ sync(); ++ } ++ ++ public void setColumnHeaderView(Component c) ++ { ++ if (columnHeader == null) ++ setColumnHeader(createViewport()); ++ columnHeader.setView(c); ++ sync(); ++ } ++ ++ public void setCorner(String key, Component c) ++ { ++ if (getComponentOrientation() ++ == ComponentOrientation.LEFT_TO_RIGHT) ++ { ++ if (key == LOWER_LEADING_CORNER) ++ key = LOWER_LEFT_CORNER; ++ else if (key == LOWER_TRAILING_CORNER) ++ key = LOWER_RIGHT_CORNER; ++ else if (key == UPPER_LEADING_CORNER) ++ key = UPPER_LEFT_CORNER; ++ else if (key == UPPER_TRAILING_CORNER) ++ key = UPPER_RIGHT_CORNER; ++ } ++ else if (getComponentOrientation() ++ == ComponentOrientation.RIGHT_TO_LEFT) ++ { ++ if (key == LOWER_LEADING_CORNER) ++ key = LOWER_RIGHT_CORNER; ++ else if (key == LOWER_TRAILING_CORNER) ++ key = LOWER_LEFT_CORNER; ++ else if (key == UPPER_LEADING_CORNER) ++ key = UPPER_RIGHT_CORNER; ++ else if (key == UPPER_TRAILING_CORNER) ++ key = UPPER_LEFT_CORNER; ++ } ++ ++ if (key == LOWER_RIGHT_CORNER) ++ { ++ removeNonNull(lowerRight); ++ lowerRight = c; ++ addNonNull(c); ++ } ++ else if (key == UPPER_RIGHT_CORNER) ++ { ++ removeNonNull(upperRight); ++ upperRight = c; ++ addNonNull(c); ++ } ++ else if (key == LOWER_LEFT_CORNER) ++ { ++ removeNonNull(lowerLeft); ++ lowerLeft = c; ++ addNonNull(c); ++ } ++ else if (key == UPPER_LEFT_CORNER) ++ { ++ removeNonNull(upperLeft); ++ upperLeft = c; ++ addNonNull(c); ++ } ++ else ++ throw new IllegalArgumentException("unknown corner " + key); ++ sync(); ++ } ++ ++ public void setHorizontalScrollBar(JScrollBar h) ++ { ++ JScrollBar old = horizontalScrollBar; ++ removeNonNull(old); ++ horizontalScrollBar = h; ++ addNonNull(h); ++ firePropertyChange(HORIZONTAL_SCROLLBAR_CHANGED_PROPERTY, old, h); ++ sync(); ++ ++ if (old != null) ++ { ++ BoundedRangeModel model = old.getModel(); ++ if (model != null) ++ model.removeChangeListener(scrollListener); ++ } ++ if (h != null) ++ { ++ BoundedRangeModel model = h.getModel(); ++ if (model != null) ++ model.addChangeListener(scrollListener); ++ } ++ } ++ ++ public void setHorizontalScrollBarPolicy(int h) ++ { ++ if (h != HORIZONTAL_SCROLLBAR_AS_NEEDED ++ && h != HORIZONTAL_SCROLLBAR_NEVER ++ && h != HORIZONTAL_SCROLLBAR_ALWAYS) ++ throw new IllegalArgumentException("unknown horizontal scrollbar policy"); ++ int old = horizontalScrollBarPolicy; ++ horizontalScrollBarPolicy = h; ++ firePropertyChange(HORIZONTAL_SCROLLBAR_POLICY_CHANGED_PROPERTY, old, h); ++ sync(); ++ } ++ ++ public void setLayout(LayoutManager l) ++ { ++ LayoutManager old = super.getLayout(); ++ ScrollPaneLayout tmp = (ScrollPaneLayout) l; ++ super.setLayout(l); ++ tmp.syncWithScrollPane(this); ++ firePropertyChange(LAYOUT_CHANGED_PROPERTY, old, l); ++ sync(); ++ } ++ ++ public void setRowHeader(JViewport v) ++ { ++ JViewport old = rowHeader; ++ removeNonNull(old); ++ rowHeader = v; ++ addNonNull(v); ++ firePropertyChange(ROW_HEADER_CHANGED_PROPERTY, old, v); ++ sync(); ++ } ++ ++ public void setRowHeaderView(Component c) ++ { ++ if (rowHeader == null) ++ setRowHeader(createViewport()); ++ rowHeader.setView(c); ++ sync(); ++ } ++ ++ public void setVerticalScrollBar(JScrollBar v) ++ { ++ JScrollBar old = verticalScrollBar; ++ removeNonNull(old); ++ verticalScrollBar = v; ++ addNonNull(v); ++ firePropertyChange(VERTICAL_SCROLLBAR_CHANGED_PROPERTY, old, v); ++ sync(); ++ ++ if (old != null) ++ { ++ BoundedRangeModel model = old.getModel(); ++ if (model != null) ++ model.removeChangeListener(scrollListener); ++ } ++ if (v != null) ++ { ++ BoundedRangeModel model = v.getModel(); ++ if (model != null) ++ model.addChangeListener(scrollListener); ++ } ++ } ++ ++ public void setVerticalScrollBarPolicy(int v) ++ { ++ if (v != VERTICAL_SCROLLBAR_AS_NEEDED ++ && v != VERTICAL_SCROLLBAR_NEVER ++ && v != VERTICAL_SCROLLBAR_ALWAYS) ++ throw new IllegalArgumentException("unknown vertical scrollbar policy"); ++ int old = verticalScrollBarPolicy; ++ verticalScrollBarPolicy = v; ++ firePropertyChange(VERTICAL_SCROLLBAR_POLICY_CHANGED_PROPERTY, old, v); ++ sync(); ++ } ++ ++ public void setWheelScrollingEnabled(boolean b) ++ { ++ boolean old = wheelScrollingEnabled; ++ wheelScrollingEnabled = b; ++ firePropertyChange(WHEEL_SCROLLING_ENABLED_CHANGED_PROPERTY, old, b); ++ sync(); ++ } ++ ++ public void setViewport(JViewport v) ++ { ++ JViewport old = viewport; ++ removeNonNull(old); ++ if (old != null) ++ old.removeChangeListener(scrollListener); ++ viewport = v; ++ if (v != null) ++ v.addChangeListener(scrollListener); ++ addNonNull(v); ++ revalidate(); ++ repaint(); ++ firePropertyChange(VIEWPORT_CHANGED_PROPERTY, old, v); ++ sync(); ++ } ++ ++ public void setViewportBorder(Border b) ++ { ++ Border old = viewportBorder; ++ viewportBorder = b; ++ firePropertyChange(VIEWPORT_BORDER_CHANGED_PROPERTY, old, b); ++ sync(); ++ } + +- public JScrollPane(Component view) +- { +- this(view, 0, 0); +- } ++ public void setViewportView(Component view) ++ { ++ if (getViewport() == null) ++ { ++ setViewport(createViewport()); ++ } ++ ++ if (view != null) ++ { ++ getViewport().setView(view); ++ } ++ sync(); ++ } ++ ++ public boolean isValidateRoot() ++ { ++ return true; ++ } ++ ++ ChangeListener createScrollListener() ++ { ++ return new ChangeListener() ++ { ++ ++ public void stateChanged(ChangeEvent event) ++ { ++ JScrollBar vsb = JScrollPane.this.getVerticalScrollBar(); ++ JScrollBar hsb = JScrollPane.this.getHorizontalScrollBar(); ++ JViewport vp = JScrollPane.this.getViewport(); ++ ++ if (vp != null && event.getSource() == vp) ++ { ++ // if the viewport changed, we should update the VSB / HSB ++ // models according to the new vertical and horizontal sizes ++ ++ Rectangle vr = vp.getViewRect(); ++ Dimension vs = vp.getViewSize(); ++ if (vsb != null ++ && (vsb.getMinimum() != 0 ++ || vsb.getMaximum() != vs.height ++ || vsb.getValue() != vr.y ++ || vsb.getVisibleAmount() != vr.height)) ++ vsb.setValue(vr.y, vr.height, 0, vs.height); ++ ++ if (hsb != null ++ && (hsb.getMinimum() != 0 ++ || hsb.getMaximum() != vs.width ++ || hsb.getValue() != vr.width ++ || hsb.getVisibleAmount() != vr.height)) ++ hsb.setValue(vr.x, vr.width, 0, vs.width); ++ } ++ else ++ { ++ // otherwise we got a change update from either the VSB or ++ // HSB model, and we need to update the viewport positions of ++ // both the main viewport and any row or column headers to ++ // match. ++ ++ int xpos = 0; ++ int ypos = 0; ++ ++ if (vsb != null) ++ ypos = vsb.getValue(); ++ ++ if (hsb != null) ++ xpos = hsb.getValue(); ++ ++ Point pt = new Point(xpos, ypos); ++ ++ if (vp != null ++ && vp.getViewPosition() != pt) ++ vp.setViewPosition(pt); ++ ++ pt.x = 0; ++ ++ if (rowHeader != null ++ && rowHeader.getViewPosition() != pt) ++ rowHeader.setViewPosition(pt); ++ ++ pt.x = xpos; ++ pt.y = 0; ++ ++ if (columnHeader != null ++ && columnHeader.getViewPosition() != pt) ++ columnHeader.setViewPosition(pt); ++ ++ } ++ } ++ }; ++ } ++ ++ ++ public JScrollPane() ++ { ++ this(null); ++ } + ++ public JScrollPane(Component view) ++ { ++ this(view, ++ VERTICAL_SCROLLBAR_AS_NEEDED, ++ HORIZONTAL_SCROLLBAR_AS_NEEDED); ++ } ++ ++ public JScrollPane(int vsbPolicy, int hsbPolicy) ++ { ++ this(null, vsbPolicy, hsbPolicy); ++ } ++ ++ public JScrollPane(Component view, int vsbPolicy, int hsbPolicy) ++ { ++ scrollListener = createScrollListener(); ++ setVerticalScrollBarPolicy(vsbPolicy); ++ setVerticalScrollBar(createVerticalScrollBar()); ++ setHorizontalScrollBarPolicy(hsbPolicy); ++ setHorizontalScrollBar(createHorizontalScrollBar()); ++ setViewportView(view); ++ setLayout(new ScrollPaneLayout()); ++ setOpaque(false); ++ updateUI(); ++ } ++ ++ ++ public JScrollBar createHorizontalScrollBar() ++ { ++ return new ScrollBar(SwingConstants.HORIZONTAL); ++ } ++ ++ public JScrollBar createVerticalScrollBar() ++ { ++ return new ScrollBar(SwingConstants.VERTICAL); ++ } + +- public JScrollPane(int vsbPolicy, int hsbPolicy) ++ public JViewport createViewport() ++ { ++ return new JViewport(); ++ } ++ ++ ++ public String getUIClassID() ++ { ++ return "ScrollPaneUI"; ++ } ++ ++ public void updateUI() ++ { ++ ScrollPaneUI b = (ScrollPaneUI)UIManager.getUI(this); ++ setUI(b); ++ } ++ ++ ++ class ScrollBar ++ extends JScrollBar ++ implements UIResource ++ { ++ public ScrollBar(int orientation) + { +- this(null, 0, 0); ++ super(orientation); + } + +- public JScrollPane(Component view, int vsbPolicy, int hsbPolicy) ++ public int getBlockIncrement(int direction) + { +- setViewportView(view); +- setOpaque(true); +- updateUI(); ++ Component view = JScrollPane.this.getViewport().getView(); ++ if (view == null || (! (view instanceof Scrollable))) ++ return super.getBlockIncrement(direction); ++ else ++ { ++ Scrollable s = (Scrollable) view; ++ return s.getScrollableBlockIncrement(JScrollPane.this.getViewport().getViewRect(), ++ this.getOrientation(), ++ direction); ++ } + } + +- public String getUIClassID() ++ public int getUnitIncrement(int direction) + { +- //Returns a string that specifies the name of the L&F class that renders this component. +- return "JScrollPane"; ++ Component view = JScrollPane.this.getViewport().getView(); ++ if (view == null || (! (view instanceof Scrollable))) ++ return super.getUnitIncrement(direction); ++ else ++ { ++ Scrollable s = (Scrollable) view; ++ return s.getScrollableUnitIncrement(JScrollPane.this.getViewport().getViewRect(), ++ this.getOrientation(), ++ direction); ++ } + } + +- public JViewport getViewport() +- { +- return viewport; +- } + +- public JViewport createViewport() +- { +- return new JViewport(); +- } +- +- public void setViewport(JViewport v) +- { +- if (viewport != null) +- remove(viewport); +- +- viewport = v; +- +- add(v); +- +- revalidate(); +- repaint(); +- } +- +- public void updateUI() +- { +- ScrollPaneUI b = (ScrollPaneUI)UIManager.getUI(this); +- setUI(b); +- } +- +- +- public void setViewportView(Component view) +- { +- if (getViewport() == null) +- { +- setViewport(createViewport()); +- } +- +- if (view != null) +- { +- getViewport().setView(view); +- } +- } ++ } ++ + } +Index: javax/swing/JSeparator.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JSeparator.java,v +retrieving revision 1.3 +diff -u -r1.3 JSeparator.java +--- javax/swing/JSeparator.java 10 Jan 2004 21:07:43 -0000 1.3 ++++ javax/swing/JSeparator.java 6 Sep 2004 16:35:58 -0000 +@@ -37,190 +37,172 @@ + + package javax.swing; + +-import java.io.IOException; +-import java.io.ObjectOutputStream; + import javax.accessibility.Accessible; + import javax.accessibility.AccessibleContext; + import javax.accessibility.AccessibleRole; + import javax.swing.plaf.SeparatorUI; + ++ + /** +- * JSeparator +- * @author Andrew Selkirk +- * @version 1.0 ++ * The JSeparator. It is mostly used to divide/space out ++ * components. + */ +-public class JSeparator extends JComponent +- implements SwingConstants, Accessible ++public class JSeparator extends JComponent implements SwingConstants, ++ Accessible + { +- +- //------------------------------------------------------------- +- // Classes ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * AccessibleJSeparator +- */ +- protected class AccessibleJSeparator extends AccessibleJComponent { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor AccessibleJSeparator +- * @param component TODO +- */ +- protected AccessibleJSeparator(JSeparator component) { +- super(component); +- // TODO +- } // AccessibleJSeparator() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * getAccessibleRole +- * @returns AccessibleRole +- */ +- public AccessibleRole getAccessibleRole() { +- return AccessibleRole.SEPARATOR; +- } // getAccessibleRole() +- +- +- } // AccessibleJSeparator +- +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * uiClassID +- */ +- private static final String uiClassID = "SeparatorUI"; +- +- /** +- * orientation +- */ +- private int orientation; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor JSeparator +- */ +- public JSeparator() { +- this(HORIZONTAL); +- } // JSeparator() +- +- /** +- * Constructor JSeparator +- * @param value0 TODO +- */ +- public JSeparator(int orientation) { +- this.orientation = orientation; +- // TODO +- } // JSeparator() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * writeObject +- * @param stream TODO +- * @exception IOException TODO +- */ +- private void writeObject(ObjectOutputStream stream) throws IOException { +- // TODO +- } // writeObject() +- +- /** +- * getUI +- * @returns SeparatorUI +- */ +- public SeparatorUI getUI() { +- return (SeparatorUI) ui; +- } // getUI() +- +- /** +- * setUI +- * @param ui TODO +- */ +- public void setUI(SeparatorUI ui) { +- super.setUI(ui); +- } // setUI() +- +- /** +- * updateUI +- */ +- public void updateUI() { +- setUI((SeparatorUI) UIManager.get(this)); +- invalidate(); +- } // updateUI() +- +- /** +- * getUIClassID +- * @returns String +- */ +- public String getUIClassID() { +- return uiClassID; +- } // getUIClassID() +- +- /** +- * getOrientation +- * @returns int +- */ +- public int getOrientation() { +- return orientation; +- } // getOrientation() +- +- /** +- * setOrientation +- * @param orientation TODO +- */ +- public void setOrientation(int orientation) { +- this.orientation = orientation; +- // TODO +- } // setOrientation() +- +- /** +- * paramString +- * @returns String +- */ +- protected String paramString() { +- return null; // TODO +- } // paramString() +- +- /** +- * isFocusTraversable +- * @returns boolean +- */ +- public boolean isFocusTraversable() { +- return false; +- } // isFocusTraversable() +- +- /** +- * getAccessibleContext +- * @returns AccessibleContext +- */ +- public AccessibleContext getAccessibleContext() { +- if (accessibleContext == null) { +- accessibleContext = new AccessibleJSeparator(this); +- } // if +- return accessibleContext; +- } // getAccessibleContext() +- +- +-} // JSeparator ++ /** ++ * AccessibleJSeparator ++ */ ++ protected class AccessibleJSeparator extends AccessibleJComponent ++ { ++ private static final long serialVersionUID = 916332890553201095L; ++ ++ /** ++ * Constructor AccessibleJSeparator ++ * ++ * @param component TODO ++ */ ++ protected AccessibleJSeparator() ++ { ++ } ++ ++ /** ++ * getAccessibleRole ++ * ++ * @return AccessibleRole ++ */ ++ public AccessibleRole getAccessibleRole() ++ { ++ return AccessibleRole.SEPARATOR; ++ } ++ } ++ ++ private static final long serialVersionUID = 125301223445282357L; ++ ++ /** The orientation of the JSeparator. */ ++ private transient int orientation = HORIZONTAL; ++ ++ /** ++ * Creates a new horizontal JSeparator object. ++ */ ++ public JSeparator() ++ { ++ this(HORIZONTAL); ++ } ++ ++ /** ++ * Creates a new JSeparator object with the given orientation. ++ * ++ * @param orientation The orientation of the JSeparator. ++ */ ++ public JSeparator(int orientation) ++ { ++ if (orientation != HORIZONTAL && orientation != VERTICAL) ++ throw new IllegalArgumentException(orientation ++ + " is not a valid orientation."); ++ this.orientation = orientation; ++ updateUI(); ++ } ++ ++ /** ++ * This method returns the UI delegate being ++ * used with the JSeparator. ++ * ++ * @return SeparatorUI The JSeparator's UI delegate. ++ */ ++ public SeparatorUI getUI() ++ { ++ return (SeparatorUI) ui; ++ } ++ ++ /** ++ * This method sets the UI delegate to use ++ * with the JSeparator. ++ * ++ * @param ui The UI delegate to use. ++ */ ++ public void setUI(SeparatorUI ui) ++ { ++ super.setUI(ui); ++ } ++ ++ /** ++ * This method resets the UI delegate to the ++ * default for the current look and feel. ++ */ ++ public void updateUI() ++ { ++ setUI((SeparatorUI) UIManager.getUI(this)); ++ invalidate(); ++ } ++ ++ /** ++ * This method returns the identifier string ++ * that is used to determine the UI delegate ++ * from the current look and feel. ++ * ++ * @return String The identifier string for the UI. ++ */ ++ public String getUIClassID() ++ { ++ return "SeparatorUI"; ++ } ++ ++ /** ++ * This method returns the JSeparator's orientation. ++ * ++ * @return int The JSeparator's orientation. ++ */ ++ public int getOrientation() ++ { ++ return orientation; ++ } ++ ++ /** ++ * This method changes the JSeparator's orientation. ++ * ++ * @param orientation The JSeparator's orientation. ++ */ ++ public void setOrientation(int orientation) ++ { ++ if (orientation != HORIZONTAL && orientation != VERTICAL) ++ throw new IllegalArgumentException(orientation ++ + " is not a valid orientation."); ++ this.orientation = orientation; ++ } ++ ++ /** ++ * This method returns a string desribing the JSeparator. ++ * Normally only used in debugging. ++ * ++ * @return String A string describing the JSeparator. ++ */ ++ protected String paramString() ++ { ++ return "JSeparator"; ++ } ++ ++ /** ++ * This method overrides the isFocusTraversable method from ++ * Component to false. JSeparator cannot be focused on. ++ * ++ * @return boolean False. ++ */ ++ public boolean isFocusTraversable() ++ { ++ return false; ++ } ++ ++ /** ++ * getAccessibleContext ++ * ++ * @return AccessibleContext ++ */ ++ public AccessibleContext getAccessibleContext() ++ { ++ if (accessibleContext == null) ++ accessibleContext = new AccessibleJSeparator(); ++ ++ return accessibleContext; ++ } ++} +Index: javax/swing/JSlider.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JSlider.java,v +retrieving revision 1.3 +diff -u -r1.3 JSlider.java +--- javax/swing/JSlider.java 11 Jun 2003 13:20:39 -0000 1.3 ++++ javax/swing/JSlider.java 6 Sep 2004 16:35:58 -0000 +@@ -1,5 +1,5 @@ + /* JSlider.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,14 +35,16 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing; + +-import java.io.IOException; +-import java.io.ObjectOutputStream; ++import java.awt.Dimension; ++import java.awt.MenuContainer; ++import java.awt.image.ImageObserver; + import java.io.Serializable; + import java.util.Dictionary; ++import java.util.Enumeration; + import java.util.Hashtable; ++ + import javax.accessibility.Accessible; + import javax.accessibility.AccessibleContext; + import javax.accessibility.AccessibleRole; +@@ -52,650 +54,888 @@ + import javax.swing.event.ChangeListener; + import javax.swing.plaf.SliderUI; + ++ + /** +- * JSlider +- * @author Andrew Selkirk +- * @version 1.0 ++ *

    ++ * The JSlider is a Swing component that allows selection of a value within a ++ * range by adjusting a thumb in a track. The values for the minimum, ++ * maximum, extent and value are stored in a {@link ++ * DefaultBoundedRangeModel}. ++ *

    ++ * ++ *

    ++ * JSliders have the following properties: ++ *

    ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ *
    Property Stored in Bound?
    extent model no
    inverted slider yes
    labelTable slider yes
    majorTickSpacing slider yes
    maximum model no
    minimum model no
    minorTickSpacing slider yes
    model slider yes
    orientation slider yes
    paintLabels slider yes
    paintTicks slider yes
    snapToTicks slider no
    value model no
    valueIsAdjusting model no
    ++ * ++ *

    ++ * The various behavioral aspects of these properties follows: ++ *

    ++ * ++ *
      ++ *
    • ++ * When non-bound properties stored in the slider change, the slider fires ++ * ChangeEvents to its ChangeListeners. ++ *
    • ++ *
    • ++ * When bound properties stored in the slider change, the slider fires ++ * PropertyChangeEvents to its PropertyChangeListeners ++ *
    • ++ *
    • ++ * If any of the model's properties change, it fires a ChangeEvent to its ++ * ChangeListeners, which include the slider. ++ *
    • ++ *
    • ++ * If the slider receives a ChangeEvent from its model, it will propagate the ++ * ChangeEvent to its ChangeListeners, with the ChangeEvent's "source" ++ * property set to refer to the slider, rather than the model. ++ *
    • ++ *
    + */ +-public class JSlider +- extends JComponent +- implements SwingConstants, Accessible ++public class JSlider extends JComponent implements SwingConstants, Accessible, ++ ImageObserver, ++ MenuContainer, Serializable + { ++ /** DOCUMENT ME! */ + static final long serialVersionUID = -1441275936141218479L; + +- //------------------------------------------------------------- +- // Classes ---------------------------------------------------- +- //------------------------------------------------------------- +- +- +- /** +- * AccessibleJSlider +- */ +- protected class AccessibleJSlider extends JComponent.AccessibleJComponent implements AccessibleValue { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor AccessibleJSlider +- * @param value0 TODO +- */ +- protected AccessibleJSlider(JSlider value0) { +- super(value0); +- // TODO +- } // AccessibleJSlider() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * getAccessibleStateSet +- * @returns AccessibleStateSet +- */ +- public AccessibleStateSet getAccessibleStateSet() { +- return null; // TODO +- } // getAccessibleStateSet() +- +- /** +- * getAccessibleRole +- * @returns AccessibleRole +- */ +- public AccessibleRole getAccessibleRole() { +- return null; // TODO +- } // getAccessibleRole() +- +- /** +- * getAccessibleValue +- * @returns AccessibleValue +- */ +- public AccessibleValue getAccessibleValue() { +- return null; // TODO +- } // getAccessibleValue() +- +- /** +- * getCurrentAccessibleValue +- * @returns Number +- */ +- public Number getCurrentAccessibleValue() { +- return null; // TODO +- } // getCurrentAccessibleValue() +- +- /** +- * setCurrentAccessibleValue +- * @param value0 TODO +- * @returns boolean +- */ +- public boolean setCurrentAccessibleValue(Number value0) { +- return false; // TODO +- } // setCurrentAccessibleValue() +- +- /** +- * getMinimumAccessibleValue +- * @returns Number +- */ +- public Number getMinimumAccessibleValue() { +- return null; // TODO +- } // getMinimumAccessibleValue() +- +- /** +- * getMaximumAccessibleValue +- * @returns Number +- */ +- public Number getMaximumAccessibleValue() { +- return null; // TODO +- } // getMaximumAccessibleValue() +- +- +- } // AccessibleJSlider +- +- /** +- * ModelListener +- */ +- private class ModelListener implements ChangeListener, Serializable { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor ModelListener +- * @param value0 TODO +- */ +- private ModelListener(JSlider value0) { +- // TODO +- } // ModelListener() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * stateChanged +- * @param value0 TODO +- */ +- public void stateChanged(ChangeEvent value0) { +- // TODO +- } // stateChanged() +- +- +- } // ModelListener +- +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * uiClassID +- */ +- private static final String uiClassID = "SliderUI"; +- +- /** +- * paintTicks +- */ +- private boolean paintTicks; +- +- /** +- * paintTrack +- */ +- private boolean paintTrack; +- +- /** +- * paintLabels +- */ +- private boolean paintLabels; +- +- /** +- * isInverted +- */ +- private boolean isInverted; +- +- /** +- * sliderModel +- */ +- protected BoundedRangeModel sliderModel; +- +- /** +- * majorTickSpacing +- */ +- protected int majorTickSpacing; +- +- /** +- * minorTickSpacing +- */ +- protected int minorTickSpacing; +- +- /** +- * snapToTicks +- */ +- protected boolean snapToTicks; +- +- /** +- * snapToValue +- */ +- boolean snapToValue; +- +- /** +- * orientation +- */ +- protected int orientation; +- +- /** +- * labelTable +- */ +- private Dictionary labelTable; +- +- /** +- * changeListener +- */ +- protected ChangeListener changeListener; +- +- /** +- * changeEvent +- */ +- protected transient ChangeEvent changeEvent; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor JSlider +- */ +- public JSlider() { +- // TODO +- } // JSlider() +- +- /** +- * Constructor JSlider +- * @param value0 TODO +- */ +- public JSlider(int orientation) { +- // TODO +- } // JSlider() +- +- /** +- * Constructor JSlider +- * @param minimum TODO +- * @param maximum TODO +- */ +- public JSlider(int minimum, int maximum) { +- // TODO +- } // JSlider() +- +- /** +- * Constructor JSlider +- * @param minimum TODO +- * @param maximum TODO +- * @param value TODO +- */ +- public JSlider(int minimum, int maximum, int value) { +- // TODO +- } // JSlider() +- +- /** +- * Constructor JSlider +- * @param orientation TODO +- * @param minimum TODO +- * @param maximum TODO +- * @param value TODO +- */ +- public JSlider(int orientation, int minimum, int maximum, int value) { +- // TODO +- } // JSlider() +- +- /** +- * Constructor JSlider +- * @param value0 TODO +- */ +- public JSlider(BoundedRangeModel model) { +- // TODO +- } // JSlider() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * writeObject +- * @param stream TODO +- * @exception IOException TODO +- */ +- private void writeObject(ObjectOutputStream stream) throws IOException { +- // TODO +- } // writeObject() +- +- /** +- * getValue +- * @returns int +- */ +- public int getValue() { +- return 0; // TODO +- } // getValue() +- +- /** +- * setValue +- * @param value0 TODO +- */ +- public void setValue(int value) { +- // TODO +- } // setValue() +- +- /** +- * getUI +- * @returns SliderUI +- */ +- public SliderUI getUI() { +- return (SliderUI) ui; +- } // getUI() +- +- /** +- * setUI +- * @param ui TODO +- */ +- public void setUI(SliderUI ui) { +- super.setUI(ui); +- } // setUI() +- +- /** +- * updateUI +- */ +- public void updateUI() { +- setUI((SliderUI) UIManager.get(this)); +- invalidate(); +- } // updateUI() +- +- /** +- * getUIClassID +- * @returns String +- */ +- public String getUIClassID() { +- return uiClassID; +- } // getUIClassID() +- +- /** +- * createChangeListener +- * @returns ChangeListener +- */ +- protected ChangeListener createChangeListener() { +- return null; // TODO +- } // createChangeListener() +- +- /** +- * addChangeListener +- * @param listener TODO +- */ +- public void addChangeListener(ChangeListener listener) { +- // TODO +- } // addChangeListener() +- +- /** +- * removeChangeListener +- * @param listener TODO +- */ +- public void removeChangeListener(ChangeListener listener) { +- // TODO +- } // removeChangeListener() +- +- /** +- * fireStateChanged +- */ +- protected void fireStateChanged() { +- // TODO +- } // fireStateChanged() +- +- /** +- * getModel +- * @returns BoundedRangeModel +- */ +- public BoundedRangeModel getModel() { +- return null; // TODO +- } // getModel() +- +- /** +- * setModel +- * @param model TODO +- */ +- public void setModel(BoundedRangeModel model) { +- // TODO +- } // setModel() +- +- /** +- * getMinimum +- * @returns int +- */ +- public int getMinimum() { +- return 0; // TODO +- } // getMinimum() +- +- /** +- * setMinimum +- * @param minimum TODO +- */ +- public void setMinimum(int minimum) { +- // TODO +- } // setMinimum() +- +- /** +- * getMaximum +- * @returns int +- */ +- public int getMaximum() { +- return 0; // TODO +- } // getMaximum() +- +- /** +- * setMaximum +- * @param maximum TODO +- */ +- public void setMaximum(int maximum) { +- // TODO +- } // setMaximum() +- +- /** +- * getValueIsAdjusting +- * @returns boolean +- */ +- public boolean getValueIsAdjusting() { +- return false; // TODO +- } // getValueIsAdjusting() +- +- /** +- * setValueIsAdjusting +- * @param adjusting TODO +- */ +- public void setValueIsAdjusting(boolean adjusting) { +- // TODO +- } // setValueIsAdjusting() +- +- /** +- * getExtent +- * @returns int +- */ +- public int getExtent() { +- return 0; // TODO +- } // getExtent() +- +- /** +- * setExtent +- * @param vextent TODO +- */ +- public void setExtent(int extent) { +- // TODO +- } // setExtent() +- +- /** +- * getOrientation +- * @returns int +- */ +- public int getOrientation() { +- return 0; // TODO +- } // getOrientation() +- +- /** +- * setOrientation +- * @param orientation TODO +- */ +- public void setOrientation(int orientation) { +- // TODO +- } // setOrientation() +- +- /** +- * getLabelTable +- * @returns Dictionary +- */ +- public Dictionary getLabelTable() { +- return null; // TODO +- } // getLabelTable() +- +- /** +- * setLabelTable +- * @param table TODO +- */ +- public void setLabelTable(Dictionary table) { +- // TODO +- } // setLabelTable() +- +- /** +- * updateLabelUIs +- */ +- protected void updateLabelUIs() { +- // TODO +- } // updateLabelUIs() +- +- /** +- * createStandardLabels +- * @param increment TODO +- * @returns Hashtable +- */ +- public Hashtable createStandardLabels(int increment) { +- return null; // TODO +- } // createStandardLabels() +- +- /** +- * createStandardLabels +- * @param increment TODO +- * @param start TODO +- * @returns Hashtable +- */ +- public Hashtable createStandardLabels(int increment, int start) { +- return null; // TODO +- } // createStandardLabels() +- +- /** +- * getInverted +- * @returns boolean +- */ +- public boolean getInverted() { +- return false; // TODO +- } // getInverted() +- +- /** +- * setInverted +- * @param inverted TODO +- */ +- public void setInverted(boolean inverted) { +- // TODO +- } // setInverted() +- +- /** +- * getMajorTickSpacing +- * @returns int +- */ +- public int getMajorTickSpacing() { +- return 0; // TODO +- } // getMajorTickSpacing() +- +- /** +- * setMajorTickSpacing +- * @param spacing TODO +- */ +- public void setMajorTickSpacing(int spacing) { +- // TODO +- } // setMajorTickSpacing() +- +- /** +- * getMinorTickSpacing +- * @returns int +- */ +- public int getMinorTickSpacing() { +- return 0; // TODO +- } // getMinorTickSpacing() +- +- /** +- * setMinorTickSpacing +- * @param spacing TODO +- */ +- public void setMinorTickSpacing(int spacing) { +- // TODO +- } // setMinorTickSpacing() +- +- /** +- * getSnapToTicks +- * @returns boolean +- */ +- public boolean getSnapToTicks() { +- return false; // TODO +- } // getSnapToTicks() +- +- /** +- * getSnapToValue +- * @returns boolean +- */ +- boolean getSnapToValue() { +- return false; // TODO +- } // getSnapToValue() +- +- /** +- * setSnapToTicks +- * @param snap TODO +- */ +- public void setSnapToTicks(boolean snap) { +- // TODO +- } // setSnapToTicks() +- +- /** +- * getPaintTicks +- * @returns boolean +- */ +- public boolean getPaintTicks() { +- return false; // TODO +- } // getPaintTicks() +- +- /** +- * setPaintTicks +- * @param paint TODO +- */ +- public void setPaintTicks(boolean paint) { +- // TODO +- } // setPaintTicks() +- +- /** +- * getPaintTrack +- * @returns boolean +- */ +- public boolean getPaintTrack() { +- return false; // TODO +- } // getPaintTrack() +- +- /** +- * setPaintTrack +- * @param paint TODO +- */ +- public void setPaintTrack(boolean paint) { +- // TODO +- } // setPaintTrack() +- +- /** +- * getPaintLabels +- * @returns boolean +- */ +- public boolean getPaintLabels() { +- return false; // TODO +- } // getPaintLabels() +- +- /** +- * setPaintLabels +- * @param paint TODO +- */ +- public void setPaintLabels(boolean paint) { +- // TODO +- } // setPaintLabels() +- +- /** +- * paramString +- * @returns String +- */ +- protected String paramString() { +- return null; // TODO +- } // paramString() +- +- /** +- * getAccessibleContext +- * @returns AccessibleContext +- */ +- public AccessibleContext getAccessibleContext() { +- if (accessibleContext == null) { +- accessibleContext = new AccessibleJSlider(this); +- } // if +- return accessibleContext; +- } // getAccessibleContext() +- +- +-} // JSlider ++ /** ++ * DOCUMENT ME! ++ */ ++ protected class AccessibleJSlider extends JComponent.AccessibleJComponent ++ implements AccessibleValue ++ { ++ private static final long serialVersionUID = -6301740148041106789L; ++ ++ /** ++ * Creates a new AccessibleJSlider object. ++ * ++ * @param value0 DOCUMENT ME! ++ */ ++ protected AccessibleJSlider() ++ { ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public AccessibleStateSet getAccessibleStateSet() ++ { ++ return null; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public AccessibleRole getAccessibleRole() ++ { ++ return null; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public AccessibleValue getAccessibleValue() ++ { ++ return null; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public Number getCurrentAccessibleValue() ++ { ++ return null; ++ } ++ ++ /** ++ * setCurrentAccessibleValue ++ * ++ * @param value0 TODO ++ * ++ * @return boolean ++ */ ++ public boolean setCurrentAccessibleValue(Number value0) ++ { ++ return false; ++ } ++ ++ /** ++ * getMinimumAccessibleValue ++ * ++ * @return Number ++ */ ++ public Number getMinimumAccessibleValue() ++ { ++ return null; ++ } ++ ++ /** ++ * getMaximumAccessibleValue ++ * ++ * @return Number ++ */ ++ public Number getMaximumAccessibleValue() ++ { ++ return null; ++ } ++ } ++ ++ /** Fired in a PropertyChangeEvent when the "inverted" property changes. */ ++ public static final String INVERTED_CHANGED_PROPERTY = "inverted"; ++ ++ /** Fired in a PropertyChangeEvent when the "labelTable" property changes. */ ++ public static final String LABEL_TABLE_CHANGED_PROPERTY = "labelTable"; ++ ++ /** ++ * Fired in a PropertyChangeEvent when the "majorTickSpacing" property ++ * changes. ++ */ ++ public static final String MAJOR_TICK_SPACING_CHANGED_PROPERTY = "majorTickSpacing"; ++ ++ /** ++ * Fired in a PropertyChangeEvent when the "minorTickSpacing" property ++ * changes. ++ */ ++ public static final String MINOR_TICK_SPACING_CHANGED_PROPERTY = "minorTickSpacing"; ++ ++ /** Fired in a PropertyChangeEvent when the "model" property changes. */ ++ public static final String MODEL_CHANGED_PROPERTY = "model"; ++ ++ /** Fired in a PropertyChangeEvent when the "orientation" property changes. */ ++ public static final String ORIENTATION_CHANGED_PROPERTY = "orientation"; ++ ++ /** Fired in a PropertyChangeEvent when the "paintLabels" property changes. */ ++ public static final String PAINT_LABELS_CHANGED_PROPERTY = "paintLabels"; ++ ++ /** Fired in a PropertyChangeEvent when the "paintTicks" property changes. */ ++ public static final String PAINT_TICKS_CHANGED_PROPERTY = "paintTicks"; ++ ++ /** Whether or not this slider paints its ticks. */ ++ private transient boolean paintTicks = false; ++ ++ /** Whether or not this slider paints its track. */ ++ private transient boolean paintTrack = true; ++ ++ /** Whether or not this slider paints its labels. */ ++ private transient boolean paintLabels = false; ++ ++ /** ++ * A dictionary of (Integer, Component) pairs where each Component is a ++ * JLabel and the Integer determines where the label will be painted. ++ */ ++ private transient Dictionary labelTable; ++ ++ /** The model used to describe the slider. */ ++ protected BoundedRangeModel sliderModel; ++ ++ /** The space between major ticks. */ ++ protected int majorTickSpacing; ++ ++ /** The space between minor ticks. */ ++ protected int minorTickSpacing; ++ ++ /** Whether the slider snaps its values to ticks. */ ++ protected boolean snapToTicks = true; ++ ++ /** The orientation of the slider. */ ++ protected int orientation = HORIZONTAL; ++ ++ /** Whether the slider is inverted. */ ++ private transient boolean isInverted; ++ ++ /** The ChangeListener that listens to the model. */ ++ protected ChangeListener changeListener; ++ ++ /** The ChangeEvent that is passed to all listeners of this slider. */ ++ protected transient ChangeEvent changeEvent; ++ ++ /** ++ * Creates a new horizontal JSlider object with a minimum of 0, a maximum of ++ * 100, and a value of 50. ++ */ ++ public JSlider() ++ { ++ this(HORIZONTAL, 0, 100, 50); ++ } ++ ++ /** ++ * Creates a new JSlider object with the given orientation and a minimum of ++ * 0, a maximum of 100, and a value of 50. ++ * ++ * @param orientation The orientation of the slider. ++ */ ++ public JSlider(int orientation) ++ { ++ this(orientation, 0, 100, 50); ++ } ++ ++ /** ++ * Creates a new horizontal JSlider object with the given maximum and ++ * minimum and a value that is halfway between the minimum and the ++ * maximum. ++ * ++ * @param minimum The minimum value of the JSlider. ++ * @param maximum The maximum value of the JSlider. ++ */ ++ public JSlider(int minimum, int maximum) ++ { ++ this(HORIZONTAL, minimum, maximum, (maximum + minimum) / 2); ++ } ++ ++ /** ++ * Creates a new horizontal JSlider object with the given minimum, maximum, ++ * and value. ++ * ++ * @param minimum The minimum value of the JSlider. ++ * @param maximum The maximum value of the JSlider. ++ * @param value The initial value of the JSlider. ++ */ ++ public JSlider(int minimum, int maximum, int value) ++ { ++ this(HORIZONTAL, minimum, maximum, value); ++ } ++ ++ /** ++ * Creates a new JSlider object with the given orientation, minimum, ++ * maximum, and value. ++ * ++ * @param orientation The orientation of the JSlider. ++ * @param minimum The minimum value of the JSlider. ++ * @param maximum The maximum value of the JSlider. ++ * @param value The initial value of the JSlider. ++ */ ++ public JSlider(int orientation, int minimum, int maximum, int value) ++ { ++ sliderModel = new DefaultBoundedRangeModel(value, 0, minimum, maximum); ++ if (orientation != HORIZONTAL && orientation != VERTICAL) ++ throw new IllegalArgumentException(orientation + " is not a legal orientation"); ++ this.orientation = orientation; ++ changeListener = createChangeListener(); ++ sliderModel.addChangeListener(changeListener); ++ updateUI(); ++ } ++ ++ /** ++ * Creates a new horizontal JSlider object with the given model. ++ * ++ * @param model The model the slider will be created with. ++ */ ++ public JSlider(BoundedRangeModel model) ++ { ++ if (model == null) ++ sliderModel = new DefaultBoundedRangeModel(50, 0, 0, 100); ++ else ++ sliderModel = model; ++ changeListener = createChangeListener(); ++ sliderModel.addChangeListener(changeListener); ++ updateUI(); ++ } ++ ++ /** ++ * This method returns the current value of the slider. ++ * ++ * @return The value of the slider stored in the model. ++ */ ++ public int getValue() ++ { ++ return sliderModel.getValue(); ++ } ++ ++ /** ++ * This method sets the value of the slider. ++ * ++ * @param value The slider's new value. ++ */ ++ public void setValue(int value) ++ { ++ sliderModel.setValue(value); ++ } ++ ++ /** ++ * This method returns the slider's UI delegate. ++ * ++ * @return The slider's UI delegate. ++ */ ++ public SliderUI getUI() ++ { ++ return (SliderUI) ui; ++ } ++ ++ /** ++ * This method sets the slider's UI delegate. ++ * ++ * @param ui A SliderUI object to use with this slider. ++ */ ++ public void setUI(SliderUI ui) ++ { ++ super.setUI(ui); ++ } ++ ++ /** ++ * This method sets this slider's UI to the UIManager's default for the ++ * current look and feel. ++ */ ++ public void updateUI() ++ { ++ setUI((SliderUI) UIManager.getUI(this)); ++ invalidate(); ++ repaint(); ++ } ++ ++ /** ++ * This method returns a name to identify which look and feel class will be ++ * the UI delegate for the slider. ++ * ++ * @return The Look and Feel classID. "SliderUI" ++ */ ++ public String getUIClassID() ++ { ++ return "SliderUI"; ++ } ++ ++ /** ++ * Creates a ChangeListener for this Slider. ++ * ++ * @return A new ChangeListener. ++ */ ++ protected ChangeListener createChangeListener() ++ { ++ return new ChangeListener() ++ { ++ public void stateChanged(ChangeEvent ce) ++ { ++ // No need to trigger a repaint since the UI listens to the model ++ // as well. All we need to do is pass on the stateChanged event ++ // to our listeners. ++ fireStateChanged(); ++ } ++ }; ++ } ++ ++ /** ++ * This method registers a listener to this slider. The listener will be ++ * informed of new ChangeEvents. ++ * ++ * @param listener The listener to register. ++ */ ++ public void addChangeListener(ChangeListener listener) ++ { ++ listenerList.add(ChangeListener.class, listener); ++ } ++ ++ /** ++ * This method removes a listener from this slider. ++ * ++ * @param listener The listener to remove. ++ */ ++ public void removeChangeListener(ChangeListener listener) ++ { ++ listenerList.remove(ChangeListener.class, listener); ++ } ++ ++ /** ++ * This method is called whenever the model fires a ChangeEvent. It should ++ * propagate the ChangeEvent to its listeners with a new ChangeEvent that ++ * identifies the slider as the source. ++ */ ++ protected void fireStateChanged() ++ { ++ Object[] changeListeners = listenerList.getListenerList(); ++ if (changeEvent == null) ++ changeEvent = new ChangeEvent(this); ++ for (int i = changeListeners.length - 2; i >= 0; i -= 2) ++ { ++ if (changeListeners[i] == ChangeListener.class) ++ ((ChangeListener) changeListeners[i + 1]).stateChanged(changeEvent); ++ } ++ } ++ ++ /** ++ * This method returns an array of all ChangeListeners listening to this ++ * slider. ++ * ++ * @return An array of ChangeListeners listening to this slider. ++ */ ++ public ChangeListener[] getChangeListeners() ++ { ++ return (ChangeListener[]) listenerList.getListeners(ChangeListener.class); ++ } ++ ++ /** ++ * This method returns the model of the slider. ++ * ++ * @return The slider's model. ++ */ ++ public BoundedRangeModel getModel() ++ { ++ return sliderModel; ++ } ++ ++ /** ++ * This method changes the "model" property. It also needs to unregister ++ * any listeners to the old model and register any listeners to the new ++ * model. ++ * ++ * @param model The model to use with the slider. ++ */ ++ public void setModel(BoundedRangeModel model) ++ { ++ // I didn't do the null pointer check on purpose. ++ // If you try it with Sun's, it'll go ahead and set it to null ++ // and bork the next time it tries to access the model. ++ if (model != sliderModel) ++ { ++ BoundedRangeModel oldModel = sliderModel; ++ sliderModel = model; ++ oldModel.removeChangeListener(changeListener); ++ sliderModel.addChangeListener(changeListener); ++ firePropertyChange(MODEL_CHANGED_PROPERTY, oldModel, sliderModel); ++ } ++ } ++ ++ /** ++ * This method returns the minimum value of the slider. ++ * ++ * @return The minimum value of the slider. ++ */ ++ public int getMinimum() ++ { ++ return sliderModel.getMinimum(); ++ } ++ ++ /** ++ * This method sets the minimum value of the slider. ++ * ++ * @param minimum The minimum value of the slider. ++ */ ++ public void setMinimum(int minimum) ++ { ++ sliderModel.setMinimum(minimum); ++ } ++ ++ /** ++ * This method returns the maximum value of the slider. ++ * ++ * @return The maximum value of the slider. ++ */ ++ public int getMaximum() ++ { ++ return sliderModel.getMaximum(); ++ } ++ ++ /** ++ * This method sets the maximum value of the slider. ++ * ++ * @param maximum The maximum value of the slider. ++ */ ++ public void setMaximum(int maximum) ++ { ++ sliderModel.setMaximum(maximum); ++ } ++ ++ /** ++ * This method returns this slider's isAdjusting value which is true if the ++ * thumb is being dragged. ++ * ++ * @return The slider's isAdjusting value. ++ */ ++ public boolean getValueIsAdjusting() ++ { ++ return sliderModel.getValueIsAdjusting(); ++ } ++ ++ /** ++ * This method sets the isAdjusting value for the slider. ++ * ++ * @param adjusting The slider's isAdjusting value. ++ */ ++ public void setValueIsAdjusting(boolean adjusting) ++ { ++ sliderModel.setValueIsAdjusting(adjusting); ++ } ++ ++ /** ++ * This method returns the extent value for this slider. ++ * ++ * @return The extent value for this slider. ++ */ ++ public int getExtent() ++ { ++ return sliderModel.getExtent(); ++ } ++ ++ /** ++ * This method sets the extent value for this slider. ++ * ++ * @param extent The extent value for this slider. ++ */ ++ public void setExtent(int extent) ++ { ++ sliderModel.setExtent(extent); ++ } ++ ++ /** ++ * This method returns the slider orientation. ++ * ++ * @return The orientation of the slider. ++ */ ++ public int getOrientation() ++ { ++ return orientation; ++ } ++ ++ /** ++ * This method changes the "orientation" property of this slider. If the ++ * orientation is not VERTICAL or HORIZONTAL, this method does nothing. ++ * ++ * @param orientation The orientation of this slider. ++ */ ++ public void setOrientation(int orientation) ++ { ++ if (orientation != VERTICAL && orientation != HORIZONTAL) ++ throw new IllegalArgumentException("orientation must be one of: VERTICAL, HORIZONTAL"); ++ if (orientation != this.orientation) ++ { ++ int oldOrientation = this.orientation; ++ this.orientation = orientation; ++ firePropertyChange(ORIENTATION_CHANGED_PROPERTY, oldOrientation, ++ this.orientation); ++ } ++ } ++ ++ /** ++ * This method returns the label table for this slider. ++ * ++ * @return The label table for this slider. ++ */ ++ public Dictionary getLabelTable() ++ { ++ return labelTable; ++ } ++ ++ /** ++ * This method changes the "labelTable" property of this slider. ++ * ++ * @param table The label table for this slider. ++ */ ++ public void setLabelTable(Dictionary table) ++ { ++ if (table != labelTable) ++ { ++ Dictionary oldTable = labelTable; ++ labelTable = table; ++ firePropertyChange(LABEL_TABLE_CHANGED_PROPERTY, oldTable, labelTable); ++ } ++ } ++ ++ /** ++ * This method is called to reset UI delegates for the labels in the ++ * labelTable to a default for the current look and feel. ++ */ ++ protected void updateLabelUIs() ++ { ++ if (labelTable == null) ++ return; ++ for (Enumeration list = labelTable.elements(); list.hasMoreElements();) ++ { ++ JLabel label = (JLabel) list.nextElement(); ++ label.updateUI(); ++ } ++ } ++ ++ /** ++ * Creates a hashtable of (Integer, JLabel) pairs that can be used as a ++ * label table for this slider. The labels will start from the sliders ++ * minimum and increase by the increment. Each label will have a text ++ * string indicating their integer value. ++ * ++ * @param increment The increment to between labels. ++ * ++ * @return A hashtable with the labels and their keys. ++ */ ++ public Hashtable createStandardLabels(int increment) ++ { ++ return createStandardLabels(increment, sliderModel.getMinimum()); ++ } ++ ++ /** ++ * Creates a hashtable of (Integer, JLabel) pairs that can be used as a ++ * label table for this slider. The labels will start from the given start ++ * value and increase by the increment. Each label will have a text string ++ * indicating their integer value. ++ * ++ * @param increment The increment to between labels. ++ * @param start The value to start from. ++ * ++ * @return A hashtable with the labels and their keys. ++ */ ++ public Hashtable createStandardLabels(int increment, int start) ++ { ++ Hashtable table = new Hashtable(); ++ JLabel label; ++ Dimension dim; ++ ++ int max = sliderModel.getMaximum(); ++ ++ for (int i = start; i <= max; i += increment) ++ { ++ label = new JLabel(String.valueOf(i)); ++ label.setVerticalAlignment(CENTER); ++ label.setHorizontalAlignment(CENTER); ++ ++ // Make sure these labels have the width and height ++ // they want. ++ dim = label.getPreferredSize(); ++ label.setBounds(label.getX(), label.getY(), ++ (int) dim.getWidth(), ++ (int) dim.getHeight()); ++ table.put(new Integer(i), label); ++ } ++ return table; ++ } ++ ++ /** ++ * This method returns whether the slider is inverted. Horizontal sliders ++ * that are not inverted will have the minimums on the left. If they are ++ * inverted, the minimums will be on the right. Vertical sliders that are ++ * not inverted will have the minimums at the bottom. If they are inverted, ++ * the minimums will be at the top. ++ * ++ * @return Whether this slider is inverted. ++ */ ++ public boolean getInverted() ++ { ++ return isInverted; ++ } ++ ++ /** ++ * This method changes the "inverted" property for this slider.Horizontal ++ * sliders that are not inverted will have the minimums on the left. If ++ * they are inverted, the minimums will be on the right. Vertical sliders ++ * that are not inverted will have the minimums at the bottom. If they are ++ * inverted, the minimums will be at the top. However, if the slider's ++ * componentOrientation is set to RIGHT_TO_LEFT, then everything gets ++ * reversed again. ++ * ++ * @param inverted Whether the slider should be inverted. ++ */ ++ public void setInverted(boolean inverted) ++ { ++ if (isInverted != inverted) ++ { ++ boolean oldInverted = isInverted; ++ isInverted = inverted; ++ firePropertyChange(INVERTED_CHANGED_PROPERTY, oldInverted, isInverted); ++ } ++ } ++ ++ /** ++ * This method returns the amount of units between each major tick mark. ++ * ++ * @return The amount of units between each major tick mark. ++ */ ++ public int getMajorTickSpacing() ++ { ++ return majorTickSpacing; ++ } ++ ++ /** ++ * This method changes the "majorTickSpacing" property for this slider. The ++ * major tick spacing is the amount of units between each major tick mark. ++ * ++ * @param spacing The amount of units between each major tick mark. ++ */ ++ public void setMajorTickSpacing(int spacing) ++ { ++ if (majorTickSpacing != spacing) ++ { ++ int oldSpacing = majorTickSpacing; ++ majorTickSpacing = spacing; ++ firePropertyChange(MAJOR_TICK_SPACING_CHANGED_PROPERTY, oldSpacing, ++ majorTickSpacing); ++ } ++ } ++ ++ /** ++ * This method returns the amount of units between each minor tick mark. ++ * ++ * @return The amount of units between each minor tick mark. ++ */ ++ public int getMinorTickSpacing() ++ { ++ return minorTickSpacing; ++ } ++ ++ /** ++ * This method changes the "minorTickSpacing" property for this slider. The ++ * minor tick spacing is the amount of units between each minor tick mark. ++ * ++ * @param spacing The amount of units between each minor tick mark. ++ */ ++ public void setMinorTickSpacing(int spacing) ++ { ++ if (minorTickSpacing != spacing) ++ { ++ int oldSpacing = minorTickSpacing; ++ minorTickSpacing = spacing; ++ firePropertyChange(MINOR_TICK_SPACING_CHANGED_PROPERTY, oldSpacing, ++ minorTickSpacing); ++ } ++ } ++ ++ /** ++ * This method returns whether this slider is snapping to ticks. Sliders ++ * that snap to ticks will automatically move the thumb to the nearest tick ++ * mark. ++ * ++ * @return Whether this slider snaps to ticks. ++ */ ++ public boolean getSnapToTicks() ++ { ++ return snapToTicks; ++ } ++ ++ /** ++ * This method sets whether this slider will snap to ticks. Sliders that ++ * snap to ticks will automatically move the thumb to the nearest tick ++ * mark. ++ * ++ * @param snap Whether this slider snaps to ticks. ++ */ ++ public void setSnapToTicks(boolean snap) ++ { ++ if (snap != snapToTicks) ++ { ++ snapToTicks = snap; ++ fireStateChanged(); ++ } ++ } ++ ++ /** ++ * This method returns whether the slider will paint its tick marks. In ++ * addition to setting this property to true, one of minor tick spacing or ++ * major tick spacing must be set to a value greater than 0 in order for ++ * ticks to be painted. ++ * ++ * @return Whether ticks will be painted. ++ */ ++ public boolean getPaintTicks() ++ { ++ return paintTicks; ++ } ++ ++ /** ++ * This method changes the "paintTicks" property for this slider. In ++ * addition to setting this property to true, one of minor tick spacing or ++ * major tick spacing must be set to a value greater than 0 in order for ++ * ticks to be painted. ++ * ++ * @param paint Whether ticks will be painted. ++ */ ++ public void setPaintTicks(boolean paint) ++ { ++ if (paint != paintTicks) ++ { ++ boolean oldPaintTicks = paintTicks; ++ paintTicks = paint; ++ firePropertyChange(PAINT_TICKS_CHANGED_PROPERTY, oldPaintTicks, ++ paintTicks); ++ } ++ } ++ ++ /** ++ * This method returns whether the track will be painted. ++ * ++ * @return Whether the track will be painted. ++ */ ++ public boolean getPaintTrack() ++ { ++ return paintTrack; ++ } ++ ++ /** ++ * This method sets whether the track will be painted. ++ * ++ * @param paint Whether the track will be painted. ++ */ ++ public void setPaintTrack(boolean paint) ++ { ++ paintTrack = paint; ++ } ++ ++ /** ++ * This method returns whether labels will be painted. ++ * ++ * @return Whether labels will be painted. ++ */ ++ public boolean getPaintLabels() ++ { ++ return paintLabels; ++ } ++ ++ /** ++ * This method changes the "paintLabels" property. ++ * ++ * @param paint Whether labels will be painted. ++ */ ++ public void setPaintLabels(boolean paint) ++ { ++ if (paint != paintLabels) ++ { ++ boolean oldPaintLabels = paintLabels; ++ paintLabels = paint; ++ firePropertyChange(PAINT_LABELS_CHANGED_PROPERTY, oldPaintLabels, ++ paintLabels); ++ } ++ } ++ ++ /** ++ * This method is used primarily for debugging purposes and returns a string ++ * that can be used to represent this slider. ++ * ++ * @return A string representing this slider. ++ */ ++ protected String paramString() ++ { ++ return "JSlider"; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public AccessibleContext getAccessibleContext() ++ { ++ if (accessibleContext == null) ++ accessibleContext = new AccessibleJSlider(); ++ ++ return accessibleContext; ++ } ++} +Index: javax/swing/JSpinner.java +=================================================================== +RCS file: javax/swing/JSpinner.java +diff -N javax/swing/JSpinner.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/JSpinner.java 6 Sep 2004 16:35:58 -0000 +@@ -0,0 +1,482 @@ ++/* JSpinner.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing; ++ ++import java.awt.BorderLayout; ++import java.awt.Component; ++import java.awt.Container; ++import java.awt.Dimension; ++import java.awt.LayoutManager; ++import java.awt.event.ActionEvent; ++import java.awt.event.ActionListener; ++import java.beans.PropertyChangeEvent; ++import java.beans.PropertyChangeListener; ++import java.text.DecimalFormat; ++import java.text.ParseException; ++import java.util.EventListener; ++import javax.swing.border.EtchedBorder; ++import javax.swing.event.ChangeEvent; ++import javax.swing.event.ChangeListener; ++import javax.swing.event.EventListenerList; ++import javax.swing.plaf.SpinnerUI; ++ ++ ++/** ++ * A JSpinner is a component which typically contains a numeric value and a ++ * way to manipulate the value. ++ * ++ * @author Ka-Hing Cheung ++ * @version 1.0 ++ */ ++public class JSpinner extends JComponent ++{ ++ /** ++ * DOCUMENT ME! ++ */ ++ public static class StubEditor extends JLabel implements ChangeListener ++ { ++ /** DOCUMENT ME! */ ++ private JLabel label; ++ ++ /** DOCUMENT ME! */ ++ private JButton up; ++ ++ /** DOCUMENT ME! */ ++ private JButton down; ++ ++ /** DOCUMENT ME! */ ++ private JSpinner spinner; ++ ++ /** ++ * Creates a new StubEditor object. ++ * ++ * @param spinner DOCUMENT ME! ++ */ ++ public StubEditor(JSpinner spinner) ++ { ++ this.spinner = spinner; ++ setBorder(new EtchedBorder()); ++ setHorizontalAlignment(SwingConstants.TRAILING); ++ stateChanged(null); /* fill in the label */ ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param evt DOCUMENT ME! ++ */ ++ public void stateChanged(ChangeEvent evt) ++ { ++ setText(String.valueOf(spinner.getValue())); ++ } ++ } ++ ++ /** ++ * DOCUMENT ME! ++ */ ++ public static class DefaultEditor extends JPanel implements ChangeListener, ++ PropertyChangeListener, ++ LayoutManager ++ { ++ /** ++ * Creates a new DefaultEditor object. ++ * ++ * @param spinner DOCUMENT ME! ++ */ ++ public DefaultEditor(JSpinner spinner) ++ { ++ spinner.addChangeListener(this); ++ } /* TODO */ ++ /** ++ * DOCUMENT ME! ++ */ ++ public void commitEdit() ++ { ++ } /* TODO */ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param spinner DOCUMENT ME! ++ */ ++ public void dismiss(JSpinner spinner) ++ { ++ spinner.removeChangeListener(this); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public JFormattedTextField getTextField() ++ { ++ return null; ++ } /* TODO */ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param parent DOCUMENT ME! ++ */ ++ public void layoutContainer(Container parent) ++ { ++ } /* TODO */ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param parent DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public Dimension minimumLayoutSize(Container parent) ++ { ++ return null; ++ } /* TODO */ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param parent DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public Dimension preferredLayoutSize(Container parent) ++ { ++ return null; ++ } /* TODO */ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param evt DOCUMENT ME! ++ */ ++ public void propertyChange(PropertyChangeEvent evt) ++ { ++ } /* TODO */ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param evt DOCUMENT ME! ++ */ ++ public void stateChanged(ChangeEvent evt) ++ { ++ } /* TODO */ ++ /* no-ops */ ++ public void removeLayoutComponent(Component child) ++ { ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param name DOCUMENT ME! ++ * @param child DOCUMENT ME! ++ */ ++ public void addLayoutComponent(String name, Component child) ++ { ++ } ++ } ++ ++ /** ++ * DOCUMENT ME! ++ */ ++ public static class NumberEditor extends DefaultEditor ++ { ++ /** ++ * Creates a new NumberEditor object. ++ * ++ * @param spinner DOCUMENT ME! ++ */ ++ public NumberEditor(JSpinner spinner) ++ { ++ super(spinner); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public DecimalFormat getFormat() ++ { ++ return null; ++ } ++ } ++ ++ /** DOCUMENT ME! */ ++ private SpinnerModel model; ++ ++ /** DOCUMENT ME! */ ++ private JComponent editor; ++ ++ /** DOCUMENT ME! */ ++ private EventListenerList listenerList = new EventListenerList(); ++ ++ /** DOCUMENT ME! */ ++ private ChangeListener listener = new ChangeListener() ++ { ++ public void stateChanged(ChangeEvent evt) ++ { ++ fireStateChanged(); ++ } ++ }; ++ ++ /** ++ * Creates a JSpinner with SpinnerNumberModel ++ * ++ * @see javax.swing.SpinnerNumberModel ++ */ ++ public JSpinner() ++ { ++ this(new SpinnerNumberModel()); ++ } ++ ++ /** ++ * Creates a JSpinner with the specific model and sets the default editor ++ * ++ * @param model DOCUMENT ME! ++ */ ++ public JSpinner(SpinnerModel model) ++ { ++ this.model = model; ++ model.addChangeListener(listener); ++ setEditor(createEditor(model)); ++ updateUI(); ++ } ++ ++ /** ++ * If the editor is JSpinner.DefaultEditor, then forwards the ++ * call to it, otherwise do nothing. ++ * ++ * @throws ParseException DOCUMENT ME! ++ */ ++ public void commitEdit() throws ParseException ++ { ++ if (editor instanceof DefaultEditor) ++ ((DefaultEditor) editor).commitEdit(); ++ } ++ ++ /** ++ * Gets the current editor ++ * ++ * @return the current editor ++ * ++ * @see #setEditor ++ */ ++ public JComponent getEditor() ++ { ++ return editor; ++ } ++ ++ /** ++ * Changes the current editor to the new editor. This methods should remove ++ * the old listeners (if any) and adds the new listeners (if any). ++ * ++ * @param editor the new editor ++ * ++ * @throws IllegalArgumentException DOCUMENT ME! ++ * ++ * @see #getEditor ++ */ ++ public void setEditor(JComponent editor) ++ { ++ if (editor == null) ++ throw new IllegalArgumentException("editor may not be null"); ++ ++ if (this.editor instanceof DefaultEditor) ++ ((DefaultEditor) editor).dismiss(this); ++ else if (this.editor instanceof ChangeListener) ++ removeChangeListener((ChangeListener) this.editor); ++ ++ if (editor instanceof ChangeListener) ++ addChangeListener((ChangeListener) editor); ++ ++ this.editor = editor; ++ } ++ ++ /** ++ * Gets the underly model. ++ * ++ * @return the underly model ++ */ ++ public SpinnerModel getModel() ++ { ++ return model; ++ } ++ ++ /** ++ * Gets the next value without changing the current value. ++ * ++ * @return the next value ++ * ++ * @see javax.swing.SpinnerModel#getNextValue ++ */ ++ public Object getNextValue() ++ { ++ return model.getNextValue(); ++ } ++ ++ /** ++ * Gets the previous value without changing the current value. ++ * ++ * @return the previous value ++ * ++ * @see javax.swing.SpinnerModel#getPreviousValue ++ */ ++ public Object getPreviousValue() ++ { ++ return model.getPreviousValue(); ++ } ++ ++ /** ++ * Gets the SpinnerUI that handles this spinner ++ * ++ * @return the SpinnerUI ++ */ ++ public SpinnerUI getUI() ++ { ++ return (SpinnerUI) ui; ++ } ++ ++ /** ++ * Gets the current value of the spinner, according to the underly model, ++ * not the UI. ++ * ++ * @return the current value ++ * ++ * @see javax.swing.SpinnerModel#getValue ++ */ ++ public Object getValue() ++ { ++ return model.getValue(); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param value DOCUMENT ME! ++ */ ++ public void setValue(Object value) ++ { ++ model.setValue(value); ++ } ++ ++ /** ++ * This method returns a name to identify which look and feel class will be ++ * the UI delegate for this spinner. ++ * ++ * @return The UIClass identifier. "SpinnerUI" ++ */ ++ public String getUIClassID() ++ { ++ return "SpinnerUI"; ++ } ++ ++ /** ++ * This method resets the spinner's UI delegate to the default UI for the ++ * current look and feel. ++ */ ++ public void updateUI() ++ { ++ setUI((SpinnerUI) UIManager.getUI(this)); ++ } ++ ++ /** ++ * This method sets the spinner's UI delegate. ++ * ++ * @param ui The spinner's UI delegate. ++ */ ++ public void setUI(SpinnerUI ui) ++ { ++ super.setUI(ui); ++ } ++ ++ /** ++ * Adds a ChangeListener ++ * ++ * @param listener the listener to add ++ */ ++ public void addChangeListener(ChangeListener listener) ++ { ++ listenerList.add(ChangeListener.class, listener); ++ } ++ ++ /** ++ * Remove a particular listener ++ * ++ * @param listener the listener to remove ++ */ ++ public void removeChangeListener(ChangeListener listener) ++ { ++ listenerList.remove(ChangeListener.class, listener); ++ } ++ ++ /** ++ * Gets all the ChangeListeners ++ * ++ * @return all the ChangeListeners ++ */ ++ public ChangeListener[] getChangeListeners() ++ { ++ return (ChangeListener[]) listenerList.getListeners(ChangeListener.class); ++ } ++ ++ /** ++ * Fires a ChangeEvent to all the ChangeListeners ++ * added to this JSpinner ++ */ ++ protected void fireStateChanged() ++ { ++ ChangeEvent evt = new ChangeEvent(this); ++ ChangeListener[] listeners = getChangeListeners(); ++ ++ for (int i = 0; i < listeners.length; ++i) ++ listeners[i].stateChanged(evt); ++ } ++ ++ /** ++ * Creates an editor for this JSpinner. Really, it should be a ++ * JSpinner.DefaultEditor, but since that should be ++ * implemented by a JFormattedTextField, and one is not written, I am just ++ * using a dummy one backed by a JLabel. ++ * ++ * @param model DOCUMENT ME! ++ * ++ * @return the default editor ++ */ ++ protected JComponent createEditor(SpinnerModel model) ++ { ++ return new StubEditor(this); ++ } /* TODO */} +Index: javax/swing/JSplitPane.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JSplitPane.java,v +retrieving revision 1.2 +diff -u -r1.2 JSplitPane.java +--- javax/swing/JSplitPane.java 10 Jan 2004 21:07:43 -0000 1.2 ++++ javax/swing/JSplitPane.java 6 Sep 2004 16:35:58 -0000 +@@ -1,5 +1,5 @@ +-/* JSplitPane.java -- +- Copyright (C) 2002, 2004 Free Software Foundation, Inc. ++/* JSplitPane.java -- ++ Copyright (C) 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,614 +35,782 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + ++ + package javax.swing; + + import java.awt.Component; + import java.awt.Graphics; +-import java.io.IOException; +-import java.io.ObjectOutputStream; + import javax.accessibility.Accessible; + import javax.accessibility.AccessibleContext; + import javax.accessibility.AccessibleRole; + import javax.accessibility.AccessibleStateSet; + import javax.accessibility.AccessibleValue; ++import javax.swing.UIManager; + import javax.swing.plaf.SplitPaneUI; + ++ + /** +- * JSplitPane +- * @author Andrew Selkirk +- * @version 1.0 ++ * This class implements JSplitPane. It is used to divide two components. By ++ * dragging the SplitPane's divider, the user can resize the two components. ++ * Note that the divider cannot resize a component to smaller than it's ++ * minimum size. + */ +-public class JSplitPane extends JComponent implements Accessible { +- +- //------------------------------------------------------------- +- // Classes ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * AccessibleJSplitPane +- */ +- protected class AccessibleJSplitPane extends AccessibleJComponent +- implements AccessibleValue { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor AccessibleJSplitPane +- * @param component TODO +- */ +- protected AccessibleJSplitPane(JSplitPane component) { +- super(component); +- // TODO +- } // AccessibleJSplitPane() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * getAccessibleStateSet +- * @returns AccessibleStateSet +- */ +- public AccessibleStateSet getAccessibleStateSet() { +- return null; // TODO +- } // getAccessibleStateSet() +- +- /** +- * getAccessibleRole +- * @returns AccessibleRole +- */ +- public AccessibleRole getAccessibleRole() { +- return AccessibleRole.SPLIT_PANE; +- } // getAccessibleRole() +- +- /** +- * getAccessibleValue +- * @returns AccessibleValue +- */ +- public AccessibleValue getAccessibleValue() { +- return null; // TODO +- } // getAccessibleValue() +- +- /** +- * getCurrentAccessibleValue +- * @returns Number +- */ +- public Number getCurrentAccessibleValue() { +- return null; // TODO +- } // getCurrentAccessibleValue() +- +- /** +- * setCurrentAccessibleValue +- * @param value0 TODO +- * @returns boolean +- */ +- public boolean setCurrentAccessibleValue(Number value0) { +- return false; // TODO +- } // setCurrentAccessibleValue() +- +- /** +- * getMinimumAccessibleValue +- * @returns Number +- */ +- public Number getMinimumAccessibleValue() { +- return null; // TODO +- } // getMinimumAccessibleValue() +- +- /** +- * getMaximumAccessibleValue +- * @returns Number +- */ +- public Number getMaximumAccessibleValue() { +- return null; // TODO +- } // getMaximumAccessibleValue() +- +- +- } // AccessibleJSplitPane +- +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * uiClassID +- */ +- private static final String uiClassID = "SplitPaneUI"; +- +- /** +- * VERTICAL_SPLIT +- */ +- public static final int VERTICAL_SPLIT = 0; +- +- /** +- * HORIZONTAL_SPLIT +- */ +- public static final int HORIZONTAL_SPLIT = 1; +- +- /** +- * LEFT +- */ +- public static final String LEFT = "left"; +- +- /** +- * RIGHT +- */ +- public static final String RIGHT = "right"; +- +- /** +- * TOP +- */ +- public static final String TOP = "top"; +- +- /** +- * BOTTOM +- */ +- public static final String BOTTOM = "bottom"; +- +- /** +- * DIVIDER +- */ +- public static final String DIVIDER = "divider"; +- +- /** +- * ORIENTATION_PROPERTY +- */ +- public static final String ORIENTATION_PROPERTY = "orientation"; +- +- /** +- * CONTINUOUS_LAYOUT_PROPERTY +- */ +- public static final String CONTINUOUS_LAYOUT_PROPERTY = "continuousLayout"; +- +- /** +- * DIVIDER_SIZE_PROPERTY +- */ +- public static final String DIVIDER_SIZE_PROPERTY = "dividerSize"; +- +- /** +- * ONE_TOUCH_EXPANDABLE_PROPERTY +- */ +- public static final String ONE_TOUCH_EXPANDABLE_PROPERTY = "oneTouchExpandable"; +- +- /** +- * LAST_DIVIDER_LOCATION_PROPERTY +- */ +- public static final String LAST_DIVIDER_LOCATION_PROPERTY = "lastDividerLocation"; +- +- /** +- * DIVIDER_LOCATION_PROPERTY +- */ +- public static final String DIVIDER_LOCATION_PROPERTY = "dividerLocation"; +- +- /** +- * RESIZE_WEIGHT_PROPERTY +- */ +- public static final String RESIZE_WEIGHT_PROPERTY = "resizeWeight"; +- +- /** +- * orientation +- */ +- protected int orientation; +- +- /** +- * continuousLayout +- */ +- protected boolean continuousLayout; +- +- /** +- * leftComponent +- */ +- protected Component leftComponent; +- +- /** +- * rightComponent +- */ +- protected Component rightComponent; +- +- /** +- * dividerSize +- */ +- protected int dividerSize; +- +- /** +- * oneTouchExpandable +- */ +- protected boolean oneTouchExpandable; +- +- /** +- * lastDividerLocation +- */ +- protected int lastDividerLocation; +- +- /** +- * resizeWeight +- */ +- private double resizeWeight; +- +- /** +- * dividerLocation +- */ +- private int dividerLocation; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor JSplitPane +- */ +- public JSplitPane() { +- // TODO +- } // JSplitPane() +- +- /** +- * Constructor JSplitPane +- * @param value0 TODO +- */ +- public JSplitPane(int value0) { +- // TODO +- } // JSplitPane() +- +- /** +- * Constructor JSplitPane +- * @param value0 TODO +- * @param value1 TODO +- */ +- public JSplitPane(int value0, boolean value1) { +- // TODO +- } // JSplitPane() +- +- /** +- * Constructor JSplitPane +- * @param value0 TODO +- * @param value1 TODO +- * @param value2 TODO +- */ +- public JSplitPane(int value0, Component value1, Component value2) { +- // TODO +- } // JSplitPane() +- +- /** +- * Constructor JSplitPane +- * @param value0 TODO +- * @param value1 TODO +- * @param value2 TODO +- * @param value3 TODO +- */ +- public JSplitPane(int value0, boolean value1, Component value2, Component value3) { +- // TODO +- } // JSplitPane() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * writeObject +- * @param stream TODO +- * @exception IOException TODO +- */ +- private void writeObject(ObjectOutputStream stream) throws IOException { +- // TODO +- } // writeObject() +- +- /** +- * remove +- * @param value0 TODO +- */ +- public void remove(Component value0) { +- // TODO +- } // remove() +- +- /** +- * remove +- * @param value0 TODO +- */ +- public void remove(int value0) { +- // TODO +- } // remove() +- +- /** +- * removeAll +- */ +- public void removeAll() { +- // TODO +- } // removeAll() +- +- /** +- * setUI +- * @param ui TODO +- */ +- public void setUI(SplitPaneUI ui) { +- super.setUI(ui); +- } // setUI() +- +- /** +- * getUI +- * @returns SplitPaneUI +- */ +- public SplitPaneUI getUI() { +- return (SplitPaneUI) ui; +- } // getUI() +- +- /** +- * updateUI +- */ +- public void updateUI() { +- setUI((SplitPaneUI) UIManager.get(this)); +- invalidate(); +- } // updateUI() +- +- /** +- * getUIClassID +- * @returns String +- */ +- public String getUIClassID() { +- return uiClassID; +- } // getUIClassID() +- +- /** +- * setDividerSize +- * @param value0 TODO +- */ +- public void setDividerSize(int value0) { +- // TODO +- } // setDividerSize() +- +- /** +- * getDividerSize +- * @returns int +- */ +- public int getDividerSize() { +- return 0; // TODO +- } // getDividerSize() +- +- /** +- * setLeftComponent +- * @param value0 TODO +- */ +- public void setLeftComponent(Component value0) { +- // TODO +- } // setLeftComponent() +- +- /** +- * getLeftComponent +- * @returns Component +- */ +- public Component getLeftComponent() { +- return null; // TODO +- } // getLeftComponent() +- +- /** +- * setTopComponent +- * @param value0 TODO +- */ +- public void setTopComponent(Component value0) { +- // TODO +- } // setTopComponent() +- +- /** +- * getTopComponent +- * @returns Component +- */ +- public Component getTopComponent() { +- return null; // TODO +- } // getTopComponent() +- +- /** +- * setRightComponent +- * @param value0 TODO +- */ +- public void setRightComponent(Component value0) { +- // TODO +- } // setRightComponent() +- +- /** +- * getRightComponent +- * @returns Component +- */ +- public Component getRightComponent() { +- return null; // TODO +- } // getRightComponent() +- +- /** +- * setBottomComponent +- * @param value0 TODO +- */ +- public void setBottomComponent(Component value0) { +- // TODO +- } // setBottomComponent() +- +- /** +- * getBottomComponent +- * @returns Component +- */ +- public Component getBottomComponent() { +- return null; // TODO +- } // getBottomComponent() +- +- /** +- * setOneTouchExpandable +- * @param value0 TODO +- */ +- public void setOneTouchExpandable(boolean value0) { +- // TODO +- } // setOneTouchExpandable() +- +- /** +- * isOneTouchExpandable +- * @returns boolean +- */ +- public boolean isOneTouchExpandable() { +- return false; // TODO +- } // isOneTouchExpandable() +- +- /** +- * setLastDividerLocation +- * @param value0 TODO +- */ +- public void setLastDividerLocation(int value0) { +- // TODO +- } // setLastDividerLocation() +- +- /** +- * getLastDividerLocation +- * @returns int +- */ +- public int getLastDividerLocation() { +- return 0; // TODO +- } // getLastDividerLocation() +- +- /** +- * setOrientation +- * @param value0 TODO +- */ +- public void setOrientation(int value0) { +- // TODO +- } // setOrientation() +- +- /** +- * getOrientation +- * @returns int +- */ +- public int getOrientation() { +- return 0; // TODO +- } // getOrientation() +- +- /** +- * setContinuousLayout +- * @param value0 TODO +- */ +- public void setContinuousLayout(boolean value0) { +- // TODO +- } // setContinuousLayout() +- +- /** +- * isContinuousLayout +- * @returns boolean +- */ +- public boolean isContinuousLayout() { +- return false; // TODO +- } // isContinuousLayout() +- +- /** +- * setResizeWeight +- * @param value0 TODO +- */ +- public void setResizeWeight(double value0) { +- // TODO +- } // setResizeWeight() +- +- /** +- * getResizeWeight +- * @returns double +- */ +- public double getResizeWeight() { +- return 0.0; // TODO +- } // getResizeWeight() +- +- /** +- * resetToPreferredSizes +- */ +- public void resetToPreferredSizes() { +- // TODO +- } // resetToPreferredSizes() +- +- /** +- * setDividerLocation +- * @param value0 TODO +- */ +- public void setDividerLocation(double value0) { +- // TODO +- } // setDividerLocation() +- +- /** +- * setDividerLocation +- * @param value0 TODO +- */ +- public void setDividerLocation(int value0) { +- // TODO +- } // setDividerLocation() +- +- /** +- * getDividerLocation +- * @returns int +- */ +- public int getDividerLocation() { +- return 0; // TODO +- } // getDividerLocation() +- +- /** +- * getMinimumDividerLocation +- * @returns int +- */ +- public int getMinimumDividerLocation() { +- return 0; // TODO +- } // getMinimumDividerLocation() +- +- /** +- * getMaximumDividerLocation +- * @returns int +- */ +- public int getMaximumDividerLocation() { +- return 0; // TODO +- } // getMaximumDividerLocation() +- +- /** +- * isValidateRoot +- * @returns boolean +- */ +- public boolean isValidateRoot() { +- return false; // TODO +- } // isValidateRoot() +- +- /** +- * addImpl +- * @param value0 TODO +- * @param value1 TODO +- * @param value2 TODO +- */ +- protected void addImpl(Component value0, Object value1, int value2) { +- // TODO +- } // addImpl() +- +- /** +- * paintChildren +- * @param value0 TODO +- */ +- protected void paintChildren(Graphics value0) { +- // TODO +- } // paintChildren() +- +- /** +- * paramString +- * @returns String +- */ +- protected String paramString() { +- return null; // TODO +- } // paramString() +- +- /** +- * getAccessibleContext +- * @returns AccessibleContext +- */ +- public AccessibleContext getAccessibleContext() { +- if (accessibleContext == null) { +- accessibleContext = new AccessibleJSplitPane(this); +- } // if +- return accessibleContext; +- } // getAccessibleContext() +- +- +-} // JSplitPane ++public class JSplitPane extends JComponent implements Accessible ++{ ++ /** ++ * DOCUMENT ME! ++ */ ++ protected class AccessibleJSplitPane extends JComponent.AccessibleJComponent ++ implements AccessibleValue ++ { ++ private static final long serialVersionUID = -1788116871416305366L; ++ ++ /** ++ * Creates a new AccessibleJSplitPane object. ++ * ++ * @param value0 DOCUMENT ME! ++ */ ++ protected AccessibleJSplitPane() ++ { ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public AccessibleStateSet getAccessibleStateSet() ++ { ++ return null; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public AccessibleRole getAccessibleRole() ++ { ++ return null; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public AccessibleValue getAccessibleValue() ++ { ++ return null; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public Number getCurrentAccessibleValue() ++ { ++ return null; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param value0 DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public boolean setCurrentAccessibleValue(Number value0) ++ { ++ return false; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public Number getMinimumAccessibleValue() ++ { ++ return null; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public Number getMaximumAccessibleValue() ++ { ++ return null; ++ } ++ } ++ ++ private static final long serialVersionUID = -5634142046175988380L; ++ ++ /** The constraints string used to add components to the bottom. */ ++ public static final String BOTTOM = "bottom"; ++ ++ /** The property fired when the continuousLayout property changes. */ ++ public static final String CONTINUOUS_LAYOUT_PROPERTY = "continuousLayout"; ++ ++ /** The property fired when the divider property changes. */ ++ public static final String DIVIDER = "divider"; ++ ++ /** The property fired when the divider location property changes. */ ++ public static final String DIVIDER_LOCATION_PROPERTY = "dividerLocation"; ++ ++ /** The property fired when the divider size property changes. */ ++ public static final String DIVIDER_SIZE_PROPERTY = "dividerSize"; ++ ++ /** ++ * The value of the orientation when the components are split horizontally. ++ */ ++ public static final int HORIZONTAL_SPLIT = 1; ++ ++ /** The property fired when the last divider location property changes. */ ++ public static final String LAST_DIVIDER_LOCATION_PROPERTY = "lastDividerLocation"; ++ ++ /** The constraints string used to add components to the left. */ ++ public static final String LEFT = "left"; ++ ++ /** The property fired when the one touch expandable property changes. */ ++ public static final String ONE_TOUCH_EXPANDABLE_PROPERTY = "oneTouchExpandable"; ++ ++ /** The property fired when the orientation property changes. */ ++ public static final String ORIENTATION_PROPERTY = "orientation"; ++ ++ /** The property fired when the resize weight property changes. */ ++ public static final String RESIZE_WEIGHT_PROPERTY = "resizeWeight"; ++ ++ /** The constraints string used to add components to the right. */ ++ public static final String RIGHT = "right"; ++ ++ /** The constraints string used to add components to the top. */ ++ public static final String TOP = "top"; ++ ++ /** The value of the orientation when the components are split vertically. */ ++ public static final int VERTICAL_SPLIT = 0; ++ ++ /** Whether the JSplitPane uses continuous layout. */ ++ protected boolean continuousLayout; ++ ++ /** Whether the JSplitPane uses one touch expandable buttons. */ ++ protected boolean oneTouchExpandable = false; ++ ++ // This is the master dividerSize variable and sets the BasicSplitPaneDivider one accordingly ++ ++ /** The size of the divider. */ ++ protected int dividerSize = 10; ++ ++ /** The last location of the divider given by the UI. */ ++ protected int lastDividerLocation; ++ ++ /** The orientation of the JSplitPane. */ ++ protected int orientation; ++ ++ /** The component on the top or left. */ ++ protected Component leftComponent; ++ ++ /** The component on the right or bottom. */ ++ protected Component rightComponent; ++ ++ /** Determines how extra space should be allocated. */ ++ private transient double resizeWeight; ++ ++ /** ++ * Creates a new JSplitPane object with the given orientation, layout mode, ++ * and left and right components. ++ * ++ * @param newOrientation The orientation to use. ++ * @param newContinuousLayout The layout mode to use. ++ * @param newLeftComponent The left component. ++ * @param newRightComponent The right component. ++ * ++ * @throws IllegalArgumentException DOCUMENT ME! ++ */ ++ public JSplitPane(int newOrientation, boolean newContinuousLayout, ++ Component newLeftComponent, Component newRightComponent) ++ { ++ if (newOrientation != HORIZONTAL_SPLIT && newOrientation != VERTICAL_SPLIT) ++ throw new IllegalArgumentException("orientation is invalid."); ++ orientation = newOrientation; ++ continuousLayout = newContinuousLayout; ++ setLeftComponent(newLeftComponent); ++ setRightComponent(newRightComponent); ++ ++ updateUI(); ++ } ++ ++ /** ++ * Creates a new JSplitPane object using nonContinuousLayout mode, the given ++ * orientation and left and right components. ++ * ++ * @param newOrientation The orientation to use. ++ * @param newLeftComponent The left component. ++ * @param newRightComponent The right component. ++ */ ++ public JSplitPane(int newOrientation, Component newLeftComponent, ++ Component newRightComponent) ++ { ++ this(newOrientation, false, newLeftComponent, newRightComponent); ++ } ++ ++ /** ++ * Creates a new JSplitPane object with the given layout mode and ++ * orientation. ++ * ++ * @param newOrientation The orientation to use. ++ * @param newContinuousLayout The layout mode to use. ++ */ ++ public JSplitPane(int newOrientation, boolean newContinuousLayout) ++ { ++ this(newOrientation, newContinuousLayout, null, null); ++ } ++ ++ /** ++ * Creates a new JSplitPane object using a nonContinuousLayout mode and the ++ * given orientation. ++ * ++ * @param newOrientation The orientation to use. ++ */ ++ public JSplitPane(int newOrientation) ++ { ++ this(newOrientation, false, null, null); ++ } ++ ++ /** ++ * Creates a new JSplitPane object using HORIZONTAL_SPLIT and a ++ * nonContinuousLayout mode. ++ */ ++ public JSplitPane() ++ { ++ this(HORIZONTAL_SPLIT, false, null, null); ++ } ++ ++ /** ++ * This method adds a component to the JSplitPane. The constraints object is ++ * a string that identifies where this component should go. If the ++ * constraints is not a known one, it will throw an ++ * IllegalArgumentException. The valid constraints are LEFT, TOP, RIGHT, ++ * BOTTOM and DIVIDER. ++ * ++ * @param comp The component to add. ++ * @param constraints The constraints string to use. ++ * @param index Where to place to component in the list of components. ++ * ++ * @throws IllegalArgumentException When the constraints is not a known identifier. ++ */ ++ protected void addImpl(Component comp, Object constraints, int index) ++ { ++ int left = 0; ++ int right = 1; ++ int div = 2; ++ int place; ++ if (constraints == null) ++ { ++ if (leftComponent == null) ++ constraints = LEFT; ++ else if (rightComponent == null) ++ constraints = RIGHT; ++ } ++ ++ if (constraints instanceof String) ++ { ++ String placement = (String) constraints; ++ ++ if (placement.equals(BOTTOM) || placement.equals(RIGHT)) ++ { ++ if (rightComponent != null) ++ remove(rightComponent); ++ rightComponent = comp; ++ } ++ else if (placement.equals(LEFT) || placement.equals(TOP)) ++ { ++ if (leftComponent != null) ++ remove(leftComponent); ++ leftComponent = comp; ++ } ++ else if (placement.equals(DIVIDER)) ++ constraints = null; ++ else ++ throw new IllegalArgumentException("Constraints is not a known identifier."); ++ ++ super.addImpl(comp, constraints, index); ++ } ++ invalidate(); ++ layout(); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public AccessibleContext getAccessibleContext() ++ { ++ if (accessibleContext == null) ++ accessibleContext = new AccessibleJSplitPane(); ++ ++ return accessibleContext; ++ } ++ ++ /** ++ * This method returns the bottom component. ++ * ++ * @return The bottom component. ++ */ ++ public Component getBottomComponent() ++ { ++ return rightComponent; ++ } ++ ++ /** ++ * This method returns the location of the divider. This method is passed to ++ * the UI. ++ * ++ * @return The location of the divider. ++ */ ++ public int getDividerLocation() ++ { ++ if (ui != null) ++ return ((SplitPaneUI) ui).getDividerLocation(this); ++ else ++ return -1; ++ } ++ ++ /** ++ * This method returns the size of the divider. ++ * ++ * @return The size of the divider. ++ */ ++ public int getDividerSize() ++ { ++ return dividerSize; ++ } ++ ++ /** ++ * This method returns the last divider location. ++ * ++ * @return The last divider location. ++ */ ++ public int getLastDividerLocation() ++ { ++ return lastDividerLocation; ++ } ++ ++ /** ++ * This method returns the left component. ++ * ++ * @return The left component. ++ */ ++ public Component getLeftComponent() ++ { ++ return leftComponent; ++ } ++ ++ /** ++ * This method returns the maximum divider location. This method is passed ++ * to the UI. ++ * ++ * @return DOCUMENT ME! ++ */ ++ public int getMaximumDividerLocation() ++ { ++ if (ui != null) ++ return ((SplitPaneUI) ui).getMaximumDividerLocation(this); ++ else ++ return -1; ++ } ++ ++ /** ++ * This method returns the minimum divider location. This method is passed ++ * to the UI. ++ * ++ * @return The minimum divider location. ++ */ ++ public int getMinimumDividerLocation() ++ { ++ if (ui != null) ++ return ((SplitPaneUI) ui).getMinimumDividerLocation(this); ++ else ++ return -1; ++ } ++ ++ /** ++ * This method returns the orientation that the JSplitPane is using. ++ * ++ * @return The current orientation. ++ */ ++ public int getOrientation() ++ { ++ return orientation; ++ } ++ ++ /** ++ * This method returns the current resize weight. ++ * ++ * @return The current resize weight. ++ */ ++ public double getResizeWeight() ++ { ++ return resizeWeight; ++ } ++ ++ /** ++ * This method returns the right component. ++ * ++ * @return The right component. ++ */ ++ public Component getRightComponent() ++ { ++ return rightComponent; ++ } ++ ++ /** ++ * This method returns the top component. ++ * ++ * @return The top component. ++ */ ++ public Component getTopComponent() ++ { ++ return leftComponent; ++ } ++ ++ /** ++ * This method returns the UI. ++ * ++ * @return The UI. ++ */ ++ public SplitPaneUI getUI() ++ { ++ return (SplitPaneUI) ui; ++ } ++ ++ /** ++ * This method returns true if the JSplitPane is using a continuousLayout. ++ * ++ * @return True if using a continuousLayout. ++ */ ++ public boolean isContinuousLayout() ++ { ++ return continuousLayout; ++ } ++ ++ /** ++ * This method returns true if the divider has one touch expandable buttons. ++ * ++ * @return True if one touch expandable is used. ++ */ ++ public boolean isOneTouchExpandable() ++ { ++ return oneTouchExpandable; ++ } ++ ++ /** ++ * This method returns true. ++ * ++ * @return true. ++ */ ++ public boolean isValidateRoot() ++ { ++ return true; ++ } ++ ++ /** ++ * This method overrides JComponent's paintChildren so the UI can be ++ * messaged when the children have finished painting. ++ * ++ * @param g The Graphics object to paint with. ++ */ ++ protected void paintChildren(Graphics g) ++ { ++ super.paintChildren(g); ++ if (ui != null) ++ ((SplitPaneUI) ui).finishedPaintingChildren(this, g); ++ } ++ ++ /** ++ * This method returns a String that describes this JSplitPane. The string ++ * is primarily used for debugging purposes. ++ * ++ * @return A String used for debugging purposes. ++ */ ++ protected String paramString() ++ { ++ return "JSplitPane"; ++ } ++ ++ /** ++ * This method removes the given component from the JSplitPane. ++ * ++ * @param component The Component to remove. ++ */ ++ public void remove(Component component) ++ { ++ if (component == leftComponent) ++ leftComponent = null; ++ else if (component == rightComponent) ++ rightComponent = null; ++ super.remove(component); ++ } ++ ++ /** ++ * This method removes the component at the given index. ++ * ++ * @param index The index of the component to remove. ++ */ ++ public void remove(int index) ++ { ++ Component component = getComponent(index); ++ if (component == leftComponent) ++ leftComponent = null; ++ else if (component == rightComponent) ++ rightComponent = null; ++ super.remove(index); ++ } ++ ++ /** ++ * This method removes all components from the JSplitPane. ++ */ ++ public void removeAll() ++ { ++ leftComponent = null; ++ rightComponent = null; ++ super.removeAll(); ++ } ++ ++ /** ++ * This method resets all children of the JSplitPane to their preferred ++ * sizes. ++ */ ++ public void resetToPreferredSizes() ++ { ++ if (ui != null) ++ ((SplitPaneUI) ui).resetToPreferredSizes(this); ++ } ++ ++ /** ++ * This method sets the bottom component. ++ * ++ * @param comp The Component to be placed at the bottom. ++ */ ++ public void setBottomComponent(Component comp) ++ { ++ if (comp != null) ++ add(comp, BOTTOM); ++ else ++ add(new JButton("right button"), BOTTOM); ++ } ++ ++ /** ++ * This method sets the layout mode for the JSplitPane. ++ * ++ * @param newContinuousLayout Whether the JSplitPane is in continuousLayout ++ * mode. ++ */ ++ public void setContinuousLayout(boolean newContinuousLayout) ++ { ++ if (newContinuousLayout != continuousLayout) ++ { ++ boolean oldValue = continuousLayout; ++ continuousLayout = newContinuousLayout; ++ firePropertyChange(CONTINUOUS_LAYOUT_PROPERTY, oldValue, ++ continuousLayout); ++ } ++ } ++ ++ /** ++ * This method sets the location of the divider. A value of 0 sets the ++ * divider to the farthest left. A value of 1 sets the divider to the ++ * farthest right. ++ * ++ * @param proportionalLocation A double that describes the location of the ++ * divider. ++ * ++ * @throws IllegalArgumentException DOCUMENT ME! ++ */ ++ public void setDividerLocation(double proportionalLocation) ++ { ++ if (proportionalLocation > 1 || proportionalLocation < 0) ++ throw new IllegalArgumentException("proportion has to be between 0 and 1."); ++ ++ int max = (orientation == HORIZONTAL_SPLIT) ? getWidth() : getHeight(); ++ setDividerLocation((int) (proportionalLocation * max)); ++ } ++ ++ /** ++ * This method sets the location of the divider. ++ * ++ * @param location The location of the divider. ++ */ ++ public void setDividerLocation(int location) ++ { ++ if (ui != null && location != getDividerLocation()) ++ { ++ int oldLocation = getDividerLocation(); ++ ((SplitPaneUI) ui).setDividerLocation(this, location); ++ firePropertyChange(DIVIDER_LOCATION_PROPERTY, oldLocation, location); ++ } ++ } ++ ++ /** ++ * This method sets the size of the divider. ++ * ++ * @param newSize The size of the divider. ++ */ ++ public void setDividerSize(int newSize) ++ { ++ if (newSize != dividerSize) ++ { ++ int oldSize = dividerSize; ++ dividerSize = newSize; ++ firePropertyChange(DIVIDER_SIZE_PROPERTY, oldSize, dividerSize); ++ } ++ } ++ ++ // This doesn't appear to do anything when set from user side. ++ // so it probably is only used from the UI side to change the ++ // lastDividerLocation var. ++ ++ /** ++ * This method sets the last location of the divider. ++ * ++ * @param newLastLocation The last location of the divider. ++ */ ++ public void setLastDividerLocation(int newLastLocation) ++ { ++ if (newLastLocation != lastDividerLocation) ++ { ++ int oldValue = lastDividerLocation; ++ lastDividerLocation = newLastLocation; ++ firePropertyChange(LAST_DIVIDER_LOCATION_PROPERTY, oldValue, ++ lastDividerLocation); ++ } ++ } ++ ++ /** ++ * This method sets the left component. ++ * ++ * @param comp The left component. ++ */ ++ public void setLeftComponent(Component comp) ++ { ++ if (comp != null) ++ add(comp, LEFT); ++ else ++ add(new JButton("left button"), LEFT); ++ } ++ ++ /** ++ * This method sets whether the divider has one touch expandable buttons. ++ * The one touch expandable buttons can expand the size of either component ++ * to the maximum allowed size. ++ * ++ * @param newValue Whether the divider will have one touch expandable ++ * buttons. ++ */ ++ public void setOneTouchExpandable(boolean newValue) ++ { ++ if (newValue != oneTouchExpandable) ++ { ++ boolean oldValue = oneTouchExpandable; ++ oneTouchExpandable = newValue; ++ firePropertyChange(ONE_TOUCH_EXPANDABLE_PROPERTY, oldValue, ++ oneTouchExpandable); ++ } ++ } ++ ++ /** ++ * This method sets the orientation of the JSplitPane. ++ * ++ * @param orientation The orientation of the JSplitPane. ++ * ++ * @throws IllegalArgumentException DOCUMENT ME! ++ */ ++ public void setOrientation(int orientation) ++ { ++ if (orientation != HORIZONTAL_SPLIT && orientation != VERTICAL_SPLIT) ++ throw new IllegalArgumentException("orientation must be one of VERTICAL_SPLIT, HORIZONTAL_SPLIT"); ++ if (orientation != this.orientation) ++ { ++ int oldOrientation = this.orientation; ++ this.orientation = orientation; ++ firePropertyChange(ORIENTATION_PROPERTY, oldOrientation, ++ this.orientation); ++ } ++ } ++ ++ /** ++ * This method determines how extra space will be distributed among the left ++ * and right components. A value of 0 will allocate all extra space to the ++ * right component. A value of 1 indicates that all extra space will go to ++ * the left component. A value in between 1 and 0 will split the space ++ * accordingly. ++ * ++ * @param value The resize weight. ++ */ ++ public void setResizeWeight(double value) ++ { ++ resizeWeight = value; ++ } ++ ++ /** ++ * This method sets the right component. ++ * ++ * @param comp The right component. ++ */ ++ public void setRightComponent(Component comp) ++ { ++ if (comp != null) ++ add(comp, RIGHT); ++ else ++ add(new JButton("right button"), RIGHT); ++ } ++ ++ /** ++ * This method sets the top component. ++ * ++ * @param comp The top component. ++ */ ++ public void setTopComponent(Component comp) ++ { ++ if (comp != null) ++ add(comp, TOP); ++ else ++ add(new JButton("left button"), TOP); ++ } ++ ++ /** ++ * This method sets the UI used by the JSplitPane. ++ * ++ * @param ui The UI to use. ++ */ ++ public void setUI(SplitPaneUI ui) ++ { ++ super.setUI(ui); ++ } ++ ++ /** ++ * This method resets the UI to the one specified by the current Look and ++ * Feel. ++ */ ++ public void updateUI() ++ { ++ setUI((SplitPaneUI) UIManager.getUI(this)); ++ invalidate(); ++ repaint(); ++ } ++ ++ /** ++ * This method returns a string identifier to determine which UI class it ++ * needs. ++ * ++ * @return A string that identifies it's UI class. ++ */ ++ public String getUIClassID() ++ { ++ return "SplitPaneUI"; ++ } ++} +Index: javax/swing/JTabbedPane.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JTabbedPane.java,v +retrieving revision 1.2 +diff -u -r1.2 JTabbedPane.java +--- javax/swing/JTabbedPane.java 11 Jun 2003 13:20:39 -0000 1.2 ++++ javax/swing/JTabbedPane.java 6 Sep 2004 16:35:59 -0000 +@@ -1,5 +1,5 @@ +-/* JTabbedPane.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++/* JTabbedPane.java -- ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,96 +35,1459 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing; + ++import java.awt.Color; + import java.awt.Component; ++import java.awt.Point; ++import java.awt.Rectangle; ++import java.awt.event.MouseEvent; ++import java.io.Serializable; + import java.util.Vector; + import javax.accessibility.Accessible; + import javax.accessibility.AccessibleContext; ++import javax.accessibility.AccessibleRole; ++import javax.accessibility.AccessibleSelection; + import javax.swing.event.ChangeEvent; + import javax.swing.event.ChangeListener; + import javax.swing.plaf.TabbedPaneUI; ++import javax.swing.plaf.UIResource; ++ + +-public class JTabbedPane extends JComponent implements Accessible, SwingConstants ++/** ++ *

    ++ * This is a container for components. One component is displayed at a time. ++ * Users can switch between components by clicking on tabs. ++ *

    ++ * ++ *

    ++ * Tabs can be oriented in several ways. They can be above, below, left and ++ * right of the component. Tabs can either wrap around (by creating multiple ++ * rows of tabs) or they can be scrolled (where only a subset of the tabs ++ * can be seen at once). More tabs can be added by calling the ++ * add/addTab/insertTab methods. ++ *

    ++ */ ++public class JTabbedPane extends JComponent implements Serializable, ++ Accessible, ++ SwingConstants + { +- class Tab ++ /** ++ * DOCUMENT ME! ++ */ ++ protected class AccessibleJTabbedPane extends JComponent.AccessibleJComponent ++ implements AccessibleSelection, ChangeListener ++ { ++ /** DOCUMENT ME! */ ++ private static final long serialVersionUID = 7610530885966830483L; ++ ++ /** ++ * Creates a new AccessibleJTabbedPane object. ++ */ ++ public AccessibleJTabbedPane() ++ { ++ super(); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param e DOCUMENT ME! ++ */ ++ public void stateChanged(ChangeEvent e) + { +- Icon icon; +- String name, descr; +- Component tab; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public AccessibleRole getAccessibleRole() ++ { ++ return null; ++ } + +- Tab(String name, +- Icon icon, +- Component tab, +- String descr) +- { +- this.name = name; +- this.icon = icon; +- this.tab = tab; +- this.descr = descr; +- } ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public int getAccessibleChildrenCount() ++ { ++ return 0; + } +- +- private Vector tabs = new Vector(); + +- public JTabbedPane() ++ /** ++ * DOCUMENT ME! ++ * ++ * @param i DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public Accessible getAccessibleChild(int i) + { ++ return null; + } + +- public void addTab(String name, +- Component panel) ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public AccessibleSelection getAccessibleSelection() + { +- addTab(name, null, panel, null); ++ return null; + } +- public void addTab(String name, +- Icon icon, +- Component panel) ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param p DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public Accessible getAccessibleAt(Point p) + { +- addTab(name, icon, panel, null); ++ return null; + } +- public void addTab(String name, +- Icon icon, +- Component panel, +- String descr) ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public int getAccessibleSelectionCount() + { +- tabs.addElement(new Tab(name, icon, panel, descr)); ++ return 0; + } + +- public int getTabCount() ++ /** ++ * DOCUMENT ME! ++ * ++ * @param i DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public Accessible getAccessibleSelection(int i) + { +- return tabs.size(); ++ return null; + } +- public Component getComponentAt(int i) ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param i DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public boolean isAccessibleChildSelected(int i) + { +- Tab t = (Tab) tabs.elementAt(i); +- return t.tab; ++ return false; + } +- +- public String getUIClassID() +- { return "JTabbedPane"; } + ++ /** ++ * DOCUMENT ME! ++ * ++ * @param i DOCUMENT ME! ++ */ ++ public void addAccessibleSelection(int i) ++ { ++ } + +- public void setUI(TabbedPaneUI ui) { +- super.setUI(ui); ++ /** ++ * DOCUMENT ME! ++ * ++ * @param i DOCUMENT ME! ++ */ ++ public void removeAccessibleSelection(int i) ++ { + } +- +- public TabbedPaneUI getUI() { +- return (TabbedPaneUI)ui; ++ ++ /** ++ * DOCUMENT ME! ++ */ ++ public void clearAccessibleSelection() ++ { + } +- +- public void updateUI() ++ ++ /** ++ * DOCUMENT ME! ++ */ ++ public void selectAllAccessibleSelection() + { +- setUI((TabbedPaneUI)UIManager.getUI(this)); + } +- +- public AccessibleContext getAccessibleContext() ++ } ++ ++ /** ++ * A helper class that listens for changes to the model. ++ */ ++ protected class ModelListener implements ChangeListener, Serializable ++ { ++ /** DOCUMENT ME! */ ++ private static final long serialVersionUID = 497359819958114132L; ++ ++ /** ++ * Creates a new ModelListener object. ++ */ ++ protected ModelListener() + { +- return null; + } +- +- protected String paramString() ++ ++ /** ++ * This method is called whenever the model is changed. ++ * ++ * @param e The ChangeEvent that is passed from the model. ++ */ ++ public void stateChanged(ChangeEvent e) + { +- return "JTabbedPane"; ++ // Propagate to our listeners. ++ fireStateChanged(); + } ++ } ++ ++ /** ++ * A private class that holds all the information for each tab. ++ */ ++ private class Page ++ { ++ /** The tooltip string. */ ++ private String tip; ++ ++ /** The component associated with the tab. */ ++ private Component component; ++ ++ /** The active icon associated with the tab. */ ++ private transient Icon icon; ++ ++ /** The disabled icon associated with the tab. */ ++ private transient Icon disabledIcon; ++ ++ /** The tab's enabled status. */ ++ private transient boolean enabled = true; ++ ++ /** The string painted on the tab. */ ++ private transient String title; ++ ++ /** The background color of the tab. */ ++ private transient Color bg; ++ ++ /** The foreground color of the tab. */ ++ private transient Color fg; ++ ++ /** The mnemonic associated with the tab. */ ++ private transient int mnemonicKey; ++ ++ /** The index of the underlined character in the string. */ ++ private transient int underlinedChar = -1; ++ ++ /** ++ * Creates a new data storage for the tab. ++ * ++ * @param title The string displayed on the tab. ++ * @param icon The active icon displayed on the tab. ++ * @param component The component associated with the tab. ++ * @param tip The tooltip associated with the tab. ++ */ ++ protected Page(String title, Icon icon, Component component, String tip) ++ { ++ this.title = title; ++ this.icon = icon; ++ this.component = component; ++ this.tip = tip; ++ } ++ ++ /** ++ * This method returns the component associated with the tab. ++ * ++ * @return The component associated with the tab. ++ */ ++ public Component getComponent() ++ { ++ return component; ++ } ++ ++ /** ++ * This method sets the component associated with the tab. ++ * ++ * @param c The component associated with the tab. ++ */ ++ public void setComponent(Component c) ++ { ++ remove(component); ++ this.component = c; ++ add(c); ++ } ++ ++ /** ++ * This method returns the tooltip string. ++ * ++ * @return The tooltip string. ++ */ ++ public String getTip() ++ { ++ return tip; ++ } ++ ++ /** ++ * This method sets the tooltip string. ++ * ++ * @param tip The tooltip string. ++ */ ++ public void setTip(String tip) ++ { ++ this.tip = tip; ++ } ++ ++ /** ++ * This method returns the background color. ++ * ++ * @return The background color. ++ */ ++ public Color getBackground() ++ { ++ return bg; ++ } ++ ++ /** ++ * This method sets the background color. ++ * ++ * @param background The background color. ++ */ ++ public void setBackground(Color background) ++ { ++ bg = background; ++ } ++ ++ /** ++ * This method returns the foreground color. ++ * ++ * @return The foreground color. ++ */ ++ public Color getForeground() ++ { ++ return fg; ++ } ++ ++ /** ++ * This method sets the foreground color. ++ * ++ * @param foreground The foreground color. ++ */ ++ public void setForeground(Color foreground) ++ { ++ fg = foreground; ++ } ++ ++ /** ++ * This method returns the title associated with the tab. ++ * ++ * @return The title of the tab. ++ */ ++ public String getTitle() ++ { ++ return title; ++ } ++ ++ /** DOCUMENT ME! */ ++ private static final long serialVersionUID = 1614381073220130939L; ++ ++ /** ++ * This method sets the title of the tab. ++ * ++ * @param text The title of the tab. ++ */ ++ public void setTitle(String text) ++ { ++ title = text; ++ if (title != null && title.length() <= underlinedChar) ++ setDisplayedMnemonicIndex(title.length() - 1); ++ } ++ ++ /** ++ * This method returns the active icon. ++ * ++ * @return The active icon. ++ */ ++ public Icon getIcon() ++ { ++ return icon; ++ } ++ ++ /** ++ * This method sets the active icon. ++ * ++ * @param icon The active icon. ++ */ ++ public void setIcon(Icon icon) ++ { ++ this.icon = icon; ++ } ++ ++ /** ++ * This method returns the disabled icon. ++ * ++ * @return The disabled icon. ++ */ ++ public Icon getDisabledIcon() ++ { ++ if (disabledIcon == null && icon instanceof ImageIcon) ++ setDisabledIcon(icon); ++ return disabledIcon; ++ } ++ ++ /** ++ * This method sets the disabled icon. ++ * ++ * @param disabledIcon The disabled icon. ++ */ ++ public void setDisabledIcon(Icon disabledIcon) ++ { ++ this.disabledIcon = disabledIcon; ++ } ++ ++ /** ++ * This method returns whether the tab is enabled. ++ * ++ * @return Whether the tab is enabled. ++ */ ++ public boolean isEnabled() ++ { ++ return enabled; ++ } ++ ++ /** ++ * This method sets whether the tab is enabled. ++ * ++ * @param enabled Whether this tab is enabled. ++ */ ++ public void setEnabled(boolean enabled) ++ { ++ this.enabled = enabled; ++ } ++ ++ /** ++ * This method returns the mnemonic. ++ * ++ * @return The mnemonic. ++ */ ++ public int getMnemonic() ++ { ++ return (int) mnemonicKey; ++ } ++ ++ /** ++ * This method sets the mnemonic. If the title is set, it will update the ++ * mnemonicIndex. ++ * ++ * @param key The mnemonic. ++ */ ++ public void setMnemonic(int key) ++ { ++ setMnemonic((char) key); ++ } ++ ++ /** ++ * This method sets the mnemonic. If the title is set, it will update the ++ * mnemonicIndex. ++ * ++ * @param aChar The mnemonic. ++ */ ++ public void setMnemonic(char aChar) ++ { ++ mnemonicKey = aChar; ++ if (title != null) ++ setDisplayedMnemonicIndex(title.indexOf(mnemonicKey)); ++ } ++ ++ /** ++ * This method returns the mnemonicIndex. ++ * ++ * @return The mnemonicIndex. ++ */ ++ public int getDisplayedMnemonicIndex() ++ { ++ return underlinedChar; ++ } ++ ++ /** ++ * This method sets the mnemonicIndex. ++ * ++ * @param index The mnemonicIndex. ++ * ++ * @throws IllegalArgumentException If index less than -1 || index greater ++ * or equal to title.length. ++ */ ++ public void setDisplayedMnemonicIndex(int index) ++ throws IllegalArgumentException ++ { ++ if (index < -1 || title != null && index >= title.length()) ++ throw new IllegalArgumentException(); ++ ++ if (title == null || title.charAt(index) != mnemonicKey) ++ index = -1; ++ ++ underlinedChar = index; ++ } ++ } ++ ++ /** Fired in a PropertyChangeEvent when the "model" property changes. */ ++ public static final String MODEL_CHANGED_PROPERTY = "model"; ++ ++ /** ++ * Fired in a PropertyChangeEvent when the "tabPlacement" property changes. ++ */ ++ public static final String TAB_PLACEMENT_CHANGED_PROPERTY = "tabPlacement"; ++ ++ /** ++ * Fired in a PropertyChangeEvent when the "tabLayoutPolicy" property ++ * changes. ++ */ ++ public static final String TAB_LAYOUT_POLICY_CHANGED_PROPERTY = "tabLayoutPolicy"; ++ ++ /** The changeEvent used to fire changes to listeners. */ ++ protected ChangeEvent changeEvent; ++ ++ /** The listener that listens to the model. */ ++ protected ChangeListener changeListener; ++ ++ /** The model that describes this JTabbedPane. */ ++ protected SingleSelectionModel model; ++ ++ /** Indicates that the TabbedPane is in scrolling mode. */ ++ public static final int SCROLL_TAB_LAYOUT = 1; ++ ++ /** Indicates that the TabbedPane is in wrap mode. */ ++ public static final int WRAP_TAB_LAYOUT = 0; ++ ++ /** The current tabPlacement of the TabbedPane. */ ++ protected int tabPlacement = SwingConstants.TOP; ++ ++ /** The current tabLayoutPolicy of the TabbedPane. */ ++ private transient int layoutPolicy; ++ ++ /** The list of tabs associated with the TabbedPane. */ ++ transient Vector tabs = new Vector(); ++ ++ /** ++ * Creates a new JTabbedPane object with tabs on top and using wrap tab ++ * layout. ++ */ ++ public JTabbedPane() ++ { ++ this(SwingConstants.TOP, WRAP_TAB_LAYOUT); ++ } ++ ++ /** ++ * Creates a new JTabbedPane object using wrap tab layout and the given ++ * tabPlacement. ++ * ++ * @param tabPlacement Where the tabs will be placed. ++ */ ++ public JTabbedPane(int tabPlacement) ++ { ++ this(tabPlacement, WRAP_TAB_LAYOUT); ++ } ++ ++ /** ++ * Creates a new JTabbedPane object with the given tabPlacement and ++ * tabLayoutPolicy. ++ * ++ * @param tabPlacement Where the tabs will be placed. ++ * @param tabLayoutPolicy The way tabs will be placed. ++ * ++ * @throws IllegalArgumentException If tabLayoutPolicy or tabPlacement are ++ * not valid. ++ */ ++ public JTabbedPane(int tabPlacement, int tabLayoutPolicy) ++ { ++ if (tabPlacement != TOP && tabPlacement != BOTTOM && tabPlacement != RIGHT ++ && tabPlacement != LEFT) ++ throw new IllegalArgumentException("tabPlacement is not valid."); ++ if (tabLayoutPolicy != SCROLL_TAB_LAYOUT ++ && tabLayoutPolicy != WRAP_TAB_LAYOUT) ++ throw new IllegalArgumentException("tabLayoutPolicy is not valid."); ++ this.tabPlacement = tabPlacement; ++ layoutPolicy = tabLayoutPolicy; ++ ++ changeEvent = new ChangeEvent(this); ++ changeListener = createChangeListener(); ++ ++ model = new DefaultSingleSelectionModel(); ++ model.addChangeListener(changeListener); ++ ++ updateUI(); ++ } ++ ++ /** ++ * This method returns the UI used to display the JTabbedPane. ++ * ++ * @return The UI used to display the JTabbedPane. ++ */ ++ public TabbedPaneUI getUI() ++ { ++ return (TabbedPaneUI) ui; ++ } ++ ++ /** ++ * This method sets the UI used to display the JTabbedPane. ++ * ++ * @param ui The UI used to display the JTabbedPane. ++ */ ++ public void setUI(TabbedPaneUI ui) ++ { ++ super.setUI(ui); ++ } ++ ++ /** ++ * This method restores the UI to the defaults given by the UIManager. ++ */ ++ public void updateUI() ++ { ++ setUI((TabbedPaneUI) UIManager.getUI(this)); ++ invalidate(); ++ } ++ ++ /** ++ * This method returns a string identifier that is used to determine which ++ * UI will be used with the JTabbedPane. ++ * ++ * @return A string identifier for the UI. ++ */ ++ public String getUIClassID() ++ { ++ return "TabbedPaneUI"; ++ } ++ ++ /** ++ * This method creates a ChangeListener that is used to listen to the model ++ * for events. ++ * ++ * @return A ChangeListener to listen to the model. ++ */ ++ protected ChangeListener createChangeListener() ++ { ++ return new ModelListener(); ++ } ++ ++ /** ++ * This method adds a ChangeListener to the JTabbedPane. ++ * ++ * @param l The ChangeListener to add. ++ */ ++ public void addChangeListener(ChangeListener l) ++ { ++ listenerList.add(ChangeListener.class, l); ++ } ++ ++ /** ++ * This method removes a ChangeListener to the JTabbedPane. ++ * ++ * @param l The ChangeListener to remove. ++ */ ++ public void removeChangeListener(ChangeListener l) ++ { ++ listenerList.remove(ChangeListener.class, l); ++ } ++ ++ /** ++ * This method fires a ChangeEvent to all the JTabbedPane's ChangeListeners. ++ */ ++ protected void fireStateChanged() ++ { ++ Object[] changeListeners = listenerList.getListenerList(); ++ if (changeEvent == null) ++ changeEvent = new ChangeEvent(this); ++ for (int i = changeListeners.length - 2; i >= 0; i -= 2) ++ { ++ if (changeListeners[i] == ChangeListener.class) ++ ((ChangeListener) changeListeners[i + 1]).stateChanged(changeEvent); ++ } ++ } ++ ++ /** ++ * This method returns all ChangeListeners registered with the JTabbedPane. ++ * ++ * @return The ChangeListeners registered with the JTabbedPane. ++ */ ++ public ChangeListener[] getChangeListeners() ++ { ++ return (ChangeListener[]) super.getListeners(ChangeListener.class); ++ } ++ ++ /** ++ * This method returns the model used with the JTabbedPane. ++ * ++ * @return The JTabbedPane's model. ++ */ ++ public SingleSelectionModel getModel() ++ { ++ return model; ++ } ++ ++ /** ++ * This method changes the model property of the JTabbedPane. ++ * ++ * @param model The new model to use with the JTabbedPane. ++ */ ++ public void setModel(SingleSelectionModel model) ++ { ++ if (model != this.model) ++ { ++ SingleSelectionModel oldModel = this.model; ++ this.model.removeChangeListener(changeListener); ++ this.model = model; ++ this.model.addChangeListener(changeListener); ++ firePropertyChange(MODEL_CHANGED_PROPERTY, oldModel, this.model); ++ } ++ } ++ ++ /** ++ * This method returns the tabPlacement. ++ * ++ * @return The tabPlacement used with the JTabbedPane. ++ */ ++ public int getTabPlacement() ++ { ++ return tabPlacement; ++ } ++ ++ /** ++ * This method changes the tabPlacement property of the JTabbedPane. ++ * ++ * @param tabPlacement The tabPlacement to use. ++ * ++ * @throws IllegalArgumentException If tabPlacement is not one of TOP, ++ * BOTTOM, LEFT, or RIGHT. ++ */ ++ public void setTabPlacement(int tabPlacement) ++ { ++ if (tabPlacement != TOP && tabPlacement != BOTTOM && tabPlacement != RIGHT ++ && tabPlacement != LEFT) ++ throw new IllegalArgumentException("tabPlacement is not valid."); ++ if (tabPlacement != this.tabPlacement) ++ { ++ int oldPlacement = this.tabPlacement; ++ this.tabPlacement = tabPlacement; ++ firePropertyChange(TAB_PLACEMENT_CHANGED_PROPERTY, oldPlacement, ++ this.tabPlacement); ++ } ++ } ++ ++ /** ++ * This method returns the tabLayoutPolicy. ++ * ++ * @return The tabLayoutPolicy. ++ */ ++ public int getTabLayoutPolicy() ++ { ++ return layoutPolicy; ++ } ++ ++ /** ++ * This method changes the tabLayoutPolicy property of the JTabbedPane. ++ * ++ * @param tabLayoutPolicy The tabLayoutPolicy to use. ++ * ++ * @throws IllegalArgumentException If tabLayoutPolicy is not one of ++ * SCROLL_TAB_LAYOUT or WRAP_TAB_LAYOUT. ++ */ ++ public void setTabLayoutPolicy(int tabLayoutPolicy) ++ { ++ if (tabLayoutPolicy != SCROLL_TAB_LAYOUT ++ && tabLayoutPolicy != WRAP_TAB_LAYOUT) ++ throw new IllegalArgumentException("tabLayoutPolicy is not valid."); ++ if (tabLayoutPolicy != layoutPolicy) ++ { ++ int oldPolicy = layoutPolicy; ++ layoutPolicy = tabLayoutPolicy; ++ firePropertyChange(TAB_LAYOUT_POLICY_CHANGED_PROPERTY, oldPolicy, ++ layoutPolicy); ++ } ++ } ++ ++ /** ++ * This method returns the index of the tab that is currently selected. ++ * ++ * @return The index of the selected tab. ++ */ ++ public int getSelectedIndex() ++ { ++ return model.getSelectedIndex(); ++ } ++ ++ /** ++ * This method checks the index. ++ * ++ * @param index The index to check. ++ * @param start DOCUMENT ME! ++ * @param end DOCUMENT ME! ++ * ++ * @throws IndexOutOfBoundsException DOCUMENT ME! ++ */ ++ private void checkIndex(int index, int start, int end) ++ { ++ if (index < start || index >= end) ++ throw new IndexOutOfBoundsException("Index < " + start + " || Index >= " ++ + end); ++ } ++ ++ /** ++ * This method sets the selected index. This method will hide the old ++ * component and show the new component. ++ * ++ * @param index The index to set it at. ++ */ ++ public void setSelectedIndex(int index) ++ { ++ checkIndex(index, -1, tabs.size()); ++ if (index != getSelectedIndex()) ++ { ++ if (getSelectedIndex() != -1 && getSelectedComponent() != null) ++ getSelectedComponent().hide(); ++ if (index != -1 && getComponentAt(index) != null) ++ getComponentAt(index).show(); ++ model.setSelectedIndex(index); ++ } ++ } ++ ++ /** ++ * This method returns the component at the selected index. ++ * ++ * @return The component at the selected index. ++ */ ++ public Component getSelectedComponent() ++ { ++ return getComponentAt(getSelectedIndex()); ++ } ++ ++ /** ++ * This method sets the component at the selected index. ++ * ++ * @param c The component associated with the selected index. ++ */ ++ public void setSelectedComponent(Component c) ++ { ++ if (c.getParent() == this) ++ setSelectedIndex(indexOfComponent(c)); ++ else ++ setComponentAt(getSelectedIndex(), c); ++ } ++ ++ /** ++ * This method inserts tabs into JTabbedPane. This includes adding the ++ * component to the JTabbedPane and hiding it. ++ * ++ * @param title The title of the tab. ++ * @param icon The tab's icon. ++ * @param component The component associated with the tab. ++ * @param tip The tooltip for the tab. ++ * @param index The index to insert the tab at. ++ */ ++ public void insertTab(String title, Icon icon, Component component, ++ String tip, int index) ++ { ++ Page p = new Page(title, icon, component, tip); ++ tabs.insertElementAt(p, index); ++ ++ // Hide the component so we don't see it. Do it before we parent it ++ // so we don't trigger a repaint. ++ if (component != null) ++ { ++ component.hide(); ++ super.add(component); ++ } ++ ++ if (getSelectedIndex() == -1) ++ setSelectedIndex(0); ++ ++ layout(); ++ repaint(); ++ } ++ ++ /** ++ * This method adds a tab to the JTabbedPane. ++ * ++ * @param title The title of the tab. ++ * @param icon The icon for the tab. ++ * @param component The associated component. ++ * @param tip The associated tooltip. ++ */ ++ public void addTab(String title, Icon icon, Component component, String tip) ++ { ++ insertTab(title, icon, component, tip, tabs.size()); ++ } ++ ++ /** ++ * This method adds a tab to the JTabbedPane. ++ * ++ * @param title The title of the tab. ++ * @param icon The icon for the tab. ++ * @param component The associated component. ++ */ ++ public void addTab(String title, Icon icon, Component component) ++ { ++ insertTab(title, icon, component, null, tabs.size()); ++ } ++ ++ /** ++ * This method adds a tab to the JTabbedPane. ++ * ++ * @param title The title of the tab. ++ * @param component The associated component. ++ */ ++ public void addTab(String title, Component component) ++ { ++ insertTab(title, null, component, null, tabs.size()); ++ } ++ ++ /** ++ * This method adds a tab to the JTabbedPane. The title of the tab is the ++ * Component's name. If the Component is an instance of UIResource, it ++ * doesn't add the tab and instead add the component directly to the ++ * JTabbedPane. ++ * ++ * @param component The associated component. ++ * ++ * @return The Component that was added. ++ */ ++ public Component add(Component component) ++ { ++ if (component instanceof UIResource) ++ super.add(component); ++ else ++ insertTab(component.getName(), null, component, null, tabs.size()); ++ return component; ++ } ++ ++ /** ++ * This method adds a tab to the JTabbedPane. If the Component is an ++ * instance of UIResource, it doesn't add the tab and instead add the ++ * component directly to the JTabbedPane. ++ * ++ * @param title The title of the tab. ++ * @param component The associated component. ++ * ++ * @return The Component that was added. ++ */ ++ public Component add(String title, Component component) ++ { ++ if (component instanceof UIResource) ++ super.add(component); ++ else ++ insertTab(title, null, component, null, tabs.size()); ++ return component; ++ } ++ ++ /** ++ * This method adds a tab to the JTabbedPane. If the Component is an ++ * instance of UIResource, it doesn't add the tab and instead add the ++ * component directly to the JTabbedPane. ++ * ++ * @param component The associated component. ++ * @param index The index to insert the tab at. ++ * ++ * @return The Component that was added. ++ */ ++ public Component add(Component component, int index) ++ { ++ if (component instanceof UIResource) ++ super.add(component); ++ else ++ insertTab(component.getName(), null, component, null, index); ++ return component; ++ } ++ ++ /** ++ * This method adds a tab to the JTabbedPane. If the Component is an ++ * instance of UIResource, it doesn't add the tab and instead add the ++ * component directly to the JTabbedPane. If the constraints object is an ++ * icon, it will be used as the tab's icon. If the constraints object is a ++ * string, we will use it as the title. ++ * ++ * @param component The associated component. ++ * @param constraints The constraints object. ++ */ ++ public void add(Component component, Object constraints) ++ { ++ add(component, constraints, tabs.size()); ++ } ++ ++ /** ++ * This method adds a tab to the JTabbedPane. If the Component is an ++ * instance of UIResource, it doesn't add the tab and instead add the ++ * component directly to the JTabbedPane. If the constraints object is an ++ * icon, it will be used as the tab's icon. If the constraints object is a ++ * string, we will use it as the title. ++ * ++ * @param component The associated component. ++ * @param constraints The constraints object. ++ * @param index The index to insert the tab at. ++ */ ++ public void add(Component component, Object constraints, int index) ++ { ++ if (component instanceof UIResource) ++ super.add(component); ++ else ++ { ++ if (constraints instanceof String) ++ insertTab((String) constraints, null, component, null, index); ++ else ++ insertTab(component.getName(), ++ (constraints instanceof Icon) ? (Icon) constraints : null, ++ component, null, index); ++ } ++ } ++ ++ /** ++ * The tab and it's associated component are removed. After the component ++ * has been removed from the JTabbedPane, it's set visible to ensure that ++ * it can be seen. ++ * ++ * @param index The index of the tab to remove. ++ */ ++ public void removeTabAt(int index) ++ { ++ checkIndex(index, 0, tabs.size()); ++ Component c = getComponentAt(index); ++ super.remove(index); ++ c.show(); ++ tabs.remove(index); ++ } ++ ++ /** ++ * This method removes the component from the JTabbedPane. After the ++ * component has been removed from the JTabbedPane, it's set visible to ++ * ensure that it can be seen. ++ * ++ * @param component The Component to remove. ++ */ ++ public void remove(Component component) ++ { ++ // This simply removes the component. ++ int index = indexOfComponent(component); ++ super.remove(component); ++ component.show(); ++ setComponentAt(index, null); ++ } ++ ++ /** ++ * This method removes the tab and component from the JTabbedPane. It simply ++ * calls removeTabAt(int index). ++ * ++ * @param index The index of the tab to remove. ++ */ ++ public void remove(int index) ++ { ++ removeTabAt(index); ++ } ++ ++ /** ++ * This method removes all tabs and associated components from the ++ * JTabbedPane. ++ */ ++ public void removeAll() ++ { ++ for (int i = tabs.size() - 1; i >= 0; i--) ++ removeTabAt(i); ++ } ++ ++ /** ++ * This method returns how many tabs are in the JTabbedPane. ++ * ++ * @return The number of tabs in the JTabbedPane. ++ */ ++ public int getTabCount() ++ { ++ return tabs.size(); ++ } ++ ++ /** ++ * This method returns the number of runs used to paint the JTabbedPane. ++ * ++ * @return The number of runs. ++ */ ++ public int getTabRunCount() ++ { ++ return ((TabbedPaneUI) ui).getTabRunCount(this); ++ } ++ ++ /** ++ * This method returns the tab title given the index. ++ * ++ * @param index The index of the tab. ++ * ++ * @return The title for the tab. ++ */ ++ public String getTitleAt(int index) ++ { ++ checkIndex(index, 0, tabs.size()); ++ return ((Page) tabs.elementAt(index)).getTitle(); ++ } ++ ++ /** ++ * This method returns the active icon given the index. ++ * ++ * @param index The index of the tab. ++ * ++ * @return The active icon for the tab. ++ */ ++ public Icon getIconAt(int index) ++ { ++ checkIndex(index, 0, tabs.size()); ++ return ((Page) tabs.elementAt(index)).getIcon(); ++ } ++ ++ /** ++ * This method returns the disabled icon given the index. ++ * ++ * @param index The index of the tab. ++ * ++ * @return The disabled icon for the tab. ++ */ ++ public Icon getDisabledIconAt(int index) ++ { ++ checkIndex(index, 0, tabs.size()); ++ return ((Page) tabs.elementAt(index)).getDisabledIcon(); ++ } ++ ++ /** ++ * This method returns the tooltip string for the tab. ++ * ++ * @param index The index of the tab. ++ * ++ * @return The tooltip string for the tab. ++ */ ++ public String getToolTipTextAt(int index) ++ { ++ checkIndex(index, 0, tabs.size()); ++ return ((Page) tabs.elementAt(index)).getTip(); ++ } ++ ++ /** ++ * This method returns the foreground color for the tab. ++ * ++ * @param index The index of the tab. ++ * ++ * @return The foreground color for the tab. ++ */ ++ public Color getForegroundAt(int index) ++ { ++ checkIndex(index, 0, tabs.size()); ++ return ((Page) tabs.elementAt(index)).getForeground(); ++ } ++ ++ /** ++ * This method returns the background color for the tab. ++ * ++ * @param index The index of the tab. ++ * ++ * @return The background color for the tab. ++ */ ++ public Color getBackgroundAt(int index) ++ { ++ checkIndex(index, 0, tabs.size()); ++ return ((Page) tabs.elementAt(index)).getBackground(); ++ } ++ ++ /** ++ * This method returns the component associated with the tab. ++ * ++ * @param index The index of the tab. ++ * ++ * @return The component associated with the tab. ++ */ ++ public Component getComponentAt(int index) ++ { ++ checkIndex(index, 0, tabs.size()); ++ return ((Page) tabs.elementAt(index)).getComponent(); ++ } ++ ++ /** ++ * This method returns whether this tab is enabled. Disabled tabs cannot be ++ * selected. ++ * ++ * @param index The index of the tab. ++ * ++ * @return Whether the tab is enabled. ++ */ ++ public boolean isEnabledAt(int index) ++ { ++ checkIndex(index, 0, tabs.size()); ++ return ((Page) tabs.elementAt(index)).isEnabled(); ++ } ++ ++ /** ++ * This method returns the mnemonic for the tab. ++ * ++ * @param tabIndex The index of the tab. ++ * ++ * @return The mnemonic for the tab. ++ */ ++ public int getMnemonicAt(int tabIndex) ++ { ++ checkIndex(tabIndex, 0, tabs.size()); ++ return ((Page) tabs.elementAt(tabIndex)).getMnemonic(); ++ } ++ ++ /** ++ * This method returns the mnemonic index for the tab. ++ * ++ * @param tabIndex The index of the tab. ++ * ++ * @return The mnemonic index for the tab. ++ */ ++ public int getDisplayedMnemonicIndexAt(int tabIndex) ++ { ++ checkIndex(tabIndex, 0, tabs.size()); ++ return ((Page) tabs.elementAt(tabIndex)).getDisplayedMnemonicIndex(); ++ } ++ ++ /** ++ * This method returns the bounds of the tab given the index. ++ * ++ * @param index The index of the tab. ++ * ++ * @return A rectangle describing the bounds of the tab. ++ */ ++ public Rectangle getBoundsAt(int index) ++ { ++ checkIndex(index, 0, tabs.size()); ++ return ((TabbedPaneUI) ui).getTabBounds(this, index); ++ } ++ ++ /** ++ * This method sets the title of the tab. ++ * ++ * @param index The index of the tab. ++ * @param title The new title. ++ */ ++ public void setTitleAt(int index, String title) ++ { ++ checkIndex(index, 0, tabs.size()); ++ ((Page) tabs.elementAt(index)).setTitle(title); ++ } ++ ++ /** ++ * This method sets the icon of the tab. ++ * ++ * @param index The index of the tab. ++ * @param icon The new icon. ++ */ ++ public void setIconAt(int index, Icon icon) ++ { ++ checkIndex(index, 0, tabs.size()); ++ ((Page) tabs.elementAt(index)).setIcon(icon); ++ } ++ ++ /** ++ * This method sets the disabled icon of the tab. ++ * ++ * @param index The index of the tab. ++ * @param disabledIcon The new disabled icon. ++ */ ++ public void setDisabledIconAt(int index, Icon disabledIcon) ++ { ++ checkIndex(index, 0, tabs.size()); ++ ((Page) tabs.elementAt(index)).setDisabledIcon(disabledIcon); ++ } ++ ++ /** ++ * This method sets the tooltip text of the tab. ++ * ++ * @param index The index of the tab. ++ * @param toolTipText The tooltip text. ++ */ ++ public void setToolTipTextAt(int index, String toolTipText) ++ { ++ checkIndex(index, 0, tabs.size()); ++ ((Page) tabs.elementAt(index)).setTip(toolTipText); ++ } ++ ++ /** ++ * This method sets the background color of the tab. ++ * ++ * @param index The index of the tab. ++ * @param background The background color of the tab. ++ */ ++ public void setBackgroundAt(int index, Color background) ++ { ++ checkIndex(index, 0, tabs.size()); ++ ((Page) tabs.elementAt(index)).setBackground(background); ++ } ++ ++ /** ++ * This method sets the foreground color of the tab. ++ * ++ * @param index The index of the tab. ++ * @param foreground The foreground color of the tab. ++ */ ++ public void setForegroundAt(int index, Color foreground) ++ { ++ checkIndex(index, 0, tabs.size()); ++ ((Page) tabs.elementAt(index)).setForeground(foreground); ++ } ++ ++ /** ++ * This method sets whether the tab is enabled. ++ * ++ * @param index The index of the tab. ++ * @param enabled Whether the tab is enabled. ++ */ ++ public void setEnabledAt(int index, boolean enabled) ++ { ++ checkIndex(index, 0, tabs.size()); ++ ((Page) tabs.elementAt(index)).setEnabled(enabled); ++ } ++ ++ /** ++ * This method sets the component associated with the tab. ++ * ++ * @param index The index of the tab. ++ * @param component The component associated with the tab. ++ */ ++ public void setComponentAt(int index, Component component) ++ { ++ checkIndex(index, 0, tabs.size()); ++ ((Page) tabs.elementAt(index)).setComponent(component); ++ } ++ ++ /** ++ * This method sets the displayed mnemonic index of the tab. ++ * ++ * @param tabIndex The index of the tab. ++ * @param mnemonicIndex The mnemonic index. ++ */ ++ public void setDisplayedMnemonicIndexAt(int tabIndex, int mnemonicIndex) ++ { ++ checkIndex(tabIndex, 0, tabs.size()); ++ ((Page) tabs.elementAt(tabIndex)).setDisplayedMnemonicIndex(mnemonicIndex); ++ } ++ ++ /** ++ * This method sets the mnemonic for the tab. ++ * ++ * @param tabIndex The index of the tab. ++ * @param mnemonic The mnemonic. ++ */ ++ public void setMnemonicAt(int tabIndex, int mnemonic) ++ { ++ checkIndex(tabIndex, 0, tabs.size()); ++ ((Page) tabs.elementAt(tabIndex)).setMnemonic(mnemonic); ++ } ++ ++ /** ++ * This method finds the index of a tab given the title. ++ * ++ * @param title The title that belongs to a tab. ++ * ++ * @return The index of the tab that has the title or -1 if not found. ++ */ ++ public int indexOfTab(String title) ++ { ++ int index = -1; ++ for (int i = 0; i < tabs.size(); i++) ++ { ++ if (((Page) tabs.elementAt(i)).getTitle().equals(title)) ++ { ++ index = i; ++ break; ++ } ++ } ++ return index; ++ } ++ ++ /** ++ * This method finds the index of a tab given the icon. ++ * ++ * @param icon The icon that belongs to a tab. ++ * ++ * @return The index of the tab that has the icon or -1 if not found. ++ */ ++ public int indexOfTab(Icon icon) ++ { ++ int index = -1; ++ for (int i = 0; i < tabs.size(); i++) ++ { ++ if (((Page) tabs.elementAt(i)).getIcon() == icon) ++ { ++ index = i; ++ break; ++ } ++ } ++ return index; ++ } ++ ++ /** ++ * This method finds the index of a tab given the component. ++ * ++ * @param component A component associated with a tab. ++ * ++ * @return The index of the tab that has this component or -1 if not found. ++ */ ++ public int indexOfComponent(Component component) ++ { ++ int index = -1; ++ for (int i = 0; i < tabs.size(); i++) ++ { ++ if (((Page) tabs.elementAt(i)).getComponent() == component) ++ { ++ index = i; ++ break; ++ } ++ } ++ return index; ++ } ++ ++ /** ++ * This method returns a tab index given an (x,y) location. The origin of ++ * the (x,y) pair will be the JTabbedPane's top left position. The tab ++ * returned will be the one that contains the point. This method is ++ * delegated to the UI. ++ * ++ * @param x The x coordinate of the point. ++ * @param y The y coordinate of the point. ++ * ++ * @return The index of the tab that contains the point. ++ */ ++ public int indexAtLocation(int x, int y) ++ { ++ return ((TabbedPaneUI) ui).tabForCoordinate(this, x, y); ++ } ++ ++ /** ++ * This method returns the tooltip text given a mouse event. ++ * ++ * @param event The mouse event. ++ * ++ * @return The tool tip text that is associated with this mouse event. ++ */ ++ public String getToolTipText(MouseEvent event) ++ { ++ int index = indexAtLocation(event.getX(), event.getY()); ++ return ((Page) tabs.elementAt(index)).getTip(); ++ } ++ ++ /** ++ * This method returns a string representation of this JTabbedPane. It is ++ * mainly used for debugging purposes. ++ * ++ * @return A string representation of this JTabbedPane. ++ */ ++ protected String paramString() ++ { ++ return "JTabbedPane"; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public AccessibleContext getAccessibleContext() ++ { ++ if (accessibleContext == null) ++ accessibleContext = new AccessibleJTabbedPane(); ++ return accessibleContext; ++ } + } +Index: javax/swing/JTable.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JTable.java,v +retrieving revision 1.4 +diff -u -r1.4 JTable.java +--- javax/swing/JTable.java 11 Jun 2003 13:20:39 -0000 1.4 ++++ javax/swing/JTable.java 6 Sep 2004 16:35:59 -0000 +@@ -1,5 +1,5 @@ + /* JTable.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -42,169 +42,1520 @@ + import java.awt.Component; + import java.awt.Dimension; + import java.awt.Rectangle; +-import java.util.Hashtable; + import java.util.Vector; ++import java.util.Hashtable; ++ + import javax.accessibility.Accessible; +-import javax.swing.event.ChangeEvent; ++import javax.accessibility.AccessibleContext; + import javax.swing.event.CellEditorListener; ++import javax.swing.event.ChangeEvent; + import javax.swing.event.ListSelectionEvent; + import javax.swing.event.ListSelectionListener; + import javax.swing.event.TableColumnModelEvent; + import javax.swing.event.TableColumnModelListener; + import javax.swing.event.TableModelEvent; + import javax.swing.event.TableModelListener; ++import javax.swing.plaf.TableUI; ++import javax.swing.table.DefaultTableColumnModel; ++import javax.swing.table.DefaultTableCellRenderer; ++import javax.swing.table.DefaultTableModel; + import javax.swing.table.JTableHeader; +-import javax.swing.table.TableModel; + import javax.swing.table.TableCellEditor; ++import javax.swing.table.TableCellRenderer; ++import javax.swing.table.TableColumn; + import javax.swing.table.TableColumnModel; ++import javax.swing.table.TableModel; + + public class JTable extends JComponent + implements TableModelListener, Scrollable, TableColumnModelListener, + ListSelectionListener, CellEditorListener, Accessible + { +- public static final int AUTO_RESIZE_ALL_COLUMNS = 4; +- public static final int AUTO_RESIZE_LAST_COLUMN = 3; +- public static final int AUTO_RESIZE_NEXT_COLUMN = 1; ++ private static final long serialVersionUID = 3876025080382781659L; ++ ++ ++ /** ++ * When resizing columns, do not automatically change any columns. In this ++ * case the table should be enclosed in a {@link JScrollPane} in order to ++ * accomodate cases in which the table size exceeds its visible area. ++ */ + public static final int AUTO_RESIZE_OFF = 0; ++ ++ /** ++ * When resizing column i, automatically change only the ++ * single column i+1 to provide or absorb excess space ++ * requirements. ++ */ ++ public static final int AUTO_RESIZE_NEXT_COLUMN = 1; ++ ++ /** ++ * When resizing column i in a table of n ++ * columns, automatically change all columns in the range [i+1, ++ * n), uniformly, to provide or absorb excess space requirements. ++ */ + public static final int AUTO_RESIZE_SUBSEQUENT_COLUMNS = 2; + ++ /** ++ * When resizing column i in a table of n ++ * columns, automatically change all columns in the range [0, ++ * n) (with the exception of column i) uniformly, to provide or ++ * absorb excess space requirements. ++ */ ++ public static final int AUTO_RESIZE_ALL_COLUMNS = 4; ++ ++ /** ++ * When resizing column i in a table of n ++ * columns, automatically change column n-1 (the last column ++ * in the table) to provide or absorb excess space requirements. ++ */ ++ public static final int AUTO_RESIZE_LAST_COLUMN = 3; ++ ++ ++ /** ++ * A table mapping {@link java.lang.Class} objects to ++ * {@link TableCellEditor} objects. This table is consulted by the ++ * ++ */ ++ protected Hashtable defaultEditorsByColumnClass; ++ protected Hashtable defaultRenderersByColumnClass; ++ protected int editingColumn; ++ protected int editingRow; ++ ++ /** ++ * Whether or not the table should automatically compute a matching ++ * {@link TableColumnModel} and assign it to the {@link #columnModel} ++ * property when the {@link #dataModel} property is changed. ++ * ++ * @see #setModel() ++ * @see #createColumnsFromModel() ++ * @see #setColumnModel() ++ * @see #setAutoCreateColumnsFromModel() ++ * @see #getAutoCreateColumnsFromModel() ++ */ ++ protected boolean autoCreateColumnsFromModel; ++ ++ /** ++ * A numeric code specifying the resizing behavior of the table. Must be ++ * one of {@link #AUTO_RESIZE_ALL_COLUMNS} (the default), {@link ++ * #AUTO_RESIZE_LAST_COLUMN}, {@link #AUTO_RESIZE_NEXT_COLUMN}, {@link ++ * #AUTO_RESIZE_SUBSEQUENT_COLUMNS}, or {@link #AUTO_RESIZE_OFF}. ++ * ++ * @see #doLayout() ++ * @see #setAutoResizeMode() ++ * @see #getAutoResizeMode() ++ */ ++ protected int autoResizeMode; ++ ++ /** ++ * The height in pixels of any row of the table. All rows in a table are ++ * of uniform height. This differs from column width, which varies on a ++ * per-column basis, and is stored in the individual columns of the ++ * {@link #columnModel}. ++ * ++ * @see #getRowHeight() ++ * @see #setRowHeight() ++ * @see TableColumn#getWidth() ++ * @see TableColumn#setWidth() ++ */ ++ protected int rowHeight; ++ ++ /** ++ * The height in pixels of the gap left between any two rows of the table. ++ * ++ * @see #setRowMargin() ++ * @see #getRowHeight() ++ * @see #getInterCellSpacing() ++ * @see #setInterCellSpacing() ++ * @see TableColumnModel#getColumnMargin() ++ * @see TableColumnModel#setColumnMargin() ++ */ ++ protected int rowMargin; ++ ++ /** ++ * Whether or not the table should allow row selection. If the table ++ * allows both row and column selection, it is said to allow ++ * "cell selection". Previous versions of the JDK supported cell ++ * selection as an independent concept, but it is now represented solely ++ * in terms of simultaneous row and column selection. ++ * ++ * @see TableColumnModel#columnSelectionAllowed() ++ * @see #setRowSelectionAllowed() ++ * @see #getRowSelectionAllowed() ++ * @see #getCellSelectionEnabled() ++ * @see #setCellSelectionEnabled() ++ */ ++ protected boolean rowSelectionAllowed; ++ ++ /** ++ * @deprecated Use {@link #rowSelectionAllowed}, {@link ++ * #columnSelectionAllowed}, or the combined methods {@link ++ * getCellSelectionEnabled} and {@link setCellSelectionEnabled}. ++ */ ++ protected boolean cellSelectionEnabled; ++ ++ /** ++ * The model for data stored in the table. Confusingly, the published API ++ * requires that this field be called dataModel, despite its ++ * property name. The table listens to its model as a {@link ++ * TableModelListener}. ++ * ++ * @see #tableChanged() ++ * @see TableModel#addTableModelListener() ++ */ ++ protected TableModel dataModel; ++ ++ /** ++ *

    A model of various aspects of the columns of the table, not ++ * including the data stored in them. The {@link TableColumnModel} ++ * is principally concerned with holding a set of {@link TableColumn} ++ * objects, each of which describes the display parameters of a column ++ * and the numeric index of the column from the data model which the ++ * column is presenting.

    ++ * ++ *

    The TableColumnModel also contains a {@link ListSelectionModel} which ++ * indicates which columns are currently selected. This selection model ++ * works in combination with the {@link selectionModel} of the table ++ * itself to specify a table selection: a combination of row and ++ * column selections.

    ++ * ++ *

    Most application programmers do not need to work with this property ++ * at all: setting {@link #autoCreateColumnsFromModel} will construct the ++ * columnModel automatically, and the table acts as a facade for most of ++ * the interesting properties of the columnModel anyways.

    ++ * ++ * @see #setColumnModel() ++ * @see #getColumnModel() ++ */ ++ protected TableColumnModel columnModel; ++ ++ /** ++ * A model of the rows of this table which are currently selected. This ++ * model is used in combination with the column selection model held as a ++ * member of the {@link columnModel} property, to represent the rows and ++ * columns (or both: cells) of the table which are currently selected. ++ * ++ * @see #rowSelectionAllowed ++ * @see #setSelectionModel() ++ * @see #getSelectionModel() ++ * @see TableColumnModel#getSelectionModel() ++ * @see ListSelectionModel#addListSelectionListener() ++ */ ++ protected ListSelectionModel selectionModel; ++ ++ /** ++ * The accessibleContext property. ++ */ ++ protected AccessibleContext accessibleContext; ++ ++ /** ++ * The current cell editor. ++ */ ++ protected TableCellEditor cellEditor; ++ ++ /** ++ * Whether or not drag-and-drop is enabled on this table. ++ * ++ * @see #setDragEnabled() ++ * @see #getDragEnabled() ++ */ ++ protected boolean dragEnabled; ++ ++ /** ++ * The color to paint the grid lines of the table, when either {@link ++ * #showHorizontalLines} or {@link #showVerticalLines} is set. ++ * ++ * @see #setGridColor() ++ * @see #getGridColor() ++ */ ++ protected Color gridColor; ++ ++ /** ++ * The size this table would prefer its viewport assume, if it is ++ * contained in a {@link JScrollPane}. ++ * ++ * @see #setPreferredScrollableViewportSize() ++ * @see #getPreferredScrollableViewportSize() ++ */ ++ protected Dimension preferredScrollableViewportSize; ++ ++ /** ++ * The color to paint the background of selected cells. Fires a property ++ * change event with name {@link #SELECTION_BACKGROUND_CHANGED_PROPERTY} ++ * when its value changes. ++ * ++ * @see #setSelectionBackground() ++ * @see #getSelectionBackground() ++ */ ++ Color selectionBackground; ++ ++ /** ++ * The name carried in property change events when the {@link ++ * #selectionBackground} property changes. ++ */ ++ private static final String SELECTION_BACKGROUND_CHANGED_PROPERTY = "selectionBackground"; ++ ++ /** ++ * The color to paint the foreground of selected cells. Fires a property ++ * change event with name {@link #SELECTION_FOREGROUND_CHANGED_PROPERTY} ++ * when its value changes. ++ * ++ * @see #setSelectionForeground() ++ * @see #getSelectionForeground() ++ */ ++ Color selectionForeground; ++ ++ /** ++ * The name carried in property change events when the ++ * {@link #selectionForeground} property changes. ++ */ ++ private static final String SELECTION_FOREGROUND_CHANGED_PROPERTY = "selectionForeground"; ++ ++ /** ++ * The showHorizontalLines property. ++ */ ++ protected boolean showHorizontalLines; ++ ++ /** ++ * The showVerticalLines property. ++ */ ++ protected boolean showVerticalLines; ++ ++ /** ++ * The tableHeader property. ++ */ ++ protected JTableHeader tableHeader; ++ ++ ++ /** ++ * Creates a new JTable instance. ++ */ + public JTable () + { +- throw new Error ("Not implemented"); ++ this(null, null, null); + } + ++ /** ++ * Creates a new JTable instance. ++ * ++ * @param numRows an int value ++ * @param numColumns an int value ++ */ + public JTable (int numRows, int numColumns) + { +- throw new Error ("Not implemented"); ++ this(new DefaultTableModel(numRows, numColumns)); + } + +- public JTable (Object[][] rowData, Object[] columnNames) ++ /** ++ * Creates a new JTable instance. ++ * ++ * @param data an Object[][] value ++ * @param columnNames an Object[] value ++ */ ++ public JTable(Object[][] data, Object[] columnNames) + { +- throw new Error ("Not implemented"); ++ this(new DefaultTableModel(data, columnNames)); + } + ++ /** ++ * Creates a new JTable instance. ++ * ++ * @param dm a TableModel value ++ */ + public JTable (TableModel dm) + { +- throw new Error ("Not implemented"); ++ this(dm, null, null); + } + ++ /** ++ * Creates a new JTable instance. ++ * ++ * @param dm a TableModel value ++ * @param cm a TableColumnModel value ++ */ + public JTable (TableModel dm, TableColumnModel cm) + { +- throw new Error ("Not implemented"); ++ this(dm, cm, null); + } + ++ /** ++ * Creates a new JTable instance. ++ * ++ * @param dm a TableModel value ++ * @param cm a TableColumnModel value ++ * @param sm a ListSelectionModel value ++ */ + public JTable (TableModel dm, TableColumnModel cm, ListSelectionModel sm) + { +- throw new Error ("Not implemented"); ++ this.dataModel = dm == null ? createDefaultDataModel() : dm; ++ setSelectionModel(sm == null ? createDefaultListSelectionModel() : sm); ++ ++ this.columnModel = cm; ++ this.autoCreateColumnsFromModel = false; ++ if (cm == null) ++ { ++ this.autoCreateColumnsFromModel = true; ++ createColumnsFromModel(); ++ } ++ this.columnModel.addColumnModelListener(this); ++ ++ this.defaultRenderersByColumnClass = new Hashtable(); ++ this.defaultEditorsByColumnClass = new Hashtable(); ++ ++ this.autoResizeMode = AUTO_RESIZE_ALL_COLUMNS; ++ this.rowHeight = 16; ++ this.rowMargin = 1; ++ this.rowSelectionAllowed = true; ++ // this.accessibleContext = new AccessibleJTable(); ++ this.cellEditor = null; ++ this.dragEnabled = false; ++ this.preferredScrollableViewportSize = new Dimension(450,400); ++ this.showHorizontalLines = true; ++ this.showVerticalLines = true; ++ setInterCellSpacing(new Dimension(1,1)); ++ setTableHeader(new JTableHeader(columnModel)); ++ updateUI(); ++ } ++ ++ /** ++ * Creates a new JTable instance. ++ * ++ * @param data a Vector value ++ * @param columnNames a Vector value ++ */ ++ public JTable(Vector data, Vector columnNames) ++ { ++ this(new DefaultTableModel(data, columnNames)); ++ } ++ ++ /** ++ * @deprecated 1.0.2, replaced by new JScrollPane(JTable) ++ */ ++ public static JScrollPane createScrollPaneForTable(JTable table) ++ { ++ return new JScrollPane(table); ++ } ++ ++ protected TableColumnModel createDefaultColumnModel() ++ { ++ return new DefaultTableColumnModel(); ++ } ++ ++ protected TableModel createDefaultDataModel() ++ { ++ return new DefaultTableModel(); + } + +- public JTable (Vector rowData, Vector columnNames) ++ protected ListSelectionModel createDefaultListSelectionModel() + { +- throw new Error ("Not implemented"); ++ return new DefaultListSelectionModel(); + } + ++ private void createColumnsFromModel() ++ { ++ if (dataModel == null) ++ return; ++ ++ TableColumnModel cm = createDefaultColumnModel(); ++ ++ for (int i = 0; i < dataModel.getColumnCount(); ++i) ++ { ++ cm.addColumn(new TableColumn(i)); ++ } ++ this.setColumnModel(cm); ++ } ++ ++ // listener support ++ + public void columnAdded (TableColumnModelEvent event) + { +- throw new Error ("Not implemented"); ++ revalidate(); ++ repaint(); + } + + public void columnMarginChanged (ChangeEvent event) + { +- throw new Error ("Not implemented"); ++ revalidate(); ++ repaint(); + } +- ++ + public void columnMoved (TableColumnModelEvent event) + { +- throw new Error ("Not implemented"); ++ revalidate(); ++ repaint(); + } +- ++ + public void columnRemoved (TableColumnModelEvent event) + { +- throw new Error ("Not implemented"); ++ revalidate(); ++ repaint(); + } + + public void columnSelectionChanged (ListSelectionEvent event) + { +- throw new Error ("Not implemented"); ++ repaint(); + } +- ++ + public void editingCanceled (ChangeEvent event) + { +- throw new Error ("Not implemented"); ++ repaint(); + } + + public void editingStopped (ChangeEvent event) + { +- throw new Error ("Not implemented"); ++ repaint(); + } + +- public TableColumnModel getColumnModel () +- { +- throw new Error ("Not implemented"); +- } +- +- public Dimension getPreferredScrollableViewportSize () ++ public void tableChanged (TableModelEvent event) + { +- throw new Error ("Not implemented"); ++ repaint(); + } + +- public int getScrollableBlockIncrement (Rectangle visibleRect, int orientation, int direction) ++ public void valueChanged (ListSelectionEvent event) + { +- throw new Error ("Not implemented"); ++ repaint(); + } + +- public boolean getScrollableTracksViewportHeight () ++ ++ /** ++ * Calculate the visible rectangle for a particular row and column. The ++ * row and column are specified in visual terms; the column may not match ++ * the {@link #dataModel} column. ++ * ++ * @param row the visible row to get the cell rectangle of ++ * ++ * @param column the visible column to get the cell rectangle of, which may ++ * differ from the {@link #dataModel} column ++ * ++ * @param includeSpacing whether or not to include the cell margins in the ++ * resulting cell. If false, the result will only contain the ++ * inner area of the target cell, not including its margins. ++ * ++ * @return a rectangle enclosing the specified cell ++ */ ++ public Rectangle getCellRect(int row, ++ int column, ++ boolean includeSpacing) ++ { ++ int height = getHeight(); ++ int width = columnModel.getColumn(column).getWidth(); ++ int x_gap = columnModel.getColumnMargin(); ++ int y_gap = rowMargin; ++ ++ column = Math.max(0, Math.min(column, getColumnCount() - 1)); ++ row = Math.max(0, Math.min(row, getRowCount() - 1)); ++ ++ int x = 0; ++ int y = (height + y_gap) * row; ++ ++ for (int i = 0; i < column; ++i) ++ { ++ x += columnModel.getColumn(i).getWidth(); ++ x += x_gap; ++ } ++ ++ if (includeSpacing) ++ return new Rectangle(x, y, width, height); ++ else ++ return new Rectangle(x, y, width - x_gap, height - y_gap); ++ } ++ ++ public void clearSelection() ++ { ++ selectionModel.clearSelection(); ++ } ++ ++ /** ++ * Get the value of the {@link #selectedRow} property by delegation to ++ * the {@link ListSelectionModel#getMinSelectionIndex} method of the ++ * {@link #selectionModel} field. ++ * ++ * @return The current value of the selectedRow property ++ */ ++ public int getSelectedRow () + { +- throw new Error ("Not implemented"); ++ return selectionModel.getMinSelectionIndex(); + } + +- public boolean getScrollableTracksViewportWidth () ++ /** ++ * Get the value of the {@link #selectionModel} property. ++ * ++ * @return The current value of the property ++ */ ++ public ListSelectionModel getSelectionModel() + { +- throw new Error ("Not implemented"); +- } ++ if (! rowSelectionAllowed) ++ return null; + +- public int getScrollableUnitIncrement (Rectangle visibleRect, int orientation, int direction) ++ return selectionModel; ++ } ++ ++ public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction) + { +- throw new Error ("Not implemented"); ++ if (orientation == SwingConstants.VERTICAL) ++ return visibleRect.height * direction; ++ else ++ return visibleRect.width * direction; + } + +- public int getSelectedRow () ++ /** ++ * Get the value of the {@link #scrollableTracksViewportHeight} property. ++ * ++ * @return The constant value false ++ */ ++ ++ public boolean getScrollableTracksViewportHeight() + { +- throw new Error ("Not implemented"); ++ return false; + } + +- public ListSelectionModel getSelectionModel () +- { +- throw new Error ("Not implemented"); ++ /** ++ * Get the value of the {@link #scrollableTracksViewportWidth} property. ++ * ++ * @return true unless the {@link autoResizeMode} prperty is ++ * AUTO_RESIZE_OFF ++ */ ++ ++ public boolean getScrollableTracksViewportWidth() ++ { ++ if (autoResizeMode == AUTO_RESIZE_OFF) ++ return false; ++ else ++ return true; ++ } ++ ++ public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction) ++ { ++ // FIXME: I don't exactly know what sun does here. in both cases they ++ // pick values which do *not* simply expose the next cell in a given ++ // scroll direction. ++ ++ if (orientation == SwingConstants.VERTICAL) ++ return rowHeight; ++ else ++ { ++ int sum = 0; ++ for (int i = 0; i < getColumnCount(); ++i) ++ sum += columnModel.getColumn(0).getWidth(); ++ return getColumnCount() == 0 ? 10 : sum / getColumnCount(); ++ } ++ } ++ ++ ++ public TableCellEditor getCellEditor(int row, int column) ++ { ++ TableCellEditor editor = columnModel.getColumn(column).getCellEditor(); ++ ++ if (editor == null) ++ editor = getDefaultEditor(dataModel.getColumnClass(column)); ++ ++ return editor; ++ } ++ ++ public TableCellEditor getDefaultEditor(Class columnClass) ++ { ++ if (defaultEditorsByColumnClass.containsKey(columnClass)) ++ return (TableCellEditor) defaultEditorsByColumnClass.get(columnClass); ++ else ++ { ++ TableCellEditor r = new DefaultCellEditor(new JTextField()); ++ defaultEditorsByColumnClass.put(columnClass, r); ++ return r; ++ } ++ } ++ ++ ++ ++ public TableCellRenderer getCellRenderer(int row, int column) ++ { ++ TableCellRenderer renderer = ++ columnModel.getColumn(column).getCellRenderer(); ++ ++ if (renderer == null) ++ renderer = getDefaultRenderer(dataModel.getColumnClass(column)); ++ ++ return renderer; ++ } ++ ++ public TableCellRenderer getDefaultRenderer(Class columnClass) ++ { ++ if (defaultRenderersByColumnClass.containsKey(columnClass)) ++ return (TableCellRenderer) defaultRenderersByColumnClass.get(columnClass); ++ else ++ { ++ TableCellRenderer r = new DefaultTableCellRenderer(); ++ defaultRenderersByColumnClass.put(columnClass, r); ++ return r; ++ } ++ } ++ ++ public int convertColumnIndexToModel(int vc) ++ { ++ if (vc < 0) ++ return vc; ++ else if (vc > getColumnCount()) ++ return -1; ++ else ++ return columnModel.getColumn(vc).getModelIndex(); ++ } ++ ++ public int convertColumnIndexToView(int mc) ++ { ++ if (mc < 0) ++ return mc; ++ int ncols = getColumnCount(); ++ for (int vc = 0; vc < ncols; ++vc) ++ { ++ if (columnModel.getColumn(vc).getModelIndex() == mc) ++ return vc; ++ } ++ return -1; ++ } ++ ++ public Component prepareRenderer(TableCellRenderer renderer, ++ int row, ++ int column) ++ { ++ boolean rsa = getRowSelectionAllowed(); ++ boolean csa = getColumnSelectionAllowed(); ++ boolean rs = rsa ? getSelectionModel().isSelectedIndex(row) : false; ++ boolean cs = csa ? columnModel.getSelectionModel().isSelectedIndex(column) : false; ++ boolean isSelected = ((rsa && csa && rs && cs) ++ || (rsa && !csa && rs) ++ || (!rsa && csa && cs)); ++ ++ return renderer.getTableCellRendererComponent(this, ++ dataModel.getValueAt(row, ++ convertColumnIndexToView(column)), ++ isSelected, ++ false, // hasFocus ++ row, column); ++ } ++ ++ ++ /** ++ * Get the value of the {@link #autoCreateColumnsFromModel} property. ++ * ++ * @return The current value of the property ++ */ ++ public boolean getAutoCreateColumnsFromModel() ++ { ++ return autoCreateColumnsFromModel; ++ } ++ ++ /** ++ * Get the value of the {@link #autoResizeMode} property. ++ * ++ * @return The current value of the property ++ */ ++ public int getAutoResizeMode() ++ { ++ return autoResizeMode; ++ } ++ ++ /** ++ * Get the value of the {@link #rowHeight} property. ++ * ++ * @return The current value of the property ++ */ ++ public int getRowHeight() ++ { ++ return rowHeight; ++ } ++ ++ /** ++ * Get the value of the {@link #rowMargin} property. ++ * ++ * @return The current value of the property ++ */ ++ public int getRowMargin() ++ { ++ return rowMargin; ++ } ++ ++ /** ++ * Get the value of the {@link #rowSelectionAllowed} property. ++ * ++ * @return The current value of the property ++ */ ++ public boolean getRowSelectionAllowed() ++ { ++ return rowSelectionAllowed; ++ } ++ ++ /** ++ * Get the value of the {@link #cellSelectionEnabled} property. ++ * ++ * @return The current value of the property ++ */ ++ public boolean getCellSelectionEnabled() ++ { ++ return getColumnSelectionAllowed() && getRowSelectionAllowed(); ++ } ++ ++ /** ++ * Get the value of the {@link #dataModel} property. ++ * ++ * @return The current value of the property ++ */ ++ public TableModel getModel() ++ { ++ return dataModel; ++ } ++ ++ /** ++ * Get the value of the {@link #columnCount} property by ++ * delegation to the @{link #dataModel} field. ++ * ++ * @return The current value of the columnCount property ++ */ ++ public int getColumnCount() ++ { ++ return dataModel.getColumnCount(); ++ } ++ ++ /** ++ * Get the value of the {@link #rowCount} property by ++ * delegation to the @{link #dataModel} field. ++ * ++ * @return The current value of the rowCount property ++ */ ++ public int getRowCount() ++ { ++ return dataModel.getRowCount(); ++ } ++ ++ /** ++ * Get the value of the {@link #columnModel} property. ++ * ++ * @return The current value of the property ++ */ ++ public TableColumnModel getColumnModel() ++ { ++ return columnModel; ++ } ++ ++ /** ++ * Get the value of the {@link #selectedColumn} property by ++ * delegation to the @{link #columnModel} field. ++ * ++ * @return The current value of the selectedColumn property ++ */ ++ public int getSelectedColumn() ++ { ++ return columnModel.getSelectionModel().getMinSelectionIndex(); ++ } ++ ++ private static int countSelections(ListSelectionModel lsm) ++ { ++ int lo = lsm.getMinSelectionIndex(); ++ int hi = lsm.getMaxSelectionIndex(); ++ int sum = 0; ++ if (lo != -1 && hi != -1) ++ { ++ switch (lsm.getSelectionMode()) ++ { ++ case ListSelectionModel.SINGLE_SELECTION: ++ sum = 1; ++ break; ++ ++ case ListSelectionModel.SINGLE_INTERVAL_SELECTION: ++ sum = hi - lo; ++ break; ++ ++ case ListSelectionModel.MULTIPLE_INTERVAL_SELECTION: ++ for (int i = lo; i < hi; ++i) ++ if (lsm.isSelectedIndex(i)) ++ ++sum; ++ break; ++ } ++ } ++ return sum; ++ } ++ ++ private static int[] getSelections(ListSelectionModel lsm) ++ { ++ int sz = countSelections(lsm); ++ int [] ret = new int[sz]; ++ ++ int lo = lsm.getMinSelectionIndex(); ++ int hi = lsm.getMaxSelectionIndex(); ++ int j = 0; ++ java.util.ArrayList ls = new java.util.ArrayList(); ++ if (lo != -1 && hi != -1) ++ { ++ switch (lsm.getSelectionMode()) ++ { ++ case ListSelectionModel.SINGLE_SELECTION: ++ ret[0] = lo; ++ break; ++ ++ case ListSelectionModel.SINGLE_INTERVAL_SELECTION: ++ for (int i = lo; i < hi; ++i) ++ ret[j++] = i; ++ break; ++ ++ case ListSelectionModel.MULTIPLE_INTERVAL_SELECTION: ++ for (int i = lo; i < hi; ++i) ++ if (lsm.isSelectedIndex(i)) ++ ret[j++] = i; ++ break; ++ } ++ } ++ return ret; ++ } ++ ++ /** ++ * Get the value of the {@link #selectedColumnCount} property by ++ * delegation to the @{link #columnModel} field. ++ * ++ * @return The current value of the selectedColumnCount property ++ */ ++ public int getSelectedColumnCount() ++ { ++ return countSelections(columnModel.getSelectionModel()); ++ } ++ ++ /** ++ * Get the value of the {@link #selectedColumns} property by ++ * delegation to the @{link #columnModel} field. ++ * ++ * @return The current value of the selectedColumns property ++ */ ++ public int[] getSelectedColumns() ++ { ++ return getSelections(columnModel.getSelectionModel()); ++ } ++ ++ /** ++ * Get the value of the {@link #columnSelectionAllowed} property. ++ * ++ * @return The current value of the columnSelectionAllowed property ++ */ ++ public boolean getColumnSelectionAllowed() ++ { ++ return getColumnModel().getColumnSelectionAllowed(); ++ } ++ ++ /** ++ * Get the value of the {@link #selectedRowCount} property by ++ * delegation to the @{link #selectionModel} field. ++ * ++ * @return The current value of the selectedRowCount property ++ */ ++ public int getSelectedRowCount() ++ { ++ return countSelections(selectionModel); ++ } ++ ++ /** ++ * Get the value of the {@link #selectedRows} property by ++ * delegation to the @{link #selectionModel} field. ++ * ++ * @return The current value of the selectedRows property ++ */ ++ public int[] getSelectedRows() ++ { ++ return getSelections(selectionModel); ++ } ++ ++ /** ++ * Get the value of the {@link #accessibleContext} property. ++ * ++ * @return The current value of the property ++ */ ++ public AccessibleContext getAccessibleContext() ++ { ++ return accessibleContext; ++ } ++ ++ /** ++ * Get the value of the {@link #cellEditor} property. ++ * ++ * @return The current value of the property ++ */ ++ public TableCellEditor getCellEditor() ++ { ++ return cellEditor; ++ } ++ ++ /** ++ * Get the value of the {@link #dragEnabled} property. ++ * ++ * @return The current value of the property ++ */ ++ public boolean getDragEnabled() ++ { ++ return dragEnabled; ++ } ++ ++ /** ++ * Get the value of the {@link #gridColor} property. ++ * ++ * @return The current value of the property ++ */ ++ public Color getGridColor() ++ { ++ return gridColor; ++ } ++ ++ /** ++ * Get the value of the {@link #interCellSpacing} property. ++ * ++ * @return The current value of the property ++ */ ++ public Dimension getInterCellSpacing() ++ { ++ return new Dimension(columnModel.getColumnMargin(), rowMargin); ++ } ++ ++ /** ++ * Get the value of the {@link #preferredScrollableViewportSize} property. ++ * ++ * @return The current value of the property ++ */ ++ public Dimension getPreferredScrollableViewportSize() ++ { ++ return preferredScrollableViewportSize; ++ } ++ ++ /** ++ * Get the value of the {@link #selectionBackground} property. ++ * ++ * @return The current value of the property ++ */ ++ public Color getSelectionBackground() ++ { ++ return selectionBackground; ++ } ++ ++ /** ++ * Get the value of the {@link #selectionForeground} property. ++ * ++ * @return The current value of the property ++ */ ++ public Color getSelectionForeground() ++ { ++ return selectionForeground; ++ } ++ ++ /** ++ * Get the value of the {@link #showHorizontalLines} property. ++ * ++ * @return The current value of the property ++ */ ++ public boolean getShowHorizontalLines() ++ { ++ return showHorizontalLines; ++ } ++ ++ /** ++ * Get the value of the {@link #showVerticalLines} property. ++ * ++ * @return The current value of the property ++ */ ++ public boolean getShowVerticalLines() ++ { ++ return showVerticalLines; ++ } ++ ++ /** ++ * Get the value of the {@link #tableHeader} property. ++ * ++ * @return The current value of the property ++ */ ++ public JTableHeader getTableHeader() ++ { ++ return tableHeader; ++ } ++ ++ /** ++ * Set the value of the {@link #autoCreateColumnsFromModel} property. ++ * ++ * @param a The new value of the autoCreateColumnsFromModel property ++ */ ++ public void setAutoCreateColumnsFromModel(boolean a) ++ { ++ autoCreateColumnsFromModel = a; ++ } ++ ++ /** ++ * Set the value of the {@link #autoResizeMode} property. ++ * ++ * @param a The new value of the autoResizeMode property ++ */ ++ public void setAutoResizeMode(int a) ++ { ++ autoResizeMode = a; ++ revalidate(); ++ repaint(); ++ } ++ ++ /** ++ * Set the value of the {@link #rowHeight} property. ++ * ++ * @param r The new value of the rowHeight property ++ */ ++ public void setRowHeight(int r) ++ { ++ rowHeight = r; ++ revalidate(); ++ repaint(); ++ } ++ ++ /** ++ * Set the value of the {@link #rowMargin} property. ++ * ++ * @param r The new value of the rowMargin property ++ */ ++ public void setRowMargin(int r) ++ { ++ rowMargin = r; ++ revalidate(); ++ repaint(); ++ } ++ ++ /** ++ * Set the value of the {@link #rowSelectionAllowed} property. ++ * ++ * @param r The new value of the rowSelectionAllowed property ++ */ ++ public void setRowSelectionAllowed(boolean r) ++ { ++ rowSelectionAllowed = r; ++ repaint(); ++ } ++ ++ /** ++ * Set the value of the {@link #cellSelectionEnabled} property. ++ * ++ * @param c The new value of the cellSelectionEnabled property ++ */ ++ public void setCellSelectionEnabled(boolean c) ++ { ++ setColumnSelectionAllowed(c); ++ setRowSelectionAllowed(c); ++ // for backward-compatibility sake: ++ cellSelectionEnabled = true; ++ } ++ ++ /** ++ *

    Set the value of the {@link #dataModel} property.

    ++ * ++ *

    Unregister this as a {@link TableModelListener} from ++ * previous {@link #dataModel} and register it with new parameter ++ * m.

    ++ * ++ * @param m The new value of the model property ++ */ ++ public void setModel(TableModel m) ++ { ++ if (m == null) ++ throw new IllegalArgumentException(); ++ TableModel tmp = dataModel; ++ if (autoCreateColumnsFromModel) ++ createColumnsFromModel(); ++ if (tmp != null) ++ tmp.removeTableModelListener(this); ++ if (m != null) ++ m.addTableModelListener(this); ++ dataModel = m; ++ revalidate(); ++ repaint(); ++ } ++ ++ /** ++ *

    Set the value of the {@link #columnModel} property.

    ++ * ++ *

    Unregister this as a {@link TableColumnModelListener} ++ * from previous {@link #columnModel} and register it with new parameter ++ * c.

    ++ * ++ * @param c The new value of the columnModel property ++ */ ++ public void setColumnModel(TableColumnModel c) ++ { ++ if (c == null) ++ throw new IllegalArgumentException(); ++ TableColumnModel tmp = columnModel; ++ if (tmp != null) ++ tmp.removeColumnModelListener(this); ++ if (c != null) ++ c.addColumnModelListener(this); ++ columnModel = c; ++ if (dataModel != null && columnModel != null) ++ { ++ int ncols = getColumnCount(); ++ for (int i = 0; i < ncols; ++i) ++ columnModel.getColumn(i).setHeaderValue(dataModel.getColumnName(i)); ++ } ++ revalidate(); ++ repaint(); ++ } ++ ++ /** ++ * Set the value of the {@link #columnSelectionAllowed} property. ++ * ++ * @param c The new value of the property ++ */ ++ public void setColumnSelectionAllowed(boolean c) ++ { ++ getColumnModel().setColumnSelectionAllowed(c); ++ repaint(); ++ } ++ ++ /** ++ *

    Set the value of the {@link #selectionModel} property.

    ++ * ++ *

    Unregister this as a {@link ListSelectionListener} ++ * from previous {@link #selectionModel} and register it with new ++ * parameter s.

    ++ * ++ * @param s The new value of the selectionModel property ++ */ ++ public void setSelectionModel(ListSelectionModel s) ++ { ++ if (s == null) ++ throw new IllegalArgumentException(); ++ ListSelectionModel tmp = selectionModel; ++ if (tmp != null) ++ tmp.removeListSelectionListener(this); ++ if (s != null) ++ s.addListSelectionListener(this); ++ selectionModel = s; ++ } ++ ++ /** ++ * Set the value of the {@link #selectionMode} property by ++ * delegation to the {@link #selectionModel} field. ++ * ++ * @param s The new value of the property ++ */ ++ public void setSelectionMode(int s) ++ { ++ selectionModel.setSelectionMode(s); ++ repaint(); ++ } ++ ++ /** ++ *

    Set the value of the {@link #cellEditor} property.

    ++ * ++ *

    Unregister this as a {@link CellEditorListener} from ++ * previous {@link #cellEditor} and register it with new parameter ++ * c.

    ++ * ++ * @param c The new value of the cellEditor property ++ */ ++ public void setCellEditor(TableCellEditor c) ++ { ++ TableCellEditor tmp = cellEditor; ++ if (tmp != null) ++ tmp.removeCellEditorListener(this); ++ if (c != null) ++ c.addCellEditorListener(this); ++ cellEditor = c; ++ } ++ ++ /** ++ * Set the value of the {@link #dragEnabled} property. ++ * ++ * @param d The new value of the dragEnabled property ++ */ ++ public void setDragEnabled(boolean d) ++ { ++ dragEnabled = d; ++ } ++ ++ /** ++ * Set the value of the {@link #gridColor} property. ++ * ++ * @param g The new value of the gridColor property ++ */ ++ public void setGridColor(Color g) ++ { ++ gridColor = g; ++ repaint(); ++ } ++ ++ /** ++ * Set the value of the {@link #interCellSpacing} property. ++ * ++ * @param i The new value of the interCellSpacing property ++ */ ++ public void setInterCellSpacing(Dimension i) ++ { ++ rowMargin = i.height; ++ columnModel.setColumnMargin(i.width); ++ repaint(); ++ } ++ ++ /** ++ * Set the value of the {@link #preferredScrollableViewportSize} property. ++ * ++ * @param p The new value of the preferredScrollableViewportSize property ++ */ ++ public void setPreferredScrollableViewportSize(Dimension p) ++ { ++ preferredScrollableViewportSize = p; ++ revalidate(); ++ repaint(); ++ } ++ ++ /** ++ *

    Set the value of the {@link #selectionBackground} property.

    ++ * ++ *

    Fire a PropertyChangeEvent with name {@link ++ * #SELECTION_BACKGROUND_CHANGED_PROPERTY} to registered listeners, if ++ * selectionBackground changed.

    ++ * ++ * @param s The new value of the selectionBackground property ++ */ ++ public void setSelectionBackground(Color s) ++ { ++ Color tmp = selectionBackground; ++ selectionBackground = s; ++ if (((tmp == null && s != null) ++ || (s == null && tmp != null) ++ || (tmp != null && s != null && !tmp.equals(s)))) ++ firePropertyChange(SELECTION_BACKGROUND_CHANGED_PROPERTY, tmp, s); ++ repaint(); ++ } ++ ++ /** ++ *

    Set the value of the {@link #selectionForeground} property.

    ++ * ++ *

    Fire a PropertyChangeEvent with name {@link ++ * SELECTION_FOREGROUND_CHANGED_PROPERTY} to registered listeners, if ++ * selectionForeground changed.

    ++ * ++ * @param s The new value of the selectionForeground property ++ */ ++ public void setSelectionForeground(Color s) ++ { ++ Color tmp = selectionForeground; ++ selectionForeground = s; ++ if (((tmp == null && s != null) ++ || (s == null && tmp != null) ++ || (tmp != null && s != null && !tmp.equals(s)))) ++ firePropertyChange(SELECTION_FOREGROUND_CHANGED_PROPERTY, tmp, s); ++ repaint(); ++ } ++ ++ /** ++ * Set the value of the {@link #showGrid} property. ++ * ++ * @param s The new value of the showGrid property ++ */ ++ public void setShowGrid(boolean s) ++ { ++ setShowVerticalLines(s); ++ setShowHorizontalLines(s); ++ } ++ ++ /** ++ * Set the value of the {@link #showHorizontalLines} property. ++ * ++ * @param s The new value of the showHorizontalLines property ++ */ ++ public void setShowHorizontalLines(boolean s) ++ { ++ showHorizontalLines = s; ++ repaint(); ++ } ++ ++ /** ++ * Set the value of the {@link #showVerticalLines} property. ++ * ++ * @param s The new value of the showVerticalLines property ++ */ ++ public void setShowVerticalLines(boolean s) ++ { ++ showVerticalLines = s; ++ repaint(); ++ } ++ ++ /** ++ * Set the value of the {@link #tableHeader} property. ++ * ++ * @param t The new value of the tableHeader property ++ */ ++ public void setTableHeader(JTableHeader t) ++ { ++ if (tableHeader != null) ++ tableHeader.setTable(null); ++ tableHeader = t; ++ if (tableHeader != null) ++ tableHeader.setTable(this); ++ revalidate(); ++ repaint(); ++ } ++ ++ protected void configureEnclosingScrollPane() ++ { ++ JScrollPane jsp = (JScrollPane) SwingUtilities.getAncestorOfClass(JScrollPane.class, this); ++ if (jsp != null && tableHeader != null) ++ { ++ jsp.setColumnHeaderView(tableHeader); ++ } ++ } ++ ++ protected void unconfigureEnclosingScrollPane() ++ { ++ JScrollPane jsp = (JScrollPane) SwingUtilities.getAncestorOfClass(JScrollPane.class, this); ++ if (jsp != null) ++ { ++ jsp.setColumnHeaderView(null); ++ } ++ } ++ ++ ++ public void addNotify() ++ { ++ super.addNotify(); ++ configureEnclosingScrollPane(); ++ } ++ ++ public void removeNotify() ++ { ++ super.addNotify(); ++ unconfigureEnclosingScrollPane(); ++ } ++ ++ ++ /** ++ * Sun javadocs describe an unusual implementation of ++ * doLayout which involves some private interfaces. We try ++ * to implement the same algorithm as is documented, but using the ++ * columnModel directly. We still use a private helper method, but it has ++ * a simpler signature. ++ */ ++ ++ private void distributeSpill(TableColumn[] cols, int spill) ++ { ++ int MIN = 0; ++ int MAX = 0; ++ int PREF = 0; ++ ++ int[] min = new int[cols.length]; ++ int[] max = new int[cols.length]; ++ int[] pref = new int[cols.length]; ++ ++ for (int i = 0; i < cols.length; ++i) ++ { ++ pref[i] = cols[i].getPreferredWidth(); ++ min[i] = cols[i].getMinWidth(); ++ max[i] = cols[i].getMaxWidth(); ++ PREF += pref[i]; ++ MIN += min[i]; ++ MAX += max[i]; ++ } ++ ++ for (int i = 0; i < cols.length; ++i) ++ { ++ int adj = 0; ++ if (spill > 0) ++ adj = (spill * (pref[i] - min[i])) / (PREF - MIN); ++ else ++ adj = (spill * (max[i] - pref[i])) / (MAX - PREF); ++ cols[i].setWidth(pref[i] + adj); ++ } + } +- +- public void tableChanged (TableModelEvent event) ++ ++ public void doLayout() + { +- throw new Error ("Not implemented"); +- } ++ TableColumn resizingColumn = null; + +- public void setModel (TableModel model) ++ int ncols = getColumnCount(); ++ if (ncols < 1) ++ return; ++ ++ int[] pref = new int[ncols]; ++ int prefSum = 0; ++ int rCol = -1; ++ ++ if (tableHeader != null) ++ resizingColumn = tableHeader.getResizingColumn(); ++ ++ for (int i = 0; i < ncols; ++i) ++ { ++ TableColumn col = columnModel.getColumn(i); ++ int p = col.getWidth(); ++ pref[i] = p; ++ prefSum += p; ++ if (resizingColumn == col) ++ rCol = i; ++ } ++ ++ int spill = prefSum - getWidth(); ++ ++ if (resizingColumn != null) ++ { ++ TableColumn col; ++ TableColumn [] cols; ++ ++ switch (getAutoResizeMode()) ++ { ++ case AUTO_RESIZE_LAST_COLUMN: ++ col = columnModel.getColumn(ncols-1); ++ col.setWidth(col.getPreferredWidth() + spill); ++ break; ++ ++ case AUTO_RESIZE_NEXT_COLUMN: ++ col = columnModel.getColumn(ncols-1); ++ col.setWidth(col.getPreferredWidth() + spill); ++ break; ++ ++ case AUTO_RESIZE_ALL_COLUMNS: ++ cols = new TableColumn[ncols]; ++ for (int i = 0; i < ncols; ++i) ++ cols[i] = columnModel.getColumn(i); ++ distributeSpill(cols, spill); ++ break; ++ ++ case AUTO_RESIZE_SUBSEQUENT_COLUMNS: ++ cols = new TableColumn[ncols]; ++ for (int i = rCol; i < ncols; ++i) ++ cols[i] = columnModel.getColumn(i); ++ distributeSpill(cols, spill); ++ break; ++ ++ case AUTO_RESIZE_OFF: ++ default: ++ } ++ } ++ else ++ { ++ TableColumn [] cols = new TableColumn[ncols]; ++ for (int i = 0; i < ncols; ++i) ++ cols[i] = columnModel.getColumn(i); ++ distributeSpill(cols, spill); ++ } ++ } ++ ++ public void sizeColumnsToFit(boolean lastColumnOnly) + { +- throw new Error ("Not implemented"); ++ doLayout(); + } + +- public void setSelectionMode (int selectionMode) ++ public void sizeColumnsToFit(int resizingColumn) + { +- throw new Error ("Not implemented"); ++ doLayout(); + } + +- public void setSelectionModel (ListSelectionModel model) ++ ++ public String getUIClassID() + { +- throw new Error ("Not implemented"); ++ return "TableUI"; + } + +- public void setShowGrid (boolean showGrid) ++ public TableUI getUI() + { +- throw new Error ("Not implemented"); ++ return (TableUI) ui; + } + +- public void valueChanged (ListSelectionEvent event) ++ public void updateUI() + { +- throw new Error ("Not implemented"); ++ setUI((TableUI) UIManager.getUI(this)); ++ revalidate(); ++ repaint(); + } +-} // class JTable ++ ++} +Index: javax/swing/JTextArea.java +=================================================================== +RCS file: javax/swing/JTextArea.java +diff -N javax/swing/JTextArea.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/JTextArea.java 6 Sep 2004 16:35:59 -0000 +@@ -0,0 +1,252 @@ ++/* JTextArea.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing; ++ ++import java.awt.Dimension; ++import javax.swing.text.Document; ++import javax.swing.text.JTextComponent; ++import javax.swing.text.PlainDocument; ++ ++public class JTextArea extends JTextComponent ++{ ++ private static final long serialVersionUID = -6141680179310439825L; ++ ++ private int rows; ++ private int columns; ++ private boolean wrapping; ++ private int tabSize = 8; ++ ++ /** ++ * Creates a new JTextArea object. ++ */ ++ public JTextArea() ++ { ++ this(null, null, 0, 0); ++ } ++ ++ /** ++ * Creates a new JTextArea object. ++ * ++ * @param text the initial text ++ */ ++ public JTextArea(String text) ++ { ++ this(null, text, 0, 0); ++ } ++ ++ /** ++ * Creates a new JTextArea object. ++ * ++ * @param rows the number of rows ++ * @param columns the number of cols ++ * ++ * @exception IllegalArgumentException if rows or columns are negative ++ */ ++ public JTextArea(int rows, int columns) ++ { ++ this(null, null, rows, columns); ++ } ++ ++ /** ++ * Creates a new JTextArea object. ++ * ++ * @param text the initial text ++ * @param rows the number of rows ++ * @param columns the number of cols ++ * ++ * @exception IllegalArgumentException if rows or columns are negative ++ */ ++ public JTextArea(String text, int rows, int columns) ++ { ++ this(null, text, rows, columns); ++ } ++ ++ /** ++ * Creates a new JTextArea object. ++ * ++ * @param the document model to use ++ */ ++ public JTextArea(Document doc) ++ { ++ this(doc, null, 0, 0); ++ } ++ ++ /** ++ * Creates a new JTextArea object. ++ * ++ * @param the document model to use ++ * @param text the initial text ++ * @param rows the number of rows ++ * @param columns the number of cols ++ * ++ * @exception IllegalArgumentException if rows or columns are negative ++ */ ++ public JTextArea(Document doc, String text, int rows, int columns) ++ { ++ setDocument(doc == null ? createDefaultModel() : doc); ++ setText(text); ++ setRows(rows); ++ setColumns(columns); ++ } ++ ++ /** ++ * Appends some text. ++ * ++ * @param toAppend the text to append ++ */ ++ public void append(String toAppend) ++ { ++ setText(getText() + toAppend); ++ } ++ ++ /** ++ * Creates the default document model. ++ * ++ * @return a new default model ++ */ ++ protected Document createDefaultModel() ++ { ++ return new PlainDocument(); ++ } ++ ++ ++ public boolean getScrollableTracksViewportWidth() ++ { ++ return wrapping ? true : super.getScrollableTracksViewportWidth(); ++ } ++ ++ /** ++ * Returns the UI class ID string. ++ * ++ * @return the string "TextAreaUI" ++ */ ++ public String getUIClassID() ++ { ++ return "TextAreaUI"; ++ } ++ ++ /** ++ * Returns the current number of columns. ++ * ++ * @return number of columns ++ */ ++ public int getColumns() ++ { ++ return columns; ++ } ++ ++ /** ++ * Sets the number of rows. ++ * ++ * @param columns number of columns ++ * ++ * @exception IllegalArgumentException if columns is negative ++ */ ++ public void setColumns(int columns) ++ { ++ if (columns < 0) ++ throw new IllegalArgumentException(); ++ ++ this.columns = columns; ++ } ++ ++ /** ++ * Returns the current number of rows. ++ * ++ * @return number of rows ++ */ ++ public int getRows() ++ { ++ return rows; ++ } ++ ++ /** ++ * Sets the number of rows. ++ * ++ * @param columns number of columns ++ * ++ * @exception IllegalArgumentException if rows is negative ++ */ ++ public void setRows(int rows) ++ { ++ if (rows < 0) ++ throw new IllegalArgumentException(); ++ ++ this.rows = rows; ++ } ++ ++ /** ++ * Checks whethet line wrapping is enabled. ++ * ++ * @return true if line wrapping is enabled, false otherwise ++ */ ++ public boolean getLineWrap() ++ { ++ return wrapping; ++ } ++ ++ /** ++ * Enables/disables line wrapping. ++ * ++ * @param wrapping true to enable line wrapping, false otherwise ++ */ ++ public void setLineWrap(boolean flag) ++ { ++ if (wrapping == flag) ++ return; ++ ++ boolean oldValue = wrapping; ++ wrapping = flag; ++ firePropertyChange("lineWrap", oldValue, wrapping); ++ } ++ ++ public int getTabSize() ++ { ++ return tabSize; ++ } ++ ++ public void setTabSize(int newSize) ++ { ++ if (tabSize == newSize) ++ return; ++ ++ int oldValue = tabSize; ++ tabSize = newSize; ++ firePropertyChange("tabSize", oldValue, tabSize); ++ } ++} +Index: javax/swing/JTextField.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JTextField.java,v +retrieving revision 1.2 +diff -u -r1.2 JTextField.java +--- javax/swing/JTextField.java 11 Jun 2003 13:20:39 -0000 1.2 ++++ javax/swing/JTextField.java 6 Sep 2004 16:35:59 -0000 +@@ -1,5 +1,5 @@ +-/* JTextField.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++/* JTextField.java -- ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,74 +35,241 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing; + ++import java.awt.Dimension; ++import java.awt.Font; ++import java.awt.FontMetrics; ++import java.awt.event.ActionEvent; + import java.awt.event.ActionListener; +-import java.util.Vector; + import javax.accessibility.AccessibleStateSet; + import javax.swing.text.Document; + import javax.swing.text.JTextComponent; ++import javax.swing.text.PlainDocument; ++ + +-public class JTextField extends JEditorPane ++public class JTextField extends JTextComponent ++ implements SwingConstants + { ++ /** ++ * AccessibleJTextField ++ */ ++ protected class AccessibleJTextField extends AccessibleJTextComponent ++ { ++ private static final long serialVersionUID = 8255147276740453036L; + +- /** +- * AccessibleJTextField +- */ +- protected class AccessibleJTextField extends AccessibleJTextComponent { +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor AccessibleJTextField +- * @param component TODO +- */ +- protected AccessibleJTextField(JTextField component) { +- super(component); +- // TODO +- } // AccessibleJTextField() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * getAccessibleStateSet +- * @returns AccessibleStateSet +- */ +- public AccessibleStateSet getAccessibleStateSet() { +- return null; // TODO +- } // getAccessibleStateSet() ++ /** ++ * Constructor AccessibleJTextField ++ */ ++ protected AccessibleJTextField() ++ { ++ } + ++ /** ++ * getAccessibleStateSet ++ * @return AccessibleStateSet ++ */ ++ public AccessibleStateSet getAccessibleStateSet() ++ { ++ return null; ++ } ++ } + +- } // AccessibleJTextField ++ private static final long serialVersionUID = 353853209832607592L; + ++ public static final String notifyAction = "notify-field-accept"; ++ ++ private int columns; + +- Vector actions = new Vector(); ++ private int align; + ++ /** ++ * Creates a new instance of JTextField. ++ */ + public JTextField() + { ++ this(null, null, 0); + } + +- public JTextField(int a) +- { +- } ++ /** ++ * Creates a new instance of JTextField. ++ * ++ * @param text the initial text ++ */ ++ public JTextField(String text) ++ { ++ this(null, text, 0); ++ } ++ ++ /** ++ * Creates a new instance of JTextField. ++ * ++ * @param columns the number of columns ++ * ++ * @exception IllegalArgumentException if columns %lt; 0 ++ */ ++ public JTextField(int columns) ++ { ++ this(null, null, columns); ++ } + +- public void addActionListener(ActionListener l) +- { +- actions.addElement(l); +- } ++ /** ++ * Creates a new instance of JTextField. ++ * ++ * @param text the initial text ++ * @param columns the number of columns ++ * ++ * @exception IllegalArgumentException if columns %lt; 0 ++ */ ++ public JTextField(String text, int columns) ++ { ++ this(null, text, columns); ++ } + +- public void removeActionListener(ActionListener l) +- { +- actions.removeElement(l); +- } ++ /** ++ * Creates a new instance of JTextField. ++ * ++ * @param doc the document to use ++ * @param text the initial text ++ * @param columns the number of columns ++ * ++ * @exception IllegalArgumentException if columns %lt; 0 ++ */ ++ public JTextField(Document doc, String text, int columns) ++ { ++ if (columns < 0) ++ throw new IllegalArgumentException(); ++ ++ this.columns = columns; ++ ++ setDocument(doc == null ? createDefaultModel() : doc); + +- public void selectAll() +- { +- } ++ if (text != null) ++ setText(text); ++ } ++ ++ /** ++ * Creates the default model for this text field. ++ * This implementation returns an instance of PlainDocument. ++ * ++ * @return a new instance of the default model ++ */ ++ protected Document createDefaultModel() ++ { ++ return new PlainDocument(); ++ } ++ ++ /** ++ * Returns the class ID for the UI. ++ * ++ * @return "TextFieldUI"; ++ */ ++ public String getUIClassID() ++ { ++ return "TextFieldUI"; ++ } ++ ++ /** ++ * Adds a new listener object to this text field. ++ * ++ * @param listener the listener to add ++ */ ++ public void addActionListener(ActionListener listener) ++ { ++ listenerList.add(ActionListener.class, listener); ++ } ++ ++ /** ++ * Removes a listener object from this text field. ++ * ++ * @param listener the listener to remove ++ */ ++ public void removeActionListener(ActionListener listener) ++ { ++ listenerList.remove(ActionListener.class, listener); ++ } ++ ++ /** ++ * Returns all registered ActionListener objects. ++ * ++ * @return an array of listeners ++ * ++ * @since 1.4 ++ */ ++ public ActionListener[] getActionListeners() ++ { ++ return (ActionListener[]) getListeners(ActionListener.class); ++ } ++ ++ /** ++ * Sends an action event to all registered ++ * ActionListener objects. ++ */ ++ protected void fireActionPerformed() ++ { ++ ActionEvent event = new ActionEvent(this, 0, notifyAction); ++ ActionListener[] listeners = getActionListeners(); ++ ++ for (int index = 0; index < listeners.length; ++index) ++ listeners[index].actionPerformed(event); ++ } ++ ++ /** ++ * Returns the number of columns of this text field. ++ * ++ * @return the number of columns ++ */ ++ public int getColumns() ++ { ++ return columns; ++ } ++ ++ public void setColumns(int columns) ++ { ++ if (columns < 0) ++ throw new IllegalArgumentException(); ++ ++ this.columns = columns; ++ invalidate(); ++ repaint(); ++ } ++ ++ public int getHorizontalAlignment() ++ { ++ return align; ++ } ++ ++ public void setHorizontalAlignment(int newAlign) ++ { ++ int oldAlign = align; ++ align = newAlign; ++ invalidate(); ++ repaint(); ++ firePropertyChange("horizontalAlignment", oldAlign, newAlign); ++ } ++ ++ public void setFont(Font newFont) ++ { ++ super.setFont(newFont); ++ revalidate(); ++ } ++ ++ public Dimension getPreferredSize() ++ { ++ Dimension size; ++ FontMetrics fm = getFontMetrics(getFont()); ++ int fontHeight = fm.getMaxAscent() + fm.getMaxDescent(); ++ int columnWidth = fm.charWidth('m'); ++ ++ if (columns != 0) ++ { ++ size = new Dimension(columns * columnWidth + 4, fontHeight + 4); ++ } ++ else ++ { ++ size = new Dimension(10, 10); ++ } ++ ++ return size; ++ } + } +Index: javax/swing/JToggleButton.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JToggleButton.java,v +retrieving revision 1.2 +diff -u -r1.2 JToggleButton.java +--- javax/swing/JToggleButton.java 11 Jun 2003 13:20:39 -0000 1.2 ++++ javax/swing/JToggleButton.java 6 Sep 2004 16:35:59 -0000 +@@ -1,5 +1,5 @@ + /* JToggleButton.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -44,66 +44,102 @@ + + public class JToggleButton extends AbstractButton implements Accessible + { +- public JToggleButton() +- { +- this(null, null); +- } +- public JToggleButton(Action a) +- { +- this(); +- setAction(a); +- } + +- public JToggleButton(Icon icon) +- { +- this(null, icon); +- } ++ public static class ToggleButtonModel extends DefaultButtonModel ++ { ++ private static final long serialVersionUID = -1589950750899943974L; + +- public JToggleButton(String text) ++ public void setPressed(boolean b) + { +- this(text, null); +- } ++ if (! isEnabled()) ++ return; + +- public JToggleButton(String text, Icon icon) +- { +- this(text, icon, false); +- } +- +- public JToggleButton (String text, Icon icon, boolean selected) +- { +- super(text, icon); +- +- // Create the model +- setModel(new ToggleButtonModel(this)); +- +- model.setSelected(selected); ++ super.setPressed(b); ++ ++ // setPressed(false) == mouse release on us, ++ // if we were armed, we flip the selected state. ++ if (!b && isArmed()) ++ setSelected(! isSelected()); + } ++ } + + ++ private static final long serialVersionUID = -3128248873429850443L; + +- public AccessibleContext getAccessibleContext() +- { +- //Gets the AccessibleContext associated with this JToggleButton. +- return null; +- } ++ public JToggleButton() ++ { ++ this(null, null); ++ } ++ public JToggleButton(Action a) ++ { ++ this(); ++ setAction(a); ++ } ++ ++ public JToggleButton(Icon icon) ++ { ++ this(null, icon); ++ } + +- public String getUIClassID() +- { +- //Returns a string that specifies the name of the L&F class that renders this component. +- return "JToggleButton"; +- } ++ public JToggleButton (Icon icon, boolean selected) ++ { ++ this(null, icon, selected); ++ } + +- protected String paramString() +- { +- return "JToggleButton"; +- } ++ public JToggleButton(String text) ++ { ++ this(text, null); ++ } ++ ++ public JToggleButton(String text, boolean selected) ++ { ++ this(text, null, selected); ++ } ++ ++ public JToggleButton(String text, Icon icon) ++ { ++ this(text, icon, false); ++ } ++ ++ public JToggleButton (String text, Icon icon, boolean selected) ++ { ++ super(text, icon); ++ ++ horizontalAlignment = LEADING; ++ setModel(new ToggleButtonModel()); ++ model.setSelected(selected); ++ } ++ ++ /** ++ * Gets the AccessibleContext associated with this JToggleButton. ++ * ++ * @return the associated context ++ */ ++ public AccessibleContext getAccessibleContext() ++ { ++ return null; ++ } + ++ /** ++ * Returns a string that specifies the name of the Look and Feel ++ * class that renders this component. ++ */ ++ public String getUIClassID() ++ { ++ return "ToggleButtonUI"; ++ } + +- public void updateUI() +- { +- ButtonUI b = (ButtonUI)UIManager.getUI(this); +- setUI(b); +- } ++ protected String paramString() ++ { ++ return "JToggleButton"; ++ } ++ ++ ++ public void updateUI() ++ { ++ ButtonUI b = (ButtonUI)UIManager.getUI(this); ++ setUI(b); ++ } + } + + +Index: javax/swing/JToolBar.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JToolBar.java,v +retrieving revision 1.3 +diff -u -r1.3 JToolBar.java +--- javax/swing/JToolBar.java 10 Jan 2004 21:07:43 -0000 1.3 ++++ javax/swing/JToolBar.java 6 Sep 2004 16:35:59 -0000 +@@ -37,11 +37,13 @@ + + package javax.swing; + +-import java.awt.Dimension; + import java.awt.Component; + import java.awt.Container; ++import java.awt.Dimension; + import java.awt.Graphics; ++import java.awt.GridLayout; + import java.awt.Insets; ++import java.awt.LayoutManager; + import java.beans.PropertyChangeListener; + import java.io.IOException; + import java.io.ObjectOutputStream; +@@ -51,424 +53,735 @@ + import javax.accessibility.AccessibleStateSet; + import javax.swing.plaf.ToolBarUI; + ++ + /** +- * JToolBar +- * @author Andrew Selkirk +- * @version 1.0 ++ * JToolBar is a component that provides a toolbar to Swing programs. Users ++ * can add buttons (or actions that will be represented by JButtons) as well ++ * as other components to the JToolBar. JToolBars can be dragged in and out ++ * of their parent components. If the JToolBar is dragged out of the parent, ++ * then it will be displayed in its own RootPaneContainer. For dragging to ++ * work properly, JToolBars need to be placed in a Container that has a ++ * BorderLayout. That parent Container cannot have components in the NORTH, ++ * EAST, SOUTH, or WEST components (that is not the JToolBar). + */ +-public class JToolBar extends JComponent +- implements SwingConstants, Accessible ++public class JToolBar extends JComponent implements SwingConstants, Accessible + { +- +- //------------------------------------------------------------- +- // Classes ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * AccessibleJToolBar +- */ +- protected class AccessibleJToolBar extends AccessibleJComponent { +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor AccessibleJToolBar +- * @param component TODO +- */ +- protected AccessibleJToolBar(JToolBar component) { +- super(component); +- // TODO +- } // AccessibleJToolBar() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * getAccessibleStateSet +- * @returns AccessibleStateSet +- */ +- public AccessibleStateSet getAccessibleStateSet() { +- return null; // TODO +- } // getAccessibleStateSet() +- +- /** +- * getAccessibleRole +- * @returns AccessibleRole +- */ +- public AccessibleRole getAccessibleRole() { +- return AccessibleRole.TOOL_BAR; +- } // getAccessibleRole() +- +- +- } // AccessibleJToolBar +- +- /** +- * Separator +- */ +- public static class Separator extends JSeparator { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * separatorSize +- */ +- private Dimension size; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor Separator +- */ +- public Separator() { +- // TODO +- } // Separator() +- +- /** +- * Constructor Separator +- * @param size TODO +- */ +- public Separator(Dimension size) { +- // TODO +- } // Separator() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * getUIClassID +- * @returns String +- */ +- public String getUIClassID() { +- return null; // TODO ++ /** ++ * AccessibleJToolBar ++ */ ++ protected class AccessibleJToolBar extends AccessibleJComponent ++ { ++ /** DOCUMENT ME! */ ++ private static final long serialVersionUID = -5516888265903814215L; ++ ++ /** ++ * Constructor AccessibleJToolBar ++ */ ++ protected AccessibleJToolBar() ++ { ++ } ++ ++ /** ++ * getAccessibleStateSet ++ * ++ * @return AccessibleStateSet ++ */ ++ public AccessibleStateSet getAccessibleStateSet() ++ { ++ return null; // TODO ++ } ++ ++ /** ++ * getAccessibleRole ++ * ++ * @return AccessibleRole ++ */ ++ public AccessibleRole getAccessibleRole() ++ { ++ return AccessibleRole.TOOL_BAR; ++ } ++ } ++ ++ /** ++ * This is the private JToolBar layout manager. ++ */ ++ private class DefaultToolBarLayout implements LayoutManager ++ { ++ /** ++ * This method is called when a new component is added to the container. ++ * ++ * @param name The name of the component added. ++ * @param comp The component that was added. ++ */ ++ public void addLayoutComponent(String name, Component comp) ++ { ++ // Do nothing. ++ } ++ ++ /** ++ * This method is called to lay out the given container to position and ++ * size the child components. ++ * ++ * @param c The container to lay out. ++ * ++ * @throws Error DOCUMENT ME! ++ */ ++ public void layoutContainer(Container c) ++ { ++ if (! (c instanceof JToolBar)) ++ throw new Error("DefaultToolBarLayout can only be used on JToolBars."); ++ Insets insets = getInsets(); ++ Insets margin = getMargin(); ++ int middle; ++ if (margin != null) ++ { ++ insets.left += margin.left; ++ insets.top += margin.top; ++ insets.bottom += margin.bottom; ++ insets.right += margin.right; ++ } ++ Component[] components = c.getComponents(); ++ Dimension tdims = c.getSize(); ++ int start = 0; ++ Dimension pref; ++ ++ if (getOrientation() == SwingUtilities.HORIZONTAL) ++ { ++ start += insets.left; ++ for (int i = 0; i < components.length; i++) ++ { ++ if (components[i] != null && components[i].isVisible()) ++ { ++ pref = components[i].getPreferredSize(); ++ if (pref != null) ++ { ++ middle = (tdims.height - pref.height) / 2; ++ components[i].setBounds(start, middle, pref.width, ++ pref.height); ++ start += pref.width; ++ } ++ } ++ } ++ } ++ else ++ { ++ start += insets.top; ++ for (int i = 0; i < components.length; i++) ++ { ++ if (components[i] != null && components[i].isVisible()) ++ { ++ pref = components[i].getPreferredSize(); ++ if (pref != null) ++ { ++ middle = (tdims.width - pref.width) / 2; ++ components[i].setBounds(middle, start, pref.width, ++ pref.height); ++ start += pref.height; ++ } ++ } ++ } ++ } ++ } ++ ++ /** ++ * This method returns the minimum size of the given container given the ++ * child components. ++ * ++ * @param parent The container to measure. ++ * ++ * @return The minimum size of the given container. ++ */ ++ public Dimension minimumLayoutSize(Container parent) ++ { ++ return preferredLayoutSize(parent); ++ } ++ ++ /** ++ * This method returns the preferred size of the given container given the ++ * child components. ++ * ++ * @param parent The container to measure. ++ * ++ * @return The preferred size of the given container. ++ */ ++ public Dimension preferredLayoutSize(Container parent) ++ { ++ int orientation = getOrientation(); ++ Component[] components = getComponents(); ++ ++ int limit = 0; ++ int total = 0; ++ Dimension dims; ++ ++ int w = 0; ++ int h = 0; ++ ++ if (orientation == SwingConstants.HORIZONTAL) ++ { ++ for (int i = 0; i < components.length; i++) ++ { ++ dims = components[i].getPreferredSize(); ++ if (dims != null) ++ { ++ if (dims.height > limit) ++ limit = dims.height; ++ total += dims.width; ++ } ++ } ++ w = total; ++ h = limit; ++ } ++ else ++ { ++ for (int i = 0; i < components.length; i++) ++ { ++ dims = components[i].getPreferredSize(); ++ if (dims != null) ++ { ++ if (dims.width > limit) ++ limit = dims.width; ++ total += dims.height; ++ } ++ } ++ w = limit; ++ h = total; ++ } ++ ++ Insets insets = getInsets(); ++ w += insets.left + insets.right; ++ h += insets.top + insets.bottom; ++ ++ Insets margin = getMargin(); ++ if (margin != null) ++ { ++ w += margin.left + margin.right; ++ h += margin.top + margin.bottom; ++ } ++ ++ return new Dimension(w, h); ++ } ++ ++ /** ++ * This method is called when the given component is removed from the ++ * container. ++ * ++ * @param comp The component removed. ++ */ ++ public void removeLayoutComponent(Component comp) ++ { ++ // Do nothing. ++ } ++ } ++ ++ /** ++ * This is an extension of JSeparator used in toolbars. Unlike JSeparator, ++ * nothing is painted for this Separator, it is only blank space that ++ * separates components. ++ */ ++ public static class Separator extends JSeparator ++ { ++ /** DOCUMENT ME! */ ++ private static final long serialVersionUID = -1656745644823105219L; ++ ++ /** ++ * Creates a new Separator object. ++ */ ++ public Separator() ++ { ++ super(); ++ } // Separator() ++ ++ /** ++ * Creates a new Separator object with the given size. ++ * ++ * @param size The size of the separator. ++ */ ++ public Separator(Dimension size) ++ { ++ setPreferredSize(size); ++ } // Separator() ++ ++ /** ++ * This method returns the String ID of the UI class of Separator. ++ * ++ * @return The UI class' String ID. ++ */ ++ public String getUIClassID() ++ { ++ return "ToolBarSeparatorUI"; + } // getUIClassID() + + /** +- * getPreferredSize +- * @returns Dimension +- */ +- public Dimension getPreferredSize() { +- return null; // TODO ++ * This method returns the preferred size of the Separator. ++ * ++ * @return The preferred size of the Separator. ++ */ ++ public Dimension getPreferredSize() ++ { ++ return super.getPreferredSize(); + } // getPreferredSize() + + /** +- * getMaximumSize +- * @returns Dimension +- */ +- public Dimension getMaximumSize() { +- return null; // TODO ++ * This method returns the maximum size of the Separator. ++ * ++ * @return The maximum size of the Separator. ++ */ ++ public Dimension getMaximumSize() ++ { ++ return super.getPreferredSize(); + } // getMaximumSize() + + /** +- * getMinimumSize +- * @returns Dimension +- */ +- public Dimension getMinimumSize() { +- return null; // TODO ++ * This method returns the minimum size of the Separator. ++ * ++ * @return The minimum size of the Separator. ++ */ ++ public Dimension getMinimumSize() ++ { ++ return super.getPreferredSize(); + } // getMinimumSize() + + /** +- * getSeparatorSize +- * @returns Dimension +- */ +- public Dimension getSeparatorSize() { +- return null; // TODO ++ * This method returns the size of the Separator. ++ * ++ * @return The size of the Separator. ++ */ ++ public Dimension getSeparatorSize() ++ { ++ return super.getPreferredSize(); + } // getSeparatorSize() + + /** +- * setSeparatorSize +- * @param size TODO +- */ +- public void setSeparatorSize(Dimension size) { +- // TODO ++ * This method sets the size of the Separator. ++ * ++ * @param size The new size of the Separator. ++ */ ++ public void setSeparatorSize(Dimension size) ++ { ++ setPreferredSize(size); + } // setSeparatorSize() +- +- + } // Separator + ++ /** DOCUMENT ME! */ ++ private static final long serialVersionUID = -1269915519555129643L; ++ ++ /** Whether the JToolBar paints its border. */ ++ private transient boolean paintBorder = true; + +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- ++ /** The extra insets around the JToolBar. */ ++ private transient Insets margin; + +- /** +- * uiClassID +- */ +- private static final String uiClassID = "ToolBarUI"; ++ /** Whether the JToolBar can float (and be dragged around). */ ++ private transient boolean floatable = true; + +- /** +- * paintBorder +- */ +- private boolean paintBorder; ++ /** Whether the buttons will have rollover borders. */ ++ private transient boolean rollover; + +- /** +- * margin +- */ +- private Insets margin; ++ /** The orientation of the JToolBar. */ ++ private int orientation = HORIZONTAL; + +- /** +- * floatable +- */ +- private boolean floatable; ++ /** Fired in a PropertyChangeEvent when the orientation property changes. */ ++ public static final String ORIENTATION_CHANGED_PROPERTY = "orientation"; + +- /** +- * orientation +- */ +- private int orientation; ++ /** Fired in a PropertyChangeEvent when the floatable property changes. */ ++ public static final String FLOATABLE_CHANGED_PROPERTY = "floatable"; + ++ /** Fired in a PropertyChangeEvent when the borderPainted property changes. */ ++ public static final String BORDER_PAINTED_CHANGED_PROPERTY = "borderPainted"; + +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- ++ /** Fired in a PropertyChangeEvent when the margin property changes. */ ++ public static final String MARGIN_CHANGED_PROPERTY = "margin"; + +- /** +- * Constructor JToolBar +- */ +- public JToolBar() { +- // TODO +- } // JToolBar() ++ /** Fired in a PropertyChangeEvent when the rollover property changes. */ ++ public static final String ROLLOVER_CHANGED_PROPERTY = "rollover"; + + /** +- * Constructor JToolBar +- * @param orientation TODO ++ * This method creates a new JToolBar object with horizontal orientation ++ * and no name. + */ +- public JToolBar(int orientation) { +- // TODO ++ public JToolBar() ++ { ++ this(null, HORIZONTAL); + } // JToolBar() + + /** +- * Constructor JToolBar +- * @param name TODO +- */ +- public JToolBar(String name) { +- // TODO ++ * This method creates a new JToolBar with the given orientation and no ++ * name. ++ * ++ * @param orientation JToolBar orientation (HORIZONTAL or VERTICAL) ++ */ ++ public JToolBar(int orientation) ++ { ++ this(null, orientation); + } // JToolBar() + + /** +- * Constructor JToolBar +- * @param name TODO +- * @param orientation TODO +- */ +- public JToolBar(String name, int orientation) { +- // TODO ++ * This method creates a new JToolBar object with the given name and ++ * horizontal orientation. ++ * ++ * @param name Name assigned to undocked tool bar. ++ */ ++ public JToolBar(String name) ++ { ++ this(name, HORIZONTAL); + } // JToolBar() + +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- + /** +- * writeObject +- * @param stream TODO +- * @exception IOException TODO +- */ +- private void writeObject(ObjectOutputStream stream) throws IOException { +- // TODO +- } // writeObject() ++ * This method creates a new JToolBar object with the given name and ++ * orientation. ++ * ++ * @param name Name assigned to undocked tool bar. ++ * @param orientation JToolBar orientation (HORIZONTAL or VERTICAL) ++ */ ++ public JToolBar(String name, int orientation) ++ { ++ setName(name); ++ setOrientation(orientation); ++ setLayout(new DefaultToolBarLayout()); ++ revalidate(); ++ updateUI(); ++ } // JToolBar() + + /** +- * add +- * @param action TODO +- * @returns JButton +- */ +- public JButton add(Action action) { +- return null; // TODO ++ * This method adds a new JButton that performs the given Action to the ++ * JToolBar. ++ * ++ * @param action The Action to add to the JToolBar. ++ * ++ * @return The JButton that wraps the Action. ++ */ ++ public JButton add(Action action) ++ { ++ JButton b = createActionComponent(action); ++ add(b); ++ return b; + } // add() + + /** +- * paintBorder +- * @param graphics TODO +- */ +- protected void paintBorder(Graphics graphics) { +- // TODO ++ * This method paints the border if the borderPainted property is true. ++ * ++ * @param graphics The graphics object to paint with. ++ */ ++ protected void paintBorder(Graphics graphics) ++ { ++ if (paintBorder && isFloatable()) ++ super.paintBorder(graphics); + } // paintBorder() + + /** +- * getUI +- * @returns ToolBarUI ++ * This method returns the UI class used to paint this JToolBar. ++ * ++ * @return The UI class for this JToolBar. + */ +- public ToolBarUI getUI() { ++ public ToolBarUI getUI() ++ { + return (ToolBarUI) ui; + } // getUI() + + /** +- * setUI +- * @param ui TODO ++ * This method sets the UI used with the JToolBar. ++ * ++ * @param ui The UI used with the JToolBar. + */ +- public void setUI(ToolBarUI ui) { ++ public void setUI(ToolBarUI ui) ++ { + super.setUI(ui); + } // setUI() + + /** +- * updateUI ++ * This method resets the UI used to the Look and Feel defaults. + */ +- public void updateUI() { +- setUI((ToolBarUI) UIManager.get(this)); +- invalidate(); ++ public void updateUI() ++ { ++ setUI((ToolBarUI)UIManager.getUI(this)); ++ revalidate(); ++ repaint(); + } // updateUI() + + /** +- * getUIClassID +- * @returns String +- */ +- public String getUIClassID() { +- return uiClassID; ++ * This method returns the String identifier for the UI class to the used ++ * with the JToolBar. ++ * ++ * @return The String identifier for the UI class. ++ */ ++ public String getUIClassID() ++ { ++ return "ToolBarUI"; + } // getUIClassID() + + /** +- * getComponentIndex +- * @param component TODO +- * @returns int +- */ +- public int getComponentIndex(Component component) { +- return 0; // TODO ++ * This method sets the rollover property for the JToolBar. In rollover ++ * mode, JButtons inside the JToolBar will only display their borders when ++ * the mouse is moving over them. ++ * ++ * @param b The new rollover property. ++ */ ++ public void setRollover(boolean b) ++ { ++ if (b != rollover) ++ { ++ rollover = b; ++ firePropertyChange(ROLLOVER_CHANGED_PROPERTY, ! rollover, rollover); ++ revalidate(); ++ repaint(); ++ } ++ } ++ ++ /** ++ * This method returns the rollover property. ++ * ++ * @return The rollover property. ++ */ ++ public boolean isRollover() ++ { ++ return rollover; ++ } ++ ++ /** ++ * This method returns the index of the given component. ++ * ++ * @param component The component to find. ++ * ++ * @return The index of the given component. ++ */ ++ public int getComponentIndex(Component component) ++ { ++ Component[] components = getComponents(); ++ if (components == null) ++ return -1; ++ ++ for (int i = 0; i < components.length; i++) ++ if (components[i] == component) ++ return i; ++ ++ return -1; + } // getComponentIndex() + + /** +- * getComponentAtIndex +- * @param index TODO +- * @returns Component +- */ +- public Component getComponentAtIndex(int index) { +- return null; // TODO ++ * This method returns the component at the given index. ++ * ++ * @param index The index of the component. ++ * ++ * @return The component at the given index. ++ */ ++ public Component getComponentAtIndex(int index) ++ { ++ return getComponent(index); + } // getComponentAtIndex() + + /** +- * getMargin +- * @returns Insets +- */ +- public Insets getMargin() { +- return null; // TODO ++ * This method returns the margin property. ++ * ++ * @return The margin property. ++ */ ++ public Insets getMargin() ++ { ++ return margin; + } // getMargin() + + /** +- * setMargin +- * @param margin TODO +- */ +- public void setMargin(Insets margin) { +- // TODO ++ * This method sets the margin property. The margin property determines the ++ * extra space between the children components of the JToolBar and the ++ * border. ++ * ++ * @param margin The margin property. ++ */ ++ public void setMargin(Insets margin) ++ { ++ if ((this.margin != null && margin == null) ++ || (this.margin == null && margin != null) ++ || (margin != null && this.margin != null ++ && (margin.left != this.margin.left ++ || margin.right != this.margin.right || margin.top != this.margin.top ++ || margin.bottom != this.margin.bottom))) ++ { ++ Insets oldMargin = this.margin; ++ this.margin = margin; ++ firePropertyChange(MARGIN_CHANGED_PROPERTY, oldMargin, this.margin); ++ revalidate(); ++ repaint(); ++ } + } // setMargin() + + /** +- * isBorderPainted +- * @returns boolean +- */ +- public boolean isBorderPainted() { +- return false; // TODO ++ * This method returns the borderPainted property. ++ * ++ * @return The borderPainted property. ++ */ ++ public boolean isBorderPainted() ++ { ++ return paintBorder; + } // isBorderPainted() + + /** +- * setBorderPainted +- * @param painted TODO +- */ +- public void setBorderPainted(boolean painted) { +- // TODO ++ * This method sets the borderPainted property. If set to false, the border ++ * will not be painted. ++ * ++ * @param painted Whether the border will be painted. ++ */ ++ public void setBorderPainted(boolean painted) ++ { ++ if (painted != paintBorder) ++ { ++ paintBorder = painted; ++ firePropertyChange(BORDER_PAINTED_CHANGED_PROPERTY, ! paintBorder, ++ paintBorder); ++ repaint(); ++ } + } // setBorderPainted() + + /** +- * isFloatable +- * @returns boolean +- */ +- public boolean isFloatable() { +- return false; // TODO ++ * This method returns the floatable property. ++ * ++ * @return The floatable property. ++ */ ++ public boolean isFloatable() ++ { ++ return floatable; + } // isFloatable() + + /** +- * setFloatable +- * @param floatable TODO +- */ +- public void setFloatable(boolean floatable) { +- // TODO ++ * This method sets the floatable property. If set to false, the JToolBar ++ * cannot be dragged. ++ * ++ * @param floatable Whether the JToolBar can be dragged. ++ */ ++ public void setFloatable(boolean floatable) ++ { ++ if (floatable != this.floatable) ++ { ++ this.floatable = floatable; ++ firePropertyChange(FLOATABLE_CHANGED_PROPERTY, ! floatable, floatable); ++ } + } // setFloatable() + + /** +- * getOrientation +- * @returns int +- */ +- public int getOrientation() { +- return 0; // TODO ++ * This method returns the orientation of the JToolBar. ++ * ++ * @return The orientation of the JToolBar. ++ */ ++ public int getOrientation() ++ { ++ return orientation; + } // getOrientation() + + /** +- * setOrientation +- * @param orientation TODO +- */ +- public void setOrientation(int orientation) { +- // TODO ++ * This method sets the layout manager to be used with the JToolBar. ++ * ++ * @param mgr The Layout Manager used with the JToolBar. ++ */ ++ public void setLayout(LayoutManager mgr) ++ { ++ super.setLayout(mgr); ++ revalidate(); ++ repaint(); ++ } // setLayout() ++ ++ /** ++ * This method sets the orientation property for JToolBar. ++ * ++ * @param orientation The new orientation for JToolBar. ++ * ++ * @throws IllegalArgumentException If the orientation is not HORIZONTAL or ++ * VERTICAL. ++ */ ++ public void setOrientation(int orientation) ++ { ++ if (orientation != HORIZONTAL && orientation != VERTICAL) ++ throw new IllegalArgumentException(orientation ++ + " is not a legal orientation"); ++ if (orientation != this.orientation) ++ { ++ int oldOrientation = this.orientation; ++ this.orientation = orientation; ++ firePropertyChange(ORIENTATION_CHANGED_PROPERTY, oldOrientation, ++ this.orientation); ++ revalidate(); ++ repaint(); ++ } + } // setOrientation() + + /** +- * addSeparator ++ * This method adds a Separator of default size to the JToolBar. + */ +- public void addSeparator() { +- // TODO ++ public void addSeparator() ++ { ++ add(new Separator()); + } // addSeparator() + + /** +- * addSeparator +- * @param size TODO +- */ +- public void addSeparator(Dimension size) { +- // TODO ++ * This method adds a Separator with the given size to the JToolBar. ++ * ++ * @param size The size of the Separator. ++ */ ++ public void addSeparator(Dimension size) ++ { ++ add(new Separator(size)); + } // addSeparator() + + /** +- * createActionComponent +- * @param action TODO +- * @returns JButton +- */ +- protected JButton createActionComponent(Action action) { +- return null; // TODO ++ * This method is used to create JButtons which can be added to the JToolBar ++ * for the given action. ++ * ++ * @param action The action to create a JButton for. ++ * ++ * @return The JButton created from the action. ++ */ ++ protected JButton createActionComponent(Action action) ++ { ++ return new JButton(action); + } // createActionComponent() + + /** +- * createActionChangeListener +- * @param button TODO +- * @returns PropertyChangeListener +- */ +- protected PropertyChangeListener createActionChangeListener(JButton button) { +- return null; // TODO ++ * This method creates a pre-configured PropertyChangeListener which updates ++ * the control as changes are made to the Action. However, this is no ++ * longer the recommended way of adding Actions to Containers. As such, ++ * this method returns null. ++ * ++ * @param button The JButton to configure a PropertyChangeListener for. ++ * ++ * @return null. ++ */ ++ protected PropertyChangeListener createActionChangeListener(JButton button) ++ { ++ // XXX: As specified, this returns null. But seems kind of strange, usually deprecated methods don't just return null, verify! ++ return null; + } // createActionChangeListener() + + /** +- * addImpl +- * @param component TODO +- * @param constraints TODO +- * @param index TODO +- */ +- protected void addImpl(Component component, Object constraints, int index) { +- // TODO +- } // addImpl() +- +- /** +- * paramString +- * @returns String +- */ +- protected String paramString() { +- return null; // TODO ++ * This method overrides Container's addImpl method. If a JButton is added, ++ * it is disabled. ++ * ++ * @param component The Component to add. ++ * @param constraints The Constraints placed on the component. ++ * @param index The index to place the Component at. ++ */ ++ protected void addImpl(Component component, Object constraints, int index) ++ { ++ // XXX: Sun says disable button but test cases show otherwise. ++ super.addImpl(component, constraints, index); ++ } // addImpl() ++ ++ /** ++ * This method returns a String description of the JToolBar. ++ * ++ * @return A String description of the JToolBar. ++ */ ++ protected String paramString() ++ { ++ return "JToolBar"; + } // paramString() + +- /** +- * getAccessibleContext +- * @returns AccessibleContext +- */ +- public AccessibleContext getAccessibleContext() { +- if (accessibleContext == null) { +- accessibleContext = new AccessibleJToolBar(this); +- } // if +- return accessibleContext; +- } // getAccessibleContext() +- +- +-} // JToolBar ++ /** ++ * getAccessibleContext ++ * ++ * @return AccessibleContext ++ */ ++ public AccessibleContext getAccessibleContext() ++ { ++ if (accessibleContext == null) ++ accessibleContext = new AccessibleJToolBar(); ++ ++ return accessibleContext; ++ } ++} +Index: javax/swing/JToolTip.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JToolTip.java,v +retrieving revision 1.2 +diff -u -r1.2 JToolTip.java +--- javax/swing/JToolTip.java 11 Jun 2003 13:20:39 -0000 1.2 ++++ javax/swing/JToolTip.java 6 Sep 2004 16:35:59 -0000 +@@ -1,5 +1,5 @@ +-/* JToolTip.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++/* JToolTip.java -- ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,20 +35,160 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing; + ++import java.awt.AWTEvent; + import javax.accessibility.Accessible; + import javax.accessibility.AccessibleContext; ++import javax.accessibility.AccessibleRole; ++import javax.swing.plaf.ToolTipUI; ++ + ++/** ++ * This class is used to display ToolTips. ToolTips are small floating windows ++ * that display text when the mouse comes to rest over a Component. ToolTips ++ * are set for JComponents using JComponent.setToolTipText(String). ++ */ + public class JToolTip extends JComponent implements Accessible + { +- String text; ++ /** DOCUMENT ME! */ ++ private static final long serialVersionUID = -1138929898906751643L; + +- JToolTip(String text) ++ /** ++ * DOCUMENT ME! ++ */ ++ protected class AccessibleJToolTip extends AccessibleJComponent ++ { ++ /** ++ * Creates a new AccessibleJToolTip object. ++ */ ++ protected AccessibleJToolTip() + { +- this.text = text; + } +-} + ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public String getAccessibleDescription() ++ { ++ return null; ++ } + ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public AccessibleRole getAccessibleRole() ++ { ++ return null; ++ } ++ } ++ ++ /** The text to display in the JToolTip. */ ++ String text; ++ ++ /** The JComponent this JToolTip is used for. */ ++ JComponent component; ++ ++ /** ++ * Creates a new JToolTip object. ++ */ ++ public JToolTip() ++ { ++ disableEvents(AWTEvent.MOUSE_EVENT_MASK); ++ updateUI(); ++ } ++ ++ /** ++ * This method returns the text this JToolTip displays. ++ * ++ * @return The text that this JToolTip displays. ++ */ ++ public String getTipText() ++ { ++ return text; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public AccessibleContext getAccessibleContext() ++ { ++ return null; ++ } ++ ++ /** ++ * This method returns the JComponent this JToolTip displays for. ++ * ++ * @return The JComponent this JToolTip displays for. ++ */ ++ public JComponent getComponent() ++ { ++ return component; ++ } ++ ++ /** ++ * This method returns the UI responsible for displaying this JToolTip. ++ * ++ * @return The UI responsible for displaying this JToolTip. ++ */ ++ public ToolTipUI getUI() ++ { ++ return (ToolTipUI) ui; ++ } ++ ++ /** ++ * This method returns the String identifier for the UI class. ++ * ++ * @return The String identifier for the UI class. ++ */ ++ public String getUIClassID() ++ { ++ return "ToolTipUI"; ++ } ++ ++ /** ++ * This method returns a debugging String describing the JToolTip. ++ * ++ * @return A debugging String describing the JToolTip. ++ */ ++ protected String paramString() ++ { ++ return "JToolTip"; ++ } ++ ++ /** ++ * This method sets the JComponent that the JToolTip displays for. ++ * ++ * @param c The JComponent that the JToolTip displays for. ++ */ ++ public void setComponent(JComponent c) ++ { ++ component = c; ++ } ++ ++ /** ++ * This method sets the text that the JToolTip displays. ++ * ++ * @param tipText The text that the JToolTip displays. ++ */ ++ public void setTipText(String tipText) ++ { ++ text = tipText; ++ } ++ ++ /** ++ * This method resets the UI used to the Look and Feel default. ++ */ ++ public void updateUI() ++ { ++ setUI((ToolTipUI) UIManager.getUI(this)); ++ revalidate(); ++ repaint(); ++ } ++} +Index: javax/swing/JTree.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JTree.java,v +retrieving revision 1.2 +diff -u -r1.2 JTree.java +--- javax/swing/JTree.java 11 Jun 2003 13:20:39 -0000 1.2 ++++ javax/swing/JTree.java 6 Sep 2004 16:35:59 -0000 +@@ -1,5 +1,5 @@ +-/* JTree.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++/* JTree.java -- ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,92 +35,439 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing; + + import java.awt.Dimension; + import java.awt.Rectangle; +-import java.io.Serializable; + import java.util.Hashtable; + import java.util.Vector; + import javax.accessibility.Accessible; + import javax.accessibility.AccessibleContext; +-import javax.swing.event.TreeModelEvent; +-import javax.swing.event.TreeModelListener; ++import javax.swing.event.TreeExpansionEvent; ++import javax.swing.event.TreeExpansionListener; + import javax.swing.event.TreeSelectionEvent; + import javax.swing.event.TreeSelectionListener; ++import javax.swing.event.TreeWillExpandListener; + import javax.swing.plaf.TreeUI; +-import javax.swing.tree.DefaultTreeSelectionModel; +-import javax.swing.tree.TreeCellEditor; ++import javax.swing.tree.ExpandVetoException; + import javax.swing.tree.TreeCellRenderer; + import javax.swing.tree.TreeModel; + import javax.swing.tree.TreeNode; + import javax.swing.tree.TreePath; +-import javax.swing.tree.TreeSelectionModel; +- +-public class JTree extends JComponent implements Scrollable, Accessible +-{ +- JTree() +- { +- updateUI(); +- } +- +- public TreeUI getUI() +- { +- return (TreeUI) ui; +- } +- +- public void setUI(TreeUI ui) +- { +- super.setUI(ui); +- } +- +- public void updateUI() +- { +- setUI((TreeUI)UIManager.getUI(this)); +- } +- +- +- public String getUIClassID() +- { +- return "JTree"; +- } +- +- +- public AccessibleContext getAccessibleContext() +- { +- return null; +- } +- +- public Dimension getPreferredScrollableViewportSize() +- { +- return null; +- } +- +- public int getScrollableUnitIncrement(Rectangle visibleRect, +- int orientation, +- int direction) +- { +- return 1; +- } +- +- public int getScrollableBlockIncrement(Rectangle visibleRect, +- int orientation, +- int direction) +- { +- return 1; +- } +- +- public boolean getScrollableTracksViewportWidth() +- { +- return false; +- } +- +- public boolean getScrollableTracksViewportHeight() +- { +- return false; +- } +-} + + ++public class JTree extends JComponent ++ implements Scrollable, Accessible ++{ ++ private static final long serialVersionUID = 7559816092864483649L; + ++ protected TreeCellRenderer cellRenderer; ++ protected boolean editable; ++ protected boolean rootVisible; ++ protected boolean showsRootHandles; ++ protected TreeModel treeModel; ++ ++ /** ++ * Creates a new JTree object. ++ */ ++ public JTree() ++ { ++ treeModel = createTreeModel(null); ++ } ++ ++ /** ++ * Creates a new JTree object. ++ * ++ * @param value the initial nodes in the tree ++ */ ++ public JTree(Hashtable value) ++ { ++ treeModel = createTreeModel(value); ++ } ++ ++ /** ++ * Creates a new JTree object. ++ * ++ * @param value the initial nodes in the tree ++ */ ++ public JTree(Object[] value) ++ { ++ treeModel = createTreeModel(value); ++ } ++ ++ /** ++ * Creates a new JTree object. ++ * ++ * @param model the model to use ++ */ ++ public JTree(TreeModel model) ++ { ++ treeModel = model; ++ } ++ ++ /** ++ * Creates a new JTree object. ++ * ++ * @param root the root node ++ */ ++ public JTree(TreeNode root) ++ { ++ this(root, false); ++ } ++ ++ /** ++ * Creates a new JTree object. ++ * ++ * @param root the root node ++ * @param asksAllowChildren if false, all nodes without children are leaf nodes. ++ * If true, only nodes that do not allow children are leaf nodes. ++ */ ++ public JTree(TreeNode root, boolean asksAllowChildren) ++ { ++ } ++ ++ /** ++ * Creates a new JTree object. ++ * ++ * @param value the initial nodes in the tree ++ */ ++ public JTree(Vector value) ++ { ++ treeModel = createTreeModel(value); ++ } ++ ++ /** ++ * Creates a new TreeModel object. ++ * ++ * @param value the values stored in the model ++ */ ++ protected static TreeModel createTreeModel(Object value) ++ { ++ // FIXME: Implement this. ++ return null; ++ } ++ ++ /** ++ * Return the UI associated with this JTree object. ++ * ++ * @return the associated TreeUI object ++ */ ++ public TreeUI getUI() ++ { ++ return (TreeUI) ui; ++ } ++ ++ /** ++ * Sets the UI associated with this JTree object. ++ * ++ * @param ui the TreeUI to associate ++ */ ++ public void setUI(TreeUI ui) ++ { ++ super.setUI(ui); ++ } ++ ++ /** ++ * This method resets the UI used to the Look and Feel defaults.. ++ */ ++ public void updateUI() ++ { ++ setUI((TreeUI) UIManager.getUI(this)); ++ } ++ ++ /** ++ * This method returns the String ID of the UI class of Separator. ++ * ++ * @return The UI class' String ID. ++ */ ++ public String getUIClassID() ++ { ++ return "TreeUI"; ++ } ++ ++ /** ++ * Gets the AccessibleContext associated with this JToggleButton. ++ * ++ * @return the associated context ++ */ ++ public AccessibleContext getAccessibleContext() ++ { ++ return null; ++ } ++ ++ /** ++ * Returns the preferred viewport size.. ++ * ++ * @return the preferred size ++ */ ++ public Dimension getPreferredScrollableViewportSize() ++ { ++ return null; ++ } ++ ++ public int getScrollableUnitIncrement(Rectangle visibleRect, ++ int orientation, int direction) ++ { ++ return 1; ++ } ++ ++ public int getScrollableBlockIncrement(Rectangle visibleRect, ++ int orientation, int direction) ++ { ++ return 1; ++ } ++ ++ public boolean getScrollableTracksViewportWidth() ++ { ++ return false; ++ } ++ ++ public boolean getScrollableTracksViewportHeight() ++ { ++ return false; ++ } ++ ++ /** ++ * Adds a TreeExpansionListener object to the tree. ++ * ++ * @param listener the listener to add ++ */ ++ public void addTreeExpansionListener(TreeExpansionListener listener) ++ { ++ listenerList.add(TreeExpansionListener.class, listener); ++ } ++ ++ /** ++ * Removes a TreeExpansionListener object from the tree. ++ * ++ * @param listener the listener to remove ++ */ ++ public void removeTreeExpansionListener(TreeExpansionListener listener) ++ { ++ listenerList.remove(TreeExpansionListener.class, listener); ++ } ++ ++ /** ++ * Returns all added TreeExpansionListener objects. ++ * ++ * @return an array of listeners ++ */ ++ public TreeExpansionListener[] getTreeExpansionListeners() ++ { ++ return (TreeExpansionListener[]) getListeners(TreeExpansionListener.class); ++ } ++ ++ /** ++ * Notifies all listeners that the tree was collapsed. ++ * ++ * @param path the path to the node that was collapsed ++ */ ++ public void fireTreeCollapsed(TreePath path) ++ { ++ TreeExpansionEvent event = new TreeExpansionEvent(this, path); ++ TreeExpansionListener[] listeners = getTreeExpansionListeners(); ++ ++ for (int index = 0; index < listeners.length; ++index) ++ listeners[index].treeCollapsed(event); ++ } ++ ++ /** ++ * Notifies all listeners that the tree was expanded. ++ * ++ * @param path the path to the node that was expanded ++ */ ++ public void fireTreeExpanded(TreePath path) ++ { ++ TreeExpansionEvent event = new TreeExpansionEvent(this, path); ++ TreeExpansionListener[] listeners = getTreeExpansionListeners(); ++ ++ for (int index = 0; index < listeners.length; ++index) ++ listeners[index].treeExpanded(event); ++ } ++ ++ /** ++ * Adds a TreeSelctionListener object to the tree. ++ * ++ * @param listener the listener to add ++ */ ++ public void addTreeSelectionListener(TreeSelectionListener listener) ++ { ++ listenerList.add(TreeSelectionListener.class, listener); ++ } ++ ++ /** ++ * Removes a TreeSelectionListener object from the tree. ++ * ++ * @param listener the listener to remove ++ */ ++ public void removeTreeSelectionListener(TreeSelectionListener listener) ++ { ++ listenerList.remove(TreeSelectionListener.class, listener); ++ } ++ ++ /** ++ * Returns all added TreeSelectionListener objects. ++ * ++ * @return an array of listeners ++ */ ++ public TreeSelectionListener[] getTreeSelectionListeners() ++ { ++ return (TreeSelectionListener[]) getListeners(TreeSelectionListener.class); ++ } ++ ++ /** ++ * Notifies all listeners when the selection of the tree changed. ++ * ++ * @param event the event to send ++ */ ++ protected void fireValueChanged(TreeSelectionEvent event) ++ { ++ TreeSelectionListener[] listeners = getTreeSelectionListeners(); ++ ++ for (int index = 0; index < listeners.length; ++index) ++ listeners[index].valueChanged(event); ++ } ++ ++ /** ++ * Adds a TreeWillExpandListener object to the tree. ++ * ++ * @param listener the listener to add ++ */ ++ public void addTreeWillExpandListener(TreeWillExpandListener listener) ++ { ++ listenerList.add(TreeWillExpandListener.class, listener); ++ } ++ ++ /** ++ * Removes a TreeWillExpandListener object from the tree. ++ * ++ * @param listener the listener to remove ++ */ ++ public void removeTreeWillExpandListener(TreeWillExpandListener listener) ++ { ++ listenerList.remove(TreeWillExpandListener.class, listener); ++ } ++ ++ /** ++ * Returns all added TreeWillExpandListener objects. ++ * ++ * @return an array of listeners ++ */ ++ public TreeWillExpandListener[] getTreeWillExpandListeners() ++ { ++ return (TreeWillExpandListener[]) getListeners(TreeWillExpandListener.class); ++ } ++ ++ /** ++ * Notifies all listeners that the tree will collapse. ++ * ++ * @param path the path to the node that will collapse ++ */ ++ public void fireTreeWillCollapse(TreePath path) ++ throws ExpandVetoException ++ { ++ TreeExpansionEvent event = new TreeExpansionEvent(this, path); ++ TreeWillExpandListener[] listeners = getTreeWillExpandListeners(); ++ ++ for (int index = 0; index < listeners.length; ++index) ++ listeners[index].treeWillCollapse(event); ++ } ++ ++ /** ++ * Notifies all listeners that the tree will expand. ++ * ++ * @param path the path to the node that will expand ++ */ ++ public void fireTreeWillExpand(TreePath path) ++ throws ExpandVetoException ++ { ++ TreeExpansionEvent event = new TreeExpansionEvent(this, path); ++ TreeWillExpandListener[] listeners = getTreeWillExpandListeners(); ++ ++ for (int index = 0; index < listeners.length; ++index) ++ listeners[index].treeWillExpand(event); ++ } ++ ++ /** ++ * Returns the model of this JTree object. ++ * ++ * @return the associated TreeModel ++ */ ++ public TreeModel getModel() ++ { ++ return treeModel; ++ } ++ ++ /** ++ * Sets the model to use in JTree. ++ * ++ * @param model the TreeModel to use ++ */ ++ public void setModel(TreeModel model) ++ { ++ treeModel = model; ++ } ++ ++ /** ++ * Checks if this JTree object is editable. ++ * ++ * @return true if this tree object is editable, ++ * false otherwise ++ */ ++ public boolean isEditable() ++ { ++ return editable; ++ } ++ ++ /** ++ * Sets the editable property. ++ * ++ * @param flag true to make this tree object editable, ++ * false otherwise ++ */ ++ public void setEditable(boolean flag) ++ { ++ if (editable == flag) ++ return; ++ ++ boolean oldValue = editable; ++ editable = flag; ++ firePropertyChange("editable", oldValue, editable); ++ } ++ ++ /** ++ * Checks if the root element is visible. ++ * ++ * @return true if the root element is visible, ++ * false otherwise ++ */ ++ public boolean isRootVisbile() ++ { ++ return rootVisible; ++ } ++ ++ public void setRootVisible(boolean flag) ++ { ++ rootVisible = flag; ++ } ++ ++ public boolean getShowsRootHandles() ++ { ++ return showsRootHandles; ++ } ++ ++ public void setShowRootHandles(boolean flag) ++ { ++ showsRootHandles = flag; ++ } ++ ++ public TreeCellRenderer getCellRenderer() ++ { ++ return cellRenderer; ++ } ++ ++ public void setCellRenderer(TreeCellRenderer newRenderer) ++ { ++ cellRenderer = newRenderer; ++ } ++} +Index: javax/swing/JViewport.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JViewport.java,v +retrieving revision 1.2 +diff -u -r1.2 JViewport.java +--- javax/swing/JViewport.java 11 Jun 2003 13:20:39 -0000 1.2 ++++ javax/swing/JViewport.java 6 Sep 2004 16:35:59 -0000 +@@ -1,5 +1,5 @@ + /* JViewport.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -39,104 +39,314 @@ + package javax.swing; + + import java.awt.Component; +-import java.awt.Container; ++import java.awt.Dimension; + import java.awt.Graphics; +-import java.awt.Image; ++import java.awt.Insets; + import java.awt.Point; + import java.awt.Rectangle; ++ + import javax.accessibility.Accessible; ++import javax.swing.event.ChangeEvent; ++import javax.swing.event.ChangeListener; + import javax.swing.plaf.ViewportUI; + ++ ++/** ++ * ++ *
    ++ *                                                     _
    ++ *   +-------------------------------+    ...........Y1 \
    ++ *   |  view                         |                .  \
    ++ *   |  (this component's child)     |                .   > VY
    ++ *   |                               |                .  / = Y2-Y1
    ++ *   |         +------------------------------+  ....Y2_/
    ++ *   |         | viewport            |        |       .
    ++ *   |         | (this component)    |        |       .
    ++ *   |         |                     |        |       .
    ++ *   |         |                     |        |       .
    ++ *   |         |                     |        |       .
    ++ *   |         |                     |        |       .
    ++ *   |         +------------------------------+  ....Y3
    ++ *   |                               |                .
    ++ *   |         .                     |        .       .
    ++ *   |         .                     |        .       .
    ++ *   +---------.---------------------+    ...........Y4
    ++ *   .         .                     .        .
    ++ *   .         .                     .        .
    ++ *   .         .                     .        .
    ++ *   X1.......X2.....................X3.......X4
    ++ *   \____  ___/
    ++ *        \/
    ++ *        VX = X2-X1
    ++ *
    ++ * ++ *

    A viewport is, like all swing components, located at some position in ++ * the swing component tree; that location is exactly the same as any other ++ * components: the viewport's "bounds".

    ++ * ++ *

    But in terms of drawing its child, the viewport thinks of itself as ++ * covering a particular position of the view's coordinate space. ++ * For example, the {@link javax.JViewPort.getViewPosition} method returns ++ * the position (VX,VY) shown above, which is an position in ++ * "view space", even though this is implemented by positioning ++ * the underlying child at position (-VX,-VY)

    ++ * ++ */ + public class JViewport extends JComponent + { +- Component c; +- +- JViewport() +- { +- setOpaque(true); +- updateUI(); +- } +- +- void setView(Component c) +- { +- if (this.c != null) +- remove(c); +- +- this.c = c; +- +- add(c); +- } +- +- public String getUIClassID() +- { +- return "JViewport"; +- } +- +- public void updateUI() +- { +- ViewportUI vp = (ViewportUI) UIManager.getUI(this); +- setUI(vp); +- } +- +- Container GetHeavy(Container parent) +- { +- if (parent == null) +- return null; +- +- while (isLightweightComponent(parent)) +- { +- Container p = parent.getParent(); +- +- if (p == null) +- { +- System.out.println("GetHeavy FAILED, no heavy weight component found"); +- return parent; +- } +- +- parent = p; +- } +- return parent; +- } ++ private static final long serialVersionUID = -6925142919680527970L; ++ ++ public static final int SIMPLE_SCROLL_MODE = 0; ++ public static final int BLIT_SCROLL_MODE = 1; ++ public static final int BACKINGSTORE_SCROLL_MODE = 2; ++ ++ ChangeEvent changeEvent = new ChangeEvent(this); ++ ++ int scrollMode; ++ ++ protected boolean scrollUnderway; ++ protected boolean isViewSizeSet; ++ ++ /** ++ * The width and height of the Viewport's area in terms of view ++ * coordinates. Typically this will be the same as the width and height ++ * of the viewport's bounds, unless the viewport transforms units of ++ * width and height, which it may do, for example if it magnifies or ++ * rotates its view. ++ * ++ * @see #toViewCoordinates ++ */ ++ Dimension extentSize; ++ ++ /** ++ * The width and height of the view in its own coordinate space. ++ */ ++ ++ Dimension viewSize; ++ ++ Point lastPaintPosition; ++ ++ public JViewport() ++ { ++ setOpaque(true); ++ updateUI(); ++ } ++ ++ public Dimension getExtentSize() ++ { ++ if (extentSize == null) ++ return toViewCoordinates(getSize()); ++ else ++ return extentSize; ++ } ++ ++ public Dimension toViewCoordinates(Dimension size) ++ { ++ return size; ++ } ++ ++ public Point toViewCoordinates(Point p) ++ { ++ Point pos = getViewPosition(); ++ return new Point(p.x + pos.x, ++ p.y + pos.y); ++ } ++ ++ public void setExtentSize(Dimension newSize) ++ { ++ extentSize = newSize; ++ fireStateChanged(); ++ } ++ ++ public Dimension getViewSize() ++ { ++ if (isViewSizeSet) ++ return viewSize; ++ else ++ return getView().getSize(); ++ } ++ ++ ++ public void setViewSize(Dimension newSize) ++ { ++ viewSize = newSize; ++ Component view = getView(); ++ if (view != null) ++ view.setSize(viewSize); ++ isViewSizeSet = true; ++ fireStateChanged(); ++ } ++ ++ /** ++ * Get the viewport's position in view space. Despite confusing name, ++ * this really does return the viewport's (0,0) position in view space, ++ * not the view's position. ++ */ ++ ++ public Point getViewPosition() ++ { ++ Component view = getView(); ++ if (view == null) ++ return new Point(0,0); ++ else ++ { ++ Point p = view.getLocation(); ++ p.x = -p.x; ++ p.y = -p.y; ++ return p; ++ } ++ } ++ ++ public void setViewPosition(Point p) ++ { ++ Component view = getView(); ++ if (view != null) ++ { ++ Point q = new Point(-p.x, -p.y); ++ view.setLocation(q); ++ fireStateChanged(); ++ } ++ } ++ ++ public Rectangle getViewRect() ++ { ++ return new Rectangle(getViewPosition(), ++ getExtentSize()); ++ } ++ ++ public boolean isBackingStoreEnabled() ++ { ++ return scrollMode == BACKINGSTORE_SCROLL_MODE; ++ } ++ ++ public void setBackingStoreEnabled(boolean b) ++ { ++ if (b && scrollMode != BACKINGSTORE_SCROLL_MODE) ++ { ++ scrollMode = BACKINGSTORE_SCROLL_MODE; ++ fireStateChanged(); ++ } ++ } ++ ++ public void setScrollMode(int mode) ++ { ++ scrollMode = mode; ++ fireStateChanged(); ++ } ++ ++ public int getScrollMode() ++ { ++ return scrollMode; ++ } ++ ++ public Component getView() ++ { ++ if (getComponentCount() == 0) ++ return null; ++ ++ return getComponents()[0]; ++ } ++ ++ public void setView(Component v) ++ { ++ while (getComponentCount() > 0) ++ remove(0); ++ if (v != null) ++ { ++ add(v); ++ fireStateChanged(); ++ } ++ } ++ ++ public void revalidate() ++ { ++ fireStateChanged(); ++ super.revalidate(); ++ } ++ ++ public void reshape(int x, int y, int w, int h) ++ { ++ boolean changed = ++ (x != getX()) ++ || (y != getY()) ++ || (w != getWidth()) ++ || (h != getHeight()); ++ super.reshape(x, y, w, h); ++ if (changed) ++ fireStateChanged(); ++ } + ++ public void addImpl(Component comp, Object constraints, int index) ++ { ++ if (getComponentCount() > 0) ++ remove(getComponents()[0]); + +- public void paint(Graphics g) +- { +- paintChildren(g); +- +- System.out.println("XXXXXXXXXXXXXXXXXXXXXXXXXXXX JViewport -----> paint()"); +- +- Container parent = GetHeavy(getParent()); +- +- System.out.println("parent = " + parent + ", " + getParent()); +- +- //parent.paint(); +- +- Graphics wg = parent.getGraphics(); +- +- int x = 0; +- int y = 0; +- int w = getWidth(); +- int h = getHeight(); +- +- Rectangle r = new Rectangle(x, y, w, h); +- +- int ox = 0; +- int oy = 0; +- +- wg.copyArea(r.x, +- r.y, +- r.width, +- r.height, +- ox, +- oy); ++ super.addImpl(comp, constraints, index); ++ } + +- wg.dispose(); +- } ++ public final Insets getInsets() ++ { ++ return new Insets(0,0,0,0); ++ } ++ ++ public final Insets getInsets(Insets insets) ++ { ++ if (insets == null) ++ return getInsets(); ++ insets.top = 0; ++ insets.bottom = 0; ++ insets.left = 0; ++ insets.right = 0; ++ return insets; ++ } ++ ++ public boolean isOptimizedDrawingEnabled() ++ { ++ return false; ++ } ++ ++ public ChangeListener[] getChangeListeners() ++ { ++ return (ChangeListener[]) getListeners(ChangeListener.class); ++ } ++ ++ public void paint(Graphics g) ++ { ++ paintComponent(g); ++ } ++ ++ void fireStateChanged() ++ { ++ ChangeListener[] listeners = getChangeListeners(); ++ for (int i = 0; i < listeners.length; ++i) ++ listeners[i].stateChanged(changeEvent); ++ } ++ ++ public void addChangeListener(ChangeListener listener) ++ { ++ listenerList.add(ChangeListener.class, listener); ++ } ++ ++ public void removeChangeListener(ChangeListener listener) ++ { ++ listenerList.remove(ChangeListener.class, listener); ++ } ++ ++ /** ++ * This method returns the String ID of the UI class of Separator. ++ * ++ * @return The UI class' String ID. ++ */ ++ public String getUIClassID() ++ { ++ return "ViewportUI"; ++ } ++ ++ /** ++ * This method resets the UI used to the Look and Feel defaults.. ++ */ ++ public void updateUI() ++ { ++ setUI((ViewportUI) UIManager.getUI(this)); ++ } + } +- +- +- +- +- +- +- +Index: javax/swing/JWindow.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/JWindow.java,v +retrieving revision 1.3 +diff -u -r1.3 JWindow.java +--- javax/swing/JWindow.java 27 Jun 2003 12:41:52 -0000 1.3 ++++ javax/swing/JWindow.java 6 Sep 2004 16:35:59 -0000 +@@ -1,5 +1,5 @@ + /* JWindow.java -- +- Copyright (C) 2002, 2003 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -44,11 +44,11 @@ + import java.awt.Dimension; + import java.awt.Frame; + import java.awt.Graphics; +-import java.awt.GraphicsConfiguration; + import java.awt.LayoutManager; + import java.awt.Window; + import java.awt.event.KeyEvent; + import java.awt.event.WindowEvent; ++ + import javax.accessibility.Accessible; + import javax.accessibility.AccessibleContext; + +@@ -58,8 +58,10 @@ + * + * @author Ronald Veldema (rveldema@cs.vu.nl) + */ +-public class JWindow extends Window implements Accessible ++public class JWindow extends Window implements Accessible, RootPaneContainer + { ++ private static final long serialVersionUID = 5420698392125238833L; ++ + public final static int HIDE_ON_CLOSE = 0; + public final static int EXIT_ON_CLOSE = 1; + public final static int DISPOSE_ON_CLOSE = 2; +@@ -79,8 +81,8 @@ + *************/ + + public JWindow() +- { +- this(null); ++ { ++ super(SwingUtilities.getOwnerFrame()); + } + + // huuu ? +@@ -114,30 +116,23 @@ + return d; + } + +- JMenuBar getJMenuBar() +- { return getRootPane().getJMenuBar(); } +- +- void setJMenuBar(JMenuBar menubar) +- { getRootPane().setJMenuBar(menubar); } +- +- + public void setLayout(LayoutManager manager) + { super.setLayout(manager); } + +- void setLayeredPane(JLayeredPane layeredPane) ++ public void setLayeredPane(JLayeredPane layeredPane) + { getRootPane().setLayeredPane(layeredPane); } + +- JLayeredPane getLayeredPane() ++ public JLayeredPane getLayeredPane() + { return getRootPane().getLayeredPane(); } + +- JRootPane getRootPane() ++ public JRootPane getRootPane() + { + if (rootPane == null) + setRootPane(createRootPane()); + return rootPane; + } + +- void setRootPane(JRootPane root) ++ public void setRootPane(JRootPane root) + { + if (rootPane != null) + remove(rootPane); +@@ -146,19 +141,19 @@ + add(rootPane, BorderLayout.CENTER); + } + +- JRootPane createRootPane() ++ public JRootPane createRootPane() + { return new JRootPane(); } + +- Container getContentPane() ++ public Container getContentPane() + { return getRootPane().getContentPane(); } + +- void setContentPane(Container contentPane) ++ public void setContentPane(Container contentPane) + { getRootPane().setContentPane(contentPane); } + +- Component getGlassPane() ++ public Component getGlassPane() + { return getRootPane().getGlassPane(); } + +- void setGlassPane(Component glassPane) ++ public void setGlassPane(Component glassPane) + { getRootPane().setGlassPane(glassPane); } + + +Index: javax/swing/KeyStroke.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/KeyStroke.java,v +retrieving revision 1.3 +diff -u -r1.3 KeyStroke.java +--- javax/swing/KeyStroke.java 11 Jun 2003 13:20:39 -0000 1.3 ++++ javax/swing/KeyStroke.java 6 Sep 2004 16:35:59 -0000 +@@ -1,5 +1,5 @@ + /* KeyStroke.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -41,231 +41,65 @@ + import java.awt.event.KeyEvent; + import java.io.Serializable; + +-/** +- * KeyStroke +- * @author Andrew Selkirk +- * @version 1.0 +- */ +-public class KeyStroke implements Serializable ++public class KeyStroke ++ extends AWTKeyStroke ++ implements Serializable + { + static final long serialVersionUID = -9060180771037902530L; ++ private KeyStroke() { ++ } ++ ++ protected KeyStroke(char keyChar, int keyCode, int modifiers, ++ boolean onKeyRelease) ++ { ++ super(keyChar, keyCode, modifiers, onKeyRelease); ++ } ++ ++ static ++ { ++ AWTKeyStroke.registerSubclass(KeyStroke.class); ++ } ++ ++ public static KeyStroke getKeyStroke(char keyChar) ++ { ++ return (KeyStroke) getAWTKeyStroke(keyChar); ++ } ++ ++ /** ++ * @deprecated Use {@link #getKeyStroke(char)} ++ * ++ * This method, unlike all the other factory methods on this object, ++ * returns a non-cached, non-shared object. New code should not use it. ++ */ ++ public static KeyStroke getKeyStroke(char keyChar, boolean onKeyRelease) ++ { ++ return new KeyStroke(keyChar, KeyEvent.VK_UNDEFINED, 0, onKeyRelease); ++ } ++ ++ public static KeyStroke getKeyStroke(Character keyChar, int modifiers) ++ { ++ return (KeyStroke) getAWTKeyStroke(keyChar, modifiers); ++ } ++ ++ public static KeyStroke getKeyStroke(int keyCode, int modifiers, ++ boolean onKeyRelease) ++ { ++ return (KeyStroke) getAWTKeyStroke(keyCode, modifiers, onKeyRelease); ++ } ++ ++ public static KeyStroke getKeyStroke(int keyCode, int modifiers) ++ { ++ return (KeyStroke) getAWTKeyStroke(keyCode, modifiers); ++ } ++ ++ public static KeyStroke getKeyStroke(String str) ++ { ++ return (KeyStroke) getAWTKeyStroke(str); ++ } ++ ++ public static KeyStroke getKeyStrokeForEvent(KeyEvent event) ++ { ++ return (KeyStroke) getAWTKeyStrokeForEvent(event); ++ } + +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * keyChar +- */ +- private char keyChar = 0; +- +- /** +- * keyCode +- */ +- private int keyCode = 0; +- +- /** +- * modifiers +- */ +- private int modifiers = 0; +- +- /** +- * onKeyRelease +- */ +- private boolean onKeyRelease = false; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor KeyStroke +- */ +- private KeyStroke() { +- } // KeyStroke() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * hashCode +- * @returns int +- */ +- public int hashCode() { +- return 0; // TODO +- } // hashCode() +- +- /** +- * equals +- * @param object TODO +- * @returns boolean +- */ +- public boolean equals(Object object) { +- +- // Variables +- KeyStroke key; +- +- if (object instanceof KeyStroke) { +- key = (KeyStroke) object; +- if (key.keyChar == keyChar && +- key.keyCode == keyCode && +- key.modifiers == modifiers && +- key.onKeyRelease == onKeyRelease) { +- return true; +- } // if +- } // if +- return false; +- +- } // equals() +- +- /** +- * toString +- * @returns String +- */ +- public String toString() { +- return null; // TODO +- } // toString() +- +- /** +- * getKeyStroke +- * @param keyChar TODO +- * @returns KeyStroke +- */ +- public static KeyStroke getKeyStroke(char keyChar) { +- +- // Variables +- KeyStroke key; +- +- key = new KeyStroke(); +- key.keyChar = keyChar; +- return key; +- +- } // getKeyStroke() +- +- /** +- * getKeyStroke - deprecated +- * @param keyChar TODO +- * @param onKeyRelease TODO +- * @returns KeyStroke +- */ +- public static KeyStroke getKeyStroke(char keyChar, boolean onKeyRelease) { +- KeyStroke key = getKeyStroke(keyChar); +- key.onKeyRelease = onKeyRelease; +- return key; +- } // getKeyStroke() +- +- /** +- * getKeyStroke +- * @param keyChar TODO +- * @param modifiers TODO +- * @returns KeyStroke +- */ +- public static KeyStroke getKeyStroke(Character keyChar, int modifiers) { +- KeyStroke key = getKeyStroke(keyChar.charValue()); +- key.modifiers = modifiers; +- return key; +- } // getKeyStroke() +- +- /** +- * getKeyStroke +- * @param keyCode TODO +- * @param modifiers TODO +- * @param onKeyRelease TODO +- * @returns KeyStroke +- */ +- public static KeyStroke getKeyStroke(int keyCode, int modifiers, +- boolean onKeyRelease) { +- +- // Variables +- KeyStroke key; +- +- key = new KeyStroke(); +- key.keyCode = keyCode; +- key.modifiers = modifiers; +- key.onKeyRelease = onKeyRelease; +- return key; +- +- } // getKeyStroke() +- +- /** +- * getKeyStroke +- * @param keyCode TODO +- * @param modifiers TODO +- * @returns KeyStroke +- */ +- public static KeyStroke getKeyStroke(int keyCode, int modifiers) { +- return getKeyStroke(keyCode, modifiers, false); +- } // getKeyStroke() +- +- /** +- * getKeyStroke +- * @param string TODO +- * @returns KeyStroke +- */ +- public static KeyStroke getKeyStroke(String string) { +- return null; // TODO +- } // getKeyStroke() +- +- /** +- * getKeyStrokeForEvent +- * @param event TODO +- * @returns KeyStroke +- */ +- public static KeyStroke getKeyStrokeForEvent(KeyEvent event) { +- +- // Variables +- int eventID; +- int eventMod; +- +- // Get Event ID +- eventID = event.getID(); +- eventMod = event.getModifiers(); +- +- // Check for KEY_TYPED event +- if (eventID == KeyEvent.KEY_TYPED) { +- return getKeyStroke(event.getKeyChar(), eventMod); +- +- // KEY_PRESSED or KEY_RELEASED event +- } else { +- return getKeyStroke(event.getKeyCode(), eventMod); +- } // if +- +- } // getKeyStrokeForEvent() +- +- /** +- * getKeyChar +- * @returns char +- */ +- public char getKeyChar() { +- return keyChar; +- } // getKeyChar() +- +- /** +- * getKeyCode +- * @returns int +- */ +- public int getKeyCode() { +- return keyCode; +- } // getKeyCode() +- +- /** +- * getModifiers +- * @returns int +- */ +- public int getModifiers() { +- return modifiers; // TODO +- } // getModifiers() +- +- /** +- * isOnKeyRelease +- * @returns boolean +- */ +- public boolean isOnKeyRelease() { +- return onKeyRelease; +- } // isOnKeyRelease() +- +- +-} // KeyStroke ++} +Index: javax/swing/ListModel.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/ListModel.java,v +retrieving revision 1.2 +diff -u -r1.2 ListModel.java +--- javax/swing/ListModel.java 10 Jan 2004 21:07:43 -0000 1.2 ++++ javax/swing/ListModel.java 6 Sep 2004 16:35:59 -0000 +@@ -1,4 +1,4 @@ +-/* ListModel.java -- ++/* ListModel.java -- + Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. +@@ -36,13 +36,45 @@ + exception statement from your version. */ + + package javax.swing; +- + import javax.swing.event.ListDataListener; + ++/** ++ * This is an interface to general list-like data, typically used as the ++ * model object of a {@link JList} component. ++ * ++ * @author Graydon Hoare (graydon@redhat.com) ++ */ + public interface ListModel +-{ ++{ ++ /** ++ * Return the number of data elements in the list. ++ * ++ * @return The number of data elements in the list ++ */ + int getSize(); ++ ++ /** ++ * Retrieves a data element at a specified index. ++ * ++ * @param index The index of the element to retrieve ++ * ++ * @return The data element at the specified index ++ */ + Object getElementAt(int index); ++ ++ /** ++ * Add a listener object to this model. The listener will be called ++ * any time the set of elements in the model is changed. ++ * ++ * @param l The listener to add ++ */ + void addListDataListener(ListDataListener l); ++ ++ /** ++ * Add a listener object to this model. The listener will no longer be ++ * called when the set of elements in the model is changed. ++ * ++ * @param l The listener to remove ++ */ + void removeListDataListener(ListDataListener l); + } +Index: javax/swing/ListSelectionModel.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/ListSelectionModel.java,v +retrieving revision 1.3 +diff -u -r1.3 ListSelectionModel.java +--- javax/swing/ListSelectionModel.java 12 Oct 2003 13:20:49 -0000 1.3 ++++ javax/swing/ListSelectionModel.java 6 Sep 2004 16:35:59 -0000 +@@ -42,24 +42,41 @@ + + public interface ListSelectionModel + { +- int SINGLE_SELECTION = 0; +- int SINGLE_INTERVAL_SELECTION = 1; +- int MULTIPLE_INTERVAL_SELECTION = 1; +- +- void setSelectionMode(int a); +- int getSelectionMode(); +- +- void clearSelection(); ++ int SINGLE_SELECTION = 0; ++ int SINGLE_INTERVAL_SELECTION = 1; ++ int MULTIPLE_INTERVAL_SELECTION = 2; ++ ++ void setSelectionMode(int a); ++ int getSelectionMode(); ++ ++ void clearSelection(); + +- int getMinSelectionIndex(); +- int getMaxSelectionIndex(); +- boolean isSelectedIndex(int a); ++ int getMinSelectionIndex(); ++ int getMaxSelectionIndex(); + +- void setSelectionInterval(int index0, int index1); ++ boolean isSelectedIndex(int a); + +- ++ boolean isSelectionEmpty(); ++ void setSelectionInterval(int index0, int index1); ++ void addSelectionInterval(int index0, ++ int index1); ++ void removeSelectionInterval(int index0, ++ int index1); ++ void insertIndexInterval(int index, ++ int length, ++ boolean before); ++ void removeIndexInterval(int index0, ++ int index1); ++ ++ int getAnchorSelectionIndex(); ++ void setAnchorSelectionIndex(int index); ++ int getLeadSelectionIndex(); ++ void setLeadSelectionIndex(int index); ++ ++ void setValueIsAdjusting(boolean valueIsAdjusting); ++ boolean getValueIsAdjusting(); + +- void addListSelectionListener(ListSelectionListener listener); +- void removeListSelectionListener(ListSelectionListener listener); ++ void addListSelectionListener(ListSelectionListener listener); ++ void removeListSelectionListener(ListSelectionListener listener); + + } +Index: javax/swing/LookAndFeel.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/LookAndFeel.java,v +retrieving revision 1.2 +diff -u -r1.2 LookAndFeel.java +--- javax/swing/LookAndFeel.java 11 Jun 2003 13:20:39 -0000 1.2 ++++ javax/swing/LookAndFeel.java 6 Sep 2004 16:35:59 -0000 +@@ -1,5 +1,5 @@ +-/* LookAndFeel.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++/* LookAndFeel.java -- ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,93 +35,162 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing; + + import java.awt.Component; ++import java.awt.Toolkit; + import javax.swing.text.JTextComponent; + ++ + public abstract class LookAndFeel + { +- public UIDefaults getDefaults() +- { +- //This method is called once by UIManager.setLookAndFeel to create the look and feel specific defaults table. +- return null; +- } +- +- public abstract String getDescription(); +- public abstract String getID(); +- public abstract String getName(); +- +- public void initialize() +- { +- //UIManager.setLookAndFeel calls this method before the first call (and typically the only call) to getDefaults(). +- } +- +- static void installBorder(JComponent c, String defaultBorderName) +- { +- //Convenience method for installing a component's default Border object on the specified component if either the border is currently null or already an instance of UIResource. +- } +- +- public static void installColors(JComponent c, String defaultBgName, String defaultFgName) +- { +- //Convenience method for initializing a component's foreground and background color properties with values from the current defaults table. +- } +- +- public static void installColorsAndFont(JComponent c, String defaultBgName, String defaultFgName, String defaultFontName) +- { +- //Convenience method for initializing a components foreground background and font properties with values from the current defaults table. +- } +- +- public abstract boolean isNativeLookAndFeel(); +- public abstract boolean isSupportedLookAndFeel(); +- +- public static void loadKeyBindings(InputMap retMap, Object[] keys) +- { +- //Loads the bindings in keys into retMap. +- } +- +- public static ComponentInputMap makeComponentInputMap(JComponent c, Object[] keys) +- { +- // Creates a ComponentInputMap from keys. +- return null; +- } +- +- public static Object makeIcon(Class baseClass, String gifFile) +- { +- //Utility method that creates a UIDefaults.LazyValue that creates an ImageIcon UIResource for the specified gifFile filename. +- return null; +- } +- +- public static InputMap makeInputMap(Object[] keys) +- { +- //Creates a InputMap from keys. +- return null; +- } +- +- public static JTextComponent.KeyBinding[] makeKeyBindings(Object[] keyBindingList) +- { +- // Convenience method for building lists of KeyBindings. +- return null; +- } +- ++ /** ++ * This method is called once by UIManager.setLookAndFeel to create ++ * the look and feel specific defaults table. ++ * ++ * @return the UI defaults ++ */ ++ public UIDefaults getDefaults() ++ { ++ return null; ++ } ++ ++ public abstract String getDescription(); ++ ++ public abstract String getID(); ++ ++ public abstract String getName(); ++ ++ /** ++ * Returns true when the Look and Feel supports window decorations, ++ * false others. This method returns always false and needs to be overwritten ++ * when the derived Look and Feel supports this. ++ * ++ * @return false ++ * ++ * @since 1.4 ++ */ ++ public boolean getSupportsWindowDecorations() ++ { ++ return false; ++ } + +- public String toString() +- { +- //Returns a string that displays and identifies this object's properties. +- return "LookAndFeel"; +- } +- +- public void uninitialize() +- { +- //UIManager.setLookAndFeel calls this method just before we're replaced by a new default look and feel. +- } +- +- +- public static void uninstallBorder(JComponent c) +- { +- //Convenience method for un-installing a component's default border on the specified component if the border is currently an instance of UIResource. +- } +- ++ /** ++ * UIManager.setLookAndFeel calls this method before the first call ++ * (and typically the only call) to getDefaults(). ++ */ ++ public void initialize() ++ { ++ } ++ ++ /** ++ * Convenience method for installing a component's default Border object ++ * on the specified component if either the border is currently null ++ * or already an instance of UIResource. ++ */ ++ public static void installBorder(JComponent c, String defaultBorderName) ++ { ++ } ++ ++ /** ++ * Convenience method for initializing a component's foreground and ++ * background color properties with values from the current defaults table. ++ */ ++ public static void installColors(JComponent c, String defaultBgName, String defaultFgName) ++ { ++ } ++ ++ /** ++ * Convenience method for initializing a components foreground background ++ * and font properties with values from the current defaults table. ++ */ ++ public static void installColorsAndFont(JComponent component, ++ String defaultBgName, ++ String defaultFgName, ++ String defaultFontName) ++ { ++ } ++ ++ public abstract boolean isNativeLookAndFeel(); ++ ++ public abstract boolean isSupportedLookAndFeel(); ++ ++ /** ++ * Loads the bindings in keys into retMap. ++ */ ++ public static void loadKeyBindings(InputMap retMap, Object[] keys) ++ { ++ } ++ ++ /** ++ * Creates a ComponentInputMap from keys. ++ */ ++ public static ComponentInputMap makeComponentInputMap(JComponent c, ++ Object[] keys) ++ { ++ return null; ++ } ++ ++ /** ++ * Utility method that creates a UIDefaults.LazyValue that creates an ++ * ImageIcon UIResource for the specified gifFile filename. ++ */ ++ public static Object makeIcon(Class baseClass, String gifFile) ++ { ++ return null; ++ } ++ ++ /** ++ * Creates a InputMap from keys. ++ */ ++ public static InputMap makeInputMap(Object[] keys) ++ { ++ return null; ++ } ++ ++ /** ++ * Convenience method for building lists of KeyBindings. ++ */ ++ public static JTextComponent.KeyBinding[] makeKeyBindings(Object[] keyBindingList) ++ { ++ return null; ++ } ++ ++ /** ++ * Invoked when the user attempts an invalid operation. The default implement ++ * just beeps. Subclasses that wish to change this need to override this ++ * method. ++ * ++ * @param component the component the error occured in ++ */ ++ public void provideErrorFeedback(Component component) ++ { ++ Toolkit.getDefaultToolkit().beep(); ++ } ++ ++ /** ++ * Returns a string that displays and identifies this object's properties. ++ * ++ * @return the string "LookAndFeel" ++ */ ++ public String toString() ++ { ++ return "LookAndFeel"; ++ } ++ ++ /** ++ * UIManager.setLookAndFeel calls this method just before we're replaced by ++ * a new default look and feel. ++ */ ++ public void uninitialize() ++ { ++ } ++ ++ /** ++ * Convenience method for un-installing a component's default border on the ++ * specified component if the border is currently an instance of UIResource. ++ */ ++ public static void uninstallBorder(JComponent c) ++ { ++ } + } +- +Index: javax/swing/MenuSelectionManager.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/MenuSelectionManager.java,v +retrieving revision 1.2 +diff -u -r1.2 MenuSelectionManager.java +--- javax/swing/MenuSelectionManager.java 19 Jun 2003 16:30:09 -0000 1.2 ++++ javax/swing/MenuSelectionManager.java 6 Sep 2004 16:36:00 -0000 +@@ -1,5 +1,5 @@ +-/* MenuSelectionManager.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++/* MenuSelectionManager.java -- ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,42 +35,349 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing; + ++import java.awt.Component; ++import java.awt.Dimension; ++import java.awt.Point; ++import java.awt.event.KeyEvent; ++import java.awt.event.MouseEvent; ++import java.util.ArrayList; ++import java.util.Vector; ++import javax.swing.JMenu; ++import javax.swing.JMenuItem; + import javax.swing.event.ChangeEvent; + import javax.swing.event.ChangeListener; + import javax.swing.event.EventListenerList; + ++ ++/** ++ * This class manages current menu selectection. It provides ++ * methods to clear and set current selected menu path. ++ * It also fires StateChange event to its registered ++ * listeners whenever selected path of the current menu hierarchy ++ * changes. ++ * ++ */ + public class MenuSelectionManager + { +- protected ChangeEvent changeEvent; +- +- protected EventListenerList listenerList = new EventListenerList (); ++ /** ChangeEvent fired when selected path changes*/ ++ protected ChangeEvent changeEvent = new ChangeEvent(this); ++ ++ /** List of listeners for this MenuSelectionManager */ ++ protected EventListenerList listenerList = new EventListenerList(); + +- protected void fireStateChanged () ++ /** Default manager for the current menu hierarchy*/ ++ private static final MenuSelectionManager manager = new MenuSelectionManager(); ++ ++ /** Path to the currently selected menu */ ++ private Vector selectedPath = new Vector(); ++ ++ /** ++ * Fires StateChange event to registered listeners ++ */ ++ protected void fireStateChanged() + { +- ChangeListener[] listeners = getChangeListeners (); ++ ChangeListener[] listeners = getChangeListeners(); + + for (int i = 0; i < listeners.length; i++) ++ listeners[i].stateChanged(changeEvent); ++ } ++ ++ /** ++ * Adds ChangeListener to this MenuSelectionManager ++ * ++ * @param listener ChangeListener to add ++ */ ++ public void addChangeListener(ChangeListener listener) ++ { ++ listenerList.add(ChangeListener.class, listener); ++ } ++ ++ /** ++ * Removes ChangeListener from the list of registered listeners ++ * for this MenuSelectionManager. ++ * ++ * @param listener ChangeListner to remove ++ */ ++ public void removeChangeListener(ChangeListener listener) ++ { ++ listenerList.remove(ChangeListener.class, listener); ++ } ++ ++ /** ++ * Returns list of registered listeners with MenuSelectionManager ++ * ++ * @since 1.4 ++ */ ++ public ChangeListener[] getChangeListeners() ++ { ++ return (ChangeListener[]) listenerList.getListeners(ChangeListener.class); ++ } ++ ++ /** ++ * Unselects all the menu elements on the selection path ++ */ ++ public void clearSelectedPath() ++ { ++ // Send events from the bottom most item in the menu - hierarchy to the ++ // top most ++ for (int i = selectedPath.size() - 1; i >= 0; i--) ++ ((MenuElement) selectedPath.get(i)).menuSelectionChanged(false); ++ ++ // clear selected path ++ selectedPath.clear(); ++ ++ // notify all listeners that the selected path was changed ++ fireStateChanged(); ++ } ++ ++ /** ++ * This method returns menu element on the selected path that contains ++ * given source point. If no menu element on the selected path contains this ++ * point, then null is returned. ++ * ++ * @param source Component relative to which sourcePoint is given ++ * @param sourcePoint point for which we want to find menu element that contains it ++ * ++ * @return Returns menu element that contains given source point and belongs ++ * to the currently selected path. Null is return if no such menu element found. ++ */ ++ public Component componentForPoint(Component source, Point sourcePoint) ++ { ++ // Convert sourcePoint to screen coordinates. ++ Point sourcePointOnScreen = sourcePoint; ++ SwingUtilities.convertPointToScreen(sourcePointOnScreen, source); ++ ++ Point compPointOnScreen; ++ Component resultComp = null; ++ ++ // For each menu element on the selected path, express its location ++ // in terms of screen coordinates and check if there is any ++ // menu element on the selected path that contains given source point. ++ for (int i = 0; i < selectedPath.size(); i++) + { +- listeners [i].stateChanged (new ChangeEvent (this)); ++ Component comp = ((Component) selectedPath.get(i)); ++ Dimension size = comp.getSize(); ++ ++ // convert location of this menu item to screen coordinates ++ compPointOnScreen = comp.getLocationOnScreen(); ++ ++ if (compPointOnScreen.x <= sourcePointOnScreen.x ++ && sourcePointOnScreen.x < compPointOnScreen.x + size.width ++ && compPointOnScreen.y <= sourcePointOnScreen.y ++ && sourcePointOnScreen.y < compPointOnScreen.y + size.height) ++ { ++ Point p = sourcePointOnScreen; ++ SwingUtilities.convertPointFromScreen(p, comp); ++ resultComp = SwingUtilities.getDeepestComponentAt(comp, p.x, p.y); ++ break; ++ } + } ++ return resultComp; + } + +- public void addChangeListener (ChangeListener listener) ++ /** ++ * Returns shared instance of MenuSelection Manager ++ * ++ * @return default Manager ++ */ ++ public static MenuSelectionManager defaultManager() + { +- listenerList.add (ChangeListener.class, listener); ++ return manager; + } + +- public void removeChangeListener (ChangeListener listener) ++ /** ++ * Returns path representing current menu selection ++ * ++ * @return Current selection path ++ */ ++ public MenuElement[] getSelectedPath() + { +- listenerList.remove (ChangeListener.class, listener); ++ MenuElement[] path = new MenuElement[selectedPath.size()]; ++ ++ for (int i = 0; i < path.length; i++) ++ path[i] = (MenuElement) selectedPath.get(i); ++ ++ return path; + } + +- /** @since 1.4 */ +- public ChangeListener[] getChangeListeners () ++ /** ++ * Returns true if specified component is part of current menu ++ * heirarchy and false otherwise ++ * ++ * @param c Component for which to check ++ * @return True if specified component is part of current menu ++ */ ++ public boolean isComponentPartOfCurrentMenu(Component c) + { +- return (ChangeListener[]) listenerList.getListeners (ChangeListener.class); ++ MenuElement[] subElements; ++ for (int i = 0; i < selectedPath.size(); i++) ++ { ++ subElements = ((MenuElement) selectedPath.get(i)).getSubElements(); ++ for (int j = 0; j < subElements.length; j++) ++ { ++ if ((subElements[j].getComponent()).equals(c)) ++ return true; ++ } ++ } ++ ++ return false; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param e DOCUMENT ME! ++ */ ++ public void processKeyEvent(KeyEvent e) ++ { ++ throw new UnsupportedOperationException("not implemented"); ++ } ++ ++ /** ++ * Forwards given mouse event to all of the source subcomponents. ++ * ++ * @param event Mouse event ++ */ ++ public void processMouseEvent(MouseEvent event) ++ { ++ Component source = ((Component) event.getSource()); ++ ++ // In the case of drag event, event.getSource() returns component ++ // where drag event originated. However menu element processing this ++ // event should be the one over which mouse is currently located, ++ // which is not necessary the source of the drag event. ++ Component mouseOverMenuComp; ++ ++ // find over which menu element the mouse is currently located ++ if (event.getID() == MouseEvent.MOUSE_DRAGGED ++ || event.getID() == MouseEvent.MOUSE_RELEASED) ++ mouseOverMenuComp = componentForPoint(source, event.getPoint()); ++ else ++ mouseOverMenuComp = source; ++ ++ // Process this event only if mouse is located over some menu element ++ if (mouseOverMenuComp != null && (mouseOverMenuComp instanceof MenuElement)) ++ { ++ MenuElement[] path = getPath(mouseOverMenuComp); ++ ((MenuElement) mouseOverMenuComp).processMouseEvent(event, path, ++ manager); ++ ++ // FIXME: Java specification says that mouse events should be ++ // forwarded to subcomponents. The code below does it, but ++ // menu's work fine without it. This code is commented for now. ++ ++ /* ++ MenuElement[] subComponents = ((MenuElement) mouseOverMenuComp) ++ .getSubElements(); ++ ++ for (int i = 0; i < subComponents.length; i++) ++ { ++ subComponents[i].processMouseEvent(event, path, manager); ++ } ++ */ ++ } ++ } ++ ++ /** ++ * Sets menu selection to the specified path ++ * ++ * @param path new selection path ++ */ ++ public void setSelectedPath(MenuElement[] path) ++ { ++ if (path == null) ++ { ++ clearSelectedPath(); ++ return; ++ } ++ ++ int i; ++ int minSize = path.length; // size of the smaller path. ++ ++ if (path.length > selectedPath.size()) ++ { ++ minSize = selectedPath.size(); ++ ++ // if new selected path contains more elements then current ++ // selection then first add all elements at ++ // the indexes > selectedPath.size ++ for (i = selectedPath.size(); i < path.length; i++) ++ { ++ selectedPath.add(path[i]); ++ path[i].menuSelectionChanged(true); ++ } ++ } ++ ++ else if (path.length < selectedPath.size()) ++ { ++ // if new selected path contains less elements then current ++ // selection then first remove all elements from the selection ++ // at the indexes > path.length ++ for (i = selectedPath.size() - 1; i >= path.length; i--) ++ { ++ ((MenuElement) selectedPath.get(i)).menuSelectionChanged(false); ++ selectedPath.remove(i); ++ } ++ ++ minSize = path.length; ++ } ++ ++ // Now compare elements in new and current selection path at the ++ // same location and adjust selection until ++ // same menu elements will be encountered at the ++ // same index in both current and new selection path. ++ MenuElement oldSelectedItem; ++ ++ for (i = minSize - 1; i >= 0; i--) ++ { ++ oldSelectedItem = (MenuElement) selectedPath.get(i); ++ ++ if (path[i].equals(oldSelectedItem)) ++ break; ++ ++ oldSelectedItem.menuSelectionChanged(false); ++ path[i].menuSelectionChanged(true); ++ selectedPath.setElementAt(path[i], i); ++ } ++ ++ fireStateChanged(); ++ } ++ ++ /** ++ * Returns path to the specified component ++ * ++ * @param c component for which to find path for ++ * ++ * @return path to the specified component ++ */ ++ private MenuElement[] getPath(Component c) ++ { ++ // FIXME: There is the same method in BasicMenuItemUI. However I ++ // cannot use it here instead of this method, since I cannot assume that ++ // all the menu elements on the selected path are JMenuItem or JMenu. ++ // For now I've just duplicated it here. Please ++ // fix me or delete me if another better approach will be found, and ++ // this method will not be necessary. ++ ArrayList path = new ArrayList(); ++ ++ // if given component is JMenu, we also need to include ++ // it's popup menu in the path ++ if (c instanceof JMenu) ++ path.add(((JMenu) c).getPopupMenu()); ++ while (c instanceof MenuElement) ++ { ++ path.add(0, (MenuElement) c); ++ ++ if (c instanceof JPopupMenu) ++ c = ((JPopupMenu) c).getInvoker(); ++ else ++ c = c.getParent(); ++ } ++ ++ MenuElement[] pathArray = new MenuElement[path.size()]; ++ path.toArray(pathArray); ++ return pathArray; + } +-} // class MenuSelectionManager ++} +Index: javax/swing/MutableComboBoxModel.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/MutableComboBoxModel.java,v +retrieving revision 1.2 +diff -u -r1.2 MutableComboBoxModel.java +--- javax/swing/MutableComboBoxModel.java 12 Oct 2003 13:20:49 -0000 1.2 ++++ javax/swing/MutableComboBoxModel.java 6 Sep 2004 16:36:00 -0000 +@@ -38,40 +38,46 @@ + package javax.swing; + + /** +- * MutableComboBoxModel +- * @author Andrew Selkirk +- * @version 1.0 ++ * MutableComboBoxModel is interface for data model that keeps track of the ++ * components data and provides methods to insert and remove elements from ++ * it. The Classes implementing this interface should fire appropriate ++ * events indicating the undergoing change in the data model. ++ * ++ * @author Andrew Selkirk ++ * @author Olga Rodimina ++ * @version 1.0 + */ +-public interface MutableComboBoxModel extends ComboBoxModel { +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * addElement +- * @param object TODO +- */ +- void addElement(Object object); +- +- /** +- * removeElementAt +- * @param index TODO +- */ +- void removeElementAt(int index); +- +- /** +- * insertElementAt +- * @param object TODO +- * @param index TODO +- */ +- void insertElementAt(Object object, int index); +- +- /** +- * removeElement +- * @param object TODO +- */ +- void removeElement(Object object); +- +- ++public interface MutableComboBoxModel extends ComboBoxModel ++{ ++ /** ++ * This method adds given object to its data model. ++ * ++ * @param object element to add to the data model. ++ */ ++ void addElement(Object object); ++ ++ /** ++ * This method removes elements located at the given index in the data ++ * model. ++ * ++ * @param index index specifying location of the element to remove. ++ */ ++ void removeElementAt(int index); ++ ++ /** ++ * This method inserts givent element to the data model, at the specified ++ * index. ++ * ++ * @param object element to insert ++ * @param index index specifying the position in the data model where the ++ * given element should be inserted. ++ */ ++ void insertElementAt(Object object, int index); ++ ++ /** ++ * This method removes given element from the data model ++ * ++ * @param element to remove. ++ */ ++ void removeElement(Object object); + } // MutableComboBoxModel +Index: javax/swing/Popup.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/Popup.java,v +retrieving revision 1.1 +diff -u -r1.1 Popup.java +--- javax/swing/Popup.java 27 Jun 2003 12:41:52 -0000 1.1 ++++ javax/swing/Popup.java 6 Sep 2004 16:36:00 -0000 +@@ -163,7 +163,7 @@ + + + /** +- * Displays the popup’s JWindow on the screen. ++ * Displays the popup's JWindow on the screen. + * Nothing happens if it is already visible. + */ + public void show() +@@ -173,7 +173,7 @@ + + + /** +- * Removes the popup’s JWindow from the ++ * Removes the popup's JWindow from the + * screen. Nothing happens if it is currently not visible. + */ + public void hide() +Index: javax/swing/RepaintManager.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/RepaintManager.java,v +retrieving revision 1.2 +diff -u -r1.2 RepaintManager.java +--- javax/swing/RepaintManager.java 11 Jun 2003 13:20:39 -0000 1.2 ++++ javax/swing/RepaintManager.java 6 Sep 2004 16:36:00 -0000 +@@ -35,248 +35,505 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing; + + import java.awt.Component; + import java.awt.Dimension; + import java.awt.Image; + import java.awt.Rectangle; ++import java.util.Enumeration; + import java.util.Hashtable; ++import java.util.HashMap; ++import java.util.Iterator; ++import java.util.Map; + import java.util.Vector; + ++ + /** +- * RepaintManager +- * @author Andrew Selkirk +- * @version 1.0 ++ *

    The repaint manager holds a set of dirty regions, invalid components, ++ * and a double buffer surface. The dirty regions and invalid components ++ * are used to coalesce multiple revalidate() and repaint() calls in the ++ * component tree into larger groups to be refreshed "all at once"; the ++ * double buffer surface is used by root components to paint ++ * themselves.

    ++ * ++ *

    In general, painting is very confusing in swing. see this ++ * document for more details.

    ++ * ++ * @author Graydon Hoare (graydon@redhat.com) + */ +-public class RepaintManager { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * dirtyComponents +- */ +- Hashtable dirtyComponents; +- +- /** +- * tmpDirtyComponents +- */ +- Hashtable tmpDirtyComponents; +- +- /** +- * invalidComponents +- */ +- Vector invalidComponents; +- +- /** +- * doubleBufferingEnabled +- */ +- boolean doubleBufferingEnabled; +- +- /** +- * doubleBuffer +- */ +- Image doubleBuffer; +- +- /** +- * doubleBufferSize +- */ +- Dimension doubleBufferSize; +- +- /** +- * doubleBufferMaxSize +- */ +- private Dimension doubleBufferMaxSize; +- +- /** +- * resetDoubleBuffer +- */ +- private boolean resetDoubleBuffer; +- +- /** +- * repaintManagerKey +- */ +- private static final Object repaintManagerKey = null; // TODO +- +- /** +- * tmp +- */ +- Rectangle tmp; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor RepaintManager +- */ +- public RepaintManager() { +- // TODO +- } // RepaintManager() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * toString +- * @returns String +- */ +- public synchronized String toString() { +- return null; // TODO +- } // toString() +- +- /** +- * currentManager +- * @param component TODO +- * @returns RepaintManager +- */ +- public static RepaintManager currentManager(Component component) { +- return null; // TODO +- } // currentManager() +- +- /** +- * currentManager +- * @param component TODO +- * @returns RepaintManager +- */ +- public static RepaintManager currentManager(JComponent component) { +- return null; // TODO +- } // currentManager() +- +- /** +- * setCurrentManager +- * @param manager TODO +- */ +- public static void setCurrentManager(RepaintManager manager) { +- // TODO +- } // setCurrentManager() +- +- /** +- * addInvalidComponent +- * @param component TODO +- */ +- public synchronized void addInvalidComponent(JComponent component) { +- // TODO +- } // addInvalidComponent() +- +- /** +- * removeInvalidComponent +- * @param component TODO +- */ +- public synchronized void removeInvalidComponent(JComponent component) { +- // TODO +- } // removeInvalidComponent() +- +- /** +- * addDirtyRegion +- * @param component TODO +- * @param x TODO +- * @param y TODO +- * @param w TODO +- * @param h TODO +- */ +- public synchronized void addDirtyRegion(JComponent component, int x, +- int y, int w, int h) { +- // TODO +- } // addDirtyRegion() +- +- /** +- * getDirtyRegion +- * @param component TODO +- * @returns Rectangle +- */ +- public Rectangle getDirtyRegion(JComponent component) { +- return null; // TODO +- } // getDirtyRegion() +- +- /** +- * markCompletelyDirty +- * @param component TODO +- */ +- public void markCompletelyDirty(JComponent component) { +- // TODO +- } // markCompletelyDirty() +- +- /** +- * markCompletelyClean +- * @param component TODO +- */ +- public void markCompletelyClean(JComponent component) { +- // TODO +- } // markCompletelyClean() +- +- /** +- * isCompletelyDirty +- * @param component TODO +- * @returns boolean +- */ +- public boolean isCompletelyDirty(JComponent component) { +- return false; // TODO +- } // isCompletelyDirty() +- +- /** +- * validateInvalidComponents +- */ +- public void validateInvalidComponents() { +- // TODO +- } // validateInvalidComponents() +- +- /** +- * paintDirtyRegions +- */ +- public void paintDirtyRegions() { +- // TODO +- } // paintDirtyRegions() +- +- /** +- * getOffscreenBuffer +- * @param component TODO +- * @param proposedWidth TODO +- * @param proposedHeight TODO +- * @returns Image +- */ +- public Image getOffscreenBuffer(Component component, +- int proposedWidth, int proposedHeight) { +- return null; // TODO +- } // getOffscreenBuffer() +- +- /** +- * getDoubleBufferMaximumSize +- * @returns Dimension +- */ +- public Dimension getDoubleBufferMaximumSize() { +- return null; // TODO +- } // getDoubleBufferMaximumSize() +- +- /** +- * setDoubleBufferMaximumSize +- * @param size TODO +- */ +- public void setDoubleBufferMaximumSize(Dimension size) { +- // TODO +- } // setDoubleBufferMaximumSize() +- +- /** +- * setDoubleBufferingEnabled +- * @param buffer TODO +- */ +- public void setDoubleBufferingEnabled(boolean buffer) { +- // TODO +- } // setDoubleBufferingEnabled() +- +- /** +- * isDoubleBufferingEnabled +- * @returns boolean +- */ +- public boolean isDoubleBufferingEnabled() { +- return false; // TODO +- } // isDoubleBufferingEnabled() +- ++public class RepaintManager ++{ + +-} // RepaintManager ++ /** ++ *

    A helper class which is placed into the system event queue at ++ * various times in order to facilitate repainting and layout. There is ++ * typically only one of these objects active at any time. When the ++ * {@link RepaintManager} is told to queue a repaint, it checks to see if ++ * a {@link RepaintWorker} is "live" in the system event queue, and if ++ * not it inserts one using {@link SwingUtilities.invokeLater}.

    ++ * ++ *

    When the {@link RepaintWorker} comes to the head of the system ++ * event queue, its {@link RepaintWorker#run} method is executed by the ++ * swing paint thread, which revalidates all invalid components and ++ * repaints any damage in the swing scene.

    ++ */ ++ ++ protected class RepaintWorker ++ implements Runnable ++ { ++ boolean live; ++ public RepaintWorker() ++ { ++ live = false; ++ } ++ public synchronized void setLive(boolean b) ++ { ++ live = b; ++ } ++ public synchronized boolean isLive() ++ { ++ return live; ++ } ++ public void run() ++ { ++ RepaintManager rm = RepaintManager.globalManager; ++ setLive(false); ++ rm.validateInvalidComponents(); ++ rm.paintDirtyRegions(); ++ } ++ } ++ ++ ++ /** ++ * A table storing the dirty regions of components. The keys of this ++ * table are components, the values are rectangles. Each component maps ++ * to exactly one rectangle. When more regions are marked as dirty on a ++ * component, they are union'ed with the existing rectangle. ++ * ++ * @see #addDirtyRegion ++ * @see #getDirtyRegion ++ * @see #isCompletelyDirty ++ * @see #markCompletelyClean ++ * @see #markCompletelyDirty ++ */ ++ Hashtable dirtyComponents; ++ ++ /** ++ * A single, shared instance of the helper class. Any methods which mark ++ * components as invalid or dirty eventually activate this instance. It ++ * is added to the event queue if it is not already active, otherwise ++ * reused. ++ * ++ * @see #addDirtyRegion ++ * @see #addInvalidComponent ++ */ ++ RepaintWorker repaintWorker; ++ ++ /** ++ * The set of components which need revalidation, in the "layout" sense. ++ * There is no additional information about "what kind of layout" they ++ * need (as there is with dirty regions), so it is just a vector rather ++ * than a table. ++ * ++ * @see #addInvalidComponent ++ * @see #removeInvalidComponent ++ * @see #validateInvalidComponents ++ */ ++ Vector invalidComponents; ++ ++ /** ++ * Whether or not double buffering is enabled on this repaint ++ * manager. This is merely a hint to clients; the RepaintManager will ++ * always return an offscreen buffer when one is requested. ++ * ++ * @see #getDoubleBufferingEnabled ++ * @see #setDoubleBufferingEnabled ++ */ ++ boolean doubleBufferingEnabled; ++ ++ /** ++ * The current offscreen buffer. This is reused for all requests for ++ * offscreen drawing buffers. It grows as necessary, up to {@link ++ * #doubleBufferMaximumSize}, but there is only one shared instance. ++ * ++ * @see #getOffscreenBuffer ++ * @see #doubleBufferMaximumSize ++ */ ++ Image doubleBuffer; ++ ++ /** ++ * The maximum width and height to allocate as a double buffer. Requests ++ * beyond this size are ignored. ++ * ++ * @see #paintDirtyRegions ++ * @see #getDoubleBufferMaximumSize ++ * @see #setDoubleBufferMaximumSize ++ */ ++ Dimension doubleBufferMaximumSize; ++ ++ ++ /** ++ * The global, shared RepaintManager instance. This is reused for all ++ * components in all windows. ++ * ++ * @see #currentManager ++ * @see #setCurrentManager ++ */ ++ private static RepaintManager globalManager; ++ ++ /** ++ * Create a new RepaintManager object. ++ */ ++ public RepaintManager() ++ { ++ dirtyComponents = new Hashtable(); ++ invalidComponents = new Vector(); ++ repaintWorker = new RepaintWorker(); ++ doubleBufferMaximumSize = new Dimension(2000,2000); ++ doubleBufferingEnabled = true; ++ } ++ ++ /** ++ * Get the value of the shared {@link #globalManager} instance, possibly ++ * returning a special manager associated with the specified ++ * component. The default implementaiton ignores the component parameter. ++ * ++ * @param component A component to look up the manager of ++ * ++ * @return The current repaint manager ++ * ++ * @see #setCurrentManager ++ */ ++ public static RepaintManager currentManager(Component component) ++ { ++ if (globalManager == null) ++ globalManager = new RepaintManager(); ++ return globalManager; ++ } ++ ++ /** ++ * Get the value of the shared {@link #globalManager} instance, possibly ++ * returning a special manager associated with the specified ++ * component. The default implementaiton ignores the component parameter. ++ * ++ * @param component A component to look up the manager of ++ * ++ * @return The current repaint manager ++ * ++ * @see #setCurrentManager ++ */ ++ public static RepaintManager currentManager(JComponent component) ++ { ++ return currentManager((Component)component); ++ } ++ ++ /** ++ * Set the value of the shared {@link #globalManager} instance. ++ * ++ * @param manager The new value of the shared instance ++ * ++ * @see #currentManager ++ */ ++ public static void setCurrentManager(RepaintManager manager) ++ { ++ globalManager = manager; ++ } ++ ++ /** ++ * Add a component to the {@link #invalidComponents} vector. If the ++ * {@link #repaintWorker} class is not active, insert it in the system ++ * event queue. ++ * ++ * @param component The component to add ++ * ++ * @see #removeInvalidComponent ++ */ ++ public synchronized void addInvalidComponent(JComponent component) ++ { ++ Component ancestor = component.getParent(); ++ ++ while (ancestor != null ++ && (! (ancestor instanceof JComponent) ++ || ! ((JComponent) ancestor).isValidateRoot() )) ++ ancestor = ancestor.getParent(); ++ ++ if (ancestor != null ++ && ancestor instanceof JComponent ++ && ((JComponent) ancestor).isValidateRoot()) ++ component = (JComponent) ancestor; ++ ++ if (invalidComponents.contains(component)) ++ return; ++ ++ invalidComponents.add(component); ++ ++ if (! repaintWorker.isLive()) ++ { ++ repaintWorker.setLive(true); ++ SwingUtilities.invokeLater(repaintWorker); ++ } ++ } ++ ++ /** ++ * Remove a component from the {@link #invalidComponents} vector. ++ * ++ * @param component The component to remove ++ * ++ * @see #addInvalidComponent ++ */ ++ public synchronized void removeInvalidComponent(JComponent component) ++ { ++ invalidComponents.removeElement(component); ++ } ++ ++ /** ++ * Add a region to the set of dirty regions for a specified component. ++ * This involves union'ing the new region with any existing dirty region ++ * associated with the component. If the {@link #repaintWorker} class ++ * is not active, insert it in the system event queue. ++ * ++ * @param component The component to add a dirty region for ++ * @param x The left x coordinate of the new dirty region ++ * @param y The top y coordinate of the new dirty region ++ * @param w The width of the new dirty region ++ * @param h The height of the new dirty region ++ * ++ * @see #addDirtyRegion ++ * @see #getDirtyRegion ++ * @see #isCompletelyDirty ++ * @see #markCompletelyClean ++ * @see #markCompletelyDirty ++ */ ++ public synchronized void addDirtyRegion(JComponent component, int x, int y, ++ int w, int h) ++ { ++ Rectangle r = new Rectangle(x, y, w, h); ++ if (dirtyComponents.containsKey(component)) ++ r = r.union((Rectangle)dirtyComponents.get(component)); ++ dirtyComponents.put(component, r); ++ if (! repaintWorker.isLive()) ++ { ++ repaintWorker.setLive(true); ++ SwingUtilities.invokeLater(repaintWorker); ++ } ++ } ++ ++ /** ++ * Get the dirty region associated with a component, or null ++ * if the component has no dirty region. ++ * ++ * @param component The component to get the dirty region of ++ * ++ * @return The dirty region of the component ++ * ++ * @see #dirtyComponents ++ * @see #addDirtyRegion ++ * @see #isCompletelyDirty ++ * @see #markCompletelyClean ++ * @see #markCompletelyDirty ++ */ ++ public Rectangle getDirtyRegion(JComponent component) ++ { ++ return (Rectangle) dirtyComponents.get(component); ++ } ++ ++ /** ++ * Mark a component as dirty over its entire bounds. ++ * ++ * @param component The component to mark as dirty ++ * ++ * @see #dirtyComponents ++ * @see #addDirtyRegion ++ * @see #getDirtyRegion ++ * @see #isCompletelyDirty ++ * @see #markCompletelyClean ++ */ ++ public void markCompletelyDirty(JComponent component) ++ { ++ Rectangle r = component.getBounds(); ++ addDirtyRegion(component, r.x, r.y, r.width, r.height); ++ } ++ ++ /** ++ * Remove all dirty regions for a specified component ++ * ++ * @param component The component to mark as clean ++ * ++ * @see #dirtyComponents ++ * @see #addDirtyRegion ++ * @see #getDirtyRegion ++ * @see #isCompletelyDirty ++ * @see #markCompletelyDirty ++ */ ++ public void markCompletelyClean(JComponent component) ++ { ++ dirtyComponents.remove(component); ++ } ++ ++ /** ++ * Return true if the specified component is completely ++ * contained within its dirty region, otherwise false ++ * ++ * @param component The component to check for complete dirtyness ++ * ++ * @return Whether the component is completely dirty ++ * ++ * @see #dirtyComponents ++ * @see #addDirtyRegion ++ * @see #getDirtyRegion ++ * @see #isCompletelyDirty ++ * @see #markCompletelyClean ++ */ ++ public boolean isCompletelyDirty(JComponent component) ++ { ++ Rectangle dirty = (Rectangle) dirtyComponents.get(component); ++ if (dirty == null) ++ return false; ++ Rectangle r = component.getBounds(); ++ if (r == null) ++ return true; ++ return dirty.contains(r); ++ } ++ ++ /** ++ * Validate all components which have been marked invalid in the {@link ++ * #invalidComponents} vector. ++ */ ++ public void validateInvalidComponents() ++ { ++ for (Enumeration e = invalidComponents.elements(); e.hasMoreElements(); ) ++ { ++ JComponent comp = (JComponent) e.nextElement(); ++ if (! (comp.isVisible() && comp.isShowing())) ++ continue; ++ comp.validate(); ++ } ++ invalidComponents.clear(); ++ } ++ ++ /** ++ * Repaint all regions of all components which have been marked dirty in ++ * the {@link #dirtyComponents} table. ++ */ ++ public void paintDirtyRegions() ++ { ++ // step 1: pull out roots and calculate spanning damage ++ ++ HashMap roots = new HashMap(); ++ for (Enumeration e = dirtyComponents.keys(); e.hasMoreElements(); ) ++ { ++ JComponent comp = (JComponent) e.nextElement(); ++ if (! (comp.isVisible() && comp.isShowing())) ++ continue; ++ Rectangle damaged = getDirtyRegion(comp); ++ if (damaged.width == 0 || damaged.height == 0) ++ continue; ++ JRootPane root = comp.getRootPane(); ++ // If the component has no root, no repainting will occur. ++ if (root == null) ++ continue; ++ Rectangle rootDamage = SwingUtilities.convertRectangle(comp, damaged, root); ++ if (! roots.containsKey(root)) ++ { ++ roots.put(root, rootDamage); ++ } ++ else ++ { ++ roots.put(root, ((Rectangle)roots.get(root)).union(rootDamage)); ++ } ++ } ++ dirtyComponents.clear(); ++ ++ // step 2: paint those roots ++ Iterator i = roots.entrySet().iterator(); ++ while(i.hasNext()) ++ { ++ Map.Entry ent = (Map.Entry) i.next(); ++ JRootPane root = (JRootPane) ent.getKey(); ++ Rectangle rect = (Rectangle) ent.getValue(); ++ root.paintImmediately(rect); ++ } ++ } ++ ++ /** ++ * Get an offscreen buffer for painting a component's image. This image ++ * may be smaller than the proposed dimensions, depending on the value of ++ * the {@link #doubleBufferMaximumSize} property. ++ * ++ * @param component The component to return an offscreen buffer for ++ * @param proposedWidth The proposed width of the offscreen buffer ++ * @param proposedHeight The proposed height of the offscreen buffer ++ * ++ * @return A shared offscreen buffer for painting ++ * ++ * @see #doubleBuffer ++ */ ++ public Image getOffscreenBuffer(Component component, int proposedWidth, ++ int proposedHeight) ++ { ++ if (doubleBuffer == null ++ || (((doubleBuffer.getWidth(null) < proposedWidth) ++ || (doubleBuffer.getHeight(null) < proposedHeight)) ++ && (proposedWidth < doubleBufferMaximumSize.width) ++ && (proposedHeight < doubleBufferMaximumSize.height))) ++ { ++ doubleBuffer = component.createImage(proposedWidth, proposedHeight); ++ } ++ return doubleBuffer; ++ } ++ ++ /** ++ * Get the value of the {@link #doubleBufferMaximumSize} property. ++ * ++ * @return The current value of the property ++ * ++ * @see #setDoubleBufferMaximumSize ++ */ ++ public Dimension getDoubleBufferMaximumSize() ++ { ++ return doubleBufferMaximumSize; ++ } ++ ++ /** ++ * Set the value of the {@link #doubleBufferMaximumSize} property. ++ * ++ * @param size The new value of the property ++ * ++ * @see #getDoubleBufferMaximumSize ++ */ ++ public void setDoubleBufferMaximumSize(Dimension size) ++ { ++ doubleBufferMaximumSize = size; ++ } ++ ++ /** ++ * Set the value of the {@link #doubleBufferingEnabled} property. ++ * ++ * @param buffer The new value of the property ++ * ++ * @see #getDoubleBufferingEnabled ++ */ ++ public void setDoubleBufferingEnabled(boolean buffer) ++ { ++ doubleBufferingEnabled = buffer; ++ } ++ ++ /** ++ * Get the value of the {@link #doubleBufferingEnabled} property. ++ * ++ * @return The current value of the property ++ * ++ * @see #setDoubleBufferingEnabled ++ */ ++ public boolean isDoubleBufferingEnabled() ++ { ++ return doubleBufferingEnabled; ++ } ++ ++ public String toString() ++ { ++ return "RepaintManager"; ++ } ++} +Index: javax/swing/ScrollPaneConstants.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/ScrollPaneConstants.java,v +retrieving revision 1.2 +diff -u -r1.2 ScrollPaneConstants.java +--- javax/swing/ScrollPaneConstants.java 12 Oct 2003 13:20:49 -0000 1.2 ++++ javax/swing/ScrollPaneConstants.java 6 Sep 2004 16:36:00 -0000 +@@ -1,5 +1,5 @@ + /* ScrollPaneConstants.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -42,116 +42,110 @@ + * @author Andrew Selkirk + * @version 1.0 + */ +-public interface ScrollPaneConstants { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * VIEWPORT +- */ +- String VIEWPORT = "VIEWPORT"; +- +- /** +- * VERTICAL_SCROLLBAR +- */ +- String VERTICAL_SCROLLBAR = "VERTICAL_SCROLLBAR"; +- +- /** +- * HORIZONTAL_SCROLLBAR +- */ +- String HORIZONTAL_SCROLLBAR = "HORIZONTAL_SCROLLBAR"; +- +- /** +- * ROW_HEADER +- */ +- String ROW_HEADER = "ROW_HEADER"; +- +- /** +- * COLUMN_HEADER +- */ +- String COLUMN_HEADER = "COLUMN_HEADER"; +- +- /** +- * LOWER_LEFT_CORNER +- */ +- String LOWER_LEFT_CORNER = "LOWER_LEFT_CORNER"; +- +- /** +- * LOWER_RIGHT_CORNER +- */ +- String LOWER_RIGHT_CORNER = "LOWER_RIGHT_CORNER"; +- +- /** +- * UPPER_LEFT_CORNER +- */ +- String UPPER_LEFT_CORNER = "UPPER_LEFT_CORNER"; +- +- /** +- * UPPER_RIGHT_CORNER +- */ +- String UPPER_RIGHT_CORNER = "UPPER_RIGHT_CORNER"; +- +- /** +- * LOWER_LEADING_CORNER +- */ +- String LOWER_LEADING_CORNER = "LOWER_LEADING_CORNER"; +- +- /** +- * LOWER_TRAILING_CORNER +- */ +- String LOWER_TRAILING_CORNER = "LOWER_TRAILING_CORNER"; +- +- /** +- * UPPER_LEADING_CORNER +- */ +- String UPPER_LEADING_CORNER = "UPPER_LEADING_CORNER"; +- +- /** +- * UPPER_TRAILING_CORNER +- */ +- String UPPER_TRAILING_CORNER = "UPPER_TRAILING_CORNER"; +- +- /** +- * VERTICAL_SCROLLBAR_POLICY +- */ +- String VERTICAL_SCROLLBAR_POLICY = "VERTICAL_SCROLLBAR_POLICY"; +- +- /** +- * HORIZONTAL_SCROLLBAR_POLICY +- */ +- String HORIZONTAL_SCROLLBAR_POLICY = "HORIZONTAL_SCROLLBAR_POLICY"; +- +- /** +- * VERTICAL_SCROLLBAR_AS_NEEDED +- */ +- int VERTICAL_SCROLLBAR_AS_NEEDED = 20; +- +- /** +- * VERTICAL_SCROLLBAR_NEVER +- */ +- int VERTICAL_SCROLLBAR_NEVER = 21; +- +- /** +- * VERTICAL_SCROLLBAR_ALWAYS +- */ +- int VERTICAL_SCROLLBAR_ALWAYS = 22; +- +- /** +- * HORIZONTAL_SCROLLBAR_AS_NEEDED +- */ +- int HORIZONTAL_SCROLLBAR_AS_NEEDED = 30; +- +- /** +- * HORIZONTAL_SCROLLBAR_NEVER +- */ +- int HORIZONTAL_SCROLLBAR_NEVER = 31; +- +- /** +- * HORIZONTAL_SCROLLBAR_ALWAYS +- */ +- int HORIZONTAL_SCROLLBAR_ALWAYS = 32; +- +- +-} // ScrollPaneConstants ++public interface ScrollPaneConstants ++{ ++ /** ++ * VIEWPORT ++ */ ++ String VIEWPORT = "VIEWPORT"; ++ ++ /** ++ * VERTICAL_SCROLLBAR ++ */ ++ String VERTICAL_SCROLLBAR = "VERTICAL_SCROLLBAR"; ++ ++ /** ++ * HORIZONTAL_SCROLLBAR ++ */ ++ String HORIZONTAL_SCROLLBAR = "HORIZONTAL_SCROLLBAR"; ++ ++ /** ++ * ROW_HEADER ++ */ ++ String ROW_HEADER = "ROW_HEADER"; ++ ++ /** ++ * COLUMN_HEADER ++ */ ++ String COLUMN_HEADER = "COLUMN_HEADER"; ++ ++ /** ++ * LOWER_LEFT_CORNER ++ */ ++ String LOWER_LEFT_CORNER = "LOWER_LEFT_CORNER"; ++ ++ /** ++ * LOWER_RIGHT_CORNER ++ */ ++ String LOWER_RIGHT_CORNER = "LOWER_RIGHT_CORNER"; ++ ++ /** ++ * UPPER_LEFT_CORNER ++ */ ++ String UPPER_LEFT_CORNER = "UPPER_LEFT_CORNER"; ++ ++ /** ++ * UPPER_RIGHT_CORNER ++ */ ++ String UPPER_RIGHT_CORNER = "UPPER_RIGHT_CORNER"; ++ ++ /** ++ * LOWER_LEADING_CORNER ++ */ ++ String LOWER_LEADING_CORNER = "LOWER_LEADING_CORNER"; ++ ++ /** ++ * LOWER_TRAILING_CORNER ++ */ ++ String LOWER_TRAILING_CORNER = "LOWER_TRAILING_CORNER"; ++ ++ /** ++ * UPPER_LEADING_CORNER ++ */ ++ String UPPER_LEADING_CORNER = "UPPER_LEADING_CORNER"; ++ ++ /** ++ * UPPER_TRAILING_CORNER ++ */ ++ String UPPER_TRAILING_CORNER = "UPPER_TRAILING_CORNER"; ++ ++ /** ++ * VERTICAL_SCROLLBAR_POLICY ++ */ ++ String VERTICAL_SCROLLBAR_POLICY = "VERTICAL_SCROLLBAR_POLICY"; ++ ++ /** ++ * HORIZONTAL_SCROLLBAR_POLICY ++ */ ++ String HORIZONTAL_SCROLLBAR_POLICY = "HORIZONTAL_SCROLLBAR_POLICY"; ++ ++ /** ++ * VERTICAL_SCROLLBAR_AS_NEEDED ++ */ ++ int VERTICAL_SCROLLBAR_AS_NEEDED = 20; ++ ++ /** ++ * VERTICAL_SCROLLBAR_NEVER ++ */ ++ int VERTICAL_SCROLLBAR_NEVER = 21; ++ ++ /** ++ * VERTICAL_SCROLLBAR_ALWAYS ++ */ ++ int VERTICAL_SCROLLBAR_ALWAYS = 22; ++ ++ /** ++ * HORIZONTAL_SCROLLBAR_AS_NEEDED ++ */ ++ int HORIZONTAL_SCROLLBAR_AS_NEEDED = 30; ++ ++ /** ++ * HORIZONTAL_SCROLLBAR_NEVER ++ */ ++ int HORIZONTAL_SCROLLBAR_NEVER = 31; ++ ++ /** ++ * HORIZONTAL_SCROLLBAR_ALWAYS ++ */ ++ int HORIZONTAL_SCROLLBAR_ALWAYS = 32; ++} +Index: javax/swing/ScrollPaneLayout.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/ScrollPaneLayout.java,v +retrieving revision 1.3 +diff -u -r1.3 ScrollPaneLayout.java +--- javax/swing/ScrollPaneLayout.java 11 Jun 2003 13:20:39 -0000 1.3 ++++ javax/swing/ScrollPaneLayout.java 6 Sep 2004 16:36:00 -0000 +@@ -1,5 +1,5 @@ + /* ScrollPaneLayout.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -41,9 +41,12 @@ + import java.awt.Component; + import java.awt.Container; + import java.awt.Dimension; ++import java.awt.Insets; + import java.awt.LayoutManager; + import java.awt.Rectangle; ++import java.awt.Point; + import java.io.Serializable; ++import javax.swing.border.Border; + + /** + * ScrollPaneLayout +@@ -55,258 +58,418 @@ + { + static final long serialVersionUID = -4480022884523193743L; + +- //------------------------------------------------------------- +- // Classes ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * UIResource +- */ +- public static class UIResource extends ScrollPaneLayout +- implements javax.swing.plaf.UIResource { +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor UIResource +- */ +- public UIResource() { +- // TODO +- } // UIResource() +- +- +- } // UIResource +- +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * viewport +- */ +- protected JViewport viewport; +- +- /** +- * vsb +- */ +- protected JScrollBar vsb; +- +- /** +- * hsb +- */ +- protected JScrollBar hsb; +- +- /** +- * rowHead +- */ +- protected JViewport rowHead; +- +- /** +- * colHead +- */ +- protected JViewport colHead; +- +- /** +- * lowerLeft +- */ +- protected Component lowerLeft; +- +- /** +- * lowerRight +- */ +- protected Component lowerRight; +- +- /** +- * upperLeft +- */ +- protected Component upperLeft; +- +- /** +- * upperRight +- */ +- protected Component upperRight; +- +- /** +- * vsbPolicy +- */ +- protected int vsbPolicy; +- +- /** +- * hsbPolicy +- */ +- protected int hsbPolicy; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor ScrollPaneLayout +- */ +- public ScrollPaneLayout() { +- // TODO +- } // ScrollPaneLayout() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * syncWithScrollPane +- * @param scrollPane TODO +- */ +- public void syncWithScrollPane(JScrollPane scrollPane) { +- // TODO +- } // syncWithScrollPane() +- +- /** +- * addSingletonComponent +- * @param oldComponent TODO +- * @param newComponent TODO +- * @returns Component +- */ +- protected Component addSingletonComponent(Component oldComponent, +- Component newComponent) { +- return null; // TODO +- } // addSingletonComponent() +- +- /** +- * addLayoutComponent +- * @param string TODO +- * @param component TODO +- */ +- public void addLayoutComponent(String string, Component component) { +- // TODO +- } // addLayoutComponent() +- +- /** +- * removeLayoutComponent +- * @param component TODO +- */ +- public void removeLayoutComponent(Component component) { +- // TODO +- } // removeLayoutComponent() +- +- /** +- * getVerticalScrollBarPolicy +- * @returns int +- */ +- public int getVerticalScrollBarPolicy() { +- return 0; // TODO +- } // getVerticalScrollBarPolicy() +- +- /** +- * setVerticalScrollBarPolicy +- * @param policy TODO +- */ +- public void setVerticalScrollBarPolicy(int policy) { +- // TODO +- } // setVerticalScrollBarPolicy() +- +- /** +- * getHorizontalScrollBarPolicy +- * @returns int +- */ +- public int getHorizontalScrollBarPolicy() { +- return 0; // TODO +- } // getHorizontalScrollBarPolicy() +- +- /** +- * setHorizontalScrollBarPolicy +- * @param policy TODO +- */ +- public void setHorizontalScrollBarPolicy(int policy) { +- // TODO +- } // setHorizontalScrollBarPolicy() +- +- /** +- * getViewport +- * @returns JViewport +- */ +- public JViewport getViewport() { +- return null; // TODO +- } // getViewport() +- +- /** +- * getHorizontalScrollBar +- * @returns JScrollBar +- */ +- public JScrollBar getHorizontalScrollBar() { +- return null; // TODO +- } // getHorizontalScrollBar() +- +- /** +- * getVerticalScrollBar +- * @returns JScrollBar +- */ +- public JScrollBar getVerticalScrollBar() { +- return null; // TODO +- } // getVerticalScrollBar() +- +- /** +- * getRowHeader +- * @returns JViewport +- */ +- public JViewport getRowHeader() { +- return null; // TODO +- } // getRowHeader() +- +- /** +- * getColumnHeader +- * @returns JViewport +- */ +- public JViewport getColumnHeader() { +- return null; // TODO +- } // getColumnHeader() +- +- /** +- * getCorner +- * @param key TODO +- * @returns Component +- */ +- public Component getCorner(String key) { +- return null; // TODO +- } // getCorner() +- +- /** +- * preferredLayoutSize +- * @param parent TODO +- * @returns Dimension +- */ +- public Dimension preferredLayoutSize(Container parent) { +- return null; // TODO +- } // preferredLayoutSize() +- +- /** +- * minimumLayoutSize +- * @param parent TODO +- * @returns Dimension +- */ +- public Dimension minimumLayoutSize(Container parent) { +- return null; // TODO +- } // minimumLayoutSize() +- +- /** +- * layoutContainer +- * @param parent TODO +- */ +- public void layoutContainer(Container parent) { +- // TODO +- } // layoutContainer() +- +- /** +- * getViewportBorderBounds +- * @param value0 TODO +- * @returns Rectangle +- */ +- public Rectangle getViewportBorderBounds(JScrollPane scrollPane) { +- return null; // TODO +- } // getViewportBorderBounds() ++ public static class UIResource extends ScrollPaneLayout ++ implements javax.swing.plaf.UIResource { ++ public UIResource() { ++ } ++ } ++ ++ protected JViewport viewport; ++ protected JScrollBar vsb; ++ protected JScrollBar hsb; ++ protected JViewport rowHead; ++ protected JViewport colHead; ++ protected Component lowerLeft; ++ protected Component lowerRight; ++ protected Component upperLeft; ++ protected Component upperRight; ++ protected int vsbPolicy; ++ protected int hsbPolicy; ++ ++ public ScrollPaneLayout() { ++ ++ } ++ ++ public void syncWithScrollPane(JScrollPane scrollPane) { ++ viewport = scrollPane.getViewport(); ++ rowHead = scrollPane.getRowHeader(); ++ colHead = scrollPane.getColumnHeader(); ++ vsb = scrollPane.getVerticalScrollBar(); ++ hsb = scrollPane.getHorizontalScrollBar(); ++ vsbPolicy = scrollPane.getVerticalScrollBarPolicy(); ++ hsbPolicy = scrollPane.getHorizontalScrollBarPolicy(); ++ lowerLeft = scrollPane.getCorner(LOWER_LEFT_CORNER); ++ lowerRight = scrollPane.getCorner(LOWER_RIGHT_CORNER); ++ upperLeft = scrollPane.getCorner(UPPER_LEFT_CORNER); ++ upperRight = scrollPane.getCorner(UPPER_RIGHT_CORNER); ++ } ++ ++ protected Component addSingletonComponent(Component oldComponent, ++ Component newComponent) { ++ return null; ++ } ++ ++ public void addLayoutComponent(String key, Component component) ++ { ++ if (key == VIEWPORT) ++ viewport = (JViewport) component; ++ else if (key == VERTICAL_SCROLLBAR) ++ vsb = (JScrollBar) component; ++ else if (key == HORIZONTAL_SCROLLBAR) ++ hsb = (JScrollBar) component; ++ else if (key == ROW_HEADER) ++ rowHead = (JViewport) component; ++ else if (key == COLUMN_HEADER) ++ colHead = (JViewport) component; ++ else if (key == LOWER_RIGHT_CORNER) ++ lowerRight = component; ++ else if (key == UPPER_RIGHT_CORNER) ++ upperRight = component; ++ else if (key == LOWER_LEFT_CORNER) ++ lowerLeft = component; ++ else if (key == UPPER_LEFT_CORNER) ++ upperLeft = component; ++ } ++ ++ public void removeLayoutComponent(Component component) { ++ if (component == viewport) ++ viewport = null; ++ else if (component == vsb) ++ vsb = null; ++ else if (component == hsb) ++ hsb = null; ++ else if (component == rowHead) ++ rowHead = null; ++ else if (component == colHead) ++ colHead = null; ++ else if (component == lowerRight) ++ lowerRight = null; ++ else if (component == upperRight) ++ upperRight = null; ++ else if (component == lowerLeft) ++ lowerLeft = null; ++ else if (component == upperLeft) ++ upperLeft = null; ++ } ++ ++ public int getVerticalScrollBarPolicy() ++ { ++ return vsbPolicy; ++ } ++ ++ public void setVerticalScrollBarPolicy(int policy) ++ { ++ vsbPolicy = policy; ++ } ++ ++ public int getHorizontalScrollBarPolicy() ++ { ++ return hsbPolicy; ++ } ++ ++ public void setHorizontalScrollBarPolicy(int policy) ++ { ++ hsbPolicy = policy; ++ } ++ ++ public JViewport getViewport() ++ { ++ return viewport; ++ } ++ ++ public JScrollBar getHorizontalScrollBar() ++ { ++ return hsb; ++ } ++ ++ public JScrollBar getVerticalScrollBar() ++ { ++ return vsb; ++ } ++ ++ public JViewport getRowHeader() ++ { ++ return rowHead; ++ } ++ ++ public JViewport getColumnHeader() ++ { ++ return colHead; ++ } ++ ++ public Component getCorner(String key) ++ { ++ if (key == LOWER_RIGHT_CORNER) ++ return lowerRight; ++ else if (key == UPPER_RIGHT_CORNER) ++ return upperRight; ++ else if (key == LOWER_LEFT_CORNER) ++ return lowerLeft; ++ else if (key == UPPER_LEFT_CORNER) ++ return upperLeft; ++ return null; ++ } ++ ++ private static void maybeSetPreferredSize(JComponent src, Dimension dim) ++ { ++ Dimension tmp = null; ++ if (src != null) ++ tmp = src.getPreferredSize(); ++ if (tmp != null) ++ dim.setSize(tmp); ++ } ++ ++ private static void maybeSetMinimumSize(JComponent src, Dimension dim) ++ { ++ Dimension tmp = null; ++ if (src != null) ++ tmp = src.getMinimumSize(); ++ if (tmp != null) ++ dim.setSize(tmp); ++ } ++ ++ public Dimension preferredLayoutSize(Container parent) ++ { ++ if (parent != null && parent instanceof JScrollPane) ++ { ++ JScrollPane sc = (JScrollPane) parent; ++ synchronized (sc.getTreeLock ()) ++ { ++ Dimension insetsSize = new Dimension(0,0); ++ Dimension viewportSize = new Dimension(0,0); ++ Dimension viewportInsetsSize = new Dimension(0,0); ++ Dimension columnHeaderSize = new Dimension(0,0); ++ Dimension rowHeaderSize = new Dimension(0,0); ++ Dimension verticalScrollBarSize = new Dimension(0,0); ++ Dimension horizontalScrollBarSize = new Dimension(0,0); ++ ++ Insets insets = sc.getInsets(); ++ Border viewportBorder = sc.getViewportBorder(); ++ Insets viewportInsets = null; ++ ++ if (viewportBorder != null) ++ { ++ viewportInsets = viewportBorder.getBorderInsets(parent); ++ if (viewportInsets != null) ++ viewportInsetsSize.setSize(viewportInsets.left + viewportInsets.right, ++ viewportInsets.top + viewportInsets.bottom); ++ } ++ ++ if (insets != null) ++ insetsSize.setSize(insets.left + insets.right, ++ insets.top + insets.bottom); ++ ++ if (viewport != null) ++ { ++ Component view = null; ++ Scrollable scr = null; ++ Dimension pref = null; ++ ++ view = viewport.getView(); ++ if (view != null && view instanceof Scrollable) ++ scr = (Scrollable) view; ++ if (scr != null) ++ pref = scr.getPreferredScrollableViewportSize(); ++ if (pref == null) ++ pref = viewport.getPreferredSize(); ++ if (pref != null) ++ viewportSize.setSize(pref); ++ } ++ ++ maybeSetPreferredSize(colHead, columnHeaderSize); ++ maybeSetPreferredSize(rowHead, rowHeaderSize); ++ maybeSetPreferredSize(vsb, verticalScrollBarSize); ++ maybeSetPreferredSize(hsb, horizontalScrollBarSize); ++ ++ return new Dimension(insetsSize.width ++ + viewportSize.width ++ + viewportInsetsSize.width ++ + rowHeaderSize.width ++ + verticalScrollBarSize.width, ++ insetsSize.height ++ + viewportSize.height ++ + viewportInsetsSize.height ++ + columnHeaderSize.height ++ + horizontalScrollBarSize.height); ++ } ++ } ++ else ++ { ++ return new Dimension(0,0); ++ } ++ } ++ ++ public Dimension minimumLayoutSize(Container parent) ++ { ++ if (parent instanceof JScrollPane) ++ { ++ JScrollPane sc = (JScrollPane) parent; ++ synchronized (sc.getTreeLock ()) ++ { ++ Dimension insetsSize = new Dimension(0,0); ++ Dimension viewportSize = new Dimension(0,0); ++ Dimension viewportInsetsSize = new Dimension(0,0); ++ Dimension columnHeaderSize = new Dimension(0,0); ++ Dimension rowHeaderSize = new Dimension(0,0); ++ Dimension verticalScrollBarSize = new Dimension(0,0); ++ Dimension horizontalScrollBarSize = new Dimension(0,0); ++ ++ Insets insets = sc.getInsets(); ++ Border viewportBorder = sc.getViewportBorder(); ++ Insets viewportInsets = null; ++ ++ if (viewportBorder != null) ++ { ++ viewportInsets = viewportBorder.getBorderInsets(parent); ++ if (viewportInsets != null) ++ viewportInsetsSize.setSize(viewportInsets.left + viewportInsets.right, ++ viewportInsets.top + viewportInsets.bottom); ++ } ++ ++ if (insets != null) ++ insetsSize.setSize(insets.left + insets.right, ++ insets.top + insets.bottom); ++ ++ maybeSetMinimumSize(viewport, viewportSize); ++ maybeSetMinimumSize(colHead, columnHeaderSize); ++ maybeSetMinimumSize(rowHead, rowHeaderSize); ++ ++ if (vsbPolicy != VERTICAL_SCROLLBAR_NEVER) ++ maybeSetMinimumSize(vsb, verticalScrollBarSize); ++ ++ if (hsbPolicy != HORIZONTAL_SCROLLBAR_NEVER) ++ maybeSetMinimumSize(hsb, horizontalScrollBarSize); ++ ++ return new Dimension(insetsSize.width ++ + viewportSize.width ++ + viewportInsetsSize.width ++ + rowHeaderSize.width ++ + verticalScrollBarSize.width, ++ insetsSize.height ++ + viewportSize.height ++ + viewportInsetsSize.height ++ + columnHeaderSize.height ++ + horizontalScrollBarSize.height); ++ } ++ } ++ else ++ { ++ return new Dimension(0,0); ++ } ++ } ++ ++ /** ++ * ++ * +----+--------------------+----+ y1 ++ * | c1 | column header | c2 | ++ * +----+--------------------+----+ y2 ++ * | r | | v | ++ * | o | | | ++ * | w | | s | ++ * | | | r | ++ * | h | | o | ++ * | e | viewport | l | ++ * | a | | l | ++ * | d | | b | ++ * | e | | a | ++ * | r | | r | ++ * +----+--------------------+----+ y3 ++ * | c3 | h scrollbar | c4 | ++ * +----+--------------------+----+ y4 ++ * x1 x2 x3 x4 ++ * ++ */ ++ public void layoutContainer(Container parent) ++ { ++ if (parent instanceof JScrollPane) ++ { ++ JScrollPane sc = (JScrollPane) parent; ++ synchronized (sc.getTreeLock ()) ++ { ++ JViewport viewport = sc.getViewport(); ++ Dimension viewSize = viewport.getViewSize(); ++ Point viewPos = viewport.getViewPosition(); ++ ++ int x1 = 0, x2 = 0, x3 = 0, x4 = 0; ++ int y1 = 0, y2 = 0, y3 = 0, y4 = 0; ++ ++ Rectangle scrollPaneBounds = SwingUtilities.calculateInnerArea(sc, null); ++ ++ x1 = scrollPaneBounds.x; ++ y1 = scrollPaneBounds.y; ++ x4 = scrollPaneBounds.x + scrollPaneBounds.width; ++ y4 = scrollPaneBounds.y + scrollPaneBounds.height; ++ ++ if (colHead != null) ++ y2 = y1 + colHead.getPreferredSize().height; ++ else ++ y2 = y1; ++ ++ if (rowHead != null) ++ x2 = x1 + rowHead.getPreferredSize().width; ++ else ++ x2 = x1; ++ ++ int vsbPolicy = sc.getVerticalScrollBarPolicy(); ++ int hsbPolicy = sc.getHorizontalScrollBarPolicy(); ++ ++ x3 = x4 - vsb.getPreferredSize().width; ++ y3 = y4 - hsb.getPreferredSize().height; ++ ++ boolean showVsb = ++ (vsb != null) ++ && ((vsbPolicy == VERTICAL_SCROLLBAR_ALWAYS) ++ || (vsbPolicy == VERTICAL_SCROLLBAR_AS_NEEDED ++ && viewSize.height > (y3 - y2))); ++ ++ boolean showHsb = ++ (hsb != null) ++ && ((hsbPolicy == HORIZONTAL_SCROLLBAR_ALWAYS) ++ || (hsbPolicy == HORIZONTAL_SCROLLBAR_AS_NEEDED ++ && viewSize.width > (x3 - x2))); ++ ++ if (!showVsb) ++ x3 = x4; ++ ++ if (!showHsb) ++ y3 = y4; ++ ++ // now set the layout ++ ++ if (viewport != null) ++ viewport.setBounds(new Rectangle(x2, y2, x3-x2, y3-y2)); ++ ++ if (colHead != null) ++ colHead.setBounds(new Rectangle(x2, y1, x3-x2, y2-y1)); ++ ++ if (rowHead != null) ++ rowHead.setBounds(new Rectangle(x1, y2, x2-x1, y3-y2)); ++ ++ if (showVsb) ++ { ++ vsb.setVisible(true); ++ vsb.setBounds(new Rectangle(x3, y2, x4-x3, y3-y2)); ++ } ++ else if (vsb != null) ++ vsb.setVisible(false); ++ ++ if (showHsb) ++ { ++ hsb.setVisible(true); ++ hsb.setBounds(new Rectangle(x2, y3, x3-x2, y4-y3)); ++ } ++ else if (hsb != null) ++ hsb.setVisible(false); ++ ++ if (upperLeft != null) ++ upperLeft.setBounds(new Rectangle(x1, y1, x2-x1, y2-y1)); ++ ++ if (upperRight != null) ++ upperRight.setBounds(new Rectangle(x3, y1, x4-x3, y2-y1)); ++ ++ if (lowerLeft != null) ++ lowerLeft.setBounds(new Rectangle(x1, y3, x2-x1, y4-y3)); ++ ++ if (lowerRight != null) ++ lowerRight.setBounds(new Rectangle(x3, y3, x4-x3, y4-y3)); ++ ++ } ++ } ++ } ++ ++ public Rectangle getViewportBorderBounds(JScrollPane scrollPane) { ++ return null; ++ } + + +-} // ScrollPaneLayout ++} +Index: javax/swing/SpinnerNumberModel.java +=================================================================== +RCS file: javax/swing/SpinnerNumberModel.java +diff -N javax/swing/SpinnerNumberModel.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/SpinnerNumberModel.java 6 Sep 2004 16:36:00 -0000 +@@ -0,0 +1,241 @@ ++/* SpinnerNumberModel.java -- ++ Copyright (C) 2002, 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing; ++ ++/** ++ * SpinnerNumberModel ++ * ++ * @author Ka-Hing Cheung ++ * @version 1.0 ++ */ ++public class SpinnerNumberModel extends AbstractSpinnerModel ++{ ++ /** DOCUMENT ME! */ ++ private Number value; ++ ++ /** DOCUMENT ME! */ ++ private Comparable minimum; ++ ++ /** DOCUMENT ME! */ ++ private Comparable maximum; ++ ++ /** DOCUMENT ME! */ ++ private Number stepSize; ++ ++ /** ++ * Creates a SpinnerNumberModel with initial value 0, step 1, ++ * and no maximum nor minimum. ++ */ ++ public SpinnerNumberModel() ++ { ++ this(new Integer(0), null, null, new Integer(1)); ++ } ++ ++ /** ++ * Creates a SpinnerNumberModel with double precision ++ * ++ * @param value the initial value ++ * @param minimum the minimum value ++ * @param maximum the maximum value ++ * @param stepSize the step size ++ */ ++ public SpinnerNumberModel(double value, double minimum, double maximum, ++ double stepSize) ++ { ++ this(new Double(value), new Double(minimum), new Double(maximum), ++ new Double(stepSize)); ++ } ++ ++ /** ++ * Creates a SpinnerNumberModel with integer precision ++ * ++ * @param value the initial value ++ * @param minimum the minimum value ++ * @param maximum the maximum value ++ * @param stepSize the step size ++ */ ++ public SpinnerNumberModel(int value, int minimum, int maximum, int stepSize) ++ { ++ this(new Integer(value), new Integer(minimum), new Integer(maximum), ++ new Integer(stepSize)); ++ } ++ ++ /** ++ * Creates a SpinnerNumberModel with Numbers and ++ * Comparables. ++ * ++ * @param value the initial value ++ * @param minimum the minimum value, if null there's no minimum ++ * @param maximum the maximum value, if null there's no maximum ++ * @param stepSize the step size ++ * ++ * @throws IllegalArgumentException if minimum <= value <= maximum ++ * does not hold ++ */ ++ public SpinnerNumberModel(Number value, Comparable minimum, ++ Comparable maximum, Number stepSize) ++ { ++ if (stepSize == null) ++ throw new IllegalArgumentException("stepSize may not be null"); ++ if (value == null) ++ throw new IllegalArgumentException("value may not be null"); ++ if (minimum != null) ++ { ++ if (minimum.compareTo(value) > 0) ++ throw new IllegalArgumentException("minimum is not <= value"); ++ } ++ else ++ minimum = new Comparable() ++ { ++ public int compareTo(Object obj) ++ { ++ return -1; ++ } ++ }; ++ ++ ++ if (maximum != null) ++ { ++ if (maximum.compareTo(value) < 0) ++ throw new IllegalArgumentException("maximum is not >= value"); ++ } ++ else ++ maximum = new Comparable() ++ { ++ public int compareTo(Object obj) ++ { ++ return 1; ++ } ++ }; ++ ++ ++ this.value = value; ++ this.stepSize = stepSize; ++ this.minimum = minimum; ++ this.maximum = maximum; ++ } ++ ++ /** ++ * Sets the new value and fire a change event ++ * ++ * @param value the new value ++ * ++ * @throws IllegalArgumentException if minimum <= value <= maximum ++ * does not hold ++ */ ++ public void setValue(Object value) ++ { ++ if (! (value instanceof Number)) ++ throw new IllegalArgumentException("value must be a Number"); ++ ++ this.value = (Number) value; ++ fireStateChanged(); ++ } ++ ++ /** ++ * Gets the current value ++ * ++ * @return the current value ++ */ ++ public Object getValue() ++ { ++ return value; ++ } ++ ++ /** ++ * Gets the next value without changing the current value, or null if the ++ * current value is maximum. ++ * ++ * @return the next value ++ */ ++ public Object getNextValue() ++ { ++ Number num; ++ ++ if (value instanceof Double) ++ num = new Double(value.doubleValue() + stepSize.doubleValue()); ++ else if (value instanceof Float) ++ num = new Double(value.floatValue() + stepSize.floatValue()); ++ else if (value instanceof Long) ++ num = new Long(value.longValue() + stepSize.longValue()); ++ else if (value instanceof Integer) ++ num = new Integer(value.intValue() + stepSize.intValue()); ++ else if (value instanceof Short) ++ num = new Short((short) (value.shortValue() + stepSize.shortValue())); ++ else ++ num = new Byte((byte) (value.byteValue() + stepSize.byteValue())); ++ ++ return maximum.compareTo(num) >= 0 ? num : null; ++ } ++ ++ /** ++ * Gets the previous value without changing the current value, or null if ++ * the current value is minimum. ++ * ++ * @return the previous value ++ */ ++ public Object getPreviousValue() ++ { ++ Number num; ++ ++ if (value instanceof Double) ++ num = new Double(value.doubleValue() - stepSize.doubleValue()); ++ else if (value instanceof Float) ++ num = new Double(value.floatValue() - stepSize.floatValue()); ++ else if (value instanceof Long) ++ num = new Long(value.longValue() - stepSize.longValue()); ++ else if (value instanceof Integer) ++ num = new Integer(value.intValue() - stepSize.intValue()); ++ else if (value instanceof Short) ++ num = new Short((short) (value.shortValue() - stepSize.shortValue())); ++ else ++ num = new Byte((byte) (value.byteValue() - stepSize.byteValue())); ++ ++ return minimum.compareTo(num) <= 0 ? num : null; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public Number getNumber() ++ { ++ return value; ++ } ++} +Index: javax/swing/Spring.java +=================================================================== +RCS file: javax/swing/Spring.java +diff -N javax/swing/Spring.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/Spring.java 6 Sep 2004 16:36:00 -0000 +@@ -0,0 +1,580 @@ ++/* Spring.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing; ++ ++/** ++ * Calculates the space between component edges, that are layed out by ++ * {@link SpringLayout}. ++ *

    ++ * A Spring defines a minimum, preferred and maximum distance for each edge ++ * (north, east, south, west) of a component. ++ *

    ++ * However, springs are not static, their actual values are computed at ++ * runtime. That means, if a Spring C is defined as the sum of Spring A and ++ * Spring B, then the values (min, pref and max) are not calculated at ++ * creation of Spring C, but instead always when {@link #getValue} is ++ * called. So, when Spring A or Spring B changes, this is reflected in ++ * Spring C. ++ * ++ * @author Roman Kennke (roman@ontographics.com) ++ */ ++public abstract class Spring ++{ ++ ++ /** Indicates a not-set value. **/ ++ public static final int UNSET = -2147483648; ++ ++ /** ++ * Creates a new Spring object. This constructor is used by the static ++ * methods which create Springs. ++ */ ++ protected Spring() ++ { ++ } ++ ++ /** ++ * Creates a Spring which min, pref and max values are all the same. ++ * These kind of Springs are 'struts'. ++ * ++ * @param val the constant for min, pref and max values. ++ * @return a Spring object with constant values for min, pref and max. ++ */ ++ public static Spring constant(int val) ++ { ++ return new SimpleSpring(val, val, val); ++ } ++ ++ /** Creates a Spring which min, pref and max values are constants. ++ * @param min the constant for the minimum value. ++ * @param pref the constant for the preferred value. ++ * @param max the constant for the maximum value. ++ * @return a Spring object with constant values for min, pref and max. ++ */ ++ public static Spring constant(int min, int pref, int max) ++ { ++ return new SimpleSpring(min, pref, max); ++ } ++ ++ /** ++ * Returns the maximum value of the Spring. ++ * ++ * @return the maximum value. ++ */ ++ public abstract int getMaximumValue(); ++ ++ /** ++ * Returns the minimum value of this Spring. ++ * ++ * @return the minimum value. ++ */ ++ public abstract int getMinimumValue(); ++ ++ /** ++ * Return the preferred value of this Spring. ++ * ++ * @return the preferred value. ++ */ ++ public abstract int getPreferredValue(); ++ ++ /** ++ * Return the actual value of this Spring. ++ * ++ * @return the actual value of this Spring. ++ */ ++ public abstract int getValue(); ++ ++ /** ++ * Creates and returns a Spring, which always has the maximum values ++ * min = max(min_s1, min_s2), pref = max(pref_s1, pref_s2), max = ++ * max(max_s1, max_s2). ++ * ++ * @param s1 the first summand of the max Spring. ++ * @param s2 the second summand of the max Spring. ++ * @return a Spring which is max(s1, s2). ++ */ ++ public static Spring max(Spring s1, Spring s2) ++ { ++ return new MaxSpring(s1, s2); ++ } ++ ++ /** ++ * Creates and returns a Spring, which is always the negation of s. ++ * min = -min_s, pref = -pref_s, max = -max_pref. ++ * ++ * @param s the Spring to be negated. ++ * @return the negative of s. ++ */ ++ public static Spring minus(Spring s) ++ { ++ return new MinusSpring(s); ++ } ++ ++ /** ++ * Sets the actual value. If value is out of the (min, max) ++ * bounds, then the value is adjusted, so that is inside these bounds. ++ * ++ * @param value the value to be set. ++ */ ++ public abstract void setValue(int value); ++ ++ /** ++ * Creates and returns a Spring, which is always the sum of s1 and s2. ++ * min_sum = min_s1 + min_s2, pref_sum = pref_s1 + pref_s2, max_sum = ++ * max_s1 + max_s2. ++ * ++ * @param s1 the 1st summand of the sum Spring. ++ * @param s2 the 2nd summand of the sum Spring. ++ * @return a sum which is s1 + s2. ++ */ ++ public static Spring sum(Spring s1, Spring s2) ++ { ++ return new AddSpring(s1, s2); ++ } ++ ++ /** ++ * A simple Spring, that holds constant values for min, pref and max. ++ * ++ * @author Roman Kennke (roman@ontographics.com) ++ */ ++ private static final class SimpleSpring extends Spring ++ { ++ ++ /** The constant value for min. */ ++ private final int min; ++ ++ /** The constant value for pref. */ ++ private final int pref; ++ ++ /** The constant value for max. */ ++ private final int max; ++ ++ /** The actual value of the spring. */ ++ private int value; ++ ++ /** ++ * Creates a new SimpleSpring object. ++ * ++ * @param min the constant minimum value. ++ * @param pref the constant preferred value. ++ * @param max the constant maximum value. ++ */ ++ public SimpleSpring(int newMin, int newPref, int newMax) ++ { ++ min = newMin; ++ pref = newPref; ++ max = newMax; ++ value = Spring.UNSET; ++ } ++ ++ /** ++ * Returns the maximum value of this Spring. ++ * ++ * @return the maximum value. ++ */ ++ public int getMaximumValue() ++ { ++ return max; ++ } ++ ++ /** ++ * Returns the minimum value of this Spring. ++ * ++ * @return the minimum value. ++ */ ++ public int getMinimumValue() ++ { ++ return min; ++ } ++ ++ /** ++ * Returns the preferred value of this Spring. ++ * ++ * @return the preferred value. ++ */ ++ public int getPreferredValue() ++ { ++ return pref; ++ } ++ ++ /** ++ * Return the actual current value of this Spring. ++ * ++ * @return the current value. ++ */ ++ public int getValue() ++ { ++ ++ if (value == Spring.UNSET) ++ { ++ value = pref; ++ } ++ ++ return value; ++ } ++ ++ /** ++ * Sets the current value. ++ * ++ * @param val the value to be set. ++ */ ++ public void setValue(int val) ++ { ++ ++ if (val > max) ++ { ++ value = max; ++ } ++ else if (val < min) ++ { ++ value = min; ++ } ++ else ++ { ++ value = val; ++ } ++ } ++ ++ } ++ ++ ++ /** ++ * A Spring, that is the sum of two other Springs. ++ * ++ * @author Roman Kennke (roman@ontographics.com) ++ */ ++ private static final class AddSpring extends Spring ++ { ++ ++ /** The springs, that are the 'operands' of this Spring. */ ++ private final Spring s1; ++ private final Spring s2; ++ ++ /** The current value for this Spring. */ ++ private int value; ++ ++ /** ++ * Creates a new AddSpring object. ++ * ++ * @param s1 the first operand. ++ * @param s2 the second operand. ++ */ ++ protected AddSpring(Spring s1, Spring s2) ++ { ++ super(); ++ this.s1 = s1; ++ this.s2 = s2; ++ value = Spring.UNSET; ++ } ++ ++ /** ++ * Returns the maximum value of this Spring. ++ * ++ * @return the maximum value. ++ */ ++ public int getMaximumValue() ++ { ++ int max1 = s1.getMaximumValue(); ++ int max2 = s2.getMaximumValue(); ++ return max1 + max2; ++ } ++ ++ /** ++ * Return the minimum value of this Spring. ++ * ++ * @return the minimum value. ++ */ ++ public int getMinimumValue() ++ { ++ int min1 = s1.getMinimumValue(); ++ int min2 = s2.getMinimumValue(); ++ return min1 + min2; ++ } ++ ++ /** ++ * Returns the preferred value of this Spring. ++ * ++ * @return the preferred value. ++ */ ++ public int getPreferredValue() ++ { ++ int pref1 = s1.getPreferredValue(); ++ int pref2 = s2.getPreferredValue(); ++ return pref1 + pref2; ++ } ++ ++ /** ++ * Returns the actual current value of this Spring. ++ * ++ * @return the current value of this Spring. ++ */ ++ public int getValue() ++ { ++ if (value == Spring.UNSET) ++ { ++ int val1 = s1.getValue(); ++ int val2 = s2.getValue(); ++ value = val1 + val2; ++ } ++ return value; ++ } ++ ++ /** ++ * Sets the current value. ++ * ++ * @param val the value to be set. ++ */ ++ public void setValue(int val) ++ { ++ ++ if (val > getMaximumValue()) ++ { ++ value = getMaximumValue(); ++ } ++ else if (val < getMinimumValue()) ++ { ++ value = getMinimumValue(); ++ } ++ else ++ { ++ value = val; ++ } ++ ++ } ++ ++ } ++ ++ ++ /** ++ * A Spring that is calculated as the negation of another Spring. ++ * ++ * @author Roman Kennke (roman@ontographics.com) ++ */ ++ private static final class MinusSpring extends Spring ++ { ++ ++ /** The Spring from which to calculate the negation. */ ++ private final Spring s; ++ ++ /** The current value of this Spring. */ ++ private int value; ++ ++ /** ++ * Creates a new MinusSpring object. ++ * @param s the Spring from which to calculate the negation. ++ */ ++ protected MinusSpring(Spring s) ++ { ++ super(); ++ this.s = s; ++ value = Spring.UNSET; ++ } ++ ++ /** Returns the maximum value of this Spring. ++ * ++ * @return the maximum value. ++ */ ++ public int getMaximumValue() ++ { ++ return -s.getMinimumValue(); ++ } ++ ++ /** ++ * Returns the minimum value of this Spring. ++ * ++ * @return the minimum value. ++ */ ++ public int getMinimumValue() ++ { ++ return -s.getMaximumValue(); ++ } ++ ++ /** ++ * Returns the preferred value of this Spring. ++ * ++ * @return the preferred value. ++ */ ++ public int getPreferredValue() ++ { ++ return -s.getPreferredValue(); ++ } ++ ++ /** ++ * Returns the current value of this Spring. ++ * ++ * @return the current value. ++ */ ++ public int getValue() ++ { ++ if (value == Spring.UNSET) ++ { ++ value = -s.getValue(); ++ } ++ return value; ++ } ++ ++ /** ++ * Sets the current value. ++ * ++ * @param val the value to be set. ++ */ ++ public void setValue(int val) ++ { ++ ++ if (val > getMaximumValue()) ++ { ++ value = getMaximumValue(); ++ } ++ else if (val < getMinimumValue()) ++ { ++ value = getMinimumValue(); ++ } ++ else ++ { ++ value = val; ++ } ++ ++ } ++ ++ } ++ ++ ++ /** ++ * A Spring, that is calculated as the maximum of two Springs. ++ * ++ * @author Roman Kennke (roman@ontographics.com) ++ */ ++ private static final class MaxSpring extends Spring ++ { ++ ++ /** The two other Springs from which to calculate the maximum. */ ++ private final Spring s1; ++ private final Spring s2; ++ ++ /** The current value of this Spring. */ ++ private int value; ++ ++ /** ++ * Creates a new MaxSpring object. ++ * ++ * @param s1 the 1st operand. ++ * @param s2 the 2nd operand. ++ */ ++ protected MaxSpring(Spring s1, Spring s2) ++ { ++ super(); ++ this.s1 = s1; ++ this.s2 = s2; ++ value = Spring.UNSET; ++ } ++ ++ ++ /** ++ * Returns the maximum value of this Spring. ++ * ++ * @return the maximum value. ++ */ ++ public int getMaximumValue() ++ { ++ int max1 = s1.getMaximumValue(); ++ int max2 = s2.getMaximumValue(); ++ return Math.max(max1, max2); ++ } ++ ++ /** ++ * Returns the minimum value of this Spring. ++ * ++ * @return the minimum value. ++ */ ++ public int getMinimumValue() ++ { ++ int min1 = s1.getMinimumValue(); ++ int min2 = s2.getMinimumValue(); ++ return Math.max(min1, min2); ++ } ++ ++ /** ++ * Returns the preferred value of this Spring. ++ * ++ * @return the preferred value. ++ */ ++ public int getPreferredValue() ++ { ++ int pref1 = s1.getPreferredValue(); ++ int pref2 = s2.getPreferredValue(); ++ return Math.max(pref1, pref2); ++ } ++ ++ /** ++ * Returns the actual value of this Spring. ++ * ++ * @return the current value. ++ */ ++ public int getValue() ++ { ++ if (value == Spring.UNSET) ++ { ++ int val1 = s1.getValue(); ++ int val2 = s2.getValue(); ++ value = Math.max(val1, val2); ++ } ++ return value; ++ } ++ ++ /** ++ * Sets the current value. ++ * ++ * @param val the value to be set. ++ */ ++ public void setValue(int val) ++ { ++ ++ if (val > getMaximumValue()) ++ { ++ value = getMaximumValue(); ++ } ++ else if (val < getMinimumValue()) ++ { ++ value = getMinimumValue(); ++ } ++ else ++ { ++ value = val; ++ } ++ } ++ } ++} +Index: javax/swing/SpringLayout.java +=================================================================== +RCS file: javax/swing/SpringLayout.java +diff -N javax/swing/SpringLayout.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/SpringLayout.java 6 Sep 2004 16:36:00 -0000 +@@ -0,0 +1,660 @@ ++/* SpringLayout.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++ ++package javax.swing; ++ ++import java.awt.Component; ++import java.awt.Container; ++import java.awt.Dimension; ++import java.awt.LayoutManager2; ++ ++import java.util.HashMap; ++import java.util.Map; ++ ++import javax.swing.Spring; ++ ++/** ++ * A very flexible layout manager. Components are laid out by defining the ++ * relationships between them. The relationships are expressed as ++ * {@link Spring}s. You can attach a Spring for each edge of a component and ++ * link it to an edge of a different component. For example, you can say, ++ * the northern edge of component A should be attached to the southern edge ++ * of component B, and the space between them should be something between ++ * x and y pixels, and preferably z pixels. ++ *

    While quite simple, this layout manager can be used to emulate most other ++ * layout managers, and can also be used to solve some layout problems, which ++ * would be hard to solve with other layout managers.

    ++ * ++ * @author Roman Kennke (roman@ontographics.com) ++ */ ++public class SpringLayout implements LayoutManager2 ++{ ++ ++ /** The right edge of a component. */ ++ public static final String EAST = "East"; ++ ++ /** The top edge of a component. */ ++ public static final String NORTH = "North"; ++ ++ /** The bottom edge of a component. */ ++ public static final String SOUTH = "South"; ++ ++ /** The left edge of a component. */ ++ public static final String WEST = "West"; ++ ++ /** maps components to their constraints. */ ++ private Map constraintsMap; ++ ++ /** ++ * The constraints that define the relationships between components. ++ * Each Constraints object can hold 4 Springs: one for each edge of the ++ * component. Additionally it can hold Springs for the components width ++ * and the components height. Since the height and width constraints are ++ * dependend on the other constraints, a component can be over-constraint. ++ * In this case (like when all of NORTH, SOUTH and HEIGHT are constraint), ++ * the values are adjusted, so that the mathematics still hold true. ++ * ++ * @author Roman Kennke (roman@ontographics.com) ++ */ ++ public final static class Constraints ++ { ++ ++ // The constraints for each edge, and width and height. ++ /** The Spring for the left edge. */ ++ private Spring x; ++ ++ /** The Spring for the upper edge. */ ++ private Spring y; ++ ++ /** The Spring for the height. */ ++ private Spring height; ++ ++ /** The Spring for the width. */ ++ private Spring width; ++ ++ /** The Spring for the right edge. */ ++ private Spring east; ++ ++ /** The Spring for the bottom edge. */ ++ private Spring south; ++ ++ /** ++ * Creates a new Constraints object. ++ * There is no constraint set. ++ */ ++ public Constraints() ++ { ++ x = y = height = width = east = south = null; ++ } ++ ++ /** ++ * Creates a new Constraints object. ++ * ++ * @param x the constraint for the left edge of the component. ++ * @param y the constraint for the upper edge of the component. ++ */ ++ public Constraints(Spring x, Spring y) ++ { ++ this.x = x; ++ this.y = y; ++ width = height = east = south = null; ++ } ++ ++ /** ++ * Creates a new Constraints object. ++ * ++ * @param x the constraint for the left edge of the component. ++ * @param y the constraint for the upper edge of the component. ++ * @param width the constraint for the width of the component. ++ * @param height the constraint for the height of the component. ++ */ ++ public Constraints(Spring x, Spring y, Spring width, Spring height) ++ { ++ this.x = x; ++ this.y = y; ++ this.width = width; ++ this.height = height; ++ east = south = null; ++ } ++ ++ /** ++ * Returns the constraint for the edge with the edgeName. ++ * This is expected to be one of ++ * {@link #EAST}, {@link #WEST}, {@link NORTH} or {@link SOUTH}. ++ * ++ * @param edgeName the name of the edge. ++ * @return the constraint for the specified edge. ++ */ ++ public Spring getConstraint(String edgeName) ++ { ++ Spring retVal = null; ++ if (edgeName.equals(SpringLayout.NORTH)) ++ retVal = y; ++ else if (edgeName.equals(SpringLayout.WEST)) ++ retVal = x; ++ else if (edgeName.equals(SpringLayout.SOUTH)) ++ { ++ retVal = south; ++ if ((retVal == null) && (y != null) && (height != null)) ++ retVal = Spring.sum(y, height); ++ } ++ else if (edgeName.equals(SpringLayout.EAST)) ++ { ++ retVal = east; ++ if ((retVal == null) && (x != null) && (width != null)) ++ retVal = Spring.sum(x, width); ++ } ++ ++ return retVal; ++ } ++ ++ /** ++ * Returns the constraint for the height of the component. ++ * ++ * @return the height constraint. ++ */ ++ public Spring getHeight() ++ { ++ Spring retVal = height; ++ if ((retVal == null) && (y != null) && (south != null)) ++ { ++ retVal = Spring.sum(south, Spring.minus(y)); ++ } ++ return retVal; ++ } ++ ++ /** ++ * Returns the constraint for the width of the component. ++ * ++ * @return the width constraint. ++ */ ++ public Spring getWidth() ++ { ++ Spring retVal = width; ++ if ((retVal == null) && (x != null) && (east != null)) ++ { ++ retVal = Spring.sum(east, Spring.minus(x)); ++ } ++ return retVal; ++ } ++ ++ /** ++ * Returns the constraint for the left edge of the component. ++ * ++ * @return the left-edge constraint (== WEST). ++ */ ++ public Spring getX() ++ { ++ Spring retVal = x; ++ if ((retVal == null) && (width != null) && (east != null)) ++ { ++ retVal = Spring.sum(east, Spring.minus(width)); ++ } ++ return retVal; ++ } ++ ++ /** ++ * Returns the constraint for the upper edge of the component. ++ * ++ * @return the upper-edge constraint (== NORTH). ++ */ ++ public Spring getY() ++ { ++ Spring retVal = y; ++ if ((retVal == null) && (height != null) && (south != null)) ++ { ++ retVal = Spring.sum(south, Spring.minus(height)); ++ } ++ return retVal; ++ } ++ ++ /** ++ * Sets a constraint for the specified edge. If this leads to an ++ * over-constrained situation, the constraints get adjusted, so that ++ * the mathematics still hold true. ++ * ++ * @param edgeName the name of the edge, one of {@link #EAST}, ++ * {@link #WEST}, {@link NORTH} or {@link SOUTH}. ++ * @param s the constraint to be set. ++ */ ++ public void setConstraint(String edgeName, Spring s) ++ { ++ ++ if (edgeName.equals(SpringLayout.WEST)) ++ { ++ x = s; ++ if ((width != null) && (east != null)) ++ width = Spring.sum(east, Spring.minus(x)); ++ } ++ else if (edgeName.equals(SpringLayout.NORTH)) ++ { ++ y = s; ++ if ((height != null) && (south != null)) ++ height = Spring.sum(south, Spring.minus(y)); ++ } ++ else if (edgeName.equals(SpringLayout.EAST)) ++ { ++ east = s; ++ if ((x != null) && (width != null)) ++ x = Spring.sum(east, Spring.minus(width)); ++ } ++ else if (edgeName.equals(SpringLayout.SOUTH)) ++ { ++ south = s; ++ if ((height != null) && (y != null)) ++ y = Spring.sum(south, Spring.minus(height)); ++ } ++ ++ } ++ ++ /** ++ * Sets the height-constraint. ++ * ++ * @param s the constraint to be set. ++ */ ++ public void setHeight(Spring s) ++ { ++ height = s; ++ if ((south != null) && (y != null)) ++ south = Spring.sum(y, height); ++ ++ } ++ ++ /** ++ * Sets the width-constraint. ++ * ++ * @param s the constraint to be set. ++ */ ++ public void setWidth(Spring s) ++ { ++ width = s; ++ if ((east != null) && (x != null)) ++ east = Spring.sum(x, width); ++ ++ } ++ ++ /** ++ * Sets the WEST-constraint. ++ * ++ * @param s the constraint to be set. ++ */ ++ public void setX(Spring s) ++ { ++ x = s; ++ if ((width != null) && (east != null)) ++ width = Spring.sum(east, Spring.minus(x)); ++ ++ } ++ ++ /** ++ * Sets the NORTH-constraint. ++ * ++ * @param s the constraint to be set. ++ */ ++ public void setY(Spring s) ++ { ++ y = s; ++ if ((height != null) && (south != null)) ++ height = Spring.sum(south, Spring.minus(y)); ++ ++ } ++ } ++ ++ /** ++ * Creates a new SpringLayout. ++ */ ++ public SpringLayout() ++ { ++ ++ constraintsMap = new HashMap(); ++ } ++ ++ /** ++ * Adds a layout component and a constraint object to this layout. ++ * This method is usually only called by a {@java.awt.Container}s add ++ * Method. ++ * ++ * @param component the component to be added. ++ * @param constraint the constraint to be set. ++ */ ++ public void addLayoutComponent(Component component, Object constraint) ++ { ++ constraintsMap.put(component, constraint); ++ } ++ ++ ++ /** ++ * Adds a layout component and a constraint object to this layout. ++ * This method is usually only called by a {@java.awt.Container}s add ++ * Method. This method does nothing, since SpringLayout does not manage ++ * String-indexed components. ++ * ++ * @param component the component to be added. ++ * @param constraint the constraint to be set. ++ */ ++ public void addLayoutComponent(String name, Component c) ++ { ++ // do nothing here. ++ } ++ ++ /** ++ * Returns the constraint of the edge named by edgeName. ++ * ++ * @param c the component from which to get the constraint. ++ * @param edgeName the name of the edge, one of {@link #EAST}, ++ * {@link #WEST}, {@link NORTH} or {@link SOUTH}. ++ * @return the constraint of the edge edgeName of the ++ * component c. ++ */ ++ public Spring getConstraint(String edgeName, Component c) ++ { ++ Constraints constraints = getConstraints(c); ++ return constraints.getConstraint(edgeName); ++ } ++ ++ /** ++ * Returns the {@link Constraints} object associated with the specified ++ * component. ++ * ++ * @param c the component for which to determine the constraint. ++ * @return the {@link Constraints} object associated with the specified ++ * component. ++ */ ++ public SpringLayout.Constraints getConstraints(Component c) ++ { ++ Constraints constraints = (Constraints) constraintsMap.get(c); ++ if (constraints == null) ++ { ++ Container parent = c.getParent(); ++ constraints = new Constraints(); ++ if (parent != null) ++ { ++ constraints.setX ++ (Spring.constant(parent.getInsets().left)); ++ constraints.setY ++ (Spring.constant(parent.getInsets().top)); ++ } ++ else ++ { ++ constraints.setX ++ (Spring.constant(0)); ++ constraints.setY ++ (Spring.constant(0)); ++ ++ } ++ constraints.setWidth ++ (Spring.constant(c.getMinimumSize().width, ++ c.getPreferredSize().width, ++ c.getMaximumSize().width)); ++ constraints.setHeight ++ (Spring.constant(c.getMinimumSize().height, ++ c.getPreferredSize().height, ++ c.getMaximumSize().height)); ++ ++ constraintsMap.put(c, constraints); ++ ++ } ++ ++ return constraints; ++ } ++ ++ /** ++ * Returns the X alignment of the Container p. ++ * ++ * @param p the {@link java.awt.Container} for which to determine the X ++ * alignment. ++ * @return always 0.0 ++ */ ++ public float getLayoutAlignmentX(Container p) ++ { ++ return 0.0F; ++ } ++ ++ /** ++ * Returns the Y alignment of the Container p. ++ * ++ * @param p the {@link java.awt.Container} for which to determine the Y ++ * alignment. ++ * @return always 0.0 ++ */ ++ public float getLayoutAlignmentY(Container p) ++ { ++ return 0.0F; ++ } ++ ++ /** ++ * Recalculate a possibly cached layout. ++ */ ++ public void invalidateLayout(Container p) ++ { ++ // nothing to do here yet ++ } ++ ++ /** ++ * Lays out the container p. ++ * ++ * @param p the container to be laid out. ++ */ ++ public void layoutContainer(Container p) ++ { ++ ++ addLayoutComponent(p, new Constraints(Spring.constant(0), ++ Spring.constant(0))); ++ ++ int offsetX = p.getInsets().left; ++ int offsetY = p.getInsets().right; ++ ++ Component[] components = p.getComponents(); ++ for (int index = 0; index < components.length; index++) ++ { ++ Component c = components[index]; ++ Constraints constraints = getConstraints(c); ++ int x = constraints.getX().getValue(); ++ int y = constraints.getY().getValue(); ++ int width = constraints.getWidth().getValue(); ++ int height = constraints.getHeight().getValue(); ++ ++ c.setLocation(x + offsetX, y + offsetY); ++ c.setSize(width, height); ++ } ++ ++ } ++ ++ /** ++ * Calculates the maximum size of the layed out container. This ++ * respects the maximum sizes of all contained components. ++ * ++ * @param p the container to be laid out. ++ * @return the maximum size of the container. ++ */ ++ public Dimension maximumLayoutSize(Container p) ++ { ++ int maxX = 0; ++ int maxY = 0; ++ ++ int offsetX = p.getInsets().left; ++ int offsetY = p.getInsets().right; ++ ++ Component[] components = p.getComponents(); ++ for (int index = 0; index < components.length; index++) ++ { ++ Component c = components[index]; ++ Constraints constraints = getConstraints(c); ++ int x = constraints.getX().getMaximumValue(); ++ int y = constraints.getY().getMaximumValue(); ++ int width = constraints.getWidth().getMaximumValue(); ++ int height = constraints.getHeight().getMaximumValue(); ++ ++ int rightEdge = offsetX + x + width; ++ if (rightEdge > maxX) ++ maxX = rightEdge; ++ int bottomEdge = offsetY + y + height; ++ if (bottomEdge > maxY) ++ maxY = bottomEdge; ++ } ++ ++ return new Dimension(maxX, maxY); ++ } ++ ++ ++ /** ++ * Calculates the minimum size of the layed out container. This ++ * respects the minimum sizes of all contained components. ++ * ++ * @param p the container to be laid out. ++ * @return the minimum size of the container. ++ */ ++ public Dimension minimumLayoutSize(Container p) ++ { ++ int maxX = 0; ++ int maxY = 0; ++ ++ int offsetX = p.getInsets().left; ++ int offsetY = p.getInsets().right; ++ ++ Component[] components = p.getComponents(); ++ for (int index = 0; index < components.length; index++) ++ { ++ Component c = components[index]; ++ Constraints constraints = getConstraints(c); ++ int x = constraints.getX().getMinimumValue(); ++ int y = constraints.getY().getMinimumValue(); ++ int width = constraints.getWidth().getMinimumValue(); ++ int height = constraints.getHeight().getMinimumValue(); ++ ++ int rightEdge = offsetX + x + width; ++ if (rightEdge > maxX) ++ maxX = rightEdge; ++ int bottomEdge = offsetY + y + height; ++ if (bottomEdge > maxY) ++ maxY = bottomEdge; ++ } ++ ++ return new Dimension(maxX, maxY); ++ } ++ ++ /** ++ * Calculates the preferred size of the layed out container. This ++ * respects the preferred sizes of all contained components. ++ * ++ * @param p the container to be laid out. ++ * @return the preferred size of the container. ++ */ ++ public Dimension preferredLayoutSize(Container p) ++ { ++ int maxX = 0; ++ int maxY = 0; ++ ++ int offsetX = p.getInsets().left; ++ int offsetY = p.getInsets().right; ++ ++ Component[] components = p.getComponents(); ++ for (int index = 0; index < components.length; index++) ++ { ++ Component c = components[index]; ++ Constraints constraints = getConstraints(c); ++ int x = constraints.getX().getPreferredValue(); ++ int y = constraints.getY().getPreferredValue(); ++ int width = constraints.getWidth().getPreferredValue(); ++ int height = constraints.getHeight().getPreferredValue(); ++ ++ int rightEdge = offsetX + x + width; ++ if (rightEdge > maxX) ++ maxX = rightEdge; ++ int bottomEdge = offsetY + y + height; ++ if (bottomEdge > maxY) ++ maxY = bottomEdge; ++ } ++ ++ return new Dimension(maxX, maxY); ++ } ++ ++ /** ++ * Attaches the edge e1 of component c1 to ++ * the edge e2 of component c2 width the ++ * fixed strut pad. ++ * ++ * @param e1 the edge of component 1. ++ * @param c1 the component 1. ++ * @param pad the space between the components in pixels. ++ * @param e2 the edge of component 2. ++ * @param c2 the component 2. ++ */ ++ public void putConstraint(String e1, Component c1, int pad, String e2, ++ Component c2) ++ { ++ Constraints constraints1 = getConstraints(c1); ++ Constraints constraints2 = getConstraints(c2); ++ ++ Spring strut = Spring.constant(pad); ++ Spring otherEdge = constraints2.getConstraint(e2); ++ constraints1.setConstraint(e1, Spring.sum(strut, otherEdge)); ++ ++ } ++ ++ /** ++ * Attaches the edge e1 of component c1 to ++ * the edge e2 of component c2 width the ++ * {@link Spring} s. ++ * ++ * @param e1 the edge of component 1. ++ * @param c1 the component 1. ++ * @param s the space between the components as a {@link Spring} object. ++ * @param e2 the edge of component 2. ++ * @param c2 the component 2. ++ */ ++ public void putConstraint(String e1, Component c1, Spring s, String e2, ++ Component c2) ++ { ++ Constraints constraints1 = getConstraints(c1); ++ Constraints constraints2 = getConstraints(c2); ++ ++ Spring otherEdge = constraints2.getConstraint(e2); ++ constraints1.setConstraint(e1, Spring.sum(s, otherEdge)); ++ ++ } ++ ++ /** ++ * Removes a layout component. ++ * @param c the layout component to remove. ++ */ ++ public void removeLayoutComponent(Component c) ++ { ++ // do nothing here ++ } ++} +Index: javax/swing/SwingConstants.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/SwingConstants.java,v +retrieving revision 1.3 +diff -u -r1.3 SwingConstants.java +--- javax/swing/SwingConstants.java 12 Oct 2003 13:20:49 -0000 1.3 ++++ javax/swing/SwingConstants.java 6 Sep 2004 16:36:00 -0000 +@@ -60,5 +60,15 @@ + + int LEADING = 10; + int TRAILING = 11; ++ ++ /** ++ * @since 1.4 ++ */ ++ int NEXT = 12; ++ ++ /** ++ * @since 1.4 ++ */ ++ int PREVIOUS = 13; + } + +Index: javax/swing/SwingUtilities.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/SwingUtilities.java,v +retrieving revision 1.3 +diff -u -r1.3 SwingUtilities.java +--- javax/swing/SwingUtilities.java 14 Jul 2003 05:33:30 -0000 1.3 ++++ javax/swing/SwingUtilities.java 6 Sep 2004 16:36:01 -0000 +@@ -1,5 +1,5 @@ +-/* SwingUtilities.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++/* SwingUtilities.java -- ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,101 +35,983 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing; + ++import java.applet.Applet; + import java.awt.Component; ++import java.awt.ComponentOrientation; + import java.awt.Container; +-import java.awt.EventQueue; + import java.awt.Font; + import java.awt.FontMetrics; ++import java.awt.Frame; + import java.awt.Graphics; + import java.awt.Insets; + import java.awt.Point; + import java.awt.Rectangle; ++import java.awt.Shape; + import java.awt.Toolkit; + import java.awt.Window; ++import java.awt.event.ActionEvent; ++import java.awt.event.InputEvent; + import java.awt.event.KeyEvent; + import java.awt.event.MouseEvent; + import java.lang.reflect.InvocationTargetException; +-import javax.accessibility.Accessible; +-import javax.accessibility.AccessibleStateSet; ++import javax.swing.plaf.ActionMapUIResource; ++import javax.swing.plaf.InputMapUIResource; ++ + ++/** ++ * This class contains a number of static utility functions which are ++ * useful when drawing swing components, dispatching events, or calculating ++ * regions which need painting. ++ * ++ * @author Graydon Hoare (graydon@redhat.com) ++ */ + public class SwingUtilities implements SwingConstants + { +- public static FontMetrics getFontMetrics (Font font) ++ /** ++ * This frame should be used as parent for JWindow or JDialog ++ * that doesn't an owner ++ */ ++ private static OwnerFrame ownerFrame; ++ ++ /** ++ * Calculates the portion of the base rectangle which is inside the ++ * insets. ++ * ++ * @param base The rectangle to apply the insets to ++ * @param insets The insets to apply to the base rectangle ++ * @param ret A rectangle to use for storing the return value, or ++ * null ++ * ++ * @return The calculated area inside the base rectangle and its insets, ++ * either stored in ret or a new Rectangle if ret is null ++ * ++ * @see #calculateInnerArea ++ */ ++ public static Rectangle calculateInsetArea(Rectangle base, Insets insets, ++ Rectangle ret) ++ { ++ if (ret == null) ++ ret = new Rectangle(); ++ ret.setBounds(base.x + insets.left, base.y + insets.top, ++ base.width - (insets.left + insets.right), ++ base.height - (insets.top + insets.bottom)); ++ return ret; ++ } ++ ++ /** ++ * Calculates the portion of the component's bounds which is inside the ++ * component's border insets. This area is usually the area a component ++ * should confine its painting to. The coordinates are returned in terms ++ * of the component's coordinate system, where (0,0) is the ++ * upper left corner of the component's bounds. ++ * ++ * @param c The component to measure the bounds of ++ * @param r A Rectangle to store the return value in, or ++ * null ++ * ++ * @return The calculated area inside the component and its border ++ * insets ++ * ++ * @see #calculateInsetArea ++ */ ++ public static Rectangle calculateInnerArea(JComponent c, Rectangle r) ++ { ++ Rectangle b = getLocalBounds(c); ++ return calculateInsetArea(b, c.getInsets(), r); ++ } ++ ++ /** ++ * Calculates the bounds of a component in the component's own coordinate ++ * space. The result has the same height and width as the component's ++ * bounds, but its location is set to (0,0). ++ * ++ * @param aComponent The component to measure ++ * ++ * @return The component's bounds in its local coordinate space ++ */ ++ public static Rectangle getLocalBounds(Component aComponent) ++ { ++ Rectangle bounds = aComponent.getBounds(); ++ return new Rectangle(0, 0, bounds.width, bounds.height); ++ } ++ ++ /** ++ * Returns the font metrics object for a given font. The metrics can be ++ * used to calculate crude bounding boxes and positioning information, ++ * for laying out components with textual elements. ++ * ++ * @param font The font to get metrics for ++ * ++ * @return The font's metrics ++ * ++ * @see java.awt.font.GlyphMetrics ++ */ ++ public static FontMetrics getFontMetrics(Font font) ++ { ++ return Toolkit.getDefaultToolkit().getFontMetrics(font); ++ } ++ ++ /** ++ * If comp is a RootPaneContainer, return its JRootPane. ++ * Otherwise call getAncestorOfClass(JRootPane.class, a). ++ * ++ * @param comp The component to get the JRootPane of ++ * ++ * @return a suitable JRootPane for comp, or null ++ * ++ * @see javax.swing.RootPaneContainer#getRootPane ++ * @see #getAncestorOfClass ++ */ ++ public static JRootPane getRootPane(Component comp) ++ { ++ if (comp instanceof RootPaneContainer) ++ return ((RootPaneContainer)comp).getRootPane(); ++ else ++ return (JRootPane) getAncestorOfClass(JRootPane.class, comp); ++ } ++ ++ /** ++ * Returns the least ancestor of comp which has the ++ * specified name. ++ * ++ * @param name The name to search for ++ * @param comp The component to search the ancestors of ++ * ++ * @return The nearest ancestor of comp with the given ++ * name, or null if no such ancestor exists ++ * ++ * @see java.awt.Component#getName ++ * @see #getAncestorOfClass ++ */ ++ public static Container getAncestorNamed(String name, Component comp) ++ { ++ while (comp != null && (comp.getName() != name)) ++ comp = comp.getParent(); ++ return (Container) comp; ++ } ++ ++ /** ++ * Returns the least ancestor of comp which is an instance ++ * of the specified class. ++ * ++ * @param c The class to search for ++ * @param comp The component to search the ancestors of ++ * ++ * @return The nearest ancestor of comp which is an instance ++ * of the given class, or null if no such ancestor exists ++ * ++ * @see #getAncestorOfClass ++ * @see #windowForComponent ++ */ ++ public static Container getAncestorOfClass(Class c, Component comp) ++ { ++ while (comp != null && (! c.isInstance(comp))) ++ comp = comp.getParent(); ++ return (Container) comp; ++ } ++ ++ /** ++ * Equivalent to calling getAncestorOfClass(Window, comp). ++ * ++ * @param comp The component to search for an ancestor window ++ * ++ * @return An ancestral window, or null if none exists ++ */ ++ public static Window windowForComponent(Component comp) + { +- return Toolkit.getDefaultToolkit ().getFontMetrics (font); ++ return (Window) getAncestorOfClass(Window.class, comp); + } + +- public static JRootPane getRootPane (Component a) ++ /** ++ * Returns the "root" of the component tree containint comp ++ * The root is defined as either the least ancestor of ++ * comp which is a {@link Window}, or the greatest ++ * ancestor of comp which is a {@link Applet} if no {@link ++ * Window} ancestors are found. ++ * ++ * @param comp The component to search for a root ++ * ++ * @return The root of the component's tree, or null ++ */ ++ public static Component getRoot(Component comp) + { +- if (a instanceof JRootPane) +- return (JRootPane) a; +- +- a = a.getParent(); ++ Applet app = null; ++ Window win = null; + +- if (a != null) ++ while (comp != null) + { +- return getRootPane(a); ++ if (win == null && comp instanceof Window) ++ win = (Window) comp; ++ else if (comp instanceof Applet) ++ app = (Applet) comp; ++ comp = comp.getParent(); ++ } ++ ++ if (win != null) ++ return win; ++ else ++ return app; ++ } ++ ++ /** ++ * Return true if a descends from b, in other words if b is an ++ * ancestor of a. ++ * ++ * @param a The child to search the ancestry of ++ * @param b The potential ancestor to search for ++ * ++ * @return true if a is a descendent of b, false otherwise ++ */ ++ public static boolean isDescendingFrom(Component a, Component b) ++ { ++ while (true) ++ { ++ if (a == null || b == null) ++ return false; ++ if (a == b) ++ return true; ++ a = a.getParent(); + } +- +- return null; + } + +- public static void updateComponentTreeUI(JFrame comp) ++ /** ++ * Returns the deepest descendent of parent which is both visible and ++ * contains the point (x,y). Returns parent when either ++ * parent is not a container, or has no children which contain ++ * (x,y). Returns null when either ++ * (x,y) is outside the bounds of parent, or parent is ++ * null. ++ * ++ * @param parent The component to search the descendents of ++ * @param x Horizontal coordinate to search for ++ * @param y Vertical coordinate to search for ++ * ++ * @return A component containing (x,y), or ++ * null ++ * ++ * @see java.awt.Container#findComponentAt ++ */ ++ public static Component getDeepestComponentAt(Component parent, int x, int y) + { ++ if (parent == null || (! parent.contains(x, y))) ++ return null; ++ ++ if (! (parent instanceof Container)) ++ return parent; ++ ++ Container c = (Container) parent; ++ return c.findComponentAt(x, y); + } + ++ /** ++ * Converts a point from a component's local coordinate space to "screen" ++ * coordinates (such as the coordinate space mouse events are delivered ++ * in). This operation is equivalent to translating the point by the ++ * location of the component (which is the origin of its coordinate ++ * space). ++ * ++ * @param p The point to convert ++ * @param c The component which the point is expressed in terms of ++ * ++ * @see convertPointFromScreen ++ */ ++ public static void convertPointToScreen(Point p, Component c) ++ { ++ Point c0 = c.getLocationOnScreen(); ++ p.translate(c0.x, c0.y); ++ } ++ ++ /** ++ * Converts a point from "screen" coordinates (such as the coordinate ++ * space mouse events are delivered in) to a component's local coordinate ++ * space. This operation is equivalent to translating the point by the ++ * negation of the component's location (which is the origin of its ++ * coordinate space). ++ * ++ * @param p The point to convert ++ * @param c The component which the point should be expressed in terms of ++ */ ++ public static void convertPointFromScreen(Point p, Component c) ++ { ++ Point c0 = c.getLocationOnScreen(); ++ p.translate(-c0.x, -c0.y); ++ } ++ ++ /** ++ * Converts a point (x,y) from the coordinate space of one ++ * component to another. This is equivalent to converting the point from ++ * source space to screen space, then back from screen space ++ * to destination space. If exactly one of the two ++ * Components is null, it is taken to refer to the root ++ * ancestor of the other component. If both are null, no ++ * transformation is done. ++ * ++ * @param source The component which the point is expressed in terms of ++ * @param x Horizontal coordinate of point to transform ++ * @param y Vertical coordinate of point to transform ++ * @param destination The component which the return value will be ++ * expressed in terms of ++ * ++ * @return The point (x,y) converted from the coordinate space of the ++ * source component to the coordinate space of the destination component ++ * ++ * @see #convertPointToScreen ++ * @see #convertPointFromScreen ++ * @see #convertRectangle ++ * @see #getRoot ++ */ ++ public static Point convertPoint(Component source, int x, int y, ++ Component destination) ++ { ++ Point pt = new Point(x, y); ++ ++ if (source == null && destination == null) ++ return pt; ++ ++ if (source == null) ++ source = getRoot(destination); ++ ++ if (destination == null) ++ destination = getRoot(source); ++ ++ convertPointToScreen(pt, source); ++ convertPointFromScreen(pt, destination); ++ ++ return pt; ++ } ++ ++ public static Point convertPoint(Component source, Point aPoint, Component destination) ++ { ++ return convertPoint(source, aPoint.x, aPoint.y, destination); ++ } ++ ++ /** ++ * Converts a rectangle from the coordinate space of one component to ++ * another. This is equivalent to converting the rectangle from ++ * source space to screen space, then back from screen space ++ * to destination space. If exactly one of the two ++ * Components is null, it is taken to refer to the root ++ * ancestor of the other component. If both are null, no ++ * transformation is done. ++ * ++ * @param source The component which the rectangle is expressed in terms of ++ * @param rect The rectangle to convert ++ * @param destination The component which the return value will be ++ * expressed in terms of ++ * ++ * @return A new rectangle, equal in size to the input rectangle, but ++ * with its position converted from the coordinate space of the source ++ * component to the coordinate space of the destination component ++ * ++ * @see #convertPointToScreen ++ * @see #convertPointFromScreen ++ * @see #convertPoint ++ * @see #getRoot ++ */ ++ public static Rectangle convertRectangle(Component source, ++ Rectangle rect, ++ Component destination) ++ { ++ Point pt = convertPoint(source, rect.x, rect.y, destination); ++ return new Rectangle(pt.x, pt.y, rect.width, rect.height); ++ } ++ ++ /** ++ * Convert a mouse event which refrers to one component to another. This ++ * includes changing the mouse event's coordinate space, as well as the ++ * source property of the event. If source is ++ * null, it is taken to refer to destination's ++ * root component. If destination is null, the ++ * new event will remain expressed in source's coordinate ++ * system. ++ * ++ * @param source The component the mouse event currently refers to ++ * @param sourceEvent The mouse event to convert ++ * @param destination The component the new mouse event should refer to ++ * ++ * @return A new mouse event expressed in terms of the destination ++ * component's coordinate space, and with the destination component as ++ * its source ++ * ++ * @see #convertPoint ++ */ ++ public static MouseEvent convertMouseEvent(Component source, ++ MouseEvent sourceEvent, ++ Component destination) ++ { ++ Point newpt = convertPoint(source, sourceEvent.getX(), sourceEvent.getY(), ++ destination); ++ ++ return new MouseEvent(destination, sourceEvent.getID(), ++ sourceEvent.getWhen(), sourceEvent.getModifiersEx(), ++ newpt.x, newpt.y, sourceEvent.getClickCount(), ++ sourceEvent.isPopupTrigger(), sourceEvent.getButton()); ++ } ++ ++ /** ++ * Recursively walk the component tree under comp calling ++ * updateUI on each {@link JComponent} found. This causes ++ * the entire tree to re-initialize its UI delegates. ++ * ++ * @param comp The component to walk the children of, calling updateUI ++ */ ++ public static void updateComponentTreeUI(Component comp) ++ { ++ if (comp == null) ++ return; ++ ++ if (comp instanceof Container) ++ { ++ Component[] children = ((Container)comp).getComponents(); ++ for (int i = 0; i < children.length; ++i) ++ updateComponentTreeUI(children[i]); ++ } ++ ++ if (comp instanceof JComponent) ++ ((JComponent)comp).updateUI(); ++ } ++ ++ ++ /** ++ *

    Layout a "compound label" consisting of a text string and an icon ++ * which is to be placed near the rendered text. Once the text and icon ++ * are laid out, the text rectangle and icon rectangle parameters are ++ * altered to store the calculated positions.

    ++ * ++ *

    The size of the text is calculated from the provided font metrics ++ * object. This object should be the metrics of the font you intend to ++ * paint the label with.

    ++ * ++ *

    The position values control where the text is placed relative to ++ * the icon. The horizontal position value should be one of the constants ++ * LEADING, TRAILING, LEFT, ++ * RIGHT or CENTER. The vertical position value ++ * should be one fo the constants TOP, BOTTOM ++ * or CENTER.

    ++ * ++ *

    The text-icon gap value controls the number of pixels between the ++ * icon and the text.

    ++ * ++ *

    The alignment values control where the text and icon are placed, as ++ * a combined unit, within the view rectangle. The horizontal alignment ++ * value should be one of the constants LEADING, ++ * TRAILING, LEFT, RIGHT or ++ * CENTER. The vertical alignment valus should be one of the ++ * constants TOP, BOTTOM or ++ * CENTER.

    ++ * ++ *

    If the LEADING or TRAILING constants are ++ * given for horizontal alignment or horizontal text position, they are ++ * interpreted relative to the provided component's orientation property, ++ * a constant in the {@link java.awt.ComponentOrientation} class. For ++ * example, if the component's orientation is LEFT_TO_RIGHT, ++ * then the LEADING value is a synonym for LEFT ++ * and the TRAILING value is a synonym for ++ * RIGHT

    ++ * ++ *

    If the text and icon are equal to or larger than the view ++ * rectangle, the horizontal and vertical alignment values have no ++ * affect.

    ++ * ++ * @param c A component used for its orientation value ++ * @param fm The font metrics used to measure the text ++ * @param text The text to place in the compound label ++ * @param icon The icon to place next to the text ++ * @param verticalAlignment The vertical alignment of the label relative ++ * to its component ++ * @param horizontalAlignment The horizontal alignment of the label ++ * relative to its component ++ * @param verticalTextPosition The vertical position of the label's text ++ * relative to its icon ++ * @param horizontalTextPosition The horizontal position of the label's ++ * text relative to its icon ++ * @param viewR The view rectangle, specifying the area which layout is ++ * constrained to ++ * @param iconR A rectangle which is modified to hold the laid-out ++ * position of the icon ++ * @param textR A rectangle which is modified to hold the laid-out ++ * position of the text ++ * @param textIconGap The distance between text and icon ++ * ++ * @return The string of characters, possibly truncated with an elipsis, ++ * which is laid out in this label ++ */ ++ + public static String layoutCompoundLabel(JComponent c, + FontMetrics fm, ++ String text, ++ Icon icon, ++ int verticalAlignment, ++ int horizontalAlignment, ++ int verticalTextPosition, ++ int horizontalTextPosition, ++ Rectangle viewR, ++ Rectangle iconR, ++ Rectangle textR, ++ int textIconGap) ++ { ++ ++ // Fix up the orientation-based horizontal positions. ++ ++ if (horizontalTextPosition == LEADING) ++ { ++ if (c.getComponentOrientation() == ComponentOrientation.RIGHT_TO_LEFT) ++ horizontalTextPosition = RIGHT; ++ else ++ horizontalTextPosition = LEFT; ++ } ++ else if (horizontalTextPosition == TRAILING) ++ { ++ if (c.getComponentOrientation() == ComponentOrientation.RIGHT_TO_LEFT) ++ horizontalTextPosition = LEFT; ++ else ++ horizontalTextPosition = RIGHT; ++ } ++ ++ // Fix up the orientation-based alignments. ++ ++ if (horizontalAlignment == LEADING) ++ { ++ if (c.getComponentOrientation() == ComponentOrientation.RIGHT_TO_LEFT) ++ horizontalAlignment = RIGHT; ++ else ++ horizontalAlignment = LEFT; ++ } ++ else if (horizontalAlignment == TRAILING) ++ { ++ if (c.getComponentOrientation() == ComponentOrientation.RIGHT_TO_LEFT) ++ horizontalAlignment = LEFT; ++ else ++ horizontalAlignment = RIGHT; ++ } ++ ++ return layoutCompoundLabel(fm, text, icon, ++ verticalAlignment, ++ horizontalAlignment, ++ verticalTextPosition, ++ horizontalTextPosition, ++ viewR, iconR, textR, textIconGap); ++ } ++ ++ /** ++ *

    Layout a "compound label" consisting of a text string and an icon ++ * which is to be placed near the rendered text. Once the text and icon ++ * are laid out, the text rectangle and icon rectangle parameters are ++ * altered to store the calculated positions.

    ++ * ++ *

    The size of the text is calculated from the provided font metrics ++ * object. This object should be the metrics of the font you intend to ++ * paint the label with.

    ++ * ++ *

    The position values control where the text is placed relative to ++ * the icon. The horizontal position value should be one of the constants ++ * LEFT, RIGHT or CENTER. The ++ * vertical position value should be one fo the constants ++ * TOP, BOTTOM or CENTER.

    ++ * ++ *

    The text-icon gap value controls the number of pixels between the ++ * icon and the text.

    ++ * ++ *

    The alignment values control where the text and icon are placed, as ++ * a combined unit, within the view rectangle. The horizontal alignment ++ * value should be one of the constants LEFT, RIGHT or ++ * CENTER. The vertical alignment valus should be one of the ++ * constants TOP, BOTTOM or ++ * CENTER.

    ++ * ++ *

    If the text and icon are equal to or larger than the view ++ * rectangle, the horizontal and vertical alignment values have no ++ * affect.

    ++ * ++ *

    Note that this method does not know how to deal with ++ * horizontal alignments or positions given as LEADING or ++ * TRAILING values. Use the other overloaded variant of this ++ * method if you wish to use such values. ++ * ++ * @param fm The font metrics used to measure the text ++ * @param text The text to place in the compound label ++ * @param icon The icon to place next to the text ++ * @param verticalAlignment The vertical alignment of the label relative ++ * to its component ++ * @param horizontalAlignment The horizontal alignment of the label ++ * relative to its component ++ * @param verticalTextPosition The vertical position of the label's text ++ * relative to its icon ++ * @param horizontalTextPosition The horizontal position of the label's ++ * text relative to its icon ++ * @param viewR The view rectangle, specifying the area which layout is ++ * constrained to ++ * @param iconR A rectangle which is modified to hold the laid-out ++ * position of the icon ++ * @param textR A rectangle which is modified to hold the laid-out ++ * position of the text ++ * @param textIconGap The distance between text and icon ++ * ++ * @return The string of characters, possibly truncated with an elipsis, ++ * which is laid out in this label ++ */ ++ ++ public static String layoutCompoundLabel(FontMetrics fm, + String text, +- Icon i, +- int vert_a, +- int hor_i, +- int vert_text_pos, +- int hor_text_pos, +- Rectangle vr, +- Rectangle ir, +- Rectangle tr, +- int gap) +- { +- // view rect 'vr' already ok, +- // we need to compute ir (icon rect) and tr (text-rect) +- +- int next_x = 0;//vr.x; +- int next_y = 0;//vr.y; +- +- ir.height = ir.width = ir.y = ir.x = 0; +- +- if (i != null) +- { +- ir.x = vr.x; +- ir.y = vr.y; +- ir.width = i.getIconWidth(); +- ir.height = i.getIconWidth(); +- +- +- next_x += gap + i.getIconWidth(); +- next_y += gap + i.getIconHeight(); +- } +- +- tr.x = next_x; +- tr.y = vr.y + (vr.height/2); ++ Icon icon, ++ int verticalAlignment, ++ int horizontalAlignment, ++ int verticalTextPosition, ++ int horizontalTextPosition, ++ Rectangle viewR, ++ Rectangle iconR, ++ Rectangle textR, ++ int textIconGap) ++ { ++ ++ // Work out basic height and width. ++ ++ if (icon == null) ++ { ++ textIconGap = 0; ++ iconR.width = 0; ++ iconR.height = 0; ++ } ++ else ++ { ++ iconR.width = icon.getIconWidth(); ++ iconR.height = icon.getIconHeight(); ++ } ++ if (text == null) ++ { ++ textIconGap = 0; ++ textR.width = 0; ++ textR.height = 0; ++ } ++ else ++ { ++ textR.width = fm.stringWidth(text); ++ textR.height = fm.getHeight(); ++ } ++ ++ // Work out the position of text and icon, assuming the top-left coord ++ // starts at (0,0). We will fix that up momentarily, after these ++ // "position" decisions are made and we look at alignment. ++ ++ switch (horizontalTextPosition) ++ { ++ case LEFT: ++ textR.x = 0; ++ iconR.x = textR.width + textIconGap; ++ break; ++ case RIGHT: ++ iconR.x = 0; ++ textR.x = iconR.width + textIconGap; ++ break; ++ case CENTER: ++ int centerLine = Math.max(textR.width, iconR.width) / 2; ++ textR.x = centerLine - textR.width/2; ++ iconR.x = centerLine - iconR.width/2; ++ break; ++ } ++ ++ switch (verticalTextPosition) ++ { ++ case TOP: ++ textR.y = 0; ++ iconR.y = (horizontalTextPosition == CENTER ++ ? textR.height + textIconGap : 0); ++ break; ++ case BOTTOM: ++ iconR.y = 0; ++ textR.y = (horizontalTextPosition == CENTER ++ ? iconR.height + textIconGap ++ : iconR.height - textR.height); ++ break; ++ case CENTER: ++ int centerLine = Math.max(textR.height, iconR.height) / 2; ++ textR.y = centerLine - textR.height/2; ++ iconR.y = centerLine - iconR.height/2; ++ break; ++ } ++ // The two rectangles are laid out correctly now, but only assuming ++ // that their upper left corner is at (0,0). If we have any alignment other ++ // than TOP and LEFT, we need to adjust them. ++ ++ Rectangle u = textR.union(iconR); ++ int horizontalAdjustment = viewR.x; ++ int verticalAdjustment = viewR.y; ++ switch (verticalAlignment) ++ { ++ case TOP: ++ break; ++ case BOTTOM: ++ verticalAdjustment += (viewR.height - u.height); ++ break; ++ case CENTER: ++ verticalAdjustment += ((viewR.height/2) - (u.height/2)); ++ break; ++ } ++ switch (horizontalAlignment) ++ { ++ case LEFT: ++ break; ++ case RIGHT: ++ horizontalAdjustment += (viewR.width - u.width); ++ break; ++ case CENTER: ++ horizontalAdjustment += ((viewR.width/2) - (u.width/2)); ++ break; ++ } + +- tr.width = fm.stringWidth(text); +- tr.height = fm.getHeight() + fm.getAscent()/2; ++ iconR.x += horizontalAdjustment; ++ iconR.y += verticalAdjustment; ++ ++ textR.x += horizontalAdjustment; ++ textR.y += verticalAdjustment; + + return text; + } + +-} ++ /** ++ * Calls {@link java.awt.EventQueue.invokeLater} with the ++ * specified {@link Runnable}. ++ */ ++ public static void invokeLater(Runnable doRun) ++ { ++ java.awt.EventQueue.invokeLater(doRun); ++ } + ++ /** ++ * Calls {@link java.awt.EventQueue.invokeAndWait} with the ++ * specified {@link Runnable}. ++ */ ++ public static void invokeAndWait(Runnable doRun) ++ throws InterruptedException, ++ InvocationTargetException ++ { ++ java.awt.EventQueue.invokeAndWait(doRun); ++ } + ++ /** ++ * Calls {@link java.awt.EventQueue.isEventDispatchThread}. ++ */ ++ public static boolean isEventDispatchThread() ++ { ++ return java.awt.EventQueue.isDispatchThread(); ++ } ++ ++ /** ++ * This method paints the given component at the given position and size. ++ * The component will be reparented to the container given. ++ * ++ * @param g The Graphics object to draw with. ++ * @param c The Component to draw ++ * @param p The Container to reparent to. ++ * @param x The x coordinate to draw at. ++ * @param y The y coordinate to draw at. ++ * @param w The width of the drawing area. ++ * @param h The height of the drawing area. ++ */ ++ public static void paintComponent(Graphics g, Component c, Container p, ++ int x, int y, int w, int h) ++ { ++ Container parent = c.getParent(); ++ if (parent != null) ++ parent.remove(c); ++ if (p != null) ++ p.add(c); ++ ++ Shape savedClip = g.getClip(); ++ ++ g.setClip(x, y, w, h); ++ g.translate(x, y); + ++ c.paint(g); ++ ++ g.translate(-x, -y); ++ g.setClip(savedClip); ++ } + ++ /** ++ * This method paints the given component in the given rectangle. ++ * The component will be reparented to the container given. ++ * ++ * @param g The Graphics object to draw with. ++ * @param c The Component to draw ++ * @param p The Container to reparent to. ++ * @param r The rectangle that describes the drawing area. ++ */ ++ public static void paintComponent(Graphics g, Component c, ++ Container p, Rectangle r) ++ { ++ paintComponent(g, c, p, r.x, r.y, r.width, r.height); ++ } ++ ++ /** ++ * This method returns the common Frame owner used in JDialogs or ++ * JWindow when no owner is provided. ++ * ++ * @return The common Frame ++ */ ++ static Frame getOwnerFrame() ++ { ++ if (ownerFrame == null) ++ ownerFrame = new OwnerFrame(); ++ return ownerFrame; ++ } + ++ /** ++ * Checks if left mouse button was clicked. ++ * ++ * @param event the event to check ++ * ++ * @return true if left mouse was clicked, false otherwise. ++ */ ++ public static boolean isLeftMouseButton(MouseEvent event) ++ { ++ return ((event.getModifiersEx() & InputEvent.BUTTON1_DOWN_MASK) ++ == InputEvent.BUTTON1_DOWN_MASK); ++ } + ++ /** ++ * Checks if middle mouse button was clicked. ++ * ++ * @param event the event to check ++ * ++ * @return true if middle mouse was clicked, false otherwise. ++ */ ++ public static boolean isMiddleMouseButton(MouseEvent event) ++ { ++ return ((event.getModifiersEx() & InputEvent.BUTTON2_DOWN_MASK) ++ == InputEvent.BUTTON2_DOWN_MASK); ++ } + ++ /** ++ * Checks if right mouse button was clicked. ++ * ++ * @param event the event to check ++ * ++ * @return true if right mouse was clicked, false otherwise. ++ */ ++ public static boolean isRightMouseButton(MouseEvent event) ++ { ++ return ((event.getModifiersEx() & InputEvent.BUTTON3_DOWN_MASK) ++ == InputEvent.BUTTON3_DOWN_MASK); ++ } ++ ++ /** ++ * This frame should be used when constructing a Window/JDialog without ++ * a parent. In this case, we are forced to use this frame as a window's ++ * parent, because we simply cannot pass null instead of parent to Window ++ * constructor, since doing it will result in NullPointerException. ++ */ ++ private static class OwnerFrame extends Frame ++ { ++ public void setVisible(boolean b) ++ { ++ // Do nothing here. ++ } ++ ++ public boolean isShowing() ++ { ++ return true; ++ } ++ } + ++ public static boolean notifyAction(Action action, ++ KeyStroke ks, ++ KeyEvent event, ++ Object sender, ++ int modifiers) ++ { ++ if (action != null && action.isEnabled()) ++ { ++ String name = (String) action.getValue(Action.ACTION_COMMAND_KEY); ++ if (name == null ++ && event.getKeyChar() != KeyEvent.CHAR_UNDEFINED) ++ name = new String(new char[] {event.getKeyChar()}); ++ action.actionPerformed(new ActionEvent(sender, ++ ActionEvent.ACTION_PERFORMED, ++ name, modifiers)); ++ return true; ++ } ++ return false; ++ } + ++ /** ++ *

    Change the shared, UI-managed {@link ActionMap} for a given ++ * component. ActionMaps are arranged in a hierarchy, in order to ++ * encourage sharing of common actions between components. The hierarchy ++ * unfortunately places UI-managed ActionMaps at the end of the ++ * parent-pointer chain, as illustrated:

    ++ * ++ *
    ++   *  [{@link javax.swing.JComponent#getActionMap()}] 
    ++   *          --> [{@link javax.swing.ActionMap}] 
    ++   *     parent --> [{@link javax.swing.text.KeymapActionMap}] 
    ++   *       parent --> [{@link javax.swing.plaf.ActionMapUIResource}]
    ++   * 
    ++ * ++ *

    Our goal with this method is to replace the first ActionMap along ++ * this chain which is an instance of {@link ActionMapUIResource}, since ++ * these are the ActionMaps which are supposed to be shared between ++ * components.

    ++ * ++ *

    If the provided ActionMap is null, we interpret the ++ * call as a request to remove the UI-managed ActionMap from the ++ * component's ActionMap parent chain.

    ++ */ ++ public static void replaceUIActionMap(JComponent component, ++ ActionMap uiActionMap) ++ { ++ ActionMap child = component.getActionMap(); ++ if (child == null) ++ component.setActionMap(uiActionMap); ++ else ++ { ++ while(child.getParent() != null ++ && !(child.getParent() instanceof ActionMapUIResource)) ++ child = child.getParent(); ++ if (child != null) ++ child.setParent(uiActionMap); ++ } ++ } ++ ++ /** ++ *

    Change the shared, UI-managed {@link InputMap} for a given ++ * component. InputMaps are arranged in a hierarchy, in order to ++ * encourage sharing of common input mappings between components. The ++ * hierarchy unfortunately places UI-managed InputMaps at the ++ * end of the parent-pointer chain, as illustrated:

    ++ * ++ *
    ++   *  [{@link javax.swing.JComponent#getInputMap()}] 
    ++   *          --> [{@link javax.swing.InputMap}] 
    ++   *     parent --> [{@link javax.swing.text.KeymapWrapper}] 
    ++   *       parent --> [{@link javax.swing.plaf.InputMapUIResource}]
    ++   * 
    ++ * ++ *

    Our goal with this method is to replace the first InputMap along ++ * this chain which is an instance of {@link InputMapUIResource}, since ++ * these are the InputMaps which are supposed to be shared between ++ * components.

    ++ * ++ *

    If the provided InputMap is null, we interpret the ++ * call as a request to remove the UI-managed InputMap from the ++ * component's InputMap parent chain.

    ++ */ ++ public static void replaceUIInputMap(JComponent component, ++ int condition, ++ InputMap uiInputMap) ++ { ++ InputMap child = component.getInputMap(condition); ++ if (child == null) ++ component.setInputMap(condition, uiInputMap); ++ else ++ { ++ while(child.getParent() != null ++ && !(child.getParent() instanceof InputMapUIResource)) ++ child = child.getParent(); ++ if (child != null) ++ child.setParent(uiInputMap); ++ } ++ } ++} +Index: javax/swing/Timer.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/Timer.java,v +retrieving revision 1.3 +diff -u -r1.3 Timer.java +--- javax/swing/Timer.java 24 Jun 2003 09:48:40 -0000 1.3 ++++ javax/swing/Timer.java 6 Sep 2004 16:36:01 -0000 +@@ -1,5 +1,5 @@ +-/* Timer.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++/* Timer.java -- ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,146 +35,370 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing; + + import java.awt.event.ActionEvent; + import java.awt.event.ActionListener; + import java.io.Serializable; + import java.util.EventListener; +-import java.util.Vector; + import javax.swing.event.EventListenerList; + ++ ++/** ++ * DOCUMENT ME! ++ */ + public class Timer implements Serializable + { ++ /** DOCUMENT ME! */ ++ private static final long serialVersionUID = -1116180831621385484L; ++ ++ /** DOCUMENT ME! */ + protected EventListenerList listenerList = new EventListenerList(); +- +- int ticks; +- static boolean verbose; ++ ++ // This object manages a "queue" of virtual actionEvents, maintained as a ++ // simple long counter. When the timer expires, a new event is queued, ++ // and a dispatcher object is pushed into the system event queue. When ++ // the system thread runs the dispatcher, it will fire as many ++ // ActionEvents as have been queued, unless the timer is set to ++ // coalescing mode, in which case it will fire only one ActionEvent. ++ ++ /** DOCUMENT ME! */ ++ private long queue; ++ ++ /** DOCUMENT ME! */ ++ private Object queueLock = new Object(); ++ ++ /** DOCUMENT ME! */ ++ private Waker waker; ++ ++ /** ++ * DOCUMENT ME! ++ */ ++ private void queueEvent() ++ { ++ synchronized (queueLock) ++ { ++ queue++; ++ if (queue == 1) ++ SwingUtilities.invokeLater(new Runnable() ++ { ++ public void run() ++ { ++ drainEvents(); ++ } ++ }); ++ ++ } ++ } ++ ++ /** ++ * DOCUMENT ME! ++ */ ++ private void drainEvents() ++ { ++ synchronized (queueLock) ++ { ++ if (isCoalesce()) ++ { ++ if (queue > 0) ++ fireActionPerformed(); ++ } ++ else ++ { ++ while (queue > 0) ++ { ++ fireActionPerformed(); ++ queue--; ++ } ++ } ++ queue = 0; ++ } ++ } ++ ++ static boolean logTimers; ++ ++ /** DOCUMENT ME! */ ++ boolean coalesce = true; ++ ++ /** DOCUMENT ME! */ ++ boolean repeats = true; ++ ++ /** DOCUMENT ME! */ + boolean running; +- boolean repeat_ticks = true; +- long interval, init_delay; +- +- class Waker extends Thread ++ ++ /** DOCUMENT ME! */ ++ int ticks; ++ ++ /** DOCUMENT ME! */ ++ int delay; ++ ++ /** DOCUMENT ME! */ ++ int initialDelay; ++ ++ /** ++ * DOCUMENT ME! ++ */ ++ private class Waker extends Thread + { ++ /** ++ * DOCUMENT ME! ++ */ + public void run() + { + running = true; +- try { +- sleep(init_delay); +- +- while (running) +- { +- sleep(interval); ++ try ++ { ++ sleep(initialDelay); ++ ++ while (running) ++ { ++ try ++ { ++ sleep(delay); ++ } ++ catch (InterruptedException e) ++ { ++ return; ++ } ++ queueEvent(); + +- if (verbose) +- { ++ if (logTimers) + System.out.println("javax.swing.Timer -> clocktick"); +- } + +- ticks++; +- fireActionPerformed(); +- +- if (! repeat_ticks) +- break; +- } +- running = false; +- } catch (Exception e) { +- System.out.println("swing.Timer::" + e); +- } ++ if (! repeats) ++ break; ++ } ++ running = false; ++ } ++ catch (Exception e) ++ { ++// System.out.println("swing.Timer::" + e); ++ } + } + } + ++ /** ++ * Creates a new Timer object. ++ * ++ * @param d DOCUMENT ME! ++ * @param listener DOCUMENT ME! ++ */ ++ public Timer(int d, ActionListener listener) ++ { ++ delay = d; ++ ++ if (listener != null) ++ addActionListener(listener); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param c DOCUMENT ME! ++ */ ++ public void setCoalesce(boolean c) ++ { ++ coalesce = c; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public boolean isCoalesce() ++ { ++ return coalesce; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param listener DOCUMENT ME! ++ */ + public void addActionListener(ActionListener listener) + { +- listenerList.add (ActionListener.class, listener); ++ listenerList.add(ActionListener.class, listener); + } +- ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param listener DOCUMENT ME! ++ */ + public void removeActionListener(ActionListener listener) + { +- listenerList.remove (ActionListener.class, listener); ++ listenerList.remove(ActionListener.class, listener); + } + + /** ++ * DOCUMENT ME! ++ * ++ * @param listenerType DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ * + * @since 1.3 + */ +- public EventListener[] getListeners (Class listenerType) ++ public EventListener[] getListeners(Class listenerType) + { +- return listenerList.getListeners (listenerType); ++ return listenerList.getListeners(listenerType); + } +- ++ + /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ * + * @since 1.4 + */ +- public ActionListener[] getActionListeners () ++ public ActionListener[] getActionListeners() + { +- return (ActionListener[]) listenerList.getListeners (ActionListener.class); ++ return (ActionListener[]) listenerList.getListeners(ActionListener.class); + } + +- protected void fireActionPerformed (ActionEvent event) ++ /** ++ * DOCUMENT ME! ++ * ++ * @param event DOCUMENT ME! ++ */ ++ protected void fireActionPerformed(ActionEvent event) + { + ActionListener[] listeners = getActionListeners(); +- ++ + for (int i = 0; i < listeners.length; i++) +- { +- listeners [i].actionPerformed (event); +- } ++ listeners[i].actionPerformed(event); + } + +- void fireActionPerformed () ++ /** ++ * DOCUMENT ME! ++ */ ++ void fireActionPerformed() + { +- fireActionPerformed (new ActionEvent (this, ticks, "Timer")); ++ fireActionPerformed(new ActionEvent(this, ticks++, "Timer")); + } + +- public static void setLogTimers(boolean flag) ++ /** ++ * DOCUMENT ME! ++ * ++ * @param lt DOCUMENT ME! ++ */ ++ public static void setLogTimers(boolean lt) + { +- verbose = flag; ++ logTimers = lt; + } + ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ + public static boolean getLogTimers() + { +- return verbose; ++ return logTimers; + } +- + +- public void setDelay(int delay) ++ /** ++ * DOCUMENT ME! ++ * ++ * @param d DOCUMENT ME! ++ */ ++ public void setDelay(int d) + { +- interval = delay; ++ delay = d; + } + ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ + public int getDelay() + { +- return (int)interval; ++ return delay; + } + ++ /** ++ * DOCUMENT ME! ++ * ++ * @param i DOCUMENT ME! ++ */ ++ public void setInitialDelay(int i) ++ { ++ initialDelay = i; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public int getInitialDelay() ++ { ++ return initialDelay; ++ } + +- public void setInitialDelay(int initialDelay) ++ /** ++ * DOCUMENT ME! ++ * ++ * @param r DOCUMENT ME! ++ */ ++ public void setRepeats(boolean r) + { +- init_delay = initialDelay; ++ repeats = r; + } + +- public void setRepeats(boolean flag) ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public boolean isRepeats() + { +- repeat_ticks = flag; ++ return repeats; + } + +- boolean isRunning() ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public boolean isRunning() + { + return running; + } + +- void start() ++ /** ++ * DOCUMENT ME! ++ */ ++ public void start() + { + if (isRunning()) +- { +- System.err.println("attempt to start a running timer"); +- return; +- } +- new Waker().start(); ++ return; ++ waker = new Waker(); ++ waker.start(); + } + +- void stop() ++ /** ++ * DOCUMENT ME! ++ */ ++ public void restart() ++ { ++ stop(); ++ start(); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ */ ++ public void stop() + { + running = false; ++ if (waker != null) ++ waker.interrupt(); ++ synchronized (queueLock) ++ { ++ queue = 0; ++ } + } + } +Index: javax/swing/ToggleButtonModel.java +=================================================================== +RCS file: javax/swing/ToggleButtonModel.java +diff -N javax/swing/ToggleButtonModel.java +--- javax/swing/ToggleButtonModel.java 19 Jun 2003 16:30:09 -0000 1.2 ++++ /dev/null 1 Jan 1970 00:00:00 -0000 +@@ -1,60 +0,0 @@ +-/* ToggleButtonModel.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. +- +-This file is part of GNU Classpath. +- +-GNU Classpath is free software; you can redistribute it and/or modify +-it under the terms of the GNU General Public License as published by +-the Free Software Foundation; either version 2, or (at your option) +-any later version. +- +-GNU Classpath is distributed in the hope that it will be useful, but +-WITHOUT ANY WARRANTY; without even the implied warranty of +-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-General Public License for more details. +- +-You should have received a copy of the GNU General Public License +-along with GNU Classpath; see the file COPYING. If not, write to the +-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +-02111-1307 USA. +- +-Linking this library statically or dynamically with other modules is +-making a combined work based on this library. Thus, the terms and +-conditions of the GNU General Public License cover the whole +-combination. +- +-As a special exception, the copyright holders of this library give you +-permission to link this library with independent modules to produce an +-executable, regardless of the license terms of these independent +-modules, and to copy and distribute the resulting executable under +-terms of your choice, provided that you also meet, for each linked +-independent module, the terms and conditions of the license of that +-module. An independent module is a module which is not derived from +-or based on this library. If you modify this library, you may extend +-this exception to your version of the library, but you are not +-obligated to do so. If you do not wish to do so, delete this +-exception statement from your version. */ +- +- +-package javax.swing; +- +-public class ToggleButtonModel extends DefaultButtonModel +-{ +- ToggleButtonModel(JComponent c) +- { +- super(c); +- } +- +- public void setPressed(boolean b) +- { +- if (! isEnabled()) +- return; +- +- if (! b) +- { +- return; +- } +- +- setSelected(b); +- } +-} +Index: javax/swing/ToolTipManager.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/ToolTipManager.java,v +retrieving revision 1.2 +diff -u -r1.2 ToolTipManager.java +--- javax/swing/ToolTipManager.java 10 Jan 2004 21:07:43 -0000 1.2 ++++ javax/swing/ToolTipManager.java 6 Sep 2004 16:36:01 -0000 +@@ -37,358 +37,608 @@ + + package javax.swing; + ++import java.awt.AWTEvent; ++import java.awt.Component; ++import java.awt.Container; ++import java.awt.Dimension; ++import java.awt.FlowLayout; ++import java.awt.Insets; ++import java.awt.LayoutManager; ++import java.awt.Panel; ++import java.awt.Point; + import java.awt.Rectangle; ++import java.awt.event.*; + import java.awt.event.ActionEvent; + import java.awt.event.ActionListener; + import java.awt.event.MouseAdapter; + import java.awt.event.MouseEvent; + import java.awt.event.MouseMotionListener; ++import javax.swing.JComponent; ++import javax.swing.Popup; ++import javax.swing.PopupFactory; ++import javax.swing.SwingUtilities; ++import javax.swing.Timer; ++ + + /** +- * ToolTipManager +- * @author Andrew Selkirk +- * @version 1.0 ++ * This class is responsible for the registration of JToolTips to Components ++ * and for displaying them when appropriate. + */ +-public class ToolTipManager extends MouseAdapter implements MouseMotionListener { +- +- //------------------------------------------------------------- +- // Classes ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * stillInsideTimerAction +- */ +- protected class stillInsideTimerAction implements ActionListener { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor stillInsideTimerAction +- * @param manager TODO +- */ +- protected stillInsideTimerAction(ToolTipManager manager) { +- // TODO +- } // stillInsideTimerAction() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * actionPerformed +- * @param event TODO +- */ +- public void actionPerformed(ActionEvent event) { +- // TODO +- } // actionPerformed() +- +- +- } // stillInsideTimerAction +- +- /** +- * outsideTimerAction +- */ +- protected class outsideTimerAction implements ActionListener { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor outsideTimerAction +- * @param manager TODO +- */ +- protected outsideTimerAction(ToolTipManager manager) { +- // TODO +- } // outsideTimerAction() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * actionPerformed +- * @param value0 TODO +- */ +- public void actionPerformed(ActionEvent event) { +- // TODO +- } // actionPerformed() +- +- +- } // outsideTimerAction +- +- /** +- * insideTimerAction +- */ +- protected class insideTimerAction implements ActionListener { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor insideTimerAction +- * @param manager TODO +- */ +- protected insideTimerAction(ToolTipManager manager) { +- // TODO +- } // insideTimerAction() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * actionPerformed +- * @param event TODO +- */ +- public void actionPerformed(ActionEvent event) { +- // TODO +- } // actionPerformed() +- +- +- } // insideTimerAction +- +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * enterTimer +- */ +- Timer enterTimer; +- +- /** +- * exitTimer +- */ +- Timer exitTimer; +- +- /** +- * insideTimer +- */ +- Timer insideTimer; +- +- /** +- * toolTipText +- */ +- String toolTipText; +- +- /** +- * mouseEvent +- */ +- MouseEvent mouseEvent; +- +- /** +- * showImmediately +- */ +- boolean showImmediately; +- +- /** +- * tip +- */ +- JToolTip tip; +- +- /** +- * enabled +- */ +- boolean enabled; +- +- /** +- * timerEnter +- */ +- private long timerEnter; +- +- /** +- * lightWeightPopupEnabled +- */ +- protected boolean lightWeightPopupEnabled; +- +- /** +- * heavyWeightPopupEnabled +- */ +- protected boolean heavyWeightPopupEnabled; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor ToolTipManager +- */ +- ToolTipManager() { +- // TODO +- } // ToolTipManager() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * sharedInstance +- * @returns ToolTipManager +- */ +- public static ToolTipManager sharedInstance() { +- return null; // TODO +- } // sharedInstance() +- +- /** +- * setEnabled +- * @param enabled TODO +- */ +- public void setEnabled(boolean enabled) { +- // TODO +- } // setEnabled() +- +- /** +- * isEnabled +- * @returns boolean +- */ +- public boolean isEnabled() { +- return false; // TODO +- } // isEnabled() +- +- /** +- * isLightWeightPopupEnabled +- * @returns boolean +- */ +- public boolean isLightWeightPopupEnabled() { +- return false; // TODO +- } // isLightWeightPopupEnabled() +- +- /** +- * setLightWeightPopupEnabled +- * @param enabled TODO +- */ +- public void setLightWeightPopupEnabled(boolean enabled) { +- // TODO +- } // setLightWeightPopupEnabled() +- +- /** +- * getInitialDelay +- * @returns int +- */ +- public int getInitialDelay() { +- return 0; // TODO +- } // getInitialDelay() +- +- /** +- * setInitialDelay +- * @param delay TODO +- */ +- public void setInitialDelay(int delay) { +- // TODO +- } // setInitialDelay() +- +- /** +- * getDismissDelay +- * @returns int +- */ +- public int getDismissDelay() { +- return 0; // TODO +- } // getDismissDelay() +- +- /** +- * setDismissDelay +- * @param delay TODO +- */ +- public void setDismissDelay(int delay) { +- // TODO +- } // setDismissDelay() +- +- /** +- * getReshowDelay +- * @returns int +- */ +- public int getReshowDelay() { +- return 0; // TODO +- } // getReshowDelay() +- +- /** +- * setReshowDelay +- * @param delay TODO +- */ +- public void setReshowDelay(int delay) { +- // TODO +- } // setReshowDelay() +- +- /** +- * registerComponent +- * @param component TODO +- */ +- public void registerComponent(JComponent component) { +- // TODO +- } // registerComponent() +- +- /** +- * unregisterComponent +- * @param component TODO +- */ +- public void unregisterComponent(JComponent component) { +- // TODO +- } // unregisterComponent() +- +- /** +- * mouseEntered +- * @param event TODO +- */ +- public void mouseEntered(MouseEvent event) { +- // TODO +- } // mouseEntered() +- +- /** +- * mouseExited +- * @param event TODO +- */ +- public void mouseExited(MouseEvent event) { +- // TODO +- } // mouseExited() +- +- /** +- * mousePressed +- * @param event TODO +- */ +- public void mousePressed(MouseEvent event) { +- // TODO +- } // mousePressed() +- +- /** +- * mouseDragged +- * @param event TODO +- */ +- public void mouseDragged(MouseEvent event) { +- // TODO +- } // mouseDragged() +- +- /** +- * mouseMoved +- * @param event TODO +- */ +- public void mouseMoved(MouseEvent event) { +- // TODO +- } // mouseMoved() +- +- +-} // ToolTipManager ++public class ToolTipManager extends MouseAdapter implements MouseMotionListener ++{ ++ /** ++ * This ActionListener is associated with the Timer that listens to whether ++ * the JToolTip can be hidden after four seconds. ++ */ ++ protected class stillInsideTimerAction implements ActionListener ++ { ++ /** ++ * This method creates a new stillInsideTimerAction object. ++ */ ++ protected stillInsideTimerAction() ++ { ++ } ++ ++ /** ++ * This method hides the JToolTip when the Timer has finished. ++ * ++ * @param event The ActionEvent. ++ */ ++ public void actionPerformed(ActionEvent event) ++ { ++ hideTip(); ++ } ++ } ++ ++ /** ++ * This Actionlistener is associated with the Timer that listens to whether ++ * the mouse cursor has re-entered the JComponent in time for an immediate ++ * redisplay of the JToolTip. ++ */ ++ protected class outsideTimerAction implements ActionListener ++ { ++ /** ++ * This method creates a new outsideTimerAction object. ++ */ ++ protected outsideTimerAction() ++ { ++ } ++ ++ /** ++ * This method is called when the Timer that listens to whether the mouse ++ * cursor has re-entered the JComponent has run out. ++ * ++ * @param event The ActionEvent. ++ */ ++ public void actionPerformed(ActionEvent event) ++ { ++ } ++ } ++ ++ /** ++ * This ActionListener is associated with the Timer that listens to whether ++ * it is time for the JToolTip to be displayed after the mouse has entered ++ * the JComponent. ++ */ ++ protected class insideTimerAction implements ActionListener ++ { ++ /** ++ * This method creates a new insideTimerAction object. ++ */ ++ protected insideTimerAction() ++ { ++ } ++ ++ /** ++ * This method displays the JToolTip when the Mouse has been still for the ++ * delay. ++ * ++ * @param event The ActionEvent. ++ */ ++ public void actionPerformed(ActionEvent event) ++ { ++ showTip(); ++ if (insideTimer != null) ++ insideTimer.start(); ++ } ++ } ++ ++ /** ++ * The Timer that determines whether the Mouse has been still long enough ++ * for the JToolTip to be displayed. ++ */ ++ Timer enterTimer; ++ ++ /** ++ * The Timer that determines whether the Mouse has re-entered the JComponent ++ * quickly enough for the JToolTip to be displayed immediately. ++ */ ++ Timer exitTimer; ++ ++ /** ++ * The Timer that determines whether the JToolTip has been displayed long ++ * enough for it to be hidden. ++ */ ++ Timer insideTimer; ++ ++ /** A global enabled setting for the ToolTipManager. */ ++ private transient boolean enabled = true; ++ ++ /** lightWeightPopupEnabled */ ++ protected boolean lightWeightPopupEnabled = true; ++ ++ /** heavyWeightPopupEnabled */ ++ protected boolean heavyWeightPopupEnabled = false; ++ ++ /** The shared instance of the ToolTipManager. */ ++ private static ToolTipManager shared; ++ ++ /** The current component the tooltip is being displayed for. */ ++ private static Component currentComponent; ++ ++ /** The current tooltip. */ ++ private static JToolTip currentTip; ++ ++ /** The last known position of the mouse cursor. */ ++ private static Point currentPoint; ++ ++ /** ++ * The panel that holds the tooltip when the tooltip is displayed fully ++ * inside the current container. ++ */ ++ private static Container containerPanel; ++ ++ /** ++ * The window used when the tooltip doesn't fit inside the current ++ * container. ++ */ ++ private static JWindow tooltipWindow; ++ ++ /** ++ * Creates a new ToolTipManager and sets up the timers. ++ */ ++ ToolTipManager() ++ { ++ enterTimer = new Timer(750, new insideTimerAction()); ++ enterTimer.setRepeats(false); ++ ++ insideTimer = new Timer(4000, new stillInsideTimerAction()); ++ insideTimer.setRepeats(false); ++ ++ exitTimer = new Timer(500, new outsideTimerAction()); ++ exitTimer.setRepeats(false); ++ } ++ ++ /** ++ * This method returns the shared instance of ToolTipManager used by all ++ * JComponents. ++ * ++ * @return The shared instance of ToolTipManager. ++ */ ++ public static ToolTipManager sharedInstance() ++ { ++ if (shared == null) ++ shared = new ToolTipManager(); ++ ++ return shared; ++ } ++ ++ /** ++ * This method sets whether ToolTips are enabled or disabled for all ++ * JComponents. ++ * ++ * @param enabled Whether ToolTips are enabled or disabled for all ++ * JComponents. ++ */ ++ public void setEnabled(boolean enabled) ++ { ++ if (! enabled) ++ { ++ enterTimer.stop(); ++ exitTimer.stop(); ++ insideTimer.stop(); ++ } ++ ++ this.enabled = enabled; ++ } ++ ++ /** ++ * This method returns whether ToolTips are enabled. ++ * ++ * @return Whether ToolTips are enabled. ++ */ ++ public boolean isEnabled() ++ { ++ return enabled; ++ } ++ ++ /** ++ * This method returns whether LightweightToolTips are enabled. ++ * ++ * @return Whether LighweightToolTips are enabled. ++ */ ++ public boolean isLightWeightPopupEnabled() ++ { ++ return lightWeightPopupEnabled; ++ } ++ ++ /** ++ * This method sets whether LightweightToolTips are enabled. If you mix ++ * Lightweight and Heavyweight components, you must set this to false to ++ * ensure that the ToolTips popup above all other components. ++ * ++ * @param enabled Whether LightweightToolTips will be enabled. ++ */ ++ public void setLightWeightPopupEnabled(boolean enabled) ++ { ++ lightWeightPopupEnabled = enabled; ++ heavyWeightPopupEnabled = ! enabled; ++ } ++ ++ /** ++ * This method returns the initial delay before the ToolTip is shown when ++ * the mouse enters a Component. ++ * ++ * @return The initial delay before the ToolTip is shown. ++ */ ++ public int getInitialDelay() ++ { ++ return enterTimer.getDelay(); ++ } ++ ++ /** ++ * This method sets the initial delay before the ToolTip is shown when the ++ * mouse enters a Component. ++ * ++ * @param delay The initial delay before the ToolTip is shown. ++ */ ++ public void setInitialDelay(int delay) ++ { ++ enterTimer.setDelay(delay); ++ } ++ ++ /** ++ * This method returns the time the ToolTip will be shown before being ++ * hidden. ++ * ++ * @return The time the ToolTip will be shown before being hidden. ++ */ ++ public int getDismissDelay() ++ { ++ return insideTimer.getDelay(); ++ } ++ ++ /** ++ * This method sets the time the ToolTip will be shown before being hidden. ++ * ++ * @param delay The time the ToolTip will be shown before being hidden. ++ */ ++ public void setDismissDelay(int delay) ++ { ++ insideTimer.setDelay(delay); ++ } ++ ++ /** ++ * This method returns the amount of delay where if the mouse re-enters a ++ * Component, the tooltip will be shown immediately. ++ * ++ * @return The reshow delay. ++ */ ++ public int getReshowDelay() ++ { ++ return exitTimer.getDelay(); ++ } ++ ++ /** ++ * This method sets the amount of delay where if the mouse re-enters a ++ * Component, the tooltip will be shown immediately. ++ * ++ * @param delay The reshow delay. ++ */ ++ public void setReshowDelay(int delay) ++ { ++ exitTimer.setDelay(delay); ++ } ++ ++ /** ++ * This method registers a JComponent with the ToolTipManager. ++ * ++ * @param component The JComponent to register with the ToolTipManager. ++ */ ++ public void registerComponent(JComponent component) ++ { ++ component.addMouseListener(this); ++ component.addMouseMotionListener(this); ++ } ++ ++ /** ++ * This method unregisters a JComponent with the ToolTipManager. ++ * ++ * @param component The JComponent to unregister with the ToolTipManager. ++ */ ++ public void unregisterComponent(JComponent component) ++ { ++ component.removeMouseMotionListener(this); ++ component.removeMouseListener(this); ++ } ++ ++ /** ++ * This method is called whenever the mouse enters a JComponent registered ++ * with the ToolTipManager. When the mouse enters within the period of time ++ * specified by the reshow delay, the tooltip will be displayed ++ * immediately. Otherwise, it must wait for the initial delay before ++ * displaying the tooltip. ++ * ++ * @param event The MouseEvent. ++ */ ++ public void mouseEntered(MouseEvent event) ++ { ++ if (currentComponent != null ++ && getContentPaneDeepestComponent(event) == currentComponent) ++ return; ++ currentPoint = event.getPoint(); ++ currentComponent = (Component) event.getSource(); ++ ++ if (exitTimer.isRunning()) ++ { ++ exitTimer.stop(); ++ showTip(); ++ insideTimer.start(); ++ return; ++ } ++ ++ // This should always be stopped unless we have just fake-exited. ++ if (! enterTimer.isRunning()) ++ enterTimer.start(); ++ } ++ ++ /** ++ * This method is called when the mouse exits a JComponent registered with ++ * the ToolTipManager. When the mouse exits, the tooltip should be hidden ++ * immediately. ++ * ++ * @param event The MouseEvent. ++ */ ++ public void mouseExited(MouseEvent event) ++ { ++ if (getContentPaneDeepestComponent(event) == currentComponent) ++ return; ++ ++ currentPoint = event.getPoint(); ++ currentComponent = null; ++ hideTip(); ++ ++ if (! enterTimer.isRunning() && insideTimer.isRunning()) ++ exitTimer.start(); ++ if (enterTimer.isRunning()) ++ enterTimer.stop(); ++ if (insideTimer.isRunning()) ++ insideTimer.stop(); ++ } ++ ++ /** ++ * This method is called when the mouse is pressed on a JComponent ++ * registered with the ToolTipManager. When the mouse is pressed, the ++ * tooltip (if it is shown) must be hidden immediately. ++ * ++ * @param event The MouseEvent. ++ */ ++ public void mousePressed(MouseEvent event) ++ { ++ currentPoint = event.getPoint(); ++ if (enterTimer.isRunning()) ++ enterTimer.restart(); ++ else if (insideTimer.isRunning()) ++ { ++ insideTimer.stop(); ++ hideTip(); ++ } ++ currentComponent.invalidate(); ++ currentComponent.validate(); ++ currentComponent.repaint(); ++ } ++ ++ /** ++ * This method is called when the mouse is dragged in a JComponent ++ * registered with the ToolTipManager. ++ * ++ * @param event The MouseEvent. ++ */ ++ public void mouseDragged(MouseEvent event) ++ { ++ currentPoint = event.getPoint(); ++ if (enterTimer.isRunning()) ++ enterTimer.restart(); ++ } ++ ++ /** ++ * This method is called when the mouse is moved in a JComponent registered ++ * with the ToolTipManager. ++ * ++ * @param event The MouseEvent. ++ */ ++ public void mouseMoved(MouseEvent event) ++ { ++ currentPoint = event.getPoint(); ++ if (currentTip != null) ++ currentTip.setTipText(((JComponent) currentComponent).getToolTipText(event)); ++ if (enterTimer.isRunning()) ++ enterTimer.restart(); ++ } ++ ++ /** ++ * This method displays the ToolTip. It can figure out the method needed to ++ * show it as well (whether to display it in heavyweight/lightweight panel ++ * or a window.) ++ */ ++ private void showTip() ++ { ++ if (! enabled) ++ return; ++ ++ if (currentTip == null ++ || currentTip.getComponent() != currentComponent ++ && currentComponent instanceof JComponent) ++ currentTip = ((JComponent) currentComponent).createToolTip(); ++ Point p = currentPoint; ++ Dimension dims = currentTip.getPreferredSize(); ++ if (canToolTipFit(currentTip)) ++ { ++ JLayeredPane pane = ((JRootPane) SwingUtilities.getAncestorOfClass(JRootPane.class, ++ currentComponent)) ++ .getLayeredPane(); ++ ++ // This should never happen, but just in case. ++ if (pane == null) ++ return; ++ ++ if (containerPanel != null) ++ hideTip(); ++ if (isLightWeightPopupEnabled()) ++ { ++ containerPanel = new Panel(); ++ JRootPane root = new JRootPane(); ++ root.getContentPane().add(currentTip); ++ containerPanel.add(root); ++ } ++ else ++ { ++ containerPanel = new JPanel(); ++ containerPanel.add(currentTip); ++ } ++ LayoutManager lm = containerPanel.getLayout(); ++ if (lm instanceof FlowLayout) ++ { ++ FlowLayout fm = (FlowLayout) lm; ++ fm.setVgap(0); ++ fm.setHgap(0); ++ } ++ ++ p = getGoodPoint(p, pane, currentTip, dims); ++ ++ pane.add(containerPanel); ++ containerPanel.setBounds(p.x, p.y, dims.width, dims.height); ++ currentTip.setBounds(0, 0, dims.width, dims.height); ++ ++ pane.revalidate(); ++ pane.repaint(); ++ } ++ else ++ { ++ SwingUtilities.convertPointToScreen(p, currentComponent); ++ tooltipWindow = new JWindow(); ++ tooltipWindow.getContentPane().add(currentTip); ++ tooltipWindow.setFocusable(false); ++ tooltipWindow.pack(); ++ tooltipWindow.setBounds(p.x, p.y, dims.width, dims.height); ++ tooltipWindow.show(); ++ } ++ currentTip.setVisible(true); ++ } ++ ++ /** ++ * This method hides the ToolTip. ++ */ ++ private void hideTip() ++ { ++ if (currentTip == null || ! currentTip.isVisible() || ! enabled) ++ return; ++ currentTip.setVisible(false); ++ if (containerPanel != null) ++ { ++ Container parent = containerPanel.getParent(); ++ if (parent == null) ++ return; ++ parent.remove(containerPanel); ++ parent.invalidate(); ++ parent.validate(); ++ parent.repaint(); ++ ++ parent = currentTip.getParent(); ++ if (parent == null) ++ return; ++ parent.remove(currentTip); ++ ++ containerPanel = null; ++ } ++ if (tooltipWindow != null) ++ { ++ tooltipWindow.hide(); ++ tooltipWindow.dispose(); ++ tooltipWindow = null; ++ } ++ } ++ ++ /** ++ * This method returns a point in the LayeredPane where the ToolTip can be ++ * shown. The point returned (if the ToolTip is to be displayed at the ++ * preferred dimensions) will always place the ToolTip inside the ++ * currentComponent if possible. ++ * ++ * @param p The last known good point for the mouse. ++ * @param c The JLayeredPane in the first RootPaneContainer up from the ++ * currentComponent. ++ * @param tip The ToolTip to display. ++ * @param dims The ToolTip preferred dimensions (can be null). ++ * ++ * @return A good point to place the ToolTip. ++ */ ++ private Point getGoodPoint(Point p, JLayeredPane c, JToolTip tip, ++ Dimension dims) ++ { ++ if (dims == null) ++ dims = tip.getPreferredSize(); ++ Rectangle bounds = currentComponent.getBounds(); ++ if (p.x + dims.width > bounds.width) ++ p.x = bounds.width - dims.width; ++ if (p.y + dims.height > bounds.height) ++ p.y = bounds.height - dims.height; ++ ++ p = SwingUtilities.convertPoint(currentComponent, p, c); ++ return p; ++ } ++ ++ /** ++ * This method returns the deepest component in the content pane for the ++ * first RootPaneContainer up from the currentComponent. This method is ++ * used in conjunction with one of the mouseXXX methods. ++ * ++ * @param e The MouseEvent. ++ * ++ * @return The deepest component in the content pane. ++ */ ++ private Component getContentPaneDeepestComponent(MouseEvent e) ++ { ++ Component source = (Component) e.getSource(); ++ Container parent = (Container) SwingUtilities.getAncestorOfClass(JRootPane.class, ++ currentComponent); ++ if (parent == null) ++ return null; ++ parent = ((JRootPane) parent).getContentPane(); ++ Point p = e.getPoint(); ++ p = SwingUtilities.convertPoint(source, p, parent); ++ Component target = SwingUtilities.getDeepestComponentAt(parent, p.x, p.y); ++ return target; ++ } ++ ++ /** ++ * This method returns whether the ToolTip can fit in the first ++ * RootPaneContainer up from the currentComponent. ++ * ++ * @param tip The ToolTip. ++ * ++ * @return Whether the ToolTip can fit. ++ */ ++ private boolean canToolTipFit(JToolTip tip) ++ { ++ JRootPane root = (JRootPane) SwingUtilities.getAncestorOfClass(JRootPane.class, ++ currentComponent); ++ if (root == null) ++ return false; ++ Dimension pref = tip.getPreferredSize(); ++ Dimension rootSize = root.getSize(); ++ if (rootSize.width > pref.width && rootSize.height > pref.height) ++ return true; ++ return false; ++ } ++} +Index: javax/swing/TransferHandler.java +=================================================================== +RCS file: javax/swing/TransferHandler.java +diff -N javax/swing/TransferHandler.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/TransferHandler.java 6 Sep 2004 16:36:01 -0000 +@@ -0,0 +1,55 @@ ++/* TransferHandler.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing; ++ ++import java.io.Serializable; ++ ++public class TransferHandler implements Serializable ++{ ++ private static final long serialVersionUID = -7908749299918704233L; ++ ++ public static final int NONE = 0; ++ public static final int COPY = 1; ++ public static final int MOVE = 2; ++ public static final int COPY_OR_MOVE = 3; ++ ++ protected TransferHandler() ++ { ++ // Do nothing here. ++ } ++} +Index: javax/swing/UIDefaults.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/UIDefaults.java,v +retrieving revision 1.6 +diff -u -r1.6 UIDefaults.java +--- javax/swing/UIDefaults.java 27 Nov 2003 09:04:01 -0000 1.6 ++++ javax/swing/UIDefaults.java 6 Sep 2004 16:36:01 -0000 +@@ -1,5 +1,5 @@ + /* UIDefaults.java -- database for all settings and interface bindings. +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -43,39 +43,36 @@ + import java.awt.Insets; + import java.beans.PropertyChangeEvent; + import java.beans.PropertyChangeListener; ++import java.beans.PropertyChangeSupport; + import java.lang.reflect.Method; +-import java.lang.reflect.Constructor; + import java.util.Hashtable; +-import java.util.Iterator; +-import java.util.List; +-import java.util.ListIterator; + import java.util.LinkedList; ++import java.util.ListIterator; + import java.util.Locale; +-import java.util.Set; +-import java.util.HashSet; + import java.util.MissingResourceException; + import java.util.ResourceBundle; ++import java.util.Set; ++ + import javax.swing.border.Border; + import javax.swing.plaf.ComponentUI; + + /** + * UIDefaults is a database where all settings and interface bindings are + * stored into. An PLAF implementation fills one of these (see for example +- * plaf/basic/BasicDefaults.java) with "JButton" -> new BasicButtonUI(). ++ * plaf/basic/BasicLookAndFeel.java) with "ButtonUI" -> new BasicButtonUI(). + * + * @author Ronald Veldema (rveldema@cs.vu.nl) + */ + public class UIDefaults extends Hashtable + { ++ private LinkedList bundles; ++ private Locale defaultLocale; ++ private PropertyChangeSupport propertyChangeSupport; + +- LinkedList bundles; +- Set listeners; +- Locale defaultLocale; +- +- interface ActiveValue ++ public interface ActiveValue + { + Object createValue(UIDefaults table); +- } // interface ActiveValue ++ } + + public static class LazyInputMap implements LazyValue + { +@@ -94,12 +91,12 @@ + } + return im; + } +- } // class LazyInputMap ++ } + +- interface LazyValue ++ public interface LazyValue + { + Object createValue(UIDefaults table); +- } // interface LazyValue ++ } + + public static class ProxyLazyValue implements LazyValue + { +@@ -210,28 +207,24 @@ + { + return inner.createValue (table); + } +- } // class ProxyLazyValue ++ } + + private static final long serialVersionUID = 7341222528856548117L; + + public UIDefaults() + { + bundles = new LinkedList (); +- listeners = new HashSet (); + defaultLocale = Locale.getDefault (); ++ propertyChangeSupport = new PropertyChangeSupport(this); + } + + public UIDefaults(Object[] entries) + { +- bundles = new LinkedList (); +- listeners = new HashSet (); +- defaultLocale = Locale.getDefault (); ++ this(); + + for (int i = 0; (2*i+1) < entries.length; ++i) +- { + put (entries[2*i], entries[2*i+1]); + } +- } + + public Object get(Object key) + { +@@ -369,13 +362,13 @@ + return o instanceof String ? (String) o : null; + } + +- int getInt(Object key) ++ public int getInt(Object key) + { + Object o = get(key); + return o instanceof Integer ? ((Integer) o).intValue() : 0; + } + +- int getInt(Object key, Locale l) ++ public int getInt(Object key, Locale l) + { + Object o = get(key, l); + return o instanceof Integer ? ((Integer) o).intValue() : 0; +@@ -473,7 +466,6 @@ + getUIError ("InvocationTargetException ("+ ite.getTargetException() + +") calling createUI(...) on " + cls.toString ()); + return null; +- + } + catch (Exception e) + { +@@ -482,43 +474,38 @@ + } + } + +- void addPropertyChangeListener(PropertyChangeListener listener) ++ public void addPropertyChangeListener(PropertyChangeListener listener) + { +- listeners.add (listener); ++ propertyChangeSupport.addPropertyChangeListener(listener); + } + + void removePropertyChangeListener(PropertyChangeListener listener) + { +- listeners.remove (listener); ++ propertyChangeSupport.removePropertyChangeListener(listener); + } + + public PropertyChangeListener[] getPropertyChangeListeners() + { +- return (PropertyChangeListener[]) listeners.toArray (); ++ return propertyChangeSupport.getPropertyChangeListeners(); + } + +- protected void firePropertyChange(String property, Object o, Object n) ++ protected void firePropertyChange(String property, ++ Object oldValue, Object newValue) + { +- Iterator i = listeners.iterator (); +- PropertyChangeEvent pce = new PropertyChangeEvent (this, property, o, n); +- while (i.hasNext ()) +- { +- PropertyChangeListener pcl = (PropertyChangeListener) i.next (); +- pcl.propertyChange (pce); +- } ++ propertyChangeSupport.firePropertyChange(property, oldValue, newValue); + } + +- void addResourceBundle(String name) ++ public void addResourceBundle(String name) + { + bundles.addFirst (name); + } + +- void removeResourceBundle(String name) ++ public void removeResourceBundle(String name) + { + bundles.remove (name); + } + +- void setDefaultLocale(Locale loc) ++ public void setDefaultLocale(Locale loc) + { + defaultLocale = loc; + } +@@ -527,4 +514,4 @@ + { + return defaultLocale; + } +-} // class UIDefaults ++} +Index: javax/swing/UIManager.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/UIManager.java,v +retrieving revision 1.6 +diff -u -r1.6 UIManager.java +--- javax/swing/UIManager.java 27 Nov 2003 08:53:42 -0000 1.6 ++++ javax/swing/UIManager.java 6 Sep 2004 16:36:01 -0000 +@@ -1,5 +1,5 @@ + /* UIManager.java -- +- Copyright (C) 2002, 2003 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -54,15 +54,22 @@ + { + String name, clazz; + +- LookAndFeelInfo(String name, +- String clazz) ++ public LookAndFeelInfo(String name, ++ String clazz) + { + this.name = name; + this.clazz = clazz; + } + +- String getName() { return name; } +- String getClassName() { return clazz; } ++ public String getName() ++ { ++ return name; ++ } ++ ++ public String getClassName() ++ { ++ return clazz; ++ } + } + + private static final long serialVersionUID = -5547433830339189365L; +@@ -80,18 +87,31 @@ + // Do nothing here. + } + ++ /** ++ * Add a PropertyChangeListener to the listener list. ++ * ++ * @param listener the listener to add ++ */ + public static void addPropertyChangeListener (PropertyChangeListener listener) + { + // FIXME + } + ++ /** ++ * Remove a PropertyChangeListener from the listener list. ++ * ++ * @param listener the listener to remove ++ */ + public static void removePropertyChangeListener (PropertyChangeListener listener) +- // Remove a PropertyChangeListener from the listener list. + { + // FIXME + } + + /** ++ * Returns an array of all added PropertyChangeListener objects. ++ * ++ * @return an array of listeners ++ * + * @since 1.4 + */ + public static PropertyChangeListener[] getPropertyChangeListeners () +@@ -100,9 +120,11 @@ + throw new Error ("Not implemented"); + } + ++ /** ++ * Add a LookAndFeel to the list of auxiliary look and feels. ++ */ + public static void addAuxiliaryLookAndFeel (LookAndFeel l) + { +- // Add a LookAndFeel to the list of auxiliary look and feels. + if (aux_installed == null) + { + aux_installed = new LookAndFeel[1]; +@@ -178,8 +200,7 @@ + */ + public static Dimension getDimension(Object key) + { +- System.out.println("UIManager.getDim"); +- return new Dimension(200,100); ++ return (Dimension) getLookAndFeel().getDefaults().get(key); + } + + /** +@@ -188,21 +209,25 @@ + * + * @param key an Object that specifies the font. Typically, + * this is a String such as +- * "TitledBorder.font". ++ * TitledBorder.font. + */ + public static Font getFont(Object key) + { + return (Font) getLookAndFeel().getDefaults().get(key); + } + ++ /** ++ * Returns an Icon from the defaults table. ++ */ + public static Icon getIcon(Object key) +- // Returns an Icon from the defaults table. + { + return (Icon) getLookAndFeel().getDefaults().get(key); + } + ++ /** ++ * Returns an Insets object from the defaults table. ++ */ + public static Insets getInsets(Object key) +- // Returns an Insets object from the defaults table. + { + return (Insets) getLookAndFeel().getDefaults().getInsets(key); + } +@@ -234,49 +259,71 @@ + return getLookAndFeel().getDefaults(); + } + ++ /** ++ * Returns a string from the defaults table. ++ */ + public static String getString(Object key) +- // Returns a string from the defaults table. + { + return (String) getLookAndFeel().getDefaults().get(key); + } + ++ /** ++ * Returns the name of the LookAndFeel class that implements the ++ * native systems look and feel if there is one, otherwise the name ++ * of the default cross platform LookAndFeel class. ++ */ + public static String getSystemLookAndFeelClassName() +- // Returns the name of the LookAndFeel class that implements the native systems look and feel if there is one, otherwise the name of the default cross platform LookAndFeel class. + { + return getCrossPlatformLookAndFeelClassName(); + } + ++ /** ++ * Returns the Look and Feel object that renders the target component. ++ */ + public static ComponentUI getUI(JComponent target) +- // Returns the L&F object that renders the target component. + { +- ComponentUI ui = getDefaults().getUI(target); +- //System.out.println("GET-UI-> " + ui + ", for " + target); +- return ui; ++ return getDefaults().getUI(target); + } + ++ /** ++ * Creates a new look and feel and adds it to the current array. ++ */ + public static void installLookAndFeel(String name, String className) +- // Creates a new look and feel and adds it to the current array. + { + } + ++ /** ++ * Adds the specified look and feel to the current array and then calls ++ * setInstalledLookAndFeels(javax.swing.UIManager.LookAndFeelInfo[]). ++ */ + public static void installLookAndFeel(LookAndFeelInfo info) +- // Adds the specified look and feel to the current array and then calls setInstalledLookAndFeels(javax.swing.UIManager.LookAndFeelInfo[]). + { + } + ++ /** ++ * Stores an object in the defaults table. ++ */ + public static Object put(Object key, Object value) +- // Stores an object in the defaults table. + { + return getLookAndFeel().getDefaults().put(key,value); + } + ++ /** ++ * Replaces the current array of installed LookAndFeelInfos. ++ */ + public static void setInstalledLookAndFeels(UIManager.LookAndFeelInfo[] infos) +- // Replaces the current array of installed LookAndFeelInfos. + { + } + ++ /** ++ * Set the current default look. ++ */ + public static void setLookAndFeel(LookAndFeel newLookAndFeel) ++ throws UnsupportedLookAndFeelException + { ++ if (! newLookAndFeel.isSupportedLookAndFeel()) ++ throw new UnsupportedLookAndFeelException(newLookAndFeel.getName()); ++ + if (look_and_feel != null) + look_and_feel.uninitialize(); + +@@ -288,11 +335,13 @@ + //repaint(); + } + ++ /** ++ * Set the current default look and feel using a class name. ++ */ + public static void setLookAndFeel (String className) + throws ClassNotFoundException, InstantiationException, IllegalAccessException, + UnsupportedLookAndFeelException + { +- // Set the current default look and feel using a class name. + Class c = Class.forName(className); + LookAndFeel a = (LookAndFeel) c.newInstance(); // throws class-cast-exception + setLookAndFeel(a); +Index: javax/swing/ViewportLayout.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/ViewportLayout.java,v +retrieving revision 1.3 +diff -u -r1.3 ViewportLayout.java +--- javax/swing/ViewportLayout.java 10 Jan 2004 21:07:43 -0000 1.3 ++++ javax/swing/ViewportLayout.java 6 Sep 2004 16:36:01 -0000 +@@ -41,75 +41,118 @@ + import java.awt.Container; + import java.awt.Dimension; + import java.awt.LayoutManager; ++import java.awt.Point; ++import java.awt.Rectangle; + import java.io.Serializable; + + /** + * ViewportLayout + * @author Andrew Selkirk +- * @version 1.0 ++ * @author Graydon Hoare + */ + public class ViewportLayout implements LayoutManager, Serializable + { + static final long serialVersionUID = -788225906076097229L; + +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor ViewportLayout +- */ +- public ViewportLayout() { +- // TODO +- } // ViewportLayout() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * addLayoutComponent +- * @param name TODO +- * @param c TODO +- */ +- public void addLayoutComponent(String name, Component c) { +- // TODO +- } // addLayoutComponent() +- +- /** +- * removeLayoutComponent +- * @param c TODO +- */ +- public void removeLayoutComponent(Component c) { +- // TODO +- } // removeLayoutComponent() +- +- /** +- * preferredLayoutSize +- * @param parent TODO +- * @returns Dimension +- */ +- public Dimension preferredLayoutSize(Container parent) { +- return null; // TODO +- } // preferredLayoutSize() +- +- /** +- * minimumLayoutSize +- * @param parent TODO +- * @returns Dimension +- */ +- public Dimension minimumLayoutSize(Container parent) { +- return null; // TODO +- } // minimumLayoutSize() +- +- /** +- * layoutContainer +- * @param parent TODO +- */ +- public void layoutContainer(Container parent) { +- // TODO +- } // layoutContainer() +- +- +-} // ViewportLayout ++ public ViewportLayout() ++ { ++ } ++ public void addLayoutComponent(String name, Component c) ++ { ++ } ++ public void removeLayoutComponent(Component c) ++ { ++ } ++ public Dimension preferredLayoutSize(Container parent) ++ { ++ JViewport vp = (JViewport)parent; ++ Component view = vp.getView(); ++ return view.getPreferredSize(); ++ } ++ public Dimension minimumLayoutSize(Container parent) ++ { ++ JViewport vp = (JViewport)parent; ++ Component view = vp.getView(); ++ return view.getMinimumSize(); ++ } ++ ++ /** ++ * Layout the view and viewport to respect the following rules. These are ++ * not precisely the rules described in sun's javadocs, but they are the ++ * rules which sun's swing implementation follows, if you watch its ++ * behavior: ++ * ++ *
      ++ * ++ *
    1. If the port is larger than the view's minimum size, put the port ++ * at view position (0,0) and make the view's size equal to ++ * the port's.
    2. ++ * ++ *
    3. If the port is smaller than the view, leave the view at its ++ * minimum size. also, do not move the port, unless the port ++ * extends into space past the edge of the view. If so, move the ++ * port up or to the left, in view space, by the amount of empty space ++ * (keep the lower and right edges lined up)
    4. ++ * ++ *
    ++ * ++ * @see JViewport#getViewSize ++ * @see JViewport#setViewSize ++ * @see JViewport#getViewPosition ++ * @see JViewport#setViewPosition ++ */ ++ ++ public void layoutContainer(Container parent) ++ { ++ // The way to interpret this function is basically to ignore the names ++ // of methods it calls, and focus on the variable names here. getViewRect ++ // doesn't, for example, return the view; it returns the port bounds in ++ // view space. Likwise setViewPosition doesn't reposition the view; it ++ // positions the port, in view coordinates. ++ ++ JViewport port = (JViewport) parent; ++ Component view = port.getView(); ++ ++ // These dimensions and positions are in *view space*. Do not mix ++ // variables in here from port space (eg. parent.getBounds()). This ++ // function should be entirely in view space, because the methods on ++ // the viewport require inputs in view space. ++ ++ Rectangle portBounds = port.getViewRect(); ++ Dimension viewPref = view.getPreferredSize(); ++ Dimension viewMinimum = view.getMinimumSize(); ++ Point portLowerRight = new Point(portBounds.x + portBounds.width, ++ portBounds.y + portBounds.height); ++ ++ // vertical implementation of the above rules ++ if (portBounds.height >= viewMinimum.height) ++ { ++ portBounds.y = 0; ++ viewPref.height = portBounds.height; ++ } ++ else ++ { ++ viewPref.height = viewMinimum.height; ++ int overextension = portLowerRight.y - viewPref.height; ++ if (overextension > 0) ++ portBounds.y -= overextension; ++ } ++ ++ // horizontal implementation of the above rules ++ if (portBounds.width >= viewMinimum.width) ++ { ++ portBounds.x = 0; ++ viewPref.width = portBounds.width; ++ } ++ else ++ { ++ viewPref.width = viewMinimum.width; ++ int overextension = portLowerRight.x - viewPref.width; ++ if (overextension > 0) ++ portBounds.x -= overextension; ++ } ++ ++ port.setViewPosition(portBounds.getLocation()); ++ port.setViewSize(viewPref); ++ } ++} +Index: javax/swing/border/TitledBorder.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/border/TitledBorder.java,v +retrieving revision 1.4 +diff -u -r1.4 TitledBorder.java +--- javax/swing/border/TitledBorder.java 19 Jun 2003 10:48:45 -0000 1.4 ++++ javax/swing/border/TitledBorder.java 6 Sep 2004 16:36:01 -0000 +@@ -1,5 +1,5 @@ + /* TitledBorder.java -- +- Copyright (C) 2003 Free Software Foundation, Inc. ++ Copyright (C) 2003, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -45,8 +45,8 @@ + import java.awt.FontMetrics; + import java.awt.Graphics; + import java.awt.Insets; +-import java.awt.Rectangle; + import java.awt.Shape; ++ + import javax.swing.UIManager; + + +@@ -252,7 +252,7 @@ + * The border underneath the title. If this value is + * null, the border will be retrieved from the {@link + * javax.swing.UIManager}’s defaults table using the key +- * "TitledBorder.border". ++ * TitledBorder.border. + */ + protected Border border; + +@@ -279,7 +279,7 @@ + * The font for displaying the title text. If this value is + * null, the font will be retrieved from the {@link + * javax.swing.UIManager}’s defaults table using the key +- * "TitledBorder.font". ++ * TitledBorder.font. + */ + protected Font titleFont; + +@@ -288,7 +288,7 @@ + * The color for displaying the title text. If this value is + * null, the color will be retrieved from the {@link + * javax.swing.UIManager}’s defaults table using the key +- * "TitledBorder.titleColor". ++ * TitledBorder.titleColor. + */ + protected Color titleColor; + +@@ -717,11 +717,11 @@ + * Retrieves the border underneath the title. If no border has been + * set, or if it has been set tonull, the current + * {@link javax.swing.LookAndFeel} will be asked for a border +- * using the key "TitledBorder.border". ++ * using the key TitledBorder.border. + * + * @return a border, or null if the current LookAndFeel + * does not provide a border for the key +- * "TitledBorder.border". ++ * TitledBorder.border. + * + * @see javax.swing.UIManager#getBorder(Object) + */ +@@ -766,11 +766,11 @@ + * Retrieves the font for displaying the title text. If no font has + * been set, or if it has been set tonull, the current + * {@link javax.swing.LookAndFeel} will be asked for a font +- * using the key "TitledBorder.font". ++ * using the key TitledBorder.font. + * + * @return a font, or null if the current LookAndFeel + * does not provide a font for the key +- * "TitledBorder.font". ++ * TitledBorder.font. + * + * @see javax.swing.UIManager#getFont(Object) + */ +@@ -787,11 +787,11 @@ + * Retrieves the color for displaying the title text. If no color has + * been set, or if it has been set tonull, the current + * {@link javax.swing.LookAndFeel} will be asked for a color +- * using the key "TitledBorder.titleColor". ++ * using the key TitledBorder.titleColor. + * + * @return a color, or null if the current LookAndFeel + * does not provide a color for the key +- * "TitledBorder.titleColor". ++ * TitledBorder.titleColor. + * + * @see javax.swing.UIManager#getColor(Object) + */ +@@ -1088,7 +1088,7 @@ + + + /** +- * The border that constitues the "interior" border ++ * The border that constitues the interior border + * underneath the title text. + */ + Border border; +Index: javax/swing/colorchooser/AbstractColorChooserPanel.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/colorchooser/AbstractColorChooserPanel.java,v +retrieving revision 1.2 +diff -u -r1.2 AbstractColorChooserPanel.java +--- javax/swing/colorchooser/AbstractColorChooserPanel.java 11 Jun 2003 13:20:40 -0000 1.2 ++++ javax/swing/colorchooser/AbstractColorChooserPanel.java 6 Sep 2004 16:36:02 -0000 +@@ -35,7 +35,6 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing.colorchooser; + + import java.awt.Color; +@@ -44,106 +43,119 @@ + import javax.swing.JColorChooser; + import javax.swing.JPanel; + ++ + /** + * AbstractColorChooserPanel +- * @author Andrew Selkirk +- * @version 1.0 ++ * ++ * @author Andrew Selkirk ++ * @version 1.0 + */ +-public abstract class AbstractColorChooserPanel extends JPanel { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * chooser +- */ +- private JColorChooser chooser; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor AbstractColorChooserPanel +- */ +- public AbstractColorChooserPanel() { +- // TODO +- } // AbstractColorChooserPanel() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * getDisplayName +- * @returns String +- */ +- public abstract String getDisplayName(); +- +- /** +- * updateChooser +- */ +- public abstract void updateChooser(); +- +- /** +- * buildChooser +- */ +- protected abstract void buildChooser(); +- +- /** +- * getSmallDisplayIcon +- * @returns Icon +- */ +- public abstract Icon getSmallDisplayIcon(); +- +- /** +- * getLargeDisplayIcon +- * @returns Icon +- */ +- public abstract Icon getLargeDisplayIcon(); +- +- /** +- * installChooserPanel +- * @param chooser TODO +- */ +- public void installChooserPanel(JColorChooser chooser) { +- // TODO +- } // installChooserPanel() +- +- /** +- * uninstallChooserPanel +- * @param chooser TODO +- */ +- public void uninstallChooserPanel(JColorChooser chooser) { +- // TODO +- } // uninstallChooserPanel() +- +- /** +- * getColorSelectionModel +- * @returns ColorSelectionModel +- */ +- public ColorSelectionModel getColorSelectionModel() { +- return null; // TODO +- } // getColorSelectionModel() +- +- /** +- * getColorFromModel +- * @returns Color +- */ +- protected Color getColorFromModel() { +- return null; // TODO +- } // getColorFromModel() +- +- /** +- * paint +- * @param graphics TODO +- */ +- public void paint(Graphics graphics) { +- // TODO +- } // paint() +- +- ++public abstract class AbstractColorChooserPanel extends JPanel ++{ ++ /** DOCUMENT ME! */ ++ private static final long serialVersionUID = -977469671210173863L; ++ ++ /** The chooser associated with this panel. */ ++ private JColorChooser chooser; ++ ++ /** ++ * This is the constructor for the AbstractColorChooserPanel. ++ */ ++ public AbstractColorChooserPanel() ++ { ++ } // AbstractColorChooserPanel() ++ ++ /** ++ * This method returns the name displayed in the tab for this chooser panel. ++ * ++ * @return The name displayed in the JTabbedPane's tabs. ++ */ ++ public abstract String getDisplayName(); ++ ++ /** ++ * This method updates the chooser panel when the JColorChooser's color has ++ * changed. ++ */ ++ public abstract void updateChooser(); ++ ++ /** ++ * This method constructs and does any initialization necessary for the ++ * chooser panel. ++ */ ++ protected abstract void buildChooser(); ++ ++ /** ++ * This method sets the small icon used in the JTabbedPane for this chooser ++ * panel. ++ * ++ * @return The small icon used in the JTabbedPane. ++ */ ++ public abstract Icon getSmallDisplayIcon(); ++ ++ /** ++ * This method sets the large icon useed in the jTabbedPane for this chooser ++ * panel. ++ * ++ * @return The large icon. ++ */ ++ public abstract Icon getLargeDisplayIcon(); ++ ++ /** ++ * This method installs the chooser panel for the given JColorChooser. ++ * ++ * @param chooser The JColorChooser that will have this panel installed. ++ */ ++ public void installChooserPanel(JColorChooser chooser) ++ { ++ this.chooser = chooser; ++ buildChooser(); ++ } // installChooserPanel() ++ ++ /** ++ * This method removes the chooser panel from the given JColorChooser and ++ * does any necessary clean up for the chooser panel. ++ * ++ * @param chooser The JColorChooser that is having this panel removed. ++ */ ++ public void uninstallChooserPanel(JColorChooser chooser) ++ { ++ this.chooser = null; ++ } // uninstallChooserPanel() ++ ++ /** ++ * This method returns the ColorSelectionModel for the JColorChooser ++ * associated with this chooser panel. ++ * ++ * @return The ColorSelectionModel for the JColorChooser associated with ++ * this chooser panel. ++ */ ++ public ColorSelectionModel getColorSelectionModel() ++ { ++ if (chooser != null) ++ return chooser.getSelectionModel(); ++ return null; ++ } // getColorSelectionModel() ++ ++ /** ++ * This method returns the current color stored in the model for this ++ * chooser panel. ++ * ++ * @return The current color. ++ */ ++ protected Color getColorFromModel() ++ { ++ if (chooser != null) ++ return chooser.getColor(); ++ return null; ++ } // getColorFromModel() ++ ++ /** ++ * This method paints the chooser panel. ++ * ++ * @param graphics The Graphics object to paint with. ++ */ ++ public void paint(Graphics graphics) ++ { ++ super.paint(graphics); ++ } // paint() + } // AbstractColorChooserPanel +Index: javax/swing/colorchooser/ColorChooserComponentFactory.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/colorchooser/ColorChooserComponentFactory.java,v +retrieving revision 1.2 +diff -u -r1.2 ColorChooserComponentFactory.java +--- javax/swing/colorchooser/ColorChooserComponentFactory.java 11 Jun 2003 13:20:40 -0000 1.2 ++++ javax/swing/colorchooser/ColorChooserComponentFactory.java 6 Sep 2004 16:36:02 -0000 +@@ -35,49 +35,51 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing.colorchooser; + + import javax.swing.JComponent; + ++ + /** + * ColorChooserComponentFactory +- * @author Andrew Selkirk +- * @version 1.0 ++ * ++ * @author Andrew Selkirk ++ * @version 1.0 + */ +-public class ColorChooserComponentFactory { +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor ColorChooserComponentFactory +- */ +- private ColorChooserComponentFactory() { +- // TODO +- } // ColorChooserComponentFactory() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * getDefaultChooserPanels +- * @returns AbstractColorChooserPanel[] +- */ +- public static AbstractColorChooserPanel[] getDefaultChooserPanels() { +- return null; // TODO +- } // getDefaultChooserPanels() +- +- /** +- * getPreviewPanel +- * @returns JComponent +- */ +- public static JComponent getPreviewPanel() { +- return null; // TODO +- } // getPreviewPanel() +- +- ++public class ColorChooserComponentFactory ++{ ++ /** ++ * Constructor ColorChooserComponentFactory ++ */ ++ private ColorChooserComponentFactory() ++ { ++ } // ColorChooserComponentFactory() ++ ++ /** ++ * This method returns the three default chooser panels to be used in ++ * JColorChooser. ++ * ++ * @return The default chooser panels. ++ */ ++ public static AbstractColorChooserPanel[] getDefaultChooserPanels() ++ { ++ AbstractColorChooserPanel[] values = ++ { ++ new DefaultSwatchChooserPanel(), ++ new DefaultHSBChooserPanel(), ++ new DefaultRGBChooserPanel() ++ }; ++ return values; ++ } ++ ++ /** ++ * This method returns the default preview panel to be used with ++ * JColorChoosers. ++ * ++ * @return The default preview panel. ++ */ ++ public static JComponent getPreviewPanel() ++ { ++ return new DefaultPreviewPanel(); ++ } // getPreviewPanel() + } // ColorChooserComponentFactory +Index: javax/swing/colorchooser/DefaultColorSelectionModel.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/colorchooser/DefaultColorSelectionModel.java,v +retrieving revision 1.4 +diff -u -r1.4 DefaultColorSelectionModel.java +--- javax/swing/colorchooser/DefaultColorSelectionModel.java 14 Jul 2003 05:33:30 -0000 1.4 ++++ javax/swing/colorchooser/DefaultColorSelectionModel.java 6 Sep 2004 16:36:02 -0000 +@@ -35,7 +35,6 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing.colorchooser; + + import java.awt.Color; +@@ -44,43 +43,55 @@ + import javax.swing.event.ChangeListener; + import javax.swing.event.EventListenerList; + ++ + /** +- * DefaultColorSelectionModel +- * @author Andrew Selkirk +- * @version 1.0 ++ * This is the default implementation of the ColorSelectionModel interface ++ * that JColorChoosers use. ++ * ++ * @author Andrew Selkirk ++ * @version 1.0 + */ +-public class DefaultColorSelectionModel +- implements ColorSelectionModel, Serializable ++public class DefaultColorSelectionModel implements ColorSelectionModel, ++ Serializable + { ++ /** DOCUMENT ME! */ + private static final long serialVersionUID = -8117143602864778804L; + ++ /** The currently selected color. */ + private Color selectedColor; + +- protected transient ChangeEvent changeEvent = new ChangeEvent (this); +- protected EventListenerList listenerList = new EventListenerList (); ++ /** The ChangeEvent fired to all ChangeListeners. */ ++ protected transient ChangeEvent changeEvent = new ChangeEvent(this); ++ ++ /** The list of listeners. */ ++ protected EventListenerList listenerList = new EventListenerList(); + + /** +- * Creates a new color selection model. ++ * Creates a new color selection model with the default white color. + */ + public DefaultColorSelectionModel() + { +- this (Color.white); ++ this(Color.white); + } + + /** + * Creates a new color selection model with a given selected color. +- * +- * @param color The selected color. ++ * ++ * @param color The initial color. ++ * ++ * @throws Error If the color is null. + */ +- public DefaultColorSelectionModel (Color color) ++ public DefaultColorSelectionModel(Color color) + { + super(); ++ if (color == null) ++ throw new Error("ColorSelectionModel cannot be set to have null color."); + this.selectedColor = color; + } + + /** + * Returns the selected color. +- * ++ * + * @return The selected color. + */ + public Color getSelectedColor() +@@ -89,31 +100,41 @@ + } + + /** ++ * This method sets the color. ++ * + * @param color The color to set. ++ * ++ * @throws Error If the color is set. + */ +- public void setSelectedColor (Color color) ++ public void setSelectedColor(Color color) + { +- this.selectedColor = color; ++ if (color == null) ++ throw new Error("ColorSelectionModel cannot be set to have null color."); ++ if (color != selectedColor) ++ { ++ this.selectedColor = color; ++ fireStateChanged(); ++ } + } + + /** + * Adds a listener to this model. +- * ++ * + * @param listener The listener to add. + */ +- public void addChangeListener (ChangeListener listener) ++ public void addChangeListener(ChangeListener listener) + { +- listenerList.add (ChangeListener.class, listener); ++ listenerList.add(ChangeListener.class, listener); + } + + /** + * Removes a listener from this model. +- * ++ * + * @param listener The listener to remove. + */ +- public void removeChangeListener (ChangeListener listener) ++ public void removeChangeListener(ChangeListener listener) + { +- listenerList.remove (ChangeListener.class, listener); ++ listenerList.remove(ChangeListener.class, listener); + } + + /** +@@ -123,19 +144,19 @@ + */ + public ChangeListener[] getChangeListeners() + { +- return (ChangeListener[]) listenerList.getListeners (ChangeListener.class); ++ return (ChangeListener[]) listenerList.getListeners(ChangeListener.class); + } + + /** + * Calls all the stateChanged() method of all added +- * ChangeListener objects with changeEvent +- * as argument. ++ * ChangeListener objects with changeEvent as ++ * argument. + */ + protected void fireStateChanged() + { + ChangeListener[] listeners = getChangeListeners(); + + for (int i = 0; i < listeners.length; i++) +- listeners [i].stateChanged (changeEvent); ++ listeners[i].stateChanged(changeEvent); + } + } +Index: javax/swing/colorchooser/DefaultHSBChooserPanel.java +=================================================================== +RCS file: javax/swing/colorchooser/DefaultHSBChooserPanel.java +diff -N javax/swing/colorchooser/DefaultHSBChooserPanel.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/colorchooser/DefaultHSBChooserPanel.java 6 Sep 2004 16:36:02 -0000 +@@ -0,0 +1,860 @@ ++/* DefaultHSBChooserPanel.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.colorchooser; ++ ++import java.awt.BorderLayout; ++import java.awt.Color; ++import java.awt.Component; ++import java.awt.ComponentOrientation; ++import java.awt.Container; ++import java.awt.Dimension; ++import java.awt.Graphics; ++import java.awt.GridLayout; ++import java.awt.Image; ++import java.awt.LayoutManager; ++import java.awt.Point; ++import java.awt.event.MouseAdapter; ++import java.awt.event.MouseEvent; ++import java.awt.event.MouseMotionListener; ++import java.awt.image.MemoryImageSource; ++import javax.swing.AbstractButton; ++import javax.swing.ButtonGroup; ++import javax.swing.Icon; ++import javax.swing.JColorChooser; ++import javax.swing.JLabel; ++import javax.swing.JPanel; ++import javax.swing.JRadioButton; ++import javax.swing.JSlider; ++import javax.swing.JSpinner; ++import javax.swing.SpinnerNumberModel; ++import javax.swing.SwingConstants; ++import javax.swing.event.ChangeEvent; ++import javax.swing.event.ChangeListener; ++ ++ ++/** ++ * This is the Default HSB Panel displayed in the JColorChooser. ++ */ ++class DefaultHSBChooserPanel extends AbstractColorChooserPanel ++{ ++ /** The gradient image displayed. */ ++ private transient Image gradientImage; ++ ++ /** The Panel that holds the gradient image. */ ++ private transient JPanel gradientPanel; ++ ++ /** The track gradient image. */ ++ private transient Image trackImage; ++ ++ /** The panel that holds the track. */ ++ private transient JPanel trackPanel; ++ ++ /** The slider for the locked HSB value. */ ++ private transient JSlider slider; ++ ++ /** The RadioButton that controls the Hue. */ ++ private transient JRadioButton hRadio; ++ ++ /** The RadioButton that controls the Saturation. */ ++ private transient JRadioButton sRadio; ++ ++ /** The RadioButton that controls the Brightness. */ ++ private transient JRadioButton bRadio; ++ ++ /** The JSpinner that controls the Hue. */ ++ private transient JSpinner hSpinner; ++ ++ /** The JSpinner that controls the Saturation. */ ++ private transient JSpinner sSpinner; ++ ++ /** The JSpinner that controls the Brightness. */ ++ private transient JSpinner bSpinner; ++ ++ /** The default width of the gradient image. */ ++ private static final int imgWidth = 200; ++ ++ /** The default height of the gradient image. */ ++ private static final int imgHeight = 200; ++ ++ /** The default width of the track gradient. */ ++ private static final int trackWidth = 30; ++ ++ /** The JLabel for Red. */ ++ private static final JLabel R = new JLabel("R"); ++ ++ /** The JLabel for Green. */ ++ private static final JLabel G = new JLabel("G"); ++ ++ /** The JLabel for Blue. */ ++ private static final JLabel B = new JLabel("B"); ++ ++ // FIXME: Should be textfields. ++ ++ /** The JLabel that displays the value of Red. */ ++ private transient JLabel rFull; ++ ++ /** The JLabel that displays the value of Green. */ ++ private transient JLabel gFull; ++ ++ /** The JLabel that displays the value of Blue. */ ++ private transient JLabel bFull; ++ ++ /** The point that is displayed in the gradient image. */ ++ private transient Point gradientPoint = new Point(); ++ ++ /** ++ * This indicates that the change to the slider or point is triggered ++ * internally. ++ */ ++ private transient boolean internalChange = false; ++ ++ /** This indicates that the change to the spinner is triggered internally. */ ++ private transient boolean spinnerTrigger = false; ++ ++ /** This int identifies which spinner is currently locked. */ ++ private transient int locked = -1; ++ ++ /** This value indicates that the Hue spinner is locked. */ ++ static final int HLOCKED = 0; ++ ++ /** This value indicates that the Saturation spinner is locked. */ ++ static final int SLOCKED = 1; ++ ++ /** This value indicates that the Brightness spinner is locked. */ ++ static final int BLOCKED = 2; ++ ++ /** ++ * This method indicates that the mouse event is in the process of being ++ * handled. ++ */ ++ private transient boolean handlingMouse; ++ ++ /** ++ * This helper class handles mouse events on the gradient image. ++ */ ++ class MainGradientMouseListener extends MouseAdapter ++ implements MouseMotionListener ++ { ++ /** ++ * This method is called when the mouse is pressed over the gradient ++ * image. The JColorChooser is then updated with new HSB values. ++ * ++ * @param e The MouseEvent. ++ */ ++ public void mousePressed(MouseEvent e) ++ { ++ gradientPoint = e.getPoint(); ++ update(e.getPoint()); ++ } ++ ++ /** ++ * This method is called when the mouse is dragged over the gradient ++ * image. The JColorChooser is then updated with the new HSB values. ++ * ++ * @param e The MouseEvent. ++ */ ++ public void mouseDragged(MouseEvent e) ++ { ++ Point p = e.getPoint(); ++ if (p.x < 0 || p.y < 0 || p.y > imgHeight || p.x > imgWidth) ++ return; ++ ++ gradientPoint = p; ++ update(p); ++ } ++ ++ /** ++ * This method is called when the mouse is moved over the gradient image. ++ * ++ * @param e The MouseEvent. ++ */ ++ public void mouseMoved(MouseEvent e) ++ { ++ // Do nothing. ++ } ++ ++ /** ++ * This method updates the JColorChooser with the new values. ++ * ++ * @param p The Point where the MouseEvent occurred. ++ */ ++ private void update(Point p) ++ { ++ handlingMouse = true; ++ if (hSpinner.isEnabled()) ++ updateH(p); ++ else if (sSpinner.isEnabled()) ++ updateS(p); ++ else ++ updateB(p); ++ handlingMouse = false; ++ } ++ ++ /** ++ * This method updates the SB values if Hue is locked. ++ * ++ * @param p The point where the MouseEvent occurred. ++ */ ++ private void updateH(Point p) ++ { ++ float s = (imgWidth - p.x * 1f) / imgWidth; ++ float b = (imgHeight - p.y * 1f) / imgHeight; ++ ++ // Avoid two changes to the model by changing internalChange to true. ++ internalChange = true; ++ sSpinner.setValue(new Integer((int) (s * 100))); ++ internalChange = false; ++ bSpinner.setValue(new Integer((int) (b * 100))); ++ ++ revalidate(); ++ } ++ ++ /** ++ * This method updates the HB values if Saturation is locked. ++ * ++ * @param p The point where the MouseEvent occurred. ++ */ ++ private void updateS(Point p) ++ { ++ float h = p.x * 1f / imgWidth; ++ float b = (imgHeight - p.y * 1f) / imgHeight; ++ ++ internalChange = true; ++ hSpinner.setValue(new Integer((int) (h * 365))); ++ internalChange = false; ++ bSpinner.setValue(new Integer((int) (b * 100))); ++ ++ revalidate(); ++ } ++ ++ /** ++ * This method updates the HS values if Brightness is locked. ++ * ++ * @param p The point where the MouseEvent occurred. ++ */ ++ private void updateB(Point p) ++ { ++ float h = p.x * 1f / imgWidth; ++ float s = (imgHeight - p.y * 1f) / imgHeight; ++ ++ internalChange = true; ++ hSpinner.setValue(new Integer((int) (h * 365))); ++ internalChange = false; ++ sSpinner.setValue(new Integer((int) (s * 100))); ++ ++ revalidate(); ++ } ++ } ++ ++ /** ++ * This method listens for slider value changes. ++ */ ++ class SliderChangeListener implements ChangeListener ++ { ++ /** ++ * This method is called when the slider value changes. It should change ++ * the color of the JColorChooser. ++ * ++ * @param e The ChangeEvent. ++ */ ++ public void stateChanged(ChangeEvent e) ++ { ++ if (internalChange) ++ return; ++ ++ Integer value = new Integer(slider.getValue()); ++ ++ switch (locked) ++ { ++ case HLOCKED: ++ hSpinner.setValue(value); ++ break; ++ case SLOCKED: ++ sSpinner.setValue(value); ++ break; ++ case BLOCKED: ++ bSpinner.setValue(value); ++ break; ++ } ++ } ++ } ++ ++ /** ++ * This helper class determines the active JSpinner. ++ */ ++ class RadioStateListener implements ChangeListener ++ { ++ /** ++ * This method is called when there is a new JRadioButton that was ++ * selected. As a result, it should activate the associated JSpinner. ++ * ++ * @param e The ChangeEvent. ++ */ ++ public void stateChanged(ChangeEvent e) ++ { ++ JSpinner change; ++ if (e.getSource() == hRadio) ++ { ++ locked = HLOCKED; ++ change = hSpinner; ++ } ++ else if (e.getSource() == sRadio) ++ { ++ locked = SLOCKED; ++ change = sSpinner; ++ } ++ else ++ { ++ locked = BLOCKED; ++ change = bSpinner; ++ } ++ ++ change.setEnabled(((AbstractButton) e.getSource()).isSelected()); ++ updateSlider(); ++ updateTrack(); ++ updateImage(); ++ repaint(); ++ } ++ } ++ ++ /** ++ * This class listens to the JSpinners for changes. ++ */ ++ class ImageScrollListener implements ChangeListener ++ { ++ /** ++ * This method is called whenever one of the JSpinner values change. The ++ * JColorChooser should be updated with the new HSB values. ++ * ++ * @param e The ChangeEvent. ++ */ ++ public void stateChanged(ChangeEvent e) ++ { ++ if (internalChange) ++ return; ++ ++ float h = ((Number) hSpinner.getValue()).intValue() / 360f; ++ float s = ((Number) sSpinner.getValue()).intValue() / 100f; ++ float b = ((Number) bSpinner.getValue()).intValue() / 100f; ++ ++ spinnerTrigger = true; ++ getColorSelectionModel().setSelectedColor(new Color(Color.HSBtoRGB(h, s, ++ b))); ++ spinnerTrigger = false; ++ ++ if (! handlingMouse) ++ { ++ updateImage(); ++ updateTrack(); ++ } ++ repaint(); ++ } ++ } ++ ++ /** ++ * Creates a new DefaultHSBChooserPanel object. ++ */ ++ DefaultHSBChooserPanel() ++ { ++ super(); ++ } ++ ++ /** ++ * This method returns the name displayed by the JColorChooser tab that ++ * holds this panel. ++ * ++ * @return The name displayed in the JColorChooser tab. ++ */ ++ public String getDisplayName() ++ { ++ return "HSB"; ++ } ++ ++ /** ++ * This method updates the various components inside the HSBPanel (the ++ * JSpinners, the JSlider, and the gradient image point) with updated ++ * values when the JColorChooser color value changes. ++ */ ++ public void updateChooser() ++ { ++ Color c = getColorSelectionModel().getSelectedColor(); ++ ++ float[] hsbVals = Color.RGBtoHSB(c.getRed(), c.getGreen(), c.getBlue(), ++ null); ++ ++ internalChange = true; ++ ++ // spinnerTrigger, internalChange, and handlingMouse are used because of the ++ // we don't want things like: change spinner -> update chooser -> change spinner ++ // That's because the value from before and after the update can differ ++ // slightly because of the conversion. ++ // FIXME: Think of better way to deal with this. ++ if (! spinnerTrigger) ++ { ++ hSpinner.setValue(new Integer((int) (hsbVals[0] * 360))); ++ sSpinner.setValue(new Integer((int) (hsbVals[1] * 100))); ++ bSpinner.setValue(new Integer((int) (hsbVals[2] * 100))); ++ } ++ ++ switch (locked) ++ { ++ case HLOCKED: ++ if (slider != null) ++ slider.setValue(((Number) hSpinner.getValue()).intValue()); ++ if (! handlingMouse) ++ { ++ gradientPoint.x = (int) ((1 - hsbVals[1]) * imgWidth); ++ gradientPoint.y = (int) ((1 - hsbVals[2]) * imgHeight); ++ } ++ break; ++ case SLOCKED: ++ if (slider != null) ++ slider.setValue(((Number) sSpinner.getValue()).intValue()); ++ if (! handlingMouse) ++ { ++ gradientPoint.x = (int) (hsbVals[0] * imgWidth); ++ gradientPoint.y = (int) ((1 - hsbVals[2]) * imgHeight); ++ } ++ break; ++ case BLOCKED: ++ if (slider != null) ++ slider.setValue(((Number) bSpinner.getValue()).intValue()); ++ if (! handlingMouse) ++ { ++ gradientPoint.x = (int) (hsbVals[0] * imgWidth); ++ gradientPoint.y = (int) ((1 - hsbVals[1]) * imgHeight); ++ } ++ break; ++ } ++ internalChange = false; ++ ++ updateImage(); ++ updateTrack(); ++ updateTextFields(); ++ } ++ ++ /** ++ * This method builds the DefaultHSBChooserPanel. ++ */ ++ protected void buildChooser() ++ { ++ setLayout(new BorderLayout()); ++ ++ add(buildRightPanel(), BorderLayout.EAST); ++ ++ JPanel container = new JPanel(); ++ container.setLayout(new BorderLayout()); ++ ++ gradientPanel = new JPanel() ++ { ++ public Dimension getPreferredSize() ++ { ++ return new Dimension(imgWidth, imgHeight); ++ } ++ ++ public void paint(Graphics g) ++ { ++ if (gradientImage != null) ++ g.drawImage(gradientImage, 0, 0, this); ++ ++ Color saved = g.getColor(); ++ g.setColor(Color.WHITE); ++ g.drawOval(gradientPoint.x - 3, gradientPoint.y - 3, 6, 6); ++ g.setColor(saved); ++ } ++ }; ++ ++ MouseAdapter ml = new MainGradientMouseListener(); ++ gradientPanel.addMouseListener(ml); ++ gradientPanel.addMouseMotionListener((MouseMotionListener) ml); ++ ++ trackPanel = new JPanel() ++ { ++ public Dimension getPreferredSize() ++ { ++ return new Dimension(trackWidth, imgHeight); ++ } ++ ++ public void paint(Graphics g) ++ { ++ if (trackImage != null) ++ g.drawImage(trackImage, 0, 0, this); ++ } ++ }; ++ ++ slider = new JSlider(); ++ slider.setPaintTrack(false); ++ slider.setPaintTicks(false); ++ ++ slider.setOrientation(SwingConstants.VERTICAL); ++ ++ updateSlider(); ++ ++ container.add(gradientPanel, BorderLayout.WEST); ++ container.add(slider, BorderLayout.CENTER); ++ container.add(trackPanel, BorderLayout.EAST); ++ ++ add(container, BorderLayout.WEST); ++ slider.addChangeListener(new SliderChangeListener()); ++ repaint(); ++ } ++ ++ /** ++ * This method uninstalls the DefaultHSBPanel. ++ * ++ * @param chooser The JColorChooser to remove this panel from. ++ */ ++ public void uninstallChooserPanel(JColorChooser chooser) ++ { ++ trackImage = null; ++ gradientImage = null; ++ gradientPanel = null; ++ slider = null; ++ ++ hSpinner = null; ++ sSpinner = null; ++ bSpinner = null; ++ ++ hRadio = null; ++ sRadio = null; ++ bRadio = null; ++ ++ removeAll(); ++ super.uninstallChooserPanel(chooser); ++ } ++ ++ /** ++ * This helper method creates the right side panel (the panel with the ++ * Spinners and TextFields). ++ * ++ * @return The right side panel. ++ */ ++ private Container buildRightPanel() ++ { ++ JPanel container = new JPanel(); ++ container.setLayout(new GridLayout(6, 2)); ++ ++ hRadio = new JRadioButton("H"); ++ sRadio = new JRadioButton("S"); ++ bRadio = new JRadioButton("B"); ++ ++ ButtonGroup group = new ButtonGroup(); ++ group.add(hRadio); ++ group.add(sRadio); ++ group.add(bRadio); ++ ++ hSpinner = new JSpinner(new SpinnerNumberModel(0, 0, 359, 1)); ++ sSpinner = new JSpinner(new SpinnerNumberModel(0, 0, 100, 1)); ++ bSpinner = new JSpinner(new SpinnerNumberModel(100, 0, 100, 1)); ++ ++ hSpinner.setEnabled(false); ++ sSpinner.setEnabled(false); ++ bSpinner.setEnabled(false); ++ ++ ChangeListener cl = new RadioStateListener(); ++ ChangeListener scroll = new ImageScrollListener(); ++ ++ hRadio.addChangeListener(cl); ++ sRadio.addChangeListener(cl); ++ bRadio.addChangeListener(cl); ++ ++ hSpinner.addChangeListener(scroll); ++ sSpinner.addChangeListener(scroll); ++ bSpinner.addChangeListener(scroll); ++ ++ hRadio.setSelected(true); ++ ++ container.add(hRadio); ++ container.add(hSpinner); ++ ++ container.add(sRadio); ++ container.add(sSpinner); ++ ++ container.add(bRadio); ++ container.add(bSpinner); ++ ++ rFull = new JLabel("red full"); ++ gFull = new JLabel("green full"); ++ bFull = new JLabel("blue full"); ++ ++ container.add(R); ++ container.add(rFull); ++ ++ container.add(G); ++ container.add(gFull); ++ ++ container.add(B); ++ container.add(bFull); ++ ++ return container; ++ } ++ ++ /** ++ * This method returns the small display icon. ++ * ++ * @return The small display icon. ++ */ ++ public Icon getSmallDisplayIcon() ++ { ++ return null; ++ } ++ ++ /** ++ * This method returns the large display icon. ++ * ++ * @return The large display icon. ++ */ ++ public Icon getLargeDisplayIcon() ++ { ++ return null; ++ } ++ ++ /** ++ * This method paints the chooser panel. ++ * ++ * @param g The graphics object to paint with. ++ */ ++ public void paint(Graphics g) ++ { ++ super.paint(g); ++ } ++ ++ /** ++ * This method updates the gradient image with a new one taking the Hue ++ * value as the constant. ++ */ ++ private void updateHLockImage() ++ { ++ int index = 0; ++ int[] pix = new int[imgWidth * imgHeight]; ++ float hValue = ((Number) hSpinner.getValue()).intValue() / 360f; ++ ++ for (int j = 0; j < imgHeight; j++) ++ for (int i = 0; i < imgWidth; i++) ++ pix[index++] = Color.HSBtoRGB(hValue, (imgWidth - i * 1f) / imgWidth, ++ (imgHeight - j * 1f) / imgHeight) ++ | (255 << 24); ++ ++ gradientImage = createImage(new MemoryImageSource(imgWidth, imgHeight, ++ pix, 0, imgWidth)); ++ } ++ ++ /** ++ * This method updates the gradient image with a new one taking the ++ * Brightness value as the constant. ++ */ ++ private void updateBLockImage() ++ { ++ int[] pix = new int[imgWidth * imgHeight]; ++ float bValue = ((Number) bSpinner.getValue()).intValue() / 100f; ++ ++ int index = 0; ++ for (int j = 0; j < imgHeight; j++) ++ for (int i = 0; i < imgWidth; i++) ++ pix[index++] = Color.HSBtoRGB(i * 1f / imgWidth, ++ (imgHeight - j * 1f) / imgHeight, bValue) ++ | (255 << 24); ++ ++ gradientImage = createImage(new MemoryImageSource(imgWidth, imgHeight, ++ pix, 0, imgWidth)); ++ } ++ ++ /** ++ * This method updates the gradient image with a new one taking the ++ * Saturation value as the constant. ++ */ ++ private void updateSLockImage() ++ { ++ int[] pix = new int[imgWidth * imgHeight]; ++ float sValue = ((Number) sSpinner.getValue()).intValue() / 100f; ++ ++ int index = 0; ++ for (int j = 0; j < imgHeight; j++) ++ for (int i = 0; i < imgWidth; i++) ++ pix[index++] = Color.HSBtoRGB(i * 1f / imgWidth, sValue, ++ (imgHeight - j * 1f) / imgHeight) ++ | (255 << 24); ++ gradientImage = createImage(new MemoryImageSource(imgWidth, imgHeight, ++ pix, 0, imgWidth)); ++ } ++ ++ /** ++ * This method calls the appropriate method to update the gradient image ++ * depending on which HSB value is constant. ++ */ ++ private void updateImage() ++ { ++ switch (locked) ++ { ++ case HLOCKED: ++ updateHLockImage(); ++ break; ++ case SLOCKED: ++ updateSLockImage(); ++ break; ++ case BLOCKED: ++ updateBLockImage(); ++ break; ++ } ++ } ++ ++ /** ++ * This method updates the TextFields with the correct RGB values. ++ */ ++ private void updateTextFields() ++ { ++ int c = getColorSelectionModel().getSelectedColor().getRGB(); ++ ++ rFull.setText("" + (c >> 16 & 0xff)); ++ gFull.setText("" + (c >> 8 & 0xff)); ++ bFull.setText("" + (c & 0xff)); ++ ++ repaint(); ++ } ++ ++ /** ++ * This method updates the slider in response to making a different HSB ++ * property the constant. ++ */ ++ private void updateSlider() ++ { ++ if (slider == null) ++ return; ++ ++ slider.setMinimum(0); ++ if (locked == HLOCKED) ++ { ++ slider.setMaximum(359); ++ ; ++ slider.setValue(((Number) hSpinner.getValue()).intValue()); ++ slider.setInverted(true); ++ } ++ else ++ { ++ slider.setMaximum(100); ++ slider.setInverted(false); ++ if (sRadio.isSelected()) ++ slider.setValue(((Number) sSpinner.getValue()).intValue()); ++ else ++ slider.setValue(((Number) bSpinner.getValue()).intValue()); ++ } ++ repaint(); ++ } ++ ++ /** ++ * This method updates the track gradient image depending on which HSB ++ * property is constant. ++ */ ++ private void updateTrack() ++ { ++ switch (locked) ++ { ++ case HLOCKED: ++ updateHTrack(); ++ break; ++ case SLOCKED: ++ updateSTrack(); ++ break; ++ case BLOCKED: ++ updateBTrack(); ++ break; ++ } ++ } ++ ++ /** ++ * This method updates the track gradient image if the Hue value is allowed ++ * to change (according to the JRadioButtons). ++ */ ++ private void updateHTrack() ++ { ++ int trackIndex = 0; ++ int[] trackPix = new int[trackWidth * imgHeight]; ++ ++ for (int j = 0; j < imgHeight; j++) ++ for (int i = 0; i < trackWidth; i++) ++ trackPix[trackIndex++] = Color.HSBtoRGB(j * 1f / imgHeight, 1f, 1f) ++ | (255 << 24); ++ ++ trackImage = createImage(new MemoryImageSource(trackWidth, imgHeight, ++ trackPix, 0, trackWidth)); ++ } ++ ++ /** ++ * This method updates the track gradient image if the Saturation value is ++ * allowed to change (according to the JRadioButtons). ++ */ ++ private void updateSTrack() ++ { ++ int[] trackPix = new int[trackWidth * imgHeight]; ++ ++ float hValue = ((Number) hSpinner.getValue()).intValue() / 360f; ++ float bValue = ((Number) bSpinner.getValue()).intValue() / 100f; ++ ++ int trackIndex = 0; ++ for (int j = 0; j < imgHeight; j++) ++ for (int i = 0; i < trackWidth; i++) ++ trackPix[trackIndex++] = Color.HSBtoRGB(hValue, ++ (imgHeight - j * 1f) / imgHeight, ++ bValue) | (255 << 24); ++ ++ trackImage = createImage(new MemoryImageSource(trackWidth, imgHeight, ++ trackPix, 0, trackWidth)); ++ } ++ ++ /** ++ * This method updates the track gradient image if the Brightness value is ++ * allowed to change (according to the JRadioButtons). ++ */ ++ private void updateBTrack() ++ { ++ int[] trackPix = new int[trackWidth * imgHeight]; ++ ++ float hValue = ((Number) hSpinner.getValue()).intValue() / 360f; ++ float sValue = ((Number) sSpinner.getValue()).intValue() / 100f; ++ ++ int trackIndex = 0; ++ for (int j = 0; j < imgHeight; j++) ++ for (int i = 0; i < trackWidth; i++) ++ trackPix[trackIndex++] = Color.HSBtoRGB(hValue, sValue, ++ (imgHeight - j * 1f) / imgHeight) ++ | (255 << 24); ++ ++ trackImage = createImage(new MemoryImageSource(trackWidth, imgHeight, ++ trackPix, 0, trackWidth)); ++ } ++} +Index: javax/swing/colorchooser/DefaultPreviewPanel.java +=================================================================== +RCS file: javax/swing/colorchooser/DefaultPreviewPanel.java +diff -N javax/swing/colorchooser/DefaultPreviewPanel.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/colorchooser/DefaultPreviewPanel.java 6 Sep 2004 16:36:02 -0000 +@@ -0,0 +1,317 @@ ++/* DefaultPreviewPanel.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.colorchooser; ++ ++import java.awt.Color; ++import java.awt.Component; ++import java.awt.Dimension; ++import java.awt.FontMetrics; ++import java.awt.Graphics; ++import java.awt.Insets; ++import javax.swing.JColorChooser; ++import javax.swing.JPanel; ++import javax.swing.SwingUtilities; ++import javax.swing.border.Border; ++ ++ ++/** ++ * This is the default preview panel for the JColorChooser. The default ++ * preview panel is responsible for displaying the currently selected color ++ * of the JColorChooser. ++ */ ++class DefaultPreviewPanel extends JPanel ++{ ++ /** ++ * This is the border around the preview panel. ++ */ ++ class PreviewBorder implements Border ++ { ++ /** This is the value of the top, bottom, top, and right inset. */ ++ private static final int edge = 20; ++ ++ /** ++ * This is the distance from the top left corner of the border to the ++ * text. ++ */ ++ private static final int lead = 5; ++ ++ /** This is the horizontal gap between the text and the border. */ ++ private static final int gap = 3; ++ ++ /** ++ * This method returns the border insets for the given Component. ++ * ++ * @param c The Component to retrieve insets for. ++ * ++ * @return The insets for the given Component. ++ */ ++ public Insets getBorderInsets(Component c) ++ { ++ return new Insets(edge, edge, edge, edge); ++ } ++ ++ /** ++ * This method returns whether the border is responsible for painting its ++ * own background. ++ * ++ * @return Whether the border is responsible for painting its own ++ * background. ++ */ ++ public boolean isBorderOpaque() ++ { ++ return true; ++ } ++ ++ /** ++ * This method paints the border for the given component with the graphics ++ * object using the given properties. ++ * ++ * @param c The Component to paint the border for. ++ * @param g The Graphics object to paint with. ++ * @param x The x location to paint at. ++ * @param y The y location to paint at. ++ * @param width The width of the component. ++ * @param height The height of the component. ++ */ ++ public void paintBorder(Component c, Graphics g, int x, int y, int width, ++ int height) ++ { ++ Color saved = g.getColor(); ++ FontMetrics fm = g.getFontMetrics(); ++ ++ g.setColor(Color.BLACK); ++ g.drawLine(x + edge / 2, y + edge / 2, x + edge / 2, ++ y + height - edge / 2); ++ g.drawLine(x + edge / 2, y + height - edge / 2, x + width - edge / 2, ++ y + height - edge / 2); ++ g.drawLine(x + width - edge / 2, y + edge / 2, x + width - edge / 2, ++ y + height - edge / 2); ++ g.drawLine(x + edge / 2, y + edge / 2, x + edge / 2 + lead, y + edge / 2); ++ ++ int strwidth = fm.stringWidth("Preview"); ++ ++ g.drawString("Preview", x + edge / 2 + lead + gap, ++ y + edge / 2 + fm.getAscent() / 2); ++ ++ g.drawLine(x + lead + edge / 2 + strwidth + gap * 2, y + edge / 2, ++ x + width - edge / 2, y + edge / 2); ++ ++ g.setColor(saved); ++ } ++ } ++ ++ /** A standard large gap size. */ ++ private static int largeGap = 6; ++ ++ /** A standard small gap size. */ ++ private static int smallGap = 2; ++ ++ /** The size of each side of the square. */ ++ private static int squareSize = 36; ++ ++ /** This padding between the text and the edge of its box. */ ++ private static int textPadding = 4; ++ ++ /** The width of the right most rectangles. */ ++ private static int rightSideRectWidth = 60; ++ ++ /** The sample text. */ ++ private static String sample = "Sample Text Sample Text"; ++ ++ /** ++ * Creates a new DefaultPreviewPanel object. ++ */ ++ DefaultPreviewPanel() ++ { ++ super(); ++ setBorder(new PreviewBorder()); ++ } ++ ++ /** ++ * This method paints the default preview panel with the given Graphics ++ * object. ++ * ++ * @param g The Graphics object. ++ */ ++ public void paint(Graphics g) ++ { ++ super.paint(g); ++ Color currentColor = null; ++ JColorChooser chooser = (JColorChooser) SwingUtilities.getAncestorOfClass(JColorChooser.class, ++ this); ++ if (chooser != null) ++ currentColor = chooser.getColor(); ++ ++ Color saved = g.getColor(); ++ Insets insets = getInsets(); ++ ++ int down = insets.top + squareSize + largeGap; ++ int currX = insets.left; ++ ++ paintSquare(g, currX, insets.top, Color.WHITE, currentColor, Color.WHITE, ++ -1, -1, -1); ++ paintSquare(g, currX, down, currentColor, null, null, -1, -1, -1); ++ ++ currX += squareSize + largeGap; ++ ++ paintSquare(g, currX, insets.top, Color.BLACK, currentColor, Color.WHITE, ++ -1, -1, -1); ++ paintSquare(g, currX, down, Color.WHITE, currentColor, null, -1, -1, -1); ++ ++ currX += squareSize + largeGap; ++ ++ paintSquare(g, currX, insets.top, Color.WHITE, currentColor, Color.BLACK, ++ -1, -1, -1); ++ paintSquare(g, currX, down, Color.BLACK, currentColor, null, -1, -1, -1); ++ ++ FontMetrics fm = g.getFontMetrics(); ++ int strWidth = fm.stringWidth(sample); ++ int strHeight = fm.getHeight(); ++ ++ currX += squareSize + largeGap; ++ ++ int boxWidth = 2 * textPadding + strWidth; ++ int boxHeight = 2 * textPadding + strHeight; ++ ++ int first = insets.top + textPadding; ++ int second = insets.top + boxHeight + smallGap; ++ int third = insets.top + 2 * (boxHeight + smallGap); ++ ++ g.setColor(Color.WHITE); ++ g.fillRect(currX, third, boxWidth, boxHeight); ++ ++ g.setColor(currentColor); ++ g.drawString(sample, currX + textPadding, ++ first + textPadding + fm.getAscent()); ++ ++ g.fillRect(currX, second, boxWidth, boxHeight); ++ ++ g.drawString(sample, currX + textPadding, ++ third + textPadding + fm.getAscent()); ++ ++ g.setColor(Color.BLACK); ++ g.drawString(sample, currX + textPadding, ++ second + textPadding + fm.getAscent()); ++ ++ currX += boxWidth + largeGap; ++ ++ g.setColor(Color.WHITE); ++ g.fillRect(currX, insets.top, rightSideRectWidth, squareSize ++ + largeGap / 2); ++ ++ g.setColor(currentColor); ++ g.fillRect(currX, insets.top + squareSize + largeGap / 2, ++ rightSideRectWidth, squareSize + largeGap / 2); ++ ++ g.setColor(saved); ++ } ++ ++ /** ++ * This method creates and paints a square. The square has two smaller ++ * squares inside of it. Each of the three squares has their sizes ++ * determined by the size arguments. If the size is not given (by passing ++ * in -1), then the size is determined automatically. ++ * ++ * @param g The Graphics object to paint with. ++ * @param x The x location to paint at. ++ * @param y The y location to paint at. ++ * @param first The color of the first square. ++ * @param second The color of the second square. ++ * @param third The color of the third square. ++ * @param firstSize The size of the first square. ++ * @param secondSize The size of the second square. ++ * @param thirdSize The size of the third square. ++ */ ++ private void paintSquare(Graphics g, int x, int y, Color first, ++ Color second, Color third, int firstSize, ++ int secondSize, int thirdSize) ++ { ++ Color saved = g.getColor(); ++ if (firstSize == -1) ++ firstSize = squareSize; ++ if (secondSize == -1) ++ secondSize = squareSize * 2 / 3; ++ if (thirdSize == -1) ++ thirdSize = squareSize / 3; ++ int secondOffset = (firstSize - secondSize) / 2; ++ int thirdOffset = (firstSize - thirdSize) / 2; ++ ++ if (first == null) ++ return; ++ g.setColor(first); ++ g.fillRect(x, y, firstSize, firstSize); ++ if (second == null) ++ return; ++ g.setColor(second); ++ g.fillRect(x + secondOffset, y + secondOffset, secondSize, secondSize); ++ if (third == null) ++ return; ++ g.setColor(third); ++ g.fillRect(x + thirdOffset, y + thirdOffset, thirdSize, thirdSize); ++ ++ g.setColor(saved); ++ } ++ ++ /** ++ * This method returns the preferred size of the default preview panel. ++ * ++ * @return The preferred size of the default preview panel. ++ */ ++ public Dimension getPreferredSize() ++ { ++ Graphics g = getGraphics(); ++ FontMetrics fm = g.getFontMetrics(); ++ g.dispose(); ++ ++ int strWidth = fm.stringWidth(sample); ++ int strHeight = fm.getHeight(); ++ ++ int h1 = (strHeight + 2 * textPadding) * 3 + 2 * smallGap; ++ int h2 = 2 * squareSize + largeGap; ++ ++ int height = Math.max(h1, h2); ++ ++ int width = 3 * (squareSize + largeGap) + strWidth + 2 * textPadding ++ + largeGap + rightSideRectWidth; ++ ++ Insets insets = getInsets(); ++ ++ return new Dimension(width + insets.right + insets.left, ++ height + insets.top + insets.bottom); ++ } ++} +Index: javax/swing/colorchooser/DefaultRGBChooserPanel.java +=================================================================== +RCS file: javax/swing/colorchooser/DefaultRGBChooserPanel.java +diff -N javax/swing/colorchooser/DefaultRGBChooserPanel.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/colorchooser/DefaultRGBChooserPanel.java 6 Sep 2004 16:36:02 -0000 +@@ -0,0 +1,377 @@ ++/* DefaultRGHChooserPanel.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.colorchooser; ++ ++import java.awt.BorderLayout; ++import java.awt.Color; ++import java.awt.FlowLayout; ++import java.awt.Graphics; ++import java.awt.GridBagConstraints; ++import java.awt.GridBagLayout; ++import javax.swing.Icon; ++import javax.swing.JColorChooser; ++import javax.swing.JLabel; ++import javax.swing.JPanel; ++import javax.swing.JSlider; ++import javax.swing.JSpinner; ++import javax.swing.SpinnerNumberModel; ++import javax.swing.SwingConstants; ++import javax.swing.event.ChangeEvent; ++import javax.swing.event.ChangeListener; ++ ++ ++/** ++ * This is the default RGB panel for the JColorChooser. The color is selected ++ * using three sliders that represent the RGB values. ++ */ ++public class DefaultRGBChooserPanel extends AbstractColorChooserPanel ++{ ++ /** ++ * This class handles the slider value changes for all three sliders. ++ */ ++ class SliderHandler implements ChangeListener ++ { ++ /** ++ * This method is called whenever any of the slider values change. ++ * ++ * @param e The ChangeEvent. ++ */ ++ public void stateChanged(ChangeEvent e) ++ { ++ if (internalChange) ++ return; ++ int color = R.getValue() << 16 | G.getValue() << 8 | B.getValue(); ++ ++ getColorSelectionModel().setSelectedColor(new Color(color)); ++ } ++ } ++ ++ /** ++ * This class handles the Spinner values changing. ++ */ ++ class SpinnerHandler implements ChangeListener ++ { ++ /** ++ * This method is called whenever any of the JSpinners change values. ++ * ++ * @param e The ChangeEvent. ++ */ ++ public void stateChanged(ChangeEvent e) ++ { ++ if (internalChange) ++ return; ++ int red = ((Number) RSpinner.getValue()).intValue(); ++ int green = ((Number) GSpinner.getValue()).intValue(); ++ int blue = ((Number) BSpinner.getValue()).intValue(); ++ ++ int color = red << 16 | green << 8 | blue; ++ ++ getColorSelectionModel().setSelectedColor(new Color(color)); ++ } ++ } ++ ++ /** ++ * Whether the color change was initiated from the slider or spinner rather ++ * than externally. ++ */ ++ private transient boolean internalChange = false; ++ ++ /** The ChangeListener for the sliders. */ ++ private transient ChangeListener colorChanger; ++ ++ /** The ChangeListener for the spinners. */ ++ private transient ChangeListener spinnerHandler; ++ ++ /** The slider that handles the red values. */ ++ private transient JSlider R; ++ ++ /** The slider that handles the green values. */ ++ private transient JSlider G; ++ ++ /** The slider that handles the blue values. */ ++ private transient JSlider B; ++ ++ /** The label for the red slider. */ ++ private transient JLabel RLabel; ++ ++ /** The label for the green slider. */ ++ private transient JLabel GLabel; ++ ++ /** The label for the blue slider. */ ++ private transient JLabel BLabel; ++ ++ /** The spinner that handles the red values. */ ++ private transient JSpinner RSpinner; ++ ++ /** The spinner that handles the green values. */ ++ private transient JSpinner GSpinner; ++ ++ /** The spinner that handles the blue values. */ ++ private transient JSpinner BSpinner; ++ ++ /** ++ * Creates a new DefaultRGBChooserPanel object. ++ */ ++ public DefaultRGBChooserPanel() ++ { ++ super(); ++ } ++ ++ /** ++ * This method returns the name displayed in the JTabbedPane. ++ * ++ * @return The name displayed in the JTabbedPane. ++ */ ++ public String getDisplayName() ++ { ++ return "RGB"; ++ } ++ ++ /** ++ * This method updates the chooser panel with the new color chosen in the ++ * JColorChooser. ++ */ ++ public void updateChooser() ++ { ++ Color c = getColorFromModel(); ++ int rgb = c.getRGB(); ++ ++ int red = rgb >> 16 & 0xff; ++ int green = rgb >> 8 & 0xff; ++ int blue = rgb & 0xff; ++ ++ internalChange = true; ++ ++ if (R != null) ++ R.setValue(red); ++ if (RSpinner != null) ++ RSpinner.setValue(new Integer(red)); ++ if (G != null) ++ G.setValue(green); ++ if (GSpinner != null) ++ GSpinner.setValue(new Integer(green)); ++ if (B != null) ++ B.setValue(blue); ++ if (BSpinner != null) ++ BSpinner.setValue(new Integer(blue)); ++ ++ internalChange = false; ++ ++ revalidate(); ++ repaint(); ++ } ++ ++ /** ++ * This method builds the chooser panel. ++ */ ++ protected void buildChooser() ++ { ++ setLayout(new GridBagLayout()); ++ ++ RLabel = new JLabel("Red"); ++ RLabel.setDisplayedMnemonic('d'); ++ GLabel = new JLabel("Green"); ++ GLabel.setDisplayedMnemonic('n'); ++ BLabel = new JLabel("Blue"); ++ BLabel.setDisplayedMnemonic('B'); ++ ++ R = new JSlider(SwingConstants.HORIZONTAL, 0, 255, 255); ++ G = new JSlider(SwingConstants.HORIZONTAL, 0, 255, 255); ++ B = new JSlider(SwingConstants.HORIZONTAL, 0, 255, 255); ++ ++ R.setPaintTicks(true); ++ R.setSnapToTicks(false); ++ G.setPaintTicks(true); ++ G.setSnapToTicks(false); ++ B.setPaintTicks(true); ++ B.setSnapToTicks(false); ++ ++ R.setLabelTable(R.createStandardLabels(85)); ++ R.setPaintLabels(true); ++ G.setLabelTable(G.createStandardLabels(85)); ++ G.setPaintLabels(true); ++ B.setLabelTable(B.createStandardLabels(85)); ++ B.setPaintLabels(true); ++ ++ R.setMajorTickSpacing(85); ++ G.setMajorTickSpacing(85); ++ B.setMajorTickSpacing(85); ++ ++ R.setMinorTickSpacing(17); ++ G.setMinorTickSpacing(17); ++ B.setMinorTickSpacing(17); ++ ++ RSpinner = new JSpinner(new SpinnerNumberModel(R.getValue(), ++ R.getMinimum(), ++ R.getMaximum(), 1)); ++ GSpinner = new JSpinner(new SpinnerNumberModel(G.getValue(), ++ G.getMinimum(), ++ G.getMaximum(), 1)); ++ BSpinner = new JSpinner(new SpinnerNumberModel(B.getValue(), ++ B.getMinimum(), ++ B.getMaximum(), 1)); ++ ++ RLabel.setLabelFor(R); ++ GLabel.setLabelFor(G); ++ BLabel.setLabelFor(B); ++ ++ GridBagConstraints bag = new GridBagConstraints(); ++ bag.fill = GridBagConstraints.VERTICAL; ++ ++ bag.gridx = 0; ++ bag.gridy = 0; ++ add(RLabel, bag); ++ ++ bag.gridx = 1; ++ add(R, bag); ++ ++ bag.gridx = 2; ++ add(RSpinner, bag); ++ ++ bag.gridx = 0; ++ bag.gridy = 1; ++ add(GLabel, bag); ++ ++ bag.gridx = 1; ++ add(G, bag); ++ ++ bag.gridx = 2; ++ add(GSpinner, bag); ++ ++ bag.gridx = 0; ++ bag.gridy = 2; ++ add(BLabel, bag); ++ ++ bag.gridx = 1; ++ add(B, bag); ++ ++ bag.gridx = 2; ++ add(BSpinner, bag); ++ ++ installListeners(); ++ } ++ ++ /** ++ * This method uninstalls the chooser panel from the JColorChooser. ++ * ++ * @param chooser The JColorChooser to remove this chooser panel from. ++ */ ++ public void uninstallChooserPanel(JColorChooser chooser) ++ { ++ uninstallListeners(); ++ removeAll(); ++ ++ R = null; ++ G = null; ++ B = null; ++ ++ RSpinner = null; ++ GSpinner = null; ++ BSpinner = null; ++ ++ super.uninstallChooserPanel(chooser); ++ } ++ ++ /** ++ * This method uninstalls any listeners that were added by the chooser ++ * panel. ++ */ ++ private void uninstallListeners() ++ { ++ R.removeChangeListener(colorChanger); ++ G.removeChangeListener(colorChanger); ++ B.removeChangeListener(colorChanger); ++ ++ colorChanger = null; ++ ++ RSpinner.removeChangeListener(spinnerHandler); ++ GSpinner.removeChangeListener(spinnerHandler); ++ BSpinner.removeChangeListener(spinnerHandler); ++ ++ spinnerHandler = null; ++ } ++ ++ /** ++ * This method installs any listeners that the chooser panel needs to ++ * operate. ++ */ ++ private void installListeners() ++ { ++ colorChanger = new SliderHandler(); ++ ++ R.addChangeListener(colorChanger); ++ G.addChangeListener(colorChanger); ++ B.addChangeListener(colorChanger); ++ ++ spinnerHandler = new SpinnerHandler(); ++ ++ RSpinner.addChangeListener(spinnerHandler); ++ GSpinner.addChangeListener(spinnerHandler); ++ BSpinner.addChangeListener(spinnerHandler); ++ } ++ ++ /** ++ * This method returns the small display icon. ++ * ++ * @return The small display icon. ++ */ ++ public Icon getSmallDisplayIcon() ++ { ++ return null; ++ } ++ ++ /** ++ * This method returns the large display icon. ++ * ++ * @return The large display icon. ++ */ ++ public Icon getLargeDisplayIcon() ++ { ++ return null; ++ } ++ ++ /** ++ * This method paints the default RGB chooser panel. ++ * ++ * @param g The Graphics object to paint with. ++ */ ++ public void paint(Graphics g) ++ { ++ super.paint(g); ++ } ++} +Index: javax/swing/colorchooser/DefaultSwatchChooserPanel.java +=================================================================== +RCS file: javax/swing/colorchooser/DefaultSwatchChooserPanel.java +diff -N javax/swing/colorchooser/DefaultSwatchChooserPanel.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/colorchooser/DefaultSwatchChooserPanel.java 6 Sep 2004 16:36:02 -0000 +@@ -0,0 +1,891 @@ ++/* DefaultSwatchChooserPanel.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.colorchooser; ++ ++import java.awt.BorderLayout; ++import java.awt.Color; ++import java.awt.Component; ++import java.awt.Container; ++import java.awt.Dimension; ++import java.awt.Graphics; ++import java.awt.Insets; ++import java.awt.LayoutManager; ++import java.awt.event.MouseAdapter; ++import java.awt.event.MouseEvent; ++import java.awt.event.MouseListener; ++import javax.swing.Icon; ++import javax.swing.JColorChooser; ++import javax.swing.JLabel; ++import javax.swing.JPanel; ++ ++ ++/** ++ * This class is the DefaultSwatchChooserPanel. This chooser panel displays a ++ * set of colors that can be picked. Recently picked items will go into a ++ * side panel so the user can see the history of the chosen colors. ++ */ ++class DefaultSwatchChooserPanel extends AbstractColorChooserPanel ++{ ++ /** The main panel that holds the set of choosable colors. */ ++ MainSwatchPanel mainPalette; ++ ++ /** A panel that holds the recent colors. */ ++ RecentSwatchPanel recentPalette; ++ ++ /** The mouse handlers for the panels. */ ++ MouseListener mouseHandler; ++ ++ /** ++ * This the base class for all swatch panels. Swatch panels are panels that ++ * hold a set of blocks where colors are displayed. ++ */ ++ abstract static class SwatchPanel extends JPanel ++ { ++ /** The width of each block. */ ++ protected int cellWidth = 10; ++ ++ /** The height of each block. */ ++ protected int cellHeight = 10; ++ ++ /** The gap between blocks. */ ++ protected int gap = 1; ++ ++ /** The number of rows in the swatch panel. */ ++ protected int numRows; ++ ++ /** The number of columns in the swatch panel. */ ++ protected int numCols; ++ ++ /** ++ * Creates a new SwatchPanel object. ++ */ ++ SwatchPanel() ++ { ++ super(); ++ setBackground(Color.WHITE); ++ } ++ ++ /** ++ * This method returns the preferred size of the swatch panel based on the ++ * number of rows and columns and the size of each cell. ++ * ++ * @return The preferred size of the swatch panel. ++ */ ++ public Dimension getPreferredSize() ++ { ++ int height = numRows * cellHeight + (numRows - 1) * gap; ++ int width = numCols * cellWidth + (numCols - 1) * gap; ++ Insets insets = getInsets(); ++ ++ return new Dimension(width + insets.left + insets.right, ++ height + insets.top + insets.bottom); ++ } ++ ++ /** ++ * This method returns the color for the given position. ++ * ++ * @param x The x coordinate of the position. ++ * @param y The y coordinate of the position. ++ * ++ * @return The color at the given position. ++ */ ++ public abstract Color getColorForPosition(int x, int y); ++ ++ /** ++ * This method initializes the colors for the swatch panel. ++ */ ++ protected abstract void initializeColors(); ++ } ++ ++ /** ++ * This is the main swatch panel. This panel sits in the middle and allows a ++ * set of colors to be picked which will move to the recent swatch panel. ++ */ ++ static class MainSwatchPanel extends SwatchPanel ++ { ++ /** The color describing (204, 255, 255) */ ++ public static final Color C204255255 = new Color(204, 204, 255); ++ ++ /** The color describing (255, 204, 204) */ ++ public static final Color C255204204 = new Color(255, 204, 204); ++ ++ /** The color describing (204, 255, 204) */ ++ public static final Color C204255204 = new Color(204, 255, 204); ++ ++ /** The color describing (204, 204, 204) */ ++ public static final Color C204204204 = new Color(204, 204, 204); ++ ++ /** The color (153, 153, 255). */ ++ public static final Color C153153255 = new Color(153, 153, 255); ++ ++ /** The color (51, 51, 255). */ ++ public static final Color C051051255 = new Color(51, 51, 255); ++ ++ /** The color (153, 0, 153). */ ++ public static final Color C153000153 = new Color(153, 0, 153); ++ ++ /** The color (0, 51, 51). */ ++ public static final Color C000051051 = new Color(0, 51, 51); ++ ++ /** The color (51, 0, 51). */ ++ public static final Color C051000051 = new Color(51, 0, 51); ++ ++ /** The color (51, 51, 0). */ ++ public static final Color C051051000 = new Color(51, 51, 0); ++ ++ /** The color (102, 102, 0). */ ++ public static final Color C102102000 = new Color(102, 102, 0); ++ ++ /** The color (153, 255, 153). */ ++ public static final Color C153255153 = new Color(153, 255, 153); ++ ++ /** The color (102, 255, 102). */ ++ public static final Color C102255102 = new Color(102, 255, 102); ++ ++ /** The color (0, 102, 102). */ ++ public static final Color C000102102 = new Color(0, 102, 102); ++ ++ /** The color (102, 0, 102). */ ++ public static final Color C102000102 = new Color(102, 0, 102); ++ ++ /** The color (0, 153, 153). */ ++ public static final Color C000153153 = new Color(0, 153, 153); ++ ++ /** The color (153, 153, 0). */ ++ public static final Color C153153000 = new Color(153, 153, 0); ++ ++ /** The color (204, 204, 0). */ ++ public static final Color C204204000 = new Color(204, 204, 0); ++ ++ /** The color (204, 0, 204). */ ++ public static final Color C204000204 = new Color(204, 0, 204); ++ ++ /** The color (0, 204, 204). */ ++ public static final Color C000204204 = new Color(0, 204, 204); ++ ++ /** The color (51, 255, 51). */ ++ public static final Color C051255051 = new Color(51, 255, 51); ++ ++ /** The color (255, 51, 51). */ ++ public static final Color C255051051 = new Color(255, 51, 51); ++ ++ /** The color (255, 102, 102). */ ++ public static final Color C255102102 = new Color(255, 102, 102); ++ ++ /** The color (102, 102, 255). */ ++ public static final Color C102102255 = new Color(102, 102, 255); ++ ++ /** The color (255, 153, 153). */ ++ public static final Color C255153153 = new Color(255, 153, 153); ++ static Color[] colors = ++ { ++ // Row 1 ++ Color.WHITE, new Color(204, 255, 255), C204255255, C204255255, C204255255, ++ C204255255, C204255255, C204255255, C204255255, ++ C204255255, C204255255, new Color(255, 204, 255), ++ C255204204, C255204204, C255204204, C255204204, ++ C255204204, C255204204, C255204204, C255204204, ++ C255204204, new Color(255, 255, 204), C204255204, ++ C204255204, C204255204, C204255204, C204255204, ++ C204255204, C204255204, C204255204, C204255204, ++ ++ // Row 2 ++ C204204204, new Color(153, 255, 255), new Color(153, 204, 255), C153153255, ++ C153153255, C153153255, C153153255, C153153255, ++ C153153255, C153153255, new Color(204, 153, 255), ++ new Color(255, 153, 255), ++ new Color(255, 153, 204), C255153153, C255153153, ++ C255153153, C255153153, C255153153, C255153153, ++ C255153153, new Color(255, 204, 153), ++ new Color(255, 255, 153), ++ new Color(204, 255, 153), C153255153, C153255153, ++ C153255153, C153255153, C153255153, C153255153, ++ C153255153, new Color(153, 255, 204), ++ ++ // Row 3 ++ C204204204, new Color(102, 255, 255), new Color(102, 204, 255), ++ new Color(102, 153, 255), C102102255, C102102255, ++ C102102255, C102102255, C102102255, ++ new Color(153, 102, 255), ++ new Color(204, 102, 255), ++ new Color(255, 102, 255), ++ new Color(255, 102, 204), ++ new Color(255, 102, 153), C255102102, C255102102, ++ C255102102, C255102102, C255102102, ++ new Color(255, 153, 102), ++ new Color(255, 204, 102), ++ new Color(255, 255, 102), ++ new Color(204, 255, 102), ++ new Color(153, 255, 102), C102255102, C102255102, ++ C102255102, C102255102, C102255102, ++ new Color(102, 255, 153), ++ new Color(102, 255, 204), ++ ++ // Row 4 ++ new Color(153, 153, 153), new Color(51, 255, 255), new Color(51, 204, 255), ++ new Color(51, 153, 255), new Color(51, 102, 255), ++ C051051255, C051051255, C051051255, ++ new Color(102, 51, 255), new Color(153, 51, 255), ++ new Color(204, 51, 255), new Color(255, 51, 255), ++ new Color(255, 51, 204), new Color(255, 51, 153), ++ new Color(255, 51, 102), C255051051, C255051051, ++ C255051051, new Color(255, 102, 51), ++ new Color(255, 153, 51), new Color(255, 204, 51), ++ new Color(255, 255, 51), new Color(204, 255, 51), ++ new Color(153, 255, 51), new Color(102, 255, 51), ++ C051255051, C051255051, C051255051, ++ new Color(51, 255, 102), new Color(51, 255, 153), ++ new Color(51, 255, 204), ++ ++ // Row 5 ++ new Color(153, 153, 153), new Color(0, 255, 255), new Color(0, 204, 255), ++ new Color(0, 153, 255), new Color(0, 102, 255), ++ new Color(0, 51, 255), new Color(0, 0, 255), ++ new Color(51, 0, 255), new Color(102, 0, 255), ++ new Color(153, 0, 255), new Color(204, 0, 255), ++ new Color(255, 0, 255), new Color(255, 0, 204), ++ new Color(255, 0, 153), new Color(255, 0, 102), ++ new Color(255, 0, 51), new Color(255, 0, 0), ++ new Color(255, 51, 0), new Color(255, 102, 0), ++ new Color(255, 153, 0), new Color(255, 204, 0), ++ new Color(255, 255, 0), new Color(204, 255, 0), ++ new Color(153, 255, 0), new Color(102, 255, 0), ++ new Color(51, 255, 0), new Color(0, 255, 0), ++ new Color(0, 255, 51), new Color(0, 255, 102), ++ new Color(0, 255, 153), new Color(0, 255, 204), ++ ++ // Row 6 ++ new Color(102, 102, 102), C000204204, C000204204, new Color(0, 153, 204), ++ new Color(0, 102, 204), new Color(0, 51, 204), ++ new Color(0, 0, 204), new Color(51, 0, 204), ++ new Color(102, 0, 204), new Color(153, 0, 204), ++ C204000204, C204000204, C204000204, ++ new Color(204, 0, 153), new Color(204, 0, 102), ++ new Color(204, 0, 51), new Color(204, 0, 0), ++ new Color(204, 51, 0), new Color(204, 102, 0), ++ new Color(204, 153, 0), C204204000, C204204000, ++ C204204000, new Color(153, 204, 0), ++ new Color(102, 204, 0), new Color(51, 204, 0), ++ new Color(0, 204, 0), new Color(0, 204, 51), ++ new Color(0, 204, 102), new Color(0, 204, 153), ++ new Color(0, 204, 204), ++ ++ // Row 7 ++ new Color(102, 102, 102), C000153153, C000153153, C000153153, ++ new Color(0, 102, 153), new Color(0, 51, 153), ++ new Color(0, 0, 153), new Color(51, 0, 153), ++ new Color(102, 0, 153), C153000153, C153000153, ++ C153000153, C153000153, C153000153, ++ new Color(153, 0, 102), new Color(153, 0, 51), ++ new Color(153, 0, 0), new Color(153, 51, 0), ++ new Color(153, 102, 0), C153153000, C153153000, ++ C153153000, C153153000, C153153000, ++ new Color(102, 153, 0), new Color(51, 153, 0), ++ new Color(0, 153, 0), new Color(0, 153, 51), ++ new Color(0, 153, 102), C000153153, C000153153, ++ ++ // Row 8 ++ new Color(51, 51, 51), C000102102, C000102102, C000102102, C000102102, ++ new Color(0, 51, 102), new Color(0, 0, 102), ++ new Color(51, 0, 102), C102000102, C102000102, ++ C102000102, C102000102, C102000102, C102000102, ++ C102000102, new Color(102, 0, 51), ++ new Color(102, 0, 0), new Color(102, 51, 0), ++ C102102000, C102102000, C102102000, C102102000, ++ C102102000, C102102000, C102102000, ++ new Color(51, 102, 0), new Color(0, 102, 0), ++ new Color(0, 102, 51), C000102102, C000102102, ++ C000102102, ++ ++ // Row 9. ++ Color.BLACK, C000051051, C000051051, C000051051, C000051051, C000051051, ++ new Color(0, 0, 51), C051000051, C051000051, ++ C051000051, C051000051, C051000051, C051000051, ++ C051000051, C051000051, C051000051, ++ new Color(51, 0, 0), C051051000, C051051000, ++ C051051000, C051051000, C051051000, C051051000, ++ C051051000, C051051000, new Color(0, 51, 0), ++ C000051051, C000051051, C000051051, C000051051, ++ new Color(51, 51, 51) ++ }; ++ ++ /** ++ * Creates a new MainSwatchPanel object. ++ */ ++ MainSwatchPanel() ++ { ++ super(); ++ numCols = 31; ++ numRows = 9; ++ initializeColors(); ++ revalidate(); ++ } ++ ++ /** ++ * This method returns the color for the given position. ++ * ++ * @param x The x location for the position. ++ * @param y The y location for the position. ++ * ++ * @return The color for the given position. ++ */ ++ public Color getColorForPosition(int x, int y) ++ { ++ if (x % (cellWidth + gap) > cellWidth ++ || y % (cellHeight + gap) > cellHeight) ++ // position is located in gap. ++ return null; ++ ++ int row = y / (cellHeight + gap); ++ int col = x / (cellWidth + gap); ++ return colors[row * numCols + col]; ++ } ++ ++ /** ++ * This method initializes the colors for the main swatch panel. ++ */ ++ protected void initializeColors() ++ { ++ // Unnecessary ++ } ++ ++ /** ++ * This method paints the main graphics panel with the given Graphics ++ * object. ++ * ++ * @param graphics The Graphics object to paint with. ++ */ ++ public void paint(Graphics graphics) ++ { ++ int index = 0; ++ Insets insets = getInsets(); ++ int currX = insets.left; ++ int currY = insets.top; ++ Color saved = graphics.getColor(); ++ ++ for (int i = 0; i < numRows; i++) ++ { ++ for (int j = 0; j < numCols; j++) ++ { ++ graphics.setColor(colors[index++]); ++ graphics.fill3DRect(currX, currY, cellWidth, cellHeight, true); ++ currX += gap + cellWidth; ++ } ++ currX = insets.left; ++ currY += gap + cellHeight; ++ } ++ graphics.setColor(saved); ++ } ++ ++ /** ++ * This method returns the tooltip text for the given MouseEvent. ++ * ++ * @param e The MouseEvent to find tooltip text for. ++ * ++ * @return The tooltip text. ++ */ ++ public String getToolTipText(MouseEvent e) ++ { ++ Color c = getColorForPosition(e.getX(), e.getY()); ++ if (c == null) ++ return null; ++ return (c.getRed() + "," + c.getGreen() + "," + c.getBlue()); ++ } ++ } ++ ++ /** ++ * This class is the recent swatch panel. It holds recently selected colors. ++ */ ++ public static class RecentSwatchPanel extends SwatchPanel ++ { ++ /** The array for storing recently stored colors. */ ++ Color[] colors; ++ ++ /** The default color. */ ++ public static final Color defaultColor = Color.GRAY; ++ ++ /** The index of the array that is the start. */ ++ int start = 0; ++ ++ /** ++ * Creates a new RecentSwatchPanel object. ++ */ ++ RecentSwatchPanel() ++ { ++ super(); ++ numCols = 5; ++ numRows = 7; ++ initializeColors(); ++ revalidate(); ++ } ++ ++ /** ++ * This method returns the color for the given position. ++ * ++ * @param x The x coordinate of the position. ++ * @param y The y coordinate of the position. ++ * ++ * @return The color for the given position. ++ */ ++ public Color getColorForPosition(int x, int y) ++ { ++ if (x % (cellWidth + gap) > cellWidth ++ || y % (cellHeight + gap) > cellHeight) ++ // position is located in gap. ++ return null; ++ ++ int row = y / (cellHeight + gap); ++ int col = x / (cellWidth + gap); ++ ++ return colors[getIndexForCell(row, col)]; ++ } ++ ++ /** ++ * This method initializes the colors for the recent swatch panel. ++ */ ++ protected void initializeColors() ++ { ++ colors = new Color[numRows * numCols]; ++ for (int i = 0; i < colors.length; i++) ++ colors[i] = defaultColor; ++ } ++ ++ /** ++ * This method returns the array index for the given row and column. ++ * ++ * @param row The row. ++ * @param col The column. ++ * ++ * @return The array index for the given row and column. ++ */ ++ private int getIndexForCell(int row, int col) ++ { ++ return ((row * numCols) + col + start) % (numRows * numCols); ++ } ++ ++ /** ++ * This method adds the given color to the beginning of the swatch panel. ++ * ++ * @param c The color to add. ++ */ ++ private void addColorToQueue(Color c) ++ { ++ if (--start == -1) ++ start = numRows * numCols - 1; ++ ++ colors[start] = c; ++ } ++ ++ /** ++ * This method paints the panel with the given Graphics object. ++ * ++ * @param g The Graphics object to paint with. ++ */ ++ public void paint(Graphics g) ++ { ++ Color saved = g.getColor(); ++ Insets insets = getInsets(); ++ int currX = insets.left; ++ int currY = insets.top; ++ ++ for (int i = 0; i < numRows; i++) ++ { ++ for (int j = 0; j < numCols; j++) ++ { ++ g.setColor(colors[getIndexForCell(i, j)]); ++ g.fill3DRect(currX, currY, cellWidth, cellHeight, true); ++ currX += cellWidth + gap; ++ } ++ currX = insets.left; ++ currY += cellWidth + gap; ++ } ++ } ++ ++ /** ++ * This method returns the tooltip text for the given MouseEvent. ++ * ++ * @param e The MouseEvent. ++ * ++ * @return The tooltip text. ++ */ ++ public String getToolTipText(MouseEvent e) ++ { ++ Color c = getColorForPosition(e.getX(), e.getY()); ++ if (c == null) ++ return null; ++ return c.getRed() + "," + c.getGreen() + "," + c.getBlue(); ++ } ++ } ++ ++ /** ++ * This class handles mouse events for the two swatch panels. ++ */ ++ class MouseHandler extends MouseAdapter ++ { ++ /** ++ * This method is called whenever the mouse is pressed. ++ * ++ * @param e The MouseEvent. ++ */ ++ public void mousePressed(MouseEvent e) ++ { ++ SwatchPanel panel = (SwatchPanel) e.getSource(); ++ Color c = panel.getColorForPosition(e.getX(), e.getY()); ++ recentPalette.addColorToQueue(c); ++ DefaultSwatchChooserPanel.this.getColorSelectionModel().setSelectedColor(c); ++ DefaultSwatchChooserPanel.this.repaint(); ++ } ++ } ++ ++ /** ++ * This is the layout manager for the main panel. ++ */ ++ static class MainPanelLayout implements LayoutManager ++ { ++ /** ++ * This method is called when a new component is added to the container. ++ * ++ * @param name The name of the component. ++ * @param comp The added component. ++ */ ++ public void addLayoutComponent(String name, Component comp) ++ { ++ } ++ ++ /** ++ * This method is called to set the size and position of the child ++ * components for the given container. ++ * ++ * @param parent The container to lay out. ++ */ ++ public void layoutContainer(Container parent) ++ { ++ Component[] comps = parent.getComponents(); ++ Insets insets = parent.getInsets(); ++ Dimension[] pref = new Dimension[comps.length]; ++ ++ int xpos = 0; ++ int ypos = 0; ++ int maxHeight = 0; ++ int totalWidth = 0; ++ ++ for (int i = 0; i < comps.length; i++) ++ { ++ pref[i] = comps[i].getPreferredSize(); ++ if (pref[i] == null) ++ return; ++ maxHeight = Math.max(maxHeight, pref[i].height); ++ totalWidth += pref[i].width; ++ } ++ ++ ypos = (parent.getSize().height - maxHeight) / 2 + insets.top; ++ xpos = insets.left + (parent.getSize().width - totalWidth) / 2; ++ ++ for (int i = 0; i < comps.length; i++) ++ { ++ if (pref[i] == null) ++ continue; ++ comps[i].setBounds(xpos, ypos, pref[i].width, pref[i].height); ++ xpos += pref[i].width; ++ } ++ } ++ ++ /** ++ * This method is called when a component is removed from the container. ++ * ++ * @param comp The component that was removed. ++ */ ++ public void removeLayoutComponent(Component comp) ++ { ++ } ++ ++ /** ++ * This methods calculates the minimum layout size for the container. ++ * ++ * @param parent The container. ++ * ++ * @return The minimum layout size. ++ */ ++ public Dimension minimumLayoutSize(Container parent) ++ { ++ return preferredLayoutSize(parent); ++ } ++ ++ /** ++ * This method returns the preferred layout size for the given container. ++ * ++ * @param parent The container. ++ * ++ * @return The preferred layout size. ++ */ ++ public Dimension preferredLayoutSize(Container parent) ++ { ++ int xmax = 0; ++ int ymax = 0; ++ ++ Component[] comps = parent.getComponents(); ++ Dimension pref; ++ ++ for (int i = 0; i < comps.length; i++) ++ { ++ pref = comps[i].getPreferredSize(); ++ if (pref == null) ++ continue; ++ xmax += pref.width; ++ ymax = Math.max(ymax, pref.height); ++ } ++ ++ Insets insets = parent.getInsets(); ++ ++ return new Dimension(insets.left + insets.right + xmax, ++ insets.top + insets.bottom + ymax); ++ } ++ } ++ ++ /** ++ * This is the layout manager for the recent swatch panel. ++ */ ++ static class RecentPanelLayout implements LayoutManager ++ { ++ /** ++ * This method is called when a component is added to the container. ++ * ++ * @param name The name of the component. ++ * @param comp The added component. ++ */ ++ public void addLayoutComponent(String name, Component comp) ++ { ++ // Nothing needs to be done. ++ } ++ ++ /** ++ * This method sets the size and position of the child components of the ++ * given container. ++ * ++ * @param parent The container to lay out. ++ */ ++ public void layoutContainer(Container parent) ++ { ++ Component[] comps = parent.getComponents(); ++ Dimension parentSize = parent.getSize(); ++ Insets insets = parent.getInsets(); ++ int currY = insets.top; ++ Dimension pref; ++ ++ for (int i = 0; i < comps.length; i++) ++ { ++ pref = comps[i].getPreferredSize(); ++ if (pref == null) ++ continue; ++ comps[i].setBounds(insets.left, currY, pref.width, pref.height); ++ currY += pref.height; ++ } ++ } ++ ++ /** ++ * This method calculates the minimum layout size for the given container. ++ * ++ * @param parent The container. ++ * ++ * @return The minimum layout size. ++ */ ++ public Dimension minimumLayoutSize(Container parent) ++ { ++ return preferredLayoutSize(parent); ++ } ++ ++ /** ++ * This method calculates the preferred layout size for the given ++ * container. ++ * ++ * @param parent The container. ++ * ++ * @return The preferred layout size. ++ */ ++ public Dimension preferredLayoutSize(Container parent) ++ { ++ int width = 0; ++ int height = 0; ++ Insets insets = parent.getInsets(); ++ Component[] comps = parent.getComponents(); ++ Dimension pref; ++ for (int i = 0; i < comps.length; i++) ++ { ++ pref = comps[i].getPreferredSize(); ++ if (pref != null) ++ { ++ width = Math.max(width, pref.width); ++ height += pref.height; ++ } ++ } ++ ++ return new Dimension(width + insets.left + insets.right, ++ height + insets.top + insets.bottom); ++ } ++ ++ /** ++ * This method is called whenever a component is removed from the ++ * container. ++ * ++ * @param comp The removed component. ++ */ ++ public void removeLayoutComponent(Component comp) ++ { ++ // Nothing needs to be done. ++ } ++ } ++ ++ /** ++ * Creates a new DefaultSwatchChooserPanel object. ++ */ ++ DefaultSwatchChooserPanel() ++ { ++ super(); ++ } ++ ++ /** ++ * This method updates the chooser panel with the new value from the ++ * JColorChooser. ++ */ ++ public void updateChooser() ++ { ++ } ++ ++ /** ++ * This method builds the chooser panel. ++ */ ++ protected void buildChooser() ++ { ++ // The structure of the swatch panel is: ++ // One large panel (minus the insets). ++ // Inside that panel, there are two panels, one holds the palette. ++ // The other holds the label and the recent colors palette. ++ // The two palettes are two custom swatch panels. ++ setLayout(new MainPanelLayout()); ++ ++ JPanel mainPaletteHolder = new JPanel(); ++ JPanel recentPaletteHolder = new JPanel(); ++ ++ mainPalette = new MainSwatchPanel(); ++ recentPalette = new RecentSwatchPanel(); ++ JLabel label = new JLabel("Recent:"); ++ ++ mouseHandler = new MouseHandler(); ++ mainPalette.addMouseListener(mouseHandler); ++ recentPalette.addMouseListener(mouseHandler); ++ ++ mainPaletteHolder.setLayout(new BorderLayout()); ++ mainPaletteHolder.add(mainPalette, BorderLayout.CENTER); ++ ++ recentPaletteHolder.setLayout(new RecentPanelLayout()); ++ recentPaletteHolder.add(label); ++ recentPaletteHolder.add(recentPalette); ++ ++ JPanel main = new JPanel(); ++ main.add(mainPaletteHolder); ++ main.add(recentPaletteHolder); ++ ++ this.add(main); ++ } ++ ++ /** ++ * This method removes the chooser panel from the JColorChooser. ++ * ++ * @param chooser The JColorChooser this panel is being removed from. ++ */ ++ public void uninstallChooserPanel(JColorChooser chooser) ++ { ++ recentPalette = null; ++ mainPalette = null; ++ ++ removeAll(); ++ super.uninstallChooserPanel(chooser); ++ } ++ ++ /** ++ * This method returns the JTabbedPane displayed name. ++ * ++ * @return The name displayed in the JTabbedPane. ++ */ ++ public String getDisplayName() ++ { ++ return "Swatches"; ++ } ++ ++ /** ++ * This method returns the small display icon. ++ * ++ * @return The small display icon. ++ */ ++ public Icon getSmallDisplayIcon() ++ { ++ return null; ++ } ++ ++ /** ++ * This method returns the large display icon. ++ * ++ * @return The large display icon. ++ */ ++ public Icon getLargeDisplayIcon() ++ { ++ return null; ++ } ++ ++ /** ++ * This method paints the chooser panel with the given Graphics object. ++ * ++ * @param g The Graphics object to paint with. ++ */ ++ public void paint(Graphics g) ++ { ++ super.paint(g); ++ } ++ ++ /** ++ * This method returns the tooltip text for the given MouseEvent. ++ * ++ * @param e The MouseEvent. ++ * ++ * @return The tooltip text. ++ */ ++ public String getToolTipText(MouseEvent e) ++ { ++ return null; ++ } ++} +Index: javax/swing/event/DocumentEvent.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/event/DocumentEvent.java,v +retrieving revision 1.3 +diff -u -r1.3 DocumentEvent.java +--- javax/swing/event/DocumentEvent.java 10 Jan 2004 21:07:43 -0000 1.3 ++++ javax/swing/event/DocumentEvent.java 6 Sep 2004 16:36:02 -0000 +@@ -87,68 +87,49 @@ + + } // ElementChange + +- /** +- * EventType +- */ +- class EventType { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * INSERT +- */ +- EventType INSERT = new EventType("INSERT"); // TODO +- +- /** +- * REMOVE +- */ +- EventType REMOVE = new EventType("REMOVE"); // TODO +- +- /** +- * CHANGE +- */ +- EventType CHANGE = new EventType("CHANGE"); // TODO +- +- /** +- * typeString +- */ +- private String type; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor EventType +- * @param type TODO +- */ +- private EventType(String type) { +- this.type = type; +- } // EventType() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * toString +- * @returns String +- */ +- public String toString() { +- return type; // TODO +- } // toString() +- +- +- } // EventType +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- ++ /** ++ * EventType ++ */ ++ class EventType ++ { ++ /** ++ * INSERT ++ */ ++ public static final EventType INSERT = new EventType("INSERT"); // TODO ++ ++ /** ++ * REMOVE ++ */ ++ public static final EventType REMOVE = new EventType("REMOVE"); // TODO ++ ++ /** ++ * CHANGE ++ */ ++ public static final EventType CHANGE = new EventType("CHANGE"); // TODO ++ ++ /** ++ * typeString ++ */ ++ private String type; ++ ++ /** ++ * Constructor EventType ++ * @param type TODO ++ */ ++ private EventType(String type) ++ { ++ this.type = type; ++ } ++ ++ /** ++ * toString ++ * @returns String ++ */ ++ public String toString() ++ { ++ return type; ++ } ++ } + + /** + * getType +Index: javax/swing/event/SwingPropertyChangeSupport.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/event/SwingPropertyChangeSupport.java,v +retrieving revision 1.3 +diff -u -r1.3 SwingPropertyChangeSupport.java +--- javax/swing/event/SwingPropertyChangeSupport.java 10 Jan 2004 21:07:43 -0000 1.3 ++++ javax/swing/event/SwingPropertyChangeSupport.java 6 Sep 2004 16:36:02 -0000 +@@ -210,8 +210,9 @@ + PropertyChangeListener listener; + + // Check Values if they are equal +- if (event.getOldValue() == null || event.getNewValue() == null || +- event.getOldValue().equals(event.getNewValue()) == true) { ++ if (event.getOldValue() == null && event.getNewValue() == null || ++ (event.getOldValue() != null && event.getNewValue() != null && ++ event.getOldValue().equals(event.getNewValue()))) { + return; + } // if + +Index: javax/swing/event/UndoableEditListener.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/event/UndoableEditListener.java,v +retrieving revision 1.2 +diff -u -r1.2 UndoableEditListener.java +--- javax/swing/event/UndoableEditListener.java 12 Oct 2003 13:25:59 -0000 1.2 ++++ javax/swing/event/UndoableEditListener.java 6 Sep 2004 16:36:02 -0000 +@@ -1,5 +1,5 @@ + /* UndoableEditListener.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -37,21 +37,20 @@ + + package javax.swing.event; + +-// Imports + import java.util.EventListener; + ++ + /** + * UndoableEditListener public interface + * @author Andrew Selkirk + * @author Ronald Veldema + */ +-public interface UndoableEditListener extends EventListener { +- +- /** +- * Undoable edit has happened +- * @param event Undoable Edit Event +- */ +- void undoableEditHappened(UndoableEditEvent event); +- +- +-} // UndoableEditListener ++public interface UndoableEditListener extends EventListener ++{ ++ /** ++ * Undoable edit has happened ++ * ++ * @param event Undoable Edit Event ++ */ ++ void undoableEditHappened(UndoableEditEvent event); ++} +Index: javax/swing/filechooser/FileSystemView.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/filechooser/FileSystemView.java,v +retrieving revision 1.2 +diff -u -r1.2 FileSystemView.java +--- javax/swing/filechooser/FileSystemView.java 11 Jun 2003 13:20:40 -0000 1.2 ++++ javax/swing/filechooser/FileSystemView.java 6 Sep 2004 16:36:02 -0000 +@@ -1,5 +1,5 @@ + /* FileSystemView.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -40,7 +40,6 @@ + + import java.io.File; + import java.io.IOException; +-import javax.swing.Icon; + + /** + * FileSystemView +Index: javax/swing/plaf/BorderUIResource.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/plaf/BorderUIResource.java,v +retrieving revision 1.8 +diff -u -r1.8 BorderUIResource.java +--- javax/swing/plaf/BorderUIResource.java 1 Aug 2003 20:10:21 -0000 1.8 ++++ javax/swing/plaf/BorderUIResource.java 6 Sep 2004 16:36:02 -0000 +@@ -270,6 +270,8 @@ + extends BevelBorder + implements UIResource, Serializable + { ++ private static final long serialVersionUID = -1275542891108351642L; ++ + /** + * Constructs a BevelBorderUIResource whose colors will be derived + * from the background of the enclosed component. The background +@@ -279,7 +281,7 @@ + * + *

    [An illustration showing raised and lowered BevelBorders] ++ * alt="[An illustration showing raised and lowered BevelBorders]" />

    + * + * @param bevelType the desired appearance of the border. The value + * must be either {@link javax.swing.border.BevelBorder#RAISED} +@@ -300,7 +302,7 @@ + * + *

    [An illustration showing BevelBorders that were
+-     * constructed with this method] ++ * constructed with this method]" />

    + * + * @param bevelType the desired appearance of the border. The value + * must be either {@link javax.swing.border.BevelBorder#RAISED} +@@ -340,7 +342,7 @@ + * + *

    [An illustration showing BevelBorders that
+-     * were constructed with this method] ++ * were constructed with this method]" />

    + * + * @param bevelType the desired appearance of the border. The value + * must be either {@link javax.swing.border.BevelBorder#RAISED} +@@ -399,6 +401,8 @@ + extends CompoundBorder + implements UIResource, Serializable + { ++ private static final long serialVersionUID = 7550017084975167341L; ++ + /** + * Constructs a CompoundBorderUIResource with the specified inside + * and outside borders. +@@ -432,7 +436,7 @@ + * + *

    [An illustration of EmptyBorder] ++ * alt="[An illustration of EmptyBorder]" />

    + * + * @author Brian Jones (cbj@gnu.org) + * @author Sascha Brawer (brawer@dandelis.ch) +@@ -441,6 +445,8 @@ + extends EmptyBorder + implements UIResource, Serializable + { ++ private static final long serialVersionUID = -4914187529340071708L; ++ + /** + * Constructs an empty border given the number of pixels required + * on each side. +@@ -487,7 +493,7 @@ + * + *

    [An illustration of the two EtchedBorder
+-   * variants] ++ * variants]" />

    + * + * @author Brian Jones (cbj@gnu.org) + * @author Sascha Brawer (brawer@dandelis.ch) +@@ -496,6 +502,8 @@ + extends EtchedBorder + implements UIResource, Serializable + { ++ private static final long serialVersionUID = -8186391754165296656L; ++ + /** + * Constructs an EtchedBorderUIResource that appears lowered into + * the surface. The colors will be derived from the background +@@ -514,7 +522,7 @@ + * + *

    [An illustration of the two
+-     * EtchedBorder variants] ++ * EtchedBorder variants]" />

    + * + * @param etchType the desired appearance of the border. The value + * must be either {@link javax.swing.border.EtchedBorder#RAISED} +@@ -555,7 +563,7 @@ + * + *

    [An illustration that shows which pixels get
+-     * painted in what color] ++ * painted in what color]" />

    + * + * @param etchType the desired appearance of the border. The value + * must be either {@link javax.swing.border.EtchedBorder#RAISED} +@@ -588,7 +596,7 @@ + * such as the borders provided by this class. + * + *

    [An illustration of two LineBorders] />
++   * height=

    + * + * @author Brian Jones (cbj@gnu.org) + * @author Sascha Brawer (brawer@dandelis.ch) +@@ -597,6 +605,8 @@ + extends LineBorder + implements UIResource, Serializable + { ++ private static final long serialVersionUID = -6171232338180172310L; ++ + /** + * Constructs a LineBorderUIResource given its color. The border + * will be one pixel thick and have plain corners. +@@ -643,7 +653,7 @@ + * such as the borders provided by this class. + * + *

    [An illustration of two MatteBorders] />
++   * height=

    + * + * @author Brian Jones (cbj@gnu.org) + * @author Sascha Brawer (brawer@dandelis.ch) +@@ -652,13 +662,15 @@ + extends MatteBorder + implements UIResource, Serializable + { ++ private static final long serialVersionUID = -8107923147541851122L; ++ + /** + * Constructs a MatteBorderUIResource given the width on each side + * and a fill color. + * + *

    [A picture of a MatteBorder made by this
+-     * constructor] ++ * constructor]" />

    + * + * @param top the width of the border at its top edge. + * @param left the width of the border at its left edge. +@@ -680,7 +692,7 @@ + * + *

    [A picture of a MatteBorder made by this
+-     * constructor] ++ * constructor]" />

    + * + * @param top the width of the border at its top edge. + * @param left the width of the border at its left edge. +@@ -704,7 +716,7 @@ + * + *

    [A picture of a MatteBorder made by this
+-     * constructor] ++ * constructor]" />

    + * + * @param tileIcon an icon for tiling the border area. + */ +@@ -731,6 +743,8 @@ + extends TitledBorder + implements UIResource, Serializable + { ++ private static final long serialVersionUID = 7667113547406407427L; ++ + /** + * Constructs a TitledBorderUIResource given the text of its title. + * +Index: javax/swing/plaf/ComponentUI.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/plaf/ComponentUI.java,v +retrieving revision 1.5 +diff -u -r1.5 ComponentUI.java +--- javax/swing/plaf/ComponentUI.java 1 Aug 2003 20:10:21 -0000 1.5 ++++ javax/swing/plaf/ComponentUI.java 6 Sep 2004 16:36:02 -0000 +@@ -52,7 +52,7 @@ + * + *

    [UML diagram illustrating the architecture for pluggable
+- * look and feels] ++ * look and feels]" />

    + * + *

    Components such as {@link javax.swing.JSlider} do not directly + * implement operations related to the look and feel of the user +@@ -68,14 +68,14 @@ + * services. Soon before the end of its lifecycle, the + * ComponentUI will receive an {@link #uninstallUI} + * message, at which time the ComponentUI is expected to +- * undo any changes. ++ * undo any changes.

    + * + *

    Note that the ui of a JComponent + * changes whenever the user switches between look and feels. For + * example, the ui property of a JSlider + * could change from an instance of MetalSliderUI to an + * instance of FooSliderUI. This switch can happen at any +- * time, but it will always be performed from inside the Swing thread. ++ * time, but it will always be performed from inside the Swing thread.

    + * + * @author Sascha Brawer (brawer@dandelis.ch) + */ +@@ -96,26 +96,24 @@ + * The delegate object then receives an installUI + * message. + * +- *

    This method should perform the following tasks: +- * +- *

    • Set visual properties such as borders, fonts, colors, or +- * icons. However, no change should be performed for those +- * properties whose values have been directly set by the client +- * application. To allow the distinction, LookAndFeels are expected +- * to use values that implement the {@link UIResource} marker +- * interface, such as {@link BorderUIResource} or {@link +- * ColorUIResource}.
    • ++ *

      This method should perform the following tasks:

      + * ++ *
        ++ *
      • Set visual properties such as borders, fonts, colors, or ++ * icons. However, no change should be performed for those ++ * properties whose values have been directly set by the client ++ * application. To allow the distinction, LookAndFeels are expected ++ * to use values that implement the {@link UIResource} marker ++ * interface, such as {@link BorderUIResource} or {@link ++ * ColorUIResource}.
      • + *
      • If necessary, install a {@link java.awt.LayoutManager}.
      • +- * + *
      • Embed custom sub-components. For instance, the UI delegate +- * for a {@link javax.swing.JSplitPane} might install a special +- * component for the divider.
      • +- * ++ * for a {@link javax.swing.JSplitPane} might install a special ++ * component for the divider. + *
      • Register event listeners.
      • +- * + *
      • Set up properties related to keyborad navigation, such as +- * mnemonics or focus traversal policies.
      ++ * mnemonics or focus traversal policies. ++ *
    + * + * @param c the component for which this delegate will provide + * services. +Index: javax/swing/plaf/basic/BasicArrowButton.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicArrowButton.java +diff -N javax/swing/plaf/basic/BasicArrowButton.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicArrowButton.java 6 Sep 2004 16:36:02 -0000 +@@ -0,0 +1,384 @@ ++/* BasicArrowButton.java ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.plaf.basic; ++ ++import java.awt.Color; ++import java.awt.Component; ++import java.awt.Dimension; ++import java.awt.Insets; ++import java.awt.Graphics; ++import java.awt.Polygon; ++import java.awt.Rectangle; ++import javax.swing.border.Border; ++import javax.swing.Icon; ++import javax.swing.JButton; ++import javax.swing.SwingConstants; ++ ++ ++/** ++ * This class draws simple arrow buttons for the Basic Look and Feel. ++ */ ++public class BasicArrowButton extends JButton implements SwingConstants ++{ ++ /** ++ * A private helper class that draws icons. ++ */ ++ private class arrowIcon implements Icon ++ { ++ /** The polygon that describes the icon. */ ++ private Polygon arrow; ++ ++ /** The size of the icon. */ ++ private int size = 10; ++ ++ /** ++ * Creates a new arrowIcon object using the given arrow polygon. ++ * ++ * @param arrow The polygon that describes the arrow. ++ */ ++ public arrowIcon(Polygon arrow) ++ { ++ this.arrow = arrow; ++ } ++ ++ /** ++ * Returns the height of the icon. ++ * ++ * @return The height of the icon. ++ */ ++ public int getIconHeight() ++ { ++ return size; ++ } ++ ++ /** ++ * Returns the width of the icon. ++ * ++ * @return The width of the icon. ++ */ ++ public int getIconWidth() ++ { ++ return size; ++ } ++ ++ /** ++ * Sets the size of the icon. ++ * ++ * @param size The size of the icon. ++ */ ++ public void setSize(int size) ++ { ++ this.size = size; ++ } ++ ++ /** ++ * Sets the arrow polygon. ++ * ++ * @param arrow The arrow polygon. ++ */ ++ public void setArrow(Polygon arrow) ++ { ++ this.arrow = arrow; ++ } ++ ++ /** ++ * Paints the icon. ++ * ++ * @param c The Component to paint for. ++ * @param g The Graphics object to draw with. ++ * @param x The X coordinate to draw at. ++ * @param y The Y coordinate to draw at. ++ */ ++ public void paintIcon(Component c, Graphics g, int x, int y) ++ { ++ Color arrowColor; ++ if (c.isEnabled()) ++ arrowColor = darkShadow; ++ else ++ arrowColor = shadow; ++ ++ paintIconImpl(g, x, y, arrowColor); ++ } ++ ++ /** ++ * This method does the actual painting work. ++ * ++ * @param g The Graphics object to paint with. ++ * @param x The x coordinate to paint at. ++ * @param y The y coordinate to paint at. ++ * @param arrowColor The color to paint the arrow with. ++ */ ++ public void paintIconImpl(Graphics g, int x, int y, Color arrowColor) ++ { ++ g.translate(x, y); ++ ++ Color saved = g.getColor(); ++ ++ g.setColor(arrowColor); ++ ++ g.fillPolygon(arrow); ++ ++ g.setColor(saved); ++ g.translate(-x, -y); ++ } ++ } ++ ++ /** The direction to point in. */ ++ protected int direction; ++ ++ /** The color the arrow is painted in if disabled and the bottom and ++ * right edges of the button. */ ++ private transient Color shadow = Color.gray; ++ ++ /** The color the arrow is painted in if enabled and the bottom and ++ * right edges of the button. */ ++ private transient Color darkShadow = Color.BLACK; ++ ++ /** The top and left edges of the button. */ ++ private transient Color highlight = Color.BLACK; ++ ++ /** The border around the ArrowButton. */ ++ private transient Border tmpBorder = new Border() ++ { ++ public Insets getBorderInsets(Component c) ++ { ++ return new Insets(0, 0, 0, 0); ++ } ++ ++ public boolean isBorderOpaque() ++ { ++ return false; ++ } ++ ++ public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) ++ { ++ Rectangle bounds = getBounds(); ++ ++ Color saved = g.getColor(); ++ g.setColor(highlight); ++ ++ g.drawLine(bounds.x, bounds.y, bounds.x, bounds.y + bounds.height); ++ g.drawLine(bounds.x, bounds.y, bounds.x + bounds.width, bounds.y); ++ ++ g.setColor(shadow); ++ ++ g.drawLine(bounds.x + 1, bounds.y + bounds.height - 1, ++ bounds.x + bounds.width - 1, bounds.y + bounds.height - 1); ++ g.drawLine(bounds.x + bounds.width - 1, bounds.y + 1, ++ bounds.x + bounds.width - 1, bounds.y + bounds.height - 1); ++ ++ g.setColor(darkShadow); ++ ++ g.drawLine(bounds.x, bounds.y + bounds.height, bounds.x + bounds.width, ++ bounds.y + bounds.height); ++ g.drawLine(bounds.x + bounds.width, bounds.y, bounds.x + bounds.width, ++ bounds.y + bounds.height); ++ ++ g.setColor(saved); ++ } ++ }; ++ ++ /** ++ * Creates a new BasicArrowButton object. ++ * ++ * @param direction The direction the arrow points in. ++ */ ++ public BasicArrowButton(int direction) ++ { ++ super(); ++ setDirection(direction); ++ setBorder(tmpBorder); ++ } ++ ++ /** ++ * Creates a new BasicArrowButton object with the given colors and ++ * direction. ++ * ++ * @param direction The direction to point in. ++ * @param background The background color. ++ * @param shadow The shadow color. ++ * @param darkShadow The dark shadow color. ++ * @param highlight The highlight color. ++ */ ++ public BasicArrowButton(int direction, Color background, Color shadow, ++ Color darkShadow, Color highlight) ++ { ++ this(direction); ++ setBackground(background); ++ this.shadow = shadow; ++ this.darkShadow = darkShadow; ++ this.highlight = highlight; ++ } ++ ++ /** ++ * This method returns the direction of the arrow. ++ * ++ * @return The direction of the arrow. ++ */ ++ public int getDirection() ++ { ++ return direction; ++ } ++ ++ /** ++ * This method changes the direction of the arrow. ++ * ++ * @param dir The new direction of the arrow. ++ */ ++ public void setDirection(int dir) ++ { ++ Polygon arrow = getArrow(dir, 10); ++ if (getIcon() == null) ++ setIcon(new arrowIcon(arrow)); ++ else ++ ((arrowIcon) getIcon()).setArrow(arrow); ++ this.direction = dir; ++ } ++ ++ /** ++ * This method paints the arrow button. ++ * ++ * @param g The Graphics object to paint with. ++ */ ++ public void paint(Graphics g) ++ { ++ super.paint(g); ++ } ++ ++ /** ++ * This method returns the preferred size of the arrow button. ++ * ++ * @return The preferred size. ++ */ ++ public Dimension getPreferredSize() ++ { ++ return new Dimension(getIcon().getIconWidth(), getIcon().getIconHeight()); ++ } ++ ++ /** ++ * This method returns the minimum size of the arrow button. ++ * ++ * @return The minimum size. ++ */ ++ public Dimension getMinimumSize() ++ { ++ return getPreferredSize(); ++ } ++ ++ /** ++ * This method returns the maximum size of the arrow button. ++ * ++ * @return The maximum size. ++ */ ++ public Dimension getMaximumSize() ++ { ++ return getPreferredSize(); ++ } ++ ++ /** ++ * The method paints a triangle with the given size and direction at ++ * the given x and y coordinates. ++ * ++ * @param g The Graphics object to paint with. ++ * @param x The x coordinate to paint at. ++ * @param y The y coordinate to paint at. ++ * @param size The size of the icon. ++ * @param direction The direction of the icon. ++ * @param isEnabled Whether it is enabled. ++ */ ++ public void paintTriangle(Graphics g, int x, int y, int size, int direction, ++ boolean isEnabled) ++ { ++ Polygon arrow = getArrow(direction, size); ++ arrowIcon arrowI = new arrowIcon(arrow); ++ arrowI.setSize(size); ++ ++ Color arrowColor; ++ if (isEnabled()) ++ arrowColor = darkShadow; ++ else ++ arrowColor = shadow; ++ ++ arrowI.paintIconImpl(g, x, y, arrowColor); ++ } ++ ++ /** ++ * This is a private helper that creates polygons for a given size ++ * and direction. ++ * ++ * @param direction The direction of the arrow. ++ * @param size The size of the arrow. ++ * ++ * @return A new arrow polygon. ++ */ ++ private Polygon getArrow(int direction, int size) ++ { ++ Polygon arrow; ++ double dsize = (double) size; ++ ++ int one = (int) (dsize * 1 / 10); ++ int two = (int) (dsize * 2 / 10); ++ int five = (int) (dsize * 5 / 10); ++ int eight = (int) (dsize * 8 / 10); ++ ++ switch (direction) ++ { ++ case NORTH: ++ arrow = new Polygon(new int[] { eight, five, one }, ++ new int[] { eight, one, eight }, 3); ++ break; ++ case SOUTH: ++ arrow = new Polygon(new int[] { eight, five, two }, ++ new int[] { two, eight, two }, 3); ++ break; ++ case EAST: ++ case RIGHT: ++ arrow = new Polygon(new int[] { two, eight, two }, ++ new int[] { two, five, eight }, 3); ++ break; ++ case WEST: ++ case LEFT: ++ arrow = new Polygon(new int[] { eight, two, eight }, ++ new int[] { two, five, eight }, 3); ++ break; ++ default: ++ throw new IllegalArgumentException("Invalid direction given."); ++ } ++ return arrow; ++ } ++} +Index: javax/swing/plaf/basic/BasicButtonListener.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicButtonListener.java +diff -N javax/swing/plaf/basic/BasicButtonListener.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicButtonListener.java 6 Sep 2004 16:36:02 -0000 +@@ -0,0 +1,222 @@ ++/* BasicButtonListener.java ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.plaf.basic; ++ ++import java.awt.event.ActionEvent; ++import java.awt.event.FocusEvent; ++import java.awt.event.FocusListener; ++import java.awt.event.InputEvent; ++import java.awt.event.MouseEvent; ++import java.awt.event.MouseListener; ++import java.awt.event.MouseMotionListener; ++import java.beans.PropertyChangeEvent; ++import java.beans.PropertyChangeListener; ++ ++import javax.swing.AbstractAction; ++import javax.swing.AbstractButton; ++import javax.swing.ButtonModel; ++import javax.swing.JComponent; ++import javax.swing.event.ChangeEvent; ++import javax.swing.event.ChangeListener; ++ ++public class BasicButtonListener ++ implements MouseListener, MouseMotionListener, FocusListener, ++ ChangeListener, PropertyChangeListener ++{ ++ public void propertyChange(PropertyChangeEvent e) ++ { ++ } ++ protected void checkOpacity(AbstractButton b) ++ { ++ } ++ public void focusGained(FocusEvent e) ++ { ++ if (e.getSource() instanceof AbstractButton) ++ { ++ AbstractButton button = (AbstractButton) e.getSource(); ++ if (button.isFocusPainted()) ++ button.repaint(); ++ } ++ } ++ ++ public void focusLost(FocusEvent e) ++ { ++ if (e.getSource() instanceof AbstractButton) ++ { ++ AbstractButton button = (AbstractButton) e.getSource(); ++ ButtonModel model = button.getModel(); ++ model.setArmed(false); ++ ++ if (button.isFocusPainted()) ++ button.repaint(); ++ } ++ } ++ public void installKeyboardActions(JComponent c) ++ { ++ c.getActionMap().put("pressed", ++ new AbstractAction() ++ { ++ public void actionPerformed(ActionEvent e) ++ { ++ AbstractButton button = (AbstractButton) e.getSource(); ++ ButtonModel model = button.getModel(); ++ // It is important that these transitions happen in this order. ++ model.setArmed(true); ++ model.setPressed(true); ++ } ++ }); ++ ++ c.getActionMap().put("released", ++ new AbstractAction() ++ { ++ public void actionPerformed(ActionEvent e) ++ { ++ AbstractButton button = (AbstractButton) e.getSource(); ++ ButtonModel model = button.getModel(); ++ // It is important that these transitions happen in this order. ++ model.setPressed(false); ++ model.setArmed(false); ++ } ++ }); ++ } ++ public void uninstallKeyboardActions(JComponent c) ++ { ++ c.getActionMap().put("pressed", null); ++ c.getActionMap().put("released", null); ++ } ++ public void stateChanged(ChangeEvent e) ++ { ++ } ++ public void mouseMoved(MouseEvent e) ++ { ++ } ++ public void mouseDragged(MouseEvent e) ++ { ++ } ++ public void mouseClicked(MouseEvent e) ++ { ++ } ++ ++ /** ++ * Accept a mouse press event and arm the button. ++ * ++ * @param e The mouse press event to accept ++ */ ++ public void mousePressed(MouseEvent e) ++ { ++ if (e.getSource() instanceof AbstractButton) ++ { ++ AbstractButton button = (AbstractButton) e.getSource(); ++ ButtonModel model = button.getModel(); ++ if ((e.getModifiersEx() & InputEvent.BUTTON1_DOWN_MASK) != 0) ++ { ++ // It is important that these transitions happen in this order. ++ model.setArmed(true); ++ model.setPressed(true); ++ } ++ } ++ } ++ ++ ++ /** ++ * Accept a mouse release event and set the button's ++ * "pressed" property to true, if the model ++ * is armed. If the model is not armed, ignore the event. ++ * ++ * @param e The mouse release event to accept ++ */ ++ public void mouseReleased(MouseEvent e) ++ { ++ if (e.getSource() instanceof AbstractButton) ++ { ++ AbstractButton button = (AbstractButton) e.getSource(); ++ ButtonModel model = button.getModel(); ++ if ((e.getModifiersEx() & InputEvent.BUTTON1_DOWN_MASK) != 0) ++ { ++ // It is important that these transitions happen in this order. ++ model.setPressed(false); ++ model.setArmed(false); ++ } ++ } ++ } ++ ++ ++ /** ++ * Accept a mouse enter event and set the button's "rollover" property to ++ * true, if the button's "rolloverEnabled" property is ++ * true. If the button is currently armed and the mouse ++ * button is not held down, this enter event will also disarm the model. ++ * ++ * @param e The mouse enter event to accept ++ */ ++ public void mouseEntered(MouseEvent e) ++ { ++ if (e.getSource() instanceof AbstractButton) ++ { ++ AbstractButton button = (AbstractButton) e.getSource(); ++ ButtonModel model = button.getModel(); ++ if (button.isRolloverEnabled()) ++ model.setRollover(true); ++ ++ if (model.isPressed() ++ && (e.getModifiersEx() & InputEvent.BUTTON1_DOWN_MASK) != 0) ++ model.setArmed(true); ++ else ++ model.setArmed(false); ++ } ++ } ++ ++ /** ++ * Accept a mouse exit event and set the button's model's "rollover" ++ * property to false, if it's "rolloverEnabled" property is ++ * true. Also disarm the button. ++ * ++ * @param e The mouse exit event to accept ++ */ ++ public void mouseExited(MouseEvent e) ++ { ++ if (e.getSource() instanceof AbstractButton) ++ { ++ AbstractButton button = (AbstractButton) e.getSource(); ++ ButtonModel model = button.getModel(); ++ if (button.isRolloverEnabled()) ++ model.setRollover(false); ++ model.setArmed(false); ++ } ++ } ++} +Index: javax/swing/plaf/basic/BasicButtonUI.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/plaf/basic/BasicButtonUI.java,v +retrieving revision 1.4 +diff -u -r1.4 BasicButtonUI.java +--- javax/swing/plaf/basic/BasicButtonUI.java 10 Jan 2004 21:59:30 -0000 1.4 ++++ javax/swing/plaf/basic/BasicButtonUI.java 6 Sep 2004 16:36:02 -0000 +@@ -35,182 +35,379 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing.plaf.basic; + ++import java.awt.BasicStroke; + import java.awt.Color; + import java.awt.Dimension; + import java.awt.Font; + import java.awt.FontMetrics; + import java.awt.Graphics; +-import java.awt.Insets; ++import java.awt.Graphics2D; + import java.awt.Rectangle; ++import java.awt.Stroke; ++ + import javax.swing.AbstractButton; ++import javax.swing.ButtonModel; ++import javax.swing.Icon; ++import javax.swing.InputMap; + import javax.swing.JComponent; + import javax.swing.SwingUtilities; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; + import javax.swing.plaf.ButtonUI; + import javax.swing.plaf.ComponentUI; + + public class BasicButtonUI extends ButtonUI + { +- int gap = 3; +- // int y_text_space = 2, x_text_space + 5; +- +- Color textColor, disabledTextColor; +- Color pressedBackgroundColor; +- Color normalBackgroundColor; +- +- +- public static ComponentUI createUI(final JComponent c) +- { +- return new BasicButtonUI(); +- } +- +- +- public void installUI(final JComponent c) +- { +- super.installUI(c); +- +- textColor = new Color(0,0,0); +- disabledTextColor = new Color(130, 130, 130); +- pressedBackgroundColor = new Color(150,150,150); +- pressedBackgroundColor = new Color(150,150,150); +- normalBackgroundColor = new Color(192,192,192); +- } ++ /** ++ * A constant used to pad out elements in the button's layout and ++ * preferred size calculations. ++ */ ++ protected int defaultTextIconGap = 4; ++ ++ /** ++ * A constant added to the defaultTextIconGap to adjust the text ++ * within this particular button. ++ */ ++ protected int defaultTextShiftOffset = 0; ++ ++ private int textShiftOffset; ++ ++ private Color focusColor; ++ ++ /** ++ * Factory method to create an instance of BasicButtonUI for a given ++ * {@link JComponent}, which should be an {@link AbstractButton}. ++ * ++ * @param c The component to create a UI got ++ * ++ * @return A new UI capable of drawing the component ++ */ ++ public static ComponentUI createUI(final JComponent c) ++ { ++ return new BasicButtonUI(); ++ } ++ ++ public int getDefaultTextIconGap(AbstractButton b) ++ { ++ return defaultTextIconGap; ++ } ++ ++ protected void clearTextShiftOffset() ++ { ++ textShiftOffset = 0; ++ } ++ ++ protected int getTextShiftOffset() ++ { ++ return textShiftOffset; ++ } ++ ++ protected void setTextShiftOffset() ++ { ++ textShiftOffset = defaultTextShiftOffset; ++ } ++ ++ protected void installDefaults(AbstractButton b) ++ { ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ focusColor = defaults.getColor("Button.focus"); ++ b.setForeground(defaults.getColor("Button.foreground")); ++ b.setBackground(defaults.getColor("Button.background")); ++ b.setMargin(defaults.getInsets("Button.margin")); ++ b.setBorder(defaults.getBorder("Button.border")); ++ b.setIconTextGap(defaults.getInt("Button.textIconGap")); ++ b.setInputMap(JComponent.WHEN_FOCUSED, ++ (InputMap) defaults.get("Button.focusInputMap")); ++ b.setOpaque(true); ++ } ++ ++ protected void uninstallDefaults(AbstractButton b) ++ { ++ b.setForeground(null); ++ b.setBackground(null); ++ b.setBorder(null); ++ b.setIconTextGap(defaultTextIconGap); ++ b.setMargin(null); ++ } ++ ++ protected BasicButtonListener listener; ++ ++ protected BasicButtonListener createButtonListener(AbstractButton b) ++ { ++ return new BasicButtonListener(); ++ } ++ ++ public void installListeners(AbstractButton b) ++ { ++ listener = createButtonListener(b); ++ b.addChangeListener(listener); ++ b.addPropertyChangeListener(listener); ++ b.addFocusListener(listener); ++ b.addMouseListener(listener); ++ b.addMouseMotionListener(listener); ++ } ++ ++ public void uninstallListeners(AbstractButton b) ++ { ++ b.removeChangeListener(listener); ++ b.removePropertyChangeListener(listener); ++ b.removeFocusListener(listener); ++ b.removeMouseListener(listener); ++ b.removeMouseMotionListener(listener); ++ } ++ ++ protected void installKeyboardActions(AbstractButton b) ++ { ++ listener.installKeyboardActions(b); ++ } ++ ++ protected void uninstallKeyboardActions(AbstractButton b) ++ { ++ listener.uninstallKeyboardActions(b); ++ } ++ ++ /** ++ * Install the BasicButtonUI as the UI for a particular component. ++ * This means registering all the UI's listeners with the component, ++ * and setting any properties of the button which are particular to ++ * this look and feel. ++ * ++ * @param c The component to install the UI into ++ */ ++ public void installUI(final JComponent c) ++ { ++ super.installUI(c); ++ if (c instanceof AbstractButton) ++ { ++ AbstractButton b = (AbstractButton) c; ++ installDefaults(b); ++ installListeners(b); ++ installKeyboardActions(b); ++ } ++ } ++ ++ /** ++ * Calculate the preferred size of this component, by delegating to ++ * {@link BasicGraphicsUtils.getPreferredButtonSize}. ++ * ++ * @param c The component to measure ++ * ++ * @return The preferred dimensions of the component ++ */ ++ public Dimension getPreferredSize(JComponent c) ++ { ++ AbstractButton b = (AbstractButton)c; ++ Dimension d = ++ BasicGraphicsUtils.getPreferredButtonSize ++ (b, defaultTextIconGap + defaultTextShiftOffset); ++ return d; ++ } ++ ++ static private Icon currentIcon(AbstractButton b) ++ { ++ Icon i = b.getIcon(); ++ ButtonModel model = b.getModel(); ++ ++ if (model.isPressed() && b.getPressedIcon() != null) ++ i = b.getPressedIcon(); ++ ++ else if (model.isRollover()) ++ { ++ if (b.isSelected() && b.getRolloverSelectedIcon() != null) ++ i = b.getRolloverSelectedIcon(); ++ else if (b.getRolloverIcon() != null) ++ i = b.getRolloverIcon(); ++ } ++ ++ else if (b.isSelected()) ++ { ++ if (b.isEnabled() && b.getSelectedIcon() != null) ++ i = b.getSelectedIcon(); ++ else if (b.getDisabledSelectedIcon() != null) ++ i = b.getDisabledSelectedIcon(); ++ } ++ ++ else if (! b.isEnabled() && b.getDisabledIcon() != null) ++ i = b.getDisabledIcon(); ++ ++ return i; ++ } ++ ++ /** ++ * Paint the component, which is an {@link AbstractButton}, according to ++ * its current state. ++ * ++ * @param g The graphics context to paint with ++ * @param c The component to paint the state of ++ */ ++ public void paint(Graphics g, JComponent c) ++ { ++ AbstractButton b = (AbstractButton) c; ++ ++ Rectangle tr = new Rectangle(); ++ Rectangle ir = new Rectangle(); ++ Rectangle vr = new Rectangle(); ++ Rectangle br = new Rectangle(); ++ ++ Font f = c.getFont(); ++ ++ g.setFont(f); ++ ++ SwingUtilities.calculateInnerArea(b, br); ++ SwingUtilities.calculateInsetArea(br, b.getMargin(), vr); ++ String text = SwingUtilities.layoutCompoundLabel(c, g.getFontMetrics(f), ++ b.getText(), ++ currentIcon(b), ++ b.getVerticalAlignment(), ++ b.getHorizontalAlignment(), ++ b.getVerticalTextPosition(), ++ b.getHorizontalTextPosition(), ++ vr, ir, tr, ++ b.getIconTextGap() ++ + defaultTextShiftOffset); + +- +- public Dimension getPreferredSize(JComponent c) +- { +- AbstractButton b = (AbstractButton)c; +- Dimension d = BasicGraphicsUtils.getPreferredButtonSize(b, gap); +- // System.out.println("^^^^^^^^^^^^^^^^^^^^^^ BASIC-PREF="+d + ",T="+b.text); +- return d; +- } +- +- +- public void paint(Graphics g, JComponent c) +- { +- AbstractButton b = (AbstractButton) c; +- +- Rectangle tr = new Rectangle(); +- Rectangle ir = new Rectangle(); +- Rectangle vr = new Rectangle(); +- +- Font f = c.getFont(); +- +- g.setFont(f); +- +- FontMetrics fm = g.getFontMetrics(f); +- +- Insets i = c.getInsets(); +- +- vr.x = i.left; +- vr.y = i.top; +- vr.width = b.getWidth() - (i.right + vr.x); +- vr.height = b.getHeight() - (i.bottom + vr.y); +- +- //System.out.println(" VIEW-RECT-BUTTON="+vr+", insets="+i+", FONTM="+fm); ++ if ((b.getModel().isArmed() && b.getModel().isPressed()) ++ || b.isSelected()) ++ paintButtonPressed(g, b); ++ else ++ paintButtonNormal(g, br, c); + +- String text = SwingUtilities.layoutCompoundLabel(c, +- fm, +- b.getText(), +- b.getIcon(), +- b.getVerticalAlignment(), +- b.getHorizontalAlignment(), +- b.getVerticalTextPosition(), +- b.getHorizontalTextPosition(), +- vr, +- ir, +- tr, +- gap); +- +- if (b.getModel().isPressed() || +- b.getModel().isSelected()) +- { +- //System.out.println("paint pressed"); +- paintButtonPressed(g, c); +- } +- else +- { +- //System.out.println("paint normal"); +- paintButtonNormal(g, c); +- } +- +- paintIcon(g, c, ir); +- paintText(g, c, tr, b.getText()); +- paintFocus(g, c, vr, tr, ir); +- } +- +- +- protected void paintFocus(Graphics g, +- JComponent c, +- Rectangle vr, +- Rectangle tr, +- Rectangle ir) +- { +- } +- +- protected void paintIcon(Graphics g, +- JComponent c, +- Rectangle iconRect) +- { +- AbstractButton b = (AbstractButton) c; +- if (b.getIcon() != null) +- { +- int x = iconRect.x; +- int y = iconRect.y; +- +- System.out.println("WE HAVE AN ICON: " + b.getIcon()); +- +- b.getIcon().paintIcon(c, g, x, y); +- } +- else +- { +- //System.out.println("NO ICON FOR BUTTON:" + b.text); +- } +- } +- +- protected void paintButtonPressed(Graphics g, +- JComponent b) +- { +- Dimension size = b.getSize(); +- +- g.setColor(pressedBackgroundColor); +- g.fillRect(1,1,size.width-2, size.height-2); +- +- } ++ paintIcon(g, c, ir); ++ if (text != null) ++ paintText(g, b, tr, text); ++ paintFocus(g, b, vr, tr, ir); ++ } ++ ++ /** ++ * Paint any focus decoration this {@link JComponent} might have. The ++ * component, which in this case will be an {@link AbstractButton}, ++ * should only have focus decoration painted if it has the focus, and its ++ * "focusPainted" property is true. ++ * ++ * @param g Graphics context to paint with ++ * @param b Button to paint the focus of ++ * @param vr Visible rectangle, the area in which to paint ++ * @param tr Text rectangle, contained in visible rectangle ++ * @param ir Icon rectangle, contained in visible rectangle ++ * ++ * @see AbstractButton.isFocusPainted() ++ * @see JComponent.hasFocus() ++ */ ++ protected void paintFocus(Graphics g, AbstractButton b, Rectangle vr, ++ Rectangle tr, Rectangle ir) ++ { ++ if (b.hasFocus() && b.isFocusPainted()) ++ { ++ Color saved_color = g.getColor(); ++ g.setColor(focusColor); ++ Rectangle focusRect = ir.union(tr); ++ g.drawRect(focusRect.x, focusRect.y, ++ focusRect.width, focusRect.height); ++ g.setColor(saved_color); ++ } ++ } ++ ++ /** ++ * Paint the icon for this component. Depending on the state of the ++ * component and the availability of the button's various icon ++ * properties, this might mean painting one of several different icons. ++ * ++ * @param g Graphics context to paint with ++ * @param c Component to paint the icon of ++ * @param iconRect Rectangle in which the icon should be painted ++ */ ++ protected void paintIcon(Graphics g, JComponent c, Rectangle iconRect) ++ { ++ AbstractButton b = (AbstractButton) c; ++ Icon i = currentIcon(b); ++ ++ if (i != null) ++ i.paintIcon(c, g, iconRect.x, iconRect.y); ++ } ++ ++ /** ++ * Paints the background area of an {@link AbstractButton} in the pressed ++ * state. This means filling the supplied area with the {@link ++ * pressedBackgroundColor}. ++ * ++ * @param g The graphics context to paint with ++ * @param b The button to paint the state of ++ */ ++ protected void paintButtonPressed(Graphics g, AbstractButton b) ++ { ++ if (b.isContentAreaFilled()) ++ { ++ Rectangle area = new Rectangle(); ++ SwingUtilities.calculateInnerArea(b, area); ++ g.setColor(b.getBackground().darker()); ++ g.fillRect(area.x, area.y, area.width, area.height); ++ } ++ } + +- protected void paintButtonNormal(Graphics g, +- JComponent b) +- { +- Dimension size = b.getSize(); +- +- g.setColor(normalBackgroundColor); +- g.fillRect(1,1,size.width-2, size.height-2); +- +- } ++ /** ++ * Paints the background area of an {@link AbstractButton} in the normal, ++ * non-pressed state. This means filling the supplied area with the ++ * {@link normalBackgroundColor}. ++ * ++ * @param g The graphics context to paint with ++ * @param area The area in which to paint ++ * @param b The component to paint the state of ++ */ ++ private void paintButtonNormal(Graphics g, Rectangle area, JComponent b) ++ { ++ if (((AbstractButton)b).isContentAreaFilled() && b.isOpaque()) ++ { ++ g.setColor(b.getBackground()); ++ g.fillRect(area.x, area.y, area.width, area.height); ++ } ++ } + +- protected void paintText(Graphics g, +- JComponent c, +- Rectangle textRect, +- String text) +- { +- Font f = c.getFont(); +- +- g.setFont(f); +- +- FontMetrics fm = g.getFontMetrics(f); +- +- g.setColor(c.isEnabled() ? textColor : disabledTextColor); +- +- BasicGraphicsUtils.drawString(g, +- text, +- 0, +- textRect.x, +- textRect.y + fm.getAscent()/2); +- } ++ /** ++ * Paints the "text" property of an {@link AbstractButton}, using the ++ * {@link textColor} color. ++ * ++ * @param g The graphics context to paint with ++ * @param c The component to paint the state of ++ * @param textRect The area in which to paint the text ++ * @param text The text to paint ++ */ ++ protected void paintText(Graphics g, JComponent c, Rectangle textRect, ++ String text) ++ { ++ paintText(g, (AbstractButton) c, textRect, text); ++ } ++ ++ /** ++ * Paints the "text" property of an {@link AbstractButton}, using the ++ * {@link textColor} color. ++ * ++ * @param g The graphics context to paint with ++ * @param b The button to paint the state of ++ * @param textRect The area in which to paint the text ++ * @param text The text to paint ++ * ++ * @since 1.4 ++ */ ++ protected void paintText(Graphics g, AbstractButton b, Rectangle textRect, ++ String text) ++ { ++ Font f = b.getFont(); ++ g.setFont(f); ++ FontMetrics fm = g.getFontMetrics(f); ++ ++ if (b.isEnabled()) ++ { ++ g.setColor(b.getForeground()); ++ g.drawString(text, textRect.x, textRect.y + fm.getAscent()); ++ } ++ else ++ { ++ g.setColor(b.getBackground().brighter()); ++ g.drawString(text, textRect.x, textRect.y + fm.getAscent()); ++ g.setColor(b.getBackground().darker()); ++ g.drawString(text, textRect.x + 1, textRect.y + fm.getAscent() + 1); ++ } ++ } + } +- +- +- +- +Index: javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java +diff -N javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java 6 Sep 2004 16:36:02 -0000 +@@ -0,0 +1,103 @@ ++/* BasicCheckBoxMenuItemUI.java ++ Copyright (C) 2002, 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.plaf.basic; ++ ++import java.awt.event.MouseEvent; ++import javax.swing.JComponent; ++import javax.swing.JMenuItem; ++import javax.swing.MenuElement; ++import javax.swing.MenuSelectionManager; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; ++import javax.swing.plaf.ComponentUI; ++ ++ ++/** ++ * DOCUMENT ME! ++ */ ++public class BasicCheckBoxMenuItemUI extends BasicMenuItemUI ++{ ++ /** ++ * Factory method to create a BasicCheckBoxMenuItemUI for the given {@link ++ * JComponent}, which should be a JCheckBoxMenuItem ++ * ++ * @param c The {@link JComponent} a UI is being created for. ++ * ++ * @return A BasicCheckBoxMenuItemUI for the {@link JComponent}. ++ */ ++ public static ComponentUI createUI(final JComponent c) ++ { ++ return new BasicCheckBoxMenuItemUI(); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return $returnType$ DOCUMENT ME! ++ */ ++ protected String getPropertyPrefix() ++ { ++ return null; ++ } ++ ++ /** ++ * This method installs the defaults that are defined in the Basic look and ++ * feel for this JRadioButtonMenuItem ++ */ ++ protected void installDefaults() ++ { ++ super.installDefaults(); ++ ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ checkIcon = defaults.getIcon("CheckBoxMenuItem.checkIcon"); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param item DOCUMENT ME! ++ * @param e DOCUMENT ME! ++ * @param path DOCUMENT ME! ++ * @param manager DOCUMENT ME! ++ */ ++ public void processMouseEvent(JMenuItem item, MouseEvent e, ++ MenuElement[] path, ++ MenuSelectionManager manager) ++ { ++ } ++} +Index: javax/swing/plaf/basic/BasicCheckBoxUI.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/plaf/basic/BasicCheckBoxUI.java,v +retrieving revision 1.4 +diff -u -r1.4 BasicCheckBoxUI.java +--- javax/swing/plaf/basic/BasicCheckBoxUI.java 10 Jan 2004 21:59:30 -0000 1.4 ++++ javax/swing/plaf/basic/BasicCheckBoxUI.java 6 Sep 2004 16:36:02 -0000 +@@ -38,82 +38,28 @@ + + package javax.swing.plaf.basic; + +-import java.awt.Component; +-import java.awt.Dimension; +-import java.awt.Graphics; +-import java.awt.Rectangle; +-import javax.swing.AbstractButton; ++import javax.swing.Icon; + import javax.swing.JComponent; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; + import javax.swing.plaf.ComponentUI; + + public class BasicCheckBoxUI extends BasicRadioButtonUI + { +- public static ComponentUI createUI(final JComponent c) { +- return new BasicCheckBoxUI(); +- } +- +- +- public void installUI(final JComponent c) { +- super.installUI(c); +- } +- +- public Dimension getPreferredSize(JComponent c) +- { +- AbstractButton b = (AbstractButton)c; +- Dimension d = BasicGraphicsUtils.getPreferredButtonSize(b, gap); +- //System.out.println("^^^^^^^^^^^^^^^^^^^^^^ BASIC-PREF="+d + ",T="+b.text); +- return d; +- } +- +- protected void paintFocus(Graphics g, +- JComponent c, +- Rectangle vr, +- Rectangle tr, +- Rectangle ir) +- { +- } +- +- protected void paintIcon(Graphics g, +- JComponent c, +- Rectangle iconRect) +- { +- } +- +- protected void paintButtonPressed(Graphics g, +- JComponent b) +- { +- Dimension size = b.getSize(); +- +- g.setColor(pressedBackgroundColor); +- g.fillRect(1,1,size.width-2, size.height-2); +- +- } +- +- protected void paintButtonNormal(Graphics g, +- JComponent b) +- { +- Dimension size = b.getSize(); +- +- g.setColor(normalBackgroundColor); +- g.fillRect(1,1,size.width-2, size.height-2); +- +- } +- protected void paintText(Graphics g, +- JComponent c, +- Rectangle textRect, +- String text) +- { +- // AbstractButton b = (AbstractButton) c; +- +- // System.out.println("drawing string: " + text + ", at:" + textRect); +- +- g.setColor(textColor); +- BasicGraphicsUtils.drawString(g, +- text, +- 0, +- textRect.x, +- textRect.y); +- } ++ ++ public static ComponentUI createUI(final JComponent c) { ++ return new BasicCheckBoxUI(); ++ } ++ ++ public Icon getDefaultIcon() ++ { ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ return defaults.getIcon("CheckBox.icon"); ++ } ++ ++ public void installUI(final JComponent c) { ++ super.installUI(c); ++ } + } + + +Index: javax/swing/plaf/basic/BasicColorChooserUI.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicColorChooserUI.java +diff -N javax/swing/plaf/basic/BasicColorChooserUI.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicColorChooserUI.java 6 Sep 2004 16:36:03 -0000 +@@ -0,0 +1,338 @@ ++/* BasicColorChooserUI.java ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.plaf.basic; ++ ++import java.awt.BorderLayout; ++import java.awt.Component; ++import java.awt.Container; ++import java.awt.Dimension; ++import java.awt.Insets; ++import java.awt.LayoutManager; ++import java.awt.Rectangle; ++import java.beans.PropertyChangeEvent; ++import java.beans.PropertyChangeListener; ++import javax.swing.JColorChooser; ++import javax.swing.JComponent; ++import javax.swing.JPanel; ++import javax.swing.JTabbedPane; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; ++import javax.swing.colorchooser.AbstractColorChooserPanel; ++import javax.swing.colorchooser.ColorChooserComponentFactory; ++import javax.swing.event.ChangeEvent; ++import javax.swing.event.ChangeListener; ++import javax.swing.plaf.ColorChooserUI; ++import javax.swing.plaf.ComponentUI; ++ ++ ++/** ++ * This is the UI Class for the JColorChooser in the Basic Look and Feel. ++ */ ++public class BasicColorChooserUI extends ColorChooserUI ++{ ++ /** ++ * This helper class handles property changes from the JColorChooser. ++ */ ++ public class PropertyHandler implements PropertyChangeListener ++ { ++ /** ++ * This method is called when any of the properties of the JColorChooser ++ * change. ++ * ++ * @param e The PropertyChangeEvent. ++ */ ++ public void propertyChange(PropertyChangeEvent e) ++ { ++ if (e.getPropertyName() == JColorChooser.CHOOSER_PANELS_PROPERTY) ++ makeTabs(chooser.getChooserPanels()); ++ else if (e.getPropertyName() == JColorChooser.PREVIEW_PANEL_PROPERTY) ++ updatePreviewPanel(chooser.getPreviewPanel()); ++ else if (e.getPropertyName() == JColorChooser.SELECTION_MODEL_PROPERTY) ++ ((AbstractColorChooserPanel) pane.getSelectedComponent()) ++ .updateChooser(); ++ ++ chooser.repaint(); ++ } ++ } ++ ++ /** ++ * This is a helper class that listens to the Model of the JColorChooser for ++ * color change events so it can update the preview panel. ++ */ ++ private class PreviewListener implements ChangeListener ++ { ++ /** ++ * This method is called whenever the JColorChooser's color changes. ++ * ++ * @param e The ChangeEvent. ++ */ ++ public void stateChanged(ChangeEvent e) ++ { ++ if (pane != null) ++ { ++ AbstractColorChooserPanel panel = (AbstractColorChooserPanel) pane ++ .getSelectedComponent(); ++ if (panel != null) ++ panel.updateChooser(); ++ } ++ chooser.repaint(); ++ } ++ } ++ ++ /** ++ * This helper class listens to the JTabbedPane that is used for tab ++ * changes. ++ */ ++ private class TabPaneListener implements ChangeListener ++ { ++ /** ++ * This method is called whenever a different tab is selected in the ++ * JTabbedPane. ++ * ++ * @param e The ChangeEvent. ++ */ ++ public void stateChanged(ChangeEvent e) ++ { ++ // Need to do this because we don't update all the tabs when they're not ++ // visible, so they are not informed of new colors when they're hidden. ++ AbstractColorChooserPanel comp = (AbstractColorChooserPanel) pane ++ .getSelectedComponent(); ++ comp.updateChooser(); ++ } ++ } ++ ++ /** An array of default choosers to use in the JColorChooser. */ ++ protected AbstractColorChooserPanel[] defaultChoosers; ++ ++ /** The listener for the preview panel. */ ++ protected ChangeListener previewListener; ++ ++ /** The PropertyChangeListener for the JColorChooser. */ ++ protected PropertyChangeListener propertyChangeListener; ++ ++ /** The JColorChooser. */ ++ private JColorChooser chooser; ++ ++ /** The JTabbedPane that is used. */ ++ private JTabbedPane pane; ++ ++ /** The Container that holds the preview panel. */ ++ private Container prevContainer; ++ ++ /** ++ * Creates a new BasicColorChooserUI object. ++ */ ++ public BasicColorChooserUI() ++ { ++ super(); ++ } ++ ++ /** ++ * This method creates a new UI Component for the given JComponent. ++ * ++ * @param c The JComponent to create an UI for. ++ * ++ * @return A new BasicColorChooserUI. ++ */ ++ public static ComponentUI createUI(JComponent c) ++ { ++ return new BasicColorChooserUI(); ++ } ++ ++ /** ++ * This method creates the default chooser panels for the JColorChooser. ++ * ++ * @return The default chooser panels. ++ */ ++ protected AbstractColorChooserPanel[] createDefaultChoosers() ++ { ++ return ColorChooserComponentFactory.getDefaultChooserPanels(); ++ } ++ ++ /** ++ * This method installs the UI Component for the given JComponent. ++ * ++ * @param c The JComponent to install this UI for. ++ */ ++ public void installUI(JComponent c) ++ { ++ if (c instanceof JColorChooser) ++ { ++ chooser = (JColorChooser) c; ++ chooser.setLayout(new BorderLayout()); ++ ++ // Do this first, so we avoid doing work for property change events. ++ defaultChoosers = createDefaultChoosers(); ++ chooser.setChooserPanels(defaultChoosers); ++ pane = new JTabbedPane(); ++ ++ pane.addChangeListener(new ChangeListener() ++ { ++ public void stateChanged(ChangeEvent e) ++ { ++ pane.repaint(); ++ } ++ }); ++ ++ makeTabs(defaultChoosers); ++ ++ chooser.add(pane, BorderLayout.NORTH); ++ ++ installPreviewPanel(); ++ ++ installDefaults(); ++ installListeners(); ++ } ++ } ++ ++ /** ++ * This method adds tabs to the JTabbedPane for the chooserPanels defined in ++ * the JColorChooser. ++ * ++ * @param panels The Panels that need tabs to be made for them. ++ */ ++ private void makeTabs(AbstractColorChooserPanel[] panels) ++ { ++ pane.removeAll(); ++ for (int i = 0; i < panels.length; i++) ++ pane.addTab(panels[i].getDisplayName(), panels[i].getSmallDisplayIcon(), ++ panels[i]); ++ } ++ ++ /** ++ * This method uninstalls this UI for the given JComponent. ++ * ++ * @param c The JComponent that will have this UI removed. ++ */ ++ public void uninstallUI(JComponent c) ++ { ++ uninstallListeners(); ++ uninstallDefaults(); ++ ++ pane = null; ++ chooser = null; ++ } ++ ++ /** ++ * This method installs the preview panel for the JColorChooser. ++ */ ++ protected void installPreviewPanel() ++ { ++ updatePreviewPanel(ColorChooserComponentFactory.getPreviewPanel()); ++ } ++ ++ /** ++ * This is a helper method that swaps the existing preview panel with the ++ * given panel. ++ * ++ * @param preview The new preview panel. ++ */ ++ private void updatePreviewPanel(JComponent preview) ++ { ++ if (prevContainer == null) ++ { ++ prevContainer = new JPanel(); ++ prevContainer.setLayout(new BorderLayout()); ++ chooser.add(prevContainer, BorderLayout.CENTER); ++ } ++ prevContainer.removeAll(); ++ prevContainer.add(preview, BorderLayout.CENTER); ++ } ++ ++ /** ++ * This method installs the default properties given by the Basic Look and ++ * Feel. ++ */ ++ protected void installDefaults() ++ { ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ ++ chooser.setFont(defaults.getFont("ColorChooser.font")); ++ chooser.setForeground(defaults.getColor("ColorChooser.foreground")); ++ chooser.setBackground(defaults.getColor("ColorChooser.background")); ++ } ++ ++ /** ++ * This method uninstalls the default properties given by the Basic Look and ++ * Feel. ++ */ ++ protected void uninstallDefaults() ++ { ++ chooser.setBackground(null); ++ chooser.setForeground(null); ++ chooser.setFont(null); ++ } ++ ++ /** ++ * This method installs any listeners required for this UI to function. ++ */ ++ protected void installListeners() ++ { ++ propertyChangeListener = createPropertyChangeListener(); ++ previewListener = new PreviewListener(); ++ ++ chooser.addPropertyChangeListener(propertyChangeListener); ++ chooser.getSelectionModel().addChangeListener(previewListener); ++ ++ pane.addChangeListener(new TabPaneListener()); ++ } ++ ++ /** ++ * This method creates the PropertyChangeListener used for listening to the ++ * JColorChooser. ++ * ++ * @return A PropertyChangeListener. ++ */ ++ protected PropertyChangeListener createPropertyChangeListener() ++ { ++ return new PropertyHandler(); ++ } ++ ++ /** ++ * This method uninstalls any listeners that were previously installed by ++ * the UI. ++ */ ++ protected void uninstallListeners() ++ { ++ chooser.removePropertyChangeListener(propertyChangeListener); ++ chooser.getSelectionModel().removeChangeListener(previewListener); ++ ++ previewListener = null; ++ propertyChangeListener = null; ++ } ++} +Index: javax/swing/plaf/basic/BasicComboBoxEditor.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicComboBoxEditor.java +diff -N javax/swing/plaf/basic/BasicComboBoxEditor.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicComboBoxEditor.java 6 Sep 2004 16:36:03 -0000 +@@ -0,0 +1,170 @@ ++/* BasicComboBoxEditor.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.plaf.basic; ++ ++import java.awt.Component; ++import java.awt.event.ActionListener; ++import java.awt.event.FocusEvent; ++import java.awt.event.FocusListener; ++import javax.swing.ComboBoxEditor; ++import javax.swing.JTextField; ++import javax.swing.border.EmptyBorder; ++import javax.swing.plaf.UIResource; ++ ++ ++/** ++ * This is a component that is responsible for displaying/editting selected ++ * item in comboBox. By default, the JTextField is returned as ++ * BasicComboBoxEditor. ++ * ++ * @author Olga Rodimina ++ */ ++public class BasicComboBoxEditor extends Object implements ComboBoxEditor, ++ FocusListener ++{ ++ protected JTextField editor; ++ ++ /** ++ * Creates a new BasicComboBoxEditor object. ++ */ ++ public BasicComboBoxEditor() ++ { ++ editor = new JTextField(); ++ editor.setBorder(new EmptyBorder(1, 1, 1, 1)); ++ } ++ ++ /** ++ * This method returns textfield that will be used by the combo box to ++ * display/edit currently selected item in the combo box. ++ * ++ * @return textfield that will be used by the combo box to display/edit ++ * currently selected item ++ */ ++ public Component getEditorComponent() ++ { ++ return editor; ++ } ++ ++ /** ++ * Sets item that should be editted when any editting operation is performed ++ * by the user. The value is always equal to the currently selected value ++ * in the combo box. Thus whenever a different value is selected from the ++ * combo box list then this method should be called to change editting ++ * item to the new selected item. ++ * ++ * @param selectedItem item that is currently selected in the combo box ++ */ ++ public void setItem(Object item) ++ { ++ editor.setText(item.toString()); ++ } ++ ++ /** ++ * This method returns item that is currently editable. ++ * ++ * @return item in the combo box that is currently editable ++ */ ++ public Object getItem() ++ { ++ return editor.getText(); ++ } ++ ++ public void selectAll() ++ { ++ editor.selectAll(); ++ } ++ ++ /** ++ * This method is called when textfield gains focus. This will enable ++ * editing of the selected item. ++ * ++ * @param e the FocusEvent describing change in focus. ++ */ ++ public void focusGained(FocusEvent e) ++ { ++ // FIXME: Need to implement ++ } ++ ++ /** ++ * This method is called when textfield loses focus. If during this time any ++ * editting operation was performed by the user, then it will be cancelled ++ * and selected item will not be changed. ++ * ++ * @param e the FocusEvent describing change in focus ++ */ ++ public void focusLost(FocusEvent e) ++ { ++ // FIXME: Need to implement ++ } ++ ++ /** ++ * This method adds actionListener to the editor. If the user will edit ++ * currently selected item in the textfield and pressEnter, then action ++ * will be performed. The actionPerformed of this ActionListener should ++ * change the selected item of the comboBox to the newly editted selected ++ * item. ++ * ++ * @param l the ActionListener responsible for changing selected item of the ++ * combo box when it is editted by the user. ++ */ ++ public void addActionListener(ActionListener l) ++ { ++ // FIXME: Need to implement ++ } ++ ++ /** ++ * This method removes actionListener from the textfield. ++ * ++ * @param l the ActionListener to remove from the textfield. ++ */ ++ public void removeActionListener(ActionListener l) ++ { ++ // FIXME: Need to implement ++ } ++ ++ public static class UIResource extends BasicComboBoxEditor ++ implements javax.swing.plaf.UIResource ++ { ++ /** ++ * Creates a new UIResource object. ++ */ ++ public UIResource() ++ { ++ } ++ } ++} +Index: javax/swing/plaf/basic/BasicComboBoxRenderer.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicComboBoxRenderer.java +diff -N javax/swing/plaf/basic/BasicComboBoxRenderer.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicComboBoxRenderer.java 6 Sep 2004 16:36:03 -0000 +@@ -0,0 +1,143 @@ ++/* BasicComboBoxRenderer.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.plaf.basic; ++ ++import java.awt.Color; ++import java.awt.Component; ++import java.awt.Dimension; ++import java.io.Serializable; ++import javax.swing.JLabel; ++import javax.swing.JList; ++import javax.swing.ListCellRenderer; ++import javax.swing.SwingConstants; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; ++import javax.swing.border.Border; ++import javax.swing.border.EmptyBorder; ++import javax.swing.plaf.UIResource; ++ ++ ++/** ++ * This class is renderer for the combo box. ++ * ++ * @author Olga Rodimina ++ */ ++public class BasicComboBoxRenderer extends JLabel implements ListCellRenderer, ++ Serializable ++{ ++ /** ++ * This border is used whenever renderer doesn't have a focus. ++ */ ++ protected static Border noFocusBorder = new EmptyBorder(0, 0, 0, 0); ++ ++ /** ++ * Creates a new BasicComboBoxRenderer object. ++ */ ++ public BasicComboBoxRenderer() ++ { ++ setHorizontalAlignment(SwingConstants.LEFT); ++ } ++ ++ /** ++ * Returns preferredSize of the renderer ++ * ++ * @return preferredSize of the renderer ++ */ ++ public Dimension getPreferredSize() ++ { ++ return super.getPreferredSize(); ++ } ++ ++ /** ++ * getListCellRendererComponent ++ * ++ * @param list List of items for which to the background and foreground ++ * colors ++ * @param value object that should be rendered in the cell ++ * @param index index of the cell in the list of items. ++ * @param isSelected draw cell highlighted if isSelected is true ++ * @param cellHasFocus draw focus rectangle around cell if the cell has ++ * focus ++ * ++ * @return Component that will be used to draw the desired cell. ++ */ ++ public Component getListCellRendererComponent(JList list, Object value, ++ int index, boolean isSelected, ++ boolean cellHasFocus) ++ { ++ String s = value.toString(); ++ setText(s); ++ setOpaque(true); ++ ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ ++ if (isSelected) ++ { ++ setBackground(list.getSelectionBackground()); ++ setForeground(list.getSelectionForeground()); ++ } ++ else ++ { ++ setBackground(list.getBackground()); ++ setForeground(list.getForeground()); ++ } ++ ++ setEnabled(list.isEnabled()); ++ setFont(list.getFont()); ++ ++ // Use focusCellHighlightBorder when renderer has focus and ++ // noFocusBorder otherwise ++ if (cellHasFocus) ++ setBorder(UIManager.getBorder("List.focusCellHighlightBorder")); ++ else ++ setBorder(noFocusBorder); ++ ++ return this; ++ } ++ ++ public static class UIResource extends BasicComboBoxRenderer ++ implements javax.swing.plaf.UIResource ++ { ++ /** ++ * Creates a new UIResource object. ++ */ ++ public UIResource() ++ { ++ } ++ } ++} +Index: javax/swing/plaf/basic/BasicComboBoxUI.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicComboBoxUI.java +diff -N javax/swing/plaf/basic/BasicComboBoxUI.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicComboBoxUI.java 6 Sep 2004 16:36:03 -0000 +@@ -0,0 +1,1227 @@ ++/* BasicComboBoxUI.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.plaf.basic; ++ ++import java.awt.Color; ++import java.awt.Component; ++import java.awt.Container; ++import java.awt.Dimension; ++import java.awt.Graphics; ++import java.awt.Insets; ++import java.awt.LayoutManager; ++import java.awt.Rectangle; ++import java.awt.event.FocusEvent; ++import java.awt.event.FocusListener; ++import java.awt.event.ItemEvent; ++import java.awt.event.ItemListener; ++import java.awt.event.KeyAdapter; ++import java.awt.event.KeyEvent; ++import java.awt.event.KeyListener; ++import java.awt.event.MouseAdapter; ++import java.awt.event.MouseEvent; ++import java.awt.event.MouseListener; ++import java.awt.event.MouseMotionListener; ++import java.beans.PropertyChangeEvent; ++import java.beans.PropertyChangeListener; ++import java.util.EventListener; ++import javax.accessibility.Accessible; ++import javax.swing.CellRendererPane; ++import javax.swing.ComboBoxEditor; ++import javax.swing.ComboBoxModel; ++import javax.swing.JButton; ++import javax.swing.JComboBox; ++import javax.swing.JComponent; ++import javax.swing.JLabel; ++import javax.swing.JList; ++import javax.swing.ListCellRenderer; ++import javax.swing.SwingConstants; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; ++import javax.swing.event.ListDataEvent; ++import javax.swing.event.ListDataListener; ++import javax.swing.event.PopupMenuEvent; ++import javax.swing.event.PopupMenuListener; ++import javax.swing.plaf.ComboBoxUI; ++import javax.swing.plaf.ComponentUI; ++import javax.swing.plaf.basic.BasicComboPopup; ++import javax.swing.plaf.basic.BasicGraphicsUtils; ++ ++ ++/** ++ * UI Delegate for JComboBox ++ * ++ * @author Olga Rodimina ++ */ ++public class BasicComboBoxUI extends ComboBoxUI ++{ ++ /** ++ * This arrow button that is displayed in the rigth side of JComboBox. This ++ * button is used to hide and show combo box's list of items ++ */ ++ protected JButton arrowButton; ++ ++ /** ++ * The combo box for which this UI delegate is for ++ */ ++ protected JComboBox comboBox; ++ ++ /** ++ * Component that is responsible for displaying/editting selected item of ++ * the combo box. By default JTextField is used as an editor for the ++ * JComboBox ++ */ ++ protected Component editor; ++ ++ /** ++ * Listener listening to focus events occuring in the JComboBox ++ */ ++ protected FocusListener focusListener; ++ ++ /** ++ * tells whether JComboBox currently has focus ++ */ ++ protected boolean hasFocus; ++ ++ /** ++ * Listener listening to item events fired by the JComboBox ++ */ ++ protected ItemListener itemListener; ++ ++ /** ++ * KeyListener listening to key events that occur while JComboBox has focus ++ */ ++ protected KeyListener keyListener; ++ ++ /** ++ * MouseListener listening to mouse events occuring in the combo box ++ */ ++ private MouseListener mouseListener; ++ ++ /** ++ * List used when rendering selected item of the combo box. The selection ++ * and foreground colors for combo box renderer are configured from this ++ * list ++ */ ++ protected JList listBox; ++ ++ /** ++ * ListDataListener listening to JComboBox model ++ */ ++ protected ListDataListener listDataListener; ++ ++ /** ++ * Popup list containing combo box's menu items ++ */ ++ protected ComboPopup popup; ++ protected KeyListener popupKeyListener; ++ protected MouseListener popupMouseListener; ++ protected MouseMotionListener popupMouseMotionListener; ++ ++ /** ++ * Listener listening to changes in the bound properties of JComboBox ++ */ ++ protected PropertyChangeListener propertyChangeListener; ++ ++ /** ++ * Colors that are used to render selected item in the combo box. ++ */ ++ private Color shadow; ++ private Color darkShadow; ++ private Color highlight; ++ private Color lightHighlight; ++ ++ /* Size of the largest item in the comboBox */ ++ private Dimension largestItemSize; ++ ++ // It seems that JComboBox doesn't have a border set explicitely. So we just ++ // paint the border everytime combo box is displayed. ++ ++ /* border insets for this JComboBox*/ ++ private static final Insets borderInsets = new Insets(2, 2, 2, 2); ++ ++ // Width of the arrow button ++ private static int arrowButtonWidth = 15; ++ ++ // FIXME: This fields aren't used anywhere at this moment. ++ protected Dimension cachedMinimumSize; ++ protected CellRendererPane currentValuePane; ++ protected boolean isMinimumSizeDirty; ++ ++ /** ++ * Creates a new BasicComboBoxUI object. ++ */ ++ public BasicComboBoxUI() ++ { ++ } ++ ++ /** ++ * Factory method to create a BasicComboBoxUI for the given {@link ++ * JComponent}, which should be a {@link JComboBox}. ++ * ++ * @param c The {@link JComponent} a UI is being created for. ++ * ++ * @return A BasicComboBoxUI for the {@link JComponent}. ++ */ ++ public static ComponentUI createUI(JComponent c) ++ { ++ return new BasicComboBoxUI(); ++ } ++ ++ /** ++ * This method installs the UI for the given JComponent. ++ * ++ * @param c The JComponent to install a UI for. ++ */ ++ public void installUI(JComponent c) ++ { ++ super.installUI(c); ++ ++ if (c instanceof JComboBox) ++ { ++ comboBox = (JComboBox) c; ++ comboBox.setOpaque(true); ++ comboBox.setLayout(createLayoutManager()); ++ installDefaults(); ++ installComponents(); ++ installListeners(); ++ installKeyboardActions(); ++ } ++ } ++ ++ /** ++ * This method uninstalls the UI. ++ * ++ * @param c The JComponent that is having this UI removed. ++ */ ++ public void uninstallUI(JComponent c) ++ { ++ uninstallKeyboardActions(); ++ uninstallListeners(); ++ uninstallComponents(); ++ uninstallDefaults(); ++ comboBox = null; ++ } ++ ++ /** ++ * This method installs the defaults that are defined in the Basic look and ++ * feel for this {@link JComboBox}. ++ */ ++ protected void installDefaults() ++ { ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ ++ comboBox.setBackground(defaults.getColor("ComboBox.background")); ++ comboBox.setFont(defaults.getFont("ComboBox.font")); ++ comboBox.setForeground(defaults.getColor("ComboBox.foreground")); ++ ++ // Set default color that should be used to to render selected item ++ // of the combo box. ++ shadow = defaults.getColor("Button.shadow"); ++ darkShadow = defaults.getColor("Button.darkShadow"); ++ lightHighlight = defaults.getColor("Button.light"); ++ highlight = defaults.getColor("Button.highlight"); ++ } ++ ++ /** ++ * This method creates and installs the listeners for this UI. ++ */ ++ protected void installListeners() ++ { ++ // install combo box's listeners ++ propertyChangeListener = createPropertyChangeListener(); ++ comboBox.addPropertyChangeListener(propertyChangeListener); ++ ++ focusListener = createFocusListener(); ++ comboBox.addFocusListener(focusListener); ++ ++ itemListener = createItemListener(); ++ comboBox.addItemListener(itemListener); ++ ++ keyListener = createKeyListener(); ++ comboBox.addKeyListener(keyListener); ++ ++ mouseListener = createMouseListener(); ++ comboBox.addMouseListener(mouseListener); ++ ++ // install listeners that listen to combo box model ++ listDataListener = createListDataListener(); ++ comboBox.getModel().addListDataListener(listDataListener); ++ ++ configureArrowButton(); ++ } ++ ++ /** ++ * This method uninstalls the defaults and sets any objects created during ++ * install to null ++ */ ++ protected void uninstallDefaults() ++ { ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ ++ comboBox.setBackground(null); ++ comboBox.setFont(null); ++ comboBox.setForeground(null); ++ ++ shadow = null; ++ darkShadow = null; ++ lightHighlight = null; ++ highlight = null; ++ } ++ ++ /** ++ * Detaches all the listeners we attached in {@link #installListeners}. ++ */ ++ protected void uninstallListeners() ++ { ++ comboBox.removePropertyChangeListener(propertyChangeListener); ++ propertyChangeListener = null; ++ ++ comboBox.removeFocusListener(focusListener); ++ focusListener = null; ++ ++ comboBox.removeItemListener(itemListener); ++ itemListener = null; ++ ++ comboBox.removeKeyListener(keyListener); ++ keyListener = null; ++ ++ comboBox.removeMouseListener(mouseListener); ++ mouseListener = null; ++ ++ comboBox.getModel().removeListDataListener(listDataListener); ++ listDataListener = null; ++ ++ unconfigureArrowButton(); ++ } ++ ++ /** ++ * This method creates popup that will contain list of combo box's items ++ * ++ * @return popup containing list of combo box's items ++ */ ++ protected ComboPopup createPopup() ++ { ++ return new BasicComboPopup(comboBox); ++ } ++ ++ /** ++ * Creates KeyListener to listen to key events. ++ * ++ * @return KeyListener that listens to key events. ++ */ ++ protected KeyListener createKeyListener() ++ { ++ return new KeyHandler(); ++ } ++ ++ /** ++ * This method create MouseListener that will listen to mouse event occuring ++ * in combo box. ++ * ++ * @return the MouseListener ++ */ ++ private MouseListener createMouseListener() ++ { ++ return new MouseHandler(); ++ } ++ ++ /** ++ * This method create FocusListener that will listen to changes in this ++ * JComboBox's focus. ++ * ++ * @return theFocusListener ++ */ ++ protected FocusListener createFocusListener() ++ { ++ return new FocusHandler(); ++ } ++ ++ /** ++ * This method create ListDataListener to listen to ComboBox's data model ++ * ++ * @return ListDataListener ++ */ ++ protected ListDataListener createListDataListener() ++ { ++ return new ListDataHandler(); ++ } ++ ++ /** ++ * This method creates ItemListener that will listen to to the changes in ++ * the JComboBox's selection. ++ * ++ * @return the ItemListener ++ */ ++ protected ItemListener createItemListener() ++ { ++ return new ItemHandler(); ++ } ++ ++ /** ++ * This method creates PropertyChangeListener to listen to the changes in ++ * the JComboBox's bound properties. ++ * ++ * @return the PropertyChangeListener ++ */ ++ protected PropertyChangeListener createPropertyChangeListener() ++ { ++ return new PropertyChangeHandler(); ++ } ++ ++ /** ++ * This method returns layout manager for the combo box. ++ * ++ * @return layout manager for the combo box ++ */ ++ protected LayoutManager createLayoutManager() ++ { ++ return new ComboBoxLayoutManager(); ++ } ++ ++ /** ++ * This method creates component that will be responsible for rendering the ++ * selected component in the combo box. ++ * ++ * @return render for the combo box ++ */ ++ protected ListCellRenderer createRenderer() ++ { ++ return new BasicComboBoxRenderer(); ++ } ++ ++ /** ++ * Creates component that will be responsible for displaying/editting ++ * selected item in the combo box. This editor is used only when combo box ++ * is editable. ++ * ++ * @return component that will be responsible for displaying/editting ++ * selected item in the combo box. ++ */ ++ protected ComboBoxEditor createEditor() ++ { ++ return new BasicComboBoxEditor(); ++ } ++ ++ /** ++ * This method installs components for this JComboBox. ArrowButton, main ++ * part of combo box (upper part) and popup list of items are created and ++ * configured here. ++ */ ++ protected void installComponents() ++ { ++ // create and install arrow button ++ arrowButton = createArrowButton(); ++ ++ comboBox.add(arrowButton); ++ ++ // Set list that will be used by BasicComboBoxRender ++ // in order to determine the right colors when rendering ++ listBox = new JList(); ++ ++ Color background = arrowButton.getBackground(); ++ listBox.setBackground(background); ++ listBox.setSelectionBackground(background.darker()); ++ ++ Color foreground = arrowButton.getForeground(); ++ listBox.setForeground(foreground); ++ listBox.setSelectionForeground(foreground); ++ ++ // set editor and renderer for the combo box. Editor is used ++ // only if combo box becomes editable, otherwise renderer is used ++ // to paint the selected item; combobox is not editable by default. ++ comboBox.setRenderer(createRenderer()); ++ ++ comboBox.setEditor(createEditor()); ++ editor = comboBox.getEditor().getEditorComponent(); ++ ++ // create drop down list of items ++ popup = createPopup(); ++ ++ comboBox.revalidate(); ++ } ++ ++ /** ++ * This method uninstalls components from this JComboBox ++ */ ++ protected void uninstallComponents() ++ { ++ // uninstall arrow button ++ unconfigureArrowButton(); ++ comboBox.remove(arrowButton); ++ arrowButton = null; ++ ++ listBox = null; ++ popup = null; ++ ++ comboBox.setRenderer(null); ++ ++ comboBox.setEditor(null); ++ editor = null; ++ } ++ ++ /** ++ * This method adds editor to the combo box ++ */ ++ public void addEditor() ++ { ++ comboBox.add(editor); ++ } ++ ++ /** ++ * This method removes editor from the combo box ++ */ ++ public void removeEditor() ++ { ++ comboBox.remove(editor); ++ } ++ ++ /** ++ * This method configures editor for this combo box. ++ */ ++ protected void configureEditor() ++ { ++ // FIXME: Need to implement. Set font and add listeners. ++ } ++ ++ /** ++ * This method removes all the listeners for the editor. ++ */ ++ protected void unconfigureEditor() ++ { ++ // FIXME: Need to implement ++ } ++ ++ /** ++ * This method adds listeners to the arrow button part of the combo box. ++ */ ++ public void configureArrowButton() ++ { ++ arrowButton.addMouseListener(mouseListener); ++ } ++ ++ /** ++ * This method removes listeners from the arrow button part of the combo ++ * box. ++ */ ++ public void unconfigureArrowButton() ++ { ++ arrowButton.removeMouseListener(mouseListener); ++ } ++ ++ /** ++ * This method create arrow button for this JComboBox. Arrow button is ++ * responsible for displaying / hiding drop down list of items when it is ++ * clicked. ++ * ++ * @return JButton arrow button for this JComboBox. ++ */ ++ protected JButton createArrowButton() ++ { ++ return new BasicArrowButton(BasicArrowButton.SOUTH); ++ } ++ ++ /** ++ * This method checks if popup part of the combo box is visible on the ++ * screen ++ * ++ * @param c The JComboBox to check ++ * ++ * @return true if popup part of the JComboBox is visible and false ++ * otherwise. ++ */ ++ public boolean isPopupVisible(JComboBox c) ++ { ++ return popup.isVisible(); ++ } ++ ++ /** ++ * Displays/Hides JComboBox's list of items on the screen. ++ * ++ * @param c The combo box, for which list of items should be ++ * displayed/hidden ++ * @param v true if show popup part of the jcomboBox and false to hide. ++ */ ++ public void setPopupVisible(JComboBox c, boolean v) ++ { ++ if (v) ++ popup.show(); ++ else ++ popup.hide(); ++ } ++ ++ /** ++ * JComboBox is focus traversable if it is editable and not otherwise. ++ * ++ * @param c combo box for which to check whether it is focus traversable ++ * ++ * @return true if focus tranversable and false otherwise ++ */ ++ public boolean isFocusTraversable(JComboBox c) ++ { ++ if (comboBox.isEditable()) ++ return true; ++ ++ return false; ++ } ++ ++ /** ++ * Paints given menu item using specified graphics context ++ * ++ * @param g The graphics context used to paint this combo box ++ * @param c comboBox which needs to be painted. ++ */ ++ public void paint(Graphics g, JComponent c) ++ { ++ if (c instanceof JComboBox) ++ { ++ JComboBox cb = (JComboBox) c; ++ ++ paintBorder(g, comboBox.getBounds(), hasFocus); ++ ++ Rectangle rect = rectangleForCurrentValue(); ++ paintCurrentValueBackground(g, rect, hasFocus); ++ paintCurrentValue(g, rect, hasFocus); ++ } ++ } ++ ++ private void paintBorder(Graphics g, Rectangle bounds, boolean hasFocus) ++ { ++ int x = 0; ++ int y = 0; ++ int width = bounds.width; ++ int height = bounds.height; ++ ++ Color oldColor = g.getColor(); ++ ++ if (! arrowButton.getModel().isPressed()) ++ BasicGraphicsUtils.drawEtchedRect(g, x, y, width, height, Color.gray, ++ Color.white, Color.gray, Color.white); ++ else ++ { ++ g.setColor(darkShadow); ++ g.drawRect(x, y, width, height); ++ g.setColor(shadow); ++ g.drawRect(x + 1, y + 1, width - 3, height - 3); ++ } ++ g.setColor(oldColor); ++ } ++ ++ /** ++ * Returns preferred size for the given menu item. ++ * ++ * @param c comboBox for which to get preferred size ++ * ++ * @return $Dimension$ preferred size for the given combo box ++ */ ++ public Dimension getPreferredSize(JComponent c) ++ { ++ // return null to indicate that combo box's layout will determin its ++ // preferred size ++ return null; ++ } ++ ++ /** ++ * This method returns the minimum size for this {@link JComboBox} for this ++ * look and feel. ++ * ++ * @param c The {@link JComponent} to find the minimum size for. ++ * ++ * @return The dimensions of the minimum size. ++ */ ++ public Dimension getMinimumSize(JComponent c) ++ { ++ return null; ++ } ++ ++ /** ++ * This method returns the maximum size for this {@link JComboBox} for this ++ * look and feel. ++ * ++ * @param c The {@link JComponent} to find the maximum size for ++ * ++ * @return The dimensions of the minimum size. ++ */ ++ public Dimension getMaximumSize(JComponent c) ++ { ++ return null; ++ } ++ ++ public int getAccessibleChildrenCount(JComponent c) ++ { ++ // FIXME: Need to implement ++ return 0; ++ } ++ ++ public Accessible getAccessibleChild(JComponent c, int i) ++ { ++ // FIXME: Need to implement ++ return null; ++ } ++ ++ /** ++ * Returns true if the specified key is a navigation key and false otherwise ++ * ++ * @param keyCode a key for which to check whether it is navigation key or ++ * not. ++ * ++ * @return true if the specified key is a navigation key and false otherwis ++ */ ++ protected boolean isNavigationKey(int keyCode) ++ { ++ return false; ++ } ++ ++ /** ++ * This method selects next possible item relative to the current selection ++ * to be next selected item in the combo box. ++ */ ++ protected void selectNextPossibleValue() ++ { ++ int index = comboBox.getSelectedIndex(); ++ if (index != comboBox.getItemCount() - 1) ++ comboBox.setSelectedIndex(index + 1); ++ } ++ ++ /** ++ * This method selects previous item relative to current selection to be ++ * next selected item. ++ */ ++ protected void selectPreviousPossibleValue() ++ { ++ int index = comboBox.getSelectedIndex(); ++ if (index != 0) ++ comboBox.setSelectedIndex(index - 1); ++ } ++ ++ /** ++ * This method displays combo box popup if the popup is not currently shown ++ * on the screen and hides it if it is currently shown ++ */ ++ protected void toggleOpenClose() ++ { ++ setPopupVisible(comboBox, ! isPopupVisible(comboBox)); ++ } ++ ++ /** ++ * This method returns bounds in which comboBox's selected Item will be ++ * displayed ++ * ++ * @return rectangle bounds in which comboBox's selected Item will be ++ * displayed ++ */ ++ protected Rectangle rectangleForCurrentValue() ++ { ++ Rectangle cbBounds = comboBox.getBounds(); ++ ++ // Subtract width or the arrow button and border insets ++ Rectangle rectForCurrentValue = new Rectangle(cbBounds.x ++ + borderInsets.left, ++ cbBounds.y ++ + borderInsets.top, ++ cbBounds.width ++ - arrowButtonWidth ++ - borderInsets.left ++ - borderInsets.right, ++ cbBounds.height ++ - borderInsets.top ++ - borderInsets.bottom); ++ ++ return rectForCurrentValue; ++ } ++ ++ /** ++ * This method returns insets of the current border. ++ * ++ * @return Insets representing space between combo box and its border ++ */ ++ protected Insets getInsets() ++ { ++ return new Insets(0, 0, 0, 0); ++ } ++ ++ /** ++ * This method paints currently selected value in the main part of the combo ++ * box (part without popup). ++ * ++ * @param g graphics context ++ * @param bounds Rectangle representing the size of the area in which ++ * selected item should be drawn ++ * @param hasFocus true if combo box has focus and false otherwise ++ */ ++ public void paintCurrentValue(Graphics g, Rectangle bounds, boolean hasFocus) ++ { ++ if (! comboBox.isEditable()) ++ { ++ Object currentValue = comboBox.getSelectedItem(); ++ boolean isPressed = arrowButton.getModel().isPressed(); ++ if (currentValue != null) ++ { ++ Component comp = comboBox.getRenderer() ++ .getListCellRendererComponent(listBox, ++ currentValue, ++ -1, ++ isPressed, ++ isPressed); ++ if (! comboBox.isEnabled()) ++ comp.setEnabled(false); ++ ++ g.translate(borderInsets.left, borderInsets.top); ++ comp.setBounds(0, 0, bounds.width, bounds.height); ++ comp.paint(g); ++ g.translate(-borderInsets.left, -borderInsets.top); ++ } ++ comboBox.revalidate(); ++ } ++ else ++ comboBox.getEditor().setItem(comboBox.getSelectedItem()); ++ } ++ ++ /** ++ * This method paints background of part of the combo box, where currently ++ * selected value is displayed. If the combo box has focus this method ++ * should also paint focus rectangle around the combo box. ++ * ++ * @param g graphics context ++ * @param bounds Rectangle representing the size of the largest item in the ++ * comboBox ++ * @param hasFocus true if combo box has fox and false otherwise ++ */ ++ public void paintCurrentValueBackground(Graphics g, Rectangle bounds, ++ boolean hasFocus) ++ { ++ // background is painted by renderer, so it seems that nothing ++ // should be done here. ++ } ++ ++ /** ++ * Returns default size for the combo box that doesn't contain any elements ++ * in it ++ * ++ * @return Default size of the combo box with no elements in it. ++ */ ++ protected Dimension getDefaultSize() ++ { ++ return new Dimension(6, 17); ++ } ++ ++ /** ++ * Returns size of the largest item in the combo box. This size will be the ++ * size of the combo box, not including the arrowButton. ++ * ++ * @return dimensions of the largest item in the combo box. ++ */ ++ protected Dimension getLargestItemSize() ++ { ++ ComboBoxModel model = comboBox.getModel(); ++ int numItems = model.getSize(); ++ ++ // if combo box doesn't have any items then simply ++ // return its default size ++ if (numItems == 0) ++ { ++ largestItemSize = getDefaultSize(); ++ return largestItemSize; ++ } ++ ++ Dimension size = new Dimension(0, 0); ++ ++ // ComboBox's display size should be equal to the ++ // size of the largest item in the combo box. ++ ListCellRenderer renderer = comboBox.getRenderer(); ++ ++ for (int i = 0; i < numItems; i++) ++ { ++ Object item = model.getElementAt(i); ++ String s = item.toString(); ++ Component comp = renderer.getListCellRendererComponent(listBox, item, ++ -1, false, false); ++ ++ if (comp.getPreferredSize().getWidth() > size.getWidth()) ++ size = comp.getPreferredSize(); ++ } ++ ++ largestItemSize = size; ++ return largestItemSize; ++ } ++ ++ /** ++ * This method installs the keyboard actions for the JComboBox as specified ++ * by the look and feel. ++ */ ++ protected void installKeyboardActions() ++ { ++ // FIXME: Need to implement. ++ } ++ ++ /** ++ * This method uninstalls the keyboard actions for the JComboBox there were ++ * installed by in {@link #installListeners}. ++ */ ++ protected void uninstallKeyboardActions() ++ { ++ // FIXME: Need to implement. ++ } ++ ++ /** ++ * This class is Layout Manager for this combo box. ++ */ ++ public class ComboBoxLayoutManager extends Object implements LayoutManager ++ { ++ /** ++ * Creates a new ComboBoxLayoutManager object. ++ */ ++ public ComboBoxLayoutManager() ++ { ++ } ++ ++ public void addLayoutComponent(String name, Component comp) ++ { ++ // Do nothing ++ } ++ ++ public void removeLayoutComponent(Component comp) ++ { ++ // Do nothing ++ } ++ ++ /** ++ * Returns preferred layout size of the JComboBox. ++ * ++ * @param parent Container for which preferred size should be calculated ++ * ++ * @return preferred size for the given container ++ */ ++ public Dimension preferredLayoutSize(Container parent) ++ { ++ Dimension d = new Dimension(0, 0); ++ ++ if (largestItemSize == null) ++ largestItemSize = getLargestItemSize(); ++ ++ // add size for the area that will display selected item ++ d.width += largestItemSize.getWidth(); ++ d.height += largestItemSize.getHeight(); ++ ++ // add size of the arrow button ++ d.width += arrowButtonWidth; ++ ++ // add width and height of the border ++ d.width += borderInsets.left + borderInsets.right; ++ d.height += borderInsets.left + borderInsets.right; ++ ++ // Add combo box's insets ++ Insets insets = parent.getInsets(); ++ d.width += insets.left + insets.right; ++ d.width += insets.left + insets.right; ++ ++ return d; ++ } ++ ++ public Dimension minimumLayoutSize(Container parent) ++ { ++ return preferredLayoutSize(parent); ++ } ++ ++ /** ++ * This method layouts out the components in the container. It puts arrow ++ * button right end part of the comboBox. If the comboBox is editable ++ * then editor is placed to the left of arrow button, starting from the ++ * beginning. ++ * ++ * @param parent Container that should be layed out. ++ */ ++ public void layoutContainer(Container parent) ++ { ++ // Position editor component to the left of arrow button if combo box is ++ // editable ++ int editorWidth = comboBox.getBounds().width - arrowButtonWidth - 2; ++ ++ if (comboBox.isEditable()) ++ editor.setBounds(borderInsets.left, borderInsets.top, editorWidth, ++ comboBox.getBounds().height - borderInsets.left ++ - borderInsets.top); ++ ++ arrowButton.setBounds(editorWidth, 2, arrowButtonWidth, ++ comboBox.getBounds().height - 4); ++ comboBox.revalidate(); ++ } ++ } ++ ++ /** ++ * This class handles focus changes occuring in the combo box. This class is ++ * responsible for repainting combo box whenever focus is gained or lost ++ * and also for hiding popup list of items whenever combo box loses its ++ * focus. ++ */ ++ public class FocusHandler extends Object implements FocusListener ++ { ++ /** ++ * Creates a new FocusHandler object. ++ */ ++ public FocusHandler() ++ { ++ } ++ ++ /** ++ * This mehtod is invoked when combo box gains focus. It repaints main ++ * part of combo box accordingally. ++ * ++ * @param e the FocusEvent ++ */ ++ public void focusGained(FocusEvent e) ++ { ++ hasFocus = true; ++ comboBox.repaint(); ++ } ++ ++ /** ++ * This method is invoked when combo box loses focus It repaint main part ++ * of combo box accordingally and hides popup list of items. ++ * ++ * @param e the FocusEvent ++ */ ++ public void focusLost(FocusEvent e) ++ { ++ hasFocus = false; ++ comboBox.repaint(); ++ popup.hide(); ++ } ++ } ++ ++ /** ++ * This class handles ItemEvent fired by the JComboBox when its selected ++ * item changes. ++ */ ++ public class ItemHandler extends Object implements ItemListener ++ { ++ /** ++ * Creates a new ItemHandler object. ++ */ ++ public ItemHandler() ++ { ++ } ++ ++ /** ++ * This method is invoked when selected item becomes deselected or when ++ * new item becomes selected. ++ * ++ * @param e the ItemEvent representing item's state change. ++ */ ++ public void itemStateChanged(ItemEvent e) ++ { ++ comboBox.repaint(); ++ } ++ } ++ ++ /** ++ * KeyHandler handles key events occuring while JComboBox has focus. ++ */ ++ public class KeyHandler extends KeyAdapter ++ { ++ public KeyHandler() ++ { ++ } ++ ++ /* ++ * This method is invoked whenever key is pressed while JComboBox is in ++ * focus. ++ */ ++ public void keyPressed(KeyEvent e) ++ { ++ // FIXME: This method calls JComboBox.selectWithKeyChar if the key that was ++ // pressed is not a navigation key. ++ } ++ } ++ ++ /** ++ * This class handles to the changes occuring in the JComboBox's data model ++ */ ++ public class ListDataHandler extends Object implements ListDataListener ++ { ++ /** ++ * Creates a new ListDataHandler object. ++ */ ++ public ListDataHandler() ++ { ++ } ++ ++ /** ++ * This method is invoked content's of JComboBox's data model are changed ++ * ++ * @param e ListDataEvent describing the change. ++ */ ++ public void contentsChanged(ListDataEvent e) ++ { ++ // if the item is selected or deselected ++ } ++ ++ /** ++ * This method is invoked when items were added to the JComboBox's data ++ * model. ++ * ++ * @param e ListDataEvent describing the change. ++ */ ++ public void intervalAdded(ListDataEvent e) ++ { ++ // must determine if the size of the combo box should change ++ int start = e.getIndex0(); ++ int end = e.getIndex1(); ++ ++ ComboBoxModel model = comboBox.getModel(); ++ ListCellRenderer renderer = comboBox.getRenderer(); ++ ++ if (largestItemSize == null) ++ largestItemSize = new Dimension(0, 0); ++ ++ for (int i = start - 1; i < end; i++) ++ { ++ Object item = model.getElementAt(i); ++ Component comp = renderer.getListCellRendererComponent(new JList(), ++ item, -1, ++ false, false); ++ if (comp.getPreferredSize().getWidth() > largestItemSize.getWidth()) ++ largestItemSize = comp.getPreferredSize(); ++ } ++ } ++ ++ /** ++ * This method is invoked when items were removed from the JComboBox's ++ * data model. ++ * ++ * @param e ListDataEvent describing the change. ++ */ ++ public void intervalRemoved(ListDataEvent e) ++ { ++ // must determine if the size of the combo box should change ++ // FIXME: need to implement ++ } ++ } ++ ++ /** ++ * This class handles PropertyChangeEvents fired by JComboBox. ++ */ ++ public class PropertyChangeHandler extends Object ++ implements PropertyChangeListener ++ { ++ public PropertyChangeHandler() ++ { ++ } ++ ++ public void propertyChange(PropertyChangeEvent e) ++ { ++ if (e.getPropertyName().equals(JComboBox.ENABLED_CHANGED_PROPERTY)) ++ { ++ // disable arrow button ++ arrowButton.setEnabled(comboBox.isEnabled()); ++ ++ if (comboBox.isEditable()) ++ comboBox.getEditor().getEditorComponent().setEnabled(comboBox ++ .isEnabled()); ++ } ++ else if (e.getPropertyName().equals(JComboBox.EDITABLE_CHANGED_PROPERTY)) ++ { ++ if (comboBox.isEditable()) ++ { ++ configureEditor(); ++ addEditor(); ++ } ++ else ++ { ++ unconfigureEditor(); ++ removeEditor(); ++ } ++ ++ comboBox.revalidate(); ++ comboBox.repaint(); ++ } ++ ++ // FIXME: Need to handle changes in other bound properties. ++ } ++ } ++ ++ /** ++ * MouseHandler listens to mouse events occuring in the combo box. This ++ * class is responsible for repainting this JComboBox whenever the mouse is ++ * being pressed or released over it. ++ */ ++ private class MouseHandler extends MouseAdapter ++ { ++ /** ++ * This method is invoked when mouse is pressed over the combo box. It ++ * repaints the combo box accordinglly ++ * ++ * @param e the MouseEvent ++ */ ++ public void mousePressed(MouseEvent e) ++ { ++ if (comboBox.isEnabled()) ++ { ++ if (e.getSource() instanceof JComboBox) ++ { ++ arrowButton.getModel().setPressed(true); ++ arrowButton.getModel().setArmed(true); ++ } ++ ++ comboBox.repaint(); ++ ++ if (e.getSource() instanceof BasicArrowButton) ++ toggleOpenClose(); ++ } ++ } ++ ++ /** ++ * This method is invoked when mouse is released over the combo box. It ++ * repaints the combo box accordinglly ++ * ++ * @param e the MouseEvent ++ */ ++ public void mouseReleased(MouseEvent e) ++ { ++ if (comboBox.isEnabled()) ++ { ++ if (e.getSource() instanceof JComboBox) ++ { ++ arrowButton.getModel().setPressed(false); ++ arrowButton.getModel().setArmed(false); ++ } ++ ++ comboBox.repaint(); ++ } ++ } ++ } ++} +Index: javax/swing/plaf/basic/BasicComboPopup.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicComboPopup.java +diff -N javax/swing/plaf/basic/BasicComboPopup.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicComboPopup.java 6 Sep 2004 16:36:03 -0000 +@@ -0,0 +1,933 @@ ++/* BasicComboPopup.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.plaf.basic; ++ ++import java.awt.Component; ++import java.awt.Dimension; ++import java.awt.Rectangle; ++import java.awt.event.ItemEvent; ++import java.awt.event.ItemListener; ++import java.awt.event.KeyAdapter; ++import java.awt.event.KeyEvent; ++import java.awt.event.KeyListener; ++import java.awt.event.MouseAdapter; ++import java.awt.event.MouseEvent; ++import java.awt.event.MouseListener; ++import java.awt.event.MouseMotionAdapter; ++import java.awt.event.MouseMotionListener; ++import java.beans.PropertyChangeEvent; ++import java.beans.PropertyChangeListener; ++import javax.swing.ComboBoxModel; ++import javax.swing.JComboBox; ++import javax.swing.JComponent; ++import javax.swing.JLabel; ++import javax.swing.JList; ++import javax.swing.JPopupMenu; ++import javax.swing.JScrollPane; ++import javax.swing.ListCellRenderer; ++import javax.swing.ListSelectionModel; ++import javax.swing.SwingConstants; ++import javax.swing.Timer; ++import javax.swing.event.ListDataEvent; ++import javax.swing.event.ListDataListener; ++import javax.swing.event.ListSelectionEvent; ++import javax.swing.event.ListSelectionListener; ++import javax.swing.event.PopupMenuEvent; ++import javax.swing.event.PopupMenuListener; ++ ++ ++/** ++ * UI Delegate for ComboPopup ++ * ++ * @author Olga Rodimina ++ */ ++public class BasicComboPopup extends JPopupMenu implements ComboPopup ++{ ++ protected Timer autoscrollTimer; ++ ++ /** ++ * ComboBox associated with this popup ++ */ ++ protected JComboBox comboBox; ++ ++ /* ++ * FIXME: Document fields below ++ */ ++ protected boolean hasEntered; ++ protected boolean isAutoScrolling; ++ ++ /** ++ * ItemListener listening to the selection changes in the combo box ++ */ ++ protected ItemListener itemListener; ++ ++ /** ++ * This listener is not used ++ */ ++ protected KeyListener keyListener; ++ ++ /** ++ * JList which is used to display item is the combo box ++ */ ++ protected JList list; ++ ++ /** ++ * This listener is not used ++ */ ++ protected ListDataListener listDataListener; ++ ++ /** ++ * MouseListener listening to mouse events occuring in the combo box's ++ * list. ++ */ ++ protected MouseListener listMouseListener; ++ ++ /** ++ * MouseMotionListener listening to mouse motion events occuring in the ++ * combo box's list ++ */ ++ protected MouseMotionListener listMouseMotionListener; ++ ++ /** ++ * This listener is not used ++ */ ++ protected ListSelectionListener listSelectionListener; ++ ++ /** ++ * MouseListener listening to mouse events occuring in the combo box ++ */ ++ protected MouseListener mouseListener; ++ ++ /** ++ * MouseMotionListener listening to mouse motion events occuring in the ++ * combo box ++ */ ++ protected MouseMotionListener mouseMotionListener; ++ ++ /** ++ * PropertyChangeListener listening to changes occuring in the bound ++ * properties of the combo box ++ */ ++ protected PropertyChangeListener propertyChangeListener; ++ ++ /* ++ * FIXME: Document fields below ++ */ ++ protected static int SCROLL_DOWN = 1; ++ protected static int SCROLL_UP = 0; ++ protected int scrollDirection; ++ ++ /** ++ * JScrollPane that contains list portion of the combo box ++ */ ++ protected JScrollPane scroller; ++ ++ /** ++ * This field is not used ++ */ ++ protected boolean valueIsAdjusting; ++ ++ /** ++ * Creates a new BasicComboPopup object. ++ * ++ * @param comboBox the combo box with which this popup should be associated ++ */ ++ public BasicComboPopup(JComboBox comboBox) ++ { ++ this.comboBox = comboBox; ++ installComboBoxListeners(); ++ ++ // initialize list that will be used to display elements of the combo box ++ this.list = createList(); ++ ((JLabel) list.getCellRenderer()).setHorizontalAlignment(SwingConstants.LEFT); ++ configureList(); ++ ++ // initialize scroller. Add list to the scroller. ++ scroller = createScroller(); ++ configureScroller(); ++ ++ // add scroller with list inside of it to JPopupMenu ++ super.add(scroller); ++ ++ setLightWeightPopupEnabled(comboBox.isLightWeightPopupEnabled()); ++ } ++ ++ /** ++ * This method displays drow down list of combo box items on the screen. ++ */ ++ public void show() ++ { ++ Rectangle cbBounds = comboBox.getBounds(); ++ ++ // popup should have same width as the comboBox and should be hight anough ++ // to display number of rows equal to 'maximumRowCount' property ++ int popupHeight = getPopupHeightForRowCount(comboBox.getMaximumRowCount()) ++ + 4; ++ ++ super.setPopupSize(cbBounds.width, popupHeight); ++ ++ // location specified is relative to comboBox ++ super.show(comboBox, 0, cbBounds.height); ++ } ++ ++ /** ++ * This method hides drop down list of items ++ */ ++ public void hide() ++ { ++ super.setVisible(false); ++ } ++ ++ /** ++ * Return list cointaining JComboBox's items ++ * ++ * @return list cointaining JComboBox's items ++ */ ++ public JList getList() ++ { ++ return list; ++ } ++ ++ /** ++ * Returns MouseListener that is listening to mouse events occuring in the ++ * combo box. ++ * ++ * @return MouseListener ++ */ ++ public MouseListener getMouseListener() ++ { ++ return mouseListener; ++ } ++ ++ /** ++ * Returns MouseMotionListener that is listening to mouse motion events ++ * occuring in the combo box. ++ * ++ * @return MouseMotionListener ++ */ ++ public MouseMotionListener getMouseMotionListener() ++ { ++ return mouseMotionListener; ++ } ++ ++ /** ++ * Returns KeyListener listening to key events occuring in the combo box. ++ * This method returns null because KeyHandler is not longer used. ++ * ++ * @return KeyListener ++ */ ++ public KeyListener getKeyListener() ++ { ++ return keyListener; ++ } ++ ++ /** ++ * This method uninstalls the UI for the given JComponent. ++ */ ++ public void uninstallingUI() ++ { ++ uninstallComboBoxModelListeners(comboBox.getModel()); ++ ++ uninstallListeners(); ++ uninstallKeyboardActions(); ++ } ++ ++ /** ++ * This method uninstalls listeners that were listening to changes occuring ++ * in the comb box's data model ++ * ++ * @param model data model for the combo box from which to uninstall ++ * listeners ++ */ ++ protected void uninstallComboBoxModelListeners(ComboBoxModel model) ++ { ++ model.removeListDataListener(listDataListener); ++ } ++ ++ /** ++ * This method uninstalls keyboard actions installed by the UI. ++ */ ++ protected void uninstallKeyboardActions() ++ { ++ // FIXME: Need to implement ++ } ++ ++ /** ++ * This method fires PopupMenuEvent indicating that combo box's popup list ++ * of items will become visible ++ */ ++ protected void firePopupMenuWillBecomeVisible() ++ { ++ // FIXME: Need to implement ++ } ++ ++ /** ++ * This method fires PopupMenuEvent indicating that combo box's popup list ++ * of items will become invisible. ++ */ ++ protected void firePopupMenuWillBecomeInvisible() ++ { ++ // FIXME: Need to implement ++ } ++ ++ /** ++ * This method fires PopupMenuEvent indicating that combo box's popup list ++ * of items was closed without selection. ++ */ ++ protected void firePopupMenuCanceled() ++ { ++ // FIXME: Need to implement ++ } ++ ++ /** ++ * Creates MouseListener to listen to mouse events occuring in the combo ++ * box. Note that this listener doesn't listen to mouse events occuring in ++ * the popup portion of the combo box, it only listens to main combo box ++ * part. ++ * ++ * @return new MouseMotionListener that listens to mouse events occuring in ++ * the combo box ++ */ ++ protected MouseListener createMouseListener() ++ { ++ return new InvocationMouseHandler(); ++ } ++ ++ /** ++ * Create Mouse listener that listens to mouse dragging events occuring in ++ * the combo box. This listener is responsible for changing the selection ++ * in the combo box list to the component over which mouse is being ++ * currently dragged ++ * ++ * @return new MouseMotionListener that listens to mouse dragging events ++ * occuring in the combo box ++ */ ++ protected MouseMotionListener createMouseMotionListener() ++ { ++ return new InvocationMouseMotionHandler(); ++ } ++ ++ /** ++ * KeyListener created in this method is not used anymore. ++ * ++ * @return KeyListener that does nothing ++ */ ++ protected KeyListener createKeyListener() ++ { ++ return new InvocationKeyHandler(); ++ } ++ ++ /** ++ * ListSelectionListener created in this method is not used anymore ++ * ++ * @return ListSelectionListener that does nothing ++ */ ++ protected ListSelectionListener createListSelectionListener() ++ { ++ return new ListSelectionHandler(); ++ } ++ ++ /** ++ * Creates ListDataListener. This method returns null, because ++ * ListDataHandler class is obsolete and is no longer used. ++ * ++ * @return null ++ */ ++ protected ListDataListener createListDataListener() ++ { ++ return null; ++ } ++ ++ /** ++ * This method creates ListMouseListener to listen to mouse events occuring ++ * in the combo box's item list. ++ * ++ * @return MouseListener to listen to mouse events occuring in the combo ++ * box's items list. ++ */ ++ protected MouseListener createListMouseListener() ++ { ++ return new ListMouseHandler(); ++ } ++ ++ /** ++ * Creates ListMouseMotionlistener to listen to mouse motion events occuring ++ * in the combo box's list. This listener is responsible for highlighting ++ * items in the list when mouse is moved over them. ++ * ++ * @return MouseMotionListener that handles mouse motion events occuring in ++ * the list of the combo box. ++ */ ++ protected MouseMotionListener createListMouseMotionListener() ++ { ++ return new ListMouseMotionHandler(); ++ } ++ ++ /** ++ * Creates PropertyChangeListener to handle changes in the JComboBox's bound ++ * properties. ++ * ++ * @return PropertyChangeListener to handle changes in the JComboBox's bound ++ * properties. ++ */ ++ protected PropertyChangeListener createPropertyChangeListener() ++ { ++ return new PropertyChangeHandler(); ++ } ++ ++ /** ++ * Creates new ItemListener that will listen to ItemEvents occuring in the ++ * combo box. ++ * ++ * @return ItemListener to listen to ItemEvents occuring in the combo box. ++ */ ++ protected ItemListener createItemListener() ++ { ++ return new ItemHandler(); ++ } ++ ++ /** ++ * Creates JList that will be used to display items in the combo box. ++ * ++ * @return JList that will be used to display items in the combo box. ++ */ ++ protected JList createList() ++ { ++ JList l = new JList(comboBox.getModel()); ++ l.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION); ++ return l; ++ } ++ ++ /** ++ * This method configures the list of comboBox's items by setting default ++ * properties and installing listeners. ++ */ ++ protected void configureList() ++ { ++ list.setModel(comboBox.getModel()); ++ ++ if (comboBox.getItemCount() < comboBox.getMaximumRowCount()) ++ list.setVisibleRowCount(comboBox.getItemCount()); ++ else ++ list.setVisibleRowCount(comboBox.getMaximumRowCount()); ++ installListListeners(); ++ } ++ ++ /** ++ * This method installs list listeners. ++ */ ++ protected void installListListeners() ++ { ++ // mouse listener listening to mouse events occuring in the ++ // combo box's list of items. ++ listMouseListener = createListMouseListener(); ++ list.addMouseListener(listMouseListener); ++ ++ // mouse listener listening to mouse motion events occuring in the ++ // combo box's list of items ++ listMouseMotionListener = createListMouseMotionListener(); ++ list.addMouseMotionListener(listMouseMotionListener); ++ ++ listSelectionListener = createListSelectionListener(); ++ list.addListSelectionListener(listSelectionListener); ++ } ++ ++ /** ++ * This method creates scroll pane that will contain the list of comboBox's ++ * items inside of it. ++ * ++ * @return JScrollPane ++ */ ++ protected JScrollPane createScroller() ++ { ++ return new JScrollPane(); ++ } ++ ++ /** ++ * This method configures scroll pane to contain list of comboBox's items ++ */ ++ protected void configureScroller() ++ { ++ scroller.getViewport().setView(list); ++ scroller.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); ++ } ++ ++ /** ++ * This method configures popup menu that will be used to display Scrollpane ++ * with list of items inside of it. ++ */ ++ protected void configurePopup() ++ { ++ // FIXME: Need to implement ++ } ++ ++ /* ++ * This method installs listeners that will listen to changes occuring ++ * in the combo box. ++ */ ++ protected void installComboBoxListeners() ++ { ++ // mouse listener that listens to mouse event in combo box ++ mouseListener = createMouseListener(); ++ comboBox.addMouseListener(mouseListener); ++ ++ // mouse listener that listens to mouse dragging events in the combo box ++ mouseMotionListener = createMouseMotionListener(); ++ comboBox.addMouseMotionListener(mouseMotionListener); ++ ++ // item listener listenening to selection events in the combo box ++ itemListener = createItemListener(); ++ comboBox.addItemListener(itemListener); ++ ++ propertyChangeListener = createPropertyChangeListener(); ++ comboBox.addPropertyChangeListener(propertyChangeListener); ++ } ++ ++ /** ++ * This method installs listeners that will listen to changes occuring in ++ * the comb box's data model ++ * ++ * @param model data model for the combo box for which to install listeners ++ */ ++ protected void installComboBoxModelListeners(ComboBoxModel model) ++ { ++ // list data listener to listen for ListDataEvents in combo box. ++ // This listener is now obsolete and nothing is done here ++ listDataListener = createListDataListener(); ++ comboBox.getModel().addListDataListener(listDataListener); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ */ ++ protected void installKeyboardActions() ++ { ++ // FIXME: Need to implement ++ } ++ ++ /** ++ * This method always returns false to indicate that items in the combo box ++ * list are not focus traversable. ++ * ++ * @return false ++ */ ++ public boolean isFocusTraversable() ++ { ++ return false; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param direction DOCUMENT ME! ++ */ ++ protected void startAutoScrolling(int direction) ++ { ++ // FIXME: Need to implement ++ } ++ ++ /** ++ * DOCUMENT ME! ++ */ ++ protected void stopAutoScrolling() ++ { ++ // FIXME: Need to implement ++ } ++ ++ /** ++ * DOCUMENT ME! ++ */ ++ protected void autoScrollUp() ++ { ++ // FIXME: Need to implement ++ } ++ ++ /** ++ * DOCUMENT ME! ++ */ ++ protected void autoScrollDown() ++ { ++ // FIXME: Need to implement ++ } ++ ++ /** ++ * This method helps to delegate focus to the right component in the ++ * JComboBox. If the comboBox is editable then focus is sent to ++ * ComboBoxEditor, otherwise it is delegated to JComboBox. ++ * ++ * @param e MouseEvent ++ */ ++ protected void delegateFocus(MouseEvent e) ++ { ++ // FIXME: Need to implement ++ } ++ ++ /** ++ * This method displays combo box popup if the popup is not currently shown ++ * on the screen and hides it if it is currently visible ++ */ ++ protected void togglePopup() ++ { ++ if (BasicComboPopup.this.isVisible()) ++ hide(); ++ else ++ show(); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param e DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ protected MouseEvent convertMouseEvent(MouseEvent e) ++ { ++ return null; ++ } ++ ++ /** ++ * Returns required height of the popup such that number of items visible in ++ * it are equal to the maximum row count. By default ++ * comboBox.maximumRowCount=8 ++ * ++ * @param maxRowCount number of maximum visible rows in the combo box's ++ * popup list of items ++ * ++ * @return height of the popup required to fit number of items equal to ++ * JComboBox.maximumRowCount. ++ */ ++ protected int getPopupHeightForRowCount(int maxRowCount) ++ { ++ int totalHeight = 0; ++ ListCellRenderer rend = list.getCellRenderer(); ++ ++ if (comboBox.getItemCount() < maxRowCount) ++ maxRowCount = comboBox.getItemCount(); ++ ++ for (int i = 0; i < maxRowCount; i++) ++ { ++ Component comp = rend.getListCellRendererComponent(list, ++ list.getModel() ++ .getElementAt(i), ++ -1, false, false); ++ Dimension dim = comp.getPreferredSize(); ++ totalHeight += dim.height; ++ } ++ ++ return totalHeight; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param px DOCUMENT ME! ++ * @param py DOCUMENT ME! ++ * @param pw DOCUMENT ME! ++ * @param ph DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ protected Rectangle computePopupBounds(int px, int py, int pw, int ph) ++ { ++ return new Rectangle(px, py, pw, ph); ++ } ++ ++ /** ++ * This method changes the selection in the list to the item over which the ++ * mouse is currently located. ++ * ++ * @param anEvent MouseEvent ++ * @param shouldScroll DOCUMENT ME! ++ */ ++ protected void updateListBoxSelectionForEvent(MouseEvent anEvent, ++ boolean shouldScroll) ++ { ++ // FIXME: Need to implement ++ } ++ ++ /** ++ * InvocationMouseHandler is a listener that listens to mouse events ++ * occuring in the combo box. Note that this listener doesn't listen to ++ * mouse events occuring in the popup portion of the combo box, it only ++ * listens to main combo box part(area that displays selected item). This ++ * listener is responsible for showing and hiding popup portion of the ++ * combo box. ++ */ ++ protected class InvocationMouseHandler extends MouseAdapter ++ { ++ /** ++ * Creates a new InvocationMouseHandler object. ++ */ ++ protected InvocationMouseHandler() ++ { ++ } ++ ++ /** ++ * This method is invoked whenever mouse is being pressed over the main ++ * part of the combo box. This method will show popup if the popup is ++ * not shown on the screen right now, and it will hide popup otherwise. ++ * ++ * @param e MouseEvent that should be handled ++ */ ++ public void mousePressed(MouseEvent e) ++ { ++ if (comboBox.isEnabled()) ++ togglePopup(); ++ } ++ ++ /** ++ * This method is invoked whenever mouse is released ++ * ++ * @param e MouseEvent that should be handled ++ */ ++ public void mouseReleased(MouseEvent e) ++ { ++ // FIXME: should handle dragging events here, if ++ // mouse was dragged and released over the list of combobox's items, ++ // then item over which it was released should be selected. ++ } ++ } ++ ++ /** ++ * InvocationMouseMotionListener is a mouse listener that listens to mouse ++ * dragging events occuring in the combo box. ++ */ ++ protected class InvocationMouseMotionHandler extends MouseMotionAdapter ++ { ++ /** ++ * Creates a new InvocationMouseMotionHandler object. ++ */ ++ protected InvocationMouseMotionHandler() ++ { ++ } ++ ++ public void mouseDragged(MouseEvent e) ++ { ++ } ++ } ++ ++ /** ++ * ItemHandler is an item listener that listens to selection event occuring ++ * in the combo box. FIXME: should specify here what it does when item is ++ * selected or deselected in the combo box list. ++ */ ++ protected class ItemHandler extends Object implements ItemListener ++ { ++ /** ++ * Creates a new ItemHandler object. ++ */ ++ protected ItemHandler() ++ { ++ } ++ ++ /** ++ * This method responds to the selection events occuring in the combo box. ++ * ++ * @param e ItemEvent specifying the combo box's selection ++ */ ++ public void itemStateChanged(ItemEvent e) ++ { ++ } ++ } ++ ++ /** ++ * ListMouseHandler is a listener that listens to mouse events occuring in ++ * the combo box's list of items. This class is responsible for hiding ++ * popup portion of the combo box if the mouse is released inside the combo ++ * box's list. ++ */ ++ protected class ListMouseHandler extends MouseAdapter ++ { ++ protected ListMouseHandler() ++ { ++ } ++ ++ public void mousePressed(MouseEvent e) ++ { ++ } ++ ++ public void mouseReleased(MouseEvent anEvent) ++ { ++ int index = list.locationToIndex(anEvent.getPoint()); ++ comboBox.setSelectedIndex(index); ++ hide(); ++ } ++ } ++ ++ /** ++ * ListMouseMotionHandler listens to mouse motion events occuring in the ++ * combo box's list. This class is responsible for highlighting items in ++ * the list when mouse is moved over them ++ */ ++ protected class ListMouseMotionHandler extends MouseMotionAdapter ++ { ++ protected ListMouseMotionHandler() ++ { ++ } ++ ++ public void mouseMoved(MouseEvent anEvent) ++ { ++ // FIXME: Need to implement ++ // NOTE: the change isn't reflected in data model of the combo box. ++ // The items are only highlited, but not selected ++ } ++ } ++ ++ /** ++ * This class listens to changes occuring in the bound properties of the ++ * combo box ++ */ ++ protected class PropertyChangeHandler extends Object ++ implements PropertyChangeListener ++ { ++ protected PropertyChangeHandler() ++ { ++ } ++ ++ public void propertyChange(PropertyChangeEvent e) ++ { ++ if (e.getPropertyName().equals(JComboBox.RENDERER_CHANGED_PROPERTY)) ++ { ++ list.setCellRenderer((ListCellRenderer) e.getNewValue()); ++ revalidate(); ++ repaint(); ++ } ++ } ++ } ++ ++ // ------ private helper methods -------------------- ++ ++ /** ++ * This method uninstalls listeners installed by the UI ++ */ ++ private void uninstallListeners() ++ { ++ uninstallListListeners(); ++ uninstallComboBoxListeners(); ++ uninstallComboBoxModelListeners(comboBox.getModel()); ++ } ++ ++ /** ++ * This method uninstalls Listeners registered with combo boxes list of ++ * items ++ */ ++ private void uninstallListListeners() ++ { ++ list.removeMouseListener(listMouseListener); ++ listMouseListener = null; ++ ++ list.removeMouseMotionListener(listMouseMotionListener); ++ listMouseMotionListener = null; ++ } ++ ++ /** ++ * This method uninstalls listeners listening to combo box associated with ++ * this popup menu ++ */ ++ private void uninstallComboBoxListeners() ++ { ++ comboBox.removeMouseListener(mouseListener); ++ mouseListener = null; ++ ++ comboBox.removeMouseMotionListener(mouseMotionListener); ++ mouseMotionListener = null; ++ ++ comboBox.removeItemListener(itemListener); ++ itemListener = null; ++ ++ comboBox.removePropertyChangeListener(propertyChangeListener); ++ propertyChangeListener = null; ++ } ++ ++ // -------------------------------------------------------------------- ++ // The following classes are here only for backwards API compatibility ++ // They aren't used. ++ // -------------------------------------------------------------------- ++ ++ /** ++ * This class is not used any more. ++ */ ++ public class ListDataHandler extends Object implements ListDataListener ++ { ++ public ListDataHandler() ++ { ++ } ++ ++ public void contentsChanged(ListDataEvent e) ++ { ++ } ++ ++ public void intervalAdded(ListDataEvent e) ++ { ++ } ++ ++ public void intervalRemoved(ListDataEvent e) ++ { ++ } ++ } ++ ++ /** ++ * This class is not used anymore ++ */ ++ protected class ListSelectionHandler extends Object ++ implements ListSelectionListener ++ { ++ protected ListSelectionHandler() ++ { ++ } ++ ++ public void valueChanged(ListSelectionEvent e) ++ { ++ } ++ } ++ ++ /** ++ * This class is not used anymore ++ */ ++ public class InvocationKeyHandler extends KeyAdapter ++ { ++ public InvocationKeyHandler() ++ { ++ } ++ ++ public void keyReleased(KeyEvent e) ++ { ++ } ++ } ++} +Index: javax/swing/plaf/basic/BasicDefaults.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicDefaults.java +diff -N javax/swing/plaf/basic/BasicDefaults.java +--- javax/swing/plaf/basic/BasicDefaults.java 27 Nov 2003 09:09:13 -0000 1.6 ++++ /dev/null 1 Jan 1970 00:00:00 -0000 +@@ -1,126 +0,0 @@ +-/* BasicDefaults.java +- Copyright (C) 2002 Free Software Foundation, Inc. +- +-This file is part of GNU Classpath. +- +-GNU Classpath is free software; you can redistribute it and/or modify +-it under the terms of the GNU General Public License as published by +-the Free Software Foundation; either version 2, or (at your option) +-any later version. +- +-GNU Classpath is distributed in the hope that it will be useful, but +-WITHOUT ANY WARRANTY; without even the implied warranty of +-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-General Public License for more details. +- +-You should have received a copy of the GNU General Public License +-along with GNU Classpath; see the file COPYING. If not, write to the +-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +-02111-1307 USA. +- +-Linking this library statically or dynamically with other modules is +-making a combined work based on this library. Thus, the terms and +-conditions of the GNU General Public License cover the whole +-combination. +- +-As a special exception, the copyright holders of this library give you +-permission to link this library with independent modules to produce an +-executable, regardless of the license terms of these independent +-modules, and to copy and distribute the resulting executable under +-terms of your choice, provided that you also meet, for each linked +-independent module, the terms and conditions of the license of that +-module. An independent module is a module which is not derived from +-or based on this library. If you modify this library, you may extend +-this exception to your version of the library, but you are not +-obligated to do so. If you do not wish to do so, delete this +-exception statement from your version. */ +- +- +-package javax.swing.plaf.basic; +- +-import java.awt.Color; +-import java.awt.Component; +-import java.awt.Graphics; +-import java.awt.Insets; +-import javax.swing.UIDefaults; +-import javax.swing.border.MatteBorder; +- +-class BasicBorder extends MatteBorder +-{ +- static Color BtnPointClr = new Color( 180, 180, 180); +- +- BasicBorder() +- { +- super(5,5,5,5, Color.black); +- } +- +- public void paintBorder(Component c, +- Graphics g, +- int x, +- int y, +- int width, +- int height) +- { +- // System.out.println("PAINT-------------------------------------------BORDER"); +- +- if (g != null) +- { +- g.setColor( BtnPointClr); +- g.draw3DRect( 0, 0, width-1, height-1, true); +- } +- } +- } +- +-class PanelBorder extends MatteBorder +-{ +- PanelBorder() +- { +- super(5,5,5,5, Color.black); +- } +- +- public void paintBorder(Component c, +- Graphics g, +- int x, +- int y, +- int width, +- int height) +- { +- // System.out.println("PAINT-------------------------------------------BORDER"); +- super.paintBorder(c, g, x, y, width, height); +- } +- } +- +-public class BasicDefaults extends UIDefaults +-{ +- public BasicDefaults() +- { +- // System.out.println("BasicDefaults !!!!!!!!!!!!!!!!!!!!!!!!!"); +- put("JButton", "javax.swing.plaf.basic.BasicButtonUI"); +- put("JLabel", "javax.swing.plaf.basic.BasicLabelUI"); +- +- put("JPanel", "javax.swing.plaf.basic.BasicPanelUI"); +- put("JCheckBox", "javax.swing.plaf.basic.BasicCheckBoxUI"); +- put("JRadioButton", "javax.swing.plaf.basic.BasicRadioButtonUI"); +- put("JToggleButton", "javax.swing.plaf.basic.BasicToggleButtonUI"); +- put("JOptionPane", "javax.swing.plaf.basic.BasicOptionPaneUI"); +- put("JList", "javax.swing.plaf.basic.BasicListUI"); +- put("JTree", "javax.swing.plaf.basic.BasicTreeUI"); +- put("JTextComponent", "javax.swing.plaf.basic.BasicTextUI"); +- put("JTabbedPane", "javax.swing.plaf.basic.BasicTabbedPaneUI"); +- put("JScrollPane", "javax.swing.plaf.basic.BasicScrollPaneUI"); +- put("JViewport", "javax.swing.plaf.basic.BasicViewportUI"); +- +- put("JButton.border", "javax.swing.plaf.basic.BasicBorder"); +- put("JPanel.border", "javax.swing.plaf.basic.PanelBorder"); +- +- put("JToggleButton.border", "javax.swing.plaf.basic.PanelBorder"); +- put("JCheckBox.border", "javax.swing.plaf.basic.PanelBorder"); +- put("JRadioButton.border", "javax.swing.plaf.basic.PanelBorder"); +- +- put("AbstractUndoableEdit.undoText", "Undo"); +- put("AbstractUndoableEdit.redoText", "Redo"); +- } +- +-} +- +- +Index: javax/swing/plaf/basic/BasicDesktopIconUI.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicDesktopIconUI.java +diff -N javax/swing/plaf/basic/BasicDesktopIconUI.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicDesktopIconUI.java 6 Sep 2004 16:36:03 -0000 +@@ -0,0 +1,589 @@ ++/* BasicDesktopIconUI.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.plaf.basic; ++ ++import java.awt.BorderLayout; ++import java.awt.Color; ++import java.awt.Component; ++import java.awt.Dimension; ++import java.awt.Graphics; ++import java.awt.Insets; ++import java.awt.Rectangle; ++import java.awt.event.ActionEvent; ++import java.awt.event.ActionListener; ++import java.awt.event.MouseEvent; ++import java.beans.PropertyChangeEvent; ++import java.beans.PropertyChangeListener; ++import java.beans.PropertyVetoException; ++import javax.swing.Icon; ++import javax.swing.JButton; ++import javax.swing.JComponent; ++import javax.swing.JDesktopPane; ++import javax.swing.JInternalFrame; ++import javax.swing.JInternalFrame.JDesktopIcon; ++import javax.swing.SwingConstants; ++import javax.swing.border.Border; ++import javax.swing.event.MouseInputAdapter; ++import javax.swing.event.MouseInputListener; ++import javax.swing.plaf.ComponentUI; ++import javax.swing.plaf.DesktopIconUI; ++import javax.swing.plaf.DesktopPaneUI; ++ ++ ++/** ++ * This class acts as the UI delegate for JDesktopIcons for the Basic look and feel. ++ */ ++public class BasicDesktopIconUI extends DesktopIconUI ++{ ++ /** ++ * This helper class handles mouse events that occur on the JDesktopIcon. ++ */ ++ public class MouseInputHandler extends MouseInputAdapter ++ { ++ /** The x offset from the MouseEvent coordinates to the top left corner. */ ++ private transient int xOffset; ++ ++ /** The y offset fromt he MouseEvent coordinates to the top left corner. */ ++ private transient int yOffset; ++ ++ /** A cached value of the JDesktopPane that parents this JDesktopIcon. */ ++ private transient JDesktopPane pane; ++ ++ /** ++ * This method is called when the mouse is dragged in the JDesktopIcon. ++ * ++ * @param e The MouseEvent. ++ */ ++ public void mouseDragged(MouseEvent e) ++ { ++ Rectangle b = desktopIcon.getBounds(); ++ ++ moveAndRepaint(desktopIcon, b.x + e.getX() - xOffset, ++ b.y + e.getY() - yOffset, b.width, b.height); ++ } ++ ++ /** ++ * This method is called when the mouse is moved in the JDesktopIcon. ++ * ++ * @param e The MouseEvent. ++ */ ++ public void mouseMoved(MouseEvent e) ++ { ++ // Nothing to do. ++ } ++ ++ /** ++ * This method is called when the mouse is pressed in the JDesktopIcon. ++ * ++ * @param e The MouseEvent. ++ */ ++ public void mousePressed(MouseEvent e) ++ { ++ xOffset = e.getX(); ++ yOffset = e.getY(); ++ pane = frame.getDesktopPane(); ++ if (pane != null) ++ pane.getDesktopManager().beginDraggingFrame(desktopIcon); ++ } ++ ++ /** ++ * This method is called when the mouse is released in the JDesktopIcon. ++ * ++ * @param e The MouseEvent. ++ */ ++ public void mouseReleased(MouseEvent e) ++ { ++ if (pane != null) ++ pane.getDesktopManager().endDraggingFrame(desktopIcon); ++ xOffset = 0; ++ yOffset = 0; ++ } ++ ++ /** ++ * This method moves and repaints the JDesktopIcon to the given bounds. ++ * ++ * @param f The JComponent to move and repaint. ++ * @param newX The new x coordinate. ++ * @param newY The new y coordinate. ++ * @param newWidth The new width. ++ * @param newHeight The new height. ++ */ ++ public void moveAndRepaint(JComponent f, int newX, int newY, int newWidth, ++ int newHeight) ++ { ++ if (pane != null) ++ pane.getDesktopManager().dragFrame(f, newX, newY); ++ else ++ desktopIcon.setBounds(newX, newY, newWidth, newHeight); ++ } ++ } ++ ++ /** ++ * This class acts as the border for the JDesktopIcon. ++ */ ++ private class DesktopIconBorder implements Border ++ { ++ /** The left inset value. */ ++ int left = 10; ++ ++ /** The top inset value. */ ++ int top = 4; ++ ++ /** The right inset value. */ ++ int right = top; ++ ++ /** The bottom inset value. */ ++ int bottom = top; ++ ++ /** ++ * This method returns the insets of the border. ++ * ++ * @param c The Component to find border insets for. ++ * ++ * @return The border insets. ++ */ ++ public Insets getBorderInsets(Component c) ++ { ++ return new Insets(top, left, bottom, right); ++ } ++ ++ /** ++ * This method returns whether the border is opaque. ++ * ++ * @return Whether the border is opaque. ++ */ ++ public boolean isBorderOpaque() ++ { ++ return true; ++ } ++ ++ /** ++ * This method paints the border. ++ * ++ * @param c The Component the border is in. ++ * @param g The Graphics object to paint with. ++ * @param x The x coordinate of the Component. ++ * @param y The y coordinate of the Component. ++ * @param width The width of the Component. ++ * @param height The height of the Component. ++ */ ++ public void paintBorder(Component c, Graphics g, int x, int y, int width, ++ int height) ++ { ++ g.translate(x, y); ++ Color saved = g.getColor(); ++ ++ g.setColor(Color.LIGHT_GRAY); ++ ++ g.fillRect(0, 0, left, height); ++ g.fillRect(0, 0, width, top); ++ g.fillRect(0, height - bottom, width, bottom); ++ g.fillRect(width - right, 0, right, height); ++ ++ g.setColor(Color.BLACK); ++ g.drawRect(0, 0, width - 1, height - 1); ++ ++ int fHeight = height / 4; ++ int hLeft = left / 2; ++ ++ g.setColor(Color.BLACK); ++ g.fillRect(hLeft, fHeight, 2, 2); ++ g.fillRect(hLeft, fHeight * 2, 2, 2); ++ g.fillRect(hLeft, fHeight * 3, 2, 2); ++ ++ g.setColor(saved); ++ g.translate(-x, -y); ++ } ++ } ++ ++ /** The static width and height of the iconSize. */ ++ private static final int iconSize = 16; ++ ++ /** ++ * This class represents the default frame icon when none ++ * is supplied by the JInternalFrame. ++ */ ++ static class InternalFrameDefaultMenuIcon implements Icon ++ { ++ /** ++ * This returns the icon height. ++ * ++ * @return The icon height. ++ */ ++ public int getIconHeight() ++ { ++ return iconSize; ++ } ++ ++ /** ++ * This returns the icon width. ++ * ++ * @return The icon width. ++ */ ++ public int getIconWidth() ++ { ++ return iconSize; ++ } ++ ++ /** ++ * This method paints the icon. ++ * ++ * @param c The Component this icon belongs to. ++ * @param g The Graphics object to paint with. ++ * @param x The x coordinate to paint at. ++ * @param y The y coordinate to paint at. ++ */ ++ public void paintIcon(Component c, Graphics g, int x, int y) ++ { ++ g.translate(x, y); ++ Color saved = g.getColor(); ++ ++ g.setColor(Color.BLUE); ++ g.fillRect(0, 0, iconSize, (int) ((double) iconSize / 3) + 1); ++ ++ g.setColor(Color.WHITE); ++ g.fillRect(0, (int) ((double) iconSize / 3), iconSize, iconSize * 5 / 6); ++ ++ g.setColor(Color.GRAY); ++ g.drawRect(0, 0, iconSize, iconSize); ++ ++ g.setColor(saved); ++ g.translate(-x, -y); ++ } ++ } ++ ++ /** The default JDesktopIcon width. */ ++ private static final int iconWidth = 160; ++ ++ /** The default JDesktopIcon height */ ++ private static final int iconHeight = 35; ++ ++ /** The JDesktopIcon this UI delegate represents. */ ++ protected JDesktopIcon desktopIcon; ++ ++ /** The JInternalFrame associated with the JDesktopIcon. */ ++ protected JInternalFrame frame; ++ ++ /** The MouseListener responsible for reacting to MouseEvents on the JDesktopIcon. */ ++ private transient MouseInputListener mouseHandler; ++ ++ /** The Button in the JDesktopIcon responsible for deiconifying it. */ ++ private transient BoundButton button; ++ ++ /** The PropertyChangeListener listening to the JDesktopIcon. */ ++ private transient PropertyChangeListener propertyHandler; ++ ++ /** The default icon used when no frame icon is given by the JInternalFrame. */ ++ static Icon defaultIcon = new InternalFrameDefaultMenuIcon(); ++ ++ /** ++ * This is a helper class that is used in JDesktopIcon and gives the Button a predetermined size. ++ */ ++ private class BoundButton extends JButton ++ { ++ /** ++ * Creates a new BoundButton object. ++ * ++ * @param title The title of the button. ++ */ ++ public BoundButton(String title) ++ { ++ super(title); ++ } ++ ++ /** ++ * This method returns a standard size (based on the defaults of the JDesktopIcon) and the insets. ++ * ++ * @return The preferred size of the JDesktopIcon. ++ */ ++ public Dimension getPreferredSize() ++ { ++ Insets insets = desktopIcon.getInsets(); ++ return new Dimension(iconWidth - insets.left - insets.right, ++ iconHeight - insets.top - insets.bottom); ++ } ++ ++ /** ++ * This method returns the minimum size of the button. ++ * ++ * @return The minimum size of the button. ++ */ ++ public Dimension getMinimumSize() ++ { ++ return getPreferredSize(); ++ } ++ ++ /** ++ * This method returns the maximum size of the button. ++ * ++ * @return The maximum size of the button. ++ */ ++ public Dimension getMaximumSize() ++ { ++ return getPreferredSize(); ++ } ++ } ++ ++ /** ++ * Creates a new BasicDesktopIconUI object. ++ */ ++ public BasicDesktopIconUI() ++ { ++ } ++ ++ /** ++ * This method creates a new BasicDesktopIconUI for the given JComponent. ++ * ++ * @param c The JComponent to create a UI for. ++ * ++ * @return A new BasicDesktopIconUI. ++ */ ++ public static ComponentUI createUI(JComponent c) ++ { ++ return new BasicDesktopIconUI(); ++ } ++ ++ /** ++ * This method installs the UI for the given JComponent. ++ * ++ * @param c The JComponent to install this UI for. ++ */ ++ public void installUI(JComponent c) ++ { ++ if (c instanceof JDesktopIcon) ++ { ++ desktopIcon = (JDesktopIcon) c; ++ desktopIcon.setLayout(new BorderLayout()); ++ frame = desktopIcon.getInternalFrame(); ++ ++ installDefaults(); ++ installComponents(); ++ installListeners(); ++ ++ desktopIcon.setOpaque(true); ++ } ++ } ++ ++ /** ++ * This method uninstalls the UI for the given JComponent. ++ * ++ * @param c The JComponent to uninstall this UI for. ++ */ ++ public void uninstallUI(JComponent c) ++ { ++ desktopIcon.setOpaque(false); ++ ++ uninstallListeners(); ++ uninstallComponents(); ++ uninstallDefaults(); ++ ++ frame = null; ++ desktopIcon.setLayout(null); ++ desktopIcon = null; ++ } ++ ++ /** ++ * This method installs the necessary sub components for the JDesktopIcon. ++ */ ++ protected void installComponents() ++ { ++ // Try to create a button based on what the frame's ++ // state is currently ++ button = new BoundButton(frame.getTitle()); ++ button.setHorizontalAlignment(SwingConstants.LEFT); ++ button.setHorizontalTextPosition(SwingConstants.TRAILING); ++ ++ Icon use = frame.getFrameIcon(); ++ if (use == null) ++ use = defaultIcon; ++ button.setIcon(use); ++ ++ desktopIcon.add(button, SwingConstants.CENTER); ++ } ++ ++ /** ++ * This method uninstalls the sub components for the JDesktopIcon. ++ */ ++ protected void uninstallComponents() ++ { ++ desktopIcon.remove(button); ++ ++ button = null; ++ } ++ ++ /** ++ * This method installs the listeners needed by this UI. ++ */ ++ protected void installListeners() ++ { ++ mouseHandler = createMouseInputListener(); ++ ++ desktopIcon.addMouseMotionListener(mouseHandler); ++ desktopIcon.addMouseListener(mouseHandler); ++ ++ propertyHandler = new PropertyChangeListener() ++ { ++ public void propertyChange(PropertyChangeEvent e) ++ { ++ if (e.getPropertyName().equals(JInternalFrame.TITLE_PROPERTY)) ++ button.setText(desktopIcon.getInternalFrame().getTitle()); ++ else if (e.getPropertyName().equals(JInternalFrame.FRAME_ICON_PROPERTY)) ++ { ++ Icon use = desktopIcon.getInternalFrame().getFrameIcon(); ++ if (use == null) ++ use = defaultIcon; ++ button.setIcon(use); ++ } ++ desktopIcon.revalidate(); ++ desktopIcon.repaint(); ++ } ++ }; ++ frame.addPropertyChangeListener(propertyHandler); ++ ++ button.addActionListener(new ActionListener() ++ { ++ public void actionPerformed(ActionEvent e) ++ { ++ deiconize(); ++ } ++ }); ++ } ++ ++ /** ++ * This method uninstalls the listeners needed by the UI. ++ */ ++ protected void uninstallListeners() ++ { ++ // button is nulled so no need to remove it. ++ ++ frame.removePropertyChangeListener(propertyHandler); ++ propertyHandler = null; ++ ++ desktopIcon.removeMouseMotionListener(mouseHandler); ++ desktopIcon.removeMouseListener(mouseHandler); ++ } ++ ++ /** ++ * This method installs the defaults for the JDesktopIcon. ++ */ ++ protected void installDefaults() ++ { ++ // FIXME: Move border to defaults. ++ desktopIcon.setBorder(new DesktopIconBorder()); ++ } ++ ++ /** ++ * This method uninstalls the defaults for the JDesktopIcon. ++ */ ++ protected void uninstallDefaults() ++ { ++ desktopIcon.setBorder(null); ++ } ++ ++ /** ++ * This method creates a new MouseInputListener for the JDesktopIcon. ++ * ++ * @return A new MouseInputListener. ++ */ ++ protected MouseInputListener createMouseInputListener() ++ { ++ return new MouseInputHandler(); ++ } ++ ++ /** ++ * This method returns the preferred size for the given JComponent. ++ * ++ * @param c The JComponent to find a preferred size for. ++ * ++ * @return The preferred size. ++ */ ++ public Dimension getPreferredSize(JComponent c) ++ { ++ return new Dimension(iconWidth, iconHeight); ++ } ++ ++ /** ++ * This method returns the minimum size for the given JComponent. ++ * ++ * @param c The JComponent to find a minimum size for. ++ * ++ * @return The minimum size. ++ */ ++ public Dimension getMinimumSize(JComponent c) ++ { ++ return getPreferredSize(c); ++ } ++ ++ /** ++ * This method returns the maximum size for the given JComponent. ++ * ++ * @param c The JComponent to find a maximum size for. ++ * ++ * @return The maximum size. ++ */ ++ public Dimension getMaximumSize(JComponent c) ++ { ++ return getPreferredSize(c); ++ } ++ ++ /** ++ * This method returns the insets of the given JComponent. ++ * ++ * @param c The JComponent to find insets for. ++ * ++ * @return The insets of the given JComponent. ++ */ ++ public Insets getInsets(JComponent c) ++ { ++ return c.getInsets(); ++ } ++ ++ /** ++ * This method deiconizes the JInternalFrame associated with the JDesktopIcon. ++ */ ++ public void deiconize() ++ { ++ try ++ { ++ frame.setIcon(false); ++ } ++ catch (PropertyVetoException pve) ++ { ++ } ++ } ++} +Index: javax/swing/plaf/basic/BasicDesktopPaneUI.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicDesktopPaneUI.java +diff -N javax/swing/plaf/basic/BasicDesktopPaneUI.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicDesktopPaneUI.java 6 Sep 2004 16:36:04 -0000 +@@ -0,0 +1,459 @@ ++/* BasicDesktopPaneUI.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.plaf.basic; ++ ++import java.awt.Dimension; ++import java.awt.Graphics; ++import java.awt.Insets; ++import java.awt.event.ActionEvent; ++import java.awt.event.MouseEvent; ++import java.beans.PropertyVetoException; ++import javax.swing.AbstractAction; ++import javax.swing.DefaultDesktopManager; ++import javax.swing.DesktopManager; ++import javax.swing.JComponent; ++import javax.swing.JDesktopPane; ++import javax.swing.JInternalFrame; ++import javax.swing.JInternalFrame.JDesktopIcon; ++import javax.swing.KeyStroke; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; ++import javax.swing.event.MouseInputAdapter; ++import javax.swing.event.MouseInputListener; ++import javax.swing.plaf.ComponentUI; ++import javax.swing.plaf.DesktopIconUI; ++import javax.swing.plaf.DesktopPaneUI; ++ ++ ++/** ++ * This class is the UI delegate for JDesktopPane for the Basic look and feel. ++ */ ++public class BasicDesktopPaneUI extends DesktopPaneUI ++{ ++ /** ++ * This helper class is used to handle key events that cause JInternalFrames ++ * to be closed. ++ */ ++ protected class CloseAction extends AbstractAction ++ { ++ /** ++ * This method is called when the action is performed. ++ * ++ * @param e The ActionEvent. ++ */ ++ public void actionPerformed(ActionEvent e) ++ { ++ if (desktop.getSelectedFrame() != null) ++ { ++ try ++ { ++ desktop.getSelectedFrame().setClosed(true); ++ } ++ catch (PropertyVetoException pve) ++ { ++ } ++ } ++ } ++ ++ /** ++ * This method returns whether the action is enabled. ++ * ++ * @return Whether the action is enabled. ++ */ ++ public boolean isEnabled() ++ { ++ if (desktop.getSelectedFrame() != null) ++ return desktop.getSelectedFrame().isClosable(); ++ return false; ++ } ++ } ++ ++ /** ++ * This helper class is used to handle key events that cause JInternalFrames ++ * to be maximized. ++ */ ++ protected class MaximizeAction extends AbstractAction ++ { ++ /** ++ * This method is called when the action is performed. ++ * ++ * @param e The ActionEvent. ++ */ ++ public void actionPerformed(ActionEvent e) ++ { ++ if (desktop.getSelectedFrame() != null) ++ { ++ try ++ { ++ desktop.getSelectedFrame().setMaximum(true); ++ } ++ catch (PropertyVetoException pve) ++ { ++ } ++ } ++ } ++ ++ /** ++ * This method returns whether the action is enabled. ++ * ++ * @return Whether the action is enabled. ++ */ ++ public boolean isEnabled() ++ { ++ if (desktop.getSelectedFrame() != null) ++ return desktop.getSelectedFrame().isMaximizable(); ++ return false; ++ } ++ } ++ ++ /** ++ * This helper class is used to handle key events that cause JInternalFrames ++ * to be minimized. ++ */ ++ protected class MinimizeAction extends AbstractAction ++ { ++ /** ++ * This method is called when the action is performed. ++ * ++ * @param e The ActionEvent. ++ */ ++ public void actionPerformed(ActionEvent e) ++ { ++ if (desktop.getSelectedFrame() != null) ++ { ++ try ++ { ++ desktop.getSelectedFrame().setIcon(true); ++ } ++ catch (PropertyVetoException pve) ++ { ++ } ++ } ++ } ++ ++ /** ++ * This method returns whether the action is enabled. ++ * ++ * @return Whether the action is enabled. ++ */ ++ public boolean isEnabled() ++ { ++ if (desktop.getSelectedFrame() != null) ++ return desktop.getSelectedFrame().isIconifiable(); ++ return false; ++ } ++ } ++ ++ /** ++ * This helper class is used to handle key events that pass the SELECTED ++ * property to the next JInternalFrame in the JDesktopPane's list of ++ * children. ++ */ ++ protected class NavigateAction extends AbstractAction ++ { ++ /** ++ * This method is called when the action is performed. ++ * ++ * @param e The ActionEvent. ++ */ ++ public void actionPerformed(ActionEvent e) ++ { ++ // This is supposed to set the next selected frame. ++ JInternalFrame[] frames = desktop.getAllFrames(); ++ if (frames.length == 0) ++ return; ++ ++ JInternalFrame sFrame = frames[0]; ++ if (desktop.getSelectedFrame() != null) ++ sFrame = desktop.getSelectedFrame(); ++ ++ int i = 0; ++ for (; i < frames.length; i++) ++ if (frames[i] == sFrame) ++ break; ++ ++ // FIXME: Navigate actions go reverse too. ++ if (i == frames.length) ++ i = 0; ++ ++ desktop.setSelectedFrame(frames[i]); ++ } ++ ++ /** ++ * This method returns whether the action is enabled. ++ * ++ * @return Whether this action is enabled. ++ */ ++ public boolean isEnabled() ++ { ++ // Always true. ++ return true; ++ } ++ } ++ ++ /** ++ * This helper class is used to restore the JInternalFrame to its original ++ * size before maximizing or iconifying. ++ */ ++ protected class OpenAction extends AbstractAction ++ { ++ /** ++ * This method is called when the action is performed. ++ * ++ * @param e The ActionEvent. ++ */ ++ public void actionPerformed(ActionEvent e) ++ { ++ JInternalFrame frame = desktop.getSelectedFrame(); ++ if (frame != null) ++ { ++ try ++ { ++ if (frame.isIcon()) ++ frame.setIcon(false); ++ else if (frame.isMaximum()) ++ frame.setMaximum(false); ++ } ++ catch (PropertyVetoException pve) ++ { ++ } ++ } ++ } ++ ++ /** ++ * This method returns whether the action is enabled. ++ * ++ * @return Whether this action is enabled. ++ */ ++ public boolean isEnabled() ++ { ++ // JInternalFrames are always restorable. ++ return true; ++ } ++ } ++ ++ /** The KeyStroke associated with closing JInternalFrames. */ ++ protected KeyStroke closeKey; ++ ++ /** The KeyStroke associated with maximizing JInternalFrames. */ ++ protected KeyStroke maximizeKey; ++ ++ /** The KeyStroke associated with minimizing JInternalFrames. */ ++ protected KeyStroke minimizeKey; ++ ++ /** ++ * The KeyStroke associated with navigating (forward?) through ++ * JInternalFrames. ++ */ ++ protected KeyStroke navigateKey; ++ ++ /** ++ * The KeyStroke associated with navigating (backward?) through ++ * JInternalFrames. ++ */ ++ protected KeyStroke navigateKey2; ++ ++ /** The default desktop manager used with JDesktopPane. */ ++ protected DesktopManager desktopManager; ++ ++ /** The JDesktopPane this UI is used with. */ ++ protected JDesktopPane desktop; ++ ++ /** ++ * Creates a new BasicDesktopPaneUI object. ++ */ ++ public BasicDesktopPaneUI() ++ { ++ } ++ ++ /** ++ * This method creates a BasicDesktopPaneUI for the given JComponent. ++ * ++ * @param c The JComponent to create a UI for. ++ * ++ * @return A new BasicDesktopPaneUI. ++ */ ++ public static ComponentUI createUI(JComponent c) ++ { ++ return new BasicDesktopPaneUI(); ++ } ++ ++ /** ++ * This method returns the maximum size for the given JComponent. ++ * ++ * @param c The JComponent to find a maximum size for. ++ * ++ * @return The maximum size for the given JComponent. ++ */ ++ public Dimension getMaximumSize(JComponent c) ++ { ++ return getPreferredSize(c); ++ } ++ ++ /** ++ * This method returns the minimum size for the given JComponent. ++ * ++ * @param c The JComponent to find a minimum size for. ++ * ++ * @return The minimum size for the given JComponent. ++ */ ++ public Dimension getMinimumSize(JComponent c) ++ { ++ return getPreferredSize(c); ++ } ++ ++ /** ++ * This method returns the preferred size for the given JComponent. ++ * ++ * @param c The JComponent to find a preferred size for. ++ * ++ * @return The preferred size for the given JComponent. ++ */ ++ public Dimension getPreferredSize(JComponent c) ++ { ++ // return null because JDesktopPanes don't have preferred sizes. ++ return null; ++ } ++ ++ /** ++ * This method installs the defaults for the JDesktopPane provided by the ++ * current look and feel. ++ */ ++ protected void installDefaults() ++ { ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ ++ desktop.setBackground(defaults.getColor("Desktop.background")); ++ } ++ ++ /** ++ * This method installs the desktop manager for the JDesktopPane. ++ */ ++ protected void installDesktopManager() ++ { ++ desktopManager = new DefaultDesktopManager(); ++ desktop.setDesktopManager(desktopManager); ++ } ++ ++ /** ++ * This method installs the keyboard actions for the JDesktopPane. ++ */ ++ protected void installKeyboardActions() ++ { ++ // FIXME: create actions and keystrokes. ++ registerKeyboardAction(); ++ } ++ ++ /** ++ * This method installs the UI for the given JComponent. ++ * ++ * @param c The JComponent to install this UI for. ++ */ ++ public void installUI(JComponent c) ++ { ++ if (c instanceof JDesktopPane) ++ { ++ desktop = (JDesktopPane) c; ++ ++ installDefaults(); ++ installDesktopManager(); ++ installKeyboardActions(); ++ } ++ } ++ ++ /** ++ * This method registers the actions to the appropriate Action and Input ++ * maps. ++ */ ++ protected void registerKeyboardAction() ++ { ++ // FIXME: Do the binding. ++ // XXX: the gtk windows tend to intercept a lot of the ++ // key events for themselves. must figure a way past that ++ // before binding ++ } ++ ++ /** ++ * This method reverses the work done by the installDefaults method. ++ */ ++ protected void uninstallDefaults() ++ { ++ desktop.setBackground(null); ++ } ++ ++ /** ++ * This method reverses the work done by the installDesktopManager method. ++ */ ++ protected void uninstallDesktopManager() ++ { ++ desktopManager = null; ++ desktop.setDesktopManager(null); ++ } ++ ++ /** ++ * This method reverses the work done by the installKeyboardActions method. ++ */ ++ protected void uninstallKeyboardActions() ++ { ++ unregisterKeyboardActions(); ++ // FIXME: null the actions and keystrokes. ++ } ++ ++ /** ++ * This method reverses the work done by the registerKeyboardActions method. ++ */ ++ protected void unregisterKeyboardActions() ++ { ++ // FIXME: unmap the keystrokes ++ } ++ ++ /** ++ * This method uninstalls the UI for the given JComponent. It should reverse ++ * all the work done by the installUI method. ++ * ++ * @param c The JComponent to uninstall this UI for. ++ */ ++ public void uninstallUI(JComponent c) ++ { ++ uninstallKeyboardActions(); ++ uninstallDesktopManager(); ++ uninstallDefaults(); ++ ++ desktop = null; ++ } ++} +Index: javax/swing/plaf/basic/BasicFormattedTextFieldUI.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicFormattedTextFieldUI.java +diff -N javax/swing/plaf/basic/BasicFormattedTextFieldUI.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicFormattedTextFieldUI.java 6 Sep 2004 16:36:04 -0000 +@@ -0,0 +1,62 @@ ++/* BasicFormattedTextFieldUI.java ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++ ++package javax.swing.plaf.basic; ++ ++import javax.swing.JComponent; ++import javax.swing.plaf.ComponentUI; ++ ++/** ++ * @since 1.4 ++ */ ++public class BasicFormattedTextFieldUI extends BasicTextFieldUI ++{ ++ public BasicFormattedTextFieldUI() ++ { ++ } ++ ++ public static ComponentUI createUI(JComponent c) ++ { ++ return new BasicFormattedTextFieldUI(); ++ } ++ ++ protected String getPropertyPrefix() ++ { ++ return "FormattedTextField"; ++ } ++} +\ No newline at end of file +Index: javax/swing/plaf/basic/BasicGraphicsUtils.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/plaf/basic/BasicGraphicsUtils.java,v +retrieving revision 1.4 +diff -u -r1.4 BasicGraphicsUtils.java +--- javax/swing/plaf/basic/BasicGraphicsUtils.java 1 Aug 2003 20:10:22 -0000 1.4 ++++ javax/swing/plaf/basic/BasicGraphicsUtils.java 6 Sep 2004 16:36:04 -0000 +@@ -45,11 +45,9 @@ + import java.awt.Graphics2D; + import java.awt.Insets; + import java.awt.Rectangle; +- + import java.awt.font.FontRenderContext; + import java.awt.font.LineMetrics; + import java.awt.font.TextLayout; +- + import java.awt.geom.Rectangle2D; + + import javax.swing.AbstractButton; +@@ -595,11 +593,9 @@ + Rectangle iconRect = new Rectangle(); + Rectangle textRect = new Rectangle(); + Insets insets = b.getInsets(); ++ Insets margin = b.getMargin(); + +- /* For determining the ideal size, do not assume a size restriction. */ +- viewRect = new Rectangle(0, 0, +- /* width */ Integer.MAX_VALUE, +- /* height */ Integer.MAX_VALUE); ++ viewRect = new Rectangle(); + + /* java.awt.Toolkit.getFontMetrics is deprecated. However, it + * seems not obvious how to get to the correct FontMetrics object +@@ -613,14 +609,13 @@ + b.getToolkit().getFontMetrics(b.getFont()), // see comment above + b.getText(), + b.getIcon(), +- b.getVerticalAlignment(), ++ b.getVerticalAlignment(), + b.getHorizontalAlignment(), + b.getVerticalTextPosition(), + b.getHorizontalTextPosition(), + viewRect, iconRect, textRect, + textIconGap); + +- + /* +------------------------+ +------------------------+ + * | | | | + * | ICON | | CONTENTCONTENTCONTENT | +@@ -628,9 +623,14 @@ + * | TEXTTEXTTEXT | | CONTENTCONTENTCONTENT | + * +------------------------+ +------------------------+ + */ ++ + contentRect = textRect.union(iconRect); + +- return new Dimension(insets.left + contentRect.width + insets.right, +- insets.top + contentRect.height + insets.bottom); ++ return new Dimension(insets.left + margin.left ++ + contentRect.width ++ + insets.right + margin.right, ++ insets.top + margin.top ++ + contentRect.height ++ + insets.bottom + margin.bottom); + } + } +Index: javax/swing/plaf/basic/BasicIconFactory.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/plaf/basic/BasicIconFactory.java,v +retrieving revision 1.2 +diff -u -r1.2 BasicIconFactory.java +--- javax/swing/plaf/basic/BasicIconFactory.java 10 May 2003 08:14:36 -0000 1.2 ++++ javax/swing/plaf/basic/BasicIconFactory.java 6 Sep 2004 16:36:04 -0000 +@@ -39,7 +39,14 @@ + package javax.swing.plaf.basic; + + import java.io.Serializable; ++import java.awt.Color; ++import java.awt.Component; ++import java.awt.Graphics; ++import java.awt.Polygon; ++import javax.swing.AbstractButton; + import javax.swing.Icon; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; + /** + * STUBBED + */ +@@ -47,39 +54,183 @@ + { + static final long serialVersionUID = 5605588811185324383L; + ++ static private class DummyIcon ++ implements Icon ++ { ++ public int getIconHeight() { return 10; } ++ public int getIconWidth() { return 10; } ++ public void paintIcon(Component c, Graphics g, int x, int y) ++ { ++ Color save = g.getColor(); ++ g.setColor(c.getForeground()); ++ g.drawRect(x, y, 10, 10); ++ g.setColor(save); ++ } ++ } ++ ++ + public BasicIconFactory() + { + } + public static Icon getMenuItemCheckIcon() + { +- return null; ++ return new DummyIcon(); + } + public static Icon getMenuItemArrowIcon() + { +- return null; ++ return new DummyIcon(); + } + public static Icon getMenuArrowIcon() + { +- return null; ++ return new Icon() ++ { ++ public int getIconHeight() ++ { ++ return 12; ++ } ++ ++ public int getIconWidth() ++ { ++ return 12; ++ } ++ ++ public void paintIcon(Component c, Graphics g, int x, int y) ++ { ++ g.translate(x, y); ++ ++ Color saved = g.getColor(); ++ ++ g.setColor(Color.BLACK); ++ ++ g.fillPolygon(new Polygon(new int[] { 3, 9, 3 }, ++ new int[] { 2, 6, 10 }, ++ 3)); ++ ++ g.setColor(saved); ++ g.translate(-x, -y); ++ } ++ }; + } ++ + public static Icon getCheckBoxIcon() + { +- return null; ++ return new Icon() ++ { ++ public int getIconHeight() ++ { ++ return 10; ++ } ++ public int getIconWidth() ++ { ++ return 10; ++ } ++ public void paintIcon(Component c, Graphics g, int x, int y) ++ { ++ if (c instanceof AbstractButton) ++ { ++ UIDefaults defaults; ++ defaults = UIManager.getLookAndFeelDefaults(); ++ Color hi = defaults.getColor("CheckBox.highlight"); ++ Color low = defaults.getColor("CheckBox.darkShadow"); ++ Color sel = defaults.getColor("CheckBox.foreground"); ++ Color dim = defaults.getColor("CheckBox.shadow"); ++ Polygon check = new Polygon(new int[] {x+3, x+3, x+8}, ++ new int[] {y+5, y+9, y+3}, 3); ++ AbstractButton b = (AbstractButton) c; ++ Color saved = g.getColor(); ++ if (b.isEnabled()) ++ { ++ g.setColor(low); ++ g.drawRect(x, y, 10, 10); ++ g.setColor(hi); ++ g.drawRect(x+1, y+1, 10, 10); ++ if (b.isSelected()) ++ { ++ g.setColor(sel); ++ if (b.isSelected()) ++ { ++ g.drawLine(x+3, y+5, x+3, y+8); ++ g.drawLine(x+4, y+5, x+4, y+8); ++ g.drawLine(x+3, y+8, x+8, y+3); ++ g.drawLine(x+4, y+8, x+8, y+3); ++ } ++ } ++ } ++ else ++ { ++ g.setColor(hi); ++ g.drawRect(x, y, 10, 10); ++ if (b.isSelected()) ++ { ++ g.drawLine(x+3, y+5, x+3, y+9); ++ g.drawLine(x+3, y+9, x+8, y+3); ++ } ++ } ++ g.setColor(saved); ++ } ++ } ++ }; + } ++ + public static Icon getRadioButtonIcon() + { +- return null; ++ return new Icon() ++ { ++ public int getIconHeight() ++ { ++ return 12; ++ } ++ public int getIconWidth() ++ { ++ return 12; ++ } ++ public void paintIcon(Component c, Graphics g, int x, int y) ++ { ++ UIDefaults defaults; ++ defaults = UIManager.getLookAndFeelDefaults(); ++ Color hi = defaults.getColor("RadioButton.highlight"); ++ Color low = defaults.getColor("RadioButton.darkShadow"); ++ Color sel = defaults.getColor("RadioButton.foreground"); ++ Color dim = defaults.getColor("RadioButton.shadow"); ++ ++ if (c instanceof AbstractButton) ++ { ++ AbstractButton b = (AbstractButton) c; ++ Color saved = g.getColor(); ++ if (b.isEnabled()) ++ { ++ g.setColor(low); ++ g.drawOval(x, y, 12, 12); ++ g.setColor(hi); ++ g.drawOval(x+1, y+1, 12, 12); ++ if (b.isSelected()) ++ { ++ g.setColor(sel); ++ g.fillOval(x+4, y+4, 6, 6); ++ } ++ } ++ else ++ { ++ g.setColor(hi); ++ g.drawOval(x, y, 12, 12); ++ if (b.isSelected()) ++ g.fillOval(x+4, y+4, 6, 6); ++ } ++ g.setColor(saved); ++ } ++ } ++ }; + } + public static Icon getCheckBoxMenuItemIcon() + { +- return null; ++ return getCheckBoxIcon(); + } + public static Icon getRadioButtonMenuItemIcon() + { +- return null; ++ return getRadioButtonIcon(); + } + public static Icon createEmptyFrameIcon() + { +- return null; ++ return new DummyIcon(); + } + } // class BasicIconFactory +Index: javax/swing/plaf/basic/BasicInternalFrameTitlePane.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicInternalFrameTitlePane.java +diff -N javax/swing/plaf/basic/BasicInternalFrameTitlePane.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicInternalFrameTitlePane.java 6 Sep 2004 16:36:04 -0000 +@@ -0,0 +1,1004 @@ ++/* BasicInternalFrameTitlePane.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.plaf.basic; ++ ++import java.awt.Color; ++import java.awt.Component; ++import java.awt.Container; ++import java.awt.Dimension; ++import java.awt.Font; ++import java.awt.FontMetrics; ++import java.awt.Graphics; ++import java.awt.Insets; ++import java.awt.LayoutManager; ++import java.awt.Polygon; ++import java.awt.Rectangle; ++import java.awt.event.ActionEvent; ++import java.awt.event.KeyEvent; ++import java.beans.PropertyChangeEvent; ++import java.beans.PropertyChangeListener; ++import java.beans.PropertyVetoException; ++import javax.swing.AbstractAction; ++import javax.swing.Action; ++import javax.swing.Icon; ++import javax.swing.JButton; ++import javax.swing.JComponent; ++import javax.swing.JInternalFrame; ++import javax.swing.JLabel; ++import javax.swing.JMenu; ++import javax.swing.JMenuBar; ++import javax.swing.JMenuItem; ++import javax.swing.SwingConstants; ++import javax.swing.SwingUtilities; ++import javax.swing.event.InternalFrameEvent; ++import javax.swing.UIManager; ++import javax.swing.UIDefaults; ++ ++ ++/** ++ * This class acts as a titlebar for JInternalFrames. ++ */ ++public class BasicInternalFrameTitlePane extends JComponent ++{ ++ /** ++ * The Action responsible for closing the JInternalFrame. ++ */ ++ protected class CloseAction extends AbstractAction ++ { ++ /** ++ * This method is called when something closes the JInternalFrame. ++ * ++ * @param e The ActionEvent. ++ */ ++ public void actionPerformed(ActionEvent e) ++ { ++ if (frame.isClosable()) ++ { ++ try ++ { ++ frame.setClosed(true); ++ } ++ catch (PropertyVetoException pve) ++ { ++ } ++ } ++ } ++ } ++ ++ /** ++ * This Action is responsible for iconifying the JInternalFrame. ++ */ ++ protected class IconifyAction extends AbstractAction ++ { ++ /** ++ * This method is called when the user wants to iconify the ++ * JInternalFrame. ++ * ++ * @param e The ActionEvent. ++ */ ++ public void actionPerformed(ActionEvent e) ++ { ++ if (frame.isIconifiable() && ! frame.isIcon()) ++ { ++ try ++ { ++ frame.setIcon(true); ++ } ++ catch (PropertyVetoException pve) ++ { ++ } ++ } ++ } ++ } ++ ++ /** ++ * This Action is responsible for maximizing the JInternalFrame. ++ */ ++ protected class MaximizeAction extends AbstractAction ++ { ++ /** ++ * This method is called when the user wants to maximize the ++ * JInternalFrame. ++ * ++ * @param e The ActionEvent. ++ */ ++ public void actionPerformed(ActionEvent e) ++ { ++ try ++ { ++ if (frame.isMaximizable() && ! frame.isMaximum()) ++ frame.setMaximum(true); ++ else if (frame.isMaximum()) ++ frame.setMaximum(false); ++ } ++ catch (PropertyVetoException pve) ++ { ++ } ++ } ++ } ++ ++ /** ++ * This Action is responsible for dragging the JInternalFrame. ++ */ ++ protected class MoveAction extends AbstractAction ++ { ++ /** ++ * This method is called when the user wants to drag the JInternalFrame. ++ * ++ * @param e The ActionEvent. ++ */ ++ public void actionPerformed(ActionEvent e) ++ { ++ // FIXME: Implement keyboard driven? move actions. ++ } ++ } ++ ++ /** ++ * This Action is responsible for restoring the JInternalFrame. Restoring ++ * the JInternalFrame is the same as setting the maximum property to false. ++ */ ++ protected class RestoreAction extends AbstractAction ++ { ++ /** ++ * This method is called when the user wants to restore the ++ * JInternalFrame. ++ * ++ * @param e The ActionEvent. ++ */ ++ public void actionPerformed(ActionEvent e) ++ { ++ if (frame.isMaximum()) ++ { ++ try ++ { ++ frame.setMaximum(false); ++ } ++ catch (PropertyVetoException pve) ++ { ++ } ++ } ++ } ++ } ++ ++ /** ++ * This action is responsible for sizing the JInternalFrame. ++ */ ++ protected class SizeAction extends AbstractAction ++ { ++ /** ++ * This method is called when the user wants to resize the JInternalFrame. ++ * ++ * @param e The ActionEvent. ++ */ ++ public void actionPerformed(ActionEvent e) ++ { ++ // FIXME: Not sure how size actions should be handled. ++ } ++ } ++ ++ /** ++ * This class is responsible for handling property change events from the ++ * JInternalFrame and adjusting the Title Pane as necessary. ++ */ ++ protected class PropertyChangeHandler implements PropertyChangeListener ++ { ++ /** ++ * This method is called when a PropertyChangeEvent is received by the ++ * Title Pane. ++ * ++ * @param evt The PropertyChangeEvent. ++ */ ++ public void propertyChange(PropertyChangeEvent evt) ++ { ++ // The title and frameIcon are taken care of during painting time. ++ // The only other thing this will care about are the "is----izable" ++ // properties. So we call enable actions to properly handle the ++ // buttons and menu items for us. ++ enableActions(); ++ } ++ } ++ ++ /** ++ * This class acts as the MenuBar for the TitlePane. Clicking on the Frame ++ * Icon in the top left corner will activate it. ++ */ ++ protected class SystemMenuBar extends JMenuBar ++ { ++ /** ++ * This method returns true if it can receive focus. ++ * ++ * @return True if this Component can receive focus. ++ */ ++ public boolean isFocusTransversable() ++ { ++ return true; ++ } ++ ++ /** ++ * This method returns true if this Component is expected to paint all of ++ * itself. ++ * ++ * @return True if this Component is expect to paint all of itself. ++ */ ++ public boolean isOpaque() ++ { ++ return true; ++ } ++ ++ /** ++ * This method paints this Component. ++ * ++ * @param g The Graphics object to paint with. ++ */ ++ public void paint(Graphics g) ++ { ++ Icon frameIcon = frame.getFrameIcon(); ++ if (frameIcon == null) ++ frameIcon = BasicDesktopIconUI.defaultIcon; ++ frameIcon.paintIcon(this, g, 0, 0); ++ } ++ ++ /** ++ * This method requests that focus be given to this Component. ++ */ ++ public void requestFocus() ++ { ++ super.requestFocus(); ++ } ++ } ++ ++ /** ++ * This class acts as the Layout Manager for the TitlePane. ++ */ ++ protected class TitlePaneLayout implements LayoutManager ++ { ++ /** ++ * This method is called when adding a Component to the Container. ++ * ++ * @param name The name to reference the added Component by. ++ * @param c The Component to add. ++ */ ++ public void addLayoutComponent(String name, Component c) ++ { ++ // Do nothing. ++ } ++ ++ /** ++ * This method is called to lay out the children of the Title Pane. ++ * ++ * @param c The Container to lay out. ++ */ ++ public void layoutContainer(Container c) ++ { ++ enableActions(); ++ ++ Insets insets = c.getInsets(); ++ int width = c.getBounds().width - insets.left - insets.right; ++ int height = c.getBounds().height - insets.top - insets.bottom; ++ ++ // MenuBar is always present and located at the top left corner. ++ Dimension menupref = menuBar.getPreferredSize(); ++ menuBar.setBounds(insets.left, insets.top, menupref.width, height); ++ ++ int loc = width + insets.left; ++ ++ Insets i = closeButton.getInsets(); ++ Dimension prefs = new Dimension(iconSize + i.left + i.right, ++ iconSize + i.top + i.bottom); ++ int top = insets.top + (height - prefs.height) / 2; ++ if (closeAction.isEnabled()) ++ { ++ loc -= prefs.width; ++ closeButton.setVisible(true); ++ closeButton.setBounds(loc, top, prefs.width, prefs.height); ++ } ++ else ++ closeButton.setVisible(false); ++ ++ if (maximizeAction.isEnabled()) ++ { ++ loc -= prefs.width; ++ maxButton.setVisible(true); ++ maxButton.setBounds(loc, top, prefs.width, prefs.height); ++ } ++ else ++ maxButton.setVisible(false); ++ ++ if (iconifyAction.isEnabled()) ++ { ++ loc -= prefs.width; ++ iconButton.setVisible(true); ++ iconButton.setBounds(loc, top, prefs.width, prefs.height); ++ } ++ else ++ iconButton.setVisible(false); ++ ++ if (title != null) ++ title.setBounds(insets.left + menupref.width, insets.top, ++ loc - menupref.width - insets.left, height); ++ } ++ ++ /** ++ * This method returns the minimum size of the given Container given the ++ * children that it has. ++ * ++ * @param c The Container to get a minimum size for. ++ * ++ * @return The minimum size of the Container. ++ */ ++ public Dimension minimumLayoutSize(Container c) ++ { ++ return preferredLayoutSize(c); ++ } ++ ++ /** ++ * This method returns the preferred size of the given Container taking ++ * into account the children that it has. ++ * ++ * @param c The Container to lay out. ++ * ++ * @return The preferred size of the Container. ++ */ ++ public Dimension preferredLayoutSize(Container c) ++ { ++ Insets frameInsets = frame.getInsets(); ++ ++ // Height is the max of the preferredHeights of all components ++ // inside the pane ++ int height = 0; ++ int width = 0; ++ Dimension d; ++ ++ Component[] components = BasicInternalFrameTitlePane.this.getComponents(); ++ for (int i = 0; i < components.length; i++) ++ { ++ d = components[i].getPreferredSize(); ++ height = Math.max(height, d.height); ++ width += d.width; ++ } ++ ++ Insets insets = BasicInternalFrameTitlePane.this.getInsets(); ++ height += insets.top + insets.bottom; ++ ++ return new Dimension(width, height); ++ } ++ ++ /** ++ * This method is called when removing a Component from the Container. ++ * ++ * @param c The Component to remove. ++ */ ++ public void removeLayoutComponent(Component c) ++ { ++ } ++ } ++ ++ /** ++ * This helper class is used to create the minimize, maximize and close ++ * buttons in the top right corner of the Title Pane. These buttons are ++ * special since they cannot be given focus and have no border. ++ */ ++ private class PaneButton extends JButton ++ { ++ /** ++ * Creates a new PaneButton object with the given Action. ++ * ++ * @param a The Action that the button uses. ++ */ ++ public PaneButton(Action a) ++ { ++ super(a); ++ setMargin(new Insets(0, 0, 0, 0)); ++ setBorder(null); ++ } ++ ++ /** ++ * This method returns true if the Component can be focused. ++ * ++ * @return false. ++ */ ++ public boolean isFocusable() ++ { ++ // These buttons cannot be given focus. ++ return false; ++ } ++ } ++ ++ /** The action command for the Close action. */ ++ protected static String CLOSE_CMD = "Close"; ++ ++ /** The action command for the Minimize action. */ ++ protected static String ICONIFY_CMD = "Minimize"; ++ ++ /** The action command for the Maximize action. */ ++ protected static String MAXIMIZE_CMD = "Maximize"; ++ ++ /** The action command for the Move action. */ ++ protected static String MOVE_CMD = "Move"; ++ ++ /** The action command for the Restore action. */ ++ protected static String RESTORE_CMD = "Restore"; ++ ++ /** The action command for the Size action. */ ++ protected static String SIZE_CMD = "Size"; ++ ++ /** The action associated with closing the JInternalFrame. */ ++ protected Action closeAction; ++ ++ /** The action associated with iconifying the JInternalFrame. */ ++ protected Action iconifyAction; ++ ++ /** The action associated with maximizing the JInternalFrame. */ ++ protected Action maximizeAction; ++ ++ /** The action associated with moving the JInternalFrame. */ ++ protected Action moveAction; ++ ++ /** The action associated with restoring the JInternalFrame. */ ++ protected Action restoreAction; ++ ++ /** The action associated with resizing the JInternalFrame. */ ++ protected Action sizeAction; ++ ++ /** The button that closes the JInternalFrame. */ ++ protected JButton closeButton; ++ ++ /** The button that iconifies the JInternalFrame. */ ++ protected JButton iconButton; ++ ++ /** The button that maximizes the JInternalFrame. */ ++ protected JButton maxButton; ++ ++ /** Active background color. */ ++ protected Color activeBGColor; ++ ++ /** Active foreground color. */ ++ protected Color activeFGColor; ++ ++ /** Inactive background color. */ ++ protected Color inactiveBGColor; ++ ++ /** Inactive foreground color. */ ++ protected Color inactiveFGColor; ++ ++ // FIXME: These icons need to be moved to MetalIconFactory. ++ ++ /** The size of the icons in the buttons. */ ++ private static final int iconSize = 16; ++ ++ /** The icon displayed in the close button. */ ++ protected Icon closeIcon = new Icon() ++ { ++ public int getIconHeight() ++ { ++ return iconSize; ++ } ++ ++ public int getIconWidth() ++ { ++ return iconSize; ++ } ++ ++ public void paintIcon(Component c, Graphics g, int x, int y) ++ { ++ g.translate(x, y); ++ Color saved = g.getColor(); ++ g.setColor(Color.BLACK); ++ ++ int four = iconSize / 4; ++ int six = iconSize * 6 / 16; ++ int ten = iconSize * 10 / 16; ++ int twelve = iconSize * 12 / 16; ++ ++ Polygon a = new Polygon(new int[] { four, six, ten, twelve }, ++ new int[] { six, four, twelve, ten }, 4); ++ Polygon b = new Polygon(new int[] { four, six, ten, twelve }, ++ new int[] { ten, twelve, four, six }, 4); ++ ++ g.fillPolygon(a); ++ g.fillPolygon(b); ++ ++ g.setColor(saved); ++ g.translate(-x, -y); ++ } ++ }; ++ ++ // FIXME: Create new icon. ++ ++ /** The icon displayed in the restore button. */ ++ protected Icon minIcon; ++ ++ /** The icon displayed in the maximize button. */ ++ protected Icon maxIcon = new Icon() ++ { ++ public int getIconHeight() ++ { ++ return iconSize; ++ } ++ ++ public int getIconWidth() ++ { ++ return iconSize; ++ } ++ ++ public void paintIcon(Component c, Graphics g, int x, int y) ++ { ++ g.translate(x, y); ++ Color saved = g.getColor(); ++ g.setColor(Color.BLACK); ++ ++ int four = iconSize / 4; ++ int two = four / 2; ++ int six = iconSize * 6 / 16; ++ int eight = four * 2; ++ ++ g.fillRect(four, four, eight, two); ++ g.drawRect(four, six, eight, six); ++ ++ g.setColor(saved); ++ g.translate(-x, -y); ++ } ++ }; ++ ++ /** The icon displayed in the iconify button. */ ++ protected Icon iconIcon = new Icon() ++ { ++ public int getIconHeight() ++ { ++ return iconSize; ++ } ++ ++ public int getIconWidth() ++ { ++ return iconSize; ++ } ++ ++ public void paintIcon(Component c, Graphics g, int x, int y) ++ { ++ g.translate(x, y); ++ Color saved = g.getColor(); ++ g.setColor(Color.BLACK); ++ ++ g.fillRect(iconSize / 4, iconSize * 10 / 16, iconSize / 2, iconSize / 8); ++ ++ g.setColor(saved); ++ g.translate(-x, -y); ++ } ++ }; ++ ++ /** The JInternalFrame that this TitlePane is used in. */ ++ protected JInternalFrame frame; ++ ++ /** The JMenuBar that is located at the top left of the Title Pane. */ ++ protected JMenuBar menuBar; ++ ++ /** The JMenu inside the menuBar. */ ++ protected JMenu windowMenu; ++ ++ /** ++ * The text color of the TitlePane when the JInternalFrame is not selected. ++ */ ++ protected Color notSelectedTextColor; ++ ++ /** ++ * The background color of the TitlePane when the JInternalFrame is not ++ * selected. ++ */ ++ protected Color notSelectedTitleColor; ++ ++ /** The text color of the titlePane when the JInternalFrame is selected. */ ++ protected Color selectedTextColor; ++ ++ /** ++ * The background color of the TitlePane when the JInternalFrame is ++ * selected. ++ */ ++ protected Color selectedTitleColor; ++ ++ /** The Property Change listener that listens to the JInternalFrame. */ ++ protected PropertyChangeListener propertyChangeListener; ++ ++ /** ++ * The label used to display the title. This label is not added to the ++ * TitlePane. ++ */ ++ private transient JLabel title; ++ ++ /** ++ * Creates a new BasicInternalFrameTitlePane object that is used in the ++ * given JInternalFrame. ++ * ++ * @param f The JInternalFrame this BasicInternalFrameTitlePane will be used ++ * in. ++ */ ++ public BasicInternalFrameTitlePane(JInternalFrame f) ++ { ++ frame = f; ++ setLayout(createLayout()); ++ title = new JLabel(); ++ title.setHorizontalAlignment(SwingConstants.LEFT); ++ title.setHorizontalTextPosition(SwingConstants.LEFT); ++ title.setOpaque(false); ++ setOpaque(true); ++ ++ setBackground(Color.LIGHT_GRAY); ++ ++ installTitlePane(); ++ } ++ ++ /** ++ * This method installs the TitlePane onto the JInternalFrameTitlePane. It ++ * also creates any children components that need to be created and adds ++ * listeners to the appropriate components. ++ */ ++ protected void installTitlePane() ++ { ++ installDefaults(); ++ installListeners(); ++ createActions(); ++ ++ assembleSystemMenu(); ++ ++ createButtons(); ++ setButtonIcons(); ++ addSubComponents(); ++ enableActions(); ++ } ++ ++ /** ++ * This method adds the sub components to the TitlePane. ++ */ ++ protected void addSubComponents() ++ { ++ add(menuBar); ++ ++ add(closeButton); ++ add(iconButton); ++ add(maxButton); ++ } ++ ++ /** ++ * This method creates the actions that are used to manipulate the ++ * JInternalFrame. ++ */ ++ protected void createActions() ++ { ++ closeAction = new CloseAction(); ++ closeAction.putValue(AbstractAction.ACTION_COMMAND_KEY, CLOSE_CMD); ++ ++ iconifyAction = new IconifyAction(); ++ iconifyAction.putValue(AbstractAction.ACTION_COMMAND_KEY, ICONIFY_CMD); ++ ++ maximizeAction = new MaximizeAction(); ++ maximizeAction.putValue(AbstractAction.ACTION_COMMAND_KEY, MAXIMIZE_CMD); ++ ++ sizeAction = new SizeAction(); ++ sizeAction.putValue(AbstractAction.ACTION_COMMAND_KEY, SIZE_CMD); ++ ++ restoreAction = new RestoreAction(); ++ restoreAction.putValue(AbstractAction.ACTION_COMMAND_KEY, RESTORE_CMD); ++ ++ moveAction = new MoveAction(); ++ moveAction.putValue(AbstractAction.ACTION_COMMAND_KEY, MOVE_CMD); ++ } ++ ++ /** ++ * This method is used to install the listeners. ++ */ ++ protected void installListeners() ++ { ++ propertyChangeListener = new PropertyChangeHandler(); ++ frame.addPropertyChangeListener(propertyChangeListener); ++ } ++ ++ /** ++ * This method is used to uninstall the listeners. ++ */ ++ protected void uninstallListeners() ++ { ++ frame.removePropertyChangeListener(propertyChangeListener); ++ propertyChangeListener = null; ++ } ++ ++ /** ++ * This method installs the defaults determined by the look and feel. ++ */ ++ protected void installDefaults() ++ { ++ // FIXME: move icons to defaults. ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ ++ setFont(defaults.getFont("InternalFrame.titleFont")); ++ activeFGColor = defaults.getColor("InternalFrame.activeTitleForeground"); ++ activeBGColor = defaults.getColor("InternalFrame.activeTitleBackground"); ++ inactiveFGColor = defaults.getColor("InternalFrame.inactiveTitleForeground"); ++ inactiveBGColor = defaults.getColor("InternalFrame.inactiveTitleBackground"); ++ } ++ ++ /** ++ * This method uninstalls the defaults. ++ */ ++ protected void uninstallDefaults() ++ { ++ setFont(null); ++ activeFGColor = null; ++ activeBGColor = null; ++ inactiveFGColor = null; ++ inactiveBGColor = null; ++ } ++ ++ /** ++ * This method creates the buttons used in the TitlePane. ++ */ ++ protected void createButtons() ++ { ++ closeButton = new PaneButton(closeAction); ++ closeButton.setOpaque(false); ++ ++ iconButton = new PaneButton(iconifyAction); ++ iconButton.setOpaque(false); ++ ++ maxButton = new PaneButton(maximizeAction); ++ maxButton.setOpaque(false); ++ } ++ ++ /** ++ * This method sets the icons in the buttons. ++ */ ++ protected void setButtonIcons() ++ { ++ closeButton.setIcon(closeIcon); ++ iconButton.setIcon(iconIcon); ++ maxButton.setIcon(maxIcon); ++ } ++ ++ /** ++ * This method creates the MenuBar used in the TitlePane. ++ */ ++ protected void assembleSystemMenu() ++ { ++ menuBar = createSystemMenuBar(); ++ windowMenu = createSystemMenu(); ++ ++ menuBar.add(windowMenu); ++ ++ addSystemMenuItems(windowMenu); ++ enableActions(); ++ } ++ ++ /** ++ * This method adds the MenuItems to the given JMenu. ++ * ++ * @param systemMenu The JMenu to add MenuItems to. ++ */ ++ protected void addSystemMenuItems(JMenu systemMenu) ++ { ++ JMenuItem tmp; ++ ++ tmp = new JMenuItem(RESTORE_CMD); ++ tmp.addActionListener(restoreAction); ++ tmp.setMnemonic(KeyEvent.VK_R); ++ systemMenu.add(tmp); ++ ++ tmp = new JMenuItem(MOVE_CMD); ++ tmp.addActionListener(moveAction); ++ tmp.setMnemonic(KeyEvent.VK_M); ++ systemMenu.add(tmp); ++ ++ tmp = new JMenuItem(SIZE_CMD); ++ tmp.addActionListener(sizeAction); ++ tmp.setMnemonic(KeyEvent.VK_S); ++ systemMenu.add(tmp); ++ ++ tmp = new JMenuItem(ICONIFY_CMD); ++ tmp.addActionListener(iconifyAction); ++ tmp.setMnemonic(KeyEvent.VK_N); ++ systemMenu.add(tmp); ++ ++ tmp = new JMenuItem(MAXIMIZE_CMD); ++ tmp.addActionListener(maximizeAction); ++ tmp.setMnemonic(KeyEvent.VK_X); ++ systemMenu.add(tmp); ++ ++ systemMenu.addSeparator(); ++ ++ tmp = new JMenuItem(CLOSE_CMD); ++ tmp.addActionListener(closeAction); ++ tmp.setMnemonic(KeyEvent.VK_C); ++ systemMenu.add(tmp); ++ } ++ ++ /** ++ * This method creates a new JMenubar. ++ * ++ * @return A new JMenuBar. ++ */ ++ protected JMenuBar createSystemMenuBar() ++ { ++ if (menuBar == null) ++ menuBar = new SystemMenuBar(); ++ menuBar.removeAll(); ++ return menuBar; ++ } ++ ++ /** ++ * This method creates a new JMenu. ++ * ++ * @return A new JMenu. ++ */ ++ protected JMenu createSystemMenu() ++ { ++ if (windowMenu == null) ++ windowMenu = new JMenu(); ++ windowMenu.removeAll(); ++ return windowMenu; ++ } ++ ++ /** ++ * This method programmatically shows the JMenu. ++ */ ++ protected void showSystemMenu() ++ { ++ // FIXME: Untested as KeyEvents are not hooked up. ++ menuBar.getMenu(1).getPopupMenu().show(); ++ } ++ ++ /** ++ * This method paints the TitlePane. ++ * ++ * @param g The Graphics object to paint with. ++ */ ++ public void paintComponent(Graphics g) ++ { ++ paintTitleBackground(g); ++ Font f = g.getFont(); ++ FontMetrics fm = g.getFontMetrics(f); ++ if (frame.getTitle() != null && title != null) ++ { ++ Color saved = g.getColor(); ++ if (frame.isSelected()) ++ g.setColor(activeFGColor); ++ else ++ g.setColor(inactiveFGColor); ++ title.setText(getTitle(frame.getTitle(), fm, title.getBounds().width)); ++ SwingUtilities.paintComponent(g, title, null, title.getBounds()); ++ g.setColor(saved); ++ } ++ } ++ ++ /** ++ * This method paints the TitlePane's background. ++ * ++ * @param g The Graphics object to paint with. ++ */ ++ protected void paintTitleBackground(Graphics g) ++ { ++ Color saved = g.getColor(); ++ Dimension dims = getSize(); ++ ++ Color bg = getBackground(); ++ if (frame.isSelected()) ++ bg = activeBGColor; ++ else ++ bg = inactiveBGColor; ++ g.setColor(bg); ++ g.fillRect(0, 0, dims.width, dims.height); ++ g.setColor(saved); ++ } ++ ++ /** ++ * This method returns the title string based on the available width and the ++ * font metrics. ++ * ++ * @param text The desired title. ++ * @param fm The FontMetrics of the font used. ++ * @param availableWidth The available width. ++ * ++ * @return The allowable string. ++ */ ++ protected String getTitle(String text, FontMetrics fm, int availableWidth) ++ { ++ Rectangle vr = new Rectangle(0, 0, availableWidth, fm.getHeight()); ++ Rectangle ir = new Rectangle(); ++ Rectangle tr = new Rectangle(); ++ String value = SwingUtilities.layoutCompoundLabel(this, fm, text, null, ++ SwingConstants.CENTER, ++ SwingConstants.LEFT, ++ SwingConstants.CENTER, ++ SwingConstants.LEFT, vr, ++ ir, tr, 0); ++ return value; ++ } ++ ++ /** ++ * This method fires something similar to a WINDOW_CLOSING event. ++ * ++ * @param frame The JInternalFrame that is being closed. ++ */ ++ protected void postClosingEvent(JInternalFrame frame) ++ { ++ // FIXME: Implement postClosingEvent when I figure out what ++ // it's supposed to do. ++ // It says that this fires an WINDOW_CLOSING like event. ++ // So the closest thing is some kind of InternalFrameEvent. ++ // But none is fired. ++ // Can't see it called or anything. ++ } ++ ++ /** ++ * This method enables the actions for the TitlePane given the frame's ++ * properties. ++ */ ++ protected void enableActions() ++ { ++ closeAction.setEnabled(frame.isClosable()); ++ ++ iconifyAction.setEnabled(frame.isIconifiable()); ++ // The maximize action is responsible for restoring it ++ // as well, if clicked from the button ++ maximizeAction.setEnabled(frame.isMaximizable()); ++ ++ // The restoring action is only active when selected ++ // from the menu. ++ restoreAction.setEnabled(frame.isMaximum()); ++ ++ sizeAction.setEnabled(frame.isResizable()); ++ ++ // FIXME: Tie MoveAction enabled status to a variable. ++ moveAction.setEnabled(false); ++ } ++ ++ /** ++ * This method creates a new PropertyChangeListener. ++ * ++ * @return A new PropertyChangeListener. ++ */ ++ protected PropertyChangeListener createPropertyChangeListener() ++ { ++ return new PropertyChangeHandler(); ++ } ++ ++ /** ++ * This method creates a new LayoutManager for the TitlePane. ++ * ++ * @return A new LayoutManager. ++ */ ++ protected LayoutManager createLayout() ++ { ++ return new TitlePaneLayout(); ++ } ++} +Index: javax/swing/plaf/basic/BasicInternalFrameUI.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicInternalFrameUI.java +diff -N javax/swing/plaf/basic/BasicInternalFrameUI.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicInternalFrameUI.java 6 Sep 2004 16:36:04 -0000 +@@ -0,0 +1,1656 @@ ++/* BasicInternalFrameUI.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.plaf.basic; ++ ++import java.awt.AWTEvent; ++import java.awt.Color; ++import java.awt.Component; ++import java.awt.Container; ++import java.awt.Dimension; ++import java.awt.FontMetrics; ++import java.awt.Graphics; ++import java.awt.Insets; ++import java.awt.LayoutManager; ++import java.awt.Point; ++import java.awt.Rectangle; ++import java.awt.event.ActionEvent; ++import java.awt.event.ComponentEvent; ++import java.awt.event.ComponentListener; ++import java.awt.event.KeyEvent; ++import java.awt.event.MouseEvent; ++import java.beans.PropertyChangeEvent; ++import java.beans.PropertyChangeListener; ++import javax.swing.AbstractAction; ++import javax.swing.Action; ++import javax.swing.DefaultDesktopManager; ++import javax.swing.DesktopManager; ++import javax.swing.Icon; ++import javax.swing.JButton; ++import javax.swing.JComponent; ++import javax.swing.JDesktopPane; ++import javax.swing.JInternalFrame; ++import javax.swing.JLabel; ++import javax.swing.KeyStroke; ++import javax.swing.SwingConstants; ++import javax.swing.SwingUtilities; ++import javax.swing.border.AbstractBorder; ++import javax.swing.event.InternalFrameEvent; ++import javax.swing.event.InternalFrameListener; ++import javax.swing.event.MouseInputAdapter; ++import javax.swing.event.MouseInputListener; ++import javax.swing.plaf.ComponentUI; ++import javax.swing.plaf.InternalFrameUI; ++import javax.swing.plaf.UIResource; ++ ++ ++/** ++ * This is the UI delegate for the Basic look and feel for JInternalFrames. ++ */ ++public class BasicInternalFrameUI extends InternalFrameUI ++{ ++ /** ++ * This is a helper class that listens to the JInternalFrame for ++ * InternalFrameEvents. ++ */ ++ protected class BasicInternalFrameListener implements InternalFrameListener ++ { ++ /** ++ * This method is called when the JInternalFrame is activated. ++ * ++ * @param e The InternalFrameEvent. ++ */ ++ public void internalFrameActivated(InternalFrameEvent e) ++ { ++ // FIXME: Implement. ++ } ++ ++ /** ++ * This method is called when the JInternalFrame is closed. ++ * ++ * @param e The InternalFrameEvent. ++ */ ++ public void internalFrameClosed(InternalFrameEvent e) ++ { ++ // FIXME: Implement. ++ } ++ ++ /** ++ * This method is called when the JInternalFrame is closing. ++ * ++ * @param e The InternalFrameEvent. ++ */ ++ public void internalFrameClosing(InternalFrameEvent e) ++ { ++ // FIXME: Implement. ++ } ++ ++ /** ++ * This method is called when the JInternalFrame is deactivated. ++ * ++ * @param e The InternalFrameEvent. ++ */ ++ public void internalFrameDeactivated(InternalFrameEvent e) ++ { ++ // FIXME: Implement. ++ } ++ ++ /** ++ * This method is called when the JInternalFrame is deiconified. ++ * ++ * @param e The InternalFrameEvent. ++ */ ++ public void internalFrameDeiconified(InternalFrameEvent e) ++ { ++ // FIXME: Implement. ++ } ++ ++ /** ++ * This method is called when the JInternalFrame is iconified. ++ * ++ * @param e The InternalFrameEvent. ++ */ ++ public void internalFrameIconified(InternalFrameEvent e) ++ { ++ // FIXME: Implement. ++ } ++ ++ /** ++ * This method is called when the JInternalFrame is opened. ++ * ++ * @param e The InternalFrameEvent. ++ */ ++ public void internalFrameOpened(InternalFrameEvent e) ++ { ++ // FIXME: Implement. ++ } ++ } ++ ++ /** ++ * This helper class listens to the edges of the JInternalFrame and the ++ * TitlePane for mouse events. It is responsible for dragging and resizing ++ * the JInternalFrame in response to the MouseEvents. ++ */ ++ protected class BorderListener extends MouseInputAdapter ++ implements SwingConstants ++ { ++ /** FIXME: Use for something. */ ++ protected int RESIZE_NONE; ++ ++ /** The x offset from the top left corner of the JInternalFrame. */ ++ private transient int xOffset = 0; ++ ++ /** The y offset from the top left corner of the JInternalFrame. */ ++ private transient int yOffset = 0; ++ ++ /** The direction that the resize is occuring in. */ ++ private transient int direction = -1; ++ ++ /** Cache rectangle that can be reused. */ ++ private transient Rectangle cacheRect = new Rectangle(); ++ ++ /** ++ * This method is called when the mouse is clicked. ++ * ++ * @param e The MouseEvent. ++ */ ++ public void mouseClicked(MouseEvent e) ++ { ++ // There is nothing to do when the mouse is clicked ++ // on the border. ++ } ++ ++ /** ++ * This method is called when the mouse is dragged. This method is ++ * responsible for resizing or dragging the JInternalFrame. ++ * ++ * @param e The MouseEvent. ++ */ ++ public void mouseDragged(MouseEvent e) ++ { ++ // If the frame is maximized, there is nothing that ++ // can be dragged around. ++ if (frame.isMaximum()) ++ return; ++ DesktopManager dm = getDesktopManager(); ++ Rectangle b = frame.getBounds(); ++ Dimension min = frame.getMinimumSize(); ++ if (min == null) ++ min = new Dimension(0, 0); ++ Insets insets = frame.getInsets(); ++ int x = e.getX(); ++ int y = e.getY(); ++ if (e.getSource() == frame && frame.isResizable()) ++ { ++ switch (direction) ++ { ++ case NORTH: ++ cacheRect.setBounds(b.x, ++ Math.min(b.y + y, b.y + b.height ++ - min.height), b.width, b.height ++ - y); ++ break; ++ case NORTH_EAST: ++ cacheRect.setBounds(b.x, ++ Math.min(b.y + y, b.y + b.height ++ - min.height), x, b.height - y); ++ break; ++ case EAST: ++ cacheRect.setBounds(b.x, b.y, x, b.height); ++ break; ++ case SOUTH_EAST: ++ cacheRect.setBounds(b.x, b.y, x, y); ++ break; ++ case SOUTH: ++ cacheRect.setBounds(b.x, b.y, b.width, y); ++ break; ++ case SOUTH_WEST: ++ cacheRect.setBounds(Math.min(b.x + x, b.x + b.width - min.width), ++ b.y, b.width - x, y); ++ break; ++ case WEST: ++ cacheRect.setBounds(Math.min(b.x + x, b.x + b.width - min.width), ++ b.y, b.width - x, b.height); ++ break; ++ case NORTH_WEST: ++ cacheRect.setBounds(Math.min(b.x + x, b.x + b.width - min.width), ++ Math.min(b.y + y, b.y + b.height ++ - min.height), b.width - x, ++ b.height - y); ++ break; ++ } ++ dm.resizeFrame(frame, cacheRect.x, cacheRect.y, ++ Math.max(min.width, cacheRect.width), ++ Math.max(min.height, cacheRect.height)); ++ } ++ else if (e.getSource() == titlePane) ++ { ++ Rectangle fBounds = frame.getBounds(); ++ ++ dm.dragFrame(frame, e.getX() - xOffset + b.x, ++ e.getY() - yOffset + b.y); ++ } ++ } ++ ++ /** ++ * This method is called when the mouse exits the JInternalFrame. ++ * ++ * @param e The MouseEvent. ++ */ ++ public void mouseExited(MouseEvent e) ++ { ++ // There is nothing to do when the mouse exits ++ // the border area. ++ } ++ ++ /** ++ * This method is called when the mouse is moved inside the ++ * JInternalFrame. ++ * ++ * @param e The MouseEvent. ++ */ ++ public void mouseMoved(MouseEvent e) ++ { ++ // There is nothing to do when the mouse moves ++ // over the border area. ++ } ++ ++ /** ++ * This method is called when the mouse is pressed. ++ * ++ * @param e The MouseEvent. ++ */ ++ public void mousePressed(MouseEvent e) ++ { ++ activateFrame(frame); ++ DesktopManager dm = getDesktopManager(); ++ int x = e.getX(); ++ int y = e.getY(); ++ Insets insets = frame.getInsets(); ++ ++ if (e.getSource() == frame && frame.isResizable()) ++ { ++ direction = sectionOfClick(x, y); ++ dm.beginResizingFrame(frame, direction); ++ } ++ else if (e.getSource() == titlePane) ++ { ++ Rectangle tBounds = titlePane.getBounds(); ++ ++ xOffset = e.getX() - tBounds.x + insets.left; ++ yOffset = e.getY() - tBounds.y + insets.top; ++ ++ dm.beginDraggingFrame(frame); ++ } ++ } ++ ++ /** ++ * This method is called when the mouse is released. ++ * ++ * @param e The MouseEvent. ++ */ ++ public void mouseReleased(MouseEvent e) ++ { ++ DesktopManager dm = getDesktopManager(); ++ xOffset = 0; ++ yOffset = 0; ++ if (e.getSource() == frame && frame.isResizable()) ++ dm.endResizingFrame(frame); ++ else if (e.getSource() == titlePane) ++ dm.endDraggingFrame(frame); ++ } ++ ++ /** ++ * This method determines the direction of the resize based on the ++ * coordinates and the size of the JInternalFrame. ++ * ++ * @param x The x coordinate of the MouseEvent. ++ * @param y The y coordinate of the MouseEvent. ++ * ++ * @return The direction of the resize (a SwingConstant direction). ++ */ ++ private int sectionOfClick(int x, int y) ++ { ++ Insets insets = frame.getInsets(); ++ Rectangle b = frame.getBounds(); ++ if (x < insets.left && y < insets.top) ++ return NORTH_WEST; ++ else if (x > b.width - insets.right && y < insets.top) ++ return NORTH_EAST; ++ else if (x > b.width - insets.right && y > b.height - insets.bottom) ++ return SOUTH_EAST; ++ else if (x < insets.left && y > b.height - insets.bottom) ++ return SOUTH_WEST; ++ else if (y < insets.top) ++ return NORTH; ++ else if (x < insets.left) ++ return WEST; ++ else if (y > b.height - insets.bottom) ++ return SOUTH; ++ else if (x > b.width - insets.right) ++ return EAST; ++ ++ return -1; ++ } ++ } ++ ++ /** ++ * This helper class listens to the JDesktopPane that parents this ++ * JInternalFrame and listens for resize events and resizes the ++ * JInternalFrame appropriately. ++ */ ++ protected class ComponentHandler implements ComponentListener ++ { ++ /** ++ * This method is called when the JDesktopPane is hidden. ++ * ++ * @param e The ComponentEvent fired. ++ */ ++ public void componentHidden(ComponentEvent e) ++ { ++ // Do nothing. ++ } ++ ++ /** ++ * This method is called when the JDesktopPane is moved. ++ * ++ * @param e The ComponentEvent fired. ++ */ ++ public void componentMoved(ComponentEvent e) ++ { ++ // Do nothing. ++ } ++ ++ /** ++ * This method is called when the JDesktopPane is resized. ++ * ++ * @param e The ComponentEvent fired. ++ */ ++ public void componentResized(ComponentEvent e) ++ { ++ if (frame.isMaximum()) ++ { ++ JDesktopPane pane = (JDesktopPane) e.getSource(); ++ Insets insets = pane.getInsets(); ++ Rectangle bounds = pane.getBounds(); ++ ++ frame.setBounds(bounds.x + insets.left, bounds.y + insets.top, ++ bounds.width - insets.left - insets.right, ++ bounds.height - insets.top - insets.bottom); ++ frame.revalidate(); ++ frame.repaint(); ++ } ++ ++ // Sun also resizes the icons. but it doesn't seem to do anything. ++ } ++ ++ /** ++ * This method is called when the JDesktopPane is shown. ++ * ++ * @param e The ComponentEvent fired. ++ */ ++ public void componentShown(ComponentEvent e) ++ { ++ // Do nothing. ++ } ++ } ++ ++ /** ++ * This helper class acts as the LayoutManager for JInternalFrames. ++ */ ++ public class InternalFrameLayout implements LayoutManager ++ { ++ /** ++ * This method is called when the given Component is added to the ++ * JInternalFrame. ++ * ++ * @param name The name of the Component. ++ * @param c The Component added. ++ */ ++ public void addLayoutComponent(String name, Component c) ++ { ++ } ++ ++ /** ++ * This method is used to set the bounds of the children of the ++ * JInternalFrame. ++ * ++ * @param c The Container to lay out. ++ */ ++ public void layoutContainer(Container c) ++ { ++ Dimension dims = frame.getSize(); ++ Insets insets = frame.getInsets(); ++ ++ dims.width -= insets.left + insets.right; ++ dims.height -= insets.top + insets.bottom; ++ ++ frame.getRootPane().getGlassPane().setBounds(0, 0, dims.width, ++ dims.height); ++ int nh = 0; ++ int sh = 0; ++ int ew = 0; ++ int ww = 0; ++ ++ if (northPane != null) ++ { ++ Dimension nDims = northPane.getPreferredSize(); ++ nh = Math.min(nDims.height, dims.height); ++ ++ northPane.setBounds(insets.left, insets.top, dims.width, nh); ++ } ++ ++ if (southPane != null) ++ { ++ Dimension sDims = southPane.getPreferredSize(); ++ sh = Math.min(sDims.height, dims.height - nh); ++ ++ southPane.setBounds(insets.left, insets.top + dims.height - sh, ++ dims.width, sh); ++ } ++ ++ int remHeight = dims.height - sh - nh; ++ ++ if (westPane != null) ++ { ++ Dimension wDims = westPane.getPreferredSize(); ++ ww = Math.min(dims.width, wDims.width); ++ ++ westPane.setBounds(insets.left, insets.top + nh, ww, remHeight); ++ } ++ ++ if (eastPane != null) ++ { ++ Dimension eDims = eastPane.getPreferredSize(); ++ ew = Math.min(eDims.width, dims.width - ww); ++ ++ eastPane.setBounds(insets.left + dims.width - ew, insets.top + nh, ++ ew, remHeight); ++ } ++ ++ int remWidth = dims.width - ww - ew; ++ ++ frame.getRootPane().setBounds(insets.left + ww, insets.top + nh, ++ remWidth, remHeight); ++ } ++ ++ /** ++ * This method returns the minimum layout size. ++ * ++ * @param c The Container to find a minimum layout size for. ++ * ++ * @return The minimum dimensions for the JInternalFrame. ++ */ ++ public Dimension minimumLayoutSize(Container c) ++ { ++ return getSize(c, true); ++ } ++ ++ /** ++ * This method returns the maximum layout size. ++ * ++ * @param c The Container to find a maximum layout size for. ++ * ++ * @return The maximum dimensions for the JInternalFrame. ++ */ ++ public Dimension maximumLayoutSize(Container c) ++ { ++ return preferredLayoutSize(c); ++ } ++ ++ /** ++ * Th8is method returns the preferred layout size. ++ * ++ * @param c The Container to find a preferred layout size for. ++ * ++ * @return The preferred dimensions for the JInternalFrame. ++ */ ++ public Dimension preferredLayoutSize(Container c) ++ { ++ return getSize(c, false); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param c DOCUMENT ME! ++ * @param min DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ private Dimension getSize(Container c, boolean min) ++ { ++ Insets insets = frame.getInsets(); ++ ++ Dimension contentDims = frame.getContentPane().getPreferredSize(); ++ if (min) ++ contentDims.width = contentDims.height = 0; ++ int nWidth = 0; ++ int nHeight = 0; ++ int sWidth = 0; ++ int sHeight = 0; ++ int eWidth = 0; ++ int eHeight = 0; ++ int wWidth = 0; ++ int wHeight = 0; ++ Dimension dims; ++ ++ if (northPane != null) ++ { ++ dims = northPane.getPreferredSize(); ++ if (dims != null) ++ { ++ nWidth = dims.width; ++ nHeight = dims.height; ++ } ++ } ++ ++ if (southPane != null) ++ { ++ dims = southPane.getPreferredSize(); ++ if (dims != null) ++ { ++ sWidth = dims.width; ++ sHeight = dims.height; ++ } ++ } ++ ++ if (eastPane != null) ++ { ++ dims = eastPane.getPreferredSize(); ++ if (dims != null) ++ { ++ sWidth = dims.width; ++ sHeight = dims.height; ++ } ++ } ++ ++ if (westPane != null) ++ { ++ dims = westPane.getPreferredSize(); ++ if (dims != null) ++ { ++ wWidth = dims.width; ++ wHeight = dims.height; ++ } ++ } ++ ++ int width = Math.max(sWidth, nWidth); ++ width = Math.max(width, contentDims.width + eWidth + wWidth); ++ ++ int height = Math.max(eHeight, wHeight); ++ height = Math.max(height, contentDims.height); ++ height += nHeight + sHeight; ++ ++ width += insets.left + insets.right; ++ height += insets.top + insets.bottom; ++ ++ return new Dimension(width, height); ++ } ++ ++ /** ++ * This method is called when a Component is removed from the ++ * JInternalFrame. ++ * ++ * @param c The Component that was removed. ++ */ ++ public void removeLayoutComponent(Component c) ++ { ++ } ++ } ++ ++ /** ++ * This helper class is used to listen to the JDesktopPane's glassPane for ++ * MouseEvents. The JInternalFrame can then be selected if a click is ++ * detected on its children. ++ */ ++ protected class GlassPaneDispatcher implements MouseInputListener ++ { ++ /** The MouseEvent target. */ ++ private transient Component mouseEventTarget; ++ ++ /** The component pressed. */ ++ private transient Component pressedComponent; ++ ++ /** The last component entered. */ ++ private transient Component lastComponentEntered; ++ ++ /** The number of presses. */ ++ private transient int pressCount; ++ ++ /** ++ * This method is called when the mouse enters the glass pane. ++ * ++ * @param e The MouseEvent. ++ */ ++ public void mouseEntered(MouseEvent e) ++ { ++ handleEvent(e); ++ } ++ ++ /** ++ * This method is called when the mouse is clicked on the glass pane. ++ * ++ * @param e The MouseEvent. ++ */ ++ public void mouseClicked(MouseEvent e) ++ { ++ handleEvent(e); ++ } ++ ++ /** ++ * This method is called when the mouse is dragged in the glass pane. ++ * ++ * @param e The MouseEvent. ++ */ ++ public void mouseDragged(MouseEvent e) ++ { ++ handleEvent(e); ++ } ++ ++ /** ++ * This method is called when the mouse exits the glass pane. ++ * ++ * @param e The MouseEvent. ++ */ ++ public void mouseExited(MouseEvent e) ++ { ++ handleEvent(e); ++ } ++ ++ /** ++ * This method is called when the mouse is moved in the glass pane. ++ * ++ * @param e The MouseEvent. ++ */ ++ public void mouseMoved(MouseEvent e) ++ { ++ handleEvent(e); ++ } ++ ++ /** ++ * This method is called when the mouse is pressed in the glass pane. ++ * ++ * @param e The MouseEvent. ++ */ ++ public void mousePressed(MouseEvent e) ++ { ++ activateFrame(frame); ++ handleEvent(e); ++ } ++ ++ /** ++ * This method is called when the mouse is released in the glass pane. ++ * ++ * @param e The MouseEvent. ++ */ ++ public void mouseReleased(MouseEvent e) ++ { ++ handleEvent(e); ++ } ++ ++ /** ++ * This method acquires a candidate component to dispatch the MouseEvent ++ * to. ++ * ++ * @param me The MouseEvent to acquire a component for. ++ */ ++ private void acquireComponentForMouseEvent(MouseEvent me) ++ { ++ int x = me.getX(); ++ int y = me.getY(); ++ ++ // Find the candidate which should receive this event. ++ Component parent = frame.getContentPane(); ++ if (parent == null) ++ return; ++ Component candidate = null; ++ Point p = me.getPoint(); ++ while (candidate == null && parent != null) ++ { ++ candidate = SwingUtilities.getDeepestComponentAt(parent, p.x, p.y); ++ if (candidate == null) ++ { ++ p = SwingUtilities.convertPoint(parent, p.x, p.y, ++ parent.getParent()); ++ parent = parent.getParent(); ++ } ++ } ++ ++ // If the only candidate we found was the native container itself, ++ // don't dispatch any event at all. We only care about the lightweight ++ // children here. ++ if (candidate == frame.getContentPane()) ++ candidate = null; ++ ++ // If our candidate is new, inform the old target we're leaving. ++ if (lastComponentEntered != null && lastComponentEntered.isShowing() ++ && lastComponentEntered != candidate) ++ { ++ Point tp = SwingUtilities.convertPoint(frame.getContentPane(), x, y, ++ lastComponentEntered); ++ MouseEvent exited = new MouseEvent(lastComponentEntered, ++ MouseEvent.MOUSE_EXITED, ++ me.getWhen(), me.getModifiersEx(), ++ tp.x, tp.y, me.getClickCount(), ++ me.isPopupTrigger(), ++ me.getButton()); ++ lastComponentEntered.dispatchEvent(exited); ++ lastComponentEntered = null; ++ } ++ ++ // If we have a candidate, maybe enter it. ++ if (candidate != null) ++ { ++ mouseEventTarget = candidate; ++ if (candidate.isLightweight() && candidate.isShowing() ++ && candidate != frame.getContentPane() ++ && candidate != lastComponentEntered) ++ { ++ lastComponentEntered = mouseEventTarget; ++ Point cp = SwingUtilities.convertPoint(frame.getContentPane(), ++ x, y, lastComponentEntered); ++ MouseEvent entered = new MouseEvent(lastComponentEntered, ++ MouseEvent.MOUSE_ENTERED, ++ me.getWhen(), ++ me.getModifiersEx(), cp.x, ++ cp.y, me.getClickCount(), ++ me.isPopupTrigger(), ++ me.getButton()); ++ lastComponentEntered.dispatchEvent(entered); ++ } ++ } ++ ++ if (me.getID() == MouseEvent.MOUSE_RELEASED ++ || me.getID() == MouseEvent.MOUSE_PRESSED && pressCount > 0 ++ || me.getID() == MouseEvent.MOUSE_DRAGGED) ++ // If any of the following events occur while a button is held down, ++ // they should be dispatched to the same component to which the ++ // original MOUSE_PRESSED event was dispatched: ++ // - MOUSE_RELEASED ++ // - MOUSE_PRESSED: another button pressed while the first is held down ++ // - MOUSE_DRAGGED ++ mouseEventTarget = pressedComponent; ++ else if (me.getID() == MouseEvent.MOUSE_CLICKED) ++ { ++ // Don't dispatch CLICKED events whose target is not the same as the ++ // target for the original PRESSED event. ++ if (candidate != pressedComponent) ++ mouseEventTarget = null; ++ else if (pressCount == 0) ++ pressedComponent = null; ++ } ++ } ++ ++ /** ++ * This is a helper method that dispatches the GlassPane MouseEvents to ++ * the proper component. ++ * ++ * @param e The AWTEvent to be dispatched. Usually an instance of ++ * MouseEvent. ++ */ ++ private void handleEvent(AWTEvent e) ++ { ++ if (e instanceof MouseEvent) ++ { ++ MouseEvent me = SwingUtilities.convertMouseEvent(frame.getRootPane() ++ .getGlassPane(), ++ (MouseEvent) e, ++ frame.getRootPane() ++ .getGlassPane()); ++ ++ acquireComponentForMouseEvent(me); ++ ++ // Avoid dispatching ENTERED and EXITED events twice. ++ if (mouseEventTarget != null && mouseEventTarget.isShowing() ++ && e.getID() != MouseEvent.MOUSE_ENTERED ++ && e.getID() != MouseEvent.MOUSE_EXITED) ++ { ++ MouseEvent newEvt = SwingUtilities.convertMouseEvent(frame ++ .getContentPane(), ++ me, ++ mouseEventTarget); ++ mouseEventTarget.dispatchEvent(newEvt); ++ ++ switch (e.getID()) ++ { ++ case MouseEvent.MOUSE_PRESSED: ++ if (pressCount++ == 0) ++ pressedComponent = mouseEventTarget; ++ break; ++ case MouseEvent.MOUSE_RELEASED: ++ // Clear our memory of the original PRESSED event, only if ++ // we're not expecting a CLICKED event after this. If ++ // there is a CLICKED event after this, it will do clean up. ++ if (--pressCount == 0 ++ && mouseEventTarget != pressedComponent) ++ pressedComponent = null; ++ break; ++ } ++ } ++ } ++ } ++ } ++ ++ /** ++ * This helper class listens for PropertyChangeEvents from the ++ * JInternalFrame. ++ */ ++ public class InternalFramePropertyChangeListener ++ implements PropertyChangeListener ++ { ++ /** ++ * This method is called when one of the JInternalFrame's properties ++ * change. ++ * ++ * @param evt The PropertyChangeEvent. ++ */ ++ public void propertyChange(PropertyChangeEvent evt) ++ { ++ if (evt.getPropertyName().equals(JInternalFrame.IS_MAXIMUM_PROPERTY)) ++ { ++ if (frame.isMaximum()) ++ maximizeFrame(frame); ++ else ++ minimizeFrame(frame); ++ } ++ else if (evt.getPropertyName().equals(JInternalFrame.IS_CLOSED_PROPERTY)) ++ closeFrame(frame); ++ else if (evt.getPropertyName().equals(JInternalFrame.IS_ICON_PROPERTY)) ++ { ++ if (frame.isIcon()) ++ iconifyFrame(frame); ++ else ++ deiconifyFrame(frame); ++ } ++ else if (evt.getPropertyName().equals(JInternalFrame.IS_SELECTED_PROPERTY)) ++ { ++ if (frame.isSelected()) ++ activateFrame(frame); ++ else ++ getDesktopManager().deactivateFrame(frame); ++ } ++ else if (evt.getPropertyName().equals(JInternalFrame.ROOT_PANE_PROPERTY) ++ || evt.getPropertyName().equals(JInternalFrame.GLASS_PANE_PROPERTY)) ++ { ++ Component old = (Component) evt.getOldValue(); ++ old.removeMouseListener(glassPaneDispatcher); ++ old.removeMouseMotionListener(glassPaneDispatcher); ++ ++ Component newPane = (Component) evt.getNewValue(); ++ newPane.addMouseListener(glassPaneDispatcher); ++ newPane.addMouseMotionListener(glassPaneDispatcher); ++ ++ frame.revalidate(); ++ } ++ /* FIXME: need to add ancestor properties to JComponents. ++ else if (evt.getPropertyName().equals(JComponent.ANCESTOR_PROPERTY)) ++ { ++ if (desktopPane != null) ++ desktopPane.removeComponentListener(componentListener); ++ desktopPane = frame.getDesktopPane(); ++ if (desktopPane != null) ++ desktopPane.addComponentListener(componentListener); ++ } ++ */ ++ } ++ } ++ ++ /** ++ * This helper class is the border for the JInternalFrame. ++ */ ++ private class InternalFrameBorder extends AbstractBorder ++ implements UIResource ++ { ++ /** The width of the border. */ ++ private static final int bSize = 5; ++ ++ /** The size of the corners. */ ++ private static final int offset = 10; ++ ++ /** ++ * This method returns whether the border is opaque. ++ * ++ * @return Whether the border is opaque. ++ */ ++ public boolean isBorderOpaque() ++ { ++ return true; ++ } ++ ++ /** ++ * This method returns the insets of the border. ++ * ++ * @param c The Component to find border insets for. ++ * ++ * @return The border insets. ++ */ ++ public Insets getBorderInsets(Component c) ++ { ++ return new Insets(bSize, bSize, bSize, bSize); ++ } ++ ++ /** ++ * This method paints the border. ++ * ++ * @param c The Component that owns the border. ++ * @param g The Graphics object to paint with. ++ * @param x The x coordinate to paint at. ++ * @param y The y coordinate to paint at. ++ * @param width The width of the Component. ++ * @param height The height of the Component. ++ */ ++ public void paintBorder(Component c, Graphics g, int x, int y, int width, ++ int height) ++ { ++ g.translate(x, y); ++ Color saved = g.getColor(); ++ Rectangle b = frame.getBounds(); ++ ++ Color d = c.getBackground(); ++ g.setColor(d); ++ g.fillRect(0, 0, bSize, b.height); ++ g.fillRect(0, 0, b.width, bSize); ++ g.fillRect(0, b.height - bSize, b.width, bSize); ++ g.fillRect(b.width - bSize, 0, bSize, b.height); ++ ++ int x1 = 0; ++ int x2 = bSize; ++ int x3 = b.width - bSize; ++ int x4 = b.width; ++ ++ int y1 = 0; ++ int y2 = bSize; ++ int y3 = b.height - bSize; ++ int y4 = b.height; ++ ++ g.setColor(Color.GRAY); ++ g.fillRect(0, 0, bSize, y4); ++ g.fillRect(0, 0, x4, bSize); ++ g.fillRect(0, y3, b.width, bSize); ++ g.fillRect(x3, 0, bSize, b.height); ++ ++ g.fill3DRect(0, offset, bSize, b.height - 2 * offset, false); ++ g.fill3DRect(offset, 0, b.width - 2 * offset, bSize, false); ++ g.fill3DRect(offset, b.height - bSize, b.width - 2 * offset, bSize, false); ++ g.fill3DRect(b.width - bSize, offset, bSize, b.height - 2 * offset, false); ++ ++ g.translate(-x, -y); ++ g.setColor(saved); ++ } ++ } ++ ++ /** ++ * The MouseListener that is responsible for dragging and resizing the ++ * JInternalFrame in response to MouseEvents. ++ */ ++ protected MouseInputAdapter borderListener; ++ ++ /** ++ * The ComponentListener that is responsible for resizing the JInternalFrame ++ * in response to ComponentEvents from the JDesktopPane. ++ */ ++ protected ComponentListener componentListener; ++ ++ /** ++ * The MouseListener that is responsible for activating the JInternalFrame ++ * when the mouse press activates one of its descendents. ++ */ ++ protected MouseInputListener glassPaneDispatcher; ++ ++ /** ++ * The PropertyChangeListener that is responsible for listening to ++ * PropertyChangeEvents from the JInternalFrame. ++ */ ++ protected PropertyChangeListener propertyChangeListener; ++ ++ /** The InternalFrameListener that listens to the JInternalFrame. */ ++ private transient BasicInternalFrameListener internalFrameListener; ++ ++ /** The JComponent placed at the east region of the JInternalFrame. */ ++ protected JComponent eastPane; ++ ++ /** The JComponent placed at the north region of the JInternalFrame. */ ++ protected JComponent northPane; ++ ++ /** The JComponent placed at the south region of the JInternalFrame. */ ++ protected JComponent southPane; ++ ++ /** The JComponent placed at the west region of the JInternalFrame. */ ++ protected JComponent westPane; ++ ++ /** The Keystroke bound to open the menu. */ ++ protected KeyStroke openMenuKey; ++ ++ /** The TitlePane displayed at the top of the JInternalFrame. */ ++ protected BasicInternalFrameTitlePane titlePane; ++ ++ /** The JInternalFrame this UI is responsible for. */ ++ protected JInternalFrame frame; ++ ++ /** The LayoutManager used in the JInternalFrame. */ ++ protected LayoutManager internalFrameLayout; ++ ++ /** The JDesktopPane that is the parent of the JInternalFrame. */ ++ private transient JDesktopPane desktopPane; ++ ++ /** ++ * Creates a new BasicInternalFrameUI object. ++ * ++ * @param b The JInternalFrame this UI will represent. ++ */ ++ public BasicInternalFrameUI(JInternalFrame b) ++ { ++ } ++ ++ /** ++ * This method will create a new BasicInternalFrameUI for the given ++ * JComponent. ++ * ++ * @param b The JComponent to create a BasicInternalFrameUI for. ++ * ++ * @return A new BasicInternalFrameUI. ++ */ ++ public static ComponentUI createUI(JComponent b) ++ { ++ return new BasicInternalFrameUI((JInternalFrame) b); ++ } ++ ++ /** ++ * This method installs a UI for the JInternalFrame. ++ * ++ * @param c The JComponent to install this UI on. ++ */ ++ public void installUI(JComponent c) ++ { ++ if (c instanceof JInternalFrame) ++ { ++ frame = (JInternalFrame) c; ++ ++ internalFrameLayout = createLayoutManager(); ++ frame.setLayout(internalFrameLayout); ++ ++ ((JComponent) frame.getRootPane().getGlassPane()).setOpaque(false); ++ frame.getRootPane().getGlassPane().setVisible(true); ++ ++ installDefaults(); ++ installListeners(); ++ installComponents(); ++ installKeyboardActions(); ++ ++ frame.setOpaque(true); ++ titlePane.setOpaque(true); ++ frame.invalidate(); ++ } ++ } ++ ++ /** ++ * This method reverses the work done by installUI. ++ * ++ * @param c The JComponent to uninstall this UI for. ++ */ ++ public void uninstallUI(JComponent c) ++ { ++ uninstallKeyboardActions(); ++ uninstallComponents(); ++ uninstallListeners(); ++ uninstallDefaults(); ++ ++ frame.setLayout(null); ++ ((JComponent) frame.getRootPane().getGlassPane()).setOpaque(true); ++ frame.getRootPane().getGlassPane().setVisible(false); ++ ++ frame = null; ++ } ++ ++ /** ++ * This method installs the defaults specified by the look and feel. ++ */ ++ protected void installDefaults() ++ { ++ // FIXME: Move border to MetalBorders ++ frame.setBorder(new InternalFrameBorder()); ++ } ++ ++ /** ++ * This method installs the keyboard actions for the JInternalFrame. ++ */ ++ protected void installKeyboardActions() ++ { ++ // FIXME: Implement. ++ } ++ ++ /** ++ * This method installs the Components for the JInternalFrame. ++ */ ++ protected void installComponents() ++ { ++ setNorthPane(createNorthPane(frame)); ++ setSouthPane(createSouthPane(frame)); ++ setEastPane(createEastPane(frame)); ++ setWestPane(createWestPane(frame)); ++ } ++ ++ /** ++ * This method installs the listeners for the JInternalFrame. ++ */ ++ protected void installListeners() ++ { ++ glassPaneDispatcher = createGlassPaneDispatcher(); ++ createInternalFrameListener(); ++ borderListener = createBorderListener(frame); ++ componentListener = createComponentListener(); ++ propertyChangeListener = createPropertyChangeListener(); ++ ++ frame.addMouseListener(borderListener); ++ frame.addMouseMotionListener(borderListener); ++ frame.addInternalFrameListener(internalFrameListener); ++ frame.addPropertyChangeListener(propertyChangeListener); ++ ++ frame.getRootPane().getGlassPane().addMouseListener(glassPaneDispatcher); ++ frame.getRootPane().getGlassPane().addMouseMotionListener(glassPaneDispatcher); ++ } ++ ++ /** ++ * This method uninstalls the defaults for the JInternalFrame. ++ */ ++ protected void uninstallDefaults() ++ { ++ frame.setBorder(null); ++ } ++ ++ /** ++ * This method uninstalls the Components for the JInternalFrame. ++ */ ++ protected void uninstallComponents() ++ { ++ setNorthPane(null); ++ setSouthPane(null); ++ setEastPane(null); ++ setWestPane(null); ++ } ++ ++ /** ++ * This method uninstalls the listeners for the JInternalFrame. ++ */ ++ protected void uninstallListeners() ++ { ++ if (desktopPane != null) ++ desktopPane.removeComponentListener(componentListener); ++ ++ frame.getRootPane().getGlassPane().removeMouseMotionListener(glassPaneDispatcher); ++ frame.getRootPane().getGlassPane().removeMouseListener(glassPaneDispatcher); ++ ++ frame.removePropertyChangeListener(propertyChangeListener); ++ frame.removeInternalFrameListener(internalFrameListener); ++ frame.removeMouseMotionListener(borderListener); ++ frame.removeMouseListener(borderListener); ++ ++ propertyChangeListener = null; ++ componentListener = null; ++ borderListener = null; ++ internalFrameListener = null; ++ glassPaneDispatcher = null; ++ } ++ ++ /** ++ * This method uninstalls the keyboard actions for the JInternalFrame. ++ */ ++ protected void uninstallKeyboardActions() ++ { ++ // FIXME: Implement. ++ } ++ ++ /** ++ * This method creates a new LayoutManager for the JInternalFrame. ++ * ++ * @return A new LayoutManager for the JInternalFrame. ++ */ ++ protected LayoutManager createLayoutManager() ++ { ++ return new InternalFrameLayout(); ++ } ++ ++ /** ++ * This method creates a new PropertyChangeListener for the JInternalFrame. ++ * ++ * @return A new PropertyChangeListener for the JInternalFrame. ++ */ ++ protected PropertyChangeListener createPropertyChangeListener() ++ { ++ return new InternalFramePropertyChangeListener(); ++ } ++ ++ /** ++ * This method returns the preferred size of the given JComponent. ++ * ++ * @param x The JComponent to find a preferred size for. ++ * ++ * @return The preferred size. ++ */ ++ public Dimension getPreferredSize(JComponent x) ++ { ++ return internalFrameLayout.preferredLayoutSize(x); ++ } ++ ++ /** ++ * This method returns the minimum size of the given JComponent. ++ * ++ * @param x The JComponent to find a minimum size for. ++ * ++ * @return The minimum size. ++ */ ++ public Dimension getMinimumSize(JComponent x) ++ { ++ return internalFrameLayout.minimumLayoutSize(x); ++ } ++ ++ /** ++ * This method returns the maximum size of the given JComponent. ++ * ++ * @param x The JComponent to find a maximum size for. ++ * ++ * @return The maximum size. ++ */ ++ public Dimension getMaximumSize(JComponent x) ++ { ++ return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE); ++ } ++ ++ /** ++ * This method replaces the currentPane with the newPane. When replacing it ++ * also removes the MouseHandlers for the old pane and installs them on ++ * the new pane. ++ * ++ * @param currentPane The old pane to remove. ++ * @param newPane The new pane to install. ++ */ ++ protected void replacePane(JComponent currentPane, JComponent newPane) ++ { ++ if (currentPane != null) ++ { ++ deinstallMouseHandlers(currentPane); ++ frame.remove(currentPane); ++ } ++ ++ if (newPane != null) ++ { ++ installMouseHandlers(newPane); ++ frame.add(newPane); ++ } ++ } ++ ++ /** ++ * This method removes the necessary MouseListeners from the given ++ * JComponent. ++ * ++ * @param c The JComponent to remove MouseListeners from. ++ */ ++ protected void deinstallMouseHandlers(JComponent c) ++ { ++ c.removeMouseListener(borderListener); ++ c.removeMouseMotionListener(borderListener); ++ } ++ ++ /** ++ * This method installs the necessary MouseListeners from the given ++ * JComponent. ++ * ++ * @param c The JComponent to install MouseListeners on. ++ */ ++ protected void installMouseHandlers(JComponent c) ++ { ++ c.addMouseListener(borderListener); ++ c.addMouseMotionListener(borderListener); ++ } ++ ++ /** ++ * This method creates the north pane used in the JInternalFrame. ++ * ++ * @param w The JInternalFrame to create a north pane for. ++ * ++ * @return The north pane. ++ */ ++ protected JComponent createNorthPane(JInternalFrame w) ++ { ++ titlePane = new BasicInternalFrameTitlePane(w); ++ return titlePane; ++ } ++ ++ /** ++ * This method creates the west pane used in the JInternalFrame. ++ * ++ * @param w The JInternalFrame to create a west pane for. ++ * ++ * @return The west pane. ++ */ ++ protected JComponent createWestPane(JInternalFrame w) ++ { ++ return null; ++ } ++ ++ /** ++ * This method creates the south pane used in the JInternalFrame. ++ * ++ * @param w The JInternalFrame to create a south pane for. ++ * ++ * @return The south pane. ++ */ ++ protected JComponent createSouthPane(JInternalFrame w) ++ { ++ return null; ++ } ++ ++ /** ++ * This method creates the east pane used in the JInternalFrame. ++ * ++ * @param w The JInternalFrame to create an east pane for. ++ * ++ * @return The east pane. ++ */ ++ protected JComponent createEastPane(JInternalFrame w) ++ { ++ return null; ++ } ++ ++ /** ++ * This method returns a new BorderListener for the given JInternalFrame. ++ * ++ * @param w The JIntenalFrame to create a BorderListener for. ++ * ++ * @return A new BorderListener. ++ */ ++ protected MouseInputAdapter createBorderListener(JInternalFrame w) ++ { ++ return new BorderListener(); ++ } ++ ++ /** ++ * This method creates a new InternalFrameListener for the JInternalFrame. ++ */ ++ protected void createInternalFrameListener() ++ { ++ internalFrameListener = new BasicInternalFrameListener(); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ protected final boolean isKeyBindingRegistered() ++ { ++ // FIXME: Implement. ++ return false; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param b DOCUMENT ME! ++ */ ++ protected final void setKeyBindingRegistered(boolean b) ++ { ++ // FIXME: Implement. ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public final boolean isKeyBindingActive() ++ { ++ // FIXME: Implement. ++ return false; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param b DOCUMENT ME! ++ */ ++ protected final void setKeyBindingActive(boolean b) ++ { ++ // FIXME: Implement. ++ } ++ ++ /** ++ * DOCUMENT ME! ++ */ ++ protected void setupMenuOpenKey() ++ { ++ // FIXME: Implement. ++ } ++ ++ /** ++ * DOCUMENT ME! ++ */ ++ protected void setupMenuCloseKey() ++ { ++ // FIXME: Implement. ++ } ++ ++ /** ++ * This method returns the north pane. ++ * ++ * @return The north pane. ++ */ ++ public JComponent getNorthPane() ++ { ++ return northPane; ++ } ++ ++ /** ++ * This method sets the north pane to be the given JComponent. ++ * ++ * @param c The new north pane. ++ */ ++ public void setNorthPane(JComponent c) ++ { ++ replacePane(northPane, c); ++ northPane = c; ++ } ++ ++ /** ++ * This method returns the south pane. ++ * ++ * @return The south pane. ++ */ ++ public JComponent getSouthPane() ++ { ++ return southPane; ++ } ++ ++ /** ++ * This method sets the south pane to be the given JComponent. ++ * ++ * @param c The new south pane. ++ */ ++ public void setSouthPane(JComponent c) ++ { ++ replacePane(southPane, c); ++ southPane = c; ++ } ++ ++ /** ++ * This method sets the east pane to be the given JComponent. ++ * ++ * @param c The new east pane. ++ */ ++ public void setEastPane(JComponent c) ++ { ++ replacePane(eastPane, c); ++ eastPane = c; ++ } ++ ++ /** ++ * This method returns the east pane. ++ * ++ * @return The east pane. ++ */ ++ public JComponent getEastPane() ++ { ++ return eastPane; ++ } ++ ++ /** ++ * This method sets the west pane to be the given JComponent. ++ * ++ * @param c The new west pane. ++ */ ++ public void setWestPane(JComponent c) ++ { ++ replacePane(westPane, c); ++ westPane = c; ++ } ++ ++ /** ++ * This method returns the west pane. ++ * ++ * @return The west pane. ++ */ ++ public JComponent getWestPane() ++ { ++ return westPane; ++ } ++ ++ /** ++ * This method returns the DesktopManager to use with the JInternalFrame. ++ * ++ * @return The DesktopManager to use with the JInternalFrame. ++ */ ++ protected DesktopManager getDesktopManager() ++ { ++ DesktopManager value = frame.getDesktopPane().getDesktopManager(); ++ if (value == null) ++ value = createDesktopManager(); ++ return value; ++ } ++ ++ /** ++ * This method returns a default DesktopManager that can be used with this ++ * JInternalFrame. ++ * ++ * @return A default DesktopManager that can be used with this ++ * JInternalFrame. ++ */ ++ protected DesktopManager createDesktopManager() ++ { ++ return new DefaultDesktopManager(); ++ } ++ ++ /** ++ * This is a convenience method that closes the JInternalFrame. ++ * ++ * @param f The JInternalFrame to close. ++ */ ++ protected void closeFrame(JInternalFrame f) ++ { ++ getDesktopManager().closeFrame(f); ++ } ++ ++ /** ++ * This is a convenience method that maximizes the JInternalFrame. ++ * ++ * @param f The JInternalFrame to maximize. ++ */ ++ protected void maximizeFrame(JInternalFrame f) ++ { ++ getDesktopManager().maximizeFrame(f); ++ } ++ ++ /** ++ * This is a convenience method that minimizes the JInternalFrame. ++ * ++ * @param f The JInternalFrame to minimize. ++ */ ++ protected void minimizeFrame(JInternalFrame f) ++ { ++ getDesktopManager().minimizeFrame(f); ++ } ++ ++ /** ++ * This is a convenience method that iconifies the JInternalFrame. ++ * ++ * @param f The JInternalFrame to iconify. ++ */ ++ protected void iconifyFrame(JInternalFrame f) ++ { ++ getDesktopManager().iconifyFrame(f); ++ } ++ ++ /** ++ * This is a convenience method that deiconifies the JInternalFrame. ++ * ++ * @param f The JInternalFrame to deiconify. ++ */ ++ protected void deiconifyFrame(JInternalFrame f) ++ { ++ getDesktopManager().deiconifyFrame(f); ++ } ++ ++ /** ++ * This is a convenience method that activates the JInternalFrame. ++ * ++ * @param f The JInternalFrame to activate. ++ */ ++ protected void activateFrame(JInternalFrame f) ++ { ++ getDesktopManager().activateFrame(f); ++ } ++ ++ /** ++ * This method returns a new ComponentListener for the JDesktopPane. ++ * ++ * @return A new ComponentListener. ++ */ ++ protected ComponentListener createComponentListener() ++ { ++ return new ComponentHandler(); ++ } ++ ++ /** ++ * This method returns a new GlassPaneDispatcher. ++ * ++ * @return A new GlassPaneDispatcher. ++ */ ++ protected MouseInputListener createGlassPaneDispatcher() ++ { ++ return new GlassPaneDispatcher(); ++ } ++} +Index: javax/swing/plaf/basic/BasicLabelUI.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/plaf/basic/BasicLabelUI.java,v +retrieving revision 1.4 +diff -u -r1.4 BasicLabelUI.java +--- javax/swing/plaf/basic/BasicLabelUI.java 13 Jul 2003 15:29:11 -0000 1.4 ++++ javax/swing/plaf/basic/BasicLabelUI.java 6 Sep 2004 16:36:04 -0000 +@@ -1,5 +1,5 @@ + /* BasicLabelUI.java +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,7 +35,6 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing.plaf.basic; + + import java.awt.Color; +@@ -47,156 +46,382 @@ + import java.awt.Rectangle; + import java.beans.PropertyChangeEvent; + import java.beans.PropertyChangeListener; ++ ++import javax.swing.Icon; + import javax.swing.JComponent; + import javax.swing.JLabel; + import javax.swing.SwingUtilities; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; + import javax.swing.plaf.ComponentUI; + import javax.swing.plaf.LabelUI; + +-public class BasicLabelUI extends LabelUI +- implements PropertyChangeListener ++ ++/** ++ * This is the Basic Look and Feel class for the JLabel. One BasicLabelUI ++ * object is used to paint all JLabels that utilize the Basic Look and Feel. ++ */ ++public class BasicLabelUI extends LabelUI implements PropertyChangeListener + { +- int gap = 3; +- Color foreground; ++ /** The labelUI that is shared by all labels. */ ++ protected static BasicLabelUI labelUI; + +- +- public static ComponentUI createUI(final JComponent c) { +- return new BasicLabelUI(); +- } +- +- +- public void installUI(final JComponent c) { +- super.installUI(c); +- +- foreground = new Color(0,0,250); +- } +- ++ /** ++ * Creates a new BasicLabelUI object. ++ */ ++ public BasicLabelUI() ++ { ++ super(); ++ } + +- public Dimension getPreferredSize(JComponent c) +- { +- JLabel b = (JLabel)c; +- /* +- We cannot use this method because it is not part of the +- official Swing API. +- +- Dimension d = BasicGraphicsUtils.getPreferredSize(b, +- gap, +- b.getText(), +- b.getIcon(), +- b.getVerticalAlignment(), +- b.getHorizontalAlignment(), +- b.getHorizontalTextPosition(), +- b.getVerticalTextPosition()); +- System.out.println("JLABEL->^^^^^^^^^^^^^^^^^^^^^^ BASIC-PREF="+d + ",T="+b.getText()); +- */ +- return new Dimension(100, 30); +- } ++ /** ++ * Creates and returns a UI for the label. Since one UI is shared by all ++ * labels, this means creating only if necessary and returning the shared ++ * UI. ++ * ++ * @param c The {@link JComponent} that a UI is being created for. ++ * ++ * @return A label UI for the Basic Look and Feel. ++ */ ++ public static ComponentUI createUI(JComponent c) ++ { ++ if (labelUI == null) ++ labelUI = new BasicLabelUI(); ++ return labelUI; ++ } ++ ++ /** ++ * Returns the preferred size of this component as calculated by the ++ * {@link layoutCL} method. ++ * ++ * @param c This {@link JComponent} to get a preferred size for. ++ * ++ * @return The preferred size. ++ */ ++ public Dimension getPreferredSize(JComponent c) ++ { ++ JLabel lab = (JLabel)c; ++ Rectangle vr = new Rectangle(); ++ Rectangle ir = new Rectangle(); ++ Rectangle tr = new Rectangle(); ++ Insets insets = lab.getInsets(); ++ FontMetrics fm = lab.getToolkit().getFontMetrics(lab.getFont()); ++ layoutCL(lab, fm, lab.getText(), lab.getIcon(), vr, ir, tr); ++ Rectangle cr = tr.union(ir); ++ return new Dimension(insets.left + cr.width + insets.right, ++ insets.top + cr.height + insets.bottom); + ++ } + +- public void paint(Graphics g, JComponent c) +- { +- JLabel b = (JLabel) c; +- +- Rectangle tr = new Rectangle(); +- Rectangle ir = new Rectangle(); +- Rectangle vr = new Rectangle(); +- +- Font f = c.getFont(); +- +- g.setFont(f); +- +- FontMetrics fm = g.getFontMetrics(f); +- +- Insets i = c.getInsets(); +- +- Rectangle bound = c.getBounds(); +- +- System.out.println("BOUND=" + bound + ", insets = " + i + ", " + b.getText()); +- +- if (bound == null) +- { +- vr.x = i.left; +- vr.y = i.top; +- vr.width = b.getWidth() - (i.right + i.left); +- vr.height = b.getHeight() - (i.bottom + i.top); +- } +- else +- { +- vr.x = bound.x + i.left; +- vr.y = bound.y + i.top; +- vr.width = bound.width - (i.right + i.left); +- vr.height = bound.height - (i.bottom + i.top); +- } +- +- System.out.println(" VIEW-RECT-JLABEL="+vr+", insets="+i+", FONTM="+fm); +- +- String text = SwingUtilities.layoutCompoundLabel(c, +- fm, +- b.getText(), +- b.getIcon(), +- b.getVerticalAlignment(), +- b.getHorizontalAlignment(), +- b.getVerticalTextPosition(), +- b.getHorizontalTextPosition(), +- vr, +- ir, +- tr, +- gap); +- +- paintIcon(g, c, ir); +- paintText(g, c, tr, b.getText()); +- paintFocus(g, c, vr, tr, ir); +- } ++ /** ++ * This method returns the minimum size of the {@link JComponent} given. If ++ * this method returns null, then it is up to the Layout Manager to give ++ * this component a minimum size. ++ * ++ * @param c The {@link JComponent} to get a minimum size for. ++ * ++ * @return The minimum size. ++ */ ++ public Dimension getMinimumSize(JComponent c) ++ { ++ return getPreferredSize(c); ++ } + ++ /** ++ * This method returns the maximum size of the {@link JComponent} given. If ++ * this method returns null, then it is up to the Layout Manager to give ++ * this component a maximum size. ++ * ++ * @param c The {@link JComponent} to get a maximum size for. ++ * ++ * @return The maximum size. ++ */ ++ public Dimension getMaximumSize(JComponent c) ++ { ++ return getPreferredSize(c); ++ } + +- protected void paintFocus(Graphics g, +- JComponent c, +- Rectangle vr, +- Rectangle tr, +- Rectangle ir) +- { +- } ++ /** ++ * The method that paints the label according to its current state. ++ * ++ * @param g The {@link Graphics} object to paint with. ++ * @param c The {@link JComponent} to paint. ++ */ ++ public void paint(Graphics g, JComponent c) ++ { ++ JLabel b = (JLabel) c; + +- protected void paintIcon(Graphics g, +- JComponent c, +- Rectangle iconRect) +- { +- JLabel b = (JLabel) c; +- if (b.getIcon() != null) +- { +- int x = iconRect.x; +- int y = iconRect.y; +- +- System.out.println("WE HAVE AN ICON: " + b.getIcon()); +- +- b.getIcon().paintIcon(c, g, x, y); +- } +- else +- { +- //System.out.println("NO ICON FOR BUTTON:" + b.text); +- } +- } ++ Font saved_font = g.getFont(); ++ ++ Rectangle tr = new Rectangle(); ++ Rectangle ir = new Rectangle(); ++ Rectangle vr = new Rectangle(); ++ ++ Font f = c.getFont(); ++ ++ g.setFont(f); ++ FontMetrics fm = g.getFontMetrics(f); + ++ vr = SwingUtilities.calculateInnerArea(c, vr); ++ ++ if (vr.width < 0) ++ vr.width = 0; ++ if (vr.height < 0) ++ vr.height = 0; ++ ++ Icon icon = (b.isEnabled()) ? b.getIcon() : b.getDisabledIcon(); ++ ++ String text = layoutCL(b, fm, b.getText(), icon, vr, ir, tr); + +- protected void paintText(Graphics g, +- JComponent c, +- Rectangle textRect, +- String text) ++ if (icon != null) ++ icon.paintIcon(b, g, ir.x, ir.y); ++ if (text != null && ! text.equals("")) + { +- // AbstractLabel b = (AbstractLabel) c; +- +- System.out.println("JLabel: drawing string: " + text + ", at:" + textRect); +- +- g.setColor(foreground); +- //g.setBackColor(new Color(190,190,190)); +- +- g.drawLine(0,0,100,100); +- +- BasicGraphicsUtils.drawString(g, text, 0, 0 /*textRect.x*/, 0 /*textRect.y*/); ++ if (b.isEnabled()) ++ paintEnabledText(b, g, text, tr.x, tr.y + fm.getAscent()); ++ else ++ paintDisabledText(b, g, text, tr.x, tr.y + fm.getAscent()); + } ++ g.setFont(saved_font); ++ } ++ ++ /** ++ * This method is simply calls SwingUtilities's layoutCompoundLabel. ++ * ++ * @param label The label to lay out. ++ * @param fontMetrics The FontMetrics for the font used. ++ * @param text The text to paint. ++ * @param icon The icon to draw. ++ * @param viewR The entire viewable rectangle. ++ * @param iconR The icon bounds rectangle. ++ * @param textR The text bounds rectangle. ++ * ++ * @return A possibly clipped version of the text. ++ */ ++ protected String layoutCL(JLabel label, FontMetrics fontMetrics, ++ String text, Icon icon, Rectangle viewR, ++ Rectangle iconR, Rectangle textR) ++ { ++ return SwingUtilities.layoutCompoundLabel(label, fontMetrics, text, icon, ++ label.getVerticalAlignment(), ++ label.getHorizontalAlignment(), ++ label.getVerticalTextPosition(), ++ label.getHorizontalTextPosition(), ++ viewR, iconR, textR, ++ label.getIconTextGap()); ++ } ++ ++ /** ++ * Paints the text if the label is disabled. By default, this paints the ++ * clipped text returned by layoutCompoundLabel using the ++ * background.brighter() color. It also paints the same text using the ++ * background.darker() color one pixel to the right and one pixel down. ++ * ++ * @param l The {@link JLabel} being painted. ++ * @param g The {@link Graphics} object to paint with. ++ * @param s The String to paint. ++ * @param textX The x coordinate of the start of the baseline. ++ * @param textY The y coordinate of the start of the baseline. ++ */ ++ protected void paintDisabledText(JLabel l, Graphics g, String s, int textX, ++ int textY) ++ { ++ Color saved_color = g.getColor(); ++ ++ g.setColor(l.getBackground().brighter()); ++ ++ int mnemIndex = l.getDisplayedMnemonicIndex(); ++ ++ if (mnemIndex != -1) ++ BasicGraphicsUtils.drawStringUnderlineCharAt(g, s, mnemIndex, textX, ++ textY); ++ else ++ g.drawString(s, textX, textY); ++ ++ g.setColor(l.getBackground().darker()); ++ if (mnemIndex != -1) ++ BasicGraphicsUtils.drawStringUnderlineCharAt(g, s, mnemIndex, textX + 1, ++ textY + 1); ++ else ++ g.drawString(s, textX + 1, textY + 1); ++ ++ g.setColor(saved_color); ++ } ++ ++ /** ++ * Paints the text if the label is enabled. The text is painted using the ++ * foreground color. ++ * ++ * @param l The {@link JLabel} being painted. ++ * @param g The {@link Graphics} object to paint with. ++ * @param s The String to paint. ++ * @param textX The x coordinate of the start of the baseline. ++ * @param textY The y coordinate of the start of the baseline. ++ */ ++ protected void paintEnabledText(JLabel l, Graphics g, String s, int textX, ++ int textY) ++ { ++ Color saved_color = g.getColor(); ++ g.setColor(l.getForeground()); ++ ++ int mnemIndex = l.getDisplayedMnemonicIndex(); ++ ++ if (mnemIndex != -1) ++ BasicGraphicsUtils.drawStringUnderlineCharAt(g, s, mnemIndex, textX, ++ textY); ++ else ++ g.drawString(s, textX, textY); ++ ++ g.setColor(saved_color); ++ } ++ ++ /** ++ * This method installs the UI for the given {@link JComponent}. This ++ * method will install the component, defaults, listeners, and keyboard ++ * actions. ++ * ++ * @param c The {@link JComponent} that this UI is being installed on. ++ */ ++ public void installUI(JComponent c) ++ { ++ super.installUI(c); ++ if (c instanceof JLabel) ++ { ++ JLabel l = (JLabel) c; ++ ++ installComponents(l); ++ installDefaults(l); ++ installListeners(l); ++ installKeyboardActions(l); ++ } ++ } ++ ++ /** ++ * This method uninstalls the UI for the given {@link JComponent}. This ++ * method will uninstall the component, defaults, listeners, and keyboard ++ * actions. ++ * ++ * @param c The {@link JComponent} that this UI is being installed on. ++ */ ++ public void uninstallUI(JComponent c) ++ { ++ super.uninstallUI(c); ++ if (c instanceof JLabel) ++ { ++ JLabel l = (JLabel) c; ++ ++ uninstallKeyboardActions(l); ++ uninstallListeners(l); ++ uninstallDefaults(l); ++ uninstallComponents(l); ++ } ++ } ++ ++ /** ++ * This method installs the components for this {@link JLabel}. ++ * ++ * @param c The {@link JLabel} to install components for. ++ */ ++ protected void installComponents(JLabel c) ++ { ++ //FIXME: fix javadoc + implement. ++ } ++ ++ /** ++ * This method uninstalls the components for this {@link JLabel}. ++ * ++ * @param c The {@link JLabel} to uninstall components for. ++ */ ++ protected void uninstallComponents(JLabel c) ++ { ++ //FIXME: fix javadoc + implement. ++ } ++ ++ /** ++ * This method installs the defaults that are defined in the Basic look and ++ * feel for this {@link JLabel}. ++ * ++ * @param c The {@link JLabel} to install defaults for. ++ */ ++ protected void installDefaults(JLabel c) ++ { ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ ++ c.setForeground(defaults.getColor("Label.foreground")); ++ c.setBackground(defaults.getColor("Label.background")); ++ c.setFont(defaults.getFont("Label.font")); ++ c.setBorder(defaults.getBorder("Label.border")); ++ c.setOpaque(true); ++ //XXX: There are properties we don't use called disabledForeground ++ //and disabledShadow. ++ } ++ ++ /** ++ * This method uninstalls the defaults that are defined in the Basic look ++ * and feel for this {@link JLabel}. ++ * ++ * @param c The {@link JLabel} to uninstall defaults for. ++ */ ++ protected void uninstallDefaults(JLabel c) ++ { ++ c.setForeground(null); ++ c.setBackground(null); ++ c.setFont(null); ++ c.setBorder(null); ++ } ++ ++ /** ++ * This method installs the keyboard actions for the given {@link JLabel}. ++ * ++ * @param l The {@link JLabel} to install keyboard actions for. ++ */ ++ protected void installKeyboardActions(JLabel l) ++ { ++ //FIXME: implement. ++ } ++ ++ /** ++ * This method uninstalls the keyboard actions for the given {@link JLabel}. ++ * ++ * @param l The {@link JLabel} to uninstall keyboard actions for. ++ */ ++ protected void uninstallKeyboardActions(JLabel l) ++ { ++ //FIXME: implement. ++ } ++ ++ /** ++ * This method installs the listeners for the given {@link JLabel}. The UI ++ * delegate only listens to the label. ++ * ++ * @param c The {@link JLabel} to install listeners for. ++ */ ++ protected void installListeners(JLabel c) ++ { ++ c.addPropertyChangeListener(this); ++ } ++ ++ /** ++ * This method uninstalls the listeners for the given {@link JLabel}. The UI ++ * delegate only listens to the label. ++ * ++ * @param c The {@link JLabel} to uninstall listeners for. ++ */ ++ protected void uninstallListeners(JLabel c) ++ { ++ c.removePropertyChangeListener(this); ++ } + +- public void propertyChange (PropertyChangeEvent event) ++ /** ++ * This method is called whenever any JLabel's that use this UI has one of ++ * their properties change. ++ * ++ * @param e The {@link PropertyChangeEvent} that describes the change. ++ */ ++ public void propertyChange(PropertyChangeEvent e) + { +- throw new Error ("Not implemented"); ++ JLabel c = (JLabel) e.getSource(); ++ c.revalidate(); ++ c.repaint(); + } + } +Index: javax/swing/plaf/basic/BasicListUI.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/plaf/basic/BasicListUI.java,v +retrieving revision 1.4 +diff -u -r1.4 BasicListUI.java +--- javax/swing/plaf/basic/BasicListUI.java 10 Jan 2004 21:59:30 -0000 1.4 ++++ javax/swing/plaf/basic/BasicListUI.java 6 Sep 2004 16:36:04 -0000 +@@ -35,7 +35,6 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing.plaf.basic; + + import java.awt.Color; +@@ -44,141 +43,659 @@ + import java.awt.Graphics; + import java.awt.Point; + import java.awt.Rectangle; ++import java.awt.event.FocusEvent; ++import java.awt.event.FocusListener; ++import java.awt.event.MouseEvent; ++import java.beans.PropertyChangeEvent; ++import java.beans.PropertyChangeListener; + import javax.swing.JComponent; + import javax.swing.JList; + import javax.swing.ListCellRenderer; ++import javax.swing.ListModel; ++import javax.swing.ListSelectionModel; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; ++import javax.swing.event.ListDataEvent; ++import javax.swing.event.ListDataListener; ++import javax.swing.event.ListSelectionEvent; ++import javax.swing.event.ListSelectionListener; ++import javax.swing.event.MouseInputListener; + import javax.swing.plaf.ComponentUI; + import javax.swing.plaf.ListUI; + ++ ++/** ++ * The Basic Look and Feel UI delegate for the ++ * JList. ++ */ + public class BasicListUI extends ListUI + { +- int gap_between_cells; +- Color textColor, disabledTextColor, pressedBackgroundColor, normalBackgroundColor; +- ++ /** ++ * A helper class which listens for {@link FocusEvents} ++ * from the JList. ++ */ ++ class FocusHandler implements FocusListener ++ { ++ /** ++ * Called when the JList acquires focus. ++ * ++ * @param e The FocusEvent representing focus acquisition ++ */ ++ public void focusGained(FocusEvent e) ++ { ++ repaintCellFocus(); ++ } + +- public static ComponentUI createUI(final JComponent c) ++ /** ++ * Called when the JList loses focus. ++ * ++ * @param e The FocusEvent representing focus loss ++ */ ++ public void focusLost(FocusEvent e) + { +- return new BasicButtonUI(); ++ repaintCellFocus(); + } + +- +- public void installUI(final JComponent c) ++ /** ++ * Helper method to repaint the focused cell's ++ * lost or acquired focus state. ++ */ ++ void repaintCellFocus() + { +- super.installUI(c); ++ } ++ } + +- textColor = new Color(0,0,0); +- disabledTextColor = new Color(130, 130, 130); +- pressedBackgroundColor = new Color(150,150,150); +- normalBackgroundColor = new Color(192,192,192); ++ /** ++ * A helper class which listens for {@link ListDataEvent}s generated by ++ * the {@link JList}'s {@link ListModel}. ++ * ++ * @see javax.swing.JList#model ++ */ ++ class ListDataHandler implements ListDataListener ++ { ++ /** ++ * Called when a general change has happened in the model which cannot ++ * be represented in terms of a simple addition or deletion. ++ * ++ * @param e The event representing the change ++ */ ++ public void contentsChanged(ListDataEvent e) ++ { ++ BasicListUI.this.damageLayout(); + } + +- public Dimension getPreferredSize(JComponent c) ++ /** ++ * Called when an interval of objects has been added to the model. ++ * ++ * @param e The event representing the addition ++ */ ++ public void intervalAdded(ListDataEvent e) + { +- JList l = (JList) c; ++ BasicListUI.this.damageLayout(); ++ } + +- System.out.println("XXXXXXXXXXXXXXXxx getPreferredSize------------> " + l); ++ /** ++ * Called when an inteval of objects has been removed from the model. ++ * ++ * @param e The event representing the removal ++ */ ++ public void intervalRemoved(ListDataEvent e) ++ { ++ BasicListUI.this.damageLayout(); ++ } ++ } + +- +- int rows = l.getVisibleRowCount(); ++ /** ++ * A helper class which listens for {@link ListSelectionEvent}s ++ * from the {@link JList}'s {@link ListSelectionModel}. ++ */ ++ class ListSelectionHandler implements ListSelectionListener ++ { ++ /** ++ * Called when the list selection changes. ++ * ++ * @param e The event representing the change ++ */ ++ public void valueChanged(ListSelectionEvent e) ++ { ++ } ++ } + +- ListCellRenderer render = l.getCellRenderer(); +- +- int width = 200; +- int height = rows * 16; +- +- if (l.getModel().getSize() == 0) +- { +- return new Dimension(width, height); +- } ++ /** ++ * A helper class which listens for {@link MouseEvent}s ++ * from the {@link JList}. ++ */ ++ class MouseInputHandler implements MouseInputListener ++ { ++ /** ++ * Called when a mouse button press/release cycle completes ++ * on the {@link JList} ++ * ++ * @param event The event representing the mouse click ++ */ ++ public void mouseClicked(MouseEvent event) ++ { ++ } + +- System.out.println("BASIC_LIST_UI ====-> " + l.getModel().getElementAt(0)); ++ /** ++ * Called when a mouse button is pressed down on the ++ * {@link JList}. ++ * ++ * @param event The event representing the mouse press ++ */ ++ public void mousePressed(MouseEvent event) ++ { ++ int row = BasicListUI.this.convertYToRow(event.getY()); ++ if (row == -1) ++ return; + +- Component elt = render.getListCellRendererComponent(l, +- l.getModel().getElementAt(0), +- 0, +- false, +- false); +- Dimension a = elt.getPreferredSize(); +- if (a == null) +- { +- return new Dimension(width, height); +- } ++ BasicListUI.this.list.setSelectedIndex(row); ++ } + +- return new Dimension(a.width, +- a.height * rows); ++ /** ++ * Called when a mouse button is released on ++ * the {@link JList} ++ * ++ * @param event The event representing the mouse press ++ */ ++ public void mouseReleased(MouseEvent event) ++ { + } + +- public void paintBackground(Graphics g, +- JComponent c) ++ /** ++ * Called when the mouse pointer enters the area bounded ++ * by the {@link JList} ++ * ++ * @param event The event representing the mouse entry ++ */ ++ public void mouseEntered(MouseEvent event) + { +- Dimension size = getPreferredSize(c); ++ } + +- g.setColor(normalBackgroundColor); +- g.fillRect(0,0,size.width, size.height); ++ /** ++ * Called when the mouse pointer leaves the area bounded ++ * by the {@link JList} ++ * ++ * @param event The event representing the mouse exit ++ */ ++ public void mouseExited(MouseEvent event) ++ { + } + +- public void paint(Graphics g, +- JComponent c) +- { +- JList l = (JList) c; ++ /** ++ * Called when the mouse pointer moves over the area bounded ++ * by the {@link JList} while a button is held down. ++ * ++ * @param event The event representing the mouse drag ++ */ ++ public void mouseDragged(MouseEvent event) ++ { ++ } ++ ++ /** ++ * Called when the mouse pointer moves over the area bounded ++ * by the {@link JList}. ++ * ++ * @param event The event representing the mouse move ++ */ ++ public void mouseMoved(MouseEvent event) ++ { ++ } ++ } + +- int rows = l.getVisibleRowCount(); ++ /** ++ * Helper class which listens to {@link PropertyChangeEvent}s ++ * from the {@link JList}. ++ */ ++ class PropertyChangeHandler implements PropertyChangeListener ++ { ++ /** ++ * Called when the {@link JList} changes one of its bound properties. ++ * ++ * @param e The event representing the property change ++ */ ++ public void propertyChange(PropertyChangeEvent e) ++ { ++ if (e.getSource() == BasicListUI.this.list) ++ { ++ if (e.getOldValue() != null && e.getOldValue() instanceof ListModel) ++ ((ListModel) e.getOldValue()).removeListDataListener(BasicListUI.this.listDataListener); ++ ++ if (e.getNewValue() != null && e.getNewValue() instanceof ListModel) ++ ((ListModel) e.getNewValue()).addListDataListener(BasicListUI.this.listDataListener); ++ } ++ BasicListUI.this.damageLayout(); ++ } ++ } + +- ListCellRenderer render = l.getCellRenderer(); ++ /** ++ * Creates a new BasicListUI for the component. ++ * ++ * @param c The component to create a UI for ++ * ++ * @return A new UI ++ */ ++ public static ComponentUI createUI(final JComponent c) ++ { ++ return new BasicListUI(); ++ } + +- System.out.println("RENDER-JLIST: " + rows + ", " + l.getModel().getSize()); ++ /** The current focus listener. */ ++ FocusHandler focusListener; + +- paintBackground(g, c); ++ /** The data listener listening to the model. */ ++ ListDataHandler listDataListener; + +- if (l.getModel().getSize() == 0) +- return; ++ /** The selection listener listening to the selection model. */ ++ ListSelectionHandler listSelectionListener; + +- // use element 0 to figure out how big we are: +- Component elt = render.getListCellRendererComponent(l, +- l.getModel().getElementAt(0), +- 0, +- false, +- false); +- Dimension dim = elt.getPreferredSize(); +- +- Rectangle a = new Rectangle(0, +- 0, +- dim.width, +- dim.height); ++ /** The mouse listener listening to the list. */ ++ MouseInputHandler mouseInputListener; ++ ++ /** The property change listener listening to the list. */ ++ PropertyChangeHandler propertyChangeListener; ++ ++ /** Saved reference to the list this UI was created for. */ ++ JList list; ++ ++ /** The height of a single cell in the list. */ ++ int cellHeight; ++ ++ /** The width of a single cell in the list. */ ++ int cellWidth; ++ ++ /** ++ * An array of varying heights of cells in the list, in cases where each ++ * cell might have a different height. ++ */ ++ int[] cellHeights; ++ ++ /** ++ * A simple counter. When nonzero, indicates that the UI class is out of ++ * date with respect to the underlying list, and must recalculate the ++ * list layout before painting or performing size calculations. ++ */ ++ int updateLayoutStateNeeded; ++ ++ /** ++ * Calculate the height of a particular row. If there is a fixed {@link ++ * #cellHeight}, return it; otherwise return the specific row height ++ * requested from the {@link #cellHeights} array. If the requested row ++ * is invalid, return -1. ++ * ++ * @param row The row to get the height of ++ * ++ * @return The height, in pixels, of the specified row ++ */ ++ int getRowHeight(int row) ++ { ++ if (row < 0 || row >= cellHeights.length) ++ return -1; ++ else if (cellHeight != -1) ++ return cellHeight; ++ else ++ return cellHeights[row]; ++ } + +- for (int i=0;i(0,0)
    . ++ * ++ * @param l Ignored; calculates over this.list ++ * @param index1 The first row to include in the bounds ++ * @param index2 The last row to incude in the bounds ++ * ++ * @return A rectangle encompassing the range of rows between ++ * index1 and index2 inclusive ++ */ ++ public Rectangle getCellBounds(JList l, int index1, int index2) ++ { ++ maybeUpdateLayoutState(); + +- Component comp = render.getListCellRendererComponent(l, +- l.getModel().getElementAt(i), +- i, +- is_sel, +- has_focus); ++ if (l != list || cellWidth == -1) ++ return null; + +- //System.out.println("AAAAA=> " + a + ", " + comp + ", index = " + i); ++ int lo = Math.min(index1, index2); ++ int hi = Math.max(index1, index2); ++ Rectangle lobounds = new Rectangle(0, convertRowToY(lo), cellWidth, ++ getRowHeight(lo)); ++ Rectangle hibounds = new Rectangle(0, convertRowToY(hi), cellWidth, ++ getRowHeight(hi)); + +- comp.setBounds(a); ++ return lobounds.union(hibounds); ++ } + +- comp.paint(g); ++ /** ++ * Calculate the Y coordinate of the upper edge of a particular row, ++ * considering the Y coordinate 0 to occur at the top of the ++ * list. ++ * ++ * @param row The row to calculate the Y coordinate of ++ * ++ * @return The Y coordinate of the specified row, or -1 if ++ * the specified row number is invalid ++ */ ++ int convertRowToY(int row) ++ { ++ int y = 0; ++ for (int i = 0; i < row; ++i) ++ { ++ int h = getRowHeight(i); ++ if (h == -1) ++ return -1; ++ y += h; ++ } ++ return y; ++ } + +- a.y += dim.height + gap_between_cells; +- } +- } ++ /** ++ * Calculate the row number containing a particular Y coordinate, ++ * considering the Y coodrinate 0 to occur at the top of the ++ * list. ++ * ++ * @param y0 The Y coordinate to calculate the row number for ++ * ++ * @return The row number containing the specified Y value, or -1 ++ * if the specified Y coordinate is invalid ++ */ ++ int convertYToRow(int y0) ++ { ++ for (int row = 0; row < cellHeights.length; ++row) ++ { ++ int h = getRowHeight(row); ++ ++ if (y0 < h) ++ return row; ++ y0 -= h; ++ } ++ return -1; ++ } + +- public int locationToIndex(JList list, Point location) ++ /** ++ * Recomputes the {@link #cellHeights}, {@link #cellHeight}, and {@link ++ * #cellWidth} properties by examining the variouis properties of the ++ * {@link JList}. ++ */ ++ void updateLayoutState() + { +- throw new Error ("Not implemented"); ++ int nrows = list.getModel().getSize(); ++ cellHeight = -1; ++ cellWidth = -1; ++ if (cellHeights == null || cellHeights.length != nrows) ++ cellHeights = new int[nrows]; ++ if (list.getFixedCellHeight() == -1 || list.getFixedCellWidth() == -1) ++ { ++ ListCellRenderer rend = list.getCellRenderer(); ++ for (int i = 0; i < nrows; ++i) ++ { ++ Component flyweight = rend.getListCellRendererComponent(list, ++ list.getModel() ++ .getElementAt(i), ++ 0, false, ++ false); ++ Dimension dim = flyweight.getPreferredSize(); ++ cellHeights[i] = dim.height; ++ cellWidth = Math.max(cellWidth, dim.width); ++ } ++ } ++ else ++ { ++ cellHeight = list.getFixedCellHeight(); ++ cellWidth = list.getFixedCellWidth(); ++ } + } + +- public Point indexToLocation(JList list, int index) ++ /** ++ * Marks the current layout as damaged and requests revalidation from the ++ * JList. ++ * ++ * @see #updateLayoutStateNeeded ++ */ ++ void damageLayout() ++ { ++ updateLayoutStateNeeded = 1; ++ list.revalidate(); ++ } ++ ++ /** ++ * Calls {@link #updateLayoutState} if {@link #updateLayoutStateNeeded} ++ * is nonzero, then resets {@link #updateLayoutStateNeeded} to zero. ++ */ ++ void maybeUpdateLayoutState() + { +- throw new Error ("Not implemented"); ++ if (updateLayoutStateNeeded != 0) ++ { ++ updateLayoutState(); ++ updateLayoutStateNeeded = 0; ++ } + } + +- public Rectangle getCellBounds(JList list, int index1, int index2) ++ /** ++ * Creates a new BasicListUI object. ++ */ ++ public BasicListUI() ++ { ++ focusListener = new FocusHandler(); ++ listDataListener = new ListDataHandler(); ++ listSelectionListener = new ListSelectionHandler(); ++ mouseInputListener = new MouseInputHandler(); ++ propertyChangeListener = new PropertyChangeHandler(); ++ updateLayoutStateNeeded = 1; ++ } ++ ++ /** ++ * Installs various default settings (mostly colors) from the {@link ++ * UIDefaults} into the {@link JList} ++ * ++ * @see #uninstallDefaults ++ */ ++ void installDefaults() ++ { ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ list.setForeground(defaults.getColor("List.foreground")); ++ list.setBackground(defaults.getColor("List.background")); ++ list.setSelectionForeground(defaults.getColor("List.selectionForeground")); ++ list.setSelectionBackground(defaults.getColor("List.selectionBackground")); ++ list.setOpaque(true); ++ } ++ ++ /** ++ * Resets to null those defaults which were installed in ++ * {@link #installDefaults} ++ */ ++ void uninstallDefaults() ++ { ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ list.setForeground(null); ++ list.setBackground(null); ++ list.setSelectionForeground(null); ++ list.setSelectionBackground(null); ++ } ++ ++ /** ++ * Attaches all the listeners we have in the UI class to the {@link ++ * JList}, its model and its selection model. ++ * ++ * @see #uninstallListeners ++ */ ++ void installListeners() ++ { ++ list.addFocusListener(focusListener); ++ list.getModel().addListDataListener(listDataListener); ++ list.addListSelectionListener(listSelectionListener); ++ list.addMouseListener(mouseInputListener); ++ list.addMouseMotionListener(mouseInputListener); ++ list.addPropertyChangeListener(propertyChangeListener); ++ } ++ ++ /** ++ * Detaches all the listeners we attached in {@link #installListeners}. ++ */ ++ void uninstallListeners() ++ { ++ list.removeFocusListener(focusListener); ++ list.getModel().removeListDataListener(listDataListener); ++ list.removeListSelectionListener(listSelectionListener); ++ list.removeMouseListener(mouseInputListener); ++ list.removeMouseMotionListener(mouseInputListener); ++ list.removePropertyChangeListener(propertyChangeListener); ++ } ++ ++ /** ++ * Installs keyboard actions for this UI in the {@link JList}. ++ */ ++ void installKeyboardActions() ++ { ++ } ++ ++ /** ++ * Uninstalls keyboard actions for this UI in the {@link JList}. ++ */ ++ void uninstallKeyboardActions() ++ { ++ } ++ ++ /** ++ * Installs the various aspects of the UI in the {@link JList}. In ++ * particular, calls {@link #installDefaults}, {@link #installListeners} ++ * and {@link #installKeyboardActions}. Also saves a reference to the ++ * provided component, cast to a {@link JList}. ++ * ++ * @param c The {@link JList} to install the UI into ++ */ ++ public void installUI(final JComponent c) ++ { ++ super.installUI(c); ++ list = (JList) c; ++ installDefaults(); ++ installListeners(); ++ installKeyboardActions(); ++ maybeUpdateLayoutState(); ++ } ++ ++ /** ++ * Uninstalls all the aspects of the UI which were installed in {@link ++ * #installUI}. When finished uninstalling, drops the saved reference to ++ * the {@link JList}. ++ * ++ * @param c Ignored; the UI is uninstalled from the {@link JList} ++ * reference saved during the call to {@link #installUI} ++ */ ++ public void uninstallUI(final JComponent c) ++ { ++ uninstallKeyboardActions(); ++ uninstallListeners(); ++ uninstallDefaults(); ++ list = null; ++ } ++ ++ /** ++ * Gets the maximum size this list can assume. ++ * ++ * @param c The component to measure the size of ++ * ++ * @return A new Dimension representing the component's maximum size ++ */ ++ public Dimension getMaximumSize(JComponent c) ++ { ++ return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE); ++ } ++ ++ /** ++ * Gets the size this list would prefer to assume. This is calculated by ++ * calling {@link #getCellBounds} over the entire list. ++ * ++ * @param c Ignored; uses the saved {@link JList} reference ++ * ++ * @return DOCUMENT ME! ++ */ ++ public Dimension getPreferredSize(JComponent c) ++ { ++ if (list.getModel().getSize() == 0) ++ return new Dimension(0, 0); ++ Rectangle bounds = getCellBounds(list, 0, list.getModel().getSize() - 1); ++ return bounds.getSize(); ++ } ++ ++ /** ++ * Paints the packground of the list using the background color ++ * of the specified component. ++ * ++ * @param g The graphics context to paint in ++ * @param c The component to paint the background of ++ */ ++ public void paintBackground(Graphics g, JComponent c) ++ { ++ Dimension size = getPreferredSize(c); ++ Color save = g.getColor(); ++ g.setColor(c.getBackground()); ++ g.fillRect(0, 0, size.width, size.height); ++ g.setColor(save); ++ } ++ ++ /** ++ * Paints a single cell in the list. ++ * ++ * @param g The graphics context to paint in ++ * @param row The row number to paint ++ * @param bounds The bounds of the cell to paint, assuming a coordinate ++ * system beginning at (0,0) in the upper left corner of the ++ * list ++ * @param rend A cell renderer to paint with ++ * @param data The data to provide to the cell renderer ++ * @param sel A selection model to provide to the cell renderer ++ * @param lead The lead selection index of the list ++ */ ++ void paintCell(Graphics g, int row, Rectangle bounds, ListCellRenderer rend, ++ ListModel data, ListSelectionModel sel, int lead) ++ { ++ boolean is_sel = list.isSelectedIndex(row); ++ boolean has_focus = false; ++ Component comp = rend.getListCellRendererComponent(list, ++ data.getElementAt(row), ++ 0, is_sel, has_focus); ++ g.translate(bounds.x, bounds.y); ++ comp.setBounds(new Rectangle(0, 0, bounds.width, bounds.height)); ++ comp.paint(g); ++ g.translate(-bounds.x, -bounds.y); ++ } ++ ++ /** ++ * Paints the list by calling {@link #paintBackground} and then repeatedly ++ * calling {@link #paintCell} for each visible cell in the list. ++ * ++ * @param g The graphics context to paint with ++ * @param c Ignored; uses the saved {@link JList} reference ++ */ ++ public void paint(Graphics g, JComponent c) ++ { ++ int nrows = list.getModel().getSize(); ++ if (nrows == 0) ++ return; ++ ++ maybeUpdateLayoutState(); ++ ListCellRenderer render = list.getCellRenderer(); ++ ListModel model = list.getModel(); ++ ListSelectionModel sel = list.getSelectionModel(); ++ int lead = sel.getLeadSelectionIndex(); ++ Rectangle clip = g.getClipBounds(); ++ paintBackground(g, list); ++ ++ for (int row = 0; row < nrows; ++row) ++ { ++ Rectangle bounds = getCellBounds(list, row, row); ++ if (bounds.intersects(clip)) ++ paintCell(g, row, bounds, render, model, sel, lead); ++ } ++ } ++ ++ public int locationToIndex(JList list, Point location) ++ { ++ return convertYToRow(location.y); ++ } ++ ++ public Point indexToLocation(JList list, int index) + { +- throw new Error ("Not implemented"); ++ return new Point(0, convertRowToY(index)); + } + } +Index: javax/swing/plaf/basic/BasicLookAndFeel.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/plaf/basic/BasicLookAndFeel.java,v +retrieving revision 1.3 +diff -u -r1.3 BasicLookAndFeel.java +--- javax/swing/plaf/basic/BasicLookAndFeel.java 13 Jul 2003 15:29:11 -0000 1.3 ++++ javax/swing/plaf/basic/BasicLookAndFeel.java 6 Sep 2004 16:36:05 -0000 +@@ -1,5 +1,5 @@ + /* BasicLookAndFeel.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -41,6 +41,7 @@ + import java.awt.Color; + import java.awt.Dimension; + import java.awt.Font; ++import java.awt.event.InputEvent; + import java.awt.event.KeyEvent; + import java.io.Serializable; + import java.util.Enumeration; +@@ -110,6 +111,7 @@ + "DesktopIconUI", "javax.swing.plaf.basic.BasicDesktopIconUI", + "DesktopPaneUI", "javax.swing.plaf.basic.BasicDesktopPaneUI", + "EditorPaneUI", "javax.swing.plaf.basic.BasicEditorPaneUI", ++ "FormattedTextFieldUI", "javax.swing.plaf.basic.BasicFormattedTextFieldUI", + "InternalFrameUI", "javax.swing.plaf.basic.BasicInternalFrameUI", + "LabelUI", "javax.swing.plaf.basic.BasicLabelUI", + "ListUI", "javax.swing.plaf.basic.BasicListUI", +@@ -130,6 +132,7 @@ + "SeparatorUI", "javax.swing.plaf.basic.BasicSeparatorUI", + "SliderUI", "javax.swing.plaf.basic.BasicSliderUI", + "SplitPaneUI", "javax.swing.plaf.basic.BasicSplitPaneUI", ++ "SpinnerUI", "javax.swing.plaf.basic.BasicSpinnerUI", + "StandardDialogUI", "javax.swing.plaf.basic.BasicStandardDialogUI", + "TabbedPaneUI", "javax.swing.plaf.basic.BasicTabbedPaneUI", + "TableHeaderUI", "javax.swing.plaf.basic.BasicTableHeaderUI", +@@ -205,15 +208,15 @@ + private void loadResourceBundle(UIDefaults defaults) + { + ResourceBundle bundle; +- Enumeration enum; ++ Enumeration e; + String key; + String value; + bundle = ResourceBundle.getBundle("resources/basic"); + // Process Resources +- enum = bundle.getKeys(); +- while (enum.hasMoreElements()) ++ e = bundle.getKeys(); ++ while (e.hasMoreElements()) + { +- key = (String) enum.nextElement(); ++ key = (String) e.nextElement(); + value = bundle.getString(key); + defaults.put(key, value); + } +@@ -226,30 +229,49 @@ + protected void initComponentDefaults(UIDefaults defaults) + { + Object[] uiDefaults; ++ ++ // The default Look and Feel happens to use these three purple shades ++ // extensively. ++ Color lightPurple = new Color(0xCC, 0xCC, 0xFF); ++ Color midPurple = new Color(0x99, 0x99, 0xCC); ++ Color darkPurple = new Color(0x66, 0x66, 0x99); ++ + uiDefaults = new Object[] { ++ ++ "AbstractUndoableEdit.undoText", "Undo", ++ "AbstractUndoableEdit.redoText", "Redo", ++ + "Button.background", new ColorUIResource(Color.lightGray), +- "Button.border", new BorderUIResource.CompoundBorderUIResource(null, +- null), ++ "Button.border", BorderUIResource.getEtchedBorderUIResource(), ++ "Button.darkShadow", new ColorUIResource(Color.darkGray), + "Button.focusInputMap", new UIDefaults.LazyInputMap(new Object[] { + "SPACE", "pressed", + "released SPACE", "released" + }), ++ "Button.focus", midPurple, + "Button.font", new FontUIResource("Dialog", Font.PLAIN, 12), + "Button.foreground", new ColorUIResource(Color.black), ++ "Button.highlight", new ColorUIResource(Color.white), ++ "Button.light", new ColorUIResource(Color.lightGray.brighter()), + "Button.margin", new InsetsUIResource(2, 14, 2, 14), ++ "Button.shadow", new ColorUIResource(Color.gray), + "Button.textIconGap", new Integer(4), + "Button.textShiftOffset", new Integer(0), + "CheckBox.background", new ColorUIResource(Color.lightGray), + "CheckBox.border", new BorderUIResource.CompoundBorderUIResource(null, + null), ++ "CheckBox.darkShadow", new ColorUIResource(Color.darkGray), + "CheckBox.focusInputMap", new UIDefaults.LazyInputMap(new Object[] { + "SPACE", "pressed", + "released SPACE", "released" + }), + "CheckBox.font", new FontUIResource("Dialog", Font.PLAIN, 12), + "CheckBox.foreground", new ColorUIResource(Color.black), ++ "CheckBox.highlight", new ColorUIResource(Color.white), + "CheckBox.icon", BasicIconFactory.getCheckBoxIcon(), ++ "CheckBox.light", new ColorUIResource(Color.lightGray.brighter()), + "CheckBox.margin",new InsetsUIResource(2, 2, 2, 2), ++ "CheckBox.shadow", new ColorUIResource(Color.gray), + "CheckBox.textIconGap", new Integer(4), + "CheckBox.textShiftOffset", new Integer(0), + "CheckBoxMenuItem.acceleratorFont", new FontUIResource("Dialog", +@@ -264,8 +286,8 @@ + "CheckBoxMenuItem.font", new FontUIResource("Dialog", Font.PLAIN, 12), + "CheckBoxMenuItem.foreground", new ColorUIResource(Color.black), + "CheckBoxMenuItem.margin", new InsetsUIResource(2, 2, 2, 2), +- "CheckBoxMenuItem.selectionBackground", new ColorUIResource(0, 0, 128), +- "CheckBoxMenuItem.selectionForeground", new ColorUIResource(Color.white), ++ "CheckBoxMenuItem.selectionBackground", new ColorUIResource(lightPurple), ++ "CheckBoxMenuItem.selectionForeground", new ColorUIResource(Color.black), + "ColorChooser.background", new ColorUIResource(Color.lightGray), + "ColorChooser.cancelText", "Cancel", + "ColorChooser.font", new FontUIResource("Dialog", Font.PLAIN, 12), +@@ -305,8 +327,8 @@ + "ComboBox.disabledForeground", new ColorUIResource(Color.gray), + "ComboBox.font", new FontUIResource("SansSerif", Font.PLAIN, 12), + "ComboBox.foreground", new ColorUIResource(Color.black), +- "ComboBox.selectionBackground", new ColorUIResource(0, 0, 128), +- "ComboBox.selectionForeground", new ColorUIResource(Color.white), ++ "ComboBox.selectionBackground", new ColorUIResource(lightPurple), ++ "ComboBox.selectionForeground", new ColorUIResource(Color.black), + "Desktop.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] { + "KP_LEFT", "left", + "KP_RIGHT", "right", +@@ -328,7 +350,7 @@ + "ctrl F10", "maximize", + "ctrl alt shift F6","selectPreviousFrame" + }), +- "Desktop.background", new ColorUIResource(0, 92, 92), ++ "Desktop.background", new ColorUIResource(175, 163, 236), + "DesktopIcon.border", new BorderUIResource.CompoundBorderUIResource(null, + null), + "EditorPane.background", new ColorUIResource(Color.white), +@@ -401,16 +423,16 @@ + "FocusManagerClassName", "TODO", + "FormView.resetButtonText", "Reset", + "FormView.submitButtonText", "Submit Query", +- "InternalFrame.activeTitleBackground", new ColorUIResource(0, 0, 128), +- "InternalFrame.activeTitleForeground", new ColorUIResource(Color.white), ++ "InternalFrame.activeTitleBackground", new ColorUIResource(162, 167, 241), ++ "InternalFrame.activeTitleForeground", new ColorUIResource(Color.black), + "InternalFrame.border", new BorderUIResource.CompoundBorderUIResource(null, + null), + "InternalFrame.closeIcon", BasicIconFactory.createEmptyFrameIcon(), + // XXX Don't use gif + "InternalFrame.icon", new IconUIResource(new ImageIcon("icons/JavaCup.gif")), + "InternalFrame.iconifyIcon", BasicIconFactory.createEmptyFrameIcon(), +- "InternalFrame.inactiveTitleBackground", new ColorUIResource(Color.gray), +- "InternalFrame.inactiveTitleForeground", new ColorUIResource(Color.lightGray), ++ "InternalFrame.inactiveTitleBackground", new ColorUIResource(Color.lightGray), ++ "InternalFrame.inactiveTitleForeground", new ColorUIResource(Color.black), + "InternalFrame.maximizeIcon", BasicIconFactory.createEmptyFrameIcon(), + "InternalFrame.minimizeIcon", BasicIconFactory.createEmptyFrameIcon(), + "InternalFrame.titleFont", new FontUIResource("Dialog", Font.PLAIN, 12), +@@ -423,6 +445,9 @@ + "Label.disabledForeground", new ColorUIResource(Color.white), + "Label.disabledShadow", new ColorUIResource(Color.gray), + "Label.font", new FontUIResource("Dialog", Font.PLAIN, 12), ++ "Label.foreground", new ColorUIResource(Color.black), ++ "List.background", new ColorUIResource(Color.white), ++ "List.border", new BasicBorders.MarginBorder(), + "List.focusInputMap", new UIDefaults.LazyInputMap(new Object[] { + "PAGE_UP", "scrollUp", + "ctrl \\", "clearSelection", +@@ -444,8 +469,8 @@ + "KP_DOWN", "selectNextRow" + }), + "List.foreground", new ColorUIResource(Color.black), +- "List.selectionBackground", new ColorUIResource(0, 0, 128), +- "List.selectionForeground", new ColorUIResource(Color.white), ++ "List.selectionBackground", new ColorUIResource(0xCC, 0xCC, 0xFF), ++ "List.selectionForeground", new ColorUIResource(Color.black), + "Menu.acceleratorFont", new FontUIResource("Dialog", Font.PLAIN, 12), + "Menu.acceleratorForeground", new ColorUIResource(Color.black), + "Menu.acceleratorSelectionForeground", new ColorUIResource(Color.white), +@@ -471,8 +496,8 @@ + "ENTER", "return", + "SPACE", "return" + }, +- "Menutext.selectionBackground", new ColorUIResource(0, 0, 128), +- "Menu.selectionForeground", new ColorUIResource(Color.white), ++ "Menu.selectionBackground", new ColorUIResource(lightPurple), ++ "Menu.selectionForeground", new ColorUIResource(Color.black), + "MenuBar.background", new ColorUIResource(Color.lightGray), + "MenuBar.border", new BasicBorders.MenuBarBorder(null, null), + "MenuBar.font", new FontUIResource("Dialog", Font.PLAIN, 12), +@@ -480,7 +505,7 @@ + "MenuBar.windowBindings", new Object[] { + "F10", "takeFocus" + }, +- "MenuItem.acceleratorDelimiter", "+", ++ "MenuItem.acceleratorDelimiter", "-", + "MenuItem.acceleratorFont", new FontUIResource("Dialog", Font.PLAIN, 12), + "MenuItem.acceleratorForeground", new ColorUIResource(Color.black), + "MenuItem.acceleratorSelectionForeground", new ColorUIResource(Color.white), +@@ -492,8 +517,8 @@ + "MenuItem.font", new FontUIResource("Dialog", Font.PLAIN, 12), + "MenuItem.foreground", new ColorUIResource(Color.black), + "MenuItem.margin", new InsetsUIResource(2, 2, 2, 2), +- "MenuItem.selectionBackground", new ColorUIResource(0, 0, 128), +- "MenuItem.selectionForeground", new ColorUIResource(Color.white), ++ "MenuItem.selectionBackground", new ColorUIResource(lightPurple), ++ "MenuItem.selectionForeground", new ColorUIResource(Color.black), + "OptionPane.background", new ColorUIResource(Color.lightGray), + "OptionPane.border", new BorderUIResource.EmptyBorderUIResource(0, 0, 0, 0), + "OptionPane.buttonAreaBorder", new BorderUIResource.EmptyBorderUIResource(0, 0, 0, 0), +@@ -533,31 +558,37 @@ + 0), + "notify-field-accept")}, + "PasswordField.margin", new InsetsUIResource(0, 0, 0, 0), +- "PasswordField.selectionBackground", new ColorUIResource(0, 0, 128), +- "PasswordField.selectionForeground", new ColorUIResource(Color.white), ++ "PasswordField.selectionBackground", new ColorUIResource(lightPurple), ++ "PasswordField.selectionForeground", new ColorUIResource(Color.black), + "PopupMenu.background", new ColorUIResource(Color.lightGray), + "PopupMenu.border", new BorderUIResource.BevelBorderUIResource(0), + "PopupMenu.font", new FontUIResource("Dialog", Font.PLAIN, 12), + "PopupMenu.foreground", new ColorUIResource(Color.black), + "ProgressBar.background", new ColorUIResource(Color.lightGray), +- "ProgressBar.border", new BorderUIResource.LineBorderUIResource(null), ++ "ProgressBar.border", new BorderUIResource.LineBorderUIResource(Color.darkGray), + "ProgressBar.cellLength", new Integer(1), + "ProgressBar.cellSpacing", new Integer(0), + "ProgressBar.font", new FontUIResource("Dialog", Font.PLAIN, 12), +- "ProgressBar.foreground", new ColorUIResource(0, 0, 128), +- "ProgressBar.selectionBackground", new ColorUIResource(0, 0, 128), ++ "ProgressBar.foreground", new ColorUIResource(midPurple), ++ "ProgressBar.selectionBackground", new ColorUIResource(lightPurple), + "ProgressBar.selectionForeground", new ColorUIResource(Color.lightGray), ++ "ProgressBar.repaintInterval", new Integer(250), ++ "ProgressBar.cycleTime", new Integer(6000), + "RadioButton.background", new ColorUIResource(Color.lightGray), + "RadioButton.border", new BorderUIResource.CompoundBorderUIResource(null, + null), ++ "RadioButton.darkShadow", new ColorUIResource(Color.darkGray), + "RadioButton.focusInputMap", new UIDefaults.LazyInputMap(new Object[] { + "SPACE", "pressed", + "released SPACE", "released" + }), + "RadioButton.font", new FontUIResource("Dialog", Font.PLAIN, 12), + "RadioButton.foreground", new ColorUIResource(Color.black), ++ "RadioButton.highlight", new ColorUIResource(Color.white), + "RadioButton.icon", BasicIconFactory.getRadioButtonIcon(), ++ "RadioButton.light", new ColorUIResource(Color.lightGray.brighter()), + "RadioButton.margin", new InsetsUIResource(2, 2, 2, 2), ++ "RadioButton.shadow", new ColorUIResource(Color.gray), + "RadioButton.textIconGap", new Integer(4), + "RadioButton.textShiftOffset", new Integer(0), + "RadioButtonMenuItem.acceleratorFont", new FontUIResource("Dialog", +@@ -572,8 +603,8 @@ + "RadioButtonMenuItem.font", new FontUIResource("Dialog", Font.PLAIN, 12), + "RadioButtonMenuItem.foreground", new ColorUIResource(Color.black), + "RadioButtonMenuItem.margin", new InsetsUIResource(2, 2, 2, 2), +- "RadioButtonMenuItem.selectionBackground", new ColorUIResource(0, 0, 128), +- "RadioButtonMenuItem.selectionForeground", new ColorUIResource(Color.white), ++ "RadioButtonMenuItem.selectionBackground", new ColorUIResource(lightPurple), ++ "RadioButtonMenuItem.selectionForeground", new ColorUIResource(Color.black), + "RootPane.defaultButtonWindowKeyBindings", new Object[] { + "ENTER", "press", + "released ENTER", "release", +@@ -648,6 +679,9 @@ + "Slider.foreground", new ColorUIResource(Color.lightGray), + "Slider.highlight", new ColorUIResource(Color.white), + "Slider.shadow", new ColorUIResource(Color.gray), ++ "Slider.thumbHeight", new Integer(20), ++ "Slider.thumbWidth", new Integer(10), ++ "Slider.tickHeight", new Integer(12), + "SplitPane.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] { + "F6", "toggleFocus", + "F8", "startResize", +@@ -664,7 +698,7 @@ + }), + "SplitPane.background", new ColorUIResource(Color.lightGray), + "SplitPane.border", new BasicBorders.SplitPaneBorder(null, null), +- "SplitPane.dividerSize", new Integer(7), ++ "SplitPane.dividerSize", new Integer(10), + "SplitPane.highlight", new ColorUIResource(Color.white), + "SplitPane.shadow", new ColorUIResource(Color.gray), + "TabbedPane.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] { +@@ -673,9 +707,9 @@ + "ctrl UP", "requestFocus", + "ctrl KP_UP", "requestFocus" + }), +- "TabbedPane.background", new ColorUIResource(Color.lightGray), ++ "TabbedPane.background", new ColorUIResource(Color.LIGHT_GRAY), + "TabbedPane.contentBorderInsets", new InsetsUIResource(2, 2, 3, 3), +- "TabbedPane.darkShadow", new ColorUIResource(Color.black), ++ "TabbedPane.darkShadow", new ColorUIResource(Color.darkGray), + "TabbedPane.focus", new ColorUIResource(Color.black), + "TabbedPane.focusInputMap", new UIDefaults.LazyInputMap(new Object[] { + "LEFT", "navigateLeft", +@@ -695,8 +729,10 @@ + "TabbedPane.lightHighlight", new ColorUIResource(Color.white), + "TabbedPane.selectedTabPadInsets", new InsetsUIResource(2, 2, 2, 1), + "TabbedPane.shadow", new ColorUIResource(Color.gray), +- "TabbedPane.tabAreaInsets", new InsetsUIResource(3, 2, 0, 2), +- "TabbedPane.tabInsets", new InsetsUIResource(0, 4, 1, 4), ++ "TabbedPane.tabbedPaneTabAreaInsets", new InsetsUIResource(3, 2, 1, 2), ++ "TabbedPane.tabbedPaneTabInsets", new InsetsUIResource(1, 4, 1, 4), ++ "TabbedPane.tabbedPaneContentBorderInsets", new InsetsUIResource(3, 2, 1, 2), ++ "TabbedPane.tabbedPaneTabPadInsets", new InsetsUIResource(1, 1, 1, 1), + "TabbedPane.tabRunOverlay", new Integer(2), + "TabbedPane.textIconGap", new Integer(4), + "Table.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] { +@@ -742,13 +778,13 @@ + "Table.background", new ColorUIResource(Color.white), + "Table.focusCellBackground", new ColorUIResource(Color.white), + "Table.focusCellForeground", new ColorUIResource(Color.black), +- "Table.focusCellHighlightBorder", new BorderUIResource.LineBorderUIResource(null), ++ "Table.focusCellHighlightBorder", new BorderUIResource.LineBorderUIResource(Color.white), + "Table.font", new FontUIResource("Dialog", Font.PLAIN, 12), + "Table.foreground", new ColorUIResource(Color.black), + "Table.gridColor", new ColorUIResource(Color.gray), + "Table.scrollPaneBorder", new BorderUIResource.BevelBorderUIResource(0), +- "Table.selectionBackground", new ColorUIResource(0, 0, 128), +- "Table.selectionForeground", new ColorUIResource(Color.white), ++ "Table.selectionBackground", new ColorUIResource(lightPurple), ++ "Table.selectionForeground", new ColorUIResource(Color.black), + "TableHeader.background", new ColorUIResource(Color.lightGray), + "TableHeader.cellBorder", new BorderUIResource.BevelBorderUIResource(0), + "TableHeader.font", new FontUIResource("Dialog", Font.PLAIN, 12), +@@ -775,8 +811,8 @@ + 0), "insert-tab") + }, + "TextArea.margin", new InsetsUIResource(0, 0, 0, 0), +- "TextArea.selectionBackground", new ColorUIResource(0, 0, 128), +- "TextArea.selectionForeground", new ColorUIResource(Color.white), ++ "TextArea.selectionBackground", new ColorUIResource(lightPurple), ++ "TextArea.selectionForeground", new ColorUIResource(Color.black), + "TextField.background", new ColorUIResource(Color.white), + "TextField.border", new BasicBorders.FieldBorder(null, null, null, null), + "TextField.caretBlinkRate", new Integer(500), +@@ -787,10 +823,17 @@ + "TextField.keyBindings", new JTextComponent.KeyBinding[] { + new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, + 0), +- "notify-field-accept")}, ++ "notify-field-accept"), ++ new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, ++ InputEvent.SHIFT_DOWN_MASK), ++ "selection-backward"), ++ new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, ++ InputEvent.SHIFT_DOWN_MASK), ++ "selection-forward"), ++ }, + "TextField.margin", new InsetsUIResource(0, 0, 0, 0), +- "TextField.selectionBackground", new ColorUIResource(0, 0, 128), +- "TextField.selectionForeground", new ColorUIResource(Color.white), ++ "TextField.selectionBackground", new ColorUIResource(lightPurple), ++ "TextField.selectionForeground", new ColorUIResource(Color.black), + "TextPane.background", new ColorUIResource(Color.white), + "TextPane.border", new BasicBorders.MarginBorder(), + "TextPane.caretBlinkRate", new Integer(500), +@@ -842,14 +885,14 @@ + "ToolBar.background", new ColorUIResource(Color.lightGray), + "ToolBar.border", new BorderUIResource.EtchedBorderUIResource(), + "ToolBar.dockingBackground", new ColorUIResource(Color.lightGray), +- "ToolBar.dockingForeground", new ColorUIResource(Color.red), ++ "ToolBar.dockingForeground", new ColorUIResource(11, 30, 143), + "ToolBar.floatingBackground", new ColorUIResource(Color.lightGray), +- "ToolBar.floatingForeground", new ColorUIResource(Color.darkGray), ++ "ToolBar.floatingForeground", new ColorUIResource(113, 171, 212), + "ToolBar.font", new FontUIResource("Dialog", Font.PLAIN, 12), + "ToolBar.foreground", new ColorUIResource(Color.black), +- "ToolBar.separatorSize", new DimensionUIResource(10, 10), +- "ToolTip.background", new ColorUIResource(Color.white), +- "ToolTip.border", new BorderUIResource.LineBorderUIResource(null), ++ "ToolBar.separatorSize", new DimensionUIResource(20, 20), ++ "ToolTip.background", new ColorUIResource(122, 178, 241), ++ "ToolTip.border", new BorderUIResource.LineBorderUIResource(Color.lightGray), + "ToolTip.font", new FontUIResource("SansSerif", Font.PLAIN, 12), + "ToolTip.foreground", new ColorUIResource(Color.black), + "Tree.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] { +@@ -860,7 +903,7 @@ + // XXX Don't use gif + "Tree.closedIcon", new IconUIResource(new ImageIcon("icons/TreeClosed.gif")), + "Tree.drawsFocusBorderAroundIcon", Boolean.FALSE, +- "Tree.editorBorder", new BorderUIResource.LineBorderUIResource(null), ++ "Tree.editorBorder", new BorderUIResource.LineBorderUIResource(Color.lightGray), + "Tree.focusInputMap", new UIDefaults.LazyInputMap(new Object[] { + "shift PAGE_DOWN", "scrollDownExtendSelection", + "PAGE_DOWN", "scrollDownChangeSelection", +@@ -916,9 +959,9 @@ + "Tree.rightChildIndent", new Integer(13), + "Tree.rowHeight", new Integer(16), + "Tree.scrollsOnExpand", Boolean.TRUE, +- "Tree.selectionBackground", new ColorUIResource(0, 0, 128), ++ "Tree.selectionBackground", new ColorUIResource(lightPurple), + "Tree.selectionBorderColor", new ColorUIResource(Color.black), +- "Tree.selectionForeground", new ColorUIResource(Color.white), ++ "Tree.selectionForeground", new ColorUIResource(Color.black), + "Tree.textBackground", new ColorUIResource(Color.lightGray), + "Tree.textForeground", new ColorUIResource(Color.black), + "Viewport.background", new ColorUIResource(Color.lightGray), +Index: javax/swing/plaf/basic/BasicMenuBarUI.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicMenuBarUI.java +diff -N javax/swing/plaf/basic/BasicMenuBarUI.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicMenuBarUI.java 6 Sep 2004 16:36:05 -0000 +@@ -0,0 +1,323 @@ ++/* BasicMenuBarUI.java -- ++ Copyright (C) 2002, 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.plaf.basic; ++ ++import java.awt.Dimension; ++import java.awt.GridLayout; ++import java.awt.Insets; ++import java.awt.event.ContainerEvent; ++import java.awt.event.ContainerListener; ++import java.beans.PropertyChangeEvent; ++import java.beans.PropertyChangeListener; ++import javax.swing.BoxLayout; ++import javax.swing.ButtonModel; ++import javax.swing.Icon; ++import javax.swing.JCheckBoxMenuItem; ++import javax.swing.JComponent; ++import javax.swing.JMenu; ++import javax.swing.JMenuBar; ++import javax.swing.JMenuItem; ++import javax.swing.JPopupMenu; ++import javax.swing.JRadioButtonMenuItem; ++import javax.swing.KeyStroke; ++import javax.swing.MenuElement; ++import javax.swing.MenuSelectionManager; ++import javax.swing.SwingUtilities; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; ++import javax.swing.event.ChangeEvent; ++import javax.swing.event.ChangeListener; ++import javax.swing.event.MenuDragMouseEvent; ++import javax.swing.event.MenuDragMouseListener; ++import javax.swing.event.MenuEvent; ++import javax.swing.event.MenuKeyEvent; ++import javax.swing.event.MenuKeyListener; ++import javax.swing.event.MenuListener; ++import javax.swing.event.MouseInputListener; ++import javax.swing.plaf.ComponentUI; ++import javax.swing.plaf.MenuBarUI; ++import javax.swing.plaf.MenuItemUI; ++ ++ ++/** ++ * UI Delegate for JMenuBar. ++ */ ++public class BasicMenuBarUI extends MenuBarUI ++{ ++ protected ChangeListener changeListener; ++ ++ /*ContainerListener that listens to the ContainerEvents fired from menu bar*/ ++ protected ContainerListener containerListener; ++ ++ /*Property change listeners that listener to PropertyChangeEvent from menu bar*/ ++ protected PropertyChangeListener propertyChangeListener; ++ ++ /* menu bar for which this UI delegate is for*/ ++ protected JMenuBar menuBar; ++ ++ /** ++ * Creates a new BasicMenuBarUI object. ++ */ ++ public BasicMenuBarUI() ++ { ++ changeListener = createChangeListener(); ++ containerListener = createContainerListener(); ++ propertyChangeListener = new PropertyChangeHandler(); ++ } ++ ++ /** ++ * Creates ChangeListener ++ * ++ * @return The ChangeListener ++ */ ++ protected ChangeListener createChangeListener() ++ { ++ return new ChangeHandler(); ++ } ++ ++ /** ++ * Creates ContainerListener() to listen for ContainerEvents ++ * fired by JMenuBar. ++ * ++ * @return The ContainerListener ++ */ ++ protected ContainerListener createContainerListener() ++ { ++ return new ContainerHandler(); ++ } ++ ++ /** ++ * Factory method to create a BasicMenuBarUI for the given {@link ++ * JComponent}, which should be a {@link JMenuBar}. ++ * ++ * @param b The {@link JComponent} a UI is being created for. ++ * ++ * @return A BasicMenuBarUI for the {@link JComponent}. ++ */ ++ public static ComponentUI createUI(JComponent x) ++ { ++ return new BasicMenuBarUI(); ++ } ++ ++ /** ++ * Returns maximum size for the specified menu bar ++ * ++ * @param c component for which to get maximum size ++ * ++ * @return Maximum size for the specified menu bar ++ */ ++ public Dimension getMaximumSize(JComponent c) ++ { ++ // let layout manager calculate its size ++ return null; ++ } ++ ++ /** ++ * Returns maximum allowed size of JMenuBar. ++ * ++ * @param c menuBar for which to return maximum size ++ * ++ * @return Maximum size of the give menu bar. ++ */ ++ public Dimension getMinimumSize(JComponent c) ++ { ++ // let layout manager calculate its size ++ return null; ++ } ++ ++ /** ++ * Returns preferred size of JMenuBar. ++ * ++ * @param c menuBar for which to return preferred size ++ * ++ * @return Preferred size of the give menu bar. ++ */ ++ public Dimension getPreferredSize(JComponent c) ++ { ++ // let layout manager calculate its size ++ return null; ++ } ++ ++ /** ++ * Initializes any default properties that this UI has from the defaults for ++ * the Basic look and feel. ++ */ ++ protected void installDefaults() ++ { ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ ++ menuBar.setBackground(defaults.getColor("MenuBar.background")); ++ menuBar.setBorder(defaults.getBorder("MenuBar.border")); ++ menuBar.setFont(defaults.getFont("MenuBar.font")); ++ menuBar.setForeground(defaults.getColor("MenuBar.foreground")); ++ } ++ ++ /** ++ * This method installs the keyboard actions for the JMenuBar. ++ */ ++ protected void installKeyboardActions() ++ { ++ // FIXME: implement ++ } ++ ++ /** ++ * This method installs the listeners needed for this UI to function. ++ */ ++ protected void installListeners() ++ { ++ menuBar.addContainerListener(containerListener); ++ menuBar.addPropertyChangeListener(propertyChangeListener); ++ } ++ ++ /** ++ * Installs and initializes all fields for this UI delegate. Any properties ++ * of the UI that need to be initialized and/or set to defaults will be ++ * done now. It will also install any listeners necessary. ++ * ++ * @param c The {@link JComponent} that is having this UI installed. ++ */ ++ public void installUI(JComponent c) ++ { ++ super.installUI(c); ++ menuBar = (JMenuBar) c; ++ menuBar.setLayout(new BoxLayout(menuBar, BoxLayout.X_AXIS)); ++ installDefaults(); ++ installListeners(); ++ installKeyboardActions(); ++ } ++ ++ /** ++ * This method uninstalls the defaults and nulls any objects created during ++ * install. ++ */ ++ protected void uninstallDefaults() ++ { ++ menuBar.setBackground(null); ++ menuBar.setBorder(null); ++ menuBar.setFont(null); ++ menuBar.setForeground(null); ++ } ++ ++ /** ++ * This method reverses the work done in installKeyboardActions. ++ */ ++ protected void uninstallKeyboardActions() ++ { ++ // FIXME: implement. ++ } ++ ++ /** ++ * Unregisters all the listeners that this UI delegate was using. ++ */ ++ protected void uninstallListeners() ++ { ++ menuBar.removeContainerListener(containerListener); ++ menuBar.removePropertyChangeListener(propertyChangeListener); ++ } ++ ++ /** ++ * Performs the opposite of installUI. Any properties or resources that need ++ * to be cleaned up will be done now. It will also uninstall any listeners ++ * it has. In addition, any properties of this UI will be nulled. ++ * ++ * @param c The {@link JComponent} that is having this UI uninstalled. ++ */ ++ public void uninstallUI(JComponent c) ++ { ++ uninstallDefaults(); ++ uninstallListeners(); ++ uninstallKeyboardActions(); ++ menuBar = null; ++ } ++ ++ protected class ChangeHandler implements ChangeListener ++ { ++ public void stateChanged(ChangeEvent event) ++ { ++ } ++ } ++ ++ /** ++ * This class handles ContainerEvents fired by JMenuBar. It revalidates ++ * and repaints menu bar whenever menu is added or removed from it. ++ */ ++ protected class ContainerHandler implements ContainerListener ++ { ++ /** ++ * This method is called whenever menu is added to the menu bar ++ * ++ * @param e The ContainerEvent. ++ */ ++ public void componentAdded(ContainerEvent e) ++ { ++ menuBar.revalidate(); ++ menuBar.repaint(); ++ } ++ ++ /** ++ * This method is called whenever menu is removed from the menu bar. ++ * ++ * @param e The ContainerEvent. ++ */ ++ public void componentRemoved(ContainerEvent e) ++ { ++ menuBar.revalidate(); ++ menuBar.repaint(); ++ } ++ } ++ ++ /** ++ * This class handles PropertyChangeEvents fired from the JMenuBar ++ */ ++ protected class PropertyChangeHandler implements PropertyChangeListener ++ { ++ /** ++ * This method is called whenever one of the properties of the MenuBar ++ * changes. ++ * ++ * @param e The PropertyChangeEvent. ++ */ ++ public void propertyChange(PropertyChangeEvent e) ++ { ++ if (e.getPropertyName().equals(JMenuBar.BORDER_PAINTED_CHANGED_PROPERTY)) ++ menuBar.repaint(); ++ if (e.getPropertyName().equals(JMenuBar.MARGIN_CHANGED_PROPERTY)) ++ menuBar.repaint(); ++ } ++ } ++} +Index: javax/swing/plaf/basic/BasicMenuItemUI.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicMenuItemUI.java +diff -N javax/swing/plaf/basic/BasicMenuItemUI.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicMenuItemUI.java 6 Sep 2004 16:36:05 -0000 +@@ -0,0 +1,1009 @@ ++/* BasicMenuItemUI.java -- ++ Copyright (C) 2002, 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.plaf.basic; ++ ++import java.awt.Color; ++import java.awt.Component; ++import java.awt.Dimension; ++import java.awt.Font; ++import java.awt.FontMetrics; ++import java.awt.Graphics; ++import java.awt.Insets; ++import java.awt.Rectangle; ++import java.awt.Stroke; ++import java.awt.event.InputEvent; ++import java.awt.event.KeyEvent; ++import java.awt.event.MouseEvent; ++import java.beans.PropertyChangeEvent; ++import java.beans.PropertyChangeListener; ++import java.util.ArrayList; ++import java.util.Vector; ++import javax.swing.AbstractButton; ++import javax.swing.ButtonModel; ++import javax.swing.Icon; ++import javax.swing.JCheckBoxMenuItem; ++import javax.swing.JComponent; ++import javax.swing.JMenu; ++import javax.swing.JMenuItem; ++import javax.swing.JPopupMenu; ++import javax.swing.JRadioButtonMenuItem; ++import javax.swing.KeyStroke; ++import javax.swing.MenuElement; ++import javax.swing.MenuSelectionManager; ++import javax.swing.SwingUtilities; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; ++import javax.swing.event.MenuDragMouseEvent; ++import javax.swing.event.MenuDragMouseListener; ++import javax.swing.event.MenuKeyEvent; ++import javax.swing.event.MenuKeyListener; ++import javax.swing.event.MouseInputListener; ++import javax.swing.plaf.ComponentUI; ++import javax.swing.plaf.MenuItemUI; ++ ++ ++/** ++ * UI Delegate for JMenuItem. ++ */ ++public class BasicMenuItemUI extends MenuItemUI ++{ ++ /** ++ * Font to be used when displaying menu item's accelerator. ++ */ ++ protected Font acceleratorFont; ++ ++ /** ++ * Color to be used when displaying menu item's accelerator. ++ */ ++ protected Color acceleratorForeground; ++ ++ /** ++ * Color to be used when displaying menu item's accelerator when menu item is ++ * selected. ++ */ ++ protected Color acceleratorSelectionForeground; ++ ++ /** ++ * Icon that is displayed after the text to indicated that this menu contains ++ * submenu. ++ */ ++ protected Icon arrowIcon; ++ ++ /** ++ * Icon that is displayed before the text. This icon is only used in ++ * JCheckBoxMenuItem or JRadioBoxMenuItem. ++ */ ++ protected Icon checkIcon; ++ ++ /** ++ * Number of spaces between icon and text. ++ */ ++ protected int defaultTextIconGap = 4; ++ ++ /** ++ * Color of the text when menu item is disabled ++ */ ++ protected Color disabledForeground; ++ ++ /** ++ * The menu Drag mouse listener listening to the menu item. ++ */ ++ protected MenuDragMouseListener menuDragMouseListener; ++ ++ /** ++ * The menu item itself ++ */ ++ protected JMenuItem menuItem; ++ ++ /** ++ * Menu Key listener listening to the menu item. ++ */ ++ protected MenuKeyListener menuKeyListener; ++ ++ /** ++ * mouse input listener listening to menu item. ++ */ ++ protected MouseInputListener mouseInputListener; ++ ++ /** ++ * Indicates if border should be painted ++ */ ++ protected boolean oldBorderPainted; ++ ++ /** ++ * Color of text that is used when menu item is selected ++ */ ++ protected Color selectionBackground; ++ ++ /** ++ * Color of the text that is used when menu item is selected. ++ */ ++ protected Color selectionForeground; ++ ++ /** ++ * String that separates description of the modifiers and the key ++ */ ++ private String acceleratorDelimiter; ++ ++ /** ++ * PropertyChangeListener to listen for property changes in the menu item ++ */ ++ private PropertyChangeListener propertyChangeListener; ++ ++ /** ++ * Number of spaces between accelerator and menu item's label. ++ */ ++ private int defaultAcceleratorLabelGap = 4; ++ ++ /** ++ * Creates a new BasicMenuItemUI object. ++ */ ++ public BasicMenuItemUI() ++ { ++ mouseInputListener = createMouseInputListener(menuItem); ++ menuDragMouseListener = createMenuDragMouseListener(menuItem); ++ menuKeyListener = createMenuKeyListener(menuItem); ++ propertyChangeListener = new PropertyChangeHandler(); ++ } ++ ++ /** ++ * Create MenuDragMouseListener to listen for mouse dragged events. ++ * ++ * @param c menu item to listen to ++ * ++ * @return The MenuDragMouseListener ++ */ ++ protected MenuDragMouseListener createMenuDragMouseListener(JComponent c) ++ { ++ return new MenuDragMouseHandler(); ++ } ++ ++ /** ++ * Creates MenuKeyListener to listen to key events occuring when menu item ++ * is visible on the screen. ++ * ++ * @param c menu item to listen to ++ * ++ * @return The MenuKeyListener ++ */ ++ protected MenuKeyListener createMenuKeyListener(JComponent c) ++ { ++ return new MenuKeyHandler(); ++ } ++ ++ /** ++ * Handles mouse input events occuring for this menu item ++ * ++ * @param c menu item to listen to ++ * ++ * @return The MouseInputListener ++ */ ++ protected MouseInputListener createMouseInputListener(JComponent c) ++ { ++ return new MouseInputHandler(); ++ } ++ ++ /** ++ * Factory method to create a BasicMenuItemUI for the given {@link ++ * JComponent}, which should be a {@link JMenuItem}. ++ * ++ * @param c The {@link JComponent} a UI is being created for. ++ * ++ * @return A BasicMenuItemUI for the {@link JComponent}. ++ */ ++ public static ComponentUI createUI(JComponent c) ++ { ++ return new BasicMenuItemUI(); ++ } ++ ++ /** ++ * Programatically clicks menu item. ++ * ++ * @param msm MenuSelectionManager for the menu hierarchy ++ */ ++ protected void doClick(MenuSelectionManager msm) ++ { ++ menuItem.doClick(); ++ msm.clearSelectedPath(); ++ } ++ ++ /** ++ * Returns maximum size for the specified menu item ++ * ++ * @param c component for which to get maximum size ++ * ++ * @return Maximum size for the specified menu item. ++ */ ++ public Dimension getMaximumSize(JComponent c) ++ { ++ return null; ++ } ++ ++ /** ++ * Returns minimum size for the specified menu item ++ * ++ * @param c component for which to get minimum size ++ * ++ * @return Minimum size for the specified menu item. ++ */ ++ public Dimension getMinimumSize(JComponent c) ++ { ++ return null; ++ } ++ ++ /** ++ * Returns path to this menu item. ++ * ++ * @return $MenuElement[]$ Returns array of menu elements ++ * that constitute a path to this menu item. ++ */ ++ public MenuElement[] getPath() ++ { ++ ArrayList path = new ArrayList(); ++ ++ // Path to menu should also include its popup menu. ++ if (menuItem instanceof JMenu) ++ path.add(((JMenu) menuItem).getPopupMenu()); ++ ++ Component c = menuItem; ++ while (c instanceof MenuElement) ++ { ++ path.add(0, (MenuElement) c); ++ ++ if (c instanceof JPopupMenu) ++ c = ((JPopupMenu) c).getInvoker(); ++ else ++ c = c.getParent(); ++ } ++ ++ MenuElement[] pathArray = new MenuElement[path.size()]; ++ path.toArray(pathArray); ++ return pathArray; ++ } ++ ++ /** ++ * Returns preferred size for the given menu item. ++ * ++ * @param c menu item for which to get preferred size ++ * @param checkIcon chech icon displayed in the given menu item ++ * @param arrowIcon arrow icon displayed in the given menu item ++ * @param defaultTextIconGap space between icon and text in the given menuItem ++ * ++ * @return $Dimension$ preferred size for the given menu item ++ */ ++ protected Dimension getPreferredMenuItemSize(JComponent c, Icon checkIcon, ++ Icon arrowIcon, ++ int defaultTextIconGap) ++ { ++ JMenuItem m = (JMenuItem) c; ++ Dimension d = BasicGraphicsUtils.getPreferredButtonSize(m, ++ defaultTextIconGap); ++ ++ // if menu item has accelerator then take accelerator's size into account ++ // when calculating preferred size. ++ KeyStroke accelerator = m.getAccelerator(); ++ Rectangle rect; ++ ++ if (accelerator != null) ++ { ++ rect = getAcceleratorRect(accelerator, ++ m.getToolkit().getFontMetrics(acceleratorFont)); ++ ++ // add width of accelerator's text ++ d.width = d.width + rect.width + defaultAcceleratorLabelGap; ++ ++ // adjust the heigth of the preferred size if necessary ++ if (d.height < rect.height) ++ d.height = rect.height; ++ } ++ ++ if (checkIcon != null) ++ { ++ d.width = d.width + checkIcon.getIconWidth() + defaultTextIconGap; ++ ++ if (checkIcon.getIconHeight() > d.height) ++ d.height = checkIcon.getIconHeight(); ++ } ++ ++ if (arrowIcon != null && (c instanceof JMenu)) ++ { ++ d.width = d.width + arrowIcon.getIconWidth() + defaultTextIconGap; ++ ++ if (arrowIcon.getIconHeight() > d.height) ++ d.height = arrowIcon.getIconHeight(); ++ } ++ ++ return d; ++ } ++ ++ /** ++ * Returns preferred size of the given component ++ * ++ * @param c component for which to return preferred size ++ * ++ * @return $Dimension$ preferred size for the given component ++ */ ++ public Dimension getPreferredSize(JComponent c) ++ { ++ return getPreferredMenuItemSize(c, checkIcon, arrowIcon, defaultTextIconGap); ++ } ++ ++ protected String getPropertyPrefix() ++ { ++ return null; ++ } ++ ++ /** ++ * This method installs the components for this {@link JMenuItem}. ++ * ++ * @param menuItem The {@link JMenuItem} to install components for. ++ */ ++ protected void installComponents(JMenuItem menuItem) ++ { ++ // FIXME: Need to implement ++ } ++ ++ /** ++ * This method installs the defaults that are defined in the Basic look and ++ * feel for this {@link JMenuItem}. ++ */ ++ protected void installDefaults() ++ { ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ ++ menuItem.setBackground(defaults.getColor("MenuItem.background")); ++ menuItem.setBorder(defaults.getBorder("MenuItem.border")); ++ menuItem.setFont(defaults.getFont("MenuItem.font")); ++ menuItem.setForeground(defaults.getColor("MenuItem.foreground")); ++ menuItem.setMargin(defaults.getInsets("MenuItem.margin")); ++ menuItem.setOpaque(true); ++ acceleratorFont = defaults.getFont("MenuItem.acceleratorFont"); ++ acceleratorForeground = defaults.getColor("MenuItem.acceleratorForeground"); ++ acceleratorSelectionForeground = defaults.getColor("MenuItem.acceleratorSelectionForeground"); ++ selectionBackground = defaults.getColor("MenuItem.selectionBackground"); ++ selectionForeground = defaults.getColor("MenuItem.selectionForeground"); ++ acceleratorDelimiter = defaults.getString("MenuItem.acceleratorDelimiter"); ++ } ++ ++ /** ++ * This method installs the keyboard actions for this {@link JMenuItem}. ++ */ ++ protected void installKeyboardActions() ++ { ++ // FIXME: Need to implement ++ } ++ ++ /** ++ * This method installs the listeners for the {@link JMenuItem}. ++ */ ++ protected void installListeners() ++ { ++ menuItem.addMouseListener(mouseInputListener); ++ menuItem.addMouseMotionListener(mouseInputListener); ++ menuItem.addMenuDragMouseListener(menuDragMouseListener); ++ menuItem.addMenuKeyListener(menuKeyListener); ++ menuItem.addPropertyChangeListener(propertyChangeListener); ++ } ++ ++ /** ++ * Installs and initializes all fields for this UI delegate. Any properties ++ * of the UI that need to be initialized and/or set to defaults will be ++ * done now. It will also install any listeners necessary. ++ * ++ * @param c The {@link JComponent} that is having this UI installed. ++ */ ++ public void installUI(JComponent c) ++ { ++ super.installUI(c); ++ menuItem = (JMenuItem) c; ++ installDefaults(); ++ installComponents(menuItem); ++ installListeners(); ++ } ++ ++ /** ++ * Paints given menu item using specified graphics context ++ * ++ * @param g The graphics context used to paint this menu item ++ * @param c Menu Item to paint ++ */ ++ public void paint(Graphics g, JComponent c) ++ { ++ paintMenuItem(g, c, checkIcon, arrowIcon, c.getBackground(), ++ c.getForeground(), defaultTextIconGap); ++ } ++ ++ /** ++ * Paints background of the menu item ++ * ++ * @param g The graphics context used to paint this menu item ++ * @param menuItem menu item to paint ++ * @param bgColor Background color to use when painting menu item ++ */ ++ protected void paintBackground(Graphics g, JMenuItem menuItem, Color bgColor) ++ { ++ Dimension size = getPreferredSize(menuItem); ++ Color foreground = g.getColor(); ++ g.setColor(bgColor); ++ g.drawRect(0, 0, size.width, size.height); ++ g.setColor(foreground); ++ } ++ ++ /** ++ * Paints specified menu item ++ * ++ * @param g The graphics context used to paint this menu item ++ * @param c menu item to paint ++ * @param checkIcon check icon to use when painting menu item ++ * @param arrowIcon arrow icon to use when painting menu item ++ * @param background Background color of the menu item ++ * @param foreground Foreground color of the menu item ++ * @param defaultTextIconGap space to use between icon and ++ * text when painting menu item ++ */ ++ protected void paintMenuItem(Graphics g, JComponent c, Icon checkIcon, ++ Icon arrowIcon, Color background, ++ Color foreground, int defaultTextIconGap) ++ { ++ JMenuItem m = (JMenuItem) c; ++ Rectangle tr = new Rectangle(); // text rectangle ++ Rectangle ir = new Rectangle(); // icon rectangle ++ Rectangle vr = new Rectangle(); // view rectangle ++ Rectangle br = new Rectangle(); // border rectangle ++ Rectangle ar = new Rectangle(); // accelerator rectangle ++ Rectangle cr = new Rectangle(); // checkIcon rectangle ++ ++ int vertAlign = m.getVerticalAlignment(); ++ int horAlign = m.getHorizontalAlignment(); ++ int vertTextPos = m.getVerticalTextPosition(); ++ int horTextPos = m.getHorizontalTextPosition(); ++ ++ Font f = m.getFont(); ++ g.setFont(f); ++ FontMetrics fm = g.getFontMetrics(f); ++ SwingUtilities.calculateInnerArea(m, br); ++ SwingUtilities.calculateInsetArea(br, m.getInsets(), vr); ++ paintBackground(g, m, m.getBackground()); ++ ++ /* MenuItems insets are equal to menuItems margin, space between text and ++ menuItems border. We need to paint insets region as well. */ ++ Insets insets = m.getInsets(); ++ br.x -= insets.left; ++ br.y -= insets.top; ++ br.width += insets.right + insets.left; ++ br.height += insets.top + insets.bottom; ++ ++ /* Menu item is considered to be highlighted when it is selected. ++ It is considered to be selected if menu item is inside some menu ++ and is armed or if it is both armed and pressed */ ++ if (m.getModel().isArmed() ++ && (m.getParent() instanceof MenuElement || m.getModel().isPressed())) ++ { ++ if (m.isContentAreaFilled()) ++ { ++ g.setColor(selectionBackground); ++ g.fillRect(br.x, br.y, br.width, br.height); ++ } ++ } ++ else ++ { ++ if (m.isContentAreaFilled()) ++ { ++ g.setColor(m.getBackground()); ++ g.fillRect(br.x, br.y, br.width, br.height); ++ } ++ } ++ ++ // If this menu item is a JCheckBoxMenuItem then paint check icon ++ if (checkIcon != null) ++ { ++ SwingUtilities.layoutCompoundLabel(m, fm, null, checkIcon, vertAlign, ++ horAlign, vertTextPos, horTextPos, ++ vr, cr, tr, defaultTextIconGap); ++ checkIcon.paintIcon(m, g, cr.x, cr.y); ++ ++ // We need to calculate position of the menu text and position of ++ // user menu icon if there exists one relative to the check icon. ++ // So we need to adjust view rectangle s.t. its starting point is at ++ // checkIcon.width + defaultTextIconGap. ++ vr.x = cr.x + cr.width + defaultTextIconGap; ++ } ++ ++ // if this is a submenu, then paint arrow icon to indicate it. ++ if (arrowIcon != null && (c instanceof JMenu)) ++ { ++ if (! ((JMenu) c).isTopLevelMenu()) ++ { ++ int width = arrowIcon.getIconWidth(); ++ int height = arrowIcon.getIconHeight(); ++ ++ arrowIcon.paintIcon(m, g, vr.width - width + defaultTextIconGap, ++ vr.y + 2); ++ } ++ } ++ ++ // paint icon ++ // FIXME: should paint different icon at different button state's. ++ // i.e disabled icon when button is disabled.. etc. ++ Icon i = m.getIcon(); ++ if (i != null) ++ { ++ i.paintIcon(c, g, vr.x, vr.y); ++ ++ // Adjust view rectangle, s.t text would be drawn after menu item's icon. ++ vr.x += i.getIconWidth() + defaultTextIconGap; ++ } ++ ++ // paint text and user menu icon if it exists ++ SwingUtilities.layoutCompoundLabel(c, fm, m.getText(), m.getIcon(), ++ vertAlign, horAlign, vertTextPos, ++ horTextPos, vr, ir, tr, ++ defaultTextIconGap); ++ ++ paintText(g, m, tr, m.getText()); ++ ++ // paint accelerator ++ String acceleratorText = ""; ++ ++ if (m.getAccelerator() != null) ++ { ++ acceleratorText = getAcceleratorText(m.getAccelerator()); ++ fm = g.getFontMetrics(acceleratorFont); ++ ar.width = fm.stringWidth(acceleratorText); ++ ar.x = br.width - ar.width; ++ vr.x = br.width - ar.width; ++ ++ SwingUtilities.layoutCompoundLabel(m, fm, acceleratorText, null, ++ vertAlign, horAlign, vertTextPos, ++ horTextPos, vr, ir, ar, ++ defaultTextIconGap); ++ ++ paintAccelerator(g, m, ar, acceleratorText); ++ } ++ } ++ ++ /** ++ * Paints label for the given menu item ++ * ++ * @param g The graphics context used to paint this menu item ++ * @param menuItem menu item for which to draw its label ++ * @param textRect rectangle specifiying position of the text relative to ++ * the given menu item ++ * @param text label of the menu item ++ */ ++ protected void paintText(Graphics g, JMenuItem menuItem, Rectangle textRect, ++ String text) ++ { ++ Font f = menuItem.getFont(); ++ g.setFont(f); ++ FontMetrics fm = g.getFontMetrics(f); ++ ++ if (text != null && ! text.equals("")) ++ { ++ if (menuItem.isEnabled()) ++ g.setColor(menuItem.getForeground()); ++ else ++ // FIXME: should fix this to use 'disabledForeground', but its ++ // default value in BasicLookAndFeel is null. ++ g.setColor(Color.gray); ++ ++ int mnemonicIndex = menuItem.getDisplayedMnemonicIndex(); ++ ++ if (mnemonicIndex != -1) ++ BasicGraphicsUtils.drawStringUnderlineCharAt(g, text, mnemonicIndex, ++ textRect.x, ++ textRect.y ++ + fm.getAscent()); ++ else ++ BasicGraphicsUtils.drawString(g, text, 0, textRect.x, ++ textRect.y + fm.getAscent()); ++ } ++ } ++ ++ /** ++ * This method uninstalls the components for this {@link JMenuItem}. ++ * ++ * @param menuItem The {@link JMenuItem} to uninstall components for. ++ */ ++ protected void uninstallComponents(JMenuItem menuItem) ++ { ++ // FIXME: need to implement ++ } ++ ++ /** ++ * This method uninstalls the defaults and sets any objects created during ++ * install to null ++ */ ++ protected void uninstallDefaults() ++ { ++ menuItem.setForeground(null); ++ menuItem.setBackground(null); ++ menuItem.setBorder(null); ++ menuItem.setMargin(null); ++ menuItem.setBackground(null); ++ menuItem.setBorder(null); ++ menuItem.setFont(null); ++ menuItem.setForeground(null); ++ menuItem.setMargin(null); ++ acceleratorFont = null; ++ acceleratorForeground = null; ++ acceleratorSelectionForeground = null; ++ arrowIcon = null; ++ selectionBackground = null; ++ selectionForeground = null; ++ acceleratorDelimiter = null; ++ } ++ ++ /** ++ * Uninstalls any keyboard actions. ++ */ ++ protected void uninstallKeyboardActions() ++ { ++ // FIXME: need to implement ++ } ++ ++ /** ++ * Unregisters all the listeners that this UI delegate was using. ++ */ ++ protected void uninstallListeners() ++ { ++ menuItem.removeMouseListener(mouseInputListener); ++ menuItem.removeMenuDragMouseListener(menuDragMouseListener); ++ menuItem.removeMenuKeyListener(menuKeyListener); ++ menuItem.removePropertyChangeListener(propertyChangeListener); ++ } ++ ++ /** ++ * Performs the opposite of installUI. Any properties or resources that need ++ * to be cleaned up will be done now. It will also uninstall any listeners ++ * it has. In addition, any properties of this UI will be nulled. ++ * ++ * @param c The {@link JComponent} that is having this UI uninstalled. ++ */ ++ public void uninstallUI(JComponent c) ++ { ++ uninstallListeners(); ++ uninstallDefaults(); ++ uninstallComponents(menuItem); ++ menuItem = null; ++ } ++ ++ /** ++ * This method calls paint. ++ * ++ * @param g The graphics context used to paint this menu item ++ * @param c The menu item to paint ++ */ ++ public void update(Graphics g, JComponent c) ++ { ++ paint(g, c); ++ } ++ ++ /** ++ * Return text representation of the specified accelerator ++ * ++ * @param accelerator Accelerator for which to return string representation ++ * ++ * @return $String$ Text representation of the given accelerator ++ */ ++ private String getAcceleratorText(KeyStroke accelerator) ++ { ++ // convert keystroke into string format ++ String modifiersText = ""; ++ int modifiers = accelerator.getModifiers(); ++ char keyChar = accelerator.getKeyChar(); ++ int keyCode = accelerator.getKeyCode(); ++ ++ if (modifiers != 0) ++ modifiersText = KeyEvent.getKeyModifiersText(modifiers) ++ + acceleratorDelimiter; ++ ++ if (keyCode == KeyEvent.VK_UNDEFINED) ++ return modifiersText + keyChar; ++ else ++ return modifiersText + KeyEvent.getKeyText(keyCode); ++ } ++ ++ /** ++ * Calculates and return rectange in which accelerator should be displayed ++ * ++ * @param accelerator accelerator for which to return the display rectangle ++ * @param fm The font metrics used to measure the text ++ * ++ * @return $Rectangle$ reactangle which will be used to display accelerator ++ */ ++ private Rectangle getAcceleratorRect(KeyStroke accelerator, FontMetrics fm) ++ { ++ int width = fm.stringWidth(getAcceleratorText(accelerator)); ++ int height = fm.getHeight(); ++ return new Rectangle(0, 0, width, height); ++ } ++ ++ /** ++ * Paints accelerator inside menu item ++ * ++ * @param g The graphics context used to paint the border ++ * @param menuItem Menu item for which to draw accelerator ++ * @param acceleratorRect rectangle representing position ++ * of the accelerator relative to the menu item ++ * @param acceleratorText accelerator's text ++ */ ++ private void paintAccelerator(Graphics g, JMenuItem menuItem, ++ Rectangle acceleratorRect, ++ String acceleratorText) ++ { ++ g.setFont(acceleratorFont); ++ FontMetrics fm = g.getFontMetrics(acceleratorFont); ++ ++ if (menuItem.isEnabled()) ++ g.setColor(acceleratorForeground); ++ else ++ // FIXME: should fix this to use 'disabledForeground', but its ++ // default value in BasicLookAndFeel is null. ++ g.setColor(Color.gray); ++ ++ BasicGraphicsUtils.drawString(g, acceleratorText, 0, acceleratorRect.x, ++ acceleratorRect.y + fm.getAscent()); ++ } ++ ++ /** ++ * This class handles mouse events occuring inside the menu item. ++ * Most of the events are forwarded for processing to MenuSelectionManager ++ * of the current menu hierarchy. ++ * ++ */ ++ protected class MouseInputHandler implements MouseInputListener ++ { ++ /** ++ * Creates a new MouseInputHandler object. ++ */ ++ protected MouseInputHandler() ++ { ++ } ++ ++ /** ++ * This method is called when mouse is clicked on the menu item. ++ * It forwards this event to MenuSelectionManager. ++ * ++ * @param e A {@link MouseEvent}. ++ */ ++ public void mouseClicked(MouseEvent e) ++ { ++ MenuSelectionManager manager = MenuSelectionManager.defaultManager(); ++ manager.processMouseEvent(e); ++ } ++ ++ /** ++ * This method is called when mouse is dragged inside the menu item. ++ * It forwards this event to MenuSelectionManager. ++ * ++ * @param e A {@link MouseEvent}. ++ */ ++ public void mouseDragged(MouseEvent e) ++ { ++ MenuSelectionManager manager = MenuSelectionManager.defaultManager(); ++ manager.processMouseEvent(e); ++ } ++ ++ /** ++ * This method is called when mouse enters menu item. ++ * When this happens menu item is considered to be selected and selection path ++ * in MenuSelectionManager is set. This event is also forwarded to MenuSelection ++ * Manager for further processing. ++ * ++ * @param e A {@link MouseEvent}. ++ */ ++ public void mouseEntered(MouseEvent e) ++ { ++ Component source = (Component) e.getSource(); ++ if (source.getParent() instanceof MenuElement) ++ { ++ MenuSelectionManager manager = MenuSelectionManager.defaultManager(); ++ manager.setSelectedPath(getPath()); ++ manager.processMouseEvent(e); ++ } ++ } ++ ++ /** ++ * This method is called when mouse exits menu item. The event is ++ * forwarded to MenuSelectionManager for processing. ++ * ++ * @param e A {@link MouseEvent}. ++ */ ++ public void mouseExited(MouseEvent e) ++ { ++ MenuSelectionManager manager = MenuSelectionManager.defaultManager(); ++ manager.processMouseEvent(e); ++ } ++ ++ /** ++ * This method is called when mouse is inside the menu item. ++ * This event is forwarder to MenuSelectionManager for further processing. ++ * ++ * @param e A {@link MouseEvent}. ++ */ ++ public void mouseMoved(MouseEvent e) ++ { ++ MenuSelectionManager manager = MenuSelectionManager.defaultManager(); ++ manager.processMouseEvent(e); ++ } ++ ++ /** ++ * This method is called when mouse is pressed. This event is forwarded to ++ * MenuSelectionManager for further processing. ++ * ++ * @param e A {@link MouseEvent}. ++ */ ++ public void mousePressed(MouseEvent e) ++ { ++ MenuSelectionManager manager = MenuSelectionManager.defaultManager(); ++ manager.processMouseEvent(e); ++ } ++ ++ /** ++ * This method is called when mouse is released. If the mouse is released ++ * inside this menuItem, then this menu item is considered to be chosen and ++ * the menu hierarchy should be closed. ++ * ++ * @param e A {@link MouseEvent}. ++ */ ++ public void mouseReleased(MouseEvent e) ++ { ++ Rectangle size = menuItem.getBounds(); ++ MenuSelectionManager manager = MenuSelectionManager.defaultManager(); ++ if (e.getX() > 0 && e.getX() < size.width && e.getY() > 0 ++ && e.getY() < size.height) ++ { ++ manager.clearSelectedPath(); ++ menuItem.doClick(); ++ } ++ ++ else ++ manager.processMouseEvent(e); ++ } ++ } ++ ++ /** ++ * This class handles mouse dragged events. ++ */ ++ protected class MenuDragMouseHandler implements MenuDragMouseListener ++ { ++ /** ++ * Tbis method is invoked when mouse is dragged over the menu item. ++ * ++ * @param e The MenuDragMouseEvent ++ */ ++ public void menuDragMouseDragged(MenuDragMouseEvent e) ++ { ++ MenuSelectionManager manager = MenuSelectionManager.defaultManager(); ++ manager.setSelectedPath(e.getPath()); ++ } ++ ++ /** ++ * Tbis method is invoked when mouse enters the menu item while it is ++ * being dragged. ++ * ++ * @param e The MenuDragMouseEvent ++ */ ++ public void menuDragMouseEntered(MenuDragMouseEvent e) ++ { ++ MenuSelectionManager manager = MenuSelectionManager.defaultManager(); ++ manager.setSelectedPath(e.getPath()); ++ } ++ ++ /** ++ * Tbis method is invoked when mouse exits the menu item while ++ * it is being dragged ++ * ++ * @param e The MenuDragMouseEvent ++ */ ++ public void menuDragMouseExited(MenuDragMouseEvent e) ++ { ++ } ++ ++ /** ++ * Tbis method is invoked when mouse was dragged and released ++ * inside the menu item. ++ * ++ * @param e The MenuDragMouseEvent ++ */ ++ public void menuDragMouseReleased(MenuDragMouseEvent e) ++ { ++ MenuElement[] path = e.getPath(); ++ ++ if (path[path.length - 1] instanceof JMenuItem) ++ ((JMenuItem) path[path.length - 1]).doClick(); ++ ++ MenuSelectionManager manager = MenuSelectionManager.defaultManager(); ++ manager.clearSelectedPath(); ++ } ++ } ++ ++ /** ++ * This class handles key events occuring when menu item is visible on the ++ * screen. ++ */ ++ protected class MenuKeyHandler implements MenuKeyListener ++ { ++ /** ++ * This method is invoked when key has been pressed ++ * ++ * @param e A {@link MenuKeyEvent}. ++ */ ++ public void menuKeyPressed(MenuKeyEvent e) ++ { ++ } ++ ++ /** ++ * This method is invoked when key has been pressed ++ * ++ * @param e A {@link MenuKeyEvent}. ++ */ ++ public void menuKeyReleased(MenuKeyEvent e) ++ { ++ } ++ ++ /** ++ * This method is invoked when key has been typed ++ * It handles the mnemonic key for the menu item. ++ * ++ * @param e A {@link MenuKeyEvent}. ++ */ ++ public void menuKeyTyped(MenuKeyEvent e) ++ { ++ } ++ } ++ ++ /** ++ * Helper class that listens for changes to the properties of the {@link ++ * JMenuItem}. ++ */ ++ protected class PropertyChangeHandler implements PropertyChangeListener ++ { ++ /** ++ * This method is called when one of the menu item's properties change. ++ * ++ * @param evt A {@link PropertyChangeEvent}. ++ */ ++ public void propertyChange(PropertyChangeEvent evt) ++ { ++ menuItem.revalidate(); ++ menuItem.repaint(); ++ } ++ } ++} +Index: javax/swing/plaf/basic/BasicMenuUI.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicMenuUI.java +diff -N javax/swing/plaf/basic/BasicMenuUI.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicMenuUI.java 6 Sep 2004 16:36:05 -0000 +@@ -0,0 +1,528 @@ ++/* BasicMenuUI.java ++ Copyright (C) 2002, 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.plaf.basic; ++ ++import java.awt.Component; ++import java.awt.Dimension; ++import java.awt.Insets; ++import java.awt.event.FocusAdapter; ++import java.awt.event.FocusEvent; ++import java.awt.event.FocusListener; ++import java.awt.event.InputEvent; ++import java.awt.event.KeyEvent; ++import java.awt.event.MouseAdapter; ++import java.awt.event.MouseEvent; ++import java.beans.PropertyChangeEvent; ++import java.beans.PropertyChangeListener; ++import javax.swing.JComponent; ++import javax.swing.JMenu; ++import javax.swing.JMenuBar; ++import javax.swing.JMenuItem; ++import javax.swing.JPopupMenu; ++import javax.swing.MenuElement; ++import javax.swing.MenuSelectionManager; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; ++import javax.swing.event.ChangeEvent; ++import javax.swing.event.ChangeListener; ++import javax.swing.event.MenuDragMouseEvent; ++import javax.swing.event.MenuDragMouseListener; ++import javax.swing.event.MenuEvent; ++import javax.swing.event.MenuKeyEvent; ++import javax.swing.event.MenuKeyListener; ++import javax.swing.event.MenuListener; ++import javax.swing.event.MouseInputListener; ++import javax.swing.plaf.ComponentUI; ++import javax.swing.plaf.MenuItemUI; ++ ++ ++/** ++ * UI Delegate for JMenu ++ */ ++public class BasicMenuUI extends BasicMenuItemUI ++{ ++ protected ChangeListener changeListener; ++ ++ /* MenuListener listens to MenuEvents fired by JMenu */ ++ protected MenuListener menuListener; ++ ++ /* PropertyChangeListner that listens to propertyChangeEvents occuring in JMenu*/ ++ protected PropertyChangeListener propertyChangeListener; ++ ++ /** ++ * Creates a new BasicMenuUI object. ++ */ ++ public BasicMenuUI() ++ { ++ mouseInputListener = createMouseInputListener((JMenu) menuItem); ++ menuListener = createMenuListener((JMenu) menuItem); ++ propertyChangeListener = createPropertyChangeListener((JMenu) menuItem); ++ } ++ ++ /** ++ * This method creates a new ChangeListener. ++ * ++ * @return A new ChangeListener. ++ */ ++ protected ChangeListener createChangeListener(JComponent c) ++ { ++ return new ChangeHandler(); ++ } ++ ++ /** ++ * This method creates new MenuDragMouseListener to listen to mouse dragged events ++ * occuring in the Menu ++ * ++ * @param c the menu to listen to ++ * ++ * @return The MenuDrageMouseListener ++ */ ++ protected MenuDragMouseListener createMenuDragMouseListener(JComponent c) ++ { ++ return new MenuDragMouseHandler(); ++ } ++ ++ /** ++ * This method creates new MenuDragKeyListener to listen to key events ++ * ++ * @param c the menu to listen to ++ * ++ * @return The MenuKeyListener ++ */ ++ protected MenuKeyListener createMenuKeyListener(JComponent c) ++ { ++ return new MenuKeyHandler(); ++ } ++ ++ /** ++ * This method creates new MenuListener to listen to menu events ++ * occuring in the Menu ++ * ++ * @param c the menu to listen to ++ * ++ * @return The MenuListener ++ */ ++ protected MenuListener createMenuListener(JComponent c) ++ { ++ return new MenuHandler(); ++ } ++ ++ /** ++ * This method creates new MouseInputListener to listen to mouse input events ++ * occuring in the Menu ++ * ++ * @param c the menu to listen to ++ * ++ * @return The MouseInputListener ++ */ ++ protected MouseInputListener createMouseInputListener(JComponent c) ++ { ++ return new MouseInputHandler(); ++ } ++ ++ /** ++ * This method creates newPropertyChangeListener to listen to property changes ++ * occuring in the Menu ++ * ++ * @param c the menu to listen to ++ * ++ * @return The PropertyChangeListener ++ */ ++ protected PropertyChangeListener createPropertyChangeListener(JComponent c) ++ { ++ return new PropertyChangeHandler(); ++ } ++ ++ /** ++ * This method creates a new BasicMenuUI. ++ * ++ * @param c The JComponent to create a UI for. ++ * ++ * @return A new BasicMenuUI. ++ */ ++ public static ComponentUI createUI(JComponent c) ++ { ++ return new BasicMenuUI(); ++ } ++ ++ /** ++ * Get the component's maximum size. ++ * ++ * @param c The JComponent for which to get maximum size ++ * ++ * @return The maximum size of the component ++ */ ++ public Dimension getMaximumSize(JComponent c) ++ { ++ return null; ++ } ++ ++ protected String getPropertyPrefix() ++ { ++ return null; ++ } ++ ++ /** ++ * Initializes any default properties that this UI has from the defaults for ++ * the Basic look and feel. ++ */ ++ protected void installDefaults() ++ { ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ ++ menuItem.setBackground(defaults.getColor("Menu.background")); ++ menuItem.setBorder(defaults.getBorder("Menu.border")); ++ menuItem.setFont(defaults.getFont("Menu.font")); ++ menuItem.setForeground(defaults.getColor("Menu.foreground")); ++ menuItem.setMargin(defaults.getInsets("Menu.margin")); ++ acceleratorFont = defaults.getFont("Menu.acceleratorFont"); ++ acceleratorForeground = defaults.getColor("Menu.acceleratorForeground"); ++ acceleratorSelectionForeground = defaults.getColor("Menu.acceleratorSelectionForeground"); ++ selectionBackground = defaults.getColor("Menu.selectionBackground"); ++ selectionForeground = defaults.getColor("Menu.selectionForeground"); ++ arrowIcon = defaults.getIcon("Menu.arrowIcon"); ++ oldBorderPainted = defaults.getBoolean("Menu.borderPainted"); ++ menuItem.setOpaque(true); ++ } ++ ++ /** ++ * Installs any keyboard actions. The list of keys that need to be bound are ++ * listed in Basic look and feel's defaults. ++ * ++ */ ++ protected void installKeyboardActions() ++ { ++ // FIXME: Need to implement ++ } ++ ++ /** ++ * Creates and registers all the listeners for this UI delegate. ++ */ ++ protected void installListeners() ++ { ++ ((JMenu) menuItem).addMouseListener(mouseInputListener); ++ ((JMenu) menuItem).addMouseMotionListener(mouseInputListener); ++ ((JMenu) menuItem).addMenuListener(menuListener); ++ ((JMenu) menuItem).addMenuDragMouseListener(menuDragMouseListener); ++ } ++ ++ protected void setupPostTimer(JMenu menu) ++ { ++ } ++ ++ /** ++ * This method uninstalls the defaults and sets any objects created during ++ * install to null ++ */ ++ protected void uninstallDefaults() ++ { ++ menuItem.setBackground(null); ++ menuItem.setBorder(null); ++ menuItem.setFont(null); ++ menuItem.setForeground(null); ++ menuItem.setMargin(null); ++ acceleratorFont = null; ++ acceleratorForeground = null; ++ acceleratorSelectionForeground = null; ++ selectionBackground = null; ++ selectionForeground = null; ++ arrowIcon = null; ++ } ++ ++ /** ++ * Uninstalls any keyboard actions. The list of keys used are listed in ++ * Basic look and feel's defaults. ++ */ ++ protected void uninstallKeyboardActions() ++ { ++ // FIXME: Need to implement ++ } ++ ++ /** ++ * Unregisters all the listeners that this UI delegate was using. In ++ * addition, it will also null any listeners that it was using. ++ */ ++ protected void uninstallListeners() ++ { ++ ((JMenu) menuItem).removeMouseListener(mouseInputListener); ++ ((JMenu) menuItem).removeMenuListener(menuListener); ++ ((JMenu) menuItem).removePropertyChangeListener(propertyChangeListener); ++ } ++ ++ /** ++ * This class is used by menus to handle mouse events occuring in the ++ * menu. ++ */ ++ protected class MouseInputHandler implements MouseInputListener ++ { ++ public void mouseClicked(MouseEvent e) ++ { ++ MenuSelectionManager manager = MenuSelectionManager.defaultManager(); ++ manager.processMouseEvent(e); ++ } ++ ++ public void mouseDragged(MouseEvent e) ++ { ++ MenuSelectionManager manager = MenuSelectionManager.defaultManager(); ++ manager.processMouseEvent(e); ++ } ++ ++ public void mouseEntered(MouseEvent e) ++ { ++ /* When mouse enters menu item, it should be considered selected ++ ++ if (i) if this menu is a submenu in some other menu ++ (ii) or if this menu is in a menu bar and some other menu in a menu bar was just ++ selected. (If nothing was selected, menu should be pressed before ++ it will be selected) ++ */ ++ JMenu menu = (JMenu) menuItem; ++ if (! menu.isTopLevelMenu() ++ || (menu.isTopLevelMenu() ++ && (((JMenuBar) menu.getParent()).isSelected() && ! menu.isArmed()))) ++ { ++ // set new selection and forward this event to MenuSelectionManager ++ MenuSelectionManager manager = MenuSelectionManager.defaultManager(); ++ manager.setSelectedPath(getPath()); ++ manager.processMouseEvent(e); ++ } ++ } ++ ++ public void mouseExited(MouseEvent e) ++ { ++ MenuSelectionManager manager = MenuSelectionManager.defaultManager(); ++ manager.processMouseEvent(e); ++ } ++ ++ public void mouseMoved(MouseEvent e) ++ { ++ } ++ ++ public void mousePressed(MouseEvent e) ++ { ++ MenuSelectionManager manager = MenuSelectionManager.defaultManager(); ++ JMenu menu = (JMenu) menuItem; ++ manager.processMouseEvent(e); ++ ++ // Menu should be displayed when the menu is pressed only if ++ // it is top-level menu ++ if (menu.isTopLevelMenu()) ++ { ++ if (menu.getPopupMenu().isVisible()) ++ // If menu is visible and menu button was pressed.. ++ // then need to cancel the menu ++ manager.clearSelectedPath(); ++ else ++ { ++ // Display the menu ++ int x = 0; ++ int y = menu.getHeight(); ++ ++ manager.setSelectedPath(getPath()); ++ ++ JMenuBar mb = (JMenuBar) menu.getParent(); ++ ++ // set selectedIndex of the selectionModel of a menuBar ++ mb.getSelectionModel().setSelectedIndex(mb.getComponentIndex(menu)); ++ } ++ } ++ } ++ ++ public void mouseReleased(MouseEvent e) ++ { ++ MenuSelectionManager manager = MenuSelectionManager.defaultManager(); ++ manager.processMouseEvent(e); ++ } ++ } ++ ++ /** ++ * This class handles MenuEvents fired by the JMenu ++ */ ++ protected class MenuHandler implements MenuListener ++ { ++ /** ++ * This method is called when menu is cancelled. The menu is cancelled ++ * when its popup menu is closed without selection. It clears selected index ++ * in the selectionModel of the menu parent. ++ * ++ * @param e The MenuEvent. ++ */ ++ public void menuCanceled(MenuEvent e) ++ { ++ menuDeselected(e); ++ } ++ ++ /** ++ * This method is called when menu is deselected. It clears selected index ++ * in the selectionModel of the menu parent. ++ * ++ * @param e The MenuEvent. ++ */ ++ public void menuDeselected(MenuEvent e) ++ { ++ JMenu menu = (JMenu) menuItem; ++ if (menu.isTopLevelMenu()) ++ ((JMenuBar) menu.getParent()).getSelectionModel().clearSelection(); ++ else ++ ((JPopupMenu) menu.getParent()).getSelectionModel().clearSelection(); ++ } ++ ++ /** ++ * This method is called when menu is selected. It sets selected index ++ * in the selectionModel of the menu parent. ++ * ++ * @param e The MenuEvent. ++ */ ++ public void menuSelected(MenuEvent e) ++ { ++ JMenu menu = (JMenu) menuItem; ++ if (menu.isTopLevelMenu()) ++ ((JMenuBar) menu.getParent()).setSelected(menu); ++ else ++ ((JPopupMenu) menu.getParent()).setSelected(menu); ++ } ++ } ++ ++ /** ++ * This class handles PropertyChangeEvents fired from the JMenu ++ */ ++ protected class PropertyChangeHandler implements PropertyChangeListener ++ { ++ /** ++ * This method is called whenever one of the properties of the menu item ++ * changes. ++ * ++ * @param e The PropertyChangeEvent. ++ */ ++ public void propertyChange(PropertyChangeEvent evt) ++ { ++ } ++ } ++ ++ protected class ChangeHandler implements ChangeListener ++ { ++ public void stateChanged(ChangeEvent e) ++ { ++ // FIXME: It seems that this class is not used anywhere ++ } ++ } ++ ++ /** ++ * This class handles mouse dragged events occuring in the menu. ++ */ ++ protected class MenuDragMouseHandler implements MenuDragMouseListener ++ { ++ /** ++ * This method is invoked when mouse is dragged over the menu item. ++ * ++ * @param e The MenuDragMouseEvent ++ */ ++ public void menuDragMouseDragged(MenuDragMouseEvent e) ++ { ++ MenuSelectionManager manager = MenuSelectionManager.defaultManager(); ++ manager.setSelectedPath(e.getPath()); ++ } ++ ++ /** ++ * This method is invoked when mouse enters the menu item while it is ++ * being dragged. ++ * ++ * @param e The MenuDragMouseEvent ++ */ ++ public void menuDragMouseEntered(MenuDragMouseEvent e) ++ { ++ MenuSelectionManager manager = MenuSelectionManager.defaultManager(); ++ manager.setSelectedPath(e.getPath()); ++ } ++ ++ /** ++ * This method is invoked when mouse exits the menu item while ++ * it is being dragged ++ * ++ * @param e The MenuDragMouseEvent ++ */ ++ public void menuDragMouseExited(MenuDragMouseEvent e) ++ { ++ } ++ ++ /** ++ * This method is invoked when mouse was dragged and released ++ * inside the menu item. ++ * ++ * @param e The MenuDragMouseEvent ++ */ ++ public void menuDragMouseReleased(MenuDragMouseEvent e) ++ { ++ } ++ } ++ ++ /** ++ * This class handles key events occuring when menu item is visible on the ++ * screen. ++ */ ++ protected class MenuKeyHandler implements MenuKeyListener ++ { ++ /** ++ * This method is invoked when key has been pressed ++ * ++ * @param e A {@link MenuKeyEvent}. ++ */ ++ public void menuKeyPressed(MenuKeyEvent e) ++ { ++ } ++ ++ /** ++ * This method is invoked when key has been pressed ++ * ++ * @param e A {@link MenuKeyEvent}. ++ */ ++ public void menuKeyReleased(MenuKeyEvent e) ++ { ++ } ++ ++ /** ++ * This method is invoked when key has been typed ++ * It handles the mnemonic key for the menu item. ++ * ++ * @param e A {@link MenuKeyEvent}. ++ */ ++ public void menuKeyTyped(MenuKeyEvent e) ++ { ++ } ++ } ++} +Index: javax/swing/plaf/basic/BasicOptionPaneUI.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/plaf/basic/BasicOptionPaneUI.java,v +retrieving revision 1.6 +diff -u -r1.6 BasicOptionPaneUI.java +--- javax/swing/plaf/basic/BasicOptionPaneUI.java 10 Jan 2004 21:59:30 -0000 1.6 ++++ javax/swing/plaf/basic/BasicOptionPaneUI.java 6 Sep 2004 16:36:06 -0000 +@@ -1,5 +1,5 @@ + /* BasicOptionPaneUI.java +- Copyright (C) 2002, 2004 Free Software Foundation, Inc. ++ Copyright (C) 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,124 +35,1295 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing.plaf.basic; + ++import java.awt.BorderLayout; ++import java.awt.Color; + import java.awt.Component; ++import java.awt.Container; + import java.awt.Dimension; ++import java.awt.FlowLayout; ++import java.awt.FontMetrics; ++import java.awt.Graphics; ++import java.awt.GridBagConstraints; ++import java.awt.GridBagLayout; ++import java.awt.Insets; + import java.awt.LayoutManager; ++import java.awt.Polygon; ++import java.awt.Rectangle; ++import java.awt.Window; + import java.awt.event.ActionEvent; + import java.awt.event.ActionListener; ++import java.beans.PropertyChangeEvent; ++import java.beans.PropertyChangeListener; ++import java.beans.PropertyVetoException; ++import javax.swing.Box; ++import javax.swing.BoxLayout; ++import javax.swing.Icon; + import javax.swing.JButton; ++import javax.swing.JComboBox; + import javax.swing.JComponent; ++import javax.swing.JDialog; ++import javax.swing.JInternalFrame; + import javax.swing.JLabel; ++import javax.swing.JList; + import javax.swing.JOptionPane; ++import javax.swing.JPanel; ++import javax.swing.JTextField; ++import javax.swing.SwingUtilities; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; ++import javax.swing.border.Border; + import javax.swing.plaf.ComponentUI; ++import javax.swing.plaf.IconUIResource; + import javax.swing.plaf.OptionPaneUI; + ++ ++/** ++ * This class is the UI delegate for JOptionPane in the Basic Look and Feel. ++ */ + public class BasicOptionPaneUI extends OptionPaneUI + { +- JOptionPane pane; ++ /** ++ * This is a helper class that listens to the buttons located at the bottom ++ * of the JOptionPane. ++ */ ++ protected class ButtonActionListener implements ActionListener ++ { ++ /** The index of the option this button represents. */ ++ protected int buttonIndex; ++ ++ /** ++ * Creates a new ButtonActionListener object with the given buttonIndex. ++ * ++ * @param buttonIndex The index of the option this button represents. ++ */ ++ public ButtonActionListener(int buttonIndex) ++ { ++ this.buttonIndex = buttonIndex; ++ } ++ ++ /** ++ * This method is called when one of the option buttons are pressed. ++ * ++ * @param e The ActionEvent. ++ */ ++ public void actionPerformed(ActionEvent e) ++ { ++ Object value = new Integer(JOptionPane.CLOSED_OPTION); ++ Object[] options = optionPane.getOptions(); ++ if (options != null) ++ value = new Integer(buttonIndex); ++ else ++ { ++ String text = ((JButton) e.getSource()).getText(); ++ if (text.equals(OK_STRING)) ++ value = new Integer(JOptionPane.OK_OPTION); ++ if (text.equals(CANCEL_STRING)) ++ value = new Integer(JOptionPane.CANCEL_OPTION); ++ if (text.equals(YES_STRING)) ++ value = new Integer(JOptionPane.YES_OPTION); ++ if (text.equals(NO_STRING)) ++ value = new Integer(JOptionPane.NO_OPTION); ++ } ++ optionPane.setValue(value); ++ resetInputValue(); ++ ++ Window owner = SwingUtilities.windowForComponent(optionPane); ++ ++ if (owner instanceof JDialog) ++ ((JDialog) owner).dispose(); ++ ++ //else we probably have some kind of internal frame. ++ JInternalFrame inf = (JInternalFrame) SwingUtilities.getAncestorOfClass(JInternalFrame.class, ++ optionPane); ++ if (inf != null) ++ { ++ try ++ { ++ inf.setClosed(true); ++ } ++ catch (PropertyVetoException pve) ++ { ++ } ++ } ++ } ++ } + +- BasicOptionPaneUI() ++ /** ++ * This helper layout manager is responsible for the layout of the button ++ * area. The button area is the panel that holds the buttons which ++ * represent the options. ++ */ ++ protected class ButtonAreaLayout implements LayoutManager ++ { ++ /** Whether this layout will center the buttons. */ ++ protected boolean centersChildren = true; ++ ++ /** The space between the buttons. */ ++ protected int padding; ++ ++ /** Whether the buttons will share the same widths. */ ++ protected boolean syncAllWidths; ++ ++ /** The width of the widest button. */ ++ private transient int widthOfWidestButton; ++ ++ /** The height of the tallest button. */ ++ private transient int tallestButton; ++ ++ /** ++ * Creates a new ButtonAreaLayout object with the given sync widths ++ * property and padding. ++ * ++ * @param syncAllWidths Whether the buttons will share the same widths. ++ * @param padding The padding between the buttons. ++ */ ++ public ButtonAreaLayout(boolean syncAllWidths, int padding) + { ++ this.syncAllWidths = syncAllWidths; ++ this.padding = padding; + } + +- public static ComponentUI createUI(JComponent x) ++ /** ++ * This method is called when a component is added to the container. ++ * ++ * @param string The constraints string. ++ * @param comp The component added. ++ */ ++ public void addLayoutComponent(String string, Component comp) + { +- return new BasicOptionPaneUI(); ++ // Do nothing. + } + +- public void installUI(JComponent c) ++ /** ++ * This method returns whether the children will be centered. ++ * ++ * @return Whether the children will be centered. ++ */ ++ public boolean getCentersChildren() + { +- super.installUI(c); +- pane = (JOptionPane)c; ++ return centersChildren; ++ } + +- System.out.println(" -------------: " + pane); ++ /** ++ * This method returns the amount of space between components. ++ * ++ * @return The amount of space between components. ++ */ ++ public int getPadding() ++ { ++ return padding; ++ } + +- JLabel message = null; +- JButton ok_button = new JButton("Ok"); ++ /** ++ * This method returns whether all components will share widths (set to ++ * largest width). ++ * ++ * @return Whether all components will share widths. ++ */ ++ public boolean getSyncAllWidths() ++ { ++ return syncAllWidths; ++ } + +- ok_button.addActionListener(new ActionListener() ++ /** ++ * This method lays out the given container. ++ * ++ * @param container The container to lay out. ++ */ ++ public void layoutContainer(Container container) ++ { ++ Component[] buttonList = container.getComponents(); ++ int x = container.getInsets().left; ++ if (getCentersChildren()) ++ x += (int) ((double) (container.getSize().width) / 2 ++ - (double) (buttonRowLength(container)) / 2); ++ for (int i = 0; i < buttonList.length; i++) ++ { ++ Dimension dims = buttonList[i].getPreferredSize(); ++ if (getSizeButtonsToSameWidth()) + { +- public void actionPerformed(ActionEvent a) +- { +- System.out.println("ACTION ---> " + a); +- // pane.dialog.dispose(); +- +- if (pane.dialog.isModal()) +- { +- System.out.println("modal dialog !!"); +- pane.dialog.setModal(false); +- } +- pane.dialog.setVisible(false); +- } +- }); +- +- Object[] options = null; +- if (options != null) ++ buttonList[i].setBounds(x, 0, widthOfWidestButton, dims.height); ++ x += widthOfWidestButton + getPadding(); ++ } ++ else + { +- for (int i=0; i maxll) ++ { ++ Box tmp = new Box(BoxLayout.Y_AXIS); ++ burstStringInto(tmp, msg.toString(), maxll); ++ addMessageComponents(container, cons, tmp, maxll, true); ++ } ++ else ++ addMessageComponents(container, cons, new JLabel(msg.toString()), ++ maxll, true); ++ } ++ } ++ ++ /** ++ * This method creates instances of d (recursively if necessary based on ++ * maxll) and adds to c. ++ * ++ * @param c The container to add to. ++ * @param d The string to burst. ++ * @param maxll The max line length. ++ */ ++ protected void burstStringInto(Container c, String d, int maxll) + { +- throw new Error ("Not implemented"); ++ // FIXME: Verify that this is the correct behaviour. ++ // One interpretation of the spec is that this method ++ // should recursively call itself to create (and add) ++ // JLabels to the container if the length of the String d ++ // is greater than maxll. ++ // but in practice, even with a really long string, this is ++ // all that happens. ++ if (d == null || c == null) ++ return; ++ JLabel label = new JLabel(d); ++ c.add(label); + } + ++ /** ++ * This method returns true if the given JOptionPane contains custom ++ * components. ++ * ++ * @param op The JOptionPane to check. ++ * ++ * @return True if the JOptionPane contains custom components. ++ */ + public boolean containsCustomComponents(JOptionPane op) + { +- throw new Error ("Not implemented"); ++ return hasCustomComponents; ++ } ++ ++ /** ++ * This method creates a button action listener for the given button index. ++ * ++ * @param buttonIndex The index of the button in components. ++ * ++ * @return A new ButtonActionListener. ++ */ ++ protected ActionListener createButtonActionListener(int buttonIndex) ++ { ++ return new ButtonActionListener(buttonIndex); ++ } ++ ++ /** ++ * This method creates the button area. ++ * ++ * @return A new Button Area. ++ */ ++ protected Container createButtonArea() ++ { ++ JPanel buttonPanel = new JPanel(); ++ ++ buttonPanel.setLayout(createLayoutManager()); ++ addButtonComponents(buttonPanel, getButtons(), getInitialValueIndex()); ++ ++ return buttonPanel; ++ } ++ ++ /** ++ * This method creates a new LayoutManager for the button area. ++ * ++ * @return A new LayoutManager for the button area. ++ */ ++ protected LayoutManager createLayoutManager() ++ { ++ return new ButtonAreaLayout(getSizeButtonsToSameWidth(), 6); ++ } ++ ++ /** ++ * This method creates the message area. ++ * ++ * @return A new message area. ++ */ ++ protected Container createMessageArea() ++ { ++ JPanel messageArea = new JPanel(); ++ messageArea.setLayout(new BorderLayout()); ++ addIcon(messageArea); ++ ++ JPanel rightSide = new JPanel() ++ { ++ public Dimension getPreferredSize() ++ { ++ int w = Math.max(optionPane.getSize().width, minimumWidth); ++ Insets i = optionPane.getInsets(); ++ Dimension orig = super.getPreferredSize(); ++ Dimension value = new Dimension(w - i.left - i.right - iconSize, ++ orig.height); ++ return value; ++ } ++ }; ++ rightSide.setLayout(new GridBagLayout()); ++ GridBagConstraints con = createConstraints(); ++ ++ addMessageComponents(rightSide, con, getMessage(), ++ getMaxCharactersPerLineCount(), false); ++ ++ if (optionPane.getWantsInput()) ++ { ++ Object[] selection = optionPane.getSelectionValues(); ++ ++// if (selection == null) ++// inputComponent = new JTextField(); ++// else if (selection.length < 20) ++// inputComponent = new JComboBox(selection); ++ // FIXME: Uncomment when the widgets are done. ++ if (selection == null) ++ inputComponent = null; ++ else ++ inputComponent = new JList(selection); ++ if (inputComponent != null) ++ { ++ addMessageComponents(rightSide, con, inputComponent, ++ getMaxCharactersPerLineCount(), true); ++ resetSelectedValue(); ++ selectInitialValue(optionPane); ++ } ++ } ++ ++ messageArea.add(rightSide, BorderLayout.EAST); ++ ++ return messageArea; ++ } ++ ++ /** ++ * This method creates a new PropertyChangeListener for listening to the ++ * JOptionPane. ++ * ++ * @return A new PropertyChangeListener. ++ */ ++ protected PropertyChangeListener createPropertyChangeListener() ++ { ++ return new PropertyChangeHandler(); ++ } ++ ++ /** ++ * This method creates a Container that will separate the message and button ++ * areas. ++ * ++ * @return A Container that will separate the message and button areas. ++ */ ++ protected Container createSeparator() ++ { ++ return null; ++ } ++ ++ /** ++ * This method creates a new BasicOptionPaneUI for the given component. ++ * ++ * @param x The component to create a UI for. ++ * ++ * @return A new BasicOptionPaneUI. ++ */ ++ public static ComponentUI createUI(JComponent x) ++ { ++ return new BasicOptionPaneUI(); ++ } ++ ++ /** ++ * This method returns the buttons for the JOptionPane. If no options are ++ * set, a set of options will be created based upon the optionType. ++ * ++ * @return The buttons that will be added. ++ */ ++ protected Object[] getButtons() ++ { ++ if (optionPane.getOptions() != null) ++ return optionPane.getOptions(); ++ switch (optionPane.getOptionType()) ++ { ++ case JOptionPane.YES_NO_OPTION: ++ return new Object[] { YES_STRING, NO_STRING }; ++ case JOptionPane.YES_NO_CANCEL_OPTION: ++ return new Object[] { YES_STRING, NO_STRING, CANCEL_STRING }; ++ case JOptionPane.OK_CANCEL_OPTION: ++ case JOptionPane.DEFAULT_OPTION: ++ return new Object[] { OK_STRING, CANCEL_STRING }; ++ } ++ return null; ++ } ++ ++ /** ++ * This method will return the icon the user has set or the icon that will ++ * be used based on message type. ++ * ++ * @return The icon to use in the JOptionPane. ++ */ ++ protected Icon getIcon() ++ { ++ if (optionPane.getIcon() != null) ++ return optionPane.getIcon(); ++ else ++ return getIconForType(optionPane.getMessageType()); ++ } ++ ++ /** ++ * This method returns the icon for the given messageType. ++ * ++ * @param messageType The type of message. ++ * ++ * @return The icon for the given messageType. ++ */ ++ protected Icon getIconForType(int messageType) ++ { ++ Icon tmp = null; ++ switch (messageType) ++ { ++ case JOptionPane.ERROR_MESSAGE: ++ tmp = errorIcon; ++ break; ++ case JOptionPane.INFORMATION_MESSAGE: ++ tmp = infoIcon; ++ break; ++ case JOptionPane.WARNING_MESSAGE: ++ tmp = warningIcon; ++ break; ++ case JOptionPane.QUESTION_MESSAGE: ++ tmp = questionIcon; ++ break; ++ } ++ return tmp; ++ // FIXME: Don't cast till the default icons are in. ++ // return new IconUIResource(tmp); ++ } ++ ++ /** ++ * This method returns the index of the initialValue in the options array. ++ * ++ * @return The index of the initalValue. ++ */ ++ protected int getInitialValueIndex() ++ { ++ Object[] buttons = getButtons(); ++ ++ if (buttons == null) ++ return -1; ++ ++ Object select = optionPane.getInitialValue(); ++ ++ for (int i = 0; i < buttons.length; i++) ++ { ++ if (select == buttons[i]) ++ return i; ++ } ++ return 0; ++ } ++ ++ /** ++ * This method returns the maximum number of characters that should be ++ * placed on a line. ++ * ++ * @return The maximum number of characteres that should be placed on a ++ * line. ++ */ ++ protected int getMaxCharactersPerLineCount() ++ { ++ return optionPane.getMaxCharactersPerLineCount(); ++ } ++ ++ /** ++ * This method returns the maximum size. ++ * ++ * @param c The JComponent to measure. ++ * ++ * @return The maximum size. ++ */ ++ public Dimension getMaximumSize(JComponent c) ++ { ++ return getPreferredSize(c); ++ } ++ ++ /** ++ * This method returns the message of the JOptionPane. ++ * ++ * @return The message. ++ */ ++ protected Object getMessage() ++ { ++ return optionPane.getMessage(); ++ } ++ ++ /** ++ * This method returns the minimum size of the JOptionPane. ++ * ++ * @return The minimum size. ++ */ ++ public Dimension getMinimumOptionPaneSize() ++ { ++ return minimumSize; ++ } ++ ++ /** ++ * This method returns the minimum size. ++ * ++ * @param c The JComponent to measure. ++ * ++ * @return The minimum size. ++ */ ++ public Dimension getMinimumSize(JComponent c) ++ { ++ return getPreferredSize(c); ++ } ++ ++ /** ++ * This method returns the preferred size of the JOptionPane. The preferred ++ * size is the maximum of the size desired by the layout and the minimum ++ * size. ++ * ++ * @param c The JComponent to measure. ++ * ++ * @return The preferred size. ++ */ ++ public Dimension getPreferredSize(JComponent c) ++ { ++ Dimension d = optionPane.getLayout().preferredLayoutSize(optionPane); ++ Dimension d2 = getMinimumOptionPaneSize(); ++ ++ int w = Math.max(d.width, d2.width); ++ int h = Math.max(d.height, d2.height); ++ return new Dimension(w, h); ++ } ++ ++ /** ++ * This method returns whether all buttons should have the same width. ++ * ++ * @return Whether all buttons should have the same width. ++ */ ++ protected boolean getSizeButtonsToSameWidth() ++ { ++ return true; ++ } ++ ++ /** ++ * This method installs components for the JOptionPane. ++ */ ++ protected void installComponents() ++ { ++ // reset it. ++ hasCustomComponents = false; ++ Container msg = createMessageArea(); ++ if (msg != null) ++ { ++ ((JComponent) msg).setBorder(messageBorder); ++ msg.setForeground(messageForeground); ++ messageAreaContainer = msg; ++ optionPane.add(msg); ++ } ++ ++ Container sep = createSeparator(); ++ if (sep != null) ++ optionPane.add(sep); ++ ++ Container button = createButtonArea(); ++ if (button != null) ++ { ++ ((JComponent) button).setBorder(buttonBorder); ++ buttonContainer = button; ++ optionPane.add(button); ++ } ++ ++ optionPane.invalidate(); ++ } ++ ++ /** ++ * This method installs defaults for the JOptionPane. ++ */ ++ protected void installDefaults() ++ { ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ ++ optionPane.setFont(defaults.getFont("OptionPane.font")); ++ optionPane.setBackground(defaults.getColor("OptionPane.background")); ++ optionPane.setForeground(defaults.getColor("OptionPane.foreground")); ++ optionPane.setBorder(defaults.getBorder("OptionPane.border")); ++ ++ messageBorder = defaults.getBorder("OptionPane.messageAreaBorder"); ++ messageForeground = defaults.getColor("OptionPane.messageForeground"); ++ buttonBorder = defaults.getBorder("OptionPane.buttonAreaBorder"); ++ ++ minimumSize = defaults.getDimension("OptionPane.minimumSize"); ++ minimumWidth = minimumSize.width; ++ minimumHeight = minimumSize.height; ++ ++ // FIXME: Image icons don't seem to work properly right now. ++ // Once they do, replace the synthetic icons with these ones. ++ ++ /* ++ warningIcon = (IconUIResource) defaults.getIcon("OptionPane.warningIcon"); ++ infoIcon = (IconUIResource) defaults.getIcon("OptionPane.informationIcon"); ++ errorIcon = (IconUIResource) defaults.getIcon("OptionPane.errorIcon"); ++ questionIcon = (IconUIResource) defaults.getIcon("OptionPane.questionIcon"); ++ */ ++ } ++ ++ /** ++ * This method installs keyboard actions for the JOptionpane. ++ */ ++ protected void installKeyboardActions() ++ { ++ // FIXME: implement. ++ } ++ ++ /** ++ * This method installs listeners for the JOptionPane. ++ */ ++ protected void installListeners() ++ { ++ propertyChangeListener = createPropertyChangeListener(); ++ ++ optionPane.addPropertyChangeListener(propertyChangeListener); ++ } ++ ++ /** ++ * This method installs the UI for the JOptionPane. ++ * ++ * @param c The JComponent to install the UI for. ++ */ ++ public void installUI(JComponent c) ++ { ++ if (c instanceof JOptionPane) ++ { ++ optionPane = (JOptionPane) c; ++ ++ installDefaults(); ++ installComponents(); ++ installListeners(); ++ installKeyboardActions(); ++ } ++ } ++ ++ /** ++ * Changes the inputValue property in the JOptionPane based on the current ++ * value of the inputComponent. ++ */ ++ protected void resetInputValue() ++ { ++ if (optionPane.getWantsInput() && inputComponent != null) ++ { ++ Object output = null; ++ if (inputComponent instanceof JTextField) ++ output = ((JTextField) inputComponent).getText(); ++ else if (inputComponent instanceof JComboBox) ++ output = ((JComboBox) inputComponent).getSelectedItem(); ++ else if (inputComponent instanceof JList) ++ output = ((JList) inputComponent).getSelectedValue(); ++ ++ if (output != null) ++ optionPane.setInputValue(output); ++ } ++ } ++ ++ /** ++ * This method requests focus to the inputComponent (if one is present) and ++ * the initialFocusComponent otherwise. ++ * ++ * @param op The JOptionPane. ++ */ ++ public void selectInitialValue(JOptionPane op) ++ { ++ if (inputComponent != null) ++ { ++ inputComponent.requestFocus(); ++ return; ++ } ++ if (initialFocusComponent != null) ++ initialFocusComponent.requestFocus(); ++ } ++ ++ /** ++ * This method resets the value in the inputComponent to the ++ * initialSelectionValue property. ++ */ ++ private void resetSelectedValue() ++ { ++ if (inputComponent != null) ++ { ++ Object init = optionPane.getInitialSelectionValue(); ++ if (init == null) ++ return; ++ if (inputComponent instanceof JTextField) ++ ((JTextField) inputComponent).setText((String) init); ++ else if (inputComponent instanceof JComboBox) ++ ((JComboBox) inputComponent).setSelectedItem(init); ++ else if (inputComponent instanceof JList) ++ { ++ // ((JList) inputComponent).setSelectedValue(init, true); ++ } ++ } ++ } ++ ++ /** ++ * This method uninstalls all the components in the JOptionPane. ++ */ ++ protected void uninstallComponents() ++ { ++ optionPane.removeAll(); ++ buttonContainer = null; ++ messageAreaContainer = null; ++ } ++ ++ /** ++ * This method uninstalls the defaults for the JOptionPane. ++ */ ++ protected void uninstallDefaults() ++ { ++ optionPane.setFont(null); ++ optionPane.setForeground(null); ++ optionPane.setBackground(null); ++ ++ minimumSize = null; ++ ++ messageBorder = null; ++ buttonBorder = null; ++ messageForeground = null; ++ ++ // FIXME: ImageIcons don't seem to work properly ++ ++ /* ++ warningIcon = null; ++ errorIcon = null; ++ questionIcon = null; ++ infoIcon = null; ++ */ ++ } ++ ++ /** ++ * This method uninstalls keyboard actions for the JOptionPane. ++ */ ++ protected void uninstallKeyboardActions() ++ { ++ // FIXME: implement. ++ } ++ ++ /** ++ * This method uninstalls listeners for the JOptionPane. ++ */ ++ protected void uninstallListeners() ++ { ++ optionPane.removePropertyChangeListener(propertyChangeListener); ++ propertyChangeListener = null; ++ } ++ ++ /** ++ * This method uninstalls the UI for the given JComponent. ++ * ++ * @param c The JComponent to uninstall for. ++ */ ++ public void uninstallUI(JComponent c) ++ { ++ uninstallKeyboardActions(); ++ uninstallListeners(); ++ uninstallComponents(); ++ uninstallDefaults(); ++ ++ optionPane = null; + } + } +Index: javax/swing/plaf/basic/BasicPanelUI.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/plaf/basic/BasicPanelUI.java,v +retrieving revision 1.3 +diff -u -r1.3 BasicPanelUI.java +--- javax/swing/plaf/basic/BasicPanelUI.java 10 Jan 2004 21:59:30 -0000 1.3 ++++ javax/swing/plaf/basic/BasicPanelUI.java 6 Sep 2004 16:36:06 -0000 +@@ -44,8 +44,6 @@ + + public class BasicPanelUI extends PanelUI + { +- int gap = 3; +- + public static ComponentUI createUI(JComponent x) + { + return new BasicPanelUI(); +@@ -53,6 +51,6 @@ + + public void installUI(JComponent c) + { +- super.installUI(c); ++ super.installUI(c); + } + } +Index: javax/swing/plaf/basic/BasicPasswordFieldUI.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicPasswordFieldUI.java +diff -N javax/swing/plaf/basic/BasicPasswordFieldUI.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicPasswordFieldUI.java 6 Sep 2004 16:36:06 -0000 +@@ -0,0 +1,61 @@ ++/* BasicPasswordFieldUI.java ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++ ++package javax.swing.plaf.basic; ++ ++import javax.swing.JComponent; ++import javax.swing.plaf.ComponentUI; ++import javax.swing.text.Element; ++import javax.swing.text.View; ++ ++public class BasicPasswordFieldUI extends BasicTextFieldUI ++{ ++ public BasicPasswordFieldUI() ++ { ++ } ++ ++ public static ComponentUI createUI(JComponent c) ++ { ++ return new BasicPasswordFieldUI(); ++ } ++ ++ protected String getPropertyPrefix() ++ { ++ return "PasswordField"; ++ } ++} +Index: javax/swing/plaf/basic/BasicPopupMenuSeparatorUI.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicPopupMenuSeparatorUI.java +diff -N javax/swing/plaf/basic/BasicPopupMenuSeparatorUI.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicPopupMenuSeparatorUI.java 6 Sep 2004 16:36:06 -0000 +@@ -0,0 +1,118 @@ ++/* BasicPopupMenuSeparatorUI.java ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.plaf.basic; ++ ++import java.awt.Color; ++import java.awt.Dimension; ++import java.awt.Graphics; ++import java.awt.Insets; ++import java.awt.Rectangle; ++import javax.swing.JComponent; ++import javax.swing.JPopupMenu; ++import javax.swing.JSeparator; ++import javax.swing.SwingUtilities; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; ++import javax.swing.plaf.ComponentUI; ++import javax.swing.plaf.SeparatorUI; ++ ++ ++/** ++ * The Basic Look and Feel UI delegate for JPopupMenu.Separator. ++ */ ++public class BasicPopupMenuSeparatorUI extends BasicSeparatorUI ++{ ++ /** ++ * Creates a new BasicPopupMenuSeparatorUI object. ++ */ ++ public BasicPopupMenuSeparatorUI() ++ { ++ super(); ++ } ++ ++ /** ++ * Creates a new UI delegate for the given JComponent. ++ * ++ * @param c The JComponent to create a delegate for. ++ * ++ * @return A new BasicPopupMenuSeparatorUI ++ */ ++ public static ComponentUI createUI(JComponent c) ++ { ++ return new BasicPopupMenuSeparatorUI(); ++ } ++ ++ /** ++ * The Popup Menu Separator has two lines. The top line will be ++ * painted using highlight color and the bottom using shadow color. ++ * ++ * @param g The Graphics object to paint with ++ * @param c The JComponent to paint. ++ */ ++ public void paint(Graphics g, JComponent c) ++ { ++ if (! (c instanceof JPopupMenu.Separator)) ++ return; ++ ++ Rectangle r = new Rectangle(); ++ SwingUtilities.calculateInnerArea(c, r); ++ Color saved = g.getColor(); ++ ++ int midAB = r.width / 2 + r.x; ++ int midAD = r.height / 2 + r.y; ++ ++ g.setColor(highlight); ++ g.drawLine(r.x, midAD, r.x + r.width, midAD); ++ ++ g.setColor(shadow); ++ g.drawLine(r.x, midAD + 1, r.x + r.width, midAD + 1); ++ } ++ ++ /** ++ * This method returns the preferred size of the ++ * JComponent. ++ * ++ * @param c The JComponent to measure. ++ * ++ * @return The preferred size. ++ */ ++ public Dimension getPreferredSize(JComponent c) ++ { ++ return super.getPreferredSize(c); ++ } ++} +Index: javax/swing/plaf/basic/BasicPopupMenuUI.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicPopupMenuUI.java +diff -N javax/swing/plaf/basic/BasicPopupMenuUI.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicPopupMenuUI.java 6 Sep 2004 16:36:06 -0000 +@@ -0,0 +1,433 @@ ++/* BasicPopupMenuUI.java ++ Copyright (C) 2002, 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.plaf.basic; ++ ++import java.awt.AWTKeyStroke; ++import java.awt.BasicStroke; ++import java.awt.Color; ++import java.awt.Component; ++import java.awt.Container; ++import java.awt.Dimension; ++import java.awt.Font; ++import java.awt.FontMetrics; ++import java.awt.Graphics; ++import java.awt.Graphics2D; ++import java.awt.GridBagLayout; ++import java.awt.GridLayout; ++import java.awt.Insets; ++import java.awt.Rectangle; ++import java.awt.Stroke; ++import java.awt.event.ComponentEvent; ++import java.awt.event.ComponentListener; ++import java.awt.event.FocusAdapter; ++import java.awt.event.FocusEvent; ++import java.awt.event.FocusListener; ++import java.awt.event.InputEvent; ++import java.awt.event.KeyEvent; ++import java.awt.event.MouseAdapter; ++import java.awt.event.MouseEvent; ++import java.beans.PropertyChangeEvent; ++import java.beans.PropertyChangeListener; ++import java.util.EventListener; ++import javax.swing.AbstractButton; ++import javax.swing.ButtonModel; ++import javax.swing.Icon; ++import javax.swing.JCheckBoxMenuItem; ++import javax.swing.JComponent; ++import javax.swing.JMenuItem; ++import javax.swing.JPopupMenu; ++import javax.swing.JRadioButtonMenuItem; ++import javax.swing.KeyStroke; ++import javax.swing.MenuElement; ++import javax.swing.MenuSelectionManager; ++import javax.swing.SwingUtilities; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; ++import javax.swing.event.ChangeEvent; ++import javax.swing.event.ChangeListener; ++import javax.swing.event.MenuDragMouseEvent; ++import javax.swing.event.MenuDragMouseListener; ++import javax.swing.event.MenuKeyEvent; ++import javax.swing.event.MenuKeyListener; ++import javax.swing.event.MouseInputListener; ++import javax.swing.event.PopupMenuEvent; ++import javax.swing.event.PopupMenuListener; ++import javax.swing.plaf.ComponentUI; ++import javax.swing.plaf.MenuItemUI; ++import javax.swing.plaf.PopupMenuUI; ++ ++ ++/** ++ * UI Delegate for JPopupMenu ++ */ ++public class BasicPopupMenuUI extends PopupMenuUI ++{ ++ /* popupMenu for which this UI delegate is for*/ ++ protected JPopupMenu popupMenu; ++ ++ /* MouseInputListener listens to mouse events */ ++ private static transient MouseInputListener mouseInputListener; ++ ++ /* PopupMenuListener listens to popup menu events fired by JPopupMenu*/ ++ private transient PopupMenuListener popupMenuListener; ++ ++ /* ComponentListener listening to popupMenu's invoker. */ ++ private TopWindowListener topWindowListener; ++ ++ /** ++ * Creates a new BasicPopupMenuUI object. ++ */ ++ public BasicPopupMenuUI() ++ { ++ popupMenuListener = new PopupMenuHandler(); ++ mouseInputListener = new MouseInputHandler(); ++ topWindowListener = new TopWindowListener(); ++ } ++ ++ /** ++ * Factory method to create a BasicPopupMenuUI for the given {@link ++ * JComponent}, which should be a {@link JMenuItem}. ++ * ++ * @param x The {@link JComponent} a UI is being created for. ++ * ++ * @return A BasicPopupMenuUI for the {@link JComponent}. ++ */ ++ public static ComponentUI createUI(JComponent x) ++ { ++ return new BasicPopupMenuUI(); ++ } ++ ++ /** ++ * Installs and initializes all fields for this UI delegate. Any properties ++ * of the UI that need to be initialized and/or set to defaults will be ++ * done now. It will also install any listeners necessary. ++ * ++ * @param c The {@link JComponent} that is having this UI installed. ++ */ ++ public void installUI(JComponent c) ++ { ++ super.installUI(c); ++ popupMenu = (JPopupMenu) c; ++ popupMenu.setLayout(new GridBagLayout()); ++ popupMenu.setBorderPainted(true); ++ JPopupMenu.setDefaultLightWeightPopupEnabled(true); ++ ++ installDefaults(); ++ installListeners(); ++ } ++ ++ /** ++ * This method installs the defaults that are defined in the Basic look and ++ * feel for this {@link JPopupMenu}. ++ */ ++ public void installDefaults() ++ { ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ ++ popupMenu.setBackground(defaults.getColor("PopupMenu.background")); ++ popupMenu.setBorder(defaults.getBorder("PopupMenu.border")); ++ popupMenu.setFont(defaults.getFont("PopupMenu.font")); ++ popupMenu.setForeground(defaults.getColor("PopupMenu.foreground")); ++ popupMenu.setOpaque(true); ++ } ++ ++ /** ++ * This method installs the listeners for the {@link JMenuItem}. ++ */ ++ protected void installListeners() ++ { ++ popupMenu.addMouseListener(mouseInputListener); ++ popupMenu.addMouseMotionListener(mouseInputListener); ++ popupMenu.addPopupMenuListener(popupMenuListener); ++ } ++ ++ /** ++ * This method installs the keyboard actions for this {@link JPopupMenu}. ++ */ ++ protected void installKeyboardActions() ++ { ++ // FIXME: Need to implement ++ } ++ ++ /** ++ * Performs the opposite of installUI. Any properties or resources that need ++ * to be cleaned up will be done now. It will also uninstall any listeners ++ * it has. In addition, any properties of this UI will be nulled. ++ * ++ * @param c The {@link JComponent} that is having this UI uninstalled. ++ */ ++ public void uninstallUI(JComponent c) ++ { ++ uninstallListeners(); ++ uninstallDefaults(); ++ popupMenu = null; ++ } ++ ++ /** ++ * This method uninstalls the defaults and sets any objects created during ++ * install to null ++ */ ++ protected void uninstallDefaults() ++ { ++ popupMenu.setBackground(null); ++ popupMenu.setBorder(null); ++ popupMenu.setFont(null); ++ popupMenu.setForeground(null); ++ } ++ ++ /** ++ * Unregisters all the listeners that this UI delegate was using. ++ */ ++ protected void uninstallListeners() ++ { ++ popupMenu.removeMouseListener(mouseInputListener); ++ popupMenu.removeMouseMotionListener(mouseInputListener); ++ popupMenu.removePopupMenuListener(popupMenuListener); ++ } ++ ++ /** ++ * Uninstalls any keyboard actions. ++ */ ++ protected void uninstallKeyboardActions() ++ { ++ // FIXME: Need to implement ++ } ++ ++ /** ++ * This method returns the minimum size of the JPopupMenu. ++ * ++ * @param c The JComponent to find a size for. ++ * ++ * @return The minimum size. ++ */ ++ public Dimension getMinimumSize(JComponent c) ++ { ++ return null; ++ } ++ ++ /** ++ * This method returns the preferred size of the JPopupMenu. ++ * ++ * @param c The JComponent to find a size for. ++ * ++ * @return The preferred size. ++ */ ++ public Dimension getPreferredSize(JComponent c) ++ { ++ return null; ++ } ++ ++ /** ++ * This method returns the minimum size of the JPopupMenu. ++ * ++ * @param c The JComponent to find a size for. ++ * ++ * @return The minimum size. ++ */ ++ public Dimension getMaximumSize(JComponent c) ++ { ++ return null; ++ } ++ ++ /** ++ * Return true if given mouse event is a platform popup trigger, and false ++ * otherwise ++ * ++ * @param e MouseEvent that is to be checked for popup trigger event ++ * ++ * @return true if given mouse event is a platform popup trigger, and false ++ * otherwise ++ */ ++ public boolean isPopupTrigger(MouseEvent e) ++ { ++ return false; ++ } ++ ++ /** ++ * This listener handles PopupMenuEvents fired by JPopupMenu ++ */ ++ private class PopupMenuHandler implements PopupMenuListener ++ { ++ /** ++ * This method is invoked when JPopupMenu is cancelled. ++ * ++ * @param event the PopupMenuEvent ++ */ ++ public void popupMenuCanceled(PopupMenuEvent event) ++ { ++ MenuSelectionManager manager = MenuSelectionManager.defaultManager(); ++ manager.clearSelectedPath(); ++ } ++ ++ /** ++ * This method is invoked when JPopupMenu becomes invisible ++ * ++ * @param event the PopupMenuEvent ++ */ ++ public void popupMenuWillBecomeInvisible(PopupMenuEvent event) ++ { ++ // remove listener that listens to component events fired ++ // by the top - level window that this popup belongs to. ++ Component invoker = popupMenu.getInvoker(); ++ ++ Container rootContainer = (Container) SwingUtilities.getRoot(invoker); ++ rootContainer.removeComponentListener(topWindowListener); ++ } ++ ++ /** ++ * This method is invoked when JPopupMenu becomes visible ++ * ++ * @param event the PopupMenuEvent ++ */ ++ public void popupMenuWillBecomeVisible(PopupMenuEvent event) ++ { ++ // Adds topWindowListener to top-level window to listener to ++ // ComponentEvents fired by it. We need to cancel this popup menu ++ // if topWindow to which this popup belongs was resized or moved. ++ Component invoker = popupMenu.getInvoker(); ++ Container rootContainer = (Container) SwingUtilities.getRoot(invoker); ++ rootContainer.addComponentListener(topWindowListener); ++ ++ // if this popup menu is a free floating popup menu, ++ // then by default its first element should be always selected when ++ // this popup menu becomes visible. ++ MenuSelectionManager manager = MenuSelectionManager.defaultManager(); ++ ++ if (manager.getSelectedPath().length == 0) ++ { ++ // Set selected path to point to the first item in the popup menu ++ MenuElement[] path = new MenuElement[2]; ++ path[0] = popupMenu; ++ Component[] comps = popupMenu.getComponents(); ++ if (comps.length != 0 && comps[0] instanceof MenuElement) ++ { ++ path[1] = (MenuElement) comps[0]; ++ manager.setSelectedPath(path); ++ } ++ } ++ } ++ } ++ ++ /** ++ * ComponentListener that listens to Component Events fired by the top - ++ * level window to which popup menu belongs. If top-level window was ++ * resized, moved or hidded then popup menu will be hidded and selected ++ * path of current menu hierarchy will be set to null. ++ */ ++ private class TopWindowListener implements ComponentListener ++ { ++ /** ++ * This method is invoked when top-level window is resized. This method ++ * closes current menu hierarchy. ++ * ++ * @param e The ComponentEvent ++ */ ++ public void componentResized(ComponentEvent e) ++ { ++ MenuSelectionManager manager = MenuSelectionManager.defaultManager(); ++ manager.clearSelectedPath(); ++ } ++ ++ /** ++ * This method is invoked when top-level window is moved. This method ++ * closes current menu hierarchy. ++ * ++ * @param e The ComponentEvent ++ */ ++ public void componentMoved(ComponentEvent e) ++ { ++ MenuSelectionManager manager = MenuSelectionManager.defaultManager(); ++ manager.clearSelectedPath(); ++ } ++ ++ /** ++ * This method is invoked when top-level window is shown This method does ++ * nothing by default. ++ * ++ * @param e The ComponentEvent ++ */ ++ public void componentShown(ComponentEvent e) ++ { ++ MenuSelectionManager manager = MenuSelectionManager.defaultManager(); ++ manager.clearSelectedPath(); ++ } ++ ++ /** ++ * This method is invoked when top-level window is hidden This method ++ * closes current menu hierarchy. ++ * ++ * @param e The ComponentEvent ++ */ ++ public void componentHidden(ComponentEvent e) ++ { ++ MenuSelectionManager manager = MenuSelectionManager.defaultManager(); ++ manager.clearSelectedPath(); ++ } ++ } ++ ++ private class MouseInputHandler implements MouseInputListener ++ { ++ public void mouseClicked(MouseEvent e) ++ { ++ } ++ ++ public void mouseDragged(MouseEvent e) ++ { ++ } ++ ++ public void mouseEntered(MouseEvent e) ++ { ++ } ++ ++ public void mouseExited(MouseEvent e) ++ { ++ } ++ ++ public void mouseMoved(MouseEvent e) ++ { ++ } ++ ++ public void mousePressed(MouseEvent e) ++ { ++ } ++ ++ public void mouseReleased(MouseEvent e) ++ { ++ } ++ } ++} +Index: javax/swing/plaf/basic/BasicProgressBarUI.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicProgressBarUI.java +diff -N javax/swing/plaf/basic/BasicProgressBarUI.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicProgressBarUI.java 6 Sep 2004 16:36:06 -0000 +@@ -0,0 +1,824 @@ ++/* BasicProgressBarUI.java ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.plaf.basic; ++ ++import java.awt.Color; ++import java.awt.Dimension; ++import java.awt.Font; ++import java.awt.FontMetrics; ++import java.awt.Graphics; ++import java.awt.Insets; ++import java.awt.Point; ++import java.awt.Rectangle; ++import java.awt.event.ActionEvent; ++import java.awt.event.ActionListener; ++import java.beans.PropertyChangeEvent; ++import java.beans.PropertyChangeListener; ++import javax.swing.JComponent; ++import javax.swing.JProgressBar; ++import javax.swing.SwingConstants; ++import javax.swing.SwingUtilities; ++import javax.swing.Timer; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; ++import javax.swing.event.ChangeEvent; ++import javax.swing.event.ChangeListener; ++import javax.swing.plaf.ComponentUI; ++import javax.swing.plaf.ProgressBarUI; ++ ++ ++/** ++ * The Basic Look and Feel UI delegate for the ++ * JProgressBar. ++ */ ++public class BasicProgressBarUI extends ProgressBarUI ++{ ++ /** ++ * A helper class that listens for ChangeEvents ++ * from the progressBar's model. ++ */ ++ protected class ChangeHandler implements ChangeListener ++ { ++ /** ++ * Called every time the state of the model changes. ++ * ++ * @param e The ChangeEvent given by the model. ++ */ ++ public void stateChanged(ChangeEvent e) ++ { ++ // Nothing to do but repaint. ++ progressBar.repaint(); ++ } ++ } ++ ++ /** ++ * This helper class is used to listen for ++ * PropertyChangeEvents from the progressBar. ++ */ ++ private class PropertyChangeHandler implements PropertyChangeListener ++ { ++ /** ++ * Called every time the properties of the ++ * progressBar change. ++ * ++ * @param e The PropertyChangeEvent given by the progressBar. ++ */ ++ public void propertyChange(PropertyChangeEvent e) ++ { ++ // Only need to listen for indeterminate changes. ++ // All other things are done on a repaint. ++ if (e.getPropertyName().equals(JProgressBar.INDETERMINATE_CHANGED_PROPERTY)) ++ if (((Boolean) e.getNewValue()).booleanValue()) ++ startAnimationTimer(); ++ else ++ stopAnimationTimer(); ++ else ++ progressBar.repaint(); ++ } ++ } ++ ++ /** ++ * This helper class is used to listen for ++ * the animationTimer's intervals. On every interval, ++ * the bouncing box should move. ++ */ ++ private class Animator implements ActionListener ++ { ++ /** ++ * Called every time the animationTimer reaches ++ * its interval. ++ * ++ * @param e The ActionEvent given by the timer. ++ */ ++ public void actionPerformed(ActionEvent e) ++ { ++ // Incrementing the animation index will cause ++ // a repaint. ++ incrementAnimationIndex(); ++ } ++ } ++ ++ /** The timer used to move the bouncing box. */ ++ private transient Timer animationTimer; ++ ++ // The total number of frames must be an even number. ++ // The total number of frames is calculated from ++ // the cycleTime and repaintInterval given by ++ // the basic Look and Feel defaults. ++ // ++ // +-----------------------------------------------+ ++ // | frame0 | frame1 | frame2 | frame 3 | frame 4 | ++ // | | frame7 | frame6 | frame 5 | | ++ // +-----------------------------------------------+ ++ ++ /** The current animation index. */ ++ private transient int animationIndex; ++ ++ /** The total number of frames.*/ ++ private transient int numFrames; ++ ++ /** The helper that moves the bouncing box. */ ++ private transient Animator animation; ++ ++ /** The helper that listens for property change events. */ ++ private transient PropertyChangeHandler propertyListener; ++ ++ /** The Listener for the model. */ ++ protected ChangeListener changeListener; ++ ++ /** The progressBar for this UI. */ ++ protected JProgressBar progressBar; ++ ++ /** The length of the cell. The cell is the painted part. */ ++ private transient int cellLength; ++ ++ /** The gap between cells. */ ++ private transient int cellSpacing; ++ ++ /** The color of the text when the bar is not over it.*/ ++ private transient Color selectionBackground; ++ ++ /** The color of the text when the bar is over it. */ ++ private transient Color selectionForeground; ++ ++ /** ++ * Creates a new BasicProgressBarUI object. ++ */ ++ public BasicProgressBarUI() ++ { ++ super(); ++ } ++ ++ /** ++ * Creates a new BasicProgressBarUI for the component. ++ * ++ * @param x The JComponent to create the UI for. ++ * ++ * @return A new BasicProgressBarUI. ++ */ ++ public static ComponentUI createUI(JComponent x) ++ { ++ return new BasicProgressBarUI(); ++ } ++ ++ /** ++ * This method returns the length of the bar (from the minimum) ++ * in pixels (or units that the Graphics object draws in) based ++ * on the progressBar's getPercentComplete() value. ++ * ++ * @param b The insets of the progressBar. ++ * @param width The width of the progressBar. ++ * @param height The height of the progressBar. ++ * ++ * @return The length of the bar that should be painted in pixels. ++ */ ++ protected int getAmountFull(Insets b, int width, int height) ++ { ++ double percentDone = progressBar.getPercentComplete(); ++ if (progressBar.getOrientation() == JProgressBar.HORIZONTAL) ++ return (int) (percentDone * (width - b.left - b.right)); ++ else ++ return (int) (percentDone * (height - b.top - b.bottom)); ++ } ++ ++ /** ++ * The current animation index. ++ * ++ * @return The current animation index. ++ */ ++ protected int getAnimationIndex() ++ { ++ return animationIndex; ++ } ++ ++ /** ++ * This method returns the size and position of the bouncing box ++ * for the current animation index. It stores the values in the ++ * given rectangle and returns it. It returns null if no box should ++ * be drawn. ++ * ++ * @param r The bouncing box rectangle. ++ * ++ * @return The bouncing box rectangle. ++ */ ++ protected Rectangle getBox(Rectangle r) ++ { ++ if (!progressBar.isIndeterminate()) ++ return null; ++ //numFrames has to be an even number as defined by spec. ++ int iterations = numFrames / 2 + 1; ++ ++ double boxDependent; ++ double boxIndependent; ++ ++ if (progressBar.getOrientation() == JProgressBar.HORIZONTAL) ++ { ++ Dimension dims = getPreferredInnerHorizontal(); ++ boxDependent = (double) dims.width / iterations; ++ boxIndependent = dims.height; ++ } ++ else ++ { ++ Dimension dims = getPreferredInnerVertical(); ++ boxDependent = (double) dims.height / iterations; ++ boxIndependent = dims.width; ++ } ++ ++ Rectangle vr = new Rectangle(); ++ SwingUtilities.calculateInnerArea(progressBar, vr); ++ ++ int index = getAnimationIndex(); ++ if (animationIndex > (numFrames + 1) / 2) ++ index = numFrames - getAnimationIndex(); ++ ++ if (progressBar.getOrientation() == JProgressBar.HORIZONTAL) ++ { ++ r.x = vr.x + (int) (index * boxDependent); ++ r.y = vr.y; ++ r.width = (int) boxDependent; ++ r.height = (int) boxIndependent; ++ } ++ else ++ { ++ index++; ++ r.x = vr.x; ++ r.y = vr.height - (int) (index * boxDependent) + vr.y; ++ r.width = (int) boxIndependent; ++ r.height = (int) boxDependent; ++ } ++ ++ return r; ++ } ++ ++ /** ++ * This method returns the length of the cells. ++ * ++ * @return The cell length. ++ */ ++ protected int getCellLength() ++ { ++ return cellLength; ++ } ++ ++ /** ++ * This method returns the spacing between cells. ++ * ++ * @return The cell gap. ++ */ ++ protected int getCellSpacing() ++ { ++ return cellSpacing; ++ } ++ ++ /** ++ * This method returns the maximum size of the JComponent. ++ * If it returns null, it is up to the LayoutManager ++ * to give it a size. ++ * ++ * @param c The component to find a maximum size for. ++ * ++ * @return The maximum size. ++ */ ++ public Dimension getMaximumSize(JComponent c) ++ { ++ return getPreferredSize(c); ++ } ++ ++ /** ++ * This method returns the minimum size of the JComponent. ++ * If it returns null, it is up to the LayoutManager to ++ * give it a size. ++ * ++ * @param c The component to find a minimum size for. ++ * ++ * @return The minimum size. ++ */ ++ public Dimension getMinimumSize(JComponent c) ++ { ++ return getPreferredSize(c); ++ } ++ ++ /** ++ * This method returns the preferred size of the inner ++ * rectangle (the bounds without the insets) if the ++ * progressBar is horizontal. ++ * ++ * @return The preferred size of the progressBar minus ++ * insets if it's horizontal. ++ */ ++ protected Dimension getPreferredInnerHorizontal() ++ { ++ Rectangle vr = new Rectangle(); ++ ++ SwingUtilities.calculateInnerArea(progressBar, vr); ++ ++ return new Dimension(vr.width, vr.height); ++ } ++ ++ /** ++ * This method returns the preferred size of the inner ++ * rectangle (the bounds without insets) if the ++ * progressBar is vertical. ++ * ++ * @return The preferred size of the progressBar minus ++ * insets if it's vertical. ++ */ ++ protected Dimension getPreferredInnerVertical() ++ { ++ Rectangle vr = new Rectangle(); ++ ++ SwingUtilities.calculateInnerArea(progressBar, vr); ++ ++ return new Dimension(vr.width, vr.height); ++ } ++ ++ /** ++ * This method returns the preferred size of the ++ * given JComponent. If it returns null, then it ++ * is up to the LayoutManager to give it a size. ++ * ++ * @param c The component to find the preferred size for. ++ * ++ * @return The preferred size of the component. ++ */ ++ public Dimension getPreferredSize(JComponent c) ++ { ++ // The only thing we need to worry about is ++ // the text size. ++ Graphics g = progressBar.getGraphics(); ++ ++ Insets insets = c.getInsets(); ++ ++ FontMetrics fm = g.getFontMetrics(c.getFont()); ++ ++ int textW = fm.stringWidth(progressBar.getString()); ++ int textH = fm.getHeight(); ++ ++ g.dispose(); ++ ++ if (progressBar.getOrientation() == JProgressBar.HORIZONTAL) ++ { ++ if (textH < 20) ++ textH = 20; ++ if (textW < 200) ++ textW = 200; ++ } ++ else ++ { ++ if (textH < 200) ++ textH = 200; ++ if (textW < 20) ++ textW = 20; ++ } ++ textW += insets.left + insets.right; ++ textH += insets.top + insets.bottom; ++ return new Dimension(textW, textH); ++ } ++ ++ /** ++ * This method returns the Color that the text is shown in when the bar is ++ * not over the text. ++ * ++ * @return The color of the text when the bar is not over it. ++ */ ++ protected Color getSelectionBackground() ++ { ++ return selectionBackground; ++ } ++ ++ /** ++ * This method returns the Color that the text is shown in when the bar is ++ * over the text. ++ * ++ * @return The color of the text when the bar is over it. ++ */ ++ protected Color getSelectionForeground() ++ { ++ return selectionForeground; ++ } ++ ++ /** ++ * This method returns the point (the top left of the bounding box) ++ * where the text should be painted. ++ * ++ * @param g The Graphics object to measure FontMetrics with. ++ * @param progressString The string to paint. ++ * @param x The x coordinate of the overall bounds box. ++ * @param y The y coordinate of the overall bounds box. ++ * @param width The width of the overall bounds box. ++ * @param height The height of the overall bounds box. ++ * ++ * @return The top left of the bounding box where text should be painted. ++ */ ++ protected Point getStringPlacement(Graphics g, String progressString, int x, ++ int y, int width, int height) ++ { ++ Rectangle tr = new Rectangle(); ++ Rectangle vr = new Rectangle(x, y, width, height); ++ Rectangle ir = new Rectangle(); ++ ++ Font f = g.getFont(); ++ FontMetrics fm = g.getFontMetrics(f); ++ ++ SwingUtilities.layoutCompoundLabel(progressBar, fm, progressString, null, ++ SwingConstants.CENTER, ++ SwingConstants.CENTER, ++ SwingConstants.CENTER, ++ SwingConstants.CENTER, vr, ir, tr, 0); ++ return new Point(tr.x, tr.y); ++ } ++ ++ /** ++ * This method increments the animation index. ++ */ ++ public void incrementAnimationIndex() ++ { ++ animationIndex++; ++ //numFrames is like string length, it should be named numFrames or something ++ if (animationIndex >= numFrames) ++ animationIndex = 0; ++ progressBar.repaint(); ++ } ++ ++ /** ++ * This method paints the progressBar. It delegates its responsibilities ++ * to paintDeterminate and paintIndeterminate. ++ * ++ * @param g The Graphics object to paint with. ++ * @param c The JComponent to paint. ++ */ ++ public void paint(Graphics g, JComponent c) ++ { ++ if (! progressBar.isIndeterminate()) ++ paintDeterminate(g, c); ++ else ++ paintIndeterminate(g, c); ++ ++ if (progressBar.isBorderPainted()) ++ progressBar.getBorder().paintBorder(progressBar, g, 0, 0, ++ progressBar.getWidth(), ++ progressBar.getHeight()); ++ } ++ ++ /** ++ * This method is called if the painting to be done is ++ * for a determinate progressBar. ++ * ++ * @param g The Graphics object to paint with. ++ * @param c The JComponent to paint. ++ */ ++ protected void paintDeterminate(Graphics g, JComponent c) ++ { ++ Color saved = g.getColor(); ++ int space = getCellSpacing(); ++ int len = getCellLength(); ++ int max = progressBar.getMaximum(); ++ int min = progressBar.getMinimum(); ++ int value = progressBar.getValue(); ++ ++ Rectangle vr = new Rectangle(); ++ SwingUtilities.calculateInnerArea(c, vr); ++ ++ Rectangle or = c.getBounds(); ++ ++ Insets insets = c.getInsets(); ++ ++ int amountFull = getAmountFull(insets, or.width, or.height); ++ ++ g.setColor(c.getBackground()); ++ g.fill3DRect(vr.x, vr.y, vr.width, vr.height, false); ++ ++ if (max != min && len != 0 && value > min) ++ { ++ int iterations = value / (space + len); ++ ++ if (progressBar.getOrientation() == JProgressBar.HORIZONTAL) ++ { ++ double spaceInUnits = space * (double) vr.width / (max - min); ++ double lenInUnits = len * (double) vr.width / (max - min); ++ double currX = vr.x; ++ ++ g.setColor(c.getForeground()); ++ g.fill3DRect(vr.x, vr.y, amountFull, vr.height, true); ++ ++ g.setColor(c.getBackground()); ++ if (spaceInUnits != 0) ++ { ++ for (int i = 0; i < iterations; i++) ++ { ++ currX += lenInUnits; ++ g.fill3DRect((int) currX, vr.y, (int) spaceInUnits, ++ vr.height, true); ++ currX += spaceInUnits; ++ } ++ } ++ } ++ else ++ { ++ double currY = vr.y; ++ double spaceInUnits = space * (double) vr.height / (max - min); ++ double lenInUnits = len * (double) vr.height / (max - min); ++ ++ g.setColor(c.getForeground()); ++ g.fill3DRect(vr.x, vr.y + vr.height - amountFull, vr.width, ++ amountFull, true); ++ ++ g.setColor(c.getBackground()); ++ ++ if (spaceInUnits != 0) ++ { ++ for (int i = 0; i < iterations; i++) ++ { ++ currY -= lenInUnits + spaceInUnits; ++ g.fill3DRect(vr.x, (int) currY, vr.width, ++ (int) spaceInUnits, true); ++ } ++ } ++ } ++ } ++ ++ if (progressBar.isStringPainted() && !progressBar.getString().equals("")) ++ paintString(g, 0, 0, or.width, or.height, amountFull, insets); ++ g.setColor(saved); ++ } ++ ++ /** ++ * This method is called if the painting to be done is for ++ * an indeterminate progressBar. ++ * ++ * @param g The Graphics object to paint with. ++ * @param c The JComponent to paint. ++ */ ++ protected void paintIndeterminate(Graphics g, JComponent c) ++ { ++ //need to paint the box at it's current position. no text is painted since ++ //all we're doing is bouncing back and forth ++ Color saved = g.getColor(); ++ Insets insets = c.getInsets(); ++ ++ Rectangle or = c.getBounds(); ++ Rectangle vr = new Rectangle(); ++ SwingUtilities.calculateInnerArea(c, vr); ++ ++ g.setColor(c.getBackground()); ++ g.fill3DRect(vr.x, vr.y, vr.width, vr.height, false); ++ ++ Rectangle box = new Rectangle(); ++ getBox(box); ++ ++ g.setColor(c.getForeground()); ++ g.fill3DRect(box.x, box.y, box.width, box.height, true); ++ ++ if (progressBar.isStringPainted() && !progressBar.getString().equals("")) ++ paintString(g, 0, 0, or.width, or.height, ++ getAmountFull(insets, or.width, or.height), insets); ++ ++ g.setColor(saved); ++ } ++ ++ /** ++ * This method paints the string for the progressBar. ++ * ++ * @param g The Graphics object to paint with. ++ * @param x The x coordinate of the progressBar. ++ * @param y The y coordinate of the progressBar. ++ * @param width The width of the progressBar. ++ * @param height The height of the progressBar. ++ * @param amountFull The amount of the progressBar that has its bar filled. ++ * @param b The insets of the progressBar. ++ */ ++ protected void paintString(Graphics g, int x, int y, int width, int height, ++ int amountFull, Insets b) ++ { ++ // We want to place in the exact center of the bar. ++ Point placement = getStringPlacement(g, progressBar.getString(), ++ x + b.left, y + b.top, ++ width - b.left - b.right, ++ height - b.top - b.bottom); ++ Color saved = g.getColor(); ++ ++ // FIXME: The Color of the text should use selectionForeground and selectionBackground ++ // but that can't be done right now, so we'll use white in the mean time. ++ g.setColor(Color.WHITE); ++ ++ FontMetrics fm = g.getFontMetrics(progressBar.getFont()); ++ ++ g.drawString(progressBar.getString(), placement.x, ++ placement.y + fm.getAscent()); ++ ++ g.setColor(saved); ++ } ++ ++ /** ++ * This method sets the current animation index. If the index ++ * is greater than the number of frames, it resets to 0. ++ * ++ * @param newValue The new animation index. ++ */ ++ protected void setAnimationIndex(int newValue) ++ { ++ animationIndex = (newValue <= numFrames) ? newValue : 0; ++ progressBar.repaint(); ++ } ++ ++ /** ++ * This method sets the cell length. ++ * ++ * @param cellLen The cell length. ++ */ ++ protected void setCellLength(int cellLen) ++ { ++ cellLength = cellLen; ++ } ++ ++ /** ++ * This method sets the cell spacing. ++ * ++ * @param cellSpace The cell spacing. ++ */ ++ protected void setCellSpacing(int cellSpace) ++ { ++ cellSpacing = cellSpace; ++ } ++ ++ /** ++ * This method starts the animation timer. It is called ++ * when the propertyChangeListener detects that the progressBar ++ * has changed to indeterminate mode. ++ * ++ * @since 1.4 ++ */ ++ protected void startAnimationTimer() ++ { ++ if (animationTimer != null) ++ animationTimer.start(); ++ } ++ ++ /** ++ * This method stops the animation timer. It is called when ++ * the propertyChangeListener detects that the progressBar ++ * has changed to determinate mode. ++ * ++ * @since 1.4 ++ */ ++ protected void stopAnimationTimer() ++ { ++ if (animationTimer != null) ++ animationTimer.stop(); ++ setAnimationIndex(0); ++ } ++ ++ /** ++ * This method changes the settings for the progressBar to ++ * the defaults provided by the current Look and Feel. ++ */ ++ protected void installDefaults() ++ { ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ ++ progressBar.setFont(defaults.getFont("ProgressBar.font")); ++ progressBar.setForeground(defaults.getColor("ProgressBar.foreground")); ++ progressBar.setBackground(defaults.getColor("ProgressBar.background")); ++ progressBar.setBorder(defaults.getBorder("ProgressBar.border")); ++ progressBar.setOpaque(true); ++ ++ selectionForeground = defaults.getColor("ProgressBar.selectionForeground"); ++ selectionBackground = defaults.getColor("ProgressBar.selectionBackground"); ++ cellLength = defaults.getInt("ProgressBar.cellLength"); ++ cellSpacing = defaults.getInt("ProgressBar.cellSpacing"); ++ ++ int repaintInterval = defaults.getInt("ProgressBar.repaintInterval"); ++ int cycleTime = defaults.getInt("ProgressBar.cycleTime"); ++ ++ if (cycleTime % repaintInterval != 0 ++ && (cycleTime / repaintInterval) % 2 != 0) ++ { ++ int div = (cycleTime / repaintInterval) + 2; ++ div /= 2; ++ div *= 2; ++ cycleTime = div * repaintInterval; ++ } ++ setAnimationIndex(0); ++ numFrames = cycleTime / repaintInterval; ++ animationTimer.setDelay(repaintInterval); ++ } ++ ++ /** ++ * The method uninstalls any defaults that were ++ * set by the current Look and Feel. ++ */ ++ protected void uninstallDefaults() ++ { ++ progressBar.setFont(null); ++ progressBar.setForeground(null); ++ progressBar.setBackground(null); ++ ++ selectionForeground = null; ++ selectionBackground = null; ++ } ++ ++ /** ++ * This method registers listeners to all the ++ * components that this UI delegate needs to listen to. ++ */ ++ protected void installListeners() ++ { ++ changeListener = new ChangeHandler(); ++ propertyListener = new PropertyChangeHandler(); ++ animation = new Animator(); ++ ++ progressBar.addChangeListener(changeListener); ++ progressBar.addPropertyChangeListener(propertyListener); ++ animationTimer.addActionListener(animation); ++ } ++ ++ /** ++ * This method unregisters listeners to all the ++ * components that were listened to. ++ */ ++ protected void uninstallListeners() ++ { ++ progressBar.removeChangeListener(changeListener); ++ progressBar.removePropertyChangeListener(propertyListener); ++ animationTimer.removeActionListener(animation); ++ ++ changeListener = null; ++ propertyListener = null; ++ animation = null; ++ } ++ ++ /** ++ * This method installs the UI for the given JComponent. ++ * This includes setting up defaults and listeners as ++ * well as initializing any values or objects that ++ * the UI may need. ++ * ++ * @param c The JComponent that is having this UI installed. ++ */ ++ public void installUI(JComponent c) ++ { ++ super.installUI(c); ++ if (c instanceof JProgressBar) ++ { ++ progressBar = (JProgressBar) c; ++ ++ animationTimer = new Timer(200, null); ++ animationTimer.setRepeats(true); ++ ++ installDefaults(); ++ installListeners(); ++ } ++ } ++ ++ /** ++ * This method removes the UI for the given JComponent. ++ * This includes removing any listeners or defaults ++ * that the installUI may have set up. ++ * ++ * @param c The JComponent that is having this UI uninstalled. ++ */ ++ public void uninstallUI(JComponent c) ++ { ++ super.uninstallUI(c); ++ uninstallListeners(); ++ uninstallDefaults(); ++ ++ animationTimer = null; ++ progressBar = null; ++ } ++} +Index: javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java +diff -N javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java 6 Sep 2004 16:36:06 -0000 +@@ -0,0 +1,101 @@ ++/* BasicRadioButtonMenuItemUI.java ++ Copyright (C) 2002, 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.plaf.basic; ++ ++import java.awt.event.MouseEvent; ++import javax.swing.JComponent; ++import javax.swing.JMenuItem; ++import javax.swing.MenuElement; ++import javax.swing.MenuSelectionManager; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; ++import javax.swing.plaf.ComponentUI; ++ ++ ++/** ++ * UI Delegator for JRadioButtonMenuItem ++ */ ++public class BasicRadioButtonMenuItemUI extends BasicMenuItemUI ++{ ++ /** ++ * Creates a new BasicRadioButtonMenuItemUI object. ++ */ ++ public BasicRadioButtonMenuItemUI() ++ { ++ super(); ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ checkIcon = defaults.getIcon("RadioButtonMenuItem.checkIcon"); ++ } ++ ++ /** ++ * Factory method to create a BasicRadioButtonMenuItemUI for the given {@link ++ * JComponent}, which should be a JRadioButtonMenuItem. ++ * ++ * @param b The {@link JComponent} a UI is being created for. ++ * ++ * @return A BasicRadioButtonMenuItemUI for the {@link JComponent}. ++ */ ++ public static ComponentUI createUI(JComponent b) ++ { ++ return new BasicRadioButtonMenuItemUI(); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @return $returnType$ DOCUMENT ME! ++ */ ++ protected String getPropertyPrefix() ++ { ++ return null; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param item DOCUMENT ME! ++ * @param e DOCUMENT ME! ++ * @param path DOCUMENT ME! ++ * @param manager DOCUMENT ME! ++ */ ++ public void processMouseEvent(JMenuItem item, MouseEvent e, ++ MenuElement[] path, ++ MenuSelectionManager manager) ++ { ++ } ++} +Index: javax/swing/plaf/basic/BasicRadioButtonUI.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/plaf/basic/BasicRadioButtonUI.java,v +retrieving revision 1.4 +diff -u -r1.4 BasicRadioButtonUI.java +--- javax/swing/plaf/basic/BasicRadioButtonUI.java 10 Jan 2004 21:59:30 -0000 1.4 ++++ javax/swing/plaf/basic/BasicRadioButtonUI.java 6 Sep 2004 16:36:06 -0000 +@@ -38,116 +38,42 @@ + + package javax.swing.plaf.basic; + +-import java.awt.Color; +-import java.awt.Dimension; +-import java.awt.Graphics; +-import java.awt.Rectangle; + import javax.swing.AbstractButton; ++import javax.swing.Icon; + import javax.swing.JComponent; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; + import javax.swing.plaf.ComponentUI; + + public class BasicRadioButtonUI extends BasicToggleButtonUI + { +- int large_circle_width = 20; +- int circle_width = large_circle_width - 8; // FIXME: sun == ? +- +- public static ComponentUI createUI(final JComponent c) { +- return new BasicRadioButtonUI(); +- } + ++ protected Icon icon; ++ ++ public static ComponentUI createUI(final JComponent c) { ++ return new BasicRadioButtonUI(); ++ } ++ ++ public BasicRadioButtonUI() ++ { ++ icon = getDefaultIcon(); ++ } ++ ++ public void installUI(final JComponent c) { ++ super.installUI(c); ++ if (c instanceof AbstractButton) ++ { ++ AbstractButton b = (AbstractButton) c; ++ b.setIcon(icon); ++ } ++ } ++ ++ public Icon getDefaultIcon() ++ { ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ return defaults.getIcon("RadioButton.icon"); ++ } + +- public void installUI(final JComponent c) { +- super.installUI(c); +- } +- +- public Dimension getPreferredSize(JComponent c) +- { +- AbstractButton b = (AbstractButton)c; +- Dimension d = BasicGraphicsUtils.getPreferredButtonSize(b, gap); +- +- // and add a little something for the circles: +- +- d.width += large_circle_width; +- d.height = Math.max(large_circle_width, d.height); +- +- //System.out.println("^^^^^^^^^^^^^^^^^^^^^^ BASIC-PREF="+d + ",T="+b.text); +- return d; +- } +- +- protected void paintFocus(Graphics g, +- JComponent c, +- Rectangle vr, +- Rectangle tr, +- Rectangle ir) +- { +- } +- +- protected void paintIcon(Graphics g, +- JComponent c, +- Rectangle iconRect) +- { +- } +- +- protected void paintButtonPressed(Graphics g, +- JComponent b) +- { +- Dimension size = b.getSize(); +- +- paintButtonNormal(g, b); +- +- int x = gap; +- int y = gap; +- +- int diffp = 2; +- int diff = 3; +- +- g.setColor(textColor); +- g.fillArc(x+diffp, y+diffp, +- circle_width-diff, circle_width-diff, +- 0, 360); +- } +- +- protected void paintButtonNormal(Graphics g, +- JComponent c) +- { +- AbstractButton b = (AbstractButton) c; +- +- Dimension size = b.getSize(); +- +- g.setColor(normalBackgroundColor); +- g.fillRect(1,1,size.width-2, size.height-2); +- +- int x = gap; +- int y = gap; +- +- g.setColor(pressedBackgroundColor); +- g.drawArc(x, y, +- circle_width, circle_width, +- 0, 360); +- +- g.setColor(new Color(255,255,255)); +- g.drawArc(x, y, +- circle_width+1, circle_width+1, +- 145, 160); +- } +- +- protected void paintText(Graphics g, +- JComponent c, +- Rectangle textRect, +- String text) +- { +- // AbstractButton b = (AbstractButton) c; +- +- //System.out.println("drawing string: " + text + ", " + c.isEnabled()); +- +- g.setColor(c.isEnabled() ? textColor : disabledTextColor); +- +- BasicGraphicsUtils.drawString(g, +- text, +- 0, +- textRect.x + circle_width + gap, +- textRect.y); +- } + } + + +Index: javax/swing/plaf/basic/BasicRootPaneUI.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicRootPaneUI.java +diff -N javax/swing/plaf/basic/BasicRootPaneUI.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicRootPaneUI.java 6 Sep 2004 16:36:06 -0000 +@@ -0,0 +1,67 @@ ++/* BasicPanelUI.java ++ Copyright (C) 2002, 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++ ++package javax.swing.plaf.basic; ++ ++import java.beans.PropertyChangeEvent; ++import java.beans.PropertyChangeListener; ++import javax.swing.JComponent; ++import javax.swing.UIManager; ++import javax.swing.plaf.ComponentUI; ++import javax.swing.plaf.RootPaneUI; ++ ++ ++public class BasicRootPaneUI extends RootPaneUI ++ implements PropertyChangeListener ++{ ++ public static ComponentUI createUI(JComponent x) ++ { ++ return new BasicRootPaneUI(); ++ } ++ ++ public void installUI(JComponent c) ++ { ++ c.setOpaque(true); ++ c.setBackground(UIManager.getColor("control")); ++ super.installUI(c); ++ } ++ ++ public void propertyChange(PropertyChangeEvent event) ++ { ++ } ++} +Index: javax/swing/plaf/basic/BasicScrollBarUI.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicScrollBarUI.java +diff -N javax/swing/plaf/basic/BasicScrollBarUI.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicScrollBarUI.java 6 Sep 2004 16:36:06 -0000 +@@ -0,0 +1,1405 @@ ++/* BasicScrollBarUI.java ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.plaf.basic; ++ ++import java.awt.Color; ++import java.awt.Component; ++import java.awt.Container; ++import java.awt.Dimension; ++import java.awt.Graphics; ++import java.awt.Insets; ++import java.awt.LayoutManager; ++import java.awt.Point; ++import java.awt.Polygon; ++import java.awt.Rectangle; ++import java.awt.event.ActionEvent; ++import java.awt.event.ActionListener; ++import java.awt.event.MouseAdapter; ++import java.awt.event.MouseEvent; ++import java.awt.event.MouseMotionListener; ++import java.beans.PropertyChangeEvent; ++import java.beans.PropertyChangeListener; ++ ++import javax.swing.BoundedRangeModel; ++import javax.swing.Icon; ++import javax.swing.JButton; ++import javax.swing.JComponent; ++import javax.swing.JScrollBar; ++import javax.swing.SwingConstants; ++import javax.swing.SwingUtilities; ++import javax.swing.Timer; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; ++import javax.swing.event.ChangeEvent; ++import javax.swing.event.ChangeListener; ++import javax.swing.plaf.ComponentUI; ++import javax.swing.plaf.ScrollBarUI; ++ ++ ++/** ++ * The Basic Look and Feel UI delegate for JScrollBar. ++ */ ++public class BasicScrollBarUI extends ScrollBarUI implements LayoutManager, ++ SwingConstants ++{ ++ /** ++ * A helper class that listens to the two JButtons on each end ++ * of the JScrollBar. ++ */ ++ protected class ArrowButtonListener extends MouseAdapter ++ { ++ /** ++ * Move the thumb in the direction specified by the ++ * button's arrow. If this button is held down, then ++ * it should keep moving the thumb. ++ * ++ * @param e The MouseEvent fired by the JButton. ++ */ ++ public void mousePressed(MouseEvent e) ++ { ++ scrollTimer.stop(); ++ scrollListener.setScrollByBlock(false); ++ if (e.getSource() == incrButton) ++ scrollListener.setDirection(POSITIVE_SCROLL); ++ else ++ scrollListener.setDirection(NEGATIVE_SCROLL); ++ scrollTimer.start(); ++ } ++ ++ /** ++ * Stops the thumb when the JButton is released. ++ * ++ * @param e The MouseEvent fired by the JButton. ++ */ ++ public void mouseReleased(MouseEvent e) ++ { ++ scrollTimer.stop(); ++ } ++ } ++ ++ /** ++ * A helper class that listens to the ScrollBar's model ++ * for ChangeEvents. ++ */ ++ protected class ModelListener implements ChangeListener ++ { ++ /** ++ * Called when the model changes. ++ * ++ * @param e The ChangeEvent fired by the model. ++ */ ++ public void stateChanged(ChangeEvent e) ++ { ++ // System.err.println(this + ".stateChanged()"); ++ calculatePreferredSize(); ++ layoutContainer(scrollbar); ++ getThumbBounds(); ++ scrollbar.repaint(); ++ } ++ } ++ ++ /** ++ * A helper class that listens to the ScrollBar's properties. ++ */ ++ public class PropertyChangeHandler implements PropertyChangeListener ++ { ++ /** ++ * Called when one of the ScrollBar's properties change. ++ * ++ * @param e The PropertyChangeEvent fired by the ScrollBar. ++ */ ++ public void propertyChange(PropertyChangeEvent e) ++ { ++ if (e.getPropertyName().equals(JScrollBar.MODEL_CHANGED_PROPERTY)) ++ { ++ ((BoundedRangeModel) e.getOldValue()).removeChangeListener(modelListener); ++ scrollbar.getModel().addChangeListener(modelListener); ++ getThumbBounds(); ++ } ++ else if (e.getPropertyName().equals(JScrollBar.ORIENTATION_CHANGED_PROPERTY)) ++ { ++ incrButton.removeMouseListener(buttonListener); ++ decrButton.removeMouseListener(buttonListener); ++ incrButton = createIncreaseButton(scrollbar.getOrientation()); ++ decrButton = createDecreaseButton(scrollbar.getOrientation()); ++ incrButton.addMouseListener(buttonListener); ++ decrButton.addMouseListener(buttonListener); ++ calculatePreferredSize(); ++ layoutContainer(scrollbar); ++ } ++ layoutContainer(scrollbar); ++ scrollbar.repaint(); ++ } ++ } ++ ++ /** ++ * A helper class that listens for events from ++ * the timer that is used to move the thumb. ++ */ ++ protected class ScrollListener implements ActionListener ++ { ++ /** The direction the thumb moves in. */ ++ private transient int direction; ++ ++ /** Whether movement will be in blocks. */ ++ private transient boolean block; ++ ++ /** ++ * Creates a new ScrollListener object. ++ * The default is scrolling positively with block movement. ++ */ ++ public ScrollListener() ++ { ++ direction = POSITIVE_SCROLL; ++ block = true; ++ } ++ ++ /** ++ * Creates a new ScrollListener object using ++ * the given direction and block. ++ * ++ * @param dir The direction to move in. ++ * @param block Whether movement will be in blocks. ++ */ ++ public ScrollListener(int dir, boolean block) ++ { ++ direction = dir; ++ this.block = block; ++ } ++ ++ /** ++ * Sets the direction to scroll in. ++ * ++ * @param direction The direction to scroll in. ++ */ ++ public void setDirection(int direction) ++ { ++ this.direction = direction; ++ } ++ ++ /** ++ * Sets whether scrolling will be done in blocks. ++ * ++ * @param block Whether scrolling will be in blocks. ++ */ ++ public void setScrollByBlock(boolean block) ++ { ++ this.block = block; ++ } ++ ++ /** ++ * Called every time the timer reaches its interval. ++ * ++ * @param e The ActionEvent fired by the timer. ++ */ ++ public void actionPerformed(ActionEvent e) ++ { ++ if (block) ++ { ++ // Only need to check it if it's block scrolling ++ // We only block scroll if the click occurs ++ // in the track. ++ ++ if (!trackListener.shouldScroll(direction)) ++ { ++ trackHighlight = NO_HIGHLIGHT; ++ scrollbar.repaint(); ++ return; ++ } ++ scrollByBlock(direction); ++ } ++ else ++ scrollByUnit(direction); ++ } ++ } ++ ++ /** ++ * Helper class that listens for movement on the track. ++ */ ++ protected class TrackListener extends MouseAdapter ++ implements MouseMotionListener ++ { ++ /** The current X coordinate of the mouse. */ ++ protected int currentMouseX; ++ ++ /** The current Y coordinate of the mouse. */ ++ protected int currentMouseY; ++ ++ /** The offset between the current mouse cursor and the ++ current value of the scrollbar. */ ++ protected int offset; ++ ++ /** ++ * This method is called when the mouse is being ++ * dragged. ++ * ++ * @param e The MouseEvent given. ++ */ ++ public void mouseDragged(MouseEvent e) ++ { ++ currentMouseX = e.getX(); ++ currentMouseY = e.getY(); ++ if (scrollbar.getValueIsAdjusting()) ++ { ++ int value; ++ if (scrollbar.getOrientation() == SwingConstants.HORIZONTAL) ++ value = valueForXPosition(currentMouseX) - offset; ++ else ++ value = valueForYPosition(currentMouseY) - offset; ++ ++ scrollbar.setValue(value); ++ } ++ } ++ ++ /** ++ * This method is called when the mouse is moved. ++ * ++ * @param e The MouseEvent given. ++ */ ++ public void mouseMoved(MouseEvent e) ++ { ++ // Not interested in where the mouse ++ // is unless it is being dragged. ++ } ++ ++ /** ++ * This method is called when the mouse is ++ * pressed. When it is pressed, the thumb should ++ * move in blocks towards the cursor. ++ * ++ * @param e The MouseEvent given. ++ */ ++ public void mousePressed(MouseEvent e) ++ { ++ currentMouseX = e.getX(); ++ currentMouseY = e.getY(); ++ ++ int value; ++ if (scrollbar.getOrientation() == SwingConstants.HORIZONTAL) ++ value = valueForXPosition(currentMouseX); ++ else ++ value = valueForYPosition(currentMouseY); ++ ++ if (value == scrollbar.getValue()) ++ return; ++ ++ if (!thumbRect.contains(e.getPoint())) ++ { ++ scrollTimer.stop(); ++ scrollListener.setScrollByBlock(true); ++ if (value > scrollbar.getValue()) ++ { ++ trackHighlight = INCREASE_HIGHLIGHT; ++ scrollListener.setDirection(POSITIVE_SCROLL); ++ } ++ else ++ { ++ trackHighlight = DECREASE_HIGHLIGHT; ++ scrollListener.setDirection(NEGATIVE_SCROLL); ++ } ++ scrollTimer.start(); ++ } ++ else ++ { ++ // We'd like to keep track of where the cursor ++ // is inside the thumb. ++ // This works because the scrollbar's value represents ++ // "lower" edge of the thumb. The value at which ++ // the cursor is at must be greater or equal ++ // to that value. ++ scrollbar.setValueIsAdjusting(true); ++ offset = value - scrollbar.getValue(); ++ } ++ scrollbar.repaint(); ++ } ++ ++ /** ++ * This method is called when the mouse is released. ++ * It should stop movement on the thumb ++ * ++ * @param e The MouseEvent given. ++ */ ++ public void mouseReleased(MouseEvent e) ++ { ++ trackHighlight = NO_HIGHLIGHT; ++ scrollTimer.stop(); ++ ++ if (scrollbar.getValueIsAdjusting()) ++ scrollbar.setValueIsAdjusting(false); ++ scrollbar.repaint(); ++ } ++ ++ /** ++ * A helper method that decides whether we should ++ * keep scrolling in the given direction. ++ * ++ * @param direction The direction to check for. ++ * ++ * @return Whether the thumb should keep scrolling. ++ */ ++ public boolean shouldScroll (int direction) ++ { ++ int value; ++ if (scrollbar.getOrientation() == HORIZONTAL) ++ value = valueForXPosition(currentMouseX); ++ else ++ value = valueForYPosition(currentMouseY); ++ ++ if (direction == POSITIVE_SCROLL) ++ return (value > scrollbar.getValue()); ++ else ++ return (value < scrollbar.getValue()); ++ } ++ } ++ ++ /** The listener that listens to the JButtons. */ ++ protected ArrowButtonListener buttonListener; ++ ++ /** The listener that listens to the model. */ ++ protected ModelListener modelListener; ++ ++ /** The listener that listens to the scrollbar for property ++ changes. */ ++ protected PropertyChangeListener propertyChangeListener; ++ ++ /** The listener that listens to the timer. */ ++ protected ScrollListener scrollListener; ++ ++ /** The listener that listens for MouseEvents on the track. */ ++ protected TrackListener trackListener; ++ ++ /** The JButton that decrements the scrollbar's value. */ ++ protected JButton decrButton; ++ ++ /** The JButton that increments the scrollbar's value. */ ++ protected JButton incrButton; ++ ++ /** The dimensions of the maximum thumb size. */ ++ protected static Dimension maximumThumbSize; ++ ++ /** The dimensions of the minimum thumb size. */ ++ protected static Dimension minimumThumbSize; ++ ++ /** The color of the thumb. */ ++ protected Color thumbColor; ++ ++ /** The outer shadow of the thumb. */ ++ protected Color thumbDarkShadowColor; ++ ++ /** The top and left edge color for the thumb. */ ++ protected Color thumbHighlightColor; ++ ++ /** The outer light shadow for the thumb. */ ++ protected Color thumbLightShadowColor; ++ ++ /** The color that is used when the mouse press ++ occurs in the track. */ ++ protected Color trackHighlightColor; ++ ++ /** The color of the track. */ ++ protected Color trackColor; ++ ++ /** The size and position of the track. */ ++ protected Rectangle trackRect; ++ ++ /** The size and position of the thumb. */ ++ protected Rectangle thumbRect; ++ ++ /** Indicates that the decrease highlight should be painted. */ ++ protected static int DECREASE_HIGHLIGHT = 1; ++ ++ /** Indicates that the increase highlight should be painted. */ ++ protected static int INCREASE_HIGHLIGHT = 2; ++ ++ /** Indicates that no highlight should be painted. */ ++ protected static int NO_HIGHLIGHT = 0; ++ ++ /** Indicates that the scrolling direction is positive. */ ++ private static int POSITIVE_SCROLL = 1; ++ ++ /** Indicates that the scrolling direction is negative. */ ++ private static int NEGATIVE_SCROLL = -1; ++ ++ /** The cached preferred size for the scrollbar. */ ++ private transient Dimension preferredSize; ++ ++ /** The current highlight status. */ ++ protected int trackHighlight; ++ ++ /** FIXME: Use this for something (presumably mouseDragged) */ ++ protected boolean isDragging; ++ ++ /** The timer used to move the thumb when the mouse is held. */ ++ protected Timer scrollTimer; ++ ++ /** The scrollbar this UI is acting for. */ ++ protected JScrollBar scrollbar; ++ ++ /** ++ * A helper class that allows us to draw icons for ++ * the JButton. ++ */ ++ private static class arrowIcon implements Icon ++ { ++ /** The polygon that describes the icon. */ ++ private Polygon arrow; ++ ++ /** ++ * Creates a new arrowIcon object. ++ * ++ * @param arrow The polygon that describes the arrow. ++ */ ++ public arrowIcon(Polygon arrow) ++ { ++ this.arrow = arrow; ++ } ++ ++ /** ++ * Returns the height of the icon. ++ * ++ * @return The height of the icon. ++ */ ++ public int getIconHeight() ++ { ++ return 10; ++ } ++ ++ /** ++ * Returns the width of the icon. ++ * ++ * @return The width of the icon. ++ */ ++ public int getIconWidth() ++ { ++ return 10; ++ } ++ ++ /** ++ * Paints the icon. ++ * ++ * @param c The Component to paint for. ++ * @param g The Graphics object to draw with. ++ * @param x The X coordinate to draw at. ++ * @param y The Y coordinate to draw at. ++ */ ++ public void paintIcon(Component c, Graphics g, int x, int y) ++ { ++ g.translate(x, y); ++ ++ Color saved = g.getColor(); ++ ++ g.setColor(Color.BLACK); ++ ++ g.fillPolygon(arrow); ++ ++ g.setColor(saved); ++ g.translate(-x, -y); ++ } ++ } ++ ++ /** The Icon that points up. */ ++ private static Icon upIcon = new arrowIcon(new Polygon(new int[] { 2, 5, 8 }, ++ new int[] { 7, 3, 7 }, ++ 3)); ++ ++ /** The Icon that points down. */ ++ private static Icon downIcon = new arrowIcon(new Polygon(new int[] { 2, 5, 8 }, ++ new int[] { 3, 7, 3 }, ++ 3)); ++ ++ /** The Icon that points left. */ ++ private static Icon leftIcon = new arrowIcon(new Polygon(new int[] { 7, 3, 7 }, ++ new int[] { 2, 5, 8 }, ++ 3)); ++ ++ /** The Icon that points right. */ ++ private static Icon rightIcon = new arrowIcon(new Polygon(new int[] { 3, 7, 3}, ++ new int[] { 2, 5, 8}, ++ 3)); ++ ++ /** ++ * This method adds a component to the layout. ++ * ++ * @param name The name to associate with the component that is added. ++ * @param child The Component to add. ++ */ ++ public void addLayoutComponent(String name, Component child) ++ { ++ // You should not be adding stuff to this component. ++ // The contents are fixed. ++ } ++ ++ /** ++ * This method configures the scrollbar's colors. This can be ++ * done by looking up the standard colors from the Look and Feel defaults. ++ */ ++ protected void configureScrollBarColors() ++ { ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ ++ trackColor = defaults.getColor("ScrollBar.track"); ++ trackHighlightColor = defaults.getColor("ScrollBar.trackHighlight"); ++ thumbColor = defaults.getColor("ScrollBar.thumb"); ++ thumbHighlightColor = defaults.getColor("ScrollBar.thumbHighlight"); ++ thumbDarkShadowColor = defaults.getColor("ScrollBar.thumbDarkShadow"); ++ thumbLightShadowColor = defaults.getColor("ScrollBar.thumbLightShadow"); ++ } ++ ++ /** ++ * This method creates an ArrowButtonListener. ++ * ++ * @return A new ArrowButtonListener. ++ */ ++ protected ArrowButtonListener createArrowButtonListener() ++ { ++ return new ArrowButtonListener(); ++ } ++ ++ /** ++ * This method creates a new JButton with the appropriate ++ * icon for the orientation. ++ * ++ * @param orientation The orientation this JButton uses. ++ * ++ * @return The increase JButton. ++ */ ++ protected JButton createIncreaseButton(int orientation) ++ { ++ if (incrButton == null) ++ { ++ incrButton = new JButton(); ++ incrButton.setMargin(new Insets(0,0,0,0)); ++ incrButton.setHorizontalAlignment(SwingConstants.CENTER); ++ incrButton.setHorizontalTextPosition(SwingConstants.CENTER); ++ incrButton.setVerticalAlignment(SwingConstants.CENTER); ++ incrButton.setVerticalTextPosition(SwingConstants.CENTER); ++ } ++ ++ if (orientation == SwingConstants.HORIZONTAL) ++ incrButton.setIcon(rightIcon); ++ else ++ incrButton.setIcon(downIcon); ++ ++ return incrButton; ++ } ++ ++ /** ++ * This method creates a new JButton with the appropriate ++ * icon for the orientation. ++ * ++ * @param orientation The orientation this JButton uses. ++ * ++ * @return The decrease JButton. ++ */ ++ protected JButton createDecreaseButton(int orientation) ++ { ++ if (decrButton == null) ++ { ++ decrButton = new JButton(); ++ decrButton.setMargin(new Insets(0,0,0,0)); ++ decrButton.setHorizontalAlignment(SwingConstants.CENTER); ++ decrButton.setHorizontalTextPosition(SwingConstants.CENTER); ++ decrButton.setVerticalAlignment(SwingConstants.CENTER); ++ decrButton.setVerticalTextPosition(SwingConstants.CENTER); ++ } ++ ++ if (orientation == SwingConstants.HORIZONTAL) ++ decrButton.setIcon(leftIcon); ++ else ++ decrButton.setIcon(upIcon); ++ ++ return decrButton; ++ } ++ ++ /** ++ * This method creates a new ModelListener. ++ * ++ * @return A new ModelListener. ++ */ ++ protected ModelListener createModelListener() ++ { ++ return new ModelListener(); ++ } ++ ++ /** ++ * This method creates a new PropertyChangeListener. ++ * ++ * @return A new PropertyChangeListener. ++ */ ++ protected PropertyChangeListener createPropertyChangeListener() ++ { ++ return new PropertyChangeHandler(); ++ } ++ ++ /** ++ * This method creates a new ScrollListener. ++ * ++ * @return A new ScrollListener. ++ */ ++ protected ScrollListener createScrollListener() ++ { ++ return new ScrollListener(); ++ } ++ ++ /** ++ * This method creates a new TrackListener. ++ * ++ * @return A new TrackListener. ++ */ ++ protected TrackListener createTrackListener() ++ { ++ return new TrackListener(); ++ } ++ ++ /** ++ * This method returns a new BasicScrollBarUI. ++ * ++ * @param c The JComponent to create a UI for. ++ * ++ * @return A new BasicScrollBarUI. ++ */ ++ public static ComponentUI createUI(JComponent c) ++ { ++ return new BasicScrollBarUI(); ++ } ++ ++ /** ++ * This method returns the maximum size for this JComponent. ++ * ++ * @param c The JComponent to measure the maximum size for. ++ * ++ * @return The maximum size for the component. ++ */ ++ public Dimension getMaximumSize(JComponent c) ++ { ++ return getPreferredSize(c); ++ } ++ ++ /** ++ * This method returns the maximum thumb size. ++ * ++ * @return The maximum thumb size. ++ */ ++ protected Dimension getMaximumThumbSize() ++ { ++ return maximumThumbSize; ++ } ++ ++ /** ++ * This method returns the minimum size for this JComponent. ++ * ++ * @param c The JComponent to measure the minimum size for. ++ * ++ * @return The minimum size for the component. ++ */ ++ public Dimension getMinimumSize(JComponent c) ++ { ++ return getPreferredSize(c); ++ } ++ ++ /** ++ * This method returns the minimum thumb size. ++ * ++ * @return The minimum thumb size. ++ */ ++ protected Dimension getMinimumThumbSize() ++ { ++ return minimumThumbSize; ++ } ++ ++ /** ++ * This method calculates the preferred size since ++ * calling getPreferredSize() returns a cached value. ++ */ ++ private void calculatePreferredSize() ++ { ++ // System.err.println(this + ".calculatePreferredSize()"); ++ ++ int height; ++ int width; ++ height = width = 0; ++ ++ if (scrollbar.getOrientation() == SwingConstants.HORIZONTAL) ++ { ++ width += incrButton.getPreferredSize().getWidth(); ++ width += decrButton.getPreferredSize().getWidth(); ++ ++ width += (scrollbar.getMaximum() - scrollbar.getMinimum()); ++ ++ height = Math.max(incrButton.getPreferredSize().height, ++ decrButton.getPreferredSize().height); ++ height = Math.max(getMinimumThumbSize().height, height); ++ height = Math.max(20, height); ++ height = Math.min(getMaximumThumbSize().height, height); ++ } ++ else ++ { ++ height += incrButton.getPreferredSize().getHeight(); ++ height += decrButton.getPreferredSize().getHeight(); ++ ++ height += (scrollbar.getMaximum() - scrollbar.getMinimum()); ++ ++ width = Math.max(incrButton.getPreferredSize().width, ++ decrButton.getPreferredSize().width); ++ width = Math.max(getMinimumThumbSize().width, width); ++ width = Math.max(20, width); ++ width = Math.min(getMaximumThumbSize().width, width); ++ } ++ ++ Insets insets = scrollbar.getInsets(); ++ ++ height += insets.top + insets.bottom; ++ width += insets.left + insets.right; ++ ++ preferredSize = new Dimension(width, height); ++ } ++ ++ /** ++ * This method returns a cached value of the preferredSize. ++ * The only restrictions are: If the scrollbar is horizontal, the ++ * height should be the maximum of the height of the JButtons and ++ * the minimum width of the thumb. For vertical scrollbars, the ++ * calculation is similar (swap width for height and vice versa). ++ * ++ * @param c The JComponent to measure. ++ * ++ * @return The preferredSize. ++ */ ++ public Dimension getPreferredSize(JComponent c) ++ { ++ calculatePreferredSize(); ++ return preferredSize; ++ } ++ ++ /** ++ * This method returns the thumb's bounds based on the ++ * current value of the scrollbar. This method updates the ++ * cached value and returns that. ++ * ++ * @return The thumb bounds. ++ */ ++ protected Rectangle getThumbBounds() ++ { ++ int max = scrollbar.getMaximum(); ++ int min = scrollbar.getMinimum(); ++ int value = scrollbar.getValue(); ++ int extent = scrollbar.getVisibleAmount(); ++ ++ // System.err.println(this + ".getThumbBounds()"); ++ ++ if (max == min) ++ { ++ thumbRect.x = trackRect.x; ++ thumbRect.y = trackRect.y; ++ if (scrollbar.getOrientation() == HORIZONTAL) ++ { ++ thumbRect.width = getMinimumThumbSize().width; ++ thumbRect.height = trackRect.height; ++ } ++ else ++ { ++ thumbRect.width = trackRect.width; ++ thumbRect.height = getMinimumThumbSize().height; ++ } ++ return thumbRect; ++ } ++ ++ ++ if (scrollbar.getOrientation() == HORIZONTAL) ++ { ++ thumbRect.x = trackRect.x; ++ thumbRect.x += (value - min) * trackRect.width / (max - min); ++ thumbRect.y = trackRect.y; ++ ++ thumbRect.width = extent * trackRect.width / (max - min); ++ thumbRect.height = trackRect.height; ++ } ++ else ++ { ++ thumbRect.x = trackRect.x; ++ thumbRect.y = trackRect.y ++ + value * trackRect.height / (max - min); ++ ++ thumbRect.width = trackRect.width; ++ thumbRect.height = extent * trackRect.height / (max - min); ++ } ++ return thumbRect; ++ } ++ ++ /** ++ * This method calculates the bounds of the track. This method ++ * updates the cached value and returns it. ++ * ++ * @return The track's bounds. ++ */ ++ protected Rectangle getTrackBounds() ++ { ++ SwingUtilities.calculateInnerArea(scrollbar, trackRect); ++ ++ if (scrollbar.getOrientation() == SwingConstants.HORIZONTAL) ++ { ++ trackRect.width -= incrButton.getPreferredSize().getWidth(); ++ trackRect.width -= decrButton.getPreferredSize().getWidth(); ++ ++ trackRect.x += decrButton.getPreferredSize().getWidth(); ++ } ++ else ++ { ++ trackRect.height -= incrButton.getPreferredSize().getHeight(); ++ trackRect.height -= decrButton.getPreferredSize().getHeight(); ++ ++ trackRect.y += incrButton.getPreferredSize().getHeight(); ++ } ++ return trackRect; ++ } ++ ++ /** ++ * This method installs any addition Components that ++ * are a part of or related to this scrollbar. ++ */ ++ protected void installComponents() ++ { ++ incrButton = createIncreaseButton(scrollbar.getOrientation()); ++ scrollbar.add(incrButton); ++ decrButton = createDecreaseButton(scrollbar.getOrientation()); ++ scrollbar.add(decrButton); ++ } ++ ++ /** ++ * This method installs the defaults for the scrollbar specified ++ * by the Basic Look and Feel. ++ */ ++ protected void installDefaults() ++ { ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ ++ scrollbar.setForeground(defaults.getColor("ScrollBar.foreground")); ++ scrollbar.setBackground(defaults.getColor("ScrollBar.background")); ++ scrollbar.setBorder(defaults.getBorder("ScrollBar.border")); ++ scrollbar.setOpaque(true); ++ ++ maximumThumbSize = defaults.getDimension("ScrollBar.maximumThumbSize"); ++ minimumThumbSize = defaults.getDimension("ScrollBar.minimumThumbSize"); ++ } ++ ++ /** ++ * This method installs the keyboard actions for the scrollbar. ++ */ ++ protected void installKeyboardActions() ++ { ++ // FIXME: implement. ++ } ++ ++ /** ++ * This method installs any listeners for the scrollbar. ++ * This method also installs listeners for things such as ++ * the JButtons and the timer. ++ */ ++ protected void installListeners() ++ { ++ scrollListener = createScrollListener(); ++ trackListener = createTrackListener(); ++ buttonListener = createArrowButtonListener(); ++ modelListener = createModelListener(); ++ propertyChangeListener = createPropertyChangeListener(); ++ ++ scrollbar.addMouseMotionListener(trackListener); ++ scrollbar.addMouseListener(trackListener); ++ ++ incrButton.addMouseListener(buttonListener); ++ decrButton.addMouseListener(buttonListener); ++ ++ scrollbar.addPropertyChangeListener(propertyChangeListener); ++ scrollbar.getModel().addChangeListener(modelListener); ++ ++ scrollTimer.addActionListener(scrollListener); ++ } ++ ++ /** ++ * This method installs the UI for the component. ++ * This can include setting up listeners, defaults, ++ * and components. This also includes initializing any data ++ * objects. ++ * ++ * @param c The JComponent to install. ++ */ ++ public void installUI(JComponent c) ++ { ++ super.installUI(c); ++ if (c instanceof JScrollBar) ++ { ++ scrollbar = (JScrollBar) c; ++ ++ trackRect = new Rectangle(); ++ thumbRect = new Rectangle(); ++ ++ scrollTimer = new Timer(200, null); ++ scrollTimer.setRepeats(true); ++ ++ installComponents(); ++ installListeners(); ++ installDefaults(); ++ configureScrollBarColors(); ++ ++ calculatePreferredSize(); ++ layoutContainer(scrollbar); ++ } ++ } ++ ++ /** ++ * This method lays out the scrollbar. ++ * ++ * @param scrollbarContainer The Container to layout. ++ */ ++ public void layoutContainer(Container scrollbarContainer) ++ { ++ if (scrollbarContainer instanceof JScrollBar) ++ { ++ if (scrollbar.getOrientation() == SwingConstants.HORIZONTAL) ++ layoutHScrollbar((JScrollBar) scrollbarContainer); ++ else ++ layoutVScrollbar((JScrollBar) scrollbarContainer); ++ } ++ } ++ ++ /** ++ * This method lays out the scrollbar horizontally. ++ * ++ * @param sb The JScrollBar to layout. ++ */ ++ protected void layoutHScrollbar(JScrollBar sb) ++ { ++ // All we have to do is layout the 2 buttons? ++ Rectangle vr = new Rectangle(); ++ SwingUtilities.calculateInnerArea(scrollbar, vr); ++ ++ // Update the rectangles. ++ getTrackBounds(); ++ getThumbBounds(); ++ ++ Dimension incrDims = incrButton.getPreferredSize(); ++ Dimension decrDims = decrButton.getPreferredSize(); ++ ++ decrButton.setBounds(vr.x, vr.y, decrDims.width, trackRect.height); ++ incrButton.setBounds(trackRect.x + trackRect.width, vr.y, incrDims.width, ++ trackRect.height); ++ } ++ ++ /** ++ * This method lays out the scrollbar vertically. ++ * ++ * @param sb The JScrollBar to layout. ++ */ ++ protected void layoutVScrollbar(JScrollBar sb) ++ { ++ Rectangle vr = new Rectangle(); ++ SwingUtilities.calculateInnerArea(scrollbar, vr); ++ ++ // Update rectangles ++ getTrackBounds(); ++ getThumbBounds(); ++ ++ Dimension incrDims = incrButton.getPreferredSize(); ++ Dimension decrDims = decrButton.getPreferredSize(); ++ ++ decrButton.setBounds(vr.x, vr.y, trackRect.width, decrDims.height); ++ incrButton.setBounds(vr.x, trackRect.y + trackRect.height, ++ trackRect.width, incrDims.height); ++ } ++ ++ /** ++ * This method returns the minimum size required for the layout. ++ * ++ * @param scrollbarContainer The Container that is laid out. ++ * ++ * @return The minimum size. ++ */ ++ public Dimension minimumLayoutSize(Container scrollbarContainer) ++ { ++ return preferredLayoutSize(scrollbarContainer); ++ } ++ ++ /** ++ * This method is called when the component is painted. ++ * ++ * @param g The Graphics object to paint with. ++ * @param c The JComponent to paint. ++ */ ++ public void paint(Graphics g, JComponent c) ++ { ++ layoutContainer(scrollbar); ++ paintTrack(g, c, getTrackBounds()); ++ paintThumb(g, c, getThumbBounds()); ++ ++ if (trackHighlight == INCREASE_HIGHLIGHT) ++ paintIncreaseHighlight(g); ++ else if (trackHighlight == DECREASE_HIGHLIGHT) ++ paintDecreaseHighlight(g); ++ } ++ ++ /** ++ * This method is called when repainting and the mouse is ++ * pressed in the track. It paints the track below the thumb ++ * with the trackHighlight color. ++ * ++ * @param g The Graphics object to paint with. ++ */ ++ protected void paintDecreaseHighlight(Graphics g) ++ { ++ Color saved = g.getColor(); ++ ++ g.setColor(trackHighlightColor); ++ if (scrollbar.getOrientation() == HORIZONTAL) ++ g.fillRect(trackRect.x, trackRect.y, thumbRect.x - trackRect.x, ++ trackRect.height); ++ else ++ g.fillRect(trackRect.x, trackRect.y, trackRect.width, ++ thumbRect.y - trackRect.y); ++ g.setColor(saved); ++ } ++ ++ /** ++ * This method is called when repainting and the mouse is ++ * pressed in the track. It paints the track above the thumb ++ * with the trackHighlight color. ++ * ++ * @param g The Graphics objet to paint with. ++ */ ++ protected void paintIncreaseHighlight(Graphics g) ++ { ++ Color saved = g.getColor(); ++ ++ g.setColor(trackHighlightColor); ++ if (scrollbar.getOrientation() == HORIZONTAL) ++ g.fillRect(thumbRect.x + thumbRect.width, trackRect.y, ++ trackRect.x + trackRect.width - thumbRect.x - thumbRect.width, ++ trackRect.height); ++ else ++ g.fillRect(trackRect.x, thumbRect.y + thumbRect.height, ++ trackRect.width, ++ trackRect.y + trackRect.height - thumbRect.y - ++ thumbRect.height); ++ g.setColor(saved); ++ } ++ ++ /** ++ * This method paints the thumb. ++ * ++ * @param g The Graphics object to paint with. ++ * @param c The Component that is being painted. ++ * @param thumbBounds The thumb bounds. ++ */ ++ protected void paintThumb(Graphics g, JComponent c, Rectangle thumbBounds) ++ { ++ Color saved = g.getColor(); ++ Point x; ++ Point y; ++ Point z; ++ Polygon lines; ++ ++ g.setColor(thumbHighlightColor); ++ x = new Point(thumbBounds.x + 1, thumbBounds.y + 1); ++ y = new Point(x); ++ y.translate(thumbBounds.width - 2, 0); ++ z = new Point(x); ++ z.translate(0, thumbBounds.height - 2); ++ ++ lines = new Polygon(new int[] { x.x, y.x, z.x }, ++ new int[] { x.y, y.y, z.y }, 3); ++ ++ g.drawPolygon(lines); ++ ++ g.setColor(thumbLightShadowColor); ++ x = new Point(thumbBounds.x + thumbBounds.width - 1, ++ thumbBounds.y + thumbBounds.height - 1); ++ y = new Point(x); ++ y.translate(-(thumbBounds.width - 2), 0); ++ z = new Point(x); ++ z.translate(0, -(thumbBounds.height - 2)); ++ ++ lines = new Polygon(new int[] { x.x, y.x, z.x }, ++ new int[] { x.y, y.y, z.y }, 3); ++ g.drawPolygon(lines); ++ ++ g.setColor(thumbDarkShadowColor); ++ x = new Point(thumbBounds.x + thumbBounds.width, ++ thumbBounds.y + thumbBounds.height); ++ y = new Point(x); ++ y.translate(-thumbBounds.width, 0); ++ z = new Point(x); ++ z.translate(0, -thumbBounds.height); ++ ++ lines = new Polygon(new int[] { x.x, y.x, z.x }, ++ new int[] { x.y, y.y, z.y }, 3); ++ g.drawPolygon(lines); ++ ++ g.setColor(thumbColor); ++ g.fillRect(thumbBounds.x, thumbBounds.y, thumbBounds.width, ++ thumbBounds.height); ++ ++ g.setColor(saved); ++ } ++ ++ /** ++ * This method paints the track. ++ * ++ * @param g The Graphics object to paint with. ++ * @param c The JComponent being painted. ++ * @param trackBounds The track's bounds. ++ */ ++ protected void paintTrack(Graphics g, JComponent c, Rectangle trackBounds) ++ { ++ Color saved = g.getColor(); ++ g.setColor(trackColor); ++ g.fill3DRect(trackBounds.x, trackBounds.y, trackBounds.width, ++ trackBounds.height, false); ++ g.setColor(saved); ++ } ++ ++ /** ++ * This method returns the preferred size for the layout. ++ * ++ * @param scrollbarContainer The Container to find a size for. ++ * ++ * @return The preferred size for the layout. ++ */ ++ public Dimension preferredLayoutSize(Container scrollbarContainer) ++ { ++ if (scrollbarContainer instanceof JComponent) ++ return getPreferredSize((JComponent) scrollbarContainer); ++ else ++ return null; ++ } ++ ++ /** ++ * This method removes a child component from the layout. ++ * ++ * @param child The child to remove. ++ */ ++ public void removeLayoutComponent(Component child) ++ { ++ // You should not be removing stuff from this component. ++ } ++ ++ /** ++ * The method scrolls the thumb by a block in the ++ * direction specified. ++ * ++ * @param direction The direction to scroll. ++ */ ++ protected void scrollByBlock(int direction) ++ { ++ scrollbar.setValue(scrollbar.getValue() + scrollbar.getBlockIncrement(direction)); ++ } ++ ++ /** ++ * The method scrolls the thumb by a unit in the ++ * direction specified. ++ * ++ * @param direction The direction to scroll. ++ */ ++ protected void scrollByUnit(int direction) ++ { ++ scrollbar.setValue(scrollbar.getValue() + scrollbar.getUnitIncrement(direction)); ++ } ++ ++ /** ++ * This method sets the thumb's bounds. ++ * ++ * @param x The X position of the thumb. ++ * @param y The Y position of the thumb. ++ * @param width The width of the thumb. ++ * @param height The height of the thumb. ++ */ ++ protected void setThumbBounds(int x, int y, int width, int height) ++ { ++ thumbRect.x = x; ++ thumbRect.y = y; ++ thumbRect.width = width; ++ thumbRect.height = height; ++ } ++ ++ /** ++ * This method uninstalls any components that ++ * are a part of or related to this scrollbar. ++ */ ++ protected void uninstallComponents() ++ { ++ scrollbar.remove(incrButton); ++ scrollbar.remove(decrButton); ++ incrButton = null; ++ decrButton = null; ++ } ++ ++ /** ++ * This method uninstalls any defaults that this ++ * scrollbar acquired from the Basic Look and Feel defaults. ++ */ ++ protected void uninstallDefaults() ++ { ++ scrollbar.setForeground(null); ++ scrollbar.setBackground(null); ++ scrollbar.setBorder(null); ++ } ++ ++ /** ++ * This method uninstalls any keyboard ++ * actions this scrollbar acquired during install. ++ */ ++ protected void uninstallKeyboardActions() ++ { ++ // FIXME: implement. ++ } ++ ++ /** ++ * This method uninstalls any listeners that ++ * were registered during install. ++ */ ++ protected void uninstallListeners() ++ { ++ scrollTimer.removeActionListener(scrollListener); ++ ++ scrollbar.getModel().removeChangeListener(modelListener); ++ scrollbar.removePropertyChangeListener(propertyChangeListener); ++ ++ decrButton.removeMouseListener(buttonListener); ++ incrButton.removeMouseListener(buttonListener); ++ ++ scrollbar.removeMouseListener(trackListener); ++ scrollbar.removeMouseMotionListener(trackListener); ++ ++ propertyChangeListener = null; ++ modelListener = null; ++ buttonListener = null; ++ trackListener = null; ++ scrollListener = null; ++ } ++ ++ /** ++ * This method uninstalls the UI. This includes ++ * removing any defaults, listeners, and components ++ * that this UI may have initialized. It also nulls ++ * any instance data. ++ * ++ * @param c The Component to uninstall for. ++ */ ++ public void uninstallUI(JComponent c) ++ { ++ uninstallDefaults(); ++ uninstallListeners(); ++ uninstallComponents(); ++ ++ scrollTimer = null; ++ ++ thumbRect = null; ++ trackRect = null; ++ ++ trackColor = null; ++ trackHighlightColor = null; ++ thumbColor = null; ++ thumbHighlightColor = null; ++ thumbDarkShadowColor = null; ++ thumbLightShadowColor = null; ++ ++ scrollbar = null; ++ } ++ ++ /** ++ * This method returns the value in the scrollbar's range given the y ++ * coordinate. If the value is out of range, it will return the closest ++ * legal value. ++ * ++ * @param yPos The y coordinate to calculate a value for. ++ * ++ * @return The value for the y coordinate. ++ */ ++ private int valueForYPosition(int yPos) ++ { ++ int min = scrollbar.getMinimum(); ++ int max = scrollbar.getMaximum(); ++ int len = trackRect.height; ++ ++ int value; ++ ++ // If the length is 0, you shouldn't be able to even see where the thumb is. ++ // This really shouldn't ever happen, but just in case, we'll return the middle. ++ if (len == 0) ++ return ((max - min) / 2); ++ ++ value = ((yPos - trackRect.y) * (max - min) / len + min); ++ ++ // If this isn't a legal value, then we'll have to move to one now. ++ if (value > max) ++ value = max; ++ else if (value < min) ++ value = min; ++ return value; ++ } ++ ++ /** ++ * This method returns the value in the scrollbar's range given the x ++ * coordinate. If the value is out of range, it will return the closest ++ * legal value. ++ * ++ * @param xPos The x coordinate to calculate a value for. ++ * ++ * @return The value for the x coordinate. ++ */ ++ private int valueForXPosition(int xPos) ++ { ++ int min = scrollbar.getMinimum(); ++ int max = scrollbar.getMaximum(); ++ int len = trackRect.width; ++ ++ int value; ++ ++ // If the length is 0, you shouldn't be able to even see where the slider is. ++ // This really shouldn't ever happen, but just in case, we'll return the middle. ++ if (len == 0) ++ return ((max - min) / 2); ++ ++ value = ((xPos - trackRect.x) * (max - min) / len + min); ++ ++ // If this isn't a legal value, then we'll have to move to one now. ++ if (value > max) ++ value = max; ++ else if (value < min) ++ value = min; ++ return value; ++ } ++} +Index: javax/swing/plaf/basic/BasicScrollPaneUI.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/plaf/basic/BasicScrollPaneUI.java,v +retrieving revision 1.3 +diff -u -r1.3 BasicScrollPaneUI.java +--- javax/swing/plaf/basic/BasicScrollPaneUI.java 10 Jan 2004 21:59:30 -0000 1.3 ++++ javax/swing/plaf/basic/BasicScrollPaneUI.java 6 Sep 2004 16:36:06 -0000 +@@ -40,54 +40,75 @@ + + import java.awt.Dimension; + import java.awt.Graphics; ++ + import javax.swing.JComponent; + import javax.swing.JScrollPane; ++import javax.swing.ScrollPaneConstants; ++import javax.swing.ScrollPaneLayout; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; + import javax.swing.plaf.ComponentUI; + import javax.swing.plaf.ScrollPaneUI; + + public class BasicScrollPaneUI extends ScrollPaneUI ++ implements ScrollPaneConstants + { +- int min_w = 50; +- int min_h = 50; + + public static ComponentUI createUI(final JComponent c) + { + return new BasicScrollPaneUI(); + } + ++ protected void installDefaults(JScrollPane p) ++ { ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ p.setForeground(defaults.getColor("ScrollPane.foreground")); ++ p.setBackground(defaults.getColor("ScrollPane.background")); ++ p.setFont(defaults.getFont("ScrollPane.font")); ++ p.setBorder(defaults.getBorder("ScrollPane.border")); ++ p.setOpaque(true); ++ } ++ ++ protected void uninstallDefaults(JScrollPane p) ++ { ++ p.setForeground(null); ++ p.setBackground(null); ++ p.setFont(null); ++ p.setBorder(null); ++ } + + public void installUI(final JComponent c) + { + super.installUI(c); ++ this.installDefaults((JScrollPane)c); ++ } ++ ++ public void uninstallUI(final JComponent c) ++ { ++ super.uninstallUI(c); ++ this.uninstallDefaults((JScrollPane)c); + } + ++ ++ public Dimension getMinimumSize(JComponent c) ++ { ++ JScrollPane p = (JScrollPane ) c; ++ ScrollPaneLayout sl = (ScrollPaneLayout) p.getLayout(); ++ return sl.minimumLayoutSize(c); ++ } + + public Dimension getPreferredSize(JComponent c) + { + JScrollPane p = (JScrollPane ) c; +- +- Dimension d = new Dimension(min_w, +- min_h); +- +- Dimension a = p.getViewport().getPreferredSize(); +- +- if (a != null) +- { +- d.width = Math.max(d.width, a.width); +- d.height = Math.max(d.height, a.height); +- } +- +- +- System.out.println("BasicScrollPaneUI->preff->"+d); +- return d; ++ ScrollPaneLayout sl = (ScrollPaneLayout) p.getLayout(); ++ return sl.preferredLayoutSize(c); + } + ++ + public void paint(Graphics g, JComponent c) + { +- System.out.println("BasicScrollPaneUI->paint()->"+c); +- +- JScrollPane p = (JScrollPane ) c; +- p.getViewport().paint(g); ++ // do nothing; the normal painting-of-children algorithm, along with ++ // ScrollPaneLayout, does all the relevant work. + } + } + +Index: javax/swing/plaf/basic/BasicSeparatorUI.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicSeparatorUI.java +diff -N javax/swing/plaf/basic/BasicSeparatorUI.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicSeparatorUI.java 6 Sep 2004 16:36:06 -0000 +@@ -0,0 +1,267 @@ ++/* BasicSeparatorUI.java ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.plaf.basic; ++ ++import java.awt.Dimension; ++import java.awt.Color; ++import java.awt.Rectangle; ++import java.awt.Graphics; ++import java.awt.Insets; ++import javax.swing.plaf.ComponentUI; ++import javax.swing.plaf.SeparatorUI; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; ++import javax.swing.JComponent; ++import javax.swing.JSeparator; ++import javax.swing.SwingUtilities; ++ ++/** ++ * The Basic Look and Feel UI delegate for JSeparator. ++ */ ++public class BasicSeparatorUI extends SeparatorUI ++{ ++ /** The shadow color. */ ++ protected Color shadow; ++ ++ /** The highlight color. */ ++ protected Color highlight; ++ ++ /** ++ * Creates a new UI delegate for the given JComponent. ++ * ++ * @param c The JComponent to create a delegate for. ++ * ++ * @return A new BasicSeparatorUI. ++ */ ++ public static ComponentUI createUI(JComponent c) ++ { ++ return new BasicSeparatorUI(); ++ } ++ ++ /** ++ * This method installs the UI for the given JComponent. ++ * This can include installing defaults, listeners, and ++ * initializing any instance data. ++ * ++ * @param c The JComponent that is having this UI installed. ++ */ ++ public void installUI(JComponent c) ++ { ++ super.installUI(c); ++ ++ if (c instanceof JSeparator) ++ { ++ JSeparator s = (JSeparator) c; ++ ++ installDefaults(s); ++ installListeners(s); ++ } ++ } ++ ++ /** ++ * Uninstalls the UI for the given JComponent. This ++ * method reverses what was done when installing ++ * the UI on the JComponent. ++ * ++ * @param c The JComponent that is having this UI uninstalled. ++ */ ++ public void uninstallUI(JComponent c) ++ { ++ if (c instanceof JSeparator) ++ { ++ JSeparator s = (JSeparator) c; ++ ++ uninstallListeners(s); ++ uninstallDefaults(s); ++ } ++ } ++ ++ /** ++ * This method installs the defaults that are given by ++ * the Basic Look and Feel. ++ * ++ * @param s The JSeparator that is being installed. ++ */ ++ protected void installDefaults(JSeparator s) ++ { ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ ++ shadow = defaults.getColor("Separator.shadow"); ++ highlight = defaults.getColor("Separator.highlight"); ++ s.setOpaque(true); ++ } ++ ++ /** ++ * This method removes the defaults that were given ++ * by the Basic Look and Feel. ++ * ++ * @param s The JSeparator that is being uninstalled. ++ */ ++ protected void uninstallDefaults(JSeparator s) ++ { ++ shadow = null; ++ highlight = null; ++ } ++ ++ /** ++ * This method installs any listeners that need ++ * to be attached to the JSeparator or any of its ++ * components. ++ * ++ * @param s The JSeparator that is being installed. ++ */ ++ protected void installListeners(JSeparator s) ++ { ++ // Separators don't receive events. ++ } ++ ++ /** ++ * This method uninstalls any listeners that ++ * were installed during the install UI process. ++ * ++ * @param s The JSeparator that is being uninstalled. ++ */ ++ protected void uninstallListeners(JSeparator s) ++ { ++ // Separators don't receive events. ++ } ++ ++ /** ++ * The separator is made of two lines. The top line will be ++ * the highlight color (or left line if it's vertical). The bottom ++ * or right line will be the shadow color. The two lines will ++ * be centered inside the bounds box. If the separator is horizontal, ++ * then it will be vertically centered, or if it's vertical, it will ++ * be horizontally centered. ++ * ++ * @param g The Graphics object to paint with ++ * @param c The JComponent to paint. ++ */ ++ public void paint(Graphics g, JComponent c) ++ { ++ Rectangle r = new Rectangle(); ++ SwingUtilities.calculateInnerArea(c, r); ++ Color saved = g.getColor(); ++ ++ int midAB = r.width / 2 + r.x; ++ int midAD = r.height / 2 + r.y; ++ ++ JSeparator s; ++ if (c instanceof JSeparator) ++ s = (JSeparator) c; ++ else ++ return; ++ ++ if (s.getOrientation() == JSeparator.HORIZONTAL) ++ { ++ g.setColor(highlight); ++ g.drawLine(r.x, midAD, r.x + r.width, midAD); ++ ++ g.setColor(shadow); ++ g.drawLine(r.x, midAD + 1, r.x + r.width, midAD + 1); ++ } ++ else ++ { ++ g.setColor(highlight); ++ g.drawLine(midAB, r.y, midAB, r.y + r.height); ++ ++ g.setColor(shadow); ++ g.drawLine(midAB + 1, r.y, midAB + 1, r.y + r.height); ++ } ++ } ++ ++ /** ++ * This method returns the preferred size of the ++ * JComponent. ++ * ++ * @param c The JComponent to measure. ++ * ++ * @return The preferred size. ++ */ ++ public Dimension getPreferredSize(JComponent c) ++ { ++ Dimension dims = new Dimension(0, 0); ++ Insets insets = c.getInsets(); ++ ++ if (c instanceof JSeparator) ++ { ++ JSeparator s = (JSeparator) c; ++ ++ if (s.getOrientation() == JSeparator.HORIZONTAL) ++ { ++ dims.height = 2; ++ dims.width = 40; ++ } ++ else ++ { ++ dims.width = 2; ++ dims.height = 40; ++ } ++ } ++ dims.width += insets.left + insets.right; ++ dims.height += insets.top + insets.bottom; ++ ++ return dims; ++ } ++ ++ /** ++ * This method returns the minimum size of the ++ * JComponent. ++ * ++ * @param c The JComponent to measure. ++ * ++ * @return The minimum size. ++ */ ++ public Dimension getMinimumSize(JComponent c) ++ { ++ return getPreferredSize(c); ++ } ++ ++ /** ++ * This method returns the maximum size of the ++ * JComponent. ++ * ++ * @param c The JComponent to measure. ++ * ++ * @return The maximum size. ++ */ ++ public Dimension getMaximumSize(JComponent c) ++ { ++ return getPreferredSize(c); ++ } ++} +Index: javax/swing/plaf/basic/BasicSliderUI.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicSliderUI.java +diff -N javax/swing/plaf/basic/BasicSliderUI.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicSliderUI.java 6 Sep 2004 16:36:07 -0000 +@@ -0,0 +1,2217 @@ ++/* BasicSliderUI.java ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.plaf.basic; ++ ++import java.awt.Color; ++import java.awt.Component; ++import java.awt.ComponentOrientation; ++import java.awt.Dimension; ++import java.awt.Graphics; ++import java.awt.Insets; ++import java.awt.Point; ++import java.awt.Polygon; ++import java.awt.Rectangle; ++import java.awt.event.ActionEvent; ++import java.awt.event.ActionListener; ++import java.awt.event.ComponentAdapter; ++import java.awt.event.ComponentEvent; ++import java.awt.event.ComponentListener; ++import java.awt.event.FocusEvent; ++import java.awt.event.FocusListener; ++import java.awt.event.MouseEvent; ++import java.beans.PropertyChangeEvent; ++import java.beans.PropertyChangeListener; ++import java.util.Dictionary; ++import java.util.Enumeration; ++import javax.swing.BoundedRangeModel; ++import javax.swing.JComponent; ++import javax.swing.JLabel; ++import javax.swing.JSlider; ++import javax.swing.SwingUtilities; ++import javax.swing.Timer; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; ++import javax.swing.event.ChangeEvent; ++import javax.swing.event.ChangeListener; ++import javax.swing.event.MouseInputAdapter; ++import javax.swing.plaf.ComponentUI; ++import javax.swing.plaf.SliderUI; ++ ++ ++/** ++ *

    ++ * BasicSliderUI.java This is the UI delegate in the Basic look and feel that ++ * paints JSliders. ++ *

    ++ * ++ *

    ++ * The UI delegate keeps track of 6 rectangles that place the various parts of ++ * the JSlider inside the component. ++ *

    ++ * ++ *

    ++ * The rectangles are organized as follows: ++ *

    ++ *
    ++ *     +-------------------------------------------------------+ <-- focusRect
    ++ *     |                                                       |
    ++ *     |  +==+-------------------+==+--------------------+==+<------ contentRect
    ++ *     |  |  |                   |  |<---thumbRect       |  |  |
    ++ *     |  |  |    TRACK          |  |                    |<--------- trackRect
    ++ *     |  |  +-------------------+==+--------------------+  |  |
    ++ *     |  |  |                                           |  |  |
    ++ *     |  |  |          TICKS GO HERE                    |<-------- tickRect
    ++ *     |  |  |                                           |  |  |
    ++ *     |  +==+-------------------------------------------+==+  |
    ++ *     |  |  |                                           |  |  |
    ++ *     |  |  |                                           |  |<----- labelRect
    ++ *     |  |  |                 LABELS GO HERE            |  |  |
    ++ *     |  |  |                                           |  |  |
    ++ *     |  |  |                                           |  |  |
    ++ *     |  |  |                                           |  |  |
    ++ *     |  |  |                                           |  |  |
    ++ *     |  |                                              |  |  |
    ++ * 
    ++ * ++ *

    ++ * The space between the contentRect and the focusRect are the FocusInsets. ++ *

    ++ * ++ *

    ++ * The space between the focusRect and the component bounds is the insetCache ++ * which are the component's insets. ++ *

    ++ * ++ *

    ++ * The top of the thumb is the top of the contentRect. The trackRect has to be ++ * as tall as the thumb. ++ *

    ++ * ++ *

    ++ * The trackRect and tickRect do not start from the left edge of the ++ * focusRect. They are trackBuffer away from each side of the focusRect. This ++ * is so that the thumb has room to move. ++ *

    ++ * ++ *

    ++ * The labelRect does start right against the contentRect's left and right ++ * edges and it gets all remaining space. ++ *

    ++ */ ++public class BasicSliderUI extends SliderUI ++{ ++ /** ++ * Helper class that listens to the {@link JSlider}'s model for changes. ++ */ ++ protected class ChangeHandler implements ChangeListener ++ { ++ /** ++ * Called when the slider's model has been altered. The UI delegate should ++ * recalculate any rectangles that are dependent on the model for their ++ * positions and repaint. ++ * ++ * @param e A static {@link ChangeEvent} passed from the model. ++ */ ++ public void stateChanged(ChangeEvent e) ++ { ++ // Maximum, minimum, and extent values will be taken ++ // care of automatically when the slider is repainted. ++ // Only thing that needs recalculation is the thumb. ++ calculateThumbLocation(); ++ slider.repaint(); ++ } ++ } ++ ++ /** ++ * Helper class that listens for resize events. ++ */ ++ protected class ComponentHandler extends ComponentAdapter ++ { ++ /** ++ * Called when the size of the component changes. The UI delegate should ++ * recalculate any rectangles that are dependent on the model for their ++ * positions and repaint. ++ * ++ * @param e A {@link ComponentEvent}. ++ */ ++ public void componentResized(ComponentEvent e) ++ { ++ calculateGeometry(); ++ ++ slider.revalidate(); ++ slider.repaint(); ++ } ++ } ++ ++ /** ++ * Helper class that listens for focus events. ++ */ ++ protected class FocusHandler implements FocusListener ++ { ++ /** ++ * Called when the {@link JSlider} has gained focus. It should repaint ++ * the slider with the focus drawn. ++ * ++ * @param e A {@link FocusEvent}. ++ */ ++ public void focusGained(FocusEvent e) ++ { ++ // FIXME: implement. ++ } ++ ++ /** ++ * Called when the {@link JSlider} has lost focus. It should repaint the ++ * slider without the focus drawn. ++ * ++ * @param e A {@link FocusEvent}. ++ */ ++ public void focusLost(FocusEvent e) ++ { ++ // FIXME: implement. ++ } ++ } ++ ++ /** ++ * Helper class that listens for changes to the properties of the {@link ++ * JSlider}. ++ */ ++ protected class PropertyChangeHandler implements PropertyChangeListener ++ { ++ /** ++ * Called when one of the properties change. The UI should recalculate any ++ * rectangles if necessary and repaint. ++ * ++ * @param e A {@link PropertyChangeEvent}. ++ */ ++ public void propertyChange(PropertyChangeEvent e) ++ { ++ // Check for orientation changes. ++ if (e.getPropertyName().equals(JSlider.ORIENTATION_CHANGED_PROPERTY)) ++ recalculateIfOrientationChanged(); ++ else if (e.getPropertyName().equals(JSlider.MODEL_CHANGED_PROPERTY)) ++ { ++ BoundedRangeModel oldModel = (BoundedRangeModel) e.getOldValue(); ++ oldModel.removeChangeListener(changeListener); ++ slider.getModel().addChangeListener(changeListener); ++ calculateThumbLocation(); ++ } ++ ++ // elif the componentOrientation changes (this is a bound property, ++ // just undocumented) we change leftToRightCache. In Sun's ++ // implementation, the LTR cache changes on a repaint. This is strange ++ // since there is no need to do so. We could events here and ++ // update the cache. ++ // elif the border/insets change, we recalculateInsets. ++ slider.repaint(); ++ } ++ } ++ ++ /** ++ * Helper class that listens to our swing timer. This class is responsible ++ * for listening to the timer and moving the thumb in the proper direction ++ * every interval. ++ */ ++ protected class ScrollListener implements ActionListener ++ { ++ /** Indicates which direction the thumb should scroll. */ ++ private transient int direction; ++ ++ /** Indicates whether we should scroll in blocks or in units. */ ++ private transient boolean block; ++ ++ /** ++ * Creates a new ScrollListener object. ++ */ ++ public ScrollListener() ++ { ++ direction = POSITIVE_SCROLL; ++ block = false; ++ } ++ ++ /** ++ * Creates a new ScrollListener object. ++ * ++ * @param dir The direction to scroll in. ++ * @param block If movement will be in blocks. ++ */ ++ public ScrollListener(int dir, boolean block) ++ { ++ direction = dir; ++ this.block = block; ++ } ++ ++ /** ++ * Called every time the swing timer reaches its interval. If the thumb ++ * needs to move, then this method will move the thumb one block or unit ++ * in the direction desired. Otherwise, the timer can be stopped. ++ * ++ * @param e An {@link ActionEvent}. ++ */ ++ public void actionPerformed(ActionEvent e) ++ { ++ if (! trackListener.shouldScroll(direction)) ++ { ++ scrollTimer.stop(); ++ return; ++ } ++ ++ if (block) ++ scrollByBlock(direction); ++ else ++ scrollByUnit(direction); ++ } ++ ++ /** ++ * Sets the direction to scroll in. ++ * ++ * @param direction The direction to scroll in. ++ */ ++ public void setDirection(int direction) ++ { ++ this.direction = direction; ++ } ++ ++ /** ++ * Sets whether movement will be in blocks. ++ * ++ * @param block If movement will be in blocks. ++ */ ++ public void setScrollByBlock(boolean block) ++ { ++ this.block = block; ++ } ++ } ++ ++ /** ++ * Helper class that listens for mouse events. ++ */ ++ protected class TrackListener extends MouseInputAdapter ++ { ++ /** The current X position of the mouse. */ ++ protected int currentMouseX; ++ ++ /** The current Y position of the mouse. */ ++ protected int currentMouseY; ++ ++ /** ++ * The offset between the current slider value and the cursor's position. ++ */ ++ protected int offset; ++ ++ /** ++ * Called when the mouse has been dragged. This should find the mouse's ++ * current position and adjust the value of the {@link JSlider} ++ * accordingly. ++ * ++ * @param e A {@link MouseEvent} ++ */ ++ public void mouseDragged(MouseEvent e) ++ { ++ currentMouseX = e.getX(); ++ currentMouseY = e.getY(); ++ if (slider.getValueIsAdjusting()) ++ { ++ int value; ++ if (slider.getOrientation() == JSlider.HORIZONTAL) ++ value = valueForXPosition(currentMouseX) - offset; ++ else ++ value = valueForYPosition(currentMouseY) - offset; ++ ++ slider.setValue(value); ++ } ++ } ++ ++ /** ++ * Called when the mouse has moved over a component but no buttons have ++ * been pressed yet. ++ * ++ * @param e A {@link MouseEvent} ++ */ ++ public void mouseMoved(MouseEvent e) ++ { ++ // Don't care that we're moved unless we're dragging. ++ } ++ ++ /** ++ * Called when the mouse is pressed. When the press occurs on the thumb ++ * itself, the {@link JSlider} should have its value set to where the ++ * mouse was pressed. If the press occurs on the track, then the thumb ++ * should move one block towards the direction of the mouse. ++ * ++ * @param e A {@link MouseEvent} ++ */ ++ public void mousePressed(MouseEvent e) ++ { ++ currentMouseX = e.getX(); ++ currentMouseY = e.getY(); ++ ++ int value; ++ if (slider.getOrientation() == JSlider.HORIZONTAL) ++ value = valueForXPosition(currentMouseX); ++ else ++ value = valueForYPosition(currentMouseY); ++ ++ if (slider.getSnapToTicks()) ++ value = findClosestTick(value); ++ ++ // If the thumb is hit, then we don't need to set the timers to move it. ++ if (!thumbRect.contains(e.getPoint())) ++ { ++ // The mouse has hit some other part of the slider. ++ // The value moves no matter where in the slider you hit. ++ if (value > slider.getValue()) ++ scrollDueToClickInTrack(POSITIVE_SCROLL); ++ else ++ scrollDueToClickInTrack(NEGATIVE_SCROLL); ++ } ++ else ++ { ++ slider.setValueIsAdjusting(true); ++ offset = value - slider.getValue(); ++ } ++ } ++ ++ /** ++ * Called when the mouse is released. This should stop the timer that ++ * scrolls the thumb. ++ * ++ * @param e A {@link MouseEvent} ++ */ ++ public void mouseReleased(MouseEvent e) ++ { ++ currentMouseX = e.getX(); ++ currentMouseY = e.getY(); ++ ++ if (slider.getValueIsAdjusting()) ++ { ++ slider.setValueIsAdjusting(false); ++ if (slider.getSnapToTicks()) ++ slider.setValue(findClosestTick(slider.getValue())); ++ } ++ if (scrollTimer != null) ++ scrollTimer.stop(); ++ } ++ ++ /** ++ * Indicates whether the thumb should scroll in the given direction. ++ * ++ * @param direction The direction to check. ++ * ++ * @return True if the thumb should move in that direction. ++ */ ++ public boolean shouldScroll(int direction) ++ { ++ int value; ++ if (slider.getOrientation() == JSlider.HORIZONTAL) ++ value = valueForXPosition(currentMouseX); ++ else ++ value = valueForYPosition(currentMouseY); ++ ++ if (direction == POSITIVE_SCROLL) ++ return (value > slider.getValue()); ++ else ++ return (value < slider.getValue()); ++ } ++ } ++ ++ /** The preferred height of the thumb. */ ++ private transient int thumbHeight; ++ ++ /** The preferred width of the thumb. */ ++ private transient int thumbWidth; ++ ++ /** The preferred height of the tick rectangle. */ ++ private transient int tickHeight; ++ ++ /** Listener for changes from the model. */ ++ protected ChangeListener changeListener; ++ ++ /** Listener for changes to the {@link JSlider}. */ ++ protected PropertyChangeListener propertyChangeListener; ++ ++ /** Listener for the scrollTimer. */ ++ protected ScrollListener scrollListener; ++ ++ /** Listener for component resizing. */ ++ protected ComponentListener componentListener; ++ ++ /** Listener for focus handling. */ ++ protected FocusListener focusListener; ++ ++ /** Listener for mouse events. */ ++ protected TrackListener trackListener; ++ ++ /** The insets between the FocusRectangle and the ContentRectangle. */ ++ protected Insets focusInsets; ++ ++ /** The {@link JSlider}'s insets. */ ++ protected Insets insetCache; ++ ++ /** Rectangle describing content bounds. See diagram above. */ ++ protected Rectangle contentRect; ++ ++ /** Rectangle describing focus bounds. See diagram above. */ ++ protected Rectangle focusRect; ++ ++ /** Rectangle describing the thumb's bounds. See diagram above. */ ++ protected Rectangle thumbRect; ++ ++ /** Rectangle describing the tick bounds. See diagram above. */ ++ protected Rectangle tickRect; ++ ++ /** Rectangle describing the label bounds. See diagram above. */ ++ protected Rectangle labelRect; ++ ++ /** Rectangle describing the track bounds. See diagram above. */ ++ protected Rectangle trackRect; ++ ++ /** FIXME: use this somewhere. */ ++ public static final int MAX_SCROLL = 2; ++ ++ /** FIXME: use this somewhere. */ ++ public static final int MIN_SCROLL = -2; ++ ++ /** A constant describing scrolling towards the minimum. */ ++ public static final int NEGATIVE_SCROLL = -1; ++ ++ /** A constant describing scrolling towards the maximum. */ ++ public static final int POSITIVE_SCROLL = 1; ++ ++ /** The gap between the edges of the contentRect and trackRect. */ ++ protected int trackBuffer; ++ ++ /** Whether this slider is actually drawn left to right. */ ++ protected boolean leftToRightCache; ++ ++ /** A timer that periodically moves the thumb. */ ++ protected Timer scrollTimer; ++ ++ /** A reference to the {@link JSlider} that this UI was created for. */ ++ protected JSlider slider; ++ ++ /** The shadow color. */ ++ private transient Color shadowColor; ++ ++ /** The highlight color. */ ++ private transient Color highlightColor; ++ ++ /** The focus color. */ ++ private transient Color focusColor; ++ ++ /** ++ * Creates a new Basic look and feel Slider UI. ++ * ++ * @param b The {@link JSlider} that this UI was created for. ++ */ ++ public BasicSliderUI(JSlider b) ++ { ++ super(); ++ } ++ ++ /** ++ * Gets the shadow color to be used for this slider. The shadow color is the ++ * color used for drawing the top and left edges of the track. ++ * ++ * @return The shadow color. ++ */ ++ protected Color getShadowColor() ++ { ++ return shadowColor; ++ } ++ ++ /** ++ * Gets the highlight color to be used for this slider. The highlight color ++ * is the color used for drawing the bottom and right edges of the track. ++ * ++ * @return The highlight color. ++ */ ++ protected Color getHighlightColor() ++ { ++ return highlightColor; ++ } ++ ++ /** ++ * Gets the focus color to be used for this slider. The focus color is the ++ * color used for drawing the focus rectangle when the component gains ++ * focus. ++ * ++ * @return The focus color. ++ */ ++ protected Color getFocusColor() ++ { ++ return focusColor; ++ } ++ ++ /** ++ * Factory method to create a BasicSliderUI for the given {@link ++ * JComponent}, which should be a {@link JSlider}. ++ * ++ * @param b The {@link JComponent} a UI is being created for. ++ * ++ * @return A BasicSliderUI for the {@link JComponent}. ++ */ ++ public static ComponentUI createUI(JComponent b) ++ { ++ return new BasicSliderUI((JSlider) b); ++ } ++ ++ /** ++ * Installs and initializes all fields for this UI delegate. Any properties ++ * of the UI that need to be initialized and/or set to defaults will be ++ * done now. It will also install any listeners necessary. ++ * ++ * @param c The {@link JComponent} that is having this UI installed. ++ */ ++ public void installUI(JComponent c) ++ { ++ super.installUI(c); ++ if (c instanceof JSlider) ++ { ++ slider = (JSlider) c; ++ ++ focusRect = new Rectangle(); ++ contentRect = new Rectangle(); ++ thumbRect = new Rectangle(); ++ trackRect = new Rectangle(); ++ tickRect = new Rectangle(); ++ labelRect = new Rectangle(); ++ ++ insetCache = slider.getInsets(); ++ leftToRightCache = ! slider.getInverted(); ++ ++ scrollTimer = new Timer(200, null); ++ scrollTimer.setRepeats(true); ++ ++ installDefaults(slider); ++ installListeners(slider); ++ installKeyboardActions(slider); ++ ++ calculateFocusRect(); ++ ++ calculateContentRect(); ++ calculateThumbSize(); ++ calculateTrackBuffer(); ++ calculateTrackRect(); ++ calculateThumbLocation(); ++ ++ calculateTickRect(); ++ calculateLabelRect(); ++ } ++ } ++ ++ /** ++ * Performs the opposite of installUI. Any properties or resources that need ++ * to be cleaned up will be done now. It will also uninstall any listeners ++ * it has. In addition, any properties of this UI will be nulled. ++ * ++ * @param c The {@link JComponent} that is having this UI uninstalled. ++ */ ++ public void uninstallUI(JComponent c) ++ { ++ super.uninstallUI(c); ++ ++ uninstallKeyboardActions(slider); ++ uninstallListeners(slider); ++ ++ scrollTimer = null; ++ ++ focusRect = null; ++ contentRect = null; ++ thumbRect = null; ++ trackRect = null; ++ tickRect = null; ++ labelRect = null; ++ ++ focusInsets = null; ++ } ++ ++ /** ++ * Initializes any default properties that this UI has from the defaults for ++ * the Basic look and feel. ++ * ++ * @param slider The {@link JSlider} that is having this UI installed. ++ */ ++ protected void installDefaults(JSlider slider) ++ { ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ ++ slider.setForeground(defaults.getColor("Slider.foreground")); ++ slider.setBackground(defaults.getColor("Slider.background")); ++ shadowColor = defaults.getColor("Slider.shadow"); ++ highlightColor = defaults.getColor("Slider.highlight"); ++ focusColor = defaults.getColor("Slider.focus"); ++ slider.setBorder(defaults.getBorder("Slider.border")); ++ slider.setOpaque(true); ++ ++ thumbHeight = defaults.getInt("Slider.thumbHeight"); ++ thumbWidth = defaults.getInt("Slider.thumbWidth"); ++ tickHeight = defaults.getInt("Slider.tickHeight"); ++ ++ focusInsets = defaults.getInsets("Slider.focusInsets"); ++ } ++ ++ /** ++ * Creates a new {@link TrackListener}. ++ * ++ * @param slider The {@link JSlider} that this {@link TrackListener} is ++ * created for. ++ * ++ * @return A new {@link TrackListener}. ++ */ ++ protected TrackListener createTrackListener(JSlider slider) ++ { ++ return new TrackListener(); ++ } ++ ++ /** ++ * Creates a new {@link ChangeListener}. ++ * ++ * @param slider The {@link JSlider} that this {@link ChangeListener} is ++ * created for. ++ * ++ * @return A new {@link ChangeListener}. ++ */ ++ protected ChangeListener createChangeListener(JSlider slider) ++ { ++ return new ChangeHandler(); ++ } ++ ++ /** ++ * Creates a new {@link ComponentListener}. ++ * ++ * @param slider The {@link JSlider} that this {@link ComponentListener} is ++ * created for. ++ * ++ * @return A new {@link ComponentListener}. ++ */ ++ protected ComponentListener createComponentListener(JSlider slider) ++ { ++ return new ComponentHandler(); ++ } ++ ++ /** ++ * Creates a new {@link FocusListener}. ++ * ++ * @param slider The {@link JSlider} that this {@link FocusListener} is ++ * created for. ++ * ++ * @return A new {@link FocusListener}. ++ */ ++ protected FocusListener createFocusListener(JSlider slider) ++ { ++ return new FocusHandler(); ++ } ++ ++ /** ++ * Creates a new {@link ScrollListener}. ++ * ++ * @param slider The {@link JSlider} that this {@link ScrollListener} is ++ * created for. ++ * ++ * @return A new {@link ScrollListener}. ++ */ ++ protected ScrollListener createScrollListener(JSlider slider) ++ { ++ return new ScrollListener(); ++ } ++ ++ /** ++ * Creates a new {@link PropertyChangeListener}. ++ * ++ * @param slider The {@link JSlider} that this {@link ++ * PropertyChangeListener} is created for. ++ * ++ * @return A new {@link PropertyChangeListener}. ++ */ ++ protected PropertyChangeListener createPropertyChangeListener(JSlider slider) ++ { ++ return new PropertyChangeHandler(); ++ } ++ ++ /** ++ * Creates and registers all the listeners for this UI delegate. This ++ * includes creating the ScrollListener and registering it to the timer. ++ * ++ * @param slider The {@link JSlider} is having listeners installed. ++ */ ++ protected void installListeners(JSlider slider) ++ { ++ propertyChangeListener = createPropertyChangeListener(slider); ++ componentListener = createComponentListener(slider); ++ trackListener = createTrackListener(slider); ++ focusListener = createFocusListener(slider); ++ changeListener = createChangeListener(slider); ++ scrollListener = createScrollListener(slider); ++ ++ slider.addPropertyChangeListener(propertyChangeListener); ++ slider.addComponentListener(componentListener); ++ slider.addMouseListener(trackListener); ++ slider.addMouseMotionListener(trackListener); ++ slider.addFocusListener(focusListener); ++ slider.getModel().addChangeListener(changeListener); ++ ++ scrollTimer.addActionListener(scrollListener); ++ } ++ ++ /** ++ * Unregisters all the listeners that this UI delegate was using. In ++ * addition, it will also null any listeners that it was using. ++ * ++ * @param slider The {@link JSlider} that is having listeners removed. ++ */ ++ protected void uninstallListeners(JSlider slider) ++ { ++ slider.removePropertyChangeListener(propertyChangeListener); ++ slider.removeComponentListener(componentListener); ++ slider.removeMouseListener(trackListener); ++ slider.removeMouseMotionListener(trackListener); ++ slider.removeFocusListener(focusListener); ++ slider.getModel().removeChangeListener(changeListener); ++ ++ scrollTimer.removeActionListener(scrollListener); ++ ++ propertyChangeListener = null; ++ componentListener = null; ++ trackListener = null; ++ focusListener = null; ++ changeListener = null; ++ scrollListener = null; ++ } ++ ++ /** ++ * Installs any keyboard actions. The list of keys that need to be bound are ++ * listed in Basic look and feel's defaults. ++ * ++ * @param slider The {@link JSlider} that is having keyboard actions ++ * installed. ++ */ ++ protected void installKeyboardActions(JSlider slider) ++ { ++ // FIXME: implement. ++ } ++ ++ /** ++ * Uninstalls any keyboard actions. The list of keys used are listed in ++ * Basic look and feel's defaults. ++ * ++ * @param slider The {@link JSlider} that is having keyboard actions ++ * uninstalled. ++ */ ++ protected void uninstallKeyboardActions(JSlider slider) ++ { ++ // FIXME: implement. ++ } ++ ++ /* XXX: This is all after experimentation with SUN's implementation. ++ ++ PreferredHorizontalSize seems to be 200x21. ++ PreferredVerticalSize seems to be 21x200. ++ ++ MinimumHorizontalSize seems to be 36x21. ++ MinimumVerticalSize seems to be 21x36. ++ ++ PreferredSize seems to be 200x63. Or Components.getBounds? ++ ++ MinimumSize seems to be 36x63. ++ ++ MaximumSize seems to be 32767x63. ++ */ ++ ++ /** ++ * This method returns the preferred size when the slider is horizontally ++ * oriented. ++ * ++ * @return The dimensions of the preferred horizontal size. ++ */ ++ public Dimension getPreferredHorizontalSize() ++ { ++ Insets insets = slider.getInsets(); ++ ++ // The width should cover all the labels (which are usually the ++ // deciding factor of the width) ++ int width = getWidthOfWidestLabel() * (slider.getLabelTable() == null ? 0 ++ : slider.getLabelTable() ++ .size()); ++ ++ // If there are not enough labels. ++ // This number is pretty much arbitrary, but it looks nice. ++ if (width < 200) ++ width = 200; ++ ++ // We can only draw inside of the focusRectangle, so we have to ++ // pad it with insets. ++ width += insets.left + insets.right + focusInsets.left + focusInsets.right; ++ ++ // Height is determined by the thumb, the ticks and the labels. ++ int height = thumbHeight; ++ ++ if (slider.getPaintTicks() && slider.getMajorTickSpacing() > 0 ++ || slider.getMinorTickSpacing() > 0) ++ height += tickHeight; ++ ++ if (slider.getPaintLabels()) ++ height += getHeightOfTallestLabel(); ++ ++ height += insets.top + insets.bottom + focusInsets.top ++ + focusInsets.bottom; ++ ++ return new Dimension(width, height); ++ } ++ ++ /** ++ * This method returns the preferred size when the slider is vertically ++ * oriented. ++ * ++ * @return The dimensions of the preferred vertical size. ++ */ ++ public Dimension getPreferredVerticalSize() ++ { ++ Insets insets = slider.getInsets(); ++ ++ int height = getHeightOfTallestLabel() * (slider.getLabelTable() == null ++ ? 0 : slider.getLabelTable() ++ .size()); ++ ++ if (height < 200) ++ height = 200; ++ ++ height += insets.top + insets.bottom + focusInsets.top ++ + focusInsets.bottom; ++ ++ int width = thumbHeight; ++ ++ if (slider.getPaintTicks() && slider.getMajorTickSpacing() > 0 ++ || slider.getMinorTickSpacing() > 0) ++ width += tickHeight; ++ ++ if (slider.getPaintLabels()) ++ width += getWidthOfWidestLabel(); ++ ++ width += insets.left + insets.right + focusInsets.left + focusInsets.right; ++ ++ return new Dimension(width, height); ++ } ++ ++ /** ++ * This method returns the minimum size when the slider is horizontally ++ * oriented. ++ * ++ * @return The dimensions of the minimum horizontal size. ++ */ ++ public Dimension getMinimumHorizontalSize() ++ { ++ return getPreferredHorizontalSize(); ++ } ++ ++ /** ++ * This method returns the minimum size of the slider when it is vertically ++ * oriented. ++ * ++ * @return The dimensions of the minimum vertical size. ++ */ ++ public Dimension getMinimumVerticalSize() ++ { ++ return getPreferredVerticalSize(); ++ } ++ ++ /** ++ * This method returns the preferred size of the component. If it returns ++ * null, then it is up to the Layout Manager to give the {@link JComponent} ++ * a size. ++ * ++ * @param c The {@link JComponent} to find the preferred size for. ++ * ++ * @return The dimensions of the preferred size. ++ */ ++ public Dimension getPreferredSize(JComponent c) ++ { ++ if (slider.getOrientation() == JSlider.HORIZONTAL) ++ return getPreferredHorizontalSize(); ++ else ++ return getPreferredVerticalSize(); ++ } ++ ++ /** ++ * This method returns the minimum size for this {@link JSlider} for this ++ * look and feel. If it returns null, then it is up to the Layout Manager ++ * to give the {@link JComponent} a size. ++ * ++ * @param c The {@link JComponent} to find the minimum size for. ++ * ++ * @return The dimensions of the minimum size. ++ */ ++ public Dimension getMinimumSize(JComponent c) ++ { ++ if (slider.getOrientation() == JSlider.HORIZONTAL) ++ return getPreferredHorizontalSize(); ++ else ++ return getPreferredVerticalSize(); ++ } ++ ++ /** ++ * This method returns the maximum size for this {@link JSlider} for this ++ * look and feel. If it returns null, then it is up to the Layout Manager ++ * to give the {@link JComponent} a size. ++ * ++ * @param c The {@link JComponent} to find a maximum size for. ++ * ++ * @return The dimensions of the maximum size. ++ */ ++ public Dimension getMaximumSize(JComponent c) ++ { ++ if (slider.getOrientation() == JSlider.HORIZONTAL) ++ return getPreferredHorizontalSize(); ++ else ++ return getPreferredVerticalSize(); ++ } ++ ++ /** ++ * This method calculates all the sizes of the rectangles by delegating to ++ * the helper methods calculateXXXRect. ++ */ ++ protected void calculateGeometry() ++ { ++ calculateFocusRect(); ++ calculateContentRect(); ++ calculateThumbSize(); ++ calculateTrackBuffer(); ++ calculateTrackRect(); ++ calculateTickRect(); ++ calculateLabelRect(); ++ calculateThumbLocation(); ++ } ++ ++ /** ++ * This method calculates the size and position of the focusRect. This ++ * method does not need to be called if the orientation changes. ++ */ ++ protected void calculateFocusRect() ++ { ++ insetCache = slider.getInsets(); ++ focusRect = SwingUtilities.calculateInnerArea(slider, focusRect); ++ ++ if (focusRect.width < 0) ++ focusRect.width = 0; ++ if (focusRect.height < 0) ++ focusRect.height = 0; ++ } ++ ++ /** ++ * This method calculates the size but not the position of the thumbRect. It ++ * must take into account the orientation of the slider. ++ */ ++ protected void calculateThumbSize() ++ { ++ if (slider.getOrientation() == JSlider.HORIZONTAL) ++ { ++ if (thumbWidth > contentRect.width) ++ thumbRect.width = contentRect.width / 4; ++ else ++ thumbRect.width = thumbWidth; ++ if (thumbHeight > contentRect.height) ++ thumbRect.height = contentRect.height; ++ else ++ thumbRect.height = thumbHeight; ++ } ++ else ++ { ++ // The thumb gets flipped when inverted, so thumbWidth ++ // actually is the height and vice versa. ++ if (thumbWidth > contentRect.height) ++ thumbRect.height = contentRect.height / 4; ++ else ++ thumbRect.height = thumbWidth; ++ if (thumbHeight > contentRect.width) ++ thumbRect.width = contentRect.width; ++ else ++ thumbRect.width = thumbHeight; ++ } ++ } ++ ++ /** ++ * This method calculates the size and position of the contentRect. This ++ * method does not need to be called if the orientation changes. ++ */ ++ protected void calculateContentRect() ++ { ++ contentRect.x = focusRect.x + focusInsets.left; ++ contentRect.y = focusRect.y + focusInsets.top; ++ contentRect.width = focusRect.width - focusInsets.left - focusInsets.right; ++ contentRect.height = focusRect.height - focusInsets.top ++ - focusInsets.bottom; ++ ++ if (contentRect.width < 0) ++ contentRect.width = 0; ++ if (contentRect.height < 0) ++ contentRect.height = 0; ++ } ++ ++ /** ++ * Calculates the position of the thumbRect based on the current value of ++ * the slider. It must take into account the orientation of the slider. ++ */ ++ protected void calculateThumbLocation() ++ { ++ int value = slider.getValue(); ++ ++ if (slider.getOrientation() == JSlider.HORIZONTAL) ++ { ++ thumbRect.x = xPositionForValue(value) - thumbRect.width / 2; ++ thumbRect.y = contentRect.y; ++ } ++ else ++ { ++ thumbRect.x = contentRect.x; ++ thumbRect.y = yPositionForValue(value) - thumbRect.height / 2; ++ } ++ } ++ ++ /** ++ * Calculates the gap size between the left edge of the contentRect and the ++ * left edge of the trackRect. ++ */ ++ protected void calculateTrackBuffer() ++ { ++ if (slider.getOrientation() == JSlider.HORIZONTAL) ++ trackBuffer = thumbRect.width; ++ else ++ trackBuffer = thumbRect.height; ++ } ++ ++ /** ++ * This method returns the size of the thumbRect. ++ * ++ * @return The dimensions of the thumb. ++ */ ++ protected Dimension getThumbSize() ++ { ++ // This is really just the bounds box for the thumb. ++ // The thumb will actually be pointed (like a rectangle + triangle at bottom) ++ return thumbRect.getSize(); ++ } ++ ++ /** ++ * Calculates the size and position of the trackRect. It must take into ++ * account the orientation of the slider. ++ */ ++ protected void calculateTrackRect() ++ { ++ if (slider.getOrientation() == JSlider.HORIZONTAL) ++ { ++ trackRect.x = contentRect.x + trackBuffer; ++ trackRect.y = contentRect.y; ++ trackRect.width = contentRect.width - 2 * trackBuffer; ++ trackRect.height = thumbRect.height; ++ } ++ else ++ { ++ trackRect.x = contentRect.x; ++ trackRect.y = contentRect.y + trackBuffer; ++ trackRect.width = thumbRect.width; ++ trackRect.height = contentRect.height - 2 * trackBuffer; ++ } ++ } ++ ++ /** ++ * This method returns the height of the tick area box if the slider is ++ * horizontal and the width of the tick area box is the slider is vertical. ++ * It not necessarily how long the ticks will be. If a gap between the edge ++ * of tick box and the actual tick is desired, then that will need to be ++ * handled in the tick painting methods. ++ * ++ * @return The height (or width if the slider is vertical) of the tick ++ * rectangle. ++ */ ++ protected int getTickLength() ++ { ++ return tickHeight; ++ } ++ ++ /** ++ * This method calculates the size and position of the tickRect. It must ++ * take into account the orientation of the slider. ++ */ ++ protected void calculateTickRect() ++ { ++ if (slider.getOrientation() == JSlider.HORIZONTAL) ++ { ++ tickRect.x = trackRect.x; ++ tickRect.y = trackRect.y + trackRect.height; ++ tickRect.width = trackRect.width; ++ tickRect.height = getTickLength(); ++ ++ if (tickRect.y + tickRect.height > contentRect.y + contentRect.height) ++ tickRect.height = contentRect.y + contentRect.height - tickRect.y; ++ } ++ else ++ { ++ tickRect.x = trackRect.x + trackRect.width; ++ tickRect.y = trackRect.y; ++ tickRect.width = getTickLength(); ++ tickRect.height = trackRect.height; ++ ++ if (tickRect.x + tickRect.width > contentRect.x + contentRect.width) ++ tickRect.width = contentRect.x + contentRect.width - tickRect.x; ++ } ++ } ++ ++ /** ++ * This method calculates the size and position of the labelRect. It must ++ * take into account the orientation of the slider. ++ */ ++ protected void calculateLabelRect() ++ { ++ if (slider.getOrientation() == JSlider.HORIZONTAL) ++ { ++ labelRect.x = contentRect.x; ++ labelRect.y = tickRect.y + tickRect.height; ++ labelRect.width = contentRect.width; ++ labelRect.height = contentRect.height - labelRect.y; ++ } ++ else ++ { ++ labelRect.x = tickRect.x + tickRect.width; ++ labelRect.y = contentRect.y; ++ labelRect.width = contentRect.width - labelRect.x; ++ labelRect.height = contentRect.height; ++ } ++ } ++ ++ /** ++ * This method returns the width of the widest label in the slider's label ++ * table. ++ * ++ * @return The width of the widest label or 0 if no label table exists. ++ */ ++ protected int getWidthOfWidestLabel() ++ { ++ int widest = 0; ++ Component label; ++ ++ if (slider.getLabelTable() == null) ++ return 0; ++ ++ Dimension pref; ++ for (Enumeration list = slider.getLabelTable().elements(); ++ list.hasMoreElements();) ++ { ++ Object comp = list.nextElement(); ++ if (! (comp instanceof Component)) ++ continue; ++ label = (Component) comp; ++ pref = label.getPreferredSize(); ++ if (pref != null && pref.width > widest) ++ widest = pref.width; ++ } ++ return widest; ++ } ++ ++ /** ++ * This method returns the height of the tallest label in the slider's label ++ * table. ++ * ++ * @return The height of the tallest label or 0 if no label table exists. ++ */ ++ protected int getHeightOfTallestLabel() ++ { ++ int tallest = 0; ++ Component label; ++ ++ if (slider.getLabelTable() == null) ++ return 0; ++ Dimension pref; ++ for (Enumeration list = slider.getLabelTable().elements(); ++ list.hasMoreElements();) ++ { ++ Object comp = list.nextElement(); ++ if (! (comp instanceof Component)) ++ continue; ++ label = (Component) comp; ++ pref = label.getPreferredSize(); ++ if (pref != null && pref.height > tallest) ++ tallest = pref.height; ++ } ++ return tallest; ++ } ++ ++ /** ++ * This method returns the width of the label whose key has the highest ++ * value. ++ * ++ * @return The width of the high value label or 0 if no label table exists. ++ */ ++ protected int getWidthOfHighValueLabel() ++ { ++ Component highValueLabel = getHighestValueLabel(); ++ if (highValueLabel != null) ++ return highValueLabel.getWidth(); ++ else ++ return 0; ++ } ++ ++ /** ++ * This method returns the width of the label whose key has the lowest ++ * value. ++ * ++ * @return The width of the low value label or 0 if no label table exists. ++ */ ++ protected int getWidthOfLowValueLabel() ++ { ++ Component lowValueLabel = getLowestValueLabel(); ++ if (lowValueLabel != null) ++ return lowValueLabel.getWidth(); ++ else ++ return 0; ++ } ++ ++ /** ++ * This method returns the height of the label whose key has the highest ++ * value. ++ * ++ * @return The height of the high value label or 0 if no label table exists. ++ */ ++ protected int getHeightOfHighValueLabel() ++ { ++ Component highValueLabel = getHighestValueLabel(); ++ if (highValueLabel != null) ++ return highValueLabel.getHeight(); ++ else ++ return 0; ++ } ++ ++ /** ++ * This method returns the height of the label whose key has the lowest ++ * value. ++ * ++ * @return The height of the low value label or 0 if no label table exists. ++ */ ++ protected int getHeightOfLowValueLabel() ++ { ++ Component lowValueLabel = getLowestValueLabel(); ++ if (lowValueLabel != null) ++ return lowValueLabel.getHeight(); ++ else ++ return 0; ++ } ++ ++ /** ++ * This method returns whether the slider is to be drawn inverted. ++ * ++ * @return True is the slider is to be drawn inverted. ++ */ ++ protected boolean drawInverted() ++ { ++ return ! (slider.getInverted() ^ leftToRightCache); ++ } ++ ++ /** ++ * This method returns the label whose key has the lowest value. ++ * ++ * @return The low value label or null if no label table exists. ++ */ ++ protected Component getLowestValueLabel() ++ { ++ Integer key = new Integer(Integer.MAX_VALUE); ++ Integer tmpKey; ++ Dictionary labelTable = slider.getLabelTable(); ++ ++ if (labelTable == null) ++ return null; ++ ++ for (Enumeration list = labelTable.keys(); list.hasMoreElements();) ++ { ++ Object value = list.nextElement(); ++ if (! (value instanceof Integer)) ++ continue; ++ tmpKey = (Integer) value; ++ if (tmpKey.intValue() < key.intValue()) ++ key = tmpKey; ++ } ++ Object comp = labelTable.get(key); ++ if (! (comp instanceof Component)) ++ return null; ++ return (Component) comp; ++ } ++ ++ /** ++ * This method returns the label whose key has the highest value. ++ * ++ * @return The high value label or null if no label table exists. ++ */ ++ protected Component getHighestValueLabel() ++ { ++ Integer key = new Integer(Integer.MIN_VALUE); ++ Integer tmpKey; ++ Dictionary labelTable = slider.getLabelTable(); ++ ++ if (labelTable == null) ++ return null; ++ ++ for (Enumeration list = labelTable.keys(); list.hasMoreElements();) ++ { ++ Object value = list.nextElement(); ++ if (! (value instanceof Integer)) ++ continue; ++ tmpKey = (Integer) value; ++ if (tmpKey.intValue() > key.intValue()) ++ key = tmpKey; ++ } ++ Object comp = labelTable.get(key); ++ if (! (comp instanceof Component)) ++ return null; ++ return (Component) comp; ++ } ++ ++ /** ++ * This method is used to paint the {@link JSlider}. It delegates all its ++ * duties to the various paint methods like paintTicks(), paintTrack(), ++ * paintThumb(), etc. ++ * ++ * @param g The {@link Graphics} object to paint with. ++ * @param c The {@link JComponent} that is being painted. ++ */ ++ public void paint(Graphics g, JComponent c) ++ { ++ // FIXME: Move this to propertyChangeEvent handler, when we get those. ++ leftToRightCache = slider.getComponentOrientation() != ComponentOrientation.RIGHT_TO_LEFT; ++ // FIXME: This next line is only here because the above line is here. ++ calculateThumbLocation(); ++ ++ if (slider.getPaintTrack()) ++ paintTrack(g); ++ if (slider.getPaintTicks()) ++ paintTicks(g); ++ if (slider.getPaintLabels()) ++ paintLabels(g); ++ ++ //FIXME: Paint focus. ++ paintThumb(g); ++ } ++ ++ /** ++ * This method recalculates any rectangles that need to be recalculated ++ * after the insets of the component have changed. ++ */ ++ protected void recalculateIfInsetsChanged() ++ { ++ // Examining a test program shows that either Sun calls private ++ // methods that we don't know about, or these don't do anything. ++ calculateFocusRect(); ++ ++ calculateContentRect(); ++ calculateThumbSize(); ++ calculateTrackBuffer(); ++ calculateTrackRect(); ++ calculateThumbLocation(); ++ ++ calculateTickRect(); ++ calculateLabelRect(); ++ } ++ ++ /** ++ * This method recalculates any rectangles that need to be recalculated ++ * after the orientation of the slider changes. ++ */ ++ protected void recalculateIfOrientationChanged() ++ { ++ // Examining a test program shows that either Sun calls private ++ // methods that we don't know about, or these don't do anything. ++ calculateThumbSize(); ++ calculateTrackBuffer(); ++ calculateTrackRect(); ++ calculateThumbLocation(); ++ ++ calculateTickRect(); ++ calculateLabelRect(); ++ } ++ ++ /** ++ * This method is called during a repaint if the slider has focus. It draws ++ * an outline of the focusRect using the color returned by ++ * getFocusColor(). ++ * ++ * @param g The {@link Graphics} object to draw with. ++ */ ++ public void paintFocus(Graphics g) ++ { ++ Color saved_color = g.getColor(); ++ ++ g.setColor(getFocusColor()); ++ ++ g.drawRect(focusRect.x, focusRect.y, focusRect.width, focusRect.height); ++ ++ g.setColor(saved_color); ++ } ++ ++ /** ++ *

    ++ * This method is called during a repaint if the track is to be drawn. It ++ * draws a 3D rectangle to represent the track. The track is not the size ++ * of the trackRect. The top and left edges of the track should be outlined ++ * with the shadow color. The bottom and right edges should be outlined ++ * with the highlight color. ++ *

    ++ *
    ++   *    a---d   
    ++   *    |   |   
    ++   *    |   |   a------------------------d
    ++   *    |   |   |                        |
    ++   *    |   |   b------------------------c
    ++   *    |   |
    ++   *    |   |   
    ++   *    b---c
    ++   * 
    ++ * ++ *

    ++ * The b-a-d path needs to be drawn with the shadow color and the b-c-d path ++ * needs to be drawn with the highlight color. ++ *

    ++ * ++ * @param g The {@link Graphics} object to draw with. ++ */ ++ public void paintTrack(Graphics g) ++ { ++ Color saved_color = g.getColor(); ++ int width; ++ int height; ++ ++ Point a = new Point(trackRect.x, trackRect.y); ++ Point b = new Point(a); ++ Point c = new Point(a); ++ Point d = new Point(a); ++ ++ Polygon high; ++ Polygon shadow; ++ ++ if (slider.getOrientation() == JSlider.HORIZONTAL) ++ { ++ width = trackRect.width; ++ height = (thumbRect.height / 4 == 0) ? 1 : thumbRect.height / 4; ++ ++ a.translate(0, (trackRect.height / 2) - (height / 2)); ++ b.translate(0, (trackRect.height / 2) + (height / 2)); ++ c.translate(trackRect.width, (trackRect.height / 2) + (height / 2)); ++ d.translate(trackRect.width, (trackRect.height / 2) - (height / 2)); ++ } ++ else ++ { ++ width = (thumbRect.width / 4 == 0) ? 1 : thumbRect.width / 4; ++ height = trackRect.height; ++ ++ a.translate((trackRect.width / 2) - (width / 2), 0); ++ b.translate((trackRect.width / 2) - (width / 2), trackRect.height); ++ c.translate((trackRect.width / 2) + (width / 2), trackRect.height); ++ d.translate((trackRect.width / 2) + (width / 2), 0); ++ } ++ g.setColor(Color.GRAY); ++ g.fillRect(a.x, a.y, width, height); ++ ++ g.setColor(getHighlightColor()); ++ g.drawLine(b.x, b.y, c.x, c.y); ++ g.drawLine(c.x, c.y, d.x, d.y); ++ ++ g.setColor(getShadowColor()); ++ g.drawLine(b.x, b.y, a.x, a.y); ++ g.drawLine(a.x, a.y, d.x, d.y); ++ ++ g.setColor(saved_color); ++ } ++ ++ /** ++ * This method is called during a repaint if the ticks are to be drawn. This ++ * method must still verify that the majorTickSpacing and minorTickSpacing ++ * are greater than zero before drawing the ticks. ++ * ++ * @param g The {@link Graphics} object to draw with. ++ */ ++ public void paintTicks(Graphics g) ++ { ++ int max = slider.getMaximum(); ++ int min = slider.getMinimum(); ++ int majorSpace = slider.getMajorTickSpacing(); ++ int minorSpace = slider.getMinorTickSpacing(); ++ ++ if (majorSpace > 0) ++ { ++ if (slider.getOrientation() == JSlider.HORIZONTAL) ++ { ++ double loc = tickRect.x; ++ double increment = (max == min) ? 0 ++ : majorSpace * (double) tickRect.width / (max ++ - min); ++ if (drawInverted()) ++ { ++ loc += tickRect.width; ++ increment *= -1; ++ } ++ for (int i = min; i <= max; i += majorSpace) ++ { ++ paintMajorTickForHorizSlider(g, tickRect, (int) loc); ++ loc += increment; ++ } ++ } ++ else ++ { ++ double loc = tickRect.height + tickRect.y; ++ double increment = (max == min) ? 0 ++ : -majorSpace * (double) tickRect.height / (max ++ - min); ++ if (drawInverted()) ++ { ++ loc = tickRect.y; ++ increment *= -1; ++ } ++ for (int i = min; i <= max; i += majorSpace) ++ { ++ paintMajorTickForVertSlider(g, tickRect, (int) loc); ++ loc += increment; ++ } ++ } ++ } ++ if (minorSpace > 0) ++ { ++ if (slider.getOrientation() == JSlider.HORIZONTAL) ++ { ++ double loc = tickRect.x; ++ double increment = (max == min) ? 0 ++ : minorSpace * (double) tickRect.width / (max ++ - min); ++ if (drawInverted()) ++ { ++ loc += tickRect.width; ++ increment *= -1; ++ } ++ for (int i = min; i <= max; i += minorSpace) ++ { ++ paintMinorTickForHorizSlider(g, tickRect, (int) loc); ++ loc += increment; ++ } ++ } ++ else ++ { ++ double loc = tickRect.height + tickRect.y; ++ double increment = (max == min) ? 0 ++ : -minorSpace * (double) tickRect.height / (max ++ - min); ++ if (drawInverted()) ++ { ++ loc = tickRect.y; ++ increment *= -1; ++ } ++ for (int i = min; i <= max; i += minorSpace) ++ { ++ paintMinorTickForVertSlider(g, tickRect, (int) loc); ++ loc += increment; ++ } ++ } ++ } ++ } ++ ++ /* Minor ticks start at 1/4 of the height (or width) of the tickRect and extend ++ to 1/2 of the tickRect. ++ ++ Major ticks start at 1/4 of the height and extend to 3/4. ++ */ ++ ++ /** ++ * This method paints a minor tick for a horizontal slider at the given x ++ * value. x represents the x coordinate to paint at. ++ * ++ * @param g The {@link Graphics} object to draw with. ++ * @param tickBounds The tickRect rectangle. ++ * @param x The x coordinate to draw the tick at. ++ */ ++ protected void paintMinorTickForHorizSlider(Graphics g, ++ Rectangle tickBounds, int x) ++ { ++ int y = tickRect.y + tickRect.height / 4; ++ Color saved = g.getColor(); ++ g.setColor(Color.BLACK); ++ ++ g.drawLine(x, y, x, y + tickRect.height / 4); ++ g.setColor(saved); ++ } ++ ++ /** ++ * This method paints a major tick for a horizontal slider at the given x ++ * value. x represents the x coordinate to paint at. ++ * ++ * @param g The {@link Graphics} object to draw with. ++ * @param tickBounds The tickRect rectangle. ++ * @param x The x coordinate to draw the tick at. ++ */ ++ protected void paintMajorTickForHorizSlider(Graphics g, ++ Rectangle tickBounds, int x) ++ { ++ int y = tickRect.y + tickRect.height / 4; ++ Color saved = g.getColor(); ++ g.setColor(Color.BLACK); ++ ++ g.drawLine(x, y, x, y + tickRect.height / 2); ++ g.setColor(saved); ++ } ++ ++ /** ++ * This method paints a minor tick for a vertical slider at the given y ++ * value. y represents the y coordinate to paint at. ++ * ++ * @param g The {@link Graphics} object to draw with. ++ * @param tickBounds The tickRect rectangle. ++ * @param y The y coordinate to draw the tick at. ++ */ ++ protected void paintMinorTickForVertSlider(Graphics g, Rectangle tickBounds, ++ int y) ++ { ++ int x = tickRect.x + tickRect.width / 4; ++ Color saved = g.getColor(); ++ g.setColor(Color.BLACK); ++ ++ g.drawLine(x, y, x + tickRect.width / 4, y); ++ g.setColor(saved); ++ } ++ ++ /** ++ * This method paints a major tick for a vertical slider at the given y ++ * value. y represents the y coordinate to paint at. ++ * ++ * @param g The {@link Graphics} object to draw with. ++ * @param tickBounds The tickRect rectangle. ++ * @param y The y coordinate to draw the tick at. ++ */ ++ protected void paintMajorTickForVertSlider(Graphics g, Rectangle tickBounds, ++ int y) ++ { ++ int x = tickRect.x + tickRect.width / 4; ++ Color saved = g.getColor(); ++ g.setColor(Color.BLACK); ++ ++ g.drawLine(x, y, x + tickRect.width / 2, y); ++ g.setColor(saved); ++ } ++ ++ /** ++ * This method paints all the labels from the slider's label table. This ++ * method must make sure that the label table is not null before painting ++ * the labels. Each entry in the label table is a (integer, component) ++ * pair. Every label is painted at the value of the integer. ++ * ++ * @param g The {@link Graphics} object to draw with. ++ */ ++ public void paintLabels(Graphics g) ++ { ++ if (slider.getLabelTable() != null) ++ { ++ Dictionary table = slider.getLabelTable(); ++ Integer tmpKey; ++ Object key; ++ Object element; ++ Component label; ++ if (slider.getOrientation() == JSlider.HORIZONTAL) ++ { ++ for (Enumeration list = table.keys(); list.hasMoreElements();) ++ { ++ key = list.nextElement(); ++ if (! (key instanceof Integer)) ++ continue; ++ tmpKey = (Integer) key; ++ element = table.get(tmpKey); ++ // We won't paint them if they're not ++ // JLabels so continue anyway ++ if (! (element instanceof JLabel)) ++ continue; ++ label = (Component) element; ++ paintHorizontalLabel(g, tmpKey.intValue(), label); ++ } ++ } ++ else ++ { ++ for (Enumeration list = table.keys(); list.hasMoreElements();) ++ { ++ key = list.nextElement(); ++ if (! (key instanceof Integer)) ++ continue; ++ tmpKey = (Integer) key; ++ element = table.get(tmpKey); ++ // We won't paint them if they're not ++ // JLabels so continue anyway ++ if (! (element instanceof JLabel)) ++ continue; ++ label = (Component) element; ++ paintVerticalLabel(g, tmpKey.intValue(), label); ++ } ++ } ++ } ++ } ++ ++ /** ++ * This method paints the label on the horizontal slider at the value ++ * specified. The value is not a coordinate. It is a value within the range ++ * of the slider. If the value is not within the range of the slider, this ++ * method will do nothing. This method should not paint outside the ++ * boundaries of the labelRect. ++ * ++ * @param g The {@link Graphics} object to draw with. ++ * @param value The value to paint at. ++ * @param label The label to paint. ++ */ ++ protected void paintHorizontalLabel(Graphics g, int value, Component label) ++ { ++ // This relies on clipping working properly or we'll end up ++ // painting all over the place. If our preferred size is ignored, then ++ // the labels may not fit inside the slider's bounds. Rather than mucking ++ // with font sizes and possible icon sizes, we'll set the bounds for ++ // the label and let it get clipped. ++ Dimension dim = label.getPreferredSize(); ++ int w = (int) dim.getWidth(); ++ int h = (int) dim.getHeight(); ++ ++ int max = slider.getMaximum(); ++ int min = slider.getMinimum(); ++ ++ if (value > max || value < min) ++ return; ++ ++ // value ++ // | ++ // ------------ ++ // | | ++ // | | ++ // | | ++ // The label must move w/2 to the right to fit directly under the value. ++ int xpos = xPositionForValue(value) - w / 2; ++ int ypos = labelRect.y; ++ ++ // We want to center the label around the xPositionForValue ++ // So we use xpos - w / 2. However, if value is min and the label ++ // is large, we run the risk of going out of bounds. So we bring it back ++ // to 0 if it becomes negative. ++ if (xpos < 0) ++ xpos = 0; ++ ++ // If the label + starting x position is greater than ++ // the x space in the label rectangle, we reset it to the largest ++ // amount possible in the rectangle. This means ugliness. ++ if (xpos + w > labelRect.x + labelRect.width) ++ w = labelRect.x + labelRect.width - xpos; ++ ++ // If the label is too tall. We reset it to the height of the label ++ // rectangle. ++ if (h > labelRect.height) ++ h = labelRect.height; ++ ++ label.setBounds(xpos, ypos, w, h); ++ javax.swing.SwingUtilities.paintComponent(g, label, null, label.getBounds()); ++ } ++ ++ /** ++ * This method paints the label on the vertical slider at the value ++ * specified. The value is not a coordinate. It is a value within the range ++ * of the slider. If the value is not within the range of the slider, this ++ * method will do nothing. This method should not paint outside the ++ * boundaries of the labelRect. ++ * ++ * @param g The {@link Graphics} object to draw with. ++ * @param value The value to paint at. ++ * @param label The label to paint. ++ */ ++ protected void paintVerticalLabel(Graphics g, int value, Component label) ++ { ++ Dimension dim = label.getPreferredSize(); ++ int w = (int) dim.getWidth(); ++ int h = (int) dim.getHeight(); ++ ++ int max = slider.getMaximum(); ++ int min = slider.getMinimum(); ++ ++ if (value > max || value < min) ++ return; ++ ++ int xpos = labelRect.x; ++ int ypos = yPositionForValue(value) - h / 2; ++ ++ if (ypos < 0) ++ ypos = 0; ++ ++ if (ypos + h > labelRect.y + labelRect.height) ++ h = labelRect.y + labelRect.height - ypos; ++ ++ if (w > labelRect.width) ++ w = labelRect.width; ++ ++ label.setBounds(xpos, ypos, w, h); ++ javax.swing.SwingUtilities.paintComponent(g, label, null, label.getBounds()); ++ } ++ ++ /** ++ *

    ++ * This method paints a thumb. There are two types of thumb: ++ *

    ++ *
    ++   *   Vertical         Horizontal
    ++   *    a---b            a-----b
    ++   *    |   |            |      \
    ++   *    e   c            |       c
    ++   *     \ /             |      /
    ++   *      d              e-----d
    ++   *  
    ++ * ++ *

    ++ * In the case of vertical thumbs, we highlight the path b-a-e-d and shadow ++ * the path b-c-d. In the case of horizontal thumbs, we highlight the path ++ * c-b-a-e and shadow the path c-d-e. In both cases we fill the path ++ * a-b-c-d-e before shadows and highlights are drawn. ++ *

    ++ * ++ * @param g The graphics object to paint with ++ */ ++ public void paintThumb(Graphics g) ++ { ++ Color saved_color = g.getColor(); ++ ++ Polygon thumb = new Polygon(); ++ ++ Point a = new Point(thumbRect.x, thumbRect.y); ++ Point b = new Point(a); ++ Point c = new Point(a); ++ Point d = new Point(a); ++ Point e = new Point(a); ++ ++ Polygon bright; ++ Polygon dark; ++ Polygon all; ++ ++ // This will be in X-dimension if the slider is inverted and y if it isn't. ++ int turnPoint; ++ ++ if (slider.getOrientation() == JSlider.HORIZONTAL) ++ { ++ turnPoint = thumbRect.height * 3 / 4; ++ ++ b.translate(thumbRect.width, 0); ++ c.translate(thumbRect.width, turnPoint); ++ d.translate(thumbRect.width / 2, thumbRect.height); ++ e.translate(0, turnPoint); ++ ++ bright = new Polygon(new int[] { b.x, a.x, e.x, d.x }, ++ new int[] { b.y, a.y, e.y, d.y }, 4); ++ ++ dark = new Polygon(new int[] { b.x, c.x, d.x }, ++ new int[] { b.y, c.y, d.y }, 3); ++ all = new Polygon(new int[] { a.x + 1, b.x, c.x, d.x, e.x + 1 }, ++ new int[] { a.y + 1, b.y + 1, c.y, d.y + 1, e.y }, 5); ++ } ++ else ++ { ++ turnPoint = thumbRect.width * 3 / 4; ++ ++ b.translate(turnPoint, 0); ++ c.translate(thumbRect.width, thumbRect.height / 2); ++ d.translate(turnPoint, thumbRect.height); ++ e.translate(0, thumbRect.height); ++ ++ bright = new Polygon(new int[] { c.x, b.x, a.x, e.x }, ++ new int[] { c.y, b.y, a.y, e.y }, 4); ++ ++ dark = new Polygon(new int[] { c.x, d.x, e.x + 1 }, ++ new int[] { c.y, d.y, e.y }, 3); ++ ++ all = new Polygon(new int[] { a.x + 1, b.x, c.x - 1, d.x, e.x + 1 }, ++ new int[] { a.y + 1, b.y + 1, c.y, d.y, e.y }, 5); ++ } ++ ++ g.setColor(Color.WHITE); ++ g.drawPolygon(bright); ++ ++ g.setColor(Color.BLACK); ++ g.drawPolygon(dark); ++ ++ g.setColor(Color.GRAY); ++ g.fillPolygon(all); ++ ++ g.setColor(saved_color); ++ } ++ ++ /** ++ * This method sets the position of the thumbRect. ++ * ++ * @param x The new x position. ++ * @param y The new y position. ++ */ ++ public void setThumbLocation(int x, int y) ++ { ++ thumbRect.x = x; ++ thumbRect.y = y; ++ } ++ ++ /** ++ * This method is used to move the thumb one block in the direction ++ * specified. If the slider snaps to ticks, this method is responsible for ++ * snapping it to a tick after the thumb has been moved. ++ * ++ * @param direction The direction to move in. ++ */ ++ public void scrollByBlock(int direction) ++ { ++ // The direction is -1 for backwards and 1 for forwards. ++ int unit = direction * (slider.getMaximum() - slider.getMinimum()) / 10; ++ ++ int moveTo = slider.getValue() + unit; ++ ++ if (slider.getSnapToTicks()) ++ moveTo = findClosestTick(moveTo); ++ ++ slider.setValue(moveTo); ++ } ++ ++ /** ++ * This method is used to move the thumb one unit in the direction ++ * specified. If the slider snaps to ticks, this method is responsible for ++ * snapping it to a tick after the thumb has been moved. ++ * ++ * @param direction The direction to move in. ++ */ ++ public void scrollByUnit(int direction) ++ { ++ // The direction is -1 for backwards and 1 for forwards. ++ int moveTo = slider.getValue() + direction; ++ ++ if (slider.getSnapToTicks()) ++ moveTo = findClosestTick(moveTo); ++ ++ slider.setValue(moveTo); ++ } ++ ++ /** ++ * This method is called when there has been a click in the track and the ++ * thumb needs to be scrolled on regular intervals. This method is only ++ * responsible for starting the timer and not for stopping it. ++ * ++ * @param dir The direction to move in. ++ */ ++ protected void scrollDueToClickInTrack(int dir) ++ { ++ scrollTimer.stop(); ++ ++ scrollListener.setDirection(dir); ++ scrollListener.setScrollByBlock(true); ++ ++ scrollTimer.start(); ++ } ++ ++ /** ++ * This method returns the X coordinate for the value passed in. ++ * ++ * @param value The value to calculate an x coordinate for. ++ * ++ * @return The x coordinate for the value. ++ */ ++ protected int xPositionForValue(int value) ++ { ++ int min = slider.getMinimum(); ++ int max = slider.getMaximum(); ++ int extent = slider.getExtent(); ++ int len = trackRect.width; ++ ++ int xPos = (max == min) ? 0 : (value - min) * len / (max - min); ++ ++ if (! drawInverted()) ++ xPos += trackRect.x; ++ else ++ { ++ xPos = trackRect.width - xPos; ++ xPos += trackRect.x; ++ } ++ return xPos; ++ } ++ ++ /** ++ * This method returns the y coordinate for the value passed in. ++ * ++ * @param value The value to calculate a y coordinate for. ++ * ++ * @return The y coordinate for the value. ++ */ ++ protected int yPositionForValue(int value) ++ { ++ int min = slider.getMinimum(); ++ int max = slider.getMaximum(); ++ int extent = slider.getExtent(); ++ int len = trackRect.height; ++ ++ int yPos = (max == min) ? 0 : (value - min) * len / (max - min); ++ ++ if (! drawInverted()) ++ { ++ yPos = trackRect.height - yPos; ++ yPos += trackRect.y; ++ } ++ else ++ yPos += trackRect.y; ++ return yPos; ++ } ++ ++ /** ++ * This method returns the value in the slider's range given the y ++ * coordinate. If the value is out of range, it will return the closest ++ * legal value. ++ * ++ * @param yPos The y coordinate to calculate a value for. ++ * ++ * @return The value for the y coordinate. ++ */ ++ public int valueForYPosition(int yPos) ++ { ++ int min = slider.getMinimum(); ++ int max = slider.getMaximum(); ++ int len = trackRect.height; ++ ++ int value; ++ ++ // If the length is 0, you shouldn't be able to even see where the slider is. ++ // This really shouldn't ever happen, but just in case, we'll return the middle. ++ if (len == 0) ++ return ((max - min) / 2); ++ ++ if (! drawInverted()) ++ value = ((len - (yPos - trackRect.y)) * (max - min) / len + min); ++ else ++ value = ((yPos - trackRect.y) * (max - min) / len + min); ++ ++ // If this isn't a legal value, then we'll have to move to one now. ++ if (value > max) ++ value = max; ++ else if (value < min) ++ value = min; ++ return value; ++ } ++ ++ /** ++ * This method returns the value in the slider's range given the x ++ * coordinate. If the value is out of range, it will return the closest ++ * legal value. ++ * ++ * @param xPos The x coordinate to calculate a value for. ++ * ++ * @return The value for the x coordinate. ++ */ ++ public int valueForXPosition(int xPos) ++ { ++ int min = slider.getMinimum(); ++ int max = slider.getMaximum(); ++ int len = trackRect.width; ++ ++ int value; ++ ++ // If the length is 0, you shouldn't be able to even see where the slider is. ++ // This really shouldn't ever happen, but just in case, we'll return the middle. ++ if (len == 0) ++ return ((max - min) / 2); ++ ++ if (! drawInverted()) ++ value = ((xPos - trackRect.x) * (max - min) / len + min); ++ else ++ value = ((len - (xPos - trackRect.x)) * (max - min) / len + min); ++ ++ // If this isn't a legal value, then we'll have to move to one now. ++ if (value > max) ++ value = max; ++ else if (value < min) ++ value = min; ++ return value; ++ } ++ ++ /** ++ * This method finds the closest value that has a tick associated with it. ++ * ++ * @param value The value to search from. ++ * ++ * @return The closest value that has a tick associated with it. ++ */ ++ private int findClosestTick(int value) ++ { ++ int min = slider.getMinimum(); ++ int max = slider.getMaximum(); ++ int majorSpace = slider.getMajorTickSpacing(); ++ int minorSpace = slider.getMinorTickSpacing(); ++ ++ // The default value to return is value + minor or ++ // value + major. ++ // Initializing at min - value leaves us with a default ++ // return value of min, which always has tick marks ++ // (if ticks are painted). ++ int minor = min - value; ++ int major = min - value; ++ ++ // If there are no major tick marks or minor tick marks ++ // e.g. snap is set to true but no ticks are set, then ++ // we can just return the value. ++ if (majorSpace <= 0 && minorSpace <= 0) ++ return value; ++ ++ // First check the major ticks. ++ if (majorSpace > 0) ++ { ++ int lowerBound = (value - min) / majorSpace; ++ int majLower = majorSpace * lowerBound + min; ++ int majHigher = majorSpace * (lowerBound + 1) + min; ++ ++ if (majHigher <= max && majHigher - value <= value - majLower) ++ major = majHigher - value; ++ else ++ major = majLower - value; ++ } ++ ++ if (minorSpace > 0) ++ { ++ int lowerBound = value / minorSpace; ++ int minLower = minorSpace * lowerBound; ++ int minHigher = minorSpace * (lowerBound + 1); ++ ++ if (minHigher <= max && minHigher - value <= value - minLower) ++ minor = minHigher - value; ++ else ++ minor = minLower - value; ++ } ++ ++ // Give preference to minor ticks ++ if (Math.abs(minor) > Math.abs(major)) ++ return value + major; ++ else ++ return value + minor; ++ } ++} +Index: javax/swing/plaf/basic/BasicSpinnerUI.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicSpinnerUI.java +diff -N javax/swing/plaf/basic/BasicSpinnerUI.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicSpinnerUI.java 6 Sep 2004 16:36:07 -0000 +@@ -0,0 +1,572 @@ ++/* SpinnerUI.java -- ++ Copyright (C) 2003 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.plaf.basic; ++ ++import java.awt.Component; ++import java.awt.Container; ++import java.awt.Dimension; ++import java.awt.Insets; ++import java.awt.LayoutManager; ++import java.awt.event.ActionEvent; ++import java.awt.event.ActionListener; ++import java.awt.event.MouseAdapter; ++import java.awt.event.MouseEvent; ++import java.beans.PropertyChangeEvent; ++import java.beans.PropertyChangeListener; ++import javax.swing.JButton; ++import javax.swing.JComponent; ++import javax.swing.JSpinner; ++import javax.swing.Timer; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; ++import javax.swing.plaf.ComponentUI; ++import javax.swing.plaf.SpinnerUI; ++ ++ ++/** ++ * DOCUMENT ME! ++ * ++ * @author Ka-Hing Cheung ++ * ++ * @see javax.swing.JSpinner ++ * @since 1.4 ++ */ ++public class BasicSpinnerUI extends SpinnerUI ++{ ++ /** ++ * Creates a new ComponentUI for the specified ++ * JComponent ++ * ++ * @param c DOCUMENT ME! ++ * ++ * @return a ComponentUI ++ */ ++ public static ComponentUI createUI(JComponent c) ++ { ++ return new BasicSpinnerUI(); ++ } ++ ++ /** ++ * Creates an editor component. Really, it just returns ++ * JSpinner.getEditor() ++ * ++ * @return a JComponent as an editor ++ * ++ * @see javax.swing.JSpinner#getEditor ++ */ ++ protected JComponent createEditor() ++ { ++ return spinner.getEditor(); ++ } ++ ++ /** ++ * Creates a LayoutManager that layouts the sub components. The ++ * subcomponents are identifies by the constraint "Next", "Previous" and ++ * "Editor" ++ * ++ * @return a LayoutManager ++ * ++ * @see java.awt.LayoutManager ++ */ ++ protected LayoutManager createLayout() ++ { ++ return new DefaultLayoutManager(); ++ } ++ ++ /** ++ * Creates the "Next" button ++ * ++ * @return the next button component ++ */ ++ protected Component createNextButton() ++ { ++ JButton button = new BasicArrowButton(BasicArrowButton.NORTH); ++ return button; ++ } ++ ++ /** ++ * Creates the "Previous" button ++ * ++ * @return the previous button component ++ */ ++ protected Component createPreviousButton() ++ { ++ JButton button = new BasicArrowButton(BasicArrowButton.SOUTH); ++ return button; ++ } ++ ++ /** ++ * Creates the PropertyChangeListener that will be attached by ++ * installListeners. It should watch for the "editor" ++ * property, when it's changed, replace the old editor with the new one, ++ * probably by calling replaceEditor ++ * ++ * @return a PropertyChangeListener ++ * ++ * @see #replaceEditor ++ */ ++ protected PropertyChangeListener createPropertyChangeListener() ++ { ++ return new PropertyChangeListener() ++ { ++ public void propertyChange(PropertyChangeEvent evt) ++ { ++ // FIXME: Add check for enabled property change. Need to ++ // disable the buttons. ++ if ("editor".equals(evt.getPropertyName())) ++ BasicSpinnerUI.this.replaceEditor((JComponent) evt.getOldValue(), ++ (JComponent) evt.getNewValue()); ++ } ++ }; ++ } ++ ++ /** ++ * Called by installUI. This should set various defaults ++ * obtained from UIManager.getLookAndFeelDefaults, as well as ++ * set the layout obtained from createLayout ++ * ++ * @see #javax.swing.UIManager#getLookAndFeelDefaults ++ * @see #createLayout ++ * @see #installUI ++ */ ++ protected void installDefaults() ++ { ++ /* most of it copied from BasicLabelUI, I don't know what keys are ++ available, so someone may want to update this. Hence: TODO ++ */ ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ /* ++ spinner.setForeground(defaults.getColor("Spinner.foreground")); ++ spinner.setBackground(defaults.getColor("Spinner.background")); ++ spinner.setFont(defaults.getFont("Spinner.font")); ++ spinner.setBorder(defaults.getBorder("Spinner.border")); ++ */ ++ spinner.setLayout(createLayout()); ++ } ++ ++ /* ++ * Called by installUI, which basically adds the ++ * PropertyChangeListener created by ++ * createPropertyChangeListener ++ * ++ * @see #createPropertyChangeListener ++ * @see #installUI ++ */ ++ protected void installListeners() ++ { ++ spinner.addPropertyChangeListener(listener); ++ } ++ ++ /* ++ * Install listeners to the next button so that it increments the model ++ */ ++ protected void installNextButtonListeners(Component c) ++ { ++ c.addMouseListener(new MouseAdapter() ++ { ++ public void mousePressed(MouseEvent evt) ++ { ++ if (! spinner.isEnabled()) ++ return; ++ increment(); ++ timer.setInitialDelay(500); ++ timer.start(); ++ } ++ ++ public void mouseReleased(MouseEvent evt) ++ { ++ timer.stop(); ++ } ++ ++ void increment() ++ { ++ Object next = BasicSpinnerUI.this.spinner.getNextValue(); ++ if (next != null) ++ BasicSpinnerUI.this.spinner.getModel().setValue(next); ++ } ++ ++ volatile boolean mouseDown = false; ++ Timer timer = new Timer(50, ++ new ActionListener() ++ { ++ public void actionPerformed(ActionEvent event) ++ { ++ increment(); ++ } ++ }); ++ }); ++ } ++ ++ /* ++ * Install listeners to the previous button so that it decrements the model ++ */ ++ protected void installPreviousButtonListeners(Component c) ++ { ++ c.addMouseListener(new MouseAdapter() ++ { ++ public void mousePressed(MouseEvent evt) ++ { ++ if (! spinner.isEnabled()) ++ return; ++ decrement(); ++ timer.setInitialDelay(500); ++ timer.start(); ++ } ++ ++ public void mouseReleased(MouseEvent evt) ++ { ++ timer.stop(); ++ } ++ ++ void decrement() ++ { ++ Object prev = BasicSpinnerUI.this.spinner.getPreviousValue(); ++ if (prev != null) ++ BasicSpinnerUI.this.spinner.getModel().setValue(prev); ++ } ++ ++ volatile boolean mouseDown = false; ++ Timer timer = new Timer(50, ++ new ActionListener() ++ { ++ public void actionPerformed(ActionEvent event) ++ { ++ decrement(); ++ } ++ }); ++ }); ++ } ++ ++ /** ++ * Install this UI to the JComponent, which in reality, is a ++ * JSpinner. Calls installDefaults, ++ * installListeners, and also adds the buttons and editor. ++ * ++ * @param c DOCUMENT ME! ++ * ++ * @see #installDefaults ++ * @see #installListeners ++ * @see #createNextButton ++ * @see #createPreviousButton ++ * @see #createEditor ++ */ ++ public void installUI(JComponent c) ++ { ++ super.installUI(c); ++ ++ spinner = (JSpinner) c; ++ ++ installDefaults(); ++ installListeners(); ++ ++ Component next = createNextButton(); ++ Component previous = createPreviousButton(); ++ ++ installNextButtonListeners(next); ++ installPreviousButtonListeners(previous); ++ ++ c.add(createEditor(), "Editor"); ++ c.add(next, "Next"); ++ c.add(previous, "Previous"); ++ } ++ ++ /** ++ * Replace the old editor with the new one ++ * ++ * @param oldEditor the old editor ++ * @param newEditor the new one to replace with ++ */ ++ protected void replaceEditor(JComponent oldEditor, JComponent newEditor) ++ { ++ spinner.remove(oldEditor); ++ spinner.add(newEditor); ++ } ++ ++ /** ++ * The reverse of installDefaults. Called by ++ * uninstallUI ++ */ ++ protected void uninstallDefaults() ++ { ++ spinner.setLayout(null); ++ } ++ ++ /** ++ * The reverse of installListeners, called by ++ * uninstallUI ++ */ ++ protected void uninstallListeners() ++ { ++ spinner.removePropertyChangeListener(listener); ++ } ++ ++ /** ++ * Called when the current L&F is replaced with another one, should call ++ * uninstallDefaults and uninstallListeners as ++ * well as remove the next/previous buttons and the editor ++ * ++ * @param c DOCUMENT ME! ++ */ ++ public void uninstallUI(JComponent c) ++ { ++ super.uninstallUI(c); ++ ++ uninstallDefaults(); ++ uninstallListeners(); ++ c.removeAll(); ++ } ++ ++ /** The spinner for this UI */ ++ protected JSpinner spinner; ++ ++ /** DOCUMENT ME! */ ++ private PropertyChangeListener listener = createPropertyChangeListener(); ++ ++ /** ++ * DOCUMENT ME! ++ */ ++ private class DefaultLayoutManager implements LayoutManager ++ { ++ /** ++ * DOCUMENT ME! ++ * ++ * @param parent DOCUMENT ME! ++ */ ++ public void layoutContainer(Container parent) ++ { ++ synchronized (parent.getTreeLock()) ++ { ++ Insets i = parent.getInsets(); ++ boolean l2r = parent.getComponentOrientation().isLeftToRight(); ++ /* ++ -------------- -------------- ++ | | n | | n | | ++ | e | - | or | - | e | ++ | | p | | p | | ++ -------------- -------------- ++ */ ++ Dimension e = minSize(editor); ++ Dimension n = minSize(next); ++ Dimension p = minSize(previous); ++ Dimension s = spinner.getPreferredSize(); ++ ++ int x = l2r ? i.left : i.right; ++ int y = i.top; ++ int w = Math.max(p.width, n.width); ++ int h = Math.max(p.height, n.height); ++ h = Math.max(h, e.height / 2); ++ int e_width = s.width - w; ++ ++ if (l2r) ++ { ++ setBounds(editor, x, y + (s.height - e.height) / 2, e_width, ++ e.height); ++ x += e_width; ++ ++ setBounds(next, x, y, w, h); ++ y += h; ++ ++ setBounds(previous, x, y, w, h); ++ } ++ else ++ { ++ setBounds(next, x, y + (s.height - e.height) / 2, w, h); ++ y += h; ++ ++ setBounds(previous, x, y, w, h); ++ x += w; ++ y -= h; ++ ++ setBounds(editor, x, y, e_width, e.height); ++ } ++ } ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param parent DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public Dimension minimumLayoutSize(Container parent) ++ { ++ Dimension d = new Dimension(); ++ ++ if (editor != null) ++ { ++ Dimension tmp = editor.getMinimumSize(); ++ d.width += tmp.width; ++ d.height = tmp.height; ++ } ++ ++ int nextWidth = 0; ++ int previousWidth = 0; ++ int otherHeight = 0; ++ ++ if (next != null) ++ { ++ Dimension tmp = next.getMinimumSize(); ++ nextWidth = tmp.width; ++ otherHeight += tmp.height; ++ } ++ if (previous != null) ++ { ++ Dimension tmp = previous.getMinimumSize(); ++ previousWidth = tmp.width; ++ otherHeight += tmp.height; ++ } ++ ++ d.height = Math.max(d.height, otherHeight); ++ d.width += Math.max(nextWidth, previousWidth); ++ ++ return d; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param parent DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ public Dimension preferredLayoutSize(Container parent) ++ { ++ Dimension d = new Dimension(); ++ ++ if (editor != null) ++ { ++ Dimension tmp = editor.getPreferredSize(); ++ d.width += Math.max(tmp.width, 40); ++ d.height = tmp.height; ++ } ++ ++ int nextWidth = 0; ++ int previousWidth = 0; ++ int otherHeight = 0; ++ ++ if (next != null) ++ { ++ Dimension tmp = next.getPreferredSize(); ++ nextWidth = tmp.width; ++ otherHeight += tmp.height; ++ } ++ if (previous != null) ++ { ++ Dimension tmp = previous.getPreferredSize(); ++ previousWidth = tmp.width; ++ otherHeight += tmp.height; ++ } ++ ++ d.height = Math.max(d.height, otherHeight); ++ d.width += Math.max(nextWidth, previousWidth); ++ ++ return d; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param child DOCUMENT ME! ++ */ ++ public void removeLayoutComponent(Component child) ++ { ++ if (child == editor) ++ editor = null; ++ else if (child == next) ++ next = null; ++ else if (previous == child) ++ previous = null; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param name DOCUMENT ME! ++ * @param child DOCUMENT ME! ++ */ ++ public void addLayoutComponent(String name, Component child) ++ { ++ if ("Editor".equals(name)) ++ editor = child; ++ else if ("Next".equals(name)) ++ next = child; ++ else if ("Previous".equals(name)) ++ previous = child; ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param c DOCUMENT ME! ++ * ++ * @return DOCUMENT ME! ++ */ ++ private Dimension minSize(Component c) ++ { ++ if (c == null) ++ return new Dimension(); ++ else ++ return c.getMinimumSize(); ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param c DOCUMENT ME! ++ * @param x DOCUMENT ME! ++ * @param y DOCUMENT ME! ++ * @param w DOCUMENT ME! ++ * @param h DOCUMENT ME! ++ */ ++ private void setBounds(Component c, int x, int y, int w, int h) ++ { ++ if (c != null) ++ c.setBounds(x, y, w, h); ++ } ++ ++ /** DOCUMENT ME! */ ++ private Component editor; ++ ++ /** DOCUMENT ME! */ ++ private Component next; ++ ++ /** DOCUMENT ME! */ ++ private Component previous; ++ } ++} +Index: javax/swing/plaf/basic/BasicSplitPaneDivider.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider.java,v +retrieving revision 1.1 +diff -u -r1.1 BasicSplitPaneDivider.java +--- javax/swing/plaf/basic/BasicSplitPaneDivider.java 24 Jun 2003 09:48:42 -0000 1.1 ++++ javax/swing/plaf/basic/BasicSplitPaneDivider.java 6 Sep 2004 16:36:07 -0000 +@@ -1,5 +1,5 @@ + /* BasicSplitPaneDivider.java +- Copyright (C) 2003 Free Software Foundation, Inc. ++ Copyright (C) 2003, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,14 +35,15 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing.plaf.basic; + ++import java.awt.Color; + import java.awt.Component; + import java.awt.Container; + import java.awt.Dimension; + import java.awt.Graphics; + import java.awt.Insets; ++import java.awt.LayoutManager; + import java.awt.event.MouseAdapter; + import java.awt.event.MouseEvent; + import java.awt.event.MouseMotionListener; +@@ -50,173 +51,197 @@ + import java.beans.PropertyChangeListener; + import javax.swing.JButton; + import javax.swing.JSplitPane; ++import javax.swing.SwingConstants; + import javax.swing.border.Border; + + + /** +- * The divider that separates the two parts of a JSplitPane in the +- * Basic look and feel. +- * +- *

    Implementation status: We do not have a real implementation yet. +- * Currently, it is mostly a stub to allow compiling other parts of +- * the javax.swing.plaf.basic package, although some parts are already ++ * The divider that separates the two parts of a JSplitPane in the Basic look ++ * and feel. ++ * ++ *

    ++ * Implementation status: We do not have a real implementation yet. Currently, ++ * it is mostly a stub to allow compiling other parts of the ++ * javax.swing.plaf.basic package, although some parts are already + * functional. ++ *

    + * +- * @author Sascha Brawer (brawer@dandelis.ch) ++ * @author Sascha Brawer (brawer_AT_dandelis.ch) + */ +-public class BasicSplitPaneDivider +- extends Container ++public class BasicSplitPaneDivider extends Container + implements PropertyChangeListener + { + /** +- * Determined using the serialver tool +- * of Apple/Sun JDK 1.3.1 on MacOS X 10.1.5. ++ * Determined using the serialver tool of Apple/Sun JDK 1.3.1 ++ * on MacOS X 10.1.5. + */ + static final long serialVersionUID = 1463404307042803342L; + +- + /** +- * The width and height of the little buttons for showing and +- * hiding parts of a JSplitPane in a single mouse click. ++ * The width and height of the little buttons for showing and hiding parts ++ * of a JSplitPane in a single mouse click. + */ + protected static final int ONE_TOUCH_SIZE = 6; + +- +- // FIXME: Javadoc. ++ /** The distance the one touch buttons will sit from the divider's edges. */ + protected static final int ONE_TOUCH_OFFSET = 2; + +- + /** + * An object that performs the tasks associated with an ongoing drag +- * operation, or null if the user is currently not +- * dragging the divider. ++ * operation, or null if the user is currently not dragging ++ * the divider. + */ + protected DragController dragger; + +- + /** + * The delegate object that is responsible for the UI of the + * JSplitPane that contains this divider. + */ + protected BasicSplitPaneUI splitPaneUI; + +- +- /** +- * The thickness of the divider in pixels. +- */ ++ /** The thickness of the divider in pixels. */ + protected int dividerSize; +- + +- /** +- * A divider that is used for layout purposes. +- */ ++ /** A divider that is used for layout purposes. */ + protected Component hiddenDivider; + +- +- /** +- * The JSplitPane containing this divider. +- */ ++ /** The JSplitPane containing this divider. */ + protected JSplitPane splitPane; + +- + /** +- * The listener for handling mouse events from both the divider +- * and the containing JSplitPane. +- * +- *

    The reason for also handling MouseEvents from the containing +- * JSplitPane is that users should be able to start +- * a drag gesture from inside the JSplitPane, but slightly outisde +- * the divider. ++ * The listener for handling mouse events from both the divider and the ++ * containing JSplitPane. ++ * ++ *

    ++ * The reason for also handling MouseEvents from the containing ++ * JSplitPane is that users should be able to start a drag ++ * gesture from inside the JSplitPane, but slightly outisde the divider. ++ *

    + */ + protected MouseHandler mouseHandler = new MouseHandler(); + +- + /** +- * The current orientation of the containing JSplitPane, +- * which is either {@link javax.swing.JSplitPane#HORIZONTAL_SPLIT} +- * or {@link javax.swing.JSplitPane#VERTICAL_SPLIT}. ++ * The current orientation of the containing JSplitPane, which ++ * is either {@link javax.swing.JSplitPane#HORIZONTAL_SPLIT} or {@link ++ * javax.swing.JSplitPane#VERTICAL_SPLIT}. + */ + protected int orientation; + +- + /** +- * The button for showing and hiding the left (or top) component +- * of the JSplitPane. ++ * The button for showing and hiding the left (or top) component of the ++ * JSplitPane. + */ + protected JButton leftButton; + +- + /** +- * The button for showing and hiding the right (or bottom) component +- * of the JSplitPane. ++ * The button for showing and hiding the right (or bottom) component of the ++ * JSplitPane. + */ + protected JButton rightButton; + +- + /** +- * The border of this divider. Typically, this will be an instance of +- * {@link javax.swing.plaf.basic.BasicBorders.SplitPaneDividerBorder}. ++ * The border of this divider. Typically, this will be an instance of {@link ++ * javax.swing.plaf.basic.BasicBorders.SplitPaneDividerBorder}. + * + * @see #getBorder() + * @see #setBorder(javax.swing.border.Border) + */ + private Border border; + ++ // This is not a pixel count. ++ // This int should be able to take 3 values. ++ // left (top), middle, right(bottom) ++ // 0 1 2 ++ ++ /** Keeps track of where the divider should be placed when using one touch expand ++ * buttons. */ ++ private transient int currentDividerLocation = 1; ++ ++ private transient Border tmpBorder = new Border() ++ { ++ public Insets getBorderInsets(Component c) ++ { ++ return new Insets(2, 2, 2, 2); ++ } ++ ++ public boolean isBorderOpaque() ++ { ++ return false; ++ } ++ ++ public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) ++ { ++ Color saved = g.getColor(); ++ g.setColor(Color.BLACK); ++ ++ g.drawRect(x + 2, y + 2, width - 4, height - 4); ++ ++ g.setColor(saved); ++ } ++ }; + + /** + * Constructs a new divider. + * +- * @param ui the UI delegate of the enclosing +- * JSplitPane. ++ * @param ui the UI delegate of the enclosing JSplitPane. + */ + public BasicSplitPaneDivider(BasicSplitPaneUI ui) + { ++ setLayout(new DividerLayout()); + setBasicSplitPaneUI(ui); ++ setDividerSize(splitPane.getDividerSize()); ++ setBorder(tmpBorder); + } + +- + /** +- * Sets the delegate object that is responsible for the UI of the +- * {@link javax.swing.JSplitPane} containing this divider. ++ * Sets the delegate object that is responsible for the UI of the {@link ++ * javax.swing.JSplitPane} containing this divider. + * +- * @param newUI the UI delegate, or null to release +- * the connection to the current delegate. ++ * @param newUI the UI delegate, or null to release the ++ * connection to the current delegate. + */ + public void setBasicSplitPaneUI(BasicSplitPaneUI newUI) + { + /* Remove the connection to the existing JSplitPane. */ + if (splitPane != null) +- { +- splitPane.removePropertyChangeListener(this); +- splitPane.removeMouseListener(mouseHandler); +- splitPane.removeMouseMotionListener(mouseHandler); +- splitPane = null; +- } +- ++ { ++ splitPane.removePropertyChangeListener(this); ++ splitPane.removeMouseListener(mouseHandler); ++ splitPane.removeMouseMotionListener(mouseHandler); ++ removeMouseListener(mouseHandler); ++ removeMouseMotionListener(mouseHandler); ++ splitPane = null; ++ hiddenDivider = null; ++ } ++ + /* Establish the connection to the new JSplitPane. */ + splitPaneUI = newUI; + if (splitPaneUI != null) + splitPane = newUI.getSplitPane(); + if (splitPane != null) +- { +- splitPane.addPropertyChangeListener(this); +- splitPane.addMouseListener(mouseHandler); +- splitPane.addMouseMotionListener(mouseHandler); +- orientation = splitPane.getOrientation(); +- } ++ { ++ splitPane.addPropertyChangeListener(this); ++ splitPane.addMouseListener(mouseHandler); ++ splitPane.addMouseMotionListener(mouseHandler); ++ addMouseListener(mouseHandler); ++ addMouseMotionListener(mouseHandler); ++ hiddenDivider = splitPaneUI.getNonContinuousLayoutDivider(); ++ orientation = splitPane.getOrientation(); ++ oneTouchExpandableChanged(); ++ } + } +- + + /** +- * Returns the delegate object that is responsible for the UI of the +- * {@link javax.swing.JSplitPane} containing this divider. ++ * Returns the delegate object that is responsible for the UI of the {@link ++ * javax.swing.JSplitPane} containing this divider. ++ * ++ * @return The UI for the JSplitPane. + */ + public BasicSplitPaneUI getBasicSplitPaneUI() + { + return splitPaneUI; + } + +- + /** + * Sets the thickness of the divider. + * +@@ -227,37 +252,40 @@ + this.dividerSize = newSize; + } + +- + /** + * Retrieves the thickness of the divider. ++ * ++ * @return The thickness of the divider. + */ + public int getDividerSize() + { + return dividerSize; + } +- +- ++ + /** + * Sets the border of this divider. + * + * @param border the new border. Typically, this will be an instance of +- * {@link javax.swing.plaf.basic.BasicBorders.SplitPaneDividerBorder}. ++ * {@link ++ * javax.swing.plaf.basic.BasicBorders.SplitPaneDividerBorder}. + * + * @since 1.3 + */ + public void setBorder(Border border) + { +- Border oldValue = this.border; +- this.border = border; +- firePropertyChange("border", oldValue, border); ++ if (border != this.border) ++ { ++ Border oldValue = this.border; ++ this.border = border; ++ firePropertyChange("border", oldValue, border); ++ } + } + +- + /** + * Retrieves the border of this divider. + * +- * @return the current border, or null if no border +- * has been set. ++ * @return the current border, or null if no border has been ++ * set. + * + * @since 1.3 + */ +@@ -265,13 +293,12 @@ + { + return border; + } +- + + /** +- * Retrieves the insets of the divider. If a border has been +- * installed on the divider, the result of calling its +- * getBorderInsets method is returned. Otherwise, +- * the inherited implementation will be invoked. ++ * Retrieves the insets of the divider. If a border has been installed on ++ * the divider, the result of calling its getBorderInsets ++ * method is returned. Otherwise, the inherited implementation will be ++ * invoked. + * + * @see javax.swing.border.Border#getBorderInsets(java.awt.Component) + */ +@@ -282,42 +309,56 @@ + else + return super.getInsets(); + } +- +- ++ + /** + * Returns the preferred size of this divider, which is +- * dividerSize by dividerSize +- * pixels. ++ * dividerSize by dividerSize pixels. ++ * ++ * @return The preferred size of the divider. + */ + public Dimension getPreferredSize() + { +- return new Dimension(dividerSize, dividerSize); ++ return getLayout().preferredLayoutSize(this); + } + +- + /** + * Returns the minimal size of this divider, which is +- * dividerSize by dividerSize +- * pixels. ++ * dividerSize by dividerSize pixels. ++ * ++ * @return The minimal size of the divider. + */ + public Dimension getMinimumSize() + { + return getPreferredSize(); + } +- +- ++ + /** +- * Processes events from the JSplitPane that contains +- * this divider. ++ * Processes events from the JSplitPane that contains this ++ * divider. ++ * ++ * @param e The PropertyChangeEvent. + */ + public void propertyChange(PropertyChangeEvent e) + { +- // FIXME: Not yet implemented. ++ if (e.getPropertyName().equals(JSplitPane.ONE_TOUCH_EXPANDABLE_PROPERTY)) ++ oneTouchExpandableChanged(); ++ else if (e.getPropertyName().equals(JSplitPane.ORIENTATION_PROPERTY)) ++ { ++ orientation = splitPane.getOrientation(); ++ if (splitPane.isOneTouchExpandable()) ++ { ++ layout(); ++ repaint(); ++ } ++ } ++ else if (e.getPropertyName().equals(JSplitPane.DIVIDER_SIZE_PROPERTY)) ++ dividerSize = splitPane.getDividerSize(); + } + +- + /** + * Paints the divider by painting its border. ++ * ++ * @param g The Graphics Object to paint with. + */ + public void paint(Graphics g) + { +@@ -325,50 +366,85 @@ + + super.paint(g); + if (border != null) +- { +- dividerSize = getSize(); +- border.paintBorder(this, g, 0, 0, dividerSize.width, dividerSize.height); +- //System.out.println(dividerSize); +- //g.setColor(java.awt.Color.white); +- //g.drawRect(0, 0, 5, 5); +- } ++ { ++ dividerSize = getSize(); ++ border.paintBorder(this, g, 0, 0, dividerSize.width, dividerSize.height); ++ } + } + +- + /** +- * Reacts to changes of the oneToughExpandable +- * property of the containing JSplitPane. ++ * Reacts to changes of the oneToughExpandable property of the ++ * containing JSplitPane. + */ + protected void oneTouchExpandableChanged() + { +- // FIXME: Not yet implemented. ++ if (splitPane.isOneTouchExpandable()) ++ { ++ leftButton = createLeftOneTouchButton(); ++ rightButton = createRightOneTouchButton(); ++ add(leftButton); ++ add(rightButton); ++ ++ leftButton.addMouseListener(mouseHandler); ++ rightButton.addMouseListener(mouseHandler); ++ ++ // Set it to 1. ++ currentDividerLocation = 1; ++ } ++ else ++ { ++ if (leftButton != null && rightButton != null) ++ { ++ leftButton.removeMouseListener(mouseHandler); ++ rightButton.removeMouseListener(mouseHandler); ++ ++ remove(leftButton); ++ remove(rightButton); ++ leftButton = null; ++ rightButton = null; ++ } ++ } ++ layout(); ++ repaint(); + } + +- + /** +- * Creates a button for showing and hiding the left (or top) +- * part of a JSplitPane. ++ * Creates a button for showing and hiding the left (or top) part of a ++ * JSplitPane. ++ * ++ * @return The left one touch button. + */ + protected JButton createLeftOneTouchButton() + { +- return new OneTouchButton(/* left */ true); +- } ++ int dir = SwingConstants.WEST; ++ if (orientation == JSplitPane.VERTICAL_SPLIT) ++ dir = SwingConstants.NORTH; ++ JButton button = new BasicArrowButton(dir); ++ button.setBorderPainted(false); + ++ return button; ++ } + + /** +- * Creates a button for showing and hiding the right (or bottom) +- * part of a JSplitPane. ++ * Creates a button for showing and hiding the right (or bottom) part of a ++ * JSplitPane. ++ * ++ * @return The right one touch button. + */ + protected JButton createRightOneTouchButton() + { +- return new OneTouchButton(/* left */ false); ++ int dir = SwingConstants.EAST; ++ if (orientation == JSplitPane.VERTICAL_SPLIT) ++ dir = SwingConstants.SOUTH; ++ JButton button = new BasicArrowButton(dir); ++ button.setBorderPainted(false); ++ return button; + } +- + + /** + * Prepares the divider for dragging by calling the +- * startDragging method of the UI delegate of the +- * enclosing JSplitPane. ++ * startDragging method of the UI delegate of the enclosing ++ * JSplitPane. + * + * @see BasicSplitPaneUI#startDragging() + */ +@@ -378,15 +454,14 @@ + splitPaneUI.startDragging(); + } + +- + /** + * Drags the divider to a given location by calling the +- * dragDividerTo method of the UI delegate of the +- * enclosing JSplitPane. ++ * dragDividerTo method of the UI delegate of the enclosing ++ * JSplitPane. + * + * @param location the new location of the divider. + * +- * @see BasicSplitPaneUI#dragDividerTo(int location) ++ * @see BasicSplitPaneUI#dragDividerTo(int location) + */ + protected void dragDividerTo(int location) + { +@@ -394,11 +469,9 @@ + splitPaneUI.dragDividerTo(location); + } + +- + /** +- * Finishes a dragging gesture by calling the +- * finishDraggingTo method of the UI delegate of the +- * enclosing JSplitPane. ++ * Finishes a dragging gesture by calling the finishDraggingTo ++ * method of the UI delegate of the enclosing JSplitPane. + * + * @param location the new, final location of the divider. + * +@@ -410,125 +483,424 @@ + splitPaneUI.finishDraggingTo(location); + } + ++ /** ++ * This helper method moves the divider to one of the ++ * three locations when using one touch expand buttons. ++ * Location 0 is the left (or top) most location. ++ * Location 1 is the middle. ++ * Location 2 is the right (or bottom) most location. ++ * ++ * @param locationIndex The location to move to. ++ */ ++ private void moveDividerTo(int locationIndex) ++ { ++ Insets insets = splitPane.getInsets(); ++ switch (locationIndex) ++ { ++ case 1: ++ splitPane.setDividerLocation(splitPane.getLastDividerLocation()); ++ break; ++ case 0: ++ int top = (orientation == JSplitPane.HORIZONTAL_SPLIT) ? insets.left ++ : insets.top; ++ splitPane.setDividerLocation(top); ++ break; ++ case 2: ++ int bottom; ++ if (orientation == JSplitPane.HORIZONTAL_SPLIT) ++ bottom = splitPane.getBounds().width - insets.right - dividerSize; ++ else ++ bottom = splitPane.getBounds().height - insets.bottom - dividerSize; ++ splitPane.setDividerLocation(bottom); ++ break; ++ } ++ } + + /** +- * The listener for handling mouse events from both the divider +- * and the containing JSplitPane. +- * +- *

    The reason for also handling MouseEvents from the containing +- * JSplitPane is that users should be able to start +- * a drag gesture from inside the JSplitPane, but slightly outisde +- * the divider. ++ * The listener for handling mouse events from both the divider and the ++ * containing JSplitPane. ++ * ++ *

    ++ * The reason for also handling MouseEvents from the containing ++ * JSplitPane is that users should be able to start a drag ++ * gesture from inside the JSplitPane, but slightly outisde the divider. ++ *

    + * +- * @author Sascha Brawer (brawer@dandelis.ch) ++ * @author Sascha Brawer (brawer_AT_dandelis.ch) + */ +- protected class MouseHandler +- extends MouseAdapter ++ protected class MouseHandler extends MouseAdapter + implements MouseMotionListener + { +- ++ /** Keeps track of whether a drag is occurring. */ ++ private transient boolean isDragging; ++ ++ /** ++ * This method is called when the mouse is pressed. ++ * ++ * @param e The MouseEvent. ++ */ + public void mousePressed(MouseEvent e) + { +- // FIXME: Not yet implemented. ++ if (splitPane.isOneTouchExpandable()) ++ { ++ if (e.getSource() == leftButton) ++ { ++ currentDividerLocation--; ++ if (currentDividerLocation < 0) ++ currentDividerLocation = 0; ++ moveDividerTo(currentDividerLocation); ++ return; ++ } ++ else if (e.getSource() == rightButton) ++ { ++ currentDividerLocation++; ++ if (currentDividerLocation > 2) ++ currentDividerLocation = 2; ++ moveDividerTo(currentDividerLocation); ++ return; ++ } ++ } ++ isDragging = true; ++ currentDividerLocation = 1; ++ if (orientation == JSplitPane.HORIZONTAL_SPLIT) ++ dragger = new DragController(e); ++ else ++ dragger = new VerticalDragController(e); ++ prepareForDragging(); + } + +- ++ /** ++ * This method is called when the mouse is released. ++ * ++ * @param e The MouseEvent. ++ */ + public void mouseReleased(MouseEvent e) + { +- // FIXME: Not yet implemented. ++ if (isDragging) ++ dragger.completeDrag(e); ++ isDragging = false; + } + +- + /** +- * Repeatedly invoked when the user is dragging the mouse cursor +- * while having pressed a mouse button. ++ * Repeatedly invoked when the user is dragging the mouse cursor while ++ * having pressed a mouse button. ++ * ++ * @param e The MouseEvent. + */ + public void mouseDragged(MouseEvent e) + { +- // FIXME: Not yet implemented. ++ if (dragger != null) ++ dragger.continueDrag(e); + } + +- + /** +- * Repeatedly invoked when the user is dragging the mouse cursor +- * without having pressed a mouse button. ++ * Repeatedly invoked when the user is dragging the mouse cursor without ++ * having pressed a mouse button. ++ * ++ * @param e The MouseEvent. + */ + public void mouseMoved(MouseEvent e) + { +- // FIXME: Not yet implemented. ++ // Do nothing. + } + } + +- + /** +- * A small button for showing and hiding parts of a +- * JSplitPane with a single mouse click. ++ * Performs the tasks associated with an ongoing drag operation. + * +- * @author Sascha Brawer (brawer@dandelis.ch) ++ * @author Sascha Brawer (brawer_AT_dandelis.ch) + */ +- private static class OneTouchButton +- extends JButton ++ protected class DragController + { +- OneTouchButton(boolean left) ++ /** The difference between where the mouse is clicked and the ++ * initial divider location. */ ++ transient int offset; ++ ++ /** ++ * Creates a new DragController object. ++ * ++ * @param e The MouseEvent to initialize with. ++ */ ++ protected DragController(MouseEvent e) + { +- // FIXME: Set various properties of the button. +- // Make sure it looks identical to the small +- // buttons of the Sun reference implementation. +- // The size should also be the same. +- if (left) +- setText("<"); +- else +- setText(">"); ++ offset = e.getX(); ++ } ++ ++ /** ++ * This method returns true if the divider can move. ++ * ++ * @return True if dragging is allowed. ++ */ ++ protected boolean isValid() ++ { ++ // Views can always be resized? ++ return true; ++ } + +- Dimension butSize = new Dimension(ONE_TOUCH_SIZE, ONE_TOUCH_SIZE); +- setMinimumSize(butSize); +- setMaximumSize(butSize); +- setPreferredSize(butSize); ++ /** ++ * Returns a position for the divider given the MouseEvent. ++ * ++ * @param e MouseEvent. ++ * ++ * @return The position for the divider to move to. ++ */ ++ protected int positionForMouseEvent(MouseEvent e) ++ { ++ return e.getX() + getX() - offset; ++ } + +- setBorderPainted(false); ++ /** ++ * This method returns one of the two paramters ++ * for the orientation. In this case, it returns x. ++ * ++ * @param x The x coordinate. ++ * @param y The y coordinate. ++ * ++ * @return The x coordinate. ++ */ ++ protected int getNeededLocation(int x, int y) ++ { ++ return x; ++ } ++ ++ /** ++ * This method is called to pass on the drag information ++ * to the UI through dragDividerTo. ++ * ++ * @param newX The x coordinate of the MouseEvent. ++ * @param newY The y coordinate of the MouseEvent. ++ */ ++ protected void continueDrag(int newX, int newY) ++ { ++ if (isValid()) ++ dragDividerTo(adjust(newX, newY)); + } +- } + ++ /** ++ * This method is called to pass on the drag information ++ * to the UI through dragDividerTo. ++ * ++ * @param e The MouseEvent. ++ */ ++ protected void continueDrag(MouseEvent e) ++ { ++ if (isValid()) ++ dragDividerTo(positionForMouseEvent(e)); ++ } ++ ++ /** ++ * This method is called to finish the drag session ++ * by calling finishDraggingTo. ++ * ++ * @param x The x coordinate of the MouseEvent. ++ * @param y The y coordinate of the MouseEvent. ++ */ ++ protected void completeDrag(int x, int y) ++ { ++ finishDraggingTo(adjust(x, y)); ++ } ++ ++ /** ++ * This method is called to finish the drag session ++ * by calling finishDraggingTo. ++ * ++ * @param e The MouseEvent. ++ */ ++ protected void completeDrag(MouseEvent e) ++ { ++ finishDraggingTo(positionForMouseEvent(e)); ++ } ++ ++ /** ++ * This is a helper method that includes the offset ++ * in the needed location. ++ * ++ * @param x The x coordinate of the MouseEvent. ++ * @param y The y coordinate of the MouseEvent. ++ * ++ * @return The needed location adjusted by the offsets. ++ */ ++ int adjust(int x, int y) ++ { ++ return getNeededLocation(x, y) + getX() - offset; ++ } ++ } + + /** +- * Performs the tasks associated with an ongoing drag +- * operation. +- * +- * @author Sascha Brawer (brawer@dandelis.ch) ++ * This is a helper class that controls dragging when ++ * the orientation is VERTICAL_SPLIT. + */ +- protected class DragController ++ protected class VerticalDragController extends DragController + { +- // FIXME: Not yet implemented. +- protected DragController(MouseEvent e) ++ /** ++ * Creates a new VerticalDragController object. ++ * ++ * @param e The MouseEvent to initialize with. ++ */ ++ protected VerticalDragController(MouseEvent e) + { ++ super(e); ++ offset = e.getY(); + } + +- protected boolean isValid() ++ /** ++ * This method returns one of the two parameters given ++ * the orientation. In this case, it returns y. ++ * ++ * @param x The x coordinate of the MouseEvent. ++ * @param y The y coordinate of the MouseEvent. ++ * ++ * @return The y coordinate. ++ */ ++ protected int getNeededLocation(int x, int y) + { +- // FIXME: Not yet implemented. +- return true; ++ return y; + } + ++ /** ++ * This method returns the new location of the divider ++ * given a MouseEvent. ++ * ++ * @param e The MouseEvent. ++ * ++ * @return The new location of the divider. ++ */ + protected int positionForMouseEvent(MouseEvent e) + { +- return 0; ++ return e.getY() + getY() - offset; + } + +- protected int getNeededLocation(int x, int y) ++ /** ++ * This is a helper method that includes the offset ++ * in the needed location. ++ * ++ * @param x The x coordinate of the MouseEvent. ++ * @param y The y coordinate of the MouseEvent. ++ * ++ * @return The needed location adjusted by the offsets. ++ */ ++ int adjust(int x, int y) ++ { ++ return getNeededLocation(x, y) + getY() - offset; ++ } ++ } ++ ++ /** ++ * This helper class acts as the Layout Manager for ++ * the divider. ++ */ ++ protected class DividerLayout implements LayoutManager ++ { ++ /** ++ * Creates a new DividerLayout object. ++ */ ++ protected DividerLayout() + { +- return 0; + } + +- protected void continueDrag(int newX, int newY) ++ /** ++ * This method is called when a Component is added. ++ * ++ * @param string The constraints string. ++ * @param c The Component to add. ++ */ ++ public void addLayoutComponent(String string, Component c) + { ++ // Do nothing. + } + +- protected void completeDrag(int x, int y) ++ /** ++ * This method is called to lay out the container. ++ * ++ * @param c The container to lay out. ++ */ ++ public void layoutContainer(Container c) + { ++ if (splitPane.isOneTouchExpandable()) ++ { ++ changeButtonOrientation(); ++ positionButtons(); ++ } + } + +- protected void completeDrag(MouseEvent e) ++ /** ++ * This method returns the minimum layout size. ++ * ++ * @param c The container to calculate for. ++ * ++ * @return The minimum layout size. ++ */ ++ public Dimension minimumLayoutSize(Container c) ++ { ++ return preferredLayoutSize(c); ++ } ++ ++ /** ++ * This method returns the preferred layout size. ++ * ++ * @param c The container to calculate for. ++ * ++ * @return The preferred layout size. ++ */ ++ public Dimension preferredLayoutSize(Container c) + { ++ return new Dimension(dividerSize, dividerSize); ++ } ++ ++ /** ++ * This method is called when a component is removed. ++ * ++ * @param c The component to remove. ++ */ ++ public void removeLayoutComponent(Component c) ++ { ++ // Do nothing. ++ } ++ ++ /** ++ * This method changes the button orientation when ++ * the orientation of the SplitPane changes. ++ */ ++ private void changeButtonOrientation() ++ { ++ if (orientation == JSplitPane.HORIZONTAL_SPLIT) ++ { ++ ((BasicArrowButton) rightButton).setDirection(SwingConstants.EAST); ++ ((BasicArrowButton) leftButton).setDirection(SwingConstants.WEST); ++ } ++ else ++ { ++ ((BasicArrowButton) rightButton).setDirection(SwingConstants.SOUTH); ++ ((BasicArrowButton) leftButton).setDirection(SwingConstants.NORTH); ++ } ++ } ++ ++ /** ++ * This method sizes and positions the buttons. ++ */ ++ private void positionButtons() ++ { ++ int w = 0; ++ int h = 0; ++ if (orientation == JSplitPane.HORIZONTAL_SPLIT) ++ { ++ rightButton.setLocation(ONE_TOUCH_OFFSET, ONE_TOUCH_OFFSET); ++ leftButton.setLocation(ONE_TOUCH_OFFSET, ++ ONE_TOUCH_OFFSET + 2 * ONE_TOUCH_SIZE); ++ w = dividerSize - 2 * ONE_TOUCH_OFFSET; ++ h = 2 * ONE_TOUCH_SIZE; ++ } ++ else ++ { ++ leftButton.setLocation(ONE_TOUCH_OFFSET, ONE_TOUCH_OFFSET); ++ rightButton.setLocation(ONE_TOUCH_OFFSET + 2 * ONE_TOUCH_SIZE, ++ ONE_TOUCH_OFFSET); ++ h = dividerSize - 2 * ONE_TOUCH_OFFSET; ++ w = 2 * ONE_TOUCH_SIZE; ++ } ++ Dimension dims = new Dimension(w, h); ++ leftButton.setSize(dims); ++ rightButton.setSize(dims); + } + } + } +Index: javax/swing/plaf/basic/BasicSplitPaneUI.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/plaf/basic/BasicSplitPaneUI.java,v +retrieving revision 1.1 +diff -u -r1.1 BasicSplitPaneUI.java +--- javax/swing/plaf/basic/BasicSplitPaneUI.java 24 Jun 2003 09:48:42 -0000 1.1 ++++ javax/swing/plaf/basic/BasicSplitPaneUI.java 6 Sep 2004 16:36:08 -0000 +@@ -1,5 +1,5 @@ + /* BasicSplitPaneUI.java +- Copyright (C) 2003 Free Software Foundation, Inc. ++ Copyright (C) 2003, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -37,273 +37,1478 @@ + + package javax.swing.plaf.basic; + ++import java.awt.Canvas; ++import java.awt.Color; + import java.awt.Component; ++import java.awt.Container; + import java.awt.Dimension; + import java.awt.Graphics; + import java.awt.Insets; ++import java.awt.LayoutManager2; ++import java.awt.Point; ++import java.awt.event.ActionEvent; + import java.awt.event.ActionListener; ++import java.awt.event.FocusAdapter; ++import java.awt.event.FocusEvent; + import java.awt.event.FocusListener; ++import java.awt.event.MouseEvent; ++import java.beans.PropertyChangeEvent; + import java.beans.PropertyChangeListener; ++import javax.swing.JButton; + import javax.swing.JComponent; + import javax.swing.JSplitPane; + import javax.swing.KeyStroke; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; + import javax.swing.plaf.ComponentUI; + import javax.swing.plaf.SplitPaneUI; + ++ + /** +- * FIXME: Stubbed to allow compiling other classes, +- * no real implementation. ++ * This is the Basic Look and Feel implementation of the SplitPaneUI class. + */ +-public class BasicSplitPaneUI +- extends SplitPaneUI ++public class BasicSplitPaneUI extends SplitPaneUI + { +- protected static final String NON_CONTINUOUS_DIVIDER +- = "nonContinuousDivider"; ++ /** ++ * This Layout Manager controls the position and size of the components when ++ * the JSplitPane's orientation is HORIZONTAL_SPLIT. ++ */ ++ protected class BasicHorizontalLayoutManager implements LayoutManager2 ++ { ++ // 3 components at a time. ++ // LEFT/TOP = 0 ++ // RIGHT/BOTTOM = 1 ++ // DIVIDER = 2 ++ ++ /** ++ * This array contains the components in the JSplitPane. The left/top ++ * component is at index 0, the right/bottom is at 1, and the divider is ++ * at 2. ++ */ ++ protected Component[] components = new Component[3]; ++ ++ // These are the _current_ widths of the associated component. ++ ++ /** ++ * This array contains the current width (for HORIZONTAL_SPLIT) or height ++ * (for VERTICAL_SPLIT) of the components. The indices are the same as ++ * for components. ++ */ ++ protected int[] sizes = new int[3]; ++ ++ /** ++ * This method adds the component given to the JSplitPane. The position of ++ * the component is given by the constraints object. ++ * ++ * @param comp The Component to add. ++ * @param constraints The constraints that bind the object. ++ */ ++ public void addLayoutComponent(Component comp, Object constraints) ++ { ++ addLayoutComponent((String) constraints, comp); ++ } ++ ++ /** ++ * This method is called to add a Component to the JSplitPane. The ++ * placement string determines where the Component will be placed. The ++ * string should be one of LEFT, RIGHT, TOP, BOTTOM or null (signals that ++ * the component is the divider). ++ * ++ * @param place The placement of the Component. ++ * @param component The Component to add. ++ * ++ * @throws IllegalArgumentException DOCUMENT ME! ++ */ ++ public void addLayoutComponent(String place, Component component) ++ { ++ int i = 0; ++ if (place == null) ++ i = 2; ++ else if (place.equals(JSplitPane.TOP) || place.equals(JSplitPane.LEFT)) ++ i = 0; ++ else if (place.equals(JSplitPane.BOTTOM) ++ || place.equals(JSplitPane.RIGHT)) ++ i = 1; ++ else ++ throw new IllegalArgumentException("Illegal placement in JSplitPane"); ++ components[i] = component; ++ resetSizeAt(i); ++ splitPane.revalidate(); ++ splitPane.repaint(); ++ } ++ ++ /** ++ * This method returns the width of the JSplitPane minus the insets. ++ * ++ * @param containerSize The Dimensions of the JSplitPane. ++ * @param insets The Insets of the JSplitPane. ++ * ++ * @return The width of the JSplitPane minus the insets. ++ */ ++ protected int getAvailableSize(Dimension containerSize, Insets insets) ++ { ++ return containerSize.width - insets.left - insets.right; ++ } ++ ++ /** ++ * This method returns the given insets left value. If the given inset is ++ * null, then 0 is returned. ++ * ++ * @param insets The Insets to use with the JSplitPane. ++ * ++ * @return The inset's left value. ++ */ ++ protected int getInitialLocation(Insets insets) ++ { ++ if (insets != null) ++ return insets.left; ++ return 0; ++ } ++ ++ /** ++ * This specifies how a component is aligned with respect to other ++ * components in the x fdirection. ++ * ++ * @param target The container. ++ * ++ * @return The component's alignment. ++ */ ++ public float getLayoutAlignmentX(Container target) ++ { ++ return target.getAlignmentX(); ++ } ++ ++ /** ++ * This specifies how a component is aligned with respect to other ++ * components in the y direction. ++ * ++ * @param target The container. ++ * ++ * @return The component's alignment. ++ */ ++ public float getLayoutAlignmentY(Container target) ++ { ++ return target.getAlignmentY(); ++ } ++ ++ /** ++ * This method returns the preferred width of the component. ++ * ++ * @param c The component to measure. ++ * ++ * @return The preferred width of the component. ++ */ ++ protected int getPreferredSizeOfComponent(Component c) ++ { ++ Dimension dims = c.getPreferredSize(); ++ if (dims != null) ++ return dims.width; ++ return 0; ++ } ++ ++ /** ++ * This method returns the current width of the component. ++ * ++ * @param c The component to measure. ++ * ++ * @return The width of the component. ++ */ ++ protected int getSizeOfComponent(Component c) ++ { ++ return c.getWidth(); ++ } ++ ++ /** ++ * This method returns the sizes array. ++ * ++ * @return The sizes array. ++ */ ++ protected int[] getSizes() ++ { ++ return sizes; ++ } ++ ++ /** ++ * This method invalidates the layout. It does nothing. ++ * ++ * @param c The container to invalidate. ++ */ ++ public void invalidateLayout(Container c) ++ { ++ // DO NOTHING ++ } ++ ++ /** ++ * This method lays out the components in the container. ++ * ++ * @param container The container to lay out. ++ */ ++ public void layoutContainer(Container container) ++ { ++ if (container instanceof JSplitPane) ++ { ++ JSplitPane split = (JSplitPane) container; ++ distributeExtraSpace(); ++ Insets insets = split.getInsets(); ++ int width = getInitialLocation(insets); ++ Dimension dims = split.getSize(); ++ for (int i = 0; i < components.length; i += 2) ++ { ++ if (components[i] == null) ++ continue; ++ setComponentToSize(components[i], sizes[i], width, insets, dims); ++ width += sizes[i]; ++ } ++ if (components[1] != null) ++ { ++ setComponentToSize(components[1], sizes[1], width, insets, dims); ++ width += sizes[1]; ++ } ++ } ++ } ++ ++ /** ++ * This method returns the maximum size for the container given the ++ * components. It returns a new Dimension object that has width and ++ * height equal to Integer.MAX_VALUE. ++ * ++ * @param target The container to measure. ++ * ++ * @return The maximum size. ++ */ ++ public Dimension maximumLayoutSize(Container target) ++ { ++ return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE); ++ } ++ ++ /** ++ * This method returns the container's minimum size. The minimum width is ++ * the sum of all the component's minimum widths. The minimum height is ++ * the maximum of all the components' minimum heights. ++ * ++ * @param target The container to measure. ++ * ++ * @return The minimum size. ++ */ ++ public Dimension minimumLayoutSize(Container target) ++ { ++ if (target instanceof JSplitPane) ++ { ++ JSplitPane split = (JSplitPane) target; ++ Insets insets = target.getInsets(); ++ ++ int height = 0; ++ int width = 0; ++ for (int i = 0; i < components.length; i++) ++ { ++ if (components[i] == null) ++ continue; ++ Dimension dims = components[i].getMinimumSize(); ++ if (dims != null) ++ { ++ width += dims.width; ++ height = Math.max(height, dims.height); ++ } ++ } ++ return new Dimension(width, height); ++ } ++ return null; ++ } ++ ++ /** ++ * This method returns the container's preferred size. The preferred width ++ * is the sum of all the component's preferred widths. The preferred ++ * height is the maximum of all the components' preferred heights. ++ * ++ * @param target The container to measure. ++ * ++ * @return The preferred size. ++ */ ++ public Dimension preferredLayoutSize(Container target) ++ { ++ if (target instanceof JSplitPane) ++ { ++ JSplitPane split = (JSplitPane) target; ++ Insets insets = target.getInsets(); ++ ++ int height = 0; ++ int width = 0; ++ for (int i = 0; i < components.length; i++) ++ { ++ if (components[i] == null) ++ continue; ++ Dimension dims = components[i].getPreferredSize(); ++ if (dims != null) ++ { ++ width += dims.width; ++ if (! (components[i] instanceof BasicSplitPaneDivider)) ++ height = Math.max(height, dims.height); ++ } ++ } ++ return new Dimension(500, 500); //width, height); ++ } ++ return null; ++ } ++ ++ /** ++ * This method removes the component from the layout. ++ * ++ * @param component The component to remove from the layout. ++ */ ++ public void removeLayoutComponent(Component component) ++ { ++ for (int i = 0; i < components.length; i++) ++ { ++ if (component == components[i]) ++ { ++ components[i] = null; ++ sizes[i] = 0; ++ } ++ } ++ } ++ ++ /** ++ * This method resets the size of Component to the preferred size. ++ * ++ * @param index The index of the component to reset. ++ */ ++ protected void resetSizeAt(int index) ++ { ++ if (components[index] != null) ++ sizes[index] = getPreferredSizeOfComponent(components[index]); ++ } ++ ++ /** ++ * This method resets the sizes of all the components. ++ */ ++ public void resetToPreferredSizes() ++ { ++ for (int i = 0; i < components.length; i++) ++ resetSizeAt(i); ++ } ++ ++ /** ++ * This methods sets the bounds of the given component. The width is the ++ * size. The height is the container size minus the top and bottom ++ * inset. The x coordinate is the location given. The y coordinate is ++ * the top inset. ++ * ++ * @param c The component to set. ++ * @param size The width of the component. ++ * @param location The x coordinate. ++ * @param insets The insets to use. ++ * @param containerSize The height of the container. ++ */ ++ protected void setComponentToSize(Component c, int size, int location, ++ Insets insets, Dimension containerSize) ++ { ++ int w = size; ++ int h = containerSize.height - insets.top - insets.bottom; ++ int x = location; ++ int y = insets.top; ++ c.setBounds(x, y, w, h); ++ } ++ ++ /** ++ * This method stores the given int array as the new sizes array. ++ * ++ * @param newSizes The array to use as sizes. ++ */ ++ protected void setSizes(int[] newSizes) ++ { ++ sizes = newSizes; ++ } ++ ++ /** ++ * This method determines the size of each component. It should be called ++ * when a new Layout Manager is created for an existing JSplitPane. ++ */ ++ protected void updateComponents() ++ { ++ Component left = splitPane.getLeftComponent(); ++ Component right = splitPane.getRightComponent(); ++ ++ if (left != null) ++ { ++ components[0] = left; ++ resetSizeAt(0); ++ } ++ if (right != null) ++ { ++ components[1] = right; ++ resetSizeAt(1); ++ } ++ components[2] = divider; ++ resetSizeAt(2); ++ } ++ ++ /** ++ * This method resizes the left and right components to fit inside the ++ * JSplitPane when there is extra space. ++ */ ++ void distributeExtraSpace() ++ { ++ int availSize = getAvailableSize(splitPane.getSize(), ++ splitPane.getInsets()); ++ int[] newSizes = new int[3]; ++ double weight = splitPane.getResizeWeight(); ++ ++ int oldLen = sizes[0] + sizes[1]; ++ ++ // dividers don't change size. ++ availSize -= sizes[2] + oldLen; ++ ++ int rightAlloc = (int) (availSize * (1 - weight)); ++ int leftAlloc = availSize - rightAlloc; ++ ++ sizes[0] += leftAlloc; ++ sizes[1] += rightAlloc; ++ } ++ ++ /** ++ * This method returns the minimum width of the component at the given ++ * index. ++ * ++ * @param index The index to check. ++ * ++ * @return The minimum width. ++ */ ++ int minimumSizeOfComponent(int index) ++ { ++ Dimension dims = components[index].getMinimumSize(); ++ if (dims != null) ++ return dims.width; ++ else ++ return 0; ++ } ++ } //end BasicHorizontalLayoutManager ++ ++ /** ++ * This class is the Layout Manager for the JSplitPane when the orientation ++ * is VERTICAL_SPLIT. ++ */ ++ protected class BasicVerticalLayoutManager ++ extends BasicHorizontalLayoutManager ++ { ++ /** ++ * This method returns the height of the container minus the top and ++ * bottom inset. ++ * ++ * @param containerSize The size of the container. ++ * @param insets The insets of the container. ++ * ++ * @return The height minus top and bottom inset. ++ */ ++ protected int getAvailableSize(Dimension containerSize, Insets insets) ++ { ++ return containerSize.height - insets.top - insets.bottom; ++ } ++ ++ /** ++ * This method returns the top inset. ++ * ++ * @param insets The Insets to use. ++ * ++ * @return The top inset. ++ */ ++ protected int getInitialLocation(Insets insets) ++ { ++ return insets.top; ++ } ++ ++ /** ++ * This method returns the preferred height of the component. ++ * ++ * @param c The component to measure. ++ * ++ * @return The preferred height of the component. ++ */ ++ protected int getPreferredSizeOfComponent(Component c) ++ { ++ Dimension dims = c.getPreferredSize(); ++ if (dims != null) ++ return dims.height; ++ return 0; ++ } ++ ++ /** ++ * This method returns the current height of the component. ++ * ++ * @param c The component to measure. ++ * ++ * @return The current height of the component. ++ */ ++ protected int getSizeOfComponent(Component c) ++ { ++ return c.getHeight(); ++ } ++ ++ /** ++ * This method returns the minimum layout size. The minimum height is the ++ * sum of all the components' minimum heights. The minimum width is the ++ * maximum of all the components' minimum widths. ++ * ++ * @param container The container to measure. ++ * ++ * @return The minimum size. ++ */ ++ public Dimension minimumLayoutSize(Container container) ++ { ++ if (container instanceof JSplitPane) ++ { ++ JSplitPane split = (JSplitPane) container; ++ Insets insets = container.getInsets(); ++ ++ int height = 0; ++ int width = 0; ++ for (int i = 0; i < components.length; i++) ++ { ++ if (components[i] == null) ++ continue; ++ Dimension dims = components[i].getMinimumSize(); ++ if (dims != null) ++ { ++ height += dims.height; ++ width = Math.max(width, dims.width); ++ } ++ } ++ return new Dimension(width, height); ++ } ++ return null; ++ } ++ ++ /** ++ * This method returns the preferred layout size. The preferred height is ++ * the sum of all the components' preferred heights. The preferred width ++ * is the maximum of all the components' preferred widths. ++ * ++ * @param container The container to measure. ++ * ++ * @return The preferred size. ++ */ ++ public Dimension preferredLayoutSize(Container container) ++ { ++ if (container instanceof JSplitPane) ++ { ++ JSplitPane split = (JSplitPane) container; ++ Insets insets = container.getInsets(); ++ ++ int height = 0; ++ int width = 0; ++ for (int i = 0; i < components.length; i++) ++ { ++ if (components[i] == null) ++ continue; ++ Dimension dims = components[i].getPreferredSize(); ++ if (dims != null) ++ { ++ height += dims.height; ++ width = Math.max(width, dims.width); ++ } ++ } ++ return new Dimension(500, 500); //width, height); ++ } ++ return null; ++ } ++ ++ /** ++ * This method sets the bounds of the given component. The y coordinate is ++ * the location given. The x coordinate is the left inset. The height is ++ * the size given. The width is the container size minus the left and ++ * right inset. ++ * ++ * @param c The component to set bounds for. ++ * @param size The height. ++ * @param location The y coordinate. ++ * @param insets The insets to use. ++ * @param containerSize The container's size. ++ */ ++ protected void setComponentToSize(Component c, int size, int location, ++ Insets insets, Dimension containerSize) ++ { ++ int y = location; ++ int x = insets.left; ++ int h = size; ++ int w = containerSize.width - insets.left - insets.right; ++ ++ c.setBounds(x, y, w, h); ++ } ++ ++ /** ++ * This method returns the minimum height of the component at the given ++ * index. ++ * ++ * @param index The index of the component to check. ++ * ++ * @return The minimum height of the given component. ++ */ ++ int minimumSizeOfComponent(int index) ++ { ++ Dimension dims = components[index].getMinimumSize(); ++ if (dims != null) ++ return dims.height; ++ else ++ return 0; ++ } ++ } ++ ++ /** ++ * This class handles FocusEvents from the JComponent. ++ */ ++ protected class FocusHandler extends FocusAdapter ++ { ++ /** ++ * This method is called when the JSplitPane gains focus. ++ * ++ * @param ev The FocusEvent. ++ */ ++ public void focusGained(FocusEvent ev) ++ { ++ // FIXME: implement. ++ } ++ ++ /** ++ * This method is called when the JSplitPane loses focus. ++ * ++ * @param ev The FocusEvent. ++ */ ++ public void focusLost(FocusEvent ev) ++ { ++ // FIXME: implement. ++ } ++ } ++ ++ /** ++ * This is a deprecated class. It is supposed to be used for handling down ++ * and right key presses. ++ */ ++ protected class KeyboardDownRightHandler implements ActionListener ++ { ++ /** ++ * This method is called when the down or right keys are pressed. ++ * ++ * @param ev The ActionEvent ++ */ ++ public void actionPerformed(ActionEvent ev) ++ { ++ // FIXME: implement. ++ } ++ } ++ ++ /** ++ * This is a deprecated class. It is supposed to be used for handling end ++ * key presses. ++ */ ++ protected class KeyboardEndHandler implements ActionListener ++ { ++ /** ++ * This method is called when the end key is pressed. ++ * ++ * @param ev The ActionEvent. ++ */ ++ public void actionPerformed(ActionEvent ev) ++ { ++ // FIXME: implement. ++ } ++ } ++ ++ /** ++ * This is a deprecated class. It is supposed to be used for handling home ++ * key presses. ++ */ ++ protected class KeyboardHomeHandler implements ActionListener ++ { ++ /** ++ * This method is called when the home key is pressed. ++ * ++ * @param ev The ActionEvent. ++ */ ++ public void actionPerformed(ActionEvent ev) ++ { ++ // FIXME: implement. ++ } ++ } ++ ++ /** ++ * This is a deprecated class. It is supposed to be used for handling resize ++ * toggles. ++ */ ++ protected class KeyboardResizeToggleHandler implements ActionListener ++ { ++ /** ++ * This method is called when a resize is toggled. ++ * ++ * @param ev The ActionEvent. ++ */ ++ public void actionPerformed(ActionEvent ev) ++ { ++ // FIXME: implement. ++ } ++ } ++ ++ /** ++ * This is a deprecated class. It is supposed to be used for handler up and ++ * left key presses. ++ */ ++ protected class KeyboardUpLeftHandler implements ActionListener ++ { ++ /** ++ * This method is called when the left or up keys are pressed. ++ * ++ * @param ev The ActionEvent. ++ */ ++ public void actionPerformed(ActionEvent ev) ++ { ++ // FIXME: implement. ++ } ++ } ++ ++ /** ++ * This helper class handles PropertyChangeEvents from the JSplitPane. When ++ * a property changes, this will update the UI accordingly. ++ */ ++ protected class PropertyHandler implements PropertyChangeListener ++ { ++ /** ++ * This method is called whenever one of the JSplitPane's properties ++ * change. ++ * ++ * @param e DOCUMENT ME! ++ */ ++ public void propertyChange(PropertyChangeEvent e) ++ { ++ if (e.getPropertyName().equals(JSplitPane.DIVIDER_SIZE_PROPERTY)) ++ { ++ int newSize = splitPane.getDividerSize(); ++ int[] tmpSizes = layoutManager.getSizes(); ++ dividerSize = tmpSizes[2]; ++ Component left = splitPane.getLeftComponent(); ++ Component right = splitPane.getRightComponent(); ++ int newSpace = newSize - tmpSizes[2]; ++ ++ tmpSizes[2] = newSize; ++ ++ tmpSizes[0] += newSpace / 2; ++ tmpSizes[1] += newSpace / 2; ++ ++ layoutManager.setSizes(tmpSizes); ++ } ++ else if (e.getPropertyName().equals(JSplitPane.ORIENTATION_PROPERTY)) ++ { ++ int max = layoutManager.getAvailableSize(splitPane.getSize(), ++ splitPane.getInsets()); ++ int dividerLoc = getDividerLocation(splitPane); ++ double prop = ((double) dividerLoc) / max; ++ ++ resetLayoutManager(); ++ if (prop <= 1 && prop >= 0) ++ splitPane.setDividerLocation(prop); ++ } ++ layoutManager.layoutContainer(splitPane); ++ splitPane.repaint(); ++ // Don't have to deal with continuous_layout - only ++ // necessary in dragging modes (and it's checked ++ // every time you drag there) ++ // Don't have to deal with resize_weight (as there ++ // will be no extra space associated with this ++ // event - the changes to the weighting will ++ // be taken into account the next time the ++ // sizes change.) ++ // Don't have to deal with divider_location ++ // The method in JSplitPane calls our setDividerLocation ++ // so we'll know about those anyway. ++ // Don't have to deal with last_divider_location ++ // Although I'm not sure why, it doesn't seem to ++ // have any effect on Sun's JSplitPane. ++ // one_touch_expandable changes are dealt with ++ // by our divider. ++ } ++ } ++ ++ /** The location of the divider when dragging began. */ ++ protected int beginDragDividerLocation; ++ ++ /** The size of the divider while dragging. */ ++ protected int dividerSize; + ++ /** The location where the last drag location ended. */ ++ transient int lastDragLocation = -1; ++ ++ /** The distance the divider is moved when moved by keyboard actions. */ + protected static int KEYBOARD_DIVIDER_MOVE_OFFSET; + +- protected JSplitPane splitPane; ++ /** The divider that divides this JSplitPane. */ + protected BasicSplitPaneDivider divider; ++ ++ /** The listener that listens for PropertyChangeEvents from the JSplitPane. */ + protected PropertyChangeListener propertyChangeListener; ++ ++ /** The JSplitPane's focus handler. */ + protected FocusListener focusListener; +- protected int dividerSize; +- protected Component nonContinuousLayoutDivider; +- protected boolean draggingHW; +- protected int beginDragDividerLocation; +- protected KeyStroke upKey; +- protected KeyStroke downKey; +- protected KeyStroke leftKey; +- protected KeyStroke rightKey; +- protected KeyStroke homeKey; +- protected KeyStroke endKey; +- protected KeyStroke dividerResizeToggleKey; +- protected ActionListener keyboardUpLeftListener; ++ ++ /** Deprecated. The handler for down and right key presses. */ + protected ActionListener keyboardDownRightListener; +- protected ActionListener keyboardHomeListener; ++ ++ /** Deprecated. The handler for end key presses. */ + protected ActionListener keyboardEndListener; ++ ++ /** Deprecated. The handler for home key presses. */ ++ protected ActionListener keyboardHomeListener; ++ ++ /** Deprecated. The handler for toggling resizes. */ + protected ActionListener keyboardResizeToggleListener; + +- public static ComponentUI createUI(JComponent c) +- { +- BasicSplitPaneUI newUI; ++ /** Deprecated. The handler for up and left key presses. */ ++ protected ActionListener keyboardUpLeftListener; + +- newUI = new BasicSplitPaneUI(); +- newUI.installUI(c); +- return newUI; +- } ++ /** The JSplitPane's current layout manager. */ ++ protected BasicHorizontalLayoutManager layoutManager; ++ ++ /** Deprecated. The divider resize toggle key. */ ++ protected KeyStroke dividerResizeToggleKey; ++ ++ /** Deprecated. The down key. */ ++ protected KeyStroke downKey; ++ ++ /** Deprecated. The end key. */ ++ protected KeyStroke endKey; ++ ++ /** Deprecated. The home key. */ ++ protected KeyStroke homeKey; ++ ++ /** Deprecated. The left key. */ ++ protected KeyStroke leftKey; ++ ++ /** Deprecated. The right key. */ ++ protected KeyStroke rightKey; ++ ++ /** Deprecated. The up key. */ ++ protected KeyStroke upKey; ++ ++ /** Set to true when dragging heavy weight components. */ ++ protected boolean draggingHW; ++ ++ /** ++ * The constraints object used when adding the non-continuous divider to the ++ * JSplitPane. ++ */ ++ protected static String NON_CONTINUOUS_DIVIDER; ++ ++ /** The dark divider used when dragging in non-continuous layout mode. */ ++ protected Component nonContinuousLayoutDivider; + ++ /** The JSplitPane that this UI draws. */ ++ protected JSplitPane splitPane; ++ ++ /** ++ * Creates a new BasicSplitPaneUI object. ++ */ + public BasicSplitPaneUI() + { +- propertyChangeListener = createPropertyChangeListener(); +- focusListener = createFocusListener(); + } + ++ /** ++ * This method creates a new BasicSplitPaneUI for the given JComponent. ++ * ++ * @param x The JComponent to create a UI for. ++ * ++ * @return A new BasicSplitPaneUI. ++ */ ++ public static ComponentUI createUI(JComponent x) ++ { ++ return new BasicSplitPaneUI(); ++ } ++ ++ /** ++ * This method installs the BasicSplitPaneUI for the given JComponent. ++ * ++ * @param c The JComponent to install the UI for. ++ */ + public void installUI(JComponent c) + { ++ if (c instanceof JSplitPane) ++ { ++ splitPane = (JSplitPane) c; ++ installDefaults(); ++ installListeners(); ++ installKeyboardActions(); ++ } + } + +- protected void installDefaults() ++ /** ++ * This method uninstalls the BasicSplitPaneUI for the given JComponent. ++ * ++ * @param c The JComponent to uninstall the UI for. ++ */ ++ public void uninstallUI(JComponent c) + { +- } ++ uninstallKeyboardActions(); ++ uninstallListeners(); ++ uninstallDefaults(); + +- protected void installListeners() +- { ++ splitPane = null; + } + +- protected void installKeyboardListeners() ++ /** ++ * This method installs the defaults given by the Look and Feel. ++ */ ++ protected void installDefaults() + { +- } +- +- protected void installKeyboardActions() ++ resetLayoutManager(); ++ divider = createDefaultDivider(); ++ nonContinuousLayoutDivider = createDefaultNonContinuousLayoutDivider(); ++ splitPane.add(divider, JSplitPane.DIVIDER); ++ ++ // There is no need to add the nonContinuousLayoutDivider ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ splitPane.setBackground(defaults.getColor("SplitPane.background")); ++ splitPane.setBorder(defaults.getBorder("SplitPane.border")); ++ splitPane.setDividerSize(defaults.getInt("SplitPane.dividerSize")); ++ } ++ ++ /** ++ * This method uninstalls the defaults and nulls any objects created during ++ * install. ++ */ ++ protected void uninstallDefaults() + { ++ layoutManager = null; ++ splitPane.remove(divider); ++ divider = null; ++ nonContinuousLayoutDivider = null; ++ ++ splitPane.setBackground(null); ++ splitPane.setBorder(null); + } + +- public void uninstallUI(JComponent c) ++ /** ++ * This method installs the listeners needed for this UI to function. ++ */ ++ protected void installListeners() + { ++ propertyChangeListener = createPropertyChangeListener(); ++ focusListener = createFocusListener(); ++ ++ splitPane.addPropertyChangeListener(propertyChangeListener); ++ splitPane.addFocusListener(focusListener); + } + +- protected void uninstallDefaults() ++ /** ++ * This method uninstalls all listeners registered for the UI. ++ */ ++ protected void uninstallListeners() + { ++ splitPane.removePropertyChangeListener(propertyChangeListener); ++ splitPane.removeFocusListener(focusListener); ++ ++ focusListener = null; ++ propertyChangeListener = null; + } + +- protected void uninstallListeners() ++ /** ++ * This method installs the keyboard actions for the JSplitPane. ++ */ ++ protected void installKeyboardActions() + { ++ // FIXME: implement. + } + ++ /** ++ * This method reverses the work done in installKeyboardActions. ++ */ + protected void uninstallKeyboardActions() + { ++ // FIXME: implement. + } + ++ /** ++ * This method creates a new PropertyChangeListener. ++ * ++ * @return A new PropertyChangeListener. ++ */ + protected PropertyChangeListener createPropertyChangeListener() + { +- return null; ++ return new PropertyHandler(); + } + ++ /** ++ * This method creates a new FocusListener. ++ * ++ * @return A new FocusListener. ++ */ + protected FocusListener createFocusListener() + { +- return null; ++ return new FocusHandler(); + } + ++ /** ++ * Deprecated. This method creates a new ActionListener for up and left key ++ * presses. ++ * ++ * @return A new ActionListener for up and left keys. ++ */ + protected ActionListener createKeyboardUpLeftListener() + { +- return null; ++ return new KeyboardUpLeftHandler(); + } + ++ /** ++ * Deprecated. This method creates a new ActionListener for down and right ++ * key presses. ++ * ++ * @return A new ActionListener for down and right keys. ++ */ + protected ActionListener createKeyboardDownRightListener() + { +- return null; ++ return new KeyboardDownRightHandler(); + } + ++ /** ++ * Deprecated. This method creates a new ActionListener for home key ++ * presses. ++ * ++ * @return A new ActionListener for home keys. ++ */ + protected ActionListener createKeyboardHomeListener() + { +- return null; ++ return new KeyboardHomeHandler(); + } + ++ /** ++ * Deprecated. This method creates a new ActionListener for end key presses. ++ * ++ * @return A new ActionListener for end keys. ++ */ + protected ActionListener createKeyboardEndListener() + { +- return null; ++ return new KeyboardEndHandler(); + } + ++ /** ++ * Depcreated. This method creates a new ActionListener for resize toggle ++ * key events. ++ * ++ * @return A new ActionListener for resize toggle keys. ++ */ + protected ActionListener createKeyboardResizeToggleListener() + { +- return null; ++ return new KeyboardResizeToggleHandler(); + } + ++ /** ++ * This method returns the orientation of the JSplitPane. ++ * ++ * @return The orientation of the JSplitPane. ++ */ + public int getOrientation() + { + return splitPane.getOrientation(); + } + ++ /** ++ * This method sets the orientation of the JSplitPane. ++ * ++ * @param orientation The new orientation of the JSplitPane. ++ */ + public void setOrientation(int orientation) + { ++ splitPane.setOrientation(orientation); + } + +- ++ /** ++ * This method returns true if the JSplitPane is using continuous layout. ++ * ++ * @return True if the JSplitPane is using continuous layout. ++ */ + public boolean isContinuousLayout() + { +- return false; ++ return splitPane.isContinuousLayout(); + } + ++ /** ++ * This method sets the continuous layout property of the JSplitPane. ++ * ++ * @param b True if the JsplitPane is to use continuous layout. ++ */ + public void setContinuousLayout(boolean b) + { ++ splitPane.setContinuousLayout(b); + } + ++ /** ++ * This method returns the last location the divider was dragged to. ++ * ++ * @return The last location the divider was dragged to. ++ */ + public int getLastDragLocation() + { +- return 0; ++ return lastDragLocation; + } + ++ /** ++ * This method sets the last location the divider was dragged to. ++ * ++ * @param l The last location the divider was dragged to. ++ */ + public void setLastDragLocation(int l) + { ++ lastDragLocation = l; + } + +- ++ /** ++ * This method returns the BasicSplitPaneDivider that divides this ++ * JSplitPane. ++ * ++ * @return The divider for the JSplitPane. ++ */ + public BasicSplitPaneDivider getDivider() + { + return divider; + } + +- ++ /** ++ * This method creates a nonContinuousLayoutDivider for use with the ++ * JSplitPane in nonContinousLayout mode. The default divider is a gray ++ * Canvas. ++ * ++ * @return The default nonContinousLayoutDivider. ++ */ + protected Component createDefaultNonContinuousLayoutDivider() + { +- return null; ++ if (nonContinuousLayoutDivider == null) ++ { ++ nonContinuousLayoutDivider = new Canvas(); ++ nonContinuousLayoutDivider.setBackground(Color.DARK_GRAY); ++ } ++ return nonContinuousLayoutDivider; + } + ++ /** ++ * This method sets the component to use as the nonContinuousLayoutDivider. ++ * ++ * @param newDivider The component to use as the nonContinuousLayoutDivider. ++ */ + protected void setNonContinuousLayoutDivider(Component newDivider) + { +- setNonContinuousLayoutDivider(newDivider, true /* false? */); ++ setNonContinuousLayoutDivider(newDivider, true); + } + ++ /** ++ * This method sets the component to use as the nonContinuousLayoutDivider. ++ * ++ * @param newDivider The component to use as the nonContinuousLayoutDivider. ++ * @param rememberSizes FIXME: document. ++ */ + protected void setNonContinuousLayoutDivider(Component newDivider, + boolean rememberSizes) + { ++ // FIXME: use rememberSizes for something + nonContinuousLayoutDivider = newDivider; + } + ++ /** ++ * This method returns the nonContinuousLayoutDivider. ++ * ++ * @return The nonContinuousLayoutDivider. ++ */ + public Component getNonContinuousLayoutDivider() + { + return nonContinuousLayoutDivider; + } + ++ /** ++ * This method returns the JSplitPane that this BasicSplitPaneUI draws. ++ * ++ * @return The JSplitPane. ++ */ + public JSplitPane getSplitPane() + { + return splitPane; + } + ++ /** ++ * This method creates the divider used normally with the JSplitPane. ++ * ++ * @return The default divider. ++ */ + public BasicSplitPaneDivider createDefaultDivider() + { +- return null; ++ if (divider == null) ++ divider = new BasicSplitPaneDivider(this); ++ return divider; + } + ++ /** ++ * This method is called when JSplitPane's resetToPreferredSizes is called. ++ * It resets the sizes of all components in the JSplitPane. ++ * ++ * @param jc The JSplitPane to reset. ++ */ + public void resetToPreferredSizes(JSplitPane jc) + { ++ layoutManager.resetToPreferredSizes(); + } + ++ /** ++ * This method sets the location of the divider. ++ * ++ * @param jc The JSplitPane to set the divider location in. ++ * @param location The new location of the divider. ++ */ + public void setDividerLocation(JSplitPane jc, int location) + { +- } +- ++ setLastDragLocation(getDividerLocation(splitPane)); ++ splitPane.setLastDividerLocation(getDividerLocation(splitPane)); ++ int[] tmpSizes = layoutManager.getSizes(); ++ tmpSizes[0] = location ++ - layoutManager.getInitialLocation(splitPane.getInsets()); ++ tmpSizes[1] = layoutManager.getAvailableSize(splitPane.getSize(), ++ splitPane.getInsets()) ++ - tmpSizes[0] - tmpSizes[1]; ++ ++ layoutManager.setSizes(tmpSizes); ++ splitPane.revalidate(); ++ splitPane.repaint(); ++ } ++ ++ /** ++ * This method returns the location of the divider. ++ * ++ * @param jc The JSplitPane to retrieve the location for. ++ * ++ * @return The location of the divider. ++ */ + public int getDividerLocation(JSplitPane jc) + { +- return 0; ++ return layoutManager.sizes[0] ++ + layoutManager.getInitialLocation(splitPane.getInsets()); + } + ++ /** ++ * This method returns the smallest value possible for the location of the ++ * divider. ++ * ++ * @param jc The JSplitPane. ++ * ++ * @return The minimum divider location. ++ */ + public int getMinimumDividerLocation(JSplitPane jc) + { +- return 0; ++ int value = layoutManager.getInitialLocation(jc.getInsets()); ++ if (layoutManager.components[0] != null) ++ value += layoutManager.minimumSizeOfComponent(0); ++ return value; + } + ++ /** ++ * This method returns the largest value possible for the location of the ++ * divider. ++ * ++ * @param jc The JSplitPane. ++ * ++ * @return The maximum divider location. ++ */ + public int getMaximumDividerLocation(JSplitPane jc) + { +- return 0; ++ int value = layoutManager.getInitialLocation(jc.getInsets()) ++ + layoutManager.getAvailableSize(jc.getSize(), jc.getInsets()) ++ - splitPane.getDividerSize(); ++ if (layoutManager.components[1] != null) ++ value -= layoutManager.minimumSizeOfComponent(1); ++ return value; + } + ++ /** ++ * This method is called after the children of the JSplitPane are painted. ++ * ++ * @param jc The JSplitPane. ++ * @param g The Graphics object to paint with. ++ */ + public void finishedPaintingChildren(JSplitPane jc, Graphics g) + { ++ if (! splitPane.isContinuousLayout() && nonContinuousLayoutDivider != null ++ && nonContinuousLayoutDivider.isVisible()) ++ javax.swing.SwingUtilities.paintComponent(g, nonContinuousLayoutDivider, ++ null, ++ nonContinuousLayoutDivider ++ .getBounds()); + } + ++ /** ++ * This method is called to paint the JSplitPane. ++ * ++ * @param g The Graphics object to paint with. ++ * @param jc The JSplitPane to paint. ++ */ + public void paint(Graphics g, JComponent jc) + { ++ // Do nothing. All the painting is handled by children. + } + ++ /** ++ * This method returns the preferred size of the JSplitPane. ++ * ++ * @param jc The JSplitPane. ++ * ++ * @return The preferred size of the JSplitPane. ++ */ + public Dimension getPreferredSize(JComponent jc) + { +- return null; ++ return layoutManager.preferredLayoutSize((Container) jc); + } + ++ /** ++ * This method returns the minimum size of the JSplitPane. ++ * ++ * @param jc The JSplitPane. ++ * ++ * @return The minimum size of the JSplitPane. ++ */ + public Dimension getMinimumSize(JComponent jc) + { +- return null; ++ return layoutManager.minimumLayoutSize((Container) jc); + } + ++ /** ++ * This method returns the maximum size of the JSplitPane. ++ * ++ * @param jc The JSplitPane. ++ * ++ * @return The maximum size of the JSplitPane. ++ */ + public Dimension getMaximumSize(JComponent jc) + { +- return null; ++ return layoutManager.maximumLayoutSize((Container) jc); + } + ++ /** ++ * This method returns the border insets of the current border. ++ * ++ * @param jc The JSplitPane. ++ * ++ * @return The current border insets. ++ */ + public Insets getInsets(JComponent jc) + { +- return new Insets(0, 0, 0, 0); ++ return splitPane.getBorder().getBorderInsets(splitPane); + } + ++ /** ++ * This method resets the current layout manager. The type of layout manager ++ * is dependent on the current orientation. ++ */ + protected void resetLayoutManager() + { +- } +- ++ if (getOrientation() == JSplitPane.HORIZONTAL_SPLIT) ++ layoutManager = new BasicHorizontalLayoutManager(); ++ else ++ layoutManager = new BasicVerticalLayoutManager(); ++ layoutManager.invalidateLayout(splitPane); ++ layoutManager.updateComponents(); ++ getSplitPane().setLayout(layoutManager); ++ ++ // invalidating by itself does not invalidate the layout. ++ getSplitPane().revalidate(); ++ } ++ ++ /** ++ * This method is called when dragging starts. It resets lastDragLocation ++ * and dividerSize. ++ */ + protected void startDragging() + { +- } ++ dividerSize = divider.getDividerSize(); ++ setLastDragLocation(-1); + ++ if (! splitPane.getLeftComponent().isLightweight() ++ || ! splitPane.getRightComponent().isLightweight()) ++ draggingHW = true; ++ ++ if (splitPane.isContinuousLayout()) ++ nonContinuousLayoutDivider.setVisible(false); ++ else ++ { ++ nonContinuousLayoutDivider.setVisible(true); ++ nonContinuousLayoutDivider.setBounds(divider.getBounds()); ++ } ++ splitPane.revalidate(); ++ splitPane.repaint(); ++ } ++ ++ /** ++ * This method is called whenever the divider is dragged. If the JSplitPane ++ * is in continuousLayout mode, the divider needs to be moved and the ++ * JSplitPane needs to be laid out. ++ * ++ * @param location The new location of the divider. ++ */ + protected void dragDividerTo(int location) + { +- } +- ++ location = validLocation(location); ++ if (beginDragDividerLocation == -1) ++ beginDragDividerLocation = location; ++ ++ if (splitPane.isContinuousLayout()) ++ splitPane.setDividerLocation(location); ++ else ++ { ++ Point p = nonContinuousLayoutDivider.getLocation(); ++ if (getOrientation() == JSplitPane.HORIZONTAL_SPLIT) ++ p.x = location; ++ else ++ p.y = location; ++ nonContinuousLayoutDivider.setLocation(p); ++ } ++ setLastDragLocation(location); ++ splitPane.repaint(); ++ } ++ ++ /** ++ * This method is called when the dragging is finished. ++ * ++ * @param location The location where the drag finished. ++ */ + protected void finishDraggingTo(int location) + { +- } +- ++ if (nonContinuousLayoutDivider != null) ++ nonContinuousLayoutDivider.setVisible(false); ++ draggingHW = false; ++ location = validLocation(location); ++ dragDividerTo(location); ++ splitPane.setDividerLocation(location); ++ splitPane.setLastDividerLocation(beginDragDividerLocation); ++ beginDragDividerLocation = -1; ++ splitPane.repaint(); ++ } ++ ++ /** ++ * Deprecated. This method returns the width of one of the sides of the ++ * divider's border. ++ * ++ * @return The width of one side of the divider's border. ++ */ + protected int getDividerBorderSize() + { +- return 0; ++ if (getOrientation() == JSplitPane.HORIZONTAL_SPLIT) ++ return divider.getBorder().getBorderInsets(divider).left; ++ else ++ return divider.getBorder().getBorderInsets(divider).top; ++ } ++ ++ /** ++ * This is a helper method that returns a valid location for the divider ++ * when dragging. ++ * ++ * @param location The location to check. ++ * ++ * @return A valid location. ++ */ ++ private int validLocation(int location) ++ { ++ if (location < getMinimumDividerLocation(splitPane)) ++ return getMinimumDividerLocation(splitPane); ++ if (location > getMaximumDividerLocation(splitPane)) ++ return getMaximumDividerLocation(splitPane); ++ return location; + } + } +Index: javax/swing/plaf/basic/BasicTabbedPaneUI.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI.java,v +retrieving revision 1.3 +diff -u -r1.3 BasicTabbedPaneUI.java +--- javax/swing/plaf/basic/BasicTabbedPaneUI.java 13 Jul 2003 15:29:11 -0000 1.3 ++++ javax/swing/plaf/basic/BasicTabbedPaneUI.java 6 Sep 2004 16:36:08 -0000 +@@ -1,5 +1,5 @@ + /* BasicTabbedPaneUI.java +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -28,82 +28,2985 @@ + 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 ++independent module, the terms and conditions of7 the license of that + module. An independent module is a module which is not derived from + or based on this library. If you modify this library, you may extend + this exception to your version of the library, but you are not + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing.plaf.basic; + ++import java.awt.Color; + import java.awt.Component; ++import java.awt.Container; + import java.awt.Dimension; ++import java.awt.Font; ++import java.awt.FontMetrics; ++import java.awt.Graphics; + import java.awt.Insets; ++import java.awt.LayoutManager; ++import java.awt.Point; + import java.awt.Rectangle; ++import java.awt.event.FocusAdapter; ++import java.awt.event.FocusEvent; ++import java.awt.event.FocusListener; ++import java.awt.event.MouseAdapter; ++import java.awt.event.MouseEvent; ++import java.awt.event.MouseListener; ++import java.beans.PropertyChangeEvent; ++import java.beans.PropertyChangeListener; ++ ++import javax.swing.Icon; + import javax.swing.JComponent; ++import javax.swing.JPanel; + import javax.swing.JTabbedPane; ++import javax.swing.JViewport; ++import javax.swing.KeyStroke; + import javax.swing.SwingConstants; ++import javax.swing.SwingUtilities; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; ++import javax.swing.event.ChangeEvent; ++import javax.swing.event.ChangeListener; + import javax.swing.plaf.ComponentUI; ++import javax.swing.plaf.PanelUI; + import javax.swing.plaf.TabbedPaneUI; ++import javax.swing.plaf.UIResource; ++import javax.swing.text.View; + +-public class BasicTabbedPaneUI extends TabbedPaneUI +- implements SwingConstants ++ ++/** ++ * This is the Basic Look and Feel's UI delegate for JTabbedPane. ++ */ ++public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants + { +- public static ComponentUI createUI(final JComponent c) ++ /** ++ * A helper class that handles focus. ++ */ ++ protected class FocusHandler extends FocusAdapter ++ { ++ /** ++ * This method is called when the component gains focus. ++ * ++ * @param e The FocusEvent. ++ */ ++ public void focusGained(FocusEvent e) + { +- return new BasicTabbedPaneUI(); ++ // FIXME: Implement. + } +- +- public void installUI(final JComponent c) ++ ++ /** ++ * This method is called when the component loses focus. ++ * ++ * @param e The FocusEvent. ++ */ ++ public void focusLost(FocusEvent e) + { +- super.installUI(c); ++ // FIXME: Implement. + } +- +- public Dimension getPreferredSize(JComponent c) ++ } ++ ++ /** ++ * A helper class for determining if mouse presses occur inside tabs and ++ * sets the index appropriately. In SCROLL_TAB_MODE, this class also ++ * handles the mouse clicks on the scrolling buttons. ++ */ ++ protected class MouseHandler extends MouseAdapter ++ { ++ /** ++ * This method is called when the mouse is pressed. The index cannot ++ * change to a tab that is not enabled. ++ * ++ * @param e The MouseEvent. ++ */ ++ public void mousePressed(MouseEvent e) + { +- JTabbedPane p = (JTabbedPane) c; ++ int x = e.getX(); ++ int y = e.getY(); ++ int tabCount = tabPane.getTabCount(); + +- Dimension d = new Dimension(50,50); +- +- for (int i=0;i= tabCount) ++ currentScrollLocation = tabCount - 1; ++ if (currentScrollLocation == tabCount - 1) ++ incrButton.setEnabled(false); ++ else if (! decrButton.isEnabled()) ++ decrButton.setEnabled(true); ++ tabPane.layout(); ++ tabPane.repaint(); ++ return; ++ } ++ else if (e.getSource() == decrButton) ++ { ++ if (--currentScrollLocation < 0) ++ currentScrollLocation = 0; ++ if (currentScrollLocation == 0) ++ decrButton.setEnabled(false); ++ else if (! incrButton.isEnabled()) ++ incrButton.setEnabled(true); ++ tabPane.layout(); ++ tabPane.repaint(); ++ return; ++ } ++ } ++ ++ int index = tabForCoordinate(tabPane, x, y); ++ ++ // We need to check since there are areas where tabs cannot be ++ // e.g. in the inset area. ++ if (index != -1 && tabPane.isEnabledAt(index)) ++ tabPane.setSelectedIndex(index); ++ tabPane.layout(); ++ tabPane.repaint(); ++ } ++ } + +- d.width = Math.max(d.width, comp.getWidth()); +- d.height = Math.max(d.height, comp.getHeight()); ++ /** ++ * This class handles PropertyChangeEvents fired from the JTabbedPane. ++ */ ++ protected class PropertyChangeHandler implements PropertyChangeListener ++ { ++ /** ++ * This method is called whenever one of the properties of the JTabbedPane ++ * changes. ++ * ++ * @param e The PropertyChangeEvent. ++ */ ++ public void propertyChange(PropertyChangeEvent e) ++ { ++ if (e.getPropertyName().equals(JTabbedPane.TAB_LAYOUT_POLICY_CHANGED_PROPERTY)) ++ { ++ layoutManager = createLayoutManager(); ++ ++ tabPane.setLayout(layoutManager); ++ } ++ else if (e.getPropertyName().equals(JTabbedPane.TAB_PLACEMENT_CHANGED_PROPERTY) ++ && tabPane.getTabLayoutPolicy() == JTabbedPane.SCROLL_TAB_LAYOUT) ++ { ++ incrButton = createIncreaseButton(); ++ decrButton = createDecreaseButton(); ++ } ++ tabPane.layout(); ++ tabPane.repaint(); ++ } ++ } ++ ++ /** ++ * A LayoutManager responsible for placing all the tabs and the visible ++ * component inside the JTabbedPane. This class is only used for ++ * WRAP_TAB_LAYOUT. ++ */ ++ protected class TabbedPaneLayout implements LayoutManager ++ { ++ /** ++ * This method is called when a component is added to the JTabbedPane. ++ * ++ * @param name The name of the component. ++ * @param comp The component being added. ++ */ ++ public void addLayoutComponent(String name, Component comp) ++ { ++ // Do nothing. ++ } ++ ++ /** ++ * This method is called when the rectangles need to be calculated. It ++ * also fixes the size of the visible component. ++ */ ++ public void calculateLayoutInfo() ++ { ++ calculateTabRects(tabPane.getTabPlacement(), tabPane.getTabCount()); ++ ++ if (tabPane.getSelectedIndex() != -1) ++ { ++ Component visible = getVisibleComponent(); ++ Insets insets = getContentBorderInsets(tabPane.getTabPlacement()); ++ if (visible != null) ++ visible.setBounds(contentRect.x + insets.left, ++ contentRect.y + insets.top, ++ contentRect.width - insets.left - insets.right, ++ contentRect.height - insets.top - insets.bottom); ++ } ++ } ++ ++ /** ++ * This method calculates the size of the the JTabbedPane. ++ * ++ * @param minimum Whether the JTabbedPane will try to be as small as it ++ * can. ++ * ++ * @return The desired size of the JTabbedPane. ++ */ ++ protected Dimension calculateSize(boolean minimum) ++ { ++ int tabPlacement = tabPane.getTabPlacement(); ++ int width = 0; ++ int height = 0; ++ ++ int componentHeight = 0; ++ int componentWidth = 0; ++ Component c; ++ Dimension dims; ++ for (int i = 0; i < tabPane.getTabCount(); i++) ++ { ++ c = tabPane.getComponentAt(i); ++ if (c == null) ++ continue; ++ calcRect = c.getBounds(); ++ dims = c.getPreferredSize(); ++ if (dims != null) ++ { ++ componentHeight = Math.max(componentHeight, dims.height); ++ componentWidth = Math.max(componentWidth, dims.width); + } +- +- Insets i = p.getInsets(); +- +- d.width += i.left + i.right; +- d.height += i.top + i.bottom; ++ } ++ Insets insets = tabPane.getInsets(); ++ ++ if (tabPlacement == SwingConstants.TOP ++ || tabPlacement == SwingConstants.BOTTOM) ++ { ++ width = calculateMaxTabWidth(tabPlacement) * tabPane.getTabCount(); ++ calcRect = tabPane.getParent().getBounds(); ++ width = Math.max(width, componentWidth); + +- int height_of_tabs = 25; ++ int tabAreaHeight = preferredTabAreaHeight(tabPlacement, width); ++ height = tabAreaHeight + componentHeight; ++ } ++ else ++ { ++ height = calculateMaxTabHeight(tabPlacement) * tabPane.getTabCount(); ++ calcRect = tabPane.getParent().getBounds(); ++ height = Math.max(height, componentHeight); + +- d.height += height_of_tabs; ++ int tabAreaWidth = preferredTabAreaWidth(tabPlacement, height); ++ width = tabAreaWidth + componentWidth; ++ } + +- // FIXME: should be max of panes in p +- return d; ++ return new Dimension(width, height); ++ } ++ ++ // if tab placement is LEFT OR RIGHT, they share width. ++ // if tab placement is TOP OR BOTTOM, they share height ++ // PRE STEP: finds the default sizes for the labels as well as their locations. ++ // AND where they will be placed within the run system. ++ // 1. calls normalizeTab Runs. ++ // 2. calls rotate tab runs. ++ // 3. pads the tab runs. ++ // 4. pads the selected tab. ++ ++ /** ++ * This method is called to calculate the tab rectangles. This method ++ * will calculate the size and position of all rectangles (taking into ++ * account which ones should be in which tab run). It will pad them and ++ * normalize them as necessary. ++ * ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param tabCount The run the current selection is in. ++ */ ++ protected void calculateTabRects(int tabPlacement, int tabCount) ++ { ++ if (tabCount == 0) ++ return; ++ assureRectsCreated(tabCount); ++ ++ FontMetrics fm = getFontMetrics(); ++ SwingUtilities.calculateInnerArea(tabPane, calcRect); ++ Insets tabAreaInsets = getTabAreaInsets(tabPlacement); ++ Insets insets = tabPane.getInsets(); ++ int max = 0; ++ int runs = 0; ++ int start = getTabRunIndent(tabPlacement, 1); ++ if (tabPlacement == SwingConstants.TOP ++ || tabPlacement == SwingConstants.BOTTOM) ++ { ++ int maxHeight = calculateMaxTabHeight(tabPlacement); ++ ++ calcRect.width -= tabAreaInsets.left + tabAreaInsets.right; ++ max = calcRect.width + tabAreaInsets.left + insets.left; ++ start += tabAreaInsets.left + insets.left; ++ int width = 0; ++ int runWidth = start; ++ ++ for (int i = 0; i < tabCount; i++) ++ { ++ width = calculateTabWidth(tabPlacement, i, fm); ++ ++ if (runWidth + width > max) ++ { ++ runWidth = tabAreaInsets.left + insets.left ++ + getTabRunIndent(tabPlacement, ++runs); ++ rects[i] = new Rectangle(runWidth, ++ insets.top + tabAreaInsets.top, ++ width, maxHeight); ++ runWidth += width; ++ if (runs > tabRuns.length - 1) ++ expandTabRunsArray(); ++ tabRuns[runs] = i; ++ } ++ else ++ { ++ rects[i] = new Rectangle(runWidth, ++ insets.top + tabAreaInsets.top, ++ width, maxHeight); ++ runWidth += width; ++ } ++ } ++ runs++; ++ tabAreaRect.width = tabPane.getWidth() - insets.left - insets.right; ++ tabAreaRect.height = runs * maxTabHeight ++ - (runs - 1) * tabRunOverlay ++ + tabAreaInsets.top + tabAreaInsets.bottom; ++ contentRect.width = tabAreaRect.width; ++ contentRect.height = tabPane.getHeight() - insets.top ++ - insets.bottom - tabAreaRect.height; ++ contentRect.x = insets.left; ++ tabAreaRect.x = insets.left; ++ if (tabPlacement == SwingConstants.BOTTOM) ++ { ++ contentRect.y = insets.top; ++ tabAreaRect.y = contentRect.y + contentRect.height; ++ } ++ else ++ { ++ tabAreaRect.y = insets.top; ++ contentRect.y = tabAreaRect.y + tabAreaRect.height; ++ } ++ } ++ else ++ { ++ int maxWidth = calculateMaxTabWidth(tabPlacement); ++ calcRect.height -= tabAreaInsets.top + tabAreaInsets.bottom; ++ max = calcRect.height + tabAreaInsets.top + insets.top; ++ ++ int height = 0; ++ start += tabAreaInsets.top + insets.top; ++ int runHeight = start; ++ ++ int fontHeight = fm.getHeight(); ++ ++ for (int i = 0; i < tabCount; i++) ++ { ++ height = calculateTabHeight(tabPlacement, i, fontHeight); ++ if (runHeight + height > max) ++ { ++ runHeight = tabAreaInsets.top + insets.top ++ + getTabRunIndent(tabPlacement, ++runs); ++ rects[i] = new Rectangle(insets.left + tabAreaInsets.left, ++ runHeight, maxWidth, height); ++ runHeight += height; ++ if (runs > tabRuns.length - 1) ++ expandTabRunsArray(); ++ tabRuns[runs] = i; ++ } ++ else ++ { ++ rects[i] = new Rectangle(insets.left + tabAreaInsets.left, ++ runHeight, maxWidth, height); ++ runHeight += height; ++ } ++ } ++ runs++; ++ ++ tabAreaRect.width = runs * maxTabWidth - (runs - 1) * tabRunOverlay ++ + tabAreaInsets.left + tabAreaInsets.right; ++ tabAreaRect.height = tabPane.getHeight() - insets.top ++ - insets.bottom; ++ tabAreaRect.y = insets.top; ++ contentRect.width = tabPane.getWidth() - insets.left - insets.right ++ - tabAreaRect.width; ++ contentRect.height = tabAreaRect.height; ++ contentRect.y = insets.top; ++ if (tabPlacement == SwingConstants.LEFT) ++ { ++ tabAreaRect.x = insets.left; ++ contentRect.x = tabAreaRect.x + tabAreaRect.width; ++ } ++ else ++ { ++ contentRect.x = insets.left; ++ tabAreaRect.x = contentRect.x + contentRect.width; ++ } ++ } ++ runCount = runs; ++ ++ tabRuns[0] = 0; ++ normalizeTabRuns(tabPlacement, tabCount, start, max); ++ selectedRun = getRunForTab(tabCount, tabPane.getSelectedIndex()); ++ if (shouldRotateTabRuns(tabPlacement)) ++ rotateTabRuns(tabPlacement, selectedRun); ++ ++ // Need to pad the runs and move them to the correct location. ++ for (int i = 0; i < runCount; i++) ++ { ++ int first = lastTabInRun(tabCount, getPreviousTabRun(i)) + 1; ++ if (first == tabCount) ++ first = 0; ++ int last = lastTabInRun(tabCount, i); ++ if (shouldPadTabRun(tabPlacement, i)) ++ padTabRun(tabPlacement, first, last, max); ++ ++ // Done padding, now need to move it. ++ if (tabPlacement == SwingConstants.TOP && i > 0) ++ { ++ for (int j = first; j <= last; j++) ++ rects[j].y += (runCount - i) * maxTabHeight ++ + (runCount - i) * tabRunOverlay; ++ } ++ ++ if (tabPlacement == SwingConstants.BOTTOM) ++ { ++ int height = tabPane.getBounds().height - insets.bottom ++ - tabAreaInsets.bottom; ++ int adjustment; ++ if (i == 0) ++ adjustment = height - maxTabHeight; ++ else ++ adjustment = height - (runCount - i + 1) * maxTabHeight ++ - (runCount - i) * tabRunOverlay; ++ ++ for (int j = first; j <= last; j++) ++ rects[j].y = adjustment; ++ } ++ ++ if (tabPlacement == SwingConstants.LEFT && i > 0) ++ { ++ for (int j = first; j <= last; j++) ++ rects[j].x += (runCount - i) * maxTabWidth ++ - (runCount - i) * tabRunOverlay; ++ } ++ ++ if (tabPlacement == SwingConstants.RIGHT) ++ { ++ int width = tabPane.getBounds().width - insets.right ++ - tabAreaInsets.right; ++ int adjustment; ++ if (i == 0) ++ adjustment = width - maxTabWidth; ++ else ++ adjustment = width - (runCount - i + 1) * maxTabWidth ++ + (runCount - i) * tabRunOverlay; ++ ++ for (int j = first; j <= last; j++) ++ rects[j].x = adjustment; ++ } ++ } ++ padSelectedTab(tabPlacement, tabPane.getSelectedIndex()); ++ } ++ ++ /** ++ * This method is called when the JTabbedPane is laid out in ++ * WRAP_TAB_LAYOUT. It calls calculateLayoutInfo to find the positions ++ * of all its components. ++ * ++ * @param parent The Container to lay out. ++ */ ++ public void layoutContainer(Container parent) ++ { ++ calculateLayoutInfo(); ++ } ++ ++ /** ++ * This method returns the minimum layout size for the given container. ++ * ++ * @param parent The container that is being sized. ++ * ++ * @return The minimum size. ++ */ ++ public Dimension minimumLayoutSize(Container parent) ++ { ++ return calculateSize(false); ++ } ++ ++ // If there is more free space in an adjacent run AND the tab in the run can fit in the ++ // adjacent run, move it. This method is not perfect, it is merely an approximation. ++ // If you play around with Sun's JTabbedPane, you'll see that ++ // it does do some pretty strange things with regards to not moving tabs ++ // that should be moved. ++ // start = the x position where the tabs will begin ++ // max = the maximum position of where the tabs can go to (tabAreaInsets.left + the width of the tab area) ++ ++ /** ++ * This method tries to "even out" the number of tabs in each run based on ++ * their widths. ++ * ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param tabCount The number of tabs. ++ * @param start The x position where the tabs will begin. ++ * @param max The maximum x position where the tab can run to. ++ */ ++ protected void normalizeTabRuns(int tabPlacement, int tabCount, int start, ++ int max) ++ { ++ Insets tabAreaInsets = getTabAreaInsets(tabPlacement); ++ if (tabPlacement == SwingUtilities.TOP ++ || tabPlacement == SwingUtilities.BOTTOM) ++ { ++ // We should only do this for runCount - 1, cause we can only shift that many times between ++ // runs. ++ for (int i = 1; i < runCount; i++) ++ { ++ Rectangle currRun = rects[lastTabInRun(tabCount, i)]; ++ Rectangle nextRun = rects[lastTabInRun(tabCount, getNextTabRun(i))]; ++ int spaceInCurr = currRun.x + currRun.width; ++ int spaceInNext = nextRun.x + nextRun.width; ++ ++ int diffNow = spaceInCurr - spaceInNext; ++ int diffLater = (spaceInCurr - currRun.width) ++ - (spaceInNext + currRun.width); ++ while (Math.abs(diffLater) < Math.abs(diffNow) ++ && spaceInNext + currRun.width < max) ++ { ++ tabRuns[i]--; ++ spaceInNext += currRun.width; ++ spaceInCurr -= currRun.width; ++ currRun = rects[lastTabInRun(tabCount, i)]; ++ diffNow = spaceInCurr - spaceInNext; ++ diffLater = (spaceInCurr - currRun.width) ++ - (spaceInNext + currRun.width); ++ } ++ ++ // Fix the bounds. ++ int first = lastTabInRun(tabCount, i) + 1; ++ int last = lastTabInRun(tabCount, getNextTabRun(i)); ++ int currX = tabAreaInsets.left; ++ for (int j = first; j <= last; j++) ++ { ++ rects[j].x = currX; ++ currX += rects[j].width; ++ } ++ } ++ } ++ else ++ { ++ for (int i = 1; i < runCount; i++) ++ { ++ Rectangle currRun = rects[lastTabInRun(tabCount, i)]; ++ Rectangle nextRun = rects[lastTabInRun(tabCount, getNextTabRun(i))]; ++ int spaceInCurr = currRun.y + currRun.height; ++ int spaceInNext = nextRun.y + nextRun.height; ++ ++ int diffNow = spaceInCurr - spaceInNext; ++ int diffLater = (spaceInCurr - currRun.height) ++ - (spaceInNext + currRun.height); ++ while (Math.abs(diffLater) < Math.abs(diffNow) ++ && spaceInNext + currRun.height < max) ++ { ++ tabRuns[i]--; ++ spaceInNext += currRun.height; ++ spaceInCurr -= currRun.height; ++ currRun = rects[lastTabInRun(tabCount, i)]; ++ diffNow = spaceInCurr - spaceInNext; ++ diffLater = (spaceInCurr - currRun.height) ++ - (spaceInNext + currRun.height); ++ } ++ ++ int first = lastTabInRun(tabCount, i) + 1; ++ int last = lastTabInRun(tabCount, getNextTabRun(i)); ++ int currY = tabAreaInsets.top; ++ for (int j = first; j <= last; j++) ++ { ++ rects[j].y = currY; ++ currY += rects[j].height; ++ } ++ } ++ } ++ } ++ ++ /** ++ * This method pads the tab at the selected index by the selected tab pad ++ * insets (so that it looks larger). ++ * ++ * @param tabPlacement The placement of the tabs. ++ * @param selectedIndex The selected index. ++ */ ++ protected void padSelectedTab(int tabPlacement, int selectedIndex) ++ { ++ Insets insets = getSelectedTabPadInsets(tabPlacement); ++ rects[selectedIndex].x -= insets.left; ++ rects[selectedIndex].y -= insets.top; ++ rects[selectedIndex].width += insets.left + insets.right; ++ rects[selectedIndex].height += insets.top + insets.bottom; ++ } ++ ++ // If the tabs on the run don't fill the width of the window, make it fit now. ++ // start = starting index of the run ++ // end = last index of the run ++ // max = tabAreaInsets.left + width (or equivalent) ++ // assert start <= end. ++ ++ /** ++ * This method makes each tab in the run larger so that the tabs expand ++ * to fill the runs width/height (depending on tabPlacement). ++ * ++ * @param tabPlacement The placement of the tabs. ++ * @param start The index of the first tab. ++ * @param end The last index of the tab ++ * @param max The amount of space in the run (width for TOP and BOTTOM ++ * tabPlacement). ++ */ ++ protected void padTabRun(int tabPlacement, int start, int end, int max) ++ { ++ if (tabPlacement == SwingConstants.TOP ++ || tabPlacement == SwingConstants.BOTTOM) ++ { ++ int runWidth = rects[end].x + rects[end].width; ++ int spaceRemaining = max - runWidth; ++ int numTabs = end - start + 1; ++ ++ // now divvy up the space. ++ int spaceAllocated = spaceRemaining / numTabs; ++ int currX = rects[start].x; ++ for (int i = start; i <= end; i++) ++ { ++ rects[i].x = currX; ++ rects[i].width += spaceAllocated; ++ currX += rects[i].width; ++ // This is used because since the spaceAllocated ++ // variable is an int, it rounds down. Sometimes, ++ // we don't fill an entire row, so we make it do ++ // so now. ++ if (i == end && rects[i].x + rects[i].width != max) ++ rects[i].width = max - rects[i].x; ++ } ++ } ++ else ++ { ++ int runHeight = rects[end].y + rects[end].height; ++ int spaceRemaining = max - runHeight; ++ int numTabs = end - start + 1; ++ ++ int spaceAllocated = spaceRemaining / numTabs; ++ int currY = rects[start].y; ++ for (int i = start; i <= end; i++) ++ { ++ rects[i].y = currY; ++ rects[i].height += spaceAllocated; ++ currY += rects[i].height; ++ if (i == end && rects[i].y + rects[i].height != max) ++ rects[i].height = max - rects[i].y; ++ } ++ } + } +- + +- public Rectangle getTabBounds(JTabbedPane pane, int index) ++ /** ++ * This method returns the preferred layout size for the given container. ++ * ++ * @param parent The container to size. ++ * ++ * @return The preferred layout size. ++ */ ++ public Dimension preferredLayoutSize(Container parent) + { +- return null; ++ return calculateSize(false); + } + +- public int getTabRunCount(JTabbedPane pane) ++ /** ++ * This method returns the preferred tab height given a tabPlacement and ++ * width. ++ * ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param width The expected width. ++ * ++ * @return The preferred tab area height. ++ */ ++ protected int preferredTabAreaHeight(int tabPlacement, int width) + { +- return 0; ++ if (tabPane.getTabCount() == 0) ++ return calculateTabAreaHeight(tabPlacement, 0, 0); ++ ++ int runs = 0; ++ int runWidth = 0; ++ int tabWidth = 0; ++ ++ FontMetrics fm = getFontMetrics(); ++ ++ Insets tabAreaInsets = getTabAreaInsets(tabPlacement); ++ Insets insets = tabPane.getInsets(); ++ ++ // Only interested in width, this is a messed up rectangle now. ++ width -= tabAreaInsets.left + tabAreaInsets.right + insets.left ++ + insets.right; ++ ++ // The reason why we can't use runCount: ++ // This method is only called to calculate the size request ++ // for the tabbedPane. However, this size request is dependent on ++ // our desired width. We need to find out what the height would ++ // be IF we got our desired width. ++ for (int i = 0; i < tabPane.getTabCount(); i++) ++ { ++ tabWidth = calculateTabWidth(tabPlacement, i, fm); ++ if (runWidth + tabWidth > width) ++ { ++ runWidth = tabWidth; ++ runs++; ++ } ++ else ++ runWidth += tabWidth; ++ } ++ runs++; ++ ++ int maxTabHeight = calculateMaxTabHeight(tabPlacement); ++ int tabAreaHeight = calculateTabAreaHeight(tabPlacement, runs, ++ maxTabHeight); ++ return tabAreaHeight; + } + +- public int tabForCoordinate(JTabbedPane pane, int x, int y) ++ /** ++ * This method calculates the preferred tab area width given a tab ++ * placement and height. ++ * ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param height The expected height. ++ * ++ * @return The preferred tab area width. ++ */ ++ protected int preferredTabAreaWidth(int tabPlacement, int height) + { +- return 0; ++ if (tabPane.getTabCount() == 0) ++ return calculateTabAreaHeight(tabPlacement, 0, 0); ++ ++ int runs = 0; ++ int runHeight = 0; ++ int tabHeight = 0; ++ ++ FontMetrics fm = getFontMetrics(); ++ ++ Insets tabAreaInsets = getTabAreaInsets(tabPlacement); ++ Insets insets = tabPane.getInsets(); ++ ++ height -= tabAreaInsets.top + tabAreaInsets.bottom + insets.top ++ + insets.bottom; ++ int fontHeight = fm.getHeight(); ++ ++ for (int i = 0; i < tabPane.getTabCount(); i++) ++ { ++ tabHeight = calculateTabHeight(tabPlacement, i, fontHeight); ++ if (runHeight + tabHeight > height) ++ { ++ runHeight = tabHeight; ++ runs++; ++ } ++ else ++ runHeight += tabHeight; ++ } ++ runs++; ++ ++ int maxTabWidth = calculateMaxTabWidth(tabPlacement); ++ int tabAreaWidth = calculateTabAreaWidth(tabPlacement, runs, maxTabWidth); ++ return tabAreaWidth; + } ++ ++ /** ++ * This method rotates the places each run in the correct place the ++ * tabRuns array. See the comment for tabRuns for how the runs are placed ++ * in the array. ++ * ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param selectedRun The run the current selection is in. ++ */ ++ protected void rotateTabRuns(int tabPlacement, int selectedRun) ++ { ++ if (selectedRun == 1 || selectedRun == -1) ++ return; ++ int[] newTabRuns = new int[tabRuns.length]; ++ int currentRun = selectedRun; ++ int i = 1; ++ do ++ { ++ newTabRuns[i] = tabRuns[currentRun]; ++ currentRun = getNextTabRun(currentRun); ++ i++; ++ } ++ while (i < runCount); ++ if (runCount > 1) ++ newTabRuns[0] = tabRuns[currentRun]; ++ ++ tabRuns = newTabRuns; ++ BasicTabbedPaneUI.this.selectedRun = 1; ++ } ++ ++ /** ++ * This method is called when a component is removed from the ++ * JTabbedPane. ++ * ++ * @param comp The component removed. ++ */ ++ public void removeLayoutComponent(Component comp) ++ { ++ // Do nothing. ++ } ++ } ++ ++ /** ++ * This class acts as the LayoutManager for the JTabbedPane in ++ * SCROLL_TAB_MODE. ++ */ ++ private class TabbedPaneScrollLayout extends TabbedPaneLayout ++ { ++ /** ++ * This method returns the preferred layout size for the given container. ++ * ++ * @param parent The container to calculate a size for. ++ * ++ * @return The preferred layout size. ++ */ ++ public Dimension preferredLayoutSize(Container parent) ++ { ++ return super.calculateSize(true); ++ } ++ ++ /** ++ * This method returns the minimum layout size for the given container. ++ * ++ * @param parent The container to calculate a size for. ++ * ++ * @return The minimum layout size. ++ */ ++ public Dimension minimumLayoutSize(Container parent) ++ { ++ return super.calculateSize(true); ++ } ++ ++ /** ++ * This method calculates the tab area height given a desired width. ++ * ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param width The expected width. ++ * ++ * @return The tab area height given the width. ++ */ ++ protected int preferredTabAreaHeight(int tabPlacement, int width) ++ { ++ if (tabPane.getTabCount() == 0) ++ return calculateTabAreaHeight(tabPlacement, 0, 0); ++ ++ int runs = 1; ++ ++ int maxTabHeight = calculateMaxTabHeight(tabPlacement); ++ int tabAreaHeight = calculateTabAreaHeight(tabPlacement, runs, ++ maxTabHeight); ++ return tabAreaHeight; ++ } ++ ++ /** ++ * This method calculates the tab area width given a desired height. ++ * ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param height The expected height. ++ * ++ * @return The tab area width given the height. ++ */ ++ protected int preferredTabAreaWidth(int tabPlacement, int height) ++ { ++ if (tabPane.getTabCount() == 0) ++ return calculateTabAreaHeight(tabPlacement, 0, 0); ++ ++ int runs = 1; ++ ++ int maxTabWidth = calculateMaxTabWidth(tabPlacement); ++ int tabAreaWidth = calculateTabAreaWidth(tabPlacement, runs, maxTabWidth); ++ return tabAreaWidth; ++ } ++ ++ /** ++ * This method is called to calculate the tab rectangles. This method ++ * will calculate the size and position of all rectangles (taking into ++ * account which ones should be in which tab run). It will pad them and ++ * normalize them as necessary. ++ * ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param tabCount The number of tabs. ++ */ ++ protected void calculateTabRects(int tabPlacement, int tabCount) ++ { ++ if (tabCount == 0) ++ return; ++ assureRectsCreated(tabCount); ++ ++ FontMetrics fm = getFontMetrics(); ++ SwingUtilities.calculateInnerArea(tabPane, calcRect); ++ Insets tabAreaInsets = getTabAreaInsets(tabPlacement); ++ Insets insets = tabPane.getInsets(); ++ int max = 0; ++ int runs = 1; ++ int start = 0; ++ int top = 0; ++ if (tabPlacement == SwingConstants.TOP ++ || tabPlacement == SwingConstants.BOTTOM) ++ { ++ int maxHeight = calculateMaxTabHeight(tabPlacement); ++ calcRect.width -= tabAreaInsets.left + tabAreaInsets.right; ++ max = calcRect.width + tabAreaInsets.left + insets.left; ++ start = tabAreaInsets.left + insets.left; ++ int width = 0; ++ int runWidth = start; ++ top = insets.top + tabAreaInsets.top; ++ for (int i = 0; i < tabCount; i++) ++ { ++ width = calculateTabWidth(tabPlacement, i, fm); ++ ++ rects[i] = new Rectangle(runWidth, top, width, maxHeight); ++ runWidth += width; ++ } ++ tabAreaRect.width = tabPane.getWidth() - insets.left - insets.right; ++ tabAreaRect.height = runs * maxTabHeight ++ - (runs - 1) * tabRunOverlay ++ + tabAreaInsets.top + tabAreaInsets.bottom; ++ contentRect.width = tabAreaRect.width; ++ contentRect.height = tabPane.getHeight() - insets.top ++ - insets.bottom - tabAreaRect.height; ++ contentRect.x = insets.left; ++ tabAreaRect.x = insets.left; ++ if (tabPlacement == SwingConstants.BOTTOM) ++ { ++ contentRect.y = insets.top; ++ tabAreaRect.y = contentRect.y + contentRect.height; ++ } ++ else ++ { ++ tabAreaRect.y = insets.top; ++ contentRect.y = tabAreaRect.y + tabAreaRect.height; ++ } ++ } ++ else ++ { ++ int maxWidth = calculateMaxTabWidth(tabPlacement); ++ ++ calcRect.height -= tabAreaInsets.top + tabAreaInsets.bottom; ++ max = calcRect.height + tabAreaInsets.top; ++ int height = 0; ++ start = tabAreaInsets.top + insets.top; ++ int runHeight = start; ++ int fontHeight = fm.getHeight(); ++ top = insets.left + tabAreaInsets.left; ++ for (int i = 0; i < tabCount; i++) ++ { ++ height = calculateTabHeight(tabPlacement, i, fontHeight); ++ rects[i] = new Rectangle(top, runHeight, maxWidth, height); ++ runHeight += height; ++ } ++ tabAreaRect.width = runs * maxTabWidth - (runs - 1) * tabRunOverlay ++ + tabAreaInsets.left + tabAreaInsets.right; ++ tabAreaRect.height = tabPane.getHeight() - insets.top ++ - insets.bottom; ++ tabAreaRect.y = insets.top; ++ contentRect.width = tabPane.getWidth() - insets.left - insets.right ++ - tabAreaRect.width; ++ contentRect.height = tabAreaRect.height; ++ contentRect.y = insets.top; ++ if (tabPlacement == SwingConstants.LEFT) ++ { ++ tabAreaRect.x = insets.left; ++ contentRect.x = tabAreaRect.x + tabAreaRect.width; ++ } ++ else ++ { ++ contentRect.x = insets.left; ++ tabAreaRect.x = contentRect.x + contentRect.width; ++ } ++ } ++ runCount = runs; ++ ++ padSelectedTab(tabPlacement, tabPane.getSelectedIndex()); ++ } ++ ++ /** ++ * This method is called when the JTabbedPane is laid out in ++ * SCROLL_TAB_LAYOUT. It finds the position for all components in the ++ * JTabbedPane. ++ * ++ * @param pane The JTabbedPane to be laid out. ++ */ ++ public void layoutContainer(Container pane) ++ { ++ super.layoutContainer(pane); ++ int tabCount = tabPane.getTabCount(); ++ if (tabCount == 0) ++ return; ++ int tabPlacement = tabPane.getTabPlacement(); ++ incrButton.hide(); ++ decrButton.hide(); ++ if (tabPlacement == SwingConstants.TOP ++ || tabPlacement == SwingConstants.BOTTOM) ++ { ++ if (tabAreaRect.x + tabAreaRect.width < rects[tabCount - 1].x ++ + rects[tabCount - 1].width) ++ { ++ Dimension incrDims = incrButton.getPreferredSize(); ++ Dimension decrDims = decrButton.getPreferredSize(); ++ ++ decrButton.setBounds(tabAreaRect.x + tabAreaRect.width ++ - incrDims.width - decrDims.width, ++ tabAreaRect.y, decrDims.width, ++ tabAreaRect.height); ++ incrButton.setBounds(tabAreaRect.x + tabAreaRect.width ++ - incrDims.width, tabAreaRect.y, ++ decrDims.width, tabAreaRect.height); ++ ++ tabAreaRect.width -= decrDims.width + incrDims.width; ++ incrButton.show(); ++ decrButton.show(); ++ } ++ } ++ ++ if (tabPlacement == SwingConstants.LEFT ++ || tabPlacement == SwingConstants.RIGHT) ++ { ++ if (tabAreaRect.y + tabAreaRect.height < rects[tabCount - 1].y ++ + rects[tabCount - 1].height) ++ { ++ Dimension incrDims = incrButton.getPreferredSize(); ++ Dimension decrDims = decrButton.getPreferredSize(); ++ ++ decrButton.setBounds(tabAreaRect.x, ++ tabAreaRect.y + tabAreaRect.height ++ - incrDims.height - decrDims.height, ++ tabAreaRect.width, decrDims.height); ++ incrButton.setBounds(tabAreaRect.x, ++ tabAreaRect.y + tabAreaRect.height ++ - incrDims.height, tabAreaRect.width, ++ incrDims.height); ++ ++ tabAreaRect.height -= decrDims.height + incrDims.height; ++ incrButton.show(); ++ decrButton.show(); ++ } ++ } ++ viewport.setBounds(tabAreaRect.x, tabAreaRect.y, tabAreaRect.width, ++ tabAreaRect.height); ++ int tabC = tabPane.getTabCount() - 1; ++ if (tabCount > 0) ++ { ++ int w = Math.max(rects[tabC].width + rects[tabC].x, tabAreaRect.width); ++ int h = Math.max(rects[tabC].height, tabAreaRect.height); ++ Point p = findPointForIndex(currentScrollLocation); ++ ++ // we want to cover that entire space so that borders that run under ++ // the tab area don't show up when we move the viewport around. ++ panel.setSize(w + p.x, h + p.y); ++ } ++ viewport.setViewPosition(findPointForIndex(currentScrollLocation)); ++ } ++ } ++ ++ /** ++ * This class handles ChangeEvents from the JTabbedPane. ++ */ ++ protected class TabSelectionHandler implements ChangeListener ++ { ++ /** ++ * This method is called whenever a ChangeEvent is fired from the ++ * JTabbedPane. ++ * ++ * @param e The ChangeEvent fired. ++ */ ++ public void stateChanged(ChangeEvent e) ++ { ++ selectedRun = getRunForTab(tabPane.getTabCount(), ++ tabPane.getSelectedIndex()); ++ tabPane.revalidate(); ++ tabPane.repaint(); ++ } ++ } ++ ++ /** ++ * This helper class is a JPanel that fits inside the ScrollViewport. This ++ * panel's sole job is to paint the tab rectangles inside the viewport so ++ * that it's clipped correctly. ++ */ ++ private class ScrollingPanel extends JPanel ++ { ++ /** ++ * This is a private UI class for our panel. ++ */ ++ private class ScrollingPanelUI extends BasicPanelUI ++ { ++ /** ++ * This method overrides the default paint method. It paints the tab ++ * rectangles for the JTabbedPane in the panel. ++ * ++ * @param g The Graphics object to paint with. ++ * @param c The JComponent to paint. ++ */ ++ public void paint(Graphics g, JComponent c) ++ { ++ paintTabArea(g, tabPane.getTabPlacement(), tabPane.getSelectedIndex()); ++ } ++ } ++ ++ /** ++ * This method overrides the updateUI method. It makes the default UI for ++ * this ScrollingPanel to be a ScrollingPanelUI. ++ */ ++ public void updateUI() ++ { ++ setUI((PanelUI) new ScrollingPanelUI()); ++ } ++ } ++ ++ /** ++ * This is a helper class that paints the panel that paints tabs. This ++ * custom JViewport is used so that the tabs painted in the panel will be ++ * clipped. This class implements UIResource so tabs are not added when ++ * this objects of this class are added to the JTabbedPane. ++ */ ++ private class ScrollingViewport extends JViewport implements UIResource ++ { ++ } ++ ++ /** ++ * This is a helper class that implements UIResource so it is not added as a ++ * tab when an object of this class is added to the JTabbedPane. ++ */ ++ private static class ScrollingButton extends BasicArrowButton ++ implements UIResource ++ { ++ /** ++ * Creates a ScrollingButton given the direction. ++ * ++ * @param dir The direction to point in. ++ */ ++ public ScrollingButton(int dir) ++ { ++ super(dir); ++ } ++ } ++ ++ /** The button that increments the current scroll location. */ ++ private transient ScrollingButton incrButton; ++ ++ /** The button that decrements the current scroll location. */ ++ private transient ScrollingButton decrButton; ++ ++ /** The viewport used to display the tabs. */ ++ private transient ScrollingViewport viewport; ++ ++ /** The panel inside the viewport that paints the tabs. */ ++ private transient ScrollingPanel panel; ++ ++ /** The starting visible tab in the run in SCROLL_TAB_MODE. */ ++ private transient int currentScrollLocation; ++ ++ /** A reusable rectangle. */ ++ protected Rectangle calcRect; ++ ++ /** An array of Rectangles keeping track of the tabs' area and position. */ ++ protected Rectangle[] rects; ++ ++ /** The insets around the content area. */ ++ protected Insets contentBorderInsets; ++ ++ /** The extra insets around the selected tab. */ ++ protected Insets selectedTabPadInsets; ++ ++ /** The insets around the tab area. */ ++ protected Insets tabAreaInsets; ++ ++ /** The insets around each and every tab. */ ++ protected Insets tabInsets; ++ ++ /** ++ * The outer bottom and right edge color for both the tab and content ++ * border. ++ */ ++ protected Color darkShadow; ++ ++ /** The color of the focus outline on the selected tab. */ ++ protected Color focus; ++ ++ /** FIXME: find a use for this. */ ++ protected Color highlight; ++ ++ /** The top and left edge color for both the tab and content border. */ ++ protected Color lightHighlight; ++ ++ /** The inner bottom and right edge color for the tab and content border. */ ++ protected Color shadow; ++ ++ /** The maximum tab height. */ ++ protected int maxTabHeight; ++ ++ /** The maximum tab width. */ ++ protected int maxTabWidth; ++ ++ /** The number of runs in the JTabbedPane. */ ++ protected int runCount; ++ ++ /** The index of the run that the selected index is in. */ ++ protected int selectedRun; ++ ++ /** The amount of space each run overlaps the previous by. */ ++ protected int tabRunOverlay; ++ ++ /** The gap between text and label */ ++ protected int textIconGap; ++ ++ // Keeps track of tab runs. ++ // The organization of this array is as follows (lots of experimentation to ++ // figure this out) ++ // index 0 = furthest away from the component area (aka outer run) ++ // index 1 = closest to component area (aka selected run) ++ // index > 1 = listed in order leading from selected run to outer run. ++ // each int in the array is the tab index + 1 (counting starts at 1) ++ // for the last tab in the run. (same as the rects array) ++ ++ /** This array keeps track of which tabs are in which run. See above. */ ++ protected int[] tabRuns; ++ ++ /** Deprecated. This is the keystroke for moving down. */ ++ protected KeyStroke downKey; ++ ++ /** Deprecated. This is the keystroke for moving left. */ ++ protected KeyStroke leftKey; ++ ++ /** Deprecated. This is the keystroke for moving right. */ ++ protected KeyStroke rightKey; ++ ++ /** Deprecated. This is the keystroke for moving up. */ ++ protected KeyStroke upKey; ++ ++ /** The listener that listens for focus events. */ ++ protected FocusListener focusListener; ++ ++ /** The listener that listens for mouse events. */ ++ protected MouseListener mouseListener; ++ ++ /** The listener that listens for property change events. */ ++ protected PropertyChangeListener propertyChangeListener; ++ ++ /** The listener that listens for change events. */ ++ protected ChangeListener tabChangeListener; ++ ++ /** The tab pane that this UI paints. */ ++ protected JTabbedPane tabPane; ++ ++ /** The current layout manager for the tabPane. */ ++ private transient LayoutManager layoutManager; ++ ++ /** The rectangle that describes the tab area's position and size. */ ++ private transient Rectangle tabAreaRect; ++ ++ /** The rectangle that describes the content area's position and size. */ ++ private transient Rectangle contentRect; ++ ++ /** ++ * Creates a new BasicTabbedPaneUI object. ++ */ ++ public BasicTabbedPaneUI() ++ { ++ super(); ++ } ++ ++ /** ++ * This method creates a ScrollingButton that points in the appropriate ++ * direction for an increasing button. ++ * ++ * @return The increase ScrollingButton. ++ */ ++ private ScrollingButton createIncreaseButton() ++ { ++ if (incrButton == null) ++ incrButton = new ScrollingButton(SwingConstants.NORTH); ++ if (tabPane.getTabPlacement() == SwingConstants.TOP ++ || tabPane.getTabPlacement() == SwingConstants.BOTTOM) ++ incrButton.setDirection(SwingConstants.EAST); ++ else ++ incrButton.setDirection(SwingConstants.SOUTH); ++ return incrButton; ++ } ++ ++ /** ++ * This method creates a ScrollingButton that points in the appropriate ++ * direction for a decreasing button. ++ * ++ * @return The decrease ScrollingButton. ++ */ ++ private ScrollingButton createDecreaseButton() ++ { ++ if (decrButton == null) ++ decrButton = new ScrollingButton(SwingConstants.SOUTH); ++ if (tabPane.getTabPlacement() == SwingConstants.TOP ++ || tabPane.getTabPlacement() == SwingConstants.BOTTOM) ++ decrButton.setDirection(SwingConstants.WEST); ++ else ++ decrButton.setDirection(SwingConstants.NORTH); ++ return decrButton; ++ } ++ ++ /** ++ * This method finds the point to set the view position at given the index ++ * of a tab. The tab will be the first visible tab in the run. ++ * ++ * @param index The index of the first visible tab. ++ * ++ * @return The position of the first visible tab. ++ */ ++ private Point findPointForIndex(int index) ++ { ++ int tabPlacement = tabPane.getTabPlacement(); ++ int selectedIndex = tabPane.getSelectedIndex(); ++ Insets insets = getSelectedTabPadInsets(tabPlacement); ++ int w = 0; ++ int h = 0; ++ ++ if (tabPlacement == TOP || tabPlacement == BOTTOM) ++ { ++ if (index > 0) ++ { ++ w += rects[index - 1].x + rects[index - 1].width; ++ if (index > selectedIndex) ++ w -= insets.left + insets.right; ++ } ++ } ++ ++ else ++ { ++ if (index > 0) ++ { ++ h += rects[index - 1].y + rects[index - 1].height; ++ if (index > selectedIndex) ++ h -= insets.top + insets.bottom; ++ } ++ } ++ ++ Point p = new Point(w, h); ++ return p; ++ } ++ ++ /** ++ * This method creates a new BasicTabbedPaneUI. ++ * ++ * @param c The JComponent to create a UI for. ++ * ++ * @return A new BasicTabbedPaneUI. ++ */ ++ public static ComponentUI createUI(JComponent c) ++ { ++ return new BasicTabbedPaneUI(); ++ } ++ ++ /** ++ * This method installs the UI for the given JComponent. ++ * ++ * @param c The JComponent to install the UI for. ++ */ ++ public void installUI(JComponent c) ++ { ++ super.installUI(c); ++ if (c instanceof JTabbedPane) ++ { ++ tabPane = (JTabbedPane) c; ++ ++ installComponents(); ++ installDefaults(); ++ installListeners(); ++ installKeyboardActions(); ++ ++ layoutManager = createLayoutManager(); ++ tabPane.setLayout(layoutManager); ++ tabPane.layout(); ++ } ++ } ++ ++ /** ++ * This method uninstalls the UI for the given JComponent. ++ * ++ * @param c The JComponent to uninstall the UI for. ++ */ ++ public void uninstallUI(JComponent c) ++ { ++ layoutManager = null; ++ ++ uninstallKeyboardActions(); ++ uninstallListeners(); ++ uninstallDefaults(); ++ uninstallComponents(); ++ ++ tabPane = null; ++ } ++ ++ /** ++ * This method creates the appropriate layout manager for the JTabbedPane's ++ * current tab layout policy. If the tab layout policy is ++ * SCROLL_TAB_LAYOUT, then all the associated components that need to be ++ * created will be done so now. ++ * ++ * @return A layout manager given the tab layout policy. ++ */ ++ public LayoutManager createLayoutManager() ++ { ++ if (tabPane.getTabLayoutPolicy() == JTabbedPane.WRAP_TAB_LAYOUT) ++ return new TabbedPaneLayout(); ++ else ++ { ++ incrButton = createIncreaseButton(); ++ decrButton = createDecreaseButton(); ++ viewport = new ScrollingViewport(); ++ panel = new ScrollingPanel(); ++ viewport.setView(panel); ++ tabPane.add(incrButton); ++ tabPane.add(decrButton); ++ tabPane.add(viewport); ++ currentScrollLocation = 0; ++ decrButton.setEnabled(false); ++ panel.addMouseListener(mouseListener); ++ incrButton.addMouseListener(mouseListener); ++ decrButton.addMouseListener(mouseListener); ++ viewport.setBackground(Color.LIGHT_GRAY); ++ ++ return new TabbedPaneScrollLayout(); ++ } ++ } ++ ++ /** ++ * This method installs components for this JTabbedPane. ++ */ ++ protected void installComponents() ++ { ++ // Nothing to be done. ++ } ++ ++ /** ++ * This method uninstalls components for this JTabbedPane. ++ */ ++ protected void uninstallComponents() ++ { ++ // Nothing to be done. ++ } ++ ++ /** ++ * This method installs defaults for the Look and Feel. ++ */ ++ protected void installDefaults() ++ { ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ ++ tabPane.setFont(defaults.getFont("TabbedPane.font")); ++ tabPane.setForeground(defaults.getColor("TabbedPane.foreground")); ++ tabPane.setBackground(defaults.getColor("TabbedPane.background")); ++ tabPane.setOpaque(true); ++ ++ highlight = defaults.getColor("TabbedPane.highlight"); ++ lightHighlight = defaults.getColor("TabbedPane.lightHighlight"); ++ ++ shadow = defaults.getColor("TabbedPane.shadow"); ++ darkShadow = defaults.getColor("TabbedPane.darkShadow"); ++ ++ focus = defaults.getColor("TabbedPane.focus"); ++ ++ textIconGap = defaults.getInt("TabbedPane.textIconGap"); ++ tabRunOverlay = defaults.getInt("TabbedPane.tabRunOverlay"); ++ ++ tabInsets = defaults.getInsets("TabbedPane.tabbedPaneTabInsets"); ++ selectedTabPadInsets = defaults.getInsets("TabbedPane.tabbedPaneTabPadInsets"); ++ tabAreaInsets = defaults.getInsets("TabbedPane.tabbedPaneTabAreaInsets"); ++ contentBorderInsets = defaults.getInsets("TabbedPane.tabbedPaneContentBorderInsets"); ++ ++ calcRect = new Rectangle(); ++ tabRuns = new int[10]; ++ tabAreaRect = new Rectangle(); ++ contentRect = new Rectangle(); ++ } ++ ++ /** ++ * This method uninstalls defaults for the Look and Feel. ++ */ ++ protected void uninstallDefaults() ++ { ++ calcRect = null; ++ tabAreaRect = null; ++ contentRect = null; ++ tabRuns = null; ++ ++ contentBorderInsets = null; ++ tabAreaInsets = null; ++ selectedTabPadInsets = null; ++ tabInsets = null; ++ ++ focus = null; ++ darkShadow = null; ++ shadow = null; ++ lightHighlight = null; ++ highlight = null; ++ ++ tabPane.setBackground(null); ++ tabPane.setForeground(null); ++ tabPane.setFont(null); ++ } ++ ++ /** ++ * This method creates and installs the listeners for this UI. ++ */ ++ protected void installListeners() ++ { ++ mouseListener = createMouseListener(); ++ tabChangeListener = createChangeListener(); ++ propertyChangeListener = createPropertyChangeListener(); ++ focusListener = createFocusListener(); ++ ++ tabPane.addMouseListener(mouseListener); ++ tabPane.addChangeListener(tabChangeListener); ++ tabPane.addPropertyChangeListener(propertyChangeListener); ++ tabPane.addFocusListener(focusListener); ++ } ++ ++ /** ++ * This method removes and nulls the listeners for this UI. ++ */ ++ protected void uninstallListeners() ++ { ++ tabPane.removeFocusListener(focusListener); ++ tabPane.removePropertyChangeListener(propertyChangeListener); ++ tabPane.removeChangeListener(tabChangeListener); ++ tabPane.removeMouseListener(mouseListener); ++ ++ focusListener = null; ++ propertyChangeListener = null; ++ tabChangeListener = null; ++ mouseListener = null; ++ } ++ ++ /** ++ * This method creates a new MouseListener. ++ * ++ * @return A new MouseListener. ++ */ ++ protected MouseListener createMouseListener() ++ { ++ return new MouseHandler(); ++ } ++ ++ /** ++ * This method creates a new FocusListener. ++ * ++ * @return A new FocusListener. ++ */ ++ protected FocusListener createFocusListener() ++ { ++ return new FocusHandler(); ++ } ++ ++ /** ++ * This method creates a new ChangeListener. ++ * ++ * @return A new ChangeListener. ++ */ ++ protected ChangeListener createChangeListener() ++ { ++ return new TabSelectionHandler(); ++ } ++ ++ /** ++ * This method creates a new PropertyChangeListener. ++ * ++ * @return A new PropertyChangeListener. ++ */ ++ protected PropertyChangeListener createPropertyChangeListener() ++ { ++ return new PropertyChangeHandler(); ++ } ++ ++ /** ++ * This method installs keyboard actions for the JTabbedPane. ++ */ ++ protected void installKeyboardActions() ++ { ++ // FIXME: Implement. ++ } ++ ++ /** ++ * This method uninstalls keyboard actions for the JTabbedPane. ++ */ ++ protected void uninstallKeyboardActions() ++ { ++ // FIXME: Implement. ++ } ++ ++ /** ++ * This method returns the preferred size of the JTabbedPane. ++ * ++ * @param c The JComponent to find a size for. ++ * ++ * @return The preferred size. ++ */ ++ public Dimension getPreferredSize(JComponent c) ++ { ++ return layoutManager.preferredLayoutSize(tabPane); ++ } ++ ++ /** ++ * This method returns the minimum size of the JTabbedPane. ++ * ++ * @param c The JComponent to find a size for. ++ * ++ * @return The minimum size. ++ */ ++ public Dimension getMinimumSize(JComponent c) ++ { ++ return layoutManager.minimumLayoutSize(tabPane); ++ } ++ ++ /** ++ * This method returns the maximum size of the JTabbedPane. ++ * ++ * @param c The JComponent to find a size for. ++ * ++ * @return The maximum size. ++ */ ++ public Dimension getMaximumSize(JComponent c) ++ { ++ return getPreferredSize(c); ++ } ++ ++ /** ++ * This method paints the JTabbedPane. ++ * ++ * @param g The Graphics object to paint with. ++ * @param c The JComponent to paint. ++ */ ++ public void paint(Graphics g, JComponent c) ++ { ++ if (tabPane.getTabCount() == 0) ++ return; ++ if (tabPane.getTabLayoutPolicy() == JTabbedPane.WRAP_TAB_LAYOUT) ++ paintTabArea(g, tabPane.getTabPlacement(), tabPane.getSelectedIndex()); ++ paintContentBorder(g, tabPane.getTabPlacement(), tabPane.getSelectedIndex()); ++ } ++ ++ /** ++ * This method paints the tab area. This includes painting the rectangles ++ * that make up the tabs. ++ * ++ * @param g The Graphics object to paint with. ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param selectedIndex The selected index. ++ */ ++ protected void paintTabArea(Graphics g, int tabPlacement, int selectedIndex) ++ { ++ Rectangle ir = new Rectangle(); ++ Rectangle tr = new Rectangle(); ++ ++ // Please note: the ordering of the painting is important. ++ // we WANT to paint the outermost run first and then work our way in. ++ int tabCount = tabPane.getTabCount(); ++ int currRun = 1; ++ if (tabCount < 1) ++ return; ++ ++ if (runCount > 1) ++ currRun = 0; ++ for (int i = 0; i < runCount; i++) ++ { ++ int first = lastTabInRun(tabCount, getPreviousTabRun(currRun)) + 1; ++ if (first == tabCount) ++ first = 0; ++ int last = lastTabInRun(tabCount, currRun); ++ for (int j = first; j <= last; j++) ++ { ++ if (j != selectedIndex) ++ paintTab(g, tabPlacement, rects, j, ir, tr); ++ } ++ currRun = getNextTabRun(currRun); ++ } ++ paintTab(g, tabPlacement, rects, selectedIndex, ir, tr); ++ } ++ ++ /** ++ * This method paints an individual tab. ++ * ++ * @param g The Graphics object to paint with. ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param rects The array of rectangles that keep the size and position of ++ * the tabs. ++ * @param tabIndex The tab index to paint. ++ * @param iconRect The rectangle to use for the icon. ++ * @param textRect The rectangle to use for the text. ++ */ ++ protected void paintTab(Graphics g, int tabPlacement, Rectangle[] rects, ++ int tabIndex, Rectangle iconRect, Rectangle textRect) ++ { ++ FontMetrics fm = getFontMetrics(); ++ Icon icon = getIconForTab(tabIndex); ++ String title = tabPane.getTitleAt(tabIndex); ++ boolean isSelected = tabIndex == tabPane.getSelectedIndex(); ++ calcRect = getTabBounds(tabPane, tabIndex); ++ ++ int x = calcRect.x; ++ int y = calcRect.y; ++ int w = calcRect.width; ++ int h = calcRect.height; ++ if (getRunForTab(tabPane.getTabCount(), tabIndex) == 1) ++ { ++ Insets insets = getTabAreaInsets(tabPlacement); ++ switch (tabPlacement) ++ { ++ case TOP: ++ h += insets.bottom; ++ break; ++ case LEFT: ++ w += insets.right; ++ break; ++ case BOTTOM: ++ y -= insets.top; ++ h += insets.top; ++ break; ++ case RIGHT: ++ x -= insets.left; ++ w += insets.left; ++ break; ++ } ++ } ++ ++ layoutLabel(tabPlacement, fm, tabIndex, title, icon, calcRect, iconRect, ++ textRect, isSelected); ++ paintTabBackground(g, tabPlacement, tabIndex, x, y, w, h, isSelected); ++ paintTabBorder(g, tabPlacement, tabIndex, x, y, w, h, isSelected); ++ ++ // FIXME: Paint little folding corner and jagged edge clipped tab. ++ if (icon != null) ++ paintIcon(g, tabPlacement, tabIndex, icon, iconRect, isSelected); ++ if (title != null && ! title.equals("")) ++ paintText(g, tabPlacement, tabPane.getFont(), fm, tabIndex, title, ++ textRect, isSelected); ++ } ++ ++ /** ++ * This method lays out the tab and finds the location to paint the icon ++ * and text. ++ * ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param metrics The font metrics for the font to paint with. ++ * @param tabIndex The tab index to paint. ++ * @param title The string painted. ++ * @param icon The icon painted. ++ * @param tabRect The tab bounds. ++ * @param iconRect The calculated icon bounds. ++ * @param textRect The calculated text bounds. ++ * @param isSelected Whether this tab is selected. ++ */ ++ protected void layoutLabel(int tabPlacement, FontMetrics metrics, ++ int tabIndex, String title, Icon icon, ++ Rectangle tabRect, Rectangle iconRect, ++ Rectangle textRect, boolean isSelected) ++ { ++ SwingUtilities.layoutCompoundLabel(metrics, title, icon, ++ SwingConstants.CENTER, ++ SwingConstants.CENTER, ++ SwingConstants.CENTER, ++ SwingConstants.CENTER, tabRect, ++ iconRect, textRect, textIconGap); ++ ++ int shiftX = getTabLabelShiftX(tabPlacement, tabIndex, isSelected); ++ int shiftY = getTabLabelShiftY(tabPlacement, tabIndex, isSelected); ++ ++ iconRect.x += shiftX; ++ iconRect.y += shiftY; ++ ++ textRect.x += shiftX; ++ textRect.y += shiftY; ++ } ++ ++ /** ++ * This method paints the icon. ++ * ++ * @param g The Graphics object to paint. ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param tabIndex The tab index to paint. ++ * @param icon The icon to paint. ++ * @param iconRect The bounds of the icon. ++ * @param isSelected Whether this tab is selected. ++ */ ++ protected void paintIcon(Graphics g, int tabPlacement, int tabIndex, ++ Icon icon, Rectangle iconRect, boolean isSelected) ++ { ++ icon.paintIcon(tabPane, g, iconRect.x, iconRect.y); ++ } ++ ++ /** ++ * This method paints the text for the given tab. ++ * ++ * @param g The Graphics object to paint with. ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param font The font to paint with. ++ * @param metrics The fontmetrics of the given font. ++ * @param tabIndex The tab index. ++ * @param title The string to paint. ++ * @param textRect The bounds of the string. ++ * @param isSelected Whether this tab is selected. ++ */ ++ protected void paintText(Graphics g, int tabPlacement, Font font, ++ FontMetrics metrics, int tabIndex, String title, ++ Rectangle textRect, boolean isSelected) ++ { ++ View textView = getTextViewForTab(tabIndex); ++ if (textView != null) ++ { ++ textView.paint(g, textRect); ++ return; ++ } ++ ++ Color fg = tabPane.getForegroundAt(tabIndex); ++ if (fg == null) ++ fg = tabPane.getForeground(); ++ Color bg = tabPane.getBackgroundAt(tabIndex); ++ if (bg == null) ++ bg = tabPane.getBackground(); ++ ++ Color saved_color = g.getColor(); ++ Font f = g.getFont(); ++ g.setFont(font); ++ ++ if (tabPane.isEnabledAt(tabIndex)) ++ { ++ g.setColor(fg); ++ ++ int mnemIndex = tabPane.getDisplayedMnemonicIndexAt(tabIndex); ++ ++ if (mnemIndex != -1) ++ BasicGraphicsUtils.drawStringUnderlineCharAt(g, title, mnemIndex, ++ textRect.x, ++ textRect.y ++ + metrics.getAscent()); ++ else ++ g.drawString(title, textRect.x, textRect.y + metrics.getAscent()); ++ } ++ else ++ { ++ g.setColor(bg.brighter()); ++ ++ int mnemIndex = tabPane.getDisplayedMnemonicIndexAt(tabIndex); ++ ++ if (mnemIndex != -1) ++ BasicGraphicsUtils.drawStringUnderlineCharAt(g, title, mnemIndex, ++ textRect.x, textRect.y); ++ else ++ g.drawString(title, textRect.x, textRect.y); ++ ++ g.setColor(bg.darker()); ++ if (mnemIndex != -1) ++ BasicGraphicsUtils.drawStringUnderlineCharAt(g, title, mnemIndex, ++ textRect.x + 1, ++ textRect.y + 1); ++ else ++ g.drawString(title, textRect.x + 1, textRect.y + 1); ++ } ++ ++ g.setColor(saved_color); ++ g.setFont(f); ++ } ++ ++ /** ++ * This method returns how much the label for the tab should shift in the X ++ * direction. ++ * ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param tabIndex The tab index being painted. ++ * @param isSelected Whether this tab is selected. ++ * ++ * @return The amount the label should shift by in the X direction. ++ */ ++ protected int getTabLabelShiftX(int tabPlacement, int tabIndex, ++ boolean isSelected) ++ { ++ // No reason to shift. ++ return 0; ++ } ++ ++ /** ++ * This method returns how much the label for the tab should shift in the Y ++ * direction. ++ * ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param tabIndex The tab index being painted. ++ * @param isSelected Whether this tab is selected. ++ * ++ * @return The amount the label should shift by in the Y direction. ++ */ ++ protected int getTabLabelShiftY(int tabPlacement, int tabIndex, ++ boolean isSelected) ++ { ++ // No reason to shift. ++ return 0; ++ } ++ ++ /** ++ * This method paints the focus rectangle around the selected tab. ++ * ++ * @param g The Graphics object to paint with. ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param rects The array of rectangles keeping track of size and position. ++ * @param tabIndex The tab index. ++ * @param iconRect The icon bounds. ++ * @param textRect The text bounds. ++ * @param isSelected Whether this tab is selected. ++ */ ++ protected void paintFocusIndicator(Graphics g, int tabPlacement, ++ Rectangle[] rects, int tabIndex, ++ Rectangle iconRect, Rectangle textRect, ++ boolean isSelected) ++ { ++ Color saved = g.getColor(); ++ calcRect = iconRect.union(textRect); ++ ++ g.setColor(focus); ++ ++ g.drawRect(calcRect.x, calcRect.y, calcRect.width, calcRect.height); ++ ++ g.setColor(saved); ++ } ++ ++ /** ++ * This method paints the border for an individual tab. ++ * ++ * @param g The Graphics object to paint with. ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param tabIndex The tab index. ++ * @param x The x position of the tab. ++ * @param y The y position of the tab. ++ * @param w The width of the tab. ++ * @param h The height of the tab. ++ * @param isSelected Whether the tab is selected. ++ */ ++ protected void paintTabBorder(Graphics g, int tabPlacement, int tabIndex, ++ int x, int y, int w, int h, boolean isSelected) ++ { ++ Color saved = g.getColor(); ++ ++ if (! isSelected || tabPlacement != SwingConstants.TOP) ++ { ++ g.setColor(shadow); ++ g.drawLine(x + 1, y + h - 1, x + w - 1, y + h - 1); ++ g.setColor(darkShadow); ++ g.drawLine(x, y + h, x + w, y + h); ++ } ++ ++ if (! isSelected || tabPlacement != SwingConstants.LEFT) ++ { ++ g.setColor(darkShadow); ++ g.drawLine(x + w, y, x + w, y + h); ++ g.setColor(shadow); ++ g.drawLine(x + w - 1, y + 1, x + w - 1, y + h - 1); ++ } ++ ++ if (! isSelected || tabPlacement != SwingConstants.RIGHT) ++ { ++ g.setColor(lightHighlight); ++ g.drawLine(x, y, x, y + h); ++ } ++ ++ if (! isSelected || tabPlacement != SwingConstants.BOTTOM) ++ { ++ g.setColor(lightHighlight); ++ g.drawLine(x, y, x + w, y); ++ } ++ ++ g.setColor(saved); ++ } ++ ++ /** ++ * This method paints the background for an individual tab. ++ * ++ * @param g The Graphics object to paint with. ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param tabIndex The tab index. ++ * @param x The x position of the tab. ++ * @param y The y position of the tab. ++ * @param w The width of the tab. ++ * @param h The height of the tab. ++ * @param isSelected Whether the tab is selected. ++ */ ++ protected void paintTabBackground(Graphics g, int tabPlacement, ++ int tabIndex, int x, int y, int w, int h, ++ boolean isSelected) ++ { ++ Color saved = g.getColor(); ++ if (isSelected) ++ g.setColor(Color.LIGHT_GRAY); ++ else ++ { ++ Color bg = tabPane.getBackgroundAt(tabIndex); ++ if (bg == null) ++ bg = tabPane.getBackground(); ++ g.setColor(bg); ++ } ++ ++ g.fillRect(x, y, w, h); ++ ++ g.setColor(saved); ++ } ++ ++ /** ++ * This method paints the border around the content area. ++ * ++ * @param g The Graphics object to paint with. ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param selectedIndex The index of the selected tab. ++ */ ++ protected void paintContentBorder(Graphics g, int tabPlacement, ++ int selectedIndex) ++ { ++ Insets insets = getContentBorderInsets(tabPlacement); ++ int x = contentRect.x; ++ int y = contentRect.y; ++ int w = contentRect.width; ++ int h = contentRect.height; ++ paintContentBorderTopEdge(g, tabPlacement, selectedIndex, x, y, w, h); ++ paintContentBorderLeftEdge(g, tabPlacement, selectedIndex, x, y, w, h); ++ paintContentBorderBottomEdge(g, tabPlacement, selectedIndex, x, y, w, h); ++ paintContentBorderRightEdge(g, tabPlacement, selectedIndex, x, y, w, h); ++ } ++ ++ /** ++ * This method paints the top edge of the content border. ++ * ++ * @param g The Graphics object to paint with. ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param selectedIndex The selected tab index. ++ * @param x The x coordinate for the content area. ++ * @param y The y coordinate for the content area. ++ * @param w The width of the content area. ++ * @param h The height of the content area. ++ */ ++ protected void paintContentBorderTopEdge(Graphics g, int tabPlacement, ++ int selectedIndex, int x, int y, ++ int w, int h) ++ { ++ Color saved = g.getColor(); ++ g.setColor(lightHighlight); ++ ++ int startgap = rects[selectedIndex].x; ++ int endgap = rects[selectedIndex].x + rects[selectedIndex].width; ++ ++ int diff = 0; ++ ++ if (tabPane.getTabLayoutPolicy() == JTabbedPane.SCROLL_TAB_LAYOUT) ++ { ++ Point p = findPointForIndex(currentScrollLocation); ++ diff = p.x; ++ } ++ ++ if (tabPlacement == SwingConstants.TOP) ++ { ++ g.drawLine(x, y, startgap - diff, y); ++ g.drawLine(endgap - diff, y, x + w, y); ++ } ++ else ++ g.drawLine(x, y, x + w, y); ++ ++ g.setColor(saved); ++ } ++ ++ /** ++ * This method paints the left edge of the content border. ++ * ++ * @param g The Graphics object to paint with. ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param selectedIndex The selected tab index. ++ * @param x The x coordinate for the content area. ++ * @param y The y coordinate for the content area. ++ * @param w The width of the content area. ++ * @param h The height of the content area. ++ */ ++ protected void paintContentBorderLeftEdge(Graphics g, int tabPlacement, ++ int selectedIndex, int x, int y, ++ int w, int h) ++ { ++ Color saved = g.getColor(); ++ g.setColor(lightHighlight); ++ ++ int startgap = rects[selectedIndex].y; ++ int endgap = rects[selectedIndex].y + rects[selectedIndex].height; ++ ++ int diff = 0; ++ ++ if (tabPane.getTabLayoutPolicy() == JTabbedPane.SCROLL_TAB_LAYOUT) ++ { ++ Point p = findPointForIndex(currentScrollLocation); ++ diff = p.y; ++ } ++ ++ if (tabPlacement == SwingConstants.LEFT) ++ { ++ g.drawLine(x, y, x, startgap - diff); ++ g.drawLine(x, endgap - diff, x, y + h); ++ } ++ else ++ g.drawLine(x, y, x, y + h); ++ ++ g.setColor(saved); ++ } ++ ++ /** ++ * This method paints the bottom edge of the content border. ++ * ++ * @param g The Graphics object to paint with. ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param selectedIndex The selected tab index. ++ * @param x The x coordinate for the content area. ++ * @param y The y coordinate for the content area. ++ * @param w The width of the content area. ++ * @param h The height of the content area. ++ */ ++ protected void paintContentBorderBottomEdge(Graphics g, int tabPlacement, ++ int selectedIndex, int x, int y, ++ int w, int h) ++ { ++ Color saved = g.getColor(); ++ ++ int startgap = rects[selectedIndex].x; ++ int endgap = rects[selectedIndex].x + rects[selectedIndex].width; ++ ++ int diff = 0; ++ ++ if (tabPane.getTabLayoutPolicy() == JTabbedPane.SCROLL_TAB_LAYOUT) ++ { ++ Point p = findPointForIndex(currentScrollLocation); ++ diff = p.x; ++ } ++ ++ if (tabPlacement == SwingConstants.BOTTOM) ++ { ++ g.setColor(shadow); ++ g.drawLine(x + 1, y + h - 1, startgap - diff, y + h - 1); ++ g.drawLine(endgap - diff, y + h - 1, x + w - 1, y + h - 1); ++ ++ g.setColor(darkShadow); ++ g.drawLine(x, y + h, startgap - diff, y + h); ++ g.drawLine(endgap - diff, y + h, x + w, y + h); ++ } ++ else ++ { ++ g.setColor(shadow); ++ g.drawLine(x + 1, y + h - 1, x + w - 1, y + h - 1); ++ g.setColor(darkShadow); ++ g.drawLine(x, y + h, x + w, y + h); ++ } ++ ++ g.setColor(saved); ++ } ++ ++ /** ++ * This method paints the right edge of the content border. ++ * ++ * @param g The Graphics object to paint with. ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param selectedIndex The selected tab index. ++ * @param x The x coordinate for the content area. ++ * @param y The y coordinate for the content area. ++ * @param w The width of the content area. ++ * @param h The height of the content area. ++ */ ++ protected void paintContentBorderRightEdge(Graphics g, int tabPlacement, ++ int selectedIndex, int x, int y, ++ int w, int h) ++ { ++ Color saved = g.getColor(); ++ int startgap = rects[selectedIndex].y; ++ int endgap = rects[selectedIndex].y + rects[selectedIndex].height; ++ ++ int diff = 0; ++ if (tabPane.getTabLayoutPolicy() == JTabbedPane.SCROLL_TAB_LAYOUT) ++ { ++ Point p = findPointForIndex(currentScrollLocation); ++ diff = p.y; ++ } ++ ++ if (tabPlacement == SwingConstants.RIGHT) ++ { ++ g.setColor(shadow); ++ g.drawLine(x + w - 1, y + 1, x + w - 1, startgap - diff); ++ g.drawLine(x + w - 1, endgap - diff, x + w - 1, y + h - 1); ++ ++ g.setColor(darkShadow); ++ g.drawLine(x + w, y, x + w, startgap - diff); ++ g.drawLine(x + w, endgap - diff, x + w, y + h); ++ } ++ else ++ { ++ g.setColor(shadow); ++ g.drawLine(x + w - 1, y + 1, x + w - 1, y + h - 1); ++ g.setColor(darkShadow); ++ g.drawLine(x + w, y, x + w, y + h); ++ } ++ ++ g.setColor(saved); ++ } ++ ++ /** ++ * This method returns the tab bounds for the given index. ++ * ++ * @param pane The JTabbedPane. ++ * @param i The index to look for. ++ * ++ * @return The bounds of the tab with the given index. ++ */ ++ public Rectangle getTabBounds(JTabbedPane pane, int i) ++ { ++ return rects[i]; ++ } ++ ++ /** ++ * This method returns the number of runs. ++ * ++ * @param pane The JTabbedPane. ++ * ++ * @return The number of runs. ++ */ ++ public int getTabRunCount(JTabbedPane pane) ++ { ++ return runCount; ++ } ++ ++ /** ++ * This method returns the tab index given a coordinate. ++ * ++ * @param pane The JTabbedPane. ++ * @param x The x coordinate. ++ * @param y The y coordinate. ++ * ++ * @return The tab index that the coordinate lands in. ++ */ ++ public int tabForCoordinate(JTabbedPane pane, int x, int y) ++ { ++ Point p = new Point(x, y); ++ int tabCount = tabPane.getTabCount(); ++ int currRun = 1; ++ for (int i = 0; i < runCount; i++) ++ { ++ int first = lastTabInRun(tabCount, getPreviousTabRun(currRun)) + 1; ++ if (first == tabCount) ++ first = 0; ++ int last = lastTabInRun(tabCount, currRun); ++ for (int j = first; j <= last; j++) ++ { ++ if (getTabBounds(pane, j).contains(p)) ++ return j; ++ } ++ currRun = getNextTabRun(currRun); ++ } ++ return -1; ++ } ++ ++ /** ++ * This method returns the tab bounds in the given rectangle. ++ * ++ * @param tabIndex The index to get bounds for. ++ * @param dest The rectangle to store bounds in. ++ * ++ * @return The rectangle passed in. ++ */ ++ protected Rectangle getTabBounds(int tabIndex, Rectangle dest) ++ { ++ dest.setBounds(getTabBounds(tabPane, tabIndex)); ++ return dest; ++ } ++ ++ /** ++ * This method returns the component that is shown in the content area. ++ * ++ * @return The component that is shown in the content area. ++ */ ++ protected Component getVisibleComponent() ++ { ++ return tabPane.getComponentAt(tabPane.getSelectedIndex()); ++ } ++ ++ /** ++ * This method sets the visible component. ++ * ++ * @param component The component to be set visible. ++ */ ++ protected void setVisibleComponent(Component component) ++ { ++ component.setVisible(true); ++ tabPane.setSelectedComponent(component); ++ } ++ ++ /** ++ * This method assures that enough rectangles are created given the ++ * tabCount. The old array is copied to the new one. ++ * ++ * @param tabCount The number of tabs. ++ */ ++ protected void assureRectsCreated(int tabCount) ++ { ++ if (rects == null) ++ rects = new Rectangle[tabCount]; ++ if (tabCount == rects.length) ++ return; ++ else ++ { ++ int numToCopy = Math.min(tabCount, rects.length); ++ Rectangle[] tmp = new Rectangle[tabCount]; ++ System.arraycopy(rects, 0, tmp, 0, numToCopy); ++ rects = tmp; ++ } ++ } ++ ++ /** ++ * This method expands the tabRuns array to give it more room. The old array ++ * is copied to the new one. ++ */ ++ protected void expandTabRunsArray() ++ { ++ // This method adds another 10 index positions to the tabRuns array. ++ if (tabRuns == null) ++ tabRuns = new int[10]; ++ else ++ { ++ int[] newRuns = new int[tabRuns.length + 10]; ++ System.arraycopy(tabRuns, 0, newRuns, 0, tabRuns.length); ++ tabRuns = newRuns; ++ } ++ } ++ ++ /** ++ * This method returns which run a particular tab belongs to. ++ * ++ * @param tabCount The number of tabs. ++ * @param tabIndex The tab to find. ++ * ++ * @return The tabRuns index that it belongs to. ++ */ ++ protected int getRunForTab(int tabCount, int tabIndex) ++ { ++ if (runCount == 1 && tabIndex < tabCount && tabIndex >= 0) ++ return 1; ++ for (int i = 0; i < runCount; i++) ++ { ++ int first = lastTabInRun(tabCount, getPreviousTabRun(i)) + 1; ++ if (first == tabCount) ++ first = 0; ++ int last = lastTabInRun(tabCount, i); ++ if (last >= tabIndex && first <= tabIndex) ++ return i; ++ } ++ return -1; ++ } ++ ++ /** ++ * This method returns the index of the last tab in a run. ++ * ++ * @param tabCount The number of tabs. ++ * @param run The run to check. ++ * ++ * @return The last tab in the given run. ++ */ ++ protected int lastTabInRun(int tabCount, int run) ++ { ++ if (tabRuns[run] == 0) ++ return tabCount - 1; ++ else ++ return tabRuns[run] - 1; ++ } ++ ++ /** ++ * This method returns the tab run overlay. ++ * ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * ++ * @return The tab run overlay. ++ */ ++ protected int getTabRunOverlay(int tabPlacement) ++ { ++ return tabRunOverlay; ++ } ++ ++ /** ++ * This method returns the tab run indent. It is used in WRAP_TAB_LAYOUT and ++ * makes each tab run start indented by a certain amount. ++ * ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param run The run to get indent for. ++ * ++ * @return The amount a run should be indented. ++ */ ++ protected int getTabRunIndent(int tabPlacement, int run) ++ { ++ return 0; ++ } ++ ++ /** ++ * This method returns whether a tab run should be padded. ++ * ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param run The run to check. ++ * ++ * @return Whether the given run should be padded. ++ */ ++ protected boolean shouldPadTabRun(int tabPlacement, int run) ++ { ++ return true; ++ } ++ ++ /** ++ * This method returns whether the tab runs should be rotated. ++ * ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * ++ * @return Whether runs should be rotated. ++ */ ++ protected boolean shouldRotateTabRuns(int tabPlacement) ++ { ++ return true; ++ } ++ ++ /** ++ * This method returns an icon for the tab. If the tab is disabled, it ++ * should return the disabledIcon. If it is enabled, then it should return ++ * the default icon. ++ * ++ * @param tabIndex The tab index to get an icon for. ++ * ++ * @return The icon for the tab index. ++ */ ++ protected Icon getIconForTab(int tabIndex) ++ { ++ if (tabPane.isEnabledAt(tabIndex)) ++ return tabPane.getIconAt(tabIndex); ++ else ++ return tabPane.getDisabledIconAt(tabIndex); ++ } ++ ++ /** ++ * This method returns a view that can paint the text for the label. ++ * ++ * @param tabIndex The tab index to get a view for. ++ * ++ * @return The view for the tab index. ++ */ ++ protected View getTextViewForTab(int tabIndex) ++ { ++ return null; ++ } ++ ++ /** ++ * This method returns the tab height, including insets, for the given index ++ * and fontheight. ++ * ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param tabIndex The index of the tab to calculate. ++ * @param fontHeight The font height. ++ * ++ * @return This tab's height. ++ */ ++ protected int calculateTabHeight(int tabPlacement, int tabIndex, ++ int fontHeight) ++ { ++ Icon icon = getIconForTab(tabIndex); ++ Insets insets = getTabInsets(tabPlacement, tabIndex); ++ ++ if (icon != null) ++ { ++ Rectangle vr = new Rectangle(); ++ Rectangle ir = new Rectangle(); ++ Rectangle tr = new Rectangle(); ++ layoutLabel(tabPlacement, getFontMetrics(), tabIndex, ++ tabPane.getTitleAt(tabIndex), icon, vr, ir, tr, ++ tabIndex == tabPane.getSelectedIndex()); ++ calcRect = tr.union(ir); ++ } ++ else ++ calcRect.height = fontHeight; ++ ++ calcRect.height += insets.top + insets.bottom; ++ return calcRect.height; ++ } ++ ++ /** ++ * This method returns the max tab height. ++ * ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * ++ * @return The maximum tab height. ++ */ ++ protected int calculateMaxTabHeight(int tabPlacement) ++ { ++ maxTabHeight = 0; ++ ++ FontMetrics fm = getFontMetrics(); ++ int fontHeight = fm.getHeight(); ++ ++ for (int i = 0; i < tabPane.getTabCount(); i++) ++ maxTabHeight = Math.max(calculateTabHeight(tabPlacement, i, fontHeight), ++ maxTabHeight); ++ ++ return maxTabHeight; ++ } ++ ++ /** ++ * This method calculates the tab width, including insets, for the given tab ++ * index and font metrics. ++ * ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param tabIndex The tab index to calculate for. ++ * @param metrics The font's metrics. ++ * ++ * @return The tab width for the given index. ++ */ ++ protected int calculateTabWidth(int tabPlacement, int tabIndex, ++ FontMetrics metrics) ++ { ++ Icon icon = getIconForTab(tabIndex); ++ Insets insets = getTabInsets(tabPlacement, tabIndex); ++ ++ if (icon != null) ++ { ++ Rectangle vr = new Rectangle(); ++ Rectangle ir = new Rectangle(); ++ Rectangle tr = new Rectangle(); ++ layoutLabel(tabPlacement, getFontMetrics(), tabIndex, ++ tabPane.getTitleAt(tabIndex), icon, vr, ir, tr, ++ tabIndex == tabPane.getSelectedIndex()); ++ calcRect = tr.union(ir); ++ } ++ else ++ calcRect.width = metrics.stringWidth(tabPane.getTitleAt(tabIndex)); ++ ++ calcRect.width += insets.left + insets.right; ++ return calcRect.width; ++ } ++ ++ /** ++ * This method calculates the max tab width. ++ * ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * ++ * @return The maximum tab width. ++ */ ++ protected int calculateMaxTabWidth(int tabPlacement) ++ { ++ maxTabWidth = 0; ++ ++ FontMetrics fm = getFontMetrics(); ++ ++ for (int i = 0; i < tabPane.getTabCount(); i++) ++ maxTabWidth = Math.max(calculateTabWidth(tabPlacement, i, fm), ++ maxTabWidth); ++ ++ return maxTabWidth; ++ } ++ ++ /** ++ * This method calculates the tab area height, including insets, for the ++ * given amount of runs and tab height. ++ * ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param horizRunCount The number of runs. ++ * @param maxTabHeight The max tab height. ++ * ++ * @return The tab area height. ++ */ ++ protected int calculateTabAreaHeight(int tabPlacement, int horizRunCount, ++ int maxTabHeight) ++ { ++ Insets insets = getTabAreaInsets(tabPlacement); ++ int tabAreaHeight = horizRunCount * maxTabHeight ++ - (horizRunCount - 1) * tabRunOverlay; ++ ++ tabAreaHeight += insets.top + insets.bottom; ++ ++ return tabAreaHeight; ++ } ++ ++ /** ++ * This method calculates the tab area width, including insets, for the ++ * given amount of runs and tab width. ++ * ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param vertRunCount The number of runs. ++ * @param maxTabWidth The max tab width. ++ * ++ * @return The tab area width. ++ */ ++ protected int calculateTabAreaWidth(int tabPlacement, int vertRunCount, ++ int maxTabWidth) ++ { ++ Insets insets = getTabAreaInsets(tabPlacement); ++ int tabAreaWidth = vertRunCount * maxTabWidth ++ - (vertRunCount - 1) * tabRunOverlay; ++ ++ tabAreaWidth += insets.left + insets.right; ++ ++ return tabAreaWidth; ++ } ++ ++ /** ++ * This method returns the tab insets appropriately rotated. ++ * ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param tabIndex The tab index. ++ * ++ * @return The tab insets for the given index. ++ */ ++ protected Insets getTabInsets(int tabPlacement, int tabIndex) ++ { ++ Insets target = new Insets(0, 0, 0, 0); ++ rotateInsets(tabInsets, target, tabPlacement); ++ return target; ++ } ++ ++ /** ++ * This method returns the selected tab pad insets appropriately rotated. ++ * ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * ++ * @return The selected tab pad insets. ++ */ ++ protected Insets getSelectedTabPadInsets(int tabPlacement) ++ { ++ Insets target = new Insets(0, 0, 0, 0); ++ rotateInsets(selectedTabPadInsets, target, tabPlacement); ++ return target; ++ } ++ ++ /** ++ * This method returns the tab area insets appropriately rotated. ++ * ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * ++ * @return The tab area insets. ++ */ ++ protected Insets getTabAreaInsets(int tabPlacement) ++ { ++ Insets target = new Insets(0, 0, 0, 0); ++ rotateInsets(tabAreaInsets, target, tabPlacement); ++ return target; ++ } ++ ++ /** ++ * This method returns the content border insets appropriately rotated. ++ * ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * ++ * @return The content border insets. ++ */ ++ protected Insets getContentBorderInsets(int tabPlacement) ++ { ++ Insets target = new Insets(0, 0, 0, 0); ++ rotateInsets(contentBorderInsets, target, tabPlacement); ++ return target; ++ } ++ ++ /** ++ * This method returns the fontmetrics for the font of the JTabbedPane. ++ * ++ * @return The font metrics for the JTabbedPane. ++ */ ++ protected FontMetrics getFontMetrics() ++ { ++ FontMetrics fm = tabPane.getToolkit().getFontMetrics(tabPane.getFont()); ++ return fm; ++ } ++ ++ /** ++ * This method navigates from the selected tab into the given direction. As ++ * a result, a new tab will be selected (if possible). ++ * ++ * @param direction The direction to navigate in. ++ */ ++ protected void navigateSelectedTab(int direction) ++ { ++ int tabPlacement = tabPane.getTabPlacement(); ++ if (tabPlacement == SwingConstants.TOP ++ || tabPlacement == SwingConstants.BOTTOM) ++ { ++ if (direction == SwingConstants.WEST) ++ selectPreviousTabInRun(tabPane.getSelectedIndex()); ++ else if (direction == SwingConstants.EAST) ++ selectNextTabInRun(tabPane.getSelectedIndex()); ++ ++ else ++ { ++ int offset = getTabRunOffset(tabPlacement, tabPane.getTabCount(), ++ tabPane.getSelectedIndex(), ++ (tabPlacement == SwingConstants.RIGHT) ++ ? true : false); ++ selectAdjacentRunTab(tabPlacement, tabPane.getSelectedIndex(), ++ offset); ++ } ++ } ++ if (tabPlacement == SwingConstants.LEFT ++ || tabPlacement == SwingConstants.RIGHT) ++ { ++ if (direction == SwingConstants.NORTH) ++ selectPreviousTabInRun(tabPane.getSelectedIndex()); ++ else if (direction == SwingConstants.SOUTH) ++ selectNextTabInRun(tabPane.getSelectedIndex()); ++ else ++ { ++ int offset = getTabRunOffset(tabPlacement, tabPane.getTabCount(), ++ tabPane.getSelectedIndex(), ++ (tabPlacement == SwingConstants.RIGHT) ++ ? true : false); ++ selectAdjacentRunTab(tabPlacement, tabPane.getSelectedIndex(), ++ offset); ++ } ++ } ++ } ++ ++ /** ++ * This method selects the next tab in the run. ++ * ++ * @param current The current selected index. ++ */ ++ protected void selectNextTabInRun(int current) ++ { ++ tabPane.setSelectedIndex(getNextTabIndexInRun(tabPane.getTabCount(), ++ current)); ++ } ++ ++ /** ++ * This method selects the previous tab in the run. ++ * ++ * @param current The current selected index. ++ */ ++ protected void selectPreviousTabInRun(int current) ++ { ++ tabPane.setSelectedIndex(getPreviousTabIndexInRun(tabPane.getTabCount(), ++ current)); ++ } ++ ++ /** ++ * This method selects the next tab (regardless of runs). ++ * ++ * @param current The current selected index. ++ */ ++ protected void selectNextTab(int current) ++ { ++ tabPane.setSelectedIndex(getNextTabIndex(current)); ++ } ++ ++ /** ++ * This method selects the previous tab (regardless of runs). ++ * ++ * @param current The current selected index. ++ */ ++ protected void selectPreviousTab(int current) ++ { ++ tabPane.setSelectedIndex(getPreviousTabIndex(current)); ++ } ++ ++ /** ++ * This method selects the correct tab given an offset from the current tab ++ * index. If the tab placement is TOP or BOTTOM, the offset will be in the ++ * y direction, otherwise, it will be in the x direction. A new coordinate ++ * will be found by adding the offset to the current location of the tab. ++ * The tab that the new location will be selected. ++ * ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param tabIndex The tab to start from. ++ * @param offset The coordinate offset. ++ */ ++ protected void selectAdjacentRunTab(int tabPlacement, int tabIndex, ++ int offset) ++ { ++ int x = rects[tabIndex].x + rects[tabIndex].width / 2; ++ int y = rects[tabIndex].y + rects[tabIndex].height / 2; ++ ++ switch (tabPlacement) ++ { ++ case SwingConstants.TOP: ++ case SwingConstants.BOTTOM: ++ y += offset; ++ break; ++ case SwingConstants.RIGHT: ++ case SwingConstants.LEFT: ++ x += offset; ++ break; ++ } ++ ++ int index = tabForCoordinate(tabPane, x, y); ++ if (index != -1) ++ tabPane.setSelectedIndex(index); ++ } ++ ++ // This method is called when you press up/down to cycle through tab runs. ++ // it returns the distance (between the two runs' x/y position. ++ // where one run is the current selected run and the other run is the run in the ++ // direction of the scroll (dictated by the forward flag) ++ // the offset is an absolute value of the difference ++ ++ /** ++ * This method calculates the offset distance for use in ++ * selectAdjacentRunTab. The offset returned will be a difference in the y ++ * coordinate between the run in the desired direction and the current run ++ * (for tabPlacement in TOP or BOTTOM). Use x coordinate for LEFT and ++ * RIGHT. ++ * ++ * @param tabPlacement The JTabbedPane's tab placement. ++ * @param tabCount The number of tabs. ++ * @param tabIndex The starting index. ++ * @param forward If forward, the run in the desired direction will be the ++ * next run. ++ * ++ * @return The offset between the two runs. ++ */ ++ protected int getTabRunOffset(int tabPlacement, int tabCount, int tabIndex, ++ boolean forward) ++ { ++ int currRun = getRunForTab(tabCount, tabIndex); ++ int offset; ++ int nextRun = (forward) ? getNextTabRun(currRun) : getPreviousTabRun(currRun); ++ if (tabPlacement == SwingConstants.TOP ++ || tabPlacement == SwingConstants.BOTTOM) ++ offset = rects[lastTabInRun(tabCount, nextRun)].y ++ - rects[lastTabInRun(tabCount, currRun)].y; ++ else ++ offset = rects[lastTabInRun(tabCount, nextRun)].x ++ - rects[lastTabInRun(tabCount, currRun)].x; ++ return offset; ++ } ++ ++ /** ++ * This method returns the previous tab index. ++ * ++ * @param base The index to start from. ++ * ++ * @return The previous tab index. ++ */ ++ protected int getPreviousTabIndex(int base) ++ { ++ base--; ++ if (base < 0) ++ return tabPane.getTabCount() - 1; ++ return base; ++ } ++ ++ /** ++ * This method returns the next tab index. ++ * ++ * @param base The index to start from. ++ * ++ * @return The next tab index. ++ */ ++ protected int getNextTabIndex(int base) ++ { ++ base++; ++ if (base == tabPane.getTabCount()) ++ return 0; ++ return base; ++ } ++ ++ /** ++ * This method returns the next tab index in the run. If the next index is ++ * out of this run, it will return the starting tab index for the run. ++ * ++ * @param tabCount The number of tabs. ++ * @param base The index to start from. ++ * ++ * @return The next tab index in the run. ++ */ ++ protected int getNextTabIndexInRun(int tabCount, int base) ++ { ++ int index = getNextTabIndex(base); ++ int run = getRunForTab(tabCount, base); ++ if (index == lastTabInRun(tabCount, run) + 1) ++ index = lastTabInRun(tabCount, getPreviousTabRun(run)) + 1; ++ return getNextTabIndex(base); ++ } ++ ++ /** ++ * This method returns the previous tab index in the run. If the previous ++ * index is out of this run, it will return the last index for the run. ++ * ++ * @param tabCount The number of tabs. ++ * @param base The index to start from. ++ * ++ * @return The previous tab index in the run. ++ */ ++ protected int getPreviousTabIndexInRun(int tabCount, int base) ++ { ++ int index = getPreviousTabIndex(base); ++ int run = getRunForTab(tabCount, base); ++ if (index == lastTabInRun(tabCount, getPreviousTabRun(run))) ++ index = lastTabInRun(tabCount, run); ++ return getPreviousTabIndex(base); ++ } ++ ++ /** ++ * This method returns the index of the previous run. ++ * ++ * @param baseRun The run to start from. ++ * ++ * @return The index of the previous run. ++ */ ++ protected int getPreviousTabRun(int baseRun) ++ { ++ if (getTabRunCount(tabPane) == 1) ++ return 1; ++ ++ int prevRun = --baseRun; ++ if (prevRun < 0) ++ prevRun = getTabRunCount(tabPane) - 1; ++ return prevRun; ++ } ++ ++ /** ++ * This method returns the index of the next run. ++ * ++ * @param baseRun The run to start from. ++ * ++ * @return The index of the next run. ++ */ ++ protected int getNextTabRun(int baseRun) ++ { ++ if (getTabRunCount(tabPane) == 1) ++ return 1; ++ ++ int nextRun = ++baseRun; ++ if (nextRun == getTabRunCount(tabPane)) ++ nextRun = 0; ++ return nextRun; ++ } ++ ++ /** ++ * This method rotates the insets given a direction to rotate them in. ++ * Target placement should be one of TOP, LEFT, BOTTOM, RIGHT. The rotated ++ * insets will be stored in targetInsets. Passing in TOP as the direction ++ * does nothing. Passing in LEFT switches top and left, right and bottom. ++ * Passing in BOTTOM switches top and bottom. Passing in RIGHT switches top ++ * for left, left for bottom, bottom for right, and right for top. ++ * ++ * @param topInsets The reference insets. ++ * @param targetInsets An Insets object to store the new insets. ++ * @param targetPlacement The rotation direction. ++ */ ++ protected static void rotateInsets(Insets topInsets, Insets targetInsets, ++ int targetPlacement) ++ { ++ // Sun's version will happily throw an NPE if params are null, ++ // so I won't check it either. ++ switch (targetPlacement) ++ { ++ case SwingConstants.TOP: ++ targetInsets.top = topInsets.top; ++ targetInsets.left = topInsets.left; ++ targetInsets.right = topInsets.right; ++ targetInsets.bottom = topInsets.bottom; ++ break; ++ case SwingConstants.LEFT: ++ targetInsets.left = topInsets.top; ++ targetInsets.top = topInsets.left; ++ targetInsets.right = topInsets.bottom; ++ targetInsets.bottom = topInsets.right; ++ break; ++ case SwingConstants.BOTTOM: ++ targetInsets.top = topInsets.bottom; ++ targetInsets.bottom = topInsets.top; ++ targetInsets.left = topInsets.left; ++ targetInsets.right = topInsets.right; ++ break; ++ case SwingConstants.RIGHT: ++ targetInsets.top = topInsets.left; ++ targetInsets.left = topInsets.bottom; ++ targetInsets.bottom = topInsets.right; ++ targetInsets.right = topInsets.top; ++ break; ++ } ++ } + } +- +Index: javax/swing/plaf/basic/BasicTableHeaderUI.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicTableHeaderUI.java +diff -N javax/swing/plaf/basic/BasicTableHeaderUI.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicTableHeaderUI.java 6 Sep 2004 16:36:08 -0000 +@@ -0,0 +1,301 @@ ++/* BasicTableHeaderUI.java ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.plaf.basic; ++ ++import java.awt.Component; ++import java.awt.Dimension; ++import java.awt.Graphics; ++import java.awt.Rectangle; ++import java.awt.event.MouseEvent; ++import javax.swing.CellRendererPane; ++import javax.swing.JComponent; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; ++import javax.swing.border.Border; ++import javax.swing.event.MouseInputListener; ++import javax.swing.plaf.ComponentUI; ++import javax.swing.plaf.TableHeaderUI; ++import javax.swing.table.JTableHeader; ++import javax.swing.table.TableCellRenderer; ++import javax.swing.table.TableColumn; ++import javax.swing.table.TableColumnModel; ++ ++ ++public class BasicTableHeaderUI ++ extends TableHeaderUI ++{ ++ ++ public static ComponentUI createUI(JComponent h) ++ { ++ return new BasicTableHeaderUI(); ++ } ++ ++ protected JTableHeader header; ++ protected MouseInputListener mouseInputListener; ++ protected CellRendererPane rendererPane; ++ protected Border cellBorder; ++ ++ class MouseInputHandler ++ implements MouseInputListener ++ { ++ public void mouseClicked(MouseEvent e) {} ++ public void mouseDragged(MouseEvent e) {} ++ public void mouseEntered(MouseEvent e) {} ++ public void mouseExited(MouseEvent e) {} ++ public void mouseMoved(MouseEvent e) {} ++ public void mousePressed(MouseEvent e) {} ++ public void mouseReleased(MouseEvent e) {} ++ } ++ ++ protected MouseInputListener createMouseInputListener() ++ { ++ return new MouseInputHandler(); ++ } ++ ++ public BasicTableHeaderUI() ++ { ++ mouseInputListener = createMouseInputListener(); ++ } ++ ++ protected void installDefaults() ++ { ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ header.setBackground(defaults.getColor("TableHeader.background")); ++ header.setForeground(defaults.getColor("TableHeader.foreground")); ++ header.setFont(defaults.getFont("TableHeader.font")); ++ cellBorder = defaults.getBorder("TableHeader.cellBorder"); ++ } ++ ++ protected void installKeyboardActions() ++ { ++ } ++ ++ protected void installListeners() ++ { ++ header.addMouseListener(mouseInputListener); ++ } ++ ++ public void installUI(JComponent c) ++ { ++ header = (JTableHeader) c; ++ installDefaults(); ++ installKeyboardActions(); ++ installListeners(); ++ } ++ ++ protected void uninstallDefaults() ++ { ++ header.setBackground(null); ++ header.setForeground(null); ++ header.setFont(null); ++ } ++ ++ protected void uninstallKeyboardActions() ++ { ++ } ++ ++ protected void uninstallListeners() ++ { ++ header.removeMouseListener(mouseInputListener); ++ } ++ ++ public void uninstallUI(JComponent c) ++ { ++ uninstallListeners(); ++ uninstallKeyboardActions(); ++ uninstallDefaults(); ++ } ++ ++ public void paint(Graphics gfx, JComponent c) ++ { ++ TableColumnModel cmod = header.getColumnModel(); ++ int ncols = cmod.getColumnCount(); ++ if (ncols == 0) ++ return; ++ ++ Rectangle clip = gfx.getClipBounds(); ++ TableCellRenderer defaultRend = header.getDefaultRenderer(); ++ ++ for (int i = 0; i < ncols; ++i) ++ { ++ Rectangle bounds = header.getHeaderRect(i); ++ if (bounds.intersects(clip)) ++ { ++ TableColumn col = cmod.getColumn(i); ++ TableCellRenderer rend = col.getHeaderRenderer(); ++ if (rend == null) ++ rend = defaultRend; ++ Object val = col.getHeaderValue(); ++ Component comp = rend.getTableCellRendererComponent(header.getTable(), ++ val, ++ false, // isSelected ++ false, // isFocused ++ -1, i); ++ comp.setFont(header.getFont()); ++ comp.setBackground(header.getBackground()); ++ comp.setForeground(header.getForeground()); ++ if (comp instanceof JComponent) ++ ((JComponent)comp).setBorder(cellBorder); ++ gfx.translate(bounds.x, bounds.y); ++ comp.setSize(bounds.width, bounds.height); ++ comp.setLocation(0,0); ++ comp.paint(gfx); ++ gfx.translate(-bounds.x, -bounds.y); ++ } ++ } ++ ++ } ++ ++ public Dimension getMaximumSize(JComponent c) ++ { ++ TableColumnModel cmod = header.getColumnModel(); ++ TableCellRenderer defaultRend = header.getDefaultRenderer(); ++ int ncols = cmod.getColumnCount(); ++ int spacing = 0; ++ Dimension ret = getPreferredSize(c); ++ ++ if (header.getTable() != null ++ && header.getTable().getInterCellSpacing() != null) ++ spacing = header.getTable().getInterCellSpacing().width; ++ ++ ret.width = 0; ++ for (int i = 0; i < ncols; ++i) ++ { ++ TableColumn col = cmod.getColumn(i); ++ TableCellRenderer rend = col.getHeaderRenderer(); ++ if (rend == null) ++ rend = defaultRend; ++ Object val = col.getHeaderValue(); ++ Component comp = rend.getTableCellRendererComponent(header.getTable(), ++ val, ++ false, // isSelected ++ false, // isFocused ++ -1, i); ++ comp.setFont(header.getFont()); ++ comp.setBackground(header.getBackground()); ++ comp.setForeground(header.getForeground()); ++ if (comp instanceof JComponent) ++ ((JComponent)comp).setBorder(cellBorder); ++ ++ Dimension d = comp.getMaximumSize(); ++ ret.width += col.getMaxWidth(); ++ ret.height = Math.max(ret.height, d.height); ++ ret.width += spacing; ++ } ++ return ret; ++ } ++ ++ public Dimension getMinimumSize(JComponent c) ++ { ++ TableColumnModel cmod = header.getColumnModel(); ++ TableCellRenderer defaultRend = header.getDefaultRenderer(); ++ int ncols = cmod.getColumnCount(); ++ int spacing = 0; ++ Dimension ret = getPreferredSize(c); ++ ++ if (header.getTable() != null ++ && header.getTable().getInterCellSpacing() != null) ++ spacing = header.getTable().getInterCellSpacing().width; ++ ++ ret.width = 0; ++ for (int i = 0; i < ncols; ++i) ++ { ++ TableColumn col = cmod.getColumn(i); ++ TableCellRenderer rend = col.getHeaderRenderer(); ++ if (rend == null) ++ rend = defaultRend; ++ Object val = col.getHeaderValue(); ++ Component comp = rend.getTableCellRendererComponent(header.getTable(), ++ val, ++ false, // isSelected ++ false, // isFocused ++ -1, i); ++ comp.setFont(header.getFont()); ++ comp.setBackground(header.getBackground()); ++ comp.setForeground(header.getForeground()); ++ if (comp instanceof JComponent) ++ ((JComponent)comp).setBorder(cellBorder); ++ ++ Dimension d = comp.getMinimumSize(); ++ ret.width += col.getMinWidth(); ++ ret.width += spacing; ++ ret.height = Math.max(ret.height, d.height); ++ } ++ return ret; ++ } ++ ++ public Dimension getPreferredSize(JComponent c) ++ { ++ TableColumnModel cmod = header.getColumnModel(); ++ TableCellRenderer defaultRend = header.getDefaultRenderer(); ++ int ncols = cmod.getColumnCount(); ++ Dimension ret = new Dimension(0,0); ++ int spacing = 0; ++ ++ if (header.getTable() != null ++ && header.getTable().getInterCellSpacing() != null) ++ spacing = header.getTable().getInterCellSpacing().width; ++ ++ for (int i = 0; i < ncols; ++i) ++ { ++ TableColumn col = cmod.getColumn(i); ++ TableCellRenderer rend = col.getHeaderRenderer(); ++ if (rend == null) ++ rend = defaultRend; ++ Object val = col.getHeaderValue(); ++ Component comp = rend.getTableCellRendererComponent(header.getTable(), ++ val, ++ false, // isSelected ++ false, // isFocused ++ -1, i); ++ comp.setFont(header.getFont()); ++ comp.setBackground(header.getBackground()); ++ comp.setForeground(header.getForeground()); ++ if (comp instanceof JComponent) ++ ((JComponent)comp).setBorder(cellBorder); ++ ++ Dimension d = comp.getPreferredSize(); ++ ret.width += d.width; ++ ret.width += spacing; ++ ret.height = Math.max(d.height, ret.height); ++ } ++ return ret; ++ } ++ ++ ++} +Index: javax/swing/plaf/basic/BasicTableUI.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicTableUI.java +diff -N javax/swing/plaf/basic/BasicTableUI.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicTableUI.java 6 Sep 2004 16:36:08 -0000 +@@ -0,0 +1,374 @@ ++/* BasicTableUI.java ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.plaf.basic; ++ ++import java.awt.Color; ++import java.awt.Component; ++import java.awt.Dimension; ++import java.awt.Graphics; ++import java.awt.Point; ++import java.awt.Rectangle; ++import java.awt.event.KeyEvent; ++import java.awt.event.KeyListener; ++import java.awt.event.FocusEvent; ++import java.awt.event.FocusListener; ++import java.awt.event.MouseEvent; ++import javax.swing.CellRendererPane; ++import javax.swing.JComponent; ++import javax.swing.JTable; ++import javax.swing.ListSelectionModel; ++import javax.swing.event.MouseInputListener; ++import javax.swing.plaf.ComponentUI; ++import javax.swing.plaf.TableUI; ++import javax.swing.table.TableCellRenderer; ++import javax.swing.table.TableColumn; ++import javax.swing.table.TableColumnModel; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; ++ ++ ++public class BasicTableUI ++ extends TableUI ++{ ++ ++ public static ComponentUI createUI(JComponent comp) ++ { ++ return new BasicTableUI(); ++ } ++ ++ protected FocusListener focusListener; ++ protected KeyListener keyListener; ++ protected MouseInputListener mouseInputListener; ++ protected CellRendererPane rendererPane; ++ protected JTable table; ++ ++ class FocusHandler implements FocusListener ++ { ++ public void focusGained(FocusEvent e) ++ { ++ } ++ public void focusLost(FocusEvent e) ++ { ++ } ++ } ++ ++ class KeyHandler implements KeyListener ++ { ++ public void keyPressed(KeyEvent e) ++ { ++ } ++ public void keyReleased(KeyEvent e) ++ { ++ } ++ public void keyTyped(KeyEvent e) ++ { ++ } ++ } ++ ++ class MouseInputHandler implements MouseInputListener ++ { ++ Point begin, curr; ++ ++ private int getRowForPoint(Point p) ++ { ++ int y0 = table.getLocation().y; ++ int nrows = table.getRowCount(); ++ Dimension gap = table.getInterCellSpacing(); ++ int height = table.getRowHeight() + (gap == null ? 0 : gap.height); ++ int y = p.y; ++ for (int i = 0; i < nrows; ++i) ++ { ++ if (0 <= y && y < height) ++ return i; ++ y -= height; ++ } ++ return -1; ++ } ++ ++ private int getColForPoint(Point p) ++ { ++ int x0 = table.getLocation().x; ++ int ncols = table.getColumnCount(); ++ Dimension gap = table.getInterCellSpacing(); ++ TableColumnModel cols = table.getColumnModel(); ++ int x = p.x; ++ for (int i = 0; i < ncols; ++i) ++ { ++ int width = cols.getColumn(i).getWidth() + (gap == null ? 0 : gap.width); ++ if (0 <= x && x < width) ++ return i; ++ x -= width; ++ } ++ return -1; ++ } ++ ++ private void updateSelection() ++ { ++ if (table.getRowSelectionAllowed()) ++ { ++ int lo_row = getRowForPoint(begin); ++ int hi_row = getRowForPoint(curr); ++ ListSelectionModel rowModel = table.getSelectionModel(); ++ if (lo_row != -1 && hi_row != -1) ++ rowModel.setSelectionInterval(lo_row, hi_row); ++ } ++ ++ if (table.getColumnSelectionAllowed()) ++ { ++ int lo_col = getColForPoint(begin); ++ int hi_col = getColForPoint(curr); ++ ListSelectionModel colModel = table.getColumnModel().getSelectionModel(); ++ if (lo_col != -1 && hi_col != -1) ++ colModel.setSelectionInterval(lo_col, hi_col); ++ } ++ } ++ ++ public void mouseClicked(MouseEvent e) ++ { ++ } ++ public void mouseDragged(MouseEvent e) ++ { ++ curr = new Point(e.getX(), e.getY()); ++ updateSelection(); ++ } ++ public void mouseEntered(MouseEvent e) ++ { ++ } ++ public void mouseExited(MouseEvent e) ++ { ++ } ++ public void mouseMoved(MouseEvent e) ++ { ++ } ++ public void mousePressed(MouseEvent e) ++ { ++ begin = new Point(e.getX(), e.getY()); ++ curr = new Point(e.getX(), e.getY()); ++ updateSelection(); ++ } ++ public void mouseReleased(MouseEvent e) ++ { ++ begin = null; ++ curr = null; ++ } ++ } ++ ++ protected FocusListener createFocusListener() ++ { ++ return new FocusHandler(); ++ } ++ protected KeyListener createKeyListener() ++ { ++ return new KeyHandler(); ++ } ++ protected MouseInputListener createMouseInputListener() ++ { ++ return new MouseInputHandler(); ++ } ++ ++ public Dimension getMaximumSize(JComponent comp) ++ { ++ return getPreferredSize(comp); ++ } ++ ++ public Dimension getMinimumSize(JComponent comp) ++ { ++ return getPreferredSize(comp); ++ } ++ ++ public Dimension getPreferredSize(JComponent comp) ++ { ++ int width = table.getColumnModel().getTotalColumnWidth(); ++ int height = table.getRowCount() * table.getRowHeight(); ++ return new Dimension(width, height); ++ } ++ ++ protected void installDefaults() ++ { ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ table.setFont(defaults.getFont("Table.font")); ++ table.setGridColor(defaults.getColor("Table.gridColor")); ++ table.setForeground(defaults.getColor("Table.foreground")); ++ table.setBackground(defaults.getColor("Table.background")); ++ table.setSelectionForeground(defaults.getColor("Table.selectionForeground")); ++ table.setSelectionBackground(defaults.getColor("Table.selectionBackground")); ++ table.setOpaque(true); ++ } ++ protected void installKeyboardActions() ++ { ++ } ++ ++ protected void installListeners() ++ { ++ table.addFocusListener(focusListener); ++ table.addKeyListener(keyListener); ++ table.addMouseListener(mouseInputListener); ++ } ++ ++ protected void uninstallDefaults() ++ { ++ table.setFont(null); ++ table.setGridColor(null); ++ table.setForeground(null); ++ table.setBackground(null); ++ table.setSelectionForeground(null); ++ table.setSelectionBackground(null); ++ } ++ ++ protected void uninstallKeyboardActions() ++ { ++ } ++ ++ protected void uninstallListeners() ++ { ++ table.removeFocusListener(focusListener); ++ table.removeKeyListener(keyListener); ++ table.removeMouseListener(mouseInputListener); ++ } ++ ++ public void installUI(JComponent comp) ++ { ++ table = (JTable)comp; ++ focusListener = createFocusListener(); ++ keyListener = createKeyListener(); ++ mouseInputListener = createMouseInputListener(); ++ installDefaults(); ++ installKeyboardActions(); ++ installListeners(); ++ } ++ ++ public void uninstallUI(JComponent c) ++ { ++ uninstallListeners(); ++ uninstallKeyboardActions(); ++ uninstallDefaults(); ++ } ++ ++ public void paint(Graphics gfx, JComponent ignored) ++ { ++ int ncols = table.getColumnCount(); ++ int nrows = table.getRowCount(); ++ if (nrows == 0 || ncols == 0) ++ return; ++ ++ Rectangle clip = gfx.getClipBounds(); ++ TableColumnModel cols = table.getColumnModel(); ++ ++ int height = table.getRowHeight(); ++ int x0 = 0, y0 = 0; ++ int x = x0; ++ int y = y0; ++ ++ Dimension gap = table.getInterCellSpacing(); ++ int ymax = clip.y + clip.height; ++ int xmax = clip.x + clip.width; ++ ++ // paint the cell contents ++ for (int c = 0; c < ncols && x < xmax; ++c) ++ { ++ y = y0; ++ TableColumn col = cols.getColumn(c); ++ int width = col.getWidth(); ++ int modelCol = col.getModelIndex(); ++ ++ for (int r = 0; r < nrows && y < ymax; ++r) ++ { ++ Rectangle bounds = new Rectangle(x, y, width, height); ++ if (bounds.intersects(clip)) ++ { ++ TableCellRenderer rend = table.getCellRenderer(r, c); ++ Component comp = table.prepareRenderer(rend, r, c); ++ gfx.translate(x, y); ++ comp.setBounds(new Rectangle(0, 0, width, height)); ++ comp.paint(gfx); ++ gfx.translate(-x, -y); ++ } ++ y += height; ++ if (gap != null) ++ y += gap.height; ++ } ++ x += width; ++ if (gap != null) ++ x += gap.width; ++ } ++ ++ // tighten up the x and y max bounds ++ ymax = y; ++ xmax = x; ++ ++ Color grid = table.getGridColor(); ++ ++ // paint vertical grid lines ++ if (grid != null && table.getShowVerticalLines()) ++ { ++ x = x0; ++ Color save = gfx.getColor(); ++ gfx.setColor(grid); ++ boolean paintedLine = false; ++ for (int c = 0; c < ncols && x < xmax; ++c) ++ { ++ x += cols.getColumn(c).getWidth();; ++ if (gap != null) ++ x += gap.width; ++ gfx.drawLine(x, y0, x, ymax); ++ paintedLine = true; ++ } ++ gfx.setColor(save); ++ } ++ ++ // paint horizontal grid lines ++ if (grid != null && table.getShowHorizontalLines()) ++ { ++ y = y0; ++ Color save = gfx.getColor(); ++ gfx.setColor(grid); ++ boolean paintedLine = false; ++ for (int r = 0; r < nrows && y < ymax; ++r) ++ { ++ y += height; ++ if (gap != null) ++ y += gap.height; ++ gfx.drawLine(x0, y, xmax, y); ++ paintedLine = true; ++ } ++ gfx.setColor(save); ++ } ++ ++ } ++ ++} +Index: javax/swing/plaf/basic/BasicTextAreaUI.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicTextAreaUI.java +diff -N javax/swing/plaf/basic/BasicTextAreaUI.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicTextAreaUI.java 6 Sep 2004 16:36:08 -0000 +@@ -0,0 +1,69 @@ ++/* BasicTextAreaUI.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++ ++package javax.swing.plaf.basic; ++ ++import java.beans.PropertyChangeEvent; ++ ++import javax.swing.JComponent; ++import javax.swing.plaf.ComponentUI; ++import javax.swing.text.Element; ++import javax.swing.text.PlainView; ++import javax.swing.text.View; ++ ++public class BasicTextAreaUI extends BasicTextUI ++{ ++ public static ComponentUI createUI(JComponent comp) ++ { ++ return new BasicTextAreaUI(); ++ } ++ ++ public BasicTextAreaUI() ++ { ++ } ++ ++ public View create(Element elem) ++ { ++ return new PlainView(elem); ++ } ++ ++ protected String getPropertyPrefix() ++ { ++ return "TextArea"; ++ } ++} +Index: javax/swing/plaf/basic/BasicTextFieldUI.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicTextFieldUI.java +diff -N javax/swing/plaf/basic/BasicTextFieldUI.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicTextFieldUI.java 6 Sep 2004 16:36:08 -0000 +@@ -0,0 +1,82 @@ ++/* BasicTextFieldUI.java ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++ ++package javax.swing.plaf.basic; ++ ++import java.beans.PropertyChangeEvent; ++ ++import javax.swing.JComponent; ++import javax.swing.JTextField; ++import javax.swing.plaf.ComponentUI; ++import javax.swing.text.Element; ++import javax.swing.text.FieldView; ++import javax.swing.text.PlainDocument; ++import javax.swing.text.View; ++ ++public class BasicTextFieldUI extends BasicTextUI ++{ ++ public BasicTextFieldUI() ++ { ++ super(); ++ } ++ ++ public View create(Element elem) ++ { ++ return new FieldView(elem); ++ } ++ ++ public static ComponentUI createUI(JComponent c) ++ { ++ return new BasicTextFieldUI(); ++ } ++ ++ protected String getPropertyPrefix() ++ { ++ return "TextField"; ++ } ++ ++ public void installUI(JComponent c) ++ { ++ super.installUI(c); ++ } ++ ++ protected void propertyChange(PropertyChangeEvent event) ++ { ++ // Does nothing by default. ++ } ++} +Index: javax/swing/plaf/basic/BasicTextUI.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/plaf/basic/BasicTextUI.java,v +retrieving revision 1.4 +diff -u -r1.4 BasicTextUI.java +--- javax/swing/plaf/basic/BasicTextUI.java 13 Jul 2003 15:29:11 -0000 1.4 ++++ javax/swing/plaf/basic/BasicTextUI.java 6 Sep 2004 16:36:08 -0000 +@@ -1,5 +1,5 @@ + /* BasicTextUI.java +- Copyright (C) 2002, 2003 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -39,151 +39,433 @@ + package javax.swing.plaf.basic; + + import java.awt.Color; ++import java.awt.Container; + import java.awt.Dimension; + import java.awt.Graphics; ++import java.awt.Insets; + import java.awt.Point; + import java.awt.Rectangle; ++import java.awt.Shape; ++import java.beans.PropertyChangeEvent; ++import java.beans.PropertyChangeListener; ++ ++import javax.swing.Action; ++import javax.swing.ActionMap; ++import javax.swing.InputMap; + import javax.swing.JComponent; ++import javax.swing.SwingUtilities; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; + import javax.swing.plaf.ComponentUI; + import javax.swing.plaf.TextUI; ++import javax.swing.plaf.UIResource; + import javax.swing.text.BadLocationException; ++import javax.swing.text.Caret; ++import javax.swing.text.DefaultCaret; + import javax.swing.text.DefaultEditorKit; ++import javax.swing.text.DefaultHighlighter; ++import javax.swing.text.Document; + import javax.swing.text.EditorKit; + import javax.swing.text.Element; ++import javax.swing.text.Highlighter; + import javax.swing.text.JTextComponent; ++import javax.swing.text.Keymap; ++import javax.swing.text.PlainDocument; ++import javax.swing.text.PlainView; + import javax.swing.text.Position; + import javax.swing.text.View; + import javax.swing.text.ViewFactory; + +-public class BasicTextUI extends TextUI ++ ++public abstract class BasicTextUI extends TextUI + implements ViewFactory + { +- int gap = 3; +- View view = null; // was: new RootView(); +- Color textColor, disabledTextColor, normalBackgroundColor; +- EditorKit kit = new DefaultEditorKit(); +- +- /* ***************************************************************** +- * This View is way too incomplete to be of any use. To avoid errors +- * when compiling with the Sun JDK, it has been commented out. +- * -- Sascha Brawer (brawer@dandelis.ch) +- * +- * (begin of commented out section) +- class RootView extends View ++ public static class BasicCaret extends DefaultCaret ++ implements UIResource ++ { ++ public BasicCaret() + { +- RootView() +- { +- super(null); +- } +- public void paint(Graphics g, Shape s) +- { +- if (view != null) +- { +- Rectangle r = s.getBounds(); +- +- view.setSize((int)r.getWidth(), +- (int)r.getHeight()); +- view.paint(g, s); +- } +- } + } +- * (end of commented out section) +- *************************************************************** */ ++ } + +- public BasicTextUI() ++ public static class BasicHighlighter extends DefaultHighlighter ++ implements UIResource ++ { ++ public BasicHighlighter() + { + } ++ } + +- public static ComponentUI createUI(final JComponent c) ++ private class RootView extends View ++ { ++ private View view; ++ ++ public RootView() + { +- return new BasicTextUI(); ++ super(null); + } + +- +- public void installUI(final JComponent c) ++ public ViewFactory getViewFactory() + { +- super.installUI(c); +- +- textColor = new Color(0,0,0); +- disabledTextColor = new Color(130, 130, 130); +- normalBackgroundColor = new Color(192,192,192); ++ // FIXME: Handle EditorKit somehow. ++ return BasicTextUI.this; + } +- +- public Dimension getPreferredSize(JComponent c) +- { +- JTextComponent b = (JTextComponent) c; +- +- View v = getRootView(b); + +- float w = v.getPreferredSpan(View.X_AXIS); +- float h = v.getPreferredSpan(View.Y_AXIS); ++ public void setView(View v) ++ { ++ if (view != null) ++ view.setParent(null); ++ ++ if (v != null) ++ v.setParent(null); + +- return new Dimension((int)w, (int) h); ++ view = v; + } +- + +- public void paint(Graphics g, JComponent c) +- { +- // view.paint( ++ public Container getContainer() ++ { ++ return textComponent; + } + +- public void damageRange(JTextComponent t, int p0, int p1) ++ public float getPreferredSpan(int axis) + { +- damageRange(t, p0, p1, null, null); +- } ++ if (view != null) ++ return view.getPreferredSpan(axis); + +- public void damageRange(JTextComponent t, +- int p0, int p1, +- Position.Bias firstBias, +- Position.Bias secondBias) +- { +- } ++ return Integer.MAX_VALUE; ++ } + +- public EditorKit getEditorKit(JTextComponent t) ++ public void paint(Graphics g, Shape s) + { +- return kit; ++ if (view != null) ++ view.paint(g, s); + } +- +- public int getNextVisualPositionFrom(JTextComponent t, +- int pos, +- Position.Bias b, +- int direction, +- Position.Bias[] biasRet) +- throws BadLocationException ++ ++ protected Rectangle modelToView(int position, Shape a, Position.Bias bias) ++ throws BadLocationException + { +- return 0; ++ return ((PlainView) view).modelToView(position, a, bias).getBounds(); + } +- +- public View getRootView(JTextComponent t) ++ } ++ ++ class UpdateHandler implements PropertyChangeListener ++ { ++ public void propertyChange(PropertyChangeEvent event) + { +- return view; ++ if (event.getPropertyName().equals("document")) ++ { ++ // Document changed. ++ modelChanged(); ++ } + } ++ } ++ ++ static EditorKit kit = new DefaultEditorKit(); ++ ++ RootView rootView = new RootView(); ++ JTextComponent textComponent; ++ UpdateHandler updateHandler = new UpdateHandler(); ++ ++ public BasicTextUI() ++ { ++ } ++ ++ protected Caret createCaret() ++ { ++ return new BasicCaret(); ++ } ++ ++ protected Highlighter createHighlighter() ++ { ++ return new BasicHighlighter(); ++ } ++ ++ protected final JTextComponent getComponent() ++ { ++ return textComponent; ++ } ++ ++ public void installUI(final JComponent c) ++ { ++ super.installUI(c); ++ c.setOpaque(true); ++ ++ textComponent = (JTextComponent) c; ++ ++ Document doc = textComponent.getDocument(); ++ if (doc == null) ++ { ++ doc = getEditorKit(textComponent).createDefaultDocument(); ++ textComponent.setDocument(doc); ++ } + +- public Rectangle modelToView(JTextComponent t, int pos) +- throws BadLocationException +- { +- return modelToView(t, pos, null); +- } ++ textComponent.addPropertyChangeListener(updateHandler); ++ modelChanged(); + +- public Rectangle modelToView(JTextComponent t, int pos, Position.Bias bias) +- throws BadLocationException +- { +- return null; +- } ++ installDefaults(); ++ installListeners(); ++ installKeyboardActions(); ++ } ++ ++ protected void installDefaults() ++ { ++ Caret caret = textComponent.getCaret(); ++ if (caret == null) ++ { ++ caret = createCaret(); ++ textComponent.setCaret(caret); ++ } ++ ++ Highlighter highlighter = textComponent.getHighlighter(); ++ if (highlighter == null) ++ textComponent.setHighlighter(createHighlighter()); ++ ++ String prefix = getPropertyPrefix(); ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ textComponent.setBackground(defaults.getColor(prefix + ".background")); ++ textComponent.setForeground(defaults.getColor(prefix + ".foreground")); ++ textComponent.setMargin(defaults.getInsets(prefix + ".margin")); ++ textComponent.setBorder(defaults.getBorder(prefix + ".border")); ++ textComponent.setFont(defaults.getFont(prefix + ".font")); ++ ++ caret.setBlinkRate(defaults.getInt(prefix + ".caretBlinkRate")); ++ } ++ ++ protected void installListeners() ++ { ++ // Do nothing here. ++ } ++ ++ protected String getKeymapName() ++ { ++ return "BasicTextUI"; ++ } ++ ++ protected Keymap createKeymap() ++ { ++ String prefix = getPropertyPrefix(); ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ JTextComponent.KeyBinding[] bindings = ++ (JTextComponent.KeyBinding[]) defaults.get(prefix + ".keyBindings"); ++ Keymap km = JTextComponent.addKeymap(getKeymapName(), ++ JTextComponent.getKeymap(JTextComponent.DEFAULT_KEYMAP)); ++ JTextComponent.loadKeymap(km, bindings, textComponent.getActions()); ++ return km; ++ } ++ ++ protected void installKeyboardActions() ++ { ++ // load any bindings for the older Keymap interface ++ Keymap km = JTextComponent.getKeymap(getKeymapName()); ++ if (km == null) ++ km = createKeymap(); ++ textComponent.setKeymap(km); ++ ++ // load any bindings for the newer InputMap / ActionMap interface ++ SwingUtilities.replaceUIInputMap(textComponent, ++ JComponent.WHEN_FOCUSED, ++ getInputMap(JComponent.WHEN_FOCUSED)); ++ SwingUtilities.replaceUIActionMap(textComponent, getActionMap()); ++ } ++ ++ InputMap getInputMap(int condition) ++ { ++ String prefix = getPropertyPrefix(); ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ switch (condition) ++ { ++ case JComponent.WHEN_IN_FOCUSED_WINDOW: ++ // FIXME: is this the right string? nobody seems to use it. ++ return (InputMap) defaults.get(prefix + ".windowInputMap"); ++ case JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT: ++ return (InputMap) defaults.get(prefix + ".ancestorInputMap"); ++ default: ++ case JComponent.WHEN_FOCUSED: ++ return (InputMap) defaults.get(prefix + ".focusInputMap"); ++ } ++ } ++ ++ ActionMap getActionMap() ++ { ++ String prefix = getPropertyPrefix(); ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ ActionMap am = (ActionMap) defaults.get(prefix + ".actionMap"); ++ if (am == null) ++ { ++ am = createActionMap(); ++ defaults.put(prefix + ".actionMap", am); ++ } ++ return am; ++ } ++ ++ ActionMap createActionMap() ++ { ++ Action[] actions = textComponent.getActions(); ++ ActionMap am = new ActionMap(); ++ for (int i = 0; i < actions.length; ++i) ++ { ++ String name = (String) actions[i].getValue(Action.NAME); ++ if (name != null) ++ am.put(name, actions[i]); ++ } ++ return am; ++ } ++ ++ public void uninstallUI(final JComponent component) ++ { ++ super.uninstallUI(component); ++ rootView.setView(null); ++ ++ textComponent.removePropertyChangeListener(updateHandler); ++ textComponent = null; ++ ++ uninstallDefaults(); ++ uninstallListeners(); ++ uninstallKeyboardActions(); ++ } ++ ++ protected void uninstallDefaults() ++ { ++ // Do nothing here. ++ } ++ ++ protected void uninstallListeners() ++ { ++ // Do nothing here. ++ } ++ ++ protected void uninstallKeyboardActions() ++ { ++ // Do nothing here. ++ } ++ ++ protected abstract String getPropertyPrefix(); ++ ++ public Dimension getPreferredSize(JComponent c) ++ { ++ View v = getRootView(textComponent); ++ ++ float w = v.getPreferredSpan(View.X_AXIS); ++ float h = v.getPreferredSpan(View.Y_AXIS); ++ ++ return new Dimension((int) w, (int) h); ++ } ++ ++ public final void paint(Graphics g, JComponent c) ++ { ++ paintSafely(g); ++ } ++ ++ protected void paintSafely(Graphics g) ++ { ++ Caret caret = textComponent.getCaret(); ++ Highlighter highlighter = textComponent.getHighlighter(); + +- public int viewToModel(JTextComponent t, Point pt) +- { +- return viewToModel(t, pt, null); +- } ++ if (textComponent.isOpaque()) ++ paintBackground(g); + +- public int viewToModel(JTextComponent t, Point pt, Position.Bias[] biasReturn) +- { +- return 0; +- } ++ if (highlighter != null ++ && textComponent.getSelectionStart() != textComponent.getSelectionEnd()) ++ highlighter.paint(g); ++ ++ rootView.paint(g, getVisibleEditorRect()); + +- public View create (Element elem) ++ if (caret != null) ++ caret.paint(g); ++ } ++ ++ protected void paintBackground(Graphics g) ++ { ++ g.setColor(textComponent.getBackground()); ++ g.fillRect(0, 0, textComponent.getWidth(), textComponent.getHeight()); ++ } ++ ++ public void damageRange(JTextComponent t, int p0, int p1) ++ { ++ damageRange(t, p0, p1, null, null); ++ } ++ ++ public void damageRange(JTextComponent t, int p0, int p1, ++ Position.Bias firstBias, Position.Bias secondBias) ++ { ++ } ++ ++ public EditorKit getEditorKit(JTextComponent t) ++ { ++ return kit; ++ } ++ ++ public int getNextVisualPositionFrom(JTextComponent t, int pos, ++ Position.Bias b, int direction, ++ Position.Bias[] biasRet) ++ throws BadLocationException ++ { ++ return 0; ++ } ++ ++ public View getRootView(JTextComponent t) ++ { ++ return rootView; ++ } ++ ++ public Rectangle modelToView(JTextComponent t, int pos) ++ throws BadLocationException ++ { ++ return modelToView(t, pos, Position.Bias.Forward); ++ } ++ ++ public Rectangle modelToView(JTextComponent t, int pos, Position.Bias bias) ++ throws BadLocationException ++ { ++ return rootView.modelToView(pos, getVisibleEditorRect(), bias).getBounds(); ++ } ++ ++ public int viewToModel(JTextComponent t, Point pt) ++ { ++ return viewToModel(t, pt, null); ++ } ++ ++ public int viewToModel(JTextComponent t, Point pt, Position.Bias[] biasReturn) ++ { ++ return 0; ++ } ++ ++ public View create(Element elem) ++ { ++ // subclasses have to implement this to get this functionality ++ return null; ++ } ++ ++ public View create(Element elem, int p0, int p1) + { + // subclasses have to implement this to get this functionality + return null; + } ++ ++ protected Rectangle getVisibleEditorRect() ++ { ++ int width = textComponent.getWidth(); ++ int height = textComponent.getHeight(); ++ ++ if (width <= 0 || height <= 0) ++ return null; ++ ++ Insets insets = textComponent.getInsets(); ++ return new Rectangle(insets.left, insets.top, ++ width - insets.left + insets.right, ++ height - insets.top + insets.bottom); ++ } ++ ++ protected final void setView(View view) ++ { ++ rootView.setView(view); ++ view.setParent(rootView); ++ } ++ ++ protected void modelChanged() ++ { ++ ViewFactory factory = rootView.getViewFactory(); ++ Element elem = textComponent.getDocument().getDefaultRootElement(); ++ setView(factory.create(elem)); ++ } + } +Index: javax/swing/plaf/basic/BasicToggleButtonUI.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/plaf/basic/BasicToggleButtonUI.java,v +retrieving revision 1.4 +diff -u -r1.4 BasicToggleButtonUI.java +--- javax/swing/plaf/basic/BasicToggleButtonUI.java 10 Jan 2004 21:59:30 -0000 1.4 ++++ javax/swing/plaf/basic/BasicToggleButtonUI.java 6 Sep 2004 16:36:08 -0000 +@@ -38,86 +38,15 @@ + + package javax.swing.plaf.basic; + +-import java.awt.Dimension; +-import java.awt.Graphics; +-import java.awt.Rectangle; +-import javax.swing.AbstractButton; + import javax.swing.JComponent; + import javax.swing.plaf.ComponentUI; + + public class BasicToggleButtonUI extends BasicButtonUI + { +- +- public static ComponentUI createUI(final JComponent c) { +- return new BasicToggleButtonUI(); +- } ++ public static ComponentUI createUI(final JComponent component) ++ { ++ return new BasicToggleButtonUI(); ++ } + +- +- public void installUI(final JComponent c) { +- super.installUI(c); +- } +- +- public Dimension getPreferredSize(JComponent c) +- { +- AbstractButton b = (AbstractButton)c; +- Dimension d = BasicGraphicsUtils.getPreferredButtonSize(b, gap); +- +- //System.out.println("^^^^^^^^^^^^^^^^^^^^^^ BASIC-PREF="+d + ",T="+b.text); +- return d; +- } +- +- protected void paintFocus(Graphics g, +- JComponent c, +- Rectangle vr, +- Rectangle tr, +- Rectangle ir) +- { +- } +- +- protected void paintIcon(Graphics g, +- JComponent c, +- Rectangle iconRect) +- { +- } +- +- protected void paintButtonPressed(Graphics g, +- JComponent b) +- { +- Dimension size = b.getSize(); +- +- g.setColor(pressedBackgroundColor); +- g.fillRect(1,1,size.width-2, size.height-2); +- +- } +- +- protected void paintButtonNormal(Graphics g, +- JComponent b) +- { +- Dimension size = b.getSize(); +- +- g.setColor(normalBackgroundColor); +- g.fillRect(1,1,size.width-2, size.height-2); +- +- } +- protected void paintText(Graphics g, +- JComponent c, +- Rectangle textRect, +- String text) +- { +- // AbstractButton b = (AbstractButton) c; +- +- // System.out.println("drawing string: " + text + ", at:" + textRect); +- +- g.setColor(textColor); +- +- BasicGraphicsUtils.drawString(g, +- text, +- 0, +- textRect.x, +- textRect.y); +- } + } + +- +- +- +Index: javax/swing/plaf/basic/BasicToolBarSeparatorUI.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicToolBarSeparatorUI.java +diff -N javax/swing/plaf/basic/BasicToolBarSeparatorUI.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicToolBarSeparatorUI.java 6 Sep 2004 16:36:08 -0000 +@@ -0,0 +1,132 @@ ++/* BasicToolBarSeparatorUI.java ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.plaf.basic; ++ ++import java.awt.Color; ++import java.awt.Dimension; ++import java.awt.Graphics; ++import java.awt.Insets; ++import java.awt.Rectangle; ++import javax.swing.JComponent; ++import javax.swing.JToolBar.Separator; ++import javax.swing.JSeparator; ++import javax.swing.SwingUtilities; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; ++import javax.swing.plaf.ComponentUI; ++import javax.swing.plaf.SeparatorUI; ++ ++ ++/** ++ * The Basic Look and Feel UI delegate for Separator. ++ */ ++public class BasicToolBarSeparatorUI extends BasicSeparatorUI ++{ ++ private transient Dimension size; ++ ++ /** ++ * Creates a new UI delegate for the given JComponent. ++ * ++ * @param c The JComponent to create a delegate for. ++ * ++ * @return A new BasicToolBarSeparatorUI. ++ */ ++ public static ComponentUI createUI(JComponent c) ++ { ++ return new BasicToolBarSeparatorUI(); ++ } ++ ++ /** ++ * This method installs the defaults that are given by the Basic L&F. ++ * ++ * @param s The Separator that is being installed. ++ */ ++ protected void installDefaults(JSeparator s) ++ { ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ ++ size = defaults.getDimension("ToolBar.separatorSize"); ++ } ++ ++ /** ++ * This method does nothing as a Separator is just blank space. ++ * ++ * @param g The Graphics object to paint with ++ * @param c The JComponent to paint. ++ */ ++ public void paint(Graphics g, JComponent c) ++ { ++ // Do nothing. ++ } ++ ++ /** ++ * This method returns the preferred size of the JComponent. ++ * ++ * @param c The JComponent to measure. ++ * ++ * @return The preferred size. ++ */ ++ public Dimension getPreferredSize(JComponent c) ++ { ++ return size; ++ } ++ ++ /** ++ * This method returns the minimum size of the JComponent. ++ * ++ * @param c The JComponent to measure. ++ * ++ * @return The minimum size. ++ */ ++ public Dimension getMinimumSize(JComponent c) ++ { ++ return size; ++ } ++ ++ /** ++ * This method returns the maximum size of the JComponent. ++ * ++ * @param c The JComponent to measure. ++ * ++ * @return The maximum size. ++ */ ++ public Dimension getMaximumSize(JComponent c) ++ { ++ return size; ++ } ++} +Index: javax/swing/plaf/basic/BasicToolBarUI.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicToolBarUI.java +diff -N javax/swing/plaf/basic/BasicToolBarUI.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicToolBarUI.java 6 Sep 2004 16:36:08 -0000 +@@ -0,0 +1,1435 @@ ++/* BasicToolBarUI.java ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.plaf.basic; ++ ++import java.awt.BorderLayout; ++import java.awt.Color; ++import java.awt.Component; ++import java.awt.ComponentOrientation; ++import java.awt.Container; ++import java.awt.Dimension; ++import java.awt.Graphics; ++import java.awt.GridLayout; ++import java.awt.Insets; ++import java.awt.Point; ++import java.awt.Rectangle; ++import java.awt.Window; ++import java.awt.event.ContainerEvent; ++import java.awt.event.ContainerListener; ++import java.awt.event.FocusEvent; ++import java.awt.event.FocusListener; ++import java.awt.event.MouseAdapter; ++import java.awt.event.MouseEvent; ++import java.awt.event.WindowAdapter; ++import java.awt.event.WindowEvent; ++import java.awt.event.WindowListener; ++import java.beans.PropertyChangeEvent; ++import java.beans.PropertyChangeListener; ++import java.util.Enumeration; ++import java.util.Hashtable; ++import javax.swing.JButton; ++import javax.swing.JComponent; ++import javax.swing.JDialog; ++import javax.swing.JFrame; ++import javax.swing.JToolBar; ++import javax.swing.RootPaneContainer; ++import javax.swing.SwingConstants; ++import javax.swing.SwingUtilities; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; ++import javax.swing.border.Border; ++import javax.swing.event.MouseInputListener; ++import javax.swing.plaf.BorderUIResource; ++import javax.swing.plaf.BorderUIResource.EtchedBorderUIResource; ++import javax.swing.plaf.ComponentUI; ++import javax.swing.plaf.ToolBarUI; ++import javax.swing.plaf.UIResource; ++ ++ ++/** ++ * This is the Basic Look and Feel UI class for JToolBar. ++ */ ++public class BasicToolBarUI extends ToolBarUI implements SwingConstants ++{ ++ /** Static owner of all DragWindows. */ ++ private static JFrame owner = new JFrame(); ++ ++ /** The border used when the JToolBar is in nonrollover mode. */ ++ private static Border nonRolloverBorder; ++ ++ /** The border used when the JToolBar is in rollover mode. */ ++ private static Border rolloverBorder; ++ ++ /** The last known BorderLayout constraint before floating. */ ++ protected String constraintBeforeFloating; ++ ++ /** The last known orientation of the JToolBar before floating. */ ++ private int lastGoodOrientation; ++ ++ /** The color of the border when it is dockable. */ ++ protected Color dockingBorderColor; ++ ++ /** The background color of the JToolBar when it is dockable. */ ++ protected Color dockingColor; ++ ++ /** The docking listener responsible for mouse events on the JToolBar. */ ++ protected MouseInputListener dockingListener; ++ ++ /** The window used for dragging the JToolBar. */ ++ protected BasicToolBarUI.DragWindow dragWindow; ++ ++ /** The color of the border when it is not dockable. */ ++ protected Color floatingBorderColor; ++ ++ /** The background color of the JToolBar when it is not dockable. */ ++ protected Color floatingColor; ++ ++ /** The index of the focused component. */ ++ protected int focusedCompIndex; ++ ++ /** The PropertyChangeListener for the JToolBar. */ ++ protected PropertyChangeListener propertyListener; ++ ++ /** The JToolBar this UI delegate is responsible for. */ ++ protected JToolBar toolBar; ++ ++ /** The Container listener for the JToolBar. */ ++ protected ContainerListener toolBarContListener; ++ ++ /** The Focus listener for the JToolBar. */ ++ protected FocusListener toolBarFocusListener; ++ ++ /** ++ * The floating window that is responsible for holding the JToolBar when it ++ * is dragged outside of its original parent. ++ */ ++ private transient Window floatFrame; ++ ++ /** The original parent of the JToolBar. */ ++ private transient Container origParent; ++ ++ /** A hashtable of components and their original borders. */ ++ private transient Hashtable borders; ++ ++ /** A window listener for the floatable frame. */ ++ private transient WindowListener windowListener; ++ ++ /** A set of cached bounds of the JToolBar. */ ++ private transient Dimension cachedBounds; ++ ++ /** The cached orientation of the JToolBar. */ ++ private transient int cachedOrientation; ++ ++ /** ++ * This method creates a new BasicToolBarUI object for the given JToolBar. ++ */ ++ public BasicToolBarUI() ++ { ++ super(); ++ } ++ ++ /** ++ * This method returns whether the JToolBar can dock at the given position. ++ * ++ * @param c The component to try to dock in. ++ * @param p The position of the mouse cursor relative to the given ++ * component. ++ * ++ * @return Whether the JToolBar can dock. ++ */ ++ protected boolean canDock(Component c, Point p) ++ { ++ if (areaOfClick(c, p) != -1) ++ return true; ++ ++ return false; ++ } ++ ++ /** ++ * This helper method returns the position of the JToolBar if it can dock. ++ * ++ * @param c The component to try to dock in. ++ * @param p The position of the mouse cursor relative to the given ++ * component. ++ * ++ * @return One of the SwingConstants directions or -1 if the JToolBar can't ++ * dock. ++ */ ++ private int areaOfClick(Component c, Point p) ++ { ++ // Has to dock in immediate parent, not eventual root container. ++ Rectangle pBounds = c.getBounds(); ++ ++ // XXX: In Sun's implementation, the space the toolbar has to dock is dependent on the size it had last. ++ Dimension d = toolBar.getSize(); ++ int limit = Math.min(d.width, d.height); ++ ++ // The order of checking is 1. top 2. bottom 3. left 4. right ++ if (! pBounds.contains(p)) ++ return -1; ++ ++ if (p.y < limit) ++ return SwingConstants.NORTH; ++ ++ if (p.y > (pBounds.height - limit)) ++ return SwingConstants.SOUTH; ++ ++ if (p.x < limit) ++ return SwingConstants.WEST; ++ ++ if (p.x > (pBounds.width - limit)) ++ return SwingConstants.EAST; ++ ++ return -1; ++ } ++ ++ /** ++ * This method creates a new DockingListener for the JToolBar. ++ * ++ * @return A new DockingListener for the JToolBar. ++ */ ++ protected MouseInputListener createDockingListener() ++ { ++ return new DockingListener(toolBar); ++ } ++ ++ /** ++ * This method creates a new DragWindow for the given JToolBar. ++ * ++ * @param toolbar The JToolBar to create a DragWindow for. ++ * ++ * @return A new DragWindow. ++ */ ++ protected BasicToolBarUI.DragWindow createDragWindow(JToolBar toolbar) ++ { ++ return new DragWindow(); ++ } ++ ++ /** ++ * This method creates a new floating frame for the JToolBar. By default, ++ * this UI uses createFloatingWindow instead. This method of creating a ++ * floating frame is deprecated. ++ * ++ * @param toolbar The JToolBar to create a floating frame for. ++ * ++ * @return A new floating frame. ++ */ ++ protected JFrame createFloatingFrame(JToolBar toolbar) ++ { ++ // FIXME: Though deprecated, this should still work. ++ return null; ++ } ++ ++ /** ++ * This method creates a new floating window for the JToolBar. This is the ++ * method used by default to create a floating container for the JToolBar. ++ * ++ * @param toolbar The JToolBar to create a floating window for. ++ * ++ * @return A new floating window. ++ */ ++ protected RootPaneContainer createFloatingWindow(JToolBar toolbar) ++ { ++ // This one is used by default though. ++ return new ToolBarDialog(); ++ } ++ ++ /** ++ * This method creates a new WindowListener for the JToolBar. ++ * ++ * @return A new WindowListener. ++ */ ++ protected WindowListener createFrameListener() ++ { ++ return new FrameListener(); ++ } ++ ++ /** ++ * This method creates a new nonRolloverBorder for JButtons when the ++ * JToolBar's rollover property is set to false. ++ * ++ * @return A new NonRolloverBorder. ++ */ ++ protected Border createNonRolloverBorder() ++ { ++ return new EtchedBorderUIResource(); ++ } ++ ++ /** ++ * This method creates a new PropertyChangeListener for the JToolBar. ++ * ++ * @return A new PropertyChangeListener. ++ */ ++ protected PropertyChangeListener createPropertyListener() ++ { ++ return new PropertyListener(); ++ } ++ ++ /** ++ * This method creates a new rollover border for JButtons when the ++ * JToolBar's rollover property is set to true. ++ * ++ * @return A new rollover border. ++ */ ++ protected Border createRolloverBorder() ++ { ++ return new EtchedBorderUIResource() ++ { ++ public void paintBorder(Component c, Graphics g, int x, int y, ++ int width, int height) ++ { ++ if (c instanceof JButton) ++ { ++ if (((JButton) c).getModel().isRollover()) ++ super.paintBorder(c, g, x, y, width, height); ++ } ++ } ++ }; ++ } ++ ++ /** ++ * This method creates a new Container listener for the JToolBar. ++ * ++ * @return A new Container listener. ++ */ ++ protected ContainerListener createToolBarContListener() ++ { ++ return new ToolBarContListener(); ++ } ++ ++ /** ++ * This method creates a new FocusListener for the JToolBar. ++ * ++ * @return A new FocusListener for the JToolBar. ++ */ ++ protected FocusListener createToolBarFocusListener() ++ { ++ return new ToolBarFocusListener(); ++ } ++ ++ /** ++ * This method creates a new UI delegate for the given JComponent. ++ * ++ * @param c The JComponent to create a UI delegate for. ++ * ++ * @return A new UI delegate. ++ */ ++ public static ComponentUI createUI(JComponent c) ++ { ++ return new BasicToolBarUI(); ++ } ++ ++ /** ++ * This method is called to drag the DragWindow around when the JToolBar is ++ * being dragged around. ++ * ++ * @param position The mouse cursor coordinates relative to the JToolBar. ++ * @param origin The screen position of the JToolBar. ++ */ ++ protected void dragTo(Point position, Point origin) ++ { ++ int loc = areaOfClick(origParent, ++ SwingUtilities.convertPoint(toolBar, position, ++ origParent)); ++ ++ if (loc != -1) ++ { ++ dragWindow.setBorderColor(dockingBorderColor); ++ dragWindow.setBackground(dockingColor); ++ } ++ else ++ { ++ dragWindow.setBorderColor(floatingBorderColor); ++ dragWindow.setBackground(floatingColor); ++ } ++ ++ int w = 0; ++ int h = 0; ++ ++ boolean tmp = ((loc == SwingConstants.NORTH) ++ || (loc == SwingConstants.SOUTH) || (loc == -1)); ++ ++ if (((cachedOrientation == SwingConstants.HORIZONTAL) && tmp) ++ || ((cachedOrientation == VERTICAL) && ! tmp)) ++ { ++ w = cachedBounds.width; ++ h = cachedBounds.height; ++ } ++ else ++ { ++ w = cachedBounds.height; ++ h = cachedBounds.width; ++ } ++ ++ Point p = dragWindow.getOffset(); ++ Insets insets = toolBar.getInsets(); ++ ++ dragWindow.setBounds((origin.x + position.x) - p.x ++ - ((insets.left + insets.right) / 2), ++ (origin.y + position.y) - p.y ++ - ((insets.top + insets.bottom) / 2), w, h); ++ ++ if (! dragWindow.isVisible()) ++ dragWindow.show(); ++ } ++ ++ /** ++ * This method is used at the end of a drag session to place the frame in ++ * either its original parent as a docked JToolBar or in its floating ++ * frame. ++ * ++ * @param position The position of the mouse cursor relative to the ++ * JToolBar. ++ * @param origin The screen position of the JToolBar before the drag session ++ * started. ++ */ ++ protected void floatAt(Point position, Point origin) ++ { ++ Point p = new Point(position); ++ int aoc = areaOfClick(origParent, ++ SwingUtilities.convertPoint(toolBar, p, origParent)); ++ ++ Container oldParent = toolBar.getParent(); ++ ++ oldParent.remove(toolBar); ++ oldParent.doLayout(); ++ oldParent.repaint(); ++ ++ Container newParent; ++ ++ if (aoc == -1) ++ newParent = ((RootPaneContainer) floatFrame).getContentPane(); ++ else ++ { ++ floatFrame.hide(); ++ newParent = origParent; ++ } ++ ++ String constraint; ++ switch (aoc) ++ { ++ case SwingConstants.EAST: ++ constraint = BorderLayout.EAST; ++ break; ++ case SwingConstants.NORTH: ++ constraint = BorderLayout.NORTH; ++ break; ++ case SwingConstants.SOUTH: ++ constraint = BorderLayout.SOUTH; ++ break; ++ case SwingConstants.WEST: ++ constraint = BorderLayout.WEST; ++ break; ++ default: ++ constraint = BorderLayout.CENTER; ++ break; ++ } ++ ++ int newOrientation = SwingConstants.HORIZONTAL; ++ if ((aoc != -1) ++ && ((aoc == SwingConstants.EAST) || (aoc == SwingConstants.WEST))) ++ newOrientation = SwingConstants.VERTICAL; ++ ++ if (aoc != -1) ++ { ++ constraintBeforeFloating = constraint; ++ lastGoodOrientation = newOrientation; ++ } ++ ++ newParent.add(toolBar, constraint); ++ ++ setFloating(aoc == -1, null); ++ toolBar.setOrientation(newOrientation); ++ ++ Insets insets = floatFrame.getInsets(); ++ Dimension dims = toolBar.getPreferredSize(); ++ p = dragWindow.getOffset(); ++ setFloatingLocation((position.x + origin.x) - p.x ++ - ((insets.left + insets.right) / 2), ++ (position.y + origin.y) - p.y ++ - ((insets.top + insets.bottom) / 2)); ++ ++ if (aoc == -1) ++ { ++ floatFrame.pack(); ++ floatFrame.setSize(dims.width + insets.left + insets.right, ++ dims.height + insets.top + insets.bottom); ++ floatFrame.show(); ++ } ++ ++ newParent.invalidate(); ++ newParent.validate(); ++ newParent.repaint(); ++ } ++ ++ /** ++ * This method returns the docking color. ++ * ++ * @return The docking color. ++ */ ++ public Color getDockingColor() ++ { ++ return dockingColor; ++ } ++ ++ /** ++ * This method returns the Color which is displayed when over a floating ++ * area. ++ * ++ * @return The color which is displayed when over a floating area. ++ */ ++ public Color getFloatingColor() ++ { ++ return floatingColor; ++ } ++ ++ /** ++ * This method returns the maximum size of the given JComponent for this UI. ++ * ++ * @param c The JComponent to find the maximum size for. ++ * ++ * @return The maximum size for this UI. ++ */ ++ public Dimension getMaximumSize(JComponent c) ++ { ++ return getPreferredSize(c); ++ } ++ ++ /** ++ * This method returns the minimum size of the given JComponent for this UI. ++ * ++ * @param c The JComponent to find a minimum size for. ++ * ++ * @return The minimum size for this UI. ++ */ ++ public Dimension getMinimumSize(JComponent c) ++ { ++ return getPreferredSize(c); ++ } ++ ++ /** ++ * This method returns the preferred size of the given JComponent for this ++ * UI. ++ * ++ * @param c The JComponent to find a preferred size for. ++ * ++ * @return The preferred size for this UI. ++ */ ++ public Dimension getPreferredSize(JComponent c) ++ { ++ return toolBar.getLayout().preferredLayoutSize(c); ++ } ++ ++ /** ++ * This method installs the needed components for the JToolBar. ++ */ ++ protected void installComponents() ++ { ++ floatFrame = (Window) createFloatingWindow(toolBar); ++ ++ dragWindow = createDragWindow(toolBar); ++ ++ cachedBounds = toolBar.getPreferredSize(); ++ cachedOrientation = toolBar.getOrientation(); ++ ++ nonRolloverBorder = createNonRolloverBorder(); ++ rolloverBorder = createRolloverBorder(); ++ ++ borders = new Hashtable(); ++ ++ fillHashtable(); ++ } ++ ++ /** ++ * This method installs the defaults as specified by the look and feel. ++ */ ++ protected void installDefaults() ++ { ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ ++ toolBar.setBorder(new ToolBarBorder()); ++ toolBar.setBackground(defaults.getColor("ToolBar.background")); ++ toolBar.setForeground(defaults.getColor("ToolBar.foreground")); ++ toolBar.setFont(defaults.getFont("ToolBar.font")); ++ ++ dockingBorderColor = defaults.getColor("ToolBar.dockingForeground"); ++ dockingColor = defaults.getColor("ToolBar.dockingBackground"); ++ ++ floatingBorderColor = defaults.getColor("ToolBar.floatingForeground"); ++ floatingColor = defaults.getColor("ToolBar.floatingBackground"); ++ } ++ ++ /** ++ * This method installs the keyboard actions for the JToolBar as specified ++ * by the look and feel. ++ */ ++ protected void installKeyboardActions() ++ { ++ // FIXME: implement. ++ } ++ ++ /** ++ * This method installs listeners for the JToolBar. ++ * ++ * @param toolbar The JToolBar to register listeners for. ++ */ ++ protected void installListeners(JToolBar toolbar) ++ { ++ dockingListener = createDockingListener(); ++ toolBar.addMouseListener(dockingListener); ++ toolBar.addMouseMotionListener(dockingListener); ++ ++ propertyListener = createPropertyListener(); ++ toolBar.addPropertyChangeListener(propertyListener); ++ ++ toolBarContListener = createToolBarContListener(); ++ toolBar.addContainerListener(toolBarContListener); ++ ++ windowListener = createFrameListener(); ++ floatFrame.addWindowListener(windowListener); ++ ++ toolBarFocusListener = createToolBarFocusListener(); ++ toolBar.addFocusListener(toolBarFocusListener); ++ } ++ ++ /** ++ * This method installs non rollover borders for each component inside the ++ * given JComponent. ++ * ++ * @param c The JComponent whose children need to have non rollover borders ++ * installed. ++ */ ++ protected void installNonRolloverBorders(JComponent c) ++ { ++ Component[] components = toolBar.getComponents(); ++ ++ for (int i = 0; i < components.length; i++) ++ setBorderToNonRollover(components[i]); ++ } ++ ++ /** ++ * This method installs normal (or their original) borders for each ++ * component inside the given JComponent. ++ * ++ * @param c The JComponent whose children need to have their original ++ * borders installed. ++ */ ++ protected void installNormalBorders(JComponent c) ++ { ++ Component[] components = toolBar.getComponents(); ++ ++ for (int i = 0; i < components.length; i++) ++ setBorderToNormal(components[i]); ++ } ++ ++ /** ++ * This method install rollover borders for each component inside the given ++ * JComponent. ++ * ++ * @param c The JComponent whose children need to have rollover borders ++ * installed. ++ */ ++ protected void installRolloverBorders(JComponent c) ++ { ++ Component[] components = toolBar.getComponents(); ++ ++ for (int i = 0; i < components.length; i++) ++ setBorderToRollover(components[i]); ++ } ++ ++ /** ++ * This method fills the borders hashtable with a list of components that ++ * are JButtons and their borders. ++ */ ++ private void fillHashtable() ++ { ++ Component[] c = toolBar.getComponents(); ++ ++ for (int i = 0; i < c.length; i++) ++ { ++ if (c[i] instanceof JButton) ++ { ++ // Don't really care about anything other than JButtons ++ JButton b = (JButton) c[i]; ++ ++ if (b.getBorder() != null) ++ borders.put(b, b.getBorder()); ++ } ++ } ++ } ++ ++ /** ++ * This method installs the UI for the given JComponent. ++ * ++ * @param c The JComponent to install a UI for. ++ */ ++ public void installUI(JComponent c) ++ { ++ super.installUI(c); ++ ++ if (c instanceof JToolBar) ++ { ++ toolBar = (JToolBar) c; ++ toolBar.setOpaque(true); ++ installDefaults(); ++ installComponents(); ++ installListeners(toolBar); ++ installKeyboardActions(); ++ } ++ } ++ ++ /** ++ * This method returns whether the JToolBar is floating. ++ * ++ * @return Whether the JToolBar is floating. ++ */ ++ public boolean isFloating() ++ { ++ return floatFrame.isVisible(); ++ } ++ ++ /** ++ * This method returns whether rollover borders have been set. ++ * ++ * @return Whether rollover borders have been set. ++ */ ++ public boolean isRolloverBorders() ++ { ++ return toolBar.isRollover(); ++ } ++ ++ /** ++ * This method navigates in the given direction giving focus to the next ++ * component in the given direction. ++ * ++ * @param direction The direction to give focus to. ++ */ ++ protected void navigateFocusedComp(int direction) ++ { ++ // FIXME: Implement. ++ } ++ ++ /** ++ * This method sets the border of the given component to a non rollover ++ * border. ++ * ++ * @param c The Component whose border needs to be set. ++ */ ++ protected void setBorderToNonRollover(Component c) ++ { ++ if (c instanceof JButton) ++ { ++ JButton b = (JButton) c; ++ b.setRolloverEnabled(false); ++ b.setBorder(nonRolloverBorder); ++ } ++ } ++ ++ /** ++ * This method sets the border of the given component to its original value. ++ * ++ * @param c The Component whose border needs to be set. ++ */ ++ protected void setBorderToNormal(Component c) ++ { ++ if (c instanceof JButton) ++ { ++ JButton b = (JButton) c; ++ Border border = (Border) borders.get(b); ++ b.setBorder(border); ++ } ++ } ++ ++ /** ++ * This method sets the border of the given component to a rollover border. ++ * ++ * @param c The Component whose border needs to be set. ++ */ ++ protected void setBorderToRollover(Component c) ++ { ++ if (c instanceof JButton) ++ { ++ JButton b = (JButton) c; ++ b.setRolloverEnabled(true); ++ b.setBorder(rolloverBorder); ++ } ++ } ++ ++ /** ++ * This method sets the docking color. ++ * ++ * @param c The docking color. ++ */ ++ public void setDockingColor(Color c) ++ { ++ dockingColor = c; ++ } ++ ++ /** ++ * This method sets the floating property for the JToolBar. ++ * ++ * @param b Whether the JToolBar is floating. ++ * @param p FIXME ++ */ ++ public void setFloating(boolean b, Point p) ++ { ++ // FIXME: use p for something. It's not location ++ // since we already have setFloatingLocation. ++ floatFrame.setVisible(b); ++ } ++ ++ /** ++ * This method sets the color displayed when the JToolBar is not in a ++ * dockable area. ++ * ++ * @param c The floating color. ++ */ ++ public void setFloatingColor(Color c) ++ { ++ floatingColor = c; ++ } ++ ++ /** ++ * This method sets the floating location of the JToolBar. ++ * ++ * @param x The x coordinate for the floating frame. ++ * @param y The y coordinate for the floating frame. ++ */ ++ public void setFloatingLocation(int x, int y) ++ { ++ // x,y are the coordinates of the new JFrame created to store the toolbar ++ // XXX: The floating location is bogus is not floating. ++ floatFrame.setLocation(x, y); ++ floatFrame.invalidate(); ++ floatFrame.validate(); ++ floatFrame.repaint(); ++ } ++ ++ /** ++ * This is a convenience method for changing the orientation of the ++ * JToolBar. ++ * ++ * @param orientation The new orientation. ++ */ ++ public void setOrientation(int orientation) ++ { ++ toolBar.setOrientation(orientation); ++ } ++ ++ /** ++ * This method changes the child components to have rollover borders if the ++ * given parameter is true. Otherwise, the components are set to have non ++ * rollover borders. ++ * ++ * @param rollover Whether the children will have rollover borders. ++ */ ++ public void setRolloverBorders(boolean rollover) ++ { ++ if (rollover) ++ installRolloverBorders(toolBar); ++ else ++ installNonRolloverBorders(toolBar); ++ } ++ ++ /** ++ * This method uninstall UI installed components from the JToolBar. ++ */ ++ protected void uninstallComponents() ++ { ++ installNormalBorders(toolBar); ++ borders = null; ++ rolloverBorder = null; ++ nonRolloverBorder = null; ++ cachedBounds = null; ++ ++ floatFrame = null; ++ dragWindow = null; ++ } ++ ++ /** ++ * This method removes the defaults installed by the Look and Feel. ++ */ ++ protected void uninstallDefaults() ++ { ++ toolBar.setBackground(null); ++ toolBar.setForeground(null); ++ toolBar.setFont(null); ++ ++ dockingBorderColor = null; ++ dockingColor = null; ++ floatingBorderColor = null; ++ floatingColor = null; ++ } ++ ++ /** ++ * This method uninstalls keyboard actions installed by the UI. ++ */ ++ protected void uninstallKeyboardActions() ++ { ++ // FIXME: implement. ++ } ++ ++ /** ++ * This method uninstalls listeners installed by the UI. ++ */ ++ protected void uninstallListeners() ++ { ++ toolBar.removeFocusListener(toolBarFocusListener); ++ toolBarFocusListener = null; ++ ++ floatFrame.removeWindowListener(windowListener); ++ windowListener = null; ++ ++ toolBar.removeContainerListener(toolBarContListener); ++ toolBarContListener = null; ++ ++ toolBar.removeMouseMotionListener(dockingListener); ++ toolBar.removeMouseListener(dockingListener); ++ dockingListener = null; ++ } ++ ++ /** ++ * This method uninstalls the UI. ++ * ++ * @param c The JComponent that is having this UI removed. ++ */ ++ public void uninstallUI(JComponent c) ++ { ++ uninstallKeyboardActions(); ++ uninstallListeners(); ++ uninstallComponents(); ++ uninstallDefaults(); ++ toolBar = null; ++ } ++ ++ /** ++ * This is the MouseHandler class that allows the user to drag the JToolBar ++ * in and out of the parent and dock it if it can. ++ */ ++ protected class DockingListener implements MouseInputListener ++ { ++ /** Whether the JToolBar is being dragged. */ ++ protected boolean isDragging; ++ ++ /** ++ * The origin point. This point is saved from the beginning press and is ++ * used until the end of the drag session. ++ */ ++ protected Point origin; ++ ++ /** The JToolBar being dragged. */ ++ protected JToolBar toolBar; ++ ++ /** ++ * Creates a new DockingListener object. ++ * ++ * @param t The JToolBar this DockingListener is being used for. ++ */ ++ public DockingListener(JToolBar t) ++ { ++ toolBar = t; ++ } ++ ++ /** ++ * This method is called when the mouse is clicked. ++ * ++ * @param e The MouseEvent. ++ */ ++ public void mouseClicked(MouseEvent e) ++ { ++ // Don't care. ++ } ++ ++ /** ++ * This method is called when the mouse is dragged. It delegates the drag ++ * painting to the dragTo method. ++ * ++ * @param e The MouseEvent. ++ */ ++ public void mouseDragged(MouseEvent e) ++ { ++ if (isDragging) ++ dragTo(e.getPoint(), origin); ++ } ++ ++ /** ++ * This method is called when the mouse enters the JToolBar. ++ * ++ * @param e The MouseEvent. ++ */ ++ public void mouseEntered(MouseEvent e) ++ { ++ // Don't care (yet). ++ } ++ ++ /** ++ * This method is called when the mouse exits the JToolBar. ++ * ++ * @param e The MouseEvent. ++ */ ++ public void mouseExited(MouseEvent e) ++ { ++ // Don't care (yet). ++ } ++ ++ /** ++ * This method is called when the mouse is moved in the JToolBar. ++ * ++ * @param e The MouseEvent. ++ */ ++ public void mouseMoved(MouseEvent e) ++ { ++ } ++ ++ /** ++ * This method is called when the mouse is pressed in the JToolBar. If the ++ * press doesn't occur in a place where it causes the JToolBar to be ++ * dragged, it returns. Otherwise, it starts a drag session. ++ * ++ * @param e The MouseEvent. ++ */ ++ public void mousePressed(MouseEvent e) ++ { ++ if (! toolBar.isFloatable()) ++ return; ++ ++ Point ssd = e.getPoint(); ++ Insets insets = toolBar.getInsets(); ++ ++ // Verify that this click occurs in the top inset. ++ if (toolBar.getOrientation() == SwingConstants.HORIZONTAL) ++ { ++ if (e.getX() > insets.left) ++ return; ++ } ++ else ++ { ++ if (e.getY() > insets.top) ++ return; ++ } ++ ++ origin = new Point(0, 0); ++ SwingUtilities.convertPointToScreen(ssd, toolBar); ++ ++ if (! (SwingUtilities.getAncestorOfClass(Window.class, toolBar) instanceof UIResource)) ++ // Need to know who keeps the toolBar if it gets dragged back into it. ++ origParent = toolBar.getParent(); ++ ++ SwingUtilities.convertPointToScreen(origin, toolBar); ++ ++ isDragging = true; ++ ++ if (dragWindow != null) ++ dragWindow.setOffset(new Point(e.getX(), e.getY())); ++ ++ dragTo(e.getPoint(), origin); ++ } ++ ++ /** ++ * This method is called when the mouse is released from the JToolBar. ++ * ++ * @param e The MouseEvent. ++ */ ++ public void mouseReleased(MouseEvent e) ++ { ++ if (! isDragging || ! toolBar.isFloatable()) ++ return; ++ ++ isDragging = false; ++ floatAt(e.getPoint(), origin); ++ dragWindow.hide(); ++ } ++ } ++ ++ /** ++ * This is the window that appears when the JToolBar is being dragged ++ * around. ++ */ ++ protected class DragWindow extends Window ++ { ++ /** ++ * The current border color. It changes depending on whether the JToolBar ++ * is over a place that allows it to dock. ++ */ ++ private Color borderColor; ++ ++ /** The between the mouse and the top left corner of the window. */ ++ private Point offset; ++ ++ /** ++ * Creates a new DragWindow object. ++ */ ++ private DragWindow() ++ { ++ super(owner); ++ } ++ ++ /** ++ * The color that the border should be. ++ * ++ * @return The border color. ++ */ ++ public Color getBorderColor() ++ { ++ if (borderColor == null) ++ return Color.BLACK; ++ ++ return borderColor; ++ } ++ ++ /** ++ * This method returns the insets for the DragWindow. ++ * ++ * @return The insets for the DragWindow. ++ */ ++ public Insets getInsets() ++ { ++ // This window has no decorations, so insets are empty. ++ return new Insets(0, 0, 0, 0); ++ } ++ ++ /** ++ * This method returns the mouse offset from the top left corner of the ++ * DragWindow. ++ * ++ * @return The mouse offset. ++ */ ++ public Point getOffset() ++ { ++ return offset; ++ } ++ ++ /** ++ * This method paints the DragWindow. ++ * ++ * @param g The Graphics object to paint with. ++ */ ++ public void paint(Graphics g) ++ { ++ // No visiting children necessary. ++ Color saved = g.getColor(); ++ Rectangle b = getBounds(); ++ ++ g.setColor(getBorderColor()); ++ g.drawRect(0, 0, b.width - 1, b.height - 1); ++ ++ g.setColor(saved); ++ } ++ ++ /** ++ * This method changes the border color. ++ * ++ * @param c The new border color. ++ */ ++ public void setBorderColor(Color c) ++ { ++ borderColor = c; ++ } ++ ++ /** ++ * This method changes the mouse offset. ++ * ++ * @param p The new mouse offset. ++ */ ++ public void setOffset(Point p) ++ { ++ offset = p; ++ } ++ ++ /** ++ * FIXME: Do something. ++ * ++ * @param o DOCUMENT ME! ++ */ ++ public void setOrientation(int o) ++ { ++ // FIXME: implement. ++ } ++ } ++ ++ /** ++ * This helper class listens for Window events from the floatable window and ++ * if it is closed, returns the JToolBar to the last known good location. ++ */ ++ protected class FrameListener extends WindowAdapter ++ { ++ /** ++ * This method is called when the floating window is closed. ++ * ++ * @param e The WindowEvent. ++ */ ++ public void windowClosing(WindowEvent e) ++ { ++ Container parent = toolBar.getParent(); ++ parent.remove(toolBar); ++ ++ if (origParent != null) ++ { ++ origParent.add(toolBar, ++ (constraintBeforeFloating != null) ++ ? constraintBeforeFloating : BorderLayout.NORTH); ++ toolBar.setOrientation(lastGoodOrientation); ++ } ++ ++ origParent.invalidate(); ++ origParent.validate(); ++ origParent.repaint(); ++ } ++ } ++ ++ /** ++ * This helper class listens for PropertyChangeEvents from the JToolBar. ++ */ ++ protected class PropertyListener implements PropertyChangeListener ++ { ++ /** ++ * This method is called when a property from the JToolBar is changed. ++ * ++ * @param e The PropertyChangeEvent. ++ */ ++ public void propertyChange(PropertyChangeEvent e) ++ { ++ // FIXME: need name properties so can change floatFrame title. ++ if (e.getPropertyName().equals(JToolBar.ROLLOVER_CHANGED_PROPERTY)) ++ setRolloverBorders(toolBar.isRollover()); ++ } ++ } ++ ++ /** ++ * This helper class listens for components added to and removed from the ++ * JToolBar. ++ */ ++ protected class ToolBarContListener implements ContainerListener ++ { ++ /** ++ * This method is responsible for setting rollover or non rollover for new ++ * buttons added to the JToolBar. ++ * ++ * @param e The ContainerEvent. ++ */ ++ public void componentAdded(ContainerEvent e) ++ { ++ if (e.getChild() instanceof JButton) ++ { ++ JButton b = (JButton) e.getChild(); ++ ++ if (b.getBorder() != null) ++ borders.put(b, b.getBorder()); ++ } ++ ++ if (isRolloverBorders()) ++ setBorderToRollover(e.getChild()); ++ else ++ setBorderToNonRollover(e.getChild()); ++ ++ cachedBounds = toolBar.getPreferredSize(); ++ cachedOrientation = toolBar.getOrientation(); ++ } ++ ++ /** ++ * This method is responsible for giving the child components their ++ * original borders when they are removed. ++ * ++ * @param e The ContainerEvent. ++ */ ++ public void componentRemoved(ContainerEvent e) ++ { ++ setBorderToNormal(e.getChild()); ++ cachedBounds = toolBar.getPreferredSize(); ++ cachedOrientation = toolBar.getOrientation(); ++ } ++ } ++ ++ /** ++ * This is the floating window that is returned when getFloatingWindow is ++ * called. ++ */ ++ private class ToolBarDialog extends JDialog implements UIResource ++ { ++ /** ++ * Creates a new ToolBarDialog object with the name given by the JToolBar. ++ */ ++ public ToolBarDialog() ++ { ++ super(); ++ setName((toolBar.getName() != null) ? toolBar.getName() : ""); ++ } ++ } ++ ++ /** ++ * DOCUMENT ME! ++ */ ++ protected class ToolBarFocusListener implements FocusListener ++ { ++ /** ++ * Creates a new ToolBarFocusListener object. ++ */ ++ protected ToolBarFocusListener() ++ { ++ // FIXME: implement. ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param e DOCUMENT ME! ++ */ ++ public void focusGained(FocusEvent e) ++ { ++ // FIXME: implement. ++ } ++ ++ /** ++ * DOCUMENT ME! ++ * ++ * @param e DOCUMENT ME! ++ */ ++ public void focusLost(FocusEvent e) ++ { ++ // FIXME: implement. ++ } ++ } ++ ++ /** ++ * This helper class acts as the border for the JToolBar. ++ */ ++ private static class ToolBarBorder implements Border ++ { ++ /** The size of the larger, draggable side of the border. */ ++ private static int offset = 10; ++ ++ /** The other sides. */ ++ private static int regular = 2; ++ ++ /** ++ * This method returns the border insets for the JToolBar. ++ * ++ * @param c The Component to find insets for. ++ * ++ * @return The border insets. ++ */ ++ public Insets getBorderInsets(Component c) ++ { ++ if (c instanceof JToolBar) ++ { ++ JToolBar tb = (JToolBar) c; ++ int orientation = tb.getOrientation(); ++ ++ if (! tb.isFloatable()) ++ return new Insets(regular, regular, regular, regular); ++ else if (orientation == SwingConstants.HORIZONTAL) ++ return new Insets(regular, offset, regular, regular); ++ else ++ return new Insets(offset, regular, regular, regular); ++ } ++ ++ return new Insets(0, 0, 0, 0); ++ } ++ ++ /** ++ * This method returns whether the border is opaque. ++ * ++ * @return Whether the border is opaque. ++ */ ++ public boolean isBorderOpaque() ++ { ++ return false; ++ } ++ ++ /** ++ * This method paints the ribbed area of the border. ++ * ++ * @param g The Graphics object to paint with. ++ * @param x The x coordinate of the area. ++ * @param y The y coordinate of the area. ++ * @param w The width of the area. ++ * @param h The height of the area. ++ * @param size The size of the bump. ++ * @param c The color of the bumps. ++ */ ++ private void paintBumps(Graphics g, int x, int y, int w, int h, int size, ++ Color c) ++ { ++ Color saved = g.getColor(); ++ g.setColor(c); ++ ++ int hgap = 2 * size; ++ int vgap = 4 * size; ++ int count = 0; ++ ++ for (int i = x; i < (w + x); i += hgap) ++ for (int j = ((count++ % 2) == 0) ? y : (y + (2 * size)); j < (h + y); ++ j += vgap) ++ g.fillRect(i, j, size, size); ++ ++ g.setColor(saved); ++ } ++ ++ /** ++ * This method paints the border around the given Component. ++ * ++ * @param c The Component whose border is being painted. ++ * @param g The Graphics object to paint with. ++ * @param x The x coordinate of the component. ++ * @param y The y coordinate of the component. ++ * @param width The width of the component. ++ * @param height The height of the component. ++ */ ++ public void paintBorder(Component c, Graphics g, int x, int y, int width, ++ int height) ++ { ++ if (c instanceof JToolBar) ++ { ++ JToolBar tb = (JToolBar) c; ++ ++ int orientation = tb.getOrientation(); ++ ++ if (orientation == SwingConstants.HORIZONTAL) ++ { ++ paintBumps(g, x, y, offset, height, 1, Color.WHITE); ++ paintBumps(g, x + 1, y + 1, offset - 1, height - 1, 1, Color.GRAY); ++ } ++ else ++ { ++ paintBumps(g, x, y, width, offset, 1, Color.WHITE); ++ paintBumps(g, x + 1, y + 1, width - 1, offset - 1, 1, Color.GRAY); ++ } ++ } ++ } ++ } ++} +Index: javax/swing/plaf/basic/BasicToolTipUI.java +=================================================================== +RCS file: javax/swing/plaf/basic/BasicToolTipUI.java +diff -N javax/swing/plaf/basic/BasicToolTipUI.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/BasicToolTipUI.java 6 Sep 2004 16:36:08 -0000 +@@ -0,0 +1,287 @@ ++/* BasicToolTipUI.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. ++ ++ Linking this library statically or dynamically with other modules is ++ making a combined work based on this library. Thus, the terms and ++ conditions of the GNU General Public License cover the whole ++ combination. ++ ++ As a special exception, the copyright holders of this library give you ++ permission to link this library with independent modules to produce an ++ executable, regardless of the license terms of these independent ++ modules, and to copy and distribute the resulting executable under ++ terms of your choice, provided that you also meet, for each linked ++ independent module, the terms and conditions of the license of that ++ module. An independent module is a module which is not derived from ++ or based on this library. If you modify this library, you may extend ++ this exception to your version of the library, but you are not ++ obligated to do so. If you do not wish to do so, delete this ++ exception statement from your version. */ ++ ++package javax.swing.plaf.basic; ++ ++import java.awt.Color; ++import java.awt.Component; ++import java.awt.Dimension; ++import java.awt.FontMetrics; ++import java.awt.Graphics; ++import java.awt.Insets; ++import java.awt.Rectangle; ++import javax.swing.JComponent; ++import javax.swing.JToolTip; ++import javax.swing.SwingConstants; ++import javax.swing.SwingUtilities; ++import javax.swing.UIDefaults; ++import javax.swing.UIManager; ++import javax.swing.border.Border; ++import javax.swing.plaf.ComponentUI; ++import javax.swing.plaf.ToolTipUI; ++ ++ ++/** ++ * This is the Basic Look and Feel UI class for JToolTip. ++ */ ++public class BasicToolTipUI extends ToolTipUI ++{ ++ /** The default Border around the JToolTip. */ ++ private static Border defaultBorder = new Border() ++ { ++ // FIXME: This needs to go into Basic Look and Feel ++ // defaults. ++ ++ /** ++ * This method returns the border insets. ++ * ++ * @param c The Component to find Border insets for. ++ * ++ * @return The Border insets. ++ */ ++ public Insets getBorderInsets(Component c) ++ { ++ return new Insets(4, 4, 4, 4); ++ } ++ ++ /** ++ * This method returns whether the border is opaque. ++ * ++ * @return Whether the border is opaque. ++ */ ++ public boolean isBorderOpaque() ++ { ++ return false; ++ } ++ ++ /** ++ * This method paints the border. ++ * ++ * @param c The Component to paint this border around. ++ * @param g The Graphics object to paint with. ++ * @param x The x coordinate to start painting at. ++ * @param y The y coordinate to start painting at. ++ * @param w The width of the Component. ++ * @param y The height of the Component. ++ */ ++ public void paintBorder(Component c, Graphics g, int x, int y, int w, ++ int h) ++ { ++ Color saved = g.getColor(); ++ g.setColor(Color.BLACK); ++ ++ g.drawRect(0, 0, w - 1, h - 1); ++ ++ g.setColor(saved); ++ } ++ }; ++ ++ /** The shared instance of BasicToolTipUI used for all ToolTips. */ ++ private static BasicToolTipUI shared; ++ ++ /** ++ * Creates a new BasicToolTipUI object. ++ */ ++ public BasicToolTipUI() ++ { ++ super(); ++ } ++ ++ /** ++ * This method creates a new BasicToolTip UI for the given ++ * JComponent. ++ * ++ * @param c The JComponent to create a UI for. ++ * ++ * @return A BasicToolTipUI that can be used by the given JComponent. ++ */ ++ public static ComponentUI createUI(JComponent c) ++ { ++ if (shared == null) ++ shared = new BasicToolTipUI(); ++ return shared; ++ } ++ ++ /** ++ * This method returns the msximum size of the given JComponent. ++ * ++ * @param c The JComponent to find a maximum size for. ++ * ++ * @return The maximum size. ++ */ ++ public Dimension getMaximumSize(JComponent c) ++ { ++ return getPreferredSize(c); ++ } ++ ++ /** ++ * This method returns the minimum size of the given JComponent. ++ * ++ * @param c The JComponent to find a minimum size for. ++ * ++ * @return The minimum size. ++ */ ++ public Dimension getMinimumSize(JComponent c) ++ { ++ return getPreferredSize(c); ++ } ++ ++ /** ++ * This method returns the preferred size of the given JComponent. ++ * ++ * @param c The JComponent to find a preferred size for. ++ * ++ * @return The preferred size. ++ */ ++ public Dimension getPreferredSize(JComponent c) ++ { ++ JToolTip tip = (JToolTip) c; ++ Rectangle vr = new Rectangle(); ++ Rectangle ir = new Rectangle(); ++ Rectangle tr = new Rectangle(); ++ Insets insets = tip.getInsets(); ++ FontMetrics fm = tip.getToolkit().getFontMetrics(tip.getFont()); ++ SwingUtilities.layoutCompoundLabel(tip, fm, tip.getTipText(), null, ++ SwingConstants.CENTER, ++ SwingConstants.CENTER, ++ SwingConstants.CENTER, ++ SwingConstants.CENTER, vr, ir, tr, 0); ++ return new Dimension(insets.left + tr.width + insets.right, ++ insets.top + tr.height + insets.bottom); ++ } ++ ++ /** ++ * This method installs the defaults for the given JComponent. ++ * ++ * @param c The JComponent to install defaults for. ++ */ ++ protected void installDefaults(JComponent c) ++ { ++ UIDefaults defaults = UIManager.getLookAndFeelDefaults(); ++ c.setBackground(defaults.getColor("ToolTip.background")); ++ c.setForeground(defaults.getColor("ToolTip.foreground")); ++ c.setFont(defaults.getFont("ToolTip.font")); ++ c.setBorder(defaultBorder); ++ } ++ ++ /** ++ * This method installs the listeners for the given JComponent. ++ * ++ * @param c The JComponent to install listeners for. ++ */ ++ protected void installListeners(JComponent c) ++ { ++ } ++ ++ /** ++ * This method installs the UI for the given JComponent. ++ * ++ * @param c The JComponent to install the UI for. ++ */ ++ public void installUI(JComponent c) ++ { ++ c.setOpaque(true); ++ installDefaults(c); ++ installListeners(c); ++ } ++ ++ /** ++ * This method paints the given JComponent with the given Graphics object. ++ * ++ * @param g The Graphics object to paint with. ++ * @param c The JComponent to paint. ++ */ ++ public void paint(Graphics g, JComponent c) ++ { ++ JToolTip tip = (JToolTip) c; ++ ++ String text = tip.getTipText(); ++ if (text == null) ++ return; ++ ++ Rectangle vr = new Rectangle(); ++ vr = SwingUtilities.calculateInnerArea(tip, vr); ++ Rectangle ir = new Rectangle(); ++ Rectangle tr = new Rectangle(); ++ FontMetrics fm = tip.getToolkit().getFontMetrics(tip.getFont()); ++ SwingUtilities.layoutCompoundLabel(tip, fm, tip.getTipText(), null, ++ SwingConstants.CENTER, ++ SwingConstants.CENTER, ++ SwingConstants.CENTER, ++ SwingConstants.CENTER, vr, ir, tr, 0); ++ ++ Color saved = g.getColor(); ++ g.setColor(Color.BLACK); ++ ++ g.drawString(text, vr.x, vr.y + fm.getAscent()); ++ ++ g.setColor(saved); ++ } ++ ++ /** ++ * This method uninstalls the defaults for the given JComponent. ++ * ++ * @param c The JComponent to uninstall defaults for. ++ */ ++ protected void uninstallDefaults(JComponent c) ++ { ++ c.setForeground(null); ++ c.setBackground(null); ++ c.setFont(null); ++ c.setBorder(null); ++ } ++ ++ /** ++ * This method uninstalls listeners for the given JComponent. ++ * ++ * @param c The JComponent to uninstall listeners for. ++ */ ++ protected void uninstallListeners(JComponent c) ++ { ++ } ++ ++ /** ++ * This method uninstalls the UI for the given JComponent. ++ * ++ * @param c The JComponent to uninstall. ++ */ ++ public void uninstallUI(JComponent c) ++ { ++ uninstallDefaults(c); ++ uninstallListeners(c); ++ } ++} +Index: javax/swing/plaf/basic/BasicViewportUI.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/plaf/basic/BasicViewportUI.java,v +retrieving revision 1.3 +diff -u -r1.3 BasicViewportUI.java +--- javax/swing/plaf/basic/BasicViewportUI.java 10 Jan 2004 21:59:30 -0000 1.3 ++++ javax/swing/plaf/basic/BasicViewportUI.java 6 Sep 2004 16:36:08 -0000 +@@ -38,36 +38,154 @@ + + package javax.swing.plaf.basic; + ++import java.awt.Component; + import java.awt.Dimension; + import java.awt.Graphics; ++import java.awt.Image; ++import java.awt.Point; ++import java.awt.Rectangle; ++import java.awt.image.ImageObserver; + import javax.swing.JComponent; ++import javax.swing.JViewport; ++import javax.swing.ViewportLayout; ++import javax.swing.event.ChangeEvent; ++import javax.swing.event.ChangeListener; + import javax.swing.plaf.ComponentUI; + import javax.swing.plaf.ViewportUI; + + public class BasicViewportUI extends ViewportUI + { + +- public static ComponentUI createUI(final JComponent c) ++ ChangeListener changeListener; ++ Image backingStoreImage; ++ int backingStoreWidth = -1; ++ int backingStoreHeight = -1; ++ ++ class ChangeHandler implements ChangeListener ++ { ++ public void stateChanged(ChangeEvent event) + { +- return new BasicViewportUI(); ++ JViewport v = (JViewport) event.getSource(); ++ v.repaint(); + } ++ } + +- +- public void installUI(final JComponent c) +- { +- super.installUI(c); +- } ++ void installDefaults(JComponent c) ++ { ++ c.setOpaque(true); ++ } ++ ++ void uninstallDefaults(JComponent c) ++ { ++ } ++ ++ void installListeners(JComponent c) ++ { ++ ((JViewport)c).addChangeListener(changeListener); ++ } ++ ++ void uninstallListeners(JComponent c) ++ { ++ ((JViewport)c).removeChangeListener(changeListener); ++ } ++ ++ public BasicViewportUI() ++ { ++ changeListener = new ChangeHandler(); ++ } ++ ++ public static ComponentUI createUI(JComponent c) ++ { ++ return new BasicViewportUI(); ++ } ++ ++ public void installUI(JComponent c) ++ { ++ super.installUI(c); ++ c.setLayout(new ViewportLayout()); ++ installListeners(c); ++ } ++ ++ public void uninstallUI(JComponent c) ++ { ++ uninstallListeners(c); ++ } + + +- public Dimension getPreferredSize(JComponent c) +- { +- Dimension d = new Dimension(100,100); +- System.out.println("BasicViewportUI->preff->"+d); +- return d; +- } ++ public Dimension getPreferredSize(JComponent c) ++ { ++ // let the ViewportLayout decide ++ return null; ++ } + +- public void paint(Graphics g, JComponent c) +- { +- System.out.println("BasicViewportUI->paint->"+c); +- } ++ public void paint(Graphics g, JComponent c) ++ { ++ ++ JViewport v = (JViewport)c; ++ Component view = v.getView(); ++ ++ if (view == null) ++ return; ++ ++ Point pos = v.getViewPosition(); ++ Rectangle viewBounds = view.getBounds(); ++ Rectangle portBounds = v.getBounds(); ++ ++ if (viewBounds.width == 0 ++ || viewBounds.height == 0 ++ || portBounds.width == 0 ++ || portBounds.height == 0) ++ return; ++ ++ if (backingStoreImage == null ++ || backingStoreWidth != viewBounds.width ++ || backingStoreHeight != viewBounds.height) ++ { ++ backingStoreImage = v.createImage(viewBounds.width, viewBounds.height); ++ backingStoreWidth = viewBounds.width; ++ backingStoreHeight = viewBounds.height; ++ } ++ ++ Graphics g2 = backingStoreImage.getGraphics(); ++ ++ ++ if (c.getBackground() != null) ++ { ++ // fill the backing store background ++ java.awt.Color save = g2.getColor(); ++ g2.setColor(c.getBackground()); ++ g2.fillRect (0, 0, backingStoreWidth, backingStoreHeight); ++ g2.setColor(save); ++ ++ // fill the viewport background ++ save = g.getColor(); ++ g.setColor(c.getBackground()); ++ g.fillRect (0, 0, portBounds.width, portBounds.height); ++ g.setColor(save); ++ ++ } ++ else ++ { ++ // clear the backing store background ++ g2.clearRect(0, 0, backingStoreWidth, backingStoreHeight); ++ ++ // clear the viewport background ++ g.clearRect(0, 0, portBounds.width, portBounds.height); ++ } ++ ++ g2.setClip(g.getClipBounds()); ++ g2.translate(-pos.x, -pos.y); ++ try ++ { ++ view.paint(g2); ++ } ++ finally ++ { ++ g2.translate(pos.x, pos.y); ++ } ++ g2 = null; ++ g.drawImage(backingStoreImage, ++ 0, 0, ++ (ImageObserver)null); ++ } + } +Index: javax/swing/plaf/basic/ComboPopup.java +=================================================================== +RCS file: javax/swing/plaf/basic/ComboPopup.java +diff -N javax/swing/plaf/basic/ComboPopup.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/plaf/basic/ComboPopup.java 6 Sep 2004 16:36:08 -0000 +@@ -0,0 +1,103 @@ ++/* ComboPopup.java ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.plaf.basic; ++ ++import java.awt.event.KeyListener; ++import java.awt.event.MouseEvent; ++import java.awt.event.MouseListener; ++import java.awt.event.MouseMotionListener; ++import javax.swing.JList; ++ ++ ++public interface ComboPopup ++{ ++ /** ++ * This method display popup menu containing list of JComboBox's items to ++ * the screen ++ */ ++ void show(); ++ ++ /** ++ * This method hides popup menu with list of JComboBox's item from the ++ * screen ++ */ ++ void hide(); ++ ++ /** ++ * Retursn true if popup menu with JComboBOx's item is currently visible on ++ * the screen and false otherwise ++ * ++ * @return true if JComboBox's popup menu with list of items is currently ++ * visible on the screen and false otherwise. ++ */ ++ boolean isVisible(); ++ ++ /** ++ * Return JList that is used to draw cells of the JComboBox. ++ * ++ * @return JList that is used to draw cells of the JcomboBox ++ */ ++ JList getList(); ++ ++ /** ++ * This method returns MouseListener that listen's to mouse events occuring ++ * in the combo box ++ * ++ * @return MouseListenere ++ */ ++ MouseListener getMouseListener(); ++ ++ /** ++ * This method returns MouseListener that listen's to mouse events occuring ++ * in the combo box. ++ * ++ * @return MouseMotionListener ++ */ ++ MouseMotionListener getMouseMotionListener(); ++ ++ /** ++ * This method returns KeyListener that listen's to key events occuring in ++ * the combo box. ++ * ++ * @return KeyListener ++ */ ++ KeyListener getKeyListener(); ++ ++ /* This method removes any listeners that were installed */ ++ void uninstallingUI(); ++} +Index: javax/swing/plaf/metal/MetalLookAndFeel.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/plaf/metal/MetalLookAndFeel.java,v +retrieving revision 1.4 +diff -u -r1.4 MetalLookAndFeel.java +--- javax/swing/plaf/metal/MetalLookAndFeel.java 12 Oct 2003 13:26:01 -0000 1.4 ++++ javax/swing/plaf/metal/MetalLookAndFeel.java 6 Sep 2004 16:36:09 -0000 +@@ -40,7 +40,6 @@ + package javax.swing.plaf.metal; + + import javax.swing.UIDefaults; +-import javax.swing.plaf.basic.BasicDefaults; + import javax.swing.plaf.basic.BasicLookAndFeel; + + public class MetalLookAndFeel extends BasicLookAndFeel +@@ -61,7 +60,7 @@ + public UIDefaults getDefaults() + { + if (LAF_defaults == null) +- LAF_defaults = new BasicDefaults(); ++ LAF_defaults = super.getDefaults(); + + // Returns the default values for this look and feel. + return LAF_defaults; +Index: javax/swing/table/AbstractTableModel.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/table/AbstractTableModel.java,v +retrieving revision 1.5 +diff -u -r1.5 AbstractTableModel.java +--- javax/swing/table/AbstractTableModel.java 8 Oct 2003 15:29:52 -0000 1.5 ++++ javax/swing/table/AbstractTableModel.java 6 Sep 2004 16:36:09 -0000 +@@ -35,7 +35,6 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing.table; + + import java.io.Serializable; +@@ -271,25 +270,4 @@ + { + return listenerList.getListeners (listenerType); + } +- +- /** +- * getValueAt +- * @param value0 TODO +- * @param value1 TODO +- * @return Object +- */ +- public abstract Object getValueAt (int row, int column); +- +- /** +- * getColumnCount +- * @return int +- */ +- public abstract int getColumnCount(); +- +- /** +- * getRowCount +- * @return int +- */ +- public abstract int getRowCount(); +- +-} // AbstractTableModel ++} +Index: javax/swing/table/DefaultTableCellRenderer.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/table/DefaultTableCellRenderer.java,v +retrieving revision 1.3 +diff -u -r1.3 DefaultTableCellRenderer.java +--- javax/swing/table/DefaultTableCellRenderer.java 11 Jun 2003 13:20:41 -0000 1.3 ++++ javax/swing/table/DefaultTableCellRenderer.java 6 Sep 2004 16:36:09 -0000 +@@ -1,5 +1,5 @@ + /* DefaultTableCellRenderer.java +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,40 +35,194 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing.table; + ++import java.awt.Color; + import java.awt.Component; ++import java.awt.Rectangle; + import java.io.Serializable; + import javax.swing.JLabel; + import javax.swing.JTable; + import javax.swing.border.Border; ++import javax.swing.border.EmptyBorder; + + /** +- * STUBBED ++ * Class to display every cells. + */ + public class DefaultTableCellRenderer extends JLabel + implements TableCellRenderer, Serializable + { + static final long serialVersionUID = 7878911414715528324L; + ++ protected static Border noFocusBorder = new EmptyBorder(0, 0, 0, 0); ++ + public static class UIResource extends DefaultTableCellRenderer + implements javax.swing.plaf.UIResource + { + public UIResource() + { + } +- } // class UIResource ++ } + ++ /** ++ * Creates a default table cell renderer with an empty border. ++ */ + public DefaultTableCellRenderer() + { ++ super(); ++ } ++ ++ /** ++ * Assign the unselected-foreground. ++ * ++ * @param c the color to assign ++ */ ++ public void setForeground(Color c) ++ { ++ super.setForeground(c); + } + ++ /** ++ * Assign the unselected-background. ++ * ++ * @param c the color to assign ++ */ ++ public void setBackground(Color c) ++ { ++ super.setBackground(c); ++ } ++ ++ /** ++ * Look and feel has changed. ++ * ++ *

    Replaces the current UI object with the latest version from ++ * the UIManager.

    ++ */ ++ public void updateUI() ++ { ++ super.updateUI(); ++ } ++ ++ /** ++ * Get the string value of the object and pass it to setText(). ++ * ++ * @param table the JTable ++ * @param value the value of the object ++ * @param isSelected is the cell selected? ++ * @param hasFocus has the cell the focus? ++ * @param row the row to render ++ * @param column the cell to render ++ * ++ * @return this component (the default table cell renderer) ++ */ + public Component getTableCellRendererComponent(JTable table, Object value, + boolean isSelected, + boolean hasFocus, + int row, int column) + { +- return null; ++ if (value!=null) ++ super.setText(value.toString()); ++ ++ setOpaque(true); ++ if (isSelected) ++ { ++ setBackground(table.getSelectionBackground()); ++ setForeground(table.getSelectionForeground()); ++ } ++ else ++ { ++ setBackground(table.getBackground()); ++ setForeground(table.getForeground()); ++ } ++ ++ setEnabled(table.isEnabled()); ++ setFont(table.getFont()); ++ return this; ++ } ++ ++ /** ++ * Overriden for performance. ++ * ++ *

    This method needs to be overridden in a subclass to actually ++ * do something.

    ++ * ++ * @return always true ++ */ ++ public boolean isOpaque() ++ { ++ return true; ++ } ++ ++ /** ++ * Overriden for performance. ++ * ++ *

    This method needs to be overridden in a subclass to actually ++ * do something.

    ++ */ ++ public void validate() ++ { ++ // Does nothing. ++ } ++ ++ public void revalidate() ++ { ++ // Does nothing. ++ } ++ ++ /** ++ * Overriden for performance. ++ * ++ *

    This method needs to be overridden in a subclass to actually ++ * do something.

    ++ */ ++ public void repaint(long tm, int x, int y, int width, int height) ++ { ++ // Does nothing. ++ } ++ ++ /** ++ * Overriden for performance. ++ * ++ *

    This method needs to be overridden in a subclass to actually ++ * do something.

    ++ */ ++ public void repaint(Rectangle r) ++ { ++ // Does nothing. ++ } ++ ++ /** ++ * Overriden for performance. ++ * ++ *

    This method needs to be overridden in a subclass to actually ++ * do something.

    ++ */ ++ public void firePropertyChange(String propertyName, Object oldValue, ++ Object newValue) ++ { ++ // Does nothing. ++ } ++ ++ /** ++ * Overriden for performance. ++ * ++ *

    This method needs to be overridden in a subclass to actually ++ * do something.

    ++ */ ++ public void firePropertyChange(String propertyName, boolean oldValue, ++ boolean newValue) ++ { ++ // Does nothing. ++ } ++ ++ /** ++ * Sets the String for this cell. ++ * ++ * @param value the string value for this cell; if value is null it ++ * sets the text value to an empty string ++ */ ++ protected void setValue(Object value) ++ { ++ super.setText((value!=null) ? value.toString() : ""); + } +-} // class DefaultTableCellRenderer ++} +Index: javax/swing/table/DefaultTableColumnModel.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/table/DefaultTableColumnModel.java,v +retrieving revision 1.3 +diff -u -r1.3 DefaultTableColumnModel.java +--- javax/swing/table/DefaultTableColumnModel.java 11 Jun 2003 13:20:41 -0000 1.3 ++++ javax/swing/table/DefaultTableColumnModel.java 6 Sep 2004 16:36:09 -0000 +@@ -1,5 +1,5 @@ + /* DefaultTableColumnModel.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,7 +35,6 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing.table; + + import java.beans.PropertyChangeEvent; +@@ -45,6 +44,7 @@ + import java.util.EventListener; + import java.util.Vector; + import javax.swing.ListSelectionModel; ++import javax.swing.DefaultListSelectionModel; + import javax.swing.event.ChangeEvent; + import javax.swing.event.EventListenerList; + import javax.swing.event.ListSelectionEvent; +@@ -52,315 +52,361 @@ + import javax.swing.event.TableColumnModelEvent; + import javax.swing.event.TableColumnModelListener; + ++ + /** + * DefaultTableColumnModel + * @author Andrew Selkirk + * @version 1.0 + */ + public class DefaultTableColumnModel +- implements TableColumnModel, PropertyChangeListener, +- ListSelectionListener, Serializable ++ implements TableColumnModel, PropertyChangeListener, ListSelectionListener, ++ Serializable + { +- static final long serialVersionUID = 6580012493508960512L; +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * tableColumns +- */ +- protected Vector tableColumns; +- +- /** +- * selectionModel +- */ +- protected ListSelectionModel selectionModel; +- +- /** +- * columnMargin +- */ +- protected int columnMargin; +- +- /** +- * listenerList +- */ +- protected EventListenerList listenerList; +- +- /** +- * changeEvent +- */ +- protected transient ChangeEvent changeEvent; +- +- /** +- * columnSelectionAllowed +- */ +- protected boolean columnSelectionAllowed; +- +- /** +- * totalColumnWidth +- */ +- protected int totalColumnWidth; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor DefaultTableColumnModel +- */ +- public DefaultTableColumnModel() { +- // TODO +- } // DefaultTableColumnModel() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * addColumn +- * @param value0 TODO +- */ +- public void addColumn(TableColumn value0) { +- // TODO +- } // addColumn() +- +- /** +- * removeColumn +- * @param value0 TODO +- */ +- public void removeColumn(TableColumn value0) { +- // TODO +- } // removeColumn() +- +- /** +- * moveColumn +- * @param value0 TODO +- * @param value1 TODO +- */ +- public void moveColumn(int value0, int value1) { +- // TODO +- } // moveColumn() ++ private static final long serialVersionUID = 6580012493508960512L; + +- /** +- * setColumnMargin +- * @param value0 TODO +- */ +- public void setColumnMargin(int value0) { +- // TODO +- } // setColumnMargin() ++ /** ++ * tableColumns ++ */ ++ protected Vector tableColumns; ++ ++ /** ++ * selectionModel ++ */ ++ protected ListSelectionModel selectionModel; ++ ++ /** ++ * columnMargin ++ */ ++ protected int columnMargin; ++ ++ /** ++ * listenerList ++ */ ++ protected EventListenerList listenerList = new EventListenerList(); ++ ++ /** ++ * changeEvent ++ */ ++ protected transient ChangeEvent changeEvent = new ChangeEvent(this); ++ ++ /** ++ * columnSelectionAllowed ++ */ ++ protected boolean columnSelectionAllowed; ++ ++ /** ++ * totalColumnWidth ++ */ ++ protected int totalColumnWidth; ++ ++ /** ++ * Constructor DefaultTableColumnModel ++ */ ++ public DefaultTableColumnModel() ++ { ++ tableColumns = new Vector(); ++ setSelectionModel(new DefaultListSelectionModel()); ++ columnMargin = 1; ++ columnSelectionAllowed = false; ++ } ++ ++ /** ++ * addColumn ++ * @param value0 TODO ++ */ ++ public void addColumn(TableColumn col) ++ { ++ tableColumns.add(col); ++ invalidateWidthCache(); ++ } ++ ++ /** ++ * removeColumn ++ * @param value0 TODO ++ */ ++ public void removeColumn(TableColumn col) ++ { ++ tableColumns.remove(col); ++ invalidateWidthCache(); ++ } ++ ++ /** ++ * moveColumn ++ * @param value0 TODO ++ * @param value1 TODO ++ */ ++ public void moveColumn(int i, int j) ++ { ++ Object tmp = tableColumns.get(i); ++ tableColumns.set(i, tableColumns.get(j)); ++ tableColumns.set(j, tmp); ++ } ++ ++ /** ++ * setColumnMargin ++ * @param value0 TODO ++ */ ++ public void setColumnMargin(int m) ++ { ++ columnMargin = m; ++ } + + /** + * getColumnCount +- * @returns int ++ * @return int + */ +- public int getColumnCount() { +- return 0; // TODO +- } // getColumnCount() ++ public int getColumnCount() ++ { ++ return tableColumns.size(); ++ } + + /** + * getColumns +- * @returns Enumeration ++ * @return Enumeration + */ +- public Enumeration getColumns() { +- return null; // TODO +- } // getColumns() ++ public Enumeration getColumns() ++ { ++ return tableColumns.elements(); ++ } + + /** + * getColumnIndex + * @param value0 TODO +- * @returns int +- */ +- public int getColumnIndex(Object value0) { +- return 0; // TODO +- } // getColumnIndex() ++ * @return int ++ */ ++ public int getColumnIndex(Object obj) ++ { ++ return tableColumns.indexOf(obj, 0); ++ } + + /** + * getColumn + * @param value0 TODO +- * @returns TableColumn +- */ +- public TableColumn getColumn(int value0) { +- return null; // TODO +- } // getColumn() ++ * @return TableColumn ++ */ ++ public TableColumn getColumn(int i) ++ { ++ return (TableColumn) tableColumns.get(i); ++ } + + /** + * getColumnMargin +- * @returns int ++ * @return int + */ +- public int getColumnMargin() { +- return 0; // TODO +- } // getColumnMargin() ++ public int getColumnMargin() ++ { ++ return columnMargin; ++ } + + /** + * getColumnIndexAtX + * @param value0 TODO +- * @returns int +- */ +- public int getColumnIndexAtX(int value0) { +- return 0; // TODO +- } // getColumnIndexAtX() ++ * @return int ++ */ ++ public int getColumnIndexAtX(int x) ++ { ++ for (int i = 0; i < tableColumns.size(); ++i) ++ { ++ int w = ((TableColumn)tableColumns.get(i)).getWidth(); ++ if (0 <= x && x < w) ++ return i; ++ else ++ x -= w; ++ } ++ return -1; ++ } + + /** + * getTotalColumnWidth +- * @returns int ++ * @return int + */ +- public int getTotalColumnWidth() { +- return 0; // TODO +- } // getTotalColumnWidth() +- +- /** +- * setSelectionModel +- * @param value0 TODO +- */ +- public void setSelectionModel(ListSelectionModel value0) { +- // TODO +- } // setSelectionModel() ++ public int getTotalColumnWidth() ++ { ++ if (totalColumnWidth == -1) ++ recalcWidthCache(); ++ return totalColumnWidth; ++ } ++ ++ /** ++ * setSelectionModel ++ * @param model TODO ++ * @exception IllegalArgumentException if model is null ++ */ ++ public void setSelectionModel(ListSelectionModel model) ++ { ++ if (model == null) ++ throw new IllegalArgumentException(); ++ ++ selectionModel = model; ++ selectionModel.addListSelectionListener(this); ++ } + + /** + * getSelectionModel +- * @returns ListSelectionModel ++ * @return ListSelectionModel + */ +- public ListSelectionModel getSelectionModel() { +- return null; // TODO +- } // getSelectionModel() +- +- /** +- * setColumnSelectionAllowed +- * @param value0 TODO +- */ +- public void setColumnSelectionAllowed(boolean value0) { +- // TODO +- } // setColumnSelectionAllowed() ++ public ListSelectionModel getSelectionModel() ++ { ++ return selectionModel; ++ } ++ ++ /** ++ * setColumnSelectionAllowed ++ * @param value0 TODO ++ */ ++ public void setColumnSelectionAllowed(boolean a) ++ { ++ columnSelectionAllowed = a; ++ } + + /** + * getColumnSelectionAllowed +- * @returns boolean ++ * @return boolean + */ +- public boolean getColumnSelectionAllowed() { +- return false; // TODO +- } // getColumnSelectionAllowed() ++ public boolean getColumnSelectionAllowed() ++ { ++ return columnSelectionAllowed; ++ } + + /** + * getSelectedColumns +- * @returns int[] ++ * @return int[] + */ +- public int[] getSelectedColumns() { ++ public int[] getSelectedColumns() ++ { + return null; // TODO +- } // getSelectedColumns() ++ } + + /** + * getSelectedColumnCount +- * @returns int ++ * @return int + */ +- public int getSelectedColumnCount() { ++ public int getSelectedColumnCount() ++ { + return 0; // TODO +- } // getSelectedColumnCount() ++ } + +- /** +- * addColumnModelListener +- * @param value0 TODO +- */ +- public void addColumnModelListener(TableColumnModelListener value0) { +- // TODO +- } // addColumnModelListener() ++ /** ++ * addColumnModelListener ++ * @param value0 TODO ++ */ ++ public void addColumnModelListener(TableColumnModelListener listener) ++ { ++ listenerList.add(TableColumnModelListener.class, listener); ++ } + + /** + * removeColumnModelListener + * @param value0 TODO + */ +- public void removeColumnModelListener(TableColumnModelListener value0) { ++ public void removeColumnModelListener(TableColumnModelListener value0) ++ { + // TODO +- } // removeColumnModelListener() ++ } + + /** + * fireColumnAdded + * @param value0 TODO + */ +- protected void fireColumnAdded(TableColumnModelEvent value0) { ++ protected void fireColumnAdded(TableColumnModelEvent value0) ++ { + // TODO +- } // fireColumnAdded() ++ } + + /** + * fireColumnRemoved + * @param value0 TODO + */ +- protected void fireColumnRemoved(TableColumnModelEvent value0) { ++ protected void fireColumnRemoved(TableColumnModelEvent value0) ++ { + // TODO +- } // fireColumnRemoved() ++ } + + /** + * fireColumnMoved + * @param value0 TODO + */ +- protected void fireColumnMoved(TableColumnModelEvent value0) { ++ protected void fireColumnMoved(TableColumnModelEvent value0) ++ { + // TODO +- } // fireColumnMoved() ++ } + +- /** +- * fireColumnSelectionChanged +- * @param value0 TODO +- */ +- protected void fireColumnSelectionChanged(ListSelectionEvent value0) { +- // TODO +- } // fireColumnSelectionChanged() ++ /** ++ * fireColumnSelectionChanged ++ * @param value0 TODO ++ */ ++ protected void fireColumnSelectionChanged(ListSelectionEvent evt) ++ { ++ EventListener [] listeners = getListeners(TableColumnModelListener.class); ++ for (int i = 0; i < listeners.length; ++i) ++ ((TableColumnModelListener)listeners[i]).columnSelectionChanged(evt); ++ } + + /** + * fireColumnMarginChanged + */ +- protected void fireColumnMarginChanged() { ++ protected void fireColumnMarginChanged() ++ { + // TODO +- } // fireColumnMarginChanged() ++ } + + /** + * getListeners + * @param value0 TODO +- * @returns EventListener[] +- */ +- public EventListener[] getListeners(Class value0) { +- return null; // TODO +- } // getListeners() ++ * @return EventListener[] ++ */ ++ public EventListener[] getListeners(Class klass) ++ { ++ return listenerList.getListeners(klass); ++ } + + /** + * propertyChange + * @param value0 TODO + */ +- public void propertyChange(PropertyChangeEvent value0) { ++ public void propertyChange(PropertyChangeEvent value0) ++ { + // TODO +- } // propertyChange() ++ } + + /** + * valueChanged + * @param value0 TODO + */ +- public void valueChanged(ListSelectionEvent value0) { +- // TODO +- } // valueChanged() ++ public void valueChanged(ListSelectionEvent value0) ++ { ++ fireColumnSelectionChanged(value0); ++ } + + /** + * createSelectionModel +- * @returns ListSelectionModel ++ * @return ListSelectionModel + */ +- protected ListSelectionModel createSelectionModel() { ++ protected ListSelectionModel createSelectionModel() ++ { + return null; // TODO +- } // createSelectionModel() ++ } + + /** + * recalcWidthCache + */ +- protected void recalcWidthCache() { +- // TODO +- } // recalcWidthCache() ++ protected void recalcWidthCache() ++ { ++ if (totalColumnWidth == -1) ++ { ++ totalColumnWidth = 0; ++ for (int i = 0; i < tableColumns.size(); ++i) ++ { ++ totalColumnWidth += ((TableColumn)tableColumns.get(i)).getWidth(); ++ } ++ } ++ } + + /** + * invalidateWidthCache + */ +- private void invalidateWidthCache() { +- // TODO +- } // invalidateWidthCache() +- +- +-} // DefaultTableColumnModel +- ++ private void invalidateWidthCache() ++ { ++ totalColumnWidth = -1; ++ } ++} +Index: javax/swing/table/DefaultTableModel.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/table/DefaultTableModel.java,v +retrieving revision 1.4 +diff -u -r1.4 DefaultTableModel.java +--- javax/swing/table/DefaultTableModel.java 12 Oct 2003 13:33:31 -0000 1.4 ++++ javax/swing/table/DefaultTableModel.java 6 Sep 2004 16:36:09 -0000 +@@ -50,445 +50,387 @@ + implements Serializable + { + static final long serialVersionUID = 6680042567037222321L; +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * dataVector +- */ +- protected Vector dataVector; +- +- /** +- * columnIdentifiers +- */ +- protected Vector columnIdentifiers; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor DefaultTableModel +- */ +- public DefaultTableModel() { +- this(0, 0); +- } // DefaultTableModel() +- +- /** +- * Constructor DefaultTableModel +- * @param value0 TODO +- * @param value1 TODO +- */ +- public DefaultTableModel(int numRows, int numColumns) { +- +- // Variables +- int columnIndex; +- Vector defaultNames; +- +- // Create Column Names +- defaultNames = new Vector(); +- for (columnIndex = 0; columnIndex < numColumns; columnIndex++) { +- defaultNames.addElement(super.getColumnName(columnIndex)); +- } // for +- +- // Setup Data +-// setDataVector(defaultNames, numRows); +- +- } // DefaultTableModel() +- +- /** +- * Constructor DefaultTableModel +- * @param value0 TODO +- * @param value1 TODO +- */ +- public DefaultTableModel(Vector columnNames, int numRows) { +- +- // Variables +- Vector data; +- Vector rowData; +- int rowIndex; +- int numColumns; +- +- // Create Data +- data = new Vector(); +- if (columnNames == null) { +- numColumns = 0; +- } else { +- numColumns = columnNames.size(); +- } // if +- for (rowIndex = 0; rowIndex < numRows; rowIndex++) { +- rowData = new Vector(); +- rowData.setSize(numColumns); +- data.addElement(rowData); +- } // for +- +- // Setup Data +- setDataVector(data, columnNames); +- +- } // DefaultTableModel() +- +- /** +- * Constructor DefaultTableModel +- * @param value0 TODO +- * @param value1 TODO +- */ +- public DefaultTableModel(Object[] columnNames, int numRows) { +- this(convertToVector(columnNames), numRows); +- } // DefaultTableModel() +- +- /** +- * Constructor DefaultTableModel +- * @param value0 TODO +- * @param value1 TODO +- */ +- public DefaultTableModel(Vector data, Vector columnNames) { +- setDataVector(data, columnNames); +- } // DefaultTableModel() +- +- /** +- * Constructor DefaultTableModel +- * @param value0 TODO +- * @param value1 TODO +- */ +- public DefaultTableModel(Object[][] data, Object[] columnNames) { +- this(convertToVector(data), convertToVector(columnNames)); +- } // DefaultTableModel() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * getDataVector +- * @returns Vector +- */ +- public Vector getDataVector() { +- return dataVector; +- } // getDataVector() +- +- /** +- * setDataVector +- * @param value0 TODO +- * @param value1 TODO +- */ +- public void setDataVector(Vector data, Vector columnNames) { +- +- // Variables +- int rowIndex; +- int numRows; +- int numColumns; +- Vector columnVector; +- +- // Set Data +- dataVector = data; +- columnIdentifiers = columnNames; +- +- // Check Data +- numRows = data.size(); +- numColumns = columnNames.size(); +- for (rowIndex = 0; rowIndex < numRows; rowIndex++) { +- columnVector = (Vector) dataVector.get(rowIndex); +- columnVector.setSize(numColumns); +- } // for +- +- } // setDataVector() +- +- /** +- * setDataVector +- * @param value0 TODO +- * @param value1 TODO +- */ +- public void setDataVector(Object[][] data, Object[] columnNames) { +- setDataVector(convertToVector(data), convertToVector(columnNames)); +- } // setDataVector() +- +- /** +- * newDataAvailable +- * @param value0 TODO +- */ +- public void newDataAvailable(TableModelEvent event) { +- fireTableChanged(event); +- } // newDataAvailable() +- +- /** +- * newRowsAdded +- * @param value0 TODO +- */ +- public void newRowsAdded(TableModelEvent event) { +- // TODO +- } // newRowsAdded() +- +- /** +- * rowsRemoved +- * @param value0 TODO +- */ +- public void rowsRemoved(TableModelEvent event) { +- fireTableChanged(event); +- } // rowsRemoved() +- +- /** +- * setColumnIdentifiers +- * @param value0 TODO +- */ +- public void setColumnIdentifiers(Vector columnIdentifiers) { +- this.columnIdentifiers = columnIdentifiers; +- setColumnCount(columnIdentifiers.size()); +- } // setColumnIdentifiers() +- +- /** +- * setColumnIdentifiers +- * @param value0 TODO +- */ +- public void setColumnIdentifiers(Object[] columnIdentifiers) { +- setColumnIdentifiers(convertToVector(columnIdentifiers)); +- } // setColumnIdentifiers() +- +- /** +- * setNumRows +- * @param value0 TODO +- */ +- public void setNumRows(int numRows) { +- setRowCount(numRows); +- } // setNumRows() +- +- /** +- * setRowCount +- * @param value0 TODO +- */ +- public void setRowCount(int rowCount) { +- // TODO +- } // setRowCount() +- +- /** +- * setColumnCount +- * @param value0 TODO +- */ +- public void setColumnCount(int columnCount) { +- // TODO +- } // setColumnCount() +- +- /** +- * addColumn +- * @param value0 TODO +- */ +- public void addColumn(Object columnName) { +- addColumn(columnName, new Vector(dataVector.size())); +- } // addColumn() +- +- /** +- * addColumn +- * @param value0 TODO +- * @param value1 TODO +- */ +- public void addColumn(Object columnName, Vector columnData) { +- // TODO +- } // addColumn() +- +- /** +- * addColumn +- * @param value0 TODO +- * @param value1 TODO +- */ +- public void addColumn(Object columnName, Object[] columnData) { +- // TODO +- } // addColumn() +- +- /** +- * addRow +- * @param value0 TODO +- */ +- public void addRow(Vector rowData) { +- // TODO +- } // addRow() +- +- /** +- * addRow +- * @param value0 TODO +- */ +- public void addRow(Object[] rowData) { +- addRow(convertToVector(rowData)); +- } // addRow() +- +- /** +- * insertRow +- * @param value0 TODO +- * @param value1 TODO +- */ +- public void insertRow(int row, Vector rowData) { +- dataVector.add(row, rowData); +- } // insertRow() +- +- /** +- * insertRow +- * @param value0 TODO +- * @param value1 TODO +- */ +- public void insertRow(int row, Object[] rowData) { +- insertRow(row, convertToVector(rowData)); +- } // insertRow() +- +- /** +- * moveRow +- * @param value0 TODO +- * @param value1 TODO +- * @param value2 TODO +- */ +- public void moveRow(int startIndex, int endIndex, int toIndex) { +- +- // Variables +- int index; +- Vector vector; +- +- // Move Rows +- for (index = 0; index < (endIndex - startIndex); index++) { +- vector = (Vector) dataVector.remove(startIndex); +- dataVector.add(toIndex, vector); +- } // for +- +- } // moveRow() +- +- /** +- * removeRow +- * @param value0 TODO +- */ +- public void removeRow(int row) { +- dataVector.remove(row); +- } // removeRow() +- +- /** +- * getRowCount +- * @returns int +- */ +- public int getRowCount() { +- return dataVector.size(); +- } // getRowCount() +- +- /** +- * getColumnCount +- * @returns int +- */ +- public int getColumnCount() { +- return columnIdentifiers.size(); +- } // getColumnCount() +- +- /** +- * getColumnName +- * @param value0 TODO +- * @returns String +- */ +- public String getColumnName(int column) { +- +- // Check for Column +- if (columnIdentifiers == null || column >= getColumnCount()) { +- return super.getColumnName(column); +- } // if +- +- // Return Column name +- return (String) columnIdentifiers.get(column); +- +- } // getColumnName() +- +- /** +- * isCellEditable +- * @param value0 TODO +- * @param value1 TODO +- * @returns boolean +- */ +- public boolean isCellEditable(int row, int column) { +- return true; +- } // isCellEditable() +- +- /** +- * getValueAt +- * @param value0 TODO +- * @param value1 TODO +- * @returns Object +- */ +- public Object getValueAt(int row, int column) { +- +- // Variables +- Vector rowVector; +- +- // Get Row Vector +- rowVector = (Vector) dataVector.get(row); +- +- // Get Data +- return rowVector.get(column); +- +- } // getValueAt() +- +- /** +- * setValueAt +- * @param value0 TODO +- * @param value1 TODO +- * @param value2 TODO +- */ +- public void setValueAt(Object value, int row, int column) { +- +- // Variables +- Vector rowVector; +- +- // Get Row Vector +- rowVector = (Vector) dataVector.get(row); +- +- // Set Data +- rowVector.remove(column); +- rowVector.add(column, value); +- +- } // setValueAt() +- +- /** +- * convertToVector +- * @param value0 TODO +- * @returns Vector +- */ +- protected static Vector convertToVector(Object[] data) { +- +- // Variables +- int index; +- Vector vector; +- +- // Check for null +- if (data == null) { +- return null; +- } // if +- +- // Process +- vector = new Vector(); +- for (index = 0; index < data.length; index++) { +- vector.add(data[index]); +- } // for: index +- +- // Return new Vector +- return vector; +- +- } // convertToVector() +- +- /** +- * convertToVector +- * @param value0 TODO +- * @returns Vector +- */ +- protected static Vector convertToVector(Object[][] data) { +- +- // Variables +- int index; +- Vector vector; +- +- // Process +- vector = new Vector(); +- for (index = 0; index < data.length; index++) { +- vector.add(convertToVector(data[index])); +- } // for: index +- +- // Return new Vector +- return vector; +- +- } // convertToVector() +- +- +-} // DefaultTableModel ++ /** ++ * dataVector ++ */ ++ protected Vector dataVector; ++ ++ /** ++ * columnIdentifiers ++ */ ++ protected Vector columnIdentifiers; ++ ++ /** ++ * Constructor DefaultTableModel ++ */ ++ public DefaultTableModel() ++ { ++ this(0, 0); ++ } ++ ++ /** ++ * Constructor DefaultTableModel ++ * @param value0 TODO ++ * @param value1 TODO ++ */ ++ public DefaultTableModel(int numRows, int numColumns) ++ { ++ Vector defaultNames = new Vector(numColumns); ++ Vector data = new Vector(numRows); ++ for (int i = 0; i < numColumns; i++) ++ { ++ defaultNames.add(super.getColumnName(i)); ++ Vector tmp = new Vector(numColumns); ++ tmp.setSize(numColumns); ++ data.add(tmp); ++ } ++ setDataVector(defaultNames, data); ++ } ++ ++ /** ++ * Constructor DefaultTableModel ++ * @param value0 TODO ++ * @param value1 TODO ++ */ ++ public DefaultTableModel(Vector columnNames, int numRows) ++ { ++ Vector data = new Vector(); ++ int numColumns = 0; ++ ++ if (columnNames != null) ++ numColumns = columnNames.size(); ++ ++ while (0 < numRows--) ++ { ++ Vector rowData = new Vector(); ++ rowData.setSize(numColumns); ++ data.add(rowData); ++ } ++ setDataVector(data, columnNames); ++ } ++ ++ /** ++ * Constructor DefaultTableModel ++ * @param value0 TODO ++ * @param value1 TODO ++ */ ++ public DefaultTableModel(Object[] columnNames, int numRows) ++ { ++ this(convertToVector(columnNames), numRows); ++ } ++ ++ /** ++ * Constructor DefaultTableModel ++ * @param value0 TODO ++ * @param value1 TODO ++ */ ++ public DefaultTableModel(Vector data, Vector columnNames) ++ { ++ setDataVector(data, columnNames); ++ } ++ ++ /** ++ * Constructor DefaultTableModel ++ * @param value0 TODO ++ * @param value1 TODO ++ */ ++ public DefaultTableModel(Object[][] data, Object[] columnNames) ++ { ++ this(convertToVector(data), convertToVector(columnNames)); ++ } ++ ++ /** ++ * getDataVector ++ * @returns Vector ++ */ ++ public Vector getDataVector() ++ { ++ return dataVector; ++ } ++ ++ /** ++ * setDataVector ++ * @param value0 TODO ++ * @param value1 TODO ++ */ ++ public void setDataVector(Vector data, Vector columnNames) ++ { ++ dataVector = data; ++ columnIdentifiers = columnNames; ++ for (int r = 0; r < data.size(); r++) { ++ ((Vector) dataVector.get(r)).setSize(columnNames.size()); ++ } ++ } ++ ++ /** ++ * setDataVector ++ * @param value0 TODO ++ * @param value1 TODO ++ */ ++ public void setDataVector(Object[][] data, Object[] columnNames) ++ { ++ setDataVector(convertToVector(data), ++ convertToVector(columnNames)); ++ } ++ ++ /** ++ * newDataAvailable ++ * @param value0 TODO ++ */ ++ public void newDataAvailable(TableModelEvent event) ++ { ++ fireTableChanged(event); ++ } ++ ++ /** ++ * newRowsAdded ++ * @param value0 TODO ++ */ ++ public void newRowsAdded(TableModelEvent event) ++ { ++ fireTableChanged(event); ++ } ++ ++ /** ++ * rowsRemoved ++ * @param value0 TODO ++ */ ++ public void rowsRemoved(TableModelEvent event) ++ { ++ fireTableChanged(event); ++ } ++ ++ /** ++ * setColumnIdentifiers ++ * @param value0 TODO ++ */ ++ public void setColumnIdentifiers(Vector columnIdentifiers) ++ { ++ this.columnIdentifiers = columnIdentifiers; ++ setColumnCount(columnIdentifiers.size()); ++ } ++ ++ /** ++ * setColumnIdentifiers ++ * @param value0 TODO ++ */ ++ public void setColumnIdentifiers(Object[] columnIdentifiers) ++ { ++ setColumnIdentifiers(convertToVector(columnIdentifiers)); ++ } ++ ++ /** ++ * setNumRows ++ * @param value0 TODO ++ */ ++ public void setNumRows(int numRows) ++ { ++ setRowCount(numRows); ++ } ++ ++ /** ++ * setRowCount ++ * @param value0 TODO ++ */ ++ public void setRowCount(int rowCount) ++ { ++ dataVector.setSize(rowCount); ++ fireTableDataChanged(); ++ } ++ ++ /** ++ * setColumnCount ++ * @param value0 TODO ++ */ ++ public void setColumnCount(int columnCount) ++ { ++ for (int i = 0; i < dataVector.size(); ++i) ++ { ++ ((Vector) dataVector.get(i)).setSize(columnCount); ++ } ++ columnIdentifiers.setSize(columnCount); ++ fireTableDataChanged(); ++ } ++ ++ /** ++ * addColumn ++ * @param value0 TODO ++ */ ++ public void addColumn(Object columnName) ++ { ++ addColumn(columnName, (Object[]) null); ++ } ++ ++ /** ++ * addColumn ++ * @param value0 TODO ++ * @param value1 TODO ++ */ ++ public void addColumn(Object columnName, Vector columnData) ++ { ++ addColumn(columnName, columnData == null ? null : columnData.toArray()); ++ } ++ ++ /** ++ * addColumn ++ * @param value0 TODO ++ * @param value1 TODO ++ */ ++ public void addColumn(Object columnName, Object[] columnData) { ++ for (int i = 0; i < dataVector.size(); ++i) ++ { ++ ((Vector) dataVector.get(i)).add(columnData == null ? null : columnData[i]); ++ } ++ columnIdentifiers.add(columnName); ++ fireTableDataChanged(); ++ } ++ ++ /** ++ * addRow ++ * @param value0 TODO ++ */ ++ public void addRow(Vector rowData) { ++ dataVector.add(rowData); ++ fireTableDataChanged(); ++ } ++ ++ /** ++ * addRow ++ * @param value0 TODO ++ */ ++ public void addRow(Object[] rowData) { ++ addRow(convertToVector(rowData)); ++ } ++ ++ /** ++ * insertRow ++ * @param value0 TODO ++ * @param value1 TODO ++ */ ++ public void insertRow(int row, Vector rowData) { ++ dataVector.add(row, rowData); ++ fireTableDataChanged(); ++ } ++ ++ /** ++ * insertRow ++ * @param value0 TODO ++ * @param value1 TODO ++ */ ++ public void insertRow(int row, Object[] rowData) { ++ insertRow(row, convertToVector(rowData)); ++ } ++ ++ /** ++ * moveRow ++ * @param value0 TODO ++ * @param value1 TODO ++ * @param value2 TODO ++ */ ++ public void moveRow(int startIndex, int endIndex, int toIndex) { ++ for (int index = 0; index < (endIndex - startIndex); index++) { ++ Vector vector = (Vector) dataVector.remove(startIndex); ++ dataVector.add(toIndex, vector); ++ } ++ fireTableDataChanged(); ++ } ++ ++ /** ++ * removeRow ++ * @param value0 TODO ++ */ ++ public void removeRow(int row) { ++ dataVector.remove(row); ++ fireTableDataChanged(); ++ } ++ ++ /** ++ * getRowCount ++ * @returns int ++ */ ++ public int getRowCount() { ++ return dataVector.size(); ++ } ++ ++ /** ++ * getColumnCount ++ * @returns int ++ */ ++ public int getColumnCount() { ++ return columnIdentifiers.size(); ++ } ++ ++ /** ++ * getColumnName ++ * @param value0 TODO ++ * @returns String ++ */ ++ public String getColumnName(int column) { ++ // Check for Column ++ if (columnIdentifiers == null || column >= getColumnCount()) { ++ return super.getColumnName(column); ++ } ++ ++ // Return Column name ++ return (String) columnIdentifiers.get(column); ++ } ++ ++ /** ++ * isCellEditable ++ * @param value0 TODO ++ * @param value1 TODO ++ * @returns boolean ++ */ ++ public boolean isCellEditable(int row, int column) { ++ return true; ++ } ++ ++ /** ++ * getValueAt ++ * @param value0 TODO ++ * @param value1 TODO ++ * @returns Object ++ */ ++ public Object getValueAt(int row, int column) { ++ return ((Vector) dataVector.get(row)).get(column); ++ } ++ ++ /** ++ * setValueAt ++ * @param value0 TODO ++ * @param value1 TODO ++ * @param value2 TODO ++ */ ++ public void setValueAt(Object value, int row, int column) { ++ ((Vector) dataVector.get(row)).set(column, value); ++ fireTableDataChanged(); ++ } ++ ++ /** ++ * convertToVector ++ * @param value0 TODO ++ * @returns Vector ++ */ ++ protected static Vector convertToVector(Object[] data) { ++ if (data == null) ++ return null; ++ Vector vector = new Vector(data.length); ++ for (int i = 0; i < data.length; i++) ++ vector.add(data[i]); ++ return vector; ++ } ++ ++ /** ++ * convertToVector ++ * @param value0 TODO ++ * @returns Vector ++ */ ++ protected static Vector convertToVector(Object[][] data) { ++ if (data == null) ++ return null; ++ Vector vector = new Vector(data.length); ++ for (int i = 0; i < data.length; i++) ++ vector.add(convertToVector(data[i])); ++ return vector; ++ } ++} +Index: javax/swing/table/JTableHeader.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/table/JTableHeader.java,v +retrieving revision 1.1 +diff -u -r1.1 JTableHeader.java +--- javax/swing/table/JTableHeader.java 11 Jun 2003 16:36:11 -0000 1.1 ++++ javax/swing/table/JTableHeader.java 6 Sep 2004 16:36:09 -0000 +@@ -1,5 +1,5 @@ + /* JTableHeader.java +- Copyright (C) 2003 Free Software Foundation, Inc. ++ Copyright (C) 2003, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -38,6 +38,8 @@ + + package javax.swing.table; + ++import java.awt.event.FocusEvent; ++import java.awt.event.FocusListener; + import java.awt.Color; + import java.awt.Cursor; + import java.awt.Dimension; +@@ -45,38 +47,527 @@ + import java.awt.FontMetrics; + import java.awt.Point; + import java.awt.Rectangle; +-import java.awt.event.FocusListener; ++import java.beans.PropertyChangeEvent; ++import java.beans.PropertyChangeListener; + import java.util.Locale; ++ + import javax.accessibility.Accessible; ++import javax.accessibility.AccessibleAction; + import javax.accessibility.AccessibleComponent; + import javax.accessibility.AccessibleContext; +-import javax.accessibility.AccessibleRole; ++import javax.accessibility.AccessibleSelection; + import javax.accessibility.AccessibleStateSet; ++import javax.accessibility.AccessibleRole; ++import javax.accessibility.AccessibleText; ++import javax.accessibility.AccessibleValue; + import javax.swing.JComponent; + import javax.swing.JTable; +-import javax.swing.event.ChangeEvent; +-import javax.swing.event.ListSelectionEvent; +-import javax.swing.event.TableColumnModelEvent; +-import javax.swing.event.TableColumnModelListener; ++import javax.swing.UIManager; + import javax.swing.plaf.TableHeaderUI; + +-public class JTableHeader ++public class JTableHeader extends JComponent + { +- protected class AccessibleJTableHeader ++ protected class AccessibleJTableHeader extends AccessibleJComponent + { +- protected class AccessibleJTableHeaderEntry ++ protected class AccessibleJTableHeaderEntry extends AccessibleContext ++ implements Accessible, AccessibleComponent + { +- } ++ public void addFocusListener(FocusListener l) ++ { ++ throw new Error("not implemented"); ++ } ++ public void addPropertyChangeListener(PropertyChangeListener l) ++ { ++ throw new Error("not implemented"); ++ } ++ public boolean contains(Point p) ++ { ++ throw new Error("not implemented"); ++ } ++ public AccessibleAction getAccessibleAction() ++ { ++ throw new Error("not implemented"); ++ } ++ public Accessible getAccessibleAt(Point p) ++ { ++ throw new Error("not implemented"); ++ } ++ public Accessible getAccessibleChild(int i) ++ { ++ throw new Error("not implemented"); ++ } ++ public int getAccessibleChildrenCount() ++ { ++ throw new Error("not implemented"); ++ } ++ public AccessibleComponent getAccessibleComponent() ++ { ++ throw new Error("not implemented"); ++ } ++ public AccessibleContext getAccessibleContext() ++ { ++ throw new Error("not implemented"); ++ } ++ public String getAccessibleDescription() ++ { ++ throw new Error("not implemented"); ++ } ++ public int getAccessibleIndexInParent() ++ { ++ throw new Error("not implemented"); ++ } ++ public String getAccessibleName() ++ { ++ throw new Error("not implemented"); ++ } ++ public AccessibleRole getAccessibleRole() ++ { ++ throw new Error("not implemented"); ++ } ++ public AccessibleSelection getAccessibleSelection() ++ { ++ throw new Error("not implemented"); ++ } ++ public AccessibleStateSet getAccessibleStateSet() ++ { ++ throw new Error("not implemented"); ++ } ++ public AccessibleText getAccessibleText() ++ { ++ throw new Error("not implemented"); ++ } ++ public AccessibleValue getAccessibleValue() ++ { ++ throw new Error("not implemented"); ++ } ++ public Color getBackground() ++ { ++ throw new Error("not implemented"); ++ } ++ public Rectangle getBounds() ++ { ++ throw new Error("not implemented"); ++ } ++ public Cursor getCursor() ++ { ++ throw new Error("not implemented"); ++ } ++ public Font getFont() ++ { ++ throw new Error("not implemented"); ++ } ++ public FontMetrics getFontMetrics(Font f) ++ { ++ throw new Error("not implemented"); ++ } ++ public Color getForeground() ++ { ++ throw new Error("not implemented"); ++ } ++ public Locale getLocale() ++ { ++ throw new Error("not implemented"); ++ } ++ public Point getLocation() ++ { ++ throw new Error("not implemented"); ++ } ++ public Point getLocationOnScreen() ++ { ++ throw new Error("not implemented"); ++ } ++ public Dimension getSize() ++ { ++ throw new Error("not implemented"); ++ } ++ public boolean isEnabled() ++ { ++ throw new Error("not implemented"); ++ } ++ public boolean isFocusTraversable() ++ { ++ throw new Error("not implemented"); ++ } ++ public boolean isShowing() ++ { ++ throw new Error("not implemented"); ++ } ++ public boolean isVisible() ++ { ++ throw new Error("not implemented"); ++ } ++ public void removeFocusListener(FocusListener l) ++ { ++ throw new Error("not implemented"); ++ } ++ public void removePropertyChangeListener(PropertyChangeListener l) ++ { ++ throw new Error("not implemented"); ++ } ++ public void requestFocus() ++ { ++ throw new Error("not implemented"); ++ } ++ public void setAccessibleDescription(String s) ++ { ++ throw new Error("not implemented"); ++ } ++ public void setAccessibleName(String s) ++ { ++ throw new Error("not implemented"); ++ } ++ public void setBackground(Color c) ++ { ++ throw new Error("not implemented"); ++ } ++ public void setBounds(Rectangle r) ++ { ++ throw new Error("not implemented"); ++ } ++ public void setCursor(Cursor c) ++ { ++ throw new Error("not implemented"); ++ } ++ public void setEnabled(boolean b) ++ { ++ throw new Error("not implemented"); ++ } ++ public void setFont(Font f) ++ { ++ throw new Error("not implemented"); ++ } ++ public void setForeground(Color c) ++ { ++ throw new Error("not implemented"); ++ } ++ public void setLocation(Point p) ++ { ++ throw new Error("not implemented"); ++ } ++ public void setSize(Dimension d) ++ { ++ throw new Error("not implemented"); ++ } ++ public void setVisible(boolean b) ++ { ++ throw new Error("not implemented"); ++ } ++ }; + } + + private static final long serialVersionUID = 5144633983372967710L; + +- protected TableColumnModel columnModel; +- protected TableColumn draggedColumn; +- protected int draggedDistance; +- protected boolean reorderingAllowed; +- protected boolean resizingAllowed; +- protected TableColumn resizingColumn; +- protected JTable table; +- protected boolean updateTableInRealTime; ++ /** ++ * The accessibleContext property. ++ */ ++ AccessibleContext accessibleContext; ++ ++ /** ++ * The columnModel property. ++ */ ++ TableColumnModel columnModel; ++ ++ /** ++ * The draggedColumn property. ++ */ ++ TableColumn draggedColumn; ++ ++ /** ++ * The draggedDistance property. ++ */ ++ int draggedDistance; ++ ++ /** ++ * The opaque property. ++ */ ++ boolean opaque; ++ ++ /** ++ * The reorderingAllowed property. ++ */ ++ boolean reorderingAllowed; ++ ++ /** ++ * The resizingAllowed property. ++ */ ++ boolean resizingAllowed; ++ ++ /** ++ * The resizingColumn property. ++ */ ++ TableColumn resizingColumn; ++ ++ /** ++ * The table property. ++ */ ++ JTable table; ++ ++ /** ++ * The updateTableInRealTime property. ++ */ ++ boolean updateTableInRealTime; ++ ++ TableCellRenderer cellRenderer; ++ ++ public JTableHeader() ++ { ++ this(null); ++ } ++ ++ public JTableHeader(TableColumnModel cm) ++ { ++ accessibleContext = new AccessibleJTableHeader(); ++ columnModel = cm == null ? createDefaultTableColumnModel() : cm; ++ draggedColumn = null; ++ draggedDistance = 0; ++ opaque = true; ++ reorderingAllowed = true; ++ resizingAllowed = true; ++ resizingColumn = null; ++ table = null; ++ updateTableInRealTime = true; ++ cellRenderer = createDefaultRenderer(); ++ updateUI(); ++ } ++ ++ protected TableColumnModel createDefaultTableColumnModel() ++ { ++ return new DefaultTableColumnModel(); ++ } ++ ++ ++ /** ++ * Get the value of the {@link #accessibleContext} property. ++ * ++ * @return The current value of the property ++ */ ++ public AccessibleContext getAccessibleContext() ++ { ++ return accessibleContext; ++ } ++ ++ /** ++ * Get the value of the {@link #columnModel} property. ++ * ++ * @return The current value of the property ++ */ ++ public TableColumnModel getColumnModel() ++ { ++ return columnModel; ++ } ++ ++ /** ++ * Get the value of the {@link #draggedColumn} property. ++ * ++ * @return The current value of the property ++ */ ++ public TableColumn getDraggedColumn() ++ { ++ return draggedColumn; ++ } ++ ++ /** ++ * Get the value of the {@link #draggedDistance} property. ++ * ++ * @return The current value of the property ++ */ ++ public int getDraggedDistance() ++ { ++ return draggedDistance; ++ } ++ ++ /** ++ * Get the value of the {@link #reorderingAllowed} property. ++ * ++ * @return The current value of the property ++ */ ++ public boolean getReorderingAllowed() ++ { ++ return reorderingAllowed; ++ } ++ ++ /** ++ * Get the value of the {@link #resizingAllowed} property. ++ * ++ * @return The current value of the property ++ */ ++ public boolean getResizingAllowed() ++ { ++ return resizingAllowed; ++ } ++ ++ /** ++ * Get the value of the {@link #resizingColumn} property. ++ * ++ * @return The current value of the property ++ */ ++ public TableColumn getResizingColumn() ++ { ++ return resizingColumn; ++ } ++ ++ /** ++ * Get the value of the {@link #table} property. ++ * ++ * @return The current value of the property ++ */ ++ public JTable getTable() ++ { ++ return table; ++ } ++ ++ /** ++ * Get the value of the {@link #updateTableInRealTime} property. ++ * ++ * @return The current value of the property ++ */ ++ public boolean getUpdateTableInRealTime() ++ { ++ return updateTableInRealTime; ++ } ++ ++ /** ++ * Get the value of the {@link #opaque} property. ++ * ++ * @return The current value of the property ++ */ ++ public boolean isOpaque() ++ { ++ return opaque; ++ } ++ ++ /** ++ * Set the value of the {@link #columnModel} property. ++ * ++ * @param c The new value of the property ++ */ ++ public void setColumnModel(TableColumnModel c) ++ { ++ columnModel = c; ++ } ++ ++ /** ++ * Set the value of the {@link #draggedColumn} property. ++ * ++ * @param d The new value of the property ++ */ ++ public void setDraggedColumn(TableColumn d) ++ { ++ draggedColumn = d; ++ } ++ ++ /** ++ * Set the value of the {@link #draggedDistance} property. ++ * ++ * @param d The new value of the property ++ */ ++ public void setDraggedDistance(int d) ++ { ++ draggedDistance = d; ++ } ++ ++ /** ++ * Set the value of the {@link #opaque} property. ++ * ++ * @param o The new value of the property ++ */ ++ public void setOpaque(boolean o) ++ { ++ opaque = o; ++ } ++ ++ /** ++ * Set the value of the {@link #reorderingAllowed} property. ++ * ++ * @param r The new value of the property ++ */ ++ public void setReorderingAllowed(boolean r) ++ { ++ reorderingAllowed = r; ++ } ++ ++ /** ++ * Set the value of the {@link #resizingAllowed} property. ++ * ++ * @param r The new value of the property ++ */ ++ public void setResizingAllowed(boolean r) ++ { ++ resizingAllowed = r; ++ } ++ ++ /** ++ * Set the value of the {@link #resizingColumn} property. ++ * ++ * @param r The new value of the property ++ */ ++ public void setResizingColumn(TableColumn r) ++ { ++ resizingColumn = r; ++ } ++ ++ /** ++ * Set the value of the {@link #table} property. ++ * ++ * @param t The new value of the property ++ */ ++ public void setTable(JTable t) ++ { ++ table = t; ++ } ++ ++ /** ++ * Set the value of the {@link #updateTableInRealTime} property. ++ * ++ * @param u The new value of the property ++ */ ++ public void setUpdateTableInRealTime(boolean u) ++ { ++ updateTableInRealTime = u; ++ } ++ ++ protected TableCellRenderer createDefaultRenderer() ++ { ++ return new DefaultTableCellRenderer(); ++ } ++ ++ public TableCellRenderer getDefaultRenderer() ++ { ++ return cellRenderer; ++ } ++ ++ public Rectangle getHeaderRect(int column) ++ { ++ Rectangle r = getTable().getCellRect(-1, column, true); ++ r.height = getHeight(); ++ return r; ++ } ++ ++ protected String paramString() ++ { ++ return "JTableHeader"; ++ } ++ ++ // UI support ++ ++ public String getUIClassID() ++ { ++ return "TableHeaderUI"; ++ } ++ ++ public TableHeaderUI getUI() ++ { ++ return (TableHeaderUI) ui; ++ } ++ ++ public void setUI(TableHeaderUI u) ++ { ++ super.setUI(u); ++ } ++ ++ public void updateUI() ++ { ++ setUI((TableHeaderUI) UIManager.getUI(this)); ++ } ++ + } +Index: javax/swing/table/TableColumn.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/table/TableColumn.java,v +retrieving revision 1.3 +diff -u -r1.3 TableColumn.java +--- javax/swing/table/TableColumn.java 11 Jun 2003 13:20:41 -0000 1.3 ++++ javax/swing/table/TableColumn.java 6 Sep 2004 16:36:09 -0000 +@@ -35,26 +35,23 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- + package javax.swing.table; + + import java.beans.PropertyChangeListener; + import java.io.Serializable; + import javax.swing.event.SwingPropertyChangeSupport; + ++ + /** + * TableColumn + * @author Andrew Selkirk + * @version 1.0 + */ +-public class TableColumn implements Serializable ++public class TableColumn ++ implements Serializable + { + static final long serialVersionUID = -6113660025878112608L; + +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- + /** + * COLUMN_WIDTH_PROPERTY + */ +@@ -138,36 +135,35 @@ + /** + * changeSupport + */ +- private SwingPropertyChangeSupport changeSupport = new SwingPropertyChangeSupport(this); +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- ++ private SwingPropertyChangeSupport changeSupport = ++ new SwingPropertyChangeSupport(this); + + /** + * Constructor TableColumn + */ +- public TableColumn() { ++ public TableColumn() ++ { + this(0, 75, null, null); +- } // TableColumn() ++ } + + /** + * Constructor TableColumn + * @param modelIndex TODO + */ +- public TableColumn(int modelIndex) { ++ public TableColumn(int modelIndex) ++ { + this(modelIndex, 75, null, null); +- } // TableColumn() ++ } + + /** + * Constructor TableColumn + * @param modelIndex TODO + * @param width TODO + */ +- public TableColumn(int modelIndex, int width) { ++ public TableColumn(int modelIndex, int width) ++ { + this(modelIndex, width, null, null); +- } // TableColumn() ++ } + + /** + * Constructor TableColumn +@@ -177,7 +173,8 @@ + * @param cellEditor TODO + */ + public TableColumn(int modelIndex, int width, +- TableCellRenderer cellRenderer, TableCellEditor cellEditor) { ++ TableCellRenderer cellRenderer, TableCellEditor cellEditor) ++ { + this.modelIndex = modelIndex; + this.width = width; + this.preferredWidth = width; +@@ -185,12 +182,7 @@ + this.cellEditor = cellEditor; + this.headerValue = null; + this.identifier = null; +- } // TableColumn() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- ++ } + + /** + * firePropertyChange +@@ -198,9 +190,11 @@ + * @param oldValue TODO + * @param newValue TODO + */ +- private void firePropertyChange(String property, Object oldValue, Object newValue) { ++ private void firePropertyChange(String property, Object oldValue, ++ Object newValue) ++ { + changeSupport.firePropertyChange(property, oldValue, newValue); +- } // firePropertyChange() ++ } + + /** + * firePropertyChange +@@ -208,9 +202,10 @@ + * @param oldValue TODO + * @param newValue TODO + */ +- private void firePropertyChange(String property, int oldValue, int newValue) { ++ private void firePropertyChange(String property, int oldValue, int newValue) ++ { + firePropertyChange(property, new Integer(oldValue), new Integer(newValue)); +- } // firePropertyChange() ++ } + + /** + * firePropertyChange +@@ -218,51 +213,56 @@ + * @param oldValue TODO + * @param newValue TODO + */ +- private void firePropertyChange(String property, boolean oldValue, boolean newValue) { ++ private void firePropertyChange(String property, boolean oldValue, ++ boolean newValue) ++ { + firePropertyChange(property, new Boolean(oldValue), new Boolean(newValue)); +- } // firePropertyChange() ++ } + + /** + * setModelIndex + * @param modelIndex TODO + */ +- public void setModelIndex(int modelIndex) { ++ public void setModelIndex(int modelIndex) ++ { + this.modelIndex = modelIndex; +- } // setModelIndex() ++ } + + /** + * getModelIndex +- * @returns int ++ * @return int + */ +- public int getModelIndex() { ++ public int getModelIndex() ++ { + return modelIndex; +- } // getModelIndex() ++ } + + /** + * setIdentifier + * @param identifier TODO + */ +- public void setIdentifier(Object identifier) { ++ public void setIdentifier(Object identifier) ++ { + this.identifier = identifier; +- } // setIdentifier() ++ } + + /** + * getIdentifier +- * @returns Object ++ * @return Object + */ +- public Object getIdentifier() { +- if (identifier == null) { ++ public Object getIdentifier() ++ { ++ if (identifier == null) + return getHeaderValue(); +- } // if + return identifier; +- } // getIdentifier() ++ } + + /** + * setHeaderValue + * @param headerValue TODO + */ +- public void setHeaderValue(Object headerValue) { +- ++ public void setHeaderValue(Object headerValue) ++ { + // Variables + Object oldValue; + +@@ -273,245 +273,243 @@ + this.headerValue = headerValue; + + // Notify Listeners of change +- firePropertyChange(HEADER_VALUE_PROPERTY, +- oldValue, headerValue); +- +- } // setHeaderValue() ++ firePropertyChange(HEADER_VALUE_PROPERTY, oldValue, headerValue); ++ } + + /** + * getHeaderValue +- * @returns Object ++ * @return Object + */ +- public Object getHeaderValue() { ++ public Object getHeaderValue() ++ { + return headerValue; +- } // getHeaderValue() ++ } + +- /** +- * setHeaderRenderer +- * @param headerRenderer TODO +- */ +- public void setHeaderRenderer(TableCellRenderer headerRenderer) { +- +- // Variables +- TableCellRenderer oldRenderer; +- +- // Get Old Renderer +- oldRenderer = this.headerRenderer; +- +- // Set Property +- this.headerRenderer = headerRenderer; +- +- // Notify Listeners of change +- firePropertyChange(HEADER_RENDERER_PROPERTY, +- oldRenderer, headerRenderer); +- +- } // setHeaderRenderer() ++ /** ++ * setHeaderRenderer ++ * @param headerRenderer TODO ++ */ ++ public void setHeaderRenderer(TableCellRenderer renderer) ++ { ++ if (headerRenderer == renderer) ++ return; ++ ++ TableCellRenderer oldRenderer = headerRenderer; ++ headerRenderer = renderer; ++ firePropertyChange(HEADER_RENDERER_PROPERTY, ++ oldRenderer, headerRenderer); ++ } + + /** + * getHeaderRenderer +- * @returns TableCellRenderer ++ * @return TableCellRenderer + */ +- public TableCellRenderer getHeaderRenderer() { ++ public TableCellRenderer getHeaderRenderer() ++ { + return headerRenderer; +- } // getHeaderRenderer() +- +- /** +- * setCellRenderer +- * @param cellRenderer TODO +- */ +- public void setCellRenderer(TableCellRenderer cellRenderer) { +- +- // Variables +- TableCellRenderer oldRenderer; +- +- // Get Old Renderer +- oldRenderer = this.cellRenderer; +- +- // Set Property +- this.cellRenderer = cellRenderer; +- +- // Notify Listeners of change +- firePropertyChange(CELL_RENDERER_PROPERTY, +- oldRenderer, cellRenderer); ++ } + +- } // setCellRenderer() ++ /** ++ * setCellRenderer ++ * @param cellRenderer TODO ++ */ ++ public void setCellRenderer(TableCellRenderer renderer) ++ { ++ if (cellRenderer == renderer) ++ return; ++ ++ TableCellRenderer oldRenderer = cellRenderer; ++ cellRenderer = renderer; ++ firePropertyChange(CELL_RENDERER_PROPERTY, ++ oldRenderer, cellRenderer); ++ } + + /** + * getCellRenderer +- * @returns TableCellRenderer ++ * @return TableCellRenderer + */ +- public TableCellRenderer getCellRenderer() { ++ public TableCellRenderer getCellRenderer() ++ { + return cellRenderer; +- } // getCellRenderer() ++ } + + /** + * setCellEditor + * @param cellEditor TODO + */ +- public void setCellEditor(TableCellEditor cellEditor) { ++ public void setCellEditor(TableCellEditor cellEditor) ++ { + this.cellEditor = cellEditor; +- } // setCellEditor() ++ } + + /** + * getCellEditor +- * @returns TableCellEditor ++ * @return TableCellEditor + */ +- public TableCellEditor getCellEditor() { ++ public TableCellEditor getCellEditor() ++ { + return cellEditor; +- } // getCellEditor() ++ } + +- /** +- * setWidth +- * @param width TODO +- */ +- public void setWidth(int width) { +- +- // Variables +- int oldWidth; ++ /** ++ * setWidth ++ * @param newWidth TODO ++ */ ++ public void setWidth(int newWidth) ++ { ++ int oldWidth = width; ++ ++ if (newWidth < minWidth) ++ width = minWidth; ++ else if (newWidth > maxWidth) ++ width = maxWidth; ++ else ++ width = newWidth; + +- // Get Old Width +- oldWidth = this.width; ++ if (width == oldWidth) ++ return; + +- // Adjust Width within Limits +- if (width < minWidth) { +- this.width = minWidth; +- } else if (width > maxWidth) { +- this.width = maxWidth; +- } else { +- this.width = width; +- } // if +- +- // Fire Property Change +- firePropertyChange(COLUMN_WIDTH_PROPERTY, oldWidth, this.width); +- +- } // setWidth() ++ firePropertyChange(COLUMN_WIDTH_PROPERTY, oldWidth, width); ++ } + + /** + * getWidth +- * @returns int ++ * @return int + */ +- public int getWidth() { ++ public int getWidth() ++ { + return width; +- } // getWidth() ++ } + + /** + * setPreferredWidth + * @param preferredWidth TODO + */ +- public void setPreferredWidth(int preferredWidth) { +- if (preferredWidth < minWidth) { ++ public void setPreferredWidth(int preferredWidth) ++ { ++ if (preferredWidth < minWidth) + this.preferredWidth = minWidth; +- } else if (preferredWidth > maxWidth) { ++ else if (preferredWidth > maxWidth) + this.preferredWidth = maxWidth; +- } else { ++ else + this.preferredWidth = preferredWidth; +- } // if +- } // setPreferredWidth() ++ } + + /** + * getPreferredWidth +- * @returns int ++ * @return int + */ +- public int getPreferredWidth() { ++ public int getPreferredWidth() ++ { + return preferredWidth; +- } // getPreferredWidth() ++ } + + /** + * setMinWidth + * @param minWidth TODO + */ +- public void setMinWidth(int minWidth) { ++ public void setMinWidth(int minWidth) ++ { + this.minWidth = minWidth; + setWidth(getWidth()); + setPreferredWidth(getPreferredWidth()); +- } // setMinWidth() ++ } + + /** + * getMinWidth +- * @returns int ++ * @return int + */ +- public int getMinWidth() { ++ public int getMinWidth() ++ { + return minWidth; +- } // getMinWidth() ++ } + + /** + * setMaxWidth + * @param maxWidth TODO + */ +- public void setMaxWidth(int maxWidth) { ++ public void setMaxWidth(int maxWidth) ++ { + this.maxWidth = maxWidth; + setWidth(getWidth()); + setPreferredWidth(getPreferredWidth()); +- } // setMaxWidth() ++ } + + /** + * getMaxWidth +- * @returns int ++ * @return int + */ +- public int getMaxWidth() { ++ public int getMaxWidth() ++ { + return maxWidth; +- } // getMaxWidth() ++ } + + /** + * setResizable + * @param isResizable TODO + */ +- public void setResizable(boolean isResizable) { ++ public void setResizable(boolean isResizable) ++ { + this.isResizable = isResizable; +- } // setResizable() ++ } + + /** + * getResizable +- * @returns boolean ++ * @return boolean + */ +- public boolean getResizable() { ++ public boolean getResizable() ++ { + return isResizable; +- } // getResizable() ++ } + + /** + * sizeWidthToFit + */ +- public void sizeWidthToFit() { ++ public void sizeWidthToFit() ++ { + // TODO +- } // sizeWidthToFit() ++ } + + /** + * disableResizedPosting + */ +- public void disableResizedPosting() { ++ public void disableResizedPosting() ++ { + // Does nothing +- } // disableResizedPosting() ++ } + + /** + * enableResizedPosting + */ +- public void enableResizedPosting() { ++ public void enableResizedPosting() ++ { + // Does nothing +- } // enableResizedPosting() ++ } + + /** + * addPropertyChangeListener +- * @param listener TODO ++ * @param listener the listener to all + */ +- public synchronized void addPropertyChangeListener(PropertyChangeListener listener) { ++ public synchronized void addPropertyChangeListener(PropertyChangeListener listener) ++ { + changeSupport.addPropertyChangeListener(listener); +- } // addPropertyChangeListener() ++ } + + /** + * removePropertyChangeListener +- * @param listener TODO ++ * @param listener the listener to remove + */ +- public synchronized void removePropertyChangeListener(PropertyChangeListener listener) { ++ public synchronized void removePropertyChangeListener(PropertyChangeListener listener) ++ { + changeSupport.removePropertyChangeListener(listener); +- } // removePropertyChangeListener() ++ } + + /** + * createDefaultHeaderRenderer +- * @returns TableCellRenderer ++ * @return TableCellRenderer + */ +- protected TableCellRenderer createDefaultHeaderRenderer() { ++ protected TableCellRenderer createDefaultHeaderRenderer() ++ { + return new DefaultTableCellRenderer(); +- } // createDefaultHeaderRenderer() +- +- +-} // TableColumn ++ } ++} +Index: javax/swing/table/TableColumnModel.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/table/TableColumnModel.java,v +retrieving revision 1.2 +diff -u -r1.2 TableColumnModel.java +--- javax/swing/table/TableColumnModel.java 12 Oct 2003 13:33:31 -0000 1.2 ++++ javax/swing/table/TableColumnModel.java 6 Sep 2004 16:36:09 -0000 +@@ -37,17 +37,17 @@ + + package javax.swing.table; + +-// Imports + import java.util.Enumeration; + import javax.swing.ListSelectionModel; + import javax.swing.event.TableColumnModelListener; + ++ + /** + * TableColumnModel public interface + * @author Andrew Selkirk + */ +-public interface TableColumnModel { +- ++public interface TableColumnModel ++{ + /** + * addColumn + * @param column TableColumn +@@ -75,13 +75,13 @@ + + /** + * getColumnCount +- * @returns Column count ++ * @return Column count + */ + int getColumnCount(); + + /** + * getColumns +- * @returns Enumeration of columns ++ * @return Enumeration of columns + */ + Enumeration getColumns(); + +@@ -99,19 +99,19 @@ + + /** + * getColumnMargin +- * @returns Column margin ++ * @return Column margin + */ + int getColumnMargin(); + + /** + * getColumnIndexAtX +- * @returns Column index as position x ++ * @return Column index as position x + */ + int getColumnIndexAtX(int xPosition); + + /** + * getTotalColumnWidth +- * @returns Total column width ++ * @return Total column width + */ + int getTotalColumnWidth(); + +@@ -123,19 +123,19 @@ + + /** + * getColumnSelectionAllowed +- * @returns true if column selection allowed, false otherwise ++ * @return true if column selection allowed, false otherwise + */ + boolean getColumnSelectionAllowed(); + + /** + * getSelectedColumns +- * @returns Selected columns ++ * @return Selected columns + */ + int[] getSelectedColumns(); + + /** + * getSelectedColumnCount +- * @returns Count of selected columns ++ * @return Count of selected columns + */ + int getSelectedColumnCount(); + +@@ -162,6 +162,4 @@ + * @param listener TableColumnModelListener + */ + void removeColumnModelListener(TableColumnModelListener listener); +- +- +-} // TableColumnModel ++} +Index: javax/swing/table/TableModel.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/table/TableModel.java,v +retrieving revision 1.2 +diff -u -r1.2 TableModel.java +--- javax/swing/table/TableModel.java 12 Oct 2003 13:33:31 -0000 1.2 ++++ javax/swing/table/TableModel.java 6 Sep 2004 16:36:09 -0000 +@@ -37,38 +37,38 @@ + + package javax.swing.table; + +-// Imports + import javax.swing.event.TableModelListener; + ++ + /** + * TableModel public interface + * @author Andrew Selkirk + */ +-public interface TableModel { +- ++public interface TableModel ++{ + /** + * getRowCount +- * @returns row count ++ * @return row count + */ + int getRowCount(); + + /** + * getColumnCount +- * @returns column count ++ * @return column count + */ + int getColumnCount(); + + /** + * getColumnName + * @param columnIndex Column index +- * @returns Column name ++ * @return Column name + */ + String getColumnName(int columnIndex); + + /** + * getColumnClass + * @param columnIndex Column index +- * @returns Column class ++ * @return Column class + */ + Class getColumnClass(int columnIndex); + +@@ -76,7 +76,7 @@ + * isCellEditable + * @param rowIndex Row index + * @param columnIndex Column index +- * @returns true if editable, false otherwise ++ * @return true if editable, false otherwise + */ + boolean isCellEditable(int rowIndex, int columnIndex); + +@@ -84,7 +84,7 @@ + * getValueAt + * @param rowIndex Row index + * @param columnIndex Column index +- * @returns Value at specified indices ++ * @return Value at specified indices + */ + Object getValueAt(int rowIndex, int columnIndex); + +@@ -107,6 +107,4 @@ + * @param listener TableModelListener + */ + void removeTableModelListener(TableModelListener listener); +- +- +-} // TableModel ++} +Index: javax/swing/text/AbstractDocument.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/text/AbstractDocument.java,v +retrieving revision 1.3 +diff -u -r1.3 AbstractDocument.java +--- javax/swing/text/AbstractDocument.java 10 Jan 2004 21:07:44 -0000 1.3 ++++ javax/swing/text/AbstractDocument.java 6 Sep 2004 16:36:09 -0000 +@@ -1,4 +1,4 @@ +-/* AbstractDocument.java -- ++/* AbstractDocument.java -- + Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. +@@ -37,6 +37,8 @@ + + package javax.swing.text; + ++import java.io.Serializable; ++import java.util.Collections; + import java.util.Dictionary; + import java.util.Enumeration; + import java.util.EventListener; +@@ -47,321 +49,776 @@ + import javax.swing.event.UndoableEditEvent; + import javax.swing.event.UndoableEditListener; + import javax.swing.tree.TreeNode; ++import javax.swing.undo.AbstractUndoableEdit; ++import javax.swing.undo.CompoundEdit; + import javax.swing.undo.UndoableEdit; + +-public abstract class AbstractDocument implements Document ++ ++public abstract class AbstractDocument ++ implements Document, Serializable + { +- Vector doc_list = new Vector(); +- Vector undo_list = new Vector(); ++ private static final long serialVersionUID = -116069779446114664L; ++ protected static final String BAD_LOCATION = "document location failure"; ++ public static final String BidiElementName = "bidi level"; ++ public static final String ContentElementName = "content"; ++ public static final String ParagraphElementName = "paragraph"; ++ public static final String SectionElementName = "section"; ++ public static final String ElementNameAttribute = "$ename"; ++ ++ Content content; ++ AttributeContext context; ++ protected EventListenerList listenerList = new EventListenerList(); ++ ++ protected AbstractDocument(Content doc) ++ { ++ this(doc, StyleContext.getDefaultStyleContext()); ++ } ++ ++ protected AbstractDocument(Content doc, AttributeContext ctx) ++ { ++ content = doc; ++ context = ctx; ++ } ++ ++ // These still need to be implemented by a derived class: ++ public abstract Element getParagraphElement(int pos); ++ ++ public abstract Element getDefaultRootElement(); ++ ++ protected Element createBranchElement(Element parent, ++ AttributeSet attributes) ++ { ++ return new BranchElement(parent, attributes); ++ } ++ ++ protected Element createLeafElement(Element parent, AttributeSet attributes, ++ int start, int end) ++ { ++ return new LeafElement(parent, attributes, start, end); ++ } ++ ++ public Position createPosition(final int offset) throws BadLocationException ++ { ++ if (offset < 0 || offset > getLength()) ++ throw new BadLocationException(getText(0, getLength()), offset); ++ ++ return new Position() ++ { ++ public int getOffset() ++ { ++ return offset; ++ } ++ }; ++ } + +- // these still need to be implemented by a derived class: +- public abstract Element getParagraphElement(int pos); +- public abstract Element getDefaultRootElement(); +- +- // some inner classes sun says I should have: +- abstract class AbstractElement implements Element, TreeNode +- { +- int count, offset; +- AttributeSet attr; +- Vector elts = new Vector(); +- String name; +- Element parent; +- Vector kids = new Vector(); +- TreeNode tree_parent; +- +- public AbstractElement(Element p, AttributeSet s) +- { parent = p; attr = s; } +- +- public Enumeration children() { return kids.elements(); } +- public boolean getAllowsChildren() { return true; } +- public TreeNode getChildAt(int index) { return (TreeNode) kids.elementAt(index); } +- public int getChildCount() { return kids.size(); } +- public int getIndex(TreeNode node) { return kids.indexOf(node); } +- public TreeNode getParent() { return tree_parent; } +- +- public AttributeSet getAttributes() { return attr; } +- public Document getDocument() { return AbstractDocument.this; } +- public Element getElement(int index) { return (Element)elts.elementAt(index); } +- public String getName() { return name; } +- public Element getParentElement() { return parent; } +- +- public abstract boolean isLeaf(); +- public abstract int getEndOffset(); +- public abstract int getElementCount(); +- public abstract int getElementIndex(int offset); +- public abstract int getStartOffset(); ++ protected void fireChangedUpdate(DocumentEvent event) ++ { ++ DocumentListener[] listeners = getDocumentListeners(); ++ ++ for (int index = 0; index < listeners.length; ++index) ++ listeners[index].changedUpdate(event); ++ } ++ ++ protected void fireInsertUpdate(DocumentEvent event) ++ { ++ DocumentListener[] listeners = getDocumentListeners(); ++ ++ for (int index = 0; index < listeners.length; ++index) ++ listeners[index].insertUpdate(event); ++ } ++ ++ protected void fireRemoveUpdate(DocumentEvent event) ++ { ++ DocumentListener[] listeners = getDocumentListeners(); ++ ++ for (int index = 0; index < listeners.length; ++index) ++ listeners[index].removeUpdate(event); ++ } ++ ++ protected void fireUndoableEditUpdate(UndoableEditEvent event) ++ { ++ UndoableEditListener[] listeners = getUndoableEditListeners(); ++ ++ for (int index = 0; index < listeners.length; ++index) ++ listeners[index].undoableEditHappened(event); ++ } ++ ++ public int getAsynchronousLoadPriority() ++ { ++ return 0; ++ } ++ ++ protected AttributeContext getAttributeContext() ++ { ++ return context; ++ } ++ ++ public Element getBidiRootElement() ++ { ++ return null; ++ } ++ ++ protected Content getContent() ++ { ++ return content; ++ } ++ ++ protected Thread getCurrentWriter() ++ { ++ return null; ++ } ++ ++ public Dictionary getDocumentProperties() ++ { ++ return null; ++ } ++ ++ public Position getEndPosition() ++ { ++ return new Position() ++ { ++ public int getOffset() ++ { ++ return getLength(); ++ } ++ }; ++ } ++ ++ public int getLength() ++ { ++ return content.length(); ++ } ++ ++ public EventListener[] getListeners(Class listenerType) ++ { ++ return listenerList.getListeners(listenerType); ++ } ++ ++ public Object getProperty(Object key) ++ { ++ return null; ++ } ++ ++ public Element[] getRootElements() ++ { ++ Element[] elements = new Element[1]; ++ elements[0] = getDefaultRootElement(); ++ return elements; ++ } ++ ++ public Position getStartPosition() ++ { ++ return new Position() ++ { ++ public int getOffset() ++ { ++ return 0; ++ } ++ }; ++ } ++ ++ public String getText(int offset, int length) throws BadLocationException ++ { ++ return content.getString(offset, length); ++ } ++ ++ public void getText(int offset, int length, Segment segment) ++ throws BadLocationException ++ { ++ content.getChars(offset, length, segment); ++ } ++ ++ public void insertString(int offset, String text, AttributeSet attributes) ++ throws BadLocationException ++ { ++ // Just return when no text to insert was given. ++ if (text == null || text.length() == 0) ++ return; ++ ++ DefaultDocumentEvent event = ++ new DefaultDocumentEvent(offset, text.length(), ++ DocumentEvent.EventType.INSERT); ++ content.insertString(offset, text); ++ insertUpdate(event, attributes); ++ fireInsertUpdate(event); ++ } ++ ++ protected void insertUpdate(DefaultDocumentEvent chng, AttributeSet attr) ++ { ++ } ++ ++ protected void postRemoveUpdate(DefaultDocumentEvent chng) ++ { ++ } ++ ++ public void putProperty(Object key, Object value) ++ { ++ } ++ ++ public void readLock() ++ { ++ } ++ ++ public void readUnlock() ++ { ++ } ++ ++ public void remove(int offset, int length) throws BadLocationException ++ { ++ DefaultDocumentEvent event = ++ new DefaultDocumentEvent(offset, length, ++ DocumentEvent.EventType.REMOVE); ++ removeUpdate(event); ++ content.remove(offset, length); ++ postRemoveUpdate(event); ++ fireRemoveUpdate(event); ++ } ++ ++ /** ++ * Replaces some text in the document. ++ * ++ * @since 1.4 ++ */ ++ public void replace(int offset, int length, String text, ++ AttributeSet attributes) ++ throws BadLocationException ++ { ++ remove(offset, length); ++ insertString(offset, text, attributes); ++ } ++ ++ /** ++ * Adds a DocumentListener object to this document. ++ * ++ * @param listener the listener to add ++ */ ++ public void addDocumentListener(DocumentListener listener) ++ { ++ listenerList.add(DocumentListener.class, listener); ++ } ++ ++ /** ++ * Removes a DocumentListener object from this document. ++ * ++ * @param listener the listener to remove ++ */ ++ public void removeDocumentListener(DocumentListener listener) ++ { ++ listenerList.remove(DocumentListener.class, listener); ++ } ++ ++ /** ++ * Returns add added DocumentListener objects. ++ * ++ * @return an array of listeners ++ */ ++ public DocumentListener[] getDocumentListeners() ++ { ++ return (DocumentListener[]) getListeners(DocumentListener.class); ++ } ++ ++ /** ++ * Adds a UndoableEditListener object to this document. ++ * ++ * @param listener the listener to add ++ */ ++ public void addUndoableEditListener(UndoableEditListener listener) ++ { ++ listenerList.add(UndoableEditListener.class, listener); ++ } ++ ++ /** ++ * Removes a UndoableEditListener object from this document. ++ * ++ * @param listener the listener to remove ++ */ ++ public void removeUndoableEditListener(UndoableEditListener listener) ++ { ++ listenerList.remove(UndoableEditListener.class, listener); ++ } ++ ++ /** ++ * Returns add added UndoableEditListener objects. ++ * ++ * @return an array of listeners ++ */ ++ public UndoableEditListener[] getUndoableEditListeners() ++ { ++ return (UndoableEditListener[]) getListeners(UndoableEditListener.class); ++ } ++ ++ protected void removeUpdate(DefaultDocumentEvent chng) ++ { ++ } ++ ++ public void render(Runnable r) ++ { ++ } ++ ++ public void setAsynchronousLoadPriority(int p) ++ { ++ } ++ ++ public void setDocumentProperties(Dictionary x) ++ { ++ } ++ ++ protected void writeLock() ++ { ++ } ++ ++ protected void writeUnlock() ++ { ++ } ++ ++ public interface AttributeContext ++ { ++ AttributeSet addAttribute(AttributeSet old, Object name, Object value); ++ ++ AttributeSet addAttributes(AttributeSet old, AttributeSet attributes); ++ ++ AttributeSet getEmptySet(); ++ ++ void reclaim(AttributeSet attributes); ++ ++ AttributeSet removeAttribute(AttributeSet old, Object name); ++ ++ AttributeSet removeAttributes(AttributeSet old, AttributeSet attributes); ++ ++ AttributeSet removeAttributes(AttributeSet old, Enumeration names); ++ } ++ ++ public interface Content ++ { ++ Position createPosition(int offset) throws BadLocationException; ++ ++ int length(); ++ ++ UndoableEdit insertString(int where, String str) ++ throws BadLocationException; ++ ++ UndoableEdit remove(int where, int nitems) throws BadLocationException; ++ ++ String getString(int where, int len) throws BadLocationException; ++ ++ void getChars(int where, int len, Segment txt) throws BadLocationException; ++ } ++ ++ public abstract class AbstractElement ++ implements Element, MutableAttributeSet, TreeNode, Serializable ++ { ++ private static final long serialVersionUID = 1265312733007397733L; ++ int count; ++ int offset; ++ ++ AttributeSet attributes; ++ ++ Element element_parent; ++ Vector element_children; ++ ++ TreeNode tree_parent; ++ Vector tree_children; ++ ++ public AbstractElement(Element p, AttributeSet s) ++ { ++ element_parent = p; ++ attributes = s; + } + +- interface AttributeContext ++ // TreeNode implementation ++ ++ public Enumeration children() ++ { ++ return Collections.enumeration(tree_children); ++ } ++ ++ public boolean getAllowsChildren() ++ { ++ return true; ++ } ++ ++ public TreeNode getChildAt(int index) + { ++ return (TreeNode) tree_children.get(index); ++ } ++ ++ public int getChildCount() ++ { ++ return tree_children.size(); ++ } ++ ++ public int getIndex(TreeNode node) ++ { ++ return tree_children.indexOf(node); + } + +- +- class BranchElement extends AbstractElement ++ public TreeNode getParent() + { +- public BranchElement(Element e, AttributeSet a, int s, int end) +- { super(e, a); } ++ return tree_parent; ++ } + +- public boolean isLeaf() { return false; } +- public int getEndOffset() { return 0; } +- public int getElementCount() { return 0; } +- public int getElementIndex(int offset) { return 0; } +- public int getStartOffset() { return 0; } ++ public abstract boolean isLeaf(); ++ ++ ++ // MutableAttributeSet support ++ ++ public void addAttribute(Object name, Object value) ++ { ++ attributes = getAttributeContext().addAttribute(attributes, name, value); + } +- +- interface Content ++ ++ public void addAttributes(AttributeSet attrs) + { +- Position createPosition(int offset) throws BadLocationException; +- int length(); +- UndoableEdit insertString(int where, String str) throws BadLocationException; +- UndoableEdit remove(int where, int nitems) throws BadLocationException; +- String getString(int where, int len) throws BadLocationException; +- void getChars(int where, int len, Segment txt) throws BadLocationException; ++ attributes = getAttributeContext().addAttributes(attributes, attrs); + } +- +- class DefaultDocumentEvent implements DocumentEvent ++ ++ public void removeAttribute(Object name) + { +- public int len, off; +- public Document getDocument() { return AbstractDocument.this; } +- public int getLength() { return len; } +- public int getOffset() { return off; } +- public DocumentEvent.EventType getType() { return null; } +- public DocumentEvent.ElementChange getChange(Element elem) { return null; } ++ attributes = getAttributeContext().removeAttribute(attributes, name); + } +- +- static class ElementEdit ++ ++ public void removeAttributes(AttributeSet attrs) + { +- } +- +- class LeafElement extends AbstractElement ++ attributes = getAttributeContext().removeAttributes(attributes, attrs); ++ } ++ ++ public void removeAttributes(Enumeration names) ++ { ++ attributes = getAttributeContext().removeAttributes(attributes, names); ++ } ++ ++ public void setResolveParent(AttributeSet parent) + { +- LeafElement(Element e, AttributeSet a, int s, int end) +- { super(e, a); } ++ attributes = getAttributeContext().addAttribute(attributes, ResolveAttribute, parent); ++ } ++ ++ ++ // AttributeSet interface support + +- public boolean isLeaf() { return true; } +- public int getEndOffset() { return 0; } +- public int getElementCount() { return 0; } +- public int getElementIndex(int offset) { return 0; } +- public int getStartOffset() { return 0; } ++ public boolean containsAttribute(Object name, Object value) ++ { ++ return attributes.containsAttribute(name, value); + } +- + +- Content content; ++ public boolean containsAttributes(AttributeSet attrs) ++ { ++ return attributes.containsAttributes(attrs); ++ } + +- AbstractDocument(Content doc) ++ public AttributeSet copyAttributes() + { +- content = doc; ++ return attributes.copyAttributes(); + } +- +- /******************************************************** +- * +- * the meat: +- * +- ***********/ +- + +- public void addDocumentListener(DocumentListener listener) ++ public Object getAttribute(Object key) + { +- doc_list.addElement(listener); ++ return attributes.getAttribute(key); + } +- +- public void addUndoableEditListener(UndoableEditListener listener) ++ ++ public int getAttributeCount() + { +- undo_list.addElement(listener); ++ return attributes.getAttributeCount(); + } +- +- protected Element createBranchElement(Element parent, AttributeSet a) +- { +- return new BranchElement(parent, a, 0, 0); ++ ++ public Enumeration getAttributeNames() ++ { ++ return attributes.getAttributeNames(); + } +- +- protected Element createLeafElement(Element parent, AttributeSet a, int p0, int p1) ++ ++ public AttributeSet getResolveParent() + { +- return new LeafElement(parent, a, p0, p1-p0); ++ return attributes.getResolveParent(); + } + +- public Position createPosition(int offs) ++ public boolean isDefined(Object attrName) + { +- final int a = offs; +- return new Position() +- { +- public int getOffset() +- { +- return a; +- } +- }; ++ return attributes.isDefined(attrName); + } +- +- protected void fireChangedUpdate(DocumentEvent e) ++ ++ public boolean isEqual(AttributeSet attrs) + { ++ return attributes.isEqual(attrs); + } +- +- protected void fireInsertUpdate(DocumentEvent e) ++ ++ // Element interface support ++ ++ public AttributeSet getAttributes() + { ++ return attributes; + } +- +- protected void fireRemoveUpdate(DocumentEvent e) ++ ++ public Document getDocument() + { ++ return AbstractDocument.this; + } +- +- protected void fireUndoableEditUpdate(UndoableEditEvent e) ++ ++ public Element getElement(int index) + { ++ return (Element) element_children.get(index); + } +- int getAsynchronousLoadPriority() ++ ++ public String getName() + { +- return 0; ++ return (String) getAttribute(NameAttribute); + } +- +- protected AttributeContext getAttributeContext() ++ ++ public Element getParentElement() + { +- return null; ++ return element_parent; + } ++ ++ public abstract int getEndOffset(); ++ ++ public abstract int getElementCount(); ++ ++ public abstract int getElementIndex(int offset); ++ ++ public abstract int getStartOffset(); ++ } ++ ++ public class BranchElement extends AbstractElement ++ { ++ private static final long serialVersionUID = -8595176318868717313L; + +- Element getBidiRootElement() ++ private Vector children = new Vector(); ++ ++ public BranchElement(Element parent, AttributeSet attributes) + { +- return null; ++ super(parent, attributes); ++ } ++ ++ public Enumeration children() ++ { ++ return children.elements(); + } +- +- protected Content getContent() ++ ++ public boolean getAllowsChildren() + { +- return content; ++ return true; + } +- +- protected Thread getCurrentWriter() ++ ++ public Element getElement(int index) + { ++ if (index < 0 || index >= children.size()) + return null; ++ ++ return (Element) children.get(index); + } + ++ public int getElementCount() ++ { ++ return children.size(); ++ } + +- public Dictionary getDocumentProperties() ++ public int getElementIndex(int offset) + { +- return null; ++ if (children.size() == 0) ++ return 0; ++ ++ Element element = positionToElement(offset); ++ ++ if (element == null) ++ return 0; ++ ++ return children.indexOf(element); + } + +- public Position getEndPosition() ++ public int getEndOffset() + { +- return null; ++ return ((Element) children.lastElement()).getEndOffset(); + } + +- public int getLength() ++ public String getName() + { +- return content.length(); ++ return "AbstractDocument.BranchElement"; + } +- +- public EventListener[] getListeners(Class listenerType) ++ ++ public int getStartOffset() + { +- return null; ++ return ((Element) children.firstElement()).getStartOffset(); + } +- +- public Object getProperty(Object key) ++ ++ public boolean isLeaf() + { +- return null; ++ return false; + } + +- public Element[] getRootElements() ++ public Element positionToElement(int position) + { +- return null; ++ // XXX: There is surely a better algorithm ++ // as beginning from first element each time. ++ for (int index = 0; index < children.size(); ++index) ++ { ++ Element elem = (Element) children.get(index); ++ ++ if ((elem.getStartOffset() <= position) ++ && (position < elem.getEndOffset())) ++ return elem; ++ } ++ ++ return null; ++ } ++ ++ public void replace(int offset, int length, Element[] elems) ++ { ++ for (int index = 0; index < length; ++index) ++ children.removeElementAt(offset); ++ ++ for (int index = 0; index < elems.length; ++index) ++ children.add(offset + index, elems[index]); ++ } ++ ++ public String toString() ++ { ++ return getName() + ": " + "content"; + } ++ } ++ ++ public class DefaultDocumentEvent extends CompoundEdit ++ implements DocumentEvent ++ { ++ private static final long serialVersionUID = -7406103236022413522L; + +- public Position getStartPosition() ++ private int offset; ++ private int length; ++ private DocumentEvent.EventType type; ++ ++ public DefaultDocumentEvent(int offset, int length, ++ DocumentEvent.EventType type) + { +- return null; ++ this.offset = offset; ++ this.length = length; ++ this.type = type; + } + +- public String getText(int offset, int length) ++ public Document getDocument() + { +- try { +- return content.getString(offset, length); +- } catch (Exception e) { +- System.out.println("Hmmm, fail to getText: " + offset + " -> " + length); +- return null; +- } ++ return AbstractDocument.this; ++ } ++ ++ public int getLength() ++ { ++ return length; + } +- +- public void getText(int offset, int length, Segment txt) ++ ++ public int getOffset() + { +- String a = getText(offset, length); ++ return offset; ++ } + +- if (a == null) +- { +- txt.offset = 0; +- txt.count = 0; +- txt.array = new char[0]; +- return; +- } +- +- txt.offset = offset; +- txt.count = length; +- +- char chars[] = new char[ a.length() ]; +- +- a.getChars(0, a.length(), chars, 0); +- +- txt.array = chars; +- } +- +- public void insertString(int offs, String str, AttributeSet a) +- { +- try { +- content.insertString(offs, str); +- } catch (Exception e) { +- System.err.println("FAILED TO INSERT-STRING: " + e + ", at:"+offs); +- } ++ public DocumentEvent.EventType getType() ++ { ++ return type; + } +- +- protected void insertUpdate(DefaultDocumentEvent chng, AttributeSet attr) ++ ++ public DocumentEvent.ElementChange getChange(Element elem) + { ++ return null; + } +- +- protected void postRemoveUpdate(DefaultDocumentEvent chng) ++ } ++ ++ public static class ElementEdit extends AbstractUndoableEdit ++ implements DocumentEvent.ElementChange ++ { ++ private static final long serialVersionUID = -1216620962142928304L; ++ ++ private Element elem; ++ private int index; ++ private Element[] removed; ++ private Element[] added; ++ ++ public ElementEdit(Element elem, int index, ++ Element[] removed, Element[] added) + { ++ this.elem = elem; ++ this.index = index; ++ this.removed = removed; ++ this.added = added; + } +- +- public void putProperty(Object key, Object value) ++ ++ public Element[] getChildrenAdded() + { ++ return added; + } +- +- public void readLock() ++ ++ public Element[] getChildrenRemoved() + { ++ return removed; + } +- +- public void readUnlock() ++ ++ public Element getElement() + { ++ return elem; + } +- +- public void remove(int offs, int len) ++ ++ public int getIndex() + { ++ return index; + } +- +- public void removeDocumentListener(DocumentListener listener) ++ } ++ ++ public class LeafElement extends AbstractElement ++ { ++ private static final long serialVersionUID = 5115368706941283802L; ++ private int start; ++ private int end; ++ ++ public LeafElement(Element parent, AttributeSet attributes, int start, ++ int end) + { ++ super(parent, attributes); ++ this.start = start; ++ this.end = end; + } +- +- public void removeUndoableEditListener(UndoableEditListener listener) ++ ++ public Enumeration children() + { ++ return null; + } +- +- protected void removeUpdate(DefaultDocumentEvent chng) ++ ++ public boolean getAllowsChildren() + { ++ return false; + } +- +- public void render(Runnable r) ++ ++ public Element getElement() + { ++ return null; + } +- +- void setAsynchronousLoadPriority(int p) ++ ++ public int getElementCount() ++ { ++ return 0; ++ } ++ ++ public int getElementIndex(int offset) ++ { ++ return -1; ++ } ++ ++ public int getEndOffset() ++ { ++ return end; ++ } ++ ++ public String getName() + { ++ return "AbstractDocument.LeafElement"; + } +- +- void setDocumentProperties(Dictionary x) ++ ++ public int getStartOffset() + { ++ return start; + } +- +- protected void writeLock() ++ ++ public boolean isLeaf() + { ++ return true; + } +- +- protected void writeUnlock() ++ ++ public String toString() + { ++ return getName() + ": " + "content"; + } ++ } + } +Index: javax/swing/text/AttributeSet.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/text/AttributeSet.java,v +retrieving revision 1.2 +diff -u -r1.2 AttributeSet.java +--- javax/swing/text/AttributeSet.java 10 Jan 2004 21:07:44 -0000 1.2 ++++ javax/swing/text/AttributeSet.java 6 Sep 2004 16:36:09 -0000 +@@ -41,13 +41,32 @@ + + public interface AttributeSet + { +- boolean containsAttribute(Object name, Object value); +- boolean containsAttributes(AttributeSet attributes); +- AttributeSet copyAttributes(); +- Object getAttribute(Object key); +- int getAttributeCount(); +- Enumeration getAttributeNames(); +- AttributeSet getResolveParent(); +- boolean isDefined(Object attrName); +- boolean isEqual(AttributeSet attr); ++ static interface CharacterAttribute ++ { ++ } ++ ++ static interface ColorAttribute ++ { ++ } ++ ++ static interface FontAttribute ++ { ++ } ++ ++ static interface ParagraphAttribute ++ { ++ } ++ ++ static Object NameAttribute = StyleConstants.NameAttribute; ++ static Object ResolveAttribute = StyleConstants.ResolveAttribute; ++ ++ boolean containsAttribute(Object name, Object value); ++ boolean containsAttributes(AttributeSet attributes); ++ AttributeSet copyAttributes(); ++ Object getAttribute(Object key); ++ int getAttributeCount(); ++ Enumeration getAttributeNames(); ++ AttributeSet getResolveParent(); ++ boolean isDefined(Object attrName); ++ boolean isEqual(AttributeSet attr); + } +Index: javax/swing/text/BadLocationException.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/text/BadLocationException.java,v +retrieving revision 1.2 +diff -u -r1.2 BadLocationException.java +--- javax/swing/text/BadLocationException.java 21 Mar 2003 09:18:31 -0000 1.2 ++++ javax/swing/text/BadLocationException.java 6 Sep 2004 16:36:09 -0000 +@@ -1,5 +1,5 @@ +-/* BadLocationException.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++/* BadLocationException.java -- ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -37,27 +37,28 @@ + + package javax.swing.text; + +- + public class BadLocationException extends Exception +-{ +- int offset; ++{ ++ private static final long serialVersionUID = -7712259886815656766L; + ++ int offset; ++ + /** + * Constructs a BadLocationException + * + * @param str A string indicating what was wrong with the arguments + * @param offset Offset within the document that was requested >= 0 + */ +- public BadLocationException (String str, int offset) ++ public BadLocationException(String str, int offset) + { +- super (str); ++ super(str); + this.offset = offset; + } + + /** + * Returns the offset into the document that was not legal + */ +- public int offsetRequested () ++ public int offsetRequested() + { + return offset; + } +Index: javax/swing/text/CharacterIterator.java +=================================================================== +RCS file: javax/swing/text/CharacterIterator.java +diff -N javax/swing/text/CharacterIterator.java +--- javax/swing/text/CharacterIterator.java 9 Aug 2002 04:26:12 -0000 1.1 ++++ /dev/null 1 Jan 1970 00:00:00 -0000 +@@ -1,53 +0,0 @@ +-/* CharacterIterator.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. +- +-This file is part of GNU Classpath. +- +-GNU Classpath is free software; you can redistribute it and/or modify +-it under the terms of the GNU General Public License as published by +-the Free Software Foundation; either version 2, or (at your option) +-any later version. +- +-GNU Classpath is distributed in the hope that it will be useful, but +-WITHOUT ANY WARRANTY; without even the implied warranty of +-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-General Public License for more details. +- +-You should have received a copy of the GNU General Public License +-along with GNU Classpath; see the file COPYING. If not, write to the +-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +-02111-1307 USA. +- +-Linking this library statically or dynamically with other modules is +-making a combined work based on this library. Thus, the terms and +-conditions of the GNU General Public License cover the whole +-combination. +- +-As a special exception, the copyright holders of this library give you +-permission to link this library with independent modules to produce an +-executable, regardless of the license terms of these independent +-modules, and to copy and distribute the resulting executable under +-terms of your choice, provided that you also meet, for each linked +-independent module, the terms and conditions of the license of that +-module. An independent module is a module which is not derived from +-or based on this library. If you modify this library, you may extend +-this exception to your version of the library, but you are not +-obligated to do so. If you do not wish to do so, delete this +-exception statement from your version. */ +- +-package javax.swing.text; +- +- +-public interface CharacterIterator extends Cloneable +-{ +- Object clone(); +- char current(); +- char first(); +- int getBeginIndex(); +- int getEndIndex(); +- int getIndex(); +- char last(); +- char next(); +- char previous(); +- char setIndex(int position); +-} +Index: javax/swing/text/ComponentView.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/text/ComponentView.java,v +retrieving revision 1.3 +diff -u -r1.3 ComponentView.java +--- javax/swing/text/ComponentView.java 10 Jan 2004 21:07:44 -0000 1.3 ++++ javax/swing/text/ComponentView.java 6 Sep 2004 16:36:09 -0000 +@@ -79,6 +79,7 @@ + } + + public Shape modelToView(int pos, Shape a, Position.Bias b) ++ throws BadLocationException + { + return null; + } +Index: javax/swing/text/DefaultCaret.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/text/DefaultCaret.java,v +retrieving revision 1.3 +diff -u -r1.3 DefaultCaret.java +--- javax/swing/text/DefaultCaret.java 10 Jan 2004 21:07:44 -0000 1.3 ++++ javax/swing/text/DefaultCaret.java 6 Sep 2004 16:36:10 -0000 +@@ -1,4 +1,4 @@ +-/* DefaultCaret.java -- ++/* DefaultCaret.java -- + Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. +@@ -41,139 +41,276 @@ + import java.awt.Graphics; + import java.awt.Point; + import java.awt.Rectangle; +-import java.awt.Shape; + import java.awt.event.FocusEvent; + import java.awt.event.FocusListener; + import java.awt.event.MouseEvent; + import java.awt.event.MouseListener; + import java.awt.event.MouseMotionListener; + import java.util.EventListener; +-import java.util.Vector; ++ ++import javax.swing.event.ChangeEvent; + import javax.swing.event.ChangeListener; + import javax.swing.event.EventListenerList; + + +-public class DefaultCaret extends Rectangle implements Caret, FocusListener, MouseListener, MouseMotionListener ++public class DefaultCaret extends Rectangle ++ implements Caret, FocusListener, MouseListener, MouseMotionListener + { +- Color color = new Color(0,0,0); +- JTextComponent parent; ++ private static final long serialVersionUID = 228155774675466193L; ++ ++ protected ChangeEvent changeEvent = new ChangeEvent(this); ++ protected EventListenerList listenerList = new EventListenerList(); ++ ++ private JTextComponent textComponent; ++ ++ private boolean selectionVisible = true; ++ private int blinkRate = 0; ++ private int dot = 0; ++ private int mark = 0; ++ private Point magicCaretPosition = null; ++ private boolean visible = true; ++ private Object highlightEntry; ++ ++ public void mouseDragged(MouseEvent event) ++ { ++ } ++ ++ public void mouseMoved(MouseEvent event) ++ { ++ } ++ ++ public void mouseClicked(MouseEvent event) ++ { ++ } ++ ++ public void mouseEntered(MouseEvent event) ++ { ++ } ++ ++ public void mouseExited(MouseEvent event) ++ { ++ } ++ ++ public void mousePressed(MouseEvent event) ++ { ++ } ++ ++ public void mouseReleased(MouseEvent event) ++ { ++ } ++ ++ public void focusGained(FocusEvent event) ++ { ++ } ++ ++ public void focusLost(FocusEvent event) ++ { ++ } ++ ++ protected void moveCaret(MouseEvent event) ++ { ++ } ++ ++ protected void positionCaret(MouseEvent event) ++ { ++ } ++ ++ public void deinstall(JTextComponent c) ++ { ++ textComponent.removeFocusListener(this); ++ textComponent.removeMouseListener(this); ++ textComponent.removeMouseMotionListener(this); ++ textComponent = null; ++ } ++ ++ public void install(JTextComponent c) ++ { ++ textComponent = c; ++ textComponent.addFocusListener(this); ++ textComponent.addMouseListener(this); ++ textComponent.addMouseMotionListener(this); ++ repaint(); ++ } ++ ++ public void setMagicCaretPosition(Point p) ++ { ++ magicCaretPosition = p; ++ } ++ ++ public Point getMagicCaretPosition() ++ { ++ return magicCaretPosition; ++ } ++ ++ public int getMark() ++ { ++ return mark; ++ } ++ ++ private void handleHighlight() ++ { ++ Highlighter highlighter = textComponent.getHighlighter(); ++ ++ if (highlighter == null) ++ return; ++ ++ int p0 = Math.min(dot, mark); ++ int p1 = Math.max(dot, mark); ++ ++ if (selectionVisible && p0 != p1) ++ { ++ try ++ { ++ if (highlightEntry == null) ++ highlightEntry = highlighter.addHighlight(p0, p1, getSelectionPainter()); ++ else ++ highlighter.changeHighlight(highlightEntry, p0, p1); ++ } ++ catch (BadLocationException e) ++ { ++ // This should never happen. ++ throw new InternalError(); ++ } ++ } ++ else ++ { ++ if (highlightEntry != null) ++ { ++ highlighter.removeHighlight(highlightEntry); ++ highlightEntry = null; ++ } ++ } ++ } ++ ++ public void setSelectionVisible(boolean v) ++ { ++ if (selectionVisible == v) ++ return; ++ ++ selectionVisible = v; ++ handleHighlight(); ++ repaint(); ++ } ++ ++ public boolean isSelectionVisible() ++ { ++ return selectionVisible; ++ } ++ ++ protected final void repaint() ++ { ++ if (textComponent != null) ++ textComponent.repaint(); ++ } ++ ++ public void paint(Graphics g) ++ { ++ if (textComponent == null) ++ return; ++ ++ int dot = getDot(); ++ Rectangle rect = null; ++ ++ try ++ { ++ rect = textComponent.modelToView(dot); ++ } ++ catch (BadLocationException e) ++ { ++ // This should never happen as dot should be always valid. ++ return; ++ } ++ ++ if (rect == null) ++ return; ++ ++ // First we need to delete the old caret. ++ // FIXME: Implement deleting of old caret. + +- public void mouseDragged(java.awt.event.MouseEvent evt) +- { +- } +- +- public void mouseMoved(java.awt.event.MouseEvent evt) +- { +- } +- +- public void mouseClicked(java.awt.event.MouseEvent evt) +- { +- } +- +- public void mouseEntered(java.awt.event.MouseEvent evt) +- { +- } +- +- public void mouseExited(java.awt.event.MouseEvent evt) +- { +- } +- +- public void mousePressed(java.awt.event.MouseEvent evt) +- { +- } +- +- public void mouseReleased(java.awt.event.MouseEvent evt) +- { +- } +- +- public void focusGained(java.awt.event.FocusEvent evt) +- { +- } +- +- public void focusLost(java.awt.event.FocusEvent evt) +- { +- } +- +- // caret methods: +- +- public void deinstall(JTextComponent c) +- { +- parent.removeFocusListener(this); +- parent.removeMouseListener(this); +- +- parent = null; +- } +- public void install(JTextComponent c) +- { +- parent.addFocusListener(this); +- parent.addMouseListener(this); +- parent = c; +- repaint(); +- } +- +- Point magic = null; +- public void setMagicCaretPosition(Point p) +- { magic = p; } +- public Point getMagicCaretPosition() +- { return magic; } +- +- +- int mark = 0; +- public int getMark() +- { return mark; } +- +- boolean vis_sel = true; +- public void setSelectionVisible(boolean v) +- { vis_sel = v; repaint(); } +- public boolean isSelectionVisible() +- { return vis_sel; } +- +- private void repaint() +- { +- if (parent != null) +- { +- parent.repaint(); +- } +- } +- +- public void paint(Graphics g) +- { +- g.setColor(color); +- g.drawLine(x,y, +- x,y+height); +- } +- +- +- Vector changes = new Vector(); +- public void addChangeListener(ChangeListener l) +- { changes.addElement(l); } +- public void removeChangeListener(ChangeListener l) +- { changes.removeElement(l); } +- +- +- int blink = 500; +- public int getBlinkRate() +- { return blink; } +- public void setBlinkRate(int rate) +- { blink = rate; } +- +- int dot = 0; +- public int getDot() +- { return dot; } +- public void moveDot(int dot) +- { setDot(dot); } +- public void setDot(int dot) +- { +- this.dot = dot; +- repaint(); +- } +- +- boolean vis = true; +- public boolean isVisible() +- { return vis; } +- public void setVisible(boolean v) +- { +- vis = v; +- repaint(); +- } ++ // Now draw the caret on the new position if visible. ++ if (visible) ++ { ++ g.setColor(textComponent.getCaretColor()); ++ g.drawLine(rect.x, rect.y, rect.x, rect.y + rect.height); ++ } ++ } ++ ++ public EventListener[] getListeners(Class listenerType) ++ { ++ return listenerList.getListeners(listenerType); ++ } ++ ++ public void addChangeListener(ChangeListener listener) ++ { ++ listenerList.add(ChangeListener.class, listener); ++ } ++ ++ public void removeChangeListener(ChangeListener listener) ++ { ++ listenerList.remove(ChangeListener.class, listener); ++ } ++ ++ public ChangeListener[] getChangeListeners() ++ { ++ return (ChangeListener[]) getListeners(ChangeListener.class); ++ } ++ ++ protected void fireStateChanged() ++ { ++ ChangeListener[] listeners = getChangeListeners(); ++ ++ for (int index = 0; index < listeners.length; ++index) ++ listeners[index].stateChanged(changeEvent); ++ } ++ ++ protected final JTextComponent getComponent() ++ { ++ return textComponent; ++ } ++ ++ public int getBlinkRate() ++ { ++ return blinkRate; ++ } ++ ++ public void setBlinkRate(int rate) ++ { ++ blinkRate = rate; ++ } ++ ++ public int getDot() ++ { ++ return dot; ++ } ++ ++ public void moveDot(int dot) ++ { ++ this.dot = dot; ++ handleHighlight(); ++ repaint(); ++ } ++ ++ public void setDot(int dot) ++ { ++ this.dot = dot; ++ this.mark = dot; ++ handleHighlight(); ++ repaint(); ++ } ++ ++ public boolean isVisible() ++ { ++ return visible; ++ } ++ ++ public void setVisible(boolean v) ++ { ++ visible = v; ++ repaint(); ++ } ++ ++ protected Highlighter.HighlightPainter getSelectionPainter() ++ { ++ return DefaultHighlighter.DefaultPainter; ++ } + } +Index: javax/swing/text/DefaultEditorKit.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/text/DefaultEditorKit.java,v +retrieving revision 1.4 +diff -u -r1.4 DefaultEditorKit.java +--- javax/swing/text/DefaultEditorKit.java 10 Jan 2004 21:07:44 -0000 1.4 ++++ javax/swing/text/DefaultEditorKit.java 6 Sep 2004 16:36:10 -0000 +@@ -37,15 +37,134 @@ + + package javax.swing.text; + ++import java.awt.Toolkit; ++import java.awt.event.ActionEvent; + import java.io.InputStream; ++import java.io.IOException; + import java.io.OutputStream; + import java.io.Reader; + import java.io.Writer; + import javax.swing.Action; + import javax.swing.JEditorPane; + ++ + public class DefaultEditorKit extends EditorKit + { ++ public static class BeepAction ++ extends TextAction ++ { ++ public BeepAction() ++ { ++ super(beepAction); ++ } ++ ++ public void actionPerformed(ActionEvent event) ++ { ++ Toolkit.getDefaultToolkit().beep(); ++ } ++ } ++ ++ public static class CopyAction ++ extends TextAction ++ { ++ public CopyAction() ++ { ++ super(copyAction); ++ } ++ public void actionPerformed(ActionEvent event) ++ { ++ } ++ } ++ ++ public static class CutAction ++ extends TextAction ++ { ++ public CutAction() ++ { ++ super(cutAction); ++ } ++ public void actionPerformed(ActionEvent event) ++ { ++ } ++ } ++ ++ public static class DefaultKeyTypedAction ++ extends TextAction ++ { ++ public DefaultKeyTypedAction() ++ { ++ super(defaultKeyTypedAction); ++ } ++ public void actionPerformed(ActionEvent event) ++ { ++ JTextComponent t = getTextComponent(event); ++ if (t != null) ++ { ++ try ++ { ++ t.getDocument().insertString(t.getCaret().getDot(), event.getActionCommand(), null); ++ t.getCaret().setDot(Math.min(t.getCaret().getDot() + 1, ++ t.getDocument().getEndPosition().getOffset())); ++ t.repaint(); ++ } ++ catch (BadLocationException be) ++ { ++ // FIXME: we're not authorized to throw this.. swallow it? ++ } ++ } ++ } ++ } ++ ++ public static class InsertBreakAction ++ extends TextAction ++ { ++ public InsertBreakAction() ++ { ++ super(insertBreakAction); ++ } ++ public void actionPerformed(ActionEvent event) ++ { ++ } ++ } ++ ++ public static class InsertContentAction ++ extends TextAction ++ { ++ public InsertContentAction() ++ { ++ super(insertContentAction); ++ } ++ public void actionPerformed(ActionEvent event) ++ { ++ } ++ } ++ ++ public static class InsertTabAction ++ extends TextAction ++ { ++ public InsertTabAction() ++ { ++ super(insertTabAction); ++ } ++ public void actionPerformed(ActionEvent event) ++ { ++ } ++ } ++ ++ public static class PasteAction ++ extends TextAction ++ { ++ public PasteAction() ++ { ++ super(pasteAction); ++ } ++ public void actionPerformed(ActionEvent event) ++ { ++ } ++ } ++ ++ private static final long serialVersionUID = 9017245433028523428L; ++ + public static final String backwardAction = "caret-backward"; + public static final String beepAction = "beep"; + public static final String beginAction = "caret-begin"; +@@ -60,7 +179,7 @@ + public static final String downAction = "caret-down"; + public static final String endAction = "caret-end"; + public static final String endLineAction = "caret-end-line"; +- public static final String endOfLineStringProperty = "__EndOfLine__"; ++ public static final String EndOfLineStringProperty = "__EndOfLine__"; + public static final String endParagraphAction = "caret-end-paragraph"; + public static final String endWordAction = "caret-end-word"; + public static final String forwardAction = "caret-forward"; +@@ -77,16 +196,19 @@ + public static final String selectionBackwardAction = "selection-backward"; + public static final String selectionBeginAction = "selection-begin"; + public static final String selectionBeginLineAction = "selection-begin-line"; +- public static final String selectionBeginParagraphAction = "selection-begin-paragraph"; ++ public static final String selectionBeginParagraphAction = ++ "selection-begin-paragraph"; + public static final String selectionBeginWordAction = "selection-begin-word"; + public static final String selectionDownAction = "selection-down"; + public static final String selectionEndAction = "selection-end"; + public static final String selectionEndLineAction = "selection-end-line"; +- public static final String selectionEndParagraphAction = "selection-end-paragraph"; ++ public static final String selectionEndParagraphAction = ++ "selection-end-paragraph"; + public static final String selectionEndWordAction = "selection-end-word"; + public static final String selectionForwardAction = "selection-forward"; + public static final String selectionNextWordAction = "selection-next-word"; +- public static final String selectionPreviousWordAction = "selection-previous-word"; ++ public static final String selectionPreviousWordAction = ++ "selection-previous-word"; + public static final String selectionUpAction = "selection-up"; + public static final String selectLineAction = "select-line"; + public static final String selectParagraphAction = "select-paragraph"; +@@ -94,48 +216,170 @@ + public static final String upAction = "caret-up"; + public static final String writableAction = "set-writable"; + +- void deinstall(JEditorPane c) +- { +- // Called when the kit is being removed from the JEditorPane. +- } +- void install(JEditorPane c) +- { +- } ++ public DefaultEditorKit() ++ { ++ } + +- Caret createCaret() +- { +- return null; +- } +- Document createDefaultDocument() ++ private static Action[] defaultActions = ++ new Action[] { ++ new BeepAction(), ++ new CopyAction(), ++ new CutAction(), ++ new DefaultKeyTypedAction(), ++ new InsertBreakAction(), ++ new InsertContentAction(), ++ new InsertTabAction(), ++ new PasteAction(), ++ new TextAction(deleteNextCharAction) ++ { ++ public void actionPerformed(ActionEvent event) ++ { ++ JTextComponent t = getTextComponent(event); ++ if (t != null) ++ { ++ try ++ { ++ int pos = t.getCaret().getDot(); ++ if (pos < t.getDocument().getEndPosition().getOffset()) ++ { ++ t.getDocument().remove(t.getCaret().getDot(), 1); ++ t.repaint(); ++ } ++ } ++ catch (BadLocationException e) ++ { ++ // FIXME: we're not authorized to throw this.. swallow it? ++ } ++ } ++ } ++ }, ++ new TextAction(deletePrevCharAction) ++ { ++ public void actionPerformed(ActionEvent event) ++ { ++ JTextComponent t = getTextComponent(event); ++ if (t != null) ++ { ++ try ++ { ++ int pos = t.getCaret().getDot(); ++ if (pos > t.getDocument().getStartPosition().getOffset()) ++ { ++ t.getDocument().remove(pos - 1, 1); ++ t.getCaret().setDot(pos - 1); ++ t.repaint(); ++ } ++ } ++ catch (BadLocationException e) ++ { ++ // FIXME: we're not authorized to throw this.. swallow it? ++ } ++ } ++ } ++ }, ++ new TextAction(backwardAction) ++ { ++ public void actionPerformed(ActionEvent event) ++ { ++ JTextComponent t = getTextComponent(event); ++ if (t != null) ++ { ++ t.getCaret().setDot(Math.max(t.getCaret().getDot() - 1, ++ t.getDocument().getStartPosition().getOffset())); ++ } ++ } ++ }, ++ new TextAction(forwardAction) ++ { ++ public void actionPerformed(ActionEvent event) ++ { ++ JTextComponent t = getTextComponent(event); ++ if (t != null) ++ { ++ t.getCaret().setDot(Math.min(t.getCaret().getDot() + 1, ++ t.getDocument().getEndPosition().getOffset())); ++ } ++ } ++ }, ++ new TextAction(selectionBackwardAction) ++ { ++ public void actionPerformed(ActionEvent event) ++ { ++ JTextComponent t = getTextComponent(event); ++ if (t != null) ++ { ++ t.getCaret().moveDot(Math.max(t.getCaret().getDot() - 1, ++ t.getDocument().getStartPosition().getOffset())); ++ } ++ } ++ }, ++ new TextAction(selectionForwardAction) ++ { ++ public void actionPerformed(ActionEvent event) ++ { ++ JTextComponent t = getTextComponent(event); ++ if (t != null) ++ { ++ t.getCaret().moveDot(Math.min(t.getCaret().getDot() + 1, ++ t.getDocument().getEndPosition().getOffset())); ++ } ++ } ++ }, ++ }; ++ ++ /** ++ * Called when the kit is being removed from the JEditorPane. ++ */ ++ public void deinstall(JEditorPane c) + { +- return new PlainDocument(); + } + +- Action[] getActions() ++ public void install(JEditorPane c) + { +- return null; + } + +- String getContentType() ++ public Caret createCaret() ++ { ++ return new DefaultCaret(); ++ } ++ ++ public Document createDefaultDocument() ++ { ++ return new PlainDocument(); ++ } ++ ++ public Action[] getActions() ++ { ++ return defaultActions; ++ } ++ ++ public String getContentType() + { + return "text/plain"; + } + +- ViewFactory getViewFactory() ++ public ViewFactory getViewFactory() + { + return null; + } +- void read(InputStream in, Document doc, int pos) ++ ++ public void read(InputStream in, Document doc, int pos) ++ throws BadLocationException, IOException + { + } +- void read(Reader in, Document doc, int pos) ++ ++ public void read(Reader in, Document doc, int pos) ++ throws BadLocationException, IOException + { + } +- void write(OutputStream out, Document doc, int pos, int len) ++ ++ public void write(OutputStream out, Document doc, int pos, int len) ++ throws BadLocationException, IOException + { + } +- void write(Writer out, Document doc, int pos, int len) ++ ++ public void write(Writer out, Document doc, int pos, int len) ++ throws BadLocationException, IOException + { + } + } +- +Index: javax/swing/text/DefaultHighlighter.java +=================================================================== +RCS file: javax/swing/text/DefaultHighlighter.java +diff -N javax/swing/text/DefaultHighlighter.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/text/DefaultHighlighter.java 6 Sep 2004 16:36:10 -0000 +@@ -0,0 +1,250 @@ ++/* DefaultHighlighter.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++ ++package javax.swing.text; ++ ++import java.awt.Color; ++import java.awt.Graphics; ++import java.awt.Rectangle; ++import java.awt.Shape; ++import java.util.Vector; ++ ++import javax.swing.text.JTextComponent; ++import javax.swing.text.View; ++ ++ ++public class DefaultHighlighter extends LayeredHighlighter ++{ ++ public static class DefaultHighlightPainter ++ extends LayerPainter ++ { ++ private Color color; ++ ++ public DefaultHighlightPainter(Color c) ++ { ++ super(); ++ color = c; ++ } ++ ++ public Color getColor() ++ { ++ return color; ++ } ++ ++ private void paintHighlight(Graphics g, Rectangle rect) ++ { ++ g.fillRect(rect.x, rect.y, rect.width, rect.height); ++ } ++ ++ public void paint(Graphics g, int p0, int p1, Shape bounds, ++ JTextComponent c) ++ { ++ Rectangle r0 = null; ++ Rectangle r1 = null; ++ Rectangle rect = bounds.getBounds(); ++ ++ try ++ { ++ r0 = c.modelToView(p0); ++ r1 = c.modelToView(p1); ++ } ++ catch (BadLocationException e) ++ { ++ // This should never occur. ++ return; ++ } ++ ++ if (r0 == null || r1 == null) ++ return; ++ ++ if (color == null) ++ g.setColor(c.getSelectionColor()); ++ else ++ g.setColor(color); ++ ++ // Check if only one line to highlight. ++ if (r0.y == r1.y) ++ { ++ r0.width = r1.x - r0.x; ++ paintHighlight(g, r0); ++ return; ++ } ++ ++ // First line, from p0 to end-of-line. ++ r0.width = rect.x + rect.width - r0.x; ++ paintHighlight(g, r0); ++ ++ // FIXME: All the full lines in between, if any (assumes that all lines ++ // have the same height -- not a good assumption with JEditorPane/JTextPane). ++ r0.y += r0.height; ++ r0.x = rect.x; ++ ++ while (r0.y < r1.y) ++ { ++ paintHighlight(g, r0); ++ r0.y += r0.height; ++ } ++ ++ // Last line, from beginnin-of-line to p1. ++ paintHighlight(g, r1); ++ } ++ ++ public Shape paintLayer(Graphics g, int p0, int p1, Shape bounds, ++ JTextComponent c, View view) ++ { ++ throw new InternalError(); ++ } ++ } ++ ++ private class HighlightEntry ++ { ++ int p0; ++ int p1; ++ Highlighter.HighlightPainter painter; ++ ++ public HighlightEntry(int p0, int p1, Highlighter.HighlightPainter painter) ++ { ++ this.p0 = p0; ++ this.p1 = p1; ++ this.painter = painter; ++ } ++ ++ public int getStartPosition() ++ { ++ return p0; ++ } ++ ++ public int getEndPosition() ++ { ++ return p1; ++ } ++ ++ public Highlighter.HighlightPainter getPainter() ++ { ++ return painter; ++ } ++ } ++ ++ /** ++ * @specnote final as of 1.4 ++ */ ++ public static final LayeredHighlighter.LayerPainter DefaultPainter = ++ new DefaultHighlightPainter(null); ++ ++ private JTextComponent textComponent; ++ private Vector highlights = new Vector(); ++ ++ public DefaultHighlighter() ++ { ++ } ++ ++ private void checkPositions(int p0, int p1) ++ throws BadLocationException ++ { ++ if (p0 < 0) ++ throw new BadLocationException("DefaultHighlighter", p0); ++ ++ if (p1 < p0) ++ throw new BadLocationException("DefaultHighlighter", p1); ++ } ++ ++ public void install(JTextComponent c) ++ { ++ textComponent = c; ++ removeAllHighlights(); ++ } ++ ++ public void deinstall(JTextComponent c) ++ { ++ textComponent = null; ++ } ++ ++ public Object addHighlight(int p0, int p1, Highlighter.HighlightPainter painter) ++ throws BadLocationException ++ { ++ checkPositions(p0, p1); ++ HighlightEntry entry = new HighlightEntry(p0, p1, painter); ++ highlights.add(entry); ++ return entry; ++ } ++ ++ public void removeHighlight(Object tag) ++ { ++ highlights.remove(tag); ++ } ++ ++ public void removeAllHighlights() ++ { ++ highlights.clear(); ++ } ++ ++ public Highlighter.Highlight[] getHighlights() ++ { ++ return null; ++ } ++ ++ public void changeHighlight(Object tag, int p0, int p1) ++ throws BadLocationException ++ { ++ checkPositions(p0, p1); ++ HighlightEntry entry = (HighlightEntry) tag; ++ entry.p0 = p0; ++ entry.p1 = p1; ++ } ++ ++ public void paintLayeredHighlights(Graphics g, int p0, int p1, ++ Shape viewBounds, JTextComponent editor, ++ View view) ++ { ++ } ++ ++ public void paint(Graphics g) ++ { ++ // Check if there are any highlights. ++ if (highlights.size() == 0) ++ return; ++ ++ Shape bounds = textComponent.getBounds(); ++ ++ for (int index = 0; index < highlights.size(); ++index) ++ { ++ HighlightEntry entry = (HighlightEntry) highlights.get(index); ++ entry.painter.paint(g, entry.p0, entry.p1, bounds, textComponent); ++ } ++ } ++} +Index: javax/swing/text/Document.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/text/Document.java,v +retrieving revision 1.4 +diff -u -r1.4 Document.java +--- javax/swing/text/Document.java 10 Jan 2004 21:07:44 -0000 1.4 ++++ javax/swing/text/Document.java 6 Sep 2004 16:36:10 -0000 +@@ -1,4 +1,4 @@ +-/* Document.java -- ++/* Document.java -- + Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. +@@ -40,27 +40,48 @@ + import javax.swing.event.DocumentListener; + import javax.swing.event.UndoableEditListener; + ++ + public interface Document +-{ ++{ + String StreamDescriptionProperty = "stream"; +- + String TitleProperty = "text"; + + void addDocumentListener(DocumentListener listener); ++ + void addUndoableEditListener(UndoableEditListener listener); +- Position createPosition(int offs); ++ ++ Position createPosition(int offs) ++ throws BadLocationException; ++ + Element getDefaultRootElement(); ++ + Position getEndPosition(); ++ + int getLength(); ++ + Object getProperty(Object key); ++ + Element[] getRootElements(); ++ + Position getStartPosition(); +- String getText(int offset, int length); +- void getText(int offset, int length, Segment txt); +- void insertString(int offset, String str, AttributeSet a); ++ ++ String getText(int offset, int length) ++ throws BadLocationException; ++ ++ void getText(int offset, int length, Segment txt) ++ throws BadLocationException; ++ ++ void insertString(int offset, String str, AttributeSet a) ++ throws BadLocationException; ++ + void putProperty(Object key, Object value); +- void remove(int offs, int len); ++ ++ void remove(int offs, int len) ++ throws BadLocationException; ++ + void removeDocumentListener(DocumentListener listener); ++ + void removeUndoableEditListener(UndoableEditListener listener); ++ + void render(Runnable r); + } +Index: javax/swing/text/EditorKit.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/text/EditorKit.java,v +retrieving revision 1.2 +diff -u -r1.2 EditorKit.java +--- javax/swing/text/EditorKit.java 10 Jan 2004 21:07:44 -0000 1.2 ++++ javax/swing/text/EditorKit.java 6 Sep 2004 16:36:10 -0000 +@@ -38,38 +38,58 @@ + package javax.swing.text; + + import java.io.InputStream; ++import java.io.IOException; + import java.io.OutputStream; + import java.io.Reader; ++import java.io.Serializable; + import java.io.Writer; + import javax.swing.Action; + import javax.swing.JEditorPane; + +-public abstract class EditorKit implements Cloneable ++ ++public abstract class EditorKit ++ implements Cloneable, Serializable + { +- EditorKit() ++ private static final long serialVersionUID = -5044124649345887822L; ++ ++ public EditorKit() + { + } + +- EditorKit(EditorKit kit) ++ public Object clone() + { ++ try ++ { ++ return super.clone(); + } +- +- void deinstall(JEditorPane c) ++ catch (CloneNotSupportedException e) + { +- // Called when the kit is being removed from the JEditorPane. ++ return null; + } +- void install(JEditorPane c) ++ } ++ ++ /** ++ * Called when the kit is being removed from the JEditorPane. ++ */ ++ public void deinstall(JEditorPane c) + { + } + +- abstract Caret createCaret(); +- abstract Document createDefaultDocument(); +- abstract Action[] getActions(); +- abstract String getContentType(); +- abstract ViewFactory getViewFactory(); +- abstract void read(InputStream in, Document doc, int pos); +- abstract void read(Reader in, Document doc, int pos); +- abstract void write(OutputStream out, Document doc, int pos, int len); +- abstract void write(Writer out, Document doc, int pos, int len); ++ public void install(JEditorPane c) ++ { + } + ++ public abstract Caret createCaret(); ++ public abstract Document createDefaultDocument(); ++ public abstract Action[] getActions(); ++ public abstract String getContentType(); ++ public abstract ViewFactory getViewFactory(); ++ public abstract void read(InputStream in, Document doc, int pos) ++ throws BadLocationException, IOException; ++ public abstract void read(Reader in, Document doc, int pos) ++ throws BadLocationException, IOException; ++ public abstract void write(OutputStream out, Document doc, int pos, int len) ++ throws BadLocationException, IOException; ++ public abstract void write(Writer out, Document doc, int pos, int len) ++ throws BadLocationException, IOException; ++} +Index: javax/swing/text/FieldView.java +=================================================================== +RCS file: javax/swing/text/FieldView.java +diff -N javax/swing/text/FieldView.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/text/FieldView.java 6 Sep 2004 16:36:10 -0000 +@@ -0,0 +1,103 @@ ++/* FieldView.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++ ++package javax.swing.text; ++ ++import java.awt.Component; ++import java.awt.FontMetrics; ++import java.awt.Graphics; ++import java.awt.Shape; ++ ++ ++public class FieldView extends PlainView ++{ ++ public FieldView(Element elem) ++ { ++ super(elem); ++ } ++ ++ protected FontMetrics getFontMetrics() ++ { ++ Component container = getContainer(); ++ return container.getFontMetrics(container.getFont()); ++ } ++ ++ public float getPreferredSpan(int axis) ++ { ++ if (axis != X_AXIS && axis != Y_AXIS) ++ throw new IllegalArgumentException(); ++ ++ FontMetrics fm = getFontMetrics(); ++ ++ if (axis == Y_AXIS) ++ return fm.getHeight(); ++ ++ String text; ++ Element elem = getElement(); ++ ++ try ++ { ++ text = elem.getDocument().getText(elem.getStartOffset(), ++ elem.getEndOffset()); ++ } ++ catch (BadLocationException e) ++ { ++ // This should never happen. ++ text = ""; ++ System.out.println("Michael: FieldView.getPreferredSpan: Error"); ++ } ++ ++ return fm.stringWidth(text); ++ } ++ ++ public int getResizeWeight(int axis) ++ { ++ return axis = axis == X_AXIS ? 1 : 0; ++ } ++ ++ public Shape modelToView(int pos, Shape a, Position.Bias bias) ++ throws BadLocationException ++ { ++ return super.modelToView(pos, a, bias); ++ } ++ ++ public void paint(Graphics g, Shape s) ++ { ++ super.paint(g, s); ++ } ++} +Index: javax/swing/text/GapContent.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/text/GapContent.java,v +retrieving revision 1.2 +diff -u -r1.2 GapContent.java +--- javax/swing/text/GapContent.java 10 Jan 2004 21:07:44 -0000 1.2 ++++ javax/swing/text/GapContent.java 6 Sep 2004 16:36:10 -0000 +@@ -1,4 +1,4 @@ +-/* GapContent.java -- ++/* GapContent.java -- + Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. +@@ -35,69 +35,75 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +-package javax.swing.text; ++package javax.swing.text; ++ ++import java.io.Serializable; + + // too lazy to make a real gapcontent. + // lets just use a stringbuffer instead. +- + import javax.swing.undo.UndoableEdit; + +-public class GapContent implements AbstractDocument.Content ++public class GapContent ++ implements AbstractDocument.Content, Serializable + { +- StringBuffer buf = new StringBuffer(); +- +- public GapContent() +- { +- this(10); +- } ++ private static final long serialVersionUID = 8374645204155842629L; + +- public GapContent(int size) +- { +- } +- +- public Position createPosition(final int offset) throws BadLocationException +- { +- return new Position() +- { +- int off = offset; +- public int getOffset() +- { +- return off; +- } +- }; +- } +- +- public int length() +- { +- return buf.length(); +- } +- +- public UndoableEdit insertString(int where, String str) throws BadLocationException +- { +- buf.insert(where, str); +- return null; +- } +- +- public UndoableEdit remove(int where, int nitems) throws BadLocationException +- { +- buf.delete(where, where + nitems); +- return null; +- } +- +- public String getString(int where, int len) throws BadLocationException +- { +- return buf.toString(); +- } +- +- public void getChars(int where, int len, Segment txt) throws BadLocationException +- { +- txt.array = new char[len]; +- +- System.arraycopy(buf.toString().toCharArray(), where, +- txt.array, 0, +- len); +- +- txt.count = len; +- txt.offset = 0; +- } ++ StringBuffer buf = new StringBuffer(); ++ ++ public GapContent() ++ { ++ this(10); ++ } ++ ++ public GapContent(int size) ++ { ++ } ++ ++ public Position createPosition(final int offset) throws BadLocationException ++ { ++ return new Position() ++ { ++ int off = offset; ++ ++ public int getOffset() ++ { ++ return off; ++ } ++ }; ++ } ++ ++ public int length() ++ { ++ return buf.length(); ++ } ++ ++ public UndoableEdit insertString(int where, String str) ++ throws BadLocationException ++ { ++ buf.insert(where, str); ++ return null; ++ } ++ ++ public UndoableEdit remove(int where, int nitems) ++ throws BadLocationException ++ { ++ buf.delete(where, where + nitems); ++ return null; ++ } ++ ++ public String getString(int where, int len) throws BadLocationException ++ { ++ return buf.toString(); ++ } ++ ++ public void getChars(int where, int len, Segment txt) ++ throws BadLocationException ++ { ++ txt.array = new char[len]; ++ ++ System.arraycopy(buf.toString().toCharArray(), where, txt.array, 0, len); ++ ++ txt.count = len; ++ txt.offset = 0; ++ } + } +Index: javax/swing/text/Highlighter.java +=================================================================== +RCS file: javax/swing/text/Highlighter.java +diff -N javax/swing/text/Highlighter.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/text/Highlighter.java 6 Sep 2004 16:36:10 -0000 +@@ -0,0 +1,80 @@ ++/* Highlighter.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++ ++package javax.swing.text; ++ ++import java.awt.Graphics; ++import java.awt.Shape; ++ ++ ++public interface Highlighter ++{ ++ public interface Highlight ++ { ++ int getEndOffset(); ++ ++ int getStartOffset(); ++ ++ HighlightPainter getPainter(); ++ } ++ ++ public interface HighlightPainter ++ { ++ public void paint(Graphics g, int p0, int p1, Shape bounds, ++ JTextComponent c); ++ } ++ ++ void install(JTextComponent c); ++ ++ void deinstall(JTextComponent c); ++ ++ Object addHighlight(int p0, int p1, HighlightPainter p) ++ throws BadLocationException; ++ ++ void removeAllHighlights(); ++ ++ void removeHighlight(Object tag); ++ ++ void changeHighlight(Object tag, int p0, int p1) ++ throws BadLocationException; ++ ++ Highlight[] getHighlights(); ++ ++ void paint(Graphics g); ++} ++ +Index: javax/swing/text/JTextComponent.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/text/JTextComponent.java,v +retrieving revision 1.3 +diff -u -r1.3 JTextComponent.java +--- javax/swing/text/JTextComponent.java 24 Jun 2003 09:51:28 -0000 1.3 ++++ javax/swing/text/JTextComponent.java 6 Sep 2004 16:36:10 -0000 +@@ -1,5 +1,5 @@ +-/* JTextComponent.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++/* JTextComponent.java -- ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -38,19 +38,30 @@ + package javax.swing.text; + + import java.awt.AWTEvent; ++import java.awt.Color; + import java.awt.Component; + import java.awt.Dimension; + import java.awt.Image; + import java.awt.Insets; +-import java.awt.Rectangle; + import java.awt.Point; ++import java.awt.Rectangle; ++import java.awt.event.InputMethodListener; ++import java.awt.event.KeyEvent; ++ ++import java.util.Enumeration; ++import java.util.Hashtable; ++ + import javax.accessibility.Accessible; + import javax.accessibility.AccessibleContext; + import javax.accessibility.AccessibleRole; + import javax.accessibility.AccessibleStateSet; + import javax.accessibility.AccessibleText; ++import javax.swing.Action; ++import javax.swing.ActionMap; + import javax.swing.Icon; ++import javax.swing.InputMap; + import javax.swing.JComponent; ++import javax.swing.JViewport; + import javax.swing.KeyStroke; + import javax.swing.Scrollable; + import javax.swing.UIManager; +@@ -58,454 +69,1268 @@ + import javax.swing.event.CaretListener; + import javax.swing.event.DocumentEvent; + import javax.swing.event.DocumentListener; ++import javax.swing.plaf.ActionMapUIResource; ++import javax.swing.plaf.InputMapUIResource; + import javax.swing.plaf.TextUI; + ++ + public abstract class JTextComponent extends JComponent + implements Scrollable, Accessible + { +-// public class AccessibleJTextComponent extends AccessibleJComponent +-// implements AccessibleText, CaretListener, DocumentListener, +-// AccessibleAction, AccessibleEditableText +-// { +-// } // class AccessibleJTextComponent +- +- /** +- * AccessibleJTextComponent +- */ +- public class AccessibleJTextComponent extends AccessibleJComponent +- implements AccessibleText, CaretListener, DocumentListener { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * caretPos +- */ +- int caretPos; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor AccessibleJTextComponent +- * @param component TODO +- */ +- public AccessibleJTextComponent(JTextComponent component) { +- super(component); +- // TODO +- } // AccessibleJTextComponent() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * getCaretPosition +- * @returns int +- */ +- public int getCaretPosition() { +- return 0; // TODO +- } // getCaretPosition() +- +- /** +- * getSelectedText +- * @returns String +- */ +- public String getSelectedText() { +- return null; // TODO +- } // getSelectedText() +- +- /** +- * getSelectionStart +- * @returns int +- */ +- public int getSelectionStart() { +- return 0; // TODO +- } // getSelectionStart() +- +- /** +- * getSelectionEnd +- * @returns int +- */ +- public int getSelectionEnd() { +- return 0; // TODO +- } // getSelectionEnd() +- +- /** +- * caretUpdate +- * @param value0 TODO +- */ +- public void caretUpdate(CaretEvent value0) { +- // TODO +- } // caretUpdate() +- +- /** +- * getAccessibleStateSet +- * @returns AccessibleStateSet +- */ +- public AccessibleStateSet getAccessibleStateSet() { +- return null; // TODO +- } // getAccessibleStateSet() +- +- /** +- * getAccessibleRole +- * @returns AccessibleRole +- */ +- public AccessibleRole getAccessibleRole() { +- return null; // TODO +- } // getAccessibleRole() +- +- /** +- * getAccessibleText +- * @returns AccessibleText +- */ +- public AccessibleText getAccessibleText() { +- return null; // TODO +- } // getAccessibleText() +- +- /** +- * insertUpdate +- * @param value0 TODO +- */ +- public void insertUpdate(DocumentEvent value0) { +- // TODO +- } // insertUpdate() +- +- /** +- * removeUpdate +- * @param value0 TODO +- */ +- public void removeUpdate(DocumentEvent value0) { +- // TODO +- } // removeUpdate() +- +- /** +- * changedUpdate +- * @param value0 TODO +- */ +- public void changedUpdate(DocumentEvent value0) { +- // TODO +- } // changedUpdate() +- +- /** +- * getIndexAtPoint +- * @param value0 TODO +- * @returns int +- */ +- public int getIndexAtPoint(Point value0) { +- return 0; // TODO +- } // getIndexAtPoint() +- +- /** +- * getRootEditorRect +- * @returns Rectangle +- */ +- Rectangle getRootEditorRect() { +- return null; // TODO +- } // getRootEditorRect() +- +- /** +- * getCharacterBounds +- * @param value0 TODO +- * @returns Rectangle +- */ +- public Rectangle getCharacterBounds(int value0) { +- return null; // TODO +- } // getCharacterBounds() +- +- /** +- * getCharCount +- * @returns int +- */ +- public int getCharCount() { +- return 0; // TODO +- } // getCharCount() +- +- /** +- * getCharacterAttribute +- * @param value0 TODO +- * @returns AttributeSet +- */ +- public AttributeSet getCharacterAttribute(int value0) { +- return null; // TODO +- } // getCharacterAttribute() +- +- /** +- * getAtIndex +- * @param value0 TODO +- * @param value1 TODO +- * @returns String +- */ +- public String getAtIndex(int value0, int value1) { +- return null; // TODO +- } // getAtIndex() +- +- /** +- * getAfterIndex +- * @param value0 TODO +- * @param value1 TODO +- * @returns String +- */ +- public String getAfterIndex(int value0, int value1) { +- return null; // TODO +- } // getAfterIndex() +- +- /** +- * getBeforeIndex +- * @param value0 TODO +- * @param value1 TODO +- * @returns String +- */ +- public String getBeforeIndex(int value0, int value1) { +- return null; // TODO +- } // getBeforeIndex() +- ++ /** ++ * AccessibleJTextComponent ++ */ ++ public class AccessibleJTextComponent extends AccessibleJComponent ++ implements AccessibleText, CaretListener, DocumentListener ++ { ++ private static final long serialVersionUID = 7664188944091413696L; + +- } // AccessibleJTextComponent ++ /** ++ * Constructor AccessibleJTextComponent ++ * @param component TODO ++ */ ++ public AccessibleJTextComponent() ++ { ++ } + ++ /** ++ * getCaretPosition ++ * @return int ++ */ ++ public int getCaretPosition() ++ { ++ return 0; // TODO ++ } + ++ /** ++ * getSelectedText ++ * @return String ++ */ ++ public String getSelectedText() ++ { ++ return null; // TODO ++ } + +- public static class KeyBinding +- { +- public KeyStroke key; +- public String actionName; +- public KeyBinding(KeyStroke key, String actionName) ++ /** ++ * getSelectionStart ++ * @return int ++ */ ++ public int getSelectionStart() + { +- this.key = key; +- this.actionName = actionName; ++ return 0; // TODO + } +- } // class KeyBinding + +- int icon_gap; +- Icon icon; +- int align; +- Document doc; ++ /** ++ * getSelectionEnd ++ * @return int ++ */ ++ public int getSelectionEnd() ++ { ++ return 0; // TODO ++ } + +- public JTextComponent() ++ /** ++ * caretUpdate ++ * @param value0 TODO ++ */ ++ public void caretUpdate(CaretEvent value0) + { +- this("", null, 0); ++ // TODO + } + +- public JTextComponent(Icon image) ++ /** ++ * getAccessibleStateSet ++ * @return AccessibleStateSet ++ */ ++ public AccessibleStateSet getAccessibleStateSet() + { +- this("", image, 0); ++ return null; // TODO + } + +- public JTextComponent(Icon image, int horizontalAlignment) ++ /** ++ * getAccessibleRole ++ * @return AccessibleRole ++ */ ++ public AccessibleRole getAccessibleRole() + { +- this("", image, horizontalAlignment); ++ return null; // TODO + } + +- public JTextComponent(String text) ++ /** ++ * getAccessibleText ++ * @return AccessibleText ++ */ ++ public AccessibleText getAccessibleText() + { +- this(text, null, 0); ++ return null; // TODO + } + +- public JTextComponent(String text, int horizontalAlignment) ++ /** ++ * insertUpdate ++ * @param value0 TODO ++ */ ++ public void insertUpdate(DocumentEvent value0) + { +- this(text, null, horizontalAlignment); ++ // TODO + } + +- public JTextComponent(String text, Icon icon, int horizontalAlignment) ++ /** ++ * removeUpdate ++ * @param value0 TODO ++ */ ++ public void removeUpdate(DocumentEvent value0) + { +- setDocument(new PlainDocument()); ++ // TODO ++ } + +- // do the work..... +- setText(text); +- this.icon = icon; +- this.align = horizontalAlignment; +- +- // its an editor, so: +- enableEvents(AWTEvent.KEY_EVENT_MASK); +- updateUI(); ++ /** ++ * changedUpdate ++ * @param value0 TODO ++ */ ++ public void changedUpdate(DocumentEvent value0) ++ { ++ // TODO + } + +- public void setDocument(Document s) ++ /** ++ * getIndexAtPoint ++ * @param value0 TODO ++ * @return int ++ */ ++ public int getIndexAtPoint(Point value0) + { +- doc = s; +- revalidate(); +- repaint(); ++ return 0; // TODO + } + +- public Document getDocument() ++ /** ++ * getRootEditorRect ++ * @return Rectangle ++ */ ++ Rectangle getRootEditorRect() + { +- if (doc == null) +- System.out.println("doc == null !!!"); +- return doc; ++ return null; + } + +- protected int checkHorizontalKey(int key, String message) ++ /** ++ * getCharacterBounds ++ * @param value0 TODO ++ * @return Rectangle ++ */ ++ public Rectangle getCharacterBounds(int value0) + { +- // Verify that key is a legal value for the horizontalAlignment properties. +- return 0; ++ return null; // TODO + } +- protected int checkVerticalKey(int key, String message) ++ ++ /** ++ * getCharCount ++ * @return int ++ */ ++ public int getCharCount() + { +- // Verify that key is a legal value for the verticalAlignment or verticalTextPosition properties. +- return 0; ++ return 0; // TODO + } +- public AccessibleContext getAccessibleContext() ++ ++ /** ++ * getCharacterAttribute ++ * @param value0 TODO ++ * @return AttributeSet ++ */ ++ public AttributeSet getCharacterAttribute(int value0) + { +- // Get the AccessibleContext of this object +- return null; ++ return null; // TODO + } +- public Icon getDisabledIcon() ++ ++ /** ++ * getAtIndex ++ * @param value0 TODO ++ * @param value1 TODO ++ * @return String ++ */ ++ public String getAtIndex(int value0, int value1) + { +- return null; ++ return null; // TODO + } +- public int getDisplayedMnemonic() ++ ++ /** ++ * getAfterIndex ++ * @param value0 TODO ++ * @param value1 TODO ++ * @return String ++ */ ++ public String getAfterIndex(int value0, int value1) + { +- // Return the keycode that indicates a mnemonic key. +- return 0; ++ return null; // TODO + } +- public int getHorizontalAlignment() ++ ++ /** ++ * getBeforeIndex ++ * @param value0 TODO ++ * @param value1 TODO ++ * @return String ++ */ ++ public String getBeforeIndex(int value0, int value1) + { +- // Returns the alignment of the label's contents along the X axis. +- return 0; ++ return null; // TODO + } +- public int getHorizontalTextPosition() ++ } ++ ++ public static class KeyBinding ++ { ++ public KeyStroke key; ++ public String actionName; ++ ++ /** ++ * Creates a new KeyBinding instance. ++ * ++ * @param key a KeyStroke value ++ * @param actionName a String value ++ */ ++ public KeyBinding(KeyStroke key, String actionName) + { +- // Returns the horizontal position of the label's text, relative to its image. +- return 0; ++ this.key = key; ++ this.actionName = actionName; + } ++ } + +- public Icon getIcon() +- { return icon; } +- public int getIconTextGap() +- { return icon_gap; } ++ /** ++ * According to this ++ * report, a pair of private classes wraps a {@link ++ * javax.swing.text.Keymap} in the new {@link InputMap} / {@link ++ * ActionMap} interfaces, such that old Keymap-using code can make use of ++ * the new framework.

    ++ * ++ *

    A little bit of experimentation with these classes reveals the following ++ * structure: ++ * ++ *

      ++ * ++ *
    • KeymapWrapper extends {@link InputMap} and holds a reference to ++ * the underlying {@link Keymap}.
    • ++ * ++ *
    • KeymapWrapper maps {@link KeyStroke} objects to {@link Action} ++ * objects, by delegation to the underlying {@link Keymap}.
    • ++ * ++ *
    • KeymapActionMap extends {@link ActionMap} also holds a reference to ++ * the underlying {@link Keymap} but only appears to use it for listing ++ * its keys.
    • ++ * ++ *
    • KeymapActionMap maps all {@link Action} objects to ++ * themselves, whether they exist in the underlying {@link ++ * Keymap} or not, and passes other objects to the parent {@link ++ * ActionMap} for resolving. ++ * ++ *
    ++ */ + ++ private class KeymapWrapper extends InputMap ++ { ++ Keymap map; + +- Component getLabelFor() ++ public KeymapWrapper(Keymap k) + { +- // Get the component this is labelling. +- return null; ++ map = k; + } + +- public Insets getMargin() ++ public int size() + { +- // FIXME: Not implemented. +- return null; ++ return map.getBoundKeyStrokes().length + super.size(); + } + +- public void setText(String text) ++ public Object get(KeyStroke ks) + { +- getDocument().remove(0,doc.getLength()); +- getDocument().insertString(0, text, null); ++ Action mapped = null; ++ Keymap m = map; ++ while(mapped == null && m != null) ++ { ++ mapped = m.getAction(ks); ++ if (mapped == null && ks.getKeyEventType() == KeyEvent.KEY_TYPED) ++ mapped = m.getDefaultAction(); ++ if (mapped == null) ++ m = m.getResolveParent(); ++ } ++ ++ if (mapped == null) ++ return super.get(ks); ++ else ++ return mapped; + } +- +- public String getText() ++ ++ public KeyStroke[] keys() + { +- return getDocument().getText(0, +- getDocument().getLength()); ++ KeyStroke[] superKeys = super.keys(); ++ KeyStroke[] mapKeys = map.getBoundKeyStrokes(); ++ KeyStroke[] bothKeys = new KeyStroke[superKeys.length + mapKeys.length]; ++ for (int i = 0; i < superKeys.length; ++i) ++ bothKeys[i] = superKeys[i]; ++ for (int i = 0; i < mapKeys.length; ++i) ++ bothKeys[i + superKeys.length] = mapKeys[i]; ++ return bothKeys; + } + +- public String getUIClassID() ++ public KeyStroke[] allKeys() + { +- // Returns a string that specifies the name of the l&f class that renders this component. +- return "JTextComponent"; ++ KeyStroke[] superKeys = super.allKeys(); ++ KeyStroke[] mapKeys = map.getBoundKeyStrokes(); ++ KeyStroke[] bothKeys = new KeyStroke[superKeys.length + mapKeys.length]; ++ for (int i = 0; i < superKeys.length; ++i) ++ bothKeys[i] = superKeys[i]; ++ for (int i = 0; i < mapKeys.length; ++i) ++ bothKeys[i + superKeys.length] = mapKeys[i]; ++ return bothKeys; + } +- public int getVerticalAlignment() ++ } ++ ++ private class KeymapActionMap extends ActionMap ++ { ++ Keymap map; ++ ++ public KeymapActionMap(Keymap k) + { +- // Returns the alignment of the label's contents along the Y axis. +- return 0; ++ map = k; + } +- public int getVerticalTextPosition() ++ ++ public Action get(Object cmd) + { +- // Returns the vertical position of the label's text, relative to its image. +- return 0; ++ if (cmd instanceof Action) ++ return (Action) cmd; ++ else ++ return super.get(cmd); + } + +- public boolean imageUpdate(Image img, int infoflags, int x, int y, int w, int h) ++ public int size() + { +- // This is overriden to return false if the current Icon's Image is not equal to the passed in Image img. +- return (img == icon); ++ return map.getBoundKeyStrokes().length + super.size(); + } +- protected String paramString() ++ ++ public Object[] keys() + { +- // Returns a string representation of this JTextComponent. +- return "JTextComponent"; ++ Object[] superKeys = super.keys(); ++ Object[] mapKeys = map.getBoundKeyStrokes(); ++ Object[] bothKeys = new Object[superKeys.length + mapKeys.length]; ++ for (int i = 0; i < superKeys.length; ++i) ++ bothKeys[i] = superKeys[i]; ++ for (int i = 0; i < mapKeys.length; ++i) ++ bothKeys[i + superKeys.length] = mapKeys[i]; ++ return bothKeys; + } +- void setDisabledIcon(Icon disabledIcon) ++ ++ public Object[] allKeys() + { +- // Set the icon to be displayed if this JTextComponent is "disabled" (JTextComponent.setEnabled(false)). ++ Object[] superKeys = super.allKeys(); ++ Object[] mapKeys = map.getBoundKeyStrokes(); ++ Object[] bothKeys = new Object[superKeys.length + mapKeys.length]; ++ for (int i = 0; i < superKeys.length; ++i) ++ bothKeys[i] = superKeys[i]; ++ for (int i = 0; i < mapKeys.length; ++i) ++ bothKeys[i + superKeys.length] = mapKeys[i]; ++ return bothKeys; + } +- void setDisplayedMnemonic(char aChar) ++ ++ } ++ ++ static class DefaultKeymap implements Keymap ++ { ++ String name; ++ Keymap parent; ++ Hashtable map; ++ Action defaultAction; ++ ++ public DefaultKeymap(String name) ++ { ++ this.name = name; ++ this.map = new Hashtable(); ++ } ++ ++ public void addActionForKeyStroke(KeyStroke key, Action a) ++ { ++ map.put(key, a); ++ } ++ ++ /** ++ * Looks up a KeyStroke either in the current map or the parent Keymap; ++ * does not return the default action if lookup fails. ++ * ++ * @param key The KeyStroke to look up an Action for. ++ * ++ * @return The mapping for key, or null ++ * if no mapping exists in this Keymap or any of its parents. ++ */ ++ public Action getAction(KeyStroke key) ++ { ++ if (map.containsKey(key)) ++ return (Action) map.get(key); ++ else if (parent != null) ++ return parent.getAction(key); ++ else ++ return null; ++ } ++ ++ public Action[] getBoundActions() + { +- // Specifies the displayedMnemonic as a char value. ++ Action [] ret = new Action[map.size()]; ++ Enumeration e = map.elements(); ++ int i = 0; ++ while (e.hasMoreElements()) ++ { ++ ret[i++] = (Action) e.nextElement(); ++ } ++ return ret; + } +- void setDisplayedMnemonic(int key) ++ ++ public KeyStroke[] getBoundKeyStrokes() + { +- // Specify a keycode that indicates a mnemonic key. ++ KeyStroke [] ret = new KeyStroke[map.size()]; ++ Enumeration e = map.keys(); ++ int i = 0; ++ while (e.hasMoreElements()) ++ { ++ ret[i++] = (KeyStroke) e.nextElement(); ++ } ++ return ret; + } +- void setHorizontalAlignment(int alignment) ++ ++ public Action getDefaultAction() + { +- // Sets the alignment of the label's contents along the X axis. ++ return defaultAction; + } +- void setHorizontalTextPosition(int textPosition) ++ ++ public KeyStroke[] getKeyStrokesForAction(Action a) + { +- // Sets the horizontal position of the label's text, relative to its image. ++ int i = 0; ++ Enumeration e = map.keys(); ++ while (e.hasMoreElements()) ++ { ++ if (map.get(e.nextElement()).equals(a)) ++ ++i; ++ } ++ KeyStroke [] ret = new KeyStroke[i]; ++ i = 0; ++ e = map.keys(); ++ while (e.hasMoreElements()) ++ { ++ KeyStroke k = (KeyStroke) e.nextElement(); ++ if (map.get(k).equals(a)) ++ ret[i++] = k; ++ } ++ return ret; + } +- void setIcon(Icon icon) ++ ++ public String getName() + { +- // Defines the icon this component will display. ++ return name; + } +- public void setIconTextGap(int iconTextGap) ++ ++ public Keymap getResolveParent() + { +- // If both the icon and text properties are set, this property defines the space between them. ++ return parent; + } +- +- public void setLabelFor(Component c) ++ ++ public boolean isLocallyDefined(KeyStroke key) + { +- // Set the component this is labelling. ++ return map.containsKey(key); + } +- +- public void setVerticalAlignment(int alignment) ++ ++ public void removeBindings() + { +- // Sets the alignment of the label's contents along the Y axis. ++ map.clear(); + } +- public void setVerticalTextPosition(int textPosition) ++ ++ public void removeKeyStrokeBinding(KeyStroke key) + { +- // Sets the vertical position of the label's text, relative to its image. ++ map.remove(key); + } + +- public TextUI getUI() +- { return (TextUI) ui; ++ public void setDefaultAction(Action a) ++ { ++ defaultAction = a; + } + +- public void updateUI() ++ public void setResolveParent(Keymap p) + { +- TextUI b = (TextUI)UIManager.getUI(this); +- setUI(b); ++ parent = p; + } + ++ } ++ ++ private static final long serialVersionUID = -8796518220218978795L; ++ ++ public static final String DEFAULT_KEYMAP = "default"; ++ public static final String FOCUS_ACCELERATOR_KEY = "focusAcceleratorKey"; ++ ++ private static Hashtable keymaps = new Hashtable(); ++ private Keymap keymap; ++ ++ /** ++ * Get a Keymap from the global keymap table, by name. ++ * ++ * @param n The name of the Keymap to look up ++ * ++ * @return A Keymap associated with the provided name, or ++ * null if no such Keymap exists ++ * ++ * @see #addKeymap() ++ * @see #removeKeymap() ++ * @see #keymaps ++ */ ++ public static Keymap getKeymap(String n) ++ { ++ return (Keymap) keymaps.get(n); ++ } ++ ++ /** ++ * Remove a Keymap from the global Keymap table, by name. ++ * ++ * @param n The name of the Keymap to remove ++ * ++ * @return The keymap removed from the global table ++ * ++ * @see #addKeymap() ++ * @see #getKeymap() ++ * @see #keymaps ++ */ ++ public static Keymap removeKeymap(String n) ++ { ++ Keymap km = (Keymap) keymaps.get(n); ++ keymaps.remove(n); ++ return km; ++ } ++ ++ /** ++ * Create a new Keymap with a specific name and parent, and add the new ++ * Keymap to the global keymap table. The name may be null, ++ * in which case the new Keymap will not be added to the global ++ * Keymap table. The parent may also be null, which is ++ * harmless. ++ * ++ * @param n The name of the new Keymap, or null ++ * @param parent The parent of the new Keymap, or null ++ * ++ * @return The newly created Keymap ++ * ++ * @see #removeKeymap() ++ * @see #getKeymap() ++ * @see #keymaps ++ */ ++ public static Keymap addKeymap(String n, Keymap parent) ++ { ++ Keymap k = new DefaultKeymap(n); ++ k.setResolveParent(parent); ++ if (n != null) ++ keymaps.put(n, k); ++ return k; ++ } ++ ++ /** ++ * Get the current Keymap of this component. ++ * ++ * @return The component's current Keymap ++ * ++ * @see #setKeymap() ++ * @see #keymap ++ */ ++ Keymap getKeymap() ++ { ++ return keymap; ++ } ++ ++ /** ++ * Set the current Keymap of this component, installing appropriate ++ * {@link KeymapWrapper} and {@link KeymapActionMap} objects in the ++ * {@link InputMap} and {@link ActionMap} parent chains, respectively, ++ * and fire a property change event with name "keymap". ++ * ++ * @see #getKeymap() ++ * @see #keymap ++ */ ++ public void setKeymap(Keymap k) ++ { ++ ++ // phase 1: replace the KeymapWrapper entry in the InputMap chain. ++ // the goal here is to always maintain the following ordering: ++ // ++ // [InputMap]? -> [KeymapWrapper]? -> [InputMapUIResource]* ++ // ++ // that is to say, component-specific InputMaps need to remain children ++ // of Keymaps, and Keymaps need to remain children of UI-installed ++ // InputMaps (and the order of each group needs to be preserved, of ++ // course). ++ ++ KeymapWrapper kw = (k == null ? null : new KeymapWrapper(k)); ++ InputMap childInputMap = getInputMap(JComponent.WHEN_FOCUSED); ++ if (childInputMap == null) ++ setInputMap(JComponent.WHEN_FOCUSED, kw); ++ else ++ { ++ while (childInputMap.getParent() != null ++ && !(childInputMap.getParent() instanceof KeymapWrapper) ++ && !(childInputMap.getParent() instanceof InputMapUIResource)) ++ childInputMap = childInputMap.getParent(); ++ ++ // option 1: there is nobody to replace at the end of the chain ++ if (childInputMap.getParent() == null) ++ childInputMap.setParent(kw); ++ ++ // option 2: there is already a KeymapWrapper in the chain which ++ // needs replacing (possibly with its own parents, possibly without) ++ else if (childInputMap.getParent() instanceof KeymapWrapper) ++ { ++ if (kw == null) ++ childInputMap.setParent(childInputMap.getParent().getParent()); ++ else ++ { ++ kw.setParent(childInputMap.getParent().getParent()); ++ childInputMap.setParent(kw); ++ } ++ } ++ ++ // option 3: there is an InputMapUIResource in the chain, which marks ++ // the place where we need to stop and insert ourselves ++ else if (childInputMap.getParent() instanceof InputMapUIResource) ++ { ++ if (kw != null) ++ { ++ kw.setParent(childInputMap.getParent()); ++ childInputMap.setParent(kw); ++ } ++ } ++ } ++ ++ // phase 2: replace the KeymapActionMap entry in the ActionMap chain ++ ++ KeymapActionMap kam = (k == null ? null : new KeymapActionMap(k)); ++ ActionMap childActionMap = getActionMap(); ++ if (childActionMap == null) ++ setActionMap(kam); ++ else ++ { ++ while (childActionMap.getParent() != null ++ && !(childActionMap.getParent() instanceof KeymapActionMap) ++ && !(childActionMap.getParent() instanceof ActionMapUIResource)) ++ childActionMap = childActionMap.getParent(); ++ ++ // option 1: there is nobody to replace at the end of the chain ++ if (childActionMap.getParent() == null) ++ childActionMap.setParent(kam); ++ ++ // option 2: there is already a KeymapActionMap in the chain which ++ // needs replacing (possibly with its own parents, possibly without) ++ else if (childActionMap.getParent() instanceof KeymapActionMap) ++ { ++ if (kam == null) ++ childActionMap.setParent(childActionMap.getParent().getParent()); ++ else ++ { ++ kam.setParent(childActionMap.getParent().getParent()); ++ childActionMap.setParent(kam); ++ } ++ } ++ ++ // option 3: there is an ActionMapUIResource in the chain, which marks ++ // the place where we need to stop and insert ourselves ++ else if (childActionMap.getParent() instanceof ActionMapUIResource) ++ { ++ if (kam != null) ++ { ++ kam.setParent(childActionMap.getParent()); ++ childActionMap.setParent(kam); ++ } ++ } ++ } ++ ++ // phase 3: update the explicit keymap field ++ ++ Keymap old = keymap; ++ keymap = k; ++ firePropertyChange("keymap", old, k); ++ } ++ ++ /** ++ * Resolves a set of bindings against a set of actions and inserts the ++ * results into a {@link Keymap}. Specifically, for each provided binding ++ * b, if there exists a provided action a such ++ * that a.getValue(Action.NAME) == b.ActionName then an ++ * entry is added to the Keymap mapping b to ++ *
    a
    . ++ * ++ * @param map The Keymap to add new mappings to ++ * @param bindings The set of bindings to add to the Keymap ++ * @param actions The set of actions to resolve binding names against ++ * ++ * @see Action#NAME ++ * @see Action#getValue() ++ * @see KeyBinding#ActionName ++ */ ++ public static void loadKeymap(Keymap map, ++ JTextComponent.KeyBinding[] bindings, ++ Action[] actions) ++ { ++ Hashtable acts = new Hashtable(actions.length); ++ for (int i = 0; i < actions.length; ++i) ++ acts.put(actions[i].getValue(Action.NAME), actions[i]); ++ for (int i = 0; i < bindings.length; ++i) ++ if (acts.containsKey(bindings[i].actionName)) ++ map.addActionForKeyStroke(bindings[i].key, (Action) acts.get(bindings[i].actionName)); ++ } ++ ++ /** ++ * Returns the set of available Actions this component's associated ++ * editor can run. Equivalent to calling ++ * getUI().getEditorKit().getActions(). This set of Actions ++ * is a reasonable value to provide as a parameter to {@link ++ * #loadKeymap()}, when resolving a set of {@link #KeyBinding} objects ++ * against this component. ++ * ++ * @return The set of available Actions on this component's {@link EditorKit} ++ * ++ * @see TextUI#getEditorKit() ++ * @see EditorKit#getActions() ++ */ ++ public Action[] getActions() ++ { ++ return getUI().getEditorKit(this).getActions(); ++ } ++ ++ private Document doc; ++ private Caret caret; ++ private Highlighter highlighter; ++ private Color caretColor; ++ private Color disabledTextColor; ++ private Color selectedTextColor; ++ private Color selectionColor; ++ private boolean editable; ++ private Insets margin; ++ ++ /** ++ * Creates a new JTextComponent instance. ++ */ ++ public JTextComponent() ++ { ++ Keymap defkeymap = getKeymap(DEFAULT_KEYMAP); ++ boolean creatingKeymap = false; ++ if (defkeymap == null) ++ { ++ defkeymap = addKeymap(DEFAULT_KEYMAP, null); ++ defkeymap.setDefaultAction(new DefaultEditorKit.DefaultKeyTypedAction()); ++ creatingKeymap = true; ++ } ++ ++ setFocusable(true); ++ enableEvents(AWTEvent.KEY_EVENT_MASK); ++ updateUI(); ++ ++ // need to do this after updateUI() ++ if (creatingKeymap) ++ loadKeymap(defkeymap, ++ new KeyBinding[] { ++ new KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, 0), ++ DefaultEditorKit.backwardAction), ++ new KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, 0), ++ DefaultEditorKit.forwardAction), ++ new KeyBinding(KeyStroke.getKeyStroke("typed \b"), ++ DefaultEditorKit.deletePrevCharAction), ++ new KeyBinding(KeyStroke.getKeyStroke("typed \u007f"), ++ DefaultEditorKit.deleteNextCharAction) ++ }, ++ getActions()); ++ } ++ ++ public void setDocument(Document newDoc) ++ { ++ Document oldDoc = doc; ++ doc = newDoc; ++ firePropertyChange("document", oldDoc, newDoc); ++ revalidate(); ++ repaint(); ++ } ++ ++ public Document getDocument() ++ { ++ return doc; ++ } ++ ++ /** ++ * Get the AccessibleContext of this object. ++ * ++ * @return an AccessibleContext object ++ */ ++ public AccessibleContext getAccessibleContext() ++ { ++ return null; ++ } ++ ++ public void setMargin(Insets m) ++ { ++ margin = m; ++ } ++ ++ public Insets getMargin() ++ { ++ return margin; ++ } ++ ++ public void setText(String text) ++ { ++ try ++ { ++ doc.remove(0, doc.getLength()); ++ doc.insertString(0, text, null); ++ } ++ catch (BadLocationException e) ++ { ++ } ++ } ++ ++ /** ++ * Retrieves the current text in this text document. ++ * ++ * @return the text ++ * ++ * @exception NullPointerException if the underlaying document is null ++ */ ++ public String getText() ++ { ++ if (doc == null) ++ return null; ++ ++ try ++ { ++ return doc.getText(0, doc.getLength()); ++ } ++ catch (BadLocationException e) ++ { ++ // This should never happen. ++ return ""; ++ } ++ } ++ ++ /** ++ * Retrieves a part of the current text in this document. ++ * ++ * @param offset the postion of the first character ++ * @param length the length of the text to retrieve ++ * ++ * @return the text ++ * ++ * @exception BadLocationException if arguments do not hold pre-conditions ++ */ ++ public String getText(int offset, int length) ++ throws BadLocationException ++ { ++ return getDocument().getText(offset, length); ++ } ++ ++ /** ++ * Returns a string that specifies the name of the Look and Feel class ++ * that renders this component. ++ * ++ * @return the string "TextComponentUI" ++ */ ++ public String getUIClassID() ++ { ++ return "TextComponentUI"; ++ } ++ ++ /** ++ * Returns a string representation of this JTextComponent. ++ */ ++ protected String paramString() ++ { ++ return "JTextComponent"; ++ } ++ ++ /** ++ * This method returns the label's UI delegate. ++ * ++ * @return The label's UI delegate. ++ */ ++ public TextUI getUI() ++ { ++ return (TextUI) ui; ++ } ++ ++ /** ++ * This method sets the label's UI delegate. ++ * ++ * @param ui The label's UI delegate. ++ */ ++ public void setUI(TextUI newUI) ++ { ++ super.setUI(newUI); ++ } ++ ++ /** ++ * This method resets the label's UI delegate to the default UI for the ++ * current look and feel. ++ */ ++ public void updateUI() ++ { ++ setUI((TextUI) UIManager.getUI(this)); ++ } ++ + public Dimension getPreferredScrollableViewportSize() + { + return null; + } ++ + public int getScrollableUnitIncrement(Rectangle visible, int orientation, + int direction) + { + return 0; + } ++ + public int getScrollableBlockIncrement(Rectangle visible, int orientation, + int direction) + { + return 0; + } +-} // class JTextComponent + ++ /** ++ * Checks whether this text component it editable. ++ * ++ * @return true if editable, false otherwise ++ */ ++ public boolean isEditable() ++ { ++ return editable; ++ } ++ ++ /** ++ * Enables/disabled this text component's editability. ++ * ++ * @param editable true to make it editable, false otherwise. ++ */ ++ public void setEditable(boolean editable) ++ { ++ firePropertyChange("editable", this.editable, editable); ++ this.editable = editable; ++ } ++ ++ /** ++ * The Caret object used in this text component. ++ * ++ * @return the caret object ++ */ ++ public Caret getCaret() ++ { ++ return caret; ++ } ++ ++ /** ++ * Sets a new Caret for this text component. ++ * ++ * @param newCaret the new Caret to set ++ */ ++ public void setCaret(Caret newCaret) ++ { ++ if (caret != null) ++ caret.deinstall(this); ++ ++ Caret oldCaret = caret; ++ caret = newCaret; ++ ++ if (caret != null) ++ caret.install(this); ++ ++ firePropertyChange("caret", oldCaret, newCaret); ++ } ++ ++ public Color getCaretColor() ++ { ++ return caretColor; ++ } ++ ++ public void setCaretColor(Color newColor) ++ { ++ Color oldCaretColor = caretColor; ++ caretColor = newColor; ++ firePropertyChange("caretColor", oldCaretColor, newColor); ++ } ++ ++ public Color getDisabledTextColor() ++ { ++ return disabledTextColor; ++ } ++ ++ public void setDisabledTextColor(Color newColor) ++ { ++ Color oldColor = disabledTextColor; ++ disabledTextColor = newColor; ++ firePropertyChange("disabledTextColor", oldColor, newColor); ++ } ++ ++ public Color getSelectedTextColor() ++ { ++ return selectedTextColor; ++ } ++ ++ public void setSelectedTextColor(Color newColor) ++ { ++ Color oldColor = selectedTextColor; ++ selectedTextColor = newColor; ++ firePropertyChange("selectedTextColor", oldColor, newColor); ++ } ++ ++ public Color getSelectionColor() ++ { ++ return selectionColor; ++ } ++ ++ public void setSelectionColor(Color newColor) ++ { ++ Color oldColor = selectionColor; ++ selectionColor = newColor; ++ firePropertyChange("selectionColor", oldColor, newColor); ++ } ++ ++ /** ++ * Retrisves the current caret position. ++ * ++ * @return the current position ++ */ ++ public int getCaretPosition() ++ { ++ return caret.getDot(); ++ } ++ ++ /** ++ * Sets the caret to a new position. ++ * ++ * @param position the new position ++ */ ++ public void setCaretPosition(int position) ++ { ++ if (doc == null) ++ return; ++ ++ if (position < 0 || position > doc.getLength()) ++ throw new IllegalArgumentException(); ++ ++ caret.setDot(position); ++ } ++ ++ /** ++ * Moves the caret to a given position. This selects the text between ++ * the old and the new position of the caret. ++ */ ++ public void moveCaretPosition(int position) ++ { ++ if (doc == null) ++ return; ++ ++ if (position < 0 || position > doc.getLength()) ++ throw new IllegalArgumentException(); ++ ++ caret.moveDot(position); ++ } ++ ++ public Highlighter getHighlighter() ++ { ++ return highlighter; ++ } ++ ++ public void setHighlighter(Highlighter newHighlighter) ++ { ++ if (highlighter != null) ++ highlighter.deinstall(this); ++ ++ Highlighter oldHighlighter = highlighter; ++ highlighter = newHighlighter; ++ ++ if (highlighter != null) ++ highlighter.install(this); ++ ++ firePropertyChange("highlighter", oldHighlighter, newHighlighter); ++ } + ++ /** ++ * Returns the start postion of the currently selected text. ++ * ++ * @return the start postion ++ */ ++ public int getSelectionStart() ++ { ++ return Math.min(caret.getDot(), caret.getMark()); ++ } + ++ /** ++ * Selects the text from the given postion to the selection end position. ++ * ++ * @param end the start positon of the selected text. ++ */ ++ public void setSelectionStart(int start) ++ { ++ select(start, getSelectionEnd()); ++ } + ++ /** ++ * Returns the end postion of the currently selected text. ++ * ++ * @return the end postion ++ */ ++ public int getSelectionEnd() ++ { ++ return Math.max(caret.getDot(), caret.getMark()); ++ } + ++ /** ++ * Selects the text from the selection start postion to the given position. ++ * ++ * @param end the end positon of the selected text. ++ */ ++ public void setSelectionEnd(int end) ++ { ++ select(getSelectionStart(), end); ++ } + ++ /** ++ * Selects a part of the content of the text component. ++ * ++ * @param start the start position of the selected text ++ * @param ent the end position of the selected text ++ */ ++ public void select(int start, int end) ++ { ++ int length = doc.getLength(); ++ ++ start = Math.max(start, 0); ++ start = Math.min(start, length); + ++ end = Math.max(end, 0); ++ end = Math.min(end, length); + ++ setCaretPosition(start); ++ moveCaretPosition(end); ++ } + ++ /** ++ * Selects the whole content of the text component. ++ */ ++ public void selectAll() ++ { ++ select(0, doc.getLength()); ++ } + ++ public synchronized void replaceSelection(String content) ++ { ++ int dot = caret.getDot(); ++ int mark = caret.getMark(); + ++ // If content is empty delete selection. ++ if (content == null) ++ { ++ caret.setDot(dot); ++ return; ++ } ++ ++ try ++ { ++ // Remove selected text. ++ if (dot != mark) ++ doc.remove(Math.min(dot, mark), Math.max(dot, mark)); ++ ++ // Insert new text. ++ doc.insertString(Math.min(dot, mark), content, null); ++ } ++ catch (BadLocationException e) ++ { ++ // This should never happen. ++ System.out.println("Michael: JTextComponent.replaceSelection: Error"); ++ } ++ } + ++ public boolean getScrollableTracksViewportHeight() ++ { ++ if (getParent() instanceof JViewport) ++ return ((JViewport) getParent()).getHeight() > getPreferredSize().height; ++ ++ return false; ++ } ++ ++ public boolean getScrollableTracksViewportWidth() ++ { ++ if (getParent() instanceof JViewport) ++ return ((JViewport) getParent()).getWidth() > getPreferredSize().width; ++ ++ return false; ++ } ++ ++ /** ++ * Adds a CaretListener object to this text component. ++ * ++ * @param listener the listener to add ++ */ ++ public void addCaretListener(CaretListener listener) ++ { ++ listenerList.add(CaretListener.class, listener); ++ } ++ ++ /** ++ * Removed a CaretListener object from this text component. ++ * ++ * @param listener the listener to remove ++ */ ++ public void removeCaretListener(CaretListener listener) ++ { ++ listenerList.remove(CaretListener.class, listener); ++ } ++ ++ /** ++ * Returns all added CaretListener objects. ++ * ++ * @return an array of listeners ++ */ ++ public CaretListener[] getCaretListeners() ++ { ++ return (CaretListener[]) getListeners(CaretListener.class); ++ } ++ ++ /** ++ * Notifies all registered CaretListener objects that the caret ++ * was updated. ++ * ++ * @param event the event to send ++ */ ++ protected void fireCaretUpdate(CaretEvent event) ++ { ++ CaretListener[] listeners = getCaretListeners(); ++ ++ for (int index = 0; index < listeners.length; ++index) ++ listeners[index].caretUpdate(event); ++ } ++ ++ /** ++ * Adds an InputListener object to this text component. ++ * ++ * @param listener the listener to add ++ */ ++ public void addInputMethodListener(InputMethodListener listener) ++ { ++ listenerList.add(InputMethodListener.class, listener); ++ } ++ ++ /** ++ * Removes an InputListener object from this text component. ++ * ++ * @param listener the listener to remove ++ */ ++ public void removeInputMethodListener(InputMethodListener listener) ++ { ++ listenerList.remove(InputMethodListener.class, listener); ++ } ++ ++ /** ++ * Returns all added InputMethodListener objects. ++ * ++ * @return an array of listeners ++ */ ++ public InputMethodListener[] getInputMethodListeners() ++ { ++ return (InputMethodListener[]) getListeners(InputMethodListener.class); ++ } ++ ++ public Rectangle modelToView(int position) throws BadLocationException ++ { ++ return getUI().modelToView(this, position); ++ } ++} +Index: javax/swing/text/LayeredHighlighter.java +=================================================================== +RCS file: javax/swing/text/LayeredHighlighter.java +diff -N javax/swing/text/LayeredHighlighter.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/text/LayeredHighlighter.java 6 Sep 2004 16:36:10 -0000 +@@ -0,0 +1,61 @@ ++/* LayeredHighlighter.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.text; ++ ++import java.awt.Graphics; ++import java.awt.Shape; ++ ++import javax.swing.text.JTextComponent; ++import javax.swing.text.View; ++ ++ ++public abstract class LayeredHighlighter ++ implements Highlighter ++{ ++ public abstract static class LayerPainter ++ implements Highlighter.HighlightPainter ++ { ++ public abstract Shape paintLayer(Graphics g, int p0, int p1, ++ Shape viewBounds, JTextComponent editor, ++ View view); ++ } ++ ++ public abstract void paintLayeredHighlights(Graphics g, int p0, int p1, ++ Shape viewBounds, ++ JTextComponent editor, View view); ++} +Index: javax/swing/text/MutableAttributeSet.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/text/MutableAttributeSet.java,v +retrieving revision 1.3 +diff -u -r1.3 MutableAttributeSet.java +--- javax/swing/text/MutableAttributeSet.java 10 Jan 2004 21:07:44 -0000 1.3 ++++ javax/swing/text/MutableAttributeSet.java 6 Sep 2004 16:36:10 -0000 +@@ -44,48 +44,42 @@ + * @author Andrew Selkirk + * @version 1.0 + */ +-public interface MutableAttributeSet extends AttributeSet { +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * addAttribute +- * @param name TODO +- * @param value TODO +- */ +- void addAttribute(Object name, Object value); +- +- /** +- * addAttributes +- * @param attributes TODO +- */ +- void addAttributes(AttributeSet attributes); +- +- /** +- * removeAttribute +- * @param name TODO +- */ +- void removeAttribute(Object name); +- +- /** +- * removeAttributes +- * @param names TODO +- */ +- void removeAttributes(Enumeration names); +- +- /** +- * removeAttributes +- * @param attributes TODO +- */ +- void removeAttributes(AttributeSet attributes); +- +- /** +- * setResolveParent +- * @param parent TODO +- */ +- void setResolveParent(AttributeSet parent); +- +- +-} // MutableAttributeSet ++public interface MutableAttributeSet extends AttributeSet ++{ ++ /** ++ * addAttribute ++ * @param name TODO ++ * @param value TODO ++ */ ++ void addAttribute(Object name, Object value); ++ ++ /** ++ * addAttributes ++ * @param attributes TODO ++ */ ++ void addAttributes(AttributeSet attributes); ++ ++ /** ++ * removeAttribute ++ * @param name TODO ++ */ ++ void removeAttribute(Object name); ++ ++ /** ++ * removeAttributes ++ * @param names TODO ++ */ ++ void removeAttributes(Enumeration names); ++ ++ /** ++ * removeAttributes ++ * @param attributes TODO ++ */ ++ void removeAttributes(AttributeSet attributes); ++ ++ /** ++ * setResolveParent ++ * @param parent TODO ++ */ ++ void setResolveParent(AttributeSet parent); ++} +Index: javax/swing/text/PlainDocument.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/text/PlainDocument.java,v +retrieving revision 1.1 +diff -u -r1.1 PlainDocument.java +--- javax/swing/text/PlainDocument.java 9 Aug 2002 04:26:12 -0000 1.1 ++++ javax/swing/text/PlainDocument.java 6 Sep 2004 16:36:10 -0000 +@@ -1,5 +1,5 @@ +-/* PlainDocument.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++/* PlainDocument.java -- ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -37,22 +37,45 @@ + + package javax.swing.text; + +- + public class PlainDocument extends AbstractDocument + { +- PlainDocument() +- { +- super(new GapContent()); +- } +- +- public Element getDefaultRootElement() +- { +- return null; +- } +- +- public Element getParagraphElement(int pos) +- { +- return null; +- } ++ private static final long serialVersionUID = 4758290289196893664L; ++ ++ public static final String lineLimitAttribute = "lineLimit"; ++ public static final String tabSizeAttribute = "tabSize"; ++ ++ private Element rootElement; ++ private int tabSize; ++ ++ public PlainDocument() ++ { ++ this(new GapContent()); ++ } ++ ++ public PlainDocument(AbstractDocument.Content content) ++ { ++ super(content); ++ tabSize = 8; ++ rootElement = createDefaultRoot(); ++ } ++ ++ protected AbstractDocument.AbstractElement createDefaultRoot() ++ { ++ BranchElement rootElement = ++ (BranchElement) createBranchElement(null, null); ++ Element[] lines = new Element[1]; ++ lines[0] = createLeafElement(rootElement, null, 0, 1); ++ rootElement.replace(0, 0, lines); ++ return rootElement; ++ } ++ ++ public Element getDefaultRootElement() ++ { ++ return rootElement; ++ } ++ ++ public Element getParagraphElement(int pos) ++ { ++ return null; ++ } + } +- +Index: javax/swing/text/PlainEditorKit.java +=================================================================== +RCS file: javax/swing/text/PlainEditorKit.java +diff -N javax/swing/text/PlainEditorKit.java +--- javax/swing/text/PlainEditorKit.java 10 Jan 2004 21:07:44 -0000 1.2 ++++ /dev/null 1 Jan 1970 00:00:00 -0000 +@@ -1,103 +0,0 @@ +-/* PlainEditorKit.java -- +- Copyright (C) 2002, 2004 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., 59 Temple Place, Suite 330, Boston, MA +-02111-1307 USA. +- +-Linking this library statically or dynamically with other modules is +-making a combined work based on this library. Thus, the terms and +-conditions of the GNU General Public License cover the whole +-combination. +- +-As a special exception, the copyright holders of this library give you +-permission to link this library with independent modules to produce an +-executable, regardless of the license terms of these independent +-modules, and to copy and distribute the resulting executable under +-terms of your choice, provided that you also meet, for each linked +-independent module, the terms and conditions of the license of that +-module. An independent module is a module which is not derived from +-or based on this library. If you modify this library, you may extend +-this exception to your version of the library, but you are not +-obligated to do so. If you do not wish to do so, delete this +-exception statement from your version. */ +- +-package javax.swing.text; +- +-import java.io.InputStream; +-import java.io.OutputStream; +-import java.io.Reader; +-import java.io.Writer; +-import javax.swing.Action; +-import javax.swing.JEditorPane; +- +-public class PlainEditorKit extends EditorKit +-{ +- public PlainEditorKit() +- { +- } +- +- public PlainEditorKit(PlainEditorKit kit) +- { +- super(kit); +- } +- +- protected Object clone() +- { +- return new PlainEditorKit(this); +- } +- void deinstall(JEditorPane c) +- { +- // Called when the kit is being removed from the JEditorPane. +- } +- void install(JEditorPane c) +- { +- } +- +- Caret createCaret() +- { +- return null; +- } +- Document createDefaultDocument() +- { +- return null; +- } +- Action[] getActions() +- { +- return null; +- } +- String getContentType() +- { +- return null; +- } +- ViewFactory getViewFactory() +- { +- return null; +- } +- void read(InputStream in, Document doc, int pos) +- { +- } +- void read(Reader in, Document doc, int pos) +- { +- } +- void write(OutputStream out, Document doc, int pos, int len) +- { +- } +- void write(Writer out, Document doc, int pos, int len) +- { +- } +-} +- +Index: javax/swing/text/PlainView.java +=================================================================== +RCS file: javax/swing/text/PlainView.java +diff -N javax/swing/text/PlainView.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/text/PlainView.java 6 Sep 2004 16:36:10 -0000 +@@ -0,0 +1,192 @@ ++/* PlainView.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++ ++package javax.swing.text; ++ ++import java.awt.Color; ++import java.awt.Component; ++import java.awt.Font; ++import java.awt.FontMetrics; ++import java.awt.Graphics; ++import java.awt.Rectangle; ++import java.awt.Shape; ++ ++ ++public class PlainView extends View ++ implements TabExpander ++{ ++ private Color selectedColor; ++ private Color unselectedColor; ++ private Font font; ++ ++ protected FontMetrics metrics; ++ ++ public PlainView(Element elem) ++ { ++ super(elem); ++ } ++ ++ /** ++ * @since 1.4 ++ */ ++ protected void updateMetrics() ++ { ++ Component component = getContainer(); ++ Font font = component.getFont(); ++ ++ if (this.font != font) ++ { ++ this.font = font; ++ metrics = component.getFontMetrics(font); ++ } ++ } ++ ++ /** ++ * @since 1.4 ++ */ ++ protected Rectangle lineToRect(Shape a, int line) ++ { ++ // Ensure metrics are up-to-date. ++ updateMetrics(); ++ ++ Rectangle rect = a.getBounds(); ++ int fontHeight = metrics.getHeight(); ++ return new Rectangle(rect.x, rect.y + (line * fontHeight), ++ rect.width, fontHeight); ++ } ++ ++ public Shape modelToView(int position, Shape a, Position.Bias b) ++ throws BadLocationException ++ { ++ Document document = getDocument(); ++ ++ // Get rectangle of the line containing position. ++ int lineIndex = getElement().getElementIndex(position); ++ Rectangle rect = lineToRect(a, lineIndex); ++ ++ // Get the rectangle for position. ++ Element line = getElement().getElement(lineIndex); ++ int lineStart = line.getStartOffset(); ++ Segment segment = new Segment(); ++ document.getText(lineStart, position - lineStart, segment); ++ int xoffset = Utilities.getTabbedTextWidth(segment, metrics, rect.x, ++ this, lineStart); ++ ++ // Calc the real rectangle. ++ rect.x += xoffset; ++ rect.width = 1; ++ rect.height = metrics.getHeight(); ++ ++ return rect; ++ } ++ ++ public void drawLine(int lineIndex, Graphics g, int x, int y) ++ { ++ try ++ { ++ metrics = g.getFontMetrics(); ++ // FIXME: Selected text are not drawn yet. ++ drawUnselectedText(g, x, y, 0, getDocument().getLength()); ++ //drawSelectedText(g, , , , ); ++ } ++ catch (BadLocationException e) ++ { ++ // This should never happen. ++ } ++ } ++ ++ public int drawSelectedText(Graphics g, int x, int y, int p0, int p1) ++ throws BadLocationException ++ { ++ g.setColor(selectedColor); ++ Segment segment = new Segment(); ++ getDocument().getText(p0, p1 - p0, segment); ++ return Utilities.drawTabbedText(segment, x, y, g, this, 0); ++ } ++ ++ public int drawUnselectedText(Graphics g, int x, int y, int p0, int p1) ++ throws BadLocationException ++ { ++ g.setColor(unselectedColor); ++ Segment segment = new Segment(); ++ getDocument().getText(p0, p1 - p0, segment); ++ return Utilities.drawTabbedText(segment, x, y, g, this, 0); ++ } ++ ++ public void paint(Graphics g, Shape s) ++ { ++ JTextComponent textComponent = (JTextComponent) getContainer(); ++ ++ g.setFont(textComponent.getFont()); ++ selectedColor = textComponent.getSelectedTextColor(); ++ unselectedColor = textComponent.getForeground(); ++ ++ Rectangle rect = s.getBounds(); ++ ++ // FIXME: Text may be scrolled. ++ drawLine(0, g, rect.x, rect.y); ++ } ++ ++ public int getTabSize() ++ { ++ return 8; ++ } ++ ++ /** ++ * Returns the next tab stop position after a given reference position. ++ * ++ * This implementation ignores the tabStop argument. ++ * ++ * @param x the current x position in pixels ++ * @param tabStop the position within the text stream that the tab occured at ++ */ ++ public float nextTabStop(float x, int tabStop) ++ { ++ float tabSizePixels = getTabSize() + metrics.charWidth('m'); ++ return (float) (Math.floor(x / tabSizePixels) + 1) * tabSizePixels; ++ } ++ ++ public float getPreferredSpan(int axis) ++ { ++ if (axis != X_AXIS && axis != Y_AXIS) ++ throw new IllegalArgumentException(); ++ ++ return 10; ++ } ++} ++ +Index: javax/swing/text/Position.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/text/Position.java,v +retrieving revision 1.1 +diff -u -r1.1 Position.java +--- javax/swing/text/Position.java 9 Aug 2002 04:26:12 -0000 1.1 ++++ javax/swing/text/Position.java 6 Sep 2004 16:36:10 -0000 +@@ -1,5 +1,5 @@ + /* Position.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -42,6 +42,20 @@ + { + static class Bias + { ++ public static final Bias Backward = new Bias("backward"); ++ public static final Bias Forward = new Bias("forward"); ++ ++ private String name; ++ ++ private Bias(String n) ++ { ++ name = n; ++ } ++ ++ public String toString() ++ { ++ return name; ++ } + } + + int getOffset(); +Index: javax/swing/text/Segment.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/text/Segment.java,v +retrieving revision 1.2 +diff -u -r1.2 Segment.java +--- javax/swing/text/Segment.java 10 Jan 2004 21:07:44 -0000 1.2 ++++ javax/swing/text/Segment.java 6 Sep 2004 16:36:10 -0000 +@@ -37,71 +37,140 @@ + + package javax.swing.text; + +-public class Segment implements Cloneable, CharacterIterator ++import java.text.CharacterIterator; ++ ++public class Segment ++ implements Cloneable, CharacterIterator + { +- char[] array; +- int count; +- int offset; ++ private boolean partialReturn; ++ private int current; ++ ++ public char[] array; ++ public int count; ++ public int offset; ++ ++ public Segment() ++ { ++ } ++ ++ public Segment(char[] array, int offset, int count) ++ { ++ this.array = array; ++ this.offset = offset; ++ this.count = count; ++ } + + public Object clone() + { +- try { ++ try ++ { + return super.clone(); +- } catch (Exception e) { +- System.err.println("Huuuhhh, this class implements cloneable !!!!!!"); +- System.err.println("I think there is a bug in this JVM somewhere"); + } ++ catch (CloneNotSupportedException e) ++ { + return null; +- } ++ } ++ } ++ ++ public char current() ++ { ++ if (count == 0 ++ || current >= getEndIndex()) ++ return DONE; + +- public char current() +- { +- return array[getIndex()]; +- } ++ return array[current]; ++ } + +- public char first() +- { +- offset = getBeginIndex(); +- return array[offset]; +- } ++ public char first() ++ { ++ if (count == 0) ++ return DONE; ++ ++ current = getBeginIndex(); ++ return array[current]; ++ } ++ ++ public int getBeginIndex() ++ { ++ return offset; ++ } ++ ++ public int getEndIndex() ++ { ++ return offset + count; ++ } ++ ++ public int getIndex() ++ { ++ return current; ++ } ++ ++ public char last() ++ { ++ if (count == 0) ++ return DONE; + +- public int getBeginIndex() +- { +- return offset; +- } ++ current = getEndIndex() - 1; ++ return array[current]; ++ } ++ ++ public char next() ++ { ++ if (count == 0) ++ return DONE; ++ ++ if ((current + 1) >= getEndIndex()) ++ { ++ current = getEndIndex(); ++ return DONE; ++ } + +- public int getEndIndex() +- { +- return offset + count; +- } +- public int getIndex() +- { +- return offset; +- } +- public char last() +- { +- offset = getEndIndex() - 1; +- return array[offset]; +- } +- public char next() +- { +- offset++; +- return array[offset]; +- } +- public char previous() +- { +- offset--; +- return array[offset]; +- } +- public char setIndex(int position) +- { +- offset = position; +- return array[offset]; +- } ++ current++; ++ return array[current]; ++ } + +- public String toString() +- { +- return new String(array, offset, count); +- } +-} ++ public char previous() ++ { ++ if (count == 0 ++ || current == getBeginIndex()) ++ return DONE; ++ ++ current--; ++ return array[current]; ++ } ++ ++ public char setIndex(int position) ++ { ++ if (position < getBeginIndex() ++ || position > getEndIndex()) ++ throw new IllegalArgumentException(); + ++ current = position; ++ ++ if (position == getEndIndex()) ++ return DONE; ++ ++ return array[current]; ++ } ++ ++ public String toString() ++ { ++ return new String(array, offset, count); ++ } ++ ++ /** ++ * @since 1.4 ++ */ ++ public void setPartialReturn(boolean p) ++ { ++ partialReturn = p; ++ } ++ ++ /** ++ * @since 1.4 ++ */ ++ public boolean isPartialReturn() ++ { ++ return partialReturn; ++ } ++} +Index: javax/swing/text/SimpleAttributeSet.java +=================================================================== +RCS file: javax/swing/text/SimpleAttributeSet.java +diff -N javax/swing/text/SimpleAttributeSet.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/text/SimpleAttributeSet.java 6 Sep 2004 16:36:10 -0000 +@@ -0,0 +1,192 @@ ++/* SimpleAttributeSet.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.text; ++ ++import java.io.Serializable; ++import java.util.Enumeration; ++import java.util.Hashtable; ++import java.lang.Cloneable; ++ ++public class SimpleAttributeSet ++ implements MutableAttributeSet, Serializable, Cloneable ++{ ++ Hashtable tab; ++ ++ static AttributeSet EMPTY = new SimpleAttributeSet(); ++ ++ public SimpleAttributeSet() ++ { ++ this(null); ++ } ++ ++ public SimpleAttributeSet(AttributeSet a) ++ { ++ tab = new Hashtable(); ++ addAttributes(a); ++ } ++ ++ public void addAttribute(Object name, Object value) ++ { ++ tab.put(name, value); ++ } ++ ++ public void addAttributes(AttributeSet attributes) ++ { ++ Enumeration e = attributes.getAttributeNames(); ++ while (e.hasMoreElements()) ++ { ++ Object name = e.nextElement(); ++ Object val = attributes.getAttribute(name); ++ tab.put(name, val); ++ } ++ } ++ ++ public Object clone() ++ { ++ SimpleAttributeSet s = new SimpleAttributeSet(); ++ s.tab = (Hashtable) tab.clone(); ++ return s; ++ } ++ ++ public boolean containsAttribute(Object name, Object value) ++ { ++ return tab.containsKey(name) ++ && tab.get(name).equals(value); ++ } ++ ++ public boolean containsAttributes(AttributeSet attributes) ++ { ++ Enumeration e = attributes.getAttributeNames(); ++ while (e.hasMoreElements()) ++ { ++ Object name = e.nextElement(); ++ Object val = attributes.getAttribute(name); ++ if (! containsAttribute(name, val)) ++ return false; ++ } ++ return true; ++ } ++ ++ public AttributeSet copyAttributes() ++ { ++ return (AttributeSet) clone(); ++ } ++ ++ public boolean equals(Object obj) ++ { ++ return (obj != null) ++ && (obj instanceof SimpleAttributeSet) ++ && ((SimpleAttributeSet)obj).tab.equals(this.tab); ++ } ++ ++ public Object getAttribute(Object name) ++ { ++ Object val = tab.get(name); ++ if (val != null) ++ return val; ++ ++ Object p = getResolveParent(); ++ if (p != null && p instanceof AttributeSet) ++ return (((AttributeSet)p).getAttribute(name)); ++ ++ return null; ++ } ++ ++ public int getAttributeCount() ++ { ++ return tab.size(); ++ } ++ ++ public Enumeration getAttributeNames() ++ { ++ return tab.keys(); ++ } ++ ++ public AttributeSet getResolveParent() ++ { ++ return (AttributeSet) tab.get(ResolveAttribute); ++ } ++ ++ public int hashCode() ++ { ++ return tab.hashCode(); ++ } ++ ++ public boolean isDefined(Object attrName) ++ { ++ return tab.containsKey(attrName); ++ } ++ ++ public boolean isEmpty() ++ { ++ return tab.isEmpty(); ++ } ++ ++ public boolean isEqual(AttributeSet attr) ++ { ++ return this.equals(attr); ++ } ++ ++ public void removeAttribute(Object name) ++ { ++ tab.remove(name); ++ } ++ ++ public void removeAttributes(AttributeSet attributes) ++ { ++ removeAttributes(attributes.getAttributeNames()); ++ } ++ ++ public void removeAttributes(Enumeration names) ++ { ++ while (names.hasMoreElements()) ++ { ++ removeAttribute(names.nextElement()); ++ } ++ } ++ ++ public void setResolveParent(AttributeSet parent) ++ { ++ addAttribute(ResolveAttribute, parent); ++ } ++ ++ public String toString() ++ { ++ return tab.toString(); ++ } ++} +Index: javax/swing/text/Style.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/text/Style.java,v +retrieving revision 1.2 +diff -u -r1.2 Style.java +--- javax/swing/text/Style.java 10 Jan 2004 21:07:44 -0000 1.2 ++++ javax/swing/text/Style.java 6 Sep 2004 16:36:10 -0000 +@@ -39,9 +39,26 @@ + + import javax.swing.event.ChangeListener; + +-public interface Style ++public interface Style extends MutableAttributeSet + { +- void addChangeListener(ChangeListener l); +- String getName(); +- void removeChangeListener(ChangeListener l); ++ /** ++ * Returns the name of the style. ++ * ++ * @return the name ++ */ ++ String getName(); ++ ++ /** ++ * Adds a ChangeListener object to the style. ++ * ++ * @param listener the listener object to add ++ */ ++ void addChangeListener(ChangeListener listener); ++ ++ /** ++ * Removes a ChangeListener from to the style. ++ * ++ * @param listener the listener object to remove, ++ */ ++ void removeChangeListener(ChangeListener listener); + } +Index: javax/swing/text/StyleConstants.java +=================================================================== +RCS file: javax/swing/text/StyleConstants.java +diff -N javax/swing/text/StyleConstants.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/text/StyleConstants.java 6 Sep 2004 16:36:10 -0000 +@@ -0,0 +1,439 @@ ++/* StyleConstants.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.text; ++ ++import java.awt.Color; ++import java.awt.Component; ++import javax.swing.Icon; ++ ++public class StyleConstants ++{ ++ ++ String keyname; ++ private StyleConstants(String k) ++ { ++ keyname = k; ++ } ++ ++ public String toString() ++ { ++ return keyname; ++ } ++ ++ public static int ALIGN_CENTER; ++ public static int ALIGN_JUSTIFIED; ++ public static int ALIGN_LEFT; ++ public static int ALIGN_RIGHT; ++ ++ public static Object Background = CharacterConstants.Background; ++ public static Object BidiLevel = CharacterConstants.BidiLevel; ++ public static Object Bold = CharacterConstants.Bold; ++ public static Object ComponentAttribute = CharacterConstants.ComponentAttribute; ++ public static Object FontFamily = CharacterConstants.Family; ++ public static Object FontSize = CharacterConstants.Size; ++ public static Object Foreground = CharacterConstants.Foreground; ++ public static Object IconAttribute = CharacterConstants.IconAttribute; ++ public static Object Italic = CharacterConstants.Italic; ++ public static Object StrikeThrough = CharacterConstants.StrikeThrough; ++ public static Object Subscript = CharacterConstants.Subscript; ++ public static Object Superscript = CharacterConstants.Superscript; ++ public static Object Underline = CharacterConstants.Underline; ++ ++ public static Object Alignment = ParagraphConstants.Alignment; ++ public static Object FirstLineIndent = ParagraphConstants.FirstLineIndent; ++ public static Object LeftIndent = ParagraphConstants.LeftIndent; ++ public static Object LineSpacing = ParagraphConstants.LineSpacing; ++ public static Object Orientation = ParagraphConstants.Orientation; ++ public static Object RightIndent = ParagraphConstants.RightIndent; ++ public static Object SpaceAbove = ParagraphConstants.SpaceAbove; ++ public static Object SpaceBelow = ParagraphConstants.SpaceBelow; ++ public static Object TabSet = ParagraphConstants.TabSet; ++ ++ public static String ComponentElementName = new String("component"); ++ public static String IconElementName = new String("icon"); ++ ++ public static Object ComposedTextAttribute = new StyleConstants("composed text"); ++ public static Object ModelAttribute = new StyleConstants("model"); ++ public static Object NameAttribute = new StyleConstants("name"); ++ public static Object ResolveAttribute = new StyleConstants("resolver"); ++ ++ public static int getAlignment(AttributeSet a) ++ { ++ if (a.isDefined(Alignment)) ++ return ((Integer)a.getAttribute(Alignment)).intValue(); ++ else ++ return ALIGN_LEFT; ++ } ++ ++ public static Color getBackground(AttributeSet a) ++ { ++ if (a.isDefined(Background)) ++ return (Color) a.getAttribute(Background); ++ else ++ return Color.BLACK; ++ } ++ ++ public static int getBidiLevel(AttributeSet a) ++ { ++ if (a.isDefined(BidiLevel)) ++ return ((Integer)a.getAttribute(BidiLevel)).intValue(); ++ else ++ return 0; ++ } ++ ++ public static Component getComponent(AttributeSet a) ++ { ++ if (a.isDefined(ComponentAttribute)) ++ return (Component) a.getAttribute(ComponentAttribute); ++ else ++ return (Component) null; ++ } ++ ++ public static float getFirstLineIndent(AttributeSet a) ++ { ++ if (a.isDefined(FirstLineIndent)) ++ return ((Float)a.getAttribute(FirstLineIndent)).floatValue(); ++ else ++ return 0.f; ++ } ++ ++ public static String getFontFamily(AttributeSet a) ++ { ++ if (a.isDefined(FontFamily)) ++ return (String) a.getAttribute(FontFamily); ++ else ++ return "Monospaced"; ++ } ++ ++ public static int getFontSize(AttributeSet a) ++ { ++ if (a.isDefined(FontSize)) ++ return ((Integer)a.getAttribute(FontSize)).intValue(); ++ else ++ return 12; ++ } ++ ++ public static Color getForeground(AttributeSet a) ++ { ++ if (a.isDefined(Foreground)) ++ return (Color) a.getAttribute(Foreground); ++ else ++ return Color.BLACK; ++ } ++ ++ public static Icon getIcon(AttributeSet a) ++ { ++ if (a.isDefined(IconAttribute)) ++ return (Icon) a.getAttribute(IconAttribute); ++ else ++ return (Icon) null; ++ } ++ ++ public static float getLeftIndent(AttributeSet a) ++ { ++ if (a.isDefined(LeftIndent)) ++ return ((Float)a.getAttribute(LeftIndent)).floatValue(); ++ else ++ return 0.f; ++ } ++ ++ public static float getLineSpacing(AttributeSet a) ++ { ++ if (a.isDefined(LineSpacing)) ++ return ((Float)a.getAttribute(LineSpacing)).floatValue(); ++ else ++ return 0.f; ++ } ++ ++ public static float getRightIndent(AttributeSet a) ++ { ++ if (a.isDefined(RightIndent)) ++ return ((Float)a.getAttribute(RightIndent)).floatValue(); ++ else ++ return 0.f; ++ } ++ ++ public static float getSpaceAbove(AttributeSet a) ++ { ++ if (a.isDefined(SpaceAbove)) ++ return ((Float)a.getAttribute(SpaceAbove)).floatValue(); ++ else ++ return 0.f; ++ } ++ ++ public static float getSpaceBelow(AttributeSet a) ++ { ++ if (a.isDefined(SpaceBelow)) ++ return ((Float)a.getAttribute(SpaceBelow)).floatValue(); ++ else ++ return 0.f; ++ } ++ ++ public static javax.swing.text.TabSet getTabSet(AttributeSet a) ++ { ++ if (a.isDefined(StyleConstants.TabSet)) ++ return (javax.swing.text.TabSet) a.getAttribute(StyleConstants.TabSet); ++ else ++ return (javax.swing.text.TabSet) null; ++ } ++ ++ public static boolean isBold(AttributeSet a) ++ { ++ if (a.isDefined(Bold)) ++ return ((Boolean) a.getAttribute(Bold)).booleanValue(); ++ else ++ return false; ++ } ++ ++ public static boolean isItalic(AttributeSet a) ++ { ++ if (a.isDefined(Italic)) ++ return ((Boolean) a.getAttribute(Italic)).booleanValue(); ++ else ++ return false; ++ } ++ ++ public static boolean isStrikeThrough(AttributeSet a) ++ { ++ if (a.isDefined(StrikeThrough)) ++ return ((Boolean) a.getAttribute(StrikeThrough)).booleanValue(); ++ else ++ return false; ++ } ++ ++ public static boolean isSubscript(AttributeSet a) ++ { ++ if (a.isDefined(Subscript)) ++ return ((Boolean) a.getAttribute(Subscript)).booleanValue(); ++ else ++ return false; ++ } ++ ++ public static boolean isSuperscript(AttributeSet a) ++ { ++ if (a.isDefined(Superscript)) ++ return ((Boolean) a.getAttribute(Superscript)).booleanValue(); ++ else ++ return false; ++ } ++ ++ public static boolean isUnderline(AttributeSet a) ++ { ++ if (a.isDefined(Underline)) ++ return ((Boolean) a.getAttribute(Underline)).booleanValue(); ++ else ++ return false; ++ } ++ ++ public static void setAlignment(MutableAttributeSet a, int align) ++ { ++ a.addAttribute(Alignment, new Integer(align)); ++ } ++ ++ public static void setBackground(MutableAttributeSet a, Color fg) ++ { ++ a.addAttribute(Background, fg); ++ } ++ ++ public static void setBidiLevel(MutableAttributeSet a, int lev) ++ { ++ a.addAttribute(BidiLevel, new Integer(lev)); ++ } ++ ++ public static void setBold(MutableAttributeSet a, boolean b) ++ { ++ a.addAttribute(Bold, new Boolean(b)); ++ } ++ ++ public static void setComponent(MutableAttributeSet a, Component c) ++ { ++ a.addAttribute(ComponentAttribute, c); ++ } ++ ++ public static void setFirstLineIndent(MutableAttributeSet a, float i) ++ { ++ a.addAttribute(FirstLineIndent, new Float(i)); ++ } ++ ++ public static void setFontFamily(MutableAttributeSet a, String fam) ++ { ++ a.addAttribute(FontFamily, fam); ++ } ++ ++ public static void setFontSize(MutableAttributeSet a, int s) ++ { ++ a.addAttribute(FontSize, new Integer(s)); ++ } ++ ++ public static void setForeground(MutableAttributeSet a, Color fg) ++ { ++ a.addAttribute(Foreground, fg); ++ } ++ ++ public static void setIcon(MutableAttributeSet a, Icon c) ++ { ++ a.addAttribute(IconAttribute, c); ++ } ++ ++ public static void setItalic(MutableAttributeSet a, boolean b) ++ { ++ a.addAttribute(Italic, new Boolean(b)); ++ } ++ ++ public static void setLeftIndent(MutableAttributeSet a, float i) ++ { ++ a.addAttribute(LeftIndent, new Float(i)); ++ } ++ ++ public static void setLineSpacing(MutableAttributeSet a, float i) ++ { ++ a.addAttribute(LineSpacing, new Float(i)); ++ } ++ ++ public static void setRightIndent(MutableAttributeSet a, float i) ++ { ++ a.addAttribute(RightIndent, new Float(i)); ++ } ++ ++ public static void setSpaceAbove(MutableAttributeSet a, float i) ++ { ++ a.addAttribute(SpaceAbove, new Float(i)); ++ } ++ ++ public static void setSpaceBelow(MutableAttributeSet a, float i) ++ { ++ a.addAttribute(SpaceBelow, new Float(i)); ++ } ++ ++ public static void setStrikeThrough(MutableAttributeSet a, boolean b) ++ { ++ a.addAttribute(StrikeThrough, new Boolean(b)); ++ } ++ ++ public static void setSubscript(MutableAttributeSet a, boolean b) ++ { ++ a.addAttribute(Subscript, new Boolean(b)); ++ } ++ ++ public static void setSuperscript(MutableAttributeSet a, boolean b) ++ { ++ a.addAttribute(Superscript, new Boolean(b)); ++ } ++ ++ public static void setTabSet(MutableAttributeSet a, javax.swing.text.TabSet tabs) ++ { ++ a.addAttribute(StyleConstants.TabSet, tabs); ++ } ++ ++ public static void setUnderline(MutableAttributeSet a, boolean b) ++ { ++ a.addAttribute(Underline, new Boolean(b)); ++ } ++ ++ // The remainder are so-called "typesafe enumerations" which ++ // alias subsets of the above constants. ++ public static class CharacterConstants ++ extends StyleConstants ++ implements AttributeSet.CharacterAttribute ++ { ++ private CharacterConstants(String k) ++ { ++ super(k); ++ } ++ ++ public static Object Background = ColorConstants.Background; ++ public static Object BidiLevel = new CharacterConstants("bidiLevel"); ++ public static Object Bold = FontConstants.Bold; ++ public static Object ComponentAttribute = new CharacterConstants("component"); ++ public static Object Family = FontConstants.Family; ++ public static Object Size = FontConstants.Size; ++ public static Object Foreground = ColorConstants.Foreground; ++ public static Object IconAttribute = new CharacterConstants("icon"); ++ public static Object Italic = FontConstants.Italic; ++ public static Object StrikeThrough = new CharacterConstants("strikethrough"); ++ public static Object Subscript = new CharacterConstants("subscript"); ++ public static Object Superscript = new CharacterConstants("superscript"); ++ public static Object Underline = new CharacterConstants("underline"); ++ } ++ ++ public static class ColorConstants ++ extends StyleConstants ++ implements AttributeSet.ColorAttribute, AttributeSet.CharacterAttribute ++ { ++ private ColorConstants(String k) ++ { ++ super(k); ++ } ++ public static Object Foreground = new ColorConstants("foreground"); ++ public static Object Background = new ColorConstants("background"); ++ } ++ ++ public static class FontConstants ++ extends StyleConstants ++ implements AttributeSet.FontAttribute, AttributeSet.CharacterAttribute ++ { ++ private FontConstants(String k) ++ { ++ super(k); ++ } ++ public static Object Bold = new FontConstants("bold"); ++ public static Object Family = new FontConstants("family"); ++ public static Object Italic = new FontConstants("italic"); ++ public static Object Size = new FontConstants("size"); ++ } ++ ++ public static class ParagraphConstants ++ extends StyleConstants ++ implements AttributeSet.ParagraphAttribute ++ { ++ private ParagraphConstants(String k) ++ { ++ super(k); ++ } ++ public static Object Alignment = new ParagraphConstants("Alignment"); ++ public static Object FirstLineIndent = new ParagraphConstants("FirstLineIndent"); ++ public static Object LeftIndent = new ParagraphConstants("LeftIndent"); ++ public static Object LineSpacing = new ParagraphConstants("LineSpacing"); ++ public static Object Orientation = new ParagraphConstants("Orientation"); ++ public static Object RightIndent = new ParagraphConstants("RightIndent"); ++ public static Object SpaceAbove = new ParagraphConstants("SpaceAbove"); ++ public static Object SpaceBelow = new ParagraphConstants("SpaceBelow"); ++ public static Object TabSet = new ParagraphConstants("TabSet"); ++ } ++ ++} +Index: javax/swing/text/StyleContext.java +=================================================================== +RCS file: javax/swing/text/StyleContext.java +diff -N javax/swing/text/StyleContext.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/text/StyleContext.java 6 Sep 2004 16:36:10 -0000 +@@ -0,0 +1,697 @@ ++/* StyleContext.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.text; ++ ++import java.awt.Color; ++import java.awt.Font; ++import java.awt.FontMetrics; ++import java.awt.Toolkit; ++import java.io.IOException; ++import java.io.ObjectInputStream; ++import java.io.ObjectOutputStream; ++import java.io.Serializable; ++import javax.swing.event.EventListenerList; ++import javax.swing.event.ChangeEvent; ++import javax.swing.event.ChangeListener; ++import java.util.Enumeration; ++import java.util.EventListener; ++import java.util.Hashtable; ++ ++public class StyleContext ++ implements Serializable, AbstractDocument.AttributeContext ++{ ++ public class NamedStyle ++ implements Serializable, Style ++ { ++ protected ChangeEvent changeEvent; ++ protected EventListenerList listenerList; ++ ++ AttributeSet attributes; ++ String name; ++ ++ public NamedStyle() ++ { ++ this(null, null); ++ } ++ ++ public NamedStyle(Style parent) ++ { ++ this(null, parent); ++ } ++ ++ public NamedStyle(String name, Style parent) ++ { ++ this.name = name; ++ this.attributes = getEmptySet(); ++ this.changeEvent = new ChangeEvent(this); ++ this.listenerList = new EventListenerList(); ++ setResolveParent(parent); ++ } ++ ++ public String getName() ++ { ++ return name; ++ } ++ ++ public void setName(String n) ++ { ++ name = n; ++ fireStateChanged(); ++ } ++ ++ public void addChangeListener(ChangeListener l) ++ { ++ listenerList.add(ChangeListener.class, l); ++ } ++ ++ public void removeChangeListener(ChangeListener l) ++ { ++ listenerList.remove(ChangeListener.class, l); ++ } ++ ++ public EventListener[] getListeners(Class listenerType) ++ { ++ return listenerList.getListeners(listenerType); ++ } ++ ++ public ChangeListener[] getChangeListeners() ++ { ++ return (ChangeListener[]) getListeners(ChangeListener.class); ++ } ++ ++ protected void fireStateChanged() ++ { ++ ChangeListener[] listeners = getChangeListeners(); ++ for (int i = 0; i < listeners.length; ++i) ++ { ++ listeners[i].stateChanged(changeEvent); ++ } ++ } ++ ++ public void addAttribute(Object name, Object value) ++ { ++ attributes = StyleContext.this.addAttribute(attributes, name, value); ++ fireStateChanged(); ++ } ++ ++ public void addAttributes(AttributeSet attr) ++ { ++ attributes = StyleContext.this.addAttributes(attributes, attr); ++ fireStateChanged(); ++ } ++ ++ public boolean containsAttribute(Object name, Object value) ++ { ++ return attributes.containsAttribute(name, value); ++ } ++ ++ public boolean containsAttributes(AttributeSet attrs) ++ { ++ return attributes.containsAttributes(attrs); ++ } ++ ++ public AttributeSet copyAttributes() ++ { ++ return attributes.copyAttributes(); ++ } ++ ++ public Object getAttribute(Object attrName) ++ { ++ return attributes.getAttribute(attrName); ++ } ++ ++ public int getAttributeCount() ++ { ++ return attributes.getAttributeCount(); ++ } ++ ++ public Enumeration getAttributeNames() ++ { ++ return attributes.getAttributeNames(); ++ } ++ ++ public boolean isDefined(Object attrName) ++ { ++ return attributes.isDefined(attrName); ++ } ++ ++ public boolean isEqual(AttributeSet attr) ++ { ++ return attributes.isEqual(attr); ++ } ++ ++ public void removeAttribute(Object name) ++ { ++ attributes = StyleContext.this.removeAttribute(attributes, name); ++ fireStateChanged(); ++ } ++ ++ public void removeAttributes(AttributeSet attrs) ++ { ++ attributes = StyleContext.this.removeAttributes(attributes, attrs); ++ fireStateChanged(); ++ } ++ ++ public void removeAttributes(Enumeration names) ++ { ++ attributes = StyleContext.this.removeAttributes(attributes, names); ++ fireStateChanged(); ++ } ++ ++ ++ public AttributeSet getResolveParent() ++ { ++ return attributes.getResolveParent(); ++ } ++ ++ public void setResolveParent(AttributeSet parent) ++ { ++ attributes = StyleContext.this.addAttribute(attributes, ResolveAttribute, parent); ++ fireStateChanged(); ++ } ++ ++ public String toString() ++ { ++ return ("[NamedStyle: name=" + name + ", attrs=" + attributes.toString() + "]"); ++ } ++ } ++ ++ public class SmallAttributeSet ++ implements AttributeSet ++ { ++ final Object [] attrs; ++ public SmallAttributeSet(AttributeSet a) ++ { ++ if (a == null) ++ attrs = new Object[0]; ++ else ++ { ++ int n = a.getAttributeCount(); ++ int i = 0; ++ attrs = new Object[n * 2]; ++ Enumeration e = a.getAttributeNames(); ++ while (e.hasMoreElements()) ++ { ++ Object name = e.nextElement(); ++ attrs[i++] = name; ++ attrs[i++] = a.getAttribute(name); ++ } ++ } ++ } ++ ++ public SmallAttributeSet(Object [] a) ++ { ++ if (a == null) ++ attrs = new Object[0]; ++ else ++ { ++ attrs = new Object[a.length]; ++ System.arraycopy(a, 0, attrs, 0, a.length); ++ } ++ } ++ ++ public Object clone() ++ { ++ return new SmallAttributeSet(this.attrs); ++ } ++ ++ public boolean containsAttribute(Object name, Object value) ++ { ++ for (int i = 0; i < attrs.length; i += 2) ++ { ++ if (attrs[i].equals(name) && ++ attrs[i+1].equals(value)) ++ return true; ++ } ++ return false; ++ } ++ ++ public boolean containsAttributes(AttributeSet a) ++ { ++ Enumeration e = a.getAttributeNames(); ++ while (e.hasMoreElements()) ++ { ++ Object name = e.nextElement(); ++ Object val = a.getAttribute(name); ++ if (!containsAttribute(name, val)) ++ return false; ++ } ++ return true; ++ } ++ ++ public AttributeSet copyAttributes() ++ { ++ return (AttributeSet) clone(); ++ } ++ ++ public boolean equals(Object obj) ++ { ++ return ++ (obj instanceof SmallAttributeSet) ++ && this.isEqual((AttributeSet)obj); ++ } ++ ++ public Object getAttribute(Object key) ++ { ++ for (int i = 0; i < attrs.length; i += 2) ++ { ++ if (attrs[i].equals(key)) ++ return attrs[i+1]; ++ } ++ ++ Object p = getResolveParent(); ++ if (p != null && p instanceof AttributeSet) ++ return (((AttributeSet)p).getAttribute(key)); ++ ++ return null; ++ } ++ ++ public int getAttributeCount() ++ { ++ return attrs.length / 2; ++ } ++ ++ public Enumeration getAttributeNames() ++ { ++ return new Enumeration() ++ { ++ int i = 0; ++ public boolean hasMoreElements() ++ { ++ return i < attrs.length; ++ } ++ public Object nextElement() ++ { ++ i += 2; ++ return attrs[i-2]; ++ } ++ }; ++ } ++ ++ public AttributeSet getResolveParent() ++ { ++ return (AttributeSet) getAttribute(ResolveAttribute); ++ } ++ ++ public int hashCode() ++ { ++ return java.util.Arrays.asList(attrs).hashCode(); ++ } ++ ++ public boolean isDefined(Object key) ++ { ++ for (int i = 0; i < attrs.length; i += 2) ++ { ++ if (attrs[i].equals(key)) ++ return true; ++ } ++ return false; ++ } ++ ++ public boolean isEqual(AttributeSet attr) ++ { ++ return attr != null ++ && attr.containsAttributes(this) ++ && this.containsAttributes(attr); ++ } ++ ++ public String toString() ++ { ++ StringBuffer sb = new StringBuffer(); ++ sb.append("[StyleContext.SmallattributeSet:"); ++ for (int i = 0; i < attrs.length; ++i) ++ { ++ sb.append(" ("); ++ sb.append(attrs[i].toString()); ++ sb.append("="); ++ sb.append(attrs[i+1].toString()); ++ sb.append(")"); ++ } ++ sb.append("]"); ++ return sb.toString(); ++ } ++ } ++ ++ // FIXME: official javadocs suggest that these might be more usefully ++ // implemented using a WeakHashMap, but not sure if that works most ++ // places or whether it really matters anyways. ++ // ++ // FIXME: also not sure if these tables ought to be static (singletons), ++ // shared across all StyleContexts. I think so, but it's not clear in ++ // docs. revert to non-shared if you think it matters. ++ ++ public static final String DEFAULT_STYLE = "default"; ++ ++ static Hashtable sharedAttributeSets = new Hashtable(); ++ static Hashtable sharedFonts = new Hashtable(); ++ ++ static StyleContext defaultStyleContext = new StyleContext(); ++ static final int compressionThreshold = 9; ++ ++ EventListenerList listenerList; ++ Hashtable styleTable; ++ ++ public StyleContext() ++ { ++ listenerList = new EventListenerList(); ++ styleTable = new Hashtable(); ++ } ++ ++ protected SmallAttributeSet createSmallAttributeSet(AttributeSet a) ++ { ++ return new SmallAttributeSet(a); ++ } ++ ++ protected MutableAttributeSet createLargeAttributeSet(AttributeSet a) ++ { ++ return new SimpleAttributeSet(a); ++ } ++ ++ public void addChangeListener(ChangeListener listener) ++ { ++ listenerList.add(ChangeListener.class, listener); ++ } ++ ++ public void removeChangeListener(ChangeListener listener) ++ { ++ listenerList.remove(ChangeListener.class, listener); ++ } ++ ++ public ChangeListener[] getChangeListeners() ++ { ++ return (ChangeListener[]) listenerList.getListeners(ChangeListener.class); ++ } ++ ++ public Style addStyle(String name, Style parent) ++ { ++ Style newStyle = new NamedStyle(name, parent); ++ if (name != null) ++ styleTable.put(name, newStyle); ++ return newStyle; ++ } ++ ++ public void removeStyle(String name) ++ { ++ styleTable.remove(name); ++ } ++ ++ public Style getStyle(String name) ++ { ++ return (Style) styleTable.get(name); ++ } ++ ++ public Enumeration getStyleNames() ++ { ++ return styleTable.keys(); ++ } ++ ++ // ++ // StyleContexts only understand the "simple" model of fonts present in ++ // pre-java2d systems: fonts are a family name, a size (integral number ++ // of points), and a mask of style parameters (plain, bold, italic, or ++ // bold|italic). We have an inner class here called SimpleFontSpec which ++ // holds such triples. ++ // ++ // A SimpleFontSpec can be built for *any* AttributeSet because the size, ++ // family, and style keys in an AttributeSet have default values (defined ++ // over in StyleConstants). ++ // ++ // We keep a static cache mapping SimpleFontSpecs to java.awt.Fonts, so ++ // that we reuse Fonts between styles and style contexts. ++ // ++ ++ private static class SimpleFontSpec ++ { ++ String family; ++ int style; ++ int size; ++ public SimpleFontSpec(String family, ++ int style, ++ int size) ++ { ++ this.family = family; ++ this.style = style; ++ this.size = size; ++ } ++ public boolean equals(Object obj) ++ { ++ return (obj != null) ++ && (obj instanceof SimpleFontSpec) ++ && (((SimpleFontSpec)obj).family.equals(this.family)) ++ && (((SimpleFontSpec)obj).style == this.style) ++ && (((SimpleFontSpec)obj).size == this.size); ++ } ++ public int hashCode() ++ { ++ return family.hashCode() + style + size; ++ } ++ } ++ ++ public Font getFont(AttributeSet attr) ++ { ++ String family = StyleConstants.getFontFamily(attr); ++ int style = Font.PLAIN; ++ if (StyleConstants.isBold(attr)) ++ style += Font.BOLD; ++ if (StyleConstants.isItalic(attr)) ++ style += Font.ITALIC; ++ int size = StyleConstants.getFontSize(attr); ++ return getFont(family, style, size); ++ } ++ ++ public Font getFont(String family, int style, int size) ++ { ++ SimpleFontSpec spec = new SimpleFontSpec(family, style, size); ++ if (sharedFonts.containsKey(spec)) ++ return (Font) sharedFonts.get(spec); ++ else ++ { ++ Font tmp = new Font(family, style, size); ++ sharedFonts.put(spec, tmp); ++ return tmp; ++ } ++ } ++ ++ public FontMetrics getFontMetrics(Font f) ++ { ++ return Toolkit.getDefaultToolkit().getFontMetrics(f); ++ } ++ ++ public Color getForeground(AttributeSet a) ++ { ++ return StyleConstants.getForeground(a); ++ } ++ ++ public Color getBackground(AttributeSet a) ++ { ++ return StyleConstants.getBackground(a); ++ } ++ ++ protected int getCompressionThreshold() ++ { ++ return compressionThreshold; ++ } ++ ++ public static StyleContext getDefaultStyleContext() ++ { ++ return defaultStyleContext; ++ } ++ ++ public AttributeSet addAttribute(AttributeSet old, Object name, Object value) ++ { ++ if (old instanceof MutableAttributeSet) ++ { ++ ((MutableAttributeSet)old).addAttribute(name, value); ++ return old; ++ } ++ else ++ { ++ MutableAttributeSet mutable = createLargeAttributeSet(old); ++ mutable.addAttribute(name, value); ++ if (mutable.getAttributeCount() >= getCompressionThreshold()) ++ return mutable; ++ else ++ { ++ SmallAttributeSet small = createSmallAttributeSet(mutable); ++ if (sharedAttributeSets.containsKey(small)) ++ small = (SmallAttributeSet) sharedAttributeSets.get(small); ++ else ++ sharedAttributeSets.put(small,small); ++ return small; ++ } ++ } ++ } ++ ++ public AttributeSet addAttributes(AttributeSet old, AttributeSet attributes) ++ { ++ if (old instanceof MutableAttributeSet) ++ { ++ ((MutableAttributeSet)old).addAttributes(attributes); ++ return old; ++ } ++ else ++ { ++ MutableAttributeSet mutable = createLargeAttributeSet(old); ++ mutable.addAttributes(attributes); ++ if (mutable.getAttributeCount() >= getCompressionThreshold()) ++ return mutable; ++ else ++ { ++ SmallAttributeSet small = createSmallAttributeSet(mutable); ++ if (sharedAttributeSets.containsKey(small)) ++ small = (SmallAttributeSet) sharedAttributeSets.get(small); ++ else ++ sharedAttributeSets.put(small,small); ++ return small; ++ } ++ } ++ } ++ ++ public AttributeSet getEmptySet() ++ { ++ AttributeSet e = createSmallAttributeSet(null); ++ if (sharedAttributeSets.containsKey(e)) ++ e = (AttributeSet) sharedAttributeSets.get(e); ++ else ++ sharedAttributeSets.put(e, e); ++ return e; ++ } ++ ++ public void reclaim(AttributeSet attributes) ++ { ++ if (sharedAttributeSets.containsKey(attributes)) ++ sharedAttributeSets.remove(attributes); ++ } ++ ++ public AttributeSet removeAttribute(AttributeSet old, Object name) ++ { ++ if (old instanceof MutableAttributeSet) ++ { ++ ((MutableAttributeSet)old).removeAttribute(name); ++ if (old.getAttributeCount() < getCompressionThreshold()) ++ { ++ SmallAttributeSet small = createSmallAttributeSet(old); ++ if (!sharedAttributeSets.containsKey(small)) ++ sharedAttributeSets.put(small,small); ++ old = (AttributeSet) sharedAttributeSets.get(small); ++ } ++ return old; ++ } ++ else ++ { ++ MutableAttributeSet mutable = createLargeAttributeSet(old); ++ mutable.removeAttribute(name); ++ SmallAttributeSet small = createSmallAttributeSet(mutable); ++ if (sharedAttributeSets.containsKey(small)) ++ small = (SmallAttributeSet) sharedAttributeSets.get(small); ++ else ++ sharedAttributeSets.put(small,small); ++ return small; ++ } ++ } ++ ++ public AttributeSet removeAttributes(AttributeSet old, AttributeSet attributes) ++ { ++ return removeAttributes(old, attributes.getAttributeNames()); ++ } ++ ++ public AttributeSet removeAttributes(AttributeSet old, Enumeration names) ++ { ++ if (old instanceof MutableAttributeSet) ++ { ++ ((MutableAttributeSet)old).removeAttributes(names); ++ if (old.getAttributeCount() < getCompressionThreshold()) ++ { ++ SmallAttributeSet small = createSmallAttributeSet(old); ++ if (!sharedAttributeSets.containsKey(small)) ++ sharedAttributeSets.put(small,small); ++ old = (AttributeSet) sharedAttributeSets.get(small); ++ } ++ return old; ++ } ++ else ++ { ++ MutableAttributeSet mutable = createLargeAttributeSet(old); ++ mutable.removeAttributes(names); ++ SmallAttributeSet small = createSmallAttributeSet(mutable); ++ if (sharedAttributeSets.containsKey(small)) ++ small = (SmallAttributeSet) sharedAttributeSets.get(small); ++ else ++ sharedAttributeSets.put(small,small); ++ return small; ++ } ++ } ++ ++ ++ // FIXME: there's some sort of quasi-serialization stuff in here which I ++ // have left incomplete; I'm not sure I understand the intent properly. ++ ++ public static Object getStaticAttribute(Object key) ++ { ++ throw new InternalError("not implemented"); ++ } ++ ++ public static Object getStaticAttributeKey(Object key) ++ { ++ throw new InternalError("not implemented"); ++ } ++ ++ public static void readAttributeSet(ObjectInputStream in, MutableAttributeSet a) ++ throws ClassNotFoundException, IOException ++ { ++ throw new InternalError("not implemented"); ++ } ++ ++ public static void writeAttributeSet(ObjectOutputStream out, AttributeSet a) ++ throws IOException ++ { ++ throw new InternalError("not implemented"); ++ } ++ ++ public void readAttributes(ObjectInputStream in, MutableAttributeSet a) ++ throws ClassNotFoundException, IOException ++ { ++ throw new InternalError("not implemented"); ++ } ++ ++ public void writeAttributes(ObjectOutputStream out, AttributeSet a) ++ throws IOException ++ { ++ throw new InternalError("not implemented"); ++ } ++} +Index: javax/swing/text/StyledEditorKit.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/text/StyledEditorKit.java,v +retrieving revision 1.3 +diff -u -r1.3 StyledEditorKit.java +--- javax/swing/text/StyledEditorKit.java 10 Jan 2004 21:07:44 -0000 1.3 ++++ javax/swing/text/StyledEditorKit.java 6 Sep 2004 16:36:10 -0000 +@@ -41,339 +41,242 @@ + import java.awt.event.ActionEvent; + import java.beans.PropertyChangeEvent; + import java.beans.PropertyChangeListener; +-import java.io.InputStream; +-import java.io.OutputStream; +-import java.io.Reader; + import java.io.Serializable; +-import java.io.Writer; + import javax.swing.Action; + import javax.swing.JEditorPane; + import javax.swing.event.CaretEvent; + import javax.swing.event.CaretListener; + ++ + /** + * StyledEditorKit ++ * + * @author Andrew Selkirk +- * @version 1.0 + */ + public class StyledEditorKit extends DefaultEditorKit + { +- static final long serialVersionUID = 7002391892985555948L; +- +- //------------------------------------------------------------- +- // Classes ---------------------------------------------------- +- //------------------------------------------------------------- ++ private static final long serialVersionUID = 7002391892985555948L; + + /** + * UnderlineAction + */ +- public static class UnderlineAction extends StyledEditorKit.StyledTextAction { +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- ++ public static class UnderlineAction extends StyledEditorKit.StyledTextAction ++ { + /** + * Constructor UnderlineAction + */ +- public UnderlineAction() { ++ public UnderlineAction() ++ { + super("TODO"); + // TODO +- } // UnderlineAction() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- ++ } + + /** + * actionPerformed + * @param event TODO + */ +- public void actionPerformed(ActionEvent event) { ++ public void actionPerformed(ActionEvent event) ++ { + // TODO +- } // actionPerformed() +- +- +- } // UnderlineAction ++ } ++ } + + /** + * ItalicAction + */ +- public static class ItalicAction extends StyledEditorKit.StyledTextAction { +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- ++ public static class ItalicAction extends StyledEditorKit.StyledTextAction ++ { + /** + * Constructor ItalicAction + */ +- public ItalicAction() { ++ public ItalicAction() ++ { + super("TODO"); + // TODO +- } // ItalicAction() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- ++ } + + /** + * actionPerformed + * @param event TODO + */ +- public void actionPerformed(ActionEvent event) { ++ public void actionPerformed(ActionEvent event) ++ { + // TODO +- } // actionPerformed() +- +- +- } // ItalicAction ++ } ++ } + + /** + * BoldAction + */ +- public static class BoldAction extends StyledEditorKit.StyledTextAction { +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- ++ public static class BoldAction extends StyledEditorKit.StyledTextAction ++ { + /** + * Constructor BoldAction + */ +- public BoldAction() { ++ public BoldAction() ++ { + super("TODO"); + // TODO +- } // BoldAction() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- ++ } + + /** + * actionPerformed + * @param event TODO + */ +- public void actionPerformed(ActionEvent event) { ++ public void actionPerformed(ActionEvent event) ++ { + // TODO +- } // actionPerformed() +- +- +- } // BoldAction ++ } ++ } + + /** + * AlignmentAction + */ +- public static class AlignmentAction extends StyledEditorKit.StyledTextAction { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- ++ public static class AlignmentAction extends StyledEditorKit.StyledTextAction ++ { + /** + * a + */ + private int a; + +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- + /** + * Constructor AlignmentAction + * @param nm TODO + * @param a TODO + */ +- public AlignmentAction(String nm, int a) { ++ public AlignmentAction(String nm, int a) ++ { + super("TODO"); + // TODO +- } // AlignmentAction() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- ++ } + + /** + * actionPerformed + * @param event TODO + */ +- public void actionPerformed(ActionEvent event) { ++ public void actionPerformed(ActionEvent event) ++ { + // TODO +- } // actionPerformed() +- +- +- } // AlignmentAction ++ } ++ } + + /** + * ForegroundAction + */ +- public static class ForegroundAction extends StyledEditorKit.StyledTextAction { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- ++ public static class ForegroundAction extends StyledEditorKit.StyledTextAction ++ { + /** + * fg + */ + private Color fg; + +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- + /** + * Constructor ForegroundAction + * @param nm TODO + * @param fg TODO + */ +- public ForegroundAction(String nm, Color fg) { ++ public ForegroundAction(String nm, Color fg) ++ { + super("TODO"); + // TODO +- } // ForegroundAction() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- ++ } + + /** + * actionPerformed + * @param event TODO + */ +- public void actionPerformed(ActionEvent event) { ++ public void actionPerformed(ActionEvent event) ++ { + // TODO +- } // actionPerformed() +- +- +- } // ForegroundAction ++ } ++ } + + /** + * FontSizeAction + */ +- public static class FontSizeAction extends StyledEditorKit.StyledTextAction { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- ++ public static class FontSizeAction extends StyledEditorKit.StyledTextAction ++ { + /** + * size + */ + private int size; + +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- + /** + * Constructor FontSizeAction + * @param nm TODO + * @param size TODO + */ +- public FontSizeAction(String nm, int size) { ++ public FontSizeAction(String nm, int size) ++ { + super("TODO"); + // TODO +- } // FontSizeAction() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- ++ } + + /** + * actionPerformed + * @param event TODO + */ +- public void actionPerformed(ActionEvent event) { ++ public void actionPerformed(ActionEvent event) ++ { + // TODO +- } // actionPerformed() +- +- +- } // FontSizeAction ++ } ++ } + + /** + * FontFamilyAction + */ +- public static class FontFamilyAction extends StyledEditorKit.StyledTextAction { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- ++ public static class FontFamilyAction extends StyledEditorKit.StyledTextAction ++ { + /** + * family + */ + private String family; + +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- + /** + * Constructor FontFamilyAction + * @param nm TODO + * @param family TODO + */ +- public FontFamilyAction(String nm, String family) { ++ public FontFamilyAction(String nm, String family) ++ { + super("TODO"); + // TODO +- } // FontFamilyAction() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- ++ } + + /** + * actionPerformed + * @param event TODO + */ +- public void actionPerformed(ActionEvent event) { ++ public void actionPerformed(ActionEvent event) ++ { + // TODO +- } // actionPerformed() +- +- +- } // FontFamilyAction ++ } ++ } + + /** + * StyledTextAction + */ +- public abstract static class StyledTextAction extends TextAction { +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- ++ public abstract static class StyledTextAction extends TextAction ++ { + /** + * Constructor StyledTextAction + * @param nm TODO + */ +- public StyledTextAction(String nm) { ++ public StyledTextAction(String nm) ++ { + super(nm); + // TODO +- } // StyledTextAction() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- ++ } + + /** + * getEditor + * @param event TODO + * @returns JEditorPane + */ +- protected final JEditorPane getEditor(ActionEvent event) { ++ protected final JEditorPane getEditor(ActionEvent event) ++ { + return null; // TODO +- } // getEditor() ++ } + + /** + * setCharacterAttributes +@@ -381,27 +284,32 @@ + * @param value1 TODO + * @param value2 TODO + */ +- protected final void setCharacterAttributes(JEditorPane value0, AttributeSet value1, boolean value2) { ++ protected final void setCharacterAttributes(JEditorPane value0, ++ AttributeSet value1, ++ boolean value2) ++ { + // TODO +- } // setCharacterAttributes() ++ } + + /** + * getStyledDocument + * @param value0 TODO + * @returns StyledDocument + */ +- protected final StyledDocument getStyledDocument(JEditorPane value0) { ++ protected final StyledDocument getStyledDocument(JEditorPane value0) ++ { + return null; // TODO +- } // getStyledDocument() ++ } + + /** + * getStyledEditorKit + * @param value0 TODO + * @returns StyledEditorKit + */ +- protected final StyledEditorKit getStyledEditorKit(JEditorPane value0) { ++ protected final StyledEditorKit getStyledEditorKit(JEditorPane value0) ++ { + return null; // TODO +- } // getStyledEditorKit() ++ } + + /** + * setParagraphAttributes +@@ -409,72 +317,53 @@ + * @param value1 TODO + * @param value2 TODO + */ +- protected final void setParagraphAttributes(JEditorPane value0, AttributeSet value1, boolean value2) { ++ protected final void setParagraphAttributes(JEditorPane value0, ++ AttributeSet value1, ++ boolean value2) ++ { + // TODO +- } // setParagraphAttributes() +- +- +- } // StyledTextAction ++ } ++ } + + /** + * StyledViewFactory + */ +- static class StyledViewFactory implements ViewFactory { +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- ++ static class StyledViewFactory ++ implements ViewFactory ++ { + /** + * Constructor StyledViewFactory + */ +- StyledViewFactory() { ++ StyledViewFactory() ++ { + // TODO +- } // StyledViewFactory() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- ++ } + + /** + * create + * @param value0 TODO + * @returns View + */ +- public View create(Element value0) { ++ public View create(Element value0) ++ { + return null; // TODO +- } // create() +- +- +- } // StyledViewFactory ++ } ++ } + + /** + * AttributeTracker + */ +- class AttributeTracker implements CaretListener, PropertyChangeListener, Serializable { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- ++ class AttributeTracker ++ implements CaretListener, PropertyChangeListener, Serializable ++ { + /** + * Constructor AttributeTracker + * @param value0 TODO + */ +- AttributeTracker(StyledEditorKit value0) { ++ AttributeTracker(StyledEditorKit value0) ++ { + // TODO +- } // AttributeTracker() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- ++ } + + /** + * updateInputAttributes +@@ -482,33 +371,29 @@ + * @param value1 TODO + * @param value2 TODO + */ +- void updateInputAttributes(int value0, int value1, JTextComponent value2) { ++ void updateInputAttributes(int value0, int value1, JTextComponent value2) ++ { + // TODO +- } // updateInputAttributes() ++ } + + /** + * propertyChange + * @param value0 TODO + */ +- public void propertyChange(PropertyChangeEvent value0) { ++ public void propertyChange(PropertyChangeEvent value0) ++ { + // TODO +- } // propertyChange() ++ } + + /** + * caretUpdate + * @param value0 TODO + */ +- public void caretUpdate(CaretEvent value0) { ++ public void caretUpdate(CaretEvent value0) ++ { + // TODO +- } // caretUpdate() +- +- +- } // AttributeTracker +- +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- ++ } ++ } + + /** + * currentRun +@@ -525,96 +410,93 @@ + */ + MutableAttributeSet inputAttributes; + +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- + /** + * Constructor StyledEditorKit + */ +- public StyledEditorKit() { ++ public StyledEditorKit() ++ { + // TODO +- } // StyledEditorKit() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- ++ } + + /** + * clone + * @returns Object + */ +- public Object clone() { ++ public Object clone() ++ { + return null; // TODO +- } // clone() ++ } + + /** + * getActions + * @returns Action[] + */ +- public Action[] getActions() { ++ public Action[] getActions() ++ { + return null; // TODO +- } // getActions() ++ } + + /** + * getInputAttributes + * @returns MutableAttributeSet + */ +- public MutableAttributeSet getInputAttributes() { ++ public MutableAttributeSet getInputAttributes() ++ { + return null; // TODO +- } // getInputAttributes() ++ } + + /** + * getCharacterAttributeRun + * @returns Element + */ +- public Element getCharacterAttributeRun() { ++ public Element getCharacterAttributeRun() ++ { + return null; // TODO +- } // getCharacterAttributeRun() ++ } + + /** + * createDefaultDocument + * @returns Document + */ +- public Document createDefaultDocument() { ++ public Document createDefaultDocument() ++ { + return null; // TODO +- } // createDefaultDocument() ++ } + + /** + * install + * @param component TODO + */ +- public void install(JEditorPane component) { ++ public void install(JEditorPane component) ++ { + // TODO +- } // install() ++ } + + /** + * deinstall + * @param component TODO + */ +- public void deinstall(JEditorPane component) { ++ public void deinstall(JEditorPane component) ++ { + // TODO +- } // deinstall() ++ } + + /** + * getViewFactory + * @returns ViewFactory + */ +- public ViewFactory getViewFactory() { ++ public ViewFactory getViewFactory() ++ { + return null; // TODO +- } // getViewFactory() ++ } + + /** + * createInputAttributes + * @param element TODO + * @param set TODO + */ +- protected void createInputAttributes(Element element, +- MutableAttributeSet set) { ++ protected void createInputAttributes(Element element, MutableAttributeSet set) ++ { + // TODO +- } // createInputAttributes() +- +- +-} // StyledEditorKit ++ } ++} +Index: javax/swing/text/TabExpander.java +=================================================================== +RCS file: javax/swing/text/TabExpander.java +diff -N javax/swing/text/TabExpander.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/text/TabExpander.java 6 Sep 2004 16:36:10 -0000 +@@ -0,0 +1,43 @@ ++/* TabExpander.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.text; ++ ++public interface TabExpander ++{ ++ float nextTabStop(float x, int tabOffset); ++} +\ No newline at end of file +Index: javax/swing/text/TabSet.java +=================================================================== +RCS file: javax/swing/text/TabSet.java +diff -N javax/swing/text/TabSet.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/text/TabSet.java 6 Sep 2004 16:36:10 -0000 +@@ -0,0 +1,102 @@ ++/* TabSet.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.text; ++ ++import java.io.Serializable; ++ ++public class TabSet implements Serializable ++{ ++ TabStop[] tabs; ++ ++ public TabSet(TabStop[] t) ++ { ++ tabs = t; ++ } ++ ++ public TabStop getTab(int i) ++ { ++ return tabs[i]; ++ } ++ ++ public TabStop getTabAfter(float location) ++ { ++ int idx = getTabIndexAfter(location); ++ if (idx == -1) ++ return null; ++ else ++ return tabs[idx]; ++ } ++ ++ public int getTabCount() ++ { ++ return tabs.length; ++ } ++ ++ public int getTabIndex(TabStop tab) ++ { ++ for (int i = 0; i < tabs.length; ++i) ++ if (tabs[i] == tab) ++ return i; ++ return -1; ++ } ++ ++ public int getTabIndexAfter(float location) ++ { ++ int idx = -1; ++ for (int i = 0; i < tabs.length; ++i) ++ { ++ if (location < tabs[i].getPosition()) ++ idx = i; ++ } ++ return idx; ++ } ++ ++ public String toString() ++ { ++ StringBuffer sb = new StringBuffer(); ++ sb.append("["); ++ for (int i = 0; i < tabs.length; ++i) ++ { ++ if (i != 0) ++ sb.append(" - "); ++ sb.append(tabs[i].toString()); ++ } ++ sb.append("]"); ++ return sb.toString(); ++ } ++} +Index: javax/swing/text/TabStop.java +=================================================================== +RCS file: javax/swing/text/TabStop.java +diff -N javax/swing/text/TabStop.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/text/TabStop.java 6 Sep 2004 16:36:10 -0000 +@@ -0,0 +1,133 @@ ++/* TabSet.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.text; ++ ++import java.io.Serializable; ++ ++public class TabStop implements Serializable ++{ ++ public static final int ALIGN_LEFT = 0; ++ public static final int ALIGN_RIGHT = 1; ++ public static final int ALIGN_CENTER = 2; ++ public static final int ALIGN_DECIMAL = 4; ++ public static final int ALIGN_BAR = 5; ++ ++ public static final int LEAD_NONE = 0; ++ public static final int LEAD_DOTS = 1; ++ public static final int LEAD_HYPHENS = 2; ++ public static final int LEAD_UNDERLINE = 3; ++ public static final int LEAD_THICKLINE = 4; ++ public static final int LEAD_EQUALS = 5; ++ ++ float pos; ++ int align; ++ int leader; ++ ++ public TabStop(float pos) ++ { ++ this(pos, ALIGN_LEFT, LEAD_NONE); ++ } ++ ++ public TabStop(float pos, int align, int leader) ++ { ++ this.pos = pos; ++ this.align = align; ++ this.leader = leader; ++ } ++ ++ public boolean equals(Object other) ++ { ++ return (other != null) ++ && (other instanceof TabStop) ++ && (((TabStop)other).getPosition() == this.getPosition()) ++ && (((TabStop)other).getLeader() == this.getLeader()) ++ && (((TabStop)other).getAlignment() == this.getAlignment()); ++ } ++ ++ public int getAlignment() ++ { ++ return align; ++ } ++ ++ public int getLeader() ++ { ++ return leader; ++ } ++ ++ public float getPosition() ++ { ++ return pos; ++ } ++ ++ public int hashCode() ++ { ++ return (int) pos + (int) leader + (int) align; ++ } ++ ++ public String toString() ++ { ++ String prefix = ""; ++ switch (align) ++ { ++ case ALIGN_LEFT: ++ prefix = "left "; ++ break; ++ case ALIGN_RIGHT: ++ prefix = "right "; ++ break; ++ ++ case ALIGN_CENTER: ++ prefix = "center "; ++ break; ++ ++ case ALIGN_DECIMAL: ++ prefix = "decimal "; ++ break; ++ ++ case ALIGN_BAR: ++ prefix = "bar "; ++ break; ++ ++ default: ++ break; ++ } ++ ++ return (prefix + "tab @" + pos + ((leader == LEAD_NONE) ? "" : "(w/leaders)")); ++ } ++ ++} +Index: javax/swing/text/TabableView.java +=================================================================== +RCS file: javax/swing/text/TabableView.java +diff -N javax/swing/text/TabableView.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/text/TabableView.java 6 Sep 2004 16:36:10 -0000 +@@ -0,0 +1,44 @@ ++/* TabableView.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++package javax.swing.text; ++ ++public interface TabableView ++{ ++ float getPartialSpan(int p0, int p1); ++ float getTabbedSpan(float x, TabExpander expander); ++} +Index: javax/swing/text/TextAction.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/text/TextAction.java,v +retrieving revision 1.2 +diff -u -r1.2 TextAction.java +--- javax/swing/text/TextAction.java 10 Jan 2004 21:07:44 -0000 1.2 ++++ javax/swing/text/TextAction.java 6 Sep 2004 16:36:10 -0000 +@@ -41,56 +41,53 @@ + import javax.swing.AbstractAction; + import javax.swing.Action; + ++ + /** + * TextAction + * @author Andrew Selkirk +- * @version 1.0 + */ +-public abstract class TextAction extends AbstractAction { +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- ++public abstract class TextAction extends AbstractAction ++{ + /** + * Constructor TextAction + * @param name TODO + */ +- public TextAction(String name) { +- // TODO +- } // TextAction() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- ++ public TextAction(String name) ++ { ++ super(name); ++ } + + /** + * getTextComponent + * @param event TODO +- * @returns JTextComponent ++ * @return JTextComponent + */ +- protected final JTextComponent getTextComponent(ActionEvent event) { +- return null; // TODO +- } // getTextComponent() ++ protected final JTextComponent getTextComponent(ActionEvent event) ++ { ++ if (event.getSource() != null && ++ event.getSource() instanceof JTextComponent) ++ return (JTextComponent) event.getSource(); ++ else ++ return getFocusedComponent(); ++ } + + /** + * augmentList + * @param list1 TODO + * @param list2 TODO +- * @returns Action[] ++ * @return Action[] + */ +- public static final Action[] augmentList(Action[] list1, Action[] list2) { ++ public static final Action[] augmentList(Action[] list1, Action[] list2) ++ { + return null; // TODO +- } // augmentList() ++ } + + /** + * getFocusedComponent +- * @returns JTextComponent ++ * @return JTextComponent + */ +- protected final JTextComponent getFocusedComponent() { ++ protected final JTextComponent getFocusedComponent() ++ { + return null; // TODO +- } // getFocusedComponent() +- +- +-} // TextAction ++ } ++} +Index: javax/swing/text/Utilities.java +=================================================================== +RCS file: javax/swing/text/Utilities.java +diff -N javax/swing/text/Utilities.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ javax/swing/text/Utilities.java 6 Sep 2004 16:36:10 -0000 +@@ -0,0 +1,182 @@ ++/* Utilities.java -- ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++ ++package javax.swing.text; ++ ++import java.awt.FontMetrics; ++import java.awt.Graphics; ++ ++/** ++ * A set of utilities to deal with text. This is used by several other classes ++ * inside this package. ++ * ++ * @author Roman Kennke ++ */ ++public class Utilities ++{ ++ /** ++ * The length of the char buffer that holds the characters to be drawn. ++ */ ++ private static final int BUF_LENGTH = 64; ++ ++ /** ++ * Creates a new Utilities object. ++ */ ++ public Utilities() ++ { ++ // Nothing to be done here. ++ } ++ ++ /** ++ * Draws the given text segment. Contained tabs and newline characters ++ * are taken into account. Tabs are expanded using the ++ * specified {@link TabExpander}. ++ * ++ * @param s the text fragment to be drawn. ++ * @param x the x position for drawing. ++ * @param y the y position for drawing. ++ * @param g the {@link Graphics} context for drawing. ++ * @param e the {@link TabExpander} which specifies the Tab-expanding ++ * technique. ++ * @param startOffset starting offset in the text. ++ * @return the x coordinate at the end of the drawn text. ++ */ ++ public static final int drawTabbedText(Segment s, int x, int y, Graphics g, ++ TabExpander e, int startOffset) ++ { ++ // This buffers the chars to be drawn. ++ char[] buffer = s.array; ++ ++ ++ // The current x and y pixel coordinates. ++ int pixelX = x; ++ int pixelY = y; ++ ++ // The font metrics of the current selected font. ++ FontMetrics metrics = g.getFontMetrics(); ++ int ascent = metrics.getAscent(); ++ ++ for (int offset = s.offset; offset < (s.offset + s.count); ++offset) ++ { ++ switch (buffer[offset]) ++ { ++ case '\t': ++ // In case we have a tab, we just 'jump' over the tab. ++ // When we have no tab expander we just use the width of 'm'. ++ if (e != null) ++ pixelX = (int) e.nextTabStop((float) pixelX, ++ startOffset + offset - s.offset); ++ else ++ pixelX += metrics.charWidth(' '); ++ break; ++ case '\n': ++ // In case we have a newline, we must draw ++ // the buffer and jump on the next line. ++ g.drawChars(buffer, offset, 1, pixelX, y); ++ pixelY += metrics.getHeight(); ++ pixelX = x; ++ break; ++ default: ++ // Here we draw the char. ++ g.drawChars(buffer, offset, 1, pixelX, pixelY + ascent); ++ pixelX += metrics.charWidth(buffer[offset]); ++ break; ++ } ++ } ++ ++ return pixelX; ++ } ++ ++ /** ++ * Determines the width, that the given text s would take ++ * if it was printed with the given {@link java.awt.FontMetrics} on the ++ * specified screen position. ++ * @param s the text fragment ++ * @param metrics the font metrics of the font to be used ++ * @param x the x coordinate of the point at which drawing should be done ++ * @param e the {@link TabExpander} to be used ++ * @param startOffset the index in s where to start ++ * @returns the width of the given text s. This takes tabs and newlines ++ * into account. ++ */ ++ public static final int getTabbedTextWidth(Segment s, FontMetrics metrics, ++ int x, TabExpander e, ++ int startOffset) ++ { ++ // This buffers the chars to be drawn. ++ char[] buffer = s.array; ++ ++ // The current x coordinate. ++ int pixelX = x; ++ ++ // The current maximum width. ++ int maxWidth = 0; ++ ++ for (int offset = s.offset; offset < (s.offset + s.count); ++offset) ++ { ++ switch (buffer[offset]) ++ { ++ case '\t': ++ // In case we have a tab, we just 'jump' over the tab. ++ // When we have no tab expander we just use the width of 'm'. ++ if (e != null) ++ pixelX = (int) e.nextTabStop((float) pixelX, ++ startOffset + offset - s.offset); ++ else ++ pixelX += metrics.charWidth(' '); ++ break; ++ case '\n': ++ // In case we have a newline, we must 'draw' ++ // the buffer and jump on the next line. ++ pixelX += metrics.charWidth(buffer[offset]); ++ maxWidth = Math.max(maxWidth, pixelX - x); ++ pixelX = x; ++ break; ++ default: ++ // Here we draw the char. ++ pixelX += metrics.charWidth(buffer[offset]); ++ break; ++ } ++ } ++ ++ // Take the last line into account. ++ maxWidth = Math.max(maxWidth, pixelX - x); ++ ++ return maxWidth; ++ } ++} +Index: javax/swing/text/View.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/text/View.java,v +retrieving revision 1.2 +diff -u -r1.2 View.java +--- javax/swing/text/View.java 10 Jan 2004 21:07:44 -0000 1.2 ++++ javax/swing/text/View.java 6 Sep 2004 16:36:10 -0000 +@@ -37,6 +37,7 @@ + + package javax.swing.text; + ++import java.awt.Container; + import java.awt.Graphics; + import java.awt.Shape; + import java.util.Vector; +@@ -44,97 +45,165 @@ + + public abstract class View implements SwingConstants + { +- static int BadBreakWeight; +- static int ExcellentBreakWeight; +- static int ForcedBreakWeight; +- static int GoodBreakWeight; +- +- public final static int X_AXIS = 0; +- public final static int Y_AXIS = 1; +- +- float width, height; +- Element elt; +- View parent; ++ public static final int BadBreakWeight = 0; ++ public static final int ExcellentBreakWeight = 2000; ++ public static final int ForcedBreakWeight = 3000; ++ public static final int GoodBreakWeight = 1000; ++ ++ public static final int X_AXIS = 0; ++ public static final int Y_AXIS = 1; ++ ++ private float width, height; ++ private Element elt; ++ private View parent; + + /** +- * this vector contains the views ordered at offsets... ++ * Creates a new View instance. ++ * ++ * @param elem an Element value + */ +- Vector v = new Vector(); +- +- + public View(Element elem) + { + elt = elem; + } + +- public int getViewCount() ++ public abstract void paint(Graphics g, Shape s); ++ ++ public void setParent(View a) + { +- return v.size(); ++ parent = a; + } + +- public View getView(int a) ++ public View getParent() + { +- return (View) v.get(a); ++ return parent; + } + +- public void remove(int i) ++ public void setSize(int w, int h) + { +- v.removeElementAt(i); ++ width = w; ++ height = h; + } + +- public void insert(int off, View view) ++ public Container getContainer() + { +- v.insertElementAt(view, off); ++ return parent != null ? parent.getContainer() : null; + } + +- public void append(View view) ++ public Document getDocument() + { +- v.addElement(view); ++ return getElement().getDocument(); + } + +- public void paint(Graphics g, Shape allocation) ++ public Element getElement() + { +- System.out.println("view.paint() !!!!"); ++ return elt; + } + +- public void setParent(View a) ++ public abstract float getPreferredSpan(int axis); ++ ++ public float getAlignment(int axis) + { +- parent = a; ++ return 0.5f; + } + +- public View getParent() ++ public AttributeSet getAttributes() + { +- return parent; ++ return elt.getAttributes(); + } + +- public void setSize(int w, int h) ++ public boolean isVisible() + { +- width = w; +- height = h; ++ return true; + } + +- public Document getDocument() ++ public int getViewCount() + { +- return getElement().getDocument(); ++ return 0; + } + +- public Element getElement() ++ public View getView(int index) + { +- return elt; ++ return null; + } + +- public float getPreferredSpan(int a) ++ public ViewFactory getViewFactory() + { +- switch (a) ++ return parent != null ? parent.getViewFactory() : null; ++ } ++ ++ public void replace(int offset, int length, View[] views) + { +- case X_AXIS: return width; +- case Y_AXIS: return height; +- default: ++ // Default implementation does nothing. ++ } ++ ++ public void insert(int offset, View view) + { +- System.err.println("I sure wish Java had enums !!! "); +- return 0; ++ View[] array = { view }; ++ replace(offset, 1, array); + } ++ ++ public void append(View view) ++ { ++ View[] array = { view }; ++ replace(getViewCount(), 1, array); ++ } ++ ++ public void removeAll() ++ { ++ replace(0, getViewCount(), null); + } +- } ++ ++ public void remove(int index) ++ { ++ replace(index, 1, null); ++ } ++ ++ public View createFragment(int p0, int p1) ++ { ++ // The default implementation doesn't support fragmentation. ++ return this; ++ } ++ ++ public int getStartOffset() ++ { ++ return elt.getStartOffset(); ++ } ++ ++ public int getEndOffset() ++ { ++ return elt.getEndOffset(); ++ } ++ ++ public Shape getChildAllocation(int index, Shape a) ++ { ++ return null; ++ } ++ ++ /** ++ * @since 1.4 ++ */ ++ public int getViewIndex(float x, float y, Shape allocation) ++ { ++ return -1; ++ } ++ ++ /** ++ * @since 1.4 ++ */ ++ public String getToolTipText(float x, float y, Shape allocation) ++ { ++ int index = getViewIndex(x, y, allocation); ++ ++ if (index < -1) ++ return null; ++ ++ Shape childAllocation = getChildAllocation(index, allocation); ++ ++ if (childAllocation.getBounds().contains(x, y)) ++ return getView(index).getToolTipText(x, y, childAllocation); ++ ++ return null; ++ } + } + +Index: javax/swing/text/ViewFactory.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/text/ViewFactory.java,v +retrieving revision 1.2 +diff -u -r1.2 ViewFactory.java +--- javax/swing/text/ViewFactory.java 12 Oct 2003 13:33:32 -0000 1.2 ++++ javax/swing/text/ViewFactory.java 6 Sep 2004 16:36:10 -0000 +@@ -1,5 +1,5 @@ + /* ViewFactory.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -39,5 +39,12 @@ + + public interface ViewFactory + { ++ /** ++ * Creates a view for a given element. ++ * ++ * @param elem them element to create view for ++ * ++ * @return a new created view ++ */ + View create (Element elem); + } +Index: javax/swing/tree/DefaultMutableTreeNode.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/tree/DefaultMutableTreeNode.java,v +retrieving revision 1.4 +diff -u -r1.4 DefaultMutableTreeNode.java +--- javax/swing/tree/DefaultMutableTreeNode.java 12 Oct 2003 13:33:32 -0000 1.4 ++++ javax/swing/tree/DefaultMutableTreeNode.java 6 Sep 2004 16:36:10 -0000 +@@ -997,17 +997,17 @@ + public int getLeafCount() { + + // Variables +- Enumeration enum; ++ Enumeration e; + int count; + TreeNode current; + + // Get Enumeration of all descendants +- enum = depthFirstEnumeration(); ++ e = depthFirstEnumeration(); + + // Process Nodes + count = 0; +- while (enum.hasMoreElements() == true) { +- current = (TreeNode) enum.nextElement(); ++ while (e.hasMoreElements() == true) { ++ current = (TreeNode) e.nextElement(); + if (current.isLeaf() == true) { + count++; + } // if +Index: javax/swing/tree/DefaultTreeCellEditor.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/tree/DefaultTreeCellEditor.java,v +retrieving revision 1.2 +diff -u -r1.2 DefaultTreeCellEditor.java +--- javax/swing/tree/DefaultTreeCellEditor.java 11 Jun 2003 13:20:41 -0000 1.2 ++++ javax/swing/tree/DefaultTreeCellEditor.java 6 Sep 2004 16:36:11 -0000 +@@ -1,5 +1,5 @@ + /* DefaultTreeCellEditor.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -50,12 +50,12 @@ + import java.io.ObjectInputStream; + import java.io.ObjectOutputStream; + import java.util.EventObject; ++ + import javax.swing.Icon; + import javax.swing.JTextField; + import javax.swing.JTree; + import javax.swing.border.Border; + import javax.swing.event.CellEditorListener; +-import javax.swing.event.EventListenerList; + import javax.swing.event.TreeSelectionEvent; + import javax.swing.event.TreeSelectionListener; + +Index: javax/swing/undo/CompoundEdit.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/undo/CompoundEdit.java,v +retrieving revision 1.4 +diff -u -r1.4 CompoundEdit.java +--- javax/swing/undo/CompoundEdit.java 11 Jan 2004 12:40:49 -0000 1.4 ++++ javax/swing/undo/CompoundEdit.java 6 Sep 2004 16:36:11 -0000 +@@ -45,17 +45,18 @@ + * UndoableEdits. + * + *

    The use of a CompoundEdit is divided in two separate +- * phases. +- * +- *

    1. In the first phase, the CompoundEdit is +- * initialized. After a new instance of CompoundEdit has +- * been created, {@link #addEdit(UndoableEdit)} is called for each +- * element of the compound. To terminate the initialization phase, +- * call {@link #end()}.
    2. ++ * phases.

      + * ++ *
        ++ *
      1. In the first phase, the CompoundEdit is ++ * initialized. After a new instance of CompoundEdit has ++ * been created, {@link #addEdit(UndoableEdit)} is called for each ++ * element of the compound. To terminate the initialization phase, ++ * call {@link #end()}.
      2. + *
      3. In the second phase, the the CompoundEdit can be +- * used, typically by invoking {@link #undo()} and {@link +- * #redo()}.
      ++ * used, typically by invoking {@link #undo()} and ++ * {@link #redo()}. ++ *
    + * + * @author Andrew Selkirk (aselkirk@sympatico.ca) + * @author Sascha Brawer (brawer@dandelis.ch) +Index: javax/swing/undo/StateEdit.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/undo/StateEdit.java,v +retrieving revision 1.4 +diff -u -r1.4 StateEdit.java +--- javax/swing/undo/StateEdit.java 26 Nov 2003 22:23:40 -0000 1.4 ++++ javax/swing/undo/StateEdit.java 6 Sep 2004 16:36:11 -0000 +@@ -44,52 +44,54 @@ + /** + * A helper class, making it easy to support undo and redo. + * +- *

    The following example shows how to use this class. ++ *

    The following example shows how to use this class.

    + * +- *
      Foo foo; // class Foo implements {@link StateEditable}
    +- *  StateEdit edit;
    +- *
    +- *  edit = new StateEdit(foo, "Name Change");
    +- *  foo.setName("Jane Doe");
    +- *  edit.end();
    +- *  undoManager.addEdit(edit);
    ++ *
    ++ * Foo foo; // class Foo implements {@link StateEditable}
    ++ * StateEdit edit;
    ++ *
    ++ * edit = new StateEdit(foo, "Name Change");
    ++ * foo.setName("Jane Doe");
    ++ * edit.end();
    ++ * undoManager.addEdit(edit);
    ++ * 
    + * + *

    If Foo’s implementation of {@link + * StateEditable} considers the name as part of the editable state, + * the user can now choose “Undo Name Change” or + * “Redo Name Change” from the respective menu. No +- * further undo support is needed from the application. +- * +- *

    The following explains what happens in the example. ++ * further undo support is needed from the application.

    + * +- *

    1. When a StateEdit is created, the associated +- * {@link StateEditable} gets asked to store its state into a hash +- * table, {@link #preState}.
    2. ++ *

      The following explains what happens in the example.

      + * ++ *
        ++ *
      1. When a StateEdit is created, the associated ++ * {@link StateEditable} gets asked to store its state into a hash ++ * table, {@link #preState}.
      2. + *
      3. The application will now perform some changes to the edited +- * object. This typically happens by invoking methods on the edited +- * object.
      4. +- * ++ * object. This typically happens by invoking methods on the edited ++ * object. + *
      5. The editing phase is terminated by invoking the {@link #end()} +- * method of the StateEdit. The end() method +- * does two things. +- * +- *
        • The edited object receives a second request for storing +- * its state. This time, it will use a different hash table, {@link +- * #postState}.
        • +- * +- *
        • To increase efficiency, the StateEdit now removes +- * any entries from {@link #preState} and {@link #postState} that have +- * the same key, and whose values are equal. Equality is determined +- * by invoking the equals method inherited from +- * {@link java.lang.Object}.
      6. ++ * method of the StateEdit. The end() method ++ * does two things. + * ++ *
          ++ *
        • The edited object receives a second request for storing ++ * its state. This time, it will use a different hash table, {@link ++ * #postState}.
        • ++ *
        • To increase efficiency, the StateEdit now removes ++ * any entries from {@link #preState} and {@link #postState} that have ++ * the same key, and whose values are equal. Equality is determined ++ * by invoking the equals method inherited from ++ * {@link java.lang.Object}.
        • ++ *
        + *
      7. When the user later chooses to undo the StateEdit, + * the edited object is asked to {@linkplain StateEditable#restoreState + * restore its state} from the {@link #preState} table. Similarly, + * when the user chooses to redo the StateEdit, + * the edited object gets asked to restore its state from the {@link +- * #postState}.
      ++ * #postState}. ++ *
    + * + * @author Andrew Selkirk (aselkirk@sympatico.ca) + * @author Sascha Brawer (brawer@dandelis.ch) +Index: javax/swing/undo/UndoManager.java +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/javax/swing/undo/UndoManager.java,v +retrieving revision 1.2 +diff -u -r1.2 UndoManager.java +--- javax/swing/undo/UndoManager.java 11 Jun 2003 13:20:41 -0000 1.2 ++++ javax/swing/undo/UndoManager.java 6 Sep 2004 16:36:11 -0000 +@@ -1,5 +1,5 @@ + /* AbstractTableModel.java -- +- Copyright (C) 2002 Free Software Foundation, Inc. ++ Copyright (C) 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -38,223 +38,588 @@ + + package javax.swing.undo; + ++import javax.swing.UIManager; + import javax.swing.event.UndoableEditEvent; + import javax.swing.event.UndoableEditListener; + ++ + /** +- * UndoManager +- * @author Andrew Selkirk ++ * A manager for providing an application’s undo/redo ++ * functionality. ++ * ++ *

    Tyipcally, an application will create only one single instance ++ * of UndoManager. When the user performs an undoable action, for ++ * instance changing the color of an object from green to blue, the ++ * application registers an {@link UndoableEdit} object with the ++ * UndoManager. To implement the “undo” and ++ * “redo” menu commands, the application invokes the ++ * UndoManager’s {@link #undo} and {@link #redo} methods. The ++ * human-readable text of these menu commands is provided by {@link ++ * #getUndoPresentationName} and {@link #getRedoPresentationName}, ++ * respectively. To determine whether the menu item should be ++ * selectable or greyed out, use {@link #canUndo} and {@link ++ * #canRedo}. ++ * ++ *

    The UndoManager will only keep a specified number of editing ++ * actions, the limit. The value of this parameter can be ++ * retrieved by calling {@link #getLimit} and set with {@link ++ * #setLimit}. If more UndoableEdits are added to the UndoManager, ++ * the oldest actions will be discarded. ++ * ++ *

    Some applications do not provide separate menu commands for ++ * “undo” and “redo.” Instead, they ++ * have just a single command whose text switches between the two. ++ * Such applications would use an UndoManager with a limit ++ * of 1. The text of this combined menu item is available via ++ * {@link #getUndoOrRedoPresentationName}, and it is implemented ++ * by calling {@link #undoOrRedo}. ++ * ++ *

    Thread Safety: In constrast to the other classes of the ++ * javax.swing.undo package, the public methods of an ++ * UndoManager are safe to call from concurrent threads. ++ * The caller does not need to perform external synchronization, and ++ * {@link javax.swing.event.UndoableEvent} sources do not need to ++ * broadcast their events from inside the Swing worker thread. ++ * ++ * @author Sascha Brawer + */ +-public class UndoManager extends CompoundEdit implements UndoableEditListener { +- +- //------------------------------------------------------------- +- // Variables -------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * indexOfNextAdd +- */ +- int indexOfNextAdd; +- +- /** +- * limit +- */ +- int limit; +- +- +- //------------------------------------------------------------- +- // Initialization --------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * Constructor UndoManager +- */ +- public UndoManager() { +- // TODO +- } // UndoManager() +- +- +- //------------------------------------------------------------- +- // Methods ---------------------------------------------------- +- //------------------------------------------------------------- +- +- /** +- * toString +- * @returns String +- */ +- public String toString() { +- return null; // TODO +- } // toString() +- +- /** +- * end +- */ +- public synchronized void end() { +- // TODO +- } // end() +- +- /** +- * getLimit +- * @returns int +- */ +- public synchronized int getLimit() { +- return 0; // TODO +- } // getLimit() +- +- /** +- * discardAllEdits +- */ +- public synchronized void discardAllEdits() { +- // TODO +- } // discardAllEdits() +- +- /** +- * trimForLimit +- */ +- protected void trimForLimit() { +- // TODO +- } // trimForLimit() +- +- /** +- * trimEdits +- * @param value0 TODO +- * @param value1 TODO +- */ +- protected void trimEdits(int value0, int value1) { +- // TODO +- } // trimEdits() +- +- /** +- * setLimit +- * @param value0 TODO +- */ +- public synchronized void setLimit(int value0) { +- // TODO +- } // setLimit() +- +- /** +- * editToBeUndone +- * @returns UndoableEdit +- */ +- protected UndoableEdit editToBeUndone() { +- return null; // TODO +- } // editToBeUndone() +- +- /** +- * editToBeRedone +- * @returns UndoableEdit +- */ +- protected UndoableEdit editToBeRedone() { +- return null; // TODO +- } // editToBeRedone() +- +- /** +- * undoTo +- * @param value0 TODO +- * @exception CannotUndoException TODO +- */ +- protected void undoTo(UndoableEdit value0) throws CannotUndoException { +- // TODO +- } // undoTo() +- +- /** +- * redoTo +- * @param value0 TODO +- * @exception CannotRedoException TODO +- */ +- protected void redoTo(UndoableEdit value0) throws CannotRedoException { +- // TODO +- } // redoTo() +- +- /** +- * undoOrRedo +- * @exception CannotRedoException TODO +- * @exception CannotUndoException TODO +- */ +- public synchronized void undoOrRedo() throws CannotRedoException, CannotUndoException { +- // TODO +- } // undoOrRedo() +- +- /** +- * canUndoOrRedo +- * @returns boolean +- */ +- public synchronized boolean canUndoOrRedo() { +- return false; // TODO +- } // canUndoOrRedo() +- +- /** +- * undo +- * @exception CannotUndoException TODO +- */ +- public synchronized void undo() throws CannotUndoException { +- // TODO +- } // undo() +- +- /** +- * canUndo +- * @returns boolean +- */ +- public synchronized boolean canUndo() { +- return false; // TODO +- } // canUndo() +- +- /** +- * redo +- * @exception CannotRedoException TODO +- */ +- public synchronized void redo() throws CannotRedoException { +- // TODO +- } // redo() +- +- /** +- * canRedo +- * @returns boolean +- */ +- public synchronized boolean canRedo() { +- return false; // TODO +- } // canRedo() +- +- /** +- * addEdit +- * @param value0 TODO +- * @returns boolean +- */ +- public synchronized boolean addEdit(UndoableEdit value0) { +- return false; // TODO +- } // addEdit() +- +- /** +- * getUndoOrRedoPresentationName +- * @returns String +- */ +- public synchronized String getUndoOrRedoPresentationName() { +- return null; // TODO +- } // getUndoOrRedoPresentationName() +- +- /** +- * getUndoPresentationName +- * @returns String +- */ +- public synchronized String getUndoPresentationName() { +- return null; // TODO +- } // getUndoPresentationName() +- +- /** +- * getRedoPresentationName +- * @returns String +- */ +- public synchronized String getRedoPresentationName() { +- return null; // TODO +- } // getRedoPresentationName() +- +- /** +- * undoableEditHappened +- * @param value0 TODO +- */ +- public void undoableEditHappened(UndoableEditEvent value0) { +- // TODO +- } // undoableEditHappened() +- +- +-} // UndoManager ++public class UndoManager ++ extends CompoundEdit ++ implements UndoableEditListener ++{ ++ /** ++ * The unique ID for serializing instances of this class. Determined ++ * using the serialver tool of Sun JDK 1.4.1_01 on ++ * GNU/Linux. ++ */ ++ static final long serialVersionUID = -2077529998244066750L; ++ ++ ++ /** ++ * An index into the inherited {@link #edits} Vector that indicates ++ * at which position newly added editing actions would get inserted. ++ * ++ *

    Normally, the value of indexOfNextAdd equals ++ * the number of UndoableEdits stored by this UndoManager, i.e. ++ * edits.size(). For each call to {@link #undo}, ++ * indexOfNextAdd is decremented by one. For each ++ * call to {@link #redo}, it is incremented again. ++ */ ++ int indexOfNextAdd; ++ ++ ++ /** ++ * The maximum number of UndoableEdits stored by this UndoManager. ++ */ ++ int limit; ++ ++ ++ /** ++ * Constructs an UndoManager. ++ * ++ *

    The limit of the freshly constructed UndoManager ++ * is 100. ++ */ ++ public UndoManager() ++ { ++ limit = 100; ++ } ++ ++ ++ /** ++ * Returns a string representation for this UndoManager. This may be ++ * useful for debugging purposes. For the text of menu items, please ++ * refer to {@link #getUndoPresentationName}, {@link ++ * #getRedoPresentationName}, and {@link ++ * #getUndoOrRedoPresentationName}. ++ */ ++ public String toString() ++ { ++ return super.toString() ++ + " limit: " + limit ++ + " indexOfNextAdd: " + indexOfNextAdd; ++ } ++ ++ ++ /** ++ * Puts this UndoManager into a state where it acts as a normal ++ * {@link CompoundEdit}. It is unlikely that an application would ++ * want to do this. ++ */ ++ public synchronized void end() ++ { ++ super.end(); ++ trimEdits(indexOfNextAdd, edits.size() - 1); ++ } ++ ++ ++ /** ++ * Returns how many edits this UndoManager can maximally hold. ++ * ++ * @see #setLimit ++ */ ++ public synchronized int getLimit() ++ { ++ return limit; ++ } ++ ++ ++ /** ++ * Changes the maximal number of edits that this UndoManager can ++ * process. If there are currently more edits than the new limit ++ * allows, they will receive a {@link UndoableEdit#die() die} ++ * message in reverse order of addition. ++ * ++ * @param limit the new limit. ++ * ++ * @throws IllegalStateException if {@link #end()} has already been ++ * called on this UndoManager. ++ */ ++ public synchronized void setLimit(int limit) ++ { ++ if (!isInProgress()) ++ throw new IllegalStateException(); ++ ++ this.limit = limit; ++ trimForLimit(); ++ } ++ ++ ++ /** ++ * Discards all editing actions that are currently registered with ++ * this UndoManager. Each {@link UndoableEdit} will receive a {@link ++ * UndoableEdit#die() die message}. ++ */ ++ public synchronized void discardAllEdits() ++ { ++ int size; ++ ++ size = edits.size(); ++ for (int i = size - 1; i >= 0; i--) ++ ((UndoableEdit) edits.get(i)).die(); ++ indexOfNextAdd = 0; ++ edits.clear(); ++ } ++ ++ ++ /** ++ * Called by various internal methods in order to enforce ++ * the limit value. ++ */ ++ protected void trimForLimit() ++ { ++ int high, s; ++ ++ s = edits.size(); ++ ++ /* The Sun J2SE1.4.1_01 implementation can be observed to do ++ * nothing (instead of throwing an exception) with a negative or ++ * zero limit. It may be debatable whether this is the best ++ * behavior, but we replicate it for sake of compatibility. ++ */ ++ if (limit <= 0 || s <= limit) ++ return; ++ ++ high = Math.min(indexOfNextAdd + limit/2 - 1, s - 1); ++ trimEdits(high + 1, s - 1); ++ trimEdits(0, high - limit); ++ } ++ ++ ++ /** ++ * Discards a range of edits. All edits in the range [from ++ * .. to] will receive a {@linkplain UndoableEdit#die() die ++ * message} before being removed from the edits array. If ++ * from is greater than to, nothing ++ * happens. ++ * ++ * @param from the lower bound of the range of edits to be ++ * discarded. ++ * ++ * @param to the upper bound of the range of edits to be discarded. ++ */ ++ protected void trimEdits(int from, int to) ++ { ++ if (from > to) ++ return; ++ ++ for (int i = to; i >= from; i--) ++ ((UndoableEdit) edits.get(i)).die(); ++ ++ // Remove the range [from .. to] from edits. If from == to, which ++ // is likely to be a very common case, we can do better than ++ // creating a sub-list and clearing it. ++ if (to == from) ++ edits.remove(from); ++ else ++ edits.subList(from, to + 1).clear(); ++ ++ if (indexOfNextAdd > to) ++ indexOfNextAdd = indexOfNextAdd - to + from - 1; ++ else if (indexOfNextAdd >= from) ++ indexOfNextAdd = from; ++ } ++ ++ ++ /** ++ * Determines which significant edit would be undone if {@link ++ * #undo()} was called. ++ * ++ * @returns the significant edit that would be undone, or ++ * null if no significant edit would be affected by ++ * calling {@link #undo()}. ++ */ ++ protected UndoableEdit editToBeUndone() ++ { ++ UndoableEdit result; ++ ++ for (int i = indexOfNextAdd - 1; i >= 0; i--) ++ { ++ result = (UndoableEdit) edits.get(i); ++ if (result.isSignificant()) ++ return result; ++ } ++ ++ return null; ++ } ++ ++ ++ /** ++ * Determines which significant edit would be redone if {@link ++ * #redo()} was called. ++ * ++ * @returns the significant edit that would be redone, or ++ * null if no significant edit would be affected by ++ * calling {@link #redo()}. ++ */ ++ protected UndoableEdit editToBeRedone() ++ { ++ UndoableEdit result; ++ ++ for (int i = indexOfNextAdd; i < edits.size(); i++) ++ { ++ result = (UndoableEdit) edits.get(i); ++ if (result.isSignificant()) ++ return result; ++ } ++ ++ return null; ++ } ++ ++ ++ /** ++ * Undoes all editing actions in reverse order of addition, ++ * up to the specified action, ++ * ++ * @param edit the last editing action to be undone. ++ */ ++ protected void undoTo(UndoableEdit edit) ++ throws CannotUndoException ++ { ++ UndoableEdit cur; ++ ++ if (!edits.contains(edit)) ++ throw new CannotUndoException(); ++ ++ while (true) ++ { ++ indexOfNextAdd -= 1; ++ cur = (UndoableEdit) edits.get(indexOfNextAdd); ++ cur.undo(); ++ if (cur == edit) ++ return; ++ } ++ } ++ ++ ++ /** ++ * Redoes all editing actions in the same order as they were ++ * added to this UndoManager, up to the specified action. ++ * ++ * @param edit the last editing action to be redone. ++ */ ++ protected void redoTo(UndoableEdit edit) ++ throws CannotRedoException ++ { ++ UndoableEdit cur; ++ ++ if (!edits.contains(edit)) ++ throw new CannotRedoException(); ++ ++ while (true) ++ { ++ cur = (UndoableEdit) edits.get(indexOfNextAdd); ++ indexOfNextAdd += 1; ++ cur.redo(); ++ if (cur == edit) ++ return; ++ } ++ } ++ ++ ++ /** ++ * Undoes or redoes the last action. If the last action has already ++ * been undone, it will be re-done, and vice versa. ++ * ++ *

    This is useful for applications that do not present a separate ++ * undo and redo facility, but just have a single menu item for ++ * undoing and redoing the very last action. Such applications will ++ * use an UndoManager whose limit is 1. ++ */ ++ public synchronized void undoOrRedo() ++ throws CannotRedoException, CannotUndoException ++ { ++ if (indexOfNextAdd == edits.size()) ++ undo(); ++ else ++ redo(); ++ } ++ ++ ++ /** ++ * Determines whether it would be possible to either undo or redo ++ * this editing action. ++ * ++ *

    This is useful for applications that do not present a separate ++ * undo and redo facility, but just have a single menu item for ++ * undoing and redoing the very last action. Such applications will ++ * use an UndoManager whose limit is 1. ++ * ++ * @return true to indicate that this action can be ++ * undone or redone; false if neither is possible at ++ * the current time. ++ */ ++ public synchronized boolean canUndoOrRedo() ++ { ++ return indexOfNextAdd == edits.size() ? canUndo() : canRedo(); ++ } ++ ++ ++ /** ++ * Undoes one significant edit action. If insignificant actions have ++ * been posted after the last signficant action, the insignificant ++ * ones will be undone first. ++ * ++ *

    However, if {@link #end()} has been called on this ++ * UndoManager, it will behave like a normal {@link ++ * CompoundEdit}. In this case, all actions will be undone in ++ * reverse order of addition. Typical applications will never call ++ * {@link #end()} on their UndoManager. ++ * ++ * @throws CannotUndoException if no action can be undone. ++ * ++ * @see #canUndo() ++ * @see #redo() ++ * @see #undoOrRedo() ++ */ ++ public synchronized void undo() ++ throws CannotUndoException ++ { ++ if (!isInProgress()) ++ { ++ super.undo(); ++ return; ++ } ++ ++ UndoableEdit edit = editToBeUndone(); ++ if (edit == null) ++ throw new CannotUndoException(); ++ ++ undoTo(edit); ++ } ++ ++ ++ /** ++ * Determines whether it would be possible to undo this editing ++ * action. ++ * ++ * @return true to indicate that this action can be ++ * undone; false otherwise. ++ * ++ * @see #undo() ++ * @see #canRedo() ++ * @see #canUndoOrRedo() ++ */ ++ public synchronized boolean canUndo() ++ { ++ UndoableEdit edit; ++ ++ if (!isInProgress()) ++ return super.canUndo(); ++ ++ edit = editToBeUndone(); ++ return edit != null && edit.canUndo(); ++ } ++ ++ ++ ++ /** ++ * Redoes one significant edit action. If insignificant actions have ++ * been posted in between, the insignificant ones will be redone ++ * first. ++ * ++ *

    However, if {@link #end()} has been called on this ++ * UndoManager, it will behave like a normal {@link ++ * CompoundEdit}. In this case, all actions will be redone ++ * in order of addition. Typical applications will never call {@link ++ * #end()} on their UndoManager. ++ * ++ * @throws CannotRedoException if no action can be redone. ++ * ++ * @see #canRedo() ++ * @see #redo() ++ * @see #undoOrRedo() ++ */ ++ public synchronized void redo() ++ throws CannotRedoException ++ { ++ if (!isInProgress()) ++ { ++ super.redo(); ++ return; ++ } ++ ++ UndoableEdit edit = editToBeRedone(); ++ if (edit == null) ++ throw new CannotRedoException(); ++ ++ redoTo(edit); ++ } ++ ++ ++ /** ++ * Determines whether it would be possible to redo this editing ++ * action. ++ * ++ * @return true to indicate that this action can be ++ * redone; false otherwise. ++ * ++ * @see #redo() ++ * @see #canUndo() ++ * @see #canUndoOrRedo() ++ */ ++ public synchronized boolean canRedo() ++ { ++ UndoableEdit edit; ++ ++ if (!isInProgress()) ++ return super.canRedo(); ++ ++ edit = editToBeRedone(); ++ return edit != null && edit.canRedo(); ++ } ++ ++ ++ /** ++ * Registers an undoable editing action with this UndoManager. If ++ * the capacity limit is reached, the oldest action ++ * will be discarded (and receives a {@linkplain UndoableEdit#die() ++ * die message}. Equally, any actions that were undone (but not re-done) ++ * will be discarded, too. ++ * ++ * @param edit the editing action that is added to this UndoManager. ++ * ++ * @return true if edit could be ++ * incorporated; false if edit has not ++ * been incorporated because {@link #end()} has already been called ++ * on this UndoManager. ++ */ ++ public synchronized boolean addEdit(UndoableEdit edit) ++ { ++ boolean result; ++ ++ // Discard any edits starting at indexOfNextAdd. ++ trimEdits(indexOfNextAdd, edits.size() - 1); ++ ++ result = super.addEdit(edit); ++ indexOfNextAdd = edits.size(); ++ trimForLimit(); ++ return result; ++ } ++ ++ ++ /** ++ * Calculates a localized text for presenting the undo or redo ++ * action to the user, for example in the form of a menu command. ++ * ++ *

    This is useful for applications that do not present a separate ++ * undo and redo facility, but just have a single menu item for ++ * undoing and redoing the very last action. Such applications will ++ * use an UndoManager whose limit is 1. ++ * ++ * @return the redo presentation name if the last action has already ++ * been undone, or the undo presentation name otherwise. ++ * ++ * @see #getUndoPresentationName() ++ * @see #getRedoPresentationName() ++ */ ++ public synchronized String getUndoOrRedoPresentationName() ++ { ++ if (indexOfNextAdd == edits.size()) ++ return getUndoPresentationName(); ++ else ++ return getRedoPresentationName(); ++ } ++ ++ ++ /** ++ * Calculates a localized text for presenting the undo action ++ * to the user, for example in the form of a menu command. ++ */ ++ public synchronized String getUndoPresentationName() ++ { ++ UndoableEdit edit; ++ ++ if (!isInProgress()) ++ return super.getUndoPresentationName(); ++ ++ edit = editToBeUndone(); ++ if (edit == null) ++ return UIManager.getString("AbstractUndoableEdit.undoText"); ++ else ++ return edit.getUndoPresentationName(); ++ } ++ ++ ++ /** ++ * Calculates a localized text for presenting the redo action ++ * to the user, for example in the form of a menu command. ++ */ ++ public synchronized String getRedoPresentationName() ++ { ++ UndoableEdit edit; ++ ++ if (!isInProgress()) ++ return super.getRedoPresentationName(); ++ ++ edit = editToBeRedone(); ++ if (edit == null) ++ return UIManager.getString("AbstractUndoableEdit.redoText"); ++ else ++ return edit.getRedoPresentationName(); ++ } ++ ++ ++ /** ++ * Registers the edit action of an {@link UndoableEditEvent} ++ * with this UndoManager. ++ * ++ *

    Thread Safety: This method may safely be invoked from ++ * concurrent threads. The caller does not need to perform external ++ * synchronization. This means that {@link ++ * javax.swing.event.UndoableEvent} sources do not need to broadcast ++ * their events from inside the Swing worker thread. ++ * ++ * @param event the event whose edit will be ++ * passed to {@link #addEdit}. ++ * ++ * @see UndoableEditEvent#getEdit() ++ * @see #addEdit ++ */ ++ public void undoableEditHappened(UndoableEditEvent event) ++ { ++ // Note that this method does not need to be synchronized, ++ // because addEdit will obtain and release the mutex. ++ addEdit(event.getEdit()); ++ } ++} +Index: jni/classpath/jcl.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/classpath/jcl.c,v +retrieving revision 1.2 +diff -u -r1.2 jcl.c +--- jni/classpath/jcl.c 8 Oct 2003 15:49:32 -0000 1.2 ++++ jni/classpath/jcl.c 6 Sep 2004 16:36:11 -0000 +@@ -1,5 +1,5 @@ + /* jcl.c +- Copyright (C) 1998 Free Software Foundation, Inc. ++ Copyright (C) 1998, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -37,13 +37,17 @@ + + #include + #include +-#include ++#include + + #ifndef __GNUC__ + #define __attribute__(x) /* nothing */ + #endif + +-static char errstr[4098]; // this way the memory is pre-allocated, so that we do not have to worry if we are out of memory. ++/* ++ * This way the memory is pre-allocated, so that we do not have to worry ++ * if we are out of memory. ++ */ ++static char errstr[4098]; + + JNIEXPORT void JNICALL JCL_ThrowException(JNIEnv * env, char * className, char * errMsg) { + jclass excClass; +Index: jni/classpath/jnilink.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/classpath/jnilink.c,v +retrieving revision 1.1 +diff -u -r1.1 jnilink.c +--- jni/classpath/jnilink.c 31 Jan 2003 17:54:14 -0000 1.1 ++++ jni/classpath/jnilink.c 6 Sep 2004 16:36:11 -0000 +@@ -1,5 +1,5 @@ + /* JNILINK 1.1: JNI version. +- Copyright (C) 1998 Free Software Foundation, Inc. ++ Copyright (C) 1998, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -40,7 +40,7 @@ + #include + #include + +-#include ++#include + + #define GETCLASS(c) *(jclass*)(c) + +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c +=================================================================== +RCS file: jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c +diff -N jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c 6 Sep 2004 16:36:11 -0000 +@@ -0,0 +1,68 @@ ++/* Native implementation of functions in GThreadNativeMethodRunner ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++ ++#include "gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.h" ++#include "gthread-jni.h" ++ ++/* ++ * Class: GThreadNativeMethodRunner ++ * Method: nativeRun ++ * Signature: (J)V ++ * ++ * Purpose: Run the C function whose function pointer is ++ * ++ */ ++JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GThreadNativeMethodRunner_nativeRun(JNIEnv *gdk_env, jobject lcl_obj, ++ jlong funcAddr, jlong funcArg) ++{ ++ /* Convert the function's address back into a pointer to a C function. */ ++ void *(*funcPtr)(void *) = (void *(*)(void *)) funcAddr; ++ ++ /* We do not need to worry about the return value from funcPtr(); it's ++ just thrown away. That is part of the g_threads spec, so no reason ++ to worry about returning it. */ ++ (void) funcPtr((void *) funcArg); ++ /* Fall off the end and terminate the thread of control. */ ++} ++ ++/* Local Variables: */ ++/* c-file-style: "gnu" */ ++/* End: */ ++ ++ +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeer.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeer.c,v +retrieving revision 1.2 +diff -u -r1.2 gnu_java_awt_peer_gtk_GdkClasspathFontPeer.c +--- jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeer.c 20 Nov 2003 22:44:01 -0000 1.2 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeer.c 6 Sep 2004 16:36:11 -0000 +@@ -112,9 +112,10 @@ + struct peerfont *pfont = NULL; + PangoFontMap *map = NULL; + char const *family_name = NULL; ++ enum java_awt_font_style style; + + gdk_threads_enter (); +- enum java_awt_font_style style = (enum java_awt_font_style) style_int; ++ style = (enum java_awt_font_style) style_int; + + g_assert (self != NULL); + pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, self); +@@ -135,7 +136,7 @@ + pango_font_description_set_family (pfont->desc, family_name); + (*env)->ReleaseStringUTFChars(env, family_name_str, family_name); + +- pango_font_description_set_size (pfont->desc, size * PANGO_SCALE); ++ pango_font_description_set_size (pfont->desc, size * dpi_conversion_factor); + + if (style & java_awt_font_BOLD) + pango_font_description_set_weight (pfont->desc, PANGO_WEIGHT_BOLD); +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeerMetrics.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeerMetrics.c,v +retrieving revision 1.2 +diff -u -r1.2 gnu_java_awt_peer_gtk_GdkClasspathFontPeerMetrics.c +--- jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeerMetrics.c 31 Dec 2003 08:58:31 -0000 1.2 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeerMetrics.c 6 Sep 2004 16:36:11 -0000 +@@ -53,6 +53,9 @@ + jintArray array; + jint *metrics; + struct peerfont *pf = NULL; ++ FT_Matrix mat; ++ double pointsize; ++ FT_Face face; + + pf = NSA_GET_FONT_PTR(env, font); + g_assert (pf != NULL); +@@ -62,14 +65,21 @@ + + gdk_threads_enter (); + +-#define DOUBLE_TO_26_6(d) ((FT_F26Dot6)((d) * 63.0)) +-#define DOUBLE_FROM_26_6(t) (((double)((t) >> 6)) \ +- + ((double)((t) & 0x3F) / 63.0)) ++#define DOUBLE_TO_26_6(d) ((FT_F26Dot6)((d) * 64.0)) ++#define DOUBLE_FROM_26_6(t) ((double)(t) / 64.0) ++#define DOUBLE_TO_16_16(d) ((FT_Fixed)((d) * 65536.0)) ++#define DOUBLE_FROM_16_16(t) ((double)(t) / 65536.0) + +- double pointsize = pango_font_description_get_size (pf->desc); ++ pointsize = pango_font_description_get_size (pf->desc); + pointsize /= (double) PANGO_SCALE; + +- FT_Face face = pango_ft2_font_get_face (pf->font); ++ mat.xx = DOUBLE_TO_16_16(1); ++ mat.xy = DOUBLE_TO_16_16(0); ++ mat.yx = DOUBLE_TO_16_16(0); ++ mat.yy = DOUBLE_TO_16_16(1); ++ ++ face = pango_ft2_font_get_face (pf->font); ++ FT_Set_Transform(face, &mat, NULL); + FT_Set_Char_Size( face, + DOUBLE_TO_26_6 (pointsize), + DOUBLE_TO_26_6 (pointsize), +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c,v +retrieving revision 1.3 +diff -u -r1.3 gnu_java_awt_peer_gtk_GdkFontMetrics.c +--- jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c 2 Dec 2003 21:00:05 -0000 1.3 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c 6 Sep 2004 16:36:11 -0000 +@@ -47,7 +47,8 @@ + #define NUM_METRICS 5 + + JNIEXPORT jintArray JNICALL Java_gnu_java_awt_peer_gtk_GdkFontMetrics_initState +- (JNIEnv *env, jobject obj __attribute__((unused)), jstring fname, jint size) ++ (JNIEnv *env, jobject obj __attribute__((unused)), ++ jstring fname, jint style, jint size) + { + jintArray array; + jint *metrics; +@@ -64,21 +65,28 @@ + gdk_threads_enter (); + + font_desc = pango_font_description_from_string (font_name); +- pango_font_description_set_size (font_desc, size * PANGO_SCALE); ++ pango_font_description_set_size (font_desc, size * dpi_conversion_factor); ++ ++ if (style & AWT_STYLE_BOLD) ++ pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD); ++ ++ if (style & AWT_STYLE_ITALIC) ++ pango_font_description_set_style (font_desc, PANGO_STYLE_OBLIQUE); + + context = gdk_pango_context_get(); + pango_context_set_font_description (context, font_desc); + +- pango_metrics = pango_context_get_metrics (context, font_desc, NULL); ++ pango_metrics = pango_context_get_metrics (context, font_desc, ++ gtk_get_default_language ()); + + metrics[ASCENT] = +- pango_font_metrics_get_ascent (pango_metrics) / PANGO_SCALE; ++ PANGO_PIXELS (pango_font_metrics_get_ascent (pango_metrics)); + metrics[MAX_ASCENT] = metrics[ASCENT]; + metrics[DESCENT] = +- pango_font_metrics_get_descent (pango_metrics) / PANGO_SCALE; ++ PANGO_PIXELS (pango_font_metrics_get_descent (pango_metrics)); + metrics[MAX_DESCENT] = metrics[DESCENT]; + metrics[MAX_ADVANCE] = +- pango_font_metrics_get_approximate_char_width (pango_metrics) / PANGO_SCALE; ++ PANGO_PIXELS (pango_font_metrics_get_approximate_char_width (pango_metrics)); + + pango_font_metrics_unref (pango_metrics); + +@@ -94,7 +102,7 @@ + + JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_gtk_GdkFontMetrics_stringWidth + (JNIEnv *env, jobject obj __attribute__((unused)), +- jstring fname, jint size, jstring str) ++ jstring fname, jint style, jint size, jstring str) + { + PangoFontDescription *font_desc; + PangoContext *context; +@@ -109,7 +117,13 @@ + gdk_threads_enter (); + + font_desc = pango_font_description_from_string (font_name); +- pango_font_description_set_size (font_desc, size * PANGO_SCALE); ++ pango_font_description_set_size (font_desc, size * dpi_conversion_factor); ++ ++ if (style & AWT_STYLE_BOLD) ++ pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD); ++ ++ if (style & AWT_STYLE_ITALIC) ++ pango_font_description_set_style (font_desc, PANGO_STYLE_OBLIQUE); + + context = gdk_pango_context_get(); + pango_context_set_font_description (context, font_desc); +@@ -117,6 +131,7 @@ + layout = pango_layout_new (context); + + pango_layout_set_text (layout, cstr, -1); ++ + pango_layout_get_pixel_size (layout, &width, NULL); + + pango_font_description_free (font_desc); +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c,v +retrieving revision 1.2 +diff -u -r1.2 gnu_java_awt_peer_gtk_GdkGlyphVector.c +--- jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c 20 Nov 2003 22:44:01 -0000 1.2 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c 6 Sep 2004 16:36:11 -0000 +@@ -47,10 +47,11 @@ + double height; + } rect_t; + +-#define DOUBLE_TO_26_6(d) ((FT_F26Dot6)((d) * 63.0)) +-#define DOUBLE_FROM_26_6(t) (((double)((t) >> 6)) \ +- + ((double)((t) & 0x3F) / 63.0)) +- ++#define DOUBLE_TO_26_6(d) ((FT_F26Dot6)((d) * 64.0)) ++#define DOUBLE_FROM_26_6(t) ((double)(t) / 64.0) ++#define DOUBLE_TO_16_16(d) ((FT_Fixed)((d) * 65536.0)) ++#define DOUBLE_FROM_16_16(t) ((double)(t) / 65536.0) ++ + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGlyphVector_initStaticState + (JNIEnv *env, jclass clazz) + { +@@ -401,6 +402,21 @@ + return idx; + } + ++static void ++assume_pointsize_and_identity_transform(double pointsize, ++ FT_Face face) ++{ ++ FT_Matrix mat; ++ mat.xx = DOUBLE_TO_16_16(1); ++ mat.xy = DOUBLE_TO_16_16(0); ++ mat.yx = DOUBLE_TO_16_16(0); ++ mat.yy = DOUBLE_TO_16_16(1); ++ FT_Set_Transform(face, &mat, NULL); ++ FT_Set_Char_Size( face, ++ DOUBLE_TO_26_6 (pointsize), ++ DOUBLE_TO_26_6 (pointsize), ++ 0, 0); ++} + + JNIEXPORT jdoubleArray JNICALL Java_gnu_java_awt_peer_gtk_GdkGlyphVector_allInkExtents + (JNIEnv *env, jobject self) +@@ -432,10 +448,7 @@ + g_assert (gi->glyphs != NULL); + + face = pango_ft2_font_get_face (gi->item->analysis.font); +- FT_Set_Char_Size( face, +- DOUBLE_TO_26_6 (pointsize), +- DOUBLE_TO_26_6 (pointsize), +- 0, 0); ++ assume_pointsize_and_identity_transform (pointsize, face); + + for (j = 0; j < gi->glyphs->num_glyphs; ++j) + { +@@ -487,10 +500,7 @@ + g_assert (gi->glyphs != NULL); + + face = pango_ft2_font_get_face (gi->item->analysis.font); +- FT_Set_Char_Size( face, +- DOUBLE_TO_26_6 (pointsize), +- DOUBLE_TO_26_6 (pointsize), +- 0, 0); ++ assume_pointsize_and_identity_transform (pointsize, face); + + for (j = 0; j < gi->glyphs->num_glyphs; ++j) + { +@@ -541,11 +551,9 @@ + pointsize = pango_font_description_get_size (vec->desc); + pointsize /= (double) PANGO_SCALE; + face = pango_ft2_font_get_face (font); +- FT_Set_Char_Size( face, +- DOUBLE_TO_26_6 (pointsize), +- DOUBLE_TO_26_6 (pointsize), +- 0, 0); +- ++ ++ assume_pointsize_and_identity_transform (pointsize, face); ++ + FT_Load_Glyph (face, gi->glyph, FT_LOAD_DEFAULT); + + /* FIXME: this is probably not the correct set of metrics; +@@ -588,10 +596,8 @@ + pointsize = pango_font_description_get_size (vec->desc); + pointsize /= (double) PANGO_SCALE; + face = pango_ft2_font_get_face (font); +- FT_Set_Char_Size( face, +- DOUBLE_TO_26_6 (pointsize), +- DOUBLE_TO_26_6 (pointsize), +- 0, 0); ++ ++ assume_pointsize_and_identity_transform (pointsize, face); + + FT_Load_Glyph (face, gi->glyph, FT_LOAD_DEFAULT); + /* FIXME: this needs to change for vertical layouts */ +@@ -630,9 +636,12 @@ + + gdk_threads_leave (); + +- return ++ return 1; ++ /* FIXME: Pango doesn't seem to have decided how it will deal ++ with vertical text. for the time being we inherit this limitation. + ((dir == PANGO_DIRECTION_LTR) || + (dir == PANGO_DIRECTION_RTL)); ++ */ + } + + +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c,v +retrieving revision 1.4 +diff -u -r1.4 gnu_java_awt_peer_gtk_GdkGraphics.c +--- jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c 8 Oct 2003 23:38:45 -0000 1.4 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c 6 Sep 2004 16:36:12 -0000 +@@ -94,15 +94,13 @@ + + /* copy the native state of the peer (GtkWidget *) to the native state + of the graphics object */ +-JNIEXPORT jintArray JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_initState__Lgnu_java_awt_peer_gtk_GtkComponentPeer_2 ++JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_initState__Lgnu_java_awt_peer_gtk_GtkComponentPeer_2 + (JNIEnv *env, jobject obj, jobject peer) + { + struct graphics *g = (struct graphics *) malloc (sizeof (struct graphics)); + void *ptr; + GtkWidget *widget; + GdkColor color; +- jintArray array; +- jint *rgb; + + ptr = NSA_GET_PTR (env, peer); + g->x_offset = g->y_offset = 0; +@@ -133,16 +131,7 @@ + + gdk_threads_leave (); + +- array = (*env)->NewIntArray (env, 3); +- rgb = (*env)->GetIntArrayElements (env, array, NULL); +- rgb[0] = color.red >> 8; +- rgb[1] = color.green >> 8; +- rgb[2] = color.blue >> 8; +- (*env)->ReleaseIntArrayElements (env, array, rgb, 0); +- + NSA_SET_PTR (env, obj, g); +- +- return array; + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_dispose +@@ -188,7 +177,7 @@ + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawString + (JNIEnv *env, jobject obj, jstring str, jint x, jint y, +- jstring fname, jint size) ++ jstring fname, jint style, jint size) + { + struct graphics *g; + const char *cstr; +@@ -207,7 +196,14 @@ + gdk_threads_enter (); + + font_desc = pango_font_description_from_string (font_name); +- pango_font_description_set_size (font_desc, size * PANGO_SCALE); ++ ++ pango_font_description_set_size (font_desc, size * dpi_conversion_factor); ++ ++ if (style & AWT_STYLE_BOLD) ++ pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD); ++ ++ if (style & AWT_STYLE_ITALIC) ++ pango_font_description_set_style (font_desc, PANGO_STYLE_OBLIQUE); + + context = gdk_pango_context_get(); + pango_context_set_font_description (context, font_desc); +@@ -219,12 +215,15 @@ + + baseline_y = pango_layout_iter_get_baseline (iter); + +- gdk_draw_layout (g->drawable, g->gc, +- x + g->x_offset, y + g->y_offset - (baseline_y / PANGO_SCALE), layout); ++ gdk_draw_layout (g->drawable, g->gc, ++ x + g->x_offset, ++ y + g->y_offset - PANGO_PIXELS (baseline_y), ++ layout); + + pango_font_description_free (font_desc); + pango_layout_iter_free (iter); + ++ gdk_flush (); + gdk_threads_leave (); + + (*env)->ReleaseStringUTFChars (env, fname, font_name); +@@ -242,6 +241,7 @@ + gdk_draw_line (g->drawable, g->gc, + x + g->x_offset, y + g->y_offset, + x2 + g->x_offset, y2 + g->y_offset); ++ gdk_flush (); + gdk_threads_leave (); + } + +@@ -253,8 +253,10 @@ + g = (struct graphics *) NSA_GET_PTR (env, obj); + + gdk_threads_enter (); ++ + gdk_draw_rectangle (g->drawable, g->gc, TRUE, + x + g->x_offset, y + g->y_offset, width, height); ++ gdk_flush (); + gdk_threads_leave (); + } + +@@ -268,6 +270,7 @@ + gdk_threads_enter (); + gdk_draw_rectangle (g->drawable, g->gc, FALSE, + x + g->x_offset, y + g->y_offset, width, height); ++ gdk_flush (); + gdk_threads_leave (); + } + +@@ -286,6 +289,7 @@ + (GdkWindow *)g->drawable, + x + g->x_offset, y + g->y_offset, + width, height); ++ gdk_flush (); + gdk_threads_leave (); + } + +@@ -305,9 +309,114 @@ + (GdkWindow *)g2->drawable, + 0 + g2->x_offset, 0 + g2->y_offset, + width, height); ++ gdk_flush (); + gdk_threads_leave (); + } ++ ++static void flip_pixbuf (GdkPixbuf *pixbuf, ++ jboolean flip_x, ++ jboolean flip_y, ++ jint width, ++ jint height) ++{ ++ gint src_rs; ++ guchar *src_pix; ++ ++ src_rs = gdk_pixbuf_get_rowstride (pixbuf); ++ src_pix = gdk_pixbuf_get_pixels (pixbuf); ++ ++ if (flip_x) ++ { ++ gint i, channels; ++ guchar buf[4]; ++ ++ channels = gdk_pixbuf_get_has_alpha (pixbuf) ? 4 : 3; ++ ++ for (i = 0; i < height; i++) ++ { ++ guchar *left = src_pix + i * src_rs; ++ guchar *right = left + channels * (width - 1); ++ while (left < right) ++ { ++ g_memmove (buf, left, channels); ++ g_memmove (left, right, channels); ++ g_memmove (right, buf, channels); ++ left += channels; ++ right -= channels; ++ } ++ } ++ } ++ ++ if (flip_y) ++ { ++ guchar *top = src_pix; ++ guchar *bottom = top + (height - 1) * src_rs; ++ gpointer buf = g_malloc (src_rs); ++ ++ while (top < bottom) ++ { ++ g_memmove (buf, top, src_rs); ++ g_memmove (top, bottom, src_rs); ++ g_memmove (bottom, buf, src_rs); ++ top += src_rs; ++ bottom -= src_rs; ++ } ++ ++ g_free (buf); ++ } ++} + ++JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_copyAndScalePixmap ++ (JNIEnv *env, jobject obj, jobject offscreen, jboolean flip_x, jboolean flip_y, ++ jint src_x, jint src_y, jint src_width, jint src_height, ++ jint dest_x, jint dest_y, jint dest_width, jint dest_height) ++{ ++ struct graphics *g1, *g2; ++ GdkPixbuf *buf_src, *buf_dest; ++ ++ g1 = (struct graphics *) NSA_GET_PTR (env, obj); ++ g2 = (struct graphics *) NSA_GET_PTR (env, offscreen); ++ ++ gdk_threads_enter (); ++ ++ buf_src = gdk_pixbuf_get_from_drawable (NULL, ++ g2->drawable, ++ g2->cm, ++ src_x, ++ src_y, ++ 0, ++ 0, ++ src_width, ++ src_height); ++ ++ buf_dest = gdk_pixbuf_scale_simple (buf_src, ++ dest_width, ++ dest_height, ++ GDK_INTERP_BILINEAR); ++ ++ if (flip_x || flip_y) ++ { ++ flip_pixbuf (buf_dest, flip_x, flip_y, dest_width, dest_height); ++ } ++ ++ gdk_pixbuf_render_to_drawable (buf_dest, ++ g1->drawable, ++ g1->gc, ++ 0, ++ 0, ++ dest_x, ++ dest_y, ++ dest_width, ++ dest_height, ++ GDK_RGB_DITHER_NORMAL, ++ 0, ++ 0); ++ ++ g_object_unref (G_OBJECT (buf_src)); ++ g_object_unref (G_OBJECT (buf_dest)); ++ ++ gdk_threads_leave (); ++} + + + +@@ -316,12 +425,25 @@ + (JNIEnv *env, jobject obj, jint x, jint y, jint width, jint height) + { + struct graphics *g; ++ GdkGCValues saved; + + g = (struct graphics *) NSA_GET_PTR (env, obj); + + gdk_threads_enter (); +- gdk_window_clear_area ((GdkWindow *)g->drawable, +- x + g->x_offset, y + g->y_offset, width, height); ++ if (GDK_IS_WINDOW (g->drawable)) ++ { ++ gdk_window_clear_area ((GdkWindow *)g->drawable, ++ x + g->x_offset, y + g->y_offset, width, height); ++ } ++ else ++ { ++ gdk_gc_get_values (g->gc, &saved); ++ gdk_gc_set_foreground (g->gc, &(saved.background)); ++ gdk_draw_rectangle (g->drawable, g->gc, TRUE, ++ x + g->x_offset, y + g->y_offset, width, height); ++ gdk_gc_set_foreground (g->gc, &(saved.foreground)); ++ } ++ gdk_flush (); + gdk_threads_leave (); + } + +@@ -352,6 +474,7 @@ + gdk_threads_enter (); + gdk_color_alloc (g->cm, &color); + gdk_gc_set_foreground (g->gc, &color); ++ + gdk_threads_leave (); + } + +@@ -367,6 +490,7 @@ + gdk_draw_arc (g->drawable, g->gc, FALSE, + x + g->x_offset, y + g->y_offset, + width, height, angle1 << 6, angle2 << 6); ++ gdk_flush (); + gdk_threads_leave (); + } + +@@ -410,6 +534,7 @@ + + gdk_threads_enter (); + gdk_draw_lines (g->drawable, g->gc, points, npoints); ++ gdk_flush (); + gdk_threads_leave (); + + g_free (points); +@@ -433,6 +558,7 @@ + + gdk_threads_enter (); + gdk_draw_lines (g->drawable, g->gc, points, npoints); ++ gdk_flush (); + gdk_threads_leave (); + + g_free (points); +@@ -450,6 +576,7 @@ + g->x_offset, g->y_offset); + gdk_threads_enter (); + gdk_draw_polygon (g->drawable, g->gc, TRUE, points, npoints); ++ gdk_flush (); + gdk_threads_leave (); + + g_free (points); +@@ -467,6 +594,7 @@ + gdk_draw_arc (g->drawable, g->gc, TRUE, + x + g->x_offset, y + g->y_offset, + width, height, angle1 << 6, angle2 << 6); ++ gdk_flush (); + gdk_threads_leave (); + } + +@@ -481,6 +609,7 @@ + gdk_draw_arc (g->drawable, g->gc, FALSE, + x + g->x_offset, y + g->y_offset, + width, height, 0, 23040); ++ gdk_flush (); + gdk_threads_leave (); + } + +@@ -495,8 +624,9 @@ + gdk_draw_arc (g->drawable, g->gc, TRUE, + x + g->x_offset, y + g->y_offset, + width, height, 0, 23040); ++ gdk_flush (); + gdk_threads_leave (); +-} ++} + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_setClipRectangle + (JNIEnv *env, jobject obj, jint x, jint y, jint width, jint height) +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c,v +retrieving revision 1.5 +diff -u -r1.5 gnu_java_awt_peer_gtk_GdkGraphics2D.c +--- jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c 31 Dec 2003 08:58:31 -0000 1.5 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c 6 Sep 2004 16:36:12 -0000 +@@ -67,7 +67,9 @@ + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_initStaticState + (JNIEnv *env, jclass clazz) + { +- NSA_G2D_INIT (env, clazz); ++ gdk_threads_enter(); ++ NSA_G2D_INIT (env, clazz); ++ gdk_threads_leave(); + } + + /* these public final constants are part of the java2d public API, so we +@@ -114,6 +116,41 @@ + java_awt_geom_path_iterator_WIND_NON_ZERO = 1 + }; + ++enum java_awt_rendering_hints_filter ++ { ++ java_awt_rendering_hints_VALUE_INTERPOLATION_NEAREST_NEIGHBOR = 0, ++ java_awt_rendering_hints_VALUE_INTERPOLATION_BILINEAR = 1, ++ java_awt_rendering_hints_VALUE_ALPHA_INTERPOLATION_SPEED = 2, ++ java_awt_rendering_hints_VALUE_ALPHA_INTERPOLATION_QUALITY = 3, ++ java_awt_rendering_hints_VALUE_ALPHA_INTERPOLATION_DEFAULT = 4 ++ ++ }; ++ ++static int ++peer_is_disposed(JNIEnv *env, jobject obj) ++{ ++ static jfieldID fid = NULL; ++ jclass cls; ++ jobject peer; ++ ++ return 0; ++ ++ if (fid == NULL) ++ { ++ cls = (*env)->GetObjectClass(env, obj); ++ fid = (*env)->GetFieldID(env, cls, "component", ++ "Lgnu/java/awt/peer/gtk/GtkComponentPeer;"); ++ } ++ g_assert(fid != NULL); ++ peer = (*env)->GetObjectField(env, obj, fid); ++ if (peer == NULL || NSA_GET_PTR (env, peer) != NULL) ++ return 0; ++ else ++ { ++ return 1; ++ } ++} ++ + + static void + grab_current_drawable (GtkWidget *widget, GdkDrawable **draw, GdkWindow **win) +@@ -136,7 +173,7 @@ + } + + *draw = *win; +- gdk_window_get_internal_paint_info (*win, draw, 0, 0); ++ gdk_window_get_internal_paint_info (*win, draw, 0, 0); + g_object_ref (*draw); + } + +@@ -211,7 +248,7 @@ + static void + begin_drawing_operation (struct graphics2d * gr) + { +- gdk_threads_enter (); ++ g_assert(cairo_status (gr->cr) == CAIRO_STATUS_SUCCESS); + if (gr->drawbuf) + { + +@@ -239,6 +276,7 @@ + static void + end_drawing_operation (struct graphics2d * gr) + { ++ g_assert(cairo_status (gr->cr) == CAIRO_STATUS_SUCCESS); + if (gr->drawbuf) + { + gint drawable_width, drawable_height; +@@ -259,7 +297,6 @@ + if (gr->debug) printf ("copied (%d, %d) pixels from pixbuf to GDK drawable\n", + width, height); + } +- gdk_threads_leave (); + } + + +@@ -279,7 +316,7 @@ + mat = cairo_matrix_create (); + g_assert (mat != NULL); + cairo_matrix_set_affine (mat, a, b, c, d, tx, ty); +- cairo_surface_set_matrix (gr->pattern, mat); ++ cairo_pattern_set_matrix (gr->pattern, mat); + cairo_matrix_destroy (mat); + } + +@@ -294,6 +331,7 @@ + { + struct graphics2d *g = NULL, *g_old = NULL; + ++ gdk_threads_enter(); + g = (struct graphics2d *) malloc (sizeof (struct graphics2d)); + g_assert (g != NULL); + memset (g, 0, sizeof(struct graphics2d)); +@@ -306,7 +344,6 @@ + g->drawable = g_old->drawable; + g->debug = g_old->debug; + +- gdk_threads_enter (); + g_object_ref (g->drawable); + + g->cr = cairo_create(); +@@ -319,9 +356,8 @@ + + cairo_surface_set_filter (g->surface, CAIRO_FILTER_FAST); + +- gdk_threads_leave (); +- + NSA_SET_G2D_PTR (env, obj, g); ++ gdk_threads_leave(); + } + + +@@ -329,9 +365,8 @@ + (JNIEnv *env, jobject obj, jint width, jint height) + { + struct graphics2d *gr; +- +- gdk_threads_enter (); + ++ gdk_threads_enter(); + gr = (struct graphics2d *) malloc (sizeof (struct graphics2d)); + g_assert (gr != NULL); + memset (gr, 0, sizeof(struct graphics2d)); +@@ -340,7 +375,7 @@ + + if (gr->debug) printf ("constructing offscreen drawable of size (%d,%d)\n", + width, height); +- ++ + gr->drawable = (GdkDrawable *) gdk_pixmap_new (NULL, width, height, + gdk_rgb_get_visual ()->depth); + g_assert (gr->drawable != NULL); +@@ -353,10 +388,10 @@ + else + init_graphics2d_as_pixbuf (gr); + +- gdk_threads_leave (); + if (gr->debug) printf ("constructed offscreen drawable of size (%d,%d)\n", + width, height); + NSA_SET_G2D_PTR (env, obj, gr); ++ gdk_threads_leave(); + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_gdkDrawDrawable +@@ -364,8 +399,11 @@ + { + struct graphics2d *src = NULL, *dst = NULL; + gint s_height, s_width, d_height, d_width, height, width; +- GdkGC *gc; ++ cairo_matrix_t *matrix; ++ cairo_operator_t tmp_op; + ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, self)) { gdk_threads_leave(); return; } + src = (struct graphics2d *)NSA_GET_G2D_PTR (env, other); + dst = (struct graphics2d *)NSA_GET_G2D_PTR (env, self); + g_assert (src != NULL); +@@ -373,64 +411,48 @@ + + if (src->debug) printf ("copying from offscreen drawable\n"); + +- gdk_threads_enter (); ++ begin_drawing_operation(dst); ++ ++ gdk_flush(); ++ + gdk_drawable_get_size (src->drawable, &s_width, &s_height); + gdk_drawable_get_size (dst->drawable, &d_width, &d_height); + width = min (s_width, d_width); +- height = min (s_width, d_height); +- +- gc = gdk_gc_new (dst->drawable); +- g_assert (gc != NULL); +- +- gdk_draw_drawable(dst->drawable, gc, src->drawable, +- 0, 0, x, y, width, height); +- gdk_flush (); +- +- g_object_unref (gc); ++ height = min (s_height, d_height); + +- if (src->debug) printf ("copied %d x %d pixels from offscreen drawable\n", width, height); +- gdk_threads_leave (); +-} ++ matrix = cairo_matrix_create (); ++ cairo_surface_get_matrix (src->surface, matrix); ++ cairo_matrix_translate (matrix, (double)-x, (double)-y); ++ cairo_surface_set_matrix (src->surface, matrix); + +-static jintArray +-current_colors_of_widget (GtkWidget *widget, JNIEnv *env) +-{ +- GdkColor color; +- jintArray array; +- jint *rgb; +- +- g_assert (widget != NULL); +- g_assert (env != NULL); ++ tmp_op = cairo_current_operator (dst->cr); ++ cairo_set_operator(dst->cr, CAIRO_OPERATOR_SRC); ++ cairo_show_surface (dst->cr, src->surface, width, height); ++ cairo_set_operator(dst->cr, tmp_op); + +- color = widget->style->fg[GTK_STATE_NORMAL]; +- array = (*env)->NewIntArray (env, 6); ++ cairo_matrix_translate (matrix, (double)x, (double)y); ++ cairo_surface_set_matrix (src->surface, matrix); ++ cairo_matrix_destroy (matrix); + +- rgb = (*env)->GetIntArrayElements (env, array, NULL); +- rgb[0] = color.red >> 8; +- rgb[1] = color.green >> 8; +- rgb[2] = color.blue >> 8; ++ gdk_flush(); + +- color = widget->style->bg[GTK_STATE_NORMAL]; +- rgb[3] = color.red >> 8; +- rgb[4] = color.green >> 8; +- rgb[5] = color.blue >> 8; ++ end_drawing_operation(dst); + +- (*env)->ReleaseIntArrayElements (env, array, rgb, 0); +- +- return array; ++ if (src->debug) printf ("copied %d x %d pixels from offscreen drawable\n", width, height); ++ gdk_threads_leave(); + } + +-JNIEXPORT jintArray JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_initState__Lgnu_java_awt_peer_gtk_GtkComponentPeer_2 ++JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_initState__Lgnu_java_awt_peer_gtk_GtkComponentPeer_2 + (JNIEnv *env, jobject obj, jobject peer) + { + struct graphics2d *gr = NULL; + GtkWidget *widget = NULL; + void *ptr = NULL; +- jintArray color; + ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } + ptr = NSA_GET_PTR (env, peer); + g_assert (ptr != NULL); +- gdk_threads_enter (); + + gr = (struct graphics2d *) malloc (sizeof (struct graphics2d)); + g_assert (gr != NULL); +@@ -452,11 +474,8 @@ + else + init_graphics2d_as_pixbuf (gr); + +- color = current_colors_of_widget (widget, env); +- +- gdk_threads_leave (); + NSA_SET_G2D_PTR (env, obj, gr); +- return color; ++ gdk_threads_leave(); + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_dispose +@@ -464,11 +483,13 @@ + { + struct graphics2d *gr = NULL; + ++ gdk_threads_enter(); + gr = (struct graphics2d *) NSA_DEL_G2D_PTR (env, obj); + if (gr == NULL) +- return; /* dispose has been called more than once */ +- +- gdk_threads_enter (); ++ { ++ gdk_threads_leave(); ++ return; /* dispose has been called more than once */ ++ } + + if (gr->surface) + cairo_surface_destroy (gr->surface); +@@ -481,15 +502,18 @@ + g_object_unref (gr->drawable); + + if (gr->pattern) +- cairo_surface_destroy (gr->pattern); ++ cairo_pattern_destroy (gr->pattern); ++ ++ if (gr->pattern_surface) ++ cairo_surface_destroy (gr->pattern_surface); + + if (gr->pattern_pixels) + free (gr->pattern_pixels); + + if (gr->debug) printf ("disposed of graphics2d\n"); +- free (gr); + +- gdk_threads_leave (); ++ free (gr); ++ gdk_threads_leave(); + } + + +@@ -507,6 +531,8 @@ + gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); + g_assert (gr != NULL); + ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } + if (gr->debug) printf ("setGradient (%f,%f) -> (%f,%f); (%d,%d,%d,%d) -> (%d,%d,%d,%d)\n", + x1, y1, + x2, y2, +@@ -578,38 +604,41 @@ + negate offsets. oh well. + + */ +- +- double a = (x2 - x1 == 0.) ? 0. : ((cyclic ? 3.0 : 2.0) / (x2 - x1)); +- double c = (y2 - y1 == 0.) ? 0. : (1. / (y2 - y1)); +- double dx = (x1 == 0.) ? 0. : 1. / x1; +- double dy = (y1 == 0.) ? 0. : 1. / y1; +- +- cairo_matrix_set_affine (mat, +- a, 0., +- c, 0., +- dx, dy); +- +- cairo_surface_set_matrix (surf, mat); +- cairo_matrix_destroy (mat); +- cairo_surface_set_filter (surf, CAIRO_FILTER_BILINEAR); ++ { ++ double a = (x2 - x1 == 0.) ? 0. : ((cyclic ? 3.0 : 2.0) / (x2 - x1)); ++ double c = (y2 - y1 == 0.) ? 0. : (1. / (y2 - y1)); ++ double dx = (x1 == 0.) ? 0. : 1. / x1; ++ double dy = (y1 == 0.) ? 0. : 1. / y1; ++ ++ cairo_matrix_set_affine (mat, ++ a, 0., ++ c, 0., ++ dx, dy); ++ ++ cairo_surface_set_matrix (surf, mat); ++ cairo_matrix_destroy (mat); ++ cairo_surface_set_filter (surf, CAIRO_FILTER_BILINEAR); ++ } + + /* FIXME: repeating gradients (not to mention hold gradients) don't seem to work. */ + /* cairo_surface_set_repeat (surf, cyclic ? 1 : 0); */ + + if (gr->pattern) +- cairo_surface_destroy (gr->pattern); ++ cairo_pattern_destroy (gr->pattern); ++ ++ if (gr->pattern_surface) ++ cairo_surface_destroy (gr->pattern_surface); + + if (gr->pattern_pixels) +- { +- free (gr->pattern_pixels); +- gr->pattern_pixels = NULL; +- } +- +- gr->pattern = surf; ++ free (gr->pattern_pixels); ++ ++ gr->pattern_pixels = NULL; ++ gr->pattern_surface = surf; ++ gr->pattern = cairo_pattern_create_for_surface(surf); + + cairo_restore (gr->cr); + cairo_set_pattern (gr->cr, gr->pattern); +- ++ gdk_threads_leave(); + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_setTexturePixels +@@ -618,6 +647,8 @@ + struct graphics2d *gr = NULL; + jint *jpixels = NULL; + ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } + gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); + g_assert (gr != NULL); + +@@ -625,12 +656,16 @@ + (*env)->GetArrayLength (env, jarr), w, h, stride); + + if (gr->pattern) +- cairo_surface_destroy (gr->pattern); ++ cairo_pattern_destroy (gr->pattern); ++ ++ if (gr->pattern_surface) ++ cairo_surface_destroy (gr->pattern_surface); + + if (gr->pattern_pixels) + free (gr->pattern_pixels); + + gr->pattern = NULL; ++ gr->pattern_surface = NULL; + gr->pattern_pixels = NULL; + + gr->pattern_pixels = (char *) malloc (h * stride * 4); +@@ -641,13 +676,15 @@ + memcpy (gr->pattern_pixels, jpixels, h * stride * 4); + (*env)->ReleaseIntArrayElements (env, jarr, jpixels, 0); + +- gr->pattern = cairo_surface_create_for_image (gr->pattern_pixels, +- CAIRO_FORMAT_ARGB32, +- w, h, stride * 4); ++ gr->pattern_surface = cairo_surface_create_for_image (gr->pattern_pixels, ++ CAIRO_FORMAT_ARGB32, ++ w, h, stride * 4); ++ g_assert (gr->pattern_surface != NULL); ++ cairo_surface_set_repeat (gr->pattern_surface, 1); ++ gr->pattern = cairo_pattern_create_for_surface (gr->pattern_surface); + g_assert (gr->pattern != NULL); +- cairo_surface_set_repeat (gr->pattern, 1); + cairo_set_pattern (gr->cr, gr->pattern); +- ++ gdk_threads_leave(); + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_drawPixels +@@ -658,6 +695,9 @@ + jint *native_pixels = NULL; + jdouble *native_matrix = NULL; + ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } ++ + gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); + g_assert (gr != NULL); + +@@ -683,30 +723,86 @@ + native_matrix[2], native_matrix[3], + native_matrix[4], native_matrix[5]); + cairo_surface_set_matrix (surf, mat); +- if (native_matrix[0] != 1. +- || native_matrix[1] != 0. +- || native_matrix[2] != 0. +- || native_matrix[3] != 1.) +- { +- cairo_surface_set_filter (surf, CAIRO_FILTER_BILINEAR); +- cairo_surface_set_filter (gr->surface, CAIRO_FILTER_BILINEAR); +- } +- else +- { +- cairo_surface_set_filter (surf, CAIRO_FILTER_FAST); +- cairo_surface_set_filter (gr->surface, CAIRO_FILTER_FAST); +- } ++ cairo_surface_set_filter (surf, cairo_surface_get_filter(gr->surface)); + cairo_show_surface (gr->cr, surf, w, h); +- cairo_surface_set_filter (gr->surface, CAIRO_FILTER_FAST); + cairo_matrix_destroy (mat); + cairo_surface_destroy (surf); + } + + end_drawing_operation (gr); ++ ++ (*env)->ReleaseIntArrayElements (env, java_pixels, native_pixels, 0); ++ (*env)->ReleaseDoubleArrayElements (env, java_matrix, native_matrix, 0); ++ ++ gdk_threads_leave(); ++} + +- (*env)->ReleaseIntArrayElements (env, java_pixels, native_pixels, 0); +- (*env)->ReleaseDoubleArrayElements (env, java_matrix, native_matrix, 0); ++JNIEXPORT jintArray JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_getImagePixels ++ (JNIEnv *env, jobject obj) ++{ ++ struct graphics2d *gr = NULL; ++ jintArray java_pixels; ++ jint* native_pixels; ++ GdkPixbuf *buf = NULL; ++ gint width, height; ++ gint bits_per_sample = 8; ++ gboolean has_alpha = TRUE; ++ gint total_channels = 4; ++ jint i, px; + ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return NULL; } ++ ++ gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); ++ g_assert (gr != NULL); ++ ++ if (gr->debug) printf ("getImagePixels\n"); ++ ++ gdk_drawable_get_size (gr->drawable, &width, &height); ++ ++ buf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, has_alpha, ++ bits_per_sample, ++ width, height); ++ g_assert (buf != NULL); ++ g_assert (gdk_pixbuf_get_bits_per_sample (buf) == bits_per_sample); ++ g_assert (gdk_pixbuf_get_n_channels (buf) == total_channels); ++ ++ ++ /* copy pixels from drawable to pixbuf */ ++ ++ gdk_pixbuf_get_from_drawable (buf, gr->drawable, ++ NULL, ++ 0, 0, 0, 0, ++ width, height); ++ ++ native_pixels= gdk_pixbuf_get_pixels (buf); ++ ++ ++ /* NOTE: The pixels we got in the pixbuf are stored ++ in reversed order. i.e 0xBBGGRRAA. ++ We need to convert them to 0xAARRGGBB. */ ++ ++ for (i=0; i> 24) & 0xff) | ((px << 8) & 0xffffff00); ++ px = ((px >> 8) & 0x00ff00ff) | ((px << 8) & 0xff00ff00); ++ px = ((px >> 16) & 0x0000ffff) | ((px << 16) & 0xffff0000); ++ native_pixels[i] = px; ++ ++ } ++ ++ java_pixels = (*env) -> NewIntArray (env, width * height); ++ ++ (*env)->SetIntArrayRegion(env, java_pixels, ++ (jsize)0, (jsize) width*height, ++ (jint*) native_pixels); ++ ++ gdk_threads_leave(); ++ return java_pixels; + } + + /* passthrough methods to cairo */ +@@ -715,21 +811,31 @@ + (JNIEnv *env, jobject obj) + { + struct graphics2d *gr = NULL; ++ ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } ++ + gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); + g_assert (gr != NULL); + if (gr->debug) printf ("cairo_save\n"); + cairo_save (gr->cr); ++ gdk_threads_leave(); + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoRestore + (JNIEnv *env, jobject obj) + { + struct graphics2d *gr = NULL; ++ ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } ++ + gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); + g_assert (gr != NULL); + if (gr->debug) printf ("cairo_restore\n"); + cairo_restore (gr->cr); + update_pattern_transform (gr); ++ gdk_threads_leave(); + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoSetMatrix +@@ -738,6 +844,9 @@ + struct graphics2d *gr = NULL; + jdouble *native_matrix = NULL; + ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } ++ + gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); + g_assert (gr != NULL); + +@@ -762,6 +871,7 @@ + + (*env)->ReleaseDoubleArrayElements (env, java_matrix, native_matrix, 0); + update_pattern_transform (gr); ++ gdk_threads_leave(); + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoSetFont +@@ -772,14 +882,15 @@ + cairo_font_t *ft = NULL; + FT_Face face = NULL; + ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } ++ + gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); + g_assert (gr != NULL); + + pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, font); + g_assert (pfont != NULL); + +- gdk_threads_enter (); +- + face = pango_ft2_font_get_face (pfont->font); + g_assert (face != NULL); + +@@ -795,8 +906,7 @@ + (double)PANGO_SCALE); + + cairo_font_destroy (ft); +- +- gdk_threads_leave (); ++ gdk_threads_leave(); + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoShowGlyphs +@@ -809,6 +919,9 @@ + jint i; + jint ncodes, nposns; + ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } ++ + gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); + g_assert (gr != NULL); + +@@ -843,12 +956,17 @@ + end_drawing_operation (gr); + + free(glyphs); ++ gdk_threads_leave(); + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoSetOperator + (JNIEnv *env, jobject obj, jint op) + { + struct graphics2d *gr = NULL; ++ ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } ++ + gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); + g_assert (gr != NULL); + if (gr->debug) printf ("cairo_set_operator %d\n", op); +@@ -902,12 +1020,17 @@ + cairo_set_operator (gr->cr, CAIRO_OPERATOR_XOR); + break; + } ++ gdk_threads_leave(); + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoSetRGBColor + (JNIEnv *env, jobject obj, jdouble r, jdouble g, jdouble b) + { + struct graphics2d *gr = NULL; ++ ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } ++ + gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); + g_assert (gr != NULL); + +@@ -922,22 +1045,33 @@ + cairo_set_rgb_color (gr->cr, b, g, r); + else + cairo_set_rgb_color (gr->cr, r, g, b); ++ ++ gdk_threads_leave(); + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoSetAlpha + (JNIEnv *env, jobject obj, jdouble a) + { + struct graphics2d *gr = NULL; ++ ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } ++ + gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); + g_assert (gr != NULL); + if (gr->debug) printf ("cairo_set_alpha %f\n", a); + cairo_set_alpha (gr->cr, a); ++ gdk_threads_leave(); + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoSetFillRule + (JNIEnv *env, jobject obj, jint rule) + { + struct graphics2d *gr = NULL; ++ ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } ++ + gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); + if (gr->debug) printf ("cairo_set_fill_rule %d\n", rule); + g_assert (gr != NULL); +@@ -950,22 +1084,32 @@ + cairo_set_fill_rule (gr->cr, CAIRO_FILL_RULE_EVEN_ODD); + break; + } ++ gdk_threads_leave(); + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoSetLineWidth + (JNIEnv *env, jobject obj, jdouble width) + { + struct graphics2d *gr = NULL; ++ ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } ++ + gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); + g_assert (gr != NULL); + if (gr->debug) printf ("cairo_set_line_width %f\n", width); + cairo_set_line_width (gr->cr, width); ++ gdk_threads_leave(); + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoSetLineCap + (JNIEnv *env, jobject obj, jint cap) + { + struct graphics2d *gr = NULL; ++ ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } ++ + gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); + g_assert (gr != NULL); + if (gr->debug) printf ("cairo_set_line_cap %d\n", cap); +@@ -983,12 +1127,17 @@ + cairo_set_line_cap (gr->cr, CAIRO_LINE_CAP_SQUARE); + break; + } ++ gdk_threads_leave(); + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoSetLineJoin + (JNIEnv *env, jobject obj, jint join) + { + struct graphics2d *gr = NULL; ++ ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } ++ + gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); + g_assert (gr != NULL); + if (gr->debug) printf ("cairo_set_line_join %d\n", join); +@@ -1006,6 +1155,7 @@ + cairo_set_line_join (gr->cr, CAIRO_LINE_JOIN_BEVEL); + break; + } ++ gdk_threads_leave(); + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoSetDash +@@ -1013,6 +1163,10 @@ + { + struct graphics2d *gr = NULL; + jdouble *dasharr = NULL; ++ ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } ++ + gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); + g_assert (gr != NULL); + if (gr->debug) printf ("cairo_set_dash\n"); +@@ -1020,16 +1174,22 @@ + g_assert (dasharr != NULL); + cairo_set_dash (gr->cr, dasharr, ndash, offset); + (*env)->ReleaseDoubleArrayElements (env, dashes, dasharr, 0); ++ gdk_threads_leave(); + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoSetMiterLimit + (JNIEnv *env, jobject obj, jdouble miter) + { + struct graphics2d *gr = NULL; ++ ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } ++ + gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); + g_assert (gr != NULL); + if (gr->debug) printf ("cairo_set_miter_limit %f\n", miter); + cairo_set_miter_limit (gr->cr, miter); ++ gdk_threads_leave(); + } + + +@@ -1037,123 +1197,217 @@ + (JNIEnv *env, jobject obj) + { + struct graphics2d *gr = NULL; ++ ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } ++ + gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); + g_assert (gr != NULL); + if (gr->debug) printf ("cairo_new_path\n"); + cairo_new_path (gr->cr); ++ gdk_threads_leave(); + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoMoveTo + (JNIEnv *env, jobject obj, jdouble x, jdouble y) + { + struct graphics2d *gr = NULL; ++ ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } ++ + gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); + g_assert (gr != NULL); + if (gr->debug) printf ("cairo_move_to (%f, %f)\n", x, y); + cairo_move_to (gr->cr, x, y); ++ gdk_threads_leave(); + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoLineTo + (JNIEnv *env, jobject obj, jdouble x, jdouble y) + { + struct graphics2d *gr = NULL; ++ ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } ++ + gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); + g_assert (gr != NULL); + if (gr->debug) printf ("cairo_line_to (%f, %f)\n", x, y); + cairo_line_to (gr->cr, x, y); ++ gdk_threads_leave(); + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoCurveTo + (JNIEnv *env, jobject obj, jdouble x1, jdouble y1, jdouble x2, jdouble y2, jdouble x3, jdouble y3) + { + struct graphics2d *gr = NULL; ++ ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } ++ + gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); + g_assert (gr != NULL); + if (gr->debug) printf ("cairo_curve_to (%f, %f), (%f, %f), (%f, %f)\n", x1, y1, x2, y2, x3, y3); + cairo_curve_to (gr->cr, x1, y1, x2, y2, x3, y3); ++ gdk_threads_leave(); + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoRelMoveTo + (JNIEnv *env, jobject obj, jdouble dx, jdouble dy) + { + struct graphics2d *gr = NULL; ++ ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } ++ + gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); + g_assert (gr != NULL); + if (gr->debug) printf ("cairo_rel_move_to (%f, %f)\n", dx, dy); + cairo_rel_move_to (gr->cr, dx, dy); ++ gdk_threads_leave(); + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoRelLineTo + (JNIEnv *env, jobject obj, jdouble dx, jdouble dy) + { + struct graphics2d *gr = NULL; ++ ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } ++ + gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); + g_assert (gr != NULL); + if (gr->debug) printf ("cairo_rel_line_to (%f, %f)\n", dx, dy); + cairo_rel_line_to (gr->cr, dx, dy); ++ gdk_threads_leave(); + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoRelCurveTo + (JNIEnv *env, jobject obj, jdouble dx1, jdouble dy1, jdouble dx2, jdouble dy2, jdouble dx3, jdouble dy3) + { + struct graphics2d *gr = NULL; ++ ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } ++ + gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); + g_assert (gr != NULL); + if (gr->debug) printf ("cairo_rel_curve_to (%f, %f), (%f, %f), (%f, %f)\n", dx1, dy1, dx2, dy2, dx3, dy3); + cairo_rel_curve_to (gr->cr, dx1, dy1, dx2, dy2, dx3, dy3); ++ gdk_threads_leave(); + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoRectangle + (JNIEnv *env, jobject obj, jdouble x, jdouble y, jdouble width, jdouble height) + { + struct graphics2d *gr = NULL; ++ ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } ++ + gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); + g_assert (gr != NULL); + if (gr->debug) printf ("cairo_rectangle (%f, %f) (%f, %f)\n", x, y, width, height); + cairo_rectangle (gr->cr, x, y, width, height); ++ gdk_threads_leave(); + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoClosePath + (JNIEnv *env, jobject obj) + { + struct graphics2d *gr = NULL; ++ ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } ++ + gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); + g_assert (gr != NULL); + if (gr->debug) printf ("cairo_close_path\n"); + cairo_close_path (gr->cr); ++ gdk_threads_leave(); + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoStroke + (JNIEnv *env, jobject obj) + { + struct graphics2d *gr = NULL; ++ ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } ++ + gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); + g_assert (gr != NULL); + if (gr->debug) printf ("cairo_stroke\n"); + begin_drawing_operation (gr); + cairo_stroke (gr->cr); + end_drawing_operation (gr); ++ gdk_threads_leave(); + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoFill + (JNIEnv *env, jobject obj) + { + struct graphics2d *gr = NULL; ++ ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } ++ + gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); + g_assert (gr != NULL); + if (gr->debug) printf ("cairo_fill\n"); + begin_drawing_operation (gr); + cairo_fill (gr->cr); + end_drawing_operation (gr); ++ gdk_threads_leave(); + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoClip + (JNIEnv *env, jobject obj) + { + struct graphics2d *gr = NULL; ++ ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } ++ + gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); + g_assert (gr != NULL); + if (gr->debug) printf ("cairo_clip\n"); ++ begin_drawing_operation (gr); ++ cairo_init_clip (gr->cr); + cairo_clip (gr->cr); ++ end_drawing_operation (gr); ++ gdk_threads_leave(); + } + ++JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoSurfaceSetFilter ++ (JNIEnv *env, jobject obj, jint filter) ++{ ++ struct graphics2d *gr = NULL; ++ ++ gdk_threads_enter(); ++ if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; } ++ ++ gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); ++ g_assert (gr != NULL); ++ if (gr->debug) printf ("cairo_surface_set_filter %d\n", filter); ++ switch ((enum java_awt_rendering_hints_filter) filter) ++ { ++ case java_awt_rendering_hints_VALUE_INTERPOLATION_NEAREST_NEIGHBOR: ++ cairo_surface_set_filter (gr->surface, CAIRO_FILTER_NEAREST); ++ break; ++ case java_awt_rendering_hints_VALUE_INTERPOLATION_BILINEAR: ++ cairo_surface_set_filter (gr->surface, CAIRO_FILTER_BILINEAR); ++ break; ++ case java_awt_rendering_hints_VALUE_ALPHA_INTERPOLATION_SPEED: ++ cairo_surface_set_filter (gr->surface, CAIRO_FILTER_FAST); ++ break; ++ case java_awt_rendering_hints_VALUE_ALPHA_INTERPOLATION_DEFAULT: ++ cairo_surface_set_filter (gr->surface, CAIRO_FILTER_NEAREST); ++ break; ++ case java_awt_rendering_hints_VALUE_ALPHA_INTERPOLATION_QUALITY: ++ cairo_surface_set_filter (gr->surface, CAIRO_FILTER_BEST); ++ break; ++ } ++ gdk_threads_leave(); ++} +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c,v +retrieving revision 1.2 +diff -u -r1.2 gnu_java_awt_peer_gtk_GdkPixbufDecoder.c +--- jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c 1 Dec 2003 18:05:32 -0000 1.2 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c 6 Sep 2004 16:36:12 -0000 +@@ -1,5 +1,5 @@ + /* gdkpixbufdecoder.c +- Copyright (C) 1999, 2003 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2003, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -35,36 +35,38 @@ + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ + +- +-#include ++#include ++#include + #include + #include + +-#include "gtkpeer.h" ++#include ++#include "native_state.h" + #include "gnu_java_awt_peer_gtk_GdkPixbufDecoder.h" + +-struct state_table *native_pixbufdecoder_state_table; +- +-#define NSA_PB_INIT(env, clazz) \ +- native_pixbufdecoder_state_table = init_state_table (env, clazz) ++#include ++#include + +-#define NSA_GET_PB_PTR(env, obj) \ +- get_state (env, obj, native_pixbufdecoder_state_table) +- +-#define NSA_SET_PB_PTR(env, obj, ptr) \ +- set_state (env, obj, native_pixbufdecoder_state_table, (void *)ptr) ++struct state_table *native_pixbufdecoder_state_table; + +-#define NSA_DEL_PB_PTR(env, obj) \ +- remove_state_slot (env, obj, native_pixbufdecoder_state_table) ++/* Union used for type punning. */ ++union env_union ++{ ++ void **void_env; ++ JNIEnv **jni_env; ++}; + ++static JavaVM *vm; + +-jmethodID areaPreparedID; +-jmethodID areaUpdatedID; ++static jmethodID areaPreparedID; ++static jmethodID areaUpdatedID; + + static void + area_prepared (GdkPixbufLoader *loader, + jobject *decoder) + { ++ JNIEnv *env; ++ union env_union e; + jint width, height; + + GdkPixbuf *pixbuf = gdk_pixbuf_loader_get_pixbuf (loader); +@@ -72,17 +74,19 @@ + return; + + width = gdk_pixbuf_get_width (pixbuf); +- height = gdk_pixbuf_get_height (pixbuf), ++ height = gdk_pixbuf_get_height (pixbuf); + + gdk_threads_leave (); + + g_assert (decoder != NULL); + +- (*gdk_env)->CallVoidMethod (gdk_env, +- *decoder, +- areaPreparedID, +- width, height); +- ++ e.jni_env = &env; ++ (*vm)->GetEnv (vm, e.void_env, JNI_VERSION_1_1); ++ (*env)->CallVoidMethod (env, ++ *decoder, ++ areaPreparedID, ++ width, height); ++ + gdk_threads_enter (); + } + +@@ -92,6 +96,8 @@ + gint width, gint height, + jobject *decoder) + { ++ JNIEnv *env; ++ union env_union e; + jint stride_bytes, stride_pixels, n_channels, n_pixels; + int i, px; + jintArray jpixels; +@@ -114,8 +120,10 @@ + n_pixels = height * stride_pixels; + gdk_pixels = gdk_pixbuf_get_pixels (pixbuf); + +- jpixels = (*gdk_env)->NewIntArray (gdk_env, n_pixels); +- java_pixels = (*gdk_env)->GetIntArrayElements (gdk_env, jpixels, NULL); ++ e.jni_env = &env; ++ (*vm)->GetEnv (vm, e.void_env, JNI_VERSION_1_1); ++ jpixels = (*env)->NewIntArray (env, n_pixels); ++ java_pixels = (*env)->GetIntArrayElements (env, jpixels, NULL); + + memcpy (java_pixels, + gdk_pixels + (y * stride_bytes), +@@ -141,22 +149,27 @@ + + gdk_threads_leave (); + +- (*gdk_env)->ReleaseIntArrayElements (gdk_env, jpixels, java_pixels, 0); +- (*gdk_env)->CallVoidMethod (gdk_env, +- *decoder, +- areaUpdatedID, +- (jint) x, (jint) y, +- (jint) width, (jint) height, +- jpixels, +- stride_pixels); ++ (*env)->ReleaseIntArrayElements (env, jpixels, java_pixels, 0); ++ (*env)->CallVoidMethod (env, ++ *decoder, ++ areaUpdatedID, ++ (jint) x, (jint) y, ++ (jint) width, (jint) height, ++ jpixels, ++ stride_pixels); + gdk_threads_enter (); + } + + static void + closed (GdkPixbufLoader *loader __attribute__((unused)), jobject *decoder) + { ++ JNIEnv *env; ++ union env_union e; ++ e.jni_env = &env; ++ (*vm)->GetEnv (vm, e.void_env, JNI_VERSION_1_1); ++ + gdk_threads_leave (); +- (*gdk_env)->DeleteGlobalRef (gdk_env, *decoder); ++ (*env)->DeleteGlobalRef (env, *decoder); + free (decoder); + gdk_threads_enter (); + } +@@ -187,6 +200,8 @@ + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_initStaticState + (JNIEnv *env, jclass clazz) + { ++ (*env)->GetJavaVM(env, &vm); ++ + areaPreparedID = (*env)->GetMethodID (env, clazz, + "areaPrepared", + "(II)V"); +@@ -223,14 +238,14 @@ + if (len < 1) + return; + +- bytes = (*gdk_env)->GetByteArrayElements (gdk_env, jarr, NULL); ++ bytes = (*env)->GetByteArrayElements (env, jarr, NULL); + g_assert (bytes != NULL); + loader = (GdkPixbufLoader *)NSA_GET_PB_PTR (env, obj); + g_assert (loader != NULL); + + gdk_threads_enter (); +- gdk_pixbuf_loader_write (loader, bytes, len, NULL); ++ gdk_pixbuf_loader_write (loader, (const guchar *) bytes, len, NULL); + gdk_threads_leave (); + +- (*gdk_env)->ReleaseByteArrayElements (gdk_env, jarr, bytes, 0); ++ (*env)->ReleaseByteArrayElements (env, jarr, bytes, 0); + } +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c,v +retrieving revision 1.7 +diff -u -r1.7 gnu_java_awt_peer_gtk_GtkButtonPeer.c +--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c 13 Dec 2003 01:15:47 -0000 1.7 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c 6 Sep 2004 16:36:12 -0000 +@@ -42,20 +42,23 @@ + + JNIEXPORT void JNICALL + Java_gnu_java_awt_peer_gtk_GtkButtonPeer_create +- (JNIEnv *env, jobject obj) ++ (JNIEnv *env, jobject obj, jstring label) + { ++ const char *c_label; + GtkWidget *button; + +- /* Create global reference and save it for future use */ + NSA_SET_GLOBAL_REF (env, obj); + ++ c_label = (*env)->GetStringUTFChars (env, label, NULL); ++ + gdk_threads_enter (); +- +- button = gtk_button_new(); ++ ++ button = gtk_button_new_with_label (c_label); + gtk_widget_show (button); + + gdk_threads_leave (); + ++ (*env)->ReleaseStringUTFChars (env, label, c_label); + NSA_SET_PTR (env, obj, button); + } + +@@ -88,29 +91,46 @@ + } + + JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkSetLabel ++ (JNIEnv *env, jobject obj, jstring jtext) ++{ ++ const char *text; ++ GtkWidget *label; ++ void *ptr; ++ ++ ptr = NSA_GET_PTR (env, obj); ++ ++ text = (*env)->GetStringUTFChars (env, jtext, NULL); ++ ++ gdk_threads_enter (); ++ ++ label = gtk_bin_get_child (GTK_BIN (ptr)); ++ gtk_label_set_text (GTK_LABEL (label), text); ++ ++ gdk_threads_leave (); ++ ++ (*env)->ReleaseStringUTFChars (env, jtext, text); ++} ++ ++JNIEXPORT void JNICALL + Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkSetFont + (JNIEnv *env, jobject obj, jstring name, jint style, jint size) + { + const char *font_name; + void *ptr; +- GtkWidget *button; + GtkWidget *label; + PangoFontDescription *font_desc; + + ptr = NSA_GET_PTR (env, obj); + +- button = GTK_WIDGET (ptr); +- label = gtk_bin_get_child (GTK_BIN(button)); +- +- if (!label) +- return; +- + font_name = (*env)->GetStringUTFChars (env, name, NULL); + + gdk_threads_enter(); + ++ label = gtk_bin_get_child (GTK_BIN (ptr)); ++ + font_desc = pango_font_description_from_string (font_name); +- pango_font_description_set_size (font_desc, size * PANGO_SCALE); ++ pango_font_description_set_size (font_desc, size * dpi_conversion_factor); + + if (style & AWT_STYLE_BOLD) + pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD); +@@ -145,12 +165,24 @@ + + label = gtk_bin_get_child (GTK_BIN(ptr)); + +- if (!label) +- return; +- + gtk_widget_modify_fg (label, GTK_STATE_NORMAL, &color); + gtk_widget_modify_fg (label, GTK_STATE_ACTIVE, &color); + gtk_widget_modify_fg (label, GTK_STATE_PRELIGHT, &color); + + gdk_threads_leave (); + } ++ ++JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkActivate ++ (JNIEnv *env, jobject obj) ++{ ++ void *ptr; ++ ++ ptr = NSA_GET_PTR (env, obj); ++ ++ gdk_threads_enter (); ++ ++ gtk_widget_activate (GTK_WIDGET (ptr)); ++ ++ gdk_threads_leave (); ++} +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c +=================================================================== +RCS file: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c +diff -N jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c 6 Sep 2004 16:36:12 -0000 +@@ -0,0 +1,75 @@ ++/* gtkcheckboxgrouppeer.c -- Native implementation of GtkCheckboxGroupPeer ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++ ++#include "gtkpeer.h" ++#include "gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.h" ++ ++JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer_dispose ++ (JNIEnv *env, jobject obj) ++{ ++ /* The actual underlying widget is owned by a different class. So ++ we just clean up the hash table here. */ ++ NSA_DEL_PTR (env, obj); ++} ++ ++JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer_remove ++ (JNIEnv *env, jobject obj, jobject checkbox) ++{ ++ GtkRadioButton *button; ++ void *ptr; ++ GSList *list; ++ ++ ptr = NSA_GET_PTR (env, checkbox); ++ gdk_threads_enter (); ++ button = GTK_RADIO_BUTTON (ptr); ++ ++ /* Update the group to point to some other widget in the group. We ++ have to do this because Gtk doesn't have a separate object to ++ represent a radio button's group. */ ++ for (list = gtk_radio_button_group (button); list != NULL; ++ list = list->next) ++ { ++ if (list->data != button) ++ break; ++ } ++ ++ gdk_threads_leave (); ++ ++ NSA_SET_PTR (env, obj, list ? list->data : NULL); ++} ++ +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c,v +retrieving revision 1.2 +diff -u -r1.2 gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c +--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c 13 Dec 2003 01:15:47 -0000 1.2 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c 6 Sep 2004 16:36:12 -0000 +@@ -37,7 +37,7 @@ + + + #include "gtkpeer.h" +-#include "gnu_java_awt_peer_gtk_GtkMenuItemPeer.h" ++#include "gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h" + + JNIEXPORT void JNICALL + Java_gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer_create +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c,v +retrieving revision 1.4 +diff -u -r1.4 gnu_java_awt_peer_gtk_GtkCheckboxPeer.c +--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c 13 Dec 2003 01:15:47 -0000 1.4 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c 6 Sep 2004 16:36:12 -0000 +@@ -1,5 +1,5 @@ + /* gtkcheckboxpeer.c -- Native implementation of GtkCheckboxPeer +- Copyright (C) 1998, 1999, 2002, 2003 Free Software Foundation, Inc. ++ Copyright (C) 1998, 1999, 2002, 2003, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -42,47 +42,12 @@ + + static void item_toggled (GtkToggleButton *item, jobject peer); + +-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer_dispose +- (JNIEnv *env, jobject obj) +-{ +- /* The actual underlying widget is owned by a different class. So +- we just clean up the hash table here. */ +- NSA_DEL_PTR (env, obj); +-} +- +-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer_remove +- (JNIEnv *env, jobject obj, jobject checkbox) +-{ +- GtkRadioButton *button; +- void *ptr; +- GSList *list; +- +- ptr = NSA_GET_PTR (env, checkbox); +- gdk_threads_enter (); +- button = GTK_RADIO_BUTTON (ptr); +- +- /* Update the group to point to some other widget in the group. We +- have to do this because Gtk doesn't have a separate object to +- represent a radio button's group. */ +- for (list = gtk_radio_button_group (button); list != NULL; +- list = list->next) +- { +- if (list->data != button) +- break; +- } +- +- gdk_threads_leave (); +- +- NSA_SET_PTR (env, obj, list ? list->data : NULL); +-} +- + JNIEXPORT void JNICALL +-Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_nativeCreate +- (JNIEnv *env, jobject obj, jobject group, jboolean state) ++Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_create ++ (JNIEnv *env, jobject obj, jobject group) + { + GtkWidget *button; + +- /* Create global reference and save it for future use */ + NSA_SET_GLOBAL_REF (env, obj); + + gdk_threads_enter (); +@@ -100,7 +65,6 @@ + NSA_SET_PTR (env, group, button); + } + } +- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), state); + + gdk_threads_leave (); + +@@ -164,10 +128,86 @@ + NSA_SET_PTR (env, group, native_group); + } + ++JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkToggleButtonSetActive ++ (JNIEnv *env, jobject obj, jboolean is_active) ++{ ++ void *ptr; ++ ++ ptr = NSA_GET_PTR (env, obj); ++ ++ gdk_threads_enter (); ++ ++ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ptr), is_active); ++ ++ gdk_threads_leave (); ++} ++ ++JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkSetFont ++ (JNIEnv *env, jobject obj, jstring name, jint style, jint size) ++{ ++ const char *font_name; ++ void *ptr; ++ GtkWidget *button; ++ GtkWidget *label; ++ PangoFontDescription *font_desc; ++ ++ ptr = NSA_GET_PTR (env, obj); ++ ++ button = GTK_WIDGET (ptr); ++ label = gtk_bin_get_child (GTK_BIN(button)); ++ ++ if (!label) ++ return; ++ ++ font_name = (*env)->GetStringUTFChars (env, name, NULL); ++ ++ gdk_threads_enter(); ++ ++ font_desc = pango_font_description_from_string (font_name); ++ pango_font_description_set_size (font_desc, size * dpi_conversion_factor); ++ ++ if (style & AWT_STYLE_BOLD) ++ pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD); ++ ++ if (style & AWT_STYLE_ITALIC) ++ pango_font_description_set_style (font_desc, PANGO_STYLE_OBLIQUE); ++ ++ gtk_widget_modify_font (GTK_WIDGET(label), font_desc); ++ ++ pango_font_description_free (font_desc); ++ ++ gdk_threads_leave(); ++ ++ (*env)->ReleaseStringUTFChars (env, name, font_name); ++} ++ ++JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkButtonSetLabel ++ (JNIEnv *env, jobject obj, jstring label) ++{ ++ const char *c_label; ++ GtkWidget *label_widget; ++ void *ptr; ++ ++ ptr = NSA_GET_PTR (env, obj); ++ ++ c_label = (*env)->GetStringUTFChars (env, label, NULL); ++ ++ gdk_threads_enter (); ++ ++ label_widget = gtk_bin_get_child (GTK_BIN (ptr)); ++ gtk_label_set_text (GTK_LABEL (label_widget), c_label); ++ ++ gdk_threads_leave (); ++ ++ (*env)->ReleaseStringUTFChars (env, label, c_label); ++} ++ + static void + item_toggled (GtkToggleButton *item, jobject peer) + { +- //g_print ("toggled\n"); + (*gdk_env)->CallVoidMethod (gdk_env, peer, + postItemEventID, + peer, +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c,v +retrieving revision 1.6 +diff -u -r1.6 gnu_java_awt_peer_gtk_GtkChoicePeer.c +--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c 5 Jan 2004 21:18:06 -0000 1.6 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c 6 Sep 2004 16:36:12 -0000 +@@ -39,38 +39,27 @@ + #include "gtkpeer.h" + #include "gnu_java_awt_peer_gtk_GtkChoicePeer.h" + +-static void connect_choice_item_selectable_hook (JNIEnv *env, +- jobject peer_obj, +- GtkItem *menuitem, +- const char *label); ++static void selection_changed (GtkComboBox *combobox, gpointer data); + + JNIEXPORT void JNICALL + Java_gnu_java_awt_peer_gtk_GtkChoicePeer_create + (JNIEnv *env, jobject obj) + { + GtkWidget *menu; +- GtkOptionMenu *option_menu; +- GtkRequisition child_requisition; ++ GtkComboBox *combobox; + +- /* Create global reference and save it for future use */ + NSA_SET_GLOBAL_REF (env, obj); + + gdk_threads_enter (); + +- option_menu = GTK_OPTION_MENU (gtk_option_menu_new ()); +- menu = gtk_menu_new (); +- gtk_widget_show (menu); ++ combobox = gtk_combo_box_new_text (); + +- gtk_option_menu_set_menu (GTK_OPTION_MENU (option_menu), menu); +- +- gtk_widget_size_request (gtk_menu_item_new_with_label (""), +- &child_requisition); +- option_menu->width = child_requisition.width; +- option_menu->height = child_requisition.height; ++ g_signal_connect (combobox, "changed", ++ G_CALLBACK (selection_changed), obj); + + gdk_threads_leave (); + +- NSA_SET_PTR (env, obj, option_menu); ++ NSA_SET_PTR (env, obj, combobox); + } + + JNIEXPORT void JNICALL +@@ -78,45 +67,27 @@ + (JNIEnv *env, jobject obj, jobjectArray items) + { + gpointer ptr; +- GtkMenu *menu; + jsize count, i; +- int need_set_history = 0; + + ptr = NSA_GET_PTR (env, obj); + + gdk_threads_enter (); + +- menu = GTK_MENU (gtk_option_menu_get_menu (GTK_OPTION_MENU (ptr))); +- +- /* Are we adding the first element? */ +- if (gtk_option_menu_get_history (GTK_OPTION_MENU (ptr)) < 0) +- need_set_history = 1; +- + count = (*env)->GetArrayLength (env, items); + + for (i = 0; i < count; i++) + { + jobject item; + const char *label; +- GtkWidget *menuitem; + + item = (*env)->GetObjectArrayElement (env, items, i); + label = (*env)->GetStringUTFChars (env, item, NULL); + +- menuitem = gtk_menu_item_new_with_label (label); +- gtk_menu_append (menu, menuitem); +- gtk_widget_show (menuitem); +- +- connect_choice_item_selectable_hook (env, obj, +- GTK_ITEM (menuitem), label); ++ gtk_combo_box_append_text (GTK_COMBO_BOX (ptr), label); + + (*env)->ReleaseStringUTFChars (env, item, label); + } + +- /* If we just added the first element select it. */ +- if (need_set_history) +- gtk_option_menu_set_history (GTK_OPTION_MENU (ptr), 0); +- + gdk_threads_leave (); + } + +@@ -126,36 +97,13 @@ + { + void *ptr; + const char *label; +- GtkWidget *menu, *menuitem; +- int current; +- int need_set_history = 0; + + ptr = NSA_GET_PTR (env, obj); + + label = (*env)->GetStringUTFChars (env, item, 0); + + gdk_threads_enter (); +- +- current = gtk_option_menu_get_history (GTK_OPTION_MENU (ptr)); +- +- /* Are we adding the first element or below or at the currently +- selected one? */ +- if ((current < 0) || (current >= index)) +- need_set_history = 1; +- +- menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (ptr)); +- menuitem = gtk_menu_item_new_with_label (label); +- gtk_menu_insert (GTK_MENU (menu), menuitem, index); +- gtk_widget_show (menuitem); +- +- connect_choice_item_selectable_hook (env, obj, GTK_ITEM (menuitem), label); +- +- /* If we just added the first element select it. +- If we added at of below the currently selected position make +- the first item the selected one. */ +- if (need_set_history) +- gtk_option_menu_set_history (GTK_OPTION_MENU (ptr), 0); +- ++ gtk_combo_box_insert_text (GTK_COMBO_BOX (ptr), index, label); + gdk_threads_leave (); + + (*env)->ReleaseStringUTFChars (env, item, label); +@@ -166,50 +114,35 @@ + (JNIEnv *env, jobject obj, jint index) + { + void *ptr; +- GtkContainer *menu; +- GtkWidget *menuitem; +- GList *children; +- int need_set_history = 0; +- int i, from, to; + + ptr = NSA_GET_PTR (env, obj); + + gdk_threads_enter (); ++ gtk_combo_box_remove_text (GTK_COMBO_BOX (ptr), index); ++ gdk_threads_leave (); ++} + +- menu = GTK_CONTAINER (gtk_option_menu_get_menu (GTK_OPTION_MENU (ptr))); +- children = gtk_container_children (menu); ++JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeRemoveAll ++ (JNIEnv *env, jobject obj) ++{ ++ void *ptr; ++ GtkTreeModel *model; ++ gint count, i; + +- if (index == -1) +- { +- /* Remove all elements (removeAll) */ +- from = g_list_length (children) - 1; +- to = 0; ++ ptr = NSA_GET_PTR (env, obj); + +- /* Select the first item to prevent spurious activate signals */ +- gtk_option_menu_set_history (GTK_OPTION_MENU (ptr), 0); +- } +- else +- { +- /* Remove the specific index element */ +- from = index; +- to = index; +- +- /* Are we removing the currently selected element? */ +- if (gtk_option_menu_get_history (GTK_OPTION_MENU (ptr)) == index) +- need_set_history = 1; +- } ++ gdk_threads_enter (); + +- for (i = from; i >= to; i--) +- { +- menuitem = GTK_WIDGET (g_list_nth (children, i)->data); +- gtk_container_remove (menu, menuitem); +- gtk_widget_destroy (menuitem); +- } ++ model = gtk_combo_box_get_model (GTK_COMBO_BOX (ptr)); ++ count = gtk_tree_model_iter_n_children (model, NULL); ++ ++ /* First, unselect everything, to avoid problems when removing items. */ ++ gtk_combo_box_set_active (GTK_COMBO_BOX (ptr), -1); + +- /* If we just removed the currently selected element and there are +- still elements left in the list, make the first item the selected one. */ +- if (need_set_history && gtk_container_children (menu)) +- gtk_option_menu_set_history (GTK_OPTION_MENU (ptr), 0); ++ for (i = count - 1; i >= 0; i--) { ++ gtk_combo_box_remove_text (GTK_COMBO_BOX (ptr), i); ++ } + + gdk_threads_leave (); + } +@@ -223,12 +156,12 @@ + ptr = NSA_GET_PTR (env, obj); + + gdk_threads_enter (); +- gtk_option_menu_set_history (GTK_OPTION_MENU (ptr), index); ++ gtk_combo_box_set_active (GTK_COMBO_BOX (ptr), index); + gdk_threads_leave (); + } + + JNIEXPORT jint JNICALL +-Java_gnu_java_awt_peer_gtk_GtkChoicePeer_getHistory ++Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeGetSelected + (JNIEnv *env, jobject obj) + { + void *ptr; +@@ -237,57 +170,38 @@ + ptr = NSA_GET_PTR (env, obj); + + gdk_threads_enter (); +- +- index = gtk_option_menu_get_history (GTK_OPTION_MENU (ptr)); +- ++ index = gtk_combo_box_get_active (GTK_COMBO_BOX (ptr)); + gdk_threads_leave (); + + return index; + } + +-static void +-item_activate (GtkItem *item __attribute__((unused)), +- struct item_event_hook_info *ie) ++void selection_changed (GtkComboBox *combobox, jobject peer) + { +- gdk_threads_leave (); ++ jstring label; ++ GtkTreeModel *model; ++ GtkTreeIter iter; ++ GValue value; ++ gchar *selected; ++ gint index; + +- jstring label = (*gdk_env)->NewStringUTF (gdk_env, ie->label); +- (*gdk_env)->CallVoidMethod (gdk_env, ie->peer_obj, +- choicePostItemEventID, +- label, +- (jint) AWT_ITEM_SELECTED); +- gdk_threads_enter (); +-} +- +-static void +-item_removed (gpointer data, +- GClosure gc __attribute__((unused))) +-{ +- struct item_event_hook_info *ie = data; +- +- free ((void *) ie->label); +- free (ie); +-} ++ index = gtk_combo_box_get_active(combobox); + +-static void +-connect_choice_item_selectable_hook (JNIEnv *env, +- jobject peer_obj, +- GtkItem *menuitem, +- const char *label) +-{ +- struct item_event_hook_info *ie; +- jobject *peer_objGlobPtr; ++ if (index >= 0) ++ { ++ model = gtk_combo_box_get_model (combobox); + +- ie = (struct item_event_hook_info *) +- malloc (sizeof (struct item_event_hook_info)); ++ gtk_combo_box_get_active_iter (combobox, &iter); + +- peer_objGlobPtr = NSA_GET_GLOBAL_REF (env, peer_obj); +- g_assert (peer_objGlobPtr); ++ gtk_tree_model_get (model, &iter, 0, &selected, -1); + +- ie->peer_obj = *peer_objGlobPtr; +- ie->label = strdup (label); ++ gdk_threads_leave (); + +- g_signal_connect_data (G_OBJECT (menuitem), "activate", +- GTK_SIGNAL_FUNC (item_activate), ie, +- (GClosureNotify) item_removed, 0); ++ label = (*gdk_env)->NewStringUTF (gdk_env, selected); ++ (*gdk_env)->CallVoidMethod (gdk_env, peer, ++ choicePostItemEventID, ++ label, ++ (jint) AWT_ITEM_SELECTED); ++ gdk_threads_enter (); ++ } + } +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c,v +retrieving revision 1.12 +diff -u -r1.12 gnu_java_awt_peer_gtk_GtkComponentPeer.c +--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c 5 Jan 2004 21:13:46 -0000 1.12 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c 6 Sep 2004 16:36:12 -0000 +@@ -1,5 +1,5 @@ + /* gtkcomponentpeer.c -- Native implementation of GtkComponentPeer +- Copyright (C) 1998, 1999, 2002 Free Software Foundation, Inc. ++ Copyright (C) 1998, 1999, 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -39,28 +39,372 @@ + #include "gtkpeer.h" + #include "gnu_java_awt_peer_gtk_GtkComponentPeer.h" + #include ++#include + + static GtkWidget *find_fg_color_widget (GtkWidget *widget); + static GtkWidget *find_bg_color_widget (GtkWidget *widget); ++static gboolean focus_in_cb (GtkWidget *widget, ++ GdkEventFocus *event, ++ jobject peer); ++static gboolean focus_out_cb (GtkWidget *widget, ++ GdkEventFocus *event, ++ jobject peer); ++/* ++ * This method returns a GDK keyval that corresponds to one of the ++ * keysyms in the X keymap table. The return value is only used to ++ * determine the keyval's corresponding hardware keycode, and doesn't ++ * reflect an accurate translation of a Java virtual key value to a ++ * GDK keyval. ++ */ ++#ifdef __GNUC__ ++__inline ++#endif ++static guint ++awt_keycode_to_keysym (jint keyCode, jint keyLocation) ++{ ++ /* GDK_A through GDK_Z */ ++ if (keyCode >= VK_A && keyCode <= VK_Z) ++ return gdk_keyval_to_lower (keyCode); ++ ++ /* GDK_0 through GDK_9 */ ++ if (keyCode >= VK_0 && keyCode <= VK_9) ++ return keyCode; + +-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkGenericPeer_dispose +- (JNIEnv *env, jobject obj) +-{ +- void *ptr; +- +- /* Remove entries from state tables */ +- NSA_DEL_GLOBAL_REF (env, obj); +- ptr = NSA_DEL_PTR (env, obj); +- +- gdk_threads_enter (); +- +- /* For now the native state for any object must be a widget. +- However, a subclass could override dispose() if required. */ +- gtk_widget_destroy (GTK_WIDGET (ptr)); +- +- gdk_threads_leave (); ++ switch (keyCode) ++ { ++ case VK_ENTER: ++ return keyLocation == AWT_KEY_LOCATION_NUMPAD ? GDK_KP_Enter : GDK_Return; ++ case VK_BACK_SPACE: ++ return GDK_BackSpace; ++ case VK_TAB: ++ return GDK_Tab; ++ case VK_CANCEL: ++ return GDK_Cancel; ++ case VK_CLEAR: ++ return GDK_Clear; ++ case VK_SHIFT: ++ return keyLocation == AWT_KEY_LOCATION_LEFT ? GDK_Shift_L : GDK_Shift_R; ++ case VK_CONTROL: ++ return keyLocation == AWT_KEY_LOCATION_LEFT ? GDK_Control_L : GDK_Control_R; ++ case VK_ALT: ++ return keyLocation == AWT_KEY_LOCATION_LEFT ? GDK_Alt_L : GDK_Alt_R; ++ case VK_PAUSE: ++ return GDK_Pause; ++ case VK_CAPS_LOCK: ++ return GDK_Caps_Lock; ++ case VK_ESCAPE: ++ return GDK_Escape; ++ case VK_SPACE: ++ return GDK_space; ++ case VK_PAGE_UP: ++ return keyLocation == AWT_KEY_LOCATION_NUMPAD ? GDK_KP_Page_Up : GDK_Page_Up; ++ case VK_PAGE_DOWN: ++ return keyLocation == AWT_KEY_LOCATION_NUMPAD ? GDK_KP_Page_Down : GDK_Page_Down; ++ case VK_END: ++ return keyLocation == AWT_KEY_LOCATION_NUMPAD ? GDK_KP_End : GDK_End; ++ case VK_HOME: ++ return keyLocation == AWT_KEY_LOCATION_NUMPAD ? GDK_KP_Home : GDK_Home; ++ case VK_LEFT: ++ return GDK_Left; ++ case VK_UP: ++ return GDK_Up; ++ case VK_RIGHT: ++ return GDK_Right; ++ case VK_DOWN: ++ return GDK_Down; ++ case VK_COMMA: ++ return GDK_comma; ++ case VK_MINUS: ++ return GDK_minus; ++ case VK_PERIOD: ++ return GDK_period; ++ case VK_SLASH: ++ return GDK_slash; ++ /* ++ case VK_0: ++ case VK_1: ++ case VK_2: ++ case VK_3: ++ case VK_4: ++ case VK_5: ++ case VK_6: ++ case VK_7: ++ case VK_8: ++ case VK_9: ++ */ ++ case VK_SEMICOLON: ++ return GDK_semicolon; ++ case VK_EQUALS: ++ return GDK_equal; ++ /* ++ case VK_A: ++ case VK_B: ++ case VK_C: ++ case VK_D: ++ case VK_E: ++ case VK_F: ++ case VK_G: ++ case VK_H: ++ case VK_I: ++ case VK_J: ++ case VK_K: ++ case VK_L: ++ case VK_M: ++ case VK_N: ++ case VK_O: ++ case VK_P: ++ case VK_Q: ++ case VK_R: ++ case VK_S: ++ case VK_T: ++ case VK_U: ++ case VK_V: ++ case VK_W: ++ case VK_X: ++ case VK_Y: ++ case VK_Z: ++ */ ++ case VK_OPEN_BRACKET: ++ return GDK_bracketleft; ++ case VK_BACK_SLASH: ++ return GDK_backslash; ++ case VK_CLOSE_BRACKET: ++ return GDK_bracketright; ++ case VK_NUMPAD0: ++ return GDK_KP_0; ++ case VK_NUMPAD1: ++ return GDK_KP_1; ++ case VK_NUMPAD2: ++ return GDK_KP_2; ++ case VK_NUMPAD3: ++ return GDK_KP_3; ++ case VK_NUMPAD4: ++ return GDK_KP_4; ++ case VK_NUMPAD5: ++ return GDK_KP_5; ++ case VK_NUMPAD6: ++ return GDK_KP_6; ++ case VK_NUMPAD7: ++ return GDK_KP_7; ++ case VK_NUMPAD8: ++ return GDK_KP_8; ++ case VK_NUMPAD9: ++ return GDK_KP_9; ++ case VK_MULTIPLY: ++ return GDK_KP_Multiply; ++ case VK_ADD: ++ return GDK_KP_Add; ++ /* ++ case VK_SEPARATER: ++ */ ++ case VK_SEPARATOR: ++ return GDK_KP_Separator; ++ case VK_SUBTRACT: ++ return GDK_KP_Subtract; ++ case VK_DECIMAL: ++ return GDK_KP_Decimal; ++ case VK_DIVIDE: ++ return GDK_KP_Divide; ++ case VK_DELETE: ++ return keyLocation == AWT_KEY_LOCATION_NUMPAD ? GDK_KP_Delete : GDK_Delete; ++ case VK_NUM_LOCK: ++ return GDK_Num_Lock; ++ case VK_SCROLL_LOCK: ++ return GDK_Scroll_Lock; ++ case VK_F1: ++ return GDK_F1; ++ case VK_F2: ++ return GDK_F2; ++ case VK_F3: ++ return GDK_F3; ++ case VK_F4: ++ return GDK_F4; ++ case VK_F5: ++ return GDK_F5; ++ case VK_F6: ++ return GDK_F6; ++ case VK_F7: ++ return GDK_F7; ++ case VK_F8: ++ return GDK_F8; ++ case VK_F9: ++ return GDK_F9; ++ case VK_F10: ++ return GDK_F10; ++ case VK_F11: ++ return GDK_F11; ++ case VK_F12: ++ return GDK_F12; ++ case VK_F13: ++ return GDK_F13; ++ case VK_F14: ++ return GDK_F14; ++ case VK_F15: ++ return GDK_F15; ++ case VK_F16: ++ return GDK_F16; ++ case VK_F17: ++ return GDK_F17; ++ case VK_F18: ++ return GDK_F18; ++ case VK_F19: ++ return GDK_F19; ++ case VK_F20: ++ return GDK_F20; ++ case VK_F21: ++ return GDK_F21; ++ case VK_F22: ++ return GDK_F22; ++ case VK_F23: ++ return GDK_F23; ++ case VK_F24: ++ return GDK_F24; ++ case VK_PRINTSCREEN: ++ return GDK_Print; ++ case VK_INSERT: ++ return keyLocation == AWT_KEY_LOCATION_NUMPAD ? GDK_KP_Insert : GDK_Insert; ++ case VK_HELP: ++ return GDK_Help; ++ case VK_META: ++ return keyLocation == AWT_KEY_LOCATION_LEFT ? GDK_Meta_L : GDK_Meta_R; ++ case VK_BACK_QUOTE: ++ return GDK_grave; ++ case VK_QUOTE: ++ return GDK_apostrophe; ++ case VK_KP_UP: ++ return GDK_KP_Up; ++ case VK_KP_DOWN: ++ return GDK_KP_Down; ++ case VK_KP_LEFT: ++ return GDK_KP_Left; ++ case VK_KP_RIGHT: ++ return GDK_KP_Right; ++ case VK_DEAD_GRAVE: ++ return GDK_dead_grave; ++ case VK_DEAD_ACUTE: ++ return GDK_dead_acute; ++ case VK_DEAD_CIRCUMFLEX: ++ return GDK_dead_circumflex; ++ case VK_DEAD_TILDE: ++ return GDK_dead_tilde; ++ case VK_DEAD_MACRON: ++ return GDK_dead_macron; ++ case VK_DEAD_BREVE: ++ return GDK_dead_breve; ++ case VK_DEAD_ABOVEDOT: ++ return GDK_dead_abovedot; ++ case VK_DEAD_DIAERESIS: ++ return GDK_dead_diaeresis; ++ case VK_DEAD_ABOVERING: ++ return GDK_dead_abovering; ++ case VK_DEAD_DOUBLEACUTE: ++ return GDK_dead_doubleacute; ++ case VK_DEAD_CARON: ++ return GDK_dead_caron; ++ case VK_DEAD_CEDILLA: ++ return GDK_dead_cedilla; ++ case VK_DEAD_OGONEK: ++ return GDK_dead_ogonek; ++ case VK_DEAD_IOTA: ++ return GDK_dead_iota; ++ case VK_DEAD_VOICED_SOUND: ++ return GDK_dead_voiced_sound; ++ case VK_DEAD_SEMIVOICED_SOUND: ++ return GDK_dead_semivoiced_sound; ++ case VK_AMPERSAND: ++ return GDK_ampersand; ++ case VK_ASTERISK: ++ return GDK_asterisk; ++ case VK_QUOTEDBL: ++ return GDK_quotedbl; ++ case VK_LESS: ++ return GDK_less; ++ case VK_GREATER: ++ return GDK_greater; ++ case VK_BRACELEFT: ++ return GDK_braceleft; ++ case VK_BRACERIGHT: ++ return GDK_braceright; ++ case VK_AT: ++ return GDK_at; ++ case VK_COLON: ++ return GDK_colon; ++ case VK_CIRCUMFLEX: ++ return GDK_asciicircum; ++ case VK_DOLLAR: ++ return GDK_dollar; ++ case VK_EURO_SIGN: ++ return GDK_EuroSign; ++ case VK_EXCLAMATION_MARK: ++ return GDK_exclam; ++ case VK_INVERTED_EXCLAMATION_MARK: ++ return GDK_exclamdown; ++ case VK_LEFT_PARENTHESIS: ++ return GDK_parenleft; ++ case VK_NUMBER_SIGN: ++ return GDK_numbersign; ++ case VK_PLUS: ++ return GDK_plus; ++ case VK_RIGHT_PARENTHESIS: ++ return GDK_parenright; ++ case VK_UNDERSCORE: ++ return GDK_underscore; ++ /* ++ case VK_FINAL: ++ case VK_CONVERT: ++ case VK_NONCONVERT: ++ case VK_ACCEPT: ++ */ ++ case VK_MODECHANGE: ++ return GDK_Mode_switch; ++ /* ++ case VK_KANA: ++ */ ++ case VK_KANJI: ++ return GDK_Kanji; ++ /* ++ case VK_ALPHANUMERIC: ++ */ ++ case VK_KATAKANA: ++ return GDK_Katakana; ++ case VK_HIRAGANA: ++ return GDK_Hiragana; ++ /* ++ case VK_FULL_WIDTH: ++ case VK_HALF_WIDTH: ++ case VK_ROMAN_CHARACTERS: ++ case VK_ALL_CANDIDATES: ++ */ ++ case VK_PREVIOUS_CANDIDATE: ++ return GDK_PreviousCandidate; ++ case VK_CODE_INPUT: ++ return GDK_Codeinput; ++ /* ++ case VK_JAPANESE_KATAKANA: ++ case VK_JAPANESE_HIRAGANA: ++ case VK_JAPANESE_ROMAN: ++ */ ++ case VK_KANA_LOCK: ++ return GDK_Kana_Lock; ++ /* ++ case VK_INPUT_METHOD_ON_OFF: ++ case VK_CUT: ++ case VK_COPY: ++ case VK_PASTE: ++ case VK_UNDO: ++ case VK_AGAIN: ++ case VK_FIND: ++ case VK_PROPS: ++ case VK_STOP: ++ case VK_COMPOSE: ++ case VK_ALT_GRAPH: ++ */ ++ default: ++ return GDK_VoidSymbol; ++ } + } + ++ + JNIEXPORT void JNICALL + Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetCursor + (JNIEnv *env, jobject obj, jint type) +@@ -128,7 +472,65 @@ + gdk_threads_leave (); + } + +-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_requestFocus ++JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetParent ++ (JNIEnv *env, jobject obj, jobject parent) ++{ ++ void *ptr; ++ void *parent_ptr; ++ GtkWidget *widget; ++ GtkWidget *parent_widget; ++ ++ ptr = NSA_GET_PTR (env, obj); ++ parent_ptr = NSA_GET_PTR (env, parent); ++ ++ gdk_threads_enter (); ++ ++ widget = GTK_WIDGET (ptr); ++ parent_widget = GTK_WIDGET (parent_ptr); ++ ++ if (GTK_IS_WINDOW (parent_widget)) ++ { ++ GList *children = gtk_container_children ++ (GTK_CONTAINER (GTK_BIN (parent_widget)->child)); ++ ++ if (GTK_IS_MENU_BAR (children->data)) ++ gtk_layout_put (GTK_LAYOUT (children->next->data), widget, 0, 0); ++ else ++ gtk_layout_put (GTK_LAYOUT (children->data), widget, 0, 0); ++ } ++ else ++ if (GTK_IS_SCROLLED_WINDOW (parent_widget)) ++ { ++ gtk_scrolled_window_add_with_viewport ++ (GTK_SCROLLED_WINDOW (parent_widget), widget); ++ gtk_viewport_set_shadow_type (GTK_VIEWPORT (widget->parent), ++ GTK_SHADOW_NONE); ++ ++ } ++ else ++ gtk_layout_put (GTK_LAYOUT (parent_widget), widget, 0, 0); ++ ++ gdk_threads_leave (); ++} ++ ++JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetSensitive ++ (JNIEnv *env, jobject obj, jboolean sensitive) ++{ ++ void *ptr; ++ ++ ptr = NSA_GET_PTR (env, obj); ++ ++ gdk_threads_enter (); ++ ++ gtk_widget_set_sensitive (GTK_WIDGET (ptr), sensitive); ++ ++ gdk_threads_leave (); ++} ++ ++JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetRequestFocus + (JNIEnv *env, jobject obj) + { + void *ptr; +@@ -141,6 +543,126 @@ + } + + /* ++ * Translate a Java KeyEvent object into a GdkEventKey event, then ++ * pass it to the GTK main loop for processing. ++ */ ++JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetDispatchKeyEvent ++ (JNIEnv *env, jobject obj, jint id, jlong when, jint mods, ++ jint keyCode, jint keyLocation) ++{ ++ void *ptr; ++ GdkEvent *event = NULL; ++ GdkKeymapKey *keymap_keys = NULL; ++ gint n_keys = 0; ++ guint lookup_keyval = 0; ++ ++ ptr = NSA_GET_PTR (env, obj); ++ ++ gdk_threads_enter (); ++ ++ if (id == AWT_KEY_PRESSED) ++ event = gdk_event_new (GDK_KEY_PRESS); ++ else if (id == AWT_KEY_RELEASED) ++ event = gdk_event_new (GDK_KEY_RELEASE); ++ else ++ { ++ gdk_threads_leave (); ++ /* Don't send AWT KEY_TYPED events to GTK. */ ++ return; ++ } ++ ++ if (GTK_IS_BUTTON (ptr)) ++ event->key.window = GTK_BUTTON (ptr)->event_window; ++ else if (GTK_IS_SCROLLED_WINDOW (ptr)) ++ event->key.window = GTK_WIDGET (GTK_SCROLLED_WINDOW (ptr)->container.child)->window; ++ else ++ event->key.window = GTK_WIDGET (ptr)->window; ++ ++ event->key.send_event = 0; ++ event->key.time = (guint32) when; ++ ++ if (mods & AWT_SHIFT_DOWN_MASK) ++ event->key.state |= GDK_SHIFT_MASK; ++ if (mods & AWT_CTRL_DOWN_MASK) ++ event->key.state |= GDK_CONTROL_MASK; ++ if (mods & AWT_ALT_DOWN_MASK) ++ event->key.state |= GDK_MOD1_MASK; ++ ++ /* This hack is needed because the AWT has no notion of num lock. ++ It infers numlock state from the only Java virtual keys that are ++ affected by it. */ ++ if (keyCode == VK_NUMPAD9 ++ || keyCode == VK_NUMPAD8 ++ || keyCode == VK_NUMPAD7 ++ || keyCode == VK_NUMPAD6 ++ || keyCode == VK_NUMPAD5 ++ || keyCode == VK_NUMPAD4 ++ || keyCode == VK_NUMPAD3 ++ || keyCode == VK_NUMPAD2 ++ || keyCode == VK_NUMPAD1 ++ || keyCode == VK_NUMPAD0 ++ || keyCode == VK_DECIMAL) ++ event->key.state |= GDK_MOD2_MASK; ++ ++ /* These values don't need to be filled in since GTK doesn't use ++ them. */ ++ event->key.length = 0; ++ event->key.string = NULL; ++ ++ lookup_keyval = awt_keycode_to_keysym (keyCode, keyLocation); ++ ++ if (!gdk_keymap_get_entries_for_keyval (gdk_keymap_get_default (), ++ lookup_keyval, ++ &keymap_keys, ++ &n_keys)) ++ { ++ /* No matching keymap entry was found. */ ++ g_printerr ("No matching keymap entries were found\n"); ++ gdk_threads_leave (); ++ return; ++ } ++ ++ /* Note: if n_keys > 1 then there are multiple hardware keycodes ++ that translate to lookup_keyval. We arbitrarily choose the first ++ hardware keycode from the list returned by ++ gdk_keymap_get_entries_for_keyval. */ ++ ++ event->key.hardware_keycode = keymap_keys[0].keycode; ++ event->key.group = keymap_keys[0].group; ++ ++ g_free (keymap_keys); ++ ++ if (!gdk_keymap_translate_keyboard_state (gdk_keymap_get_default (), ++ event->key.hardware_keycode, ++ event->key.state, ++ event->key.group, ++ &event->key.keyval, ++ NULL, NULL, NULL)) ++ { ++ /* No matching keyval was found. */ ++ g_printerr ("No matching keyval was found\n"); ++ gdk_threads_leave (); ++ return; ++ } ++ ++ /* keyevent = (GdkEventKey *) event; */ ++ /* g_printerr ("generated event: sent: %d time: %d state: %d keyval: %d length: %d string: %s hardware_keycode: %d group: %d\n", keyevent->send_event, keyevent->time, keyevent->state, keyevent->keyval, keyevent->length, keyevent->string, keyevent->hardware_keycode, keyevent->group); */ ++ ++ /* We already received the original key event on the window itself, ++ so we don't want to resend it. */ ++ if (!GTK_IS_WINDOW (ptr)) ++ { ++ if (GTK_IS_SCROLLED_WINDOW (ptr)) ++ gtk_widget_event (GTK_WIDGET (GTK_SCROLLED_WINDOW (ptr)->container.child), event); ++ else ++ gtk_widget_event (GTK_WIDGET (ptr), event); ++ } ++ ++ gdk_threads_leave (); ++} ++ ++/* + * Find the origin of a widget's window. + */ + JNIEXPORT void JNICALL +@@ -215,38 +737,39 @@ + + gdk_threads_enter (); + +- /* Save the widget's current size request. */ +- gtk_widget_size_request (GTK_WIDGET (ptr), ¤t_req); ++ /* Widgets that extend GtkWindow such as GtkFileChooserDialog may have ++ a default size. These values seem more useful then the natural ++ requisition values, particularly for GtkFileChooserDialog. */ ++ if (GTK_IS_WINDOW (ptr)) ++ { ++ gint width, height; ++ gtk_window_get_default_size (GTK_WINDOW (ptr), &width, &height); + +- /* Get the widget's "natural" size request. */ +- gtk_widget_set_size_request (GTK_WIDGET (ptr), -1, -1); +- gtk_widget_size_request (GTK_WIDGET (ptr), &natural_req); +- +- /* Reset the widget's size request. */ +- gtk_widget_set_size_request (GTK_WIDGET (ptr), +- current_req.width, current_req.height); ++ dims[0] = width; ++ dims[1] = height; ++ } ++ else ++ { ++ /* Save the widget's current size request. */ ++ gtk_widget_size_request (GTK_WIDGET (ptr), ¤t_req); + +- dims[0] = natural_req.width; +- dims[1] = natural_req.height; ++ /* Get the widget's "natural" size request. */ ++ gtk_widget_set_size_request (GTK_WIDGET (ptr), -1, -1); ++ gtk_widget_size_request (GTK_WIDGET (ptr), &natural_req); ++ ++ /* Reset the widget's size request. */ ++ gtk_widget_set_size_request (GTK_WIDGET (ptr), ++ current_req.width, current_req.height); ++ ++ dims[0] = natural_req.width; ++ dims[1] = natural_req.height; ++ } + + gdk_threads_leave (); + + (*env)->ReleaseIntArrayElements (env, jdims, dims, 0); + } + +-JNIEXPORT void JNICALL +-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetUsize (JNIEnv *env, +- jobject obj, jint w, jint h) +-{ +- void *ptr; +- +- ptr = NSA_GET_PTR (env, obj); +- +- gdk_threads_enter (); +- gtk_widget_set_usize (GTK_WIDGET (ptr), w, h); +- gdk_threads_leave (); +-} +- + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_setNativeBounds + (JNIEnv *env, jobject obj, jint x, jint y, jint width, jint height) + { +@@ -258,13 +781,17 @@ + gdk_threads_enter (); + + widget = GTK_WIDGET (ptr); ++ ++ /* We assume that -1 is a width or height and not a request for the ++ widget's natural size. */ ++ width = width < 0 ? 0 : width; ++ height = height < 0 ? 0 : height; ++ + if (GTK_IS_VIEWPORT (widget->parent)) +- { +- gtk_widget_set_usize (widget, width, height); +- } ++ gtk_widget_set_size_request (widget, width, height); + else + { +- gtk_widget_set_usize (widget, width, height); ++ gtk_widget_set_size_request (widget, width, height); + gtk_layout_move (GTK_LAYOUT (widget->parent), widget, x, y); + } + +@@ -380,36 +907,66 @@ + gdk_threads_leave (); + } + +-void +-set_visible (GtkWidget *widget, jboolean visible) ++JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkSetFont ++ (JNIEnv *env, jobject obj, jstring name, jint style, jint size) + { +- if (visible) +- gtk_widget_show (widget); +- else +- gtk_widget_hide (widget); ++ const char *font_name; ++ void *ptr; ++ PangoFontDescription *font_desc; ++ ++ ptr = NSA_GET_PTR (env, obj); ++ ++ font_name = (*env)->GetStringUTFChars (env, name, NULL); ++ ++ gdk_threads_enter(); ++ ++ font_desc = pango_font_description_from_string (font_name); ++ pango_font_description_set_size (font_desc, size * dpi_conversion_factor); ++ ++ if (style & AWT_STYLE_BOLD) ++ pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD); ++ ++ if (style & AWT_STYLE_ITALIC) ++ pango_font_description_set_style (font_desc, PANGO_STYLE_OBLIQUE); ++ ++ gtk_widget_modify_font (GTK_WIDGET(ptr), font_desc); ++ ++ pango_font_description_free (font_desc); ++ ++ gdk_threads_leave(); ++ ++ (*env)->ReleaseStringUTFChars (env, name, font_name); + } + +-GtkLayout * +-find_gtk_layout (GtkWidget *parent) ++JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkComponentPeer_show ++ (JNIEnv *env, jobject obj) + { +- if (GTK_IS_WINDOW (parent)) +- { +- GList *children = gtk_container_children +- (GTK_CONTAINER (GTK_BIN (parent)->child)); ++ void *ptr; + +- if (GTK_IS_MENU_BAR (children->data)) +- return GTK_LAYOUT (children->next->data); +- else /* GTK_IS_LAYOUT (children->data) */ +- return GTK_LAYOUT (children->data); +- } ++ ptr = NSA_GET_PTR (env, obj); + +- return NULL; ++ gdk_threads_enter(); ++ gtk_widget_show (GTK_WIDGET (ptr)); ++ gdk_threads_leave(); + } + +-#define WIDGET_CLASS(w) GTK_WIDGET_CLASS (GTK_OBJECT (w)->klass) ++JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkComponentPeer_hide ++ (JNIEnv *env, jobject obj) ++{ ++ void *ptr; ++ ++ ptr = NSA_GET_PTR (env, obj); ++ ++ gdk_threads_enter(); ++ gtk_widget_hide (GTK_WIDGET (ptr)); ++ gdk_threads_leave(); ++} + +-void +-set_parent (GtkWidget *widget, GtkContainer *parent) ++GtkLayout * ++find_gtk_layout (GtkWidget *parent) + { + if (GTK_IS_WINDOW (parent)) + { +@@ -417,32 +974,12 @@ + (GTK_CONTAINER (GTK_BIN (parent)->child)); + + if (GTK_IS_MENU_BAR (children->data)) +- gtk_layout_put (GTK_LAYOUT (children->next->data), widget, 0, 0); ++ return GTK_LAYOUT (children->next->data); + else /* GTK_IS_LAYOUT (children->data) */ +- gtk_layout_put (GTK_LAYOUT (children->data), widget, 0, 0); ++ return GTK_LAYOUT (children->data); + } +- else +- if (GTK_IS_SCROLLED_WINDOW (parent)) +- { +-/* if (WIDGET_CLASS (widget)->set_scroll_adjustments_signal) */ +-/* gtk_container_add (GTK_CONTAINER (parent), widget); */ +-/* else */ +-/* { */ +- gtk_scrolled_window_add_with_viewport +- (GTK_SCROLLED_WINDOW (parent), widget); +- gtk_viewport_set_shadow_type (GTK_VIEWPORT (widget->parent), +- GTK_SHADOW_NONE); +-/* } */ + +- } +-/* gtk_layout_put */ +-/* (GTK_LAYOUT (GTK_BIN (parent)->child), widget, 0, 0); */ +- +-/* if (GTK_IS_SCROLLED_WINDOW (parent)) */ +-/* gtk_layout_put */ +-/* (GTK_LAYOUT (GTK_BIN (GTK_BIN (parent)->child)->child), widget, 0, 0); */ +- else +- gtk_layout_put (GTK_LAYOUT (parent), widget, 0, 0); ++ return NULL; + } + + JNIEXPORT jboolean JNICALL +@@ -476,103 +1013,159 @@ + return retval; + } + +-JNIEXPORT void JNICALL +-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_set__Ljava_lang_String_2Ljava_lang_String_2 +- (JNIEnv *env, jobject obj, jstring jname, jstring jvalue) ++static gboolean ++filter_expose_event_handler (GtkWidget *widget, GdkEvent *event, jobject peer) + { +- const char *name; +- const char *value; +- void *ptr; +- +- ptr = NSA_GET_PTR (env, obj); +- name = (*env)->GetStringUTFChars (env, jname, NULL); +- value = (*env)->GetStringUTFChars (env, jvalue, NULL); +- +- gdk_threads_enter(); +- g_object_set(ptr, name, value, NULL); +- gdk_threads_leave(); +- +- (*env)->ReleaseStringUTFChars (env, jname, name); +- (*env)->ReleaseStringUTFChars (env, jvalue, value); ++ /* ++ * Prevent the default event handler from getting this signal if applicable ++ * FIXME: I came up with these filters by looking for patterns in the unwanted ++ * expose events that are fed back to us from gtk/X. Perhaps there is ++ * a way to prevent them from occuring in the first place. ++ */ ++ if (event->type == GDK_EXPOSE && (!GTK_IS_LAYOUT(widget) ++ || event->any.window != widget->window)) ++ { ++ g_signal_stop_emission_by_name(GTK_OBJECT(widget), "event"); ++ return FALSE; ++ } ++ else ++ { ++ /* There may be non-expose events that are triggered while we're ++ painting a heavyweight peer. */ ++ return pre_event_handler(widget, event, peer); ++ } + } + +-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_set__Ljava_lang_String_2Z +- (JNIEnv *env, jobject obj, jstring jname, jboolean value) ++JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_addExposeFilter ++ (JNIEnv *env, jobject obj) + { +- const char *name; +- void *ptr; ++ GtkObject *filterobj; ++ GtkWidget *vbox, *layout; ++ GList *children; ++ void *ptr = NSA_GET_PTR (env, obj); ++ jobject *gref = NSA_GET_GLOBAL_REF (env, obj); ++ gulong hid; + +- ptr = NSA_GET_PTR (env, obj); ++ g_assert (gref); + +- name = (*env)->GetStringUTFChars (env, jname, NULL); ++ gdk_threads_enter (); + +- gdk_threads_enter(); +- g_object_set(ptr, name, value, NULL); +- gdk_threads_leave(); ++ /* GtkFramePeer is built as a GtkLayout inside a GtkVBox inside a GtkWindow. ++ Events go to the GtkLayout layer, so we filter them there. */ ++ if (GTK_IS_WINDOW(ptr)) ++ { ++ children = gtk_container_get_children(GTK_CONTAINER(ptr)); ++ vbox = children->data; ++ g_assert (GTK_IS_VBOX(vbox)); ++ ++ children = gtk_container_get_children(GTK_CONTAINER(vbox)); ++ do ++ { ++ layout = children->data; ++ children = children->next; ++ } ++ while (!GTK_IS_LAYOUT (layout) && children != NULL); ++ g_assert (GTK_IS_LAYOUT(layout)); ++ ++ filterobj = GTK_OBJECT(layout); ++ } ++ else if (GTK_IS_SCROLLED_WINDOW(ptr)) ++ { ++ /* The event will go to the parent GtkLayout. */ ++ filterobj = GTK_OBJECT(GTK_WIDGET(ptr)->parent); ++ } ++ else ++ { ++ filterobj = GTK_OBJECT(ptr); ++ } ++ hid = g_signal_handler_find(filterobj, ++ G_SIGNAL_MATCH_FUNC, ++ 0, 0, NULL, *pre_event_handler, NULL); ++ if (hid > 0) ++ { ++ g_signal_handler_block(filterobj, hid); ++ } ++ g_signal_connect( filterobj, "event", ++ G_CALLBACK(filter_expose_event_handler), *gref); + +- (*env)->ReleaseStringUTFChars (env, jname, name); ++ gdk_threads_leave (); + } + +-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_set__Ljava_lang_String_2I +- (JNIEnv *env, jobject obj, jstring jname, jint value) ++JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_removeExposeFilter ++ (JNIEnv *env, jobject obj) + { +- const char *name; +- void *ptr; ++ GtkObject *filterobj; ++ GtkWidget *vbox, *layout; ++ GList *children; ++ void *ptr = NSA_GET_PTR (env, obj); ++ jobject *gref = NSA_GET_GLOBAL_REF (env, obj); ++ gulong hid; + +- ptr = NSA_GET_PTR (env, obj); +- name = (*env)->GetStringUTFChars (env, jname, NULL); ++ g_assert (gref); + +- gdk_threads_enter(); +- g_object_set(ptr, name, value, NULL); +- gdk_threads_leave(); ++ gdk_threads_enter (); + +- (*env)->ReleaseStringUTFChars (env, jname, name); +-} ++ /* GtkFramePeer is built as a GtkLayout inside a GtkVBox inside a GtkWindow. ++ Events go to the GtkLayout layer, so we filter them there. */ ++ if (GTK_IS_WINDOW(ptr)) ++ { ++ children = gtk_container_get_children(GTK_CONTAINER(ptr)); ++ vbox = children->data; ++ g_assert (GTK_IS_VBOX(vbox)); + +-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_set__Ljava_lang_String_2F +- (JNIEnv *env, jobject obj, jstring jname, jfloat value) +-{ +- const char *name; +- void *ptr; ++ children = gtk_container_get_children(GTK_CONTAINER(vbox)); ++ do ++ { ++ layout = children->data; ++ children = children->next; ++ } ++ while (!GTK_IS_LAYOUT (layout) && children != NULL); ++ g_assert (GTK_IS_LAYOUT(layout)); + +- ptr = NSA_GET_PTR (env, obj); +- name = (*env)->GetStringUTFChars (env, jname, NULL); ++ filterobj = GTK_OBJECT(layout); ++ } ++ else if (GTK_IS_SCROLLED_WINDOW(ptr)) ++ { ++ /* The event will go to the parent GtkLayout. */ ++ filterobj = GTK_OBJECT(GTK_WIDGET(ptr)->parent); ++ } ++ else ++ { ++ filterobj = GTK_OBJECT(ptr); ++ } + +- gdk_threads_enter(); +- g_object_set(ptr, name, value, NULL); +- gdk_threads_leave(); ++ g_signal_handlers_disconnect_by_func (filterobj, ++ *filter_expose_event_handler, *gref); ++ hid = g_signal_handler_find(filterobj, ++ G_SIGNAL_MATCH_FUNC, ++ 0, 0, NULL, *pre_event_handler, NULL); ++ if (hid > 0) ++ { ++ g_signal_handler_unblock(filterobj, hid); ++ } + +- (*env)->ReleaseStringUTFChars (env, jname, name); ++ gdk_threads_leave (); + } + +-JNIEXPORT void JNICALL +-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_set__Ljava_lang_String_2Ljava_lang_Object_2 +- (JNIEnv *env, jobject obj1, jstring jname, jobject obj2) ++JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetQueueDrawArea ++ (JNIEnv *env, jobject obj, jint x, jint y, jint width, jint height) + { +- const char *name; +- void *ptr1, *ptr2; ++ GdkRectangle rect; ++ void *ptr; + +- ptr1 = NSA_GET_PTR (env, obj1); +- ptr2 = NSA_GET_PTR (env, obj2); +- +- name = (*env)->GetStringUTFChars (env, jname, NULL); ++ ptr = NSA_GET_PTR (env, obj); + +- /* special case to catch where we need to set the parent */ +- if (!strcmp (name, "parent")) +- { +- gdk_threads_enter (); +- set_parent (GTK_WIDGET (ptr1), GTK_CONTAINER (ptr2)); +- gdk_threads_leave (); ++ rect.x = x + GTK_WIDGET(ptr)->allocation.x; ++ rect.y = y + GTK_WIDGET(ptr)->allocation.y; ++ rect.width = width; ++ rect.height = height; + +- (*env)->ReleaseStringUTFChars (env, jname, name); +- return; +- } ++ gdk_threads_enter (); + +- gdk_threads_enter(); +- g_object_set(ptr1, name, ptr2, NULL); +- gdk_threads_leave(); ++ gdk_window_invalidate_rect (GTK_WIDGET (ptr)->window, &rect, 0); ++ gdk_window_process_all_updates(); + +- (*env)->ReleaseStringUTFChars (env, jname, name); ++ gdk_threads_leave (); + } + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectJObject +@@ -613,6 +1206,12 @@ + g_signal_connect (GTK_OBJECT (ptr), "event", + G_CALLBACK (pre_event_handler), *gref); + ++ g_signal_connect (G_OBJECT (ptr), "focus-in-event", ++ G_CALLBACK (focus_in_cb), *gref); ++ ++ g_signal_connect (G_OBJECT (ptr), "focus-out-event", ++ G_CALLBACK (focus_out_cb), *gref); ++ + gdk_threads_leave (); + } + +@@ -621,7 +1220,9 @@ + { + GtkWidget *fg_color_widget; + +- if (GTK_IS_EVENT_BOX (widget)) ++ if (GTK_IS_EVENT_BOX (widget) ++ || (GTK_IS_BUTTON (widget) ++ && !GTK_IS_OPTION_MENU (widget))) + fg_color_widget = gtk_bin_get_child (GTK_BIN(widget)); + else + fg_color_widget = widget; +@@ -651,3 +1252,26 @@ + return bg_color_widget; + } + ++static gboolean ++focus_in_cb (GtkWidget *widget __attribute((unused)), ++ GdkEventFocus *event __attribute((unused)), ++ jobject peer) ++{ ++ (*gdk_env)->CallVoidMethod (gdk_env, peer, ++ postFocusEventID, ++ AWT_FOCUS_GAINED, ++ JNI_FALSE); ++ return FALSE; ++} ++ ++static gboolean ++focus_out_cb (GtkWidget *widget __attribute((unused)), ++ GdkEventFocus *event __attribute((unused)), ++ jobject peer) ++{ ++ (*gdk_env)->CallVoidMethod (gdk_env, peer, ++ postFocusEventID, ++ AWT_FOCUS_LOST, ++ JNI_FALSE); ++ return FALSE; ++} +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c,v +retrieving revision 1.17 +diff -u -r1.17 gnu_java_awt_peer_gtk_GtkEvents.c +--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c 13 Jan 2004 20:54:46 -0000 1.17 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c 6 Sep 2004 16:36:13 -0000 +@@ -1,5 +1,5 @@ + /* gtkevents.c -- GDK/GTK event handlers +- Copyright (C) 1998, 1999, 2002 Free Software Foundation, Inc. ++ Copyright (C) 1998, 1999, 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -58,11 +58,11 @@ + switch (button) + { + case 1: +- return AWT_BUTTON1_MASK; ++ return AWT_BUTTON1_DOWN_MASK; + case 2: +- return AWT_BUTTON2_MASK; ++ return AWT_BUTTON2_DOWN_MASK; + case 3: +- return AWT_BUTTON3_MASK; ++ return AWT_BUTTON3_DOWN_MASK; + } + + return 0; +@@ -74,11 +74,32 @@ + jint result = 0; + + if (state & GDK_SHIFT_MASK) +- result |= AWT_SHIFT_MASK; ++ result |= AWT_SHIFT_DOWN_MASK; + if (state & GDK_CONTROL_MASK) +- result |= AWT_CTRL_MASK; ++ result |= AWT_CTRL_DOWN_MASK; + if (state & GDK_MOD1_MASK) +- result |= AWT_ALT_MASK; ++ result |= AWT_ALT_DOWN_MASK; ++ ++ return result; ++} ++ ++static jint ++state_to_awt_mods_with_button_states (guint state) ++{ ++ jint result = 0; ++ ++ if (state & GDK_SHIFT_MASK) ++ result |= AWT_SHIFT_DOWN_MASK; ++ if (state & GDK_CONTROL_MASK) ++ result |= AWT_CTRL_DOWN_MASK; ++ if (state & GDK_MOD1_MASK) ++ result |= AWT_ALT_DOWN_MASK; ++ if (state & GDK_BUTTON1_MASK) ++ result |= AWT_BUTTON1_DOWN_MASK; ++ if (state & GDK_BUTTON2_MASK) ++ result |= AWT_BUTTON2_DOWN_MASK; ++ if (state & GDK_BUTTON3_MASK) ++ result |= AWT_BUTTON3_DOWN_MASK; + + return result; + } +@@ -103,29 +124,29 @@ + + if (event->key.keyval == GDK_Shift_L + || event->key.keyval == GDK_Shift_R) +- result |= AWT_SHIFT_MASK; ++ result |= AWT_SHIFT_DOWN_MASK; + else + { + if (state & GDK_SHIFT_MASK) +- result |= AWT_SHIFT_MASK; ++ result |= AWT_SHIFT_DOWN_MASK; + } + + if (event->key.keyval == GDK_Control_L + || event->key.keyval == GDK_Control_R) +- result |= AWT_CTRL_MASK; ++ result |= AWT_CTRL_DOWN_MASK; + else + { + if (state & GDK_CONTROL_MASK) +- result |= AWT_CTRL_MASK; ++ result |= AWT_CTRL_DOWN_MASK; + } + + if (event->key.keyval == GDK_Alt_L + || event->key.keyval == GDK_Alt_R) +- result |= AWT_ALT_MASK; ++ result |= AWT_ALT_DOWN_MASK; + else + { + if (state & GDK_MOD1_MASK) +- result |= AWT_ALT_MASK; ++ result |= AWT_ALT_DOWN_MASK; + } + } + else if (event->type == GDK_KEY_RELEASE) +@@ -136,20 +157,20 @@ + && event->key.keyval != GDK_Shift_R) + { + if (state & GDK_SHIFT_MASK) +- result |= AWT_SHIFT_MASK; ++ result |= AWT_SHIFT_DOWN_MASK; + } + if (event->key.keyval != GDK_Control_L + && event->key.keyval != GDK_Control_R) + { + if (state & GDK_CONTROL_MASK) +- result |= AWT_CTRL_MASK; ++ result |= AWT_CTRL_DOWN_MASK; + } + + if (event->key.keyval != GDK_Alt_L + && event->key.keyval != GDK_Alt_R) + { + if (state & GDK_MOD1_MASK) +- result |= AWT_ALT_MASK; ++ result |= AWT_ALT_DOWN_MASK; + } + } + +@@ -785,31 +806,6 @@ + } + } + +-/* Checks if keyval triggers a KEY_TYPED event on the source widget. +- This function identifies special keyvals that don't trigger +- GtkIMContext "commit" signals, but that do trigger Java KEY_TYPED +- events. */ +-static int +-generates_key_typed_event (GdkEvent *event, GtkWidget *source) +-{ +- guint keyval; +- +- if (!GTK_IS_ENTRY (source) +- && !GTK_IS_TEXT_VIEW (source)) +- return event->key.length ? 1 : 0; +- +- keyval = event->key.keyval; +- +- return (keyval == GDK_Escape +- || keyval == GDK_BackSpace +- || keyval == GDK_Delete +- || keyval == GDK_KP_Delete +- || keyval == GDK_Return +- || keyval == GDK_KP_Enter +- || (keyval == GDK_Tab +- && GTK_IS_TEXT_VIEW(source))) ? 1 : 0; +-} +- + void + awt_event_handler (GdkEvent *event) + { +@@ -830,6 +826,7 @@ + static GdkWindow *button_window = NULL; + static guint button_number = -1; + static jint click_count = 1; ++ static int hasBeenDragged; + + /* If it is not a focus change event, the widget must be realized already. + If not, ignore the event (Gtk+ will do the same). */ +@@ -888,13 +885,14 @@ + postMouseEventID, + AWT_MOUSE_PRESSED, + (jlong)event->button.time, +- state_to_awt_mods (event->button.state) | +- button_to_awt_mods (event->button.button), ++ state_to_awt_mods (event->button.state) ++ | button_to_awt_mods (event->button.button), + (jint)event->button.x, + (jint)event->button.y, + click_count, + (event->button.button == 3) ? JNI_TRUE : + JNI_FALSE); ++ hasBeenDragged = FALSE; + break; + case GDK_BUTTON_RELEASE: + { +@@ -904,17 +902,19 @@ + postMouseEventID, + AWT_MOUSE_RELEASED, + (jlong)event->button.time, +- state_to_awt_mods (event->button.state) | +- button_to_awt_mods (event->button.button), ++ state_to_awt_mods (event->button.state) ++ | button_to_awt_mods (event->button.button), + (jint)event->button.x, + (jint)event->button.y, + click_count, + JNI_FALSE); + +- /* check to see if the release occured in the window it was pressed +- in, and if so, generate an AWT click event */ ++ /* Generate an AWT click event only if the release occured in the ++ window it was pressed in, and the mouse has not been dragged since ++ the last time it was pressed. */ + gdk_window_get_size (event->any.window, &width, &height); +- if (event->button.x >= 0 ++ if (! hasBeenDragged ++ && event->button.x >= 0 + && event->button.y >= 0 + && event->button.x <= width + && event->button.y <= height) +@@ -923,8 +923,8 @@ + postMouseEventID, + AWT_MOUSE_CLICKED, + (jlong)event->button.time, +- state_to_awt_mods (event->button.state) | +- button_to_awt_mods (event->button.button), ++ state_to_awt_mods (event->button.state) ++ | button_to_awt_mods (event->button.button), + (jint)event->button.x, + (jint)event->button.y, + click_count, +@@ -933,15 +933,6 @@ + } + break; + case GDK_MOTION_NOTIFY: +- (*gdk_env)->CallVoidMethod (gdk_env, peer, postMouseEventID, +- AWT_MOUSE_MOVED, +- (jlong)event->motion.time, +- state_to_awt_mods (event->motion.state), +- (jint)event->motion.x, +- (jint)event->motion.y, +- 0, +- JNI_FALSE); +- + if (event->motion.state & (GDK_BUTTON1_MASK + | GDK_BUTTON2_MASK + | GDK_BUTTON3_MASK +@@ -952,30 +943,45 @@ + postMouseEventID, + AWT_MOUSE_DRAGGED, + (jlong)event->motion.time, +- state_to_awt_mods (event->motion.state), ++ state_to_awt_mods_with_button_states (event->motion.state), + (jint)event->motion.x, + (jint)event->motion.y, + 0, + JNI_FALSE); ++ hasBeenDragged = TRUE; + } ++ else ++ (*gdk_env)->CallVoidMethod (gdk_env, peer, postMouseEventID, ++ AWT_MOUSE_MOVED, ++ (jlong)event->motion.time, ++ state_to_awt_mods (event->motion.state), ++ (jint)event->motion.x, ++ (jint)event->motion.y, ++ 0, ++ JNI_FALSE); + break; + case GDK_ENTER_NOTIFY: +- (*gdk_env)->CallVoidMethod (gdk_env, peer, postMouseEventID, +- AWT_MOUSE_ENTERED, +- (jlong)event->crossing.time, +- state_to_awt_mods (event->crossing.state), +- (jint)event->crossing.x, +- (jint)event->crossing.y, +- 0, +- JNI_FALSE); ++ /* We are not interested in enter events that are due to ++ grab/ungrab and not to actually crossing boundaries */ ++ if (event->crossing.mode == GDK_CROSSING_NORMAL) ++ (*gdk_env)->CallVoidMethod (gdk_env, peer, postMouseEventID, ++ AWT_MOUSE_ENTERED, ++ (jlong)event->crossing.time, ++ state_to_awt_mods_with_button_states (event->crossing.state), ++ (jint)event->crossing.x, ++ (jint)event->crossing.y, ++ 0, ++ JNI_FALSE); + break; + case GDK_LEAVE_NOTIFY: ++ /* We are not interested in leave events that are due to ++ grab/ungrab and not to actually crossing boundaries */ + if (event->crossing.mode == GDK_CROSSING_NORMAL) + (*gdk_env)->CallVoidMethod (gdk_env, peer, + postMouseEventID, + AWT_MOUSE_EXITED, + (jlong)event->crossing.time, +- state_to_awt_mods (event->crossing.state), ++ state_to_awt_mods_with_button_states (event->crossing.state), + (jint)event->crossing.x, + (jint)event->crossing.y, + 0, +@@ -983,11 +989,9 @@ + break; + case GDK_CONFIGURE: + { +- /* GtkWidget *widget; +- +- gdk_window_get_user_data (event->any.window, (void **) &widget); */ +- +- if (widget && GTK_WIDGET_TOPLEVEL (widget)) ++ /* Only send configure events to visible top-level windows. */ ++ if (widget && GTK_WIDGET_TOPLEVEL (widget) ++ && GTK_WIDGET_VISIBLE (widget)) + { + /* Configure events are not posted to the AWT event + queue, and as such, the gdk/gtk peer functions will +@@ -1007,112 +1011,70 @@ + break; + case GDK_EXPOSE: + { +- (*gdk_env)->CallVoidMethod (gdk_env, peer, +- postExposeEventID, +- (jint)event->expose.area.x, +- (jint)event->expose.area.y, +- (jint)event->expose.area.width, +- (jint)event->expose.area.height); ++ /* This filters out unwanted feedback expose events from gtk/X ++ when we explictly invalidate and update heavyweight components, ++ thus avoiding an infinite loop. ++ FIXME: I'm not quite sure why we're getting these expose events. ++ Maybe there is a way to avoid them? */ ++ if((event->any.window == widget->window && event->any.send_event) ++ || GTK_IS_LAYOUT(widget)) ++ { ++ (*gdk_env)->CallVoidMethod (gdk_env, peer, ++ postExposeEventID, ++ (jint)event->expose.area.x, ++ (jint)event->expose.area.y, ++ (jint)event->expose.area.width, ++ (jint)event->expose.area.height); ++ } + } + break; ++ + case GDK_FOCUS_CHANGE: + (*gdk_env)->CallVoidMethod (gdk_env, peer, + postFocusEventID, +- (jint) (event->focus_change.in) ? ++ (jint) (event->focus_change.in) ? + AWT_FOCUS_GAINED : AWT_FOCUS_LOST, + JNI_FALSE); + break; + case GDK_KEY_PRESS: +- case GDK_KEY_RELEASE: +- { +- GdkWindow *obj_window; +- jobject *focus_obj_ptr = NULL; +- int generates_key_typed = 0; +- +- /* A widget with a grab will get key events */ +- if (!GTK_IS_WINDOW (widget)) +- focus_obj_ptr = &peer; +- else +- { +- GtkWindow *window; +- +- /* Check if we have an enabled focused widget in this window. +- If not don't handle the event. */ +- window = GTK_WINDOW (widget); +- if (!window->focus_widget +- || !GTK_WIDGET_IS_SENSITIVE (window->focus_widget) +- || !window->focus_widget->window) +- return FALSE; +- +- /* TextArea peers are attached to the scrolled window +- that contains the GtkTextView, not to the text view +- itself. Same for List. */ +- if (GTK_IS_TEXT_VIEW (window->focus_widget) +- || GTK_IS_CLIST (window->focus_widget)) +- { +- obj_window = gtk_widget_get_parent (window->focus_widget)->window; +- } +- else if (GTK_IS_BUTTON (window->focus_widget)) +- /* GtkButton events go to the "event_window" and this is what +- we registered when the button was created. */ +- obj_window = GTK_BUTTON (window->focus_widget)->event_window; +- else +- obj_window = window->focus_widget->window; +- +- gdk_property_get (obj_window, +- gdk_atom_intern ("_GNU_GTKAWT_ADDR", FALSE), +- gdk_atom_intern ("CARDINAL", FALSE), +- 0, +- sizeof (jobject), +- FALSE, +- NULL, +- NULL, +- NULL, +- (guchar **)&focus_obj_ptr); +- +- /* If the window has no jobject attached we can't send anything */ +- if (!focus_obj_ptr) +- return FALSE; +- +- /* Should we generate an AWT_KEY_TYPED event? */ +- generates_key_typed = generates_key_typed_event (event, window->focus_widget); +- } ++ if (GTK_IS_WINDOW (widget)) ++ { ++ /* GdkEventKey *keyevent = (GdkEventKey *) event; */ ++ /* g_printerr ("key press event: sent: %d time: %d state: %d keyval: %d length: %d string: %s hardware_keycode: %d group: %d\n", keyevent->send_event, keyevent->time, keyevent->state, keyevent->keyval, keyevent->length, keyevent->string, keyevent->hardware_keycode, keyevent->group); */ + +- if (event->type == GDK_KEY_PRESS) +- { +- (*gdk_env)->CallVoidMethod (gdk_env, *focus_obj_ptr, +- postKeyEventID, +- (jint) AWT_KEY_PRESSED, +- (jlong) event->key.time, ++ (*gdk_env)->CallVoidMethod (gdk_env, peer, ++ postKeyEventID, ++ (jint) AWT_KEY_PRESSED, ++ (jlong) event->key.time, + keyevent_state_to_awt_mods (event), + keysym_to_awt_keycode (event), + keyevent_to_awt_keychar (event), + keysym_to_awt_keylocation (event)); +- +- if (generates_key_typed) +- { +- (*gdk_env)->CallVoidMethod (gdk_env, *focus_obj_ptr, +- postKeyEventID, +- (jint) AWT_KEY_TYPED, +- (jlong) event->key.time, +- state_to_awt_mods (event->key.state), +- VK_UNDEFINED, +- keyevent_to_awt_keychar (event), +- AWT_KEY_LOCATION_UNKNOWN); +- } ++ /* FIXME: generation of key typed events needs to be moved ++ to GtkComponentPeer.postKeyEvent. If the key in a key ++ press event is not an "action" key ++ (KeyEvent.isActionKey) and is not a modifier key, then ++ it should generate a key typed event. */ ++ return TRUE; + } +- else /* GDK_KEY_RELEASE */ +- { +- (*gdk_env)->CallVoidMethod (gdk_env, *focus_obj_ptr, +- postKeyEventID, +- (jint) AWT_KEY_RELEASED, +- (jlong) event->key.time, +- keyevent_state_to_awt_mods (event), +- keysym_to_awt_keycode (event), ++ else ++ return FALSE; ++ break; ++ case GDK_KEY_RELEASE: ++ if (GTK_IS_WINDOW (widget)) ++ { ++ (*gdk_env)->CallVoidMethod (gdk_env, peer, ++ postKeyEventID, ++ (jint) AWT_KEY_RELEASED, ++ (jlong) event->key.time, ++ keyevent_state_to_awt_mods (event), ++ keysym_to_awt_keycode (event), + keyevent_to_awt_keychar (event), + keysym_to_awt_keylocation (event)); +- } +- } ++ return TRUE; ++ } ++ else ++ return FALSE; + break; + default: + break; +@@ -1141,7 +1103,6 @@ + | GDK_KEY_PRESS_MASK + | GDK_FOCUS_CHANGE_MASK); + +- // g_print("storing obj %p property on window %p\n", obj, window); + gdk_property_change (window, + addr_atom, + type_atom, +@@ -1156,10 +1117,8 @@ + { + va_list ap; + jobject *obj; +- //void *ptr = NSA_GET_PTR (env, peer_obj); + + obj = NSA_GET_GLOBAL_REF (env, peer_obj); +- //g_print("Connection obj %s\n", gtk_widget_get_name (GTK_WIDGET (ptr))); + g_assert (obj); + + va_start (ap, nwindows); +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c,v +retrieving revision 1.4 +diff -u -r1.4 gnu_java_awt_peer_gtk_GtkFileDialogPeer.c +--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c 8 Jan 2004 21:12:25 -0000 1.4 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c 6 Sep 2004 16:36:13 -0000 +@@ -1,5 +1,5 @@ + /* gtkfiledialogpeer.c -- Native implementation of GtkFileDialogPeer +- Copyright (C) 1998, 1999, 2002 Free Software Foundation, Inc. ++ Copyright (C) 1998, 1999, 2002, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -40,13 +40,9 @@ + #include "gnu_java_awt_peer_gtk_GtkComponentPeer.h" + #include "gnu_java_awt_peer_gtk_GtkFileDialogPeer.h" + +-static void window_closed (GtkDialog *dialog, ++static void handle_response (GtkDialog *dialog, + gint responseId, + jobject peer_obj); +-static void ok_clicked (GtkButton *button, +- jobject peer_obj); +-static void cancel_clicked (GtkButton *button, +- jobject peer_obj); + + /* + * Make a new file selection dialog +@@ -54,16 +50,28 @@ + + JNIEXPORT void JNICALL + Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_create +- (JNIEnv *env, jobject obj) ++ (JNIEnv *env, jobject obj, jobject parent) + { ++ void *parentp; + gpointer widget; + + /* Create global reference and save it for future use */ + NSA_SET_GLOBAL_REF (env, obj); + ++ parentp = NSA_GET_PTR(env, parent); ++ + gdk_threads_enter (); + +- widget = gtk_file_selection_new (""); ++ widget = gtk_file_chooser_dialog_new("", ++ GTK_WINDOW(parentp), ++ GTK_FILE_CHOOSER_ACTION_OPEN, ++ GTK_STOCK_OK, GTK_RESPONSE_OK, ++ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, ++ NULL); ++ ++ /* GtkFileChooser doesn't show hidden files by default. */ ++ g_object_set(GTK_FILE_CHOOSER(widget), "show_hidden", TRUE); ++ + /* GtkFileSelect is not modal by default */ + gtk_window_set_modal (GTK_WINDOW (widget), TRUE); + +@@ -103,19 +111,9 @@ + + gtk_widget_realize (GTK_WIDGET (ptr)); + +- /* connect buttons to handlers */ +- + g_signal_connect (G_OBJECT (GTK_DIALOG (ptr)), + "response", +- GTK_SIGNAL_FUNC (window_closed), *gref); +- +- g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (ptr)->ok_button), +- "clicked", +- GTK_SIGNAL_FUNC (ok_clicked), *gref); +- +- g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (ptr)->cancel_button), +- "clicked", +- GTK_SIGNAL_FUNC (cancel_clicked), *gref); ++ GTK_SIGNAL_FUNC (handle_response), *gref); + + gdk_threads_leave (); + +@@ -123,120 +121,171 @@ + Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectSignals (env, obj); + } + +-/* +- * Set the filename in the file selection dialog. +- */ +- +-JNIEXPORT void JNICALL +-Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeSetFile +- (JNIEnv *env, jobject obj, jstring filename) ++JNIEXPORT jstring JNICALL ++Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeGetDirectory ++ (JNIEnv *env, jobject obj) + { + void *ptr; + const char *str; + + ptr = NSA_GET_PTR (env, obj); + +- str = (*env)->GetStringUTFChars (env, filename, 0); +- + gdk_threads_enter (); + +- gtk_file_selection_set_filename (GTK_FILE_SELECTION (ptr), str); ++ str = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER(ptr)); + + gdk_threads_leave (); + +- (*env)->ReleaseStringUTFChars (env, filename, str); ++ return (*env)->NewStringUTF(env, str); + } + +-static void +-window_closed (GtkDialog *dialog __attribute__((unused)), +- gint responseId, +- jobject peer_obj) +-{ +- static int isIDSet = 0; +- static jmethodID disposeID; +- void *ptr; + +- // We only need this for the case when the user closed the window +- if (responseId != GTK_RESPONSE_DELETE_EVENT) +- return; ++/* This function interfaces with the Java callback method of the same name. ++ This function extracts the filename from the GtkFileFilterInfo object, ++ and passes it to the Java method. The Java method will call the filter's ++ accept() method and will give back the return value. */ ++gboolean filenameFilterCallback (const GtkFileFilterInfo *filter_info, ++ gpointer obj) ++{ ++ gchar* dirname; ++ jclass cx; ++ jmethodID id; ++ jstring *filename; ++ gboolean accepted; ++ ++ cx = (*gdk_env)->GetObjectClass (gdk_env, (jobject) obj); ++ id = (*gdk_env)->GetMethodID (gdk_env, cx, "filenameFilterCallback", ++ "(Ljava/lang/String;)Z"); + +- ptr = NSA_GET_PTR (gdk_env, peer_obj); ++ filename = (*gdk_env)->NewStringUTF(gdk_env, filter_info->filename); + +- if (!isIDSet) ++ gdk_threads_leave(); ++ accepted = (*gdk_env)->CallBooleanMethod(gdk_env, obj, id, filename); ++ gdk_threads_enter(); ++ ++ return accepted; ++} ++ ++JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeSetFilenameFilter ++ (JNIEnv *env, jobject obj, jobject filter_obj) + { +- jclass cx = (*gdk_env)->GetObjectClass (gdk_env, peer_obj); +- disposeID = (*gdk_env)->GetMethodID (gdk_env, cx, "gtkDisposeFileDialog", "()V"); +- isIDSet = 1; ++ void *ptr; ++ GtkFileFilter *filter; ++ ++ ptr = NSA_GET_PTR (env, obj); ++ ++ gdk_threads_enter (); ++ ++ filter = gtk_file_filter_new(); ++ gtk_file_filter_add_custom(filter, ++ GTK_FILE_FILTER_FILENAME, ++ G_CALLBACK(filenameFilterCallback), ++ obj, ++ NULL); ++ ++ gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(ptr), filter); ++ ++ gdk_threads_leave (); + } + ++JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeSetDirectory ++ (JNIEnv *env, jobject obj, jstring directory) ++{ ++ void *ptr; ++ const char *str; ++ ++ ptr = NSA_GET_PTR (env, obj); ++ ++ str = (*env)->GetStringUTFChars (env, directory, 0); ++ ++ gdk_threads_enter (); ++ gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER(ptr), str); + gdk_threads_leave (); + +- /* We can dispose of the dialog now (and unblock show) */ +- (*gdk_env)->CallVoidMethod (gdk_env, peer_obj, disposeID); ++ (*env)->ReleaseStringUTFChars (env, directory, str); ++} ++ ++JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeSetFile ++ (JNIEnv *env, jobject obj, jstring filename) ++{ ++ void *ptr; ++ const char *str; ++ ++ ptr = NSA_GET_PTR (env, obj); ++ ++ str = (*env)->GetStringUTFChars (env, filename, 0); + + gdk_threads_enter (); ++ gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (ptr), str); ++ gdk_threads_leave (); ++ ++ (*env)->ReleaseStringUTFChars (env, filename, str); + } + + static void +-ok_clicked (GtkButton *button __attribute__((unused)), ++handle_response (GtkDialog *dialog __attribute__((unused)), ++ gint responseId, + jobject peer_obj) + { ++ static int isDisposeIDSet = 0; + static int isIDSet = 0; + static jmethodID gtkSetFilenameID; + static jmethodID hideID; ++ static jmethodID disposeID; + void *ptr; + G_CONST_RETURN gchar *fileName; ++ jstring str_fileName; + +- ptr = NSA_GET_PTR (gdk_env, peer_obj); ++ /* We only need this for the case when the user closed the window, ++ or clicked ok or cancel. */ ++ if (responseId != GTK_RESPONSE_DELETE_EVENT ++ && responseId != GTK_RESPONSE_OK ++ && responseId != GTK_RESPONSE_CANCEL) ++ return; + +- fileName = gtk_file_selection_get_filename ( +- GTK_FILE_SELECTION (GTK_WIDGET (ptr))); ++ ptr = NSA_GET_PTR (gdk_env, peer_obj); + +- if (!isIDSet) ++ if (responseId == GTK_RESPONSE_DELETE_EVENT) ++ { ++ if (!isDisposeIDSet) + { + jclass cx = (*gdk_env)->GetObjectClass (gdk_env, peer_obj); +- hideID = (*gdk_env)->GetMethodID (gdk_env, cx, "gtkHideFileDialog", "()V"); +- gtkSetFilenameID = (*gdk_env)->GetMethodID (gdk_env, cx, +- "gtkSetFilename", "(Ljava.lang.String;)V"); +- isIDSet = 1; ++ disposeID = (*gdk_env)->GetMethodID (gdk_env, cx, "gtkDisposeFileDialog", "()V"); ++ isDisposeIDSet = 1; + } + + gdk_threads_leave (); + +- /* Set the Java object field 'file' with this value. */ +- jstring str_fileName = (*gdk_env)->NewStringUTF (gdk_env, fileName); +- (*gdk_env)->CallVoidMethod (gdk_env, peer_obj, gtkSetFilenameID, str_fileName); +- +- /* We can hide the dialog now (and unblock show) */ +- (*gdk_env)->CallVoidMethod (gdk_env, peer_obj, hideID); ++ /* We can dispose of the dialog now (and unblock show) */ ++ (*gdk_env)->CallVoidMethod (gdk_env, peer_obj, disposeID); + + gdk_threads_enter (); ++ return; + } + +-static void +-cancel_clicked (GtkButton *button __attribute__((unused)), +- jobject peer_obj) +-{ +- static int isIDSet = 0; +- static jmethodID gtkSetFilenameID; +- static jmethodID hideID; +- void *ptr; +- +- ptr = NSA_GET_PTR (gdk_env, peer_obj); ++ if (responseId == GTK_RESPONSE_OK) { ++ fileName = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (GTK_WIDGET (ptr))); ++ str_fileName = (*gdk_env)->NewStringUTF (gdk_env, fileName); ++ } else if (responseId == GTK_RESPONSE_CANCEL) { ++ str_fileName = NULL; ++ } + + if (!isIDSet) + { + jclass cx = (*gdk_env)->GetObjectClass (gdk_env, peer_obj); + hideID = (*gdk_env)->GetMethodID (gdk_env, cx, "gtkHideFileDialog", "()V"); + gtkSetFilenameID = (*gdk_env)->GetMethodID (gdk_env, cx, +- "gtkSetFilename", "(Ljava.lang.String;)V"); ++ "gtkSetFilename", "(Ljava/lang/String;)V"); + isIDSet = 1; + } + + gdk_threads_leave (); + +- /* Set the Java object field 'file' with the null value. */ +- (*gdk_env)->CallVoidMethod (gdk_env, peer_obj, gtkSetFilenameID, NULL); ++ /* Set the Java object field 'file' with this value. */ ++ (*gdk_env)->CallVoidMethod (gdk_env, peer_obj, gtkSetFilenameID, str_fileName); + + /* We can hide the dialog now (and unblock show) */ + (*gdk_env)->CallVoidMethod (gdk_env, peer_obj, hideID); +@@ -244,4 +293,3 @@ + gdk_threads_enter (); + } + +- +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c +=================================================================== +RCS file: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c +diff -N jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c 6 Sep 2004 16:36:13 -0000 +@@ -0,0 +1,59 @@ ++/* gtkgenericpeer.c -- Native implementation of GtkGenericPeer ++ Copyright (C) 1998, 1999, 2002, 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++ ++#include "gtkpeer.h" ++#include "gnu_java_awt_peer_gtk_GtkGenericPeer.h" ++ ++JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkGenericPeer_dispose ++ (JNIEnv *env, jobject obj) ++{ ++ void *ptr; ++ ++ /* Remove entries from state tables */ ++ NSA_DEL_GLOBAL_REF (env, obj); ++ ptr = NSA_DEL_PTR (env, obj); ++ ++ gdk_threads_enter (); ++ ++ /* For now the native state for any object must be a widget. ++ However, a subclass could override dispose() if required. */ ++ gtk_widget_destroy (GTK_WIDGET (ptr)); ++ ++ gdk_threads_leave (); ++} ++ +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.c,v +retrieving revision 1.2 +diff -u -r1.2 gnu_java_awt_peer_gtk_GtkImagePainter.c +--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.c 8 Oct 2003 15:49:33 -0000 1.2 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.c 6 Sep 2004 16:36:13 -0000 +@@ -58,6 +58,9 @@ + + g = (struct graphics *) NSA_GET_PTR (env, gc_obj); + ++ if (!jpixels) ++ return; ++ + elems = (*env)->GetIntArrayElements (env, jpixels, NULL); + num_pixels = (*env)->GetArrayLength (env, jpixels); + +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c,v +retrieving revision 1.6 +diff -u -r1.6 gnu_java_awt_peer_gtk_GtkLabelPeer.c +--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c 13 Dec 2003 01:15:47 -0000 1.6 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c 6 Sep 2004 16:36:13 -0000 +@@ -54,7 +54,7 @@ + str = (*env)->GetStringUTFChars (env, text, 0); + + gdk_threads_enter (); +- ++ + ebox = gtk_event_box_new (); + ebox_container = GTK_CONTAINER (ebox); + label = gtk_label_new (str); +@@ -70,6 +70,44 @@ + } + + JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkLabelPeer_gtkSetFont ++ (JNIEnv *env, jobject obj, jstring name, jint style, jint size) ++{ ++ const char *font_name; ++ void *ptr; ++ GtkWidget *label; ++ PangoFontDescription *font_desc; ++ ++ ptr = NSA_GET_PTR (env, obj); ++ ++ font_name = (*env)->GetStringUTFChars (env, name, NULL); ++ ++ gdk_threads_enter (); ++ ++ label = gtk_bin_get_child (GTK_BIN (ptr)); ++ ++ if (!label) ++ return; ++ ++ font_desc = pango_font_description_from_string (font_name); ++ pango_font_description_set_size (font_desc, size * dpi_conversion_factor); ++ ++ if (style & AWT_STYLE_BOLD) ++ pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD); ++ ++ if (style & AWT_STYLE_ITALIC) ++ pango_font_description_set_style (font_desc, PANGO_STYLE_OBLIQUE); ++ ++ gtk_widget_modify_font (GTK_WIDGET (label), font_desc); ++ ++ pango_font_description_free (font_desc); ++ ++ gdk_threads_leave (); ++ ++ (*env)->ReleaseStringUTFChars (env, name, font_name); ++} ++ ++JNIEXPORT void JNICALL + Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setText + (JNIEnv *env, jobject obj, jstring text) + { +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c,v +retrieving revision 1.7 +diff -u -r1.7 gnu_java_awt_peer_gtk_GtkListPeer.c +--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c 13 Dec 2003 01:15:47 -0000 1.7 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c 6 Sep 2004 16:36:13 -0000 +@@ -1,76 +1,116 @@ + /* gtklistpeer.c -- Native implementation of GtkListPeer +- Copyright (C) 1998, 1999 Free Software Foundation, Inc. ++ Copyright (C) 1998, 1999, 2004 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., 59 Temple Place, Suite 330, Boston, MA +-02111-1307 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. */ ++ 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., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. ++ ++ Linking this library statically or dynamically with other modules is ++ making a combined work based on this library. Thus, the terms and ++ conditions of the GNU General Public License cover the whole ++ combination. ++ ++ As a special exception, the copyright holders of this library give you ++ permission to link this library with independent modules to produce an ++ executable, regardless of the license terms of these independent ++ modules, and to copy and distribute the resulting executable under ++ terms of your choice, provided that you also meet, for each linked ++ independent module, the terms and conditions of the license of that ++ module. An independent module is a module which is not derived from ++ or based on this library. If you modify this library, you may extend ++ this exception to your version of the library, but you are not ++ obligated to do so. If you do not wish to do so, delete this ++ exception statement from your version. */ + + #include "gtkpeer.h" +-#include "gnu_java_awt_peer_gtk_GtkComponentPeer.h" + #include "gnu_java_awt_peer_gtk_GtkListPeer.h" + +-static void item_select (GtkCList *list __attribute__((unused)), +- int row, int col __attribute__((unused)), +- GdkEventButton *event __attribute__((unused)), +- jobject peer_obj); +-static void item_unselect (GtkCList *list __attribute__((unused)), +- int row, +- int col __attribute__((unused)), +- GdkEventButton *event __attribute__((unused)), +- jobject peer_obj); ++enum ++ { ++ COLUMN_STRING, ++ N_COLUMNS ++ }; ++ ++gboolean item_highlighted (GtkTreeSelection *selection, ++ GtkTreeModel *model, ++ GtkTreePath *path, ++ gboolean path_currently_selected, ++ jobject peer); + +-#define CLIST_FROM_SW(obj) (GTK_CLIST(GTK_SCROLLED_WINDOW (obj)->container.child)) + +-JNIEXPORT void JNICALL ++#define TREE_VIEW_FROM_SW(obj) \ ++ (GTK_TREE_VIEW (GTK_SCROLLED_WINDOW (obj)->container.child)) ++ ++JNIEXPORT void JNICALL + Java_gnu_java_awt_peer_gtk_GtkListPeer_create +- (JNIEnv *env, jobject obj) ++ (JNIEnv *env, jobject obj, jint rows) + { +- GtkWidget *list, *sw; ++ GtkWidget *sw; ++ GtkWidget *list; ++ GtkCellRenderer *renderer; ++ GtkTreeViewColumn *column; ++ GtkListStore *list_store; ++ GtkTreeIter iter; ++ GtkRequisition req; ++ gint i; + + /* Create global reference and save it for future use */ + NSA_SET_GLOBAL_REF (env, obj); + + gdk_threads_enter (); +- +- list = gtk_clist_new (1); +- gtk_widget_show (list); ++ ++ list_store = gtk_list_store_new (N_COLUMNS, G_TYPE_STRING); ++ /* Add the number of rows so that we can calculate the tree view's ++ size request. */ ++ for (i = 0; i < rows; i++) ++ { ++ gtk_list_store_append (list_store, &iter); ++ gtk_list_store_set (list_store, &iter, ++ COLUMN_STRING, "", ++ -1); ++ } ++ list = gtk_tree_view_new_with_model (GTK_TREE_MODEL (list_store)); ++ renderer = gtk_cell_renderer_text_new (); ++ column = gtk_tree_view_column_new_with_attributes (NULL, ++ renderer, ++ "text", ++ COLUMN_STRING, ++ NULL); ++ + sw = gtk_scrolled_window_new (NULL, NULL); +- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), ++ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), + GTK_POLICY_AUTOMATIC, + GTK_POLICY_AUTOMATIC); ++ ++ gtk_tree_view_append_column (GTK_TREE_VIEW (list), column); ++ ++ gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (list), FALSE); ++ ++ gtk_widget_size_request (GTK_WIDGET (list), &req); ++ ++ gtk_widget_set_size_request (GTK_WIDGET (list), req.width, req.height); ++ + gtk_container_add (GTK_CONTAINER (sw), list); + ++ /* Remove the blank rows. */ ++ gtk_list_store_clear (list_store); ++ ++ gtk_widget_show (list); ++ gtk_widget_show (sw); ++ + gdk_threads_leave (); + + NSA_SET_PTR (env, obj, sw); +@@ -87,7 +127,6 @@ + gdk_threads_enter (); + + gtk_widget_realize (GTK_WIDGET (ptr)); +- + connect_awt_hook (env, obj, 1, GTK_WIDGET (ptr)->window); + + gdk_threads_leave (); +@@ -97,50 +136,105 @@ + Java_gnu_java_awt_peer_gtk_GtkListPeer_connectSignals + (JNIEnv *env, jobject obj) + { +- GtkCList *list; +- void *ptr = NSA_GET_PTR (env, obj); +- jobject *gref = NSA_GET_GLOBAL_REF (env, obj); +- g_assert (gref); ++ void *ptr; ++ jobject *gref; ++ GtkTreeView *list; ++ GtkTreeSelection *selection; ++ ++ ptr = NSA_GET_PTR (env, obj); ++ gref = NSA_GET_GLOBAL_REF (env, obj); + + gdk_threads_enter (); + ++ g_assert (gref); ++ + gtk_widget_realize (GTK_WIDGET (ptr)); + +- /* connect selectable hook */ +- +- list = CLIST_FROM_SW (ptr); ++ list = TREE_VIEW_FROM_SW (ptr); + +- g_signal_connect (G_OBJECT (list), "select_row", +- GTK_SIGNAL_FUNC (item_select), *gref); ++ g_signal_connect (G_OBJECT (list), "event", ++ G_CALLBACK (pre_event_handler), *gref); + +- g_signal_connect (G_OBJECT (list), "unselect_row", +- GTK_SIGNAL_FUNC (item_unselect), *gref); ++ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (list)); ++ gtk_tree_selection_set_select_function (selection, item_highlighted, ++ *gref, NULL); + +- /* Connect the superclass signals. */ +- /* FIXME: Cannot do that here or it will get the sw and not the list. +- We must a generic way of doing this. */ +- /* Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectSignals (env, peer_obj); */ +- g_signal_connect (GTK_OBJECT (list), "event", +- G_CALLBACK (pre_event_handler), *gref); ++ gdk_threads_leave (); ++} ++ ++JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkListPeer_gtkSetFont ++ (JNIEnv *env, jobject obj, jstring name, jint style, jint size) ++{ ++ const char *font_name; ++ void *ptr; ++ GtkWidget *list; ++ PangoFontDescription *font_desc; ++ ++ ptr = NSA_GET_PTR (env, obj); ++ ++ gdk_threads_enter(); ++ ++ list = GTK_WIDGET (TREE_VIEW_FROM_SW (ptr)); ++ ++ font_name = (*env)->GetStringUTFChars (env, name, NULL); ++ ++ font_desc = pango_font_description_from_string (font_name); ++ pango_font_description_set_size (font_desc, size * dpi_conversion_factor); ++ ++ if (style & AWT_STYLE_BOLD) ++ pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD); ++ ++ if (style & AWT_STYLE_ITALIC) ++ pango_font_description_set_style (font_desc, PANGO_STYLE_OBLIQUE); ++ ++ gtk_widget_modify_font (GTK_WIDGET (list), font_desc); ++ ++ pango_font_description_free (font_desc); ++ ++ (*env)->ReleaseStringUTFChars (env, name, font_name); ++ ++ gdk_threads_leave(); ++} ++ ++JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkListPeer_gtkWidgetRequestFocus ++ (JNIEnv *env, jobject obj) ++{ ++ void *ptr; ++ GtkWidget *list; ++ ++ ptr = NSA_GET_PTR (env, obj); ++ ++ gdk_threads_enter (); ++ ++ list = GTK_WIDGET (TREE_VIEW_FROM_SW (ptr)); ++ gtk_widget_grab_focus (list); + + gdk_threads_leave (); + } + +-JNIEXPORT void JNICALL +-Java_gnu_java_awt_peer_gtk_GtkListPeer_append ++JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkListPeer_append + (JNIEnv *env, jobject obj, jobjectArray items) + { + void *ptr; +- GtkCList *list; +- jint count, i; ++ GtkTreeView *list; ++ GtkTreeIter iter; ++ GtkTreeModel *list_store; ++ jint count; ++ jint i; + + ptr = NSA_GET_PTR (env, obj); + + count = (*env)->GetArrayLength (env, items); + + gdk_threads_enter (); +- list = CLIST_FROM_SW (ptr); +- for (i = 0; i < count; i++) ++ ++ list = TREE_VIEW_FROM_SW (ptr); ++ list_store = gtk_tree_view_get_model (list); ++ ++ for (i = 0; i < count; i++) + { + const char *text; + jobject item; +@@ -148,11 +242,13 @@ + item = (*env)->GetObjectArrayElement (env, items, i); + + text = (*env)->GetStringUTFChars (env, item, NULL); +- gtk_clist_append (list, (char **)&text); ++ gtk_list_store_append (GTK_LIST_STORE (list_store), &iter); ++ gtk_list_store_set (GTK_LIST_STORE (list_store), &iter, ++ COLUMN_STRING, text, ++ -1); + (*env)->ReleaseStringUTFChars (env, item, text); + } + +- gtk_clist_columns_autosize (list); + gdk_threads_leave (); + } + +@@ -162,12 +258,26 @@ + { + void *ptr; + const char *str; +- ++ GtkTreeView *list; ++ GtkTreeIter iter; ++ GtkTreeModel *list_store; ++ + ptr = NSA_GET_PTR (env, obj); + str = (*env)->GetStringUTFChars (env, text, NULL); + + gdk_threads_enter (); +- gtk_clist_insert (CLIST_FROM_SW (ptr), index, (char **)&str); ++ ++ list = TREE_VIEW_FROM_SW (ptr); ++ list_store = gtk_tree_view_get_model (list); ++ ++ if (index == -1) ++ gtk_list_store_append (GTK_LIST_STORE (list_store), &iter); ++ else ++ gtk_list_store_insert (GTK_LIST_STORE (list_store), &iter, index); ++ ++ gtk_list_store_set (GTK_LIST_STORE (list_store), &iter, ++ COLUMN_STRING, str, -1); ++ + gdk_threads_leave (); + + (*env)->ReleaseStringUTFChars (env, text, str); +@@ -179,22 +289,32 @@ + (JNIEnv *env, jobject obj, jint start, jint end) + { + void *ptr; +- GtkCList *list; ++ GtkTreeView *list; ++ GtkTreeIter iter; ++ GtkTreeModel *list_store; + jint i; ++ jint num_items; + + ptr = NSA_GET_PTR (env, obj); + + gdk_threads_enter (); +- list = CLIST_FROM_SW (ptr); + +- if (end == -1) /* special case for removing all rows */ +- gtk_clist_clear (list); ++ list = TREE_VIEW_FROM_SW (ptr); ++ list_store = gtk_tree_view_get_model (list); ++ ++ /* Special case: remove all rows. */ ++ if (end == -1) ++ gtk_list_store_clear (GTK_LIST_STORE (list_store)); + else + { +- gtk_clist_freeze (list); +- for (i = end; i >= start; i--) +- gtk_clist_remove (list, i); +- gtk_clist_thaw (list); ++ i = 0; ++ num_items = end - start + 1; ++ gtk_tree_model_iter_nth_child (list_store, &iter, NULL, start); ++ while (i < num_items) ++ { ++ gtk_list_store_remove (GTK_LIST_STORE (list_store), &iter); ++ i++; ++ } + } + + gdk_threads_leave (); +@@ -205,11 +325,17 @@ + (JNIEnv *env, jobject obj, jint index) + { + void *ptr; ++ GtkTreeView *list; ++ GtkTreePath *path; + + ptr = NSA_GET_PTR (env, obj); + + gdk_threads_enter (); +- gtk_clist_select_row (CLIST_FROM_SW (ptr), index, 0); ++ ++ list = TREE_VIEW_FROM_SW (ptr); ++ path = gtk_tree_path_new_from_indices (index, -1); ++ gtk_tree_view_set_cursor (list, path, NULL, FALSE); ++ + gdk_threads_leave (); + } + +@@ -218,40 +344,61 @@ + (JNIEnv *env, jobject obj, jint index) + { + void *ptr; ++ GtkTreeView *list; ++ GtkTreeSelection *selection; ++ GtkTreePath *path; + + ptr = NSA_GET_PTR (env, obj); + + gdk_threads_enter (); +- gtk_clist_unselect_row (CLIST_FROM_SW (ptr), index, 0); ++ ++ list = TREE_VIEW_FROM_SW (ptr); ++ selection = gtk_tree_view_get_selection (list); ++ path = gtk_tree_path_new_from_indices (index, -1); ++ gtk_tree_selection_unselect_path (selection, path); ++ + gdk_threads_leave (); + } + + JNIEXPORT void JNICALL + Java_gnu_java_awt_peer_gtk_GtkListPeer_getSize +- (JNIEnv *env, jobject obj, jint rows, jintArray jdims) ++ (JNIEnv *env, jobject obj, jint rows, jint visible_rows, jintArray jdims) + { + void *ptr; + jint *dims; +- GtkWidget *list; +- GtkScrolledWindow *sw; +- GtkRequisition myreq; ++ GtkRequisition current_req; ++ GtkRequisition natural_req; + + dims = (*env)->GetIntArrayElements (env, jdims, NULL); + dims[0] = dims[1] = 0; + +- if (rows < 3) +- rows = 3; +- + ptr = NSA_GET_PTR (env, obj); ++ + gdk_threads_enter (); + +- list = GTK_WIDGET (CLIST_FROM_SW (ptr)); +- sw = GTK_SCROLLED_WINDOW (ptr); ++ /* Save the widget's current size request. */ ++ gtk_widget_size_request (GTK_WIDGET (ptr), ¤t_req); ++ ++ /* Get the widget's "natural" size request. */ ++ gtk_widget_set_size_request (GTK_WIDGET (ptr), -1, -1); ++ gtk_widget_size_request (GTK_WIDGET (ptr), &natural_req); ++ ++ /* Reset the widget's size request. */ ++ gtk_widget_set_size_request (GTK_WIDGET (ptr), ++ current_req.width, current_req.height); ++ ++ dims[0] = natural_req.width; ++ ++ /* Calculate the final height, by comparing the number of rows ++ in the list to the number of rows requested by the caller. ++ FIXME: Is there a GTK method that counts the number of rows ++ in the list? If so, we don't need to bring visible_rows from ++ the Java peer. */ ++ if (rows == visible_rows) ++ dims[1] = natural_req.height; ++ else ++ dims[1] = natural_req.height / visible_rows * rows; + +- gtk_widget_size_request(GTK_WIDGET(sw), &myreq); +- dims[1]=myreq.height; +- dims[0]=myreq.width; +- + gdk_threads_leave (); + + (*env)->ReleaseIntArrayElements (env, jdims, dims, 0); +@@ -263,31 +410,53 @@ + (JNIEnv *env, jobject obj) + { + void *ptr; +- GtkCList *list; +- jintArray selection; +- jint *sel; +- GList *child; +- jint count, i; ++ GtkTreeView *list; ++ GtkTreeSelection *selection; ++ jintArray result_array; ++ jint *result_array_iter; ++ GList *current_row; ++ GList *rows; ++ gint *indices; ++ jint count; ++ jint i; + + ptr = NSA_GET_PTR (env, obj); ++ + gdk_threads_enter (); + +- list = CLIST_FROM_SW (ptr); +- count = g_list_length (list->selection); ++ list = TREE_VIEW_FROM_SW (ptr); ++ selection = gtk_tree_view_get_selection (list); ++ count = gtk_tree_selection_count_selected_rows (selection); ++ if (count > 0) ++ { ++ current_row = rows = gtk_tree_selection_get_selected_rows (selection, NULL); + +- selection = (*env)->NewIntArray (env, count); +- sel = (*env)->GetIntArrayElements (env, selection, NULL); ++ result_array = (*env)->NewIntArray (env, count); ++ result_array_iter = (*env)->GetIntArrayElements (env, result_array, NULL); + +- for (i = 0, child = list->selection; i < count; i++) +- { +- sel[i] = GPOINTER_TO_INT (child->data); +- child = g_list_next (child); +- } +- gdk_threads_leave (); ++ for (i = 0; i < count; i++) ++ { ++ indices = gtk_tree_path_get_indices (current_row->data); ++ result_array_iter[i] = indices ? indices[0] : -1; ++ current_row = g_list_next (current_row); ++ } ++ ++ if (rows) ++ { ++ g_list_foreach (rows, (GFunc) gtk_tree_path_free, NULL); ++ g_list_free (rows); ++ } ++ ++ gdk_threads_leave (); + +- (*env)->ReleaseIntArrayElements (env, selection, sel, 0); ++ (*env)->ReleaseIntArrayElements (env, result_array, result_array_iter, 0); ++ ++ return result_array; ++ } ++ else ++ gdk_threads_leave (); + +- return selection; ++ return (jintArray) NULL; + } + + JNIEXPORT void JNICALL +@@ -295,11 +464,17 @@ + (JNIEnv *env, jobject obj, jint index) + { + void *ptr; ++ GtkTreeView *list; ++ GtkTreePath *path; + + ptr = NSA_GET_PTR (env, obj); + + gdk_threads_enter (); +- gtk_clist_moveto (CLIST_FROM_SW (ptr), index, 0, 0.5, 0.5); ++ ++ list = TREE_VIEW_FROM_SW (ptr); ++ path = gtk_tree_path_new_from_indices (index, -1); ++ gtk_tree_view_scroll_to_cell (list, path, NULL, FALSE, 0.0, 0.0); ++ + gdk_threads_leave (); + } + +@@ -308,40 +483,49 @@ + (JNIEnv *env, jobject obj, jboolean mode) + { + void *ptr; +- ++ GtkTreeView *list; ++ GtkTreeSelection *selection; ++ + ptr = NSA_GET_PTR (env, obj); + + gdk_threads_enter (); +- gtk_clist_set_selection_mode (CLIST_FROM_SW (ptr), +- mode ? GTK_SELECTION_MULTIPLE : +- GTK_SELECTION_SINGLE); ++ ++ list = TREE_VIEW_FROM_SW (ptr); ++ selection = gtk_tree_view_get_selection (list); ++ gtk_tree_selection_set_mode (selection, ++ mode ? GTK_SELECTION_MULTIPLE ++ : GTK_SELECTION_SINGLE); ++ + gdk_threads_leave (); + } + +-static void +-item_select (GtkCList *list __attribute__((unused)), +- int row, int col __attribute__((unused)), +- GdkEventButton *event __attribute__((unused)), +- jobject peer_obj) +-{ +- //g_print ("select_row\n"); +- (*gdk_env)->CallVoidMethod (gdk_env, peer_obj, +- postListItemEventID, +- row, +- (jint) AWT_ITEM_SELECTED); +-} +- +-static void +-item_unselect (GtkCList *list __attribute__((unused)), +- int row, +- int col __attribute__((unused)), +- GdkEventButton *event __attribute__((unused)), +- jobject peer_obj) +-{ +- //g_print ("unselect_row\n"); +- (*gdk_env)->CallVoidMethod (gdk_env, peer_obj, +- postListItemEventID, +- row, +- (jint) AWT_ITEM_DESELECTED); +-} ++gboolean ++item_highlighted (GtkTreeSelection *selection __attribute__((unused)), ++ GtkTreeModel *model, ++ GtkTreePath *path, ++ gboolean path_currently_selected, ++ jobject peer) ++{ ++ GtkTreeIter iter; ++ jint row; ++ gint *indices; ++ ++ if (gtk_tree_model_get_iter (model, &iter, path)) ++ { ++ indices = gtk_tree_path_get_indices (path); ++ row = indices ? indices[0] : -1; + ++ if (!path_currently_selected) ++ (*gdk_env)->CallVoidMethod (gdk_env, peer, ++ postListItemEventID, ++ row, ++ (jint) AWT_ITEM_SELECTED); ++ else ++ (*gdk_env)->CallVoidMethod (gdk_env, peer, ++ postListItemEventID, ++ row, ++ (jint) AWT_ITEM_DESELECTED); ++ } ++ ++ return TRUE; ++} +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c,v +retrieving revision 1.12 +diff -u -r1.12 gnu_java_awt_peer_gtk_GtkMainThread.c +--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c 13 Jan 2004 20:54:46 -0000 1.12 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c 6 Sep 2004 16:36:13 -0000 +@@ -63,19 +63,30 @@ + + JNIEnv *gdk_env; + +-#ifdef PORTABLE_NATIVE_SYNC +-JavaVM *gdk_vm; +-#endif +- + GtkWindowGroup *global_gtk_window_group; + ++static void init_glib_threads(JNIEnv *, jint); ++ ++double dpi_conversion_factor; ++ ++static void init_dpi_conversion_factor (); ++static void dpi_changed_cb (GtkSettings *settings, ++ GParamSpec *pspec); ++ + /* + * Call gtk_init. It is very important that this happen before any other + * gtk calls. ++ * ++ * The portableNativeSync argument may have the values: ++ * 1 if the Java property gnu.classpath.awt.gtk.portable.native.sync ++ * is set to "true". ++ * 0 if it is set to "false" ++ * -1 if unset. + */ + + JNIEXPORT void JNICALL +-Java_gnu_java_awt_peer_gtk_GtkMainThread_gtkInit (JNIEnv *env, jclass clazz) ++Java_gnu_java_awt_peer_gtk_GtkMainThread_gtkInit (JNIEnv *env, jclass clazz, ++ jint portableNativeSync) + { + int argc = 1; + char **argv; +@@ -85,23 +96,22 @@ + gtkmenuitempeer, gtktextcomponentpeer, window; + + NSA_INIT (env, clazz); ++ gdk_env = env; + + /* GTK requires a program's argc and argv variables, and requires that they +- be valid. */ +- +- argv = (char **) malloc (sizeof (char *) * 2); +- argv[0] = ""; ++ be valid. Set it up. */ ++ argv = (char **) g_malloc (sizeof (char *) * 2); ++ argv[0] = (char *) g_malloc(1); ++#if 1 ++ strcpy(argv[0], ""); ++#else /* The following is a more efficient alternative, but less intuitively ++ * expresses what we are trying to do. This code is only run once, so ++ * I'm going for intuitive. */ ++ argv[0][0] = '\0'; ++#endif + argv[1] = NULL; + +- /* until we have JDK 1.2 JNI, assume we have a VM with threads that +- match what GLIB was compiled for */ +-#ifdef PORTABLE_NATIVE_SYNC +- (*env)->GetJavaVM( env, &gdk_vm ); +- g_thread_init ( &g_thread_jni_functions ); +- printf("called gthread init\n"); +-#else +- g_thread_init ( NULL ); +-#endif ++ init_glib_threads(env, portableNativeSync); + + /* From GDK 2.0 onwards we have to explicitly call gdk_threads_init */ + gdk_threads_init(); +@@ -116,21 +126,19 @@ + we're shutting down. */ + atexit (gdk_threads_enter); + +- gdk_env = env; + gdk_event_handler_set ((GdkEventFunc)awt_event_handler, NULL, NULL); + + if ((homedir = getenv ("HOME"))) + { +- rcpath = (char *) malloc (strlen (homedir) + strlen (RC_FILE) + 2); ++ rcpath = (char *) g_malloc (strlen (homedir) + strlen (RC_FILE) + 2); + sprintf (rcpath, "%s/%s", homedir, RC_FILE); + } + + gtk_rc_parse ((rcpath) ? rcpath : RC_FILE); + +- if (rcpath) +- free (rcpath); +- +- free (argv); ++ g_free (rcpath); ++ g_free (argv[0]); ++ g_free (argv); + + /* setup cached IDs for posting GTK events to Java */ + /* gtkgenericpeer = (*env)->FindClass (env, */ +@@ -166,7 +174,7 @@ + "postMenuActionEvent", + "()V"); + postMouseEventID = (*env)->GetMethodID (env, gtkcomponentpeer, +- "postMouseEvent", "(IJIIIIZ)V"); ++ "postMouseEvent", "(IJIIIIZ)V"); + postConfigureEventID = (*env)->GetMethodID (env, gtkwindowpeer, + "postConfigureEvent", "(IIII)V"); + postWindowEventID = (*env)->GetMethodID (env, gtkwindowpeer, +@@ -194,8 +202,41 @@ + "postTextEvent", + "()V"); + global_gtk_window_group = gtk_window_group_new (); ++ ++ init_dpi_conversion_factor (); + } + ++ ++/** Initialize GLIB's threads properly, based on the value of the ++ gnu.classpath.awt.gtk.portable.native.sync Java system property. If ++ that's unset, use the PORTABLE_NATIVE_SYNC config.h macro. (TODO: ++ In some release following 0.10, that config.h macro will go away.) ++ */ ++static void ++init_glib_threads(JNIEnv *env, jint portableNativeSync) ++{ ++ if (portableNativeSync < 0) ++ { ++#ifdef PORTABLE_NATIVE_SYNC /* Default value, if not set by the Java system ++ property */ ++ portableNativeSync = 1; ++#else ++ portableNativeSync = 0; ++#endif ++ } ++ ++ (*env)->GetJavaVM( env, &the_vm ); ++ if (portableNativeSync) ++ g_thread_init ( &portable_native_sync_jni_functions ); ++ else ++ g_thread_init ( NULL ); ++ ++ /* Debugging progress message; uncomment if needed: */ ++ /* printf("called gthread init\n"); */ ++} ++ ++ ++ + /* + * Run gtk_main and block. + */ +@@ -207,3 +248,45 @@ + gtk_main (); + gdk_threads_leave (); + } ++ ++/* This is a big hack, needed until this pango bug is resolved: ++ http://bugzilla.gnome.org/show_bug.cgi?id=119081. ++ See: http://mail.gnome.org/archives/gtk-i18n-list/2003-August/msg00001.html ++ for details. */ ++static void ++init_dpi_conversion_factor () ++{ ++ GtkSettings *settings = gtk_settings_get_default (); ++ GObjectClass *klass; ++ ++ klass = G_OBJECT_CLASS (GTK_SETTINGS_GET_CLASS (settings)); ++ if (g_object_class_find_property (klass, "gtk-xft-dpi")) ++ { ++ int int_dpi; ++ g_object_get (settings, "gtk-xft-dpi", &int_dpi, NULL); ++ /* If int_dpi == -1 gtk-xft-dpi returns the default value. So we ++ have to do approximate calculation here. */ ++ if (int_dpi < 0) ++ dpi_conversion_factor = PANGO_SCALE * 72.0 / 96.; ++ else ++ dpi_conversion_factor = PANGO_SCALE * 72.0 / (int_dpi / PANGO_SCALE); ++ ++ g_signal_connect (settings, "notify::gtk-xft-dpi", ++ G_CALLBACK (dpi_changed_cb), NULL); ++ } ++ else ++ /* Approximate. */ ++ dpi_conversion_factor = PANGO_SCALE * 72.0 / 96.; ++} ++ ++static void ++dpi_changed_cb (GtkSettings *settings, ++ GParamSpec *pspec __attribute__((unused))) ++{ ++ int int_dpi; ++ g_object_get (settings, "gtk-xft-dpi", &int_dpi, NULL); ++ if (int_dpi < 0) ++ dpi_conversion_factor = PANGO_SCALE * 72.0 / 96.; ++ else ++ dpi_conversion_factor = PANGO_SCALE * 72.0 / (int_dpi / PANGO_SCALE); ++} +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c,v +retrieving revision 1.2 +diff -u -r1.2 gnu_java_awt_peer_gtk_GtkMenuBarPeer.c +--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c 13 Dec 2003 01:15:47 -0000 1.2 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c 6 Sep 2004 16:36:13 -0000 +@@ -66,7 +66,30 @@ + menu = NSA_GET_PTR (env, menupeer); + + gdk_threads_enter (); +- gtk_menu_bar_append (GTK_MENU_BAR (mbar), GTK_WIDGET (menu)); ++ gtk_menu_shell_append (GTK_MENU_SHELL (mbar), GTK_WIDGET (menu)); ++ gdk_threads_leave (); ++} ++ ++JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuBarPeer_nativeSetHelpMenu ++ (JNIEnv *env, jobject obj, jobject menupeer) ++{ ++ static void *helpmenu; ++ void *mbar, *menu; ++ GList *list; ++ ++ mbar = NSA_GET_PTR (env, obj); ++ menu = NSA_GET_PTR (env, menupeer); ++ ++ gdk_threads_enter (); ++ if (helpmenu != NULL) ++ { ++ list = gtk_container_children (GTK_CONTAINER (mbar)); ++ while (list != NULL && list->data != helpmenu) ++ list = list->next; ++ if (list != NULL && list->data == helpmenu) ++ gtk_container_remove (GTK_CONTAINER (mbar), GTK_WIDGET (list->data)); ++ } ++ helpmenu = menu; + gdk_threads_leave (); + } + +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.c +=================================================================== +RCS file: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.c +diff -N jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.c 6 Sep 2004 16:36:13 -0000 +@@ -0,0 +1,56 @@ ++/* gtkmenucomponentpeer.c -- Native implementation of GtkMenuComponentPeer ++ Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA ++02111-1307 USA. ++ ++Linking this library statically or dynamically with other modules is ++making a combined work based on this library. Thus, the terms and ++conditions of the GNU General Public License cover the whole ++combination. ++ ++As a special exception, the copyright holders of this library give you ++permission to link this library with independent modules to produce an ++executable, regardless of the license terms of these independent ++modules, and to copy and distribute the resulting executable under ++terms of your choice, provided that you also meet, for each linked ++independent module, the terms and conditions of the license of that ++module. An independent module is a module which is not derived from ++or based on this library. If you modify this library, you may extend ++this exception to your version of the library, but you are not ++obligated to do so. If you do not wish to do so, delete this ++exception statement from your version. */ ++ ++ ++#include "gtkpeer.h" ++#include "gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h" ++ ++JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuComponentPeer_dispose ++ (JNIEnv *env, jobject obj) ++{ ++ /* For MenuComponents and its subclasses, the widgets are ++ automatically destroyed by Gtk when the parent MenuBar ++ is removed from the Frame. So we avoid the widget ++ destruction in GtkGenericPeer dispose() by overriding ++ it here. */ ++ ++ /* However, references to the Java objects still exist in the ++ state tables, so we still have to remove those. */ ++ ++ NSA_DEL_GLOBAL_REF (env, obj); ++ NSA_DEL_PTR (env, obj); ++} +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c,v +retrieving revision 1.4 +diff -u -r1.4 gnu_java_awt_peer_gtk_GtkMenuItemPeer.c +--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c 13 Dec 2003 01:15:47 -0000 1.4 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c 6 Sep 2004 16:36:13 -0000 +@@ -41,18 +41,16 @@ + #include "gnu_java_awt_peer_gtk_GtkComponentPeer.h" + + static void item_activate (GtkMenuItem *item __attribute__((unused)), +- jobject *peer_obj); ++ jobject peer_obj); + + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_create + (JNIEnv *env, jobject obj, jstring label) + { + GtkWidget *widget; + const char *str; +- jobject *gref; + + /* Create global reference and save it for future use */ + NSA_SET_GLOBAL_REF (env, obj); +- gref = NSA_GET_GLOBAL_REF (env, obj); + + str = (*env)->GetStringUTFChars (env, label, NULL); + +@@ -63,10 +61,6 @@ + else + widget = gtk_menu_item_new_with_label (str); + +- /* Connect activate hook */ +- g_signal_connect (G_OBJECT (widget), "activate", +- GTK_SIGNAL_FUNC (item_activate), *gref); +- + gtk_widget_show (widget); + + gdk_threads_leave (); +@@ -76,6 +70,34 @@ + NSA_SET_PTR (env, obj, widget); + } + ++JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_connectSignals ++ (JNIEnv *env, jobject obj) ++{ ++ void *ptr = NSA_GET_PTR (env, obj); ++ jobject *gref = NSA_GET_GLOBAL_REF (env, obj); ++ g_assert (gref); ++ ++ gdk_threads_enter (); ++ ++ g_signal_connect (G_OBJECT (ptr), "activate", ++ G_CALLBACK (item_activate), *gref); ++ ++ gdk_threads_leave (); ++} ++ ++JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_setEnabled ++ (JNIEnv *env, jobject obj, jboolean enabled) ++{ ++ void *ptr; ++ ++ ptr = NSA_GET_PTR (env, obj); ++ ++ gdk_threads_enter (); ++ gtk_widget_set_sensitive (GTK_WIDGET (ptr), enabled); ++ gdk_threads_leave (); ++} ++ + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_setLabel + (JNIEnv *env, jobject obj, jstring label) + { +@@ -104,9 +126,9 @@ + } + + static void +-item_activate (GtkMenuItem *item __attribute__((unused)), jobject *peer_obj) ++item_activate (GtkMenuItem *item __attribute__((unused)), jobject peer_obj) + { +- (*gdk_env)->CallVoidMethod (gdk_env, *peer_obj, ++ (*gdk_env)->CallVoidMethod (gdk_env, peer_obj, + postMenuActionEventID); + } + +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c,v +retrieving revision 1.4 +diff -u -r1.4 gnu_java_awt_peer_gtk_GtkMenuPeer.c +--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c 13 Dec 2003 01:15:47 -0000 1.4 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c 6 Sep 2004 16:36:13 -0000 +@@ -1,5 +1,5 @@ + /* gtkmenupeer.c -- Native implementation of GtkMenuPeer +- Copyright (C) 1999 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -39,17 +39,6 @@ + #include "gtkpeer.h" + #include "gnu_java_awt_peer_gtk_GtkMenuPeer.h" + +-static void +-accel_attach (GtkMenuItem *menu_item, +- gpointer *user_data __attribute__((unused))) +-{ +- GtkAccelGroup *accel; +- +- accel = gtk_menu_get_accel_group (GTK_MENU (menu_item->submenu)); +- _gtk_accel_group_attach (accel, +- G_OBJECT (gtk_widget_get_toplevel (GTK_WIDGET(menu_item)))); +-} +- + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuPeer_setupAccelGroup + (JNIEnv *env, jobject obj, jobject parent) + { +@@ -62,14 +51,6 @@ + { + gtk_menu_set_accel_group (GTK_MENU (GTK_MENU_ITEM (ptr1)->submenu), + gtk_accel_group_new ()); +- +- if (GTK_WIDGET_REALIZED (GTK_WIDGET (ptr1))) +- accel_attach (GTK_MENU_ITEM (ptr1), NULL); +- else +- g_signal_connect (G_OBJECT (ptr1), +- "realize", +- GTK_SIGNAL_FUNC (accel_attach), +- NULL); + } + else + { +@@ -89,7 +70,7 @@ + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuPeer_create + (JNIEnv *env, jobject obj, jstring label) + { +- GtkWidget *menu_title, *menu; ++ GtkWidget *menu_title, *menu, *toplevel; + const char *str; + + /* Create global reference and save it for future use */ +@@ -101,10 +82,21 @@ + + menu = gtk_menu_new (); + +- menu_title = gtk_menu_item_new_with_label (str); ++ if (str != NULL) ++ menu_title = gtk_menu_item_new_with_label (str); ++ else ++ menu_title = gtk_menu_item_new(); ++ + gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_title), menu); + +- gtk_widget_show (menu); ++ /* Allow this menu to grab the pointer. */ ++ toplevel = gtk_widget_get_toplevel (menu); ++ if (GTK_IS_WINDOW (toplevel)) ++ { ++ gtk_window_group_add_window (global_gtk_window_group, ++ GTK_WINDOW(toplevel)); ++ } ++ + gtk_widget_show (menu_title); + + NSA_SET_PTR (env, obj, menu_title); +@@ -114,24 +106,42 @@ + (*env)->ReleaseStringUTFChars (env, label, str); + } + ++JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuPeer_addTearOff ++ (JNIEnv *env, jobject obj) ++{ ++ void *ptr1; ++ GtkWidget *menu, *item; ++ ++ ptr1 = NSA_GET_PTR (env, obj); ++ ++ gdk_threads_enter (); ++ ++ menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (ptr1)); ++ item = gtk_tearoff_menu_item_new (); ++ gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); ++ gtk_widget_show (item); ++ ++ gdk_threads_leave (); ++} ++ + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuPeer_addItem + (JNIEnv *env, jobject obj, jobject menuitempeer, jint key, jboolean shift) + { + void *ptr1, *ptr2; +- GtkMenu *menu; ++ GtkWidget *menu; + + ptr1 = NSA_GET_PTR (env, obj); + ptr2 = NSA_GET_PTR (env, menuitempeer); + + gdk_threads_enter (); + +- menu = GTK_MENU (GTK_MENU_ITEM (ptr1)->submenu); +- gtk_menu_append (menu, GTK_WIDGET (ptr2)); ++ menu = gtk_menu_item_get_submenu(GTK_MENU_ITEM(ptr1)); ++ gtk_menu_shell_append (GTK_MENU_SHELL(menu), GTK_WIDGET (ptr2)); + + if (key) + { + gtk_widget_add_accelerator (GTK_WIDGET (ptr2), "activate", +- gtk_menu_get_accel_group (menu), key, ++ gtk_menu_get_accel_group (GTK_MENU (menu)), key, + (GDK_CONTROL_MASK + | ((shift) ? GDK_SHIFT_MASK : 0)), + GTK_ACCEL_VISIBLE); +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c,v +retrieving revision 1.4 +diff -u -r1.4 gnu_java_awt_peer_gtk_GtkPanelPeer.c +--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c 13 Dec 2003 01:15:47 -0000 1.4 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c 6 Sep 2004 16:36:13 -0000 +@@ -53,19 +53,13 @@ + + widget = gtk_layout_new (NULL, NULL); + ++ GTK_WIDGET_SET_FLAGS (widget, GTK_CAN_FOCUS); ++ + gdk_threads_leave (); + + NSA_SET_PTR (env, obj, widget); + } + +-typedef struct _GtkLayoutChild GtkLayoutChild; +- +-struct _GtkLayoutChild { +- GtkWidget *widget; +- gint x; +- gint y; +-}; +- + JNIEXPORT void JNICALL + Java_gnu_java_awt_peer_gtk_GtkPanelPeer_connectJObject + (JNIEnv *env, jobject obj) +@@ -80,59 +74,3 @@ + + gdk_threads_leave (); + } +- +-JNIEXPORT void JNICALL +-Java_gnu_java_awt_peer_gtk_GtkPanelPeer_connectSignals +- (JNIEnv *env, jobject obj) +-{ +- void *ptr = NSA_GET_PTR (env, obj); +- jobject *gref = NSA_GET_GLOBAL_REF (env, obj); +- g_assert (gref); +- +- gdk_threads_enter (); +- gtk_widget_realize (GTK_WIDGET (ptr)); +- +- /* FIXME: If we don't need this then remove this method. */ +-/* g_signal_connect (G_OBJECT (ptr), "size_request", GTK_SIGNAL_FUNC (sr), */ +-/* NULL); */ +- gdk_threads_leave (); +- +- /* Connect the superclass signals. */ +- Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectSignals (env, obj); +-} +- +-/* FIXME: The following doesn't seem to be used. +- Is not declared as a native function in GtkPanelPeer.java */ +-/* +- * Make a new panel. +- */ +-JNIEXPORT void JNICALL +-Java_gnu_java_awt_peer_gtk_GtkPanelPeer_gtkPanelNew +- (JNIEnv *env, jobject obj, jobject parent_obj) +-{ +- GtkWidget *layout; +- void *parent; +- +- /* Create global reference and save it for future use */ +- NSA_SET_GLOBAL_REF (env, obj); +- +- parent = NSA_GET_PTR (env, parent_obj); +- +- gdk_threads_enter (); +- +- layout = gtk_layout_new (NULL, NULL); +- +- set_parent (layout, GTK_CONTAINER (parent)); +- +- gtk_widget_realize (layout); +- +- connect_awt_hook (env, obj, 1, GTK_LAYOUT (layout)->bin_window); +- +- set_visible (layout, 1); +- +- gdk_threads_leave (); +- +- NSA_SET_PTR (env, obj, layout); +-} +- +- +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c,v +retrieving revision 1.2 +diff -u -r1.2 gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c +--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c 8 Oct 2003 15:49:33 -0000 1.2 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c 6 Sep 2004 16:36:13 -0000 +@@ -1,5 +1,5 @@ + /* gtkpopupmenupeer.c -- Native implementation of GtkPopupMenuPeer +- Copyright (C) 1999 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -45,7 +45,7 @@ + gint y; + }; + +-void ++static void + menu_pos (GtkMenu *menu __attribute__((unused)), + gint *x, gint *y, + gboolean *push_in, +@@ -72,7 +72,7 @@ + + gdk_threads_enter (); + gtk_menu_popup (GTK_MENU (GTK_MENU_ITEM (ptr)->submenu), +- NULL, NULL, menu_pos, p, 3, time); ++ NULL, NULL, menu_pos, p, 0, time); + gdk_threads_leave (); + + g_free (p); +@@ -91,7 +91,10 @@ + gdk_threads_enter (); + menu = GTK_MENU (GTK_MENU_ITEM (ptr1)->submenu); + gtk_menu_set_accel_group (menu, gtk_accel_group_new ()); ++ /* FIXME: update this to use GTK-2.4 GtkActions. */ ++#if 0 + _gtk_accel_group_attach (gtk_menu_get_accel_group (menu), + G_OBJECT (gtk_widget_get_toplevel (ptr2))); ++#endif + gdk_threads_leave (); + } +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c,v +retrieving revision 1.6 +diff -u -r1.6 gnu_java_awt_peer_gtk_GtkScrollBarPeer.c +--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c 13 Dec 2003 01:15:47 -0000 1.6 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c 6 Sep 2004 16:36:13 -0000 +@@ -40,72 +40,14 @@ + #include "gnu_java_awt_peer_gtk_GtkComponentPeer.h" + #include "gnu_java_awt_peer_gtk_GtkScrollbarPeer.h" + +-struct range_scrollbar +-{ +- GtkRange *range; +- jobject *scrollbar; +-}; +- +-static void +-post_change_event (GtkRange *range, +- struct range_scrollbar *rs) +-{ +- GtkAdjustment *adj; +- adj = gtk_range_get_adjustment (range); +- (*gdk_env)->CallVoidMethod (gdk_env, *(rs->scrollbar), postAdjustmentEventID, +- AWT_ADJUSTMENT_TRACK, (jint) adj->value); +- +-} +- +-static void +-post_adjustment_event (GtkRange *range, GtkScrollType scroll, +- struct range_scrollbar *rs) +-{ +- jint type; +- GtkAdjustment *adj; +- +- adj = gtk_range_get_adjustment (range); +- +- switch (scroll) +- { +- case GTK_SCROLL_STEP_UP: +- case GTK_SCROLL_STEP_RIGHT: +- case GTK_SCROLL_STEP_FORWARD: +- type = AWT_ADJUSTMENT_UNIT_INCREMENT; +- break; +- case GTK_SCROLL_STEP_DOWN: +- case GTK_SCROLL_STEP_LEFT: +- case GTK_SCROLL_STEP_BACKWARD: +- type = AWT_ADJUSTMENT_UNIT_DECREMENT; +- break; +- case GTK_SCROLL_PAGE_UP: +- case GTK_SCROLL_PAGE_RIGHT: +- case GTK_SCROLL_PAGE_FORWARD: +- type = AWT_ADJUSTMENT_BLOCK_INCREMENT; +- break; +- case GTK_SCROLL_PAGE_DOWN: +- case GTK_SCROLL_PAGE_LEFT: +- case GTK_SCROLL_PAGE_BACKWARD: +- type = AWT_ADJUSTMENT_BLOCK_DECREMENT; +- break; +- case GTK_SCROLL_JUMP: +- case GTK_SCROLL_NONE: /* Apparently generated when slider is dragged. */ +- type = AWT_ADJUSTMENT_TRACK; +- break; +- default: /* Can this happen? If so, is this right? */ +- return; +- } +- +- (*gdk_env)->CallVoidMethod (gdk_env, *(rs->scrollbar), postAdjustmentEventID, +- type, (jint) adj->value); +-} ++static void post_change_event (GtkRange *range, jobject peer); + + JNIEXPORT void JNICALL + Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_create + (JNIEnv *env, jobject obj, jint orientation, jint value, + jint min, jint max, jint step_incr, jint page_incr, jint visible_amount) + { +- GtkWidget *sb; ++ GtkWidget *scrollbar; + GtkObject *adj; + + /* Create global reference and save it for future use */ +@@ -113,16 +55,26 @@ + + gdk_threads_enter (); + +- adj = gtk_adjustment_new (value, min, max, +- step_incr, page_incr, +- visible_amount); ++ adj = gtk_adjustment_new ((gdouble) value, ++ (gdouble) min, ++ (gdouble) max, ++ (gdouble) step_incr, ++ (gdouble) page_incr, ++ (gdouble) visible_amount); + +- sb = (orientation) ? gtk_vscrollbar_new (GTK_ADJUSTMENT (adj)) : ++ scrollbar = (orientation) ? gtk_vscrollbar_new (GTK_ADJUSTMENT (adj)) : + gtk_hscrollbar_new (GTK_ADJUSTMENT (adj)); + ++ GTK_RANGE (scrollbar)->round_digits = 0; ++ /* These calls seem redundant but they are not. They clamp values ++ so that the slider's entirety is always between the two ++ steppers. */ ++ gtk_range_set_range (GTK_RANGE (scrollbar), (gdouble) min, (gdouble) max); ++ gtk_range_set_value (GTK_RANGE (scrollbar), (gdouble) value); ++ + gdk_threads_leave (); + +- NSA_SET_PTR (env, obj, sb); ++ NSA_SET_PTR (env, obj, scrollbar); + } + + JNIEXPORT void JNICALL +@@ -137,7 +89,7 @@ + + gtk_widget_realize (GTK_WIDGET (ptr)); + +- connect_awt_hook (env, obj, 1, GTK_SCROLLBAR (ptr)->range); ++ connect_awt_hook (env, obj, 1, GTK_WIDGET (ptr)->window); + + gdk_threads_leave (); + } +@@ -146,27 +98,14 @@ + Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_connectSignals + (JNIEnv *env, jobject obj) + { +- struct range_scrollbar *rs; + void *ptr = NSA_GET_PTR (env, obj); + jobject *gref = NSA_GET_GLOBAL_REF (env, obj); + g_assert (gref); + +- rs = (struct range_scrollbar *) malloc (sizeof (struct range_scrollbar)); +- + gdk_threads_enter (); + +- gtk_widget_realize (GTK_WIDGET (ptr)); +- +- rs->range = GTK_RANGE (ptr); +- rs->scrollbar = gref; +- +- g_signal_connect (G_OBJECT (GTK_RANGE (ptr)), +- "move-slider", +- GTK_SIGNAL_FUNC (post_adjustment_event), rs); +- +- g_signal_connect (G_OBJECT (GTK_RANGE (ptr)), +- "value-changed", +- GTK_SIGNAL_FUNC (post_change_event), rs); ++ g_signal_connect (G_OBJECT (ptr), "value-changed", ++ G_CALLBACK (post_change_event), *gref); + + gdk_threads_leave (); + +@@ -186,8 +125,8 @@ + + gdk_threads_enter (); + +- adj = GTK_RANGE (ptr)->adjustment; +- adj->step_increment = amount; ++ adj = gtk_range_get_adjustment (GTK_RANGE (ptr)); ++ adj->step_increment = (gdouble) amount; + gtk_adjustment_changed (adj); + + gdk_threads_leave (); +@@ -204,8 +143,8 @@ + + gdk_threads_enter (); + +- adj = GTK_RANGE (ptr)->adjustment; +- adj->page_increment = amount; ++ adj = gtk_range_get_adjustment (GTK_RANGE (ptr)); ++ adj->page_increment = (gdouble) amount; + gtk_adjustment_changed (adj); + + gdk_threads_leave (); +@@ -222,12 +161,22 @@ + + gdk_threads_enter (); + +- adj = GTK_RANGE (ptr)->adjustment; +- adj->value = value; +- adj->page_size = visible; +- adj->lower = min; +- adj->upper = max; ++ adj = gtk_range_get_adjustment (GTK_RANGE (ptr)); ++ adj->page_size = (gdouble) visible; ++ ++ gtk_range_set_range (GTK_RANGE (ptr), (gdouble) min, (gdouble) max); ++ gtk_range_set_value (GTK_RANGE (ptr), (gdouble) value); ++ + gtk_adjustment_changed (adj); + + gdk_threads_leave (); + } ++ ++static void ++post_change_event (GtkRange *range, jobject peer) ++{ ++ GtkAdjustment *adj; ++ adj = gtk_range_get_adjustment (range); ++ (*gdk_env)->CallVoidMethod (gdk_env, peer, postAdjustmentEventID, ++ AWT_ADJUSTMENT_TRACK, (jint) adj->value); ++} +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c,v +retrieving revision 1.11 +diff -u -r1.11 gnu_java_awt_peer_gtk_GtkTextAreaPeer.c +--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c 13 Jan 2004 20:58:33 -0000 1.11 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c 6 Sep 2004 16:36:13 -0000 +@@ -54,6 +54,8 @@ + + text = gtk_text_view_new (); + gtk_widget_set_size_request (text, textview_width, textview_height); ++ gtk_text_view_set_cursor_visible(text, TRUE); ++ + gtk_widget_show (text); + + sw = gtk_scrolled_window_new (NULL, NULL); +@@ -156,7 +158,7 @@ + gdk_threads_enter(); + + font_desc = pango_font_description_from_string (font_name); +- pango_font_description_set_size (font_desc, size * PANGO_SCALE); ++ pango_font_description_set_size (font_desc, size * dpi_conversion_factor); + + if (style & AWT_STYLE_BOLD) + pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD); +@@ -164,7 +166,7 @@ + if (style & AWT_STYLE_ITALIC) + pango_font_description_set_style (font_desc, PANGO_STYLE_OBLIQUE); + +- gtk_widget_modify_font (GTK_WIDGET(text), font_desc); ++ gtk_widget_modify_font (GTK_WIDGET (text), font_desc); + + pango_font_description_free (font_desc); + +@@ -173,6 +175,24 @@ + (*env)->ReleaseStringUTFChars (env, name, font_name); + } + ++JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_gtkWidgetRequestFocus ++ (JNIEnv *env, jobject obj) ++{ ++ void *ptr; ++ GtkWidget *text; ++ ++ ptr = NSA_GET_PTR (env, obj); ++ ++ gdk_threads_enter (); ++ ++ text = GTK_WIDGET (TEXT_FROM_SW (ptr)); ++ ++ gtk_widget_grab_focus (text); ++ ++ gdk_threads_leave (); ++} ++ + JNIEXPORT jint JNICALL + Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getHScrollbarHeight + (JNIEnv *env, jobject obj) +@@ -188,9 +208,12 @@ + gdk_threads_enter (); + sw = GTK_SCROLLED_WINDOW (ptr); + +- gtk_widget_size_request (sw->hscrollbar, &requisition); +- gtk_widget_style_get (GTK_WIDGET (sw), "scrollbar_spacing", &spacing, NULL); +- height = requisition.height + spacing; ++ if (sw) ++ { ++ gtk_widget_size_request (sw->hscrollbar, &requisition); ++ gtk_widget_style_get (GTK_WIDGET (sw), "scrollbar_spacing", &spacing, NULL); ++ height = requisition.height + spacing; ++ } + + gdk_threads_leave (); + +@@ -212,9 +235,12 @@ + gdk_threads_enter (); + sw = GTK_SCROLLED_WINDOW (ptr); + +- gtk_widget_size_request (sw->vscrollbar, &requisition); +- gtk_widget_style_get (GTK_WIDGET (sw), "scrollbar_spacing", &spacing, NULL); +- width = requisition.width + spacing; ++ if (sw) ++ { ++ gtk_widget_size_request (sw->vscrollbar, &requisition); ++ gtk_widget_style_get (GTK_WIDGET (sw), "scrollbar_spacing", &spacing, NULL); ++ width = requisition.width + spacing; ++ } + + gdk_threads_leave (); + +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c,v +retrieving revision 1.11 +diff -u -r1.11 gnu_java_awt_peer_gtk_GtkTextComponentPeer.c +--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c 13 Dec 2003 01:15:47 -0000 1.11 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c 6 Sep 2004 16:36:13 -0000 +@@ -1,5 +1,5 @@ + /* gtktextcomponentpeer.c -- Native implementation of GtkTextComponentPeer +- Copyright (C) 1998, 1999 Free Software Foundation, Inc. ++ Copyright (C) 1998, 1999, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -40,10 +40,6 @@ + #include "gnu_java_awt_peer_gtk_GtkComponentPeer.h" + #include "gnu_java_awt_peer_gtk_GtkTextComponentPeer.h" + +-static void textcomponent_commit_cb (GtkIMContext *context, +- const gchar *str, +- jobject peer); +- + static void textcomponent_changed_cb (GtkEditable *editable, + jobject peer); + +@@ -61,9 +57,6 @@ + + if (GTK_IS_ENTRY(ptr)) + { +- g_signal_connect (GTK_ENTRY (ptr)->im_context, "commit", +- G_CALLBACK (textcomponent_commit_cb), *gref); +- + g_signal_connect (GTK_EDITABLE (ptr), "changed", + G_CALLBACK (textcomponent_changed_cb), *gref); + +@@ -85,9 +78,6 @@ + + if (text) + { +- g_signal_connect (text->im_context, "commit", +- G_CALLBACK (textcomponent_commit_cb), *gref); +- + buf = gtk_text_view_get_buffer (text); + if (buf) + g_signal_connect (buf, "changed", +@@ -112,8 +102,8 @@ + { + void *ptr; + int pos = 0; +- GtkEditable *editable; // type of GtkEntry (TextField) +- GtkWidget *text = NULL; // type of GtkTextView (TextArea) ++ GtkEditable *editable; ++ GtkWidget *text = NULL; + GtkTextBuffer *buf; + GtkTextMark *mark; + GtkTextIter iter; +@@ -157,10 +147,13 @@ + (JNIEnv *env, jobject obj, jint pos) + { + void *ptr; +- GtkEditable *editable; // type of GtkEntry (TextField) +- GtkWidget *text = NULL; // type of GtkTextView (TextArea) ++ GtkEditable *editable; ++ GtkWidget *text = NULL; + GtkTextBuffer *buf; + GtkTextIter iter; ++ GtkTextMark *oldmark; ++ GtkTextIter olditer; ++ int oldpos; + + ptr = NSA_GET_PTR (env, obj); + +@@ -184,8 +177,24 @@ + if (text) + { + buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text)); ++ ++ /* Save old position. */ ++ oldmark = gtk_text_buffer_get_insert (buf); ++ gtk_text_buffer_get_iter_at_mark (buf, &olditer, oldmark); ++ oldpos = gtk_text_iter_get_offset (&olditer); ++ ++ /* Move to new position. */ + gtk_text_buffer_get_iter_at_offset (buf, &iter, pos); + gtk_text_buffer_place_cursor (buf, &iter); ++ ++ /* Scroll to new position. Alignment is determined ++ comparing the new position to the old position. */ ++ if (oldpos > pos) ++ gtk_text_view_scroll_to_iter (GTK_TEXT_VIEW (text), ++ &iter, 0, TRUE, 0, 0); ++ else if (oldpos < pos) ++ gtk_text_view_scroll_to_iter (GTK_TEXT_VIEW (text), ++ &iter, 0, TRUE, 1, 1); + } + } + +@@ -198,8 +207,8 @@ + { + void *ptr; + int pos = 0; +- GtkEditable *editable; // type of GtkEntry (TextField) +- GtkWidget *text = NULL; // type of GtkTextView (TextArea) ++ GtkEditable *editable; ++ GtkWidget *text = NULL; + GtkTextBuffer *buf; + GtkTextIter start; + GtkTextIter end; +@@ -255,8 +264,8 @@ + { + void *ptr; + int pos = 0; +- GtkEditable *editable; // type of GtkEntry (TextField) +- GtkWidget *text = NULL; // type of GtkTextView (TextArea) ++ GtkEditable *editable; ++ GtkWidget *text = NULL; + GtkTextBuffer *buf; + GtkTextIter start; + GtkTextIter end; +@@ -311,8 +320,8 @@ + (JNIEnv *env, jobject obj, jint start, jint end) + { + void *ptr; +- GtkEditable *editable; // type of GtkEntry (TextField) +- GtkWidget *text = NULL; // type of GtkTextView (TextArea) ++ GtkEditable *editable; ++ GtkWidget *text = NULL; + GtkTextBuffer *buf; + GtkTextIter iter; + +@@ -357,8 +366,8 @@ + (JNIEnv *env, jobject obj, jboolean state) + { + void *ptr; +- GtkEditable *editable; // type of GtkEntry (TextField) +- GtkWidget *text = NULL; // type of GtkTextView (TextArea) ++ GtkEditable *editable; ++ GtkWidget *text = NULL; + + ptr = NSA_GET_PTR (env, obj); + +@@ -396,8 +405,8 @@ + void *ptr; + char *contents = NULL; + jstring jcontents; +- GtkEditable *editable; // type of GtkEntry (TextField) +- GtkWidget *text = NULL; // type of GtkTextView (TextArea) ++ GtkEditable *editable; ++ GtkWidget *text = NULL; + GtkTextBuffer *buf; + GtkTextIter start, end; + +@@ -444,7 +453,7 @@ + { + void *ptr; + const char *str; +- GtkWidget *text = NULL; // type of GtkTextView (TextArea) ++ GtkWidget *text = NULL; + GtkTextBuffer *buf; + + ptr = NSA_GET_PTR (env, obj); +@@ -480,28 +489,6 @@ + } + + static void +-textcomponent_commit_cb (GtkIMContext *context __attribute__((unused)), +- const gchar *str, +- jobject peer) +-{ +- /* str is a \0-terminated UTF-8 encoded character. */ +- gunichar2 *jc = g_utf8_to_utf16 (str, -1, NULL, NULL, NULL); +- GdkEvent *event = gtk_get_current_event (); +- +- if (jc) +- (*gdk_env)->CallVoidMethod (gdk_env, peer, +- postKeyEventID, +- (jint) AWT_KEY_TYPED, +- (jlong) event->key.time, +- keyevent_state_to_awt_mods (event), +- VK_UNDEFINED, +- (jchar) jc[0], +- AWT_KEY_LOCATION_UNKNOWN); +- g_free (jc); +- gdk_event_free (event); +-} +- +-static void + textcomponent_changed_cb (GtkEditable *editable __attribute__((unused)), + jobject peer) + { +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c,v +retrieving revision 1.9 +diff -u -r1.9 gnu_java_awt_peer_gtk_GtkTextFieldPeer.c +--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c 13 Dec 2003 01:15:47 -0000 1.9 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c 6 Sep 2004 16:36:13 -0000 +@@ -39,48 +39,115 @@ + #include "gtkpeer.h" + #include "gnu_java_awt_peer_gtk_GtkTextFieldPeer.h" + ++static jint ++get_border_width (GtkWidget *entry); ++ + JNIEXPORT void JNICALL + Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_create +- (JNIEnv *env, jobject obj) ++ (JNIEnv *env, jobject obj, jint text_width) + { +- GtkWidget *widget; ++ GtkWidget *entry; + + /* Create global reference and save it for future use */ + NSA_SET_GLOBAL_REF (env, obj); + + gdk_threads_enter (); +- +- widget = gtk_entry_new (); ++ ++ entry = gtk_entry_new (); ++ gtk_widget_set_size_request (entry, ++ text_width + 2 * get_border_width (entry), -1); + + gdk_threads_leave (); + +- NSA_SET_PTR (env, obj, widget); ++ NSA_SET_PTR (env, obj, entry); + } + + JNIEXPORT void JNICALL +-Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkEntryGetSize +- (JNIEnv *env, jobject obj, jintArray jdims) ++Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkWidgetSetBackground ++ (JNIEnv *env, jobject obj, jint red, jint green, jint blue) + { ++ GdkColor color; + void *ptr; +- jint *dims; +- GtkRequisition myreq; +- GtkWidget *entry; +- ++ + ptr = NSA_GET_PTR (env, obj); +- dims = (*env)->GetIntArrayElements (env, jdims, 0); +- ++ ++ color.red = (red / 255.0) * 65535; ++ color.green = (green / 255.0) * 65535; ++ color.blue = (blue / 255.0) * 65535; ++ + gdk_threads_enter (); +- +- entry = GTK_WIDGET (ptr); +- gtk_widget_size_request(entry, &myreq); +- dims[0]=myreq.width; +- dims[1]=myreq.height; +- ++ ++ gtk_widget_modify_base (GTK_WIDGET (ptr), GTK_STATE_NORMAL, &color); ++ ++ gdk_threads_leave (); ++} ++ ++JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkWidgetSetForeground ++ (JNIEnv *env, jobject obj, jint red, jint green, jint blue) ++{ ++ GdkColor color; ++ void *ptr; ++ ++ ptr = NSA_GET_PTR (env, obj); ++ ++ color.red = (red / 255.0) * 65535; ++ color.green = (green / 255.0) * 65535; ++ color.blue = (blue / 255.0) * 65535; ++ ++ gdk_threads_enter (); ++ ++ gtk_widget_modify_text (GTK_WIDGET (ptr), GTK_STATE_NORMAL, &color); ++ gtk_widget_modify_base (GTK_WIDGET (ptr), GTK_STATE_SELECTED, &color); ++ + gdk_threads_leave (); +- +- (*env)->ReleaseIntArrayElements (env, jdims, dims, 0); + } + ++JNIEXPORT jint JNICALL ++Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkEntryGetBorderWidth ++ (JNIEnv *env, jobject obj) ++{ ++ void *ptr; ++ int border_width = 0; ++ ++ ptr = NSA_GET_PTR (env, obj); ++ ++ gdk_threads_enter (); ++ ++ border_width = get_border_width (GTK_WIDGET (ptr)); ++ ++ gdk_threads_leave (); ++ ++ return border_width; ++} ++ ++/* GTK hard-codes this value. It is the space between a GtkEntry's ++ frame and its text. */ ++#define INNER_BORDER 2 ++ ++static jint ++get_border_width (GtkWidget *entry) ++{ ++ gint focus_width; ++ gboolean interior_focus; ++ int x_border_width = INNER_BORDER; ++ ++ gtk_widget_style_get (entry, ++ "interior-focus", &interior_focus, ++ "focus-line-width", &focus_width, ++ NULL); ++ ++ if (GTK_ENTRY (entry)->has_frame) ++ x_border_width += entry->style->xthickness; ++ ++ if (!interior_focus) ++ x_border_width += focus_width; ++ ++ return x_border_width; ++} ++ ++#undef INNER_BORDER ++ + JNIEXPORT void JNICALL + Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_setEchoChar + (JNIEnv *env, jobject obj, jchar c) +@@ -93,10 +160,12 @@ + gdk_threads_enter (); + + entry = GTK_ENTRY (ptr); +- +- if (c!=0) ++ ++ if (c != 0) + { +-/* gtk_entry_set_echo_char (entry, c); */ ++ /* FIXME: use gtk_entry_set_invisible_char (GtkEntry *entry, ++ gunichar ch) here. That means we must convert from jchar ++ (utf16) to gunichar (ucs4). */ + gtk_entry_set_visibility (entry, FALSE); + } + else +@@ -122,7 +191,7 @@ + gdk_threads_enter(); + + font_desc = pango_font_description_from_string (font_name); +- pango_font_description_set_size (font_desc, size * PANGO_SCALE); ++ pango_font_description_set_size (font_desc, size * dpi_conversion_factor); + + if (style & AWT_STYLE_BOLD) + pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD); +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c,v +retrieving revision 1.2 +diff -u -r1.2 gnu_java_awt_peer_gtk_GtkToolkit.c +--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c 8 Oct 2003 15:49:33 -0000 1.2 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c 6 Sep 2004 16:36:13 -0000 +@@ -39,6 +39,8 @@ + #include "gtkpeer.h" + #include "gnu_java_awt_peer_gtk_GtkToolkit.h" + ++static jint gdk_color_to_java_color (GdkColor color); ++ + JNIEXPORT void JNICALL + Java_gnu_java_awt_peer_gtk_GtkToolkit_beep + (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused))) +@@ -88,3 +90,70 @@ + return res; + } + ++#define CONVERT(type, state) \ ++ gdk_color_to_java_color (style->type[GTK_STATE_ ## state]) ++ ++JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkToolkit_loadSystemColors ++ (JNIEnv *env, jobject obj __attribute__((unused)), ++ jintArray jcolors) ++{ ++ jint *colors; ++ GtkStyle *style; ++ ++ colors = (*env)->GetIntArrayElements (env, jcolors, 0); ++ ++ gdk_threads_enter (); ++ ++ style = gtk_widget_get_default_style (); ++ ++ colors[AWT_DESKTOP] = CONVERT (bg, SELECTED); ++ colors[AWT_ACTIVE_CAPTION] = CONVERT (bg, SELECTED); ++ colors[AWT_ACTIVE_CAPTION_TEXT] = CONVERT (text, SELECTED); ++ colors[AWT_ACTIVE_CAPTION_BORDER] = CONVERT (fg, NORMAL); ++ colors[AWT_INACTIVE_CAPTION] = CONVERT (base, INSENSITIVE); ++ colors[AWT_INACTIVE_CAPTION_TEXT] = CONVERT (fg, INSENSITIVE); ++ colors[AWT_INACTIVE_CAPTION_BORDER] = CONVERT (fg, INSENSITIVE); ++ colors[AWT_WINDOW] = CONVERT (bg, NORMAL); ++ colors[AWT_WINDOW_BORDER] = CONVERT (fg, NORMAL); ++ colors[AWT_WINDOW_TEXT] = CONVERT (fg, NORMAL); ++ colors[AWT_MENU] = CONVERT (bg, NORMAL); ++ colors[AWT_MENU_TEXT] = CONVERT (fg, NORMAL); ++ colors[AWT_TEXT] = CONVERT (bg, NORMAL); ++ colors[AWT_TEXT_TEXT] = CONVERT (fg, NORMAL); ++ colors[AWT_TEXT_HIGHLIGHT] = CONVERT (bg, SELECTED); ++ colors[AWT_TEXT_HIGHLIGHT_TEXT] = CONVERT (fg, SELECTED); ++ colors[AWT_TEXT_INACTIVE_TEXT] = CONVERT (bg, INSENSITIVE); ++ colors[AWT_CONTROL] = CONVERT (bg, NORMAL); ++ colors[AWT_CONTROL_TEXT] = CONVERT (fg, NORMAL); ++ colors[AWT_CONTROL_HIGHLIGHT] = CONVERT (base, ACTIVE); ++ colors[AWT_CONTROL_LT_HIGHLIGHT] = CONVERT (bg, PRELIGHT); ++ colors[AWT_CONTROL_SHADOW] = CONVERT (bg, ACTIVE); ++ colors[AWT_CONTROL_DK_SHADOW] = CONVERT (fg, INSENSITIVE); ++ colors[AWT_SCROLLBAR] = CONVERT (base, INSENSITIVE); ++ colors[AWT_INFO] = CONVERT (bg, NORMAL); ++ colors[AWT_INFO_TEXT] = CONVERT (fg, NORMAL); ++ ++ gdk_threads_leave (); ++ ++ (*env)->ReleaseIntArrayElements(env, jcolors, colors, 0); ++} ++ ++#undef CONVERT ++ ++static jint ++gdk_color_to_java_color (GdkColor gdk_color) ++{ ++ guchar red; ++ guchar green; ++ guchar blue; ++ float factor; ++ ++ factor = 255.0 / 65535.0; ++ ++ red = (float) gdk_color.red * factor; ++ green = (float) gdk_color.green * factor; ++ blue = (float) gdk_color.blue * factor; ++ ++ return (jint) (0xff000000 | (red << 16) | (green << 8) | blue); ++} +Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c,v +retrieving revision 1.12 +diff -u -r1.12 gnu_java_awt_peer_gtk_GtkWindowPeer.c +--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c 13 Jan 2004 20:54:46 -0000 1.12 ++++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c 6 Sep 2004 16:36:14 -0000 +@@ -44,27 +44,39 @@ + #include + #include + ++/* FIXME: we're currently seeing the double-activation that occurs ++ with metacity and GTK. See ++ http://bugzilla.gnome.org/show_bug.cgi?id=140977 for details. */ ++ + static void window_get_frame_extents (GtkWidget *window, + int *top, int *left, + int *bottom, int *right); + + static void request_frame_extents (GtkWidget *window); + +-static int property_notify_predicate (Display *xdisplay, +- XEvent *event, +- XPointer window_id); ++static Bool property_notify_predicate (Display *display, ++ XEvent *xevent, ++ XPointer arg); ++ ++static GtkLayout *find_layout (GtkWindow *window); + + static void window_delete_cb (GtkWidget *widget, GdkEvent *event, + jobject peer); + static void window_destroy_cb (GtkWidget *widget, GdkEvent *event, + jobject peer); + static void window_show_cb (GtkWidget *widget, jobject peer); ++static void window_active_state_change_cb (GtkWidget *widget, ++ GParamSpec *pspec, ++ jobject peer); ++static void window_focus_state_change_cb (GtkWidget *widget, ++ GParamSpec *pspec, ++ jobject peer); + static gboolean window_focus_in_cb (GtkWidget * widget, +- GdkEventFocus *event, +- jobject peer); ++ GdkEventFocus *event, ++ jobject peer); + static gboolean window_focus_out_cb (GtkWidget * widget, +- GdkEventFocus *event, +- jobject peer); ++ GdkEventFocus *event, ++ jobject peer); + static gboolean window_window_state_cb (GtkWidget *widget, + GdkEvent *event, + jobject peer); +@@ -73,10 +85,6 @@ + GdkEventProperty *event, + jobject peer); + +-/* +- * Make a new window. +- */ +- + JNIEXPORT void JNICALL + Java_gnu_java_awt_peer_gtk_GtkWindowPeer_create + (JNIEnv *env, jobject obj, jint type, jboolean decorated, +@@ -96,7 +104,6 @@ + insets = (*env)->GetIntArrayElements (env, jinsets, 0); + insets[0] = insets[1] = insets[2] = insets[3] = 0; + +- /* Create global reference and save it for future use */ + NSA_SET_GLOBAL_REF (env, obj); + + gdk_threads_enter (); +@@ -155,6 +162,56 @@ + } + + JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetTitle ++ (JNIEnv *env, jobject obj, jstring title) ++{ ++ const char *c_title; ++ void *ptr; ++ ++ ptr = NSA_GET_PTR (env, obj); ++ ++ c_title = (*env)->GetStringUTFChars (env, title, NULL); ++ ++ gdk_threads_enter (); ++ ++ gtk_window_set_title (GTK_WINDOW (ptr), c_title); ++ ++ gdk_threads_leave (); ++ ++ (*env)->ReleaseStringUTFChars (env, title, c_title); ++} ++ ++JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetResizable ++ (JNIEnv *env, jobject obj, jboolean resizable) ++{ ++ void *ptr; ++ ++ ptr = NSA_GET_PTR (env, obj); ++ ++ gdk_threads_enter (); ++ ++ gtk_window_set_policy (GTK_WINDOW (ptr), resizable, resizable, FALSE); ++ ++ gdk_threads_leave (); ++} ++ ++JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetModal ++ (JNIEnv *env, jobject obj, jboolean modal) ++{ ++ void *ptr; ++ ++ ptr = NSA_GET_PTR (env, obj); ++ ++ gdk_threads_enter (); ++ ++ gtk_window_set_modal (GTK_WINDOW (ptr), modal); ++ ++ gdk_threads_leave (); ++} ++ ++JNIEXPORT void JNICALL + Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetVisible + (JNIEnv *env, jobject obj, jboolean visible) + { +@@ -179,39 +236,22 @@ + (JNIEnv *env, jobject obj) + { + void *ptr; +- GtkWidget* vbox, *layout; +- GList* children; ++ GtkLayout *layout; + + ptr = NSA_GET_PTR (env, obj); + + gdk_threads_enter (); + +- children = gtk_container_get_children(GTK_CONTAINER(ptr)); +- vbox = children->data; +- +- if(!GTK_IS_VBOX(vbox)) +- { +- printf("*** this is not a vbox\n"); +- } +- children = gtk_container_get_children(GTK_CONTAINER(vbox)); +- layout = children->data; ++ layout = find_layout (GTK_WINDOW (ptr)); + +- if(!GTK_IS_LAYOUT(layout)) +- { +- printf("*** widget is not a layout ***"); +- } ++ gtk_widget_realize (GTK_WIDGET (layout)); + +- gtk_widget_realize (layout); +- +- connect_awt_hook (env, obj, 1, GTK_LAYOUT (layout)->bin_window); ++ connect_awt_hook (env, obj, 1, layout->bin_window); + + gtk_widget_realize (ptr); + + connect_awt_hook (env, obj, 1, GTK_WIDGET (ptr)->window); + +- g_signal_connect (G_OBJECT (ptr), "property-notify-event", +- G_CALLBACK (window_property_changed_cb), obj); +- + gdk_threads_leave (); + } + +@@ -219,14 +259,24 @@ + Java_gnu_java_awt_peer_gtk_GtkWindowPeer_connectSignals + (JNIEnv *env, jobject obj) + { +- void *ptr = NSA_GET_PTR (env, obj); +- jobject *gref = NSA_GET_GLOBAL_REF (env, obj); +- g_assert (gref); ++ void *ptr; ++ jobject *gref; ++ GtkLayout *layout; ++ ++ ptr = NSA_GET_PTR (env, obj); ++ ++ gref = NSA_GET_GLOBAL_REF (env, obj); + + gdk_threads_enter (); + + gtk_widget_realize (ptr); + ++ /* Receive events from the GtkLayout too */ ++ layout = find_layout (GTK_WINDOW (ptr)); ++ ++ g_signal_connect (G_OBJECT (layout), "event", ++ G_CALLBACK (pre_event_handler), *gref); ++ + /* Connect signals for window event support. */ + g_signal_connect (G_OBJECT (ptr), "delete-event", + G_CALLBACK (window_delete_cb), *gref); +@@ -237,15 +287,24 @@ + g_signal_connect (G_OBJECT (ptr), "show", + G_CALLBACK (window_show_cb), *gref); + ++ g_signal_connect (G_OBJECT (ptr), "notify::is-active", ++ G_CALLBACK (window_active_state_change_cb), *gref); ++ ++ g_signal_connect (G_OBJECT (ptr), "notify::has-toplevel-focus", ++ G_CALLBACK (window_focus_state_change_cb), *gref); ++ + g_signal_connect (G_OBJECT (ptr), "focus-in-event", +- G_CALLBACK (window_focus_in_cb), *gref); ++ G_CALLBACK (window_focus_in_cb), *gref); + + g_signal_connect (G_OBJECT (ptr), "focus-out-event", +- G_CALLBACK (window_focus_out_cb), *gref); ++ G_CALLBACK (window_focus_out_cb), *gref); + + g_signal_connect (G_OBJECT (ptr), "window-state-event", + G_CALLBACK (window_window_state_cb), *gref); + ++ g_signal_connect (G_OBJECT (ptr), "property-notify-event", ++ G_CALLBACK (window_property_changed_cb), *gref); ++ + gdk_threads_leave (); + + /* Connect the superclass signals. */ +@@ -253,28 +312,6 @@ + } + + /* +- * Set a frame's title +- */ +- +-JNIEXPORT void JNICALL +-Java_gnu_java_awt_peer_gtk_GtkWindowPeer_setTitle +- (JNIEnv *env, jobject obj, jstring title) +-{ +- void *ptr; +- const char *str; +- +- ptr = NSA_GET_PTR (env, obj); +- +- str = (*env)->GetStringUTFChars (env, title, NULL); +- +- gdk_threads_enter (); +- gtk_window_set_title (GTK_WINDOW (ptr), str); +- gdk_threads_leave (); +- +- (*env)->ReleaseStringUTFChars (env, title, str); +-} +- +-/* + * Lower the z-level of a window. + */ + +@@ -348,6 +385,20 @@ + + gdk_threads_enter (); + gtk_window_move (GTK_WINDOW(ptr), x, y); ++ /* The call to gdk_window_move is needed in addition to the call to ++ gtk_window_move. If gdk_window_move isn't called, then the ++ following set of operations doesn't give the expected results: ++ ++ 1. show a window ++ 2. manually move it to another position on the screen ++ 3. hide the window ++ 4. reposition the window with Component.setLocation ++ 5. show the window ++ ++ Instead of being at the position set by setLocation, the window ++ is reshown at the position to which it was moved manually. */ ++ gdk_window_move (GTK_WIDGET (ptr)->window, x, y); ++ + /* Need to change the widget's request size. */ + gtk_widget_set_size_request (GTK_WIDGET(ptr), width, height); + /* Also need to call gtk_window_resize. If the resize is requested +@@ -358,46 +409,196 @@ + } + + JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkFramePeer_removeMenuBarPeer ++ (JNIEnv *env, jobject obj) ++{ ++ void *wptr; ++ GtkWidget *box; ++ GtkWidget *mptr; ++ GList* children; ++ ++ wptr = NSA_GET_PTR (env, obj); ++ ++ gdk_threads_enter (); ++ ++ box = GTK_BIN (wptr)->child; ++ ++ children = gtk_container_get_children (GTK_CONTAINER (box)); ++ ++ while (children != NULL && !GTK_IS_MENU_SHELL (children->data)) ++ { ++ children = children->next; ++ } ++ ++ /* If there isn't a MenuBar in this Frame's list of children ++ then we can just return. */ ++ if (!GTK_IS_MENU_SHELL (children->data)) ++ return; ++ else ++ mptr = children->data; ++ ++ /* This will actually destroy the MenuBar. By removing it from ++ its parent, the reference count for the MenuBar widget will ++ decrement to 0. The widget will be automatically destroyed ++ by Gtk. */ ++ gtk_container_remove (GTK_CONTAINER (box), GTK_WIDGET (mptr)); ++ ++ gdk_threads_leave(); ++} ++ ++JNIEXPORT void JNICALL + Java_gnu_java_awt_peer_gtk_GtkFramePeer_setMenuBarPeer + (JNIEnv *env, jobject obj, jobject menubar) + { +- void *wptr, *mptr; +- GtkBox *box; +- +- if (!menubar) return; ++ void *wptr; ++ GtkWidget *mptr; ++ GtkWidget *box; + + wptr = NSA_GET_PTR (env, obj); + mptr = NSA_GET_PTR (env, menubar); ++ ++ gdk_threads_enter (); + +- if (!mptr) return; /* this case should remove a menu */ ++ box = GTK_BIN (wptr)->child; ++ gtk_box_pack_start (GTK_BOX (box), mptr, 0, 0, 0); ++ ++ gtk_widget_show (mptr); + +- gdk_threads_enter (); +- box = GTK_BOX (GTK_BIN (wptr)->child); +- gtk_box_pack_start (box, GTK_WIDGET (mptr), 0, 0, 0); ++ + gdk_threads_leave (); + } + + JNIEXPORT jint JNICALL + Java_gnu_java_awt_peer_gtk_GtkFramePeer_getMenuBarHeight +- (JNIEnv *env, jobject obj) ++ (JNIEnv *env, jobject obj __attribute__((unused)), jobject menubar) ++{ ++ GtkWidget *ptr; ++ jint height; ++ GtkRequisition gtkreq; ++ ++ ptr = NSA_GET_PTR (env, menubar); ++ ++ gdk_threads_enter (); ++ gtk_widget_size_request (ptr, >kreq); ++ ++ height = gtkreq.height; ++ gdk_threads_leave (); ++ return height; ++} ++ ++JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkFramePeer_moveLayout ++ (JNIEnv *env, jobject obj, jint offset) ++{ ++ void* ptr; ++ GList* children; ++ GtkLayout* layout; ++ GtkWidget* widget; ++ ++ ptr = NSA_GET_PTR (env, obj); ++ ++ gdk_threads_enter (); ++ ++ layout = find_layout (GTK_WINDOW (ptr)); ++ ++ children = gtk_container_get_children (GTK_CONTAINER (layout)); ++ ++ while (children != NULL) ++ { ++ widget = children->data; ++ gtk_layout_move (layout, widget, widget->allocation.x, ++ widget->allocation.y+offset); ++ children = children->next; ++ } ++ ++ gdk_threads_leave (); ++} ++ ++JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkFramePeer_gtkLayoutSetVisible ++ (JNIEnv *env, jobject obj, jboolean visible) ++{ ++ void* ptr; ++ GtkLayout* layout; ++ ++ ptr = NSA_GET_PTR (env, obj); ++ ++ gdk_threads_enter (); ++ ++ layout = find_layout (GTK_WINDOW (ptr)); ++ ++ if (visible) ++ gtk_widget_show (GTK_WIDGET (layout)); ++ else ++ gtk_widget_hide (GTK_WIDGET (layout)); ++ ++ gdk_threads_leave (); ++} ++ ++JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkFramePeer_nativeSetIconImageFromDecoder ++ (JNIEnv *env, jobject obj, jobject decoder) + { + void *ptr; +- GList *children; +- jint height = 0; ++ GdkPixbufLoader *loader = NULL; ++ GdkPixbuf *pixbuf = NULL; + + ptr = NSA_GET_PTR (env, obj); + ++ loader = NSA_GET_PB_PTR (env, decoder); ++ g_assert (loader != NULL); ++ + gdk_threads_enter (); +- children = gtk_container_children (GTK_CONTAINER (GTK_BIN (ptr)->child)); +- if (g_list_length (children) == 2) +- { +- GtkWidget *menubar = GTK_WIDGET (children->data); +- height = menubar->allocation.height; + +- } ++ pixbuf = gdk_pixbuf_loader_get_pixbuf (loader); ++ g_assert (pixbuf != NULL); ++ ++ gtk_window_set_icon (GTK_WINDOW (ptr), pixbuf); ++ + gdk_threads_leave (); ++} + +- return height; ++void free_pixbuf_data (guchar *pixels, gpointer data __attribute__((unused))) ++{ ++ free(pixels); ++} ++ ++JNIEXPORT void JNICALL ++Java_gnu_java_awt_peer_gtk_GtkFramePeer_nativeSetIconImageFromData ++ (JNIEnv *env, jobject obj, jintArray pixelArray, jint width, jint height) ++{ ++ void *ptr; ++ GdkPixbuf *pixbuf; ++ jint *pixels; ++ int pixels_length, i; ++ guchar *data; ++ ++ ptr = NSA_GET_PTR (env, obj); ++ ++ pixels = (*env)->GetIntArrayElements (env, pixelArray, 0); ++ pixels_length = (*env)->GetArrayLength (env, pixelArray); ++ ++ data = malloc (sizeof (guchar) * pixels_length); ++ for (i = 0; i < pixels_length; i++) ++ data[i] = (guchar) pixels[i]; ++ ++ gdk_threads_enter (); ++ ++ pixbuf = gdk_pixbuf_new_from_data (data, ++ GDK_COLORSPACE_RGB, ++ TRUE, ++ 8, ++ width, ++ height, ++ width*4, ++ free_pixbuf_data, ++ NULL); ++ ++ gtk_window_set_icon (GTK_WINDOW (ptr), pixbuf); ++ ++ gdk_threads_leave (); ++ ++ (*env)->ReleaseIntArrayElements(env, pixelArray, pixels, 0); + } + + static void +@@ -491,7 +692,7 @@ + } + } + +-static int ++static Bool + property_notify_predicate (Display *xdisplay __attribute__((unused)), + XEvent *event, + XPointer window_id) +@@ -502,7 +703,7 @@ + && event->xany.window == *window + && event->xproperty.atom == extents_atom) + return True; +- ++ else + return False; + } + +@@ -538,40 +739,65 @@ + (jobject) NULL, (jint) 0); + } + ++static void ++window_active_state_change_cb (GtkWidget *widget, ++ GParamSpec *pspec, ++ jobject peer) ++{ ++ /* FIXME: not sure if this is needed or not. */ ++#if 0 ++ if (GTK_WINDOW (widget)->is_active) ++ (*gdk_env)->CallVoidMethod (gdk_env, peer, ++ postWindowEventID, ++ (jint) AWT_WINDOW_GAINED_FOCUS, ++ (jobject) NULL, (jint) 0); ++ else ++ (*gdk_env)->CallVoidMethod (gdk_env, peer, ++ postWindowEventID, ++ (jint) AWT_WINDOW_DEACTIVATED, ++ (jobject) NULL, (jint) 0); ++#endif ++ } ++ ++static void ++window_focus_state_change_cb (GtkWidget *widget, ++ GParamSpec *pspec, ++ jobject peer) ++ { ++ if (GTK_WINDOW (widget)->has_toplevel_focus) ++ (*gdk_env)->CallVoidMethod (gdk_env, peer, ++ postWindowEventID, ++ (jint) AWT_WINDOW_ACTIVATED, ++ (jobject) NULL, (jint) 0); ++ else ++ (*gdk_env)->CallVoidMethod (gdk_env, peer, ++ postWindowEventID, ++ (jint) AWT_WINDOW_DEACTIVATED, ++ (jobject) NULL, (jint) 0); ++ } ++ + static gboolean +-window_focus_in_cb (GtkWidget * widget __attribute__((unused)), +- GdkEventFocus *event __attribute__((unused)), +- jobject peer) ++window_focus_in_cb (GtkWidget * widget, ++ GdkEventFocus *event, ++ jobject peer) + { +- /* FIXME: when hiding then showing, we get two sets of +- (LOST_FOCUS/DEACTIVATED, ACTIVATED/GAINED_FOCUS) events. */ + (*gdk_env)->CallVoidMethod (gdk_env, peer, +- postWindowEventID, +- (jint) AWT_WINDOW_ACTIVATED, +- (jobject) NULL, (jint) 0); +- +- (*gdk_env)->CallVoidMethod (gdk_env, peer, +- postWindowEventID, +- (jint) AWT_WINDOW_GAINED_FOCUS, +- (jobject) NULL, (jint) 0); +- return TRUE; ++ postWindowEventID, ++ (jint) AWT_WINDOW_GAINED_FOCUS, ++ (jobject) NULL, (jint) 0); ++ return FALSE; + } + + static gboolean +-window_focus_out_cb (GtkWidget * widget __attribute__((unused)), +- GdkEventFocus *event __attribute__((unused)), +- jobject peer) ++window_focus_out_cb (GtkWidget * widget, ++ GdkEventFocus *event, ++ jobject peer) + { + (*gdk_env)->CallVoidMethod (gdk_env, peer, +- postWindowEventID, +- (jint) AWT_WINDOW_LOST_FOCUS, +- (jobject) NULL, (jint) 0); +- +- (*gdk_env)->CallVoidMethod (gdk_env, peer, +- postWindowEventID, +- (jint) AWT_WINDOW_DEACTIVATED, +- (jobject) NULL, (jint) 0); +- return TRUE; ++ postWindowEventID, ++ (jint) AWT_WINDOW_LOST_FOCUS, ++ (jobject) NULL, (jint) 0); ++ return FALSE; + } + + static gboolean +@@ -675,6 +901,7 @@ + gtkwindowpeer, + "postInsetsChangedEvent", + "(IIII)V"); ++ id_set = 1; + } + + if (gdk_atom_intern ("_NET_FRAME_EXTENTS", FALSE) == event->atom +@@ -697,3 +924,26 @@ + + return FALSE; + } ++ ++static GtkLayout * ++find_layout (GtkWindow *window) ++{ ++ GList* children; ++ GtkBox* vbox; ++ GtkLayout* layout; ++ ++ children = gtk_container_get_children (GTK_CONTAINER (window)); ++ vbox = children->data; ++ g_assert (GTK_IS_VBOX (vbox)); ++ ++ children = gtk_container_get_children (GTK_CONTAINER (vbox)); ++ do ++ { ++ layout = children->data; ++ children = children->next; ++ } ++ while (!GTK_IS_LAYOUT (layout) && children != NULL); ++ g_assert (GTK_IS_LAYOUT (layout)); ++ ++ return layout; ++} +Index: jni/gtk-peer/gthread-jni.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gthread-jni.c,v +retrieving revision 1.3 +diff -u -r1.3 gthread-jni.c +--- jni/gtk-peer/gthread-jni.c 8 Oct 2003 15:49:33 -0000 1.3 ++++ jni/gtk-peer/gthread-jni.c 6 Sep 2004 16:36:14 -0000 +@@ -1,5 +1,5 @@ + /* gthread-jni.c -- JNI threading routines for GLIB +- Copyright (C) 1998 Free Software Foundation, Inc. ++ Copyright (C) 1998, 2004 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -40,130 +40,1166 @@ + /************************************************************************/ + + /* +- * Julian Dolby (dolby@us.ibm.com) +- * February 7, 2003 ++ * @author Julian Dolby (dolby@us.ibm.com) ++ * @date February 7, 2003 implemented for GLIB v.1 ++ * ++ * ++ * @author Steven Augart ++ * , ++ * @date April 30, 2004 -- May 10 2004: Support new functions for Glib v.2, ++ * fix cond_wait to free and re-acquire the mutex, ++ * replaced trylock stub implementation with a full one. + * + * This code implements the GThreadFunctions interface for GLIB using + * Java threading primitives. All of the locking and conditional variable + * functionality required by GThreadFunctions is implemented using the + * monitor and wait/notify functionality of Java objects. The thread- +- * local fucntionality uses the java.lang.ThreadLocal class. ++ * local functionality uses the java.lang.ThreadLocal class. ++ * ++ * Classpath's AWT support uses GTK+ peers. GTK+ uses GLIB. GLIB by default ++ * uses the platform's native threading model -- pthreads in most cases. If ++ * the Java runtime doesn't use the native threading model, then it needs this ++ * code in order to use Classpath's (GTK+-based) AWT routines. + * +- * This code is designed to be portable in that it makes no assumptions ++ * This code should be portable; I believe it makes no assumptions + * about the underlying VM beyond that it implements the JNI functionality + * that this code uses. + * +- * The one piece that does not really work is trylock for mutexes. The +- * Java locking model does not include such functionality, and I do not +- * see how to implement it without knowing something about how the VM +- * implements locking. ++ * Currently, use of this code is governed by the configuration option ++ * --enable-portable-native-sync. We will soon add a VM hook so the VM can ++ * select which threading model it wants to use at run time; at that point, ++ * the configuration option will go away. ++ * ++ * The code in this file uses only JNI 1.1, except for one JNI 1.2 function: ++ * GetEnv, in the JNI Invocation API. (There seems to be no way around using ++ * GetEnv). ++ * ++ * ACKNOWLEDGEMENT: ++ * ++ * I would like to thank Mark Wielaard for his kindness in spending at least ++ * six hours of his own time in reviewing this code and correcting my GNU ++ * coding and commenting style. --Steve Augart ++ * + * + * NOTES: + * +- * I have tested it only on JikesRVM---the CVS head as of early February +- * 2003. ++ * This code has been tested with Jikes RVM and with Kaffe. + * +- * Currently, use of this code is governed by the configuration option +- * --enable-portable-native-sync ++ * This code should have proper automated unit tests. I manually tested it ++ * by running an application that uses AWT. --Steven Augart + * ++ * MINOR NIT: ++ * ++ * - Using a jboolean in the arglist to "throw()" and "rethrow()" ++ * triggers many warnings from GCC's -Wconversion operation, because that ++ * is not the same as the conversion (upcast to an int) that would occur in ++ * the absence of a prototype. ++ * ++ * It would be very slightly more efficient to just pass the jboolean, but ++ * is not worth the clutter of messages. The right solution would be to ++ * turn off the -Wconversion warning for just this file, *except* that ++ * -Wconversion also warns you against constructs such as: ++ * unsigned u = -1; ++ * and that is a useful warning. So I went from a "jboolean" to a ++ * "gboolean" (-Wconversion is not enabled by default for GNU Classpath, ++ * but it is in my own CFLAGS, which, for gcc 3.3.3, read: -pipe -ggdb3 -W ++ * -Wall -Wbad-function-cast -Wcast-align -Wpointer-arith -Wcast-qual ++ * -Wshadow -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations ++ * -fkeep-static-consts -fkeep-inline-functions -Wundef -Wwrite-strings ++ * -Wno-aggregate-return -Wmissing-noreturn -Wnested-externs -Wtrigraphs ++ * -Wconversion -Wsign-compare -Wno-float-equal -Wmissing-format-attribute ++ * -Wno-unreachable-code -Wdisabled-optimization ) + */ + ++#include ++ ++/************************************************************************/ ++/* Configuration */ ++/************************************************************************/ ++ ++/** Tracing and Reporting **/ ++#define TRACE_API_CALLS 0 /* announce entry and exit into each method, ++ by printing to stderr. */ ++ ++#define TRACE_MONITORS 0 /* Every enterMonitor() and exitMonitor() goes ++ to stderr. */ ++ ++/** Trouble handling. There is a discussion below of this. **/ ++#define EXPLAIN_TROUBLE 1 /* Describe any unexpected trouble that ++ happens. This is a superset ++ of EXPLAIN_BROKEN, and if set trumps an ++ unset EXPLAIN_BROKEN. It is not a strict ++ superset, since at the moment there is no ++ TROUBLE that is not also BROKEN. ++ ++ Use criticalMsg() to describe the problem. ++ */ ++ ++#define EXPLAIN_BROKEN 1 /* Describe trouble that is serious enough to ++ be BROKEN. (Right now all trouble is at ++ least BROKEN.) */ ++ ++/* There is no EXPLAIN_BADLY_BROKEN definition. We always explain ++ BADLY_BROKEN trouble, since there is no other way to report it. */ ++ ++ ++/** Error Handling **/ ++#define DIE_IF_BROKEN 1 /* Dies if serious trouble happens. There is ++ really no non-serious trouble, except ++ possibly problems that arise during ++ pthread_create, which are reported by a ++ GError. ++ ++ If you do not set DIE_IF_BROKEN, then ++ trouble will raise a Java RuntimeException. ++ We probably do want to die right away, ++ since anything that's BROKEN really ++ indicates a programming error or a ++ system-wide error, and that's what the glib ++ documentation says you should do in case of ++ that kind of error in a glib-style ++ function. But it does work to turn this ++ off. */ ++ ++#if DIE_IF_BROKEN ++#define DIE_IF_BADLY_BROKEN 1 /* DIE_IF_BROKEN implies DIE_IF_BADLY_BROKEN */ ++#else ++#define DIE_IF_BADLY_BROKEN 1 /* Die if the system is badly broken -- ++ that is, if we have further trouble while ++ attempting to throw an exception ++ upwards, or if we are unable to generate ++ one of the classes we'll need in order to ++ throw wrapped exceptions upward. ++ ++ If unset, we will print a warning message, ++ and limp along anyway. Not that the system ++ is likely to work. */ ++#endif ++ ++/** Performance tuning parameters **/ ++ ++#define ENABLE_EXPENSIVE_ASSERTIONS 0 /* Enable expensive assertions? */ ++ ++#define DELETE_LOCAL_REFS 1 /* Whether to delete local references. ++ ++ JNI only guarantees that there wil be 16 ++ available. (Jikes RVM provides an number ++ only limited by VM memory.) ++ ++ Jikes RVM will probably perform faster if ++ this is turned off, but other VMs may need ++ this to be turned on in order to perform at ++ all, or might need it if things change. ++ ++ Remember, we don't know how many of those ++ local refs might have already been used up ++ by higher layers of JNI code that end up ++ calling g_thread_self(), ++ g_thread_set_private(), and so on. ++ ++ We set this to 1 for GNU Classpath, since ++ one of our principles is "always go for the ++ most robust implementation" */ ++ ++#define HAVE_JNI_VERSION_1_2 0 /* Assume we don't. We could ++ dynamically check for this. We will ++ assume JNI 1.2 in later versions of ++ Classpath. ++ ++ As it stands, the code in this file ++ already needs one JNI 1.2 function: ++ GetEnv, in the JNI Invocation API. ++ ++ TODO This code hasn't been tested yet. ++ And really hasn't been implemented yet. ++ */ + + /************************************************************************/ + /* Global data */ + /************************************************************************/ + ++#if defined HAVE_STDINT_H ++#include /* provides intptr_t */ ++#elif defined HAVE_INTTYPES_H ++#include ++#endif ++#include /* snprintf */ ++#include /* va_list */ + #include "gthread-jni.h" ++#include /* assert() */ ++ ++/* For Java thread priority constants. */ ++#include ++ ++/* Since not all JNI header generators actually define constants we ++ define them here explicitly. */ ++#ifndef gnu_java_awt_peer_gtk_GThreadNativeMethodRunner_MIN_PRIORITY ++#define gnu_java_awt_peer_gtk_GThreadNativeMethodRunner_MIN_PRIORITY 1 ++#endif ++#ifndef gnu_java_awt_peer_gtk_GThreadNativeMethodRunner_NORM_PRIORITY ++#define gnu_java_awt_peer_gtk_GThreadNativeMethodRunner_NORM_PRIORITY 5 ++#endif ++#ifndef gnu_java_awt_peer_gtk_GThreadNativeMethodRunner_MAX_PRIORITY ++#define gnu_java_awt_peer_gtk_GThreadNativeMethodRunner_MAX_PRIORITY 10 ++#endif ++ ++/* The VM handle. This is set in ++ Java_gnu_java_awt_peer_gtk_GtkMainThread_gtkInit */ ++JavaVM *the_vm; + +-/* The VM handle. This is set in GtkToolkitMain.gtkInit */ +-JavaVM *gdk_vm; ++/* Unions used for type punning. */ ++union env_union ++{ ++ void **void_env; ++ JNIEnv **jni_env; ++}; ++ ++union func_union ++{ ++ void *void_func; ++ GThreadFunc g_func; ++}; ++ ++/* Forward Declarations for Functions */ ++static int threadObj_set_priority (JNIEnv * env, jobject threadObj, ++ GThreadPriority gpriority); ++static void fatalMsg (const char fmt[], ...) ++ __attribute__ ((format (printf, 1, 2))) ++ __attribute__ ((noreturn)); ++ ++static void criticalMsg (const char fmt[], ...) ++ __attribute__ ((format (printf, 1, 2))); + ++static void tracing (const char fmt[], ...) ++ __attribute__ ((format (printf, 1, 2))); ++ ++static jint javaPriorityLevel (GThreadPriority priority) ++ __attribute__ ((const)); + + /************************************************************************/ +-/* Utilities to reflect exceptions back to the VM */ ++/* Trouble-handling, including utilities to reflect exceptions */ ++/* back to the VM. Also some status reporting. */ + /************************************************************************/ + +-/* This function checks for a pending exception, and rethrows it with ++/* How are we going to handle problems? ++ ++ There are several approaches: ++ ++ 1) Report them with the GError mechanism. ++ ++ (*thread_create)() is the only one of these functions that takes a ++ GError pointer. And the only G_THREAD error defined maps onto EAGAIN. ++ We don't have any errors in our (*thread_create)() implementation that ++ can be mapped to EAGAIN. So this idea is a non-starter. ++ ++ 2) Reflect the exception back to the VM, wrapped in a RuntimeException. ++ This will fail sometimes, if we're so broken (BADLY_BROKEN) that we ++ fail to throw the exception. ++ ++ 3) Abort execution. This is what the glib functions themselves do for ++ errors that they can't report via GError. ++ ++ Enable DIE_IF_BROKEN and/or DIE_IF_BADLY_BROKEN to ++ make this the default for BROKEN and/or BADLY_BROKEN trouble. ++ ++ 4) Display messages to stderr. We always do this for BADLY_BROKEN ++ trouble. The glib functions do that for errors they can't report via ++ GError. ++ ++ There are some complications. ++ ++ When I attempted to report a problem in g_thread_self() using g_critical (a ++ macro around g_log(), I found that g_log in turn looks for thread-private ++ data and calls g_thread_self() again. ++ ++ We got a segfault, probably due to stack overflow. So, this code doesn't ++ use the g_critical() and g_error() functions any more. Nor do we use ++ g_assert(); we use the C library's assert() instead. ++*/ ++ ++ ++#define WHERE __FILE__ ":" G_STRINGIFY(__LINE__) ": " ++ ++/* This is portable to older compilers that lack variable-argument macros. ++ This used to be just g_critical(), but then we ran into the error reporting ++ problem discussed above. ++*/ ++static void ++fatalMsg (const char fmt[], ...) ++{ ++ va_list ap; ++ va_start (ap, fmt); ++ vfprintf (stderr, fmt, ap); ++ va_end (ap); ++ fputs ("\nAborting execution\n", stderr); ++ abort (); ++} ++ ++ ++static void ++criticalMsg (const char fmt[], ...) ++{ ++ va_list ap; ++ va_start (ap, fmt); ++ vfprintf (stderr, fmt, ap); ++ va_end (ap); ++ putc ('\n', stderr); ++} ++ ++/* Unlike the other two, this one does not append a newline. This is only ++ used if one of the TRACE_ macros is defined. */ ++static void ++tracing (const char fmt[], ...) ++{ ++ va_list ap; ++ va_start (ap, fmt); ++ vfprintf (stderr, fmt, ap); ++ va_end (ap); ++} ++ ++#define assert_not_reached() \ ++ do \ ++ { \ ++ fputs(WHERE "You should never get here. Aborting execution.\n", \ ++ stderr); \ ++ abort(); \ ++ } \ ++ while(0) ++ ++ ++#if DIE_IF_BADLY_BROKEN ++#define BADLY_BROKEN fatalMsg ++#else ++#define BADLY_BROKEN criticalMsg ++/* So, the user may still attempt to recover, even though we do not advise ++ this. */ ++#endif ++ ++/* I find it so depressing to have to use C without varargs macros. */ ++#define BADLY_BROKEN_MSG WHERE "Something fundamental" \ ++ " to GNU Classpath's AWT JNI broke while we were trying to pass up a Java error message" ++ ++#define BADLY_BROKEN0() \ ++ BADLY_BROKEN(BADLY_BROKEN_MSG); ++#define BADLY_BROKEN1(msg) \ ++ BADLY_BROKEN(BADLY_BROKEN_MSG ": " msg) ++#define BADLY_BROKEN2(msg, arg) \ ++ BADLY_BROKEN(BADLY_BROKEN_MSG ": " msg, arg) ++#define BADLY_BROKEN3(msg, arg, arg2) \ ++ BADLY_BROKEN(BADLY_BROKEN_MSG ": " msg, arg1, arg2) ++#define BADLY_BROKEN4(msg, arg, arg2, arg3) \ ++ BADLY_BROKEN(BADLY_BROKEN_MSG ": " msg, arg1, arg2, arg3) ++ ++#define DELETE_LOCAL_REF(env, ref) \ ++ do \ ++ { \ ++ if ( DELETE_LOCAL_REFS ) \ ++ { \ ++ (*env)->DeleteLocalRef (env, ref); \ ++ (ref) = NULL; \ ++ } \ ++ } \ ++ while(0) ++ ++/* Cached info for Exception-wrapping */ ++ ++jclass runtimeException_class; /* java.lang.RuntimeException */ ++jmethodID runtimeException_ctor; /* constructor for it */ ++ ++ ++/* Throw a new RuntimeException. It may wrap around an existing exception. ++ 1 if we did rethrow, -1 if we had trouble while rethrowing. ++ isBroken is always true in this case. */ ++static int ++throw (JNIEnv * env, jthrowable cause, const char *message, ++ gboolean isBroken, const char *file, int line) ++{ ++ jstring jmessage; ++ gboolean describedException = FALSE; /* Did we already describe the ++ exception to stderr or the ++ equivalent? */ ++ jthrowable wrapper; ++ ++ /* allocate local message in Java */ ++ const char fmt[] = "In AWT JNI, %s (at %s:%d)"; ++ size_t len = strlen (message) + strlen (file) + sizeof fmt + 25; ++ char *buf; ++ ++ if (EXPLAIN_TROUBLE || (isBroken && EXPLAIN_BROKEN)) ++ { ++ criticalMsg ("%s:%d: AWT JNI failure%s: %s\n", file, line, ++ isBroken ? " (BROKEN)" : "", message); ++ if (cause) ++ { ++ jthrowable currentException = (*env)->ExceptionOccurred (env); ++ ++ if (cause == currentException) ++ { ++ criticalMsg ("Description follows to System.err:"); ++ (*env)->ExceptionDescribe (env); ++ /* ExceptionDescribe has the side-effect of clearing the pending ++ exception; relaunch it. */ ++ describedException = TRUE; ++ ++ if ((*env)->Throw (env, cause)) ++ { ++ BADLY_BROKEN1 ++ ("Relaunching an exception with Throw failed."); ++ return -1; ++ } ++ } ++ else ++ { ++ DELETE_LOCAL_REF (env, currentException); ++ criticalMsg (WHERE ++ "currentException != cause; something else happened" ++ " while handling an exception."); ++ } ++ } ++ } /* if (EXPLAIN_TROUBLE) */ ++ ++ if (isBroken && DIE_IF_BROKEN) ++ fatalMsg ("%s:%d: Aborting execution; BROKEN: %s\n", file, line, message); ++ ++ if ((buf = malloc (len))) ++ { ++ memset (buf, 0, len); ++ snprintf (buf, len, fmt, message, file, line); ++ jmessage = (*env)->NewStringUTF (env, buf); ++ free (buf); ++ } ++ else ++ { ++ jmessage = NULL; ++ } ++ ++ /* Create the RuntimeException wrapper object and throw it. It is OK for ++ CAUSE to be NULL. */ ++ wrapper = (jthrowable) (*env)->NewObject ++ (env, runtimeException_class, runtimeException_ctor, jmessage, cause); ++ DELETE_LOCAL_REF (env, jmessage); ++ ++ if (!wrapper) ++ { ++ /* I think this should only happen: ++ - if there are bugs in my JNI code, or ++ - if the VM is broken, or ++ - if we run out of memory. ++ */ ++ if (EXPLAIN_TROUBLE) ++ { ++ criticalMsg (WHERE "GNU Classpath: JNI NewObject() could not create" ++ " a new java.lang.RuntimeException."); ++ criticalMsg ("We were trying to warn about the following" ++ " previous failure:"); ++ criticalMsg ("%s:%d: %s", file, line, message); ++ criticalMsg ("The latest (NewObject()) exception's description" ++ " follows, to System.err:"); ++ (*env)->ExceptionDescribe (env); ++ } ++ BADLY_BROKEN1 ("Failure of JNI NewObject()" ++ " to make a java.lang.RuntimeException"); ++ return -1; ++ } ++ ++ ++ /* throw it */ ++ if ((*env)->Throw (env, wrapper)) ++ { ++ /* Throw() should just never fail, unless we're in such severe trouble ++ that we might as well die. */ ++ BADLY_BROKEN1 ++ ("GNU Classpath: Failure of JNI Throw to report an Exception"); ++ return -1; ++ } ++ ++ DELETE_LOCAL_REF (env, wrapper); ++ return 1; ++} ++ ++ ++ ++/* Rethrow an exception we received, wrapping it with a RuntimeException. 1 ++ if we did rethrow, -1 if we had trouble while rethrowing. ++ CAUSE should be identical to the most recent exception that happened, so ++ that ExceptionDescribe will work. (Otherwise nix.) */ ++static int ++rethrow (JNIEnv * env, jthrowable cause, const char *message, ++ gboolean isBroken, const char *file, int line) ++{ ++ assert (cause); ++ return throw (env, cause, message, isBroken, file, line); ++} ++ ++ ++/* This function checks for a pending exception, and rethrows it with + * a wrapper RuntimeException to deal with possible type problems (in + * case some calling piece of code does not expect the exception being + * thrown) and to include the given extra message. ++ * ++ * Returns 0 if no problems found (so no exception thrown), 1 if we rethrew an ++ * exception. Returns -1 on failure. + */ +-static void maybe_rethrow(JNIEnv *gdk_env, char *message, char *file, int line) { +- jthrowable cause; ++static int ++maybe_rethrow (JNIEnv * env, const char *message, gboolean isBroken, ++ const char *file, int line) ++{ ++ jthrowable cause = (*env)->ExceptionOccurred (env); ++ int ret = 0; + + /* rethrow if an exception happened */ +- if ((cause = (*gdk_env)->ExceptionOccurred(gdk_env)) != NULL) { +- jstring jmessage; +- jclass obj_class; +- jobject obj; +- jmethodID ctor; +- +- /* allocate local message in Java */ +- int len = strlen(message) + strlen(file) + 25; +- char buf[ len ]; +- bzero(buf, len); +- sprintf(buf, "%s (at %s:%d)", message, file, line); +- jmessage = (*gdk_env)->NewStringUTF(gdk_env, buf); +- +- /* create RuntimeException wrapper object */ +- obj_class = (*gdk_env)->FindClass (gdk_env, "java/lang/RuntimeException"); +- ctor = (*gdk_env)->GetMethodID(gdk_env, obj_class, "", "(Ljava/langString;Ljava/lang/Throwable)V"); +- obj = (*gdk_env)->NewObject (gdk_env, obj_class, ctor, jmessage, cause); +- +- /* throw it */ +- (*gdk_env)->Throw(gdk_env, (jthrowable)obj); ++ if (cause) ++ { ++ ret = rethrow (env, cause, message, isBroken, file, line); ++ DELETE_LOCAL_REF (env, cause); ++ } ++ ++ return 0; ++} ++ ++/* MAYBE_TROUBLE() is used to include a source location in the exception ++ message. Once we have run maybe_rethrow, if there WAS trouble, ++ return TRUE, else FALSE. ++ ++ MAYBE_TROUBLE() is actually never used; all problems that throw exceptions ++ are BROKEN, at least. Nothing is recoverable :(. See the discussion of ++ possible errors at thread_create_jni_impl(). */ ++#define MAYBE_TROUBLE(_env, _message) \ ++ maybe_rethrow(_env, _message, FALSE, __FILE__, __LINE__) ++ ++/* MAYBE_TROUBLE(), but something would be BROKEN if it were true. */ ++#define MAYBE_BROKEN(_env, _message) \ ++ maybe_rethrow(_env, _message, TRUE, __FILE__, __LINE__) ++ ++/* Like MAYBE_TROUBLE(), TROUBLE() is never used. */ ++#define TROUBLE(_env, _message) \ ++ rethrow(_env, (*env)->ExceptionOccurred (env), _message, FALSE, \ ++ __FILE__, __LINE__) ++ ++#define BROKEN(_env, _message) \ ++ rethrow (_env, (*env)->ExceptionOccurred (env), _message, TRUE, \ ++ __FILE__, __LINE__) ++ ++/* Like MAYBE_TROUBLE(), NEW_TROUBLE() is never used. */ ++#define NEW_TROUBLE(_env, _message) \ ++ throw (_env, NULL, _message, FALSE, __FILE__, __LINE__) ++ ++#define NEW_BROKEN(_env, _message) \ ++ throw (_env, NULL, _message, TRUE, __FILE__, __LINE__) ++ ++/* Like MAYBE_TROUBLE(), RETHROW_CAUSE() is never used. */ ++#define RETHROW_CAUSE(_env, _cause, _message) \ ++ rethrow (_env, _cause, _message, FALSE, __FILE__, __LINE__) ++ ++#define BROKEN_CAUSE(_env, _cause, _message) \ ++ rethrow (_env, _cause, _message, TRUE, __FILE__, __LINE__) ++ ++/* Macros to handle the possibility that someone might have called one of the ++ GThreadFunctions API functions with a Java exception pending. It is ++ generally discouraged to continue to use JNI after a Java exception has ++ been raised. Sun's JNI book advises that one trap JNI errors immediately ++ and not continue with an exception pending. ++ ++ These are #if'd out for these reasons: ++ ++ 1) They do not work in the C '89 subset that Classpath is currently ++ (2004 May 10) sticking to; HIDE_OLD_TROUBLE() includes a declaration ++ that should be in scope for the rest of the function, so it needs a ++ language version that lets you mix declarations and statements. (This ++ could be worked around if it were important.) ++ ++ 2) They chew up more time and resources. ++ ++ 3) There does not ever seem to be old trouble -- the assertion in ++ HIDE_OLD_TROUBLE never goes off. ++ ++ You will want to re-enable them if this code needs to be used in a context ++ where old exceptions might be pending when the GThread functions are ++ called. ++ ++ The implementations in this file are responsible for skipping around calls ++ to SHOW_OLD_TROUBLE() if they've raised exceptions during the call. So, if ++ we reach SHOW_OLD_TROUBLE, we are guaranteed that there are no exceptions ++ pending. */ ++#if 1 ++#define HIDE_OLD_TROUBLE(env) \ ++ assert ( NULL == (*env)->ExceptionOccurred (env) ) ++ ++#define SHOW_OLD_TROUBLE() \ ++ assert ( NULL == (*env)->ExceptionOccurred (env) ) ++#else /* 0 */ ++#define HIDE_OLD_TROUBLE(env) \ ++ jthrowable savedTrouble = (*env)->ExceptionOccurred (env); \ ++ (*env)->ExceptionClear (env); ++ ++#define SHOW_OLD_TROUBLE() do \ ++{ \ ++ assert ( NULL == (*env)->ExceptionOccurred (env) ) \ ++ if (savedTrouble) \ ++ { \ ++ if ((*env)->Throw (env, savedTrouble)) \ ++ BADLY_BROKEN ("ReThrowing the savedTrouble failed"); \ ++ } \ ++ DELETE_LOCAL_REF (env, savedTrouble); \ ++} while(0) ++ ++#endif /* 0 */ ++ ++/* Set up the cache of jclass and jmethodID primitives we need ++ in order to throw new exceptions and rethrow exceptions. We do this ++ independently of the other caching. We need to have this cache set up ++ first, so that we can then report errors properly. ++ ++ If any errors while setting up the error cache, the world is BADLY_BROKEN. ++ ++ May be called more than once. ++ ++ Returns -1 if the cache was not initialized properly, 1 if it was. ++*/ ++static int ++setup_exception_cache (JNIEnv * env) ++{ ++ static int exception_cache_initialized = 0; /* -1 for trouble, 1 for proper ++ init. */ ++ ++ jclass lcl_class; /* a class used for local refs */ ++ ++ if (exception_cache_initialized) ++ return exception_cache_initialized; ++ lcl_class = (*env)->FindClass (env, "java/lang/RuntimeException"); ++ if ( ! lcl_class ) ++ { ++ BADLY_BROKEN1 ("Broken Class library or VM?" ++ " Couldn't find java/lang/RuntimeException"); ++ return exception_cache_initialized = -1; ++ } ++ /* Pin it down. */ ++ runtimeException_class = (jclass) (*env)->NewGlobalRef (env, lcl_class); ++ DELETE_LOCAL_REF (env, lcl_class); ++ if (!runtimeException_class) ++ { ++ BADLY_BROKEN1 ("Serious trouble: could not turn" ++ " java.lang.RuntimeException into a global reference"); ++ return exception_cache_initialized = -1; ++ } ++ ++ runtimeException_ctor = ++ (*env)->GetMethodID (env, runtimeException_class, "", ++ "(Ljava/lang/String;Ljava/lang/Throwable;)V"); ++ if ( ! runtimeException_ctor ) ++ { ++ BADLY_BROKEN1 ("Serious trouble: classpath couldn't find a" ++ " two-arg constructor for java/lang/RuntimeException"); ++ return exception_cache_initialized = -1; ++ } ++ ++ return exception_cache_initialized = 1; ++} ++ ++ ++/**********************************************************/ ++/***** The main cache *************************************/ ++/**********************************************************/ ++ ++/** This is a cache of all classes, methods, and field IDs that we use during ++ the run. We maintain a permanent global reference to each of the classes ++ we cache, since otherwise the (local) jclass that refers to that class ++ would go out of scope and possibly be reused in further calls. ++ ++ The permanent global reference also achieves the secondary goal of ++ protecting the validity of the methods and field IDs in case the classes ++ were otherwise unloaded and then later loaded again. Obviously, this will ++ never happen to classes such as java.lang.Thread and java.lang.Object, but ++ the primary reason for maintaining permanent global refs is sitll valid. ++ ++ The code in jnilink.c has a similar objective. TODO: Consider using that ++ code instead. ++ ++ --Steven Augart ++*/ ++ ++/* All of these are cached classes and method IDs: */ ++/* java.lang.Object */ ++static jclass obj_class; /* java.lang.Object */ ++static jmethodID obj_ctor; /* no-arg Constructor for java.lang.Object */ ++static jmethodID obj_notify_mth; /* java.lang.Object.notify() */ ++static jmethodID obj_notifyall_mth; /* java.lang.Object.notifyall() */ ++static jmethodID obj_wait_mth; /* java.lang.Object.wait() */ ++static jmethodID obj_wait_nanotime_mth; /* java.lang.Object.wait(JI) */ ++ ++/* GThreadMutex and its methods */ ++static jclass mutex_class; ++static jmethodID mutex_ctor; ++static jfieldID mutex_lockForPotentialLockers_fld; ++static jfieldID mutex_potentialLockers_fld; ++ ++/* java.lang.Thread and its methods*/ ++static jclass thread_class; /* java.lang.Thread */ ++static jmethodID thread_current_mth; /* Thread.currentThread() */ ++static jmethodID thread_equals_mth; /* Thread.equals() */ ++static jmethodID thread_join_mth; /* Thread.join() */ ++static jmethodID thread_setPriority_mth; /* Thread.setPriority() */ ++static jmethodID thread_stop_mth; /* Thread.stop() */ ++static jmethodID thread_yield_mth; /* Thread.yield() */ ++ ++/* java.lang.ThreadLocal and its methods */ ++static jclass threadlocal_class; /* java.lang.ThreadLocal */ ++static jmethodID threadlocal_ctor; /* Its constructor */ ++static jmethodID threadlocal_set_mth; /* ThreadLocal.set() */ ++static jmethodID threadlocal_get_mth; /* ThreadLocal.get() */ ++ ++/* java.lang.Long and its methods */ ++static jclass long_class; /* java.lang.Long */ ++static jmethodID long_ctor; /* constructor for it: (J) */ ++static jmethodID long_longValue_mth; /* longValue()J */ ++ ++ ++/* GThreadNativeMethodRunner */ ++static jclass runner_class; ++static jmethodID runner_ctor; ++static jmethodID runner_threadToThreadID_mth; ++static jmethodID runner_threadIDToThread_mth; ++static jmethodID runner_deRegisterJoinable_mth; ++static jmethodID runner_start_mth; /* Inherited Thread.start() */ ++ ++ ++/* java.lang.InterruptedException */ ++static jclass interrupted_exception_class; ++ ++ ++ ++ ++/* Returns a negative value if there was trouble during initialization. ++ Returns a positive value of the cache was initialized correctly. ++ Never returns zero. */ ++static int ++setup_cache (JNIEnv * env) ++{ ++ jclass lcl_class; ++ static int initialized = 0; /* 1 means initialized, 0 means uninitialized, ++ -1 means mis-initialized */ ++ ++ if (initialized) ++ return initialized; ++ ++ /* make sure we can report on trouble */ ++ if (setup_exception_cache (env) < 0) ++ return initialized = -1; ++ ++#ifdef JNI_VERSION_1_2 ++ if (HAVE_JNI_VERSION_1_2) ++ assert ( ! (*env)->ExceptionCheck (env)); ++ else ++#endif ++ assert ( ! (*env)->ExceptionOccurred (env)); ++ ++ /* java.lang.Object and its methods */ ++ lcl_class = (*env)->FindClass (env, "java/lang/Object"); ++ if (!lcl_class) ++ { ++ BROKEN (env, "cannot find java.lang.Object"); ++ return initialized = -1; ++ } ++ ++ /* Pin it down. */ ++ obj_class = (jclass) (*env)->NewGlobalRef (env, lcl_class); ++ DELETE_LOCAL_REF (env, lcl_class); ++ if (!obj_class) ++ { ++ BROKEN (env, "Cannot get a global reference to java.lang.Object"); ++ return initialized = -1; ++ } ++ ++ obj_ctor = (*env)->GetMethodID (env, obj_class, "", "()V"); ++ if (!obj_ctor) ++ { ++ BROKEN (env, "cannot find constructor for java.lang.Object"); ++ return initialized = -1; ++ } ++ ++ obj_notify_mth = (*env)->GetMethodID (env, obj_class, "notify", "()V"); ++ if ( ! obj_notify_mth ) ++ { ++ BROKEN (env, "cannot find java.lang.Object.notify()V"); ++ return initialized = -1; ++ } ++ ++ obj_notifyall_mth = ++ (*env)->GetMethodID (env, obj_class, "notifyAll", "()V"); ++ if ( ! obj_notifyall_mth) ++ { ++ BROKEN (env, "cannot find java.lang.Object.notifyall()V"); ++ return initialized = -1; ++ } ++ ++ obj_wait_mth = (*env)->GetMethodID (env, obj_class, "wait", "()V"); ++ if ( ! obj_wait_mth ) ++ { ++ BROKEN (env, "cannot find Object."); ++ return initialized = -1; ++ } ++ ++ obj_wait_nanotime_mth = ++ (*env)->GetMethodID (env, obj_class, "wait", "(JI)V"); ++ if ( ! obj_wait_nanotime_mth ) ++ { ++ BROKEN (env, "cannot find Object."); ++ return initialized = -1; ++ } ++ ++ /* GThreadMutex and its methods */ ++ lcl_class = (*env)->FindClass (env, "gnu/java/awt/peer/gtk/GThreadMutex"); ++ if ( ! lcl_class) ++ { ++ BROKEN (env, "cannot find gnu.java.awt.peer.gtk.GThreadMutex"); ++ return initialized = -1; ++ } ++ /* Pin it down. */ ++ mutex_class = (jclass) (*env)->NewGlobalRef (env, lcl_class); ++ DELETE_LOCAL_REF (env, lcl_class); ++ if ( ! mutex_class) ++ { ++ BROKEN (env, "Cannot get a global reference to GThreadMutex"); ++ return initialized = -1; ++ } ++ ++ mutex_ctor = (*env)->GetMethodID (env, mutex_class, "", "()V"); ++ if ( ! mutex_ctor) ++ { ++ BROKEN (env, "cannot find zero-arg constructor for GThreadMutex"); ++ return initialized = -1; ++ } ++ ++ mutex_potentialLockers_fld = (*env)->GetFieldID ++ (env, mutex_class, "potentialLockers", "I"); ++ if ( ! mutex_class ) ++ { ++ BROKEN (env, "cannot find GThreadMutex.potentialLockers"); ++ return initialized = -1; ++ } ++ ++ if (! (mutex_lockForPotentialLockers_fld = (*env)->GetFieldID ++ (env, mutex_class, "lockForPotentialLockers", "Ljava/lang/Object;"))) ++ { ++ BROKEN (env, "cannot find GThreadMutex.lockForPotentialLockers"); ++ return initialized = -1; ++ } ++ ++ ++ /* java.lang.Thread */ ++ if (! (lcl_class = (*env)->FindClass (env, "java/lang/Thread"))) ++ { ++ BROKEN (env, "cannot find java.lang.Thread"); ++ return initialized = -1; ++ } ++ ++ /* Pin it down. */ ++ thread_class = (jclass) (*env)->NewGlobalRef (env, lcl_class); ++ DELETE_LOCAL_REF (env, lcl_class); ++ if (!thread_class) ++ { ++ BROKEN (env, "Cannot get a global reference to java.lang.Thread"); ++ return initialized = -1; ++ } ++ ++ thread_current_mth = ++ (*env)->GetStaticMethodID (env, thread_class, "currentThread", ++ "()Ljava/lang/Thread;"); ++ if (!thread_current_mth) ++ { ++ BROKEN (env, "cannot find Thread.currentThread() method"); ++ return initialized = -1; ++ } ++ ++ thread_equals_mth = ++ (*env)->GetMethodID (env, thread_class, "equals", "(Ljava/lang/Object;)Z"); ++ if (!thread_equals_mth) ++ { ++ BROKEN (env, "cannot find Thread.equals() method"); ++ return initialized = -1; ++ } ++ ++ thread_join_mth = (*env)->GetMethodID (env, thread_class, "join", "()V"); ++ if (!thread_join_mth) ++ { ++ BROKEN (env, "cannot find Thread.join() method"); ++ return initialized = -1; ++ } ++ ++ thread_stop_mth = (*env)->GetMethodID (env, thread_class, "stop", "()V"); ++ if ( ! thread_stop_mth ) ++ { ++ BROKEN (env, "cannot find Thread.stop() method"); ++ return initialized = -1; ++ } ++ ++ thread_setPriority_mth = ++ (*env)->GetMethodID (env, thread_class, "setPriority", "(I)V"); ++ if ( ! thread_setPriority_mth ) ++ { ++ BROKEN (env, "cannot find Thread.setPriority() method"); ++ return initialized = -1; ++ } ++ ++ thread_yield_mth = ++ (*env)->GetStaticMethodID (env, thread_class, "yield", "()V"); ++ if ( ! thread_yield_mth ) ++ { ++ BROKEN (env, "cannot find Thread.yield() method"); ++ return initialized = -1; ++ } ++ ++ /* java.lang.ThreadLocal */ ++ lcl_class = (*env)->FindClass (env, "java/lang/ThreadLocal"); ++ if ( ! lcl_class ) ++ { ++ BROKEN (env, "cannot find class java.lang.ThreadLocal"); ++ return initialized = -1; ++ } ++ ++ /* Pin it down. */ ++ threadlocal_class = (jclass) (*env)->NewGlobalRef (env, lcl_class); ++ DELETE_LOCAL_REF (env, lcl_class); ++ if ( ! threadlocal_class ) ++ { ++ BROKEN (env, "Cannot get a global reference to java.lang.ThreadLocal"); ++ return initialized = -1; ++ } ++ ++ threadlocal_ctor = (*env)->GetMethodID (env, threadlocal_class, ++ "", "()V"); ++ if ( ! threadlocal_ctor ) ++ { ++ BROKEN (env, "cannot find ThreadLocal.()V"); ++ return initialized = -1; ++ } ++ ++ threadlocal_get_mth = (*env)->GetMethodID (env, threadlocal_class, ++ "get", "()Ljava/lang/Object;"); ++ if ( ! threadlocal_get_mth ) ++ { ++ BROKEN (env, "cannot find java.lang.ThreadLocal.get()Object"); ++ return initialized = -1; + } ++ ++ threadlocal_set_mth = (*env)->GetMethodID (env, threadlocal_class, ++ "set", "(Ljava/lang/Object;)V"); ++ if ( ! threadlocal_set_mth ) ++ { ++ BROKEN (env, "cannot find ThreadLocal.set(Object)V"); ++ return initialized = -1; ++ } ++ ++ /* java.lang.Long */ ++ lcl_class = (*env)->FindClass (env, "java/lang/Long"); ++ if ( ! lcl_class ) ++ { ++ BROKEN (env, "cannot find class java.lang.Long"); ++ return initialized = -1; ++ } ++ ++ /* Pin it down. */ ++ long_class = (jclass) (*env)->NewGlobalRef (env, lcl_class); ++ DELETE_LOCAL_REF (env, lcl_class); ++ if (!long_class) ++ { ++ BROKEN (env, "Cannot get a global reference to java.lang.Long"); ++ return initialized = -1; ++ } ++ ++ long_ctor = (*env)->GetMethodID (env, long_class, "", "(J)V"); ++ if (!long_ctor) ++ { ++ BROKEN (env, "cannot find method java.lang.Long.(J)V"); ++ return initialized = -1; ++ } ++ ++ long_longValue_mth = ++ (*env)->GetMethodID (env, long_class, "longValue", "()J"); ++ if (!long_longValue_mth) ++ { ++ BROKEN (env, "cannot find method java.lang.Long.longValue()J"); ++ return initialized = -1; ++ } ++ ++ ++ /* GThreadNativeMethodRunner */ ++ lcl_class = ++ (*env)->FindClass (env, ++ "gnu/java/awt/peer/gtk/GThreadNativeMethodRunner"); ++ if ( ! lcl_class ) ++ { ++ BROKEN (env, ++ "cannot find gnu.java.awt.peer.gtk.GThreadNativeMethodRunner"); ++ return initialized = -1; ++ } ++ ++ /* Pin it down. */ ++ runner_class = (jclass) (*env)->NewGlobalRef (env, lcl_class); ++ DELETE_LOCAL_REF (env, lcl_class); ++ if (!runner_class) ++ { ++ BROKEN (env, ++ "Cannot get a global reference to the class GThreadNativeMethodRunner"); ++ return initialized = -1; ++ } ++ ++ runner_ctor = (*env)->GetMethodID (env, runner_class, "", "(JJZ)V"); ++ if ( ! runner_ctor ) ++ { ++ BROKEN (env, ++ "cannot find method GThreadNativeMethodRunner.(JJZ)"); ++ return initialized = -1; ++ } ++ ++ runner_start_mth = (*env)->GetMethodID (env, runner_class, "start", "()V"); ++ if ( ! runner_start_mth ) ++ { ++ BROKEN (env, "cannot find method GThreadNativeMethodRunner.start()V"); ++ return initialized = -1; ++ } ++ ++ ++ runner_threadToThreadID_mth = ++ (*env)->GetStaticMethodID (env, runner_class, ++ "threadToThreadID", "(Ljava/lang/Thread;)I"); ++ if ( ! runner_threadToThreadID_mth ) ++ { ++ BROKEN (env, ++ "cannot find method GThreadNativeMethodRunner.threadToThreadID(java.lang.Thread)I"); ++ return initialized = -1; ++ } ++ ++ ++ runner_threadIDToThread_mth = ++ (*env)->GetStaticMethodID (env, runner_class, ++ "threadIDToThread", "(I)Ljava/lang/Thread;"); ++ if ( ! runner_threadIDToThread_mth ) ++ { ++ BROKEN (env, ++ "cannot find method GThreadNativeMethodRunner.threadIDToThread(I)java.lang.Thread"); ++ return initialized = -1; ++ } ++ ++ ++ runner_deRegisterJoinable_mth = ++ (*env)->GetStaticMethodID (env, runner_class, "deRegisterJoinable", ++ "(Ljava/lang/Thread;)V"); ++ if (!runner_deRegisterJoinable_mth) ++ { ++ BROKEN (env, ++ "cannot find method GThreadNativeMethodRunner.deRegisterJoinable(java.lang.Thread)V"); ++ return initialized = -1; ++ } ++ ++ ++ /* java.lang.InterruptedException */ ++ lcl_class = (*env)->FindClass (env, "java/lang/InterruptedException"); ++ if ( ! lcl_class ) ++ { ++ BROKEN (env, "cannot find class java.lang.InterruptedException"); ++ return initialized = -1; ++ } ++ ++ /* Pin it down. */ ++ interrupted_exception_class = (jclass) (*env)->NewGlobalRef (env, lcl_class); ++ DELETE_LOCAL_REF (env, lcl_class); ++ if (!interrupted_exception_class) ++ { ++ BROKEN (env, "Cannot make a global reference" ++ " to java.lang.InterruptedException"); ++ return initialized = -1; ++ } ++ ++#ifdef JNI_VERSION_1_2 ++ if (HAVE_JNI_VERSION_1_2) ++ assert ( ! (*env)->ExceptionCheck (env)); ++ else ++#endif ++ assert ( ! (*env)->ExceptionOccurred (env)); ++ ++ ++ return initialized = 1; + } + +-/* This macro is used to include a source location in the exception message */ +-#define MAYBE_RETHROW(_class, _message) \ +-maybe_rethrow(_class, _message, __FILE__, __LINE__) ++ ++ + + + /************************************************************************/ + /* Utilities to allocate and free java.lang.Objects */ + /************************************************************************/ + +-/* Both the mutexes and the condition variables are java.lang.Object objects, ++/* The condition variables are java.lang.Object objects, + * which this method allocates and returns a global ref. Note that global + * refs must be explicitly freed (isn't C fun?). + */ +-static jobject *allocatePlainObject() { +- jclass obj_class; +- jobject *obj; +- JNIEnv *gdk_env; +- jmethodID ctor; +- +- (*gdk_vm)->GetEnv(gdk_vm, (void **)&gdk_env, JNI_VERSION_1_1); +- +- obj_class = (*gdk_env)->FindClass (gdk_env, "java/lang/Object"); +- MAYBE_RETHROW(gdk_env, "cannot find Object"); +- +- ctor = (*gdk_env)->GetMethodID(gdk_env, obj_class, "", "()V"); +- MAYBE_RETHROW(gdk_env, "cannot find constructor"); +- +- obj = (jobject *) g_malloc (sizeof (jobject)); +- *obj = (*gdk_env)->NewObject (gdk_env, obj_class, ctor); +- MAYBE_RETHROW(gdk_env, "cannot allocate object"); +- +- *obj = (*gdk_env)->NewGlobalRef (gdk_env, *obj); +- MAYBE_RETHROW(gdk_env, "cannot make global ref"); ++static jobject ++allocatePlainObject (JNIEnv * env) ++{ ++ jobject lcl_obj, global_obj; ++ ++ lcl_obj = (*env)->NewObject (env, obj_class, obj_ctor); ++ if (!lcl_obj) ++ { ++ BROKEN (env, "cannot allocate object"); ++ return NULL; ++ } + +- return obj; ++ global_obj = (*env)->NewGlobalRef (env, lcl_obj); ++ DELETE_LOCAL_REF (env, lcl_obj); ++ if (!global_obj) ++ { ++ NEW_BROKEN (env, "cannot make global ref for a new plain Java object"); ++ /* Deliberate fall-through */ ++ } ++ ++ return global_obj; + } + +-/* Frees a Java object given a global ref (isn't C fun?) */ +-static void freePlainObject(jobject *obj) { +- JNIEnv *gdk_env; ++/* Frees any Java object given a global ref (isn't C fun?) */ ++static void ++freeObject (JNIEnv * env, jobject obj) ++{ ++ if (obj) ++ { ++ (*env)->DeleteGlobalRef (env, obj); ++ /* DeleteGlobalRef can never fail */ ++ } ++} + +- if (obj) { +- (*gdk_vm)->GetEnv(gdk_vm, (void **)&gdk_env, JNI_VERSION_1_1); + +- (*gdk_env)->DeleteGlobalRef (gdk_env, *obj); +- MAYBE_RETHROW(gdk_env, "cannot delete global ref"); +- +- g_free (obj); +- } ++/************************************************************************/ ++/* Utilities to allocate and free Java mutexes */ ++/************************************************************************/ ++ ++/* The mutexes are gnu.java.awt.peer.gtk.GThreadMutex objects, ++ * which this method allocates and returns a global ref. Note that global ++ * refs must be explicitly freed (isn't C fun?). ++ * ++ * Free this with freeObject() ++ */ ++static jobject ++allocateMutexObject (JNIEnv * env) ++{ ++ jobject lcl_obj, global_obj; ++ ++ lcl_obj = (*env)->NewObject (env, mutex_class, mutex_ctor); ++ if (!lcl_obj) ++ { ++ BROKEN (env, "cannot allocate a GThreadMutex"); ++ return NULL; ++ } ++ ++ global_obj = (*env)->NewGlobalRef (env, lcl_obj); ++ DELETE_LOCAL_REF (env, lcl_obj); ++ if (!global_obj) ++ { ++ NEW_BROKEN (env, "cannot make global ref"); ++ /* Deliberate fallthrough */ ++ } ++ ++ return global_obj; + } + + +@@ -172,195 +1208,746 @@ + /************************************************************************/ + + /* Lock a Java object */ +-static void takeLock(JNIEnv *gdk_env, void *mutex) { +- (*gdk_env)->MonitorEnter (gdk_env, *((jobject *)mutex)); +- MAYBE_RETHROW(gdk_env, "cannot get lock"); ++#define ENTER_MONITOR(env, m) \ ++ enterMonitor(env, m, G_STRINGIFY(m)) ++ ++/* Return -1 on failure, 0 on success. */ ++static int ++enterMonitor (JNIEnv * env, jobject monitorObj, const char monName[]) ++{ ++ if (TRACE_MONITORS) ++ tracing (" ", monName); ++ assert (monitorObj); ++ if ((*env)->MonitorEnter (env, monitorObj) < 0) ++ { ++ BROKEN (env, "cannot enter monitor"); ++ return -1; ++ } ++ return 0; + } + ++ + /* Unlock a Java object */ +-static void releaseLock(JNIEnv *gdk_env, void *mutex) { +- (*gdk_env)->MonitorExit (gdk_env, *((jobject *)mutex)); +- MAYBE_RETHROW(gdk_env, "cannot release lock"); ++#define EXIT_MONITOR(env, m) \ ++ exitMonitor(env, m, G_STRINGIFY(m)) ++ ++static int ++exitMonitor (JNIEnv * env, jobject mutexObj, const char monName[]) ++{ ++ if (TRACE_MONITORS) ++ tracing (" ", monName); ++ assert (mutexObj); ++ if ((*env)->MonitorExit (env, mutexObj) < 0) ++ { ++ BROKEN (env, "cannot exit monitor "); ++ return -1; ++ } ++ return 0; ++} ++ ++ ++/************************************************************************/ ++/* Miscellaneous utilities */ ++/************************************************************************/ ++ ++/* Get the Java Thread object that corresponds to a particular thread ID. ++ A negative thread Id gives us a null object. ++ ++ Returns a local reference. ++*/ ++static jobject ++getThreadFromThreadID (JNIEnv * env, gpointer gThreadID) ++{ ++ jint threadNum = (jint) gThreadID; ++ jobject thread; ++ ++ if (threadNum < 0) ++ { ++ NEW_BROKEN (env, "getThreadFromThreadID asked to look up" ++ " a negative thread index"); ++ return NULL; ++ } ++ ++ thread = (*env)->CallStaticObjectMethod ++ (env, runner_class, runner_threadIDToThread_mth, threadNum); ++ ++ if (MAYBE_BROKEN (env, "cannot get Thread for threadID ")) ++ return NULL; ++ ++ return thread; ++} ++ ++/** Return the unique threadID of THREAD. ++ ++ Error handling: Return (gpointer) -1 on all failures, ++ and propagate an exception. ++*/ ++static gpointer ++getThreadIDFromThread (JNIEnv * env, jobject thread) ++{ ++ jint threadNum; ++ ++ if (ENABLE_EXPENSIVE_ASSERTIONS) ++ assert ((*env)->IsInstanceOf (env, thread, thread_class)); ++ ++ HIDE_OLD_TROUBLE (env); ++ ++ threadNum = (*env)->CallStaticIntMethod ++ (env, runner_class, runner_threadToThreadID_mth, thread); ++ ++ if (MAYBE_BROKEN (env, "cannot get ThreadID for a Thread ")) ++ { ++ threadNum = -1; ++ goto done; ++ } ++ ++ ++ SHOW_OLD_TROUBLE (); ++ ++done: ++ return (gpointer) threadNum; ++} ++ ++ ++/************************************************************************/ ++/* The Actual JNI functions that we pass to the function vector. */ ++/************************************************************************/ ++ ++ ++/************************************************************************/ ++/* Mutex Functions */ ++/************************************************************************/ ++ ++/*** Mutex Utilities ****/ ++struct mutexObj_cache ++{ ++ jobject lockForPotentialLockersObj; /* Lock for the potentialLockers ++ field. Local reference. */ ++ jobject lockObj; /* The real lock we use. This is a GLOBAL ++ reference and must not be freed. */ ++}; ++ ++/* Initialize the cache of sub-locks for a particular mutex object. ++ ++ -1 on error, 0 on success. The caller is not responsible for freeing the ++ partially-populated cache in case of failure (but in practice does anyway) ++ (This actually never fails, though, since GetObjectField allegedly never ++ fails.) ++ ++ Guaranteed to leave all fields of the cache initialized, even if only to ++ zero. ++*/ ++static int ++populate_mutexObj_cache (JNIEnv * env, jobject mutexObj, ++ struct mutexObj_cache *mcache) ++{ ++ mcache->lockObj = mutexObj; /* the mutexObj is its own lock. */ ++ assert (mcache->lockObj); ++ ++ mcache->lockForPotentialLockersObj = (*env)->GetObjectField ++ (env, mutexObj, mutex_lockForPotentialLockers_fld); ++ /* GetObjectField can never fail. */ ++ ++ /* Retrieving a NULL object could only happen if we somehow got a ++ a mutex object that was not properly intialized. */ ++ assert (mcache->lockForPotentialLockersObj); ++ ++ return 0; + } + +-/* Create a mutex, which is a java.lang.Object for us */ +-static GMutex *g_mutex_new_jni_impl (void) { +- return (GMutex*) allocatePlainObject(); ++ ++/* Clean out the mutexObj_cache, even if it was never populated. */ ++static void ++clean_mutexObj_cache (JNIEnv * env, struct mutexObj_cache *mcache) ++{ ++ /* OK to pass NULL refs to DELETE_LOCAL_REF */ ++ DELETE_LOCAL_REF (env, mcache->lockForPotentialLockersObj); ++ /* mcache->lockObj is a GLOBAL reference. */ ++ mcache->lockObj = NULL; ++} ++ ++/* -1 on failure, 0 on success. ++ The mutexObj_cache is already populated for this particular object. */ ++static int ++mutexObj_lock (JNIEnv * env, jobject mutexObj, struct mutexObj_cache *mcache) ++{ ++ jint potentialLockers; ++ ++ if (ENTER_MONITOR (env, mcache->lockForPotentialLockersObj)) ++ return -1; ++ ++ assert(mutexObj); ++ potentialLockers = ++ (*env)->GetIntField (env, mutexObj, mutex_potentialLockers_fld); ++ /* GetIntField() never fails. */ ++ ++ ++potentialLockers; ++ ++ (*env)->SetIntField ++ (env, mutexObj, mutex_potentialLockers_fld, potentialLockers); ++ ++ if (EXIT_MONITOR (env, mcache->lockForPotentialLockersObj)) ++ return -1; ++ ++ if (ENTER_MONITOR (env, mcache->lockObj)) ++ return -1; ++ ++ SHOW_OLD_TROUBLE (); ++ ++ return 0; ++} ++ ++/* Unlock a GMutex, once we're already in JNI and have already gotten the ++ mutexObj for it. This skips the messages that TRACE_API_CALLS would ++ print. ++ ++ Returns -1 on error, 0 on success. */ ++static int ++mutexObj_unlock (JNIEnv * env, jobject mutexObj, ++ struct mutexObj_cache *mcache) ++{ ++ jint potentialLockers; ++ int ret = -1; /* assume failure until we suceed. */ ++ ++ /* Free the lock first, so that someone waiting for the lock can get it ++ ASAP. */ ++ /* This is guaranteed not to block. */ ++ if (EXIT_MONITOR (env, mcache->lockObj) < 0) ++ goto done; ++ ++ /* Kick down potentialLockers by one. We do this AFTER we free the lock, so ++ that we hold it no longer than necessary. */ ++ if (ENTER_MONITOR (env, mcache->lockForPotentialLockersObj) < 0) ++ goto done; ++ ++ potentialLockers = (*env)->GetIntField ++ (env, mutexObj, mutex_potentialLockers_fld); ++ /* GetIntField never fails */ ++ ++ assert (potentialLockers >= 1); ++ --potentialLockers; ++ ++ (*env)->SetIntField ++ (env, mutexObj, mutex_potentialLockers_fld, potentialLockers); ++ /* Never fails, so the JNI book says. */ ++ ++ /* Clean up. */ ++ if (EXIT_MONITOR (env, mcache->lockForPotentialLockersObj) < 0) ++ goto done; ++ ret = 0; ++ ++done: ++ return ret; ++} ++ ++/*** Mutex Implementations ****/ ++ ++/* Create a mutex, which is a java.lang.Object for us. ++ In case of failure, we'll return NULL. Which will implicitly ++ cause future calls to fail. */ ++static GMutex * ++mutex_new_jni_impl (void) ++{ ++ jobject mutexObj; ++ JNIEnv *env; ++ union env_union e; ++ ++ if (TRACE_API_CALLS) ++ tracing ("mutex_new_jni_impl()"); ++ ++ e.jni_env = &env; ++ (*the_vm)->GetEnv (the_vm, e.void_env, JNI_VERSION_1_1); ++ ++ if (setup_cache (env) < 0) ++ { ++ mutexObj = NULL; ++ goto done; ++ } ++ ++ mutexObj = allocateMutexObject (env); ++ ++done: ++ if (TRACE_API_CALLS) ++ tracing (" ==> %p \n", mutexObj); ++ ++ return (GMutex *) mutexObj; ++ + } + + /* Lock a mutex. */ +-static void g_mutex_lock_jni_impl (GMutex *mutex __attribute__((unused))) { +- JNIEnv *gdk_env; ++static void ++mutex_lock_jni_impl (GMutex * mutex) ++{ ++ struct mutexObj_cache mcache; ++ jobject mutexObj = (jobject) mutex; ++ JNIEnv *env; ++ union env_union e; + +- (*gdk_vm)->GetEnv(gdk_vm, (void **)&gdk_env, JNI_VERSION_1_1); ++ if (TRACE_API_CALLS) ++ tracing ("mutex_lock_jni_impl( mutexObj = %p )", mutexObj); + +- takeLock(gdk_env, mutex); ++ assert (mutexObj); ++ e.jni_env = &env; ++ (*the_vm)->GetEnv (the_vm, e.void_env, JNI_VERSION_1_1); ++ ++ if (setup_cache (env) < 0) ++ goto done; ++ ++ HIDE_OLD_TROUBLE (env); ++ ++ if (populate_mutexObj_cache (env, mutexObj, &mcache) < 0) ++ goto done; ++ ++ mutexObj_lock (env, mutexObj, &mcache); ++ /* No need to error check; we've already reported it in any case. */ ++ ++done: ++ clean_mutexObj_cache (env, &mcache); ++ if (TRACE_API_CALLS) ++ tracing (" ==> VOID \n"); + } + +-/* Try to lock a mutex. Actually, do not try because Java objects +- * do not provide such an interface. To be at least minimally correct, +- * pretend we tried and failed. +- */ +-static gboolean g_mutex_trylock_jni_impl +- (GMutex *mutex __attribute__((unused))) ++ ++/* Try to lock a mutex. Return TRUE if we succeed, FALSE if we fail. ++ FALSE on error. */ ++static gboolean ++mutex_trylock_jni_impl (GMutex * gmutex) + { +- // Shall we implement this in a JikesRVM-specific way under a flag? +- return FALSE; ++ jobject mutexObj = (jobject) gmutex; ++ jint potentialLockers; ++ gboolean ret = FALSE; ++ JNIEnv *env; ++ union env_union e; ++ struct mutexObj_cache mcache; ++ ++ if (TRACE_API_CALLS) ++ tracing ("mutex_trylock_jni_impl(mutexObj=%p)", mutexObj); ++ ++ assert (mutexObj); ++ ++ e.jni_env = &env; ++ (*the_vm)->GetEnv (the_vm, e.void_env, JNI_VERSION_1_1); ++ if (setup_cache (env) < 0) ++ goto done; ++ HIDE_OLD_TROUBLE (env); ++ ++ if (populate_mutexObj_cache (env, mutexObj, &mcache) < 0) ++ goto done; ++ ++ if (ENTER_MONITOR (env, mcache.lockForPotentialLockersObj)) ++ goto done; ++ ++ potentialLockers = (*env)->GetIntField ++ (env, mutexObj, mutex_potentialLockers_fld); ++ ++ assert (potentialLockers >= 0); ++ ++ if (potentialLockers) ++ { ++ /* Already locked. Clean up and leave. */ ++ EXIT_MONITOR (env, mcache.lockForPotentialLockersObj); ++ /* Ignore any error code from EXIT_MONITOR; there's nothing we could do ++ at this level, in any case. */ ++ goto done; ++ } ++ ++ /* Guaranteed not to block. */ ++ if (ENTER_MONITOR (env, mcache.lockObj)) ++ { ++ /* Clean up the existing lock. */ ++ EXIT_MONITOR (env, mcache.lockForPotentialLockersObj); ++ /* Ignore any error code from EXIT_MONITOR; there's nothing we could do ++ at this level, in any case. */ ++ goto done; ++ } ++ ++ ++ /* We have the monitor. Record that fact. */ ++ potentialLockers = 1; ++ (*env)->SetIntField ++ (env, mutexObj, mutex_potentialLockers_fld, potentialLockers); ++ /* Set*Field() never fails */ ++ ++ ret = TRUE; /* We have the lock. */ ++ ++ /* Clean up. */ ++ if (EXIT_MONITOR (env, mcache.lockForPotentialLockersObj)) ++ goto done; /* If we fail at this point, still keep the ++ main lock. */ ++ ++ SHOW_OLD_TROUBLE (); ++done: ++ clean_mutexObj_cache (env, &mcache); ++ if (TRACE_API_CALLS) ++ tracing (" ==> %s\n", ret ? "TRUE" : "FALSE"); ++ return ret; + } + ++ + /* Unlock a mutex. */ +-static void g_mutex_unlock_jni_impl (GMutex *mutex) { +- JNIEnv *gdk_env; ++static void ++mutex_unlock_jni_impl (GMutex * gmutex) ++{ ++ jobject mutexObj = (jobject) gmutex; ++ struct mutexObj_cache mcache; ++ JNIEnv *env; ++ union env_union e; ++ ++ if (TRACE_API_CALLS) ++ tracing ("mutex_unlock_jni_impl(mutexObj=%p)", mutexObj); ++ ++ e.jni_env = &env; ++ (*the_vm)->GetEnv (the_vm, e.void_env, JNI_VERSION_1_1); ++ if (setup_cache (env) < 0) ++ goto done; ++ HIDE_OLD_TROUBLE (env); ++ ++ assert (mutexObj); ++ ++ if ( populate_mutexObj_cache (env, mutexObj, &mcache) < 0) ++ goto done; ++ ++ (void) mutexObj_unlock (env, mutexObj, &mcache); + +- (*gdk_vm)->GetEnv(gdk_vm, (void **)&gdk_env, JNI_VERSION_1_1); ++ SHOW_OLD_TROUBLE (); + +- releaseLock(gdk_env, mutex); ++done: ++ clean_mutexObj_cache (env, &mcache); ++ if (TRACE_API_CALLS) ++ tracing (" ==> VOID\n"); + } + +-/* Free a mutex (isn't C fun?) */ +-static void g_mutex_free_jni_impl (GMutex *mutex) ++ ++ ++/* Free a mutex (isn't C fun?). OK this time for it to be NULL. ++ No failure conditions, for a change. */ ++static void ++mutex_free_jni_impl (GMutex * mutex) + { +- freePlainObject( (jobject*)mutex ); ++ jobject mutexObj = (jobject) mutex; ++ JNIEnv *env; ++ union env_union e; ++ ++ e.jni_env = &env; ++ (*the_vm)->GetEnv (the_vm, e.void_env, JNI_VERSION_1_1); ++ ++ if (TRACE_API_CALLS) ++ tracing ("mutex_free_jni_impl(%p)", mutexObj); ++ ++ freeObject (env, mutexObj); ++ ++ if (TRACE_API_CALLS) ++ tracing (" ==> VOID\n"); + } + + ++ ++ + /************************************************************************/ + /* Condition variable code */ + /************************************************************************/ + + /* Create a new condition variable. This is a java.lang.Object for us. */ +-static GCond *g_cond_new_jni_impl () { +- return (GCond*)allocatePlainObject(); ++static GCond * ++cond_new_jni_impl (void) ++{ ++ jobject condObj; ++ JNIEnv *env; ++ union env_union e; ++ ++ if (TRACE_API_CALLS) ++ tracing ("mutex_free_jni_impl()"); ++ ++ e.jni_env = &env; ++ (*the_vm)->GetEnv (the_vm, e.void_env, JNI_VERSION_1_1); ++ ++ condObj = allocatePlainObject (env); ++ ++ if (TRACE_API_CALLS) ++ tracing (" ==> %p\n", condObj); ++ ++ return (GCond *) condObj; + } + + /* Signal on a condition variable. This is simply calling Object.notify + * for us. + */ +-static void g_cond_signal_jni_impl (GCond *cond) { +- jclass lcl_class; +- jmethodID signal_mth; +- JNIEnv *gdk_env; ++static void ++cond_signal_jni_impl (GCond * gcond) ++{ ++ JNIEnv *env; ++ union env_union e; ++ jobject condObj = (jobject) gcond; ++ ++ if (TRACE_API_CALLS) ++ tracing ("cond_signal_jni_impl(condObj = %p)", condObj); ++ ++ e.jni_env = &env; ++ (*the_vm)->GetEnv (the_vm, e.void_env, JNI_VERSION_1_1); ++ if (setup_cache (env) < 0) ++ goto done; ++ HIDE_OLD_TROUBLE (env); + +- (*gdk_vm)->GetEnv(gdk_vm, (void **)&gdk_env, JNI_VERSION_1_1); +- +- lcl_class = (*gdk_env)->FindClass (gdk_env, "java.lang.Object"); +- MAYBE_RETHROW(gdk_env, "cannot find Object"); +- +- signal_mth = (*gdk_env)->GetMethodID(gdk_env, lcl_class, "notify", "()V"); +- MAYBE_RETHROW(gdk_env, "cannot find Object."); ++ assert (condObj); + + /* Must have locked an object to call notify */ +- takeLock(gdk_env, cond); ++ if (ENTER_MONITOR (env, condObj)) ++ goto done; ++ ++ (*env)->CallVoidMethod (env, condObj, obj_notify_mth); ++ if (MAYBE_BROKEN (env, "cannot signal mutex with Object.notify()")) ++ { ++ if (EXIT_MONITOR (env, condObj)) ++ BADLY_BROKEN1 ("Failed to unlock a monitor; the VM may deadlock."); ++ goto done; ++ } + +- (*gdk_env)->CallVoidMethod(gdk_env, *(jobject*)cond, signal_mth); +- MAYBE_RETHROW(gdk_env, "cannot signal mutex"); ++ EXIT_MONITOR (env, condObj); + +- releaseLock(gdk_env, cond); ++ SHOW_OLD_TROUBLE (); ++ ++done: ++ if (TRACE_API_CALLS) ++ tracing (" ==> VOID\n"); + } + + /* Broadcast to all waiting on a condition variable. This is simply + * calling Object.notifyAll for us. + */ +-static void g_cond_broadcast_jni_impl (GCond *cond) { +- jclass lcl_class; +- jmethodID bcast_mth; +- JNIEnv *gdk_env; ++static void ++cond_broadcast_jni_impl (GCond * gcond) ++{ ++ jobject condObj = (jobject) gcond; ++ JNIEnv *env; ++ union env_union e; ++ ++ if (TRACE_API_CALLS) ++ tracing ("cond_broadcast_jni_impl(condObj=%p)", condObj); ++ ++ e.jni_env = &env; ++ (*the_vm)->GetEnv (the_vm, e.void_env, JNI_VERSION_1_1); ++ if (setup_cache (env) < 0) ++ goto done; ++ HIDE_OLD_TROUBLE (env); + +- (*gdk_vm)->GetEnv(gdk_vm, (void **)&gdk_env, JNI_VERSION_1_1); ++ assert (condObj); ++ /* Must have locked an object to call notifyAll */ ++ if (ENTER_MONITOR (env, condObj)) ++ goto done; + +- lcl_class = (*gdk_env)->FindClass (gdk_env, "java.lang.Object"); +- MAYBE_RETHROW(gdk_env, "cannot find Object"); +- +- bcast_mth = (*gdk_env)->GetMethodID(gdk_env, lcl_class, "notifyAll", "()V"); +- MAYBE_RETHROW(gdk_env, "cannot find Object."); ++ (*env)->CallVoidMethod (env, condObj, obj_notifyall_mth); ++ if (MAYBE_BROKEN (env, "cannot broadcast to mutex with Object.notify()")) ++ { ++ EXIT_MONITOR (env, condObj); ++ goto done; ++ } + +- /* Must have locked an object to call notifyAll */ +- takeLock(gdk_env, cond); ++ EXIT_MONITOR (env, condObj); + +- (*gdk_env)->CallVoidMethod(gdk_env, *(jobject*)cond, bcast_mth); +- MAYBE_RETHROW(gdk_env, "cannot broadcast to mutex"); ++ SHOW_OLD_TROUBLE (); + +- releaseLock(gdk_env, cond); ++done: ++ if (TRACE_API_CALLS) ++ tracing (" ==> VOID\n"); + } + + +-/* Wait on a condition variable. For us, this simply means call ++/* Wait on a condition variable. For us, this simply means calling + * Object.wait. ++ * ++ * Throws a Java exception on trouble; may leave the mutexes set arbitrarily. ++ * XXX TODO: Further improve error recovery. + */ +-static void g_cond_wait_jni_impl +- (GCond *cond, GMutex *mutex __attribute__((unused))) ++static void ++cond_wait_jni_impl (GCond * gcond, GMutex * gmutex) + { +- jclass lcl_class; +- jmethodID wait_mth; +- JNIEnv *gdk_env; +- +- (*gdk_vm)->GetEnv(gdk_vm, (void **)&gdk_env, JNI_VERSION_1_1); +- +- lcl_class = (*gdk_env)->FindClass (gdk_env, "java.lang.Object"); +- MAYBE_RETHROW(gdk_env, "cannot find Object"); +- +- wait_mth = (*gdk_env)->GetMethodID(gdk_env, lcl_class, "wait", "()V"); +- MAYBE_RETHROW(gdk_env, "cannot find Object."); +- +- /* Must have locked an object to call wait */ +- takeLock(gdk_env, cond); +- +- (*gdk_env)->CallVoidMethod(gdk_env, *(jobject*)cond, wait_mth); +- MAYBE_RETHROW(gdk_env, "cannot wait on mutex"); ++ struct mutexObj_cache cache; ++ jobject condObj = (jobject) gcond; ++ jobject mutexObj = (jobject) gmutex; ++ JNIEnv *env; ++ union env_union e; ++ ++ if (TRACE_API_CALLS) ++ tracing ("cond_wait_jni_impl(condObj=%p, mutexObj=%p)", ++ condObj, mutexObj); ++ ++ e.jni_env = &env; ++ (*the_vm)->GetEnv (the_vm, e.void_env, JNI_VERSION_1_1); ++ if (setup_cache (env) < 0) ++ goto done; ++ HIDE_OLD_TROUBLE (env); ++ ++ assert (condObj); ++ assert (mutexObj); ++ /* Must have locked a Java object to call wait on it */ ++ if (ENTER_MONITOR (env, condObj) < 0) ++ goto done; ++ ++ /* Our atomicity is now guaranteed; we're protected by the Java monitor on ++ condObj. Unlock the GMutex. */ ++ if (mutexObj_unlock (env, mutexObj, &cache)) ++ goto done; ++ ++ (*env)->CallVoidMethod (env, condObj, obj_wait_mth); ++ if (MAYBE_BROKEN (env, "cannot wait on condObj")) ++ { ++ EXIT_MONITOR (env, condObj); /* ignore err checking */ ++ goto done; ++ } + +- releaseLock(gdk_env, cond); ++ /* Re-acquire the lock on the GMutex. Do this while we're protected by the ++ Java monitor on condObj. */ ++ if (mutexObj_lock (env, mutexObj, &cache)) ++ goto done; ++ ++ EXIT_MONITOR (env, condObj); ++ ++ SHOW_OLD_TROUBLE (); ++ ++done: ++ if (TRACE_API_CALLS) ++ tracing (" ==> VOID\n"); + } + +-/* Wait on a condition vairable until a timeout. This is a little tricky ++ ++/** Wait on a condition variable until a timeout. This is a little tricky + * for us. We first call Object.wait(J) giving it the appropriate timeout + * value. On return, we check whether an InterruptedException happened. If +- * so, that is Java-speak for wait timing out. ++ * so, that is Java-speak for wait timing out. ++ * ++ * We return FALSE if we timed out. Return TRUE if the condition was ++ * signalled first, before we timed out. ++ * ++ * In case of trouble we throw a Java exception. Whether we return FALSE or ++ * TRUE depends upon whether the condition was raised before the trouble ++ * happened. ++ * ++ * I believe that this function goes to the proper lengths to try to unlock ++ * all of the locked mutexes and monitors, as appropriate, and that it further ++ * tries to make sure that the thrown exception is the current one, not any ++ * future cascaded one from something like a failure to unlock the monitors. + */ + static gboolean +-g_cond_timed_wait_jni_impl +- (GCond *cond, GMutex *mutex __attribute__((unused)), +- GTimeVal *end_time) ++cond_timed_wait_jni_impl (GCond * gcond, GMutex * gmutex, GTimeVal * end_time) + { +- jclass lcl_class; +- jmethodID wait_mth; +- JNIEnv *gdk_env; +- jlong time; ++ JNIEnv *env; ++ union env_union e; ++ jlong time_millisec; ++ jint time_nanosec; + jthrowable cause; ++ jobject condObj = (jobject) gcond; ++ jobject mutexObj = (jobject) gmutex; ++ gboolean condRaised = FALSE; /* Condition has not been raised yet. */ ++ struct mutexObj_cache cache; ++ gboolean interrupted; ++ ++ if (TRACE_API_CALLS) ++ { ++ tracing ("cond_timed_wait_jni_impl(cond=%p, mutex=%p," ++ " end_time=< sec=%lu, usec=%lu >)", condObj, mutexObj, ++ (unsigned long) end_time->tv_sec, ++ (unsigned long) end_time->tv_usec); ++ } + +- (*gdk_vm)->GetEnv(gdk_vm, (void **)&gdk_env, JNI_VERSION_1_1); + +- lcl_class = (*gdk_env)->FindClass (gdk_env, "java.lang.Object"); +- MAYBE_RETHROW(gdk_env, "cannot find Object"); +- +- wait_mth = (*gdk_env)->GetMethodID(gdk_env, lcl_class, "wait", "(J)V"); +- MAYBE_RETHROW(gdk_env, "cannot find Object."); +- +- time = end_time->tv_sec*1000; +- time += end_time->tv_usec/1000; ++ e.jni_env = &env; ++ (*the_vm)->GetEnv (the_vm, e.void_env, JNI_VERSION_1_1); ++ if (setup_cache (env) < 0) ++ goto done; ++ HIDE_OLD_TROUBLE (env); ++ ++ time_millisec = end_time->tv_sec * 1000 + end_time->tv_usec / 1000; ++ time_nanosec = 1000 * (end_time->tv_usec % 1000); + + /* Must have locked an object to call wait */ +- takeLock(gdk_env, cond); ++ if (ENTER_MONITOR (env, condObj) < 0) ++ goto done; ++ ++ if (mutexObj_unlock (env, mutexObj, &cache) < 0) ++ { ++ if (EXIT_MONITOR (env, condObj) < 0) ++ criticalMsg ++ ("Unable to unlock an existing lock on a condition; your proram may deadlock"); ++ goto done; ++ } ++ ++ ++ (*env)->CallVoidMethod (env, condObj, obj_wait_nanotime_mth, ++ time_millisec, time_nanosec); ++ ++ /* If there was trouble, save that fact, and the reason for the trouble. We ++ want to respond to this condition as fast as possible. */ ++ cause = (*env)->ExceptionOccurred (env); ++ ++ if ( ! cause ) ++ { ++ condRaised = TRUE; /* condition was signalled */ ++ } ++ else if ((*env)->IsInstanceOf (env, cause, interrupted_exception_class)) ++ { ++ condRaised = FALSE; /* Condition was not raised before timeout. ++ (This is redundant with the initialization ++ of condRaised above) */ ++ (*env)->ExceptionClear (env); /* Clear the InterruptedException. */ ++ cause = NULL; /* no pending cause now. */ ++ } ++ else ++ { ++ interrupted = FALSE; /* Trouble, but not because of ++ InterruptedException. Assume the condition ++ was not raised. */ ++ /* Leave condRaised set to FALSE */ ++ } ++ ++ /* Irrespective of whether there is a pending problem to report, go ahead ++ and try to clean up. This may end up throwing an exception that is ++ different from the one that was thrown by the call to Object.wait(). ++ So we will override it with the first exception (don't want to have ++ cascading problems). */ ++ if (mutexObj_lock (env, mutexObj, &cache) && !cause) ++ { ++ cause = (*env)->ExceptionOccurred (env); ++ assert (cause); ++ } + +- (*gdk_env)->CallVoidMethod(gdk_env, *(jobject*)cond, wait_mth, time); ++ if (EXIT_MONITOR (env, condObj) && !cause) ++ { ++ cause = (*env)->ExceptionOccurred (env); ++ assert (cause); ++ } + +- if ((cause = (*gdk_env)->ExceptionOccurred(gdk_env)) != NULL) { +- jclass intr = (*gdk_env)->FindClass (gdk_env, "java.lang.InterruptedException"); +- if ( (*gdk_env)->IsInstanceOf(gdk_env, cause, intr) ) { +- releaseLock(gdk_env, cond); +- return FALSE; +- } else { +- MAYBE_RETHROW(gdk_env, "error in timed wait"); ++ if (cause) /* Raise the first cause. */ ++ { ++ BROKEN_CAUSE (env, cause, "error in timed wait or during its cleanup"); ++ goto done; + } +- } + +- releaseLock(gdk_env, cond); ++ SHOW_OLD_TROUBLE (); + +- return TRUE; ++done: ++ if (TRACE_API_CALLS) ++ tracing (" ==> condRaised = %s\n", condRaised ? "TRUE" : "FALSE"); ++ return condRaised; + } + +-/* Free a condition variable. (isn't C fun?) */ +-static void g_cond_free_jni_impl (GCond *cond) { +- freePlainObject( (jobject*)cond ); ++ ++/* Free a condition variable. (isn't C fun?). Can not fail. */ ++static void ++cond_free_jni_impl (GCond * cond) ++{ ++ jobject condObj = (jobject) cond; ++ JNIEnv *env; ++ union env_union e; ++ ++ if (TRACE_API_CALLS) ++ tracing ("cond_free_jni_impl(condObj = %p)", condObj); ++ e.jni_env = &env; ++ (*the_vm)->GetEnv (the_vm, e.void_env, JNI_VERSION_1_1); ++ ++ freeObject (env, condObj); ++ ++ if (TRACE_API_CALLS) ++ tracing (" ==> VOID\n"); + } + + +@@ -368,132 +1955,638 @@ + /* Thread-local data code */ + /************************************************************************/ + +-/* Create a new thread-local key. We use java.lang.ThreadLocal objects +- * for this. ++/* Create a new thread-local key. We use java.lang.ThreadLocal objects ++ * for this. This returns the pointer representation of a Java global ++ * reference. ++ * ++ * We will throw a Java exception and return NULL in case of failure. + */ +-static GPrivate *g_private_new_jni_impl +- (GDestroyNotify notify __attribute__((unused))) ++static GPrivate * ++private_new_jni_impl (GDestroyNotify notify __attribute__ ((unused))) + { +- jclass lcl_class; +- jobject *local; +- JNIEnv *gdk_env; +- jmethodID ctor; +- +- (*gdk_vm)->GetEnv(gdk_vm, (void **)&gdk_env, JNI_VERSION_1_1); ++ JNIEnv *env; ++ union env_union e; ++ jobject lcl_key; ++ jobject global_key; ++ GPrivate *gkey = NULL; /* Error return code */ ++ ++ if (TRACE_API_CALLS) ++ tracing ("private_new_jni_impl()"); ++ ++ e.jni_env = &env; ++ (*the_vm)->GetEnv (the_vm, e.void_env, JNI_VERSION_1_1); ++ if (setup_cache (env) < 0) ++ goto done; ++ HIDE_OLD_TROUBLE (env); ++ ++ lcl_key = (*env)->NewObject (env, threadlocal_class, threadlocal_ctor); ++ if ( ! lcl_key ) ++ { ++ BROKEN (env, "cannot allocate a ThreadLocal"); ++ goto done; ++ } + +- lcl_class = (*gdk_env)->FindClass (gdk_env, "java.lang.ThreadLocal"); +- MAYBE_RETHROW(gdk_env, "cannot find ThreadLocal"); ++ global_key = ((*env)->NewGlobalRef (env, lcl_key)); ++ DELETE_LOCAL_REF (env, lcl_key); ++ if ( ! global_key) ++ { ++ NEW_BROKEN (env, "cannot create a GlobalRef to a new ThreadLocal"); ++ goto done; ++ } + +- ctor = (*gdk_env)->GetMethodID(gdk_env, lcl_class, "", "()V"); +- MAYBE_RETHROW(gdk_env, "cannot find ThreadLocal."); ++ gkey = (GPrivate *) global_key; ++ SHOW_OLD_TROUBLE (); + +- local = (jobject *) g_malloc (sizeof (jobject)); +- *local = (*gdk_env)->NewObject(gdk_env, lcl_class, ctor); +- MAYBE_RETHROW(gdk_env, "cannot allocate a ThreadLocal"); +- +- *local = ((*gdk_env)->NewGlobalRef (gdk_env, *local)); +- MAYBE_RETHROW(gdk_env, "cannot create a GlobalRef"); ++done: ++ if (TRACE_API_CALLS) ++ tracing (" ==> %p\n", (void *) gkey); + +- return (GPrivate*) local; ++ return gkey; + } + + /* Get this thread's value for a thread-local key. This is simply +- * ThreadLocal.get for us. ++ * ThreadLocal.get for us. Return NULL if no value. (I can't think of ++ * anything else to do.) + */ +-static gpointer g_private_get_jni_impl (GPrivate *private) { +- jclass lcl_class; +- jobject lcl_obj; +- JNIEnv *gdk_env; +- jmethodID get_mth; +- jclass int_class; +- jmethodID val_mth; +- jint int_val; +- +- (*gdk_vm)->GetEnv(gdk_vm, (void **)&gdk_env, JNI_VERSION_1_1); ++static gpointer ++private_get_jni_impl (GPrivate * gkey) ++{ ++ JNIEnv *env; ++ union env_union e; ++ jobject val_wrapper; ++ jobject keyObj = (jobject) gkey; ++ gpointer thread_specific_data = NULL; /* Init to the error-return value */ ++ ++ jlong val; ++ ++ if (TRACE_API_CALLS) ++ tracing ("private_get_jni_impl(keyObj=%p)", keyObj); ++ ++ e.jni_env = &env; ++ (*the_vm)->GetEnv (the_vm, e.void_env, JNI_VERSION_1_1); ++ if (setup_cache (env) < 0) ++ goto done; ++ HIDE_OLD_TROUBLE (env); ++ ++ val_wrapper = (*env)->CallObjectMethod (env, keyObj, threadlocal_get_mth); ++ if (MAYBE_BROKEN (env, "cannot find thread-local object")) ++ goto done; ++ ++ if (! val_wrapper ) ++ { ++ /* It's Java's "null" object. No ref found. This is OK; we must never ++ have set a value in this thread. Note that this next statement is ++ not necessary, strictly speaking, since we're already initialized to ++ NULL. A good optimizing C compiler will detect that and optimize out ++ this statement. */ ++ thread_specific_data = NULL; ++ goto done; ++ } + +- lcl_class = (*gdk_env)->FindClass (gdk_env, "java.lang.ThreadLocal"); +- MAYBE_RETHROW(gdk_env, "cannot find ThreadLocal"); ++ val = (*env)->CallLongMethod (env, val_wrapper, long_longValue_mth); + +- get_mth = (*gdk_env)->GetMethodID(gdk_env, lcl_class, "get", "()Ljava/lang/Object;"); +- MAYBE_RETHROW(gdk_env, "cannot find ThreadLocal."); ++ if (MAYBE_BROKEN (env, "cannot get thread local value")) ++ goto done; + +- lcl_obj = (*gdk_env)->CallObjectMethod(gdk_env, *(jobject*)private, get_mth); +- MAYBE_RETHROW(gdk_env, "cannot find thread-local object"); ++ thread_specific_data = (gpointer) (intptr_t) val; + +- int_class = (*gdk_env)->FindClass (gdk_env, "java.lang.Integer"); +- MAYBE_RETHROW(gdk_env, "cannot find Integer"); ++ /* Only re-raise the old pending exception if a new one hasn't come along to ++ supersede it. */ ++ SHOW_OLD_TROUBLE (); + +- val_mth = (*gdk_env)->GetMethodID(gdk_env, int_class, "intValue", "()I"); +- MAYBE_RETHROW(gdk_env, "cannot find Integer."); ++done: + +- int_val = (*gdk_env)->CallIntMethod(gdk_env, lcl_obj, val_mth); +- MAYBE_RETHROW(gdk_env, "cannot get thread local value"); ++ if (TRACE_API_CALLS) ++ tracing (" ==> %p\n", thread_specific_data); + +- return (gpointer) int_val; ++ return thread_specific_data; + } + +-/* Set this thread's value for a thread-local key. This is simply +- * ThreadLocal.set for us. ++/* Set this thread's value for a thread-local key. This is simply ++ * ThreadLocal.set() for us. + */ +-static void g_private_set_jni_impl (GPrivate *private, gpointer data) { +- jclass lcl_class, int_class; +- jobject lcl_obj; +- JNIEnv *gdk_env; +- jmethodID new_int, set_mth; ++static void ++private_set_jni_impl (GPrivate * gkey, gpointer thread_specific_data) ++{ ++ JNIEnv *env; ++ union env_union e; ++ jobject val_wrapper; ++ jobject keyObj = (jobject) gkey; ++ ++ ++ if (TRACE_API_CALLS) ++ tracing ("private_set_jni_impl(keyObj=%p, thread_specific_data=%p)", ++ keyObj, thread_specific_data); ++ ++ e.jni_env = &env; ++ (*the_vm)->GetEnv (the_vm, e.void_env, JNI_VERSION_1_1); ++ if (setup_cache (env) < 0) ++ goto done; ++ HIDE_OLD_TROUBLE (env); ++ ++ /* We are just going to always use a Java long to represent a C pointer. ++ Otherwise all of the code would end up being conditionalized for various ++ pointer sizes, and that seems like too much of a hassle, in order to save ++ a paltry few bytes, especially given the horrendous overhead of JNI in ++ any case. ++ */ ++ ++ val_wrapper = (*env)->NewObject (env, long_class, long_ctor, ++ (jlong) (intptr_t) thread_specific_data); ++ if ( ! val_wrapper ) ++ { ++ BROKEN (env, "cannot create a java.lang.Long"); ++ goto done; ++ } ++ ++ /* At this point, we now have set lcl_obj as a numeric class that wraps ++ around the thread-specific data we were given. */ ++ (*env)->CallVoidMethod (env, keyObj, threadlocal_set_mth, val_wrapper); ++ if (MAYBE_BROKEN (env, "cannot set thread local value")) ++ goto done; ++ ++ SHOW_OLD_TROUBLE (); ++done: ++ if (TRACE_API_CALLS) ++ tracing (" ==> VOID\n"); ++} ++ ++ ++/** Create an object of type gnu.java.awt.peer.gtk.GThreadNativeMethodRunner. ++ Run it. ++ ++ We need to create joinable threads. We handle the notion of a joinable ++ thread by determining whether or not we are going to maintain a permanent ++ hard reference to it until it croaks. ++ ++ Posix does not appear to have a Java-like concept of daemon threads, where ++ the JVM will exit when there are only daemon threads running. ++ ++ Error handling: ++ ++ To quote from the glib guide: ++ "GError should only be used to report recoverable runtime errors, never ++ to report programming errors." ++ ++ So how do we consider the failure to create a thread? Well, each of the ++ failure cases in this function are discussed, and none of them are really ++ recoverable. ++ ++ The glib library is really designed so that you should fail ++ catastrophically in case of "programming errors". The only error defined ++ for the GThread functions is G_THREAD_ERROR_AGAIN, and that for ++ thread_create. ++ ++ Most of these GThread functions could fail if we run out of memory, for ++ example, but the only one capable of reporting that fact is ++ thread_create. */ ++static void ++thread_create_jni_impl (GThreadFunc func, ++ gpointer data, ++ gulong stack_size __attribute__((unused)), ++ gboolean joinable, ++ gboolean bound __attribute__((unused)), ++ GThreadPriority gpriority, ++ /* This prototype is horrible. threadIDp is actually ++ a gpointer to the thread's thread-ID. Which is, ++ of course, itself a gpointer-typed value. Ouch. */ ++ gpointer threadIDp, ++ /* Do not touch the GError stuff unless you have ++ RECOVERABLE trouble. There is no recoverable ++ trouble in this implementation. */ ++ GError **errorp __attribute__((unused))) ++{ ++ JNIEnv *env; ++ union env_union e; ++ union func_union f; ++ jboolean jjoinable = joinable; ++ jobject newThreadObj; ++ gpointer threadID; /* to be filled in */ ++ ++ if (TRACE_API_CALLS) ++ { ++ f.g_func = func; ++ tracing ("thread_create_jni_impl(func=%p, data=%p, joinable=%s," ++ " threadIDp=%p, *(int *) threadIDp = %d)", ++ f.void_func, data, joinable ? "TRUE" : "FALSE", ++ threadIDp, *(int *) threadIDp); ++ } + +- (*gdk_vm)->GetEnv(gdk_vm, (void **)&gdk_env, JNI_VERSION_1_1); ++ e.jni_env = &env; ++ (*the_vm)->GetEnv (the_vm, e.void_env, JNI_VERSION_1_1); ++ if (setup_cache (env) < 0) ++ { ++ /* The failed call to setup the cache is certainly not recoverable; ++ not appropriate for G_THREAD_ERROR_AGAIN. */ ++ *(gpointer *) threadIDp = NULL; ++ goto done; ++ } ++ HIDE_OLD_TROUBLE (env); + +- int_class = (*gdk_env)->FindClass (gdk_env, "java.lang.Integer"); +- MAYBE_RETHROW(gdk_env, "cannot find Integer"); ++ /* If a thread is joinable, then notify its constructor. The constructor ++ will enter a hard reference for it, and the hard ref. won't go away until ++ the thread has been joined. */ ++ newThreadObj = ++ (*env)->NewObject (env, runner_class, runner_ctor, ++ (jlong) (intptr_t) func, (jlong) (intptr_t) data, ++ jjoinable); ++ if ( ! newThreadObj ) ++ { ++ BROKEN (env, "creating a new thread failed in the constructor"); ++ *(gpointer *) threadIDp = NULL; ++ /* The failed call to the constructor does not throw any errors such ++ that G_THREAD_ERROR_AGAIN is appropriate. No other recoverable ++ errors defined. Once again, we go back to the VM. */ ++ goto done; ++ } + +- new_int = (*gdk_env)->GetMethodID(gdk_env, int_class, "", "(I)V"); +- MAYBE_RETHROW(gdk_env, "cannot find Integer."); ++ if (threadObj_set_priority (env, newThreadObj, gpriority) < 0) ++ { ++ *(gpointer *) threadIDp = NULL; ++ /* None of these possible exceptions from Thread.setPriority() are ++ recoverable, so they are not appropriate for EAGAIN. So we should ++ fail. */ ++ goto done; ++ } ++ ++ (*env)->CallVoidMethod (env, runner_class, runner_start_mth); + +- lcl_obj = (*gdk_env)->NewObject(gdk_env, int_class, new_int, (jint)data); +- MAYBE_RETHROW(gdk_env, "cannot create an Integer"); ++ if (MAYBE_BROKEN (env, "starting a new thread failed")) ++ { ++ *(gpointer *) threadIDp = NULL; ++ /* The only exception Thread.start() throws is ++ IllegalStateException. And that would indicate a programming error. ++ ++ So there are no situations such that G_THREAD_ERROR_AGAIN would be ++ OK. ++ ++ So, we don't use g_set_error() here to perform any error reporting. ++ */ ++ goto done; ++ } + +- lcl_class = (*gdk_env)->FindClass (gdk_env, "java.lang.ThreadLocal"); +- MAYBE_RETHROW(gdk_env, "cannot find ThreadLocal"); ++ threadID = getThreadIDFromThread (env, newThreadObj); + +- set_mth = (*gdk_env)->GetMethodID(gdk_env, lcl_class, "set", "(Ljava/lang/Object;)V"); +- MAYBE_RETHROW(gdk_env, "cannot find ThreadLocal."); ++ *(gpointer *) threadIDp = threadID; ++ SHOW_OLD_TROUBLE (); + +- (*gdk_env)->CallVoidMethod(gdk_env, *(jobject*)private, set_mth, lcl_obj); +- MAYBE_RETHROW(gdk_env, "cannot set thread local value"); ++done: ++ if (TRACE_API_CALLS) ++ tracing (" ==> (threadID = %p) \n", threadID); + } + + ++/* Wraps a call to g_thread_yield. */ ++static void ++thread_yield_jni_impl (void) ++{ ++ JNIEnv *env; ++ union env_union e; ++ ++ if (TRACE_API_CALLS) ++ tracing ("thread_yield_jni_impl()"); ++ ++ e.jni_env = &env; ++ (*the_vm)->GetEnv (the_vm, e.void_env, JNI_VERSION_1_1); ++ if (setup_cache (env) < 0) ++ goto done; ++ HIDE_OLD_TROUBLE (env); ++ ++ (*env)->CallStaticVoidMethod (env, thread_class, thread_yield_mth); ++ if (MAYBE_BROKEN (env, "Thread.yield() failed")) ++ goto done; ++ ++ SHOW_OLD_TROUBLE (); ++ ++done: ++ if (TRACE_API_CALLS) ++ tracing (" ==> VOID\n"); ++} ++ ++ ++static void ++thread_join_jni_impl (gpointer threadID) ++{ ++ JNIEnv *env; ++ union env_union e; ++ jobject threadObj = NULL; ++ ++ if ( TRACE_API_CALLS ) ++ tracing ("thread_join_jni_impl(threadID=%p) ", threadID); ++ ++ e.jni_env = &env; ++ (*the_vm)->GetEnv (the_vm, e.void_env, JNI_VERSION_1_1); ++ if (setup_cache (env) < 0) ++ goto done; ++ HIDE_OLD_TROUBLE (env); ++ ++ threadObj = getThreadFromThreadID (env, threadID); ++ if ( ! threadObj ) /* Already reported with BROKEN */ ++ goto done; ++ ++ (*env)->CallVoidMethod (env, threadObj, thread_join_mth); ++ if (MAYBE_BROKEN (env, "Thread.join() failed")) ++ goto done; ++ ++ ++ (*env)->CallStaticVoidMethod ++ (env, runner_class, runner_deRegisterJoinable_mth, threadObj); ++ if (MAYBE_BROKEN (env, "Thread.deRegisterJoinableThread() failed")) ++ goto done; ++ ++ SHOW_OLD_TROUBLE (); ++ ++done: ++ DELETE_LOCAL_REF (env, threadObj); ++ if (TRACE_API_CALLS) ++ tracing (" ==> VOID \n"); ++} ++ ++/* Terminate the current thread. Unlike pthread_exit(), here we do not need ++ to bother with a return value or exit value for the thread which is about ++ to croak. (The gthreads abstraction doesn't use it.) However, we *do* ++ need to bail immediately. We handle this with Thread.stop(), which is ++ a deprecated method. ++ ++ It's deprecated since we might leave objects protected by monitors in ++ half-constructed states on the way out -- Thread.stop() throws a ++ ThreadDeath exception, which is usually unchecked. There is no good ++ solution that I can see. */ ++static void ++thread_exit_jni_impl (void) ++{ ++ JNIEnv *env; ++ union env_union e; ++ jobject this_thread; ++ ++ if (TRACE_API_CALLS) ++ tracing ("thread_exit_jni_impl() "); ++ ++ e.jni_env = &env; ++ (*the_vm)->GetEnv (the_vm, e.void_env, JNI_VERSION_1_1); ++ if (setup_cache (env) < 0) ++ goto done; ++ ++ HIDE_OLD_TROUBLE (env); ++ ++ this_thread = (*env)-> ++ CallStaticObjectMethod (env, thread_class, thread_current_mth); ++ ++ if ( ! this_thread ) ++ { ++ BROKEN (env, "cannot get current thread"); ++ goto done; ++ } ++ ++ (*env)->CallVoidMethod (env, this_thread, thread_stop_mth); ++ if (MAYBE_BROKEN (env, "cannot call Thread.stop() on current thread")) ++ goto done; ++ ++ SHOW_OLD_TROUBLE (); ++ ++done: ++ if (TRACE_API_CALLS) ++ tracing (" ==> VOID \n"); ++} ++ ++ ++/* Translate a GThreadPriority to a Java priority level. */ ++static jint ++javaPriorityLevel (GThreadPriority priority) ++{ ++ /* We have these fields in java.lang.Thread to play with: ++ ++ static int MIN_PRIORITY The minimum priority that a thread can have. ++ static int NORM_PRIORITY The default priority that is assigned to a ++ thread. ++ static int MAX_PRIORITY The maximum priority that a thread can have. ++ ++ We get these from the header file generated by javah, even though they're ++ documented as being 1, 5, and 10. ++ */ ++ static const jint minJPri = ++ gnu_java_awt_peer_gtk_GThreadNativeMethodRunner_MIN_PRIORITY; ++ static const jint normJPri = ++ gnu_java_awt_peer_gtk_GThreadNativeMethodRunner_NORM_PRIORITY; ++ static const jint maxJPri = ++ gnu_java_awt_peer_gtk_GThreadNativeMethodRunner_MAX_PRIORITY; ++ ++ switch (priority) ++ { ++ case G_THREAD_PRIORITY_LOW: ++ return minJPri; ++ break; ++ ++ default: ++ assert_not_reached (); ++ /* Deliberate fall-through if assertions are turned off; also shuts up ++ GCC warnings if they're turned on. */ ++ case G_THREAD_PRIORITY_NORMAL: ++ return normJPri; ++ break; ++ ++ case G_THREAD_PRIORITY_HIGH: ++ return (normJPri + maxJPri) / 2; ++ break; ++ ++ case G_THREAD_PRIORITY_URGENT: ++ return maxJPri; ++ break; ++ } ++} ++ ++ ++/** It would be safe not to implement this, according to the JNI docs, since ++ not all platforms do thread priorities. However, we might as well ++ provide the hint for those who want it. ++*/ ++static void ++thread_set_priority_jni_impl (gpointer gThreadID, GThreadPriority gpriority) ++{ ++ jobject threadObj = NULL; ++ JNIEnv *env; ++ union env_union e; ++ ++ if (TRACE_API_CALLS) ++ tracing ("thread_set_priority_jni_impl(gThreadID=%p, gpriority = %u) ", ++ gThreadID, gpriority); ++ ++ e.jni_env = &env; ++ (*the_vm)->GetEnv (the_vm, e.void_env, JNI_VERSION_1_1); ++ ++ if (setup_cache (env) < 0) ++ goto done; ++ ++ HIDE_OLD_TROUBLE (env); ++ ++ ++ threadObj = getThreadFromThreadID (env, gThreadID); ++ if ( ! threadObj) /* Reported with BROKEN already. */ ++ goto done; ++ ++ if (threadObj_set_priority (env, threadObj, gpriority)) ++ goto done; ++ ++ SHOW_OLD_TROUBLE (); ++ ++done: ++ DELETE_LOCAL_REF (env, threadObj); ++ ++ if (TRACE_API_CALLS) ++ tracing (" ==> VOID\n"); ++} ++ ++ ++/** It would be safe not to implement this, according to the JNI docs, since ++ not all platforms do thread priorities. However, we might as well ++ provide the hint for those who want it. ++ ++ -1 on failure, 0 on success. */ ++static int ++threadObj_set_priority (JNIEnv * env, jobject threadObj, ++ GThreadPriority gpriority) ++{ ++ jint javaPriority = javaPriorityLevel (gpriority); ++ (*env)->CallVoidMethod (env, threadObj, thread_setPriority_mth, ++ javaPriority); ++ return MAYBE_BROKEN (env, "Thread.setPriority() failed"); ++} ++ ++ ++/** Return the result of Thread.currentThread(), a static method. */ ++static void ++thread_self_jni_impl (/* Another confusing glib prototype. This is ++ actually a gpointer to the thread's thread-ID. ++ Which is, of course, a gpointer. */ ++ gpointer my_thread_IDp) ++{ ++ JNIEnv *env; ++ union env_union e; ++ jobject this_thread; ++ gpointer my_threadID; ++ ++ if (TRACE_API_CALLS) ++ tracing ("thread_self_jni_impl(my_thread_IDp=%p)", my_thread_IDp); ++ ++ e.jni_env = &env; ++ (*the_vm)->GetEnv (the_vm, e.void_env, JNI_VERSION_1_1); ++ ++ if (setup_cache (env) < 0) ++ return; ++ ++ HIDE_OLD_TROUBLE (env); ++ ++ this_thread = (*env)-> ++ CallStaticObjectMethod (env, thread_class, thread_current_mth); ++ if (! this_thread ) ++ { ++ BROKEN (env, "cannot get current thread"); ++ my_threadID = NULL; ++ goto done; ++ } ++ ++ my_threadID = getThreadIDFromThread (env, this_thread); ++ SHOW_OLD_TROUBLE (); ++ ++done: ++ if (TRACE_API_CALLS) ++ tracing (" ==> (my_threadID = %p) \n", my_threadID); ++ ++ *(gpointer *) my_thread_IDp = my_threadID; ++} ++ ++ ++static gboolean ++thread_equal_jni_impl (gpointer thread1, gpointer thread2) ++{ ++ JNIEnv *env; ++ union env_union e; ++ ++ gpointer threadID1 = *(gpointer *) thread1; ++ gpointer threadID2 = *(gpointer *) thread2; ++ ++ jobject thread1_obj = NULL; ++ jobject thread2_obj = NULL; ++ gboolean ret; ++ ++ if (TRACE_API_CALLS) ++ tracing ("thread_equal_jni_impl(threadID1=%p, threadID2=%p)", ++ threadID1, threadID2); ++ ++ e.jni_env = &env; ++ (*the_vm)->GetEnv (the_vm, e.void_env, JNI_VERSION_1_1); ++ if (setup_cache (env) < 0) ++ { ++ ret = FALSE; /* what is safer? We really don't ever want ++ to return from here. */ ++ goto done; ++ } ++ ++ HIDE_OLD_TROUBLE (env); ++ thread1_obj = getThreadFromThreadID (env, threadID1); ++ thread2_obj = getThreadFromThreadID (env, threadID2); ++ ++ ret = (*env)->CallBooleanMethod (env, thread1_obj, ++ thread_equals_mth, thread2_obj); ++ ++ if (MAYBE_BROKEN (env, "Thread.equals() failed")) ++ { ++ ret = FALSE; ++ goto done; ++ } ++ ++ SHOW_OLD_TROUBLE (); ++ ++ ++done: ++ DELETE_LOCAL_REF (env, thread1_obj); ++ DELETE_LOCAL_REF (env, thread2_obj); ++ ++ if (TRACE_API_CALLS) ++ tracing (" ==> %s\n", ret ? "TRUE" : "FALSE"); ++ ++ return ret; ++} ++ ++ ++ ++ + /************************************************************************/ + /* GLIB interface */ + /************************************************************************/ + + /* set of function pointers to give to glib. */ +-GThreadFunctions g_thread_jni_functions = +-{ +- g_mutex_new_jni_impl, /* mutex_new */ +- g_mutex_lock_jni_impl, /* mutex_lock */ +- g_mutex_trylock_jni_impl, /* mutex_try_lock */ +- g_mutex_unlock_jni_impl, /* mutex_unlock */ +- g_mutex_free_jni_impl, /* mutex_free */ +- g_cond_new_jni_impl, /* cond_new */ +- g_cond_signal_jni_impl, /* cond_signal */ +- g_cond_broadcast_jni_impl, /* cond_broadcast */ +- g_cond_wait_jni_impl, /* cond_wait */ +- g_cond_timed_wait_jni_impl, /* cond_timed_wait */ +- g_cond_free_jni_impl, /* cond_free */ +- g_private_new_jni_impl, /* private_new */ +- g_private_get_jni_impl, /* private_get */ +- g_private_set_jni_impl, /* private_set */ +- NULL, +- NULL, +- NULL, +- NULL, +- NULL, +- NULL, +- NULL ++GThreadFunctions portable_native_sync_jni_functions = { ++ mutex_new_jni_impl, /* mutex_new */ ++ mutex_lock_jni_impl, /* mutex_lock */ ++ mutex_trylock_jni_impl, /* mutex_trylock */ ++ mutex_unlock_jni_impl, /* mutex_unlock */ ++ mutex_free_jni_impl, /* mutex_free */ ++ cond_new_jni_impl, /* cond_new */ ++ cond_signal_jni_impl, /* cond_signal */ ++ cond_broadcast_jni_impl, /* cond_broadcast */ ++ cond_wait_jni_impl, /* cond_wait */ ++ cond_timed_wait_jni_impl, /* cond_timed_wait */ ++ cond_free_jni_impl, /* cond_free */ ++ private_new_jni_impl, /* private_new */ ++ private_get_jni_impl, /* private_get */ ++ private_set_jni_impl, /* private_set */ ++ thread_create_jni_impl, /* thread_create */ ++ thread_yield_jni_impl, /* thread_yield */ ++ thread_join_jni_impl, /* thread_join */ ++ thread_exit_jni_impl, /* thread_exit */ ++ thread_set_priority_jni_impl, /* thread_set_priority */ ++ thread_self_jni_impl, /* thread_self */ ++ thread_equal_jni_impl, /* thread_equal */ + }; ++ + +-/* ??? */ +-void gdk_threads_wake () { +- +-} ++/* Keep c-font-lock-extra-types in alphabetical order. */ ++/* Local Variables: */ ++/* c-file-style: "gnu" */ ++/* c-font-lock-extra-types: ("\\sw+_t" "gboolean" "GError" "gpointer" ++ "GPrivate" "GThreadFunc" "GThreadFunctions" "GThreadPriority" ++ "gulong" ++ "JNIEnv" ++ "jboolean" "jclass" "jfieldID" "jint" "jlong" "jmethodID" "jobject" "jstring" "jthrowable" ) */ ++/* End: */ +Index: jni/gtk-peer/gthread-jni.h +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gthread-jni.h,v +retrieving revision 1.2 +diff -u -r1.2 gthread-jni.h +--- jni/gtk-peer/gthread-jni.h 30 Jun 2003 23:53:29 -0000 1.2 ++++ jni/gtk-peer/gthread-jni.h 6 Sep 2004 16:36:15 -0000 +@@ -42,7 +42,7 @@ + #include + #include "gtkpeer.h" + +-extern GThreadFunctions g_thread_jni_functions; +-extern JavaVM *gdk_vm; ++extern GThreadFunctions portable_native_sync_jni_functions; ++extern JavaVM *the_vm; + + #endif /* __GTHREADJNI_H__ */ +Index: jni/gtk-peer/gtkcairopeer.h +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gtkcairopeer.h,v +retrieving revision 1.1 +diff -u -r1.1 gtkcairopeer.h +--- jni/gtk-peer/gtkcairopeer.h 31 Dec 2003 08:58:31 -0000 1.1 ++++ jni/gtk-peer/gtkcairopeer.h 6 Sep 2004 16:36:15 -0000 +@@ -71,7 +71,8 @@ + GdkWindow *win; + GdkPixbuf *drawbuf; + char *pattern_pixels; +- cairo_surface_t *pattern; ++ cairo_surface_t *pattern_surface; ++ cairo_pattern_t *pattern; + gboolean debug; + }; + +Index: jni/gtk-peer/gtkpeer.h +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gtkpeer.h,v +retrieving revision 1.12 +diff -u -r1.12 gtkpeer.h +--- jni/gtk-peer/gtkpeer.h 23 Dec 2003 19:24:00 -0000 1.12 ++++ jni/gtk-peer/gtkpeer.h 6 Sep 2004 16:36:15 -0000 +@@ -91,6 +91,20 @@ + (*env)->DeleteGlobalRef (env, *globRefPtr); \ + free (globRefPtr);} while (0) + ++extern struct state_table *native_pixbufdecoder_state_table; ++ ++#define NSA_PB_INIT(env, clazz) \ ++ native_pixbufdecoder_state_table = init_state_table (env, clazz) ++ ++#define NSA_GET_PB_PTR(env, obj) \ ++ get_state (env, obj, native_pixbufdecoder_state_table) ++ ++#define NSA_SET_PB_PTR(env, obj, ptr) \ ++ set_state (env, obj, native_pixbufdecoder_state_table, (void *)ptr) ++ ++#define NSA_DEL_PB_PTR(env, obj) \ ++ remove_state_slot (env, obj, native_pixbufdecoder_state_table) ++ + #endif /* JVM_SUN */ + + struct graphics +@@ -118,14 +132,14 @@ + + #define SYNTHETIC_EVENT_MASK (1 << 10) + +-#define AWT_SHIFT_MASK (1 << 0) +-#define AWT_CTRL_MASK (1 << 1) +-#define AWT_META_MASK (1 << 2) +-#define AWT_ALT_MASK (1 << 3) +- +-#define AWT_BUTTON1_MASK (1 << 4) +-#define AWT_BUTTON2_MASK AWT_ALT_MASK +-#define AWT_BUTTON3_MASK AWT_META_MASK ++#define AWT_SHIFT_DOWN_MASK (1 << 6) ++#define AWT_CTRL_DOWN_MASK (1 << 7) ++#define AWT_META_DOWN_MASK (1 << 8) ++#define AWT_ALT_DOWN_MASK (1 << 9) ++ ++#define AWT_BUTTON1_DOWN_MASK (1 << 10) ++#define AWT_BUTTON2_DOWN_MASK (1 << 11) ++#define AWT_BUTTON3_DOWN_MASK (1 << 12) + + #define MULTI_CLICK_TIME 250 + /* as opposed to a MULTI_PASS_TIME :) */ +@@ -361,8 +375,8 @@ + #define VK_ALT_GRAPH 65406 + #define VK_UNDEFINED 0 + +-#define AWT_FOCUS_LOST 1004 +-#define AWT_FOCUS_GAINED 1005 ++#define AWT_FOCUS_GAINED 1004 ++#define AWT_FOCUS_LOST 1005 + + #define AWT_WINDOW_OPENED 200 + #define AWT_WINDOW_CLOSING 201 +@@ -385,6 +399,35 @@ + #define AWT_STYLE_BOLD 1 + #define AWT_STYLE_ITALIC 2 + ++/* From java.awt.SystemColor */ ++#define AWT_DESKTOP 0 ++#define AWT_ACTIVE_CAPTION 1 ++#define AWT_ACTIVE_CAPTION_TEXT 2 ++#define AWT_ACTIVE_CAPTION_BORDER 3 ++#define AWT_INACTIVE_CAPTION 4 ++#define AWT_INACTIVE_CAPTION_TEXT 5 ++#define AWT_INACTIVE_CAPTION_BORDER 6 ++#define AWT_WINDOW 7 ++#define AWT_WINDOW_BORDER 8 ++#define AWT_WINDOW_TEXT 9 ++#define AWT_MENU 10 ++#define AWT_MENU_TEXT 11 ++#define AWT_TEXT 12 ++#define AWT_TEXT_TEXT 13 ++#define AWT_TEXT_HIGHLIGHT 14 ++#define AWT_TEXT_HIGHLIGHT_TEXT 15 ++#define AWT_TEXT_INACTIVE_TEXT 16 ++#define AWT_CONTROL 17 ++#define AWT_CONTROL_TEXT 18 ++#define AWT_CONTROL_HIGHLIGHT 19 ++#define AWT_CONTROL_LT_HIGHLIGHT 20 ++#define AWT_CONTROL_SHADOW 21 ++#define AWT_CONTROL_DK_SHADOW 22 ++#define AWT_SCROLLBAR 23 ++#define AWT_INFO 24 ++#define AWT_INFO_TEXT 25 ++#define AWT_NUM_COLORS 26 ++ + extern jmethodID setBoundsCallbackID; + + extern jmethodID postActionEventID; +@@ -406,6 +449,8 @@ + extern jmethodID gdkColorID; + extern JNIEnv *gdk_env; + ++extern double dpi_conversion_factor; ++ + extern GtkWindowGroup *global_gtk_window_group; + + void awt_event_handler (GdkEvent *event); +@@ -428,4 +473,19 @@ + const char *label; + }; + ++#define DEBUG_LOCKING 0 ++ ++#if DEBUG_LOCKING ++#define gdk_threads_enter() \ ++{ \ ++ g_print ("lock: %s, %d\n", __FILE__, __LINE__); \ ++ gdk_threads_enter (); \ ++} ++#define gdk_threads_leave() \ ++{ \ ++ g_print ("unlock: %s, %d\n", __FILE__, __LINE__); \ ++ gdk_threads_leave (); \ ++} ++#endif ++ + #endif /* __GTKPEER_H */ --- gcc-3.4-3.4.3.orig/debian/patches/hppa-libjava-update.dpatch +++ gcc-3.4-3.4.3/debian/patches/hppa-libjava-update.dpatch @@ -0,0 +1,255 @@ +#! /bin/sh -e + +# DP: MD_FALLBACK_FRAME_STATE_FOR definition for pa32-linux + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + cd ${dir}libjava && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +From: "John David Anglin" +Sender: gcc-patches-owner@gcc.gnu.org +To: randolph@tausq.org +Cc: gcc-patches@gcc.gnu.org +Subject: Re: [patch/hppa-linux] MD_FALLBACK_FRAME_STATE_FOR definition +Date: Thu, 8 Jul 2004 23:44:54 -0400 (EDT) + +I committed the following, slightly revised version, of your patch. +The libjava portion was previously approved. + +Tested on hppa-unknown-linux-gnu. Installed to trunk. + +Thanks, +Dave +-- +J. David Anglin dave.anglin@nrc-cnrc.gc.ca +National Research Council of Canada (613) 990-0752 (FAX: 952-6602) + +2004-07-08 Randolph Chung + + * gcc/config/pa/pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define. + + * libjava/configure.in (SIGNAL_HANDLER): Use pa-signal.h for hppa. + * libjava/configure: Regenerate. + * libjava/configure.host: Set can_unwind_signal for hppa*-linux. + * libjava/pa-signal.h: New file. + +Index: gcc/config/pa/pa32-linux.h +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/pa/pa32-linux.h,v +retrieving revision 1.12 +diff -u -3 -p -r1.12 pa32-linux.h +--- gcc/config/pa/pa32-linux.h 23 Aug 2003 01:32:59 -0000 1.12 ++++ gcc/config/pa/pa32-linux.h 9 Jul 2004 03:12:51 -0000 +@@ -35,3 +35,97 @@ Boston, MA 02111-1307, USA. */ + __attribute__ ((__unused__, section(".ctors"), \ + aligned(sizeof(func_ptr)))) \ + = { (func_ptr) (-1) } ++ ++/* Do code reading to identify a signal frame, and set the frame ++ state data appropriately. See unwind-dw2.c for the structs. */ ++ ++#ifdef IN_LIBGCC2 ++#include ++#include ++ ++/* Unfortunately, because of various bugs and changes to the kernel, ++ we have several cases to deal with. ++ ++ In 2.4, the signal trampoline is 4 words, and (CONTEXT)->ra should ++ point directly at the beginning of the trampoline and struct rt_sigframe. ++ ++ In <= 2.6.5-rc2-pa3, the signal trampoline is 9 words, and ++ (CONTEXT)->ra points at the 4th word in the trampoline structure. This ++ is wrong, it should point at the 5th word. This is fixed in 2.6.5-rc2-pa4. ++ ++ To detect these cases, we first take (CONTEXT)->ra, align it to 64-bytes ++ to get the beginning of the signal frame, and then check offsets 0, 4 ++ and 5 to see if we found the beginning of the trampoline. This will ++ tell us how to locate the sigcontext structure. ++ ++ Note that with a 2.4 64-bit kernel, the signal context is not properly ++ passed back to userspace so the unwind will not work correctly. */ ++#define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS) \ ++ do { \ ++ unsigned long sp = (unsigned long)(CONTEXT)->ra & ~63; \ ++ unsigned int *pc = (unsigned int *)sp; \ ++ unsigned long off; \ ++ _Unwind_Ptr new_cfa; \ ++ int i; \ ++ struct sigcontext *sc; \ ++ struct rt_sigframe { \ ++ struct siginfo info; \ ++ struct ucontext uc; \ ++ } *frame; \ ++ \ ++ /* rt_sigreturn trampoline: \ ++ 3419000x ldi 0, %r25 or ldi 1, %r25 (x = 0 or 2) \ ++ 3414015a ldi __NR_rt_sigreturn, %r20 \ ++ e4008200 be,l 0x100(%sr2, %r0), %sr0, %r31 \ ++ 08000240 nop */ \ ++ \ ++ if (pc[0] == 0x34190000 || pc[0] == 0x34190002) \ ++ off = 4*4; \ ++ else if (pc[4] == 0x34190000 || pc[4] == 0x34190002) \ ++ { \ ++ pc += 4; \ ++ off = 10 * 4; \ ++ } \ ++ else if (pc[5] == 0x34190000 || pc[5] == 0x34190002) \ ++ { \ ++ pc += 5; \ ++ off = 10 * 4; \ ++ } \ ++ else \ ++ break; \ ++ if (pc[1] != 0x3414015a \ ++ || pc[2] != 0xe4008200 \ ++ || pc[3] != 0x08000240) \ ++ break; \ ++ \ ++ frame = (struct rt_sigframe *)(sp + off); \ ++ sc = &frame->uc.uc_mcontext; \ ++ \ ++ new_cfa = sc->sc_gr[30]; \ ++ (FS)->cfa_how = CFA_REG_OFFSET; \ ++ (FS)->cfa_reg = 30; \ ++ (FS)->cfa_offset = new_cfa - (long) (CONTEXT)->cfa; \ ++ for (i = 1; i <= 31; i++) \ ++ { \ ++ (FS)->regs.reg[i].how = REG_SAVED_OFFSET; \ ++ (FS)->regs.reg[i].loc.offset = (long)&sc->sc_gr[i] - new_cfa; \ ++ } \ ++ for (i = 4; i <= 31; i++) \ ++ { \ ++ /* FP regs have left and right halves */ \ ++ (FS)->regs.reg[2*i+24].how = REG_SAVED_OFFSET; \ ++ (FS)->regs.reg[2*i+24].loc.offset \ ++ = (long)&sc->sc_fr[i] - new_cfa; \ ++ (FS)->regs.reg[2*i+24+1].how = REG_SAVED_OFFSET; \ ++ (FS)->regs.reg[2*i+24+1].loc.offset \ ++ = (long)&sc->sc_fr[i] + 4 - new_cfa; \ ++ } \ ++ (FS)->regs.reg[88].how = REG_SAVED_OFFSET; \ ++ (FS)->regs.reg[88].loc.offset = (long) &sc->sc_sar - new_cfa; \ ++ (FS)->regs.reg[2].how = REG_SAVED_OFFSET; \ ++ (FS)->regs.reg[2].loc.offset = (long) &sc->sc_iaoq[0] - new_cfa; \ ++ (FS)->retaddr_column = 2; \ ++ goto SUCCESS; \ ++ } while (0) ++ ++#endif /* IN_LIBGCC2 */ +Index: libjava/configure.host +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/configure.host,v +retrieving revision 1.59 +diff -u -3 -p -r1.59 configure.host +--- libjava/configure.host 7 Jul 2004 18:23:59 -0000 1.59 ++++ libjava/configure.host 9 Jul 2004 03:12:51 -0000 +@@ -169,6 +169,7 @@ case "${host}" in + sparc*-linux* | \ + ia64-* | \ + x86_64*-linux* | \ ++ hppa*-linux* | \ + sh-linux* | sh[34]*-linux*) + can_unwind_signal=yes + if test x$slow_pthread_self = xyes \ +Index: libjava/configure.in +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/configure.in,v +retrieving revision 1.186 +diff -u -3 -p -r1.186 configure.in +--- libjava/configure.in 1 Jul 2004 04:09:07 -0000 1.186 ++++ libjava/configure.in 9 Jul 2004 03:12:51 -0000 +@@ -1177,6 +1177,9 @@ case "${host}" in + # SYSDEP_SOURCES=sysdep/ia64.c + # test -d sysdep || mkdir sysdep + # ;; ++ hppa*-*-linux*) ++ SIGNAL_HANDLER=include/pa-signal.h ++ ;; + ia64-*-linux*) + SIGNAL_HANDLER=include/dwarf2-signal.h + ;; +--- libjava/include/pa-signal.h 2004-05-04 13:30:25.000000000 -0700 ++++ libjava/include/pa-signal.h 2004-05-04 13:30:25.000000000 -0700 +@@ -0,0 +1,61 @@ ++// pa-signal.h - Catch runtime signals and turn them into exceptions. ++ ++/* Copyright (C) 1998, 1999, 2000 Free Software Foundation ++ ++ This file is part of libgcj. ++ ++This software is copyrighted work licensed under the terms of the ++Libgcj License. Please consult the file "LIBGCJ_LICENSE" for ++details. */ ++ ++#ifndef JAVA_SIGNAL_H ++#define JAVA_SIGNAL_H 1 ++ ++#include ++#include ++#include ++ ++#define HANDLE_SEGV 1 ++#define HANDLE_FPE 1 ++ ++#define SIGNAL_HANDLER(_name) \ ++static void _Jv_##_name (int _dummy, siginfo_t *_info, void *arg) ++ ++#define MAKE_THROW_FRAME(_exception) \ ++do \ ++{ \ ++ struct ucontext *uc = (struct ucontext *)arg; \ ++ struct sigcontext *sc = &uc->uc_mcontext; \ ++ (void)_dummy; \ ++ (void)_info; \ ++ /* Advance the program counter so that it is after the start \ ++ of the instruction: the exception handler expects \ ++ the PC to point to the instruction after a call. */ \ ++ sc->sc_iaoq[0] = sc->sc_iaoq[1]; \ ++ sc->sc_iaoq[1] += 4; \ ++} \ ++while (0) ++ ++#define INIT_SEGV \ ++do \ ++ { \ ++ struct sigaction act; \ ++ act.sa_sigaction = _Jv_catch_segv; \ ++ sigemptyset (&act.sa_mask); \ ++ act.sa_flags = SA_SIGINFO; \ ++ syscall (SYS_rt_sigaction, SIGSEGV, &act, NULL, _NSIG / 8); \ ++ } \ ++while (0) ++ ++#define INIT_FPE \ ++do \ ++ { \ ++ struct sigaction act; \ ++ act.sa_sigaction = _Jv_catch_fpe; \ ++ sigemptyset (&act.sa_mask); \ ++ act.sa_flags = SA_SIGINFO; \ ++ syscall (SYS_rt_sigaction, SIGFPE, &act, NULL, _NSIG / 8); \ ++ } \ ++while (0) ++ ++#endif /* JAVA_SIGNAL_H */ --- gcc-3.4-3.4.3.orig/debian/patches/powerpc-biarch.dpatch +++ gcc-3.4-3.4.3/debian/patches/powerpc-biarch.dpatch @@ -0,0 +1,76 @@ +#! /bin/sh -e + +# DP: enable biarch for 32 bit compiler + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- gcc/config.gcc~ 2004-04-03 08:54:33.000000000 +0200 ++++ gcc/config.gcc 2004-04-03 09:24:44.000000000 +0200 +@@ -1760,8 +1760,8 @@ + tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-linux rs6000/t-ppccomm" + ;; + powerpc-*-linux*) +- tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h" +- tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-linux rs6000/t-ppccomm" ++ tm_file="rs6000/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux64.h" ++ tmake_file="t-slibgcc-elf-ver t-linux rs6000/t-ppccomm" + ;; + powerpc-*-gnu-gnualtivec*) + tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxaltivec.h rs6000/gnu.h" +--- gcc/config/rs6000/t-linux64~ 2004-03-17 22:18:42.000000000 +0100 ++++ gcc/config/rs6000/t-linux64 2004-04-03 09:26:04.000000000 +0200 +@@ -8,30 +8,10 @@ + + SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-ppc64.ver + +-MULTILIB_OPTIONS = m64/m32 msoft-float +-MULTILIB_DIRNAMES = 64 32 nof ++MULTILIB_OPTIONS = m64/m32 ++MULTILIB_DIRNAMES = 64 32 + MULTILIB_EXTRA_OPTS = fPIC mstrict-align +-MULTILIB_EXCEPTIONS = m64/msoft-float +-MULTILIB_EXCLUSIONS = m64/!m32/msoft-float +-MULTILIB_OSDIRNAMES = ../lib64 ../lib nof +-MULTILIB_MATCHES = $(MULTILIB_MATCHES_FLOAT) +- +-# We want fine grained libraries, so use the new code to build the +-# floating point emulation libraries. +-# fp-bit is only to be used by 32-bit multilibs +-FPBIT = fp-bit32.c +-DPBIT = dp-bit32.c +- +-dp-bit32.c: $(srcdir)/config/fp-bit.c +- ( echo '#ifndef __powerpc64__'; \ +- cat $(srcdir)/config/fp-bit.c; \ +- echo '#endif' ) > dp-bit32.c +- +-fp-bit32.c: $(srcdir)/config/fp-bit.c +- ( echo '#ifndef __powerpc64__'; \ +- echo '#define FLOAT'; \ +- cat $(srcdir)/config/fp-bit.c; \ +- echo '#endif' ) > fp-bit32.c ++MULTILIB_OSDIRNAMES = ../lib64 ../lib + + # Hack to use -mlong-double-128 just for compiling 64 bit libgcc + mklibgcc: bispecs --- gcc-3.4-3.4.3.orig/debian/patches/gpc-no-gpidump.dpatch +++ gcc-3.4-3.4.3/debian/patches/gpc-no-gpidump.dpatch @@ -0,0 +1,42 @@ +#! /bin/sh -e + +# DP: Do not build gpidump due to PR optimization/9279. + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- gcc/p/utils/Makefile~ 2003-02-26 23:28:45.000000000 +0100 ++++ gcc/p/utils/Makefile 2003-02-26 23:29:38.000000000 +0100 +@@ -41,9 +41,9 @@ + + # Internal variables + PFLAGS1=--executable-path=. --unit-path=$(GCC_DIR)/p/rts --unit-path=$(GCC_DIR)/p/units +-EXE=binobj$(exeext) gpidump$(exeext) +-EXE2=binobj gpidump +-DOC=binobj.1 gpidump.1 ++EXE=binobj$(exeext) #gpidump$(exeext) ++EXE2=binobj #gpidump ++DOC=binobj.1 #gpidump.1 + PC_WITH_FLAGS=$(PC) --automake --executable-file-name $(UTILS_WARN) $(CFLAGS) $(PFLAGS) $(PFLAGS1) `cat needed-options` + + all: $(EXE) $(DOC) --- gcc-3.4-3.4.3.orig/debian/patches/cvs-updates.dpatch +++ gcc-3.4-3.4.3/debian/patches/cvs-updates.dpatch @@ -0,0 +1,214266 @@ +#! /bin/sh -e + +# DP: CVS updates from the 3.4 branch upto 20050209 + +last_updated() +{ + cat > ${dir}LAST_UPDATED <&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + last_updated + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +cvs -z9 -q diff -uN -r gcc_3_4_3_release -r gcc-3_4-branch + +Index: ChangeLog +=================================================================== +RCS file: /cvs/gcc/gcc/ChangeLog,v +retrieving revision 1.856.2.25 +retrieving revision 1.856.2.28 +diff -u -r1.856.2.25 -r1.856.2.28 +--- ChangeLog 5 Nov 2004 03:33:10 -0000 1.856.2.25 ++++ ChangeLog 13 Jan 2005 00:52:27 -0000 1.856.2.28 +@@ -1,3 +1,13 @@ ++2005-01-12 David Edelsohn ++ Andreas Schwab ++ ++ PR bootstrap/18033 ++ * config-ml.in: Eval option if surrounded by single quotes. ++ ++2005-01-06 Laurent GUERBY ++ ++ * MAINTAINERS: Update my email address. ++ + 2004-11-04 Release Manager + + * GCC 3.4.3 released. +Index: MAINTAINERS +=================================================================== +RCS file: /cvs/gcc/gcc/MAINTAINERS,v +retrieving revision 1.332.2.7 +retrieving revision 1.332.2.8 +diff -u -r1.332.2.7 -r1.332.2.8 +--- MAINTAINERS 6 Oct 2004 12:00:26 -0000 1.332.2.7 ++++ MAINTAINERS 7 Jan 2005 18:50:14 -0000 1.332.2.8 +@@ -209,7 +209,7 @@ + Kaveh Ghazi ghazi@caip.rutgers.edu + Matthew Gingell gingell@gnat.com + Anthony Green green@redhat.com +-Laurent Guerby guerby@acm.org ++Laurent Guerby laurent@guerby.net + Olivier Hainque hainque@act-europe.fr + Stuart Hastings stuart@apple.com + Matthew Hiller hiller@redhat.com +Index: config-ml.in +=================================================================== +RCS file: /cvs/gcc/gcc/config-ml.in,v +retrieving revision 1.30 +retrieving revision 1.30.4.1 +diff -u -r1.30 -r1.30.4.1 +--- config-ml.in 5 Jan 2004 00:41:14 -0000 1.30 ++++ config-ml.in 13 Jan 2005 00:50:40 -0000 1.30.4.1 +@@ -108,6 +108,11 @@ + ml_verbose=--verbose + for option in ${ac_configure_args} + do ++ # strip single quotes surrounding individual options ++ case $option in ++ \'*\') eval option=$option ;; ++ esac ++ + case $option in + --*) ;; + -*) option=-$option ;; +Index: contrib/ChangeLog +=================================================================== +RCS file: /cvs/gcc/gcc/contrib/ChangeLog,v +retrieving revision 1.179.4.8 +retrieving revision 1.179.4.9 +diff -u -r1.179.4.8 -r1.179.4.9 +--- contrib/ChangeLog 5 Nov 2004 03:33:18 -0000 1.179.4.8 ++++ contrib/ChangeLog 17 Jan 2005 19:30:51 -0000 1.179.4.9 +@@ -1,3 +1,7 @@ ++2005-01-17 David O'Brien ++ ++ * contrib/gcc_update: Explicitly update the branch. ++ + 2004-11-04 Release Manager + + * GCC 3.4.3 released. +Index: contrib/gcc_update +=================================================================== +RCS file: /cvs/gcc/gcc/contrib/gcc_update,v +retrieving revision 1.55.4.1 +retrieving revision 1.55.4.2 +diff -u -r1.55.4.1 -r1.55.4.2 +--- contrib/gcc_update 9 Jun 2004 09:15:14 -0000 1.55.4.1 ++++ contrib/gcc_update 17 Jan 2005 19:30:51 -0000 1.55.4.2 +@@ -29,7 +29,7 @@ + # contrib/gcc_update --list + # + # +-# (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation ++# (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation + # Originally by Gerald Pfeifer , August 1998. + # + # This script is Free Software, and it can be copied, distributed and +@@ -209,7 +209,7 @@ + fi + + echo "Updating CVS tree" +-$GCC_CVS -q update ${1+"$@"} ++$GCC_CVS -q update -r gcc-3_4-branch ${1+"$@"} + if [ $? -ne 0 ]; then + (touch_files_reexec) + echo "CVS update of full tree failed." >&2 +Index: gcc/ChangeLog +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/ChangeLog,v +retrieving revision 2.2326.2.680 +retrieving revision 2.2326.2.795 +diff -u -r2.2326.2.680 -r2.2326.2.795 +--- gcc/ChangeLog 5 Nov 2004 03:33:38 -0000 2.2326.2.680 ++++ gcc/ChangeLog 7 Feb 2005 21:18:11 -0000 2.2326.2.795 +@@ -1,3 +1,912 @@ ++2005-02-08 Alan Modra ++ ++ PR target/19803 ++ * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%. ++ ++2005-02-07 Ralf Corsepius ++ ++ * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200. ++ ++2005-02-03 Richard Guenther ++ ++ PR middle-end/19775 ++ * builtins.c (fold_builtin_sqrt): Transform ++ sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not ++ pow(x,y*0.5). ++ ++2005-02-01 Richard Earnshaw ++ ++ PR target/16201 ++ * arm.c (arm_eliminable_register): New function. ++ (adjacent_mem_locations): Don't allow eliminable registers. Use ++ HOST_WIDE_INT for address offsets. ++ * arm-protos.h (arm_eliminable_register): Add prototype. ++ ++2005-01-31 Daniel Jacobowitz ++ ++ 2004-09-22 Mark Mitchell ++ * gcc/dwarf2out.c (scope_die_for): If the containing scope is a ++ TRANSLATION_UNIT_DECL, consider it to be a global. ++ ++2005-01-29 Alan Modra ++ ++ * unwind-dw2.c (execute_stack_op): Add missing cases for ++ DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor. ++ ++2005-01-28 Stephane Carrez ++ ++ PR target/15384 ++ * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a ++ configuration part of dp-bit.c to be lost. ++ ++2005-01-27 Ulrich Weigand ++ ++ PR target/17771 ++ Backport from mainline: ++ * config/s390/s390.md ("reload_outti"): Remove predicate for ++ output operand. Abort if operand is not a MEM. ++ ("reload_outdi", "reload_outdf"): Likewise. ++ ++2005-01-27 Marek Michalkiewicz ++ ++ PR target/19293 ++ PR target/19329 ++ * config/avr/avr.c (notice_update_cc): Only set condition code for ++ ashrqi3 if shift count > 0. ++ (out_shift_with_cnt): Handle shift count <= 0 as a no-op. ++ (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out, ++ ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift ++ count <= 0 as a no-op, and shift count >= width by copying zero ++ or sign bit to all bits of the result. ++ * config/avr/avr.md (all shifts): Add alternatives for zero shift ++ count, with attribute "length" set to 0 and "cc" set to "none". ++ ++2005-01-27 J"orn Rennecke ++ ++ * real.c (do_add): Initialize signalling and canonical members. ++ ++ * real.c (real_from_integer): Zero out destination. ++ ++2005-01-26 Ulrich Weigand ++ ++ Backport from mainline: ++ * dbxout.c (dbxout_symbol_location): Resolve constant pool references ++ even for variables with NULL DECL_INITIAL. ++ ++2005-01-25 Richard Earnshaw ++ ++ PR target/19393 ++ Backport: ++ 2004-03-30 Nick Clifton ++ * config/arm/arm.md (thumb_jump): Reduce the backward branch ++ range, and increase the forward branch range, to allow for ++ the fact that the PC will be off by 4. ++ ++2005-01-24 Richard Henderson ++ Aldy Hernandez ++ ++ * regrename.c (note_sets): Handle subregs. ++ ++2005-01-24 Jakub Jelinek ++ ++ * flow.c (propagate_one_insn): Formatting. ++ ++ PR middle-end/19551 ++ * flow.c (libcall_dead_p): Be more conservative if unsure. ++ If there are any instructions between insn and call, see if they are ++ all dead before saying the libcall is dead. ++ ++2005-01-22 Ralf Corsepius ++ ++ PR target/19548 ++ * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4. ++ (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h). ++ (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC. ++ ++2005-01-19 Jakub Jelinek ++ ++ PR rtl-optimization/15139 ++ * combine.c: Include params.h. ++ (count_rtxs): New function. ++ (record_value_for_reg): If replace_rtx would replace at least ++ 2 occurrences of REG in VALUE and TEM is really large, replace REG with ++ (clobber (const_int 0)) instead of TEM. ++ * params.def (PARAM_MAX_LAST_VALUE_RTL): New. ++ * params.h (MAX_LAST_VALUE_RTL): New. ++ * Makefile.in (combine.o): Depend on $(PARAMS_H). ++ * doc/invoke.texi (--param max-last-value-rtl=N): Document. ++ ++ PR c/17297 ++ * c-typeck.c (digest_init): Only call build_vector if all constructor ++ elements are *_CST nodes. ++ ++ PR middle-end/19164 ++ * c-typeck.c (digest_init): Only call build_vector if inside_init ++ is a CONSTRUCTOR. ++ ++2005-01-18 Eric Botcazou ++ ++ PR debug/16261 ++ Backport from mainline: ++ 2004-01-27 Devang Patel ++ ++ * dwarf2out.c: (remove_child_TAG): New function. ++ (gen_subprogram_die): Do not remove all children dies while reusing ++ declaration die for definition. Instead, selectively remove only ++ formal parameters. ++ ++2005-01-18 Eric Botcazou ++ ++ PR rtl-optimization/19296 ++ * combine.c (simplify_comparison): Rewrite the condition under ++ which a non-paradoxical SUBREG of a PLUS can be lifted when ++ compared against a constant. ++ ++2005-01-17 John David Anglin ++ ++ * varasm.c (process_pending_assemble_output_defs): Fix previous change. ++ ++2005-01-16 John David Anglin ++ ++ PR target/16304 ++ * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default. ++ * toplev.c (compile_file): Call process_pending_assemble_output_defs ++ just before targetm.asm_out.file_end. ++ * tree.h (process_pending_assemble_output_defs): Declare. ++ * varasm.c (assemble_output_def, process_pending_assemble_output_defs): ++ New functions. ++ (assemble_alias): Defer generation of assembly code for defines when ++ TARGET_DEFERRED_OUTPUT_DEFS is true. ++ * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define. ++ * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define. ++ * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document. ++ ++2005-01-15 Ralf Corsepius ++ ++ * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0. ++ * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS): ++ Remove little endian multilib variants. ++ Add mips32 multilib variant. ++ ++2005-01-14 David Edelsohn ++ ++ * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert last change. ++ ++2005-01-13 David O'Brien ++ ++ Backport from mainline: ++ * config/freebsd-spec.h: Make KSE pthread lib logic the default. ++ ++2005-01-13 David Edelsohn ++ ++ * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE ++ definition to 600. ++ ++2005-01-13 Ralf Corsepius ++ ++ * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu. ++ ++2004-01-12 David Mosberger ++ James E Wilson ++ ++ PR target/18987 ++ * config/ia64/ia64.c (process_set): For alloc insn, only call ++ process_epilogue is !frame_pointer_needed. ++ ++ PR target/13158 ++ * config/ia64/ia64.c (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on ++ sibcall alloc instruction. ++ (process_set): Handle sibcall alloc instruction. ++ ++2005-01-10 David Edelsohn ++ ++ PR target/18720 ++ Backport from mainline ++ * collect2.c (main): Set aixrtl_flag for -brtl option. ++ (resolve_lib_name): Search for .so file extension before .a ++ if aixrtl_flag set. ++ ++2005-01-08 Jakub Jelinek ++ ++ PR rtl-optimization/19012 ++ * config/i386/i386.md (addqi_1_slp): Set memory attribute. ++ ++2005-01-07 Eric Botcazou ++ ++ * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo. ++ * configure: Regenerate. ++ ++2005-01-07 Jakub Jelinek ++ ++ * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy ++ TYPE_MODE. ++ ++2005-01-06 Richard Sandiford ++ ++ PR rtl-opt/13299 ++ * loop.c (get_monotonic_increment, biased_biv_fits_mode_p, ++ biv_fits_mode_p, extension_within_bounds_p): New functions. ++ (check_ext_dependent_givs): Use them. ++ ++2005-01-05 Richard Henderson ++ ++ PR rtl-opt/10692 ++ * reload1.c (do_input_reload): Restrict the optimization deleteing ++ a previous output reload to RELOAD_FOR_INPUT. ++ ++2005-01-06 Jakub Jelinek ++ ++ Backport from mainline: ++ 2004-03-22 Diego Novillo ++ ++ * c-typeck.c (same_translation_unit_p): Fix pasto. ++ ++2005-01-02 Roger Sayle ++ Andrew Pinski ++ James E. Wilson ++ ++ PR rtl-optimization/12092 ++ * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK ++ is zero. ++ ++2004-12-30 Roger Sayle ++ ++ PR middle-end/19175 ++ * loop-unroll.c (expand_bct): Pass the code_label to the function ++ do_compare_rtx_and_jump, not the label ref. Clean-up style issues. ++ ++2004-12-27 John David Anglin ++ ++ * vax.c (vax_address_cost, vax_rtx_cost): Correct casts. ++ (vax_rtx_cost): Handle small offsets for both PLUS and MINUS. ++ ++2004-12-27 Steven Bosscher ++ John David Anglin ++ ++ rtl-optimization/12863 ++ * config/vax/vax.h (CASE_DROPS_THROUGH): Don't define. ++ * config/vax/vax.md (casesi): Emit a test-and-branch to make sure ++ that the case is in range, to make sure the casesi insn is always ++ in range and never falls through. ++ (casesi1): Add comment to explain why casesi never falls through. ++ Remove the unnamed special case casesi pattern. ++ ++2004-12-27 John David Anglin ++ ++ PR c++/14607. ++ Backported from main. ++ * configure.ac (HAVE_GAS_NSUBSPA_COMDAT): Add check for .NSUBSPA ++ COMDAT support. ++ * configure. config.in: Rebuilt. ++ * config/pa/pa-protos.h (som_text_section_asm_op, ++ som_readonly_data_section, som_one_only_readonly_data_section, ++ som_one_only_data_section, forget_section): Declare. ++ * pa.c (override_options): Set init_machine_status to ++ pa_init_machine_status. ++ (pa_init_machine_status): New function. ++ (pa_output_function_epilogue): Call forget_section if TARGET_SOM and ++ TARGET_GAS. ++ (pa_asm_output_mi_thunk): Likewise. ++ (som_text_section_asm_op): New function. ++ (pa_select_section): Call som_one_only_readonly_data_section and ++ som_one_only_data_section when appropriate. ++ * pa.h (struct machine_function): Define. ++ (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, ++ SOM_READONLY_DATA_SECTION_FUNCTION, ++ SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION ++ SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New ++ macros. ++ * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete. ++ (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op. ++ (READONLY_DATA_ASM_OP, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete. ++ (READONLY_DATA_SECTION): Call som_readonly_data_section when not PIC. ++ (SUPPORTS_SOM_COMDAT): New define. ++ (SUPPORTS_ONE_ONLY): True if SUPPORTS_WEAK or SUPPORTS_SOM_COMDAT. ++ (MAKE_DECL_ONE_ONLY): Rework common support. ++ ++2004-12-26 John David Anglin ++ ++ PR target/17643 ++ * pa.c (pa_function_ok_for_sibcall): Sibcalls are not ok when ++ generating code for the portable runtime. ++ ++2004-12-25 Alan Modra ++ ++ PR target/19147 ++ * config/rs6000/rs6000.md (andsi3_internal7, andsi3_internal8): Delete. ++ ++2004-12-23 Richard Henderson ++ ++ PR c/18282 ++ * c-decl.c (finish_enum): Retain precision acquired from an attribute. ++ ++2004-12-23 Alexandre Oliva ++ ++ PR target/16819 ++ * calls.c (load_register_parameters): Don't call use_regs when ++ nregs is zero. ++ ++2004-12-22 Richard Henderson ++ ++ PR target/19102 ++ * config/i386/i386.c (x86_inter_unit_moves): Disable. ++ (ix86_hard_regno_mode_ok): Disallow SSE2 and MMX scalar modes ++ in SSE registers when only SSE1 enabled. ++ ++2004-12-21 David O'Brien ++ ++ Backport from mainline: ++ * config/freebsd-spec.h: Use KSE pthread lib for -pthread. ++ ++2004-12-19 Richard Henderson ++ ++ * config/i386/i386.c (ix86_hard_regno_mode_ok): Always accept all SSE, ++ MMX, 3DNOW modes in SSE registers; always accept all MMX, 3DNOW modes ++ in MMX registers. ++ * config/i386/i386.h (VALID_SSE2_REG_MODE): Don't include ++ VALID_MMX_REG_MODE. ++ * config/i386/i386.md (movv4sf_internal, movv4si_internal, ++ movv2di_internal, movv2si_internal, movv4hi_internal, ++ movv2sf_internal, movv2df_internal, movv8hi_internal, ++ movv16qi_internal, movti_internal): Add leading '*' to name. ++ (movv2di_internal, movv2df_internal, movv8hi_internal, ++ movv16qi_internal, movv2df, movv8hi, movv16qi, movv2di, ++ pushv2di, pushv8hi, pushv16qi): Enable for SSE1. ++ (movv2si_internal, movv4hi_internal): Add SSE alternatives. ++ (movv8qi_internal, movv2sf_internal): Likewise. ++ (movtf): Simplify conditional. ++ (movv2sf, pushv2sf): Enable for MMX. ++ ++2004-12-19 Roger Sayle ++ ++ PR middle-end/19068 ++ * expr.c (expand_expr_real_1) : Ensure that target, op0 ++ and op1 are all registers (or constants) before expanding the RTL ++ comparison sequence [to avoid reg_overlap_mentioned (target, op1)]. ++ ++2004-12-18 Eric Botcazou ++ ++ PR rtl-optimization/16968 ++ * loop.c (scan_loop): Stop scanning the loop for movable ++ insns as soon as an optimization barrier is encountered. ++ ++2004-12-16 H.J. Lu ++ ++ PR other/18508 ++ * config/alpha/t-osf4 (SHLIB_LINK): Use `.backup' as the suffix ++ to back up the existing shared library. ++ * config/arm/t-netbsd (SHLIB_LINK): Likewise. ++ * config/mips/t-iris5-6 (SHLIB_LINK): Likewise. ++ * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise. ++ * config/sh/t-linux (SHLIB_LINK): Likewise. ++ * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise. ++ * config/t-slibgcc-darwin (SHLIB_LINK): Likewise. ++ * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise. ++ * config/t-slibgcc-sld (SHLIB_LINK): Likewise. ++ ++2004-12-16 Roger Sayle ++ ++ PR middle-end/18493 ++ * c-typeck.c (c_finish_case): Rechain statements if we didn't ++ encounter any case labels or a default. ++ ++2004-12-16 Eric Botcazou ++ ++ PR middle-end/18882 ++ * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment ++ when passed -2 as 'align'. ++ (put_var_into_stack): Use 'bool' as the type for the three local ++ predicates. Adjust calls to put_reg_into_stack. ++ When passed a CONCAT, instruct put_reg_into_stack to use ++ a consecutive stack slot for the second part. ++ (put_reg_into_stack): Remove 'promoted_mode' parameter, add ++ 'consecutive_p' parameter. Turn the three predicates into 'bool' ++ parameters. Retrieve the register mode from 'reg'. ++ When consecutive_p is true, instruct assign_stack_local_1 to use ++ BITS_PER_UNIT alignment. ++ (put_addressof_into_stack): Use 'bool' as the type for the two ++ local predicates. Adjust call to put_reg_into_stack. ++ ++2004-12-16 Eric Botcazou ++ ++ PR middle-end/18590 ++ * function.c (fixup_var_refs_insns_with_hash): Do not invoke ++ fixup_var_refs_insn on insns marked as deleted. ++ ++2004-12-15 Richard Henderson ++ ++ PR target/19028 ++ * config/i386/i386.md (sse compare splitter): Test for SF and DFmode ++ explicitly instead of using VALID_SSE_REG_MODE. ++ ++2004-12-15 Richard Henderson ++ ++ PR target/19005 ++ * config/i386/i386.md (swaphi_1): Swap with swaphi_2, allow with ++ optimize_size. ++ (swapqi_1): Rename from swapqi. Enable only for no partial reg ++ stall and optimize_size. ++ (swapqi_2): New. ++ (swaphi_1, swaphi_2, swapqi_1): Add athlon_decode. ++ (swapsi, swaphi_1, swaphi_2, swapqi_1, swapdi): Remove modrm override. ++ ++2004-12-15 H.J. Lu ++ ++ PR target/18153 ++ * configure.ac: Define HAVE_LD_STATIC_DYNAMIC if linker supports ++ -Bstatic/-Bdynamic option. ++ * config.in: Regenerated. ++ * configure: Likewise. ++ ++ * gcc.c (init_spec): Pass -Bstatic/-Bdynamic to ld for static ++ -lunwind if possible. ++ ++2004-12-15 Richard Henderson ++ ++ PR target/19010 ++ * config/i386/i386.c (gen_reg_or_parallel): New. ++ (function_arg): Use it. ++ (ix86_hard_regno_mode_ok): Test SSE1 and SSE2 separately, ++ MMX and 3DNOW separately. ++ (ix86_rtx_costs): Simplify FLOAT_EXTEND case. ++ * config/i386/i386.h (VALID_SSE2_REG_MODE): Move SSE2 cases from ... ++ (VALID_SSE_REG_MODE): ... here. ++ * config/i386/i386.md (movv4sf_internal): Validate one MEM. ++ (movv4si_internal): Likewise. ++ (movv2di_internal): Likewise. Enable for SSE2 only. ++ (movv2di): Enable for SSE2 only. ++ (pushv4si): Enable for SSE1. ++ ++2004-12-15 Eric Botcazou ++ ++ PR c++/17972 ++ * tree-inline.c (expand_call_inline): Set TREE_SIDE_EFFECTS ++ on the STMT_EXPR wrapping up the inlined body. ++ ++2004-12-15 Eric Botcazou ++ ++ PR preprocessor/15167 ++ * cppfiles.c (destroy_cpp_file): New function. ++ (should_stack_file): Make a new file if the ++ compared file is still stacked. ++ ++2004-12-15 Eric Botcazou ++ ++ PR other/18665 ++ * libgcc-std.ver (GCC_3.4.4): Inherit from GCC_3.4.2. ++ Export __absvti2, __addvti3, __mulvti3, __negvti2 and __subvti3. ++ * libgcc-darwin.ver (GCC_3.4.4): Inherit from GCC_3.4. ++ Export __absvti2, __addvti3, __mulvti3, __negvti2 and __subvti3. ++ * libgcc2.c (__addvsi3): Rename to __addvSI3. ++ New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. ++ (__addvdi3): Rename to __addvDI3. ++ (__subvsi3): Rename to __subvSI3. Use word type for the result. ++ New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. ++ (__subvdi3): Rename to __subvDI3. ++ (_mulvsi3): Rename to _mulvSI3. ++ New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. ++ (_mulvdi3): Rename to _mulvDI3. ++ (__negvsi2): Rename to __negvSI2. ++ New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. ++ (__negvdi2): Rename to __negvDI2. ++ (__absvsi2): Rename to __absvSI2. ++ New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. ++ (__absvdi2): Rename to __absvDI2. ++ * libgcc2.h (64-bit targets): Define COMPAT_SIMODE_TRAPPING_ARITHMETIC. ++ (__absvSI2, __addvSI3, __subvSI3, __mulvSI3, __negvSI2, __absvDI2, ++ __addvDI3, __subvDI3, __mulvDI3, __negvDI2): Define to the appropriate ++ symbol and declare. ++ (__absvsi2, __addvsi3, __subvsi3, __mulvsi3, __negvsi2): Declare if ++ COMPAT_SIMODE_TRAPPING_ARITHMETIC. ++ ++2004-12-14 Steve Ellcey ++ ++ * doc/invoke.texi (IA-64 options): Add existing options that ++ weren't already listed. ++ ++2004-12-14 Jakub Jelinek ++ ++ PR middle-end/18951 ++ * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2): Avoid ++ using arguments passed to save_expr after that call. ++ ++2004-12-13 John David Anglin ++ ++ PR middle-end/18730 ++ * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): When ++ the first/last insn is a sequence, return the first/last insn of the ++ sequence. ++ ++2004-12-13 Roger Sayle ++ ++ PR target/18002 ++ PR middle-end/18424 ++ Backport from mainline ++ ++ 2004-03-20 Richard Sandiford ++ * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h. ++ (GTFILES): Add $(srcdir)/dojump.h. ++ (gt-dojump.h): New dependency. ++ * dojump.c (and_reg, and_test, shift_test): New static variables. ++ (prefer_and_bit_test): New function. ++ (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1. ++ ++ 2004-03-21 Andrew Pinski ++ * dojump.c (prefer_and_bit_test): Fix which part of ++ the and_test is replaced. ++ ++ 2004-12-10 Roger Sayle ++ * dojump.c (do_jump): When attempting to reverse the effects of ++ fold_single_bit_test, we need to STRIP_NOPS and narrowing type ++ conversions, and handle BIT_XOR_EXPR that's used to invert the ++ sense of the single bit test. ++ ++2004-12-13 Richard Henderson ++ ++ PR target/17990 ++ * config/i386/i386.md (negsf2): Fix condition for using sse. ++ (negdf2, abssf2, absdf2): Likewise. ++ (negsf2_if, abssf2_if): Don't disable if sse enabled. ++ (movv4sf_internal splitter): Postpone til after reload. ++ (movv2di_internal splitter): Likewise. ++ ++2004-12-13 Richard Henderson ++ ++ PR middle-end/17930 ++ * toplev.c (rest_of_compilation): Fix computation of ++ preferred_incoming_stack_boundary. ++ ++2004-12-12 Richard Henderson ++ ++ PR rtl-opt/17186 ++ * reg-stack.c (move_for_stack_reg): Handle source register not ++ live with a nan. ++ ++2004-12-12 Richard Henderson ++ ++ PR target/18932 ++ * config/i386/i386.md (all splits and peepholes): Use flags_reg_operand ++ and compare_operator to propagate the input CC mode to the output. ++ * config/i386/i386.c (compare_operator): New. ++ * config/i386/i386.h (PREDICATE_CODES): Add it. ++ * config/i386/i386-protos.h: Update. ++ ++2004-12-09 Richard Henderson ++ ++ PR c/18282 ++ * attribs.c (decl_attributes): Clear DECL_ALIGN when relaying out decl. ++ * c-common.c (handle_mode_attribute): Handle enumeral types. ++ ++2004-12-09 Richard Henderson ++ ++ PR target/17025 ++ * config/i386/i386.md (testqi_1_maybe_si, andqi_2_maybe_si): New. ++ (test_qi_1, andqi_2): Do not promote to simode. ++ ++2004-12-07 David Mosberger ++ ++ PR target/18443 ++ * config/ia64/ia64.c (ia64_assemble_integer): Add support for ++ emitting unaligned pointer-sized integers. ++ ++2004-12-07 Eric Botcazou ++ ++ PR middle-end/17827 ++ * c-semantics.c (expand_unreachable_if_stmt): Invoke ++ expand_cond on the condition. ++ ++2004-12-06 Aldy Hernandez ++ ++ * config/rs6000/sysv4.h: Define RELOCATABLE_NEEDS_FIXUP to 1. ++ ++2004-12-05 Richard Henderson ++ ++ PR target/18841 ++ * config/alpha/alpha.md (UNSPECV_SETJMPR_ER): New. ++ (builtin_setjmp_receiver_er_sl_1): Use it. ++ (builtin_setjmp_receiver_er_1): Likewise. ++ (builtin_setjmp_receiver_er, exception_receiver_er): Remove. ++ (builtin_setjmp_receiver): Don't split for explicit relocs until ++ after reload. ++ (exception_receiver): Likewise. ++ ++2004-12-05 Alan Modra ++ ++ * config/rs6000/rs6000.c (rs6000_assemble_integer): Fix typo. ++ ++2004-12-04 Richard Henderson ++ ++ * emit-rtl.c, expr.c, function.c, integrate.c, optabs.c, rtl.h: ++ Revert the patches for PR rtl-opt/15289. ++ ++2004-12-03 Eric Botcazou ++ ++ * integrate.c (expand_inline_function): Accept non-CONCAT arguments ++ for CONCAT parameters and invoke read_complex_part on them. ++ ++2004-12-02 Richard Henderson ++ ++ * expr.c (write_complex_part): Use simplify_gen_subreg when the ++ submode is at least as large as a word. ++ (read_complex_part): Likewise. ++ ++2004-12-02 Roger Sayle ++ ++ PR target/9908 ++ * config/i386/i386.md (*call_value_1, *sibcall_value_1): Correct ++ Intel assembler syntax by using %A1 instead of %*%1. ++ ++2004-12-02 Richard Henderson ++ ++ PR rtl-opt/15289 ++ * emit-rtl.c (gen_complex_constant_part): Remove. ++ (gen_realpart, gen_imagpart, subreg_realpart_p): Remove. ++ * expr.c (write_complex_part, read_complex_part): New. ++ (emit_move_via_alt_mode, emit_move_via_integer, emit_move_resolve_push, ++ emit_move_complex_push, emit_move_complex, emit_move_ccmode, ++ emit_move_multi_word): Split out from ... ++ (emit_move_insn_1): ... here. ++ (expand_expr_real) : Use write_complex_part. ++ : Use read_complex_part. ++ : Likewise. ++ * function.c (assign_parms): Hard-code transformations ++ instead of using gen_realpart/gen_imagpart. ++ * integrate.c (initialize_for_inline): Likewise. ++ * optabs.c (expand_unop): Use read_complex_part/write_complex_part. ++ (expand_complex_abs): Likewise. ++ (expand_binop): Likewise. Rearrange to build a CONCAT at the end, ++ rather than creating a complex target at the beginning. ++ * rtl.h (gen_realpart, gen_imagpart, subreg_realpart_p): Remove. ++ (read_complex_part, write_complex_part): Declare. ++ ++2004-12-02 Alan Modra ++ ++ * config/rs6000/rs6000.c (rs6000_assemble_integer): Put back the ++ #ifdef RELOCATABLE_NEEDS_FIXUP. ++ ++2004-12-01 Nathanael Nerode ++ ++ PR preprocessor/17651 ++ * c-opts.c (sanitize_cpp_opts): Make flag_no_output imply ++ flag_no_line_commands. ++ * c-ppoutput.c (pp_file_change): Remove now-redundant check of ++ flag_no_output. ++ ++ PR preprocessor/17610 ++ * directives.c (do_include_common): Error out if an empty filename ++ is given for #include (or #include_next or #import). ++ PR preprocessor/17610 ++ * testsuite/gcc.dg/cpp/empty-include.c: New testcase. ++ ++2004-12-02 Alan Modra ++ ++ PR target/16952 ++ * config/rs6000/rs6000.c (rs6000_assemble_integer): Replace ++ #ifdef RELOCATABLE_NEEDS_FIXUP with if. ++ * config/rs6000/linux.h (RELOCATABLE_NEEDS_FIXUP): Define in terms ++ of target_flags_explicit. ++ * config/rs6000/linux64.h (RELOCATABLE_NEEDS_FIXUP): Ditto for biarch ++ case. Define as 0 for non-biarch. ++ ++2004-12-01 Richard Henderson ++ ++ * expr.c (optimize_bitfield_assignment_op): Split out from ... ++ (expand_assignment): ... here. Use handled_component_p to gate ++ get_inner_reference code. Simplify MEM handling. Special case ++ CONCAT destinations. ++ (get_inner_reference): Handle REAL/IMAGPART_EXPR. ++ (handled_component_p): Likewise. ++ ++2004-12-01 Alan Modra ++ ++ PR target/12817 ++ * config/rs6000/rs6000.c (rs6000_emit_prologue): Use r0 for vrsave. ++ ++2004-11-30 Jakub Jelinek ++ ++ * fold-const.c (extract_muldiv_1) : If ctype is ++ unsigned and type signed, build ABS_EXPR with signed_type (ctype) ++ and only afterwards convert to ctype. ++ ++2004-11-29 Richard Henderson ++ ++ PR target/17224 ++ * config/ia64/ia64.c (sdata_symbolic_operand): Deny offsets ++ outside the referenced object. ++ ++2004-11-28 Andreas Fischer ++ Alan Modra ++ ++ PR target/16343 ++ * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Disallow ++ functions, strings and thread-local vars. ++ ++2004-11-27 Alan Modra ++ ++ PR target/12769 ++ * config/rs6000/rs6000.c (init_cumulative_args): Set call_cookie ++ from rs6000_default_long_calls for libcalls. ++ ++ PR target/18686 ++ * config/rs6000/rs6000-c.c (rs6000_pragma_longcall): Use ++ integer_zerop and integer_onep instead of comparing against ++ canonical trees. ++ ++2004-11-25 Richard Henderson ++ ++ PR c++/6764 ++ * reload1.c (set_initial_eh_label_offset): New. ++ (set_initial_label_offsets): Use it. ++ ++2004-11-26 Alan Modra ++ ++ PR rtl-optimization/16356 ++ * config/rs6000/rs6000.md (floatdisf2_internal2): Rewrite with ++ separate output register and one less jump. Enable for powerpc64. ++ (floatdisf2): Adjust for above. ++ ++2004-11-25 Ralf Corsepius ++ ++ * config.gcc (avr-*-rtems*): Fix typo. ++ ++2004-11-24 Uros Bizjak ++ ++ PR rtl-optimization/18614 ++ * simplify-rtx.c (simplify_binary_operation): Do not ++ simplify inner elements of constant arguments of ++ VEC_CONCAT insn. ++ ++2004-11-23 Eric Botcazou ++ ++ Backport from mainline: ++ 2004-10-18 Eric Botcazou ++ Roger Sayle ++ ++ PR middle-end/17813 ++ * dojump.c (discard_pending_stack_adjust): New function. ++ (clear_pending_stack_adjust): Call it. ++ * expr.h (discard_pending_stack_adjust): Declare it. ++ * explow.c (emit_stack_save): Emit pending stack adjustments ++ before saving the stack pointer. ++ (emit_stack_restore): Discard pending stack adjustments before ++ restoring the stack pointer. ++ ++2004-11-23 Ralf Corsepius ++ ++ * config/c4x/t-rtems: New. ++ * config.gcc: Reflect having added c4x/t-rtems. ++ ++2004-11-23 Ralf Corsepius ++ ++ * config/arm/t-rtems: New. ++ * config.gcc: Reflect having added arm/t-rtems. ++ ++2004-11-23 Ralf Corsepius ++ ++ * config.gcc: Add avr-*-rtems*. ++ * config/avr/t-rtems: New. ++ * config/avr/rtems.h: New. ++ ++2004-11-22 John David Anglin ++ ++ PR rtl-optimization/14838 ++ * emit-rtl.c (get_first_nonnote_insn): Don't assume first insn is a ++ note. ++ (get_last_nonnote_insn): Don't assume last insn is a note. ++ ++2004-11-21 Roger Sayle ++ ++ * fixinc/inclhack.def (alpha_pthread_init): Fix technical problems ++ with the last check-in caused by CVS variable substitution. ++ * fixinc/fixincl.x: Likewise. ++ * fixinc/tests/base/pthread.h: Likewise. ++ ++2004-11-21 Roger Sayle ++ Bruce Korb ++ ++ Synchronize with mainline ++ * fixinc/inclhack.def (alpha_pthread_init): New fix. ++ * fixinc/fixincl.x: Regenerate. ++ * fixinc/tests/base/pthread.h: Update for new test. ++ ++2004-11-17 Ramana Radhakrishnan ++ ++ PR target/18263 ++ * config/arc/lib1funcs.asm (___umulsidi3): Change use of cmp to the ++ equivalent on the A4. ++ ++2004-11-16 Joseph S. Myers ++ ++ PR c/18498 ++ * c-decl.c (grokdeclarator): Call check_bitfield_type_and_width ++ after processing the declarator. ++ ++2004-11-14 Andrew Pinski ++ ++ PR objc/18406 ++ * objc/obj-act.c (encode_type): 96bits doubles are encoded the ++ same way as 64bit and 128bit doubles are. ++ ++2004-11-14 Hans-Peter Nilsson ++ ++ PR target/18347 ++ * config/mmix/mmix.c (mmix_function_outgoing_value): Handle ++ TImode. Sorry for other non-complex larger-than-64-bit modes. ++ * config/mmix/mmix.h (MIN_UNITS_PER_WORD): Do not define. ++ (INIT_CUMULATIVE_ARGS): Correct unused macro name FNDECL. ++ ++2004-11-13 Eric Botcazou ++ ++ * doc/md.texi (constraints) <% modifier>: Mention that it is ++ useless when the two alternatives are strictly identical. ++ ++2004-11-12 Richard Henderson ++ ++ PR 17778 ++ * config/i386/i386.h (TARGET_96_ROUND_53_LONG_DOUBLE): New. ++ * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Remove. ++ (TARGET_96_ROUND_53_LONG_DOUBLE): New. ++ * config/i386/i386-modes.def (XF): Use it. ++ ++2004-11-12 Ralf Corsepius ++ ++ * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY): ++ Remove m505/roe multilib variant. ++ ++2004-11-12 Eric Botcazou ++ ++ Backport from mainline: ++ 2004-02-25 Richard Henderson ++ ++ * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't ++ use (op0-op1) == 0 if op0 is a pointer. ++ ++2004-11-10 Joseph S. Myers ++ ++ PR c/18322 ++ * c-common.c (fname_decl): Don't use line number of decl in ++ diagnostic. ++ ++2004-11-10 Eric Botcazou ++ ++ * config/sparc/sparc.c (function_arg_union_value): New 'slotno' ++ argument. Return naked register for unions with zero length. ++ When the union is passed in the 6th slot, build a PARALLEL with ++ only one element. ++ (function_arg): Adjust call to function_arg_union_value. ++ (function_value): Likewise. ++ ++2004-11-09 H.J. Lu ++ ++ PR target/18380 ++ * config/ia64/unwind-ia64.h (_Unwind_FindTableEntry): Mark it ++ hidden. ++ ++ * unwind-dw2.c (_Unwind_FindTableEntry): Removed. ++ ++2004-11-10 Alan Modra ++ ++ PR target/16480 ++ 2004-08-26 Alan Modra ++ * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort ++ on "(mem (symbol_ref ..))" rtl. Look at LO_SUM base regs as well ++ as PLUS base regs. ++ 2004-08-01 Geoffrey Keating ++ * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort ++ if trying to *store* to a non-offsettable address. ++ 2004-07-30 Geoffrey Keating ++ * config/rs6000/rs6000.c (rs6000_split_multireg_move): Cope with ++ non-offsettable addresses being moved into multiple GPRs. ++ ++2004-11-07 Richard Sandiford ++ ++ * config/mips/t-iris6 (tp-bit.c): Fix target filename. ++ ++2004-11-07 Mark Mitchell ++ ++ * version.c (version_string): Set to 3.4.4. ++ * doc/include/gcc-common.texi (version): Likewise. ++ + 2004-11-04 Release Manager + + * GCC 3.4.3 released. +@@ -158,9 +1067,9 @@ + + 2004-10-13 Richard Henderson + +- PR debug/15860 +- * dwarf2out.c (rtl_for_decl_location): Apply big-endian correction +- for DECL_INCOMING_RTL. ++ PR debug/15860 ++ * dwarf2out.c (rtl_for_decl_location): Apply big-endian correction ++ for DECL_INCOMING_RTL. + + 2004-10-13 Richard Henderson + +@@ -702,10 +1611,10 @@ + 2004-03-20 Ziemowit Laski + 2004-03-24 Ziemowit Laski + 2004-05-11 Fariborz Jahanian +- 2004-07-23 Janis Johnson +- 2004-08-12 Janis Johnson ++ 2004-07-23 Janis Johnson ++ 2004-08-12 Janis Johnson + 2004-08-12 Ben Elliston +- 2004-08-16 Janis Johnson ++ 2004-08-16 Janis Johnson + + * c-common.c (vector_size_helper): Remove; call + reconstruct_complex_type() instead. +Index: gcc/Makefile.in +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/Makefile.in,v +retrieving revision 1.1223.2.20 +retrieving revision 1.1223.2.22 +diff -u -r1.1223.2.20 -r1.1223.2.22 +--- gcc/Makefile.in 18 Oct 2004 16:00:39 -0000 1.1223.2.20 ++++ gcc/Makefile.in 19 Jan 2005 11:18:00 -0000 1.1223.2.22 +@@ -1595,7 +1595,7 @@ + except.h reload.h $(GGC_H) langhooks.h intl.h $(TM_P_H) real.h $(TARGET_H) + dojump.o : dojump.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_H) \ + flags.h function.h $(EXPR_H) $(OPTABS_H) $(INSN_ATTR_H) insn-config.h \ +- langhooks.h ++ langhooks.h $(GGC_H) gt-dojump.h + builtins.o : builtins.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_H)\ + flags.h $(TARGET_H) function.h $(REGS_H) $(EXPR_H) $(OPTABS_H) insn-config.h \ + $(RECOG_H) output.h typeclass.h hard-reg-set.h toplev.h hard-reg-set.h \ +@@ -1744,7 +1744,8 @@ + et-forest.o : et-forest.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) et-forest.h alloc-pool.h + combine.o : combine.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) flags.h \ + function.h insn-config.h $(INSN_ATTR_H) $(REGS_H) $(EXPR_H) \ +- $(BASIC_BLOCK_H) $(RECOG_H) real.h hard-reg-set.h toplev.h $(TM_P_H) $(TREE_H) $(TARGET_H) ++ $(BASIC_BLOCK_H) $(RECOG_H) real.h hard-reg-set.h toplev.h $(TM_P_H) \ ++ $(TREE_H) $(TARGET_H) $(PARAMS_H) + regclass.o : regclass.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \ + hard-reg-set.h flags.h $(BASIC_BLOCK_H) $(REGS_H) insn-config.h $(RECOG_H) reload.h \ + real.h toplev.h function.h output.h $(GGC_H) $(TM_P_H) $(EXPR_H) $(TIMEVAR_H) +@@ -2077,6 +2078,7 @@ + $(srcdir)/c-common.h $(srcdir)/c-tree.h \ + $(srcdir)/alias.c $(srcdir)/bitmap.c $(srcdir)/cselib.c $(srcdir)/cgraph.c \ + $(srcdir)/dbxout.c $(srcdir)/dwarf2out.c $(srcdir)/dwarf2asm.c \ ++ $(srcdir)/dojump.c \ + $(srcdir)/emit-rtl.c $(srcdir)/except.c $(srcdir)/explow.c $(srcdir)/expr.c \ + $(srcdir)/fold-const.c $(srcdir)/function.c \ + $(srcdir)/gcse.c $(srcdir)/integrate.c $(srcdir)/lists.c $(srcdir)/optabs.c \ +@@ -2096,7 +2098,7 @@ + gt-function.h gt-integrate.h gt-stmt.h gt-tree.h gt-varasm.h \ + gt-emit-rtl.h gt-explow.h gt-stor-layout.h gt-regclass.h \ + gt-lists.h gt-alias.h gt-cselib.h gt-fold-const.h gt-gcse.h \ +-gt-expr.h gt-sdbout.h gt-optabs.h gt-bitmap.h \ ++gt-expr.h gt-sdbout.h gt-optabs.h gt-bitmap.h gt-dojump.h \ + gt-dwarf2out.h gt-ra-build.h gt-reg-stack.h gt-dwarf2asm.h \ + gt-dbxout.h gt-c-common.h gt-c-decl.h gt-c-parse.h \ + gt-c-pragma.h gtype-c.h gt-input.h gt-cfglayout.h \ +Index: gcc/attribs.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/attribs.c,v +retrieving revision 1.28 +retrieving revision 1.28.10.1 +diff -u -r1.28 -r1.28.10.1 +--- gcc/attribs.c 20 Aug 2003 12:24:18 -0000 1.28 ++++ gcc/attribs.c 10 Dec 2004 19:23:24 -0000 1.28.10.1 +@@ -266,6 +266,8 @@ + /* Force a recalculation of mode and size. */ + DECL_MODE (*node) = VOIDmode; + DECL_SIZE (*node) = 0; ++ if (!DECL_USER_ALIGN (*node)) ++ DECL_ALIGN (*node) = 0; + + layout_decl (*node, 0); + } +Index: gcc/builtins.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/builtins.c,v +retrieving revision 1.275.2.4 +retrieving revision 1.275.2.6 +diff -u -r1.275.2.4 -r1.275.2.6 +--- gcc/builtins.c 23 Feb 2004 12:46:55 -0000 1.275.2.4 ++++ gcc/builtins.c 3 Feb 2005 17:47:33 -0000 1.275.2.6 +@@ -1708,6 +1708,7 @@ + narg = save_expr (arg); + if (narg != arg) + { ++ arg = narg; + arglist = build_tree_list (NULL_TREE, arg); + exp = build_function_call_expr (fndecl, arglist); + } +@@ -1840,6 +1841,7 @@ + narg = save_expr (arg1); + if (narg != arg1) + { ++ arg1 = narg; + temp = build_tree_list (NULL_TREE, narg); + stable = false; + } +@@ -1849,6 +1851,7 @@ + narg = save_expr (arg0); + if (narg != arg0) + { ++ arg0 = narg; + arglist = tree_cons (NULL_TREE, narg, temp); + stable = false; + } +@@ -6581,7 +6584,7 @@ + return build_function_call_expr (expfn, arglist); + } + +- /* Optimize sqrt(pow(x,y)) = pow(x,y*0.5). */ ++ /* Optimize sqrt(pow(x,y)) = pow(|x|,y*0.5). */ + if (flag_unsafe_math_optimizations + && (fcode == BUILT_IN_POW + || fcode == BUILT_IN_POWF +@@ -6590,8 +6593,11 @@ + tree powfn = TREE_OPERAND (TREE_OPERAND (arg, 0), 0); + tree arg0 = TREE_VALUE (TREE_OPERAND (arg, 1)); + tree arg1 = TREE_VALUE (TREE_CHAIN (TREE_OPERAND (arg, 1))); +- tree narg1 = fold (build (MULT_EXPR, type, arg1, +- build_real (type, dconsthalf))); ++ tree narg1; ++ if (!tree_expr_nonnegative_p (arg0)) ++ arg0 = build1 (ABS_EXPR, type, arg0); ++ narg1 = fold (build (MULT_EXPR, type, arg1, ++ build_real (type, dconsthalf))); + arglist = tree_cons (NULL_TREE, arg0, + build_tree_list (NULL_TREE, narg1)); + return build_function_call_expr (powfn, arglist); +Index: gcc/c-common.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/c-common.c,v +retrieving revision 1.476.4.9 +retrieving revision 1.476.4.12 +diff -u -r1.476.4.9 -r1.476.4.12 +--- gcc/c-common.c 13 Oct 2004 23:29:04 -0000 1.476.4.9 ++++ gcc/c-common.c 7 Jan 2005 19:58:51 -0000 1.476.4.12 +@@ -1137,7 +1137,7 @@ + input_line = saved_lineno; + } + if (!ix && !current_function_decl) +- pedwarn ("%J'%D' is not defined outside of function scope", decl, decl); ++ pedwarn ("'%D' is not defined outside of function scope", decl); + + return decl; + } +@@ -4678,6 +4678,33 @@ + mode); + *node = ptr_type; + } ++ else if (TREE_CODE (type) == ENUMERAL_TYPE) ++ { ++ /* For enumeral types, copy the precision from the integer ++ type returned above. If not an INTEGER_TYPE, we can't use ++ this mode for this type. */ ++ if (TREE_CODE (typefm) != INTEGER_TYPE) ++ { ++ error ("cannot use mode %qs for enumeral types", p); ++ return NULL_TREE; ++ } ++ ++ if (!(flags & (int) ATTR_FLAG_TYPE_IN_PLACE)) ++ type = build_type_copy (type); ++ ++ /* We cannot use layout_type here, because that will attempt ++ to re-layout all variants, corrupting our original. */ ++ TYPE_PRECISION (type) = TYPE_PRECISION (typefm); ++ TYPE_MIN_VALUE (type) = TYPE_MIN_VALUE (typefm); ++ TYPE_MAX_VALUE (type) = TYPE_MAX_VALUE (typefm); ++ TYPE_SIZE (type) = TYPE_SIZE (typefm); ++ TYPE_SIZE_UNIT (type) = TYPE_SIZE_UNIT (typefm); ++ TYPE_MODE (type) = TYPE_MODE (typefm); ++ if (!TYPE_USER_ALIGN (type)) ++ TYPE_ALIGN (type) = TYPE_ALIGN (typefm); ++ ++ *node = type; ++ } + else if (VECTOR_MODE_P (mode) + ? TREE_CODE (type) != TREE_CODE (TREE_TYPE (typefm)) + : TREE_CODE (type) != TREE_CODE (typefm)) +Index: gcc/c-decl.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/c-decl.c,v +retrieving revision 1.470.4.16 +retrieving revision 1.470.4.18 +diff -u -r1.470.4.16 -r1.470.4.18 +--- gcc/c-decl.c 17 Aug 2004 16:24:57 -0000 1.470.4.16 ++++ gcc/c-decl.c 23 Dec 2004 23:50:46 -0000 1.470.4.18 +@@ -3620,10 +3620,6 @@ + } + } + +- /* Check the type and width of a bit-field. */ +- if (bitfield) +- check_bitfield_type_and_width (&type, width, orig_name); +- + /* Figure out the type qualifiers for the declaration. There are + two ways a declaration can become qualified. One is something + like `const int i' where the `const' is explicit. Another is +@@ -4133,6 +4129,10 @@ + + /* Now TYPE has the actual type. */ + ++ /* Check the type and width of a bit-field. */ ++ if (bitfield) ++ check_bitfield_type_and_width (&type, width, orig_name); ++ + /* Did array size calculations overflow? */ + + if (TREE_CODE (type) == ARRAY_TYPE +@@ -5284,9 +5284,19 @@ + + TYPE_MIN_VALUE (enumtype) = minnode; + TYPE_MAX_VALUE (enumtype) = maxnode; +- TYPE_PRECISION (enumtype) = precision; + TREE_UNSIGNED (enumtype) = unsign; + TYPE_SIZE (enumtype) = 0; ++ ++ /* If the precision of the type was specific with an attribute and it ++ was too small, give an error. Otherwise, use it. */ ++ if (TYPE_PRECISION (enumtype)) ++ { ++ if (precision > TYPE_PRECISION (enumtype)) ++ error ("specified mode too small for enumeral values"); ++ } ++ else ++ TYPE_PRECISION (enumtype) = precision; ++ + layout_type (enumtype); + + if (values != error_mark_node) +Index: gcc/c-opts.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/c-opts.c,v +retrieving revision 1.96.4.8 +retrieving revision 1.96.4.9 +diff -u -r1.96.4.8 -r1.96.4.9 +--- gcc/c-opts.c 14 Oct 2004 21:43:34 -0000 1.96.4.8 ++++ gcc/c-opts.c 2 Dec 2004 02:32:17 -0000 1.96.4.9 +@@ -1358,11 +1358,13 @@ + + /* Disable -dD, -dN and -dI if normal output is suppressed. Allow + -dM since at least glibc relies on -M -dM to work. */ ++ /* Also, flag_no_output implies flag_no_line_commands, always. */ + if (flag_no_output) + { + if (flag_dump_macros != 'M') + flag_dump_macros = 0; + flag_dump_includes = 0; ++ flag_no_line_commands = 1; + } + + cpp_opts->unsigned_char = !flag_signed_char; +Index: gcc/c-ppoutput.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/c-ppoutput.c,v +retrieving revision 1.11.12.3 +retrieving revision 1.11.12.4 +diff -u -r1.11.12.3 -r1.11.12.4 +--- gcc/c-ppoutput.c 9 Oct 2004 00:25:04 -0000 1.11.12.3 ++++ gcc/c-ppoutput.c 2 Dec 2004 02:32:17 -0000 1.11.12.4 +@@ -359,7 +359,7 @@ + { + const char *flags = ""; + +- if (flag_no_line_commands || flag_no_output) ++ if (flag_no_line_commands) + return; + + if (map != NULL) +Index: gcc/c-semantics.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/c-semantics.c,v +retrieving revision 1.74.4.3 +retrieving revision 1.74.4.4 +diff -u -r1.74.4.3 -r1.74.4.4 +--- gcc/c-semantics.c 24 Aug 2004 04:02:34 -0000 1.74.4.3 ++++ gcc/c-semantics.c 7 Dec 2004 07:53:54 -0000 1.74.4.4 +@@ -937,6 +937,9 @@ + return true; + } + ++ /* Account for declarations as conditions. */ ++ expand_cond (IF_COND (t)); ++ + if (THEN_CLAUSE (t) && ELSE_CLAUSE (t)) + { + n = expand_unreachable_stmt (THEN_CLAUSE (t), 0); +Index: gcc/c-typeck.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/c-typeck.c,v +retrieving revision 1.272.2.10 +retrieving revision 1.272.2.13 +diff -u -r1.272.2.10 -r1.272.2.13 +--- gcc/c-typeck.c 23 Sep 2004 15:05:13 -0000 1.272.2.10 ++++ gcc/c-typeck.c 19 Jan 2005 09:44:35 -0000 1.272.2.13 +@@ -647,7 +647,7 @@ + while (t2 && TREE_CODE (t2) != TRANSLATION_UNIT_DECL) + switch (TREE_CODE_CLASS (TREE_CODE (t2))) + { +- case 'd': t2 = DECL_CONTEXT (t1); break; ++ case 'd': t2 = DECL_CONTEXT (t2); break; + case 't': t2 = TYPE_CONTEXT (t2); break; + case 'b': t2 = BLOCK_SUPERCONTEXT (t2); break; + default: abort (); +@@ -4097,18 +4097,32 @@ + /* Build a VECTOR_CST from a *constant* vector constructor. If the + vector constructor is not constant (e.g. {1,2,3,foo()}) then punt + below and handle as a constructor. */ +- if (code == VECTOR_TYPE +- && comptypes (TREE_TYPE (inside_init), type, COMPARE_STRICT) +- && TREE_CONSTANT (inside_init)) +- { +- if (TREE_CODE (inside_init) == VECTOR_CST +- && comptypes (TYPE_MAIN_VARIANT (TREE_TYPE (inside_init)), +- TYPE_MAIN_VARIANT (type), +- COMPARE_STRICT)) +- return inside_init; +- else +- return build_vector (type, CONSTRUCTOR_ELTS (inside_init)); +- } ++ if (code == VECTOR_TYPE ++ && comptypes (TREE_TYPE (inside_init), type, COMPARE_STRICT) ++ && TREE_CONSTANT (inside_init)) ++ { ++ if (TREE_CODE (inside_init) == VECTOR_CST ++ && comptypes (TYPE_MAIN_VARIANT (TREE_TYPE (inside_init)), ++ TYPE_MAIN_VARIANT (type), ++ COMPARE_STRICT)) ++ return inside_init; ++ ++ if (TREE_CODE (inside_init) == CONSTRUCTOR) ++ { ++ tree link; ++ ++ /* Iterate through elements and check if all constructor ++ elements are *_CSTs. */ ++ for (link = CONSTRUCTOR_ELTS (inside_init); ++ link; ++ link = TREE_CHAIN (link)) ++ if (TREE_CODE_CLASS (TREE_CODE (TREE_VALUE (link))) != 'c') ++ break; ++ ++ if (link == NULL) ++ return build_vector (type, CONSTRUCTOR_ELTS (inside_init)); ++ } ++ } + + /* Any type can be initialized + from an expression of the same type, optionally with braces. */ +@@ -6551,6 +6565,14 @@ + { + struct c_switch *cs = switch_stack; + ++ /* If we've not seen any case labels (or a default), we may still ++ need to chain any statements that were seen as the SWITCH_BODY. */ ++ if (SWITCH_BODY (cs->switch_stmt) == NULL) ++ { ++ SWITCH_BODY (cs->switch_stmt) = TREE_CHAIN (cs->switch_stmt); ++ TREE_CHAIN (cs->switch_stmt) = NULL_TREE; ++ } ++ + /* Rechain the next statements to the SWITCH_STMT. */ + last_tree = cs->switch_stmt; + +Index: gcc/calls.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/calls.c,v +retrieving revision 1.315.2.6 +retrieving revision 1.315.2.7 +diff -u -r1.315.2.6 -r1.315.2.7 +--- gcc/calls.c 24 Jun 2004 07:26:50 -0000 1.315.2.6 ++++ gcc/calls.c 23 Dec 2004 21:38:53 -0000 1.315.2.7 +@@ -1719,8 +1719,8 @@ + use_group_regs (call_fusage, reg); + else if (nregs == -1) + use_reg (call_fusage, reg); +- else +- use_regs (call_fusage, REGNO (reg), nregs == 0 ? 1 : nregs); ++ else if (nregs > 0) ++ use_regs (call_fusage, REGNO (reg), nregs); + } + } + } +Index: gcc/collect2.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/collect2.c,v +retrieving revision 1.159.2.2 +retrieving revision 1.159.2.3 +diff -u -r1.159.2.2 -r1.159.2.3 +--- gcc/collect2.c 9 Mar 2004 15:49:56 -0000 1.159.2.2 ++++ gcc/collect2.c 10 Jan 2005 15:25:23 -0000 1.159.2.3 +@@ -189,6 +189,7 @@ + #ifdef COLLECT_EXPORT_LIST + static int export_flag; /* true if -bE */ + static int aix64_flag; /* true if -b64 */ ++static int aixrtl_flag; /* true if -brtl */ + #endif + + int debug; /* true if -debug */ +@@ -246,7 +247,6 @@ + static struct path_prefix libpath_lib_dirs; /* directories in LIBPATH */ + static struct path_prefix *libpaths[3] = {&cmdline_lib_dirs, + &libpath_lib_dirs, NULL}; +-static const char *const libexts[3] = {"a", "so", NULL}; /* possible library extensions */ + #endif + + static void handler (int); +@@ -1080,6 +1080,8 @@ + export_flag = 1; + else if (arg[2] == '6' && arg[3] == '4') + aix64_flag = 1; ++ else if (arg[2] == 'r' && arg[3] == 't' && arg[4] == 'l') ++ aixrtl_flag = 1; + break; + #endif + +@@ -2823,6 +2825,8 @@ + { + char *lib_buf; + int i, j, l = 0; ++ /* Library extensions for AIX dynamic linking. */ ++ const char * const libexts[2] = {"a", "so"}; + + for (i = 0; libpaths[i]; i++) + if (libpaths[i]->max_len > l) +@@ -2841,14 +2845,15 @@ + const char *p = ""; + if (list->prefix[strlen(list->prefix)-1] != '/') + p = "/"; +- for (j = 0; libexts[j]; j++) ++ for (j = 0; j < 2; j++) + { + sprintf (lib_buf, "%s%slib%s.%s", +- list->prefix, p, name, libexts[j]); +-if (debug) fprintf (stderr, "searching for: %s\n", lib_buf); ++ list->prefix, p, name, ++ libexts[(j + aixrtl_flag) % 2]); ++ if (debug) fprintf (stderr, "searching for: %s\n", lib_buf); + if (file_exists (lib_buf)) + { +-if (debug) fprintf (stderr, "found: %s\n", lib_buf); ++ if (debug) fprintf (stderr, "found: %s\n", lib_buf); + return (lib_buf); + } + } +Index: gcc/combine.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/combine.c,v +retrieving revision 1.400.4.11 +retrieving revision 1.400.4.13 +diff -u -r1.400.4.11 -r1.400.4.13 +--- gcc/combine.c 12 Oct 2004 23:35:29 -0000 1.400.4.11 ++++ gcc/combine.c 19 Jan 2005 11:17:59 -0000 1.400.4.13 +@@ -90,6 +90,7 @@ + #include "real.h" + #include "toplev.h" + #include "target.h" ++#include "params.h" + + #ifndef SHIFT_COUNT_TRUNCATED + #define SHIFT_COUNT_TRUNCATED 0 +@@ -10688,34 +10689,61 @@ + break; + + case SUBREG: +- /* Check for the case where we are comparing A - C1 with C2, +- both constants are smaller than 1/2 the maximum positive +- value in MODE, and the comparison is equality or unsigned. +- In that case, if A is either zero-extended to MODE or has +- sufficient sign bits so that the high-order bit in MODE +- is a copy of the sign in the inner mode, we can prove that it is +- safe to do the operation in the wider mode. This simplifies +- many range checks. */ ++ /* Check for the case where we are comparing A - C1 with C2, that is ++ ++ (subreg:MODE (plus (A) (-C1))) op (C2) ++ ++ with C1 a constant, and try to lift the SUBREG, i.e. to do the ++ comparison in the wider mode. One of the following two conditions ++ must be true in order for this to be valid: ++ ++ 1. The mode extension results in the same bit pattern being added ++ on both sides and the comparison is equality or unsigned. As ++ C2 has been truncated to fit in MODE, the pattern can only be ++ all 0s or all 1s. ++ ++ 2. The mode extension results in the sign bit being copied on ++ each side. ++ ++ The difficulty here is that we have predicates for A but not for ++ (A - C1) so we need to check that C1 is within proper bounds so ++ as to perturbate A as little as possible. */ + + if (mode_width <= HOST_BITS_PER_WIDE_INT + && subreg_lowpart_p (op0) ++ && GET_MODE_BITSIZE (GET_MODE (SUBREG_REG (op0))) > mode_width + && GET_CODE (SUBREG_REG (op0)) == PLUS +- && GET_CODE (XEXP (SUBREG_REG (op0), 1)) == CONST_INT +- && INTVAL (XEXP (SUBREG_REG (op0), 1)) < 0 +- && (-INTVAL (XEXP (SUBREG_REG (op0), 1)) +- < (HOST_WIDE_INT) (GET_MODE_MASK (mode) / 2)) +- && (unsigned HOST_WIDE_INT) const_op < GET_MODE_MASK (mode) / 2 +- && (0 == (nonzero_bits (XEXP (SUBREG_REG (op0), 0), +- GET_MODE (SUBREG_REG (op0))) +- & ~GET_MODE_MASK (mode)) +- || (num_sign_bit_copies (XEXP (SUBREG_REG (op0), 0), +- GET_MODE (SUBREG_REG (op0))) +- > (unsigned int) +- (GET_MODE_BITSIZE (GET_MODE (SUBREG_REG (op0))) +- - GET_MODE_BITSIZE (mode))))) ++ && GET_CODE (XEXP (SUBREG_REG (op0), 1)) == CONST_INT) + { +- op0 = SUBREG_REG (op0); +- continue; ++ enum machine_mode inner_mode = GET_MODE (SUBREG_REG (op0)); ++ rtx a = XEXP (SUBREG_REG (op0), 0); ++ HOST_WIDE_INT c1 = -INTVAL (XEXP (SUBREG_REG (op0), 1)); ++ ++ if ((c1 > 0 ++ && (unsigned HOST_WIDE_INT) c1 ++ < (unsigned HOST_WIDE_INT) 1 << (mode_width - 1) ++ && (equality_comparison_p || unsigned_comparison_p) ++ /* (A - C1) zero-extends if it is positive and sign-extends ++ if it is negative, C2 both zero- and sign-extends. */ ++ && ((0 == (nonzero_bits (a, inner_mode) ++ & ~GET_MODE_MASK (mode)) ++ && const_op >= 0) ++ /* (A - C1) sign-extends if it is positive and 1-extends ++ if it is negative, C2 both sign- and 1-extends. */ ++ || (num_sign_bit_copies (a, inner_mode) ++ > (unsigned int) (GET_MODE_BITSIZE (inner_mode) ++ - mode_width) ++ && const_op < 0))) ++ || ((unsigned HOST_WIDE_INT) c1 ++ < (unsigned HOST_WIDE_INT) 1 << (mode_width - 2) ++ /* (A - C1) always sign-extends, like C2. */ ++ && num_sign_bit_copies (a, inner_mode) ++ > (unsigned int) (GET_MODE_BITSIZE (inner_mode) ++ - mode_width - 1))) ++ { ++ op0 = SUBREG_REG (op0); ++ continue; ++ } + } + + /* If the inner mode is narrower and we are extracting the low part, +@@ -11353,6 +11381,47 @@ + return gen_binary (reversed_code, mode, op0, op1); + } + ++/* Utility function for record_value_for_reg. Count number of ++ rtxs in X. */ ++static int ++count_rtxs (rtx x) ++{ ++ enum rtx_code code = GET_CODE (x); ++ const char *fmt; ++ int i, ret = 1; ++ ++ if (GET_RTX_CLASS (code) == '2' ++ || GET_RTX_CLASS (code) == 'c') ++ { ++ rtx x0 = XEXP (x, 0); ++ rtx x1 = XEXP (x, 1); ++ ++ if (x0 == x1) ++ return 1 + 2 * count_rtxs (x0); ++ ++ if ((GET_RTX_CLASS (GET_CODE (x1)) == '2' ++ || GET_RTX_CLASS (GET_CODE (x1)) == 'c') ++ && (x0 == XEXP (x1, 0) || x0 == XEXP (x1, 1))) ++ return 2 + 2 * count_rtxs (x0) ++ + count_rtxs (x == XEXP (x1, 0) ++ ? XEXP (x1, 1) : XEXP (x1, 0)); ++ ++ if ((GET_RTX_CLASS (GET_CODE (x0)) == '2' ++ || GET_RTX_CLASS (GET_CODE (x0)) == 'c') ++ && (x1 == XEXP (x0, 0) || x1 == XEXP (x0, 1))) ++ return 2 + 2 * count_rtxs (x1) ++ + count_rtxs (x == XEXP (x0, 0) ++ ? XEXP (x0, 1) : XEXP (x0, 0)); ++ } ++ ++ fmt = GET_RTX_FORMAT (code); ++ for (i = GET_RTX_LENGTH (code) - 1; i >= 0; i--) ++ if (fmt[i] == 'e') ++ ret += count_rtxs (XEXP (x, i)); ++ ++ return ret; ++} ++ + /* Utility function for following routine. Called when X is part of a value + being stored into reg_last_set_value. Sets reg_last_set_table_tick + for each register mentioned. Similar to mention_regs in cse.c */ +@@ -11459,6 +11528,13 @@ + && GET_CODE (XEXP (tem, 0)) == CLOBBER + && GET_CODE (XEXP (tem, 1)) == CLOBBER) + tem = XEXP (tem, 0); ++ else if (count_occurrences (value, reg, 1) >= 2) ++ { ++ /* If there are two or more occurrences of REG in VALUE, ++ prevent the value from growing too much. */ ++ if (count_rtxs (tem) > MAX_LAST_VALUE_RTL) ++ tem = gen_rtx_CLOBBER (GET_MODE (tem), const0_rtx); ++ } + + value = replace_rtx (copy_rtx (value), reg, tem); + } +Index: gcc/config.gcc +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config.gcc,v +retrieving revision 1.420.2.15 +retrieving revision 1.420.2.19 +diff -u -r1.420.2.15 -r1.420.2.19 +--- gcc/config.gcc 8 Sep 2004 15:16:10 -0000 1.420.2.15 ++++ gcc/config.gcc 25 Nov 2004 04:52:15 -0000 1.420.2.19 +@@ -680,7 +680,7 @@ + ;; + arm*-*-rtems*) + tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/rtems-elf.h rtems.h" +- tmake_file="arm/t-arm-elf t-rtems" ++ tmake_file="arm/t-arm-elf t-rtems arm/t-rtems" + ;; + arm*-*-elf | ep9312-*-elf) + tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h" +@@ -700,12 +700,16 @@ + tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h kaos.h arm/kaos-arm.h" + tmake_file=arm/t-arm-elf + ;; ++avr-*-rtems*) ++ tm_file="avr/avr.h dbxelf.h avr/rtems.h rtems.h" ++ tmake_file="avr/t-avr t-rtems avr/t-rtems" ++ ;; + avr-*-*) + tm_file="avr/avr.h dbxelf.h" + use_fixproto=yes + ;; + c4x-*-rtems* | tic4x-*-rtems*) +- tmake_file="c4x/t-c4x t-rtems" ++ tmake_file="c4x/t-c4x t-rtems c4x/t-rtems" + tm_file="c4x/c4x.h c4x/rtems.h rtems.h" + c_target_objs="c4x-c.o" + cxx_target_objs="c4x-c.o" +Index: gcc/config.in +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config.in,v +retrieving revision 1.181.4.4 +retrieving revision 1.181.4.6 +diff -u -r1.181.4.4 -r1.181.4.6 +--- gcc/config.in 8 Sep 2004 15:16:11 -0000 1.181.4.4 ++++ gcc/config.in 28 Dec 2004 04:51:31 -0000 1.181.4.6 +@@ -262,6 +262,9 @@ + skip when using the GAS .p2align command. */ + #undef HAVE_GAS_MAX_SKIP_P2ALIGN + ++/* Define if your assembler supports .nsubspa comdat option. */ ++#undef HAVE_GAS_NSUBSPA_COMDAT ++ + /* Define 0/1 if your assembler supports marking sections with SHF_MERGE flag. + */ + #undef HAVE_GAS_SHF_MERGE +@@ -319,6 +322,9 @@ + a read-write section. */ + #undef HAVE_LD_RO_RW_SECTION_MIXING + ++/* Define if your linker supports -Bstatic/-Bdynamic option. */ ++#undef HAVE_LD_STATIC_DYNAMIC ++ + /* Define to 1 if you have the header file. */ + #undef HAVE_LIMITS_H + +@@ -546,9 +552,11 @@ + /* Define to `int' if doesn't define. */ + #undef gid_t + +-/* Define as `__inline' if that's what the C compiler calls it, or to nothing +- if it is not supported. */ ++/* Define to `__inline__' or `__inline' if that's what the C compiler ++ calls it, or to nothing if 'inline' is not supported under any name. */ ++#ifndef __cplusplus + #undef inline ++#endif + + /* Define to `int' if does not define. */ + #undef pid_t +Index: gcc/configure +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/configure,v +retrieving revision 1.794.2.19 +retrieving revision 1.794.2.22 +diff -u -r1.794.2.19 -r1.794.2.22 +--- gcc/configure 24 Sep 2004 00:43:50 -0000 1.794.2.19 ++++ gcc/configure 8 Jan 2005 01:20:19 -0000 1.794.2.22 +@@ -10397,6 +10397,44 @@ + + fi + ++echo "$as_me:$LINENO: checking assembler for .nsubspa comdat" >&5 ++echo $ECHO_N "checking assembler for .nsubspa comdat... $ECHO_C" >&6 ++if test "${gcc_cv_as_nsubspa_comdat+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ gcc_cv_as_nsubspa_comdat=no ++ if test $in_tree_gas = yes; then ++ if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 15 \) \* 1000 + 91` ++ then gcc_cv_as_nsubspa_comdat=yes ++fi ++ elif test x$gcc_cv_as != x; then ++ echo ' .SPACE $TEXT$ ++ .NSUBSPA $CODE$,COMDAT' > conftest.s ++ if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } ++ then ++ gcc_cv_as_nsubspa_comdat=yes ++ else ++ echo "configure: failed program was" >&5 ++ cat conftest.s >&5 ++ fi ++ rm -f conftest.o conftest.s ++ fi ++fi ++echo "$as_me:$LINENO: result: $gcc_cv_as_nsubspa_comdat" >&5 ++echo "${ECHO_T}$gcc_cv_as_nsubspa_comdat" >&6 ++if test $gcc_cv_as_nsubspa_comdat = yes; then ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_GAS_NSUBSPA_COMDAT 1 ++_ACEOF ++ ++fi ++ + # .hidden needs to be supported in both the assembler and the linker, + # because GNU LD versions before 2.12.1 have buggy support for STV_HIDDEN. + # This is irritatingly difficult to feature test for; we have to check the +@@ -11277,7 +11315,7 @@ + if test x$gcc_cv_objdump != x \ + && $gcc_cv_objdump -s -j .text conftest.o 2> /dev/null \ + | grep ' 82106000 82106000' > /dev/null 2>&1; then +- gcc_cv_as_offsetable_lo10=yes ++ gcc_cv_as_sparc_offsetable_lo10=yes + fi + else + echo "configure: failed program was" >&5 +@@ -11818,6 +11856,30 @@ + echo "$as_me:$LINENO: result: $gcc_cv_ld_pie" >&5 + echo "${ECHO_T}$gcc_cv_ld_pie" >&6 + ++echo "$as_me:$LINENO: checking linker -Bstatic/-Bdynamic option" >&5 ++echo $ECHO_N "checking linker -Bstatic/-Bdynamic option... $ECHO_C" >&6 ++gcc_cv_ld_static_dynamic=no ++if test $in_tree_ld = yes ; then ++ if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 10; then ++ gcc_cv_ld_static_dynamic=yes ++ fi ++elif test x$gcc_cv_ld != x; then ++ # Check if linker supports -Bstatic/-Bdynamic option ++ if $gcc_cv_ld --help 2>/dev/null | grep -- -Bstatic > /dev/null \ ++ && $gcc_cv_ld --help 2>/dev/null | grep -- -Bdynamic > /dev/null; then ++ gcc_cv_ld_static_dynamic=yes ++ fi ++fi ++if test x"$gcc_cv_ld_static_dynamic" = xyes; then ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_LD_STATIC_DYNAMIC 1 ++_ACEOF ++ ++fi ++echo "$as_me:$LINENO: result: $gcc_cv_ld_static_dynamic" >&5 ++echo "${ECHO_T}$gcc_cv_ld_static_dynamic" >&6 ++ + case "$target" in + *-*-linux*) + echo "$as_me:$LINENO: checking linker --as-needed support" >&5 +Index: gcc/configure.ac +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/configure.ac,v +retrieving revision 2.6.2.17 +retrieving revision 2.6.2.20 +diff -u -r2.6.2.17 -r2.6.2.20 +--- gcc/configure.ac 24 Sep 2004 00:43:53 -0000 2.6.2.17 ++++ gcc/configure.ac 8 Jan 2005 01:20:19 -0000 2.6.2.20 +@@ -1855,6 +1855,12 @@ + [ .weak foobar],, + [AC_DEFINE(HAVE_GAS_WEAK, 1, [Define if your assembler supports .weak.])]) + ++gcc_GAS_CHECK_FEATURE([.nsubspa comdat], gcc_cv_as_nsubspa_comdat, ++ [2,15,91],, ++ [ .SPACE $TEXT$ ++ .NSUBSPA $CODE$,COMDAT],, ++[AC_DEFINE(HAVE_GAS_NSUBSPA_COMDAT, 1, [Define if your assembler supports .nsubspa comdat option.])]) ++ + # .hidden needs to be supported in both the assembler and the linker, + # because GNU LD versions before 2.12.1 have buggy support for STV_HIDDEN. + # This is irritatingly difficult to feature test for; we have to check the +@@ -2397,7 +2403,7 @@ + [if test x$gcc_cv_objdump != x \ + && $gcc_cv_objdump -s -j .text conftest.o 2> /dev/null \ + | grep ' 82106000 82106000' > /dev/null 2>&1; then +- gcc_cv_as_offsetable_lo10=yes ++ gcc_cv_as_sparc_offsetable_lo10=yes + fi], + [AC_DEFINE(HAVE_AS_OFFSETABLE_LO10, 1, + [Define if your assembler supports offsetable %lo().])]) +@@ -2617,6 +2623,25 @@ + fi + AC_MSG_RESULT($gcc_cv_ld_pie) + ++AC_MSG_CHECKING(linker -Bstatic/-Bdynamic option) ++gcc_cv_ld_static_dynamic=no ++if test $in_tree_ld = yes ; then ++ if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 10; then ++ gcc_cv_ld_static_dynamic=yes ++ fi ++elif test x$gcc_cv_ld != x; then ++ # Check if linker supports -Bstatic/-Bdynamic option ++ if $gcc_cv_ld --help 2>/dev/null | grep -- -Bstatic > /dev/null \ ++ && $gcc_cv_ld --help 2>/dev/null | grep -- -Bdynamic > /dev/null; then ++ gcc_cv_ld_static_dynamic=yes ++ fi ++fi ++if test x"$gcc_cv_ld_static_dynamic" = xyes; then ++ AC_DEFINE(HAVE_LD_STATIC_DYNAMIC, 1, ++[Define if your linker supports -Bstatic/-Bdynamic option.]) ++fi ++AC_MSG_RESULT($gcc_cv_ld_static_dynamic) ++ + case "$target" in + *-*-linux*) + AC_CACHE_CHECK(linker --as-needed support, +Index: gcc/cppfiles.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/Attic/cppfiles.c,v +retrieving revision 1.198.4.3 +retrieving revision 1.198.4.4 +diff -u -r1.198.4.3 -r1.198.4.4 +--- gcc/cppfiles.c 16 Jul 2004 17:16:43 -0000 1.198.4.3 ++++ gcc/cppfiles.c 15 Dec 2004 13:41:17 -0000 1.198.4.4 +@@ -168,6 +168,7 @@ + static struct file_hash_entry *search_cache (struct file_hash_entry *head, + const cpp_dir *start_dir); + static _cpp_file *make_cpp_file (cpp_reader *, cpp_dir *, const char *fname); ++static void destroy_cpp_file (_cpp_file *); + static cpp_dir *make_cpp_dir (cpp_reader *, const char *dir_name, int sysp); + static void allocate_file_hash_entries (cpp_reader *pfile); + static struct file_hash_entry *new_file_hash_entry (cpp_reader *pfile); +@@ -598,12 +599,38 @@ + if ((import || f->once_only) + && f->err_no == 0 + && f->st.st_mtime == file->st.st_mtime +- && f->st.st_size == file->st.st_size +- && read_file (pfile, f) +- /* Size might have changed in read_file(). */ +- && f->st.st_size == file->st.st_size +- && !memcmp (f->buffer, file->buffer, f->st.st_size)) +- break; ++ && f->st.st_size == file->st.st_size) ++ { ++ _cpp_file *ref_file; ++ bool same_file_p = false; ++ ++ if (f->buffer && !f->buffer_valid) ++ { ++ /* We already have a buffer but it is not valid, because ++ the file is still stacked. Make a new one. */ ++ ref_file = make_cpp_file (pfile, f->dir, f->name); ++ ref_file->path = f->path; ++ } ++ else ++ /* The file is not stacked anymore. We can reuse it. */ ++ ref_file = f; ++ ++ same_file_p = read_file (pfile, ref_file) ++ /* Size might have changed in read_file(). */ ++ && ref_file->st.st_size == file->st.st_size ++ && !memcmp (ref_file->buffer, ++ file->buffer, ++ file->st.st_size); ++ ++ if (f->buffer && !f->buffer_valid) ++ { ++ ref_file->path = 0; ++ destroy_cpp_file (ref_file); ++ } ++ ++ if (same_file_p) ++ break; ++ } + } + + return f == NULL; +@@ -781,6 +808,16 @@ + return file; + } + ++/* Release a _cpp_file structure. */ ++static void ++destroy_cpp_file (_cpp_file *file) ++{ ++ if (file->buffer) ++ free ((void *) file->buffer); ++ free ((void *) file->name); ++ free (file); ++} ++ + /* A hash of directory names. The directory names are the path names + of files which contain a #include "", the included file name is + appended to this directories. +Index: gcc/cpplib.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/Attic/cpplib.c,v +retrieving revision 1.355.4.2 +retrieving revision 1.355.4.3 +diff -u -r1.355.4.2 -r1.355.4.3 +--- gcc/cpplib.c 24 Mar 2004 03:19:01 -0000 1.355.4.2 ++++ gcc/cpplib.c 2 Dec 2004 02:32:17 -0000 1.355.4.3 +@@ -680,6 +680,14 @@ + if (!fname) + return; + ++ if (!*fname) ++ { ++ cpp_error (pfile, CPP_DL_ERROR, "empty filename in #%s", ++ pfile->directive->name); ++ free ((void *) fname); ++ return; ++ } ++ + /* Prevent #include recursion. */ + if (pfile->line_maps.depth >= CPP_STACK_MAX) + cpp_error (pfile, CPP_DL_ERROR, "#include nested too deeply"); +Index: gcc/dbxout.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/dbxout.c,v +retrieving revision 1.172.2.2 +retrieving revision 1.172.2.3 +diff -u -r1.172.2.2 -r1.172.2.3 +--- gcc/dbxout.c 4 Aug 2004 07:32:19 -0000 1.172.2.2 ++++ gcc/dbxout.c 27 Jan 2005 02:01:54 -0000 1.172.2.3 +@@ -2447,6 +2447,37 @@ + + letter = decl_function_context (decl) ? 'V' : 'S'; + ++ /* Some ports can transform a symbol ref into a label ref, ++ because the symbol ref is too far away and has to be ++ dumped into a constant pool. Alternatively, the symbol ++ in the constant pool might be referenced by a different ++ symbol. */ ++ if (GET_CODE (current_sym_addr) == SYMBOL_REF ++ && CONSTANT_POOL_ADDRESS_P (current_sym_addr)) ++ { ++ bool marked; ++ rtx tmp = get_pool_constant_mark (current_sym_addr, &marked); ++ ++ if (GET_CODE (tmp) == SYMBOL_REF) ++ { ++ current_sym_addr = tmp; ++ if (CONSTANT_POOL_ADDRESS_P (current_sym_addr)) ++ get_pool_constant_mark (current_sym_addr, &marked); ++ else ++ marked = true; ++ } ++ else if (GET_CODE (tmp) == LABEL_REF) ++ { ++ current_sym_addr = tmp; ++ marked = true; ++ } ++ ++ /* If all references to the constant pool were optimized ++ out, we just ignore the symbol. */ ++ if (!marked) ++ return 0; ++ } ++ + /* This should be the same condition as in assemble_variable, but + we don't have access to dont_output_data here. So, instead, + we rely on the fact that error_mark_node initializers always +@@ -2461,37 +2492,6 @@ + current_sym_code = DBX_STATIC_CONST_VAR_CODE; + else + { +- /* Some ports can transform a symbol ref into a label ref, +- because the symbol ref is too far away and has to be +- dumped into a constant pool. Alternatively, the symbol +- in the constant pool might be referenced by a different +- symbol. */ +- if (GET_CODE (current_sym_addr) == SYMBOL_REF +- && CONSTANT_POOL_ADDRESS_P (current_sym_addr)) +- { +- bool marked; +- rtx tmp = get_pool_constant_mark (current_sym_addr, &marked); +- +- if (GET_CODE (tmp) == SYMBOL_REF) +- { +- current_sym_addr = tmp; +- if (CONSTANT_POOL_ADDRESS_P (current_sym_addr)) +- get_pool_constant_mark (current_sym_addr, &marked); +- else +- marked = true; +- } +- else if (GET_CODE (tmp) == LABEL_REF) +- { +- current_sym_addr = tmp; +- marked = true; +- } +- +- /* If all references to the constant pool were optimized +- out, we just ignore the symbol. */ +- if (!marked) +- return 0; +- } +- + /* Ultrix `as' seems to need this. */ + #ifdef DBX_STATIC_STAB_DATA_SECTION + data_section (); +Index: gcc/defaults.h +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/defaults.h,v +retrieving revision 1.123.2.1 +retrieving revision 1.123.2.2 +diff -u -r1.123.2.1 -r1.123.2.2 +--- gcc/defaults.h 23 Jan 2004 23:35:56 -0000 1.123.2.1 ++++ gcc/defaults.h 16 Jan 2005 16:01:18 -0000 1.123.2.2 +@@ -139,6 +139,12 @@ + #endif + #endif + ++/* Decide whether to defer emitting the assembler output for an equate ++ of two values. The default is to not defer output. */ ++#ifndef TARGET_DEFERRED_OUTPUT_DEFS ++#define TARGET_DEFERRED_OUTPUT_DEFS(DECL,TARGET) false ++#endif ++ + /* This is how to output the definition of a user-level label named + NAME, such as the label on a static function or variable NAME. */ + +Index: gcc/dojump.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/dojump.c,v +retrieving revision 1.9 +retrieving revision 1.9.4.2 +diff -u -r1.9 -r1.9.4.2 +--- gcc/dojump.c 20 Dec 2003 01:40:40 -0000 1.9 ++++ gcc/dojump.c 14 Dec 2004 01:47:30 -0000 1.9.4.2 +@@ -1,6 +1,6 @@ + /* Convert tree expression to rtl instructions, for GNU compiler. + Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +- 2000, 2001, 2002, 2003 Free Software Foundation, Inc. ++ 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. + + This file is part of GCC. + +@@ -33,7 +33,9 @@ + #include "expr.h" + #include "optabs.h" + #include "langhooks.h" ++#include "ggc.h" + ++static bool prefer_and_bit_test (enum machine_mode, int); + static void do_jump_by_parts_greater (tree, int, rtx, rtx); + static void do_jump_by_parts_equality (tree, rtx, rtx); + static void do_compare_and_jump (tree, enum rtx_code, enum rtx_code, rtx, +@@ -48,6 +50,15 @@ + pending_stack_adjust = 0; + } + ++/* Discard any pending stack adjustment. This avoid relying on the ++ RTL optimizers to remove useless adjustments when we know the ++ stack pointer value is dead. */ ++void discard_pending_stack_adjust (void) ++{ ++ stack_pointer_delta -= pending_stack_adjust; ++ pending_stack_adjust = 0; ++} ++ + /* When exiting from function, if safe, clear out any pending stack adjust + so the adjustment won't get done. + +@@ -62,10 +73,7 @@ + && EXIT_IGNORE_STACK + && ! (DECL_INLINE (current_function_decl) && ! flag_no_inline) + && ! flag_inline_functions) +- { +- stack_pointer_delta -= pending_stack_adjust, +- pending_stack_adjust = 0; +- } ++ discard_pending_stack_adjust (); + } + + /* Pop any previously-pushed arguments that have not been popped yet. */ +@@ -101,6 +109,45 @@ + do_jump (exp, NULL_RTX, label); + } + ++/* Used internally by prefer_and_bit_test. */ ++ ++static GTY(()) rtx and_reg; ++static GTY(()) rtx and_test; ++static GTY(()) rtx shift_test; ++ ++/* Compare the relative costs of "(X & (1 << BITNUM))" and "(X >> BITNUM) & 1" ++ where X is an arbitrary register of mode MODE. Return true if the former ++ is preferred. */ ++ ++static bool ++prefer_and_bit_test (enum machine_mode mode, int bitnum) ++{ ++ if (and_test == 0) ++ { ++ /* Set up rtxes for the two variations. Use NULL as a placeholder ++ for the BITNUM-based constants. */ ++ and_reg = gen_rtx_REG (mode, FIRST_PSEUDO_REGISTER); ++ and_test = gen_rtx_AND (mode, and_reg, NULL); ++ shift_test = gen_rtx_AND (mode, gen_rtx_ASHIFTRT (mode, and_reg, NULL), ++ const1_rtx); ++ } ++ else ++ { ++ /* Change the mode of the previously-created rtxes. */ ++ PUT_MODE (and_reg, mode); ++ PUT_MODE (and_test, mode); ++ PUT_MODE (shift_test, mode); ++ PUT_MODE (XEXP (shift_test, 0), mode); ++ } ++ ++ /* Fill in the integers. */ ++ XEXP (and_test, 1) = GEN_INT ((unsigned HOST_WIDE_INT) 1 << bitnum); ++ XEXP (XEXP (shift_test, 0), 1) = GEN_INT (bitnum); ++ ++ return (rtx_cost (and_test, IF_THEN_ELSE) ++ <= rtx_cost (shift_test, IF_THEN_ELSE)); ++} ++ + /* Generate code to evaluate EXP and jump to IF_FALSE_LABEL if + the result is zero, or IF_TRUE_LABEL if the result is one. + Either of IF_FALSE_LABEL and IF_TRUE_LABEL may be zero, +@@ -206,6 +253,59 @@ + break; + + case BIT_AND_EXPR: ++ /* fold_single_bit_test() converts (X & (1 << C)) into (X >> C) & 1. ++ See if the former is preferred for jump tests and restore it ++ if so. */ ++ if (integer_onep (TREE_OPERAND (exp, 1))) ++ { ++ tree exp0 = TREE_OPERAND (exp, 0); ++ rtx set_label, clr_label; ++ ++ /* Strip narrowing integral type conversions. */ ++ while ((TREE_CODE (exp0) == NOP_EXPR ++ || TREE_CODE (exp0) == CONVERT_EXPR ++ || TREE_CODE (exp0) == NON_LVALUE_EXPR) ++ && TREE_OPERAND (exp0, 0) != error_mark_node ++ && TYPE_PRECISION (TREE_TYPE (exp0)) ++ <= TYPE_PRECISION (TREE_TYPE (TREE_OPERAND (exp0, 0)))) ++ exp0 = TREE_OPERAND (exp0, 0); ++ ++ /* "exp0 ^ 1" inverts the sense of the single bit test. */ ++ if (TREE_CODE (exp0) == BIT_XOR_EXPR ++ && integer_onep (TREE_OPERAND (exp0, 1))) ++ { ++ exp0 = TREE_OPERAND (exp0, 0); ++ clr_label = if_true_label; ++ set_label = if_false_label; ++ } ++ else ++ { ++ clr_label = if_false_label; ++ set_label = if_true_label; ++ } ++ ++ if (TREE_CODE (exp0) == RSHIFT_EXPR) ++ { ++ tree arg = TREE_OPERAND (exp0, 0); ++ tree shift = TREE_OPERAND (exp0, 1); ++ tree argtype = TREE_TYPE (arg); ++ if (TREE_CODE (shift) == INTEGER_CST ++ && compare_tree_int (shift, 0) >= 0 ++ && compare_tree_int (shift, HOST_BITS_PER_WIDE_INT) < 0 ++ && prefer_and_bit_test (TYPE_MODE (argtype), ++ TREE_INT_CST_LOW (shift))) ++ { ++ HOST_WIDE_INT mask = (HOST_WIDE_INT) 1 ++ << TREE_INT_CST_LOW (shift); ++ tree t = build_int_2 (mask, 0); ++ TREE_TYPE (t) = argtype; ++ do_jump (build (BIT_AND_EXPR, argtype, arg, t), ++ clr_label, set_label); ++ break; ++ } ++ } ++ } ++ + /* If we are AND'ing with a small constant, do this comparison in the + smallest type that fits. If the machine doesn't have comparisons + that small, it will be converted back to the wider comparison. +@@ -997,3 +1097,5 @@ + ? expr_size (TREE_OPERAND (exp, 0)) : NULL_RTX), + if_false_label, if_true_label); + } ++ ++#include "gt-dojump.h" +Index: gcc/dwarf2out.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/dwarf2out.c,v +retrieving revision 1.478.2.14 +retrieving revision 1.478.2.16 +diff -u -r1.478.2.14 -r1.478.2.16 +--- gcc/dwarf2out.c 25 Oct 2004 21:46:45 -0000 1.478.2.14 ++++ gcc/dwarf2out.c 31 Jan 2005 23:19:34 -0000 1.478.2.16 +@@ -1,6 +1,6 @@ + /* Output Dwarf2 format symbol table information from GCC. + Copyright (C) 1992, 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +- 2003, 2004 Free Software Foundation, Inc. ++ 2003, 2004, 2005 Free Software Foundation, Inc. + Contributed by Gary Funck (gary@intrepid.com). + Derived from DWARF 1 implementation of Ron Guilmette (rfg@monkeys.com). + Extensively modified by Jason Merrill (jason@cygnus.com). +@@ -3649,6 +3649,7 @@ + static bool is_fortran (void); + static bool is_ada (void); + static void remove_AT (dw_die_ref, enum dwarf_attribute); ++static void remove_child_TAG (dw_die_ref, enum dwarf_tag); + static inline void free_die (dw_die_ref); + static void remove_children (dw_die_ref); + static void add_child_die (dw_die_ref, dw_die_ref); +@@ -5055,6 +5056,34 @@ + } + } + ++/* Remove child die whose die_tag is specified tag. */ ++ ++static void ++remove_child_TAG (dw_die_ref die, enum dwarf_tag tag) ++{ ++ dw_die_ref current, prev, next; ++ current = die->die_child; ++ prev = NULL; ++ while (current != NULL) ++ { ++ if (current->die_tag == tag) ++ { ++ next = current->die_sib; ++ if (prev == NULL) ++ die->die_child = next; ++ else ++ prev->die_sib = next; ++ free_die (current); ++ current = next; ++ } ++ else ++ { ++ prev = current; ++ current = current->die_sib; ++ } ++ } ++} ++ + /* Free up the memory used by DIE. */ + + static inline void +@@ -10235,7 +10264,8 @@ + if (containing_scope && TREE_CODE (containing_scope) == FUNCTION_TYPE) + containing_scope = NULL_TREE; + +- if (containing_scope == NULL_TREE) ++ if (containing_scope == NULL_TREE ++ || TREE_CODE (containing_scope) == TRANSLATION_UNIT_DECL) + scope_die = comp_unit_die; + else if (TYPE_P (containing_scope)) + { +@@ -10872,9 +10902,9 @@ + { + subr_die = old_die; + +- /* Clear out the declaration attribute and the parm types. */ ++ /* Clear out the declaration attribute and the formal parameters. */ + remove_AT (subr_die, DW_AT_declaration); +- remove_children (subr_die); ++ remove_child_TAG (subr_die, DW_TAG_formal_parameter); + } + else + { +Index: gcc/emit-rtl.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/emit-rtl.c,v +retrieving revision 1.365.4.5 +retrieving revision 1.365.4.9 +diff -u -r1.365.4.5 -r1.365.4.9 +--- gcc/emit-rtl.c 25 Mar 2004 16:44:40 -0000 1.365.4.5 ++++ gcc/emit-rtl.c 14 Dec 2004 03:12:03 -0000 1.365.4.9 +@@ -2910,11 +2910,19 @@ + { + rtx insn = first_insn; + +- while (insn) ++ if (insn) + { +- insn = next_insn (insn); +- if (insn == 0 || GET_CODE (insn) != NOTE) +- break; ++ if (NOTE_P (insn)) ++ for (insn = next_insn (insn); ++ insn && NOTE_P (insn); ++ insn = next_insn (insn)) ++ continue; ++ else ++ { ++ if (GET_CODE (insn) == INSN ++ && GET_CODE (PATTERN (insn)) == SEQUENCE) ++ insn = XVECEXP (PATTERN (insn), 0, 0); ++ } + } + + return insn; +@@ -2928,11 +2936,20 @@ + { + rtx insn = last_insn; + +- while (insn) ++ if (insn) + { +- insn = previous_insn (insn); +- if (insn == 0 || GET_CODE (insn) != NOTE) +- break; ++ if (NOTE_P (insn)) ++ for (insn = previous_insn (insn); ++ insn && NOTE_P (insn); ++ insn = previous_insn (insn)) ++ continue; ++ else ++ { ++ if (GET_CODE (insn) == INSN ++ && GET_CODE (PATTERN (insn)) == SEQUENCE) ++ insn = XVECEXP (PATTERN (insn), 0, ++ XVECLEN (PATTERN (insn), 0) - 1); ++ } + } + + return insn; +Index: gcc/explow.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/explow.c,v +retrieving revision 1.118.4.1 +retrieving revision 1.118.4.2 +diff -u -r1.118.4.1 -r1.118.4.2 +--- gcc/explow.c 2 Apr 2004 23:05:26 -0000 1.118.4.1 ++++ gcc/explow.c 23 Nov 2004 13:12:28 -0000 1.118.4.2 +@@ -951,6 +951,7 @@ + rtx seq; + + start_sequence (); ++ do_pending_stack_adjust (); + /* We must validize inside the sequence, to ensure that any instructions + created by the validize call also get moved to the right place. */ + if (sa != 0) +@@ -962,6 +963,7 @@ + } + else + { ++ do_pending_stack_adjust (); + if (sa != 0) + sa = validize_mem (sa); + emit_insn (fcn (sa, stack_pointer_rtx)); +@@ -1018,6 +1020,8 @@ + gen_rtx_MEM (BLKmode, stack_pointer_rtx))); + } + ++ discard_pending_stack_adjust (); ++ + if (after) + { + rtx seq; +Index: gcc/expr.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/expr.c,v +retrieving revision 1.615.4.14 +retrieving revision 1.615.4.19 +diff -u -r1.615.4.14 -r1.615.4.19 +--- gcc/expr.c 27 May 2004 19:35:17 -0000 1.615.4.14 ++++ gcc/expr.c 19 Dec 2004 20:01:27 -0000 1.615.4.19 +@@ -8107,7 +8107,7 @@ + /* At this point, a MEM target is no longer useful; we will get better + code without it. */ + +- if (GET_CODE (target) == MEM) ++ if (! REG_P (target)) + target = gen_reg_rtx (mode); + + /* If op1 was placed in target, swap op0 and op1. */ +@@ -8118,6 +8118,11 @@ + op1 = tem; + } + ++ /* We generate better code and avoid problems with op1 mentioning ++ target by forcing op1 into a pseudo if it isn't a constant. */ ++ if (! CONSTANT_P (op1)) ++ op1 = force_reg (mode, op1); ++ + if (target != op0) + emit_move_insn (target, op0); + +Index: gcc/expr.h +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/expr.h,v +retrieving revision 1.152.4.2 +retrieving revision 1.152.4.3 +diff -u -r1.152.4.2 -r1.152.4.3 +--- gcc/expr.h 15 Mar 2004 23:22:47 -0000 1.152.4.2 ++++ gcc/expr.h 23 Nov 2004 13:12:23 -0000 1.152.4.3 +@@ -526,6 +526,9 @@ + arguments waiting to be popped. */ + extern void init_pending_stack_adjust (void); + ++/* Discard any pending stack adjustment. */ ++extern void discard_pending_stack_adjust (void); ++ + /* When exiting from function, if safe, clear out any pending stack adjust + so the adjustment won't get done. */ + extern void clear_pending_stack_adjust (void); +Index: gcc/flow.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/flow.c,v +retrieving revision 1.572.4.3 +retrieving revision 1.572.4.4 +diff -u -r1.572.4.3 -r1.572.4.4 +--- gcc/flow.c 12 Oct 2004 23:35:29 -0000 1.572.4.3 ++++ gcc/flow.c 24 Jan 2005 09:10:38 -0000 1.572.4.4 +@@ -1591,7 +1591,7 @@ + pbi->cc0_live = 0; + + if (libcall_is_dead) +- prev = propagate_block_delete_libcall ( insn, note); ++ prev = propagate_block_delete_libcall (insn, note); + else + { + +@@ -2268,7 +2268,7 @@ + { + rtx r = SET_SRC (x); + +- if (GET_CODE (r) == REG) ++ if (GET_CODE (r) == REG || GET_CODE (r) == SUBREG) + { + rtx call = XEXP (note, 0); + rtx call_pat; +@@ -2302,10 +2302,20 @@ + call_pat = XVECEXP (call_pat, 0, i); + } + +- return insn_dead_p (pbi, call_pat, 1, REG_NOTES (call)); ++ if (! insn_dead_p (pbi, call_pat, 1, REG_NOTES (call))) ++ return 0; ++ ++ while ((insn = PREV_INSN (insn)) != call) ++ { ++ if (! INSN_P (insn)) ++ continue; ++ if (! insn_dead_p (pbi, PATTERN (insn), 0, REG_NOTES (insn))) ++ return 0; ++ } ++ return 1; + } + } +- return 1; ++ return 0; + } + + /* Return 1 if register REGNO was used before it was set, i.e. if it is +Index: gcc/fold-const.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/fold-const.c,v +retrieving revision 1.322.2.14 +retrieving revision 1.322.2.15 +diff -u -r1.322.2.14 -r1.322.2.15 +--- gcc/fold-const.c 1 Sep 2004 16:40:29 -0000 1.322.2.14 ++++ gcc/fold-const.c 30 Nov 2004 15:07:26 -0000 1.322.2.15 +@@ -4486,7 +4486,21 @@ + return t1; + break; + +- case NEGATE_EXPR: case ABS_EXPR: ++ case ABS_EXPR: ++ /* If widening the type changes it from signed to unsigned, then we ++ must avoid building ABS_EXPR itself as unsigned. */ ++ if (TREE_UNSIGNED (ctype) && !TREE_UNSIGNED (type)) ++ { ++ tree cstype = (*lang_hooks.types.signed_type) (ctype); ++ if ((t1 = extract_muldiv (op0, c, code, cstype)) != 0) ++ { ++ t1 = fold (build1 (tcode, cstype, fold_convert (cstype, t1))); ++ return fold_convert (ctype, t1); ++ } ++ break; ++ } ++ /* FALLTHROUGH */ ++ case NEGATE_EXPR: + if ((t1 = extract_muldiv (op0, c, code, wide_type)) != 0) + return fold (build1 (tcode, ctype, fold_convert (ctype, t1))); + break; +Index: gcc/function.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/function.c,v +retrieving revision 1.483.4.19 +retrieving revision 1.483.4.23 +diff -u -r1.483.4.19 -r1.483.4.23 +--- gcc/function.c 13 Oct 2004 23:18:13 -0000 1.483.4.19 ++++ gcc/function.c 16 Dec 2004 10:23:20 -0000 1.483.4.23 +@@ -236,7 +236,7 @@ + struct function *); + static struct temp_slot *find_temp_slot_from_address (rtx); + static void put_reg_into_stack (struct function *, rtx, tree, enum machine_mode, +- enum machine_mode, int, unsigned int, int, htab_t); ++ unsigned int, bool, bool, bool, htab_t); + static void schedule_fixup_var_refs (struct function *, rtx, tree, enum machine_mode, + htab_t); + static void fixup_var_refs (rtx, enum machine_mode, int, rtx, htab_t); +@@ -506,6 +506,7 @@ + ALIGN controls the amount of alignment for the address of the slot: + 0 means according to MODE, + -1 means use BIGGEST_ALIGNMENT and round size to multiple of that, ++ -2 means use BITS_PER_UNIT, + positive specifies alignment boundary in bits. + + We do not round to stack_boundary here. +@@ -543,6 +544,8 @@ + alignment = BIGGEST_ALIGNMENT / BITS_PER_UNIT; + size = CEIL_ROUND (size, alignment); + } ++ else if (align == -2) ++ alignment = 1; /* BITS_PER_UNIT / BITS_PER_UNIT */ + else + alignment = align / BITS_PER_UNIT; + +@@ -1291,9 +1294,9 @@ + enum machine_mode promoted_mode, decl_mode; + struct function *function = 0; + tree context; +- int can_use_addressof; +- int volatilep = TREE_CODE (decl) != SAVE_EXPR && TREE_THIS_VOLATILE (decl); +- int usedp = (TREE_USED (decl) ++ bool can_use_addressof_p; ++ bool volatile_p = TREE_CODE (decl) != SAVE_EXPR && TREE_THIS_VOLATILE (decl); ++ bool used_p = (TREE_USED (decl) + || (TREE_CODE (decl) != SAVE_EXPR && DECL_INITIAL (decl) != 0)); + + context = decl_function_context (decl); +@@ -1340,7 +1343,7 @@ + /* If this variable lives in the current function and we don't need to put it + in the stack for the sake of setjmp or the non-locality, try to keep it in + a register until we know we actually need the address. */ +- can_use_addressof ++ can_use_addressof_p + = (function == 0 + && ! (TREE_CODE (decl) != SAVE_EXPR && DECL_NONLOCAL (decl)) + && optimize > 0 +@@ -1353,7 +1356,8 @@ + + /* If we can't use ADDRESSOF, make sure we see through one we already + generated. */ +- if (! can_use_addressof && GET_CODE (reg) == MEM ++ if (! can_use_addressof_p ++ && GET_CODE (reg) == MEM + && GET_CODE (XEXP (reg, 0)) == ADDRESSOF) + reg = XEXP (XEXP (reg, 0), 0); + +@@ -1361,11 +1365,11 @@ + + if (GET_CODE (reg) == REG) + { +- if (can_use_addressof) ++ if (can_use_addressof_p) + gen_mem_addressof (reg, decl, rescan); + else +- put_reg_into_stack (function, reg, TREE_TYPE (decl), promoted_mode, +- decl_mode, volatilep, 0, usedp, 0); ++ put_reg_into_stack (function, reg, TREE_TYPE (decl), decl_mode, ++ 0, volatile_p, used_p, false, 0); + } + else if (GET_CODE (reg) == CONCAT) + { +@@ -1381,14 +1385,14 @@ + #ifdef FRAME_GROWS_DOWNWARD + /* Since part 0 should have a lower address, do it second. */ + put_reg_into_stack (function, hipart, part_type, part_mode, +- part_mode, volatilep, 0, 0, 0); ++ 0, volatile_p, false, false, 0); + put_reg_into_stack (function, lopart, part_type, part_mode, +- part_mode, volatilep, 0, 0, 0); ++ 0, volatile_p, false, true, 0); + #else + put_reg_into_stack (function, lopart, part_type, part_mode, +- part_mode, volatilep, 0, 0, 0); ++ 0, volatile_p, false, false, 0); + put_reg_into_stack (function, hipart, part_type, part_mode, +- part_mode, volatilep, 0, 0, 0); ++ 0, volatile_p, false, true, 0); + #endif + + /* Change the CONCAT into a combined MEM for both parts. */ +@@ -1409,7 +1413,7 @@ + /* Prevent sharing of rtl that might lose. */ + if (GET_CODE (XEXP (reg, 0)) == PLUS) + XEXP (reg, 0) = copy_rtx (XEXP (reg, 0)); +- if (usedp && rescan) ++ if (used_p && rescan) + { + schedule_fixup_var_refs (function, reg, TREE_TYPE (decl), + promoted_mode, 0); +@@ -1423,20 +1427,24 @@ + + /* Subroutine of put_var_into_stack. This puts a single pseudo reg REG + into the stack frame of FUNCTION (0 means the current function). ++ TYPE is the user-level data type of the value hold in the register. + DECL_MODE is the machine mode of the user-level data type. +- PROMOTED_MODE is the machine mode of the register. +- VOLATILE_P is nonzero if this is for a "volatile" decl. +- USED_P is nonzero if this reg might have already been used in an insn. */ ++ ORIGINAL_REGNO must be set if the real regno is not visible in REG. ++ VOLATILE_P is true if this is for a "volatile" decl. ++ USED_P is true if this reg might have already been used in an insn. ++ CONSECUTIVE_P is true if the stack slot assigned to reg must be ++ consecutive with the previous stack slot. */ + + static void + put_reg_into_stack (struct function *function, rtx reg, tree type, +- enum machine_mode promoted_mode, +- enum machine_mode decl_mode, int volatile_p, +- unsigned int original_regno, int used_p, htab_t ht) ++ enum machine_mode decl_mode, unsigned int original_regno, ++ bool volatile_p, bool used_p, bool consecutive_p, ++ htab_t ht) + { + struct function *func = function ? function : cfun; +- rtx new = 0; ++ enum machine_mode mode = GET_MODE (reg); + unsigned int regno = original_regno; ++ rtx new = 0; + + if (regno == 0) + regno = REGNO (reg); +@@ -1449,7 +1457,8 @@ + } + + if (new == 0) +- new = assign_stack_local_1 (decl_mode, GET_MODE_SIZE (decl_mode), 0, func); ++ new = assign_stack_local_1 (decl_mode, GET_MODE_SIZE (decl_mode), ++ consecutive_p ? -2 : 0, func); + + PUT_CODE (reg, MEM); + PUT_MODE (reg, decl_mode); +@@ -1471,7 +1480,7 @@ + } + + if (used_p) +- schedule_fixup_var_refs (function, reg, type, promoted_mode, ht); ++ schedule_fixup_var_refs (function, reg, type, mode, ht); + } + + /* Make sure that all refs to the variable, previously made +@@ -1639,7 +1648,7 @@ + tmp.key = var; + ime = htab_find (ht, &tmp); + for (insn_list = ime->insns; insn_list != 0; insn_list = XEXP (insn_list, 1)) +- if (INSN_P (XEXP (insn_list, 0))) ++ if (INSN_P (XEXP (insn_list, 0)) && !INSN_DELETED_P (XEXP (insn_list, 0))) + fixup_var_refs_insn (XEXP (insn_list, 0), var, promoted_mode, + unsignedp, 1, may_share); + } +@@ -2907,7 +2916,7 @@ + put_addressof_into_stack (rtx r, htab_t ht) + { + tree decl, type; +- int volatile_p, used_p; ++ bool volatile_p, used_p; + + rtx reg = XEXP (r, 0); + +@@ -2926,12 +2935,12 @@ + else + { + type = NULL_TREE; +- volatile_p = 0; +- used_p = 1; ++ volatile_p = false; ++ used_p = true; + } + +- put_reg_into_stack (0, reg, type, GET_MODE (reg), GET_MODE (reg), +- volatile_p, ADDRESSOF_REGNO (r), used_p, ht); ++ put_reg_into_stack (0, reg, type, GET_MODE (reg), ADDRESSOF_REGNO (r), ++ volatile_p, used_p, false, ht); + } + + /* List of replacements made below in purge_addressof_1 when creating +Index: gcc/gcc.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/gcc.c,v +retrieving revision 1.403.4.9 +retrieving revision 1.403.4.10 +diff -u -r1.403.4.9 -r1.403.4.10 +--- gcc/gcc.c 8 Sep 2004 15:16:11 -0000 1.403.4.9 ++++ gcc/gcc.c 16 Dec 2004 00:15:03 -0000 1.403.4.10 +@@ -1647,7 +1647,11 @@ + "-lgcc", + "-lgcc_eh" + #ifdef USE_LIBUNWIND_EXCEPTIONS ++# ifdef HAVE_LD_STATIC_DYNAMIC ++ " %{!static:-Bstatic} -lunwind %{!static:-Bdynamic}" ++# else + " -lunwind" ++# endif + #endif + ); + +Index: gcc/libgcc-darwin.ver +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/Attic/libgcc-darwin.ver,v +retrieving revision 2.1.10.1 +retrieving revision 2.1.10.2 +diff -u -r2.1.10.1 -r2.1.10.2 +--- gcc/libgcc-darwin.ver 12 Jun 2004 04:46:15 -0000 2.1.10.1 ++++ gcc/libgcc-darwin.ver 15 Dec 2004 12:34:25 -0000 2.1.10.2 +@@ -217,3 +217,13 @@ + ___paritydi2 + ___parityti2 + } ++ ++%inherit GCC_3.4.4 GCC_3.4 ++GCC_3.4.4 { ++ # libgcc2 TImode arithmetic (for 64-bit targets). ++ __absvti2 ++ __addvti3 ++ __mulvti3 ++ __negvti2 ++ __subvti3 ++} +Index: gcc/libgcc-std.ver +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/libgcc-std.ver,v +retrieving revision 1.23.10.3 +retrieving revision 1.23.10.4 +diff -u -r1.23.10.3 -r1.23.10.4 +--- gcc/libgcc-std.ver 1 Sep 2004 19:14:33 -0000 1.23.10.3 ++++ gcc/libgcc-std.ver 15 Dec 2004 12:34:25 -0000 1.23.10.4 +@@ -224,3 +224,13 @@ + __enable_execute_stack + __trampoline_setup + } ++ ++%inherit GCC_3.4.4 GCC_3.4.2 ++GCC_3.4.4 { ++ # libgcc2 TImode arithmetic (for 64-bit targets). ++ __absvti2 ++ __addvti3 ++ __mulvti3 ++ __negvti2 ++ __subvti3 ++} +Index: gcc/libgcc2.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/libgcc2.c,v +retrieving revision 1.170.6.2 +retrieving revision 1.170.6.3 +diff -u -r1.170.6.2 -r1.170.6.3 +--- gcc/libgcc2.c 26 Sep 2004 20:47:14 -0000 1.170.6.2 ++++ gcc/libgcc2.c 15 Dec 2004 12:34:24 -0000 1.170.6.3 +@@ -73,7 +73,7 @@ + + #ifdef L_addvsi3 + Wtype +-__addvsi3 (Wtype a, Wtype b) ++__addvSI3 (Wtype a, Wtype b) + { + const Wtype w = a + b; + +@@ -82,11 +82,23 @@ + + return w; + } ++#ifdef COMPAT_SIMODE_TRAPPING_ARITHMETIC ++SItype ++__addvsi3 (SItype a, SItype b) ++{ ++ const SItype w = a + b; ++ ++ if (b >= 0 ? w < a : w > a) ++ abort (); ++ ++ return w; ++} ++#endif /* COMPAT_SIMODE_TRAPPING_ARITHMETIC */ + #endif + + #ifdef L_addvdi3 + DWtype +-__addvdi3 (DWtype a, DWtype b) ++__addvDI3 (DWtype a, DWtype b) + { + const DWtype w = a + b; + +@@ -99,20 +111,32 @@ + + #ifdef L_subvsi3 + Wtype +-__subvsi3 (Wtype a, Wtype b) ++__subvSI3 (Wtype a, Wtype b) + { +- const DWtype w = a - b; ++ const Wtype w = a - b; + + if (b >= 0 ? w > a : w < a) + abort (); + + return w; + } ++#ifdef COMPAT_SIMODE_TRAPPING_ARITHMETIC ++SItype ++__subvsi3 (SItype a, SItype b) ++{ ++ const SItype w = a - b; ++ ++ if (b >= 0 ? w > a : w < a) ++ abort (); ++ ++ return w; ++} ++#endif /* COMPAT_SIMODE_TRAPPING_ARITHMETIC */ + #endif + + #ifdef L_subvdi3 + DWtype +-__subvdi3 (DWtype a, DWtype b) ++__subvDI3 (DWtype a, DWtype b) + { + const DWtype w = a - b; + +@@ -126,7 +150,7 @@ + #ifdef L_mulvsi3 + #define WORD_SIZE (sizeof (Wtype) * BITS_PER_UNIT) + Wtype +-__mulvsi3 (Wtype a, Wtype b) ++__mulvSI3 (Wtype a, Wtype b) + { + const DWtype w = (DWtype) a * (DWtype) b; + +@@ -135,11 +159,25 @@ + + return w; + } ++#ifdef COMPAT_SIMODE_TRAPPING_ARITHMETIC ++#undef WORD_SIZE ++#define WORD_SIZE (sizeof (SItype) * BITS_PER_UNIT) ++SItype ++__mulvsi3 (SItype a, SItype b) ++{ ++ const DItype w = (DItype) a * (DItype) b; ++ ++ if ((SItype) (w >> WORD_SIZE) != (SItype) w >> (WORD_SIZE-1)) ++ abort (); ++ ++ return w; ++} ++#endif /* COMPAT_SIMODE_TRAPPING_ARITHMETIC */ + #endif + + #ifdef L_negvsi2 + Wtype +-__negvsi2 (Wtype a) ++__negvSI2 (Wtype a) + { + const Wtype w = -a; + +@@ -148,11 +186,23 @@ + + return w; + } ++#ifdef COMPAT_SIMODE_TRAPPING_ARITHMETIC ++SItype ++__negvsi2 (SItype a) ++{ ++ const SItype w = -a; ++ ++ if (a >= 0 ? w > 0 : w < 0) ++ abort (); ++ ++ return w; ++} ++#endif /* COMPAT_SIMODE_TRAPPING_ARITHMETIC */ + #endif + + #ifdef L_negvdi2 + DWtype +-__negvdi2 (DWtype a) ++__negvDI2 (DWtype a) + { + const DWtype w = -a; + +@@ -165,12 +215,30 @@ + + #ifdef L_absvsi2 + Wtype +-__absvsi2 (Wtype a) ++__absvSI2 (Wtype a) + { + Wtype w = a; + + if (a < 0) + #ifdef L_negvsi2 ++ w = __negvSI2 (a); ++#else ++ w = -a; ++ ++ if (w < 0) ++ abort (); ++#endif ++ ++ return w; ++} ++#ifdef COMPAT_SIMODE_TRAPPING_ARITHMETIC ++SItype ++__absvsi2 (SItype a) ++{ ++ SItype w = a; ++ ++ if (a < 0) ++#ifdef L_negvsi2 + w = __negvsi2 (a); + #else + w = -a; +@@ -181,17 +249,18 @@ + + return w; + } ++#endif /* COMPAT_SIMODE_TRAPPING_ARITHMETIC */ + #endif + + #ifdef L_absvdi2 + DWtype +-__absvdi2 (DWtype a) ++__absvDI2 (DWtype a) + { + DWtype w = a; + + if (a < 0) + #ifdef L_negvdi2 +- w = __negvdi2 (a); ++ w = __negvDI2 (a); + #else + w = -a; + +@@ -206,7 +275,7 @@ + #ifdef L_mulvdi3 + #define WORD_SIZE (sizeof (Wtype) * BITS_PER_UNIT) + DWtype +-__mulvdi3 (DWtype u, DWtype v) ++__mulvDI3 (DWtype u, DWtype v) + { + /* The unchecked multiplication needs 3 Wtype x Wtype multiplications, + but the checked multiplication needs only two. */ +Index: gcc/libgcc2.h +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/libgcc2.h,v +retrieving revision 1.28 +retrieving revision 1.28.4.1 +diff -u -r1.28 -r1.28.4.1 +--- gcc/libgcc2.h 21 Dec 2003 14:08:34 -0000 1.28 ++++ gcc/libgcc2.h 15 Dec 2004 12:34:25 -0000 1.28.4.1 +@@ -135,6 +135,16 @@ + #define float bogus_type + #define double bogus_type + ++/* Versions prior to 3.4.4 were not taking into account the word size for ++ the 5 trapping arithmetic functions absv, addv, subv, mulv and negv. As ++ a consequence, the si and di variants were always and the only ones emitted. ++ To maintain backward compatibility, COMPAT_SIMODE_TRAPPING_ARITHMETIC is ++ defined on platforms where it makes sense to still have the si variants ++ emitted. As a bonus, their implementation is now correct. Note that the ++ same mechanism should have been implemented for the di variants, but it ++ turns out that no platform would define COMPAT_DIMODE_TRAPPING_ARITHMETIC ++ if it existed. */ ++ + #if MIN_UNITS_PER_WORD > 4 + #define W_TYPE_SIZE (8 * BITS_PER_UNIT) + #define Wtype DItype +@@ -145,6 +155,7 @@ + #define UDWtype UTItype + #define __NW(a,b) __ ## a ## di ## b + #define __NDW(a,b) __ ## a ## ti ## b ++#define COMPAT_SIMODE_TRAPPING_ARITHMETIC + #elif MIN_UNITS_PER_WORD > 2 \ + || (MIN_UNITS_PER_WORD > 1 && LONG_LONG_TYPE_SIZE > 32) + #define W_TYPE_SIZE (4 * BITS_PER_UNIT) +@@ -210,6 +221,17 @@ + #define __fixunsdfSI __NW(fixunsdf,) + #define __fixunssfSI __NW(fixunssf,) + ++#define __absvSI2 __NW(absv,2) ++#define __addvSI3 __NW(addv,3) ++#define __subvSI3 __NW(subv,3) ++#define __mulvSI3 __NW(mulv,3) ++#define __negvSI2 __NW(negv,2) ++#define __absvDI2 __NDW(absv,2) ++#define __addvDI3 __NDW(addv,3) ++#define __subvDI3 __NDW(subv,3) ++#define __mulvDI3 __NDW(mulv,3) ++#define __negvDI2 __NDW(negv,2) ++ + #define __ffsSI2 __NW(ffs,2) + #define __clzSI2 __NW(clz,2) + #define __ctzSI2 __NW(ctz,2) +@@ -251,16 +273,24 @@ + extern word_type __cmpdi2 (DWtype, DWtype); + extern word_type __ucmpdi2 (DWtype, DWtype); + +-extern Wtype __absvsi2 (Wtype); +-extern DWtype __absvdi2 (DWtype); +-extern Wtype __addvsi3 (Wtype, Wtype); +-extern DWtype __addvdi3 (DWtype, DWtype); +-extern Wtype __subvsi3 (Wtype, Wtype); +-extern DWtype __subvdi3 (DWtype, DWtype); +-extern Wtype __mulvsi3 (Wtype, Wtype); +-extern DWtype __mulvdi3 (DWtype, DWtype); +-extern Wtype __negvsi2 (Wtype); +-extern DWtype __negvdi2 (DWtype); ++extern Wtype __absvSI2 (Wtype); ++extern Wtype __addvSI3 (Wtype, Wtype); ++extern Wtype __subvSI3 (Wtype, Wtype); ++extern Wtype __mulvSI3 (Wtype, Wtype); ++extern Wtype __negvSI2 (Wtype); ++extern DWtype __absvDI2 (DWtype); ++extern DWtype __addvDI3 (DWtype, DWtype); ++extern DWtype __subvDI3 (DWtype, DWtype); ++extern DWtype __mulvDI3 (DWtype, DWtype); ++extern DWtype __negvDI2 (DWtype); ++ ++#ifdef COMPAT_SIMODE_TRAPPING_ARITHMETIC ++extern SItype __absvsi2 (SItype); ++extern SItype __addvsi3 (SItype, SItype); ++extern SItype __subvsi3 (SItype, SItype); ++extern SItype __mulvsi3 (SItype, SItype); ++extern SItype __negvsi2 (SItype); ++#endif /* COMPAT_SIMODE_TRAPPING_ARITHMETIC */ + + #if BITS_PER_UNIT == 8 + extern DWtype __fixdfdi (DFtype); +Index: gcc/loop-unroll.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/loop-unroll.c,v +retrieving revision 1.13.4.2 +retrieving revision 1.13.4.3 +diff -u -r1.13.4.2 -r1.13.4.3 +--- gcc/loop-unroll.c 2 Mar 2004 02:25:06 -0000 1.13.4.2 ++++ gcc/loop-unroll.c 30 Dec 2004 20:23:28 -0000 1.13.4.3 +@@ -1269,7 +1269,9 @@ + /* Expand a bct instruction in a branch and an increment. + If flag_inc is set, the induction variable does not need to be + incremented. */ +-void expand_bct (edge e, int flag_inc) ++ ++static void ++expand_bct (edge e, int flag_inc) + { + rtx bct_insn = BB_END (e->src); + rtx cmp; +@@ -1278,12 +1280,11 @@ + + rtx tgt; + rtx condition; +- rtx label; ++ rtx labelref; + rtx reg; +- rtx jump; +- rtx pattern = PATTERN(bct_insn); ++ rtx pattern = PATTERN (bct_insn); + +- if (!(is_bct_cond(bct_insn))) ++ if (!is_bct_cond (bct_insn)) + return; + + inc = get_var_set_from_bct (bct_insn); +@@ -1299,14 +1300,12 @@ + } + + condition = XEXP (SET_SRC (cmp), 0); +- label = XEXP (SET_SRC (cmp), 1); ++ labelref = XEXP (SET_SRC (cmp), 1); + + do_compare_rtx_and_jump (copy_rtx (reg), XEXP (condition, 1), + GET_CODE (condition), 0, + GET_MODE (reg), NULL_RTX, NULL_RTX, +- label); +- jump = get_last_insn (); +- JUMP_LABEL (jump) = label; ++ XEXP (labelref, 0)); + seq = get_insns (); + end_sequence (); + emit_insn_after (seq, bct_insn); +Index: gcc/loop.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/loop.c,v +retrieving revision 1.488.2.5 +retrieving revision 1.488.2.8 +diff -u -r1.488.2.5 -r1.488.2.8 +--- gcc/loop.c 13 Jul 2004 15:29:08 -0000 1.488.2.5 ++++ gcc/loop.c 6 Jan 2005 19:12:03 -0000 1.488.2.8 +@@ -303,6 +303,14 @@ + rtx, rtx, rtx, rtx, int, enum g_types, int, int, + rtx *); + static void update_giv_derive (const struct loop *, rtx); ++static HOST_WIDE_INT get_monotonic_increment (struct iv_class *); ++static bool biased_biv_fits_mode_p (const struct loop *, struct iv_class *, ++ HOST_WIDE_INT, enum machine_mode, ++ unsigned HOST_WIDE_INT); ++static bool biv_fits_mode_p (const struct loop *, struct iv_class *, ++ HOST_WIDE_INT, enum machine_mode, bool); ++static bool extension_within_bounds_p (const struct loop *, struct iv_class *, ++ HOST_WIDE_INT, rtx); + static void check_ext_dependent_givs (const struct loop *, struct iv_class *); + static int basic_induction_var (const struct loop *, rtx, enum machine_mode, + rtx, rtx, rtx *, rtx *, rtx **); +@@ -765,6 +773,9 @@ + in_libcall--; + if (GET_CODE (p) == INSN) + { ++ /* Do not scan past an optimization barrier. */ ++ if (GET_CODE (PATTERN (p)) == ASM_INPUT) ++ break; + temp = find_reg_note (p, REG_LIBCALL, NULL_RTX); + if (temp) + in_libcall++; +@@ -3856,7 +3867,7 @@ + struct prefetch_info info[MAX_PREFETCHES]; + struct loop_ivs *ivs = LOOP_IVS (loop); + +- if (!HAVE_prefetch) ++ if (!HAVE_prefetch || PREFETCH_BLOCK == 0) + return; + + /* Consider only loops w/o calls. When a call is done, the loop is probably +@@ -7364,6 +7375,173 @@ + return NULL_RTX; + } + ++/* See if BL is monotonic and has a constant per-iteration increment. ++ Return the increment if so, otherwise return 0. */ ++ ++static HOST_WIDE_INT ++get_monotonic_increment (struct iv_class *bl) ++{ ++ struct induction *v; ++ rtx incr; ++ ++ /* Get the total increment and check that it is constant. */ ++ incr = biv_total_increment (bl); ++ if (incr == 0 || GET_CODE (incr) != CONST_INT) ++ return 0; ++ ++ for (v = bl->biv; v != 0; v = v->next_iv) ++ { ++ if (GET_CODE (v->add_val) != CONST_INT) ++ return 0; ++ ++ if (INTVAL (v->add_val) < 0 && INTVAL (incr) >= 0) ++ return 0; ++ ++ if (INTVAL (v->add_val) > 0 && INTVAL (incr) <= 0) ++ return 0; ++ } ++ return INTVAL (incr); ++} ++ ++ ++/* Subroutine of biv_fits_mode_p. Return true if biv BL, when biased by ++ BIAS, will never exceed the unsigned range of MODE. LOOP is the loop ++ to which the biv belongs and INCR is its per-iteration increment. */ ++ ++static bool ++biased_biv_fits_mode_p (const struct loop *loop, struct iv_class *bl, ++ HOST_WIDE_INT incr, enum machine_mode mode, ++ unsigned HOST_WIDE_INT bias) ++{ ++ unsigned HOST_WIDE_INT initial, maximum, span, delta; ++ ++ /* We need to be able to manipulate MODE-size constants. */ ++ if (HOST_BITS_PER_WIDE_INT < GET_MODE_BITSIZE (mode)) ++ return false; ++ ++ /* The number of loop iterations must be constant. */ ++ if (LOOP_INFO (loop)->n_iterations == 0) ++ return false; ++ ++ /* So must the biv's initial value. */ ++ if (bl->initial_value == 0 || GET_CODE (bl->initial_value) != CONST_INT) ++ return false; ++ ++ initial = bias + INTVAL (bl->initial_value); ++ maximum = GET_MODE_MASK (mode); ++ ++ /* Make sure that the initial value is within range. */ ++ if (initial > maximum) ++ return false; ++ ++ /* Set up DELTA and SPAN such that the number of iterations * DELTA ++ (calculated to arbitrary precision) must be <= SPAN. */ ++ if (incr < 0) ++ { ++ delta = -incr; ++ span = initial; ++ } ++ else ++ { ++ delta = incr; ++ /* Handle the special case in which MAXIMUM is the largest ++ unsigned HOST_WIDE_INT and INITIAL is 0. */ ++ if (maximum + 1 == initial) ++ span = LOOP_INFO (loop)->n_iterations * delta; ++ else ++ span = maximum + 1 - initial; ++ } ++ return (span / LOOP_INFO (loop)->n_iterations >= delta); ++} ++ ++ ++/* Return true if biv BL will never exceed the bounds of MODE. LOOP is ++ the loop to which BL belongs and INCR is its per-iteration increment. ++ UNSIGNEDP is true if the biv should be treated as unsigned. */ ++ ++static bool ++biv_fits_mode_p (const struct loop *loop, struct iv_class *bl, ++ HOST_WIDE_INT incr, enum machine_mode mode, bool unsignedp) ++{ ++ struct loop_info *loop_info; ++ unsigned HOST_WIDE_INT bias; ++ ++ /* A biv's value will always be limited to its natural mode. ++ Larger modes will observe the same wrap-around. */ ++ if (GET_MODE_SIZE (mode) > GET_MODE_SIZE (GET_MODE (bl->biv->src_reg))) ++ mode = GET_MODE (bl->biv->src_reg); ++ ++ loop_info = LOOP_INFO (loop); ++ ++ bias = (unsignedp ? 0 : (GET_MODE_MASK (mode) >> 1) + 1); ++ if (biased_biv_fits_mode_p (loop, bl, incr, mode, bias)) ++ return true; ++ ++ if (mode == GET_MODE (bl->biv->src_reg) ++ && bl->biv->src_reg == loop_info->iteration_var ++ && loop_info->comparison_value ++ && loop_invariant_p (loop, loop_info->comparison_value)) ++ { ++ /* If the increment is +1, and the exit test is a <, the BIV ++ cannot overflow. (For <=, we have the problematic case that ++ the comparison value might be the maximum value of the range.) */ ++ if (incr == 1) ++ { ++ if (loop_info->comparison_code == LT) ++ return true; ++ if (loop_info->comparison_code == LTU && unsignedp) ++ return true; ++ } ++ ++ /* Likewise for increment -1 and exit test >. */ ++ if (incr == -1) ++ { ++ if (loop_info->comparison_code == GT) ++ return true; ++ if (loop_info->comparison_code == GTU && unsignedp) ++ return true; ++ } ++ } ++ return false; ++} ++ ++ ++/* Given that X is an extension or truncation of BL, return true ++ if it is unaffected by overflow. LOOP is the loop to which ++ BL belongs and INCR is its per-iteration increment. */ ++ ++static bool ++extension_within_bounds_p (const struct loop *loop, struct iv_class *bl, ++ HOST_WIDE_INT incr, rtx x) ++{ ++ enum machine_mode mode; ++ bool signedp, unsignedp; ++ ++ switch (GET_CODE (x)) ++ { ++ case SIGN_EXTEND: ++ case ZERO_EXTEND: ++ mode = GET_MODE (XEXP (x, 0)); ++ signedp = (GET_CODE (x) == SIGN_EXTEND); ++ unsignedp = (GET_CODE (x) == ZERO_EXTEND); ++ break; ++ ++ case TRUNCATE: ++ /* We don't know whether this value is being used as signed ++ or unsigned, so check the conditions for both. */ ++ mode = GET_MODE (x); ++ signedp = unsignedp = true; ++ break; ++ ++ default: ++ abort (); ++ } ++ ++ return ((!signedp || biv_fits_mode_p (loop, bl, incr, mode, false)) ++ && (!unsignedp || biv_fits_mode_p (loop, bl, incr, mode, true))); ++} ++ ++ + /* Check each extension dependent giv in this class to see if its + root biv is safe from wrapping in the interior mode, which would + make the giv illegal. */ +@@ -7371,185 +7549,30 @@ + static void + check_ext_dependent_givs (const struct loop *loop, struct iv_class *bl) + { +- struct loop_info *loop_info = LOOP_INFO (loop); +- int ze_ok = 0, se_ok = 0, info_ok = 0; +- enum machine_mode biv_mode = GET_MODE (bl->biv->src_reg); +- HOST_WIDE_INT start_val; +- unsigned HOST_WIDE_INT u_end_val = 0; +- unsigned HOST_WIDE_INT u_start_val = 0; +- rtx incr = pc_rtx; + struct induction *v; ++ HOST_WIDE_INT incr; + +- /* Make sure the iteration data is available. We must have +- constants in order to be certain of no overflow. */ +- if (loop_info->n_iterations > 0 +- && bl->initial_value +- && GET_CODE (bl->initial_value) == CONST_INT +- && (incr = biv_total_increment (bl)) +- && GET_CODE (incr) == CONST_INT +- /* Make sure the host can represent the arithmetic. */ +- && HOST_BITS_PER_WIDE_INT >= GET_MODE_BITSIZE (biv_mode)) +- { +- unsigned HOST_WIDE_INT abs_incr, total_incr; +- HOST_WIDE_INT s_end_val; +- int neg_incr; +- +- info_ok = 1; +- start_val = INTVAL (bl->initial_value); +- u_start_val = start_val; +- +- neg_incr = 0, abs_incr = INTVAL (incr); +- if (INTVAL (incr) < 0) +- neg_incr = 1, abs_incr = -abs_incr; +- total_incr = abs_incr * loop_info->n_iterations; +- +- /* Check for host arithmetic overflow. */ +- if (total_incr / loop_info->n_iterations == abs_incr) +- { +- unsigned HOST_WIDE_INT u_max; +- HOST_WIDE_INT s_max; +- +- u_end_val = start_val + (neg_incr ? -total_incr : total_incr); +- s_end_val = u_end_val; +- u_max = GET_MODE_MASK (biv_mode); +- s_max = u_max >> 1; +- +- /* Check zero extension of biv ok. */ +- if (start_val >= 0 +- /* Check for host arithmetic overflow. */ +- && (neg_incr +- ? u_end_val < u_start_val +- : u_end_val > u_start_val) +- /* Check for target arithmetic overflow. */ +- && (neg_incr +- ? 1 /* taken care of with host overflow */ +- : u_end_val <= u_max)) +- { +- ze_ok = 1; +- } +- +- /* Check sign extension of biv ok. */ +- /* ??? While it is true that overflow with signed and pointer +- arithmetic is undefined, I fear too many programmers don't +- keep this fact in mind -- myself included on occasion. +- So leave alone with the signed overflow optimizations. */ +- if (start_val >= -s_max - 1 +- /* Check for host arithmetic overflow. */ +- && (neg_incr +- ? s_end_val < start_val +- : s_end_val > start_val) +- /* Check for target arithmetic overflow. */ +- && (neg_incr +- ? s_end_val >= -s_max - 1 +- : s_end_val <= s_max)) +- { +- se_ok = 1; +- } +- } +- } +- +- /* If we know the BIV is compared at run-time against an +- invariant value, and the increment is +/- 1, we may also +- be able to prove that the BIV cannot overflow. */ +- else if (bl->biv->src_reg == loop_info->iteration_var +- && loop_info->comparison_value +- && loop_invariant_p (loop, loop_info->comparison_value) +- && (incr = biv_total_increment (bl)) +- && GET_CODE (incr) == CONST_INT) +- { +- /* If the increment is +1, and the exit test is a <, +- the BIV cannot overflow. (For <=, we have the +- problematic case that the comparison value might +- be the maximum value of the range.) */ +- if (INTVAL (incr) == 1) +- { +- if (loop_info->comparison_code == LT) +- se_ok = ze_ok = 1; +- else if (loop_info->comparison_code == LTU) +- ze_ok = 1; +- } +- +- /* Likewise for increment -1 and exit test >. */ +- if (INTVAL (incr) == -1) +- { +- if (loop_info->comparison_code == GT) +- se_ok = ze_ok = 1; +- else if (loop_info->comparison_code == GTU) +- ze_ok = 1; +- } +- } ++ incr = get_monotonic_increment (bl); + + /* Invalidate givs that fail the tests. */ + for (v = bl->giv; v; v = v->next_iv) + if (v->ext_dependent) + { +- enum rtx_code code = GET_CODE (v->ext_dependent); +- int ok = 0; +- +- switch (code) +- { +- case SIGN_EXTEND: +- ok = se_ok; +- break; +- case ZERO_EXTEND: +- ok = ze_ok; +- break; +- +- case TRUNCATE: +- /* We don't know whether this value is being used as either +- signed or unsigned, so to safely truncate we must satisfy +- both. The initial check here verifies the BIV itself; +- once that is successful we may check its range wrt the +- derived GIV. This works only if we were able to determine +- constant start and end values above. */ +- if (se_ok && ze_ok && info_ok) +- { +- enum machine_mode outer_mode = GET_MODE (v->ext_dependent); +- unsigned HOST_WIDE_INT max = GET_MODE_MASK (outer_mode) >> 1; +- +- /* We know from the above that both endpoints are nonnegative, +- and that there is no wrapping. Verify that both endpoints +- are within the (signed) range of the outer mode. */ +- if (u_start_val <= max && u_end_val <= max) +- ok = 1; +- } +- break; +- +- default: +- abort (); +- } +- +- if (ok) ++ if (incr != 0 ++ && extension_within_bounds_p (loop, bl, incr, v->ext_dependent)) + { + if (loop_dump_stream) +- { +- fprintf (loop_dump_stream, +- "Verified ext dependent giv at %d of reg %d\n", +- INSN_UID (v->insn), bl->regno); +- } ++ fprintf (loop_dump_stream, ++ "Verified ext dependent giv at %d of reg %d\n", ++ INSN_UID (v->insn), bl->regno); + } + else + { + if (loop_dump_stream) +- { +- const char *why; +- +- if (info_ok) +- why = "biv iteration values overflowed"; +- else +- { +- if (incr == pc_rtx) +- incr = biv_total_increment (bl); +- if (incr == const1_rtx) +- why = "biv iteration info incomplete; incr by 1"; +- else +- why = "biv iteration info incomplete"; +- } ++ fprintf (loop_dump_stream, ++ "Failed ext dependent giv at %d\n", ++ INSN_UID (v->insn)); + +- fprintf (loop_dump_stream, +- "Failed ext dependent giv at %d, %s\n", +- INSN_UID (v->insn), why); +- } + v->ignore = 1; + bl->all_reduced = 0; + } +Index: gcc/params.def +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/params.def,v +retrieving revision 1.33.4.2 +retrieving revision 1.33.4.3 +diff -u -r1.33.4.2 -r1.33.4.3 +--- gcc/params.def 21 Feb 2004 00:36:36 -0000 1.33.4.2 ++++ gcc/params.def 19 Jan 2005 11:17:59 -0000 1.33.4.3 +@@ -248,6 +248,15 @@ + "The maximum memory locations recorded by cselib", + 500) + ++DEFPARAM(PARAM_MAX_LAST_VALUE_RTL, ++ "max-last-value-rtl", ++ "The maximum number of RTL nodes that can be recorded as \ ++combiner's last value", ++ 10000) ++ ++ /* INTEGER_CST nodes are shared for values [{-1,0} .. N) for ++ {signed,unsigned} integral types. This determines N. ++ Experimentation shows 256 to be a good value. */ + #ifdef ENABLE_GC_ALWAYS_COLLECT + # define GGC_MIN_EXPAND_DEFAULT 0 + # define GGC_MIN_HEAPSIZE_DEFAULT 0 +Index: gcc/params.h +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/params.h,v +retrieving revision 1.16 +retrieving revision 1.16.16.1 +diff -u -r1.16 -r1.16.16.1 +--- gcc/params.h 1 Jun 2003 15:59:07 -0000 1.16 ++++ gcc/params.h 19 Jan 2005 11:18:05 -0000 1.16.16.1 +@@ -106,4 +106,6 @@ + PARAM_VALUE (PARAM_MAX_GCSE_PASSES) + #define MAX_UNROLLED_INSNS \ + PARAM_VALUE (PARAM_MAX_UNROLLED_INSNS) ++#define MAX_LAST_VALUE_RTL \ ++ PARAM_VALUE (PARAM_MAX_LAST_VALUE_RTL) + #endif /* ! GCC_PARAMS_H */ +Index: gcc/predict.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/predict.c,v +retrieving revision 1.98 +retrieving revision 1.98.2.1 +diff -u -r1.98 -r1.98.2.1 +--- gcc/predict.c 16 Jan 2004 01:44:06 -0000 1.98 ++++ gcc/predict.c 7 Feb 2005 21:18:31 -0000 1.98.2.1 +@@ -1,5 +1,6 @@ + /* Branch prediction routines for the GNU compiler. +- Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. ++ Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 ++ Free Software Foundation, Inc. + + This file is part of GCC. + +@@ -60,7 +61,7 @@ + real_inv_br_prob_base, real_one_half, real_bb_freq_max; + + /* Random guesstimation given names. */ +-#define PROB_VERY_UNLIKELY (REG_BR_PROB_BASE / 10 - 1) ++#define PROB_VERY_UNLIKELY (REG_BR_PROB_BASE / 100 - 1) + #define PROB_EVEN (REG_BR_PROB_BASE / 2) + #define PROB_VERY_LIKELY (REG_BR_PROB_BASE - PROB_VERY_UNLIKELY) + #define PROB_ALWAYS (REG_BR_PROB_BASE) +Index: gcc/real.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/real.c,v +retrieving revision 1.135.4.6 +retrieving revision 1.135.4.7 +diff -u -r1.135.4.6 -r1.135.4.7 +--- gcc/real.c 17 Jun 2004 21:56:59 -0000 1.135.4.6 ++++ gcc/real.c 27 Jan 2005 12:57:41 -0000 1.135.4.7 +@@ -640,6 +640,9 @@ + r->class = rvc_normal; + r->sign = sign; + r->exp = exp; ++ /* Zero out the remaining fields. */ ++ r->signalling = 0; ++ r->canonical = 0; + + /* Re-normalize the result. */ + normalize (r); +@@ -1960,6 +1963,7 @@ + get_zero (r, 0); + else + { ++ memset (r, 0, sizeof (*r)); + r->class = rvc_normal; + r->sign = high < 0 && !unsigned_p; + r->exp = 2 * HOST_BITS_PER_WIDE_INT; +@@ -1977,7 +1981,6 @@ + { + r->sig[SIGSZ-1] = high; + r->sig[SIGSZ-2] = low; +- memset (r->sig, 0, sizeof(long)*(SIGSZ-2)); + } + else if (HOST_BITS_PER_LONG*2 == HOST_BITS_PER_WIDE_INT) + { +@@ -1985,8 +1988,6 @@ + r->sig[SIGSZ-2] = high; + r->sig[SIGSZ-3] = low >> (HOST_BITS_PER_LONG - 1) >> 1; + r->sig[SIGSZ-4] = low; +- if (SIGSZ > 4) +- memset (r->sig, 0, sizeof(long)*(SIGSZ-4)); + } + else + abort (); +Index: gcc/reg-stack.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/reg-stack.c,v +retrieving revision 1.140.4.1 +retrieving revision 1.140.4.2 +diff -u -r1.140.4.1 -r1.140.4.2 +--- gcc/reg-stack.c 23 Jan 2004 23:36:01 -0000 1.140.4.1 ++++ gcc/reg-stack.c 13 Dec 2004 02:34:14 -0000 1.140.4.2 +@@ -1060,10 +1060,21 @@ + if (regstack->reg[i] == REGNO (src)) + break; + +- /* The source must be live, and the dest must be dead. */ +- if (i < 0 || get_hard_regnum (regstack, dest) >= FIRST_STACK_REG) ++ /* The destination must be dead, or life analysis is borked. */ ++ if (get_hard_regnum (regstack, dest) >= FIRST_STACK_REG) + abort (); + ++ /* If the source is not live, this is yet another case of ++ uninitialized variables. Load up a NaN instead. */ ++ if (i < 0) ++ { ++ PATTERN (insn) = pat ++ = gen_rtx_SET (VOIDmode, ++ FP_MODE_REG (REGNO (dest), SFmode), nan); ++ INSN_CODE (insn) = -1; ++ return move_for_stack_reg (insn, regstack, pat); ++ } ++ + /* It is possible that the dest is unused after this insn. + If so, just pop the src. */ + +Index: gcc/regrename.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/regrename.c,v +retrieving revision 1.73 +retrieving revision 1.73.2.1 +diff -u -r1.73 -r1.73.2.1 +--- gcc/regrename.c 14 Jan 2004 17:55:20 -0000 1.73 ++++ gcc/regrename.c 24 Jan 2005 12:37:40 -0000 1.73.2.1 +@@ -101,8 +101,12 @@ + HARD_REG_SET *pset = (HARD_REG_SET *) data; + unsigned int regno; + int nregs; ++ ++ if (GET_CODE (x) == SUBREG) ++ x = SUBREG_REG (x); + if (GET_CODE (x) != REG) + return; ++ + regno = REGNO (x); + nregs = HARD_REGNO_NREGS (regno, GET_MODE (x)); + +Index: gcc/reload1.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/reload1.c,v +retrieving revision 1.419.4.5 +retrieving revision 1.419.4.7 +diff -u -r1.419.4.5 -r1.419.4.7 +--- gcc/reload1.c 2 May 2004 12:37:17 -0000 1.419.4.5 ++++ gcc/reload1.c 6 Jan 2005 04:10:57 -0000 1.419.4.7 +@@ -1,6 +1,6 @@ + /* Reload pseudo regs into hard regs for insns that require hard regs. + Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, +- 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. ++ 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + + This file is part of GCC. + +@@ -3324,6 +3324,14 @@ + num_not_at_initial_offset = 0; + } + ++/* Subroutine of set_initial_label_offsets called via for_each_eh_label. */ ++ ++static void ++set_initial_eh_label_offset (rtx label) ++{ ++ set_label_offsets (label, NULL_RTX, 1); ++} ++ + /* Initialize the known label offsets. + Set a known offset for each forced label to be at the initial offset + of each elimination. We do this because we assume that all +@@ -3340,6 +3348,8 @@ + for (x = forced_labels; x; x = XEXP (x, 1)) + if (XEXP (x, 0)) + set_label_offsets (XEXP (x, 0), NULL_RTX, 1); ++ ++ for_each_eh_label (set_initial_eh_label_offset); + } + + /* Set all elimination offsets to the known values for the code label given +@@ -6815,6 +6825,10 @@ + actually no need to store the old value in it. */ + + if (optimize ++ /* Only attempt this for input reloads; for RELOAD_OTHER we miss ++ that there may be multiple uses of the previous output reload. ++ Restricting to RELOAD_FOR_INPUT is mostly paranoia. */ ++ && rl->when_needed == RELOAD_FOR_INPUT + && (reload_inherited[j] || reload_override_in[j]) + && rl->reg_rtx + && GET_CODE (rl->reg_rtx) == REG +Index: gcc/simplify-rtx.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/simplify-rtx.c,v +retrieving revision 1.172.4.3 +retrieving revision 1.172.4.4 +diff -u -r1.172.4.3 -r1.172.4.4 +--- gcc/simplify-rtx.c 10 Oct 2004 21:53:35 -0000 1.172.4.3 ++++ gcc/simplify-rtx.c 24 Nov 2004 14:20:33 -0000 1.172.4.4 +@@ -1184,6 +1184,7 @@ + } + + if (VECTOR_MODE_P (mode) ++ && code != VEC_CONCAT + && GET_CODE (trueop0) == CONST_VECTOR + && GET_CODE (trueop1) == CONST_VECTOR) + { +Index: gcc/toplev.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/toplev.c,v +retrieving revision 1.863.4.12 +retrieving revision 1.863.4.14 +diff -u -r1.863.4.12 -r1.863.4.14 +--- gcc/toplev.c 26 Jul 2004 14:42:11 -0000 1.863.4.12 ++++ gcc/toplev.c 16 Jan 2005 16:01:19 -0000 1.863.4.14 +@@ -1860,6 +1860,9 @@ + + dw2_output_indirect_constants (); + ++ /* Flush any pending equate directives. */ ++ process_pending_assemble_output_defs (); ++ + if (profile_arc_flag || flag_test_coverage || flag_branch_probabilities) + { + timevar_push (TV_DUMP); +@@ -3656,8 +3659,7 @@ + if ((*targetm.binds_local_p) (current_function_decl)) + { + int pref = cfun->preferred_stack_boundary; +- if (cfun->recursive_call_emit +- && cfun->stack_alignment_needed > cfun->preferred_stack_boundary) ++ if (cfun->stack_alignment_needed > cfun->preferred_stack_boundary) + pref = cfun->stack_alignment_needed; + cgraph_rtl_info (current_function_decl)->preferred_incoming_stack_boundary + = pref; +Index: gcc/tree-inline.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/tree-inline.c,v +retrieving revision 1.90.4.5 +retrieving revision 1.90.4.6 +diff -u -r1.90.4.5 -r1.90.4.6 +--- gcc/tree-inline.c 7 Oct 2004 16:51:14 -0000 1.90.4.5 ++++ gcc/tree-inline.c 15 Dec 2004 19:17:46 -0000 1.90.4.6 +@@ -1548,8 +1548,11 @@ + splay_tree_delete (id->decl_map); + id->decl_map = st; + +- /* The new expression has side-effects if the old one did. */ +- TREE_SIDE_EFFECTS (expr) = TREE_SIDE_EFFECTS (t); ++ /* Although, from the semantic viewpoint, the new expression has ++ side-effects only if the old one did, it is not possible, from ++ the technical viewpoint, to evaluate the body of a function ++ multiple times without serious havoc. */ ++ TREE_SIDE_EFFECTS (expr) = 1; + + /* Replace the call by the inlined body. Wrap it in an + EXPR_WITH_FILE_LOCATION so that we'll get debugging line notes +Index: gcc/tree.h +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/tree.h,v +retrieving revision 1.458.2.5 +retrieving revision 1.458.2.6 +diff -u -r1.458.2.5 -r1.458.2.6 +--- gcc/tree.h 23 Aug 2004 18:02:42 -0000 1.458.2.5 ++++ gcc/tree.h 16 Jan 2005 16:01:19 -0000 1.458.2.6 +@@ -2982,6 +2982,7 @@ + extern void resolve_unique_section (tree, int, int); + extern void mark_referenced (tree); + extern void notice_global_symbol (tree); ++extern void process_pending_assemble_output_defs (void); + + /* In stmt.c */ + extern void emit_nop (void); +Index: gcc/unwind-dw2.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/unwind-dw2.c,v +retrieving revision 1.40.6.2 +retrieving revision 1.40.6.4 +diff -u -r1.40.6.2 -r1.40.6.4 +--- gcc/unwind-dw2.c 30 Sep 2004 17:45:47 -0000 1.40.6.2 ++++ gcc/unwind-dw2.c 29 Jan 2005 11:23:09 -0000 1.40.6.4 +@@ -1,5 +1,5 @@ + /* DWARF2 exception handling and frame unwind runtime interface routines. +- Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 ++ Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 + Free Software Foundation, Inc. + + This file is part of GCC. +@@ -682,6 +682,10 @@ + case DW_OP_mul: + case DW_OP_or: + case DW_OP_plus: ++ case DW_OP_shl: ++ case DW_OP_shr: ++ case DW_OP_shra: ++ case DW_OP_xor: + case DW_OP_le: + case DW_OP_ge: + case DW_OP_eq: +@@ -1375,7 +1379,6 @@ + alias (_Unwind_Backtrace); + alias (_Unwind_DeleteException); + alias (_Unwind_FindEnclosingFunction); +-alias (_Unwind_FindTableEntry); + alias (_Unwind_ForcedUnwind); + alias (_Unwind_GetDataRelBase); + alias (_Unwind_GetTextRelBase); +Index: gcc/varasm.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/varasm.c,v +retrieving revision 1.405.2.4 +retrieving revision 1.405.2.6 +diff -u -r1.405.2.4 -r1.405.2.6 +--- gcc/varasm.c 31 Oct 2004 09:10:03 -0000 1.405.2.4 ++++ gcc/varasm.c 18 Jan 2005 00:33:12 -0000 1.405.2.6 +@@ -4386,20 +4386,70 @@ + (*targetm.asm_out.globalize_label) (asm_out_file, name); + } + ++/* Some targets do not allow a forward or undefined reference in a ++ ASM_OUTPUT_DEF. Thus, a mechanism is needed to defer the output ++ of this assembler code. The output_def_pair struct holds the ++ declaration and target for a deferred output define. */ ++struct output_def_pair GTY(()) ++{ ++ tree decl; ++ tree target; ++}; ++typedef struct output_def_pair *output_def_pair; ++ ++/* Variable array of deferred output defines. */ ++static GTY ((param_is (struct output_def_pair))) varray_type output_defs; ++ ++#ifdef ASM_OUTPUT_DEF ++/* Output the assembler code for a define (equate) using ASM_OUTPUT_DEF ++ or ASM_OUTPUT_DEF_FROM_DECLS. The function defines the symbol whose ++ tree node is DECL to have the value of the tree node TARGET. */ ++ ++static void ++assemble_output_def (tree decl ATTRIBUTE_UNUSED, tree target ATTRIBUTE_UNUSED) ++{ ++#ifdef ASM_OUTPUT_DEF_FROM_DECLS ++ ASM_OUTPUT_DEF_FROM_DECLS (asm_out_file, decl, target); ++#else ++ ASM_OUTPUT_DEF (asm_out_file, ++ IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)), ++ IDENTIFIER_POINTER (target)); ++#endif ++} ++#endif ++ ++/* Process the varray of pending assembler defines. */ ++ ++void ++process_pending_assemble_output_defs (void) ++{ ++#ifdef ASM_OUTPUT_DEF ++ size_t i; ++ output_def_pair p; ++ ++ if (!output_defs) ++ return; ++ ++ for (i = 0; i < VARRAY_ACTIVE_SIZE (output_defs); i++) ++ { ++ p = VARRAY_GENERIC_PTR (output_defs, i); ++ assemble_output_def (p->decl, p->target); ++ } ++ ++ output_defs = NULL; ++#endif ++} ++ + /* Emit an assembler directive to make the symbol for DECL an alias to + the symbol for TARGET. */ + + void + assemble_alias (tree decl, tree target ATTRIBUTE_UNUSED) + { +- const char *name; +- + /* We must force creation of DECL_RTL for debug info generation, even though + we don't use it here. */ + make_decl_rtl (decl, NULL); + +- name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)); +- + #ifdef ASM_OUTPUT_DEF + /* Make name accessible from other files, if appropriate. */ + +@@ -4409,16 +4459,28 @@ + maybe_assemble_visibility (decl); + } + +-#ifdef ASM_OUTPUT_DEF_FROM_DECLS +- ASM_OUTPUT_DEF_FROM_DECLS (asm_out_file, decl, target); +-#else +- ASM_OUTPUT_DEF (asm_out_file, name, IDENTIFIER_POINTER (target)); +-#endif ++ if (TARGET_DEFERRED_OUTPUT_DEFS (decl, target)) ++ { ++ output_def_pair p; ++ ++ if (!output_defs) ++ VARRAY_GENERIC_PTR_INIT (output_defs, 10, "output defs"); ++ ++ p = ggc_alloc (sizeof (struct output_def_pair)); ++ p->decl = decl; ++ p->target = target; ++ VARRAY_PUSH_GENERIC_PTR (output_defs, p); ++ } ++ else ++ assemble_output_def (decl, target); + #else /* !ASM_OUTPUT_DEF */ + #if defined (ASM_OUTPUT_WEAK_ALIAS) || defined (ASM_WEAKEN_DECL) + if (DECL_WEAK (decl)) + { ++ const char *name; + tree *p, t; ++ ++ name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)); + #ifdef ASM_WEAKEN_DECL + ASM_WEAKEN_DECL (asm_out_file, decl, name, IDENTIFIER_POINTER (target)); + #else +Index: gcc/version.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/version.c,v +retrieving revision 1.2212.2.292 +retrieving revision 1.2212.2.383 +diff -u -r1.2212.2.292 -r1.2212.2.383 +--- gcc/version.c 5 Nov 2004 03:35:02 -0000 1.2212.2.292 ++++ gcc/version.c 9 Feb 2005 00:16:06 -0000 1.2212.2.383 +@@ -5,7 +5,7 @@ + please modify this string to indicate that, e.g. by putting your + organization's name in parentheses at the end of the string. */ + +-const char version_string[] = "3.4.3"; ++const char version_string[] = "3.4.4 20050209 (prerelease)"; + + /* This is the location of the online document giving instructions for + reporting bugs. If you distribute a modified version of GCC, +Index: gcc/ada/ChangeLog +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/ada/ChangeLog,v +retrieving revision 1.428.2.15 +retrieving revision 1.428.2.16 +diff -u -r1.428.2.15 -r1.428.2.16 +--- gcc/ada/ChangeLog 5 Nov 2004 03:33:30 -0000 1.428.2.15 ++++ gcc/ada/ChangeLog 18 Jan 2005 22:05:05 -0000 1.428.2.16 +@@ -1,3 +1,9 @@ ++2005-01-18 Jakub Jelinek ++ ++ PR ada/13470 ++ * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is ++ set to the new string. ++ + 2004-11-04 Release Manager + + * GCC 3.4.3 released. +Index: gcc/ada/a-stunau.adb +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/ada/a-stunau.adb,v +retrieving revision 1.5 +retrieving revision 1.5.10.1 +diff -u -r1.5 -r1.5.10.1 +--- gcc/ada/a-stunau.adb 21 Oct 2003 13:41:54 -0000 1.5 ++++ gcc/ada/a-stunau.adb 18 Jan 2005 22:05:06 -0000 1.5.10.1 +@@ -48,16 +48,18 @@ + + U_Ptr : constant Unbounded_String_Access := U'Unrestricted_Access; + -- Unbounded_String is a controlled type which is always passed +- -- by copy it is always safe to take the pointer to such object +- -- here. This pointer is used to set the U.Reference value which +- -- would not be possible otherwise as U is read-only. ++ -- by reference. It is always safe to take the pointer to such ++ -- object here. This pointer is used to set the U.Reference ++ -- value which would not be possible otherwise as U is read-only. + + Old : String_Access := U.Reference; ++ Ret : String_Access; + + begin +- U_Ptr.Reference := new String'(U.Reference (1 .. U.Last)); ++ Ret := new String'(U.Reference (1 .. U.Last)); ++ U_Ptr.Reference := Ret; + Free (Old); +- return U.Reference; ++ return Ret; + end; + end if; + end Get_String; +Index: gcc/config/freebsd-spec.h +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/freebsd-spec.h,v +retrieving revision 1.6.10.1 +retrieving revision 1.6.10.3 +diff -u -r1.6.10.1 -r1.6.10.3 +--- gcc/config/freebsd-spec.h 2 Mar 2004 22:34:55 -0000 1.6.10.1 ++++ gcc/config/freebsd-spec.h 14 Jan 2005 05:00:32 -0000 1.6.10.3 +@@ -107,12 +107,12 @@ + 500016, select the appropriate libc, depending on whether we're + doing profiling or need threads support. At __FreeBSD_version + 500016 and later, when threads support is requested include both +- -lc and -lc_r instead of only -lc_r. To make matters interesting, +- we can't actually use __FreeBSD_version provided by +- directly since it breaks cross-compiling. As a final twist, make +- it a hard error if -pthread is provided on the command line and gcc +- was configured with --disable-threads (this will help avoid bug +- reports from users complaining about threading when they ++ -lc and the threading lib instead of only -lc_r. To make matters ++ interesting, we can't actually use __FreeBSD_version provided by ++ directly since it breaks cross-compiling. As a final ++ twist, make it a hard error if -pthread is provided on the command ++ line and gcc was configured with --disable-threads (this will help ++ avoid bug reports from users complaining about threading when they + misconfigured the gcc bootstrap but are later consulting FreeBSD + manual pages that refer to the mythical -pthread option). */ + +@@ -129,13 +129,7 @@ + %{pg: -lc_p} \ + }" + #else +-#if FBSD_MAJOR >= 5 +-#define FBSD_LIB_SPEC " \ +- %{!shared: \ +- %{!pg: %{pthread:-lc_r} -lc} \ +- %{pg: %{pthread:-lc_r_p} -lc_p} \ +- }" +-#else ++#if FBSD_MAJOR < 5 + #define FBSD_LIB_SPEC " \ + %{!shared: \ + %{!pg: \ +@@ -145,6 +139,12 @@ + %{!pthread:-lc_p} \ + %{pthread:-lc_r_p}} \ + }" ++#else ++#define FBSD_LIB_SPEC " \ ++ %{!shared: \ ++ %{!pg: %{pthread:-lpthread} -lc} \ ++ %{pg: %{pthread:-lpthread_p} -lc_p} \ ++ }" + #endif + #endif + +Index: gcc/config/t-libunwind-elf +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/t-libunwind-elf,v +retrieving revision 1.1.4.2 +retrieving revision 1.1.4.3 +diff -u -r1.1.4.2 -r1.1.4.3 +--- gcc/config/t-libunwind-elf 18 Oct 2004 16:00:47 -0000 1.1.4.2 ++++ gcc/config/t-libunwind-elf 16 Dec 2004 19:16:21 -0000 1.1.4.3 +@@ -14,8 +14,7 @@ + @multilib_flags@ $(SHLIB_OBJS) -lc && \ + rm -f $(SHLIB_SOLINK) && \ + if [ -f $(SHLIBUNWIND_NAME) ]; then \ +- mv -f $(SHLIBUNWIND_NAME) \ +- $(SHLIBUNWIND_NAME).`basename $(STAGE_PREFIX)`; \ ++ mv -f $(SHLIBUNWIND_NAME) $(SHLIBUNWIND_NAME).backup; \ + else true; fi && \ + mv $(SHLIBUNWIND_NAME).tmp $(SHLIBUNWIND_NAME) && \ + $(LN_S) $(SHLIBUNWIND_NAME) $(SHLIB_SOLINK) +Index: gcc/config/t-slibgcc-darwin +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/t-slibgcc-darwin,v +retrieving revision 1.2.10.1 +retrieving revision 1.2.10.2 +diff -u -r1.2.10.1 -r1.2.10.2 +--- gcc/config/t-slibgcc-darwin 18 Oct 2004 16:00:47 -0000 1.2.10.1 ++++ gcc/config/t-slibgcc-darwin 16 Dec 2004 19:16:21 -0000 1.2.10.2 +@@ -17,7 +17,7 @@ + @multilib_flags@ $(SHLIB_OBJS) -lc && \ + rm -f $(SHLIB_SOLINK) && \ + if [ -f $(SHLIB_NAME) ]; then \ +- mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \ ++ mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \ + else true; fi && \ + mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \ + $(LN_S) $(SHLIB_NAME) $(SHLIB_SOLINK) +Index: gcc/config/t-slibgcc-elf-ver +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/t-slibgcc-elf-ver,v +retrieving revision 1.5.20.2 +retrieving revision 1.5.20.3 +diff -u -r1.5.20.2 -r1.5.20.3 +--- gcc/config/t-slibgcc-elf-ver 18 Oct 2004 16:00:47 -0000 1.5.20.2 ++++ gcc/config/t-slibgcc-elf-ver 16 Dec 2004 19:16:21 -0000 1.5.20.3 +@@ -17,7 +17,7 @@ + -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) $(SHLIB_LC) && \ + rm -f $(SHLIB_SOLINK) && \ + if [ -f $(SHLIB_NAME) ]; then \ +- mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \ ++ mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \ + else true; fi && \ + mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \ + $(LN_S) $(SHLIB_NAME) $(SHLIB_SOLINK) +Index: gcc/config/t-slibgcc-sld +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/t-slibgcc-sld,v +retrieving revision 1.4.20.1 +retrieving revision 1.4.20.2 +diff -u -r1.4.20.1 -r1.4.20.2 +--- gcc/config/t-slibgcc-sld 18 Oct 2004 16:00:47 -0000 1.4.20.1 ++++ gcc/config/t-slibgcc-sld 16 Dec 2004 19:16:21 -0000 1.4.20.2 +@@ -14,7 +14,7 @@ + @multilib_flags@ $(SHLIB_OBJS) -lc && \ + rm -f $(SHLIB_SOLINK) && \ + if [ -f $(SHLIB_NAME) ]; then \ +- mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \ ++ mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \ + else true; fi && \ + mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \ + $(LN_S) $(SHLIB_NAME) $(SHLIB_SOLINK) +Index: gcc/config/alpha/alpha.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/alpha/alpha.c,v +retrieving revision 1.342.4.12 +retrieving revision 1.342.4.13 +diff -u -r1.342.4.12 -r1.342.4.13 +--- gcc/config/alpha/alpha.c 30 Sep 2004 17:45:48 -0000 1.342.4.12 ++++ gcc/config/alpha/alpha.c 12 Nov 2004 09:11:33 -0000 1.342.4.13 +@@ -3197,7 +3197,13 @@ + /* If the constants doesn't fit into an immediate, but can + be generated by lda/ldah, we adjust the argument and + compare against zero, so we can use beq/bne directly. */ +- else if (GET_CODE (op1) == CONST_INT && (code == EQ || code == NE)) ++ /* ??? Don't do this when comparing against symbols, otherwise ++ we'll reduce (&x == 0x1234) to (&x-0x1234 == 0), which will ++ be declared false out of hand (at least for non-weak). */ ++ else if (GET_CODE (op1) == CONST_INT ++ && (code == EQ || code == NE) ++ && !(symbolic_operand (op0, VOIDmode) ++ || (GET_CODE (op0) == REG && REG_POINTER (op0)))) + { + HOST_WIDE_INT v = INTVAL (op1), n = -v; + +Index: gcc/config/alpha/alpha.md +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/alpha/alpha.md,v +retrieving revision 1.215.6.5 +retrieving revision 1.215.6.6 +diff -u -r1.215.6.5 -r1.215.6.6 +--- gcc/config/alpha/alpha.md 26 Aug 2004 10:02:22 -0000 1.215.6.5 ++++ gcc/config/alpha/alpha.md 5 Dec 2004 19:59:59 -0000 1.215.6.6 +@@ -77,6 +77,7 @@ + (UNSPECV_PLDGP2 11) ; prologue ldgp + (UNSPECV_SET_TP 12) + (UNSPECV_RPCC 13) ++ (UNSPECV_SETJMPR_ER 14) ; builtin_setjmp_receiver fragment + ]) + + ;; Where necessary, the suffixes _le and _be are used to distinguish between +@@ -6900,70 +6901,44 @@ + "jmp $31,(%0),0" + [(set_attr "type" "ibr")]) + +-(define_insn "*builtin_setjmp_receiver_er_sl_1" +- [(unspec_volatile [(label_ref (match_operand 0 "" ""))] UNSPECV_SETJMPR)] +- "TARGET_EXPLICIT_RELOCS && TARGET_ABI_OSF && TARGET_AS_CAN_SUBTRACT_LABELS" +- "lda $27,$LSJ%=-%l0($27)\n$LSJ%=:") +- +-(define_insn "*builtin_setjmp_receiver_er_1" +- [(unspec_volatile [(label_ref (match_operand 0 "" ""))] UNSPECV_SETJMPR)] +- "TARGET_EXPLICIT_RELOCS && TARGET_ABI_OSF" +- "br $27,$LSJ%=\n$LSJ%=:" +- [(set_attr "type" "ibr")]) +- +-(define_split +- [(unspec_volatile [(label_ref (match_operand 0 "" ""))] UNSPECV_SETJMPR)] +- "TARGET_EXPLICIT_RELOCS && TARGET_ABI_OSF +- && prev_nonnote_insn (insn) == operands[0]" +- [(const_int 0)] +- " +-{ +- emit_note (NOTE_INSN_DELETED); +- DONE; +-}") +- +-(define_insn "*builtin_setjmp_receiver_1" ++(define_expand "builtin_setjmp_receiver" + [(unspec_volatile [(label_ref (match_operand 0 "" ""))] UNSPECV_SETJMPR)] + "TARGET_ABI_OSF" +- "br $27,$LSJ%=\n$LSJ%=:\;ldgp $29,0($27)" +- [(set_attr "length" "12") +- (set_attr "type" "multi")]) ++ "") + +-(define_expand "builtin_setjmp_receiver_er" +- [(unspec_volatile [(label_ref (match_operand 0 "" ""))] UNSPECV_SETJMPR) ++(define_insn_and_split "*builtin_setjmp_receiver_1" ++ [(unspec_volatile [(match_operand 0 "" "")] UNSPECV_SETJMPR)] ++ "TARGET_ABI_OSF" ++{ ++ if (TARGET_EXPLICIT_RELOCS) ++ return "#"; ++ else ++ return "br $27,$LSJ%=\n$LSJ%=:\;ldgp $29,0($27)"; ++} ++ "&& TARGET_EXPLICIT_RELOCS && reload_completed" ++ [(unspec_volatile [(match_dup 0)] UNSPECV_SETJMPR_ER) + (set (match_dup 1) + (unspec_volatile:DI [(match_dup 2) (match_dup 3)] UNSPECV_LDGP1)) + (set (match_dup 1) + (unspec:DI [(match_dup 1) (match_dup 3)] UNSPEC_LDGP2))] +- "" + { + operands[1] = pic_offset_table_rtx; + operands[2] = gen_rtx_REG (Pmode, 27); + operands[3] = GEN_INT (alpha_next_sequence_number++); +-}) ++} ++ [(set_attr "length" "12") ++ (set_attr "type" "multi")]) + +-(define_expand "builtin_setjmp_receiver" +- [(unspec_volatile [(label_ref (match_operand 0 "" ""))] UNSPECV_SETJMPR)] +- "TARGET_ABI_OSF" +-{ +- if (TARGET_EXPLICIT_RELOCS) +- { +- emit_insn (gen_builtin_setjmp_receiver_er (operands[0])); +- DONE; +- } +-}) ++(define_insn "*builtin_setjmp_receiver_er_sl_1" ++ [(unspec_volatile [(match_operand 0 "" "")] UNSPECV_SETJMPR_ER)] ++ "TARGET_ABI_OSF && TARGET_EXPLICIT_RELOCS && TARGET_AS_CAN_SUBTRACT_LABELS" ++ "lda $27,$LSJ%=-%l0($27)\n$LSJ%=:") + +-(define_expand "exception_receiver_er" +- [(set (match_dup 0) +- (unspec_volatile:DI [(match_dup 1) (match_dup 2)] UNSPECV_LDGP1)) +- (set (match_dup 0) +- (unspec:DI [(match_dup 0) (match_dup 2)] UNSPEC_LDGP2))] +- "" +-{ +- operands[0] = pic_offset_table_rtx; +- operands[1] = gen_rtx_REG (Pmode, 26); +- operands[2] = GEN_INT (alpha_next_sequence_number++); +-}) ++(define_insn "*builtin_setjmp_receiver_er_1" ++ [(unspec_volatile [(match_operand 0 "" "")] UNSPECV_SETJMPR_ER)] ++ "TARGET_ABI_OSF && TARGET_EXPLICIT_RELOCS" ++ "br $27,$LSJ%=\n$LSJ%=:" ++ [(set_attr "type" "ibr")]) + + (define_expand "exception_receiver" + [(unspec_volatile [(match_dup 0)] UNSPECV_EHR)] +@@ -6971,28 +6946,38 @@ + { + if (TARGET_LD_BUGGY_LDGP) + operands[0] = alpha_gp_save_rtx (); +- else if (TARGET_EXPLICIT_RELOCS) +- { +- emit_insn (gen_exception_receiver_er ()); +- DONE; +- } + else + operands[0] = const0_rtx; + }) + +-(define_insn "*exception_receiver_1" +- [(unspec_volatile [(const_int 0)] UNSPECV_EHR)] +- "! TARGET_LD_BUGGY_LDGP" +- "ldgp $29,0($26)" +- [(set_attr "length" "8") +- (set_attr "type" "multi")]) +- + (define_insn "*exception_receiver_2" + [(unspec_volatile [(match_operand:DI 0 "memory_operand" "m")] UNSPECV_EHR)] +- "TARGET_LD_BUGGY_LDGP" ++ "TARGET_ABI_OSF && TARGET_LD_BUGGY_LDGP" + "ldq $29,%0" + [(set_attr "type" "ild")]) + ++(define_insn_and_split "*exception_receiver_1" ++ [(unspec_volatile [(const_int 0)] UNSPECV_EHR)] ++ "TARGET_ABI_OSF" ++{ ++ if (TARGET_EXPLICIT_RELOCS) ++ return "ldah $29,0($26)\t\t!gpdisp!%*\;lda $29,0($29)\t\t!gpdisp!%*"; ++ else ++ return "ldgp $29,0($26)"; ++} ++ "&& TARGET_EXPLICIT_RELOCS && reload_completed" ++ [(set (match_dup 0) ++ (unspec_volatile:DI [(match_dup 1) (match_dup 2)] UNSPECV_LDGP1)) ++ (set (match_dup 0) ++ (unspec:DI [(match_dup 0) (match_dup 2)] UNSPEC_LDGP2))] ++{ ++ operands[0] = pic_offset_table_rtx; ++ operands[1] = gen_rtx_REG (Pmode, 26); ++ operands[2] = GEN_INT (alpha_next_sequence_number++); ++} ++ [(set_attr "length" "8") ++ (set_attr "type" "multi")]) ++ + (define_expand "nonlocal_goto_receiver" + [(unspec_volatile [(const_int 0)] UNSPECV_BLOCKAGE) + (set (reg:DI 27) (mem:DI (reg:DI 29))) +Index: gcc/config/alpha/t-osf4 +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/alpha/t-osf4,v +retrieving revision 1.7.10.1 +retrieving revision 1.7.10.2 +diff -u -r1.7.10.1 -r1.7.10.2 +--- gcc/config/alpha/t-osf4 18 Oct 2004 16:00:48 -0000 1.7.10.1 ++++ gcc/config/alpha/t-osf4 16 Dec 2004 19:16:21 -0000 1.7.10.2 +@@ -19,7 +19,7 @@ + -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) -lc && \ + rm -f $(SHLIB_SONAME) && \ + if [ -f $(SHLIB_NAME) ]; then \ +- mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \ ++ mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \ + else true; fi && \ + mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \ + $(LN_S) $(SHLIB_NAME) $(SHLIB_SONAME) +Index: gcc/config/arc/lib1funcs.asm +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/arc/lib1funcs.asm,v +retrieving revision 1.5.10.2 +retrieving revision 1.5.10.3 +diff -u -r1.5.10.2 -r1.5.10.3 +--- gcc/config/arc/lib1funcs.asm 21 Oct 2004 21:54:06 -0000 1.5.10.2 ++++ gcc/config/arc/lib1funcs.asm 17 Nov 2004 12:29:16 -0000 1.5.10.3 +@@ -89,7 +89,7 @@ + nop + beq.nd .Ldone + and.f 0,r0,1 ; if (a & 1) +- cmp r0,0 ++ sub.f 0,r0,0 + nop + beq .Ldontadd + add.f r4,r4,r1 ; r += b +Index: gcc/config/arm/arm-protos.h +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/arm/arm-protos.h,v +retrieving revision 1.61 +retrieving revision 1.61.4.1 +diff -u -r1.61 -r1.61.4.1 +--- gcc/config/arm/arm-protos.h 20 Nov 2003 11:44:18 -0000 1.61 ++++ gcc/config/arm/arm-protos.h 1 Feb 2005 15:07:02 -0000 1.61.4.1 +@@ -1,5 +1,6 @@ + /* Prototypes for exported functions defined in arm.c and pe.c +- Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2000, 2001, 2002, 2003, 2005 ++ Free Software Foundation, Inc. + Contributed by Richard Earnshaw (rearnsha@arm.com) + Minor hacks by Nick Clifton (nickc@cygnus.com) + +@@ -138,6 +139,7 @@ + extern int arm_is_longcall_p (rtx, int, int); + extern int arm_emit_vector_const (FILE *, rtx); + extern const char * arm_output_load_gr (rtx *); ++extern int arm_eliminable_register (rtx); + + #if defined TREE_CODE + extern rtx arm_function_arg (CUMULATIVE_ARGS *, enum machine_mode, tree, int); +Index: gcc/config/arm/arm.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/arm/arm.c,v +retrieving revision 1.317.4.8 +retrieving revision 1.317.4.9 +diff -u -r1.317.4.8 -r1.317.4.9 +--- gcc/config/arm/arm.c 29 Apr 2004 19:52:41 -0000 1.317.4.8 ++++ gcc/config/arm/arm.c 1 Feb 2005 15:07:02 -0000 1.317.4.9 +@@ -1,6 +1,6 @@ + /* Output routines for GCC for ARM. + Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +- 2002, 2003, 2004 Free Software Foundation, Inc. ++ 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl) + and Martin Simmons (@harleqn.co.uk). + More major hacks by Richard Earnshaw (rearnsha@arm.com). +@@ -4056,6 +4056,16 @@ + && INTVAL (op) < 64); + } + ++/* Return true if X is a register that will be eliminated later on. */ ++int ++arm_eliminable_register (rtx x) ++{ ++ return REG_P (x) && (REGNO (x) == FRAME_POINTER_REGNUM ++ || REGNO (x) == ARG_POINTER_REGNUM ++ || (REGNO (x) >= FIRST_VIRTUAL_REGISTER ++ && REGNO (x) <= LAST_VIRTUAL_REGISTER)); ++} ++ + /* Returns TRUE if INSN is an "LDR REG, ADDR" instruction. + Use by the Cirrus Maverick code which has to workaround + a hardware bug triggered by such instructions. */ +@@ -4569,33 +4579,42 @@ + || (GET_CODE (XEXP (b, 0)) == PLUS + && GET_CODE (XEXP (XEXP (b, 0), 1)) == CONST_INT))) + { +- int val0 = 0, val1 = 0; +- int reg0, reg1; +- ++ HOST_WIDE_INT val0 = 0, val1 = 0; ++ rtx reg0, reg1; ++ int val_diff; ++ + if (GET_CODE (XEXP (a, 0)) == PLUS) + { +- reg0 = REGNO (XEXP (XEXP (a, 0), 0)); ++ reg0 = XEXP (XEXP (a, 0), 0); + val0 = INTVAL (XEXP (XEXP (a, 0), 1)); + } + else +- reg0 = REGNO (XEXP (a, 0)); ++ reg0 = XEXP (a, 0); + + if (GET_CODE (XEXP (b, 0)) == PLUS) + { +- reg1 = REGNO (XEXP (XEXP (b, 0), 0)); ++ reg1 = XEXP (XEXP (b, 0), 0); + val1 = INTVAL (XEXP (XEXP (b, 0), 1)); + } + else +- reg1 = REGNO (XEXP (b, 0)); ++ reg1 = XEXP (b, 0); + + /* Don't accept any offset that will require multiple + instructions to handle, since this would cause the + arith_adjacentmem pattern to output an overlong sequence. */ + if (!const_ok_for_op (PLUS, val0) || !const_ok_for_op (PLUS, val1)) + return 0; +- +- return (reg0 == reg1) && ((val1 - val0) == 4 || (val0 - val1) == 4); ++ ++ /* Don't allow an eliminable register: register elimination can make ++ the offset too large. */ ++ if (arm_eliminable_register (reg0)) ++ return 0; ++ ++ val_diff = val1 - val0; ++ return ((REGNO (reg0) == REGNO (reg1)) ++ && (val_diff == 4 || val_diff == -4)); + } ++ + return 0; + } + +@@ -7301,7 +7320,6 @@ + return ""; + } + +- + /* Output a move from arm registers to an fpa registers. + OPERANDS[0] is an fpa register. + OPERANDS[1] is the first registers of an arm register pair. */ +Index: gcc/config/arm/arm.md +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/arm/arm.md,v +retrieving revision 1.154.4.2 +retrieving revision 1.154.4.3 +diff -u -r1.154.4.2 -r1.154.4.3 +--- gcc/config/arm/arm.md 25 Aug 2004 15:46:19 -0000 1.154.4.2 ++++ gcc/config/arm/arm.md 25 Jan 2005 12:50:34 -0000 1.154.4.3 +@@ -7130,8 +7130,8 @@ + (const_string "no"))) + (set (attr "length") + (if_then_else +- (and (ge (minus (match_dup 0) (pc)) (const_int -2048)) +- (le (minus (match_dup 0) (pc)) (const_int 2044))) ++ (and (ge (minus (match_dup 0) (pc)) (const_int -2044)) ++ (le (minus (match_dup 0) (pc)) (const_int 2048))) + (const_int 2) + (const_int 4)))] + ) +Index: gcc/config/arm/t-netbsd +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/arm/t-netbsd,v +retrieving revision 1.7.10.1 +retrieving revision 1.7.10.2 +diff -u -r1.7.10.1 -r1.7.10.2 +--- gcc/config/arm/t-netbsd 18 Oct 2004 16:00:49 -0000 1.7.10.1 ++++ gcc/config/arm/t-netbsd 16 Dec 2004 19:16:21 -0000 1.7.10.2 +@@ -14,7 +14,7 @@ + -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) -lc && \ + rm -f $(SHLIB_SONAME) && \ + if [ -f $(SHLIB_NAME) ]; then \ +- mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \ ++ mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \ + else true; fi && \ + mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \ + $(LN_S) $(SHLIB_NAME) $(SHLIB_SONAME) +Index: gcc/config/arm/t-rtems +=================================================================== +RCS file: gcc/config/arm/t-rtems +diff -N gcc/config/arm/t-rtems +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/config/arm/t-rtems 23 Nov 2004 05:30:32 -0000 1.1 +@@ -0,0 +1,10 @@ ++# Custom rtems multilibs ++ ++MULTILIB_OPTIONS = marm/mthumb ++MULTILIB_DIRNAMES = arm thumb ++MULTILIB_EXCEPTIONS = ++MULTILIB_MATCHES = marm=mno-thumb ++ ++MULTILIB_OPTIONS += msoft-float/mhard-float ++MULTILIB_DIRNAMES += soft fpu ++MULTILIB_EXCEPTIONS += *mthumb/*mhard-float* +Index: gcc/config/avr/avr.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/avr/avr.c,v +retrieving revision 1.108.4.3 +retrieving revision 1.108.4.4 +diff -u -r1.108.4.3 -r1.108.4.4 +--- gcc/config/avr/avr.c 28 Sep 2004 01:13:55 -0000 1.108.4.3 ++++ gcc/config/avr/avr.c 27 Jan 2005 22:35:55 -0000 1.108.4.4 +@@ -1,5 +1,5 @@ + /* Subroutines for insn-output.c for ATMEL AVR micro controllers +- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 ++ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005 + Free Software Foundation, Inc. + Contributed by Denis Chertykov (denisc@overta.ru) + +@@ -1208,6 +1208,7 @@ + rtx x = XEXP (src, 1); + + if (GET_CODE (x) == CONST_INT ++ && INTVAL (x) > 0 + && INTVAL (x) != 6) + { + cc_status.value1 = SET_DEST (set); +@@ -2728,6 +2729,13 @@ + int count = INTVAL (operands[2]); + int max_len = 10; /* If larger than this, always use a loop. */ + ++ if (count <= 0) ++ { ++ if (len) ++ *len = 0; ++ return; ++ } ++ + if (count < 8 && !scratch) + use_zero_reg = 1; + +@@ -2850,6 +2858,9 @@ + switch (INTVAL (operands[2])) + { + default: ++ if (INTVAL (operands[2]) < 8) ++ break; ++ + *len = 1; + return AS1 (clr,%0); + +@@ -2946,6 +2957,14 @@ + + switch (INTVAL (operands[2])) + { ++ default: ++ if (INTVAL (operands[2]) < 16) ++ break; ++ ++ *len = 2; ++ return (AS1 (clr,%B0) CR_TAB ++ AS1 (clr,%A0)); ++ + case 4: + if (optimize_size && scratch) + break; /* 5 */ +@@ -3197,6 +3216,20 @@ + + switch (INTVAL (operands[2])) + { ++ default: ++ if (INTVAL (operands[2]) < 32) ++ break; ++ ++ if (AVR_ENHANCED) ++ return *len = 3, (AS1 (clr,%D0) CR_TAB ++ AS1 (clr,%C0) CR_TAB ++ AS2 (movw,%A0,%C0)); ++ *len = 4; ++ return (AS1 (clr,%D0) CR_TAB ++ AS1 (clr,%C0) CR_TAB ++ AS1 (clr,%B0) CR_TAB ++ AS1 (clr,%A0)); ++ + case 8: + { + int reg0 = true_regnum (operands[0]); +@@ -3335,6 +3368,11 @@ + AS2 (bld,%0,0)); + + default: ++ if (INTVAL (operands[2]) < 8) ++ break; ++ ++ /* fall through */ ++ + case 7: + *len = 2; + return (AS1 (lsl,%0) CR_TAB +@@ -3498,6 +3536,12 @@ + AS2 (mov,%B0,%A0) CR_TAB + AS1 (rol,%A0)); + ++ default: ++ if (INTVAL (operands[2]) < 16) ++ break; ++ ++ /* fall through */ ++ + case 15: + return *len = 3, (AS1 (lsl,%B0) CR_TAB + AS2 (sbc,%A0,%A0) CR_TAB +@@ -3605,6 +3649,12 @@ + AS2 (mov,%B0,%D0) CR_TAB + AS2 (mov,%C0,%D0)); + ++ default: ++ if (INTVAL (operands[2]) < 32) ++ break; ++ ++ /* fall through */ ++ + case 31: + if (AVR_ENHANCED) + return *len = 4, (AS1 (lsl,%D0) CR_TAB +@@ -3643,6 +3693,9 @@ + switch (INTVAL (operands[2])) + { + default: ++ if (INTVAL (operands[2]) < 8) ++ break; ++ + *len = 1; + return AS1 (clr,%0); + +@@ -3737,6 +3790,14 @@ + + switch (INTVAL (operands[2])) + { ++ default: ++ if (INTVAL (operands[2]) < 16) ++ break; ++ ++ *len = 2; ++ return (AS1 (clr,%B0) CR_TAB ++ AS1 (clr,%A0)); ++ + case 4: + if (optimize_size && scratch) + break; /* 5 */ +@@ -3987,6 +4048,20 @@ + + switch (INTVAL (operands[2])) + { ++ default: ++ if (INTVAL (operands[2]) < 32) ++ break; ++ ++ if (AVR_ENHANCED) ++ return *len = 3, (AS1 (clr,%D0) CR_TAB ++ AS1 (clr,%C0) CR_TAB ++ AS2 (movw,%A0,%C0)); ++ *len = 4; ++ return (AS1 (clr,%D0) CR_TAB ++ AS1 (clr,%C0) CR_TAB ++ AS1 (clr,%B0) CR_TAB ++ AS1 (clr,%A0)); ++ + case 8: + { + int reg0 = true_regnum (operands[0]); +Index: gcc/config/avr/avr.md +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/avr/avr.md,v +retrieving revision 1.42.4.1 +retrieving revision 1.42.4.2 +diff -u -r1.42.4.1 -r1.42.4.2 +--- gcc/config/avr/avr.md 24 Sep 2004 15:20:57 -0000 1.42.4.1 ++++ gcc/config/avr/avr.md 27 Jan 2005 22:35:56 -0000 1.42.4.2 +@@ -1,7 +1,8 @@ + ;; -*- Mode: Scheme -*- + ;; Machine description for GNU compiler, + ;; for ATMEL AVR micro controllers. +-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc. ++;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005 ++;; Free Software Foundation, Inc. + ;; Contributed by Denis Chertykov (denisc@overta.ru) + + ;; This file is part of GCC. +@@ -1166,31 +1167,31 @@ + ;; arithmetic shift left + + (define_insn "ashlqi3" +- [(set (match_operand:QI 0 "register_operand" "=r,r,r,!d,r,r") +- (ashift:QI (match_operand:QI 1 "register_operand" "0,0,0,0,0,0") +- (match_operand:QI 2 "general_operand" "r,P,K,n,n,Qm")))] ++ [(set (match_operand:QI 0 "register_operand" "=r,r,r,r,!d,r,r") ++ (ashift:QI (match_operand:QI 1 "register_operand" "0,0,0,0,0,0,0") ++ (match_operand:QI 2 "general_operand" "r,L,P,K,n,n,Qm")))] + "" + "* return ashlqi3_out (insn, operands, NULL);" +- [(set_attr "length" "5,1,2,4,6,9") +- (set_attr "cc" "clobber,set_czn,set_czn,set_czn,set_czn,clobber")]) ++ [(set_attr "length" "5,0,1,2,4,6,9") ++ (set_attr "cc" "clobber,none,set_czn,set_czn,set_czn,set_czn,clobber")]) + + (define_insn "ashlhi3" +- [(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r,r") +- (ashift:HI (match_operand:HI 1 "register_operand" "0,0,r,0,0,0") +- (match_operand:QI 2 "general_operand" "r,P,O,K,n,Qm")))] ++ [(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r,r,r") ++ (ashift:HI (match_operand:HI 1 "register_operand" "0,0,0,r,0,0,0") ++ (match_operand:QI 2 "general_operand" "r,L,P,O,K,n,Qm")))] + "" + "* return ashlhi3_out (insn, operands, NULL);" +- [(set_attr "length" "6,2,2,4,10,10") +- (set_attr "cc" "clobber,set_n,clobber,set_n,clobber,clobber")]) ++ [(set_attr "length" "6,0,2,2,4,10,10") ++ (set_attr "cc" "clobber,none,set_n,clobber,set_n,clobber,clobber")]) + + (define_insn "ashlsi3" +- [(set (match_operand:SI 0 "register_operand" "=r,r,r,r,r,r") +- (ashift:SI (match_operand:SI 1 "register_operand" "0,0,r,0,0,0") +- (match_operand:QI 2 "general_operand" "r,P,O,K,n,Qm")))] ++ [(set (match_operand:SI 0 "register_operand" "=r,r,r,r,r,r,r") ++ (ashift:SI (match_operand:SI 1 "register_operand" "0,0,0,r,0,0,0") ++ (match_operand:QI 2 "general_operand" "r,L,P,O,K,n,Qm")))] + "" + "* return ashlsi3_out (insn, operands, NULL);" +- [(set_attr "length" "8,4,4,8,10,12") +- (set_attr "cc" "clobber,set_n,clobber,set_n,clobber,clobber")]) ++ [(set_attr "length" "8,0,4,4,8,10,12") ++ (set_attr "cc" "clobber,none,set_n,clobber,set_n,clobber,clobber")]) + + ;; Optimize if a scratch register from LD_REGS happens to be available. + +@@ -1206,14 +1207,14 @@ + FAIL;") + + (define_insn "*ashlhi3_const" +- [(set (match_operand:HI 0 "register_operand" "=r,r,r,r") +- (ashift:HI (match_operand:HI 1 "register_operand" "0,r,0,0") +- (match_operand:QI 2 "const_int_operand" "P,O,K,n"))) +- (clobber (match_scratch:QI 3 "=X,X,X,&d"))] ++ [(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r") ++ (ashift:HI (match_operand:HI 1 "register_operand" "0,0,r,0,0") ++ (match_operand:QI 2 "const_int_operand" "L,P,O,K,n"))) ++ (clobber (match_scratch:QI 3 "=X,X,X,X,&d"))] + "reload_completed" + "* return ashlhi3_out (insn, operands, NULL);" +- [(set_attr "length" "2,2,4,10") +- (set_attr "cc" "set_n,clobber,set_n,clobber")]) ++ [(set_attr "length" "0,2,2,4,10") ++ (set_attr "cc" "none,set_n,clobber,set_n,clobber")]) + + (define_peephole2 + [(match_scratch:QI 3 "d") +@@ -1227,44 +1228,44 @@ + FAIL;") + + (define_insn "*ashlsi3_const" +- [(set (match_operand:SI 0 "register_operand" "=r,r,r") +- (ashift:SI (match_operand:SI 1 "register_operand" "0,r,0") +- (match_operand:QI 2 "const_int_operand" "P,O,n"))) +- (clobber (match_scratch:QI 3 "=X,X,&d"))] ++ [(set (match_operand:SI 0 "register_operand" "=r,r,r,r") ++ (ashift:SI (match_operand:SI 1 "register_operand" "0,0,r,0") ++ (match_operand:QI 2 "const_int_operand" "L,P,O,n"))) ++ (clobber (match_scratch:QI 3 "=X,X,X,&d"))] + "reload_completed" + "* return ashlsi3_out (insn, operands, NULL);" +- [(set_attr "length" "4,4,10") +- (set_attr "cc" "set_n,clobber,clobber")]) ++ [(set_attr "length" "0,4,4,10") ++ (set_attr "cc" "none,set_n,clobber,clobber")]) + + ;; >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> + ;; arithmetic shift right + + (define_insn "ashrqi3" +- [(set (match_operand:QI 0 "register_operand" "=r,r,r,r,r") +- (ashiftrt:QI (match_operand:QI 1 "register_operand" "0,0,0,0,0") +- (match_operand:QI 2 "general_operand" "r,P,K,n,Qm")))] ++ [(set (match_operand:QI 0 "register_operand" "=r,r,r,r,r,r") ++ (ashiftrt:QI (match_operand:QI 1 "register_operand" "0,0,0,0,0,0") ++ (match_operand:QI 2 "general_operand" "r,L,P,K,n,Qm")))] + "" + "* return ashrqi3_out (insn, operands, NULL);" +- [(set_attr "length" "5,1,2,5,9") +- (set_attr "cc" "clobber,clobber,clobber,clobber,clobber")]) ++ [(set_attr "length" "5,0,1,2,5,9") ++ (set_attr "cc" "clobber,none,clobber,clobber,clobber,clobber")]) + + (define_insn "ashrhi3" +- [(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r,r") +- (ashiftrt:HI (match_operand:HI 1 "register_operand" "0,0,r,0,0,0") +- (match_operand:QI 2 "general_operand" "r,P,O,K,n,Qm")))] ++ [(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r,r,r") ++ (ashiftrt:HI (match_operand:HI 1 "register_operand" "0,0,0,r,0,0,0") ++ (match_operand:QI 2 "general_operand" "r,L,P,O,K,n,Qm")))] + "" + "* return ashrhi3_out (insn, operands, NULL);" +- [(set_attr "length" "6,2,4,4,10,10") +- (set_attr "cc" "clobber,clobber,set_n,clobber,clobber,clobber")]) ++ [(set_attr "length" "6,0,2,4,4,10,10") ++ (set_attr "cc" "clobber,none,clobber,set_n,clobber,clobber,clobber")]) + + (define_insn "ashrsi3" +- [(set (match_operand:SI 0 "register_operand" "=r,r,r,r,r,r") +- (ashiftrt:SI (match_operand:SI 1 "register_operand" "0,0,r,0,0,0") +- (match_operand:QI 2 "general_operand" "r,P,O,K,n,Qm")))] ++ [(set (match_operand:SI 0 "register_operand" "=r,r,r,r,r,r,r") ++ (ashiftrt:SI (match_operand:SI 1 "register_operand" "0,0,0,r,0,0,0") ++ (match_operand:QI 2 "general_operand" "r,L,P,O,K,n,Qm")))] + "" + "* return ashrsi3_out (insn, operands, NULL);" +- [(set_attr "length" "8,4,6,8,10,12") +- (set_attr "cc" "clobber,clobber,set_n,clobber,clobber,clobber")]) ++ [(set_attr "length" "8,0,4,6,8,10,12") ++ (set_attr "cc" "clobber,none,clobber,set_n,clobber,clobber,clobber")]) + + ;; Optimize if a scratch register from LD_REGS happens to be available. + +@@ -1280,14 +1281,14 @@ + FAIL;") + + (define_insn "*ashrhi3_const" +- [(set (match_operand:HI 0 "register_operand" "=r,r,r,r") +- (ashiftrt:HI (match_operand:HI 1 "register_operand" "0,r,0,0") +- (match_operand:QI 2 "const_int_operand" "P,O,K,n"))) +- (clobber (match_scratch:QI 3 "=X,X,X,&d"))] ++ [(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r") ++ (ashiftrt:HI (match_operand:HI 1 "register_operand" "0,0,r,0,0") ++ (match_operand:QI 2 "const_int_operand" "L,P,O,K,n"))) ++ (clobber (match_scratch:QI 3 "=X,X,X,X,&d"))] + "reload_completed" + "* return ashrhi3_out (insn, operands, NULL);" +- [(set_attr "length" "2,4,4,10") +- (set_attr "cc" "clobber,set_n,clobber,clobber")]) ++ [(set_attr "length" "0,2,4,4,10") ++ (set_attr "cc" "none,clobber,set_n,clobber,clobber")]) + + (define_peephole2 + [(match_scratch:QI 3 "d") +@@ -1301,44 +1302,44 @@ + FAIL;") + + (define_insn "*ashrsi3_const" +- [(set (match_operand:SI 0 "register_operand" "=r,r,r") +- (ashiftrt:SI (match_operand:SI 1 "register_operand" "0,r,0") +- (match_operand:QI 2 "const_int_operand" "P,O,n"))) +- (clobber (match_scratch:QI 3 "=X,X,&d"))] ++ [(set (match_operand:SI 0 "register_operand" "=r,r,r,r") ++ (ashiftrt:SI (match_operand:SI 1 "register_operand" "0,0,r,0") ++ (match_operand:QI 2 "const_int_operand" "L,P,O,n"))) ++ (clobber (match_scratch:QI 3 "=X,X,X,&d"))] + "reload_completed" + "* return ashrsi3_out (insn, operands, NULL);" +- [(set_attr "length" "4,4,10") +- (set_attr "cc" "clobber,set_n,clobber")]) ++ [(set_attr "length" "0,4,4,10") ++ (set_attr "cc" "none,clobber,set_n,clobber")]) + + ;; >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> + ;; logical shift right + + (define_insn "lshrqi3" +- [(set (match_operand:QI 0 "register_operand" "=r,r,r,!d,r,r") +- (lshiftrt:QI (match_operand:QI 1 "register_operand" "0,0,0,0,0,0") +- (match_operand:QI 2 "general_operand" "r,P,K,n,n,Qm")))] ++ [(set (match_operand:QI 0 "register_operand" "=r,r,r,r,!d,r,r") ++ (lshiftrt:QI (match_operand:QI 1 "register_operand" "0,0,0,0,0,0,0") ++ (match_operand:QI 2 "general_operand" "r,L,P,K,n,n,Qm")))] + "" + "* return lshrqi3_out (insn, operands, NULL);" +- [(set_attr "length" "5,1,2,4,6,9") +- (set_attr "cc" "clobber,set_czn,set_czn,set_czn,set_czn,clobber")]) ++ [(set_attr "length" "5,0,1,2,4,6,9") ++ (set_attr "cc" "clobber,none,set_czn,set_czn,set_czn,set_czn,clobber")]) + + (define_insn "lshrhi3" +- [(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r,r") +- (lshiftrt:HI (match_operand:HI 1 "register_operand" "0,0,r,0,0,0") +- (match_operand:QI 2 "general_operand" "r,P,O,K,n,Qm")))] ++ [(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r,r,r") ++ (lshiftrt:HI (match_operand:HI 1 "register_operand" "0,0,0,r,0,0,0") ++ (match_operand:QI 2 "general_operand" "r,L,P,O,K,n,Qm")))] + "" + "* return lshrhi3_out (insn, operands, NULL);" +- [(set_attr "length" "6,2,2,4,10,10") +- (set_attr "cc" "clobber,clobber,clobber,clobber,clobber,clobber")]) ++ [(set_attr "length" "6,0,2,2,4,10,10") ++ (set_attr "cc" "clobber,none,clobber,clobber,clobber,clobber,clobber")]) + + (define_insn "lshrsi3" +- [(set (match_operand:SI 0 "register_operand" "=r,r,r,r,r,r") +- (lshiftrt:SI (match_operand:SI 1 "register_operand" "0,0,r,0,0,0") +- (match_operand:QI 2 "general_operand" "r,P,O,K,n,Qm")))] ++ [(set (match_operand:SI 0 "register_operand" "=r,r,r,r,r,r,r") ++ (lshiftrt:SI (match_operand:SI 1 "register_operand" "0,0,0,r,0,0,0") ++ (match_operand:QI 2 "general_operand" "r,L,P,O,K,n,Qm")))] + "" + "* return lshrsi3_out (insn, operands, NULL);" +- [(set_attr "length" "8,4,4,8,10,12") +- (set_attr "cc" "clobber,clobber,clobber,clobber,clobber,clobber")]) ++ [(set_attr "length" "8,0,4,4,8,10,12") ++ (set_attr "cc" "clobber,none,clobber,clobber,clobber,clobber,clobber")]) + + ;; Optimize if a scratch register from LD_REGS happens to be available. + +@@ -1354,14 +1355,14 @@ + FAIL;") + + (define_insn "*lshrhi3_const" +- [(set (match_operand:HI 0 "register_operand" "=r,r,r,r") +- (lshiftrt:HI (match_operand:HI 1 "register_operand" "0,r,0,0") +- (match_operand:QI 2 "const_int_operand" "P,O,K,n"))) +- (clobber (match_scratch:QI 3 "=X,X,X,&d"))] ++ [(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r") ++ (lshiftrt:HI (match_operand:HI 1 "register_operand" "0,0,r,0,0") ++ (match_operand:QI 2 "const_int_operand" "L,P,O,K,n"))) ++ (clobber (match_scratch:QI 3 "=X,X,X,X,&d"))] + "reload_completed" + "* return lshrhi3_out (insn, operands, NULL);" +- [(set_attr "length" "2,2,4,10") +- (set_attr "cc" "clobber,clobber,clobber,clobber")]) ++ [(set_attr "length" "0,2,2,4,10") ++ (set_attr "cc" "none,clobber,clobber,clobber,clobber")]) + + (define_peephole2 + [(match_scratch:QI 3 "d") +@@ -1375,14 +1376,14 @@ + FAIL;") + + (define_insn "*lshrsi3_const" +- [(set (match_operand:SI 0 "register_operand" "=r,r,r") +- (lshiftrt:SI (match_operand:SI 1 "register_operand" "0,r,0") +- (match_operand:QI 2 "const_int_operand" "P,O,n"))) +- (clobber (match_scratch:QI 3 "=X,X,&d"))] ++ [(set (match_operand:SI 0 "register_operand" "=r,r,r,r") ++ (lshiftrt:SI (match_operand:SI 1 "register_operand" "0,0,r,0") ++ (match_operand:QI 2 "const_int_operand" "L,P,O,n"))) ++ (clobber (match_scratch:QI 3 "=X,X,X,&d"))] + "reload_completed" + "* return lshrsi3_out (insn, operands, NULL);" +- [(set_attr "length" "4,4,10") +- (set_attr "cc" "clobber,clobber,clobber")]) ++ [(set_attr "length" "0,4,4,10") ++ (set_attr "cc" "none,clobber,clobber,clobber")]) + + ;; abs(x) abs(x) abs(x) abs(x) abs(x) abs(x) abs(x) abs(x) abs(x) abs(x) abs(x) + ;; abs +Index: gcc/config/avr/rtems.h +=================================================================== +RCS file: gcc/config/avr/rtems.h +diff -N gcc/config/avr/rtems.h +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/config/avr/rtems.h 23 Nov 2004 03:44:03 -0000 1.1 +@@ -0,0 +1,29 @@ ++/* Definitions for rtems targeting a AVR using ELF. ++ Copyright (C) 2004 Free Software Foundation, Inc. ++ Contributed by Ralf Corsepius (ralf.corsepius@rtems.org). ++ ++This file is part of GCC. ++ ++GCC 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. ++ ++GCC 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 GCC; see the file COPYING. If not, write to ++the Free Software Foundation, 59 Temple Place - Suite 330, ++Boston, MA 02111-1307, USA. */ ++ ++/* Specify predefined symbols in preprocessor. */ ++ ++#define TARGET_OS_CPP_BUILTINS() \ ++do { \ ++ builtin_define ("__rtems__"); \ ++ builtin_define ("__USE_INIT_FINI__"); \ ++ builtin_assert ("system=rtems"); \ ++} while (0) +Index: gcc/config/avr/t-rtems +=================================================================== +RCS file: gcc/config/avr/t-rtems +diff -N gcc/config/avr/t-rtems +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/config/avr/t-rtems 23 Nov 2004 03:44:03 -0000 1.1 +@@ -0,0 +1,3 @@ ++# Multilibs for avr RTEMS targets. ++ ++# ATM, this is just a stub +Index: gcc/config/c4x/t-rtems +=================================================================== +RCS file: gcc/config/c4x/t-rtems +diff -N gcc/config/c4x/t-rtems +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/config/c4x/t-rtems 23 Nov 2004 09:30:39 -0000 1.1 +@@ -0,0 +1,10 @@ ++# Custom RTEMS multilibs ++ ++# We'd actually want to support -msmall, but it trips a bug in gcc ++# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14436 ++# ++# MULTILIB_OPTIONS = m30 msmall mmemparm ++# MULTILIB_DIRNAMES = c3x small mem ++ ++MULTILIB_OPTIONS = m30 mmemparm ++MULTILIB_DIRNAMES = c3x mem +Index: gcc/config/i386/freebsd.h +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/i386/freebsd.h,v +retrieving revision 1.41.10.1 +retrieving revision 1.41.10.2 +diff -u -r1.41.10.1 -r1.41.10.2 +--- gcc/config/i386/freebsd.h 2 Mar 2004 22:34:58 -0000 1.41.10.1 ++++ gcc/config/i386/freebsd.h 12 Nov 2004 21:26:54 -0000 1.41.10.2 +@@ -138,12 +138,5 @@ + + /* FreeBSD sets the rounding precision of the FPU to 53 bits. Let the + compiler get the contents of and std::numeric_limits correct. */ +-#define SUBTARGET_OVERRIDE_OPTIONS \ +- do { \ +- if (!TARGET_64BIT) { \ +- REAL_MODE_FORMAT (XFmode) \ +- = &ieee_extended_intel_96_round_53_format; \ +- REAL_MODE_FORMAT (TFmode) \ +- = &ieee_extended_intel_96_round_53_format; \ +- } \ +- } while (0) ++#undef TARGET_96_ROUND_53_LONG_DOUBLE ++#define TARGET_96_ROUND_53_LONG_DOUBLE (!TARGET_64BIT) +Index: gcc/config/i386/i386-modes.def +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/i386/i386-modes.def,v +retrieving revision 1.6 +retrieving revision 1.6.6.1 +diff -u -r1.6 -r1.6.6.1 +--- gcc/config/i386/i386-modes.def 30 Oct 2003 23:27:30 -0000 1.6 ++++ gcc/config/i386/i386-modes.def 12 Nov 2004 21:26:54 -0000 1.6.6.1 +@@ -29,6 +29,8 @@ + FLOAT_MODE (XF, 12, ieee_extended_intel_96_format); + ADJUST_FLOAT_FORMAT (XF, (TARGET_128BIT_LONG_DOUBLE + ? &ieee_extended_intel_128_format ++ : TARGET_96_ROUND_53_LONG_DOUBLE ++ ? &ieee_extended_intel_96_round_53_format + : &ieee_extended_intel_96_format)); + ADJUST_BYTESIZE (XF, TARGET_128BIT_LONG_DOUBLE ? 16 : 12); + ADJUST_ALIGNMENT (XF, TARGET_128BIT_LONG_DOUBLE ? 16 : 4); +Index: gcc/config/i386/i386-protos.h +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/i386/i386-protos.h,v +retrieving revision 1.104.4.2 +retrieving revision 1.104.4.3 +diff -u -r1.104.4.2 -r1.104.4.3 +--- gcc/config/i386/i386-protos.h 10 Feb 2004 18:07:58 -0000 1.104.4.2 ++++ gcc/config/i386/i386-protos.h 12 Dec 2004 20:59:22 -0000 1.104.4.3 +@@ -93,6 +93,7 @@ + extern int cmpsi_operand (rtx, enum machine_mode); + extern int long_memory_operand (rtx, enum machine_mode); + extern int aligned_operand (rtx, enum machine_mode); ++extern int compare_operator (rtx, enum machine_mode); + extern enum machine_mode ix86_cc_mode (enum rtx_code, rtx, rtx); + + extern int ix86_expand_movstr (rtx, rtx, rtx, rtx); +Index: gcc/config/i386/i386.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.c,v +retrieving revision 1.635.2.15 +retrieving revision 1.635.2.19 +diff -u -r1.635.2.15 -r1.635.2.19 +--- gcc/config/i386/i386.c 25 Aug 2004 05:19:08 -0000 1.635.2.15 ++++ gcc/config/i386/i386.c 23 Dec 2004 01:31:17 -0000 1.635.2.19 +@@ -522,7 +522,14 @@ + const int x86_sse_load0_by_pxor = m_PPRO | m_PENT4; + const int x86_use_ffreep = m_ATHLON_K8; + const int x86_rep_movl_optimal = m_386 | m_PENT | m_PPRO | m_K6; +-const int x86_inter_unit_moves = ~(m_ATHLON_K8); ++ ++/* ??? HACK! The following is a lie. SSE can hold e.g. SImode, and ++ indeed *must* be able to hold SImode so that SSE2 shifts are able ++ to work right. But this can result in some mighty surprising ++ register allocation when building kernels. Turning this off should ++ make us less likely to all-of-the-sudden select an SSE register. */ ++const int x86_inter_unit_moves = 0; /* ~(m_ATHLON_K8) */ ++ + const int x86_ext_80387_constants = m_K6 | m_ATHLON | m_PENT4 | m_PPRO; + + /* In case the average insn count for single function invocation is +@@ -2536,6 +2543,34 @@ + return; + } + ++/* A subroutine of function_arg. We want to pass a parameter whose nominal ++ type is MODE in REGNO. We try to minimize ABI variation, so MODE may not ++ actually be valid for REGNO with the current ISA. In this case, ALT_MODE ++ is used instead. It must be the same size as MODE, and must be known to ++ be valid for REGNO. Finally, ORIG_MODE is the original mode of the ++ parameter, as seen by the type system. This may be different from MODE ++ when we're mucking with things minimizing ABI variations. ++ ++ Returns a REG or a PARALLEL as appropriate. */ ++ ++static rtx ++gen_reg_or_parallel (enum machine_mode mode, enum machine_mode alt_mode, ++ enum machine_mode orig_mode, unsigned int regno) ++{ ++ rtx tmp; ++ ++ if (HARD_REGNO_MODE_OK (regno, mode)) ++ tmp = gen_rtx_REG (mode, regno); ++ else ++ { ++ tmp = gen_rtx_REG (alt_mode, regno); ++ tmp = gen_rtx_EXPR_LIST (VOIDmode, tmp, const0_rtx); ++ tmp = gen_rtx_PARALLEL (orig_mode, gen_rtvec (1, tmp)); ++ } ++ ++ return tmp; ++} ++ + /* Define where to put the arguments to a function. + Value is zero to push the argument on the stack, + or a hard register in which to store the argument. +@@ -2550,12 +2585,11 @@ + (otherwise it is an extra parameter matching an ellipsis). */ + + rtx +-function_arg (CUMULATIVE_ARGS *cum, /* current arg information */ +- enum machine_mode mode, /* current arg mode */ +- tree type, /* type of the argument or 0 if lib support */ +- int named) /* != 0 for normal args, == 0 for ... args */ ++function_arg (CUMULATIVE_ARGS *cum, enum machine_mode orig_mode, ++ tree type, int named) + { +- rtx ret = NULL_RTX; ++ enum machine_mode mode = orig_mode; ++ rtx ret = NULL_RTX; + int bytes = + (mode == BLKmode) ? int_size_in_bytes (type) : (int) GET_MODE_SIZE (mode); + int words = (bytes + UNITS_PER_WORD - 1) / UNITS_PER_WORD; +@@ -2628,7 +2662,8 @@ + "changes the ABI"); + } + if (cum->sse_nregs) +- ret = gen_rtx_REG (mode, cum->sse_regno + FIRST_SSE_REG); ++ ret = gen_reg_or_parallel (mode, TImode, orig_mode, ++ cum->sse_regno + FIRST_SSE_REG); + } + break; + case V8QImode: +@@ -2644,7 +2679,8 @@ + "changes the ABI"); + } + if (cum->mmx_nregs) +- ret = gen_rtx_REG (mode, cum->mmx_regno + FIRST_MMX_REG); ++ ret = gen_reg_or_parallel (mode, DImode, orig_mode, ++ cum->mmx_regno + FIRST_MMX_REG); + } + break; + } +@@ -4319,6 +4355,12 @@ + /* Didn't find one -- this must be an aligned address. */ + return 1; + } ++ ++int ++compare_operator (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) ++{ ++ return GET_CODE (op) == COMPARE; ++} + + /* Initialize the table of extra 80387 mathematical constants. */ + +@@ -14891,10 +14933,29 @@ + if (FP_REGNO_P (regno)) + return VALID_FP_MODE_P (mode); + if (SSE_REGNO_P (regno)) +- return (TARGET_SSE ? VALID_SSE_REG_MODE (mode) : 0); ++ { ++ /* HACK! We didn't change all of the constraints for SSE1 for the ++ scalar modes on the branch. Fortunately, they're not required ++ for ABI compatibility. */ ++ if (!TARGET_SSE2 && !VECTOR_MODE_P (mode)) ++ return VALID_SSE_REG_MODE (mode); ++ ++ /* We implement the move patterns for all vector modes into and ++ out of SSE registers, even when no operation instructions ++ are available. */ ++ return (VALID_SSE_REG_MODE (mode) ++ || VALID_SSE2_REG_MODE (mode) ++ || VALID_MMX_REG_MODE (mode) ++ || VALID_MMX_REG_MODE_3DNOW (mode)); ++ } + if (MMX_REGNO_P (regno)) +- return (TARGET_MMX +- ? VALID_MMX_REG_MODE (mode) || VALID_MMX_REG_MODE_3DNOW (mode) : 0); ++ { ++ /* We implement the move patterns for 3DNOW modes even in MMX mode, ++ so if the register is available at all, then we can move data of ++ the given mode into or out of it. */ ++ return (VALID_MMX_REG_MODE (mode) ++ || VALID_MMX_REG_MODE_3DNOW (mode)); ++ } + /* We handle both integer and floats in the general purpose registers. + In future we should be able to handle vector modes as well. */ + if (!VALID_INT_MODE_P (mode) && !VALID_FP_MODE_P (mode)) +@@ -15230,7 +15291,9 @@ + return false; + + case FLOAT_EXTEND: +- if (!TARGET_SSE_MATH || !VALID_SSE_REG_MODE (mode)) ++ if (!TARGET_SSE_MATH ++ || mode == XFmode ++ || (mode == DFmode && !TARGET_SSE2)) + *total = 0; + return false; + +Index: gcc/config/i386/i386.h +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.h,v +retrieving revision 1.368.2.4 +retrieving revision 1.368.2.8 +diff -u -r1.368.2.4 -r1.368.2.8 +--- gcc/config/i386/i386.h 21 Apr 2004 15:12:41 -0000 1.368.2.4 ++++ gcc/config/i386/i386.h 20 Dec 2004 05:37:40 -0000 1.368.2.8 +@@ -447,6 +447,10 @@ + redefines this to 1. */ + #define TARGET_MACHO 0 + ++/* Subtargets may reset this to 1 in order to enable 96-bit long double ++ with the rounding mode forced to 53 bits. */ ++#define TARGET_96_ROUND_53_LONG_DOUBLE 0 ++ + /* This macro is similar to `TARGET_SWITCHES' but defines names of + command options that have values. Its definition is an + initializer with a subgrouping for each command option. +@@ -1059,14 +1063,11 @@ + + #define VALID_SSE2_REG_MODE(MODE) \ + ((MODE) == V16QImode || (MODE) == V8HImode || (MODE) == V2DFmode \ +- || (MODE) == V2DImode) ++ || (MODE) == V2DImode || (MODE) == DFmode) + + #define VALID_SSE_REG_MODE(MODE) \ + ((MODE) == TImode || (MODE) == V4SFmode || (MODE) == V4SImode \ +- || (MODE) == SFmode || (MODE) == TFmode \ +- /* Always accept SSE2 modes so that xmmintrin.h compiles. */ \ +- || VALID_SSE2_REG_MODE (MODE) \ +- || (TARGET_SSE2 && ((MODE) == DFmode || VALID_MMX_REG_MODE (MODE)))) ++ || (MODE) == SFmode || (MODE) == TFmode) + + #define VALID_MMX_REG_MODE_3DNOW(MODE) \ + ((MODE) == V2SFmode || (MODE) == SFmode) +@@ -2990,7 +2991,8 @@ + {"zero_extended_scalar_load_operand", {MEM}}, \ + {"vector_move_operand", {CONST_VECTOR, SUBREG, REG, MEM}}, \ + {"no_seg_address_operand", {CONST_INT, CONST_DOUBLE, CONST, SYMBOL_REF, \ +- LABEL_REF, SUBREG, REG, MEM, PLUS, MULT}}, ++ LABEL_REF, SUBREG, REG, MEM, PLUS, MULT}}, \ ++ {"compare_operator", {COMPARE}}, + + /* A list of predicates that do special things with modes, and so + should not elicit warnings for VOIDmode match_operand. */ +Index: gcc/config/i386/i386.md +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.md,v +retrieving revision 1.502.2.7 +retrieving revision 1.502.2.16 +diff -u -r1.502.2.7 -r1.502.2.16 +--- gcc/config/i386/i386.md 18 Oct 2004 13:05:59 -0000 1.502.2.7 ++++ gcc/config/i386/i386.md 8 Jan 2005 09:01:57 -0000 1.502.2.16 +@@ -1261,10 +1261,9 @@ + "" + "xchg{l}\t%1, %0" + [(set_attr "type" "imov") ++ (set_attr "mode" "SI") + (set_attr "pent_pair" "np") + (set_attr "athlon_decode" "vector") +- (set_attr "mode" "SI") +- (set_attr "modrm" "0") + (set_attr "ppro_uops" "few")]) + + (define_expand "movhi" +@@ -1377,12 +1376,12 @@ + (match_operand:HI 1 "register_operand" "+r")) + (set (match_dup 1) + (match_dup 0))] +- "TARGET_PARTIAL_REG_STALL" +- "xchg{w}\t%1, %0" ++ "!TARGET_PARTIAL_REG_STALL || optimize_size" ++ "xchg{l}\t%k1, %k0" + [(set_attr "type" "imov") ++ (set_attr "mode" "SI") + (set_attr "pent_pair" "np") +- (set_attr "mode" "HI") +- (set_attr "modrm" "0") ++ (set_attr "athlon_decode" "vector") + (set_attr "ppro_uops" "few")]) + + (define_insn "*swaphi_2" +@@ -1390,12 +1389,12 @@ + (match_operand:HI 1 "register_operand" "+r")) + (set (match_dup 1) + (match_dup 0))] +- "! TARGET_PARTIAL_REG_STALL" +- "xchg{l}\t%k1, %k0" ++ "TARGET_PARTIAL_REG_STALL" ++ "xchg{w}\t%1, %0" + [(set_attr "type" "imov") ++ (set_attr "mode" "HI") + (set_attr "pent_pair" "np") +- (set_attr "mode" "SI") +- (set_attr "modrm" "0") ++ (set_attr "athlon_decode" "vector") + (set_attr "ppro_uops" "few")]) + + (define_expand "movstricthi" +@@ -1543,17 +1542,30 @@ + DONE; + }) + +-(define_insn "*swapqi" ++(define_insn "*swapqi_1" + [(set (match_operand:QI 0 "register_operand" "+r") + (match_operand:QI 1 "register_operand" "+r")) + (set (match_dup 1) + (match_dup 0))] +- "" +- "xchg{b}\t%1, %0" ++ "!TARGET_PARTIAL_REG_STALL || optimize_size" ++ "xchg{l}\t%k1, %k0" + [(set_attr "type" "imov") ++ (set_attr "mode" "SI") + (set_attr "pent_pair" "np") ++ (set_attr "athlon_decode" "vector") ++ (set_attr "ppro_uops" "few")]) ++ ++(define_insn "*swapqi_2" ++ [(set (match_operand:QI 0 "register_operand" "+q") ++ (match_operand:QI 1 "register_operand" "+q")) ++ (set (match_dup 1) ++ (match_dup 0))] ++ "TARGET_PARTIAL_REG_STALL" ++ "xchg{b}\t%1, %0" ++ [(set_attr "type" "imov") + (set_attr "mode" "QI") +- (set_attr "modrm" "0") ++ (set_attr "pent_pair" "np") ++ (set_attr "athlon_decode" "vector") + (set_attr "ppro_uops" "few")]) + + (define_expand "movstrictqi" +@@ -2108,13 +2120,11 @@ + "TARGET_64BIT" + "xchg{q}\t%1, %0" + [(set_attr "type" "imov") ++ (set_attr "mode" "DI") + (set_attr "pent_pair" "np") + (set_attr "athlon_decode" "vector") +- (set_attr "mode" "DI") +- (set_attr "modrm" "0") + (set_attr "ppro_uops" "few")]) + +- + (define_expand "movsf" + [(set (match_operand:SF 0 "nonimmediate_operand" "") + (match_operand:SF 1 "general_operand" ""))] +@@ -6317,6 +6327,10 @@ + (if_then_else (match_operand:QI 1 "incdec_operand" "") + (const_string "incdec") + (const_string "alu1"))) ++ (set (attr "memory") ++ (if_then_else (match_operand 1 "memory_operand" "") ++ (const_string "load") ++ (const_string "none"))) + (set_attr "mode" "QI")]) + + (define_insn "*addqi_2" +@@ -7872,18 +7886,21 @@ + "" + "") + +-(define_insn "*testqi_1" ++(define_insn "*testqi_1_maybe_si" + [(set (reg 17) +- (compare (and:QI (match_operand:QI 0 "nonimmediate_operand" "%!*a,q,qm,r") +- (match_operand:QI 1 "general_operand" "n,n,qn,n")) +- (const_int 0)))] +- "ix86_match_ccmode (insn, CCNOmode) +- && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" ++ (compare ++ (and:QI ++ (match_operand:QI 0 "nonimmediate_operand" "%!*a,q,qm,r") ++ (match_operand:QI 1 "general_operand" "n,n,qn,n")) ++ (const_int 0)))] ++ "(GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM) ++ && ix86_match_ccmode (insn, ++ GET_CODE (operands[1]) == CONST_INT ++ && INTVAL (operands[1]) >= 0 ? CCNOmode : CCZmode)" + { + if (which_alternative == 3) + { +- if (GET_CODE (operands[1]) == CONST_INT +- && (INTVAL (operands[1]) & 0xffffff00)) ++ if (GET_CODE (operands[1]) == CONST_INT && INTVAL (operands[1]) < 0) + operands[1] = GEN_INT (INTVAL (operands[1]) & 0xff); + return "test{l}\t{%1, %k0|%k0, %1}"; + } +@@ -7894,6 +7911,21 @@ + (set_attr "mode" "QI,QI,QI,SI") + (set_attr "pent_pair" "uv,np,uv,np")]) + ++(define_insn "*testqi_1" ++ [(set (reg 17) ++ (compare ++ (and:QI ++ (match_operand:QI 0 "nonimmediate_operand" "%!*a,q,qm") ++ (match_operand:QI 1 "general_operand" "n,n,qn")) ++ (const_int 0)))] ++ "(GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM) ++ && ix86_match_ccmode (insn, CCNOmode)" ++ "test{b}\t{%1, %0|%0, %1}" ++ [(set_attr "type" "test") ++ (set_attr "modrm" "0,1,1") ++ (set_attr "mode" "QI") ++ (set_attr "pent_pair" "uv,np,uv")]) ++ + (define_expand "testqi_ext_ccno_0" + [(set (reg:CCNO 17) + (compare:CCNO +@@ -8012,51 +8044,53 @@ + "#") + + (define_split +- [(set (reg 17) +- (compare (zero_extract +- (match_operand 0 "nonimmediate_operand" "") +- (match_operand 1 "const_int_operand" "") +- (match_operand 2 "const_int_operand" "")) +- (const_int 0)))] ++ [(set (match_operand 0 "flags_reg_operand" "") ++ (match_operator 1 "compare_operator" ++ [(zero_extract ++ (match_operand 2 "nonimmediate_operand" "") ++ (match_operand 3 "const_int_operand" "") ++ (match_operand 4 "const_int_operand" "")) ++ (const_int 0)]))] + "ix86_match_ccmode (insn, CCNOmode)" +- [(set (reg:CCNO 17) (compare:CCNO (match_dup 3) (const_int 0)))] ++ [(set (match_dup 0) (match_op_dup 1 [(match_dup 2) (const_int 0)]))] + { +- HOST_WIDE_INT len = INTVAL (operands[1]); +- HOST_WIDE_INT pos = INTVAL (operands[2]); ++ rtx val = operands[2]; ++ HOST_WIDE_INT len = INTVAL (operands[3]); ++ HOST_WIDE_INT pos = INTVAL (operands[4]); + HOST_WIDE_INT mask; + enum machine_mode mode, submode; + +- mode = GET_MODE (operands[0]); +- if (GET_CODE (operands[0]) == MEM) ++ mode = GET_MODE (val); ++ if (GET_CODE (val) == MEM) + { + /* ??? Combine likes to put non-volatile mem extractions in QImode + no matter the size of the test. So find a mode that works. */ +- if (! MEM_VOLATILE_P (operands[0])) ++ if (! MEM_VOLATILE_P (val)) + { + mode = smallest_mode_for_size (pos + len, MODE_INT); +- operands[0] = adjust_address (operands[0], mode, 0); ++ val = adjust_address (val, mode, 0); + } + } +- else if (GET_CODE (operands[0]) == SUBREG +- && (submode = GET_MODE (SUBREG_REG (operands[0])), ++ else if (GET_CODE (val) == SUBREG ++ && (submode = GET_MODE (SUBREG_REG (val)), + GET_MODE_BITSIZE (mode) > GET_MODE_BITSIZE (submode)) + && pos + len <= GET_MODE_BITSIZE (submode)) + { + /* Narrow a paradoxical subreg to prevent partial register stalls. */ + mode = submode; +- operands[0] = SUBREG_REG (operands[0]); ++ val = SUBREG_REG (val); + } + else if (mode == HImode && pos + len <= 8) + { + /* Small HImode tests can be converted to QImode. */ + mode = QImode; +- operands[0] = gen_lowpart (QImode, operands[0]); ++ val = gen_lowpart (QImode, val); + } + + mask = ((HOST_WIDE_INT)1 << (pos + len)) - 1; + mask &= ~(((HOST_WIDE_INT)1 << pos) - 1); + +- operands[3] = gen_rtx_AND (mode, operands[0], gen_int_mode (mask, mode)); ++ operands[2] = gen_rtx_AND (mode, val, gen_int_mode (mask, mode)); + }) + + ;; Convert HImode/SImode test instructions with immediate to QImode ones. +@@ -8065,46 +8099,44 @@ + ;; Do the conversion only post-reload to avoid limiting of the register class + ;; to QI regs. + (define_split +- [(set (reg 17) +- (compare +- (and (match_operand 0 "register_operand" "") +- (match_operand 1 "const_int_operand" "")) +- (const_int 0)))] ++ [(set (match_operand 0 "flags_reg_operand" "") ++ (match_operator 1 "compare_operator" ++ [(and (match_operand 2 "register_operand" "") ++ (match_operand 3 "const_int_operand" "")) ++ (const_int 0)]))] + "reload_completed +- && QI_REG_P (operands[0]) ++ && QI_REG_P (operands[2]) ++ && GET_MODE (operands[2]) != QImode + && ((ix86_match_ccmode (insn, CCZmode) +- && !(INTVAL (operands[1]) & ~(255 << 8))) ++ && !(INTVAL (operands[3]) & ~(255 << 8))) + || (ix86_match_ccmode (insn, CCNOmode) +- && !(INTVAL (operands[1]) & ~(127 << 8)))) +- && GET_MODE (operands[0]) != QImode" +- [(set (reg:CCNO 17) +- (compare:CCNO +- (and:SI (zero_extract:SI (match_dup 0) (const_int 8) (const_int 8)) +- (match_dup 1)) +- (const_int 0)))] +- "operands[0] = gen_lowpart (SImode, operands[0]); +- operands[1] = gen_int_mode (INTVAL (operands[1]) >> 8, SImode);") ++ && !(INTVAL (operands[3]) & ~(127 << 8))))" ++ [(set (match_dup 0) ++ (match_op_dup 1 ++ [(and:SI (zero_extract:SI (match_dup 2) (const_int 8) (const_int 8)) ++ (match_dup 3)) ++ (const_int 0)]))] ++ "operands[2] = gen_lowpart (SImode, operands[2]); ++ operands[3] = gen_int_mode (INTVAL (operands[3]) >> 8, SImode);") + + (define_split +- [(set (reg 17) +- (compare +- (and (match_operand 0 "nonimmediate_operand" "") +- (match_operand 1 "const_int_operand" "")) +- (const_int 0)))] ++ [(set (match_operand 0 "flags_reg_operand" "") ++ (match_operator 1 "compare_operator" ++ [(and (match_operand 2 "nonimmediate_operand" "") ++ (match_operand 3 "const_int_operand" "")) ++ (const_int 0)]))] + "reload_completed +- && (!REG_P (operands[0]) || ANY_QI_REG_P (operands[0])) ++ && GET_MODE (operands[2]) != QImode ++ && (!REG_P (operands[2]) || ANY_QI_REG_P (operands[2])) + && ((ix86_match_ccmode (insn, CCZmode) +- && !(INTVAL (operands[1]) & ~255)) ++ && !(INTVAL (operands[3]) & ~255)) + || (ix86_match_ccmode (insn, CCNOmode) +- && !(INTVAL (operands[1]) & ~127))) +- && GET_MODE (operands[0]) != QImode" +- [(set (reg:CCNO 17) +- (compare:CCNO +- (and:QI (match_dup 0) +- (match_dup 1)) +- (const_int 0)))] +- "operands[0] = gen_lowpart (QImode, operands[0]); +- operands[1] = gen_lowpart (QImode, operands[1]);") ++ && !(INTVAL (operands[3]) & ~127)))" ++ [(set (match_dup 0) ++ (match_op_dup 1 [(and:QI (match_dup 2) (match_dup 3)) ++ (const_int 0)]))] ++ "operands[2] = gen_lowpart (QImode, operands[2]); ++ operands[3] = gen_lowpart (QImode, operands[3]);") + + + ;; %%% This used to optimize known byte-wide and operations to memory, +@@ -8381,21 +8413,22 @@ + [(set_attr "type" "alu1") + (set_attr "mode" "QI")]) + +-(define_insn "*andqi_2" ++(define_insn "*andqi_2_maybe_si" + [(set (reg 17) + (compare (and:QI +- (match_operand:QI 1 "nonimmediate_operand" "%0,0,0") +- (match_operand:QI 2 "general_operand" "qim,qi,i")) ++ (match_operand:QI 1 "nonimmediate_operand" "%0,0,0") ++ (match_operand:QI 2 "general_operand" "qim,qi,i")) + (const_int 0))) + (set (match_operand:QI 0 "nonimmediate_operand" "=q,qm,*r") + (and:QI (match_dup 1) (match_dup 2)))] +- "ix86_match_ccmode (insn, CCNOmode) +- && ix86_binary_operator_ok (AND, QImode, operands)" ++ "ix86_binary_operator_ok (AND, QImode, operands) ++ && ix86_match_ccmode (insn, ++ GET_CODE (operands[2]) == CONST_INT ++ && INTVAL (operands[2]) >= 0 ? CCNOmode : CCZmode)" + { + if (which_alternative == 2) + { +- if (GET_CODE (operands[2]) == CONST_INT +- && (INTVAL (operands[2]) & 0xffffff00)) ++ if (GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) < 0) + operands[2] = GEN_INT (INTVAL (operands[2]) & 0xff); + return "and{l}\t{%2, %k0|%k0, %2}"; + } +@@ -8404,6 +8437,20 @@ + [(set_attr "type" "alu") + (set_attr "mode" "QI,QI,SI")]) + ++(define_insn "*andqi_2" ++ [(set (reg 17) ++ (compare (and:QI ++ (match_operand:QI 1 "nonimmediate_operand" "%0,0") ++ (match_operand:QI 2 "general_operand" "qim,qi")) ++ (const_int 0))) ++ (set (match_operand:QI 0 "nonimmediate_operand" "=q,qm") ++ (and:QI (match_dup 1) (match_dup 2)))] ++ "ix86_match_ccmode (insn, CCNOmode) ++ && ix86_binary_operator_ok (AND, QImode, operands)" ++ "and{b}\t{%2, %0|%0, %2}" ++ [(set_attr "type" "alu") ++ (set_attr "mode" "QI")]) ++ + (define_insn "*andqi_2_slp" + [(set (reg 17) + (compare (and:QI +@@ -9567,8 +9614,8 @@ + [(parallel [(set (match_operand:SF 0 "nonimmediate_operand" "") + (neg:SF (match_operand:SF 1 "nonimmediate_operand" ""))) + (clobber (reg:CC 17))])] +- "TARGET_80387" +- "if (TARGET_SSE) ++ "TARGET_80387 || TARGET_SSE_MATH" ++ "if (TARGET_SSE_MATH) + { + /* In case operand is in memory, we will not use SSE. */ + if (memory_operand (operands[0], VOIDmode) +@@ -9664,7 +9711,7 @@ + [(set (match_operand:SF 0 "nonimmediate_operand" "=f#r,rm#f") + (neg:SF (match_operand:SF 1 "nonimmediate_operand" "0,0"))) + (clobber (reg:CC 17))] +- "TARGET_80387 && !TARGET_SSE ++ "TARGET_80387 + && ix86_unary_operator_ok (NEG, SFmode, operands)" + "#") + +@@ -9707,8 +9754,8 @@ + [(parallel [(set (match_operand:DF 0 "nonimmediate_operand" "") + (neg:DF (match_operand:DF 1 "nonimmediate_operand" ""))) + (clobber (reg:CC 17))])] +- "TARGET_80387" +- "if (TARGET_SSE2) ++ "TARGET_80387 || (TARGET_SSE2 && TARGET_SSE_MATH)" ++ "if (TARGET_SSE2 && TARGET_SSE_MATH) + { + /* In case operand is in memory, we will not use SSE. */ + if (memory_operand (operands[0], VOIDmode) +@@ -9974,8 +10021,8 @@ + [(parallel [(set (match_operand:SF 0 "nonimmediate_operand" "") + (neg:SF (match_operand:SF 1 "nonimmediate_operand" ""))) + (clobber (reg:CC 17))])] +- "TARGET_80387" +- "if (TARGET_SSE) ++ "TARGET_80387 || TARGET_SSE_MATH" ++ "if (TARGET_SSE_MATH) + { + /* In case operand is in memory, we will not use SSE. */ + if (memory_operand (operands[0], VOIDmode) +@@ -10071,7 +10118,7 @@ + [(set (match_operand:SF 0 "nonimmediate_operand" "=f#r,rm#f") + (abs:SF (match_operand:SF 1 "nonimmediate_operand" "0,0"))) + (clobber (reg:CC 17))] +- "TARGET_80387 && ix86_unary_operator_ok (ABS, SFmode, operands) && !TARGET_SSE" ++ "TARGET_80387 && ix86_unary_operator_ok (ABS, SFmode, operands)" + "#") + + (define_split +@@ -10113,8 +10160,8 @@ + [(parallel [(set (match_operand:DF 0 "nonimmediate_operand" "") + (neg:DF (match_operand:DF 1 "nonimmediate_operand" ""))) + (clobber (reg:CC 17))])] +- "TARGET_80387" +- "if (TARGET_SSE2) ++ "TARGET_80387 || (TARGET_SSE2 && TARGET_SSE_MATH)" ++ "if (TARGET_SSE2 && TARGET_SSE_MATH) + { + /* In case operand is in memory, we will not use SSE. */ + if (memory_operand (operands[0], VOIDmode) +@@ -10383,17 +10430,19 @@ + (set_attr "mode" "DI")]) + + (define_split +- [(set (reg 17) +- (compare (not:DI (match_operand:DI 1 "nonimmediate_operand" "")) +- (const_int 0))) +- (set (match_operand:DI 0 "nonimmediate_operand" "") +- (not:DI (match_dup 1)))] ++ [(set (match_operand 0 "flags_reg_operand" "") ++ (match_operator 2 "compare_operator" ++ [(not:DI (match_operand:DI 3 "nonimmediate_operand" "")) ++ (const_int 0)])) ++ (set (match_operand:DI 1 "nonimmediate_operand" "") ++ (not:DI (match_dup 3)))] + "TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)" +- [(parallel [(set (reg:CCNO 17) +- (compare:CCNO (xor:DI (match_dup 1) (const_int -1)) +- (const_int 0))) +- (set (match_dup 0) +- (xor:DI (match_dup 1) (const_int -1)))])] ++ [(parallel [(set (match_dup 0) ++ (match_op_dup 2 ++ [(xor:DI (match_dup 3) (const_int -1)) ++ (const_int 0)])) ++ (set (match_dup 1) ++ (xor:DI (match_dup 3) (const_int -1)))])] + "") + + (define_expand "one_cmplsi2" +@@ -10432,17 +10481,18 @@ + (set_attr "mode" "SI")]) + + (define_split +- [(set (reg 17) +- (compare (not:SI (match_operand:SI 1 "nonimmediate_operand" "")) +- (const_int 0))) +- (set (match_operand:SI 0 "nonimmediate_operand" "") +- (not:SI (match_dup 1)))] ++ [(set (match_operand 0 "flags_reg_operand" "") ++ (match_operator 2 "compare_operator" ++ [(not:SI (match_operand:SI 3 "nonimmediate_operand" "")) ++ (const_int 0)])) ++ (set (match_operand:SI 1 "nonimmediate_operand" "") ++ (not:SI (match_dup 3)))] + "ix86_match_ccmode (insn, CCNOmode)" +- [(parallel [(set (reg:CCNO 17) +- (compare:CCNO (xor:SI (match_dup 1) (const_int -1)) +- (const_int 0))) +- (set (match_dup 0) +- (xor:SI (match_dup 1) (const_int -1)))])] ++ [(parallel [(set (match_dup 0) ++ (match_op_dup 2 [(xor:SI (match_dup 3) (const_int -1)) ++ (const_int 0)])) ++ (set (match_dup 1) ++ (xor:SI (match_dup 3) (const_int -1)))])] + "") + + ;; ??? Currently never generated - xor is used instead. +@@ -10459,17 +10509,18 @@ + (set_attr "mode" "SI")]) + + (define_split +- [(set (reg 17) +- (compare (not:SI (match_operand:SI 1 "register_operand" "")) +- (const_int 0))) +- (set (match_operand:DI 0 "register_operand" "") +- (zero_extend:DI (not:SI (match_dup 1))))] ++ [(set (match_operand 0 "flags_reg_operand" "") ++ (match_operator 2 "compare_operator" ++ [(not:SI (match_operand:SI 3 "register_operand" "")) ++ (const_int 0)])) ++ (set (match_operand:DI 1 "register_operand" "") ++ (zero_extend:DI (not:SI (match_dup 3))))] + "ix86_match_ccmode (insn, CCNOmode)" +- [(parallel [(set (reg:CCNO 17) +- (compare:CCNO (xor:SI (match_dup 1) (const_int -1)) +- (const_int 0))) +- (set (match_dup 0) +- (zero_extend:DI (xor:SI (match_dup 1) (const_int -1))))])] ++ [(parallel [(set (match_dup 0) ++ (match_op_dup 2 [(xor:SI (match_dup 3) (const_int -1)) ++ (const_int 0)])) ++ (set (match_dup 1) ++ (zero_extend:DI (xor:SI (match_dup 3) (const_int -1))))])] + "") + + (define_expand "one_cmplhi2" +@@ -10499,17 +10550,18 @@ + (set_attr "mode" "HI")]) + + (define_split +- [(set (reg 17) +- (compare (not:HI (match_operand:HI 1 "nonimmediate_operand" "")) +- (const_int 0))) +- (set (match_operand:HI 0 "nonimmediate_operand" "") +- (not:HI (match_dup 1)))] ++ [(set (match_operand 0 "flags_reg_operand" "") ++ (match_operator 2 "compare_operator" ++ [(not:HI (match_operand:HI 3 "nonimmediate_operand" "")) ++ (const_int 0)])) ++ (set (match_operand:HI 1 "nonimmediate_operand" "") ++ (not:HI (match_dup 3)))] + "ix86_match_ccmode (insn, CCNOmode)" +- [(parallel [(set (reg:CCNO 17) +- (compare:CCNO (xor:HI (match_dup 1) (const_int -1)) +- (const_int 0))) +- (set (match_dup 0) +- (xor:HI (match_dup 1) (const_int -1)))])] ++ [(parallel [(set (match_dup 0) ++ (match_op_dup 2 [(xor:HI (match_dup 3) (const_int -1)) ++ (const_int 0)])) ++ (set (match_dup 1) ++ (xor:HI (match_dup 3) (const_int -1)))])] + "") + + ;; %%% Potential partial reg stall on alternative 1. What to do? +@@ -10542,17 +10594,18 @@ + (set_attr "mode" "QI")]) + + (define_split +- [(set (reg 17) +- (compare (not:QI (match_operand:QI 1 "nonimmediate_operand" "")) +- (const_int 0))) +- (set (match_operand:QI 0 "nonimmediate_operand" "") +- (not:QI (match_dup 1)))] ++ [(set (match_operand 0 "flags_reg_operand" "") ++ (match_operator 2 "compare_operator" ++ [(not:QI (match_operand:QI 3 "nonimmediate_operand" "")) ++ (const_int 0)])) ++ (set (match_operand:QI 1 "nonimmediate_operand" "") ++ (not:QI (match_dup 3)))] + "ix86_match_ccmode (insn, CCNOmode)" +- [(parallel [(set (reg:CCNO 17) +- (compare:CCNO (xor:QI (match_dup 1) (const_int -1)) +- (const_int 0))) +- (set (match_dup 0) +- (xor:QI (match_dup 1) (const_int -1)))])] ++ [(parallel [(set (match_dup 0) ++ (match_op_dup 2 [(xor:QI (match_dup 3) (const_int -1)) ++ (const_int 0)])) ++ (set (match_dup 1) ++ (xor:QI (match_dup 3) (const_int -1)))])] + "") + + ;; Arithmetic shift instructions +@@ -17003,7 +17056,8 @@ + (clobber (match_operand 6 "" "")) + (clobber (reg:CC 17))] + "!SSE_REG_P (operands[0]) && reload_completed +- && VALID_SSE_REG_MODE (GET_MODE (operands[0]))" ++ && (GET_MODE (operands[0]) == SFmode ++ || (TARGET_SSE2 && GET_MODE (operands[0]) == DFmode))" + [(const_int 0)] + { + ix86_compare_op0 = operands[5]; +@@ -17319,52 +17373,56 @@ + ; instruction size is unchanged, except in the %eax case for + ; which it is increased by one byte, hence the ! optimize_size. + (define_split +- [(set (reg 17) +- (compare (and (match_operand 1 "aligned_operand" "") +- (match_operand 2 "const_int_operand" "")) +- (const_int 0))) +- (set (match_operand 0 "register_operand" "") +- (and (match_dup 1) (match_dup 2)))] ++ [(set (match_operand 0 "flags_reg_operand" "") ++ (match_operator 2 "compare_operator" ++ [(and (match_operand 3 "aligned_operand" "") ++ (match_operand 4 "const_int_operand" "")) ++ (const_int 0)])) ++ (set (match_operand 1 "register_operand" "") ++ (and (match_dup 3) (match_dup 4)))] + "! TARGET_PARTIAL_REG_STALL && reload_completed + /* Ensure that the operand will remain sign-extended immediate. */ +- && ix86_match_ccmode (insn, INTVAL (operands[2]) >= 0 ? CCNOmode : CCZmode) ++ && ix86_match_ccmode (insn, INTVAL (operands[4]) >= 0 ? CCNOmode : CCZmode) + && ! optimize_size +- && ((GET_MODE (operands[0]) == HImode && ! TARGET_FAST_PREFIX) +- || (GET_MODE (operands[0]) == QImode && TARGET_PROMOTE_QImode))" +- [(parallel [(set (reg:CCNO 17) +- (compare:CCNO (and:SI (match_dup 1) (match_dup 2)) +- (const_int 0))) +- (set (match_dup 0) +- (and:SI (match_dup 1) (match_dup 2)))])] +- "operands[2] +- = gen_int_mode (INTVAL (operands[2]) +- & GET_MODE_MASK (GET_MODE (operands[0])), +- SImode); +- operands[0] = gen_lowpart (SImode, operands[0]); +- operands[1] = gen_lowpart (SImode, operands[1]);") ++ && ((GET_MODE (operands[1]) == HImode && ! TARGET_FAST_PREFIX) ++ || (GET_MODE (operands[1]) == QImode && TARGET_PROMOTE_QImode))" ++ [(parallel [(set (match_dup 0) ++ (match_op_dup 2 [(and:SI (match_dup 3) (match_dup 4)) ++ (const_int 0)])) ++ (set (match_dup 1) ++ (and:SI (match_dup 3) (match_dup 4)))])] ++{ ++ operands[4] ++ = gen_int_mode (INTVAL (operands[4]) ++ & GET_MODE_MASK (GET_MODE (operands[1])), SImode); ++ operands[1] = gen_lowpart (SImode, operands[1]); ++ operands[3] = gen_lowpart (SImode, operands[3]); ++}) + + ; Don't promote the QImode tests, as i386 doesn't have encoding of + ; the TEST instruction with 32-bit sign-extended immediate and thus + ; the instruction size would at least double, which is not what we + ; want even with ! optimize_size. + (define_split +- [(set (reg 17) +- (compare (and (match_operand:HI 0 "aligned_operand" "") +- (match_operand:HI 1 "const_int_operand" "")) +- (const_int 0)))] ++ [(set (match_operand 0 "flags_reg_operand" "") ++ (match_operator 1 "compare_operator" ++ [(and (match_operand:HI 2 "aligned_operand" "") ++ (match_operand:HI 3 "const_int_operand" "")) ++ (const_int 0)]))] + "! TARGET_PARTIAL_REG_STALL && reload_completed + /* Ensure that the operand will remain sign-extended immediate. */ +- && ix86_match_ccmode (insn, INTVAL (operands[1]) >= 0 ? CCNOmode : CCZmode) ++ && ix86_match_ccmode (insn, INTVAL (operands[3]) >= 0 ? CCNOmode : CCZmode) + && ! TARGET_FAST_PREFIX + && ! optimize_size" +- [(set (reg:CCNO 17) +- (compare:CCNO (and:SI (match_dup 0) (match_dup 1)) +- (const_int 0)))] +- "operands[1] +- = gen_int_mode (INTVAL (operands[1]) +- & GET_MODE_MASK (GET_MODE (operands[0])), +- SImode); +- operands[0] = gen_lowpart (SImode, operands[0]);") ++ [(set (match_dup 0) ++ (match_op_dup 1 [(and:SI (match_dup 2) (match_dup 3)) ++ (const_int 0)]))] ++{ ++ operands[3] ++ = gen_int_mode (INTVAL (operands[3]) ++ & GET_MODE_MASK (GET_MODE (operands[2])), SImode); ++ operands[2] = gen_lowpart (SImode, operands[2]); ++}) + + (define_split + [(set (match_operand 0 "register_operand" "") +@@ -17537,13 +17595,14 @@ + + ;; Don't compare memory with zero, load and use a test instead. + (define_peephole2 +- [(set (reg 17) +- (compare (match_operand:SI 0 "memory_operand" "") +- (const_int 0))) ++ [(set (match_operand 0 "flags_reg_operand" "") ++ (match_operator 1 "compare_operator" ++ [(match_operand:SI 2 "memory_operand" "") ++ (const_int 0)])) + (match_scratch:SI 3 "r")] + "ix86_match_ccmode (insn, CCNOmode) && ! optimize_size" +- [(set (match_dup 3) (match_dup 0)) +- (set (reg:CCNO 17) (compare:CCNO (match_dup 3) (const_int 0)))] ++ [(set (match_dup 3) (match_dup 2)) ++ (set (match_dup 0) (match_op_dup 1 [(match_dup 3) (const_int 0)]))] + "") + + ;; NOT is not pairable on Pentium, while XOR is, but one byte longer. +@@ -17607,77 +17666,77 @@ + ;; versions if we're concerned about partial register stalls. + + (define_peephole2 +- [(set (reg 17) +- (compare (and:SI (match_operand:SI 0 "register_operand" "") +- (match_operand:SI 1 "immediate_operand" "")) +- (const_int 0)))] ++ [(set (match_operand 0 "flags_reg_operand" "") ++ (match_operator 1 "compare_operator" ++ [(and:SI (match_operand:SI 2 "register_operand" "") ++ (match_operand:SI 3 "immediate_operand" "")) ++ (const_int 0)]))] + "ix86_match_ccmode (insn, CCNOmode) +- && (true_regnum (operands[0]) != 0 +- || (GET_CODE (operands[1]) == CONST_INT +- && CONST_OK_FOR_LETTER_P (INTVAL (operands[1]), 'K'))) +- && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))" ++ && (true_regnum (operands[2]) != 0 ++ || (GET_CODE (operands[3]) == CONST_INT ++ && CONST_OK_FOR_LETTER_P (INTVAL (operands[3]), 'K'))) ++ && peep2_reg_dead_p (1, operands[2])" + [(parallel +- [(set (reg:CCNO 17) +- (compare:CCNO (and:SI (match_dup 0) +- (match_dup 1)) +- (const_int 0))) +- (set (match_dup 0) +- (and:SI (match_dup 0) (match_dup 1)))])] ++ [(set (match_dup 0) ++ (match_op_dup 1 [(and:SI (match_dup 2) (match_dup 3)) ++ (const_int 0)])) ++ (set (match_dup 2) ++ (and:SI (match_dup 2) (match_dup 3)))])] + "") + + ;; We don't need to handle HImode case, because it will be promoted to SImode + ;; on ! TARGET_PARTIAL_REG_STALL + + (define_peephole2 +- [(set (reg 17) +- (compare (and:QI (match_operand:QI 0 "register_operand" "") +- (match_operand:QI 1 "immediate_operand" "")) +- (const_int 0)))] ++ [(set (match_operand 0 "flags_reg_operand" "") ++ (match_operator 1 "compare_operator" ++ [(and:QI (match_operand:QI 2 "register_operand" "") ++ (match_operand:QI 3 "immediate_operand" "")) ++ (const_int 0)]))] + "! TARGET_PARTIAL_REG_STALL + && ix86_match_ccmode (insn, CCNOmode) +- && true_regnum (operands[0]) != 0 +- && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))" ++ && true_regnum (operands[2]) != 0 ++ && peep2_reg_dead_p (1, operands[2])" + [(parallel +- [(set (reg:CCNO 17) +- (compare:CCNO (and:QI (match_dup 0) +- (match_dup 1)) +- (const_int 0))) +- (set (match_dup 0) +- (and:QI (match_dup 0) (match_dup 1)))])] ++ [(set (match_dup 0) ++ (match_op_dup 1 [(and:QI (match_dup 2) (match_dup 3)) ++ (const_int 0)])) ++ (set (match_dup 2) ++ (and:QI (match_dup 2) (match_dup 3)))])] + "") + + (define_peephole2 +- [(set (reg 17) +- (compare +- (and:SI +- (zero_extract:SI +- (match_operand 0 "ext_register_operand" "") +- (const_int 8) +- (const_int 8)) +- (match_operand 1 "const_int_operand" "")) +- (const_int 0)))] ++ [(set (match_operand 0 "flags_reg_operand" "") ++ (match_operator 1 "compare_operator" ++ [(and:SI ++ (zero_extract:SI ++ (match_operand 2 "ext_register_operand" "") ++ (const_int 8) ++ (const_int 8)) ++ (match_operand 3 "const_int_operand" "")) ++ (const_int 0)]))] + "! TARGET_PARTIAL_REG_STALL + && ix86_match_ccmode (insn, CCNOmode) +- && true_regnum (operands[0]) != 0 +- && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))" +- [(parallel [(set (reg:CCNO 17) +- (compare:CCNO +- (and:SI +- (zero_extract:SI +- (match_dup 0) +- (const_int 8) +- (const_int 8)) +- (match_dup 1)) +- (const_int 0))) +- (set (zero_extract:SI (match_dup 0) ++ && true_regnum (operands[2]) != 0 ++ && peep2_reg_dead_p (1, operands[2])" ++ [(parallel [(set (match_dup 0) ++ (match_op_dup 1 ++ [(and:SI ++ (zero_extract:SI ++ (match_dup 2) ++ (const_int 8) ++ (const_int 8)) ++ (match_dup 3)) ++ (const_int 0)])) ++ (set (zero_extract:SI (match_dup 2) + (const_int 8) + (const_int 8)) + (and:SI + (zero_extract:SI +- (match_dup 0) ++ (match_dup 2) + (const_int 8) + (const_int 8)) +- (match_dup 1)))])] ++ (match_dup 3)))])] + "") + + ;; Don't do logical operations with memory inputs. +@@ -17979,66 +18038,20 @@ + "") + + ;; Convert compares with 1 to shorter inc/dec operations when CF is not +-;; required and register dies. ++;; required and register dies. Similarly for 128 to plus -128. + (define_peephole2 +- [(set (reg 17) +- (compare (match_operand:SI 0 "register_operand" "") +- (match_operand:SI 1 "incdec_operand" "")))] +- "ix86_match_ccmode (insn, CCGCmode) +- && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))" +- [(parallel [(set (reg:CCGC 17) +- (compare:CCGC (match_dup 0) +- (match_dup 1))) +- (clobber (match_dup 0))])] +- "") +- +-(define_peephole2 +- [(set (reg 17) +- (compare (match_operand:HI 0 "register_operand" "") +- (match_operand:HI 1 "incdec_operand" "")))] +- "ix86_match_ccmode (insn, CCGCmode) +- && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))" +- [(parallel [(set (reg:CCGC 17) +- (compare:CCGC (match_dup 0) +- (match_dup 1))) +- (clobber (match_dup 0))])] +- "") +- +-(define_peephole2 +- [(set (reg 17) +- (compare (match_operand:QI 0 "register_operand" "") +- (match_operand:QI 1 "incdec_operand" "")))] +- "ix86_match_ccmode (insn, CCGCmode) +- && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))" +- [(parallel [(set (reg:CCGC 17) +- (compare:CCGC (match_dup 0) +- (match_dup 1))) +- (clobber (match_dup 0))])] +- "") +- +-;; Convert compares with 128 to shorter add -128 +-(define_peephole2 +- [(set (reg 17) +- (compare (match_operand:SI 0 "register_operand" "") +- (const_int 128)))] +- "ix86_match_ccmode (insn, CCGCmode) +- && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))" +- [(parallel [(set (reg:CCGC 17) +- (compare:CCGC (match_dup 0) +- (const_int 128))) +- (clobber (match_dup 0))])] +- "") +- +-(define_peephole2 +- [(set (reg 17) +- (compare (match_operand:HI 0 "register_operand" "") +- (const_int 128)))] +- "ix86_match_ccmode (insn, CCGCmode) +- && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))" +- [(parallel [(set (reg:CCGC 17) +- (compare:CCGC (match_dup 0) +- (const_int 128))) +- (clobber (match_dup 0))])] ++ [(set (match_operand 0 "flags_reg_operand" "") ++ (match_operator 1 "compare_operator" ++ [(match_operand 2 "register_operand" "") ++ (match_operand 3 "const_int_operand" "")]))] ++ "(INTVAL (operands[3]) == -1 ++ || INTVAL (operands[3]) == 1 ++ || INTVAL (operands[3]) == 128) ++ && ix86_match_ccmode (insn, CCGCmode) ++ && peep2_reg_dead_p (1, operands[2])" ++ [(parallel [(set (match_dup 0) ++ (match_op_dup 1 [(match_dup 2) (match_dup 3)])) ++ (clobber (match_dup 2))])] + "") + + (define_peephole2 +@@ -18326,7 +18339,7 @@ + { + if (constant_call_address_operand (operands[1], QImode)) + return "call\t%P1"; +- return "call\t%*%1"; ++ return "call\t%A1"; + } + [(set_attr "type" "callv")]) + +@@ -18338,7 +18351,7 @@ + { + if (constant_call_address_operand (operands[1], QImode)) + return "jmp\t%P1"; +- return "jmp\t%*%1"; ++ return "jmp\t%A1"; + } + [(set_attr "type" "callv")]) + +@@ -18422,10 +18435,11 @@ + + ;; Moves for SSE/MMX regs. + +-(define_insn "movv4sf_internal" ++(define_insn "*movv4sf_internal" + [(set (match_operand:V4SF 0 "nonimmediate_operand" "=x,x,m") + (match_operand:V4SF 1 "vector_move_operand" "C,xm,x"))] +- "TARGET_SSE" ++ "TARGET_SSE ++ && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" + "@ + xorps\t%0, %0 + movaps\t{%1, %0|%0, %1} +@@ -18436,7 +18450,7 @@ + (define_split + [(set (match_operand:V4SF 0 "register_operand" "") + (match_operand:V4SF 1 "zero_extended_scalar_load_operand" ""))] +- "TARGET_SSE" ++ "TARGET_SSE && reload_completed" + [(set (match_dup 0) + (vec_merge:V4SF + (vec_duplicate:V4SF (match_dup 1)) +@@ -18447,10 +18461,11 @@ + operands[2] = CONST0_RTX (V4SFmode); + }) + +-(define_insn "movv4si_internal" ++(define_insn "*movv4si_internal" + [(set (match_operand:V4SI 0 "nonimmediate_operand" "=x,x,m") + (match_operand:V4SI 1 "vector_move_operand" "C,xm,x"))] +- "TARGET_SSE" ++ "TARGET_SSE ++ && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" + { + switch (which_alternative) + { +@@ -18487,10 +18502,11 @@ + (const_string "TI"))] + (const_string "TI")))]) + +-(define_insn "movv2di_internal" ++(define_insn "*movv2di_internal" + [(set (match_operand:V2DI 0 "nonimmediate_operand" "=x,x,m") + (match_operand:V2DI 1 "vector_move_operand" "C,xm,x"))] +- "TARGET_SSE" ++ "TARGET_SSE ++ && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" + { + switch (which_alternative) + { +@@ -18530,7 +18546,7 @@ + (define_split + [(set (match_operand:V2DF 0 "register_operand" "") + (match_operand:V2DF 1 "zero_extended_scalar_load_operand" ""))] +- "TARGET_SSE2" ++ "TARGET_SSE2 && reload_completed" + [(set (match_dup 0) + (vec_merge:V2DF + (vec_duplicate:V2DF (match_dup 1)) +@@ -18541,52 +18557,80 @@ + operands[2] = CONST0_RTX (V2DFmode); + }) + +-(define_insn "movv8qi_internal" +- [(set (match_operand:V8QI 0 "nonimmediate_operand" "=y,y,m") +- (match_operand:V8QI 1 "vector_move_operand" "C,ym,y"))] ++(define_insn "*movv2si_internal" ++ [(set (match_operand:V2SI 0 "nonimmediate_operand" ++ "=y,y ,m,!y,!*Y,*x,?*x,?m") ++ (match_operand:V2SI 1 "vector_move_operand" ++ "C ,ym,y,*Y,y ,C ,*xm,*x"))] + "TARGET_MMX + && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" + "@ + pxor\t%0, %0 + movq\t{%1, %0|%0, %1} ++ movq\t{%1, %0|%0, %1} ++ movdq2q\t{%1, %0|%0, %1} ++ movq2dq\t{%1, %0|%0, %1} ++ pxor\t%0, %0 ++ movq\t{%1, %0|%0, %1} + movq\t{%1, %0|%0, %1}" +- [(set_attr "type" "mmxmov") ++ [(set_attr "type" "mmxmov,mmxmov,mmxmov,ssecvt,ssecvt,ssemov,ssemov,ssemov") + (set_attr "mode" "DI")]) + +-(define_insn "movv4hi_internal" +- [(set (match_operand:V4HI 0 "nonimmediate_operand" "=y,y,m") +- (match_operand:V4HI 1 "vector_move_operand" "C,ym,y"))] ++(define_insn "*movv4hi_internal" ++ [(set (match_operand:V4HI 0 "nonimmediate_operand" ++ "=y,y ,m,!y,!*Y,*x,?*x,?m") ++ (match_operand:V4HI 1 "vector_move_operand" ++ "C ,ym,y,*Y,y ,C ,*xm,*x"))] + "TARGET_MMX + && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" + "@ + pxor\t%0, %0 + movq\t{%1, %0|%0, %1} ++ movq\t{%1, %0|%0, %1} ++ movdq2q\t{%1, %0|%0, %1} ++ movq2dq\t{%1, %0|%0, %1} ++ pxor\t%0, %0 ++ movq\t{%1, %0|%0, %1} + movq\t{%1, %0|%0, %1}" +- [(set_attr "type" "mmxmov") ++ [(set_attr "type" "mmxmov,mmxmov,mmxmov,ssecvt,ssecvt,ssemov,ssemov,ssemov") + (set_attr "mode" "DI")]) + +-(define_insn "movv2si_internal" +- [(set (match_operand:V2SI 0 "nonimmediate_operand" "=y,y,m") +- (match_operand:V2SI 1 "vector_move_operand" "C,ym,y"))] ++(define_insn "*movv8qi_internal" ++ [(set (match_operand:V8QI 0 "nonimmediate_operand" ++ "=y,y ,m,!y,!*Y,*x,?*x,?m") ++ (match_operand:V8QI 1 "vector_move_operand" ++ "C ,ym,y,*Y,y ,C ,*xm,*x"))] + "TARGET_MMX + && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" + "@ + pxor\t%0, %0 + movq\t{%1, %0|%0, %1} ++ movq\t{%1, %0|%0, %1} ++ movdq2q\t{%1, %0|%0, %1} ++ movq2dq\t{%1, %0|%0, %1} ++ pxor\t%0, %0 ++ movq\t{%1, %0|%0, %1} + movq\t{%1, %0|%0, %1}" +- [(set_attr "type" "mmxcvt") ++ [(set_attr "type" "mmxmov,mmxmov,mmxmov,ssecvt,ssecvt,ssemov,ssemov,ssemov") + (set_attr "mode" "DI")]) + +-(define_insn "movv2sf_internal" +- [(set (match_operand:V2SF 0 "nonimmediate_operand" "=y,y,m") +- (match_operand:V2SF 1 "vector_move_operand" "C,ym,y"))] +- "TARGET_3DNOW ++(define_insn "*movv2sf_internal" ++ [(set (match_operand:V2SF 0 "nonimmediate_operand" ++ "=y,y ,m,!y,!*Y,*x,?*x,?m") ++ (match_operand:V2SF 1 "vector_move_operand" ++ "C ,ym,y,*Y,y ,C ,*xm,*x"))] ++ "TARGET_MMX + && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" + "@ + pxor\t%0, %0 + movq\t{%1, %0|%0, %1} ++ movq\t{%1, %0|%0, %1} ++ movdq2q\t{%1, %0|%0, %1} ++ movq2dq\t{%1, %0|%0, %1} ++ xorps\t%0, %0 ++ movq\t{%1, %0|%0, %1} + movq\t{%1, %0|%0, %1}" +- [(set_attr "type" "mmxcvt") ++ [(set_attr "type" "mmxmov,mmxmov,mmxmov,ssecvt,ssecvt,ssemov,ssemov,ssemov") + (set_attr "mode" "DI")]) + + (define_expand "movti" +@@ -18606,17 +18650,14 @@ + (match_operand:TF 1 "nonimmediate_operand" ""))] + "TARGET_64BIT" + { +- if (TARGET_64BIT) +- ix86_expand_move (TFmode, operands); +- else +- ix86_expand_vector_move (TFmode, operands); ++ ix86_expand_move (TFmode, operands); + DONE; + }) + +-(define_insn "movv2df_internal" ++(define_insn "*movv2df_internal" + [(set (match_operand:V2DF 0 "nonimmediate_operand" "=x,x,m") + (match_operand:V2DF 1 "vector_move_operand" "C,xm,x"))] +- "TARGET_SSE2 ++ "TARGET_SSE + && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" + { + switch (which_alternative) +@@ -18638,7 +18679,9 @@ + } + [(set_attr "type" "ssemov") + (set (attr "mode") +- (cond [(eq_attr "alternative" "0,1") ++ (cond [(eq (symbol_ref "TARGET_SSE2") (const_int 0)) ++ (const_string "V4SF") ++ (eq_attr "alternative" "0,1") + (if_then_else + (ne (symbol_ref "optimize_size") + (const_int 0)) +@@ -18654,10 +18697,10 @@ + (const_string "V2DF"))] + (const_string "V2DF")))]) + +-(define_insn "movv8hi_internal" ++(define_insn "*movv8hi_internal" + [(set (match_operand:V8HI 0 "nonimmediate_operand" "=x,x,m") + (match_operand:V8HI 1 "vector_move_operand" "C,xm,x"))] +- "TARGET_SSE2 ++ "TARGET_SSE + && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" + { + switch (which_alternative) +@@ -18695,10 +18738,10 @@ + (const_string "TI"))] + (const_string "TI")))]) + +-(define_insn "movv16qi_internal" ++(define_insn "*movv16qi_internal" + [(set (match_operand:V16QI 0 "nonimmediate_operand" "=x,x,m") + (match_operand:V16QI 1 "vector_move_operand" "C,xm,x"))] +- "TARGET_SSE2 ++ "TARGET_SSE + && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" + { + switch (which_alternative) +@@ -18739,7 +18782,7 @@ + (define_expand "movv2df" + [(set (match_operand:V2DF 0 "nonimmediate_operand" "") + (match_operand:V2DF 1 "nonimmediate_operand" ""))] +- "TARGET_SSE2" ++ "TARGET_SSE" + { + ix86_expand_vector_move (V2DFmode, operands); + DONE; +@@ -18748,7 +18791,7 @@ + (define_expand "movv8hi" + [(set (match_operand:V8HI 0 "nonimmediate_operand" "") + (match_operand:V8HI 1 "nonimmediate_operand" ""))] +- "TARGET_SSE2" ++ "TARGET_SSE" + { + ix86_expand_vector_move (V8HImode, operands); + DONE; +@@ -18757,7 +18800,7 @@ + (define_expand "movv16qi" + [(set (match_operand:V16QI 0 "nonimmediate_operand" "") + (match_operand:V16QI 1 "nonimmediate_operand" ""))] +- "TARGET_SSE2" ++ "TARGET_SSE" + { + ix86_expand_vector_move (V16QImode, operands); + DONE; +@@ -18820,7 +18863,7 @@ + (define_expand "movv2sf" + [(set (match_operand:V2SF 0 "nonimmediate_operand" "") + (match_operand:V2SF 1 "nonimmediate_operand" ""))] +- "TARGET_3DNOW" ++ "TARGET_MMX" + { + ix86_expand_vector_move (V2SFmode, operands); + DONE; +@@ -18841,19 +18884,19 @@ + (define_insn "*pushv2di" + [(set (match_operand:V2DI 0 "push_operand" "=<") + (match_operand:V2DI 1 "register_operand" "x"))] +- "TARGET_SSE2" ++ "TARGET_SSE" + "#") + + (define_insn "*pushv8hi" + [(set (match_operand:V8HI 0 "push_operand" "=<") + (match_operand:V8HI 1 "register_operand" "x"))] +- "TARGET_SSE2" ++ "TARGET_SSE" + "#") + + (define_insn "*pushv16qi" + [(set (match_operand:V16QI 0 "push_operand" "=<") + (match_operand:V16QI 1 "register_operand" "x"))] +- "TARGET_SSE2" ++ "TARGET_SSE" + "#") + + (define_insn "*pushv4sf" +@@ -18865,7 +18908,7 @@ + (define_insn "*pushv4si" + [(set (match_operand:V4SI 0 "push_operand" "=<") + (match_operand:V4SI 1 "register_operand" "x"))] +- "TARGET_SSE2" ++ "TARGET_SSE" + "#") + + (define_insn "*pushv2si" +@@ -18889,7 +18932,7 @@ + (define_insn "*pushv2sf" + [(set (match_operand:V2SF 0 "push_operand" "=<") + (match_operand:V2SF 1 "register_operand" "y"))] +- "TARGET_3DNOW" ++ "TARGET_MMX" + "#") + + (define_split +@@ -18915,7 +18958,7 @@ + operands[3] = GEN_INT (-GET_MODE_SIZE (GET_MODE (operands[0])));") + + +-(define_insn "movti_internal" ++(define_insn "*movti_internal" + [(set (match_operand:TI 0 "nonimmediate_operand" "=x,x,m") + (match_operand:TI 1 "vector_move_operand" "C,xm,x"))] + "TARGET_SSE && !TARGET_64BIT +Index: gcc/config/i386/t-rtems-i386 +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/i386/t-rtems-i386,v +retrieving revision 1.3 +retrieving revision 1.3.68.1 +diff -u -r1.3 -r1.3.68.1 +--- gcc/config/i386/t-rtems-i386 13 Feb 2002 22:48:53 -0000 1.3 ++++ gcc/config/i386/t-rtems-i386 13 Jan 2005 12:31:06 -0000 1.3.68.1 +@@ -36,17 +36,17 @@ + echo '#define EXTENDED_FLOAT_STUBS' > xp-bit.c + cat $(srcdir)/config/fp-bit.c >> xp-bit.c + +-MULTILIB_OPTIONS = mcpu=i486/mcpu=pentium/mcpu=pentiumpro/mcpu=k6/mcpu=athlon \ ++MULTILIB_OPTIONS = mtune=i486/mtune=pentium/mtune=pentiumpro/mtune=k6/mtune=athlon \ + msoft-float mno-fp-ret-in-387 + MULTILIB_DIRNAMES= m486 mpentium mpentiumpro k6 athlon soft-float nofp + MULTILIB_MATCHES = msoft-float=mno-m80387 + MULTILIB_EXCEPTIONS = \ + mno-fp-ret-in-387 \ +-mcpu=i486/*mno-fp-ret-in-387* \ +-mcpu=pentium/*msoft-float* mcpu=pentium/*mno-fp-ret-in-387* \ +-mcpu=pentiumpro/*msoft-float* mcpu=pentiumpro/*mno-fp-ret-in-387* \ +-mcpu=k6/*msoft-float* mcpu=k6/*mno-fp-ret-in-387* \ +-mcpu=athlon/*msoft-float* mcpu=athlon/*mno-fp-ret-in-387* ++mtune=i486/*mno-fp-ret-in-387* \ ++mtune=pentium/*msoft-float* mtune=pentium/*mno-fp-ret-in-387* \ ++mtune=pentiumpro/*msoft-float* mtune=pentiumpro/*mno-fp-ret-in-387* \ ++mtune=k6/*msoft-float* mtune=k6/*mno-fp-ret-in-387* \ ++mtune=athlon/*msoft-float* mtune=athlon/*mno-fp-ret-in-387* + + EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o + +Index: gcc/config/ia64/ia64.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/ia64/ia64.c,v +retrieving revision 1.265.2.14 +retrieving revision 1.265.2.17 +diff -u -r1.265.2.14 -r1.265.2.17 +--- gcc/config/ia64/ia64.c 15 Sep 2004 23:21:12 -0000 1.265.2.14 ++++ gcc/config/ia64/ia64.c 13 Jan 2005 05:57:05 -0000 1.265.2.17 +@@ -390,20 +390,55 @@ + int + sdata_symbolic_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) + { ++ HOST_WIDE_INT offset = 0, size = 0; ++ + switch (GET_CODE (op)) + { + case CONST: +- if (GET_CODE (XEXP (op, 0)) != PLUS +- || GET_CODE (XEXP (XEXP (op, 0), 0)) != SYMBOL_REF) ++ op = XEXP (op, 0); ++ if (GET_CODE (op) != PLUS ++ || GET_CODE (XEXP (op, 0)) != SYMBOL_REF ++ || GET_CODE (XEXP (op, 1)) != CONST_INT) + break; +- op = XEXP (XEXP (op, 0), 0); ++ offset = INTVAL (XEXP (op, 1)); ++ op = XEXP (op, 0); + /* FALLTHRU */ + + case SYMBOL_REF: + if (CONSTANT_POOL_ADDRESS_P (op)) +- return GET_MODE_SIZE (get_pool_mode (op)) <= ia64_section_threshold; ++ { ++ size = GET_MODE_SIZE (get_pool_mode (op)); ++ if (size > ia64_section_threshold) ++ return false; ++ } + else +- return SYMBOL_REF_LOCAL_P (op) && SYMBOL_REF_SMALL_P (op); ++ { ++ tree t; ++ ++ if (!SYMBOL_REF_LOCAL_P (op) || !SYMBOL_REF_SMALL_P (op)) ++ return false; ++ ++ /* Note that in addition to DECLs, we can get various forms ++ of constants here. */ ++ t = SYMBOL_REF_DECL (op); ++ if (DECL_P (t)) ++ t = DECL_SIZE_UNIT (t); ++ else ++ t = TYPE_SIZE_UNIT (TREE_TYPE (t)); ++ if (t && host_integerp (t, 0)) ++ { ++ size = tree_low_cst (t, 0); ++ if (size < 0) ++ size = 0; ++ } ++ } ++ ++ /* Deny the stupid user trick of addressing outside the object. Such ++ things quickly result in GPREL22 relocation overflows. Of course, ++ they're also highly undefined. From a pure pedant's point of view ++ they deserve a slap on the wrist (such as provided by a relocation ++ overflow), but that just leads to bugzilla noise. */ ++ return (offset >= 0 && offset <= size); + + default: + break; +@@ -3154,10 +3189,13 @@ + preserve those input registers used as arguments to the sibling call. + It is unclear how to compute that number here. */ + if (current_frame_info.n_input_regs != 0) +- emit_insn (gen_alloc (gen_rtx_REG (DImode, fp), +- GEN_INT (0), GEN_INT (0), +- GEN_INT (current_frame_info.n_input_regs), +- GEN_INT (0))); ++ { ++ rtx n_inputs = GEN_INT (current_frame_info.n_input_regs); ++ insn = emit_insn (gen_alloc (gen_rtx_REG (DImode, fp), ++ const0_rtx, const0_rtx, ++ n_inputs, const0_rtx)); ++ RTX_FRAME_RELATED_P (insn) = 1; ++ } + } + } + +@@ -3283,15 +3321,16 @@ + ia64_assemble_integer (rtx x, unsigned int size, int aligned_p) + { + if (size == POINTER_SIZE / BITS_PER_UNIT +- && aligned_p + && !(TARGET_NO_PIC || TARGET_AUTO_PIC) + && GET_CODE (x) == SYMBOL_REF + && SYMBOL_REF_FUNCTION_P (x)) + { +- if (POINTER_SIZE == 32) +- fputs ("\tdata4\t@fptr(", asm_out_file); +- else +- fputs ("\tdata8\t@fptr(", asm_out_file); ++ static const char * const directive[2][2] = { ++ /* 64-bit pointer */ /* 32-bit pointer */ ++ { "\tdata8.ua\t@fptr(", "\tdata4.ua\t@fptr("}, /* unaligned */ ++ { "\tdata8\t@fptr(", "\tdata4\t@fptr("} /* aligned */ ++ }; ++ fputs (directive[(aligned_p != 0)][POINTER_SIZE == 32], asm_out_file); + output_addr_const (asm_out_file, x); + fputs (")\n", asm_out_file); + return true; +@@ -7788,13 +7827,24 @@ + { + dest_regno = REGNO (dest); + +- /* If this isn't the final destination for ar.pfs, the alloc +- shouldn't have been marked frame related. */ +- if (dest_regno != current_frame_info.reg_save_ar_pfs) +- abort (); +- +- fprintf (asm_out_file, "\t.save ar.pfs, r%d\n", +- ia64_dbx_register_number (dest_regno)); ++ /* If this is the final destination for ar.pfs, then this must ++ be the alloc in the prologue. */ ++ if (dest_regno == current_frame_info.reg_save_ar_pfs) ++ fprintf (asm_out_file, "\t.save ar.pfs, r%d\n", ++ ia64_dbx_register_number (dest_regno)); ++ else ++ { ++ /* This must be an alloc before a sibcall. We must drop the ++ old frame info. The easiest way to drop the old frame ++ info is to ensure we had a ".restore sp" directive ++ followed by a new prologue. If the procedure doesn't ++ have a memory-stack frame, we'll issue a dummy ".restore ++ sp" now. */ ++ if (current_frame_info.total_size == 0 && !frame_pointer_needed) ++ /* if haven't done process_epilogue() yet, do it now */ ++ process_epilogue (); ++ fprintf (asm_out_file, "\t.prologue\n"); ++ } + return 1; + } + +Index: gcc/config/ia64/unwind-ia64.h +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/ia64/unwind-ia64.h,v +retrieving revision 1.2 +retrieving revision 1.2.16.1 +diff -u -r1.2 -r1.2.16.1 +--- gcc/config/ia64/unwind-ia64.h 13 Mar 2003 18:26:30 -0000 1.2 ++++ gcc/config/ia64/unwind-ia64.h 10 Nov 2004 06:37:03 -0000 1.2.16.1 +@@ -28,4 +28,5 @@ + + extern struct unw_table_entry * + _Unwind_FindTableEntry (void *pc, unsigned long *segment_base, +- unsigned long *gp); ++ unsigned long *gp) ++ __attribute__ ((__visibility__ ("hidden"))); +Index: gcc/config/m68hc11/t-m68hc11-gas +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/m68hc11/t-m68hc11-gas,v +retrieving revision 1.12 +retrieving revision 1.12.10.1 +diff -u -r1.12 -r1.12.10.1 +--- gcc/config/m68hc11/t-m68hc11-gas 14 Oct 2003 19:07:12 -0000 1.12 ++++ gcc/config/m68hc11/t-m68hc11-gas 28 Jan 2005 22:18:27 -0000 1.12.10.1 +@@ -27,7 +27,7 @@ + _ashrhi3 _lshrhi3 _lshlhi3 _ashrqi3 _lshlqi3 _map_data _init_bss \ + _ctor _dtor _far_tramp _call_far _return_far + +-TARGET_LIBGCC2_CFLAGS = -DUSE_GAS -DIN_GCC ++TARGET_LIBGCC2_CFLAGS = -DUSE_GAS -DIN_GCC -Dinhibit_libc + + # C implementation of 32-bit div/mod. + LIB2FUNCS_EXTRA = $(srcdir)/config/udivmodsi4.c \ +@@ -53,7 +53,7 @@ + dp-bit.c: $(srcdir)/config/fp-bit.c + echo '#define SMALL_MACHINE' >> dp-bit.c + echo '#define CMPtype HItype' >> dp-bit.c +- echo '#ifdef __LITTLE_ENDIAN__' > dp-bit.c ++ echo '#ifdef __LITTLE_ENDIAN__' >> dp-bit.c + echo '#define FLOAT_BIT_ORDER_MISMATCH' >>dp-bit.c + echo '#endif' >> dp-bit.c + cat $(srcdir)/config/fp-bit.c >> dp-bit.c +Index: gcc/config/m68k/t-rtems +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/m68k/t-rtems,v +retrieving revision 1.2 +retrieving revision 1.2.28.1 +diff -u -r1.2 -r1.2.28.1 +--- gcc/config/m68k/t-rtems 19 Sep 2003 16:47:54 -0000 1.2 ++++ gcc/config/m68k/t-rtems 7 Feb 2005 05:40:55 -0000 1.2.28.1 +@@ -3,4 +3,5 @@ + MULTILIB_OPTIONS = m68000/m68020/m5200/mcpu32/m68030/m68040/m68060 m68881/msoft-float + MULTILIB_DIRNAMES = + MULTILIB_MATCHES = m68000=mc68000 m68000=m68302 mcpu32=m68332 m68020=mc68020 m68030=mc68030 ++MULTILIB_MATCHES += m5200=m528x + MULTILIB_EXCEPTIONS = m68000/msoft-float m5200/m68881 m5200/msoft-float mcpu32/m68881 mcpu32/msoft-float m68040/m68881 m68060/m68881 +Index: gcc/config/mips/rtems.h +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/mips/rtems.h,v +retrieving revision 1.7 +retrieving revision 1.7.10.1 +diff -u -r1.7 -r1.7.10.1 +--- gcc/config/mips/rtems.h 27 Sep 2003 04:48:26 -0000 1.7 ++++ gcc/config/mips/rtems.h 15 Jan 2005 08:43:50 -0000 1.7.10.1 +@@ -1,5 +1,6 @@ + /* Definitions for rtems targeting a MIPS using ELF. +- Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2003 Free Software Foundation, Inc. ++ Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2005 ++ Free Software Foundation, Inc. + Contributed by Joel Sherrill (joel@OARcorp.com). + + This file is part of GCC. +@@ -27,3 +28,9 @@ + builtin_define ("__USE_INIT_FINI__"); \ + builtin_assert ("system=rtems"); \ + } while (0) ++ ++/* No sdata. ++ * The RTEMS BSPs expect -G0 ++ */ ++#undef MIPS_DEFAULT_GVALUE ++#define MIPS_DEFAULT_GVALUE 0 +Index: gcc/config/mips/t-iris5-6 +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/mips/Attic/t-iris5-6,v +retrieving revision 1.3.20.1 +retrieving revision 1.3.20.2 +diff -u -r1.3.20.1 -r1.3.20.2 +--- gcc/config/mips/t-iris5-6 18 Oct 2004 16:00:51 -0000 1.3.20.1 ++++ gcc/config/mips/t-iris5-6 16 Dec 2004 19:16:21 -0000 1.3.20.2 +@@ -12,7 +12,7 @@ + -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) -lc && \ + rm -f $(SHLIB_SOLINK) && \ + if [ -f $(SHLIB_NAME) ]; then \ +- mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \ ++ mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \ + else true; fi && \ + mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \ + $(LN_S) $(SHLIB_NAME) $(SHLIB_SOLINK) +Index: gcc/config/mips/t-iris6 +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/mips/t-iris6,v +retrieving revision 1.23 +retrieving revision 1.23.4.1 +diff -u -r1.23 -r1.23.4.1 +--- gcc/config/mips/t-iris6 24 Dec 2003 03:59:59 -0000 1.23 ++++ gcc/config/mips/t-iris6 7 Nov 2004 20:20:14 -0000 1.23.4.1 +@@ -22,7 +22,7 @@ + echo '#ifdef __MIPSEL__' > tp-bit.c + echo '# define FLOAT_BIT_ORDER_MISMATCH' >> tp-bit.c + echo '#endif' >> tp-bit.c +- echo '#define QUIET_NAN_NEGATED' >> dp-bit.c ++ echo '#define QUIET_NAN_NEGATED' >> tp-bit.c + echo '#if __LDBL_MANT_DIG__ == 106' >> tp-bit.c + echo '# define TFLOAT' >> tp-bit.c + cat $(srcdir)/config/fp-bit.c >> tp-bit.c +Index: gcc/config/mips/t-rtems +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/mips/t-rtems,v +retrieving revision 1.2 +retrieving revision 1.2.28.1 +diff -u -r1.2 -r1.2.28.1 +--- gcc/config/mips/t-rtems 19 Sep 2003 13:24:47 -0000 1.2 ++++ gcc/config/mips/t-rtems 15 Jan 2005 08:43:50 -0000 1.2.28.1 +@@ -1,5 +1,5 @@ + # Custom multilibs for RTEMS + +-MULTILIB_OPTIONS = mips1/mips3 msoft-float/msingle-float EL/EB +-MULTILIB_DIRNAMES = mips1 mips3 soft-float single el eb ++MULTILIB_OPTIONS = mips1/mips3/mips32 msoft-float/msingle-float ++MULTILIB_DIRNAMES = mips1 mips3 mips32 soft-float single + MULTILIB_MATCHES = msingle-float=m4650 +Index: gcc/config/mmix/mmix.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/mmix/mmix.c,v +retrieving revision 1.55 +retrieving revision 1.55.10.1 +diff -u -r1.55 -r1.55.10.1 +--- gcc/config/mmix/mmix.c 5 Oct 2003 19:50:55 -0000 1.55 ++++ gcc/config/mmix/mmix.c 14 Nov 2004 04:53:23 -0000 1.55.10.1 +@@ -620,8 +620,22 @@ + return + gen_rtx_REG (mode, MMIX_OUTGOING_RETURN_VALUE_REGNUM); + +- /* A complex type, made up of components. */ +- cmode = TYPE_MODE (TREE_TYPE (valtype)); ++ if (COMPLEX_MODE_P (mode)) ++ /* A complex type, made up of components. */ ++ cmode = TYPE_MODE (TREE_TYPE (valtype)); ++ else ++ { ++ /* Of the other larger-than-register modes, we only support ++ scalar mode TImode. (At least, that's the only one that's ++ been rudimentally tested.) Make sure we're alerted for ++ unexpected cases. */ ++ if (mode != TImode) ++ sorry ("support for mode `%s'", GET_MODE_NAME (mode)); ++ ++ /* In any case, we will fill registers to the natural size. */ ++ cmode = DImode; ++ } ++ + nregs = ((GET_MODE_BITSIZE (mode) + BITS_PER_WORD - 1) / BITS_PER_WORD); + + /* We need to take care of the effect of the register hole on return +Index: gcc/config/mmix/mmix.h +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/mmix/mmix.h,v +retrieving revision 1.58.14.1 +retrieving revision 1.58.14.2 +diff -u -r1.58.14.1 -r1.58.14.2 +--- gcc/config/mmix/mmix.h 9 Mar 2004 03:00:05 -0000 1.58.14.1 ++++ gcc/config/mmix/mmix.h 14 Nov 2004 04:53:23 -0000 1.58.14.2 +@@ -1,5 +1,5 @@ + /* Definitions of target machine for GNU compiler, for MMIX. +- Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. ++ Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. + Contributed by Hans-Peter Nilsson (hp@bitrange.com) + + This file is part of GCC. +@@ -269,15 +269,6 @@ + #define FLOAT_WORDS_BIG_ENDIAN 1 + #define UNITS_PER_WORD 8 + +-/* FIXME: This macro is correlated to MAX_FIXED_MODE_SIZE in that +- e.g. this macro must not be 8 (default, UNITS_PER_WORD) when +- MAX_FIXED_MODE_SIZE is 64 (default, DImode), or really: this must be +- set manually if MAX_FIXED_MODE_SIZE is not at least twice the register +- size. By setting it to 4, we don't have to worry about TImode things +- yet. Revisit, perhaps get TImode going or get some solution that does +- not mandate TImode or lie in other ways. */ +-#define MIN_UNITS_PER_WORD 4 +- + /* FIXME: Promotion of modes currently generates slow code, extending + before every operation. */ + +@@ -745,7 +736,7 @@ + + typedef struct { int regs; int lib; } CUMULATIVE_ARGS; + +-#define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, INDIRECT, N_NAMED_ARGS) \ ++#define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, FNDECL, N_NAMED_ARGS) \ + ((CUM).regs = 0, (CUM).lib = ((LIBNAME) != 0)) + + #define FUNCTION_ARG_ADVANCE(CUM, MODE, TYPE, NAMED) \ +Index: gcc/config/pa/pa-protos.h +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/pa/pa-protos.h,v +retrieving revision 1.29.4.2 +retrieving revision 1.29.4.3 +diff -u -r1.29.4.2 -r1.29.4.3 +--- gcc/config/pa/pa-protos.h 21 Jan 2004 22:16:47 -0000 1.29.4.2 ++++ gcc/config/pa/pa-protos.h 28 Dec 2004 04:51:32 -0000 1.29.4.3 +@@ -137,6 +137,7 @@ + + extern void override_options (void); + extern void output_ascii (FILE *, const char *, int); ++extern const char * som_text_section_asm_op (void); + extern HOST_WIDE_INT compute_frame_size (HOST_WIDE_INT, int *); + extern int and_mask_p (unsigned HOST_WIDE_INT); + extern int cint_ok_for_move (HOST_WIDE_INT); +@@ -153,7 +154,6 @@ + #endif + + +- + #ifdef TREE_CODE + extern int reloc_needed (tree); + #ifdef RTX_CODE +@@ -165,3 +165,9 @@ + enum machine_mode, + tree, int); + #endif /* TREE_CODE */ ++ ++/* Functions in varasm.c used by pa.c. */ ++extern void som_readonly_data_section (void); ++extern void som_one_only_readonly_data_section (void); ++extern void som_one_only_data_section (void); ++extern void forget_section (void); +Index: gcc/config/pa/pa.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/pa/pa.c,v +retrieving revision 1.235.4.7 +retrieving revision 1.235.4.9 +diff -u -r1.235.4.7 -r1.235.4.9 +--- gcc/config/pa/pa.c 11 Jul 2004 03:32:51 -0000 1.235.4.7 ++++ gcc/config/pa/pa.c 28 Dec 2004 04:51:33 -0000 1.235.4.9 +@@ -148,6 +148,7 @@ + #ifdef HPUX_LONG_DOUBLE_LIBRARY + static void pa_hpux_init_libfuncs (void); + #endif ++static struct machine_function * pa_init_machine_status (void); + + /* Save the operands last given to a compare for use when we + generate a scc or bcc insn. */ +@@ -370,6 +371,8 @@ + targetm.asm_out.unaligned_op.si = NULL; + targetm.asm_out.unaligned_op.di = NULL; + } ++ ++ init_machine_status = pa_init_machine_status; + } + + static void +@@ -381,6 +384,16 @@ + #endif + } + ++/* Function to init struct machine_function. ++ This will be called, via a pointer variable, ++ from push_function_context. */ ++ ++static struct machine_function * ++pa_init_machine_status (void) ++{ ++ return ggc_alloc_cleared (sizeof (machine_function)); ++} ++ + /* If FROM is a probable pointer register, mark TO as a probable + pointer register with the same pointer alignment as FROM. */ + +@@ -4098,6 +4111,14 @@ + + fputs ("\t.EXIT\n\t.PROCEND\n", file); + ++ if (TARGET_SOM && TARGET_GAS) ++ { ++ /* We done with this subspace except possibly for some additional ++ debug information. Forget that we are in this subspace to ensure ++ that the next function is output in its own subspace. */ ++ forget_section (); ++ } ++ + if (INSN_ADDRESSES_SET_P ()) + { + insn = get_last_nonnote_insn (); +@@ -7897,8 +7918,9 @@ + fprintf (file, "\t.align 4\n"); + ASM_OUTPUT_LABEL (file, label); + fprintf (file, "\t.word P'%s\n", fname); +- function_section (thunk_fndecl); + } ++ else if (TARGET_SOM && TARGET_GAS) ++ forget_section (); + + current_thunk_number++; + nbytes = ((nbytes + FUNCTION_BOUNDARY / BITS_PER_UNIT - 1) +@@ -7933,6 +7955,9 @@ + static bool + pa_function_ok_for_sibcall (tree decl, tree exp ATTRIBUTE_UNUSED) + { ++ if (TARGET_PORTABLE_RUNTIME) ++ return false; ++ + /* Sibcalls are ok for TARGET_ELF32 as along as the linker is used in + single subspace mode and the call is not indirect. As far as I know, + there is no operating system support for the multiple subspace mode. +@@ -7950,9 +7975,8 @@ + if (TARGET_64BIT) + return false; + +- return (decl +- && !TARGET_PORTABLE_RUNTIME +- && !TREE_PUBLIC (decl)); ++ /* Sibcalls are only ok within a translation unit. */ ++ return (decl && !TREE_PUBLIC (decl)); + } + + /* Returns 1 if the 6 operands specified in OPERANDS are suitable for +@@ -9058,6 +9082,50 @@ + || GET_CODE (op) == LEU)); + } + ++/* Return a string to output before text in the current function. ++ ++ This function is only used with SOM. Because we don't support ++ named subspaces, we can only create a new subspace or switch back ++ to the default text subspace. */ ++const char * ++som_text_section_asm_op (void) ++{ ++ if (!TARGET_SOM) ++ return ""; ++ ++ if (TARGET_GAS) ++ { ++ if (cfun && !cfun->machine->in_nsubspa) ++ { ++ /* We only want to emit a .nsubspa directive once at the ++ start of the function. */ ++ cfun->machine->in_nsubspa = 1; ++ ++ /* Create a new subspace for the text. This provides ++ better stub placement and one-only functions. */ ++ if (cfun->decl ++ && DECL_ONE_ONLY (cfun->decl) ++ && !DECL_WEAK (cfun->decl)) ++ return ++ "\t.SPACE $TEXT$\n\t.NSUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,SORT=24,COMDAT"; ++ ++ return "\t.SPACE $TEXT$\n\t.NSUBSPA $CODE$"; ++ } ++ else ++ { ++ /* There isn't a current function or the body of the current ++ function has been completed. So, we are changing to the ++ text section to output debugging information. Do this in ++ the default text section. We need to forget that we are ++ in the text section so that the function text_section in ++ varasm.c will call us the next time around. */ ++ forget_section (); ++ } ++ } ++ ++ return "\t.SPACE $TEXT$\n\t.SUBSPA $CODE$"; ++} ++ + /* On hpux10, the linker will give an error if we have a reference + in the read-only data section to a symbol defined in a shared + library. Therefore, expressions that might require a reloc can +@@ -9074,11 +9142,23 @@ + && (DECL_INITIAL (exp) == error_mark_node + || TREE_CONSTANT (DECL_INITIAL (exp))) + && !reloc) +- readonly_data_section (); ++ { ++ if (TARGET_SOM ++ && DECL_ONE_ONLY (exp) ++ && !DECL_WEAK (exp)) ++ som_one_only_readonly_data_section (); ++ else ++ readonly_data_section (); ++ } + else if (TREE_CODE_CLASS (TREE_CODE (exp)) == 'c' + && !(TREE_CODE (exp) == STRING_CST && flag_writable_strings) + && !reloc) + readonly_data_section (); ++ else if (TARGET_SOM ++ && TREE_CODE (exp) == VAR_DECL ++ && DECL_ONE_ONLY (exp) ++ && !DECL_WEAK (exp)) ++ som_one_only_data_section (); + else + data_section (); + } +Index: gcc/config/pa/pa.h +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/pa/pa.h,v +retrieving revision 1.208.4.6 +retrieving revision 1.208.4.7 +diff -u -r1.208.4.6 -r1.208.4.7 +--- gcc/config/pa/pa.h 22 Jun 2004 00:18:08 -0000 1.208.4.6 ++++ gcc/config/pa/pa.h 28 Dec 2004 04:51:33 -0000 1.208.4.7 +@@ -424,6 +424,12 @@ + #define CAN_DEBUG_WITHOUT_FP + + /* target machine storage layout */ ++typedef struct machine_function GTY(()) ++{ ++ /* Flag indicating that a .NSUBSPA directive has been output for ++ this function. */ ++ int in_nsubspa; ++} machine_function; + + /* Define this macro if it is advisable to hold scalars in registers + in a wider mode than that declared by the program. In such cases, +@@ -1682,12 +1688,78 @@ + goto LABEL + + #define TARGET_ASM_SELECT_SECTION pa_select_section +- ++ + /* Return a nonzero value if DECL has a section attribute. */ + #define IN_NAMED_SECTION_P(DECL) \ + ((TREE_CODE (DECL) == FUNCTION_DECL || TREE_CODE (DECL) == VAR_DECL) \ + && DECL_SECTION_NAME (DECL) != NULL_TREE) + ++/* The following extra sections and extra section functions are only used ++ for SOM, but they must be provided unconditionally because pa.c's calls ++ to the functions might not get optimized out when other object formats ++ are in use. */ ++ ++#define EXTRA_SECTIONS \ ++ in_som_readonly_data, \ ++ in_som_one_only_readonly_data, \ ++ in_som_one_only_data ++ ++#define EXTRA_SECTION_FUNCTIONS \ ++ SOM_READONLY_DATA_SECTION_FUNCTION \ ++ SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION \ ++ SOM_ONE_ONLY_DATA_SECTION_FUNCTION \ ++ FORGET_SECTION_FUNCTION ++ ++/* SOM puts readonly data in the default $LIT$ subspace when PIC code ++ is not being generated. */ ++#define SOM_READONLY_DATA_SECTION_FUNCTION \ ++void \ ++som_readonly_data_section (void) \ ++{ \ ++ if (!TARGET_SOM) \ ++ return; \ ++ if (in_section != in_som_readonly_data) \ ++ { \ ++ in_section = in_som_readonly_data; \ ++ fputs ("\t.SPACE $TEXT$\n\t.SUBSPA $LIT$\n", asm_out_file); \ ++ } \ ++} ++ ++/* When secondary definitions are not supported, SOM makes readonly data one ++ only by creating a new $LIT$ subspace in $TEXT$ with the comdat flag. */ ++#define SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION \ ++void \ ++som_one_only_readonly_data_section (void) \ ++{ \ ++ if (!TARGET_SOM) \ ++ return; \ ++ in_section = in_som_one_only_readonly_data; \ ++ fputs ("\t.SPACE $TEXT$\n" \ ++ "\t.NSUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=0x2c,SORT=16,COMDAT\n",\ ++ asm_out_file); \ ++} ++ ++/* When secondary definitions are not supported, SOM makes data one only by ++ creating a new $DATA$ subspace in $PRIVATE$ with the comdat flag. */ ++#define SOM_ONE_ONLY_DATA_SECTION_FUNCTION \ ++void \ ++som_one_only_data_section (void) \ ++{ \ ++ if (!TARGET_SOM) \ ++ return; \ ++ in_section = in_som_one_only_data; \ ++ fputs ("\t.SPACE $PRIVATE$\n" \ ++ "\t.NSUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31,SORT=24,COMDAT\n", \ ++ asm_out_file); \ ++} ++ ++#define FORGET_SECTION_FUNCTION \ ++void \ ++forget_section (void) \ ++{ \ ++ in_section = no_section; \ ++} ++ + /* Define this macro if references to a symbol must be treated + differently depending on something about the variable or + function named by the symbol (such as what section it is in). +Index: gcc/config/pa/som.h +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/pa/som.h,v +retrieving revision 1.47 +retrieving revision 1.47.6.1 +diff -u -r1.47 -r1.47.6.1 +--- gcc/config/pa/som.h 2 Nov 2003 01:01:24 -0000 1.47 ++++ gcc/config/pa/som.h 28 Dec 2004 04:51:33 -0000 1.47.6.1 +@@ -1,5 +1,5 @@ + /* Definitions for SOM assembler support. +- Copyright (C) 1999, 2001, 2002, 2003 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. + + This file is part of GCC. + +@@ -129,19 +129,6 @@ + #endif + + +-/* NAME refers to the function's name. If we are placing each function into +- its own section, we need to switch to the section for this function. Note +- that the section name will have a "." prefix. */ +-#define ASM_OUTPUT_FUNCTION_PREFIX(FILE, NAME) \ +- { \ +- const char *name = (*targetm.strip_name_encoding) (NAME); \ +- if (TARGET_GAS && in_section == in_text) \ +- fputs ("\t.NSUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY\n", FILE); \ +- else if (TARGET_GAS) \ +- fprintf (FILE, \ +- "\t.SUBSPA .%s\n", name); \ +- } +- + #define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \ + do { tree fntype = TREE_TYPE (TREE_TYPE (DECL)); \ + tree tree_type = TREE_TYPE (DECL); \ +@@ -219,29 +206,14 @@ + + #define TARGET_ASM_FILE_START pa_som_file_start + +-/* Output before code. */ +- +-/* Supposedly the assembler rejects the command if there is no tab! */ +-#define TEXT_SECTION_ASM_OP "\t.SPACE $TEXT$\n\t.SUBSPA $CODE$\n" ++/* String to output before text. */ ++#define TEXT_SECTION_ASM_OP som_text_section_asm_op () + +-/* Output before read-only data. */ ++/* String to output before writable data. */ ++#define DATA_SECTION_ASM_OP "\t.SPACE $PRIVATE$\n\t.SUBSPA $DATA$\n" + +-/* Supposedly the assembler rejects the command if there is no tab! */ +-#define READONLY_DATA_ASM_OP "\t.SPACE $TEXT$\n\t.SUBSPA $LIT$\n" +- +-#define EXTRA_SECTIONS in_readonly_data +- +-#define EXTRA_SECTION_FUNCTIONS \ +-extern void readonly_data (void); \ +-void \ +-readonly_data (void) \ +-{ \ +- if (in_section != in_readonly_data) \ +- { \ +- in_section = in_readonly_data; \ +- fprintf (asm_out_file, "%s\n", READONLY_DATA_ASM_OP); \ +- } \ +-} ++/* String to output before uninitialized data. */ ++#define BSS_SECTION_ASM_OP "\t.SPACE $PRIVATE$\n\t.SUBSPA $BSS$\n" + + /* FIXME: HPUX ld generates incorrect GOT entries for "T" fixups + which reference data within the $TEXT$ space (for example constant +@@ -255,17 +227,8 @@ + $TEXT$ space during PIC generation. Instead place all constant + data into the $PRIVATE$ subspace (this reduces sharing, but it + works correctly). */ +- +-#define READONLY_DATA_SECTION (flag_pic ? data_section : readonly_data) +- +-/* Output before writable data. */ +- +-/* Supposedly the assembler rejects the command if there is no tab! */ +-#define DATA_SECTION_ASM_OP "\t.SPACE $PRIVATE$\n\t.SUBSPA $DATA$\n" +- +-/* Output before uninitialized data. */ +- +-#define BSS_SECTION_ASM_OP "\t.SPACE $PRIVATE$\n\t.SUBSPA $BSS$\n" ++#define READONLY_DATA_SECTION \ ++ (flag_pic ? data_section : som_readonly_data_section) + + /* We must not have a reference to an external symbol defined in a + shared library in a readonly section, else the SOM linker will +@@ -361,11 +324,30 @@ + #define SUPPORTS_WEAK 0 + #endif + +-/* We can support one only if we support weak. */ +-#define SUPPORTS_ONE_ONLY SUPPORTS_WEAK ++/* CVS GAS as of 4/28/04 supports a comdat parameter for the .nsubspa ++ directive. This provides one-only linkage semantics even though we ++ don't have weak support. */ ++#ifdef HAVE_GAS_NSUBSPA_COMDAT ++#define SUPPORTS_SOM_COMDAT (TARGET_GAS) ++#else ++#define SUPPORTS_SOM_COMDAT 0 ++#endif ++ ++/* We can support one only if we support weak or comdat. */ ++#define SUPPORTS_ONE_ONLY (SUPPORTS_WEAK || SUPPORTS_SOM_COMDAT) + +-/* Use weak (secondary definitions) to make one only declarations. */ +-#define MAKE_DECL_ONE_ONLY(DECL) (DECL_WEAK (DECL) = 1) ++/* We use DECL_COMMON for uninitialized one-only variables as we don't ++ have linkonce .bss. We use SOM secondary definitions or comdat for ++ initialized variables and functions. */ ++#define MAKE_DECL_ONE_ONLY(DECL) \ ++ do { \ ++ if (TREE_CODE (DECL) == VAR_DECL \ ++ && (DECL_INITIAL (DECL) == 0 \ ++ || DECL_INITIAL (DECL) == error_mark_node)) \ ++ DECL_COMMON (DECL) = 1; \ ++ else if (SUPPORTS_WEAK) \ ++ DECL_WEAK (DECL) = 1; \ ++ } while (0) + + /* This is how we tell the assembler that a symbol is weak. The SOM + weak implementation uses the secondary definition (sdef) flag. +Index: gcc/config/pa/t-hpux-shlib +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/pa/t-hpux-shlib,v +retrieving revision 1.2.20.1 +retrieving revision 1.2.20.2 +diff -u -r1.2.20.1 -r1.2.20.2 +--- gcc/config/pa/t-hpux-shlib 18 Oct 2004 16:00:51 -0000 1.2.20.1 ++++ gcc/config/pa/t-hpux-shlib 16 Dec 2004 19:16:22 -0000 1.2.20.2 +@@ -8,7 +8,7 @@ + -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) -lc && \ + rm -f $(SHLIB_SONAME) && \ + if [ -f $(SHLIB_NAME) ]; then \ +- mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \ ++ mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \ + else true; fi && \ + mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \ + $(LN_S) $(SHLIB_NAME) $(SHLIB_SONAME) +Index: gcc/config/rs6000/aix41.h +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/rs6000/aix41.h,v +retrieving revision 1.18 +retrieving revision 1.18.16.1 +diff -u -r1.18 -r1.18.16.1 +--- gcc/config/rs6000/aix41.h 13 Apr 2003 17:51:05 -0000 1.18 ++++ gcc/config/rs6000/aix41.h 16 Jan 2005 16:01:27 -0000 1.18.16.1 +@@ -98,3 +98,7 @@ + #undef RS6000_CALL_GLUE + #define RS6000_CALL_GLUE "{cror 31,31,31|nop}" + ++/* The IBM AIX 4.x assembler doesn't support forward references in ++ .set directives. We handle this by deferring the output of .set ++ directives to the end of the compilation unit. */ ++#define TARGET_DEFERRED_OUTPUT_DEFS(DECL,TARGET) true +Index: gcc/config/rs6000/aix43.h +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/rs6000/aix43.h,v +retrieving revision 1.30 +retrieving revision 1.30.16.1 +diff -u -r1.30 -r1.30.16.1 +--- gcc/config/rs6000/aix43.h 13 Apr 2003 17:51:05 -0000 1.30 ++++ gcc/config/rs6000/aix43.h 16 Jan 2005 16:01:27 -0000 1.30.16.1 +@@ -187,3 +187,8 @@ + + #undef LD_INIT_SWITCH + #define LD_INIT_SWITCH "-binitfini" ++ ++/* The IBM AIX 4.x assembler doesn't support forward references in ++ .set directives. We handle this by deferring the output of .set ++ directives to the end of the compilation unit. */ ++#define TARGET_DEFERRED_OUTPUT_DEFS(DECL,TARGET) true +Index: gcc/config/rs6000/linux.h +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/rs6000/linux.h,v +retrieving revision 1.42.10.4 +retrieving revision 1.42.10.5 +diff -u -r1.42.10.4 -r1.42.10.5 +--- gcc/config/rs6000/linux.h 3 Oct 2004 03:43:56 -0000 1.42.10.4 ++++ gcc/config/rs6000/linux.h 2 Dec 2004 02:28:29 -0000 1.42.10.5 +@@ -94,8 +94,11 @@ + #undef TARGET_64BIT + #define TARGET_64BIT 0 + +-/* We don't need to generate entries in .fixup. */ ++/* We don't need to generate entries in .fixup, except when ++ -mrelocatable or -mrelocatable-lib is given. */ + #undef RELOCATABLE_NEEDS_FIXUP ++#define RELOCATABLE_NEEDS_FIXUP \ ++ (target_flags & target_flags_explicit & MASK_RELOCATABLE) + + #define TARGET_ASM_FILE_END file_end_indicate_exec_stack + +Index: gcc/config/rs6000/linux64.h +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/rs6000/linux64.h,v +retrieving revision 1.53.4.9 +retrieving revision 1.53.4.10 +diff -u -r1.53.4.9 -r1.53.4.10 +--- gcc/config/rs6000/linux64.h 3 Oct 2004 03:43:56 -0000 1.53.4.9 ++++ gcc/config/rs6000/linux64.h 2 Dec 2004 02:28:30 -0000 1.53.4.10 +@@ -53,8 +53,11 @@ + #undef PROCESSOR_DEFAULT64 + #define PROCESSOR_DEFAULT64 PROCESSOR_PPC630 + +-#undef TARGET_RELOCATABLE +-#define TARGET_RELOCATABLE (!TARGET_64BIT && (target_flags & MASK_RELOCATABLE)) ++/* We don't need to generate entries in .fixup, except when ++ -mrelocatable or -mrelocatable-lib is given. */ ++#undef RELOCATABLE_NEEDS_FIXUP ++#define RELOCATABLE_NEEDS_FIXUP \ ++ (target_flags & target_flags_explicit & MASK_RELOCATABLE) + + #undef RS6000_ABI_NAME + #define RS6000_ABI_NAME (TARGET_64BIT ? "aixdesc" : "sysv") +@@ -188,6 +191,8 @@ + #define TARGET_EABI 0 + #undef TARGET_PROTOTYPE + #define TARGET_PROTOTYPE 0 ++#undef RELOCATABLE_NEEDS_FIXUP ++#define RELOCATABLE_NEEDS_FIXUP 0 + + #endif + +@@ -212,9 +217,6 @@ + #define PROFILE_HOOK(LABEL) \ + do { if (TARGET_64BIT) output_profile_hook (LABEL); } while (0) + +-/* We don't need to generate entries in .fixup. */ +-#undef RELOCATABLE_NEEDS_FIXUP +- + /* PowerPC64 Linux word-aligns FP doubles when -malign-power is given. */ + #undef ADJUST_FIELD_ALIGN + #define ADJUST_FIELD_ALIGN(FIELD, COMPUTED) \ +Index: gcc/config/rs6000/rs6000-c.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000-c.c,v +retrieving revision 1.10.10.1 +retrieving revision 1.10.10.2 +diff -u -r1.10.10.1 -r1.10.10.2 +--- gcc/config/rs6000/rs6000-c.c 23 Aug 2004 18:02:54 -0000 1.10.10.1 ++++ gcc/config/rs6000/rs6000-c.c 27 Nov 2004 00:50:21 -0000 1.10.10.2 +@@ -62,13 +62,13 @@ + if (c_lex (&x) != CPP_CLOSE_PAREN) + SYNTAX_ERROR ("missing close paren"); + +- if (n != integer_zero_node && n != integer_one_node) ++ if (!integer_zerop (n) && !integer_onep (n)) + SYNTAX_ERROR ("number must be 0 or 1"); + + if (c_lex (&x) != CPP_EOF) + warning ("junk at end of #pragma longcall"); + +- rs6000_default_long_calls = (n == integer_one_node); ++ rs6000_default_long_calls = integer_onep (n); + } + + /* Handle defining many CPP flags based on TARGET_xxx. As a general +Index: gcc/config/rs6000/rs6000.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000.c,v +retrieving revision 1.576.2.33 +retrieving revision 1.576.2.40 +diff -u -r1.576.2.33 -r1.576.2.40 +--- gcc/config/rs6000/rs6000.c 22 Oct 2004 19:19:35 -0000 1.576.2.33 ++++ gcc/config/rs6000/rs6000.c 5 Dec 2004 12:52:12 -0000 1.576.2.40 +@@ -252,7 +252,8 @@ + /* Call distance, overridden by -mlongcall and #pragma longcall(1). + The only place that looks at this is rs6000_set_default_type_attributes; + everywhere else should rely on the presence or absence of a longcall +- attribute on the function declaration. */ ++ attribute on the function declaration. Exception: init_cumulative_args ++ looks at it too, for libcalls. */ + int rs6000_default_long_calls; + const char *rs6000_longcall_switch; + +@@ -3971,10 +3972,11 @@ + cum->nargs_prototype = n_named_args; + + /* Check for a longcall attribute. */ +- if (fntype +- && lookup_attribute ("longcall", TYPE_ATTRIBUTES (fntype)) +- && !lookup_attribute ("shortcall", TYPE_ATTRIBUTES (fntype))) +- cum->call_cookie = CALL_LONG; ++ if ((!fntype && rs6000_default_long_calls) ++ || (fntype ++ && lookup_attribute ("longcall", TYPE_ATTRIBUTES (fntype)) ++ && !lookup_attribute ("shortcall", TYPE_ATTRIBUTES (fntype)))) ++ cum->call_cookie |= CALL_LONG; + + if (TARGET_DEBUG_ARG) + { +@@ -9750,7 +9752,7 @@ + { + #ifdef RELOCATABLE_NEEDS_FIXUP + /* Special handling for SI values. */ +- if (size == 4 && aligned_p) ++ if (RELOCATABLE_NEEDS_FIXUP && size == 4 && aligned_p) + { + extern int in_toc_section (void); + static int recurse = 0; +@@ -10526,22 +10528,27 @@ + : gen_adddi3 (breg, breg, delta_rtx)); + src = gen_rtx_MEM (mode, breg); + } +- +- /* We have now address involving an base register only. +- If we use one of the registers to address memory, +- we have change that register last. */ +- +- breg = (GET_CODE (XEXP (src, 0)) == PLUS +- ? XEXP (XEXP (src, 0), 0) +- : XEXP (src, 0)); +- +- if (!REG_P (breg)) +- abort(); +- +- if (REGNO (breg) >= REGNO (dst) ++ else if (! offsettable_memref_p (src)) ++ { ++ rtx newsrc, basereg; ++ basereg = gen_rtx_REG (Pmode, reg); ++ emit_insn (gen_rtx_SET (VOIDmode, basereg, XEXP (src, 0))); ++ newsrc = gen_rtx_MEM (GET_MODE (src), basereg); ++ MEM_COPY_ATTRIBUTES (newsrc, src); ++ src = newsrc; ++ } ++ ++ breg = XEXP (src, 0); ++ if (GET_CODE (breg) == PLUS || GET_CODE (breg) == LO_SUM) ++ breg = XEXP (breg, 0); ++ ++ /* If the base register we are using to address memory is ++ also a destination reg, then change that register last. */ ++ if (REG_P (breg) ++ && REGNO (breg) >= REGNO (dst) + && REGNO (breg) < REGNO (dst) + nregs) + j = REGNO (breg) - REGNO (dst); +- } ++ } + + if (GET_CODE (dst) == MEM && INT_REGNO_P (reg)) + { +@@ -10573,6 +10580,8 @@ + : gen_adddi3 (breg, breg, delta_rtx)); + dst = gen_rtx_MEM (mode, breg); + } ++ else if (! offsettable_memref_p (dst)) ++ abort (); + } + + for (i = 0; i < nregs; i++) +@@ -10582,7 +10591,7 @@ + if (j == nregs) + j = 0; + +- /* If compiler already emited move of first word by ++ /* If compiler already emitted move of first word by + store with update, no need to do anything. */ + if (j == 0 && used_update) + continue; +@@ -12100,8 +12109,10 @@ + rtx reg, mem, vrsave; + int offset; + +- /* Get VRSAVE onto a GPR. */ +- reg = gen_rtx_REG (SImode, 12); ++ /* Get VRSAVE onto a GPR. Note that ABI_V4 might be using r12 ++ as frame_reg_rtx and r11 as the static chain pointer for ++ nested functions. */ ++ reg = gen_rtx_REG (SImode, 0); + vrsave = gen_rtx_REG (SImode, VRSAVE_REGNO); + if (TARGET_MACHO) + emit_insn (gen_get_vrsave_internal (reg)); +@@ -15202,6 +15213,18 @@ + if (rs6000_sdata == SDATA_NONE) + return false; + ++ /* We want to merge strings, so we never consider them small data. */ ++ if (TREE_CODE (decl) == STRING_CST) ++ return false; ++ ++ /* Functions are never in the small data area. */ ++ if (TREE_CODE (decl) == FUNCTION_DECL) ++ return false; ++ ++ /* Thread-local vars can't go in the small data area. */ ++ if (TREE_CODE (decl) == VAR_DECL && DECL_THREAD_LOCAL (decl)) ++ return false; ++ + if (TREE_CODE (decl) == VAR_DECL && DECL_SECTION_NAME (decl)) + { + const char *section = TREE_STRING_POINTER (DECL_SECTION_NAME (decl)); +Index: gcc/config/rs6000/rs6000.md +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000.md,v +retrieving revision 1.284.4.13 +retrieving revision 1.284.4.15 +diff -u -r1.284.4.13 -r1.284.4.15 +--- gcc/config/rs6000/rs6000.md 28 Jul 2004 12:15:02 -0000 1.284.4.13 ++++ gcc/config/rs6000/rs6000.md 24 Dec 2004 23:14:37 -0000 1.284.4.15 +@@ -2404,61 +2404,6 @@ + }" + [(set_attr "length" "8")]) + +-(define_insn_and_split "*andsi3_internal7" +- [(set (match_operand:CC 2 "cc_reg_operand" "=x,?y") +- (compare:CC (and:SI (match_operand:SI 0 "gpc_reg_operand" "r,r") +- (match_operand:SI 1 "mask_operand_wrap" "i,i")) +- (const_int 0))) +- (clobber (match_scratch:SI 3 "=r,r"))] +- "TARGET_POWERPC64" +- "#" +- "TARGET_POWERPC64" +- [(parallel [(set (match_dup 2) +- (compare:CC (and:SI (rotate:SI (match_dup 0) (match_dup 4)) +- (match_dup 5)) +- (const_int 0))) +- (clobber (match_dup 3))])] +- " +-{ +- int mb = extract_MB (operands[1]); +- int me = extract_ME (operands[1]); +- operands[4] = GEN_INT (me + 1); +- operands[5] = GEN_INT (~((HOST_WIDE_INT) -1 << (33 + me - mb))); +-}" +- [(set_attr "type" "delayed_compare,compare") +- (set_attr "length" "4,8")]) +- +-(define_insn_and_split "*andsi3_internal8" +- [(set (match_operand:CC 3 "cc_reg_operand" "=x,??y") +- (compare:CC (and:SI (match_operand:SI 1 "gpc_reg_operand" "r,r") +- (match_operand:SI 2 "mask_operand_wrap" "i,i")) +- (const_int 0))) +- (set (match_operand:SI 0 "gpc_reg_operand" "=r,r") +- (and:SI (match_dup 1) +- (match_dup 2)))] +- "TARGET_POWERPC64" +- "#" +- "TARGET_POWERPC64" +- [(parallel [(set (match_dup 3) +- (compare:CC (and:SI (rotate:SI (match_dup 1) (match_dup 4)) +- (match_dup 5)) +- (const_int 0))) +- (set (match_dup 0) +- (and:SI (rotate:SI (match_dup 1) (match_dup 4)) +- (match_dup 5)))]) +- (set (match_dup 0) +- (rotate:SI (match_dup 0) (match_dup 6)))] +- " +-{ +- int mb = extract_MB (operands[2]); +- int me = extract_ME (operands[2]); +- operands[4] = GEN_INT (me + 1); +- operands[6] = GEN_INT (32 - (me + 1)); +- operands[5] = GEN_INT (~((HOST_WIDE_INT) -1 << (33 + me - mb))); +-}" +- [(set_attr "type" "delayed_compare,compare") +- (set_attr "length" "8,12")]) +- + (define_expand "iorsi3" + [(set (match_operand:SI 0 "gpc_reg_operand" "") + (ior:SI (match_operand:SI 1 "gpc_reg_operand" "") +@@ -5245,16 +5190,18 @@ + (define_expand "floatdisf2" + [(set (match_operand:SF 0 "gpc_reg_operand" "") + (float:SF (match_operand:DI 1 "gpc_reg_operand" "")))] +- "TARGET_64BIT && TARGET_HARD_FLOAT && TARGET_FPRS" ++ "TARGET_POWERPC64 && TARGET_HARD_FLOAT && TARGET_FPRS" + " + { ++ rtx val = operands[1]; + if (!flag_unsafe_math_optimizations) + { + rtx label = gen_label_rtx (); +- emit_insn (gen_floatdisf2_internal2 (operands[1], label)); ++ val = gen_reg_rtx (DImode); ++ emit_insn (gen_floatdisf2_internal2 (val, operands[1], label)); + emit_label (label); + } +- emit_insn (gen_floatdisf2_internal1 (operands[0], operands[1])); ++ emit_insn (gen_floatdisf2_internal1 (operands[0], val)); + DONE; + }") + +@@ -5279,30 +5226,31 @@ + ;; by a bit that won't be lost at that stage, but is below the SFmode + ;; rounding position. + (define_expand "floatdisf2_internal2" +- [(parallel [(set (match_dup 4) +- (compare:CC (and:DI (match_operand:DI 0 "" "") +- (const_int 2047)) +- (const_int 0))) +- (set (match_dup 2) (and:DI (match_dup 0) (const_int 2047))) +- (clobber (match_scratch:CC 7 ""))]) +- (set (match_dup 3) (ashiftrt:DI (match_dup 0) (const_int 53))) +- (set (match_dup 3) (plus:DI (match_dup 3) (const_int 1))) +- (set (pc) (if_then_else (eq (match_dup 4) (const_int 0)) +- (label_ref (match_operand:DI 1 "" "")) +- (pc))) +- (set (match_dup 5) (compare:CCUNS (match_dup 3) (const_int 2))) +- (set (pc) (if_then_else (ltu (match_dup 5) (const_int 0)) +- (label_ref (match_dup 1)) ++ [(set (match_dup 3) (ashiftrt:DI (match_operand:DI 1 "" "") ++ (const_int 53))) ++ (parallel [(set (match_operand:DI 0 "" "") (and:DI (match_dup 1) ++ (const_int 2047))) ++ (clobber (scratch:CC))]) ++ (set (match_dup 3) (plus:DI (match_dup 3) ++ (const_int 1))) ++ (set (match_dup 0) (plus:DI (match_dup 0) ++ (const_int 2047))) ++ (set (match_dup 4) (compare:CCUNS (match_dup 3) ++ (const_int 3))) ++ (set (match_dup 0) (ior:DI (match_dup 0) ++ (match_dup 1))) ++ (parallel [(set (match_dup 0) (and:DI (match_dup 0) ++ (const_int -2048))) ++ (clobber (scratch:CC))]) ++ (set (pc) (if_then_else (geu (match_dup 4) (const_int 0)) ++ (label_ref (match_operand:DI 2 "" "")) + (pc))) +- (set (match_dup 0) (xor:DI (match_dup 0) (match_dup 2))) +- (set (match_dup 0) (ior:DI (match_dup 0) (const_int 2048)))] +- "TARGET_64BIT && TARGET_HARD_FLOAT && TARGET_FPRS" ++ (set (match_dup 0) (match_dup 1))] ++ "TARGET_POWERPC64 && TARGET_HARD_FLOAT && TARGET_FPRS" + " + { +- operands[2] = gen_reg_rtx (DImode); + operands[3] = gen_reg_rtx (DImode); +- operands[4] = gen_reg_rtx (CCmode); +- operands[5] = gen_reg_rtx (CCUNSmode); ++ operands[4] = gen_reg_rtx (CCUNSmode); + }") + + ;; Define the DImode operations that can be done in a small number +Index: gcc/config/rs6000/rtems.h +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rtems.h,v +retrieving revision 1.18.14.1 +retrieving revision 1.18.14.2 +diff -u -r1.18.14.1 -r1.18.14.2 +--- gcc/config/rs6000/rtems.h 22 Sep 2004 14:15:35 -0000 1.18.14.1 ++++ gcc/config/rs6000/rtems.h 22 Jan 2005 03:04:16 -0000 1.18.14.2 +@@ -1,5 +1,6 @@ + /* Definitions for rtems targeting a PowerPC using elf. +- Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. ++ Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2005 ++ Free Software Foundation, Inc. + Contributed by Joel Sherrill (joel@OARcorp.com). + + This file is part of GCC. +@@ -37,3 +38,20 @@ + + #undef CPP_OS_DEFAULT_SPEC + #define CPP_OS_DEFAULT_SPEC "%(cpp_os_rtems)" ++ ++#define CPP_OS_RTEMS_SPEC "\ ++%{!mcpu*: %{!Dppc*: %{!Dmpc*: -Dmpc750} } }\ ++%{mcpu=403: %{!Dppc*: %{!Dmpc*: -Dppc403} } } \ ++%{mcpu=505: %{!Dppc*: %{!Dmpc*: -Dmpc505} } } \ ++%{mcpu=601: %{!Dppc*: %{!Dmpc*: -Dppc601} } } \ ++%{mcpu=602: %{!Dppc*: %{!Dmpc*: -Dppc602} } } \ ++%{mcpu=603: %{!Dppc*: %{!Dmpc*: -Dppc603} } } \ ++%{mcpu=603e: %{!Dppc*: %{!Dmpc*: -Dppc603e} } } \ ++%{mcpu=604: %{!Dppc*: %{!Dmpc*: -Dmpc604} } } \ ++%{mcpu=750: %{!Dppc*: %{!Dmpc*: -Dmpc750} } } \ ++%{mcpu=821: %{!Dppc*: %{!Dmpc*: -Dmpc821} } } \ ++%{mcpu=860: %{!Dppc*: %{!Dmpc*: -Dmpc860} } }" ++ ++#undef SUBSUBTARGET_EXTRA_SPECS ++#define SUBSUBTARGET_EXTRA_SPECS \ ++ { "cpp_os_rtems", CPP_OS_RTEMS_SPEC } +Index: gcc/config/rs6000/sysv4.h +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/rs6000/sysv4.h,v +retrieving revision 1.144.4.4 +retrieving revision 1.144.4.5 +diff -u -r1.144.4.4 -r1.144.4.5 +--- gcc/config/rs6000/sysv4.h 18 Oct 2004 02:24:20 -0000 1.144.4.4 ++++ gcc/config/rs6000/sysv4.h 6 Dec 2004 23:59:29 -0000 1.144.4.5 +@@ -1358,4 +1358,4 @@ + #define DOUBLE_INT_ASM_OP "\t.quad\t" + + /* Generate entries in .fixup for relocatable addresses. */ +-#define RELOCATABLE_NEEDS_FIXUP ++#define RELOCATABLE_NEEDS_FIXUP 1 +Index: gcc/config/rs6000/t-rtems +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/rs6000/t-rtems,v +retrieving revision 1.1.10.1 +retrieving revision 1.1.10.2 +diff -u -r1.1.10.1 -r1.1.10.2 +--- gcc/config/rs6000/t-rtems 8 Mar 2004 23:56:21 -0000 1.1.10.1 ++++ gcc/config/rs6000/t-rtems 12 Nov 2004 10:21:18 -0000 1.1.10.2 +@@ -33,6 +33,7 @@ + + # Cpu-variants supporting new exception processing only + MULTILIB_NEW_EXCEPTIONS_ONLY = \ ++*mcpu=505*/*D_OLD_EXCEPTIONS* \ + *mcpu=604*/*D_OLD_EXCEPTIONS* \ + *mcpu=750*/*D_OLD_EXCEPTIONS* \ + *mcpu=821*/*D_OLD_EXCEPTIONS* \ +Index: gcc/config/s390/s390.md +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/s390/s390.md,v +retrieving revision 1.90.4.10 +retrieving revision 1.90.4.11 +diff -u -r1.90.4.10 -r1.90.4.11 +--- gcc/config/s390/s390.md 27 Oct 2004 13:44:40 -0000 1.90.4.10 ++++ gcc/config/s390/s390.md 27 Jan 2005 23:35:54 -0000 1.90.4.11 +@@ -1039,11 +1039,13 @@ + }) + + (define_expand "reload_outti" +- [(parallel [(match_operand:TI 0 "memory_operand" "") ++ [(parallel [(match_operand:TI 0 "" "") + (match_operand:TI 1 "register_operand" "d") + (match_operand:DI 2 "register_operand" "=&a")])] + "TARGET_64BIT" + { ++ if (GET_CODE (operands[0]) != MEM) ++ abort (); + s390_load_address (operands[2], XEXP (operands[0], 0)); + operands[0] = replace_equiv_address (operands[0], operands[2]); + emit_move_insn (operands[0], operands[1]); +@@ -1167,11 +1169,13 @@ + }) + + (define_expand "reload_outdi" +- [(parallel [(match_operand:DI 0 "memory_operand" "") ++ [(parallel [(match_operand:DI 0 "" "") + (match_operand:DI 1 "register_operand" "d") + (match_operand:SI 2 "register_operand" "=&a")])] + "!TARGET_64BIT" + { ++ if (GET_CODE (operands[0]) != MEM) ++ abort (); + s390_load_address (operands[2], XEXP (operands[0], 0)); + operands[0] = replace_equiv_address (operands[0], operands[2]); + emit_move_insn (operands[0], operands[1]); +@@ -1647,11 +1651,13 @@ + }) + + (define_expand "reload_outdf" +- [(parallel [(match_operand:DF 0 "memory_operand" "") ++ [(parallel [(match_operand:DF 0 "" "") + (match_operand:DF 1 "register_operand" "d") + (match_operand:SI 2 "register_operand" "=&a")])] + "!TARGET_64BIT" + { ++ if (GET_CODE (operands[0]) != MEM) ++ abort (); + s390_load_address (operands[2], XEXP (operands[0], 0)); + operands[0] = replace_equiv_address (operands[0], operands[2]); + emit_move_insn (operands[0], operands[1]); +Index: gcc/config/sh/t-linux +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/sh/t-linux,v +retrieving revision 1.9.10.3 +retrieving revision 1.9.10.4 +diff -u -r1.9.10.3 -r1.9.10.4 +--- gcc/config/sh/t-linux 18 Oct 2004 16:00:52 -0000 1.9.10.3 ++++ gcc/config/sh/t-linux 16 Dec 2004 19:16:22 -0000 1.9.10.4 +@@ -25,7 +25,7 @@ + -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) $(SHLIB_LC) && \ + rm -f $(SHLIB_SOLINK) && \ + if [ -f $(SHLIB_NAME) ]; then \ +- mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \ ++ mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \ + else true; fi && \ + mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \ + (echo "/* GNU ld script"; \ +Index: gcc/config/sparc/sparc.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/sparc/sparc.c,v +retrieving revision 1.271.4.22 +retrieving revision 1.271.4.23 +diff -u -r1.271.4.22 -r1.271.4.23 +--- gcc/config/sparc/sparc.c 13 Oct 2004 14:16:25 -0000 1.271.4.22 ++++ gcc/config/sparc/sparc.c 10 Nov 2004 17:28:55 -0000 1.271.4.23 +@@ -5101,7 +5101,7 @@ + static void function_arg_record_value_1 + (tree, HOST_WIDE_INT, struct function_arg_record_value_parms *, bool); + static rtx function_arg_record_value (tree, enum machine_mode, int, int, int); +-static rtx function_arg_union_value (int, enum machine_mode, int); ++static rtx function_arg_union_value (int, enum machine_mode, int, int); + + /* A subroutine of function_arg_record_value. Traverse the structure + recursively and determine how many registers will be required. */ +@@ -5445,11 +5445,19 @@ + REGNO is the hard register the union will be passed in. */ + + static rtx +-function_arg_union_value (int size, enum machine_mode mode, int regno) ++function_arg_union_value (int size, enum machine_mode mode, int slotno, ++ int regno) + { + int nwords = ROUND_ADVANCE (size), i; + rtx regs; + ++ /* See comment in previous function for empty structures. */ ++ if (nwords == 0) ++ return gen_rtx_REG (mode, regno); ++ ++ if (slotno == SPARC_INT_ARG_MAX - 1) ++ nwords = 1; ++ + /* Unions are passed left-justified. */ + regs = gen_rtx_PARALLEL (mode, rtvec_alloc (nwords)); + +@@ -5516,7 +5524,7 @@ + if (size > 16) + abort (); /* shouldn't get here */ + +- return function_arg_union_value (size, mode, regno); ++ return function_arg_union_value (size, mode, slotno, regno); + } + /* v9 fp args in reg slots beyond the int reg slots get passed in regs + but also have the slot allocated for them. +@@ -5796,7 +5804,7 @@ + if (size > 32) + abort (); /* shouldn't get here */ + +- return function_arg_union_value (size, mode, regbase); ++ return function_arg_union_value (size, mode, 0, regbase); + } + else if (AGGREGATE_TYPE_P (type)) + { +@@ -5819,7 +5827,7 @@ + try to be unduly clever, and simply follow the ABI + for unions in that case. */ + if (mode == BLKmode) +- return function_arg_union_value (bytes, mode, regbase); ++ return function_arg_union_value (bytes, mode, 0, regbase); + } + else if (GET_MODE_CLASS (mode) == MODE_INT + && GET_MODE_SIZE (mode) < UNITS_PER_WORD) +Index: gcc/config/vax/vax.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/vax/vax.c,v +retrieving revision 1.52 +retrieving revision 1.52.6.1 +diff -u -r1.52 -r1.52.6.1 +--- gcc/config/vax/vax.c 1 Nov 2003 02:11:12 -0000 1.52 ++++ gcc/config/vax/vax.c 28 Dec 2004 05:29:25 -0000 1.52.6.1 +@@ -467,7 +467,7 @@ + case CONST_INT: + /* byte offsets cost nothing (on a VAX 2, they cost 1 cycle) */ + if (offset == 0) +- offset = (unsigned)(INTVAL(addr)+128) > 256; ++ offset = (unsigned HOST_WIDE_INT)(INTVAL(addr)+128) > 256; + break; + case CONST: + case SYMBOL_REF: +@@ -637,13 +637,13 @@ + fmt = "e"; /* all constant rotate counts are short */ + break; + case PLUS: +- /* Check for small negative integer operand: subl2 can be used with +- a short positive constant instead. */ +- if (GET_CODE (XEXP (x, 1)) == CONST_INT) +- if ((unsigned)(INTVAL (XEXP (x, 1)) + 63) < 127) +- fmt = "e"; + case MINUS: + c = (mode == DFmode) ? 13 : 8; /* 6/8 on VAX 9000, 16/15 on VAX 2 */ ++ /* Small integer operands can use subl2 and addl2. */ ++ if ((GET_CODE (XEXP (x, 1)) == CONST_INT) ++ && (unsigned HOST_WIDE_INT)(INTVAL (XEXP (x, 1)) + 63) < 127) ++ fmt = "e"; ++ break; + case IOR: + case XOR: + c = 3; +@@ -653,7 +653,7 @@ + c = 3; + if (GET_CODE (XEXP (x, 0)) == CONST_INT) + { +- if ((unsigned)~INTVAL (XEXP (x, 0)) > 63) ++ if ((unsigned HOST_WIDE_INT)~INTVAL (XEXP (x, 0)) > 63) + c = 4; + fmt = "e"; + i = 1; +@@ -706,7 +706,8 @@ + switch (code) + { + case CONST_INT: +- if ((unsigned)INTVAL (op) > 63 && GET_MODE (x) != QImode) ++ if ((unsigned HOST_WIDE_INT)INTVAL (op) > 63 ++ && GET_MODE (x) != QImode) + c += 1; /* 2 on VAX 2 */ + break; + case CONST: +Index: gcc/config/vax/vax.h +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/vax/vax.h,v +retrieving revision 1.64.6.1 +retrieving revision 1.64.6.2 +diff -u -r1.64.6.1 -r1.64.6.2 +--- gcc/config/vax/vax.h 9 Mar 2004 03:00:14 -0000 1.64.6.1 ++++ gcc/config/vax/vax.h 28 Dec 2004 05:25:59 -0000 1.64.6.2 +@@ -801,11 +801,6 @@ + Do not define this if the table should contain absolute addresses. */ + #define CASE_VECTOR_PC_RELATIVE 1 + +-/* Define this if the case instruction drops through after the table +- when the index is out of range. Don't define it if the case insn +- jumps to the default label instead. */ +-#define CASE_DROPS_THROUGH +- + /* Indicate that jump tables go in the text section. This is + necessary when compiling PIC code. */ + #define JUMP_TABLES_IN_TEXT_SECTION 1 +Index: gcc/config/vax/vax.md +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/vax/vax.md,v +retrieving revision 1.25 +retrieving revision 1.25.14.1 +diff -u -r1.25 -r1.25.14.1 +--- gcc/config/vax/vax.md 1 Jul 2003 01:15:07 -0000 1.25 ++++ gcc/config/vax/vax.md 28 Dec 2004 05:25:59 -0000 1.25.14.1 +@@ -1960,68 +1960,63 @@ + "jmp (%0)") + + ;; This is here to accept 5 arguments (as passed by expand_end_case) +-;; and pass the first 4 along to the casesi1 pattern that really does the work. ++;; and pass the first 4 along to the casesi1 pattern that really does ++;; the actual casesi work. We emit a jump here to the default label ++;; _before_ the casesi so that we can be sure that the casesi never ++;; drops through. ++;; This is suboptimal perhaps, but so is much of the rest of this ++;; machine description. For what it's worth, HPPA uses the same trick. ++;; ++;; operand 0 is index ++;; operand 1 is the minimum bound (a const_int) ++;; operand 2 is the maximum bound - minimum bound + 1 (also a const_int) ++;; operand 3 is CODE_LABEL for the table; ++;; operand 4 is the CODE_LABEL to go to if index out of range (ie. default). ++;; ++;; We emit: ++;; i = index - minimum_bound ++;; if (i > (maximum_bound - minimum_bound + 1) goto default; ++;; casesi (i, 0, table); ++;; + (define_expand "casesi" +- [(match_operand:SI 0 "general_operand" "") ; index +- (match_operand:SI 1 "general_operand" "") ; lower +- (match_operand:SI 2 "general_operand" "") ; upper-lower +- (match_operand 3 "" "") ; table label +- (match_operand 4 "" "")] ; default label +- "" +-{ +- emit_jump_insn (gen_casesi1 (operands[0], operands[1], +- operands[2], operands[3])); ++ [(match_operand:SI 0 "general_operand" "") ++ (match_operand:SI 1 "general_operand" "") ++ (match_operand:SI 2 "general_operand" "") ++ (match_operand 3 "" "") ++ (match_operand 4 "" "")] ++ "" ++{ ++ /* i = index - minimum_bound; ++ But only if the lower bound is not already zero. */ ++ if (operands[1] != const0_rtx) ++ { ++ rtx index = gen_reg_rtx (SImode); ++ emit_insn (gen_addsi3 (index, ++ operands[0], ++ GEN_INT (-INTVAL (operands[1])))); ++ operands[0] = index; ++ } ++ ++ /* if (i > (maximum_bound - minimum_bound + 1) goto default; */ ++ emit_insn (gen_cmpsi (operands[0], operands[2])); ++ emit_jump_insn (gen_bgtu (operands[4])); ++ ++ /* casesi (i, 0, table); */ ++ emit_jump_insn (gen_casesi1 (operands[0], operands[2], operands[3])); + DONE; + }) + ++;; This insn is a bit of a lier. It actually falls through if no case ++;; matches. But, we prevent that from ever happening by emiting a jump ++;; before this, see the define_expand above. + (define_insn "casesi1" +- [(set (pc) +- (if_then_else +- (leu (minus:SI (match_operand:SI 0 "general_operand" "g") +- (match_operand:SI 1 "general_operand" "g")) +- (match_operand:SI 2 "general_operand" "g")) +- (plus:SI (sign_extend:SI +- (mem:HI (plus:SI (mult:SI (minus:SI (match_dup 0) +- (match_dup 1)) +- (const_int 2)) +- (pc)))) +- (label_ref:SI (match_operand 3 "" ""))) +- (pc)))] +- "" +- "casel %0,%1,%2") +- +-;; This can arise by simplification when operand 1 is a constant int. +-(define_insn "" +- [(set (pc) +- (if_then_else +- (leu (plus:SI (match_operand:SI 0 "general_operand" "g") +- (match_operand:SI 1 "const_int_operand" "n")) +- (match_operand:SI 2 "general_operand" "g")) +- (plus:SI (sign_extend:SI +- (mem:HI (plus:SI (mult:SI (plus:SI (match_dup 0) +- (match_dup 1)) +- (const_int 2)) +- (pc)))) +- (label_ref:SI (match_operand 3 "" ""))) +- (pc)))] +- "" +- "* +-{ +- operands[1] = GEN_INT (-INTVAL (operands[1])); +- return \"casel %0,%1,%2\"; +-}") +- +-;; This can arise by simplification when the base for the case insn is zero. +-(define_insn "" +- [(set (pc) +- (if_then_else (leu (match_operand:SI 0 "general_operand" "g") +- (match_operand:SI 1 "general_operand" "g")) +- (plus:SI (sign_extend:SI +- (mem:HI (plus:SI (mult:SI (match_dup 0) +- (const_int 2)) +- (pc)))) +- (label_ref:SI (match_operand 2 "" ""))) +- (pc)))] ++ [(match_operand:SI 1 "const_int_operand" "n") ++ (set (pc) ++ (plus:SI (sign_extend:SI ++ (mem:HI (plus:SI (mult:SI (match_operand:SI 0 "general_operand" "g") ++ (const_int 2)) ++ (pc)))) ++ (label_ref:SI (match_operand 2 "" ""))))] + "" + "casel %0,$0,%1") + +Index: gcc/cp/ChangeLog +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/cp/ChangeLog,v +retrieving revision 1.3892.2.178 +retrieving revision 1.3892.2.195 +diff -u -r1.3892.2.178 -r1.3892.2.195 +--- gcc/cp/ChangeLog 5 Nov 2004 03:33:53 -0000 1.3892.2.178 ++++ gcc/cp/ChangeLog 9 Feb 2005 02:21:23 -0000 1.3892.2.195 +@@ -1,3 +1,127 @@ ++2005-02-08 Mark Mitchell ++ ++ PR c++/19733 ++ * cvt.c (convert_to_void): Issue errors about pseudo-destructor ++ expressions. ++ ++2005-02-01 Alexandre Oliva ++ ++ PR c++/18757 ++ PR c++/19366 ++ PR c++/19499 ++ * parser.c (cp_parser_template_id): Revert 2004-12-09's patch. ++ Issue an error when creating the template id. ++ * pt.c (fn_type_unification): Return early if the explicit ++ template arg list is an error_mark_node. ++ ++2005-01-27 J"orn Rennecke ++ ++ PR c++/18370 ++ * parser.c (cp_parser_initializer_clause): Initialize *non_constant_p. ++ ++2005-01-19 Kriang Lerdsuwanakij ++ ++ PR c++/19375 ++ * semantics.c (finish_id_expression): Disable access checking for ++ already lookuped FIELD_DECL. ++ ++2005-01-19 Kriang Lerdsuwanakij ++ ++ PR c++/19258 ++ * parser.c (cp_parser_late_parsing_default_args): Handle friend ++ defined in class. ++ * pt.c (push_access_scope, pop_access_scope): Likewise. ++ ++2005-01-15 Jakub Jelinek ++ ++ PR c++/19263 ++ * typeck2.c (split_nonconstant_init_1) : Put a copy ++ of CONSTRUCTOR's node into MODIFY_EXPR, as the original is modified. ++ Store code to *pcode. ++ ++2004-12-28 Jakub Jelinek ++ ++ PR c++/18384, c++/18327 ++ * decl.c (reshape_init_array): Use UHWI type for max_index_cst ++ and index. Convert max_index to size_type_node if it isn't ++ host_integerp (, 1). ++ ++2004-12-23 Alexandre Oliva ++ ++ PR c++/18962 ++ * pt.c (check_explicit_specialization): Use the argument list from ++ the definition in a template function specialization definition. ++ ++2004-12-23 Alexandre Oliva ++ ++ PR c++/18757 ++ * parser.c (cp_parser_template_id): Don't create a CPP_TEMPLATE_ID ++ if parsing failed. ++ ++2004-12-17 Nathan Sidwell ++ ++ PR c++/18975 ++ * method.c (do_build_copy_constructor): Refactor. Don't const ++ qualify a mutable field. ++ (do_build_assign_ref): Likewise. ++ ++2004-12-10 Volker Reichelt ++ ++ PR c++/18731 ++ * parser.c (cp_parser_class_head): Reject typedef-name in class head. ++ ++2004-12-09 Nathan Sidwell ++ ++ PR c++/16681 ++ * init.c (build_zero_init): Build a RANGE_EXPR for an array ++ initializer. ++ ++2004-12-08 Kriang Lerdsuwanakij ++ ++ PR c++/18100 ++ * name-lookup.c (push_class_level_binding): Diagnose nested ++ class template with the same name as enclosing class. ++ ++2004-12-04 Kriang Lerdsuwanakij ++ ++ PR c++/17011, c++/17971 ++ * pt.c (tsubst_copy) : Check and diagnose ++ invalid field. ++ (tsubst_copy_and_build) : Check ++ error_mark_node after member substitution. ++ * semantics.c (finish_id_expression): Call ++ finish_non_static_data_member for dependent FIELD_DECL. ++ ++2004-12-02 Kriang Lerdsuwanakij ++ ++ PR c++/18123 ++ * parser.c (cp_parser_type_specifier): Don't create new enum ++ type if it is not in the form 'enum [identifier] { [...] };'. ++ Catch template declaration of enum. ++ ++2004-12-01 Nathan Sidwell ++ ++ PR c++/17431 ++ * call.c (standard_conversion): Add FLAGS parameter. Do not allow ++ derived to base conversion when checking constructor ++ accessibility. ++ (implicit_conversion): Pass FLAGS to standard_conversion. ++ (check_constructir_callable): Disallow conversion functions. ++ ++2004-11-12 Mark Mitchell ++ ++ PR c++/18389 ++ * decl.c (start_decl): Make sure to set *pop_scope_p. Return ++ error_mark_node to indicate errors. ++ ++ PR c++/18436 ++ * pt.c (tsubst_copy_and_build): Do not do Koenig lookup when an ++ unqualified name resolves to a member function. ++ ++ PR c++/18407 ++ * pt.c (tsubst_copy_and_build): Handle qualified names used from a ++ derived class correctly. ++ + 2004-11-04 Release Manager + + * GCC 3.4.3 released. +Index: gcc/cp/call.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/cp/call.c,v +retrieving revision 1.452.2.21 +retrieving revision 1.452.2.22 +diff -u -r1.452.2.21 -r1.452.2.22 +--- gcc/cp/call.c 12 Aug 2004 00:34:17 -0000 1.452.2.21 ++++ gcc/cp/call.c 1 Dec 2004 12:58:04 -0000 1.452.2.22 +@@ -86,7 +86,7 @@ + static struct z_candidate *add_function_candidate + (struct z_candidate **, tree, tree, tree, tree, tree, int); + static tree implicit_conversion (tree, tree, tree, int); +-static tree standard_conversion (tree, tree, tree); ++static tree standard_conversion (tree, tree, tree, int); + static tree reference_binding (tree, tree, tree, int); + static tree build_conv (enum tree_code, tree, tree); + static bool is_subseq (tree, tree); +@@ -454,7 +454,7 @@ + also pass the expression EXPR to convert from. */ + + static tree +-standard_conversion (tree to, tree from, tree expr) ++standard_conversion (tree to, tree from, tree expr, int flags) + { + enum tree_code fcode, tcode; + tree conv; +@@ -505,7 +505,7 @@ + the standard conversion sequence to perform componentwise + conversion. */ + tree part_conv = standard_conversion +- (TREE_TYPE (to), TREE_TYPE (from), NULL_TREE); ++ (TREE_TYPE (to), TREE_TYPE (from), NULL_TREE, flags); + + if (part_conv) + { +@@ -692,7 +692,8 @@ + && ((*targetm.vector_opaque_p) (from) + || (*targetm.vector_opaque_p) (to))) + return build_conv (STD_CONV, to, conv); +- else if (IS_AGGR_TYPE (to) && IS_AGGR_TYPE (from) ++ else if (!(flags & LOOKUP_CONSTRUCTOR_CALLABLE) ++ && IS_AGGR_TYPE (to) && IS_AGGR_TYPE (from) + && is_properly_derived_from (from, to)) + { + if (TREE_CODE (conv) == RVALUE_CONV) +@@ -1105,7 +1106,7 @@ + if (TREE_CODE (to) == REFERENCE_TYPE) + conv = reference_binding (to, from, expr, flags); + else +- conv = standard_conversion (to, from, expr); ++ conv = standard_conversion (to, from, expr, flags); + + if (conv) + return conv; +@@ -3878,6 +3879,7 @@ + build_tree_list (NULL_TREE, expr), + TYPE_BINFO (type), + LOOKUP_NORMAL | LOOKUP_ONLYCONVERTING ++ | LOOKUP_NO_CONVERSION + | LOOKUP_CONSTRUCTOR_CALLABLE); + } + +Index: gcc/cp/cvt.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/cp/cvt.c,v +retrieving revision 1.151.4.2 +retrieving revision 1.151.4.3 +diff -u -r1.151.4.2 -r1.151.4.3 +--- gcc/cp/cvt.c 31 May 2004 21:04:10 -0000 1.151.4.2 ++++ gcc/cp/cvt.c 9 Feb 2005 02:21:27 -0000 1.151.4.3 +@@ -793,6 +793,11 @@ + return expr; + if (invalid_nonstatic_memfn_p (expr)) + return error_mark_node; ++ if (TREE_CODE (expr) == PSEUDO_DTOR_EXPR) ++ { ++ error ("pseudo-destructor is not called"); ++ return error_mark_node; ++ } + if (VOID_TYPE_P (TREE_TYPE (expr))) + return expr; + switch (TREE_CODE (expr)) +Index: gcc/cp/decl.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/cp/decl.c,v +retrieving revision 1.1174.2.27 +retrieving revision 1.1174.2.29 +diff -u -r1.1174.2.27 -r1.1174.2.29 +--- gcc/cp/decl.c 15 Oct 2004 04:23:46 -0000 1.1174.2.27 ++++ gcc/cp/decl.c 28 Dec 2004 20:57:52 -0000 1.1174.2.29 +@@ -3704,12 +3704,12 @@ + deprecated_state = DEPRECATED_NORMAL; + + if (decl == NULL_TREE || TREE_CODE (decl) == VOID_TYPE) +- return NULL_TREE; ++ return error_mark_node; + + type = TREE_TYPE (decl); + + if (type == error_mark_node) +- return NULL_TREE; ++ return error_mark_node; + + context = DECL_CONTEXT (decl); + +@@ -4210,13 +4210,17 @@ + tree *initp, tree new_init) + { + bool sized_array_p = (max_index != NULL_TREE); +- HOST_WIDE_INT max_index_cst = 0; +- HOST_WIDE_INT index; ++ unsigned HOST_WIDE_INT max_index_cst = 0; ++ unsigned HOST_WIDE_INT index; + + if (sized_array_p) +- /* HWI is either 32bit or 64bit, so it must be enough to represent the +- array size. */ +- max_index_cst = tree_low_cst (max_index, 1); ++ { ++ if (host_integerp (max_index, 1)) ++ max_index_cst = tree_low_cst (max_index, 1); ++ /* sizetype is sign extended, not zero extended. */ ++ else ++ max_index_cst = tree_low_cst (convert (size_type_node, max_index), 1); ++ } + + /* Loop until there are no more initializers. */ + for (index = 0; +@@ -4242,19 +4246,7 @@ + TREE_PURPOSE (element_init) = NULL_TREE; + } + else +- { +- if (TREE_CODE (designated_index) != INTEGER_CST) +- abort (); +- if (sized_array_p +- && tree_int_cst_lt (max_index, designated_index)) +- { +- error ("Designated initializer `%E' larger than array " +- "size", designated_index); +- TREE_PURPOSE (element_init) = NULL_TREE; +- } +- else +- index = tree_low_cst (designated_index, 1); +- } ++ abort (); + } + } + +Index: gcc/cp/init.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/cp/init.c,v +retrieving revision 1.356.2.14 +retrieving revision 1.356.2.15 +diff -u -r1.356.2.14 -r1.356.2.15 +--- gcc/cp/init.c 28 Jul 2004 14:55:06 -0000 1.356.2.14 ++++ gcc/cp/init.c 9 Dec 2004 12:21:23 -0000 1.356.2.15 +@@ -217,7 +217,6 @@ + } + else if (TREE_CODE (type) == ARRAY_TYPE) + { +- tree index; + tree max_index; + tree inits; + +@@ -231,14 +230,16 @@ + /* A zero-sized array, which is accepted as an extension, will + have an upper bound of -1. */ + if (!tree_int_cst_equal (max_index, integer_minus_one_node)) +- for (index = size_zero_node; +- !tree_int_cst_lt (max_index, index); +- index = size_binop (PLUS_EXPR, index, size_one_node)) +- inits = tree_cons (index, +- build_zero_init (TREE_TYPE (type), +- /*nelts=*/NULL_TREE, +- static_storage_p), +- inits); ++ { ++ tree elt_init = build_zero_init (TREE_TYPE (type), ++ /*nelts=*/NULL_TREE, ++ static_storage_p); ++ tree range = build (RANGE_EXPR, ++ sizetype, size_zero_node, max_index); ++ ++ inits = tree_cons (range, elt_init, inits); ++ } ++ + CONSTRUCTOR_ELTS (init) = nreverse (inits); + } + else if (TREE_CODE (type) == REFERENCE_TYPE) +Index: gcc/cp/method.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/cp/method.c,v +retrieving revision 1.275.4.4 +retrieving revision 1.275.4.5 +diff -u -r1.275.4.4 -r1.275.4.5 +--- gcc/cp/method.c 8 Jun 2004 06:30:32 -0000 1.275.4.4 ++++ gcc/cp/method.c 17 Dec 2004 16:19:19 -0000 1.275.4.5 +@@ -583,14 +583,14 @@ + + for (; fields; fields = TREE_CHAIN (fields)) + { +- tree init; ++ tree init = parm; + tree field = fields; + tree expr_type; + + if (TREE_CODE (field) != FIELD_DECL) + continue; + +- init = parm; ++ expr_type = TREE_TYPE (field); + if (DECL_NAME (field)) + { + if (VFIELD_NAME_P (DECL_NAME (field))) +@@ -600,9 +600,7 @@ + if (IDENTIFIER_CLASS_VALUE (DECL_NAME (field)) != field) + continue; + } +- else if ((t = TREE_TYPE (field)) != NULL_TREE +- && ANON_AGGR_TYPE_P (t) +- && TYPE_FIELDS (t) != NULL_TREE) ++ else if (ANON_AGGR_TYPE_P (expr_type) && TYPE_FIELDS (expr_type)) + /* Just use the field; anonymous types can't have + nontrivial copy ctors or assignment ops. */; + else +@@ -613,14 +611,19 @@ + the field is "T", then the type will usually be "const + T". (There are no cv-qualified variants of reference + types.) */ +- expr_type = TREE_TYPE (field); + if (TREE_CODE (expr_type) != REFERENCE_TYPE) +- expr_type = cp_build_qualified_type (expr_type, cvquals); ++ { ++ int quals = cvquals; ++ ++ if (DECL_MUTABLE_P (field)) ++ quals &= ~TYPE_QUAL_CONST; ++ expr_type = cp_build_qualified_type (expr_type, quals); ++ } ++ + init = build (COMPONENT_REF, expr_type, init, field); + init = build_tree_list (NULL_TREE, init); + +- member_init_list +- = tree_cons (field, init, member_init_list); ++ member_init_list = tree_cons (field, init, member_init_list); + } + finish_mem_initializers (member_init_list); + } +@@ -675,26 +678,27 @@ + fields; + fields = TREE_CHAIN (fields)) + { +- tree comp, init, t; ++ tree comp = current_class_ref; ++ tree init = parm; + tree field = fields; ++ tree expr_type; ++ int quals; + + if (TREE_CODE (field) != FIELD_DECL || DECL_ARTIFICIAL (field)) + continue; + +- if (CP_TYPE_CONST_P (TREE_TYPE (field))) ++ expr_type = TREE_TYPE (field); ++ if (CP_TYPE_CONST_P (expr_type)) + { + error ("non-static const member `%#D', can't use default assignment operator", field); + continue; + } +- else if (TREE_CODE (TREE_TYPE (field)) == REFERENCE_TYPE) ++ else if (TREE_CODE (expr_type) == REFERENCE_TYPE) + { + error ("non-static reference member `%#D', can't use default assignment operator", field); + continue; + } + +- comp = current_class_ref; +- init = parm; +- + if (DECL_NAME (field)) + { + if (VFIELD_NAME_P (DECL_NAME (field))) +@@ -704,24 +708,27 @@ + if (IDENTIFIER_CLASS_VALUE (DECL_NAME (field)) != field) + continue; + } +- else if ((t = TREE_TYPE (field)) != NULL_TREE +- && ANON_AGGR_TYPE_P (t) +- && TYPE_FIELDS (t) != NULL_TREE) ++ else if (ANON_AGGR_TYPE_P (expr_type) && TYPE_FIELDS (expr_type)) + /* Just use the field; anonymous types can't have + nontrivial copy ctors or assignment ops. */; + else + continue; + + comp = build (COMPONENT_REF, TREE_TYPE (field), comp, field); +- init = build (COMPONENT_REF, +- cp_build_qualified_type (TREE_TYPE (field), cvquals), +- init, field); ++ ++ /* Compute the type of init->field */ ++ quals = cvquals; ++ if (DECL_MUTABLE_P (field)) ++ quals &= ~TYPE_QUAL_CONST; ++ expr_type = cp_build_qualified_type (expr_type, quals); ++ ++ init = build (COMPONENT_REF, expr_type, init, field); + + if (DECL_NAME (field)) +- finish_expr_stmt (build_modify_expr (comp, NOP_EXPR, init)); ++ init = build_modify_expr (comp, NOP_EXPR, init); + else +- finish_expr_stmt (build (MODIFY_EXPR, TREE_TYPE (comp), comp, +- init)); ++ init = build (MODIFY_EXPR, TREE_TYPE (comp), comp, init); ++ finish_expr_stmt (init); + } + } + finish_return_stmt (current_class_ref); +Index: gcc/cp/name-lookup.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/cp/name-lookup.c,v +retrieving revision 1.34.2.19 +retrieving revision 1.34.2.20 +diff -u -r1.34.2.19 -r1.34.2.20 +--- gcc/cp/name-lookup.c 27 Oct 2004 04:32:56 -0000 1.34.2.19 ++++ gcc/cp/name-lookup.c 8 Dec 2004 10:53:10 -0000 1.34.2.20 +@@ -2804,6 +2804,7 @@ + || TREE_CODE (x) == CONST_DECL + || (TREE_CODE (x) == TYPE_DECL + && !DECL_SELF_REFERENCE_P (x)) ++ || DECL_CLASS_TEMPLATE_P (x) + /* A data member of an anonymous union. */ + || (TREE_CODE (x) == FIELD_DECL + && DECL_CONTEXT (x) != current_class_type)) +Index: gcc/cp/parser.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/cp/parser.c,v +retrieving revision 1.157.2.45 +retrieving revision 1.157.2.51 +diff -u -r1.157.2.45 -r1.157.2.51 +--- gcc/cp/parser.c 28 Oct 2004 05:28:20 -0000 1.157.2.45 ++++ gcc/cp/parser.c 1 Feb 2005 07:03:48 -0000 1.157.2.51 +@@ -1,5 +1,6 @@ + /* C++ Parser. +- Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. ++ Copyright (C) 2000, 2001, 2002, 2003, 2004, ++ 2005 Free Software Foundation, Inc. + Written by Mark Mitchell . + + This file is part of GCC. +@@ -8030,6 +8031,13 @@ + token->keyword = RID_MAX; + /* Purge all subsequent tokens. */ + cp_lexer_purge_tokens_after (parser->lexer, token); ++ ++ /* ??? Can we actually assume that, if template_id == ++ error_mark_node, we will have issued a diagnostic to the ++ user, as opposed to simply marking the tentative parse as ++ failed? */ ++ if (cp_parser_error_occurred (parser) && template_id != error_mark_node) ++ error ("parse error in template argument list"); + } + + pop_deferring_access_checks (); +@@ -8724,21 +8732,40 @@ + keyword = token->keyword; + switch (keyword) + { ++ case RID_ENUM: ++ /* 'enum' [identifier] '{' introduces an enum-specifier; ++ 'enum' introduces an elaborated-type-specifier. */ ++ if (cp_lexer_peek_nth_token (parser->lexer, 2)->type == CPP_OPEN_BRACE ++ || (cp_lexer_peek_nth_token (parser->lexer, 2)->type == CPP_NAME ++ && cp_lexer_peek_nth_token (parser->lexer, 3)->type ++ == CPP_OPEN_BRACE)) ++ { ++ if (parser->num_template_parameter_lists) ++ { ++ error ("template declaration of `enum'"); ++ cp_parser_skip_to_end_of_block_or_statement (parser); ++ type_spec = error_mark_node; ++ } ++ else ++ type_spec = cp_parser_enum_specifier (parser); ++ ++ if (declares_class_or_enum) ++ *declares_class_or_enum = 2; ++ return type_spec; ++ } ++ else ++ goto elaborated_type_specifier; ++ + /* Any of these indicate either a class-specifier, or an + elaborated-type-specifier. */ + case RID_CLASS: + case RID_STRUCT: + case RID_UNION: +- case RID_ENUM: + /* Parse tentatively so that we can back up if we don't find a + class-specifier or enum-specifier. */ + cp_parser_parse_tentatively (parser); +- /* Look for the class-specifier or enum-specifier. */ +- if (keyword == RID_ENUM) +- type_spec = cp_parser_enum_specifier (parser); +- else +- type_spec = cp_parser_class_specifier (parser); +- ++ /* Look for the class-specifier. */ ++ type_spec = cp_parser_class_specifier (parser); + /* If that worked, we're done. */ + if (cp_parser_parse_definitely (parser)) + { +@@ -8750,6 +8777,7 @@ + /* Fall through. */ + + case RID_TYPENAME: ++ elaborated_type_specifier: + /* Look for an elaborated-type-specifier. */ + type_spec = cp_parser_elaborated_type_specifier (parser, + is_friend, +@@ -11522,6 +11550,9 @@ + { + tree initializer = NULL_TREE; + ++ /* Assume the expression is constant. */ ++ *non_constant_p = false; ++ + /* If it is not a `{', then we are looking at an + assignment-expression. */ + if (cp_lexer_next_token_is_not (parser->lexer, CPP_OPEN_BRACE)) +@@ -12155,6 +12186,15 @@ + else if (nested_name_specifier) + { + tree scope; ++ ++ /* Reject typedef-names in class heads. */ ++ if (!DECL_IMPLICIT_TYPEDEF_P (type)) ++ { ++ error ("invalid class name in declaration of `%D'", type); ++ type = NULL_TREE; ++ goto done; ++ } ++ + /* Figure out in what scope the declaration is being placed. */ + scope = current_scope (); + if (!scope) +@@ -14814,10 +14854,12 @@ + saved_local_variables_forbidden_p = parser->local_variables_forbidden_p; + parser->local_variables_forbidden_p = true; + /* Parse the assignment-expression. */ +- if (DECL_CLASS_SCOPE_P (fn)) ++ if (DECL_FRIEND_CONTEXT (fn)) ++ push_nested_class (DECL_FRIEND_CONTEXT (fn)); ++ else if (DECL_CLASS_SCOPE_P (fn)) + push_nested_class (DECL_CONTEXT (fn)); + TREE_PURPOSE (parameters) = cp_parser_assignment_expression (parser); +- if (DECL_CLASS_SCOPE_P (fn)) ++ if (DECL_FRIEND_CONTEXT (fn) || DECL_CLASS_SCOPE_P (fn)) + pop_nested_class (); + + /* If the token stream has not been completely used up, then +Index: gcc/cp/pt.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/cp/pt.c,v +retrieving revision 1.816.2.45 +retrieving revision 1.816.2.50 +diff -u -r1.816.2.45 -r1.816.2.50 +--- gcc/cp/pt.c 28 Oct 2004 20:56:51 -0000 1.816.2.45 ++++ gcc/cp/pt.c 1 Feb 2005 07:03:54 -0000 1.816.2.50 +@@ -1,6 +1,6 @@ + /* Handle parameterized types (templates) for GNU C++. + Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +- 2001, 2002, 2003, 2004 Free Software Foundation, Inc. ++ 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + Written by Ken Raeburn (raeburn@cygnus.com) while at Watchmaker Computing. + Rewritten by Jason Merrill (jason@cygnus.com). + +@@ -180,7 +180,9 @@ + || TREE_CODE (t) == VAR_DECL, + 0); + +- if (DECL_CLASS_SCOPE_P (t)) ++ if (DECL_FRIEND_CONTEXT (t)) ++ push_nested_class (DECL_FRIEND_CONTEXT (t)); ++ else if (DECL_CLASS_SCOPE_P (t)) + push_nested_class (DECL_CONTEXT (t)); + else + push_to_top_level (); +@@ -205,7 +207,7 @@ + saved_access_scope = TREE_CHAIN (saved_access_scope); + } + +- if (DECL_CLASS_SCOPE_P (t)) ++ if (DECL_FRIEND_CONTEXT (t) || DECL_CLASS_SCOPE_P (t)) + pop_nested_class (); + else + pop_from_top_level (); +@@ -1955,6 +1957,10 @@ + DECL_SOURCE_LOCATION (tmpl) = DECL_SOURCE_LOCATION (decl); + DECL_SOURCE_LOCATION (DECL_TEMPLATE_RESULT (tmpl)) + = DECL_SOURCE_LOCATION (decl); ++ /* We want to use the argument list specified in the ++ definition, not in the original declaration. */ ++ DECL_ARGUMENTS (DECL_TEMPLATE_RESULT (tmpl)) ++ = DECL_ARGUMENTS (decl); + } + return tmpl; + } +@@ -7519,7 +7525,16 @@ + ctx = tsubst_aggr_type (DECL_CONTEXT (t), args, complain, in_decl, + /*entering_scope=*/1); + if (ctx != DECL_CONTEXT (t)) +- return lookup_field (ctx, DECL_NAME (t), 0, false); ++ { ++ tree r = lookup_field (ctx, DECL_NAME (t), 0, false); ++ if (!r) ++ { ++ if (complain & tf_error) ++ error ("using invalid field `%D'", t); ++ return error_mark_node; ++ } ++ return r; ++ } + } + return t; + +@@ -8454,7 +8469,11 @@ + lookup finds a non-function, in accordance with the + expected resolution of DR 218. */ + if (koenig_p +- && (is_overloaded_fn (function) ++ && ((is_overloaded_fn (function) ++ /* If lookup found a member function, the Koenig lookup is ++ not appropriate, even if an unqualified-name was used ++ to denote the function. */ ++ && !DECL_FUNCTION_MEMBER_P (get_first_fn (function))) + || TREE_CODE (function) == IDENTIFIER_NODE)) + function = perform_koenig_lookup (function, call_args); + +@@ -8544,7 +8563,9 @@ + else + member = tsubst_copy (member, args, complain, in_decl); + +- if (!CLASS_TYPE_P (TREE_TYPE (object))) ++ if (member == error_mark_node) ++ return error_mark_node; ++ else if (!CLASS_TYPE_P (TREE_TYPE (object))) + { + if (TREE_CODE (member) == BIT_NOT_EXPR) + return finish_pseudo_destructor_expr (object, +@@ -8570,9 +8591,14 @@ + /*is_type_p=*/false, + /*complain=*/false); + if (BASELINK_P (member)) +- BASELINK_FUNCTIONS (member) +- = build_nt (TEMPLATE_ID_EXPR, BASELINK_FUNCTIONS (member), +- args); ++ { ++ BASELINK_FUNCTIONS (member) ++ = build_nt (TEMPLATE_ID_EXPR, BASELINK_FUNCTIONS (member), ++ args); ++ member = (adjust_result_of_qualified_name_lookup ++ (member, BINFO_TYPE (BASELINK_BINFO (member)), ++ TREE_TYPE (object))); ++ } + else + { + qualified_name_lookup_error (TREE_TYPE (object), tmpl); +@@ -8909,6 +8935,9 @@ + tree converted_args; + bool incomplete; + ++ if (explicit_targs == error_mark_node) ++ return 1; ++ + converted_args + = (coerce_template_parms (DECL_INNERMOST_TEMPLATE_PARMS (fn), + explicit_targs, NULL_TREE, tf_none, +Index: gcc/cp/semantics.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/cp/semantics.c,v +retrieving revision 1.381.4.15 +retrieving revision 1.381.4.17 +diff -u -r1.381.4.15 -r1.381.4.17 +--- gcc/cp/semantics.c 27 Sep 2004 18:50:18 -0000 1.381.4.15 ++++ gcc/cp/semantics.c 19 Jan 2005 14:50:24 -0000 1.381.4.17 +@@ -4,7 +4,7 @@ + and during the instantiation of template functions. + + Copyright (C) 1998, 1999, 2000, 2001, 2002, +- 2003, 2004 Free Software Foundation, Inc. ++ 2003, 2004, 2005 Free Software Foundation, Inc. + Written by Mark Mitchell (mmitchell@usa.net) based on code found + formerly in parse.y and pt.c. + +@@ -2558,6 +2558,20 @@ + if (TREE_CODE (decl) == VAR_DECL + || TREE_CODE (decl) == PARM_DECL) + return decl; ++ /* The same is true for FIELD_DECL, but we also need to ++ make sure that the syntax is correct. */ ++ else if (TREE_CODE (decl) == FIELD_DECL) ++ { ++ /* Since SCOPE is NULL here, this is an unqualified name. ++ Access checking has been performed during name lookup ++ already. Turn off checking to avoid duplicate errors. */ ++ push_deferring_access_checks (dk_no_check); ++ decl = finish_non_static_data_member ++ (decl, current_class_ref, ++ /*qualifying_scope=*/NULL_TREE); ++ pop_deferring_access_checks (); ++ return decl; ++ } + return id_expression; + } + +@@ -2617,8 +2631,15 @@ + decl = build (SCOPE_REF, TREE_TYPE (decl), scope, decl); + } + else if (TREE_CODE (decl) == FIELD_DECL) +- decl = finish_non_static_data_member (decl, current_class_ref, +- /*qualifying_scope=*/NULL_TREE); ++ { ++ /* Since SCOPE is NULL here, this is an unqualified name. ++ Access checking has been performed during name lookup ++ already. Turn off checking to avoid duplicate errors. */ ++ push_deferring_access_checks (dk_no_check); ++ decl = finish_non_static_data_member (decl, current_class_ref, ++ /*qualifying_scope=*/NULL_TREE); ++ pop_deferring_access_checks (); ++ } + else if (is_overloaded_fn (decl)) + { + tree first_fn = OVL_CURRENT (decl); +Index: gcc/cp/typeck2.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/cp/typeck2.c,v +retrieving revision 1.153.4.4 +retrieving revision 1.153.4.5 +diff -u -r1.153.4.4 -r1.153.4.5 +--- gcc/cp/typeck2.c 1 Nov 2004 00:02:21 -0000 1.153.4.4 ++++ gcc/cp/typeck2.c 14 Jan 2005 23:51:38 -0000 1.153.4.5 +@@ -348,9 +348,11 @@ + case VECTOR_TYPE: + if (!initializer_constant_valid_p (init, type)) + { ++ tree cons = copy_node (init); + CONSTRUCTOR_ELTS (init) = NULL; +- code = build (MODIFY_EXPR, type, dest, init); ++ code = build (MODIFY_EXPR, type, dest, cons); + code = build_stmt (EXPR_STMT, code); ++ *pcode = code; + pcode = &TREE_CHAIN (code); + } + break; +Index: gcc/doc/invoke.texi +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/doc/invoke.texi,v +retrieving revision 1.390.2.33 +retrieving revision 1.390.2.35 +diff -u -r1.390.2.33 -r1.390.2.35 +--- gcc/doc/invoke.texi 6 Oct 2004 20:15:08 -0000 1.390.2.33 ++++ gcc/doc/invoke.texi 19 Jan 2005 11:18:14 -0000 1.390.2.35 +@@ -605,8 +605,11 @@ + -mconstant-gp -mauto-pic -minline-float-divide-min-latency @gol + -minline-float-divide-max-throughput @gol + -minline-int-divide-min-latency @gol +--minline-int-divide-max-throughput -mno-dwarf2-asm @gol +--mfixed-range=@var{register-range}} ++-minline-int-divide-max-throughput @gol ++-minline-sqrt-min-latency -minline-sqrt-max-throughput @gol ++-mno-dwarf2-asm -mearly-stop-bits @gol ++-mfixed-range=@var{register-range} -mtls-size=@var{tls-size} @gol ++-mtune=@var{cpu-type} -mt -pthread -milp32 -mlp64} + + @emph{D30V Options} + @gccoptlist{-mextmem -mextmemory -monchip -mno-asm-optimize @gol +@@ -4829,6 +4832,12 @@ + + Maximum number of basic blocks on path that cse considers. + ++@item max-last-value-rtl ++ ++The maximum size measured as number of RTLs that can be recorded in an ++expression in combiner for a pseudo register as last known value of that ++register. The default is 10000. ++ + @item ggc-min-expand + + GCC uses a garbage collector to manage its own memory allocation. This +@@ -10031,6 +10040,16 @@ + Generate code for inline divides of integer values + using the maximum throughput algorithm. + ++@item -minline-sqrt-min-latency ++@opindex minline-sqrt-min-latency ++Generate code for inline square roots ++using the minimum latency algorithm. ++ ++@item -minline-sqrt-max-throughput ++@opindex minline-sqrt-max-throughput ++Generate code for inline square roots ++using the maximum throughput algorithm. ++ + @item -mno-dwarf2-asm + @itemx -mdwarf2-asm + @opindex mno-dwarf2-asm +@@ -10038,6 +10057,14 @@ + Don't (or do) generate assembler code for the DWARF2 line number debugging + info. This may be useful when not using the GNU assembler. + ++@item -mearly-stop-bits ++@itemx -mno-early-stop-bits ++@opindex mearly-stop-bits ++@opindex mno-early-stop-bits ++Allow stop bits to be placed earlier than immediately preceding the ++instruction that triggered the stop bit. This can improve instruction ++scheduling, but does not always do so. ++ + @item -mfixed-range=@var{register-range} + @opindex mfixed-range + Generate code treating the given register range as fixed registers. +@@ -10046,13 +10073,34 @@ + two registers separated by a dash. Multiple register ranges can be + specified separated by a comma. + +-@item -mearly-stop-bits +-@itemx -mno-early-stop-bits +-@opindex mearly-stop-bits +-@opindex mno-early-stop-bits +-Allow stop bits to be placed earlier than immediately preceding the +-instruction that triggered the stop bit. This can improve instruction +-scheduling, but does not always do so. ++@item -mtls-size=@var{tls-size} ++@opindex mtls-size ++Specify bit size of immediate TLS offsets. Valid values are 14, 22, and ++64. ++ ++@item -mtune-arch=@var{cpu-type} ++@opindex mtune-arch ++Tune the instruction scheduling for a particular CPU, Valid values are ++itanium, itanium1, merced, itanium2, and mckinley. ++ ++@item -mt ++@itemx -pthread ++@opindex mt ++@opindex pthread ++Add support for multithreading using the POSIX threads library. This ++option sets flags for both the preprocessor and linker. It does ++not affect the thread safety of object code produced by the compiler or ++that of libraries supplied with it. These are HP-UX specific flags. ++ ++@item -milp32 ++@itemx -mlp64 ++@opindex milp32 ++@opindex mlp64 ++Generate code for a 32-bit or 64-bit environment. ++The 32-bit environment sets int, long and pointer to 32 bits. ++The 64-bit environment sets int to 32 bits and long and pointer ++to 64 bits. These are HP-UX specific flags. ++ + @end table + + @node D30V Options +Index: gcc/doc/md.texi +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/doc/md.texi,v +retrieving revision 1.84.4.5 +retrieving revision 1.84.4.6 +diff -u -r1.84.4.5 -r1.84.4.6 +--- gcc/doc/md.texi 6 Jul 2004 22:53:06 -0000 1.84.4.5 ++++ gcc/doc/md.texi 13 Nov 2004 22:31:42 -0000 1.84.4.6 +@@ -1257,7 +1257,9 @@ + @end smallexample + @end ifset + GCC can only handle one commutative pair in an asm; if you use more, +-the compiler may fail. ++the compiler may fail. Note that you need not use the modifier if ++the two alternatives are strictly identical; this would only waste ++time in the reload pass. + + @cindex @samp{#} in constraint + @item # +Index: gcc/doc/tm.texi +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/doc/tm.texi,v +retrieving revision 1.281.2.19 +retrieving revision 1.281.2.20 +diff -u -r1.281.2.19 -r1.281.2.20 +--- gcc/doc/tm.texi 13 Oct 2004 14:16:27 -0000 1.281.2.19 ++++ gcc/doc/tm.texi 16 Jan 2005 16:01:28 -0000 1.281.2.20 +@@ -6953,6 +6953,15 @@ + correct for most systems. + @end defmac + ++@defmac TARGET_DEFERRED_OUTPUT_DEFS (@var{decl_of_name}, @var{decl_of_value}) ++A C statement that evaluates to true if the assembler code which defines ++(equates) the symbol whose tree node is @var{decl_of_name} to have the value ++of the tree node @var{decl_of_value} should be emitted near the end of the ++current compilation unit. The default is to not defer output of defines. ++This macro affects defines output by @samp{ASM_OUTPUT_DEF} and ++@samp{ASM_OUTPUT_DEF_FROM_DECLS}. ++@end defmac ++ + @defmac ASM_OUTPUT_WEAK_ALIAS (@var{stream}, @var{name}, @var{value}) + A C statement to output to the stdio stream @var{stream} assembler code + which defines (equates) the weak symbol @var{name} to have the value +Index: gcc/doc/include/gcc-common.texi +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/doc/include/gcc-common.texi,v +retrieving revision 1.6.4.5 +retrieving revision 1.6.4.6 +diff -u -r1.6.4.5 -r1.6.4.6 +--- gcc/doc/include/gcc-common.texi 8 Sep 2004 05:58:11 -0000 1.6.4.5 ++++ gcc/doc/include/gcc-common.texi 7 Nov 2004 18:09:40 -0000 1.6.4.6 +@@ -4,7 +4,7 @@ + + @c Common values used in the GCC manuals: + +-@set version-GCC 3.4.3 ++@set version-GCC 3.4.4 + + @c DEVELOPMENT is set to indicate an in-development version, + @c as compared to a release version. When making a release +Index: gcc/f/ChangeLog +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/f/Attic/ChangeLog,v +retrieving revision 1.622.2.21 +retrieving revision 1.622.2.22 +diff -u -r1.622.2.21 -r1.622.2.22 +--- gcc/f/ChangeLog 5 Nov 2004 03:33:57 -0000 1.622.2.21 ++++ gcc/f/ChangeLog 30 Dec 2004 19:36:01 -0000 1.622.2.22 +@@ -1,3 +1,7 @@ ++2004-12-30 Toon Moene ++ ++ * news.texi: Change GCC 3.5 to GCC 4.0 ++ + 2004-11-04 Release Manager + + * GCC 3.4.3 released. +Index: gcc/f/news.texi +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/f/Attic/news.texi,v +retrieving revision 1.105.10.2 +retrieving revision 1.105.10.3 +diff -u -r1.105.10.2 -r1.105.10.3 +--- gcc/f/news.texi 17 Jun 2004 21:13:43 -0000 1.105.10.2 ++++ gcc/f/news.texi 30 Dec 2004 19:36:02 -0000 1.105.10.3 +@@ -11,7 +11,7 @@ + @c in the standalone derivations of this file (e.g. NEWS). + @set copyrights-news 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 + +-@set last-update-news 2004-06-17 ++@set last-update-news 2004-12-29 + + @ifset DOC-NEWS + @include root.texi +@@ -62,7 +62,7 @@ + + @ifclear USERVISONLY + +-@emph{@code{GCC} 3.4.x is the last edition of @code{GCC} to contain @command{g77} - from @code{GCC} 3.5 onwards, use @command{gfortran}} ++@emph{@code{GCC} 3.4.x is the last edition of @code{GCC} to contain @command{g77} - from @code{GCC} 4.0 onwards, use @command{gfortran}} + + Changes made to recent versions of GNU Fortran are listed + below, with the most recent version first. +Index: gcc/fixinc/fixincl.x +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/fixinc/Attic/fixincl.x,v +retrieving revision 1.177.4.7 +retrieving revision 1.177.4.9 +diff -u -r1.177.4.7 -r1.177.4.9 +--- gcc/fixinc/fixincl.x 14 Aug 2004 16:38:10 -0000 1.177.4.7 ++++ gcc/fixinc/fixincl.x 21 Nov 2004 23:59:53 -0000 1.177.4.9 +@@ -2,11 +2,11 @@ + * + * DO NOT EDIT THIS FILE (fixincl.x) + * +- * It has been AutoGen-ed Thursday August 12, 2004 at 05:42:28 PM MDT ++ * It has been AutoGen-ed Sunday November 21, 2004 at 04:37:50 PM MST + * From the definitions inclhack.def + * and the template file fixincl + */ +-/* DO NOT CVS-MERGE THIS FILE, EITHER Thu Aug 12 17:42:28 MDT 2004 ++/* DO NOT CVS-MERGE THIS FILE, EITHER Sun Nov 21 16:37:50 MST 2004 + * + * You must regenerate it. Use the ./genfixes script. + * +@@ -15,7 +15,7 @@ + * certain ANSI-incompatible system header files which are fixed to work + * correctly with ANSI C and placed in a directory that GNU C will search. + * +- * This file contains 177 fixup descriptions. ++ * This file contains 178 fixup descriptions. + * + * See README for more information. + * +@@ -1085,6 +1085,47 @@ + + /* * * * * * * * * * * * * * * * * * * * * * * * * * + * ++ * Description of Alpha_Pthread_Init fix ++ */ ++tSCC zAlpha_Pthread_InitName[] = ++ "alpha_pthread_init"; ++ ++/* ++ * File name selection pattern ++ */ ++tSCC zAlpha_Pthread_InitList[] = ++ "|pthread.h|"; ++/* ++ * Machine/OS name selection pattern ++ */ ++tSCC* apzAlpha_Pthread_InitMachs[] = { ++ "alpha*-dec-osf*", ++ (const char*)NULL }; ++ ++/* ++ * content selection pattern - do fix if pattern found ++ */ ++tSCC zAlpha_Pthread_InitSelect0[] = ++ " \\* @\\(#\\).RCSfile: pthread\\.h,v \\$ .Revision: 1\\.1\\.33\\.21 \\$ \\(DEC\\) .Date: 2000/08/15 15:30:13 \\$"; ++ ++#define ALPHA_PTHREAD_INIT_TEST_CT 1 ++static tTestDesc aAlpha_Pthread_InitTests[] = { ++ { TT_EGREP, zAlpha_Pthread_InitSelect0, (regex_t*)NULL }, }; ++ ++/* ++ * Fix Command Arguments for Alpha_Pthread_Init ++ */ ++static const char* apzAlpha_Pthread_InitPatch[] = { "sed", ++ "-e", "s@MVALID\\(.*\\)A}@MVALID\\1A, 0, 0, 0, 0, 0, 0 }@\n\ ++s@MVALID\\(.*\\)_}@MVALID\\1_, 0, 0, 0, 0 }@\n\ ++s@CVALID\\(.*\\)A}@CVALID\\1A, 0, 0, 0, 0 }@\n\ ++s@CVALID\\(.*\\)_}@CVALID\\1_, 0, 0 }@\n\ ++s@WVALID\\(.*\\)A}@WVALID\\1A, 0, 0, 0, 0, 0, 0, 0, 0, 0 }@\n\ ++s@WVALID\\(.*\\)_}@WVALID\\1_, 0, 0, 0, 0, 0, 0, 0 }@\n", ++ (char*)NULL }; ++ ++/* * * * * * * * * * * * * * * * * * * * * * * * * * ++ * + * Description of Alpha_Sbrk fix + */ + tSCC zAlpha_SbrkName[] = +@@ -7018,9 +7059,9 @@ + * + * List of all fixes + */ +-#define REGEX_COUNT 199 ++#define REGEX_COUNT 200 + #define MACH_LIST_SIZE_LIMIT 261 +-#define FIX_COUNT 177 ++#define FIX_COUNT 178 + + /* + * Enumerate the fixes +@@ -7050,6 +7091,7 @@ + ALPHA_PARENS_FIXIDX, + ALPHA_PTHREAD_FIXIDX, + ALPHA_PTHREAD_GCC_FIXIDX, ++ ALPHA_PTHREAD_INIT_FIXIDX, + ALPHA_SBRK_FIXIDX, + ALPHA_WCHAR_FIXIDX, + AVOID_BOOL_DEFINE_FIXIDX, +@@ -7326,6 +7368,11 @@ + ALPHA_PTHREAD_GCC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aAlpha_Pthread_GccTests, apzAlpha_Pthread_GccPatch, 0 }, + ++ { zAlpha_Pthread_InitName, zAlpha_Pthread_InitList, ++ apzAlpha_Pthread_InitMachs, ++ ALPHA_PTHREAD_INIT_TEST_CT, FD_MACH_ONLY, ++ aAlpha_Pthread_InitTests, apzAlpha_Pthread_InitPatch, 0 }, ++ + { zAlpha_SbrkName, zAlpha_SbrkList, + apzAlpha_SbrkMachs, + ALPHA_SBRK_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, +Index: gcc/fixinc/inclhack.def +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/fixinc/Attic/inclhack.def,v +retrieving revision 1.190.4.7 +retrieving revision 1.190.4.9 +diff -u -r1.190.4.7 -r1.190.4.9 +--- gcc/fixinc/inclhack.def 14 Aug 2004 16:38:10 -0000 1.190.4.7 ++++ gcc/fixinc/inclhack.def 21 Nov 2004 23:59:53 -0000 1.190.4.9 +@@ -705,6 +705,50 @@ + "#endif"; + }; + ++/* ++ * Compaq Tru64 v5.1 defines all of its PTHREAD_*_INITIALIZER macros ++ * incorrectly, specifying less fields in the initializers than are ++ * defined in the corresponding structure types. Use of these macros ++ * in user code results in spurious warnings. ++ */ ++fix = { ++ hackname = alpha_pthread_init; ++ files = pthread.h; ++ select = ' \* @\(#\).RCSfile: pthread\.h,v \$' ++ ' .Revision: 1\.1\.33\.21 \$ \(DEC\)' ++ ' .Date: 2000/08/15 15:30:13 \$'; ++ mach = "alpha*-dec-osf*"; ++ sed = "s@MVALID\\(.*\\)A}@MVALID\\1A, 0, 0, 0, 0, 0, 0 }@\n" ++ "s@MVALID\\(.*\\)_}@MVALID\\1_, 0, 0, 0, 0 }@\n" ++ "s@CVALID\\(.*\\)A}@CVALID\\1A, 0, 0, 0, 0 }@\n" ++ "s@CVALID\\(.*\\)_}@CVALID\\1_, 0, 0 }@\n" ++ "s@WVALID\\(.*\\)A}@WVALID\\1A, 0, 0, 0, 0, 0, 0, 0, 0, 0 }@\n" ++ "s@WVALID\\(.*\\)_}@WVALID\\1_, 0, 0, 0, 0, 0, 0, 0 }@\n"; ++ test_text = "/*\n" ++ " * @(#)_RCSfile: pthread.h,v \\$ " ++ "_Revision: 1.1.33.21 \\$ (DEC) " ++ "_Date: 2000/08/15 15:30:13 \\$\n" ++ " */\n" ++"#ifndef _PTHREAD_NOMETER_STATIC\n" ++"# define PTHREAD_MUTEX_INITIALIZER \\\n" ++" {_PTHREAD_MSTATE_CONFIG, _PTHREAD_MVALID | _PTHREAD_MVF_STA}\n" ++"# define PTHREAD_COND_INITIALIZER \\\n" ++" {_PTHREAD_CSTATE_SLOW, _PTHREAD_CVALID | _PTHREAD_CVF_STA}\n" ++"# define PTHREAD_MUTEX_INITWITHNAME_NP(_n_,_a_) \\\n" ++" {_PTHREAD_MSTATE_CONFIG, _PTHREAD_MVALID | _PTHREAD_MVF_STA, _n_, _a_}\n" ++"# define PTHREAD_COND_INITWITHNAME_NP(_n_,_a_) \\\n" ++" {_PTHREAD_CSTATE_SLOW, _PTHREAD_CVALID | _PTHREAD_CVF_STA, _n_, _a_}\n" ++"#else\n" ++"# define PTHREAD_MUTEX_INITIALIZER {0, _PTHREAD_MVALID | _PTHREAD_MVF_STA}\n" ++"# define PTHREAD_MUTEX_INITWITHNAME_NP(_n_,_a_) \\\n" ++" {0, _PTHREAD_MVALID | _PTHREAD_MVF_STA, _n_, _a_}\n" ++"# define PTHREAD_COND_INITWITHNAME_NP(_n_,_a_) \\\n" ++" {0, _PTHREAD_CVALID | _PTHREAD_CVF_STA, _n_, _a_}\n" ++"#endif\n\n" ++"#define PTHREAD_RWLOCK_INITIALIZER {_PTHREAD_RWVALID | _PTHREAD_RWVF_STA}\n" ++"#define PTHREAD_RWLOCK_INITWITHNAME_NP(_n_,_a_) \\\n" ++" {_PTHREAD_RWVALID | _PTHREAD_RWVF_STA, _n_, _a_}\n"; ++}; + + /* + * Fix return value of sbrk in unistd.h on Alpha OSF/1 V2.0 +Index: gcc/fixinc/tests/base/pthread.h +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/fixinc/tests/base/Attic/pthread.h,v +retrieving revision 1.11.10.1 +retrieving revision 1.11.10.3 +diff -u -r1.11.10.1 -r1.11.10.3 +--- gcc/fixinc/tests/base/pthread.h 23 Jan 2004 20:59:01 -0000 1.11.10.1 ++++ gcc/fixinc/tests/base/pthread.h 21 Nov 2004 23:59:53 -0000 1.11.10.3 +@@ -35,6 +35,27 @@ + #endif /* ALPHA_PTHREAD_GCC_CHECK */ + + ++#if defined( ALPHA_PTHREAD_INIT_CHECK ) ++/* ++ * @(#)_RCSfile: pthread.h,v $ _Revision: 1.1.33.21 $ (DEC) _Date: 2000/08/15 15:30:13 $ ++ */ ++#ifndef _PTHREAD_NOMETER_STATIC ++# define PTHREAD_MUTEX_INITIALIZER {_PTHREAD_MSTATE_CONFIG, _PTHREAD_MVALID | _PTHREAD_MVF_STA, 0, 0, 0, 0, 0, 0 } ++# define PTHREAD_COND_INITIALIZER {_PTHREAD_CSTATE_SLOW, _PTHREAD_CVALID | _PTHREAD_CVF_STA, 0, 0, 0, 0 } ++# define PTHREAD_MUTEX_INITWITHNAME_NP(_n_,_a_) {_PTHREAD_MSTATE_CONFIG, _PTHREAD_MVALID | _PTHREAD_MVF_STA, _n_, _a_, 0, 0, 0, 0 } ++# define PTHREAD_COND_INITWITHNAME_NP(_n_,_a_) {_PTHREAD_CSTATE_SLOW, _PTHREAD_CVALID | _PTHREAD_CVF_STA, _n_, _a_, 0, 0 } ++#else ++# define PTHREAD_MUTEX_INITIALIZER {0, _PTHREAD_MVALID | _PTHREAD_MVF_STA, 0, 0, 0, 0, 0, 0 } ++# define PTHREAD_MUTEX_INITWITHNAME_NP(_n_,_a_) {0, _PTHREAD_MVALID | _PTHREAD_MVF_STA, _n_, _a_, 0, 0, 0, 0 } ++# define PTHREAD_COND_INITWITHNAME_NP(_n_,_a_) {{{0},0}, _PTHREAD_CVALID | _PTHREAD_CVF_STA, _n_, _a_, 0, 0 } ++#endif ++ ++#define PTHREAD_RWLOCK_INITIALIZER {_PTHREAD_RWVALID | _PTHREAD_RWVF_STA, 0, 0, 0, 0, 0, 0, 0, 0, 0 } ++#define PTHREAD_RWLOCK_INITWITHNAME_NP(_n_,_a_) {_PTHREAD_RWVALID | _PTHREAD_RWVF_STA, _n_, _a_, 0, 0, 0, 0, 0, 0, 0 } ++ ++#endif /* ALPHA_PTHREAD_INIT_CHECK */ ++ ++ + #if defined( PTHREAD_PAGE_SIZE_CHECK ) + extern int __page_size; + #endif /* PTHREAD_PAGE_SIZE_CHECK */ +Index: gcc/java/ChangeLog +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/java/ChangeLog,v +retrieving revision 1.1315.2.19 +retrieving revision 1.1315.2.21 +diff -u -r1.1315.2.19 -r1.1315.2.21 +--- gcc/java/ChangeLog 5 Nov 2004 03:34:01 -0000 1.1315.2.19 ++++ gcc/java/ChangeLog 13 Dec 2004 17:59:59 -0000 1.1315.2.21 +@@ -1,3 +1,18 @@ ++2004-12-13 Roger Sayle ++ ++ PR java/14104 ++ Backport from mainline ++ 2004-03-31 Andrew Haley ++ * jcf-io.c (opendir_in_zip): Tidy up error handling. ++ ++2004-12-07 Tom Tromey ++ ++ PR java/14853: ++ * java-tree.h (extract_field_decl): Declare. ++ * parse.y (extract_field_decl): Renamed from ++ strip_out_static_field_access_decl. No longer static. ++ * check-init.c (get_variable_decl): Unwrap COMPOUND_EXPRs. ++ + 2004-11-04 Release Manager + + * GCC 3.4.3 released. +Index: gcc/java/check-init.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/java/check-init.c,v +retrieving revision 1.53 +retrieving revision 1.53.10.1 +diff -u -r1.53 -r1.53.10.1 +--- gcc/java/check-init.c 28 Sep 2003 22:18:32 -0000 1.53 ++++ gcc/java/check-init.c 8 Dec 2004 17:29:40 -0000 1.53.10.1 +@@ -164,6 +164,11 @@ + static tree + get_variable_decl (tree exp) + { ++ /* A static field can be wrapped in a COMPOUND_EXPR where the first ++ argument initializes the class. */ ++ if (TREE_CODE (exp) == COMPOUND_EXPR) ++ exp = extract_field_decl (exp); ++ + if (TREE_CODE (exp) == VAR_DECL) + { + if (! TREE_STATIC (exp) || FIELD_FINAL (exp)) +Index: gcc/java/java-tree.h +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/java/java-tree.h,v +retrieving revision 1.194 +retrieving revision 1.194.2.1 +diff -u -r1.194 -r1.194.2.1 +--- gcc/java/java-tree.h 16 Jan 2004 17:11:08 -0000 1.194 ++++ gcc/java/java-tree.h 8 Dec 2004 17:29:40 -0000 1.194.2.1 +@@ -1801,4 +1801,7 @@ + }; + + #undef DEBUG_JAVA_BINDING_LEVELS ++ ++extern tree extract_field_decl (tree); ++ + #endif /* ! GCC_JAVA_TREE_H */ +Index: gcc/java/jcf-io.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/java/jcf-io.c,v +retrieving revision 1.48 +retrieving revision 1.48.4.1 +diff -u -r1.48 -r1.48.4.1 +--- gcc/java/jcf-io.c 20 Dec 2003 15:38:27 -0000 1.48 ++++ gcc/java/jcf-io.c 13 Dec 2004 18:00:02 -0000 1.48.4.1 +@@ -120,7 +120,6 @@ + zipf->next = SeenZipFiles; + zipf->name = (char*)(zipf+1); + strcpy (zipf->name, zipfile); +- SeenZipFiles = zipf; + fd = open (zipfile, O_RDONLY | O_BINARY); + zipf->fd = fd; + if (fd < 0) +@@ -140,6 +139,8 @@ + if (read_zip_archive (zipf) != 0) + return NULL; + } ++ ++ SeenZipFiles = zipf; + return zipf; + } + +Index: gcc/java/parse.y +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/java/parse.y,v +retrieving revision 1.464.4.2 +retrieving revision 1.464.4.3 +diff -u -r1.464.4.2 -r1.464.4.3 +--- gcc/java/parse.y 26 Feb 2004 14:12:19 -0000 1.464.4.2 ++++ gcc/java/parse.y 8 Dec 2004 17:29:40 -0000 1.464.4.3 +@@ -259,7 +259,6 @@ + static int array_constructor_check_entry (tree, tree); + static const char *purify_type_name (const char *); + static tree fold_constant_for_init (tree, tree); +-static tree strip_out_static_field_access_decl (tree); + static jdeplist *reverse_jdep_list (struct parser_ctxt *); + static void static_ref_err (tree, tree, tree); + static void parser_add_interface (tree, tree, tree); +@@ -9512,12 +9511,12 @@ + return field_ref; + } + +-/* If NODE is an access to f static field, strip out the class ++/* If NODE is an access to a static field, strip out the class + initialization part and return the field decl, otherwise, return + NODE. */ + +-static tree +-strip_out_static_field_access_decl (tree node) ++tree ++extract_field_decl (tree node) + { + if (TREE_CODE (node) == COMPOUND_EXPR) + { +@@ -14069,7 +14068,7 @@ + case PREINCREMENT_EXPR: + /* 15.14.2 Prefix Decrement Operator -- */ + case PREDECREMENT_EXPR: +- op = decl = strip_out_static_field_access_decl (op); ++ op = decl = extract_field_decl (op); + outer_field_flag = outer_field_expanded_access_p (op, NULL, NULL, NULL); + /* We might be trying to change an outer field accessed using + access method. */ +Index: gcc/objc/objc-act.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/objc/objc-act.c,v +retrieving revision 1.202.4.2 +retrieving revision 1.202.4.3 +diff -u -r1.202.4.2 -r1.202.4.3 +--- gcc/objc/objc-act.c 1 Jun 2004 07:34:34 -0000 1.202.4.2 ++++ gcc/objc/objc-act.c 14 Nov 2004 19:00:55 -0000 1.202.4.3 +@@ -7389,6 +7389,7 @@ + { + case 32: c = 'f'; break; + case 64: ++ case 96: + case 128: c = 'd'; break; + default: abort (); + } +Index: gcc/po/ChangeLog +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/po/ChangeLog,v +retrieving revision 1.91.4.36 +retrieving revision 1.91.4.37 +diff -u -r1.91.4.36 -r1.91.4.37 +--- gcc/po/ChangeLog 5 Nov 2004 03:34:04 -0000 1.91.4.36 ++++ gcc/po/ChangeLog 7 Nov 2004 19:58:49 -0000 1.91.4.37 +@@ -1,3 +1,8 @@ ++2004-11-07 Joseph S. Myers ++ ++ * be.po, ca.po, da.po, de.po, el.po, es.po, fr.po, ja.po, nl.po, ++ sv.po, tr.po: Update. ++ + 2004-11-04 Release Manager + + * GCC 3.4.3 released. +Index: gcc/po/be.po +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/po/be.po,v +retrieving revision 1.2.8.3 +retrieving revision 1.2.8.4 +diff -u -r1.2.8.3 -r1.2.8.4 +--- gcc/po/be.po 14 Sep 2004 20:36:50 -0000 1.2.8.3 ++++ gcc/po/be.po 7 Nov 2004 19:58:50 -0000 1.2.8.4 +@@ -6,7 +6,7 @@ + msgstr "" + "Project-Id-Version: gcc 3.1\n" + "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" +-"POT-Creation-Date: 2004-07-01 11:41-0700\n" ++"POT-Creation-Date: 2004-11-04 19:12-0800\n" + "PO-Revision-Date: 2002-05-17 15:54+0200\n" + "Last-Translator: Ales Nyakhaychyk \n" + "Language-Team: Belarusian \n" +@@ -34,16 +34,16 @@ + msgid "`%s' attribute only applies to function types" + msgstr "" + +-#: attribs.c:416 c-common.c:4307 c-common.c:4326 c-common.c:4344 +-#: c-common.c:4371 c-common.c:4390 c-common.c:4413 c-common.c:4436 +-#: c-common.c:4462 c-common.c:4496 c-common.c:4540 c-common.c:4568 +-#: c-common.c:4596 c-common.c:4615 c-common.c:4870 c-common.c:4892 +-#: c-common.c:4927 c-common.c:4994 c-common.c:5040 c-common.c:5098 +-#: c-common.c:5129 c-common.c:5475 c-common.c:5498 c-common.c:5537 +-#: config/arm/arm.c:2281 config/arm/arm.c:2308 config/avr/avr.c:4539 +-#: config/h8300/h8300.c:4284 config/h8300/h8300.c:4307 config/i386/i386.c:1620 +-#: config/i386/i386.c:15397 config/i386/winnt.c:86 config/ia64/ia64.c:1057 +-#: config/ip2k/ip2k.c:3151 ++#: attribs.c:416 c-common.c:4306 c-common.c:4325 c-common.c:4343 ++#: c-common.c:4370 c-common.c:4389 c-common.c:4412 c-common.c:4435 ++#: c-common.c:4461 c-common.c:4495 c-common.c:4539 c-common.c:4567 ++#: c-common.c:4595 c-common.c:4614 c-common.c:4881 c-common.c:4903 ++#: c-common.c:4938 c-common.c:5005 c-common.c:5051 c-common.c:5109 ++#: c-common.c:5140 c-common.c:5440 c-common.c:5463 c-common.c:5502 ++#: config/arm/arm.c:2281 config/arm/arm.c:2308 config/avr/avr.c:4504 ++#: config/h8300/h8300.c:4284 config/h8300/h8300.c:4307 config/i386/i386.c:1626 ++#: config/i386/i386.c:15398 config/i386/winnt.c:86 config/ia64/ia64.c:1057 ++#: config/ip2k/ip2k.c:3151 config/rs6000/rs6000.c:15035 + #, c-format + msgid "`%s' attribute ignored" + msgstr "\"%s\" атрыбут ігнарыруецца" +@@ -121,7 +121,7 @@ + + #. We can, however, treat "undefined" any way we please. + #. Call abort to encourage the user to fix the program. +-#: builtins.c:4134 c-typeck.c:1733 ++#: builtins.c:4134 c-typeck.c:1713 + msgid "if this code is reached, the program will abort" + msgstr "" + +@@ -159,397 +159,402 @@ + msgid "target format does not support infinity" + msgstr "ISO C не падтрымлівае комлекÑÐ½Ñ‹Ñ Ñ†ÑÐ»Ð°Ð»Ñ–ÐºÐ°Ð²Ñ‹Ñ Ñ‚Ñ‹Ð¿Ñ‹" + +-#: c-common.c:917 ++#: c-common.c:916 + msgid "%Hsuggest explicit braces to avoid ambiguous `else'" + msgstr "" + +-#: c-common.c:1141 ++#: c-common.c:1140 + #, fuzzy + msgid "%J'%D' is not defined outside of function scope" + msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)" + +-#: c-common.c:1161 ++#: c-common.c:1160 + #, c-format + msgid "string length `%d' is greater than the length `%d' ISO C%d compilers are required to support" + msgstr "" + +-#: c-common.c:1201 ++#: c-common.c:1200 + msgid "overflow in constant expression" + msgstr "" + +-#: c-common.c:1221 ++#: c-common.c:1220 + msgid "integer overflow in expression" + msgstr "" + +-#: c-common.c:1230 ++#: c-common.c:1229 + msgid "floating point overflow in expression" + msgstr "" + +-#: c-common.c:1236 ++#: c-common.c:1235 + msgid "vector overflow in expression" + msgstr "" + + #. This detects cases like converting -129 or 256 to unsigned char. +-#: c-common.c:1258 ++#: c-common.c:1257 + msgid "large integer implicitly truncated to unsigned type" + msgstr "" + +-#: c-common.c:1260 ++#: c-common.c:1259 + msgid "negative integer implicitly converted to unsigned type" + msgstr "" + +-#: c-common.c:1306 ++#: c-common.c:1305 + msgid "overflow in implicit constant conversion" + msgstr "" + +-#: c-common.c:1442 ++#: c-common.c:1441 + #, c-format + msgid "operation on `%s' may be undefined" + msgstr "" + +-#: c-common.c:1726 ++#: c-common.c:1725 + msgid "expression statement has incomplete type" + msgstr "" + +-#: c-common.c:1758 ++#: c-common.c:1757 + msgid "case label does not reduce to an integer constant" + msgstr "" + +-#: c-common.c:2088 ++#: c-common.c:2087 + msgid "invalid truth-value expression" + msgstr "" + +-#: c-common.c:2139 ++#: c-common.c:2138 + #, c-format + msgid "invalid operands to binary %s" + msgstr "" + +-#: c-common.c:2373 ++#: c-common.c:2372 + msgid "comparison is always false due to limited range of data type" + msgstr "" + +-#: c-common.c:2375 ++#: c-common.c:2374 + msgid "comparison is always true due to limited range of data type" + msgstr "" + +-#: c-common.c:2445 ++#: c-common.c:2444 + msgid "comparison of unsigned expression >= 0 is always true" + msgstr "" + +-#: c-common.c:2454 ++#: c-common.c:2453 + msgid "comparison of unsigned expression < 0 is always false" + msgstr "" + +-#: c-common.c:2499 ++#: c-common.c:2498 + msgid "pointer of type `void *' used in arithmetic" + msgstr "" + +-#: c-common.c:2505 ++#: c-common.c:2504 + msgid "pointer to a function used in arithmetic" + msgstr "" + +-#: c-common.c:2511 ++#: c-common.c:2510 + msgid "pointer to member function used in arithmetic" + msgstr "" + +-#: c-common.c:2600 f/com.c:14734 ++#: c-common.c:2599 f/com.c:14734 + msgid "struct type value used where scalar is required" + msgstr "" + +-#: c-common.c:2604 f/com.c:14738 ++#: c-common.c:2603 f/com.c:14738 + msgid "union type value used where scalar is required" + msgstr "" + +-#: c-common.c:2608 f/com.c:14742 ++#: c-common.c:2607 f/com.c:14742 + msgid "array type value used where scalar is required" + msgstr "" + + #. Common Ada/Pascal programmer's mistake. We always warn + #. about this since it is so bad. +-#: c-common.c:2645 ++#: c-common.c:2644 + msgid "the address of `%D', will always evaluate as `true'" + msgstr "" + +-#: c-common.c:2739 f/com.c:14874 ++#: c-common.c:2738 f/com.c:14874 + msgid "suggest parentheses around assignment used as truth value" + msgstr "" + +-#: c-common.c:2785 c-common.c:2825 ++#: c-common.c:2784 c-common.c:2824 + msgid "invalid use of `restrict'" + msgstr "нÑвернае выкарыÑтанне \"restict\"" + +-#: c-common.c:2935 ++#: c-common.c:2934 + #, fuzzy + msgid "invalid application of `sizeof' to a function type" + msgstr "ÐерÑчаіÑны выбар \"%s\"" + +-#: c-common.c:2945 ++#: c-common.c:2944 + #, fuzzy, c-format + msgid "invalid application of `%s' to a void type" + msgstr "нÑвернае выкарыÑтанне \"restict\"" + +-#: c-common.c:2951 ++#: c-common.c:2950 + #, fuzzy + msgid "invalid application of `%s' to incomplete type `%T' " + msgstr "\"%s\" мае незавершаны тып" + +-#: c-common.c:2992 ++#: c-common.c:2991 + msgid "`__alignof' applied to a bit-field" + msgstr "" + +-#: c-common.c:3484 ++#: c-common.c:3483 + #, fuzzy, c-format + msgid "cannot disable built-in function `%s'" + msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\"" + +-#: c-common.c:3645 c-typeck.c:1974 ++#: c-common.c:3644 c-typeck.c:1954 + #, c-format + msgid "too few arguments to function `%s'" + msgstr "нехапае аргументаў у функцыі \"%s\"" + +-#: c-common.c:3651 c-typeck.c:1835 ++#: c-common.c:3650 c-typeck.c:1815 + #, c-format + msgid "too many arguments to function `%s'" + msgstr "вельмі шмат аргумÑнтаў у функцыі `%s'" + +-#: c-common.c:3670 ++#: c-common.c:3669 + #, fuzzy, c-format + msgid "non-floating-point argument to function `%s'" + msgstr "вельмі шмат аргумÑнтаў у функцыі `%s'" + +-#: c-common.c:3897 ++#: c-common.c:3896 + msgid "pointers are not permitted as case values" + msgstr "" + +-#: c-common.c:3901 ++#: c-common.c:3900 + msgid "range expressions in switch statements are non-standard" + msgstr "" + +-#: c-common.c:3930 ++#: c-common.c:3929 + msgid "empty range specified" + msgstr "" + +-#: c-common.c:3981 ++#: c-common.c:3980 + msgid "duplicate (or overlapping) case value" + msgstr "" + +-#: c-common.c:3982 ++#: c-common.c:3981 + msgid "%Jthis is the first entry overlapping that value" + msgstr "" + +-#: c-common.c:3986 ++#: c-common.c:3985 + msgid "duplicate case value" + msgstr "" + +-#: c-common.c:3987 ++#: c-common.c:3986 + #, fuzzy + msgid "%Jpreviously used here" + msgstr "папÑÑ€ÑднÑе вызначÑньне" + +-#: c-common.c:3991 ++#: c-common.c:3990 + msgid "multiple default labels in one switch" + msgstr "" + +-#: c-common.c:3992 ++#: c-common.c:3991 + msgid "%Jthis is the first default label" + msgstr "" + +-#: c-common.c:4017 ++#: c-common.c:4016 + #, fuzzy + msgid "taking the address of a label is non-standard" + msgstr "ISO C не дазвалÑе пуÑÑ‚Ñ‹ ізыходны файл" + +-#: c-common.c:4063 ++#: c-common.c:4062 + msgid "%Hignoring return value of `%D', declared with attribute warn_unused_result" + msgstr "" + +-#: c-common.c:4068 ++#: c-common.c:4067 + msgid "%Hignoring return value of function declared with attribute warn_unused_result" + msgstr "" + +-#: c-common.c:4649 ++#: c-common.c:4651 + #, c-format + msgid "unknown machine mode `%s'" + msgstr "невÑдомы Ñ€Ñжым машыны \"%s\"" + +-#: c-common.c:4652 ++#: c-common.c:4654 + #, c-format + msgid "no data type for mode `%s'" + msgstr "нÑма тыпа дадзеных Ð´Ð»Ñ Ñ€Ñжыма \"%s\"" + +-#: c-common.c:4656 ++#: c-common.c:4658 + #, fuzzy, c-format + msgid "invalid pointer mode `%s'" + msgstr "ÐерÑчаіÑны выбар \"%s\"" + +-#: c-common.c:4663 c-common.c:5226 ++#: c-common.c:4665 c-common.c:5237 + #, fuzzy, c-format + msgid "unable to emulate '%s'" + msgstr "немагу адчыніць файл \"%s\"" + +-#: c-common.c:4707 ++#: c-common.c:4686 ++#, fuzzy, c-format ++msgid "mode `%s' applied to inappropriate type" ++msgstr "\"%s\" мае незавершаны тып" ++ ++#: c-common.c:4718 + #, fuzzy + msgid "%Jsection attribute cannot be specified for local variables" + msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹" + +-#: c-common.c:4718 ++#: c-common.c:4729 + #, fuzzy + msgid "%Jsection of '%D' conflicts with previous declaration" + msgstr "ÑÐµÐºÑ†Ñ‹Ñ \"%s\" канфліктуе з папÑÑ€ÑднÑй дÑкларацыÑй" + +-#: c-common.c:4727 ++#: c-common.c:4738 + #, fuzzy + msgid "%Jsection attribute not allowed for '%D'" + msgstr "\"%s\" атрыбут ігнарыруецца" + +-#: c-common.c:4733 ++#: c-common.c:4744 + #, fuzzy + msgid "%Jsection attributes are not supported for this target" + msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹" + +-#: c-common.c:4771 ++#: c-common.c:4782 + msgid "requested alignment is not a constant" + msgstr "" + +-#: c-common.c:4776 ++#: c-common.c:4787 + msgid "requested alignment is not a power of 2" + msgstr "" + +-#: c-common.c:4781 ++#: c-common.c:4792 + msgid "requested alignment is too large" + msgstr "" + +-#: c-common.c:4807 ++#: c-common.c:4818 + msgid "%Jalignment may not be specified for '%D'" + msgstr "" + +-#: c-common.c:4845 ++#: c-common.c:4856 + msgid "%J'%D' defined both normally and as an alias" + msgstr "" + +-#: c-common.c:4855 ++#: c-common.c:4866 + msgid "alias arg not a string" + msgstr "" + +-#: c-common.c:4898 ++#: c-common.c:4909 + msgid "visibility arg not a string" + msgstr "" + +-#: c-common.c:4911 ++#: c-common.c:4922 + msgid "visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\"" + msgstr "" + +-#: c-common.c:4937 ++#: c-common.c:4948 + msgid "tls_model arg not a string" + msgstr "" + +-#: c-common.c:4946 ++#: c-common.c:4957 + msgid "tls_model arg must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\"" + msgstr "" + +-#: c-common.c:4968 c-common.c:5014 ++#: c-common.c:4979 c-common.c:5025 + #, fuzzy + msgid "%J'%E' attribute applies only to functions" + msgstr "\"%s\" звычайна функцыÑ" + +-#: c-common.c:4973 c-common.c:5019 ++#: c-common.c:4984 c-common.c:5030 + msgid "%Jcan't set '%E' attribute after definition" + msgstr "" + +-#: c-common.c:5095 ++#: c-common.c:5106 + #, fuzzy, c-format + msgid "`%s' attribute ignored for `%s'" + msgstr "\"%s\" атрыбут ігнарыруецца" + +-#: c-common.c:5158 ++#: c-common.c:5169 + #, c-format + msgid "invalid vector type for attribute `%s'" + msgstr "" + +-#: c-common.c:5182 c-common.c:5214 ++#: c-common.c:5193 c-common.c:5225 + msgid "no vector mode with the size and type specified could be found" + msgstr "" + +-#: c-common.c:5316 ++#: c-common.c:5281 + msgid "nonnull attribute without arguments on a non-prototype" + msgstr "" + +-#: c-common.c:5331 ++#: c-common.c:5296 + #, c-format + msgid "nonnull argument has invalid operand number (arg %lu)" + msgstr "" + +-#: c-common.c:5350 ++#: c-common.c:5315 + #, c-format + msgid "nonnull argument with out-of-range operand number (arg %lu, operand %lu)" + msgstr "" + +-#: c-common.c:5358 ++#: c-common.c:5323 + #, c-format + msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)" + msgstr "" + +-#: c-common.c:5438 ++#: c-common.c:5403 + #, c-format + msgid "null argument where non-null required (arg %lu)" + msgstr "" + +-#: c-common.c:5509 ++#: c-common.c:5474 + msgid "cleanup arg not an identifier" + msgstr "" + +-#: c-common.c:5516 ++#: c-common.c:5481 + #, fuzzy + msgid "cleanup arg not a function" + msgstr "`%D' - гÑта Ð½Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ," + +-#: c-common.c:5877 ++#: c-common.c:5842 + #, c-format + msgid "%s at end of input" + msgstr "%s на прыканцы ўводу" + +-#: c-common.c:5883 ++#: c-common.c:5848 + #, c-format + msgid "%s before %s'%c'" + msgstr "%s перад %s'%c'" + +-#: c-common.c:5885 ++#: c-common.c:5850 + #, c-format + msgid "%s before %s'\\x%x'" + msgstr "%s перад %s'\\x%x'" + +-#: c-common.c:5889 ++#: c-common.c:5854 + #, c-format + msgid "%s before string constant" + msgstr "" + +-#: c-common.c:5891 ++#: c-common.c:5856 + #, c-format + msgid "%s before numeric constant" + msgstr "" + +-#: c-common.c:5893 ++#: c-common.c:5858 + #, c-format + msgid "%s before \"%s\"" + msgstr "%s перад \"%s\"" + +-#: c-common.c:5895 ++#: c-common.c:5860 + #, c-format + msgid "%s before '%s' token" + msgstr "%s перад знакам '%s'" + + #. Use `%s' to print the string in case there are any escape + #. characters in the message. +-#: c-common.c:5897 c-typeck.c:2612 c-typeck.c:4004 c-typeck.c:4019 +-#: c-typeck.c:4034 final.c:2776 final.c:2778 gcc.c:4581 rtl-error.c:109 +-#: toplev.c:1357 config/cris/cris.c:552 cp/parser.c:1848 cp/typeck.c:4155 ++#: c-common.c:5862 c-typeck.c:2592 c-typeck.c:3984 c-typeck.c:3999 ++#: c-typeck.c:4014 final.c:2776 final.c:2778 gcc.c:4584 rtl-error.c:109 ++#: toplev.c:1357 config/cris/cris.c:552 cp/parser.c:1848 cp/typeck.c:4173 + #: java/expr.c:356 java/verify.c:1456 java/verify.c:1457 java/verify.c:1472 + #, c-format + msgid "%s" + msgstr "" + +-#: c-convert.c:82 c-typeck.c:1211 c-typeck.c:3444 cp/typeck.c:1363 +-#: cp/typeck.c:5708 treelang/tree-convert.c:79 ++#: c-convert.c:82 c-typeck.c:1211 c-typeck.c:3424 cp/typeck.c:1363 ++#: cp/typeck.c:5729 treelang/tree-convert.c:79 + msgid "void value not ignored as it ought to be" + msgstr "" + +@@ -733,403 +738,403 @@ + msgid "%Jnon-const declaration of '%D' follows const declaration" + msgstr "" + +-#: c-decl.c:1262 ++#: c-decl.c:1267 + #, fuzzy + msgid "%Jredundant redeclaration of '%D'" + msgstr "ÐерÑчаіÑнае абвÑшчÑнне" + +-#: c-decl.c:1581 ++#: c-decl.c:1586 + msgid "%Jdeclaration of '%D' shadows a parameter" + msgstr "" + +-#: c-decl.c:1583 ++#: c-decl.c:1588 + msgid "%Jdeclaration of '%D' shadows a global declaration" + msgstr "" + +-#: c-decl.c:1585 ++#: c-decl.c:1590 + msgid "%Jdeclaration of '%D' shadows a previous local" + msgstr "" + +-#: c-decl.c:1587 cp/name-lookup.c:969 cp/name-lookup.c:992 ++#: c-decl.c:1592 cp/name-lookup.c:969 cp/name-lookup.c:992 + #: cp/name-lookup.c:1000 + #, fuzzy + msgid "%Jshadowed declaration is here" + msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\"" + +-#: c-decl.c:1697 ++#: c-decl.c:1702 + #, c-format + msgid "nested extern declaration of `%s'" + msgstr "" + +-#: c-decl.c:1838 objc/objc-act.c:2534 objc/objc-act.c:6794 ++#: c-decl.c:1843 objc/objc-act.c:2534 objc/objc-act.c:6794 + #, fuzzy + msgid "%Jprevious declaration of '%D'" + msgstr "папÑÑ€ÑднÑе абвÑшчÑньне `%D'" + +-#: c-decl.c:1879 c-decl.c:1881 ++#: c-decl.c:1884 c-decl.c:1886 + #, c-format + msgid "implicit declaration of function `%s'" + msgstr "" + +-#: c-decl.c:1897 ++#: c-decl.c:1902 + #, c-format + msgid "`%s' undeclared here (not in a function)" + msgstr "" + +-#: c-decl.c:1903 ++#: c-decl.c:1908 + #, c-format + msgid "`%s' undeclared (first use in this function)" + msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)" + +-#: c-decl.c:1908 ++#: c-decl.c:1913 + msgid "(Each undeclared identifier is reported only once" + msgstr "(Ðб кожным неабвешчаным ідÑнтыфікатары паведамлÑецца" + +-#: c-decl.c:1909 ++#: c-decl.c:1914 + msgid "for each function it appears in.)" + msgstr "адзін раз Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð°Ð¹ функцыі, дзе ён з'ÑўлÑецца.)" + +-#: c-decl.c:1962 ++#: c-decl.c:1967 + #, c-format + msgid "label %s referenced outside of any function" + msgstr "" + +-#: c-decl.c:2009 ++#: c-decl.c:2014 + #, c-format + msgid "duplicate label declaration `%s'" + msgstr "паўторнае абвÑшчÑньне адмеціны `%s'" + +-#: c-decl.c:2010 ++#: c-decl.c:2015 + #, fuzzy + msgid "%Jthis is a previous declaration" + msgstr "гÑта папÑÑ€ÑднÑе абвÑшчÑньне" + +-#: c-decl.c:2045 ++#: c-decl.c:2050 + #, fuzzy + msgid "%Hduplicate label `%D'" + msgstr "паўтарÑнне \"%s\"" + +-#: c-decl.c:2047 ++#: c-decl.c:2052 + #, fuzzy + msgid "%J`%D' previously defined here" + msgstr "папÑÑ€ÑднÑе вызначÑньне" + +-#: c-decl.c:2049 ++#: c-decl.c:2054 + #, fuzzy + msgid "%J`%D' previously declared here" + msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\"" + +-#: c-decl.c:2069 ++#: c-decl.c:2074 + msgid "%Htraditional C lacks a separate namespace for labels, identifier `%s' conflicts" + msgstr "" + +-#: c-decl.c:2140 ++#: c-decl.c:2145 + msgid "%H`%s' defined as wrong kind of tag" + msgstr "" + +-#: c-decl.c:2378 ++#: c-decl.c:2383 + msgid "unnamed struct/union that defines no instances" + msgstr "" + +-#: c-decl.c:2397 ++#: c-decl.c:2402 + msgid "useless keyword or type name in empty declaration" + msgstr "" + +-#: c-decl.c:2404 ++#: c-decl.c:2409 + msgid "two types specified in one empty declaration" + msgstr "" + +-#: c-decl.c:2409 c-parse.y:735 c-parse.y:737 objc/objc-parse.y:776 +-#: objc/objc-parse.y:778 objc/objc-parse.y:3017 ++#: c-decl.c:2414 c-parse.y:735 c-parse.y:737 objc/objc-parse.y:776 ++#: objc/objc-parse.y:778 objc/objc-parse.y:3016 + msgid "empty declaration" + msgstr "пуÑтое абвÑшчÑньне" + +-#: c-decl.c:2435 ++#: c-decl.c:2440 + #, fuzzy + msgid "ISO C90 does not support `static' or type qualifiers in parameter array declarators" + msgstr "ISO C89 не падтрымлівае \"long long\"" + +-#: c-decl.c:2437 ++#: c-decl.c:2442 + #, fuzzy + msgid "ISO C90 does not support `[*]' array declarators" + msgstr "ISO C89 не падтрымлівае \"long long\"" + +-#: c-decl.c:2440 ++#: c-decl.c:2445 + msgid "GCC does not yet properly implement `[*]' array declarators" + msgstr "" + +-#: c-decl.c:2456 ++#: c-decl.c:2461 + msgid "static or type qualifiers in abstract declarator" + msgstr "" + +-#: c-decl.c:2526 ++#: c-decl.c:2531 + #, fuzzy + msgid "%J'%D' is usually a function" + msgstr "`%s' - звычайна функцыÑ" + +-#: c-decl.c:2535 ++#: c-decl.c:2540 + #, fuzzy, c-format + msgid "typedef `%s' is initialized (use __typeof__ instead)" + msgstr "параметр \"%s\" ініцыÑлізаваны" + +-#: c-decl.c:2541 ++#: c-decl.c:2546 + #, c-format + msgid "function `%s' is initialized like a variable" + msgstr "" + + #. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE. +-#: c-decl.c:2548 ++#: c-decl.c:2553 + #, c-format + msgid "parameter `%s' is initialized" + msgstr "параметр \"%s\" ініцыÑлізаваны" + +-#: c-decl.c:2568 c-typeck.c:4254 ++#: c-decl.c:2573 c-typeck.c:4234 + msgid "variable-sized object may not be initialized" + msgstr "" + +-#: c-decl.c:2574 ++#: c-decl.c:2579 + #, c-format + msgid "variable `%s' has initializer but incomplete type" + msgstr "" + +-#: c-decl.c:2580 ++#: c-decl.c:2585 + #, c-format + msgid "elements of array `%s' have incomplete type" + msgstr "" + +-#: c-decl.c:2649 c-decl.c:5451 cp/decl.c:3761 cp/decl.c:10141 ++#: c-decl.c:2654 c-decl.c:5462 cp/decl.c:3775 cp/decl.c:10238 + #, fuzzy + msgid "%Jinline function '%D' given attribute noinline" + msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\"" + +-#: c-decl.c:2725 ++#: c-decl.c:2730 + msgid "%Jinitializer fails to determine size of '%D'" + msgstr "" + +-#: c-decl.c:2730 ++#: c-decl.c:2735 + #, fuzzy + msgid "%Jarray size missing in '%D'" + msgstr "прапушчан памер маÑіва Ñž `%D'" + +-#: c-decl.c:2746 ++#: c-decl.c:2751 + #, fuzzy + msgid "%Jzero or negative size array '%D'" + msgstr "нулÑвы памер маÑіва `%D'" + +-#: c-decl.c:2774 ++#: c-decl.c:2779 + msgid "%Jstorage size of '%D' isn't known" + msgstr "" + +-#: c-decl.c:2784 ++#: c-decl.c:2789 + #, fuzzy + msgid "%Jstorage size of '%D' isn't constant" + msgstr "тып параметра \"%s\" не аб'Ñўлены" + +-#: c-decl.c:2867 ++#: c-decl.c:2872 + msgid "%Jignoring asm-specifier for non-static local variable '%D'" + msgstr "" + +-#: c-decl.c:2978 ++#: c-decl.c:2983 + msgid "ISO C forbids forward parameter declarations" + msgstr "" + +-#: c-decl.c:3160 ++#: c-decl.c:3165 + msgid "" + msgstr "" + +-#: c-decl.c:3169 ++#: c-decl.c:3174 + #, c-format + msgid "bit-field `%s' width not an integer constant" + msgstr "" + +-#: c-decl.c:3177 ++#: c-decl.c:3182 + #, c-format + msgid "negative width in bit-field `%s'" + msgstr "" + +-#: c-decl.c:3182 ++#: c-decl.c:3187 + #, c-format + msgid "zero width for bit-field `%s'" + msgstr "" + +-#: c-decl.c:3192 ++#: c-decl.c:3197 + #, c-format + msgid "bit-field `%s' has invalid type" + msgstr "бітавае поле \"%s\" мае нерÑчаіÑны тып" + +-#: c-decl.c:3201 ++#: c-decl.c:3206 + #, c-format + msgid "type of bit-field `%s' is a GCC extension" + msgstr "" + +-#: c-decl.c:3210 ++#: c-decl.c:3215 + #, c-format + msgid "width of `%s' exceeds its type" + msgstr "" + +-#: c-decl.c:3220 ++#: c-decl.c:3225 + #, c-format + msgid "`%s' is narrower than values of its type" + msgstr "" + +-#: c-decl.c:3370 cp/decl.c:6805 ++#: c-decl.c:3375 cp/decl.c:6900 + msgid "`long long long' is too long for GCC" + msgstr "`long long long' - вельмі доўга Ð´Ð»Ñ GCC" + +-#: c-decl.c:3375 ++#: c-decl.c:3380 + #, fuzzy + msgid "ISO C90 does not support `long long'" + msgstr "ISO C89 не падтрымлівае `long long'" + +-#: c-decl.c:3384 c-decl.c:3387 cp/decl.c:6810 ++#: c-decl.c:3389 c-decl.c:3392 cp/decl.c:6905 + #, c-format + msgid "duplicate `%s'" + msgstr "паўтарÑньне `%s'" + +-#: c-decl.c:3397 cp/decl.c:6816 ++#: c-decl.c:3402 cp/decl.c:6911 + msgid "`__thread' before `extern'" + msgstr "" + +-#: c-decl.c:3399 cp/decl.c:6818 ++#: c-decl.c:3404 cp/decl.c:6913 + msgid "`__thread' before `static'" + msgstr "" + +-#: c-decl.c:3407 cp/decl.c:6845 ++#: c-decl.c:3412 cp/decl.c:6940 + #, c-format + msgid "two or more data types in declaration of `%s'" + msgstr "" + +-#: c-decl.c:3427 cp/decl.c:6850 ++#: c-decl.c:3432 cp/decl.c:6945 + #, c-format + msgid "`%s' fails to be a typedef or built in type" + msgstr "" + +-#: c-decl.c:3466 ++#: c-decl.c:3471 + #, c-format + msgid "type defaults to `int' in declaration of `%s'" + msgstr "" + +-#: c-decl.c:3495 ++#: c-decl.c:3500 + #, c-format + msgid "both long and short specified for `%s'" + msgstr "" + +-#: c-decl.c:3499 cp/decl.c:6950 ++#: c-decl.c:3504 cp/decl.c:7045 + #, c-format + msgid "long or short specified with char for `%s'" + msgstr "" + +-#: c-decl.c:3506 cp/decl.c:6954 ++#: c-decl.c:3511 cp/decl.c:7049 + #, c-format + msgid "long or short specified with floating type for `%s'" + msgstr "" + +-#: c-decl.c:3509 ++#: c-decl.c:3514 + msgid "the only valid combination is `long double'" + msgstr "" + +-#: c-decl.c:3515 ++#: c-decl.c:3520 + #, c-format + msgid "both signed and unsigned specified for `%s'" + msgstr "" + +-#: c-decl.c:3517 cp/decl.c:6943 ++#: c-decl.c:3522 cp/decl.c:7038 + #, c-format + msgid "long, short, signed or unsigned invalid for `%s'" + msgstr "long, short, signed ці unsigned нерÑчаіÑны Ð´Ð»Ñ \"%s\"" + +-#: c-decl.c:3523 cp/decl.c:6963 ++#: c-decl.c:3528 cp/decl.c:7058 + #, c-format + msgid "long, short, signed or unsigned used invalidly for `%s'" + msgstr "" + +-#: c-decl.c:3541 cp/decl.c:6984 ++#: c-decl.c:3546 cp/decl.c:7079 + #, c-format + msgid "complex invalid for `%s'" + msgstr "complex нерÑчаіÑны Ð´Ð»Ñ \"%s\"" + +-#: c-decl.c:3583 ++#: c-decl.c:3588 + #, fuzzy + msgid "ISO C90 does not support complex types" + msgstr "ISO C89 не падтрымлівае комлекÑÐ½Ñ‹Ñ Ñ‚Ñ‹Ð¿Ñ‹" + +-#: c-decl.c:3595 ++#: c-decl.c:3600 + msgid "ISO C does not support plain `complex' meaning `double complex'" + msgstr "ISO C не падтрымлівае проÑÑ‚Ñ‹ \"complex\" у значÑнні \"double complex\"" + +-#: c-decl.c:3601 c-decl.c:3613 ++#: c-decl.c:3606 c-decl.c:3618 + msgid "ISO C does not support complex integer types" + msgstr "ISO C не падтрымлівае комлекÑÐ½Ñ‹Ñ Ñ†ÑÐ»Ð°Ð»Ñ–ÐºÐ°Ð²Ñ‹Ñ Ñ‚Ñ‹Ð¿Ñ‹" + +-#: c-decl.c:3643 c-decl.c:4104 cp/decl.c:7576 ++#: c-decl.c:3648 c-decl.c:4115 cp/decl.c:7671 + msgid "duplicate `const'" + msgstr "паўтарÑнне \"const\"" + +-#: c-decl.c:3645 c-decl.c:4108 cp/decl.c:7580 ++#: c-decl.c:3650 c-decl.c:4119 cp/decl.c:7675 + msgid "duplicate `restrict'" + msgstr "паўтарÑнне \"restrict\"" + +-#: c-decl.c:3647 c-decl.c:4106 cp/decl.c:7578 ++#: c-decl.c:3652 c-decl.c:4117 cp/decl.c:7673 + msgid "duplicate `volatile'" + msgstr "паўтарÑнне \"volatile\"" + +-#: c-decl.c:3676 cp/decl.c:7147 ++#: c-decl.c:3681 cp/decl.c:7242 + #, c-format + msgid "multiple storage classes in declaration of `%s'" + msgstr "" + +-#: c-decl.c:3686 ++#: c-decl.c:3691 + msgid "function definition declared `auto'" + msgstr "" + +-#: c-decl.c:3688 ++#: c-decl.c:3693 + msgid "function definition declared `register'" + msgstr "" + +-#: c-decl.c:3690 ++#: c-decl.c:3695 + msgid "function definition declared `typedef'" + msgstr "" + +-#: c-decl.c:3692 ++#: c-decl.c:3697 + #, fuzzy + msgid "function definition declared `__thread'" + msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– не могуць быць ÑÑброўÑкімі" + +-#: c-decl.c:3705 ++#: c-decl.c:3710 + #, c-format + msgid "storage class specified for structure field `%s'" + msgstr "" + +-#: c-decl.c:3709 cp/decl.c:7192 ++#: c-decl.c:3714 cp/decl.c:7287 + #, c-format + msgid "storage class specified for parameter `%s'" + msgstr "" + +-#: c-decl.c:3712 cp/decl.c:7194 ++#: c-decl.c:3717 cp/decl.c:7289 + msgid "storage class specified for typename" + msgstr "" + +-#: c-decl.c:3724 cp/decl.c:7209 ++#: c-decl.c:3729 cp/decl.c:7304 + #, c-format + msgid "`%s' initialized and declared `extern'" + msgstr "" + +-#: c-decl.c:3726 cp/decl.c:7212 ++#: c-decl.c:3731 cp/decl.c:7307 + #, c-format + msgid "`%s' has both `extern' and initializer" + msgstr "" + +-#: c-decl.c:3731 ++#: c-decl.c:3736 + #, fuzzy, c-format + msgid "file-scope declaration of `%s' specifies `auto'" + msgstr "Ðе магу знайÑці дÑкларацыю інтÑрфейÑа Ð´Ð»Ñ \"%s\"" + +-#: c-decl.c:3736 cp/decl.c:7216 ++#: c-decl.c:3741 cp/decl.c:7311 + #, c-format + msgid "nested function `%s' declared `extern'" + msgstr "" + +-#: c-decl.c:3742 cp/decl.c:7226 ++#: c-decl.c:3747 cp/decl.c:7321 + #, fuzzy, c-format + msgid "function-scope `%s' implicitly auto and declared `__thread'" + msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– не могуць быць ÑÑброўÑкімі" +@@ -1137,456 +1142,456 @@ + #. Only the innermost declarator (making a parameter be of + #. array type which is converted to pointer type) + #. may have static or type qualifiers. +-#: c-decl.c:3781 c-decl.c:3974 ++#: c-decl.c:3786 c-decl.c:3979 + msgid "static or type qualifiers in non-parameter array declarator" + msgstr "" + +-#: c-decl.c:3825 ++#: c-decl.c:3830 + #, c-format + msgid "declaration of `%s' as array of voids" + msgstr "" + +-#: c-decl.c:3831 ++#: c-decl.c:3836 + #, c-format + msgid "declaration of `%s' as array of functions" + msgstr "" + +-#: c-decl.c:3836 ++#: c-decl.c:3841 + #, fuzzy + msgid "invalid use of structure with flexible array member" + msgstr "нÑвернае выкарыÑтанне \"restict\"" + +-#: c-decl.c:3855 ++#: c-decl.c:3860 + #, c-format + msgid "size of array `%s' has non-integer type" + msgstr "" + +-#: c-decl.c:3860 ++#: c-decl.c:3865 + #, c-format + msgid "ISO C forbids zero-size array `%s'" + msgstr "" + +-#: c-decl.c:3867 ++#: c-decl.c:3872 + #, c-format + msgid "size of array `%s' is negative" + msgstr "памер маÑіва \"%s\" адмоўны" + +-#: c-decl.c:3880 ++#: c-decl.c:3885 + #, c-format + msgid "ISO C90 forbids array `%s' whose size can't be evaluated" + msgstr "" + +-#: c-decl.c:3883 ++#: c-decl.c:3888 + #, fuzzy, c-format + msgid "ISO C90 forbids variable-size array `%s'" + msgstr "ISO C не дазвалÑе дÑкларацыі метак (label)" + +-#: c-decl.c:3913 c-decl.c:4131 cp/decl.c:7755 ++#: c-decl.c:3918 c-decl.c:4142 cp/decl.c:7850 + #, c-format + msgid "size of array `%s' is too large" + msgstr "памер маÑіва \"%s\" вельмі вÑлікі" + +-#: c-decl.c:3939 ++#: c-decl.c:3944 + #, fuzzy + msgid "ISO C90 does not support flexible array members" + msgstr "ISO C89 не падтрымлівае комлекÑÐ½Ñ‹Ñ Ñ‚Ñ‹Ð¿Ñ‹" + +-#: c-decl.c:3949 ++#: c-decl.c:3954 + msgid "array type has incomplete element type" + msgstr "" + +-#: c-decl.c:3994 cp/decl.c:7347 ++#: c-decl.c:4009 cp/decl.c:7442 + #, c-format + msgid "`%s' declared as function returning a function" + msgstr "" + +-#: c-decl.c:3999 cp/decl.c:7352 ++#: c-decl.c:4014 cp/decl.c:7447 + #, c-format + msgid "`%s' declared as function returning an array" + msgstr "" + +-#: c-decl.c:4027 ++#: c-decl.c:4038 + msgid "ISO C forbids qualified void function return type" + msgstr "" + +-#: c-decl.c:4031 ++#: c-decl.c:4042 + msgid "type qualifiers ignored on function return type" + msgstr "" + +-#: c-decl.c:4060 c-decl.c:4146 c-decl.c:4270 c-decl.c:4356 ++#: c-decl.c:4071 c-decl.c:4157 c-decl.c:4281 c-decl.c:4367 + msgid "ISO C forbids qualified function types" + msgstr "" + +-#: c-decl.c:4100 cp/decl.c:7572 ++#: c-decl.c:4111 cp/decl.c:7667 + msgid "invalid type modifier within pointer declarator" + msgstr "" + +-#: c-decl.c:4181 ++#: c-decl.c:4192 + msgid "ISO C forbids const or volatile function types" + msgstr "" + +-#: c-decl.c:4201 cp/decl.c:8036 ++#: c-decl.c:4212 + #, c-format + msgid "variable or field `%s' declared void" + msgstr "" + +-#: c-decl.c:4234 ++#: c-decl.c:4245 + msgid "attributes in parameter array declarator ignored" + msgstr "" + +-#: c-decl.c:4259 ++#: c-decl.c:4270 + msgid "invalid type modifier within array declarator" + msgstr "" + +-#: c-decl.c:4304 ++#: c-decl.c:4315 + #, c-format + msgid "field `%s' declared as a function" + msgstr "" + +-#: c-decl.c:4310 ++#: c-decl.c:4321 + #, c-format + msgid "field `%s' has incomplete type" + msgstr "" + +-#: c-decl.c:4336 c-decl.c:4338 c-decl.c:4340 c-decl.c:4347 ++#: c-decl.c:4347 c-decl.c:4349 c-decl.c:4351 c-decl.c:4358 + #, c-format + msgid "invalid storage class for function `%s'" + msgstr "" + +-#: c-decl.c:4362 ++#: c-decl.c:4373 + msgid "`noreturn' function returns non-void value" + msgstr "" + +-#: c-decl.c:4377 ++#: c-decl.c:4388 + msgid "cannot inline function `main'" + msgstr "" + +-#: c-decl.c:4431 ++#: c-decl.c:4442 + msgid "variable previously declared `static' redeclared `extern'" + msgstr "" + +-#: c-decl.c:4440 ++#: c-decl.c:4451 + #, fuzzy + msgid "%Jvariable '%D' declared `inline'" + msgstr "тып параметра \"%s\" не аб'Ñўлены" + + #. A mere warning is sure to result in improper semantics + #. at runtime. Don't bother to allow this to compile. +-#: c-decl.c:4468 cp/decl.c:5903 ++#: c-decl.c:4479 cp/decl.c:5972 + #, fuzzy + msgid "thread-local storage not supported for this target" + msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹" + +-#: c-decl.c:4529 c-decl.c:5495 ++#: c-decl.c:4540 c-decl.c:5506 + msgid "function declaration isn't a prototype" + msgstr "" + +-#: c-decl.c:4535 ++#: c-decl.c:4546 + msgid "parameter names (without types) in function declaration" + msgstr "" + +-#: c-decl.c:4563 ++#: c-decl.c:4574 + #, c-format + msgid "parameter `%s' has incomplete type" + msgstr "" + +-#: c-decl.c:4566 ++#: c-decl.c:4577 + msgid "parameter has incomplete type" + msgstr "" + +-#: c-decl.c:4615 ++#: c-decl.c:4626 + msgid "\"void\" as only parameter may not be qualified" + msgstr "" + +-#: c-decl.c:4636 ++#: c-decl.c:4647 + #, fuzzy + msgid "\"void\" must be the only parameter" + msgstr "нÑвернае выкарыÑтанне \"restict\"" + +-#: c-decl.c:4653 ++#: c-decl.c:4664 + msgid "%Jparameter \"%D\" has just a forward declaration" + msgstr "" + + #. The first %s will be one of 'struct', 'union', or 'enum'. +-#: c-decl.c:4681 ++#: c-decl.c:4692 + #, c-format + msgid "\"%s %s\" declared inside parameter list" + msgstr "" + + #. The %s will be one of 'struct', 'union', or 'enum'. +-#: c-decl.c:4685 ++#: c-decl.c:4696 + #, c-format + msgid "anonymous %s declared inside parameter list" + msgstr "" + +-#: c-decl.c:4689 ++#: c-decl.c:4700 + msgid "its scope is only this definition or declaration, which is probably not what you want" + msgstr "" + +-#: c-decl.c:4774 ++#: c-decl.c:4785 + #, c-format + msgid "redefinition of `union %s'" + msgstr "" + +-#: c-decl.c:4776 ++#: c-decl.c:4787 + #, fuzzy, c-format + msgid "redefinition of `struct %s'" + msgstr "перанакіраванне stdout: %s" + +-#: c-decl.c:4844 cp/decl.c:3534 ++#: c-decl.c:4855 cp/decl.c:3548 + msgid "declaration does not declare anything" + msgstr "" + +-#: c-decl.c:4889 c-decl.c:4905 ++#: c-decl.c:4900 c-decl.c:4916 + #, fuzzy + msgid "%Jduplicate member '%D'" + msgstr "паўтарÑнне \"%s\"" + +-#: c-decl.c:4939 c-decl.c:4942 ++#: c-decl.c:4950 c-decl.c:4953 + #, c-format + msgid "%s defined inside parms" + msgstr "" + +-#: c-decl.c:4940 c-decl.c:4943 c-decl.c:4954 ++#: c-decl.c:4951 c-decl.c:4954 c-decl.c:4965 + msgid "union" + msgstr "аб'Ñднанне" + +-#: c-decl.c:4940 c-decl.c:4943 ++#: c-decl.c:4951 c-decl.c:4954 + msgid "structure" + msgstr "Ñтруктура" + +-#: c-decl.c:4953 ++#: c-decl.c:4964 + #, c-format + msgid "%s has no %s" + msgstr "" + +-#: c-decl.c:4954 ++#: c-decl.c:4965 + msgid "struct" + msgstr "Ñтруктура" + +-#: c-decl.c:4955 ++#: c-decl.c:4966 + msgid "named members" + msgstr "" + +-#: c-decl.c:4955 ++#: c-decl.c:4966 + msgid "members" + msgstr "члены" + +-#: c-decl.c:4994 ++#: c-decl.c:5005 + #, c-format + msgid "nested redefinition of `%s'" + msgstr "" + +-#: c-decl.c:5015 ++#: c-decl.c:5026 + msgid "%Jflexible array member in union" + msgstr "" + +-#: c-decl.c:5020 ++#: c-decl.c:5031 + msgid "%Jflexible array member not at end of struct" + msgstr "" + +-#: c-decl.c:5025 ++#: c-decl.c:5036 + msgid "%Jflexible array member in otherwise empty struct" + msgstr "" + +-#: c-decl.c:5032 ++#: c-decl.c:5043 + #, fuzzy + msgid "%Jinvalid use of structure with flexible array member" + msgstr "нÑвернае выкарыÑтанне \"restict\"" + +-#: c-decl.c:5127 ++#: c-decl.c:5138 + msgid "union cannot be made transparent" + msgstr "" + + #. This enum is a named one that has been declared already. +-#: c-decl.c:5196 ++#: c-decl.c:5207 + #, c-format + msgid "redeclaration of `enum %s'" + msgstr "" + +-#: c-decl.c:5227 ++#: c-decl.c:5238 + msgid "enum defined inside parms" + msgstr "" + +-#: c-decl.c:5260 ++#: c-decl.c:5271 + msgid "enumeration values exceed range of largest integer" + msgstr "" + +-#: c-decl.c:5363 ++#: c-decl.c:5374 + #, c-format + msgid "enumerator value for `%s' not integer constant" + msgstr "" + +-#: c-decl.c:5376 ++#: c-decl.c:5387 + msgid "overflow in enumeration values" + msgstr "" + +-#: c-decl.c:5381 ++#: c-decl.c:5392 + msgid "ISO C restricts enumerator values to range of `int'" + msgstr "" + +-#: c-decl.c:5457 ++#: c-decl.c:5468 + msgid "return type is an incomplete type" + msgstr "" + +-#: c-decl.c:5465 ++#: c-decl.c:5476 + msgid "return type defaults to `int'" + msgstr "" + +-#: c-decl.c:5501 ++#: c-decl.c:5512 + #, fuzzy + msgid "%Jno previous prototype for '%D'" + msgstr "нÑма папÑÑ€ÑднÑга прататыпа Ð´Ð»Ñ \"%s\"" + +-#: c-decl.c:5507 ++#: c-decl.c:5518 + #, fuzzy + msgid "%J'%D' was used with no prototype before its definition" + msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)" + +-#: c-decl.c:5514 ++#: c-decl.c:5525 + #, fuzzy + msgid "%Jno previous declaration for '%D'" + msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\"" + +-#: c-decl.c:5520 ++#: c-decl.c:5531 + #, fuzzy + msgid "%J`%D' was used with no declaration before its definition" + msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)" + +-#: c-decl.c:5556 c-decl.c:6062 ++#: c-decl.c:5567 c-decl.c:6073 + #, fuzzy + msgid "%Jreturn type of '%D' is not `int'" + msgstr "вÑртаемы тып \"%s\" не \"int\"" + +-#: c-decl.c:5571 ++#: c-decl.c:5582 + #, fuzzy + msgid "%Jfirst argument of '%D' should be `int'" + msgstr "першым аргументам \"%s\" павінен быць \"int\"" + +-#: c-decl.c:5580 ++#: c-decl.c:5591 + #, fuzzy + msgid "%Jsecond argument of '%D' should be 'char **'" + msgstr "другім аргументам \"%s\" павінен быць \"char **\"" + +-#: c-decl.c:5589 ++#: c-decl.c:5600 + #, fuzzy + msgid "%Jthird argument of '%D' should probably be 'char **'" + msgstr "другім аргументам \"%s\" павінен быць \"char **\"" + +-#: c-decl.c:5599 ++#: c-decl.c:5610 + msgid "%J'%D' takes only zero or two arguments" + msgstr "" + +-#: c-decl.c:5602 ++#: c-decl.c:5613 + #, fuzzy + msgid "%J'%D' is normally a non-static function" + msgstr "`%s' - звычайна функцыÑ" + +-#: c-decl.c:5658 ++#: c-decl.c:5669 + msgid "%Jold-style parameter declarations in prototyped function definition" + msgstr "" + +-#: c-decl.c:5672 ++#: c-decl.c:5683 + #, fuzzy + msgid "%Jparameter name omitted" + msgstr "тып параметра \"%s\" не аб'Ñўлены" + +-#: c-decl.c:5747 ++#: c-decl.c:5758 + msgid "%Jparameter name missing from parameter list" + msgstr "" + +-#: c-decl.c:5757 ++#: c-decl.c:5768 + msgid "%J\"%D\" declared as a non-parameter" + msgstr "" + +-#: c-decl.c:5762 ++#: c-decl.c:5773 + #, fuzzy + msgid "%Jmultiple parameters named \"%D\"" + msgstr "невыкарыÑтаемы параметр \"%s\"" + +-#: c-decl.c:5770 ++#: c-decl.c:5781 + #, fuzzy + msgid "%Jparameter \"%D\" declared void" + msgstr "тып параметра \"%s\" не аб'Ñўлены" + +-#: c-decl.c:5785 c-decl.c:5787 ++#: c-decl.c:5796 c-decl.c:5798 + msgid "%Jtype of \"%D\" defaults to \"int\"" + msgstr "" + +-#: c-decl.c:5801 ++#: c-decl.c:5812 + #, fuzzy + msgid "%Jparameter \"%D\" has incomplete type" + msgstr "\"%s\" мае незавершаны тып" + +-#: c-decl.c:5807 ++#: c-decl.c:5818 + msgid "%Jdeclaration for parameter \"%D\" but no such parameter" + msgstr "" + +-#: c-decl.c:5859 ++#: c-decl.c:5870 + msgid "number of arguments doesn't match prototype" + msgstr "" + +-#: c-decl.c:5860 c-decl.c:5891 c-decl.c:5898 ++#: c-decl.c:5871 c-decl.c:5902 c-decl.c:5909 + #, fuzzy + msgid "%Hprototype declaration" + msgstr "пуÑтое абвÑшчÑньне" + +-#: c-decl.c:5889 ++#: c-decl.c:5900 + msgid "promoted argument \"%D\" doesn't match prototype" + msgstr "" + +-#: c-decl.c:5897 ++#: c-decl.c:5908 + msgid "argument \"%D\" doesn't match prototype" + msgstr "" + +-#: c-decl.c:6094 cp/decl.c:10857 ++#: c-decl.c:6105 cp/decl.c:10954 + msgid "no return statement in function returning non-void" + msgstr "" + +-#: c-decl.c:6101 ++#: c-decl.c:6112 + msgid "this function may return with or without a value" + msgstr "" + + #. If we get here, declarations have been used in a for loop without + #. the C99 for loop scope. This doesn't make much sense, so don't + #. allow it. +-#: c-decl.c:6200 ++#: c-decl.c:6211 + msgid "'for' loop initial declaration used outside C99 mode" + msgstr "" + +-#: c-decl.c:6224 ++#: c-decl.c:6235 + #, c-format + msgid "'struct %s' declared in 'for' loop initial declaration" + msgstr "" + +-#: c-decl.c:6227 ++#: c-decl.c:6238 + #, fuzzy, c-format + msgid "'union %s' declared in 'for' loop initial declaration" + msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)" + +-#: c-decl.c:6230 ++#: c-decl.c:6241 + #, c-format + msgid "'enum %s' declared in 'for' loop initial declaration" + msgstr "" + +-#: c-decl.c:6238 ++#: c-decl.c:6249 + msgid "%Jdeclaration of non-variable '%D' in 'for' loop initial declaration" + msgstr "" + +-#: c-decl.c:6241 ++#: c-decl.c:6252 + msgid "%Jdeclaration of static variable '%D' in 'for' loop initial declaration" + msgstr "" + +-#: c-decl.c:6244 ++#: c-decl.c:6255 + msgid "%Jdeclaration of 'extern' variable '%D' in 'for' loop initial declaration" + msgstr "" + +-#: c-decl.c:6557 ++#: c-decl.c:6568 + #, fuzzy + msgid "%Jredefinition of global '%D'" + msgstr "перанакіраванне stdout: %s" + +-#: c-decl.c:6558 ++#: c-decl.c:6569 + #, fuzzy + msgid "%J'%D' previously defined here" + msgstr "папÑÑ€ÑднÑе вызначÑньне" +@@ -2224,91 +2229,91 @@ + msgid "missing makefile target after \"%s\"" + msgstr "прапушчан прабел паÑÐ»Ñ Ð½ÑƒÐ¼Ð°Ñ€Ð° \"%.*s\"" + +-#: c-opts.c:291 ++#: c-opts.c:299 + msgid "-I- specified twice" + msgstr "" + +-#: c-opts.c:692 ++#: c-opts.c:700 + #, fuzzy, c-format + msgid "switch \"%s\" is no longer supported" + msgstr "-pipe не падтрымліваецца." + +-#: c-opts.c:812 ++#: c-opts.c:820 + msgid "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)" + msgstr "" + +-#: c-opts.c:978 ++#: c-opts.c:986 + #, fuzzy + msgid "output filename specified twice" + msgstr "не зададзены ўваходзÑÑ‡Ñ‹Ñ Ñ„Ð°Ð¹Ð»Ñ‹" + +-#: c-opts.c:1107 ++#: c-opts.c:1115 + msgid "-Wformat-y2k ignored without -Wformat" + msgstr "" + +-#: c-opts.c:1109 ++#: c-opts.c:1117 + msgid "-Wformat-extra-args ignored without -Wformat" + msgstr "" + +-#: c-opts.c:1111 ++#: c-opts.c:1119 + msgid "-Wformat-zero-length ignored without -Wformat" + msgstr "" + +-#: c-opts.c:1113 ++#: c-opts.c:1121 + msgid "-Wformat-nonliteral ignored without -Wformat" + msgstr "" + +-#: c-opts.c:1115 ++#: c-opts.c:1123 + msgid "-Wformat-security ignored without -Wformat" + msgstr "" + +-#: c-opts.c:1117 ++#: c-opts.c:1125 + msgid "-Wmissing-format-attribute ignored without -Wformat" + msgstr "" + +-#: c-opts.c:1131 ++#: c-opts.c:1139 + #, fuzzy, c-format + msgid "opening output file %s: %m" + msgstr "немагчыма адчыніць файл уводу `%s'" + +-#: c-opts.c:1136 ++#: c-opts.c:1144 + #, c-format + msgid "too many filenames given. Type %s --help for usage" + msgstr "" + +-#: c-opts.c:1215 ++#: c-opts.c:1223 + #, fuzzy + msgid "YYDEBUG not defined" + msgstr "YYDEBUG не вызначан." + +-#: c-opts.c:1261 ++#: c-opts.c:1269 + #, c-format + msgid "opening dependency file %s: %m" + msgstr "" + +-#: c-opts.c:1271 ++#: c-opts.c:1279 + #, c-format + msgid "closing dependency file %s: %m" + msgstr "" + +-#: c-opts.c:1274 ++#: c-opts.c:1282 + #, fuzzy, c-format + msgid "when writing output to %s: %m" + msgstr "памылка запіÑу Ñž %s" + +-#: c-opts.c:1344 ++#: c-opts.c:1352 + msgid "to generate dependencies you must specify either -M or -MM" + msgstr "" + +-#: c-opts.c:1404 ++#: c-opts.c:1412 + msgid "" + msgstr "" + +-#: c-opts.c:1419 ++#: c-opts.c:1427 + msgid "" + msgstr "" + +-#: c-opts.c:1503 ++#: c-opts.c:1511 + msgid "too late for # directive to set debug directory" + msgstr "" + +@@ -2326,7 +2331,7 @@ + msgid "ISO C forbids an empty source file" + msgstr "ISO C не дазвалÑе пуÑÑ‚Ñ‹ ізыходны файл" + +-#: c-parse.y:349 c-typeck.c:6248 objc/objc-parse.y:374 ++#: c-parse.y:349 c-typeck.c:6228 objc/objc-parse.y:374 + msgid "argument of `asm' is not a constant string" + msgstr "" + +@@ -2342,7 +2347,7 @@ + msgid "ISO C does not allow extra `;' outside of a function" + msgstr "" + +-#: c-parse.y:429 cppexp.c:1253 ++#: c-parse.y:429 cppexp.c:1257 + msgid "traditional C rejects the unary plus operator" + msgstr "" + +@@ -2422,7 +2427,7 @@ + msgid "ISO C forbids forward references to `enum' types" + msgstr "" + +-#: c-parse.y:1703 cp/parser.c:9339 objc/objc-parse.y:1755 ++#: c-parse.y:1703 cp/parser.c:9383 objc/objc-parse.y:1755 + msgid "comma at end of enumerator list" + msgstr "" + +@@ -2430,7 +2435,7 @@ + msgid "no semicolon at end of struct or union" + msgstr "" + +-#: c-parse.y:1732 objc/objc-parse.y:1784 objc/objc-parse.y:2847 ++#: c-parse.y:1732 objc/objc-parse.y:1784 objc/objc-parse.y:2846 + msgid "extra semicolon in struct or union specified" + msgstr "" + +@@ -2459,24 +2464,24 @@ + msgid "braced-group within expression allowed only inside a function" + msgstr "" + +-#: c-parse.y:2185 objc/objc-parse.y:2242 ++#: c-parse.y:2185 objc/objc-parse.y:2241 + msgid "empty body in an else-statement" + msgstr "пуÑтое цела Ñž else-выражÑнні" + +-#: c-parse.y:2193 objc/objc-parse.y:2250 ++#: c-parse.y:2193 objc/objc-parse.y:2249 + #, fuzzy + msgid "%Hempty body in an if-statement" + msgstr "пуÑтое цела Ñž else-выражÑнні" + +-#: c-parse.y:2273 cp/parser.c:6050 objc/objc-parse.y:2330 ++#: c-parse.y:2273 cp/parser.c:6088 objc/objc-parse.y:2329 + msgid "break statement not within loop or switch" + msgstr "" + +-#: c-parse.y:2282 cp/parser.c:6061 objc/objc-parse.y:2339 ++#: c-parse.y:2282 cp/parser.c:6099 objc/objc-parse.y:2338 + msgid "continue statement not within a loop" + msgstr "" + +-#: c-parse.y:2324 objc/objc-parse.y:2381 ++#: c-parse.y:2324 objc/objc-parse.y:2380 + msgid "ISO C forbids `goto *expr;'" + msgstr "ISO C не падтрымлівае \"goto *expr;\"" + +@@ -2486,11 +2491,11 @@ + #. it caused problems with the code in expand_builtin which + #. tries to verify that BUILT_IN_NEXT_ARG is being used + #. correctly. +-#: c-parse.y:2441 objc/objc-parse.y:2549 ++#: c-parse.y:2441 objc/objc-parse.y:2548 + msgid "ISO C requires a named argument before `...'" + msgstr "" + +-#: c-parse.y:2539 objc/objc-parse.y:2647 ++#: c-parse.y:2539 objc/objc-parse.y:2646 + msgid "`...' in old-style identifier list" + msgstr "" + +@@ -2506,7 +2511,7 @@ + msgid "parser stack overflow" + msgstr "" + +-#: c-parse.y:2969 objc/objc-parse.y:3664 ++#: c-parse.y:2969 objc/objc-parse.y:3663 + #, c-format + msgid "syntax error at '%s' token" + msgstr "" +@@ -2588,7 +2593,7 @@ + msgid "%s: had text segment at different address" + msgstr "" + +-#: c-pch.c:357 cpperror.c:176 gcc.c:6554 ++#: c-pch.c:357 cpperror.c:176 gcc.c:6557 + #, c-format + msgid "%s: %s" + msgstr "" +@@ -2700,12 +2705,12 @@ + msgid "(enclose actions of previous case statements requiring destructors in their own scope.)" + msgstr "" + +-#: c-semantics.c:737 c-typeck.c:6270 cp/semantics.c:1070 ++#: c-semantics.c:737 c-typeck.c:6250 cp/semantics.c:1070 + #, c-format + msgid "%s qualifier ignored on asm" + msgstr "" + +-#: c-semantics.c:991 ++#: c-semantics.c:993 + msgid "will never be executed" + msgstr "" + +@@ -2714,7 +2719,7 @@ + msgid "`%s' has an incomplete type" + msgstr "\"%s\" мае незавершаны тып" + +-#: c-typeck.c:145 cp/call.c:2532 ++#: c-typeck.c:145 cp/call.c:2542 + msgid "invalid use of void expression" + msgstr "" + +@@ -2749,751 +2754,751 @@ + msgid "function return types not compatible due to `volatile'" + msgstr "" + +-#: c-typeck.c:984 c-typeck.c:2176 ++#: c-typeck.c:984 c-typeck.c:2156 + msgid "arithmetic on pointer to an incomplete type" + msgstr "" + +-#: c-typeck.c:1357 ++#: c-typeck.c:1337 + #, c-format + msgid "%s has no member named `%s'" + msgstr "" + +-#: c-typeck.c:1393 ++#: c-typeck.c:1373 + #, c-format + msgid "request for member `%s' in something not a structure or union" + msgstr "" + +-#: c-typeck.c:1422 ++#: c-typeck.c:1402 + msgid "dereferencing pointer to incomplete type" + msgstr "" + +-#: c-typeck.c:1426 ++#: c-typeck.c:1406 + msgid "dereferencing `void *' pointer" + msgstr "" + +-#: c-typeck.c:1443 cp/typeck.c:2127 ++#: c-typeck.c:1423 cp/typeck.c:2127 + #, c-format + msgid "invalid type argument of `%s'" + msgstr "" + +-#: c-typeck.c:1461 cp/typeck.c:2152 ++#: c-typeck.c:1441 cp/typeck.c:2152 + msgid "subscript missing in array reference" + msgstr "" + +-#: c-typeck.c:1482 cp/typeck.c:2194 ++#: c-typeck.c:1462 cp/typeck.c:2194 + msgid "array subscript has type `char'" + msgstr "" + +-#: c-typeck.c:1490 c-typeck.c:1579 cp/typeck.c:2198 cp/typeck.c:2284 ++#: c-typeck.c:1470 c-typeck.c:1559 cp/typeck.c:2198 cp/typeck.c:2284 + msgid "array subscript is not an integer" + msgstr "" + +-#: c-typeck.c:1523 ++#: c-typeck.c:1503 + msgid "ISO C forbids subscripting `register' array" + msgstr "" + +-#: c-typeck.c:1525 ++#: c-typeck.c:1505 + #, fuzzy + msgid "ISO C90 forbids subscripting non-lvalue array" + msgstr "ISO C не дазвалÑе дÑкларацыі метак (label)" + +-#: c-typeck.c:1558 ++#: c-typeck.c:1538 + msgid "subscript has type `char'" + msgstr "" + +-#: c-typeck.c:1574 cp/typeck.c:2279 ++#: c-typeck.c:1554 cp/typeck.c:2279 + msgid "subscripted value is neither array nor pointer" + msgstr "" + +-#: c-typeck.c:1604 ++#: c-typeck.c:1584 + #, c-format + msgid "local declaration of `%s' hides instance variable" + msgstr "" + +-#: c-typeck.c:1697 ++#: c-typeck.c:1677 + msgid "called object is not a function" + msgstr "" + + #. This situation leads to run-time undefined behavior. We can't, + #. therefore, simply error unless we can prove that all possible + #. executions of the program must execute the code. +-#: c-typeck.c:1729 ++#: c-typeck.c:1709 + msgid "function called through a non-compatible type" + msgstr "" + +-#: c-typeck.c:1787 c-typeck.c:4198 c-typeck.c:4200 c-typeck.c:4216 +-#: c-typeck.c:4237 c-typeck.c:5616 ++#: c-typeck.c:1767 c-typeck.c:4178 c-typeck.c:4180 c-typeck.c:4196 ++#: c-typeck.c:4217 c-typeck.c:5596 + msgid "initializer element is not constant" + msgstr "" + +-#: c-typeck.c:1838 cp/typeck.c:2567 ++#: c-typeck.c:1818 cp/typeck.c:2567 + msgid "too many arguments to function" + msgstr "вельмі шмат аргументаў у функцыі" + +-#: c-typeck.c:1859 ++#: c-typeck.c:1839 + #, c-format + msgid "type of formal parameter %d is incomplete" + msgstr "" + +-#: c-typeck.c:1872 ++#: c-typeck.c:1852 + #, c-format + msgid "%s as integer rather than floating due to prototype" + msgstr "" + +-#: c-typeck.c:1875 ++#: c-typeck.c:1855 + #, c-format + msgid "%s as integer rather than complex due to prototype" + msgstr "" + +-#: c-typeck.c:1878 ++#: c-typeck.c:1858 + #, c-format + msgid "%s as complex rather than floating due to prototype" + msgstr "" + +-#: c-typeck.c:1881 ++#: c-typeck.c:1861 + #, c-format + msgid "%s as floating rather than integer due to prototype" + msgstr "" + +-#: c-typeck.c:1884 ++#: c-typeck.c:1864 + #, c-format + msgid "%s as complex rather than integer due to prototype" + msgstr "" + +-#: c-typeck.c:1887 ++#: c-typeck.c:1867 + #, c-format + msgid "%s as floating rather than complex due to prototype" + msgstr "" + +-#: c-typeck.c:1897 ++#: c-typeck.c:1877 + #, c-format + msgid "%s as `float' rather than `double' due to prototype" + msgstr "" + +-#: c-typeck.c:1915 ++#: c-typeck.c:1895 + #, c-format + msgid "%s with different width due to prototype" + msgstr "" + +-#: c-typeck.c:1941 ++#: c-typeck.c:1921 + #, c-format + msgid "%s as unsigned due to prototype" + msgstr "" + +-#: c-typeck.c:1943 ++#: c-typeck.c:1923 + #, c-format + msgid "%s as signed due to prototype" + msgstr "" + +-#: c-typeck.c:1977 cp/typeck.c:2673 ++#: c-typeck.c:1957 cp/typeck.c:2673 + msgid "too few arguments to function" + msgstr "не хапае аргументаў у функцыі" + +-#: c-typeck.c:2017 ++#: c-typeck.c:1997 + msgid "suggest parentheses around + or - inside shift" + msgstr "" + +-#: c-typeck.c:2024 ++#: c-typeck.c:2004 + msgid "suggest parentheses around && within ||" + msgstr "" + +-#: c-typeck.c:2033 ++#: c-typeck.c:2013 + msgid "suggest parentheses around arithmetic in operand of |" + msgstr "" + +-#: c-typeck.c:2036 ++#: c-typeck.c:2016 + msgid "suggest parentheses around comparison in operand of |" + msgstr "" + +-#: c-typeck.c:2045 ++#: c-typeck.c:2025 + msgid "suggest parentheses around arithmetic in operand of ^" + msgstr "" + +-#: c-typeck.c:2048 ++#: c-typeck.c:2028 + msgid "suggest parentheses around comparison in operand of ^" + msgstr "" + +-#: c-typeck.c:2055 ++#: c-typeck.c:2035 + msgid "suggest parentheses around + or - in operand of &" + msgstr "" + +-#: c-typeck.c:2058 ++#: c-typeck.c:2038 + msgid "suggest parentheses around comparison in operand of &" + msgstr "" + +-#: c-typeck.c:2065 ++#: c-typeck.c:2045 + msgid "comparisons like X<=Y<=Z do not have their mathematical meaning" + msgstr "" + +-#: c-typeck.c:2128 ++#: c-typeck.c:2108 + msgid "pointer of type `void *' used in subtraction" + msgstr "" + +-#: c-typeck.c:2130 ++#: c-typeck.c:2110 + msgid "pointer to a function used in subtraction" + msgstr "" + +-#: c-typeck.c:2224 ++#: c-typeck.c:2204 + msgid "wrong type argument to unary plus" + msgstr "" + +-#: c-typeck.c:2237 ++#: c-typeck.c:2217 + msgid "wrong type argument to unary minus" + msgstr "" + +-#: c-typeck.c:2254 ++#: c-typeck.c:2234 + msgid "ISO C does not support `~' for complex conjugation" + msgstr "" + +-#: c-typeck.c:2260 ++#: c-typeck.c:2240 + msgid "wrong type argument to bit-complement" + msgstr "" + +-#: c-typeck.c:2268 ++#: c-typeck.c:2248 + msgid "wrong type argument to abs" + msgstr "" + +-#: c-typeck.c:2280 ++#: c-typeck.c:2260 + msgid "wrong type argument to conjugation" + msgstr "" + +-#: c-typeck.c:2294 ++#: c-typeck.c:2274 + msgid "wrong type argument to unary exclamation mark" + msgstr "" + +-#: c-typeck.c:2337 ++#: c-typeck.c:2317 + msgid "ISO C does not support `++' and `--' on complex types" + msgstr "ISO C не падтрымлівае \"++\" Ñ– \"--\" Ð´Ð»Ñ Ñ‚Ñ‹Ð¿Ñƒ complex" + +-#: c-typeck.c:2352 c-typeck.c:2384 ++#: c-typeck.c:2332 c-typeck.c:2364 + #, fuzzy + msgid "wrong type argument to increment" + msgstr "не хапае аргументаў у функцыі" + +-#: c-typeck.c:2354 c-typeck.c:2386 ++#: c-typeck.c:2334 c-typeck.c:2366 + msgid "wrong type argument to decrement" + msgstr "" + +-#: c-typeck.c:2375 ++#: c-typeck.c:2355 + msgid "increment of pointer to unknown structure" + msgstr "" + +-#: c-typeck.c:2377 ++#: c-typeck.c:2357 + msgid "decrement of pointer to unknown structure" + msgstr "" + +-#: c-typeck.c:2502 ++#: c-typeck.c:2482 + msgid "invalid lvalue in unary `&'" + msgstr "" + +-#: c-typeck.c:2534 ++#: c-typeck.c:2514 + #, c-format + msgid "attempt to take address of bit-field structure member `%s'" + msgstr "" + +-#: c-typeck.c:2668 ++#: c-typeck.c:2648 + msgid "use of conditional expressions as lvalues is deprecated" + msgstr "" + +-#: c-typeck.c:2671 ++#: c-typeck.c:2651 + msgid "use of compound expressions as lvalues is deprecated" + msgstr "" + +-#: c-typeck.c:2674 ++#: c-typeck.c:2654 + msgid "use of cast expressions as lvalues is deprecated" + msgstr "" + +-#: c-typeck.c:2689 ++#: c-typeck.c:2669 + #, c-format + msgid "%s of read-only member `%s'" + msgstr "" + +-#: c-typeck.c:2693 ++#: c-typeck.c:2673 + #, c-format + msgid "%s of read-only variable `%s'" + msgstr "" + +-#: c-typeck.c:2696 ++#: c-typeck.c:2676 + #, c-format + msgid "%s of read-only location" + msgstr "" + +-#: c-typeck.c:2714 ++#: c-typeck.c:2694 + #, fuzzy, c-format + msgid "cannot take address of bit-field `%s'" + msgstr "не магу атрымаць Ð°Ð´Ñ€Ð°Ñ Ð±Ñ–Ñ‚Ð°Ð²Ð°Ð³Ð° Ð¿Ð¾Ð»Ñ \"%s\"" + +-#: c-typeck.c:2742 treelang/treetree.c:946 ++#: c-typeck.c:2722 treelang/treetree.c:946 + #, c-format + msgid "global register variable `%s' used in nested function" + msgstr "" + +-#: c-typeck.c:2746 treelang/treetree.c:950 ++#: c-typeck.c:2726 treelang/treetree.c:950 + #, c-format + msgid "register variable `%s' used in nested function" + msgstr "" + +-#: c-typeck.c:2753 treelang/treetree.c:957 ++#: c-typeck.c:2733 treelang/treetree.c:957 + #, c-format + msgid "address of global register variable `%s' requested" + msgstr "" + +-#: c-typeck.c:2765 ++#: c-typeck.c:2745 + msgid "cannot put object with volatile field into register" + msgstr "" + +-#: c-typeck.c:2769 treelang/treetree.c:962 ++#: c-typeck.c:2749 treelang/treetree.c:962 + #, c-format + msgid "address of register variable `%s' requested" + msgstr "" + +-#: c-typeck.c:2854 ++#: c-typeck.c:2834 + msgid "signed and unsigned type in conditional expression" + msgstr "" + +-#: c-typeck.c:2861 ++#: c-typeck.c:2841 + msgid "ISO C forbids conditional expr with only one void side" + msgstr "" + +-#: c-typeck.c:2877 c-typeck.c:2884 ++#: c-typeck.c:2857 c-typeck.c:2864 + msgid "ISO C forbids conditional expr between `void *' and function pointer" + msgstr "" + +-#: c-typeck.c:2890 ++#: c-typeck.c:2870 + msgid "pointer type mismatch in conditional expression" + msgstr "" + +-#: c-typeck.c:2897 c-typeck.c:2907 ++#: c-typeck.c:2877 c-typeck.c:2887 + msgid "pointer/integer type mismatch in conditional expression" + msgstr "" + +-#: c-typeck.c:2921 ++#: c-typeck.c:2901 + msgid "type mismatch in conditional expression" + msgstr "" + +-#: c-typeck.c:2981 ++#: c-typeck.c:2961 + msgid "left-hand operand of comma expression has no effect" + msgstr "" + +-#: c-typeck.c:3012 ++#: c-typeck.c:2992 + msgid "cast specifies array type" + msgstr "" + +-#: c-typeck.c:3018 ++#: c-typeck.c:2998 + msgid "cast specifies function type" + msgstr "" + +-#: c-typeck.c:3028 ++#: c-typeck.c:3008 + msgid "ISO C forbids casting nonscalar to the same type" + msgstr "" + +-#: c-typeck.c:3046 ++#: c-typeck.c:3026 + msgid "ISO C forbids casts to union type" + msgstr "" + +-#: c-typeck.c:3054 ++#: c-typeck.c:3034 + msgid "cast to union type from type not present in union" + msgstr "" + +-#: c-typeck.c:3105 ++#: c-typeck.c:3085 + msgid "cast adds new qualifiers to function type" + msgstr "" + + #. There are qualifiers present in IN_OTYPE that are not + #. present in IN_TYPE. +-#: c-typeck.c:3110 ++#: c-typeck.c:3090 + msgid "cast discards qualifiers from pointer target type" + msgstr "" + +-#: c-typeck.c:3125 ++#: c-typeck.c:3105 + msgid "cast increases required alignment of target type" + msgstr "" + +-#: c-typeck.c:3131 cp/typeck.c:4945 ++#: c-typeck.c:3111 cp/typeck.c:4963 + msgid "cast from pointer to integer of different size" + msgstr "" + +-#: c-typeck.c:3136 ++#: c-typeck.c:3116 + msgid "cast does not match function type" + msgstr "" + +-#: c-typeck.c:3143 cp/typeck.c:4952 ++#: c-typeck.c:3123 cp/typeck.c:4970 + msgid "cast to pointer from integer of different size" + msgstr "" + +-#: c-typeck.c:3155 ++#: c-typeck.c:3135 + msgid "type-punning to incomplete type might break strict-aliasing rules" + msgstr "" + +-#: c-typeck.c:3159 ++#: c-typeck.c:3139 + msgid "dereferencing type-punned pointer will break strict-aliasing rules" + msgstr "" + +-#: c-typeck.c:3170 ++#: c-typeck.c:3150 + msgid "ISO C forbids conversion of function pointer to object pointer type" + msgstr "" + +-#: c-typeck.c:3179 ++#: c-typeck.c:3159 + msgid "ISO C forbids conversion of object pointer to function pointer type" + msgstr "" + + #. Now we have handled acceptable kinds of LHS that are not truly lvalues. + #. Reject anything strange now. +-#: c-typeck.c:3337 ++#: c-typeck.c:3317 + msgid "invalid lvalue in assignment" + msgstr "" + + #. Convert new value to destination type. +-#: c-typeck.c:3346 c-typeck.c:3371 c-typeck.c:3388 cp/typeck.c:5064 +-#: cp/typeck.c:5211 cp/typeck.c:5226 ++#: c-typeck.c:3326 c-typeck.c:3351 c-typeck.c:3368 cp/typeck.c:5082 ++#: cp/typeck.c:5229 cp/typeck.c:5244 + msgid "assignment" + msgstr "" + +-#: c-typeck.c:3455 ++#: c-typeck.c:3435 + msgid "cannot pass rvalue to reference parameter" + msgstr "" + +-#: c-typeck.c:3564 c-typeck.c:3640 ++#: c-typeck.c:3544 c-typeck.c:3620 + #, c-format + msgid "%s makes qualified function pointer from unqualified" + msgstr "" + +-#: c-typeck.c:3568 c-typeck.c:3620 ++#: c-typeck.c:3548 c-typeck.c:3600 + #, c-format + msgid "%s discards qualifiers from pointer target type" + msgstr "" + +-#: c-typeck.c:3574 ++#: c-typeck.c:3554 + msgid "ISO C prohibits argument conversion to union type" + msgstr "" + +-#: c-typeck.c:3612 ++#: c-typeck.c:3592 + #, c-format + msgid "ISO C forbids %s between function pointer and `void *'" + msgstr "" + +-#: c-typeck.c:3629 ++#: c-typeck.c:3609 + #, c-format + msgid "pointer targets in %s differ in signedness" + msgstr "" + +-#: c-typeck.c:3645 ++#: c-typeck.c:3625 + #, c-format + msgid "%s from incompatible pointer type" + msgstr "" + +-#: c-typeck.c:3651 c-typeck.c:4158 cp/typeck.c:1389 ++#: c-typeck.c:3631 c-typeck.c:4138 cp/typeck.c:1389 + msgid "invalid use of non-lvalue array" + msgstr "" + +-#: c-typeck.c:3665 ++#: c-typeck.c:3645 + #, c-format + msgid "%s makes pointer from integer without a cast" + msgstr "" + +-#: c-typeck.c:3672 ++#: c-typeck.c:3652 + #, c-format + msgid "%s makes integer from pointer without a cast" + msgstr "" + +-#: c-typeck.c:3686 c-typeck.c:3689 ++#: c-typeck.c:3666 c-typeck.c:3669 + #, c-format + msgid "incompatible type for argument %d of `%s'" + msgstr "" + +-#: c-typeck.c:3693 ++#: c-typeck.c:3673 + #, c-format + msgid "incompatible type for argument %d of indirect function call" + msgstr "" + +-#: c-typeck.c:3697 ++#: c-typeck.c:3677 + #, c-format + msgid "incompatible types in %s" + msgstr "" + + #. Function name is known; supply it. +-#: c-typeck.c:3753 ++#: c-typeck.c:3733 + #, fuzzy, c-format + msgid "passing arg of `%s'" + msgstr "аргумент Ð´Ð»Ñ \"%s\" прапушчан" + + #. Function name unknown (call through ptr). +-#: c-typeck.c:3762 ++#: c-typeck.c:3742 + #, fuzzy + msgid "passing arg of pointer to function" + msgstr "вельмі шмат аргументаў у функцыі" + + #. Function name is known; supply it. +-#: c-typeck.c:3770 ++#: c-typeck.c:3750 + #, c-format + msgid "passing arg %d of `%s'" + msgstr "" + + #. Function name unknown (call through ptr); just give arg number. +-#: c-typeck.c:3779 ++#: c-typeck.c:3759 + #, c-format + msgid "passing arg %d of pointer to function" + msgstr "" + +-#: c-typeck.c:3836 ++#: c-typeck.c:3816 + msgid "traditional C rejects automatic aggregate initialization" + msgstr "" + +-#: c-typeck.c:4007 c-typeck.c:4022 c-typeck.c:4037 ++#: c-typeck.c:3987 c-typeck.c:4002 c-typeck.c:4017 + #, c-format + msgid "(near initialization for `%s')" + msgstr "" + +-#: c-typeck.c:4086 cp/typeck2.c:560 ++#: c-typeck.c:4066 cp/typeck2.c:550 + msgid "char-array initialized from wide string" + msgstr "" + +-#: c-typeck.c:4093 cp/typeck2.c:567 ++#: c-typeck.c:4073 cp/typeck2.c:557 + msgid "int-array initialized from non-wide string" + msgstr "" + +-#: c-typeck.c:4111 cp/typeck2.c:582 ++#: c-typeck.c:4091 cp/typeck2.c:572 + msgid "initializer-string for array of chars is too long" + msgstr "" + +-#: c-typeck.c:4181 ++#: c-typeck.c:4161 + msgid "array initialized from non-constant array expression" + msgstr "" + +-#: c-typeck.c:4232 ++#: c-typeck.c:4212 + msgid "initialization" + msgstr "ініцыÑлізацыÑ" + +-#: c-typeck.c:4243 c-typeck.c:5621 ++#: c-typeck.c:4223 c-typeck.c:5601 + msgid "initializer element is not computable at load time" + msgstr "" + +-#: c-typeck.c:4258 cp/typeck2.c:659 ++#: c-typeck.c:4238 cp/typeck2.c:649 + msgid "invalid initializer" + msgstr "нерÑчаіÑны ініцыÑлізатар" + +-#: c-typeck.c:4540 cp/decl.c:4484 ++#: c-typeck.c:4520 cp/decl.c:4539 + msgid "opaque vector types cannot be initialized" + msgstr "" + +-#: c-typeck.c:4734 ++#: c-typeck.c:4714 + msgid "extra brace group at end of initializer" + msgstr "" + +-#: c-typeck.c:4754 ++#: c-typeck.c:4734 + msgid "missing braces around initializer" + msgstr "" + +-#: c-typeck.c:4814 ++#: c-typeck.c:4794 + msgid "braces around scalar initializer" + msgstr "" + +-#: c-typeck.c:4865 ++#: c-typeck.c:4845 + msgid "initialization of flexible array member in a nested context" + msgstr "" + +-#: c-typeck.c:4867 ++#: c-typeck.c:4847 + msgid "initialization of a flexible array member" + msgstr "" + +-#: c-typeck.c:4898 ++#: c-typeck.c:4878 + msgid "missing initializer" + msgstr "прапушчан ініцыÑлізатар" + +-#: c-typeck.c:4920 ++#: c-typeck.c:4900 + msgid "empty scalar initializer" + msgstr "" + +-#: c-typeck.c:4925 ++#: c-typeck.c:4905 + msgid "extra elements in scalar initializer" + msgstr "" + +-#: c-typeck.c:5010 ++#: c-typeck.c:4990 + msgid "initialization designators may not nest" + msgstr "" + +-#: c-typeck.c:5031 c-typeck.c:5099 ++#: c-typeck.c:5011 c-typeck.c:5079 + msgid "array index in non-array initializer" + msgstr "" + +-#: c-typeck.c:5036 c-typeck.c:5152 ++#: c-typeck.c:5016 c-typeck.c:5132 + msgid "field name not in record or union initializer" + msgstr "" + +-#: c-typeck.c:5095 c-typeck.c:5097 ++#: c-typeck.c:5075 c-typeck.c:5077 + msgid "nonconstant array index in initializer" + msgstr "" + +-#: c-typeck.c:5101 c-typeck.c:5104 ++#: c-typeck.c:5081 c-typeck.c:5084 + msgid "array index in initializer exceeds array bounds" + msgstr "" + +-#: c-typeck.c:5115 ++#: c-typeck.c:5095 + msgid "empty index range in initializer" + msgstr "" + +-#: c-typeck.c:5124 ++#: c-typeck.c:5104 + msgid "array index range in initializer exceeds array bounds" + msgstr "" + +-#: c-typeck.c:5164 ++#: c-typeck.c:5144 + #, c-format + msgid "unknown field `%s' specified in initializer" + msgstr "" + +-#: c-typeck.c:5200 c-typeck.c:5221 c-typeck.c:5683 ++#: c-typeck.c:5180 c-typeck.c:5201 c-typeck.c:5663 + msgid "initialized field with side-effects overwritten" + msgstr "" + +-#: c-typeck.c:5891 ++#: c-typeck.c:5871 + msgid "excess elements in char array initializer" + msgstr "" + +-#: c-typeck.c:5898 c-typeck.c:5944 ++#: c-typeck.c:5878 c-typeck.c:5924 + msgid "excess elements in struct initializer" + msgstr "" + +-#: c-typeck.c:5959 ++#: c-typeck.c:5939 + msgid "non-static initialization of a flexible array member" + msgstr "" + +-#: c-typeck.c:6026 ++#: c-typeck.c:6006 + msgid "excess elements in union initializer" + msgstr "" + +-#: c-typeck.c:6047 ++#: c-typeck.c:6027 + msgid "traditional C rejects initialization of unions" + msgstr "" + +-#: c-typeck.c:6110 ++#: c-typeck.c:6090 + msgid "excess elements in array initializer" + msgstr "" + +-#: c-typeck.c:6139 ++#: c-typeck.c:6119 + msgid "excess elements in vector initializer" + msgstr "" + +-#: c-typeck.c:6161 ++#: c-typeck.c:6141 + msgid "excess elements in scalar initializer" + msgstr "" + +-#: c-typeck.c:6263 ++#: c-typeck.c:6243 + msgid "asm template is not a string constant" + msgstr "" + +-#: c-typeck.c:6295 ++#: c-typeck.c:6275 + msgid "invalid lvalue in asm statement" + msgstr "" + +-#: c-typeck.c:6367 cp/typeck.c:5902 ++#: c-typeck.c:6347 cp/typeck.c:5923 + msgid "modification by `asm'" + msgstr "" + +-#: c-typeck.c:6385 cp/typeck.c:5986 ++#: c-typeck.c:6365 cp/typeck.c:6007 + msgid "function declared `noreturn' has a `return' statement" + msgstr "" + +-#: c-typeck.c:6392 ++#: c-typeck.c:6372 + msgid "`return' with no value, in function returning non-void" + msgstr "" + +-#: c-typeck.c:6398 ++#: c-typeck.c:6378 + msgid "`return' with a value, in function returning void" + msgstr "" + +-#: c-typeck.c:6402 ++#: c-typeck.c:6382 + msgid "return" + msgstr "вÑртанне" + +-#: c-typeck.c:6454 ++#: c-typeck.c:6434 + msgid "function returns address of local variable" + msgstr "" + +-#: c-typeck.c:6509 cp/semantics.c:749 ++#: c-typeck.c:6489 cp/semantics.c:749 + msgid "switch quantity not an integer" + msgstr "" + +-#: c-typeck.c:6519 ++#: c-typeck.c:6499 + msgid "`long' switch expression not converted to `int' in ISO C" + msgstr "" + +-#: c-typeck.c:6560 cp/parser.c:5560 ++#: c-typeck.c:6540 cp/parser.c:5597 + msgid "case label not within a switch statement" + msgstr "" + +-#: c-typeck.c:6562 ++#: c-typeck.c:6542 + msgid "`default' label not within a switch statement" + msgstr "" + +-#: c-typeck.c:6714 c-typeck.c:6748 ++#: c-typeck.c:6694 c-typeck.c:6728 + msgid "division by zero" + msgstr "" + +-#: c-typeck.c:6793 cp/typeck.c:2953 ++#: c-typeck.c:6773 cp/typeck.c:2953 + msgid "right shift count is negative" + msgstr "" + +-#: c-typeck.c:6800 cp/typeck.c:2959 ++#: c-typeck.c:6780 cp/typeck.c:2959 + msgid "right shift count >= width of type" + msgstr "" + +-#: c-typeck.c:6821 cp/typeck.c:2978 ++#: c-typeck.c:6801 cp/typeck.c:2978 + msgid "left shift count is negative" + msgstr "" + +-#: c-typeck.c:6824 cp/typeck.c:2980 ++#: c-typeck.c:6804 cp/typeck.c:2980 + msgid "left shift count >= width of type" + msgstr "" + +-#: c-typeck.c:6845 ++#: c-typeck.c:6825 + msgid "shift count is negative" + msgstr "" + +-#: c-typeck.c:6847 ++#: c-typeck.c:6827 + msgid "shift count >= width of type" + msgstr "" + +-#: c-typeck.c:6864 cp/typeck.c:3015 ++#: c-typeck.c:6844 cp/typeck.c:3015 + msgid "comparing floating point with == or != is unsafe" + msgstr "" + +-#: c-typeck.c:6888 c-typeck.c:6894 ++#: c-typeck.c:6868 c-typeck.c:6874 + msgid "ISO C forbids comparison of `void *' with function pointer" + msgstr "" + +-#: c-typeck.c:6897 c-typeck.c:6937 c-typeck.c:6965 ++#: c-typeck.c:6877 c-typeck.c:6917 c-typeck.c:6945 + msgid "comparison of distinct pointer types lacks a cast" + msgstr "" + +-#: c-typeck.c:6911 c-typeck.c:6916 c-typeck.c:6985 c-typeck.c:6990 ++#: c-typeck.c:6891 c-typeck.c:6896 c-typeck.c:6965 c-typeck.c:6970 + msgid "comparison between pointer and integer" + msgstr "" + +-#: c-typeck.c:6932 c-typeck.c:6960 ++#: c-typeck.c:6912 c-typeck.c:6940 + msgid "ISO C forbids ordered comparisons of pointers to functions" + msgstr "" + +-#: c-typeck.c:6957 ++#: c-typeck.c:6937 + msgid "comparison of complete and incomplete pointers" + msgstr "" + +-#: c-typeck.c:6973 c-typeck.c:6980 ++#: c-typeck.c:6953 c-typeck.c:6960 + msgid "ordered comparison of pointer with integer zero" + msgstr "" + +-#: c-typeck.c:7004 cp/typeck.c:3151 ++#: c-typeck.c:6984 cp/typeck.c:3151 + msgid "unordered comparison on non-floating point argument" + msgstr "" + +-#: c-typeck.c:7214 ++#: c-typeck.c:7194 + msgid "comparison between signed and unsigned" + msgstr "" + +-#: c-typeck.c:7260 cp/typeck.c:3398 ++#: c-typeck.c:7240 cp/typeck.c:3398 + msgid "comparison of promoted ~unsigned with constant" + msgstr "" + +-#: c-typeck.c:7268 cp/typeck.c:3406 ++#: c-typeck.c:7248 cp/typeck.c:3406 + msgid "comparison of promoted ~unsigned with unsigned" + msgstr "" + +@@ -3501,7 +3506,7 @@ + msgid "%Jinlining failed in call to '%F'" + msgstr "" + +-#: calls.c:1839 calls.c:2211 tree-inline.c:1339 tree-inline.c:1346 ++#: calls.c:1839 calls.c:2211 tree-inline.c:1339 tree-inline.c:1347 + msgid "called from here" + msgstr "выклікана адÑюль" + +@@ -3561,7 +3566,7 @@ + msgid "verify_flow_info: Basic block %d succ edge is corrupted" + msgstr "" + +-#: cfg.c:909 cfgrtl.c:1971 ++#: cfg.c:909 cfgrtl.c:1983 + #, c-format + msgid "Wrong amount of branch edges after unconditional jump %i" + msgstr "" +@@ -3640,116 +3645,116 @@ + msgid "Edge from %d to %d should not be marked irreducible." + msgstr "" + +-#: cfgrtl.c:1877 ++#: cfgrtl.c:1889 + #, c-format + msgid "end insn %d for block %d not found in the insn stream" + msgstr "" + +-#: cfgrtl.c:1891 ++#: cfgrtl.c:1903 + #, c-format + msgid "insn %d is in multiple basic blocks (%d and %d)" + msgstr "" + +-#: cfgrtl.c:1903 ++#: cfgrtl.c:1915 + #, c-format + msgid "head insn %d for block %d not found in the insn stream" + msgstr "" + +-#: cfgrtl.c:1925 ++#: cfgrtl.c:1937 + msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i" + msgstr "" + +-#: cfgrtl.c:1953 ++#: cfgrtl.c:1965 + #, c-format + msgid "Missing REG_EH_REGION note in the end of bb %i" + msgstr "" + +-#: cfgrtl.c:1961 ++#: cfgrtl.c:1973 + #, c-format + msgid "Too many outgoing branch edges from bb %i" + msgstr "" + +-#: cfgrtl.c:1966 ++#: cfgrtl.c:1978 + #, c-format + msgid "Fallthru edge after unconditional jump %i" + msgstr "" + +-#: cfgrtl.c:1977 ++#: cfgrtl.c:1989 + #, c-format + msgid "Wrong amount of branch edges after conditional jump %i" + msgstr "" + +-#: cfgrtl.c:1982 ++#: cfgrtl.c:1994 + #, c-format + msgid "Call edges for non-call insn in bb %i" + msgstr "" + +-#: cfgrtl.c:1991 ++#: cfgrtl.c:2003 + #, c-format + msgid "Abnormal edges for no purpose in bb %i" + msgstr "" + +-#: cfgrtl.c:2001 ++#: cfgrtl.c:2013 + #, c-format + msgid "insn %d inside basic block %d but block_for_insn is NULL" + msgstr "" + +-#: cfgrtl.c:2005 ++#: cfgrtl.c:2017 + #, c-format + msgid "insn %d inside basic block %d but block_for_insn is %i" + msgstr "" + +-#: cfgrtl.c:2019 cfgrtl.c:2029 ++#: cfgrtl.c:2031 cfgrtl.c:2041 + #, c-format + msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d" + msgstr "" + +-#: cfgrtl.c:2042 ++#: cfgrtl.c:2054 + #, c-format + msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d" + msgstr "" + +-#: cfgrtl.c:2052 ++#: cfgrtl.c:2064 + #, c-format + msgid "in basic block %d:" + msgstr "" + +-#: cfgrtl.c:2053 ++#: cfgrtl.c:2065 + msgid "flow control insn inside a basic block" + msgstr "" + +-#: cfgrtl.c:2099 ++#: cfgrtl.c:2111 + #, c-format + msgid "missing barrier after block %i" + msgstr "" + +-#: cfgrtl.c:2112 ++#: cfgrtl.c:2124 + #, c-format + msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i" + msgstr "" + +-#: cfgrtl.c:2127 ++#: cfgrtl.c:2139 + #, c-format + msgid "verify_flow_info: Incorrect fallthru %i->%i" + msgstr "" + +-#: cfgrtl.c:2129 ++#: cfgrtl.c:2141 + msgid "wrong insn in the fallthru edge" + msgstr "" + +-#: cfgrtl.c:2146 ++#: cfgrtl.c:2158 + msgid "basic blocks not laid down consecutively" + msgstr "" + +-#: cfgrtl.c:2171 ++#: cfgrtl.c:2183 + msgid "insn outside basic block" + msgstr "" + +-#: cfgrtl.c:2179 ++#: cfgrtl.c:2191 + msgid "return not followed by barrier" + msgstr "" + +-#: cfgrtl.c:2186 ++#: cfgrtl.c:2198 + #, c-format + msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)" + msgstr "" +@@ -3979,7 +3984,7 @@ + msgid "library lib%s not found" + msgstr "БібліÑÑ‚Ñка lib%s не знойдзена" + +-#: combine.c:13048 ++#: combine.c:13047 + #, c-format + msgid "" + ";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n" +@@ -3987,7 +3992,7 @@ + "\n" + msgstr "" + +-#: combine.c:13057 ++#: combine.c:13056 + #, c-format + msgid "" + "\n" +@@ -4315,63 +4320,68 @@ + msgid "token \"%s\" is not valid in preprocessor expressions" + msgstr "" + +-#: cppexp.c:753 +-msgid "void expression between '(' and ')'" ++#: cppexp.c:751 ++msgid "missing expression between '(' and ')'" + msgstr "" + +-#: cppexp.c:756 ++#: cppexp.c:754 + msgid "#if with no expression" + msgstr "" + +-#: cppexp.c:758 ++#: cppexp.c:757 + #, c-format + msgid "operator '%s' has no right operand" + msgstr "" + +-#: cppexp.c:784 ++#: cppexp.c:762 ++#, c-format ++msgid "operator '%s' has no left operand" ++msgstr "" ++ ++#: cppexp.c:788 + msgid " ':' without preceding '?'" + msgstr "" + +-#: cppexp.c:811 ++#: cppexp.c:815 + msgid "unbalanced stack in #if" + msgstr "" + +-#: cppexp.c:830 ++#: cppexp.c:834 + #, fuzzy, c-format + msgid "impossible operator '%u'" + msgstr "немагчымы апÑратар '%s'" + +-#: cppexp.c:922 ++#: cppexp.c:926 + msgid "missing ')' in expression" + msgstr "" + +-#: cppexp.c:943 ++#: cppexp.c:947 + msgid "'?' without following ':'" + msgstr "" + +-#: cppexp.c:953 ++#: cppexp.c:957 + msgid "integer overflow in preprocessor expression" + msgstr "" + +-#: cppexp.c:958 ++#: cppexp.c:962 + msgid "missing '(' in expression" + msgstr "" + +-#: cppexp.c:990 ++#: cppexp.c:994 + #, c-format + msgid "the left operand of \"%s\" changes sign when promoted" + msgstr "" + +-#: cppexp.c:995 ++#: cppexp.c:999 + #, c-format + msgid "the right operand of \"%s\" changes sign when promoted" + msgstr "" + +-#: cppexp.c:1353 ++#: cppexp.c:1357 + msgid "comma operator in operand of #if" + msgstr "" + +-#: cppexp.c:1484 ++#: cppexp.c:1488 + msgid "division by zero in #if" + msgstr "" + +@@ -4407,7 +4417,7 @@ + msgid "no include path in which to search for %s" + msgstr "" + +-#: cppfiles.c:956 ++#: cppfiles.c:959 + msgid "Multiple include guards may be useful for:\n" + msgstr "" + +@@ -4820,7 +4830,7 @@ + msgid "syntax error in macro parameter list" + msgstr "" + +-#: cse.c:7064 ++#: cse.c:7069 + #, c-format + msgid ";; Processing block from %d to %d, %d sets.\n" + msgstr "" +@@ -4954,12 +4964,12 @@ + + #. We can't handle floating point constants; + #. PRINT_OPERAND must handle them. +-#: final.c:3220 vmsdbgout.c:467 config/i386/i386.c:6768 ++#: final.c:3220 vmsdbgout.c:467 config/i386/i386.c:6769 + #: config/pdp11/pdp11.c:1646 + msgid "floating constant misused" + msgstr "" + +-#: final.c:3276 vmsdbgout.c:524 config/i386/i386.c:6846 ++#: final.c:3276 vmsdbgout.c:524 config/i386/i386.c:6847 + #: config/pdp11/pdp11.c:1693 + msgid "invalid expression as operand" + msgstr "" +@@ -4980,25 +4990,25 @@ + msgid "Attempt to delete prologue/epilogue insn:" + msgstr "" + +-#: fold-const.c:2878 fold-const.c:2891 ++#: fold-const.c:2889 fold-const.c:2902 + #, c-format + msgid "comparison is always %d due to width of bit-field" + msgstr "" + +-#: fold-const.c:4093 fold-const.c:4110 ++#: fold-const.c:4110 fold-const.c:4127 + #, c-format + msgid "comparison is always %d" + msgstr "" + +-#: fold-const.c:4241 ++#: fold-const.c:4258 + msgid "`or' of unmatched not-equal tests is always 1" + msgstr "" + +-#: fold-const.c:4246 ++#: fold-const.c:4263 + msgid "`and' of mutually exclusive equal-tests is always 0" + msgstr "" + +-#: fold-const.c:8393 ++#: fold-const.c:8410 + msgid "fold check: original tree changed by fold" + msgstr "" + +@@ -5007,28 +5017,28 @@ + msgid "%Jsize of variable '%D' is too large" + msgstr "памер маÑіва \"%s\" вельмі вÑлікі" + +-#: function.c:3742 ++#: function.c:3752 + #, fuzzy + msgid "impossible constraint in `asm'" + msgstr "немагчымы апÑратар '%s'" + +-#: function.c:5733 ++#: function.c:5743 + msgid "%J'%D' might be used uninitialized in this function" + msgstr "" + +-#: function.c:5740 ++#: function.c:5750 + msgid "%Jvariable '%D' might be clobbered by `longjmp' or `vfork'" + msgstr "" + +-#: function.c:5759 ++#: function.c:5769 + msgid "%Jargument '%D' might be clobbered by `longjmp' or `vfork'" + msgstr "" + +-#: function.c:6533 ++#: function.c:6543 + msgid "function returns an aggregate" + msgstr "" + +-#: function.c:6929 ++#: function.c:6939 + #, fuzzy + msgid "%Junused parameter '%D'" + msgstr "невыкарыÑтаемы параметр \"%s\"" +@@ -5057,80 +5067,80 @@ + msgid "Using built-in specs.\n" + msgstr "" + +-#: gcc.c:1755 ++#: gcc.c:1758 + #, c-format + msgid "" + "Setting spec %s to '%s'\n" + "\n" + msgstr "" + +-#: gcc.c:1857 ++#: gcc.c:1860 + #, c-format + msgid "Reading specs from %s\n" + msgstr "" + +-#: gcc.c:1953 gcc.c:1972 ++#: gcc.c:1956 gcc.c:1975 + #, c-format + msgid "specs %%include syntax malformed after %ld characters" + msgstr "" + +-#: gcc.c:1980 ++#: gcc.c:1983 + #, fuzzy, c-format + msgid "could not find specs file %s\n" + msgstr "не магу знайÑці крыніцу %s\n" + +-#: gcc.c:1997 gcc.c:2005 gcc.c:2014 gcc.c:2023 ++#: gcc.c:2000 gcc.c:2008 gcc.c:2017 gcc.c:2026 + #, c-format + msgid "specs %%rename syntax malformed after %ld characters" + msgstr "" + +-#: gcc.c:2032 ++#: gcc.c:2035 + #, c-format + msgid "specs %s spec was not found to be renamed" + msgstr "" + +-#: gcc.c:2039 ++#: gcc.c:2042 + #, c-format + msgid "%s: attempt to rename spec '%s' to already defined spec '%s'" + msgstr "" + +-#: gcc.c:2044 ++#: gcc.c:2047 + #, c-format + msgid "rename spec %s to %s\n" + msgstr "" + +-#: gcc.c:2046 ++#: gcc.c:2049 + #, c-format + msgid "" + "spec is '%s'\n" + "\n" + msgstr "" + +-#: gcc.c:2059 ++#: gcc.c:2062 + #, c-format + msgid "specs unknown %% command after %ld characters" + msgstr "" + +-#: gcc.c:2070 gcc.c:2083 ++#: gcc.c:2073 gcc.c:2086 + #, c-format + msgid "specs file malformed after %ld characters" + msgstr "" + +-#: gcc.c:2136 ++#: gcc.c:2139 + msgid "spec file has no spec for linking" + msgstr "" + +-#: gcc.c:2641 ++#: gcc.c:2644 + msgid "-pipe not supported" + msgstr "-pipe не падтрымліваецца" + +-#: gcc.c:2703 ++#: gcc.c:2706 + msgid "" + "\n" + "Go ahead? (y or n) " + msgstr "" + +-#: gcc.c:2829 ++#: gcc.c:2832 + #, c-format + msgid "" + "Internal error: %s (program %s)\n" +@@ -5138,160 +5148,160 @@ + "See %s for instructions." + msgstr "" + +-#: gcc.c:2847 ++#: gcc.c:2850 + #, c-format + msgid "# %s %.2f %.2f\n" + msgstr "# %s %.2f %.2f\n" + +-#: gcc.c:2980 ++#: gcc.c:2983 + #, c-format + msgid "Usage: %s [options] file...\n" + msgstr "ВыкарыÑтанне: %s [выбары] файл...\n" + +-#: gcc.c:2981 ++#: gcc.c:2984 + msgid "Options:\n" + msgstr "Выбары:\n" + +-#: gcc.c:2983 ++#: gcc.c:2986 + msgid " -pass-exit-codes Exit with highest error code from a phase\n" + msgstr "" + +-#: gcc.c:2984 ++#: gcc.c:2987 + msgid " --help Display this information\n" + msgstr " --help ÐдлюÑтраваць гÑту інфармацыю\n" + +-#: gcc.c:2985 ++#: gcc.c:2988 + msgid " --target-help Display target specific command line options\n" + msgstr "" + +-#: gcc.c:2987 ++#: gcc.c:2990 + msgid " (Use '-v --help' to display command line options of sub-processes)\n" + msgstr "" + +-#: gcc.c:2988 ++#: gcc.c:2991 + msgid " -dumpspecs Display all of the built in spec strings\n" + msgstr "" + +-#: gcc.c:2989 ++#: gcc.c:2992 + msgid " -dumpversion Display the version of the compiler\n" + msgstr " -dumpversion ÐдлюÑтраваць верÑÑ–ÑŽ кампілÑтара\n" + +-#: gcc.c:2990 ++#: gcc.c:2993 + msgid " -dumpmachine Display the compiler's target processor\n" + msgstr "" + +-#: gcc.c:2991 ++#: gcc.c:2994 + msgid " -print-search-dirs Display the directories in the compiler's search path\n" + msgstr "" + +-#: gcc.c:2992 ++#: gcc.c:2995 + msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n" + msgstr "" + +-#: gcc.c:2993 ++#: gcc.c:2996 + msgid " -print-file-name= Display the full path to library \n" + msgstr "" + +-#: gcc.c:2994 ++#: gcc.c:2997 + msgid " -print-prog-name= Display the full path to compiler component \n" + msgstr "" + +-#: gcc.c:2995 ++#: gcc.c:2998 + msgid " -print-multi-directory Display the root directory for versions of libgcc\n" + msgstr "" + +-#: gcc.c:2996 ++#: gcc.c:2999 + msgid "" + " -print-multi-lib Display the mapping between command line options and\n" + " multiple library search directories\n" + msgstr "" + +-#: gcc.c:2999 ++#: gcc.c:3002 + msgid " -print-multi-os-directory Display the relative path to OS libraries\n" + msgstr "" + +-#: gcc.c:3000 ++#: gcc.c:3003 + msgid " -Wa, Pass comma-separated on to the assembler\n" + msgstr "" + +-#: gcc.c:3001 ++#: gcc.c:3004 + msgid " -Wp, Pass comma-separated on to the preprocessor\n" + msgstr "" + +-#: gcc.c:3002 ++#: gcc.c:3005 + msgid " -Wl, Pass comma-separated on to the linker\n" + msgstr "" + +-#: gcc.c:3003 ++#: gcc.c:3006 + msgid " -Xassembler Pass on to the assembler\n" + msgstr "" + +-#: gcc.c:3004 ++#: gcc.c:3007 + msgid " -Xpreprocessor Pass on to the preprocessor\n" + msgstr "" + +-#: gcc.c:3005 ++#: gcc.c:3008 + msgid " -Xlinker Pass on to the linker\n" + msgstr "" + +-#: gcc.c:3006 ++#: gcc.c:3009 + msgid " -save-temps Do not delete intermediate files\n" + msgstr "" + +-#: gcc.c:3007 ++#: gcc.c:3010 + msgid " -pipe Use pipes rather than intermediate files\n" + msgstr "" + +-#: gcc.c:3008 ++#: gcc.c:3011 + msgid " -time Time the execution of each subprocess\n" + msgstr "" + +-#: gcc.c:3009 ++#: gcc.c:3012 + #, fuzzy + msgid " -specs= Override built-in specs with the contents of \n" + msgstr " -o <файл> ПамÑÑціць вывад у <файл>\n" + +-#: gcc.c:3010 ++#: gcc.c:3013 + msgid " -std= Assume that the input sources are for \n" + msgstr "" + +-#: gcc.c:3011 ++#: gcc.c:3014 + msgid " -B Add to the compiler's search paths\n" + msgstr "" + +-#: gcc.c:3012 ++#: gcc.c:3015 + msgid " -b Run gcc for target , if installed\n" + msgstr "" + +-#: gcc.c:3013 ++#: gcc.c:3016 + msgid " -V Run gcc version number , if installed\n" + msgstr "" + +-#: gcc.c:3014 ++#: gcc.c:3017 + msgid " -v Display the programs invoked by the compiler\n" + msgstr "" + +-#: gcc.c:3015 ++#: gcc.c:3018 + msgid " -### Like -v but options quoted and commands not executed\n" + msgstr "" + +-#: gcc.c:3016 ++#: gcc.c:3019 + msgid " -E Preprocess only; do not compile, assemble or link\n" + msgstr "" + +-#: gcc.c:3017 ++#: gcc.c:3020 + msgid " -S Compile only; do not assemble or link\n" + msgstr "" + +-#: gcc.c:3018 ++#: gcc.c:3021 + msgid " -c Compile and assemble, but do not link\n" + msgstr "" + +-#: gcc.c:3019 ++#: gcc.c:3022 + msgid " -o Place the output into \n" + msgstr " -o <файл> ПамÑÑціць вывад у <файл>\n" + +-#: gcc.c:3020 ++#: gcc.c:3023 + msgid "" + " -x Specify the language of the following input files\n" + " Permissible languages include: c c++ assembler none\n" +@@ -5299,7 +5309,7 @@ + " guessing the language based on the file's extension\n" + msgstr "" + +-#: gcc.c:3027 ++#: gcc.c:3030 + #, c-format + msgid "" + "\n" +@@ -5308,97 +5318,97 @@ + " other options on to these processes the -W options must be used.\n" + msgstr "" + +-#: gcc.c:3148 ++#: gcc.c:3151 + #, c-format + msgid "`-%c' option must have argument" + msgstr "" + +-#: gcc.c:3170 ++#: gcc.c:3173 + #, c-format + msgid "couldn't run `%s': %s" + msgstr "" + + #. translate_options () has turned --version into -fversion. +-#: gcc.c:3356 ++#: gcc.c:3359 + #, c-format + msgid "%s (GCC) %s\n" + msgstr "" + +-#: gcc.c:3358 gcov.c:424 f/g77spec.c:351 ++#: gcc.c:3361 gcov.c:424 f/g77spec.c:351 + msgid "(C)" + msgstr "" + +-#: gcc.c:3359 ++#: gcc.c:3362 + msgid "" + "This is free software; see the source for copying conditions. There is NO\n" + "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" + "\n" + msgstr "" + +-#: gcc.c:3460 ++#: gcc.c:3463 + msgid "argument to `-Xlinker' is missing" + msgstr "" + +-#: gcc.c:3468 ++#: gcc.c:3471 + #, fuzzy + msgid "argument to `-Xpreprocessor' is missing" + msgstr "аргумент Ð´Ð»Ñ \"-%s\" прапушчан" + +-#: gcc.c:3475 ++#: gcc.c:3478 + #, fuzzy + msgid "argument to `-Xassembler' is missing" + msgstr "аргумент Ð´Ð»Ñ \"-x\" прапушчан" + +-#: gcc.c:3482 ++#: gcc.c:3485 + #, fuzzy + msgid "argument to `-l' is missing" + msgstr "аргумент Ð´Ð»Ñ \"-x\" прапушчан" + +-#: gcc.c:3498 ++#: gcc.c:3501 + msgid "argument to `-specs' is missing" + msgstr "" + +-#: gcc.c:3512 ++#: gcc.c:3515 + msgid "argument to `-specs=' is missing" + msgstr "" + +-#: gcc.c:3549 ++#: gcc.c:3552 + #, c-format + msgid "`-%c' must come at the start of the command line" + msgstr "" + +-#: gcc.c:3558 ++#: gcc.c:3561 + msgid "argument to `-B' is missing" + msgstr "" + +-#: gcc.c:3735 ++#: gcc.c:3738 + msgid "warning: -pipe ignored because -save-temps specified" + msgstr "" + +-#: gcc.c:3739 ++#: gcc.c:3742 + msgid "warning: -pipe ignored because -time specified" + msgstr "" + +-#: gcc.c:3951 ++#: gcc.c:3954 + msgid "argument to `-x' is missing" + msgstr "аргумент Ð´Ð»Ñ \"-x\" прапушчан" + +-#: gcc.c:3979 ++#: gcc.c:3982 + #, c-format + msgid "argument to `-%s' is missing" + msgstr "аргумент Ð´Ð»Ñ \"-%s\" прапушчан" + +-#: gcc.c:4040 ++#: gcc.c:4043 + #, c-format + msgid "warning: `-x %s' after last input file has no effect" + msgstr "" + +-#: gcc.c:4441 ++#: gcc.c:4444 + #, fuzzy + msgid "invalid specification! Bug in cc" + msgstr "ÐерÑчаіÑÐ½Ð°Ñ ÑпецыфікацыÑ! Памылка Ñž cc." + +-#: gcc.c:4595 ++#: gcc.c:4598 + #, c-format + msgid "%s\n" + msgstr "%s\n" +@@ -5406,79 +5416,79 @@ + #. Catch the case where a spec string contains something like + #. '%{foo:%*}'. ie there is no * in the pattern on the left + #. hand side of the :. +-#: gcc.c:5099 ++#: gcc.c:5102 + #, c-format + msgid "spec failure: '%%*' has not been initialized by pattern match" + msgstr "" + +-#: gcc.c:5108 ++#: gcc.c:5111 + #, c-format + msgid "warning: use of obsolete %%[ operator in specs" + msgstr "" + +-#: gcc.c:5126 ++#: gcc.c:5129 + #, c-format + msgid "Processing spec %c%s%c, which is '%s'\n" + msgstr "" + +-#: gcc.c:5189 ++#: gcc.c:5192 + #, fuzzy, c-format + msgid "spec failure: unrecognized spec option '%c'" + msgstr "нераÑпазнаны выбар \"-%s\"" + +-#: gcc.c:5268 ++#: gcc.c:5271 + #, fuzzy, c-format + msgid "unknown spec function `%s'" + msgstr "у функцыі \"%s\":" + +-#: gcc.c:5287 ++#: gcc.c:5290 + #, fuzzy, c-format + msgid "error in args to spec function `%s'" + msgstr "вельмі шмат аргумÑнтаў у функцыі `%s'" + +-#: gcc.c:5335 ++#: gcc.c:5338 + msgid "malformed spec function name" + msgstr "" + + #. ) +-#: gcc.c:5338 ++#: gcc.c:5341 + #, fuzzy + msgid "no arguments for spec function" + msgstr "не хапае аргументаў у функцыі" + +-#: gcc.c:5357 ++#: gcc.c:5360 + msgid "malformed spec function arguments" + msgstr "" + +-#: gcc.c:6083 ++#: gcc.c:6086 + msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC." + msgstr "" + +-#: gcc.c:6093 ++#: gcc.c:6096 + msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC." + msgstr "" + +-#: gcc.c:6186 ++#: gcc.c:6189 + #, c-format + msgid "unrecognized option `-%s'" + msgstr "нераÑпазнаны выбар \"-%s\"" + +-#: gcc.c:6192 ++#: gcc.c:6195 + #, c-format + msgid "install: %s%s\n" + msgstr "" + +-#: gcc.c:6193 ++#: gcc.c:6196 + #, c-format + msgid "programs: %s\n" + msgstr "праграмы: %s\n" + +-#: gcc.c:6194 ++#: gcc.c:6197 + #, c-format + msgid "libraries: %s\n" + msgstr "бібліÑÑ‚Ñкі: %s\n" + +-#: gcc.c:6251 ++#: gcc.c:6254 + msgid "" + "\n" + "For bug reporting instructions, please see:\n" +@@ -5486,51 +5496,51 @@ + "\n" + "ІнÑтрукцыі Ð´Ð»Ñ Ð¿Ð°Ð²ÐµÐ´Ð°Ð¼Ð»ÐµÐ½Ð½ÑÑž аб памылках глÑдзіце тут:\n" + +-#: gcc.c:6267 ++#: gcc.c:6270 + #, c-format + msgid "Configured with: %s\n" + msgstr "" + +-#: gcc.c:6281 ++#: gcc.c:6284 + #, c-format + msgid "Thread model: %s\n" + msgstr "" + +-#: gcc.c:6292 ++#: gcc.c:6295 + #, c-format + msgid "gcc version %s\n" + msgstr "верÑÑ–Ñ gcc %s\n" + +-#: gcc.c:6294 ++#: gcc.c:6297 + #, c-format + msgid "gcc driver version %s executing gcc version %s\n" + msgstr "" + +-#: gcc.c:6302 ++#: gcc.c:6305 + #, fuzzy + msgid "no input files" + msgstr "нÑма ўваходзÑчых файлаў" + +-#: gcc.c:6324 gcc.c:6443 ++#: gcc.c:6327 gcc.c:6446 + #, c-format + msgid "%s: linker input file unused because linking not done" + msgstr "" + +-#: gcc.c:6327 ++#: gcc.c:6330 + msgid "cannot specify -o with -c or -S and multiple languages" + msgstr "" + +-#: gcc.c:6362 ++#: gcc.c:6365 + #, c-format + msgid "%s: %s compiler not installed on this system" + msgstr "%s: %s кампілÑтар не ÑžÑталÑваны на гÑтай ÑÑ–ÑÑ‚Ñме" + +-#: gcc.c:6483 ++#: gcc.c:6486 + #, c-format + msgid "language %s not recognized" + msgstr "мова %s не раÑпазнана" + +-#: gcc.c:6580 ++#: gcc.c:6583 + #, fuzzy + msgid "internal gcc abort" + msgstr "ÑƒÐ½ÑƒÑ‚Ñ€Ð°Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°" +@@ -5819,21 +5829,21 @@ + msgid "GCSE disabled" + msgstr "" + +-#: gcse.c:6124 ++#: gcse.c:6125 + msgid "NULL pointer checks disabled" + msgstr "" + + #. Return if there's nothing to do, or it is too expensive. +-#: gcse.c:8010 ++#: gcse.c:8036 + msgid "jump bypassing disabled" + msgstr "" + +-#: gcse.c:8071 ++#: gcse.c:8097 + #, c-format + msgid "%s: %d basic blocks and %d edges/basic block" + msgstr "" + +-#: gcse.c:8084 ++#: gcse.c:8110 + #, c-format + msgid "%s: %d basic blocks and %d registers" + msgstr "" +@@ -5884,7 +5894,7 @@ + msgid "%s cannot be used in asm here" + msgstr "\"%s\" звычайна функцыÑ" + +-#: graph.c:403 toplev.c:1498 toplev.c:4432 f/com.c:14202 java/jcf-parse.c:883 ++#: graph.c:403 toplev.c:1498 toplev.c:4433 f/com.c:14202 java/jcf-parse.c:883 + #: java/jcf-parse.c:1029 java/lex.c:1828 objc/objc-act.c:503 + #, fuzzy, c-format + msgid "can't open %s: %m" +@@ -5963,7 +5973,7 @@ + msgid "function with target specific attribute(s) cannot be inlined" + msgstr "" + +-#: jump.c:1896 ++#: jump.c:1913 + msgid "%Hwill never be executed" + msgstr "" + +@@ -6451,7 +6461,7 @@ + msgid "can't use '%s' as a %s register" + msgstr "" + +-#: regclass.c:758 config/ia64/ia64.c:4660 config/ia64/ia64.c:4667 ++#: regclass.c:758 config/ia64/ia64.c:4666 config/ia64/ia64.c:4673 + #, c-format + msgid "unknown register name: %s" + msgstr "невÑÐ´Ð¾Ð¼Ð°Ñ Ð½Ð°Ð·Ð²Ð° Ñ€ÑгіÑтра: %s" +@@ -6496,15 +6506,15 @@ + msgid "impossible register constraint in `asm'" + msgstr "" + +-#: reload.c:3504 ++#: reload.c:3519 + msgid "`&' constraint used with no register class" + msgstr "" + +-#: reload.c:3672 ++#: reload.c:3687 + msgid "unable to generate reloads for:" + msgstr "" + +-#: reload.c:3673 reload.c:3887 ++#: reload.c:3688 reload.c:3902 + msgid "inconsistent operand constraints in an `asm'" + msgstr "" + +@@ -6914,42 +6924,42 @@ + msgid "invalid register name `%s' for register variable" + msgstr "" + +-#: toplev.c:3546 ++#: toplev.c:3547 + msgid "branch target register load optimization is not intended to be run twice" + msgstr "" + +-#: toplev.c:3713 ++#: toplev.c:3714 + msgid "" + "\n" + "Target specific options:\n" + msgstr "" + +-#: toplev.c:3727 toplev.c:3746 ++#: toplev.c:3728 toplev.c:3747 + #, c-format + msgid " -m%-23s [undocumented]\n" + msgstr "" + +-#: toplev.c:3755 ++#: toplev.c:3756 + msgid "" + "\n" + "There are undocumented target specific options as well.\n" + msgstr "" + +-#: toplev.c:3757 ++#: toplev.c:3758 + msgid " They exist, but they are not documented.\n" + msgstr "" + +-#: toplev.c:3812 ++#: toplev.c:3813 + #, c-format + msgid "unrecognized gcc debugging option: %c" + msgstr "" + +-#: toplev.c:3874 config/rs6000/rs6000.c:922 ++#: toplev.c:3875 config/rs6000/rs6000.c:940 config/rs6000/rs6000.c:951 + #, fuzzy, c-format + msgid "invalid option `%s'" + msgstr "ÐерÑчаіÑны выбар \"%s\"" + +-#: toplev.c:3889 ++#: toplev.c:3890 + #, c-format + msgid "" + "%s%s%s version %s (%s)\n" +@@ -6960,96 +6970,96 @@ + "%s\tзкампілÑвана GNU C верÑÑ–Ñ %s.\n" + "%s%s%s верÑÑ–Ñ %s (%s) зкампілÑвана CC.\n" + +-#: toplev.c:3896 ++#: toplev.c:3897 + #, c-format + msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n" + msgstr "" + +-#: toplev.c:3948 ++#: toplev.c:3949 + msgid "options passed: " + msgstr "" + +-#: toplev.c:3977 ++#: toplev.c:3978 + msgid "options enabled: " + msgstr "выбары ўключаны:" + +-#: toplev.c:4035 java/jcf-write.c:3424 ++#: toplev.c:4036 java/jcf-write.c:3424 + #, fuzzy, c-format + msgid "can't open %s for writing: %m" + msgstr "немагчыма адчыніць %s Ð´Ð»Ñ Ð·Ð°Ð¿Ñ–Ñу" + +-#: toplev.c:4118 config/sh/sh.c:7019 ++#: toplev.c:4119 config/sh/sh.c:7020 + msgid "created and used with different settings of -fpic" + msgstr "" + +-#: toplev.c:4120 config/sh/sh.c:7021 ++#: toplev.c:4121 config/sh/sh.c:7022 + msgid "created and used with different settings of -fpie" + msgstr "" + +-#: toplev.c:4171 config/sh/sh.c:7071 ++#: toplev.c:4172 config/sh/sh.c:7072 + #, c-format + msgid "created and used with differing settings of `-m%s'" + msgstr "" + +-#: toplev.c:4174 config/sh/sh.c:7074 ++#: toplev.c:4175 config/sh/sh.c:7075 + msgid "out of memory" + msgstr "" + +-#: toplev.c:4355 ++#: toplev.c:4356 + msgid "instruction scheduling not supported on this target machine" + msgstr "" + +-#: toplev.c:4359 ++#: toplev.c:4360 + msgid "this target machine does not have delayed branches" + msgstr "" + +-#: toplev.c:4373 ++#: toplev.c:4374 + #, c-format + msgid "-f%sleading-underscore not supported on this target machine" + msgstr "" + +-#: toplev.c:4422 ++#: toplev.c:4423 + #, c-format + msgid "target system does not support the \"%s\" debug format" + msgstr "" + +-#: toplev.c:4439 ++#: toplev.c:4440 + #, fuzzy + msgid "-ffunction-sections not supported for this target" + msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹" + +-#: toplev.c:4444 ++#: toplev.c:4445 + #, fuzzy + msgid "-fdata-sections not supported for this target" + msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹" + +-#: toplev.c:4451 ++#: toplev.c:4452 + msgid "-ffunction-sections disabled; it makes profiling impossible" + msgstr "" + +-#: toplev.c:4458 ++#: toplev.c:4459 + #, fuzzy + msgid "-fprefetch-loop-arrays not supported for this target" + msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹" + +-#: toplev.c:4464 ++#: toplev.c:4465 + msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)" + msgstr "" + +-#: toplev.c:4473 ++#: toplev.c:4474 + msgid "-fprefetch-loop-arrays is not supported with -Os" + msgstr "" + +-#: toplev.c:4479 ++#: toplev.c:4480 + msgid "-ffunction-sections may affect debugging on some targets" + msgstr "" + +-#: toplev.c:4581 ++#: toplev.c:4582 + #, fuzzy, c-format + msgid "error writing to %s: %m" + msgstr "памылка запіÑу Ñž %s" + +-#: toplev.c:4583 java/jcf-parse.c:902 java/jcf-write.c:3431 ++#: toplev.c:4584 java/jcf-parse.c:902 java/jcf-write.c:3431 + #, fuzzy, c-format + msgid "error closing %s: %m" + msgstr "памылка запіÑу Ñž %s" +@@ -7096,7 +7106,7 @@ + msgid "%Jfunction '%F' can never be inlined because it uses variable sized variables" + msgstr "" + +-#: tree-inline.c:1338 tree-inline.c:1345 ++#: tree-inline.c:1338 tree-inline.c:1346 + msgid "%Jinlining failed in call to '%F': %s" + msgstr "" + +@@ -7110,34 +7120,34 @@ + msgid "%Jsize of return value of '%D' is larger than %wd bytes" + msgstr "памер вÑртаемага значÑÐ½Ð½Ñ \"%s\" больш чым %d байт" + +-#: tree.c:3801 ++#: tree.c:3800 + msgid "arrays of functions are not meaningful" + msgstr "" + +-#: tree.c:3856 ++#: tree.c:3855 + msgid "function return type cannot be function" + msgstr "" + +-#: tree.c:4685 ++#: tree.c:4684 + msgid "invalid initializer for bit string" + msgstr "" + +-#: tree.c:4737 ++#: tree.c:4736 + #, c-format + msgid "tree check: expected %s, have %s in %s, at %s:%d" + msgstr "" + +-#: tree.c:4750 ++#: tree.c:4749 + #, c-format + msgid "tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d" + msgstr "" + +-#: tree.c:4763 ++#: tree.c:4762 + #, c-format + msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d" + msgstr "" + +-#: tree.c:4775 ++#: tree.c:4774 + #, c-format + msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d" + msgstr "" +@@ -7191,50 +7201,50 @@ + msgid "%Jrequested alignment for '%D' is greater than implemented alignment of %d" + msgstr "" + +-#: varasm.c:3789 ++#: varasm.c:3790 + msgid "initializer for integer value is too complicated" + msgstr "" + +-#: varasm.c:3794 ++#: varasm.c:3795 + msgid "initializer for floating value is not a floating constant" + msgstr "" + +-#: varasm.c:3860 ++#: varasm.c:3861 + msgid "unknown set constructor type" + msgstr "" + +-#: varasm.c:4079 ++#: varasm.c:4080 + #, c-format + msgid "invalid initial value for member `%s'" + msgstr "" + +-#: varasm.c:4266 varasm.c:4310 ++#: varasm.c:4267 varasm.c:4311 + msgid "%Jweak declaration of '%D' must precede definition" + msgstr "" + +-#: varasm.c:4274 ++#: varasm.c:4275 + msgid "%Jweak declaration of '%D' after first use results in unspecified behavior" + msgstr "" + +-#: varasm.c:4308 ++#: varasm.c:4309 + #, fuzzy + msgid "%Jweak declaration of '%D' must be public" + msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\"" + +-#: varasm.c:4317 ++#: varasm.c:4318 + #, fuzzy + msgid "%Jweak declaration of '%D' not supported" + msgstr "пуÑтое абвÑшчÑнне" + +-#: varasm.c:4346 varasm.c:4436 ++#: varasm.c:4347 varasm.c:4437 + msgid "only weak aliases are supported in this configuration" + msgstr "" + +-#: varasm.c:4439 ++#: varasm.c:4440 + msgid "alias definitions not supported in this configuration; ignored" + msgstr "" + +-#: varasm.c:4468 ++#: varasm.c:4469 + #, fuzzy + msgid "visibility attribute not supported in this configuration; ignored" + msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹" +@@ -7459,7 +7469,7 @@ + msgid "junk at end of '#pragma unused'" + msgstr "" + +-#: config/darwin.c:1347 ++#: config/darwin.c:1312 + msgid "internal and protected visibility attributes not supportedin this configuration; ignored" + msgstr "" + +@@ -7504,7 +7514,7 @@ + msgid "bad value `%s' for -mfp-trap-mode switch" + msgstr "" + +-#: config/alpha/alpha.c:324 config/rs6000/rs6000.c:1088 ++#: config/alpha/alpha.c:324 config/rs6000/rs6000.c:1117 + #, c-format + msgid "bad value `%s' for -mtls-size switch" + msgstr "" +@@ -7544,90 +7554,90 @@ + msgid "bad value `%s' for -mmemory-latency" + msgstr "" + +-#: config/alpha/alpha.c:5425 ++#: config/alpha/alpha.c:5436 + #, c-format + msgid "invalid %%H value" + msgstr "нерÑчаіÑнае значÑньне %%H" + +-#: config/alpha/alpha.c:5446 ++#: config/alpha/alpha.c:5457 + #, fuzzy, c-format + msgid "invalid %%J value" + msgstr "дрÑннае %%Q значÑнне" + +-#: config/alpha/alpha.c:5462 config/ia64/ia64.c:4263 ++#: config/alpha/alpha.c:5473 config/ia64/ia64.c:4269 + #, c-format + msgid "invalid %%r value" + msgstr "нерÑчаіÑнае значÑньне %%r" + +-#: config/alpha/alpha.c:5472 config/rs6000/rs6000.c:9241 ++#: config/alpha/alpha.c:5483 config/rs6000/rs6000.c:9332 + #: config/xtensa/xtensa.c:2014 + #, c-format + msgid "invalid %%R value" + msgstr "нерÑчаіÑнае значÑньне %%R" + +-#: config/alpha/alpha.c:5478 config/rs6000/rs6000.c:9160 ++#: config/alpha/alpha.c:5489 config/rs6000/rs6000.c:9251 + #: config/xtensa/xtensa.c:1981 + #, c-format + msgid "invalid %%N value" + msgstr "нерÑчаіÑнае значÑньне %%N" + +-#: config/alpha/alpha.c:5486 config/rs6000/rs6000.c:9188 ++#: config/alpha/alpha.c:5497 config/rs6000/rs6000.c:9279 + #, c-format + msgid "invalid %%P value" + msgstr "нерÑчаіÑнае значÑньне %%P" + +-#: config/alpha/alpha.c:5494 ++#: config/alpha/alpha.c:5505 + #, c-format + msgid "invalid %%h value" + msgstr "нерÑчаіÑнае значÑньне %%h" + +-#: config/alpha/alpha.c:5502 config/xtensa/xtensa.c:2007 ++#: config/alpha/alpha.c:5513 config/xtensa/xtensa.c:2007 + #, c-format + msgid "invalid %%L value" + msgstr "нерÑчаіÑнае значÑньне %%L" + +-#: config/alpha/alpha.c:5541 config/rs6000/rs6000.c:9142 ++#: config/alpha/alpha.c:5552 config/rs6000/rs6000.c:9233 + #, c-format + msgid "invalid %%m value" + msgstr "нерÑчаіÑнае значÑньне %%m" + +-#: config/alpha/alpha.c:5549 config/rs6000/rs6000.c:9150 ++#: config/alpha/alpha.c:5560 config/rs6000/rs6000.c:9241 + #, c-format + msgid "invalid %%M value" + msgstr "нерÑчаіÑнае значÑньне %%M" + +-#: config/alpha/alpha.c:5593 ++#: config/alpha/alpha.c:5604 + #, c-format + msgid "invalid %%U value" + msgstr "нерÑчаіÑнае значÑньне %%U" + +-#: config/alpha/alpha.c:5605 config/alpha/alpha.c:5619 +-#: config/rs6000/rs6000.c:9249 ++#: config/alpha/alpha.c:5616 config/alpha/alpha.c:5630 ++#: config/rs6000/rs6000.c:9340 + #, c-format + msgid "invalid %%s value" + msgstr "нерÑчаіÑнае значÑньне %%v" + +-#: config/alpha/alpha.c:5642 ++#: config/alpha/alpha.c:5653 + #, c-format + msgid "invalid %%C value" + msgstr "нерÑчаіÑнае значÑньне %%C" + +-#: config/alpha/alpha.c:5679 config/rs6000/rs6000.c:8979 +-#: config/rs6000/rs6000.c:8999 ++#: config/alpha/alpha.c:5690 config/rs6000/rs6000.c:9070 ++#: config/rs6000/rs6000.c:9090 + #, c-format + msgid "invalid %%E value" + msgstr "нерÑчаіÑнае значÑньне %%E" + +-#: config/alpha/alpha.c:5704 config/alpha/alpha.c:5752 ++#: config/alpha/alpha.c:5715 config/alpha/alpha.c:5763 + msgid "unknown relocation unspec" + msgstr "" + +-#: config/alpha/alpha.c:5713 config/rs6000/rs6000.c:9562 ++#: config/alpha/alpha.c:5724 config/rs6000/rs6000.c:9653 + #, c-format + msgid "invalid %%xn code" + msgstr "нерÑчаіÑнае значÑньне %%xn" + +-#: config/alpha/alpha.c:6657 config/alpha/alpha.c:6660 config/s390/s390.c:6575 ++#: config/alpha/alpha.c:6668 config/alpha/alpha.c:6671 config/s390/s390.c:6575 + #: config/s390/s390.c:6578 + msgid "bad builtin fcode" + msgstr "" +@@ -7764,7 +7774,7 @@ + msgid "Tune expected memory latency" + msgstr "" + +-#: config/alpha/alpha.h:376 config/ia64/ia64.h:267 config/rs6000/sysv4.h:90 ++#: config/alpha/alpha.h:376 config/ia64/ia64.h:272 config/rs6000/sysv4.h:90 + msgid "Specify bit size of immediate TLS offsets" + msgstr "" + +@@ -7783,17 +7793,17 @@ + msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\"" + msgstr "" + +-#: config/arc/arc.c:1714 config/m32r/m32r.c:2352 ++#: config/arc/arc.c:1714 config/m32r/m32r.c:2349 + #, fuzzy, c-format + msgid "invalid operand to %%R code" + msgstr "нерÑчаіÑны %%-код" + +-#: config/arc/arc.c:1746 config/m32r/m32r.c:2375 ++#: config/arc/arc.c:1746 config/m32r/m32r.c:2372 + #, fuzzy, c-format + msgid "invalid operand to %%H/%%L code" + msgstr "нерÑчаіÑны %%-код" + +-#: config/arc/arc.c:1769 config/m32r/m32r.c:2446 ++#: config/arc/arc.c:1769 config/m32r/m32r.c:2443 + #, fuzzy, c-format + msgid "invalid operand to %%U code" + msgstr "нерÑчаіÑны %%-код" +@@ -7804,7 +7814,7 @@ + msgstr "нерÑчаіÑны %%-код" + + #. Unknown flag. +-#: config/arc/arc.c:1787 config/m32r/m32r.c:2473 config/sparc/sparc.c:7010 ++#: config/arc/arc.c:1787 config/m32r/m32r.c:2470 config/sparc/sparc.c:7152 + msgid "invalid operand output code" + msgstr "" + +@@ -7813,7 +7823,7 @@ + msgid "switch -mcpu=%s conflicts with -march= switch" + msgstr "" + +-#: config/arm/arm.c:530 config/rs6000/rs6000.c:767 config/sparc/sparc.c:424 ++#: config/arm/arm.c:530 config/rs6000/rs6000.c:785 config/sparc/sparc.c:426 + #, c-format + msgid "bad value (%s) for %s switch" + msgstr "" +@@ -7897,13 +7907,13 @@ + msgid "unable to use '%s' for PIC register" + msgstr "" + +-#: config/arm/arm.c:2249 config/arm/arm.c:2267 config/avr/avr.c:4558 +-#: config/c4x/c4x.c:4447 config/h8300/h8300.c:4260 config/i386/i386.c:1592 +-#: config/i386/i386.c:1638 config/ip2k/ip2k.c:3169 ++#: config/arm/arm.c:2249 config/arm/arm.c:2267 config/avr/avr.c:4523 ++#: config/c4x/c4x.c:4447 config/h8300/h8300.c:4260 config/i386/i386.c:1598 ++#: config/i386/i386.c:1644 config/ip2k/ip2k.c:3169 + #: config/m68hc11/m68hc11.c:1311 config/m68k/m68k.c:345 + #: config/mcore/mcore.c:3375 config/ns32k/ns32k.c:1064 +-#: config/rs6000/rs6000.c:14866 config/sh/sh.c:6873 config/sh/sh.c:6894 +-#: config/sh/sh.c:6929 config/stormy16/stormy16.c:2073 config/v850/v850.c:2173 ++#: config/rs6000/rs6000.c:15070 config/sh/sh.c:6874 config/sh/sh.c:6895 ++#: config/sh/sh.c:6930 config/stormy16/stormy16.c:2073 config/v850/v850.c:2173 + #, fuzzy, c-format + msgid "`%s' attribute only applies to functions" + msgstr "\"%s\" звычайна функцыÑ" +@@ -7918,7 +7928,7 @@ + msgstr "" + + #. @@@ better error message +-#: config/arm/arm.c:11284 config/i386/i386.c:14317 config/i386/i386.c:14351 ++#: config/arm/arm.c:11284 config/i386/i386.c:14318 config/i386/i386.c:14352 + msgid "mask must be an immediate" + msgstr "" + +@@ -8054,56 +8064,56 @@ + msgid "Ignore dllimport attribute for functions" + msgstr "" + +-#: config/avr/avr.c:514 ++#: config/avr/avr.c:511 + #, c-format + msgid "large frame pointer change (%d) with -mtiny-stack" + msgstr "" + +-#: config/avr/avr.c:1101 ++#: config/avr/avr.c:1098 + msgid "bad address, not (reg+disp):" + msgstr "" + +-#: config/avr/avr.c:1109 ++#: config/avr/avr.c:1106 + msgid "internal compiler error. Bad address:" + msgstr "" + +-#: config/avr/avr.c:1122 ++#: config/avr/avr.c:1119 + msgid "internal compiler error. Unknown mode:" + msgstr "" + +-#: config/avr/avr.c:1744 config/avr/avr.c:2405 ++#: config/avr/avr.c:1741 config/avr/avr.c:2402 + #, fuzzy + msgid "invalid insn:" + msgstr "ÐерÑчаіÑны выбар %s" + +-#: config/avr/avr.c:1778 config/avr/avr.c:1861 config/avr/avr.c:1910 +-#: config/avr/avr.c:1919 config/avr/avr.c:2014 config/avr/avr.c:2183 +-#: config/avr/avr.c:2439 config/avr/avr.c:2547 ++#: config/avr/avr.c:1775 config/avr/avr.c:1858 config/avr/avr.c:1907 ++#: config/avr/avr.c:1916 config/avr/avr.c:2011 config/avr/avr.c:2180 ++#: config/avr/avr.c:2436 config/avr/avr.c:2544 + msgid "incorrect insn:" + msgstr "" + +-#: config/avr/avr.c:1938 config/avr/avr.c:2099 config/avr/avr.c:2254 +-#: config/avr/avr.c:2591 ++#: config/avr/avr.c:1935 config/avr/avr.c:2096 config/avr/avr.c:2251 ++#: config/avr/avr.c:2588 + msgid "unknown move insn:" + msgstr "" + +-#: config/avr/avr.c:2814 ++#: config/avr/avr.c:2811 + msgid "bad shift insn:" + msgstr "" + +-#: config/avr/avr.c:2927 config/avr/avr.c:3348 config/avr/avr.c:3719 ++#: config/avr/avr.c:2924 config/avr/avr.c:3345 config/avr/avr.c:3716 + msgid "internal compiler error. Incorrect shift:" + msgstr "" + +-#: config/avr/avr.c:4532 config/ip2k/ip2k.c:3144 ++#: config/avr/avr.c:4497 config/ip2k/ip2k.c:3144 + msgid "only initialized variables can be placed into program memory area" + msgstr "" + +-#: config/avr/avr.c:4626 ++#: config/avr/avr.c:4591 + msgid "only uninitialized variables can be placed in the .noinit section" + msgstr "" + +-#: config/avr/avr.c:4640 ++#: config/avr/avr.c:4605 + #, c-format + msgid "MCU `%s' supported for assembler only" + msgstr "" +@@ -9300,7 +9310,7 @@ + msgid "code model %s not supported in PIC mode" + msgstr "" + +-#: config/i386/i386.c:1189 config/sparc/sparc.c:387 ++#: config/i386/i386.c:1189 config/sparc/sparc.c:389 + #, c-format + msgid "bad value (%s) for -mcmodel= switch" + msgstr "" +@@ -9334,140 +9344,140 @@ + msgid "bad value (%s) for -march= switch" + msgstr "" + +-#: config/i386/i386.c:1260 ++#: config/i386/i386.c:1266 + #, c-format + msgid "bad value (%s) for -mtune= switch" + msgstr "" + +-#: config/i386/i386.c:1277 ++#: config/i386/i386.c:1283 + #, c-format + msgid "-mregparm=%d is not between 0 and %d" + msgstr "" + +-#: config/i386/i386.c:1290 ++#: config/i386/i386.c:1296 + msgid "-malign-loops is obsolete, use -falign-loops" + msgstr "" + +-#: config/i386/i386.c:1295 config/i386/i386.c:1308 config/i386/i386.c:1321 ++#: config/i386/i386.c:1301 config/i386/i386.c:1314 config/i386/i386.c:1327 + #, c-format + msgid "-malign-loops=%d is not between 0 and %d" + msgstr "" + +-#: config/i386/i386.c:1303 ++#: config/i386/i386.c:1309 + msgid "-malign-jumps is obsolete, use -falign-jumps" + msgstr "" + +-#: config/i386/i386.c:1316 ++#: config/i386/i386.c:1322 + msgid "-malign-functions is obsolete, use -falign-functions" + msgstr "" + +-#: config/i386/i386.c:1354 ++#: config/i386/i386.c:1360 + #, c-format + msgid "-mpreferred-stack-boundary=%d is not between %d and 12" + msgstr "" + +-#: config/i386/i386.c:1366 ++#: config/i386/i386.c:1372 + #, c-format + msgid "-mbranch-cost=%d is not between 0 and 5" + msgstr "" + +-#: config/i386/i386.c:1378 ++#: config/i386/i386.c:1384 + #, c-format + msgid "bad value (%s) for -mtls-dialect= switch" + msgstr "" + +-#: config/i386/i386.c:1407 ++#: config/i386/i386.c:1413 + msgid "-malign-double makes no sense in the 64bit mode" + msgstr "" + +-#: config/i386/i386.c:1409 ++#: config/i386/i386.c:1415 + msgid "-mrtd calling convention not supported in the 64bit mode" + msgstr "" + +-#: config/i386/i386.c:1431 config/i386/i386.c:1442 ++#: config/i386/i386.c:1437 config/i386/i386.c:1448 + msgid "SSE instruction set disabled, using 387 arithmetics" + msgstr "" + +-#: config/i386/i386.c:1447 ++#: config/i386/i386.c:1453 + msgid "387 instruction set disabled, using SSE arithmetics" + msgstr "" + +-#: config/i386/i386.c:1454 ++#: config/i386/i386.c:1460 + #, c-format + msgid "bad value (%s) for -mfpmath= switch" + msgstr "" + +-#: config/i386/i386.c:1602 config/i386/i386.c:1613 ++#: config/i386/i386.c:1608 config/i386/i386.c:1619 + msgid "fastcall and stdcall attributes are not compatible" + msgstr "" + +-#: config/i386/i386.c:1606 config/i386/i386.c:1662 ++#: config/i386/i386.c:1612 config/i386/i386.c:1668 + msgid "fastcall and regparm attributes are not compatible" + msgstr "" + +-#: config/i386/i386.c:1649 ++#: config/i386/i386.c:1655 + #, c-format + msgid "`%s' attribute requires an integer constant argument" + msgstr "" + +-#: config/i386/i386.c:1655 ++#: config/i386/i386.c:1661 + #, fuzzy, c-format + msgid "argument to `%s' attribute larger than %d" + msgstr "памер \"%s\" больш чам %d байт" + +-#: config/i386/i386.c:2621 ++#: config/i386/i386.c:2627 + msgid "SSE vector argument without SSE enabled changes the ABI" + msgstr "" + +-#: config/i386/i386.c:2637 ++#: config/i386/i386.c:2643 + msgid "MMX vector argument without MMX enabled changes the ABI" + msgstr "" + +-#: config/i386/i386.c:2865 ++#: config/i386/i386.c:2871 + msgid "SSE vector return without SSE enabled changes the ABI" + msgstr "" + +-#: config/i386/i386.c:6840 ++#: config/i386/i386.c:6841 + msgid "invalid UNSPEC as operand" + msgstr "" + +-#: config/i386/i386.c:7098 ++#: config/i386/i386.c:7099 + msgid "extended registers have no high halves" + msgstr "" + +-#: config/i386/i386.c:7113 ++#: config/i386/i386.c:7114 + msgid "unsupported operand size for extended register" + msgstr "" + +-#: config/i386/i386.c:7428 ++#: config/i386/i386.c:7429 + msgid "operand is neither a constant nor a condition code, invalid operand code 'c'" + msgstr "" + +-#: config/i386/i386.c:7474 ++#: config/i386/i386.c:7475 + #, fuzzy, c-format + msgid "invalid operand code `%c'" + msgstr "ÐерÑчаіÑны выбар \"%s\"" + +-#: config/i386/i386.c:7517 ++#: config/i386/i386.c:7518 + #, fuzzy + msgid "invalid constraints for operand" + msgstr "нерÑчаіÑны %%c аперанд" + +-#: config/i386/i386.c:12031 ++#: config/i386/i386.c:12032 + #, fuzzy + msgid "unknown insn mode" + msgstr "невÑдомы Ñ€Ñжым машыны \"%s\"" + +-#: config/i386/i386.c:14119 config/i386/i386.c:14155 ++#: config/i386/i386.c:14120 config/i386/i386.c:14156 + #, c-format + msgid "selector must be an integer constant in the range 0..%i" + msgstr "" + +-#: config/i386/i386.c:14383 ++#: config/i386/i386.c:14384 + msgid "shift must be an immediate" + msgstr "" + +-#: config/i386/i386.c:15406 ++#: config/i386/i386.c:15407 + #, fuzzy, c-format + msgid "`%s' incompatible attribute ignored" + msgstr "\"%s\" атрыбут ігнарыруецца" +@@ -9757,7 +9767,7 @@ + #. variable, type `char *', is set to the variable part of the given + #. option if the fixed part matches. The actual option name is made + #. by appending `-m' to the specified name. +-#: config/i386/i386.h:461 config/ia64/ia64.h:269 config/rs6000/rs6000.h:449 ++#: config/i386/i386.h:461 config/ia64/ia64.h:274 config/rs6000/rs6000.h:449 + #: config/s390/s390.h:146 config/sparc/sparc.h:656 + msgid "Schedule code for given CPU" + msgstr "" +@@ -9876,7 +9886,7 @@ + msgid "iC2.0 and iC3.0 are incompatible - using iC3.0" + msgstr "" + +-#: config/i960/i960.c:1456 config/m68k/m68k.c:600 config/rs6000/rs6000.c:11597 ++#: config/i960/i960.c:1456 config/m68k/m68k.c:600 config/rs6000/rs6000.c:11690 + msgid "stack limit expression is not supported" + msgstr "" + +@@ -10035,41 +10045,41 @@ + msgid "%Jaddress area attribute cannot be specified for functions" + msgstr "\"%s\" звычайна функцыÑ" + +-#: config/ia64/ia64.c:4308 ++#: config/ia64/ia64.c:4314 + msgid "ia64_print_operand: unknown code" + msgstr "" + +-#: config/ia64/ia64.c:4648 ++#: config/ia64/ia64.c:4654 + msgid "value of -mfixed-range must have form REG1-REG2" + msgstr "" + +-#: config/ia64/ia64.c:4675 ++#: config/ia64/ia64.c:4681 + #, c-format + msgid "%s-%s is an empty range" + msgstr "" + +-#: config/ia64/ia64.c:4723 ++#: config/ia64/ia64.c:4729 + msgid "cannot optimize floating point division for both latency and throughput" + msgstr "" + +-#: config/ia64/ia64.c:4729 ++#: config/ia64/ia64.c:4735 + msgid "cannot optimize integer division for both latency and throughput" + msgstr "" + +-#: config/ia64/ia64.c:4735 ++#: config/ia64/ia64.c:4741 + msgid "cannot optimize square root for both latency and throughput" + msgstr "" + +-#: config/ia64/ia64.c:4741 ++#: config/ia64/ia64.c:4747 + msgid "not yet implemented: latency-optimized inline square root" + msgstr "" + +-#: config/ia64/ia64.c:4753 ++#: config/ia64/ia64.c:4759 + #, c-format + msgid "bad value (%s) for -mtls-size= switch" + msgstr "" + +-#: config/ia64/ia64.c:4769 ++#: config/ia64/ia64.c:4775 + #, c-format + msgid "bad value (%s) for -tune= switch" + msgstr "" +@@ -10077,107 +10087,107 @@ + #. This macro defines names of command options to set and clear bits in + #. `target_flags'. Its definition is an initializer with a subgrouping for + #. each command option. +-#: config/ia64/ia64.h:172 ++#: config/ia64/ia64.h:177 + msgid "Generate big endian code" + msgstr "" + +-#: config/ia64/ia64.h:174 config/mcore/mcore.h:154 ++#: config/ia64/ia64.h:179 config/mcore/mcore.h:154 + msgid "Generate little endian code" + msgstr "" + +-#: config/ia64/ia64.h:176 ++#: config/ia64/ia64.h:181 + msgid "Generate code for GNU as" + msgstr "Генерыраваць код Ð´Ð»Ñ GNU as" + +-#: config/ia64/ia64.h:178 ++#: config/ia64/ia64.h:183 + msgid "Generate code for Intel as" + msgstr "Генерыраваць код Ð´Ð»Ñ Intel as" + +-#: config/ia64/ia64.h:180 ++#: config/ia64/ia64.h:185 + msgid "Generate code for GNU ld" + msgstr "Генерыраваць код Ð´Ð»Ñ GNU ld" + +-#: config/ia64/ia64.h:182 ++#: config/ia64/ia64.h:187 + msgid "Generate code for Intel ld" + msgstr "Генерыраваць код Ð´Ð»Ñ Intel ld" + +-#: config/ia64/ia64.h:184 ++#: config/ia64/ia64.h:189 + msgid "Generate code without GP reg" + msgstr "Генерыраваць код без GP reg" + +-#: config/ia64/ia64.h:186 ++#: config/ia64/ia64.h:191 + msgid "Emit stop bits before and after volatile extended asms" + msgstr "" + +-#: config/ia64/ia64.h:188 ++#: config/ia64/ia64.h:193 + msgid "Don't emit stop bits before and after volatile extended asms" + msgstr "" + +-#: config/ia64/ia64.h:190 ++#: config/ia64/ia64.h:195 + msgid "Emit code for Itanium (TM) processor B step" + msgstr "" + +-#: config/ia64/ia64.h:192 ++#: config/ia64/ia64.h:197 + msgid "Use in/loc/out register names" + msgstr "" + +-#: config/ia64/ia64.h:194 ++#: config/ia64/ia64.h:199 + msgid "Disable use of sdata/scommon/sbss" + msgstr "" + +-#: config/ia64/ia64.h:196 ++#: config/ia64/ia64.h:201 + msgid "Enable use of sdata/scommon/sbss" + msgstr "" + +-#: config/ia64/ia64.h:198 ++#: config/ia64/ia64.h:203 + msgid "gp is constant (but save/restore gp on indirect calls)" + msgstr "" + +-#: config/ia64/ia64.h:200 ++#: config/ia64/ia64.h:205 + msgid "Generate self-relocatable code" + msgstr "" + +-#: config/ia64/ia64.h:202 ++#: config/ia64/ia64.h:207 + msgid "Generate inline floating point division, optimize for latency" + msgstr "" + +-#: config/ia64/ia64.h:204 ++#: config/ia64/ia64.h:209 + msgid "Generate inline floating point division, optimize for throughput" + msgstr "" + +-#: config/ia64/ia64.h:206 ++#: config/ia64/ia64.h:211 + msgid "Generate inline integer division, optimize for latency" + msgstr "" + +-#: config/ia64/ia64.h:208 ++#: config/ia64/ia64.h:213 + msgid "Generate inline integer division, optimize for throughput" + msgstr "" + +-#: config/ia64/ia64.h:210 ++#: config/ia64/ia64.h:215 + msgid "Generate inline square root, optimize for latency" + msgstr "" + +-#: config/ia64/ia64.h:212 ++#: config/ia64/ia64.h:217 + msgid "Generate inline square root, optimize for throughput" + msgstr "" + +-#: config/ia64/ia64.h:214 ++#: config/ia64/ia64.h:219 + msgid "Enable Dwarf 2 line debug info via GNU as" + msgstr "" + +-#: config/ia64/ia64.h:216 ++#: config/ia64/ia64.h:221 + msgid "Disable Dwarf 2 line debug info via GNU as" + msgstr "" + +-#: config/ia64/ia64.h:218 ++#: config/ia64/ia64.h:223 + msgid "Enable earlier placing stop bits for better scheduling" + msgstr "" + +-#: config/ia64/ia64.h:220 ++#: config/ia64/ia64.h:225 + msgid "Disable earlier placing stop bits" + msgstr "" + +-#: config/ia64/ia64.h:265 ++#: config/ia64/ia64.h:270 + msgid "Specify range of registers to make fixed" + msgstr "" + +@@ -10215,7 +10225,7 @@ + msgid "PRINT_OPERAND: Unknown punctuation '%c'" + msgstr "" + +-#: config/iq2000/iq2000.c:3478 config/mips/mips.c:5464 ++#: config/iq2000/iq2000.c:3478 config/mips/mips.c:5463 + #: config/xtensa/xtensa.c:1950 + msgid "PRINT_OPERAND null pointer" + msgstr "" +@@ -10225,12 +10235,12 @@ + msgid "invalid %%P operand" + msgstr "нерÑчаіÑны %%-код" + +-#: config/iq2000/iq2000.c:3555 config/rs6000/rs6000.c:9178 ++#: config/iq2000/iq2000.c:3555 config/rs6000/rs6000.c:9269 + #, c-format + msgid "invalid %%p value" + msgstr "" + +-#: config/iq2000/iq2000.c:3619 config/mips/mips.c:5594 ++#: config/iq2000/iq2000.c:3619 config/mips/mips.c:5593 + #, c-format + msgid "invalid use of %%d, %%x, or %%X" + msgstr "" +@@ -10286,48 +10296,48 @@ + msgid "bad value (%s) for -flush-trap=n (0= found without a %%< in assembler pattern" + msgstr "" + +-#: config/mips/mips.c:5441 ++#: config/mips/mips.c:5440 + #, c-format + msgid "internal error: %%} found without a %%{ in assembler pattern" + msgstr "" + +-#: config/mips/mips.c:5455 ++#: config/mips/mips.c:5454 + #, c-format + msgid "PRINT_OPERAND: unknown punctuation '%c'" + msgstr "" + +-#: config/mips/mips.c:5484 ++#: config/mips/mips.c:5483 + #, c-format + msgid "PRINT_OPERAND, invalid insn for %%C" + msgstr "" + +-#: config/mips/mips.c:5501 ++#: config/mips/mips.c:5500 + #, c-format + msgid "PRINT_OPERAND, invalid insn for %%N" + msgstr "" + +-#: config/mips/mips.c:5510 ++#: config/mips/mips.c:5509 + #, c-format + msgid "PRINT_OPERAND, invalid insn for %%F" + msgstr "" + +-#: config/mips/mips.c:5519 ++#: config/mips/mips.c:5518 + #, c-format + msgid "PRINT_OPERAND, invalid insn for %%W" + msgstr "" + +-#: config/mips/mips.c:5625 ++#: config/mips/mips.c:5624 + msgid "PRINT_OPERAND, invalid operand for relocation" + msgstr "" + +-#: config/mips/mips.c:8310 ++#: config/mips/mips.c:8324 + #, c-format + msgid "can not handle inconsistent calls to `%s'" + msgstr "" + +-#: config/mips/mips.c:9316 ++#: config/mips/mips.c:9333 + msgid "the cpu name must be lower case" + msgstr "" + +-#: config/mips/mips.c:9338 ++#: config/mips/mips.c:9355 + #, c-format + msgid "bad value (%s) for %s" + msgstr "" + +-#: config/mips/mips.c:9607 ++#: config/mips/mips.c:9624 + #, fuzzy, c-format + msgid "can't rewind temp file: %m" + msgstr "немагчыма Ñтварыць чаÑовы файл" + +-#: config/mips/mips.c:9611 ++#: config/mips/mips.c:9628 + #, fuzzy, c-format + msgid "can't write to output file: %m" + msgstr "не магу запіÑаць Ñž %s" + +-#: config/mips/mips.c:9614 ++#: config/mips/mips.c:9631 + #, fuzzy, c-format + msgid "can't read from temp file: %m" + msgstr "не магу прачытаць з %s" + +-#: config/mips/mips.c:9617 ++#: config/mips/mips.c:9634 + #, fuzzy, c-format + msgid "can't close temp file: %m" + msgstr "немагчыма зачыніць уваходзÑчы файл %s" +@@ -11121,7 +11131,7 @@ + + #. Output assembler code to FILE to increment profiler label # LABELNO + #. for profiling a function entry. +-#: config/mips/mips.h:2418 ++#: config/mips/mips.h:2430 + msgid "mips16 function profiling" + msgstr "" + +@@ -11694,175 +11704,184 @@ + msgid "junk at end of #pragma longcall" + msgstr "" + +-#: config/rs6000/rs6000.c:791 ++#: config/rs6000/rs6000.c:809 + msgid "-mmultiple is not supported on little endian systems" + msgstr "" + +-#: config/rs6000/rs6000.c:798 ++#: config/rs6000/rs6000.c:816 + msgid "-mstring is not supported on little endian systems" + msgstr "" + +-#: config/rs6000/rs6000.c:812 ++#: config/rs6000/rs6000.c:830 + #, c-format + msgid "unknown -mdebug-%s switch" + msgstr "" + +-#: config/rs6000/rs6000.c:824 ++#: config/rs6000/rs6000.c:842 + #, c-format + msgid "unknown -mtraceback arg `%s'; expecting `full', `partial' or `none'" + msgstr "" + +-#: config/rs6000/rs6000.c:835 ++#: config/rs6000/rs6000.c:853 + #, c-format + msgid "Unknown switch -mlong-double-%s" + msgstr "" + +-#: config/rs6000/rs6000.c:876 ++#: config/rs6000/rs6000.c:894 + msgid "AltiVec and E500 instructions cannot coexist" + msgstr "" + +-#: config/rs6000/rs6000.c:1029 ++#: config/rs6000/rs6000.c:1058 + #, fuzzy, c-format + msgid "unknown -m%s= option specified: '%s'" + msgstr "невÑдомы Ñ€Ñжым машыны \"%s\"" + +-#: config/rs6000/rs6000.c:1050 ++#: config/rs6000/rs6000.c:1079 + #, c-format + msgid "not configured for ABI: '%s'" + msgstr "" + +-#: config/rs6000/rs6000.c:1056 ++#: config/rs6000/rs6000.c:1085 + #, fuzzy, c-format + msgid "unknown ABI specified: '%s'" + msgstr "невÑдомы Ñ€Ñжым машыны \"%s\"" + +-#: config/rs6000/rs6000.c:1070 ++#: config/rs6000/rs6000.c:1099 + #, fuzzy, c-format + msgid "unknown -malign-XXXXX option specified: '%s'" + msgstr "невÑдомы Ñ€Ñжым машыны \"%s\"" + +-#: config/rs6000/rs6000.c:3972 ++#: config/rs6000/rs6000.c:4001 + msgid "Cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them." + msgstr "" + +-#: config/rs6000/rs6000.c:4095 ++#: config/rs6000/rs6000.c:4124 + msgid "Cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them." + msgstr "" + +-#: config/rs6000/rs6000.c:5599 ++#: config/rs6000/rs6000.c:5604 + #, fuzzy + msgid "argument 1 must be a 5-bit signed literal" + msgstr "першым аргументам \"%s\" павінен быць \"int\"" + +-#: config/rs6000/rs6000.c:5701 config/rs6000/rs6000.c:6357 ++#: config/rs6000/rs6000.c:5707 config/rs6000/rs6000.c:6374 + #, fuzzy + msgid "argument 2 must be a 5-bit unsigned literal" + msgstr "першым аргументам \"%s\" павінен быць \"int\"" + +-#: config/rs6000/rs6000.c:5741 ++#: config/rs6000/rs6000.c:5747 + #, fuzzy + msgid "argument 1 of __builtin_altivec_predicate must be a constant" + msgstr "аргумент `__builtin_args_info' павінен быць канÑтантай" + +-#: config/rs6000/rs6000.c:5795 ++#: config/rs6000/rs6000.c:5801 + #, fuzzy + msgid "argument 1 of __builtin_altivec_predicate is out of range" + msgstr "аргумент `__builtin_args_info' выйшаў за межы" + +-#: config/rs6000/rs6000.c:5956 ++#: config/rs6000/rs6000.c:5962 + #, fuzzy + msgid "argument 3 must be a 4-bit unsigned literal" + msgstr "першым аргументам \"%s\" павінен быць \"int\"" + +-#: config/rs6000/rs6000.c:6126 ++#: config/rs6000/rs6000.c:6134 + #, fuzzy, c-format + msgid "argument to `%s' must be a 2-bit unsigned literal" + msgstr "першым аргументам \"%s\" павінен быць \"int\"" + +-#: config/rs6000/rs6000.c:6239 ++#: config/rs6000/rs6000.c:6247 + #, fuzzy + msgid "argument to dss must be a 2-bit unsigned literal" + msgstr "першым аргументам \"%s\" павінен быць \"int\"" + +-#: config/rs6000/rs6000.c:6477 ++#: config/rs6000/rs6000.c:6261 ++#, c-format ++msgid "invalid parameter combination for `%s' AltiVec intrinsic" ++msgstr "" ++ ++#: config/rs6000/rs6000.c:6494 + #, fuzzy + msgid "argument 1 of __builtin_spe_predicate must be a constant" + msgstr "аргумент `__builtin_args_info' павінен быць канÑтантай" + +-#: config/rs6000/rs6000.c:6550 ++#: config/rs6000/rs6000.c:6567 + #, fuzzy + msgid "argument 1 of __builtin_spe_predicate is out of range" + msgstr "аргумент `__builtin_args_info' выйшаў за межы" + +-#: config/rs6000/rs6000.c:9008 ++#: config/rs6000/rs6000.c:9099 + #, c-format + msgid "invalid %%f value" + msgstr "" + +-#: config/rs6000/rs6000.c:9017 ++#: config/rs6000/rs6000.c:9108 + #, c-format + msgid "invalid %%F value" + msgstr "" + +-#: config/rs6000/rs6000.c:9026 ++#: config/rs6000/rs6000.c:9117 + #, c-format + msgid "invalid %%G value" + msgstr "" + +-#: config/rs6000/rs6000.c:9061 ++#: config/rs6000/rs6000.c:9152 + #, c-format + msgid "invalid %%j code" + msgstr "" + +-#: config/rs6000/rs6000.c:9071 ++#: config/rs6000/rs6000.c:9162 + #, c-format + msgid "invalid %%J code" + msgstr "" + +-#: config/rs6000/rs6000.c:9081 ++#: config/rs6000/rs6000.c:9172 + #, c-format + msgid "invalid %%k value" + msgstr "" + +-#: config/rs6000/rs6000.c:9101 config/xtensa/xtensa.c:2000 ++#: config/rs6000/rs6000.c:9192 config/xtensa/xtensa.c:2000 + #, c-format + msgid "invalid %%K value" + msgstr "" + +-#: config/rs6000/rs6000.c:9168 ++#: config/rs6000/rs6000.c:9259 + #, c-format + msgid "invalid %%O value" + msgstr "нерÑчаіÑнае значÑньне %%O" + +-#: config/rs6000/rs6000.c:9215 ++#: config/rs6000/rs6000.c:9306 + #, c-format + msgid "invalid %%q value" + msgstr "" + +-#: config/rs6000/rs6000.c:9259 ++#: config/rs6000/rs6000.c:9350 + #, c-format + msgid "invalid %%S value" + msgstr "" + +-#: config/rs6000/rs6000.c:9301 ++#: config/rs6000/rs6000.c:9392 + #, c-format + msgid "invalid %%T value" + msgstr "" + +-#: config/rs6000/rs6000.c:9311 ++#: config/rs6000/rs6000.c:9402 + #, c-format + msgid "invalid %%u value" + msgstr "" + +-#: config/rs6000/rs6000.c:9320 config/xtensa/xtensa.c:1970 ++#: config/rs6000/rs6000.c:9411 config/xtensa/xtensa.c:1970 + #, c-format + msgid "invalid %%v value" + msgstr "" + +-#: config/rs6000/rs6000.c:13815 ++#: config/rs6000/rs6000.c:13913 + msgid "no profiling of 64-bit code for this ABI" + msgstr "" + ++#: config/rs6000/rs6000.c:14986 ++msgid "use of 'long' in AltiVec types is deprecated; use 'int'" ++msgstr "" ++ + #: config/rs6000/aix.h:184 config/rs6000/beos.h:32 + msgid "Always pass floating-point arguments in memory" + msgstr "" +@@ -12115,18 +12134,22 @@ + msgstr "" + + #: config/rs6000/rs6000.h:468 ++msgid "Warn about deprecated 'vector long ...' AltiVec type usage" ++msgstr "" ++ ++#: config/rs6000/rs6000.h:471 + msgid "Determine which dependences between insns are considered costly" + msgstr "" + +-#: config/rs6000/rs6000.h:470 ++#: config/rs6000/rs6000.h:473 + msgid "Specify which post scheduling nop insertion scheme to apply" + msgstr "" + +-#: config/rs6000/rs6000.h:472 ++#: config/rs6000/rs6000.h:475 + msgid "Specify alignment of structure fields default/natural" + msgstr "" + +-#: config/rs6000/rs6000.h:474 ++#: config/rs6000/rs6000.h:477 + msgid "Specify scheduling priority for dispatch slot restricted insns" + msgstr "" + +@@ -12142,7 +12165,7 @@ + #. Number of bytes into the frame return addresses can be found. See + #. rs6000_stack_info in rs6000.c for more information on how the different + #. abi's store the return address. +-#: config/rs6000/rs6000.h:1923 ++#: config/rs6000/rs6000.h:1932 + msgid "RETURN_ADDRESS_OFFSET not supported" + msgstr "" + +@@ -12414,29 +12437,29 @@ + msgid "enable fused multiply/add instructions" + msgstr "Ðе генерыраваць ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ñ‹Ñ Ñ–Ð½Ñтрукцыі" + +-#: config/sh/sh.c:5977 ++#: config/sh/sh.c:5978 + #, fuzzy + msgid "__builtin_saveregs not supported by this subtarget" + msgstr "__buitin_saveregs не падтрымліваецца гÑтай мÑтай" + +-#: config/sh/sh.c:6879 ++#: config/sh/sh.c:6880 + msgid "attribute interrupt_handler is not compatible with -m5-compact" + msgstr "" + + #. The sp_switch attribute only has meaning for interrupt functions. +-#: config/sh/sh.c:6901 config/sh/sh.c:6936 ++#: config/sh/sh.c:6902 config/sh/sh.c:6937 + #, c-format + msgid "`%s' attribute only applies to interrupt functions" + msgstr "" + + #. The argument must be a constant string. +-#: config/sh/sh.c:6908 ++#: config/sh/sh.c:6909 + #, c-format + msgid "`%s' attribute argument not a string constant" + msgstr "" + + #. The argument must be a constant integer. +-#: config/sh/sh.c:6943 ++#: config/sh/sh.c:6944 + #, c-format + msgid "`%s' attribute argument not an integer constant" + msgstr "" +@@ -12449,69 +12472,69 @@ + msgid "Profiling is not supported on this target." + msgstr "__buitin_saveregs не падтрымліваецца гÑтай мÑтай" + +-#: config/sparc/sparc.c:360 ++#: config/sparc/sparc.c:362 + #, c-format + msgid "%s is not supported by this configuration" + msgstr "" + +-#: config/sparc/sparc.c:367 ++#: config/sparc/sparc.c:369 + msgid "-mlong-double-64 not allowed with -m64" + msgstr "" + +-#: config/sparc/sparc.c:392 ++#: config/sparc/sparc.c:394 + msgid "-mcmodel= is not supported on 32 bit systems" + msgstr "" + +-#: config/sparc/sparc.c:6818 config/sparc/sparc.c:6824 ++#: config/sparc/sparc.c:6960 config/sparc/sparc.c:6966 + #, c-format + msgid "invalid %%Y operand" + msgstr "нерÑчаіÑны %%Y аперанд" + +-#: config/sparc/sparc.c:6894 ++#: config/sparc/sparc.c:7036 + #, c-format + msgid "invalid %%A operand" + msgstr "нерÑчаіÑны %%A аперанд" + +-#: config/sparc/sparc.c:6904 ++#: config/sparc/sparc.c:7046 + #, c-format + msgid "invalid %%B operand" + msgstr "нерÑчаіÑны %%B аперанд" + +-#: config/sparc/sparc.c:6943 ++#: config/sparc/sparc.c:7085 + #, c-format + msgid "invalid %%c operand" + msgstr "нерÑчаіÑны %%c аперанд" + +-#: config/sparc/sparc.c:6944 ++#: config/sparc/sparc.c:7086 + #, c-format + msgid "invalid %%C operand" + msgstr "нерÑчаіÑны %%C аперанд" + +-#: config/sparc/sparc.c:6965 ++#: config/sparc/sparc.c:7107 + #, c-format + msgid "invalid %%d operand" + msgstr "нерÑчаіÑны %%d аперанд" + +-#: config/sparc/sparc.c:6966 ++#: config/sparc/sparc.c:7108 + #, c-format + msgid "invalid %%D operand" + msgstr "нерÑчаіÑны %%D аперанд" + +-#: config/sparc/sparc.c:6982 ++#: config/sparc/sparc.c:7124 + #, c-format + msgid "invalid %%f operand" + msgstr "нерÑчаіÑны %%f аперанд" + +-#: config/sparc/sparc.c:6996 ++#: config/sparc/sparc.c:7138 + #, fuzzy, c-format + msgid "invalid %%s operand" + msgstr "нерÑчаіÑны %%f аперанд" + +-#: config/sparc/sparc.c:7050 ++#: config/sparc/sparc.c:7192 + msgid "long long constant not a valid immediate operand" + msgstr "" + +-#: config/sparc/sparc.c:7053 ++#: config/sparc/sparc.c:7195 + msgid "floating point constant not a valid immediate operand" + msgstr "" + +@@ -13003,265 +13026,265 @@ + msgid "`-gnat' misspelled as `-gant'" + msgstr "" + +-#: cp/call.c:217 ++#: cp/call.c:219 + msgid "unable to call pointer to member function here" + msgstr "" + +-#: cp/call.c:2228 ++#: cp/call.c:2238 + msgid "%s %D(%T, %T, %T) " + msgstr "" + +-#: cp/call.c:2233 ++#: cp/call.c:2243 + msgid "%s %D(%T, %T) " + msgstr "" + +-#: cp/call.c:2237 ++#: cp/call.c:2247 + msgid "%s %D(%T) " + msgstr "" + +-#: cp/call.c:2241 ++#: cp/call.c:2251 + msgid "%s %T " + msgstr "" + +-#: cp/call.c:2243 ++#: cp/call.c:2253 + msgid "%J%s %+#D " + msgstr "" + +-#: cp/call.c:2245 ++#: cp/call.c:2255 + msgid "%J%s %+#D" + msgstr "" + +-#: cp/call.c:2280 ++#: cp/call.c:2290 + msgid "candidates are:" + msgstr "" + +-#: cp/call.c:2468 ++#: cp/call.c:2478 + msgid "conversion from `%T' to `%T' is ambiguous" + msgstr "" + +-#: cp/call.c:2619 cp/call.c:2663 ++#: cp/call.c:2629 cp/call.c:2673 + msgid "no matching function for call to `%D(%A)'" + msgstr "" + +-#: cp/call.c:2622 cp/call.c:2666 ++#: cp/call.c:2632 cp/call.c:2676 + msgid "call of overloaded `%D(%A)' is ambiguous" + msgstr "" + + #. It's no good looking for an overloaded operator() on a + #. pointer-to-member-function. +-#: cp/call.c:2732 ++#: cp/call.c:2742 + #, c-format + msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*" + msgstr "" + +-#: cp/call.c:2798 ++#: cp/call.c:2808 + msgid "no match for call to `(%T) (%A)'" + msgstr "" + +-#: cp/call.c:2806 ++#: cp/call.c:2816 + msgid "call of `(%T) (%A)' is ambiguous" + msgstr "" + +-#: cp/call.c:2839 ++#: cp/call.c:2849 + #, c-format + msgid "%s for ternary 'operator?:' in '%E ? %E : %E'" + msgstr "" + +-#: cp/call.c:2845 ++#: cp/call.c:2855 + #, fuzzy, c-format + msgid "%s for 'operator%s' in '%E%s'" + msgstr "%s перад знакам \"%s\"" + +-#: cp/call.c:2849 ++#: cp/call.c:2859 + #, c-format + msgid "%s for 'operator[]' in '%E[%E]'" + msgstr "" + +-#: cp/call.c:2854 ++#: cp/call.c:2864 + #, fuzzy, c-format + msgid "%s for '%s' in '%s %E'" + msgstr "прапушчана поле '%s' у '%s'" + +-#: cp/call.c:2859 ++#: cp/call.c:2869 + #, c-format + msgid "%s for 'operator%s' in '%E %s %E'" + msgstr "" + +-#: cp/call.c:2862 ++#: cp/call.c:2872 + #, fuzzy, c-format + msgid "%s for 'operator%s' in '%s%E'" + msgstr "%s перад знакам \"%s\"" + +-#: cp/call.c:2951 ++#: cp/call.c:2961 + msgid "ISO C++ forbids omitting the middle term of a ?: expression" + msgstr "" + +-#: cp/call.c:3028 ++#: cp/call.c:3038 + #, c-format + msgid "`%E' has type `void' and is not a throw-expression" + msgstr "" + +-#: cp/call.c:3061 cp/call.c:3265 ++#: cp/call.c:3071 cp/call.c:3275 + msgid "operands to ?: have different types" + msgstr "" + +-#: cp/call.c:3219 ++#: cp/call.c:3229 + msgid "enumeral mismatch in conditional expression: `%T' vs `%T'" + msgstr "" + +-#: cp/call.c:3226 ++#: cp/call.c:3236 + msgid "enumeral and non-enumeral type in conditional expression" + msgstr "" + +-#: cp/call.c:3511 ++#: cp/call.c:3521 + msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead" + msgstr "" + +-#: cp/call.c:3560 ++#: cp/call.c:3570 + msgid "using synthesized `%#D' for copy assignment" + msgstr "" + +-#: cp/call.c:3562 ++#: cp/call.c:3572 + msgid " where cfront would use `%#D'" + msgstr "" + +-#: cp/call.c:3585 ++#: cp/call.c:3595 + msgid "comparison between `%#T' and `%#T'" + msgstr "" + +-#: cp/call.c:3831 ++#: cp/call.c:3841 + #, fuzzy + msgid "no suitable `operator %s' for `%T'" + msgstr "немагчымы апÑратар '%s'" + +-#: cp/call.c:3848 ++#: cp/call.c:3858 + msgid "`%+#D' is private" + msgstr "" + +-#: cp/call.c:3850 ++#: cp/call.c:3860 + msgid "`%+#D' is protected" + msgstr "" + +-#: cp/call.c:3852 ++#: cp/call.c:3862 + msgid "`%+#D' is inaccessible" + msgstr "" + +-#: cp/call.c:3853 ++#: cp/call.c:3863 + msgid "within this context" + msgstr "" + +-#: cp/call.c:3923 ++#: cp/call.c:3947 + msgid "invalid conversion from `%T' to `%T'" + msgstr "" + +-#: cp/call.c:3925 ++#: cp/call.c:3949 + msgid " initializing argument %P of `%D'" + msgstr "" + +-#: cp/call.c:4079 ++#: cp/call.c:4094 + #, fuzzy + msgid "cannot bind bitfield `%E' to `%T'" + msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\"" + +-#: cp/call.c:4082 ++#: cp/call.c:4097 + #, fuzzy + msgid "cannot bind packed field `%E' to `%T'" + msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\"" + +-#: cp/call.c:4085 ++#: cp/call.c:4100 + #, fuzzy + msgid "cannot bind rvalue `%E' to `%T'" + msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\"" + +-#: cp/call.c:4170 ++#: cp/call.c:4185 + msgid "cannot pass objects of non-POD type `%#T' through `...'; call will abort at runtime" + msgstr "" + + #. Undefined behavior [expr.call] 5.2.2/7. +-#: cp/call.c:4196 ++#: cp/call.c:4211 + msgid "cannot receive objects of non-POD type `%#T' through `...'; call will abort at runtime" + msgstr "" + +-#: cp/call.c:4240 ++#: cp/call.c:4255 + #, fuzzy + msgid "the default argument for parameter %d of `%D' has not yet been parsed" + msgstr "звычайны аргумÑнт Ð´Ð»Ñ `%#D' мае тып `%T'" + +-#: cp/call.c:4437 ++#: cp/call.c:4452 + msgid "passing `%T' as `this' argument of `%#D' discards qualifiers" + msgstr "" + +-#: cp/call.c:4456 ++#: cp/call.c:4471 + msgid "`%T' is not an accessible base of `%T'" + msgstr "" + +-#: cp/call.c:4725 ++#: cp/call.c:4740 + msgid "could not find class$ field in java interface type `%T'" + msgstr "" + +-#: cp/call.c:4980 ++#: cp/call.c:4995 + #, fuzzy + msgid "call to non-function `%D'" + msgstr "у функцыі \"%s\":" + +-#: cp/call.c:5006 ++#: cp/call.c:5021 + msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'" + msgstr "" + +-#: cp/call.c:5084 ++#: cp/call.c:5099 + msgid "no matching function for call to `%T::%s(%A)%#V'" + msgstr "" + +-#: cp/call.c:5101 ++#: cp/call.c:5116 + #, fuzzy, c-format + msgid "call of overloaded `%s(%A)' is ambiguous" + msgstr "памер \"%s\" - %d байт" + +-#: cp/call.c:5122 ++#: cp/call.c:5137 + msgid "cannot call member function `%D' without object" + msgstr "" + +-#: cp/call.c:5707 ++#: cp/call.c:5722 + msgid "passing `%T' chooses `%T' over `%T'" + msgstr "" + +-#: cp/call.c:5709 cp/name-lookup.c:4155 ++#: cp/call.c:5724 cp/name-lookup.c:4137 + msgid " in call to `%D'" + msgstr "" + +-#: cp/call.c:5766 ++#: cp/call.c:5781 + msgid "choosing `%D' over `%D'" + msgstr "" + +-#: cp/call.c:5767 ++#: cp/call.c:5782 + msgid " for conversion from `%T' to `%T'" + msgstr "" + +-#: cp/call.c:5769 ++#: cp/call.c:5784 + msgid " because conversion sequence for the argument is better" + msgstr "" + +-#: cp/call.c:5889 ++#: cp/call.c:5904 + msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:" + msgstr "" + +-#: cp/call.c:5893 ++#: cp/call.c:5908 + msgid "candidate 1:" + msgstr "" + +-#: cp/call.c:5894 ++#: cp/call.c:5909 + msgid "candidate 2:" + msgstr "" + +-#: cp/call.c:6003 ++#: cp/call.c:6018 + msgid "could not convert `%E' to `%T'" + msgstr "" + +-#: cp/call.c:6108 ++#: cp/call.c:6123 + msgid "invalid initialization of non-const reference of type '%T' from a temporary of type '%T'" + msgstr "" + +-#: cp/call.c:6112 ++#: cp/call.c:6127 + msgid "invalid initialization of reference of type '%T' from expression of type '%T'" + msgstr "" + +@@ -13336,222 +13359,222 @@ + msgid "`%#T' only defines private constructors and has no friends" + msgstr "" + +-#: cp/class.c:1995 ++#: cp/class.c:2038 + msgid "no unique final overrider for `%D' in `%T'" + msgstr "" + + #. Here we know it is a hider, and no overrider exists. +-#: cp/class.c:2441 ++#: cp/class.c:2484 + msgid "`%D' was hidden" + msgstr "" + +-#: cp/class.c:2442 ++#: cp/class.c:2485 + msgid " by `%D'" + msgstr "" + +-#: cp/class.c:2484 cp/decl2.c:1161 ++#: cp/class.c:2527 cp/decl2.c:1161 + msgid "`%#D' invalid; an anonymous union can only have non-static data members" + msgstr "" + +-#: cp/class.c:2490 cp/decl2.c:1168 ++#: cp/class.c:2533 cp/decl2.c:1168 + msgid "private member `%#D' in anonymous union" + msgstr "" + +-#: cp/class.c:2493 cp/decl2.c:1170 ++#: cp/class.c:2536 cp/decl2.c:1170 + msgid "protected member `%#D' in anonymous union" + msgstr "" + +-#: cp/class.c:2612 ++#: cp/class.c:2655 + msgid "vtable layout for class `%T' may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor" + msgstr "" + +-#: cp/class.c:2672 ++#: cp/class.c:2715 + #, fuzzy + msgid "bit-field `%#D' with non-integral type" + msgstr "бітавае поле \"%s\" мае нерÑчаіÑны тып" + +-#: cp/class.c:2692 ++#: cp/class.c:2735 + msgid "bit-field `%D' width not an integer constant" + msgstr "" + +-#: cp/class.c:2698 ++#: cp/class.c:2741 + msgid "negative width in bit-field `%D'" + msgstr "" + +-#: cp/class.c:2703 ++#: cp/class.c:2746 + msgid "zero width for bit-field `%D'" + msgstr "" + +-#: cp/class.c:2709 ++#: cp/class.c:2752 + msgid "width of `%D' exceeds its type" + msgstr "" + +-#: cp/class.c:2718 ++#: cp/class.c:2761 + msgid "`%D' is too small to hold all values of `%#T'" + msgstr "" + +-#: cp/class.c:2780 ++#: cp/class.c:2823 + msgid "member `%#D' with constructor not allowed in union" + msgstr "" + +-#: cp/class.c:2783 ++#: cp/class.c:2826 + msgid "member `%#D' with destructor not allowed in union" + msgstr "" + +-#: cp/class.c:2786 ++#: cp/class.c:2829 + msgid "member `%#D' with copy assignment operator not allowed in union" + msgstr "" + +-#: cp/class.c:2813 ++#: cp/class.c:2856 + msgid "multiple fields in union `%T' initialized" + msgstr "" + +-#: cp/class.c:2879 ++#: cp/class.c:2922 + msgid "ignoring packed attribute on unpacked non-POD field `%#D'" + msgstr "" + +-#: cp/class.c:2939 ++#: cp/class.c:2982 + msgid "`%D' may not be static because it is a member of a union" + msgstr "" + +-#: cp/class.c:2944 ++#: cp/class.c:2987 + msgid "`%D' may not have reference type `%T' because it is a member of a union" + msgstr "" + +-#: cp/class.c:2952 ++#: cp/class.c:2995 + msgid "field `%D' in local class cannot be static" + msgstr "" + +-#: cp/class.c:2958 ++#: cp/class.c:3001 + msgid "field `%D' invalidly declared function type" + msgstr "" + +-#: cp/class.c:2965 ++#: cp/class.c:3008 + #, fuzzy + msgid "field `%D' invalidly declared method type" + msgstr "бітавае поле \"%s\" мае нерÑчаіÑны тып" + +-#: cp/class.c:2998 ++#: cp/class.c:3041 + msgid "non-static reference `%#D' in class without a constructor" + msgstr "" + +-#: cp/class.c:3041 ++#: cp/class.c:3084 + msgid "non-static const member `%#D' in class without a constructor" + msgstr "" + +-#: cp/class.c:3056 ++#: cp/class.c:3099 + msgid "field `%#D' with same name as class" + msgstr "" + +-#: cp/class.c:3074 ++#: cp/class.c:3117 + msgid "`%#T' has pointer data members" + msgstr "" + +-#: cp/class.c:3078 ++#: cp/class.c:3121 + msgid " but does not override `%T(const %T&)'" + msgstr "" + +-#: cp/class.c:3080 ++#: cp/class.c:3123 + msgid " or `operator=(const %T&)'" + msgstr "" + +-#: cp/class.c:3083 ++#: cp/class.c:3126 + msgid " but does not override `operator=(const %T&)'" + msgstr "" + +-#: cp/class.c:3517 ++#: cp/class.c:3560 + msgid "offset of empty base `%T' may not be ABI-compliant and maychange in a future version of GCC" + msgstr "" + +-#: cp/class.c:3627 ++#: cp/class.c:3670 + msgid "class `%T' will be considered nearly empty in a future version of GCC" + msgstr "" + +-#: cp/class.c:3714 ++#: cp/class.c:3757 + msgid "initializer specified for non-virtual method `%D'" + msgstr "" + +-#: cp/class.c:4402 ++#: cp/class.c:4445 + msgid "offset of virtual base `%T' is not ABI-compliant and may change in a future version of GCC" + msgstr "" + +-#: cp/class.c:4492 ++#: cp/class.c:4535 + msgid "direct base `%T' inaccessible in `%T' due to ambiguity" + msgstr "" + +-#: cp/class.c:4505 ++#: cp/class.c:4548 + msgid "virtual base `%T' inaccessible in `%T' due to ambiguity" + msgstr "" + +-#: cp/class.c:4679 ++#: cp/class.c:4722 + msgid "size assigned to `%T' may not be ABI-compliant and may change in a future version of GCC" + msgstr "" + + #. Versions of G++ before G++ 3.4 did not reset the + #. DECL_MODE. +-#: cp/class.c:4718 ++#: cp/class.c:4761 + msgid "the offset of `%D' may not be ABI-compliant and may change in a future version of GCC" + msgstr "" + +-#: cp/class.c:4741 ++#: cp/class.c:4784 + msgid "offset of `%D' is not ABI-compliant and may change in a future version of GCC" + msgstr "" + +-#: cp/class.c:4750 ++#: cp/class.c:4793 + msgid "`%D' contains empty classes which may cause base classes to be placed at different locations in a future version of GCC" + msgstr "" + +-#: cp/class.c:4809 ++#: cp/class.c:4852 + msgid "layout of classes derived from empty class `%T' may change in a future version of GCC" + msgstr "" + +-#: cp/class.c:4939 cp/semantics.c:2044 ++#: cp/class.c:4982 cp/semantics.c:2041 + msgid "redefinition of `%#T'" + msgstr "" + +-#: cp/class.c:5109 ++#: cp/class.c:5152 + msgid "`%#T' has virtual functions but non-virtual destructor" + msgstr "" + +-#: cp/class.c:5188 ++#: cp/class.c:5231 + msgid "trying to finish struct, but kicked out due to previous parse errors" + msgstr "" + +-#: cp/class.c:5630 ++#: cp/class.c:5673 + #, c-format + msgid "language string `\"%s\"' not recognized" + msgstr "" + +-#: cp/class.c:5718 ++#: cp/class.c:5761 + msgid "cannot resolve overloaded function `%D' based on conversion to type `%T'" + msgstr "" + +-#: cp/class.c:5843 ++#: cp/class.c:5886 + msgid "no matches converting function `%D' to type `%#T'" + msgstr "" + +-#: cp/class.c:5866 ++#: cp/class.c:5909 + msgid "converting overloaded function `%D' to type `%#T' is ambiguous" + msgstr "" + +-#: cp/class.c:5892 ++#: cp/class.c:5935 + msgid "assuming pointer to member `%D'" + msgstr "" + +-#: cp/class.c:5895 ++#: cp/class.c:5938 + #, c-format + msgid "(a pointer to member can only be formed with `&%E')" + msgstr "" + +-#: cp/class.c:5940 cp/class.c:6122 cp/class.c:6129 ++#: cp/class.c:5983 cp/class.c:6165 cp/class.c:6172 + msgid "not enough type information" + msgstr "" + +-#: cp/class.c:5957 ++#: cp/class.c:6000 + msgid "argument of type `%T' does not match `%T'" + msgstr "" + +-#: cp/class.c:6106 ++#: cp/class.c:6149 + msgid "invalid operation on uninstantiated type" + msgstr "" + +@@ -13560,11 +13583,11 @@ + #. A name N used in a class S shall refer to the same declaration + #. in its context and when re-evaluated in the completed scope of + #. S. +-#: cp/class.c:6364 cp/decl.c:1222 cp/name-lookup.c:514 cp/pt.c:2097 ++#: cp/class.c:6407 cp/decl.c:1223 cp/name-lookup.c:514 cp/pt.c:2125 + msgid "declaration of `%#D'" + msgstr "абвÑшчÑньне `%#D'" + +-#: cp/class.c:6365 ++#: cp/class.c:6408 + msgid "changes meaning of `%D' from `%+#D'" + msgstr "" + +@@ -13667,157 +13690,174 @@ + msgid " candidate conversions include `%D' and `%D'" + msgstr "" + +-#: cp/decl.c:371 ++#: cp/decl.c:372 + msgid "label `%D' used but not defined" + msgstr "адмеціна `%D' выкарыÑтоўвываецца, але Ð½Ñ Ð²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ð°" + +-#: cp/decl.c:378 ++#: cp/decl.c:379 + msgid "label `%D' defined but not used" + msgstr "адмеціна `%D' вызначана, але не выкарыÑтоўваецца" + +-#: cp/decl.c:1130 cp/decl.c:1556 ++#: cp/decl.c:1131 cp/decl.c:1570 + msgid "previous declaration of `%D'" + msgstr "папÑÑ€ÑднÑе абвÑшчÑньне `%D'" + +-#: cp/decl.c:1178 ++#: cp/decl.c:1179 + #, fuzzy + msgid "%Jfunction '%D' redeclared as inline" + msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)" + +-#: cp/decl.c:1179 ++#: cp/decl.c:1180 + #, fuzzy + msgid "%Jprevious declaration of '%D' with attribute noinline" + msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\"" + +-#: cp/decl.c:1186 ++#: cp/decl.c:1187 + #, fuzzy + msgid "%Jfunction '%D' redeclared with attribute noinline" + msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)" + +-#: cp/decl.c:1188 ++#: cp/decl.c:1189 + #, fuzzy + msgid "%Jprevious declaration of '%D' was inline" + msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\"" + +-#: cp/decl.c:1209 cp/decl.c:1247 ++#: cp/decl.c:1210 cp/decl.c:1248 + #, fuzzy + msgid "shadowing %s function `%#D'" + msgstr "у функцыі \"%s\":" + +-#: cp/decl.c:1218 ++#: cp/decl.c:1219 + msgid "library function `%#D' redeclared as non-function `%#D'" + msgstr "" + +-#: cp/decl.c:1223 ++#: cp/decl.c:1224 + #, fuzzy + msgid "conflicts with built-in declaration `%#D'" + msgstr "паўторнае абвÑшчÑнне меткі \"%s\"" + +-#: cp/decl.c:1242 cp/decl.c:1354 cp/decl.c:1370 ++#: cp/decl.c:1243 cp/decl.c:1355 cp/decl.c:1371 + msgid "new declaration `%#D'" + msgstr "новае абвÑшчÑньне `%#D'" + +-#: cp/decl.c:1243 ++#: cp/decl.c:1244 + #, fuzzy + msgid "ambiguates built-in declaration `%#D'" + msgstr "паўторнае абвÑшчÑнне меткі \"%s\"" + +-#: cp/decl.c:1314 ++#: cp/decl.c:1315 + msgid "`%#D' redeclared as different kind of symbol" + msgstr "" + +-#: cp/decl.c:1317 ++#: cp/decl.c:1318 + msgid "previous declaration of `%#D'" + msgstr "папÑÑ€ÑднÑе абвÑшчÑньне `%#D'" + +-#: cp/decl.c:1339 ++#: cp/decl.c:1340 + msgid "declaration of template `%#D'" + msgstr "абвÑшчÑньне шаблёну `%#D'" + +-#: cp/decl.c:1340 cp/name-lookup.c:515 ++#: cp/decl.c:1341 cp/name-lookup.c:515 + msgid "conflicts with previous declaration `%#D'" + msgstr "канфлікт з папÑÑ€Ñднім абвÑшчÑньнем `%#D'" + +-#: cp/decl.c:1355 cp/decl.c:1371 ++#: cp/decl.c:1356 cp/decl.c:1372 + #, fuzzy + msgid "ambiguates old declaration `%#D'" + msgstr "паўторнае абвÑшчÑнне меткі \"%s\"" + +-#: cp/decl.c:1363 ++#: cp/decl.c:1364 + msgid "declaration of C function `%#D' conflicts with" + msgstr "" + +-#: cp/decl.c:1365 ++#: cp/decl.c:1366 + #, fuzzy + msgid "previous declaration `%#D' here" + msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\"" + +-#: cp/decl.c:1381 ++#: cp/decl.c:1382 + #, fuzzy + msgid "conflicting declaration '%#D'" + msgstr "паўторнае абвÑшчÑнне меткі \"%s\"" + +-#: cp/decl.c:1382 ++#: cp/decl.c:1383 + #, fuzzy + msgid "'%D' has a previous declaration as `%#D'" + msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\"" + +-#: cp/decl.c:1435 ++#. [namespace.alias] ++#. ++#. A namespace-name or namespace-alias shall not be declared as ++#. the name of any other entity in the same declarative region. ++#. A namespace-name defined at global scope shall not be ++#. declared as the name of any other entity in any glogal scope ++#. of the program. ++#: cp/decl.c:1436 ++#, fuzzy ++msgid "declaration of `namespace %D' conflicts with" ++msgstr "абвÑшчÑньне шаблёну `%#D'" ++ ++#: cp/decl.c:1437 ++#, fuzzy ++msgid "previous declaration of `namespace %D' here" ++msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\"" ++ ++#: cp/decl.c:1449 + msgid "`%#D' previously defined here" + msgstr "" + +-#: cp/decl.c:1436 ++#: cp/decl.c:1450 + msgid "`%#D' previously declared here" + msgstr "" + + #. Prototype decl follows defn w/o prototype. +-#: cp/decl.c:1445 ++#: cp/decl.c:1459 + #, fuzzy + msgid "prototype for `%#D'" + msgstr "нÑма папÑÑ€ÑднÑга прататыпа Ð´Ð»Ñ \"%s\"" + +-#: cp/decl.c:1446 ++#: cp/decl.c:1460 + #, fuzzy + msgid "%Jfollows non-prototype definition here" + msgstr "папÑÑ€ÑднÑе вызначÑньне" + +-#: cp/decl.c:1458 ++#: cp/decl.c:1472 + #, fuzzy + msgid "previous declaration of `%#D' with %L linkage" + msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\"" + +-#: cp/decl.c:1460 ++#: cp/decl.c:1474 + msgid "conflicts with new declaration with %L linkage" + msgstr "" + +-#: cp/decl.c:1483 cp/decl.c:1490 ++#: cp/decl.c:1497 cp/decl.c:1504 + msgid "default argument given for parameter %d of `%#D'" + msgstr "" + +-#: cp/decl.c:1485 cp/decl.c:1492 ++#: cp/decl.c:1499 cp/decl.c:1506 + #, fuzzy + msgid "after previous specification in `%#D'" + msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\"" + +-#: cp/decl.c:1501 ++#: cp/decl.c:1515 + msgid "`%#D' was used before it was declared inline" + msgstr "" + +-#: cp/decl.c:1502 ++#: cp/decl.c:1516 + #, fuzzy + msgid "%Jprevious non-inline declaration here" + msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\"" + +-#: cp/decl.c:1555 ++#: cp/decl.c:1569 + msgid "redundant redeclaration of `%D' in same scope" + msgstr "" + +-#: cp/decl.c:1649 ++#: cp/decl.c:1663 + #, c-format + msgid "declaration of `%F' throws different exceptions" + msgstr "" + +-#: cp/decl.c:1651 ++#: cp/decl.c:1665 + #, fuzzy, c-format + msgid "than previous declaration `%F'" + msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\"" +@@ -13830,513 +13870,531 @@ + #. that specialization that would cause an implicit + #. instantiation to take place, in every translation unit in + #. which such a use occurs. +-#: cp/decl.c:1798 ++#: cp/decl.c:1812 + msgid "explicit specialization of %D after first use" + msgstr "" + +-#: cp/decl.c:1878 ++#: cp/decl.c:1892 + msgid "%J'%D': visibility attribute ignored because it" + msgstr "" + +-#: cp/decl.c:1880 ++#: cp/decl.c:1894 + #, fuzzy + msgid "%Jconflicts with previous declaration here" + msgstr "канфлікт з папÑÑ€Ñднім абвÑшчÑньнем `%#D'" + +-#: cp/decl.c:1974 ++#: cp/decl.c:1988 + #, fuzzy + msgid "implicit declaration of function `%#D'" + msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\"" + +-#: cp/decl.c:2137 ++#: cp/decl.c:2151 + #, c-format + msgid "label `%s' referenced outside of any function" + msgstr "" + +-#: cp/decl.c:2234 cp/decl.c:2258 cp/decl.c:2346 ++#: cp/decl.c:2248 cp/decl.c:2272 cp/decl.c:2360 + msgid "jump to label `%D'" + msgstr "" + +-#: cp/decl.c:2236 cp/decl.c:2260 ++#: cp/decl.c:2250 cp/decl.c:2274 + msgid "jump to case label" + msgstr "" + +-#: cp/decl.c:2239 cp/decl.c:2263 ++#: cp/decl.c:2253 cp/decl.c:2277 + #, fuzzy + msgid "%H from here" + msgstr " адÑюль" + +-#: cp/decl.c:2244 ++#: cp/decl.c:2258 + msgid " crosses initialization of `%#D'" + msgstr "" + +-#: cp/decl.c:2247 cp/decl.c:2362 ++#: cp/decl.c:2261 cp/decl.c:2376 + msgid " enters scope of non-POD `%#D'" + msgstr "" + +-#: cp/decl.c:2267 cp/decl.c:2366 ++#: cp/decl.c:2281 cp/decl.c:2380 + msgid " enters try block" + msgstr "" + +-#: cp/decl.c:2269 cp/decl.c:2368 ++#: cp/decl.c:2283 cp/decl.c:2382 + msgid " enters catch block" + msgstr "" + +-#: cp/decl.c:2347 ++#: cp/decl.c:2361 + msgid " from here" + msgstr " адÑюль" + + #. Can't skip init of __exception_info. +-#: cp/decl.c:2358 ++#: cp/decl.c:2372 + msgid "%J enters catch block" + msgstr "" + +-#: cp/decl.c:2360 ++#: cp/decl.c:2374 + #, fuzzy + msgid " skips initialization of `%#D'" + msgstr "ініцыÑлізацыÑ" + +-#: cp/decl.c:2394 ++#: cp/decl.c:2408 + msgid "label named wchar_t" + msgstr "" + +-#: cp/decl.c:2397 ++#: cp/decl.c:2411 + #, fuzzy + msgid "duplicate label `%D'" + msgstr "паўтарÑнне \"%s\"" + +-#: cp/decl.c:2625 cp/parser.c:3182 ++#: cp/decl.c:2639 cp/parser.c:3192 + msgid "`%D' used without template parameters" + msgstr "" + +-#: cp/decl.c:2635 cp/decl.c:2651 cp/decl.c:2739 ++#: cp/decl.c:2649 cp/decl.c:2665 cp/decl.c:2753 + msgid "no class template named `%#T' in `%#T'" + msgstr "" + +-#: cp/decl.c:2672 cp/decl.c:2682 cp/decl.c:2702 ++#: cp/decl.c:2686 cp/decl.c:2696 cp/decl.c:2716 + msgid "no type named `%#T' in `%#T'" + msgstr "" + +-#: cp/decl.c:3429 ++#: cp/decl.c:3443 + msgid "%Jan anonymous union cannot have function members" + msgstr "" + +-#: cp/decl.c:3447 ++#: cp/decl.c:3461 + msgid "member %#D' with constructor not allowed in anonymous aggregate" + msgstr "" + +-#: cp/decl.c:3450 ++#: cp/decl.c:3464 + msgid "member %#D' with destructor not allowed in anonymous aggregate" + msgstr "" + +-#: cp/decl.c:3453 ++#: cp/decl.c:3467 + msgid "member %#D' with copy assignment operator not allowed in anonymous aggregate" + msgstr "" + +-#: cp/decl.c:3493 ++#: cp/decl.c:3507 + msgid "redeclaration of C++ built-in type `%T'" + msgstr "" + +-#: cp/decl.c:3531 ++#: cp/decl.c:3545 + msgid "multiple types in one declaration" + msgstr "" + +-#: cp/decl.c:3557 ++#: cp/decl.c:3571 + msgid "missing type-name in typedef-declaration" + msgstr "" + +-#: cp/decl.c:3565 ++#: cp/decl.c:3579 + msgid "ISO C++ prohibits anonymous structs" + msgstr "" + +-#: cp/decl.c:3572 ++#: cp/decl.c:3586 + msgid "`%D' can only be specified for functions" + msgstr "" + +-#: cp/decl.c:3574 ++#: cp/decl.c:3588 + msgid "`%D' can only be specified inside a class" + msgstr "" + +-#: cp/decl.c:3576 ++#: cp/decl.c:3590 + msgid "`%D' can only be specified for constructors" + msgstr "" + +-#: cp/decl.c:3579 ++#: cp/decl.c:3593 + msgid "`%D' can only be specified for objects and functions" + msgstr "" + +-#: cp/decl.c:3721 cp/decl2.c:855 ++#: cp/decl.c:3735 cp/decl2.c:855 + #, fuzzy + msgid "typedef `%D' is initialized (use __typeof__ instead)" + msgstr "параметр \"%s\" ініцыÑлізаваны" + +-#: cp/decl.c:3726 ++#: cp/decl.c:3740 + msgid "function `%#D' is initialized like a variable" + msgstr "" + +-#: cp/decl.c:3738 ++#: cp/decl.c:3752 + msgid "declaration of `%#D' has `extern' and is initialized" + msgstr "" + +-#: cp/decl.c:3771 ++#: cp/decl.c:3785 + msgid "`%#D' is not a static member of `%#T'" + msgstr "" + +-#: cp/decl.c:3777 ++#: cp/decl.c:3791 + msgid "ISO C++ does not permit `%T::%D' to be defined as `%T::%D'" + msgstr "" + +-#: cp/decl.c:3788 ++#: cp/decl.c:3802 + msgid "duplicate initialization of %D" + msgstr "" + +-#: cp/decl.c:3819 ++#: cp/decl.c:3833 + msgid "declaration of `%#D' outside of class is not definition" + msgstr "" + +-#: cp/decl.c:3868 ++#: cp/decl.c:3882 + #, fuzzy + msgid "variable `%#D' has initializer but incomplete type" + msgstr "\"%s\" мае незавершаны тып" + +-#: cp/decl.c:3876 cp/decl.c:4445 ++#: cp/decl.c:3890 cp/decl.c:4500 + #, fuzzy + msgid "elements of array `%#D' have incomplete type" + msgstr "\"%s\" мае незавершаны тып" + +-#: cp/decl.c:3892 ++#: cp/decl.c:3906 + msgid "aggregate `%#D' has incomplete type and cannot be defined" + msgstr "" + +-#: cp/decl.c:3942 ++#: cp/decl.c:3956 + msgid "`%D' declared as reference but not initialized" + msgstr "" + +-#: cp/decl.c:3948 ++#: cp/decl.c:3962 + msgid "ISO C++ forbids use of initializer list to initialize reference `%D'" + msgstr "" + +-#: cp/decl.c:3976 ++#: cp/decl.c:3990 + #, fuzzy + msgid "cannot initialize `%T' from `%T'" + msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\"" + +-#: cp/decl.c:4008 ++#: cp/decl.c:4022 + msgid "initializer fails to determine size of `%D'" + msgstr "" + +-#: cp/decl.c:4013 ++#: cp/decl.c:4027 + msgid "array size missing in `%D'" + msgstr "прапушчан памер маÑіва Ñž `%D'" + +-#: cp/decl.c:4025 ++#: cp/decl.c:4039 + msgid "zero-size array `%D'" + msgstr "нулÑвы памер маÑіва `%D'" + + #. An automatic variable with an incomplete type: that is an error. + #. Don't talk about array types here, since we took care of that + #. message in grokdeclarator. +-#: cp/decl.c:4062 ++#: cp/decl.c:4076 + msgid "storage size of `%D' isn't known" + msgstr "" + +-#: cp/decl.c:4084 ++#: cp/decl.c:4098 + msgid "storage size of `%D' isn't constant" + msgstr "" + +-#: cp/decl.c:4139 ++#: cp/decl.c:4153 + msgid "sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)" + msgstr "" + +-#: cp/decl.c:4140 ++#: cp/decl.c:4154 + msgid "%J you can work around this by removing the initializer" + msgstr "" + +-#: cp/decl.c:4166 ++#: cp/decl.c:4180 + #, fuzzy + msgid "uninitialized const `%D'" + msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\"" + +-#: cp/decl.c:4245 ++#: cp/decl.c:4240 ++msgid "name `%D' used in a GNU-style designated initializer for an array" ++msgstr "" ++ ++#: cp/decl.c:4251 ++#, c-format ++msgid "Designated initializer `%E' larger than array size" ++msgstr "" ++ ++#: cp/decl.c:4323 + #, fuzzy + msgid "brace-enclosed initializer used to initialize `%T'" + msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\"" + +-#: cp/decl.c:4309 ++#: cp/decl.c:4387 + msgid "initializer for `%T' must be brace-enclosed" + msgstr "" + +-#: cp/decl.c:4326 ++#: cp/decl.c:4404 + msgid "ISO C++ does not allow designated initializers" + msgstr "" + +-#: cp/decl.c:4330 ++#: cp/decl.c:4408 + msgid "`%T' has no non-static data member named `%D'" + msgstr "" + +-#: cp/decl.c:4378 +-msgid "name `%D' used in a GNU-style designated initializer for an array" +-msgstr "" +- +-#: cp/decl.c:4401 ++#: cp/decl.c:4456 + #, fuzzy + msgid "too many initializers for `%T'" + msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\"" + +-#: cp/decl.c:4439 ++#: cp/decl.c:4494 + msgid "variable-sized object `%D' may not be initialized" + msgstr "" + +-#: cp/decl.c:4450 ++#: cp/decl.c:4505 + #, fuzzy + msgid "`%D' has incomplete type" + msgstr "\"%s\" мае незавершаны тып" + +-#: cp/decl.c:4505 ++#: cp/decl.c:4560 + msgid "`%D' must be initialized by constructor, not by `{...}'" + msgstr "" + +-#: cp/decl.c:4549 ++#: cp/decl.c:4604 + msgid "structure `%D' with uninitialized const members" + msgstr "" + +-#: cp/decl.c:4551 ++#: cp/decl.c:4606 + msgid "structure `%D' with uninitialized reference members" + msgstr "" + +-#: cp/decl.c:4732 ++#: cp/decl.c:4788 + msgid "assignment (not initialization) in declaration" + msgstr "" + +-#: cp/decl.c:4749 ++#: cp/decl.c:4805 + #, fuzzy + msgid "cannot initialize `%D' to namespace `%D'" + msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\"" + +-#: cp/decl.c:4803 ++#: cp/decl.c:4859 + #, fuzzy + msgid "shadowing previous type declaration of `%#D'" + msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\"" + +-#: cp/decl.c:4840 ++#: cp/decl.c:4896 + msgid "`%D' cannot be thread-local because it has non-POD type `%T'" + msgstr "" + +-#: cp/decl.c:4855 ++#: cp/decl.c:4911 + msgid "`%D' is thread-local and so cannot be dynamically initialized" + msgstr "" + +-#: cp/decl.c:5337 ++#: cp/decl.c:5406 + msgid "invalid catch parameter" + msgstr "" + +-#: cp/decl.c:5451 ++#: cp/decl.c:5520 + msgid "destructor for alien class `%T' cannot be a member" + msgstr "" + +-#: cp/decl.c:5454 ++#: cp/decl.c:5523 + msgid "constructor for alien class `%T' cannot be a member" + msgstr "" + +-#: cp/decl.c:5476 ++#: cp/decl.c:5545 + msgid "`%D' declared as a `virtual' %s" + msgstr "" + +-#: cp/decl.c:5478 ++#: cp/decl.c:5547 + msgid "`%D' declared as an `inline' %s" + msgstr "" + +-#: cp/decl.c:5480 ++#: cp/decl.c:5549 + msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration" + msgstr "" + +-#: cp/decl.c:5483 ++#: cp/decl.c:5552 + msgid "`%D' declared as a friend" + msgstr "" + +-#: cp/decl.c:5489 ++#: cp/decl.c:5558 + #, fuzzy + msgid "`%D' declared with an exception specification" + msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)" + +-#: cp/decl.c:5571 ++#: cp/decl.c:5640 + msgid "cannot declare `::main' to be a template" + msgstr "" + +-#: cp/decl.c:5573 ++#: cp/decl.c:5642 + msgid "cannot declare `::main' to be inline" + msgstr "" + +-#: cp/decl.c:5575 ++#: cp/decl.c:5644 + msgid "cannot declare `::main' to be static" + msgstr "" + +-#: cp/decl.c:5578 ++#: cp/decl.c:5647 + msgid "`main' must return `int'" + msgstr "`main' павінна вÑртаць `int'" + +-#: cp/decl.c:5606 ++#: cp/decl.c:5675 + msgid "non-local function `%#D' uses anonymous type" + msgstr "" + +-#: cp/decl.c:5609 ++#: cp/decl.c:5678 + msgid "`%#D' does not refer to the unqualified type, so it is not used for linkage" + msgstr "" + +-#: cp/decl.c:5615 ++#: cp/decl.c:5684 + msgid "non-local function `%#D' uses local type `%T'" + msgstr "" + +-#: cp/decl.c:5639 ++#: cp/decl.c:5708 + msgid "%smember function `%D' cannot have `%T' method qualifier" + msgstr "" + +-#: cp/decl.c:5663 ++#: cp/decl.c:5732 + msgid "defining explicit specialization `%D' in friend declaration" + msgstr "" + + #. Something like `template friend void f()'. +-#: cp/decl.c:5673 ++#: cp/decl.c:5742 + msgid "invalid use of template-id `%D' in declaration of primary template" + msgstr "" + +-#: cp/decl.c:5700 ++#: cp/decl.c:5769 + msgid "default arguments are not allowed in declaration of friend template specialization `%D'" + msgstr "" + +-#: cp/decl.c:5707 ++#: cp/decl.c:5776 + msgid "`inline' is not allowed in declaration of friend template specialization `%D'" + msgstr "" + +-#: cp/decl.c:5765 ++#: cp/decl.c:5834 + msgid "definition of implicitly-declared `%D'" + msgstr "" + +-#: cp/decl.c:5785 cp/decl2.c:738 ++#: cp/decl.c:5854 cp/decl2.c:738 + msgid "no `%#D' member function declared in class `%T'" + msgstr "" + +-#: cp/decl.c:5919 ++#: cp/decl.c:5988 + msgid "non-local variable `%#D' uses local type `%T'" + msgstr "" + +-#: cp/decl.c:6034 ++#: cp/decl.c:6103 + msgid "invalid in-class initialization of static data member of non-integral type `%T'" + msgstr "" + +-#: cp/decl.c:6043 ++#: cp/decl.c:6112 + msgid "ISO C++ forbids in-class initialization of non-const static member `%D'" + msgstr "" + +-#: cp/decl.c:6046 ++#: cp/decl.c:6115 + msgid "ISO C++ forbids initialization of member constant `%D' of non-integral type `%T'" + msgstr "" + +-#: cp/decl.c:6065 ++#: cp/decl.c:6134 + #, fuzzy + msgid "size of array `%D' has non-integral type `%T'" + msgstr "памер маÑіва `%D' не цÑлалікавы тып" + +-#: cp/decl.c:6067 ++#: cp/decl.c:6136 + #, fuzzy + msgid "size of array has non-integral type `%T'" + msgstr "памер маÑіва \"%s\" адмоўны" + +-#: cp/decl.c:6103 ++#: cp/decl.c:6172 + msgid "size of array `%D' is negative" + msgstr "памер маÑіва `%D' - адмоўны" + +-#: cp/decl.c:6105 ++#: cp/decl.c:6174 + msgid "size of array is negative" + msgstr "адмоўны памер маÑіва " + +-#: cp/decl.c:6113 ++#: cp/decl.c:6182 + msgid "ISO C++ forbids zero-size array `%D'" + msgstr "" + +-#: cp/decl.c:6115 ++#: cp/decl.c:6184 + #, fuzzy + msgid "ISO C++ forbids zero-size array" + msgstr "ISO C не дазвалÑе дÑкларацыі метак (label)" + +-#: cp/decl.c:6122 ++#: cp/decl.c:6191 + #, fuzzy + msgid "size of array `%D' is not an integral constant-expression" + msgstr "памер маÑіва \"%s\" адмоўны" + +-#: cp/decl.c:6125 ++#: cp/decl.c:6194 + msgid "size of array is not an integral constant-expression" + msgstr "" + +-#: cp/decl.c:6130 ++#: cp/decl.c:6199 + msgid "ISO C++ forbids variable-size array `%D'" + msgstr "" + +-#: cp/decl.c:6132 ++#: cp/decl.c:6201 + #, fuzzy + msgid "ISO C++ forbids variable-size array" + msgstr "ISO C не дазвалÑе дÑкларацыі метак (label)" + +-#: cp/decl.c:6154 ++#: cp/decl.c:6223 + msgid "overflow in array dimension" + msgstr "" + +-#: cp/decl.c:6248 ++#: cp/decl.c:6317 + msgid "declaration of `%D' as %s" + msgstr "" + +-#: cp/decl.c:6250 ++#: cp/decl.c:6319 + #, c-format + msgid "creating %s" + msgstr "" + +-#: cp/decl.c:6262 ++#: cp/decl.c:6331 + msgid "declaration of `%D' as multidimensional array must have bounds for all dimensions except the first" + msgstr "" + +-#: cp/decl.c:6265 ++#: cp/decl.c:6334 + msgid "multidimensional array must have bounds for all dimensions except the first" + msgstr "" + +-#: cp/decl.c:6293 ++#: cp/decl.c:6362 + msgid "return type specification for constructor invalid" + msgstr "" + +-#: cp/decl.c:6300 ++#: cp/decl.c:6369 + msgid "return type specification for destructor invalid" + msgstr "" + +-#: cp/decl.c:6306 ++#: cp/decl.c:6375 + msgid "operator `%T' declared to return `%T'" + msgstr "" + +-#: cp/decl.c:6308 ++#: cp/decl.c:6377 + msgid "return type specified for `operator %T'" + msgstr "" + +-#: cp/decl.c:6452 ++#: cp/decl.c:6400 ++msgid "unnamed variable or field declared void" ++msgstr "" ++ ++#: cp/decl.c:6405 ++#, fuzzy, c-format ++msgid "variable or field `%E' declared void" ++msgstr "тып параметра \"%s\" не аб'Ñўлены" ++ ++#: cp/decl.c:6408 ++msgid "variable or field declared void" ++msgstr "" ++ ++#: cp/decl.c:6547 + msgid "destructors must be member functions" + msgstr "" + +-#: cp/decl.c:6471 ++#: cp/decl.c:6566 + msgid "destructor `%T' must match class name `%T'" + msgstr "" + +-#: cp/decl.c:6534 ++#: cp/decl.c:6629 + msgid "declarator-id missing; using reserved word `%D'" + msgstr "" + +-#: cp/decl.c:6588 ++#: cp/decl.c:6683 + msgid "type `%T' is not derived from type `%T'" + msgstr "" + + #. Parse error puts this typespec where + #. a declarator should go. +-#: cp/decl.c:6651 ++#: cp/decl.c:6746 + msgid "`%T' specified as declarator-id" + msgstr "" + +-#: cp/decl.c:6653 ++#: cp/decl.c:6748 + msgid " perhaps you want `%T' for a constructor" + msgstr "" + +@@ -14344,309 +14402,301 @@ + #. decl-specifier like in + #. std::allocator alloc; + #. Handle that gracefully. +-#: cp/decl.c:6675 ++#: cp/decl.c:6770 + #, fuzzy, c-format + msgid "invalid use of template-name '%E' in a declarator" + msgstr "нÑвернае выкарыÑтанне \"restict\"" + +-#: cp/decl.c:6695 ++#: cp/decl.c:6790 cp/decl.c:8124 + msgid "declaration of `%D' as non-function" + msgstr "" + +-#: cp/decl.c:6772 ++#: cp/decl.c:6867 + msgid "`bool' is now a keyword" + msgstr "" + +-#: cp/decl.c:6774 ++#: cp/decl.c:6869 + msgid "extraneous `%T' ignored" + msgstr "" + +-#: cp/decl.c:6790 cp/decl.c:6834 ++#: cp/decl.c:6885 cp/decl.c:6929 + msgid "multiple declarations `%T' and `%T'" + msgstr "неаднолькавае абвÑшчÑньне `%T' Ñ– `%T'" + +-#: cp/decl.c:6803 ++#: cp/decl.c:6898 + msgid "ISO C++ does not support `long long'" + msgstr "ISO C++ не падтрымлівае \"long long\"" + +-#: cp/decl.c:6907 cp/decl.c:6910 ++#: cp/decl.c:7002 cp/decl.c:7005 + #, fuzzy, c-format + msgid "ISO C++ forbids declaration of `%s' with no type" + msgstr "ISO C не дазвалÑе дÑкларацыі метак (label)" + +-#: cp/decl.c:6941 ++#: cp/decl.c:7036 + #, c-format + msgid "short, signed or unsigned invalid for `%s'" + msgstr "" + +-#: cp/decl.c:6946 ++#: cp/decl.c:7041 + #, c-format + msgid "long and short specified together for `%s'" + msgstr "" + +-#: cp/decl.c:6957 ++#: cp/decl.c:7052 + #, c-format + msgid "signed and unsigned given together for `%s'" + msgstr "" + +-#: cp/decl.c:7066 ++#: cp/decl.c:7161 + msgid "qualifiers are not allowed on declaration of `operator %T'" + msgstr "" + +-#: cp/decl.c:7088 ++#: cp/decl.c:7183 + msgid "member `%D' cannot be declared both virtual and static" + msgstr "" + +-#: cp/decl.c:7097 ++#: cp/decl.c:7192 + #, fuzzy + msgid "`%T::%D' is not a valid declarator" + msgstr "\"%s\" - гÑта не пачатак дÑкларацыі" + +-#: cp/decl.c:7109 ++#: cp/decl.c:7204 + msgid "storage class specifiers invalid in parameter declarations" + msgstr "" + +-#: cp/decl.c:7113 ++#: cp/decl.c:7208 + msgid "typedef declaration invalid in parameter declaration" + msgstr "" + +-#: cp/decl.c:7126 ++#: cp/decl.c:7221 + msgid "virtual outside class declaration" + msgstr "" + +-#: cp/decl.c:7185 ++#: cp/decl.c:7280 + #, c-format + msgid "storage class specified for %s `%s'" + msgstr "" + +-#: cp/decl.c:7220 ++#: cp/decl.c:7315 + #, c-format + msgid "top-level declaration of `%s' specifies `auto'" + msgstr "" + +-#: cp/decl.c:7232 ++#: cp/decl.c:7327 + msgid "storage class specifiers invalid in friend function declarations" + msgstr "" + +-#: cp/decl.c:7397 ++#: cp/decl.c:7492 + msgid "destructor cannot be static member function" + msgstr "" + +-#: cp/decl.c:7400 ++#: cp/decl.c:7495 + #, c-format + msgid "destructors may not be `%s'" + msgstr "" + +-#: cp/decl.c:7421 ++#: cp/decl.c:7516 + msgid "constructor cannot be static member function" + msgstr "" + +-#: cp/decl.c:7424 ++#: cp/decl.c:7519 + msgid "constructors cannot be declared virtual" + msgstr "" + +-#: cp/decl.c:7429 ++#: cp/decl.c:7524 + #, c-format + msgid "constructors may not be `%s'" + msgstr "" + +-#: cp/decl.c:7439 ++#: cp/decl.c:7534 + msgid "return value type specifier for constructor ignored" + msgstr "" + +-#: cp/decl.c:7458 ++#: cp/decl.c:7553 + #, c-format + msgid "can't initialize friend function `%s'" + msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\"" + + #. Cannot be both friend and virtual. +-#: cp/decl.c:7462 ++#: cp/decl.c:7557 + msgid "virtual functions cannot be friends" + msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– не могуць быць ÑÑброўÑкімі" + +-#: cp/decl.c:7467 ++#: cp/decl.c:7562 + msgid "friend declaration not in class definition" + msgstr "" + +-#: cp/decl.c:7469 ++#: cp/decl.c:7564 + #, fuzzy, c-format + msgid "can't define friend function `%s' in a local class definition" + msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\"" + +-#: cp/decl.c:7490 ++#: cp/decl.c:7585 + msgid "destructors may not have parameters" + msgstr "" + +-#: cp/decl.c:7510 cp/decl.c:7517 ++#: cp/decl.c:7605 cp/decl.c:7612 + #, fuzzy + msgid "cannot declare reference to `%#T'" + msgstr "Ðе магу знайÑці файл Ð´Ð»Ñ ÐºÐ»Ð°Ñа %s." + +-#: cp/decl.c:7511 ++#: cp/decl.c:7606 + #, fuzzy + msgid "cannot declare pointer to `%#T'" + msgstr "\"%s\" мае незавершаны тып" + +-#: cp/decl.c:7516 ++#: cp/decl.c:7611 + msgid "cannot declare pointer to `%#T' member" + msgstr "" + +-#: cp/decl.c:7655 ++#: cp/decl.c:7750 + msgid "extra qualification `%T::' on member `%s' ignored" + msgstr "" + +-#: cp/decl.c:7671 ++#: cp/decl.c:7766 + msgid "cannot declare member function `%T::%s' within `%T'" + msgstr "" + +-#: cp/decl.c:7686 ++#: cp/decl.c:7781 + msgid "cannot declare member `%T::%s' within `%T'" + msgstr "" + +-#: cp/decl.c:7766 ++#: cp/decl.c:7861 + msgid "data member may not have variably modified type `%T'" + msgstr "" + +-#: cp/decl.c:7768 ++#: cp/decl.c:7863 + msgid "parameter may not have variably modified type `%T'" + msgstr "" + + #. [dcl.fct.spec] The explicit specifier shall only be used in + #. declarations of constructors within a class definition. +-#: cp/decl.c:7776 ++#: cp/decl.c:7871 + msgid "only declarations of constructors can be `explicit'" + msgstr "" + +-#: cp/decl.c:7784 ++#: cp/decl.c:7879 + #, c-format + msgid "non-member `%s' cannot be declared `mutable'" + msgstr "" + +-#: cp/decl.c:7789 ++#: cp/decl.c:7884 + #, c-format + msgid "non-object member `%s' cannot be declared `mutable'" + msgstr "" + +-#: cp/decl.c:7795 ++#: cp/decl.c:7890 + #, c-format + msgid "function `%s' cannot be declared `mutable'" + msgstr "" + +-#: cp/decl.c:7800 ++#: cp/decl.c:7895 + #, c-format + msgid "static `%s' cannot be declared `mutable'" + msgstr "" + +-#: cp/decl.c:7805 ++#: cp/decl.c:7900 + #, c-format + msgid "const `%s' cannot be declared `mutable'" + msgstr "" + +-#: cp/decl.c:7818 ++#: cp/decl.c:7913 + msgid "template-id `%D' used as a declarator" + msgstr "" + +-#: cp/decl.c:7839 ++#: cp/decl.c:7934 + msgid "ISO C++ forbids nested type `%D' with same name as enclosing class" + msgstr "" + +-#: cp/decl.c:7847 ++#: cp/decl.c:7942 + msgid "%Jtypedef name may not be a nested-name-specifier" + msgstr "" + +-#: cp/decl.c:7893 ++#: cp/decl.c:7988 + #, fuzzy + msgid "%Jinvalid type qualifier for non-member function type" + msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\"" + +-#: cp/decl.c:7956 ++#: cp/decl.c:8051 + msgid "type qualifiers specified for friend class declaration" + msgstr "" + +-#: cp/decl.c:7961 ++#: cp/decl.c:8056 + msgid "`inline' specified for friend class declaration" + msgstr "" + +-#: cp/decl.c:7969 ++#: cp/decl.c:8064 + #, fuzzy + msgid "template parameters cannot be friends" + msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– не могуць быць ÑÑброўÑкімі" + +-#: cp/decl.c:7971 ++#: cp/decl.c:8066 + msgid "friend declaration requires class-key, i.e. `friend class %T::%D'" + msgstr "" + +-#: cp/decl.c:7975 ++#: cp/decl.c:8070 + msgid "friend declaration requires class-key, i.e. `friend %#T'" + msgstr "" + +-#: cp/decl.c:7988 ++#: cp/decl.c:8083 + msgid "trying to make class `%T' a friend of global scope" + msgstr "" + +-#: cp/decl.c:7999 ++#: cp/decl.c:8094 + msgid "invalid qualifiers on non-member function type" + msgstr "" + +-#: cp/decl.c:8018 ++#: cp/decl.c:8113 + msgid "abstract declarator `%T' used as declaration" + msgstr "" + +-#: cp/decl.c:8030 +-msgid "unnamed variable or field declared void" +-msgstr "" +- +-#: cp/decl.c:8039 +-msgid "variable or field declared void" +-msgstr "" +- +-#: cp/decl.c:8049 ++#: cp/decl.c:8139 + msgid "cannot use `::' in parameter declaration" + msgstr "" + + #. Something like struct S { int N::j; }; +-#: cp/decl.c:8094 ++#: cp/decl.c:8184 + msgid "invalid use of `::'" + msgstr "нерÑчаіÑнае выкарыÑтаньне `::'" + +-#: cp/decl.c:8106 ++#: cp/decl.c:8196 + #, fuzzy + msgid "function `%D' cannot be declared friend" + msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– не могуць быць ÑÑброўÑкімі" + +-#: cp/decl.c:8118 ++#: cp/decl.c:8208 + msgid "can't make `%D' into a method -- not in a class" + msgstr "" + +-#: cp/decl.c:8127 ++#: cp/decl.c:8217 + #, fuzzy + msgid "function `%D' declared virtual inside a union" + msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)" + +-#: cp/decl.c:8136 ++#: cp/decl.c:8226 + msgid "`%D' cannot be declared virtual, since it is always static" + msgstr "" + +-#: cp/decl.c:8215 ++#: cp/decl.c:8305 + #, fuzzy + msgid "field `%D' has incomplete type" + msgstr "\"%s\" мае незавершаны тып" + +-#: cp/decl.c:8217 ++#: cp/decl.c:8307 + #, fuzzy + msgid "name `%T' has incomplete type" + msgstr "\"%s\" мае незавершаны тып" + +-#: cp/decl.c:8226 ++#: cp/decl.c:8316 + msgid " in instantiation of template `%T'" + msgstr "" + +-#: cp/decl.c:8236 ++#: cp/decl.c:8326 + #, c-format + msgid "`%s' is neither function nor member function; cannot be declared friend" + msgstr "" + +-#: cp/decl.c:8247 ++#: cp/decl.c:8337 + msgid "member functions are implicitly friends of their class" + msgstr "" + +@@ -14662,92 +14712,92 @@ + #. the rest of the compiler does not correctly + #. handle the initialization unless the member is + #. static so we make it static below. +-#: cp/decl.c:8287 ++#: cp/decl.c:8377 + msgid "ISO C++ forbids initialization of member `%D'" + msgstr "" + +-#: cp/decl.c:8289 ++#: cp/decl.c:8379 + msgid "making `%D' static" + msgstr "" + +-#: cp/decl.c:8345 ++#: cp/decl.c:8435 + #, c-format + msgid "storage class `auto' invalid for function `%s'" + msgstr "" + +-#: cp/decl.c:8347 ++#: cp/decl.c:8437 + #, c-format + msgid "storage class `register' invalid for function `%s'" + msgstr "" + +-#: cp/decl.c:8349 ++#: cp/decl.c:8439 + #, c-format + msgid "storage class `__thread' invalid for function `%s'" + msgstr "" + +-#: cp/decl.c:8360 ++#: cp/decl.c:8450 + #, c-format + msgid "storage class `static' invalid for function `%s' declared out of global scope" + msgstr "" + +-#: cp/decl.c:8362 ++#: cp/decl.c:8452 + #, c-format + msgid "storage class `inline' invalid for function `%s' declared out of global scope" + msgstr "" + +-#: cp/decl.c:8369 ++#: cp/decl.c:8459 + #, c-format + msgid "virtual non-class function `%s'" + msgstr "" + +-#: cp/decl.c:8400 ++#: cp/decl.c:8490 + msgid "cannot declare member function `%D' to have static linkage" + msgstr "" + + #. FIXME need arm citation +-#: cp/decl.c:8406 ++#: cp/decl.c:8496 + msgid "cannot declare static function inside another function" + msgstr "" + +-#: cp/decl.c:8434 ++#: cp/decl.c:8524 + msgid "`static' may not be used when defining (as opposed to declaring) a static data member" + msgstr "" + +-#: cp/decl.c:8440 ++#: cp/decl.c:8530 + msgid "static member `%D' declared `register'" + msgstr "" + +-#: cp/decl.c:8445 ++#: cp/decl.c:8535 + msgid "cannot explicitly declare member `%#D' to have extern linkage" + msgstr "" + +-#: cp/decl.c:8585 ++#: cp/decl.c:8675 + msgid "default argument for `%#D' has type `%T'" + msgstr "звычайны аргумÑнт Ð´Ð»Ñ `%#D' мае тып `%T'" + +-#: cp/decl.c:8588 ++#: cp/decl.c:8678 + msgid "default argument for parameter of type `%T' has type `%T'" + msgstr "" + +-#: cp/decl.c:8605 ++#: cp/decl.c:8695 + msgid "default argument `%E' uses local variable `%D'" + msgstr "" + +-#: cp/decl.c:8649 ++#: cp/decl.c:8739 + #, c-format + msgid "invalid string constant `%E'" + msgstr "`%E' - нерÑчаіÑÐ½Ð°Ñ Ð½ÑÐ·ÑŒÐ¼ÐµÐ½Ð½Ð°Ñ Ñ‚Ñ‹Ð¿Ñƒ string" + +-#: cp/decl.c:8651 ++#: cp/decl.c:8741 + msgid "invalid integer constant in parameter list, did you forget to give parameter name?" + msgstr "" + +-#: cp/decl.c:8689 ++#: cp/decl.c:8779 + #, fuzzy + msgid "parameter `%D' invalidly declared method type" + msgstr "тып параметра \"%s\" не аб'Ñўлены" + +-#: cp/decl.c:8713 ++#: cp/decl.c:8803 + msgid "parameter `%D' includes %s to array of unknown bound `%T'" + msgstr "" + +@@ -14766,94 +14816,94 @@ + #. or implicitly defined), there's no need to worry about their + #. existence. Theoretically, they should never even be + #. instantiated, but that's hard to forestall. +-#: cp/decl.c:8872 ++#: cp/decl.c:8962 + msgid "invalid constructor; you probably meant `%T (const %T&)'" + msgstr "" + +-#: cp/decl.c:9000 ++#: cp/decl.c:9090 + msgid "`%D' must be a nonstatic member function" + msgstr "" + +-#: cp/decl.c:9006 ++#: cp/decl.c:9096 + msgid "`%D' must be either a non-static member function or a non-member function" + msgstr "" + +-#: cp/decl.c:9023 ++#: cp/decl.c:9113 + msgid "`%D' must have an argument of class or enumerated type" + msgstr "" + +-#: cp/decl.c:9058 ++#: cp/decl.c:9148 + #, c-format + msgid "conversion to %s%s will never use a type conversion operator" + msgstr "" + + #. 13.4.0.3 +-#: cp/decl.c:9065 ++#: cp/decl.c:9155 + msgid "ISO C++ prohibits overloading operator ?:" + msgstr "" + +-#: cp/decl.c:9115 ++#: cp/decl.c:9205 + msgid "postfix `%D' must take `int' as its argument" + msgstr "" + +-#: cp/decl.c:9119 ++#: cp/decl.c:9209 + msgid "postfix `%D' must take `int' as its second argument" + msgstr "" + +-#: cp/decl.c:9126 ++#: cp/decl.c:9216 + msgid "`%D' must take either zero or one argument" + msgstr "" + +-#: cp/decl.c:9128 ++#: cp/decl.c:9218 + msgid "`%D' must take either one or two arguments" + msgstr "" + +-#: cp/decl.c:9149 ++#: cp/decl.c:9239 + msgid "prefix `%D' should return `%T'" + msgstr "" + +-#: cp/decl.c:9155 ++#: cp/decl.c:9245 + msgid "postfix `%D' should return `%T'" + msgstr "" + +-#: cp/decl.c:9164 ++#: cp/decl.c:9254 + msgid "`%D' must take `void'" + msgstr "" + +-#: cp/decl.c:9166 cp/decl.c:9174 ++#: cp/decl.c:9256 cp/decl.c:9264 + msgid "`%D' must take exactly one argument" + msgstr "" + +-#: cp/decl.c:9176 ++#: cp/decl.c:9266 + msgid "`%D' must take exactly two arguments" + msgstr "" + +-#: cp/decl.c:9184 ++#: cp/decl.c:9274 + msgid "user-defined `%D' always evaluates both arguments" + msgstr "" + +-#: cp/decl.c:9198 ++#: cp/decl.c:9288 + msgid "`%D' should return by value" + msgstr "" + +-#: cp/decl.c:9210 cp/decl.c:9213 ++#: cp/decl.c:9300 cp/decl.c:9303 + msgid "`%D' cannot have default arguments" + msgstr "" + +-#: cp/decl.c:9273 ++#: cp/decl.c:9363 + msgid "using typedef-name `%D' after `%s'" + msgstr "" + +-#: cp/decl.c:9279 ++#: cp/decl.c:9369 + msgid "using template type parameter `%T' after `%s'" + msgstr "" + +-#: cp/decl.c:9287 ++#: cp/decl.c:9377 + #, fuzzy + msgid "`%T' referred to as `%s'" + msgstr "не знойдзен ÐºÐ»Ð°Ñ \"%s\"" + +-#: cp/decl.c:9293 ++#: cp/decl.c:9383 + msgid "`%T' referred to as enum" + msgstr "" + +@@ -14864,50 +14914,50 @@ + #. void f(class C); // No template header here + #. + #. then the required template argument is missing. +-#: cp/decl.c:9308 ++#: cp/decl.c:9398 + #, fuzzy + msgid "template argument required for `%s %T'" + msgstr "невыкарыÑтаемы параметр \"%s\"" + +-#: cp/decl.c:9453 ++#: cp/decl.c:9543 + #, fuzzy + msgid "use of enum `%#D' without previous declaration" + msgstr "ÑÐµÐºÑ†Ñ‹Ñ \"%s\" канфліктуе з папÑÑ€ÑднÑй дÑкларацыÑй" + +-#: cp/decl.c:9471 ++#: cp/decl.c:9561 + #, fuzzy + msgid "redeclaration of `%T' as a non-template" + msgstr "абвÑшчÑньне шаблёну `%#D'" + +-#: cp/decl.c:9517 ++#: cp/decl.c:9607 + msgid "derived union `%T' invalid" + msgstr "" + +-#: cp/decl.c:9570 ++#: cp/decl.c:9660 + msgid "base type `%T' fails to be a struct or class type" + msgstr "" + +-#: cp/decl.c:9578 ++#: cp/decl.c:9668 + msgid "recursive type `%T' undefined" + msgstr "" + +-#: cp/decl.c:9580 ++#: cp/decl.c:9670 + msgid "duplicate base type `%T' invalid" + msgstr "" + +-#: cp/decl.c:9658 ++#: cp/decl.c:9748 + msgid "Java class '%T' cannot have multiple bases" + msgstr "" + +-#: cp/decl.c:9660 ++#: cp/decl.c:9750 + msgid "Java class '%T' cannot have virtual bases" + msgstr "" + +-#: cp/decl.c:9700 ++#: cp/decl.c:9790 + msgid "multiple definition of `%#T'" + msgstr "" + +-#: cp/decl.c:9701 ++#: cp/decl.c:9791 + #, fuzzy + msgid "%Jprevious definition here" + msgstr "папÑÑ€ÑднÑе вызначÑньне" +@@ -14916,51 +14966,51 @@ + #. + #. IF no integral type can represent all the enumerator values, the + #. enumeration is ill-formed. +-#: cp/decl.c:9836 ++#: cp/decl.c:9926 + msgid "no integral type can represent all of the enumerator values for `%T'" + msgstr "" + +-#: cp/decl.c:9926 ++#: cp/decl.c:10023 + msgid "enumerator value for `%D' not integer constant" + msgstr "" + +-#: cp/decl.c:9946 ++#: cp/decl.c:10043 + msgid "overflow in enumeration values at `%D'" + msgstr "" + +-#: cp/decl.c:10015 ++#: cp/decl.c:10112 + #, fuzzy + msgid "return type `%#T' is incomplete" + msgstr "вÑртаемы тып \"%s\" не \"int\"" + +-#: cp/decl.c:10133 ++#: cp/decl.c:10230 + msgid "return type for `main' changed to `int'" + msgstr "" + +-#: cp/decl.c:10162 ++#: cp/decl.c:10259 + #, fuzzy + msgid "`%D' implicitly declared before its definition" + msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)" + +-#: cp/decl.c:10184 cp/typeck.c:6071 ++#: cp/decl.c:10281 cp/typeck.c:6092 + msgid "`operator=' should return a reference to `*this'" + msgstr "" + +-#: cp/decl.c:10453 ++#: cp/decl.c:10550 + #, fuzzy + msgid "parameter `%D' declared void" + msgstr "тып параметра \"%s\" не аб'Ñўлены" + +-#: cp/decl.c:10919 ++#: cp/decl.c:11016 + #, fuzzy + msgid "invalid member function declaration" + msgstr "паўторнае абвÑшчÑнне меткі \"%s\"" + +-#: cp/decl.c:10936 ++#: cp/decl.c:11033 + msgid "`%D' is already defined in class `%T'" + msgstr "" + +-#: cp/decl.c:11149 ++#: cp/decl.c:11246 + msgid "static member function `%#D' declared with type qualifiers" + msgstr "" + +@@ -15009,7 +15059,7 @@ + msgid "invalid use of `virtual' in template declaration of `%#D'" + msgstr "" + +-#: cp/decl2.c:541 cp/pt.c:2834 ++#: cp/decl2.c:541 cp/pt.c:2878 + #, fuzzy + msgid "template declaration of `%#D'" + msgstr "пуÑтое абвÑшчÑнне" +@@ -15084,41 +15134,41 @@ + msgid "anonymous struct not inside named type" + msgstr "" + +-#: cp/decl2.c:1218 ++#: cp/decl2.c:1224 + msgid "namespace-scope anonymous aggregates must be static" + msgstr "" + +-#: cp/decl2.c:1225 ++#: cp/decl2.c:1231 + msgid "anonymous union with no members" + msgstr "" + +-#: cp/decl2.c:1259 ++#: cp/decl2.c:1265 + msgid "`operator new' must return type `%T'" + msgstr "" + +-#: cp/decl2.c:1267 ++#: cp/decl2.c:1273 + msgid "`operator new' takes type `size_t' (`%T') as first parameter" + msgstr "" + +-#: cp/decl2.c:1293 ++#: cp/decl2.c:1299 + msgid "`operator delete' must return type `%T'" + msgstr "" + +-#: cp/decl2.c:1301 ++#: cp/decl2.c:1307 + msgid "`operator delete' takes type `%T' as first parameter" + msgstr "" + +-#: cp/decl2.c:2810 ++#: cp/decl2.c:2816 + #, fuzzy + msgid "inline function `%D' used but never defined" + msgstr "адмеціна `%D' выкарыÑтоўвываецца, але Ð½Ñ Ð²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ð°" + +-#: cp/decl2.c:2956 ++#: cp/decl2.c:2962 + msgid "default argument missing for parameter %P of `%+#D'" + msgstr "" + + #. damn ICE suppression +-#: cp/error.c:2387 ++#: cp/error.c:2385 + #, c-format + msgid "unexpected letter `%c' in locate_error\n" + msgstr "" +@@ -15145,7 +15195,7 @@ + msgid "throwing NULL, which has integral, not pointer type" + msgstr "" + +-#: cp/except.c:598 cp/init.c:2038 ++#: cp/except.c:598 cp/init.c:2047 + msgid "`%D' should never be overloaded" + msgstr "" + +@@ -15226,7 +15276,7 @@ + msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning" + msgstr "" + +-#: cp/g++spec.c:229 java/jvspec.c:415 ++#: cp/g++spec.c:232 java/jvspec.c:415 + #, c-format + msgid "argument to `%s' missing\n" + msgstr "" +@@ -15360,63 +15410,63 @@ + msgid "incomplete type `%T' does not have member `%D'" + msgstr "" + +-#: cp/init.c:1459 ++#: cp/init.c:1460 + msgid "`%D' is not a member of type `%T'" + msgstr "" + +-#: cp/init.c:1478 ++#: cp/init.c:1487 + #, fuzzy + msgid "invalid pointer to bit-field `%D'" + msgstr "нÑвернае выкарыÑтанне \"restict\"" + +-#: cp/init.c:1580 ++#: cp/init.c:1589 + #, fuzzy + msgid "invalid use of non-static member function `%D'" + msgstr "нÑвернае выкарыÑтанне \"restict\"" + +-#: cp/init.c:1586 cp/semantics.c:1236 ++#: cp/init.c:1595 cp/semantics.c:1236 + #, fuzzy + msgid "invalid use of non-static data member `%D'" + msgstr "нÑвернае выкарыÑтанне \"restict\"" + +-#: cp/init.c:1725 ++#: cp/init.c:1734 + msgid "new of array type fails to specify size" + msgstr "" + +-#: cp/init.c:1736 ++#: cp/init.c:1745 + msgid "size in array new must have integral type" + msgstr "" + +-#: cp/init.c:1742 ++#: cp/init.c:1751 + msgid "zero size array reserves no space" + msgstr "" + +-#: cp/init.c:1809 ++#: cp/init.c:1818 + msgid "new cannot be applied to a reference type" + msgstr "" + +-#: cp/init.c:1815 ++#: cp/init.c:1824 + msgid "new cannot be applied to a function type" + msgstr "" + +-#: cp/init.c:1861 ++#: cp/init.c:1870 + msgid "call to Java constructor, while `jclass' undefined" + msgstr "" + +-#: cp/init.c:1877 ++#: cp/init.c:1886 + #, fuzzy + msgid "can't find class$" + msgstr "Ðе магу знайÑці ÐºÐ»Ð°Ñ \"%s\"" + +-#: cp/init.c:2004 ++#: cp/init.c:2013 + msgid "invalid type `void' for new" + msgstr "" + +-#: cp/init.c:2014 ++#: cp/init.c:2023 + msgid "uninitialized const in `new' of `%#T'" + msgstr "" + +-#: cp/init.c:2033 ++#: cp/init.c:2042 + #, c-format + msgid "call to Java constructor with `%s' undefined" + msgstr "" +@@ -15424,40 +15474,40 @@ + #. See PR 15967. This should never happen (and it is + #. fixed correctly in mainline), but on the release branch + #. we prefer this less-intrusive approacch. +-#: cp/init.c:2077 ++#: cp/init.c:2086 + msgid "no suitable or ambiguous `%D' found in class `%T'" + msgstr "" + +-#: cp/init.c:2083 ++#: cp/init.c:2092 + #, fuzzy + msgid "request for member `%D' is ambiguous" + msgstr "памер \"%s\" - %d байт" + +-#: cp/init.c:2203 ++#: cp/init.c:2212 + msgid "ISO C++ forbids initialization in array new" + msgstr "" + +-#: cp/init.c:2677 ++#: cp/init.c:2686 + msgid "initializer ends prematurely" + msgstr "" + +-#: cp/init.c:2734 ++#: cp/init.c:2743 + msgid "cannot initialize multi-dimensional array with initializer" + msgstr "" + +-#: cp/init.c:2895 ++#: cp/init.c:2904 + msgid "possible problem detected in invocation of delete operator:" + msgstr "" + +-#: cp/init.c:2898 ++#: cp/init.c:2907 + msgid "neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined." + msgstr "" + +-#: cp/init.c:2919 ++#: cp/init.c:2928 + msgid "unknown array size in delete" + msgstr "" + +-#: cp/init.c:3184 ++#: cp/init.c:3193 + msgid "type to vector delete is neither pointer or array type" + msgstr "" + +@@ -15525,15 +15575,15 @@ + msgid "(if you use `-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)" + msgstr "" + +-#: cp/mangle.c:2037 ++#: cp/mangle.c:2050 + msgid "call_expr cannot be mangled due to a defect in the C++ ABI" + msgstr "" + +-#: cp/mangle.c:2090 ++#: cp/mangle.c:2103 + msgid "omitted middle operand to `?:' operand cannot be mangled" + msgstr "" + +-#: cp/mangle.c:2389 ++#: cp/mangle.c:2402 + msgid "the mangled name of `%D' will change in a future version of GCC" + msgstr "" + +@@ -15688,7 +15738,7 @@ + + #. It's a nested name with template parameter dependent scope. + #. This can only be using-declaration for class member. +-#: cp/name-lookup.c:2126 cp/name-lookup.c:2140 cp/name-lookup.c:3380 ++#: cp/name-lookup.c:2126 cp/name-lookup.c:2140 cp/name-lookup.c:3362 + msgid "`%T' is not a namespace" + msgstr "" + +@@ -15723,90 +15773,90 @@ + msgid "using-declaration cannot name destructor" + msgstr "" + +-#: cp/name-lookup.c:3005 ++#: cp/name-lookup.c:2984 + msgid "declaration of `%D' not in a namespace surrounding `%D'" + msgstr "" + +-#: cp/name-lookup.c:3045 ++#: cp/name-lookup.c:3024 + msgid "`%D' should have been declared inside `%D'" + msgstr "" + +-#: cp/name-lookup.c:3109 ++#: cp/name-lookup.c:3088 + msgid "namespace alias `%D' not allowed here, assuming `%D'" + msgstr "" + + #. The parser did not find it, so it's not there. +-#: cp/name-lookup.c:3224 ++#: cp/name-lookup.c:3203 + #, fuzzy + msgid "unknown namespace `%D'" + msgstr "невÑдомы Ñ€Ñжым машыны \"%s\"" + +-#: cp/name-lookup.c:3374 ++#: cp/name-lookup.c:3356 + msgid "namespace `%T' undeclared" + msgstr "" + +-#: cp/name-lookup.c:3407 ++#: cp/name-lookup.c:3389 + msgid "strong using only meaningful at namespace scope" + msgstr "" + +-#: cp/name-lookup.c:3414 ++#: cp/name-lookup.c:3396 + #, fuzzy + msgid "`%D' attribute directive ignored" + msgstr "\"%s\" атрыбут ігнарыруецца" + +-#: cp/name-lookup.c:3547 ++#: cp/name-lookup.c:3529 + #, fuzzy + msgid "use of `%D' is ambiguous" + msgstr "памер \"%s\" - %d байт" + +-#: cp/name-lookup.c:3548 ++#: cp/name-lookup.c:3530 + msgid " first declared as `%#D' here" + msgstr "" + +-#: cp/name-lookup.c:3551 ++#: cp/name-lookup.c:3533 + msgid " also declared as `%#D' here" + msgstr "" + +-#: cp/name-lookup.c:3566 ++#: cp/name-lookup.c:3548 + msgid "`%D' denotes an ambiguous type" + msgstr "" + +-#: cp/name-lookup.c:3567 ++#: cp/name-lookup.c:3549 + #, fuzzy + msgid "%J first type here" + msgstr " адÑюль" + +-#: cp/name-lookup.c:3568 ++#: cp/name-lookup.c:3550 + msgid "%J other type here" + msgstr "" + + #. This happens for A::B where B is a template, and there are no + #. template arguments. +-#: cp/name-lookup.c:3633 cp/typeck.c:1792 ++#: cp/name-lookup.c:3615 cp/typeck.c:1792 + msgid "invalid use of `%D'" + msgstr "нерÑчаіÑнае выкарыÑтаньне `%D'" + +-#: cp/name-lookup.c:3674 ++#: cp/name-lookup.c:3656 + msgid "`%D::%D' is not a template" + msgstr "" + +-#: cp/name-lookup.c:3691 ++#: cp/name-lookup.c:3673 + msgid "`%D' undeclared in namespace `%D'" + msgstr "" + +-#: cp/name-lookup.c:4153 ++#: cp/name-lookup.c:4135 + msgid "`%D' is not a function," + msgstr "`%D' - гÑта Ð½Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ," + +-#: cp/name-lookup.c:4154 ++#: cp/name-lookup.c:4136 + msgid " conflict with `%D'" + msgstr "" + +-#: cp/name-lookup.c:4911 ++#: cp/name-lookup.c:4893 + msgid "XXX entering pop_everything ()\n" + msgstr "" + +-#: cp/name-lookup.c:4920 ++#: cp/name-lookup.c:4902 + msgid "XXX leaving pop_everything ()\n" + msgstr "" + +@@ -15820,7 +15870,7 @@ + msgid "`%D::%D' has not been declared" + msgstr "\"%s\" - гÑта не пачатак дÑкларацыі" + +-#: cp/parser.c:1809 cp/semantics.c:2308 ++#: cp/parser.c:1809 cp/semantics.c:2305 + #, fuzzy + msgid "`::%D' has not been declared" + msgstr "\"%s\" - гÑта не пачатак дÑкларацыі" +@@ -15846,7 +15896,7 @@ + msgid "new types may not be defined in a return type" + msgstr "" + +-#: cp/parser.c:1888 cp/pt.c:4196 ++#: cp/parser.c:1888 cp/pt.c:4238 + msgid "`%T' is not a template" + msgstr "" + +@@ -15897,188 +15947,188 @@ + msgid "typedef-name `%D' used as destructor declarator" + msgstr "" + +-#: cp/parser.c:3638 ++#: cp/parser.c:3648 + #, fuzzy + msgid "ISO C++ forbids compound-literals" + msgstr "ISO C не дазвалÑе дÑкларацыі метак (label)" + +-#: cp/parser.c:4461 ++#: cp/parser.c:4498 + msgid "array bound forbidden after parenthesized type-id" + msgstr "" + +-#: cp/parser.c:4462 ++#: cp/parser.c:4499 + msgid "try removing the parentheses around the type-id" + msgstr "" + +-#: cp/parser.c:4624 ++#: cp/parser.c:4661 + msgid "expression in new-declarator must have integral or enumeration type" + msgstr "" + +-#: cp/parser.c:4805 ++#: cp/parser.c:4842 + msgid "use of old-style cast" + msgstr "" + +-#: cp/parser.c:5550 ++#: cp/parser.c:5587 + #, c-format + msgid "case label `%E' not within a switch statement" + msgstr "" + +-#: cp/parser.c:6092 ++#: cp/parser.c:6130 + msgid "ISO C++ forbids computed gotos" + msgstr "" + +-#: cp/parser.c:6212 ++#: cp/parser.c:6250 + msgid "extra `;'" + msgstr "" + +-#: cp/parser.c:6507 ++#: cp/parser.c:6545 + msgid "mixing declarations and function-definitions is forbidden" + msgstr "" + +-#: cp/parser.c:6645 ++#: cp/parser.c:6683 + #, fuzzy + msgid "duplicate `friend'" + msgstr "паўтарÑньне `%s'" + +-#: cp/parser.c:6794 ++#: cp/parser.c:6832 + #, fuzzy + msgid "class definition may not be declared a friend" + msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– не могуць быць ÑÑброўÑкімі" + +-#: cp/parser.c:7109 ++#: cp/parser.c:7147 + msgid "only constructors take base initializers" + msgstr "" + +-#: cp/parser.c:7160 ++#: cp/parser.c:7198 + msgid "anachronistic old-style base class initializer" + msgstr "" + +-#: cp/parser.c:7201 ++#: cp/parser.c:7239 + msgid "keyword `typename' not allowed in this context (a qualified member initializer is implicitly a type)" + msgstr "" + + #. Warn that we do not support `export'. +-#: cp/parser.c:7563 ++#: cp/parser.c:7601 + msgid "keyword `export' not implemented, and will be ignored" + msgstr "" + + #. Otherwise, emit an error about the invalid digraph, but continue + #. parsing because we got our argument list. +-#: cp/parser.c:7923 ++#: cp/parser.c:7961 + msgid "`<::' cannot begin a template-argument list" + msgstr "" + +-#: cp/parser.c:7924 ++#: cp/parser.c:7962 + msgid "`<:' is an alternate spelling for `['. Insert whitespace between `<' and `::'" + msgstr "" + +-#: cp/parser.c:7931 ++#: cp/parser.c:7969 + msgid "(if you use `-fpermissive' G++ will accept your code)" + msgstr "" + + #. Explain what went wrong. +-#: cp/parser.c:8106 ++#: cp/parser.c:8145 + msgid "non-template `%D' used as template" + msgstr "" + +-#: cp/parser.c:8107 ++#: cp/parser.c:8146 + msgid "use `%T::template %D' to indicate that it is a template" + msgstr "" + +-#: cp/parser.c:9058 ++#: cp/parser.c:9102 + msgid "using `typename' outside of template" + msgstr "" + +-#: cp/parser.c:9180 ++#: cp/parser.c:9224 + msgid "expected type-name" + msgstr "" + +-#: cp/parser.c:9239 ++#: cp/parser.c:9283 + msgid "type attributes are honored only at type definition" + msgstr "" + + #. [namespace.udecl] + #. + #. A using declaration shall not name a template-id. +-#: cp/parser.c:9622 ++#: cp/parser.c:9666 + #, fuzzy + msgid "a template-id may not appear in a using-declaration" + msgstr "\"%s\" - гÑта не пачатак дÑкларацыі" + +-#: cp/parser.c:9949 ++#: cp/parser.c:9986 + msgid "an asm-specification is not allowed on a function-definition" + msgstr "" + +-#: cp/parser.c:9951 ++#: cp/parser.c:9988 + #, fuzzy + msgid "attributes are not allowed on a function-definition" + msgstr "\"%s\" - гÑта не пачатак дÑкларацыі" + +-#: cp/parser.c:10084 ++#: cp/parser.c:10121 + msgid "attributes after parenthesized initializer ignored" + msgstr "" + +-#: cp/parser.c:10540 ++#: cp/parser.c:10591 + #, fuzzy + msgid "`%T::%D' is not a type" + msgstr "\"%s\" мае незавершаны тып" + +-#: cp/parser.c:11288 ++#: cp/parser.c:11341 + #, fuzzy + msgid "file ends in default argument" + msgstr "нехапае аргументаў у функцыі \"%s\"" + +-#: cp/parser.c:11344 ++#: cp/parser.c:11397 + msgid "deprecated use of default argument for parameter of non-function" + msgstr "" + +-#: cp/parser.c:11347 ++#: cp/parser.c:11400 + msgid "default arguments are only permitted for function parameters" + msgstr "" + +-#: cp/parser.c:12078 ++#: cp/parser.c:12166 + msgid "declaration of `%D' in `%D' which does not enclose `%D'" + msgstr "" + +-#: cp/parser.c:12091 ++#: cp/parser.c:12179 + msgid "extra qualification ignored" + msgstr "" + +-#: cp/parser.c:12102 ++#: cp/parser.c:12190 + #, fuzzy + msgid "an explicit specialization must be preceded by 'template <>'" + msgstr "ініцыÑлізацыÑ" + +-#: cp/parser.c:12385 ++#: cp/parser.c:12473 + msgid "extra semicolon" + msgstr "" + +-#: cp/parser.c:12403 ++#: cp/parser.c:12491 + msgid "a class-key must be used when declaring a friend" + msgstr "" + +-#: cp/parser.c:12434 ++#: cp/parser.c:12522 + msgid "friend declaration does not name a class or function" + msgstr "" + +-#: cp/parser.c:12605 ++#: cp/parser.c:12694 + msgid "pure-specifier on function-definition" + msgstr "" + +-#: cp/parser.c:12878 ++#: cp/parser.c:12967 + msgid "keyword `typename' not allowed outside of templates" + msgstr "" + +-#: cp/parser.c:12880 ++#: cp/parser.c:12969 + msgid "keyword `typename' not allowed in this context (the base class is implicitly a type)" + msgstr "" + +-#: cp/parser.c:13700 ++#: cp/parser.c:13790 + #, fuzzy + msgid "reference to `%D' is ambiguous" + msgstr "памер \"%s\" - %d байт" + +-#: cp/parser.c:13874 ++#: cp/parser.c:13964 + #, fuzzy + msgid "too few template-parameter-lists" + msgstr "невыкарыÑтаемы параметр \"%s\"" +@@ -16087,46 +16137,46 @@ + #. something like: + #. + #. template template void S::f(); +-#: cp/parser.c:13889 ++#: cp/parser.c:13979 + msgid "too many template-parameter-lists" + msgstr "" + + #. If begin_function_definition didn't like the definition, skip + #. the entire function. +-#: cp/parser.c:14185 ++#: cp/parser.c:14275 + #, fuzzy + msgid "invalid function declaration" + msgstr "ÐерÑчаіÑнае абвÑшчÑнне" + + #. Issue an error message. +-#: cp/parser.c:14222 ++#: cp/parser.c:14312 + #, fuzzy + msgid "named return values are no longer supported" + msgstr "-pipe не падтрымліваецца." + +-#: cp/parser.c:14561 ++#: cp/parser.c:14651 + msgid "`>>' should be `> >' within a nested template argument list" + msgstr "" + + #. If this is not a nested template argument list, the '>>' is + #. a typo for '>'. Emit an error message and continue. +-#: cp/parser.c:14569 ++#: cp/parser.c:14659 + msgid "spurious `>>', use `>' to terminate a template argument list" + msgstr "" + +-#: cp/parser.c:14574 ++#: cp/parser.c:14664 + msgid "missing `>' to terminate the template argument list" + msgstr "" + +-#: cp/parser.c:15062 ++#: cp/parser.c:15149 + msgid "`%s' tag used in naming `%#T'" + msgstr "" + +-#: cp/parser.c:15082 ++#: cp/parser.c:15169 + msgid "%D redeclared with different access" + msgstr "" + +-#: cp/parser.c:15099 ++#: cp/parser.c:15186 + msgid "`template' (as a disambiguator) is only allowed within templates" + msgstr "" + +@@ -16147,83 +16197,87 @@ + msgid "enclosing class templates are not explicitly specialized" + msgstr "" + +-#: cp/pt.c:739 cp/pt.c:780 +-msgid "specializing `%#T' in different namespace" ++#: cp/pt.c:733 ++msgid "specialization of `%D' in different namespace" + msgstr "" + +-#: cp/pt.c:740 cp/pt.c:781 ++#: cp/pt.c:734 cp/pt.c:803 + msgid " from definition of `%#D'" + msgstr "" + +-#: cp/pt.c:748 ++#: cp/pt.c:770 + msgid "specialization of `%T' after instantiation" + msgstr "" + +-#: cp/pt.c:795 ++#: cp/pt.c:802 ++msgid "specializing `%#T' in different namespace" ++msgstr "" ++ ++#: cp/pt.c:817 + #, fuzzy + msgid "specialization `%T' after instantiation `%T'" + msgstr "паўторнае абвÑшчÑнне меткі \"%s\"" + +-#: cp/pt.c:807 ++#: cp/pt.c:829 + msgid "explicit specialization of non-template `%T'" + msgstr "" + +-#: cp/pt.c:1067 ++#: cp/pt.c:1089 + msgid "specialization of %D after instantiation" + msgstr "" + +-#: cp/pt.c:1192 ++#: cp/pt.c:1220 + msgid "%s %+#D" + msgstr "" + +-#: cp/pt.c:1241 ++#: cp/pt.c:1269 + #, fuzzy + msgid "`%D' is not a function template" + msgstr "\"%s\" звычайна функцыÑ" + +-#: cp/pt.c:1389 ++#: cp/pt.c:1417 + msgid "template-id `%D' for `%+D' does not match any template declaration" + msgstr "" + +-#: cp/pt.c:1397 ++#: cp/pt.c:1425 + msgid "ambiguous template specialization `%D' for `%+D'" + msgstr "" + + #. This case handles bogus declarations like template <> + #. template void f(); +-#: cp/pt.c:1620 cp/pt.c:1694 ++#: cp/pt.c:1648 cp/pt.c:1722 + msgid "template-id `%D' in declaration of primary template" + msgstr "" + +-#: cp/pt.c:1633 ++#: cp/pt.c:1661 + msgid "template parameter list used in explicit instantiation" + msgstr "" + +-#: cp/pt.c:1639 ++#: cp/pt.c:1667 + msgid "definition provided for explicit instantiation" + msgstr "" + +-#: cp/pt.c:1645 ++#: cp/pt.c:1673 + msgid "too many template parameter lists in declaration of `%D'" + msgstr "" + +-#: cp/pt.c:1661 ++#: cp/pt.c:1689 + msgid "too few template parameter lists in declaration of `%D'" + msgstr "" + +-#: cp/pt.c:1678 ++#: cp/pt.c:1706 + msgid "explicit specialization not preceded by `template <>'" + msgstr "" + +-#: cp/pt.c:1691 ++#: cp/pt.c:1719 + msgid "partial specialization `%D' of function template" + msgstr "" + +-#: cp/pt.c:1723 ++#: cp/pt.c:1751 + msgid "default argument specified in explicit specialization" + msgstr "" + +-#: cp/pt.c:1727 ++#: cp/pt.c:1755 + msgid "template specialization with C linkage" + msgstr "" + +@@ -16235,109 +16289,119 @@ + #. program is ill-formed. + #. + #. Similar language is found in [temp.explicit]. +-#: cp/pt.c:1811 ++#: cp/pt.c:1839 + msgid "specialization of implicitly-declared special member function" + msgstr "" + +-#: cp/pt.c:1855 ++#: cp/pt.c:1883 + msgid "no member function `%D' declared in `%T'" + msgstr "" + + #. There are two many template parameter lists. +-#: cp/pt.c:2005 ++#: cp/pt.c:2033 + msgid "too many template parameter lists in declaration of `%T'" + msgstr "" + +-#: cp/pt.c:2098 ++#: cp/pt.c:2126 + msgid " shadows template parm `%#D'" + msgstr "" + +-#: cp/pt.c:2495 ++#: cp/pt.c:2523 + msgid "template parameters not used in partial specialization:" + msgstr "" + +-#: cp/pt.c:2499 ++#: cp/pt.c:2527 + msgid " `%D'" + msgstr "" + +-#: cp/pt.c:2511 ++#: cp/pt.c:2539 + msgid "partial specialization `%T' does not specialize any template arguments" + msgstr "" + +-#: cp/pt.c:2536 ++#: cp/pt.c:2564 + #, c-format + msgid "template argument `%E' involves template parameter(s)" + msgstr "" + +-#: cp/pt.c:2580 ++#: cp/pt.c:2608 + msgid "type `%T' of template argument `%E' depends on template parameter(s)" + msgstr "" + +-#: cp/pt.c:2665 ++#: cp/pt.c:2693 + #, fuzzy + msgid "no default argument for `%D'" + msgstr "нехапае аргументаў у функцыі \"%s\"" + +-#: cp/pt.c:2814 ++#: cp/pt.c:2842 + msgid "template with C linkage" + msgstr "" + +-#: cp/pt.c:2817 ++#: cp/pt.c:2845 + msgid "template class without a name" + msgstr "" + + #. [temp.mem] + #. + #. A destructor shall not be a member template. +-#: cp/pt.c:2824 ++#: cp/pt.c:2853 + msgid "destructor `%D' declared as member template" + msgstr "" + +-#: cp/pt.c:2904 ++#. [basic.stc.dynamic.allocation] ++#. ++#. An allocation function can be a function ++#. template. ... Template allocation functions shall ++#. have two or more parameters. ++#: cp/pt.c:2868 ++#, fuzzy ++msgid "invalid template declaration of `%D'" ++msgstr "паўторнае абвÑшчÑнне меткі \"%s\"" ++ ++#: cp/pt.c:2948 + msgid "`%D' does not declare a template type" + msgstr "" + +-#: cp/pt.c:2910 ++#: cp/pt.c:2954 + msgid "template definition of non-template `%#D'" + msgstr "" + +-#: cp/pt.c:2951 ++#: cp/pt.c:2995 + msgid "expected %d levels of template parms for `%#D', got %d" + msgstr "" + +-#: cp/pt.c:2963 ++#: cp/pt.c:3007 + msgid "got %d template parameters for `%#D'" + msgstr "" + +-#: cp/pt.c:2966 ++#: cp/pt.c:3010 + msgid "got %d template parameters for `%#T'" + msgstr "" + +-#: cp/pt.c:2968 ++#: cp/pt.c:3012 + #, c-format + msgid " but %d required" + msgstr "" + +-#: cp/pt.c:3053 ++#: cp/pt.c:3097 + #, fuzzy + msgid "`%T' is not a template type" + msgstr "\"%s\" мае незавершаны тып" + +-#: cp/pt.c:3069 ++#: cp/pt.c:3113 + msgid "previous declaration `%D'" + msgstr "папÑÑ€ÑднÑе абвÑшчÑньне `%D'" + +-#: cp/pt.c:3070 ++#: cp/pt.c:3114 + #, c-format + msgid "used %d template parameter%s instead of %d" + msgstr "" + +-#: cp/pt.c:3086 ++#: cp/pt.c:3130 + #, fuzzy + msgid "template parameter `%#D'" + msgstr "невыкарыÑтаемы параметр \"%s\"" + +-#: cp/pt.c:3087 ++#: cp/pt.c:3131 + msgid "redeclared here as `%#D'" + msgstr "" + +@@ -16345,286 +16409,295 @@ + #. + #. A template-parameter may not be given default arguments + #. by two different declarations in the same scope. +-#: cp/pt.c:3097 ++#: cp/pt.c:3141 + msgid "redefinition of default argument for `%#D'" + msgstr "" + +-#: cp/pt.c:3098 ++#: cp/pt.c:3142 + msgid "%J original definition appeared here" + msgstr "" + +-#: cp/pt.c:3246 ++#: cp/pt.c:3288 + #, c-format + msgid "`%E' is not a valid template argument" + msgstr "" + +-#: cp/pt.c:3250 ++#: cp/pt.c:3292 + msgid "it must be the address of a function with external linkage" + msgstr "" + +-#: cp/pt.c:3252 ++#: cp/pt.c:3294 + msgid "it must be the address of an object with external linkage" + msgstr "" + +-#: cp/pt.c:3255 ++#: cp/pt.c:3297 + msgid "it must be a pointer-to-member of the form `&X::Y'" + msgstr "" + +-#: cp/pt.c:3266 ++#: cp/pt.c:3308 + #, c-format + msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage" + msgstr "" + +-#: cp/pt.c:3281 ++#: cp/pt.c:3323 + #, c-format + msgid "address of non-extern `%E' cannot be used as template argument" + msgstr "" + +-#: cp/pt.c:3290 ++#: cp/pt.c:3332 + #, c-format + msgid "non-constant `%E' cannot be used as template argument" + msgstr "" + +-#: cp/pt.c:3298 ++#: cp/pt.c:3340 + msgid "type '%T' cannot be used as a value for a non-type template-parameter" + msgstr "" + +-#: cp/pt.c:3301 ++#: cp/pt.c:3343 + #, fuzzy + msgid "invalid use of '%D' as a non-type template-argument" + msgstr "нÑвернае выкарыÑтанне \"restict\"" + +-#: cp/pt.c:3303 ++#: cp/pt.c:3345 + #, fuzzy, c-format + msgid "invalid use of '%E' as a non-type template-argument" + msgstr "нÑвернае выкарыÑтанне \"restict\"" + +-#: cp/pt.c:3668 ++#: cp/pt.c:3710 + #, c-format + msgid "to refer to a type member of a template parameter, use `typename %E'" + msgstr "" + +-#: cp/pt.c:3681 cp/pt.c:3699 cp/pt.c:3738 ++#: cp/pt.c:3723 cp/pt.c:3741 cp/pt.c:3780 + msgid "type/value mismatch at argument %d in template parameter list for `%D'" + msgstr "" + +-#: cp/pt.c:3684 ++#: cp/pt.c:3726 + msgid " expected a constant of type `%T', got `%T'" + msgstr "" + +-#: cp/pt.c:3688 ++#: cp/pt.c:3730 + #, c-format + msgid " expected a class template, got `%E'" + msgstr "" + +-#: cp/pt.c:3690 ++#: cp/pt.c:3732 + #, c-format + msgid " expected a type, got `%E'" + msgstr "" + +-#: cp/pt.c:3702 ++#: cp/pt.c:3744 + msgid " expected a type, got `%T'" + msgstr "" + +-#: cp/pt.c:3704 ++#: cp/pt.c:3746 + msgid " expected a class template, got `%T'" + msgstr "" + +-#: cp/pt.c:3740 ++#: cp/pt.c:3782 + msgid " expected a template of type `%D', got `%D'" + msgstr "" + +-#: cp/pt.c:3775 ++#: cp/pt.c:3817 + msgid "could not convert template argument `%E' to `%T'" + msgstr "" + +-#: cp/pt.c:3815 ++#: cp/pt.c:3857 + #, c-format + msgid "wrong number of template arguments (%d, should be %d)" + msgstr "" + +-#: cp/pt.c:3819 ++#: cp/pt.c:3861 + #, fuzzy + msgid "provided for `%D'" + msgstr "дÑÑтруктару неабходны \"%#D\"" + +-#: cp/pt.c:3847 ++#: cp/pt.c:3889 + #, fuzzy, c-format + msgid "template argument %d is invalid" + msgstr "параметр \"%s\" ініцыÑлізаваны" + +-#: cp/pt.c:4068 ++#: cp/pt.c:4110 + msgid "non-template used as template" + msgstr "" + +-#: cp/pt.c:4208 ++#: cp/pt.c:4250 + msgid "non-template type `%T' used as a template" + msgstr "" + +-#: cp/pt.c:4210 ++#: cp/pt.c:4252 + #, fuzzy + msgid "for template declaration `%D'" + msgstr "пуÑтое абвÑшчÑнне" + +-#: cp/pt.c:4857 ++#: cp/pt.c:4899 + msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'" + msgstr "" + +-#: cp/pt.c:5296 ++#: cp/pt.c:5338 + msgid "ambiguous class template instantiation for `%#T'" + msgstr "" + +-#: cp/pt.c:5302 ++#: cp/pt.c:5344 + msgid "%s %+#T" + msgstr "" + +-#: cp/pt.c:6308 cp/pt.c:6428 ++#: cp/pt.c:6382 + msgid "instantiation of `%D' as type `%T'" + msgstr "" + +-#: cp/pt.c:6470 ++#: cp/pt.c:6542 + msgid "invalid parameter type `%T'" + msgstr "нерÑчаіÑны тып парамÑтра `%T'" + +-#: cp/pt.c:6472 ++#: cp/pt.c:6544 + msgid "in declaration `%D'" + msgstr "у абвÑшчÑньні `%D'" + +-#: cp/pt.c:6546 ++#: cp/pt.c:6618 + msgid "creating pointer to member function of non-class type `%T'" + msgstr "" + +-#: cp/pt.c:6685 ++#: cp/pt.c:6758 + msgid "creating array with size zero" + msgstr "" + +-#: cp/pt.c:6699 ++#: cp/pt.c:6772 + #, c-format + msgid "creating array with size zero (`%E')" + msgstr "" + +-#: cp/pt.c:6938 ++#: cp/pt.c:7011 + msgid "forming reference to void" + msgstr "" + +-#: cp/pt.c:6940 ++#: cp/pt.c:7013 + msgid "forming %s to reference type `%T'" + msgstr "" + +-#: cp/pt.c:6977 ++#: cp/pt.c:7050 + msgid "creating pointer to member of non-class type `%T'" + msgstr "" + +-#: cp/pt.c:6983 ++#: cp/pt.c:7056 + msgid "creating pointer to member reference type `%T'" + msgstr "" + +-#: cp/pt.c:7069 ++#: cp/pt.c:7142 + msgid "creating array of `%T'" + msgstr "" + +-#: cp/pt.c:7075 ++#: cp/pt.c:7148 + msgid "creating array of `%T', which is an abstract class type" + msgstr "" + +-#: cp/pt.c:7119 ++#: cp/pt.c:7192 + msgid "`%T' is not a class, struct, or union type" + msgstr "" + +-#: cp/pt.c:7232 ++#: cp/pt.c:7305 + #, c-format + msgid "use of `%s' in template" + msgstr "" + +-#: cp/pt.c:7345 ++#: cp/pt.c:7418 + #, c-format + msgid "dependent-name `%E' is parsed as a non-type, but instantiation yields a type" + msgstr "" + +-#: cp/pt.c:7347 ++#: cp/pt.c:7420 + #, c-format + msgid "say `typename %E' if a type is meant" + msgstr "" + +-#: cp/pt.c:8613 ++#: cp/pt.c:8589 ++msgid "`%T' is not a class or namespace" ++msgstr "" ++ ++#: cp/pt.c:8592 ++#, fuzzy ++msgid "`%D' is not a class or namespace" ++msgstr "\"%s\" звычайна функцыÑ" ++ ++#: cp/pt.c:8709 + msgid "`%T' uses anonymous type" + msgstr "" + +-#: cp/pt.c:8615 ++#: cp/pt.c:8711 + msgid "`%T' uses local type `%T'" + msgstr "" + +-#: cp/pt.c:8623 ++#: cp/pt.c:8719 + #, fuzzy + msgid "`%T' is a variably modified type" + msgstr "\"%s\" мае незавершаны тып" + +-#: cp/pt.c:8634 ++#: cp/pt.c:8730 + #, fuzzy, c-format + msgid "integral expression `%E' is not constant" + msgstr "тып параметра \"%s\" не аб'Ñўлены" + +-#: cp/pt.c:8639 ++#: cp/pt.c:8735 + msgid " trying to instantiate `%D'" + msgstr "" + +-#: cp/pt.c:9156 ++#: cp/pt.c:9252 + msgid "incomplete type unification" + msgstr "" + +-#: cp/pt.c:10112 ++#: cp/pt.c:10211 + #, c-format + msgid "use of `%s' in template type unification" + msgstr "" + +-#: cp/pt.c:10546 cp/pt.c:10618 ++#: cp/pt.c:10644 cp/pt.c:10716 + msgid "explicit instantiation of non-template `%#D'" + msgstr "" + +-#: cp/pt.c:10562 cp/pt.c:10613 ++#: cp/pt.c:10660 cp/pt.c:10711 + msgid "no matching template for `%D' found" + msgstr "" + +-#: cp/pt.c:10568 ++#: cp/pt.c:10666 + msgid "explicit instantiation of `%#D'" + msgstr "" + +-#: cp/pt.c:10605 ++#: cp/pt.c:10703 + #, fuzzy + msgid "duplicate explicit instantiation of `%#D'" + msgstr "паўторнае абвÑшчÑнне меткі \"%s\"" + +-#: cp/pt.c:10627 ++#: cp/pt.c:10725 + msgid "ISO C++ forbids the use of `extern' on explicit instantiations" + msgstr "" + +-#: cp/pt.c:10631 cp/pt.c:10712 ++#: cp/pt.c:10729 cp/pt.c:10810 + msgid "storage class `%D' applied to template instantiation" + msgstr "" + +-#: cp/pt.c:10684 ++#: cp/pt.c:10782 + msgid "explicit instantiation of non-template type `%T'" + msgstr "" + +-#: cp/pt.c:10693 ++#: cp/pt.c:10791 + msgid "explicit instantiation of `%#T' before definition of template" + msgstr "" + +-#: cp/pt.c:10701 ++#: cp/pt.c:10799 + #, c-format + msgid "ISO C++ forbids the use of `%s' on explicit instantiations" + msgstr "" + +-#: cp/pt.c:10745 ++#: cp/pt.c:10843 + #, fuzzy + msgid "duplicate explicit instantiation of `%#T'" + msgstr "паўторнае абвÑшчÑнне меткі \"%s\"" + +-#: cp/pt.c:11126 ++#: cp/pt.c:11224 + msgid "explicit instantiation of `%D' but no definition available" + msgstr "" + +-#: cp/pt.c:11562 ++#: cp/pt.c:11660 + msgid "`%#T' is not a valid type for a template constant parameter" + msgstr "" + +@@ -16670,39 +16743,39 @@ + msgid "`%T' is an inaccessible base of `%T'" + msgstr "" + +-#: cp/search.c:1767 ++#: cp/search.c:1805 + msgid "invalid covariant return type for `%#D'" + msgstr "" + +-#: cp/search.c:1768 cp/search.c:1774 ++#: cp/search.c:1806 cp/search.c:1812 + msgid " overriding `%#D'" + msgstr "" + +-#: cp/search.c:1772 ++#: cp/search.c:1810 + msgid "conflicting return type specified for `%#D'" + msgstr "" + +-#: cp/search.c:1786 ++#: cp/search.c:1824 + #, c-format + msgid "looser throw specifier for `%#F'" + msgstr "" + +-#: cp/search.c:1787 ++#: cp/search.c:1825 + #, c-format + msgid " overriding `%#F'" + msgstr "" + + #. A static member function cannot match an inherited + #. virtual member function. +-#: cp/search.c:1877 ++#: cp/search.c:1915 + msgid "`%#D' cannot be declared" + msgstr "" + +-#: cp/search.c:1878 ++#: cp/search.c:1916 + msgid " since `%#D' declared in base class" + msgstr "" + +-#: cp/search.c:1955 ++#: cp/search.c:1993 + msgid "`%#D' needs a final overrider" + msgstr "" + +@@ -16723,121 +16796,121 @@ + msgid "object missing in reference to `%D'" + msgstr "" + +-#: cp/semantics.c:1721 ++#: cp/semantics.c:1718 + #, fuzzy + msgid "arguments to destructor are not allowed" + msgstr "памер \"%s\" больш чам %d байт" + +-#: cp/semantics.c:1770 ++#: cp/semantics.c:1767 + msgid "`this' is unavailable for static member functions" + msgstr "" + +-#: cp/semantics.c:1776 ++#: cp/semantics.c:1773 + msgid "invalid use of `this' in non-member function" + msgstr "" + +-#: cp/semantics.c:1778 ++#: cp/semantics.c:1775 + msgid "invalid use of `this' at top level" + msgstr "" + +-#: cp/semantics.c:1802 ++#: cp/semantics.c:1799 + msgid "invalid qualifying scope in pseudo-destructor name" + msgstr "" + +-#: cp/semantics.c:1822 ++#: cp/semantics.c:1819 + msgid "`%E' is not of type `%T'" + msgstr "" + +-#: cp/semantics.c:1933 ++#: cp/semantics.c:1930 + msgid "template type parameters must use the keyword `class' or `typename'" + msgstr "" + +-#: cp/semantics.c:1977 ++#: cp/semantics.c:1974 + #, fuzzy + msgid "invalid use of type `%T' as a default value for a template template-parameter" + msgstr "нÑвернае выкарыÑтанне \"restict\"" + +-#: cp/semantics.c:1980 ++#: cp/semantics.c:1977 + #, fuzzy + msgid "invalid use of `%D' as a default value for a template template-parameter" + msgstr "нÑвернае выкарыÑтанне \"restict\"" + +-#: cp/semantics.c:1984 ++#: cp/semantics.c:1981 + #, fuzzy + msgid "invalid default argument for a template template parameter" + msgstr "нÑвернае выкарыÑтанне \"restict\"" + +-#: cp/semantics.c:2019 ++#: cp/semantics.c:2016 + msgid "definition of `%#T' inside template parameter list" + msgstr "" + +-#: cp/semantics.c:2030 ++#: cp/semantics.c:2027 + msgid "invalid definition of qualified type `%T'" + msgstr "" + +-#: cp/semantics.c:2045 ++#: cp/semantics.c:2042 + msgid "previous definition of `%#T'" + msgstr "папÑÑ€ÑднÑе вызначÑньне `%#T'" + +-#: cp/semantics.c:2249 ++#: cp/semantics.c:2246 + #, fuzzy + msgid "invalid base-class specification" + msgstr "ÐерÑчаіÑÐ½Ð°Ñ ÑпецыфікацыÑ! Памылка Ñž cc." + +-#: cp/semantics.c:2258 ++#: cp/semantics.c:2255 + msgid "base class `%T' has cv qualifiers" + msgstr "" + +-#: cp/semantics.c:2290 ++#: cp/semantics.c:2287 + msgid "multiple declarators in template declaration" + msgstr "" + +-#: cp/semantics.c:2301 ++#: cp/semantics.c:2298 + msgid "incomplete type `%T' used in nested name specifier" + msgstr "" + +-#: cp/semantics.c:2303 cp/typeck.c:1635 ++#: cp/semantics.c:2300 cp/typeck.c:1635 + #, fuzzy + msgid "`%D' is not a member of `%T'" + msgstr "\"%s\" мае незавершаны тып" + +-#: cp/semantics.c:2306 ++#: cp/semantics.c:2303 + #, fuzzy + msgid "`%D' is not a member of `%D'" + msgstr "\"%s\" мае незавершаны тып" + +-#: cp/semantics.c:2431 ++#: cp/semantics.c:2428 + msgid "template parameter `%D' of type `%T' is not allowed in an integral constant expression because it is not of integral or enumeration type" + msgstr "" + +-#: cp/semantics.c:2584 ++#: cp/semantics.c:2572 + #, fuzzy + msgid "`%D' cannot appear in a constant-expression" + msgstr "памер маÑіва \"%s\" адмоўны" + +-#: cp/semantics.c:2593 ++#: cp/semantics.c:2580 + msgid "use of namespace `%D' as expression" + msgstr "" + +-#: cp/semantics.c:2598 ++#: cp/semantics.c:2585 + msgid "use of class template `%T' as expression" + msgstr "" + + #. Ambiguous reference to base members. +-#: cp/semantics.c:2604 ++#: cp/semantics.c:2591 + msgid "request for member `%D' is ambiguous in multiple inheritance lattice" + msgstr "" + +-#: cp/semantics.c:2664 ++#: cp/semantics.c:2652 + #, c-format + msgid "use of %s from containing function" + msgstr "" + +-#: cp/semantics.c:2667 ++#: cp/semantics.c:2655 + msgid " `%#D' declared here" + msgstr "" + +-#: cp/semantics.c:2718 ++#: cp/semantics.c:2706 + #, fuzzy, c-format + msgid "type of `%E' is unknown" + msgstr "вÑртаемы тып \"%s\" не \"int\"" +@@ -16851,44 +16924,44 @@ + msgid "`%V' qualifiers cannot be applied to `%T'" + msgstr "" + +-#: cp/tree.c:1821 ++#: cp/tree.c:1829 + #, c-format + msgid "`%s' attribute can only be applied to Java class definitions" + msgstr "" + +-#: cp/tree.c:1850 ++#: cp/tree.c:1858 + #, c-format + msgid "`%s' attribute can only be applied to class definitions" + msgstr "" + +-#: cp/tree.c:1856 ++#: cp/tree.c:1864 + #, c-format + msgid "`%s' is obsolete; g++ vtables are now COM-compatible by default" + msgstr "" + +-#: cp/tree.c:1880 ++#: cp/tree.c:1888 + msgid "requested init_priority is not an integer constant" + msgstr "" + +-#: cp/tree.c:1901 ++#: cp/tree.c:1909 + #, c-format + msgid "can only use `%s' attribute on file-scope definitions of objects of class type" + msgstr "" + +-#: cp/tree.c:1909 ++#: cp/tree.c:1917 + msgid "requested init_priority is out of range" + msgstr "" + +-#: cp/tree.c:1919 ++#: cp/tree.c:1927 + msgid "requested init_priority is reserved for internal use" + msgstr "" + +-#: cp/tree.c:1929 ++#: cp/tree.c:1937 + #, fuzzy, c-format + msgid "`%s' attribute is not supported on this platform" + msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹" + +-#: cp/tree.c:2524 ++#: cp/tree.c:2534 + #, c-format + msgid "lang_* check: failed in %s, at %s:%d" + msgstr "" +@@ -17111,264 +17184,264 @@ + msgid "invalid use of a pointer to an incomplete type in pointer arithmetic" + msgstr "" + +-#: cp/typeck.c:3582 ++#: cp/typeck.c:3600 + #, c-format + msgid "invalid use of '%E' to form a pointer-to-member-function. Use a qualified-id." + msgstr "" + +-#: cp/typeck.c:3588 ++#: cp/typeck.c:3606 + #, c-format + msgid "parenthesis around '%E' cannot be used to form a pointer-to-member-function" + msgstr "" + +-#: cp/typeck.c:3610 ++#: cp/typeck.c:3628 + msgid "taking address of temporary" + msgstr "" + +-#: cp/typeck.c:3845 ++#: cp/typeck.c:3863 + #, c-format + msgid "ISO C++ forbids %sing an enum" + msgstr "" + +-#: cp/typeck.c:3856 ++#: cp/typeck.c:3874 + #, fuzzy + msgid "cannot %s a pointer to incomplete type `%T'" + msgstr "\"%s\" мае незавершаны тып" + +-#: cp/typeck.c:3862 ++#: cp/typeck.c:3880 + msgid "ISO C++ forbids %sing a pointer of type `%T'" + msgstr "" + +-#: cp/typeck.c:3887 ++#: cp/typeck.c:3905 + msgid "cast to non-reference type used as lvalue" + msgstr "" + +-#: cp/typeck.c:3921 ++#: cp/typeck.c:3939 + msgid "invalid use of `--' on bool variable `%D'" + msgstr "" + + #. ARM $3.4 +-#: cp/typeck.c:3952 ++#: cp/typeck.c:3970 + msgid "ISO C++ forbids taking address of function `::main'" + msgstr "" + + #. An expression like &memfn. +-#: cp/typeck.c:4027 ++#: cp/typeck.c:4045 + msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function. Say `&%T::%D'" + msgstr "" + +-#: cp/typeck.c:4032 ++#: cp/typeck.c:4050 + msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say `&%T::%D'" + msgstr "" + +-#: cp/typeck.c:4060 ++#: cp/typeck.c:4078 + msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression" + msgstr "" + +-#: cp/typeck.c:4080 ++#: cp/typeck.c:4098 + msgid "unary `&'" + msgstr "" + +-#: cp/typeck.c:4113 ++#: cp/typeck.c:4131 + #, fuzzy + msgid "attempt to take address of bit-field structure member `%D'" + msgstr "не магу атрымаць Ð°Ð´Ñ€Ð°Ñ Ð±Ñ–Ñ‚Ð°Ð²Ð°Ð³Ð° Ð¿Ð¾Ð»Ñ \"%s\"" + +-#: cp/typeck.c:4227 ++#: cp/typeck.c:4245 + msgid "taking address of destructor" + msgstr "" + +-#: cp/typeck.c:4240 ++#: cp/typeck.c:4258 + msgid "taking address of bound pointer-to-member expression" + msgstr "" + +-#: cp/typeck.c:4248 ++#: cp/typeck.c:4266 + msgid "cannot create pointer to reference member `%D'" + msgstr "" + +-#: cp/typeck.c:4311 ++#: cp/typeck.c:4329 + msgid "cannot take the address of `this', which is an rvalue expression" + msgstr "" + +-#: cp/typeck.c:4330 ++#: cp/typeck.c:4348 + msgid "address requested for `%D', which is declared `register'" + msgstr "" + +-#: cp/typeck.c:4398 ++#: cp/typeck.c:4416 + #, c-format + msgid "%s expression list treated as compound expression" + msgstr "" + +-#: cp/typeck.c:4472 ++#: cp/typeck.c:4490 + msgid "%s from type `%T' to type `%T' casts away constness" + msgstr "" + +-#: cp/typeck.c:4674 ++#: cp/typeck.c:4692 + msgid "invalid static_cast from type `%T' to type `%T'" + msgstr "" + +-#: cp/typeck.c:4714 ++#: cp/typeck.c:4732 + msgid "invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'" + msgstr "" + +-#: cp/typeck.c:4734 ++#: cp/typeck.c:4752 + msgid "reinterpret_cast from `%T' to `%T' loses precision" + msgstr "" + +-#: cp/typeck.c:4753 ++#: cp/typeck.c:4771 + msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object" + msgstr "" + +-#: cp/typeck.c:4759 ++#: cp/typeck.c:4777 + msgid "invalid reinterpret_cast from type `%T' to type `%T'" + msgstr "" + +-#: cp/typeck.c:4787 ++#: cp/typeck.c:4805 + msgid "invalid use of const_cast with type `%T', which is not a pointer, reference, nor a pointer-to-data-member type" + msgstr "" + +-#: cp/typeck.c:4790 ++#: cp/typeck.c:4808 + msgid "invalid use of const_cast with type `%T', which is a pointer or reference to a function type" + msgstr "" + +-#: cp/typeck.c:4813 ++#: cp/typeck.c:4831 + msgid "invalid const_cast of an rvalue of type `%T' to type `%T'" + msgstr "" + +-#: cp/typeck.c:4830 ++#: cp/typeck.c:4848 + msgid "invalid const_cast from type `%T' to type `%T'" + msgstr "" + +-#: cp/typeck.c:4870 cp/typeck.c:4875 ++#: cp/typeck.c:4888 cp/typeck.c:4893 + msgid "ISO C++ forbids casting to an array type `%T'" + msgstr "" + +-#: cp/typeck.c:4883 ++#: cp/typeck.c:4901 + #, fuzzy + msgid "invalid cast to function type `%T'" + msgstr "ÐерÑчаіÑны выбар \"%s\"" + +-#: cp/typeck.c:4939 ++#: cp/typeck.c:4957 + msgid "cast from `%T' to `%T' discards qualifiers from pointer target type" + msgstr "" + +-#: cp/typeck.c:4985 ++#: cp/typeck.c:5003 + msgid "cast from `%T' to `%T' increases required alignment of target type" + msgstr "" + +-#: cp/typeck.c:5152 ++#: cp/typeck.c:5170 + msgid " in evaluation of `%Q(%#T, %#T)'" + msgstr "" + +-#: cp/typeck.c:5194 ++#: cp/typeck.c:5212 + msgid "ISO C++ forbids cast to non-reference type used as lvalue" + msgstr "" + +-#: cp/typeck.c:5267 ++#: cp/typeck.c:5285 + msgid "incompatible types in assignment of `%T' to `%T'" + msgstr "" + +-#: cp/typeck.c:5274 ++#: cp/typeck.c:5292 + msgid "ISO C++ forbids assignment of arrays" + msgstr "" + +-#: cp/typeck.c:5374 ++#: cp/typeck.c:5392 + msgid " in pointer to member function conversion" + msgstr "" + +-#: cp/typeck.c:5382 ++#: cp/typeck.c:5400 + msgid " in pointer to member conversion" + msgstr "" + + #. This is a reinterpret cast, we choose to do nothing. +-#: cp/typeck.c:5392 cp/typeck.c:5407 ++#: cp/typeck.c:5410 cp/typeck.c:5425 + msgid "pointer to member cast via virtual base `%T'" + msgstr "" + +-#: cp/typeck.c:5410 ++#: cp/typeck.c:5428 + msgid "pointer to member conversion via virtual base `%T'" + msgstr "" + +-#: cp/typeck.c:5480 ++#: cp/typeck.c:5498 + msgid "invalid conversion to type `%T' from type `%T'" + msgstr "" + +-#: cp/typeck.c:5636 ++#: cp/typeck.c:5657 + msgid "passing NULL used for non-pointer %s %P of `%D'" + msgstr "" + +-#: cp/typeck.c:5639 ++#: cp/typeck.c:5660 + msgid "%s to non-pointer type `%T' from NULL" + msgstr "" + +-#: cp/typeck.c:5647 ++#: cp/typeck.c:5668 + msgid "passing `%T' for %s %P of `%D'" + msgstr "" + +-#: cp/typeck.c:5650 ++#: cp/typeck.c:5671 + msgid "%s to `%T' from `%T'" + msgstr "" + +-#: cp/typeck.c:5660 ++#: cp/typeck.c:5681 + msgid "passing negative value `%E' for %s %P of `%D'" + msgstr "" + +-#: cp/typeck.c:5663 ++#: cp/typeck.c:5684 + msgid "%s of negative value `%E' to `%T'" + msgstr "" + +-#: cp/typeck.c:5751 ++#: cp/typeck.c:5772 + msgid "cannot convert `%T' to `%T' for argument `%P' to `%D'" + msgstr "" + +-#: cp/typeck.c:5754 ++#: cp/typeck.c:5775 + msgid "cannot convert `%T' to `%T' in %s" + msgstr "" + +-#: cp/typeck.c:5831 cp/typeck.c:5833 ++#: cp/typeck.c:5852 cp/typeck.c:5854 + msgid "in passing argument %P of `%+D'" + msgstr "" + +-#: cp/typeck.c:5940 ++#: cp/typeck.c:5961 + msgid "returning reference to temporary" + msgstr "" + +-#: cp/typeck.c:5947 ++#: cp/typeck.c:5968 + msgid "reference to non-lvalue returned" + msgstr "" + +-#: cp/typeck.c:5959 ++#: cp/typeck.c:5980 + msgid "reference to local variable `%D' returned" + msgstr "" + +-#: cp/typeck.c:5962 ++#: cp/typeck.c:5983 + msgid "address of local variable `%D' returned" + msgstr "" + +-#: cp/typeck.c:5992 ++#: cp/typeck.c:6013 + msgid "returning a value from a destructor" + msgstr "" + + #. If a return statement appears in a handler of the + #. function-try-block of a constructor, the program is ill-formed. +-#: cp/typeck.c:6000 ++#: cp/typeck.c:6021 + msgid "cannot return from a handler of a function-try-block of a constructor" + msgstr "" + + #. You can't return a value from a constructor. +-#: cp/typeck.c:6003 ++#: cp/typeck.c:6024 + msgid "returning a value from a constructor" + msgstr "" + +-#: cp/typeck.c:6026 ++#: cp/typeck.c:6047 + msgid "return-statement with no value, in function returning '%T'" + msgstr "" + +-#: cp/typeck.c:6043 ++#: cp/typeck.c:6064 + msgid "return-statement with a value, in function returning 'void'" + msgstr "" + +-#: cp/typeck.c:6065 ++#: cp/typeck.c:6086 + msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)" + msgstr "" + +@@ -17420,129 +17493,129 @@ + msgid "cannot initialize arrays using this syntax" + msgstr "" + +-#: cp/typeck2.c:545 ++#: cp/typeck2.c:535 + msgid "initializing array with parameter list" + msgstr "" + +-#: cp/typeck2.c:600 ++#: cp/typeck2.c:590 + msgid "initializer for scalar variable requires one element" + msgstr "" + +-#: cp/typeck2.c:607 ++#: cp/typeck2.c:597 + msgid "braces around scalar initializer for `%T'" + msgstr "" + +-#: cp/typeck2.c:610 ++#: cp/typeck2.c:600 + msgid "ignoring extra initializers for `%T'" + msgstr "" + +-#: cp/typeck2.c:622 ++#: cp/typeck2.c:612 + msgid "variable-sized object of type `%T' may not be initialized" + msgstr "" + +-#: cp/typeck2.c:632 ++#: cp/typeck2.c:622 + msgid "subobject of type `%T' must be initialized by constructor, not by `%E'" + msgstr "" + +-#: cp/typeck2.c:697 ++#: cp/typeck2.c:687 + msgid "aggregate has a partly bracketed initializer" + msgstr "" + +-#: cp/typeck2.c:735 cp/typeck2.c:840 ++#: cp/typeck2.c:725 cp/typeck2.c:830 + msgid "non-trivial labeled initializers" + msgstr "" + +-#: cp/typeck2.c:752 ++#: cp/typeck2.c:742 + msgid "non-empty initializer for array of empty elements" + msgstr "" + +-#: cp/typeck2.c:806 ++#: cp/typeck2.c:796 + msgid "initializer list for object of class with virtual base classes" + msgstr "" + +-#: cp/typeck2.c:812 ++#: cp/typeck2.c:802 + msgid "initializer list for object of class with base classes" + msgstr "" + +-#: cp/typeck2.c:818 ++#: cp/typeck2.c:808 + msgid "initializer list for object using virtual functions" + msgstr "" + +-#: cp/typeck2.c:880 cp/typeck2.c:896 ++#: cp/typeck2.c:870 cp/typeck2.c:886 + #, fuzzy + msgid "missing initializer for member `%D'" + msgstr "прапушчан ініцыÑлізатар" + +-#: cp/typeck2.c:885 ++#: cp/typeck2.c:875 + msgid "uninitialized const member `%D'" + msgstr "" + +-#: cp/typeck2.c:887 ++#: cp/typeck2.c:877 + #, fuzzy + msgid "member `%D' with uninitialized const fields" + msgstr "параметр \"%s\" ініцыÑлізаваны" + +-#: cp/typeck2.c:890 ++#: cp/typeck2.c:880 + #, fuzzy + msgid "member `%D' is uninitialized reference" + msgstr "параметр \"%s\" ініцыÑлізаваны" + +-#: cp/typeck2.c:937 ++#: cp/typeck2.c:927 + msgid "index value instead of field name in union initializer" + msgstr "" + +-#: cp/typeck2.c:949 ++#: cp/typeck2.c:939 + msgid "no field `%D' in union being initialized" + msgstr "" + +-#: cp/typeck2.c:957 ++#: cp/typeck2.c:947 + msgid "union `%T' with no named members cannot be initialized" + msgstr "" + +-#: cp/typeck2.c:993 ++#: cp/typeck2.c:983 + msgid "excess elements in aggregate initializer" + msgstr "" + +-#: cp/typeck2.c:1102 ++#: cp/typeck2.c:1092 + msgid "circular pointer delegation detected" + msgstr "" + +-#: cp/typeck2.c:1115 ++#: cp/typeck2.c:1105 + msgid "base operand of `->' has non-pointer type `%T'" + msgstr "" + +-#: cp/typeck2.c:1139 ++#: cp/typeck2.c:1129 + msgid "result of `operator->()' yields non-pointer result" + msgstr "" + +-#: cp/typeck2.c:1141 ++#: cp/typeck2.c:1131 + msgid "base operand of `->' is not a pointer" + msgstr "" + +-#: cp/typeck2.c:1164 ++#: cp/typeck2.c:1154 + msgid "`%E' cannot be used as a member pointer, since it is of type `%T'" + msgstr "" + +-#: cp/typeck2.c:1172 ++#: cp/typeck2.c:1162 + msgid "cannot apply member pointer `%E' to `%E', which is of non-aggregate type `%T'" + msgstr "" + +-#: cp/typeck2.c:1182 ++#: cp/typeck2.c:1172 + msgid "member type `%T::' incompatible with object type `%T'" + msgstr "" + +-#: cp/typeck2.c:1398 ++#: cp/typeck2.c:1388 + #, fuzzy + msgid "call to function `%D' which throws incomplete type `%#T'" + msgstr "\"%s\" мае незавершаны тып" + +-#: cp/typeck2.c:1401 ++#: cp/typeck2.c:1391 + #, fuzzy + msgid "call to function which throws incomplete type `%#T'" + msgstr "\"%s\" мае незавершаны тып" + + #. XXX Not i18n clean. +-#: cp/cp-tree.h:3756 ++#: cp/cp-tree.h:3775 + #, c-format + msgid "%s is deprecated, please see the documentation for details" + msgstr "" +@@ -19093,323 +19166,260 @@ + msgid "internal error - invalid Utf8 name" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse-scan.y:880 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:949 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1290 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1351 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1555 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1777 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1786 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1797 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1808 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1820 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1835 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1852 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1854 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1935 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2106 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2168 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2320 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2332 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2339 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2346 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2357 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2359 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2397 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2399 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2401 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2422 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2424 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2426 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2442 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2444 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2465 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2467 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2469 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2497 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2499 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2501 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2503 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2521 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2523 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2534 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2545 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2556 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2567 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2578 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2591 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2595 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2597 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2610 ++#: ../../gcc/java/parse-scan.y:880 ../../gcc/java/parse.y:949 ++#: ../../gcc/java/parse.y:1290 ../../gcc/java/parse.y:1351 ++#: ../../gcc/java/parse.y:1555 ../../gcc/java/parse.y:1777 ++#: ../../gcc/java/parse.y:1786 ../../gcc/java/parse.y:1797 ++#: ../../gcc/java/parse.y:1808 ../../gcc/java/parse.y:1820 ++#: ../../gcc/java/parse.y:1835 ../../gcc/java/parse.y:1852 ++#: ../../gcc/java/parse.y:1854 ../../gcc/java/parse.y:1935 ++#: ../../gcc/java/parse.y:2106 ../../gcc/java/parse.y:2168 ++#: ../../gcc/java/parse.y:2320 ../../gcc/java/parse.y:2332 ++#: ../../gcc/java/parse.y:2339 ../../gcc/java/parse.y:2346 ++#: ../../gcc/java/parse.y:2357 ../../gcc/java/parse.y:2359 ++#: ../../gcc/java/parse.y:2397 ../../gcc/java/parse.y:2399 ++#: ../../gcc/java/parse.y:2401 ../../gcc/java/parse.y:2422 ++#: ../../gcc/java/parse.y:2424 ../../gcc/java/parse.y:2426 ++#: ../../gcc/java/parse.y:2442 ../../gcc/java/parse.y:2444 ++#: ../../gcc/java/parse.y:2465 ../../gcc/java/parse.y:2467 ++#: ../../gcc/java/parse.y:2469 ../../gcc/java/parse.y:2497 ++#: ../../gcc/java/parse.y:2499 ../../gcc/java/parse.y:2501 ++#: ../../gcc/java/parse.y:2503 ../../gcc/java/parse.y:2521 ++#: ../../gcc/java/parse.y:2523 ../../gcc/java/parse.y:2534 ++#: ../../gcc/java/parse.y:2545 ../../gcc/java/parse.y:2556 ++#: ../../gcc/java/parse.y:2567 ../../gcc/java/parse.y:2578 ++#: ../../gcc/java/parse.y:2591 ../../gcc/java/parse.y:2595 ++#: ../../gcc/java/parse.y:2597 ../../gcc/java/parse.y:2610 + msgid "Missing term" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse-scan.y:882 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:721 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:759 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:784 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:970 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1325 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1531 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1533 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1762 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1788 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1799 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1810 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1822 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1837 ++#: ../../gcc/java/parse-scan.y:882 ../../gcc/java/parse.y:721 ++#: ../../gcc/java/parse.y:759 ../../gcc/java/parse.y:784 ++#: ../../gcc/java/parse.y:970 ../../gcc/java/parse.y:1325 ++#: ../../gcc/java/parse.y:1531 ../../gcc/java/parse.y:1533 ++#: ../../gcc/java/parse.y:1762 ../../gcc/java/parse.y:1788 ++#: ../../gcc/java/parse.y:1799 ../../gcc/java/parse.y:1810 ++#: ../../gcc/java/parse.y:1822 ../../gcc/java/parse.y:1837 + msgid "';' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:719 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:757 ++#: ../../gcc/java/parse.y:719 ../../gcc/java/parse.y:757 + msgid "Missing name" + msgstr "Прапушчана назва" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:782 ++#: ../../gcc/java/parse.y:782 + msgid "'*' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:796 ++#: ../../gcc/java/parse.y:796 + msgid "Class or interface declaration expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:833 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:835 ++#: ../../gcc/java/parse.y:833 ../../gcc/java/parse.y:835 + msgid "Missing class name" + msgstr "Прапушчана назва клаÑа" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:838 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:842 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:850 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1010 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1271 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1273 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1597 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1848 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1880 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1942 ++#: ../../gcc/java/parse.y:838 ../../gcc/java/parse.y:842 ++#: ../../gcc/java/parse.y:850 ../../gcc/java/parse.y:1010 ++#: ../../gcc/java/parse.y:1271 ../../gcc/java/parse.y:1273 ++#: ../../gcc/java/parse.y:1597 ../../gcc/java/parse.y:1848 ++#: ../../gcc/java/parse.y:1880 ../../gcc/java/parse.y:1942 + msgid "'{' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:852 ++#: ../../gcc/java/parse.y:852 + msgid "Missing super class name" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:862 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:878 ++#: ../../gcc/java/parse.y:862 ../../gcc/java/parse.y:878 + msgid "Missing interface name" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:964 ++#: ../../gcc/java/parse.y:964 + msgid "Missing variable initializer" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:981 ++#: ../../gcc/java/parse.y:981 + msgid "Invalid declaration" + msgstr "ÐерÑчаіÑнае абвÑшчÑнне" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:984 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1069 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2143 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2165 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2169 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2204 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2281 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2291 ++#: ../../gcc/java/parse.y:984 ../../gcc/java/parse.y:1069 ++#: ../../gcc/java/parse.y:2143 ../../gcc/java/parse.y:2165 ++#: ../../gcc/java/parse.y:2169 ../../gcc/java/parse.y:2204 ++#: ../../gcc/java/parse.y:2281 ../../gcc/java/parse.y:2291 + msgid "']' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:988 ++#: ../../gcc/java/parse.y:988 + msgid "Unbalanced ']'" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1024 ++#: ../../gcc/java/parse.y:1024 + msgid "Invalid method declaration, method name required" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1029 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1034 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1039 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2026 ++#: ../../gcc/java/parse.y:1029 ../../gcc/java/parse.y:1034 ++#: ../../gcc/java/parse.y:1039 ../../gcc/java/parse.y:2026 + msgid "Identifier expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1044 ++#: ../../gcc/java/parse.y:1044 + msgid "Invalid method declaration, return type required" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1067 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1511 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1518 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1527 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1529 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1557 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1665 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1971 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2024 ++#: ../../gcc/java/parse.y:1067 ../../gcc/java/parse.y:1511 ++#: ../../gcc/java/parse.y:1518 ../../gcc/java/parse.y:1527 ++#: ../../gcc/java/parse.y:1529 ../../gcc/java/parse.y:1557 ++#: ../../gcc/java/parse.y:1665 ../../gcc/java/parse.y:1971 ++#: ../../gcc/java/parse.y:2024 + msgid "')' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1083 ++#: ../../gcc/java/parse.y:1083 + msgid "Missing formal parameter term" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1098 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1103 ++#: ../../gcc/java/parse.y:1098 ../../gcc/java/parse.y:1103 + msgid "Missing identifier" + msgstr "Прапушчан ідÑнтыфікатар" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1123 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1132 ++#: ../../gcc/java/parse.y:1123 ../../gcc/java/parse.y:1132 + msgid "Missing class type term" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1288 ++#: ../../gcc/java/parse.y:1288 + msgid "Invalid interface type" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1475 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1644 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1646 ++#: ../../gcc/java/parse.y:1475 ../../gcc/java/parse.y:1644 ++#: ../../gcc/java/parse.y:1646 + msgid "':' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1497 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1502 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1507 ++#: ../../gcc/java/parse.y:1497 ../../gcc/java/parse.y:1502 ++#: ../../gcc/java/parse.y:1507 + msgid "Invalid expression statement" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1525 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1553 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1593 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1661 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1729 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1850 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1928 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2018 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2020 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2028 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2264 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2266 ++#: ../../gcc/java/parse.y:1525 ../../gcc/java/parse.y:1553 ++#: ../../gcc/java/parse.y:1593 ../../gcc/java/parse.y:1661 ++#: ../../gcc/java/parse.y:1729 ../../gcc/java/parse.y:1850 ++#: ../../gcc/java/parse.y:1928 ../../gcc/java/parse.y:2018 ++#: ../../gcc/java/parse.y:2020 ../../gcc/java/parse.y:2028 ++#: ../../gcc/java/parse.y:2264 ../../gcc/java/parse.y:2266 + msgid "'(' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1595 ++#: ../../gcc/java/parse.y:1595 + msgid "Missing term or ')'" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1642 ++#: ../../gcc/java/parse.y:1642 + msgid "Missing or invalid constant expression" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1663 ++#: ../../gcc/java/parse.y:1663 + msgid "Missing term and ')' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1702 ++#: ../../gcc/java/parse.y:1702 + msgid "Invalid control expression" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1704 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1706 ++#: ../../gcc/java/parse.y:1704 ../../gcc/java/parse.y:1706 + msgid "Invalid update expression" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1731 ++#: ../../gcc/java/parse.y:1731 + msgid "Invalid init statement" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1931 ++#: ../../gcc/java/parse.y:1931 + msgid "Missing term or ')' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1973 ++#: ../../gcc/java/parse.y:1973 + msgid "'class' or 'this' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1975 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1977 ++#: ../../gcc/java/parse.y:1975 ../../gcc/java/parse.y:1977 + msgid "'class' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2022 ++#: ../../gcc/java/parse.y:2022 + msgid "')' or term expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2141 ++#: ../../gcc/java/parse.y:2141 + msgid "'[' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2219 ++#: ../../gcc/java/parse.y:2219 + msgid "Field expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2276 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2286 ++#: ../../gcc/java/parse.y:2276 ../../gcc/java/parse.y:2286 + msgid "Missing term and ']' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2390 ++#: ../../gcc/java/parse.y:2390 + msgid "']' expected, invalid type expression" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2393 ++#: ../../gcc/java/parse.y:2393 + msgid "Invalid type expression" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2505 ++#: ../../gcc/java/parse.y:2505 + msgid "Invalid reference type" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2977 ++#: ../../gcc/java/parse.y:2977 + msgid "Constructor invocation must be first thing in a constructor" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2979 ++#: ../../gcc/java/parse.y:2979 + msgid "Only constructors can invoke constructors" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2987 ++#: ../../gcc/java/parse.y:2987 + #, c-format + msgid ": `%s' JDK1.1(TM) feature" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:3046 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:3048 ++#: ../../gcc/java/parse.y:3046 ../../gcc/java/parse.y:3048 + #, c-format + msgid "" + "%s.\n" + "%s" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:6909 ++#: ../../gcc/java/parse.y:6909 + #, c-format + msgid "malformed .zip archive in CLASSPATH: %s" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:6980 ++#: ../../gcc/java/parse.y:6980 + #, c-format + msgid "Can't find default package `%s'. Check the CLASSPATH environment variable and the access to the archives" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12193 ++#: ../../gcc/java/parse.y:12193 + #, c-format + msgid "missing static field `%s'" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12198 ++#: ../../gcc/java/parse.y:12198 + #, c-format + msgid "not a static field `%s'" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12241 ++#: ../../gcc/java/parse.y:12241 + #, c-format + msgid "No case for %s" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:13173 ++#: ../../gcc/java/parse.y:13173 + #, c-format + msgid "unregistered operator %s" + msgstr "нераÑпазнаны аператар %s" +@@ -19750,1714 +19760,1399 @@ + msgid "[super ...] must appear in a method context" + msgstr "" + +-#: objc/objc-parse.y:2701 ++#: objc/objc-parse.y:2700 + msgid "`@end' must appear in an implementation context" + msgstr "" + +-#: objc/objc-parse.y:2914 ++#: objc/objc-parse.y:2913 + msgid "method definition not in class context" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:23 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:21 + #, fuzzy + msgid "Display this information" + msgstr " --help ÐдлюÑтраваць гÑту інфармацыю\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:29 +-msgid "--param =\tSet paramter to value. See below for a complete list of parameters" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:27 ++msgid "--param =\tSet parameter to value. See below for a complete list of parameters" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:38 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:36 + msgid "-A=\tAssert the to . Putting '-' before disables the to " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:41 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:39 + #, fuzzy + msgid "Do not discard comments" + msgstr "Ð½ÐµÐ·Ð°Ð²ÐµÑ€ÑˆÐ°Ð½Ñ‹Ñ ÐºÐ°Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ñ‹Ñ–" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:44 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:42 + msgid "Do not discard comments in macro expansions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:47 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:45 + msgid "-D[=]\tDefine a with as its value. If just is given, is taken to be 1" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:53 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:51 + msgid "-G\tPut global and static data smaller than bytes into a special section (on some targets)" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:56 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:54 + msgid "Print the name of header files as they are used" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:65 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:57 ++msgid "-I

    \tAdd to the end of the main include path. -I- gives more include path control; see info documentation" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:60 ++msgid "Generate make dependencies" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:63 + msgid "Generate make dependencies and compile" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:74 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:66 ++msgid "-MF \tWrite dependency output to the given file" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:69 + msgid "Treat missing header files as generated files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:80 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:72 ++msgid "Like -M but ignore system header files" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:75 + msgid "Like -MD but ignore system header files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:89 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:78 ++#, fuzzy ++msgid "Generate phony targets for all headers" ++msgstr "Генерыраваць код Ð´Ð»Ñ Intel as" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:81 + msgid "-MQ \tAdd a MAKE-quoted target" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:95 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:84 ++msgid "-MT \tAdd an unquoted target" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:87 + msgid "-O\tSet optimization level to " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:98 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:90 + #, fuzzy + msgid "Optimize for space rather than speed" + msgstr "ÐÐ¿Ñ‚Ñ‹Ð¼Ñ–Ð·Ð°Ñ†Ñ‹Ñ Ð´Ð»Ñ SparcLite працÑÑараў" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:101 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:93 + #, fuzzy + msgid "Do not generate #line directives" + msgstr "Ðе генерыраваць ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ñ‹Ñ Ñ–Ð½Ñтрукцыі" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:104 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:96 + msgid "-U\tUndefine " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:107 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:99 + msgid "This switch is deprecated; use -Wextra instead" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:113 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:105 + msgid "Warn about returning structures, unions or arrays" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:119 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:108 ++msgid "Enable most warning messages" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:111 + msgid "Warn about casting functions to incompatible types" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:122 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:114 + msgid "Warn about pointer casts which increase alignment" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:125 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:117 + msgid "Warn about casts which discard qualifiers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:128 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:120 + msgid "Warn about subscripts whose type is \"char\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:137 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:123 ++msgid "Warn about possibly nested block comments, and C++ comments spanning more than one physical line" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:126 ++msgid "Synonym for -Wcomment" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:129 + msgid "Warn about possibly confusing type conversions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:140 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:132 + msgid "Warn when all constructors and destructors are private" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:143 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:135 + msgid "Warn when a declaration is found after a statement" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:146 +-msgid "Warn if deprecated class, method, or field is used" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:138 ++msgid "Warn about deprecated compiler features" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:149 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:141 + msgid "Warn about uses of __attribute__((deprecated)) declarations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:152 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:144 + msgid "Warn when an optimization pass is disabled" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:155 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:147 + msgid "Warn about compile-time integer division by zero" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:158 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:150 + msgid "Warn about violations of Effective C++ style rules" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:161 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:153 + msgid "Warn about stray tokens after #elif and #endif" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:164 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:156 + msgid "Treat all warnings as errors" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:167 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:159 + #, fuzzy + msgid "Make implicit function declarations an error" + msgstr "ÑÐµÐºÑ†Ñ‹Ñ \"%s\" канфліктуе з папÑÑ€ÑднÑй дÑкларацыÑй" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:170 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:162 + msgid "Print extra (possibly unwanted) warnings" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:173 +-msgid "Warn if deprecated empty statements are found" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:176 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:165 + msgid "Warn if testing floating point numbers for equality" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:179 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:168 + msgid "Warn about printf/scanf/strftime/strfmon format string anomalies" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:182 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:171 + #, fuzzy + msgid "Warn if passing too many arguments to a function for its format string" + msgstr "вельмі шмат аргумÑнтаў у функцыі `%s'" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:185 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:174 + msgid "Warn about format strings that are not literals" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:188 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:177 + msgid "Warn about possible security problems with format functions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:191 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:180 + msgid "Warn about strftime formats yielding 2-digit years" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:200 +-msgid "Enable warnings about inter-procedural problems" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:206 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:192 + msgid "Warn about implicit function declarations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:209 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:195 + msgid "Warn when a declaration does not specify a type" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:215 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:198 ++msgid "Deprecated. This switch has no effect." ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:201 + msgid "Warn about variables which are initialized to themselves." + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:218 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:204 + msgid "Warn when an inlined function cannot be inlined" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:221 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:207 + msgid "Warn about invalid uses of the \"offsetof\" macro" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:224 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:210 + msgid "Warn about PCH files that are found but not used" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:227 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:213 + msgid "-Wlarger-than-\tWarn if an object is larger than bytes" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:230 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:216 + msgid "Do not warn about using \"long long\" when -pedantic" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:233 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:219 + #, fuzzy + msgid "Warn about suspicious declarations of \"main\"" + msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:236 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:222 + msgid "Warn about possibly missing braces around initializers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:239 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:225 + #, fuzzy + msgid "Warn about global functions without previous declarations" + msgstr "ÑÐµÐºÑ†Ñ‹Ñ \"%s\" канфліктуе з папÑÑ€ÑднÑй дÑкларацыÑй" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:242 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:228 + msgid "Warn about functions which might be candidates for format attributes" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:245 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:231 + msgid "Warn about functions which might be candidates for __attribute__((noreturn))" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:248 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:234 + msgid "Warn about global functions without prototypes" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:251 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:237 + #, fuzzy + msgid "Warn about use of multi-character character constants" + msgstr "мнагаÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ð°Ñ ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ð°Ñ ÐºÐ°Ð½Ñтанта" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:254 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:240 + msgid "Warn about \"extern\" declarations not at file scope" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:257 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:243 + msgid "Warn when non-templatized friend functions are declared within a template" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:260 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:246 + msgid "Warn about non-virtual destructors" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:266 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:252 + msgid "Warn if a C-style cast is used in a program" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:269 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:255 + msgid "Warn if an old-style parameter definition is used" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:272 +-msgid "Warn if .class files are out of date" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:275 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:258 + msgid "Warn about overloaded virtual function names" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:278 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:261 + msgid "Warn when the packed attribute has no effect on struct layout" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:281 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:264 + msgid "Warn when padding is required to align structure members" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:284 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:267 + msgid "Warn about possibly missing parentheses" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:287 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:270 + msgid "Warn when converting the type of pointers to member functions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:290 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:273 + msgid "Warn about function pointer arithmetic" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:293 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:276 + msgid "Warn if inherited methods are unimplemented" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:296 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:279 + msgid "Warn about multiple declarations of the same object" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:299 +-msgid "Warn if modifiers are specified when not necessary" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:302 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:282 + msgid "Warn when the compiler reorders code" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:305 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:285 + msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:308 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:288 + msgid "Warn if a selector has multiple methods" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:311 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:291 + msgid "Warn about possible violations of sequence point rules" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:314 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:294 + msgid "Warn when one local variable shadows another" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:317 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:297 + msgid "Warn about signed-unsigned comparisons" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:320 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:300 + msgid "Warn when overload promotes from unsigned to signed" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:323 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:303 + msgid "Warn about code which might break strict aliasing rules" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:326 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:306 + #, fuzzy + msgid "Warn about unprototyped function declarations" + msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:329 +-msgid "Warn about constructs with surprising meanings" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:332 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:309 + msgid "Warn about enumerated switches, with no default, missing a case" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:335 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:312 + msgid "Warn about enumerated switches missing a \"default:\" statement" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:338 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:315 + msgid "Warn about all enumerated switches missing a specific case" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:341 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:318 + msgid "Warn when synthesis behavior differs from Cfront" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:344 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:321 + msgid "Do not suppress warnings from system headers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:347 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:324 + msgid "Warn about features not present in traditional C" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:356 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:327 ++msgid "Warn if trigraphs are encountered that might affect the meaning of the program" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:333 + msgid "Warn if an undefined macro is used in an #if directive" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:359 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:336 + msgid "Warn about uninitialized automatic variables" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:362 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:339 + msgid "Warn about unrecognized pragmas" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:365 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:342 + msgid "Warn about code that will never be executed" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:368 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:345 + msgid "Enable all -Wunused- warnings" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:371 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:348 + msgid "Warn when a function is unused" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:374 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:351 + msgid "Warn when a label is unused" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:377 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:354 + msgid "Warn about macros defined in the main file that are not used" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:380 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:357 + msgid "Warn when a function parameter is unused" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:383 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:360 + msgid "Warn when an expression value is unused" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:386 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:363 + msgid "Warn when a variable is unused" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:389 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:366 + msgid "Give strings the type \"array of char\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:392 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:369 + msgid "A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:395 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:372 + msgid "-aux-info \tEmit declaration information into " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:407 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:384 + msgid "-d\tEnable dumps from specific passes of the compiler" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:410 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:387 + msgid "-dumpbase \tSet the file basename to be used for dumps" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:413 +-msgid "--CLASSPATH\tDeprecated; use --classpath instead" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:425 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:399 + msgid "Enforce class member access control semantics" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:428 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:402 + msgid "Align the start of functions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:434 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:408 + msgid "Align labels which are only reached by jumping" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:440 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:414 + msgid "Align all labels" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:446 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:420 + msgid "Align the start of loops" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:455 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:429 + msgid "Change when template instances are emitted" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:458 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:432 + msgid "Specify that arguments may alias each other and globals" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:461 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:435 + msgid "Assume arguments may alias globals but not each other" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:464 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:438 + msgid "Assume arguments alias neither each other nor globals" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:467 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:441 + msgid "Recognize the \"asm\" keyword" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:479 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:444 + msgid "Generate unwind tables that are exact at each instruction boundary" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:482 +-msgid "Do not treat local variables and COMMON blocks as if they were named in SAVE statements" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:485 +-msgid "Backslashes in character and hollerith constants are special (not C-style)" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:488 +-msgid "Delete libU77 intrinsics with bad interfaces" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:491 +-msgid "Disable libU77 intrinsics with bad interfaces" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:494 +-msgid "Enable libU77 intrinsics with bad interfaces" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:497 +-msgid "Hide libU77 intrinsics with bad interfaces" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:500 +-msgid "--bootclasspath=\tReplace system path" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:503 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:447 + #, fuzzy + msgid "Generate code to check bounds before indexing arrays" + msgstr "Генерыраваць код Ð´Ð»Ñ Intel as" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:506 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:450 + msgid "Replace add, compare, branch with branch on count register" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:509 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:453 + msgid "Use profiling information for branch probabilities" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:512 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:456 + msgid "Perform branch target load optimization before prologue / epilogue threading" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:515 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:459 + msgid "Perform branch target load optimization after prologue / epilogue threading" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:518 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:462 + #, fuzzy + msgid "Recognize built-in functions" + msgstr "Ðе генерыраваць ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ñ‹Ñ Ñ–Ð½Ñтрукцыі" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:524 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:468 + msgid "-fcall-saved-\tMark as being preserved across functions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:527 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:471 + msgid "-fcall-used-\tMark as being corrupted by function calls" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:530 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:474 + msgid "Save registers around function calls" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:533 +-msgid "Program written in strict mixed-case" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:536 +-msgid "Compile as if program written in lowercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:539 +-msgid "Preserve case used in program" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:542 +-msgid "Program written in lowercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:545 +-msgid "Program written in uppercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:548 +-msgid "Compile as if program written in uppercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:551 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:477 + msgid "Check the return value of new" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:557 +-msgid "--classpath=\tSet class path" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:560 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:480 + msgid "Do not put uninitialized globals in the common section" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:566 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:483 + msgid "Allow the arguments of the '?' operator to have different types" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:569 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:486 + msgid "Reduce the size of object files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:572 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:489 + msgid "Make string literals \"const char[]\" not \"char[]\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:575 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:492 + msgid "-fconst-string-class=\tUse class for constant strings" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:578 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:495 + msgid "Perform a register copy-propagation optimization pass" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:581 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:498 + msgid "Perform cross-jumping optimization" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:584 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:501 + msgid "When running CSE, follow jumps to their targets" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:587 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:504 + msgid "When running CSE, follow conditional jumps" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:590 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:507 + msgid "Place data items into their own section" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:593 +-msgid "Emit special debugging information for COMMON and EQUIVALENCE (disabled)" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:596 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:510 + #, fuzzy + msgid "Inline member functions by default" + msgstr "у функцыі \"%s\":" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:599 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:513 + msgid "Defer popping functions args from stack until later" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:602 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:516 + msgid "Attempt to fill delay slots of branch instructions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:605 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:519 + msgid "Delete useless null pointer checks" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:608 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:522 + msgid "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source location at the beginning of line-wrapped diagnostics" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:611 +-msgid "Allow '$' in symbol names" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:525 ++msgid "Permit '$' as an identifier character" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:614 +-msgid "Permit '$' as an identifier character" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:528 ++msgid "-fdump-\tDump various compiler internals to a file" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:620 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:531 + msgid "Suppress output of instruction numbers and line number notes in debugging dumps" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:626 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:537 + msgid "Perform DWARF2 duplicate elimination" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:629 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:632 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:540 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:543 + msgid "Perform unused type elimination in debug info" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:641 +-msgid "Have front end emulate COMPLEX arithmetic to avoid bugs" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:644 +-msgid "--encoding=\tChoose input encoding (defaults from your locale)" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:647 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:546 + #, fuzzy + msgid "Generate code to check exception specifications" + msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:653 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:552 + msgid "Enable exception handling" + msgstr "Уключыць апрацоўку выключÑньнÑÑž" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:656 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:555 + msgid "-fexec-charset=\tConvert all strings and character constants to character set " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:659 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:558 + msgid "Perform a number of minor, expensive optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:668 +-msgid "f2c-compatible code can be generated" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:671 +-msgid "Delete non-FORTRAN-77 intrinsics f2c supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:674 +-msgid "Disable non-FORTRAN-77 intrinsics f2c supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:677 +-msgid "Enable non-FORTRAN-77 intrinsics f2c supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:680 +-msgid "Hide non-FORTRAN-77 intrinsics f2c supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:683 +-msgid "Unsupported; generate libf2c-calling code" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:686 +-msgid "Program is written in typical FORTRAN 66 dialect" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:689 +-msgid "Program is written in typical Unix-f77 dialect" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:692 +-msgid "Program is written in Fortran-90-ish dialect" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:695 +-msgid "Delete non-FORTRAN-77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:698 +-msgid "Disable non-FORTRAN-77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:701 +-msgid "Enable non-FORTRAN-77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:704 +-msgid "Hide non-FORTRAN-77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:716 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:567 + msgid "Assume no NaNs or infinities are generated" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:719 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:570 + msgid "-ffixed-\tMark as being unavailable to the compiler" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:725 +-msgid "ffixed-line-length-\tSet the maximum line length to " +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:728 +-msgid "Unsupported; affects code generation of arrays" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:731 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:579 + msgid "Do not store floats in registers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:734 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:582 + msgid "Scope of for-init-statement variables is local to the loop" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:737 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:585 + msgid "Copy memory address constants into registers before use" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:740 +-msgid "Always check for non gcj generated classes archives" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:743 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:588 + msgid "Copy memory operands into registers before use" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:746 +-msgid "Generate code to check subscript and substring bounds" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:749 +-msgid "Program is written in Fortran-90-ish free form" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:752 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:591 + msgid "Do not assume that standard C libraries and \"main\" exist" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:755 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:594 + msgid "Allow function addresses to be held in registers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:758 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:597 + #, fuzzy + msgid "Place each function into its own section" + msgstr "адзін раз Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð°Ð¹ функцыі, дзе ён з'ÑўлÑецца.)" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:761 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:600 + msgid "Perform global common subexpression elimination" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:764 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:603 + msgid "Perform redundant load after store elimination in global common subexpression elimination" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:767 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:606 + msgid "Perform enhanced load motion during global common subexpression elimination" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:770 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:609 + msgid "Perform store motion after global common subexpression elimination" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:773 +-msgid "Enable fatal diagnostics about inter-procedural problems" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:776 +-msgid "Delete non-FORTRAN-77 intrinsics g77 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:779 +-msgid "Disable non-FORTRAN 77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:782 +-msgid "Enable non-FORTRAN 77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:785 +-msgid "Hide non-FORTRAN 77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:788 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:612 + msgid "Recognize GNU-defined keywords" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:791 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:615 + msgid "Generate code for GNU runtime environment" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:794 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:618 + msgid "Enable guessing of branch probabilities" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:809 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:630 + msgid "Assume normal C execution environment" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:812 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:633 + msgid "Enable support for huge objects" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:815 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:636 + msgid "Process #ident directives" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:818 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:639 + msgid "Perform conversion of conditional jumps to branchless equivalents" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:821 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:642 + msgid "Perform conversion of conditional jumps to conditional execution" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:824 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:645 + msgid "Export functions even if they can be inlined" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:827 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:648 + #, fuzzy + msgid "Emit implicit instantiations of inline templates" + msgstr "паўторнае абвÑшчÑнне меткі \"%s\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:830 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:651 + #, fuzzy + msgid "Emit implicit instantiations of templates" + msgstr "паўторнае абвÑшчÑнне меткі \"%s\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:833 +-msgid "Use offset tables for virtual method calls" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:836 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:654 + msgid "Do not generate .size directives" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:839 +-msgid "Initialize local vars and arrays to zero" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:657 ++msgid "Pay attention to the \"inline\" keyword" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:842 +-msgid "Pay attention to the \"inline\" keyword" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:660 ++msgid "Integrate simple functions into their callers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:851 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:666 + msgid "-finline-limit=\tLimit the size of inlined functions to " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:854 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:669 + msgid "-finput-charset= Specify the default character set for source files." + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:857 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:672 + msgid "Instrument function entry and exit with profiling calls" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:860 +-msgid "Intrinsics letters in arbitrary cases" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:863 +-msgid "Intrinsics spelled as e.g. SqRt" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:866 +-msgid "Intrinsics in lowercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:869 +-msgid "Intrinsics in uppercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:872 +-msgid "Assume native functions are implemented using JNI" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:875 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:675 + msgid "Generate code for functions even if they are fully inlined" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:878 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:678 + msgid "Emit static const variables even if they are not used" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:884 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:684 + msgid "Give external symbols a leading underscore" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:887 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:687 + #, fuzzy + msgid "Perform loop optimizations" + msgstr "Уключаць SSA аптымізацыю" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:890 +-msgid "Language keyword letters in arbitrary cases" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:893 +-msgid "Language keywords spelled as e.g. IOStat" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:896 +-msgid "Language keywords in lowercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:899 +-msgid "Language keywords in uppercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:902 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:690 + msgid "Set errno after built-in math functions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:905 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:693 + msgid "Report on permanent memory allocation" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:908 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:696 + msgid "Attempt to merge identical constants and constant variables" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:911 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:699 + msgid "Attempt to merge identical constants across compilation units" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:914 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:702 + msgid "-fmessage-length=\tLimit diagnostics to characters per line. 0 suppresses line-wrapping" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:917 +-msgid "Delete MIL-STD 1753 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:920 +-msgid "Disable MIL-STD 1753 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:923 +-msgid "Enable MIL-STD 1753 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:926 +-msgid "Hide MIL-STD 1753 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:929 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:705 + msgid "Force all loop invariant computations out of loops" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:932 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:708 + msgid "Don't warn about uses of Microsoft extensions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:941 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:717 + msgid "Use graph-coloring register allocation" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:944 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:720 + msgid "Generate code for NeXT (Apple Mac OS X) runtime environment" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:947 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:723 + msgid "Assume that receivers of Objective-C messages may be nil" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:950 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:726 + msgid "Support synchronous non-call exceptions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:959 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:735 + msgid "Enable Objective-C exception and synchronization syntax" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:962 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1286 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:738 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:978 + msgid "Perform loop unrolling for all loops" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:965 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1289 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:741 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:981 + msgid "Perform loop unrolling when iteration count is known" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:968 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:744 + msgid "When possible do not generate stack frames" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:971 +-msgid "Take at least one trip through each iterative DO loop" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:974 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:747 + msgid "Recognize C++ kewords like \"compl\" and \"xor\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:977 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:750 + msgid "Do the full register move optimization pass" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:980 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:753 + msgid "Optimize sibling and tail recursive calls" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:983 +-msgid "Enable optimization of static class initialization code" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:986 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:756 + #, fuzzy + msgid "Enable optional diagnostics" + msgstr "Уключаць SSA аптымізацыю" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:992 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:759 + msgid "Pack structure members together without holes" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:995 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:762 + msgid "Return small aggregates in memory, not registers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1001 +-msgid "Warn about use of (only a few for now) Fortran extensions" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1004 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:768 + msgid "Perform loop peeling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1007 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:771 + msgid "Enable machine specific peephole optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1010 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:774 + msgid "Enable an RTL peephole pass before sched2" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1013 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:777 + msgid "Downgrade conformance errors to warnings" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1016 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:780 + msgid "Generate position-independent code if possible" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1019 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:783 + msgid "Generate position-independent code for executables if possible" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1022 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:786 + msgid "Generate prefetch instructions, if available, for arrays in loops" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1028 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:789 ++msgid "Treat the input file as already preprocessed" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:792 + msgid "Enable basic program profiling code" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1031 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:795 + msgid "Insert arc-based program profiling code" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1034 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:798 + msgid "Enable common options for generating profile info for profile feedback directed optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1037 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:801 + msgid "Enable common options for performing profile feedback directed optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1040 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:804 + msgid "Insert code to profile values of expressions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1046 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:810 + msgid "-frandom-seed=\tMake compile reproducible using " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1049 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:813 + msgid "Strength reduce all loop general induction variables" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1052 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:816 + #, fuzzy + msgid "Return small aggregates in registers" + msgstr "Ðе выкарыÑтоўваць Ñ€ÑгіÑтра sb" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1055 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:819 + msgid "Enables a register move optimization" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1058 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:822 + msgid "Perform a register renaming optimization pass" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1061 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:825 + msgid "Reorder basic blocks to improve code placement" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1064 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:828 + msgid "Reorder functions to improve code placement" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1067 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:831 + msgid "Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1070 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:834 + msgid "Enable automatic template instantiation" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1073 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:837 + msgid "Add a common subexpression elimination pass after loop optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1076 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:840 + msgid "Run the loop optimizer twice" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1079 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:843 + msgid "Disable optimizations that assume default FP rounding behavior" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1082 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:846 + msgid "Generate run time type descriptor information" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1085 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:849 + msgid "Enable scheduling across basic blocks" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1088 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:852 + msgid "Allow speculative motion of non-loads" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1091 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:855 + msgid "Allow speculative motion of some loads" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1094 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:858 + msgid "Allow speculative motion of more loads" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1097 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:861 + msgid "Allow premature scheduling of queued insns" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1100 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:864 + msgid "Set dependence distance checking in premature scheduling of queued insns" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1103 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:867 + msgid "-fsched-stalled-insns-dep= Set dependence distance checking in premature scheduling of queued insns" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1106 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:870 + msgid "-fsched-stalled-insns= Set number of queued insns that can be prematurely scheduled" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1109 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:873 + msgid "-fsched-verbose=\tSet the verbosity level of the scheduler" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1112 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:876 + msgid "If scheduling post reload, do superblock scheduling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1115 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:879 + msgid "If scheduling post reload, do trace scheduling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1118 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:882 + msgid "Reschedule instructions before register allocation" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1121 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:885 + msgid "Reschedule instructions after register allocation" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1124 +-msgid "Allow appending a second underscore to externals" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1127 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:888 + msgid "Mark data as shared rather than private" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1130 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:891 + msgid "Use the same size for double as for float" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1133 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:894 + msgid "Use the narrowest integer type possible for enumeration types" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1136 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:897 + msgid "Force the underlying type for \"wchar_t\" to be \"unsigned short\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1142 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:903 + msgid "Disable optimizations observable by IEEE signaling NaNs" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1145 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:906 + msgid "When \"signed\" or \"unsigned\" is not given make the bitfield signed" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1148 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:909 + msgid "Make \"char\" signed by default" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1151 +-msgid "Do not print names of program units as they are compiled" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1154 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:912 + msgid "Convert floating point constants to single precision constants" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1157 +-msgid "Internally convert most source to lowercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1160 +-msgid "Internally preserve source case" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1163 +-msgid "Internally convert most source to uppercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1169 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:918 + msgid "Insert stack checking code into the program" + msgstr "Уключаць код правÑркі ÑÑ‚Ñку Ñž праграму" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1175 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:924 + msgid "-fstack-limit-register=\tTrap if the stack goes past " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1178 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:927 + msgid "-fstack-limit-symbol=\tTrap if the stack goes past symbol " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1181 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:930 + msgid "Display statistics accumulated during compilation" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1184 +-msgid "Enable assignability checks for stores into object arrays" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1187 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:933 + msgid "Perform strength reduction optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1190 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:936 + msgid "Assume strict aliasing rules apply" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1199 +-msgid "Symbol names spelled in mixed case" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1202 +-msgid "Symbol names in lowercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1205 +-msgid "Symbol names in uppercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1208 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:942 + msgid "Check for syntax errors, then stop" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1211 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:945 + msgid "-ftabstop=\tDistance between tab stops for column reporting" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1214 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:948 + msgid "-ftemplate-depth-\tSpecify maximum template instantiation depth" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1217 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:951 + msgid "Create data files needed by \"gcov\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1223 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:957 + msgid "Perform jump threading optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1226 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:960 + msgid "Report the time taken by each compiler pass" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1229 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:963 + msgid "-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tSet the default thread-local storage code generation model" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1232 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:966 + msgid "Perform superblock formation via tail duplication" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1235 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:969 + msgid "Assume floating-point operations can trap" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1238 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:972 + msgid "Trap for signed overflow in addition, subtraction and multiplication" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1241 +-msgid "Make prefix-radix non-decimal constants be typeless" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1244 +-msgid "Allow all ugly features" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1247 +-msgid "Hollerith and typeless can be passed as arguments" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1250 +-msgid "Allow ordinary copying of ASSIGN'ed vars" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1253 +-msgid "Dummy array dimensioned to (1) is assumed-size" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1256 +-msgid "Trailing comma in procedure call denotes null argument" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1259 +-msgid "Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1262 +-msgid "Initialization via DATA and PARAMETER is not type-compatible" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1265 +-msgid "Allow INTEGER and LOGICAL interchangeability" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1268 +-msgid "Append underscores to externals" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1271 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:975 + msgid "Compile whole compilation unit at a time" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1274 +-msgid "Delete libU77 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1277 +-msgid "Disable libU77 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1280 +-msgid "Enable libU77 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1283 +-msgid "Hide libU77 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1292 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:984 + msgid "Allow math optimizations that may violate IEEE or ISO standards" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1295 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:987 + msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1298 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:990 + msgid "Make \"char\" unsigned by default" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1301 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:993 + msgid "Perform loop unswitching" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1304 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:996 + msgid "Just generate unwind tables for exception handling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1310 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:999 + msgid "Use __cxa_atexit to register destructors" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1316 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1002 + msgid "Add extra commentary to assembler output" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1319 +-msgid "Print g77-specific version information and run internal tests" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1322 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1005 + msgid "Use expression value profiles in optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1325 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1008 + msgid "Discard unused virtual functions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1328 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1011 + msgid "Implement vtables using thunks" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1331 +-msgid "Program is written in VXT (Digital-like) FORTRAN" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1334 +-msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1337 +-msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1340 +-msgid "Enable non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1343 +-msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1349 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1014 + msgid "Emit common-like symbols as weak symbols" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1352 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1017 + msgid "Construct webs and split unrelated uses of single variable" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1355 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1020 + msgid "-fwide-exec-charset=\tConvert all wide strings and character constants to character set " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1358 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1023 + msgid "Generate a #line directive pointing at the current working directory" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1361 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1026 + msgid "Assume signed arithmetic overflow wraps around" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1364 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1029 + msgid "Store strings in writable data section" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1367 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1032 + msgid "Emit cross referencing information" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1370 +-msgid "Print internal debugging-related information" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1373 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1035 + msgid "Put zero initialized data in the bss section" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1376 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1038 + msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1379 +-msgid "Treat initial values of 0 like non-zero values" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1382 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1041 + #, fuzzy + msgid "Generate debug information in default format" + msgstr "Генерыраваць код Ð´Ð»Ñ Intel as" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1385 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1044 + msgid "Generate debug information in COFF format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1388 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1047 + msgid "Generate debug information in DWARF v2 format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1391 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1050 + msgid "Dump declarations to a .decl file" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1394 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1053 + msgid "Generate debug information in default extended format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1397 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1056 + #, fuzzy + msgid "Generate debug information in STABS format" + msgstr "Стварыць код Ð´Ð»Ñ DLL" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1400 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1059 + msgid "Generate debug information in extended STABS format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1403 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1062 + #, fuzzy + msgid "Generate debug information in VMS format" + msgstr "Стварыць код Ð´Ð»Ñ DLL" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1406 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1065 + msgid "Generate debug information in XCOFF format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1409 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1068 + msgid "Generate debug information in extended XCOFF format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1412 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1071 + msgid "-idirafter \tAdd to the end of the system include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1415 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1074 + msgid "-imacros \tAccept definition of macros in " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1418 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1077 + msgid "-include \tInclude the contents of before other files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1421 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1080 + msgid "-iprefix \tSpecify as a prefix for next two options" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1424 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1083 + msgid "-isysroot \tSet to be the system root directory" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1427 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1086 + msgid "-isystem \tAdd to the start of the system include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1430 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1089 + msgid "-iwithprefix \tAdd to the end of the system include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1433 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1092 + msgid "-iwithprefixbefore \tAdd to the end of the main include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1445 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1104 + msgid "Do not search standard system include directories (those specified with -isystem will still be used)" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1448 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1107 + msgid "Do not search standard system include directories for C++" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1451 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1110 + #, fuzzy + msgid "-o \tPlace output into " + msgstr " -o <файл> ПамÑÑціць вывад у <файл>\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1454 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1113 + #, fuzzy + msgid "Enable function profiling" + msgstr "Уключыць апрацоўку выключÑньнÑÑž" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1457 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1116 + msgid "Issue warnings needed for strict compliance to the standard" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1460 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1119 + msgid "Like -pedantic but issue them as errors" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1463 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1122 + msgid "Generate C header of platform-specific features" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1466 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1125 + msgid "Do not display functions compiled or elapsed time" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1469 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1128 + msgid "Remap file names when including files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1472 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1131 + msgid "Conform to the ISO 1998 C++ standard" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1475 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1134 + msgid "Conform to the ISO 1990 C standard" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1478 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1137 + msgid "Conform to the ISO 1999 C standard" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1481 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1502 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1505 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1140 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1161 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1164 + msgid "Deprecated in favor of -std=c99" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1484 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1143 + msgid "Conform to the ISO 1998 C++ standard with GNU extensions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1487 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1146 + msgid "Conform to the ISO 1990 C standard with GNU extensions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1490 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1149 + msgid "Conform to the ISO 1999 C standard with GNU extensions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1493 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1152 + msgid "Deprecated in favor of -std=gnu99" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1496 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1155 + msgid "Deprecated in favor of -std=c89" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1499 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1158 + msgid "Conform to the ISO 1990 C standard as amended in 1994" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1508 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1167 + msgid "Enable traditional preprocessing" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1511 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1170 + msgid "-trigraphs\tSupport ISO C trigraphs" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1514 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1173 + msgid "Do not predefine system-specific and GCC-specific macros" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1517 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1176 + msgid "Enable verbose output" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1523 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1179 ++msgid "Display the compiler's version" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1182 + #, fuzzy + msgid "Suppress warnings" + msgstr "%s: увага: " + +-#: config/i386/freebsd-aout.h:215 config/rs6000/sysv4.h:1089 ++#: config/i386/cygwin.h:29 ++msgid "mno-cygwin and mno-win32 are not compatible" ++msgstr "" ++ ++#: config/i386/cygwin.h:70 config/i386/mingw32.h:58 ++msgid "shared and mdll are not compatible" ++msgstr "" ++ ++#: config/i386/freebsd-aout.h:215 + msgid "`-p' not supported; use `-pg' and gprof(1)" + msgstr "" + +@@ -21471,49 +21166,64 @@ + msgid "GCC does not support -CC without using -E" + msgstr "%s не падтрымлівае %s" + ++#: config/i386/sco5.h:191 ++#, fuzzy ++msgid "-pg not supported on this platform" ++msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹" ++ ++#: config/i386/sco5.h:192 ++msgid "-p and -pp specified - pick one" ++msgstr "" ++ ++#: config/i386/sco5.h:266 ++msgid "-G and -static are mutually exclusive" ++msgstr "" ++ ++#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22 ++#: config/sparc/sol2-bi.h:167 config/sparc/sol2-bi.h:172 ++#, fuzzy ++msgid "does not support multilib" ++msgstr "%s не падтрымлівае %s" ++ + #: config/sparc/linux64.h:211 config/sparc/linux64.h:222 + #: config/sparc/netbsd-elf.h:140 config/sparc/netbsd-elf.h:159 + #: config/sparc/sol2-bi.h:195 config/sparc/sol2-bi.h:205 + msgid "may not use both -m32 and -m64" + msgstr "" + +-#: config/i386/mingw32.h:58 config/i386/cygwin.h:70 +-msgid "shared and mdll are not compatible" +-msgstr "" +- +-#: config/darwin.h:215 ++#: config/darwin.h:222 + msgid "-current_version only allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:218 ++#: config/darwin.h:225 + msgid "-install_name only allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:223 ++#: config/darwin.h:230 + msgid "-bundle not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:224 ++#: config/darwin.h:231 + msgid "-bundle_loader not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:225 ++#: config/darwin.h:232 + msgid "-client_name not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:228 ++#: config/darwin.h:235 + msgid "-force_cpusubtype_ALL not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:229 ++#: config/darwin.h:236 + msgid "-force_flat_namespace not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:231 ++#: config/darwin.h:238 + msgid "-keep_private_externs not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:232 ++#: config/darwin.h:239 + msgid "-private_bundle not allowed with -dynamiclib" + msgstr "" + +@@ -21529,49 +21239,10 @@ + msgid "may not use both -EB and -EL" + msgstr "" + +-#: config/mips/mips.h:988 +-msgid "-pipe is not supported" +-msgstr "-pipe не падтрымліваецца" +- +-#: java/jvspec.c:80 ada/lang-specs.h:34 gcc.c:767 +-msgid "-pg and -fomit-frame-pointer are incompatible" +-msgstr "" +- +-#: java/lang-specs.h:34 +-msgid "-fjni and -femit-class-files are incompatible" +-msgstr "" +- +-#: java/lang-specs.h:35 +-msgid "-fjni and -femit-class-file are incompatible" +-msgstr "" +- +-#: java/lang-specs.h:36 java/lang-specs.h:37 +-msgid "-femit-class-file should used along with -fsyntax-only" +-msgstr "" +- + #: treelang/lang-specs.h:52 + msgid "-pg or -p and -fomit-frame-pointer are incompatible" + msgstr "" + +-#: config/sparc/sol2-bi.h:167 config/sparc/sol2-bi.h:172 +-#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22 +-#, fuzzy +-msgid "does not support multilib" +-msgstr "%s не падтрымлівае %s" +- +-#: config/i386/sco5.h:191 +-#, fuzzy +-msgid "-pg not supported on this platform" +-msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹" +- +-#: config/i386/sco5.h:192 +-msgid "-p and -pp specified - pick one" +-msgstr "" +- +-#: config/i386/sco5.h:266 +-msgid "-G and -static are mutually exclusive" +-msgstr "" +- + #: config/arm/arm.h:198 + msgid "-mapcs-26 and -mapcs-32 may not be used together" + msgstr "" +@@ -21588,6 +21259,14 @@ + msgid "the m210 does not have little endian support" + msgstr "" + ++#: config/mips/mips.h:988 ++msgid "-pipe is not supported" ++msgstr "-pipe не падтрымліваецца" ++ ++#: ada/lang-specs.h:34 java/jvspec.c:80 gcc.c:767 ++msgid "-pg and -fomit-frame-pointer are incompatible" ++msgstr "" ++ + #: ada/lang-specs.h:36 + msgid "one of -c, -S, -gnatc, -gnatz, or -gnats is required for Ada" + msgstr "" +@@ -21600,8 +21279,16 @@ + msgid "-msingle-float and -msoft-float can not both be specified" + msgstr "" + +-#: config/rs6000/darwin.h:98 +-msgid " conflicting code gen style switches are used" ++#: java/lang-specs.h:34 ++msgid "-fjni and -femit-class-files are incompatible" ++msgstr "" ++ ++#: java/lang-specs.h:35 ++msgid "-fjni and -femit-class-file are incompatible" ++msgstr "" ++ ++#: java/lang-specs.h:36 java/lang-specs.h:37 ++msgid "-femit-class-file should used along with -fsyntax-only" + msgstr "" + + #: gcc.c:743 +@@ -21612,8 +21299,8 @@ + msgid "-E required when input is from standard input" + msgstr "" + +-#: config/i386/cygwin.h:29 +-msgid "mno-cygwin and mno-win32 are not compatible" ++#: config/rs6000/darwin.h:98 ++msgid " conflicting code gen style switches are used" + msgstr "" + + #~ msgid "unknown C standard `%s'" +Index: gcc/po/ca.po +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/po/ca.po,v +retrieving revision 1.1.2.3 +retrieving revision 1.1.2.4 +diff -u -r1.1.2.3 -r1.1.2.4 +--- gcc/po/ca.po 14 Sep 2004 20:36:54 -0000 1.1.2.3 ++++ gcc/po/ca.po 7 Nov 2004 19:58:54 -0000 1.1.2.4 +@@ -11,7 +11,7 @@ + msgstr "" + "Project-Id-Version: gcc 3.3.2\n" + "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" +-"POT-Creation-Date: 2004-07-01 11:41-0700\n" ++"POT-Creation-Date: 2004-11-04 19:12-0800\n" + "PO-Revision-Date: 2004-01-30 00:03+0000\n" + "Last-Translator: Mateu Gilles \n" + "Language-Team: Catalan \n" +@@ -39,16 +39,16 @@ + msgid "`%s' attribute only applies to function types" + msgstr "l'atribut \"%s\" nomes s'aplica a tipus funcions" + +-#: attribs.c:416 c-common.c:4307 c-common.c:4326 c-common.c:4344 +-#: c-common.c:4371 c-common.c:4390 c-common.c:4413 c-common.c:4436 +-#: c-common.c:4462 c-common.c:4496 c-common.c:4540 c-common.c:4568 +-#: c-common.c:4596 c-common.c:4615 c-common.c:4870 c-common.c:4892 +-#: c-common.c:4927 c-common.c:4994 c-common.c:5040 c-common.c:5098 +-#: c-common.c:5129 c-common.c:5475 c-common.c:5498 c-common.c:5537 +-#: config/arm/arm.c:2281 config/arm/arm.c:2308 config/avr/avr.c:4539 +-#: config/h8300/h8300.c:4284 config/h8300/h8300.c:4307 config/i386/i386.c:1620 +-#: config/i386/i386.c:15397 config/i386/winnt.c:86 config/ia64/ia64.c:1057 +-#: config/ip2k/ip2k.c:3151 ++#: attribs.c:416 c-common.c:4306 c-common.c:4325 c-common.c:4343 ++#: c-common.c:4370 c-common.c:4389 c-common.c:4412 c-common.c:4435 ++#: c-common.c:4461 c-common.c:4495 c-common.c:4539 c-common.c:4567 ++#: c-common.c:4595 c-common.c:4614 c-common.c:4881 c-common.c:4903 ++#: c-common.c:4938 c-common.c:5005 c-common.c:5051 c-common.c:5109 ++#: c-common.c:5140 c-common.c:5440 c-common.c:5463 c-common.c:5502 ++#: config/arm/arm.c:2281 config/arm/arm.c:2308 config/avr/avr.c:4504 ++#: config/h8300/h8300.c:4284 config/h8300/h8300.c:4307 config/i386/i386.c:1626 ++#: config/i386/i386.c:15398 config/i386/winnt.c:86 config/ia64/ia64.c:1057 ++#: config/ip2k/ip2k.c:3151 config/rs6000/rs6000.c:15035 + #, c-format + msgid "`%s' attribute ignored" + msgstr "s'ignora l'atribut \"%s\"" +@@ -122,7 +122,7 @@ + + #. We can, however, treat "undefined" any way we please. + #. Call abort to encourage the user to fix the program. +-#: builtins.c:4134 c-typeck.c:1733 ++#: builtins.c:4134 c-typeck.c:1713 + msgid "if this code is reached, the program will abort" + msgstr "" + +@@ -159,402 +159,407 @@ + msgid "target format does not support infinity" + msgstr "el format objectiu no té suport per a infinit" + +-#: c-common.c:917 ++#: c-common.c:916 + msgid "%Hsuggest explicit braces to avoid ambiguous `else'" + msgstr "" + +-#: c-common.c:1141 ++#: c-common.c:1140 + #, fuzzy + msgid "%J'%D' is not defined outside of function scope" + msgstr "no es defineix \"%s\" fora de l'àmbit de la funció" + +-#: c-common.c:1161 ++#: c-common.c:1160 + #, c-format + msgid "string length `%d' is greater than the length `%d' ISO C%d compilers are required to support" + msgstr "la longitud de la cadena \"%d\" és major que la longitud `%d\" que es requereix que els compiladors ISO C %d donin suport" + +-#: c-common.c:1201 ++#: c-common.c:1200 + msgid "overflow in constant expression" + msgstr "desbordament en la constant implícita" + +-#: c-common.c:1221 ++#: c-common.c:1220 + msgid "integer overflow in expression" + msgstr "desbordament enter en l'expressió" + +-#: c-common.c:1230 ++#: c-common.c:1229 + msgid "floating point overflow in expression" + msgstr "desbordament de coma flotant en l'expressió" + +-#: c-common.c:1236 ++#: c-common.c:1235 + msgid "vector overflow in expression" + msgstr "desbordament de vector flotant en l'expressió" + + #. This detects cases like converting -129 or 256 to unsigned char. +-#: c-common.c:1258 ++#: c-common.c:1257 + msgid "large integer implicitly truncated to unsigned type" + msgstr "enter gran truncat implícitament al tipus unsigned" + +-#: c-common.c:1260 ++#: c-common.c:1259 + msgid "negative integer implicitly converted to unsigned type" + msgstr "enter negatiu truncat implícitament al tipus unsigned" + +-#: c-common.c:1306 ++#: c-common.c:1305 + msgid "overflow in implicit constant conversion" + msgstr "desbordament en la conversió implícita de constant" + +-#: c-common.c:1442 ++#: c-common.c:1441 + #, c-format + msgid "operation on `%s' may be undefined" + msgstr "l'operació sobre \"%s\" pot estar indefinida" + +-#: c-common.c:1726 ++#: c-common.c:1725 + msgid "expression statement has incomplete type" + msgstr "la declaració de l'expressió té tipus de dada incompleta" + +-#: c-common.c:1758 ++#: c-common.c:1757 + msgid "case label does not reduce to an integer constant" + msgstr "l'etiqueta de \"casi\" no es redueix a una constant entera" + +-#: c-common.c:2088 ++#: c-common.c:2087 + msgid "invalid truth-value expression" + msgstr "expressió de valor veritable invàlida" + +-#: c-common.c:2139 ++#: c-common.c:2138 + #, c-format + msgid "invalid operands to binary %s" + msgstr "operadors invàlids per al binari %s" + +-#: c-common.c:2373 ++#: c-common.c:2372 + msgid "comparison is always false due to limited range of data type" + msgstr "la comparança sempre és falsa a causa del rang limitat del tipus de dades" + +-#: c-common.c:2375 ++#: c-common.c:2374 + msgid "comparison is always true due to limited range of data type" + msgstr "la comparança sempre és veritable a causa del rang limitat del tipus de dades" + +-#: c-common.c:2445 ++#: c-common.c:2444 + msgid "comparison of unsigned expression >= 0 is always true" + msgstr "la comparança d'una expressió unsigned >= 0 sempre és veritable" + +-#: c-common.c:2454 ++#: c-common.c:2453 + msgid "comparison of unsigned expression < 0 is always false" + msgstr "la comparança d'una expressió unsigned < 0 sempre és falsa" + +-#: c-common.c:2499 ++#: c-common.c:2498 + msgid "pointer of type `void *' used in arithmetic" + msgstr "es va usar un punter de tipus \"void *\" en l'aritmètica" + +-#: c-common.c:2505 ++#: c-common.c:2504 + msgid "pointer to a function used in arithmetic" + msgstr "es va usar un punter a una funció en l'aritmètica" + +-#: c-common.c:2511 ++#: c-common.c:2510 + msgid "pointer to member function used in arithmetic" + msgstr "es va usar un punter a una funció membre en l'aritmètica" + +-#: c-common.c:2600 f/com.c:14734 ++#: c-common.c:2599 f/com.c:14734 + msgid "struct type value used where scalar is required" + msgstr "s'usa un valor de tipus struct quan es requereix un escalar" + +-#: c-common.c:2604 f/com.c:14738 ++#: c-common.c:2603 f/com.c:14738 + msgid "union type value used where scalar is required" + msgstr "s'usa un valor de tipus union quan es requereix un escalar" + +-#: c-common.c:2608 f/com.c:14742 ++#: c-common.c:2607 f/com.c:14742 + msgid "array type value used where scalar is required" + msgstr "s'usa un valor de tipus matriu quan es requereix un escalar" + + #. Common Ada/Pascal programmer's mistake. We always warn + #. about this since it is so bad. +-#: c-common.c:2645 ++#: c-common.c:2644 + #, fuzzy + msgid "the address of `%D', will always evaluate as `true'" + msgstr "l'adreça de \"%D\", sempre serà \"true\"" + +-#: c-common.c:2739 f/com.c:14874 ++#: c-common.c:2738 f/com.c:14874 + msgid "suggest parentheses around assignment used as truth value" + msgstr "se suggereixen parèntesi al voltant de l'assignació usada com valor veritable" + +-#: c-common.c:2785 c-common.c:2825 ++#: c-common.c:2784 c-common.c:2824 + msgid "invalid use of `restrict'" + msgstr "ús invàlid de \"restrict\"" + +-#: c-common.c:2935 ++#: c-common.c:2934 + msgid "invalid application of `sizeof' to a function type" + msgstr "aplicació invalida de \"sizeof\" a una expressió de tipus de funció" + +-#: c-common.c:2945 ++#: c-common.c:2944 + #, c-format + msgid "invalid application of `%s' to a void type" + msgstr "applicació invàlida de \"%s\" a un tipus void" + +-#: c-common.c:2951 ++#: c-common.c:2950 + #, fuzzy + msgid "invalid application of `%s' to incomplete type `%T' " + msgstr "aplicació invàlida de \"%s\" a un tipus de dada incompleta" + +-#: c-common.c:2992 ++#: c-common.c:2991 + msgid "`__alignof' applied to a bit-field" + msgstr "\"__alignof\" aplicat a un camp de bits" + +-#: c-common.c:3484 ++#: c-common.c:3483 + #, c-format + msgid "cannot disable built-in function `%s'" + msgstr "no es pot desactivar la funcio interna \"%s\"" + +-#: c-common.c:3645 c-typeck.c:1974 ++#: c-common.c:3644 c-typeck.c:1954 + #, c-format + msgid "too few arguments to function `%s'" + msgstr "massa pocs arguments per a la funció \"%s\"" + +-#: c-common.c:3651 c-typeck.c:1835 ++#: c-common.c:3650 c-typeck.c:1815 + #, c-format + msgid "too many arguments to function `%s'" + msgstr "massa arguments per a la funció \"%s\"" + +-#: c-common.c:3670 ++#: c-common.c:3669 + #, c-format + msgid "non-floating-point argument to function `%s'" + msgstr "arguments que no són de coma flotant per a la funció \"%s\"" + +-#: c-common.c:3897 ++#: c-common.c:3896 + msgid "pointers are not permitted as case values" + msgstr "els apuntadores no són permesos com valors casi" + +-#: c-common.c:3901 ++#: c-common.c:3900 + #, fuzzy + msgid "range expressions in switch statements are non-standard" + msgstr "ISO C prohibeix un rang d'expressions en les declaracions switch" + +-#: c-common.c:3930 ++#: c-common.c:3929 + msgid "empty range specified" + msgstr "es va especificar un rang buit" + +-#: c-common.c:3981 ++#: c-common.c:3980 + msgid "duplicate (or overlapping) case value" + msgstr "valor de casi duplicat (o translapat)" + +-#: c-common.c:3982 ++#: c-common.c:3981 + #, fuzzy + msgid "%Jthis is the first entry overlapping that value" + msgstr "aquesta és la primera entrada que translapa aquest valor" + +-#: c-common.c:3986 ++#: c-common.c:3985 + msgid "duplicate case value" + msgstr "valor de casi duplicat" + +-#: c-common.c:3987 ++#: c-common.c:3986 + #, fuzzy + msgid "%Jpreviously used here" + msgstr "es va usar prèviament aquí" + +-#: c-common.c:3991 ++#: c-common.c:3990 + msgid "multiple default labels in one switch" + msgstr "múltiples etiquetes per omissió en un sol switch" + +-#: c-common.c:3992 ++#: c-common.c:3991 + #, fuzzy + msgid "%Jthis is the first default label" + msgstr "aquesta és la primera etiqueta per omissió" + +-#: c-common.c:4017 ++#: c-common.c:4016 + #, fuzzy + msgid "taking the address of a label is non-standard" + msgstr "SO C prohibeix prendre l'adreça d'una etiqueta" + +-#: c-common.c:4063 ++#: c-common.c:4062 + msgid "%Hignoring return value of `%D', declared with attribute warn_unused_result" + msgstr "" + +-#: c-common.c:4068 ++#: c-common.c:4067 + msgid "%Hignoring return value of function declared with attribute warn_unused_result" + msgstr "" + +-#: c-common.c:4649 ++#: c-common.c:4651 + #, c-format + msgid "unknown machine mode `%s'" + msgstr "es desconeix la manera de màquina \"%s\"" + +-#: c-common.c:4652 ++#: c-common.c:4654 + #, c-format + msgid "no data type for mode `%s'" + msgstr "no hi ha tipus de dades per a la manera \"%s\"" + +-#: c-common.c:4656 ++#: c-common.c:4658 + #, fuzzy, c-format + msgid "invalid pointer mode `%s'" + msgstr "codi d'operant \"%c\" invàlid" + +-#: c-common.c:4663 c-common.c:5226 ++#: c-common.c:4665 c-common.c:5237 + #, c-format + msgid "unable to emulate '%s'" + msgstr "no es pot emular \"%s\"" + +-#: c-common.c:4707 ++#: c-common.c:4686 ++#, fuzzy, c-format ++msgid "mode `%s' applied to inappropriate type" ++msgstr "\"sigof\" aplicat a un tipus no agregat" ++ ++#: c-common.c:4718 + #, fuzzy + msgid "%Jsection attribute cannot be specified for local variables" + msgstr "l'atribut de secció no pot ser especificat per a les variables locals" + +-#: c-common.c:4718 ++#: c-common.c:4729 + #, fuzzy + msgid "%Jsection of '%D' conflicts with previous declaration" + msgstr "la secció de \"%s\" causa conflictes amb la declaració prèvia" + +-#: c-common.c:4727 ++#: c-common.c:4738 + #, fuzzy + msgid "%Jsection attribute not allowed for '%D'" + msgstr "no es permet un atribut de secció per a \"%s\"" + +-#: c-common.c:4733 ++#: c-common.c:4744 + #, fuzzy + msgid "%Jsection attributes are not supported for this target" + msgstr "atributs de secció no suportats per aquest objectiu" + +-#: c-common.c:4771 ++#: c-common.c:4782 + msgid "requested alignment is not a constant" + msgstr "l'alineació sol-licitada no és una constant" + +-#: c-common.c:4776 ++#: c-common.c:4787 + msgid "requested alignment is not a power of 2" + msgstr "l'alineació sol-licitada no és una potència de 2" + +-#: c-common.c:4781 ++#: c-common.c:4792 + msgid "requested alignment is too large" + msgstr "l'alineació sol-licitada és massa gran" + +-#: c-common.c:4807 ++#: c-common.c:4818 + #, fuzzy + msgid "%Jalignment may not be specified for '%D'" + msgstr "l'alineació no pot ser especificada per a \"%s\"" + +-#: c-common.c:4845 ++#: c-common.c:4856 + #, fuzzy + msgid "%J'%D' defined both normally and as an alias" + msgstr "\"%s\" definit normalment i com un alies" + +-#: c-common.c:4855 ++#: c-common.c:4866 + msgid "alias arg not a string" + msgstr "l'argument d'alies no és una cadena" + +-#: c-common.c:4898 ++#: c-common.c:4909 + msgid "visibility arg not a string" + msgstr "l'argument de·visibilitat no és una cadena" + +-#: c-common.c:4911 ++#: c-common.c:4922 + msgid "visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\"" + msgstr "l'argument de visibilitat deu ser \"default\", \"hidden\", \"protected\" o \"internal\"" + +-#: c-common.c:4937 ++#: c-common.c:4948 + msgid "tls_model arg not a string" + msgstr "l'argument tls_model no és una cadena" + +-#: c-common.c:4946 ++#: c-common.c:4957 + msgid "tls_model arg must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\"" + msgstr "l'argument de tls_model deu ser \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\"" + +-#: c-common.c:4968 c-common.c:5014 ++#: c-common.c:4979 c-common.c:5025 + #, fuzzy + msgid "%J'%E' attribute applies only to functions" + msgstr "l'atribut \"%s\" s'aplica solament a funcions" + +-#: c-common.c:4973 c-common.c:5019 ++#: c-common.c:4984 c-common.c:5030 + #, fuzzy + msgid "%Jcan't set '%E' attribute after definition" + msgstr "no es pot establir l'atribut \"%s\" després de la definició" + +-#: c-common.c:5095 ++#: c-common.c:5106 + #, c-format + msgid "`%s' attribute ignored for `%s'" + msgstr "atribut \"%s\" ignorat per a \"%s\"" + +-#: c-common.c:5158 ++#: c-common.c:5169 + #, c-format + msgid "invalid vector type for attribute `%s'" + msgstr "tipus de vector invalid per a l'atribut \"%s\"" + +-#: c-common.c:5182 c-common.c:5214 ++#: c-common.c:5193 c-common.c:5225 + msgid "no vector mode with the size and type specified could be found" + msgstr "no es pot trobar un mode vector amb la grandària i el tipus especificat " + +-#: c-common.c:5316 ++#: c-common.c:5281 + msgid "nonnull attribute without arguments on a non-prototype" + msgstr "un atribut nonnull sense arguments en un que no és prototip" + +-#: c-common.c:5331 ++#: c-common.c:5296 + #, c-format + msgid "nonnull argument has invalid operand number (arg %lu)" + msgstr "un argument nonnull té un nombre d'operadors invàlid (arg %lu)" + +-#: c-common.c:5350 ++#: c-common.c:5315 + #, c-format + msgid "nonnull argument with out-of-range operand number (arg %lu, operand %lu)" + msgstr "un argument nonnull amb un nombre d'operants fora de rang (arg %lu, operand %lu)" + +-#: c-common.c:5358 ++#: c-common.c:5323 + #, c-format + msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)" + msgstr "un argument nonnull fa referència a un operant que no és punter (arg %lu, operand %lu)" + +-#: c-common.c:5438 ++#: c-common.c:5403 + #, c-format + msgid "null argument where non-null required (arg %lu)" + msgstr "argument null on es requereix un que no sigui null (arg %lu)" + +-#: c-common.c:5509 ++#: c-common.c:5474 + msgid "cleanup arg not an identifier" + msgstr "l'objecte·cridat·no·és·un identificador" + +-#: c-common.c:5516 ++#: c-common.c:5481 + msgid "cleanup arg not a function" + msgstr "l'objecte cridat no és una funció" + +-#: c-common.c:5877 ++#: c-common.c:5842 + #, c-format + msgid "%s at end of input" + msgstr "%s al final de l'entrada" + +-#: c-common.c:5883 ++#: c-common.c:5848 + #, c-format + msgid "%s before %s'%c'" + msgstr "%s abans de %s\"%c\"" + +-#: c-common.c:5885 ++#: c-common.c:5850 + #, c-format + msgid "%s before %s'\\x%x'" + msgstr "%s abans de %s\"\\x%x\"" + +-#: c-common.c:5889 ++#: c-common.c:5854 + #, c-format + msgid "%s before string constant" + msgstr "%s abans d'una constant de cadena" + +-#: c-common.c:5891 ++#: c-common.c:5856 + #, c-format + msgid "%s before numeric constant" + msgstr "%s abans d'una constant numèrica" + +-#: c-common.c:5893 ++#: c-common.c:5858 + #, c-format + msgid "%s before \"%s\"" + msgstr "%s abans de \"%s\"" + +-#: c-common.c:5895 ++#: c-common.c:5860 + #, c-format + msgid "%s before '%s' token" + msgstr "%s abans l'element \"%s\"" + + #. Use `%s' to print the string in case there are any escape + #. characters in the message. +-#: c-common.c:5897 c-typeck.c:2612 c-typeck.c:4004 c-typeck.c:4019 +-#: c-typeck.c:4034 final.c:2776 final.c:2778 gcc.c:4581 rtl-error.c:109 +-#: toplev.c:1357 config/cris/cris.c:552 cp/parser.c:1848 cp/typeck.c:4155 ++#: c-common.c:5862 c-typeck.c:2592 c-typeck.c:3984 c-typeck.c:3999 ++#: c-typeck.c:4014 final.c:2776 final.c:2778 gcc.c:4584 rtl-error.c:109 ++#: toplev.c:1357 config/cris/cris.c:552 cp/parser.c:1848 cp/typeck.c:4173 + #: java/expr.c:356 java/verify.c:1456 java/verify.c:1457 java/verify.c:1472 + #, c-format + msgid "%s" + msgstr "%s" + +-#: c-convert.c:82 c-typeck.c:1211 c-typeck.c:3444 cp/typeck.c:1363 +-#: cp/typeck.c:5708 treelang/tree-convert.c:79 ++#: c-convert.c:82 c-typeck.c:1211 c-typeck.c:3424 cp/typeck.c:1363 ++#: cp/typeck.c:5729 treelang/tree-convert.c:79 + msgid "void value not ignored as it ought to be" + msgstr "valor void no ignorat com deuria ser" + +@@ -752,406 +757,406 @@ + msgid "%Jnon-const declaration of '%D' follows const declaration" + msgstr "la declaració no static per a \"%s\" a continuació d'una static" + +-#: c-decl.c:1262 ++#: c-decl.c:1267 + #, fuzzy + msgid "%Jredundant redeclaration of '%D'" + msgstr "declaració redundant de \"%D\" en el mateix àmbit" + +-#: c-decl.c:1581 ++#: c-decl.c:1586 + #, fuzzy + msgid "%Jdeclaration of '%D' shadows a parameter" + msgstr "la declaració de \"%#D\" enfosqueix un paràmetre" + +-#: c-decl.c:1583 ++#: c-decl.c:1588 + #, fuzzy + msgid "%Jdeclaration of '%D' shadows a global declaration" + msgstr "la declaració de \"%#D\" enfosqueix un paràmetre" + +-#: c-decl.c:1585 ++#: c-decl.c:1590 + #, fuzzy + msgid "%Jdeclaration of '%D' shadows a previous local" + msgstr "la declaració de \"%#D\" enfosqueix un paràmetre" + +-#: c-decl.c:1587 cp/name-lookup.c:969 cp/name-lookup.c:992 ++#: c-decl.c:1592 cp/name-lookup.c:969 cp/name-lookup.c:992 + #: cp/name-lookup.c:1000 + #, fuzzy + msgid "%Jshadowed declaration is here" + msgstr "declaració prèvia de \"%#D\" aquí" + +-#: c-decl.c:1697 ++#: c-decl.c:1702 + #, c-format + msgid "nested extern declaration of `%s'" + msgstr "declaració extern niada de \"%s\"" + +-#: c-decl.c:1838 objc/objc-act.c:2534 objc/objc-act.c:6794 ++#: c-decl.c:1843 objc/objc-act.c:2534 objc/objc-act.c:6794 + #, fuzzy + msgid "%Jprevious declaration of '%D'" + msgstr "declaració prèvia de \"%D\"" + +-#: c-decl.c:1879 c-decl.c:1881 ++#: c-decl.c:1884 c-decl.c:1886 + #, c-format + msgid "implicit declaration of function `%s'" + msgstr "declaració implícita de la funció \"%s\"" + +-#: c-decl.c:1897 ++#: c-decl.c:1902 + #, c-format + msgid "`%s' undeclared here (not in a function)" + msgstr "\"%s\" no ha estat declarat aquí (no en una funció)" + +-#: c-decl.c:1903 ++#: c-decl.c:1908 + #, c-format + msgid "`%s' undeclared (first use in this function)" + msgstr "\"%s\" no ha estat declarat aquí (primer us en aquesta funció)" + +-#: c-decl.c:1908 ++#: c-decl.c:1913 + msgid "(Each undeclared identifier is reported only once" + msgstr "(Cada identificador no declarat solament es reporta una vegada" + +-#: c-decl.c:1909 ++#: c-decl.c:1914 + msgid "for each function it appears in.)" + msgstr "per a cada funció en la qual apareix.)" + +-#: c-decl.c:1962 ++#: c-decl.c:1967 + #, c-format + msgid "label %s referenced outside of any function" + msgstr "l'etiqueta %s és referenciada fora de qualsevol funció" + +-#: c-decl.c:2009 ++#: c-decl.c:2014 + #, c-format + msgid "duplicate label declaration `%s'" + msgstr "declaració de l'etiqueta \"%s\" duplicada" + +-#: c-decl.c:2010 ++#: c-decl.c:2015 + #, fuzzy + msgid "%Jthis is a previous declaration" + msgstr "aquesta és una declaració prèvia" + +-#: c-decl.c:2045 ++#: c-decl.c:2050 + #, fuzzy + msgid "%Hduplicate label `%D'" + msgstr "etiqueta duplicada \"%D\"" + +-#: c-decl.c:2047 ++#: c-decl.c:2052 + #, fuzzy + msgid "%J`%D' previously defined here" + msgstr "es va definir \"%#D\" prèviament aquí" + +-#: c-decl.c:2049 ++#: c-decl.c:2054 + #, fuzzy + msgid "%J`%D' previously declared here" + msgstr "es va declarar \"%#D\" prèviament aquí" + +-#: c-decl.c:2069 ++#: c-decl.c:2074 + msgid "%Htraditional C lacks a separate namespace for labels, identifier `%s' conflicts" + msgstr "" + +-#: c-decl.c:2140 ++#: c-decl.c:2145 + #, fuzzy + msgid "%H`%s' defined as wrong kind of tag" + msgstr "\"%s\" redeclarat com un tipus diferent de símbol" + +-#: c-decl.c:2378 ++#: c-decl.c:2383 + msgid "unnamed struct/union that defines no instances" + msgstr "struct/union sense nom que no defineix cap instància" + +-#: c-decl.c:2397 ++#: c-decl.c:2402 + msgid "useless keyword or type name in empty declaration" + msgstr "paraules claus inútils o noms de tipus en una declaració buida" + +-#: c-decl.c:2404 ++#: c-decl.c:2409 + msgid "two types specified in one empty declaration" + msgstr "es van especificar dos tipus en una declaració buida" + +-#: c-decl.c:2409 c-parse.y:735 c-parse.y:737 objc/objc-parse.y:776 +-#: objc/objc-parse.y:778 objc/objc-parse.y:3017 ++#: c-decl.c:2414 c-parse.y:735 c-parse.y:737 objc/objc-parse.y:776 ++#: objc/objc-parse.y:778 objc/objc-parse.y:3016 + msgid "empty declaration" + msgstr "declaració buida" + +-#: c-decl.c:2435 ++#: c-decl.c:2440 + msgid "ISO C90 does not support `static' or type qualifiers in parameter array declarators" + msgstr "ISO C90 no dóna suport a \"static\" o qualificadors de tipus dins matrius de declaradors de parametres" + +-#: c-decl.c:2437 ++#: c-decl.c:2442 + msgid "ISO C90 does not support `[*]' array declarators" + msgstr "ISO C90 no dóna suport a declaradors de parametres \"[*]\"" + +-#: c-decl.c:2440 ++#: c-decl.c:2445 + msgid "GCC does not yet properly implement `[*]' array declarators" + msgstr "GCC no implementa encara correctament declaradors de parametres \"[*]\"" + +-#: c-decl.c:2456 ++#: c-decl.c:2461 + msgid "static or type qualifiers in abstract declarator" + msgstr "static o calificador de tipus en un declarador abstracte" + +-#: c-decl.c:2526 ++#: c-decl.c:2531 + #, fuzzy + msgid "%J'%D' is usually a function" + msgstr "\"%s\" generalment és una funció" + +-#: c-decl.c:2535 ++#: c-decl.c:2540 + #, c-format + msgid "typedef `%s' is initialized (use __typeof__ instead)" + msgstr "typedef \"%s\" té valor inicial (usi __typeof__ en lloc)" + +-#: c-decl.c:2541 ++#: c-decl.c:2546 + #, c-format + msgid "function `%s' is initialized like a variable" + msgstr "la funció \"%s\" té valor inicial com una variable" + + #. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE. +-#: c-decl.c:2548 ++#: c-decl.c:2553 + #, c-format + msgid "parameter `%s' is initialized" + msgstr "el paràmetre \"%s\" té valor inicial" + +-#: c-decl.c:2568 c-typeck.c:4254 ++#: c-decl.c:2573 c-typeck.c:4234 + msgid "variable-sized object may not be initialized" + msgstr "un objecte de grandària variable no pot tenir valor inicial" + +-#: c-decl.c:2574 ++#: c-decl.c:2579 + #, c-format + msgid "variable `%s' has initializer but incomplete type" + msgstr "la variable \"%s\" té assignació de valor inicial, però tipus de dada incompleta" + +-#: c-decl.c:2580 ++#: c-decl.c:2585 + #, c-format + msgid "elements of array `%s' have incomplete type" + msgstr "alguns elements de la matriu \"%s\" tenen tipus de dada incompleta" + +-#: c-decl.c:2649 c-decl.c:5451 cp/decl.c:3761 cp/decl.c:10141 ++#: c-decl.c:2654 c-decl.c:5462 cp/decl.c:3775 cp/decl.c:10238 + #, fuzzy + msgid "%Jinline function '%D' given attribute noinline" + msgstr "ha donat un atribut noinline a la funció inline \"%s\"" + +-#: c-decl.c:2725 ++#: c-decl.c:2730 + #, fuzzy + msgid "%Jinitializer fails to determine size of '%D'" + msgstr "el inicializador no pot determinar la grandària de \"%D\"" + +-#: c-decl.c:2730 ++#: c-decl.c:2735 + #, fuzzy + msgid "%Jarray size missing in '%D'" + msgstr "falta la grandària de la matriu en \"%D\"" + +-#: c-decl.c:2746 ++#: c-decl.c:2751 + #, fuzzy + msgid "%Jzero or negative size array '%D'" + msgstr "matriu \"%s\" de grandària zero o negatiu" + +-#: c-decl.c:2774 ++#: c-decl.c:2779 + #, fuzzy + msgid "%Jstorage size of '%D' isn't known" + msgstr "no es coneix la grandària d'emmagatzematge de \"%D\"" + +-#: c-decl.c:2784 ++#: c-decl.c:2789 + #, fuzzy + msgid "%Jstorage size of '%D' isn't constant" + msgstr "la grandària d'emmagatzematge de \"%D\" no és constant" + +-#: c-decl.c:2867 ++#: c-decl.c:2872 + #, fuzzy + msgid "%Jignoring asm-specifier for non-static local variable '%D'" + msgstr "s'ignora el especificador asm per a la variable local no estàtica \"%s\"" + +-#: c-decl.c:2978 ++#: c-decl.c:2983 + msgid "ISO C forbids forward parameter declarations" + msgstr "ISO C prohibeix declaracions avançades de paràmetres" + +-#: c-decl.c:3160 ++#: c-decl.c:3165 + #, fuzzy + msgid "" + msgstr "<%s anònim>" + +-#: c-decl.c:3169 ++#: c-decl.c:3174 + #, c-format + msgid "bit-field `%s' width not an integer constant" + msgstr "l'amplària del camp de bits \"%s\" no és una constant entera" + +-#: c-decl.c:3177 ++#: c-decl.c:3182 + #, c-format + msgid "negative width in bit-field `%s'" + msgstr "amplària negativa en el camp de bit \"%s\"" + +-#: c-decl.c:3182 ++#: c-decl.c:3187 + #, c-format + msgid "zero width for bit-field `%s'" + msgstr "amplària zero per al camp de bits \"%s\"" + +-#: c-decl.c:3192 ++#: c-decl.c:3197 + #, c-format + msgid "bit-field `%s' has invalid type" + msgstr "el camp de bits \"%s\" té un tipus invàlid" + +-#: c-decl.c:3201 ++#: c-decl.c:3206 + #, fuzzy, c-format + msgid "type of bit-field `%s' is a GCC extension" + msgstr "l'estil de la directiva de línia és una extenció del GCC" + +-#: c-decl.c:3210 ++#: c-decl.c:3215 + #, c-format + msgid "width of `%s' exceeds its type" + msgstr "l'amplària de \"%s\" excedeix el seu tipus" + +-#: c-decl.c:3220 ++#: c-decl.c:3225 + #, c-format + msgid "`%s' is narrower than values of its type" + msgstr "\"%s\" és més estret que els valors del seu tipus" + +-#: c-decl.c:3370 cp/decl.c:6805 ++#: c-decl.c:3375 cp/decl.c:6900 + msgid "`long long long' is too long for GCC" + msgstr "\"long long long\" és massa llarg per a GCC" + +-#: c-decl.c:3375 ++#: c-decl.c:3380 + msgid "ISO C90 does not support `long long'" + msgstr "ISO C90 no dóna suport a \"long long\"" + +-#: c-decl.c:3384 c-decl.c:3387 cp/decl.c:6810 ++#: c-decl.c:3389 c-decl.c:3392 cp/decl.c:6905 + #, c-format + msgid "duplicate `%s'" + msgstr "\"%s\" duplicat" + +-#: c-decl.c:3397 cp/decl.c:6816 ++#: c-decl.c:3402 cp/decl.c:6911 + msgid "`__thread' before `extern'" + msgstr "\"__thread\" abans \"extern\"" + +-#: c-decl.c:3399 cp/decl.c:6818 ++#: c-decl.c:3404 cp/decl.c:6913 + msgid "`__thread' before `static'" + msgstr "\"__thread\" abans \"static\"" + +-#: c-decl.c:3407 cp/decl.c:6845 ++#: c-decl.c:3412 cp/decl.c:6940 + #, c-format + msgid "two or more data types in declaration of `%s'" + msgstr "dos o més tipus de dades en la declaració de \"%s\"" + +-#: c-decl.c:3427 cp/decl.c:6850 ++#: c-decl.c:3432 cp/decl.c:6945 + #, c-format + msgid "`%s' fails to be a typedef or built in type" + msgstr "\"%s\" falla al ser un typedef o un tipus intern del compilador" + +-#: c-decl.c:3466 ++#: c-decl.c:3471 + #, c-format + msgid "type defaults to `int' in declaration of `%s'" + msgstr "el tipus de dada per omissió és \"int\" en la declaració de \"%s\"" + +-#: c-decl.c:3495 ++#: c-decl.c:3500 + #, c-format + msgid "both long and short specified for `%s'" + msgstr "s'especifica long i short al mateix temps per a \"%s\"" + +-#: c-decl.c:3499 cp/decl.c:6950 ++#: c-decl.c:3504 cp/decl.c:7045 + #, c-format + msgid "long or short specified with char for `%s'" + msgstr "s'especifica long o short amb char per a \"%s\"" + +-#: c-decl.c:3506 cp/decl.c:6954 ++#: c-decl.c:3511 cp/decl.c:7049 + #, c-format + msgid "long or short specified with floating type for `%s'" + msgstr "s'especifica long o short amb tipus floating per a \"%s\"" + +-#: c-decl.c:3509 ++#: c-decl.c:3514 + msgid "the only valid combination is `long double'" + msgstr "l'única combinació vàlida és \"long double\"" + +-#: c-decl.c:3515 ++#: c-decl.c:3520 + #, c-format + msgid "both signed and unsigned specified for `%s'" + msgstr "s'especifica signed i unsigned al mateix temps per a \"%s\"" + +-#: c-decl.c:3517 cp/decl.c:6943 ++#: c-decl.c:3522 cp/decl.c:7038 + #, c-format + msgid "long, short, signed or unsigned invalid for `%s'" + msgstr "long, short, signed o unsigned invàlids per a \"%s\"" + +-#: c-decl.c:3523 cp/decl.c:6963 ++#: c-decl.c:3528 cp/decl.c:7058 + #, c-format + msgid "long, short, signed or unsigned used invalidly for `%s'" + msgstr "ús invàlid de long, short, signed o unsigned per a \"%s\"" + +-#: c-decl.c:3541 cp/decl.c:6984 ++#: c-decl.c:3546 cp/decl.c:7079 + #, c-format + msgid "complex invalid for `%s'" + msgstr "complex invàlid per a \"%s\"" + +-#: c-decl.c:3583 ++#: c-decl.c:3588 + msgid "ISO C90 does not support complex types" + msgstr "ISO C90 no té suport per a tipus complexos" + +-#: c-decl.c:3595 ++#: c-decl.c:3600 + msgid "ISO C does not support plain `complex' meaning `double complex'" + msgstr "ISO C no té suport per a \"complex\" simples que signifiquen \"double complex\"" + +-#: c-decl.c:3601 c-decl.c:3613 ++#: c-decl.c:3606 c-decl.c:3618 + msgid "ISO C does not support complex integer types" + msgstr "ISO C no dóna suport a tipus enters complexos" + +-#: c-decl.c:3643 c-decl.c:4104 cp/decl.c:7576 ++#: c-decl.c:3648 c-decl.c:4115 cp/decl.c:7671 + msgid "duplicate `const'" + msgstr "\"const\" duplicat" + +-#: c-decl.c:3645 c-decl.c:4108 cp/decl.c:7580 ++#: c-decl.c:3650 c-decl.c:4119 cp/decl.c:7675 + msgid "duplicate `restrict'" + msgstr "\"restrict\" duplicat" + +-#: c-decl.c:3647 c-decl.c:4106 cp/decl.c:7578 ++#: c-decl.c:3652 c-decl.c:4117 cp/decl.c:7673 + msgid "duplicate `volatile'" + msgstr "\"volatile\" duplicat" + +-#: c-decl.c:3676 cp/decl.c:7147 ++#: c-decl.c:3681 cp/decl.c:7242 + #, c-format + msgid "multiple storage classes in declaration of `%s'" + msgstr "múltiples classes d'emmagatzematge en la declaració de \"%s\"" + +-#: c-decl.c:3686 ++#: c-decl.c:3691 + msgid "function definition declared `auto'" + msgstr "la definició de la funció ho va declarar com \"auto\"" + +-#: c-decl.c:3688 ++#: c-decl.c:3693 + msgid "function definition declared `register'" + msgstr "la definició de la funció ho va declarar com \"register\"" + +-#: c-decl.c:3690 ++#: c-decl.c:3695 + msgid "function definition declared `typedef'" + msgstr "la definició de la funció ho va declarar com \"typedef\"" + +-#: c-decl.c:3692 ++#: c-decl.c:3697 + msgid "function definition declared `__thread'" + msgstr "la definició de la funció ho va declarar com \"__thread\"" + +-#: c-decl.c:3705 ++#: c-decl.c:3710 + #, c-format + msgid "storage class specified for structure field `%s'" + msgstr "es va especificar una classe d'emmagatzematge per al camp de l'estructura \"%s\"" + +-#: c-decl.c:3709 cp/decl.c:7192 ++#: c-decl.c:3714 cp/decl.c:7287 + #, c-format + msgid "storage class specified for parameter `%s'" + msgstr "es va especificar una classe d'emmagatzematge per al paràmetre \"%s\"" + +-#: c-decl.c:3712 cp/decl.c:7194 ++#: c-decl.c:3717 cp/decl.c:7289 + msgid "storage class specified for typename" + msgstr "es va especificar una classe d'emmagatzematge per al nom de tipus" + +-#: c-decl.c:3724 cp/decl.c:7209 ++#: c-decl.c:3729 cp/decl.c:7304 + #, c-format + msgid "`%s' initialized and declared `extern'" + msgstr "\"%s\" iniciat i declarat com \"extern\"" + +-#: c-decl.c:3726 cp/decl.c:7212 ++#: c-decl.c:3731 cp/decl.c:7307 + #, c-format + msgid "`%s' has both `extern' and initializer" + msgstr "\"%s\" té \"extern\" i assignador de valor inicial al mateix temps" + +-#: c-decl.c:3731 ++#: c-decl.c:3736 + #, fuzzy, c-format + msgid "file-scope declaration of `%s' specifies `auto'" + msgstr "la declaració del nivell superior de \"%s\" especifica \"auto\"" + +-#: c-decl.c:3736 cp/decl.c:7216 ++#: c-decl.c:3741 cp/decl.c:7311 + #, c-format + msgid "nested function `%s' declared `extern'" + msgstr "la funció niada \"%s\" es va declarar \"extern\"" + +-#: c-decl.c:3742 cp/decl.c:7226 ++#: c-decl.c:3747 cp/decl.c:7321 + #, c-format + msgid "function-scope `%s' implicitly auto and declared `__thread'" + msgstr "l'àmbit de la funció \"%s\" és implícitament acte i declarada \"__thread\"" +@@ -1159,469 +1164,469 @@ + #. Only the innermost declarator (making a parameter be of + #. array type which is converted to pointer type) + #. may have static or type qualifiers. +-#: c-decl.c:3781 c-decl.c:3974 ++#: c-decl.c:3786 c-decl.c:3979 + msgid "static or type qualifiers in non-parameter array declarator" + msgstr "static o qualificador de tipus en un declarador de matriu que no és parametre" + +-#: c-decl.c:3825 ++#: c-decl.c:3830 + #, c-format + msgid "declaration of `%s' as array of voids" + msgstr "declaració de \"%s\" com una matriu de voids" + +-#: c-decl.c:3831 ++#: c-decl.c:3836 + #, c-format + msgid "declaration of `%s' as array of functions" + msgstr "declaració de \"%s\" com una matriu de funcions" + +-#: c-decl.c:3836 ++#: c-decl.c:3841 + msgid "invalid use of structure with flexible array member" + msgstr "ús invàlid de structura amb membres de matriu flexible" + +-#: c-decl.c:3855 ++#: c-decl.c:3860 + #, c-format + msgid "size of array `%s' has non-integer type" + msgstr "la grandària de la matriu \"%s\" té un tipus no enter" + +-#: c-decl.c:3860 ++#: c-decl.c:3865 + #, c-format + msgid "ISO C forbids zero-size array `%s'" + msgstr "ISO C prohibeix la matriu \"%s\" de grandària zero" + +-#: c-decl.c:3867 ++#: c-decl.c:3872 + #, c-format + msgid "size of array `%s' is negative" + msgstr "la grandària de la matriu \"%s\" és negatiu" + +-#: c-decl.c:3880 ++#: c-decl.c:3885 + #, c-format + msgid "ISO C90 forbids array `%s' whose size can't be evaluated" + msgstr "ISO C90 prohibeix matriu \"%s\" que la seua grandària no pot ser avaluada" + +-#: c-decl.c:3883 ++#: c-decl.c:3888 + #, c-format + msgid "ISO C90 forbids variable-size array `%s'" + msgstr "ISO C90 prohibeix la matriu \"%s\" de grandària variable" + +-#: c-decl.c:3913 c-decl.c:4131 cp/decl.c:7755 ++#: c-decl.c:3918 c-decl.c:4142 cp/decl.c:7850 + #, c-format + msgid "size of array `%s' is too large" + msgstr "la grandària de la matriu \"%s\" és massa gran" + +-#: c-decl.c:3939 ++#: c-decl.c:3944 + msgid "ISO C90 does not support flexible array members" + msgstr "ISO C90 no té suport per a membres de matriu flexibles" + +-#: c-decl.c:3949 ++#: c-decl.c:3954 + msgid "array type has incomplete element type" + msgstr "el tipus array té tipus d'element incomplet" + +-#: c-decl.c:3994 cp/decl.c:7347 ++#: c-decl.c:4009 cp/decl.c:7442 + #, c-format + msgid "`%s' declared as function returning a function" + msgstr "\"%s\" que és declarat com funció retorna una funció" + +-#: c-decl.c:3999 cp/decl.c:7352 ++#: c-decl.c:4014 cp/decl.c:7447 + #, c-format + msgid "`%s' declared as function returning an array" + msgstr "\"%s\" que és declarat com funció retorna una matriu" + +-#: c-decl.c:4027 ++#: c-decl.c:4038 + msgid "ISO C forbids qualified void function return type" + msgstr "ISO C prohibeix el tipus qualificat de devolució d'una funció void" + +-#: c-decl.c:4031 ++#: c-decl.c:4042 + msgid "type qualifiers ignored on function return type" + msgstr "s'ignoren els calificatores de tipus en el tipus de devolució de la funció" + +-#: c-decl.c:4060 c-decl.c:4146 c-decl.c:4270 c-decl.c:4356 ++#: c-decl.c:4071 c-decl.c:4157 c-decl.c:4281 c-decl.c:4367 + msgid "ISO C forbids qualified function types" + msgstr "ISO C prohibeix els tipus de funció qualificats" + +-#: c-decl.c:4100 cp/decl.c:7572 ++#: c-decl.c:4111 cp/decl.c:7667 + msgid "invalid type modifier within pointer declarator" + msgstr "modificador de tipus invàlid dintre de la declaració del punter" + +-#: c-decl.c:4181 ++#: c-decl.c:4192 + msgid "ISO C forbids const or volatile function types" + msgstr "ISO C prohibeix els tipus de funció const o volatile" + +-#: c-decl.c:4201 cp/decl.c:8036 ++#: c-decl.c:4212 + #, c-format + msgid "variable or field `%s' declared void" + msgstr "variable o camp \"%s\" declarat void" + +-#: c-decl.c:4234 ++#: c-decl.c:4245 + msgid "attributes in parameter array declarator ignored" + msgstr "atributs en el declarador de parametres de matriu ignorats" + +-#: c-decl.c:4259 ++#: c-decl.c:4270 + msgid "invalid type modifier within array declarator" + msgstr "imodificador de tipus invalid dins d'un declarador de matriu" + +-#: c-decl.c:4304 ++#: c-decl.c:4315 + #, c-format + msgid "field `%s' declared as a function" + msgstr "el camp \"%s\" es declarat com una funció" + +-#: c-decl.c:4310 ++#: c-decl.c:4321 + #, c-format + msgid "field `%s' has incomplete type" + msgstr "el camp \"%s\" té tipus de dada incompleta" + +-#: c-decl.c:4336 c-decl.c:4338 c-decl.c:4340 c-decl.c:4347 ++#: c-decl.c:4347 c-decl.c:4349 c-decl.c:4351 c-decl.c:4358 + #, c-format + msgid "invalid storage class for function `%s'" + msgstr "classe d'emmagatzematge invàlida per a la funció \"%s\"" + +-#: c-decl.c:4362 ++#: c-decl.c:4373 + msgid "`noreturn' function returns non-void value" + msgstr "la funció \"no return\" retorna un valor que no és void" + +-#: c-decl.c:4377 ++#: c-decl.c:4388 + msgid "cannot inline function `main'" + msgstr "no es pot fer inline la funció \"main\"" + +-#: c-decl.c:4431 ++#: c-decl.c:4442 + #, fuzzy + msgid "variable previously declared `static' redeclared `extern'" + msgstr "variable o camp \"%s\" declarat void" + +-#: c-decl.c:4440 ++#: c-decl.c:4451 + #, fuzzy + msgid "%Jvariable '%D' declared `inline'" + msgstr "la variable \"%s\" va ser declarada com \"inline\"" + + #. A mere warning is sure to result in improper semantics + #. at runtime. Don't bother to allow this to compile. +-#: c-decl.c:4468 cp/decl.c:5903 ++#: c-decl.c:4479 cp/decl.c:5972 + msgid "thread-local storage not supported for this target" + msgstr "no es dóna suport a -thread local strorage en aquest objectiu" + +-#: c-decl.c:4529 c-decl.c:5495 ++#: c-decl.c:4540 c-decl.c:5506 + msgid "function declaration isn't a prototype" + msgstr "la declaració de la funció no és un prototip" + +-#: c-decl.c:4535 ++#: c-decl.c:4546 + msgid "parameter names (without types) in function declaration" + msgstr "noms de paràmetres (sense tipus) en la declaració de la funció" + +-#: c-decl.c:4563 ++#: c-decl.c:4574 + #, c-format + msgid "parameter `%s' has incomplete type" + msgstr "el paràmetre \"%s\" té tipus de dada incompleta" + +-#: c-decl.c:4566 ++#: c-decl.c:4577 + msgid "parameter has incomplete type" + msgstr "el paràmetre té tipus incomplet" + +-#: c-decl.c:4615 ++#: c-decl.c:4626 + #, fuzzy + msgid "\"void\" as only parameter may not be qualified" + msgstr "el nom de la definició de tipus pot no ser qualificada per a la classe" + +-#: c-decl.c:4636 ++#: c-decl.c:4647 + msgid "\"void\" must be the only parameter" + msgstr "" + +-#: c-decl.c:4653 ++#: c-decl.c:4664 + #, fuzzy + msgid "%Jparameter \"%D\" has just a forward declaration" + msgstr "el paràmetre \"%s\" només té una declaració posterior" + + #. The first %s will be one of 'struct', 'union', or 'enum'. +-#: c-decl.c:4681 ++#: c-decl.c:4692 + #, fuzzy, c-format + msgid "\"%s %s\" declared inside parameter list" + msgstr "\"struct %s\" declarat dintre d'una llista de paràmetres" + + #. The %s will be one of 'struct', 'union', or 'enum'. +-#: c-decl.c:4685 ++#: c-decl.c:4696 + #, fuzzy, c-format + msgid "anonymous %s declared inside parameter list" + msgstr "struct anònim declarat dintre d'una llista de paràmetres" + +-#: c-decl.c:4689 ++#: c-decl.c:4700 + msgid "its scope is only this definition or declaration, which is probably not what you want" + msgstr "el seu àmbit és solament aquesta definició o declaració, la qual cosa probablement no sigui el que desitja." + +-#: c-decl.c:4774 ++#: c-decl.c:4785 + #, c-format + msgid "redefinition of `union %s'" + msgstr "redefinició de \"union %s\"" + +-#: c-decl.c:4776 ++#: c-decl.c:4787 + #, c-format + msgid "redefinition of `struct %s'" + msgstr "redefinició de \"struct %s\"" + +-#: c-decl.c:4844 cp/decl.c:3534 ++#: c-decl.c:4855 cp/decl.c:3548 + msgid "declaration does not declare anything" + msgstr "la declaració no declara res" + +-#: c-decl.c:4889 c-decl.c:4905 ++#: c-decl.c:4900 c-decl.c:4916 + #, fuzzy + msgid "%Jduplicate member '%D'" + msgstr "membre duplicat \"%D\"" + +-#: c-decl.c:4939 c-decl.c:4942 ++#: c-decl.c:4950 c-decl.c:4953 + #, c-format + msgid "%s defined inside parms" + msgstr "es va definir %s dintre dels paràmetres" + +-#: c-decl.c:4940 c-decl.c:4943 c-decl.c:4954 ++#: c-decl.c:4951 c-decl.c:4954 c-decl.c:4965 + msgid "union" + msgstr "unió" + +-#: c-decl.c:4940 c-decl.c:4943 ++#: c-decl.c:4951 c-decl.c:4954 + msgid "structure" + msgstr "estructura" + +-#: c-decl.c:4953 ++#: c-decl.c:4964 + #, c-format + msgid "%s has no %s" + msgstr "%s no té %s" + +-#: c-decl.c:4954 ++#: c-decl.c:4965 + msgid "struct" + msgstr "struct" + +-#: c-decl.c:4955 ++#: c-decl.c:4966 + msgid "named members" + msgstr "membres nomenats" + +-#: c-decl.c:4955 ++#: c-decl.c:4966 + msgid "members" + msgstr "membres" + +-#: c-decl.c:4994 ++#: c-decl.c:5005 + #, c-format + msgid "nested redefinition of `%s'" + msgstr "redefinició niada de \"%s\"" + +-#: c-decl.c:5015 ++#: c-decl.c:5026 + #, fuzzy + msgid "%Jflexible array member in union" + msgstr "membre de matriu flexible en el union" + +-#: c-decl.c:5020 ++#: c-decl.c:5031 + #, fuzzy + msgid "%Jflexible array member not at end of struct" + msgstr "el membre de matriu flexible no està al final del struct" + +-#: c-decl.c:5025 ++#: c-decl.c:5036 + #, fuzzy + msgid "%Jflexible array member in otherwise empty struct" + msgstr "el membre de matriu flexible seria d'altra manera un struct buit" + +-#: c-decl.c:5032 ++#: c-decl.c:5043 + #, fuzzy + msgid "%Jinvalid use of structure with flexible array member" + msgstr "ús invàlid de structura amb membres de matriu flexible" + +-#: c-decl.c:5127 ++#: c-decl.c:5138 + msgid "union cannot be made transparent" + msgstr "union no es pot fer transparent" + + #. This enum is a named one that has been declared already. +-#: c-decl.c:5196 ++#: c-decl.c:5207 + #, c-format + msgid "redeclaration of `enum %s'" + msgstr "redeclaració de \"enum %s\"" + +-#: c-decl.c:5227 ++#: c-decl.c:5238 + msgid "enum defined inside parms" + msgstr "enum definit dintre dels paràmetres" + +-#: c-decl.c:5260 ++#: c-decl.c:5271 + msgid "enumeration values exceed range of largest integer" + msgstr "els valors d'enumeració excedeixen el rang de l'enter més gran" + +-#: c-decl.c:5363 ++#: c-decl.c:5374 + #, c-format + msgid "enumerator value for `%s' not integer constant" + msgstr "el valor de enumerator per a \"%s\" no és una constant entera" + +-#: c-decl.c:5376 ++#: c-decl.c:5387 + msgid "overflow in enumeration values" + msgstr "desbordament en valors d'enumeració" + +-#: c-decl.c:5381 ++#: c-decl.c:5392 + msgid "ISO C restricts enumerator values to range of `int'" + msgstr "ISO C restringeix els valors d'enumeració al rang de \"int\"" + +-#: c-decl.c:5457 ++#: c-decl.c:5468 + msgid "return type is an incomplete type" + msgstr "el tipus de devolució és un tipus de dada incompleta" + +-#: c-decl.c:5465 ++#: c-decl.c:5476 + msgid "return type defaults to `int'" + msgstr "el tipus de devolució per omissió és \"int\"" + +-#: c-decl.c:5501 ++#: c-decl.c:5512 + #, fuzzy + msgid "%Jno previous prototype for '%D'" + msgstr "no hi ha un prototip previ per a \"%s\"" + +-#: c-decl.c:5507 ++#: c-decl.c:5518 + #, fuzzy + msgid "%J'%D' was used with no prototype before its definition" + msgstr "es va usar \"%s\" sense prototip abans de la seva definició" + +-#: c-decl.c:5514 ++#: c-decl.c:5525 + #, fuzzy + msgid "%Jno previous declaration for '%D'" + msgstr "no hi ha declaració prèvia per a \"%s\"" + +-#: c-decl.c:5520 ++#: c-decl.c:5531 + #, fuzzy + msgid "%J`%D' was used with no declaration before its definition" + msgstr "es va usar \"%s\" sense prototip abans de la seva definició" + +-#: c-decl.c:5556 c-decl.c:6062 ++#: c-decl.c:5567 c-decl.c:6073 + #, fuzzy + msgid "%Jreturn type of '%D' is not `int'" + msgstr "el tipus de devolució de \"%s\" no és \"int\"" + +-#: c-decl.c:5571 ++#: c-decl.c:5582 + #, fuzzy + msgid "%Jfirst argument of '%D' should be `int'" + msgstr "el primer argument de \"%s\" deu ser \"int\"" + +-#: c-decl.c:5580 ++#: c-decl.c:5591 + #, fuzzy + msgid "%Jsecond argument of '%D' should be 'char **'" + msgstr "el segon argument de \"%s\" deu ser \"char **\"" + +-#: c-decl.c:5589 ++#: c-decl.c:5600 + #, fuzzy + msgid "%Jthird argument of '%D' should probably be 'char **'" + msgstr "el tercer argument de \"%s\" deuria ser \"char **\"" + +-#: c-decl.c:5599 ++#: c-decl.c:5610 + #, fuzzy + msgid "%J'%D' takes only zero or two arguments" + msgstr "\"%s\" només pren zero o dos arguments" + +-#: c-decl.c:5602 ++#: c-decl.c:5613 + #, fuzzy + msgid "%J'%D' is normally a non-static function" + msgstr "\"%s\" generalment és una funció no estàtica" + +-#: c-decl.c:5658 ++#: c-decl.c:5669 + msgid "%Jold-style parameter declarations in prototyped function definition" + msgstr "" + +-#: c-decl.c:5672 ++#: c-decl.c:5683 + #, fuzzy + msgid "%Jparameter name omitted" + msgstr "es va ometre el nom del paràmetre" + +-#: c-decl.c:5747 ++#: c-decl.c:5758 + #, fuzzy + msgid "%Jparameter name missing from parameter list" + msgstr "falta el nom del paràmetre de la llista de paràmetres" + +-#: c-decl.c:5757 ++#: c-decl.c:5768 + #, fuzzy + msgid "%J\"%D\" declared as a non-parameter" + msgstr "\"%D\" declarat com un friend" + +-#: c-decl.c:5762 ++#: c-decl.c:5773 + #, fuzzy + msgid "%Jmultiple parameters named \"%D\"" + msgstr "múltiples paràmetres nomenats \"%s\"" + +-#: c-decl.c:5770 ++#: c-decl.c:5781 + #, fuzzy + msgid "%Jparameter \"%D\" declared void" + msgstr "el paràmetre \"%D\" es va declarar void" + +-#: c-decl.c:5785 c-decl.c:5787 ++#: c-decl.c:5796 c-decl.c:5798 + #, fuzzy + msgid "%Jtype of \"%D\" defaults to \"int\"" + msgstr "el tipus de \"%s\" és \"int\" per omissió" + +-#: c-decl.c:5801 ++#: c-decl.c:5812 + #, fuzzy + msgid "%Jparameter \"%D\" has incomplete type" + msgstr "el paràmetre té tipus incomplet" + +-#: c-decl.c:5807 ++#: c-decl.c:5818 + #, fuzzy + msgid "%Jdeclaration for parameter \"%D\" but no such parameter" + msgstr "existeix la declaració per al paràmetre \"%s\" però no hi ha tal paràmetre" + +-#: c-decl.c:5859 ++#: c-decl.c:5870 + msgid "number of arguments doesn't match prototype" + msgstr "el nombre d'arguments no coincideixen amb el prototip" + +-#: c-decl.c:5860 c-decl.c:5891 c-decl.c:5898 ++#: c-decl.c:5871 c-decl.c:5902 c-decl.c:5909 + #, fuzzy + msgid "%Hprototype declaration" + msgstr "declaració buida" + +-#: c-decl.c:5889 ++#: c-decl.c:5900 + #, fuzzy + msgid "promoted argument \"%D\" doesn't match prototype" + msgstr "l'argument promogut \"%s\" no coincideix amb el prototip" + +-#: c-decl.c:5897 ++#: c-decl.c:5908 + #, fuzzy + msgid "argument \"%D\" doesn't match prototype" + msgstr "l'argument \"%s\" no coincideix amb el prototip" + +-#: c-decl.c:6094 cp/decl.c:10857 ++#: c-decl.c:6105 cp/decl.c:10954 + msgid "no return statement in function returning non-void" + msgstr "no hi ha una declaració de devolució en una funció que retorna non-void" + +-#: c-decl.c:6101 ++#: c-decl.c:6112 + msgid "this function may return with or without a value" + msgstr "aquesta funció pot retornar amb o sense un valor" + + #. If we get here, declarations have been used in a for loop without + #. the C99 for loop scope. This doesn't make much sense, so don't + #. allow it. +-#: c-decl.c:6200 ++#: c-decl.c:6211 + #, fuzzy + msgid "'for' loop initial declaration used outside C99 mode" + msgstr "es va usar la declaració inicial del cicle \"for\" fora de la manera C99" + +-#: c-decl.c:6224 ++#: c-decl.c:6235 + #, fuzzy, c-format + msgid "'struct %s' declared in 'for' loop initial declaration" + msgstr "\"struct %s\" declarat en la declaració inicial del cicle \"for\"" + +-#: c-decl.c:6227 ++#: c-decl.c:6238 + #, fuzzy, c-format + msgid "'union %s' declared in 'for' loop initial declaration" + msgstr "\"union %s\" declarat en la declaració inicial del cicle \"for\"" + +-#: c-decl.c:6230 ++#: c-decl.c:6241 + #, fuzzy, c-format + msgid "'enum %s' declared in 'for' loop initial declaration" + msgstr "\"enum %s\" declarat en la declaració inicial del cicle \"for\"" + +-#: c-decl.c:6238 ++#: c-decl.c:6249 + #, fuzzy + msgid "%Jdeclaration of non-variable '%D' in 'for' loop initial declaration" + msgstr "declaració de \"%s\" que no és variable en la declaració inicial del cicle \"for\"" + +-#: c-decl.c:6241 ++#: c-decl.c:6252 + #, fuzzy + msgid "%Jdeclaration of static variable '%D' in 'for' loop initial declaration" + msgstr "declaració de la variable static \"%s\" en la declaració inicial del cicle \"for\"" + +-#: c-decl.c:6244 ++#: c-decl.c:6255 + #, fuzzy + msgid "%Jdeclaration of 'extern' variable '%D' in 'for' loop initial declaration" + msgstr "declaració de la variable \"extern\" \"%s\" en la declaració inicial del cicle `for\"" + +-#: c-decl.c:6557 ++#: c-decl.c:6568 + #, fuzzy + msgid "%Jredefinition of global '%D'" + msgstr "redefinició de \"%s\"" + +-#: c-decl.c:6558 ++#: c-decl.c:6569 + #, fuzzy + msgid "%J'%D' previously defined here" + msgstr "es va definir \"%#D\" prèviament aquí" +@@ -2262,90 +2267,90 @@ + msgid "missing makefile target after \"%s\"" + msgstr "falta l'objectiu després de \"-%s\"" + +-#: c-opts.c:291 ++#: c-opts.c:299 + msgid "-I- specified twice" + msgstr "-I- especificat dues vegades" + +-#: c-opts.c:692 ++#: c-opts.c:700 + #, c-format + msgid "switch \"%s\" is no longer supported" + msgstr "el switch \"%s\" ja no té suport" + +-#: c-opts.c:812 ++#: c-opts.c:820 + #, fuzzy + msgid "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)" + msgstr "es va re-nomenar -fhandle-exceptions a -fexceptions (i ara està activat per defecte)" + +-#: c-opts.c:978 ++#: c-opts.c:986 + msgid "output filename specified twice" + msgstr "nom de fitxer de sortida especificat dues vegades" + +-#: c-opts.c:1107 ++#: c-opts.c:1115 + msgid "-Wformat-y2k ignored without -Wformat" + msgstr "s'ignora -Wformat-y2k sense -Wformat" + +-#: c-opts.c:1109 ++#: c-opts.c:1117 + msgid "-Wformat-extra-args ignored without -Wformat" + msgstr "s'ignora -Wformat-extra-args sense -Wformat" + +-#: c-opts.c:1111 ++#: c-opts.c:1119 + msgid "-Wformat-zero-length ignored without -Wformat" + msgstr "s'ignora -Wformat-zero-length sense -Wformat" + +-#: c-opts.c:1113 ++#: c-opts.c:1121 + msgid "-Wformat-nonliteral ignored without -Wformat" + msgstr "s'ignora -Wformat-nonliteral sense -Wformat" + +-#: c-opts.c:1115 ++#: c-opts.c:1123 + msgid "-Wformat-security ignored without -Wformat" + msgstr "s'ignora -Wformat-security sense -Wformat" + +-#: c-opts.c:1117 ++#: c-opts.c:1125 + msgid "-Wmissing-format-attribute ignored without -Wformat" + msgstr "s'ignora -Wformat-attribute sense -Wformat" + +-#: c-opts.c:1131 ++#: c-opts.c:1139 + #, fuzzy, c-format + msgid "opening output file %s: %m" + msgstr "obrint el fitxer de sortida %s" + +-#: c-opts.c:1136 ++#: c-opts.c:1144 + #, c-format + msgid "too many filenames given. Type %s --help for usage" + msgstr "massa noms de fitxers. Teclegi %s --help per a informació d'ùs" + +-#: c-opts.c:1215 ++#: c-opts.c:1223 + msgid "YYDEBUG not defined" + msgstr "no es va definir YYDEBUG" + +-#: c-opts.c:1261 ++#: c-opts.c:1269 + #, fuzzy, c-format + msgid "opening dependency file %s: %m" + msgstr "obrint el fitxer de dependències %s" + +-#: c-opts.c:1271 ++#: c-opts.c:1279 + #, fuzzy, c-format + msgid "closing dependency file %s: %m" + msgstr "tancant el fitxer de dependències %s" + +-#: c-opts.c:1274 ++#: c-opts.c:1282 + #, fuzzy, c-format + msgid "when writing output to %s: %m" + msgstr "a l'escriure a %s" + +-#: c-opts.c:1344 ++#: c-opts.c:1352 + msgid "to generate dependencies you must specify either -M or -MM" + msgstr "per a generar dependències deu especificar -M o -MM" + +-#: c-opts.c:1404 ++#: c-opts.c:1412 + msgid "" + msgstr "" + +-#: c-opts.c:1419 ++#: c-opts.c:1427 + msgid "" + msgstr "" + +-#: c-opts.c:1503 ++#: c-opts.c:1511 + msgid "too late for # directive to set debug directory" + msgstr "" + +@@ -2362,7 +2367,7 @@ + msgid "ISO C forbids an empty source file" + msgstr "ISO C prohibeix un fitxer font buit" + +-#: c-parse.y:349 c-typeck.c:6248 objc/objc-parse.y:374 ++#: c-parse.y:349 c-typeck.c:6228 objc/objc-parse.y:374 + msgid "argument of `asm' is not a constant string" + msgstr "l'argument de \"asm\" no és una cadena constant" + +@@ -2378,7 +2383,7 @@ + msgid "ISO C does not allow extra `;' outside of a function" + msgstr "ISO C no permet \";\" extra fora d'una funció" + +-#: c-parse.y:429 cppexp.c:1253 ++#: c-parse.y:429 cppexp.c:1257 + msgid "traditional C rejects the unary plus operator" + msgstr "C tradicional rebutja l'operador unari mes" + +@@ -2459,7 +2464,7 @@ + msgid "ISO C forbids forward references to `enum' types" + msgstr "ISO C prohibeix les declaracions posteriors per a tipus \"enum\"" + +-#: c-parse.y:1703 cp/parser.c:9339 objc/objc-parse.y:1755 ++#: c-parse.y:1703 cp/parser.c:9383 objc/objc-parse.y:1755 + msgid "comma at end of enumerator list" + msgstr "coma al final de la llista de numeradors" + +@@ -2467,7 +2472,7 @@ + msgid "no semicolon at end of struct or union" + msgstr "no hi ha punt i coma al final del struct o union" + +-#: c-parse.y:1732 objc/objc-parse.y:1784 objc/objc-parse.y:2847 ++#: c-parse.y:1732 objc/objc-parse.y:1784 objc/objc-parse.y:2846 + msgid "extra semicolon in struct or union specified" + msgstr "es va especificar un punt i coma extra en un struct o union" + +@@ -2497,24 +2502,24 @@ + msgid "braced-group within expression allowed only inside a function" + msgstr "un grup de claus dintre d'una expressió només es permet dintre d'una funció" + +-#: c-parse.y:2185 objc/objc-parse.y:2242 ++#: c-parse.y:2185 objc/objc-parse.y:2241 + msgid "empty body in an else-statement" + msgstr "cos buit en una declaració else" + +-#: c-parse.y:2193 objc/objc-parse.y:2250 ++#: c-parse.y:2193 objc/objc-parse.y:2249 + #, fuzzy + msgid "%Hempty body in an if-statement" + msgstr "cos buit en una declaració else" + +-#: c-parse.y:2273 cp/parser.c:6050 objc/objc-parse.y:2330 ++#: c-parse.y:2273 cp/parser.c:6088 objc/objc-parse.y:2329 + msgid "break statement not within loop or switch" + msgstr "la declaració break no està dintre d'un cicle o switch" + +-#: c-parse.y:2282 cp/parser.c:6061 objc/objc-parse.y:2339 ++#: c-parse.y:2282 cp/parser.c:6099 objc/objc-parse.y:2338 + msgid "continue statement not within a loop" + msgstr "la declaració continue no està dintre dintre d'un cicle" + +-#: c-parse.y:2324 objc/objc-parse.y:2381 ++#: c-parse.y:2324 objc/objc-parse.y:2380 + msgid "ISO C forbids `goto *expr;'" + msgstr "ISO C prohibeix \"goto *expr;\"" + +@@ -2524,11 +2529,11 @@ + #. it caused problems with the code in expand_builtin which + #. tries to verify that BUILT_IN_NEXT_ARG is being used + #. correctly. +-#: c-parse.y:2441 objc/objc-parse.y:2549 ++#: c-parse.y:2441 objc/objc-parse.y:2548 + msgid "ISO C requires a named argument before `...'" + msgstr "ISO C requereix un argument amb nom abans de \"...\"" + +-#: c-parse.y:2539 objc/objc-parse.y:2647 ++#: c-parse.y:2539 objc/objc-parse.y:2646 + msgid "`...' in old-style identifier list" + msgstr "\"...\" en una llista d'identificadors d'estil antic" + +@@ -2544,7 +2549,7 @@ + msgid "parser stack overflow" + msgstr "desbordament de la pila del analitzador" + +-#: c-parse.y:2969 objc/objc-parse.y:3664 ++#: c-parse.y:2969 objc/objc-parse.y:3663 + #, c-format + msgid "syntax error at '%s' token" + msgstr "error sintàctic en l'element \"%s\"" +@@ -2626,7 +2631,7 @@ + msgid "%s: had text segment at different address" + msgstr "" + +-#: c-pch.c:357 cpperror.c:176 gcc.c:6554 ++#: c-pch.c:357 cpperror.c:176 gcc.c:6557 + #, c-format + msgid "%s: %s" + msgstr "%s: %s" +@@ -2738,12 +2743,12 @@ + msgid "(enclose actions of previous case statements requiring destructors in their own scope.)" + msgstr "(les accions adjuntes de declaracions casi prèvies requereixen destructors en el seu propi àmbit.)" + +-#: c-semantics.c:737 c-typeck.c:6270 cp/semantics.c:1070 ++#: c-semantics.c:737 c-typeck.c:6250 cp/semantics.c:1070 + #, c-format + msgid "%s qualifier ignored on asm" + msgstr "qualificador %s ignorat en asm" + +-#: c-semantics.c:991 ++#: c-semantics.c:993 + #, fuzzy + msgid "will never be executed" + msgstr "la cridada %2d mai s'executa\n" +@@ -2753,7 +2758,7 @@ + msgid "`%s' has an incomplete type" + msgstr "\"%s\" té un tipus incompleta" + +-#: c-typeck.c:145 cp/call.c:2532 ++#: c-typeck.c:145 cp/call.c:2542 + msgid "invalid use of void expression" + msgstr "ús invàlid de l'expressió void" + +@@ -2789,754 +2794,754 @@ + msgid "function return types not compatible due to `volatile'" + msgstr "el tipus de devolució d'una funció no pot ser una funció" + +-#: c-typeck.c:984 c-typeck.c:2176 ++#: c-typeck.c:984 c-typeck.c:2156 + msgid "arithmetic on pointer to an incomplete type" + msgstr "aritmètica en apuntador a un tipus incomplet" + +-#: c-typeck.c:1357 ++#: c-typeck.c:1337 + #, c-format + msgid "%s has no member named `%s'" + msgstr "%s no té un membre cridat \"%s\"" + +-#: c-typeck.c:1393 ++#: c-typeck.c:1373 + #, c-format + msgid "request for member `%s' in something not a structure or union" + msgstr "petició del membre \"%s\" en alguna cosa que no és estructura o unió" + +-#: c-typeck.c:1422 ++#: c-typeck.c:1402 + msgid "dereferencing pointer to incomplete type" + msgstr "punter dereferènciat a tipus de dada incompleta" + +-#: c-typeck.c:1426 ++#: c-typeck.c:1406 + msgid "dereferencing `void *' pointer" + msgstr "dereferènciant el punter \"void *\"" + +-#: c-typeck.c:1443 cp/typeck.c:2127 ++#: c-typeck.c:1423 cp/typeck.c:2127 + #, c-format + msgid "invalid type argument of `%s'" + msgstr "argument de tipus invàlid de \"%s\"" + +-#: c-typeck.c:1461 cp/typeck.c:2152 ++#: c-typeck.c:1441 cp/typeck.c:2152 + msgid "subscript missing in array reference" + msgstr "falta subindici en la referència de la matriu" + +-#: c-typeck.c:1482 cp/typeck.c:2194 ++#: c-typeck.c:1462 cp/typeck.c:2194 + msgid "array subscript has type `char'" + msgstr "el subindici de matriu té un tipus \"char\"" + +-#: c-typeck.c:1490 c-typeck.c:1579 cp/typeck.c:2198 cp/typeck.c:2284 ++#: c-typeck.c:1470 c-typeck.c:1559 cp/typeck.c:2198 cp/typeck.c:2284 + msgid "array subscript is not an integer" + msgstr "el subindici de la matriu no és un enter" + +-#: c-typeck.c:1523 ++#: c-typeck.c:1503 + msgid "ISO C forbids subscripting `register' array" + msgstr "ISO C prohibeix el subindici d'una matriu \"register\"" + +-#: c-typeck.c:1525 ++#: c-typeck.c:1505 + msgid "ISO C90 forbids subscripting non-lvalue array" + msgstr "ISO C90 prohibeix el subindici d'una matriu non-lvalue" + +-#: c-typeck.c:1558 ++#: c-typeck.c:1538 + msgid "subscript has type `char'" + msgstr "el subindici és de tipus \"char\"" + +-#: c-typeck.c:1574 cp/typeck.c:2279 ++#: c-typeck.c:1554 cp/typeck.c:2279 + msgid "subscripted value is neither array nor pointer" + msgstr "el valor indicat pel subindici no és ni matriu ni punter" + +-#: c-typeck.c:1604 ++#: c-typeck.c:1584 + #, c-format + msgid "local declaration of `%s' hides instance variable" + msgstr "la declaració local de \"%s\" oculta la variable d'instància" + +-#: c-typeck.c:1697 ++#: c-typeck.c:1677 + msgid "called object is not a function" + msgstr "l'objecte cridat no és una funció" + + #. This situation leads to run-time undefined behavior. We can't, + #. therefore, simply error unless we can prove that all possible + #. executions of the program must execute the code. +-#: c-typeck.c:1729 ++#: c-typeck.c:1709 + msgid "function called through a non-compatible type" + msgstr "" + +-#: c-typeck.c:1787 c-typeck.c:4198 c-typeck.c:4200 c-typeck.c:4216 +-#: c-typeck.c:4237 c-typeck.c:5616 ++#: c-typeck.c:1767 c-typeck.c:4178 c-typeck.c:4180 c-typeck.c:4196 ++#: c-typeck.c:4217 c-typeck.c:5596 + msgid "initializer element is not constant" + msgstr "l'element de valor inicial no és constant" + +-#: c-typeck.c:1838 cp/typeck.c:2567 ++#: c-typeck.c:1818 cp/typeck.c:2567 + msgid "too many arguments to function" + msgstr "massa arguments per a la funció" + +-#: c-typeck.c:1859 ++#: c-typeck.c:1839 + #, c-format + msgid "type of formal parameter %d is incomplete" + msgstr "el tipus de dada del paràmetre formal %d està incomplet" + +-#: c-typeck.c:1872 ++#: c-typeck.c:1852 + #, c-format + msgid "%s as integer rather than floating due to prototype" + msgstr "%s com enter en lloc de coma flotant a causa del prototip" + +-#: c-typeck.c:1875 ++#: c-typeck.c:1855 + #, c-format + msgid "%s as integer rather than complex due to prototype" + msgstr "%s com enter en lloc de complex a causa del prototip" + +-#: c-typeck.c:1878 ++#: c-typeck.c:1858 + #, c-format + msgid "%s as complex rather than floating due to prototype" + msgstr "%s com complex en lloc de coma flotant a causa del prototip" + +-#: c-typeck.c:1881 ++#: c-typeck.c:1861 + #, c-format + msgid "%s as floating rather than integer due to prototype" + msgstr "%s com coma flotant en lloc d'enter a causa del prototip" + +-#: c-typeck.c:1884 ++#: c-typeck.c:1864 + #, c-format + msgid "%s as complex rather than integer due to prototype" + msgstr "%s com complex en lloc d'enter a causa del prototip" + +-#: c-typeck.c:1887 ++#: c-typeck.c:1867 + #, c-format + msgid "%s as floating rather than complex due to prototype" + msgstr "%s com coma flotant en lloc de complex a causa del prototip" + +-#: c-typeck.c:1897 ++#: c-typeck.c:1877 + #, c-format + msgid "%s as `float' rather than `double' due to prototype" + msgstr "%s com \"float\" en lloc de \"double\" a causa del prototip" + +-#: c-typeck.c:1915 ++#: c-typeck.c:1895 + #, c-format + msgid "%s with different width due to prototype" + msgstr "%s amb amplària diferent a causa del prototip" + +-#: c-typeck.c:1941 ++#: c-typeck.c:1921 + #, c-format + msgid "%s as unsigned due to prototype" + msgstr "%s com unsigned a causa del prototip" + +-#: c-typeck.c:1943 ++#: c-typeck.c:1923 + #, c-format + msgid "%s as signed due to prototype" + msgstr "%s com signed a causa del prototip" + +-#: c-typeck.c:1977 cp/typeck.c:2673 ++#: c-typeck.c:1957 cp/typeck.c:2673 + msgid "too few arguments to function" + msgstr "molt pocs arguments per a la funció" + +-#: c-typeck.c:2017 ++#: c-typeck.c:1997 + msgid "suggest parentheses around + or - inside shift" + msgstr "se suggereixen parèntesi al voltant de + o - dintre d'un desplaçament" + +-#: c-typeck.c:2024 ++#: c-typeck.c:2004 + msgid "suggest parentheses around && within ||" + msgstr "se suggereixen parèntesi al voltant de && dintre de ||" + +-#: c-typeck.c:2033 ++#: c-typeck.c:2013 + msgid "suggest parentheses around arithmetic in operand of |" + msgstr "se suggereixen parèntesi al voltant de l'aritmètica per a operada de |" + +-#: c-typeck.c:2036 ++#: c-typeck.c:2016 + msgid "suggest parentheses around comparison in operand of |" + msgstr "se suggereixen parèntesi al voltant de les comparances per a operada de |" + +-#: c-typeck.c:2045 ++#: c-typeck.c:2025 + msgid "suggest parentheses around arithmetic in operand of ^" + msgstr "se suggereixen parèntesi al voltant de l'aritmètica per a operada de ^" + +-#: c-typeck.c:2048 ++#: c-typeck.c:2028 + msgid "suggest parentheses around comparison in operand of ^" + msgstr "se suggereixen parèntesi al voltant de les comparances per a operada de ^" + +-#: c-typeck.c:2055 ++#: c-typeck.c:2035 + msgid "suggest parentheses around + or - in operand of &" + msgstr "se suggereixen parèntesi al voltant de + o - per a operada de &" + +-#: c-typeck.c:2058 ++#: c-typeck.c:2038 + msgid "suggest parentheses around comparison in operand of &" + msgstr "se suggereixen parèntesi al voltant de les comparances per a operada de &" + +-#: c-typeck.c:2065 ++#: c-typeck.c:2045 + msgid "comparisons like X<=Y<=Z do not have their mathematical meaning" + msgstr "les comparances com X<=Y<=Z no tenen el seu significat matemàtic" + +-#: c-typeck.c:2128 ++#: c-typeck.c:2108 + msgid "pointer of type `void *' used in subtraction" + msgstr "es va usar un punter de tipus \"void *\" en la substracció" + +-#: c-typeck.c:2130 ++#: c-typeck.c:2110 + msgid "pointer to a function used in subtraction" + msgstr "es va usar un punter a una funció en la substracció" + +-#: c-typeck.c:2224 ++#: c-typeck.c:2204 + msgid "wrong type argument to unary plus" + msgstr "argument de tipus erroni per a l'increment unari" + +-#: c-typeck.c:2237 ++#: c-typeck.c:2217 + msgid "wrong type argument to unary minus" + msgstr "argument de tipus erroni per al decrement unari" + +-#: c-typeck.c:2254 ++#: c-typeck.c:2234 + msgid "ISO C does not support `~' for complex conjugation" + msgstr "ISO C no té suport de \"~\" per a conjugacions complexes" + +-#: c-typeck.c:2260 ++#: c-typeck.c:2240 + msgid "wrong type argument to bit-complement" + msgstr "argument de tipus erroni per a complement de bits" + +-#: c-typeck.c:2268 ++#: c-typeck.c:2248 + msgid "wrong type argument to abs" + msgstr "argument de tipus erroni per a abs" + +-#: c-typeck.c:2280 ++#: c-typeck.c:2260 + msgid "wrong type argument to conjugation" + msgstr "argument de tipus erroni per a la conjugació" + +-#: c-typeck.c:2294 ++#: c-typeck.c:2274 + msgid "wrong type argument to unary exclamation mark" + msgstr "argument de tipus erroni per al signe d'exclamació unari" + +-#: c-typeck.c:2337 ++#: c-typeck.c:2317 + msgid "ISO C does not support `++' and `--' on complex types" + msgstr "ISO C no té suport per a \"++\" i \"--\" en tipus complexos" + +-#: c-typeck.c:2352 c-typeck.c:2384 ++#: c-typeck.c:2332 c-typeck.c:2364 + msgid "wrong type argument to increment" + msgstr "argument de tipus erroni per a l'increment" + +-#: c-typeck.c:2354 c-typeck.c:2386 ++#: c-typeck.c:2334 c-typeck.c:2366 + msgid "wrong type argument to decrement" + msgstr "argument de tipus erroni pel decrement" + +-#: c-typeck.c:2375 ++#: c-typeck.c:2355 + msgid "increment of pointer to unknown structure" + msgstr "increment de punter a estructura desconeguda" + +-#: c-typeck.c:2377 ++#: c-typeck.c:2357 + msgid "decrement of pointer to unknown structure" + msgstr "decrement de punter a estructura desconeguda" + +-#: c-typeck.c:2502 ++#: c-typeck.c:2482 + msgid "invalid lvalue in unary `&'" + msgstr "l-value invàlid en \"&\" unari" + +-#: c-typeck.c:2534 ++#: c-typeck.c:2514 + #, c-format + msgid "attempt to take address of bit-field structure member `%s'" + msgstr "es va intentar prendre l'adreça del membre de l'estructura de camps de bits \"%s\"" + +-#: c-typeck.c:2668 ++#: c-typeck.c:2648 + #, fuzzy + msgid "use of conditional expressions as lvalues is deprecated" + msgstr "ISO C prohibeix l'ús d'expressions condicionals com l-values" + +-#: c-typeck.c:2671 ++#: c-typeck.c:2651 + #, fuzzy + msgid "use of compound expressions as lvalues is deprecated" + msgstr "ISO C prohibeix l'ús d'expressions compostoses com l-valors" + +-#: c-typeck.c:2674 ++#: c-typeck.c:2654 + #, fuzzy + msgid "use of cast expressions as lvalues is deprecated" + msgstr "ISO C prohibeix l'ús d'expressions de conversió com l-valors" + +-#: c-typeck.c:2689 ++#: c-typeck.c:2669 + #, c-format + msgid "%s of read-only member `%s'" + msgstr "%s del membre de només lectura \"%s\"" + +-#: c-typeck.c:2693 ++#: c-typeck.c:2673 + #, c-format + msgid "%s of read-only variable `%s'" + msgstr "%s de la variable de només lectura \"%s\"" + +-#: c-typeck.c:2696 ++#: c-typeck.c:2676 + #, c-format + msgid "%s of read-only location" + msgstr "%s de la ubicació de només lectura" + +-#: c-typeck.c:2714 ++#: c-typeck.c:2694 + #, c-format + msgid "cannot take address of bit-field `%s'" + msgstr "no es pot adquirir l'adreça del camp de bits \"%s\"" + +-#: c-typeck.c:2742 treelang/treetree.c:946 ++#: c-typeck.c:2722 treelang/treetree.c:946 + #, c-format + msgid "global register variable `%s' used in nested function" + msgstr "es va usar la variable de registre global \"%s\" en funcions niades" + +-#: c-typeck.c:2746 treelang/treetree.c:950 ++#: c-typeck.c:2726 treelang/treetree.c:950 + #, c-format + msgid "register variable `%s' used in nested function" + msgstr "es va usar la va variable \"%s\" en funcions niades" + +-#: c-typeck.c:2753 treelang/treetree.c:957 ++#: c-typeck.c:2733 treelang/treetree.c:957 + #, c-format + msgid "address of global register variable `%s' requested" + msgstr "es va sol·licitar l'adreça de la variable de registre global \"%s\"" + +-#: c-typeck.c:2765 ++#: c-typeck.c:2745 + msgid "cannot put object with volatile field into register" + msgstr "no es pot posar objecte amb camp volatile en register" + +-#: c-typeck.c:2769 treelang/treetree.c:962 ++#: c-typeck.c:2749 treelang/treetree.c:962 + #, c-format + msgid "address of register variable `%s' requested" + msgstr "es va sol·licitar l'adreça de la variable register \"%s\"" + +-#: c-typeck.c:2854 ++#: c-typeck.c:2834 + msgid "signed and unsigned type in conditional expression" + msgstr "tipus signed i unsigned en l'expressió condicional" + +-#: c-typeck.c:2861 ++#: c-typeck.c:2841 + msgid "ISO C forbids conditional expr with only one void side" + msgstr "ISO C prohibeix una expressió condicional amb només un costat void" + +-#: c-typeck.c:2877 c-typeck.c:2884 ++#: c-typeck.c:2857 c-typeck.c:2864 + msgid "ISO C forbids conditional expr between `void *' and function pointer" + msgstr "ISO C prohibeix expressions condicionals entre \"void *\" i punters de funcions" + +-#: c-typeck.c:2890 ++#: c-typeck.c:2870 + msgid "pointer type mismatch in conditional expression" + msgstr "els tipus de dades punters no coincideixen en l'expressió condicional" + +-#: c-typeck.c:2897 c-typeck.c:2907 ++#: c-typeck.c:2877 c-typeck.c:2887 + msgid "pointer/integer type mismatch in conditional expression" + msgstr "els tipus de dades punters/enters no coincideixen en l'expressió condicional" + +-#: c-typeck.c:2921 ++#: c-typeck.c:2901 + msgid "type mismatch in conditional expression" + msgstr "els tipus de dades no coincideixen en l'expressió condicional" + +-#: c-typeck.c:2981 ++#: c-typeck.c:2961 + msgid "left-hand operand of comma expression has no effect" + msgstr "l'operador del costat esquerre de l'expressió coma no té efecte" + +-#: c-typeck.c:3012 ++#: c-typeck.c:2992 + msgid "cast specifies array type" + msgstr "la conversió especifica el tipus matriu" + +-#: c-typeck.c:3018 ++#: c-typeck.c:2998 + msgid "cast specifies function type" + msgstr "la conversió especifica el tipus funció" + +-#: c-typeck.c:3028 ++#: c-typeck.c:3008 + msgid "ISO C forbids casting nonscalar to the same type" + msgstr "ISO C prohibeix la conversió d'un no escalar al mateix tipus" + +-#: c-typeck.c:3046 ++#: c-typeck.c:3026 + msgid "ISO C forbids casts to union type" + msgstr "ISO C prohibeix la conversió al tipus union" + +-#: c-typeck.c:3054 ++#: c-typeck.c:3034 + msgid "cast to union type from type not present in union" + msgstr "conversió a tipus union des d'un tipus no presenti en union" + +-#: c-typeck.c:3105 ++#: c-typeck.c:3085 + msgid "cast adds new qualifiers to function type" + msgstr "la conversió afegeix nou qualificadors del tipus de la funció" + + #. There are qualifiers present in IN_OTYPE that are not + #. present in IN_TYPE. +-#: c-typeck.c:3110 ++#: c-typeck.c:3090 + msgid "cast discards qualifiers from pointer target type" + msgstr "la conversió descarta els qualificadors del tipus de la destinació del punter" + +-#: c-typeck.c:3125 ++#: c-typeck.c:3105 + msgid "cast increases required alignment of target type" + msgstr "la conversió incrementa l'alineació requerida del tipus de la destinació" + +-#: c-typeck.c:3131 cp/typeck.c:4945 ++#: c-typeck.c:3111 cp/typeck.c:4963 + msgid "cast from pointer to integer of different size" + msgstr "conversió de punter a enter de grandària diferent" + +-#: c-typeck.c:3136 ++#: c-typeck.c:3116 + msgid "cast does not match function type" + msgstr "la conversió no coincideix amb el tipus de la funció" + +-#: c-typeck.c:3143 cp/typeck.c:4952 ++#: c-typeck.c:3123 cp/typeck.c:4970 + msgid "cast to pointer from integer of different size" + msgstr "conversió a punter des d'un enter de grandària diferent" + +-#: c-typeck.c:3155 ++#: c-typeck.c:3135 + msgid "type-punning to incomplete type might break strict-aliasing rules" + msgstr "el càstig de tipus a tipus incomplet pot trencar les regles d'alies estricte" + +-#: c-typeck.c:3159 ++#: c-typeck.c:3139 + msgid "dereferencing type-punned pointer will break strict-aliasing rules" + msgstr "el retorn de punters de tipus castigat trencarà les regles d'alies estricte" + +-#: c-typeck.c:3170 ++#: c-typeck.c:3150 + #, fuzzy + msgid "ISO C forbids conversion of function pointer to object pointer type" + msgstr "ISO C prohibeix la comparança de \"void *\" amb un punter de funció" + +-#: c-typeck.c:3179 ++#: c-typeck.c:3159 + #, fuzzy + msgid "ISO C forbids conversion of object pointer to function pointer type" + msgstr "ISO C prohibeix la comparança de \"void *\" amb un punter de funció" + + #. Now we have handled acceptable kinds of LHS that are not truly lvalues. + #. Reject anything strange now. +-#: c-typeck.c:3337 ++#: c-typeck.c:3317 + msgid "invalid lvalue in assignment" + msgstr "l-value invàlid en l'assignació" + + #. Convert new value to destination type. +-#: c-typeck.c:3346 c-typeck.c:3371 c-typeck.c:3388 cp/typeck.c:5064 +-#: cp/typeck.c:5211 cp/typeck.c:5226 ++#: c-typeck.c:3326 c-typeck.c:3351 c-typeck.c:3368 cp/typeck.c:5082 ++#: cp/typeck.c:5229 cp/typeck.c:5244 + msgid "assignment" + msgstr "assignació" + +-#: c-typeck.c:3455 ++#: c-typeck.c:3435 + msgid "cannot pass rvalue to reference parameter" + msgstr "no es pot passar un valor-r a un paràmetre de referència" + +-#: c-typeck.c:3564 c-typeck.c:3640 ++#: c-typeck.c:3544 c-typeck.c:3620 + #, c-format + msgid "%s makes qualified function pointer from unqualified" + msgstr "%s fa un punter de funció qualificat des d'un no qualificat" + +-#: c-typeck.c:3568 c-typeck.c:3620 ++#: c-typeck.c:3548 c-typeck.c:3600 + #, c-format + msgid "%s discards qualifiers from pointer target type" + msgstr "%s descarta els calificadors del tipus de la destinació del punter" + +-#: c-typeck.c:3574 ++#: c-typeck.c:3554 + msgid "ISO C prohibits argument conversion to union type" + msgstr "ISO C prohibeix la conversió d'arguments a tipus union" + +-#: c-typeck.c:3612 ++#: c-typeck.c:3592 + #, c-format + msgid "ISO C forbids %s between function pointer and `void *'" + msgstr "ISO C prohibeix %s entre punters a funció i \"void *\"" + +-#: c-typeck.c:3629 ++#: c-typeck.c:3609 + #, c-format + msgid "pointer targets in %s differ in signedness" + msgstr "el punter que apunta a %s difereix en signe" + +-#: c-typeck.c:3645 ++#: c-typeck.c:3625 + #, c-format + msgid "%s from incompatible pointer type" + msgstr "%s de tipus de punter incompatible" + +-#: c-typeck.c:3651 c-typeck.c:4158 cp/typeck.c:1389 ++#: c-typeck.c:3631 c-typeck.c:4138 cp/typeck.c:1389 + msgid "invalid use of non-lvalue array" + msgstr "ús invàlid de matriu no lvaluada" + +-#: c-typeck.c:3665 ++#: c-typeck.c:3645 + #, c-format + msgid "%s makes pointer from integer without a cast" + msgstr "%s crea un punter des d'un enter sense una conversió" + +-#: c-typeck.c:3672 ++#: c-typeck.c:3652 + #, c-format + msgid "%s makes integer from pointer without a cast" + msgstr "%s crea un enter des d'un punter sense una conversió" + +-#: c-typeck.c:3686 c-typeck.c:3689 ++#: c-typeck.c:3666 c-typeck.c:3669 + #, c-format + msgid "incompatible type for argument %d of `%s'" + msgstr "tipus incompatible per a l'argument %d de \"%s\"" + +-#: c-typeck.c:3693 ++#: c-typeck.c:3673 + #, c-format + msgid "incompatible type for argument %d of indirect function call" + msgstr "tipus incompatible per a l'argument %d de la cridada indirecta a funció" + +-#: c-typeck.c:3697 ++#: c-typeck.c:3677 + #, c-format + msgid "incompatible types in %s" + msgstr "tipus incompatibles en %s" + + #. Function name is known; supply it. +-#: c-typeck.c:3753 ++#: c-typeck.c:3733 + #, c-format + msgid "passing arg of `%s'" + msgstr "passant l'argument de \"%s\"" + + #. Function name unknown (call through ptr). +-#: c-typeck.c:3762 ++#: c-typeck.c:3742 + msgid "passing arg of pointer to function" + msgstr "passant l'argument del punter a la funció" + + #. Function name is known; supply it. +-#: c-typeck.c:3770 ++#: c-typeck.c:3750 + #, c-format + msgid "passing arg %d of `%s'" + msgstr "passant l'argument %d de \"%s\"" + + #. Function name unknown (call through ptr); just give arg number. +-#: c-typeck.c:3779 ++#: c-typeck.c:3759 + #, c-format + msgid "passing arg %d of pointer to function" + msgstr "passant l'argument %d del punter a la funció" + +-#: c-typeck.c:3836 ++#: c-typeck.c:3816 + msgid "traditional C rejects automatic aggregate initialization" + msgstr "C tradicional rebutja la iniciació automàtica d'agregats" + +-#: c-typeck.c:4007 c-typeck.c:4022 c-typeck.c:4037 ++#: c-typeck.c:3987 c-typeck.c:4002 c-typeck.c:4017 + #, c-format + msgid "(near initialization for `%s')" + msgstr "(prop de l'assignació de valors inicials per a \"%s\")" + +-#: c-typeck.c:4086 cp/typeck2.c:560 ++#: c-typeck.c:4066 cp/typeck2.c:550 + msgid "char-array initialized from wide string" + msgstr "matriu de caràcters amb valors inicials assignats d'una cadena ampla" + +-#: c-typeck.c:4093 cp/typeck2.c:567 ++#: c-typeck.c:4073 cp/typeck2.c:557 + msgid "int-array initialized from non-wide string" + msgstr "matriu d'enters amb valors inicials assignats d'una cadena no ampla" + +-#: c-typeck.c:4111 cp/typeck2.c:582 ++#: c-typeck.c:4091 cp/typeck2.c:572 + msgid "initializer-string for array of chars is too long" + msgstr "la cadena de valors inicials per a la matriu de caràcters és massa llarga" + +-#: c-typeck.c:4181 ++#: c-typeck.c:4161 + msgid "array initialized from non-constant array expression" + msgstr "matriu amb valors inicials assignats d'una expressió matricial que no és constant" + +-#: c-typeck.c:4232 ++#: c-typeck.c:4212 + msgid "initialization" + msgstr "assignació de valors inicials" + +-#: c-typeck.c:4243 c-typeck.c:5621 ++#: c-typeck.c:4223 c-typeck.c:5601 + msgid "initializer element is not computable at load time" + msgstr "l'element de valor inicial no és calculable al moment de la càrrega" + +-#: c-typeck.c:4258 cp/typeck2.c:659 ++#: c-typeck.c:4238 cp/typeck2.c:649 + msgid "invalid initializer" + msgstr "valor inicial invàlid" + +-#: c-typeck.c:4540 cp/decl.c:4484 ++#: c-typeck.c:4520 cp/decl.c:4539 + #, fuzzy + msgid "opaque vector types cannot be initialized" + msgstr "un objecte de grandària variable de tipus \"%T\" no pot ser inicialitzat" + +-#: c-typeck.c:4734 ++#: c-typeck.c:4714 + msgid "extra brace group at end of initializer" + msgstr "grup extra de claus al final dels valors inicials" + +-#: c-typeck.c:4754 ++#: c-typeck.c:4734 + msgid "missing braces around initializer" + msgstr "falten claus al voltant dels valors inicials" + +-#: c-typeck.c:4814 ++#: c-typeck.c:4794 + msgid "braces around scalar initializer" + msgstr "claus al voltant del valor inicial escalar" + +-#: c-typeck.c:4865 ++#: c-typeck.c:4845 + msgid "initialization of flexible array member in a nested context" + msgstr "iniciació d'un membre de matriu flexible en un context niat" + +-#: c-typeck.c:4867 ++#: c-typeck.c:4847 + msgid "initialization of a flexible array member" + msgstr "iniciació d'un membre de matriu flexible" + +-#: c-typeck.c:4898 ++#: c-typeck.c:4878 + msgid "missing initializer" + msgstr "falta valor inicial" + +-#: c-typeck.c:4920 ++#: c-typeck.c:4900 + msgid "empty scalar initializer" + msgstr "valor inicial escalar buidor" + +-#: c-typeck.c:4925 ++#: c-typeck.c:4905 + msgid "extra elements in scalar initializer" + msgstr "elements extres en valor inicial escalar" + +-#: c-typeck.c:5010 ++#: c-typeck.c:4990 + msgid "initialization designators may not nest" + msgstr "no es poden niar els designadors d'iniciació" + +-#: c-typeck.c:5031 c-typeck.c:5099 ++#: c-typeck.c:5011 c-typeck.c:5079 + msgid "array index in non-array initializer" + msgstr "índex de matriu en valor inicial que no és de matriu" + +-#: c-typeck.c:5036 c-typeck.c:5152 ++#: c-typeck.c:5016 c-typeck.c:5132 + msgid "field name not in record or union initializer" + msgstr "el nom del camp no està en el inicialitzador de record o union" + +-#: c-typeck.c:5095 c-typeck.c:5097 ++#: c-typeck.c:5075 c-typeck.c:5077 + msgid "nonconstant array index in initializer" + msgstr "índex de matriu no constant en valor inicial" + +-#: c-typeck.c:5101 c-typeck.c:5104 ++#: c-typeck.c:5081 c-typeck.c:5084 + msgid "array index in initializer exceeds array bounds" + msgstr "l'índex de matriu en el valor inicial excedeix els límits de la matriu" + +-#: c-typeck.c:5115 ++#: c-typeck.c:5095 + msgid "empty index range in initializer" + msgstr "rang d'índexs buit en valor inicial" + +-#: c-typeck.c:5124 ++#: c-typeck.c:5104 + msgid "array index range in initializer exceeds array bounds" + msgstr "el rang d'índexs de la matriu en el valor inicial excedeix els límits de la matriu" + +-#: c-typeck.c:5164 ++#: c-typeck.c:5144 + #, c-format + msgid "unknown field `%s' specified in initializer" + msgstr "camp \"%s\" desconegut especificat en el valor inicial" + +-#: c-typeck.c:5200 c-typeck.c:5221 c-typeck.c:5683 ++#: c-typeck.c:5180 c-typeck.c:5201 c-typeck.c:5663 + msgid "initialized field with side-effects overwritten" + msgstr "camp iniciat amb efectes laterals sobreescrits" + +-#: c-typeck.c:5891 ++#: c-typeck.c:5871 + msgid "excess elements in char array initializer" + msgstr "excés d'elements en valors inicials de matriu de caràcters" + +-#: c-typeck.c:5898 c-typeck.c:5944 ++#: c-typeck.c:5878 c-typeck.c:5924 + msgid "excess elements in struct initializer" + msgstr "excés d'elements en valors inicials de struct" + +-#: c-typeck.c:5959 ++#: c-typeck.c:5939 + msgid "non-static initialization of a flexible array member" + msgstr "iniciació no estàtica d'un membre de matriu flexible" + +-#: c-typeck.c:6026 ++#: c-typeck.c:6006 + msgid "excess elements in union initializer" + msgstr "excés d'elements en valors inicials de union" + +-#: c-typeck.c:6047 ++#: c-typeck.c:6027 + msgid "traditional C rejects initialization of unions" + msgstr "C tradicional rebutja els valors inicials de unions" + +-#: c-typeck.c:6110 ++#: c-typeck.c:6090 + msgid "excess elements in array initializer" + msgstr "excés d'elements en valors inicials de matriu" + +-#: c-typeck.c:6139 ++#: c-typeck.c:6119 + msgid "excess elements in vector initializer" + msgstr "excés d'elements en valor inicial vectorial" + +-#: c-typeck.c:6161 ++#: c-typeck.c:6141 + msgid "excess elements in scalar initializer" + msgstr "excés d'elements en valor inicial escalar" + +-#: c-typeck.c:6263 ++#: c-typeck.c:6243 + msgid "asm template is not a string constant" + msgstr "la plantilla asm no és una cadena constant" + +-#: c-typeck.c:6295 ++#: c-typeck.c:6275 + msgid "invalid lvalue in asm statement" + msgstr "lvalue invàlid en declaració asm" + +-#: c-typeck.c:6367 cp/typeck.c:5902 ++#: c-typeck.c:6347 cp/typeck.c:5923 + msgid "modification by `asm'" + msgstr "modificació per \"asm\"" + +-#: c-typeck.c:6385 cp/typeck.c:5986 ++#: c-typeck.c:6365 cp/typeck.c:6007 + msgid "function declared `noreturn' has a `return' statement" + msgstr "la funció declarada \"noreturn\" té una declaració \"return\"" + +-#: c-typeck.c:6392 ++#: c-typeck.c:6372 + msgid "`return' with no value, in function returning non-void" + msgstr "\"return\" sense valors, en una funció que retorna non-void" + +-#: c-typeck.c:6398 ++#: c-typeck.c:6378 + msgid "`return' with a value, in function returning void" + msgstr "\"return\" amb valor, en una funció que retorna void" + +-#: c-typeck.c:6402 ++#: c-typeck.c:6382 + msgid "return" + msgstr "return" + +-#: c-typeck.c:6454 ++#: c-typeck.c:6434 + msgid "function returns address of local variable" + msgstr "la funció retorna l'adreça d'una variable local" + +-#: c-typeck.c:6509 cp/semantics.c:749 ++#: c-typeck.c:6489 cp/semantics.c:749 + msgid "switch quantity not an integer" + msgstr "la quantitat de switch no és un enter" + +-#: c-typeck.c:6519 ++#: c-typeck.c:6499 + msgid "`long' switch expression not converted to `int' in ISO C" + msgstr "no es converteix l'expressió de switch \"long\" a \"int\" en ISO C" + +-#: c-typeck.c:6560 cp/parser.c:5560 ++#: c-typeck.c:6540 cp/parser.c:5597 + msgid "case label not within a switch statement" + msgstr "l'etiqueta casi no es troba dintre d'una declaració switch" + +-#: c-typeck.c:6562 ++#: c-typeck.c:6542 + msgid "`default' label not within a switch statement" + msgstr "l'etiqueta \"default\" no està dintre d'una declaració switch" + +-#: c-typeck.c:6714 c-typeck.c:6748 ++#: c-typeck.c:6694 c-typeck.c:6728 + msgid "division by zero" + msgstr "divisió per zero" + +-#: c-typeck.c:6793 cp/typeck.c:2953 ++#: c-typeck.c:6773 cp/typeck.c:2953 + msgid "right shift count is negative" + msgstr "el compte de desplaçament a la dreta es negatiu" + +-#: c-typeck.c:6800 cp/typeck.c:2959 ++#: c-typeck.c:6780 cp/typeck.c:2959 + msgid "right shift count >= width of type" + msgstr "compte de desplaçament a la dreta >= amplària del tipus" + +-#: c-typeck.c:6821 cp/typeck.c:2978 ++#: c-typeck.c:6801 cp/typeck.c:2978 + msgid "left shift count is negative" + msgstr "el compte de desplaçament a l'esquerra és negativa" + +-#: c-typeck.c:6824 cp/typeck.c:2980 ++#: c-typeck.c:6804 cp/typeck.c:2980 + msgid "left shift count >= width of type" + msgstr "compte de desplaçament a l'esquerra >= amplària del tipus" + +-#: c-typeck.c:6845 ++#: c-typeck.c:6825 + msgid "shift count is negative" + msgstr "compte de desplaçament a la dreta negatiu" + +-#: c-typeck.c:6847 ++#: c-typeck.c:6827 + msgid "shift count >= width of type" + msgstr "ompte de desplaçament a la dreta >= amplària del tipus" + +-#: c-typeck.c:6864 cp/typeck.c:3015 ++#: c-typeck.c:6844 cp/typeck.c:3015 + msgid "comparing floating point with == or != is unsafe" + msgstr "no és segura la comparança de coma flotant amb == o !=" + +-#: c-typeck.c:6888 c-typeck.c:6894 ++#: c-typeck.c:6868 c-typeck.c:6874 + msgid "ISO C forbids comparison of `void *' with function pointer" + msgstr "ISO C prohibeix la comparança de \"void *\" amb un punter de funció" + +-#: c-typeck.c:6897 c-typeck.c:6937 c-typeck.c:6965 ++#: c-typeck.c:6877 c-typeck.c:6917 c-typeck.c:6945 + msgid "comparison of distinct pointer types lacks a cast" + msgstr "la comparança de diferents tipus de punter manca d'una conversió" + +-#: c-typeck.c:6911 c-typeck.c:6916 c-typeck.c:6985 c-typeck.c:6990 ++#: c-typeck.c:6891 c-typeck.c:6896 c-typeck.c:6965 c-typeck.c:6970 + msgid "comparison between pointer and integer" + msgstr "comparança entre punter i enter" + +-#: c-typeck.c:6932 c-typeck.c:6960 ++#: c-typeck.c:6912 c-typeck.c:6940 + msgid "ISO C forbids ordered comparisons of pointers to functions" + msgstr "ISO C prohibeix la comparança entre punters a funcions" + +-#: c-typeck.c:6957 ++#: c-typeck.c:6937 + msgid "comparison of complete and incomplete pointers" + msgstr "comparança de punters complets i incomplets" + +-#: c-typeck.c:6973 c-typeck.c:6980 ++#: c-typeck.c:6953 c-typeck.c:6960 + msgid "ordered comparison of pointer with integer zero" + msgstr "comparança ordenada de punter amb l'enter zero" + +-#: c-typeck.c:7004 cp/typeck.c:3151 ++#: c-typeck.c:6984 cp/typeck.c:3151 + msgid "unordered comparison on non-floating point argument" + msgstr "comparança sense ordre en argument de coma no flotant" + +-#: c-typeck.c:7214 ++#: c-typeck.c:7194 + msgid "comparison between signed and unsigned" + msgstr "comparança entre signed i unsigned" + +-#: c-typeck.c:7260 cp/typeck.c:3398 ++#: c-typeck.c:7240 cp/typeck.c:3398 + msgid "comparison of promoted ~unsigned with constant" + msgstr "comparança d'un ~unsigned promogut amb una constant" + +-#: c-typeck.c:7268 cp/typeck.c:3406 ++#: c-typeck.c:7248 cp/typeck.c:3406 + msgid "comparison of promoted ~unsigned with unsigned" + msgstr "comparança d'un ~unsigned promogut amb unsigned" + +@@ -3545,7 +3550,7 @@ + msgid "%Jinlining failed in call to '%F'" + msgstr "el \"inlining\" va fallar en la cridada a \"%s\"" + +-#: calls.c:1839 calls.c:2211 tree-inline.c:1339 tree-inline.c:1346 ++#: calls.c:1839 calls.c:2211 tree-inline.c:1339 tree-inline.c:1347 + msgid "called from here" + msgstr "cridat des d'aquí" + +@@ -3606,7 +3611,7 @@ + msgid "verify_flow_info: Basic block %d succ edge is corrupted" + msgstr "verify_flow_info: El bloc bàsic %d succ edge està corrupte" + +-#: cfg.c:909 cfgrtl.c:1971 ++#: cfg.c:909 cfgrtl.c:1983 + #, c-format + msgid "Wrong amount of branch edges after unconditional jump %i" + msgstr "Quantitat errònia de vores de ramificació després del salt incondicional %i" +@@ -3685,118 +3690,118 @@ + msgid "Edge from %d to %d should not be marked irreducible." + msgstr "" + +-#: cfgrtl.c:1877 ++#: cfgrtl.c:1889 + #, c-format + msgid "end insn %d for block %d not found in the insn stream" + msgstr "el insn final %d per al bloc %d no es troba en el fluix insn" + +-#: cfgrtl.c:1891 ++#: cfgrtl.c:1903 + #, c-format + msgid "insn %d is in multiple basic blocks (%d and %d)" + msgstr "insn %d està en múltiples blocs bàsics (%d i %d)" + +-#: cfgrtl.c:1903 ++#: cfgrtl.c:1915 + #, c-format + msgid "head insn %d for block %d not found in the insn stream" + msgstr "el cap insn %d per al bloc %d no es troba en el fluix insn" + +-#: cfgrtl.c:1925 ++#: cfgrtl.c:1937 + #, fuzzy + msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i" + msgstr "verify_flow_info: REG_BR_PROB no coincideix amb la configuració %i %i" + +-#: cfgrtl.c:1953 ++#: cfgrtl.c:1965 + #, c-format + msgid "Missing REG_EH_REGION note in the end of bb %i" + msgstr "Manca la nota REG_EH_REGION al final de bb %i" + +-#: cfgrtl.c:1961 ++#: cfgrtl.c:1973 + #, c-format + msgid "Too many outgoing branch edges from bb %i" + msgstr "Massa vores de ramificació de sortida de bb %i" + +-#: cfgrtl.c:1966 ++#: cfgrtl.c:1978 + #, c-format + msgid "Fallthru edge after unconditional jump %i" + msgstr "Vora de caiguda després del salt incondicional %i" + +-#: cfgrtl.c:1977 ++#: cfgrtl.c:1989 + #, c-format + msgid "Wrong amount of branch edges after conditional jump %i" + msgstr "Quantitat errònia de vores de ramificació després del salt condicional %i" + +-#: cfgrtl.c:1982 ++#: cfgrtl.c:1994 + #, c-format + msgid "Call edges for non-call insn in bb %i" + msgstr "Bords de cridada per a una insn que no és cridada en bb %i" + +-#: cfgrtl.c:1991 ++#: cfgrtl.c:2003 + #, c-format + msgid "Abnormal edges for no purpose in bb %i" + msgstr "Vores anormals sense cap propòsit en bb %i" + +-#: cfgrtl.c:2001 ++#: cfgrtl.c:2013 + #, c-format + msgid "insn %d inside basic block %d but block_for_insn is NULL" + msgstr "insn %d està dintre del bloc bàsic %d però block_for_insn és NULL" + +-#: cfgrtl.c:2005 ++#: cfgrtl.c:2017 + #, c-format + msgid "insn %d inside basic block %d but block_for_insn is %i" + msgstr "insn %d està dintre del bloc bàsic %d però block_for_insn és %i" + +-#: cfgrtl.c:2019 cfgrtl.c:2029 ++#: cfgrtl.c:2031 cfgrtl.c:2041 + #, c-format + msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d" + msgstr "NOTE_INSN_BASIC_BLOCK mancada per al bloc %d" + +-#: cfgrtl.c:2042 ++#: cfgrtl.c:2054 + #, c-format + msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d" + msgstr "NOTE_INSN_BASIC_BLOCK %d en el mitjà del bloc bàsic %d" + +-#: cfgrtl.c:2052 ++#: cfgrtl.c:2064 + #, c-format + msgid "in basic block %d:" + msgstr "en el bloc bàsic %d:" + +-#: cfgrtl.c:2053 ++#: cfgrtl.c:2065 + msgid "flow control insn inside a basic block" + msgstr "control de fluix insn dintre el bloc bàsic" + +-#: cfgrtl.c:2099 ++#: cfgrtl.c:2111 + #, c-format + msgid "missing barrier after block %i" + msgstr "falta una barrera després del bloc %i" + +-#: cfgrtl.c:2112 ++#: cfgrtl.c:2124 + #, c-format + msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i" + msgstr "verify_flow_info: Blocs incorrectes per al respatller %i->%i" + +-#: cfgrtl.c:2127 ++#: cfgrtl.c:2139 + #, c-format + msgid "verify_flow_info: Incorrect fallthru %i->%i" + msgstr "verify_flow_info: Respatller incorrecte %i->%i" + +-#: cfgrtl.c:2129 ++#: cfgrtl.c:2141 + msgid "wrong insn in the fallthru edge" + msgstr "insn erroni en la vora del respatller" + +-#: cfgrtl.c:2146 ++#: cfgrtl.c:2158 + #, fuzzy + msgid "basic blocks not laid down consecutively" + msgstr "els blocs bàsics no estan numerats consecutivament" + +-#: cfgrtl.c:2171 ++#: cfgrtl.c:2183 + msgid "insn outside basic block" + msgstr "insn fora del bloc bàsic" + +-#: cfgrtl.c:2179 ++#: cfgrtl.c:2191 + msgid "return not followed by barrier" + msgstr "return no és seguit per una barrera" + +-#: cfgrtl.c:2186 ++#: cfgrtl.c:2198 + #, c-format + msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)" + msgstr "el nombre de notes bb en la cadena insn (%d) != n_basic_blocks (%d)" +@@ -4033,7 +4038,7 @@ + msgid "library lib%s not found" + msgstr "no es troba la biblioteca lib%s" + +-#: combine.c:13048 ++#: combine.c:13047 + #, c-format + msgid "" + ";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n" +@@ -4044,7 +4049,7 @@ + ";; %d èxits.\n" + "\n" + +-#: combine.c:13057 ++#: combine.c:13056 + #, c-format + msgid "" + "\n" +@@ -4377,63 +4382,69 @@ + msgid "token \"%s\" is not valid in preprocessor expressions" + msgstr "l'element \"%s\" no és vàlid en les expressions del preprocesador" + +-#: cppexp.c:753 +-msgid "void expression between '(' and ')'" ++#: cppexp.c:751 ++#, fuzzy ++msgid "missing expression between '(' and ')'" + msgstr "expressión void entre \"(\" i \")\"" + +-#: cppexp.c:756 ++#: cppexp.c:754 + msgid "#if with no expression" + msgstr "#if sense expressió" + +-#: cppexp.c:758 ++#: cppexp.c:757 + #, c-format + msgid "operator '%s' has no right operand" + msgstr "l'operador \"%s\" no té operant de dreta" + +-#: cppexp.c:784 ++#: cppexp.c:762 ++#, fuzzy, c-format ++msgid "operator '%s' has no left operand" ++msgstr "l'operador \"%s\" no té operant de dreta" ++ ++#: cppexp.c:788 + msgid " ':' without preceding '?'" + msgstr " \":\" sense \"?\" precedent" + +-#: cppexp.c:811 ++#: cppexp.c:815 + msgid "unbalanced stack in #if" + msgstr "pila desequilibrada en #if" + +-#: cppexp.c:830 ++#: cppexp.c:834 + #, c-format + msgid "impossible operator '%u'" + msgstr "operador \"%u\" impossible" + +-#: cppexp.c:922 ++#: cppexp.c:926 + msgid "missing ')' in expression" + msgstr "\")\" faltant en l'expressió" + +-#: cppexp.c:943 ++#: cppexp.c:947 + msgid "'?' without following ':'" + msgstr " \"?\" sense \":\" següent" + +-#: cppexp.c:953 ++#: cppexp.c:957 + msgid "integer overflow in preprocessor expression" + msgstr "desbordament d'enter en l'expressió del preprocessador" + +-#: cppexp.c:958 ++#: cppexp.c:962 + msgid "missing '(' in expression" + msgstr "\"(\" faltant en l'expressió" + +-#: cppexp.c:990 ++#: cppexp.c:994 + #, c-format + msgid "the left operand of \"%s\" changes sign when promoted" + msgstr "l'operant esquerre de \"%s\" canvia el signe quan és promogut" + +-#: cppexp.c:995 ++#: cppexp.c:999 + #, c-format + msgid "the right operand of \"%s\" changes sign when promoted" + msgstr "l'operant dret de \"%s\" canvia el signe quan és promogut" + +-#: cppexp.c:1353 ++#: cppexp.c:1357 + msgid "comma operator in operand of #if" + msgstr "operador coma en operant de #if" + +-#: cppexp.c:1484 ++#: cppexp.c:1488 + msgid "division by zero in #if" + msgstr "divisió per zero en #if" + +@@ -4469,7 +4480,7 @@ + msgid "no include path in which to search for %s" + msgstr "no hi ha ruta d'inclusió en la qual es trobi %s" + +-#: cppfiles.c:956 ++#: cppfiles.c:959 + msgid "Multiple include guards may be useful for:\n" + msgstr "Guàrdies múltiples de include poden ser útils per a:\n" + +@@ -4882,7 +4893,7 @@ + msgid "syntax error in macro parameter list" + msgstr "\"%s\" podria faltar en la llista de paràmetre de macro" + +-#: cse.c:7064 ++#: cse.c:7069 + #, c-format + msgid ";; Processing block from %d to %d, %d sets.\n" + msgstr ";; Processant el bloc de %d a %d, %d establerts.\n" +@@ -5016,12 +5027,12 @@ + + #. We can't handle floating point constants; + #. PRINT_OPERAND must handle them. +-#: final.c:3220 vmsdbgout.c:467 config/i386/i386.c:6768 ++#: final.c:3220 vmsdbgout.c:467 config/i386/i386.c:6769 + #: config/pdp11/pdp11.c:1646 + msgid "floating constant misused" + msgstr "constant de coma flotant mal usada" + +-#: final.c:3276 vmsdbgout.c:524 config/i386/i386.c:6846 ++#: final.c:3276 vmsdbgout.c:524 config/i386/i386.c:6847 + #: config/pdp11/pdp11.c:1693 + msgid "invalid expression as operand" + msgstr "expressió invàlida com operant" +@@ -5042,25 +5053,25 @@ + msgid "Attempt to delete prologue/epilogue insn:" + msgstr "Intent d'esborrar insn pròleg/epíleg:" + +-#: fold-const.c:2878 fold-const.c:2891 ++#: fold-const.c:2889 fold-const.c:2902 + #, c-format + msgid "comparison is always %d due to width of bit-field" + msgstr "la comparança sempre és %d a causa de l'amplària del camp de bit" + +-#: fold-const.c:4093 fold-const.c:4110 ++#: fold-const.c:4110 fold-const.c:4127 + #, c-format + msgid "comparison is always %d" + msgstr "la comparança sempre és %d" + +-#: fold-const.c:4241 ++#: fold-const.c:4258 + msgid "`or' of unmatched not-equal tests is always 1" + msgstr "un \"or\" de proves no equivalents sense coincidència sempre és 1" + +-#: fold-const.c:4246 ++#: fold-const.c:4263 + msgid "`and' of mutually exclusive equal-tests is always 0" + msgstr "un \"and\" de proves equivalents mútuament exclusives sempre és 0" + +-#: fold-const.c:8393 ++#: fold-const.c:8410 + msgid "fold check: original tree changed by fold" + msgstr "" + +@@ -5069,30 +5080,30 @@ + msgid "%Jsize of variable '%D' is too large" + msgstr "la grandària de la variable \"%s\" és massa gran" + +-#: function.c:3742 ++#: function.c:3752 + msgid "impossible constraint in `asm'" + msgstr "restricció impossible en \"asm\"" + +-#: function.c:5733 ++#: function.c:5743 + #, fuzzy + msgid "%J'%D' might be used uninitialized in this function" + msgstr "\"%s\" es deuria usar sense iniciar en aquesta funció" + +-#: function.c:5740 ++#: function.c:5750 + #, fuzzy + msgid "%Jvariable '%D' might be clobbered by `longjmp' or `vfork'" + msgstr "la variable \"%s\" podria ser sobreescrita per \"longjmp\" o \"vfork\"" + +-#: function.c:5759 ++#: function.c:5769 + #, fuzzy + msgid "%Jargument '%D' might be clobbered by `longjmp' or `vfork'" + msgstr "l'argument \"%s\" podria ser sobreescrit per \"longjmp\" o \"vfork\"" + +-#: function.c:6533 ++#: function.c:6543 + msgid "function returns an aggregate" + msgstr "la funció retorna un agregat" + +-#: function.c:6929 ++#: function.c:6939 + #, fuzzy + msgid "%Junused parameter '%D'" + msgstr "paràmetre \"%s\" sense ús" +@@ -5121,7 +5132,7 @@ + msgid "Using built-in specs.\n" + msgstr "Usant especificacions internes.\n" + +-#: gcc.c:1755 ++#: gcc.c:1758 + #, c-format + msgid "" + "Setting spec %s to '%s'\n" +@@ -5130,42 +5141,42 @@ + "Canviant l'especificació de %s a \"%s\"\n" + "\n" + +-#: gcc.c:1857 ++#: gcc.c:1860 + #, c-format + msgid "Reading specs from %s\n" + msgstr "Llegint especificacions de %s\n" + +-#: gcc.c:1953 gcc.c:1972 ++#: gcc.c:1956 gcc.c:1975 + #, c-format + msgid "specs %%include syntax malformed after %ld characters" + msgstr "specs sintaxi mal formada de %%include després de %ld caràcters" + +-#: gcc.c:1980 ++#: gcc.c:1983 + #, c-format + msgid "could not find specs file %s\n" + msgstr "No es pot trobar el fitxer d'especificacions %s\n" + +-#: gcc.c:1997 gcc.c:2005 gcc.c:2014 gcc.c:2023 ++#: gcc.c:2000 gcc.c:2008 gcc.c:2017 gcc.c:2026 + #, c-format + msgid "specs %%rename syntax malformed after %ld characters" + msgstr "specs sintaxi mal formada de %%rename després de %ld caràcters" + +-#: gcc.c:2032 ++#: gcc.c:2035 + #, c-format + msgid "specs %s spec was not found to be renamed" + msgstr "specs l'especificació %s no es va trobar per a ser re-nomenada" + +-#: gcc.c:2039 ++#: gcc.c:2042 + #, c-format + msgid "%s: attempt to rename spec '%s' to already defined spec '%s'" + msgstr "" + +-#: gcc.c:2044 ++#: gcc.c:2047 + #, c-format + msgid "rename spec %s to %s\n" + msgstr "re-nomenada especificació %s a %s\n" + +-#: gcc.c:2046 ++#: gcc.c:2049 + #, c-format + msgid "" + "spec is '%s'\n" +@@ -5174,25 +5185,25 @@ + "la especificació és \"%s\"\n" + "\n" + +-#: gcc.c:2059 ++#: gcc.c:2062 + #, c-format + msgid "specs unknown %% command after %ld characters" + msgstr "specs comanda %% desconegut després de %ld caràcters" + +-#: gcc.c:2070 gcc.c:2083 ++#: gcc.c:2073 gcc.c:2086 + #, c-format + msgid "specs file malformed after %ld characters" + msgstr "specs fitxer mal format després de %ld caràcters" + +-#: gcc.c:2136 ++#: gcc.c:2139 + msgid "spec file has no spec for linking" + msgstr "el fitxer d'especificacions no té especificacions per a enllaçar" + +-#: gcc.c:2641 ++#: gcc.c:2644 + msgid "-pipe not supported" + msgstr "-pipe no té suport" + +-#: gcc.c:2703 ++#: gcc.c:2706 + msgid "" + "\n" + "Go ahead? (y or n) " +@@ -5200,7 +5211,7 @@ + "\n" + "Continuar? (s o n) " + +-#: gcc.c:2829 ++#: gcc.c:2832 + #, c-format + msgid "" + "Internal error: %s (program %s)\n" +@@ -5211,77 +5222,77 @@ + "Per favor envieu un informe complet d'error.\n" + "Consulta %s per a més instruccions." + +-#: gcc.c:2847 ++#: gcc.c:2850 + #, c-format + msgid "# %s %.2f %.2f\n" + msgstr "# %s %.2f %.2f\n" + +-#: gcc.c:2980 ++#: gcc.c:2983 + #, c-format + msgid "Usage: %s [options] file...\n" + msgstr "Utilització: %s [opcions] fitxer...\n" + +-#: gcc.c:2981 ++#: gcc.c:2984 + msgid "Options:\n" + msgstr "Opcions:\n" + +-#: gcc.c:2983 ++#: gcc.c:2986 + msgid " -pass-exit-codes Exit with highest error code from a phase\n" + msgstr " -pass-exit-codes Sortir amb el codi d'error més alt d'una fase\n" + +-#: gcc.c:2984 ++#: gcc.c:2987 + msgid " --help Display this information\n" + msgstr " --help Mostra aquesta informació\n" + +-#: gcc.c:2985 ++#: gcc.c:2988 + msgid " --target-help Display target specific command line options\n" + msgstr "" + " --target-help Mostra opcions de línia de comando específiques de\n" + " l'objectiu\n" + +-#: gcc.c:2987 ++#: gcc.c:2990 + msgid " (Use '-v --help' to display command line options of sub-processes)\n" + msgstr " (Usi \"-v --help\" per a mostrar les opcions de línia de comando dels subprocès)\n" + +-#: gcc.c:2988 ++#: gcc.c:2991 + msgid " -dumpspecs Display all of the built in spec strings\n" + msgstr " -dumpspecs Mostra totes les cadenes internes d'especificació\n" + +-#: gcc.c:2989 ++#: gcc.c:2992 + msgid " -dumpversion Display the version of the compiler\n" + msgstr " -dumpversion Mostra la versió del compilador\n" + +-#: gcc.c:2990 ++#: gcc.c:2993 + msgid " -dumpmachine Display the compiler's target processor\n" + msgstr " -dumpmachine Mostra el processador objectiu del compilador\n" + +-#: gcc.c:2991 ++#: gcc.c:2994 + msgid " -print-search-dirs Display the directories in the compiler's search path\n" + msgstr "" + " -print-search-dirs Mostra les directoris en la ruta de recerca del\n" + " compilador\n" + +-#: gcc.c:2992 ++#: gcc.c:2995 + msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n" + msgstr "" + " -print-libgcc-file-name Mostra el nom de la biblioteca que acompanya el\n" + " compilador\n" + +-#: gcc.c:2993 ++#: gcc.c:2996 + msgid " -print-file-name= Display the full path to library \n" + msgstr " -print-file-name= Mostra la ruta completa a la biblioteca \n" + +-#: gcc.c:2994 ++#: gcc.c:2997 + msgid " -print-prog-name= Display the full path to compiler component \n" + msgstr "" + " -print-prog-name= Mostra la ruta completa del programa component del\n" + " compilador \n" + +-#: gcc.c:2995 ++#: gcc.c:2998 + msgid " -print-multi-directory Display the root directory for versions of libgcc\n" + msgstr " -print-multi-directory Mostra el directori arrel per a versoins de libgcc\n" + +-#: gcc.c:2996 ++#: gcc.c:2999 + msgid "" + " -print-multi-lib Display the mapping between command line options and\n" + " multiple library search directories\n" +@@ -5290,105 +5301,105 @@ + " comanda i els múltiples directoris de la recerca\n" + " de biblioteques\n" + +-#: gcc.c:2999 ++#: gcc.c:3002 + msgid " -print-multi-os-directory Display the relative path to OS libraries\n" + msgstr " -print-multi-os-directory Mostra la ruta relativa per a les biblioteques del SO\n" + +-#: gcc.c:3000 ++#: gcc.c:3003 + msgid " -Wa, Pass comma-separated on to the assembler\n" + msgstr " -Wa, Passa separades per coma al assemblador\n" + +-#: gcc.c:3001 ++#: gcc.c:3004 + msgid " -Wp, Pass comma-separated on to the preprocessor\n" + msgstr " -Wp, Passa separades per coma al preprocesador\n" + +-#: gcc.c:3002 ++#: gcc.c:3005 + msgid " -Wl, Pass comma-separated on to the linker\n" + msgstr " -Wl, Passa separades per coma al enllaçador\n" + +-#: gcc.c:3003 ++#: gcc.c:3006 + #, fuzzy + msgid " -Xassembler Pass on to the assembler\n" + msgstr " -Xlinker Passa el al enllaçador\n" + +-#: gcc.c:3004 ++#: gcc.c:3007 + #, fuzzy + msgid " -Xpreprocessor Pass on to the preprocessor\n" + msgstr " -Xlinker Passa el al enllaçador\n" + +-#: gcc.c:3005 ++#: gcc.c:3008 + msgid " -Xlinker Pass on to the linker\n" + msgstr " -Xlinker Passa el al enllaçador\n" + +-#: gcc.c:3006 ++#: gcc.c:3009 + msgid " -save-temps Do not delete intermediate files\n" + msgstr " -save-temps No esborra els fitxers intermedis\n" + +-#: gcc.c:3007 ++#: gcc.c:3010 + msgid " -pipe Use pipes rather than intermediate files\n" + msgstr " -pipe Usa canonades en lloc de fitxers intermedis\n" + +-#: gcc.c:3008 ++#: gcc.c:3011 + msgid " -time Time the execution of each subprocess\n" + msgstr " -time Obté el temps d'execució de cada subprocès\n" + +-#: gcc.c:3009 ++#: gcc.c:3012 + msgid " -specs= Override built-in specs with the contents of \n" + msgstr "" + " -specs= Sobreposa les especificacions internes amb el\n" + " contingut de \n" + +-#: gcc.c:3010 ++#: gcc.c:3013 + msgid " -std= Assume that the input sources are for \n" + msgstr "" + " -std= Assumeix que les fitxers d'entrada són per a el\n" + " \n" + +-#: gcc.c:3011 ++#: gcc.c:3014 + msgid " -B Add to the compiler's search paths\n" + msgstr "" + " -B Agrega el a les rutes de recerca del\n" + " compilador\n" + +-#: gcc.c:3012 ++#: gcc.c:3015 + msgid " -b Run gcc for target , if installed\n" + msgstr "" + " -b Executa gcc per a l'objectiu ,\n" + " si va ser instal·lat\n" + +-#: gcc.c:3013 ++#: gcc.c:3016 + msgid " -V Run gcc version number , if installed\n" + msgstr "" + " -V Executa el gcc amb nombre de versió ,\n" + " si va ser instal·lat\n" + +-#: gcc.c:3014 ++#: gcc.c:3017 + msgid " -v Display the programs invoked by the compiler\n" + msgstr " -v Mostra els programes invocats pel compilador\n" + +-#: gcc.c:3015 ++#: gcc.c:3018 + msgid " -### Like -v but options quoted and commands not executed\n" + msgstr "" + " -### Com -v però les opcions i comandes entr \"\" no estan\n" + " executades\n" + +-#: gcc.c:3016 ++#: gcc.c:3019 + msgid " -E Preprocess only; do not compile, assemble or link\n" + msgstr " -E Solament preprocessa; no compila, assembla o enllaça\n" + +-#: gcc.c:3017 ++#: gcc.c:3020 + msgid " -S Compile only; do not assemble or link\n" + msgstr " -S Solament compila; no assembla o enllaça\n" + +-#: gcc.c:3018 ++#: gcc.c:3021 + msgid " -c Compile and assemble, but do not link\n" + msgstr " -c Compila i assembla, però no enllaça\n" + +-#: gcc.c:3019 ++#: gcc.c:3022 + msgid " -o Place the output into \n" + msgstr " -o Col·loca la sortida en el \n" + +-#: gcc.c:3020 ++#: gcc.c:3023 + msgid "" + " -x Specify the language of the following input files\n" + " Permissible languages include: c c++ assembler none\n" +@@ -5401,7 +5412,7 @@ + " conducta habitual de endevinar el llenguatge basat\n" + " en l'extensió del fitxer\n" + +-#: gcc.c:3027 ++#: gcc.c:3030 + #, c-format + msgid "" + "\n" +@@ -5414,27 +5425,27 @@ + " automàticament als varis subprocesos invocats per %s. Per passar altres\n" + " opcions a aquests processos es deuen usar les opcions -W\n" + +-#: gcc.c:3148 ++#: gcc.c:3151 + #, c-format + msgid "`-%c' option must have argument" + msgstr "l'opció \"-%c\" deu tenir arguments" + +-#: gcc.c:3170 ++#: gcc.c:3173 + #, c-format + msgid "couldn't run `%s': %s" + msgstr "" + + #. translate_options () has turned --version into -fversion. +-#: gcc.c:3356 ++#: gcc.c:3359 + #, c-format + msgid "%s (GCC) %s\n" + msgstr "%s (GCC) %s\n" + +-#: gcc.c:3358 gcov.c:424 f/g77spec.c:351 ++#: gcc.c:3361 gcov.c:424 f/g77spec.c:351 + msgid "(C)" + msgstr "" + +-#: gcc.c:3359 ++#: gcc.c:3362 + msgid "" + "This is free software; see the source for copying conditions. There is NO\n" + "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" +@@ -5445,68 +5456,68 @@ + "de còpia. No hi ha CAP garantia; ni tan sols de COMERCIABILITAT o\n" + "ADEQUACIÓ A UN PROPÒSIT PARTICULAR.\n" + +-#: gcc.c:3460 ++#: gcc.c:3463 + msgid "argument to `-Xlinker' is missing" + msgstr "falta l'argument per a \"-Xlinker\"" + +-#: gcc.c:3468 ++#: gcc.c:3471 + #, fuzzy + msgid "argument to `-Xpreprocessor' is missing" + msgstr "falta l'argument per a \"-specs\"" + +-#: gcc.c:3475 ++#: gcc.c:3478 + #, fuzzy + msgid "argument to `-Xassembler' is missing" + msgstr "falta l'argument per a \"-Xlinker\"" + +-#: gcc.c:3482 ++#: gcc.c:3485 + msgid "argument to `-l' is missing" + msgstr "falta l'argument per a \"-I\"" + +-#: gcc.c:3498 ++#: gcc.c:3501 + msgid "argument to `-specs' is missing" + msgstr "falta l'argument per a \"-specs\"" + +-#: gcc.c:3512 ++#: gcc.c:3515 + msgid "argument to `-specs=' is missing" + msgstr "falta l'argument per a \"-specs=\"" + +-#: gcc.c:3549 ++#: gcc.c:3552 + #, c-format + msgid "`-%c' must come at the start of the command line" + msgstr "" + +-#: gcc.c:3558 ++#: gcc.c:3561 + msgid "argument to `-B' is missing" + msgstr "falta l'argument per a \"-B\"" + +-#: gcc.c:3735 ++#: gcc.c:3738 + msgid "warning: -pipe ignored because -save-temps specified" + msgstr "Avís: s'ignora -pipe perquè es va especificar -save-temps" + +-#: gcc.c:3739 ++#: gcc.c:3742 + msgid "warning: -pipe ignored because -time specified" + msgstr "Avís: s'ignora -pipe perquè es va especificar -time" + +-#: gcc.c:3951 ++#: gcc.c:3954 + msgid "argument to `-x' is missing" + msgstr "falta l'argument per a \"-x\"" + +-#: gcc.c:3979 ++#: gcc.c:3982 + #, c-format + msgid "argument to `-%s' is missing" + msgstr "falta l'argument per a \"-%s\"" + +-#: gcc.c:4040 ++#: gcc.c:4043 + #, c-format + msgid "warning: `-x %s' after last input file has no effect" + msgstr "avís: \"-x %s\" després de l'últim fitxer d'entrada no té efecte" + +-#: gcc.c:4441 ++#: gcc.c:4444 + msgid "invalid specification! Bug in cc" + msgstr "Especificació invàlida! Bug en cc." + +-#: gcc.c:4595 ++#: gcc.c:4598 + #, c-format + msgid "%s\n" + msgstr "%s\n" +@@ -5514,78 +5525,78 @@ + #. Catch the case where a spec string contains something like + #. '%{foo:%*}'. ie there is no * in the pattern on the left + #. hand side of the :. +-#: gcc.c:5099 ++#: gcc.c:5102 + #, c-format + msgid "spec failure: '%%*' has not been initialized by pattern match" + msgstr "Falla en spec: \"%%*\" no ha estat iniciat per coincidència de patró" + +-#: gcc.c:5108 ++#: gcc.c:5111 + #, c-format + msgid "warning: use of obsolete %%[ operator in specs" + msgstr "Avís: ús de l'operador obsolet %%[ en specs" + +-#: gcc.c:5126 ++#: gcc.c:5129 + #, c-format + msgid "Processing spec %c%s%c, which is '%s'\n" + msgstr "Processant l'especificació %c%s%c, el qual és \"%s\"\n" + +-#: gcc.c:5189 ++#: gcc.c:5192 + #, c-format + msgid "spec failure: unrecognized spec option '%c'" + msgstr "Falla en spec: Opció d'especificació \"%c\" no reconeguda" + +-#: gcc.c:5268 ++#: gcc.c:5271 + #, c-format + msgid "unknown spec function `%s'" + msgstr "funció d'especificació \"%s\" desconeguda" + +-#: gcc.c:5287 ++#: gcc.c:5290 + #, c-format + msgid "error in args to spec function `%s'" + msgstr "error en els arguments per a la funció d'especificació \"%s\"" + +-#: gcc.c:5335 ++#: gcc.c:5338 + msgid "malformed spec function name" + msgstr "nom de la funció d'especificació malformat" + + #. ) +-#: gcc.c:5338 ++#: gcc.c:5341 + msgid "no arguments for spec function" + msgstr "molt pocs arguments per a la funció spec" + +-#: gcc.c:5357 ++#: gcc.c:5360 + msgid "malformed spec function arguments" + msgstr "" + +-#: gcc.c:6083 ++#: gcc.c:6086 + msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC." + msgstr "" + +-#: gcc.c:6093 ++#: gcc.c:6096 + msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC." + msgstr "" + +-#: gcc.c:6186 ++#: gcc.c:6189 + #, c-format + msgid "unrecognized option `-%s'" + msgstr "opció \"-%s\" no reconeguda" + +-#: gcc.c:6192 ++#: gcc.c:6195 + #, c-format + msgid "install: %s%s\n" + msgstr "instal·lar: %s%s\n" + +-#: gcc.c:6193 ++#: gcc.c:6196 + #, c-format + msgid "programs: %s\n" + msgstr "programes: %s\n" + +-#: gcc.c:6194 ++#: gcc.c:6197 + #, c-format + msgid "libraries: %s\n" + msgstr "biblioteques: %s\n" + +-#: gcc.c:6251 ++#: gcc.c:6254 + msgid "" + "\n" + "For bug reporting instructions, please see:\n" +@@ -5593,51 +5604,51 @@ + "\n" + "Per a instruccions de report de bug, si us plau per favor vegi:\n" + +-#: gcc.c:6267 ++#: gcc.c:6270 + #, c-format + msgid "Configured with: %s\n" + msgstr "Configurat amb: %s\n" + +-#: gcc.c:6281 ++#: gcc.c:6284 + #, c-format + msgid "Thread model: %s\n" + msgstr "Model de fils: %s\n" + +-#: gcc.c:6292 ++#: gcc.c:6295 + #, c-format + msgid "gcc version %s\n" + msgstr "gcc versió %s\n" + +-#: gcc.c:6294 ++#: gcc.c:6297 + #, c-format + msgid "gcc driver version %s executing gcc version %s\n" + msgstr "controlador gcc versió %s executant gcc versió %s\n" + +-#: gcc.c:6302 ++#: gcc.c:6305 + msgid "no input files" + msgstr "no hi ha fitxers d'entrada" + +-#: gcc.c:6324 gcc.c:6443 ++#: gcc.c:6327 gcc.c:6446 + #, c-format + msgid "%s: linker input file unused because linking not done" + msgstr "%s: fitxer d'entrada de l'enllaçador sense ùs perquè no es va fer enllaç" + +-#: gcc.c:6327 ++#: gcc.c:6330 + #, fuzzy + msgid "cannot specify -o with -c or -S and multiple languages" + msgstr "no es pot especificar -o amb -c o -S i múltiples compilacions" + +-#: gcc.c:6362 ++#: gcc.c:6365 + #, c-format + msgid "%s: %s compiler not installed on this system" + msgstr "%s: el compilador %s no està instal·lat en aquest sistema" + +-#: gcc.c:6483 ++#: gcc.c:6486 + #, c-format + msgid "language %s not recognized" + msgstr "no es reconeix el llenguatge %s" + +-#: gcc.c:6580 ++#: gcc.c:6583 + msgid "internal gcc abort" + msgstr "avortament intern de gcc" + +@@ -5937,22 +5948,22 @@ + msgid "GCSE disabled" + msgstr "" + +-#: gcse.c:6124 ++#: gcse.c:6125 + msgid "NULL pointer checks disabled" + msgstr "" + + #. Return if there's nothing to do, or it is too expensive. +-#: gcse.c:8010 ++#: gcse.c:8036 + #, fuzzy + msgid "jump bypassing disabled" + msgstr "opció -g desactivada" + +-#: gcse.c:8071 ++#: gcse.c:8097 + #, fuzzy, c-format + msgid "%s: %d basic blocks and %d edges/basic block" + msgstr "GCSE desactivat: %d > 1000 blocs bàsics i %d >= 20 blocs bord/bàsics" + +-#: gcse.c:8084 ++#: gcse.c:8110 + #, fuzzy, c-format + msgid "%s: %d basic blocks and %d registers" + msgstr "GCSE desactivat: %d blocs bàsics i %d registres" +@@ -6003,7 +6014,7 @@ + msgid "%s cannot be used in asm here" + msgstr "no es pot usar \"%E\" com una funció" + +-#: graph.c:403 toplev.c:1498 toplev.c:4432 f/com.c:14202 java/jcf-parse.c:883 ++#: graph.c:403 toplev.c:1498 toplev.c:4433 f/com.c:14202 java/jcf-parse.c:883 + #: java/jcf-parse.c:1029 java/lex.c:1828 objc/objc-act.c:503 + #, fuzzy, c-format + msgid "can't open %s: %m" +@@ -6083,7 +6094,7 @@ + msgid "function with target specific attribute(s) cannot be inlined" + msgstr "una funció amb atribut(s) específic(s) de l'objectiu no pot ser inline" + +-#: jump.c:1896 ++#: jump.c:1913 + #, fuzzy + msgid "%Hwill never be executed" + msgstr "la cridada %2d mai s'executa\n" +@@ -6581,7 +6592,7 @@ + msgid "can't use '%s' as a %s register" + msgstr "no es pot usar \"%s\" com un registre %s" + +-#: regclass.c:758 config/ia64/ia64.c:4660 config/ia64/ia64.c:4667 ++#: regclass.c:758 config/ia64/ia64.c:4666 config/ia64/ia64.c:4673 + #, c-format + msgid "unknown register name: %s" + msgstr "nom de registre desconegut: %s" +@@ -6626,15 +6637,15 @@ + msgid "impossible register constraint in `asm'" + msgstr "restricció de registres impossible en \"asm\"" + +-#: reload.c:3504 ++#: reload.c:3519 + msgid "`&' constraint used with no register class" + msgstr "es va usar la restricció \"&\" sense classe de registre" + +-#: reload.c:3672 ++#: reload.c:3687 + msgid "unable to generate reloads for:" + msgstr " no es poden generar recarregues per a:" + +-#: reload.c:3673 reload.c:3887 ++#: reload.c:3688 reload.c:3902 + msgid "inconsistent operand constraints in an `asm'" + msgstr "restriccions de operants inconsistents en un \"asm\"" + +@@ -7048,11 +7059,11 @@ + msgid "invalid register name `%s' for register variable" + msgstr "el nom de registre \"%s\" no és vàlid per a variable de registre" + +-#: toplev.c:3546 ++#: toplev.c:3547 + msgid "branch target register load optimization is not intended to be run twice" + msgstr "" + +-#: toplev.c:3713 ++#: toplev.c:3714 + msgid "" + "\n" + "Target specific options:\n" +@@ -7060,12 +7071,12 @@ + "\n" + "Opcions específiques de l'objectiu:\n" + +-#: toplev.c:3727 toplev.c:3746 ++#: toplev.c:3728 toplev.c:3747 + #, fuzzy, c-format + msgid " -m%-23s [undocumented]\n" + msgstr " -m%-23.23s [sense documentar]\n" + +-#: toplev.c:3755 ++#: toplev.c:3756 + msgid "" + "\n" + "There are undocumented target specific options as well.\n" +@@ -7073,21 +7084,21 @@ + "\n" + "A més hi ha opcions específiques de l'objectiu sense documentar.\n" + +-#: toplev.c:3757 ++#: toplev.c:3758 + msgid " They exist, but they are not documented.\n" + msgstr " Existeixen, però no estan documentades.\n" + +-#: toplev.c:3812 ++#: toplev.c:3813 + #, c-format + msgid "unrecognized gcc debugging option: %c" + msgstr "opció de depuració de gcc no reconeguda: %c" + +-#: toplev.c:3874 config/rs6000/rs6000.c:922 ++#: toplev.c:3875 config/rs6000/rs6000.c:940 config/rs6000/rs6000.c:951 + #, c-format + msgid "invalid option `%s'" + msgstr "opció \"%s\" invàlida" + +-#: toplev.c:3889 ++#: toplev.c:3890 + #, c-format + msgid "" + "%s%s%s version %s (%s)\n" +@@ -7098,93 +7109,93 @@ + "%s\tcompilat amb GNU C versió %s.\n" + "%s%s%s versió %s (%s) compilada per a CC.\n" + +-#: toplev.c:3896 ++#: toplev.c:3897 + #, c-format + msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n" + msgstr "" + +-#: toplev.c:3948 ++#: toplev.c:3949 + msgid "options passed: " + msgstr "opcions passades: " + +-#: toplev.c:3977 ++#: toplev.c:3978 + msgid "options enabled: " + msgstr "options activades: " + +-#: toplev.c:4035 java/jcf-write.c:3424 ++#: toplev.c:4036 java/jcf-write.c:3424 + #, fuzzy, c-format + msgid "can't open %s for writing: %m" + msgstr "no es pot obrir obrir %s per a escriptura" + +-#: toplev.c:4118 config/sh/sh.c:7019 ++#: toplev.c:4119 config/sh/sh.c:7020 + msgid "created and used with different settings of -fpic" + msgstr "" + +-#: toplev.c:4120 config/sh/sh.c:7021 ++#: toplev.c:4121 config/sh/sh.c:7022 + msgid "created and used with different settings of -fpie" + msgstr "" + +-#: toplev.c:4171 config/sh/sh.c:7071 ++#: toplev.c:4172 config/sh/sh.c:7072 + #, c-format + msgid "created and used with differing settings of `-m%s'" + msgstr "" + +-#: toplev.c:4174 config/sh/sh.c:7074 ++#: toplev.c:4175 config/sh/sh.c:7075 + msgid "out of memory" + msgstr "" + +-#: toplev.c:4355 ++#: toplev.c:4356 + msgid "instruction scheduling not supported on this target machine" + msgstr "no es dóna suport a la planificació d'instruccions en aquest objectiu" + +-#: toplev.c:4359 ++#: toplev.c:4360 + msgid "this target machine does not have delayed branches" + msgstr "aquesta màquina objectiu no té ramificacions alentides" + +-#: toplev.c:4373 ++#: toplev.c:4374 + #, c-format + msgid "-f%sleading-underscore not supported on this target machine" + msgstr "no es dóna suport a -f%sleading-underscore en aquest objectiu" + +-#: toplev.c:4422 ++#: toplev.c:4423 + #, fuzzy, c-format + msgid "target system does not support the \"%s\" debug format" + msgstr "%s no té suport per al format \"%%%s%c\" %s" + +-#: toplev.c:4439 ++#: toplev.c:4440 + msgid "-ffunction-sections not supported for this target" + msgstr "no es dóna suport a -ffunction-sections en aquest objectiu" + +-#: toplev.c:4444 ++#: toplev.c:4445 + msgid "-fdata-sections not supported for this target" + msgstr "no es dóna suport a -fdata-sections en aquest objectiu" + +-#: toplev.c:4451 ++#: toplev.c:4452 + msgid "-ffunction-sections disabled; it makes profiling impossible" + msgstr "-ffunction-sections desactivat; fa impossible l'anàlisi de perfil" + +-#: toplev.c:4458 ++#: toplev.c:4459 + msgid "-fprefetch-loop-arrays not supported for this target" + msgstr "no es dóna suport a -fprefetch-loop-arrays en aquest objectiu" + +-#: toplev.c:4464 ++#: toplev.c:4465 + msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)" + msgstr "no es dóna suport a -fprefetch-loop-arrays en aquest objectiu (prova switches -march)" + +-#: toplev.c:4473 ++#: toplev.c:4474 + msgid "-fprefetch-loop-arrays is not supported with -Os" + msgstr "no es dóna suport a -fprefetch-loop-arrays amb -Os" + +-#: toplev.c:4479 ++#: toplev.c:4480 + msgid "-ffunction-sections may affect debugging on some targets" + msgstr "-ffunction-sections podria afectar la depuració en alguns objectius" + +-#: toplev.c:4581 ++#: toplev.c:4582 + #, fuzzy, c-format + msgid "error writing to %s: %m" + msgstr "error a l'escriure a %s" + +-#: toplev.c:4583 java/jcf-parse.c:902 java/jcf-write.c:3431 ++#: toplev.c:4584 java/jcf-parse.c:902 java/jcf-write.c:3431 + #, fuzzy, c-format + msgid "error closing %s: %m" + msgstr "error al tancar %s" +@@ -7231,7 +7242,7 @@ + msgid "%Jfunction '%F' can never be inlined because it uses variable sized variables" + msgstr "" + +-#: tree-inline.c:1338 tree-inline.c:1345 ++#: tree-inline.c:1338 tree-inline.c:1346 + #, fuzzy + msgid "%Jinlining failed in call to '%F': %s" + msgstr "el \"inlining\" va fallar en la cridada a \"%s\"" +@@ -7246,34 +7257,34 @@ + msgid "%Jsize of return value of '%D' is larger than %wd bytes" + msgstr "la grandària del valor de devolució de \"%s\" és més gran que %d octets" + +-#: tree.c:3801 ++#: tree.c:3800 + msgid "arrays of functions are not meaningful" + msgstr "les matrius de funcions no tenen significat" + +-#: tree.c:3856 ++#: tree.c:3855 + msgid "function return type cannot be function" + msgstr "el tipus de devolució d'una funció no pot ser una funció" + +-#: tree.c:4685 ++#: tree.c:4684 + msgid "invalid initializer for bit string" + msgstr "assignador invàlid per a cadena de bits" + +-#: tree.c:4737 ++#: tree.c:4736 + #, c-format + msgid "tree check: expected %s, have %s in %s, at %s:%d" + msgstr "revisió d'arbre: s'esperava %s, es té %s en %s, en %s:%d" + +-#: tree.c:4750 ++#: tree.c:4749 + #, c-format + msgid "tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d" + msgstr "revisió d'arbre: s'esperava classa \"%c\", es té \"%c\" (%s) en %s, en %s:%d" + +-#: tree.c:4763 ++#: tree.c:4762 + #, c-format + msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d" + msgstr "revisió d'arbre: accés de *elt %d de tree_vec amb %d elts en %s, en %s:%d" + +-#: tree.c:4775 ++#: tree.c:4774 + #, fuzzy, c-format + msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d" + msgstr "revisió d'arbre: accés de *elt %d de tree_vec amb %d elts en %s, en %s:%d" +@@ -7335,52 +7346,52 @@ + msgid "%Jrequested alignment for '%D' is greater than implemented alignment of %d" + msgstr "l'alineació sol·licitada per a %s és massa granda que l'alineació implementada de %d" + +-#: varasm.c:3789 ++#: varasm.c:3790 + msgid "initializer for integer value is too complicated" + msgstr "el assignador per a un valor enter és massa complicat" + +-#: varasm.c:3794 ++#: varasm.c:3795 + msgid "initializer for floating value is not a floating constant" + msgstr "el assignador per a un valor de coma flotant no és una constant de coma flotant" + +-#: varasm.c:3860 ++#: varasm.c:3861 + msgid "unknown set constructor type" + msgstr "conjunt de tipus constructor desconegut" + +-#: varasm.c:4079 ++#: varasm.c:4080 + #, c-format + msgid "invalid initial value for member `%s'" + msgstr "valor inicial invàlid per al membre \"%s\"" + +-#: varasm.c:4266 varasm.c:4310 ++#: varasm.c:4267 varasm.c:4311 + #, fuzzy + msgid "%Jweak declaration of '%D' must precede definition" + msgstr "la declaració feble de \"%s\" deu precedir a la definició" + +-#: varasm.c:4274 ++#: varasm.c:4275 + #, fuzzy + msgid "%Jweak declaration of '%D' after first use results in unspecified behavior" + msgstr "la declaració feble de \"%s\" després del primer ús resulta en una conducta no especificada" + +-#: varasm.c:4308 ++#: varasm.c:4309 + #, fuzzy + msgid "%Jweak declaration of '%D' must be public" + msgstr "la declaració feble de \"%s\" deu ser public" + +-#: varasm.c:4317 ++#: varasm.c:4318 + #, fuzzy + msgid "%Jweak declaration of '%D' not supported" + msgstr "no és dona suport a la declaració feble de \"%s\"" + +-#: varasm.c:4346 varasm.c:4436 ++#: varasm.c:4347 varasm.c:4437 + msgid "only weak aliases are supported in this configuration" + msgstr "només els aliessis febles tenen suport en aquesta configuració" + +-#: varasm.c:4439 ++#: varasm.c:4440 + msgid "alias definitions not supported in this configuration; ignored" + msgstr "les definicions d'alies no tenen suport en aquesta configuració; ignorades" + +-#: varasm.c:4468 ++#: varasm.c:4469 + msgid "visibility attribute not supported in this configuration; ignored" + msgstr "els atributs de visibilitat no tenen suport en aquesta configuració; ignorats" + +@@ -7619,7 +7630,7 @@ + msgid "junk at end of '#pragma unused'" + msgstr "escombraries al final de \"#pragma unused\"" + +-#: config/darwin.c:1347 ++#: config/darwin.c:1312 + #, fuzzy + msgid "internal and protected visibility attributes not supportedin this configuration; ignored" + msgstr "els atributs de visibilitat no tenen suport en aquesta configuració; ignorats" +@@ -7665,7 +7676,7 @@ + msgid "bad value `%s' for -mfp-trap-mode switch" + msgstr "valor erroni \"%s\" per a l'interruptor -mfp-trap-mode" + +-#: config/alpha/alpha.c:324 config/rs6000/rs6000.c:1088 ++#: config/alpha/alpha.c:324 config/rs6000/rs6000.c:1117 + #, c-format + msgid "bad value `%s' for -mtls-size switch" + msgstr "valor erroni \"%s\" per a l'interruptor -mtls-size" +@@ -7706,90 +7717,90 @@ + msgid "bad value `%s' for -mmemory-latency" + msgstr "valor erroni \"%s\" per a -mmemory-latency" + +-#: config/alpha/alpha.c:5425 ++#: config/alpha/alpha.c:5436 + #, c-format + msgid "invalid %%H value" + msgstr "valor %%H invàlid" + +-#: config/alpha/alpha.c:5446 ++#: config/alpha/alpha.c:5457 + #, c-format + msgid "invalid %%J value" + msgstr "valor %%J invàlid" + +-#: config/alpha/alpha.c:5462 config/ia64/ia64.c:4263 ++#: config/alpha/alpha.c:5473 config/ia64/ia64.c:4269 + #, c-format + msgid "invalid %%r value" + msgstr "valor %%r invàlid" + +-#: config/alpha/alpha.c:5472 config/rs6000/rs6000.c:9241 ++#: config/alpha/alpha.c:5483 config/rs6000/rs6000.c:9332 + #: config/xtensa/xtensa.c:2014 + #, c-format + msgid "invalid %%R value" + msgstr "valor %%R invàlid" + +-#: config/alpha/alpha.c:5478 config/rs6000/rs6000.c:9160 ++#: config/alpha/alpha.c:5489 config/rs6000/rs6000.c:9251 + #: config/xtensa/xtensa.c:1981 + #, c-format + msgid "invalid %%N value" + msgstr "valor %%N invàlid" + +-#: config/alpha/alpha.c:5486 config/rs6000/rs6000.c:9188 ++#: config/alpha/alpha.c:5497 config/rs6000/rs6000.c:9279 + #, c-format + msgid "invalid %%P value" + msgstr "valor %%P invàlid" + +-#: config/alpha/alpha.c:5494 ++#: config/alpha/alpha.c:5505 + #, c-format + msgid "invalid %%h value" + msgstr "valor %%h invalíd" + +-#: config/alpha/alpha.c:5502 config/xtensa/xtensa.c:2007 ++#: config/alpha/alpha.c:5513 config/xtensa/xtensa.c:2007 + #, c-format + msgid "invalid %%L value" + msgstr "valor %%L invàlid" + +-#: config/alpha/alpha.c:5541 config/rs6000/rs6000.c:9142 ++#: config/alpha/alpha.c:5552 config/rs6000/rs6000.c:9233 + #, c-format + msgid "invalid %%m value" + msgstr "valor %%m invàlid" + +-#: config/alpha/alpha.c:5549 config/rs6000/rs6000.c:9150 ++#: config/alpha/alpha.c:5560 config/rs6000/rs6000.c:9241 + #, c-format + msgid "invalid %%M value" + msgstr "valor %%M invàlid" + +-#: config/alpha/alpha.c:5593 ++#: config/alpha/alpha.c:5604 + #, c-format + msgid "invalid %%U value" + msgstr "valor %%U invalíd" + +-#: config/alpha/alpha.c:5605 config/alpha/alpha.c:5619 +-#: config/rs6000/rs6000.c:9249 ++#: config/alpha/alpha.c:5616 config/alpha/alpha.c:5630 ++#: config/rs6000/rs6000.c:9340 + #, c-format + msgid "invalid %%s value" + msgstr "valor %%s invalíd" + +-#: config/alpha/alpha.c:5642 ++#: config/alpha/alpha.c:5653 + #, c-format + msgid "invalid %%C value" + msgstr "valor %%C invàlid" + +-#: config/alpha/alpha.c:5679 config/rs6000/rs6000.c:8979 +-#: config/rs6000/rs6000.c:8999 ++#: config/alpha/alpha.c:5690 config/rs6000/rs6000.c:9070 ++#: config/rs6000/rs6000.c:9090 + #, c-format + msgid "invalid %%E value" + msgstr "valor %%E invalíd" + +-#: config/alpha/alpha.c:5704 config/alpha/alpha.c:5752 ++#: config/alpha/alpha.c:5715 config/alpha/alpha.c:5763 + msgid "unknown relocation unspec" + msgstr "reubicació unspec desconeguda" + +-#: config/alpha/alpha.c:5713 config/rs6000/rs6000.c:9562 ++#: config/alpha/alpha.c:5724 config/rs6000/rs6000.c:9653 + #, c-format + msgid "invalid %%xn code" + msgstr "codi %%xn invalíd" + +-#: config/alpha/alpha.c:6657 config/alpha/alpha.c:6660 config/s390/s390.c:6575 ++#: config/alpha/alpha.c:6668 config/alpha/alpha.c:6671 config/s390/s390.c:6575 + #: config/s390/s390.c:6578 + msgid "bad builtin fcode" + msgstr "" +@@ -7928,7 +7939,7 @@ + msgid "Tune expected memory latency" + msgstr "Ajustar la latència esperada de memòria" + +-#: config/alpha/alpha.h:376 config/ia64/ia64.h:267 config/rs6000/sysv4.h:90 ++#: config/alpha/alpha.h:376 config/ia64/ia64.h:272 config/rs6000/sysv4.h:90 + msgid "Specify bit size of immediate TLS offsets" + msgstr "" + +@@ -7947,17 +7958,17 @@ + msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\"" + msgstr "l'argument de l'atribut \"%s\" no és \"ilink1\" o \"ilink2\"" + +-#: config/arc/arc.c:1714 config/m32r/m32r.c:2352 ++#: config/arc/arc.c:1714 config/m32r/m32r.c:2349 + #, c-format + msgid "invalid operand to %%R code" + msgstr "operant invàlid per al codi %%R" + +-#: config/arc/arc.c:1746 config/m32r/m32r.c:2375 ++#: config/arc/arc.c:1746 config/m32r/m32r.c:2372 + #, c-format + msgid "invalid operand to %%H/%%L code" + msgstr "operant invàlid per al codi %%H/%%L" + +-#: config/arc/arc.c:1769 config/m32r/m32r.c:2446 ++#: config/arc/arc.c:1769 config/m32r/m32r.c:2443 + #, c-format + msgid "invalid operand to %%U code" + msgstr "operant invàlid per al codi %%U" +@@ -7968,7 +7979,7 @@ + msgstr "operant invàlid per al codi %%V" + + #. Unknown flag. +-#: config/arc/arc.c:1787 config/m32r/m32r.c:2473 config/sparc/sparc.c:7010 ++#: config/arc/arc.c:1787 config/m32r/m32r.c:2470 config/sparc/sparc.c:7152 + msgid "invalid operand output code" + msgstr "operant invàlid per al codi de sortida" + +@@ -7977,7 +7988,7 @@ + msgid "switch -mcpu=%s conflicts with -march= switch" + msgstr "l'interruptor -mcpu=%s genera conflictes amb el switch -march=" + +-#: config/arm/arm.c:530 config/rs6000/rs6000.c:767 config/sparc/sparc.c:424 ++#: config/arm/arm.c:530 config/rs6000/rs6000.c:785 config/sparc/sparc.c:426 + #, c-format + msgid "bad value (%s) for %s switch" + msgstr "valor erroni (%s) per a l'interruptor %s" +@@ -8060,13 +8071,13 @@ + msgid "unable to use '%s' for PIC register" + msgstr "no es pot usar \"%s\" per a registre PIC" + +-#: config/arm/arm.c:2249 config/arm/arm.c:2267 config/avr/avr.c:4558 +-#: config/c4x/c4x.c:4447 config/h8300/h8300.c:4260 config/i386/i386.c:1592 +-#: config/i386/i386.c:1638 config/ip2k/ip2k.c:3169 ++#: config/arm/arm.c:2249 config/arm/arm.c:2267 config/avr/avr.c:4523 ++#: config/c4x/c4x.c:4447 config/h8300/h8300.c:4260 config/i386/i386.c:1598 ++#: config/i386/i386.c:1644 config/ip2k/ip2k.c:3169 + #: config/m68hc11/m68hc11.c:1311 config/m68k/m68k.c:345 + #: config/mcore/mcore.c:3375 config/ns32k/ns32k.c:1064 +-#: config/rs6000/rs6000.c:14866 config/sh/sh.c:6873 config/sh/sh.c:6894 +-#: config/sh/sh.c:6929 config/stormy16/stormy16.c:2073 config/v850/v850.c:2173 ++#: config/rs6000/rs6000.c:15070 config/sh/sh.c:6874 config/sh/sh.c:6895 ++#: config/sh/sh.c:6930 config/stormy16/stormy16.c:2073 config/v850/v850.c:2173 + #, c-format + msgid "`%s' attribute only applies to functions" + msgstr "l'atribut \"%s\" nomès s'aplica a funcions" +@@ -8081,7 +8092,7 @@ + msgstr "el se-lector deu ser un immediat" + + #. @@@ better error message +-#: config/arm/arm.c:11284 config/i386/i386.c:14317 config/i386/i386.c:14351 ++#: config/arm/arm.c:11284 config/i386/i386.c:14318 config/i386/i386.c:14352 + msgid "mask must be an immediate" + msgstr "la màscara deu ser un immediat" + +@@ -8219,55 +8230,55 @@ + msgid "Ignore dllimport attribute for functions" + msgstr "Ignorar l'atribut dllimport per a les funcions" + +-#: config/avr/avr.c:514 ++#: config/avr/avr.c:511 + #, c-format + msgid "large frame pointer change (%d) with -mtiny-stack" + msgstr "canvi de punter gran de marc (%d) amb -mtiny-stack" + +-#: config/avr/avr.c:1101 ++#: config/avr/avr.c:1098 + msgid "bad address, not (reg+disp):" + msgstr "direcció errònia, no (reg+disp)" + +-#: config/avr/avr.c:1109 ++#: config/avr/avr.c:1106 + msgid "internal compiler error. Bad address:" + msgstr "error intern del compilador. Direcció errònia:" + +-#: config/avr/avr.c:1122 ++#: config/avr/avr.c:1119 + msgid "internal compiler error. Unknown mode:" + msgstr "error intern del compilador. Mode desconegut:" + +-#: config/avr/avr.c:1744 config/avr/avr.c:2405 ++#: config/avr/avr.c:1741 config/avr/avr.c:2402 + msgid "invalid insn:" + msgstr "insn invàlid:" + +-#: config/avr/avr.c:1778 config/avr/avr.c:1861 config/avr/avr.c:1910 +-#: config/avr/avr.c:1919 config/avr/avr.c:2014 config/avr/avr.c:2183 +-#: config/avr/avr.c:2439 config/avr/avr.c:2547 ++#: config/avr/avr.c:1775 config/avr/avr.c:1858 config/avr/avr.c:1907 ++#: config/avr/avr.c:1916 config/avr/avr.c:2011 config/avr/avr.c:2180 ++#: config/avr/avr.c:2436 config/avr/avr.c:2544 + msgid "incorrect insn:" + msgstr "insn incorrecte:" + +-#: config/avr/avr.c:1938 config/avr/avr.c:2099 config/avr/avr.c:2254 +-#: config/avr/avr.c:2591 ++#: config/avr/avr.c:1935 config/avr/avr.c:2096 config/avr/avr.c:2251 ++#: config/avr/avr.c:2588 + msgid "unknown move insn:" + msgstr "desplaçament insn desconegut:" + +-#: config/avr/avr.c:2814 ++#: config/avr/avr.c:2811 + msgid "bad shift insn:" + msgstr "desplaçament insn erròni:" + +-#: config/avr/avr.c:2927 config/avr/avr.c:3348 config/avr/avr.c:3719 ++#: config/avr/avr.c:2924 config/avr/avr.c:3345 config/avr/avr.c:3716 + msgid "internal compiler error. Incorrect shift:" + msgstr "error intern del compilador. Direcció errònia:" + +-#: config/avr/avr.c:4532 config/ip2k/ip2k.c:3144 ++#: config/avr/avr.c:4497 config/ip2k/ip2k.c:3144 + msgid "only initialized variables can be placed into program memory area" + msgstr "Només les variables iniciades es poden ubicar en l'àrea de memòria del programa." + +-#: config/avr/avr.c:4626 ++#: config/avr/avr.c:4591 + msgid "only uninitialized variables can be placed in the .noinit section" + msgstr "Només les variables sense inicialitzar es poden col·locar en la secció noinit" + +-#: config/avr/avr.c:4640 ++#: config/avr/avr.c:4605 + #, c-format + msgid "MCU `%s' supported for assembler only" + msgstr "MCU \"%s\" només té suport per a ensemblador" +@@ -9445,7 +9456,7 @@ + msgid "code model %s not supported in PIC mode" + msgstr "el model de codi %s no té suport en el mode PIC" + +-#: config/i386/i386.c:1189 config/sparc/sparc.c:387 ++#: config/i386/i386.c:1189 config/sparc/sparc.c:389 + #, c-format + msgid "bad value (%s) for -mcmodel= switch" + msgstr "valor erroni (%s) per a l'interruptor -mcmodel=" +@@ -9479,140 +9490,140 @@ + msgid "bad value (%s) for -march= switch" + msgstr "valor erroni (%s) per a l'interruptor -march=" + +-#: config/i386/i386.c:1260 ++#: config/i386/i386.c:1266 + #, fuzzy, c-format + msgid "bad value (%s) for -mtune= switch" + msgstr "valor erroni (%s) per a l'interruptor -mcpu=" + +-#: config/i386/i386.c:1277 ++#: config/i386/i386.c:1283 + #, c-format + msgid "-mregparm=%d is not between 0 and %d" + msgstr "-mregparm=%d no està entre 0 i %d" + +-#: config/i386/i386.c:1290 ++#: config/i386/i386.c:1296 + msgid "-malign-loops is obsolete, use -falign-loops" + msgstr "-malign-loops és obsolet, usi -falign-loops" + +-#: config/i386/i386.c:1295 config/i386/i386.c:1308 config/i386/i386.c:1321 ++#: config/i386/i386.c:1301 config/i386/i386.c:1314 config/i386/i386.c:1327 + #, c-format + msgid "-malign-loops=%d is not between 0 and %d" + msgstr "-malign-loops=%d no està entre 0 i %d" + +-#: config/i386/i386.c:1303 ++#: config/i386/i386.c:1309 + msgid "-malign-jumps is obsolete, use -falign-jumps" + msgstr "-malign-jumps és obsolet, usi -falign-jumps" + +-#: config/i386/i386.c:1316 ++#: config/i386/i386.c:1322 + msgid "-malign-functions is obsolete, use -falign-functions" + msgstr "-malign-functions és obsolet, usi -falign-functions" + +-#: config/i386/i386.c:1354 ++#: config/i386/i386.c:1360 + #, c-format + msgid "-mpreferred-stack-boundary=%d is not between %d and 12" + msgstr "-mpreferred-stack-boundary=%d no està entre %d i 12" + +-#: config/i386/i386.c:1366 ++#: config/i386/i386.c:1372 + #, c-format + msgid "-mbranch-cost=%d is not between 0 and 5" + msgstr "-mbranch-cost=%d no està entre 0 i 5" + +-#: config/i386/i386.c:1378 ++#: config/i386/i386.c:1384 + #, c-format + msgid "bad value (%s) for -mtls-dialect= switch" + msgstr "valor erroni (%s) per a l'interruptor -mtls-dialect=" + +-#: config/i386/i386.c:1407 ++#: config/i386/i386.c:1413 + msgid "-malign-double makes no sense in the 64bit mode" + msgstr "-malign-double no té sentit en el mode 64 bit" + +-#: config/i386/i386.c:1409 ++#: config/i386/i386.c:1415 + msgid "-mrtd calling convention not supported in the 64bit mode" + msgstr "la convenció de cridades -mrtd no té suport en el mode 64 bit" + +-#: config/i386/i386.c:1431 config/i386/i386.c:1442 ++#: config/i386/i386.c:1437 config/i386/i386.c:1448 + msgid "SSE instruction set disabled, using 387 arithmetics" + msgstr "el conjunt d'instruccions SSE està desactivat, usant l'aritmètica 387" + +-#: config/i386/i386.c:1447 ++#: config/i386/i386.c:1453 + msgid "387 instruction set disabled, using SSE arithmetics" + msgstr "el conjunt d'instruccions 387 està desactivat, usant l'aritmètica SSE" + +-#: config/i386/i386.c:1454 ++#: config/i386/i386.c:1460 + #, c-format + msgid "bad value (%s) for -mfpmath= switch" + msgstr "valor erroni (%s) per a l'interruptor -mfpmath=" + +-#: config/i386/i386.c:1602 config/i386/i386.c:1613 ++#: config/i386/i386.c:1608 config/i386/i386.c:1619 + #, fuzzy + msgid "fastcall and stdcall attributes are not compatible" + msgstr "-f%s i -msdata=%s són incompatibles" + +-#: config/i386/i386.c:1606 config/i386/i386.c:1662 ++#: config/i386/i386.c:1612 config/i386/i386.c:1668 + #, fuzzy + msgid "fastcall and regparm attributes are not compatible" + msgstr "-f%s i -msdata=%s són incompatibles" + +-#: config/i386/i386.c:1649 ++#: config/i386/i386.c:1655 + #, c-format + msgid "`%s' attribute requires an integer constant argument" + msgstr "l'atribut \"%s\" requereix una constant entera com argument" + +-#: config/i386/i386.c:1655 ++#: config/i386/i386.c:1661 + #, c-format + msgid "argument to `%s' attribute larger than %d" + msgstr "l'argument per a l'atribut \"%s\" és més gran que %d" + +-#: config/i386/i386.c:2621 ++#: config/i386/i386.c:2627 + msgid "SSE vector argument without SSE enabled changes the ABI" + msgstr "" + +-#: config/i386/i386.c:2637 ++#: config/i386/i386.c:2643 + msgid "MMX vector argument without MMX enabled changes the ABI" + msgstr "" + +-#: config/i386/i386.c:2865 ++#: config/i386/i386.c:2871 + msgid "SSE vector return without SSE enabled changes the ABI" + msgstr "" + +-#: config/i386/i386.c:6840 ++#: config/i386/i386.c:6841 + msgid "invalid UNSPEC as operand" + msgstr "UNSPEC invàlid com operant" + +-#: config/i386/i386.c:7098 ++#: config/i386/i386.c:7099 + msgid "extended registers have no high halves" + msgstr "els registres estesos no tenen meitats superiors" + +-#: config/i386/i386.c:7113 ++#: config/i386/i386.c:7114 + msgid "unsupported operand size for extended register" + msgstr "grandària d'operant sense suport per al registre estès" + +-#: config/i386/i386.c:7428 ++#: config/i386/i386.c:7429 + msgid "operand is neither a constant nor a condition code, invalid operand code 'c'" + msgstr "l'operant no és una constant ni un codi de condició, codi d'operant \"c\" invàlid" + +-#: config/i386/i386.c:7474 ++#: config/i386/i386.c:7475 + #, c-format + msgid "invalid operand code `%c'" + msgstr "codi d'operant \"%c\" invàlid" + +-#: config/i386/i386.c:7517 ++#: config/i386/i386.c:7518 + msgid "invalid constraints for operand" + msgstr "restriccions invàlides per a l'operant" + +-#: config/i386/i386.c:12031 ++#: config/i386/i386.c:12032 + msgid "unknown insn mode" + msgstr "mode insn desconegut" + +-#: config/i386/i386.c:14119 config/i386/i386.c:14155 ++#: config/i386/i386.c:14120 config/i386/i386.c:14156 + #, c-format + msgid "selector must be an integer constant in the range 0..%i" + msgstr "" + +-#: config/i386/i386.c:14383 ++#: config/i386/i386.c:14384 + msgid "shift must be an immediate" + msgstr "el desplaçament deu ser un immediat" + +-#: config/i386/i386.c:15406 ++#: config/i386/i386.c:15407 + #, fuzzy, c-format + msgid "`%s' incompatible attribute ignored" + msgstr "s'ignora l'atribut \"%s\"" +@@ -9909,7 +9920,7 @@ + #. variable, type `char *', is set to the variable part of the given + #. option if the fixed part matches. The actual option name is made + #. by appending `-m' to the specified name. +-#: config/i386/i386.h:461 config/ia64/ia64.h:269 config/rs6000/rs6000.h:449 ++#: config/i386/i386.h:461 config/ia64/ia64.h:274 config/rs6000/rs6000.h:449 + #: config/s390/s390.h:146 config/sparc/sparc.h:656 + msgid "Schedule code for given CPU" + msgstr "Codi de planificador per al CPU donat" +@@ -10029,7 +10040,7 @@ + msgid "iC2.0 and iC3.0 are incompatible - using iC3.0" + msgstr "iC2.0 i iC3.0 són incompatibles - usant iC3.0" + +-#: config/i960/i960.c:1456 config/m68k/m68k.c:600 config/rs6000/rs6000.c:11597 ++#: config/i960/i960.c:1456 config/m68k/m68k.c:600 config/rs6000/rs6000.c:11690 + msgid "stack limit expression is not supported" + msgstr "no es dóna suport a l'expressió del límit de la pila" + +@@ -10189,42 +10200,42 @@ + msgid "%Jaddress area attribute cannot be specified for functions" + msgstr "no es pot especificar un atribut d'àrea de dades per a variables locals" + +-#: config/ia64/ia64.c:4308 ++#: config/ia64/ia64.c:4314 + msgid "ia64_print_operand: unknown code" + msgstr "ia64_print_operand: codi desconegut" + +-#: config/ia64/ia64.c:4648 ++#: config/ia64/ia64.c:4654 + msgid "value of -mfixed-range must have form REG1-REG2" + msgstr "el valor de -mfixed-range deu ser de la forma REG1-REG2" + +-#: config/ia64/ia64.c:4675 ++#: config/ia64/ia64.c:4681 + #, c-format + msgid "%s-%s is an empty range" + msgstr "%s-%s és un rang buit" + +-#: config/ia64/ia64.c:4723 ++#: config/ia64/ia64.c:4729 + msgid "cannot optimize floating point division for both latency and throughput" + msgstr "no es pot optimitzar la divisió de coma flotant per a latència i sortida al mateix temps" + +-#: config/ia64/ia64.c:4729 ++#: config/ia64/ia64.c:4735 + msgid "cannot optimize integer division for both latency and throughput" + msgstr "no es pot optimitzar la divisió entera per a latència i sortida al mateix temps" + +-#: config/ia64/ia64.c:4735 ++#: config/ia64/ia64.c:4741 + #, fuzzy + msgid "cannot optimize square root for both latency and throughput" + msgstr "no es pot optimitzar la divisió entera per a latència i sortida al mateix temps" + +-#: config/ia64/ia64.c:4741 ++#: config/ia64/ia64.c:4747 + msgid "not yet implemented: latency-optimized inline square root" + msgstr "" + +-#: config/ia64/ia64.c:4753 ++#: config/ia64/ia64.c:4759 + #, c-format + msgid "bad value (%s) for -mtls-size= switch" + msgstr "valor erroni (%s) per a l'interruptor -mtls-size=" + +-#: config/ia64/ia64.c:4769 ++#: config/ia64/ia64.c:4775 + #, fuzzy, c-format + msgid "bad value (%s) for -tune= switch" + msgstr "valor erroni (%s) per a l'interruptor -mcpu=" +@@ -10232,110 +10243,110 @@ + #. This macro defines names of command options to set and clear bits in + #. `target_flags'. Its definition is an initializer with a subgrouping for + #. each command option. +-#: config/ia64/ia64.h:172 ++#: config/ia64/ia64.h:177 + msgid "Generate big endian code" + msgstr "Generar codi big endian" + +-#: config/ia64/ia64.h:174 config/mcore/mcore.h:154 ++#: config/ia64/ia64.h:179 config/mcore/mcore.h:154 + msgid "Generate little endian code" + msgstr "Generar codi little endian" + +-#: config/ia64/ia64.h:176 ++#: config/ia64/ia64.h:181 + msgid "Generate code for GNU as" + msgstr "Generar codi com de GNU" + +-#: config/ia64/ia64.h:178 ++#: config/ia64/ia64.h:183 + msgid "Generate code for Intel as" + msgstr "Generar codi com de Intel" + +-#: config/ia64/ia64.h:180 ++#: config/ia64/ia64.h:185 + msgid "Generate code for GNU ld" + msgstr "Generar codi per a ld de GNU" + +-#: config/ia64/ia64.h:182 ++#: config/ia64/ia64.h:187 + msgid "Generate code for Intel ld" + msgstr "Generar codi per a ld de Intel" + +-#: config/ia64/ia64.h:184 ++#: config/ia64/ia64.h:189 + msgid "Generate code without GP reg" + msgstr "Generar codi sense registre GP" + +-#: config/ia64/ia64.h:186 ++#: config/ia64/ia64.h:191 + msgid "Emit stop bits before and after volatile extended asms" + msgstr "Emetre bits de desocupada abans i després de asms estesos amb volatile" + +-#: config/ia64/ia64.h:188 ++#: config/ia64/ia64.h:193 + msgid "Don't emit stop bits before and after volatile extended asms" + msgstr "No emetre bits de desocupada abans i després de asmsestesos amb volatile" + +-#: config/ia64/ia64.h:190 ++#: config/ia64/ia64.h:195 + msgid "Emit code for Itanium (TM) processor B step" + msgstr "Emetre codi per a Itanium (TM) processador de pas B" + +-#: config/ia64/ia64.h:192 ++#: config/ia64/ia64.h:197 + msgid "Use in/loc/out register names" + msgstr "Usar noms de registre in/loc/out" + +-#: config/ia64/ia64.h:194 ++#: config/ia64/ia64.h:199 + msgid "Disable use of sdata/scommon/sbss" + msgstr "Desactivar l'ús de sdata/scommon/sbss" + +-#: config/ia64/ia64.h:196 ++#: config/ia64/ia64.h:201 + msgid "Enable use of sdata/scommon/sbss" + msgstr "Activar l'ús de sdata/scommon/sbss" + +-#: config/ia64/ia64.h:198 ++#: config/ia64/ia64.h:203 + msgid "gp is constant (but save/restore gp on indirect calls)" + msgstr "gp és constant (però hi ha save/restore de gp en cridades indirectes)" + +-#: config/ia64/ia64.h:200 ++#: config/ia64/ia64.h:205 + msgid "Generate self-relocatable code" + msgstr "Generar codi self-relocatable" + +-#: config/ia64/ia64.h:202 ++#: config/ia64/ia64.h:207 + msgid "Generate inline floating point division, optimize for latency" + msgstr "Generar divisió de coma flotant inline, optimitzada per a latència" + +-#: config/ia64/ia64.h:204 ++#: config/ia64/ia64.h:209 + msgid "Generate inline floating point division, optimize for throughput" + msgstr "Generar divisió de coma flotant inline, optimitzada per a sortida" + +-#: config/ia64/ia64.h:206 ++#: config/ia64/ia64.h:211 + msgid "Generate inline integer division, optimize for latency" + msgstr "Generar divisió entera inline, optimitzada per a latència" + +-#: config/ia64/ia64.h:208 ++#: config/ia64/ia64.h:213 + msgid "Generate inline integer division, optimize for throughput" + msgstr "Generar divisió entera inline, optimitzada per a sortida" + +-#: config/ia64/ia64.h:210 ++#: config/ia64/ia64.h:215 + #, fuzzy + msgid "Generate inline square root, optimize for latency" + msgstr "Generar divisió entera inline, optimitzada per a latència" + +-#: config/ia64/ia64.h:212 ++#: config/ia64/ia64.h:217 + #, fuzzy + msgid "Generate inline square root, optimize for throughput" + msgstr "Generar divisió entera inline, optimitzada per a sortida" + +-#: config/ia64/ia64.h:214 ++#: config/ia64/ia64.h:219 + msgid "Enable Dwarf 2 line debug info via GNU as" + msgstr "Activar la informació de la línia de depuració Dwarf2 a través com de GNU" + +-#: config/ia64/ia64.h:216 ++#: config/ia64/ia64.h:221 + msgid "Disable Dwarf 2 line debug info via GNU as" + msgstr "Desactivar la informació de la línia de depuració Dwarf 2 a través com de GNU" + +-#: config/ia64/ia64.h:218 ++#: config/ia64/ia64.h:223 + msgid "Enable earlier placing stop bits for better scheduling" + msgstr "" + +-#: config/ia64/ia64.h:220 ++#: config/ia64/ia64.h:225 + #, fuzzy + msgid "Disable earlier placing stop bits" + msgstr "Desactivar les funcions paral·leles" + +-#: config/ia64/ia64.h:265 ++#: config/ia64/ia64.h:270 + msgid "Specify range of registers to make fixed" + msgstr "Especifica el rang de registres a convertir en fixos" + +@@ -10372,7 +10383,7 @@ + msgid "PRINT_OPERAND: Unknown punctuation '%c'" + msgstr "PRINT_OPERAND: puntuació desconeguda \"%c\"" + +-#: config/iq2000/iq2000.c:3478 config/mips/mips.c:5464 ++#: config/iq2000/iq2000.c:3478 config/mips/mips.c:5463 + #: config/xtensa/xtensa.c:1950 + msgid "PRINT_OPERAND null pointer" + msgstr "PRINT_OPERAND punter nul" +@@ -10382,12 +10393,12 @@ + msgid "invalid %%P operand" + msgstr "operand invàlid per a %%P" + +-#: config/iq2000/iq2000.c:3555 config/rs6000/rs6000.c:9178 ++#: config/iq2000/iq2000.c:3555 config/rs6000/rs6000.c:9269 + #, c-format + msgid "invalid %%p value" + msgstr "valor invàlid per a %%p" + +-#: config/iq2000/iq2000.c:3619 config/mips/mips.c:5594 ++#: config/iq2000/iq2000.c:3619 config/mips/mips.c:5593 + #, c-format + msgid "invalid use of %%d, %%x, or %%X" + msgstr "ùs invàlid de %%d, %%x, o %%X" +@@ -10443,48 +10454,48 @@ + msgid "bad value (%s) for -flush-trap=n (0= found without a %%< in assembler pattern" + msgstr "error intern: es va trobar %%> sense un %%< en el patró del ensemblador" + +-#: config/mips/mips.c:5441 ++#: config/mips/mips.c:5440 + #, c-format + msgid "internal error: %%} found without a %%{ in assembler pattern" + msgstr "error intern: es va trobar %%} sense un %%{ en el patró del ensemblador" + +-#: config/mips/mips.c:5455 ++#: config/mips/mips.c:5454 + #, c-format + msgid "PRINT_OPERAND: unknown punctuation '%c'" + msgstr "PRINT_OPERAND: puntuació desconeguda \"%c\"" + +-#: config/mips/mips.c:5484 ++#: config/mips/mips.c:5483 + #, fuzzy, c-format + msgid "PRINT_OPERAND, invalid insn for %%C" + msgstr "PRINT_OPERAND punter nul" + +-#: config/mips/mips.c:5501 ++#: config/mips/mips.c:5500 + #, fuzzy, c-format + msgid "PRINT_OPERAND, invalid insn for %%N" + msgstr "PRINT_OPERAND punter nul" + +-#: config/mips/mips.c:5510 ++#: config/mips/mips.c:5509 + #, fuzzy, c-format + msgid "PRINT_OPERAND, invalid insn for %%F" + msgstr "PRINT_OPERAND punter nul" + +-#: config/mips/mips.c:5519 ++#: config/mips/mips.c:5518 + #, fuzzy, c-format + msgid "PRINT_OPERAND, invalid insn for %%W" + msgstr "PRINT_OPERAND punter nul" + +-#: config/mips/mips.c:5625 ++#: config/mips/mips.c:5624 + msgid "PRINT_OPERAND, invalid operand for relocation" + msgstr "" + +-#: config/mips/mips.c:8310 ++#: config/mips/mips.c:8324 + #, c-format + msgid "can not handle inconsistent calls to `%s'" + msgstr "no es poden manejar cridades inconsistentes a \"%s\"" + +-#: config/mips/mips.c:9316 ++#: config/mips/mips.c:9333 + msgid "the cpu name must be lower case" + msgstr "el nom de cpu deu estar en minúscules" + +-#: config/mips/mips.c:9338 ++#: config/mips/mips.c:9355 + #, c-format + msgid "bad value (%s) for %s" + msgstr "valor erroni (%s) per a %s" + +-#: config/mips/mips.c:9607 ++#: config/mips/mips.c:9624 + #, fuzzy, c-format + msgid "can't rewind temp file: %m" + msgstr "no es pot rebobinar el fitxer temporal" + +-#: config/mips/mips.c:9611 ++#: config/mips/mips.c:9628 + #, fuzzy, c-format + msgid "can't write to output file: %m" + msgstr "no es pot escriure al fitxer de sortida" + +-#: config/mips/mips.c:9614 ++#: config/mips/mips.c:9631 + #, fuzzy, c-format + msgid "can't read from temp file: %m" + msgstr "no es pot llegir dès del fitxer temporal" + +-#: config/mips/mips.c:9617 ++#: config/mips/mips.c:9634 + #, fuzzy, c-format + msgid "can't close temp file: %m" + msgstr "no es pot tancar el fitxer temporal" +@@ -11279,7 +11290,7 @@ + + #. Output assembler code to FILE to increment profiler label # LABELNO + #. for profiling a function entry. +-#: config/mips/mips.h:2418 ++#: config/mips/mips.h:2430 + msgid "mips16 function profiling" + msgstr "anàlisi de perfil de les funcions mips16" + +@@ -11836,167 +11847,176 @@ + msgid "junk at end of #pragma longcall" + msgstr "escombraries al final de #pragma longcall" + +-#: config/rs6000/rs6000.c:791 ++#: config/rs6000/rs6000.c:809 + msgid "-mmultiple is not supported on little endian systems" + msgstr "-mmultiple no té suport en sistemes little endian" + +-#: config/rs6000/rs6000.c:798 ++#: config/rs6000/rs6000.c:816 + msgid "-mstring is not supported on little endian systems" + msgstr "-mstringe no té suport en sistemes little endian" + +-#: config/rs6000/rs6000.c:812 ++#: config/rs6000/rs6000.c:830 + #, c-format + msgid "unknown -mdebug-%s switch" + msgstr "interruptor -mdebug-%s desconegut" + +-#: config/rs6000/rs6000.c:824 ++#: config/rs6000/rs6000.c:842 + #, c-format + msgid "unknown -mtraceback arg `%s'; expecting `full', `partial' or `none'" + msgstr "" + +-#: config/rs6000/rs6000.c:835 ++#: config/rs6000/rs6000.c:853 + #, c-format + msgid "Unknown switch -mlong-double-%s" + msgstr "interruptor -mlong-double-%s desconegut" + +-#: config/rs6000/rs6000.c:876 ++#: config/rs6000/rs6000.c:894 + msgid "AltiVec and E500 instructions cannot coexist" + msgstr "" + +-#: config/rs6000/rs6000.c:1029 ++#: config/rs6000/rs6000.c:1058 + #, fuzzy, c-format + msgid "unknown -m%s= option specified: '%s'" + msgstr "opció -misel= especificada desconeguda: \"%s\"" + +-#: config/rs6000/rs6000.c:1050 ++#: config/rs6000/rs6000.c:1079 + #, c-format + msgid "not configured for ABI: '%s'" + msgstr "" + +-#: config/rs6000/rs6000.c:1056 ++#: config/rs6000/rs6000.c:1085 + #, c-format + msgid "unknown ABI specified: '%s'" + msgstr "ABI especificada desconeguda: \"%s\"" + +-#: config/rs6000/rs6000.c:1070 ++#: config/rs6000/rs6000.c:1099 + #, fuzzy, c-format + msgid "unknown -malign-XXXXX option specified: '%s'" + msgstr "opció -misel= especificada desconeguda: \"%s\"" + +-#: config/rs6000/rs6000.c:3972 ++#: config/rs6000/rs6000.c:4001 + msgid "Cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them." + msgstr "" + +-#: config/rs6000/rs6000.c:4095 ++#: config/rs6000/rs6000.c:4124 + msgid "Cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them." + msgstr "" + +-#: config/rs6000/rs6000.c:5599 ++#: config/rs6000/rs6000.c:5604 + msgid "argument 1 must be a 5-bit signed literal" + msgstr "l'argument 1 deu ser una literal amb signe de 5-bit" + +-#: config/rs6000/rs6000.c:5701 config/rs6000/rs6000.c:6357 ++#: config/rs6000/rs6000.c:5707 config/rs6000/rs6000.c:6374 + msgid "argument 2 must be a 5-bit unsigned literal" + msgstr "l'argument 2 deu ser una literal sense signe de 5-bit" + +-#: config/rs6000/rs6000.c:5741 ++#: config/rs6000/rs6000.c:5747 + msgid "argument 1 of __builtin_altivec_predicate must be a constant" + msgstr "l'argument 1 de _builtin_altivec_predicate deu ser una constant" + +-#: config/rs6000/rs6000.c:5795 ++#: config/rs6000/rs6000.c:5801 + msgid "argument 1 of __builtin_altivec_predicate is out of range" + msgstr "l'argument 1 de _builtin_altivec_predicate es fora de rang" + +-#: config/rs6000/rs6000.c:5956 ++#: config/rs6000/rs6000.c:5962 + msgid "argument 3 must be a 4-bit unsigned literal" + msgstr "l'argument 3 deu ser una literal sense signe de 4-bit" + +-#: config/rs6000/rs6000.c:6126 ++#: config/rs6000/rs6000.c:6134 + #, c-format + msgid "argument to `%s' must be a 2-bit unsigned literal" + msgstr "l'argument per a \"%s\" deu ser una literal sense signe de 2-bit" + +-#: config/rs6000/rs6000.c:6239 ++#: config/rs6000/rs6000.c:6247 + msgid "argument to dss must be a 2-bit unsigned literal" + msgstr "l'argument per a dss deu ser una literal sense signe de 2-bit" + +-#: config/rs6000/rs6000.c:6477 ++#: config/rs6000/rs6000.c:6261 ++#, c-format ++msgid "invalid parameter combination for `%s' AltiVec intrinsic" ++msgstr "" ++ ++#: config/rs6000/rs6000.c:6494 + msgid "argument 1 of __builtin_spe_predicate must be a constant" + msgstr "l'argument 1 de __builtin__spe_predicate deu ser una constant" + +-#: config/rs6000/rs6000.c:6550 ++#: config/rs6000/rs6000.c:6567 + msgid "argument 1 of __builtin_spe_predicate is out of range" + msgstr "l'argument 1 de __builtin_spe_predicate està fora de rang" + +-#: config/rs6000/rs6000.c:9008 ++#: config/rs6000/rs6000.c:9099 + #, c-format + msgid "invalid %%f value" + msgstr "valor %%f invàlid" + +-#: config/rs6000/rs6000.c:9017 ++#: config/rs6000/rs6000.c:9108 + #, c-format + msgid "invalid %%F value" + msgstr "valor %%F invàlid" + +-#: config/rs6000/rs6000.c:9026 ++#: config/rs6000/rs6000.c:9117 + #, c-format + msgid "invalid %%G value" + msgstr "valor %%G invàlid" + +-#: config/rs6000/rs6000.c:9061 ++#: config/rs6000/rs6000.c:9152 + #, c-format + msgid "invalid %%j code" + msgstr "valor %%j invàlid" + +-#: config/rs6000/rs6000.c:9071 ++#: config/rs6000/rs6000.c:9162 + #, c-format + msgid "invalid %%J code" + msgstr "valor %%J invàlid" + +-#: config/rs6000/rs6000.c:9081 ++#: config/rs6000/rs6000.c:9172 + #, c-format + msgid "invalid %%k value" + msgstr "valor %%k invàlid" + +-#: config/rs6000/rs6000.c:9101 config/xtensa/xtensa.c:2000 ++#: config/rs6000/rs6000.c:9192 config/xtensa/xtensa.c:2000 + #, c-format + msgid "invalid %%K value" + msgstr "valor %%K invàlid" + +-#: config/rs6000/rs6000.c:9168 ++#: config/rs6000/rs6000.c:9259 + #, c-format + msgid "invalid %%O value" + msgstr "valor %%O invàlid" + +-#: config/rs6000/rs6000.c:9215 ++#: config/rs6000/rs6000.c:9306 + #, c-format + msgid "invalid %%q value" + msgstr "valor invàlid per a %%q" + +-#: config/rs6000/rs6000.c:9259 ++#: config/rs6000/rs6000.c:9350 + #, c-format + msgid "invalid %%S value" + msgstr "valor %%S invàlid" + +-#: config/rs6000/rs6000.c:9301 ++#: config/rs6000/rs6000.c:9392 + #, c-format + msgid "invalid %%T value" + msgstr "valor %%T invàlid" + +-#: config/rs6000/rs6000.c:9311 ++#: config/rs6000/rs6000.c:9402 + #, c-format + msgid "invalid %%u value" + msgstr "valor %%u invàlid" + +-#: config/rs6000/rs6000.c:9320 config/xtensa/xtensa.c:1970 ++#: config/rs6000/rs6000.c:9411 config/xtensa/xtensa.c:1970 + #, c-format + msgid "invalid %%v value" + msgstr "valor %%v invàlid" + +-#: config/rs6000/rs6000.c:13815 ++#: config/rs6000/rs6000.c:13913 + msgid "no profiling of 64-bit code for this ABI" + msgstr "" + ++#: config/rs6000/rs6000.c:14986 ++msgid "use of 'long' in AltiVec types is deprecated; use 'int'" ++msgstr "" ++ + #: config/rs6000/aix.h:184 config/rs6000/beos.h:32 + msgid "Always pass floating-point arguments in memory" + msgstr "Passar sempre els arguments de coma flotant en memòria" +@@ -12256,19 +12276,23 @@ + msgstr "Evitar tots els límits de rang en les instruccions de cridades" + + #: config/rs6000/rs6000.h:468 ++msgid "Warn about deprecated 'vector long ...' AltiVec type usage" ++msgstr "" ++ ++#: config/rs6000/rs6000.h:471 + msgid "Determine which dependences between insns are considered costly" + msgstr "" + +-#: config/rs6000/rs6000.h:470 ++#: config/rs6000/rs6000.h:473 + msgid "Specify which post scheduling nop insertion scheme to apply" + msgstr "" + +-#: config/rs6000/rs6000.h:472 ++#: config/rs6000/rs6000.h:475 + #, fuzzy + msgid "Specify alignment of structure fields default/natural" + msgstr "Especificar l'alineació mínima de bit de les estructures" + +-#: config/rs6000/rs6000.h:474 ++#: config/rs6000/rs6000.h:477 + msgid "Specify scheduling priority for dispatch slot restricted insns" + msgstr "" + +@@ -12284,7 +12308,7 @@ + #. Number of bytes into the frame return addresses can be found. See + #. rs6000_stack_info in rs6000.c for more information on how the different + #. abi's store the return address. +-#: config/rs6000/rs6000.h:1923 ++#: config/rs6000/rs6000.h:1932 + msgid "RETURN_ADDRESS_OFFSET not supported" + msgstr "No es dona suport a RETURN_ADDRESS_OFFSET" + +@@ -12559,28 +12583,28 @@ + msgid "enable fused multiply/add instructions" + msgstr "Generar instruccions multiply/add de curt circuit" + +-#: config/sh/sh.c:5977 ++#: config/sh/sh.c:5978 + msgid "__builtin_saveregs not supported by this subtarget" + msgstr "no es dóna suport a _builtin_saveregs en aquest subobjectiu" + +-#: config/sh/sh.c:6879 ++#: config/sh/sh.c:6880 + msgid "attribute interrupt_handler is not compatible with -m5-compact" + msgstr "" + + #. The sp_switch attribute only has meaning for interrupt functions. +-#: config/sh/sh.c:6901 config/sh/sh.c:6936 ++#: config/sh/sh.c:6902 config/sh/sh.c:6937 + #, c-format + msgid "`%s' attribute only applies to interrupt functions" + msgstr "l'atribut \"%s\" aplica solament a funcions d'interrupció" + + #. The argument must be a constant string. +-#: config/sh/sh.c:6908 ++#: config/sh/sh.c:6909 + #, c-format + msgid "`%s' attribute argument not a string constant" + msgstr "l'argument de l'atribut \"%s\" no és una cadena constant" + + #. The argument must be a constant integer. +-#: config/sh/sh.c:6943 ++#: config/sh/sh.c:6944 + #, c-format + msgid "`%s' attribute argument not an integer constant" + msgstr "l'argument de l'atribut \"%s\" no és una cadena entera" +@@ -12592,69 +12616,69 @@ + msgid "Profiling is not supported on this target." + msgstr "No es dóna suport a anàlisi de perfil en aquest objectiu." + +-#: config/sparc/sparc.c:360 ++#: config/sparc/sparc.c:362 + #, c-format + msgid "%s is not supported by this configuration" + msgstr "%s no té suport en aquesta configuració" + +-#: config/sparc/sparc.c:367 ++#: config/sparc/sparc.c:369 + msgid "-mlong-double-64 not allowed with -m64" + msgstr "no es permet -mlong-double-64 amb -m64" + +-#: config/sparc/sparc.c:392 ++#: config/sparc/sparc.c:394 + msgid "-mcmodel= is not supported on 32 bit systems" + msgstr "-mcmodel= no té suport en sistemes de 32 bit" + +-#: config/sparc/sparc.c:6818 config/sparc/sparc.c:6824 ++#: config/sparc/sparc.c:6960 config/sparc/sparc.c:6966 + #, c-format + msgid "invalid %%Y operand" + msgstr "operant %%Y invàlid" + +-#: config/sparc/sparc.c:6894 ++#: config/sparc/sparc.c:7036 + #, c-format + msgid "invalid %%A operand" + msgstr "operant %%A invàlid" + +-#: config/sparc/sparc.c:6904 ++#: config/sparc/sparc.c:7046 + #, c-format + msgid "invalid %%B operand" + msgstr "operant %%B invàlid" + +-#: config/sparc/sparc.c:6943 ++#: config/sparc/sparc.c:7085 + #, c-format + msgid "invalid %%c operand" + msgstr "operant %%c invàlid" + +-#: config/sparc/sparc.c:6944 ++#: config/sparc/sparc.c:7086 + #, c-format + msgid "invalid %%C operand" + msgstr "operant %%C invàlid" + +-#: config/sparc/sparc.c:6965 ++#: config/sparc/sparc.c:7107 + #, c-format + msgid "invalid %%d operand" + msgstr "operant %%d invàlid" + +-#: config/sparc/sparc.c:6966 ++#: config/sparc/sparc.c:7108 + #, c-format + msgid "invalid %%D operand" + msgstr "operant %%D invàlid" + +-#: config/sparc/sparc.c:6982 ++#: config/sparc/sparc.c:7124 + #, c-format + msgid "invalid %%f operand" + msgstr "operant %%f invàlid" + +-#: config/sparc/sparc.c:6996 ++#: config/sparc/sparc.c:7138 + #, c-format + msgid "invalid %%s operand" + msgstr "operant %%s invàlid" + +-#: config/sparc/sparc.c:7050 ++#: config/sparc/sparc.c:7192 + msgid "long long constant not a valid immediate operand" + msgstr "la constant long long no és un operant immediat vàlid" + +-#: config/sparc/sparc.c:7053 ++#: config/sparc/sparc.c:7195 + msgid "floating point constant not a valid immediate operand" + msgstr "la constant de coma flotant no és un operant immediat vàlid" + +@@ -13145,267 +13169,267 @@ + msgid "`-gnat' misspelled as `-gant'" + msgstr "\"-gnat\" mal lletrejat com \"-gant\"" + +-#: cp/call.c:217 ++#: cp/call.c:219 + msgid "unable to call pointer to member function here" + msgstr "no es pot cridar un punter a una funció membre aquí" + +-#: cp/call.c:2228 ++#: cp/call.c:2238 + msgid "%s %D(%T, %T, %T) " + msgstr "%s %D(%T, %T, %T) " + +-#: cp/call.c:2233 ++#: cp/call.c:2243 + msgid "%s %D(%T, %T) " + msgstr "%s %D(%T, %T) " + +-#: cp/call.c:2237 ++#: cp/call.c:2247 + msgid "%s %D(%T) " + msgstr "%s %D(%T) " + +-#: cp/call.c:2241 ++#: cp/call.c:2251 + msgid "%s %T " + msgstr "%s %T " + +-#: cp/call.c:2243 ++#: cp/call.c:2253 + msgid "%J%s %+#D " + msgstr "" + +-#: cp/call.c:2245 ++#: cp/call.c:2255 + #, fuzzy + msgid "%J%s %+#D" + msgstr "%s %+#D" + +-#: cp/call.c:2280 ++#: cp/call.c:2290 + msgid "candidates are:" + msgstr "" + +-#: cp/call.c:2468 ++#: cp/call.c:2478 + msgid "conversion from `%T' to `%T' is ambiguous" + msgstr "la conversió de \"%T\" a \"%T\" és ambigua" + +-#: cp/call.c:2619 cp/call.c:2663 ++#: cp/call.c:2629 cp/call.c:2673 + msgid "no matching function for call to `%D(%A)'" + msgstr "no hi ha una funció coincident per a la cridada a \"%D(%A)\"" + +-#: cp/call.c:2622 cp/call.c:2666 ++#: cp/call.c:2632 cp/call.c:2676 + msgid "call of overloaded `%D(%A)' is ambiguous" + msgstr "la cridada del \"%D(%A)\" sobrecarregat és ambigua" + + #. It's no good looking for an overloaded operator() on a + #. pointer-to-member-function. +-#: cp/call.c:2732 ++#: cp/call.c:2742 + #, c-format + msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*" + msgstr "la funció punter-a-membre %E no es pot cridar dintre d'un objecte; consideri utilitzar .* o ->*" + +-#: cp/call.c:2798 ++#: cp/call.c:2808 + msgid "no match for call to `(%T) (%A)'" + msgstr "no hi ha coincidència per a la cridada a \"(%T) (%A)\"" + +-#: cp/call.c:2806 ++#: cp/call.c:2816 + msgid "call of `(%T) (%A)' is ambiguous" + msgstr "la cridada de \"(%T) (%A)\" és ambigua" + +-#: cp/call.c:2839 ++#: cp/call.c:2849 + #, c-format + msgid "%s for ternary 'operator?:' in '%E ? %E : %E'" + msgstr "" + +-#: cp/call.c:2845 ++#: cp/call.c:2855 + #, c-format + msgid "%s for 'operator%s' in '%E%s'" + msgstr "%s per a \"operator%s\" en \"%E%s\"" + +-#: cp/call.c:2849 ++#: cp/call.c:2859 + #, c-format + msgid "%s for 'operator[]' in '%E[%E]'" + msgstr "" + +-#: cp/call.c:2854 ++#: cp/call.c:2864 + #, fuzzy, c-format + msgid "%s for '%s' in '%s %E'" + msgstr "%s per a \"operador%s\" en \"%s%E\"" + +-#: cp/call.c:2859 ++#: cp/call.c:2869 + #, c-format + msgid "%s for 'operator%s' in '%E %s %E'" + msgstr "" + +-#: cp/call.c:2862 ++#: cp/call.c:2872 + #, c-format + msgid "%s for 'operator%s' in '%s%E'" + msgstr "%s per a \"operador%s\" en \"%s%E\"" + +-#: cp/call.c:2951 ++#: cp/call.c:2961 + msgid "ISO C++ forbids omitting the middle term of a ?: expression" + msgstr "ISO C++ prohibeix l'omissió del terme mig d'una expressió ?:" + +-#: cp/call.c:3028 ++#: cp/call.c:3038 + #, c-format + msgid "`%E' has type `void' and is not a throw-expression" + msgstr "\"%E\" té tipus \"void\" i no és una expressió throw" + +-#: cp/call.c:3061 cp/call.c:3265 ++#: cp/call.c:3071 cp/call.c:3275 + msgid "operands to ?: have different types" + msgstr "els operants de ?: tenen tipus diferents" + +-#: cp/call.c:3219 ++#: cp/call.c:3229 + msgid "enumeral mismatch in conditional expression: `%T' vs `%T'" + msgstr "no coincideix el enumeral en l'expressió condicional: \"%T\" vs \"%T\"" + +-#: cp/call.c:3226 ++#: cp/call.c:3236 + msgid "enumeral and non-enumeral type in conditional expression" + msgstr "tipus enumeral i no enumeral en l'expressió condicional" + +-#: cp/call.c:3511 ++#: cp/call.c:3521 + msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead" + msgstr "no es va declarar \"%D(int)\" per al \"%s\" postfix, intentant en el seu lloc l'operador prefix" + +-#: cp/call.c:3560 ++#: cp/call.c:3570 + msgid "using synthesized `%#D' for copy assignment" + msgstr "usant \"%#D\" sintetitzat per a assignació de còpia" + +-#: cp/call.c:3562 ++#: cp/call.c:3572 + msgid " where cfront would use `%#D'" + msgstr " on cfront podria usar \"%#D\"" + +-#: cp/call.c:3585 ++#: cp/call.c:3595 + msgid "comparison between `%#T' and `%#T'" + msgstr "comparança entre \"%#T\" i \"%#T\"" + +-#: cp/call.c:3831 ++#: cp/call.c:3841 + #, fuzzy + msgid "no suitable `operator %s' for `%T'" + msgstr "no hi ha un operador \"operator delete\" adequat per a \"%T\"" + +-#: cp/call.c:3848 ++#: cp/call.c:3858 + msgid "`%+#D' is private" + msgstr "\"%+#D\" és privat" + +-#: cp/call.c:3850 ++#: cp/call.c:3860 + msgid "`%+#D' is protected" + msgstr "\"%+#D\" està protegit" + +-#: cp/call.c:3852 ++#: cp/call.c:3862 + msgid "`%+#D' is inaccessible" + msgstr "\"%+#D\" és inaccessible" + +-#: cp/call.c:3853 ++#: cp/call.c:3863 + msgid "within this context" + msgstr "des d'aquest context" + +-#: cp/call.c:3923 ++#: cp/call.c:3947 + msgid "invalid conversion from `%T' to `%T'" + msgstr "conversió invàlida de \"%T\" a \"%T\"" + +-#: cp/call.c:3925 ++#: cp/call.c:3949 + msgid " initializing argument %P of `%D'" + msgstr " inicialitzant l'argument %P de \"%D\"" + +-#: cp/call.c:4079 ++#: cp/call.c:4094 + #, fuzzy + msgid "cannot bind bitfield `%E' to `%T'" + msgstr "no es pot inicialitzar \"%T\" des de \"%T\"" + +-#: cp/call.c:4082 ++#: cp/call.c:4097 + #, fuzzy + msgid "cannot bind packed field `%E' to `%T'" + msgstr "no es pot declarar que el camp \"%D\" sigui de tipus \"%T\"" + +-#: cp/call.c:4085 ++#: cp/call.c:4100 + #, fuzzy + msgid "cannot bind rvalue `%E' to `%T'" + msgstr "no es pot inicialitzar \"%T\" des de \"%T\"" + +-#: cp/call.c:4170 ++#: cp/call.c:4185 + msgid "cannot pass objects of non-POD type `%#T' through `...'; call will abort at runtime" + msgstr "no es pot passar objectes de tipus \"%#T\" que no és POD a través de \"...\"; la cridada avortarà en temps d'execució" + + #. Undefined behavior [expr.call] 5.2.2/7. +-#: cp/call.c:4196 ++#: cp/call.c:4211 + #, fuzzy + msgid "cannot receive objects of non-POD type `%#T' through `...'; call will abort at runtime" + msgstr "no es pot passar objectes de tipus \"%#T\" que no és POD a través de \"...\"; la cridada avortarà en temps d'execució" + +-#: cp/call.c:4240 ++#: cp/call.c:4255 + #, fuzzy + msgid "the default argument for parameter %d of `%D' has not yet been parsed" + msgstr "l'argument per omissió per al paràmetre del tipus \"%T\" té el tipus \"%T\"" + +-#: cp/call.c:4437 ++#: cp/call.c:4452 + msgid "passing `%T' as `this' argument of `%#D' discards qualifiers" + msgstr "passar \"%T\" com l'argument \"this\" de \"%#D\" descarta als qualificadors" + +-#: cp/call.c:4456 ++#: cp/call.c:4471 + msgid "`%T' is not an accessible base of `%T'" + msgstr "\"%T\" no és una base inaccessible de \"%T\"" + +-#: cp/call.c:4725 ++#: cp/call.c:4740 + msgid "could not find class$ field in java interface type `%T'" + msgstr "no es va poder trobar un camp class$ en el tipus d'interfície java \"%T\"" + +-#: cp/call.c:4980 ++#: cp/call.c:4995 + msgid "call to non-function `%D'" + msgstr "cridada a \"%D\" que no és funció" + +-#: cp/call.c:5006 ++#: cp/call.c:5021 + msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'" + msgstr "sol·licitud pel membre \"%D\" en \"%E\" el qual és del tipus no agregat \"%T\"" + +-#: cp/call.c:5084 ++#: cp/call.c:5099 + #, fuzzy + msgid "no matching function for call to `%T::%s(%A)%#V'" + msgstr "no es troba una funció coincident per a la cridada a \"%T::%D(%A)%#V\"" + +-#: cp/call.c:5101 ++#: cp/call.c:5116 + #, fuzzy, c-format + msgid "call of overloaded `%s(%A)' is ambiguous" + msgstr "la cridada del \"%D(%A)\" sobrecarregat és ambigua" + +-#: cp/call.c:5122 ++#: cp/call.c:5137 + msgid "cannot call member function `%D' without object" + msgstr "no es pot cridar a la funció membre \"%D\" sense un objecte" + +-#: cp/call.c:5707 ++#: cp/call.c:5722 + msgid "passing `%T' chooses `%T' over `%T'" + msgstr "passar \"%T\" escull \"%T\" sobre \"%T\"" + +-#: cp/call.c:5709 cp/name-lookup.c:4155 ++#: cp/call.c:5724 cp/name-lookup.c:4137 + msgid " in call to `%D'" + msgstr " en la cridada a \"%D\"" + +-#: cp/call.c:5766 ++#: cp/call.c:5781 + msgid "choosing `%D' over `%D'" + msgstr "escollint \"%D\" sobre \"%D\"" + +-#: cp/call.c:5767 ++#: cp/call.c:5782 + msgid " for conversion from `%T' to `%T'" + msgstr " per a la conversió de \"%T\" a \"%T\"" + +-#: cp/call.c:5769 ++#: cp/call.c:5784 + msgid " because conversion sequence for the argument is better" + msgstr " perquè la seqüència de conversió per a l'argument és millor" + +-#: cp/call.c:5889 ++#: cp/call.c:5904 + msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:" + msgstr "" + +-#: cp/call.c:5893 ++#: cp/call.c:5908 + msgid "candidate 1:" + msgstr "" + +-#: cp/call.c:5894 ++#: cp/call.c:5909 + msgid "candidate 2:" + msgstr "" + +-#: cp/call.c:6003 ++#: cp/call.c:6018 + msgid "could not convert `%E' to `%T'" + msgstr "no es pot convertir \"%E\" a \"%T\"" + +-#: cp/call.c:6108 ++#: cp/call.c:6123 + msgid "invalid initialization of non-const reference of type '%T' from a temporary of type '%T'" + msgstr "const_cast invàlid d'un rvalue de tipus \"%T\" al tipus \"%T\"" + +-#: cp/call.c:6112 ++#: cp/call.c:6127 + msgid "invalid initialization of reference of type '%T' from expression of type '%T'" + msgstr "initialització invàlida de reference de tipus \"%T\" a partir d'una expressió de tipus \"%T\"" + +@@ -13480,221 +13504,221 @@ + msgid "`%#T' only defines private constructors and has no friends" + msgstr "\"%#T\" solament defineix constructors privats i no té friends" + +-#: cp/class.c:1995 ++#: cp/class.c:2038 + msgid "no unique final overrider for `%D' in `%T'" + msgstr "no hi ha un eixafador únic final per a \"%D\" en \"%#T\"" + + #. Here we know it is a hider, and no overrider exists. +-#: cp/class.c:2441 ++#: cp/class.c:2484 + msgid "`%D' was hidden" + msgstr "\"%D\" estava amagat" + +-#: cp/class.c:2442 ++#: cp/class.c:2485 + msgid " by `%D'" + msgstr " per \"%D\"" + +-#: cp/class.c:2484 cp/decl2.c:1161 ++#: cp/class.c:2527 cp/decl2.c:1161 + msgid "`%#D' invalid; an anonymous union can only have non-static data members" + msgstr "\"%D\" invàlid; un union anònim només pot tenir membres amb dades no estàtiques" + +-#: cp/class.c:2490 cp/decl2.c:1168 ++#: cp/class.c:2533 cp/decl2.c:1168 + msgid "private member `%#D' in anonymous union" + msgstr "membre privat \"%D\" en union anònima" + +-#: cp/class.c:2493 cp/decl2.c:1170 ++#: cp/class.c:2536 cp/decl2.c:1170 + msgid "protected member `%#D' in anonymous union" + msgstr "membre protegit \"%D\" en union anònima" + +-#: cp/class.c:2612 ++#: cp/class.c:2655 + msgid "vtable layout for class `%T' may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor" + msgstr "" + +-#: cp/class.c:2672 ++#: cp/class.c:2715 + msgid "bit-field `%#D' with non-integral type" + msgstr "camp de bits \"%D\" amb tipus no enter" + +-#: cp/class.c:2692 ++#: cp/class.c:2735 + msgid "bit-field `%D' width not an integer constant" + msgstr "l'amplària del camp de bits \"%D\" no és una constant entera" + +-#: cp/class.c:2698 ++#: cp/class.c:2741 + msgid "negative width in bit-field `%D'" + msgstr "amplària negativa en el camp de bit \"%D\"" + +-#: cp/class.c:2703 ++#: cp/class.c:2746 + msgid "zero width for bit-field `%D'" + msgstr "amplària zero per al camp de bits \"%D\"" + +-#: cp/class.c:2709 ++#: cp/class.c:2752 + msgid "width of `%D' exceeds its type" + msgstr "l'amplària de \"%D\" excedeix el seu tipus" + +-#: cp/class.c:2718 ++#: cp/class.c:2761 + msgid "`%D' is too small to hold all values of `%#T'" + msgstr "\"%D\" és massa petit per a guardar tots els valors de \"%#T\"" + +-#: cp/class.c:2780 ++#: cp/class.c:2823 + msgid "member `%#D' with constructor not allowed in union" + msgstr "no es permet el membre \"%D\" amb constructor en la union" + +-#: cp/class.c:2783 ++#: cp/class.c:2826 + msgid "member `%#D' with destructor not allowed in union" + msgstr "no es permet el membre \"%D\" amb destructor en la union" + +-#: cp/class.c:2786 ++#: cp/class.c:2829 + msgid "member `%#D' with copy assignment operator not allowed in union" + msgstr "no es permet el membre \"%D\" amb operador d'assignació de còpia en la union" + +-#: cp/class.c:2813 ++#: cp/class.c:2856 + msgid "multiple fields in union `%T' initialized" + msgstr "múltiples camps inicialitzats en la unió \"%#T\"" + +-#: cp/class.c:2879 ++#: cp/class.c:2922 + msgid "ignoring packed attribute on unpacked non-POD field `%#D'" + msgstr "" + +-#: cp/class.c:2939 ++#: cp/class.c:2982 + #, fuzzy + msgid "`%D' may not be static because it is a member of a union" + msgstr "\"%D\" deu ser una funció membre que no sigui static" + +-#: cp/class.c:2944 ++#: cp/class.c:2987 + msgid "`%D' may not have reference type `%T' because it is a member of a union" + msgstr "" + +-#: cp/class.c:2952 ++#: cp/class.c:2995 + msgid "field `%D' in local class cannot be static" + msgstr "el camp \"%D\" en la classe local no pot ser static" + +-#: cp/class.c:2958 ++#: cp/class.c:3001 + msgid "field `%D' invalidly declared function type" + msgstr "el camp \"%D\" és declarat invàlidament com un tipus de funció" + +-#: cp/class.c:2965 ++#: cp/class.c:3008 + msgid "field `%D' invalidly declared method type" + msgstr "el camp \"%D\" és declarat invàlidament com un tipus de mètode" + +-#: cp/class.c:2998 ++#: cp/class.c:3041 + msgid "non-static reference `%#D' in class without a constructor" + msgstr "referència \"%D\" que no és static en una classe sense un constructor" + +-#: cp/class.c:3041 ++#: cp/class.c:3084 + msgid "non-static const member `%#D' in class without a constructor" + msgstr "membre const \"%D\" que no és static en una classe sense un constructor" + +-#: cp/class.c:3056 ++#: cp/class.c:3099 + msgid "field `%#D' with same name as class" + msgstr "camp \"%D\" amb el mateix nom que la classe" + +-#: cp/class.c:3074 ++#: cp/class.c:3117 + msgid "`%#T' has pointer data members" + msgstr "\"%#T\" té membres punters a dades" + +-#: cp/class.c:3078 ++#: cp/class.c:3121 + msgid " but does not override `%T(const %T&)'" + msgstr " però no s'imposa a \"%T(const %T&)\"" + +-#: cp/class.c:3080 ++#: cp/class.c:3123 + msgid " or `operator=(const %T&)'" + msgstr " o a \"operator=(cont %T&)\"" + +-#: cp/class.c:3083 ++#: cp/class.c:3126 + msgid " but does not override `operator=(const %T&)'" + msgstr " però no s'imposa a \"operator=(const %T&)\"" + +-#: cp/class.c:3517 ++#: cp/class.c:3560 + msgid "offset of empty base `%T' may not be ABI-compliant and maychange in a future version of GCC" + msgstr "" + +-#: cp/class.c:3627 ++#: cp/class.c:3670 + msgid "class `%T' will be considered nearly empty in a future version of GCC" + msgstr "" + +-#: cp/class.c:3714 ++#: cp/class.c:3757 + msgid "initializer specified for non-virtual method `%D'" + msgstr "es va especificar un inicialitzador per al mètode no virtual \"%D\"" + +-#: cp/class.c:4402 ++#: cp/class.c:4445 + msgid "offset of virtual base `%T' is not ABI-compliant and may change in a future version of GCC" + msgstr "" + +-#: cp/class.c:4492 ++#: cp/class.c:4535 + msgid "direct base `%T' inaccessible in `%T' due to ambiguity" + msgstr "base directa \"%T\" inaccessible en \"%T\" a causa de ambigüitat" + +-#: cp/class.c:4505 ++#: cp/class.c:4548 + msgid "virtual base `%T' inaccessible in `%T' due to ambiguity" + msgstr "base virtual \"%T\" inaccessible en \"%T\" a causa de ambigüitat" + +-#: cp/class.c:4679 ++#: cp/class.c:4722 + msgid "size assigned to `%T' may not be ABI-compliant and may change in a future version of GCC" + msgstr "" + + #. Versions of G++ before G++ 3.4 did not reset the + #. DECL_MODE. +-#: cp/class.c:4718 ++#: cp/class.c:4761 + msgid "the offset of `%D' may not be ABI-compliant and may change in a future version of GCC" + msgstr "" + +-#: cp/class.c:4741 ++#: cp/class.c:4784 + msgid "offset of `%D' is not ABI-compliant and may change in a future version of GCC" + msgstr "" + +-#: cp/class.c:4750 ++#: cp/class.c:4793 + msgid "`%D' contains empty classes which may cause base classes to be placed at different locations in a future version of GCC" + msgstr "" + +-#: cp/class.c:4809 ++#: cp/class.c:4852 + msgid "layout of classes derived from empty class `%T' may change in a future version of GCC" + msgstr "" + +-#: cp/class.c:4939 cp/semantics.c:2044 ++#: cp/class.c:4982 cp/semantics.c:2041 + msgid "redefinition of `%#T'" + msgstr "redefinició de \"%#T\"" + +-#: cp/class.c:5109 ++#: cp/class.c:5152 + msgid "`%#T' has virtual functions but non-virtual destructor" + msgstr "\"%#T\" té funcions virtuals però destructors no virtuals" + +-#: cp/class.c:5188 ++#: cp/class.c:5231 + msgid "trying to finish struct, but kicked out due to previous parse errors" + msgstr "es va tractar d'acabar struct, però va ser tret a causa de errors previs de decodificació" + +-#: cp/class.c:5630 ++#: cp/class.c:5673 + #, c-format + msgid "language string `\"%s\"' not recognized" + msgstr "cadena de llenguatge \"\"%s\"\" no reconeguda" + +-#: cp/class.c:5718 ++#: cp/class.c:5761 + msgid "cannot resolve overloaded function `%D' based on conversion to type `%T'" + msgstr "no es pot resoldre la funció sobrecarregada \"%D\" basant-se en la conversió al tipus \"%T\"" + +-#: cp/class.c:5843 ++#: cp/class.c:5886 + msgid "no matches converting function `%D' to type `%#T'" + msgstr "no hi ha coincidències al convertir la funció \"%D\" al tipus \"%#T\"" + +-#: cp/class.c:5866 ++#: cp/class.c:5909 + msgid "converting overloaded function `%D' to type `%#T' is ambiguous" + msgstr "la conversió de la funció sobrecarregada \"%D\" al tipus \"%#T\" és ambigua" + +-#: cp/class.c:5892 ++#: cp/class.c:5935 + msgid "assuming pointer to member `%D'" + msgstr "assumint el punter a membre \"%D\"" + +-#: cp/class.c:5895 ++#: cp/class.c:5938 + #, c-format + msgid "(a pointer to member can only be formed with `&%E')" + msgstr "(un punter a membre solament es pot formar amb \"&%E\")" + +-#: cp/class.c:5940 cp/class.c:6122 cp/class.c:6129 ++#: cp/class.c:5983 cp/class.c:6165 cp/class.c:6172 + msgid "not enough type information" + msgstr "no hi ha suficient informació de tipus" + +-#: cp/class.c:5957 ++#: cp/class.c:6000 + msgid "argument of type `%T' does not match `%T'" + msgstr "l'argument de tipus \"%T\" no coincideix amb \"%T\"" + +-#: cp/class.c:6106 ++#: cp/class.c:6149 + msgid "invalid operation on uninstantiated type" + msgstr "operació invàlida en tipus no instanciat" + +@@ -13703,11 +13727,11 @@ + #. A name N used in a class S shall refer to the same declaration + #. in its context and when re-evaluated in the completed scope of + #. S. +-#: cp/class.c:6364 cp/decl.c:1222 cp/name-lookup.c:514 cp/pt.c:2097 ++#: cp/class.c:6407 cp/decl.c:1223 cp/name-lookup.c:514 cp/pt.c:2125 + msgid "declaration of `%#D'" + msgstr "la declaració de \"%#D\"" + +-#: cp/class.c:6365 ++#: cp/class.c:6408 + msgid "changes meaning of `%D' from `%+#D'" + msgstr "canvia el significat de \"%D\" a partir de \"%+#D\"" + +@@ -13810,149 +13834,166 @@ + msgid " candidate conversions include `%D' and `%D'" + msgstr " les conversions candidates inclouen \"%D\" i \"%D\"" + +-#: cp/decl.c:371 ++#: cp/decl.c:372 + msgid "label `%D' used but not defined" + msgstr "s'usa l'etiqueta \"%D\" però no està definida" + +-#: cp/decl.c:378 ++#: cp/decl.c:379 + msgid "label `%D' defined but not used" + msgstr "s'usa l'etiqueta \"%D\" però no està definida" + +-#: cp/decl.c:1130 cp/decl.c:1556 ++#: cp/decl.c:1131 cp/decl.c:1570 + msgid "previous declaration of `%D'" + msgstr "declaració prèvia de \"%D\"" + +-#: cp/decl.c:1178 ++#: cp/decl.c:1179 + #, fuzzy + msgid "%Jfunction '%D' redeclared as inline" + msgstr "funció \"%s\" re declarada com inline" + +-#: cp/decl.c:1179 ++#: cp/decl.c:1180 + #, fuzzy + msgid "%Jprevious declaration of '%D' with attribute noinline" + msgstr "declaració prèvia de la funció \"%s\" amb l'atribut noinline" + +-#: cp/decl.c:1186 ++#: cp/decl.c:1187 + #, fuzzy + msgid "%Jfunction '%D' redeclared with attribute noinline" + msgstr "funció \"%s\" re-declarada amb l'atribut noinline" + +-#: cp/decl.c:1188 ++#: cp/decl.c:1189 + #, fuzzy + msgid "%Jprevious declaration of '%D' was inline" + msgstr "la declaració prèvia de la funció \"%s\" va ser inline" + +-#: cp/decl.c:1209 cp/decl.c:1247 ++#: cp/decl.c:1210 cp/decl.c:1248 + msgid "shadowing %s function `%#D'" + msgstr "enfosquint la funció de biblioteca \"%#D\"" + +-#: cp/decl.c:1218 ++#: cp/decl.c:1219 + msgid "library function `%#D' redeclared as non-function `%#D'" + msgstr "la funció de biblioteca \"%#D\" és redeclarada com \"%#D\" que no és funció" + +-#: cp/decl.c:1223 ++#: cp/decl.c:1224 + msgid "conflicts with built-in declaration `%#D'" + msgstr "causa conflicte amb la declaració interna \"%#D\"" + +-#: cp/decl.c:1242 cp/decl.c:1354 cp/decl.c:1370 ++#: cp/decl.c:1243 cp/decl.c:1355 cp/decl.c:1371 + msgid "new declaration `%#D'" + msgstr "declaració nova \"%#D\"" + +-#: cp/decl.c:1243 ++#: cp/decl.c:1244 + msgid "ambiguates built-in declaration `%#D'" + msgstr "fa ambigua la declaració interna \"%#D\"" + +-#: cp/decl.c:1314 ++#: cp/decl.c:1315 + msgid "`%#D' redeclared as different kind of symbol" + msgstr "\"%#D\" redeclarat com un tipus diferent de símbol" + +-#: cp/decl.c:1317 ++#: cp/decl.c:1318 + msgid "previous declaration of `%#D'" + msgstr "declaració prèvia de \"%#D\"" + +-#: cp/decl.c:1339 ++#: cp/decl.c:1340 + msgid "declaration of template `%#D'" + msgstr "declaració del patró \"%#D\"" + +-#: cp/decl.c:1340 cp/name-lookup.c:515 ++#: cp/decl.c:1341 cp/name-lookup.c:515 + msgid "conflicts with previous declaration `%#D'" + msgstr "causa conflictes amb la declaració prèvia \"%#D\"" + +-#: cp/decl.c:1355 cp/decl.c:1371 ++#: cp/decl.c:1356 cp/decl.c:1372 + msgid "ambiguates old declaration `%#D'" + msgstr "fa ambigua la declaració antiga \"%#D\"" + +-#: cp/decl.c:1363 ++#: cp/decl.c:1364 + msgid "declaration of C function `%#D' conflicts with" + msgstr "la declaració de la funció C \"%#D\" té conflictes amb" + +-#: cp/decl.c:1365 ++#: cp/decl.c:1366 + msgid "previous declaration `%#D' here" + msgstr "declaració prèvia de \"%#D\" aquí" + +-#: cp/decl.c:1381 ++#: cp/decl.c:1382 + #, fuzzy + msgid "conflicting declaration '%#D'" + msgstr "declaracions de \"%s\" en conflicte" + +-#: cp/decl.c:1382 ++#: cp/decl.c:1383 + #, fuzzy + msgid "'%D' has a previous declaration as `%#D'" + msgstr "declaració prèvia com \"%#D\"" + +-#: cp/decl.c:1435 ++#. [namespace.alias] ++#. ++#. A namespace-name or namespace-alias shall not be declared as ++#. the name of any other entity in the same declarative region. ++#. A namespace-name defined at global scope shall not be ++#. declared as the name of any other entity in any glogal scope ++#. of the program. ++#: cp/decl.c:1436 ++#, fuzzy ++msgid "declaration of `namespace %D' conflicts with" ++msgstr "la declaració de la funció C \"%#D\" té conflictes amb" ++ ++#: cp/decl.c:1437 ++#, fuzzy ++msgid "previous declaration of `namespace %D' here" ++msgstr "declaració prèvia de \"%#D\" aquí" ++ ++#: cp/decl.c:1449 + msgid "`%#D' previously defined here" + msgstr "es va definir \"%#D\" prèviament aquí" + +-#: cp/decl.c:1436 ++#: cp/decl.c:1450 + msgid "`%#D' previously declared here" + msgstr "es va declarar \"%#D\" prèviament aquí" + + #. Prototype decl follows defn w/o prototype. +-#: cp/decl.c:1445 ++#: cp/decl.c:1459 + msgid "prototype for `%#D'" + msgstr "el prototip per a \"%#D\"" + +-#: cp/decl.c:1446 ++#: cp/decl.c:1460 + #, fuzzy + msgid "%Jfollows non-prototype definition here" + msgstr "a continuació la definició del no prototip aquí" + +-#: cp/decl.c:1458 ++#: cp/decl.c:1472 + msgid "previous declaration of `%#D' with %L linkage" + msgstr "declaració prèvia de \"%#D\" amb l'enllaç %L" + +-#: cp/decl.c:1460 ++#: cp/decl.c:1474 + msgid "conflicts with new declaration with %L linkage" + msgstr "té conflictes amb la declaració nova amb l'enllaç %L" + +-#: cp/decl.c:1483 cp/decl.c:1490 ++#: cp/decl.c:1497 cp/decl.c:1504 + msgid "default argument given for parameter %d of `%#D'" + msgstr "argument per omissió donat per al paràmetre %d de \"%#D\"" + +-#: cp/decl.c:1485 cp/decl.c:1492 ++#: cp/decl.c:1499 cp/decl.c:1506 + msgid "after previous specification in `%#D'" + msgstr "després de l'especificació prèvia en \"%#D\"" + +-#: cp/decl.c:1501 ++#: cp/decl.c:1515 + msgid "`%#D' was used before it was declared inline" + msgstr "es va usar \"%#D\" abans que fora declarat inline" + +-#: cp/decl.c:1502 ++#: cp/decl.c:1516 + #, fuzzy + msgid "%Jprevious non-inline declaration here" + msgstr "declaració prèvia no inline aquí" + +-#: cp/decl.c:1555 ++#: cp/decl.c:1569 + msgid "redundant redeclaration of `%D' in same scope" + msgstr "declaració redundant de \"%D\" en el mateix àmbit" + +-#: cp/decl.c:1649 ++#: cp/decl.c:1663 + #, c-format + msgid "declaration of `%F' throws different exceptions" + msgstr "la declaració de \"%F\" llança excepcions diferents" + +-#: cp/decl.c:1651 ++#: cp/decl.c:1665 + #, c-format + msgid "than previous declaration `%F'" + msgstr "que la declaració prèvia \"%F\"" +@@ -13965,499 +14006,517 @@ + #. that specialization that would cause an implicit + #. instantiation to take place, in every translation unit in + #. which such a use occurs. +-#: cp/decl.c:1798 ++#: cp/decl.c:1812 + msgid "explicit specialization of %D after first use" + msgstr "especialització explícita de %D després del primer ús" + +-#: cp/decl.c:1878 ++#: cp/decl.c:1892 + msgid "%J'%D': visibility attribute ignored because it" + msgstr "" + +-#: cp/decl.c:1880 ++#: cp/decl.c:1894 + #, fuzzy + msgid "%Jconflicts with previous declaration here" + msgstr "causa conflictes amb la declaració prèvia \"%#D\"" + +-#: cp/decl.c:1974 ++#: cp/decl.c:1988 + msgid "implicit declaration of function `%#D'" + msgstr "declaració implícita de la funció \"%#D\"" + +-#: cp/decl.c:2137 ++#: cp/decl.c:2151 + #, c-format + msgid "label `%s' referenced outside of any function" + msgstr "l'etiqueta \"%s\" es va referenciar fora de qualsevol funció" + +-#: cp/decl.c:2234 cp/decl.c:2258 cp/decl.c:2346 ++#: cp/decl.c:2248 cp/decl.c:2272 cp/decl.c:2360 + msgid "jump to label `%D'" + msgstr "salt a l'etiqueta \"%D\"" + +-#: cp/decl.c:2236 cp/decl.c:2260 ++#: cp/decl.c:2250 cp/decl.c:2274 + msgid "jump to case label" + msgstr "salt a l'etiqueta case" + +-#: cp/decl.c:2239 cp/decl.c:2263 ++#: cp/decl.c:2253 cp/decl.c:2277 + #, fuzzy + msgid "%H from here" + msgstr " des d'aquí" + +-#: cp/decl.c:2244 ++#: cp/decl.c:2258 + msgid " crosses initialization of `%#D'" + msgstr " creua la inicialització de \"%#D\"" + +-#: cp/decl.c:2247 cp/decl.c:2362 ++#: cp/decl.c:2261 cp/decl.c:2376 + msgid " enters scope of non-POD `%#D'" + msgstr " entra en l'àmbit de \"%#D\" que no és POD" + +-#: cp/decl.c:2267 cp/decl.c:2366 ++#: cp/decl.c:2281 cp/decl.c:2380 + msgid " enters try block" + msgstr " entra intent de bloc" + +-#: cp/decl.c:2269 cp/decl.c:2368 ++#: cp/decl.c:2283 cp/decl.c:2382 + msgid " enters catch block" + msgstr " entra captura de bloc" + +-#: cp/decl.c:2347 ++#: cp/decl.c:2361 + msgid " from here" + msgstr " des d'aquí" + + #. Can't skip init of __exception_info. +-#: cp/decl.c:2358 ++#: cp/decl.c:2372 + #, fuzzy + msgid "%J enters catch block" + msgstr " entra captura de bloc" + +-#: cp/decl.c:2360 ++#: cp/decl.c:2374 + msgid " skips initialization of `%#D'" + msgstr " salta la inicialización de \"%#D\"" + +-#: cp/decl.c:2394 ++#: cp/decl.c:2408 + msgid "label named wchar_t" + msgstr "etiqueta nomenada wchar_t" + +-#: cp/decl.c:2397 ++#: cp/decl.c:2411 + msgid "duplicate label `%D'" + msgstr "etiqueta duplicada \"%D\"" + +-#: cp/decl.c:2625 cp/parser.c:3182 ++#: cp/decl.c:2639 cp/parser.c:3192 + msgid "`%D' used without template parameters" + msgstr "s'usa \"%D\" sense paràmetres de patró" + +-#: cp/decl.c:2635 cp/decl.c:2651 cp/decl.c:2739 ++#: cp/decl.c:2649 cp/decl.c:2665 cp/decl.c:2753 + msgid "no class template named `%#T' in `%#T'" + msgstr "no hi ha una patró de classe cridada \"%#T\" en \"%#T\"" + +-#: cp/decl.c:2672 cp/decl.c:2682 cp/decl.c:2702 ++#: cp/decl.c:2686 cp/decl.c:2696 cp/decl.c:2716 + msgid "no type named `%#T' in `%#T'" + msgstr "no hi ha un tipus cridat \"%#T\" en \"%#T\"" + +-#: cp/decl.c:3429 ++#: cp/decl.c:3443 + #, fuzzy + msgid "%Jan anonymous union cannot have function members" + msgstr "un union anònim no pot tenir funcions membre" + +-#: cp/decl.c:3447 ++#: cp/decl.c:3461 + msgid "member %#D' with constructor not allowed in anonymous aggregate" + msgstr "no es permet el membre \"%#D\" amb constructor en un agregat anònim" + +-#: cp/decl.c:3450 ++#: cp/decl.c:3464 + msgid "member %#D' with destructor not allowed in anonymous aggregate" + msgstr "no es permet el membre \"%#D\" amb destructor en un agregat anònim" + +-#: cp/decl.c:3453 ++#: cp/decl.c:3467 + msgid "member %#D' with copy assignment operator not allowed in anonymous aggregate" + msgstr "no es permet el membre \"%#D\" amb operador d'assignació de còpia en un agregat anònim" + +-#: cp/decl.c:3493 ++#: cp/decl.c:3507 + msgid "redeclaration of C++ built-in type `%T'" + msgstr "redeclaración del tipus intern de C++ \"%T\"" + +-#: cp/decl.c:3531 ++#: cp/decl.c:3545 + msgid "multiple types in one declaration" + msgstr "tipus múltiples en una declaració" + +-#: cp/decl.c:3557 ++#: cp/decl.c:3571 + msgid "missing type-name in typedef-declaration" + msgstr "falta el nom del tipus en la declaració typedef" + +-#: cp/decl.c:3565 ++#: cp/decl.c:3579 + msgid "ISO C++ prohibits anonymous structs" + msgstr "ISO C++ prohibeix structs anònims" + +-#: cp/decl.c:3572 ++#: cp/decl.c:3586 + msgid "`%D' can only be specified for functions" + msgstr "\"%D\" només pot ser especificat per a funcions" + +-#: cp/decl.c:3574 ++#: cp/decl.c:3588 + msgid "`%D' can only be specified inside a class" + msgstr "\"%D\" només pot ser especificat dintre d'una classe" + +-#: cp/decl.c:3576 ++#: cp/decl.c:3590 + msgid "`%D' can only be specified for constructors" + msgstr "\"%D\" només pot ser especificat per a constructors" + +-#: cp/decl.c:3579 ++#: cp/decl.c:3593 + msgid "`%D' can only be specified for objects and functions" + msgstr "\"%D\" només pot ser especificat per a objectes i funcions" + +-#: cp/decl.c:3721 cp/decl2.c:855 ++#: cp/decl.c:3735 cp/decl2.c:855 + msgid "typedef `%D' is initialized (use __typeof__ instead)" + msgstr "typedef \"%D\" està inicialitzat (utilitzi __typeof__ en el seu lloc)" + +-#: cp/decl.c:3726 ++#: cp/decl.c:3740 + msgid "function `%#D' is initialized like a variable" + msgstr "la funció \"%#D\" està inicialitzada com una variable" + +-#: cp/decl.c:3738 ++#: cp/decl.c:3752 + msgid "declaration of `%#D' has `extern' and is initialized" + msgstr "la declaració de \"%#D\" té \"extern\" i està inicialitzada" + +-#: cp/decl.c:3771 ++#: cp/decl.c:3785 + msgid "`%#D' is not a static member of `%#T'" + msgstr "\"%#D\" no és un membre static de \"%#T\"" + +-#: cp/decl.c:3777 ++#: cp/decl.c:3791 + msgid "ISO C++ does not permit `%T::%D' to be defined as `%T::%D'" + msgstr "ISO C++ no permet que \"%T::%D\" es defineixi com \"%T::%D\"" + +-#: cp/decl.c:3788 ++#: cp/decl.c:3802 + msgid "duplicate initialization of %D" + msgstr "inicialització duplicada de %D" + +-#: cp/decl.c:3819 ++#: cp/decl.c:3833 + msgid "declaration of `%#D' outside of class is not definition" + msgstr "la declaració de \"%#D\" fora de la classe no és una definició" + +-#: cp/decl.c:3868 ++#: cp/decl.c:3882 + msgid "variable `%#D' has initializer but incomplete type" + msgstr "la variable \"%#D\" té inicializador però de tipus de dada incompleta" + +-#: cp/decl.c:3876 cp/decl.c:4445 ++#: cp/decl.c:3890 cp/decl.c:4500 + msgid "elements of array `%#D' have incomplete type" + msgstr "alguns elements de la matriu \"%#D\" tenen tipus de dada incompleta" + +-#: cp/decl.c:3892 ++#: cp/decl.c:3906 + msgid "aggregate `%#D' has incomplete type and cannot be defined" + msgstr "l'agregat \"%#D\" té un tipus incomplet i no es pot definir" + +-#: cp/decl.c:3942 ++#: cp/decl.c:3956 + msgid "`%D' declared as reference but not initialized" + msgstr "\"%D\" declarat com referència però no està inicialitzat" + +-#: cp/decl.c:3948 ++#: cp/decl.c:3962 + msgid "ISO C++ forbids use of initializer list to initialize reference `%D'" + msgstr "ISO C++ prohibeix l'ús d'una llista de inicialitzadors per a inicialitzar la referència \"%D\"" + +-#: cp/decl.c:3976 ++#: cp/decl.c:3990 + msgid "cannot initialize `%T' from `%T'" + msgstr "no es pot inicialitzar \"%T\" des de \"%T\"" + +-#: cp/decl.c:4008 ++#: cp/decl.c:4022 + msgid "initializer fails to determine size of `%D'" + msgstr "el inicializador no pot determinar la grandària de \"%D\"" + +-#: cp/decl.c:4013 ++#: cp/decl.c:4027 + msgid "array size missing in `%D'" + msgstr "falta la grandària de la matriu en \"%D\"" + +-#: cp/decl.c:4025 ++#: cp/decl.c:4039 + msgid "zero-size array `%D'" + msgstr "matriu \"%D\" de grandària zero" + + #. An automatic variable with an incomplete type: that is an error. + #. Don't talk about array types here, since we took care of that + #. message in grokdeclarator. +-#: cp/decl.c:4062 ++#: cp/decl.c:4076 + msgid "storage size of `%D' isn't known" + msgstr "no es coneix la grandària d'emmagatzematge de \"%D\"" + +-#: cp/decl.c:4084 ++#: cp/decl.c:4098 + msgid "storage size of `%D' isn't constant" + msgstr "la grandària d'emmagatzematge de \"%D\" no és constant" + +-#: cp/decl.c:4139 ++#: cp/decl.c:4153 + msgid "sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)" + msgstr "perdó: la semàntica de les dades static de la funció inline \"%#D\" és errònia (acabarà amb múltiples còpies)" + +-#: cp/decl.c:4140 ++#: cp/decl.c:4154 + #, fuzzy + msgid "%J you can work around this by removing the initializer" + msgstr " pot evitar això eliminant el inicializador" + +-#: cp/decl.c:4166 ++#: cp/decl.c:4180 + msgid "uninitialized const `%D'" + msgstr "const \"%D\" sense inicialitzar" + +-#: cp/decl.c:4245 ++#: cp/decl.c:4240 ++msgid "name `%D' used in a GNU-style designated initializer for an array" ++msgstr "" ++ ++#: cp/decl.c:4251 ++#, c-format ++msgid "Designated initializer `%E' larger than array size" ++msgstr "" ++ ++#: cp/decl.c:4323 + msgid "brace-enclosed initializer used to initialize `%T'" + msgstr "es va utilitzar un inicialitzador entre parèntesis per a inicialitzar \"%T\"" + +-#: cp/decl.c:4309 ++#: cp/decl.c:4387 + msgid "initializer for `%T' must be brace-enclosed" + msgstr "el inicialitzador per a \"%T\" deu estar tancat entre parèntesis" + +-#: cp/decl.c:4326 ++#: cp/decl.c:4404 + msgid "ISO C++ does not allow designated initializers" + msgstr "ISO C++ no permet inicialitzadors designats" + +-#: cp/decl.c:4330 ++#: cp/decl.c:4408 + msgid "`%T' has no non-static data member named `%D'" + msgstr "\"%T\" té una dada membre que no és non-static cridada \"%D\"" + +-#: cp/decl.c:4378 +-msgid "name `%D' used in a GNU-style designated initializer for an array" +-msgstr "" +- +-#: cp/decl.c:4401 ++#: cp/decl.c:4456 + msgid "too many initializers for `%T'" + msgstr "massa inicialitzadors per a \"%T\"" + +-#: cp/decl.c:4439 ++#: cp/decl.c:4494 + msgid "variable-sized object `%D' may not be initialized" + msgstr "l'objecte de grandària variable \"%D\" no pot ser inicialitzat" + +-#: cp/decl.c:4450 ++#: cp/decl.c:4505 + msgid "`%D' has incomplete type" + msgstr "\"%D\" té un tipus de dada incompleta" + +-#: cp/decl.c:4505 ++#: cp/decl.c:4560 + msgid "`%D' must be initialized by constructor, not by `{...}'" + msgstr "\"%D\" deu ser inicialitzat per un constructor, no per \"{...}\"" + +-#: cp/decl.c:4549 ++#: cp/decl.c:4604 + msgid "structure `%D' with uninitialized const members" + msgstr "estructura \"%D\" amb membres const sense inicialitzar" + +-#: cp/decl.c:4551 ++#: cp/decl.c:4606 + msgid "structure `%D' with uninitialized reference members" + msgstr "estructura \"%D\" amb membres de referència sense inicialitzar" + +-#: cp/decl.c:4732 ++#: cp/decl.c:4788 + msgid "assignment (not initialization) in declaration" + msgstr "assignació (no inicialització) en la declaració" + +-#: cp/decl.c:4749 ++#: cp/decl.c:4805 + msgid "cannot initialize `%D' to namespace `%D'" + msgstr "no es poden inicialitzar \"%D\" per a l'espai de noms \"%D\"" + +-#: cp/decl.c:4803 ++#: cp/decl.c:4859 + msgid "shadowing previous type declaration of `%#D'" + msgstr "enfosquint la declaració de tipus prèvia de \"%#D\"" + +-#: cp/decl.c:4840 ++#: cp/decl.c:4896 + msgid "`%D' cannot be thread-local because it has non-POD type `%T'" + msgstr "\"%D\" no pot ser thread-local perquè és de tipus \"%T\" que no és POD" + +-#: cp/decl.c:4855 ++#: cp/decl.c:4911 + msgid "`%D' is thread-local and so cannot be dynamically initialized" + msgstr "\"%D\" és thread-local i per tant no es pot inicialitzar dinàmicament" + +-#: cp/decl.c:5337 ++#: cp/decl.c:5406 + msgid "invalid catch parameter" + msgstr "paràmetre de captura invàlid" + +-#: cp/decl.c:5451 ++#: cp/decl.c:5520 + msgid "destructor for alien class `%T' cannot be a member" + msgstr "el destructor per a la classe estrangera \"%T\" no pot ser un membre" + +-#: cp/decl.c:5454 ++#: cp/decl.c:5523 + msgid "constructor for alien class `%T' cannot be a member" + msgstr "el constructor per a la classe estrangera \"%T\" no pot ser un membre" + +-#: cp/decl.c:5476 ++#: cp/decl.c:5545 + msgid "`%D' declared as a `virtual' %s" + msgstr "\"%D\" va ser declarat com un %s \"virtual\"" + +-#: cp/decl.c:5478 ++#: cp/decl.c:5547 + msgid "`%D' declared as an `inline' %s" + msgstr "\"%D\" va ser declarat com un %s \"inline\"" + +-#: cp/decl.c:5480 ++#: cp/decl.c:5549 + msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration" + msgstr "especificadors de funció \"const\" i \"volatile\" en \"%D\" invàlids en la declaració %s" + +-#: cp/decl.c:5483 ++#: cp/decl.c:5552 + msgid "`%D' declared as a friend" + msgstr "\"%D\" declarat com un friend" + +-#: cp/decl.c:5489 ++#: cp/decl.c:5558 + msgid "`%D' declared with an exception specification" + msgstr "\"%D\" declarat amb una excepció d'especificació" + +-#: cp/decl.c:5571 ++#: cp/decl.c:5640 + msgid "cannot declare `::main' to be a template" + msgstr "no es pot declarar \"::main\" com template" + +-#: cp/decl.c:5573 ++#: cp/decl.c:5642 + msgid "cannot declare `::main' to be inline" + msgstr "no es pot declarar \"::main\" com inline" + +-#: cp/decl.c:5575 ++#: cp/decl.c:5644 + msgid "cannot declare `::main' to be static" + msgstr "no es pot declarar \"::main\" com static" + +-#: cp/decl.c:5578 ++#: cp/decl.c:5647 + msgid "`main' must return `int'" + msgstr "\"main\" deu retornar \"int\"" + +-#: cp/decl.c:5606 ++#: cp/decl.c:5675 + msgid "non-local function `%#D' uses anonymous type" + msgstr "la funció \"%#D\" que no és local usa un tipus anònim" + +-#: cp/decl.c:5609 ++#: cp/decl.c:5678 + msgid "`%#D' does not refer to the unqualified type, so it is not used for linkage" + msgstr "\"%#D\" no es refereix al tipus sense qualificar, així que no s'usa per a l'enllaçat" + +-#: cp/decl.c:5615 ++#: cp/decl.c:5684 + msgid "non-local function `%#D' uses local type `%T'" + msgstr "la funció \"%#D\" que no és local utilitza el tipus local \"%T\"" + +-#: cp/decl.c:5639 ++#: cp/decl.c:5708 + msgid "%smember function `%D' cannot have `%T' method qualifier" + msgstr "%sfunció membre \"%D\" no pot tenir el qualificador de mètode \"%T\"" + +-#: cp/decl.c:5663 ++#: cp/decl.c:5732 + msgid "defining explicit specialization `%D' in friend declaration" + msgstr "definint l'especialització explícita \"%D\" en la declaració friend" + + #. Something like `template friend void f()'. +-#: cp/decl.c:5673 ++#: cp/decl.c:5742 + msgid "invalid use of template-id `%D' in declaration of primary template" + msgstr "ús invàlid de l'aneu de patró \"%D\" en la declaració del patró primàri" + +-#: cp/decl.c:5700 ++#: cp/decl.c:5769 + msgid "default arguments are not allowed in declaration of friend template specialization `%D'" + msgstr "no es permeten els argument per omissió en la declaració de l'especialització friend del patró \"%D\"" + +-#: cp/decl.c:5707 ++#: cp/decl.c:5776 + msgid "`inline' is not allowed in declaration of friend template specialization `%D'" + msgstr "no es permet \"inline\" en la declaració de l'especialització friend del patró \"%D\"" + +-#: cp/decl.c:5765 ++#: cp/decl.c:5834 + msgid "definition of implicitly-declared `%D'" + msgstr "la definició de \"%D\" declarat implícitament" + +-#: cp/decl.c:5785 cp/decl2.c:738 ++#: cp/decl.c:5854 cp/decl2.c:738 + msgid "no `%#D' member function declared in class `%T'" + msgstr "no hi ha una funció membre \"%#D\" declarada en la classe \"%T\"" + +-#: cp/decl.c:5919 ++#: cp/decl.c:5988 + msgid "non-local variable `%#D' uses local type `%T'" + msgstr "" + +-#: cp/decl.c:6034 ++#: cp/decl.c:6103 + msgid "invalid in-class initialization of static data member of non-integral type `%T'" + msgstr "" + +-#: cp/decl.c:6043 ++#: cp/decl.c:6112 + msgid "ISO C++ forbids in-class initialization of non-const static member `%D'" + msgstr "ISO C++ prohibeix la inicialización en la classe del membre static \"%D\" que no és constant" + +-#: cp/decl.c:6046 ++#: cp/decl.c:6115 + msgid "ISO C++ forbids initialization of member constant `%D' of non-integral type `%T'" + msgstr "ISO C++ prohibeix la inicialització del membre constant \"%D\" del tipus \"%T\" que no és enter" + +-#: cp/decl.c:6065 ++#: cp/decl.c:6134 + #, fuzzy + msgid "size of array `%D' has non-integral type `%T'" + msgstr "la grandària de la matriu \"%D\" té un tipus no enter" + +-#: cp/decl.c:6067 ++#: cp/decl.c:6136 + #, fuzzy + msgid "size of array has non-integral type `%T'" + msgstr "la grandària de la matriu té un tipus no enter" + +-#: cp/decl.c:6103 ++#: cp/decl.c:6172 + msgid "size of array `%D' is negative" + msgstr "la grandària de la matriu \"%D\" és negatiu" + +-#: cp/decl.c:6105 ++#: cp/decl.c:6174 + msgid "size of array is negative" + msgstr "la grandària de la matriu és negatiu" + +-#: cp/decl.c:6113 ++#: cp/decl.c:6182 + msgid "ISO C++ forbids zero-size array `%D'" + msgstr "ISO C++ prohibeix la matriu \"%D\" de grandària zero" + +-#: cp/decl.c:6115 ++#: cp/decl.c:6184 + msgid "ISO C++ forbids zero-size array" + msgstr "ISO C++ prohibeix la matriu de grandària zero" + +-#: cp/decl.c:6122 ++#: cp/decl.c:6191 + msgid "size of array `%D' is not an integral constant-expression" + msgstr "la grandària de la matriu \"%D\" no és una expressió constant integral" + +-#: cp/decl.c:6125 ++#: cp/decl.c:6194 + msgid "size of array is not an integral constant-expression" + msgstr "la grandària de la matriu no és una expressió constant integral" + +-#: cp/decl.c:6130 ++#: cp/decl.c:6199 + msgid "ISO C++ forbids variable-size array `%D'" + msgstr "ISO C++ prohibeix la matriu \"%D\" de grandària variable" + +-#: cp/decl.c:6132 ++#: cp/decl.c:6201 + msgid "ISO C++ forbids variable-size array" + msgstr "ISO C++ prohibeix la matriu de grandària variable" + +-#: cp/decl.c:6154 ++#: cp/decl.c:6223 + msgid "overflow in array dimension" + msgstr "desbordament en la dimensió de la matriu" + +-#: cp/decl.c:6248 ++#: cp/decl.c:6317 + msgid "declaration of `%D' as %s" + msgstr "declaración de \"%D\" com %s" + +-#: cp/decl.c:6250 ++#: cp/decl.c:6319 + #, c-format + msgid "creating %s" + msgstr "creant %s" + +-#: cp/decl.c:6262 ++#: cp/decl.c:6331 + msgid "declaration of `%D' as multidimensional array must have bounds for all dimensions except the first" + msgstr "la declaració de \"%D\" com una matriu multidimensional deu tenir límits per a totes les dimensions excepte la primera" + +-#: cp/decl.c:6265 ++#: cp/decl.c:6334 + msgid "multidimensional array must have bounds for all dimensions except the first" + msgstr "una matriu multidimensional deu tenir límits per a totes les dimensions excepte per a la primera" + +-#: cp/decl.c:6293 ++#: cp/decl.c:6362 + msgid "return type specification for constructor invalid" + msgstr "l'especificació del tipus de retorn per al constructor és invàlid" + +-#: cp/decl.c:6300 ++#: cp/decl.c:6369 + msgid "return type specification for destructor invalid" + msgstr "l'especificació del tipus de retorn per al destructor és invàlid" + +-#: cp/decl.c:6306 ++#: cp/decl.c:6375 + msgid "operator `%T' declared to return `%T'" + msgstr "l'operador \"%T\" es va declarar per a retornar \"%T\"" + +-#: cp/decl.c:6308 ++#: cp/decl.c:6377 + msgid "return type specified for `operator %T'" + msgstr "es va especificar un tipus de retorn per a \"operator %T\"" + +-#: cp/decl.c:6452 ++#: cp/decl.c:6400 ++msgid "unnamed variable or field declared void" ++msgstr "variable sense nom o camp declarat void" ++ ++#: cp/decl.c:6405 ++#, fuzzy, c-format ++msgid "variable or field `%E' declared void" ++msgstr "variable o camp \"%s\" declarat void" ++ ++#: cp/decl.c:6408 ++msgid "variable or field declared void" ++msgstr "variable o camp declarat void" ++ ++#: cp/decl.c:6547 + msgid "destructors must be member functions" + msgstr "els destructors deuen ser funcions membre" + +-#: cp/decl.c:6471 ++#: cp/decl.c:6566 + msgid "destructor `%T' must match class name `%T'" + msgstr "el destructor \"%T\" deu coincidir amb el nom de la classe \"%T\"" + +-#: cp/decl.c:6534 ++#: cp/decl.c:6629 + msgid "declarator-id missing; using reserved word `%D'" + msgstr "falta l'identificador del declarador; utilitzant la paraula reservada \"%D\"" + +-#: cp/decl.c:6588 ++#: cp/decl.c:6683 + msgid "type `%T' is not derived from type `%T'" + msgstr "el tipus \"%T\" no és derivat del tipus \"%T\"" + + #. Parse error puts this typespec where + #. a declarator should go. +-#: cp/decl.c:6651 ++#: cp/decl.c:6746 + msgid "`%T' specified as declarator-id" + msgstr "\"%T\" especificat com identificador de declarador" + +-#: cp/decl.c:6653 ++#: cp/decl.c:6748 + msgid " perhaps you want `%T' for a constructor" + msgstr " potser vol \"%T\" per a un constructor" + +@@ -14465,302 +14524,294 @@ + #. decl-specifier like in + #. std::allocator alloc; + #. Handle that gracefully. +-#: cp/decl.c:6675 ++#: cp/decl.c:6770 + #, c-format + msgid "invalid use of template-name '%E' in a declarator" + msgstr "ús invàlid del nom de patró \"%E\" en un declarador" + +-#: cp/decl.c:6695 ++#: cp/decl.c:6790 cp/decl.c:8124 + msgid "declaration of `%D' as non-function" + msgstr "la declaració de \"%D\" com una no funció" + +-#: cp/decl.c:6772 ++#: cp/decl.c:6867 + msgid "`bool' is now a keyword" + msgstr "`bool' ara és una paraula clau" + +-#: cp/decl.c:6774 ++#: cp/decl.c:6869 + msgid "extraneous `%T' ignored" + msgstr "\"%T\" extra ignorat" + +-#: cp/decl.c:6790 cp/decl.c:6834 ++#: cp/decl.c:6885 cp/decl.c:6929 + msgid "multiple declarations `%T' and `%T'" + msgstr "declaracions múltiples \"%T\" i \"%T\"" + +-#: cp/decl.c:6803 ++#: cp/decl.c:6898 + msgid "ISO C++ does not support `long long'" + msgstr "ISO C++ no dóna suport a \"long long\"" + +-#: cp/decl.c:6907 cp/decl.c:6910 ++#: cp/decl.c:7002 cp/decl.c:7005 + #, c-format + msgid "ISO C++ forbids declaration of `%s' with no type" + msgstr "ISO C++ prohibeix la declaració de \"%s\" sense tipus" + +-#: cp/decl.c:6941 ++#: cp/decl.c:7036 + #, c-format + msgid "short, signed or unsigned invalid for `%s'" + msgstr "short, signed o unsigned invàlid per a \"%s\"" + +-#: cp/decl.c:6946 ++#: cp/decl.c:7041 + #, c-format + msgid "long and short specified together for `%s'" + msgstr "long i short especificats junts per a \"%s\"" + +-#: cp/decl.c:6957 ++#: cp/decl.c:7052 + #, c-format + msgid "signed and unsigned given together for `%s'" + msgstr "es van donar junts signed i unsigned per a \"%s\"" + +-#: cp/decl.c:7066 ++#: cp/decl.c:7161 + msgid "qualifiers are not allowed on declaration of `operator %T'" + msgstr "no es permeten qualificadors en la declaració de \"operator %T\"" + +-#: cp/decl.c:7088 ++#: cp/decl.c:7183 + msgid "member `%D' cannot be declared both virtual and static" + msgstr "" + +-#: cp/decl.c:7097 ++#: cp/decl.c:7192 + msgid "`%T::%D' is not a valid declarator" + msgstr "\"%T::%D\" no és una declaració vàlida" + +-#: cp/decl.c:7109 ++#: cp/decl.c:7204 + msgid "storage class specifiers invalid in parameter declarations" + msgstr "especificadors de classe d'emmagatzematge invàlids en les declaracions de paràmetres" + +-#: cp/decl.c:7113 ++#: cp/decl.c:7208 + msgid "typedef declaration invalid in parameter declaration" + msgstr "declaració typedef invàlida en la declaració de paràmetres" + +-#: cp/decl.c:7126 ++#: cp/decl.c:7221 + msgid "virtual outside class declaration" + msgstr "declaració de virtual fora de class" + +-#: cp/decl.c:7185 ++#: cp/decl.c:7280 + #, c-format + msgid "storage class specified for %s `%s'" + msgstr "classe d'emmagatzematge especificada per %s \"%s\"" + +-#: cp/decl.c:7220 ++#: cp/decl.c:7315 + #, c-format + msgid "top-level declaration of `%s' specifies `auto'" + msgstr "la declaració del nivell superior de \"%s\" especifica \"auto\"" + +-#: cp/decl.c:7232 ++#: cp/decl.c:7327 + msgid "storage class specifiers invalid in friend function declarations" + msgstr "especificadors de classe d'emmagatzematge invàlids en les declaracions de funcions friend" + +-#: cp/decl.c:7397 ++#: cp/decl.c:7492 + msgid "destructor cannot be static member function" + msgstr "el destructor no pot ser una funció membre de tipus static" + +-#: cp/decl.c:7400 ++#: cp/decl.c:7495 + #, c-format + msgid "destructors may not be `%s'" + msgstr "els destructors no poden ser \"%s\"" + +-#: cp/decl.c:7421 ++#: cp/decl.c:7516 + msgid "constructor cannot be static member function" + msgstr "el constructor no pot ser una funció membre de tipus static" + +-#: cp/decl.c:7424 ++#: cp/decl.c:7519 + msgid "constructors cannot be declared virtual" + msgstr "els constructors no poden ser declarats virtual" + +-#: cp/decl.c:7429 ++#: cp/decl.c:7524 + #, c-format + msgid "constructors may not be `%s'" + msgstr "els constructors no poden ser \"%s\"" + +-#: cp/decl.c:7439 ++#: cp/decl.c:7534 + msgid "return value type specifier for constructor ignored" + msgstr "el especificador de tipus del valor retornat per al constructor és ignorat" + +-#: cp/decl.c:7458 ++#: cp/decl.c:7553 + #, c-format + msgid "can't initialize friend function `%s'" + msgstr "no es pot inicialitzar la funció friend \"%s\"" + + #. Cannot be both friend and virtual. +-#: cp/decl.c:7462 ++#: cp/decl.c:7557 + msgid "virtual functions cannot be friends" + msgstr "les funcions virtual no poden ser friend" + +-#: cp/decl.c:7467 ++#: cp/decl.c:7562 + msgid "friend declaration not in class definition" + msgstr "la declaració friend no està en una definició de classe" + +-#: cp/decl.c:7469 ++#: cp/decl.c:7564 + #, c-format + msgid "can't define friend function `%s' in a local class definition" + msgstr "no es pot definir la funció friend \"%s\" en una definició de classe local" + +-#: cp/decl.c:7490 ++#: cp/decl.c:7585 + msgid "destructors may not have parameters" + msgstr "els destructors no poden tenir paràmetres" + +-#: cp/decl.c:7510 cp/decl.c:7517 ++#: cp/decl.c:7605 cp/decl.c:7612 + msgid "cannot declare reference to `%#T'" + msgstr "no es poden declarar referències a \"%#T\"" + +-#: cp/decl.c:7511 ++#: cp/decl.c:7606 + msgid "cannot declare pointer to `%#T'" + msgstr "no es pot declarar un punter a \"%#T\"" + +-#: cp/decl.c:7516 ++#: cp/decl.c:7611 + msgid "cannot declare pointer to `%#T' member" + msgstr "no es pot declarar un punter al membre \"%#T\"" + +-#: cp/decl.c:7655 ++#: cp/decl.c:7750 + msgid "extra qualification `%T::' on member `%s' ignored" + msgstr "s'ignora la qualificació extra `%T::' en el membre \"%s\"" + +-#: cp/decl.c:7671 ++#: cp/decl.c:7766 + msgid "cannot declare member function `%T::%s' within `%T'" + msgstr "no es pot declarar la funció membre \"%T::%s\" dintre de \"%T\"" + +-#: cp/decl.c:7686 ++#: cp/decl.c:7781 + msgid "cannot declare member `%T::%s' within `%T'" + msgstr "no es pot declarar el membre \"%T::%s\" dintre de \"%T\"" + +-#: cp/decl.c:7766 ++#: cp/decl.c:7861 + msgid "data member may not have variably modified type `%T'" + msgstr "" + +-#: cp/decl.c:7768 ++#: cp/decl.c:7863 + msgid "parameter may not have variably modified type `%T'" + msgstr "" + + #. [dcl.fct.spec] The explicit specifier shall only be used in + #. declarations of constructors within a class definition. +-#: cp/decl.c:7776 ++#: cp/decl.c:7871 + msgid "only declarations of constructors can be `explicit'" + msgstr "solament les declaracions de constructors poden ser \"explicit\"" + +-#: cp/decl.c:7784 ++#: cp/decl.c:7879 + #, c-format + msgid "non-member `%s' cannot be declared `mutable'" + msgstr "el no-membre \"%s\" no pot ser declarat \"mutable\"" + +-#: cp/decl.c:7789 ++#: cp/decl.c:7884 + #, c-format + msgid "non-object member `%s' cannot be declared `mutable'" + msgstr "el membre non-objecte \"%s\" no pot ser declarat \"mutable\"" + +-#: cp/decl.c:7795 ++#: cp/decl.c:7890 + #, c-format + msgid "function `%s' cannot be declared `mutable'" + msgstr "la funció \"%s\" no pot ser declarada \"mutable\"" + +-#: cp/decl.c:7800 ++#: cp/decl.c:7895 + #, c-format + msgid "static `%s' cannot be declared `mutable'" + msgstr "static \"%s\" no pot ser declarat \"mutable\"" + +-#: cp/decl.c:7805 ++#: cp/decl.c:7900 + #, c-format + msgid "const `%s' cannot be declared `mutable'" + msgstr "const \"%s\" no pot ser declarat \"mutable\"" + +-#: cp/decl.c:7818 ++#: cp/decl.c:7913 + msgid "template-id `%D' used as a declarator" + msgstr "l'identificador de patró \"%D\" s'usa com un declarador" + +-#: cp/decl.c:7839 ++#: cp/decl.c:7934 + msgid "ISO C++ forbids nested type `%D' with same name as enclosing class" + msgstr "ISO C++ prohibeix el tipus niat \"%D\" amb el mateix nom que la classe que ho conté" + +-#: cp/decl.c:7847 ++#: cp/decl.c:7942 + #, fuzzy + msgid "%Jtypedef name may not be a nested-name-specifier" + msgstr "el nom de la definició de tipus pot no ser qualificada per a la classe" + +-#: cp/decl.c:7893 ++#: cp/decl.c:7988 + #, fuzzy + msgid "%Jinvalid type qualifier for non-member function type" + msgstr "qualificador de tipus invàlid per al tipus de funció no membre" + +-#: cp/decl.c:7956 ++#: cp/decl.c:8051 + msgid "type qualifiers specified for friend class declaration" + msgstr "es van especificar qualificadors de tipus en una declaració de classe friend" + +-#: cp/decl.c:7961 ++#: cp/decl.c:8056 + msgid "`inline' specified for friend class declaration" + msgstr "es va especificar \"inline\" per a la declaració de classe friend" + +-#: cp/decl.c:7969 ++#: cp/decl.c:8064 + msgid "template parameters cannot be friends" + msgstr "els paràmetres del patró no poden ser friends" + +-#: cp/decl.c:7971 ++#: cp/decl.c:8066 + msgid "friend declaration requires class-key, i.e. `friend class %T::%D'" + msgstr "la declaració friend requereix una clau de classe, ex. \"friend class %T::%D\"" + +-#: cp/decl.c:7975 ++#: cp/decl.c:8070 + msgid "friend declaration requires class-key, i.e. `friend %#T'" + msgstr "la declaració friend requereix una clau de classe, ex. \"friend %#T\"" + +-#: cp/decl.c:7988 ++#: cp/decl.c:8083 + msgid "trying to make class `%T' a friend of global scope" + msgstr "tractant fer que la classe \"%T\" sigui un friend d'àmbit global" + +-#: cp/decl.c:7999 ++#: cp/decl.c:8094 + msgid "invalid qualifiers on non-member function type" + msgstr "qualificadors invàlids en el tipus de funció no membre" + +-#: cp/decl.c:8018 ++#: cp/decl.c:8113 + msgid "abstract declarator `%T' used as declaration" + msgstr "el declarador abstracte \"%T\" es va utilitzar com una declaració" + +-#: cp/decl.c:8030 +-msgid "unnamed variable or field declared void" +-msgstr "variable sense nom o camp declarat void" +- +-#: cp/decl.c:8039 +-msgid "variable or field declared void" +-msgstr "variable o camp declarat void" +- +-#: cp/decl.c:8049 ++#: cp/decl.c:8139 + msgid "cannot use `::' in parameter declaration" + msgstr "no es pot usar \"::\" en la declaració de paràmetres" + + #. Something like struct S { int N::j; }; +-#: cp/decl.c:8094 ++#: cp/decl.c:8184 + msgid "invalid use of `::'" + msgstr "ús invàlid de \"::\"" + +-#: cp/decl.c:8106 ++#: cp/decl.c:8196 + msgid "function `%D' cannot be declared friend" + msgstr "la funció \"%D\" no pot ser declarada friend" + +-#: cp/decl.c:8118 ++#: cp/decl.c:8208 + msgid "can't make `%D' into a method -- not in a class" + msgstr "no es pot fer \"%D\" en un mètode -- no està en una classe" + +-#: cp/decl.c:8127 ++#: cp/decl.c:8217 + msgid "function `%D' declared virtual inside a union" + msgstr "la funció \"%s\" es va declarar virtual dintre d'un union" + +-#: cp/decl.c:8136 ++#: cp/decl.c:8226 + msgid "`%D' cannot be declared virtual, since it is always static" + msgstr "\"%D\" no es pot declarar virtual, ja que sempre és static" + +-#: cp/decl.c:8215 ++#: cp/decl.c:8305 + msgid "field `%D' has incomplete type" + msgstr "el camp \"%D\" té tipus de dada incompleta" + +-#: cp/decl.c:8217 ++#: cp/decl.c:8307 + msgid "name `%T' has incomplete type" + msgstr "el nom \"%T\" té tipus de dada incompleta" + +-#: cp/decl.c:8226 ++#: cp/decl.c:8316 + msgid " in instantiation of template `%T'" + msgstr " en la instanciació det patró \"%T\"" + +-#: cp/decl.c:8236 ++#: cp/decl.c:8326 + #, c-format + msgid "`%s' is neither function nor member function; cannot be declared friend" + msgstr "\"%s\" no és ni funció ni funció membre; no pot ser declarat friend" + +-#: cp/decl.c:8247 ++#: cp/decl.c:8337 + msgid "member functions are implicitly friends of their class" + msgstr "les funcions membres són implícitament friends de la seva classe" + +@@ -14776,91 +14827,91 @@ + #. the rest of the compiler does not correctly + #. handle the initialization unless the member is + #. static so we make it static below. +-#: cp/decl.c:8287 ++#: cp/decl.c:8377 + msgid "ISO C++ forbids initialization of member `%D'" + msgstr "ISO C++ prohibeix la inicialización del membre \"%D\"" + +-#: cp/decl.c:8289 ++#: cp/decl.c:8379 + msgid "making `%D' static" + msgstr "fent a \"%D\" static" + +-#: cp/decl.c:8345 ++#: cp/decl.c:8435 + #, c-format + msgid "storage class `auto' invalid for function `%s'" + msgstr "la classe d'emmagatzematge \"auto\" és invàlida per a la funció \"%s\"" + +-#: cp/decl.c:8347 ++#: cp/decl.c:8437 + #, c-format + msgid "storage class `register' invalid for function `%s'" + msgstr "la classe d'emmagatzematge \"register\" és invàlida per a la funció \"%s\"" + +-#: cp/decl.c:8349 ++#: cp/decl.c:8439 + #, c-format + msgid "storage class `__thread' invalid for function `%s'" + msgstr "la classe d'emmagatzematge \"__thread\" és invàlida per a la funció \"%s\"" + +-#: cp/decl.c:8360 ++#: cp/decl.c:8450 + #, c-format + msgid "storage class `static' invalid for function `%s' declared out of global scope" + msgstr "la classe d'emmagatzematge \"static\" és invàlida per a la funció \"%s\" declarada fora de l'àmbit global" + +-#: cp/decl.c:8362 ++#: cp/decl.c:8452 + #, c-format + msgid "storage class `inline' invalid for function `%s' declared out of global scope" + msgstr "la classe d'emmagatzematge \"inline\" és invàlida per a la funció \"%s\" declarada fora de l'àmbit global" + +-#: cp/decl.c:8369 ++#: cp/decl.c:8459 + #, c-format + msgid "virtual non-class function `%s'" + msgstr "la funció virtual \"%s\" no és classe" + +-#: cp/decl.c:8400 ++#: cp/decl.c:8490 + msgid "cannot declare member function `%D' to have static linkage" + msgstr "no es pot declarar que la funció membre \"%D\" tingui enllaçat estàtic" + + #. FIXME need arm citation +-#: cp/decl.c:8406 ++#: cp/decl.c:8496 + msgid "cannot declare static function inside another function" + msgstr "no es pot declarar una funció static dintre d'altra funció" + +-#: cp/decl.c:8434 ++#: cp/decl.c:8524 + msgid "`static' may not be used when defining (as opposed to declaring) a static data member" + msgstr "\"static\" pot no ser utilitzat quan es defineix (oposat a la declaració) una dada membre static" + +-#: cp/decl.c:8440 ++#: cp/decl.c:8530 + msgid "static member `%D' declared `register'" + msgstr "es va declarar el membre static \"%D\" com \"register\"" + +-#: cp/decl.c:8445 ++#: cp/decl.c:8535 + msgid "cannot explicitly declare member `%#D' to have extern linkage" + msgstr "no es pot declarar explícitament que el membre \"%#D\" tingui un enllaçat extern" + +-#: cp/decl.c:8585 ++#: cp/decl.c:8675 + msgid "default argument for `%#D' has type `%T'" + msgstr "l'argument per omissió de \"%#D\" té tipus \"%T\"" + +-#: cp/decl.c:8588 ++#: cp/decl.c:8678 + msgid "default argument for parameter of type `%T' has type `%T'" + msgstr "l'argument per omissió per al paràmetre del tipus \"%T\" té el tipus \"%T\"" + +-#: cp/decl.c:8605 ++#: cp/decl.c:8695 + msgid "default argument `%E' uses local variable `%D'" + msgstr "l'argument per omissió \"%E\" usa la variable local \"%D\"" + +-#: cp/decl.c:8649 ++#: cp/decl.c:8739 + #, c-format + msgid "invalid string constant `%E'" + msgstr "constant de cadena invàlida \"%E\"" + +-#: cp/decl.c:8651 ++#: cp/decl.c:8741 + msgid "invalid integer constant in parameter list, did you forget to give parameter name?" + msgstr "constant entera invàlida en la llista de paràmetres, va oblidar proporcionar nom(s) de paràmetre(s)?" + +-#: cp/decl.c:8689 ++#: cp/decl.c:8779 + msgid "parameter `%D' invalidly declared method type" + msgstr "el paràmetre \"%D\" es va declarar invàlidament com tipus de mètode" + +-#: cp/decl.c:8713 ++#: cp/decl.c:8803 + msgid "parameter `%D' includes %s to array of unknown bound `%T'" + msgstr "el paràmetre \"%D\" inclou %s per a la matriu \"%T\" de límit desconegut" + +@@ -14879,94 +14930,94 @@ + #. or implicitly defined), there's no need to worry about their + #. existence. Theoretically, they should never even be + #. instantiated, but that's hard to forestall. +-#: cp/decl.c:8872 ++#: cp/decl.c:8962 + msgid "invalid constructor; you probably meant `%T (const %T&)'" + msgstr "constructor invàlid; tal vegada va voler dir \"%T (const %T&)\"" + +-#: cp/decl.c:9000 ++#: cp/decl.c:9090 + msgid "`%D' must be a nonstatic member function" + msgstr "\"%D\" deu ser una funció membre que no sigui static" + +-#: cp/decl.c:9006 ++#: cp/decl.c:9096 + msgid "`%D' must be either a non-static member function or a non-member function" + msgstr "\"%D\" deu ser una funció membre no estàtic o una funció no membre" + +-#: cp/decl.c:9023 ++#: cp/decl.c:9113 + msgid "`%D' must have an argument of class or enumerated type" + msgstr "\"%D\" deu tenir un argument de tipus classe o enumerat" + +-#: cp/decl.c:9058 ++#: cp/decl.c:9148 + #, c-format + msgid "conversion to %s%s will never use a type conversion operator" + msgstr "la conversió a %s%s mai usarà un operador de conversió de tipus" + + #. 13.4.0.3 +-#: cp/decl.c:9065 ++#: cp/decl.c:9155 + msgid "ISO C++ prohibits overloading operator ?:" + msgstr "ISO C++ prohibeix la sobrecàrrega de l'operador ?:" + +-#: cp/decl.c:9115 ++#: cp/decl.c:9205 + msgid "postfix `%D' must take `int' as its argument" + msgstr "el postfix \"%D\" deu prendre \"int\" com el seu argument" + +-#: cp/decl.c:9119 ++#: cp/decl.c:9209 + msgid "postfix `%D' must take `int' as its second argument" + msgstr "el postfix \"%D\" deu prendre \"int\" com el seu segon argument" + +-#: cp/decl.c:9126 ++#: cp/decl.c:9216 + msgid "`%D' must take either zero or one argument" + msgstr "\"%D\" deu prendre zero o un arguments" + +-#: cp/decl.c:9128 ++#: cp/decl.c:9218 + msgid "`%D' must take either one or two arguments" + msgstr "\"%D\" deu prendre un o dos arguments" + +-#: cp/decl.c:9149 ++#: cp/decl.c:9239 + msgid "prefix `%D' should return `%T'" + msgstr "el prefix \"%D\" deu regressar \"%T\"" + +-#: cp/decl.c:9155 ++#: cp/decl.c:9245 + msgid "postfix `%D' should return `%T'" + msgstr "el postfix \"%D\" deu regressar \"%T\"" + +-#: cp/decl.c:9164 ++#: cp/decl.c:9254 + msgid "`%D' must take `void'" + msgstr "\"%D\" deu prendre \"void\"" + +-#: cp/decl.c:9166 cp/decl.c:9174 ++#: cp/decl.c:9256 cp/decl.c:9264 + msgid "`%D' must take exactly one argument" + msgstr "\"%D\" deu prendre un argument exactament" + +-#: cp/decl.c:9176 ++#: cp/decl.c:9266 + msgid "`%D' must take exactly two arguments" + msgstr "\"%D\" deu prendre dos arguments exactament" + +-#: cp/decl.c:9184 ++#: cp/decl.c:9274 + msgid "user-defined `%D' always evaluates both arguments" + msgstr "el \"%D\" definit per l'usuari sempre avalua ambdós arguments" + +-#: cp/decl.c:9198 ++#: cp/decl.c:9288 + msgid "`%D' should return by value" + msgstr "\"%D\" deu regressar per valor" + +-#: cp/decl.c:9210 cp/decl.c:9213 ++#: cp/decl.c:9300 cp/decl.c:9303 + msgid "`%D' cannot have default arguments" + msgstr "\"%D\" no pot tenir arguments per omissió" + +-#: cp/decl.c:9273 ++#: cp/decl.c:9363 + msgid "using typedef-name `%D' after `%s'" + msgstr "usant el nom de definició de tipus \"%D\" després de \"%s\"" + +-#: cp/decl.c:9279 ++#: cp/decl.c:9369 + msgid "using template type parameter `%T' after `%s'" + msgstr "usant el paràmetre de tipus patró \"%T\" després de \"%s\"" + +-#: cp/decl.c:9287 ++#: cp/decl.c:9377 + #, fuzzy + msgid "`%T' referred to as `%s'" + msgstr "\"%#D\" redeclarat com %C" + +-#: cp/decl.c:9293 ++#: cp/decl.c:9383 + #, fuzzy + msgid "`%T' referred to as enum" + msgstr "\"%#D\" redeclarat com %C" +@@ -14978,50 +15029,50 @@ + #. void f(class C); // No template header here + #. + #. then the required template argument is missing. +-#: cp/decl.c:9308 ++#: cp/decl.c:9398 + #, fuzzy + msgid "template argument required for `%s %T'" + msgstr "es requereix un argument de patró per a \"%T\"" + +-#: cp/decl.c:9453 ++#: cp/decl.c:9543 + msgid "use of enum `%#D' without previous declaration" + msgstr "ús del enum \"%#D\" sense declaració prèvia" + +-#: cp/decl.c:9471 ++#: cp/decl.c:9561 + #, fuzzy + msgid "redeclaration of `%T' as a non-template" + msgstr "la declaració de \"%D\" com una no funció" + +-#: cp/decl.c:9517 ++#: cp/decl.c:9607 + msgid "derived union `%T' invalid" + msgstr "union derivada \"%T\" invàlida" + +-#: cp/decl.c:9570 ++#: cp/decl.c:9660 + msgid "base type `%T' fails to be a struct or class type" + msgstr "el tipus base \"%T\" falla a ser un tipus struct o classe" + +-#: cp/decl.c:9578 ++#: cp/decl.c:9668 + msgid "recursive type `%T' undefined" + msgstr "tipus recursivo \"%T\" sense definir" + +-#: cp/decl.c:9580 ++#: cp/decl.c:9670 + msgid "duplicate base type `%T' invalid" + msgstr "tipus base duplicat \"%T\" invàlid" + +-#: cp/decl.c:9658 ++#: cp/decl.c:9748 + msgid "Java class '%T' cannot have multiple bases" + msgstr "" + +-#: cp/decl.c:9660 ++#: cp/decl.c:9750 + #, fuzzy + msgid "Java class '%T' cannot have virtual bases" + msgstr "la classe base \"%#T\" té un destructor no virtual" + +-#: cp/decl.c:9700 ++#: cp/decl.c:9790 + msgid "multiple definition of `%#T'" + msgstr "definició múltiple de \"%#T\"" + +-#: cp/decl.c:9701 ++#: cp/decl.c:9791 + #, fuzzy + msgid "%Jprevious definition here" + msgstr "definició prèvia aquí" +@@ -15030,48 +15081,48 @@ + #. + #. IF no integral type can represent all the enumerator values, the + #. enumeration is ill-formed. +-#: cp/decl.c:9836 ++#: cp/decl.c:9926 + msgid "no integral type can represent all of the enumerator values for `%T'" + msgstr "" + +-#: cp/decl.c:9926 ++#: cp/decl.c:10023 + msgid "enumerator value for `%D' not integer constant" + msgstr "el valor de enumerador per a \"%D\" no és una constant entera" + +-#: cp/decl.c:9946 ++#: cp/decl.c:10043 + msgid "overflow in enumeration values at `%D'" + msgstr "desbordament en valors d'enumeració en \"%D\"" + +-#: cp/decl.c:10015 ++#: cp/decl.c:10112 + msgid "return type `%#T' is incomplete" + msgstr "el tipus de retorn \"%#T\" és un tipus de dada incompleta" + +-#: cp/decl.c:10133 ++#: cp/decl.c:10230 + msgid "return type for `main' changed to `int'" + msgstr "el tipus de retorn per a \"main\" va canviar a \"int\"" + +-#: cp/decl.c:10162 ++#: cp/decl.c:10259 + msgid "`%D' implicitly declared before its definition" + msgstr "\"%D\" declarat implícitament abans de la seva definició" + +-#: cp/decl.c:10184 cp/typeck.c:6071 ++#: cp/decl.c:10281 cp/typeck.c:6092 + msgid "`operator=' should return a reference to `*this'" + msgstr "\"operator=\" deu retornar una referència a \"*this\"" + +-#: cp/decl.c:10453 ++#: cp/decl.c:10550 + msgid "parameter `%D' declared void" + msgstr "el paràmetre \"%D\" es va declarar void" + +-#: cp/decl.c:10919 ++#: cp/decl.c:11016 + #, fuzzy + msgid "invalid member function declaration" + msgstr "declaració del patró membre \"%D\" invàlida" + +-#: cp/decl.c:10936 ++#: cp/decl.c:11033 + msgid "`%D' is already defined in class `%T'" + msgstr "\"%D\" ja es va definir en la classe \"%T\"" + +-#: cp/decl.c:11149 ++#: cp/decl.c:11246 + msgid "static member function `%#D' declared with type qualifiers" + msgstr "la funció membre static \"%#D\" és declarada amb qualificadors de tipus" + +@@ -15119,7 +15170,7 @@ + msgid "invalid use of `virtual' in template declaration of `%#D'" + msgstr "ús invàlid de \"virtual\" en la declaració de patró de \"%#D\"" + +-#: cp/decl2.c:541 cp/pt.c:2834 ++#: cp/decl2.c:541 cp/pt.c:2878 + msgid "template declaration of `%#D'" + msgstr "declaració en patró de \"%#D\"" + +@@ -15191,41 +15242,41 @@ + msgid "anonymous struct not inside named type" + msgstr "struct anònim no es troba dintre d'un tipus nomenat" + +-#: cp/decl2.c:1218 ++#: cp/decl2.c:1224 + msgid "namespace-scope anonymous aggregates must be static" + msgstr "els agregats anònims d'abast de nom d'espai deuen ser static" + +-#: cp/decl2.c:1225 ++#: cp/decl2.c:1231 + #, fuzzy + msgid "anonymous union with no members" + msgstr "agregat anònim sense membres" + +-#: cp/decl2.c:1259 ++#: cp/decl2.c:1265 + msgid "`operator new' must return type `%T'" + msgstr "\"operator new\" deu retornar el tipus \"%T\"" + +-#: cp/decl2.c:1267 ++#: cp/decl2.c:1273 + msgid "`operator new' takes type `size_t' (`%T') as first parameter" + msgstr "\"operator new\" pren el tipus \"size_t\" (\"%T\") com primer argument" + +-#: cp/decl2.c:1293 ++#: cp/decl2.c:1299 + msgid "`operator delete' must return type `%T'" + msgstr "\"operator delete\" deu retornar el tipus \"%T\"" + +-#: cp/decl2.c:1301 ++#: cp/decl2.c:1307 + msgid "`operator delete' takes type `%T' as first parameter" + msgstr "\"operator delete\" pren el tipus \"%T\" com primer argument" + +-#: cp/decl2.c:2810 ++#: cp/decl2.c:2816 + msgid "inline function `%D' used but never defined" + msgstr "s'usa la funció inline \"%D\" però mai es va definir" + +-#: cp/decl2.c:2956 ++#: cp/decl2.c:2962 + msgid "default argument missing for parameter %P of `%+#D'" + msgstr "falta l'argument per omissió per al paràmetre %P de \"%+#D\"" + + #. damn ICE suppression +-#: cp/error.c:2387 ++#: cp/error.c:2385 + #, c-format + msgid "unexpected letter `%c' in locate_error\n" + msgstr "lletra \"%c\" inesperada en locate_error\n" +@@ -15252,7 +15303,7 @@ + msgid "throwing NULL, which has integral, not pointer type" + msgstr "llançant NULL, que té un tipus integral, no un tipus punter" + +-#: cp/except.c:598 cp/init.c:2038 ++#: cp/except.c:598 cp/init.c:2047 + #, fuzzy + msgid "`%D' should never be overloaded" + msgstr "\"%D\" deu regressar per valor" +@@ -15332,7 +15383,7 @@ + msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning" + msgstr "(si aquesta no és la seva intenció, asseguri's qu'el patró de la funció ja ha estat declarada i agregui <> aquí després del nom de la funció) -Wno-non-template-friend desactiva aquest avís" + +-#: cp/g++spec.c:229 java/jvspec.c:415 ++#: cp/g++spec.c:232 java/jvspec.c:415 + #, c-format + msgid "argument to `%s' missing\n" + msgstr "falta l'argument per a `%s'\n" +@@ -15462,61 +15513,61 @@ + msgid "incomplete type `%T' does not have member `%D'" + msgstr "el tipus incomplet \"%T\" no té al membre \"%D\"" + +-#: cp/init.c:1459 ++#: cp/init.c:1460 + msgid "`%D' is not a member of type `%T'" + msgstr "\"%D\" no és un membre de tipus \"%T\"" + +-#: cp/init.c:1478 ++#: cp/init.c:1487 + msgid "invalid pointer to bit-field `%D'" + msgstr "punter invàlid al camp de bit \"%D\"" + +-#: cp/init.c:1580 ++#: cp/init.c:1589 + #, fuzzy + msgid "invalid use of non-static member function `%D'" + msgstr "ús invàlid del camp no static \"%D\"" + +-#: cp/init.c:1586 cp/semantics.c:1236 ++#: cp/init.c:1595 cp/semantics.c:1236 + #, fuzzy + msgid "invalid use of non-static data member `%D'" + msgstr "ús invàlid del camp no static \"%D\"" + +-#: cp/init.c:1725 ++#: cp/init.c:1734 + msgid "new of array type fails to specify size" + msgstr "new de matriu falla a l'especificar la grandària" + +-#: cp/init.c:1736 ++#: cp/init.c:1745 + msgid "size in array new must have integral type" + msgstr "la grandària de la matriu nova deu tenir un tipus integral" + +-#: cp/init.c:1742 ++#: cp/init.c:1751 + msgid "zero size array reserves no space" + msgstr "la matriu de grandària zero no reserva espai" + +-#: cp/init.c:1809 ++#: cp/init.c:1818 + msgid "new cannot be applied to a reference type" + msgstr "new no pot ser aplicat a un tipus de referència" + +-#: cp/init.c:1815 ++#: cp/init.c:1824 + msgid "new cannot be applied to a function type" + msgstr "new no pot ser aplicat a una funcció de referència" + +-#: cp/init.c:1861 ++#: cp/init.c:1870 + msgid "call to Java constructor, while `jclass' undefined" + msgstr "cridada a constructor Java, mentre \"jclass\" està indefinit" + +-#: cp/init.c:1877 ++#: cp/init.c:1886 + msgid "can't find class$" + msgstr "no es pot trobar class$" + +-#: cp/init.c:2004 ++#: cp/init.c:2013 + msgid "invalid type `void' for new" + msgstr "tipus \"void\" invàlid per a new" + +-#: cp/init.c:2014 ++#: cp/init.c:2023 + msgid "uninitialized const in `new' of `%#T'" + msgstr "const sense inicialitzar en \"new\" de \"%#T\"" + +-#: cp/init.c:2033 ++#: cp/init.c:2042 + #, c-format + msgid "call to Java constructor with `%s' undefined" + msgstr "cridada a constructor Java amb \"%s\" sense definir" +@@ -15524,39 +15575,39 @@ + #. See PR 15967. This should never happen (and it is + #. fixed correctly in mainline), but on the release branch + #. we prefer this less-intrusive approacch. +-#: cp/init.c:2077 ++#: cp/init.c:2086 + msgid "no suitable or ambiguous `%D' found in class `%T'" + msgstr "" + +-#: cp/init.c:2083 ++#: cp/init.c:2092 + msgid "request for member `%D' is ambiguous" + msgstr "a petició per al membre \"%D\" és ambigua" + +-#: cp/init.c:2203 ++#: cp/init.c:2212 + msgid "ISO C++ forbids initialization in array new" + msgstr "ISO C++ prohibeix la inicialització en la matriu new" + +-#: cp/init.c:2677 ++#: cp/init.c:2686 + msgid "initializer ends prematurely" + msgstr "el inicialitzador acaba prematurament" + +-#: cp/init.c:2734 ++#: cp/init.c:2743 + msgid "cannot initialize multi-dimensional array with initializer" + msgstr "no es poden inicialitzar matrius multidimensionals amb el inicialitzador" + +-#: cp/init.c:2895 ++#: cp/init.c:2904 + msgid "possible problem detected in invocation of delete operator:" + msgstr "" + +-#: cp/init.c:2898 ++#: cp/init.c:2907 + msgid "neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined." + msgstr "" + +-#: cp/init.c:2919 ++#: cp/init.c:2928 + msgid "unknown array size in delete" + msgstr "grandària de matriu desconeguda en delete" + +-#: cp/init.c:3184 ++#: cp/init.c:3193 + msgid "type to vector delete is neither pointer or array type" + msgstr "el tipus de vector delete no és del tipus punter ni matriu" + +@@ -15621,15 +15672,15 @@ + msgid "(if you use `-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)" + msgstr "" + +-#: cp/mangle.c:2037 ++#: cp/mangle.c:2050 + msgid "call_expr cannot be mangled due to a defect in the C++ ABI" + msgstr "" + +-#: cp/mangle.c:2090 ++#: cp/mangle.c:2103 + msgid "omitted middle operand to `?:' operand cannot be mangled" + msgstr "" + +-#: cp/mangle.c:2389 ++#: cp/mangle.c:2402 + msgid "the mangled name of `%D' will change in a future version of GCC" + msgstr "" + +@@ -15775,7 +15826,7 @@ + + #. It's a nested name with template parameter dependent scope. + #. This can only be using-declaration for class member. +-#: cp/name-lookup.c:2126 cp/name-lookup.c:2140 cp/name-lookup.c:3380 ++#: cp/name-lookup.c:2126 cp/name-lookup.c:2140 cp/name-lookup.c:3362 + msgid "`%T' is not a namespace" + msgstr "\"%T\" no és un nom d'espai" + +@@ -15811,89 +15862,89 @@ + msgid "using-declaration cannot name destructor" + msgstr "declaració d'ús per al destructor" + +-#: cp/name-lookup.c:3005 ++#: cp/name-lookup.c:2984 + msgid "declaration of `%D' not in a namespace surrounding `%D'" + msgstr "la declaració de \"%D\" no està en un espai de noms al voltant de \"%D\"" + +-#: cp/name-lookup.c:3045 ++#: cp/name-lookup.c:3024 + msgid "`%D' should have been declared inside `%D'" + msgstr "\"%D\" deuria ser declarat dintre de \"%D\"" + +-#: cp/name-lookup.c:3109 ++#: cp/name-lookup.c:3088 + msgid "namespace alias `%D' not allowed here, assuming `%D'" + msgstr "no es permet aquí l'alies de l'espai de noms \"%D\", assumint que és \"%D\"" + + #. The parser did not find it, so it's not there. +-#: cp/name-lookup.c:3224 ++#: cp/name-lookup.c:3203 + msgid "unknown namespace `%D'" + msgstr "espai de noms \"%D\" desconegut" + +-#: cp/name-lookup.c:3374 ++#: cp/name-lookup.c:3356 + msgid "namespace `%T' undeclared" + msgstr "espai de noms \"%T\" sense declarar" + +-#: cp/name-lookup.c:3407 ++#: cp/name-lookup.c:3389 + msgid "strong using only meaningful at namespace scope" + msgstr "" + +-#: cp/name-lookup.c:3414 ++#: cp/name-lookup.c:3396 + #, fuzzy + msgid "`%D' attribute directive ignored" + msgstr "s'ignora la directiva d'atribut \"%s\"" + +-#: cp/name-lookup.c:3547 ++#: cp/name-lookup.c:3529 + msgid "use of `%D' is ambiguous" + msgstr "l'ús de \"%D\" és ambigu" + +-#: cp/name-lookup.c:3548 ++#: cp/name-lookup.c:3530 + msgid " first declared as `%#D' here" + msgstr " declarat inicialment com \"%#D\" aquí" + +-#: cp/name-lookup.c:3551 ++#: cp/name-lookup.c:3533 + msgid " also declared as `%#D' here" + msgstr " també declarat com \"%#D\" aquí" + +-#: cp/name-lookup.c:3566 ++#: cp/name-lookup.c:3548 + msgid "`%D' denotes an ambiguous type" + msgstr "\"%D\" denota un tipus ambigu" + +-#: cp/name-lookup.c:3567 ++#: cp/name-lookup.c:3549 + #, fuzzy + msgid "%J first type here" + msgstr " primer tipus aquí" + +-#: cp/name-lookup.c:3568 ++#: cp/name-lookup.c:3550 + #, fuzzy + msgid "%J other type here" + msgstr " altre tipus aquí" + + #. This happens for A::B where B is a template, and there are no + #. template arguments. +-#: cp/name-lookup.c:3633 cp/typeck.c:1792 ++#: cp/name-lookup.c:3615 cp/typeck.c:1792 + msgid "invalid use of `%D'" + msgstr "ús invàlid de \"%D\"" + +-#: cp/name-lookup.c:3674 ++#: cp/name-lookup.c:3656 + msgid "`%D::%D' is not a template" + msgstr "\"%D::%D\" no és un patró" + +-#: cp/name-lookup.c:3691 ++#: cp/name-lookup.c:3673 + msgid "`%D' undeclared in namespace `%D'" + msgstr "\"%D\" no declarat en l'espai de noms \"%D\"" + +-#: cp/name-lookup.c:4153 ++#: cp/name-lookup.c:4135 + msgid "`%D' is not a function," + msgstr "\"%D\" no és una funció," + +-#: cp/name-lookup.c:4154 ++#: cp/name-lookup.c:4136 + msgid " conflict with `%D'" + msgstr " té conflicte amb \"%D\"" + +-#: cp/name-lookup.c:4911 ++#: cp/name-lookup.c:4893 + msgid "XXX entering pop_everything ()\n" + msgstr "" + +-#: cp/name-lookup.c:4920 ++#: cp/name-lookup.c:4902 + msgid "XXX leaving pop_everything ()\n" + msgstr "" + +@@ -15907,7 +15958,7 @@ + msgid "`%D::%D' has not been declared" + msgstr "\"%#D\" no pot ser declarat" + +-#: cp/parser.c:1809 cp/semantics.c:2308 ++#: cp/parser.c:1809 cp/semantics.c:2305 + #, fuzzy + msgid "`::%D' has not been declared" + msgstr "\"%#D\" no pot ser declarat" +@@ -15936,7 +15987,7 @@ + msgid "new types may not be defined in a return type" + msgstr "new no pot ser aplicat a un tipus de referència" + +-#: cp/parser.c:1888 cp/pt.c:4196 ++#: cp/parser.c:1888 cp/pt.c:4238 + msgid "`%T' is not a template" + msgstr "\"%T\" no és un patró" + +@@ -15990,109 +16041,109 @@ + msgid "typedef-name `%D' used as destructor declarator" + msgstr "l'identificador de patró \"%D\" s'usa com un declarador" + +-#: cp/parser.c:3638 ++#: cp/parser.c:3648 + #, fuzzy + msgid "ISO C++ forbids compound-literals" + msgstr "ISO C++ prohibeix literals composats" + +-#: cp/parser.c:4461 ++#: cp/parser.c:4498 + msgid "array bound forbidden after parenthesized type-id" + msgstr "" + +-#: cp/parser.c:4462 ++#: cp/parser.c:4499 + msgid "try removing the parentheses around the type-id" + msgstr "" + +-#: cp/parser.c:4624 ++#: cp/parser.c:4661 + #, fuzzy + msgid "expression in new-declarator must have integral or enumeration type" + msgstr "la grandària de la matriu nova deu tenir un tipus integral" + +-#: cp/parser.c:4805 ++#: cp/parser.c:4842 + msgid "use of old-style cast" + msgstr "ús de la conversió d'estil antic" + +-#: cp/parser.c:5550 ++#: cp/parser.c:5587 + #, c-format + msgid "case label `%E' not within a switch statement" + msgstr "l'etiqueta casi \"%E\" no es troba dintre d'una declaració switch" + +-#: cp/parser.c:6092 ++#: cp/parser.c:6130 + msgid "ISO C++ forbids computed gotos" + msgstr "ISO C++ prohibeix gotos calculats" + +-#: cp/parser.c:6212 ++#: cp/parser.c:6250 + msgid "extra `;'" + msgstr "" + +-#: cp/parser.c:6507 ++#: cp/parser.c:6545 + msgid "mixing declarations and function-definitions is forbidden" + msgstr "" + +-#: cp/parser.c:6645 ++#: cp/parser.c:6683 + #, fuzzy + msgid "duplicate `friend'" + msgstr "\"%s\" duplicat" + +-#: cp/parser.c:6794 ++#: cp/parser.c:6832 + #, fuzzy + msgid "class definition may not be declared a friend" + msgstr "la funció \"%D\" no pot ser declarada friend" + +-#: cp/parser.c:7109 ++#: cp/parser.c:7147 + msgid "only constructors take base initializers" + msgstr "" + +-#: cp/parser.c:7160 ++#: cp/parser.c:7198 + #, fuzzy + msgid "anachronistic old-style base class initializer" + msgstr "inicialitzador de classe base d'estil antic anacrònic" + +-#: cp/parser.c:7201 ++#: cp/parser.c:7239 + msgid "keyword `typename' not allowed in this context (a qualified member initializer is implicitly a type)" + msgstr "" + + #. Warn that we do not support `export'. +-#: cp/parser.c:7563 ++#: cp/parser.c:7601 + msgid "keyword `export' not implemented, and will be ignored" + msgstr "la paraula clau \"export\" no està implementada, i serà ignorada" + + #. Otherwise, emit an error about the invalid digraph, but continue + #. parsing because we got our argument list. +-#: cp/parser.c:7923 ++#: cp/parser.c:7961 + #, fuzzy + msgid "`<::' cannot begin a template-argument list" + msgstr "l'objecte \"%E\" no es pot usar com un argument de patró" + +-#: cp/parser.c:7924 ++#: cp/parser.c:7962 + msgid "`<:' is an alternate spelling for `['. Insert whitespace between `<' and `::'" + msgstr "" + +-#: cp/parser.c:7931 ++#: cp/parser.c:7969 + msgid "(if you use `-fpermissive' G++ will accept your code)" + msgstr "" + + #. Explain what went wrong. +-#: cp/parser.c:8106 ++#: cp/parser.c:8145 + #, fuzzy + msgid "non-template `%D' used as template" + msgstr "s'usa un no-patró com patró" + +-#: cp/parser.c:8107 ++#: cp/parser.c:8146 + #, fuzzy + msgid "use `%T::template %D' to indicate that it is a template" + msgstr "identificador de patró \"%D\" en la declaració del patró primari" + +-#: cp/parser.c:9058 ++#: cp/parser.c:9102 + msgid "using `typename' outside of template" + msgstr "usant \"typename\" fora de la plantilla" + +-#: cp/parser.c:9180 ++#: cp/parser.c:9224 + #, fuzzy + msgid "expected type-name" + msgstr "operant inesperat" + +-#: cp/parser.c:9239 ++#: cp/parser.c:9283 + #, fuzzy + msgid "type attributes are honored only at type definition" + msgstr "l'atribut \"%s\" sol es pot aplicar a definicions de classe" +@@ -16100,91 +16151,91 @@ + #. [namespace.udecl] + #. + #. A using declaration shall not name a template-id. +-#: cp/parser.c:9622 ++#: cp/parser.c:9666 + #, fuzzy + msgid "a template-id may not appear in a using-declaration" + msgstr "no es permet l'espai de noms \"%D\" en la declaració d'ús" + +-#: cp/parser.c:9949 ++#: cp/parser.c:9986 + msgid "an asm-specification is not allowed on a function-definition" + msgstr "" + +-#: cp/parser.c:9951 ++#: cp/parser.c:9988 + #, fuzzy + msgid "attributes are not allowed on a function-definition" + msgstr "la variable de registre global segueix a una definició de funció" + +-#: cp/parser.c:10084 ++#: cp/parser.c:10121 + #, fuzzy + msgid "attributes after parenthesized initializer ignored" + msgstr "atributs en el declarador de parametres de matriu ignorats" + +-#: cp/parser.c:10540 ++#: cp/parser.c:10591 + #, fuzzy + msgid "`%T::%D' is not a type" + msgstr "\"%D::%D\" no és un patró" + +-#: cp/parser.c:11288 ++#: cp/parser.c:11341 + #, fuzzy + msgid "file ends in default argument" + msgstr "%Hlectura de final de fitxer dintre de l'argument per defecte" + +-#: cp/parser.c:11344 ++#: cp/parser.c:11397 + #, fuzzy + msgid "deprecated use of default argument for parameter of non-function" + msgstr "argument per omissió donat per al paràmetre %d de \"%#D\"" + +-#: cp/parser.c:11347 ++#: cp/parser.c:11400 + #, fuzzy + msgid "default arguments are only permitted for function parameters" + msgstr "argument per omissió donat per al paràmetre %d de \"%#D\"" + +-#: cp/parser.c:12078 ++#: cp/parser.c:12166 + msgid "declaration of `%D' in `%D' which does not enclose `%D'" + msgstr "declaració de \"%D\" en \"%D\" la qual no inclou a \"%D\"" + +-#: cp/parser.c:12091 ++#: cp/parser.c:12179 + #, fuzzy + msgid "extra qualification ignored" + msgstr "s'ignora la qualificació extra \"%T::\" en el membre \"%D\"" + +-#: cp/parser.c:12102 ++#: cp/parser.c:12190 + #, fuzzy + msgid "an explicit specialization must be preceded by 'template <>'" + msgstr "especialització explícita no precedida per \"template <>\"" + +-#: cp/parser.c:12385 ++#: cp/parser.c:12473 + msgid "extra semicolon" + msgstr "" + +-#: cp/parser.c:12403 ++#: cp/parser.c:12491 + msgid "a class-key must be used when declaring a friend" + msgstr "" + +-#: cp/parser.c:12434 ++#: cp/parser.c:12522 + #, fuzzy + msgid "friend declaration does not name a class or function" + msgstr "la declaració friend no està en una definició de classe" + +-#: cp/parser.c:12605 ++#: cp/parser.c:12694 + msgid "pure-specifier on function-definition" + msgstr "" + +-#: cp/parser.c:12878 ++#: cp/parser.c:12967 + #, fuzzy + msgid "keyword `typename' not allowed outside of templates" + msgstr "usant \"typename\" fora de la plantilla" + +-#: cp/parser.c:12880 ++#: cp/parser.c:12969 + msgid "keyword `typename' not allowed in this context (the base class is implicitly a type)" + msgstr "" + +-#: cp/parser.c:13700 ++#: cp/parser.c:13790 + #, fuzzy + msgid "reference to `%D' is ambiguous" + msgstr "l'ús de \"%D\" és ambigu" + +-#: cp/parser.c:13874 ++#: cp/parser.c:13964 + #, fuzzy + msgid "too few template-parameter-lists" + msgstr "molt poques llistes de paràmetres de patró en la declaració de \"%D\"" +@@ -16193,50 +16244,50 @@ + #. something like: + #. + #. template template void S::f(); +-#: cp/parser.c:13889 ++#: cp/parser.c:13979 + #, fuzzy + msgid "too many template-parameter-lists" + msgstr "massa llistes de paràmetres de patró en la declaració de \"%D\"" + + #. If begin_function_definition didn't like the definition, skip + #. the entire function. +-#: cp/parser.c:14185 ++#: cp/parser.c:14275 + #, fuzzy + msgid "invalid function declaration" + msgstr "declarador invàlid" + + #. Issue an error message. +-#: cp/parser.c:14222 ++#: cp/parser.c:14312 + #, fuzzy + msgid "named return values are no longer supported" + msgstr "--driver ja no té suport" + +-#: cp/parser.c:14561 ++#: cp/parser.c:14651 + #, fuzzy + msgid "`>>' should be `> >' within a nested template argument list" + msgstr "\">>\" deu ser \"> >\" en el nom de classe del patró" + + #. If this is not a nested template argument list, the '>>' is + #. a typo for '>'. Emit an error message and continue. +-#: cp/parser.c:14569 ++#: cp/parser.c:14659 + msgid "spurious `>>', use `>' to terminate a template argument list" + msgstr "" + +-#: cp/parser.c:14574 ++#: cp/parser.c:14664 + #, fuzzy + msgid "missing `>' to terminate the template argument list" + msgstr "falta parèntesi dret en la llista de paràmetres de macro" + +-#: cp/parser.c:15062 ++#: cp/parser.c:15149 + msgid "`%s' tag used in naming `%#T'" + msgstr "es va usar la marca \"%s\" al nomenar a\"%#T\"" + +-#: cp/parser.c:15082 ++#: cp/parser.c:15169 + #, fuzzy + msgid "%D redeclared with different access" + msgstr "\"%#D\" redeclarat com un tipus diferent de símbol" + +-#: cp/parser.c:15099 ++#: cp/parser.c:15186 + msgid "`template' (as a disambiguator) is only allowed within templates" + msgstr "" + +@@ -16256,81 +16307,86 @@ + msgid "enclosing class templates are not explicitly specialized" + msgstr "les patrons de classe contingudes no són especialitzades explícitament" + +-#: cp/pt.c:739 cp/pt.c:780 +-msgid "specializing `%#T' in different namespace" ++#: cp/pt.c:733 ++#, fuzzy ++msgid "specialization of `%D' in different namespace" + msgstr "especialitzant \"%#T\" en diferents espais de noms" + +-#: cp/pt.c:740 cp/pt.c:781 ++#: cp/pt.c:734 cp/pt.c:803 + msgid " from definition of `%#D'" + msgstr " de la definició de \"%#D\"" + +-#: cp/pt.c:748 ++#: cp/pt.c:770 + msgid "specialization of `%T' after instantiation" + msgstr "especialització de \"%T\" després de la instanciació" + +-#: cp/pt.c:795 ++#: cp/pt.c:802 ++msgid "specializing `%#T' in different namespace" ++msgstr "especialitzant \"%#T\" en diferents espais de noms" ++ ++#: cp/pt.c:817 + msgid "specialization `%T' after instantiation `%T'" + msgstr "especialització de \"%T\" després de la instanciació \"%T\"" + +-#: cp/pt.c:807 ++#: cp/pt.c:829 + msgid "explicit specialization of non-template `%T'" + msgstr "especialització explícita de \"%T\" que no és patró" + +-#: cp/pt.c:1067 ++#: cp/pt.c:1089 + msgid "specialization of %D after instantiation" + msgstr "especialització de %D després de la instanciació" + +-#: cp/pt.c:1192 ++#: cp/pt.c:1220 + msgid "%s %+#D" + msgstr "%s %+#D" + +-#: cp/pt.c:1241 ++#: cp/pt.c:1269 + msgid "`%D' is not a function template" + msgstr "\"%D\" no és un patró de funció" + +-#: cp/pt.c:1389 ++#: cp/pt.c:1417 + msgid "template-id `%D' for `%+D' does not match any template declaration" + msgstr "l'idenfificador de patró \"%D\" per a \"%+D\" no coincideix amb cap declaració de patró" + +-#: cp/pt.c:1397 ++#: cp/pt.c:1425 + msgid "ambiguous template specialization `%D' for `%+D'" + msgstr "especialització de patró ambigua \"%D\" per a \"%+D\"" + + #. This case handles bogus declarations like template <> + #. template void f(); +-#: cp/pt.c:1620 cp/pt.c:1694 ++#: cp/pt.c:1648 cp/pt.c:1722 + msgid "template-id `%D' in declaration of primary template" + msgstr "identificador de patró \"%D\" en la declaració del patró primari" + +-#: cp/pt.c:1633 ++#: cp/pt.c:1661 + msgid "template parameter list used in explicit instantiation" + msgstr "es va usar una llista de paràmetres de patró en una instanciació explícita" + +-#: cp/pt.c:1639 ++#: cp/pt.c:1667 + msgid "definition provided for explicit instantiation" + msgstr "es proveeix una definició per a instanciació explícita" + +-#: cp/pt.c:1645 ++#: cp/pt.c:1673 + msgid "too many template parameter lists in declaration of `%D'" + msgstr "massa llistes de paràmetres de patró en la declaració de \"%D\"" + +-#: cp/pt.c:1661 ++#: cp/pt.c:1689 + msgid "too few template parameter lists in declaration of `%D'" + msgstr "molt poques llistes de paràmetres de patró en la declaració de \"%D\"" + +-#: cp/pt.c:1678 ++#: cp/pt.c:1706 + msgid "explicit specialization not preceded by `template <>'" + msgstr "especialització explícita no precedida per \"template <>\"" + +-#: cp/pt.c:1691 ++#: cp/pt.c:1719 + msgid "partial specialization `%D' of function template" + msgstr "especialització parcial \"%D\" del patró de funció" + +-#: cp/pt.c:1723 ++#: cp/pt.c:1751 + msgid "default argument specified in explicit specialization" + msgstr "es va especificar un argument per omissió en l'especialització explícita" + +-#: cp/pt.c:1727 ++#: cp/pt.c:1755 + msgid "template specialization with C linkage" + msgstr "especialització de patró amb enllaç C" + +@@ -16342,107 +16398,117 @@ + #. program is ill-formed. + #. + #. Similar language is found in [temp.explicit]. +-#: cp/pt.c:1811 ++#: cp/pt.c:1839 + msgid "specialization of implicitly-declared special member function" + msgstr "especialització de la funció membre especial declarada implícitament" + +-#: cp/pt.c:1855 ++#: cp/pt.c:1883 + msgid "no member function `%D' declared in `%T'" + msgstr "la funció no membre \"%D\" es va declarar en \"%T\"" + + #. There are two many template parameter lists. +-#: cp/pt.c:2005 ++#: cp/pt.c:2033 + msgid "too many template parameter lists in declaration of `%T'" + msgstr "massa llistes de paràmetres de patró en la declaració de \"%T\"" + +-#: cp/pt.c:2098 ++#: cp/pt.c:2126 + msgid " shadows template parm `%#D'" + msgstr " enfosquen el paràmetre de patró \"%#D\"" + +-#: cp/pt.c:2495 ++#: cp/pt.c:2523 + msgid "template parameters not used in partial specialization:" + msgstr "no s'usen els paràmetres de patró en l'especialització parcial:" + +-#: cp/pt.c:2499 ++#: cp/pt.c:2527 + msgid " `%D'" + msgstr " \"%D\"" + +-#: cp/pt.c:2511 ++#: cp/pt.c:2539 + msgid "partial specialization `%T' does not specialize any template arguments" + msgstr "l'especialització parcial \"%T\" no especialitza cap argument de patró" + +-#: cp/pt.c:2536 ++#: cp/pt.c:2564 + #, c-format + msgid "template argument `%E' involves template parameter(s)" + msgstr "l'argument de patró \"%E\" involucra el(s) paràmetre(s) de patró" + +-#: cp/pt.c:2580 ++#: cp/pt.c:2608 + msgid "type `%T' of template argument `%E' depends on template parameter(s)" + msgstr "el tipus \"%T\" de l'argument de patró \"%E\" depèn del(s) paràmetre(s) de patró" + +-#: cp/pt.c:2665 ++#: cp/pt.c:2693 + msgid "no default argument for `%D'" + msgstr "no hi ha un argument per omissió per a \"%D\"" + +-#: cp/pt.c:2814 ++#: cp/pt.c:2842 + msgid "template with C linkage" + msgstr "patró amb enllaç C" + +-#: cp/pt.c:2817 ++#: cp/pt.c:2845 + msgid "template class without a name" + msgstr "classe de patró sense nom" + + #. [temp.mem] + #. + #. A destructor shall not be a member template. +-#: cp/pt.c:2824 ++#: cp/pt.c:2853 + #, fuzzy + msgid "destructor `%D' declared as member template" + msgstr "les dades membres \"%D\" no poden ser un patró membre" + +-#: cp/pt.c:2904 ++#. [basic.stc.dynamic.allocation] ++#. ++#. An allocation function can be a function ++#. template. ... Template allocation functions shall ++#. have two or more parameters. ++#: cp/pt.c:2868 ++#, fuzzy ++msgid "invalid template declaration of `%D'" ++msgstr "declaració del patró membre \"%D\" invàlida" ++ ++#: cp/pt.c:2948 + msgid "`%D' does not declare a template type" + msgstr "\"%D\" no declara un tipus de patró" + +-#: cp/pt.c:2910 ++#: cp/pt.c:2954 + msgid "template definition of non-template `%#D'" + msgstr "definició de patró de \"%#D\" que no és patró" + +-#: cp/pt.c:2951 ++#: cp/pt.c:2995 + msgid "expected %d levels of template parms for `%#D', got %d" + msgstr "s'esperaven %d nivells de paràmetres de patró per a \"%#D\", es van obtenir %d" + +-#: cp/pt.c:2963 ++#: cp/pt.c:3007 + msgid "got %d template parameters for `%#D'" + msgstr "es van obtenir %d paràmetres de patró per a \"%#D\"" + +-#: cp/pt.c:2966 ++#: cp/pt.c:3010 + msgid "got %d template parameters for `%#T'" + msgstr "es van obtenir %d paràmetres de patró per a \"%#T\"" + +-#: cp/pt.c:2968 ++#: cp/pt.c:3012 + #, c-format + msgid " but %d required" + msgstr " però es requereixen %d" + +-#: cp/pt.c:3053 ++#: cp/pt.c:3097 + msgid "`%T' is not a template type" + msgstr "\"%T\" no és un tipus patró" + +-#: cp/pt.c:3069 ++#: cp/pt.c:3113 + msgid "previous declaration `%D'" + msgstr "declaració prèvia de \"%D\"" + +-#: cp/pt.c:3070 ++#: cp/pt.c:3114 + #, c-format + msgid "used %d template parameter%s instead of %d" + msgstr "es van usar %d paràmetre%s de patró en lloc de %d" + +-#: cp/pt.c:3086 ++#: cp/pt.c:3130 + msgid "template parameter `%#D'" + msgstr "paràmetre de patró \"%#D\"" + +-#: cp/pt.c:3087 ++#: cp/pt.c:3131 + msgid "redeclared here as `%#D'" + msgstr "redeclarat aquí com \"%#D\"" + +@@ -16450,287 +16516,296 @@ + #. + #. A template-parameter may not be given default arguments + #. by two different declarations in the same scope. +-#: cp/pt.c:3097 ++#: cp/pt.c:3141 + msgid "redefinition of default argument for `%#D'" + msgstr "redefinició de l'argument per omissió per a \"%#D\"" + +-#: cp/pt.c:3098 ++#: cp/pt.c:3142 + #, fuzzy + msgid "%J original definition appeared here" + msgstr " la definició original apareix aquí" + +-#: cp/pt.c:3246 ++#: cp/pt.c:3288 + #, c-format + msgid "`%E' is not a valid template argument" + msgstr "\"%E\" no és un argument de patró vàlid" + +-#: cp/pt.c:3250 ++#: cp/pt.c:3292 + msgid "it must be the address of a function with external linkage" + msgstr "deu ser l'adreça d'una funció amb enllaç extern" + +-#: cp/pt.c:3252 ++#: cp/pt.c:3294 + msgid "it must be the address of an object with external linkage" + msgstr "deu ser l'adreça d'un objecte amb enllaç extern" + +-#: cp/pt.c:3255 ++#: cp/pt.c:3297 + msgid "it must be a pointer-to-member of the form `&X::Y'" + msgstr "deu ser un punter-a-membre de la forma \"&X::I\"" + +-#: cp/pt.c:3266 ++#: cp/pt.c:3308 + #, c-format + msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage" + msgstr "la cadena literal %E no és un argument vàlid de patró perquè és l'adreça d'un objecte amb enllaç estàtic" + +-#: cp/pt.c:3281 ++#: cp/pt.c:3323 + #, c-format + msgid "address of non-extern `%E' cannot be used as template argument" + msgstr "no es pot usar l'adreça de \"%E\" que no és extern com un argument de patró" + +-#: cp/pt.c:3290 ++#: cp/pt.c:3332 + #, c-format + msgid "non-constant `%E' cannot be used as template argument" + msgstr "\"%E\" que no és constant no es pot usar com un argument de patró" + +-#: cp/pt.c:3298 ++#: cp/pt.c:3340 + #, fuzzy + msgid "type '%T' cannot be used as a value for a non-type template-parameter" + msgstr "l'objecte \"%E\" no es pot usar com un argument de patró" + +-#: cp/pt.c:3301 ++#: cp/pt.c:3343 + #, fuzzy + msgid "invalid use of '%D' as a non-type template-argument" + msgstr "ús invàlid de \"%s\" en punter a membre" + +-#: cp/pt.c:3303 ++#: cp/pt.c:3345 + #, fuzzy, c-format + msgid "invalid use of '%E' as a non-type template-argument" + msgstr "ús invàlid de \"%s\" en punter a membre" + +-#: cp/pt.c:3668 ++#: cp/pt.c:3710 + #, c-format + msgid "to refer to a type member of a template parameter, use `typename %E'" + msgstr "per a fer referència a un tipus membre d'un paràmetre de patró, usi \"typename %E\"" + +-#: cp/pt.c:3681 cp/pt.c:3699 cp/pt.c:3738 ++#: cp/pt.c:3723 cp/pt.c:3741 cp/pt.c:3780 + msgid "type/value mismatch at argument %d in template parameter list for `%D'" + msgstr "no coincideix el tipus/valor en l'argument %d en la llista de paràmetres de patró per a \"%D\"" + +-#: cp/pt.c:3684 ++#: cp/pt.c:3726 + msgid " expected a constant of type `%T', got `%T'" + msgstr " s'esperava una constant de tipus \"%T\", es va obtenir \"%T\"" + +-#: cp/pt.c:3688 ++#: cp/pt.c:3730 + #, fuzzy, c-format + msgid " expected a class template, got `%E'" + msgstr " s'esperava un patró de classe, es va obtenir \"%T\"" + +-#: cp/pt.c:3690 ++#: cp/pt.c:3732 + #, c-format + msgid " expected a type, got `%E'" + msgstr " s'esperava un tipus, es va obtenir \"%E\"" + +-#: cp/pt.c:3702 ++#: cp/pt.c:3744 + msgid " expected a type, got `%T'" + msgstr " s'esperava un tipus, es va obtenir \"%T\"" + +-#: cp/pt.c:3704 ++#: cp/pt.c:3746 + msgid " expected a class template, got `%T'" + msgstr " s'esperava un patró de classe, es va obtenir \"%T\"" + +-#: cp/pt.c:3740 ++#: cp/pt.c:3782 + msgid " expected a template of type `%D', got `%D'" + msgstr " s'esperava un patró de tipus \"%D\", es va obtenir \"%D\"" + +-#: cp/pt.c:3775 ++#: cp/pt.c:3817 + msgid "could not convert template argument `%E' to `%T'" + msgstr "no es pot convertir l'argument de patró \"%E\" a \"%T\"" + +-#: cp/pt.c:3815 ++#: cp/pt.c:3857 + #, c-format + msgid "wrong number of template arguments (%d, should be %d)" + msgstr "nombre erroni d'arguments de patró (%d, deuria ser %d)" + +-#: cp/pt.c:3819 ++#: cp/pt.c:3861 + msgid "provided for `%D'" + msgstr "proveït per \"%D\"" + +-#: cp/pt.c:3847 ++#: cp/pt.c:3889 + #, c-format + msgid "template argument %d is invalid" + msgstr "l'argument de patró %d és invàlid" + +-#: cp/pt.c:4068 ++#: cp/pt.c:4110 + msgid "non-template used as template" + msgstr "s'usa un no-patró com patró" + +-#: cp/pt.c:4208 ++#: cp/pt.c:4250 + msgid "non-template type `%T' used as a template" + msgstr "s'usa el tipus \"%T\" que és no-patró com patró" + +-#: cp/pt.c:4210 ++#: cp/pt.c:4252 + msgid "for template declaration `%D'" + msgstr "per a la declaració de patró \"%D\"" + +-#: cp/pt.c:4857 ++#: cp/pt.c:4899 + msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'" + msgstr "la profunditat d'instanciació del patró excedeix el màxim de %d (usi -ftemplate-depth-NN per a incrementar el màxim) al instanciar \"%D\"" + +-#: cp/pt.c:5296 ++#: cp/pt.c:5338 + msgid "ambiguous class template instantiation for `%#T'" + msgstr "instanciació de patró classe ambigua per a \"%#T\"" + +-#: cp/pt.c:5302 ++#: cp/pt.c:5344 + msgid "%s %+#T" + msgstr "%s %+#T" + +-#: cp/pt.c:6308 cp/pt.c:6428 ++#: cp/pt.c:6382 + msgid "instantiation of `%D' as type `%T'" + msgstr "instanciació de \"%D\" com tipus \"%T\"" + +-#: cp/pt.c:6470 ++#: cp/pt.c:6542 + msgid "invalid parameter type `%T'" + msgstr "tipus de paràmetre \"%T\" invàlid" + +-#: cp/pt.c:6472 ++#: cp/pt.c:6544 + msgid "in declaration `%D'" + msgstr "en la declaració \"%D\"" + +-#: cp/pt.c:6546 ++#: cp/pt.c:6618 + msgid "creating pointer to member function of non-class type `%T'" + msgstr "creant un punter a funció membre del tipus \"%T\" que no és classe" + +-#: cp/pt.c:6685 ++#: cp/pt.c:6758 + msgid "creating array with size zero" + msgstr "creant la matriu amb grandària zero" + +-#: cp/pt.c:6699 ++#: cp/pt.c:6772 + #, c-format + msgid "creating array with size zero (`%E')" + msgstr "creant la matriu amb grandària zero (\"%E\")" + +-#: cp/pt.c:6938 ++#: cp/pt.c:7011 + msgid "forming reference to void" + msgstr "formant la referència a void" + +-#: cp/pt.c:6940 ++#: cp/pt.c:7013 + msgid "forming %s to reference type `%T'" + msgstr "formant %s per a referenciar al tipus \"%T\"" + +-#: cp/pt.c:6977 ++#: cp/pt.c:7050 + msgid "creating pointer to member of non-class type `%T'" + msgstr "creant un punter al membre del tipus \"%T\" que no és classe" + +-#: cp/pt.c:6983 ++#: cp/pt.c:7056 + msgid "creating pointer to member reference type `%T'" + msgstr "creant un punter al membre de referència de tipus \"%T\"" + +-#: cp/pt.c:7069 ++#: cp/pt.c:7142 + msgid "creating array of `%T'" + msgstr "creant la matriu de \"%T\"" + +-#: cp/pt.c:7075 ++#: cp/pt.c:7148 + #, fuzzy + msgid "creating array of `%T', which is an abstract class type" + msgstr "inicialitzador sense nom per a \"%T\", el qual no té una classe base" + +-#: cp/pt.c:7119 ++#: cp/pt.c:7192 + msgid "`%T' is not a class, struct, or union type" + msgstr "\"%T\" no és de tipus classe, struct o union" + +-#: cp/pt.c:7232 ++#: cp/pt.c:7305 + #, c-format + msgid "use of `%s' in template" + msgstr "ús de \"%s\" en el patró" + +-#: cp/pt.c:7345 ++#: cp/pt.c:7418 + #, fuzzy, c-format + msgid "dependent-name `%E' is parsed as a non-type, but instantiation yields a type" + msgstr "s'usa \"%D\" com un tipus, però no està definit com un tipus." + +-#: cp/pt.c:7347 ++#: cp/pt.c:7420 + #, fuzzy, c-format + msgid "say `typename %E' if a type is meant" + msgstr " (usi \"typename %T::%D\" si això és el que volia)" + +-#: cp/pt.c:8613 ++#: cp/pt.c:8589 ++msgid "`%T' is not a class or namespace" ++msgstr "\"%T\" no és una classa o un espai de noms" ++ ++#: cp/pt.c:8592 ++#, fuzzy ++msgid "`%D' is not a class or namespace" ++msgstr "\"%T\" no és una classa o un espai de noms" ++ ++#: cp/pt.c:8709 + #, fuzzy + msgid "`%T' uses anonymous type" + msgstr "l'argument de patró \"%T\" usa un tipus anònim" + +-#: cp/pt.c:8615 ++#: cp/pt.c:8711 + #, fuzzy + msgid "`%T' uses local type `%T'" + msgstr "l'argument de patró \"%T\" usa el tipus local \"%T\"" + +-#: cp/pt.c:8623 ++#: cp/pt.c:8719 + #, fuzzy + msgid "`%T' is a variably modified type" + msgstr "l'argument de patró \"%T\" és un tipus modificat variablement" + +-#: cp/pt.c:8634 ++#: cp/pt.c:8730 + #, fuzzy, c-format + msgid "integral expression `%E' is not constant" + msgstr "la grandària d'emmagatzematge de \"%D\" no és constant" + +-#: cp/pt.c:8639 ++#: cp/pt.c:8735 + msgid " trying to instantiate `%D'" + msgstr " tractant d'instanciar \"%D\"" + +-#: cp/pt.c:9156 ++#: cp/pt.c:9252 + msgid "incomplete type unification" + msgstr "unificació de tipus incomplet" + +-#: cp/pt.c:10112 ++#: cp/pt.c:10211 + #, c-format + msgid "use of `%s' in template type unification" + msgstr "ús de \"%s\" en la unificació de tipus de patró" + +-#: cp/pt.c:10546 cp/pt.c:10618 ++#: cp/pt.c:10644 cp/pt.c:10716 + msgid "explicit instantiation of non-template `%#D'" + msgstr "instanciació explícita de \"%#D\" que no és patró" + +-#: cp/pt.c:10562 cp/pt.c:10613 ++#: cp/pt.c:10660 cp/pt.c:10711 + msgid "no matching template for `%D' found" + msgstr "no es troba una patró coincident per a \"%D\"" + +-#: cp/pt.c:10568 ++#: cp/pt.c:10666 + msgid "explicit instantiation of `%#D'" + msgstr "instanciació explícita de \"%#D\"" + +-#: cp/pt.c:10605 ++#: cp/pt.c:10703 + msgid "duplicate explicit instantiation of `%#D'" + msgstr "instanciació explícita duplicada de \"%#D\"" + +-#: cp/pt.c:10627 ++#: cp/pt.c:10725 + msgid "ISO C++ forbids the use of `extern' on explicit instantiations" + msgstr "ISO C++ prohibeix l'ús de \"extern\" en instanciacions explícites" + +-#: cp/pt.c:10631 cp/pt.c:10712 ++#: cp/pt.c:10729 cp/pt.c:10810 + msgid "storage class `%D' applied to template instantiation" + msgstr "classe d'emmagatzematge \"%D\" aplicada a la instanciació d'un patró" + +-#: cp/pt.c:10684 ++#: cp/pt.c:10782 + msgid "explicit instantiation of non-template type `%T'" + msgstr "instanciació explícita del tipus \"%T\" del tipus no-patró" + +-#: cp/pt.c:10693 ++#: cp/pt.c:10791 + msgid "explicit instantiation of `%#T' before definition of template" + msgstr "instanciació explícita de \"%#T\" abans de la definició del patró" + +-#: cp/pt.c:10701 ++#: cp/pt.c:10799 + #, c-format + msgid "ISO C++ forbids the use of `%s' on explicit instantiations" + msgstr "ISO C++ prohibeix l'ús de \"%s\" en les instanciacions explícites" + +-#: cp/pt.c:10745 ++#: cp/pt.c:10843 + msgid "duplicate explicit instantiation of `%#T'" + msgstr "instanciació explícita duplicada de \"%#T\"" + +-#: cp/pt.c:11126 ++#: cp/pt.c:11224 + msgid "explicit instantiation of `%D' but no definition available" + msgstr "instanciació explícita de \"%D\" però no hi ha una definició disponible" + +-#: cp/pt.c:11562 ++#: cp/pt.c:11660 + msgid "`%#T' is not a valid type for a template constant parameter" + msgstr "\"%#T\" no és un tipus vàlid per a un paràmetre constant de patró" + +@@ -16776,39 +16851,39 @@ + msgid "`%T' is an inaccessible base of `%T'" + msgstr "\"%T\" és una base inaccessible de \"%T\"" + +-#: cp/search.c:1767 ++#: cp/search.c:1805 + msgid "invalid covariant return type for `%#D'" + msgstr "tipus de retorn covariant invàlid per a \"%#D\"" + +-#: cp/search.c:1768 cp/search.c:1774 ++#: cp/search.c:1806 cp/search.c:1812 + msgid " overriding `%#D'" + msgstr " substituint \"%#D\"" + +-#: cp/search.c:1772 ++#: cp/search.c:1810 + msgid "conflicting return type specified for `%#D'" + msgstr "tipus de devolució en conflicte especificats per a \"%#D\"" + +-#: cp/search.c:1786 ++#: cp/search.c:1824 + #, c-format + msgid "looser throw specifier for `%#F'" + msgstr "especificador thrown més flexible per a \"%#F\"" + +-#: cp/search.c:1787 ++#: cp/search.c:1825 + #, c-format + msgid " overriding `%#F'" + msgstr " substituint \"%#F\"" + + #. A static member function cannot match an inherited + #. virtual member function. +-#: cp/search.c:1877 ++#: cp/search.c:1915 + msgid "`%#D' cannot be declared" + msgstr "\"%#D\" no pot ser declarat" + +-#: cp/search.c:1878 ++#: cp/search.c:1916 + msgid " since `%#D' declared in base class" + msgstr " ja que es va declarar \"%#D\" en la classe base" + +-#: cp/search.c:1955 ++#: cp/search.c:1993 + msgid "`%#D' needs a final overrider" + msgstr "\"%#D\" necessita un substituent final" + +@@ -16830,121 +16905,121 @@ + msgid "object missing in reference to `%D'" + msgstr "falta un objecte en \"%E\"" + +-#: cp/semantics.c:1721 ++#: cp/semantics.c:1718 + #, fuzzy + msgid "arguments to destructor are not allowed" + msgstr "l'argument per a l'atribut \"%s\" és més gran que %d" + +-#: cp/semantics.c:1770 ++#: cp/semantics.c:1767 + msgid "`this' is unavailable for static member functions" + msgstr "\"this\" no està disponible per a funcions membre static" + +-#: cp/semantics.c:1776 ++#: cp/semantics.c:1773 + msgid "invalid use of `this' in non-member function" + msgstr "ús invàlid de \"this\" en la funció no membre" + +-#: cp/semantics.c:1778 ++#: cp/semantics.c:1775 + msgid "invalid use of `this' at top level" + msgstr "ús invàlid de \"this\" en el nivell principal" + +-#: cp/semantics.c:1802 ++#: cp/semantics.c:1799 + #, fuzzy + msgid "invalid qualifying scope in pseudo-destructor name" + msgstr "qualificadors invàlids en el tipus de funció no membre" + +-#: cp/semantics.c:1822 ++#: cp/semantics.c:1819 + msgid "`%E' is not of type `%T'" + msgstr "\"%E\" no és de tipus \"%T\"" + +-#: cp/semantics.c:1933 ++#: cp/semantics.c:1930 + msgid "template type parameters must use the keyword `class' or `typename'" + msgstr "els paràmetres de tipus patró deu usar la paraula clau \"class\" o \"typename\"" + +-#: cp/semantics.c:1977 ++#: cp/semantics.c:1974 + #, fuzzy + msgid "invalid use of type `%T' as a default value for a template template-parameter" + msgstr "\"%#T\" no és un tipus vàlid per a un paràmetre constant de patró" + +-#: cp/semantics.c:1980 ++#: cp/semantics.c:1977 + #, fuzzy + msgid "invalid use of `%D' as a default value for a template template-parameter" + msgstr "\"%#T\" no és un tipus vàlid per a un paràmetre constant de patró" + +-#: cp/semantics.c:1984 ++#: cp/semantics.c:1981 + #, fuzzy + msgid "invalid default argument for a template template parameter" + msgstr "\"%#T\" no és un tipus vàlid per a un paràmetre constant de patró" + +-#: cp/semantics.c:2019 ++#: cp/semantics.c:2016 + msgid "definition of `%#T' inside template parameter list" + msgstr "definició de \"%#T\" dintre d'una llista de paràmetres de patró" + +-#: cp/semantics.c:2030 ++#: cp/semantics.c:2027 + msgid "invalid definition of qualified type `%T'" + msgstr "definició invàlida del tipus qualificat \"%T\"" + +-#: cp/semantics.c:2045 ++#: cp/semantics.c:2042 + msgid "previous definition of `%#T'" + msgstr "definició prèvia de \"%#T\"" + +-#: cp/semantics.c:2249 ++#: cp/semantics.c:2246 + msgid "invalid base-class specification" + msgstr "especificació de classe base invàlida" + +-#: cp/semantics.c:2258 ++#: cp/semantics.c:2255 + msgid "base class `%T' has cv qualifiers" + msgstr "la classe base \"%T\" té qualificadors cv" + +-#: cp/semantics.c:2290 ++#: cp/semantics.c:2287 + msgid "multiple declarators in template declaration" + msgstr "múltiples declaradors en una declaració de patró" + +-#: cp/semantics.c:2301 ++#: cp/semantics.c:2298 + #, fuzzy + msgid "incomplete type `%T' used in nested name specifier" + msgstr "el tipus incomplet \"%T\" no es pot utilitzar per a nomenar un àmbit" + +-#: cp/semantics.c:2303 cp/typeck.c:1635 ++#: cp/semantics.c:2300 cp/typeck.c:1635 + msgid "`%D' is not a member of `%T'" + msgstr "\"%D\" no és un membre de \"%T\"" + +-#: cp/semantics.c:2306 ++#: cp/semantics.c:2303 + #, fuzzy + msgid "`%D' is not a member of `%D'" + msgstr "\"%D\" no és un membre de \"%T\"" + +-#: cp/semantics.c:2431 ++#: cp/semantics.c:2428 + msgid "template parameter `%D' of type `%T' is not allowed in an integral constant expression because it is not of integral or enumeration type" + msgstr "" + +-#: cp/semantics.c:2584 ++#: cp/semantics.c:2572 + #, fuzzy + msgid "`%D' cannot appear in a constant-expression" + msgstr "la grandària de la matriu \"%D\" no és una expressió constant integral" + +-#: cp/semantics.c:2593 ++#: cp/semantics.c:2580 + msgid "use of namespace `%D' as expression" + msgstr "ús de l'espai de noms \"%D\" com una expressió" + +-#: cp/semantics.c:2598 ++#: cp/semantics.c:2585 + msgid "use of class template `%T' as expression" + msgstr "ús de la plantilla de classe \"%T\" com una expressió" + + #. Ambiguous reference to base members. +-#: cp/semantics.c:2604 ++#: cp/semantics.c:2591 + msgid "request for member `%D' is ambiguous in multiple inheritance lattice" + msgstr "la petició pel membre \"%D\" és ambigua en la xarxa d'herència múltiple" + +-#: cp/semantics.c:2664 ++#: cp/semantics.c:2652 + #, c-format + msgid "use of %s from containing function" + msgstr "ús de %s des d'una funció contenidora" + +-#: cp/semantics.c:2667 ++#: cp/semantics.c:2655 + msgid " `%#D' declared here" + msgstr " \"%#D\" declarat aquí" + +-#: cp/semantics.c:2718 ++#: cp/semantics.c:2706 + #, c-format + msgid "type of `%E' is unknown" + msgstr "el tipus de \"%E\" és desconegut" +@@ -16958,44 +17033,44 @@ + msgid "`%V' qualifiers cannot be applied to `%T'" + msgstr "els qualificadors \"%V\" no es poden aplicar a \"%T\"" + +-#: cp/tree.c:1821 ++#: cp/tree.c:1829 + #, c-format + msgid "`%s' attribute can only be applied to Java class definitions" + msgstr "l'atribut \"%s\" només es pot aplicar a definicions de classes Java" + +-#: cp/tree.c:1850 ++#: cp/tree.c:1858 + #, c-format + msgid "`%s' attribute can only be applied to class definitions" + msgstr "l'atribut \"%s\" sol es pot aplicar a definicions de classe" + +-#: cp/tree.c:1856 ++#: cp/tree.c:1864 + #, c-format + msgid "`%s' is obsolete; g++ vtables are now COM-compatible by default" + msgstr "\"%s\" és obsolet; les vtables de g++ ara són compatibles amb COM per omissió" + +-#: cp/tree.c:1880 ++#: cp/tree.c:1888 + msgid "requested init_priority is not an integer constant" + msgstr "la init_priority sol·licitada no és una constant entera" + +-#: cp/tree.c:1901 ++#: cp/tree.c:1909 + #, c-format + msgid "can only use `%s' attribute on file-scope definitions of objects of class type" + msgstr "sol es pot usar l'atribut \"%s\" en definicions de rang de fitxer d'objectes de tipus class" + +-#: cp/tree.c:1909 ++#: cp/tree.c:1917 + msgid "requested init_priority is out of range" + msgstr "la init_priority sol·licitada està fora de rang" + +-#: cp/tree.c:1919 ++#: cp/tree.c:1927 + msgid "requested init_priority is reserved for internal use" + msgstr "la init_priority sol·licitada està reservada per a ús intern" + +-#: cp/tree.c:1929 ++#: cp/tree.c:1937 + #, c-format + msgid "`%s' attribute is not supported on this platform" + msgstr "l'atribut \"%s\" no té suport en aquesta plataforma" + +-#: cp/tree.c:2524 ++#: cp/tree.c:2534 + #, c-format + msgid "lang_* check: failed in %s, at %s:%d" + msgstr "revisió lang_*: va fallar en %s, en %s:%d" +@@ -17213,267 +17288,267 @@ + msgid "invalid use of a pointer to an incomplete type in pointer arithmetic" + msgstr "ús invàlid d'un punter a un tipus incomplet en aritmètica de punters" + +-#: cp/typeck.c:3582 ++#: cp/typeck.c:3600 + #, c-format + msgid "invalid use of '%E' to form a pointer-to-member-function. Use a qualified-id." + msgstr "" + +-#: cp/typeck.c:3588 ++#: cp/typeck.c:3606 + #, c-format + msgid "parenthesis around '%E' cannot be used to form a pointer-to-member-function" + msgstr "" + +-#: cp/typeck.c:3610 ++#: cp/typeck.c:3628 + msgid "taking address of temporary" + msgstr "prenent l'adreça del temporal" + +-#: cp/typeck.c:3845 ++#: cp/typeck.c:3863 + #, c-format + msgid "ISO C++ forbids %sing an enum" + msgstr "ISO C++ prohibeix %sing un enum" + +-#: cp/typeck.c:3856 ++#: cp/typeck.c:3874 + msgid "cannot %s a pointer to incomplete type `%T'" + msgstr "no es pot %s un punter a un tipus incomplet \"%T\"" + +-#: cp/typeck.c:3862 ++#: cp/typeck.c:3880 + msgid "ISO C++ forbids %sing a pointer of type `%T'" + msgstr "ISO C++ prohibeix %sing un punter de tipus \"%T\"" + +-#: cp/typeck.c:3887 ++#: cp/typeck.c:3905 + msgid "cast to non-reference type used as lvalue" + msgstr "s'usa la conversió a un tipus no referenciat com un lvalue" + +-#: cp/typeck.c:3921 ++#: cp/typeck.c:3939 + msgid "invalid use of `--' on bool variable `%D'" + msgstr "ús invàlid de \"--\" en la variable booleana \"%D\"" + + #. ARM $3.4 +-#: cp/typeck.c:3952 ++#: cp/typeck.c:3970 + msgid "ISO C++ forbids taking address of function `::main'" + msgstr "ISO C++ prohibeix prendre l'adreça de la funció \"::main\"" + + #. An expression like &memfn. +-#: cp/typeck.c:4027 ++#: cp/typeck.c:4045 + #, fuzzy + msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function. Say `&%T::%D'" + msgstr "ISO C++ prohibeix prendre l'adreça d'una funció membre no estàtica sense qualificar per a formar un punter a la funció membre. Com \"&%T::%D\"" + +-#: cp/typeck.c:4032 ++#: cp/typeck.c:4050 + msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say `&%T::%D'" + msgstr "ISO C++ prohibeix prendre l'adreça d'una funció membre limitada per a formar un punter a la funció membre. Com \"&%T::%D\"" + +-#: cp/typeck.c:4060 ++#: cp/typeck.c:4078 + msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression" + msgstr "ISO C++ prohibeix prendre l'adreça d'una conversió a una expressió no lvalue" + +-#: cp/typeck.c:4080 ++#: cp/typeck.c:4098 + msgid "unary `&'" + msgstr "" + +-#: cp/typeck.c:4113 ++#: cp/typeck.c:4131 + msgid "attempt to take address of bit-field structure member `%D'" + msgstr "" + +-#: cp/typeck.c:4227 ++#: cp/typeck.c:4245 + msgid "taking address of destructor" + msgstr "prenent l'adreça del destructor" + +-#: cp/typeck.c:4240 ++#: cp/typeck.c:4258 + msgid "taking address of bound pointer-to-member expression" + msgstr "prenent l'adreça de l'expressió limitada punter-a-membre" + +-#: cp/typeck.c:4248 ++#: cp/typeck.c:4266 + msgid "cannot create pointer to reference member `%D'" + msgstr "no es pot crear un punter al membre referència \"%D\"" + +-#: cp/typeck.c:4311 ++#: cp/typeck.c:4329 + msgid "cannot take the address of `this', which is an rvalue expression" + msgstr "no es pot prendre l'adreça de \"this\" que és una expressió rvalue" + +-#: cp/typeck.c:4330 ++#: cp/typeck.c:4348 + msgid "address requested for `%D', which is declared `register'" + msgstr "es va sol·licitar l'adreça de \"%D\", el qual es va declarar com \"register\"" + +-#: cp/typeck.c:4398 ++#: cp/typeck.c:4416 + #, fuzzy, c-format + msgid "%s expression list treated as compound expression" + msgstr "la llista d'inicialitzadors es tracta com una expressió compostada" + +-#: cp/typeck.c:4472 ++#: cp/typeck.c:4490 + #, fuzzy + msgid "%s from type `%T' to type `%T' casts away constness" + msgstr "static_cast del tipus \"%T\" al tipus \"%T\" proscriu la constància" + +-#: cp/typeck.c:4674 ++#: cp/typeck.c:4692 + msgid "invalid static_cast from type `%T' to type `%T'" + msgstr "static_cast invàlid del tipus \"%T\" al tipus \"%T\"" + +-#: cp/typeck.c:4714 ++#: cp/typeck.c:4732 + msgid "invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'" + msgstr "reinterpret_cast invàlid d'una expressió rvalue del tipus \"%T\" al tipus \"%T\"" + +-#: cp/typeck.c:4734 ++#: cp/typeck.c:4752 + msgid "reinterpret_cast from `%T' to `%T' loses precision" + msgstr "reinterpret_cast de \"%T\" a \"%T\" perd precisió" + +-#: cp/typeck.c:4753 ++#: cp/typeck.c:4771 + msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object" + msgstr "ISO C++ prohibeix la conversió entre entre punter a funció i punter a objecte" + +-#: cp/typeck.c:4759 ++#: cp/typeck.c:4777 + msgid "invalid reinterpret_cast from type `%T' to type `%T'" + msgstr "reinterpret_cast invàlid del tipus \"%T\" al tipus \"%T\"" + +-#: cp/typeck.c:4787 ++#: cp/typeck.c:4805 + msgid "invalid use of const_cast with type `%T', which is not a pointer, reference, nor a pointer-to-data-member type" + msgstr "ús invàlid de const_cast amb tipus \"%T\", que no és punter, referència, ni un tipus punter-a-dades-membres" + +-#: cp/typeck.c:4790 ++#: cp/typeck.c:4808 + msgid "invalid use of const_cast with type `%T', which is a pointer or reference to a function type" + msgstr "ús invàlid de const_cast amb tipus \"%T\", el qual és un punter o referència a un tipus de funció" + +-#: cp/typeck.c:4813 ++#: cp/typeck.c:4831 + msgid "invalid const_cast of an rvalue of type `%T' to type `%T'" + msgstr "const_cast invàlid d'un rvalue de tipus \"%T\" al tipus \"%T\"" + +-#: cp/typeck.c:4830 ++#: cp/typeck.c:4848 + msgid "invalid const_cast from type `%T' to type `%T'" + msgstr "const_cast invàlid del tipus \"%T\" al tipus \"%T\"" + +-#: cp/typeck.c:4870 cp/typeck.c:4875 ++#: cp/typeck.c:4888 cp/typeck.c:4893 + msgid "ISO C++ forbids casting to an array type `%T'" + msgstr "ISO C++ prohibeix la conversió a un tipus de matriu \"%T\"" + +-#: cp/typeck.c:4883 ++#: cp/typeck.c:4901 + msgid "invalid cast to function type `%T'" + msgstr "conversió invàlida al tipus de funció \"%T\"" + +-#: cp/typeck.c:4939 ++#: cp/typeck.c:4957 + msgid "cast from `%T' to `%T' discards qualifiers from pointer target type" + msgstr "la conversió de \"%T\" a \"%T\" descarta els qualificadors del tipus de la destinació del punter" + +-#: cp/typeck.c:4985 ++#: cp/typeck.c:5003 + msgid "cast from `%T' to `%T' increases required alignment of target type" + msgstr "la conversió de \"%T\" a \"%T\" incrementa l'alineació requerida del tipus de la destinació" + +-#: cp/typeck.c:5152 ++#: cp/typeck.c:5170 + msgid " in evaluation of `%Q(%#T, %#T)'" + msgstr " en l'avaluació de \"%Q(%#T, %#T)\"" + +-#: cp/typeck.c:5194 ++#: cp/typeck.c:5212 + msgid "ISO C++ forbids cast to non-reference type used as lvalue" + msgstr "ISO C++ prohibeix la conversió a un tipus no referent usat com lvalue" + +-#: cp/typeck.c:5267 ++#: cp/typeck.c:5285 + msgid "incompatible types in assignment of `%T' to `%T'" + msgstr "tipus incompatible en l'assignació de \"%T\" a \"%T\"" + +-#: cp/typeck.c:5274 ++#: cp/typeck.c:5292 + msgid "ISO C++ forbids assignment of arrays" + msgstr "ISO C++ prohibeix l'assignació de matrius" + +-#: cp/typeck.c:5374 ++#: cp/typeck.c:5392 + msgid " in pointer to member function conversion" + msgstr " en la conversió del punter a funció membre" + +-#: cp/typeck.c:5382 ++#: cp/typeck.c:5400 + msgid " in pointer to member conversion" + msgstr " en la conversió del punter a membre" + + #. This is a reinterpret cast, we choose to do nothing. +-#: cp/typeck.c:5392 cp/typeck.c:5407 ++#: cp/typeck.c:5410 cp/typeck.c:5425 + #, fuzzy + msgid "pointer to member cast via virtual base `%T'" + msgstr "punter a la conversió membre a través de la base virtual \"%T\" de \"%T\"" + +-#: cp/typeck.c:5410 ++#: cp/typeck.c:5428 + #, fuzzy + msgid "pointer to member conversion via virtual base `%T'" + msgstr "punter a la conversió membre a través de la base virtual \"%T\" de \"%T\"" + +-#: cp/typeck.c:5480 ++#: cp/typeck.c:5498 + msgid "invalid conversion to type `%T' from type `%T'" + msgstr "conversió invàlida del tipus \"%T\" a partir del tipus \"%T\"" + +-#: cp/typeck.c:5636 ++#: cp/typeck.c:5657 + msgid "passing NULL used for non-pointer %s %P of `%D'" + msgstr "passant NULL usat per al no punter %s %P de \"%D\"" + +-#: cp/typeck.c:5639 ++#: cp/typeck.c:5660 + msgid "%s to non-pointer type `%T' from NULL" + msgstr "%s al tipus \"%T\" que no és punter des de NULL" + +-#: cp/typeck.c:5647 ++#: cp/typeck.c:5668 + msgid "passing `%T' for %s %P of `%D'" + msgstr "passant \"%T\" per a %s %P de \"%D\"" + +-#: cp/typeck.c:5650 ++#: cp/typeck.c:5671 + msgid "%s to `%T' from `%T'" + msgstr "%s a \"%T\" des de \"%T\"" + +-#: cp/typeck.c:5660 ++#: cp/typeck.c:5681 + msgid "passing negative value `%E' for %s %P of `%D'" + msgstr "passant el valor negatiu `%E' per a %s %P de \"%D\"" + +-#: cp/typeck.c:5663 ++#: cp/typeck.c:5684 + msgid "%s of negative value `%E' to `%T'" + msgstr "%s de valor negatiu `%I' a \"%T\"" + +-#: cp/typeck.c:5751 ++#: cp/typeck.c:5772 + msgid "cannot convert `%T' to `%T' for argument `%P' to `%D'" + msgstr "no es pot convertir \"%T\" a \"%T\" per a l'argument `%P' per a \"%D\"" + +-#: cp/typeck.c:5754 ++#: cp/typeck.c:5775 + msgid "cannot convert `%T' to `%T' in %s" + msgstr "no es pot convertir \"%T\" a \"%T\" en %s" + +-#: cp/typeck.c:5831 cp/typeck.c:5833 ++#: cp/typeck.c:5852 cp/typeck.c:5854 + msgid "in passing argument %P of `%+D'" + msgstr "en el pas de l'argument %P de \"%+D\"" + +-#: cp/typeck.c:5940 ++#: cp/typeck.c:5961 + msgid "returning reference to temporary" + msgstr "retornant la referència al temporal" + +-#: cp/typeck.c:5947 ++#: cp/typeck.c:5968 + msgid "reference to non-lvalue returned" + msgstr "es va retornar una referència a un non-lvalue" + +-#: cp/typeck.c:5959 ++#: cp/typeck.c:5980 + msgid "reference to local variable `%D' returned" + msgstr "es va retornar una referència a la variable local \"%D\"" + +-#: cp/typeck.c:5962 ++#: cp/typeck.c:5983 + msgid "address of local variable `%D' returned" + msgstr "es va retornar l'adreça de la variable local \"%D\"" + +-#: cp/typeck.c:5992 ++#: cp/typeck.c:6013 + msgid "returning a value from a destructor" + msgstr "retornant un valor d'un destructor" + + #. If a return statement appears in a handler of the + #. function-try-block of a constructor, the program is ill-formed. +-#: cp/typeck.c:6000 ++#: cp/typeck.c:6021 + msgid "cannot return from a handler of a function-try-block of a constructor" + msgstr "no es pot retornar d'un gestor d'una function-try-block d'un constructor" + + #. You can't return a value from a constructor. +-#: cp/typeck.c:6003 ++#: cp/typeck.c:6024 + msgid "returning a value from a constructor" + msgstr "retornant un valor d'un constructor" + +-#: cp/typeck.c:6026 ++#: cp/typeck.c:6047 + #, fuzzy + msgid "return-statement with no value, in function returning '%T'" + msgstr "\"return\" sense valors, en una funció que retorna non-void" + +-#: cp/typeck.c:6043 ++#: cp/typeck.c:6064 + #, fuzzy + msgid "return-statement with a value, in function returning 'void'" + msgstr "\"return\" amb valor, en una funció que retorna void" + +-#: cp/typeck.c:6065 ++#: cp/typeck.c:6086 + msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)" + msgstr "\"operator new\" no deu regressar NULL a menys que es declari \"throw()\" (o -fcheck-new estigui en efecte)" + +@@ -17525,124 +17600,124 @@ + msgid "cannot initialize arrays using this syntax" + msgstr "no es poden inicialitzar matrius usant aquesta sintaxi" + +-#: cp/typeck2.c:545 ++#: cp/typeck2.c:535 + msgid "initializing array with parameter list" + msgstr "inicialitzant una matriu amb una llista de paràmetres" + +-#: cp/typeck2.c:600 ++#: cp/typeck2.c:590 + msgid "initializer for scalar variable requires one element" + msgstr "el inicialitzador per a una variable escalar requereix un element" + +-#: cp/typeck2.c:607 ++#: cp/typeck2.c:597 + msgid "braces around scalar initializer for `%T'" + msgstr "parèntesis al voltant del inicialitzador per a \"%T\"" + +-#: cp/typeck2.c:610 ++#: cp/typeck2.c:600 + msgid "ignoring extra initializers for `%T'" + msgstr "ignorant els inicialitzadors extra per a \"%T\"" + +-#: cp/typeck2.c:622 ++#: cp/typeck2.c:612 + msgid "variable-sized object of type `%T' may not be initialized" + msgstr "un objecte de grandària variable de tipus \"%T\" no pot ser inicialitzat" + +-#: cp/typeck2.c:632 ++#: cp/typeck2.c:622 + msgid "subobject of type `%T' must be initialized by constructor, not by `%E'" + msgstr "el subobjecte de tipus \"%T\" deu ser inicialitzat per un constructor, no per \"%E\"" + +-#: cp/typeck2.c:697 ++#: cp/typeck2.c:687 + msgid "aggregate has a partly bracketed initializer" + msgstr "l'agregat té un inicialitzador amb parèntesis parcials" + +-#: cp/typeck2.c:735 cp/typeck2.c:840 ++#: cp/typeck2.c:725 cp/typeck2.c:830 + msgid "non-trivial labeled initializers" + msgstr "inicialitzadors etiquetats com no trivials" + +-#: cp/typeck2.c:752 ++#: cp/typeck2.c:742 + msgid "non-empty initializer for array of empty elements" + msgstr "inicialitzador no-buit per a una matriu d'elements buits" + +-#: cp/typeck2.c:806 ++#: cp/typeck2.c:796 + msgid "initializer list for object of class with virtual base classes" + msgstr "llista d'inicialitzadors per a un objecte d'una classe amb classes base virtual" + +-#: cp/typeck2.c:812 ++#: cp/typeck2.c:802 + msgid "initializer list for object of class with base classes" + msgstr "llista d'inicialitzadors per a un objecte d'una classe amb classes base" + +-#: cp/typeck2.c:818 ++#: cp/typeck2.c:808 + msgid "initializer list for object using virtual functions" + msgstr "llista d'inicialitzadors per a un objecte que usa funcions virtuals" + +-#: cp/typeck2.c:880 cp/typeck2.c:896 ++#: cp/typeck2.c:870 cp/typeck2.c:886 + msgid "missing initializer for member `%D'" + msgstr "falta el inicialitzador pel membre \"%D\"" + +-#: cp/typeck2.c:885 ++#: cp/typeck2.c:875 + msgid "uninitialized const member `%D'" + msgstr "membre const \"%D\" sense inicialitzar" + +-#: cp/typeck2.c:887 ++#: cp/typeck2.c:877 + msgid "member `%D' with uninitialized const fields" + msgstr "membre \"%D\" amb camps const sense inicialitzar" + +-#: cp/typeck2.c:890 ++#: cp/typeck2.c:880 + msgid "member `%D' is uninitialized reference" + msgstr "el membre \"%D\" és una referència sense inicialitzar" + +-#: cp/typeck2.c:937 ++#: cp/typeck2.c:927 + msgid "index value instead of field name in union initializer" + msgstr "valor d'índex en lloc del nom del camp en el inicialitzador de union" + +-#: cp/typeck2.c:949 ++#: cp/typeck2.c:939 + msgid "no field `%D' in union being initialized" + msgstr "no existeix el camp \"%D\" en el union que s'està inicialitzant" + +-#: cp/typeck2.c:957 ++#: cp/typeck2.c:947 + msgid "union `%T' with no named members cannot be initialized" + msgstr "no es pot inicialitzar el union \"%T\" sense membres nomenats" + +-#: cp/typeck2.c:993 ++#: cp/typeck2.c:983 + msgid "excess elements in aggregate initializer" + msgstr "excés d'elements en el inicialitzador agregat" + +-#: cp/typeck2.c:1102 ++#: cp/typeck2.c:1092 + msgid "circular pointer delegation detected" + msgstr "es va detectar una delegació de punter circular" + +-#: cp/typeck2.c:1115 ++#: cp/typeck2.c:1105 + msgid "base operand of `->' has non-pointer type `%T'" + msgstr "l'operant base de \"->\" té el tipus \"%T\" que no és punter" + +-#: cp/typeck2.c:1139 ++#: cp/typeck2.c:1129 + msgid "result of `operator->()' yields non-pointer result" + msgstr "el resultat de \"operator->()\" produeix un resultat que no és punter" + +-#: cp/typeck2.c:1141 ++#: cp/typeck2.c:1131 + msgid "base operand of `->' is not a pointer" + msgstr "l'operant base de \"->\" no és un punter" + +-#: cp/typeck2.c:1164 ++#: cp/typeck2.c:1154 + msgid "`%E' cannot be used as a member pointer, since it is of type `%T'" + msgstr "no es pot usar \"%E\" com un punter membre, perquè és de tipus \"%T\"" + +-#: cp/typeck2.c:1172 ++#: cp/typeck2.c:1162 + msgid "cannot apply member pointer `%E' to `%E', which is of non-aggregate type `%T'" + msgstr "no es pot aplicar el punter a membre \"%E\" a \"%E\", el qual és del tipus no agregat \"%T\"" + +-#: cp/typeck2.c:1182 ++#: cp/typeck2.c:1172 + msgid "member type `%T::' incompatible with object type `%T'" + msgstr "el tipus de membre \"%T::\" és incompatible amb el tipus objecte \"%T\"" + +-#: cp/typeck2.c:1398 ++#: cp/typeck2.c:1388 + msgid "call to function `%D' which throws incomplete type `%#T'" + msgstr "cridada a la funció \"%D\" la qual llança el tipus incomplet \"%#T\"" + +-#: cp/typeck2.c:1401 ++#: cp/typeck2.c:1391 + msgid "call to function which throws incomplete type `%#T'" + msgstr "cridada a una funció la qual llança el tipus incomplet \"%#T\"" + + #. XXX Not i18n clean. +-#: cp/cp-tree.h:3756 ++#: cp/cp-tree.h:3775 + #, c-format + msgid "%s is deprecated, please see the documentation for details" + msgstr "%s és obsolet, per favor vegi la documentació per a més detalls" +@@ -19196,323 +19271,260 @@ + msgid "internal error - invalid Utf8 name" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse-scan.y:880 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:949 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1290 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1351 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1555 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1777 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1786 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1797 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1808 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1820 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1835 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1852 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1854 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1935 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2106 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2168 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2320 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2332 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2339 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2346 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2357 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2359 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2397 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2399 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2401 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2422 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2424 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2426 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2442 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2444 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2465 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2467 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2469 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2497 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2499 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2501 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2503 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2521 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2523 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2534 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2545 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2556 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2567 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2578 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2591 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2595 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2597 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2610 ++#: ../../gcc/java/parse-scan.y:880 ../../gcc/java/parse.y:949 ++#: ../../gcc/java/parse.y:1290 ../../gcc/java/parse.y:1351 ++#: ../../gcc/java/parse.y:1555 ../../gcc/java/parse.y:1777 ++#: ../../gcc/java/parse.y:1786 ../../gcc/java/parse.y:1797 ++#: ../../gcc/java/parse.y:1808 ../../gcc/java/parse.y:1820 ++#: ../../gcc/java/parse.y:1835 ../../gcc/java/parse.y:1852 ++#: ../../gcc/java/parse.y:1854 ../../gcc/java/parse.y:1935 ++#: ../../gcc/java/parse.y:2106 ../../gcc/java/parse.y:2168 ++#: ../../gcc/java/parse.y:2320 ../../gcc/java/parse.y:2332 ++#: ../../gcc/java/parse.y:2339 ../../gcc/java/parse.y:2346 ++#: ../../gcc/java/parse.y:2357 ../../gcc/java/parse.y:2359 ++#: ../../gcc/java/parse.y:2397 ../../gcc/java/parse.y:2399 ++#: ../../gcc/java/parse.y:2401 ../../gcc/java/parse.y:2422 ++#: ../../gcc/java/parse.y:2424 ../../gcc/java/parse.y:2426 ++#: ../../gcc/java/parse.y:2442 ../../gcc/java/parse.y:2444 ++#: ../../gcc/java/parse.y:2465 ../../gcc/java/parse.y:2467 ++#: ../../gcc/java/parse.y:2469 ../../gcc/java/parse.y:2497 ++#: ../../gcc/java/parse.y:2499 ../../gcc/java/parse.y:2501 ++#: ../../gcc/java/parse.y:2503 ../../gcc/java/parse.y:2521 ++#: ../../gcc/java/parse.y:2523 ../../gcc/java/parse.y:2534 ++#: ../../gcc/java/parse.y:2545 ../../gcc/java/parse.y:2556 ++#: ../../gcc/java/parse.y:2567 ../../gcc/java/parse.y:2578 ++#: ../../gcc/java/parse.y:2591 ../../gcc/java/parse.y:2595 ++#: ../../gcc/java/parse.y:2597 ../../gcc/java/parse.y:2610 + msgid "Missing term" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse-scan.y:882 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:721 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:759 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:784 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:970 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1325 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1531 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1533 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1762 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1788 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1799 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1810 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1822 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1837 ++#: ../../gcc/java/parse-scan.y:882 ../../gcc/java/parse.y:721 ++#: ../../gcc/java/parse.y:759 ../../gcc/java/parse.y:784 ++#: ../../gcc/java/parse.y:970 ../../gcc/java/parse.y:1325 ++#: ../../gcc/java/parse.y:1531 ../../gcc/java/parse.y:1533 ++#: ../../gcc/java/parse.y:1762 ../../gcc/java/parse.y:1788 ++#: ../../gcc/java/parse.y:1799 ../../gcc/java/parse.y:1810 ++#: ../../gcc/java/parse.y:1822 ../../gcc/java/parse.y:1837 + msgid "';' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:719 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:757 ++#: ../../gcc/java/parse.y:719 ../../gcc/java/parse.y:757 + msgid "Missing name" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:782 ++#: ../../gcc/java/parse.y:782 + msgid "'*' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:796 ++#: ../../gcc/java/parse.y:796 + msgid "Class or interface declaration expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:833 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:835 ++#: ../../gcc/java/parse.y:833 ../../gcc/java/parse.y:835 + msgid "Missing class name" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:838 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:842 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:850 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1010 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1271 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1273 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1597 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1848 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1880 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1942 ++#: ../../gcc/java/parse.y:838 ../../gcc/java/parse.y:842 ++#: ../../gcc/java/parse.y:850 ../../gcc/java/parse.y:1010 ++#: ../../gcc/java/parse.y:1271 ../../gcc/java/parse.y:1273 ++#: ../../gcc/java/parse.y:1597 ../../gcc/java/parse.y:1848 ++#: ../../gcc/java/parse.y:1880 ../../gcc/java/parse.y:1942 + msgid "'{' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:852 ++#: ../../gcc/java/parse.y:852 + msgid "Missing super class name" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:862 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:878 ++#: ../../gcc/java/parse.y:862 ../../gcc/java/parse.y:878 + msgid "Missing interface name" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:964 ++#: ../../gcc/java/parse.y:964 + msgid "Missing variable initializer" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:981 ++#: ../../gcc/java/parse.y:981 + msgid "Invalid declaration" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:984 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1069 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2143 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2165 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2169 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2204 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2281 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2291 ++#: ../../gcc/java/parse.y:984 ../../gcc/java/parse.y:1069 ++#: ../../gcc/java/parse.y:2143 ../../gcc/java/parse.y:2165 ++#: ../../gcc/java/parse.y:2169 ../../gcc/java/parse.y:2204 ++#: ../../gcc/java/parse.y:2281 ../../gcc/java/parse.y:2291 + msgid "']' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:988 ++#: ../../gcc/java/parse.y:988 + msgid "Unbalanced ']'" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1024 ++#: ../../gcc/java/parse.y:1024 + msgid "Invalid method declaration, method name required" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1029 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1034 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1039 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2026 ++#: ../../gcc/java/parse.y:1029 ../../gcc/java/parse.y:1034 ++#: ../../gcc/java/parse.y:1039 ../../gcc/java/parse.y:2026 + msgid "Identifier expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1044 ++#: ../../gcc/java/parse.y:1044 + msgid "Invalid method declaration, return type required" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1067 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1511 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1518 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1527 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1529 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1557 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1665 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1971 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2024 ++#: ../../gcc/java/parse.y:1067 ../../gcc/java/parse.y:1511 ++#: ../../gcc/java/parse.y:1518 ../../gcc/java/parse.y:1527 ++#: ../../gcc/java/parse.y:1529 ../../gcc/java/parse.y:1557 ++#: ../../gcc/java/parse.y:1665 ../../gcc/java/parse.y:1971 ++#: ../../gcc/java/parse.y:2024 + msgid "')' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1083 ++#: ../../gcc/java/parse.y:1083 + msgid "Missing formal parameter term" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1098 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1103 ++#: ../../gcc/java/parse.y:1098 ../../gcc/java/parse.y:1103 + msgid "Missing identifier" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1123 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1132 ++#: ../../gcc/java/parse.y:1123 ../../gcc/java/parse.y:1132 + msgid "Missing class type term" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1288 ++#: ../../gcc/java/parse.y:1288 + msgid "Invalid interface type" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1475 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1644 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1646 ++#: ../../gcc/java/parse.y:1475 ../../gcc/java/parse.y:1644 ++#: ../../gcc/java/parse.y:1646 + msgid "':' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1497 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1502 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1507 ++#: ../../gcc/java/parse.y:1497 ../../gcc/java/parse.y:1502 ++#: ../../gcc/java/parse.y:1507 + msgid "Invalid expression statement" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1525 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1553 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1593 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1661 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1729 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1850 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1928 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2018 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2020 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2028 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2264 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2266 ++#: ../../gcc/java/parse.y:1525 ../../gcc/java/parse.y:1553 ++#: ../../gcc/java/parse.y:1593 ../../gcc/java/parse.y:1661 ++#: ../../gcc/java/parse.y:1729 ../../gcc/java/parse.y:1850 ++#: ../../gcc/java/parse.y:1928 ../../gcc/java/parse.y:2018 ++#: ../../gcc/java/parse.y:2020 ../../gcc/java/parse.y:2028 ++#: ../../gcc/java/parse.y:2264 ../../gcc/java/parse.y:2266 + msgid "'(' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1595 ++#: ../../gcc/java/parse.y:1595 + msgid "Missing term or ')'" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1642 ++#: ../../gcc/java/parse.y:1642 + msgid "Missing or invalid constant expression" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1663 ++#: ../../gcc/java/parse.y:1663 + msgid "Missing term and ')' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1702 ++#: ../../gcc/java/parse.y:1702 + msgid "Invalid control expression" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1704 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1706 ++#: ../../gcc/java/parse.y:1704 ../../gcc/java/parse.y:1706 + msgid "Invalid update expression" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1731 ++#: ../../gcc/java/parse.y:1731 + msgid "Invalid init statement" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1931 ++#: ../../gcc/java/parse.y:1931 + msgid "Missing term or ')' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1973 ++#: ../../gcc/java/parse.y:1973 + msgid "'class' or 'this' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1975 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1977 ++#: ../../gcc/java/parse.y:1975 ../../gcc/java/parse.y:1977 + msgid "'class' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2022 ++#: ../../gcc/java/parse.y:2022 + msgid "')' or term expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2141 ++#: ../../gcc/java/parse.y:2141 + msgid "'[' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2219 ++#: ../../gcc/java/parse.y:2219 + msgid "Field expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2276 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2286 ++#: ../../gcc/java/parse.y:2276 ../../gcc/java/parse.y:2286 + msgid "Missing term and ']' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2390 ++#: ../../gcc/java/parse.y:2390 + msgid "']' expected, invalid type expression" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2393 ++#: ../../gcc/java/parse.y:2393 + msgid "Invalid type expression" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2505 ++#: ../../gcc/java/parse.y:2505 + msgid "Invalid reference type" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2977 ++#: ../../gcc/java/parse.y:2977 + msgid "Constructor invocation must be first thing in a constructor" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2979 ++#: ../../gcc/java/parse.y:2979 + msgid "Only constructors can invoke constructors" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2987 ++#: ../../gcc/java/parse.y:2987 + #, c-format + msgid ": `%s' JDK1.1(TM) feature" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:3046 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:3048 ++#: ../../gcc/java/parse.y:3046 ../../gcc/java/parse.y:3048 + #, c-format + msgid "" + "%s.\n" + "%s" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:6909 ++#: ../../gcc/java/parse.y:6909 + #, c-format + msgid "malformed .zip archive in CLASSPATH: %s" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:6980 ++#: ../../gcc/java/parse.y:6980 + #, c-format + msgid "Can't find default package `%s'. Check the CLASSPATH environment variable and the access to the archives" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12193 ++#: ../../gcc/java/parse.y:12193 + #, c-format + msgid "missing static field `%s'" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12198 ++#: ../../gcc/java/parse.y:12198 + #, c-format + msgid "not a static field `%s'" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12241 ++#: ../../gcc/java/parse.y:12241 + #, c-format + msgid "No case for %s" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:13173 ++#: ../../gcc/java/parse.y:13173 + #, c-format + msgid "unregistered operator %s" + msgstr "" +@@ -19854,1851 +19866,1509 @@ + msgid "[super ...] must appear in a method context" + msgstr "" + +-#: objc/objc-parse.y:2701 ++#: objc/objc-parse.y:2700 + msgid "`@end' must appear in an implementation context" + msgstr "" + +-#: objc/objc-parse.y:2914 ++#: objc/objc-parse.y:2913 + msgid "method definition not in class context" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:23 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:21 + #, fuzzy + msgid "Display this information" + msgstr " --help Mostra aquesta informació\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:29 +-msgid "--param =\tSet paramter to value. See below for a complete list of parameters" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:27 ++msgid "--param =\tSet parameter to value. See below for a complete list of parameters" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:38 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:36 + msgid "-A=\tAssert the to . Putting '-' before disables the to " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:41 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:39 + #, fuzzy + msgid "Do not discard comments" + msgstr "No desactivar registres d'espai" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:44 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:42 + msgid "Do not discard comments in macro expansions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:47 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:45 + msgid "-D[=]\tDefine a with as its value. If just is given, is taken to be 1" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:53 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:51 + #, fuzzy + msgid "-G\tPut global and static data smaller than bytes into a special section (on some targets)" + msgstr "" + " -G Col·locar les dades globals i estàtics més petits que \n" + " octets en una secció especial (en alguns objectius)\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:56 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:54 + #, fuzzy + msgid "Print the name of header files as they are used" + msgstr "Mostrar els noms de les unitats de programa mentre són compilades" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:65 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:57 ++msgid "-I \tAdd to the end of the main include path. -I- gives more include path control; see info documentation" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:60 ++#, fuzzy ++msgid "Generate make dependencies" ++msgstr "dependències dinàmiques.\n" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:63 + #, fuzzy + msgid "Generate make dependencies and compile" + msgstr "Generar codi little endian" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:74 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:66 ++msgid "-MF \tWrite dependency output to the given file" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:69 + msgid "Treat missing header files as generated files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:80 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:72 ++msgid "Like -M but ignore system header files" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:75 + msgid "Like -MD but ignore system header files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:89 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:78 ++#, fuzzy ++msgid "Generate phony targets for all headers" ++msgstr "Generar codi com de Intel" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:81 + msgid "-MQ \tAdd a MAKE-quoted target" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:95 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:84 ++msgid "-MT \tAdd an unquoted target" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:87 + #, fuzzy + msgid "-O\tSet optimization level to " + msgstr " -O[nombre] Establir el nivell d'optimització a [nombre]\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:98 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:90 + #, fuzzy + msgid "Optimize for space rather than speed" + msgstr " -Os Optimitzar per a espai en lloc de velocitat\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:101 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:93 + #, fuzzy + msgid "Do not generate #line directives" + msgstr "No generar directives .size" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:104 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:96 + msgid "-U\tUndefine " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:107 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:99 + msgid "This switch is deprecated; use -Wextra instead" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:113 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:105 + msgid "Warn about returning structures, unions or arrays" + msgstr "Avisar sobre la devolució d'estructures, unions o matrius" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:119 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:108 ++msgid "Enable most warning messages" ++msgstr "Activar gairebé tots els missatges d'avís" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:111 + msgid "Warn about casting functions to incompatible types" + msgstr "Avisar per funcions de conversió a tipus incompatibles" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:122 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:114 + msgid "Warn about pointer casts which increase alignment" + msgstr "Avisar sobre conversió de punters que incrementi l'alineació" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:125 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:117 + msgid "Warn about casts which discard qualifiers" + msgstr "Avisar sobre conversions que descarten calificators" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:128 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:120 + #, fuzzy + msgid "Warn about subscripts whose type is \"char\"" + msgstr "Avisar sobre subindicis el tipus del qual és \"char\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:137 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:123 ++msgid "Warn about possibly nested block comments, and C++ comments spanning more than one physical line" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:126 ++msgid "Synonym for -Wcomment" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:129 + msgid "Warn about possibly confusing type conversions" + msgstr "Avisar sobre la possibilitat de conversió de tipus confuses" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:140 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:132 + #, fuzzy + msgid "Warn when all constructors and destructors are private" + msgstr "No avisar quan tots els ctors/dtors són privats" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:143 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:135 + #, fuzzy + msgid "Warn when a declaration is found after a statement" + msgstr "Avisar quan una declaració no especifiqui un tipus" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:146 +-msgid "Warn if deprecated class, method, or field is used" +-msgstr "" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:138 ++#, fuzzy ++msgid "Warn about deprecated compiler features" ++msgstr "No anunciar característiques obsoletes del compilador" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:149 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:141 + msgid "Warn about uses of __attribute__((deprecated)) declarations" + msgstr "Avisar sobre el ùs de declaracions __attribute__((deprecated))" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:152 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:144 + msgid "Warn when an optimization pass is disabled" + msgstr "Avisar quan es va desactivar un pas d'optimització" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:155 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:147 + #, fuzzy + msgid "Warn about compile-time integer division by zero" + msgstr "No avisar sobre la divisió entera per zero en temps de compilació" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:158 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:150 + msgid "Warn about violations of Effective C++ style rules" + msgstr "Avisar violacions de regles d'estil de Effective C++" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:161 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:153 + msgid "Warn about stray tokens after #elif and #endif" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:164 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:156 + msgid "Treat all warnings as errors" + msgstr "Tractar tots els avisos com errors" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:167 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:159 + #, fuzzy + msgid "Make implicit function declarations an error" + msgstr "Avisar sobre la declaració implícita de funcions" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:170 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:162 + msgid "Print extra (possibly unwanted) warnings" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:173 +-msgid "Warn if deprecated empty statements are found" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:176 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:165 + #, fuzzy + msgid "Warn if testing floating point numbers for equality" + msgstr "Avisar sobre l'equitat de proves de nombres de coma flotant" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:179 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:168 + #, fuzzy + msgid "Warn about printf/scanf/strftime/strfmon format string anomalies" + msgstr "Avisar sobre anomalies de format de printf/scanf/strftime/strfmon" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:182 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:171 + #, fuzzy + msgid "Warn if passing too many arguments to a function for its format string" + msgstr "massa arguments per a la funció \"va_start\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:185 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:174 + #, fuzzy + msgid "Warn about format strings that are not literals" + msgstr "Avisar sobre l'ús de literals multicaràcters" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:188 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:177 + msgid "Warn about possible security problems with format functions" + msgstr "Avisar sobre possibles problemes de seguretat amb funcions de format" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:191 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:180 + #, fuzzy + msgid "Warn about strftime formats yielding 2-digit years" + msgstr "No avisar sobre formats de strftime que produeixen dos dígits per a l'any" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:200 +-#, fuzzy +-msgid "Enable warnings about inter-procedural problems" +-msgstr "Desactivar els avisos sobre problemes interprocedurals" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:206 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:192 + msgid "Warn about implicit function declarations" + msgstr "Avisar sobre la declaració implícita de funcions" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:209 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:195 + msgid "Warn when a declaration does not specify a type" + msgstr "Avisar quan una declaració no especifiqui un tipus" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:215 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:198 ++msgid "Deprecated. This switch has no effect." ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:201 + msgid "Warn about variables which are initialized to themselves." + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:218 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:204 + msgid "Warn when an inlined function cannot be inlined" + msgstr "Avisar quan una funció inline no pot ser inline" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:221 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:207 + #, fuzzy + msgid "Warn about invalid uses of the \"offsetof\" macro" + msgstr "Avisar sobre l'ús de la directiva #import" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:224 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:210 + msgid "Warn about PCH files that are found but not used" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:227 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:213 + #, fuzzy + msgid "-Wlarger-than-\tWarn if an object is larger than bytes" + msgstr " -Wlarger-than- Avisar si un objecte és més gran que octets\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:230 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:216 + #, fuzzy + msgid "Do not warn about using \"long long\" when -pedantic" + msgstr "No avisar sobre l'ús de \"long long\" quan s'usi -pedantic" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:233 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:219 + #, fuzzy + msgid "Warn about suspicious declarations of \"main\"" + msgstr "Avisar sobre declaracions sospitoses de main" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:236 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:222 + msgid "Warn about possibly missing braces around initializers" + msgstr "Avisar sobre possibles claus faltantes al voltant d'assignadorsº" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:239 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:225 + #, fuzzy + msgid "Warn about global functions without previous declarations" + msgstr "Avisar sobre funcions globals sense declaracions prèvies" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:242 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:228 + msgid "Warn about functions which might be candidates for format attributes" + msgstr "Avisar per funcions que podrien ser candidates per a atributs de format" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:245 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:231 + #, fuzzy + msgid "Warn about functions which might be candidates for __attribute__((noreturn))" + msgstr "Avisar sobre funcions que podrien ser candidates per a l'atribut noreturn" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:248 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:234 + #, fuzzy + msgid "Warn about global functions without prototypes" + msgstr "Avisar sobre funcions globals sense prototips" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:251 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:237 + #, fuzzy + msgid "Warn about use of multi-character character constants" + msgstr "Avisar sobre l'ús de literals multicaràcters" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:254 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:240 + #, fuzzy + msgid "Warn about \"extern\" declarations not at file scope" + msgstr "Avisar sobre externs que no estan en el nivell de l'abast del fitxer" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:257 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:243 + #, fuzzy + msgid "Warn when non-templatized friend functions are declared within a template" + msgstr "No avisar quan les funcions friend sense patró són declarades dintre d'un patró" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:260 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:246 + #, fuzzy + msgid "Warn about non-virtual destructors" + msgstr "Avisar sobre destructors no virtuals" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:266 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:252 + #, fuzzy + msgid "Warn if a C-style cast is used in a program" + msgstr "Avisar quan s'usi una conversió d'estil C en un programa" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:269 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:255 + #, fuzzy + msgid "Warn if an old-style parameter definition is used" + msgstr "Avisar quan no s'usi un paràmetre d'una funció" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:272 +-msgid "Warn if .class files are out of date" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:275 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:258 + msgid "Warn about overloaded virtual function names" + msgstr "Avisar sobre noms de funcions virtual sobrecarregades" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:278 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:261 + msgid "Warn when the packed attribute has no effect on struct layout" + msgstr "Avisar quan l'atribut packed no té efecte en la disposició d'un struct" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:281 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:264 + #, fuzzy + msgid "Warn when padding is required to align structure members" + msgstr "Avisar quan es requereix farcit per a alinear als membres d'un struct" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:284 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:267 + #, fuzzy + msgid "Warn about possibly missing parentheses" + msgstr "Avisar sobre possibles parèntesis faltantes" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:287 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:270 + #, fuzzy + msgid "Warn when converting the type of pointers to member functions" + msgstr "avisar quan el tipus converteix punters a funcions membre" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:290 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:273 + msgid "Warn about function pointer arithmetic" + msgstr "Avisar sobre l'aritmètica de punters de funcions" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:293 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:276 + #, fuzzy + msgid "Warn if inherited methods are unimplemented" + msgstr "Avisar si es detecten comentaris niats" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:296 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:279 + msgid "Warn about multiple declarations of the same object" + msgstr "Avisar sobre declaracions múltiples del mateix objecte" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:299 +-msgid "Warn if modifiers are specified when not necessary" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:302 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:282 + msgid "Warn when the compiler reorders code" + msgstr "Avisar quan el compilador reordeni codi" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:305 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:285 + #, fuzzy + msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)" + msgstr "Avisar quan el tipus de devolució per defecte d'una funció canvia a int" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:308 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:288 + msgid "Warn if a selector has multiple methods" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:311 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:291 + msgid "Warn about possible violations of sequence point rules" + msgstr "Avisar sobre possibles violacions a les regles de seqüència de punt" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:314 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:294 + msgid "Warn when one local variable shadows another" + msgstr "Avisar quan una variable local enfosque una altra" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:317 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:297 + #, fuzzy + msgid "Warn about signed-unsigned comparisons" + msgstr "Avisar sobre comparances signed/unsigned" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:320 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:300 + msgid "Warn when overload promotes from unsigned to signed" + msgstr "Avisar quan la sobrecàrrega promogui de unsigned a signed" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:323 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:303 + #, fuzzy + msgid "Warn about code which might break strict aliasing rules" + msgstr "Avisar sobre codi que pugui trencar les regles estrictes d'aliessis" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:326 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:306 + #, fuzzy + msgid "Warn about unprototyped function declarations" + msgstr "Avisar sobre declaracions de funció sense prototip" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:329 +-msgid "Warn about constructs with surprising meanings" +-msgstr "Avisar sobre constructors amb significats sorprenents" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:332 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:309 + msgid "Warn about enumerated switches, with no default, missing a case" + msgstr "Avisar sobre interruptors enumerats, sense valor per defecte, que manquin d'un casi" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:335 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:312 + #, fuzzy + msgid "Warn about enumerated switches missing a \"default:\" statement" + msgstr "Avisar sobre interruptors enumerats que manquin d'un casi per defecte" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:338 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:315 + msgid "Warn about all enumerated switches missing a specific case" + msgstr "Avisar sobre tots els interruptors enumerats que manquin d'un casi específic" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:341 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:318 + msgid "Warn when synthesis behavior differs from Cfront" + msgstr "Avisar quan el comportament de síntesi difereixi de Cfront" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:344 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:321 + msgid "Do not suppress warnings from system headers" + msgstr "No suprimir els avisos dels encapçalats del sistema" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:347 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:324 + #, fuzzy + msgid "Warn about features not present in traditional C" + msgstr "es suggereix no usar #elif en C tradicional" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:356 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:327 ++msgid "Warn if trigraphs are encountered that might affect the meaning of the program" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:333 + #, fuzzy + msgid "Warn if an undefined macro is used in an #if directive" + msgstr "directiva # no definida o invàlida" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:359 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:336 + msgid "Warn about uninitialized automatic variables" + msgstr "Avisar sobre variables automàtiques sense iniciar" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:362 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:339 + msgid "Warn about unrecognized pragmas" + msgstr "Avisar sobre pragmas no reconeguts" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:365 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:342 + msgid "Warn about code that will never be executed" + msgstr "Avisar sobre codi que mai s'executarà" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:368 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:345 + msgid "Enable all -Wunused- warnings" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:371 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:348 + msgid "Warn when a function is unused" + msgstr "Avisar quan no s'usi una funció" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:374 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:351 + msgid "Warn when a label is unused" + msgstr "Avisar quan no s'usi una etiqueta" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:377 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:354 + msgid "Warn about macros defined in the main file that are not used" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:380 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:357 + msgid "Warn when a function parameter is unused" + msgstr "Avisar quan no s'usi un paràmetre d'una funció" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:383 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:360 + msgid "Warn when an expression value is unused" + msgstr "Avisar quan no s'usi un valor d'una expressió" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:386 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:363 + msgid "Warn when a variable is unused" + msgstr "Avisar quan no s'usi una variable" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:389 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:366 + msgid "Give strings the type \"array of char\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:392 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:369 + msgid "A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:395 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:372 + #, fuzzy + msgid "-aux-info \tEmit declaration information into " + msgstr " -aux-info Emetre la informació de declaracions en el \n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:407 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:384 + #, fuzzy + msgid "-d\tEnable dumps from specific passes of the compiler" + msgstr " -d[lletres] Activa els bolcats des de passos específics del compilador\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:410 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:387 + #, fuzzy + msgid "-dumpbase \tSet the file basename to be used for dumps" + msgstr " -dumpbase Nom base a usar per als bolcats des de passos específics\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:413 +-msgid "--CLASSPATH\tDeprecated; use --classpath instead" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:425 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:399 + #, fuzzy + msgid "Enforce class member access control semantics" + msgstr "No obeir les semàntiques de control d'accés" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:428 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:402 + msgid "Align the start of functions" + msgstr "Alinear l'inici de les funcions" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:434 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:408 + msgid "Align labels which are only reached by jumping" + msgstr "Alinear les etiquetes que solament s'arriben a saltant" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:440 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:414 + msgid "Align all labels" + msgstr "Alinear totes les etiquetes" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:446 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:420 + msgid "Align the start of loops" + msgstr "Alinear l'inici dels cicles" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:455 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:429 + msgid "Change when template instances are emitted" + msgstr "Canviar quan s'emetin les instàncies del patró" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:458 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:432 + #, fuzzy + msgid "Specify that arguments may alias each other and globals" + msgstr "Especifica que els arguments poden ser alies de cada altre i dels globals" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:461 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:435 + msgid "Assume arguments may alias globals but not each other" + msgstr "Assumir que els arguments poden ser alies de globals però no de cada altre" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:464 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:438 + #, fuzzy + msgid "Assume arguments alias neither each other nor globals" + msgstr "Assumir que els arguments no poden ser alies de globals o de cada altre" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:467 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:441 + #, fuzzy + msgid "Recognize the \"asm\" keyword" + msgstr "No reconèixer la paraula clau \"asm\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:479 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:444 + #, fuzzy + msgid "Generate unwind tables that are exact at each instruction boundary" + msgstr "Generar matrius de desembolico exactament en cada límit d'instrucció" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:482 +-#, fuzzy +-msgid "Do not treat local variables and COMMON blocks as if they were named in SAVE statements" +-msgstr "Tractar les variables locals i els blocs COMMON com si fossin nomenats en declaracions SAVE" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:485 +-#, fuzzy +-msgid "Backslashes in character and hollerith constants are special (not C-style)" +-msgstr "Les barres invertides en constants de caràcter/hollerith no són especials (estil C)" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:488 +-msgid "Delete libU77 intrinsics with bad interfaces" +-msgstr "Esborrar els intrínsecs libU77 amb interfícies errònies" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:491 +-msgid "Disable libU77 intrinsics with bad interfaces" +-msgstr "Desactivar els intrínsecs libU77 amb interfícies errònies" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:494 +-#, fuzzy +-msgid "Enable libU77 intrinsics with bad interfaces" +-msgstr "Desactivar els intrínsecs libU77 amb interfícies errònies" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:497 +-msgid "Hide libU77 intrinsics with bad interfaces" +-msgstr "Amagar els intrínsecs libU77 amb interfícies errònies" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:500 +-msgid "--bootclasspath=\tReplace system path" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:503 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:447 + msgid "Generate code to check bounds before indexing arrays" + msgstr "Generar codi per a revisar els límits abans de matrius" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:506 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:450 + #, fuzzy + msgid "Replace add, compare, branch with branch on count register" + msgstr "Reemplaçar add,compare,branch per branch en el compte de registres" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:509 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:453 + msgid "Use profiling information for branch probabilities" + msgstr "Usar la informació d'anàlisi de perfil per a les probabilitats de ramificació" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:512 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:456 + msgid "Perform branch target load optimization before prologue / epilogue threading" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:515 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:459 + msgid "Perform branch target load optimization after prologue / epilogue threading" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:518 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:462 + #, fuzzy + msgid "Recognize built-in functions" + msgstr "No reconèixer cap funció interna" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:524 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:468 + #, fuzzy + msgid "-fcall-saved-\tMark as being preserved across functions" + msgstr " -fcall-saved- Marca el com preservat entre funcions\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:527 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:471 + #, fuzzy + msgid "-fcall-used-\tMark as being corrupted by function calls" + msgstr " -fcall-used- Marca el com corrupte per a cridades de funció\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:530 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:474 + #, fuzzy + msgid "Save registers around function calls" + msgstr "Permetre guardar registres al voltant de cridades de funció" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:533 +-msgid "Program written in strict mixed-case" +-msgstr "Programa escrit estrictament amb majúscules i minúscules barrejades" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:536 +-msgid "Compile as if program written in lowercase" +-msgstr "Compilar com si el programa estigués escrit en minúscules" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:539 +-#, fuzzy +-msgid "Preserve case used in program" +-msgstr "Preservar tot el lletrejo (majúscules/minúscules) usat en el programa" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:542 +-msgid "Program written in lowercase" +-msgstr "Programa escrit en minúscules" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:545 +-msgid "Program written in uppercase" +-msgstr "Programa escrit en majúscules" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:548 +-msgid "Compile as if program written in uppercase" +-msgstr "Compilar com si el programa estigués escrit en majúscules" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:551 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:477 + msgid "Check the return value of new" + msgstr "Revisar el valor de retorn de new" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:557 +-msgid "--classpath=\tSet class path" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:560 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:480 + msgid "Do not put uninitialized globals in the common section" + msgstr "No posar globals sense iniciar en la secció comuna" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:566 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:483 + #, fuzzy + msgid "Allow the arguments of the '?' operator to have different types" + msgstr "els operants de ?: tenen tipus diferents" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:569 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:486 + #, fuzzy + msgid "Reduce the size of object files" + msgstr "Reduir la grandària dels fitxers objecte" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:572 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:489 + #, fuzzy + msgid "Make string literals \"const char[]\" not \"char[]\"" + msgstr "Fer que les cadenes literals siguin \"char[]\" en lloc de \"const char[]\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:575 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:492 + msgid "-fconst-string-class=\tUse class for constant strings" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:578 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:495 + #, fuzzy + msgid "Perform a register copy-propagation optimization pass" + msgstr "Fer el pas d'optimització de còpia-propagació de registres" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:581 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:498 + msgid "Perform cross-jumping optimization" + msgstr "Realitzar optimitzacions de salts creuats" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:584 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:501 + msgid "When running CSE, follow jumps to their targets" + msgstr "Quan s'estigui executant CSE, seguir als salts als seus objectius" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:587 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:504 + msgid "When running CSE, follow conditional jumps" + msgstr "Quan s'estigui executant CSE, seguir als salts condicionals" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:590 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:507 + #, fuzzy + msgid "Place data items into their own section" + msgstr "col·locar els elements de dades en la seva pròpia secció" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:593 +-msgid "Emit special debugging information for COMMON and EQUIVALENCE (disabled)" +-msgstr "Emetre informació especial de depuració per a COMMON i EQUIVALENCE (desactivat)" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:596 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:510 + #, fuzzy + msgid "Inline member functions by default" + msgstr "No fer inline per omissió a les funcions membre" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:599 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:513 + msgid "Defer popping functions args from stack until later" + msgstr "Diferir l'extracció d'arguments de funcions de la pila fins més tard" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:602 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:516 + msgid "Attempt to fill delay slots of branch instructions" + msgstr "Intentar emplenar les ranures de retard de les instruccions de ramificació" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:605 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:519 + msgid "Delete useless null pointer checks" + msgstr "Esborrar les revisions de punters nuls sense ús" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:608 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:522 + #, fuzzy + msgid "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source location at the beginning of line-wrapped diagnostics" + msgstr " -fdiagnostics-show-location=[once | every-line] Indica que tan seguit es deu emetre la informació d'ubicació del codi, com prefix, a l'inici dels diagnòstics quan està activat el cort de línia\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:611 +-#, fuzzy +-msgid "Allow '$' in symbol names" +-msgstr "Permetre $ en els noms de símbols" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:614 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:525 + #, fuzzy + msgid "Permit '$' as an identifier character" + msgstr "el format és una cadena de caràcter ampla" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:620 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:528 ++msgid "-fdump-\tDump various compiler internals to a file" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:531 + msgid "Suppress output of instruction numbers and line number notes in debugging dumps" + msgstr "Suprimir la sortida de notes de nombres d'instrucció i nombres de línia en els bolcats de depuració" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:626 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:537 + msgid "Perform DWARF2 duplicate elimination" + msgstr "Realitzar l'eliminació de DWARF2 duplicats" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:629 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:632 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:540 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:543 + msgid "Perform unused type elimination in debug info" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:641 +-msgid "Have front end emulate COMPLEX arithmetic to avoid bugs" +-msgstr "Fa que el front emuli aritmètica COMPLEX per a evitar errors" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:644 +-msgid "--encoding=\tChoose input encoding (defaults from your locale)" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:647 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:546 + #, fuzzy + msgid "Generate code to check exception specifications" + msgstr "No generar codi per a revisar excepcions d'especificacions" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:653 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:552 + msgid "Enable exception handling" + msgstr "Activar el maneig d'excepcions" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:656 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:555 + msgid "-fexec-charset=\tConvert all strings and character constants to character set " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:659 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:558 + msgid "Perform a number of minor, expensive optimizations" + msgstr "Realitzar un nombre menor d'optimitzacions costoses" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:668 +-#, fuzzy +-msgid "f2c-compatible code can be generated" +-msgstr "No es necessita generar codi compatible amb f2c" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:671 +-msgid "Delete non-FORTRAN-77 intrinsics f2c supports" +-msgstr "Esborrar els intrínsecs de FORTRAN que no és 77 que f2c suporta" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:674 +-msgid "Disable non-FORTRAN-77 intrinsics f2c supports" +-msgstr "Desactivar els intrínsecs de FORTRAN que no és 77 que f2c suporta" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:677 +-#, fuzzy +-msgid "Enable non-FORTRAN-77 intrinsics f2c supports" +-msgstr "Desactivar els intrínsecs de FORTRAN que no és 77 que f2c suporta" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:680 +-msgid "Hide non-FORTRAN-77 intrinsics f2c supports" +-msgstr "Amagar els intrínsecs de FORTRAN que no és 77 que f2c suporta" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:683 +-#, fuzzy +-msgid "Unsupported; generate libf2c-calling code" +-msgstr "Sense suport; no genera codi de cridada a libf2c" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:686 +-msgid "Program is written in typical FORTRAN 66 dialect" +-msgstr "El programa està escrit en el dialecte típic FORTRAN 66" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:689 +-#, fuzzy +-msgid "Program is written in typical Unix-f77 dialect" +-msgstr "El programa està escrit en el dialecte típic Unix f77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:692 +-msgid "Program is written in Fortran-90-ish dialect" +-msgstr "El programa en un dialecte proper a Fortran-90" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:695 +-msgid "Delete non-FORTRAN-77 intrinsics F90 supports" +-msgstr "Esborrar els intrínsecs de FORTRAN que no és 77 que F90 suporta" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:698 +-msgid "Disable non-FORTRAN-77 intrinsics F90 supports" +-msgstr "Desactivar els intrínsecs de FORTRAN que no és 77 que F90 suporta" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:701 +-#, fuzzy +-msgid "Enable non-FORTRAN-77 intrinsics F90 supports" +-msgstr "Desactivar els intrínsecs de FORTRAN que no és 77 que F90 suporta" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:704 +-msgid "Hide non-FORTRAN-77 intrinsics F90 supports" +-msgstr "Amagar els intrínsecs de FORTRAN que no és 77 que F90 suporta" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:716 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:567 + msgid "Assume no NaNs or infinities are generated" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:719 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:570 + #, fuzzy + msgid "-ffixed-\tMark as being unavailable to the compiler" + msgstr " -ffixed- Marca el com no disponible per al compilador\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:725 +-#, fuzzy +-msgid "ffixed-line-length-\tSet the maximum line length to " +-msgstr " -finline-limit= Limita la grandària de funcions inline a \n" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:728 +-#, fuzzy +-msgid "Unsupported; affects code generation of arrays" +-msgstr "Sense suport; afecta la generació de codi de les matrius" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:731 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:579 + msgid "Do not store floats in registers" + msgstr "No guardar floats en els registres" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:734 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:582 + #, fuzzy + msgid "Scope of for-init-statement variables is local to the loop" + msgstr "L'àmbit de les variables de la declaració d'inici de for s'estén cap a fora" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:737 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:585 + #, fuzzy + msgid "Copy memory address constants into registers before use" + msgstr "Copiar les constants d'adreces de memòria en registres abans d'usar-los" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:740 +-msgid "Always check for non gcj generated classes archives" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:743 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:588 + #, fuzzy + msgid "Copy memory operands into registers before use" + msgstr "Copiar els operants de memòria en registres abans d'usar-los" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:746 +-msgid "Generate code to check subscript and substring bounds" +-msgstr "Generar codi per a revisar els límits de subíndicis i subcadenes" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:749 +-msgid "Program is written in Fortran-90-ish free form" +-msgstr "El programa està escrit en una forma lliure propera a Fortran-90" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:752 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:591 + #, fuzzy + msgid "Do not assume that standard C libraries and \"main\" exist" + msgstr "Assumir que podrien no existir les biblioteques estàndard i main" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:755 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:594 + msgid "Allow function addresses to be held in registers" + msgstr "Permetre que les adreces de les funcions es conserven en registres" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:758 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:597 + #, fuzzy + msgid "Place each function into its own section" + msgstr "col·locar cada funció en la seva pròpia secció" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:761 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:600 + #, fuzzy + msgid "Perform global common subexpression elimination" + msgstr "Realitzar l'eliminació de subexpressions comuns globals" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:764 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:603 + #, fuzzy + msgid "Perform redundant load after store elimination in global common subexpression elimination" + msgstr "Realitzar el moviment de càrrega millorada durant l'eliminació de subexpressions globals" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:767 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:606 + #, fuzzy + msgid "Perform enhanced load motion during global common subexpression elimination" + msgstr "Realitzar el moviment de càrrega millorada durant l'eliminació de subexpressions globals" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:770 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:609 + #, fuzzy + msgid "Perform store motion after global common subexpression elimination" + msgstr "Realitzar el moviment de guardat després de l'eliminació de subexpressions globals" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:773 +-#, fuzzy +-msgid "Enable fatal diagnostics about inter-procedural problems" +-msgstr "Desactivar els diagnòstics fatals sobre problemes interprocedurals" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:776 +-msgid "Delete non-FORTRAN-77 intrinsics g77 supports" +-msgstr "Esborrar els intrínsecs de FORTRAN que no és 77 que g77 suporta" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:779 +-msgid "Disable non-FORTRAN 77 intrinsics F90 supports" +-msgstr "Desactivar els intrínsecs de FORTRAN que no és 77 que g77 suporta" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:782 +-#, fuzzy +-msgid "Enable non-FORTRAN 77 intrinsics F90 supports" +-msgstr "Desactivar els intrínsecs de FORTRAN que no és 77 que g77 suporta" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:785 +-msgid "Hide non-FORTRAN 77 intrinsics F90 supports" +-msgstr "Amagar els intrínsecs de FORTRAN que no és 77 que g77 suporta" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:788 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:612 + #, fuzzy + msgid "Recognize GNU-defined keywords" + msgstr "No reconèixer les paraules claus definides per GNU" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:791 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:615 + msgid "Generate code for GNU runtime environment" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:794 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:618 + #, fuzzy + msgid "Enable guessing of branch probabilities" + msgstr "Activar la predicció de probabilitats de ramificació" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:809 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:630 + msgid "Assume normal C execution environment" + msgstr "Assumir l'ambient normal d'execució C" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:812 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:633 + msgid "Enable support for huge objects" + msgstr "Activar el suport per a objectes enormes" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:815 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:636 + msgid "Process #ident directives" + msgstr "Processar directives #ident" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:818 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:639 + msgid "Perform conversion of conditional jumps to branchless equivalents" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:821 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:642 + msgid "Perform conversion of conditional jumps to conditional execution" + msgstr "Realitzar la conversió de salts condicionals a execució condicional" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:824 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:645 + msgid "Export functions even if they can be inlined" + msgstr "Exportar funcions encara si poden ser inline" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:827 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:648 + #, fuzzy + msgid "Emit implicit instantiations of inline templates" + msgstr "Emetre solament instanciacions explícites de patrons inline" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:830 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:651 + #, fuzzy + msgid "Emit implicit instantiations of templates" + msgstr "Emetre solament instanciacions explícites de patrons inline" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:833 +-msgid "Use offset tables for virtual method calls" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:836 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:654 + msgid "Do not generate .size directives" + msgstr "No generar directives .size" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:839 +-msgid "Initialize local vars and arrays to zero" +-msgstr "Inicialitza les variables locals i matrius a zero" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:842 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:657 + #, fuzzy + msgid "Pay attention to the \"inline\" keyword" + msgstr "Parar esment a la paraula clau \"inline\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:851 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:660 ++msgid "Integrate simple functions into their callers" ++msgstr "Integrar les funcions simples en els seus invocators" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:666 + #, fuzzy + msgid "-finline-limit=\tLimit the size of inlined functions to " + msgstr " -finline-limit= Limita la grandària de funcions inline a \n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:854 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:669 + msgid "-finput-charset= Specify the default character set for source files." + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:857 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:672 + #, fuzzy + msgid "Instrument function entry and exit with profiling calls" + msgstr "Instrumentar funcions entrada/sortida amb cridades d'anàlisi de perfil" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:860 +-msgid "Intrinsics letters in arbitrary cases" +-msgstr "Lletres d'intrínsecs amb majúscules/minúscules indistintes" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:863 +-msgid "Intrinsics spelled as e.g. SqRt" +-msgstr "Intrínsecs lletrejats com p.e. SqRt" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:866 +-#, fuzzy +-msgid "Intrinsics in lowercase" +-msgstr "Intrínsecs en majúscules" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:869 +-msgid "Intrinsics in uppercase" +-msgstr "Intrínsecs en majúscules" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:872 +-msgid "Assume native functions are implemented using JNI" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:875 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:675 + #, fuzzy + msgid "Generate code for functions even if they are fully inlined" + msgstr "Generar codi per a les funcions encara si estan completament inline" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:878 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:678 + msgid "Emit static const variables even if they are not used" + msgstr "Emetre variables static const encara si no s'usen" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:884 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:684 + #, fuzzy + msgid "Give external symbols a leading underscore" + msgstr "Els símbols externs tenen un subratllat inicial" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:887 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:687 + #, fuzzy + msgid "Perform loop optimizations" + msgstr "Realitzar les optimitzacions de cicle" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:890 +-msgid "Language keyword letters in arbitrary cases" +-msgstr "Paraules claus del llenguatge amb majúscules/minúscules indistintes" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:893 +-msgid "Language keywords spelled as e.g. IOStat" +-msgstr "Paraules claus del llenguatge lletrejades com p.e. IOStat" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:896 +-#, fuzzy +-msgid "Language keywords in lowercase" +-msgstr "Paraules claus del llenguatge en majúscules" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:899 +-msgid "Language keywords in uppercase" +-msgstr "Paraules claus del llenguatge en majúscules" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:902 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:690 + msgid "Set errno after built-in math functions" + msgstr "Establir errno després de les funcions matemàtiques internes" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:905 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:693 + #, fuzzy + msgid "Report on permanent memory allocation" + msgstr "Reportar l'allotjament en memòria permanent al final de l'execució" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:908 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:696 + msgid "Attempt to merge identical constants and constant variables" + msgstr "Intentar barrejar constants idèntiques i variables constants" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:911 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:699 + msgid "Attempt to merge identical constants across compilation units" + msgstr "Intentar barrejar constants idèntiques a través de les unitats de compilació" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:914 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:702 + #, fuzzy + msgid "-fmessage-length=\tLimit diagnostics to characters per line. 0 suppresses line-wrapping" + msgstr " -fmessage-length= Limita la longitud dels missatges de diagnòstic a caràcters per línia. 0 suprimeix el cort de línia\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:917 +-msgid "Delete MIL-STD 1753 intrinsics" +-msgstr "Esborrar els intrínsecs MIL-STD 1753" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:920 +-msgid "Disable MIL-STD 1753 intrinsics" +-msgstr "Desactivar els intrínsecs MIL-STD 1753" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:923 +-#, fuzzy +-msgid "Enable MIL-STD 1753 intrinsics" +-msgstr "Desactivar els intrínsecs MIL-STD 1753" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:926 +-msgid "Hide MIL-STD 1753 intrinsics" +-msgstr "Amagar els intrínsecs MIL-STD 1753" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:929 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:705 + msgid "Force all loop invariant computations out of loops" + msgstr "Forçar que totes les computacions invariantes del cicle siguin fora del cicle" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:932 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:708 + #, fuzzy + msgid "Don't warn about uses of Microsoft extensions" + msgstr "No avisar pedantment sobre els usos d'extensions Microsoft" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:941 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:717 + #, fuzzy + msgid "Use graph-coloring register allocation" + msgstr "Utilitzar coloració de grafes per a l'allotjament de registres." + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:944 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:720 + msgid "Generate code for NeXT (Apple Mac OS X) runtime environment" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:947 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:723 + msgid "Assume that receivers of Objective-C messages may be nil" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:950 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:726 + msgid "Support synchronous non-call exceptions" + msgstr "Suport per a excepcions síncrones no de cridades" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:959 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:735 + msgid "Enable Objective-C exception and synchronization syntax" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:962 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1286 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:738 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:978 + msgid "Perform loop unrolling for all loops" + msgstr "Realitzar el desenrollament del cicle per a tots els cicles" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:965 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1289 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:741 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:981 + msgid "Perform loop unrolling when iteration count is known" + msgstr "Realitzar el desenrollament del cicle quan es coneix el compte d'iteració" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:968 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:744 + msgid "When possible do not generate stack frames" + msgstr "Quan sigui possible no generar marcs de pila" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:971 +-msgid "Take at least one trip through each iterative DO loop" +-msgstr "Prendre almenys un viatge a través de cada cicle DO iteratiu" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:974 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:747 + msgid "Recognize C++ kewords like \"compl\" and \"xor\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:977 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:750 + #, fuzzy + msgid "Do the full register move optimization pass" + msgstr "Fa el pas complet d'optimització de moviment de registres" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:980 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:753 + msgid "Optimize sibling and tail recursive calls" + msgstr "Optimitzar les cridades recursives germanades i d'extrem" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:983 +-#, fuzzy +-msgid "Enable optimization of static class initialization code" +-msgstr "(es requereix una inicialització fora de la classe)" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:986 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:756 + #, fuzzy + msgid "Enable optional diagnostics" + msgstr "Desactivar els diagnòstics opcionals" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:992 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:759 + msgid "Pack structure members together without holes" + msgstr "Empaqueta junts als membres de l'estructura sense forats" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:995 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:762 + #, fuzzy + msgid "Return small aggregates in memory, not registers" + msgstr "Retornar els agregats \"short\" en memòria, no en registres" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1001 +-msgid "Warn about use of (only a few for now) Fortran extensions" +-msgstr "Avisar sobre l'ús d' (només algunes per ara) extensions Fortran" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1004 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:768 + #, fuzzy + msgid "Perform loop peeling" + msgstr "Realitzar les optimitzacions de cicle" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1007 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:771 + msgid "Enable machine specific peephole optimizations" + msgstr "Activar les optimitzacions de forats específiques de la màquina" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1010 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:774 + #, fuzzy + msgid "Enable an RTL peephole pass before sched2" + msgstr "Activa una execució de passada de forats rtl abans de sched2" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1013 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:777 + msgid "Downgrade conformance errors to warnings" + msgstr "Degradar els errors de concordança a advertiments" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1016 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:780 + #, fuzzy + msgid "Generate position-independent code if possible" + msgstr "Generar codi independent de posició, si és possible" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1019 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:783 + #, fuzzy + msgid "Generate position-independent code for executables if possible" + msgstr "Generar codi independent de posició, si és possible" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1022 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:786 + msgid "Generate prefetch instructions, if available, for arrays in loops" + msgstr "Generar instruccions de precarregament, si estan disponibles, per a matrius en cicles" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1028 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:789 ++msgid "Treat the input file as already preprocessed" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:792 + msgid "Enable basic program profiling code" + msgstr "Activar el codi bàsic d'anàlisi de perfil del programa" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1031 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:795 + #, fuzzy + msgid "Insert arc-based program profiling code" + msgstr "Inserir codi d'anàlisi de perfil basat en el programa arc" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1034 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:798 + msgid "Enable common options for generating profile info for profile feedback directed optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1037 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:801 + msgid "Enable common options for performing profile feedback directed optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1040 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:804 + msgid "Insert code to profile values of expressions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1046 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:810 + msgid "-frandom-seed=\tMake compile reproducible using " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1049 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:813 + msgid "Strength reduce all loop general induction variables" + msgstr "Enfortir la reducció de totes les variables generals d'inducció de cicle" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1052 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:816 + #, fuzzy + msgid "Return small aggregates in registers" + msgstr "Retornar els agregats \"short\" en registres" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1055 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:819 + msgid "Enables a register move optimization" + msgstr "Permet una optimització de moviment de registres" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1058 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:822 + #, fuzzy + msgid "Perform a register renaming optimization pass" + msgstr "Fer el pas d'optimització de renomenació de registres" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1061 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:825 + msgid "Reorder basic blocks to improve code placement" + msgstr "Reordenar els blocs bàsics per a millorar la ubicació del codi" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1064 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:828 + msgid "Reorder functions to improve code placement" + msgstr "Reordenar les funcions per a millorar la ubicació del codi" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1067 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:831 + msgid "Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1070 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:834 + msgid "Enable automatic template instantiation" + msgstr "Activar l'instanciació automàtica de patrons" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1073 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:837 + #, fuzzy + msgid "Add a common subexpression elimination pass after loop optimizations" + msgstr "Executar un pas CSE abans de les optimitzacions de cicles" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1076 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:840 + msgid "Run the loop optimizer twice" + msgstr "Executar el optimizador de cicles dues vegades" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1079 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:843 + msgid "Disable optimizations that assume default FP rounding behavior" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1082 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:846 + #, fuzzy + msgid "Generate run time type descriptor information" + msgstr "No generar informació del tipus de descriptor en temps d'execució" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1085 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:849 + msgid "Enable scheduling across basic blocks" + msgstr "Activar la calendarització entre blocs bàsics" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1088 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:852 + msgid "Allow speculative motion of non-loads" + msgstr "Permetre el moviment especulatiu de cap càrrega" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1091 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:855 + msgid "Allow speculative motion of some loads" + msgstr "Permetre el moviment especulatiu d'unes càrregues" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1094 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:858 + msgid "Allow speculative motion of more loads" + msgstr "Permetre el moviment especulatiu de més càrregues" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1097 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:861 + msgid "Allow premature scheduling of queued insns" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1100 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:864 + msgid "Set dependence distance checking in premature scheduling of queued insns" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1103 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:867 + msgid "-fsched-stalled-insns-dep= Set dependence distance checking in premature scheduling of queued insns" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1106 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:870 + msgid "-fsched-stalled-insns= Set number of queued insns that can be prematurely scheduled" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1109 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:873 + #, fuzzy + msgid "-fsched-verbose=\tSet the verbosity level of the scheduler" + msgstr " -fsched-verbose= Estableix el nivell de detall del calendaritzador\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1112 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:876 + msgid "If scheduling post reload, do superblock scheduling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1115 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:879 + msgid "If scheduling post reload, do trace scheduling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1118 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:882 + msgid "Reschedule instructions before register allocation" + msgstr "Recalendaritzar les instruccions abans de l'allotjament de registres" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1121 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:885 + msgid "Reschedule instructions after register allocation" + msgstr "Recalendaritzar les instruccions després de l'allotjament de registres" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1124 +-#, fuzzy +-msgid "Allow appending a second underscore to externals" +-msgstr "Mai agregar un segon subratllat als externs" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1127 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:888 + msgid "Mark data as shared rather than private" + msgstr "Marcar dades com compartits en lloc de privats" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1130 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:891 + msgid "Use the same size for double as for float" + msgstr "Usar la mateixa grandària per a double que per a float" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1133 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:894 + msgid "Use the narrowest integer type possible for enumeration types" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1136 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:897 + #, fuzzy + msgid "Force the underlying type for \"wchar_t\" to be \"unsigned short\"" + msgstr "Fer de costat el tipus sota wchar_t per \"unsigned short\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1142 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:903 + msgid "Disable optimizations observable by IEEE signaling NaNs" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1145 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:906 + msgid "When \"signed\" or \"unsigned\" is not given make the bitfield signed" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1148 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:909 + #, fuzzy + msgid "Make \"char\" signed by default" + msgstr "Fer que \"char\" sigui signed per omissió" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1151 +-#, fuzzy +-msgid "Do not print names of program units as they are compiled" +-msgstr "Mostrar els noms de les unitats de programa mentre són compilades" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1154 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:912 + #, fuzzy + msgid "Convert floating point constants to single precision constants" + msgstr "Convertir constants de coma flotant a constants de precisió simple" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1157 +-#, fuzzy +-msgid "Internally convert most source to lowercase" +-msgstr "Convertir internament gairebé tot el codi a majúscules" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1160 +-msgid "Internally preserve source case" +-msgstr "Preservar internament les majúscules i minúscules del codi font" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1163 +-msgid "Internally convert most source to uppercase" +-msgstr "Convertir internament gairebé tot el codi a majúscules" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1169 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:918 + msgid "Insert stack checking code into the program" + msgstr "Insereix codi de revisió de la pila en el programa" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1175 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:924 + msgid "-fstack-limit-register=\tTrap if the stack goes past " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1178 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:927 + msgid "-fstack-limit-symbol=\tTrap if the stack goes past symbol " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1181 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:930 + msgid "Display statistics accumulated during compilation" + msgstr "Mostrar les estadístiques acumulades durant la compilació" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1184 +-msgid "Enable assignability checks for stores into object arrays" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1187 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:933 + msgid "Perform strength reduction optimizations" + msgstr "Realitzar optimitzacions de reducció de força" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1190 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:936 + msgid "Assume strict aliasing rules apply" + msgstr "Assumir que s'apliquen les regles estrictes d'alies" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1199 +-msgid "Symbol names spelled in mixed case" +-msgstr "Noms de símbol lletrejats amb majúscules/minúscules barrejades" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1202 +-msgid "Symbol names in lowercase" +-msgstr "Noms de símbol en minúscules" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1205 +-msgid "Symbol names in uppercase" +-msgstr "Noms de símbol en majúscules" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1208 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:942 + msgid "Check for syntax errors, then stop" + msgstr "Buscar errors de sintaxi, i aleshores detenir-se" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1211 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:945 + msgid "-ftabstop=\tDistance between tab stops for column reporting" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1214 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:948 + #, fuzzy + msgid "-ftemplate-depth-\tSpecify maximum template instantiation depth" + msgstr "Especificar la profunditat màxima d'instanciació de patrons" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1217 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:951 + #, fuzzy + msgid "Create data files needed by \"gcov\"" + msgstr "Crear fitxers de dades necessàries per a gcov" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1223 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:957 + msgid "Perform jump threading optimizations" + msgstr "Realitzar optimitzacions de filat de salts" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1226 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:960 + #, fuzzy + msgid "Report the time taken by each compiler pass" + msgstr "Reportar el temps pres per cada pas del compilador al final de l'execució" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1229 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:963 + msgid "-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tSet the default thread-local storage code generation model" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1232 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:966 + msgid "Perform superblock formation via tail duplication" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1235 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:969 + #, fuzzy + msgid "Assume floating-point operations can trap" + msgstr "Les operacions de coma flotant poden capturar" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1238 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:972 + #, fuzzy + msgid "Trap for signed overflow in addition, subtraction and multiplication" + msgstr "Atrapar desbordaments signed en addició / substracció / multiplicació" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1241 +-msgid "Make prefix-radix non-decimal constants be typeless" +-msgstr "Fer que no tinguin tipus les constants amb prefix-radical que no és decimal" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1244 +-#, fuzzy +-msgid "Allow all ugly features" +-msgstr "Desactiva totes les característiques lletjes" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1247 +-#, fuzzy +-msgid "Hollerith and typeless can be passed as arguments" +-msgstr "No es passen les constants Hollerith i sense tipus com arguments" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1250 +-msgid "Allow ordinary copying of ASSIGN'ed vars" +-msgstr "Permet la còpia ordinària de variables ASSIGN'ed" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1253 +-msgid "Dummy array dimensioned to (1) is assumed-size" +-msgstr "La matriu faltament dimensionada a (1) és de grandària assumida" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1256 +-msgid "Trailing comma in procedure call denotes null argument" +-msgstr "Coma al final de la cridada al procediment denota un argument null" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1259 +-msgid "Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z" +-msgstr "Permet que REAL(Z) i AIMAG(Z) rebin DOUBLE COMPLEX Z" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1262 +-#, fuzzy +-msgid "Initialization via DATA and PARAMETER is not type-compatible" +-msgstr "L'inicialització a través de DATA i PARAMETER és de tipus compatible" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1265 +-msgid "Allow INTEGER and LOGICAL interchangeability" +-msgstr "Permet l'intercanvi entre INTEGER i LOGICAL" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1268 +-#, fuzzy +-msgid "Append underscores to externals" +-msgstr "Mai agregar un segon subratllat als externs" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1271 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:975 + #, fuzzy + msgid "Compile whole compilation unit at a time" + msgstr "Buidar la unitat de traducció completa a un fitxer" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1274 +-msgid "Delete libU77 intrinsics" +-msgstr "Esborrar els intrínsecs libU77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1277 +-msgid "Disable libU77 intrinsics" +-msgstr "Desactivar els intrínsecs libU77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1280 +-#, fuzzy +-msgid "Enable libU77 intrinsics" +-msgstr "Desactivar els intrínsecs libU77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1283 +-msgid "Hide libU77 intrinsics" +-msgstr "Amagar els intrínsecs libU77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1292 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:984 + #, fuzzy + msgid "Allow math optimizations that may violate IEEE or ISO standards" + msgstr "Permetre optimitzacions matemàtiques que poden violar els estàndards IEEE o ANSI" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1295 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:987 + msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1298 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:990 + #, fuzzy + msgid "Make \"char\" unsigned by default" + msgstr "Fer que \"char\" sigui unsigned per omissió" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1301 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:993 + #, fuzzy + msgid "Perform loop unswitching" + msgstr "Realitzar les optimitzacions de cicle" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1304 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:996 + msgid "Just generate unwind tables for exception handling" + msgstr "Només generar matrius de desembolico per a maneig d'excepcions" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1310 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:999 + msgid "Use __cxa_atexit to register destructors" + msgstr "Usar __cxa_atexit per a registrar destructors" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1316 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1002 + msgid "Add extra commentary to assembler output" + msgstr "Agregar comentaris extra a la sortida del ensemblador" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1319 +-#, fuzzy +-msgid "Print g77-specific version information and run internal tests" +-msgstr "Imprimeix informació de la versió específica del compilador g77, executa proves internes" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1322 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1005 + #, fuzzy + msgid "Use expression value profiles in optimizations" + msgstr "Activar les optimitzacions del enllaçador" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1325 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1008 + msgid "Discard unused virtual functions" + msgstr "Descartar funcions virtual sense usar" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1328 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1011 + msgid "Implement vtables using thunks" + msgstr "Implementar vtables usant thunks" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1331 +-msgid "Program is written in VXT (Digital-like) FORTRAN" +-msgstr "El programa està escrit en VXT (com Digital) FORTRAN" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1334 +-msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "Esborrar els intrínsecs de FORTRAN que no és 77 que VXT FORTRAN suporta" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1337 +-msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "Desactivar els intrínsecs de FORTRAN que no és 77 que VXT FORTRAN suporta" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1340 +-#, fuzzy +-msgid "Enable non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "Desactivar els intrínsecs de FORTRAN que no és 77 que VXT FORTRAN suporta" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1343 +-msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "Amagar els intrínsecs de FORTRAN que no és 77 que VXT FORTRAN suporta" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1349 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1014 + msgid "Emit common-like symbols as weak symbols" + msgstr "Emetre símbols comuns com símbols febles" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1352 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1017 + msgid "Construct webs and split unrelated uses of single variable" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1355 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1020 + msgid "-fwide-exec-charset=\tConvert all wide strings and character constants to character set " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1358 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1023 + msgid "Generate a #line directive pointing at the current working directory" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1361 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1026 + msgid "Assume signed arithmetic overflow wraps around" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1364 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1029 + msgid "Store strings in writable data section" + msgstr "Guardar les cadenes en la secció de dades modificables" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1367 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1032 + msgid "Emit cross referencing information" + msgstr "Emetre informació de referència creuada" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1370 +-#, fuzzy +-msgid "Print internal debugging-related information" +-msgstr "Mostra la informació interna relacionada amb la depuració" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1373 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1035 + msgid "Put zero initialized data in the bss section" + msgstr "Posar dades inicialitzades a zero en la secció bss" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1376 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1038 + msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1379 +-msgid "Treat initial values of 0 like non-zero values" +-msgstr "Tractar els valors inicials de 0 com valors que no són zero" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1382 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1041 + #, fuzzy + msgid "Generate debug information in default format" + msgstr "Generar informació de depuració en el format per omissió" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1385 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1044 + #, fuzzy + msgid "Generate debug information in COFF format" + msgstr "Generar informació de depuració en el format per omissió" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1388 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1047 + #, fuzzy + msgid "Generate debug information in DWARF v2 format" + msgstr "Generar informació de depuració en el format per omissió" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1391 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1050 + #, fuzzy + msgid "Dump declarations to a .decl file" + msgstr "la declaració no declara res" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1394 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1053 + #, fuzzy + msgid "Generate debug information in default extended format" + msgstr "Generar informació de depuració en el format estès per omissió" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1397 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1056 + #, fuzzy + msgid "Generate debug information in STABS format" + msgstr "Generar informació de depuració en el format per omissió" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1400 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1059 + #, fuzzy + msgid "Generate debug information in extended STABS format" + msgstr "Generar informació de depuració en el format estès per omissió" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1403 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1062 + #, fuzzy + msgid "Generate debug information in VMS format" + msgstr "Generar informació de depuració en el format per omissió" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1406 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1065 + #, fuzzy + msgid "Generate debug information in XCOFF format" + msgstr "Generar informació de depuració en el format per omissió" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1409 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1068 + #, fuzzy + msgid "Generate debug information in extended XCOFF format" + msgstr "Generar informació de depuració en el format estès per omissió" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1412 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1071 + msgid "-idirafter \tAdd to the end of the system include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1415 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1074 + msgid "-imacros \tAccept definition of macros in " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1418 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1077 + msgid "-include \tInclude the contents of before other files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1421 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1080 + msgid "-iprefix \tSpecify as a prefix for next two options" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1424 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1083 + msgid "-isysroot \tSet to be the system root directory" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1427 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1086 + msgid "-isystem \tAdd to the start of the system include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1430 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1089 + msgid "-iwithprefix \tAdd to the end of the system include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1433 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1092 + msgid "-iwithprefixbefore \tAdd to the end of the main include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1445 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1104 + msgid "Do not search standard system include directories (those specified with -isystem will still be used)" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1448 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1107 + msgid "Do not search standard system include directories for C++" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1451 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1110 + #, fuzzy + msgid "-o \tPlace output into " + msgstr " -o Situar la sortida en el \n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1454 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1113 + #, fuzzy + msgid "Enable function profiling" + msgstr "anàlisi de perfil de les funcions mips16" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1457 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1116 + #, fuzzy + msgid "Issue warnings needed for strict compliance to the standard" + msgstr " -pedantic Activar els avisos necessaris per a complir estrictament amb ISO C\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1460 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1119 + msgid "Like -pedantic but issue them as errors" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1463 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1122 + msgid "Generate C header of platform-specific features" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1466 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1125 + #, fuzzy + msgid "Do not display functions compiled or elapsed time" + msgstr " -quiet No mostrar les funcions compilades o el temps transcorregut\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1469 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1128 + #, fuzzy + msgid "Remap file names when including files" + msgstr "nom de fitxer buit en #%s" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1472 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1131 + msgid "Conform to the ISO 1998 C++ standard" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1475 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1134 + msgid "Conform to the ISO 1990 C standard" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1478 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1137 + msgid "Conform to the ISO 1999 C standard" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1481 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1502 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1505 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1140 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1161 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1164 + msgid "Deprecated in favor of -std=c99" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1484 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1143 + msgid "Conform to the ISO 1998 C++ standard with GNU extensions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1487 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1146 + msgid "Conform to the ISO 1990 C standard with GNU extensions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1490 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1149 + msgid "Conform to the ISO 1999 C standard with GNU extensions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1493 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1152 + msgid "Deprecated in favor of -std=gnu99" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1496 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1155 + msgid "Deprecated in favor of -std=c89" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1499 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1158 + msgid "Conform to the ISO 1990 C standard as amended in 1994" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1508 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1167 + #, fuzzy + msgid "Enable traditional preprocessing" + msgstr "Habilitar la prova de la pila" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1511 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1170 + msgid "-trigraphs\tSupport ISO C trigraphs" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1514 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1173 + msgid "Do not predefine system-specific and GCC-specific macros" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1517 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1176 + #, fuzzy + msgid "Enable verbose output" + msgstr "Activar la sortida de depuració" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1523 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1179 ++#, fuzzy ++msgid "Display the compiler's version" ++msgstr " -version Mostra la versió del compilador\n" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1182 + msgid "Suppress warnings" + msgstr "" + +-#: config/i386/freebsd-aout.h:215 config/rs6000/sysv4.h:1089 ++#: config/i386/cygwin.h:29 ++msgid "mno-cygwin and mno-win32 are not compatible" ++msgstr "" ++ ++#: config/i386/cygwin.h:70 config/i386/mingw32.h:58 ++msgid "shared and mdll are not compatible" ++msgstr "" ++ ++#: config/i386/freebsd-aout.h:215 + msgid "`-p' not supported; use `-pg' and gprof(1)" + msgstr "" + +@@ -21712,49 +21382,63 @@ + msgid "GCC does not support -CC without using -E" + msgstr "GNU C no dóna suport a -CC sense usar -E" + ++#: config/i386/sco5.h:191 ++msgid "-pg not supported on this platform" ++msgstr "-pg no té suport en aquesta plataforma" ++ ++#: config/i386/sco5.h:192 ++msgid "-p and -pp specified - pick one" ++msgstr "-p i -pp especificats - tria un" ++ ++#: config/i386/sco5.h:266 ++msgid "-G and -static are mutually exclusive" ++msgstr "-G·i·-static són mútuament exclusius" ++ ++#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22 ++#: config/sparc/sol2-bi.h:167 config/sparc/sol2-bi.h:172 ++#, fuzzy ++msgid "does not support multilib" ++msgstr "%s no té suport per a %s" ++ + #: config/sparc/linux64.h:211 config/sparc/linux64.h:222 + #: config/sparc/netbsd-elf.h:140 config/sparc/netbsd-elf.h:159 + #: config/sparc/sol2-bi.h:195 config/sparc/sol2-bi.h:205 + msgid "may not use both -m32 and -m64" + msgstr "" + +-#: config/i386/mingw32.h:58 config/i386/cygwin.h:70 +-msgid "shared and mdll are not compatible" +-msgstr "" +- +-#: config/darwin.h:215 ++#: config/darwin.h:222 + msgid "-current_version only allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:218 ++#: config/darwin.h:225 + msgid "-install_name only allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:223 ++#: config/darwin.h:230 + msgid "-bundle not allowed with -dynamiclib" + msgstr "no es permet -bundle amb -dynamiclib" + +-#: config/darwin.h:224 ++#: config/darwin.h:231 + msgid "-bundle_loader not allowed with -dynamiclib" + msgstr "no es permet -bundle_loader amb -dynamiclib" + +-#: config/darwin.h:225 ++#: config/darwin.h:232 + msgid "-client_name not allowed with -dynamiclib" + msgstr "no es permet -client_name amb -dynamiclib" + +-#: config/darwin.h:228 ++#: config/darwin.h:235 + msgid "-force_cpusubtype_ALL not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:229 ++#: config/darwin.h:236 + msgid "-force_flat_namespace not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:231 ++#: config/darwin.h:238 + msgid "-keep_private_externs not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:232 ++#: config/darwin.h:239 + msgid "-private_bundle not allowed with -dynamiclib" + msgstr "no es permet -private_bundle amb -dynamiclib" + +@@ -21770,48 +21454,10 @@ + msgid "may not use both -EB and -EL" + msgstr "" + +-#: config/mips/mips.h:988 +-msgid "-pipe is not supported" +-msgstr "" +- +-#: java/jvspec.c:80 ada/lang-specs.h:34 gcc.c:767 +-msgid "-pg and -fomit-frame-pointer are incompatible" +-msgstr "" +- +-#: java/lang-specs.h:34 +-msgid "-fjni and -femit-class-files are incompatible" +-msgstr "" +- +-#: java/lang-specs.h:35 +-msgid "-fjni and -femit-class-file are incompatible" +-msgstr "" +- +-#: java/lang-specs.h:36 java/lang-specs.h:37 +-msgid "-femit-class-file should used along with -fsyntax-only" +-msgstr "" +- + #: treelang/lang-specs.h:52 + msgid "-pg or -p and -fomit-frame-pointer are incompatible" + msgstr "punters -pg o -p i -fomit-frame són incompatibles" + +-#: config/sparc/sol2-bi.h:167 config/sparc/sol2-bi.h:172 +-#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22 +-#, fuzzy +-msgid "does not support multilib" +-msgstr "%s no té suport per a %s" +- +-#: config/i386/sco5.h:191 +-msgid "-pg not supported on this platform" +-msgstr "-pg no té suport en aquesta plataforma" +- +-#: config/i386/sco5.h:192 +-msgid "-p and -pp specified - pick one" +-msgstr "-p i -pp especificats - tria un" +- +-#: config/i386/sco5.h:266 +-msgid "-G and -static are mutually exclusive" +-msgstr "-G·i·-static són mútuament exclusius" +- + #: config/arm/arm.h:198 + msgid "-mapcs-26 and -mapcs-32 may not be used together" + msgstr "" +@@ -21828,6 +21474,14 @@ + msgid "the m210 does not have little endian support" + msgstr "" + ++#: config/mips/mips.h:988 ++msgid "-pipe is not supported" ++msgstr "" ++ ++#: ada/lang-specs.h:34 java/jvspec.c:80 gcc.c:767 ++msgid "-pg and -fomit-frame-pointer are incompatible" ++msgstr "" ++ + #: ada/lang-specs.h:36 + msgid "one of -c, -S, -gnatc, -gnatz, or -gnats is required for Ada" + msgstr "" +@@ -21840,8 +21494,16 @@ + msgid "-msingle-float and -msoft-float can not both be specified" + msgstr "" + +-#: config/rs6000/darwin.h:98 +-msgid " conflicting code gen style switches are used" ++#: java/lang-specs.h:34 ++msgid "-fjni and -femit-class-files are incompatible" ++msgstr "" ++ ++#: java/lang-specs.h:35 ++msgid "-fjni and -femit-class-file are incompatible" ++msgstr "" ++ ++#: java/lang-specs.h:36 java/lang-specs.h:37 ++msgid "-femit-class-file should used along with -fsyntax-only" + msgstr "" + + #: gcc.c:743 +@@ -21853,8 +21515,8 @@ + msgid "-E required when input is from standard input" + msgstr "" + +-#: config/i386/cygwin.h:29 +-msgid "mno-cygwin and mno-win32 are not compatible" ++#: config/rs6000/darwin.h:98 ++msgid " conflicting code gen style switches are used" + msgstr "" + + #~ msgid "concatenation of string literals with __FUNCTION__ is deprecated" +@@ -22544,9 +22206,6 @@ + #~ msgid "Consider all mem refs to static data to be volatile" + #~ msgstr "Considerar totes les referències a dades static com volatile" + +-#~ msgid "Integrate simple functions into their callers" +-#~ msgstr "Integrar les funcions simples en els seus invocators" +- + #~ msgid "Output GNU ld formatted global initializers" + #~ msgstr "Obtenir iniciators globals amb format per a ld de GNU" + +@@ -22577,9 +22236,6 @@ + #~ msgid "Use the smallest fitting integer to hold enums" + #~ msgstr "Usar l'enter adequat més petit per a contenir enumerats" + +-#~ msgid "Enable most warning messages" +-#~ msgstr "Activar gairebé tots els missatges d'avís" +- + #~ msgid "Don't warn about too many arguments to format functions" + #~ msgstr "No avisar sobre massa arguments per a les funcions de format" + +@@ -22610,9 +22266,6 @@ + #~ msgid " -p Enable function profiling\n" + #~ msgstr " -p Activar l'anàlisi de perfil de funcions\n" + +-#~ msgid " -version Display the compiler's version\n" +-#~ msgstr " -version Mostra la versió del compilador\n" +- + #~ msgid "" + #~ "\n" + #~ "Language specific options:\n" +@@ -23063,9 +22716,6 @@ + #~ msgid "`sigof' applied to non-aggregate expression" + #~ msgstr "\"sigof\" aplicat a una expressió no agregada" + +-#~ msgid "`sigof' applied to non-aggregate type" +-#~ msgstr "\"sigof\" aplicat a un tipus no agregat" +- + #~ msgid "storage class specifier `%s' not allowed after struct or class" + #~ msgstr "no es permet el especificador de classe d'emmagatzematge \"%s\" després de struct o class" + +@@ -23222,24 +22872,234 @@ + #~ msgid "Warn when a function is declared extern, then inline" + #~ msgstr "Avisar quan una funció és declarada extern i després inline" + +-#~ msgid "Don't announce deprecation of compiler features" +-#~ msgstr "No anunciar característiques obsoletes del compilador" +- + #~ msgid "directory name must immediately follow -I" + #~ msgstr "el nom del directori deu seguir immediatament a -I" + + #~ msgid "ignoring pragma: %s" + #~ msgstr "ignorant el pragma: %s" + ++#~ msgid "Print g77-specific compiler version info, run internal tests" ++#~ msgstr "Imprimeix informació de la versió específica del compilador g77, executa proves internes" ++ ++#~ msgid "Program is written in typical FORTRAN 66 dialect" ++#~ msgstr "El programa està escrit en el dialecte típic FORTRAN 66" ++ ++#~ msgid "Program is written in typical Unix f77 dialect" ++#~ msgstr "El programa està escrit en el dialecte típic Unix f77" ++ + #~ msgid "Program does not use Unix-f77 dialectal features" + #~ msgstr "El programa no utilitza les característiques del dialecte Unix-f77" + ++#~ msgid "Program is written in Fortran-90-ish dialect" ++#~ msgstr "El programa en un dialecte proper a Fortran-90" ++ ++#~ msgid "Treat local vars and COMMON blocks as if they were named in SAVE statements" ++#~ msgstr "Tractar les variables locals i els blocs COMMON com si fossin nomenats en declaracions SAVE" ++ ++#~ msgid "Allow $ in symbol names" ++#~ msgstr "Permetre $ en els noms de símbols" ++ ++#~ msgid "f2c-compatible code need not be generated" ++#~ msgstr "No es necessita generar codi compatible amb f2c" ++ ++#~ msgid "Unsupported; do not generate libf2c-calling code" ++#~ msgstr "Sense suport; no genera codi de cridada a libf2c" ++ ++#~ msgid "Unsupported; affects code-generation of arrays" ++#~ msgstr "Sense suport; afecta la generació de codi de les matrius" ++ ++#~ msgid "Program is written in Fortran-90-ish free form" ++#~ msgstr "El programa està escrit en una forma lliure propera a Fortran-90" ++ ++#~ msgid "Warn about use of (only a few for now) Fortran extensions" ++#~ msgstr "Avisar sobre l'ús d' (només algunes per ara) extensions Fortran" ++ ++#~ msgid "Program is written in VXT (Digital-like) FORTRAN" ++#~ msgstr "El programa està escrit en VXT (com Digital) FORTRAN" ++ ++#~ msgid "Disallow all ugly features" ++#~ msgstr "Desactiva totes les característiques lletjes" ++ ++#~ msgid "Hollerith and typeless constants not passed as arguments" ++#~ msgstr "No es passen les constants Hollerith i sense tipus com arguments" ++ ++#~ msgid "Allow ordinary copying of ASSIGN'ed vars" ++#~ msgstr "Permet la còpia ordinària de variables ASSIGN'ed" ++ ++#~ msgid "Dummy array dimensioned to (1) is assumed-size" ++#~ msgstr "La matriu faltament dimensionada a (1) és de grandària assumida" ++ ++#~ msgid "Trailing comma in procedure call denotes null argument" ++#~ msgstr "Coma al final de la cridada al procediment denota un argument null" ++ ++#~ msgid "Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z" ++#~ msgstr "Permet que REAL(Z) i AIMAG(Z) rebin DOUBLE COMPLEX Z" ++ ++#~ msgid "Initialization via DATA and PARAMETER is type-compatible" ++#~ msgstr "L'inicialització a través de DATA i PARAMETER és de tipus compatible" ++ ++#~ msgid "Allow INTEGER and LOGICAL interchangeability" ++#~ msgstr "Permet l'intercanvi entre INTEGER i LOGICAL" ++ ++#~ msgid "Print internal debugging-related info" ++#~ msgstr "Mostra la informació interna relacionada amb la depuració" ++ ++#~ msgid "Initialize local vars and arrays to zero" ++#~ msgstr "Inicialitza les variables locals i matrius a zero" ++ ++#~ msgid "Backslashes in character/hollerith constants not special (C-style)" ++#~ msgstr "Les barres invertides en constants de caràcter/hollerith no són especials (estil C)" ++ ++#~ msgid "Have front end emulate COMPLEX arithmetic to avoid bugs" ++#~ msgstr "Fa que el front emuli aritmètica COMPLEX per a evitar errors" ++ + #~ msgid "Disable the appending of underscores to externals" + #~ msgstr "Desactiva l'agregació de subratllats als externs" + ++#~ msgid "Never append a second underscore to externals" ++#~ msgstr "Mai agregar un segon subratllat als externs" ++ ++#~ msgid "Intrinsics spelled as e.g. SqRt" ++#~ msgstr "Intrínsecs lletrejats com p.e. SqRt" ++ ++#~ msgid "Intrinsics in uppercase" ++#~ msgstr "Intrínsecs en majúscules" ++ ++#~ msgid "Intrinsics letters in arbitrary cases" ++#~ msgstr "Lletres d'intrínsecs amb majúscules/minúscules indistintes" ++ ++#~ msgid "Language keywords spelled as e.g. IOStat" ++#~ msgstr "Paraules claus del llenguatge lletrejades com p.e. IOStat" ++ ++#~ msgid "Language keywords in uppercase" ++#~ msgstr "Paraules claus del llenguatge en majúscules" ++ ++#~ msgid "Language keyword letters in arbitrary cases" ++#~ msgstr "Paraules claus del llenguatge amb majúscules/minúscules indistintes" ++ ++#~ msgid "Internally convert most source to uppercase" ++#~ msgstr "Convertir internament gairebé tot el codi a majúscules" ++ ++#~ msgid "Internally preserve source case" ++#~ msgstr "Preservar internament les majúscules i minúscules del codi font" ++ ++#~ msgid "Symbol names spelled in mixed case" ++#~ msgstr "Noms de símbol lletrejats amb majúscules/minúscules barrejades" ++ ++#~ msgid "Symbol names in uppercase" ++#~ msgstr "Noms de símbol en majúscules" ++ ++#~ msgid "Symbol names in lowercase" ++#~ msgstr "Noms de símbol en minúscules" ++ ++#~ msgid "Program written in uppercase" ++#~ msgstr "Programa escrit en majúscules" ++ ++#~ msgid "Program written in lowercase" ++#~ msgstr "Programa escrit en minúscules" ++ ++#~ msgid "Program written in strict mixed-case" ++#~ msgstr "Programa escrit estrictament amb majúscules i minúscules barrejades" ++ ++#~ msgid "Compile as if program written in uppercase" ++#~ msgstr "Compilar com si el programa estigués escrit en majúscules" ++ ++#~ msgid "Compile as if program written in lowercase" ++#~ msgstr "Compilar com si el programa estigués escrit en minúscules" ++ ++#~ msgid "Preserve all spelling (case) used in program" ++#~ msgstr "Preservar tot el lletrejo (majúscules/minúscules) usat en el programa" ++ ++#~ msgid "Delete libU77 intrinsics with bad interfaces" ++#~ msgstr "Esborrar els intrínsecs libU77 amb interfícies errònies" ++ ++#~ msgid "Disable libU77 intrinsics with bad interfaces" ++#~ msgstr "Desactivar els intrínsecs libU77 amb interfícies errònies" ++ ++#~ msgid "Hide libU77 intrinsics with bad interfaces" ++#~ msgstr "Amagar els intrínsecs libU77 amb interfícies errònies" ++ ++#~ msgid "Delete non-FORTRAN-77 intrinsics f2c supports" ++#~ msgstr "Esborrar els intrínsecs de FORTRAN que no és 77 que f2c suporta" ++ ++#~ msgid "Disable non-FORTRAN-77 intrinsics f2c supports" ++#~ msgstr "Desactivar els intrínsecs de FORTRAN que no és 77 que f2c suporta" ++ ++#~ msgid "Hide non-FORTRAN-77 intrinsics f2c supports" ++#~ msgstr "Amagar els intrínsecs de FORTRAN que no és 77 que f2c suporta" ++ ++#~ msgid "Delete non-FORTRAN-77 intrinsics F90 supports" ++#~ msgstr "Esborrar els intrínsecs de FORTRAN que no és 77 que F90 suporta" ++ ++#~ msgid "Disable non-FORTRAN-77 intrinsics F90 supports" ++#~ msgstr "Desactivar els intrínsecs de FORTRAN que no és 77 que F90 suporta" ++ ++#~ msgid "Hide non-FORTRAN-77 intrinsics F90 supports" ++#~ msgstr "Amagar els intrínsecs de FORTRAN que no és 77 que F90 suporta" ++ ++#~ msgid "Delete non-FORTRAN-77 intrinsics g77 supports" ++#~ msgstr "Esborrar els intrínsecs de FORTRAN que no és 77 que g77 suporta" ++ ++#~ msgid "Disable non-FORTRAN 77 intrinsics F90 supports" ++#~ msgstr "Desactivar els intrínsecs de FORTRAN que no és 77 que g77 suporta" ++ ++#~ msgid "Hide non-FORTRAN 77 intrinsics F90 supports" ++#~ msgstr "Amagar els intrínsecs de FORTRAN que no és 77 que g77 suporta" ++ ++#~ msgid "Delete MIL-STD 1753 intrinsics" ++#~ msgstr "Esborrar els intrínsecs MIL-STD 1753" ++ ++#~ msgid "Disable MIL-STD 1753 intrinsics" ++#~ msgstr "Desactivar els intrínsecs MIL-STD 1753" ++ ++#~ msgid "Hide MIL-STD 1753 intrinsics" ++#~ msgstr "Amagar els intrínsecs MIL-STD 1753" ++ ++#~ msgid "Delete libU77 intrinsics" ++#~ msgstr "Esborrar els intrínsecs libU77" ++ ++#~ msgid "Disable libU77 intrinsics" ++#~ msgstr "Desactivar els intrínsecs libU77" ++ ++#~ msgid "Hide libU77 intrinsics" ++#~ msgstr "Amagar els intrínsecs libU77" ++ ++#~ msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports" ++#~ msgstr "Esborrar els intrínsecs de FORTRAN que no és 77 que VXT FORTRAN suporta" ++ ++#~ msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports" ++#~ msgstr "Desactivar els intrínsecs de FORTRAN que no és 77 que VXT FORTRAN suporta" ++ ++#~ msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports" ++#~ msgstr "Amagar els intrínsecs de FORTRAN que no és 77 que VXT FORTRAN suporta" ++ ++#~ msgid "Treat initial values of 0 like non-zero values" ++#~ msgstr "Tractar els valors inicials de 0 com valors que no són zero" ++ ++#~ msgid "Emit special debugging information for COMMON and EQUIVALENCE (disabled)" ++#~ msgstr "Emetre informació especial de depuració per a COMMON i EQUIVALENCE (desactivat)" ++ ++#~ msgid "Take at least one trip through each iterative DO loop" ++#~ msgstr "Prendre almenys un viatge a través de cada cicle DO iteratiu" ++ ++#~ msgid "Disable fatal diagnostics about inter-procedural problems" ++#~ msgstr "Desactivar els diagnòstics fatals sobre problemes interprocedurals" ++ ++#~ msgid "Make prefix-radix non-decimal constants be typeless" ++#~ msgstr "Fer que no tinguin tipus les constants amb prefix-radical que no és decimal" ++ ++#~ msgid "Generate code to check subscript and substring bounds" ++#~ msgstr "Generar codi per a revisar els límits de subíndicis i subcadenes" ++ + #~ msgid "Fortran-specific form of -fbounds-check" + #~ msgstr "Forma específica de Fortran de -fbounds-check" + ++#~ msgid "Disable warnings about inter-procedural problems" ++#~ msgstr "Desactivar els avisos sobre problemes interprocedurals" ++ ++#~ msgid "Warn about constructs with surprising meanings" ++#~ msgstr "Avisar sobre constructors amb significats sorprenents" ++ + #~ msgid "Add a directory for INCLUDE searching" + #~ msgstr "Agregar un directori per a la recerca de INCLUDE" + +Index: gcc/po/da.po +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/po/da.po,v +retrieving revision 1.3.8.5 +retrieving revision 1.3.8.6 +diff -u -r1.3.8.5 -r1.3.8.6 +--- gcc/po/da.po 5 Nov 2004 02:59:19 -0000 1.3.8.5 ++++ gcc/po/da.po 7 Nov 2004 19:58:58 -0000 1.3.8.6 +@@ -1,6 +1,6 @@ + # Danish version of GCC strings. +-# Copyright (C) 2002, 03 Free Software Foundation, Inc. +-# Ole Laursen , 2001, 02, 03. ++# Copyright (C) 2002, 03, 04 Free Software Foundation, Inc. ++# Ole Laursen , 2001, 02, 03, 04. + # + # Konventioner: + # +@@ -126,10 +126,10 @@ + # + msgid "" + msgstr "" +-"Project-Id-Version: gcc 3.3\n" ++"Project-Id-Version: gcc 3.4-b20040206\n" + "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" +-"POT-Creation-Date: 2004-07-01 11:41-0700\n" +-"PO-Revision-Date: 2003-05-25 18:00+0200\n" ++"POT-Creation-Date: 2004-11-04 19:12-0800\n" ++"PO-Revision-Date: 2004-10-03 19:17+0200\n" + "Last-Translator: Ole Laursen \n" + "Language-Team: Danish \n" + "MIME-Version: 1.0\n" +@@ -156,16 +156,16 @@ + msgid "`%s' attribute only applies to function types" + msgstr "egenskaben '%s' kan kun anvendes sammen med funktionstyper" + +-#: attribs.c:416 c-common.c:4307 c-common.c:4326 c-common.c:4344 +-#: c-common.c:4371 c-common.c:4390 c-common.c:4413 c-common.c:4436 +-#: c-common.c:4462 c-common.c:4496 c-common.c:4540 c-common.c:4568 +-#: c-common.c:4596 c-common.c:4615 c-common.c:4870 c-common.c:4892 +-#: c-common.c:4927 c-common.c:4994 c-common.c:5040 c-common.c:5098 +-#: c-common.c:5129 c-common.c:5475 c-common.c:5498 c-common.c:5537 +-#: config/arm/arm.c:2281 config/arm/arm.c:2308 config/avr/avr.c:4539 +-#: config/h8300/h8300.c:4284 config/h8300/h8300.c:4307 config/i386/i386.c:1620 +-#: config/i386/i386.c:15397 config/i386/winnt.c:86 config/ia64/ia64.c:1057 +-#: config/ip2k/ip2k.c:3151 ++#: attribs.c:416 c-common.c:4306 c-common.c:4325 c-common.c:4343 ++#: c-common.c:4370 c-common.c:4389 c-common.c:4412 c-common.c:4435 ++#: c-common.c:4461 c-common.c:4495 c-common.c:4539 c-common.c:4567 ++#: c-common.c:4595 c-common.c:4614 c-common.c:4881 c-common.c:4903 ++#: c-common.c:4938 c-common.c:5005 c-common.c:5051 c-common.c:5109 ++#: c-common.c:5140 c-common.c:5440 c-common.c:5463 c-common.c:5502 ++#: config/arm/arm.c:2281 config/arm/arm.c:2308 config/avr/avr.c:4504 ++#: config/h8300/h8300.c:4284 config/h8300/h8300.c:4307 config/i386/i386.c:1626 ++#: config/i386/i386.c:15398 config/i386/winnt.c:86 config/ia64/ia64.c:1057 ++#: config/ip2k/ip2k.c:3151 config/rs6000/rs6000.c:15035 + #, c-format + msgid "`%s' attribute ignored" + msgstr "egenskaben '%s' ignoreret" +@@ -239,7 +239,7 @@ + + #. We can, however, treat "undefined" any way we please. + #. Call abort to encourage the user to fix the program. +-#: builtins.c:4134 c-typeck.c:1733 ++#: builtins.c:4134 c-typeck.c:1713 + msgid "if this code is reached, the program will abort" + msgstr "" + +@@ -276,404 +276,404 @@ + msgid "target format does not support infinity" + msgstr "målprocessoren understøtter ikke uendelig" + +-#: c-common.c:917 ++#: c-common.c:916 + msgid "%Hsuggest explicit braces to avoid ambiguous `else'" +-msgstr "" ++msgstr "%Hforeslår eksplicitte krøllede paranteser for at undgå tvetydig 'else'" + +-#: c-common.c:1141 +-#, fuzzy ++#: c-common.c:1140 + msgid "%J'%D' is not defined outside of function scope" +-msgstr "'%s' er ikke defineret uden for funktionsvirkefelt" ++msgstr "%J'%D' er ikke defineret uden for funktionsvirkefelt" + +-#: c-common.c:1161 ++#: c-common.c:1160 + #, c-format + msgid "string length `%d' is greater than the length `%d' ISO C%d compilers are required to support" + msgstr "strenglængden '%d' er større end den længde på '%d' som ISO C%d-oversættere er pålagt at understøtte" + +-#: c-common.c:1201 ++#: c-common.c:1200 + msgid "overflow in constant expression" + msgstr "overløb i konstant udtryk" + +-#: c-common.c:1221 ++#: c-common.c:1220 + msgid "integer overflow in expression" + msgstr "heltalsoverløb i udtryk" + +-#: c-common.c:1230 ++#: c-common.c:1229 + msgid "floating point overflow in expression" + msgstr "kommatalsoverløb i udtryk" + +-#: c-common.c:1236 ++#: c-common.c:1235 + msgid "vector overflow in expression" + msgstr "vektoroverløb i udtryk" + + #. This detects cases like converting -129 or 256 to unsigned char. +-#: c-common.c:1258 ++#: c-common.c:1257 + msgid "large integer implicitly truncated to unsigned type" + msgstr "stort heltal forkortes underforstået til type uden fortegn" + +-#: c-common.c:1260 ++#: c-common.c:1259 + msgid "negative integer implicitly converted to unsigned type" + msgstr "negativt heltal forkortes underforstået til type uden fortegn" + +-#: c-common.c:1306 ++#: c-common.c:1305 + msgid "overflow in implicit constant conversion" + msgstr "overløb i underforstået konstant konvertering" + +-#: c-common.c:1442 ++#: c-common.c:1441 + #, c-format + msgid "operation on `%s' may be undefined" + msgstr "brug af '%s' er muligvis ikke defineret" + +-#: c-common.c:1726 ++#: c-common.c:1725 + msgid "expression statement has incomplete type" + msgstr "udtrykket er af en ufuldstændig type" + +-#: c-common.c:1758 ++#: c-common.c:1757 + msgid "case label does not reduce to an integer constant" + msgstr "case-etiketten kan ikke reduceres til en heltalskonstant" + +-#: c-common.c:2088 ++#: c-common.c:2087 + msgid "invalid truth-value expression" + msgstr "ugyldigt sandhedsværdiudtryk" + +-#: c-common.c:2139 ++#: c-common.c:2138 + #, c-format + msgid "invalid operands to binary %s" + msgstr "ugyldige operander til binær %s" + +-#: c-common.c:2373 ++#: c-common.c:2372 + msgid "comparison is always false due to limited range of data type" + msgstr "sammenligning er altid falsk på grund af den begrænsede rækkevidde af datatypen" + +-#: c-common.c:2375 ++#: c-common.c:2374 + msgid "comparison is always true due to limited range of data type" + msgstr "sammenligning er altid sand på grund af den begrænsede rækkevidde af datatypen" + +-#: c-common.c:2445 ++#: c-common.c:2444 + msgid "comparison of unsigned expression >= 0 is always true" + msgstr "sammenligning med unsigned udtryk >= 0 er altid sand" + +-#: c-common.c:2454 ++#: c-common.c:2453 + msgid "comparison of unsigned expression < 0 is always false" + msgstr "sammenligning med unsigned udtryk < 0 er altid falsk" + +-#: c-common.c:2499 ++#: c-common.c:2498 + msgid "pointer of type `void *' used in arithmetic" + msgstr "henvisning af typen 'void *' benyttet i udregning" + +-#: c-common.c:2505 ++#: c-common.c:2504 + msgid "pointer to a function used in arithmetic" + msgstr "henvisning til en funktion benyttet i udregning" + +-#: c-common.c:2511 ++#: c-common.c:2510 + msgid "pointer to member function used in arithmetic" + msgstr "henvisning til en medlemsfunktion benyttet i udregning" + +-#: c-common.c:2600 f/com.c:14734 ++#: c-common.c:2599 f/com.c:14734 + msgid "struct type value used where scalar is required" + msgstr "værdi af struct-type angivet hvor skalar er påkrævet" + +-#: c-common.c:2604 f/com.c:14738 ++#: c-common.c:2603 f/com.c:14738 + msgid "union type value used where scalar is required" + msgstr "værdi af union-type angivet hvor skalar er påkrævet" + +-#: c-common.c:2608 f/com.c:14742 ++#: c-common.c:2607 f/com.c:14742 + msgid "array type value used where scalar is required" + msgstr "værdi af tabeltype angivet hvor skalar er påkrævet" + + #. Common Ada/Pascal programmer's mistake. We always warn + #. about this since it is so bad. +-#: c-common.c:2645 ++#: c-common.c:2644 + #, fuzzy + msgid "the address of `%D', will always evaluate as `true'" + msgstr "adressen af '%D' vil altid være 'true'" + +-#: c-common.c:2739 f/com.c:14874 ++#: c-common.c:2738 f/com.c:14874 + msgid "suggest parentheses around assignment used as truth value" + msgstr "foreslår paranteser omkring tildeling der er benyttet som boolsk værdi" + +-#: c-common.c:2785 c-common.c:2825 ++#: c-common.c:2784 c-common.c:2824 + msgid "invalid use of `restrict'" + msgstr "ugyldig brug af 'restrict'" + +-#: c-common.c:2935 ++#: c-common.c:2934 + msgid "invalid application of `sizeof' to a function type" + msgstr "ugyldig anvendelse af 'sizeof' på en funktionstype" + +-#: c-common.c:2945 ++#: c-common.c:2944 + #, c-format + msgid "invalid application of `%s' to a void type" + msgstr "ugyldig anvendelse af '%s' på en void-type" + +-#: c-common.c:2951 ++#: c-common.c:2950 + #, fuzzy + msgid "invalid application of `%s' to incomplete type `%T' " + msgstr "ugyldig anvendelse af '%s' på en ufuldstændig type" + +-#: c-common.c:2992 ++#: c-common.c:2991 + msgid "`__alignof' applied to a bit-field" + msgstr "'__alignof' benyttet på et bitfelt" + +-#: c-common.c:3484 ++#: c-common.c:3483 + #, c-format + msgid "cannot disable built-in function `%s'" + msgstr "kan ikke deaktivere den indbyggede funktion '%s'" + +-#: c-common.c:3645 c-typeck.c:1974 ++#: c-common.c:3644 c-typeck.c:1954 + #, c-format + msgid "too few arguments to function `%s'" + msgstr "for få parametre til funktionen '%s'" + +-#: c-common.c:3651 c-typeck.c:1835 ++#: c-common.c:3650 c-typeck.c:1815 + #, c-format + msgid "too many arguments to function `%s'" + msgstr "for mange parametre til funktionen '%s'" + +-#: c-common.c:3670 ++#: c-common.c:3669 + #, c-format + msgid "non-floating-point argument to function `%s'" + msgstr "parameter der ikke er et kommatal, til funktionen '%s'" + +-#: c-common.c:3897 ++#: c-common.c:3896 + msgid "pointers are not permitted as case values" + msgstr "henvisningsvariabler er ikke tilladt som case-værdier" + +-#: c-common.c:3901 ++#: c-common.c:3900 + #, fuzzy + msgid "range expressions in switch statements are non-standard" + msgstr "ISO C forbyder intervaludtryk i switch-sætninger" + +-#: c-common.c:3930 ++#: c-common.c:3929 + msgid "empty range specified" + msgstr "tomt interval angivet" + +-#: c-common.c:3981 ++#: c-common.c:3980 + msgid "duplicate (or overlapping) case value" + msgstr "case-værdi optræder mere end én gang (måske pga. intervalsammenfald)" + +-#: c-common.c:3982 +-#, fuzzy ++#: c-common.c:3981 + msgid "%Jthis is the first entry overlapping that value" +-msgstr "dette er det første punkt som falder sammen med den værdi" ++msgstr "%Jdette er det første punkt som falder sammen med den værdi" + +-#: c-common.c:3986 ++#: c-common.c:3985 + msgid "duplicate case value" + msgstr "case-værdi optræder mere end én gang" + +-#: c-common.c:3987 +-#, fuzzy ++#: c-common.c:3986 + msgid "%Jpreviously used here" +-msgstr "tidligere benyttet her" ++msgstr "%Jtidligere benyttet her" + +-#: c-common.c:3991 ++#: c-common.c:3990 + msgid "multiple default labels in one switch" + msgstr "flere default-etiketter i én switch-konstruktion" + +-#: c-common.c:3992 +-#, fuzzy ++#: c-common.c:3991 + msgid "%Jthis is the first default label" +-msgstr "dette er den første default-etiket" ++msgstr "%Jdette er den første default-etiket" + +-#: c-common.c:4017 +-#, fuzzy ++#: c-common.c:4016 + msgid "taking the address of a label is non-standard" +-msgstr "ISO C forbyder at tage adressen af en etiket" ++msgstr "at tage adressen af en etiket følger ikke standarden" + +-#: c-common.c:4063 ++#: c-common.c:4062 + msgid "%Hignoring return value of `%D', declared with attribute warn_unused_result" +-msgstr "" ++msgstr "%Hignorerer returværdi for '%D' erklæret med egenskaben warn_unused_result" + +-#: c-common.c:4068 ++#: c-common.c:4067 + msgid "%Hignoring return value of function declared with attribute warn_unused_result" +-msgstr "" ++msgstr "%Hignorerer returværdi af funktion erklæret med egenskaben warn_unused_result" + +-#: c-common.c:4649 ++#: c-common.c:4651 + #, c-format + msgid "unknown machine mode `%s'" + msgstr "ukendt maskintilstand '%s'" + +-#: c-common.c:4652 ++#: c-common.c:4654 + #, c-format + msgid "no data type for mode `%s'" + msgstr "ingen datatype til tilstanden '%s'" + +-#: c-common.c:4656 +-#, fuzzy, c-format ++#: c-common.c:4658 ++#, c-format + msgid "invalid pointer mode `%s'" +-msgstr "ugyldig operandkode '%c'" ++msgstr "ugyldig henvisningstilstand '%s'" + +-#: c-common.c:4663 c-common.c:5226 ++#: c-common.c:4665 c-common.c:5237 + #, c-format + msgid "unable to emulate '%s'" + msgstr "kunne ikke emulere '%s'" + +-#: c-common.c:4707 ++#: c-common.c:4686 ++#, fuzzy, c-format ++msgid "mode `%s' applied to inappropriate type" ++msgstr "'sigof' benyttet på en type der ikke er sammensat" ++ ++#: c-common.c:4718 + #, fuzzy + msgid "%Jsection attribute cannot be specified for local variables" + msgstr "sektionsegenskaben kan ikke angives for lokale variabler" + +-#: c-common.c:4718 ++#: c-common.c:4729 + #, fuzzy + msgid "%Jsection of '%D' conflicts with previous declaration" + msgstr "sektionen '%s' strider mod tidligere erklæring" + +-#: c-common.c:4727 ++#: c-common.c:4738 + #, fuzzy + msgid "%Jsection attribute not allowed for '%D'" + msgstr "sektionsegenskaben er ikke tilladt for '%s'" + +-#: c-common.c:4733 ++#: c-common.c:4744 + #, fuzzy + msgid "%Jsection attributes are not supported for this target" + msgstr "sektionsegenskaber understøttes ikke på denne målarkitektur" + +-#: c-common.c:4771 ++#: c-common.c:4782 + msgid "requested alignment is not a constant" + msgstr "angivet justering er ikke en konstant" + +-#: c-common.c:4776 ++#: c-common.c:4787 + msgid "requested alignment is not a power of 2" + msgstr "angivet justering er ikke en potens af 2" + +-#: c-common.c:4781 ++#: c-common.c:4792 + msgid "requested alignment is too large" + msgstr "angivet justering er for stor" + +-#: c-common.c:4807 ++#: c-common.c:4818 + #, fuzzy + msgid "%Jalignment may not be specified for '%D'" + msgstr "justering må ikke angives for '%s'" + +-#: c-common.c:4845 ++#: c-common.c:4856 + #, fuzzy + msgid "%J'%D' defined both normally and as an alias" + msgstr "'%s' er defineret både normalt og som et alias" + +-#: c-common.c:4855 ++#: c-common.c:4866 + msgid "alias arg not a string" + msgstr "aliasparameter er ikke en streng" + +-#: c-common.c:4898 ++#: c-common.c:4909 + msgid "visibility arg not a string" + msgstr "synlighedsparameter er ikke en streng" + +-#: c-common.c:4911 ++#: c-common.c:4922 + msgid "visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\"" + msgstr "synlighedsparameter skal være en af \"default\", \"hidden\", \"protected\" eller \"internal\"" + +-#: c-common.c:4937 ++#: c-common.c:4948 + msgid "tls_model arg not a string" + msgstr "tls_model-parameter er ikke en streng" + +-#: c-common.c:4946 ++#: c-common.c:4957 + msgid "tls_model arg must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\"" + msgstr "tls_model-parameter skal være en af \"local-exec\", \"initial-exec\", \"local-dynamic\" eller \"global-dynamic\"" + +-#: c-common.c:4968 c-common.c:5014 ++#: c-common.c:4979 c-common.c:5025 + #, fuzzy + msgid "%J'%E' attribute applies only to functions" + msgstr "'%s'-egenskaben kan kun anvendes sammen med funktioner" + +-#: c-common.c:4973 c-common.c:5019 ++#: c-common.c:4984 c-common.c:5030 + #, fuzzy + msgid "%Jcan't set '%E' attribute after definition" + msgstr "kan ikke angive '%s'-egenskaben efter definitionen" + +-#: c-common.c:5095 ++#: c-common.c:5106 + #, c-format + msgid "`%s' attribute ignored for `%s'" + msgstr "'%s'-egenskaben ignoreret for '%s'" + +-#: c-common.c:5158 ++#: c-common.c:5169 + #, c-format + msgid "invalid vector type for attribute `%s'" + msgstr "ugyldig vektortype for egenskaben '%s'" + +-#: c-common.c:5182 c-common.c:5214 ++#: c-common.c:5193 c-common.c:5225 + msgid "no vector mode with the size and type specified could be found" + msgstr "ingen vektortilstand med den angivne størrelse og typen kunne findes" + +-#: c-common.c:5316 ++#: c-common.c:5281 + msgid "nonnull attribute without arguments on a non-prototype" + msgstr "ikke-nul egenskab uden parametre til en ikke-prototype" + +-#: c-common.c:5331 ++#: c-common.c:5296 + #, c-format + msgid "nonnull argument has invalid operand number (arg %lu)" + msgstr "ikke-nul parameter har ugyldig operandnummer (parameter %lu)" + +-#: c-common.c:5350 ++#: c-common.c:5315 + #, c-format + msgid "nonnull argument with out-of-range operand number (arg %lu, operand %lu)" + msgstr "ikke-nul parameter med operandnummer uden for det gyldig interval (parameter %lu, operand %lu)" + +-#: c-common.c:5358 ++#: c-common.c:5323 + #, c-format + msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)" + msgstr "ikke-nul parameter refererer til ikke-henvisningsoperand (parameter %lu, operand %lu)" + +-#: c-common.c:5438 ++#: c-common.c:5403 + #, c-format + msgid "null argument where non-null required (arg %lu)" + msgstr "nulparameter hvor ikke-nul er påkrævet (parameter %lu)" + +-#: c-common.c:5509 ++#: c-common.c:5474 + #, fuzzy + msgid "cleanup arg not an identifier" + msgstr "'defined' optræder uden et kaldenavn" + +-#: c-common.c:5516 ++#: c-common.c:5481 + #, fuzzy + msgid "cleanup arg not a function" + msgstr "det kaldte objekt er ikke en funktion" + +-#: c-common.c:5877 ++#: c-common.c:5842 + #, c-format + msgid "%s at end of input" + msgstr "%s ved slutning af inddata" + +-#: c-common.c:5883 ++#: c-common.c:5848 + #, c-format + msgid "%s before %s'%c'" + msgstr "%s før %s'%c'" + +-#: c-common.c:5885 ++#: c-common.c:5850 + #, c-format + msgid "%s before %s'\\x%x'" + msgstr "%s før %s'\\x%x'" + +-#: c-common.c:5889 ++#: c-common.c:5854 + #, c-format + msgid "%s before string constant" + msgstr "%s før strengkonstant" + +-#: c-common.c:5891 ++#: c-common.c:5856 + #, c-format + msgid "%s before numeric constant" + msgstr "%s før talkonstant" + +-#: c-common.c:5893 ++#: c-common.c:5858 + #, c-format + msgid "%s before \"%s\"" + msgstr "%s før \"%s\"" + +-#: c-common.c:5895 ++#: c-common.c:5860 + #, c-format + msgid "%s before '%s' token" + msgstr "%s før symbolet '%s'" + + #. Use `%s' to print the string in case there are any escape + #. characters in the message. +-#: c-common.c:5897 c-typeck.c:2612 c-typeck.c:4004 c-typeck.c:4019 +-#: c-typeck.c:4034 final.c:2776 final.c:2778 gcc.c:4581 rtl-error.c:109 +-#: toplev.c:1357 config/cris/cris.c:552 cp/parser.c:1848 cp/typeck.c:4155 ++#: c-common.c:5862 c-typeck.c:2592 c-typeck.c:3984 c-typeck.c:3999 ++#: c-typeck.c:4014 final.c:2776 final.c:2778 gcc.c:4584 rtl-error.c:109 ++#: toplev.c:1357 config/cris/cris.c:552 cp/parser.c:1848 cp/typeck.c:4173 + #: java/expr.c:356 java/verify.c:1456 java/verify.c:1457 java/verify.c:1472 + #, c-format + msgid "%s" + msgstr "%s" + +-#: c-convert.c:82 c-typeck.c:1211 c-typeck.c:3444 cp/typeck.c:1363 +-#: cp/typeck.c:5708 treelang/tree-convert.c:79 ++#: c-convert.c:82 c-typeck.c:1211 c-typeck.c:3424 cp/typeck.c:1363 ++#: cp/typeck.c:5729 treelang/tree-convert.c:79 + msgid "void value not ignored as it ought to be" + msgstr "tom værdi er ikke ignoreret som den burde være" + +@@ -851,7 +851,7 @@ + #: c-decl.c:1221 + #, fuzzy + msgid "%Jredefinition of parameter '%D'" +-msgstr "omdefinering af 'struct %s'" ++msgstr "omdefinering af '%s'" + + #: c-decl.c:1230 + #, fuzzy +@@ -873,408 +873,407 @@ + msgid "%Jnon-const declaration of '%D' follows const declaration" + msgstr "erklæring uden static af '%s' følger static-erklæring" + +-#: c-decl.c:1262 ++#: c-decl.c:1267 + #, fuzzy + msgid "%Jredundant redeclaration of '%D'" + msgstr "overflødig omerklæring af '%D' i samme virkefelt" + +-#: c-decl.c:1581 ++#: c-decl.c:1586 + #, fuzzy + msgid "%Jdeclaration of '%D' shadows a parameter" + msgstr "erklæring af '%#D' skygger for en parameter" + +-#: c-decl.c:1583 ++#: c-decl.c:1588 + #, fuzzy + msgid "%Jdeclaration of '%D' shadows a global declaration" +-msgstr "erklæring af '%#D' skygger for en parameter" ++msgstr "erklæring af '%s' skygger for en global erklæring" + +-#: c-decl.c:1585 ++#: c-decl.c:1590 + #, fuzzy + msgid "%Jdeclaration of '%D' shadows a previous local" +-msgstr "erklæring af '%#D' skygger for en parameter" ++msgstr "erklæring af '%s' skygger for en tidligere lokal variabel" + +-#: c-decl.c:1587 cp/name-lookup.c:969 cp/name-lookup.c:992 ++#: c-decl.c:1592 cp/name-lookup.c:969 cp/name-lookup.c:992 + #: cp/name-lookup.c:1000 +-#, fuzzy + msgid "%Jshadowed declaration is here" +-msgstr "variabelerklæring er ikke tilladt her" ++msgstr "%Jskygget erklæring er her" + +-#: c-decl.c:1697 ++#: c-decl.c:1702 + #, c-format + msgid "nested extern declaration of `%s'" + msgstr "indlejret extern-erklæring af '%s'" + +-#: c-decl.c:1838 objc/objc-act.c:2534 objc/objc-act.c:6794 ++#: c-decl.c:1843 objc/objc-act.c:2534 objc/objc-act.c:6794 + #, fuzzy + msgid "%Jprevious declaration of '%D'" + msgstr "'%D' er tidligere erklæret" + +-#: c-decl.c:1879 c-decl.c:1881 ++#: c-decl.c:1884 c-decl.c:1886 + #, c-format + msgid "implicit declaration of function `%s'" + msgstr "underforstået erklæring af funktionen '%s'" + +-#: c-decl.c:1897 ++#: c-decl.c:1902 + #, c-format + msgid "`%s' undeclared here (not in a function)" + msgstr "'%s' ikke erklæret her (ikke i en funktion)" + +-#: c-decl.c:1903 ++#: c-decl.c:1908 + #, c-format + msgid "`%s' undeclared (first use in this function)" + msgstr "'%s' er ikke erklæret (først benyttet i denne funktion)" + +-#: c-decl.c:1908 ++#: c-decl.c:1913 + msgid "(Each undeclared identifier is reported only once" + msgstr "(et kaldenavn der ikke er erklæret, rapporteres kun én gang" + +-#: c-decl.c:1909 ++#: c-decl.c:1914 + msgid "for each function it appears in.)" + msgstr "per funktion)" + +-#: c-decl.c:1962 ++#: c-decl.c:1967 + #, c-format + msgid "label %s referenced outside of any function" + msgstr "der er blevet henvist til etiketten '%s' uden for en funktion" + +-#: c-decl.c:2009 ++#: c-decl.c:2014 + #, c-format + msgid "duplicate label declaration `%s'" + msgstr "etiketten '%s' er blevet erklæret mere end én gang" + +-#: c-decl.c:2010 ++#: c-decl.c:2015 + #, fuzzy + msgid "%Jthis is a previous declaration" + msgstr "dette er en tidligere erklæring" + +-#: c-decl.c:2045 ++#: c-decl.c:2050 + #, fuzzy + msgid "%Hduplicate label `%D'" + msgstr "etiketten '%D' optræder mere end én gang" + +-#: c-decl.c:2047 ++#: c-decl.c:2052 + #, fuzzy + msgid "%J`%D' previously defined here" + msgstr "'%#D' tidligere defineret her" + +-#: c-decl.c:2049 ++#: c-decl.c:2054 + #, fuzzy + msgid "%J`%D' previously declared here" + msgstr "'%#D' tidligere erklæret her" + +-#: c-decl.c:2069 ++#: c-decl.c:2074 + msgid "%Htraditional C lacks a separate namespace for labels, identifier `%s' conflicts" + msgstr "" + +-#: c-decl.c:2140 ++#: c-decl.c:2145 + #, fuzzy + msgid "%H`%s' defined as wrong kind of tag" + msgstr "'%s' omerklæret som en anden form for symbol" + +-#: c-decl.c:2378 ++#: c-decl.c:2383 + msgid "unnamed struct/union that defines no instances" + msgstr "unavngiven struct/union som ikke definerer nogen instanser" + +-#: c-decl.c:2397 ++#: c-decl.c:2402 + msgid "useless keyword or type name in empty declaration" + msgstr "ubrugeligt reserveret ord eller typenavn i tom erklæring" + +-#: c-decl.c:2404 ++#: c-decl.c:2409 + msgid "two types specified in one empty declaration" + msgstr "to typer angivet i én tom erklæring" + +-#: c-decl.c:2409 c-parse.y:735 c-parse.y:737 objc/objc-parse.y:776 +-#: objc/objc-parse.y:778 objc/objc-parse.y:3017 ++#: c-decl.c:2414 c-parse.y:735 c-parse.y:737 objc/objc-parse.y:776 ++#: objc/objc-parse.y:778 objc/objc-parse.y:3016 + msgid "empty declaration" + msgstr "tom erklæring" + +-#: c-decl.c:2435 ++#: c-decl.c:2440 + msgid "ISO C90 does not support `static' or type qualifiers in parameter array declarators" + msgstr "ISO C90 understøtter ikke 'static' eller typemodifikationer i parametertabelerklæringer" + +-#: c-decl.c:2437 ++#: c-decl.c:2442 + msgid "ISO C90 does not support `[*]' array declarators" + msgstr "ISO C90 understøtter ikke tabelerklæringer med '[*]'" + +-#: c-decl.c:2440 ++#: c-decl.c:2445 + msgid "GCC does not yet properly implement `[*]' array declarators" + msgstr "GCC understøtter endnu ikke ordentligt tabelerklæringer med '[*]'" + +-#: c-decl.c:2456 ++#: c-decl.c:2461 + msgid "static or type qualifiers in abstract declarator" + msgstr "static eller typemodifikationer i abstrakt erklæring" + +-#: c-decl.c:2526 ++#: c-decl.c:2531 + #, fuzzy + msgid "%J'%D' is usually a function" + msgstr "'%s' er sædvanligvis en funktion" + + # init dækker over værditildeling her - samme for de næste mange +-#: c-decl.c:2535 ++#: c-decl.c:2540 + #, c-format + msgid "typedef `%s' is initialized (use __typeof__ instead)" + msgstr "typedef '%s' bliver tildelt en værdi (benyt __typeof__ i stedet)" + +-#: c-decl.c:2541 ++#: c-decl.c:2546 + #, c-format + msgid "function `%s' is initialized like a variable" + msgstr "funktionen '%s' bliver tildelt en startværdi som en variabel" + + #. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE. +-#: c-decl.c:2548 ++#: c-decl.c:2553 + #, c-format + msgid "parameter `%s' is initialized" + msgstr "parameteren '%s' bliver tildelt en startværdi" + +-#: c-decl.c:2568 c-typeck.c:4254 ++#: c-decl.c:2573 c-typeck.c:4234 + msgid "variable-sized object may not be initialized" + msgstr "et objekt af variabel størrelse må ikke tildeles en startværdi" + +-#: c-decl.c:2574 ++#: c-decl.c:2579 + #, c-format + msgid "variable `%s' has initializer but incomplete type" + msgstr "variablen '%s' bliver tildelt en startværdi, men er af en ufuldstændig type" + +-#: c-decl.c:2580 ++#: c-decl.c:2585 + #, c-format + msgid "elements of array `%s' have incomplete type" + msgstr "elementer i tabellen '%s' er af en ufuldstændig type" + +-#: c-decl.c:2649 c-decl.c:5451 cp/decl.c:3761 cp/decl.c:10141 ++#: c-decl.c:2654 c-decl.c:5462 cp/decl.c:3775 cp/decl.c:10238 + #, fuzzy + msgid "%Jinline function '%D' given attribute noinline" + msgstr "inline funktion '%s' givet egenskaben noinline" + +-#: c-decl.c:2725 ++#: c-decl.c:2730 + #, fuzzy + msgid "%Jinitializer fails to determine size of '%D'" + msgstr "startværdien giver ikke størrelsen af '%D'" + +-#: c-decl.c:2730 ++#: c-decl.c:2735 + #, fuzzy + msgid "%Jarray size missing in '%D'" + msgstr "tabelstørrelsen mangler i '%D'" + +-#: c-decl.c:2746 ++#: c-decl.c:2751 + #, fuzzy + msgid "%Jzero or negative size array '%D'" + msgstr "nul eller negativ størrelse for tabellen '%s'" + +-#: c-decl.c:2774 ++#: c-decl.c:2779 + #, fuzzy + msgid "%Jstorage size of '%D' isn't known" + msgstr "lagringsstørrelsen af '%D' er ikke kendt" + +-#: c-decl.c:2784 ++#: c-decl.c:2789 + #, fuzzy + msgid "%Jstorage size of '%D' isn't constant" + msgstr "lagringsstørrelsen af '%D' er ikke konstant" + +-#: c-decl.c:2867 ++#: c-decl.c:2872 + #, fuzzy + msgid "%Jignoring asm-specifier for non-static local variable '%D'" + msgstr "ignorerer asm-anvisning til den ikke-statiske, lokale variabel '%s'" + +-#: c-decl.c:2978 ++#: c-decl.c:2983 + msgid "ISO C forbids forward parameter declarations" + msgstr "ISO C forbyder forhåndsparametererklæringer" + +-#: c-decl.c:3160 ++#: c-decl.c:3165 + #, fuzzy + msgid "" + msgstr "" + +-#: c-decl.c:3169 ++#: c-decl.c:3174 + #, c-format + msgid "bit-field `%s' width not an integer constant" + msgstr "bredden af bitfeltet '%s' er ikke en heltalskonstant" + +-#: c-decl.c:3177 ++#: c-decl.c:3182 + #, c-format + msgid "negative width in bit-field `%s'" + msgstr "negativ bredde i bitfeltet '%s'" + +-#: c-decl.c:3182 ++#: c-decl.c:3187 + #, c-format + msgid "zero width for bit-field `%s'" + msgstr "en bredde på nul for bitfeltet '%s'" + +-#: c-decl.c:3192 ++#: c-decl.c:3197 + #, c-format + msgid "bit-field `%s' has invalid type" + msgstr "bitfeltet '%s' er af en ufuldstændig type" + +-#: c-decl.c:3201 ++#: c-decl.c:3206 + #, fuzzy, c-format + msgid "type of bit-field `%s' is a GCC extension" + msgstr "linjestilsdirektiv er en GCC-udvidelse" + +-#: c-decl.c:3210 ++#: c-decl.c:3215 + #, c-format + msgid "width of `%s' exceeds its type" + msgstr "bredden af '%s' overstiger typen" + + # RETMIG: find på et eller andet med præcisionen +-#: c-decl.c:3220 ++#: c-decl.c:3225 + #, c-format + msgid "`%s' is narrower than values of its type" + msgstr "'%s' er smallere end værdier af dens type" + +-#: c-decl.c:3370 cp/decl.c:6805 ++#: c-decl.c:3375 cp/decl.c:6900 + msgid "`long long long' is too long for GCC" + msgstr "'long long long' er for langt for GCC" + +-#: c-decl.c:3375 ++#: c-decl.c:3380 + msgid "ISO C90 does not support `long long'" + msgstr "ISO C90 understøtter ikke 'long long'" + +-#: c-decl.c:3384 c-decl.c:3387 cp/decl.c:6810 ++#: c-decl.c:3389 c-decl.c:3392 cp/decl.c:6905 + #, c-format + msgid "duplicate `%s'" + msgstr "'%s' optræder mere end én gang" + +-#: c-decl.c:3397 cp/decl.c:6816 ++#: c-decl.c:3402 cp/decl.c:6911 + msgid "`__thread' before `extern'" + msgstr "'__thread' før 'extern'" + +-#: c-decl.c:3399 cp/decl.c:6818 ++#: c-decl.c:3404 cp/decl.c:6913 + msgid "`__thread' before `static'" + msgstr "'__thread' før 'static'" + +-#: c-decl.c:3407 cp/decl.c:6845 ++#: c-decl.c:3412 cp/decl.c:6940 + #, c-format + msgid "two or more data types in declaration of `%s'" + msgstr "mere end én datatype i erklæringen af '%s'" + +-#: c-decl.c:3427 cp/decl.c:6850 ++#: c-decl.c:3432 cp/decl.c:6945 + #, c-format + msgid "`%s' fails to be a typedef or built in type" + msgstr "'%s' er hverken en typedef eller en indbygget type" + +-#: c-decl.c:3466 ++#: c-decl.c:3471 + #, c-format + msgid "type defaults to `int' in declaration of `%s'" + msgstr "typen antages at være 'int' i erklæringen af '%s'" + +-#: c-decl.c:3495 ++#: c-decl.c:3500 + #, c-format + msgid "both long and short specified for `%s'" + msgstr "både long og short er angivet for '%s'" + +-#: c-decl.c:3499 cp/decl.c:6950 ++#: c-decl.c:3504 cp/decl.c:7045 + #, c-format + msgid "long or short specified with char for `%s'" + msgstr "long eller short angivet samtidig med char for '%s'" + +-#: c-decl.c:3506 cp/decl.c:6954 ++#: c-decl.c:3511 cp/decl.c:7049 + #, c-format + msgid "long or short specified with floating type for `%s'" + msgstr "long eller short angivet samtidig med en kommatalstype for '%s'" + +-#: c-decl.c:3509 ++#: c-decl.c:3514 + msgid "the only valid combination is `long double'" + msgstr "den eneste gyldige kombination er 'long double'" + +-#: c-decl.c:3515 ++#: c-decl.c:3520 + #, c-format + msgid "both signed and unsigned specified for `%s'" + msgstr "både signed og unsigned er angivet for '%s'" + +-#: c-decl.c:3517 cp/decl.c:6943 ++#: c-decl.c:3522 cp/decl.c:7038 + #, c-format + msgid "long, short, signed or unsigned invalid for `%s'" + msgstr "long, short, signed og unsigned er ugyldige for '%s'" + +-#: c-decl.c:3523 cp/decl.c:6963 ++#: c-decl.c:3528 cp/decl.c:7058 + #, c-format + msgid "long, short, signed or unsigned used invalidly for `%s'" + msgstr "long, short, signed og unsigned er benyttet på ugyldig vis for '%s'" + +-#: c-decl.c:3541 cp/decl.c:6984 ++#: c-decl.c:3546 cp/decl.c:7079 + #, c-format + msgid "complex invalid for `%s'" + msgstr "complex ugyldig for '%s'" + +-#: c-decl.c:3583 ++#: c-decl.c:3588 + msgid "ISO C90 does not support complex types" + msgstr "ISO C90 understøtter ikke komplekse typer" + +-#: c-decl.c:3595 ++#: c-decl.c:3600 + msgid "ISO C does not support plain `complex' meaning `double complex'" + msgstr "ISO C understøtter ikke at blot 'complex' betyder 'double complex'" + +-#: c-decl.c:3601 c-decl.c:3613 ++#: c-decl.c:3606 c-decl.c:3618 + msgid "ISO C does not support complex integer types" + msgstr "ISO C understøtter ikke komplekse heltalstyper" + +-#: c-decl.c:3643 c-decl.c:4104 cp/decl.c:7576 ++#: c-decl.c:3648 c-decl.c:4115 cp/decl.c:7671 + msgid "duplicate `const'" + msgstr "'const' optræder mere end én gang" + +-#: c-decl.c:3645 c-decl.c:4108 cp/decl.c:7580 ++#: c-decl.c:3650 c-decl.c:4119 cp/decl.c:7675 + msgid "duplicate `restrict'" + msgstr "'restrict' optræder mere end én gang" + +-#: c-decl.c:3647 c-decl.c:4106 cp/decl.c:7578 ++#: c-decl.c:3652 c-decl.c:4117 cp/decl.c:7673 + msgid "duplicate `volatile'" + msgstr "'volatile' optræder mere end én gang" + +-#: c-decl.c:3676 cp/decl.c:7147 ++#: c-decl.c:3681 cp/decl.c:7242 + #, c-format + msgid "multiple storage classes in declaration of `%s'" + msgstr "flere lagringsklasser optræder i erklæringen af '%s'" + +-#: c-decl.c:3686 ++#: c-decl.c:3691 + msgid "function definition declared `auto'" + msgstr "'auto' er påhæftet funktionsdefinitionen" + +-#: c-decl.c:3688 ++#: c-decl.c:3693 + msgid "function definition declared `register'" + msgstr "'register' er påhæftet funktionsdefinitionen" + +-#: c-decl.c:3690 ++#: c-decl.c:3695 + msgid "function definition declared `typedef'" + msgstr "'typedef' er påhæftet funktionsdefinitionen" + +-#: c-decl.c:3692 ++#: c-decl.c:3697 + msgid "function definition declared `__thread'" + msgstr "'__thread' er påhæftet funktionsdefinitionen" + +-#: c-decl.c:3705 ++#: c-decl.c:3710 + #, c-format + msgid "storage class specified for structure field `%s'" + msgstr "lagringsklasse angivet for strukturfelt '%s'" + +-#: c-decl.c:3709 cp/decl.c:7192 ++#: c-decl.c:3714 cp/decl.c:7287 + #, c-format + msgid "storage class specified for parameter `%s'" + msgstr "lagringsklasse angivet for parameter '%s'" + +-#: c-decl.c:3712 cp/decl.c:7194 ++#: c-decl.c:3717 cp/decl.c:7289 + msgid "storage class specified for typename" + msgstr "lagringsklasse angivet for typenavn" + +-#: c-decl.c:3724 cp/decl.c:7209 ++#: c-decl.c:3729 cp/decl.c:7304 + #, c-format + msgid "`%s' initialized and declared `extern'" + msgstr "'%s' bliver tildelt en startværdi og er samtidig erklæret 'extern'" + +-#: c-decl.c:3726 cp/decl.c:7212 ++#: c-decl.c:3731 cp/decl.c:7307 + #, c-format + msgid "`%s' has both `extern' and initializer" + msgstr "'%s' er erklæret 'extern', men bliver tildelt en startværdi" + +-#: c-decl.c:3731 ++#: c-decl.c:3736 + #, fuzzy, c-format + msgid "file-scope declaration of `%s' specifies `auto'" + msgstr "erklæring af '%s' på øverste niveau angiver 'auto'" + +-#: c-decl.c:3736 cp/decl.c:7216 ++#: c-decl.c:3741 cp/decl.c:7311 + #, c-format + msgid "nested function `%s' declared `extern'" + msgstr "indlejret funktion '%s' er erklæret 'extern'" + +-#: c-decl.c:3742 cp/decl.c:7226 ++#: c-decl.c:3747 cp/decl.c:7321 + #, c-format + msgid "function-scope `%s' implicitly auto and declared `__thread'" + msgstr "'%s' i funktionsvirkefelt underforstået auto og erklæret '__thread'" +@@ -1282,473 +1281,473 @@ + #. Only the innermost declarator (making a parameter be of + #. array type which is converted to pointer type) + #. may have static or type qualifiers. +-#: c-decl.c:3781 c-decl.c:3974 ++#: c-decl.c:3786 c-decl.c:3979 + msgid "static or type qualifiers in non-parameter array declarator" + msgstr "static eller typemodifikationer i ikke-parametertabelerklæring" + +-#: c-decl.c:3825 ++#: c-decl.c:3830 + #, c-format + msgid "declaration of `%s' as array of voids" + msgstr "'%s' erklæret som en tabel af void" + +-#: c-decl.c:3831 ++#: c-decl.c:3836 + #, c-format + msgid "declaration of `%s' as array of functions" + msgstr "'%s' erklæret som en tabel af funktioner" + +-#: c-decl.c:3836 ++#: c-decl.c:3841 + msgid "invalid use of structure with flexible array member" + msgstr "ugyldig brug af struktur med fleksibelt tabelmedlem" + +-#: c-decl.c:3855 ++#: c-decl.c:3860 + #, c-format + msgid "size of array `%s' has non-integer type" + msgstr "størrelsen af tabellen '%s' er ikke af en heltalstype" + +-#: c-decl.c:3860 ++#: c-decl.c:3865 + #, c-format + msgid "ISO C forbids zero-size array `%s'" + msgstr "ISO C forbyder tabellen '%s' med størrelsen nul" + +-#: c-decl.c:3867 ++#: c-decl.c:3872 + #, c-format + msgid "size of array `%s' is negative" + msgstr "størrelsen af tabellen '%s' er negativ" + +-#: c-decl.c:3880 ++#: c-decl.c:3885 + #, c-format + msgid "ISO C90 forbids array `%s' whose size can't be evaluated" + msgstr "ISO C90 forbyder tabellen '%s' hvis størrelse ikke kan bestemmes" + +-#: c-decl.c:3883 ++#: c-decl.c:3888 + #, c-format + msgid "ISO C90 forbids variable-size array `%s'" + msgstr "ISO C90 forbyder tabellen '%s' med variabel størrelse" + +-#: c-decl.c:3913 c-decl.c:4131 cp/decl.c:7755 ++#: c-decl.c:3918 c-decl.c:4142 cp/decl.c:7850 + #, c-format + msgid "size of array `%s' is too large" + msgstr "størrelsen af tabellen '%s' er for stor" + +-#: c-decl.c:3939 ++#: c-decl.c:3944 + msgid "ISO C90 does not support flexible array members" + msgstr "ISO C90 understøtter ikke fleksible tabelmedlemmer" + +-#: c-decl.c:3949 ++#: c-decl.c:3954 + msgid "array type has incomplete element type" + msgstr "tabeltypen er af en ufuldstændig type" + +-#: c-decl.c:3994 cp/decl.c:7347 ++#: c-decl.c:4009 cp/decl.c:7442 + #, c-format + msgid "`%s' declared as function returning a function" + msgstr "'%s' er erklæret som en funktion der returnerer en funktion" + +-#: c-decl.c:3999 cp/decl.c:7352 ++#: c-decl.c:4014 cp/decl.c:7447 + #, c-format + msgid "`%s' declared as function returning an array" + msgstr "'%s' er erklæret som en funktion der returnerer en tabel" + +-#: c-decl.c:4027 ++#: c-decl.c:4038 + msgid "ISO C forbids qualified void function return type" + msgstr "ISO C forbyder void funktionsreturtype med modifikationer" + +-#: c-decl.c:4031 ++#: c-decl.c:4042 + msgid "type qualifiers ignored on function return type" + msgstr "typemodifikationer ignoreret i funktionsreturtypen" + +-#: c-decl.c:4060 c-decl.c:4146 c-decl.c:4270 c-decl.c:4356 ++#: c-decl.c:4071 c-decl.c:4157 c-decl.c:4281 c-decl.c:4367 + msgid "ISO C forbids qualified function types" + msgstr "ISO C forbyder funktionsreturtype med modifikationer" + +-#: c-decl.c:4100 cp/decl.c:7572 ++#: c-decl.c:4111 cp/decl.c:7667 + msgid "invalid type modifier within pointer declarator" + msgstr "ugyldig typemodifikation i erklæring af henvisning" + +-#: c-decl.c:4181 ++#: c-decl.c:4192 + msgid "ISO C forbids const or volatile function types" + msgstr "ISO C forbyder const eller volatile funktionstyper" + +-#: c-decl.c:4201 cp/decl.c:8036 ++#: c-decl.c:4212 + #, c-format + msgid "variable or field `%s' declared void" + msgstr "variabel eller felt '%s' erklæret void" + +-#: c-decl.c:4234 ++#: c-decl.c:4245 + msgid "attributes in parameter array declarator ignored" + msgstr "egenskaber i parametertabelerklæring ignoreret" + +-#: c-decl.c:4259 ++#: c-decl.c:4270 + msgid "invalid type modifier within array declarator" + msgstr "ugyldig typemodifikation i tabelerklæring" + +-#: c-decl.c:4304 ++#: c-decl.c:4315 + #, c-format + msgid "field `%s' declared as a function" + msgstr "feltet '%s' er erklæret som en funktion" + +-#: c-decl.c:4310 ++#: c-decl.c:4321 + #, c-format + msgid "field `%s' has incomplete type" + msgstr "feltet '%s' er af en ufuldstændig type" + +-#: c-decl.c:4336 c-decl.c:4338 c-decl.c:4340 c-decl.c:4347 ++#: c-decl.c:4347 c-decl.c:4349 c-decl.c:4351 c-decl.c:4358 + #, c-format + msgid "invalid storage class for function `%s'" + msgstr "ugyldig lagringsklasse for funktion '%s'" + +-#: c-decl.c:4362 ++#: c-decl.c:4373 + msgid "`noreturn' function returns non-void value" + msgstr "en funktion uden returtype returnerer en ikke-tom værdi" + + # at oversætte inline med et udsagnsord her bliver vist for tvetydigt +-#: c-decl.c:4377 ++#: c-decl.c:4388 + msgid "cannot inline function `main'" + msgstr "funktionen 'main' kan ikke være inline" + +-#: c-decl.c:4431 ++#: c-decl.c:4442 + #, fuzzy + msgid "variable previously declared `static' redeclared `extern'" + msgstr "variabel eller felt '%s' erklæret void" + +-#: c-decl.c:4440 ++#: c-decl.c:4451 + #, fuzzy + msgid "%Jvariable '%D' declared `inline'" + msgstr "variablen '%s' er erklæret 'inline'" + + #. A mere warning is sure to result in improper semantics + #. at runtime. Don't bother to allow this to compile. +-#: c-decl.c:4468 cp/decl.c:5903 ++#: c-decl.c:4479 cp/decl.c:5972 + msgid "thread-local storage not supported for this target" + msgstr "trådlokal lagring understøttes ikke på målarkitekturen" + +-#: c-decl.c:4529 c-decl.c:5495 ++#: c-decl.c:4540 c-decl.c:5506 + msgid "function declaration isn't a prototype" + msgstr "funktionserklæringen er ikke en prototype" + +-#: c-decl.c:4535 ++#: c-decl.c:4546 + msgid "parameter names (without types) in function declaration" + msgstr "parameternavne (uden typer) i funktionserklæringen" + +-#: c-decl.c:4563 ++#: c-decl.c:4574 + #, c-format + msgid "parameter `%s' has incomplete type" + msgstr "parameteren '%s' er af en ufuldstændig type" + +-#: c-decl.c:4566 ++#: c-decl.c:4577 + msgid "parameter has incomplete type" + msgstr "parameteren er af en ufuldstændig type" + +-#: c-decl.c:4615 ++#: c-decl.c:4626 + #, fuzzy + msgid "\"void\" as only parameter may not be qualified" + msgstr "typedef-navn kan ikke klassemodificeres" + +-#: c-decl.c:4636 ++#: c-decl.c:4647 + #, fuzzy + msgid "\"void\" must be the only parameter" + msgstr "ugyldig brug af skabelonstypeparameter" + +-#: c-decl.c:4653 ++#: c-decl.c:4664 + #, fuzzy + msgid "%Jparameter \"%D\" has just a forward declaration" + msgstr "parameteren '%s' har kun en forhåndserklæring" + + #. The first %s will be one of 'struct', 'union', or 'enum'. +-#: c-decl.c:4681 ++#: c-decl.c:4692 + #, fuzzy, c-format + msgid "\"%s %s\" declared inside parameter list" + msgstr "'struct %s' erklæret inde i en parameterliste" + + #. The %s will be one of 'struct', 'union', or 'enum'. +-#: c-decl.c:4685 ++#: c-decl.c:4696 + #, fuzzy, c-format + msgid "anonymous %s declared inside parameter list" + msgstr "anonym struct erklæret inde i en parameterliste" + +-#: c-decl.c:4689 ++#: c-decl.c:4700 + msgid "its scope is only this definition or declaration, which is probably not what you want" + msgstr "dens virkefelt er kun denne definition eller erklæring hvilket sandsynligvis ikke er hvad du ønsker." + +-#: c-decl.c:4774 ++#: c-decl.c:4785 + #, c-format + msgid "redefinition of `union %s'" + msgstr "omdefinering af 'union %s'" + +-#: c-decl.c:4776 ++#: c-decl.c:4787 + #, c-format + msgid "redefinition of `struct %s'" + msgstr "omdefinering af 'struct %s'" + +-#: c-decl.c:4844 cp/decl.c:3534 ++#: c-decl.c:4855 cp/decl.c:3548 + msgid "declaration does not declare anything" + msgstr "erklæring erklærer ikke noget" + +-#: c-decl.c:4889 c-decl.c:4905 ++#: c-decl.c:4900 c-decl.c:4916 + #, fuzzy + msgid "%Jduplicate member '%D'" + msgstr "medlemmet '%D' optræder mere end én gang" + + # engelsk original forkortet +-#: c-decl.c:4939 c-decl.c:4942 ++#: c-decl.c:4950 c-decl.c:4953 + #, c-format + msgid "%s defined inside parms" + msgstr "%s defineret inden i parameterliste" + +-#: c-decl.c:4940 c-decl.c:4943 c-decl.c:4954 ++#: c-decl.c:4951 c-decl.c:4954 c-decl.c:4965 + msgid "union" + msgstr "union" + +-#: c-decl.c:4940 c-decl.c:4943 ++#: c-decl.c:4951 c-decl.c:4954 + msgid "structure" + msgstr "struktur" + +-#: c-decl.c:4953 ++#: c-decl.c:4964 + #, c-format + msgid "%s has no %s" + msgstr "%s har ingen %s" + +-#: c-decl.c:4954 ++#: c-decl.c:4965 + msgid "struct" + msgstr "struct" + +-#: c-decl.c:4955 ++#: c-decl.c:4966 + msgid "named members" + msgstr "navngivne medlemmer" + +-#: c-decl.c:4955 ++#: c-decl.c:4966 + msgid "members" + msgstr "medlemmer" + +-#: c-decl.c:4994 ++#: c-decl.c:5005 + #, c-format + msgid "nested redefinition of `%s'" + msgstr "indlejret omdefinering af '%s'" + +-#: c-decl.c:5015 ++#: c-decl.c:5026 + #, fuzzy + msgid "%Jflexible array member in union" + msgstr "fleksibelt tabelmedlem i union" + +-#: c-decl.c:5020 ++#: c-decl.c:5031 + #, fuzzy + msgid "%Jflexible array member not at end of struct" + msgstr "fleksibelt tabelmedlem ikke i slutningen af struktur" + +-#: c-decl.c:5025 ++#: c-decl.c:5036 + #, fuzzy + msgid "%Jflexible array member in otherwise empty struct" + msgstr "fleksibelt tabelmedlem i ellers tom struktur" + +-#: c-decl.c:5032 ++#: c-decl.c:5043 + #, fuzzy + msgid "%Jinvalid use of structure with flexible array member" + msgstr "ugyldig brug af struktur med fleksibelt tabelmedlem" + +-#: c-decl.c:5127 ++#: c-decl.c:5138 + msgid "union cannot be made transparent" + msgstr "union kan ikke ikke gøres gennemsigtig" + + #. This enum is a named one that has been declared already. +-#: c-decl.c:5196 ++#: c-decl.c:5207 + #, c-format + msgid "redeclaration of `enum %s'" + msgstr "omerklæring af 'enum %s'" + + # original forkortet +-#: c-decl.c:5227 ++#: c-decl.c:5238 + msgid "enum defined inside parms" + msgstr "enum defineret inden i parameterliste" + +-#: c-decl.c:5260 ++#: c-decl.c:5271 + msgid "enumeration values exceed range of largest integer" + msgstr "enum-værdier overstige rækkevidden af det største heltal" + +-#: c-decl.c:5363 ++#: c-decl.c:5374 + #, c-format + msgid "enumerator value for `%s' not integer constant" + msgstr "enum-værdien for '%s' er ikke en heltalskonstant" + +-#: c-decl.c:5376 ++#: c-decl.c:5387 + msgid "overflow in enumeration values" + msgstr "enum-værdier for store" + +-#: c-decl.c:5381 ++#: c-decl.c:5392 + msgid "ISO C restricts enumerator values to range of `int'" + msgstr "ISO C begrænser enum-værdier til rækkevidden af 'int'" + +-#: c-decl.c:5457 ++#: c-decl.c:5468 + msgid "return type is an incomplete type" + msgstr "returtypen er en ufuldstændig type" + +-#: c-decl.c:5465 ++#: c-decl.c:5476 + msgid "return type defaults to `int'" + msgstr "returtypen antages at være 'int'" + +-#: c-decl.c:5501 ++#: c-decl.c:5512 + #, fuzzy + msgid "%Jno previous prototype for '%D'" + msgstr "ingen tidligere prototype for '%s'" + +-#: c-decl.c:5507 ++#: c-decl.c:5518 + #, fuzzy + msgid "%J'%D' was used with no prototype before its definition" + msgstr "'%s' blev brugt uden en prototype før dens definition" + +-#: c-decl.c:5514 ++#: c-decl.c:5525 + #, fuzzy + msgid "%Jno previous declaration for '%D'" + msgstr "ingen tidligere erklæring af '%s'" + +-#: c-decl.c:5520 ++#: c-decl.c:5531 + #, fuzzy + msgid "%J`%D' was used with no declaration before its definition" + msgstr "'%s' blev brugt uden en erklæring før dens definition" + +-#: c-decl.c:5556 c-decl.c:6062 ++#: c-decl.c:5567 c-decl.c:6073 + #, fuzzy + msgid "%Jreturn type of '%D' is not `int'" + msgstr "returtypen til '%s' er ikke 'int'" + +-#: c-decl.c:5571 ++#: c-decl.c:5582 + #, fuzzy + msgid "%Jfirst argument of '%D' should be `int'" + msgstr "den første parameter til '%s' skal være 'int'" + +-#: c-decl.c:5580 ++#: c-decl.c:5591 + #, fuzzy + msgid "%Jsecond argument of '%D' should be 'char **'" + msgstr "den anden parameter til '%s' skal være 'char **'" + +-#: c-decl.c:5589 ++#: c-decl.c:5600 + #, fuzzy + msgid "%Jthird argument of '%D' should probably be 'char **'" + msgstr "den tredje parameter til '%s' skal sandsynligvis være 'char **'" + +-#: c-decl.c:5599 ++#: c-decl.c:5610 + #, fuzzy + msgid "%J'%D' takes only zero or two arguments" + msgstr "'%s' tager kun mod to eller ingen parametre" + +-#: c-decl.c:5602 ++#: c-decl.c:5613 + #, fuzzy + msgid "%J'%D' is normally a non-static function" + msgstr "'%s' er normalt en ikke-statisk funktion" + +-#: c-decl.c:5658 ++#: c-decl.c:5669 + msgid "%Jold-style parameter declarations in prototyped function definition" + msgstr "" + +-#: c-decl.c:5672 ++#: c-decl.c:5683 + #, fuzzy + msgid "%Jparameter name omitted" + msgstr "parameternavn udeladt" + +-#: c-decl.c:5747 ++#: c-decl.c:5758 + #, fuzzy + msgid "%Jparameter name missing from parameter list" + msgstr "parameternavn mangler fra parameterliste" + +-#: c-decl.c:5757 ++#: c-decl.c:5768 + #, fuzzy + msgid "%J\"%D\" declared as a non-parameter" + msgstr "'%D' er erklæret som en ven" + +-#: c-decl.c:5762 ++#: c-decl.c:5773 + #, fuzzy + msgid "%Jmultiple parameters named \"%D\"" + msgstr "flere parametre ved navn '%s'" + +-#: c-decl.c:5770 ++#: c-decl.c:5781 + #, fuzzy + msgid "%Jparameter \"%D\" declared void" + msgstr "parameteren '%D' erklæret void" + +-#: c-decl.c:5785 c-decl.c:5787 ++#: c-decl.c:5796 c-decl.c:5798 + #, fuzzy + msgid "%Jtype of \"%D\" defaults to \"int\"" + msgstr "typen til '%s' antages at være 'int'" + +-#: c-decl.c:5801 ++#: c-decl.c:5812 + #, fuzzy + msgid "%Jparameter \"%D\" has incomplete type" + msgstr "parameteren er af en ufuldstændig type" + +-#: c-decl.c:5807 ++#: c-decl.c:5818 + #, fuzzy + msgid "%Jdeclaration for parameter \"%D\" but no such parameter" + msgstr "erklæring af parameteren '%s', men ingen sådan parameter" + +-#: c-decl.c:5859 ++#: c-decl.c:5870 + msgid "number of arguments doesn't match prototype" + msgstr "antallet af parametre passer ikke til prototypen" + +-#: c-decl.c:5860 c-decl.c:5891 c-decl.c:5898 ++#: c-decl.c:5871 c-decl.c:5902 c-decl.c:5909 + #, fuzzy + msgid "%Hprototype declaration" + msgstr "tom erklæring" + +-#: c-decl.c:5889 ++#: c-decl.c:5900 + #, fuzzy + msgid "promoted argument \"%D\" doesn't match prototype" + msgstr "den forfremmede parameter '%s' passer ikke til prototypen" + +-#: c-decl.c:5897 ++#: c-decl.c:5908 + #, fuzzy + msgid "argument \"%D\" doesn't match prototype" + msgstr "parameteren '%s' passer ikke til prototypen" + +-#: c-decl.c:6094 cp/decl.c:10857 ++#: c-decl.c:6105 cp/decl.c:10954 + msgid "no return statement in function returning non-void" + msgstr "ingen return-sætning i en funktion der ikke returnerer void" + +-#: c-decl.c:6101 ++#: c-decl.c:6112 + msgid "this function may return with or without a value" + msgstr "denne funktion kan returnere med eller uden en værdi" + + #. If we get here, declarations have been used in a for loop without + #. the C99 for loop scope. This doesn't make much sense, so don't + #. allow it. +-#: c-decl.c:6200 ++#: c-decl.c:6211 + #, fuzzy + msgid "'for' loop initial declaration used outside C99 mode" + msgstr "begyndelseserklæring i 'for'-løkke benyttet uden for C99-tilstand" + +-#: c-decl.c:6224 ++#: c-decl.c:6235 + #, fuzzy, c-format + msgid "'struct %s' declared in 'for' loop initial declaration" + msgstr "'struct %s' erklæret i begyndelseserklæring i 'for'-løkke" + +-#: c-decl.c:6227 ++#: c-decl.c:6238 + #, fuzzy, c-format + msgid "'union %s' declared in 'for' loop initial declaration" + msgstr "'union %s' erklæret i begyndelseserklæring i 'for'-løkke" + +-#: c-decl.c:6230 ++#: c-decl.c:6241 + #, fuzzy, c-format + msgid "'enum %s' declared in 'for' loop initial declaration" + msgstr "'enum %s' erklæret i begyndelseserklæring i 'for'-løkke" + +-#: c-decl.c:6238 ++#: c-decl.c:6249 + #, fuzzy + msgid "%Jdeclaration of non-variable '%D' in 'for' loop initial declaration" + msgstr "erklæring af '%s' der ikke er en variabel, i begyndelseserklæring i 'for'-løkke" + +-#: c-decl.c:6241 ++#: c-decl.c:6252 + #, fuzzy + msgid "%Jdeclaration of static variable '%D' in 'for' loop initial declaration" + msgstr "erklæring af '%s' der er en statisk variabel, i begyndelseserklæring i 'for'-løkke" + +-#: c-decl.c:6244 ++#: c-decl.c:6255 + #, fuzzy + msgid "%Jdeclaration of 'extern' variable '%D' in 'for' loop initial declaration" + msgstr "erklæring af '%s' der er en 'extern'-variabel, i begyndelseserklæring i 'for'-løkke" + +-#: c-decl.c:6557 ++#: c-decl.c:6568 + #, fuzzy + msgid "%Jredefinition of global '%D'" + msgstr "omdefinering af '%s'" + +-#: c-decl.c:6558 ++#: c-decl.c:6569 + #, fuzzy + msgid "%J'%D' previously defined here" + msgstr "'%#D' tidligere defineret her" +@@ -2390,90 +2389,90 @@ + msgid "missing makefile target after \"%s\"" + msgstr "et mål mangler efter '-%s'" + +-#: c-opts.c:291 ++#: c-opts.c:299 + msgid "-I- specified twice" + msgstr "-I- er angivet to gange" + +-#: c-opts.c:692 ++#: c-opts.c:700 + #, c-format + msgid "switch \"%s\" is no longer supported" + msgstr "tilvalget '%s' understøttes ikke længere" + +-#: c-opts.c:812 ++#: c-opts.c:820 + #, fuzzy + msgid "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)" + msgstr "-fhandle-exceptions er blevet omdøbt til -fexceptions (og er nu til som standard)" + +-#: c-opts.c:978 ++#: c-opts.c:986 + msgid "output filename specified twice" + msgstr "uddatafilnavnet er angivet to gange" + +-#: c-opts.c:1107 ++#: c-opts.c:1115 + msgid "-Wformat-y2k ignored without -Wformat" + msgstr "-Wformat-y2k ignoreret uden -Wformat" + +-#: c-opts.c:1109 ++#: c-opts.c:1117 + msgid "-Wformat-extra-args ignored without -Wformat" + msgstr "-Wformat-extra-args ignoreret uden -Wformat" + +-#: c-opts.c:1111 ++#: c-opts.c:1119 + msgid "-Wformat-zero-length ignored without -Wformat" + msgstr "-Wformat-zero-length ignoreret uden -Wformat" + +-#: c-opts.c:1113 ++#: c-opts.c:1121 + msgid "-Wformat-nonliteral ignored without -Wformat" + msgstr "-Wformat-nonliteral ignoreret uden -Wformat" + +-#: c-opts.c:1115 ++#: c-opts.c:1123 + msgid "-Wformat-security ignored without -Wformat" + msgstr "-Wformat-security ignoreret uden -Wformat" + +-#: c-opts.c:1117 ++#: c-opts.c:1125 + msgid "-Wmissing-format-attribute ignored without -Wformat" + msgstr "-Wmissing-format-attribute ignoreret uden -Wformat" + +-#: c-opts.c:1131 ++#: c-opts.c:1139 + #, fuzzy, c-format + msgid "opening output file %s: %m" + msgstr "åbner uddatafilen %s" + +-#: c-opts.c:1136 ++#: c-opts.c:1144 + #, c-format + msgid "too many filenames given. Type %s --help for usage" + msgstr "for mange filnavne angivet - vejledning i brug kan fås med '%s --help'" + +-#: c-opts.c:1215 ++#: c-opts.c:1223 + msgid "YYDEBUG not defined" + msgstr "YYDEBUG ikke defineret" + +-#: c-opts.c:1261 ++#: c-opts.c:1269 + #, fuzzy, c-format + msgid "opening dependency file %s: %m" + msgstr "åbner afhængighedsfilen %s" + +-#: c-opts.c:1271 ++#: c-opts.c:1279 + #, fuzzy, c-format + msgid "closing dependency file %s: %m" + msgstr "lukker afhængighedsfilen %s" + +-#: c-opts.c:1274 ++#: c-opts.c:1282 + #, fuzzy, c-format + msgid "when writing output to %s: %m" + msgstr "ved skrivning af uddata til %s" + +-#: c-opts.c:1344 ++#: c-opts.c:1352 + msgid "to generate dependencies you must specify either -M or -MM" + msgstr "for at generere afhængigheder skal du angive enten -M eller -MM" + +-#: c-opts.c:1404 ++#: c-opts.c:1412 + msgid "" + msgstr "" + +-#: c-opts.c:1419 ++#: c-opts.c:1427 + msgid "" + msgstr "" + +-#: c-opts.c:1503 ++#: c-opts.c:1511 + msgid "too late for # directive to set debug directory" + msgstr "" + +@@ -2490,7 +2489,7 @@ + msgid "ISO C forbids an empty source file" + msgstr "ISO C forbyder en tom kildefil" + +-#: c-parse.y:349 c-typeck.c:6248 objc/objc-parse.y:374 ++#: c-parse.y:349 c-typeck.c:6228 objc/objc-parse.y:374 + msgid "argument of `asm' is not a constant string" + msgstr "parameteren til 'asm' er ikke en konstant streng" + +@@ -2506,7 +2505,7 @@ + msgid "ISO C does not allow extra `;' outside of a function" + msgstr "ISO C tillader ikke ekstra ';' uden for funktioner" + +-#: c-parse.y:429 cppexp.c:1253 ++#: c-parse.y:429 cppexp.c:1257 + msgid "traditional C rejects the unary plus operator" + msgstr "traditionel C tillader ikke operatoren unær plus" + +@@ -2588,7 +2587,7 @@ + msgid "ISO C forbids forward references to `enum' types" + msgstr "ISO C forbyder forhåndsreferencer til 'enum'-typer" + +-#: c-parse.y:1703 cp/parser.c:9339 objc/objc-parse.y:1755 ++#: c-parse.y:1703 cp/parser.c:9383 objc/objc-parse.y:1755 + msgid "comma at end of enumerator list" + msgstr "komma i slutningen af enum-liste" + +@@ -2596,7 +2595,7 @@ + msgid "no semicolon at end of struct or union" + msgstr "intet semikolon i slutningen af struct eller union" + +-#: c-parse.y:1732 objc/objc-parse.y:1784 objc/objc-parse.y:2847 ++#: c-parse.y:1732 objc/objc-parse.y:1784 objc/objc-parse.y:2846 + msgid "extra semicolon in struct or union specified" + msgstr "ekstra semikolon angivet i struct eller union" + +@@ -2626,24 +2625,24 @@ + msgid "braced-group within expression allowed only inside a function" + msgstr "sætningsblokke i udtryk er kun tilladt inde i en funktion" + +-#: c-parse.y:2185 objc/objc-parse.y:2242 ++#: c-parse.y:2185 objc/objc-parse.y:2241 + msgid "empty body in an else-statement" + msgstr "tom krop i en else-sætning" + +-#: c-parse.y:2193 objc/objc-parse.y:2250 ++#: c-parse.y:2193 objc/objc-parse.y:2249 + #, fuzzy + msgid "%Hempty body in an if-statement" + msgstr "tom krop i en else-sætning" + +-#: c-parse.y:2273 cp/parser.c:6050 objc/objc-parse.y:2330 ++#: c-parse.y:2273 cp/parser.c:6088 objc/objc-parse.y:2329 + msgid "break statement not within loop or switch" + msgstr "break-sætning befinder sig ikke i en løkke- eller switch-konstruktion" + +-#: c-parse.y:2282 cp/parser.c:6061 objc/objc-parse.y:2339 ++#: c-parse.y:2282 cp/parser.c:6099 objc/objc-parse.y:2338 + msgid "continue statement not within a loop" + msgstr "continue-sætning befinder sig ikke i en løkke" + +-#: c-parse.y:2324 objc/objc-parse.y:2381 ++#: c-parse.y:2324 objc/objc-parse.y:2380 + msgid "ISO C forbids `goto *expr;'" + msgstr "ISO C forbyder 'goto *udtryk;'" + +@@ -2653,15 +2652,16 @@ + #. it caused problems with the code in expand_builtin which + #. tries to verify that BUILT_IN_NEXT_ARG is being used + #. correctly. +-#: c-parse.y:2441 objc/objc-parse.y:2549 ++#: c-parse.y:2441 objc/objc-parse.y:2548 + msgid "ISO C requires a named argument before `...'" + msgstr "ISO C påkræver en navngiven parameter før '...'" + +-#: c-parse.y:2539 objc/objc-parse.y:2647 ++#: c-parse.y:2539 objc/objc-parse.y:2646 + msgid "`...' in old-style identifier list" + msgstr "'...' i gammeldags liste af kaldenavne" + + #: /usr/share/bison/bison.simple:795 ++#, fuzzy + msgid "parse error; also virtual memory exhausted" + msgstr "tolkningsfejl; desuden løbet tør for virtuel hukommelse" + +@@ -2673,7 +2673,7 @@ + msgid "parser stack overflow" + msgstr "overløb i tolkerens stak" + +-#: c-parse.y:2969 objc/objc-parse.y:3664 ++#: c-parse.y:2969 objc/objc-parse.y:3663 + #, c-format + msgid "syntax error at '%s' token" + msgstr "syntaksfejl ved symbolet '%s'" +@@ -2743,7 +2743,7 @@ + #: c-pch.c:313 + #, fuzzy, c-format + msgid "%s: created using different flags" +-msgstr "'%s' omerklæret som en anden form for symbol" ++msgstr "'%#D' omerklæret som en anden form for symbol" + + #: c-pch.c:326 + #, c-format +@@ -2755,7 +2755,7 @@ + msgid "%s: had text segment at different address" + msgstr "" + +-#: c-pch.c:357 cpperror.c:176 gcc.c:6554 ++#: c-pch.c:357 cpperror.c:176 gcc.c:6557 + #, c-format + msgid "%s: %s" + msgstr "%s: %s" +@@ -2867,12 +2867,12 @@ + msgid "(enclose actions of previous case statements requiring destructors in their own scope.)" + msgstr "(indesluttede handlinger fra tidligere case-sætninger kræver destruktionsfunktioner i deres eget virkefelt)" + +-#: c-semantics.c:737 c-typeck.c:6270 cp/semantics.c:1070 ++#: c-semantics.c:737 c-typeck.c:6250 cp/semantics.c:1070 + #, c-format + msgid "%s qualifier ignored on asm" + msgstr "%s-modifikation ignoreret ved asm" + +-#: c-semantics.c:991 ++#: c-semantics.c:993 + #, fuzzy + msgid "will never be executed" + msgstr "kald %2d aldrig udført\n" +@@ -2882,7 +2882,7 @@ + msgid "`%s' has an incomplete type" + msgstr "'%s' er af en ufuldstændig type" + +-#: c-typeck.c:145 cp/call.c:2532 ++#: c-typeck.c:145 cp/call.c:2542 + msgid "invalid use of void expression" + msgstr "ugyldig brug af void-udtryk" + +@@ -2918,778 +2918,776 @@ + msgid "function return types not compatible due to `volatile'" + msgstr "en funktions returtype kan ikke være en funktion" + +-#: c-typeck.c:984 c-typeck.c:2176 ++#: c-typeck.c:984 c-typeck.c:2156 + msgid "arithmetic on pointer to an incomplete type" + msgstr "beregninger udført på en henvisning til en ufuldstændig type" + +-#: c-typeck.c:1357 ++#: c-typeck.c:1337 + #, c-format + msgid "%s has no member named `%s'" + msgstr "%s har intet medlem ved navn '%s'" + +-#: c-typeck.c:1393 ++#: c-typeck.c:1373 + #, c-format + msgid "request for member `%s' in something not a structure or union" + msgstr "forespørgsel efter medlemmet '%s' i noget der hverken er en union eller en struktur" + +-#: c-typeck.c:1422 ++#: c-typeck.c:1402 + msgid "dereferencing pointer to incomplete type" + msgstr "forsøg på at følge en henvisning til en variabel af en ufuldstændig type" + +-#: c-typeck.c:1426 ++#: c-typeck.c:1406 + msgid "dereferencing `void *' pointer" + msgstr "forsøg på at følge en 'void *'-henvisning" + +-#: c-typeck.c:1443 cp/typeck.c:2127 ++#: c-typeck.c:1423 cp/typeck.c:2127 + #, c-format + msgid "invalid type argument of `%s'" + msgstr "ugyldig typeparameter '%s'" + +-#: c-typeck.c:1461 cp/typeck.c:2152 ++#: c-typeck.c:1441 cp/typeck.c:2152 + msgid "subscript missing in array reference" + msgstr "indeks mangler i tabelopslag" + +-#: c-typeck.c:1482 cp/typeck.c:2194 ++#: c-typeck.c:1462 cp/typeck.c:2194 + msgid "array subscript has type `char'" + msgstr "tabelindeks er af typen 'char'" + +-#: c-typeck.c:1490 c-typeck.c:1579 cp/typeck.c:2198 cp/typeck.c:2284 ++#: c-typeck.c:1470 c-typeck.c:1559 cp/typeck.c:2198 cp/typeck.c:2284 + msgid "array subscript is not an integer" + msgstr "tabelindeks er ikke et heltal" + +-#: c-typeck.c:1523 ++#: c-typeck.c:1503 + msgid "ISO C forbids subscripting `register' array" + msgstr "ISO C forbyder opslag i 'register'-tabel" + +-#: c-typeck.c:1525 ++#: c-typeck.c:1505 + msgid "ISO C90 forbids subscripting non-lvalue array" + msgstr "ISO C90 forbyder opslag i tabel der ikke er venstreværdi" + +-#: c-typeck.c:1558 ++#: c-typeck.c:1538 + msgid "subscript has type `char'" + msgstr "indeks er af typen 'char'" + +-#: c-typeck.c:1574 cp/typeck.c:2279 ++#: c-typeck.c:1554 cp/typeck.c:2279 + msgid "subscripted value is neither array nor pointer" + msgstr "værdien der er påført et indeks, er hverken en tabel eller en henvisningsvariabel" + +-#: c-typeck.c:1604 ++#: c-typeck.c:1584 + #, c-format + msgid "local declaration of `%s' hides instance variable" + msgstr "den lokale erklæring af funktionen '%s' skjuler instansvariabel" + +-#: c-typeck.c:1697 ++#: c-typeck.c:1677 + msgid "called object is not a function" + msgstr "det kaldte objekt er ikke en funktion" + + #. This situation leads to run-time undefined behavior. We can't, + #. therefore, simply error unless we can prove that all possible + #. executions of the program must execute the code. +-#: c-typeck.c:1729 ++#: c-typeck.c:1709 + #, fuzzy + msgid "function called through a non-compatible type" + msgstr "sizeof benyttet på en ufuldstændig type" + +-#: c-typeck.c:1787 c-typeck.c:4198 c-typeck.c:4200 c-typeck.c:4216 +-#: c-typeck.c:4237 c-typeck.c:5616 ++#: c-typeck.c:1767 c-typeck.c:4178 c-typeck.c:4180 c-typeck.c:4196 ++#: c-typeck.c:4217 c-typeck.c:5596 + msgid "initializer element is not constant" + msgstr "startværdielement er ikke en konstant" + +-#: c-typeck.c:1838 cp/typeck.c:2567 ++#: c-typeck.c:1818 cp/typeck.c:2567 + msgid "too many arguments to function" + msgstr "for mange parametre til funktionen" + +-#: c-typeck.c:1859 ++#: c-typeck.c:1839 + #, c-format + msgid "type of formal parameter %d is incomplete" + msgstr "typen af den formelle parameter %d er ufuldstændig" + +-#: c-typeck.c:1872 ++#: c-typeck.c:1852 + #, c-format + msgid "%s as integer rather than floating due to prototype" + msgstr "%s som heltal i stedet for kommatal på grund af prototypen" + +-#: c-typeck.c:1875 ++#: c-typeck.c:1855 + #, c-format + msgid "%s as integer rather than complex due to prototype" + msgstr "%s som heltal i stedet for complex på grund af prototypen" + +-#: c-typeck.c:1878 ++#: c-typeck.c:1858 + #, c-format + msgid "%s as complex rather than floating due to prototype" + msgstr "%s som complex i stedet for kommatal på grund af prototypen" + +-#: c-typeck.c:1881 ++#: c-typeck.c:1861 + #, c-format + msgid "%s as floating rather than integer due to prototype" + msgstr "%s som kommatal i stedet for heltal på grund af prototypen" + +-#: c-typeck.c:1884 ++#: c-typeck.c:1864 + #, c-format + msgid "%s as complex rather than integer due to prototype" + msgstr "%s som complex i stedet for heltal på grund af prototypen" + +-#: c-typeck.c:1887 ++#: c-typeck.c:1867 + #, c-format + msgid "%s as floating rather than complex due to prototype" + msgstr "%s som kommatal i stedet for complex på grund af prototypen" + +-#: c-typeck.c:1897 ++#: c-typeck.c:1877 + #, c-format + msgid "%s as `float' rather than `double' due to prototype" + msgstr "%s som float i stedet for double på grund af prototypen" + +-#: c-typeck.c:1915 ++#: c-typeck.c:1895 + #, c-format + msgid "%s with different width due to prototype" + msgstr "%s med anderledes bredde på grund af prototypen" + +-#: c-typeck.c:1941 ++#: c-typeck.c:1921 + #, c-format + msgid "%s as unsigned due to prototype" + msgstr "%s som unsigned på grund af prototypen" + +-#: c-typeck.c:1943 ++#: c-typeck.c:1923 + #, c-format + msgid "%s as signed due to prototype" + msgstr "%s som signed på grund af prototypen" + +-#: c-typeck.c:1977 cp/typeck.c:2673 ++#: c-typeck.c:1957 cp/typeck.c:2673 + msgid "too few arguments to function" + msgstr "for få parametre til funktionen" + +-#: c-typeck.c:2017 ++#: c-typeck.c:1997 + msgid "suggest parentheses around + or - inside shift" + msgstr "foreslår paranteser omkring + eller - inden i skifteoperation" + +-#: c-typeck.c:2024 ++#: c-typeck.c:2004 + msgid "suggest parentheses around && within ||" + msgstr "foreslår paranteser omkring && inden i ||" + +-#: c-typeck.c:2033 ++#: c-typeck.c:2013 + msgid "suggest parentheses around arithmetic in operand of |" + msgstr "foreslår paranteser omkring beregning i operand til |" + +-#: c-typeck.c:2036 ++#: c-typeck.c:2016 + msgid "suggest parentheses around comparison in operand of |" + msgstr "foreslår paranteser omkring sammenligning i operand til |" + +-#: c-typeck.c:2045 ++#: c-typeck.c:2025 + msgid "suggest parentheses around arithmetic in operand of ^" + msgstr "foreslår paranteser omkring beregning i operand til ^" + +-#: c-typeck.c:2048 ++#: c-typeck.c:2028 + msgid "suggest parentheses around comparison in operand of ^" + msgstr "foreslår paranteser omkring sammenligning i operand til ^" + +-#: c-typeck.c:2055 ++#: c-typeck.c:2035 + msgid "suggest parentheses around + or - in operand of &" + msgstr "foreslår paranteser omkring + eller - i operand til &" + +-#: c-typeck.c:2058 ++#: c-typeck.c:2038 + msgid "suggest parentheses around comparison in operand of &" + msgstr "foreslår paranteser omkring sammenligning i operand til &" + +-#: c-typeck.c:2065 ++#: c-typeck.c:2045 + msgid "comparisons like X<=Y<=Z do not have their mathematical meaning" + msgstr "sammenligninger som 'x <= y <= z' følger ikke den matematiske betydning" + +-#: c-typeck.c:2128 ++#: c-typeck.c:2108 + msgid "pointer of type `void *' used in subtraction" + msgstr "henvisning af typen 'void *' benyttet i subtraktion" + +-#: c-typeck.c:2130 ++#: c-typeck.c:2110 + msgid "pointer to a function used in subtraction" + msgstr "henvisning til en funktion benyttet i subtraktion" + +-#: c-typeck.c:2224 ++#: c-typeck.c:2204 + msgid "wrong type argument to unary plus" + msgstr "forkert parametertype til unært plus" + +-#: c-typeck.c:2237 ++#: c-typeck.c:2217 + msgid "wrong type argument to unary minus" + msgstr "forkert parametertype til unært minus" + +-#: c-typeck.c:2254 ++#: c-typeck.c:2234 + msgid "ISO C does not support `~' for complex conjugation" + msgstr "ISO C understøtter ikke '~' til compleks-konjugering" + +-#: c-typeck.c:2260 ++#: c-typeck.c:2240 + msgid "wrong type argument to bit-complement" + msgstr "forkert parametertype til bitkomplement" + +-#: c-typeck.c:2268 ++#: c-typeck.c:2248 + msgid "wrong type argument to abs" + msgstr "forkert parametertype til abs" + +-#: c-typeck.c:2280 ++#: c-typeck.c:2260 + msgid "wrong type argument to conjugation" + msgstr "forkert parametertype til konjugation" + +-#: c-typeck.c:2294 ++#: c-typeck.c:2274 + msgid "wrong type argument to unary exclamation mark" + msgstr "forkert parametertype til unært udråbstegn" + +-#: c-typeck.c:2337 ++#: c-typeck.c:2317 + msgid "ISO C does not support `++' and `--' on complex types" + msgstr "ISO C understøtter ikke '++' og '--' for complex-typer" + + # man kan ikke stikke en forøgelse (++) en type som parameter, 'type + # argument' skal opfattes på en anden måde +-#: c-typeck.c:2352 c-typeck.c:2384 ++#: c-typeck.c:2332 c-typeck.c:2364 + msgid "wrong type argument to increment" + msgstr "forkert parametertype til forøgelse" + +-#: c-typeck.c:2354 c-typeck.c:2386 ++#: c-typeck.c:2334 c-typeck.c:2366 + msgid "wrong type argument to decrement" + msgstr "forkert parametertype til formindskelse" + +-#: c-typeck.c:2375 ++#: c-typeck.c:2355 + msgid "increment of pointer to unknown structure" + msgstr "forøgelse af henvisning til en ukendt struktur" + +-#: c-typeck.c:2377 ++#: c-typeck.c:2357 + msgid "decrement of pointer to unknown structure" + msgstr "formindskelse af henvisning til en ukendt struktur" + +-#: c-typeck.c:2502 ++#: c-typeck.c:2482 + msgid "invalid lvalue in unary `&'" + msgstr "ugyldig venstreværdi i unær '&'" + +-#: c-typeck.c:2534 ++#: c-typeck.c:2514 + #, c-format + msgid "attempt to take address of bit-field structure member `%s'" + msgstr "forsøg på at finde adressen af bitfeltstrukturmedlemmet '%s'" + +-#: c-typeck.c:2668 ++#: c-typeck.c:2648 + #, fuzzy + msgid "use of conditional expressions as lvalues is deprecated" + msgstr "ISO C forbyder brug af betingede udtryk som venstreværdier" + +-#: c-typeck.c:2671 ++#: c-typeck.c:2651 + #, fuzzy + msgid "use of compound expressions as lvalues is deprecated" + msgstr "ISO C forbyder brug af sammensatte udtryk som venstreværdier" + +-#: c-typeck.c:2674 ++#: c-typeck.c:2654 + #, fuzzy + msgid "use of cast expressions as lvalues is deprecated" + msgstr "ISO C forbyder brug af typeomtvingningsudtryk som venstreværdier" + + # RETMIG: lettere klodset konstruktion +-#: c-typeck.c:2689 ++#: c-typeck.c:2669 + #, c-format + msgid "%s of read-only member `%s'" + msgstr "%s af medlemmet '%s' der kun må læses" + +-#: c-typeck.c:2693 ++#: c-typeck.c:2673 + #, c-format + msgid "%s of read-only variable `%s'" + msgstr "%s af variablen '%s' der kun må læses" + +-#: c-typeck.c:2696 ++#: c-typeck.c:2676 + #, c-format + msgid "%s of read-only location" + msgstr "%s af placering der kun må læses" + +-#: c-typeck.c:2714 ++#: c-typeck.c:2694 + #, c-format + msgid "cannot take address of bit-field `%s'" + msgstr "kan ikke finde adressen af bitfeltet '%s'" + +-#: c-typeck.c:2742 treelang/treetree.c:946 ++#: c-typeck.c:2722 treelang/treetree.c:946 + #, c-format + msgid "global register variable `%s' used in nested function" + msgstr "global registervariabel '%s' benyttet i indlejret funktion" + +-#: c-typeck.c:2746 treelang/treetree.c:950 ++#: c-typeck.c:2726 treelang/treetree.c:950 + #, c-format + msgid "register variable `%s' used in nested function" + msgstr "registervariabel '%s' benyttet i indlejret funktion" + +-#: c-typeck.c:2753 treelang/treetree.c:957 ++#: c-typeck.c:2733 treelang/treetree.c:957 + #, c-format + msgid "address of global register variable `%s' requested" + msgstr "forespørgsel efter adressen af den globale registervariabel '%s'" + +-#: c-typeck.c:2765 ++#: c-typeck.c:2745 + msgid "cannot put object with volatile field into register" + msgstr "kan ikke anbringe et objekt med et volatile-felt i et register" + +-#: c-typeck.c:2769 treelang/treetree.c:962 ++#: c-typeck.c:2749 treelang/treetree.c:962 + #, c-format + msgid "address of register variable `%s' requested" + msgstr "forespørgsel efter adressen af registervariablen '%s'" + +-#: c-typeck.c:2854 ++#: c-typeck.c:2834 + msgid "signed and unsigned type in conditional expression" + msgstr "signed og unsigned type i betinget udtryk" + +-#: c-typeck.c:2861 ++#: c-typeck.c:2841 + msgid "ISO C forbids conditional expr with only one void side" + msgstr "ISO C forbyder betingede udtryk med kun én tom side" + +-#: c-typeck.c:2877 c-typeck.c:2884 ++#: c-typeck.c:2857 c-typeck.c:2864 + msgid "ISO C forbids conditional expr between `void *' and function pointer" + msgstr "ISO C++ forbyder betinget udtryk mellem 'void *' og funktionshenvisning" + +-#: c-typeck.c:2890 ++#: c-typeck.c:2870 + msgid "pointer type mismatch in conditional expression" + msgstr "henvisningstyperne i betingelsesudtrykket passer ikke sammen" + +-#: c-typeck.c:2897 c-typeck.c:2907 ++#: c-typeck.c:2877 c-typeck.c:2887 + msgid "pointer/integer type mismatch in conditional expression" + msgstr "henvisnings- og heltalstype i betingelsesudtrykket passer ikke sammen" + +-#: c-typeck.c:2921 ++#: c-typeck.c:2901 + msgid "type mismatch in conditional expression" + msgstr "typerne i betingelsesudtrykket passer ikke sammen" + +-#: c-typeck.c:2981 ++#: c-typeck.c:2961 + msgid "left-hand operand of comma expression has no effect" + msgstr "venstreoperanden til kommaudtrykket har ingen virkning" + +-#: c-typeck.c:3012 ++#: c-typeck.c:2992 + msgid "cast specifies array type" + msgstr "typetildelingen angiver en tabeltype" + +-#: c-typeck.c:3018 ++#: c-typeck.c:2998 + msgid "cast specifies function type" + msgstr "typetildelingen angiver en funktionstype" + +-#: c-typeck.c:3028 ++#: c-typeck.c:3008 + msgid "ISO C forbids casting nonscalar to the same type" + msgstr "ISO C forbyder omtvingelse af ikke-skalar til den samme type" + +-#: c-typeck.c:3046 ++#: c-typeck.c:3026 + msgid "ISO C forbids casts to union type" + msgstr "ISO C forbyder omtvingelse til uniontype" + +-#: c-typeck.c:3054 ++#: c-typeck.c:3034 + msgid "cast to union type from type not present in union" + msgstr "typetildeling til en uniontype fra en type der ikke findes i union'en" + +-#: c-typeck.c:3105 ++#: c-typeck.c:3085 + msgid "cast adds new qualifiers to function type" + msgstr "typeomtvingning tilføjer modifikationer til en funktionstype" + + #. There are qualifiers present in IN_OTYPE that are not + #. present in IN_TYPE. +-#: c-typeck.c:3110 ++#: c-typeck.c:3090 + msgid "cast discards qualifiers from pointer target type" + msgstr "typeomtvingelse kasserer modifikationer på henvisningsmålets type" + +-#: c-typeck.c:3125 ++#: c-typeck.c:3105 + msgid "cast increases required alignment of target type" + msgstr "typeomtvingelse forøger den påkrævne justering af måltypen" + +-#: c-typeck.c:3131 cp/typeck.c:4945 ++#: c-typeck.c:3111 cp/typeck.c:4963 + msgid "cast from pointer to integer of different size" + msgstr "typeomtvingelse fra henvisning til heltal af en anden størrelse" + +-#: c-typeck.c:3136 ++#: c-typeck.c:3116 + msgid "cast does not match function type" + msgstr "typeomtvingelse passer ikke til funktionstype" + +-#: c-typeck.c:3143 cp/typeck.c:4952 ++#: c-typeck.c:3123 cp/typeck.c:4970 + msgid "cast to pointer from integer of different size" + msgstr "typeomtvingelse fra heltal til henvisning af en anden størrelse" + +-#: c-typeck.c:3155 ++#: c-typeck.c:3135 + msgid "type-punning to incomplete type might break strict-aliasing rules" + msgstr "typeomtvingning af ufuldstændig type bryder muligvis strenge aliasregler" + +-#: c-typeck.c:3159 ++#: c-typeck.c:3139 + msgid "dereferencing type-punned pointer will break strict-aliasing rules" + msgstr "følgning af en typeomtvunget henvisning vil bryde strenge aliasregler" + +-#: c-typeck.c:3170 ++#: c-typeck.c:3150 + #, fuzzy + msgid "ISO C forbids conversion of function pointer to object pointer type" + msgstr "ISO C forbyder sammenligning af 'void *' med funktionshenvisning" + +-#: c-typeck.c:3179 ++#: c-typeck.c:3159 + #, fuzzy + msgid "ISO C forbids conversion of object pointer to function pointer type" + msgstr "ISO C forbyder sammenligning af 'void *' med funktionshenvisning" + + #. Now we have handled acceptable kinds of LHS that are not truly lvalues. + #. Reject anything strange now. +-#: c-typeck.c:3337 ++#: c-typeck.c:3317 + msgid "invalid lvalue in assignment" + msgstr "ugyldig venstreværdi i tildeling" + + #. Convert new value to destination type. +-#: c-typeck.c:3346 c-typeck.c:3371 c-typeck.c:3388 cp/typeck.c:5064 +-#: cp/typeck.c:5211 cp/typeck.c:5226 ++#: c-typeck.c:3326 c-typeck.c:3351 c-typeck.c:3368 cp/typeck.c:5082 ++#: cp/typeck.c:5229 cp/typeck.c:5244 + msgid "assignment" + msgstr "tildeling" + +-#: c-typeck.c:3455 ++#: c-typeck.c:3435 + msgid "cannot pass rvalue to reference parameter" + msgstr "kan ikke videregive højreværdi til referenceparameter" + +-#: c-typeck.c:3564 c-typeck.c:3640 ++#: c-typeck.c:3544 c-typeck.c:3620 + #, c-format + msgid "%s makes qualified function pointer from unqualified" + msgstr "%s opretter en funktionshenvisning med modifikationer fra én uden" + +-#: c-typeck.c:3568 c-typeck.c:3620 ++#: c-typeck.c:3548 c-typeck.c:3600 + #, c-format + msgid "%s discards qualifiers from pointer target type" + msgstr "%s kasserer modifikationer på henvisningsmålets type" + +-#: c-typeck.c:3574 ++#: c-typeck.c:3554 + msgid "ISO C prohibits argument conversion to union type" + msgstr "ISO C forbyder parameterkonvertering til uniontype" + +-#: c-typeck.c:3612 ++#: c-typeck.c:3592 + #, c-format + msgid "ISO C forbids %s between function pointer and `void *'" + msgstr "ISO C forbyder %s mellem funktionshenvisning og 'void *'" + +-#: c-typeck.c:3629 ++#: c-typeck.c:3609 + #, c-format + msgid "pointer targets in %s differ in signedness" + msgstr "fortegnene i henvisningsmål i %s er forskellige" + +-#: c-typeck.c:3645 ++#: c-typeck.c:3625 + #, c-format + msgid "%s from incompatible pointer type" + msgstr "%s fra en henvisningstype der ikke er forenelig med målets" + +-#: c-typeck.c:3651 c-typeck.c:4158 cp/typeck.c:1389 ++#: c-typeck.c:3631 c-typeck.c:4138 cp/typeck.c:1389 + msgid "invalid use of non-lvalue array" + msgstr "ugyldig brug af en tabel der ikke kan optræde som en venstreværdi" + +-#: c-typeck.c:3665 ++#: c-typeck.c:3645 + #, c-format + msgid "%s makes pointer from integer without a cast" + msgstr "%s opretter en henvisningsvariabel ud fra et heltal uden en typeomtvingning" + +-#: c-typeck.c:3672 ++#: c-typeck.c:3652 + #, c-format + msgid "%s makes integer from pointer without a cast" + msgstr "%s opretter et heltal ud fra en henvisningsvariabel uden en typeomtvingning" + +-#: c-typeck.c:3686 c-typeck.c:3689 ++#: c-typeck.c:3666 c-typeck.c:3669 + #, c-format + msgid "incompatible type for argument %d of `%s'" + msgstr "typen af den %d. parameter i '%s' passer ikke" + +-#: c-typeck.c:3693 ++#: c-typeck.c:3673 + #, c-format + msgid "incompatible type for argument %d of indirect function call" + msgstr "typen af den %d. parameter i det indirekte funktionskald passer ikke" + +-#: c-typeck.c:3697 ++#: c-typeck.c:3677 + #, c-format + msgid "incompatible types in %s" + msgstr "uforenelige typer i %s" + + #. Function name is known; supply it. +-#: c-typeck.c:3753 ++#: c-typeck.c:3733 + #, c-format + msgid "passing arg of `%s'" + msgstr "videregiver parameter til '%s'" + + #. Function name unknown (call through ptr). +-#: c-typeck.c:3762 ++#: c-typeck.c:3742 + msgid "passing arg of pointer to function" + msgstr "videregiver parameter af henvisning til funktion" + + #. Function name is known; supply it. +-#: c-typeck.c:3770 ++#: c-typeck.c:3750 + #, c-format + msgid "passing arg %d of `%s'" + msgstr "videregiver den %d. parameter til '%s'" + + #. Function name unknown (call through ptr); just give arg number. +-#: c-typeck.c:3779 ++#: c-typeck.c:3759 + #, c-format + msgid "passing arg %d of pointer to function" + msgstr "videregiver den %d. parameter af henvisning til funktion" + + # 'automatic aggregate' betyder automatisk allokerede variabler, dvs. + # ganske almindelige lokale variabler (kan evt. erklæres med 'auto') +-#: c-typeck.c:3836 ++#: c-typeck.c:3816 + msgid "traditional C rejects automatic aggregate initialization" + msgstr "traditionel C forbyder klargøring af auto-variabler af sammensatte typer" + +-#: c-typeck.c:4007 c-typeck.c:4022 c-typeck.c:4037 ++#: c-typeck.c:3987 c-typeck.c:4002 c-typeck.c:4017 + #, c-format + msgid "(near initialization for `%s')" + msgstr "(i nærheden af klargøringen af '%s')" + +-#: c-typeck.c:4086 cp/typeck2.c:560 ++#: c-typeck.c:4066 cp/typeck2.c:550 + msgid "char-array initialized from wide string" + msgstr "char-tabel får tildelt startværdi fra en bred streng" + +-#: c-typeck.c:4093 cp/typeck2.c:567 ++#: c-typeck.c:4073 cp/typeck2.c:557 + msgid "int-array initialized from non-wide string" + msgstr "int-tabel får tildelt startværdi fra en ikke-bred streng" + +-#: c-typeck.c:4111 cp/typeck2.c:582 ++#: c-typeck.c:4091 cp/typeck2.c:572 + msgid "initializer-string for array of chars is too long" + msgstr "startværdistrengen til char-tabellen er for lang" + +-#: c-typeck.c:4181 ++#: c-typeck.c:4161 + msgid "array initialized from non-constant array expression" + msgstr "tabel får tildelt en startværdi fra et tabeludtryk der ikke er konstant" + +-#: c-typeck.c:4232 ++#: c-typeck.c:4212 + msgid "initialization" + msgstr "klargøring" + +-#: c-typeck.c:4243 c-typeck.c:5621 ++#: c-typeck.c:4223 c-typeck.c:5601 + msgid "initializer element is not computable at load time" + msgstr "startværdielement kan ikke beregnes ved indlæsningstidspunktet" + +-#: c-typeck.c:4258 cp/typeck2.c:659 ++#: c-typeck.c:4238 cp/typeck2.c:649 + msgid "invalid initializer" + msgstr "ugyldig startværdi" + +-#: c-typeck.c:4540 cp/decl.c:4484 ++#: c-typeck.c:4520 cp/decl.c:4539 + #, fuzzy + msgid "opaque vector types cannot be initialized" + msgstr "objekt af typen '%T' med variabel størrelse må ikke tildeles en startværdi" + +-#: c-typeck.c:4734 ++#: c-typeck.c:4714 + msgid "extra brace group at end of initializer" + msgstr "overskydende krøllede paranteser ved slutningen af startværdien" + +-#: c-typeck.c:4754 ++#: c-typeck.c:4734 + msgid "missing braces around initializer" + msgstr "krøllede paranteser mangler omkring startværdien" + +-#: c-typeck.c:4814 ++#: c-typeck.c:4794 + msgid "braces around scalar initializer" + msgstr "krøllede paranteser omkring skalarstartværdi" + + # RETMIG: eller er det fleksibel tabel-medlem +-#: c-typeck.c:4865 ++#: c-typeck.c:4845 + msgid "initialization of flexible array member in a nested context" + msgstr "klargøring af fleksibelt tabelmedlem i en indlejret kontekst" + +-#: c-typeck.c:4867 ++#: c-typeck.c:4847 + msgid "initialization of a flexible array member" + msgstr "klargøring af fleksibelt tabelmedlem" + +-#: c-typeck.c:4898 ++#: c-typeck.c:4878 + msgid "missing initializer" + msgstr "manglende startværdi" + +-#: c-typeck.c:4920 ++#: c-typeck.c:4900 + msgid "empty scalar initializer" + msgstr "tom skalarstartværdi" + +-#: c-typeck.c:4925 ++#: c-typeck.c:4905 + msgid "extra elements in scalar initializer" + msgstr "overskydende elementer i skalarstarværdi" + +-#: c-typeck.c:5010 ++#: c-typeck.c:4990 + msgid "initialization designators may not nest" + msgstr "klargøringstegn må ikke indlejres" + +-#: c-typeck.c:5031 c-typeck.c:5099 ++#: c-typeck.c:5011 c-typeck.c:5079 + msgid "array index in non-array initializer" + msgstr "tabelindeks i en startværdi der ikke er en tabel" + + # RETMIG: record? +-#: c-typeck.c:5036 c-typeck.c:5152 ++#: c-typeck.c:5016 c-typeck.c:5132 + msgid "field name not in record or union initializer" + msgstr "feltnavn ikke i struktur- eller union-startværdi" + +-#: c-typeck.c:5095 c-typeck.c:5097 ++#: c-typeck.c:5075 c-typeck.c:5077 + msgid "nonconstant array index in initializer" + msgstr "tabelindekset i startværdien er ikke en konstant" + +-#: c-typeck.c:5101 c-typeck.c:5104 ++#: c-typeck.c:5081 c-typeck.c:5084 + msgid "array index in initializer exceeds array bounds" + msgstr "tabelindeks i startværdi overskrider tabelgrænser" + +-#: c-typeck.c:5115 ++#: c-typeck.c:5095 + msgid "empty index range in initializer" + msgstr "tomt indeksinterval i startværdi" + +-#: c-typeck.c:5124 ++#: c-typeck.c:5104 + msgid "array index range in initializer exceeds array bounds" + msgstr "tabelindeksinterval i startværdi overskrider tabelgrænser" + +-#: c-typeck.c:5164 ++#: c-typeck.c:5144 + #, c-format + msgid "unknown field `%s' specified in initializer" + msgstr "ukendt felt '%s' angivet i startværdi" + +-#: c-typeck.c:5200 c-typeck.c:5221 c-typeck.c:5683 ++#: c-typeck.c:5180 c-typeck.c:5201 c-typeck.c:5663 + msgid "initialized field with side-effects overwritten" + msgstr "klargjort felt med bivirkninger overskrevet" + +-#: c-typeck.c:5891 ++#: c-typeck.c:5871 + msgid "excess elements in char array initializer" + msgstr "for mange elementer i char-tabelstartværdien" + +-#: c-typeck.c:5898 c-typeck.c:5944 ++#: c-typeck.c:5878 c-typeck.c:5924 + msgid "excess elements in struct initializer" + msgstr "for mange elementer i struct-startværdi" + +-#: c-typeck.c:5959 ++#: c-typeck.c:5939 + msgid "non-static initialization of a flexible array member" + msgstr "ikke-statisk klargøring af fleksibelt tabelmedlem" + +-#: c-typeck.c:6026 ++#: c-typeck.c:6006 + msgid "excess elements in union initializer" + msgstr "for mange elementer i union-startværdi" + +-#: c-typeck.c:6047 ++#: c-typeck.c:6027 + msgid "traditional C rejects initialization of unions" + msgstr "traditionel C forbyder tildeling af startværdi til unioner" + +-#: c-typeck.c:6110 ++#: c-typeck.c:6090 + msgid "excess elements in array initializer" + msgstr "for mange elementer i tabelstartværdi" + +-#: c-typeck.c:6139 ++#: c-typeck.c:6119 + msgid "excess elements in vector initializer" + msgstr "for mange elementer i vektorstartværdi" + +-#: c-typeck.c:6161 ++#: c-typeck.c:6141 + msgid "excess elements in scalar initializer" + msgstr "for mange elementer i skalarstartværdi" + +-#: c-typeck.c:6263 ++#: c-typeck.c:6243 + msgid "asm template is not a string constant" + msgstr "asm-sætning er ikke en strengkonstant" + +-#: c-typeck.c:6295 ++#: c-typeck.c:6275 + msgid "invalid lvalue in asm statement" + msgstr "ugyldig venstreværdi i asm-sætning" + +-#: c-typeck.c:6367 cp/typeck.c:5902 ++#: c-typeck.c:6347 cp/typeck.c:5923 + msgid "modification by `asm'" + msgstr "ændring af 'asm'" + +-#: c-typeck.c:6385 cp/typeck.c:5986 ++#: c-typeck.c:6365 cp/typeck.c:6007 + msgid "function declared `noreturn' has a `return' statement" + msgstr "funktion der er erklæret 'noreturn' har en 'return'-sætning" + +-#: c-typeck.c:6392 ++#: c-typeck.c:6372 + msgid "`return' with no value, in function returning non-void" + msgstr "'return' uden nogen værdi i en funktion der ikke returnerer void" + +-#: c-typeck.c:6398 ++#: c-typeck.c:6378 + msgid "`return' with a value, in function returning void" + msgstr "'return' med en værdi i en funktion der returnerer void" + +-#: c-typeck.c:6402 ++#: c-typeck.c:6382 + msgid "return" + msgstr "returnering" + +-#: c-typeck.c:6454 ++#: c-typeck.c:6434 + msgid "function returns address of local variable" + msgstr "funktion returnerer adressen på en lokal variabel" + +-#: c-typeck.c:6509 cp/semantics.c:749 ++#: c-typeck.c:6489 cp/semantics.c:749 + msgid "switch quantity not an integer" + msgstr "switch-størrelsen er ikke et heltal" + +-#: c-typeck.c:6519 ++#: c-typeck.c:6499 + msgid "`long' switch expression not converted to `int' in ISO C" + msgstr "'long'-udtryk i switch konverteres ikke til 'int' i ISO C" + +-#: c-typeck.c:6560 cp/parser.c:5560 ++#: c-typeck.c:6540 cp/parser.c:5597 + msgid "case label not within a switch statement" + msgstr "case-etiket befinder sig ikke inden i en switch-sætning" + +-#: c-typeck.c:6562 ++#: c-typeck.c:6542 + msgid "`default' label not within a switch statement" + msgstr "'default'-etiket befinder sig ikke inden i en switch-sætning" + +-#: c-typeck.c:6714 c-typeck.c:6748 ++#: c-typeck.c:6694 c-typeck.c:6728 + msgid "division by zero" + msgstr "division med nul" + +-#: c-typeck.c:6793 cp/typeck.c:2953 ++#: c-typeck.c:6773 cp/typeck.c:2953 + msgid "right shift count is negative" + msgstr "højreskiftsantal er negativ" + +-#: c-typeck.c:6800 cp/typeck.c:2959 ++#: c-typeck.c:6780 cp/typeck.c:2959 + msgid "right shift count >= width of type" + msgstr "højreskiftsantal er større end bredden af typen" + +-#: c-typeck.c:6821 cp/typeck.c:2978 ++#: c-typeck.c:6801 cp/typeck.c:2978 + msgid "left shift count is negative" + msgstr "venstreskiftsantal er negativ" + +-#: c-typeck.c:6824 cp/typeck.c:2980 ++#: c-typeck.c:6804 cp/typeck.c:2980 + msgid "left shift count >= width of type" + msgstr "venstreskiftsantal er større end bredden af typen" + +-#: c-typeck.c:6845 ++#: c-typeck.c:6825 + msgid "shift count is negative" + msgstr "skifteantal er negativ" + +-#: c-typeck.c:6847 ++#: c-typeck.c:6827 + msgid "shift count >= width of type" + msgstr "skifteantal er større end bredden af typen" + +-#: c-typeck.c:6864 cp/typeck.c:3015 ++#: c-typeck.c:6844 cp/typeck.c:3015 + msgid "comparing floating point with == or != is unsafe" + msgstr "sammenligning af kommatal med == eller != er ikke sikkert" + +-#: c-typeck.c:6888 c-typeck.c:6894 ++#: c-typeck.c:6868 c-typeck.c:6874 + msgid "ISO C forbids comparison of `void *' with function pointer" + msgstr "ISO C forbyder sammenligning af 'void *' med funktionshenvisning" + +-#: c-typeck.c:6897 c-typeck.c:6937 c-typeck.c:6965 ++#: c-typeck.c:6877 c-typeck.c:6917 c-typeck.c:6945 + msgid "comparison of distinct pointer types lacks a cast" + msgstr "sammenligning med forskellige henvisningstyper mangler en typeomtvingelse" + +-#: c-typeck.c:6911 c-typeck.c:6916 c-typeck.c:6985 c-typeck.c:6990 ++#: c-typeck.c:6891 c-typeck.c:6896 c-typeck.c:6965 c-typeck.c:6970 + msgid "comparison between pointer and integer" + msgstr "sammenligning mellem henvisningsvariabel og heltal" + +-#: c-typeck.c:6932 c-typeck.c:6960 ++#: c-typeck.c:6912 c-typeck.c:6940 + msgid "ISO C forbids ordered comparisons of pointers to functions" + msgstr "ISO C forbyder ordnede sammenligninger af henvisninger til funktioner" + +-#: c-typeck.c:6957 ++#: c-typeck.c:6937 + msgid "comparison of complete and incomplete pointers" + msgstr "sammenligning mellem en fuldstændig og ufuldstændig henvisning" + +-#: c-typeck.c:6973 c-typeck.c:6980 ++#: c-typeck.c:6953 c-typeck.c:6960 + msgid "ordered comparison of pointer with integer zero" + msgstr "ordnet sammenligning af henvisning med heltallet nul" + +-#: c-typeck.c:7004 cp/typeck.c:3151 ++#: c-typeck.c:6984 cp/typeck.c:3151 + msgid "unordered comparison on non-floating point argument" + msgstr "uordnet sammenligning af ikke-kommatalsparameter" + +-#: c-typeck.c:7214 ++#: c-typeck.c:7194 + msgid "comparison between signed and unsigned" + msgstr "sammenligning mellem signed og unsigned" + +-#: c-typeck.c:7260 cp/typeck.c:3398 ++#: c-typeck.c:7240 cp/typeck.c:3398 + msgid "comparison of promoted ~unsigned with constant" + msgstr "sammenligning af forfremmet ~unsigned med konstant" + +-#: c-typeck.c:7268 cp/typeck.c:3406 ++#: c-typeck.c:7248 cp/typeck.c:3406 + msgid "comparison of promoted ~unsigned with unsigned" + msgstr "sammenligning af forfremmet ~unsigned med unsigned" + + #: calls.c:1838 +-#, fuzzy + msgid "%Jinlining failed in call to '%F'" +-msgstr "indlejring mislykkedes i kald til '%s'" ++msgstr "%Jindlejring mislykkedes i kald til '%F'" + +-#: calls.c:1839 calls.c:2211 tree-inline.c:1339 tree-inline.c:1346 ++#: calls.c:1839 calls.c:2211 tree-inline.c:1339 tree-inline.c:1347 + msgid "called from here" + msgstr "kaldt herfra" + + #: calls.c:2210 +-#, fuzzy + msgid "%Jcan't inline call to '%F'" +-msgstr "kan ikke indlejre kald til '%s'" ++msgstr "%Jkan ikke indlejre kald til '%F'" + + #: calls.c:2219 + msgid "ignoring return value of `%D', declared with attribute warn_unused_result" +@@ -3743,7 +3741,7 @@ + msgid "verify_flow_info: Basic block %d succ edge is corrupted" + msgstr "verify_flow_info: Efterfølgende kant til basisblok %d er ødelagt" + +-#: cfg.c:909 cfgrtl.c:1971 ++#: cfg.c:909 cfgrtl.c:1983 + #, c-format + msgid "Wrong amount of branch edges after unconditional jump %i" + msgstr "Forkert antal forgreningskanter efter ubetinget spring %i" +@@ -3822,118 +3820,118 @@ + msgid "Edge from %d to %d should not be marked irreducible." + msgstr "" + +-#: cfgrtl.c:1877 ++#: cfgrtl.c:1889 + #, c-format + msgid "end insn %d for block %d not found in the insn stream" + msgstr "slutinstruktion %d for blok %d ikke fundet i instruktionsstrømmen" + +-#: cfgrtl.c:1891 ++#: cfgrtl.c:1903 + #, c-format + msgid "insn %d is in multiple basic blocks (%d and %d)" + msgstr "instruktion %d er i flere basisblokke (%d og %d)" + +-#: cfgrtl.c:1903 ++#: cfgrtl.c:1915 + #, c-format + msgid "head insn %d for block %d not found in the insn stream" + msgstr "hovedinstruktion %d for blok %d ikke fundet i instruktionsstrømmen" + +-#: cfgrtl.c:1925 ++#: cfgrtl.c:1937 + #, fuzzy + msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i" + msgstr "verify_flow_info: REG_BR_PROB passer ikke til konf. %i %i" + +-#: cfgrtl.c:1953 ++#: cfgrtl.c:1965 + #, c-format + msgid "Missing REG_EH_REGION note in the end of bb %i" + msgstr "Mangler REG_EH_REGION-note i slutningen af basisblok %i" + +-#: cfgrtl.c:1961 ++#: cfgrtl.c:1973 + #, c-format + msgid "Too many outgoing branch edges from bb %i" + msgstr "For mange udgående forgreningskanter fra basisblok %i" + +-#: cfgrtl.c:1966 ++#: cfgrtl.c:1978 + #, c-format + msgid "Fallthru edge after unconditional jump %i" + msgstr "Fald gennem-kant efter ubetinget spring %i" + +-#: cfgrtl.c:1977 ++#: cfgrtl.c:1989 + #, c-format + msgid "Wrong amount of branch edges after conditional jump %i" + msgstr "Forkert antal forgreningskanter efter betinget spring %i" + +-#: cfgrtl.c:1982 ++#: cfgrtl.c:1994 + #, c-format + msgid "Call edges for non-call insn in bb %i" + msgstr "Kaldekanter for ikke-kaldsinstruktion i basisblok %i" + +-#: cfgrtl.c:1991 ++#: cfgrtl.c:2003 + #, c-format + msgid "Abnormal edges for no purpose in bb %i" + msgstr "Unormale kanter uden noget formål i basisblok %i" + +-#: cfgrtl.c:2001 ++#: cfgrtl.c:2013 + #, c-format + msgid "insn %d inside basic block %d but block_for_insn is NULL" + msgstr "instruktion %d inden i basisblok %d, men block_for_insn er NULL" + +-#: cfgrtl.c:2005 ++#: cfgrtl.c:2017 + #, c-format + msgid "insn %d inside basic block %d but block_for_insn is %i" + msgstr "instruktion %d inden i basisblok %d, men block_for_insn er %i" + +-#: cfgrtl.c:2019 cfgrtl.c:2029 ++#: cfgrtl.c:2031 cfgrtl.c:2041 + #, c-format + msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d" + msgstr "NOTE_INSN_BASIC_BLOCK mangler for blok %d" + +-#: cfgrtl.c:2042 ++#: cfgrtl.c:2054 + #, c-format + msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d" + msgstr "NOTE_INSN_BASIC_BLOCK %d i midten af basisblok %d" + +-#: cfgrtl.c:2052 ++#: cfgrtl.c:2064 + #, c-format + msgid "in basic block %d:" + msgstr "i basisblok %d:" + +-#: cfgrtl.c:2053 ++#: cfgrtl.c:2065 + msgid "flow control insn inside a basic block" + msgstr "strømkontrolinstruktion inden i en basisblok" + +-#: cfgrtl.c:2099 ++#: cfgrtl.c:2111 + #, c-format + msgid "missing barrier after block %i" + msgstr "manglende barriere efter blok %i" + +-#: cfgrtl.c:2112 ++#: cfgrtl.c:2124 + #, c-format + msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i" + msgstr "verify_flow_info: Ukorrekte blokke til fald-gennem %i->%i" + +-#: cfgrtl.c:2127 ++#: cfgrtl.c:2139 + #, c-format + msgid "verify_flow_info: Incorrect fallthru %i->%i" + msgstr "verify_flow_info: Ukorrekt fald-gennem %i->%i" + +-#: cfgrtl.c:2129 ++#: cfgrtl.c:2141 + msgid "wrong insn in the fallthru edge" + msgstr "forkert instruktion i fald-gennem-kant" + +-#: cfgrtl.c:2146 ++#: cfgrtl.c:2158 + #, fuzzy + msgid "basic blocks not laid down consecutively" + msgstr "basisblokkene er ikke nummeret i rækkefølge" + +-#: cfgrtl.c:2171 ++#: cfgrtl.c:2183 + msgid "insn outside basic block" + msgstr "instruktion uden for basisblok" + +-#: cfgrtl.c:2179 ++#: cfgrtl.c:2191 + msgid "return not followed by barrier" + msgstr "returnering følges ikke af barriere" + +-#: cfgrtl.c:2186 ++#: cfgrtl.c:2198 + #, c-format + msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)" + msgstr "antallet af basisbloknoter i instruktionskæden (%d) != n_basic_blocks (%d)" +@@ -4170,7 +4168,7 @@ + msgid "library lib%s not found" + msgstr "biblioteket lib%s ikke fundet" + +-#: combine.c:13048 ++#: combine.c:13047 + #, c-format + msgid "" + ";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n" +@@ -4181,7 +4179,7 @@ + ";; %d vellykkede.\n" + "\n" + +-#: combine.c:13057 ++#: combine.c:13056 + #, c-format + msgid "" + "\n" +@@ -4514,63 +4512,69 @@ + msgid "token \"%s\" is not valid in preprocessor expressions" + msgstr "symbolet \"%s\" er ikke gyldigt i præprocessorudtryk" + +-#: cppexp.c:753 +-msgid "void expression between '(' and ')'" ++#: cppexp.c:751 ++#, fuzzy ++msgid "missing expression between '(' and ')'" + msgstr "tomt udtryk mellem '(' og ')'" + +-#: cppexp.c:756 ++#: cppexp.c:754 + msgid "#if with no expression" + msgstr "#if uden noget udtryk" + +-#: cppexp.c:758 ++#: cppexp.c:757 + #, c-format + msgid "operator '%s' has no right operand" + msgstr "operatoren '%s' har ikke nogen højre operand" + +-#: cppexp.c:784 ++#: cppexp.c:762 ++#, c-format ++msgid "operator '%s' has no left operand" ++msgstr "operatoren '%s' har ikke nogen venstre operand" ++ ++#: cppexp.c:788 + msgid " ':' without preceding '?'" + msgstr " ':' uden forudgående '?'" + +-#: cppexp.c:811 ++#: cppexp.c:815 + msgid "unbalanced stack in #if" + msgstr "uafbalanceret stak i #if" + +-#: cppexp.c:830 ++#: cppexp.c:834 + #, c-format + msgid "impossible operator '%u'" + msgstr "umulig operator '%u'" + +-#: cppexp.c:922 ++#: cppexp.c:926 + msgid "missing ')' in expression" + msgstr "manglende ')' i udtryk" + +-#: cppexp.c:943 ++#: cppexp.c:947 + msgid "'?' without following ':'" + msgstr "'?' uden efterfølgende ':'" + +-#: cppexp.c:953 ++#: cppexp.c:957 + msgid "integer overflow in preprocessor expression" + msgstr "heltallet løber over i præprocessorudtrykket" + +-#: cppexp.c:958 ++#: cppexp.c:962 + msgid "missing '(' in expression" + msgstr "manglende '(' i udtryk" + +-#: cppexp.c:990 ++#: cppexp.c:994 + #, c-format + msgid "the left operand of \"%s\" changes sign when promoted" + msgstr "den venstre operand til \"%s\" ændrer fortegn ved forfremmelse" + +-#: cppexp.c:995 ++#: cppexp.c:999 + #, c-format + msgid "the right operand of \"%s\" changes sign when promoted" + msgstr "den højre operand til \"%s\" ændrer fortegn ved forfremmelse" + +-#: cppexp.c:1353 ++#: cppexp.c:1357 + msgid "comma operator in operand of #if" + msgstr "kommeoperator i en operand til #if" + +-#: cppexp.c:1484 ++#: cppexp.c:1488 + msgid "division by zero in #if" + msgstr "division med nul i #if" + +@@ -4606,7 +4610,7 @@ + msgid "no include path in which to search for %s" + msgstr "der er ingen inkluderingssti at finde %s i" + +-#: cppfiles.c:956 ++#: cppfiles.c:959 + msgid "Multiple include guards may be useful for:\n" + msgstr "Flere inkluderingsvagter kan være nyttige til:\n" + +@@ -4979,7 +4983,7 @@ + + #: cpppch.c:84 cpppch.c:332 cpppch.c:356 cpppch.c:365 + msgid "while writing precompiled header" +-msgstr "" ++msgstr "under skrivning af præoversat inkluderingsfil" + + #: cpppch.c:463 + #, fuzzy, c-format +@@ -4998,7 +5002,7 @@ + + #: cpppch.c:529 cpppch.c:715 + msgid "while reading precompiled header" +-msgstr "" ++msgstr "under læsning af præoversat inkluderingsfil" + + #: cppspec.c:106 + #, c-format +@@ -5019,7 +5023,7 @@ + msgid "syntax error in macro parameter list" + msgstr "\"%s\" må ikke optræde i makroparameterliste" + +-#: cse.c:7064 ++#: cse.c:7069 + #, c-format + msgid ";; Processing block from %d to %d, %d sets.\n" + msgstr ";; Behandler blok fra %d til %d, %d mængder.\n" +@@ -5153,12 +5157,12 @@ + + #. We can't handle floating point constants; + #. PRINT_OPERAND must handle them. +-#: final.c:3220 vmsdbgout.c:467 config/i386/i386.c:6768 ++#: final.c:3220 vmsdbgout.c:467 config/i386/i386.c:6769 + #: config/pdp11/pdp11.c:1646 + msgid "floating constant misused" + msgstr "kommatalskonstant misbrugt" + +-#: final.c:3276 vmsdbgout.c:524 config/i386/i386.c:6846 ++#: final.c:3276 vmsdbgout.c:524 config/i386/i386.c:6847 + #: config/pdp11/pdp11.c:1693 + msgid "invalid expression as operand" + msgstr "ugyldigt udtryk som operand" +@@ -5180,26 +5184,26 @@ + msgid "Attempt to delete prologue/epilogue insn:" + msgstr "forsøg på at slette indledende/afsluttende instruktion:" + +-#: fold-const.c:2878 fold-const.c:2891 ++#: fold-const.c:2889 fold-const.c:2902 + #, c-format + msgid "comparison is always %d due to width of bit-field" + msgstr "sammenligning er altid %d på grund af den begrænsede rækkevidde af bitfeltet" + +-#: fold-const.c:4093 fold-const.c:4110 ++#: fold-const.c:4110 fold-const.c:4127 + #, c-format + msgid "comparison is always %d" + msgstr "sammenligning er altid %d" + + # RETMIG: det giver ikke mening +-#: fold-const.c:4241 ++#: fold-const.c:4258 + msgid "`or' of unmatched not-equal tests is always 1" + msgstr "'or' af uafbalancerede sammenligninger med forskellig fra er altid 1" + +-#: fold-const.c:4246 ++#: fold-const.c:4263 + msgid "`and' of mutually exclusive equal-tests is always 0" + msgstr "'and' af udtryk der hver for sig udelukker hinanden, er altid 0" + +-#: fold-const.c:8393 ++#: fold-const.c:8410 + msgid "fold check: original tree changed by fold" + msgstr "" + +@@ -5208,30 +5212,30 @@ + msgid "%Jsize of variable '%D' is too large" + msgstr "størrelsen af variablen '%s' er for stor" + +-#: function.c:3742 ++#: function.c:3752 + msgid "impossible constraint in `asm'" + msgstr "umulig begrænsing i 'asm'" + +-#: function.c:5733 ++#: function.c:5743 + #, fuzzy + msgid "%J'%D' might be used uninitialized in this function" + msgstr "'%s' bliver måske brugt uden at have en startværdi i denne funktion" + +-#: function.c:5740 ++#: function.c:5750 + #, fuzzy + msgid "%Jvariable '%D' might be clobbered by `longjmp' or `vfork'" + msgstr "variablen '%s' bliver måske overskrevet af 'longjmp' eller 'vfork'" + +-#: function.c:5759 ++#: function.c:5769 + #, fuzzy + msgid "%Jargument '%D' might be clobbered by `longjmp' or `vfork'" + msgstr "parameteren '%s' bliver måske overskrevet af 'longjmp' eller 'vfork'" + +-#: function.c:6533 ++#: function.c:6543 + msgid "function returns an aggregate" + msgstr "funktion returnerer en værdi af en sammensat type" + +-#: function.c:6929 ++#: function.c:6939 + #, fuzzy + msgid "%Junused parameter '%D'" + msgstr "ubenyttet parameter '%s'" +@@ -5260,7 +5264,7 @@ + msgid "Using built-in specs.\n" + msgstr "Benytter indbyggede specifikationer.\n" + +-#: gcc.c:1755 ++#: gcc.c:1758 + #, c-format + msgid "" + "Setting spec %s to '%s'\n" +@@ -5269,42 +5273,42 @@ + "Sætter specifikation %s til '%s'\n" + "\n" + +-#: gcc.c:1857 ++#: gcc.c:1860 + #, c-format + msgid "Reading specs from %s\n" + msgstr "Læser specifikationer fra %s\n" + +-#: gcc.c:1953 gcc.c:1972 ++#: gcc.c:1956 gcc.c:1975 + #, c-format + msgid "specs %%include syntax malformed after %ld characters" + msgstr "%%include-syntaks i specifikationer misdannet efter %ld tegn" + +-#: gcc.c:1980 ++#: gcc.c:1983 + #, c-format + msgid "could not find specs file %s\n" + msgstr "kunne ikke finde specifikationsfilen %s\n" + +-#: gcc.c:1997 gcc.c:2005 gcc.c:2014 gcc.c:2023 ++#: gcc.c:2000 gcc.c:2008 gcc.c:2017 gcc.c:2026 + #, c-format + msgid "specs %%rename syntax malformed after %ld characters" + msgstr "%%rename-syntaks i specifikationer misdannet efter %ld tegn" + +-#: gcc.c:2032 ++#: gcc.c:2035 + #, c-format + msgid "specs %s spec was not found to be renamed" + msgstr "%s-specifikation i specifikationer kunne ikke findes til omdøbelse" + +-#: gcc.c:2039 ++#: gcc.c:2042 + #, c-format + msgid "%s: attempt to rename spec '%s' to already defined spec '%s'" + msgstr "%s: forsøg på at omdøbe specifikation '%s' til allerede defineret specifikation '%s'" + +-#: gcc.c:2044 ++#: gcc.c:2047 + #, c-format + msgid "rename spec %s to %s\n" + msgstr "omdøb specifikation %s til %s\n" + +-#: gcc.c:2046 ++#: gcc.c:2049 + #, c-format + msgid "" + "spec is '%s'\n" +@@ -5313,25 +5317,25 @@ + "specifikation er '%s'\n" + "\n" + +-#: gcc.c:2059 ++#: gcc.c:2062 + #, c-format + msgid "specs unknown %% command after %ld characters" + msgstr "ukendt %%-kommando i specifikationer efter %ld tegn" + +-#: gcc.c:2070 gcc.c:2083 ++#: gcc.c:2073 gcc.c:2086 + #, c-format + msgid "specs file malformed after %ld characters" + msgstr "specifikationsfil misdannet efter %ld tegn" + +-#: gcc.c:2136 ++#: gcc.c:2139 + msgid "spec file has no spec for linking" + msgstr "specifikationsfil har ingen specifikation til sammenkædning" + +-#: gcc.c:2641 ++#: gcc.c:2644 + msgid "-pipe not supported" + msgstr "-pipe understøttes ikke" + +-#: gcc.c:2703 ++#: gcc.c:2706 + msgid "" + "\n" + "Go ahead? (y or n) " +@@ -5339,7 +5343,7 @@ + "\n" + "Fortsæt, ja (y) eller nej (n)?" + +-#: gcc.c:2829 ++#: gcc.c:2832 + #, c-format + msgid "" + "Internal error: %s (program %s)\n" +@@ -5350,69 +5354,69 @@ + "Indsend venligst en komplet fejlrapport.\n" + "Se %s for instruktioner." + +-#: gcc.c:2847 ++#: gcc.c:2850 + #, c-format + msgid "# %s %.2f %.2f\n" + msgstr "# %s %.2f %.2f\n" + +-#: gcc.c:2980 ++#: gcc.c:2983 + #, c-format + msgid "Usage: %s [options] file...\n" + msgstr "Brug: %s [tilvalg] fil...\n" + +-#: gcc.c:2981 ++#: gcc.c:2984 + msgid "Options:\n" + msgstr "Tilvalg:\n" + +-#: gcc.c:2983 ++#: gcc.c:2986 + msgid " -pass-exit-codes Exit with highest error code from a phase\n" + msgstr " -pass-exit-codes Afslut med den højeste fejlkode fra en fase\n" + +-#: gcc.c:2984 ++#: gcc.c:2987 + msgid " --help Display this information\n" + msgstr " --help Vis disse oplysninger\n" + +-#: gcc.c:2985 ++#: gcc.c:2988 + msgid " --target-help Display target specific command line options\n" + msgstr " --target-help Vis målspecifikke kommandolinjetilvalg\n" + +-#: gcc.c:2987 ++#: gcc.c:2990 + msgid " (Use '-v --help' to display command line options of sub-processes)\n" + msgstr " (benyt '-v --help' for at vise kommandolinjetilvalg for underprocesser)\n" + +-#: gcc.c:2988 ++#: gcc.c:2991 + msgid " -dumpspecs Display all of the built in spec strings\n" + msgstr " -dumpspecs Vis alle de indbyggede specifikationsstrenge\n" + +-#: gcc.c:2989 ++#: gcc.c:2992 + msgid " -dumpversion Display the version of the compiler\n" + msgstr " -dumpversion Vis versionsnummeret af oversætteren\n" + +-#: gcc.c:2990 ++#: gcc.c:2993 + msgid " -dumpmachine Display the compiler's target processor\n" + msgstr " -dumpmachine Vis oversætterens målprocessor\n" + +-#: gcc.c:2991 ++#: gcc.c:2994 + msgid " -print-search-dirs Display the directories in the compiler's search path\n" + msgstr " -print-search-dirs Vis katalogerne i oversætterens søgesti\n" + +-#: gcc.c:2992 ++#: gcc.c:2995 + msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n" + msgstr " -print-libgcc-file-name Vis navnet på oversætterens tilhørende bibliotek\n" + +-#: gcc.c:2993 ++#: gcc.c:2996 + msgid " -print-file-name= Display the full path to library \n" + msgstr " -print-file-name= Vis den komplette sti til biblioteket \n" + +-#: gcc.c:2994 ++#: gcc.c:2997 + msgid " -print-prog-name= Display the full path to compiler component \n" + msgstr " -print-prog-name= Vis den komplette sti til oversætterkomponenten \n" + +-#: gcc.c:2995 ++#: gcc.c:2998 + msgid " -print-multi-directory Display the root directory for versions of libgcc\n" + msgstr " -print-multi-directory Vis rodkataloget for versioner af libgcc\n" + +-#: gcc.c:2996 ++#: gcc.c:2999 + msgid "" + " -print-multi-lib Display the mapping between command line options and\n" + " multiple library search directories\n" +@@ -5420,95 +5424,95 @@ + " -print-multi-lib Vis afbildningen mellem kommandolinjetilvalg og\n" + " flere bibliotekssøgekataloger\n" + +-#: gcc.c:2999 ++#: gcc.c:3002 + msgid " -print-multi-os-directory Display the relative path to OS libraries\n" + msgstr " -print-multi-os-directory Vis den relative sti for OS-biblioteker\n" + +-#: gcc.c:3000 ++#: gcc.c:3003 + msgid " -Wa, Pass comma-separated on to the assembler\n" + msgstr " -Wa, Videregiv komma-adskilte til maskinkodeoversætteren\n" + +-#: gcc.c:3001 ++#: gcc.c:3004 + msgid " -Wp, Pass comma-separated on to the preprocessor\n" + msgstr " -Wp, Videregiv komma-adskilte til præprocessoren\n" + +-#: gcc.c:3002 ++#: gcc.c:3005 + msgid " -Wl, Pass comma-separated on to the linker\n" + msgstr " -Wl, Videregiv komma-adskilte til sammenkæderen\n" + +-#: gcc.c:3003 ++#: gcc.c:3006 + #, fuzzy + msgid " -Xassembler Pass on to the assembler\n" + msgstr " -Xlinker Videregiv til sammenkæderen\n" + +-#: gcc.c:3004 ++#: gcc.c:3007 + #, fuzzy + msgid " -Xpreprocessor Pass on to the preprocessor\n" + msgstr " -Xlinker Videregiv til sammenkæderen\n" + +-#: gcc.c:3005 ++#: gcc.c:3008 + msgid " -Xlinker Pass on to the linker\n" + msgstr " -Xlinker Videregiv til sammenkæderen\n" + +-#: gcc.c:3006 ++#: gcc.c:3009 + msgid " -save-temps Do not delete intermediate files\n" + msgstr " -save-temps Slet ikke midlertidige filer\n" + +-#: gcc.c:3007 ++#: gcc.c:3010 + msgid " -pipe Use pipes rather than intermediate files\n" + msgstr " -pipe Brug datakanaler i stedet for midlertidige filer\n" + +-#: gcc.c:3008 ++#: gcc.c:3011 + msgid " -time Time the execution of each subprocess\n" + msgstr " -time Tag tid på udførslen af hver underproces\n" + +-#: gcc.c:3009 ++#: gcc.c:3012 + msgid " -specs= Override built-in specs with the contents of \n" + msgstr " -specs= Overskriv indbyggede specifikationer med indholdet af \n" + +-#: gcc.c:3010 ++#: gcc.c:3013 + msgid " -std= Assume that the input sources are for \n" + msgstr " -std= Antag at inddatakildekoden er skrevet til \n" + +-#: gcc.c:3011 ++#: gcc.c:3014 + msgid " -B Add to the compiler's search paths\n" + msgstr " -B Tilføj katalog til oversætterens søgestier\n" + +-#: gcc.c:3012 ++#: gcc.c:3015 + msgid " -b Run gcc for target , if installed\n" + msgstr " -b Kør GCC til målet , hvis installeret\n" + +-#: gcc.c:3013 ++#: gcc.c:3016 + msgid " -V Run gcc version number , if installed\n" + msgstr " -V Kør GCC med versionsnummeret , hvis installeret\n" + +-#: gcc.c:3014 ++#: gcc.c:3017 + msgid " -v Display the programs invoked by the compiler\n" + msgstr " -v Vis de programmer der startes af oversætteren\n" + +-#: gcc.c:3015 ++#: gcc.c:3018 + msgid " -### Like -v but options quoted and commands not executed\n" + msgstr "" + " -### Som '-v', men tilvalg anbringes i anførselstegn\n" + " og kommandoerne udføres ikke\n" + +-#: gcc.c:3016 ++#: gcc.c:3019 + msgid " -E Preprocess only; do not compile, assemble or link\n" + msgstr " -E Forbehandl kun; oversæt og sammenkæd ikke\n" + +-#: gcc.c:3017 ++#: gcc.c:3020 + msgid " -S Compile only; do not assemble or link\n" + msgstr " -S Oversæt kun; maskinekodeoversæt og sammenkæd ikke\n" + +-#: gcc.c:3018 ++#: gcc.c:3021 + msgid " -c Compile and assemble, but do not link\n" + msgstr " -c Oversæt, også til maskinkode, men sammenkæd ikke\n" + +-#: gcc.c:3019 ++#: gcc.c:3022 + msgid " -o Place the output into \n" + msgstr " -o Anbring uddataene i \n" + +-#: gcc.c:3020 ++#: gcc.c:3023 + msgid "" + " -x Specify the language of the following input files\n" + " Permissible languages include: c c++ assembler none\n" +@@ -5520,7 +5524,7 @@ + " 'none' betyder at standardopførslen med at gætte\n" + " sproget på filendelsen udføres\n" + +-#: gcc.c:3027 ++#: gcc.c:3030 + #, c-format + msgid "" + "\n" +@@ -5534,27 +5538,27 @@ + " videregive andre indstillinger til disse processer kan tilvalg på formen\n" + " '-W' bruges.\n" + +-#: gcc.c:3148 ++#: gcc.c:3151 + #, c-format + msgid "`-%c' option must have argument" + msgstr "tilvalget '-%c' skal have en parameter" + +-#: gcc.c:3170 ++#: gcc.c:3173 + #, c-format + msgid "couldn't run `%s': %s" + msgstr "kunne ikke køre '%s': %s" + + #. translate_options () has turned --version into -fversion. +-#: gcc.c:3356 ++#: gcc.c:3359 + #, c-format + msgid "%s (GCC) %s\n" + msgstr "%s (GCC) %s\n" + +-#: gcc.c:3358 gcov.c:424 f/g77spec.c:351 ++#: gcc.c:3361 gcov.c:424 f/g77spec.c:351 + msgid "(C)" + msgstr "" + +-#: gcc.c:3359 ++#: gcc.c:3362 + msgid "" + "This is free software; see the source for copying conditions. There is NO\n" + "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" +@@ -5563,68 +5567,68 @@ + "Dette er et frit program; se kildekoden for kopieringsbetingelser. Der er\n" + "INGEN garanti; ikke engang for SALGBARHED eller BRUGBARHED TIL NOGET FORMÅL.\n" + +-#: gcc.c:3460 ++#: gcc.c:3463 + msgid "argument to `-Xlinker' is missing" + msgstr "der mangler en parameter til '-Xlinker'" + +-#: gcc.c:3468 ++#: gcc.c:3471 + #, fuzzy + msgid "argument to `-Xpreprocessor' is missing" + msgstr "der mangler en parameter til '-specs'" + +-#: gcc.c:3475 ++#: gcc.c:3478 + #, fuzzy + msgid "argument to `-Xassembler' is missing" + msgstr "der mangler en parameter til '-Xlinker'" + +-#: gcc.c:3482 ++#: gcc.c:3485 + msgid "argument to `-l' is missing" + msgstr "der mangler en parameter til '-l'" + +-#: gcc.c:3498 ++#: gcc.c:3501 + msgid "argument to `-specs' is missing" + msgstr "der mangler en parameter til '-specs'" + +-#: gcc.c:3512 ++#: gcc.c:3515 + msgid "argument to `-specs=' is missing" + msgstr "der mangler en parameter til '-specs='" + +-#: gcc.c:3549 ++#: gcc.c:3552 + #, c-format + msgid "`-%c' must come at the start of the command line" + msgstr "'-%c' skal være i begyndelsen af kommandolinjen" + +-#: gcc.c:3558 ++#: gcc.c:3561 + msgid "argument to `-B' is missing" + msgstr "der mangler en parameter til '-B'" + +-#: gcc.c:3735 ++#: gcc.c:3738 + msgid "warning: -pipe ignored because -save-temps specified" + msgstr "advarsel: -pipe ignoreret fordi -save-temps er angivet" + +-#: gcc.c:3739 ++#: gcc.c:3742 + msgid "warning: -pipe ignored because -time specified" + msgstr "advarsel: -pipe ignoreret fordi -time er angivet" + +-#: gcc.c:3951 ++#: gcc.c:3954 + msgid "argument to `-x' is missing" + msgstr "der mangler en parameter til '-x'" + +-#: gcc.c:3979 ++#: gcc.c:3982 + #, c-format + msgid "argument to `-%s' is missing" + msgstr "der mangler en parameter til '-%s'" + +-#: gcc.c:4040 ++#: gcc.c:4043 + #, c-format + msgid "warning: `-x %s' after last input file has no effect" + msgstr "advarsel: '-x %s' efter den sidste inddatafil har ingen effekt" + +-#: gcc.c:4441 ++#: gcc.c:4444 + msgid "invalid specification! Bug in cc" + msgstr "ugyldig specifikation! Fejl i cc." + +-#: gcc.c:4595 ++#: gcc.c:4598 + #, c-format + msgid "%s\n" + msgstr "%s\n" +@@ -5632,78 +5636,78 @@ + #. Catch the case where a spec string contains something like + #. '%{foo:%*}'. ie there is no * in the pattern on the left + #. hand side of the :. +-#: gcc.c:5099 ++#: gcc.c:5102 + #, c-format + msgid "spec failure: '%%*' has not been initialized by pattern match" + msgstr "specifikationsfejl: '%%*' er ikke blevet klargjort af mønstersøgning" + +-#: gcc.c:5108 ++#: gcc.c:5111 + #, c-format + msgid "warning: use of obsolete %%[ operator in specs" + msgstr "advarsel: forældet '%%['-operator benyttet i specifikationer" + +-#: gcc.c:5126 ++#: gcc.c:5129 + #, c-format + msgid "Processing spec %c%s%c, which is '%s'\n" + msgstr "Behandler specifikation %c%s%c, som er '%s'\n" + +-#: gcc.c:5189 ++#: gcc.c:5192 + #, c-format + msgid "spec failure: unrecognized spec option '%c'" + msgstr "specifikationsfejl: ukendt specifikationstilvalg '%c'" + +-#: gcc.c:5268 ++#: gcc.c:5271 + #, c-format + msgid "unknown spec function `%s'" + msgstr "ukendt specifikationsfunktion '%s'" + +-#: gcc.c:5287 ++#: gcc.c:5290 + #, c-format + msgid "error in args to spec function `%s'" + msgstr "fejl i parametre til specifikationsfunktion '%s'" + +-#: gcc.c:5335 ++#: gcc.c:5338 + msgid "malformed spec function name" + msgstr "forkert udformet specifikationsfunktionsnavn" + + #. ) +-#: gcc.c:5338 ++#: gcc.c:5341 + msgid "no arguments for spec function" + msgstr "ingen parametre til specifikationsfunktion" + +-#: gcc.c:5357 ++#: gcc.c:5360 + msgid "malformed spec function arguments" + msgstr "forkert udformede specifikationsfunktionsparametre" + +-#: gcc.c:6083 ++#: gcc.c:6086 + msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC." + msgstr "" + +-#: gcc.c:6093 ++#: gcc.c:6096 + msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC." + msgstr "" + +-#: gcc.c:6186 ++#: gcc.c:6189 + #, c-format + msgid "unrecognized option `-%s'" + msgstr "ukendt tilvalg '-%s'" + +-#: gcc.c:6192 ++#: gcc.c:6195 + #, c-format + msgid "install: %s%s\n" + msgstr "installering: %s%s\n" + +-#: gcc.c:6193 ++#: gcc.c:6196 + #, c-format + msgid "programs: %s\n" + msgstr "programmer: %s\n" + +-#: gcc.c:6194 ++#: gcc.c:6197 + #, c-format + msgid "libraries: %s\n" + msgstr "biblioteker: %s\n" + +-#: gcc.c:6251 ++#: gcc.c:6254 + msgid "" + "\n" + "For bug reporting instructions, please see:\n" +@@ -5711,51 +5715,51 @@ + "\n" + "For fejlrapporteringsinstruktioner, se:\n" + +-#: gcc.c:6267 ++#: gcc.c:6270 + #, c-format + msgid "Configured with: %s\n" + msgstr "Konfigureret med: %s\n" + +-#: gcc.c:6281 ++#: gcc.c:6284 + #, c-format + msgid "Thread model: %s\n" + msgstr "Trådmodel: %s\n" + +-#: gcc.c:6292 ++#: gcc.c:6295 + #, c-format + msgid "gcc version %s\n" + msgstr "GCC version %s\n" + +-#: gcc.c:6294 ++#: gcc.c:6297 + #, c-format + msgid "gcc driver version %s executing gcc version %s\n" + msgstr "GCC-styringsprogram version %s kører GCCc version %s\n" + +-#: gcc.c:6302 ++#: gcc.c:6305 + msgid "no input files" + msgstr "ingen inddatafiler" + +-#: gcc.c:6324 gcc.c:6443 ++#: gcc.c:6327 gcc.c:6446 + #, c-format + msgid "%s: linker input file unused because linking not done" + msgstr "%s: sammenkæderinddatafil ikke benyttet eftersom sammenkædning ikke blev foretaget" + +-#: gcc.c:6327 ++#: gcc.c:6330 + #, fuzzy + msgid "cannot specify -o with -c or -S and multiple languages" + msgstr "kan ikke angive -o med -c eller -S og flere oversættelser" + +-#: gcc.c:6362 ++#: gcc.c:6365 + #, c-format + msgid "%s: %s compiler not installed on this system" + msgstr "%s: %s-oversætter ikke installeret på dette system" + +-#: gcc.c:6483 ++#: gcc.c:6486 + #, c-format + msgid "language %s not recognized" + msgstr "sproget %s ikke genkendt" + +-#: gcc.c:6580 ++#: gcc.c:6583 + msgid "internal gcc abort" + msgstr "intern GCC-afbrydelse" + +@@ -5789,7 +5793,7 @@ + + #: gcov.c:401 + msgid " -a, --all-blocks Show information for every basic block\n" +-msgstr "" ++msgstr " -a, --all-blocks Vis oplysninger for alle basisblokke\n" + + #: gcov.c:402 + msgid " -b, --branch-probabilities Include branch probabilities in output\n" +@@ -5825,7 +5829,7 @@ + + #: gcov.c:411 + msgid " -u, --unconditional-branches Show unconditional branch counts too\n" +-msgstr "" ++msgstr " -u, --unconditional-branches Vis ubetingede forgreningstal også\n" + + #: gcov.c:412 + #, c-format +@@ -5892,32 +5896,32 @@ + #: gcov.c:731 + #, c-format + msgid "%s:version `%.4s', prefer `%.4s'\n" +-msgstr "" ++msgstr "%s:version `%.4s', foretræk '%.4s'\n" + + #: gcov.c:783 + #, c-format + msgid "%s:already seen blocks for `%s'\n" +-msgstr "" ++msgstr "%s:allerede set blokke for '%s'\n" + + #: gcov.c:904 gcov.c:1063 + #, c-format + msgid "%s:corrupted\n" +-msgstr "" ++msgstr "%s:ødelagt\n" + + #: gcov.c:977 +-#, fuzzy, c-format ++#, c-format + msgid "%s:cannot open data file\n" +-msgstr "%s: kan ikke åbnes som en COFF-fil" ++msgstr "%s: kan ikke åbne datafil\n" + + #: gcov.c:982 + #, fuzzy, c-format + msgid "%s:not a gcov data file\n" +-msgstr "%s: ikke en COFF-fil" ++msgstr "%s:ikke en gcov-datafil\n" + + #: gcov.c:995 + #, c-format + msgid "%s:version `%.4s', prefer version `%.4s'\n" +-msgstr "" ++msgstr "%s:version `%.4s', foretræk version `%.4s'\n" + + #: gcov.c:1001 + #, c-format +@@ -5925,9 +5929,9 @@ + msgstr "" + + #: gcov.c:1027 +-#, fuzzy, c-format ++#, c-format + msgid "%s:unknown function `%u'\n" +-msgstr "ukendt specifikationsfunktion '%s'" ++msgstr "%s:ukendt funktion '%u'\n" + + #: gcov.c:1040 + #, c-format +@@ -6025,19 +6029,19 @@ + msgstr "forgrening %2d aldrig udført\n" + + #: gcov.c:1771 +-#, fuzzy, c-format ++#, c-format + msgid "unconditional %2d taken %s\n" +-msgstr "forgrening %2d valgt %s\n" ++msgstr "ubetinget %2d valgt %s\n" + + #: gcov.c:1774 +-#, fuzzy, c-format ++#, c-format + msgid "unconditional %2d never executed\n" +-msgstr "kald %2d aldrig udført\n" ++msgstr "ubetinget %2d aldrig udført\n" + + #: gcov.c:1806 +-#, fuzzy, c-format ++#, c-format + msgid "%s:cannot open source file\n" +-msgstr "%s: kan ikke åbnes som en COFF-fil" ++msgstr "%s:kan ikke åbne kildefil\n" + + #: gcov.c:1816 + #, fuzzy, c-format +@@ -6047,24 +6051,24 @@ + #. Return if there's nothing to do, or it is too expensive. + #: gcse.c:747 + msgid "GCSE disabled" +-msgstr "" ++msgstr "GCSE deaktiveret" + +-#: gcse.c:6124 ++#: gcse.c:6125 + msgid "NULL pointer checks disabled" +-msgstr "" ++msgstr "NULL-henvisningstjek deaktiveret" + + #. Return if there's nothing to do, or it is too expensive. +-#: gcse.c:8010 ++#: gcse.c:8036 + #, fuzzy + msgid "jump bypassing disabled" + msgstr "tilvalget -g deaktiveret" + +-#: gcse.c:8071 ++#: gcse.c:8097 + #, fuzzy, c-format + msgid "%s: %d basic blocks and %d edges/basic block" + msgstr "GCSE deaktiveret: %d > 1000 basisblokke og %d >= 20 kanter/basisblok" + +-#: gcse.c:8084 ++#: gcse.c:8110 + #, fuzzy, c-format + msgid "%s: %d basic blocks and %d registers" + msgstr "GCSE deaktiveret: %d basisblokke og %d registre" +@@ -6099,7 +6103,7 @@ + #: ggc-page.c:1325 + #, c-format + msgid "open /dev/zero: %m" +-msgstr "" ++msgstr "åbn /dev/zero: %m" + + #: ggc-page.c:2047 ggc-page.c:2053 + #, fuzzy +@@ -6111,15 +6115,15 @@ + msgstr "" + + #: global.c:356 global.c:369 global.c:383 +-#, fuzzy, c-format ++#, c-format + msgid "%s cannot be used in asm here" +-msgstr "\"%s\" kan ikke bruges som et makronavn" ++msgstr "%s kan ikke bruges i asm her" + +-#: graph.c:403 toplev.c:1498 toplev.c:4432 f/com.c:14202 java/jcf-parse.c:883 ++#: graph.c:403 toplev.c:1498 toplev.c:4433 f/com.c:14202 java/jcf-parse.c:883 + #: java/jcf-parse.c:1029 java/lex.c:1828 objc/objc-act.c:503 +-#, fuzzy, c-format ++#, c-format + msgid "can't open %s: %m" +-msgstr "kan ikke åbne %s" ++msgstr "kan ikke åbne %s: %m" + + #: haifa-sched.c:196 + #, c-format +@@ -6139,9 +6143,8 @@ + msgstr "funktion der bruger alloca, kan ikke indbygges" + + #: integrate.c:176 +-#, fuzzy + msgid "function using longjmp cannot be inline" +-msgstr "funktion der bruger setjmp, kan ikke indbygges" ++msgstr "funktion der bruger longjmp, kan ikke indbygges" + + #: integrate.c:179 + msgid "function using setjmp cannot be inline" +@@ -6195,10 +6198,9 @@ + msgid "function with target specific attribute(s) cannot be inlined" + msgstr "funktioner med målspecifikke egenskaber kan ikke indbygges" + +-#: jump.c:1896 +-#, fuzzy ++#: jump.c:1913 + msgid "%Hwill never be executed" +-msgstr "kald %2d aldrig udført\n" ++msgstr "%Hvil aldrig blive udført" + + #: line-map.c:202 + #, c-format +@@ -6229,7 +6231,7 @@ + #. What to print when a switch has no documentation. + #: opts.c:149 + msgid "This switch lacks documentation" +-msgstr "" ++msgstr "Denne switch mangler dokumentation" + + #. Eventually this should become a hard error IMO. + #: opts.c:318 +@@ -6267,43 +6269,41 @@ + msgstr "'%s': ukendt tls-model-tilvalg" + + #: opts.c:1454 +-#, fuzzy + msgid "-fwritable-strings is deprecated; see documentation for details" +-msgstr "tilvalget '%s' er forældet, se venligst dokumentationen for detaljer" ++msgstr "-fwritable-strings er forældet; se dokumentationen for detaljer" + + #: opts.c:1538 + #, c-format + msgid "%s: --param arguments should be of the form NAME=VALUE" +-msgstr "" ++msgstr "%s: '--param'-parametre skal være på formen NAVN=VÆRDI" + + #: opts.c:1543 +-#, fuzzy, c-format ++#, c-format + msgid "invalid --param value `%s'" +-msgstr "ugyldig parameterværdi '%s'" ++msgstr "ugyldig '--param'-værdi '%s'" + + #: opts.c:1639 +-#, fuzzy + msgid "target system does not support debug output" +-msgstr "målprocessoren understøtter ikke uendelig" ++msgstr "målsystemet understøtter ikke fejlfindingsuddata" + + #: opts.c:1646 +-#, fuzzy, c-format ++#, c-format + msgid "debug format \"%s\" conflicts with prior selection" +-msgstr "dataområdet '%s' er i modstrid med tidligere erklæring" ++msgstr "fejlfindingsformatet \"%s\" er i modstrid med tidligere valg" + + #: opts.c:1662 +-#, fuzzy, c-format ++#, c-format + msgid "unrecognised debug output level \"%s\"" +-msgstr "ukendt sektionsnavn \"%s\"" ++msgstr "ukendt fejlfindingsuddataniveau \"%s\"" + + #: opts.c:1664 + #, c-format + msgid "debug output level %s is too high" +-msgstr "" ++msgstr "fejlfindingsuddataniveau %s er for højt" + + #: opts.c:1683 + msgid "The following options are language-independent:\n" +-msgstr "" ++msgstr "De følgende tilvalg er sproguafhængige:\n" + + #: opts.c:1690 + #, c-format +@@ -6311,10 +6311,12 @@ + "The %s front end recognizes the following options:\n" + "\n" + msgstr "" ++"Forenden %s genkender de følgende tilvalg:\n" ++"\n" + + #: opts.c:1704 + msgid "The --param option recognizes the following as parameters:\n" +-msgstr "" ++msgstr "Tilvalget --param genkender følgende som parametre:\n" + + #. If we didn't find this parameter, issue an error message. + #: params.c:76 +@@ -6324,25 +6326,22 @@ + + #: profile.c:288 + msgid "corrupted profile info: run_max * runs < sum_max" +-msgstr "" ++msgstr "ødelagt profilinfo: run_max * runs < sum_max" + + #: profile.c:294 + msgid "corrupted profile info: sum_all is smaller than sum_max" +-msgstr "" ++msgstr "ødelagt profilinfo: sum_all er mindre end sum_max" + +-# 'prob' står for sandsynlighed + #: profile.c:336 + #, fuzzy, c-format + msgid "corrupted profile info: edge from %i to %i exceeds maximal count" + msgstr "ødelagte profilinfo: sandsynlighed for %d-%d menes at være %d" + +-# 'prob' står for sandsynlighed + #: profile.c:499 + #, fuzzy, c-format + msgid "corrupted profile info: number of iterations for basic block %d thought to be %i" + msgstr "ødelagte profilinfo: sandsynlighed for %d-%d menes at være %d" + +-# 'prob' står for sandsynlighed + #: profile.c:526 + #, fuzzy, c-format + msgid "corrupted profile info: number of executions for edge %d-%d thought to be %i" +@@ -6696,7 +6695,7 @@ + msgid "can't use '%s' as a %s register" + msgstr "kan ikke bruge '%s' som et %s-register" + +-#: regclass.c:758 config/ia64/ia64.c:4660 config/ia64/ia64.c:4667 ++#: regclass.c:758 config/ia64/ia64.c:4666 config/ia64/ia64.c:4673 + #, c-format + msgid "unknown register name: %s" + msgstr "ukendt registernavn: %s" +@@ -6741,15 +6740,15 @@ + msgid "impossible register constraint in `asm'" + msgstr "umulig registerbegrænsing i 'asm'" + +-#: reload.c:3504 ++#: reload.c:3519 + msgid "`&' constraint used with no register class" + msgstr "'&'-begrænsning brugt uden registerklasse" + +-#: reload.c:3672 ++#: reload.c:3687 + msgid "unable to generate reloads for:" + msgstr "kunne ikke generere genindlæsninger for:" + +-#: reload.c:3673 reload.c:3887 ++#: reload.c:3688 reload.c:3902 + msgid "inconsistent operand constraints in an `asm'" + msgstr "inkonsistente operandbegræsninger i 'asm'" + +@@ -6846,9 +6845,8 @@ + msgstr "spring til '%s' rammer på ugyldig vis ind i bindingskontur" + + #: stmt.c:977 stmt.c:3790 +-#, fuzzy + msgid "%Jlabel '%D' used before containing binding contour" +-msgstr "etiket '%s' brugt før indholdende bindingskontur" ++msgstr "%Jetiket '%D' brugt før indeholdende bindingskontur" + + #: stmt.c:1156 + msgid "output operand constraint lacks `='" +@@ -6958,17 +6956,15 @@ + + #: stmt.c:2158 + msgid "%Hstatement with no effect" +-msgstr "" ++msgstr "%Hsætning uden nogen virkning" + + #: stmt.c:2314 +-#, fuzzy + msgid "%Hvalue computed is not used" +-msgstr "automat '%s' bliver ikke benyttet" ++msgstr "%Hberegnet værdi benyttes ikke" + + #: stmt.c:3730 +-#, fuzzy + msgid "%Junused variable '%D'" +-msgstr "ubrugt variabel '%s'" ++msgstr "%Jubrugt variabel '%D'" + + #: stmt.c:4505 + #, fuzzy +@@ -7003,29 +6999,24 @@ + msgstr "en type med en variabel størrelse er erklæret uden for en funktion" + + #: stor-layout.c:515 +-#, fuzzy + msgid "%Jsize of '%D' is %d bytes" +-msgstr "størrelsen af '%s' er %d byte" ++msgstr "%Jstørrelsen af '%D' er %d byte" + + #: stor-layout.c:517 +-#, fuzzy + msgid "%Jsize of '%D' is larger than %d bytes" +-msgstr "størrelsen af '%s' er større end %d byte" ++msgstr "%Jstørrelsen af '%D' er større end %d byte" + + #: stor-layout.c:883 +-#, fuzzy + msgid "%Jpacked attribute causes inefficient alignment for '%D'" +-msgstr "packed-egenskab forårsager ineffektiv justering af '%s'" ++msgstr "%Jpacked-egenskab forårsager ineffektiv justering af '%D'" + + #: stor-layout.c:886 +-#, fuzzy + msgid "%Jpacked attribute is unnecessary for '%D'" +-msgstr "packed-egenskab er unødvendig for '%s'" ++msgstr "%Jpacked-egenskab er unødvendig for '%D'" + + #: stor-layout.c:902 +-#, fuzzy + msgid "%Jpadding struct to align '%D'" +-msgstr "udfylder struct for at justere '%s'" ++msgstr "%Judfylder struct for at justere '%D'" + + #: stor-layout.c:1244 + msgid "padding struct size to alignment boundary" +@@ -7112,9 +7103,9 @@ + msgstr " %s" + + #: toplev.c:1310 +-#, fuzzy, c-format ++#, c-format + msgid "invalid option argument `%s'" +-msgstr "ugyldigt tilvalg '%s'" ++msgstr "ugyldig tilvalgsparameter '%s'" + + #: toplev.c:1373 + #, c-format +@@ -7127,19 +7118,16 @@ + msgstr "" + + #: toplev.c:1695 +-#, fuzzy + msgid "%J'%F' used but never defined" +-msgstr "'%s' brugt, men aldrig defineret" ++msgstr "%J'%F' brugt, men aldrig defineret" + + #: toplev.c:1697 +-#, fuzzy + msgid "%J'%F' declared `static' but never defined" +-msgstr "'%s' erklæret 'static', men aldrig defineret" ++msgstr "%J'%F' erklæret 'static', men aldrig defineret" + + #: toplev.c:1722 +-#, fuzzy + msgid "%J'%D' defined but not used" +-msgstr "'%s' defineret, men aldrig brugt" ++msgstr "%J'%D' defineret, men aldrig brugt" + + #: toplev.c:1743 toplev.c:1760 + #, c-format +@@ -7165,11 +7153,11 @@ + msgid "invalid register name `%s' for register variable" + msgstr "ugyldigt registernavn '%s' for registervariabel" + +-#: toplev.c:3546 ++#: toplev.c:3547 + msgid "branch target register load optimization is not intended to be run twice" + msgstr "" + +-#: toplev.c:3713 ++#: toplev.c:3714 + msgid "" + "\n" + "Target specific options:\n" +@@ -7177,12 +7165,12 @@ + "\n" + "Målspecifikke tilvalg:\n" + +-#: toplev.c:3727 toplev.c:3746 +-#, fuzzy, c-format ++#: toplev.c:3728 toplev.c:3747 ++#, c-format + msgid " -m%-23s [undocumented]\n" +-msgstr " -m%-23.23s [ikke dokumenteret]\n" ++msgstr " -m%-23s [ikke dokumenteret]\n" + +-#: toplev.c:3755 ++#: toplev.c:3756 + msgid "" + "\n" + "There are undocumented target specific options as well.\n" +@@ -7190,21 +7178,21 @@ + "\n" + "Der er også ikke-dokumenterede målspecifikke tilvalg.\n" + +-#: toplev.c:3757 ++#: toplev.c:3758 + msgid " They exist, but they are not documented.\n" + msgstr " De eksisterer, men er ikke dokumenteret.\n" + +-#: toplev.c:3812 ++#: toplev.c:3813 + #, c-format + msgid "unrecognized gcc debugging option: %c" + msgstr "ukendt GCC-fejlfindingstilvalg: %c" + +-#: toplev.c:3874 config/rs6000/rs6000.c:922 ++#: toplev.c:3875 config/rs6000/rs6000.c:940 config/rs6000/rs6000.c:951 + #, c-format + msgid "invalid option `%s'" + msgstr "ugyldigt tilvalg '%s'" + +-#: toplev.c:3889 ++#: toplev.c:3890 + #, c-format + msgid "" + "%s%s%s version %s (%s)\n" +@@ -7215,93 +7203,93 @@ + "%s\toversat af GNU C version %s.\n" + "%s%s%s version %s (%s) oversat af CC.\n" + +-#: toplev.c:3896 ++#: toplev.c:3897 + #, c-format + msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n" + msgstr "%s%sGGC-heuristikker: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n" + +-#: toplev.c:3948 ++#: toplev.c:3949 + msgid "options passed: " + msgstr "tilvalg overbragt: " + +-#: toplev.c:3977 ++#: toplev.c:3978 + msgid "options enabled: " + msgstr "tilvalg slået til: " + +-#: toplev.c:4035 java/jcf-write.c:3424 +-#, fuzzy, c-format ++#: toplev.c:4036 java/jcf-write.c:3424 ++#, c-format + msgid "can't open %s for writing: %m" +-msgstr "kan ikke åbne '%s' til skrivning" ++msgstr "kan ikke åbne %s til skrivning: %m" + +-#: toplev.c:4118 config/sh/sh.c:7019 ++#: toplev.c:4119 config/sh/sh.c:7020 + msgid "created and used with different settings of -fpic" + msgstr "" + +-#: toplev.c:4120 config/sh/sh.c:7021 ++#: toplev.c:4121 config/sh/sh.c:7022 + msgid "created and used with different settings of -fpie" + msgstr "" + +-#: toplev.c:4171 config/sh/sh.c:7071 ++#: toplev.c:4172 config/sh/sh.c:7072 + #, c-format + msgid "created and used with differing settings of `-m%s'" +-msgstr "" ++msgstr "oprettet og brugt med en anden indstilling af '-m%s'" + +-#: toplev.c:4174 config/sh/sh.c:7074 ++#: toplev.c:4175 config/sh/sh.c:7075 + msgid "out of memory" +-msgstr "" ++msgstr "løbet tør for hukommelse" + +-#: toplev.c:4355 ++#: toplev.c:4356 + msgid "instruction scheduling not supported on this target machine" + msgstr "instruktionsplanlægning understøttes ikke på målarkitekturen" + +-#: toplev.c:4359 ++#: toplev.c:4360 + msgid "this target machine does not have delayed branches" + msgstr "målarkitekturen har ikke forsinkede forgreninger" + +-#: toplev.c:4373 ++#: toplev.c:4374 + #, c-format + msgid "-f%sleading-underscore not supported on this target machine" + msgstr "-f%sleading-underscore understøttes ikke på målarkitekturen" + +-#: toplev.c:4422 ++#: toplev.c:4423 + #, fuzzy, c-format + msgid "target system does not support the \"%s\" debug format" + msgstr "%s understøtter ikke '%%%s%c' %s-formateringen" + +-#: toplev.c:4439 ++#: toplev.c:4440 + msgid "-ffunction-sections not supported for this target" + msgstr "-ffunction-sections understøttes ikke på målarkitekturen" + +-#: toplev.c:4444 ++#: toplev.c:4445 + msgid "-fdata-sections not supported for this target" + msgstr "-fdata-sections understøttes ikke på målarkitekturen" + +-#: toplev.c:4451 ++#: toplev.c:4452 + msgid "-ffunction-sections disabled; it makes profiling impossible" + msgstr "-ffunction-sections deaktiveret; dette gør profilering umulig" + +-#: toplev.c:4458 ++#: toplev.c:4459 + msgid "-fprefetch-loop-arrays not supported for this target" + msgstr "-fprefetch-loop-arrays understøttes ikke på målarkitekturen" + +-#: toplev.c:4464 ++#: toplev.c:4465 + msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)" + msgstr "-fprefetch-loop-arrays understøttes ikke på målarkitekturen (prøv '-march'-tilvalgene)" + +-#: toplev.c:4473 ++#: toplev.c:4474 + msgid "-fprefetch-loop-arrays is not supported with -Os" + msgstr "-fprefetch-loop-arrays understøttes ikke med -Os" + +-#: toplev.c:4479 ++#: toplev.c:4480 + msgid "-ffunction-sections may affect debugging on some targets" + msgstr "-ffunction-sections kan have indflydelse på fejlfinding på nogle målarkitekturer" + +-#: toplev.c:4581 ++#: toplev.c:4582 + #, fuzzy, c-format + msgid "error writing to %s: %m" + msgstr "fejl ved skrivning til %s" + +-#: toplev.c:4583 java/jcf-parse.c:902 java/jcf-write.c:3431 ++#: toplev.c:4584 java/jcf-parse.c:902 java/jcf-write.c:3431 + #, fuzzy, c-format + msgid "error closing %s: %m" + msgstr "fejl ved lukning af %s" +@@ -7348,77 +7336,69 @@ + msgid "%Jfunction '%F' can never be inlined because it uses variable sized variables" + msgstr "" + +-#: tree-inline.c:1338 tree-inline.c:1345 +-#, fuzzy ++#: tree-inline.c:1338 tree-inline.c:1346 + msgid "%Jinlining failed in call to '%F': %s" +-msgstr "indlejring mislykkedes i kald til '%s'" ++msgstr "%Jindlejring mislykkedes i kald til '%F': %s" + + #: tree-optimize.c:190 +-#, fuzzy + msgid "%Jsize of return value of '%D' is %u bytes" +-msgstr "størrelsen af returtypen til '%s' er %u byte" ++msgstr "%Jstørrelsen af returtypen til '%D' er %u byte" + + #: tree-optimize.c:193 +-#, fuzzy + msgid "%Jsize of return value of '%D' is larger than %wd bytes" +-msgstr "størrelsen af returtypen til '%s' er større end %d byte" ++msgstr "%Jstørrelsen af returtypen til '%D' er større end %wd byte" + +-#: tree.c:3801 ++#: tree.c:3800 + msgid "arrays of functions are not meaningful" + msgstr "en tabel af funktioner giver ikke mening" + +-#: tree.c:3856 ++#: tree.c:3855 + msgid "function return type cannot be function" + msgstr "en funktions returtype kan ikke være en funktion" + +-#: tree.c:4685 ++#: tree.c:4684 + msgid "invalid initializer for bit string" + msgstr "ugyldig startværdi til bitstreng" + +-#: tree.c:4737 ++#: tree.c:4736 + #, c-format + msgid "tree check: expected %s, have %s in %s, at %s:%d" + msgstr "træ-kontrol: forventede %s, har %s i %s, ved %s:%d" + +-#: tree.c:4750 ++#: tree.c:4749 + #, c-format + msgid "tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d" + msgstr "træ-kontrol: forventede klasse '%c', har '%c' (%s) i %s, ved %s:%d" + +-#: tree.c:4763 ++#: tree.c:4762 + #, c-format + msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d" +-msgstr "RTL-kontrol: tilgik udtrykstræ %d af tree_vec med %d udtrykstræer i %s, ved %s:%d" ++msgstr "trækontrol: tilgik udtrykstræ %d af tree_vec med %d udtrykstræer i %s, ved %s:%d" + +-#: tree.c:4775 ++#: tree.c:4774 + #, fuzzy, c-format + msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d" +-msgstr "RTL-kontrol: tilgik udtrykstræ %d af tree_vec med %d udtrykstræer i %s, ved %s:%d" ++msgstr "trækontrol: tilgik operand %d af %s med %d operander i %s, ved %s:%d" + + #: varasm.c:434 +-#, fuzzy + msgid "%J%D causes a section type conflict" +-msgstr "%s forårsager en sektionstypekonflikt" ++msgstr "%J%D forårsager en sektionstypekonflikt" + + #: varasm.c:796 +-#, fuzzy + msgid "%Jregister name not specified for '%D'" +-msgstr "registernavn ikke angivet for '%s'" ++msgstr "%Jregisternavn ikke angivet for '%D'" + + #: varasm.c:798 +-#, fuzzy + msgid "%Jinvalid register name for '%D'" +-msgstr "ugyldigt registernavn for '%s'" ++msgstr "%Jugyldigt registernavn for '%D'" + + #: varasm.c:800 +-#, fuzzy + msgid "%Jdata type of '%D' isn't suitable for a register" +-msgstr "datatypen for '%s' passer ikke med et register" ++msgstr "%Jdatatypen for '%D' passer ikke med et register" + + #: varasm.c:803 +-#, fuzzy + msgid "%Jregister specified for '%D' isn't suitable for data type" +-msgstr "registeret som er angivet for '%s' passer ikke med datatypen" ++msgstr "%Jregisteret som er angivet for '%D' passer ikke med datatypen" + + #: varasm.c:813 + msgid "global register variable has initial value" +@@ -7429,75 +7409,67 @@ + msgstr "registervariable erklæret volatile virker ikke som du måske ønsker" + + #: varasm.c:848 +-#, fuzzy + msgid "%Jregister name given for non-register variable '%D'" +-msgstr "registernavn givet for ikke-registervariablen '%s'" ++msgstr "%Jregisternavn givet for ikke-registervariablen '%D'" + + #: varasm.c:1380 +-#, fuzzy + msgid "%Jstorage size of `%D' isn't known" +-msgstr "lagringsstørrelsen af '%D' er ikke kendt" ++msgstr "%Jlagringsstørrelsen af '%D' er ikke kendt" + + #: varasm.c:1434 +-#, fuzzy + msgid "%Jalignment of '%D' is greater than maximum object file alignment. Using %d" +-msgstr "justering af '%s' er større end den maksimale objektfilsjustering - bruger %d" ++msgstr "%Jjustering af '%D' er større end den maksimale objektfilsjustering - bruger %d" + + #: varasm.c:1480 + msgid "thread-local COMMON data not implemented" + msgstr "tråd-lokal COMMON-data er ikke implementeret" + + #: varasm.c:1505 +-#, fuzzy + msgid "%Jrequested alignment for '%D' is greater than implemented alignment of %d" +-msgstr "forespurgt justering for %s er større end den implementerede justering af %d" ++msgstr "%Jforespurgt justering for '%D' er større end den implementerede justering på %d" + +-#: varasm.c:3789 ++#: varasm.c:3790 + msgid "initializer for integer value is too complicated" + msgstr "startværdien for heltallet er for kompliceret" + +-#: varasm.c:3794 ++#: varasm.c:3795 + msgid "initializer for floating value is not a floating constant" + msgstr "startværdien for kommatal er ikke en kommatalskonstant" + +-#: varasm.c:3860 ++#: varasm.c:3861 + msgid "unknown set constructor type" + msgstr "ukendt mængdekonstruktionstype" + +-#: varasm.c:4079 ++#: varasm.c:4080 + #, c-format + msgid "invalid initial value for member `%s'" + msgstr "ugyldig startværdi for medlemmet '%s'" + +-#: varasm.c:4266 varasm.c:4310 +-#, fuzzy ++#: varasm.c:4267 varasm.c:4311 + msgid "%Jweak declaration of '%D' must precede definition" +-msgstr "svag erklæring af '%s' skal komme før definitionen" ++msgstr "%Jsvag erklæring af '%D' skal komme før definitionen" + +-#: varasm.c:4274 +-#, fuzzy ++#: varasm.c:4275 + msgid "%Jweak declaration of '%D' after first use results in unspecified behavior" +-msgstr "svag erklæring af '%s' efter første brug resulterer i ikke-defineret opførsel" ++msgstr "%Jsvag erklæring af '%D' efter første brug resulterer i ikke-defineret opførsel" + +-#: varasm.c:4308 +-#, fuzzy ++#: varasm.c:4309 + msgid "%Jweak declaration of '%D' must be public" +-msgstr "svag erklæring af '%s' skal være public" ++msgstr "%Jsvag erklæring af '%D' skal være public" + +-#: varasm.c:4317 +-#, fuzzy ++#: varasm.c:4318 + msgid "%Jweak declaration of '%D' not supported" +-msgstr "svag erklæring af '%s' ikke understøttet" ++msgstr "%Jsvag erklæring af '%D' ikke understøttet" + +-#: varasm.c:4346 varasm.c:4436 ++#: varasm.c:4347 varasm.c:4437 + msgid "only weak aliases are supported in this configuration" + msgstr "kun svage aliaser understøttes i denne konfiguration" + +-#: varasm.c:4439 ++#: varasm.c:4440 + msgid "alias definitions not supported in this configuration; ignored" + msgstr "aliasdefinitioner er ikke understøttet i denne konfiguration; ignoreret" + +-#: varasm.c:4468 ++#: varasm.c:4469 + msgid "visibility attribute not supported in this configuration; ignored" + msgstr "synlighedsegenskab er ikke understøttet i denne konfiguration; ignoreret" + +@@ -7523,37 +7495,32 @@ + #. End: + #. + #: diagnostic.def:1 +-#, fuzzy + msgid "fatal error: " +-msgstr "intern fejl: " ++msgstr "fatal fejl: " + + #: diagnostic.def:2 +-#, fuzzy + msgid "internal compiler error: " +-msgstr "intern fejl: " ++msgstr "intern oversætterfejl: " + + #: diagnostic.def:3 +-#, fuzzy + msgid "error: " +-msgstr "intern fejl: " ++msgstr "fejl: " + + #: diagnostic.def:4 +-#, fuzzy + msgid "sorry, unimplemented: " + msgstr "desværre, ikke implementeret: " + + #: diagnostic.def:6 + msgid "anachronism: " +-msgstr "" ++msgstr "anakronisme: " + + #: diagnostic.def:7 +-#, fuzzy + msgid "note: " +-msgstr "bemærk:" ++msgstr "bemærk: " + + #: diagnostic.def:8 + msgid "debug: " +-msgstr "" ++msgstr "fejlfinding: " + + #: params.def:53 + msgid "The maximum number of instructions in a single function eligible for inlining" +@@ -7581,16 +7548,15 @@ + + #: params.def:112 + msgid "The size of function body to be considered large" +-msgstr "" ++msgstr "Størrelsen af en funktionskrop som anses for stor" + + #: params.def:116 +-#, fuzzy + msgid "Maximal growth due to inlining of large function (in percent)" +-msgstr "Maksimal kodevækst forårsaget af haleduplikering (i procent)" ++msgstr "Maksimal kodevækst forårsaget af indlejring af stor funktion (i procent)" + + #: params.def:120 + msgid "how much can given compilation unit grow because of the inlining (in percent)" +-msgstr "" ++msgstr "Hvor meget en oversættelsesenhed kan vokse pga. indlejring (i procent)" + + #: params.def:127 + msgid "The maximum amount of memory to be allocated by GCSE" +@@ -7743,7 +7709,7 @@ + msgid "junk at end of '#pragma unused'" + msgstr "ragelse i slutningen af '#pragma unused'" + +-#: config/darwin.c:1347 ++#: config/darwin.c:1312 + #, fuzzy + msgid "internal and protected visibility attributes not supportedin this configuration; ignored" + msgstr "synlighedsegenskab er ikke understøttet i denne konfiguration; ignoreret" +@@ -7789,7 +7755,7 @@ + msgid "bad value `%s' for -mfp-trap-mode switch" + msgstr "ugyldig værdi '%s' til tilvalget -mfp-trap-mode" + +-#: config/alpha/alpha.c:324 config/rs6000/rs6000.c:1088 ++#: config/alpha/alpha.c:324 config/rs6000/rs6000.c:1117 + #, c-format + msgid "bad value `%s' for -mtls-size switch" + msgstr "ugyldig værdi '%s' til tilvalget -mtls-size" +@@ -7830,90 +7796,90 @@ + msgid "bad value `%s' for -mmemory-latency" + msgstr "ugyldig værdi '%s' for -mmemory-latency" + +-#: config/alpha/alpha.c:5425 ++#: config/alpha/alpha.c:5436 + #, c-format + msgid "invalid %%H value" + msgstr "ugyldig %%H-værdi" + +-#: config/alpha/alpha.c:5446 ++#: config/alpha/alpha.c:5457 + #, c-format + msgid "invalid %%J value" + msgstr "ugyldig %%J-værdi" + +-#: config/alpha/alpha.c:5462 config/ia64/ia64.c:4263 ++#: config/alpha/alpha.c:5473 config/ia64/ia64.c:4269 + #, c-format + msgid "invalid %%r value" + msgstr "ugyldig %%r-værdi" + +-#: config/alpha/alpha.c:5472 config/rs6000/rs6000.c:9241 ++#: config/alpha/alpha.c:5483 config/rs6000/rs6000.c:9332 + #: config/xtensa/xtensa.c:2014 + #, c-format + msgid "invalid %%R value" + msgstr "ugyldig %%R-værdi" + +-#: config/alpha/alpha.c:5478 config/rs6000/rs6000.c:9160 ++#: config/alpha/alpha.c:5489 config/rs6000/rs6000.c:9251 + #: config/xtensa/xtensa.c:1981 + #, c-format + msgid "invalid %%N value" + msgstr "ugyldig %%N-værdi" + +-#: config/alpha/alpha.c:5486 config/rs6000/rs6000.c:9188 ++#: config/alpha/alpha.c:5497 config/rs6000/rs6000.c:9279 + #, c-format + msgid "invalid %%P value" + msgstr "ugyldig %%P-værdi" + +-#: config/alpha/alpha.c:5494 ++#: config/alpha/alpha.c:5505 + #, c-format + msgid "invalid %%h value" + msgstr "ugyldig %%h-værdi" + +-#: config/alpha/alpha.c:5502 config/xtensa/xtensa.c:2007 ++#: config/alpha/alpha.c:5513 config/xtensa/xtensa.c:2007 + #, c-format + msgid "invalid %%L value" + msgstr "ugyldig %%L-værdi" + +-#: config/alpha/alpha.c:5541 config/rs6000/rs6000.c:9142 ++#: config/alpha/alpha.c:5552 config/rs6000/rs6000.c:9233 + #, c-format + msgid "invalid %%m value" + msgstr "ugyldig %%m-værdi" + +-#: config/alpha/alpha.c:5549 config/rs6000/rs6000.c:9150 ++#: config/alpha/alpha.c:5560 config/rs6000/rs6000.c:9241 + #, c-format + msgid "invalid %%M value" + msgstr "ugyldig %%M-værdi" + +-#: config/alpha/alpha.c:5593 ++#: config/alpha/alpha.c:5604 + #, c-format + msgid "invalid %%U value" + msgstr "ugyldig %%U-værdi" + +-#: config/alpha/alpha.c:5605 config/alpha/alpha.c:5619 +-#: config/rs6000/rs6000.c:9249 ++#: config/alpha/alpha.c:5616 config/alpha/alpha.c:5630 ++#: config/rs6000/rs6000.c:9340 + #, c-format + msgid "invalid %%s value" + msgstr "ugyldig %%s-værdi" + +-#: config/alpha/alpha.c:5642 ++#: config/alpha/alpha.c:5653 + #, c-format + msgid "invalid %%C value" + msgstr "ugyldig %%C-værdi" + +-#: config/alpha/alpha.c:5679 config/rs6000/rs6000.c:8979 +-#: config/rs6000/rs6000.c:8999 ++#: config/alpha/alpha.c:5690 config/rs6000/rs6000.c:9070 ++#: config/rs6000/rs6000.c:9090 + #, c-format + msgid "invalid %%E value" + msgstr "ugyldig %%E-værdi" + +-#: config/alpha/alpha.c:5704 config/alpha/alpha.c:5752 ++#: config/alpha/alpha.c:5715 config/alpha/alpha.c:5763 + msgid "unknown relocation unspec" + msgstr "ukendt relokaliserings-unspec" + +-#: config/alpha/alpha.c:5713 config/rs6000/rs6000.c:9562 ++#: config/alpha/alpha.c:5724 config/rs6000/rs6000.c:9653 + #, c-format + msgid "invalid %%xn code" + msgstr "ugyldig %%xn-kode" + +-#: config/alpha/alpha.c:6657 config/alpha/alpha.c:6660 config/s390/s390.c:6575 ++#: config/alpha/alpha.c:6668 config/alpha/alpha.c:6671 config/s390/s390.c:6575 + #: config/s390/s390.c:6578 + msgid "bad builtin fcode" + msgstr "ugyldig indbygget fcode" +@@ -8052,7 +8018,7 @@ + msgid "Tune expected memory latency" + msgstr "Justér den forventede hukommelsesventetid" + +-#: config/alpha/alpha.h:376 config/ia64/ia64.h:267 config/rs6000/sysv4.h:90 ++#: config/alpha/alpha.h:376 config/ia64/ia64.h:272 config/rs6000/sysv4.h:90 + msgid "Specify bit size of immediate TLS offsets" + msgstr "Angiv bitstørrelse for umiddelbar TLS-afsæt" + +@@ -8071,17 +8037,17 @@ + msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\"" + msgstr "parameteren til egenskaben '%s er ikke \"ilink1\" eller \"ilink2\"" + +-#: config/arc/arc.c:1714 config/m32r/m32r.c:2352 ++#: config/arc/arc.c:1714 config/m32r/m32r.c:2349 + #, c-format + msgid "invalid operand to %%R code" + msgstr "ugyldig operand til %%R-koden" + +-#: config/arc/arc.c:1746 config/m32r/m32r.c:2375 ++#: config/arc/arc.c:1746 config/m32r/m32r.c:2372 + #, c-format + msgid "invalid operand to %%H/%%L code" + msgstr "ugyldig operand til %%H/%%L-koden" + +-#: config/arc/arc.c:1769 config/m32r/m32r.c:2446 ++#: config/arc/arc.c:1769 config/m32r/m32r.c:2443 + #, c-format + msgid "invalid operand to %%U code" + msgstr "ugyldig operand til %%U-koden" +@@ -8092,7 +8058,7 @@ + msgstr "ugyldig operand til %%V-koden" + + #. Unknown flag. +-#: config/arc/arc.c:1787 config/m32r/m32r.c:2473 config/sparc/sparc.c:7010 ++#: config/arc/arc.c:1787 config/m32r/m32r.c:2470 config/sparc/sparc.c:7152 + msgid "invalid operand output code" + msgstr "ugyldig operand-uddatakode" + +@@ -8101,7 +8067,7 @@ + msgid "switch -mcpu=%s conflicts with -march= switch" + msgstr "tilvalget -mcpu=%s er i konflikt med tilvalget -march=" + +-#: config/arm/arm.c:530 config/rs6000/rs6000.c:767 config/sparc/sparc.c:424 ++#: config/arm/arm.c:530 config/rs6000/rs6000.c:785 config/sparc/sparc.c:426 + #, c-format + msgid "bad value (%s) for %s switch" + msgstr "ugyldig værdi (%s) til tilvalget %s" +@@ -8169,7 +8135,7 @@ + + #: config/arm/arm.c:806 + msgid "-mfpe switch not supported by ep9312 target cpu - ignored." +-msgstr "" ++msgstr "tilvalget -mfpe understøttes ikke af målprocessoren ep9312 - ignoreret." + + #: config/arm/arm.c:826 + msgid "structure size boundary can only be set to 8 or 32" +@@ -8184,13 +8150,13 @@ + msgid "unable to use '%s' for PIC register" + msgstr "kan ikke bruge '%s' til PIC-register" + +-#: config/arm/arm.c:2249 config/arm/arm.c:2267 config/avr/avr.c:4558 +-#: config/c4x/c4x.c:4447 config/h8300/h8300.c:4260 config/i386/i386.c:1592 +-#: config/i386/i386.c:1638 config/ip2k/ip2k.c:3169 ++#: config/arm/arm.c:2249 config/arm/arm.c:2267 config/avr/avr.c:4523 ++#: config/c4x/c4x.c:4447 config/h8300/h8300.c:4260 config/i386/i386.c:1598 ++#: config/i386/i386.c:1644 config/ip2k/ip2k.c:3169 + #: config/m68hc11/m68hc11.c:1311 config/m68k/m68k.c:345 + #: config/mcore/mcore.c:3375 config/ns32k/ns32k.c:1064 +-#: config/rs6000/rs6000.c:14866 config/sh/sh.c:6873 config/sh/sh.c:6894 +-#: config/sh/sh.c:6929 config/stormy16/stormy16.c:2073 config/v850/v850.c:2173 ++#: config/rs6000/rs6000.c:15070 config/sh/sh.c:6874 config/sh/sh.c:6895 ++#: config/sh/sh.c:6930 config/stormy16/stormy16.c:2073 config/v850/v850.c:2173 + #, c-format + msgid "`%s' attribute only applies to functions" + msgstr "egenskaben '%s' kan kun anvendes sammen med funktioner" +@@ -8205,7 +8171,7 @@ + msgstr "vælger skal være en umiddelbar værdi" + + #. @@@ better error message +-#: config/arm/arm.c:11284 config/i386/i386.c:14317 config/i386/i386.c:14351 ++#: config/arm/arm.c:11284 config/i386/i386.c:14318 config/i386/i386.c:14352 + msgid "mask must be an immediate" + msgstr "maske skal være en umiddelbar værdi" + +@@ -8218,14 +8184,12 @@ + msgstr "afbrydelsesservicerutiner kan ikke kodes i Thumb-tilstand" + + #: config/arm/pe.c:170 config/mcore/mcore.c:3241 +-#, fuzzy + msgid "%Jinitialized variable '%D' is marked dllimport" +-msgstr "variablen '%s' med startværdi er markeret dllimport" ++msgstr "%Jvariablen '%D' med startværdi er markeret dllimport" + + #: config/arm/pe.c:179 +-#, fuzzy + msgid "%Jstatic variable '%D' is marked dllimport" +-msgstr "statisk variabel '%s' er markeret dllimport" ++msgstr "%Jstatisk variabel '%D' er markeret dllimport" + + #: config/arm/arm.h:451 + msgid "Generate APCS conformant stack frames" +@@ -8343,55 +8307,55 @@ + msgid "Ignore dllimport attribute for functions" + msgstr "Ignorér dllimport-egenskaben for funktioner" + +-#: config/avr/avr.c:514 ++#: config/avr/avr.c:511 + #, c-format + msgid "large frame pointer change (%d) with -mtiny-stack" + msgstr "stor rammehenvisningsændring (%d) med -mtiny-stack" + +-#: config/avr/avr.c:1101 ++#: config/avr/avr.c:1098 + msgid "bad address, not (reg+disp):" + msgstr "ugyldig adresse, ikke (reg+disp):" + +-#: config/avr/avr.c:1109 ++#: config/avr/avr.c:1106 + msgid "internal compiler error. Bad address:" + msgstr "intern oversætterfejl - ugyldig adresse:" + +-#: config/avr/avr.c:1122 ++#: config/avr/avr.c:1119 + msgid "internal compiler error. Unknown mode:" + msgstr "intern oversætterfejl - ugyldig tilstand:" + +-#: config/avr/avr.c:1744 config/avr/avr.c:2405 ++#: config/avr/avr.c:1741 config/avr/avr.c:2402 + msgid "invalid insn:" + msgstr "ugyldig instruktion:" + +-#: config/avr/avr.c:1778 config/avr/avr.c:1861 config/avr/avr.c:1910 +-#: config/avr/avr.c:1919 config/avr/avr.c:2014 config/avr/avr.c:2183 +-#: config/avr/avr.c:2439 config/avr/avr.c:2547 ++#: config/avr/avr.c:1775 config/avr/avr.c:1858 config/avr/avr.c:1907 ++#: config/avr/avr.c:1916 config/avr/avr.c:2011 config/avr/avr.c:2180 ++#: config/avr/avr.c:2436 config/avr/avr.c:2544 + msgid "incorrect insn:" + msgstr "ukorrekt instruktion:" + +-#: config/avr/avr.c:1938 config/avr/avr.c:2099 config/avr/avr.c:2254 +-#: config/avr/avr.c:2591 ++#: config/avr/avr.c:1935 config/avr/avr.c:2096 config/avr/avr.c:2251 ++#: config/avr/avr.c:2588 + msgid "unknown move insn:" + msgstr "ukendt flytteinstruktion:" + +-#: config/avr/avr.c:2814 ++#: config/avr/avr.c:2811 + msgid "bad shift insn:" + msgstr "ugyldig skifteinstruktion:" + +-#: config/avr/avr.c:2927 config/avr/avr.c:3348 config/avr/avr.c:3719 ++#: config/avr/avr.c:2924 config/avr/avr.c:3345 config/avr/avr.c:3716 + msgid "internal compiler error. Incorrect shift:" + msgstr "intern oversætterfejl - ukorrekt skift:" + +-#: config/avr/avr.c:4532 config/ip2k/ip2k.c:3144 ++#: config/avr/avr.c:4497 config/ip2k/ip2k.c:3144 + msgid "only initialized variables can be placed into program memory area" + msgstr "kun variabler med startværdi kan placeres i programhukommelsesområdet" + +-#: config/avr/avr.c:4626 ++#: config/avr/avr.c:4591 + msgid "only uninitialized variables can be placed in the .noinit section" + msgstr "kun variabler uden startværdi kan placeres i .noinit-sektionen" + +-#: config/avr/avr.c:4640 ++#: config/avr/avr.c:4605 + #, c-format + msgid "MCU `%s' supported for assembler only" + msgstr "MCU '%s' understøttes kun for maskinkode" +@@ -9571,7 +9535,7 @@ + msgid "code model %s not supported in PIC mode" + msgstr "kodemodellen %s er ikke understøttet i PIC-tilstand" + +-#: config/i386/i386.c:1189 config/sparc/sparc.c:387 ++#: config/i386/i386.c:1189 config/sparc/sparc.c:389 + #, c-format + msgid "bad value (%s) for -mcmodel= switch" + msgstr "ugyldig værdi (%s) til tilvalget -mcmodel=" +@@ -9596,152 +9560,149 @@ + msgstr "%i bit-tilstand er ikke oversat med ind" + + #: config/i386/i386.c:1242 config/i386/i386.c:1254 +-#, fuzzy + msgid "CPU you selected does not support x86-64 instruction set" +-msgstr "målprocessoren understøtter ikke THUMB-instruktioner" ++msgstr "den valgte processor understøtter ikke x86-64-instruktionssættet" + + #: config/i386/i386.c:1247 config/iq2000/iq2000.c:1840 + #, c-format + msgid "bad value (%s) for -march= switch" + msgstr "ugyldig værdi (%s) til tilvalget -march=" + +-#: config/i386/i386.c:1260 ++#: config/i386/i386.c:1266 + #, c-format + msgid "bad value (%s) for -mtune= switch" + msgstr "ugyldig værdi (%s) til tilvalget -mcpu=" + +-#: config/i386/i386.c:1277 ++#: config/i386/i386.c:1283 + #, c-format + msgid "-mregparm=%d is not between 0 and %d" + msgstr "-mregparm=%d er ikke mellem 0 og %d" + +-#: config/i386/i386.c:1290 ++#: config/i386/i386.c:1296 + msgid "-malign-loops is obsolete, use -falign-loops" + msgstr "-malign-loops er forældet, benyt -falign-loops" + +-#: config/i386/i386.c:1295 config/i386/i386.c:1308 config/i386/i386.c:1321 ++#: config/i386/i386.c:1301 config/i386/i386.c:1314 config/i386/i386.c:1327 + #, c-format + msgid "-malign-loops=%d is not between 0 and %d" + msgstr "-malign-loops=%d er ikke mellem 0 og %d" + +-#: config/i386/i386.c:1303 ++#: config/i386/i386.c:1309 + msgid "-malign-jumps is obsolete, use -falign-jumps" + msgstr "-malign-jumps er forældet, benyt -falign-jumps" + +-#: config/i386/i386.c:1316 ++#: config/i386/i386.c:1322 + msgid "-malign-functions is obsolete, use -falign-functions" + msgstr "-malign-functions er forældet, benyt -falign-functions" + +-#: config/i386/i386.c:1354 ++#: config/i386/i386.c:1360 + #, c-format + msgid "-mpreferred-stack-boundary=%d is not between %d and 12" + msgstr "-mpreferred-stack-boundary=%d er ikke mellem %d og 12" + +-#: config/i386/i386.c:1366 ++#: config/i386/i386.c:1372 + #, c-format + msgid "-mbranch-cost=%d is not between 0 and 5" + msgstr "-mbranch-cost=%d er ikke mellem 0 og 5" + +-#: config/i386/i386.c:1378 ++#: config/i386/i386.c:1384 + #, c-format + msgid "bad value (%s) for -mtls-dialect= switch" + msgstr "ugyldig værdi (%s) til tilvalget -mtls-dialect" + +-#: config/i386/i386.c:1407 ++#: config/i386/i386.c:1413 + msgid "-malign-double makes no sense in the 64bit mode" + msgstr "-malign-double giver ikke mening i 64 bit-tilstand" + +-#: config/i386/i386.c:1409 ++#: config/i386/i386.c:1415 + msgid "-mrtd calling convention not supported in the 64bit mode" + msgstr "kaldekonventionen -mrtd er ikke understøttet i 64 bit-tilstand" + +-#: config/i386/i386.c:1431 config/i386/i386.c:1442 ++#: config/i386/i386.c:1437 config/i386/i386.c:1448 + msgid "SSE instruction set disabled, using 387 arithmetics" + msgstr "SSE-instruktionssæt deaktiveret, bruger 387-beregninger" + +-#: config/i386/i386.c:1447 ++#: config/i386/i386.c:1453 + msgid "387 instruction set disabled, using SSE arithmetics" + msgstr "387-instruktionssæt deaktiveret, bruger SSE-beregninger" + +-#: config/i386/i386.c:1454 ++#: config/i386/i386.c:1460 + #, c-format + msgid "bad value (%s) for -mfpmath= switch" + msgstr "ugyldig værdi (%s) til tilvalget -mfpmath=" + +-#: config/i386/i386.c:1602 config/i386/i386.c:1613 +-#, fuzzy ++#: config/i386/i386.c:1608 config/i386/i386.c:1619 + msgid "fastcall and stdcall attributes are not compatible" +-msgstr "shared og mdll er indbyrdes uforenelige" ++msgstr "fastcall og stdcall er indbyrdes uforenelige" + +-#: config/i386/i386.c:1606 config/i386/i386.c:1662 +-#, fuzzy ++#: config/i386/i386.c:1612 config/i386/i386.c:1668 + msgid "fastcall and regparm attributes are not compatible" +-msgstr "egenskaberne 'trap' og 'far' kan ikke bruges på samme tid, ignorerer 'far'" ++msgstr "fastcall og regparm er indbyrdes uforenelige" + +-#: config/i386/i386.c:1649 ++#: config/i386/i386.c:1655 + #, c-format + msgid "`%s' attribute requires an integer constant argument" + msgstr "egenskaben '%s' kræver en heltalskonstant som parameter" + +-#: config/i386/i386.c:1655 ++#: config/i386/i386.c:1661 + #, c-format + msgid "argument to `%s' attribute larger than %d" + msgstr "parameter til egenskaben '%s' er større end %d" + +-#: config/i386/i386.c:2621 ++#: config/i386/i386.c:2627 + msgid "SSE vector argument without SSE enabled changes the ABI" + msgstr "" + +-#: config/i386/i386.c:2637 ++#: config/i386/i386.c:2643 + msgid "MMX vector argument without MMX enabled changes the ABI" + msgstr "" + +-#: config/i386/i386.c:2865 ++#: config/i386/i386.c:2871 + msgid "SSE vector return without SSE enabled changes the ABI" + msgstr "" + +-#: config/i386/i386.c:6840 ++#: config/i386/i386.c:6841 + msgid "invalid UNSPEC as operand" + msgstr "ugyldig UNSPEC som operand" + +-#: config/i386/i386.c:7098 ++#: config/i386/i386.c:7099 + msgid "extended registers have no high halves" + msgstr "udvidede registre har ikke høje halvdele" + +-#: config/i386/i386.c:7113 ++#: config/i386/i386.c:7114 + msgid "unsupported operand size for extended register" + msgstr "ikke-understøttet operandstørrelse for udvidede registre" + +-#: config/i386/i386.c:7428 ++#: config/i386/i386.c:7429 + msgid "operand is neither a constant nor a condition code, invalid operand code 'c'" + msgstr "operand er hverken en konstant eller en betingelseskode, ugyldig operandkode 'c'" + +-#: config/i386/i386.c:7474 ++#: config/i386/i386.c:7475 + #, c-format + msgid "invalid operand code `%c'" + msgstr "ugyldig operandkode '%c'" + +-#: config/i386/i386.c:7517 ++#: config/i386/i386.c:7518 + msgid "invalid constraints for operand" + msgstr "ugyldige begrænsninger for operand" + +-#: config/i386/i386.c:12031 ++#: config/i386/i386.c:12032 + msgid "unknown insn mode" + msgstr "ukendt instruktionstilstand" + +-#: config/i386/i386.c:14119 config/i386/i386.c:14155 ++#: config/i386/i386.c:14120 config/i386/i386.c:14156 + #, c-format + msgid "selector must be an integer constant in the range 0..%i" + msgstr "" + +-#: config/i386/i386.c:14383 ++#: config/i386/i386.c:14384 + msgid "shift must be an immediate" + msgstr "skifteværdi skal være en umiddelbar værdi" + +-#: config/i386/i386.c:15406 +-#, fuzzy, c-format ++#: config/i386/i386.c:15407 ++#, c-format + msgid "`%s' incompatible attribute ignored" +-msgstr "egenskaben '%s' ignoreret" ++msgstr "uforenelig egenskab '%s' ignoreret" + + #: config/i386/winnt.c:104 + #, fuzzy +@@ -10036,7 +9997,7 @@ + #. variable, type `char *', is set to the variable part of the given + #. option if the fixed part matches. The actual option name is made + #. by appending `-m' to the specified name. +-#: config/i386/i386.h:461 config/ia64/ia64.h:269 config/rs6000/rs6000.h:449 ++#: config/i386/i386.h:461 config/ia64/ia64.h:274 config/rs6000/rs6000.h:449 + #: config/s390/s390.h:146 config/sparc/sparc.h:656 + msgid "Schedule code for given CPU" + msgstr "Planlæg koden til en given processor" +@@ -10154,7 +10115,7 @@ + msgid "iC2.0 and iC3.0 are incompatible - using iC3.0" + msgstr "iC2.0 og iC3.0 er inkompatible - bruger iC3.0" + +-#: config/i960/i960.c:1456 config/m68k/m68k.c:600 config/rs6000/rs6000.c:11597 ++#: config/i960/i960.c:1456 config/m68k/m68k.c:600 config/rs6000/rs6000.c:11690 + msgid "stack limit expression is not supported" + msgstr "stakgrænseudtryk understøttes ikke" + +@@ -10314,42 +10275,42 @@ + msgid "%Jaddress area attribute cannot be specified for functions" + msgstr "en dataområdeegenskab kan ikke angives for lokale variable" + +-#: config/ia64/ia64.c:4308 ++#: config/ia64/ia64.c:4314 + msgid "ia64_print_operand: unknown code" + msgstr "ia64_print_operand: ukendt kode" + +-#: config/ia64/ia64.c:4648 ++#: config/ia64/ia64.c:4654 + msgid "value of -mfixed-range must have form REG1-REG2" + msgstr "værdien af -mfixed-range skal være på formen REG1-REG2" + +-#: config/ia64/ia64.c:4675 ++#: config/ia64/ia64.c:4681 + #, c-format + msgid "%s-%s is an empty range" + msgstr "%s-%s er et tomt interval" + +-#: config/ia64/ia64.c:4723 ++#: config/ia64/ia64.c:4729 + msgid "cannot optimize floating point division for both latency and throughput" + msgstr "kan ikke optimere kommatalsdivision for både ventetid og båndbredde" + +-#: config/ia64/ia64.c:4729 ++#: config/ia64/ia64.c:4735 + msgid "cannot optimize integer division for both latency and throughput" + msgstr "kan ikke optimere heltalsdivision for både ventetid og båndbredde" + +-#: config/ia64/ia64.c:4735 ++#: config/ia64/ia64.c:4741 + #, fuzzy + msgid "cannot optimize square root for both latency and throughput" + msgstr "kan ikke optimere heltalsdivision for både ventetid og båndbredde" + +-#: config/ia64/ia64.c:4741 ++#: config/ia64/ia64.c:4747 + msgid "not yet implemented: latency-optimized inline square root" + msgstr "" + +-#: config/ia64/ia64.c:4753 ++#: config/ia64/ia64.c:4759 + #, c-format + msgid "bad value (%s) for -mtls-size= switch" + msgstr "ugyldig værdi (%s) for tilvalget -mtls-size=" + +-#: config/ia64/ia64.c:4769 ++#: config/ia64/ia64.c:4775 + #, fuzzy, c-format + msgid "bad value (%s) for -tune= switch" + msgstr "ugyldig værdi (%s) til tilvalget -mcpu=" +@@ -10357,110 +10318,110 @@ + #. This macro defines names of command options to set and clear bits in + #. `target_flags'. Its definition is an initializer with a subgrouping for + #. each command option. +-#: config/ia64/ia64.h:172 ++#: config/ia64/ia64.h:177 + msgid "Generate big endian code" + msgstr "Generér storendet kode" + +-#: config/ia64/ia64.h:174 config/mcore/mcore.h:154 ++#: config/ia64/ia64.h:179 config/mcore/mcore.h:154 + msgid "Generate little endian code" + msgstr "Generér lilleendet kode" + +-#: config/ia64/ia64.h:176 ++#: config/ia64/ia64.h:181 + msgid "Generate code for GNU as" + msgstr "Generér kode til GNU as" + +-#: config/ia64/ia64.h:178 ++#: config/ia64/ia64.h:183 + msgid "Generate code for Intel as" + msgstr "Generér kode til Intel as" + +-#: config/ia64/ia64.h:180 ++#: config/ia64/ia64.h:185 + msgid "Generate code for GNU ld" + msgstr "Generér kode til GNU ld" + +-#: config/ia64/ia64.h:182 ++#: config/ia64/ia64.h:187 + msgid "Generate code for Intel ld" + msgstr "Generér kode til Intel ld" + +-#: config/ia64/ia64.h:184 ++#: config/ia64/ia64.h:189 + msgid "Generate code without GP reg" + msgstr "Generér kode uden GP-registeret" + +-#: config/ia64/ia64.h:186 ++#: config/ia64/ia64.h:191 + msgid "Emit stop bits before and after volatile extended asms" + msgstr "Udsend stopbit før og efter volatile udvidede asm-sætninger" + +-#: config/ia64/ia64.h:188 ++#: config/ia64/ia64.h:193 + msgid "Don't emit stop bits before and after volatile extended asms" + msgstr "Udsend ikke stopbit før og efter volatile udvidede asm-sætninger" + +-#: config/ia64/ia64.h:190 ++#: config/ia64/ia64.h:195 + msgid "Emit code for Itanium (TM) processor B step" + msgstr "Udsend kode for Itanium (TM) processor B-skridt" + +-#: config/ia64/ia64.h:192 ++#: config/ia64/ia64.h:197 + msgid "Use in/loc/out register names" + msgstr "Benyt in/loc/out-registernavne" + +-#: config/ia64/ia64.h:194 ++#: config/ia64/ia64.h:199 + msgid "Disable use of sdata/scommon/sbss" + msgstr "Deaktivér brug af sdata/scommon/sbss" + +-#: config/ia64/ia64.h:196 ++#: config/ia64/ia64.h:201 + msgid "Enable use of sdata/scommon/sbss" + msgstr "Aktivér brug af sdata/scommon/sbss" + +-#: config/ia64/ia64.h:198 ++#: config/ia64/ia64.h:203 + msgid "gp is constant (but save/restore gp on indirect calls)" + msgstr "gp er konstant (men gem/gendan gp ved indirekte kald)" + +-#: config/ia64/ia64.h:200 ++#: config/ia64/ia64.h:205 + msgid "Generate self-relocatable code" + msgstr "Generér selvflyttende kode" + +-#: config/ia64/ia64.h:202 ++#: config/ia64/ia64.h:207 + msgid "Generate inline floating point division, optimize for latency" + msgstr "Generér indlejrede kommatalsdivisioner, optimér for ventetid" + +-#: config/ia64/ia64.h:204 ++#: config/ia64/ia64.h:209 + msgid "Generate inline floating point division, optimize for throughput" + msgstr "Generér indlejrede kommatalsdivisioner, optimér for båndbredde" + +-#: config/ia64/ia64.h:206 ++#: config/ia64/ia64.h:211 + msgid "Generate inline integer division, optimize for latency" + msgstr "Generér indlejrede heltalsdivisioner, optimér for ventetid" + +-#: config/ia64/ia64.h:208 ++#: config/ia64/ia64.h:213 + msgid "Generate inline integer division, optimize for throughput" + msgstr "Generér indlejrede heltalsdivisioner, optimér for båndbredde" + +-#: config/ia64/ia64.h:210 ++#: config/ia64/ia64.h:215 + #, fuzzy + msgid "Generate inline square root, optimize for latency" + msgstr "Generér indlejrede heltalsdivisioner, optimér for ventetid" + +-#: config/ia64/ia64.h:212 ++#: config/ia64/ia64.h:217 + #, fuzzy + msgid "Generate inline square root, optimize for throughput" + msgstr "Generér indlejrede heltalsdivisioner, optimér for båndbredde" + +-#: config/ia64/ia64.h:214 ++#: config/ia64/ia64.h:219 + msgid "Enable Dwarf 2 line debug info via GNU as" + msgstr "Aktivér Dwarf 2-linjefejlanalyseringsinfo via GNU as" + +-#: config/ia64/ia64.h:216 ++#: config/ia64/ia64.h:221 + msgid "Disable Dwarf 2 line debug info via GNU as" + msgstr "Deaktivér Dwarf 2-linjefejlanalyseringsinfo via GNU as" + +-#: config/ia64/ia64.h:218 ++#: config/ia64/ia64.h:223 + msgid "Enable earlier placing stop bits for better scheduling" + msgstr "" + +-#: config/ia64/ia64.h:220 ++#: config/ia64/ia64.h:225 + #, fuzzy + msgid "Disable earlier placing stop bits" + msgstr "Deaktivér parallelle instruktioner" + +-#: config/ia64/ia64.h:265 ++#: config/ia64/ia64.h:270 + msgid "Specify range of registers to make fixed" + msgstr "Angiv interval af registre der skal gøres faste" + +@@ -10497,7 +10458,7 @@ + msgid "PRINT_OPERAND: Unknown punctuation '%c'" + msgstr "PRINT_OPERAND: ukendt tegnsætning '%c'" + +-#: config/iq2000/iq2000.c:3478 config/mips/mips.c:5464 ++#: config/iq2000/iq2000.c:3478 config/mips/mips.c:5463 + #: config/xtensa/xtensa.c:1950 + msgid "PRINT_OPERAND null pointer" + msgstr "PRINT_OPERAND nul-henvisning" +@@ -10507,12 +10468,12 @@ + msgid "invalid %%P operand" + msgstr "ugyldig %%P-operand" + +-#: config/iq2000/iq2000.c:3555 config/rs6000/rs6000.c:9178 ++#: config/iq2000/iq2000.c:3555 config/rs6000/rs6000.c:9269 + #, c-format + msgid "invalid %%p value" + msgstr "ugyldig %%p-værdi" + +-#: config/iq2000/iq2000.c:3619 config/mips/mips.c:5594 ++#: config/iq2000/iq2000.c:3619 config/mips/mips.c:5593 + #, c-format + msgid "invalid use of %%d, %%x, or %%X" + msgstr "ugyldigt brug af %%d, %%x eller %%X" +@@ -10568,48 +10529,48 @@ + msgid "bad value (%s) for -flush-trap=n (0= found without a %%< in assembler pattern" + msgstr "intern fejl: %%> fundet uden en %%< i maskinkodeoversættermønster" + +-#: config/mips/mips.c:5441 ++#: config/mips/mips.c:5440 + #, c-format + msgid "internal error: %%} found without a %%{ in assembler pattern" + msgstr "intern fejl: %%} fundet uden en %%{ i maskinkodeoversættermønster" + +-#: config/mips/mips.c:5455 ++#: config/mips/mips.c:5454 + #, c-format + msgid "PRINT_OPERAND: unknown punctuation '%c'" + msgstr "PRINT_OPERAND: ukendt tegnsætning '%c'" + +-#: config/mips/mips.c:5484 ++#: config/mips/mips.c:5483 + #, fuzzy, c-format + msgid "PRINT_OPERAND, invalid insn for %%C" + msgstr "PRINT_OPERAND nul-henvisning" + +-#: config/mips/mips.c:5501 ++#: config/mips/mips.c:5500 + #, fuzzy, c-format + msgid "PRINT_OPERAND, invalid insn for %%N" + msgstr "PRINT_OPERAND nul-henvisning" + +-#: config/mips/mips.c:5510 ++#: config/mips/mips.c:5509 + #, fuzzy, c-format + msgid "PRINT_OPERAND, invalid insn for %%F" + msgstr "PRINT_OPERAND nul-henvisning" + +-#: config/mips/mips.c:5519 ++#: config/mips/mips.c:5518 + #, fuzzy, c-format + msgid "PRINT_OPERAND, invalid insn for %%W" + msgstr "PRINT_OPERAND nul-henvisning" + +-#: config/mips/mips.c:5625 ++#: config/mips/mips.c:5624 + msgid "PRINT_OPERAND, invalid operand for relocation" + msgstr "" + +-#: config/mips/mips.c:8310 ++#: config/mips/mips.c:8324 + #, c-format + msgid "can not handle inconsistent calls to `%s'" + msgstr "kan ikke håndtere inkonsistente kald af '%s'" + +-#: config/mips/mips.c:9316 ++#: config/mips/mips.c:9333 + msgid "the cpu name must be lower case" + msgstr "processornavnet skal staves med små bogstaver" + +-#: config/mips/mips.c:9338 ++#: config/mips/mips.c:9355 + #, c-format + msgid "bad value (%s) for %s" + msgstr "ugyldig værdi (%s) for %s" + +-#: config/mips/mips.c:9607 ++#: config/mips/mips.c:9624 + #, fuzzy, c-format + msgid "can't rewind temp file: %m" + msgstr "kan ikke spole midlertidig fil tilbage" + +-#: config/mips/mips.c:9611 ++#: config/mips/mips.c:9628 + #, fuzzy, c-format + msgid "can't write to output file: %m" + msgstr "kan ikke skrive i uddatafil" + +-#: config/mips/mips.c:9614 ++#: config/mips/mips.c:9631 + #, fuzzy, c-format + msgid "can't read from temp file: %m" + msgstr "kan ikke læse fra midlertidig fil" + +-#: config/mips/mips.c:9617 ++#: config/mips/mips.c:9634 + #, fuzzy, c-format + msgid "can't close temp file: %m" + msgstr "kan ikke lukke midlertidig fil" +@@ -11408,7 +11369,7 @@ + + #. Output assembler code to FILE to increment profiler label # LABELNO + #. for profiling a function entry. +-#: config/mips/mips.h:2418 ++#: config/mips/mips.h:2430 + msgid "mips16 function profiling" + msgstr "MIPS16-funktionsprofilering" + +@@ -11965,167 +11926,176 @@ + msgid "junk at end of #pragma longcall" + msgstr "ragelse i slutningen af #pragma longcall" + +-#: config/rs6000/rs6000.c:791 ++#: config/rs6000/rs6000.c:809 + msgid "-mmultiple is not supported on little endian systems" + msgstr "-mmultiple er ikke understøttet på lilleendede systemer" + +-#: config/rs6000/rs6000.c:798 ++#: config/rs6000/rs6000.c:816 + msgid "-mstring is not supported on little endian systems" + msgstr "-mstring er ikke understøttet på lilleendede systemer" + +-#: config/rs6000/rs6000.c:812 ++#: config/rs6000/rs6000.c:830 + #, c-format + msgid "unknown -mdebug-%s switch" + msgstr "ukendt tilvalg -mdebug-%s" + +-#: config/rs6000/rs6000.c:824 ++#: config/rs6000/rs6000.c:842 + #, c-format + msgid "unknown -mtraceback arg `%s'; expecting `full', `partial' or `none'" + msgstr "ukendt parameter '%s' til -mtraceback; forventer 'full', 'partial' eller 'none'" + +-#: config/rs6000/rs6000.c:835 ++#: config/rs6000/rs6000.c:853 + #, c-format + msgid "Unknown switch -mlong-double-%s" + msgstr "Ukendt tilvalg -mlong-double-%s" + +-#: config/rs6000/rs6000.c:876 ++#: config/rs6000/rs6000.c:894 + msgid "AltiVec and E500 instructions cannot coexist" + msgstr "" + +-#: config/rs6000/rs6000.c:1029 ++#: config/rs6000/rs6000.c:1058 + #, fuzzy, c-format + msgid "unknown -m%s= option specified: '%s'" + msgstr "ukendt tilvalg til -misel= angivet: '%s'" + +-#: config/rs6000/rs6000.c:1050 ++#: config/rs6000/rs6000.c:1079 + #, c-format + msgid "not configured for ABI: '%s'" + msgstr "" + +-#: config/rs6000/rs6000.c:1056 ++#: config/rs6000/rs6000.c:1085 + #, c-format + msgid "unknown ABI specified: '%s'" + msgstr "ukendt ABI angivet: '%s'" + +-#: config/rs6000/rs6000.c:1070 ++#: config/rs6000/rs6000.c:1099 + #, fuzzy, c-format + msgid "unknown -malign-XXXXX option specified: '%s'" + msgstr "ukendt tilvalg til -misel= angivet: '%s'" + +-#: config/rs6000/rs6000.c:3972 ++#: config/rs6000/rs6000.c:4001 + msgid "Cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them." + msgstr "" + +-#: config/rs6000/rs6000.c:4095 ++#: config/rs6000/rs6000.c:4124 + msgid "Cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them." + msgstr "" + +-#: config/rs6000/rs6000.c:5599 ++#: config/rs6000/rs6000.c:5604 + msgid "argument 1 must be a 5-bit signed literal" + msgstr "1. parameter skal være en 5 bit-konstant med fortegn" + +-#: config/rs6000/rs6000.c:5701 config/rs6000/rs6000.c:6357 ++#: config/rs6000/rs6000.c:5707 config/rs6000/rs6000.c:6374 + msgid "argument 2 must be a 5-bit unsigned literal" + msgstr "2. parameter skal være en 5 bit-konstant uden fortegn" + +-#: config/rs6000/rs6000.c:5741 ++#: config/rs6000/rs6000.c:5747 + msgid "argument 1 of __builtin_altivec_predicate must be a constant" + msgstr "1. parameter til __builtin_altivec_predicate skal være en konstant" + +-#: config/rs6000/rs6000.c:5795 ++#: config/rs6000/rs6000.c:5801 + msgid "argument 1 of __builtin_altivec_predicate is out of range" + msgstr "1. parameter til __builtin_altivec_predicate er uden for det gyldige interval" + +-#: config/rs6000/rs6000.c:5956 ++#: config/rs6000/rs6000.c:5962 + msgid "argument 3 must be a 4-bit unsigned literal" + msgstr "3. parameter skal være en 4 bit-konstant uden fortegn" + +-#: config/rs6000/rs6000.c:6126 ++#: config/rs6000/rs6000.c:6134 + #, c-format + msgid "argument to `%s' must be a 2-bit unsigned literal" + msgstr "parameter til '%s' skal være en 2 bit-konstant uden fortegn" + +-#: config/rs6000/rs6000.c:6239 ++#: config/rs6000/rs6000.c:6247 + msgid "argument to dss must be a 2-bit unsigned literal" + msgstr "parameter til dss skal være en 2 bit-konstant uden fortegn" + +-#: config/rs6000/rs6000.c:6477 ++#: config/rs6000/rs6000.c:6261 ++#, c-format ++msgid "invalid parameter combination for `%s' AltiVec intrinsic" ++msgstr "" ++ ++#: config/rs6000/rs6000.c:6494 + msgid "argument 1 of __builtin_spe_predicate must be a constant" + msgstr "1. parameter til __builtin_spe_predicate skal være en konstant" + +-#: config/rs6000/rs6000.c:6550 ++#: config/rs6000/rs6000.c:6567 + msgid "argument 1 of __builtin_spe_predicate is out of range" + msgstr "1. parameter til __builtin_spe_predicate er uden for det gyldige interval" + +-#: config/rs6000/rs6000.c:9008 ++#: config/rs6000/rs6000.c:9099 + #, c-format + msgid "invalid %%f value" + msgstr "ugyldig %%f-værdi" + +-#: config/rs6000/rs6000.c:9017 ++#: config/rs6000/rs6000.c:9108 + #, c-format + msgid "invalid %%F value" + msgstr "ugyldig %%F-værdi" + +-#: config/rs6000/rs6000.c:9026 ++#: config/rs6000/rs6000.c:9117 + #, c-format + msgid "invalid %%G value" + msgstr "ugyldig %%G-værdi" + +-#: config/rs6000/rs6000.c:9061 ++#: config/rs6000/rs6000.c:9152 + #, c-format + msgid "invalid %%j code" + msgstr "ugyldig %%j-kode" + +-#: config/rs6000/rs6000.c:9071 ++#: config/rs6000/rs6000.c:9162 + #, c-format + msgid "invalid %%J code" + msgstr "ugyldig %%J-kode" + +-#: config/rs6000/rs6000.c:9081 ++#: config/rs6000/rs6000.c:9172 + #, c-format + msgid "invalid %%k value" + msgstr "ugyldig %%k-værdi" + +-#: config/rs6000/rs6000.c:9101 config/xtensa/xtensa.c:2000 ++#: config/rs6000/rs6000.c:9192 config/xtensa/xtensa.c:2000 + #, c-format + msgid "invalid %%K value" + msgstr "ugyldig %%K-værdi" + +-#: config/rs6000/rs6000.c:9168 ++#: config/rs6000/rs6000.c:9259 + #, c-format + msgid "invalid %%O value" + msgstr "ugyldig %%O-værdi" + +-#: config/rs6000/rs6000.c:9215 ++#: config/rs6000/rs6000.c:9306 + #, c-format + msgid "invalid %%q value" + msgstr "ugyldig %%q-værdi" + +-#: config/rs6000/rs6000.c:9259 ++#: config/rs6000/rs6000.c:9350 + #, c-format + msgid "invalid %%S value" + msgstr "ugyldig %%S-værdi" + +-#: config/rs6000/rs6000.c:9301 ++#: config/rs6000/rs6000.c:9392 + #, c-format + msgid "invalid %%T value" + msgstr "ugyldig %%T-værdi" + +-#: config/rs6000/rs6000.c:9311 ++#: config/rs6000/rs6000.c:9402 + #, c-format + msgid "invalid %%u value" + msgstr "ugyldig %%u-værdi" + +-#: config/rs6000/rs6000.c:9320 config/xtensa/xtensa.c:1970 ++#: config/rs6000/rs6000.c:9411 config/xtensa/xtensa.c:1970 + #, c-format + msgid "invalid %%v value" + msgstr "ugyldig %%v-værdi" + +-#: config/rs6000/rs6000.c:13815 ++#: config/rs6000/rs6000.c:13913 + msgid "no profiling of 64-bit code for this ABI" + msgstr "ingen profilering af 64 bit-kode for denne ABI" + ++#: config/rs6000/rs6000.c:14986 ++msgid "use of 'long' in AltiVec types is deprecated; use 'int'" ++msgstr "" ++ + #: config/rs6000/aix.h:184 config/rs6000/beos.h:32 + msgid "Always pass floating-point arguments in memory" + msgstr "Overbring altid kommatalsparametre i hukommelse" +@@ -12386,19 +12356,23 @@ + msgstr "Undgå alle områdegrænser ved kaldeinstruktioner" + + #: config/rs6000/rs6000.h:468 ++msgid "Warn about deprecated 'vector long ...' AltiVec type usage" ++msgstr "" ++ ++#: config/rs6000/rs6000.h:471 + msgid "Determine which dependences between insns are considered costly" + msgstr "" + +-#: config/rs6000/rs6000.h:470 ++#: config/rs6000/rs6000.h:473 + msgid "Specify which post scheduling nop insertion scheme to apply" + msgstr "" + +-#: config/rs6000/rs6000.h:472 ++#: config/rs6000/rs6000.h:475 + #, fuzzy + msgid "Specify alignment of structure fields default/natural" + msgstr "Angiv den mindste bitjustering af strukturer" + +-#: config/rs6000/rs6000.h:474 ++#: config/rs6000/rs6000.h:477 + msgid "Specify scheduling priority for dispatch slot restricted insns" + msgstr "" + +@@ -12414,7 +12388,7 @@ + #. Number of bytes into the frame return addresses can be found. See + #. rs6000_stack_info in rs6000.c for more information on how the different + #. abi's store the return address. +-#: config/rs6000/rs6000.h:1923 ++#: config/rs6000/rs6000.h:1932 + msgid "RETURN_ADDRESS_OFFSET not supported" + msgstr "RETURN_ADDRESS_OFFSET er ikke understøttet" + +@@ -12690,28 +12664,28 @@ + msgid "enable fused multiply/add instructions" + msgstr "Generér sammensatte gang/addér-instruktioner" + +-#: config/sh/sh.c:5977 ++#: config/sh/sh.c:5978 + msgid "__builtin_saveregs not supported by this subtarget" + msgstr "__builtin_saveregs understøttes ikke af denne undermålarkitektur" + +-#: config/sh/sh.c:6879 ++#: config/sh/sh.c:6880 + msgid "attribute interrupt_handler is not compatible with -m5-compact" + msgstr "egenskaben interrupt_handler er ikke forenelig med -m5-compact" + + #. The sp_switch attribute only has meaning for interrupt functions. +-#: config/sh/sh.c:6901 config/sh/sh.c:6936 ++#: config/sh/sh.c:6902 config/sh/sh.c:6937 + #, c-format + msgid "`%s' attribute only applies to interrupt functions" + msgstr "egenskaben '%s' kan kun anvendes sammen med afbrydelsesfunktioner" + + #. The argument must be a constant string. +-#: config/sh/sh.c:6908 ++#: config/sh/sh.c:6909 + #, c-format + msgid "`%s' attribute argument not a string constant" + msgstr "parameteren til egenskaben '%s' er ikke en strengkonstant" + + #. The argument must be a constant integer. +-#: config/sh/sh.c:6943 ++#: config/sh/sh.c:6944 + #, c-format + msgid "`%s' attribute argument not an integer constant" + msgstr "parameteren til egenskaben '%s' er ikke en heltalskonstant" +@@ -12723,69 +12697,69 @@ + msgid "Profiling is not supported on this target." + msgstr "Profilering er ikke understøttet på målarkitekturen." + +-#: config/sparc/sparc.c:360 ++#: config/sparc/sparc.c:362 + #, c-format + msgid "%s is not supported by this configuration" + msgstr "%s understøttes ikke af denne konfiguration" + +-#: config/sparc/sparc.c:367 ++#: config/sparc/sparc.c:369 + msgid "-mlong-double-64 not allowed with -m64" + msgstr "-mlong-double-64 er ikke tilladt med -m64" + +-#: config/sparc/sparc.c:392 ++#: config/sparc/sparc.c:394 + msgid "-mcmodel= is not supported on 32 bit systems" + msgstr "-mcmodel= understøttes ikke på 32 bit-systemer" + +-#: config/sparc/sparc.c:6818 config/sparc/sparc.c:6824 ++#: config/sparc/sparc.c:6960 config/sparc/sparc.c:6966 + #, c-format + msgid "invalid %%Y operand" + msgstr "ugyldig %%Y-operand" + +-#: config/sparc/sparc.c:6894 ++#: config/sparc/sparc.c:7036 + #, c-format + msgid "invalid %%A operand" + msgstr "ugyldig %%A-operand" + +-#: config/sparc/sparc.c:6904 ++#: config/sparc/sparc.c:7046 + #, c-format + msgid "invalid %%B operand" + msgstr "ugyldig %%B-operand" + +-#: config/sparc/sparc.c:6943 ++#: config/sparc/sparc.c:7085 + #, c-format + msgid "invalid %%c operand" + msgstr "ugyldig %%c-operand" + +-#: config/sparc/sparc.c:6944 ++#: config/sparc/sparc.c:7086 + #, c-format + msgid "invalid %%C operand" + msgstr "ugyldig %%C-operand" + +-#: config/sparc/sparc.c:6965 ++#: config/sparc/sparc.c:7107 + #, c-format + msgid "invalid %%d operand" + msgstr "ugyldig %%d-operand" + +-#: config/sparc/sparc.c:6966 ++#: config/sparc/sparc.c:7108 + #, c-format + msgid "invalid %%D operand" + msgstr "ugyldig %%D-operand" + +-#: config/sparc/sparc.c:6982 ++#: config/sparc/sparc.c:7124 + #, c-format + msgid "invalid %%f operand" + msgstr "ugyldig %%f-operand" + +-#: config/sparc/sparc.c:6996 ++#: config/sparc/sparc.c:7138 + #, c-format + msgid "invalid %%s operand" + msgstr "ugyldig %%s-operand" + +-#: config/sparc/sparc.c:7050 ++#: config/sparc/sparc.c:7192 + msgid "long long constant not a valid immediate operand" + msgstr "long long-konstant er ikke en gyldig umiddelbar operand" + +-#: config/sparc/sparc.c:7053 ++#: config/sparc/sparc.c:7195 + msgid "floating point constant not a valid immediate operand" + msgstr "kommatalskonstant er ikke en gyldig umiddelbar operand" + +@@ -13276,273 +13250,273 @@ + msgid "`-gnat' misspelled as `-gant'" + msgstr "'-gnat' stavet forkert som '-gant'" + +-#: cp/call.c:217 ++#: cp/call.c:219 + msgid "unable to call pointer to member function here" + msgstr "kan ikke kalde henvisning til medlemsfunktion her" + +-#: cp/call.c:2228 ++#: cp/call.c:2238 + msgid "%s %D(%T, %T, %T) " + msgstr "%s %D(%T, %T, %T) " + +-#: cp/call.c:2233 ++#: cp/call.c:2243 + msgid "%s %D(%T, %T) " + msgstr "%s %D(%T, %T) " + +-#: cp/call.c:2237 ++#: cp/call.c:2247 + msgid "%s %D(%T) " + msgstr "%s %D(%T) " + +-#: cp/call.c:2241 ++#: cp/call.c:2251 + msgid "%s %T " + msgstr "%s %T " + +-#: cp/call.c:2243 ++#: cp/call.c:2253 + msgid "%J%s %+#D " + msgstr "" + +-#: cp/call.c:2245 ++#: cp/call.c:2255 + #, fuzzy + msgid "%J%s %+#D" + msgstr "%s %+#D" + +-#: cp/call.c:2280 ++#: cp/call.c:2290 + #, fuzzy + msgid "candidates are:" + msgstr "candidate%s: %+#D" + +-#: cp/call.c:2468 ++#: cp/call.c:2478 + msgid "conversion from `%T' to `%T' is ambiguous" + msgstr "konvertering fra '%T' til '%T' er tvetydigt" + +-#: cp/call.c:2619 cp/call.c:2663 ++#: cp/call.c:2629 cp/call.c:2673 + msgid "no matching function for call to `%D(%A)'" + msgstr "ingen passende funktion for kald til '%D(%A)'" + +-#: cp/call.c:2622 cp/call.c:2666 ++#: cp/call.c:2632 cp/call.c:2676 + msgid "call of overloaded `%D(%A)' is ambiguous" + msgstr "kald af flertydig '%D(%A)' er tvetydigt" + + #. It's no good looking for an overloaded operator() on a + #. pointer-to-member-function. +-#: cp/call.c:2732 ++#: cp/call.c:2742 + #, c-format + msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*" + msgstr "henvisning til medlemsfunktionen %E kan ikke kaldes uden et objekt; overvej at benytte .* eller ->*" + +-#: cp/call.c:2798 ++#: cp/call.c:2808 + msgid "no match for call to `(%T) (%A)'" + msgstr "ingen passende fundet for kald til '(%T) (%A)'" + +-#: cp/call.c:2806 ++#: cp/call.c:2816 + msgid "call of `(%T) (%A)' is ambiguous" + msgstr "kald af '(%T) (%A)' er tvetydigt" + +-#: cp/call.c:2839 ++#: cp/call.c:2849 + #, c-format + msgid "%s for ternary 'operator?:' in '%E ? %E : %E'" + msgstr "" + +-#: cp/call.c:2845 ++#: cp/call.c:2855 + #, fuzzy, c-format + msgid "%s for 'operator%s' in '%E%s'" + msgstr "%s for operatoren '%T %s' " + +-#: cp/call.c:2849 ++#: cp/call.c:2859 + #, c-format + msgid "%s for 'operator[]' in '%E[%E]'" + msgstr "" + +-#: cp/call.c:2854 ++#: cp/call.c:2864 + #, fuzzy, c-format + msgid "%s for '%s' in '%s %E'" + msgstr "manglende felt '%s' i '%s'" + +-#: cp/call.c:2859 ++#: cp/call.c:2869 + #, c-format + msgid "%s for 'operator%s' in '%E %s %E'" + msgstr "" + +-#: cp/call.c:2862 ++#: cp/call.c:2872 + #, fuzzy, c-format + msgid "%s for 'operator%s' in '%s%E'" + msgstr "%s for operatoren '%T %s' " + +-#: cp/call.c:2951 ++#: cp/call.c:2961 + msgid "ISO C++ forbids omitting the middle term of a ?: expression" + msgstr "ISO C++ forbyder udeladelse af den mellemste del af et ?:-udtryk" + +-#: cp/call.c:3028 ++#: cp/call.c:3038 + #, c-format + msgid "`%E' has type `void' and is not a throw-expression" + msgstr "'%E' har typen 'void' og er ikke et throw-udtryk" + +-#: cp/call.c:3061 cp/call.c:3265 ++#: cp/call.c:3071 cp/call.c:3275 + msgid "operands to ?: have different types" + msgstr "operander til ?: har forskellige typer" + +-#: cp/call.c:3219 ++#: cp/call.c:3229 + msgid "enumeral mismatch in conditional expression: `%T' vs `%T'" + msgstr "enum-typer passer ikke sammen i betinget udtryk: '%T' og '%T'" + +-#: cp/call.c:3226 ++#: cp/call.c:3236 + msgid "enumeral and non-enumeral type in conditional expression" + msgstr "enum- og ikke enum-type i betinget udtryk" + +-#: cp/call.c:3511 ++#: cp/call.c:3521 + msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead" + msgstr "ingen '%D(int)' erklæret for suffiks '%s', prøver præfiksoperatoren i stedet" + +-#: cp/call.c:3560 ++#: cp/call.c:3570 + msgid "using synthesized `%#D' for copy assignment" + msgstr "bruger syntetiseret '%#D' for kopitildeling" + +-#: cp/call.c:3562 ++#: cp/call.c:3572 + msgid " where cfront would use `%#D'" + msgstr " hvor cfront ville bruge '%#D'" + +-#: cp/call.c:3585 ++#: cp/call.c:3595 + msgid "comparison between `%#T' and `%#T'" + msgstr "sammenligning mellem '%#T' og '%#T'" + +-#: cp/call.c:3831 ++#: cp/call.c:3841 + #, fuzzy + msgid "no suitable `operator %s' for `%T'" + msgstr "ingen passende 'operator delete' for '%T'" + +-#: cp/call.c:3848 ++#: cp/call.c:3858 + msgid "`%+#D' is private" + msgstr "'%+#D' er privat" + +-#: cp/call.c:3850 ++#: cp/call.c:3860 + msgid "`%+#D' is protected" + msgstr "'%+#D' er beskyttet" + +-#: cp/call.c:3852 ++#: cp/call.c:3862 + msgid "`%+#D' is inaccessible" + msgstr "'%+#D' er ikke tilgængelig" + +-#: cp/call.c:3853 ++#: cp/call.c:3863 + msgid "within this context" + msgstr "i denne kontekst" + +-#: cp/call.c:3923 ++#: cp/call.c:3947 + msgid "invalid conversion from `%T' to `%T'" + msgstr "ugyldig konvertering fra '%T' til '%T'" + +-#: cp/call.c:3925 ++#: cp/call.c:3949 + msgid " initializing argument %P of `%D'" + msgstr " ved klargøring af parameteren %P til '%D'" + +-#: cp/call.c:4079 ++#: cp/call.c:4094 + #, fuzzy + msgid "cannot bind bitfield `%E' to `%T'" + msgstr "kan ikke klargøre '%T' fra %T'" + +-#: cp/call.c:4082 ++#: cp/call.c:4097 + #, fuzzy + msgid "cannot bind packed field `%E' to `%T'" + msgstr "kan ikke erklære feltet '%D' til at være af typen '%T'" + +-#: cp/call.c:4085 ++#: cp/call.c:4100 + #, fuzzy + msgid "cannot bind rvalue `%E' to `%T'" + msgstr "kan ikke klargøre '%T' fra %T'" + +-#: cp/call.c:4170 ++#: cp/call.c:4185 + msgid "cannot pass objects of non-POD type `%#T' through `...'; call will abort at runtime" + msgstr "kan ikke videregive objekter af en ikke-POD type '%#T' gennem '...'; kald vil afbryde på kørselstidspunktet" + + #. Undefined behavior [expr.call] 5.2.2/7. +-#: cp/call.c:4196 ++#: cp/call.c:4211 + #, fuzzy + msgid "cannot receive objects of non-POD type `%#T' through `...'; call will abort at runtime" + msgstr "kan ikke videregive objekter af en ikke-POD type '%#T' gennem '...'; kald vil afbryde på kørselstidspunktet" + +-#: cp/call.c:4240 ++#: cp/call.c:4255 + #, fuzzy + msgid "the default argument for parameter %d of `%D' has not yet been parsed" + msgstr "standardparameter for parameter af typen '%T' har typen '%T'" + +-#: cp/call.c:4437 ++#: cp/call.c:4452 + msgid "passing `%T' as `this' argument of `%#D' discards qualifiers" + msgstr "videregivelse af '%T' som 'this'-parameteren til '%#D' forkaster modifikationer" + +-#: cp/call.c:4456 ++#: cp/call.c:4471 + #, fuzzy + msgid "`%T' is not an accessible base of `%T'" + msgstr "'%T' er en utilgængelig stamklasse til '%T'" + +-#: cp/call.c:4725 ++#: cp/call.c:4740 + msgid "could not find class$ field in java interface type `%T'" + msgstr "kunne ikke finde et class$-felt i Java-grænsefladetypen '%T'" + +-#: cp/call.c:4980 ++#: cp/call.c:4995 + msgid "call to non-function `%D'" + msgstr "kald af ikke-funktion '%D'" + +-#: cp/call.c:5006 ++#: cp/call.c:5021 + msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'" + msgstr "forespørgsel efter medlemmet '%D' i '%E' som er af en ikke-sammensat type '%T'" + +-#: cp/call.c:5084 ++#: cp/call.c:5099 + #, fuzzy + msgid "no matching function for call to `%T::%s(%A)%#V'" + msgstr "ingen passende funktion for kald til '%T::%D(%A)%#V'" + +-#: cp/call.c:5101 ++#: cp/call.c:5116 + #, fuzzy, c-format + msgid "call of overloaded `%s(%A)' is ambiguous" + msgstr "kald af flertydig '%D(%A)' er tvetydigt" + +-#: cp/call.c:5122 ++#: cp/call.c:5137 + msgid "cannot call member function `%D' without object" + msgstr "kan ikke kalde medlemsfunktionen '%D' uden et objekt" + +-#: cp/call.c:5707 ++#: cp/call.c:5722 + msgid "passing `%T' chooses `%T' over `%T'" + msgstr "videregivelse af '%T' vælger '%T' frem for '%T'" + +-#: cp/call.c:5709 cp/name-lookup.c:4155 ++#: cp/call.c:5724 cp/name-lookup.c:4137 + msgid " in call to `%D'" + msgstr " i kald af '%D'" + +-#: cp/call.c:5766 ++#: cp/call.c:5781 + msgid "choosing `%D' over `%D'" + msgstr "vælger '%D' frem for '%D'" + +-#: cp/call.c:5767 ++#: cp/call.c:5782 + msgid " for conversion from `%T' to `%T'" + msgstr " for konvertering fra '%T' til '%T'" + +-#: cp/call.c:5769 ++#: cp/call.c:5784 + msgid " because conversion sequence for the argument is better" + msgstr " fordi konverteringssekvensen for parameteren er bedre" + +-#: cp/call.c:5889 ++#: cp/call.c:5904 + #, fuzzy + msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:" + msgstr "ifølge ISO C++ er '%D' og '%D' tvetydigt selvom den værste konvertering for førstnævnte er bedre end den værste konvertering for den sidstnævnte" + +-#: cp/call.c:5893 ++#: cp/call.c:5908 + #, fuzzy + msgid "candidate 1:" + msgstr "candidate%s: %+#D" + +-#: cp/call.c:5894 ++#: cp/call.c:5909 + #, fuzzy + msgid "candidate 2:" + msgstr "candidate%s: %+#D" + +-#: cp/call.c:6003 ++#: cp/call.c:6018 + msgid "could not convert `%E' to `%T'" + msgstr "kunne ikke konvertere '%E' til '%T'" + +-#: cp/call.c:6108 ++#: cp/call.c:6123 + #, fuzzy + msgid "invalid initialization of non-const reference of type '%T' from a temporary of type '%T'" + msgstr "ugyldig const_cast af en højreværdi fra typen '%T' til typen '%T'" + +-#: cp/call.c:6112 ++#: cp/call.c:6127 + #, fuzzy + msgid "invalid initialization of reference of type '%T' from expression of type '%T'" + msgstr "ugyldig omdannelse til typen '%T' fra typen '%T'" +@@ -13619,222 +13593,222 @@ + msgstr "'%#T' definerer kun private konstruktionsfunktioner og har ingen venner" + + # %D er en funktion +-#: cp/class.c:1995 ++#: cp/class.c:2038 + msgid "no unique final overrider for `%D' in `%T'" + msgstr "ingen unik endelig overskrivning af '%D' i '%T'" + + #. Here we know it is a hider, and no overrider exists. +-#: cp/class.c:2441 ++#: cp/class.c:2484 + msgid "`%D' was hidden" + msgstr "'%D' var skjult" + +-#: cp/class.c:2442 ++#: cp/class.c:2485 + msgid " by `%D'" + msgstr " af '%D'" + +-#: cp/class.c:2484 cp/decl2.c:1161 ++#: cp/class.c:2527 cp/decl2.c:1161 + msgid "`%#D' invalid; an anonymous union can only have non-static data members" + msgstr "'%#D' er ugyldig; en anonym union kan kun have ikke-statiske datamedlemmer" + +-#: cp/class.c:2490 cp/decl2.c:1168 ++#: cp/class.c:2533 cp/decl2.c:1168 + msgid "private member `%#D' in anonymous union" + msgstr "privat medlem '%#D' i en anonym union" + +-#: cp/class.c:2493 cp/decl2.c:1170 ++#: cp/class.c:2536 cp/decl2.c:1170 + msgid "protected member `%#D' in anonymous union" + msgstr "beskyttet medlem '%#D' i en anonym union" + +-#: cp/class.c:2612 ++#: cp/class.c:2655 + msgid "vtable layout for class `%T' may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor" + msgstr "vtable-layout for klassen '%T' følger ikke nødvendigvis ABI'et og kan ændre sig i en fremtidig version af GCC pga. underforstået virtuel destruktionsfunktion" + +-#: cp/class.c:2672 ++#: cp/class.c:2715 + msgid "bit-field `%#D' with non-integral type" + msgstr "bitfelt '%#D' med en ikke-heltalstype" + +-#: cp/class.c:2692 ++#: cp/class.c:2735 + msgid "bit-field `%D' width not an integer constant" + msgstr "bredden af bitfeltet '%D' er ikke en heltalskonstant" + +-#: cp/class.c:2698 ++#: cp/class.c:2741 + msgid "negative width in bit-field `%D'" + msgstr "negativ bredde i bitfeltet '%D'" + +-#: cp/class.c:2703 ++#: cp/class.c:2746 + msgid "zero width for bit-field `%D'" + msgstr "en bredde på nul for bitfeltet '%D'" + +-#: cp/class.c:2709 ++#: cp/class.c:2752 + msgid "width of `%D' exceeds its type" + msgstr "bredden af '%D' overstiger typen" + +-#: cp/class.c:2718 ++#: cp/class.c:2761 + msgid "`%D' is too small to hold all values of `%#T'" + msgstr "'%D' er for lille til at indeholde alle værdierne af '%#T'" + +-#: cp/class.c:2780 ++#: cp/class.c:2823 + msgid "member `%#D' with constructor not allowed in union" + msgstr "medlemmet '%#D' med en konstruktionsfunktion er ikke tilladt i en union" + +-#: cp/class.c:2783 ++#: cp/class.c:2826 + msgid "member `%#D' with destructor not allowed in union" + msgstr "medlemmet '%#D' med en destruktionsfunktion er ikke tilladt i en union" + +-#: cp/class.c:2786 ++#: cp/class.c:2829 + msgid "member `%#D' with copy assignment operator not allowed in union" + msgstr "medlemmet '%#D' med en kopitildelingsoperator er ikke tilladt i en union" + +-#: cp/class.c:2813 ++#: cp/class.c:2856 + msgid "multiple fields in union `%T' initialized" + msgstr "flere felter i union '%T' tildeles startværdi" + +-#: cp/class.c:2879 ++#: cp/class.c:2922 + msgid "ignoring packed attribute on unpacked non-POD field `%#D'" + msgstr "" + +-#: cp/class.c:2939 ++#: cp/class.c:2982 + #, fuzzy + msgid "`%D' may not be static because it is a member of a union" + msgstr "'%D' skal være en ikke-statisk medlemsfunktion" + +-#: cp/class.c:2944 ++#: cp/class.c:2987 + msgid "`%D' may not have reference type `%T' because it is a member of a union" + msgstr "" + +-#: cp/class.c:2952 ++#: cp/class.c:2995 + msgid "field `%D' in local class cannot be static" + msgstr "feltet '%D' i lokal klasse kan ikke være statisk" + +-#: cp/class.c:2958 ++#: cp/class.c:3001 + msgid "field `%D' invalidly declared function type" + msgstr "feltet '%D' er på ugyldig vis erklæret som en funktionstype" + +-#: cp/class.c:2965 ++#: cp/class.c:3008 + msgid "field `%D' invalidly declared method type" + msgstr "feltet '%D' er på ugyldig vis erklæret som en medlemsfunktionstype" + +-#: cp/class.c:2998 ++#: cp/class.c:3041 + msgid "non-static reference `%#D' in class without a constructor" + msgstr "ikke-statisk reference '%#D' i klasse uden en konstruktionsfunktion" + +-#: cp/class.c:3041 ++#: cp/class.c:3084 + msgid "non-static const member `%#D' in class without a constructor" + msgstr "ikke-statisk konstant medlem '%#D' i klasse uden en konstruktionsfunktion" + +-#: cp/class.c:3056 ++#: cp/class.c:3099 + msgid "field `%#D' with same name as class" + msgstr "felt '%#D' med samme navn som klassen" + +-#: cp/class.c:3074 ++#: cp/class.c:3117 + msgid "`%#T' has pointer data members" + msgstr "'%#T' har henvisningsdatamedlemmer" + +-#: cp/class.c:3078 ++#: cp/class.c:3121 + msgid " but does not override `%T(const %T&)'" + msgstr " men overskriver ikke '%T(const %T&)'" + +-#: cp/class.c:3080 ++#: cp/class.c:3123 + msgid " or `operator=(const %T&)'" + msgstr " eller 'operator=(const %T&)'" + +-#: cp/class.c:3083 ++#: cp/class.c:3126 + msgid " but does not override `operator=(const %T&)'" + msgstr " men overskriver ikke 'operator=(const %T&)'" + +-#: cp/class.c:3517 ++#: cp/class.c:3560 + msgid "offset of empty base `%T' may not be ABI-compliant and maychange in a future version of GCC" + msgstr "afsættet for tom stamklasse '%T' følger ikke nødvendigvis ABI'en og kan ændre sig i en fremtidig version af GCC" + +-#: cp/class.c:3627 ++#: cp/class.c:3670 + msgid "class `%T' will be considered nearly empty in a future version of GCC" + msgstr "klassen '%T' vil blive betragtet som næsten tom i en fremtidig version af GCC" + +-#: cp/class.c:3714 ++#: cp/class.c:3757 + msgid "initializer specified for non-virtual method `%D'" + msgstr "startværdi angivet for ikke-virtuel medlemsfunktion '%D'" + +-#: cp/class.c:4402 ++#: cp/class.c:4445 + msgid "offset of virtual base `%T' is not ABI-compliant and may change in a future version of GCC" + msgstr "afsættet for virtuel stamklasse '%T' følger ikke ABI'en og kan ændre sig i en fremtidig version af GCC" + +-#: cp/class.c:4492 ++#: cp/class.c:4535 + msgid "direct base `%T' inaccessible in `%T' due to ambiguity" + msgstr "direkte stamklasse '%T' er ikke tilgængelig i '%T' på grund af tvetydighed" + +-#: cp/class.c:4505 ++#: cp/class.c:4548 + msgid "virtual base `%T' inaccessible in `%T' due to ambiguity" + msgstr "virtuel stamklasse '%T' er ikke tilgængelig i '%T' på grund af tvetydighed" + +-#: cp/class.c:4679 ++#: cp/class.c:4722 + msgid "size assigned to `%T' may not be ABI-compliant and may change in a future version of GCC" + msgstr "størrelsen der bliver tildelt '%T' følger ikke nødvendigvis ABI'en og kan ændre sig i en fremtidig version af GCC" + + #. Versions of G++ before G++ 3.4 did not reset the + #. DECL_MODE. +-#: cp/class.c:4718 ++#: cp/class.c:4761 + #, fuzzy + msgid "the offset of `%D' may not be ABI-compliant and may change in a future version of GCC" + msgstr "afsættet for '%D' følger ikke ABI'en og kan ændre sig i en fremtidig version af GCC" + +-#: cp/class.c:4741 ++#: cp/class.c:4784 + msgid "offset of `%D' is not ABI-compliant and may change in a future version of GCC" + msgstr "afsættet for '%D' følger ikke ABI'en og kan ændre sig i en fremtidig version af GCC" + +-#: cp/class.c:4750 ++#: cp/class.c:4793 + msgid "`%D' contains empty classes which may cause base classes to be placed at different locations in a future version of GCC" + msgstr "'%D' indeholder tomme klasser hvad der kan få stamklasser til at blive placeret andre steder i en fremtidig version af GCC" + +-#: cp/class.c:4809 ++#: cp/class.c:4852 + msgid "layout of classes derived from empty class `%T' may change in a future version of GCC" + msgstr "layoutet af klasser der nedarver fra den tomme klasse '%T' kan ændre sig i en fremtidig version af GCC" + +-#: cp/class.c:4939 cp/semantics.c:2044 ++#: cp/class.c:4982 cp/semantics.c:2041 + msgid "redefinition of `%#T'" + msgstr "omdefinering af '%#T'" + +-#: cp/class.c:5109 ++#: cp/class.c:5152 + msgid "`%#T' has virtual functions but non-virtual destructor" + msgstr "'%#T' har virtuelle funktioner, men ikke-virtuel destruktionsfunktion" + +-#: cp/class.c:5188 ++#: cp/class.c:5231 + msgid "trying to finish struct, but kicked out due to previous parse errors" + msgstr "forsøgte at afslutte struct, men blev stoppet af tidligere fortolkningsfejl" + +-#: cp/class.c:5630 ++#: cp/class.c:5673 + #, c-format + msgid "language string `\"%s\"' not recognized" + msgstr "sprogstrengen '\"%s\"' ikke genkendt" + +-#: cp/class.c:5718 ++#: cp/class.c:5761 + msgid "cannot resolve overloaded function `%D' based on conversion to type `%T'" + msgstr "kan ikke benytte den flertydiggjorte funktion '%D' baseret på konvertering til typen '%T'" + +-#: cp/class.c:5843 ++#: cp/class.c:5886 + msgid "no matches converting function `%D' to type `%#T'" + msgstr "ingen passende ved konvertering af funktionen '%D' til typen '%#T'" + +-#: cp/class.c:5866 ++#: cp/class.c:5909 + msgid "converting overloaded function `%D' to type `%#T' is ambiguous" + msgstr "konvertering af den flertydiggjorte funktion '%D' til typen '%T' er tvetydig" + +-#: cp/class.c:5892 ++#: cp/class.c:5935 + msgid "assuming pointer to member `%D'" + msgstr "antager henvisning til medlemmet '%D'" + +-#: cp/class.c:5895 ++#: cp/class.c:5938 + #, c-format + msgid "(a pointer to member can only be formed with `&%E')" + msgstr "(en henvisning til medlem kan kun dannes med '&%E')" + +-#: cp/class.c:5940 cp/class.c:6122 cp/class.c:6129 ++#: cp/class.c:5983 cp/class.c:6165 cp/class.c:6172 + msgid "not enough type information" + msgstr "ikke tilstrækkelig information om typen" + +-#: cp/class.c:5957 ++#: cp/class.c:6000 + msgid "argument of type `%T' does not match `%T'" + msgstr "parameter af typen '%T' passer ikke til '%T'" + +-#: cp/class.c:6106 ++#: cp/class.c:6149 + msgid "invalid operation on uninstantiated type" + msgstr "ugyldig operation på uudskiftet type" + +@@ -13843,11 +13817,11 @@ + #. A name N used in a class S shall refer to the same declaration + #. in its context and when re-evaluated in the completed scope of + #. S. +-#: cp/class.c:6364 cp/decl.c:1222 cp/name-lookup.c:514 cp/pt.c:2097 ++#: cp/class.c:6407 cp/decl.c:1223 cp/name-lookup.c:514 cp/pt.c:2125 + msgid "declaration of `%#D'" + msgstr "omerklæring af '%#D'" + +-#: cp/class.c:6365 ++#: cp/class.c:6408 + msgid "changes meaning of `%D' from `%+#D'" + msgstr "skifter betydningen af '%D' fra '%+#D'" + +@@ -13950,150 +13924,167 @@ + msgid " candidate conversions include `%D' and `%D'" + msgstr " kandidater til konverteringen inkluderer '%D' og '%D'" + +-#: cp/decl.c:371 ++#: cp/decl.c:372 + msgid "label `%D' used but not defined" + msgstr "etiketten '%D' er benyttet, men ikke defineret" + +-#: cp/decl.c:378 ++#: cp/decl.c:379 + msgid "label `%D' defined but not used" + msgstr "etiketten '%D' er defineret, men ikke benyttet" + +-#: cp/decl.c:1130 cp/decl.c:1556 ++#: cp/decl.c:1131 cp/decl.c:1570 + msgid "previous declaration of `%D'" + msgstr "'%D' er tidligere erklæret" + +-#: cp/decl.c:1178 ++#: cp/decl.c:1179 + #, fuzzy + msgid "%Jfunction '%D' redeclared as inline" + msgstr "funktionen '%s' omerklæret som inline" + +-#: cp/decl.c:1179 ++#: cp/decl.c:1180 + #, fuzzy + msgid "%Jprevious declaration of '%D' with attribute noinline" + msgstr "tidligere erklæring af funktionen '%s' med egenskaben noinline" + +-#: cp/decl.c:1186 ++#: cp/decl.c:1187 + #, fuzzy + msgid "%Jfunction '%D' redeclared with attribute noinline" + msgstr "funktionen '%s' omerklæret med egenskaben noinline" + +-#: cp/decl.c:1188 ++#: cp/decl.c:1189 + #, fuzzy + msgid "%Jprevious declaration of '%D' was inline" + msgstr "tidligere erklæring af funktionen '%s' var inline" + +-#: cp/decl.c:1209 cp/decl.c:1247 ++#: cp/decl.c:1210 cp/decl.c:1248 + msgid "shadowing %s function `%#D'" + msgstr "skygger for en %s-funktion '%#D'" + +-#: cp/decl.c:1218 ++#: cp/decl.c:1219 + msgid "library function `%#D' redeclared as non-function `%#D'" + msgstr "biblioteksfunktionen '%#D' er omerklæret som '%#D' der ikke er en funktion" + +-#: cp/decl.c:1223 ++#: cp/decl.c:1224 + msgid "conflicts with built-in declaration `%#D'" + msgstr "strider mod indbygget erklæring '%#D'" + + # følges af næste tekst +-#: cp/decl.c:1242 cp/decl.c:1354 cp/decl.c:1370 ++#: cp/decl.c:1243 cp/decl.c:1355 cp/decl.c:1371 + msgid "new declaration `%#D'" + msgstr "ny erklæring af '%#D'" + +-#: cp/decl.c:1243 ++#: cp/decl.c:1244 + msgid "ambiguates built-in declaration `%#D'" + msgstr "tvetydiggør indbygget erklæring '%#D'" + +-#: cp/decl.c:1314 ++#: cp/decl.c:1315 + msgid "`%#D' redeclared as different kind of symbol" + msgstr "'%#D' omerklæret som en anden form for symbol" + +-#: cp/decl.c:1317 ++#: cp/decl.c:1318 + msgid "previous declaration of `%#D'" + msgstr "tidligere erklæring af '%#D'" + +-#: cp/decl.c:1339 ++#: cp/decl.c:1340 + msgid "declaration of template `%#D'" + msgstr "erklæring af skabelon '%#D'" + +-#: cp/decl.c:1340 cp/name-lookup.c:515 ++#: cp/decl.c:1341 cp/name-lookup.c:515 + msgid "conflicts with previous declaration `%#D'" + msgstr "strider mod tidligere erklæring '%#D'" + +-#: cp/decl.c:1355 cp/decl.c:1371 ++#: cp/decl.c:1356 cp/decl.c:1372 + msgid "ambiguates old declaration `%#D'" + msgstr "tvetydiggør tidligere erklæring '%#D'" + +-#: cp/decl.c:1363 ++#: cp/decl.c:1364 + msgid "declaration of C function `%#D' conflicts with" + msgstr "erklæring af C-funktionen '%#D' strider mod" + +-#: cp/decl.c:1365 ++#: cp/decl.c:1366 + msgid "previous declaration `%#D' here" + msgstr "tidligere erklæring af '%#D' her" + +-#: cp/decl.c:1381 ++#: cp/decl.c:1382 + #, fuzzy + msgid "conflicting declaration '%#D'" + msgstr "modstridende erklæringer af '%s'" + +-#: cp/decl.c:1382 ++#: cp/decl.c:1383 + #, fuzzy + msgid "'%D' has a previous declaration as `%#D'" + msgstr "tidligere erklæring som '%#D'" + +-#: cp/decl.c:1435 ++#. [namespace.alias] ++#. ++#. A namespace-name or namespace-alias shall not be declared as ++#. the name of any other entity in the same declarative region. ++#. A namespace-name defined at global scope shall not be ++#. declared as the name of any other entity in any glogal scope ++#. of the program. ++#: cp/decl.c:1436 ++#, fuzzy ++msgid "declaration of `namespace %D' conflicts with" ++msgstr "erklæring af C-funktionen '%#D' strider mod" ++ ++#: cp/decl.c:1437 ++#, fuzzy ++msgid "previous declaration of `namespace %D' here" ++msgstr "tidligere erklæring af '%#D' her" ++ ++#: cp/decl.c:1449 + msgid "`%#D' previously defined here" + msgstr "'%#D' tidligere defineret her" + +-#: cp/decl.c:1436 ++#: cp/decl.c:1450 + msgid "`%#D' previously declared here" + msgstr "'%#D' tidligere erklæret her" + + #. Prototype decl follows defn w/o prototype. +-#: cp/decl.c:1445 ++#: cp/decl.c:1459 + msgid "prototype for `%#D'" + msgstr "prototypen for '%#D'" + +-#: cp/decl.c:1446 ++#: cp/decl.c:1460 + #, fuzzy + msgid "%Jfollows non-prototype definition here" + msgstr "følger definition uden prototype her" + +-#: cp/decl.c:1458 ++#: cp/decl.c:1472 + msgid "previous declaration of `%#D' with %L linkage" + msgstr "tidligere erklæring af '%#D' med %L-kædning" + +-#: cp/decl.c:1460 ++#: cp/decl.c:1474 + msgid "conflicts with new declaration with %L linkage" + msgstr "strider mod ny erklæring af med %L-kædning" + +-#: cp/decl.c:1483 cp/decl.c:1490 ++#: cp/decl.c:1497 cp/decl.c:1504 + msgid "default argument given for parameter %d of `%#D'" + msgstr "standardparameter givet til %d. parameter for '%#D'" + +-#: cp/decl.c:1485 cp/decl.c:1492 ++#: cp/decl.c:1499 cp/decl.c:1506 + msgid "after previous specification in `%#D'" + msgstr "efter tidligere specifikation i '%#D'" + +-#: cp/decl.c:1501 ++#: cp/decl.c:1515 + msgid "`%#D' was used before it was declared inline" + msgstr "'%#D' blev brugt før erklæring som inline" + +-#: cp/decl.c:1502 ++#: cp/decl.c:1516 + #, fuzzy + msgid "%Jprevious non-inline declaration here" + msgstr "tidligere ikke-inline erklæring her" + +-#: cp/decl.c:1555 ++#: cp/decl.c:1569 + msgid "redundant redeclaration of `%D' in same scope" + msgstr "overflødig omerklæring af '%D' i samme virkefelt" + +-#: cp/decl.c:1649 ++#: cp/decl.c:1663 + #, c-format + msgid "declaration of `%F' throws different exceptions" + msgstr "erklæring af '%F' kaster forskellige undtagelser" + +-#: cp/decl.c:1651 ++#: cp/decl.c:1665 + #, c-format + msgid "than previous declaration `%F'" + msgstr "end tidligere erklæring '%F'" +@@ -14106,501 +14097,519 @@ + #. that specialization that would cause an implicit + #. instantiation to take place, in every translation unit in + #. which such a use occurs. +-#: cp/decl.c:1798 ++#: cp/decl.c:1812 + msgid "explicit specialization of %D after first use" + msgstr "eksplicit specialisering af %D efter første brug" + +-#: cp/decl.c:1878 ++#: cp/decl.c:1892 + msgid "%J'%D': visibility attribute ignored because it" + msgstr "" + +-#: cp/decl.c:1880 ++#: cp/decl.c:1894 + #, fuzzy + msgid "%Jconflicts with previous declaration here" + msgstr "strider mod tidligere erklæring '%#D'" + +-#: cp/decl.c:1974 ++#: cp/decl.c:1988 + msgid "implicit declaration of function `%#D'" + msgstr "underforstået erklæring af funktionen '%#D'" + +-#: cp/decl.c:2137 ++#: cp/decl.c:2151 + #, c-format + msgid "label `%s' referenced outside of any function" + msgstr "der er blevet henvist til etiketten '%s' uden for en funktion" + +-#: cp/decl.c:2234 cp/decl.c:2258 cp/decl.c:2346 ++#: cp/decl.c:2248 cp/decl.c:2272 cp/decl.c:2360 + msgid "jump to label `%D'" + msgstr "spring til etiketten '%D' " + +-#: cp/decl.c:2236 cp/decl.c:2260 ++#: cp/decl.c:2250 cp/decl.c:2274 + msgid "jump to case label" + msgstr "spring til case-etiket" + +-#: cp/decl.c:2239 cp/decl.c:2263 ++#: cp/decl.c:2253 cp/decl.c:2277 + #, fuzzy + msgid "%H from here" + msgstr " herfra" + +-#: cp/decl.c:2244 ++#: cp/decl.c:2258 + msgid " crosses initialization of `%#D'" + msgstr " krydser klargøring af '%#D'" + +-#: cp/decl.c:2247 cp/decl.c:2362 ++#: cp/decl.c:2261 cp/decl.c:2376 + msgid " enters scope of non-POD `%#D'" + msgstr " går ind i virkefelt af ikke-POD '%#D'" + +-#: cp/decl.c:2267 cp/decl.c:2366 ++#: cp/decl.c:2281 cp/decl.c:2380 + msgid " enters try block" + msgstr " går ind i try-blok" + +-#: cp/decl.c:2269 cp/decl.c:2368 ++#: cp/decl.c:2283 cp/decl.c:2382 + msgid " enters catch block" + msgstr " går ind i catch-blok" + +-#: cp/decl.c:2347 ++#: cp/decl.c:2361 + msgid " from here" + msgstr " herfra" + + #. Can't skip init of __exception_info. +-#: cp/decl.c:2358 ++#: cp/decl.c:2372 + #, fuzzy + msgid "%J enters catch block" + msgstr " går ind i catch-blok" + +-#: cp/decl.c:2360 ++#: cp/decl.c:2374 + msgid " skips initialization of `%#D'" + msgstr " springer over klargøring af '%#D'" + +-#: cp/decl.c:2394 ++#: cp/decl.c:2408 + msgid "label named wchar_t" + msgstr "etiket med navnet wchar_t" + +-#: cp/decl.c:2397 ++#: cp/decl.c:2411 + msgid "duplicate label `%D'" + msgstr "etiketten '%D' optræder mere end én gang" + +-#: cp/decl.c:2625 cp/parser.c:3182 ++#: cp/decl.c:2639 cp/parser.c:3192 + msgid "`%D' used without template parameters" + msgstr "'%D' benyttet uden skabelonsparametre" + +-#: cp/decl.c:2635 cp/decl.c:2651 cp/decl.c:2739 ++#: cp/decl.c:2649 cp/decl.c:2665 cp/decl.c:2753 + msgid "no class template named `%#T' in `%#T'" + msgstr "ingen klasseskabelon ved navn '%#T' i '%#T'" + +-#: cp/decl.c:2672 cp/decl.c:2682 cp/decl.c:2702 ++#: cp/decl.c:2686 cp/decl.c:2696 cp/decl.c:2716 + msgid "no type named `%#T' in `%#T'" + msgstr "ingen type ved navn '%#T' i '%#T'" + +-#: cp/decl.c:3429 ++#: cp/decl.c:3443 + #, fuzzy + msgid "%Jan anonymous union cannot have function members" + msgstr "en anonym union kan ikke have funktionsmedlemmer" + +-#: cp/decl.c:3447 ++#: cp/decl.c:3461 + msgid "member %#D' with constructor not allowed in anonymous aggregate" + msgstr "medlemmet '%#D' med konstruktionsfunktion er ikke tilladt i anonym sammensat type" + +-#: cp/decl.c:3450 ++#: cp/decl.c:3464 + msgid "member %#D' with destructor not allowed in anonymous aggregate" + msgstr "medlemmet '%#D' med destruktionsfunktion er ikke tilladt i anonym sammensat type" + +-#: cp/decl.c:3453 ++#: cp/decl.c:3467 + msgid "member %#D' with copy assignment operator not allowed in anonymous aggregate" + msgstr "medlemmet '%#D' med kopitildelingsoperator er ikke tilladt i anonym sammensat type" + +-#: cp/decl.c:3493 ++#: cp/decl.c:3507 + msgid "redeclaration of C++ built-in type `%T'" + msgstr "omerklæring af indbygget type i C++ '%T'" + +-#: cp/decl.c:3531 ++#: cp/decl.c:3545 + msgid "multiple types in one declaration" + msgstr "flere typer i én erklæring" + +-#: cp/decl.c:3557 ++#: cp/decl.c:3571 + msgid "missing type-name in typedef-declaration" + msgstr "manglende typenavn i typedef-erklæring" + +-#: cp/decl.c:3565 ++#: cp/decl.c:3579 + msgid "ISO C++ prohibits anonymous structs" + msgstr "ISO C++ forbyder anonyme strukturer" + +-#: cp/decl.c:3572 ++#: cp/decl.c:3586 + msgid "`%D' can only be specified for functions" + msgstr "'%D' kan kun angives for funktioner" + +-#: cp/decl.c:3574 ++#: cp/decl.c:3588 + msgid "`%D' can only be specified inside a class" + msgstr "'%D' kan kun angives inden i en klasse" + +-#: cp/decl.c:3576 ++#: cp/decl.c:3590 + msgid "`%D' can only be specified for constructors" + msgstr "'%D' kan kun angives for konstruktionsfunktioner" + +-#: cp/decl.c:3579 ++#: cp/decl.c:3593 + msgid "`%D' can only be specified for objects and functions" + msgstr "'%D' kan kun angives for objekter og funktioner" + + # init dækker over værditildeling her - samme for de næste mange +-#: cp/decl.c:3721 cp/decl2.c:855 ++#: cp/decl.c:3735 cp/decl2.c:855 + msgid "typedef `%D' is initialized (use __typeof__ instead)" + msgstr "typedef '%D' bliver tildelt en værdi (benyt __typeof__ i stedet)" + +-#: cp/decl.c:3726 ++#: cp/decl.c:3740 + msgid "function `%#D' is initialized like a variable" + msgstr "funktionen '%#D' bliver tildelt en startværdi som en variabel" + +-#: cp/decl.c:3738 ++#: cp/decl.c:3752 + msgid "declaration of `%#D' has `extern' and is initialized" + msgstr "erklæringen af '%#D' indeholder 'extern' og variablen bliver tildelt en startværdi" + +-#: cp/decl.c:3771 ++#: cp/decl.c:3785 + msgid "`%#D' is not a static member of `%#T'" + msgstr "'%#D' er ikke et statisk medlem af '%#T'" + +-#: cp/decl.c:3777 ++#: cp/decl.c:3791 + msgid "ISO C++ does not permit `%T::%D' to be defined as `%T::%D'" + msgstr "ISO C++ tillader ikke '%T::%D' at blive defineret som '%T::%D'" + +-#: cp/decl.c:3788 ++#: cp/decl.c:3802 + msgid "duplicate initialization of %D" + msgstr "%D tildelt startværdi mere end én gang" + +-#: cp/decl.c:3819 ++#: cp/decl.c:3833 + msgid "declaration of `%#D' outside of class is not definition" + msgstr "erklæring af '%#D' uden for en klasse er ikke en definition" + +-#: cp/decl.c:3868 ++#: cp/decl.c:3882 + msgid "variable `%#D' has initializer but incomplete type" + msgstr "variablen '%#D' bliver tildelt en startværdi, men er af en ufuldstændig type" + +-#: cp/decl.c:3876 cp/decl.c:4445 ++#: cp/decl.c:3890 cp/decl.c:4500 + msgid "elements of array `%#D' have incomplete type" + msgstr "elementer i tabellen '%#D' er af en ufuldstændig type" + +-#: cp/decl.c:3892 ++#: cp/decl.c:3906 + msgid "aggregate `%#D' has incomplete type and cannot be defined" + msgstr "den sammensatte type '%#D' er af en ufuldstændig type og kan ikke defineres" + +-#: cp/decl.c:3942 ++#: cp/decl.c:3956 + msgid "`%D' declared as reference but not initialized" + msgstr "'%D' erklæret som en reference, men bliver ikke tildelt en startværdi" + +-#: cp/decl.c:3948 ++#: cp/decl.c:3962 + msgid "ISO C++ forbids use of initializer list to initialize reference `%D'" + msgstr "ISO C++ forbyder brug af en startværdiliste til at klargøre referencen '%D'" + +-#: cp/decl.c:3976 ++#: cp/decl.c:3990 + msgid "cannot initialize `%T' from `%T'" + msgstr "kan ikke klargøre '%T' fra %T'" + +-#: cp/decl.c:4008 ++#: cp/decl.c:4022 + msgid "initializer fails to determine size of `%D'" + msgstr "startværdien giver ikke størrelsen af '%D'" + +-#: cp/decl.c:4013 ++#: cp/decl.c:4027 + msgid "array size missing in `%D'" + msgstr "tabelstørrelsen mangler i '%D'" + +-#: cp/decl.c:4025 ++#: cp/decl.c:4039 + msgid "zero-size array `%D'" + msgstr "nulstørrelsestabel '%D'" + + #. An automatic variable with an incomplete type: that is an error. + #. Don't talk about array types here, since we took care of that + #. message in grokdeclarator. +-#: cp/decl.c:4062 ++#: cp/decl.c:4076 + msgid "storage size of `%D' isn't known" + msgstr "lagringsstørrelsen af '%D' er ikke kendt" + +-#: cp/decl.c:4084 ++#: cp/decl.c:4098 + msgid "storage size of `%D' isn't constant" + msgstr "lagringsstørrelsen af '%D' er ikke konstant" + +-#: cp/decl.c:4139 ++#: cp/decl.c:4153 + msgid "sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)" + msgstr "semantikken for indlejret funktionsstatisk data '%#D' er forkert (du ender med flere kopier)" + +-#: cp/decl.c:4140 ++#: cp/decl.c:4154 + #, fuzzy + msgid "%J you can work around this by removing the initializer" + msgstr " du kan arbejde dig rundt om dette ved at fjerne startværdien" + +-#: cp/decl.c:4166 ++#: cp/decl.c:4180 + msgid "uninitialized const `%D'" + msgstr "konstant '%D' uden startværdi" + +-#: cp/decl.c:4245 ++#: cp/decl.c:4240 ++msgid "name `%D' used in a GNU-style designated initializer for an array" ++msgstr "" ++ ++#: cp/decl.c:4251 ++#, c-format ++msgid "Designated initializer `%E' larger than array size" ++msgstr "" ++ ++#: cp/decl.c:4323 + msgid "brace-enclosed initializer used to initialize `%T'" + msgstr "startværdi i krøllede paranteser benyttet til at klargøre '%T'" + +-#: cp/decl.c:4309 ++#: cp/decl.c:4387 + msgid "initializer for `%T' must be brace-enclosed" + msgstr "startværdi for '%T' skal være indesluttet i krøllede paranteser" + +-#: cp/decl.c:4326 ++#: cp/decl.c:4404 + msgid "ISO C++ does not allow designated initializers" + msgstr "ISO C++ tillader ikke udpegede startværdier" + +-#: cp/decl.c:4330 ++#: cp/decl.c:4408 + msgid "`%T' has no non-static data member named `%D'" + msgstr "'%T' har intet ikke-statisk medlem ved navn '%D'" + +-#: cp/decl.c:4378 +-msgid "name `%D' used in a GNU-style designated initializer for an array" +-msgstr "" +- +-#: cp/decl.c:4401 ++#: cp/decl.c:4456 + msgid "too many initializers for `%T'" + msgstr "for mange startværdier for '%T'" + +-#: cp/decl.c:4439 ++#: cp/decl.c:4494 + msgid "variable-sized object `%D' may not be initialized" + msgstr "objektet '%D' af variabel størrelse må ikke tildeles en startværdi" + +-#: cp/decl.c:4450 ++#: cp/decl.c:4505 + msgid "`%D' has incomplete type" + msgstr "'%D' er af en ufuldstændig type" + +-#: cp/decl.c:4505 ++#: cp/decl.c:4560 + msgid "`%D' must be initialized by constructor, not by `{...}'" + msgstr "'%D' skal klargøres af en konstruktionsfunktion, ikke af '{...}'" + +-#: cp/decl.c:4549 ++#: cp/decl.c:4604 + msgid "structure `%D' with uninitialized const members" + msgstr "struktur '%D' med konstante medlemmer uden startværdi" + +-#: cp/decl.c:4551 ++#: cp/decl.c:4606 + msgid "structure `%D' with uninitialized reference members" + msgstr "struktur '%D' med referencemedlemmer uden startværdi" + +-#: cp/decl.c:4732 ++#: cp/decl.c:4788 + msgid "assignment (not initialization) in declaration" + msgstr "tildeling (ikke klargøring) i erklæring" + +-#: cp/decl.c:4749 ++#: cp/decl.c:4805 + msgid "cannot initialize `%D' to namespace `%D'" + msgstr "kan ikke tildele startværdi til '%D' med navnerummet '%D'" + +-#: cp/decl.c:4803 ++#: cp/decl.c:4859 + msgid "shadowing previous type declaration of `%#D'" + msgstr "skygger for tidligere typeerklæring af '%#D'" + +-#: cp/decl.c:4840 ++#: cp/decl.c:4896 + msgid "`%D' cannot be thread-local because it has non-POD type `%T'" + msgstr "'%D' kan ikke være trådlokal eftersom den er af en ikke-POD type '%T'" + +-#: cp/decl.c:4855 ++#: cp/decl.c:4911 + msgid "`%D' is thread-local and so cannot be dynamically initialized" + msgstr "'%D' er trådlokal og kan derfor ikke blive tildelt en startværdi dynamisk" + +-#: cp/decl.c:5337 ++#: cp/decl.c:5406 + msgid "invalid catch parameter" + msgstr "ugyldig catch-parameter" + +-#: cp/decl.c:5451 ++#: cp/decl.c:5520 + msgid "destructor for alien class `%T' cannot be a member" + msgstr "destruktionsfunktionen for den fremmede klasse '%T' kan ikke være et medlem" + +-#: cp/decl.c:5454 ++#: cp/decl.c:5523 + msgid "constructor for alien class `%T' cannot be a member" + msgstr "konstruktionsfunktionen for den fremmede klasse '%T' kan ikke være et medlem" + +-#: cp/decl.c:5476 ++#: cp/decl.c:5545 + msgid "`%D' declared as a `virtual' %s" + msgstr "'%D' erklæret som 'virtual' %s" + +-#: cp/decl.c:5478 ++#: cp/decl.c:5547 + msgid "`%D' declared as an `inline' %s" + msgstr "'%D' erklæret som 'inline' %s" + + # %s bliver omsat til typen +-#: cp/decl.c:5480 ++#: cp/decl.c:5549 + msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration" + msgstr "'const'- og 'volatile'-funktionsangivelser til '%D' er ugyldigt i erklæring af %s" + +-#: cp/decl.c:5483 ++#: cp/decl.c:5552 + msgid "`%D' declared as a friend" + msgstr "'%D' er erklæret som en ven" + +-#: cp/decl.c:5489 ++#: cp/decl.c:5558 + msgid "`%D' declared with an exception specification" + msgstr "'%D' erklæret med en undtagelsesspecifikation" + +-#: cp/decl.c:5571 ++#: cp/decl.c:5640 + msgid "cannot declare `::main' to be a template" + msgstr "kan ikke erklære '::main' som en skabelon" + +-#: cp/decl.c:5573 ++#: cp/decl.c:5642 + msgid "cannot declare `::main' to be inline" + msgstr "kan ikke erklære '::main' som indlejret" + +-#: cp/decl.c:5575 ++#: cp/decl.c:5644 + msgid "cannot declare `::main' to be static" + msgstr "kan ikke erklære '::main' som statisk" + +-#: cp/decl.c:5578 ++#: cp/decl.c:5647 + msgid "`main' must return `int'" + msgstr "'main' skal returnere typen 'int'" + +-#: cp/decl.c:5606 ++#: cp/decl.c:5675 + msgid "non-local function `%#D' uses anonymous type" + msgstr "ikke-lokal funktion '%#D' bruger anonym type" + +-#: cp/decl.c:5609 ++#: cp/decl.c:5678 + msgid "`%#D' does not refer to the unqualified type, so it is not used for linkage" + msgstr "'%#D' refererer ikke til den ikkemodificerede type, so den bruges ikke til sammenkædning" + +-#: cp/decl.c:5615 ++#: cp/decl.c:5684 + msgid "non-local function `%#D' uses local type `%T'" + msgstr "ikke-lokal funktion '%#D' bruger lokal type '%T'" + +-#: cp/decl.c:5639 ++#: cp/decl.c:5708 + msgid "%smember function `%D' cannot have `%T' method qualifier" + msgstr "%smedlemsfunktion '%D' kan ikke have metodemodifikationen '%T'" + +-#: cp/decl.c:5663 ++#: cp/decl.c:5732 + msgid "defining explicit specialization `%D' in friend declaration" + msgstr "definering af eksplicit specialisering '%D' i friend-erklæring" + + #. Something like `template friend void f()'. +-#: cp/decl.c:5673 ++#: cp/decl.c:5742 + msgid "invalid use of template-id `%D' in declaration of primary template" + msgstr "ugyldig brug af skabelons-id '%D' i erklæring af primær skabelon" + +-#: cp/decl.c:5700 ++#: cp/decl.c:5769 + msgid "default arguments are not allowed in declaration of friend template specialization `%D'" + msgstr "standardparametre er ikke tilladt i erklæring af venneskabelonsspecialisering '%D'" + +-#: cp/decl.c:5707 ++#: cp/decl.c:5776 + msgid "`inline' is not allowed in declaration of friend template specialization `%D'" + msgstr "'inline' er ikke tilladt i erklæring venneskabelonsspecialisering '%D'" + +-#: cp/decl.c:5765 ++#: cp/decl.c:5834 + msgid "definition of implicitly-declared `%D'" + msgstr "definition af underforstået-erklæret '%D'" + +-#: cp/decl.c:5785 cp/decl2.c:738 ++#: cp/decl.c:5854 cp/decl2.c:738 + msgid "no `%#D' member function declared in class `%T'" + msgstr "ingen medlemsfunktion '%#D' erklæret i klassen '%T'" + +-#: cp/decl.c:5919 ++#: cp/decl.c:5988 + msgid "non-local variable `%#D' uses local type `%T'" + msgstr "ikke-lokal variabel '%#D' bruger lokal type '%T'" + +-#: cp/decl.c:6034 ++#: cp/decl.c:6103 + msgid "invalid in-class initialization of static data member of non-integral type `%T'" + msgstr "ugyldig tildeling af startværdi i klasse til statisk datamedlem af en ikke-heltalstype '%T'" + +-#: cp/decl.c:6043 ++#: cp/decl.c:6112 + msgid "ISO C++ forbids in-class initialization of non-const static member `%D'" + msgstr "ISO C++ forbyder tildeling af startværdi i klasse til ikke-konstant statisk medlem '%D'" + +-#: cp/decl.c:6046 ++#: cp/decl.c:6115 + msgid "ISO C++ forbids initialization of member constant `%D' of non-integral type `%T'" + msgstr "ISO C++ forbyder tildeling af startværdi til medlemskonstant '%D' af en ikke-heltallig type" + +-#: cp/decl.c:6065 ++#: cp/decl.c:6134 + #, fuzzy + msgid "size of array `%D' has non-integral type `%T'" + msgstr "størrelsen af tabellen '%D' er ikke af en heltalstype" + +-#: cp/decl.c:6067 ++#: cp/decl.c:6136 + #, fuzzy + msgid "size of array has non-integral type `%T'" + msgstr "størrelsen af tabel er ikke af en heltalstype" + +-#: cp/decl.c:6103 ++#: cp/decl.c:6172 + msgid "size of array `%D' is negative" + msgstr "størrelsen af tabellen '%D' er negativ" + +-#: cp/decl.c:6105 ++#: cp/decl.c:6174 + msgid "size of array is negative" + msgstr "størrelsen af tabel er negativ" + +-#: cp/decl.c:6113 ++#: cp/decl.c:6182 + msgid "ISO C++ forbids zero-size array `%D'" + msgstr "ISO C++ forbyder tabellen '%D' med størrelsen nul" + +-#: cp/decl.c:6115 ++#: cp/decl.c:6184 + msgid "ISO C++ forbids zero-size array" + msgstr "ISO C++ forbyder tabel med størrelsen nul" + +-#: cp/decl.c:6122 ++#: cp/decl.c:6191 + msgid "size of array `%D' is not an integral constant-expression" + msgstr "størrelsen af tabellen '%D' er ikke af et heltalligt konstantudtryk" + +-#: cp/decl.c:6125 ++#: cp/decl.c:6194 + msgid "size of array is not an integral constant-expression" + msgstr "størrelsen af tabel er ikke af et heltalligt konstantudtryk" + +-#: cp/decl.c:6130 ++#: cp/decl.c:6199 + msgid "ISO C++ forbids variable-size array `%D'" + msgstr "ISO C++ forbyder tabellen '%D' med variabel størrelse" + +-#: cp/decl.c:6132 ++#: cp/decl.c:6201 + msgid "ISO C++ forbids variable-size array" + msgstr "ISO C++ forbyder tabel med variabel størrelse" + +-#: cp/decl.c:6154 ++#: cp/decl.c:6223 + msgid "overflow in array dimension" + msgstr "tabeldimension for stor" + +-#: cp/decl.c:6248 ++#: cp/decl.c:6317 + msgid "declaration of `%D' as %s" + msgstr "erklæring af '%D' som %s" + +-#: cp/decl.c:6250 ++#: cp/decl.c:6319 + #, c-format + msgid "creating %s" + msgstr "opretter %s" + +-#: cp/decl.c:6262 ++#: cp/decl.c:6331 + msgid "declaration of `%D' as multidimensional array must have bounds for all dimensions except the first" + msgstr "erklæring af '%D' som flerdimensional tabel skal have grænser for alle dimensioner pånær den første" + +-#: cp/decl.c:6265 ++#: cp/decl.c:6334 + msgid "multidimensional array must have bounds for all dimensions except the first" + msgstr "flerdimensional tabel skal have grænser for alle dimensioner pånær den første" + +-#: cp/decl.c:6293 ++#: cp/decl.c:6362 + msgid "return type specification for constructor invalid" + msgstr "angivelse af returneringstypen til konstruktionsfunktion er ugyldigt" + +-#: cp/decl.c:6300 ++#: cp/decl.c:6369 + msgid "return type specification for destructor invalid" + msgstr "angivelse af returneringstypen til destruktionsfunktion er ugyldigt" + +-#: cp/decl.c:6306 ++#: cp/decl.c:6375 + msgid "operator `%T' declared to return `%T'" + msgstr "operator '%T' erklæret til at returnere '%T'" + +-#: cp/decl.c:6308 ++#: cp/decl.c:6377 + msgid "return type specified for `operator %T'" + msgstr "returtype angivet for 'operator %T'" + +-#: cp/decl.c:6452 ++#: cp/decl.c:6400 ++msgid "unnamed variable or field declared void" ++msgstr "unavngiven variabel eller felt erklæret void" ++ ++#: cp/decl.c:6405 ++#, fuzzy, c-format ++msgid "variable or field `%E' declared void" ++msgstr "variabel eller felt '%s' erklæret void" ++ ++#: cp/decl.c:6408 ++msgid "variable or field declared void" ++msgstr "variabel eller felt erklæret void" ++ ++#: cp/decl.c:6547 + msgid "destructors must be member functions" + msgstr "destruktionsfunktioner skal være medlemmer" + +-#: cp/decl.c:6471 ++#: cp/decl.c:6566 + msgid "destructor `%T' must match class name `%T'" + msgstr "destruktionsfunktion '%T' skal passe til klassenavnet '%T'" + +-#: cp/decl.c:6534 ++#: cp/decl.c:6629 + msgid "declarator-id missing; using reserved word `%D'" + msgstr "erklærer-id mangler; bruger reserveret ord '%D'" + +-#: cp/decl.c:6588 ++#: cp/decl.c:6683 + msgid "type `%T' is not derived from type `%T'" + msgstr "typen '%T' er ikke nedarvet fra typen '%T'" + + #. Parse error puts this typespec where + #. a declarator should go. +-#: cp/decl.c:6651 ++#: cp/decl.c:6746 + msgid "`%T' specified as declarator-id" + msgstr "'%T' angivet som erklærer-id" + +-#: cp/decl.c:6653 ++#: cp/decl.c:6748 + msgid " perhaps you want `%T' for a constructor" + msgstr " måske ønsker du '%T' for en konstruktionsfunktion" + +@@ -14608,302 +14617,294 @@ + #. decl-specifier like in + #. std::allocator alloc; + #. Handle that gracefully. +-#: cp/decl.c:6675 ++#: cp/decl.c:6770 + #, c-format + msgid "invalid use of template-name '%E' in a declarator" + msgstr "ugyldig brug af skabelonsnavn '%E' i erklæring" + +-#: cp/decl.c:6695 ++#: cp/decl.c:6790 cp/decl.c:8124 + msgid "declaration of `%D' as non-function" + msgstr "erklæring af '%D' som ikke-funktion" + +-#: cp/decl.c:6772 ++#: cp/decl.c:6867 + msgid "`bool' is now a keyword" + msgstr "'bool' er et reserveret ord" + +-#: cp/decl.c:6774 ++#: cp/decl.c:6869 + msgid "extraneous `%T' ignored" + msgstr "overflødig '%T' ignoreret" + +-#: cp/decl.c:6790 cp/decl.c:6834 ++#: cp/decl.c:6885 cp/decl.c:6929 + msgid "multiple declarations `%T' and `%T'" + msgstr "flere erklæringer '%T' og '%T'" + +-#: cp/decl.c:6803 ++#: cp/decl.c:6898 + msgid "ISO C++ does not support `long long'" + msgstr "ISO C++ understøtter ikke 'long long'" + +-#: cp/decl.c:6907 cp/decl.c:6910 ++#: cp/decl.c:7002 cp/decl.c:7005 + #, c-format + msgid "ISO C++ forbids declaration of `%s' with no type" + msgstr "ISO C++ forbyder erklæring af '%s' uden en type" + +-#: cp/decl.c:6941 ++#: cp/decl.c:7036 + #, c-format + msgid "short, signed or unsigned invalid for `%s'" + msgstr "short, signed eller unsigned er ugyldig for '%s'" + +-#: cp/decl.c:6946 ++#: cp/decl.c:7041 + #, c-format + msgid "long and short specified together for `%s'" + msgstr "long og short er begge angivet for '%s'" + +-#: cp/decl.c:6957 ++#: cp/decl.c:7052 + #, c-format + msgid "signed and unsigned given together for `%s'" + msgstr "signed og unsigned er begge angivet for '%s'" + +-#: cp/decl.c:7066 ++#: cp/decl.c:7161 + msgid "qualifiers are not allowed on declaration of `operator %T'" + msgstr "modifikationer er ikke tilladt i erklæring af 'operator %T'" + +-#: cp/decl.c:7088 ++#: cp/decl.c:7183 + msgid "member `%D' cannot be declared both virtual and static" + msgstr "medlemmet '%D' kan ikke afklæres både virtual og static" + +-#: cp/decl.c:7097 ++#: cp/decl.c:7192 + msgid "`%T::%D' is not a valid declarator" + msgstr "'%T::%D' er ikke en gyldig erklærer" + +-#: cp/decl.c:7109 ++#: cp/decl.c:7204 + msgid "storage class specifiers invalid in parameter declarations" + msgstr "lagringsklasseanvisninger er ugyldige i parametererklæringer" + +-#: cp/decl.c:7113 ++#: cp/decl.c:7208 + msgid "typedef declaration invalid in parameter declaration" + msgstr "typedef-erklæringer er ugyldig i parametererklæringer" + +-#: cp/decl.c:7126 ++#: cp/decl.c:7221 + msgid "virtual outside class declaration" + msgstr "virtual angivet uden for klasseerklæring" + +-#: cp/decl.c:7185 ++#: cp/decl.c:7280 + #, c-format + msgid "storage class specified for %s `%s'" + msgstr "lagringsklasse angivet for %s '%s'" + +-#: cp/decl.c:7220 ++#: cp/decl.c:7315 + #, c-format + msgid "top-level declaration of `%s' specifies `auto'" + msgstr "erklæring af '%s' på øverste niveau angiver 'auto'" + +-#: cp/decl.c:7232 ++#: cp/decl.c:7327 + msgid "storage class specifiers invalid in friend function declarations" + msgstr "lagringsklasseanvisninger er ugyldige i vennefunktionserklæringer" + +-#: cp/decl.c:7397 ++#: cp/decl.c:7492 + msgid "destructor cannot be static member function" + msgstr "destruktionsfunktionen kan ikke være en statisk medlemsfunktion" + +-#: cp/decl.c:7400 ++#: cp/decl.c:7495 + #, c-format + msgid "destructors may not be `%s'" + msgstr "destruktionsfunktioner må ikke være '%s'" + +-#: cp/decl.c:7421 ++#: cp/decl.c:7516 + msgid "constructor cannot be static member function" + msgstr "konstruktionsfunktionen kan ikke være en statisk medlemsfunktion" + +-#: cp/decl.c:7424 ++#: cp/decl.c:7519 + msgid "constructors cannot be declared virtual" + msgstr "konstruktionsfunktioner kan ikke erklæres virtual" + +-#: cp/decl.c:7429 ++#: cp/decl.c:7524 + #, c-format + msgid "constructors may not be `%s'" + msgstr "konstruktionsfunktioner må ikke være '%s'" + +-#: cp/decl.c:7439 ++#: cp/decl.c:7534 + msgid "return value type specifier for constructor ignored" + msgstr "angivelse af typen af returværdien til konstruktionsfunktionen ignoreret" + +-#: cp/decl.c:7458 ++#: cp/decl.c:7553 + #, c-format + msgid "can't initialize friend function `%s'" + msgstr "kan ikke tildele en startværdi til vennefunktionen '%s'" + + #. Cannot be both friend and virtual. +-#: cp/decl.c:7462 ++#: cp/decl.c:7557 + msgid "virtual functions cannot be friends" + msgstr "en virtuel funktion kan ikke erklæres som friend" + +-#: cp/decl.c:7467 ++#: cp/decl.c:7562 + msgid "friend declaration not in class definition" + msgstr "friend-erklæringen er ikke i klassedefinitionen" + +-#: cp/decl.c:7469 ++#: cp/decl.c:7564 + #, c-format + msgid "can't define friend function `%s' in a local class definition" + msgstr "kan ikke definere vennefunktion '%s' i en lokal klassedefinition" + +-#: cp/decl.c:7490 ++#: cp/decl.c:7585 + msgid "destructors may not have parameters" + msgstr "destruktionsfunktioner må ikke have parametre" + +-#: cp/decl.c:7510 cp/decl.c:7517 ++#: cp/decl.c:7605 cp/decl.c:7612 + msgid "cannot declare reference to `%#T'" + msgstr "kan ikke erklære reference til '%#T'" + +-#: cp/decl.c:7511 ++#: cp/decl.c:7606 + msgid "cannot declare pointer to `%#T'" + msgstr "kan ikke erklære henvisning til '%#T'" + +-#: cp/decl.c:7516 ++#: cp/decl.c:7611 + msgid "cannot declare pointer to `%#T' member" + msgstr "kan ikke erklære henvisning til medlemmet '%#T'" + +-#: cp/decl.c:7655 ++#: cp/decl.c:7750 + msgid "extra qualification `%T::' on member `%s' ignored" + msgstr "ekstra modifikation '%T::' af medlemmet '%s' ignoreret" + +-#: cp/decl.c:7671 ++#: cp/decl.c:7766 + msgid "cannot declare member function `%T::%s' within `%T'" + msgstr "kan ikke erklære medlemsfunktion '%T::%s' inde i '%T'" + +-#: cp/decl.c:7686 ++#: cp/decl.c:7781 + msgid "cannot declare member `%T::%s' within `%T'" + msgstr "kan ikke erklære medlem '%T::%s' inde i '%T'" + +-#: cp/decl.c:7766 ++#: cp/decl.c:7861 + msgid "data member may not have variably modified type `%T'" + msgstr "datamedlem må ikke have variabelt ændret type '%T'" + +-#: cp/decl.c:7768 ++#: cp/decl.c:7863 + msgid "parameter may not have variably modified type `%T'" + msgstr "parameter må ikke have variabelt ændret type '%T'" + + #. [dcl.fct.spec] The explicit specifier shall only be used in + #. declarations of constructors within a class definition. +-#: cp/decl.c:7776 ++#: cp/decl.c:7871 + msgid "only declarations of constructors can be `explicit'" + msgstr "kun erklæringer af konstruktionsfunktioner kan være 'explicit'" + +-#: cp/decl.c:7784 ++#: cp/decl.c:7879 + #, c-format + msgid "non-member `%s' cannot be declared `mutable'" + msgstr "'%s' som ikke er medlem, kan ikke erklæres 'mutable'" + +-#: cp/decl.c:7789 ++#: cp/decl.c:7884 + #, c-format + msgid "non-object member `%s' cannot be declared `mutable'" + msgstr "'%s' som ikke er objektmedlem, kan ikke erklæres 'mutable'" + +-#: cp/decl.c:7795 ++#: cp/decl.c:7890 + #, c-format + msgid "function `%s' cannot be declared `mutable'" + msgstr "funktionen '%s' kan ikke erklæres 'mutable'" + +-#: cp/decl.c:7800 ++#: cp/decl.c:7895 + #, c-format + msgid "static `%s' cannot be declared `mutable'" + msgstr "static '%s' kan ikke erklæres 'mutable'" + +-#: cp/decl.c:7805 ++#: cp/decl.c:7900 + #, c-format + msgid "const `%s' cannot be declared `mutable'" + msgstr "const '%s' kan ikke erklæres 'mutable'" + +-#: cp/decl.c:7818 ++#: cp/decl.c:7913 + msgid "template-id `%D' used as a declarator" + msgstr "skabelons-id '%D' benyttet som erklærer" + +-#: cp/decl.c:7839 ++#: cp/decl.c:7934 + msgid "ISO C++ forbids nested type `%D' with same name as enclosing class" + msgstr "ISO C++ forbyder indlejret type '%D' med samme navn som den omgivende klasse" + +-#: cp/decl.c:7847 ++#: cp/decl.c:7942 + #, fuzzy + msgid "%Jtypedef name may not be a nested-name-specifier" + msgstr "typedef-navn kan ikke klassemodificeres" + +-#: cp/decl.c:7893 ++#: cp/decl.c:7988 + #, fuzzy + msgid "%Jinvalid type qualifier for non-member function type" + msgstr "ugyldig typemodifikation for ikke-medlemsfunktionstype" + +-#: cp/decl.c:7956 ++#: cp/decl.c:8051 + msgid "type qualifiers specified for friend class declaration" + msgstr "typemodifikationer angivet for friend class-erklæring" + +-#: cp/decl.c:7961 ++#: cp/decl.c:8056 + msgid "`inline' specified for friend class declaration" + msgstr "'inline' angivet for friend class-erklæring" + +-#: cp/decl.c:7969 ++#: cp/decl.c:8064 + msgid "template parameters cannot be friends" + msgstr "skabelonsparametre kan ikke være venner" + +-#: cp/decl.c:7971 ++#: cp/decl.c:8066 + msgid "friend declaration requires class-key, i.e. `friend class %T::%D'" + msgstr "friend-erklæring kræver klasseangivelse, dvs. 'friend class %T::%D'" + +-#: cp/decl.c:7975 ++#: cp/decl.c:8070 + msgid "friend declaration requires class-key, i.e. `friend %#T'" + msgstr "friend-erklæring kræver klasseangivelse, dvs. 'friend %#T'" + +-#: cp/decl.c:7988 ++#: cp/decl.c:8083 + msgid "trying to make class `%T' a friend of global scope" + msgstr "forsøg på at gøre klassen '%T' til ven af det globale virkningsfelt" + +-#: cp/decl.c:7999 ++#: cp/decl.c:8094 + msgid "invalid qualifiers on non-member function type" + msgstr "ugyldige modifikationer for ikke-medlemsfunktionstype" + +-#: cp/decl.c:8018 ++#: cp/decl.c:8113 + msgid "abstract declarator `%T' used as declaration" + msgstr "abstrakt erklærer '%T' benyttet som erklæring" + +-#: cp/decl.c:8030 +-msgid "unnamed variable or field declared void" +-msgstr "unavngiven variabel eller felt erklæret void" +- +-#: cp/decl.c:8039 +-msgid "variable or field declared void" +-msgstr "variabel eller felt erklæret void" +- +-#: cp/decl.c:8049 ++#: cp/decl.c:8139 + msgid "cannot use `::' in parameter declaration" + msgstr "kan ikke bruge '::' i parametererklæring" + + #. Something like struct S { int N::j; }; +-#: cp/decl.c:8094 ++#: cp/decl.c:8184 + msgid "invalid use of `::'" + msgstr "ugyldig brug af '::'" + +-#: cp/decl.c:8106 ++#: cp/decl.c:8196 + msgid "function `%D' cannot be declared friend" + msgstr "funktionen '%D' kan ikke erklæres friend" + +-#: cp/decl.c:8118 ++#: cp/decl.c:8208 + msgid "can't make `%D' into a method -- not in a class" + msgstr "kan ikke gøre '%D' til en metode - er ikke i en klasse" + +-#: cp/decl.c:8127 ++#: cp/decl.c:8217 + msgid "function `%D' declared virtual inside a union" + msgstr "funktionen '%D' erklæret virtual inden i en union" + +-#: cp/decl.c:8136 ++#: cp/decl.c:8226 + msgid "`%D' cannot be declared virtual, since it is always static" + msgstr "'%D' kan ikke erklæres virtual eftersom den altid er statisk" + +-#: cp/decl.c:8215 ++#: cp/decl.c:8305 + msgid "field `%D' has incomplete type" + msgstr "feltet '%D' er af en ufuldstændig type" + +-#: cp/decl.c:8217 ++#: cp/decl.c:8307 + msgid "name `%T' has incomplete type" + msgstr "navnet '%T' er af en ufuldstændig type" + +-#: cp/decl.c:8226 ++#: cp/decl.c:8316 + msgid " in instantiation of template `%T'" + msgstr " i instantiering af skabelonen '%T'" + +-#: cp/decl.c:8236 ++#: cp/decl.c:8326 + #, c-format + msgid "`%s' is neither function nor member function; cannot be declared friend" + msgstr "'%s' er hverken en almindelig funktion eller en medlemsfunktion; kan ikke erklæres som friend" + +-#: cp/decl.c:8247 ++#: cp/decl.c:8337 + msgid "member functions are implicitly friends of their class" + msgstr "medlemsfunktioner er underforstået venner af deres klasse" + +@@ -14919,91 +14920,91 @@ + #. the rest of the compiler does not correctly + #. handle the initialization unless the member is + #. static so we make it static below. +-#: cp/decl.c:8287 ++#: cp/decl.c:8377 + msgid "ISO C++ forbids initialization of member `%D'" + msgstr "ISO C++ forbyder tildeling af startværdi til medlemmet '%D'" + +-#: cp/decl.c:8289 ++#: cp/decl.c:8379 + msgid "making `%D' static" + msgstr "gør '%D' statisk" + +-#: cp/decl.c:8345 ++#: cp/decl.c:8435 + #, c-format + msgid "storage class `auto' invalid for function `%s'" + msgstr "lagringsklassen 'auto' er ugyldig for funktionen '%s'" + +-#: cp/decl.c:8347 ++#: cp/decl.c:8437 + #, c-format + msgid "storage class `register' invalid for function `%s'" + msgstr "lagringsklassen 'register' er ugyldig for funktionen '%s'" + +-#: cp/decl.c:8349 ++#: cp/decl.c:8439 + #, c-format + msgid "storage class `__thread' invalid for function `%s'" + msgstr "lagringsklassen '__thread' er ugyldig for funktionen '%s'" + +-#: cp/decl.c:8360 ++#: cp/decl.c:8450 + #, c-format + msgid "storage class `static' invalid for function `%s' declared out of global scope" + msgstr "lagringsklassen 'static' er ugyldig for funktionen '%s' erklæret uden for det globale virkefelt" + +-#: cp/decl.c:8362 ++#: cp/decl.c:8452 + #, c-format + msgid "storage class `inline' invalid for function `%s' declared out of global scope" + msgstr "lagringsklassen 'inline' er ugyldig for funktionen '%s' erklæret uden for det globale virkefelt" + +-#: cp/decl.c:8369 ++#: cp/decl.c:8459 + #, c-format + msgid "virtual non-class function `%s'" + msgstr "virtuel funktion '%s' tilhører ikke en klasse" + +-#: cp/decl.c:8400 ++#: cp/decl.c:8490 + msgid "cannot declare member function `%D' to have static linkage" + msgstr "kan ikke erklære medlemsfunktion '%D' til at have statisk kædning" + + #. FIXME need arm citation +-#: cp/decl.c:8406 ++#: cp/decl.c:8496 + msgid "cannot declare static function inside another function" + msgstr "kan ikke erklære en funktion for static inden i en anden funktion" + +-#: cp/decl.c:8434 ++#: cp/decl.c:8524 + msgid "`static' may not be used when defining (as opposed to declaring) a static data member" + msgstr "'static' må ikke bruges ved definering (i modsætning til erklæring) af et statisk datamedlem" + +-#: cp/decl.c:8440 ++#: cp/decl.c:8530 + msgid "static member `%D' declared `register'" + msgstr "statisk medlem '%D' erklæret 'register'" + +-#: cp/decl.c:8445 ++#: cp/decl.c:8535 + msgid "cannot explicitly declare member `%#D' to have extern linkage" + msgstr "kan ikke eksplicit erklære medlemmet '%#D' til at have extern-kædning" + +-#: cp/decl.c:8585 ++#: cp/decl.c:8675 + msgid "default argument for `%#D' has type `%T'" + msgstr "standardparameter for '%#D' har typen '%T'" + +-#: cp/decl.c:8588 ++#: cp/decl.c:8678 + msgid "default argument for parameter of type `%T' has type `%T'" + msgstr "standardparameter for parameter af typen '%T' har typen '%T'" + +-#: cp/decl.c:8605 ++#: cp/decl.c:8695 + msgid "default argument `%E' uses local variable `%D'" + msgstr "standardparameter '%E' bruger lokal variabel '%D'" + +-#: cp/decl.c:8649 ++#: cp/decl.c:8739 + #, c-format + msgid "invalid string constant `%E'" + msgstr "ugyldig strengkonstant '%E'" + +-#: cp/decl.c:8651 ++#: cp/decl.c:8741 + msgid "invalid integer constant in parameter list, did you forget to give parameter name?" + msgstr "ugyldig heltalskonstant i parameterlisten, måske mangler parameternavnet?" + +-#: cp/decl.c:8689 ++#: cp/decl.c:8779 + msgid "parameter `%D' invalidly declared method type" + msgstr "parameteren '%D' er på ugyldig vis erklæret som af en medlemsfunktionstype" + +-#: cp/decl.c:8713 ++#: cp/decl.c:8803 + msgid "parameter `%D' includes %s to array of unknown bound `%T'" + msgstr "parameteren '%D' inkluderer %s til tabel med ukendt grænse '%T'" + +@@ -15022,94 +15023,94 @@ + #. or implicitly defined), there's no need to worry about their + #. existence. Theoretically, they should never even be + #. instantiated, but that's hard to forestall. +-#: cp/decl.c:8872 ++#: cp/decl.c:8962 + msgid "invalid constructor; you probably meant `%T (const %T&)'" + msgstr "ugyldig konstruktionsfunktion; du mente sandsynligvis '%T (const %T&)'" + +-#: cp/decl.c:9000 ++#: cp/decl.c:9090 + msgid "`%D' must be a nonstatic member function" + msgstr "'%D' skal være en ikke-statisk medlemsfunktion" + +-#: cp/decl.c:9006 ++#: cp/decl.c:9096 + msgid "`%D' must be either a non-static member function or a non-member function" + msgstr "'%D' skal enten være en ikke-statisk medlemsfunktion eller ikke en medlemsfunktion" + +-#: cp/decl.c:9023 ++#: cp/decl.c:9113 + msgid "`%D' must have an argument of class or enumerated type" + msgstr "'%D' skal have en parameter af en klasse- eller enum-type" + +-#: cp/decl.c:9058 ++#: cp/decl.c:9148 + #, c-format + msgid "conversion to %s%s will never use a type conversion operator" + msgstr "konvertering til %s%s vil aldrig bruge en typekonverteringsoperator" + + #. 13.4.0.3 +-#: cp/decl.c:9065 ++#: cp/decl.c:9155 + msgid "ISO C++ prohibits overloading operator ?:" + msgstr "ISO C++ forbyder flertydiggørelse af operatoren ?:" + +-#: cp/decl.c:9115 ++#: cp/decl.c:9205 + msgid "postfix `%D' must take `int' as its argument" + msgstr "postfiks '%D' skal tage mod 'int' som parameter" + +-#: cp/decl.c:9119 ++#: cp/decl.c:9209 + msgid "postfix `%D' must take `int' as its second argument" + msgstr "postfiks '%D' skal tage mod 'int' som den anden parameter" + +-#: cp/decl.c:9126 ++#: cp/decl.c:9216 + msgid "`%D' must take either zero or one argument" + msgstr "'%D' skal tage mod nul eller én parameter" + +-#: cp/decl.c:9128 ++#: cp/decl.c:9218 + msgid "`%D' must take either one or two arguments" + msgstr "'%D' skal tage mod én eller to parametre" + +-#: cp/decl.c:9149 ++#: cp/decl.c:9239 + msgid "prefix `%D' should return `%T'" + msgstr "præfiks '%D' skal returnere '%T'" + +-#: cp/decl.c:9155 ++#: cp/decl.c:9245 + msgid "postfix `%D' should return `%T'" + msgstr "postfiks '%D' skal returnere '%T'" + +-#: cp/decl.c:9164 ++#: cp/decl.c:9254 + msgid "`%D' must take `void'" + msgstr "'%D' skal tage mod 'void'" + +-#: cp/decl.c:9166 cp/decl.c:9174 ++#: cp/decl.c:9256 cp/decl.c:9264 + msgid "`%D' must take exactly one argument" + msgstr "'%s' skal tage mod én parameter" + +-#: cp/decl.c:9176 ++#: cp/decl.c:9266 + msgid "`%D' must take exactly two arguments" + msgstr "'%s' skal tage mod to parametre" + +-#: cp/decl.c:9184 ++#: cp/decl.c:9274 + msgid "user-defined `%D' always evaluates both arguments" + msgstr "brugerdefineret '%D' evaluerer altid begge parametre" + +-#: cp/decl.c:9198 ++#: cp/decl.c:9288 + msgid "`%D' should return by value" + msgstr "'%D' skal returnere pr. værdi (ikke reference)" + +-#: cp/decl.c:9210 cp/decl.c:9213 ++#: cp/decl.c:9300 cp/decl.c:9303 + msgid "`%D' cannot have default arguments" + msgstr "'%D' kan ikke have standardparametre" + +-#: cp/decl.c:9273 ++#: cp/decl.c:9363 + msgid "using typedef-name `%D' after `%s'" + msgstr "bruger typedef-navn '%D' efter '%s'" + +-#: cp/decl.c:9279 ++#: cp/decl.c:9369 + msgid "using template type parameter `%T' after `%s'" + msgstr "bruger skabelonstypeparameter '%D' efter '%s'" + +-#: cp/decl.c:9287 ++#: cp/decl.c:9377 + #, fuzzy + msgid "`%T' referred to as `%s'" + msgstr "'%#D' omerklæret som %C" + +-#: cp/decl.c:9293 ++#: cp/decl.c:9383 + #, fuzzy + msgid "`%T' referred to as enum" + msgstr "'%#D' omerklæret som %C" +@@ -15121,50 +15122,50 @@ + #. void f(class C); // No template header here + #. + #. then the required template argument is missing. +-#: cp/decl.c:9308 ++#: cp/decl.c:9398 + #, fuzzy + msgid "template argument required for `%s %T'" + msgstr "skabelonsparameter er påkrævet for '%T'" + +-#: cp/decl.c:9453 ++#: cp/decl.c:9543 + msgid "use of enum `%#D' without previous declaration" + msgstr "brug af enum '%#D' uden tidligere erklæring" + +-#: cp/decl.c:9471 ++#: cp/decl.c:9561 + #, fuzzy + msgid "redeclaration of `%T' as a non-template" + msgstr "erklæring af '%D' som ikke-funktion" + +-#: cp/decl.c:9517 ++#: cp/decl.c:9607 + msgid "derived union `%T' invalid" + msgstr "nedarvet union '%T' ugyldig" + +-#: cp/decl.c:9570 ++#: cp/decl.c:9660 + msgid "base type `%T' fails to be a struct or class type" + msgstr "stamklassetype '%T' er hverken en struct- eller class-type" + +-#: cp/decl.c:9578 ++#: cp/decl.c:9668 + msgid "recursive type `%T' undefined" + msgstr "rekursiv type '%T' ikke defineret" + +-#: cp/decl.c:9580 ++#: cp/decl.c:9670 + msgid "duplicate base type `%T' invalid" + msgstr "stamklassetype '%T' optræder mere end én gang" + +-#: cp/decl.c:9658 ++#: cp/decl.c:9748 + msgid "Java class '%T' cannot have multiple bases" + msgstr "" + +-#: cp/decl.c:9660 ++#: cp/decl.c:9750 + #, fuzzy + msgid "Java class '%T' cannot have virtual bases" + msgstr "stamklassen '%#T' har en ikke-virtuel destruktionsfunktion" + +-#: cp/decl.c:9700 ++#: cp/decl.c:9790 + msgid "multiple definition of `%#T'" + msgstr "flere definitioner af '%#T'" + +-#: cp/decl.c:9701 ++#: cp/decl.c:9791 + #, fuzzy + msgid "%Jprevious definition here" + msgstr "tidligere definition her" +@@ -15173,48 +15174,48 @@ + #. + #. IF no integral type can represent all the enumerator values, the + #. enumeration is ill-formed. +-#: cp/decl.c:9836 ++#: cp/decl.c:9926 + msgid "no integral type can represent all of the enumerator values for `%T'" + msgstr "" + +-#: cp/decl.c:9926 ++#: cp/decl.c:10023 + msgid "enumerator value for `%D' not integer constant" + msgstr "enum-værdi for '%D' er ikke en heltalskonstant" + +-#: cp/decl.c:9946 ++#: cp/decl.c:10043 + msgid "overflow in enumeration values at `%D'" + msgstr "enum-værdier for store ved '%D'" + +-#: cp/decl.c:10015 ++#: cp/decl.c:10112 + msgid "return type `%#T' is incomplete" + msgstr "returtype '%#T' er ufuldstændig" + +-#: cp/decl.c:10133 ++#: cp/decl.c:10230 + msgid "return type for `main' changed to `int'" + msgstr "returtype for 'main' ændret til 'int'" + +-#: cp/decl.c:10162 ++#: cp/decl.c:10259 + msgid "`%D' implicitly declared before its definition" + msgstr "'%s' er underforstået erklæret efter dens definition" + +-#: cp/decl.c:10184 cp/typeck.c:6071 ++#: cp/decl.c:10281 cp/typeck.c:6092 + msgid "`operator=' should return a reference to `*this'" + msgstr "'operator=' bør returnere en reference til '*this'" + +-#: cp/decl.c:10453 ++#: cp/decl.c:10550 + msgid "parameter `%D' declared void" + msgstr "parameteren '%D' erklæret void" + +-#: cp/decl.c:10919 ++#: cp/decl.c:11016 + #, fuzzy + msgid "invalid member function declaration" + msgstr "ugyldig medlemsskabelonerklæring '%D'" + +-#: cp/decl.c:10936 ++#: cp/decl.c:11033 + msgid "`%D' is already defined in class `%T'" + msgstr "'%D' er allerede defineret i klassen '%T'" + +-#: cp/decl.c:11149 ++#: cp/decl.c:11246 + msgid "static member function `%#D' declared with type qualifiers" + msgstr "statisk medlemsfunktion '%#D' erklæret med typemodifikationer" + +@@ -15262,7 +15263,7 @@ + msgid "invalid use of `virtual' in template declaration of `%#D'" + msgstr "ugyldig brug af 'virtual' i skabelonserklæring af '%#D'" + +-#: cp/decl2.c:541 cp/pt.c:2834 ++#: cp/decl2.c:541 cp/pt.c:2878 + msgid "template declaration of `%#D'" + msgstr "skabelonserklæring af '%#D'" + +@@ -15334,41 +15335,41 @@ + msgid "anonymous struct not inside named type" + msgstr "anonym struct er ikke inden i en navngiven type" + +-#: cp/decl2.c:1218 ++#: cp/decl2.c:1224 + msgid "namespace-scope anonymous aggregates must be static" + msgstr "anonyme variabler af sammensatte typer i navnerumsvirkefelt skal erklæres static" + +-#: cp/decl2.c:1225 ++#: cp/decl2.c:1231 + #, fuzzy + msgid "anonymous union with no members" + msgstr "anonym sammensat type uden medlemmer" + +-#: cp/decl2.c:1259 ++#: cp/decl2.c:1265 + msgid "`operator new' must return type `%T'" + msgstr "'operator new' skal returnere typen '%T'" + +-#: cp/decl2.c:1267 ++#: cp/decl2.c:1273 + msgid "`operator new' takes type `size_t' (`%T') as first parameter" + msgstr "den første parameter til 'operator new' skal være af typen 'size_t' ('%T')" + +-#: cp/decl2.c:1293 ++#: cp/decl2.c:1299 + msgid "`operator delete' must return type `%T'" + msgstr "'operator delete' skal returnere typen '%T'" + +-#: cp/decl2.c:1301 ++#: cp/decl2.c:1307 + msgid "`operator delete' takes type `%T' as first parameter" + msgstr "den første parameter til 'operator delete' skal være af typen '%T'" + +-#: cp/decl2.c:2810 ++#: cp/decl2.c:2816 + msgid "inline function `%D' used but never defined" + msgstr "indbygget funktion '%D' benyttet, men aldrig defineret" + +-#: cp/decl2.c:2956 ++#: cp/decl2.c:2962 + msgid "default argument missing for parameter %P of `%+#D'" + msgstr "standardparameter mangler for parameter %P i '%+#D'" + + #. damn ICE suppression +-#: cp/error.c:2387 ++#: cp/error.c:2385 + #, c-format + msgid "unexpected letter `%c' in locate_error\n" + msgstr "uventet bogstav '%c' i locate_error\n" +@@ -15395,7 +15396,7 @@ + msgid "throwing NULL, which has integral, not pointer type" + msgstr "kaster NULL som har en heltals-, ikke en henvisningstype" + +-#: cp/except.c:598 cp/init.c:2038 ++#: cp/except.c:598 cp/init.c:2047 + #, fuzzy + msgid "`%D' should never be overloaded" + msgstr "'%D' skal returnere pr. værdi (ikke reference)" +@@ -15475,7 +15476,7 @@ + msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning" + msgstr "(hvis dette er hvad du ønsker, så sikr dig at funktionsskabelonen allerede er blevet erklæret og tilføj <> efter funktionsnavnet her) -Wno-non-template-friend deaktiverer denne advarsel" + +-#: cp/g++spec.c:229 java/jvspec.c:415 ++#: cp/g++spec.c:232 java/jvspec.c:415 + #, c-format + msgid "argument to `%s' missing\n" + msgstr "en parameter til '%s' mangler\n" +@@ -15605,61 +15606,61 @@ + msgid "incomplete type `%T' does not have member `%D'" + msgstr "ufuldstændig type '%T' har ikke medlemmet '%D'" + +-#: cp/init.c:1459 ++#: cp/init.c:1460 + msgid "`%D' is not a member of type `%T'" + msgstr "'%D' er ikke et medlem af typen '%T'" + +-#: cp/init.c:1478 ++#: cp/init.c:1487 + msgid "invalid pointer to bit-field `%D'" + msgstr "ugyldig henvisning til bitfeltet '%D'" + +-#: cp/init.c:1580 ++#: cp/init.c:1589 + #, fuzzy + msgid "invalid use of non-static member function `%D'" + msgstr "ugyldig brug af ikke-statisk felt '%D'" + +-#: cp/init.c:1586 cp/semantics.c:1236 ++#: cp/init.c:1595 cp/semantics.c:1236 + #, fuzzy + msgid "invalid use of non-static data member `%D'" + msgstr "ugyldig brug af ikke-statisk felt '%D'" + +-#: cp/init.c:1725 ++#: cp/init.c:1734 + msgid "new of array type fails to specify size" + msgstr "new virkende på en tabeltype mangler at angive størrelsen" + +-#: cp/init.c:1736 ++#: cp/init.c:1745 + msgid "size in array new must have integral type" + msgstr "størrelse i tabel-new skal være en heltalstype" + +-#: cp/init.c:1742 ++#: cp/init.c:1751 + msgid "zero size array reserves no space" + msgstr "tabel med størrelsen nul reserverer ingen plads" + +-#: cp/init.c:1809 ++#: cp/init.c:1818 + msgid "new cannot be applied to a reference type" + msgstr "new kan ikke bruges på en referencetype" + +-#: cp/init.c:1815 ++#: cp/init.c:1824 + msgid "new cannot be applied to a function type" + msgstr "new kan ikke bruges på en funktionstype" + +-#: cp/init.c:1861 ++#: cp/init.c:1870 + msgid "call to Java constructor, while `jclass' undefined" + msgstr "kald af Java-konstruktionsfunktion mens 'jclass' ikke er defineret" + +-#: cp/init.c:1877 ++#: cp/init.c:1886 + msgid "can't find class$" + msgstr "kan ikke finde class$" + +-#: cp/init.c:2004 ++#: cp/init.c:2013 + msgid "invalid type `void' for new" + msgstr "ugyldig type 'void' til new" + +-#: cp/init.c:2014 ++#: cp/init.c:2023 + msgid "uninitialized const in `new' of `%#T'" + msgstr "konstant uden startværdi i 'new' af '%#T'" + +-#: cp/init.c:2033 ++#: cp/init.c:2042 + #, c-format + msgid "call to Java constructor with `%s' undefined" + msgstr "kald af Java-konstruktionsfunktion mens '%s' ikke er defineret" +@@ -15667,39 +15668,40 @@ + #. See PR 15967. This should never happen (and it is + #. fixed correctly in mainline), but on the release branch + #. we prefer this less-intrusive approacch. +-#: cp/init.c:2077 ++#: cp/init.c:2086 ++#, fuzzy + msgid "no suitable or ambiguous `%D' found in class `%T'" +-msgstr "" ++msgstr "ingen passende 'operator delete' for '%T'" + +-#: cp/init.c:2083 ++#: cp/init.c:2092 + msgid "request for member `%D' is ambiguous" + msgstr "forespørgsel efter medlemmet '%D' er tvetydigt" + +-#: cp/init.c:2203 ++#: cp/init.c:2212 + msgid "ISO C++ forbids initialization in array new" + msgstr "ISO C++ forbyder startværdier i tabel-new" + +-#: cp/init.c:2677 ++#: cp/init.c:2686 + msgid "initializer ends prematurely" + msgstr "startværdien slutter for tidligt" + +-#: cp/init.c:2734 ++#: cp/init.c:2743 + msgid "cannot initialize multi-dimensional array with initializer" + msgstr "kan ikke klargøre multidimensional tabel med startværdi" + +-#: cp/init.c:2895 ++#: cp/init.c:2904 + msgid "possible problem detected in invocation of delete operator:" + msgstr "" + +-#: cp/init.c:2898 ++#: cp/init.c:2907 + msgid "neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined." + msgstr "" + +-#: cp/init.c:2919 ++#: cp/init.c:2928 + msgid "unknown array size in delete" + msgstr "ukendt tabelstørrelse i delete" + +-#: cp/init.c:3184 ++#: cp/init.c:3193 + msgid "type to vector delete is neither pointer or array type" + msgstr "variablen til tabel-delete er hverken af en henvisnings- eller en tabeltype" + +@@ -15765,16 +15767,16 @@ + msgid "(if you use `-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)" + msgstr "" + +-#: cp/mangle.c:2037 ++#: cp/mangle.c:2050 + #, fuzzy + msgid "call_expr cannot be mangled due to a defect in the C++ ABI" + msgstr "new kan ikke bruges på en funktionstype" + +-#: cp/mangle.c:2090 ++#: cp/mangle.c:2103 + msgid "omitted middle operand to `?:' operand cannot be mangled" + msgstr "" + +-#: cp/mangle.c:2389 ++#: cp/mangle.c:2402 + msgid "the mangled name of `%D' will change in a future version of GCC" + msgstr "det ABI-navnet for '%D' vil ændre sig i en fremtidig version af GCC" + +@@ -15847,12 +15849,12 @@ + #: cp/name-lookup.c:991 + #, fuzzy + msgid "declaration of '%D' shadows a previous local" +-msgstr "erklæring af '%#D' skygger for en parameter" ++msgstr "erklæring af '%s' skygger for en tidligere lokal variabel" + + #: cp/name-lookup.c:998 + #, fuzzy + msgid "declaration of '%D' shadows a global declaration" +-msgstr "erklæring af '%#D' skygger for en parameter" ++msgstr "erklæring af '%s' skygger for en global erklæring" + + #: cp/name-lookup.c:1167 + msgid "name lookup of `%D' changed" +@@ -15920,7 +15922,7 @@ + + #. It's a nested name with template parameter dependent scope. + #. This can only be using-declaration for class member. +-#: cp/name-lookup.c:2126 cp/name-lookup.c:2140 cp/name-lookup.c:3380 ++#: cp/name-lookup.c:2126 cp/name-lookup.c:2140 cp/name-lookup.c:3362 + msgid "`%T' is not a namespace" + msgstr "'%T' er ikke et navnerum" + +@@ -15956,89 +15958,89 @@ + msgid "using-declaration cannot name destructor" + msgstr "using-erklæring for destruktionsfunktion" + +-#: cp/name-lookup.c:3005 ++#: cp/name-lookup.c:2984 + msgid "declaration of `%D' not in a namespace surrounding `%D'" + msgstr "erklæring af '%D' er ikke i et navnerum der omgiver '%D'" + +-#: cp/name-lookup.c:3045 ++#: cp/name-lookup.c:3024 + msgid "`%D' should have been declared inside `%D'" + msgstr "'%D' skulle have været erklæret inden i '%D'" + +-#: cp/name-lookup.c:3109 ++#: cp/name-lookup.c:3088 + msgid "namespace alias `%D' not allowed here, assuming `%D'" + msgstr "navnerumsalias '%D' er ikke tilladt her, antager '%D'" + + #. The parser did not find it, so it's not there. +-#: cp/name-lookup.c:3224 ++#: cp/name-lookup.c:3203 + msgid "unknown namespace `%D'" + msgstr "ukendt navnerum '%D'" + +-#: cp/name-lookup.c:3374 ++#: cp/name-lookup.c:3356 + msgid "namespace `%T' undeclared" + msgstr "navnerummet '%T' er ikke erklæret" + +-#: cp/name-lookup.c:3407 ++#: cp/name-lookup.c:3389 + msgid "strong using only meaningful at namespace scope" + msgstr "" + +-#: cp/name-lookup.c:3414 ++#: cp/name-lookup.c:3396 + #, fuzzy + msgid "`%D' attribute directive ignored" + msgstr "egenskabsdirektivet '%s' ignoreret" + +-#: cp/name-lookup.c:3547 ++#: cp/name-lookup.c:3529 + msgid "use of `%D' is ambiguous" + msgstr "brug af '%D' er tvetydigt" + +-#: cp/name-lookup.c:3548 ++#: cp/name-lookup.c:3530 + msgid " first declared as `%#D' here" + msgstr " først erklæret som '%#D' her" + +-#: cp/name-lookup.c:3551 ++#: cp/name-lookup.c:3533 + msgid " also declared as `%#D' here" + msgstr " også erklæret som '%#D' her" + +-#: cp/name-lookup.c:3566 ++#: cp/name-lookup.c:3548 + msgid "`%D' denotes an ambiguous type" + msgstr "'%D' angiver en tvetydig type" + +-#: cp/name-lookup.c:3567 ++#: cp/name-lookup.c:3549 + #, fuzzy + msgid "%J first type here" + msgstr " første type her" + +-#: cp/name-lookup.c:3568 ++#: cp/name-lookup.c:3550 + #, fuzzy + msgid "%J other type here" + msgstr " anden type her" + + #. This happens for A::B where B is a template, and there are no + #. template arguments. +-#: cp/name-lookup.c:3633 cp/typeck.c:1792 ++#: cp/name-lookup.c:3615 cp/typeck.c:1792 + msgid "invalid use of `%D'" + msgstr "ugyldig brug af '%D" + +-#: cp/name-lookup.c:3674 ++#: cp/name-lookup.c:3656 + msgid "`%D::%D' is not a template" + msgstr "'%D::%D' er ikke en skabelon" + +-#: cp/name-lookup.c:3691 ++#: cp/name-lookup.c:3673 + msgid "`%D' undeclared in namespace `%D'" + msgstr "'%D' ikke erklæret i navnerummet '%D'" + +-#: cp/name-lookup.c:4153 ++#: cp/name-lookup.c:4135 + msgid "`%D' is not a function," + msgstr "'%s' er ikke en funktion," + +-#: cp/name-lookup.c:4154 ++#: cp/name-lookup.c:4136 + msgid " conflict with `%D'" + msgstr " konflikt med '%D'" + +-#: cp/name-lookup.c:4911 ++#: cp/name-lookup.c:4893 + msgid "XXX entering pop_everything ()\n" + msgstr "" + +-#: cp/name-lookup.c:4920 ++#: cp/name-lookup.c:4902 + msgid "XXX leaving pop_everything ()\n" + msgstr "" + +@@ -16052,7 +16054,7 @@ + msgid "`%D::%D' has not been declared" + msgstr "'%#D' kan ikke erklæres" + +-#: cp/parser.c:1809 cp/semantics.c:2308 ++#: cp/parser.c:1809 cp/semantics.c:2305 + #, fuzzy + msgid "`::%D' has not been declared" + msgstr "'%#D' kan ikke erklæres" +@@ -16081,7 +16083,7 @@ + msgid "new types may not be defined in a return type" + msgstr "new kan ikke bruges på en referencetype" + +-#: cp/parser.c:1888 cp/pt.c:4196 ++#: cp/parser.c:1888 cp/pt.c:4238 + msgid "`%T' is not a template" + msgstr "'%T' er ikke en skabelon" + +@@ -16135,109 +16137,110 @@ + msgid "typedef-name `%D' used as destructor declarator" + msgstr "skabelons-id '%D' benyttet som erklærer" + +-#: cp/parser.c:3638 ++#: cp/parser.c:3648 + #, fuzzy + msgid "ISO C++ forbids compound-literals" + msgstr "ISO C++ forbyder sammensatte konstanter" + +-#: cp/parser.c:4461 ++#: cp/parser.c:4498 ++#, fuzzy + msgid "array bound forbidden after parenthesized type-id" +-msgstr "" ++msgstr "egenskaber i parametertabelerklæring ignoreret" + +-#: cp/parser.c:4462 ++#: cp/parser.c:4499 + msgid "try removing the parentheses around the type-id" + msgstr "" + +-#: cp/parser.c:4624 ++#: cp/parser.c:4661 + #, fuzzy + msgid "expression in new-declarator must have integral or enumeration type" + msgstr "størrelse i tabel-new skal være en heltalstype" + +-#: cp/parser.c:4805 ++#: cp/parser.c:4842 + msgid "use of old-style cast" + msgstr "brug af ældre type typeomtvingning" + +-#: cp/parser.c:5550 ++#: cp/parser.c:5587 + #, c-format + msgid "case label `%E' not within a switch statement" + msgstr "case-etiket '%E' befinder sig ikke inden i en switch-sætning" + +-#: cp/parser.c:6092 ++#: cp/parser.c:6130 + msgid "ISO C++ forbids computed gotos" + msgstr "ISO C++ forbyder beregnede goto'er" + +-#: cp/parser.c:6212 ++#: cp/parser.c:6250 + msgid "extra `;'" + msgstr "" + +-#: cp/parser.c:6507 ++#: cp/parser.c:6545 + msgid "mixing declarations and function-definitions is forbidden" + msgstr "" + +-#: cp/parser.c:6645 ++#: cp/parser.c:6683 + #, fuzzy + msgid "duplicate `friend'" + msgstr "'%s' optræder mere end én gang" + +-#: cp/parser.c:6794 ++#: cp/parser.c:6832 + #, fuzzy + msgid "class definition may not be declared a friend" + msgstr "funktionen '%D' kan ikke erklæres friend" + +-#: cp/parser.c:7109 ++#: cp/parser.c:7147 + msgid "only constructors take base initializers" + msgstr "kun konstruktionsfunktioner har stamklasseklargøringer" + +-#: cp/parser.c:7160 ++#: cp/parser.c:7198 + #, fuzzy + msgid "anachronistic old-style base class initializer" + msgstr "forældet stamklasseklargøring" + +-#: cp/parser.c:7201 ++#: cp/parser.c:7239 + msgid "keyword `typename' not allowed in this context (a qualified member initializer is implicitly a type)" + msgstr "" + + #. Warn that we do not support `export'. +-#: cp/parser.c:7563 ++#: cp/parser.c:7601 + msgid "keyword `export' not implemented, and will be ignored" + msgstr "det reserverede ord 'export' er ikke implementeret og vil blive ignoreret" + + #. Otherwise, emit an error about the invalid digraph, but continue + #. parsing because we got our argument list. +-#: cp/parser.c:7923 ++#: cp/parser.c:7961 + #, fuzzy + msgid "`<::' cannot begin a template-argument list" + msgstr "objektet '%E' kan ikke bruges som skabelonsparameter" + +-#: cp/parser.c:7924 ++#: cp/parser.c:7962 + msgid "`<:' is an alternate spelling for `['. Insert whitespace between `<' and `::'" + msgstr "" + +-#: cp/parser.c:7931 ++#: cp/parser.c:7969 + msgid "(if you use `-fpermissive' G++ will accept your code)" + msgstr "" + + #. Explain what went wrong. +-#: cp/parser.c:8106 ++#: cp/parser.c:8145 + #, fuzzy + msgid "non-template `%D' used as template" + msgstr "ikke-skabelon benyttet som skabelon" + +-#: cp/parser.c:8107 ++#: cp/parser.c:8146 + #, fuzzy + msgid "use `%T::template %D' to indicate that it is a template" + msgstr "skabelons-id '%D' i erklæring af primær skabelon" + +-#: cp/parser.c:9058 ++#: cp/parser.c:9102 + msgid "using `typename' outside of template" + msgstr "bruger 'typename' uden for en skabelon" + +-#: cp/parser.c:9180 ++#: cp/parser.c:9224 + #, fuzzy + msgid "expected type-name" + msgstr "uventet operand" + +-#: cp/parser.c:9239 ++#: cp/parser.c:9283 + #, fuzzy + msgid "type attributes are honored only at type definition" + msgstr "egenskaben '%s' kan kun anvendes med klassedefinitioner" +@@ -16245,91 +16248,91 @@ + #. [namespace.udecl] + #. + #. A using declaration shall not name a template-id. +-#: cp/parser.c:9622 ++#: cp/parser.c:9666 + #, fuzzy + msgid "a template-id may not appear in a using-declaration" + msgstr "navnerum '%D' ikke tilladt i using-erklæring" + +-#: cp/parser.c:9949 ++#: cp/parser.c:9986 + msgid "an asm-specification is not allowed on a function-definition" + msgstr "" + +-#: cp/parser.c:9951 ++#: cp/parser.c:9988 + #, fuzzy + msgid "attributes are not allowed on a function-definition" + msgstr "en global registervariabel følger en funktionsdefinition" + +-#: cp/parser.c:10084 ++#: cp/parser.c:10121 + #, fuzzy + msgid "attributes after parenthesized initializer ignored" + msgstr "egenskaber i parametertabelerklæring ignoreret" + +-#: cp/parser.c:10540 ++#: cp/parser.c:10591 + #, fuzzy + msgid "`%T::%D' is not a type" + msgstr "'%D::%D' er ikke en skabelon" + +-#: cp/parser.c:11288 ++#: cp/parser.c:11341 + #, fuzzy + msgid "file ends in default argument" + msgstr "%Hslutningen af filen læst inden i standardparameter" + +-#: cp/parser.c:11344 ++#: cp/parser.c:11397 + #, fuzzy + msgid "deprecated use of default argument for parameter of non-function" + msgstr "standardparameter givet til %d. parameter for '%#D'" + +-#: cp/parser.c:11347 ++#: cp/parser.c:11400 + #, fuzzy + msgid "default arguments are only permitted for function parameters" + msgstr "standardparameter givet til %d. parameter for '%#D'" + +-#: cp/parser.c:12078 ++#: cp/parser.c:12166 + msgid "declaration of `%D' in `%D' which does not enclose `%D'" + msgstr "erklæring af '%D' i '%D' som ikke omgiver '%D'" + +-#: cp/parser.c:12091 ++#: cp/parser.c:12179 + #, fuzzy + msgid "extra qualification ignored" + msgstr "ekstra modifikation '%T::' af medlemmet '%D' ignoreret" + +-#: cp/parser.c:12102 ++#: cp/parser.c:12190 + #, fuzzy + msgid "an explicit specialization must be preceded by 'template <>'" + msgstr "eksplicit specialisering følger ikke efter 'template <>'" + +-#: cp/parser.c:12385 ++#: cp/parser.c:12473 + msgid "extra semicolon" + msgstr "" + +-#: cp/parser.c:12403 ++#: cp/parser.c:12491 + msgid "a class-key must be used when declaring a friend" + msgstr "" + +-#: cp/parser.c:12434 ++#: cp/parser.c:12522 + #, fuzzy + msgid "friend declaration does not name a class or function" + msgstr "friend-erklæringen er ikke i klassedefinitionen" + +-#: cp/parser.c:12605 ++#: cp/parser.c:12694 + msgid "pure-specifier on function-definition" + msgstr "" + +-#: cp/parser.c:12878 ++#: cp/parser.c:12967 + #, fuzzy + msgid "keyword `typename' not allowed outside of templates" + msgstr "bruger 'typename' uden for en skabelon" + +-#: cp/parser.c:12880 ++#: cp/parser.c:12969 + msgid "keyword `typename' not allowed in this context (the base class is implicitly a type)" + msgstr "" + +-#: cp/parser.c:13700 ++#: cp/parser.c:13790 + #, fuzzy + msgid "reference to `%D' is ambiguous" + msgstr "brug af '%D' er tvetydigt" + +-#: cp/parser.c:13874 ++#: cp/parser.c:13964 + #, fuzzy + msgid "too few template-parameter-lists" + msgstr "for få skabelonsparameterlister angivet i erklæring af '%D'" +@@ -16338,50 +16341,50 @@ + #. something like: + #. + #. template template void S::f(); +-#: cp/parser.c:13889 ++#: cp/parser.c:13979 + #, fuzzy + msgid "too many template-parameter-lists" + msgstr "for mange skabelonsparameterlister angivet i erklæring af '%D'" + + #. If begin_function_definition didn't like the definition, skip + #. the entire function. +-#: cp/parser.c:14185 ++#: cp/parser.c:14275 + #, fuzzy + msgid "invalid function declaration" + msgstr "Ugyldig erklæring" + + #. Issue an error message. +-#: cp/parser.c:14222 ++#: cp/parser.c:14312 + #, fuzzy + msgid "named return values are no longer supported" + msgstr "--driver understøttes ikke længere" + +-#: cp/parser.c:14561 ++#: cp/parser.c:14651 + #, fuzzy + msgid "`>>' should be `> >' within a nested template argument list" + msgstr "'>>' skulle have været '> >' i skabelonsklassenavn" + + #. If this is not a nested template argument list, the '>>' is + #. a typo for '>'. Emit an error message and continue. +-#: cp/parser.c:14569 ++#: cp/parser.c:14659 + msgid "spurious `>>', use `>' to terminate a template argument list" + msgstr "" + +-#: cp/parser.c:14574 ++#: cp/parser.c:14664 + #, fuzzy + msgid "missing `>' to terminate the template argument list" +-msgstr "manglende ')' i makroparameterliste" ++msgstr "objektet '%E' kan ikke bruges som skabelonsparameter" + +-#: cp/parser.c:15062 ++#: cp/parser.c:15149 + msgid "`%s' tag used in naming `%#T'" + msgstr "'%s'-mærke benyttet i navngivning af '%#T'" + +-#: cp/parser.c:15082 ++#: cp/parser.c:15169 + #, fuzzy + msgid "%D redeclared with different access" + msgstr "'%#D' omerklæret som en anden form for symbol" + +-#: cp/parser.c:15099 ++#: cp/parser.c:15186 + msgid "`template' (as a disambiguator) is only allowed within templates" + msgstr "" + +@@ -16401,82 +16404,87 @@ + msgid "enclosing class templates are not explicitly specialized" + msgstr "omgivende klasseskabeloner er ikke eksplicit specialiserede" + +-#: cp/pt.c:739 cp/pt.c:780 +-msgid "specializing `%#T' in different namespace" ++#: cp/pt.c:733 ++#, fuzzy ++msgid "specialization of `%D' in different namespace" + msgstr "specialiserer '%#T' i andet navnerum" + + # hænger sammen med foregående tekst, derfor ikke 'fra' +-#: cp/pt.c:740 cp/pt.c:781 ++#: cp/pt.c:734 cp/pt.c:803 + msgid " from definition of `%#D'" + msgstr " i forhold til definition af '%#D'" + +-#: cp/pt.c:748 ++#: cp/pt.c:770 + msgid "specialization of `%T' after instantiation" + msgstr "specialisering af '%T' efter instantiering" + +-#: cp/pt.c:795 ++#: cp/pt.c:802 ++msgid "specializing `%#T' in different namespace" ++msgstr "specialiserer '%#T' i andet navnerum" ++ ++#: cp/pt.c:817 + msgid "specialization `%T' after instantiation `%T'" + msgstr "specialisering af '%T' efter instantiering '%T'" + +-#: cp/pt.c:807 ++#: cp/pt.c:829 + msgid "explicit specialization of non-template `%T'" + msgstr "eksplicit specialisering af '%T' der ikke er en skabelon" + +-#: cp/pt.c:1067 ++#: cp/pt.c:1089 + msgid "specialization of %D after instantiation" + msgstr "specialisering af '%D' efter instantiering" + +-#: cp/pt.c:1192 ++#: cp/pt.c:1220 + msgid "%s %+#D" + msgstr "%s %+#D" + +-#: cp/pt.c:1241 ++#: cp/pt.c:1269 + msgid "`%D' is not a function template" + msgstr "'%D' er ikke en funktionsskabelon" + +-#: cp/pt.c:1389 ++#: cp/pt.c:1417 + msgid "template-id `%D' for `%+D' does not match any template declaration" + msgstr "skabelons-id '%D' for '%+D' passer ikke til nogen skabelonserklæring" + +-#: cp/pt.c:1397 ++#: cp/pt.c:1425 + msgid "ambiguous template specialization `%D' for `%+D'" + msgstr "tvetydig skabelonsspecialisering '%D' for '%+D'" + + #. This case handles bogus declarations like template <> + #. template void f(); +-#: cp/pt.c:1620 cp/pt.c:1694 ++#: cp/pt.c:1648 cp/pt.c:1722 + msgid "template-id `%D' in declaration of primary template" + msgstr "skabelons-id '%D' i erklæring af primær skabelon" + +-#: cp/pt.c:1633 ++#: cp/pt.c:1661 + msgid "template parameter list used in explicit instantiation" + msgstr "skabelonsparameterliste benyttet i eksplicit instantiering" + +-#: cp/pt.c:1639 ++#: cp/pt.c:1667 + msgid "definition provided for explicit instantiation" + msgstr "definition angivet for eksplicit instantiering" + +-#: cp/pt.c:1645 ++#: cp/pt.c:1673 + msgid "too many template parameter lists in declaration of `%D'" + msgstr "for mange skabelonsparameterlister angivet i erklæring af '%D'" + +-#: cp/pt.c:1661 ++#: cp/pt.c:1689 + msgid "too few template parameter lists in declaration of `%D'" + msgstr "for få skabelonsparameterlister angivet i erklæring af '%D'" + +-#: cp/pt.c:1678 ++#: cp/pt.c:1706 + msgid "explicit specialization not preceded by `template <>'" + msgstr "eksplicit specialisering følger ikke efter 'template <>'" + +-#: cp/pt.c:1691 ++#: cp/pt.c:1719 + msgid "partial specialization `%D' of function template" + msgstr "partiel specialisering '%D' af funktionsskabelon" + +-#: cp/pt.c:1723 ++#: cp/pt.c:1751 + msgid "default argument specified in explicit specialization" + msgstr "standardparameter angivet i eksplicit specialisering" + +-#: cp/pt.c:1727 ++#: cp/pt.c:1755 + msgid "template specialization with C linkage" + msgstr "skabelonsspecialisering med C-kædning" + +@@ -16488,110 +16496,120 @@ + #. program is ill-formed. + #. + #. Similar language is found in [temp.explicit]. +-#: cp/pt.c:1811 ++#: cp/pt.c:1839 + msgid "specialization of implicitly-declared special member function" + msgstr "specialisering af underforstået erklæret speciel medlemsfunktion" + +-#: cp/pt.c:1855 ++#: cp/pt.c:1883 + msgid "no member function `%D' declared in `%T'" + msgstr "ingen medlemsfunktion '%D' erklæret i '%T'" + + #. There are two many template parameter lists. +-#: cp/pt.c:2005 ++#: cp/pt.c:2033 + msgid "too many template parameter lists in declaration of `%T'" + msgstr "for mange skabelonsparameterlister i erklæringen af '%T'" + +-#: cp/pt.c:2098 ++#: cp/pt.c:2126 + msgid " shadows template parm `%#D'" + msgstr " skygger for skabelonsparameter '%#D'" + +-#: cp/pt.c:2495 ++#: cp/pt.c:2523 + msgid "template parameters not used in partial specialization:" + msgstr "skabelonsparametre der ikke bruges i partiel specialisering:" + +-#: cp/pt.c:2499 ++#: cp/pt.c:2527 + msgid " `%D'" + msgstr " '%D'" + +-#: cp/pt.c:2511 ++#: cp/pt.c:2539 + msgid "partial specialization `%T' does not specialize any template arguments" + msgstr "den partielle specialisering '%T' specialiserer ikke nogen skabelonsparametre" + + # flertalsform unødvendig +-#: cp/pt.c:2536 ++#: cp/pt.c:2564 + #, c-format + msgid "template argument `%E' involves template parameter(s)" + msgstr "skabelonsparameter '%E' involverer skabelonsparameter" + + # flertalsform unødvendig +-#: cp/pt.c:2580 ++#: cp/pt.c:2608 + msgid "type `%T' of template argument `%E' depends on template parameter(s)" + msgstr "typen '%T' af skabelonsparameteren '%E' afhænger af skabelonsparameter" + +-#: cp/pt.c:2665 ++#: cp/pt.c:2693 + msgid "no default argument for `%D'" + msgstr "ingen standardparameter til '%D'" + +-#: cp/pt.c:2814 ++#: cp/pt.c:2842 + msgid "template with C linkage" + msgstr "skabelon med C-kædning" + +-#: cp/pt.c:2817 ++#: cp/pt.c:2845 + msgid "template class without a name" + msgstr "skabelonsklasse uden et navn" + + #. [temp.mem] + #. + #. A destructor shall not be a member template. +-#: cp/pt.c:2824 ++#: cp/pt.c:2853 + #, fuzzy + msgid "destructor `%D' declared as member template" + msgstr "datamedlem '%D' kan ikke være en medlemsskabelon" + +-#: cp/pt.c:2904 ++#. [basic.stc.dynamic.allocation] ++#. ++#. An allocation function can be a function ++#. template. ... Template allocation functions shall ++#. have two or more parameters. ++#: cp/pt.c:2868 ++#, fuzzy ++msgid "invalid template declaration of `%D'" ++msgstr "ugyldig medlemsskabelonerklæring '%D'" ++ ++#: cp/pt.c:2948 + msgid "`%D' does not declare a template type" + msgstr "'%D' erklærer ikke en skabelonstype" + +-#: cp/pt.c:2910 ++#: cp/pt.c:2954 + msgid "template definition of non-template `%#D'" + msgstr "skabelonsdefinition af ikke-skabelon '%#D'" + +-#: cp/pt.c:2951 ++#: cp/pt.c:2995 + msgid "expected %d levels of template parms for `%#D', got %d" + msgstr "forvented %d niveauer af skabelonsparametre for '%#D', modtog %d" + +-#: cp/pt.c:2963 ++#: cp/pt.c:3007 + msgid "got %d template parameters for `%#D'" + msgstr "modtog %d skabelonsparametre for '%#D'" + +-#: cp/pt.c:2966 ++#: cp/pt.c:3010 + msgid "got %d template parameters for `%#T'" + msgstr "modtog %d skabelonsparametre for '%#T'" + +-#: cp/pt.c:2968 ++#: cp/pt.c:3012 + #, c-format + msgid " but %d required" + msgstr " men %d påkrævet" + +-#: cp/pt.c:3053 ++#: cp/pt.c:3097 + msgid "`%T' is not a template type" + msgstr "'%T' er ikke en skabelonstype" + + # hænger sammen med næste tekst +-#: cp/pt.c:3069 ++#: cp/pt.c:3113 + msgid "previous declaration `%D'" + msgstr "tidligere erklæring '%D'" + +-#: cp/pt.c:3070 ++#: cp/pt.c:3114 + #, c-format + msgid "used %d template parameter%s instead of %d" + msgstr "benyttede %d skabelonsparameter%s i stedet for %d" + +-#: cp/pt.c:3086 ++#: cp/pt.c:3130 + msgid "template parameter `%#D'" + msgstr "skabelonsparameter '%#D'" + +-#: cp/pt.c:3087 ++#: cp/pt.c:3131 + msgid "redeclared here as `%#D'" + msgstr "omerklæret her som '%#D'" + +@@ -16599,287 +16617,296 @@ + #. + #. A template-parameter may not be given default arguments + #. by two different declarations in the same scope. +-#: cp/pt.c:3097 ++#: cp/pt.c:3141 + msgid "redefinition of default argument for `%#D'" + msgstr "omdefinering af standardparameter for '%#D'" + +-#: cp/pt.c:3098 ++#: cp/pt.c:3142 + #, fuzzy + msgid "%J original definition appeared here" + msgstr " oprindelig definition er her" + +-#: cp/pt.c:3246 ++#: cp/pt.c:3288 + #, c-format + msgid "`%E' is not a valid template argument" + msgstr "'%E' er ikke en gyldig skabelonsparameter" + +-#: cp/pt.c:3250 ++#: cp/pt.c:3292 + msgid "it must be the address of a function with external linkage" + msgstr "den skal være adressen af en funktion med ekstern kædning" + +-#: cp/pt.c:3252 ++#: cp/pt.c:3294 + msgid "it must be the address of an object with external linkage" + msgstr "den skal være adressen af et objekt med ekstern kædning" + +-#: cp/pt.c:3255 ++#: cp/pt.c:3297 + msgid "it must be a pointer-to-member of the form `&X::Y'" + msgstr "den skal være en henvisning til medlem på formen '&X::Y'" + +-#: cp/pt.c:3266 ++#: cp/pt.c:3308 + #, c-format + msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage" + msgstr "strengkonstanten %E er ikke en gyldig skabelonsparameter fordi den er adressen af et objekt med statisk kædning" + +-#: cp/pt.c:3281 ++#: cp/pt.c:3323 + #, c-format + msgid "address of non-extern `%E' cannot be used as template argument" + msgstr "adresse på ikke-ekstern '%E' kan ikke bruges som skabelonsparameter" + +-#: cp/pt.c:3290 ++#: cp/pt.c:3332 + #, c-format + msgid "non-constant `%E' cannot be used as template argument" + msgstr "ikke-konstant '%E' kan ikke bruges som skabelonsparameter" + +-#: cp/pt.c:3298 ++#: cp/pt.c:3340 + #, fuzzy + msgid "type '%T' cannot be used as a value for a non-type template-parameter" + msgstr "objektet '%E' kan ikke bruges som skabelonsparameter" + +-#: cp/pt.c:3301 ++#: cp/pt.c:3343 + #, fuzzy + msgid "invalid use of '%D' as a non-type template-argument" + msgstr "ugyldig standardparameter i skabelon" + +-#: cp/pt.c:3303 ++#: cp/pt.c:3345 + #, fuzzy, c-format + msgid "invalid use of '%E' as a non-type template-argument" + msgstr "ugyldig standardparameter i skabelon" + +-#: cp/pt.c:3668 ++#: cp/pt.c:3710 + #, c-format + msgid "to refer to a type member of a template parameter, use `typename %E'" + msgstr "benyt 'typename %E' for at referere til et typemedlem af en skabelonsparameter" + +-#: cp/pt.c:3681 cp/pt.c:3699 cp/pt.c:3738 ++#: cp/pt.c:3723 cp/pt.c:3741 cp/pt.c:3780 + msgid "type/value mismatch at argument %d in template parameter list for `%D'" + msgstr "type/værdi-konflikt ved %d. parameter i skabelonsparameterliste for '%D'" + +-#: cp/pt.c:3684 ++#: cp/pt.c:3726 + msgid " expected a constant of type `%T', got `%T'" + msgstr " forventede en konstant af typen '%T', modtog '%T'" + +-#: cp/pt.c:3688 ++#: cp/pt.c:3730 + #, fuzzy, c-format + msgid " expected a class template, got `%E'" + msgstr " forventede en klasseskabelon, modtog '%T'" + +-#: cp/pt.c:3690 ++#: cp/pt.c:3732 + #, c-format + msgid " expected a type, got `%E'" + msgstr " forventede en type, modtog '%E'" + +-#: cp/pt.c:3702 ++#: cp/pt.c:3744 + msgid " expected a type, got `%T'" + msgstr " forventede en type, modtog '%T'" + +-#: cp/pt.c:3704 ++#: cp/pt.c:3746 + msgid " expected a class template, got `%T'" + msgstr " forventede en klasseskabelon, modtog '%T'" + +-#: cp/pt.c:3740 ++#: cp/pt.c:3782 + msgid " expected a template of type `%D', got `%D'" + msgstr " forventede en skabelon af typen '%D', modtog '%D'" + +-#: cp/pt.c:3775 ++#: cp/pt.c:3817 + msgid "could not convert template argument `%E' to `%T'" + msgstr "kunne ikke konvertere skabelonsparameteren '%E' til '%T'" + +-#: cp/pt.c:3815 ++#: cp/pt.c:3857 + #, c-format + msgid "wrong number of template arguments (%d, should be %d)" + msgstr "forkert antal skabelonsparametre (%d, skulle være %d)" + +-#: cp/pt.c:3819 ++#: cp/pt.c:3861 + msgid "provided for `%D'" + msgstr "angivet for '%D'" + +-#: cp/pt.c:3847 ++#: cp/pt.c:3889 + #, c-format + msgid "template argument %d is invalid" + msgstr "skabelonsparameter %d er ugyldig" + +-#: cp/pt.c:4068 ++#: cp/pt.c:4110 + msgid "non-template used as template" + msgstr "ikke-skabelon benyttet som skabelon" + +-#: cp/pt.c:4208 ++#: cp/pt.c:4250 + msgid "non-template type `%T' used as a template" + msgstr "ikke-skabelonstype '%T' benyttet som skabelon" + +-#: cp/pt.c:4210 ++#: cp/pt.c:4252 + msgid "for template declaration `%D'" + msgstr "til skabelonserklæring '%D'" + +-#: cp/pt.c:4857 ++#: cp/pt.c:4899 + msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'" + msgstr "skabelonsinstantieringsdybden overskrider maksimum på %d (benyt -ftemplate-depth-NN for at forøge maksimum) ved instantiering af '%D'" + +-#: cp/pt.c:5296 ++#: cp/pt.c:5338 + msgid "ambiguous class template instantiation for `%#T'" + msgstr "tvetydig klasseskabelonsinstantiering for '%#T'" + +-#: cp/pt.c:5302 ++#: cp/pt.c:5344 + msgid "%s %+#T" + msgstr "%s %+#T" + +-#: cp/pt.c:6308 cp/pt.c:6428 ++#: cp/pt.c:6382 + msgid "instantiation of `%D' as type `%T'" + msgstr "instantiering af '%D' som typen '%T'" + +-#: cp/pt.c:6470 ++#: cp/pt.c:6542 + msgid "invalid parameter type `%T'" + msgstr "ugyldig parametertype '%T'" + +-#: cp/pt.c:6472 ++#: cp/pt.c:6544 + msgid "in declaration `%D'" + msgstr "i erklæringen '%D'" + +-#: cp/pt.c:6546 ++#: cp/pt.c:6618 + msgid "creating pointer to member function of non-class type `%T'" + msgstr "opretter henvisning til medlemsfunktion af typen '%T' der ikke er en klasse" + +-#: cp/pt.c:6685 ++#: cp/pt.c:6758 + msgid "creating array with size zero" + msgstr "opretter tabel med størrelsen nul" + +-#: cp/pt.c:6699 ++#: cp/pt.c:6772 + #, c-format + msgid "creating array with size zero (`%E')" + msgstr "opretter tabel med størrelsen nul ('%E')" + +-#: cp/pt.c:6938 ++#: cp/pt.c:7011 + msgid "forming reference to void" + msgstr "danner reference til void" + +-#: cp/pt.c:6940 ++#: cp/pt.c:7013 + msgid "forming %s to reference type `%T'" + msgstr "danner %s til referencetypen '%T'" + +-#: cp/pt.c:6977 ++#: cp/pt.c:7050 + msgid "creating pointer to member of non-class type `%T'" + msgstr "opretter henvisning til medlem af typen '%T' der ikke er en klasse" + +-#: cp/pt.c:6983 ++#: cp/pt.c:7056 + msgid "creating pointer to member reference type `%T'" + msgstr "opretter henvisning til medlemsreference af typen '%T'" + +-#: cp/pt.c:7069 ++#: cp/pt.c:7142 + msgid "creating array of `%T'" + msgstr "opretter tabel af '%T'" + +-#: cp/pt.c:7075 ++#: cp/pt.c:7148 + #, fuzzy + msgid "creating array of `%T', which is an abstract class type" + msgstr "unavngiven klargøring af '%T' som ikke har nogen stamklasser" + +-#: cp/pt.c:7119 ++#: cp/pt.c:7192 + msgid "`%T' is not a class, struct, or union type" + msgstr "'%T' er ikke en class-, struct- eller union-type" + +-#: cp/pt.c:7232 ++#: cp/pt.c:7305 + #, c-format + msgid "use of `%s' in template" + msgstr "brug af '%s' i skabelon" + +-#: cp/pt.c:7345 ++#: cp/pt.c:7418 + #, fuzzy, c-format + msgid "dependent-name `%E' is parsed as a non-type, but instantiation yields a type" + msgstr "'%D' benyttes som en type, men er ikke defineret som en type" + +-#: cp/pt.c:7347 ++#: cp/pt.c:7420 + #, fuzzy, c-format + msgid "say `typename %E' if a type is meant" + msgstr " (benyt 'typename %T::%D' hvis det er hvad du mener)" + +-#: cp/pt.c:8613 ++#: cp/pt.c:8589 ++msgid "`%T' is not a class or namespace" ++msgstr "'%T' er ikke en klasse eller et navnerum" ++ ++#: cp/pt.c:8592 ++#, fuzzy ++msgid "`%D' is not a class or namespace" ++msgstr "'%T' er ikke en klasse eller et navnerum" ++ ++#: cp/pt.c:8709 + #, fuzzy + msgid "`%T' uses anonymous type" + msgstr "skabelonsparameter '%T' benytter anonym type" + +-#: cp/pt.c:8615 ++#: cp/pt.c:8711 + #, fuzzy + msgid "`%T' uses local type `%T'" + msgstr "skabelonsparameter '%T' benytter lokal type '%T'" + +-#: cp/pt.c:8623 ++#: cp/pt.c:8719 + #, fuzzy + msgid "`%T' is a variably modified type" + msgstr "skabelonsparameter '%T' er en variabelt ændret type" + +-#: cp/pt.c:8634 ++#: cp/pt.c:8730 + #, fuzzy, c-format + msgid "integral expression `%E' is not constant" + msgstr "størrelsen af medlemmet '%D' er ikke konstant" + +-#: cp/pt.c:8639 ++#: cp/pt.c:8735 + msgid " trying to instantiate `%D'" + msgstr " ved forsøg på at instantiere '%D'" + +-#: cp/pt.c:9156 ++#: cp/pt.c:9252 + msgid "incomplete type unification" + msgstr "ufuldstændig typeforening" + +-#: cp/pt.c:10112 ++#: cp/pt.c:10211 + #, c-format + msgid "use of `%s' in template type unification" + msgstr "brug af '%s' i skabelonstypeforening" + +-#: cp/pt.c:10546 cp/pt.c:10618 ++#: cp/pt.c:10644 cp/pt.c:10716 + msgid "explicit instantiation of non-template `%#D'" + msgstr "eksplicit instantiering af ikke-skabelon '%#D'" + +-#: cp/pt.c:10562 cp/pt.c:10613 ++#: cp/pt.c:10660 cp/pt.c:10711 + msgid "no matching template for `%D' found" + msgstr "ingen passende skabelon for '%D' fundet" + +-#: cp/pt.c:10568 ++#: cp/pt.c:10666 + msgid "explicit instantiation of `%#D'" + msgstr "eksplicit instantiering af '%#D'" + +-#: cp/pt.c:10605 ++#: cp/pt.c:10703 + msgid "duplicate explicit instantiation of `%#D'" + msgstr "'%#D' er blevet eksplicit instantieret mere end én gang" + +-#: cp/pt.c:10627 ++#: cp/pt.c:10725 + msgid "ISO C++ forbids the use of `extern' on explicit instantiations" + msgstr "ISO C++ forbyder brugen af 'extern' ved eksplicitte instantieringer" + +-#: cp/pt.c:10631 cp/pt.c:10712 ++#: cp/pt.c:10729 cp/pt.c:10810 + msgid "storage class `%D' applied to template instantiation" + msgstr "lagringsklasse '%D' anvendt på skabelonsinstantiering" + +-#: cp/pt.c:10684 ++#: cp/pt.c:10782 + msgid "explicit instantiation of non-template type `%T'" + msgstr "eksplicit instantiering af '%T' der ikke er en skabelonstype" + +-#: cp/pt.c:10693 ++#: cp/pt.c:10791 + msgid "explicit instantiation of `%#T' before definition of template" + msgstr "eksplicit instantiering af '%T' før definering af skabelonen" + +-#: cp/pt.c:10701 ++#: cp/pt.c:10799 + #, c-format + msgid "ISO C++ forbids the use of `%s' on explicit instantiations" + msgstr "ISO C++ forbyder brugen af '%s ved eksplicitte instantieringer" + +-#: cp/pt.c:10745 ++#: cp/pt.c:10843 + msgid "duplicate explicit instantiation of `%#T'" + msgstr "'%#T' er blevet eksplicit instantieret mere end én gang" + +-#: cp/pt.c:11126 ++#: cp/pt.c:11224 + msgid "explicit instantiation of `%D' but no definition available" + msgstr "eksplicit instantiering af '%D', men ingen definition tilgængelig" + +-#: cp/pt.c:11562 ++#: cp/pt.c:11660 + msgid "`%#T' is not a valid type for a template constant parameter" + msgstr "'%#T' er ikke en gyldig type for en skabelonsparameterkonstant " + +@@ -16925,39 +16952,39 @@ + msgid "`%T' is an inaccessible base of `%T'" + msgstr "'%T' er en utilgængelig stamklasse til '%T'" + +-#: cp/search.c:1767 ++#: cp/search.c:1805 + msgid "invalid covariant return type for `%#D'" + msgstr "ugyldig kovariant returneringstype for '%#D'" + +-#: cp/search.c:1768 cp/search.c:1774 ++#: cp/search.c:1806 cp/search.c:1812 + msgid " overriding `%#D'" + msgstr " overskriver '%#D'" + +-#: cp/search.c:1772 ++#: cp/search.c:1810 + msgid "conflicting return type specified for `%#D'" + msgstr "modstridende returtyper angivet for '%#D'" + +-#: cp/search.c:1786 ++#: cp/search.c:1824 + #, c-format + msgid "looser throw specifier for `%#F'" + msgstr "løsere throw-angivelse for '%#F'" + +-#: cp/search.c:1787 ++#: cp/search.c:1825 + #, c-format + msgid " overriding `%#F'" + msgstr " overskriver '%#F'" + + #. A static member function cannot match an inherited + #. virtual member function. +-#: cp/search.c:1877 ++#: cp/search.c:1915 + msgid "`%#D' cannot be declared" + msgstr "'%#D' kan ikke erklæres" + +-#: cp/search.c:1878 ++#: cp/search.c:1916 + msgid " since `%#D' declared in base class" + msgstr " eftersom '%#D' er erklæret i stamklassen" + +-#: cp/search.c:1955 ++#: cp/search.c:1993 + msgid "`%#D' needs a final overrider" + msgstr "'%#D' behøver en endelig overskrivning" + +@@ -16979,121 +17006,121 @@ + msgid "object missing in reference to `%D'" + msgstr "objekt mangler i brug af '%E'" + +-#: cp/semantics.c:1721 ++#: cp/semantics.c:1718 + #, fuzzy + msgid "arguments to destructor are not allowed" + msgstr "parameter til egenskaben '%s' er større end %d" + +-#: cp/semantics.c:1770 ++#: cp/semantics.c:1767 + msgid "`this' is unavailable for static member functions" + msgstr "'this' er ikke tilgængelig for statiske medlemsfunktioner" + +-#: cp/semantics.c:1776 ++#: cp/semantics.c:1773 + msgid "invalid use of `this' in non-member function" + msgstr "ugyldig brug af 'this' i ikke-medlemsfunktion" + +-#: cp/semantics.c:1778 ++#: cp/semantics.c:1775 + msgid "invalid use of `this' at top level" + msgstr "ugyldig brug af 'this' ved øverste niveau" + +-#: cp/semantics.c:1802 ++#: cp/semantics.c:1799 + #, fuzzy + msgid "invalid qualifying scope in pseudo-destructor name" + msgstr "ugyldige modifikationer for ikke-medlemsfunktionstype" + +-#: cp/semantics.c:1822 ++#: cp/semantics.c:1819 + msgid "`%E' is not of type `%T'" + msgstr "'%E' er ikke af typen '%T'" + +-#: cp/semantics.c:1933 ++#: cp/semantics.c:1930 + msgid "template type parameters must use the keyword `class' or `typename'" + msgstr "skabelonstypeparametre skal begynde med 'class' eller 'typename'" + +-#: cp/semantics.c:1977 ++#: cp/semantics.c:1974 + #, fuzzy + msgid "invalid use of type `%T' as a default value for a template template-parameter" + msgstr "ugyldig brug af skabelonstypeparameter" + +-#: cp/semantics.c:1980 ++#: cp/semantics.c:1977 + #, fuzzy + msgid "invalid use of `%D' as a default value for a template template-parameter" + msgstr "ugyldig brug af skabelonstypeparameter" + +-#: cp/semantics.c:1984 ++#: cp/semantics.c:1981 + #, fuzzy + msgid "invalid default argument for a template template parameter" + msgstr "ugyldig brug af skabelonstypeparameter" + +-#: cp/semantics.c:2019 ++#: cp/semantics.c:2016 + msgid "definition of `%#T' inside template parameter list" + msgstr "definition af '%#T' inden i skabelonsparameterliste" + +-#: cp/semantics.c:2030 ++#: cp/semantics.c:2027 + msgid "invalid definition of qualified type `%T'" + msgstr "ugyldig definition af modificeret type '%T'" + +-#: cp/semantics.c:2045 ++#: cp/semantics.c:2042 + msgid "previous definition of `%#T'" + msgstr "tidligere definition af '%#T'" + +-#: cp/semantics.c:2249 ++#: cp/semantics.c:2246 + msgid "invalid base-class specification" + msgstr "ugyldig stamklasseangivelse" + +-#: cp/semantics.c:2258 ++#: cp/semantics.c:2255 + msgid "base class `%T' has cv qualifiers" + msgstr "stamklassen '%T' har const/volatile-modifikationer" + +-#: cp/semantics.c:2290 ++#: cp/semantics.c:2287 + msgid "multiple declarators in template declaration" + msgstr "flere erklærerer i skabelonserklæring" + +-#: cp/semantics.c:2301 ++#: cp/semantics.c:2298 + #, fuzzy + msgid "incomplete type `%T' used in nested name specifier" + msgstr "ufuldstændig type '%T' kan ikke bruges til at navngive et virkefelt" + +-#: cp/semantics.c:2303 cp/typeck.c:1635 ++#: cp/semantics.c:2300 cp/typeck.c:1635 + msgid "`%D' is not a member of `%T'" + msgstr "'%D' er ikke et medlem af '%T'" + +-#: cp/semantics.c:2306 ++#: cp/semantics.c:2303 + #, fuzzy + msgid "`%D' is not a member of `%D'" + msgstr "'%D' er ikke et medlem af '%T'" + +-#: cp/semantics.c:2431 ++#: cp/semantics.c:2428 + msgid "template parameter `%D' of type `%T' is not allowed in an integral constant expression because it is not of integral or enumeration type" + msgstr "" + +-#: cp/semantics.c:2584 ++#: cp/semantics.c:2572 + #, fuzzy + msgid "`%D' cannot appear in a constant-expression" + msgstr "størrelsen af tabellen '%D' er ikke af et heltalligt konstantudtryk" + +-#: cp/semantics.c:2593 ++#: cp/semantics.c:2580 + msgid "use of namespace `%D' as expression" + msgstr "brug af navnerummet '%D' som udtryk" + +-#: cp/semantics.c:2598 ++#: cp/semantics.c:2585 + msgid "use of class template `%T' as expression" + msgstr "brug af klasseskabelonen '%T' som udtryk" + + #. Ambiguous reference to base members. +-#: cp/semantics.c:2604 ++#: cp/semantics.c:2591 + msgid "request for member `%D' is ambiguous in multiple inheritance lattice" + msgstr "forespørgsel efter medlemmet '%D' er tvetydigt i det multiple nedarvningsnet" + +-#: cp/semantics.c:2664 ++#: cp/semantics.c:2652 + #, c-format + msgid "use of %s from containing function" + msgstr "brug af %s fra indeholdende funktion" + +-#: cp/semantics.c:2667 ++#: cp/semantics.c:2655 + msgid " `%#D' declared here" + msgstr " '%#D' erklæret her" + +-#: cp/semantics.c:2718 ++#: cp/semantics.c:2706 + #, c-format + msgid "type of `%E' is unknown" + msgstr "typen af '%E' er ukendt" +@@ -17107,44 +17134,44 @@ + msgid "`%V' qualifiers cannot be applied to `%T'" + msgstr "modifikationerne '%V' kan ikke anvendes på '%T'" + +-#: cp/tree.c:1821 ++#: cp/tree.c:1829 + #, c-format + msgid "`%s' attribute can only be applied to Java class definitions" + msgstr "egenskaben '%s' kan kun anvendes med Java-klassedefinitioner" + +-#: cp/tree.c:1850 ++#: cp/tree.c:1858 + #, c-format + msgid "`%s' attribute can only be applied to class definitions" + msgstr "egenskaben '%s' kan kun anvendes med klassedefinitioner" + +-#: cp/tree.c:1856 ++#: cp/tree.c:1864 + #, c-format + msgid "`%s' is obsolete; g++ vtables are now COM-compatible by default" + msgstr "'%s' er forældet; virtuelle tabeller i g++ er nu COM-kompatible som standard" + +-#: cp/tree.c:1880 ++#: cp/tree.c:1888 + msgid "requested init_priority is not an integer constant" + msgstr "den udbedte init_priority er ikke en heltalskonstant" + +-#: cp/tree.c:1901 ++#: cp/tree.c:1909 + #, c-format + msgid "can only use `%s' attribute on file-scope definitions of objects of class type" + msgstr "kan kun bruge egenskaben '%s' på filvirkefeltsdefinitioner af objekter af klassetype" + +-#: cp/tree.c:1909 ++#: cp/tree.c:1917 + msgid "requested init_priority is out of range" + msgstr "den udbedte init_priority er uden for det gyldige interval" + +-#: cp/tree.c:1919 ++#: cp/tree.c:1927 + msgid "requested init_priority is reserved for internal use" + msgstr "den udbedte init_priority er reserveret til intern brug" + +-#: cp/tree.c:1929 ++#: cp/tree.c:1937 + #, c-format + msgid "`%s' attribute is not supported on this platform" + msgstr "egenskaben '%s' er ikke understøttet på denne platform" + +-#: cp/tree.c:2524 ++#: cp/tree.c:2534 + #, c-format + msgid "lang_* check: failed in %s, at %s:%d" + msgstr "lang_*-kontrol: mislykkedes i %s, ved %s:%d" +@@ -17363,268 +17390,268 @@ + msgid "invalid use of a pointer to an incomplete type in pointer arithmetic" + msgstr "ugyldig brug af en henvisning til en ufuldstændig type i henvisningsberegning" + +-#: cp/typeck.c:3582 ++#: cp/typeck.c:3600 + #, c-format + msgid "invalid use of '%E' to form a pointer-to-member-function. Use a qualified-id." + msgstr "ugyldig brug af '%E' til at danne en henvisning til medlemsfunktion; benyt et kaldenavn med klassepræfiks" + +-#: cp/typeck.c:3588 ++#: cp/typeck.c:3606 + #, c-format + msgid "parenthesis around '%E' cannot be used to form a pointer-to-member-function" + msgstr "paranteser omkring '%E' kan ikke bruges til at danne en henvisning til medlemsfunktion" + +-#: cp/typeck.c:3610 ++#: cp/typeck.c:3628 + msgid "taking address of temporary" + msgstr "tager adressen på midlertidig variabel" + +-#: cp/typeck.c:3845 ++#: cp/typeck.c:3863 + #, c-format + msgid "ISO C++ forbids %sing an enum" + msgstr "ISO C++ forbyder %s af en enum" + +-#: cp/typeck.c:3856 ++#: cp/typeck.c:3874 + msgid "cannot %s a pointer to incomplete type `%T'" + msgstr "kan ikke %s en henvisning til en ufuldstændig type '%T'" + +-#: cp/typeck.c:3862 ++#: cp/typeck.c:3880 + msgid "ISO C++ forbids %sing a pointer of type `%T'" + msgstr "ISO C++ forbyder %s af en henvisning af typen '%T'" + +-#: cp/typeck.c:3887 ++#: cp/typeck.c:3905 + msgid "cast to non-reference type used as lvalue" + msgstr "typeomtvingning til ikke-reference-type benyttet som venstreværdi" + +-#: cp/typeck.c:3921 ++#: cp/typeck.c:3939 + msgid "invalid use of `--' on bool variable `%D'" + msgstr "ugyldig brug af '--' på den booleske variabel '%D'" + + #. ARM $3.4 +-#: cp/typeck.c:3952 ++#: cp/typeck.c:3970 + msgid "ISO C++ forbids taking address of function `::main'" + msgstr "ISO C++ forbyder at tage adressen på funktionen '::main'" + + #. An expression like &memfn. +-#: cp/typeck.c:4027 ++#: cp/typeck.c:4045 + #, fuzzy + msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function. Say `&%T::%D'" + msgstr "ISO C++ forbyder at tage adressen på en ikke-modificeret, ikke-statisk medlemsfunktion for at danne en henvisning til medlemsfunktion; brug '&%T::%D'" + +-#: cp/typeck.c:4032 ++#: cp/typeck.c:4050 + msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say `&%T::%D'" + msgstr "ISO C++ forbyder at tage adressen på en bundet medlemsfunktion for at danne en henvisning til medlemsfunktion; brug '&%T::%D'" + +-#: cp/typeck.c:4060 ++#: cp/typeck.c:4078 + msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression" + msgstr "ISO C++ forbyder at tage adressen på en typeomtvingning til et udtryk der ikke er en venstreværdi" + +-#: cp/typeck.c:4080 ++#: cp/typeck.c:4098 + msgid "unary `&'" + msgstr "unær '&'" + +-#: cp/typeck.c:4113 ++#: cp/typeck.c:4131 + msgid "attempt to take address of bit-field structure member `%D'" + msgstr "forsøg på at finde adressen af bitfeltstrukturmedlemmet '%D'" + +-#: cp/typeck.c:4227 ++#: cp/typeck.c:4245 + msgid "taking address of destructor" + msgstr "tager adressen på en destruktionsfunktion" + +-#: cp/typeck.c:4240 ++#: cp/typeck.c:4258 + msgid "taking address of bound pointer-to-member expression" + msgstr "tager adressen på et bundet henvisning til medlem-udtryk" + +-#: cp/typeck.c:4248 ++#: cp/typeck.c:4266 + msgid "cannot create pointer to reference member `%D'" + msgstr "kan ikke oprette henvisning til reference medlemmet '%D'" + +-#: cp/typeck.c:4311 ++#: cp/typeck.c:4329 + msgid "cannot take the address of `this', which is an rvalue expression" + msgstr "kan ikke tage adressen af 'this' som er et højreværdiudtryk" + +-#: cp/typeck.c:4330 ++#: cp/typeck.c:4348 + msgid "address requested for `%D', which is declared `register'" + msgstr "adresse forespurgt for '%D' som er erklæret 'register'" + +-#: cp/typeck.c:4398 ++#: cp/typeck.c:4416 + #, fuzzy, c-format + msgid "%s expression list treated as compound expression" + msgstr "klargøringsliste behandlet som et sammensat udtryk" + +-#: cp/typeck.c:4472 ++#: cp/typeck.c:4490 + #, fuzzy + msgid "%s from type `%T' to type `%T' casts away constness" + msgstr "static_cast fra typen '%T' til typen '%T' fjerner konstanthed" + +-#: cp/typeck.c:4674 ++#: cp/typeck.c:4692 + msgid "invalid static_cast from type `%T' to type `%T'" + msgstr "ugyldig static_cast fra typen '%T' til typen '%T'" + +-#: cp/typeck.c:4714 ++#: cp/typeck.c:4732 + msgid "invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'" + msgstr "ugyldig reinterpret_cast af et højreværdiudtryk fra typen '%T' til typen '%T'" + +-#: cp/typeck.c:4734 ++#: cp/typeck.c:4752 + msgid "reinterpret_cast from `%T' to `%T' loses precision" + msgstr "reinterpret_cast fra '%T' til '%T' mister præcision" + +-#: cp/typeck.c:4753 ++#: cp/typeck.c:4771 + msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object" + msgstr "ISO C++ forbyder sammenligninger mellem henvisning til funktion og henvisning til objekt" + +-#: cp/typeck.c:4759 ++#: cp/typeck.c:4777 + msgid "invalid reinterpret_cast from type `%T' to type `%T'" + msgstr "ugyldig reinterpret_cast fra typen '%T' til typen '%T'" + +-#: cp/typeck.c:4787 ++#: cp/typeck.c:4805 + msgid "invalid use of const_cast with type `%T', which is not a pointer, reference, nor a pointer-to-data-member type" + msgstr "ugyldig brug af const_cast med typen '%T' som ikke er en henvisnings-, reference- eller en henvisning til datamedlem-type" + +-#: cp/typeck.c:4790 ++#: cp/typeck.c:4808 + msgid "invalid use of const_cast with type `%T', which is a pointer or reference to a function type" + msgstr "ugyldig brug af const_cast med typen '%T' som er en henvisning eller reference til funktion" + +-#: cp/typeck.c:4813 ++#: cp/typeck.c:4831 + msgid "invalid const_cast of an rvalue of type `%T' to type `%T'" + msgstr "ugyldig const_cast af en højreværdi fra typen '%T' til typen '%T'" + +-#: cp/typeck.c:4830 ++#: cp/typeck.c:4848 + msgid "invalid const_cast from type `%T' to type `%T'" + msgstr "ugyldig const_cast fra typen '%T' til typen '%T'" + +-#: cp/typeck.c:4870 cp/typeck.c:4875 ++#: cp/typeck.c:4888 cp/typeck.c:4893 + msgid "ISO C++ forbids casting to an array type `%T'" + msgstr "ISO C++ forbyder omtvingelse af typen til en tabeltype '%T'" + +-#: cp/typeck.c:4883 ++#: cp/typeck.c:4901 + msgid "invalid cast to function type `%T'" + msgstr "ugyldig omtvingelse til funktionstypen '%T'" + +-#: cp/typeck.c:4939 ++#: cp/typeck.c:4957 + msgid "cast from `%T' to `%T' discards qualifiers from pointer target type" + msgstr "typeomtvingning fra '%T' til '%T' kasserer modifikationer på henvisningsmålets type" + +-#: cp/typeck.c:4985 ++#: cp/typeck.c:5003 + msgid "cast from `%T' to `%T' increases required alignment of target type" + msgstr "typeomtvingning fra '%T' til '%T' forøger den påkrævede justering af målets type" + +-#: cp/typeck.c:5152 ++#: cp/typeck.c:5170 + msgid " in evaluation of `%Q(%#T, %#T)'" + msgstr " i evaluering af '%Q(%#T, %#T)'" + +-#: cp/typeck.c:5194 ++#: cp/typeck.c:5212 + msgid "ISO C++ forbids cast to non-reference type used as lvalue" + msgstr "ISO C++ forbyder omtvingelse af typen til en ikke-reference-type benyttet som venstreværdi" + +-#: cp/typeck.c:5267 ++#: cp/typeck.c:5285 + msgid "incompatible types in assignment of `%T' to `%T'" + msgstr "uforenelige typer i tildeling af '%T' til '%T'" + +-#: cp/typeck.c:5274 ++#: cp/typeck.c:5292 + msgid "ISO C++ forbids assignment of arrays" + msgstr "ISO C++ forbyder tildeling af tabeller" + +-#: cp/typeck.c:5374 ++#: cp/typeck.c:5392 + msgid " in pointer to member function conversion" + msgstr " i henvisning til medlemsfunktion-omdannelse" + +-#: cp/typeck.c:5382 ++#: cp/typeck.c:5400 + msgid " in pointer to member conversion" + msgstr " i henvisning til medlem-omdannelse" + + #. This is a reinterpret cast, we choose to do nothing. +-#: cp/typeck.c:5392 cp/typeck.c:5407 ++#: cp/typeck.c:5410 cp/typeck.c:5425 + #, fuzzy + msgid "pointer to member cast via virtual base `%T'" + msgstr "henvisning til medlem-typeomtvingning via den virtuelle stamklasse '%T' af '%T'" + +-#: cp/typeck.c:5410 ++#: cp/typeck.c:5428 + #, fuzzy + msgid "pointer to member conversion via virtual base `%T'" + msgstr "henvisning til medlem-omdannelse via den virtuelle stamklasse '%T' af '%T'" + +-#: cp/typeck.c:5480 ++#: cp/typeck.c:5498 + msgid "invalid conversion to type `%T' from type `%T'" + msgstr "ugyldig omdannelse til typen '%T' fra typen '%T'" + + # %s bliver til returnering eller tildeling eller noget i den retning +-#: cp/typeck.c:5636 ++#: cp/typeck.c:5657 + msgid "passing NULL used for non-pointer %s %P of `%D'" + msgstr "overbringelse af NULL benyttet for ikke-henvisnings%s %P af '%D'" + +-#: cp/typeck.c:5639 ++#: cp/typeck.c:5660 + msgid "%s to non-pointer type `%T' from NULL" + msgstr "%s til ikke-henvisningstypen '%T' fra NULL" + +-#: cp/typeck.c:5647 ++#: cp/typeck.c:5668 + msgid "passing `%T' for %s %P of `%D'" + msgstr "overbringelse af '%T' for ikke-henvisnings%s %P af '%D'" + +-#: cp/typeck.c:5650 ++#: cp/typeck.c:5671 + msgid "%s to `%T' from `%T'" + msgstr "%s til '%T' fra '%T'" + +-#: cp/typeck.c:5660 ++#: cp/typeck.c:5681 + msgid "passing negative value `%E' for %s %P of `%D'" + msgstr "overbringelse af negativ værdi '%E' for %s %P af '%D'" + +-#: cp/typeck.c:5663 ++#: cp/typeck.c:5684 + msgid "%s of negative value `%E' to `%T'" + msgstr "%s af negativ værdi '%E' til `%T'" + +-#: cp/typeck.c:5751 ++#: cp/typeck.c:5772 + msgid "cannot convert `%T' to `%T' for argument `%P' to `%D'" + msgstr "kan ikke konvertere '%T' til '%T' for parameter '%P' til '%D'" + +-#: cp/typeck.c:5754 ++#: cp/typeck.c:5775 + msgid "cannot convert `%T' to `%T' in %s" + msgstr "kan ikke konvertere '%T' til '%T' i %s" + +-#: cp/typeck.c:5831 cp/typeck.c:5833 ++#: cp/typeck.c:5852 cp/typeck.c:5854 + msgid "in passing argument %P of `%+D'" + msgstr "i overbringelse af parameter %P af '%+D'" + +-#: cp/typeck.c:5940 ++#: cp/typeck.c:5961 + msgid "returning reference to temporary" + msgstr "returnerer reference til midlertidig variabel" + +-#: cp/typeck.c:5947 ++#: cp/typeck.c:5968 + msgid "reference to non-lvalue returned" + msgstr "reference til ikke-venstreværdi returneret" + +-#: cp/typeck.c:5959 ++#: cp/typeck.c:5980 + msgid "reference to local variable `%D' returned" + msgstr "reference til den lokale variabel '%D' returneret" + +-#: cp/typeck.c:5962 ++#: cp/typeck.c:5983 + msgid "address of local variable `%D' returned" + msgstr "adresse af den lokale variabel '%D' returneret" + +-#: cp/typeck.c:5992 ++#: cp/typeck.c:6013 + msgid "returning a value from a destructor" + msgstr "returnerer en værdi fra en destruktionsfunktion" + + #. If a return statement appears in a handler of the + #. function-try-block of a constructor, the program is ill-formed. +-#: cp/typeck.c:6000 ++#: cp/typeck.c:6021 + msgid "cannot return from a handler of a function-try-block of a constructor" + msgstr "kan ikke returnere fra en håndtering af en funktions-try-blok i en konstruktionsfunktion" + + #. You can't return a value from a constructor. +-#: cp/typeck.c:6003 ++#: cp/typeck.c:6024 + msgid "returning a value from a constructor" + msgstr "returnerer en værdi fra en konstruktionsfunktion" + +-#: cp/typeck.c:6026 ++#: cp/typeck.c:6047 + #, fuzzy + msgid "return-statement with no value, in function returning '%T'" + msgstr "'return' uden nogen værdi i en funktion der ikke returnerer void" + +-#: cp/typeck.c:6043 ++#: cp/typeck.c:6064 + #, fuzzy + msgid "return-statement with a value, in function returning 'void'" + msgstr "'return' med en værdi i en funktion der returnerer void" + +-#: cp/typeck.c:6065 ++#: cp/typeck.c:6086 + msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)" + msgstr "'operator new' må ikke returnere NULL medmindre den er erklæret 'throw()' (eller -fcheck-new er benyttet)" + +@@ -17676,124 +17703,124 @@ + msgid "cannot initialize arrays using this syntax" + msgstr "kan ikke tildele tabeller startværdier med denne syntaks" + +-#: cp/typeck2.c:545 ++#: cp/typeck2.c:535 + msgid "initializing array with parameter list" + msgstr "klargør tabel med en parameterliste" + +-#: cp/typeck2.c:600 ++#: cp/typeck2.c:590 + msgid "initializer for scalar variable requires one element" + msgstr "startværdien for en skalarvariabel kan kun bestå af ét element" + +-#: cp/typeck2.c:607 ++#: cp/typeck2.c:597 + msgid "braces around scalar initializer for `%T'" + msgstr "krøllede paranteser omkring skalarstartværdi for '%T'" + +-#: cp/typeck2.c:610 ++#: cp/typeck2.c:600 + msgid "ignoring extra initializers for `%T'" + msgstr "ignorerer ekstra startværdier for '%T'" + +-#: cp/typeck2.c:622 ++#: cp/typeck2.c:612 + msgid "variable-sized object of type `%T' may not be initialized" + msgstr "objekt af typen '%T' med variabel størrelse må ikke tildeles en startværdi" + +-#: cp/typeck2.c:632 ++#: cp/typeck2.c:622 + msgid "subobject of type `%T' must be initialized by constructor, not by `%E'" + msgstr "underobjekt af typen '%T' skal klargøres af en konstruktionsfunktion, ikke af '%E'" + +-#: cp/typeck2.c:697 ++#: cp/typeck2.c:687 + msgid "aggregate has a partly bracketed initializer" + msgstr "sammensat type har delvis indklammet startværdi" + +-#: cp/typeck2.c:735 cp/typeck2.c:840 ++#: cp/typeck2.c:725 cp/typeck2.c:830 + msgid "non-trivial labeled initializers" + msgstr "ikke-trivielle navngivne startværdier" + +-#: cp/typeck2.c:752 ++#: cp/typeck2.c:742 + msgid "non-empty initializer for array of empty elements" + msgstr "en startværdi der ikke er tom, tildeles til en tabel med tomme elementer" + +-#: cp/typeck2.c:806 ++#: cp/typeck2.c:796 + msgid "initializer list for object of class with virtual base classes" + msgstr "klargøringsliste for objekt af en klasse med virtuelle stamklasser" + +-#: cp/typeck2.c:812 ++#: cp/typeck2.c:802 + msgid "initializer list for object of class with base classes" + msgstr "klargøringsliste for objekt af en klasse med stamklasser" + +-#: cp/typeck2.c:818 ++#: cp/typeck2.c:808 + msgid "initializer list for object using virtual functions" + msgstr "klargøringsliste for objekt med virtuelle funktioner" + +-#: cp/typeck2.c:880 cp/typeck2.c:896 ++#: cp/typeck2.c:870 cp/typeck2.c:886 + msgid "missing initializer for member `%D'" + msgstr "manglende startværdi for medlemmet '%D'" + +-#: cp/typeck2.c:885 ++#: cp/typeck2.c:875 + msgid "uninitialized const member `%D'" + msgstr "konstant medlem '%D' uden startværdi" + +-#: cp/typeck2.c:887 ++#: cp/typeck2.c:877 + msgid "member `%D' with uninitialized const fields" + msgstr "medlem '%D' med konstante felter uden startværdi" + +-#: cp/typeck2.c:890 ++#: cp/typeck2.c:880 + msgid "member `%D' is uninitialized reference" + msgstr "medlemmet '%D' er en reference uden startværdi" + +-#: cp/typeck2.c:937 ++#: cp/typeck2.c:927 + msgid "index value instead of field name in union initializer" + msgstr "indeksværdi i stedet for feltnavn i union-startværdi" + +-#: cp/typeck2.c:949 ++#: cp/typeck2.c:939 + msgid "no field `%D' in union being initialized" + msgstr "intet felt '%D' i union der tildeles startværdi" + +-#: cp/typeck2.c:957 ++#: cp/typeck2.c:947 + msgid "union `%T' with no named members cannot be initialized" + msgstr "union '%T' uden navngivne elementer kan ikke tildeles startværdi" + +-#: cp/typeck2.c:993 ++#: cp/typeck2.c:983 + msgid "excess elements in aggregate initializer" + msgstr "for mange elementer i startværdi til sammensat type" + +-#: cp/typeck2.c:1102 ++#: cp/typeck2.c:1092 + msgid "circular pointer delegation detected" + msgstr "fundet en henvisningsefterfølgelse der går i ring" + +-#: cp/typeck2.c:1115 ++#: cp/typeck2.c:1105 + msgid "base operand of `->' has non-pointer type `%T'" + msgstr "grundoperanden til '->' har en ikke-henvisningstype '%T'" + +-#: cp/typeck2.c:1139 ++#: cp/typeck2.c:1129 + msgid "result of `operator->()' yields non-pointer result" + msgstr "resultatet af 'operator->()' er ikke en henvisning" + +-#: cp/typeck2.c:1141 ++#: cp/typeck2.c:1131 + msgid "base operand of `->' is not a pointer" + msgstr "grundoperanden til '->' er ikke en henvisning" + +-#: cp/typeck2.c:1164 ++#: cp/typeck2.c:1154 + msgid "`%E' cannot be used as a member pointer, since it is of type `%T'" + msgstr "'%E' kan ikke bruges som en medlemshenvisning eftersom udtrykkets type er '%T'" + +-#: cp/typeck2.c:1172 ++#: cp/typeck2.c:1162 + msgid "cannot apply member pointer `%E' to `%E', which is of non-aggregate type `%T'" + msgstr "kan ikke anvende medlemshenvisning '%E' på '%E' som er af den ikke-sammensatte type '%T'" + +-#: cp/typeck2.c:1182 ++#: cp/typeck2.c:1172 + msgid "member type `%T::' incompatible with object type `%T'" + msgstr "medlemstypen '%T::' uforenelige med objekttypen '%T'" + +-#: cp/typeck2.c:1398 ++#: cp/typeck2.c:1388 + msgid "call to function `%D' which throws incomplete type `%#T'" + msgstr "kald af en funktion '%D' som kaster en ufuldstændig type '%#T'" + +-#: cp/typeck2.c:1401 ++#: cp/typeck2.c:1391 + msgid "call to function which throws incomplete type `%#T'" + msgstr "kald af en funktion som kaster en ufuldstændig type '%#T'" + + #. XXX Not i18n clean. +-#: cp/cp-tree.h:3756 ++#: cp/cp-tree.h:3775 + #, c-format + msgid "%s is deprecated, please see the documentation for details" + msgstr "%s er forældet, se venligst dokumentationen for detaljer" +@@ -19358,291 +19385,228 @@ + msgid "internal error - invalid Utf8 name" + msgstr "intern fejl - ugyldigt UTF-8-navn" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse-scan.y:880 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:949 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1290 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1351 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1555 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1777 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1786 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1797 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1808 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1820 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1835 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1852 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1854 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1935 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2106 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2168 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2320 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2332 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2339 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2346 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2357 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2359 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2397 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2399 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2401 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2422 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2424 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2426 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2442 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2444 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2465 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2467 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2469 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2497 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2499 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2501 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2503 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2521 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2523 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2534 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2545 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2556 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2567 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2578 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2591 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2595 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2597 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2610 ++#: ../../gcc/java/parse-scan.y:880 ../../gcc/java/parse.y:949 ++#: ../../gcc/java/parse.y:1290 ../../gcc/java/parse.y:1351 ++#: ../../gcc/java/parse.y:1555 ../../gcc/java/parse.y:1777 ++#: ../../gcc/java/parse.y:1786 ../../gcc/java/parse.y:1797 ++#: ../../gcc/java/parse.y:1808 ../../gcc/java/parse.y:1820 ++#: ../../gcc/java/parse.y:1835 ../../gcc/java/parse.y:1852 ++#: ../../gcc/java/parse.y:1854 ../../gcc/java/parse.y:1935 ++#: ../../gcc/java/parse.y:2106 ../../gcc/java/parse.y:2168 ++#: ../../gcc/java/parse.y:2320 ../../gcc/java/parse.y:2332 ++#: ../../gcc/java/parse.y:2339 ../../gcc/java/parse.y:2346 ++#: ../../gcc/java/parse.y:2357 ../../gcc/java/parse.y:2359 ++#: ../../gcc/java/parse.y:2397 ../../gcc/java/parse.y:2399 ++#: ../../gcc/java/parse.y:2401 ../../gcc/java/parse.y:2422 ++#: ../../gcc/java/parse.y:2424 ../../gcc/java/parse.y:2426 ++#: ../../gcc/java/parse.y:2442 ../../gcc/java/parse.y:2444 ++#: ../../gcc/java/parse.y:2465 ../../gcc/java/parse.y:2467 ++#: ../../gcc/java/parse.y:2469 ../../gcc/java/parse.y:2497 ++#: ../../gcc/java/parse.y:2499 ../../gcc/java/parse.y:2501 ++#: ../../gcc/java/parse.y:2503 ../../gcc/java/parse.y:2521 ++#: ../../gcc/java/parse.y:2523 ../../gcc/java/parse.y:2534 ++#: ../../gcc/java/parse.y:2545 ../../gcc/java/parse.y:2556 ++#: ../../gcc/java/parse.y:2567 ../../gcc/java/parse.y:2578 ++#: ../../gcc/java/parse.y:2591 ../../gcc/java/parse.y:2595 ++#: ../../gcc/java/parse.y:2597 ../../gcc/java/parse.y:2610 + msgid "Missing term" + msgstr "Manglende term" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse-scan.y:882 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:721 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:759 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:784 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:970 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1325 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1531 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1533 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1762 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1788 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1799 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1810 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1822 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1837 ++#: ../../gcc/java/parse-scan.y:882 ../../gcc/java/parse.y:721 ++#: ../../gcc/java/parse.y:759 ../../gcc/java/parse.y:784 ++#: ../../gcc/java/parse.y:970 ../../gcc/java/parse.y:1325 ++#: ../../gcc/java/parse.y:1531 ../../gcc/java/parse.y:1533 ++#: ../../gcc/java/parse.y:1762 ../../gcc/java/parse.y:1788 ++#: ../../gcc/java/parse.y:1799 ../../gcc/java/parse.y:1810 ++#: ../../gcc/java/parse.y:1822 ../../gcc/java/parse.y:1837 + msgid "';' expected" + msgstr "';' forventet" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:719 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:757 ++#: ../../gcc/java/parse.y:719 ../../gcc/java/parse.y:757 + msgid "Missing name" + msgstr "Manglende navn" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:782 ++#: ../../gcc/java/parse.y:782 + msgid "'*' expected" + msgstr "'*' forventet" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:796 ++#: ../../gcc/java/parse.y:796 + msgid "Class or interface declaration expected" + msgstr "Klasse- eller grænsefladeerklæring forventet" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:833 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:835 ++#: ../../gcc/java/parse.y:833 ../../gcc/java/parse.y:835 + msgid "Missing class name" + msgstr "Manglende klassenavn" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:838 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:842 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:850 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1010 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1271 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1273 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1597 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1848 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1880 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1942 ++#: ../../gcc/java/parse.y:838 ../../gcc/java/parse.y:842 ++#: ../../gcc/java/parse.y:850 ../../gcc/java/parse.y:1010 ++#: ../../gcc/java/parse.y:1271 ../../gcc/java/parse.y:1273 ++#: ../../gcc/java/parse.y:1597 ../../gcc/java/parse.y:1848 ++#: ../../gcc/java/parse.y:1880 ../../gcc/java/parse.y:1942 + msgid "'{' expected" + msgstr "'{' forventet" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:852 ++#: ../../gcc/java/parse.y:852 + msgid "Missing super class name" + msgstr "Manglende superklassenavn" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:862 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:878 ++#: ../../gcc/java/parse.y:862 ../../gcc/java/parse.y:878 + msgid "Missing interface name" + msgstr "Manglende grænsefladenavn" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:964 ++#: ../../gcc/java/parse.y:964 + msgid "Missing variable initializer" + msgstr "Manglende variabelstartværdi" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:981 ++#: ../../gcc/java/parse.y:981 + msgid "Invalid declaration" + msgstr "Ugyldig erklæring" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:984 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1069 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2143 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2165 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2169 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2204 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2281 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2291 ++#: ../../gcc/java/parse.y:984 ../../gcc/java/parse.y:1069 ++#: ../../gcc/java/parse.y:2143 ../../gcc/java/parse.y:2165 ++#: ../../gcc/java/parse.y:2169 ../../gcc/java/parse.y:2204 ++#: ../../gcc/java/parse.y:2281 ../../gcc/java/parse.y:2291 + msgid "']' expected" + msgstr "']' forventet" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:988 ++#: ../../gcc/java/parse.y:988 + msgid "Unbalanced ']'" + msgstr "Uafbalanceret ']'" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1024 ++#: ../../gcc/java/parse.y:1024 + msgid "Invalid method declaration, method name required" + msgstr "Ugyldig metodeerklæring, metodenavn påkrævet" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1029 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1034 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1039 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2026 ++#: ../../gcc/java/parse.y:1029 ../../gcc/java/parse.y:1034 ++#: ../../gcc/java/parse.y:1039 ../../gcc/java/parse.y:2026 + msgid "Identifier expected" + msgstr "Kaldenavn forventet" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1044 ++#: ../../gcc/java/parse.y:1044 + msgid "Invalid method declaration, return type required" + msgstr "Ugyldig metodeerklæring, returtype påkrævet" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1067 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1511 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1518 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1527 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1529 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1557 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1665 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1971 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2024 ++#: ../../gcc/java/parse.y:1067 ../../gcc/java/parse.y:1511 ++#: ../../gcc/java/parse.y:1518 ../../gcc/java/parse.y:1527 ++#: ../../gcc/java/parse.y:1529 ../../gcc/java/parse.y:1557 ++#: ../../gcc/java/parse.y:1665 ../../gcc/java/parse.y:1971 ++#: ../../gcc/java/parse.y:2024 + msgid "')' expected" + msgstr "')' forventet" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1083 ++#: ../../gcc/java/parse.y:1083 + msgid "Missing formal parameter term" + msgstr "Manglende formel parameterterm" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1098 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1103 ++#: ../../gcc/java/parse.y:1098 ../../gcc/java/parse.y:1103 + msgid "Missing identifier" + msgstr "Manglende kaldenavn" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1123 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1132 ++#: ../../gcc/java/parse.y:1123 ../../gcc/java/parse.y:1132 + msgid "Missing class type term" + msgstr "Manglende klassetypeterm" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1288 ++#: ../../gcc/java/parse.y:1288 + msgid "Invalid interface type" + msgstr "Ugyldig grænsefladetype" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1475 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1644 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1646 ++#: ../../gcc/java/parse.y:1475 ../../gcc/java/parse.y:1644 ++#: ../../gcc/java/parse.y:1646 + msgid "':' expected" + msgstr "':' forventet" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1497 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1502 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1507 ++#: ../../gcc/java/parse.y:1497 ../../gcc/java/parse.y:1502 ++#: ../../gcc/java/parse.y:1507 + msgid "Invalid expression statement" + msgstr "Ugyldig udtrykssætning" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1525 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1553 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1593 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1661 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1729 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1850 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1928 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2018 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2020 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2028 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2264 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2266 ++#: ../../gcc/java/parse.y:1525 ../../gcc/java/parse.y:1553 ++#: ../../gcc/java/parse.y:1593 ../../gcc/java/parse.y:1661 ++#: ../../gcc/java/parse.y:1729 ../../gcc/java/parse.y:1850 ++#: ../../gcc/java/parse.y:1928 ../../gcc/java/parse.y:2018 ++#: ../../gcc/java/parse.y:2020 ../../gcc/java/parse.y:2028 ++#: ../../gcc/java/parse.y:2264 ../../gcc/java/parse.y:2266 + msgid "'(' expected" + msgstr "'(' forventet" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1595 ++#: ../../gcc/java/parse.y:1595 + msgid "Missing term or ')'" + msgstr "Manglende term eller ')'" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1642 ++#: ../../gcc/java/parse.y:1642 + msgid "Missing or invalid constant expression" + msgstr "Manglende eller ugyldigt konstant udtryk" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1663 ++#: ../../gcc/java/parse.y:1663 + msgid "Missing term and ')' expected" + msgstr "Manglende term eller ')' forventet" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1702 ++#: ../../gcc/java/parse.y:1702 + msgid "Invalid control expression" + msgstr "Ugyldigt kontroludtryk" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1704 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1706 ++#: ../../gcc/java/parse.y:1704 ../../gcc/java/parse.y:1706 + msgid "Invalid update expression" + msgstr "Ugyldigt opdateringsudtryk" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1731 ++#: ../../gcc/java/parse.y:1731 + msgid "Invalid init statement" + msgstr "Ugyldig klargøringssætning" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1931 ++#: ../../gcc/java/parse.y:1931 + msgid "Missing term or ')' expected" + msgstr "Manglende term eller ')' forventet" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1973 ++#: ../../gcc/java/parse.y:1973 + msgid "'class' or 'this' expected" + msgstr "'class' eller 'this' forventet" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1975 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1977 ++#: ../../gcc/java/parse.y:1975 ../../gcc/java/parse.y:1977 + msgid "'class' expected" + msgstr "'class' forventet" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2022 ++#: ../../gcc/java/parse.y:2022 + msgid "')' or term expected" + msgstr "')' eller term forventet" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2141 ++#: ../../gcc/java/parse.y:2141 + msgid "'[' expected" + msgstr "'[' forventet" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2219 ++#: ../../gcc/java/parse.y:2219 + msgid "Field expected" + msgstr "Felt forventet" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2276 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2286 ++#: ../../gcc/java/parse.y:2276 ../../gcc/java/parse.y:2286 + msgid "Missing term and ']' expected" + msgstr "Manglende term og ']' forventet" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2390 ++#: ../../gcc/java/parse.y:2390 + msgid "']' expected, invalid type expression" + msgstr "']' forventet, ugyldigt typeudtryk" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2393 ++#: ../../gcc/java/parse.y:2393 + msgid "Invalid type expression" + msgstr "Ugyldigt typeudtryk" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2505 ++#: ../../gcc/java/parse.y:2505 + msgid "Invalid reference type" + msgstr "Ugyldig referencetype" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2977 ++#: ../../gcc/java/parse.y:2977 + msgid "Constructor invocation must be first thing in a constructor" + msgstr "Konstruktionsfunktionskald skal være det første i en konstruktionsfunktion" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2979 ++#: ../../gcc/java/parse.y:2979 + msgid "Only constructors can invoke constructors" + msgstr "Kun konstruktionsfunktioner kan kalde konstruktionsfunktioner" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2987 ++#: ../../gcc/java/parse.y:2987 + #, c-format + msgid ": `%s' JDK1.1(TM) feature" + msgstr ": '%s' JDK1.1(TM)-facilitet" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:3046 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:3048 ++#: ../../gcc/java/parse.y:3046 ../../gcc/java/parse.y:3048 + #, c-format + msgid "" + "%s.\n" +@@ -19651,32 +19615,32 @@ + "%s.\n" + "%s" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:6909 ++#: ../../gcc/java/parse.y:6909 + #, c-format + msgid "malformed .zip archive in CLASSPATH: %s" + msgstr "ugyldigt udformet .zip-arkiv i CLASSPATH: %s" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:6980 ++#: ../../gcc/java/parse.y:6980 + #, c-format + msgid "Can't find default package `%s'. Check the CLASSPATH environment variable and the access to the archives" + msgstr "Kan ikke finde standardpakken '%s'. Kontrollér CLASSPATH-miljøvariablen og tilgangen til arkiverne" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12193 ++#: ../../gcc/java/parse.y:12193 + #, c-format + msgid "missing static field `%s'" + msgstr "manglende statisk felt '%s'" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12198 ++#: ../../gcc/java/parse.y:12198 + #, c-format + msgid "not a static field `%s'" + msgstr "ikke et statisk felt '%s'" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12241 ++#: ../../gcc/java/parse.y:12241 + #, c-format + msgid "No case for %s" + msgstr "Ingen case for %s" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:13173 ++#: ../../gcc/java/parse.y:13173 + #, c-format + msgid "unregistered operator %s" + msgstr "ikke-registreret operator %s" +@@ -20018,1864 +19982,1515 @@ + msgid "[super ...] must appear in a method context" + msgstr "[super ...] skal optræde i en metodekontekst" + +-#: objc/objc-parse.y:2701 ++#: objc/objc-parse.y:2700 + msgid "`@end' must appear in an implementation context" + msgstr "'@end' skal optræde i en implementationskontekst" + +-#: objc/objc-parse.y:2914 ++#: objc/objc-parse.y:2913 + msgid "method definition not in class context" + msgstr "metodedefinitionen optræder ikke i en klassekontekst" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:23 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:21 + #, fuzzy + msgid "Display this information" + msgstr " --help Vis disse oplysninger\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:29 +-msgid "--param =\tSet paramter to value. See below for a complete list of parameters" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:27 ++msgid "--param =\tSet parameter to value. See below for a complete list of parameters" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:38 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:36 + msgid "-A=\tAssert the to . Putting '-' before disables the to " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:41 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:39 + #, fuzzy + msgid "Do not discard comments" + msgstr "Deaktivér ikke pladsregistre" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:44 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:42 + msgid "Do not discard comments in macro expansions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:47 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:45 + msgid "-D[=]\tDefine a with as its value. If just is given, is taken to be 1" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:53 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:51 + #, fuzzy + msgid "-G\tPut global and static data smaller than bytes into a special section (on some targets)" + msgstr " -G Anbring globale og statiske data mindre end byte i en specialsektion (på nogle målarkitekturer)\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:56 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:54 + #, fuzzy + msgid "Print the name of header files as they are used" + msgstr "Udskriv navne på programenheder efterhånden som de oversættes" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:65 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:57 ++msgid "-I \tAdd to the end of the main include path. -I- gives more include path control; see info documentation" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:60 ++#, fuzzy ++msgid "Generate make dependencies" ++msgstr "Generér lilleendet kode" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:63 + #, fuzzy + msgid "Generate make dependencies and compile" + msgstr "Generér lilleendet kode" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:74 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:66 ++msgid "-MF \tWrite dependency output to the given file" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:69 + msgid "Treat missing header files as generated files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:80 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:72 ++msgid "Like -M but ignore system header files" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:75 + msgid "Like -MD but ignore system header files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:89 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:78 ++#, fuzzy ++msgid "Generate phony targets for all headers" ++msgstr "Generér kode til Intel as" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:81 + msgid "-MQ \tAdd a MAKE-quoted target" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:95 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:84 ++msgid "-MT \tAdd an unquoted target" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:87 + #, fuzzy + msgid "-O\tSet optimization level to " + msgstr " -O[tal] Sæt optimeringsniveauet til [tal]\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:98 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:90 + #, fuzzy + msgid "Optimize for space rather than speed" + msgstr " -Os Optimér mht. plads i stedet for hastighed\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:101 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:93 + #, fuzzy + msgid "Do not generate #line directives" + msgstr "Generér ikke .size-direktiver" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:104 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:96 + msgid "-U\tUndefine " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:107 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:99 + #, fuzzy + msgid "This switch is deprecated; use -Wextra instead" + msgstr "Angiv klassesti (forældet: benyt --classpath i stedet)" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:113 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:105 + msgid "Warn about returning structures, unions or arrays" + msgstr "Advar om returnering af struct, union og tabeller" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:119 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:108 ++msgid "Enable most warning messages" ++msgstr "Aktivér de fleste advarselsbeskeder" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:111 + msgid "Warn about casting functions to incompatible types" + msgstr "Advar om omtvingning af funktioner til ikke-kompatible typer" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:122 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:114 + msgid "Warn about pointer casts which increase alignment" + msgstr "Advar om typeomtvingning af henvisninger som forøger justeringen" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:125 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:117 + msgid "Warn about casts which discard qualifiers" + msgstr "Advar om typeomtvingninger som forkaster modifikationer" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:128 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:120 + #, fuzzy + msgid "Warn about subscripts whose type is \"char\"" + msgstr "Advar som tabelindeksering hvis type er 'char'" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:137 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:123 ++msgid "Warn about possibly nested block comments, and C++ comments spanning more than one physical line" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:126 ++msgid "Synonym for -Wcomment" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:129 + msgid "Warn about possibly confusing type conversions" + msgstr "Advar om typekonverteringer der kan være forvirrende" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:140 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:132 + #, fuzzy + msgid "Warn when all constructors and destructors are private" + msgstr "Advar ikke når alle konstruktions-/destruktionsfunktioner er private" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:143 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:135 + #, fuzzy + msgid "Warn when a declaration is found after a statement" + msgstr "Advar når en erklæring ikke angiver en type" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:146 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:138 + #, fuzzy +-msgid "Warn if deprecated class, method, or field is used" +-msgstr "Advar hvis forældede tomme sætninger bliver fundet" ++msgid "Warn about deprecated compiler features" ++msgstr "Annoncér ikke forældelse af oversætterfaciliteter" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:149 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:141 + msgid "Warn about uses of __attribute__((deprecated)) declarations" + msgstr "Advar om brug af __attribute__((deprecated))-erklæringer" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:152 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:144 + msgid "Warn when an optimization pass is disabled" + msgstr "Advar når en optimeringsfase deaktiveres" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:155 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:147 + #, fuzzy + msgid "Warn about compile-time integer division by zero" + msgstr "Advar ikke om heltalsdivision på oversættelsestidspunktet med nul" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:158 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:150 + msgid "Warn about violations of Effective C++ style rules" + msgstr "Advar om overtrædelser af stilreglerne fra Effective C++" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:161 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:153 + msgid "Warn about stray tokens after #elif and #endif" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:164 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:156 + msgid "Treat all warnings as errors" + msgstr "Behandl alle advarsler som fejl" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:167 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:159 + #, fuzzy + msgid "Make implicit function declarations an error" + msgstr "Advar om underforståede funktionserklæringer" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:170 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:162 + msgid "Print extra (possibly unwanted) warnings" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:173 +-msgid "Warn if deprecated empty statements are found" +-msgstr "Advar hvis forældede tomme sætninger bliver fundet" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:176 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:165 + #, fuzzy + msgid "Warn if testing floating point numbers for equality" + msgstr "Advar om lighedssammenligninger mellem kommatal" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:179 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:168 + #, fuzzy + msgid "Warn about printf/scanf/strftime/strfmon format string anomalies" + msgstr "Advar om printf/scanf/strftime/strfmon-formateringsanormaliteter" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:182 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:171 + #, fuzzy + msgid "Warn if passing too many arguments to a function for its format string" + msgstr "for mange parametre til funktionen 'va_start'" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:185 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:174 + #, fuzzy + msgid "Warn about format strings that are not literals" + msgstr "Advar om brug af multitegnskonstanter" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:188 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:177 + msgid "Warn about possible security problems with format functions" + msgstr "Advar om mulige sikkerhedsproblemer i forbindelse med formateringsfunktioner" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:191 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:180 + #, fuzzy + msgid "Warn about strftime formats yielding 2-digit years" + msgstr "Advar ikke om strftime-formateringer med 2-cifres år" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:200 +-#, fuzzy +-msgid "Enable warnings about inter-procedural problems" +-msgstr "Deaktivér advarsler om interprocedurale problemer" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:206 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:192 + msgid "Warn about implicit function declarations" + msgstr "Advar om underforståede funktionserklæringer" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:209 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:195 + msgid "Warn when a declaration does not specify a type" + msgstr "Advar når en erklæring ikke angiver en type" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:215 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:198 ++msgid "Deprecated. This switch has no effect." ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:201 + msgid "Warn about variables which are initialized to themselves." + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:218 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:204 + msgid "Warn when an inlined function cannot be inlined" + msgstr "Advar når en inline funktion ikke kan indbygges" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:221 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:207 + #, fuzzy + msgid "Warn about invalid uses of the \"offsetof\" macro" + msgstr "Advar om brug af #import-direktivet" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:224 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:210 + msgid "Warn about PCH files that are found but not used" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:227 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:213 + #, fuzzy + msgid "-Wlarger-than-\tWarn if an object is larger than bytes" + msgstr " -Wlarger-than- Advar hvis et objekt er større end byte\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:230 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:216 + #, fuzzy + msgid "Do not warn about using \"long long\" when -pedantic" + msgstr "Advar ikke om brug af 'long long' når -pedantic benyttes" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:233 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:219 + #, fuzzy + msgid "Warn about suspicious declarations of \"main\"" + msgstr "Advar om mistænkelige erklæringer af main" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:236 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:222 + msgid "Warn about possibly missing braces around initializers" + msgstr "Advar om mulige manglende krøllede paranteser omkring startværdier" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:239 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:225 + #, fuzzy + msgid "Warn about global functions without previous declarations" + msgstr "Advar om globale funktioner uden tidligere erklæringer" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:242 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:228 + msgid "Warn about functions which might be candidates for format attributes" + msgstr "Advar om funktioner som kan være kandidater til formateringsegenskaber" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:245 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:231 + #, fuzzy + msgid "Warn about functions which might be candidates for __attribute__((noreturn))" + msgstr "Advar om funktioner som kan være kandidater til egenskaben noreturn" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:248 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:234 + #, fuzzy + msgid "Warn about global functions without prototypes" + msgstr "Advar om globale funktioner uden prototyper" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:251 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:237 + #, fuzzy + msgid "Warn about use of multi-character character constants" + msgstr "Advar om brug af multitegnskonstanter" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:254 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:240 + #, fuzzy + msgid "Warn about \"extern\" declarations not at file scope" + msgstr "Advar om extern-erklæringer som ikke er ved filvirkefeltsniveauet" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:257 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:243 + #, fuzzy + msgid "Warn when non-templatized friend functions are declared within a template" + msgstr "Advar ikke når ikke-skabelonsvennefunktioner erklæres inde i en skabelon" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:260 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:246 + #, fuzzy + msgid "Warn about non-virtual destructors" + msgstr "Advar om ikke-virtuelle destruktionsfunktioner" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:266 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:252 + #, fuzzy + msgid "Warn if a C-style cast is used in a program" + msgstr "Advar hvis en typeomtvingning i C-stil benyttes" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:269 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:255 + #, fuzzy + msgid "Warn if an old-style parameter definition is used" + msgstr "Advar når en funktionsparameter ikke benyttes" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:272 +-msgid "Warn if .class files are out of date" +-msgstr "Advar hvis .class-filer er forældede" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:275 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:258 + msgid "Warn about overloaded virtual function names" + msgstr "Advar om flertydige virtuelle funktionsnavne" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:278 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:261 + msgid "Warn when the packed attribute has no effect on struct layout" + msgstr "Advar når packed-egenskaben ikke har nogen effekt på struct-layoutet" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:281 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:264 + #, fuzzy + msgid "Warn when padding is required to align structure members" + msgstr "Advar når udfyldning er påkrævet for at justere struct-medlemmer" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:284 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:267 + #, fuzzy + msgid "Warn about possibly missing parentheses" + msgstr "Advar om mulige manglende paranteser" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:287 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:270 + #, fuzzy + msgid "Warn when converting the type of pointers to member functions" + msgstr "Advar ikke ved typeomdannelse af henvisninger til medlemsfunktioner" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:290 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:273 + msgid "Warn about function pointer arithmetic" + msgstr "Advar om beregninger på funktionshenvisninger" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:293 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:276 + #, fuzzy + msgid "Warn if inherited methods are unimplemented" + msgstr "Advar ikk hvis nedarvede metoder ikke implementeres" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:296 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:279 + msgid "Warn about multiple declarations of the same object" + msgstr "Advar om flere erklæring af det samme objekt" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:299 +-msgid "Warn if modifiers are specified when not necessary" +-msgstr "Advar hvis modifikationer angives når det ikke er nødvendigt" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:302 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:282 + msgid "Warn when the compiler reorders code" + msgstr "Advar når oversætteren ændrer på ordenen af kode" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:305 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:285 + #, fuzzy + msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)" + msgstr "Advar når en funktions returtype antages at være int" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:308 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:288 + msgid "Warn if a selector has multiple methods" + msgstr "Advar hvis en vælger har flere metoder" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:311 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:291 + msgid "Warn about possible violations of sequence point rules" + msgstr "Advar om mulige brud på sekvenspunktreglerne" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:314 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:294 + msgid "Warn when one local variable shadows another" + msgstr "Advar når en lokal variabel skygger for en anden" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:317 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:297 + #, fuzzy + msgid "Warn about signed-unsigned comparisons" + msgstr "Advar om sammenligninger mellem typer med og uden fortegn" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:320 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:300 + msgid "Warn when overload promotes from unsigned to signed" + msgstr "Advar når flertydiggørelse forfremmer fra unsigned til signed" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:323 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:303 + #, fuzzy + msgid "Warn about code which might break strict aliasing rules" + msgstr "Advar om kode som kan bryde strenge aliasregler" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:326 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:306 + #, fuzzy + msgid "Warn about unprototyped function declarations" + msgstr "Advar om funktionserklæringer uden prototype" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:329 +-msgid "Warn about constructs with surprising meanings" +-msgstr "Advar om konstruktioner med overraskende betydninger" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:332 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:309 + msgid "Warn about enumerated switches, with no default, missing a case" + msgstr "Advar om switch-sætninger over enum-typer som mangler et tilfælde og ikke har default" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:335 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:312 + #, fuzzy + msgid "Warn about enumerated switches missing a \"default:\" statement" + msgstr "Advar om switch-sætninger over enum-typer som mangler default" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:338 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:315 + msgid "Warn about all enumerated switches missing a specific case" + msgstr "Advar om alle switch-sætninger over enum-typer som mangler et bestemt tilfælde" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:341 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:318 + msgid "Warn when synthesis behavior differs from Cfront" + msgstr "Advar når synteseopførslen adskiller sig fra Cfront" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:344 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:321 + msgid "Do not suppress warnings from system headers" + msgstr "Undertryk ikke advarsler fra systeminkluderingsfiler" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:347 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:324 + #, fuzzy + msgid "Warn about features not present in traditional C" + msgstr "foreslår undladelse af brug af #elif i traditionel C" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:356 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:327 ++msgid "Warn if trigraphs are encountered that might affect the meaning of the program" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:333 + #, fuzzy + msgid "Warn if an undefined macro is used in an #if directive" + msgstr "ugyldigt eller ikke-defineret #-direktiv" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:359 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:336 + msgid "Warn about uninitialized automatic variables" + msgstr "Advar om ikke-klargjorte automatiske variabler" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:362 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:339 + msgid "Warn about unrecognized pragmas" + msgstr "Advar om ukendte pragmaer" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:365 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:342 + msgid "Warn about code that will never be executed" + msgstr "Advar om kode som aldrig bliver udført" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:368 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:345 + msgid "Enable all -Wunused- warnings" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:371 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:348 + msgid "Warn when a function is unused" + msgstr "Advar når en funktion ikke benyttes" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:374 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:351 + msgid "Warn when a label is unused" + msgstr "Advar når en etiket ikke benyttes" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:377 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:354 + msgid "Warn about macros defined in the main file that are not used" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:380 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:357 + msgid "Warn when a function parameter is unused" + msgstr "Advar når en funktionsparameter ikke benyttes" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:383 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:360 + msgid "Warn when an expression value is unused" + msgstr "Advar når værdien af et udtryk ikke benyttes" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:386 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:363 + msgid "Warn when a variable is unused" + msgstr "Advar når en variabel ikke benyttes" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:389 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:366 + msgid "Give strings the type \"array of char\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:392 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:369 + msgid "A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:395 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:372 + #, fuzzy + msgid "-aux-info \tEmit declaration information into " + msgstr " -aux-info Udskriv erklæringsoplysninger til \n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:407 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:384 + #, fuzzy + msgid "-d\tEnable dumps from specific passes of the compiler" + msgstr " -d[bogstaver] Aktivér dump fra specifikke faser i oversætteren\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:410 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:387 + #, fuzzy + msgid "-dumpbase \tSet the file basename to be used for dumps" + msgstr " -dumpbase Basisnavn til brug for dump fra specifikke faser\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:413 +-#, fuzzy +-msgid "--CLASSPATH\tDeprecated; use --classpath instead" +-msgstr "Angiv klassesti (forældet: benyt --classpath i stedet)" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:425 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:399 + #, fuzzy + msgid "Enforce class member access control semantics" + msgstr "Adlyd ikke tilgangskontrolsemantikker" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:428 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:402 + msgid "Align the start of functions" + msgstr "Justér begyndelsen af funktioner" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:434 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:408 + msgid "Align labels which are only reached by jumping" + msgstr "Justér etiketter som kun nås ved spring" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:440 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:414 + msgid "Align all labels" + msgstr "Justér alle etiketter" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:446 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:420 + msgid "Align the start of loops" + msgstr "Justér begyndelsen af løkker" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:455 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:429 + msgid "Change when template instances are emitted" + msgstr "Skift hvornår skabelonsinstanser udsendes" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:458 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:432 + #, fuzzy + msgid "Specify that arguments may alias each other and globals" + msgstr "Angiv at parametre kan være aliaser for hinanden og for globale variable" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:461 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:435 + msgid "Assume arguments may alias globals but not each other" + msgstr "Antag at parametre kan være aliaser for globale variable, men ikke for hinanden" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:464 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:438 + #, fuzzy + msgid "Assume arguments alias neither each other nor globals" + msgstr "Antag at parametre ikke er aliaser for hinanden eller for globale variable" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:467 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:441 + #, fuzzy + msgid "Recognize the \"asm\" keyword" + msgstr "Genkend ikke det reserverede ord 'asm'" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:479 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:444 + #, fuzzy + msgid "Generate unwind tables that are exact at each instruction boundary" + msgstr "Generér afvindingstabeller eksakt for hver instruktionsgrænse" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:482 +-#, fuzzy +-msgid "Do not treat local variables and COMMON blocks as if they were named in SAVE statements" +-msgstr "Behandl lokale variable og COMMON-blokke som om de var nævnt i SAVE-sætninger" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:485 +-#, fuzzy +-msgid "Backslashes in character and hollerith constants are special (not C-style)" +-msgstr "Omvendte skråstreger i tegn/hollerith-konstanter er ikke specielle (C-stil)" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:488 +-msgid "Delete libU77 intrinsics with bad interfaces" +-msgstr "Slet libU77-indbyggede med dårlige grænseflader" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:491 +-msgid "Disable libU77 intrinsics with bad interfaces" +-msgstr "Deaktivér libU77-indbyggede med dårlige grænseflader" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:494 +-#, fuzzy +-msgid "Enable libU77 intrinsics with bad interfaces" +-msgstr "Deaktivér libU77-indbyggede med dårlige grænseflader" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:497 +-msgid "Hide libU77 intrinsics with bad interfaces" +-msgstr "Skjul libU77-indbyggede med dårlige grænseflader" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:500 +-#, fuzzy +-msgid "--bootclasspath=\tReplace system path" +-msgstr "Erstat systemsti" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:503 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:447 + msgid "Generate code to check bounds before indexing arrays" + msgstr "Generér kode til at kontrollere grænserne før tabeller indekseres" + + # RETMIG: rigtig? +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:506 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:450 + #, fuzzy + msgid "Replace add, compare, branch with branch on count register" + msgstr "Erstat tilføj,sammenlign,forgrening med forgrening på tælleregister" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:509 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:453 + msgid "Use profiling information for branch probabilities" + msgstr "Benyt profileringsoplysninger til forgreningssandsynligheder" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:512 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:456 + msgid "Perform branch target load optimization before prologue / epilogue threading" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:515 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:459 + msgid "Perform branch target load optimization after prologue / epilogue threading" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:518 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:462 + #, fuzzy + msgid "Recognize built-in functions" + msgstr "Genkend ikke nogen indbyggede funktioner" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:524 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:468 + #, fuzzy + msgid "-fcall-saved-\tMark as being preserved across functions" + msgstr " -fcall-saved- Markér som værende bevaret over funktioner\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:527 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:471 + #, fuzzy + msgid "-fcall-used-\tMark as being corrupted by function calls" + msgstr " -fcall-used- Markér som værende benyttet af funktionskald\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:530 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:474 + #, fuzzy + msgid "Save registers around function calls" + msgstr "Aktivér gemning af registrer omkring funktionskald" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:533 +-msgid "Program written in strict mixed-case" +-msgstr "Program skrives med streng blanding af store/små bogstaver" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:536 +-msgid "Compile as if program written in lowercase" +-msgstr "Oversæt som hvis programmet var skrevet med små bogstaver" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:539 +-#, fuzzy +-msgid "Preserve case used in program" +-msgstr "Bevar al stavning (store/små bogstaver) benyttet i programmet" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:542 +-msgid "Program written in lowercase" +-msgstr "Program skrives med små bogstaver" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:545 +-msgid "Program written in uppercase" +-msgstr "Program skrives med store bogstaver" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:548 +-msgid "Compile as if program written in uppercase" +-msgstr "Oversæt som hvis programmet var skrevet med store bogstaver" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:551 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:477 + msgid "Check the return value of new" + msgstr "Kontrollér returværdien for new" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:557 +-msgid "--classpath=\tSet class path" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:560 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:480 + msgid "Do not put uninitialized globals in the common section" + msgstr "Anbring ikke uklargjorte globale variabler i den fælles sektion" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:566 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:483 + #, fuzzy + msgid "Allow the arguments of the '?' operator to have different types" + msgstr "operander til ?: har forskellige typer" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:569 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:486 + #, fuzzy + msgid "Reduce the size of object files" + msgstr "Reducér størrelsen af objektfiler" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:572 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:489 + #, fuzzy + msgid "Make string literals \"const char[]\" not \"char[]\"" + msgstr "Gør strengkonstanter til 'char[]' i stedet for 'const char[]'" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:575 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:492 + msgid "-fconst-string-class=\tUse class for constant strings" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:578 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:495 + #, fuzzy + msgid "Perform a register copy-propagation optimization pass" + msgstr "Foretag registerkopipropageringsoptimering" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:581 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:498 + msgid "Perform cross-jumping optimization" + msgstr "Udfør krydsspringsoptimering" + + # RETMIG: hvad er CSE? +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:584 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:501 + msgid "When running CSE, follow jumps to their targets" + msgstr "Ved kørsel af CSE følg spring til deres mål" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:587 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:504 + msgid "When running CSE, follow conditional jumps" + msgstr "Ved kørsel af CSE følg betingede spring" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:590 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:507 + #, fuzzy + msgid "Place data items into their own section" + msgstr "placér dataelementer i deres egen sektion" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:593 +-msgid "Emit special debugging information for COMMON and EQUIVALENCE (disabled)" +-msgstr "Udsend speciel fejlanalyseringsinfo for COMMON og EQUIVALENCE (deaktiveret)" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:596 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:510 + #, fuzzy + msgid "Inline member functions by default" + msgstr "Integrér ikke medlemsfunktioner som standard" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:599 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:513 + msgid "Defer popping functions args from stack until later" + msgstr "Vent med fjernelse af funktionsparametre fra stakken til senere" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:602 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:516 + msgid "Attempt to fill delay slots of branch instructions" + msgstr "Forsøg at udfylde ventepladser med forgreningsinstruktioner" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:605 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:519 + msgid "Delete useless null pointer checks" + msgstr "Fjern ubrugelige nul-henvisningstjek" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:608 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:522 + #, fuzzy + msgid "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source location at the beginning of line-wrapped diagnostics" + msgstr " -fdiagnostics-show-location=[once | every-line] Indikerer hvor ofte kildeplaceringsoplysninger skal udsendes som præfiks til begyndelsen af meddelelserne ved linjeombrydning\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:611 +-#, fuzzy +-msgid "Allow '$' in symbol names" +-msgstr "Tillad $ i symbolnavne" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:614 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:525 + #, fuzzy + msgid "Permit '$' as an identifier character" + msgstr "formatering er en bredtegnsstreng" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:620 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:528 ++msgid "-fdump-\tDump various compiler internals to a file" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:531 + msgid "Suppress output of instruction numbers and line number notes in debugging dumps" + msgstr "Undtryk udskrift af instruktionstal og linjenummernoter i fejlfindingsdump" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:626 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:537 + msgid "Perform DWARF2 duplicate elimination" + msgstr "Udfør DWARF2-eliminering af dubletter" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:629 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:632 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:540 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:543 + msgid "Perform unused type elimination in debug info" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:641 +-msgid "Have front end emulate COMPLEX arithmetic to avoid bugs" +-msgstr "Lad forenden emulere COMPLEX-beregninger for at undgå fejl" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:644 +-#, fuzzy +-msgid "--encoding=\tChoose input encoding (defaults from your locale)" +-msgstr "Vælg inddatakodning (standardværdi kommer fra regionalindstillinger)" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:647 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:546 + #, fuzzy + msgid "Generate code to check exception specifications" + msgstr "Generér ikke kode til at kontrollere undtagelsesspecifikationer" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:653 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:552 + msgid "Enable exception handling" + msgstr "Aktivér undtagelseshåndtering" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:656 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:555 + msgid "-fexec-charset=\tConvert all strings and character constants to character set " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:659 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:558 + msgid "Perform a number of minor, expensive optimizations" + msgstr "Udfør et antal mindre, dyre optimeringer" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:668 +-#, fuzzy +-msgid "f2c-compatible code can be generated" +-msgstr "f2c-kompatibel kode behøver ikke at blive genereret" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:671 +-msgid "Delete non-FORTRAN-77 intrinsics f2c supports" +-msgstr "Slet f2c-understøttelse af ikke-FORTRAN-77-indbyggede" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:674 +-msgid "Disable non-FORTRAN-77 intrinsics f2c supports" +-msgstr "Deaktivér f2c-understøttelse af ikke-FORTRAN-77-indbyggede" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:677 +-#, fuzzy +-msgid "Enable non-FORTRAN-77 intrinsics f2c supports" +-msgstr "Deaktivér f2c-understøttelse af ikke-FORTRAN-77-indbyggede" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:680 +-msgid "Hide non-FORTRAN-77 intrinsics f2c supports" +-msgstr "Skjul f2c-understøttelse af ikke-FORTRAN-77-indbyggede" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:683 +-#, fuzzy +-msgid "Unsupported; generate libf2c-calling code" +-msgstr "Ikke-understøttet; generér ikke libf2c-kaldende kode" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:686 +-msgid "Program is written in typical FORTRAN 66 dialect" +-msgstr "Program er skrevet i typisk FORTRAN 66-dialekt" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:689 +-#, fuzzy +-msgid "Program is written in typical Unix-f77 dialect" +-msgstr "Program er skrevet i typisk Unix f77-dialekt" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:692 +-msgid "Program is written in Fortran-90-ish dialect" +-msgstr "Program er skrevet i Fortran 90-agtig dialekt" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:695 +-msgid "Delete non-FORTRAN-77 intrinsics F90 supports" +-msgstr "Slet F90-understøttelse af ikke-FORTRAN-77-indbyggede " +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:698 +-msgid "Disable non-FORTRAN-77 intrinsics F90 supports" +-msgstr "Deaktivér F90-understøttelse af ikke-FORTRAN-77-indbyggede" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:701 +-#, fuzzy +-msgid "Enable non-FORTRAN-77 intrinsics F90 supports" +-msgstr "Deaktivér F90-understøttelse af ikke-FORTRAN-77-indbyggede" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:704 +-msgid "Hide non-FORTRAN-77 intrinsics F90 supports" +-msgstr "Skjul F90-understøttelse af ikke-FORTRAN-77-indbyggede" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:716 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:567 + #, fuzzy + msgid "Assume no NaNs or infinities are generated" + msgstr "Antag at ingen NaN eller +-Inf bliver genereret" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:719 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:570 + #, fuzzy + msgid "-ffixed-\tMark as being unavailable to the compiler" + msgstr " -ffixed- Markér som værende utilgængeligt for oversætteren\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:725 +-#, fuzzy +-msgid "ffixed-line-length-\tSet the maximum line length to " +-msgstr " -finline-limit= Begræns størrelsen af inlie funktion til \n" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:728 +-#, fuzzy +-msgid "Unsupported; affects code generation of arrays" +-msgstr "Ikke-understøttet; påvirker kodegenerering af tabeller" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:731 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:579 + msgid "Do not store floats in registers" + msgstr "Lagr ikke kommatal i registre" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:734 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:582 + #, fuzzy + msgid "Scope of for-init-statement variables is local to the loop" + msgstr "Udvid virkefeltet for variabler i for-klargøringssætninger" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:737 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:585 + #, fuzzy + msgid "Copy memory address constants into registers before use" + msgstr "Kopiér hukommelsesadressekonstanter ind i registre før brug" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:740 +-msgid "Always check for non gcj generated classes archives" +-msgstr "Kontrollér altid for ikke-GCJ-genererede klassearkiver" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:743 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:588 + #, fuzzy + msgid "Copy memory operands into registers before use" + msgstr "Kopiér hukommelsesoperander ind i registre før brug" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:746 +-msgid "Generate code to check subscript and substring bounds" +-msgstr "Generér kode for at tjekke indekserings- og understrengsgrænser" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:749 +-msgid "Program is written in Fortran-90-ish free form" +-msgstr "Program er skrevet i Fortran 90-agtig fri stil" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:752 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:591 + #, fuzzy + msgid "Do not assume that standard C libraries and \"main\" exist" + msgstr "Antag at standardbibliotekerne og main måske ikke eksisterer" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:755 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:594 + msgid "Allow function addresses to be held in registers" + msgstr "Tillad funktionsadresser at blive opbevaret i registre" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:758 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:597 + #, fuzzy + msgid "Place each function into its own section" + msgstr "placér hver funktion i dens egen sektion" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:761 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:600 + #, fuzzy + msgid "Perform global common subexpression elimination" + msgstr "Udfør global eliminering af fælles underudtryk" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:764 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:603 + #, fuzzy + msgid "Perform redundant load after store elimination in global common subexpression elimination" + msgstr "Udfør forbedret indlæsningsbevægelse under eliminering af fælles underudtryk" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:767 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:606 + #, fuzzy + msgid "Perform enhanced load motion during global common subexpression elimination" + msgstr "Udfør forbedret indlæsningsbevægelse under eliminering af fælles underudtryk" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:770 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:609 + #, fuzzy + msgid "Perform store motion after global common subexpression elimination" + msgstr "Udfør lagringsbevægelse efter eliminering af fælles underudtryk" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:773 +-#, fuzzy +-msgid "Enable fatal diagnostics about inter-procedural problems" +-msgstr "Deaktivér fatale diagnosticeringer af interprocedurale procedurer" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:776 +-msgid "Delete non-FORTRAN-77 intrinsics g77 supports" +-msgstr "Slet g77-understøttelse af ikke-FORTRAN-77-indbyggede " +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:779 +-msgid "Disable non-FORTRAN 77 intrinsics F90 supports" +-msgstr "Deaktivér g77-understøttelse af ikke-FORTRAN-77-indbyggede" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:782 +-#, fuzzy +-msgid "Enable non-FORTRAN 77 intrinsics F90 supports" +-msgstr "Deaktivér g77-understøttelse af ikke-FORTRAN-77-indbyggede" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:785 +-msgid "Hide non-FORTRAN 77 intrinsics F90 supports" +-msgstr "Skjul g77-understøttelse af ikke-FORTRAN-77-indbyggede" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:788 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:612 + #, fuzzy + msgid "Recognize GNU-defined keywords" + msgstr "Genkend ikke GNU-definerede reserverede ord" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:791 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:615 + msgid "Generate code for GNU runtime environment" + msgstr "Generér kode til GNU-kørselmiljø" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:794 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:618 + #, fuzzy + msgid "Enable guessing of branch probabilities" + msgstr "Aktivér gæt af forgreningssandsynligheder" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:809 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:630 + msgid "Assume normal C execution environment" + msgstr "Antag normalt C-kørselsmiljø" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:812 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:633 + msgid "Enable support for huge objects" + msgstr "Aktivér understøttelse af enorme objekter" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:815 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:636 + msgid "Process #ident directives" + msgstr "Behandl #ident-direktiver" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:818 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:639 + msgid "Perform conversion of conditional jumps to branchless equivalents" + msgstr "Udfør konvertering af betingede spring til forgreningsløse ækvivalenter" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:821 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:642 + msgid "Perform conversion of conditional jumps to conditional execution" + msgstr "Udfør konvertering af betingede spring til betinget udførsel" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:824 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:645 + msgid "Export functions even if they can be inlined" + msgstr "Eksportér funktioner også selvom de kan integreres" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:827 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:648 + #, fuzzy + msgid "Emit implicit instantiations of inline templates" + msgstr "Udsend kun eksplicitte instatieringer af indlejrede skabeloner" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:830 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:651 + #, fuzzy + msgid "Emit implicit instantiations of templates" + msgstr "Udsend kun eksplicitte instatieringer af indlejrede skabeloner" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:833 +-msgid "Use offset tables for virtual method calls" +-msgstr "Benyt afsætstabeller til virtuelle metodekald" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:836 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:654 + msgid "Do not generate .size directives" + msgstr "Generér ikke .size-direktiver" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:839 +-msgid "Initialize local vars and arrays to zero" +-msgstr "Klargør lokale variable og tabeller til nul" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:842 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:657 + #, fuzzy + msgid "Pay attention to the \"inline\" keyword" + msgstr "Læg mærke til 'inline'-nøgleordet" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:851 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:660 ++msgid "Integrate simple functions into their callers" ++msgstr "Integrér simple funktioner i deres kaldere" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:666 + #, fuzzy + msgid "-finline-limit=\tLimit the size of inlined functions to " + msgstr " -finline-limit= Begræns størrelsen af inlie funktion til \n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:854 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:669 + msgid "-finput-charset= Specify the default character set for source files." + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:857 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:672 + #, fuzzy + msgid "Instrument function entry and exit with profiling calls" + msgstr "Instrumentér funktionsindgange/-afslutninger med profileringskald" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:860 +-msgid "Intrinsics letters in arbitrary cases" +-msgstr "Der skelnes ikke mellem små og store bogstaver i indbyggede" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:863 +-msgid "Intrinsics spelled as e.g. SqRt" +-msgstr "Indbyggede staves som f.eks. SqRt" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:866 +-#, fuzzy +-msgid "Intrinsics in lowercase" +-msgstr "Indbyggede staves med store bogstaver" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:869 +-msgid "Intrinsics in uppercase" +-msgstr "Indbyggede staves med store bogstaver" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:872 +-msgid "Assume native functions are implemented using JNI" +-msgstr "Antag at indfødte funktioner er implementeret vha. JNI" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:875 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:675 + #, fuzzy + msgid "Generate code for functions even if they are fully inlined" + msgstr "Generér kode for funktioner selv hvis de indlejres helt" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:878 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:678 + msgid "Emit static const variables even if they are not used" + msgstr "Konstruér statiske, konstante variabler selv hvis de ikke bruges" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:884 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:684 + #, fuzzy + msgid "Give external symbols a leading underscore" + msgstr "Eksterne symboler har indledende understreg" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:887 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:687 + #, fuzzy + msgid "Perform loop optimizations" + msgstr "Udfør løkkeoptimeringerne" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:890 +-msgid "Language keyword letters in arbitrary cases" +-msgstr "Der skelnes ikke mellem små og store bogstaver i sprognøgleord" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:893 +-msgid "Language keywords spelled as e.g. IOStat" +-msgstr "Sprognøgleord staves som f.eks. IOStat" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:896 +-#, fuzzy +-msgid "Language keywords in lowercase" +-msgstr "Sprognøgleord staves med store bogstaver" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:899 +-msgid "Language keywords in uppercase" +-msgstr "Sprognøgleord staves med store bogstaver" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:902 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:690 + msgid "Set errno after built-in math functions" + msgstr "Sæt errno efter indbyggede matematikfunktioner" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:905 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:693 + #, fuzzy + msgid "Report on permanent memory allocation" + msgstr "Rapportér om permanente hukommelsesallokering ved afslutningen af kørslen" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:908 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:696 + msgid "Attempt to merge identical constants and constant variables" + msgstr "Forsøg at forene identiske konstanter og konstante variabler" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:911 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:699 + msgid "Attempt to merge identical constants across compilation units" + msgstr "Forsøg at forene identiske konstanter over forskellige oversættelsesenheder" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:914 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:702 + #, fuzzy + msgid "-fmessage-length=\tLimit diagnostics to characters per line. 0 suppresses line-wrapping" + msgstr " -fmessage-length= Begræns længden af diagnosticeringmeddelelser til længden tegn/linje. 0 undertrykker linjeombrydning\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:917 +-msgid "Delete MIL-STD 1753 intrinsics" +-msgstr "Slet MIL-STD 1753-indbyggede" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:920 +-msgid "Disable MIL-STD 1753 intrinsics" +-msgstr "Deaktivér MIL-STD 1753-indbyggede" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:923 +-#, fuzzy +-msgid "Enable MIL-STD 1753 intrinsics" +-msgstr "Deaktivér MIL-STD 1753-indbyggede" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:926 +-msgid "Hide MIL-STD 1753 intrinsics" +-msgstr "Skjul MIL-STD 1753-indbyggede" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:929 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:705 + msgid "Force all loop invariant computations out of loops" + msgstr "Tving alle løkkeinvariansberegninger ud af løkker" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:932 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:708 + #, fuzzy + msgid "Don't warn about uses of Microsoft extensions" + msgstr "Udsend ikke pedantiske advarsler om brug af Microsoft-udvidelser" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:941 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:717 + #, fuzzy + msgid "Use graph-coloring register allocation" + msgstr "Allokér registre vha. graffarvning" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:944 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:720 + #, fuzzy + msgid "Generate code for NeXT (Apple Mac OS X) runtime environment" + msgstr "Generér kode til NeXT-kørselmiljø" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:947 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:723 + msgid "Assume that receivers of Objective-C messages may be nil" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:950 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:726 + msgid "Support synchronous non-call exceptions" + msgstr "Understøt synkrone ikke-kaldende undtagelser" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:959 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:735 + msgid "Enable Objective-C exception and synchronization syntax" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:962 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1286 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:738 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:978 + msgid "Perform loop unrolling for all loops" + msgstr "Udfør løkkeudrulning for alle løkker" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:965 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1289 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:741 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:981 + msgid "Perform loop unrolling when iteration count is known" + msgstr "Udfør løkkeudrulning når iterationsantallet er kendt" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:968 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:744 + msgid "When possible do not generate stack frames" + msgstr "Generér ikke stakrammer når det kan undgås" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:971 +-msgid "Take at least one trip through each iterative DO loop" +-msgstr "Tag i det mindste et skridt gennem hver DO-løkke" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:974 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:747 + msgid "Recognize C++ kewords like \"compl\" and \"xor\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:977 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:750 + #, fuzzy + msgid "Do the full register move optimization pass" + msgstr "Foretag en komplet registerflytningsoptimering" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:980 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:753 + msgid "Optimize sibling and tail recursive calls" + msgstr "Optimér søskende- og halerekursive kald" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:983 +-#, fuzzy +-msgid "Enable optimization of static class initialization code" +-msgstr "Optimér aldrig statiske klassers klargøringskode" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:986 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:756 + #, fuzzy + msgid "Enable optional diagnostics" + msgstr "Deaktivér valgfrie diagnosticeringer" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:992 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:759 + msgid "Pack structure members together without holes" + msgstr "Pak strukturmedlemmer sammen uden mellemrum" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:995 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:762 + #, fuzzy + msgid "Return small aggregates in memory, not registers" + msgstr "Returnér små sammensatte værdier i hukommelsen, ikke i registre" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1001 +-msgid "Warn about use of (only a few for now) Fortran extensions" +-msgstr "Advar om brug af (i øjeblikket kun nogle få) Fortran-udvidelser" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1004 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:768 + #, fuzzy + msgid "Perform loop peeling" + msgstr "Udfør løkkeoptimeringerne" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1007 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:771 + msgid "Enable machine specific peephole optimizations" + msgstr "Aktivér maskinspecifikke kighulsoptimeringer" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1010 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:774 + #, fuzzy + msgid "Enable an RTL peephole pass before sched2" + msgstr "Aktivér en RTL-kikhulsfase før sched2" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1013 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:777 + msgid "Downgrade conformance errors to warnings" + msgstr "Nedgradér standardoverholdelsesfejl til advarsler" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1016 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:780 + #, fuzzy + msgid "Generate position-independent code if possible" + msgstr "Generér placeringsuafhængig kode, om muligt" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1019 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:783 + #, fuzzy + msgid "Generate position-independent code for executables if possible" + msgstr "Generér placeringsuafhængig kode, om muligt" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1022 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:786 + msgid "Generate prefetch instructions, if available, for arrays in loops" + msgstr "Generér præhentningsinstruktioner, hvis tilgængelige, for tabeller i løkker" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1028 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:789 ++msgid "Treat the input file as already preprocessed" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:792 + msgid "Enable basic program profiling code" + msgstr "Aktivér basal programprofileringskode" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1031 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:795 + #, fuzzy + msgid "Insert arc-based program profiling code" + msgstr "Indsæt buebaseret programprofileringskode" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1034 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:798 + msgid "Enable common options for generating profile info for profile feedback directed optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1037 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:801 + msgid "Enable common options for performing profile feedback directed optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1040 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:804 + msgid "Insert code to profile values of expressions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1046 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:810 + msgid "-frandom-seed=\tMake compile reproducible using " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1049 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:813 + msgid "Strength reduce all loop general induction variables" + msgstr "Styrkereducér alle generelle løkkeinduktionsvariabler" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1052 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:816 + #, fuzzy + msgid "Return small aggregates in registers" + msgstr "Returnér små sammensatte værdier i registre" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1055 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:819 + msgid "Enables a register move optimization" + msgstr "Aktivér en registerflytningsoptimering" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1058 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:822 + #, fuzzy + msgid "Perform a register renaming optimization pass" + msgstr "Foretag registeromdøbningsoptimering" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1061 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:825 + msgid "Reorder basic blocks to improve code placement" + msgstr "Omordn basisblokke for at forbedre kodeplacering" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1064 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:828 + msgid "Reorder functions to improve code placement" + msgstr "Omordn funktioner for at forbedre kodeplacering" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1067 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:831 + msgid "Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1070 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:834 + msgid "Enable automatic template instantiation" + msgstr "Aktivér automatisk skabelonsinstantiering" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1073 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:837 + #, fuzzy + msgid "Add a common subexpression elimination pass after loop optimizations" + msgstr "Kør CSE-fase efter løkkeoptimeringer" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1076 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:840 + msgid "Run the loop optimizer twice" + msgstr "Kør løkkeoptimeringen to gange" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1079 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:843 + msgid "Disable optimizations that assume default FP rounding behavior" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1082 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:846 + #, fuzzy + msgid "Generate run time type descriptor information" + msgstr "Generér ikke typebeskrivelsesoplysninger til kørselstidspunktet" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1085 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:849 + msgid "Enable scheduling across basic blocks" + msgstr "Aktivér planlægning over basisblokke" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1088 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:852 + msgid "Allow speculative motion of non-loads" + msgstr "Tillad spekulativ bevægelse af ikke-indlæsninger" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1091 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:855 + msgid "Allow speculative motion of some loads" + msgstr "Tillad spekulativ bevægelse af nogle indlæsninger" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1094 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:858 + msgid "Allow speculative motion of more loads" + msgstr "Tillad spekulativ bevægelse af flere indlæsninger" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1097 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:861 + msgid "Allow premature scheduling of queued insns" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1100 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:864 + msgid "Set dependence distance checking in premature scheduling of queued insns" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1103 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:867 + msgid "-fsched-stalled-insns-dep= Set dependence distance checking in premature scheduling of queued insns" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1106 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:870 + msgid "-fsched-stalled-insns= Set number of queued insns that can be prematurely scheduled" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1109 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:873 + #, fuzzy + msgid "-fsched-verbose=\tSet the verbosity level of the scheduler" + msgstr " -fsched-verbose= Angiv hvor meget planlæggeren skal fortælle\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1112 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:876 + msgid "If scheduling post reload, do superblock scheduling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1115 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:879 + msgid "If scheduling post reload, do trace scheduling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1118 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:882 + msgid "Reschedule instructions before register allocation" + msgstr "Omplanlæg instruktioner før registerallokering" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1121 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:885 + msgid "Reschedule instructions after register allocation" + msgstr "Omplanlæg instruktioner efter registerallokering" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1124 +-#, fuzzy +-msgid "Allow appending a second underscore to externals" +-msgstr "Tilføj aldrig en anden understreg til eksterne variable" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1127 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:888 + msgid "Mark data as shared rather than private" + msgstr "Markér data som delt snarere end privat" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1130 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:891 + msgid "Use the same size for double as for float" + msgstr "Benyt den samme størrelse til double som til float" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1133 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:894 + msgid "Use the narrowest integer type possible for enumeration types" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1136 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:897 + #, fuzzy + msgid "Force the underlying type for \"wchar_t\" to be \"unsigned short\"" + msgstr "Overskriv den underliggende type af wchar_t til 'unsigned short'" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1142 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:903 + msgid "Disable optimizations observable by IEEE signaling NaNs" + msgstr "Deaktivér optimeringer som kan opdages ved IEEE-signalerende NaN'er" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1145 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:906 + msgid "When \"signed\" or \"unsigned\" is not given make the bitfield signed" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1148 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:909 + #, fuzzy + msgid "Make \"char\" signed by default" + msgstr "Lad 'char' være med fortegn som standard" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1151 +-#, fuzzy +-msgid "Do not print names of program units as they are compiled" +-msgstr "Udskriv navne på programenheder efterhånden som de oversættes" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1154 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:912 + #, fuzzy + msgid "Convert floating point constants to single precision constants" + msgstr "Konvertér kommatalskonstanter til enkeltpræcisionskonstanter" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1157 +-#, fuzzy +-msgid "Internally convert most source to lowercase" +-msgstr "Konvertér det meste kildekode til store bogstaver internt" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1160 +-msgid "Internally preserve source case" +-msgstr "Bevar de store/små bogstaver i kildekoden internt" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1163 +-msgid "Internally convert most source to uppercase" +-msgstr "Konvertér det meste kildekode til store bogstaver internt" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1169 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:918 + msgid "Insert stack checking code into the program" + msgstr "Indsæt stakkontrolleringskode i programmet" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1175 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:924 + msgid "-fstack-limit-register=\tTrap if the stack goes past " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1178 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:927 + msgid "-fstack-limit-symbol=\tTrap if the stack goes past symbol " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1181 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:930 + msgid "Display statistics accumulated during compilation" + msgstr "Vis statistik som indsamles under oversættelsen" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1184 +-#, fuzzy +-msgid "Enable assignability checks for stores into object arrays" +-msgstr "Deaktivér tildelingstjek for lagringer i objekttabeller" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1187 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:933 + msgid "Perform strength reduction optimizations" + msgstr "Udfør styrkereduceringsoptimeringer" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1190 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:936 + msgid "Assume strict aliasing rules apply" + msgstr "Antag at strenge aliasregler skal anvendes" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1199 +-msgid "Symbol names spelled in mixed case" +-msgstr "Symbolnavne staves med en blanding af store og små bogstaver" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1202 +-msgid "Symbol names in lowercase" +-msgstr "Symbolnavne staves med små bogstaver" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1205 +-msgid "Symbol names in uppercase" +-msgstr "Symbolnavne staves med store bogstaver" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1208 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:942 + msgid "Check for syntax errors, then stop" + msgstr "Kontrollér syntaks og stop derefter" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1211 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:945 + msgid "-ftabstop=\tDistance between tab stops for column reporting" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1214 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:948 + #, fuzzy + msgid "-ftemplate-depth-\tSpecify maximum template instantiation depth" + msgstr "Angiv maksimal skabelonsinstantieringsdybde" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1217 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:951 + #, fuzzy + msgid "Create data files needed by \"gcov\"" + msgstr "Opret datafiler som gcov har brug for" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1223 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:957 + msgid "Perform jump threading optimizations" + msgstr "Udfør springtrådningsoptimeringer" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1226 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:960 + #, fuzzy + msgid "Report the time taken by each compiler pass" + msgstr "Rapportér den tid det tager for hver oversættelsesfase ved afslutningen af kørslen" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1229 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:963 + #, fuzzy + msgid "-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tSet the default thread-local storage code generation model" + msgstr " -ftls-model=[global-dynamic | local-dynamic | initial-exec | local-exec] Indikerer den forvalgte tråd-lokale lagringsmodel for kodegenerering\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1232 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:966 + msgid "Perform superblock formation via tail duplication" + msgstr "Udfør superbloksformering vha. haleduplikering" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1235 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:969 + #, fuzzy + msgid "Assume floating-point operations can trap" + msgstr "Kommatalsoperationer kan fange" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1238 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:972 + #, fuzzy + msgid "Trap for signed overflow in addition, subtraction and multiplication" + msgstr "Opsæt fælde for overløb med fortegn i addition/subtraktion/multiplikation" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1241 +-msgid "Make prefix-radix non-decimal constants be typeless" +-msgstr "Gør præfiks-grundtal ikke-decimale konstanter typeløse" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1244 +-#, fuzzy +-msgid "Allow all ugly features" +-msgstr "Forbyd alle grimme faciliteter" +- +-# hollerith? +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1247 +-#, fuzzy +-msgid "Hollerith and typeless can be passed as arguments" +-msgstr "Hollerith og typeløse konstanter overbringes ikke som parametre" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1250 +-msgid "Allow ordinary copying of ASSIGN'ed vars" +-msgstr "Tillad almindelig kopiering af ASSIGN'ede variable" +- +-# RETMIG: ? +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1253 +-msgid "Dummy array dimensioned to (1) is assumed-size" +-msgstr "Dummy-tabel dimensioneret til (1) er antaget størrelse" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1256 +-msgid "Trailing comma in procedure call denotes null argument" +-msgstr "Afsluttende komma i procedurekald angiver nulparameter" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1259 +-msgid "Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z" +-msgstr "Tillad REAL(Z) og AIMAG(Z) givet DOUBLE COMPLEX Z" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1262 +-#, fuzzy +-msgid "Initialization via DATA and PARAMETER is not type-compatible" +-msgstr "Klargøring via DATA og PARAMETER er type-kompatible" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1265 +-msgid "Allow INTEGER and LOGICAL interchangeability" +-msgstr "Tillad INTEGER og LOGICAL på hinandens plads" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1268 +-#, fuzzy +-msgid "Append underscores to externals" +-msgstr "Tilføj aldrig en anden understreg til eksterne variable" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1271 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:975 + #, fuzzy + msgid "Compile whole compilation unit at a time" + msgstr "Anbring hele oversættelsesenheden i en fil" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1274 +-msgid "Delete libU77 intrinsics" +-msgstr "Slet libU77-indbyggede" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1277 +-msgid "Disable libU77 intrinsics" +-msgstr "Deaktivér libU77-indbyggede" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1280 +-#, fuzzy +-msgid "Enable libU77 intrinsics" +-msgstr "Deaktivér libU77-indbyggede" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1283 +-msgid "Hide libU77 intrinsics" +-msgstr "Skjul libU77-indbyggede" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1292 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:984 + #, fuzzy + msgid "Allow math optimizations that may violate IEEE or ISO standards" + msgstr "Tillad matematikoptimeringer der kan overtræde IEEE- eller ANSI-standarderne" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1295 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:987 + msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1298 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:990 + #, fuzzy + msgid "Make \"char\" unsigned by default" + msgstr "Lad 'char' være uden fortegn som standard" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1301 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:993 + #, fuzzy + msgid "Perform loop unswitching" + msgstr "Udfør løkkeoptimeringerne" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1304 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:996 + msgid "Just generate unwind tables for exception handling" + msgstr "Generér blot afvindingstabeller for undtagelseshåndtering" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1310 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:999 + msgid "Use __cxa_atexit to register destructors" + msgstr "Benyt __cxa_atexit til at registrere destruktionsfunktioner" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1316 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1002 + msgid "Add extra commentary to assembler output" + msgstr "Tilføj ekstra kommentarer til menneskeligt læsbar maskinkodeuddata" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1319 +-#, fuzzy +-msgid "Print g77-specific version information and run internal tests" +-msgstr "Udskriv g77-specifik oversætterversioninfo, kør interne test" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1322 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1005 + #, fuzzy + msgid "Use expression value profiles in optimizations" + msgstr "Aktivér sammenkæderoptimeringer" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1325 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1008 + msgid "Discard unused virtual functions" + msgstr "Kassér ubrugte virtuelle funktioner" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1328 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1011 + msgid "Implement vtables using thunks" + msgstr "Implementér virtuelle tabeller vha. thunk-kode" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1331 +-msgid "Program is written in VXT (Digital-like) FORTRAN" +-msgstr "Program er skrevet i VXT (Digital-agtig) FORTRAN" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1334 +-msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "Slet VXT FORTRAN-understøttelse af ikke-FORTRAN-77-indbyggede " +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1337 +-msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "Deaktivér VXT FORTRAN-understøttelse af ikke-FORTRAN-77-indbyggede " +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1340 +-#, fuzzy +-msgid "Enable non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "Deaktivér VXT FORTRAN-understøttelse af ikke-FORTRAN-77-indbyggede " +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1343 +-msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "Skjul VXT FORTRAN-understøttelse af ikke-FORTRAN-77-indbyggede " +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1349 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1014 + msgid "Emit common-like symbols as weak symbols" + msgstr "Udsend almindelige symboler som svage symboler" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1352 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1017 + msgid "Construct webs and split unrelated uses of single variable" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1355 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1020 + msgid "-fwide-exec-charset=\tConvert all wide strings and character constants to character set " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1358 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1023 + msgid "Generate a #line directive pointing at the current working directory" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1361 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1026 + msgid "Assume signed arithmetic overflow wraps around" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1364 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1029 + msgid "Store strings in writable data section" + msgstr "Gem strenge i en skrivbar datasektion" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1367 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1032 + msgid "Emit cross referencing information" + msgstr "Udsend krydsreferenceoplysninger" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1370 +-#, fuzzy +-msgid "Print internal debugging-related information" +-msgstr "Udskriv intern fejlanalyseringsrelateret info" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1373 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1035 + msgid "Put zero initialized data in the bss section" + msgstr "Anbring nul-klargjorte data i bss-sektionen" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1376 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1038 + msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1379 +-msgid "Treat initial values of 0 like non-zero values" +-msgstr "Behandl begyndelsesværdier på 0 som værdier forskellig fra nul" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1382 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1041 + #, fuzzy + msgid "Generate debug information in default format" + msgstr "Generér fejlfindingsinfo i standardformat" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1385 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1044 + #, fuzzy + msgid "Generate debug information in COFF format" + msgstr "Generér fejlfindingsinfo i standardformat" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1388 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1047 + #, fuzzy + msgid "Generate debug information in DWARF v2 format" + msgstr "Generér fejlfindingsinfo i standardformat" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1391 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1050 + #, fuzzy + msgid "Dump declarations to a .decl file" + msgstr "Udskriv erklæringer i en .decl-fil" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1394 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1053 + #, fuzzy + msgid "Generate debug information in default extended format" + msgstr "Generér fejlfindingsinfo i udvidet standardformat" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1397 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1056 + #, fuzzy + msgid "Generate debug information in STABS format" + msgstr "Generér fejlfindingsinfo i standardformat" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1400 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1059 + #, fuzzy + msgid "Generate debug information in extended STABS format" + msgstr "Generér fejlfindingsinfo i udvidet standardformat" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1403 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1062 + #, fuzzy + msgid "Generate debug information in VMS format" + msgstr "Generér fejlfindingsinfo i standardformat" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1406 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1065 + #, fuzzy + msgid "Generate debug information in XCOFF format" + msgstr "Generér fejlfindingsinfo i standardformat" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1409 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1068 + #, fuzzy + msgid "Generate debug information in extended XCOFF format" + msgstr "Generér fejlfindingsinfo i udvidet standardformat" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1412 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1071 + msgid "-idirafter \tAdd to the end of the system include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1415 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1074 + msgid "-imacros \tAccept definition of macros in " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1418 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1077 + msgid "-include \tInclude the contents of before other files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1421 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1080 + msgid "-iprefix \tSpecify as a prefix for next two options" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1424 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1083 + msgid "-isysroot \tSet to be the system root directory" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1427 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1086 + msgid "-isystem \tAdd to the start of the system include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1430 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1089 + msgid "-iwithprefix \tAdd to the end of the system include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1433 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1092 + msgid "-iwithprefixbefore \tAdd to the end of the main include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1445 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1104 + msgid "Do not search standard system include directories (those specified with -isystem will still be used)" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1448 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1107 + msgid "Do not search standard system include directories for C++" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1451 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1110 + #, fuzzy + msgid "-o \tPlace output into " + msgstr " -o Anbring uddata i \n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1454 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1113 + #, fuzzy + msgid "Enable function profiling" + msgstr "MIPS16-funktionsprofilering" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1457 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1116 + #, fuzzy + msgid "Issue warnings needed for strict compliance to the standard" + msgstr " -pedantic Udsend advarsler som er nødvendige for streng overholdelse af ISO C\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1460 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1119 + msgid "Like -pedantic but issue them as errors" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1463 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1122 + #, fuzzy + msgid "Generate C header of platform-specific features" + msgstr "Generér C-inkluderingsfil med platformspecifikke faciliteter" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1466 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1125 + #, fuzzy + msgid "Do not display functions compiled or elapsed time" + msgstr " -quiet Vis ikke funktioner der oversættes eller forløbet tid\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1469 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1128 + #, fuzzy + msgid "Remap file names when including files" + msgstr "tomt filnavn i #%s" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1472 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1131 + msgid "Conform to the ISO 1998 C++ standard" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1475 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1134 + msgid "Conform to the ISO 1990 C standard" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1478 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1137 + msgid "Conform to the ISO 1999 C standard" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1481 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1502 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1505 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1140 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1161 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1164 + msgid "Deprecated in favor of -std=c99" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1484 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1143 + msgid "Conform to the ISO 1998 C++ standard with GNU extensions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1487 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1146 + msgid "Conform to the ISO 1990 C standard with GNU extensions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1490 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1149 + msgid "Conform to the ISO 1999 C standard with GNU extensions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1493 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1152 + msgid "Deprecated in favor of -std=gnu99" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1496 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1155 + msgid "Deprecated in favor of -std=c89" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1499 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1158 + msgid "Conform to the ISO 1990 C standard as amended in 1994" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1508 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1167 + #, fuzzy + msgid "Enable traditional preprocessing" + msgstr "Aktivér stakprøvning" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1511 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1170 + msgid "-trigraphs\tSupport ISO C trigraphs" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1514 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1173 + msgid "Do not predefine system-specific and GCC-specific macros" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1517 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1176 + #, fuzzy + msgid "Enable verbose output" + msgstr "Aktivér fejlanalyseringsuddata" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1523 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1179 ++#, fuzzy ++msgid "Display the compiler's version" ++msgstr " -version Udskriv oversætterens version\n" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1182 + #, fuzzy + msgid "Suppress warnings" + msgstr "%s: advarsel: " + +-#: config/i386/freebsd-aout.h:215 config/rs6000/sysv4.h:1089 ++#: config/i386/cygwin.h:29 ++msgid "mno-cygwin and mno-win32 are not compatible" ++msgstr "-mno-cygwin og -mnowin32 er indbyrdes uforenelige" ++ ++#: config/i386/cygwin.h:70 config/i386/mingw32.h:58 ++msgid "shared and mdll are not compatible" ++msgstr "shared og mdll er indbyrdes uforenelige" ++ ++#: config/i386/freebsd-aout.h:215 + msgid "`-p' not supported; use `-pg' and gprof(1)" + msgstr "'-p' understøttes ikke; brug '-pg' og gprof(1)" + +@@ -21889,49 +21504,66 @@ + msgid "GCC does not support -CC without using -E" + msgstr "GNU C understøtter ikke -CC uden -E" + ++#: config/i386/sco5.h:191 ++#, fuzzy ++msgid "-pg not supported on this platform" ++msgstr "egenskaben '%s' er ikke understøttet på denne platform" ++ ++#: config/i386/sco5.h:192 ++#, fuzzy ++msgid "-p and -pp specified - pick one" ++msgstr "-I- er angivet to gange" ++ ++#: config/i386/sco5.h:266 ++#, fuzzy ++msgid "-G and -static are mutually exclusive" ++msgstr "-pedantic og -traditional er indbyrdes uforenelige" ++ ++#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22 ++#: config/sparc/sol2-bi.h:167 config/sparc/sol2-bi.h:172 ++#, fuzzy ++msgid "does not support multilib" ++msgstr "%s understøtter ikke %s" ++ + #: config/sparc/linux64.h:211 config/sparc/linux64.h:222 + #: config/sparc/netbsd-elf.h:140 config/sparc/netbsd-elf.h:159 + #: config/sparc/sol2-bi.h:195 config/sparc/sol2-bi.h:205 + msgid "may not use both -m32 and -m64" + msgstr "-m32 og -m64 er indbyrdes uforenelige" + +-#: config/i386/mingw32.h:58 config/i386/cygwin.h:70 +-msgid "shared and mdll are not compatible" +-msgstr "shared og mdll er indbyrdes uforenelige" +- +-#: config/darwin.h:215 ++#: config/darwin.h:222 + msgid "-current_version only allowed with -dynamiclib" + msgstr "-current_version er kun tilladt med -dynamiclib" + +-#: config/darwin.h:218 ++#: config/darwin.h:225 + msgid "-install_name only allowed with -dynamiclib" + msgstr "-install_name er kun tilladt med -dynamiclib" + +-#: config/darwin.h:223 ++#: config/darwin.h:230 + msgid "-bundle not allowed with -dynamiclib" + msgstr "-bundle er ikke tilladt med -dynamiclib" + +-#: config/darwin.h:224 ++#: config/darwin.h:231 + msgid "-bundle_loader not allowed with -dynamiclib" + msgstr "-bundle_loader er ikke tilladt med -dynamiclib" + +-#: config/darwin.h:225 ++#: config/darwin.h:232 + msgid "-client_name not allowed with -dynamiclib" + msgstr "-client_name er ikke tilladt med -dynamiclib" + +-#: config/darwin.h:228 ++#: config/darwin.h:235 + msgid "-force_cpusubtype_ALL not allowed with -dynamiclib" + msgstr "-force_cpusubtype_ALL er ikke tilladt med -dynamiclib" + +-#: config/darwin.h:229 ++#: config/darwin.h:236 + msgid "-force_flat_namespace not allowed with -dynamiclib" + msgstr "-force_flat_namespace er ikke tilladt med -dynamiclib" + +-#: config/darwin.h:231 ++#: config/darwin.h:238 + msgid "-keep_private_externs not allowed with -dynamiclib" + msgstr "-keep_private_externs er ikke tilladt med -dynamiclib" + +-#: config/darwin.h:232 ++#: config/darwin.h:239 + msgid "-private_bundle not allowed with -dynamiclib" + msgstr "-private_bundle er ikke tilladt med -dynamiclib" + +@@ -21947,51 +21579,10 @@ + msgid "may not use both -EB and -EL" + msgstr "kan ikke bruge både -EB og -EL" + +-#: config/mips/mips.h:988 +-msgid "-pipe is not supported" +-msgstr "-pipe understøttes ikke" +- +-#: java/jvspec.c:80 ada/lang-specs.h:34 gcc.c:767 +-msgid "-pg and -fomit-frame-pointer are incompatible" +-msgstr "-pg og -fomit-frame-pointer er indbyrdes uforenelige" +- +-#: java/lang-specs.h:34 +-msgid "-fjni and -femit-class-files are incompatible" +-msgstr "-fjni og -femit-class-files er indbyrdes uforenelige" +- +-#: java/lang-specs.h:35 +-msgid "-fjni and -femit-class-file are incompatible" +-msgstr "-fjni og -femit-class-file er indbyrdes uforenelige" +- +-#: java/lang-specs.h:36 java/lang-specs.h:37 +-msgid "-femit-class-file should used along with -fsyntax-only" +-msgstr "-femit-class-file skal bruges sammen med -fsyntax-only" +- + #: treelang/lang-specs.h:52 + msgid "-pg or -p and -fomit-frame-pointer are incompatible" + msgstr "-pg eller -p og -fomit-frame-pointer er indbyrdes uforenelige" + +-#: config/sparc/sol2-bi.h:167 config/sparc/sol2-bi.h:172 +-#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22 +-#, fuzzy +-msgid "does not support multilib" +-msgstr "%s understøtter ikke %s" +- +-#: config/i386/sco5.h:191 +-#, fuzzy +-msgid "-pg not supported on this platform" +-msgstr "egenskaben '%s' er ikke understøttet på denne platform" +- +-#: config/i386/sco5.h:192 +-#, fuzzy +-msgid "-p and -pp specified - pick one" +-msgstr "-I- er angivet to gange" +- +-#: config/i386/sco5.h:266 +-#, fuzzy +-msgid "-G and -static are mutually exclusive" +-msgstr "-pedantic og -traditional er indbyrdes uforenelige" +- + #: config/arm/arm.h:198 + msgid "-mapcs-26 and -mapcs-32 may not be used together" + msgstr "-mapcs-26 og -mapcs-32 kan ikke bruges på samme tid" +@@ -22008,6 +21599,14 @@ + msgid "the m210 does not have little endian support" + msgstr "m210 har ikke understøttelse for lilleendet" + ++#: config/mips/mips.h:988 ++msgid "-pipe is not supported" ++msgstr "-pipe understøttes ikke" ++ ++#: ada/lang-specs.h:34 java/jvspec.c:80 gcc.c:767 ++msgid "-pg and -fomit-frame-pointer are incompatible" ++msgstr "-pg og -fomit-frame-pointer er indbyrdes uforenelige" ++ + #: ada/lang-specs.h:36 + msgid "one of -c, -S, -gnatc, -gnatz, or -gnats is required for Ada" + msgstr "" +@@ -22020,9 +21619,17 @@ + msgid "-msingle-float and -msoft-float can not both be specified" + msgstr "-msingle-float og -msoft-float er indbyrdes uforenelige" + +-#: config/rs6000/darwin.h:98 +-msgid " conflicting code gen style switches are used" +-msgstr " konfliktende kodegenereringstilvalg er benyttet" ++#: java/lang-specs.h:34 ++msgid "-fjni and -femit-class-files are incompatible" ++msgstr "-fjni og -femit-class-files er indbyrdes uforenelige" ++ ++#: java/lang-specs.h:35 ++msgid "-fjni and -femit-class-file are incompatible" ++msgstr "-fjni og -femit-class-file er indbyrdes uforenelige" ++ ++#: java/lang-specs.h:36 java/lang-specs.h:37 ++msgid "-femit-class-file should used along with -fsyntax-only" ++msgstr "-femit-class-file skal bruges sammen med -fsyntax-only" + + #: gcc.c:743 + #, fuzzy +@@ -22033,16 +21640,384 @@ + msgid "-E required when input is from standard input" + msgstr "-E påkrævet når inddata kommer fra standardind" + +-#: config/i386/cygwin.h:29 +-msgid "mno-cygwin and mno-win32 are not compatible" +-msgstr "-mno-cygwin og -mnowin32 er indbyrdes uforenelige" +- +-#~ msgid "concatenation of string literals with __FUNCTION__ is deprecated" +-#~ msgstr "sammensætning af strengkonstanter med __FUNCTION__ er forældet" ++#: config/rs6000/darwin.h:98 ++msgid " conflicting code gen style switches are used" ++msgstr " konfliktende kodegenereringstilvalg er benyttet" + + #~ msgid "pointer to a member used in arithmetic" + #~ msgstr "henvisning til et medlem benyttet i udregning" + ++#~ msgid "declaration of \"%s\" shadows a parameter" ++#~ msgstr "erklæring af '%s' skygger for en parameter" ++ ++#~ msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n" ++#~ msgstr "Copyright © 2003 Free Software Foundation, Inc.\n" ++ ++#, fuzzy ++#~ msgid "read-write constraint does not allow a register" ++#~ msgstr "hexadecimal tegnkonstant kan ikke være i en byte" ++ ++#~ msgid "Use the 26-bit version of the APCS" ++#~ msgstr "Benyt 26 bit-udgaven af APCS" ++ ++#~ msgid "duplicate enum value `%D'" ++#~ msgstr "enum-værdien '%D' optræder mere end én gang" ++ ++#~ msgid "duplicate field `%D' (as enum and non-enum)" ++#~ msgstr "feltet '%D' optræder mere end én gang (som enum og som ikke-enum)" ++ ++#~ msgid "duplicate nested type `%D'" ++#~ msgstr "den indlejrede type '%D' optræder mere end én gang" ++ ++#~ msgid "duplicate field `%D' (as type and non-type)" ++#~ msgstr "feltet '%D' optræder mere end én gang (som type og som ikke-type)" ++ ++#~ msgid "duplicate member `%D'" ++#~ msgstr "medlemmet '%D' optræder mere end én gang" ++ ++#~ msgid "ISO C++ forbids member `%D' with same name as enclosing class" ++#~ msgstr "ISO C++ forbyder medlemmet '%D' med samme navn som den omgivende klasse" ++ ++#~ msgid "field `%D' declared static in union" ++#~ msgstr "feltet '%D' er erklæret statisk i union" ++ ++#~ msgid "ISO C++ forbids static data member `%D' with same name as enclosing class" ++#~ msgstr "ISO C++ forbyder statisk datamedlem '%D' med samme navn som den omgivende klasse" ++ ++#~ msgid "anachronistic use of array size in vector delete" ++#~ msgstr "forældet brug af tabelstørrelse i tabelformen af delete" ++ ++#~ msgid "ISO C++ forbids aggregate initializer to new" ++#~ msgstr "ISO C++ forbyder sammensat startværditildeling ved new" ++ ++#, fuzzy ++#~ msgid "Warn if deprecated class, method, or field is used" ++#~ msgstr "Advar hvis forældede tomme sætninger bliver fundet" ++ ++#~ msgid "Warn if deprecated empty statements are found" ++#~ msgstr "Advar hvis forældede tomme sætninger bliver fundet" ++ ++#, fuzzy ++#~ msgid "Enable warnings about inter-procedural problems" ++#~ msgstr "Deaktivér advarsler om interprocedurale problemer" ++ ++#~ msgid "Warn if .class files are out of date" ++#~ msgstr "Advar hvis .class-filer er forældede" ++ ++#~ msgid "Warn if modifiers are specified when not necessary" ++#~ msgstr "Advar hvis modifikationer angives når det ikke er nødvendigt" ++ ++#~ msgid "Warn about constructs with surprising meanings" ++#~ msgstr "Advar om konstruktioner med overraskende betydninger" ++ ++#, fuzzy ++#~ msgid "--CLASSPATH\tDeprecated; use --classpath instead" ++#~ msgstr "Angiv klassesti (forældet: benyt --classpath i stedet)" ++ ++#, fuzzy ++#~ msgid "Do not treat local variables and COMMON blocks as if they were named in SAVE statements" ++#~ msgstr "Behandl lokale variable og COMMON-blokke som om de var nævnt i SAVE-sætninger" ++ ++#, fuzzy ++#~ msgid "Backslashes in character and hollerith constants are special (not C-style)" ++#~ msgstr "Omvendte skråstreger i tegn/hollerith-konstanter er ikke specielle (C-stil)" ++ ++#~ msgid "Delete libU77 intrinsics with bad interfaces" ++#~ msgstr "Slet libU77-indbyggede med dårlige grænseflader" ++ ++#~ msgid "Disable libU77 intrinsics with bad interfaces" ++#~ msgstr "Deaktivér libU77-indbyggede med dårlige grænseflader" ++ ++#, fuzzy ++#~ msgid "Enable libU77 intrinsics with bad interfaces" ++#~ msgstr "Deaktivér libU77-indbyggede med dårlige grænseflader" ++ ++#~ msgid "Hide libU77 intrinsics with bad interfaces" ++#~ msgstr "Skjul libU77-indbyggede med dårlige grænseflader" ++ ++#, fuzzy ++#~ msgid "--bootclasspath=\tReplace system path" ++#~ msgstr "Erstat systemsti" ++ ++#~ msgid "Program written in strict mixed-case" ++#~ msgstr "Program skrives med streng blanding af store/små bogstaver" ++ ++#~ msgid "Compile as if program written in lowercase" ++#~ msgstr "Oversæt som hvis programmet var skrevet med små bogstaver" ++ ++#, fuzzy ++#~ msgid "Preserve case used in program" ++#~ msgstr "Bevar al stavning (store/små bogstaver) benyttet i programmet" ++ ++#~ msgid "Program written in lowercase" ++#~ msgstr "Program skrives med små bogstaver" ++ ++#~ msgid "Program written in uppercase" ++#~ msgstr "Program skrives med store bogstaver" ++ ++#~ msgid "Compile as if program written in uppercase" ++#~ msgstr "Oversæt som hvis programmet var skrevet med store bogstaver" ++ ++#~ msgid "Emit special debugging information for COMMON and EQUIVALENCE (disabled)" ++#~ msgstr "Udsend speciel fejlanalyseringsinfo for COMMON og EQUIVALENCE (deaktiveret)" ++ ++#, fuzzy ++#~ msgid "Allow '$' in symbol names" ++#~ msgstr "Tillad $ i symbolnavne" ++ ++#~ msgid "Have front end emulate COMPLEX arithmetic to avoid bugs" ++#~ msgstr "Lad forenden emulere COMPLEX-beregninger for at undgå fejl" ++ ++#, fuzzy ++#~ msgid "--encoding=\tChoose input encoding (defaults from your locale)" ++#~ msgstr "Vælg inddatakodning (standardværdi kommer fra regionalindstillinger)" ++ ++#, fuzzy ++#~ msgid "f2c-compatible code can be generated" ++#~ msgstr "f2c-kompatibel kode behøver ikke at blive genereret" ++ ++#~ msgid "Delete non-FORTRAN-77 intrinsics f2c supports" ++#~ msgstr "Slet f2c-understøttelse af ikke-FORTRAN-77-indbyggede" ++ ++#~ msgid "Disable non-FORTRAN-77 intrinsics f2c supports" ++#~ msgstr "Deaktivér f2c-understøttelse af ikke-FORTRAN-77-indbyggede" ++ ++#, fuzzy ++#~ msgid "Enable non-FORTRAN-77 intrinsics f2c supports" ++#~ msgstr "Deaktivér f2c-understøttelse af ikke-FORTRAN-77-indbyggede" ++ ++#~ msgid "Hide non-FORTRAN-77 intrinsics f2c supports" ++#~ msgstr "Skjul f2c-understøttelse af ikke-FORTRAN-77-indbyggede" ++ ++#, fuzzy ++#~ msgid "Unsupported; generate libf2c-calling code" ++#~ msgstr "Ikke-understøttet; generér ikke libf2c-kaldende kode" ++ ++#~ msgid "Program is written in typical FORTRAN 66 dialect" ++#~ msgstr "Program er skrevet i typisk FORTRAN 66-dialekt" ++ ++#, fuzzy ++#~ msgid "Program is written in typical Unix-f77 dialect" ++#~ msgstr "Program er skrevet i typisk Unix f77-dialekt" ++ ++#~ msgid "Program is written in Fortran-90-ish dialect" ++#~ msgstr "Program er skrevet i Fortran 90-agtig dialekt" ++ ++#~ msgid "Delete non-FORTRAN-77 intrinsics F90 supports" ++#~ msgstr "Slet F90-understøttelse af ikke-FORTRAN-77-indbyggede " ++ ++#~ msgid "Disable non-FORTRAN-77 intrinsics F90 supports" ++#~ msgstr "Deaktivér F90-understøttelse af ikke-FORTRAN-77-indbyggede" ++ ++#, fuzzy ++#~ msgid "Enable non-FORTRAN-77 intrinsics F90 supports" ++#~ msgstr "Deaktivér F90-understøttelse af ikke-FORTRAN-77-indbyggede" ++ ++#~ msgid "Hide non-FORTRAN-77 intrinsics F90 supports" ++#~ msgstr "Skjul F90-understøttelse af ikke-FORTRAN-77-indbyggede" ++ ++#, fuzzy ++#~ msgid "ffixed-line-length-\tSet the maximum line length to " ++#~ msgstr " -finline-limit= Begræns størrelsen af inlie funktion til \n" ++ ++#, fuzzy ++#~ msgid "Unsupported; affects code generation of arrays" ++#~ msgstr "Ikke-understøttet; påvirker kodegenerering af tabeller" ++ ++#~ msgid "Always check for non gcj generated classes archives" ++#~ msgstr "Kontrollér altid for ikke-GCJ-genererede klassearkiver" ++ ++#~ msgid "Generate code to check subscript and substring bounds" ++#~ msgstr "Generér kode for at tjekke indekserings- og understrengsgrænser" ++ ++#~ msgid "Program is written in Fortran-90-ish free form" ++#~ msgstr "Program er skrevet i Fortran 90-agtig fri stil" ++ ++#, fuzzy ++#~ msgid "Enable fatal diagnostics about inter-procedural problems" ++#~ msgstr "Deaktivér fatale diagnosticeringer af interprocedurale procedurer" ++ ++#~ msgid "Delete non-FORTRAN-77 intrinsics g77 supports" ++#~ msgstr "Slet g77-understøttelse af ikke-FORTRAN-77-indbyggede " ++ ++#~ msgid "Disable non-FORTRAN 77 intrinsics F90 supports" ++#~ msgstr "Deaktivér g77-understøttelse af ikke-FORTRAN-77-indbyggede" ++ ++#, fuzzy ++#~ msgid "Enable non-FORTRAN 77 intrinsics F90 supports" ++#~ msgstr "Deaktivér g77-understøttelse af ikke-FORTRAN-77-indbyggede" ++ ++#~ msgid "Hide non-FORTRAN 77 intrinsics F90 supports" ++#~ msgstr "Skjul g77-understøttelse af ikke-FORTRAN-77-indbyggede" ++ ++#~ msgid "Use offset tables for virtual method calls" ++#~ msgstr "Benyt afsætstabeller til virtuelle metodekald" ++ ++#~ msgid "Initialize local vars and arrays to zero" ++#~ msgstr "Klargør lokale variable og tabeller til nul" ++ ++#~ msgid "Intrinsics letters in arbitrary cases" ++#~ msgstr "Der skelnes ikke mellem små og store bogstaver i indbyggede" ++ ++#~ msgid "Intrinsics spelled as e.g. SqRt" ++#~ msgstr "Indbyggede staves som f.eks. SqRt" ++ ++#, fuzzy ++#~ msgid "Intrinsics in lowercase" ++#~ msgstr "Indbyggede staves med store bogstaver" ++ ++#~ msgid "Intrinsics in uppercase" ++#~ msgstr "Indbyggede staves med store bogstaver" ++ ++#~ msgid "Assume native functions are implemented using JNI" ++#~ msgstr "Antag at indfødte funktioner er implementeret vha. JNI" ++ ++#~ msgid "Language keyword letters in arbitrary cases" ++#~ msgstr "Der skelnes ikke mellem små og store bogstaver i sprognøgleord" ++ ++#~ msgid "Language keywords spelled as e.g. IOStat" ++#~ msgstr "Sprognøgleord staves som f.eks. IOStat" ++ ++#, fuzzy ++#~ msgid "Language keywords in lowercase" ++#~ msgstr "Sprognøgleord staves med store bogstaver" ++ ++#~ msgid "Language keywords in uppercase" ++#~ msgstr "Sprognøgleord staves med store bogstaver" ++ ++#~ msgid "Delete MIL-STD 1753 intrinsics" ++#~ msgstr "Slet MIL-STD 1753-indbyggede" ++ ++#~ msgid "Disable MIL-STD 1753 intrinsics" ++#~ msgstr "Deaktivér MIL-STD 1753-indbyggede" ++ ++#, fuzzy ++#~ msgid "Enable MIL-STD 1753 intrinsics" ++#~ msgstr "Deaktivér MIL-STD 1753-indbyggede" ++ ++#~ msgid "Hide MIL-STD 1753 intrinsics" ++#~ msgstr "Skjul MIL-STD 1753-indbyggede" ++ ++#~ msgid "Take at least one trip through each iterative DO loop" ++#~ msgstr "Tag i det mindste et skridt gennem hver DO-løkke" ++ ++#, fuzzy ++#~ msgid "Enable optimization of static class initialization code" ++#~ msgstr "Optimér aldrig statiske klassers klargøringskode" ++ ++#~ msgid "Warn about use of (only a few for now) Fortran extensions" ++#~ msgstr "Advar om brug af (i øjeblikket kun nogle få) Fortran-udvidelser" ++ ++#, fuzzy ++#~ msgid "Allow appending a second underscore to externals" ++#~ msgstr "Tilføj aldrig en anden understreg til eksterne variable" ++ ++#, fuzzy ++#~ msgid "Do not print names of program units as they are compiled" ++#~ msgstr "Udskriv navne på programenheder efterhånden som de oversættes" ++ ++#, fuzzy ++#~ msgid "Internally convert most source to lowercase" ++#~ msgstr "Konvertér det meste kildekode til store bogstaver internt" ++ ++#~ msgid "Internally preserve source case" ++#~ msgstr "Bevar de store/små bogstaver i kildekoden internt" ++ ++#~ msgid "Internally convert most source to uppercase" ++#~ msgstr "Konvertér det meste kildekode til store bogstaver internt" ++ ++#, fuzzy ++#~ msgid "Enable assignability checks for stores into object arrays" ++#~ msgstr "Deaktivér tildelingstjek for lagringer i objekttabeller" ++ ++#~ msgid "Symbol names spelled in mixed case" ++#~ msgstr "Symbolnavne staves med en blanding af store og små bogstaver" ++ ++#~ msgid "Symbol names in lowercase" ++#~ msgstr "Symbolnavne staves med små bogstaver" ++ ++#~ msgid "Symbol names in uppercase" ++#~ msgstr "Symbolnavne staves med store bogstaver" ++ ++#~ msgid "Make prefix-radix non-decimal constants be typeless" ++#~ msgstr "Gør præfiks-grundtal ikke-decimale konstanter typeløse" ++ ++#, fuzzy ++#~ msgid "Allow all ugly features" ++#~ msgstr "Forbyd alle grimme faciliteter" ++ ++# hollerith? ++#, fuzzy ++#~ msgid "Hollerith and typeless can be passed as arguments" ++#~ msgstr "Hollerith og typeløse konstanter overbringes ikke som parametre" ++ ++#~ msgid "Allow ordinary copying of ASSIGN'ed vars" ++#~ msgstr "Tillad almindelig kopiering af ASSIGN'ede variable" ++ ++# RETMIG: ? ++#~ msgid "Dummy array dimensioned to (1) is assumed-size" ++#~ msgstr "Dummy-tabel dimensioneret til (1) er antaget størrelse" ++ ++#~ msgid "Trailing comma in procedure call denotes null argument" ++#~ msgstr "Afsluttende komma i procedurekald angiver nulparameter" ++ ++#~ msgid "Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z" ++#~ msgstr "Tillad REAL(Z) og AIMAG(Z) givet DOUBLE COMPLEX Z" ++ ++#, fuzzy ++#~ msgid "Initialization via DATA and PARAMETER is not type-compatible" ++#~ msgstr "Klargøring via DATA og PARAMETER er type-kompatible" ++ ++#~ msgid "Allow INTEGER and LOGICAL interchangeability" ++#~ msgstr "Tillad INTEGER og LOGICAL på hinandens plads" ++ ++#, fuzzy ++#~ msgid "Append underscores to externals" ++#~ msgstr "Tilføj aldrig en anden understreg til eksterne variable" ++ ++#~ msgid "Delete libU77 intrinsics" ++#~ msgstr "Slet libU77-indbyggede" ++ ++#~ msgid "Disable libU77 intrinsics" ++#~ msgstr "Deaktivér libU77-indbyggede" ++ ++#, fuzzy ++#~ msgid "Enable libU77 intrinsics" ++#~ msgstr "Deaktivér libU77-indbyggede" ++ ++#~ msgid "Hide libU77 intrinsics" ++#~ msgstr "Skjul libU77-indbyggede" ++ ++#, fuzzy ++#~ msgid "Print g77-specific version information and run internal tests" ++#~ msgstr "Udskriv g77-specifik oversætterversioninfo, kør interne test" ++ ++#~ msgid "Program is written in VXT (Digital-like) FORTRAN" ++#~ msgstr "Program er skrevet i VXT (Digital-agtig) FORTRAN" ++ ++#~ msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports" ++#~ msgstr "Slet VXT FORTRAN-understøttelse af ikke-FORTRAN-77-indbyggede " ++ ++#~ msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports" ++#~ msgstr "Deaktivér VXT FORTRAN-understøttelse af ikke-FORTRAN-77-indbyggede " ++ ++#, fuzzy ++#~ msgid "Enable non-FORTRAN-77 intrinsics VXT FORTRAN supports" ++#~ msgstr "Deaktivér VXT FORTRAN-understøttelse af ikke-FORTRAN-77-indbyggede " ++ ++#~ msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports" ++#~ msgstr "Skjul VXT FORTRAN-understøttelse af ikke-FORTRAN-77-indbyggede " ++ ++#, fuzzy ++#~ msgid "Print internal debugging-related information" ++#~ msgstr "Udskriv intern fejlanalyseringsrelateret info" ++ ++#~ msgid "Treat initial values of 0 like non-zero values" ++#~ msgstr "Behandl begyndelsesværdier på 0 som værdier forskellig fra nul" ++ ++#~ msgid "concatenation of string literals with __FUNCTION__ is deprecated" ++#~ msgstr "sammensætning af strengkonstanter med __FUNCTION__ er forældet" ++ + #~ msgid "ISO C++ forbids range expressions in switch statements" + #~ msgstr "ISO C++ forbyder intervaludtryk i switch-sætninger" + +@@ -22568,9 +22543,6 @@ + #~ msgid "unsupported wide integer operation" + #~ msgstr "bred heltalsoperation understøttes ikke" + +-#~ msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n" +-#~ msgstr "Copyright © 2003 Free Software Foundation, Inc.\n" +- + #~ msgid "mismatched braces in specs" + #~ msgstr "uafbalancerede krøllede paranteser i specifikationer" + +@@ -22796,9 +22768,6 @@ + #~ msgid "Consider all mem refs to static data to be volatile" + #~ msgstr "Betragt alle hukommelsesferencer til statiske data som volatile" + +-#~ msgid "Integrate simple functions into their callers" +-#~ msgstr "Integrér simple funktioner i deres kaldere" +- + #~ msgid "Output GNU ld formatted global initializers" + #~ msgstr "Udskriv GNU ld-formaterede globale startværdier" + +@@ -22829,9 +22798,6 @@ + #~ msgid "Use the smallest fitting integer to hold enums" + #~ msgstr "Benyt den mindst mulige størrelse heltal til enum-værdier" + +-#~ msgid "Enable most warning messages" +-#~ msgstr "Aktivér de fleste advarselsbeskeder" +- + #~ msgid "Warn if nested comments are detected" + #~ msgstr "Advar hvis indlejrede kommentarer mødes" + +@@ -22865,9 +22831,6 @@ + #~ msgid " -p Enable function profiling\n" + #~ msgstr " -p Aktivér funktionsprofilering\n" + +-#~ msgid " -version Display the compiler's version\n" +-#~ msgstr " -version Udskriv oversætterens version\n" +- + #~ msgid "" + #~ "\n" + #~ "Language specific options:\n" +@@ -22935,9 +22898,6 @@ + #~ msgid "The number of instructions in a single functions still eligible to inlining after a lot recursive inlining" + #~ msgstr "Antallet af instruktioner i en enkelt funktion der stadig indbygges efter megen rekursiv indbygning" + +-#~ msgid "Use the 26-bit version of the APCS" +-#~ msgstr "Benyt 26 bit-udgaven af APCS" +- + #~ msgid "Use Mingw32 interface" + #~ msgstr "Benyt Mingw32-grænseflade" + +@@ -23160,27 +23120,9 @@ + #~ msgid "cannot receive objects of non-POD type `%#T' through `...'" + #~ msgstr "kan ikke modtage objekter af en ikke-POD type '%#T' gennem '...'" + +-#~ msgid "duplicate enum value `%D'" +-#~ msgstr "enum-værdien '%D' optræder mere end én gang" +- +-#~ msgid "duplicate field `%D' (as enum and non-enum)" +-#~ msgstr "feltet '%D' optræder mere end én gang (som enum og som ikke-enum)" +- +-#~ msgid "duplicate nested type `%D'" +-#~ msgstr "den indlejrede type '%D' optræder mere end én gang" +- +-#~ msgid "duplicate field `%D' (as type and non-type)" +-#~ msgstr "feltet '%D' optræder mere end én gang (som type og som ikke-type)" +- +-#~ msgid "ISO C++ forbids member `%D' with same name as enclosing class" +-#~ msgstr "ISO C++ forbyder medlemmet '%D' med samme navn som den omgivende klasse" +- + #~ msgid "field `%D' invalidly declared offset type" + #~ msgstr "feltet '%D' er på ugyldig vis erklæret som en afstandstype" + +-#~ msgid "field `%D' declared static in union" +-#~ msgstr "feltet '%D' er erklæret statisk i union" +- + #~ msgid "lookup of `%D' finds `%#D'" + #~ msgstr "opslag af '%D' finder '%#D'" + +@@ -23196,9 +23138,6 @@ + #~ msgid "`%T' is implicitly a typename" + #~ msgstr "'%T' er underforstået et typenavn" + +-#~ msgid "ISO C++ forbids static data member `%D' with same name as enclosing class" +-#~ msgstr "ISO C++ forbyder statisk datamedlem '%D' med samme navn som den omgivende klasse" +- + #~ msgid "parameter `%D' invalidly declared offset type" + #~ msgstr "parameteren '%D' er på ugyldig vis erklæret som af en offset-type" + +@@ -23223,9 +23162,6 @@ + #~ msgid "parser may be lost: is there a '{' missing somewhere?" + #~ msgstr "fortolkeren kan være faret vild: mangler der en '{' et eller andet sted?" + +-#~ msgid "anachronistic use of array size in vector delete" +-#~ msgstr "forældet brug af tabelstørrelse i tabelformen af delete" +- + #~ msgid "invalid data member initialization" + #~ msgstr "ugyldig tildeling af startværdi til datamedlem" + +@@ -23289,9 +23225,6 @@ + #~ msgid "initializer list being treated as compound expression" + #~ msgstr "klargøringsliste bliver behandlet som et sammensat udtryk" + +-#~ msgid "ISO C++ forbids aggregate initializer to new" +-#~ msgstr "ISO C++ forbyder sammensat startværditildeling ved new" +- + #~ msgid "cannot declare references to references" + #~ msgstr "kan ikke erklære referencer til referencer" + +@@ -23352,9 +23285,6 @@ + #~ msgid "`sigof' applied to non-aggregate expression" + #~ msgstr "'sigof' benyttet på et udtryk der ikke er af en sammensat type" + +-#~ msgid "`sigof' applied to non-aggregate type" +-#~ msgstr "'sigof' benyttet på en type der ikke er sammensat" +- + #~ msgid "storage class specifier `%s' not allowed after struct or class" + #~ msgstr "lagringsklasseangivelsen '%s' er ikke tilladt efter struct eller class" + +@@ -23382,9 +23312,6 @@ + #~ msgid "ISO C++ forbids array dimensions with parenthesized type in new" + #~ msgstr "ISO C++ forbyder tabeldimensioner med parantetiseret type i new" + +-#~ msgid "`%T' is not a class or namespace" +-#~ msgstr "'%T' er ikke en klasse eller et navnerum" +- + #~ msgid "ISO C++ forbids label declarations" + #~ msgstr "ISO C++ forbyder etiketerklæringer" + +@@ -23520,9 +23447,6 @@ + #~ msgid "Warn when a function is declared extern, then inline" + #~ msgstr "Advar når en funktion erklæret extern erklæres inline" + +-#~ msgid "Don't announce deprecation of compiler features" +-#~ msgstr "Annoncér ikke forældelse af oversætterfaciliteter" +- + #~ msgid "directory name must immediately follow -I" + #~ msgstr "et katalognavn skal følge umiddelbart efter -I" + +@@ -23802,9 +23726,6 @@ + #~ msgid "missing binary operator" + #~ msgstr "manglende binær operator" + +-#~ msgid "operator '%s' has no left operand" +-#~ msgstr "operatoren '%s' har ikke nogen venstre operand" +- + #~ msgid "changing search order for system directory \"%s\"" + #~ msgstr "skifter søgeorden for systemkataloget \"%s\"" + +@@ -24022,9 +23943,6 @@ + #~ msgid "octal character constant does not fit in a byte" + #~ msgstr "oktal tegnkonstant kan ikke være i en byte" + +-#~ msgid "hex character constant does not fit in a byte" +-#~ msgstr "hexadecimal tegnkonstant kan ikke være i en byte" +- + #~ msgid "empty #if expression" + #~ msgstr "tomt #if-udtryk" + +Index: gcc/po/de.po +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/po/de.po,v +retrieving revision 1.5.4.14 +retrieving revision 1.5.4.15 +diff -u -r1.5.4.14 -r1.5.4.15 +--- gcc/po/de.po 5 Nov 2004 02:59:27 -0000 1.5.4.14 ++++ gcc/po/de.po 7 Nov 2004 19:59:07 -0000 1.5.4.15 +@@ -6,10 +6,10 @@ + # + msgid "" + msgstr "" +-"Project-Id-Version: gcc 3.4.2\n" ++"Project-Id-Version: gcc 3.4.3\n" + "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" +-"POT-Creation-Date: 2004-07-01 11:41-0700\n" +-"PO-Revision-Date: 2004-11-02 18:52+0100\n" ++"POT-Creation-Date: 2004-11-04 19:12-0800\n" ++"PO-Revision-Date: 2004-11-06 12:52+0100\n" + "Last-Translator: Roland Stigge \n" + "Language-Team: German \n" + "MIME-Version: 1.0\n" +@@ -36,16 +36,16 @@ + msgid "`%s' attribute only applies to function types" + msgstr "Attribut »%s« kann nur auf Funktionstypen angewandt werden" + +-#: attribs.c:416 c-common.c:4307 c-common.c:4326 c-common.c:4344 +-#: c-common.c:4371 c-common.c:4390 c-common.c:4413 c-common.c:4436 +-#: c-common.c:4462 c-common.c:4496 c-common.c:4540 c-common.c:4568 +-#: c-common.c:4596 c-common.c:4615 c-common.c:4870 c-common.c:4892 +-#: c-common.c:4927 c-common.c:4994 c-common.c:5040 c-common.c:5098 +-#: c-common.c:5129 c-common.c:5475 c-common.c:5498 c-common.c:5537 +-#: config/arm/arm.c:2281 config/arm/arm.c:2308 config/avr/avr.c:4539 +-#: config/h8300/h8300.c:4284 config/h8300/h8300.c:4307 config/i386/i386.c:1620 +-#: config/i386/i386.c:15397 config/i386/winnt.c:86 config/ia64/ia64.c:1057 +-#: config/ip2k/ip2k.c:3151 ++#: attribs.c:416 c-common.c:4306 c-common.c:4325 c-common.c:4343 ++#: c-common.c:4370 c-common.c:4389 c-common.c:4412 c-common.c:4435 ++#: c-common.c:4461 c-common.c:4495 c-common.c:4539 c-common.c:4567 ++#: c-common.c:4595 c-common.c:4614 c-common.c:4881 c-common.c:4903 ++#: c-common.c:4938 c-common.c:5005 c-common.c:5051 c-common.c:5109 ++#: c-common.c:5140 c-common.c:5440 c-common.c:5463 c-common.c:5502 ++#: config/arm/arm.c:2281 config/arm/arm.c:2308 config/avr/avr.c:4504 ++#: config/h8300/h8300.c:4284 config/h8300/h8300.c:4307 config/i386/i386.c:1626 ++#: config/i386/i386.c:15398 config/i386/winnt.c:86 config/ia64/ia64.c:1057 ++#: config/ip2k/ip2k.c:3151 config/rs6000/rs6000.c:15035 + #, c-format + msgid "`%s' attribute ignored" + msgstr "Attribut »%s« wird ignoriert" +@@ -119,7 +119,7 @@ + + #. We can, however, treat "undefined" any way we please. + #. Call abort to encourage the user to fix the program. +-#: builtins.c:4134 c-typeck.c:1733 ++#: builtins.c:4134 c-typeck.c:1713 + msgid "if this code is reached, the program will abort" + msgstr "Wenn dieser Code erreicht wird, wird das Programm abgebrochen." + +@@ -156,386 +156,391 @@ + msgid "target format does not support infinity" + msgstr "Zielformat unterstützt nicht »unendlich«" + +-#: c-common.c:917 ++#: c-common.c:916 + msgid "%Hsuggest explicit braces to avoid ambiguous `else'" + msgstr "%Hes wird empfohlen, explizite geschweifte Klammern zu setzen, um mehrdeutiges »else« zu vermeiden" + +-#: c-common.c:1141 ++#: c-common.c:1140 + msgid "%J'%D' is not defined outside of function scope" + msgstr "%J»%D« ist außerhalb des Funktionsgültigkeitsbereiches nicht definiert" + +-#: c-common.c:1161 ++#: c-common.c:1160 + #, c-format + msgid "string length `%d' is greater than the length `%d' ISO C%d compilers are required to support" + msgstr "Zeichenkettenlänge »%d« ist größer als die Länge »%d«, die von ISO-C%d-Compilern unterstützt werden muss" + +-#: c-common.c:1201 ++#: c-common.c:1200 + msgid "overflow in constant expression" + msgstr "Ãœberlauf in Konstanten-Ausdruck" + +-#: c-common.c:1221 ++#: c-common.c:1220 + msgid "integer overflow in expression" + msgstr "Ganzzahlüberlauf in Ausdruck" + +-#: c-common.c:1230 ++#: c-common.c:1229 + msgid "floating point overflow in expression" + msgstr "Gleitkommaüberlauf in Ausdruck" + +-#: c-common.c:1236 ++#: c-common.c:1235 + msgid "vector overflow in expression" + msgstr "Vektorüberlauf in Ausdruck" + + #. This detects cases like converting -129 or 256 to unsigned char. +-#: c-common.c:1258 ++#: c-common.c:1257 + msgid "large integer implicitly truncated to unsigned type" + msgstr "große Ganzzahl implizit auf vorzeichenlosen Typen abgeschnitten" + +-#: c-common.c:1260 ++#: c-common.c:1259 + msgid "negative integer implicitly converted to unsigned type" + msgstr "negative Ganzzahl implizit in vorzeichenlosen Typen konvertiert" + +-#: c-common.c:1306 ++#: c-common.c:1305 + msgid "overflow in implicit constant conversion" + msgstr "Ãœberlauf in impliziter Konstantenkonvertierung" + +-#: c-common.c:1442 ++#: c-common.c:1441 + #, c-format + msgid "operation on `%s' may be undefined" + msgstr "Operation auf »%s« könnte undefiniert sein" + +-#: c-common.c:1726 ++#: c-common.c:1725 + msgid "expression statement has incomplete type" + msgstr "Ausdrucksanweisung hat unvollständigen Typ" + +-#: c-common.c:1758 ++#: c-common.c:1757 + msgid "case label does not reduce to an integer constant" + msgstr "case-Marke reduziert nicht auf Ganzzahlkonstante" + +-#: c-common.c:2088 ++#: c-common.c:2087 + msgid "invalid truth-value expression" + msgstr "ungültiger Wahrheitswert-Ausdruck" + +-#: c-common.c:2139 ++#: c-common.c:2138 + #, c-format + msgid "invalid operands to binary %s" + msgstr "ungültige Operanden für binäres %s" + +-#: c-common.c:2373 ++#: c-common.c:2372 + msgid "comparison is always false due to limited range of data type" + msgstr "Vergleich ist durch beschränkten Wertebereich des Datentyps stets »unwahr«" + +-#: c-common.c:2375 ++#: c-common.c:2374 + msgid "comparison is always true due to limited range of data type" + msgstr "Vergleich ist durch beschränkten Wertebereich des Datentyps stets »wahr«" + +-#: c-common.c:2445 ++#: c-common.c:2444 + msgid "comparison of unsigned expression >= 0 is always true" + msgstr "Vergleich eines vorzeichenlosen Ausdrucks >= 0 ist stets »wahr«" + +-#: c-common.c:2454 ++#: c-common.c:2453 + msgid "comparison of unsigned expression < 0 is always false" + msgstr "Vergleich eines vorzeichenlosen Ausdrucks < 0 ist stets »unwahr«" + +-#: c-common.c:2499 ++#: c-common.c:2498 + msgid "pointer of type `void *' used in arithmetic" + msgstr "Zeiger auf Typen »void *« in Arithmetik verwendet" + +-#: c-common.c:2505 ++#: c-common.c:2504 + msgid "pointer to a function used in arithmetic" + msgstr "Zeiger auf Funktion in Arithmetik verwendet" + +-#: c-common.c:2511 ++#: c-common.c:2510 + msgid "pointer to member function used in arithmetic" + msgstr "Zeiger auf Elementfunktion in Arithmetik verwendet" + +-#: c-common.c:2600 f/com.c:14734 ++#: c-common.c:2599 f/com.c:14734 + msgid "struct type value used where scalar is required" + msgstr "Wert eines struct-Typs anstelle des geforderten Skalars verwendet" + +-#: c-common.c:2604 f/com.c:14738 ++#: c-common.c:2603 f/com.c:14738 + msgid "union type value used where scalar is required" + msgstr "Wert eines union-Typs anstelle des geforderten Skalars verwendet" + +-#: c-common.c:2608 f/com.c:14742 ++#: c-common.c:2607 f/com.c:14742 + msgid "array type value used where scalar is required" + msgstr "Wert eines array-Typs anstelle des geforderten Skalars verwendet" + + #. Common Ada/Pascal programmer's mistake. We always warn + #. about this since it is so bad. +-#: c-common.c:2645 ++#: c-common.c:2644 + msgid "the address of `%D', will always evaluate as `true'" + msgstr "die Adresse von »%D« wird immer zu »wahr« auswerten" + +-#: c-common.c:2739 f/com.c:14874 ++#: c-common.c:2738 f/com.c:14874 + msgid "suggest parentheses around assignment used as truth value" + msgstr "um Zuweisung, die als Wahrheitswert verwendet wird, werden Klammern vorgeschlagen" + +-#: c-common.c:2785 c-common.c:2825 ++#: c-common.c:2784 c-common.c:2824 + msgid "invalid use of `restrict'" + msgstr "ungültige Verwendung von »restrict«" + +-#: c-common.c:2935 ++#: c-common.c:2934 + msgid "invalid application of `sizeof' to a function type" + msgstr "ungültige Anwendung von »sizeof« auf einen Funktionstypen" + +-#: c-common.c:2945 ++#: c-common.c:2944 + #, c-format + msgid "invalid application of `%s' to a void type" + msgstr "ungültige Anwendung von »%s« auf einen void-Typen" + +-#: c-common.c:2951 ++#: c-common.c:2950 + msgid "invalid application of `%s' to incomplete type `%T' " + msgstr "ungültige Anwendung von »%s« auf unvollständigen Typen »%T«" + +-#: c-common.c:2992 ++#: c-common.c:2991 + msgid "`__alignof' applied to a bit-field" + msgstr "»__alignof« auf Bitfeld angewandt" + +-#: c-common.c:3484 ++#: c-common.c:3483 + #, c-format + msgid "cannot disable built-in function `%s'" + msgstr "kann eingebaute Funktion »%s« nicht abschalten" + +-#: c-common.c:3645 c-typeck.c:1974 ++#: c-common.c:3644 c-typeck.c:1954 + #, c-format + msgid "too few arguments to function `%s'" + msgstr "zu wenig Argumente für Funktion »%s«" + +-#: c-common.c:3651 c-typeck.c:1835 ++#: c-common.c:3650 c-typeck.c:1815 + #, c-format + msgid "too many arguments to function `%s'" + msgstr "zu viele Argumente für Funktion »%s«" + +-#: c-common.c:3670 ++#: c-common.c:3669 + #, c-format + msgid "non-floating-point argument to function `%s'" + msgstr "Nicht-Gleitkomma-Argument für Funktion »%s«" + +-#: c-common.c:3897 ++#: c-common.c:3896 + msgid "pointers are not permitted as case values" + msgstr "Zeiger sind nicht als case-Werte zugelassen" + +-#: c-common.c:3901 ++#: c-common.c:3900 + msgid "range expressions in switch statements are non-standard" + msgstr "Wertebereichsausdrücke in switch-Anweisungen sind nicht standardkonform" + +-#: c-common.c:3930 ++#: c-common.c:3929 + msgid "empty range specified" + msgstr "leerer Wertebereich angegeben" + +-#: c-common.c:3981 ++#: c-common.c:3980 + msgid "duplicate (or overlapping) case value" + msgstr "doppelte (oder sich überschneidende) case-Werte" + +-#: c-common.c:3982 ++#: c-common.c:3981 + msgid "%Jthis is the first entry overlapping that value" + msgstr "%Jdies ist der erste Eintrag, der diesen Wert überschneidet" + +-#: c-common.c:3986 ++#: c-common.c:3985 + msgid "duplicate case value" + msgstr "doppelter case-Wert" + +-#: c-common.c:3987 ++#: c-common.c:3986 + msgid "%Jpreviously used here" + msgstr "%Jbereits hier verwendet" + +-#: c-common.c:3991 ++#: c-common.c:3990 + msgid "multiple default labels in one switch" + msgstr "mehrere Standardmarken in einem »switch«" + +-#: c-common.c:3992 ++#: c-common.c:3991 + msgid "%Jthis is the first default label" + msgstr "%Jdies ist die erste Standardmarke" + +-#: c-common.c:4017 ++#: c-common.c:4016 + msgid "taking the address of a label is non-standard" + msgstr "das Ermitteln der Adresse einer Marke ist nicht standardkonform" + +-#: c-common.c:4063 ++#: c-common.c:4062 + msgid "%Hignoring return value of `%D', declared with attribute warn_unused_result" + msgstr "%Hder Rückgabewert von »%D« mit dem Attribut warn_unused_result wird ignoriert" + +-#: c-common.c:4068 ++#: c-common.c:4067 + msgid "%Hignoring return value of function declared with attribute warn_unused_result" + msgstr "%Hder Rückgabewert der Funktion, die mit dem Attribut warn_unused_result deklariert wurde, wird ignoriert" + +-#: c-common.c:4649 ++#: c-common.c:4651 + #, c-format + msgid "unknown machine mode `%s'" + msgstr "unbekannter Maschinenzustand »%s«" + +-#: c-common.c:4652 ++#: c-common.c:4654 + #, c-format + msgid "no data type for mode `%s'" + msgstr "kein Datentyp für Zustand »%s«" + +-#: c-common.c:4656 ++#: c-common.c:4658 + #, c-format + msgid "invalid pointer mode `%s'" + msgstr "ungültiger Zeigermodus »%s«" + +-#: c-common.c:4663 c-common.c:5226 ++#: c-common.c:4665 c-common.c:5237 + #, c-format + msgid "unable to emulate '%s'" + msgstr "»%s« kann nicht emuliert werden" + +-#: c-common.c:4707 ++#: c-common.c:4686 ++#, c-format ++msgid "mode `%s' applied to inappropriate type" ++msgstr "Modus »%s« auf unpassenden Typen angewendet" ++ ++#: c-common.c:4718 + msgid "%Jsection attribute cannot be specified for local variables" + msgstr "%JAbschnitts-Attribut kann nicht für lokale Variablen angegeben werden" + +-#: c-common.c:4718 ++#: c-common.c:4729 + msgid "%Jsection of '%D' conflicts with previous declaration" + msgstr "%JAbschnitt von »%D« in Konflikt mit vorheriger Deklaration" + +-#: c-common.c:4727 ++#: c-common.c:4738 + msgid "%Jsection attribute not allowed for '%D'" + msgstr "%JAbschnitts-Attribute nicht erlaubt für »%D«" + +-#: c-common.c:4733 ++#: c-common.c:4744 + msgid "%Jsection attributes are not supported for this target" + msgstr "%JAbschnitts-Attribute werden für dieses Ziel nicht unterstützt" + +-#: c-common.c:4771 ++#: c-common.c:4782 + msgid "requested alignment is not a constant" + msgstr "verlangte Ausrichtung ist keine Konstante" + +-#: c-common.c:4776 ++#: c-common.c:4787 + msgid "requested alignment is not a power of 2" + msgstr "verlangte Ausrichtung ist keine Zweierpotenz" + +-#: c-common.c:4781 ++#: c-common.c:4792 + msgid "requested alignment is too large" + msgstr "verlangte Ausrichtung ist zu groß" + +-#: c-common.c:4807 ++#: c-common.c:4818 + msgid "%Jalignment may not be specified for '%D'" + msgstr "%Jfür »%D« darf keine Ausrichtung angegeben werden" + +-#: c-common.c:4845 ++#: c-common.c:4856 + msgid "%J'%D' defined both normally and as an alias" + msgstr "%J»%D« sowohl normal als auch als Alias definiert" + +-#: c-common.c:4855 ++#: c-common.c:4866 + msgid "alias arg not a string" + msgstr "Alias-Argument ist keine Zeichenkette" + +-#: c-common.c:4898 ++#: c-common.c:4909 + msgid "visibility arg not a string" + msgstr "Sichtbarkeitsargument ist keine Zeichenkette" + +-#: c-common.c:4911 ++#: c-common.c:4922 + msgid "visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\"" + msgstr "Sichtbarkeitsargument muss »default«, »hidden«, »protected« oder »internal« sein" + +-#: c-common.c:4937 ++#: c-common.c:4948 + msgid "tls_model arg not a string" + msgstr "Argument für tls_model ist keine Zeichenkette" + +-#: c-common.c:4946 ++#: c-common.c:4957 + msgid "tls_model arg must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\"" + msgstr "Argument für tls_model muss »local-exec«, »initial-exec«, »local-dynamic« oder »global-dynamic« sein" + +-#: c-common.c:4968 c-common.c:5014 ++#: c-common.c:4979 c-common.c:5025 + msgid "%J'%E' attribute applies only to functions" + msgstr "%JAttribut »%E« kann nur auf Funktionen angewandt werden" + +-#: c-common.c:4973 c-common.c:5019 ++#: c-common.c:4984 c-common.c:5030 + msgid "%Jcan't set '%E' attribute after definition" + msgstr "%JAttribut »%E« kann nicht nach der Definition gesetzt werden" + +-#: c-common.c:5095 ++#: c-common.c:5106 + #, c-format + msgid "`%s' attribute ignored for `%s'" + msgstr "Attribut »%s« ignoriert für »%s«" + +-#: c-common.c:5158 ++#: c-common.c:5169 + #, c-format + msgid "invalid vector type for attribute `%s'" + msgstr "ungültiger Vektortyp für Attribut »%s«" + +-#: c-common.c:5182 c-common.c:5214 ++#: c-common.c:5193 c-common.c:5225 + msgid "no vector mode with the size and type specified could be found" + msgstr "Vektorzustand mit der angegebenen Größe und dem angegebenen Typ konnte nicht gefunden werden" + +-#: c-common.c:5316 ++#: c-common.c:5281 + msgid "nonnull attribute without arguments on a non-prototype" + msgstr "Nicht-Null-Attribut ohne Argumente für einen Nicht-Prototyp" + +-#: c-common.c:5331 ++#: c-common.c:5296 + #, c-format + msgid "nonnull argument has invalid operand number (arg %lu)" + msgstr "Nicht-Null-Argument hat ungültige Operandenzahl (Argument %lu)" + +-#: c-common.c:5350 ++#: c-common.c:5315 + #, c-format + msgid "nonnull argument with out-of-range operand number (arg %lu, operand %lu)" + msgstr "Nicht-Null-Argument mit Operandenzahl außerhalb des Wertebereiches (Argument %lu, Operand %lu)" + +-#: c-common.c:5358 ++#: c-common.c:5323 + #, c-format + msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)" + msgstr "Nicht-Null-Argument referenziert Nicht-Zeiger-Operanden (Argument %lu, Operand %lu)" + +-#: c-common.c:5438 ++#: c-common.c:5403 + #, c-format + msgid "null argument where non-null required (arg %lu)" + msgstr "Null-Argument, wo Nicht-Null erwartet (Argument %lu)" + +-#: c-common.c:5509 ++#: c-common.c:5474 + msgid "cleanup arg not an identifier" + msgstr "Argument für cleanup ist kein Bezeichner" + +-#: c-common.c:5516 ++#: c-common.c:5481 + msgid "cleanup arg not a function" + msgstr "Argument für cleanup ist keine Funktion" + +-#: c-common.c:5877 ++#: c-common.c:5842 + #, c-format + msgid "%s at end of input" + msgstr "%s am Ende der Eingabe" + +-#: c-common.c:5883 ++#: c-common.c:5848 + #, c-format + msgid "%s before %s'%c'" + msgstr "%s vor %s'%c'" + +-#: c-common.c:5885 ++#: c-common.c:5850 + #, c-format + msgid "%s before %s'\\x%x'" + msgstr "%s vor %s'\\x%x'" + +-#: c-common.c:5889 ++#: c-common.c:5854 + #, c-format + msgid "%s before string constant" + msgstr "%s vor Zeichenkettenkonstante" + +-#: c-common.c:5891 ++#: c-common.c:5856 + #, c-format + msgid "%s before numeric constant" + msgstr "%s vor numerischer Konstante" + +-#: c-common.c:5893 ++#: c-common.c:5858 + #, c-format + msgid "%s before \"%s\"" + msgstr "%s vor \"%s\"" + +-#: c-common.c:5895 ++#: c-common.c:5860 + #, c-format + msgid "%s before '%s' token" + msgstr "%s vor »%s«-Zeichen" + + #. Use `%s' to print the string in case there are any escape + #. characters in the message. +-#: c-common.c:5897 c-typeck.c:2612 c-typeck.c:4004 c-typeck.c:4019 +-#: c-typeck.c:4034 final.c:2776 final.c:2778 gcc.c:4581 rtl-error.c:109 +-#: toplev.c:1357 config/cris/cris.c:552 cp/parser.c:1848 cp/typeck.c:4155 ++#: c-common.c:5862 c-typeck.c:2592 c-typeck.c:3984 c-typeck.c:3999 ++#: c-typeck.c:4014 final.c:2776 final.c:2778 gcc.c:4584 rtl-error.c:109 ++#: toplev.c:1357 config/cris/cris.c:552 cp/parser.c:1848 cp/typeck.c:4173 + #: java/expr.c:356 java/verify.c:1456 java/verify.c:1457 java/verify.c:1472 + #, c-format + msgid "%s" + msgstr "%s" + +-#: c-convert.c:82 c-typeck.c:1211 c-typeck.c:3444 cp/typeck.c:1363 +-#: cp/typeck.c:5708 treelang/tree-convert.c:79 ++#: c-convert.c:82 c-typeck.c:1211 c-typeck.c:3424 cp/typeck.c:1363 ++#: cp/typeck.c:5729 treelang/tree-convert.c:79 + msgid "void value not ignored as it ought to be" + msgstr "void-Wert nicht ignoriert wie es sein sollte" + +@@ -701,386 +706,386 @@ + msgid "%Jnon-const declaration of '%D' follows const declaration" + msgstr "%JNicht-const-Deklaration von »%D« folgt const-Deklaration" + +-#: c-decl.c:1262 ++#: c-decl.c:1267 + msgid "%Jredundant redeclaration of '%D'" + msgstr "%Jredundante Redeklaration von »%D«" + +-#: c-decl.c:1581 ++#: c-decl.c:1586 + msgid "%Jdeclaration of '%D' shadows a parameter" + msgstr "%JDeklaration von »%D« überdeckt einen Parameter" + +-#: c-decl.c:1583 ++#: c-decl.c:1588 + msgid "%Jdeclaration of '%D' shadows a global declaration" + msgstr "%JDeklaration von »%D« überdeckt eine globale Deklaration" + +-#: c-decl.c:1585 ++#: c-decl.c:1590 + msgid "%Jdeclaration of '%D' shadows a previous local" + msgstr "%JDeklaration von »%D« überdeckt einen vorhergehenden lokalen Bezeichner" + +-#: c-decl.c:1587 cp/name-lookup.c:969 cp/name-lookup.c:992 ++#: c-decl.c:1592 cp/name-lookup.c:969 cp/name-lookup.c:992 + #: cp/name-lookup.c:1000 + msgid "%Jshadowed declaration is here" + msgstr "%Jverdeckte Deklaration ist hier" + +-#: c-decl.c:1697 ++#: c-decl.c:1702 + #, c-format + msgid "nested extern declaration of `%s'" + msgstr "geschachtelte extern-Deklaration von »%s«" + +-#: c-decl.c:1838 objc/objc-act.c:2534 objc/objc-act.c:6794 ++#: c-decl.c:1843 objc/objc-act.c:2534 objc/objc-act.c:6794 + msgid "%Jprevious declaration of '%D'" + msgstr "%Jvorherige Deklaration von »%D«" + +-#: c-decl.c:1879 c-decl.c:1881 ++#: c-decl.c:1884 c-decl.c:1886 + #, c-format + msgid "implicit declaration of function `%s'" + msgstr "implizite Deklaration der Funktion »%s«" + +-#: c-decl.c:1897 ++#: c-decl.c:1902 + #, c-format + msgid "`%s' undeclared here (not in a function)" + msgstr "»%s« ist hier nicht deklariert (nicht in einer Funktion)" + +-#: c-decl.c:1903 ++#: c-decl.c:1908 + #, c-format + msgid "`%s' undeclared (first use in this function)" + msgstr "»%s« nicht deklariert (erste Benutzung in dieser Funktion)" + +-#: c-decl.c:1908 ++#: c-decl.c:1913 + msgid "(Each undeclared identifier is reported only once" + msgstr "(Jeder nicht deklarierte Bezeichner wird nur einmal aufgeführt" + +-#: c-decl.c:1909 ++#: c-decl.c:1914 + msgid "for each function it appears in.)" + msgstr "für jede Funktion in der er auftritt.)" + +-#: c-decl.c:1962 ++#: c-decl.c:1967 + #, c-format + msgid "label %s referenced outside of any function" + msgstr "Marke %s außerhalb einer Funktion referenziert" + +-#: c-decl.c:2009 ++#: c-decl.c:2014 + #, c-format + msgid "duplicate label declaration `%s'" + msgstr "doppelte Markendeklaration »%s«" + +-#: c-decl.c:2010 ++#: c-decl.c:2015 + msgid "%Jthis is a previous declaration" + msgstr "%Jdies ist eine vorherige Deklaration" + +-#: c-decl.c:2045 ++#: c-decl.c:2050 + msgid "%Hduplicate label `%D'" + msgstr "%Hdoppelte Marke »%D«" + +-#: c-decl.c:2047 ++#: c-decl.c:2052 + msgid "%J`%D' previously defined here" + msgstr "%J»%D« bereits hier definiert" + +-#: c-decl.c:2049 ++#: c-decl.c:2054 + msgid "%J`%D' previously declared here" + msgstr "%J»%D« bereits hier deklariert" + +-#: c-decl.c:2069 ++#: c-decl.c:2074 + msgid "%Htraditional C lacks a separate namespace for labels, identifier `%s' conflicts" + msgstr "%Htraditionelles C bietet keinen separaten Namespace für Marken an, Bezeichner »%s« steht in Konflikt" + +-#: c-decl.c:2140 ++#: c-decl.c:2145 + msgid "%H`%s' defined as wrong kind of tag" + msgstr "%H»%s« definiert als falsche Symbolart" + +-#: c-decl.c:2378 ++#: c-decl.c:2383 + msgid "unnamed struct/union that defines no instances" + msgstr "unbenannte struct/union, die keine Instanzen definiert" + +-#: c-decl.c:2397 ++#: c-decl.c:2402 + msgid "useless keyword or type name in empty declaration" + msgstr "nutzloses Schlüsselwort oder Typenname in leerer Deklaration" + +-#: c-decl.c:2404 ++#: c-decl.c:2409 + msgid "two types specified in one empty declaration" + msgstr "zwei Typen in einer leeren Deklaration angegeben" + +-#: c-decl.c:2409 c-parse.y:735 c-parse.y:737 objc/objc-parse.y:776 +-#: objc/objc-parse.y:778 objc/objc-parse.y:3017 ++#: c-decl.c:2414 c-parse.y:735 c-parse.y:737 objc/objc-parse.y:776 ++#: objc/objc-parse.y:778 objc/objc-parse.y:3016 + msgid "empty declaration" + msgstr "leere Deklaration" + +-#: c-decl.c:2435 ++#: c-decl.c:2440 + msgid "ISO C90 does not support `static' or type qualifiers in parameter array declarators" + msgstr "ISO-C90 unterstützt kein »static« oder Typkennzeichner in Parameterfelddeklaratoren" + +-#: c-decl.c:2437 ++#: c-decl.c:2442 + msgid "ISO C90 does not support `[*]' array declarators" + msgstr "ISO-C90 unterstützt nicht »[*]«-Felddeklaratoren" + +-#: c-decl.c:2440 ++#: c-decl.c:2445 + msgid "GCC does not yet properly implement `[*]' array declarators" + msgstr "GCC implementiert noch keine richtigen »[*]«-Felddeklaratoren" + +-#: c-decl.c:2456 ++#: c-decl.c:2461 + msgid "static or type qualifiers in abstract declarator" + msgstr "static oder Typkennzeichner in abstraktem Deklarator" + +-#: c-decl.c:2526 ++#: c-decl.c:2531 + msgid "%J'%D' is usually a function" + msgstr "%J»%D« ist üblicherweise eine Funktion" + +-#: c-decl.c:2535 ++#: c-decl.c:2540 + #, c-format + msgid "typedef `%s' is initialized (use __typeof__ instead)" + msgstr "typedef »%s« ist initialisiert (benutzen Sie stattdessen __typeof__)" + +-#: c-decl.c:2541 ++#: c-decl.c:2546 + #, c-format + msgid "function `%s' is initialized like a variable" + msgstr "Funktion »%s« ist wie eine Variable initialisiert" + + #. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE. +-#: c-decl.c:2548 ++#: c-decl.c:2553 + #, c-format + msgid "parameter `%s' is initialized" + msgstr "Parameter »%s« ist initialisiert" + +-#: c-decl.c:2568 c-typeck.c:4254 ++#: c-decl.c:2573 c-typeck.c:4234 + msgid "variable-sized object may not be initialized" + msgstr "Objekt variabler Größe darf nicht initialisiert werden" + +-#: c-decl.c:2574 ++#: c-decl.c:2579 + #, c-format + msgid "variable `%s' has initializer but incomplete type" + msgstr "Variable »%s« hat Initialisierung, aber unvollständigen Typ" + +-#: c-decl.c:2580 ++#: c-decl.c:2585 + #, c-format + msgid "elements of array `%s' have incomplete type" + msgstr "Elemente des Feldes »%s« haben unvollständigen Typ" + +-#: c-decl.c:2649 c-decl.c:5451 cp/decl.c:3761 cp/decl.c:10141 ++#: c-decl.c:2654 c-decl.c:5462 cp/decl.c:3775 cp/decl.c:10238 + msgid "%Jinline function '%D' given attribute noinline" + msgstr "%Jinline-Funktion »%D« wurde das Attribut »noinline« gegeben" + +-#: c-decl.c:2725 ++#: c-decl.c:2730 + msgid "%Jinitializer fails to determine size of '%D'" + msgstr "%JInitialisierung scheitert an Größenbestimmung von »%D«" + +-#: c-decl.c:2730 ++#: c-decl.c:2735 + msgid "%Jarray size missing in '%D'" + msgstr "%JFeldgröße in »%D« fehlt" + +-#: c-decl.c:2746 ++#: c-decl.c:2751 + msgid "%Jzero or negative size array '%D'" + msgstr "%JFeldgröße von »%D« ist null oder negativ" + +-#: c-decl.c:2774 ++#: c-decl.c:2779 + msgid "%Jstorage size of '%D' isn't known" + msgstr "%JSpeichergröße von »%D« ist unbekannt" + +-#: c-decl.c:2784 ++#: c-decl.c:2789 + msgid "%Jstorage size of '%D' isn't constant" + msgstr "%JSpeichergröße von »%D« ist nicht konstant" + +-#: c-decl.c:2867 ++#: c-decl.c:2872 + msgid "%Jignoring asm-specifier for non-static local variable '%D'" + msgstr "%Jasm-Symbol für nicht-statische lokale Variable »%D« wird ignoriert" + +-#: c-decl.c:2978 ++#: c-decl.c:2983 + msgid "ISO C forbids forward parameter declarations" + msgstr "ISO-C verbietet Vorwärtsdeklaration für Parameter" + +-#: c-decl.c:3160 ++#: c-decl.c:3165 + msgid "" + msgstr "" + +-#: c-decl.c:3169 ++#: c-decl.c:3174 + #, c-format + msgid "bit-field `%s' width not an integer constant" + msgstr "Breite des Bitfeldes »%s« ist keine Ganzzahlkonstante" + +-#: c-decl.c:3177 ++#: c-decl.c:3182 + #, c-format + msgid "negative width in bit-field `%s'" + msgstr "negative Breite in Bitfeld »%s«" + +-#: c-decl.c:3182 ++#: c-decl.c:3187 + #, c-format + msgid "zero width for bit-field `%s'" + msgstr "Breite null für Bitfeld »%s«" + +-#: c-decl.c:3192 ++#: c-decl.c:3197 + #, c-format + msgid "bit-field `%s' has invalid type" + msgstr "Bitfeld »%s« hat ungültigen Typen" + +-#: c-decl.c:3201 ++#: c-decl.c:3206 + #, c-format + msgid "type of bit-field `%s' is a GCC extension" + msgstr "der Typ des Bitfeldes »%s« ist eine Erweiterung des GCC" + +-#: c-decl.c:3210 ++#: c-decl.c:3215 + #, c-format + msgid "width of `%s' exceeds its type" + msgstr "Breite von »%s« überschreitet dessen Typen" + +-#: c-decl.c:3220 ++#: c-decl.c:3225 + #, c-format + msgid "`%s' is narrower than values of its type" + msgstr "»%s« ist schmaler als die Werte seines Typs" + +-#: c-decl.c:3370 cp/decl.c:6805 ++#: c-decl.c:3375 cp/decl.c:6900 + msgid "`long long long' is too long for GCC" + msgstr "»long long long« ist für GCC zu lang" + +-#: c-decl.c:3375 ++#: c-decl.c:3380 + msgid "ISO C90 does not support `long long'" + msgstr "ISO-C90 unterstützt nicht »long long«" + +-#: c-decl.c:3384 c-decl.c:3387 cp/decl.c:6810 ++#: c-decl.c:3389 c-decl.c:3392 cp/decl.c:6905 + #, c-format + msgid "duplicate `%s'" + msgstr "doppeltes »%s«" + +-#: c-decl.c:3397 cp/decl.c:6816 ++#: c-decl.c:3402 cp/decl.c:6911 + msgid "`__thread' before `extern'" + msgstr "»__thread« vor »extern«" + +-#: c-decl.c:3399 cp/decl.c:6818 ++#: c-decl.c:3404 cp/decl.c:6913 + msgid "`__thread' before `static'" + msgstr "»__thread« vor »static«" + +-#: c-decl.c:3407 cp/decl.c:6845 ++#: c-decl.c:3412 cp/decl.c:6940 + #, c-format + msgid "two or more data types in declaration of `%s'" + msgstr "zwei oder mehr Datentypen in Deklaration von »%s«" + +-#: c-decl.c:3427 cp/decl.c:6850 ++#: c-decl.c:3432 cp/decl.c:6945 + #, c-format + msgid "`%s' fails to be a typedef or built in type" + msgstr "»%s« ist kein typedef oder eingebauter Typ" + +-#: c-decl.c:3466 ++#: c-decl.c:3471 + #, c-format + msgid "type defaults to `int' in declaration of `%s'" + msgstr "»int« ist Standardtyp in Deklaration von »%s«" + +-#: c-decl.c:3495 ++#: c-decl.c:3500 + #, c-format + msgid "both long and short specified for `%s'" + msgstr "sowohl »long« als auch »short« für »%s« angegeben" + +-#: c-decl.c:3499 cp/decl.c:6950 ++#: c-decl.c:3504 cp/decl.c:7045 + #, c-format + msgid "long or short specified with char for `%s'" + msgstr "»long« oder »short« mit »char« für »%s« angegeben" + +-#: c-decl.c:3506 cp/decl.c:6954 ++#: c-decl.c:3511 cp/decl.c:7049 + #, c-format + msgid "long or short specified with floating type for `%s'" + msgstr "»long« oder »short« mit Gleitkommatyp für »%s« angegeben" + +-#: c-decl.c:3509 ++#: c-decl.c:3514 + msgid "the only valid combination is `long double'" + msgstr "die einzig gültige Kombination ist »long double«" + +-#: c-decl.c:3515 ++#: c-decl.c:3520 + #, c-format + msgid "both signed and unsigned specified for `%s'" + msgstr "sowohl »signed« als auch »unsigned« für »%s« angegeben" + +-#: c-decl.c:3517 cp/decl.c:6943 ++#: c-decl.c:3522 cp/decl.c:7038 + #, c-format + msgid "long, short, signed or unsigned invalid for `%s'" + msgstr "long, short, signed oder unsigned ist ungültig für »%s«" + +-#: c-decl.c:3523 cp/decl.c:6963 ++#: c-decl.c:3528 cp/decl.c:7058 + #, c-format + msgid "long, short, signed or unsigned used invalidly for `%s'" + msgstr "long, short, signed oder unsigned ungültig verwendet für »%s«" + +-#: c-decl.c:3541 cp/decl.c:6984 ++#: c-decl.c:3546 cp/decl.c:7079 + #, c-format + msgid "complex invalid for `%s'" + msgstr "complex ungültig für »%s«" + +-#: c-decl.c:3583 ++#: c-decl.c:3588 + msgid "ISO C90 does not support complex types" + msgstr "ISO-C90 unterstützt nicht komplexe Typen" + +-#: c-decl.c:3595 ++#: c-decl.c:3600 + msgid "ISO C does not support plain `complex' meaning `double complex'" + msgstr "ISO-C unterstützt nicht »double complex« bedeutendes »complex«" + +-#: c-decl.c:3601 c-decl.c:3613 ++#: c-decl.c:3606 c-decl.c:3618 + msgid "ISO C does not support complex integer types" + msgstr "ISO-C unterstützt keine komplexen Ganzzahltypen" + +-#: c-decl.c:3643 c-decl.c:4104 cp/decl.c:7576 ++#: c-decl.c:3648 c-decl.c:4115 cp/decl.c:7671 + msgid "duplicate `const'" + msgstr "doppeltes »const«" + +-#: c-decl.c:3645 c-decl.c:4108 cp/decl.c:7580 ++#: c-decl.c:3650 c-decl.c:4119 cp/decl.c:7675 + msgid "duplicate `restrict'" + msgstr "doppeltes »restrict«" + +-#: c-decl.c:3647 c-decl.c:4106 cp/decl.c:7578 ++#: c-decl.c:3652 c-decl.c:4117 cp/decl.c:7673 + msgid "duplicate `volatile'" + msgstr "doppeltes »volatile«" + +-#: c-decl.c:3676 cp/decl.c:7147 ++#: c-decl.c:3681 cp/decl.c:7242 + #, c-format + msgid "multiple storage classes in declaration of `%s'" + msgstr "mehrere Speicherklassen in Deklaration von »%s«" + +-#: c-decl.c:3686 ++#: c-decl.c:3691 + msgid "function definition declared `auto'" + msgstr "Funktionsdefinition deklarierte »auto«" + +-#: c-decl.c:3688 ++#: c-decl.c:3693 + msgid "function definition declared `register'" + msgstr "Funktionsdefinition deklarierte »register«" + +-#: c-decl.c:3690 ++#: c-decl.c:3695 + msgid "function definition declared `typedef'" + msgstr "Funktionsdefinition deklarierte »typedef«" + +-#: c-decl.c:3692 ++#: c-decl.c:3697 + msgid "function definition declared `__thread'" + msgstr "Funktionsdefinition deklarierte »__thread«" + +-#: c-decl.c:3705 ++#: c-decl.c:3710 + #, c-format + msgid "storage class specified for structure field `%s'" + msgstr "Speicherklasse für Strukturfeld »%s« angegeben" + +-#: c-decl.c:3709 cp/decl.c:7192 ++#: c-decl.c:3714 cp/decl.c:7287 + #, c-format + msgid "storage class specified for parameter `%s'" + msgstr "Speicherklasse für Parameter »%s« angegeben" + +-#: c-decl.c:3712 cp/decl.c:7194 ++#: c-decl.c:3717 cp/decl.c:7289 + msgid "storage class specified for typename" + msgstr "Speicherklasse für Typnamen angegeben" + +-#: c-decl.c:3724 cp/decl.c:7209 ++#: c-decl.c:3729 cp/decl.c:7304 + #, c-format + msgid "`%s' initialized and declared `extern'" + msgstr "»%s« initialisiert und als »extern« deklariert" + +-#: c-decl.c:3726 cp/decl.c:7212 ++#: c-decl.c:3731 cp/decl.c:7307 + #, c-format + msgid "`%s' has both `extern' and initializer" + msgstr "»%s« hat sowohl »extern« als auch Initialisierung" + +-#: c-decl.c:3731 ++#: c-decl.c:3736 + #, c-format + msgid "file-scope declaration of `%s' specifies `auto'" + msgstr "Deklaration von »%s« in Datei-Sichtbarkeitsbereich spezifiziert »auto«" + +-#: c-decl.c:3736 cp/decl.c:7216 ++#: c-decl.c:3741 cp/decl.c:7311 + #, c-format + msgid "nested function `%s' declared `extern'" + msgstr "geschachtelte Funktion »%s« als »extern« deklariert" + +-#: c-decl.c:3742 cp/decl.c:7226 ++#: c-decl.c:3747 cp/decl.c:7321 + #, c-format + msgid "function-scope `%s' implicitly auto and declared `__thread'" + msgstr "Funktions-Gültigkeitsbereich »%s« ist implizit auto und deklarierte »__thread«" +@@ -1088,434 +1093,434 @@ + #. Only the innermost declarator (making a parameter be of + #. array type which is converted to pointer type) + #. may have static or type qualifiers. +-#: c-decl.c:3781 c-decl.c:3974 ++#: c-decl.c:3786 c-decl.c:3979 + msgid "static or type qualifiers in non-parameter array declarator" + msgstr "»static« oder Typkennzeichner in Nicht-Parameter-Felddeklarator" + +-#: c-decl.c:3825 ++#: c-decl.c:3830 + #, c-format + msgid "declaration of `%s' as array of voids" + msgstr "Deklaration von »%s« als Feld von voids" + +-#: c-decl.c:3831 ++#: c-decl.c:3836 + #, c-format + msgid "declaration of `%s' as array of functions" + msgstr "Deklaration von »%s« als Feld von Funtionen" + +-#: c-decl.c:3836 ++#: c-decl.c:3841 + msgid "invalid use of structure with flexible array member" + msgstr "ungültige Verwendung einer Struktur mit flexiblem Feldelement" + +-#: c-decl.c:3855 ++#: c-decl.c:3860 + #, c-format + msgid "size of array `%s' has non-integer type" + msgstr "Feldgröße von »%s« hat Nicht-Ganzzahltyp" + +-#: c-decl.c:3860 ++#: c-decl.c:3865 + #, c-format + msgid "ISO C forbids zero-size array `%s'" + msgstr "ISO-C verbietet Feld »%s« der Größe null" + +-#: c-decl.c:3867 ++#: c-decl.c:3872 + #, c-format + msgid "size of array `%s' is negative" + msgstr "Feldgröße von »%s« ist negativ" + +-#: c-decl.c:3880 ++#: c-decl.c:3885 + #, c-format + msgid "ISO C90 forbids array `%s' whose size can't be evaluated" + msgstr "ISO-C90 verbietet Feld »%s«, dessen Größe nicht ausgewertet werden kann" + +-#: c-decl.c:3883 ++#: c-decl.c:3888 + #, c-format + msgid "ISO C90 forbids variable-size array `%s'" + msgstr "ISO-C90 verbietet Feld »%s« variabler Größe" + +-#: c-decl.c:3913 c-decl.c:4131 cp/decl.c:7755 ++#: c-decl.c:3918 c-decl.c:4142 cp/decl.c:7850 + #, c-format + msgid "size of array `%s' is too large" + msgstr "Feldgröße von »%s« ist zu groß" + +-#: c-decl.c:3939 ++#: c-decl.c:3944 + msgid "ISO C90 does not support flexible array members" + msgstr "ISO-C90 unterstützt keine flexiblen Felder als Elemente" + +-#: c-decl.c:3949 ++#: c-decl.c:3954 + msgid "array type has incomplete element type" + msgstr "Feldtyp hat unvollständigen Elementtypen" + +-#: c-decl.c:3994 cp/decl.c:7347 ++#: c-decl.c:4009 cp/decl.c:7442 + #, c-format + msgid "`%s' declared as function returning a function" + msgstr "»%s« als Funktion, die eine Funktion zurückgibt, deklariert" + +-#: c-decl.c:3999 cp/decl.c:7352 ++#: c-decl.c:4014 cp/decl.c:7447 + #, c-format + msgid "`%s' declared as function returning an array" + msgstr "»%s« als Funktion, die ein Feld zurückgibt, deklariert" + +-#: c-decl.c:4027 ++#: c-decl.c:4038 + msgid "ISO C forbids qualified void function return type" + msgstr "ISO-C verbietet qualifiziertes void als Funktions-Rückgabetypen" + +-#: c-decl.c:4031 ++#: c-decl.c:4042 + msgid "type qualifiers ignored on function return type" + msgstr "Typkennzeichner an Funktions-Rückgabewert ignoriert" + +-#: c-decl.c:4060 c-decl.c:4146 c-decl.c:4270 c-decl.c:4356 ++#: c-decl.c:4071 c-decl.c:4157 c-decl.c:4281 c-decl.c:4367 + msgid "ISO C forbids qualified function types" + msgstr "ISO-C verbietet qualifizierte Funktionstypen" + +-#: c-decl.c:4100 cp/decl.c:7572 ++#: c-decl.c:4111 cp/decl.c:7667 + msgid "invalid type modifier within pointer declarator" + msgstr "ungültiger Typmodifizierer innerhalb Zeigerdeklarator" + +-#: c-decl.c:4181 ++#: c-decl.c:4192 + msgid "ISO C forbids const or volatile function types" + msgstr "ISO-C verbietet const- oder volatile-Funktionstypen" + +-#: c-decl.c:4201 cp/decl.c:8036 ++#: c-decl.c:4212 + #, c-format + msgid "variable or field `%s' declared void" + msgstr "Variable oder Feld »%s« als »void« deklariert" + +-#: c-decl.c:4234 ++#: c-decl.c:4245 + msgid "attributes in parameter array declarator ignored" + msgstr "Attribute in Parameterfelddeklarator ignoriert" + +-#: c-decl.c:4259 ++#: c-decl.c:4270 + msgid "invalid type modifier within array declarator" + msgstr "ungültiger Typmodifizierer in Felddeklarator" + +-#: c-decl.c:4304 ++#: c-decl.c:4315 + #, c-format + msgid "field `%s' declared as a function" + msgstr "Feld »%s« als Funktion deklariert" + +-#: c-decl.c:4310 ++#: c-decl.c:4321 + #, c-format + msgid "field `%s' has incomplete type" + msgstr "Feld »%s« hat unvollständigen Typen" + +-#: c-decl.c:4336 c-decl.c:4338 c-decl.c:4340 c-decl.c:4347 ++#: c-decl.c:4347 c-decl.c:4349 c-decl.c:4351 c-decl.c:4358 + #, c-format + msgid "invalid storage class for function `%s'" + msgstr "ungültige Speicherklasse für Funktion »%s«" + +-#: c-decl.c:4362 ++#: c-decl.c:4373 + msgid "`noreturn' function returns non-void value" + msgstr "»noreturn«-Funktion gibt nicht-void-Wert zurück" + +-#: c-decl.c:4377 ++#: c-decl.c:4388 + msgid "cannot inline function `main'" + msgstr "»main« ist nicht als »inline« möglich" + +-#: c-decl.c:4431 ++#: c-decl.c:4442 + msgid "variable previously declared `static' redeclared `extern'" + msgstr "als »extern« redeklarierte Variable war bereits als »static« deklariert" + +-#: c-decl.c:4440 ++#: c-decl.c:4451 + msgid "%Jvariable '%D' declared `inline'" + msgstr "%JVariable »%D« als »inline« deklariert" + + #. A mere warning is sure to result in improper semantics + #. at runtime. Don't bother to allow this to compile. +-#: c-decl.c:4468 cp/decl.c:5903 ++#: c-decl.c:4479 cp/decl.c:5972 + msgid "thread-local storage not supported for this target" + msgstr "Thread-lokaler Speicher wird für dieses Ziel nicht unterstützt" + +-#: c-decl.c:4529 c-decl.c:5495 ++#: c-decl.c:4540 c-decl.c:5506 + msgid "function declaration isn't a prototype" + msgstr "Funktionsdeklaration ist kein Prototyp" + +-#: c-decl.c:4535 ++#: c-decl.c:4546 + msgid "parameter names (without types) in function declaration" + msgstr "Parameternamen (ohne Typen) in Funktionsdeklaration" + +-#: c-decl.c:4563 ++#: c-decl.c:4574 + #, c-format + msgid "parameter `%s' has incomplete type" + msgstr "Parameter »%s« hat unvollständigen Typen" + +-#: c-decl.c:4566 ++#: c-decl.c:4577 + msgid "parameter has incomplete type" + msgstr "Parameter hat unvollständigen Typen" + +-#: c-decl.c:4615 ++#: c-decl.c:4626 + msgid "\"void\" as only parameter may not be qualified" + msgstr "\"void\" kann als einziger Parameter nicht qualifiziert werden" + +-#: c-decl.c:4636 ++#: c-decl.c:4647 + msgid "\"void\" must be the only parameter" + msgstr "\"void\" muss der einzige Parameter sein" + +-#: c-decl.c:4653 ++#: c-decl.c:4664 + msgid "%Jparameter \"%D\" has just a forward declaration" + msgstr "%JParameter »%D« hat nur eine Vorwärtsdeklaration" + + #. The first %s will be one of 'struct', 'union', or 'enum'. +-#: c-decl.c:4681 ++#: c-decl.c:4692 + #, c-format + msgid "\"%s %s\" declared inside parameter list" + msgstr "\"%s %s\" innerhalb Parameterliste deklariert" + + #. The %s will be one of 'struct', 'union', or 'enum'. +-#: c-decl.c:4685 ++#: c-decl.c:4696 + #, c-format + msgid "anonymous %s declared inside parameter list" + msgstr "anonymes %s innerhalb Parameterliste deklariert" + +-#: c-decl.c:4689 ++#: c-decl.c:4700 + msgid "its scope is only this definition or declaration, which is probably not what you want" + msgstr "sein Gültigkeitsbereich umfasst nur diese Definition bzw. Deklaration, was Sie wahrscheinlich nicht wollten" + +-#: c-decl.c:4774 ++#: c-decl.c:4785 + #, c-format + msgid "redefinition of `union %s'" + msgstr "Redefinition von »union %s«" + +-#: c-decl.c:4776 ++#: c-decl.c:4787 + #, c-format + msgid "redefinition of `struct %s'" + msgstr "Redefinition von »struct %s«" + +-#: c-decl.c:4844 cp/decl.c:3534 ++#: c-decl.c:4855 cp/decl.c:3548 + msgid "declaration does not declare anything" + msgstr "Deklaration deklariert nichts" + +-#: c-decl.c:4889 c-decl.c:4905 ++#: c-decl.c:4900 c-decl.c:4916 + msgid "%Jduplicate member '%D'" + msgstr "%Jdoppeltes Element »%D«" + +-#: c-decl.c:4939 c-decl.c:4942 ++#: c-decl.c:4950 c-decl.c:4953 + #, c-format + msgid "%s defined inside parms" + msgstr "%s innerhalb Parameter definiert" + +-#: c-decl.c:4940 c-decl.c:4943 c-decl.c:4954 ++#: c-decl.c:4951 c-decl.c:4954 c-decl.c:4965 + msgid "union" + msgstr "Union" + +-#: c-decl.c:4940 c-decl.c:4943 ++#: c-decl.c:4951 c-decl.c:4954 + msgid "structure" + msgstr "Struktur" + +-#: c-decl.c:4953 ++#: c-decl.c:4964 + #, c-format + msgid "%s has no %s" + msgstr "%s hat kein %s" + +-#: c-decl.c:4954 ++#: c-decl.c:4965 + msgid "struct" + msgstr "struct" + +-#: c-decl.c:4955 ++#: c-decl.c:4966 + msgid "named members" + msgstr "benannte Elemente" + +-#: c-decl.c:4955 ++#: c-decl.c:4966 + msgid "members" + msgstr "Elemente" + +-#: c-decl.c:4994 ++#: c-decl.c:5005 + #, c-format + msgid "nested redefinition of `%s'" + msgstr "Verschachtelte Redefinition von »%s«" + +-#: c-decl.c:5015 ++#: c-decl.c:5026 + msgid "%Jflexible array member in union" + msgstr "%Jflexibles Feldelement in Union" + +-#: c-decl.c:5020 ++#: c-decl.c:5031 + msgid "%Jflexible array member not at end of struct" + msgstr "%Jflexibles Feld-Element nicht am Ende von struct" + +-#: c-decl.c:5025 ++#: c-decl.c:5036 + msgid "%Jflexible array member in otherwise empty struct" + msgstr "%Jflexibles Feld-Element in ansonsten leerem struct" + +-#: c-decl.c:5032 ++#: c-decl.c:5043 + msgid "%Jinvalid use of structure with flexible array member" + msgstr "%Jungültige Verwendung einer Struktur mit flexiblem Feld-Element" + +-#: c-decl.c:5127 ++#: c-decl.c:5138 + msgid "union cannot be made transparent" + msgstr "union kann nicht transparent gemacht werden" + + #. This enum is a named one that has been declared already. +-#: c-decl.c:5196 ++#: c-decl.c:5207 + #, c-format + msgid "redeclaration of `enum %s'" + msgstr "Redeklaration von »enum %s«" + +-#: c-decl.c:5227 ++#: c-decl.c:5238 + msgid "enum defined inside parms" + msgstr "enum innerhalb von Parametern definiert" + +-#: c-decl.c:5260 ++#: c-decl.c:5271 + msgid "enumeration values exceed range of largest integer" + msgstr "Aufzählungswerte überschreiten Wertebereich des größten Ganzzahltypen" + +-#: c-decl.c:5363 ++#: c-decl.c:5374 + #, c-format + msgid "enumerator value for `%s' not integer constant" + msgstr "Aufzählungswert für »%s« ist keine Ganzzahlkonstante" + +-#: c-decl.c:5376 ++#: c-decl.c:5387 + msgid "overflow in enumeration values" + msgstr "Ãœberlauf in Aufzählungswerten" + +-#: c-decl.c:5381 ++#: c-decl.c:5392 + msgid "ISO C restricts enumerator values to range of `int'" + msgstr "ISO-C beschränkt Aufzählungswerte auf Bereich von »int«" + +-#: c-decl.c:5457 ++#: c-decl.c:5468 + msgid "return type is an incomplete type" + msgstr "Rückgabetyp ist unvollständig" + +-#: c-decl.c:5465 ++#: c-decl.c:5476 + msgid "return type defaults to `int'" + msgstr "Rückgabetyp ist auf »int« voreingestellt" + +-#: c-decl.c:5501 ++#: c-decl.c:5512 + msgid "%Jno previous prototype for '%D'" + msgstr "%Jkein vorheriger Prototyp für »%D«" + +-#: c-decl.c:5507 ++#: c-decl.c:5518 + msgid "%J'%D' was used with no prototype before its definition" + msgstr "%J»%D« wurde vor seiner Definition ohne Prototyp verwendet" + +-#: c-decl.c:5514 ++#: c-decl.c:5525 + msgid "%Jno previous declaration for '%D'" + msgstr "%Jkeine vorherige Deklaration für »%D«" + +-#: c-decl.c:5520 ++#: c-decl.c:5531 + msgid "%J`%D' was used with no declaration before its definition" + msgstr "%J»%D« wurde vor seiner Definition ohne Deklaration verwendet" + +-#: c-decl.c:5556 c-decl.c:6062 ++#: c-decl.c:5567 c-decl.c:6073 + msgid "%Jreturn type of '%D' is not `int'" + msgstr "%JRückgabetyp von »%D« ist nicht »int«" + +-#: c-decl.c:5571 ++#: c-decl.c:5582 + msgid "%Jfirst argument of '%D' should be `int'" + msgstr "%Jerstes Argument von »%D« sollte »int« sein" + +-#: c-decl.c:5580 ++#: c-decl.c:5591 + msgid "%Jsecond argument of '%D' should be 'char **'" + msgstr "%Jzweites Argument von »%D« sollte »char **« sein" + +-#: c-decl.c:5589 ++#: c-decl.c:5600 + msgid "%Jthird argument of '%D' should probably be 'char **'" + msgstr "%Jdrittes Argument von »%D« sollte wahrscheinlich »char **« sein" + +-#: c-decl.c:5599 ++#: c-decl.c:5610 + msgid "%J'%D' takes only zero or two arguments" + msgstr "%J»%D« benötigt entweder null oder zwei Argumente" + +-#: c-decl.c:5602 ++#: c-decl.c:5613 + msgid "%J'%D' is normally a non-static function" + msgstr "%J»%D« ist normalerweise eine Nicht-static-Funktion" + +-#: c-decl.c:5658 ++#: c-decl.c:5669 + msgid "%Jold-style parameter declarations in prototyped function definition" + msgstr "%JParameterdeklarationen alten Stils in Prototyp-Funktionsdeklaration" + +-#: c-decl.c:5672 ++#: c-decl.c:5683 + msgid "%Jparameter name omitted" + msgstr "%JParametername ausgelassen" + +-#: c-decl.c:5747 ++#: c-decl.c:5758 + msgid "%Jparameter name missing from parameter list" + msgstr "%JParametername fehlt in Parameterliste" + +-#: c-decl.c:5757 ++#: c-decl.c:5768 + msgid "%J\"%D\" declared as a non-parameter" + msgstr "%J\"%D\" als Nicht-Parameter deklariert" + +-#: c-decl.c:5762 ++#: c-decl.c:5773 + msgid "%Jmultiple parameters named \"%D\"" + msgstr "%Jmehrere Parameter wurden »%D« genannt" + +-#: c-decl.c:5770 ++#: c-decl.c:5781 + msgid "%Jparameter \"%D\" declared void" + msgstr "%JParameter »%D« als void deklariert" + +-#: c-decl.c:5785 c-decl.c:5787 ++#: c-decl.c:5796 c-decl.c:5798 + msgid "%Jtype of \"%D\" defaults to \"int\"" + msgstr "%JTyp von »%D« ist auf »int« voreingestellt" + +-#: c-decl.c:5801 ++#: c-decl.c:5812 + msgid "%Jparameter \"%D\" has incomplete type" + msgstr "%JParameter \"%D\" hat unvollständigen Typen" + +-#: c-decl.c:5807 ++#: c-decl.c:5818 + msgid "%Jdeclaration for parameter \"%D\" but no such parameter" + msgstr "%Jnicht vorhandener Parameter »%D« deklariert" + +-#: c-decl.c:5859 ++#: c-decl.c:5870 + msgid "number of arguments doesn't match prototype" + msgstr "Anzahl der Argumente passt nicht zum Prototypen" + +-#: c-decl.c:5860 c-decl.c:5891 c-decl.c:5898 ++#: c-decl.c:5871 c-decl.c:5902 c-decl.c:5909 + msgid "%Hprototype declaration" + msgstr "%HPrototyp-Deklaration" + +-#: c-decl.c:5889 ++#: c-decl.c:5900 + msgid "promoted argument \"%D\" doesn't match prototype" + msgstr "weitergegebenes Argument »%D« passt nicht zum Prototypen" + +-#: c-decl.c:5897 ++#: c-decl.c:5908 + msgid "argument \"%D\" doesn't match prototype" + msgstr "Argument »%D« passt nicht zum Prototypen" + +-#: c-decl.c:6094 cp/decl.c:10857 ++#: c-decl.c:6105 cp/decl.c:10954 + msgid "no return statement in function returning non-void" + msgstr "keine return-Anweisung in nicht void zurückgebender Funktion" + +-#: c-decl.c:6101 ++#: c-decl.c:6112 + msgid "this function may return with or without a value" + msgstr "diese Funktion kann mit oder ohne Wert zurückkehren" + + #. If we get here, declarations have been used in a for loop without + #. the C99 for loop scope. This doesn't make much sense, so don't + #. allow it. +-#: c-decl.c:6200 ++#: c-decl.c:6211 + msgid "'for' loop initial declaration used outside C99 mode" + msgstr "Anfangsdeklaration in »for«-Schleife außerhalb C99-Modus verwendet" + +-#: c-decl.c:6224 ++#: c-decl.c:6235 + #, c-format + msgid "'struct %s' declared in 'for' loop initial declaration" + msgstr "»struct %s« in Anfangsdeklaration einer »for«-Schleife deklariert" + +-#: c-decl.c:6227 ++#: c-decl.c:6238 + #, c-format + msgid "'union %s' declared in 'for' loop initial declaration" + msgstr "»union %s« in Anfangsdeklaration einer »for«-Schleife deklariert" + +-#: c-decl.c:6230 ++#: c-decl.c:6241 + #, c-format + msgid "'enum %s' declared in 'for' loop initial declaration" + msgstr "»enum %s« in Anfangsdeklaration einer »for«-Schleife deklariert" + +-#: c-decl.c:6238 ++#: c-decl.c:6249 + msgid "%Jdeclaration of non-variable '%D' in 'for' loop initial declaration" + msgstr "%JDeklaration der Nicht-Variablen »%D« in Anfangsdeklaration einer »for«-Schleife" + +-#: c-decl.c:6241 ++#: c-decl.c:6252 + msgid "%Jdeclaration of static variable '%D' in 'for' loop initial declaration" + msgstr "%JDeklaration der »static«-Variablen »%D« in Anfangsdeklaration einer »for«-Schleife" + +-#: c-decl.c:6244 ++#: c-decl.c:6255 + msgid "%Jdeclaration of 'extern' variable '%D' in 'for' loop initial declaration" + msgstr "%JDeklaration der »extern«-Variablen »%D« in Anfangsdeklaration einer »for«-Schleife" + +-#: c-decl.c:6557 ++#: c-decl.c:6568 + msgid "%Jredefinition of global '%D'" + msgstr "%JRedefinition des globalen »%D«" + +-#: c-decl.c:6558 ++#: c-decl.c:6569 + msgid "%J'%D' previously defined here" + msgstr "%J»%D« bereits hier verwendet" + +@@ -2152,89 +2157,89 @@ + msgid "missing makefile target after \"%s\"" + msgstr "fehlendes Makefile-Ziel hinter \"%s\"" + +-#: c-opts.c:291 ++#: c-opts.c:299 + msgid "-I- specified twice" + msgstr "-I- doppelt angegeben" + +-#: c-opts.c:692 ++#: c-opts.c:700 + #, c-format + msgid "switch \"%s\" is no longer supported" + msgstr "Option »%s« wird nicht mehr unterstützt" + +-#: c-opts.c:812 ++#: c-opts.c:820 + msgid "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)" + msgstr "-fhandle-exceptions wurde in -fexceptions umbenannt (und ist nun voreingestellt)" + +-#: c-opts.c:978 ++#: c-opts.c:986 + msgid "output filename specified twice" + msgstr "Ausgabedatei doppelt angegeben" + +-#: c-opts.c:1107 ++#: c-opts.c:1115 + msgid "-Wformat-y2k ignored without -Wformat" + msgstr "-Wformat-y2k wird ohne -Wformat ignoriert" + +-#: c-opts.c:1109 ++#: c-opts.c:1117 + msgid "-Wformat-extra-args ignored without -Wformat" + msgstr "-Wformat-extra-args wird ohne -Wformat ignoriert" + +-#: c-opts.c:1111 ++#: c-opts.c:1119 + msgid "-Wformat-zero-length ignored without -Wformat" + msgstr "-Wformat-zero-length wird ohne -Wformat ignoriert" + +-#: c-opts.c:1113 ++#: c-opts.c:1121 + msgid "-Wformat-nonliteral ignored without -Wformat" + msgstr "-Wformat-nonliteral wird ohne -Wformat ignoriert" + +-#: c-opts.c:1115 ++#: c-opts.c:1123 + msgid "-Wformat-security ignored without -Wformat" + msgstr "-Wformat-security wird ohne -Wformat ignoriert" + +-#: c-opts.c:1117 ++#: c-opts.c:1125 + msgid "-Wmissing-format-attribute ignored without -Wformat" + msgstr "-Wmissing-format-attribute wird ohne -Wformat ignoriert" + +-#: c-opts.c:1131 ++#: c-opts.c:1139 + #, c-format + msgid "opening output file %s: %m" + msgstr "Ausgabedatei »%s« wird geöffnet: %m" + +-#: c-opts.c:1136 ++#: c-opts.c:1144 + #, c-format + msgid "too many filenames given. Type %s --help for usage" + msgstr "zu viele Dateinamen angegeben. Geben sie »%s --help« für Hilfe ein" + +-#: c-opts.c:1215 ++#: c-opts.c:1223 + msgid "YYDEBUG not defined" + msgstr "YYDEBUG ist nicht definiert" + +-#: c-opts.c:1261 ++#: c-opts.c:1269 + #, c-format + msgid "opening dependency file %s: %m" + msgstr "Abhängigkeitsdatei »%s« wird geöffnet: %m" + +-#: c-opts.c:1271 ++#: c-opts.c:1279 + #, c-format + msgid "closing dependency file %s: %m" + msgstr "Abhängigkeitsdatei »%s« wird geschlossen: %m" + +-#: c-opts.c:1274 ++#: c-opts.c:1282 + #, c-format + msgid "when writing output to %s: %m" + msgstr "beim Schreiben der Ausgabe nach %s: %m" + +-#: c-opts.c:1344 ++#: c-opts.c:1352 + msgid "to generate dependencies you must specify either -M or -MM" + msgstr "um Abhängigkeiten zu erzeugen, müssen Sie entweder -M oder -MM angeben" + +-#: c-opts.c:1404 ++#: c-opts.c:1412 + msgid "" + msgstr "" + +-#: c-opts.c:1419 ++#: c-opts.c:1427 + msgid "" + msgstr "" + +-#: c-opts.c:1503 ++#: c-opts.c:1511 + msgid "too late for # directive to set debug directory" + msgstr "zu spät für »#«-Direktive, um Debug-Verzeichnis festzulegen" + +@@ -2251,7 +2256,7 @@ + msgid "ISO C forbids an empty source file" + msgstr "ISO-C erlaubt keine leeren Quelldateien" + +-#: c-parse.y:349 c-typeck.c:6248 objc/objc-parse.y:374 ++#: c-parse.y:349 c-typeck.c:6228 objc/objc-parse.y:374 + msgid "argument of `asm' is not a constant string" + msgstr "Argument von »asm« ist keine konstante Zeichenkette" + +@@ -2267,7 +2272,7 @@ + msgid "ISO C does not allow extra `;' outside of a function" + msgstr "ISO-C erlaubt kein extra »;« außerhalb einer Funktion" + +-#: c-parse.y:429 cppexp.c:1253 ++#: c-parse.y:429 cppexp.c:1257 + msgid "traditional C rejects the unary plus operator" + msgstr "traditionelles C weist den unären Plus-Operator zurück" + +@@ -2344,7 +2349,7 @@ + msgid "ISO C forbids forward references to `enum' types" + msgstr "ISO-C verbietet Vorwärts-Referenzen auf »enum«-Typen" + +-#: c-parse.y:1703 cp/parser.c:9339 objc/objc-parse.y:1755 ++#: c-parse.y:1703 cp/parser.c:9383 objc/objc-parse.y:1755 + msgid "comma at end of enumerator list" + msgstr "Komma am Ende der Aufzählungsliste" + +@@ -2352,7 +2357,7 @@ + msgid "no semicolon at end of struct or union" + msgstr "kein Semikolon am Ende von »struct« oder »union«" + +-#: c-parse.y:1732 objc/objc-parse.y:1784 objc/objc-parse.y:2847 ++#: c-parse.y:1732 objc/objc-parse.y:1784 objc/objc-parse.y:2846 + msgid "extra semicolon in struct or union specified" + msgstr "zusätzliches Semikolon in »struct« oder »union« angegeben" + +@@ -2380,23 +2385,23 @@ + msgid "braced-group within expression allowed only inside a function" + msgstr "geklammerte Gruppe innerhalb eines Ausdrucks nur in Funktion erlaubt" + +-#: c-parse.y:2185 objc/objc-parse.y:2242 ++#: c-parse.y:2185 objc/objc-parse.y:2241 + msgid "empty body in an else-statement" + msgstr "leerer Körper in einer else-Anweisung" + +-#: c-parse.y:2193 objc/objc-parse.y:2250 ++#: c-parse.y:2193 objc/objc-parse.y:2249 + msgid "%Hempty body in an if-statement" + msgstr "%Hleerer Körper in einer if-Anweisung" + +-#: c-parse.y:2273 cp/parser.c:6050 objc/objc-parse.y:2330 ++#: c-parse.y:2273 cp/parser.c:6088 objc/objc-parse.y:2329 + msgid "break statement not within loop or switch" + msgstr "break-Anweisung nicht innerhalb einer Schleife oder »switch«" + +-#: c-parse.y:2282 cp/parser.c:6061 objc/objc-parse.y:2339 ++#: c-parse.y:2282 cp/parser.c:6099 objc/objc-parse.y:2338 + msgid "continue statement not within a loop" + msgstr "continue-Anweisung nicht innerhalb einer Schleife" + +-#: c-parse.y:2324 objc/objc-parse.y:2381 ++#: c-parse.y:2324 objc/objc-parse.y:2380 + msgid "ISO C forbids `goto *expr;'" + msgstr "ISO-C verbietet »goto *expr;«" + +@@ -2406,11 +2411,11 @@ + #. it caused problems with the code in expand_builtin which + #. tries to verify that BUILT_IN_NEXT_ARG is being used + #. correctly. +-#: c-parse.y:2441 objc/objc-parse.y:2549 ++#: c-parse.y:2441 objc/objc-parse.y:2548 + msgid "ISO C requires a named argument before `...'" + msgstr "ISO-C erfordert ein benanntes Argument vor »...«" + +-#: c-parse.y:2539 objc/objc-parse.y:2647 ++#: c-parse.y:2539 objc/objc-parse.y:2646 + msgid "`...' in old-style identifier list" + msgstr "»...« in einer Bezeichnerliste alten Stils" + +@@ -2426,7 +2431,7 @@ + msgid "parser stack overflow" + msgstr "Parser-Keller-Ãœberlauf" + +-#: c-parse.y:2969 objc/objc-parse.y:3664 ++#: c-parse.y:2969 objc/objc-parse.y:3663 + #, c-format + msgid "syntax error at '%s' token" + msgstr "Syntaxfehler beim Token »%s«" +@@ -2508,7 +2513,7 @@ + msgid "%s: had text segment at different address" + msgstr "%s: Textsegment trat an anderer Adresse auf" + +-#: c-pch.c:357 cpperror.c:176 gcc.c:6554 ++#: c-pch.c:357 cpperror.c:176 gcc.c:6557 + #, c-format + msgid "%s: %s" + msgstr "%s: %s" +@@ -2616,12 +2621,12 @@ + msgid "(enclose actions of previous case statements requiring destructors in their own scope.)" + msgstr "(schließen Sie Aktionen vorheriger case-Anweisungen, die Destruktoren benötigen, in ihrem eigenen Gültigkeitsbereich ein)" + +-#: c-semantics.c:737 c-typeck.c:6270 cp/semantics.c:1070 ++#: c-semantics.c:737 c-typeck.c:6250 cp/semantics.c:1070 + #, c-format + msgid "%s qualifier ignored on asm" + msgstr "%s-Qualifizierer für asm ignoriert" + +-#: c-semantics.c:991 ++#: c-semantics.c:993 + msgid "will never be executed" + msgstr "wird niemals ausgeführt" + +@@ -2630,7 +2635,7 @@ + msgid "`%s' has an incomplete type" + msgstr "»%s« hat unvollständigen Typ" + +-#: c-typeck.c:145 cp/call.c:2532 ++#: c-typeck.c:145 cp/call.c:2542 + msgid "invalid use of void expression" + msgstr "falsche Benutzung eines void-Ausdruckes" + +@@ -2665,748 +2670,748 @@ + msgid "function return types not compatible due to `volatile'" + msgstr "Funktionsrückgabetypen nicht kompatibel wegen »volatile«" + +-#: c-typeck.c:984 c-typeck.c:2176 ++#: c-typeck.c:984 c-typeck.c:2156 + msgid "arithmetic on pointer to an incomplete type" + msgstr "Arithmetik mit Zeiger auf unvollständigen Typen" + +-#: c-typeck.c:1357 ++#: c-typeck.c:1337 + #, c-format + msgid "%s has no member named `%s'" + msgstr "%s hat kein Element namens »%s«" + +-#: c-typeck.c:1393 ++#: c-typeck.c:1373 + #, c-format + msgid "request for member `%s' in something not a structure or union" + msgstr "Anfrage nach Element »%s« in etwas, was keine Struktur oder Variante ist" + +-#: c-typeck.c:1422 ++#: c-typeck.c:1402 + msgid "dereferencing pointer to incomplete type" + msgstr "Dereferenzierung eines Zeigers auf unvollständigen Typen" + +-#: c-typeck.c:1426 ++#: c-typeck.c:1406 + msgid "dereferencing `void *' pointer" + msgstr "Dereferenzierung eines »void *«-Zeigers" + +-#: c-typeck.c:1443 cp/typeck.c:2127 ++#: c-typeck.c:1423 cp/typeck.c:2127 + #, c-format + msgid "invalid type argument of `%s'" + msgstr "falsches Typ-Argument von »%s«" + +-#: c-typeck.c:1461 cp/typeck.c:2152 ++#: c-typeck.c:1441 cp/typeck.c:2152 + msgid "subscript missing in array reference" + msgstr "Index fehlt in Feldreferenz" + +-#: c-typeck.c:1482 cp/typeck.c:2194 ++#: c-typeck.c:1462 cp/typeck.c:2194 + msgid "array subscript has type `char'" + msgstr "Feldindex hat Typ »char«" + +-#: c-typeck.c:1490 c-typeck.c:1579 cp/typeck.c:2198 cp/typeck.c:2284 ++#: c-typeck.c:1470 c-typeck.c:1559 cp/typeck.c:2198 cp/typeck.c:2284 + msgid "array subscript is not an integer" + msgstr "Feldindex ist keine Ganzzahl" + +-#: c-typeck.c:1523 ++#: c-typeck.c:1503 + msgid "ISO C forbids subscripting `register' array" + msgstr "ISO-C verbietet, ein »register«-Array zu indizieren" + +-#: c-typeck.c:1525 ++#: c-typeck.c:1505 + msgid "ISO C90 forbids subscripting non-lvalue array" + msgstr "ISO-C90 verbietet, ein Nicht-L-Wert-Feld zu indizieren" + +-#: c-typeck.c:1558 ++#: c-typeck.c:1538 + msgid "subscript has type `char'" + msgstr "Index hat Typ »char«" + +-#: c-typeck.c:1574 cp/typeck.c:2279 ++#: c-typeck.c:1554 cp/typeck.c:2279 + msgid "subscripted value is neither array nor pointer" + msgstr "indizierter Wert ist weder ein Feld noch ein Zeiger" + +-#: c-typeck.c:1604 ++#: c-typeck.c:1584 + #, c-format + msgid "local declaration of `%s' hides instance variable" + msgstr "lokale Deklaration von »%s« verdeckt Instanzvariable" + +-#: c-typeck.c:1697 ++#: c-typeck.c:1677 + msgid "called object is not a function" + msgstr "gerufenes Objekt ist keine Funktion" + + #. This situation leads to run-time undefined behavior. We can't, + #. therefore, simply error unless we can prove that all possible + #. executions of the program must execute the code. +-#: c-typeck.c:1729 ++#: c-typeck.c:1709 + msgid "function called through a non-compatible type" + msgstr "Funktion über nicht kompatiblen Typen aufgerufen" + +-#: c-typeck.c:1787 c-typeck.c:4198 c-typeck.c:4200 c-typeck.c:4216 +-#: c-typeck.c:4237 c-typeck.c:5616 ++#: c-typeck.c:1767 c-typeck.c:4178 c-typeck.c:4180 c-typeck.c:4196 ++#: c-typeck.c:4217 c-typeck.c:5596 + msgid "initializer element is not constant" + msgstr "Initialisierungselement ist nicht konstant" + +-#: c-typeck.c:1838 cp/typeck.c:2567 ++#: c-typeck.c:1818 cp/typeck.c:2567 + msgid "too many arguments to function" + msgstr "zu viele Argumente für Funktion" + +-#: c-typeck.c:1859 ++#: c-typeck.c:1839 + #, c-format + msgid "type of formal parameter %d is incomplete" + msgstr "Typ des formalen Parameters %d ist unvollständig" + +-#: c-typeck.c:1872 ++#: c-typeck.c:1852 + #, c-format + msgid "%s as integer rather than floating due to prototype" + msgstr "%s als Ganzzahl statt Gleitkomma aufgrund des Prototyps" + +-#: c-typeck.c:1875 ++#: c-typeck.c:1855 + #, c-format + msgid "%s as integer rather than complex due to prototype" + msgstr "%s als Ganzzahl statt komplex aufgrund des Prototyps" + +-#: c-typeck.c:1878 ++#: c-typeck.c:1858 + #, c-format + msgid "%s as complex rather than floating due to prototype" + msgstr "%s als komplex statt Gleitkomma aufgrund des Prototyps" + +-#: c-typeck.c:1881 ++#: c-typeck.c:1861 + #, c-format + msgid "%s as floating rather than integer due to prototype" + msgstr "%s als Gleitkomma statt Ganzzahl aufgrund des Prototyps" + +-#: c-typeck.c:1884 ++#: c-typeck.c:1864 + #, c-format + msgid "%s as complex rather than integer due to prototype" + msgstr "%s als komplex statt Ganzzahl aufgrund des Prototyps" + +-#: c-typeck.c:1887 ++#: c-typeck.c:1867 + #, c-format + msgid "%s as floating rather than complex due to prototype" + msgstr "%s als Gleitkomma statt komplex aufgrund des Prototyps" + +-#: c-typeck.c:1897 ++#: c-typeck.c:1877 + #, c-format + msgid "%s as `float' rather than `double' due to prototype" + msgstr "%s als »float« statt »double« aufgrund des Prototyps" + +-#: c-typeck.c:1915 ++#: c-typeck.c:1895 + #, c-format + msgid "%s with different width due to prototype" + msgstr "%s mit anderer Breite aufgrund des Prototyps" + +-#: c-typeck.c:1941 ++#: c-typeck.c:1921 + #, c-format + msgid "%s as unsigned due to prototype" + msgstr "%s als vorzeichenlos aufgrund des Prototyps" + +-#: c-typeck.c:1943 ++#: c-typeck.c:1923 + #, c-format + msgid "%s as signed due to prototype" + msgstr "%s als vorzeichenbehaftet aufgrund des Prototyps" + +-#: c-typeck.c:1977 cp/typeck.c:2673 ++#: c-typeck.c:1957 cp/typeck.c:2673 + msgid "too few arguments to function" + msgstr "zu wenige Argumente für Funktion" + +-#: c-typeck.c:2017 ++#: c-typeck.c:1997 + msgid "suggest parentheses around + or - inside shift" + msgstr "Klammern um + oder - innerhalb von Schiebeoperation empfohlen" + +-#: c-typeck.c:2024 ++#: c-typeck.c:2004 + msgid "suggest parentheses around && within ||" + msgstr "Klammern um && innerhalb von || empfohlen" + +-#: c-typeck.c:2033 ++#: c-typeck.c:2013 + msgid "suggest parentheses around arithmetic in operand of |" + msgstr "Klammern um Arithmetik in Operand von | empfohlen" + +-#: c-typeck.c:2036 ++#: c-typeck.c:2016 + msgid "suggest parentheses around comparison in operand of |" + msgstr "Klammern um Vergleich in Operand von | empfohlen" + +-#: c-typeck.c:2045 ++#: c-typeck.c:2025 + msgid "suggest parentheses around arithmetic in operand of ^" + msgstr "Klammern um Arithmetik in Operand von ^ empfohlen" + +-#: c-typeck.c:2048 ++#: c-typeck.c:2028 + msgid "suggest parentheses around comparison in operand of ^" + msgstr "Klammern um Vergleich in Operand von ^ empfohlen" + +-#: c-typeck.c:2055 ++#: c-typeck.c:2035 + msgid "suggest parentheses around + or - in operand of &" + msgstr "Klammern um + oder - in Operand von & empfohlen" + +-#: c-typeck.c:2058 ++#: c-typeck.c:2038 + msgid "suggest parentheses around comparison in operand of &" + msgstr "Klammern um Vergleich in Operand von & empfohlen" + +-#: c-typeck.c:2065 ++#: c-typeck.c:2045 + msgid "comparisons like X<=Y<=Z do not have their mathematical meaning" + msgstr "Vergleiche wie X<=Y<=Z haben nicht ihre mathematische Bedeutung" + +-#: c-typeck.c:2128 ++#: c-typeck.c:2108 + msgid "pointer of type `void *' used in subtraction" + msgstr "Zeiger des Typs »void *« in Subtraktion verwendet" + +-#: c-typeck.c:2130 ++#: c-typeck.c:2110 + msgid "pointer to a function used in subtraction" + msgstr "Zeiger auf eine Funktion in Subtraktion verwendet" + +-#: c-typeck.c:2224 ++#: c-typeck.c:2204 + msgid "wrong type argument to unary plus" + msgstr "Argument falschen Typs für unäres Plus" + +-#: c-typeck.c:2237 ++#: c-typeck.c:2217 + msgid "wrong type argument to unary minus" + msgstr "Argument falschen Typs für unäres Minus" + +-#: c-typeck.c:2254 ++#: c-typeck.c:2234 + msgid "ISO C does not support `~' for complex conjugation" + msgstr "ISO-C unterstützt nicht »~« für komplexe Konjugation" + +-#: c-typeck.c:2260 ++#: c-typeck.c:2240 + msgid "wrong type argument to bit-complement" + msgstr "Argument falschen Typs für Bit-Komplement" + +-#: c-typeck.c:2268 ++#: c-typeck.c:2248 + msgid "wrong type argument to abs" + msgstr "Argument falschen Typs für abs" + +-#: c-typeck.c:2280 ++#: c-typeck.c:2260 + msgid "wrong type argument to conjugation" + msgstr "Argument falschen Typs für Konjugation" + +-#: c-typeck.c:2294 ++#: c-typeck.c:2274 + msgid "wrong type argument to unary exclamation mark" + msgstr "Argument falschen Typs für unäres Ausrufungszeichen" + +-#: c-typeck.c:2337 ++#: c-typeck.c:2317 + msgid "ISO C does not support `++' and `--' on complex types" + msgstr "ISO-C unterstützt kein »++« und »--« für komplexe Typen" + +-#: c-typeck.c:2352 c-typeck.c:2384 ++#: c-typeck.c:2332 c-typeck.c:2364 + msgid "wrong type argument to increment" + msgstr "Argument falschen Typs für Inkrementierung" + +-#: c-typeck.c:2354 c-typeck.c:2386 ++#: c-typeck.c:2334 c-typeck.c:2366 + msgid "wrong type argument to decrement" + msgstr "Argument falschen Typs für Dekrementierung" + +-#: c-typeck.c:2375 ++#: c-typeck.c:2355 + msgid "increment of pointer to unknown structure" + msgstr "Erhöhung eines Zeigers auf unbekannte Struktur" + +-#: c-typeck.c:2377 ++#: c-typeck.c:2357 + msgid "decrement of pointer to unknown structure" + msgstr "Verminderung eines Zeigers auf unbekannte Struktur" + +-#: c-typeck.c:2502 ++#: c-typeck.c:2482 + msgid "invalid lvalue in unary `&'" + msgstr "ungültiger L-Wert in unärem »&«" + +-#: c-typeck.c:2534 ++#: c-typeck.c:2514 + #, c-format + msgid "attempt to take address of bit-field structure member `%s'" + msgstr "Versuch, die Adresse des Bitfeld-Elementes »%s« einer Struktur zu verwenden" + +-#: c-typeck.c:2668 ++#: c-typeck.c:2648 + msgid "use of conditional expressions as lvalues is deprecated" + msgstr "die Verwendung bedingter Ausdrücke als L-Werte ist veraltet" + +-#: c-typeck.c:2671 ++#: c-typeck.c:2651 + msgid "use of compound expressions as lvalues is deprecated" + msgstr "Verwendung zusammengesetzter Ausdrücke als L-Werte ist veraltet" + +-#: c-typeck.c:2674 ++#: c-typeck.c:2654 + msgid "use of cast expressions as lvalues is deprecated" + msgstr "Verwendung von cast-Ausdrücken als L-Werte ist veraltet" + +-#: c-typeck.c:2689 ++#: c-typeck.c:2669 + #, c-format + msgid "%s of read-only member `%s'" + msgstr "%s des schreibgeschützten Elementes »%s«" + +-#: c-typeck.c:2693 ++#: c-typeck.c:2673 + #, c-format + msgid "%s of read-only variable `%s'" + msgstr "%s der schreibgeschützten Variable »%s«" + +-#: c-typeck.c:2696 ++#: c-typeck.c:2676 + #, c-format + msgid "%s of read-only location" + msgstr "%s der schreibgeschützten Speicherstelle" + +-#: c-typeck.c:2714 ++#: c-typeck.c:2694 + #, c-format + msgid "cannot take address of bit-field `%s'" + msgstr "die Adresse des Bit-Feldes »%s« kann nicht ermittelt werden" + +-#: c-typeck.c:2742 treelang/treetree.c:946 ++#: c-typeck.c:2722 treelang/treetree.c:946 + #, c-format + msgid "global register variable `%s' used in nested function" + msgstr "globale Register-Variable »%s« in verschachtelter Funktion verwendet" + +-#: c-typeck.c:2746 treelang/treetree.c:950 ++#: c-typeck.c:2726 treelang/treetree.c:950 + #, c-format + msgid "register variable `%s' used in nested function" + msgstr "Register-Variable »%s« in verschachtelter Funktion verwendet" + +-#: c-typeck.c:2753 treelang/treetree.c:957 ++#: c-typeck.c:2733 treelang/treetree.c:957 + #, c-format + msgid "address of global register variable `%s' requested" + msgstr "Adresse der globalen Variable »%s« angefordert" + +-#: c-typeck.c:2765 ++#: c-typeck.c:2745 + msgid "cannot put object with volatile field into register" + msgstr "kann kein Objekt mit volatile-Feld in Register laden" + +-#: c-typeck.c:2769 treelang/treetree.c:962 ++#: c-typeck.c:2749 treelang/treetree.c:962 + #, c-format + msgid "address of register variable `%s' requested" + msgstr "Adresse der Register-Variablen »%s« angefordert" + +-#: c-typeck.c:2854 ++#: c-typeck.c:2834 + msgid "signed and unsigned type in conditional expression" + msgstr "Vorzeichenloser und -behafteter Typ in bedingtem Ausdruck" + +-#: c-typeck.c:2861 ++#: c-typeck.c:2841 + msgid "ISO C forbids conditional expr with only one void side" + msgstr "ISO-C verbietet bedingten Ausdruck mit nur einer void-Seite" + +-#: c-typeck.c:2877 c-typeck.c:2884 ++#: c-typeck.c:2857 c-typeck.c:2864 + msgid "ISO C forbids conditional expr between `void *' and function pointer" + msgstr "ISO-C verbietet bedingten Ausdruck zwischen »void *« und Funktionszeiger" + +-#: c-typeck.c:2890 ++#: c-typeck.c:2870 + msgid "pointer type mismatch in conditional expression" + msgstr "Zeigertyp passt nicht in bedingtem Ausdruck" + +-#: c-typeck.c:2897 c-typeck.c:2907 ++#: c-typeck.c:2877 c-typeck.c:2887 + msgid "pointer/integer type mismatch in conditional expression" + msgstr "Zeiger-/Ganzzahltyp passt nicht in bedingtem Ausdruck" + +-#: c-typeck.c:2921 ++#: c-typeck.c:2901 + msgid "type mismatch in conditional expression" + msgstr "Typ passt nicht in bedingtem Ausdruck" + +-#: c-typeck.c:2981 ++#: c-typeck.c:2961 + msgid "left-hand operand of comma expression has no effect" + msgstr "linker Operand des Komma-Ausdrucks hat keinen Effekt" + +-#: c-typeck.c:3012 ++#: c-typeck.c:2992 + msgid "cast specifies array type" + msgstr "Typkonvertierung gibt Feldtyp an" + +-#: c-typeck.c:3018 ++#: c-typeck.c:2998 + msgid "cast specifies function type" + msgstr "Typkonvertierung gibt Funktionstyp an" + +-#: c-typeck.c:3028 ++#: c-typeck.c:3008 + msgid "ISO C forbids casting nonscalar to the same type" + msgstr "ISO-C verbietet Typkonvertierung von Nicht-Skalar auf selben Typen" + +-#: c-typeck.c:3046 ++#: c-typeck.c:3026 + msgid "ISO C forbids casts to union type" + msgstr "ISO-C verbietet Typkonvertierung auf union-Typ" + +-#: c-typeck.c:3054 ++#: c-typeck.c:3034 + msgid "cast to union type from type not present in union" + msgstr "Typkonvertierung in union-Typ von nicht in union vorhandenem Typen" + +-#: c-typeck.c:3105 ++#: c-typeck.c:3085 + msgid "cast adds new qualifiers to function type" + msgstr "Typkonvertierung fügt neue Typqualifizierer zu Funktionstyp hinzu" + + #. There are qualifiers present in IN_OTYPE that are not + #. present in IN_TYPE. +-#: c-typeck.c:3110 ++#: c-typeck.c:3090 + msgid "cast discards qualifiers from pointer target type" + msgstr "Typkonvertierung streicht Qualifizierer von Zeiger-Zieltyp" + +-#: c-typeck.c:3125 ++#: c-typeck.c:3105 + msgid "cast increases required alignment of target type" + msgstr "Typkonvertierung erfordert Ausrichtung des Zieltyps" + +-#: c-typeck.c:3131 cp/typeck.c:4945 ++#: c-typeck.c:3111 cp/typeck.c:4963 + msgid "cast from pointer to integer of different size" + msgstr "Typkonvertierung von Zeiger auf Ganzzahl anderer Breite" + +-#: c-typeck.c:3136 ++#: c-typeck.c:3116 + msgid "cast does not match function type" + msgstr "Typkonvertierung passt nicht zum Funktionstypen" + +-#: c-typeck.c:3143 cp/typeck.c:4952 ++#: c-typeck.c:3123 cp/typeck.c:4970 + msgid "cast to pointer from integer of different size" + msgstr "Typkonvertierung in Zeiger von Ganzzahl anderer Breite" + +-#: c-typeck.c:3155 ++#: c-typeck.c:3135 + msgid "type-punning to incomplete type might break strict-aliasing rules" + msgstr "Type-Punning auf unvollständigen Typen kann strict-aliasing-Regeln verletzen" + +-#: c-typeck.c:3159 ++#: c-typeck.c:3139 + msgid "dereferencing type-punned pointer will break strict-aliasing rules" + msgstr "Dereferenzierung eines Type-Pun-Zeigers verletzt strict-aliasing-Regeln" + +-#: c-typeck.c:3170 ++#: c-typeck.c:3150 + msgid "ISO C forbids conversion of function pointer to object pointer type" + msgstr "ISO-C verbietet Konvertierung von Funktionszeigern in Objektzeigertyp" + +-#: c-typeck.c:3179 ++#: c-typeck.c:3159 + msgid "ISO C forbids conversion of object pointer to function pointer type" + msgstr "ISO-C verbietet Konvertierung von Objektzeigertypen in Funktionszeigertyp" + + #. Now we have handled acceptable kinds of LHS that are not truly lvalues. + #. Reject anything strange now. +-#: c-typeck.c:3337 ++#: c-typeck.c:3317 + msgid "invalid lvalue in assignment" + msgstr "ungültiger L-Wert in Zuweisung" + + #. Convert new value to destination type. +-#: c-typeck.c:3346 c-typeck.c:3371 c-typeck.c:3388 cp/typeck.c:5064 +-#: cp/typeck.c:5211 cp/typeck.c:5226 ++#: c-typeck.c:3326 c-typeck.c:3351 c-typeck.c:3368 cp/typeck.c:5082 ++#: cp/typeck.c:5229 cp/typeck.c:5244 + msgid "assignment" + msgstr "Zuweisung" + +-#: c-typeck.c:3455 ++#: c-typeck.c:3435 + msgid "cannot pass rvalue to reference parameter" + msgstr "kann R-Wert nicht an Referenzparameter übergeben" + +-#: c-typeck.c:3564 c-typeck.c:3640 ++#: c-typeck.c:3544 c-typeck.c:3620 + #, c-format + msgid "%s makes qualified function pointer from unqualified" + msgstr "%s erzeugt aus unqualifiziertem einen qualifizierten Funktionszeiger" + +-#: c-typeck.c:3568 c-typeck.c:3620 ++#: c-typeck.c:3548 c-typeck.c:3600 + #, c-format + msgid "%s discards qualifiers from pointer target type" + msgstr "%s streicht Qualifizierer von Zeiger-Zieltypen" + +-#: c-typeck.c:3574 ++#: c-typeck.c:3554 + msgid "ISO C prohibits argument conversion to union type" + msgstr "ISO-C verbietet Argumentkonvertierung in union-Typ" + +-#: c-typeck.c:3612 ++#: c-typeck.c:3592 + #, c-format + msgid "ISO C forbids %s between function pointer and `void *'" + msgstr "ISO-C verbietet %s zwischen Funktionszeiger und »void *«" + +-#: c-typeck.c:3629 ++#: c-typeck.c:3609 + #, c-format + msgid "pointer targets in %s differ in signedness" + msgstr "Zeigerziele in %s unterscheiden sich im Vorzeichenbesitz" + +-#: c-typeck.c:3645 ++#: c-typeck.c:3625 + #, c-format + msgid "%s from incompatible pointer type" + msgstr "%s von inkompatiblem Zeigertyp" + +-#: c-typeck.c:3651 c-typeck.c:4158 cp/typeck.c:1389 ++#: c-typeck.c:3631 c-typeck.c:4138 cp/typeck.c:1389 + msgid "invalid use of non-lvalue array" + msgstr "ungültige Verwendung eines Nicht-L-Wert-Feldes" + +-#: c-typeck.c:3665 ++#: c-typeck.c:3645 + #, c-format + msgid "%s makes pointer from integer without a cast" + msgstr "%s erzeugt Zeiger von Ganzzahl ohne Typkonvertierung" + +-#: c-typeck.c:3672 ++#: c-typeck.c:3652 + #, c-format + msgid "%s makes integer from pointer without a cast" + msgstr "%s erzeugt Ganzzahl von Zeiger ohne Typkonvertierung" + +-#: c-typeck.c:3686 c-typeck.c:3689 ++#: c-typeck.c:3666 c-typeck.c:3669 + #, c-format + msgid "incompatible type for argument %d of `%s'" + msgstr "inkompatibler Typ für Argument %d von »%s«" + +-#: c-typeck.c:3693 ++#: c-typeck.c:3673 + #, c-format + msgid "incompatible type for argument %d of indirect function call" + msgstr "inkompatibler Typ für Argument %d eines indirekten Funktionsaufrufes" + +-#: c-typeck.c:3697 ++#: c-typeck.c:3677 + #, c-format + msgid "incompatible types in %s" + msgstr "inkompatible Typen in %s" + + #. Function name is known; supply it. +-#: c-typeck.c:3753 ++#: c-typeck.c:3733 + #, c-format + msgid "passing arg of `%s'" + msgstr "Verarbeiten des Argumentes von »%s«" + + #. Function name unknown (call through ptr). +-#: c-typeck.c:3762 ++#: c-typeck.c:3742 + msgid "passing arg of pointer to function" + msgstr "Verarbeiten des Zeigerargumentes an Funktion" + + #. Function name is known; supply it. +-#: c-typeck.c:3770 ++#: c-typeck.c:3750 + #, c-format + msgid "passing arg %d of `%s'" + msgstr "Verarbeiten des Argumentes %d von »%s«" + + #. Function name unknown (call through ptr); just give arg number. +-#: c-typeck.c:3779 ++#: c-typeck.c:3759 + #, c-format + msgid "passing arg %d of pointer to function" + msgstr "Verarbeiten des Argumentes %d von Zeiger auf Funktion" + +-#: c-typeck.c:3836 ++#: c-typeck.c:3816 + msgid "traditional C rejects automatic aggregate initialization" + msgstr "traditionelles C lehnt automatische Gesamt-Initialisierung ab" + +-#: c-typeck.c:4007 c-typeck.c:4022 c-typeck.c:4037 ++#: c-typeck.c:3987 c-typeck.c:4002 c-typeck.c:4017 + #, c-format + msgid "(near initialization for `%s')" + msgstr "(nahe der Initialisierung für »%s«)" + +-#: c-typeck.c:4086 cp/typeck2.c:560 ++#: c-typeck.c:4066 cp/typeck2.c:550 + msgid "char-array initialized from wide string" + msgstr "char-Feld mit wide-Zeichenkette initialisiert" + +-#: c-typeck.c:4093 cp/typeck2.c:567 ++#: c-typeck.c:4073 cp/typeck2.c:557 + msgid "int-array initialized from non-wide string" + msgstr "int-Feld mit Nicht-wide-Zeichenkette initialisiert" + +-#: c-typeck.c:4111 cp/typeck2.c:582 ++#: c-typeck.c:4091 cp/typeck2.c:572 + msgid "initializer-string for array of chars is too long" + msgstr "Initialisierungs-Zeichenkette für char-Feld ist zu lang" + +-#: c-typeck.c:4181 ++#: c-typeck.c:4161 + msgid "array initialized from non-constant array expression" + msgstr "Feld mit nicht konstantem Feldausdruck initialisiert" + +-#: c-typeck.c:4232 ++#: c-typeck.c:4212 + msgid "initialization" + msgstr "Initialisierung" + +-#: c-typeck.c:4243 c-typeck.c:5621 ++#: c-typeck.c:4223 c-typeck.c:5601 + msgid "initializer element is not computable at load time" + msgstr "Initialisierungs-Element ist zur Lade-Zeit nicht berechenbar" + +-#: c-typeck.c:4258 cp/typeck2.c:659 ++#: c-typeck.c:4238 cp/typeck2.c:649 + msgid "invalid initializer" + msgstr "ungültige Initialisierung" + +-#: c-typeck.c:4540 cp/decl.c:4484 ++#: c-typeck.c:4520 cp/decl.c:4539 + msgid "opaque vector types cannot be initialized" + msgstr "opake Vektortypen können nicht initialisiert werden" + +-#: c-typeck.c:4734 ++#: c-typeck.c:4714 + msgid "extra brace group at end of initializer" + msgstr "zusätzliche geschweifte Klammern am Ende der Initialisierung" + +-#: c-typeck.c:4754 ++#: c-typeck.c:4734 + msgid "missing braces around initializer" + msgstr "geschweifte Klammern fehlen um Initialisierung" + +-#: c-typeck.c:4814 ++#: c-typeck.c:4794 + msgid "braces around scalar initializer" + msgstr "geschweifte Klammern um Skalar-Initialisierung" + +-#: c-typeck.c:4865 ++#: c-typeck.c:4845 + msgid "initialization of flexible array member in a nested context" + msgstr "Initialisierung eines flexiblen Feld-Elements in geschachteltem Kontext" + +-#: c-typeck.c:4867 ++#: c-typeck.c:4847 + msgid "initialization of a flexible array member" + msgstr "Initialisierung eines flexiblen Feld-Elements" + +-#: c-typeck.c:4898 ++#: c-typeck.c:4878 + msgid "missing initializer" + msgstr "fehlende Initialisierung" + +-#: c-typeck.c:4920 ++#: c-typeck.c:4900 + msgid "empty scalar initializer" + msgstr "leere Skalar-Initialisierung" + +-#: c-typeck.c:4925 ++#: c-typeck.c:4905 + msgid "extra elements in scalar initializer" + msgstr "zusätzliche Elemente in Skalar-Initialisierung" + +-#: c-typeck.c:5010 ++#: c-typeck.c:4990 + msgid "initialization designators may not nest" + msgstr "Initialisierungs-Bezeichner dürfen nicht geschachtelt werden" + +-#: c-typeck.c:5031 c-typeck.c:5099 ++#: c-typeck.c:5011 c-typeck.c:5079 + msgid "array index in non-array initializer" + msgstr "Feldindex in Nicht-Feld-Initialisierung" + +-#: c-typeck.c:5036 c-typeck.c:5152 ++#: c-typeck.c:5016 c-typeck.c:5132 + msgid "field name not in record or union initializer" + msgstr "Feldname nicht in Datensatz- oder union-Initialisierung" + +-#: c-typeck.c:5095 c-typeck.c:5097 ++#: c-typeck.c:5075 c-typeck.c:5077 + msgid "nonconstant array index in initializer" + msgstr "nichtkonstanter Feldindex in Initialisierung" + +-#: c-typeck.c:5101 c-typeck.c:5104 ++#: c-typeck.c:5081 c-typeck.c:5084 + msgid "array index in initializer exceeds array bounds" + msgstr "Feldindex in Initialisierung überschreitet Feldgrenzen" + +-#: c-typeck.c:5115 ++#: c-typeck.c:5095 + msgid "empty index range in initializer" + msgstr "leerer Indexbereich in Initialisierung" + +-#: c-typeck.c:5124 ++#: c-typeck.c:5104 + msgid "array index range in initializer exceeds array bounds" + msgstr "Feldindexbereich in Initialisierung überschreitet Feldgrenzen" + +-#: c-typeck.c:5164 ++#: c-typeck.c:5144 + #, c-format + msgid "unknown field `%s' specified in initializer" + msgstr "unbekanntes Feld »%s« in Initialisierung angegeben" + +-#: c-typeck.c:5200 c-typeck.c:5221 c-typeck.c:5683 ++#: c-typeck.c:5180 c-typeck.c:5201 c-typeck.c:5663 + msgid "initialized field with side-effects overwritten" + msgstr "initialisiertes Feld mit Seiteneffekten überschrieben" + +-#: c-typeck.c:5891 ++#: c-typeck.c:5871 + msgid "excess elements in char array initializer" + msgstr "Elementüberschreitung in char-Feld-Initialisierung" + +-#: c-typeck.c:5898 c-typeck.c:5944 ++#: c-typeck.c:5878 c-typeck.c:5924 + msgid "excess elements in struct initializer" + msgstr "Elementüberschreitung in struct-Initialisierung" + +-#: c-typeck.c:5959 ++#: c-typeck.c:5939 + msgid "non-static initialization of a flexible array member" + msgstr "nicht-statische Initialisierung eines flexiblen Feldelements" + +-#: c-typeck.c:6026 ++#: c-typeck.c:6006 + msgid "excess elements in union initializer" + msgstr "Elementüberschreitung in union-Initialisierung" + +-#: c-typeck.c:6047 ++#: c-typeck.c:6027 + msgid "traditional C rejects initialization of unions" + msgstr "traditionelles C lehnt Initialisierung von unions ab" + +-#: c-typeck.c:6110 ++#: c-typeck.c:6090 + msgid "excess elements in array initializer" + msgstr "Elementüberschreitung in Feldinitialisierung" + +-#: c-typeck.c:6139 ++#: c-typeck.c:6119 + msgid "excess elements in vector initializer" + msgstr "Elementüberschreitung in Vektorinitialisierung" + +-#: c-typeck.c:6161 ++#: c-typeck.c:6141 + msgid "excess elements in scalar initializer" + msgstr "Elementüberschreitung in Skalar-Initialisierung" + +-#: c-typeck.c:6263 ++#: c-typeck.c:6243 + msgid "asm template is not a string constant" + msgstr "asm-Template ist keine Zeichenkettenkonstante" + +-#: c-typeck.c:6295 ++#: c-typeck.c:6275 + msgid "invalid lvalue in asm statement" + msgstr "ungültiger L-Wert in asm-Anweisung" + +-#: c-typeck.c:6367 cp/typeck.c:5902 ++#: c-typeck.c:6347 cp/typeck.c:5923 + msgid "modification by `asm'" + msgstr "Modifizierung durch »asm«" + +-#: c-typeck.c:6385 cp/typeck.c:5986 ++#: c-typeck.c:6365 cp/typeck.c:6007 + msgid "function declared `noreturn' has a `return' statement" + msgstr "als »noreturn« deklarierte Funktion hat »return«-Anweisung" + +-#: c-typeck.c:6392 ++#: c-typeck.c:6372 + msgid "`return' with no value, in function returning non-void" + msgstr "»return« ohne Wert in nicht void zurückgebender Funktion" + +-#: c-typeck.c:6398 ++#: c-typeck.c:6378 + msgid "`return' with a value, in function returning void" + msgstr "»return« mit Wert in void zurückgebender Funktion" + +-#: c-typeck.c:6402 ++#: c-typeck.c:6382 + msgid "return" + msgstr "return" + +-#: c-typeck.c:6454 ++#: c-typeck.c:6434 + msgid "function returns address of local variable" + msgstr "Funktion liefert Adresse einer lokalen Variablen zurück" + +-#: c-typeck.c:6509 cp/semantics.c:749 ++#: c-typeck.c:6489 cp/semantics.c:749 + msgid "switch quantity not an integer" + msgstr "switch-Größe keine Ganzzahl" + +-#: c-typeck.c:6519 ++#: c-typeck.c:6499 + msgid "`long' switch expression not converted to `int' in ISO C" + msgstr "»long« switch-Ausdruck nicht nach »int« konvertiert in ISO C" + +-#: c-typeck.c:6560 cp/parser.c:5560 ++#: c-typeck.c:6540 cp/parser.c:5597 + msgid "case label not within a switch statement" + msgstr "case-Marke nicht innerhalb einer switch-Anweisung" + +-#: c-typeck.c:6562 ++#: c-typeck.c:6542 + msgid "`default' label not within a switch statement" + msgstr "»default«-Marke nicht innerhalb einer switch-Anweisung" + +-#: c-typeck.c:6714 c-typeck.c:6748 ++#: c-typeck.c:6694 c-typeck.c:6728 + msgid "division by zero" + msgstr "Teilung durch Null" + +-#: c-typeck.c:6793 cp/typeck.c:2953 ++#: c-typeck.c:6773 cp/typeck.c:2953 + msgid "right shift count is negative" + msgstr "Rechts-Schiebe-Weite ist negativ" + +-#: c-typeck.c:6800 cp/typeck.c:2959 ++#: c-typeck.c:6780 cp/typeck.c:2959 + msgid "right shift count >= width of type" + msgstr "Rechts-Schiebe-Weite >= Breite des Typs" + +-#: c-typeck.c:6821 cp/typeck.c:2978 ++#: c-typeck.c:6801 cp/typeck.c:2978 + msgid "left shift count is negative" + msgstr "Links-Schiebe-Weite ist negativ" + +-#: c-typeck.c:6824 cp/typeck.c:2980 ++#: c-typeck.c:6804 cp/typeck.c:2980 + msgid "left shift count >= width of type" + msgstr "Links-Schiebe-Weite >= Breite des Typs" + +-#: c-typeck.c:6845 ++#: c-typeck.c:6825 + msgid "shift count is negative" + msgstr "Schiebeweite ist negativ" + +-#: c-typeck.c:6847 ++#: c-typeck.c:6827 + msgid "shift count >= width of type" + msgstr "Schiebeweite >= Breite des Typs" + +-#: c-typeck.c:6864 cp/typeck.c:3015 ++#: c-typeck.c:6844 cp/typeck.c:3015 + msgid "comparing floating point with == or != is unsafe" + msgstr "Vergleich von Gleitkomma mit == oder != ist unsicher" + +-#: c-typeck.c:6888 c-typeck.c:6894 ++#: c-typeck.c:6868 c-typeck.c:6874 + msgid "ISO C forbids comparison of `void *' with function pointer" + msgstr "ISO-C verbietet Vergleich von »void *« mit Funktionszeiger" + +-#: c-typeck.c:6897 c-typeck.c:6937 c-typeck.c:6965 ++#: c-typeck.c:6877 c-typeck.c:6917 c-typeck.c:6945 + msgid "comparison of distinct pointer types lacks a cast" + msgstr "in Vergleich verschiedener Zeigertypen fehlt Typkonvertierung" + +-#: c-typeck.c:6911 c-typeck.c:6916 c-typeck.c:6985 c-typeck.c:6990 ++#: c-typeck.c:6891 c-typeck.c:6896 c-typeck.c:6965 c-typeck.c:6970 + msgid "comparison between pointer and integer" + msgstr "Vergleich zwischen Zeiger und Ganzzahl" + +-#: c-typeck.c:6932 c-typeck.c:6960 ++#: c-typeck.c:6912 c-typeck.c:6940 + msgid "ISO C forbids ordered comparisons of pointers to functions" + msgstr "ISO-C verbietet geordnete Vergleiche zwischen Zeigern auf Funktionen" + +-#: c-typeck.c:6957 ++#: c-typeck.c:6937 + msgid "comparison of complete and incomplete pointers" + msgstr "Vergleich von vollständigen und unvollständigen Zeigern" + +-#: c-typeck.c:6973 c-typeck.c:6980 ++#: c-typeck.c:6953 c-typeck.c:6960 + msgid "ordered comparison of pointer with integer zero" + msgstr "geordneter Vergleich von Zeiger mit Ganzzahlnull" + +-#: c-typeck.c:7004 cp/typeck.c:3151 ++#: c-typeck.c:6984 cp/typeck.c:3151 + msgid "unordered comparison on non-floating point argument" + msgstr "ungeordneter Vergleich mit Nicht-Gleitkomma-Argument" + +-#: c-typeck.c:7214 ++#: c-typeck.c:7194 + msgid "comparison between signed and unsigned" + msgstr "Vergleich zwischen vorzeichenbehaftet und vorzeichenlos" + +-#: c-typeck.c:7260 cp/typeck.c:3398 ++#: c-typeck.c:7240 cp/typeck.c:3398 + msgid "comparison of promoted ~unsigned with constant" + msgstr "Vergleich von weitergegebenem ~unsigned mit Konstante" + +-#: c-typeck.c:7268 cp/typeck.c:3406 ++#: c-typeck.c:7248 cp/typeck.c:3406 + msgid "comparison of promoted ~unsigned with unsigned" + msgstr "Vergleich von weitergegebenem ~unsigned mit unsigned" + +@@ -3414,7 +3419,7 @@ + msgid "%Jinlining failed in call to '%F'" + msgstr "%J»inline« beim Aufruf von »%F« gescheitert" + +-#: calls.c:1839 calls.c:2211 tree-inline.c:1339 tree-inline.c:1346 ++#: calls.c:1839 calls.c:2211 tree-inline.c:1339 tree-inline.c:1347 + msgid "called from here" + msgstr "von hier aufgerufen" + +@@ -3474,7 +3479,7 @@ + msgid "verify_flow_info: Basic block %d succ edge is corrupted" + msgstr "verify_flow_info: Nachfolgekante des Basis-Blocks %d ist beschädigt" + +-#: cfg.c:909 cfgrtl.c:1971 ++#: cfg.c:909 cfgrtl.c:1983 + #, c-format + msgid "Wrong amount of branch edges after unconditional jump %i" + msgstr "Falsche Summe der Zweig-Kanten nach unbedingtem Sprung %i" +@@ -3553,116 +3558,116 @@ + msgid "Edge from %d to %d should not be marked irreducible." + msgstr "Kante von %d nach %d sollte nicht als irreduzibel markiert werden." + +-#: cfgrtl.c:1877 ++#: cfgrtl.c:1889 + #, c-format + msgid "end insn %d for block %d not found in the insn stream" + msgstr "Ende-Befehl %d für Block %d nicht im Befehlsstrom gefunden" + +-#: cfgrtl.c:1891 ++#: cfgrtl.c:1903 + #, c-format + msgid "insn %d is in multiple basic blocks (%d and %d)" + msgstr "Befehl %d ist in mehreren Basisblöcken (%d und %d)" + +-#: cfgrtl.c:1903 ++#: cfgrtl.c:1915 + #, c-format + msgid "head insn %d for block %d not found in the insn stream" + msgstr "Kopf-Befehl %d für Block %d nicht im Befehlsstrom gefunden" + +-#: cfgrtl.c:1925 ++#: cfgrtl.c:1937 + msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i" + msgstr "verify_flow_info: REG_BR_PROB passt nicht zu cfg %wi %i" + +-#: cfgrtl.c:1953 ++#: cfgrtl.c:1965 + #, c-format + msgid "Missing REG_EH_REGION note in the end of bb %i" + msgstr "Fehlender Vermerk von REG_EH_REGION am Ende vom bb %i" + +-#: cfgrtl.c:1961 ++#: cfgrtl.c:1973 + #, c-format + msgid "Too many outgoing branch edges from bb %i" + msgstr "Zu viele abgehende Zweig-Kanten vom bb %i" + +-#: cfgrtl.c:1966 ++#: cfgrtl.c:1978 + #, c-format + msgid "Fallthru edge after unconditional jump %i" + msgstr "Fallthru-Kante nach unbedingtem Sprung %i" + +-#: cfgrtl.c:1977 ++#: cfgrtl.c:1989 + #, c-format + msgid "Wrong amount of branch edges after conditional jump %i" + msgstr "Falsche Summe der Zweig-Kanten nach bedingtem Sprung %i" + +-#: cfgrtl.c:1982 ++#: cfgrtl.c:1994 + #, c-format + msgid "Call edges for non-call insn in bb %i" + msgstr "Ruf-Kanten für Nicht-Aufruf-Befehl im bb %i" + +-#: cfgrtl.c:1991 ++#: cfgrtl.c:2003 + #, c-format + msgid "Abnormal edges for no purpose in bb %i" + msgstr "Abnormale Kanten ohne Grund in bb %i" + +-#: cfgrtl.c:2001 ++#: cfgrtl.c:2013 + #, c-format + msgid "insn %d inside basic block %d but block_for_insn is NULL" + msgstr "Befehl %d innerhalb des Basis-Blockes %d, aber block_for_insn ist NULL" + +-#: cfgrtl.c:2005 ++#: cfgrtl.c:2017 + #, c-format + msgid "insn %d inside basic block %d but block_for_insn is %i" + msgstr "Befehl %d innerhalb des Basis-Blockes %d, aber block_for_insn ist %i" + +-#: cfgrtl.c:2019 cfgrtl.c:2029 ++#: cfgrtl.c:2031 cfgrtl.c:2041 + #, c-format + msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d" + msgstr "NOTE_INSN_BASIC_BLOCK fehlt für Block %d" + +-#: cfgrtl.c:2042 ++#: cfgrtl.c:2054 + #, c-format + msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d" + msgstr "NOTE_INSN_BASIC_BLOCK %d in der Mitte des Basis-Blocks %d" + +-#: cfgrtl.c:2052 ++#: cfgrtl.c:2064 + #, c-format + msgid "in basic block %d:" + msgstr "im Basis-Block %d:" + +-#: cfgrtl.c:2053 ++#: cfgrtl.c:2065 + msgid "flow control insn inside a basic block" + msgstr "Flusskontrollbefehl innerhalb eines Basis-Blockes" + +-#: cfgrtl.c:2099 ++#: cfgrtl.c:2111 + #, c-format + msgid "missing barrier after block %i" + msgstr "fehlende Sperre nach Block %i" + +-#: cfgrtl.c:2112 ++#: cfgrtl.c:2124 + #, c-format + msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i" + msgstr "verify_flow_info: Falsche Blöcke für »fallthru« %i->%i" + +-#: cfgrtl.c:2127 ++#: cfgrtl.c:2139 + #, c-format + msgid "verify_flow_info: Incorrect fallthru %i->%i" + msgstr "verify_flow_info: Falsches »fallthru« %i->%i" + +-#: cfgrtl.c:2129 ++#: cfgrtl.c:2141 + msgid "wrong insn in the fallthru edge" + msgstr "falscher Befehl in »fallthru«-Kante" + +-#: cfgrtl.c:2146 ++#: cfgrtl.c:2158 + msgid "basic blocks not laid down consecutively" + msgstr "Basis-Blöcke sind nicht fortlaufend" + +-#: cfgrtl.c:2171 ++#: cfgrtl.c:2183 + msgid "insn outside basic block" + msgstr "Befehl außerhalb eines Basis-Blockes" + +-#: cfgrtl.c:2179 ++#: cfgrtl.c:2191 + msgid "return not followed by barrier" + msgstr "»return« nicht gefolgt von Sperre" + +-#: cfgrtl.c:2186 ++#: cfgrtl.c:2198 + #, c-format + msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)" + msgstr "Anzahl der bb-Vermerke in Befehlskette (%d) != n_basic_blocks (%d)" +@@ -3895,7 +3900,7 @@ + msgid "library lib%s not found" + msgstr "Bibliothek lib%s nicht gefunden" + +-#: combine.c:13048 ++#: combine.c:13047 + #, c-format + msgid "" + ";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n" +@@ -3906,7 +3911,7 @@ + ";; %d Erfolge.\n" + "\n" + +-#: combine.c:13057 ++#: combine.c:13056 + #, c-format + msgid "" + "\n" +@@ -4235,63 +4240,68 @@ + msgid "token \"%s\" is not valid in preprocessor expressions" + msgstr "Token »%s« ist nicht gültig in Präprozessorausdrücken" + +-#: cppexp.c:753 +-msgid "void expression between '(' and ')'" +-msgstr "ungültiger Ausdruck zwischen '(' und ')'" ++#: cppexp.c:751 ++msgid "missing expression between '(' and ')'" ++msgstr "fehlender Ausdruck zwischen '(' und ')'" + +-#: cppexp.c:756 ++#: cppexp.c:754 + msgid "#if with no expression" + msgstr "#if ohne Ausdruck" + +-#: cppexp.c:758 ++#: cppexp.c:757 + #, c-format + msgid "operator '%s' has no right operand" + msgstr "Operator »%s« hat keinen rechten Operanden" + +-#: cppexp.c:784 ++#: cppexp.c:762 ++#, c-format ++msgid "operator '%s' has no left operand" ++msgstr "Operator »%s« hat keinen linken Operanden" ++ ++#: cppexp.c:788 + msgid " ':' without preceding '?'" + msgstr " ':' ohne vorangehendes '?'" + +-#: cppexp.c:811 ++#: cppexp.c:815 + msgid "unbalanced stack in #if" + msgstr "unausgeglichener Keller in #if" + +-#: cppexp.c:830 ++#: cppexp.c:834 + #, c-format + msgid "impossible operator '%u'" + msgstr "unmöglicher Operator '%u'" + +-#: cppexp.c:922 ++#: cppexp.c:926 + msgid "missing ')' in expression" + msgstr "fehlendes ')' in Ausdruck" + +-#: cppexp.c:943 ++#: cppexp.c:947 + msgid "'?' without following ':'" + msgstr "'?' ohne folgendes ':'" + +-#: cppexp.c:953 ++#: cppexp.c:957 + msgid "integer overflow in preprocessor expression" + msgstr "Ganzzahlüberlauf in Präprozessorausdruck" + +-#: cppexp.c:958 ++#: cppexp.c:962 + msgid "missing '(' in expression" + msgstr "fehlendes '(' in Ausdruck" + +-#: cppexp.c:990 ++#: cppexp.c:994 + #, c-format + msgid "the left operand of \"%s\" changes sign when promoted" + msgstr "der linke Operand von »%s« ändert bei der Weitergabe das Vorzeichen" + +-#: cppexp.c:995 ++#: cppexp.c:999 + #, c-format + msgid "the right operand of \"%s\" changes sign when promoted" + msgstr "der rechte Operand von »%s« ändert bei der Weitergabe das Vorzeichen" + +-#: cppexp.c:1353 ++#: cppexp.c:1357 + msgid "comma operator in operand of #if" + msgstr "Kommaoperator in Operand von #if" + +-#: cppexp.c:1484 ++#: cppexp.c:1488 + msgid "division by zero in #if" + msgstr "Division durch null in #if" + +@@ -4327,7 +4337,7 @@ + msgid "no include path in which to search for %s" + msgstr "kein Include-Pfad, um %s zu finden" + +-#: cppfiles.c:956 ++#: cppfiles.c:959 + msgid "Multiple include guards may be useful for:\n" + msgstr "Mehrere Include-Wächter könnten nützlich sein für:\n" + +@@ -4738,7 +4748,7 @@ + msgid "syntax error in macro parameter list" + msgstr "Syntaxfehler in Makroparameterliste" + +-#: cse.c:7064 ++#: cse.c:7069 + #, c-format + msgid ";; Processing block from %d to %d, %d sets.\n" + msgstr ";; Bearbeite Block von %d bis %d, %d Sets.\n" +@@ -4870,12 +4880,12 @@ + + #. We can't handle floating point constants; + #. PRINT_OPERAND must handle them. +-#: final.c:3220 vmsdbgout.c:467 config/i386/i386.c:6768 ++#: final.c:3220 vmsdbgout.c:467 config/i386/i386.c:6769 + #: config/pdp11/pdp11.c:1646 + msgid "floating constant misused" + msgstr "Gleitkommakonstante falsch benutzt" + +-#: final.c:3276 vmsdbgout.c:524 config/i386/i386.c:6846 ++#: final.c:3276 vmsdbgout.c:524 config/i386/i386.c:6847 + #: config/pdp11/pdp11.c:1693 + msgid "invalid expression as operand" + msgstr "ungültiger Ausdruck als Operand" +@@ -4896,25 +4906,25 @@ + msgid "Attempt to delete prologue/epilogue insn:" + msgstr "Versuch, Prolog/Epilog-Befehl zu löschen" + +-#: fold-const.c:2878 fold-const.c:2891 ++#: fold-const.c:2889 fold-const.c:2902 + #, c-format + msgid "comparison is always %d due to width of bit-field" + msgstr "Vergleich ist immer %d wegen Breite des Bitfeldes" + +-#: fold-const.c:4093 fold-const.c:4110 ++#: fold-const.c:4110 fold-const.c:4127 + #, c-format + msgid "comparison is always %d" + msgstr "Vergleich ist immer %d" + +-#: fold-const.c:4241 ++#: fold-const.c:4258 + msgid "`or' of unmatched not-equal tests is always 1" + msgstr "»oder« nicht passender Ungleichheits-Tests ist immer 1" + +-#: fold-const.c:4246 ++#: fold-const.c:4263 + msgid "`and' of mutually exclusive equal-tests is always 0" + msgstr "»und« gegenseitig ausschließender Gleichheits-Tests ist immer 0" + +-#: fold-const.c:8393 ++#: fold-const.c:8410 + msgid "fold check: original tree changed by fold" + msgstr "Faltungstest: ursprünglicher Baum durch Faltung geändert" + +@@ -4922,27 +4932,27 @@ + msgid "%Jsize of variable '%D' is too large" + msgstr "%JGröße der Variable »%D« ist zu hoch" + +-#: function.c:3742 ++#: function.c:3752 + msgid "impossible constraint in `asm'" + msgstr "unmögliche Bedingung in »asm«" + +-#: function.c:5733 ++#: function.c:5743 + msgid "%J'%D' might be used uninitialized in this function" + msgstr "%J»%D« könnte in dieser Funktion uninitialisiert bleiben" + +-#: function.c:5740 ++#: function.c:5750 + msgid "%Jvariable '%D' might be clobbered by `longjmp' or `vfork'" + msgstr "%JVariable »%D« könnte von »longjmp« oder »vfork« zerstört werden" + +-#: function.c:5759 ++#: function.c:5769 + msgid "%Jargument '%D' might be clobbered by `longjmp' or `vfork'" + msgstr "%JArgument »%D« könnte von »longjmp« oder »vfork« zerstört werden" + +-#: function.c:6533 ++#: function.c:6543 + msgid "function returns an aggregate" + msgstr "Funktion gibt Aggregat zurück" + +-#: function.c:6929 ++#: function.c:6939 + msgid "%Junused parameter '%D'" + msgstr "%Jnicht benutzter Parameter »%D«" + +@@ -4970,7 +4980,7 @@ + msgid "Using built-in specs.\n" + msgstr "Benutze eingebaute Spezifikationen.\n" + +-#: gcc.c:1755 ++#: gcc.c:1758 + #, c-format + msgid "" + "Setting spec %s to '%s'\n" +@@ -4979,42 +4989,42 @@ + "Setze Spezifikation %s auf '%s'\n" + "\n" + +-#: gcc.c:1857 ++#: gcc.c:1860 + #, c-format + msgid "Reading specs from %s\n" + msgstr "Lese Spezifikationen von %s\n" + +-#: gcc.c:1953 gcc.c:1972 ++#: gcc.c:1956 gcc.c:1975 + #, c-format + msgid "specs %%include syntax malformed after %ld characters" + msgstr "falsche %%include-Syntax für Spezifikationen nach %ld Zeichen" + +-#: gcc.c:1980 ++#: gcc.c:1983 + #, c-format + msgid "could not find specs file %s\n" + msgstr "konnte Spezifikationsdatei %s nicht finden\n" + +-#: gcc.c:1997 gcc.c:2005 gcc.c:2014 gcc.c:2023 ++#: gcc.c:2000 gcc.c:2008 gcc.c:2017 gcc.c:2026 + #, c-format + msgid "specs %%rename syntax malformed after %ld characters" + msgstr "falsche %%rename-Syntax für Spezifikationen nach %ld Zeichen" + +-#: gcc.c:2032 ++#: gcc.c:2035 + #, c-format + msgid "specs %s spec was not found to be renamed" + msgstr "keine %s-Spezifikation zum Umbenennen gefunden" + +-#: gcc.c:2039 ++#: gcc.c:2042 + #, c-format + msgid "%s: attempt to rename spec '%s' to already defined spec '%s'" + msgstr "%s: Versuch, Spezifikation »%s« in bereits definierte Spezifikation »%s« umzubenennen" + +-#: gcc.c:2044 ++#: gcc.c:2047 + #, c-format + msgid "rename spec %s to %s\n" + msgstr "benenne Spezifikation %s nach %s um\n" + +-#: gcc.c:2046 ++#: gcc.c:2049 + #, c-format + msgid "" + "spec is '%s'\n" +@@ -5023,27 +5033,27 @@ + "Spezifikation ist '%s'\n" + "\n" + +-#: gcc.c:2059 ++#: gcc.c:2062 + #, c-format + msgid "specs unknown %% command after %ld characters" + msgstr "Spezifikation: unbekannter %%-Befehl nach %ld Zeichen" + +-#: gcc.c:2070 gcc.c:2083 ++#: gcc.c:2073 gcc.c:2086 + #, c-format + msgid "specs file malformed after %ld characters" + msgstr "Fehler in Spezifikationsdatei nach %ld Zeichen" + +-#: gcc.c:2136 ++#: gcc.c:2139 + msgid "spec file has no spec for linking" + msgstr "Spezifikationsdatei hat keine Spezifikation zum Binden" + +-#: gcc.c:2641 ++#: gcc.c:2644 + msgid "-pipe not supported" + msgstr "-pipe wird nicht unterstützt" + + # can we use j/n here, too? + # 2002-04-23 18:57:43 CEST -ke- +-#: gcc.c:2703 ++#: gcc.c:2706 + msgid "" + "\n" + "Go ahead? (y or n) " +@@ -5051,7 +5061,7 @@ + "\n" + "Fortfahren? (y oder n) " + +-#: gcc.c:2829 ++#: gcc.c:2832 + #, c-format + msgid "" + "Internal error: %s (program %s)\n" +@@ -5064,69 +5074,69 @@ + "sind an de@li.org zu melden.\n" + "Gehen Sie gemäß den Hinweisen in %s vor." + +-#: gcc.c:2847 ++#: gcc.c:2850 + #, c-format + msgid "# %s %.2f %.2f\n" + msgstr "# %s %.2f %.2f\n" + +-#: gcc.c:2980 ++#: gcc.c:2983 + #, c-format + msgid "Usage: %s [options] file...\n" + msgstr "Aufruf: %s [Optionen] Datei...\n" + +-#: gcc.c:2981 ++#: gcc.c:2984 + msgid "Options:\n" + msgstr "Optionen:\n" + +-#: gcc.c:2983 ++#: gcc.c:2986 + msgid " -pass-exit-codes Exit with highest error code from a phase\n" + msgstr " -pass-exit-codes Ende mit höchstem Rückgabe-Code einer Phase\n" + +-#: gcc.c:2984 ++#: gcc.c:2987 + msgid " --help Display this information\n" + msgstr " --help Diese Informationen anzeigen\n" + +-#: gcc.c:2985 ++#: gcc.c:2988 + msgid " --target-help Display target specific command line options\n" + msgstr " --target-help Zielspezifische Kommandozeilenoptionen anzeigen\n" + +-#: gcc.c:2987 ++#: gcc.c:2990 + msgid " (Use '-v --help' to display command line options of sub-processes)\n" + msgstr " ('-v --help' zum Anzeigen der Kommandozeilenoptionen von Subprozessen verwenden)\n" + +-#: gcc.c:2988 ++#: gcc.c:2991 + msgid " -dumpspecs Display all of the built in spec strings\n" + msgstr " -dumpspecs Alle eingebauten Spezifikationszeichenketten anzeigen\n" + +-#: gcc.c:2989 ++#: gcc.c:2992 + msgid " -dumpversion Display the version of the compiler\n" + msgstr " -dumpversion Compilerversion anzeigen\n" + +-#: gcc.c:2990 ++#: gcc.c:2993 + msgid " -dumpmachine Display the compiler's target processor\n" + msgstr " -dumpmachine Zielprozessor des Compilers anzeigen\n" + +-#: gcc.c:2991 ++#: gcc.c:2994 + msgid " -print-search-dirs Display the directories in the compiler's search path\n" + msgstr " -print-search-dirs Verzeichnisse im Suchpfad des Compilers anzeigen\n" + +-#: gcc.c:2992 ++#: gcc.c:2995 + msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n" + msgstr " -print-libgcc-file-name Name der Begleitbibliothek des Compilers anzeigen\n" + +-#: gcc.c:2993 ++#: gcc.c:2996 + msgid " -print-file-name= Display the full path to library \n" + msgstr " -print-file-name= Vollen Pfad zur Bibliothek anzeigen\n" + +-#: gcc.c:2994 ++#: gcc.c:2997 + msgid " -print-prog-name= Display the full path to compiler component \n" + msgstr " -print-prog-name= Vollen Pfad zur Compilerkomponente anzeigen\n" + +-#: gcc.c:2995 ++#: gcc.c:2998 + msgid " -print-multi-directory Display the root directory for versions of libgcc\n" + msgstr " -print-multi-directory Wurzelverzeichnis für Versionen von libgcc anzeigen\n" + +-#: gcc.c:2996 ++#: gcc.c:2999 + msgid "" + " -print-multi-lib Display the mapping between command line options and\n" + " multiple library search directories\n" +@@ -5134,101 +5144,101 @@ + " -print-multi-lib Abbildung zwischen Kommandozeilenoptionen und\n" + " mehreren Suchverzeichnissen für Bibliotheken anzeigen\n" + +-#: gcc.c:2999 ++#: gcc.c:3002 + msgid " -print-multi-os-directory Display the relative path to OS libraries\n" + msgstr "" + " -print-multi-os-directory Relativen Pfad zu Betriebssystembibliotheken\n" + " anzeigen\n" + +-#: gcc.c:3000 ++#: gcc.c:3003 + msgid " -Wa, Pass comma-separated on to the assembler\n" + msgstr " -Wa, Komma-getrennte an Assembler übergeben\n" + +-#: gcc.c:3001 ++#: gcc.c:3004 + msgid " -Wp, Pass comma-separated on to the preprocessor\n" + msgstr " -Wp, Komma-getrennte an Präprozessor übergeben\n" + +-#: gcc.c:3002 ++#: gcc.c:3005 + msgid " -Wl, Pass comma-separated on to the linker\n" + msgstr " -Wl, Komma-getrennte an Linker übergeben\n" + +-#: gcc.c:3003 ++#: gcc.c:3006 + msgid " -Xassembler Pass on to the assembler\n" + msgstr " -Xassembler an den Assembler übergeben\n" + +-#: gcc.c:3004 ++#: gcc.c:3007 + msgid " -Xpreprocessor Pass on to the preprocessor\n" + msgstr " -Xpreprocessor an den Präprozessor übergeben\n" + +-#: gcc.c:3005 ++#: gcc.c:3008 + msgid " -Xlinker Pass on to the linker\n" + msgstr " -Xlinker an den Linker übergeben\n" + +-#: gcc.c:3006 ++#: gcc.c:3009 + msgid " -save-temps Do not delete intermediate files\n" + msgstr " -save-temps Temporäre Dateien nicht löschen\n" + +-#: gcc.c:3007 ++#: gcc.c:3010 + msgid " -pipe Use pipes rather than intermediate files\n" + msgstr " -pipe Pipes statt temporärer Dateien verwenden\n" + +-#: gcc.c:3008 ++#: gcc.c:3011 + msgid " -time Time the execution of each subprocess\n" + msgstr " -time Zeit für Ausführung jedes Subprozesses stoppen\n" + +-#: gcc.c:3009 ++#: gcc.c:3012 + msgid " -specs= Override built-in specs with the contents of \n" + msgstr "" + " -specs= Eingebaute Spezifikationen mit Inhalt der \n" + " überschreiben\n" + +-#: gcc.c:3010 ++#: gcc.c:3013 + msgid " -std= Assume that the input sources are for \n" + msgstr " -std= Annehmen, dass die Eingabequellen für sind\n" + +-#: gcc.c:3011 ++#: gcc.c:3014 + msgid " -B Add to the compiler's search paths\n" + msgstr " -B zum Suchpfad des Compilers hinzufügen\n" + +-#: gcc.c:3012 ++#: gcc.c:3015 + msgid " -b Run gcc for target , if installed\n" + msgstr "" + " -b GCC für die Ziel- laufen lassen, falls\n" + " installiert\n" + +-#: gcc.c:3013 ++#: gcc.c:3016 + msgid " -V Run gcc version number , if installed\n" + msgstr " -V GCC laufen lassen, falls installiert\n" + +-#: gcc.c:3014 ++#: gcc.c:3017 + msgid " -v Display the programs invoked by the compiler\n" + msgstr " -v Vom Compiler aufgerufene Programme anzeigen\n" + +-#: gcc.c:3015 ++#: gcc.c:3018 + msgid " -### Like -v but options quoted and commands not executed\n" + msgstr "" + " -### Wie -v, aber mit zitierten Optionen und nicht\n" + " ausgeführten Befehlen\n" + +-#: gcc.c:3016 ++#: gcc.c:3019 + msgid " -E Preprocess only; do not compile, assemble or link\n" + msgstr "" + " -E Nur Präprozessor, kein Compiler, Assembler oder\n" + " Binder\n" + +-#: gcc.c:3017 ++#: gcc.c:3020 + msgid " -S Compile only; do not assemble or link\n" + msgstr " -S Nur kompilieren, nicht assemblieren oder binden\n" + +-#: gcc.c:3018 ++#: gcc.c:3021 + msgid " -c Compile and assemble, but do not link\n" + msgstr " -c Nur kompilieren und assemblieren, aber nicht binden\n" + +-#: gcc.c:3019 ++#: gcc.c:3022 + msgid " -o Place the output into \n" + msgstr " -o Ausgabe in schreiben\n" + +-#: gcc.c:3020 ++#: gcc.c:3023 + msgid "" + " -x Specify the language of the following input files\n" + " Permissible languages include: c c++ assembler none\n" +@@ -5241,7 +5251,7 @@ + " verhalten, die Sprache aufgrund der Dateinamens-\n" + " erweiterung zu vermuten\n" + +-#: gcc.c:3027 ++#: gcc.c:3030 + #, c-format + msgid "" + "\n" +@@ -5255,27 +5265,27 @@ + " Um andere Optionen an diese Prozesse zu übergeben, müssen die Optionen\n" + " -W verwendet werden.\n" + +-#: gcc.c:3148 ++#: gcc.c:3151 + #, c-format + msgid "`-%c' option must have argument" + msgstr "Die Option »-%c« muss ein Argument haben" + +-#: gcc.c:3170 ++#: gcc.c:3173 + #, c-format + msgid "couldn't run `%s': %s" + msgstr "konnte »%s« nicht ausführen: %s" + + #. translate_options () has turned --version into -fversion. +-#: gcc.c:3356 ++#: gcc.c:3359 + #, c-format + msgid "%s (GCC) %s\n" + msgstr "%s (GCC) %s\n" + +-#: gcc.c:3358 gcov.c:424 f/g77spec.c:351 ++#: gcc.c:3361 gcov.c:424 f/g77spec.c:351 + msgid "(C)" + msgstr "" + +-#: gcc.c:3359 ++#: gcc.c:3362 + msgid "" + "This is free software; see the source for copying conditions. There is NO\n" + "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" +@@ -5285,66 +5295,66 @@ + "gibt KEINE Garantie; auch nicht für VERKAUFBARKEIT oder FÃœR SPEZIELLE ZWECKE.\n" + "\n" + +-#: gcc.c:3460 ++#: gcc.c:3463 + msgid "argument to `-Xlinker' is missing" + msgstr "Argument für »-Xlinker« fehlt" + +-#: gcc.c:3468 ++#: gcc.c:3471 + msgid "argument to `-Xpreprocessor' is missing" + msgstr "Argument für »-Xpreprocessor« fehlt" + +-#: gcc.c:3475 ++#: gcc.c:3478 + msgid "argument to `-Xassembler' is missing" + msgstr "Argument für »-Xassembler« fehlt" + +-#: gcc.c:3482 ++#: gcc.c:3485 + msgid "argument to `-l' is missing" + msgstr "Argument für »-l« fehlt" + +-#: gcc.c:3498 ++#: gcc.c:3501 + msgid "argument to `-specs' is missing" + msgstr "Argument für »-specs« fehlt" + +-#: gcc.c:3512 ++#: gcc.c:3515 + msgid "argument to `-specs=' is missing" + msgstr "Argument für »-specs=« fehlt" + +-#: gcc.c:3549 ++#: gcc.c:3552 + #, c-format + msgid "`-%c' must come at the start of the command line" + msgstr "»-%c« muss am Anfang der Kommandozeile stehen" + +-#: gcc.c:3558 ++#: gcc.c:3561 + msgid "argument to `-B' is missing" + msgstr "Argument für »-B« fehlt" + +-#: gcc.c:3735 ++#: gcc.c:3738 + msgid "warning: -pipe ignored because -save-temps specified" + msgstr "Warnung: -pipe ignoriert, da -save-temps angegeben" + +-#: gcc.c:3739 ++#: gcc.c:3742 + msgid "warning: -pipe ignored because -time specified" + msgstr "Warnung: -pipe ignoriert, da -time angegeben" + +-#: gcc.c:3951 ++#: gcc.c:3954 + msgid "argument to `-x' is missing" + msgstr "Argument für »-x« fehlt" + +-#: gcc.c:3979 ++#: gcc.c:3982 + #, c-format + msgid "argument to `-%s' is missing" + msgstr "Argument für »-%s« fehlt" + +-#: gcc.c:4040 ++#: gcc.c:4043 + #, c-format + msgid "warning: `-x %s' after last input file has no effect" + msgstr "Warnung: »-x %s« hinter letzter Eingabedatei hat keine Wirkung" + +-#: gcc.c:4441 ++#: gcc.c:4444 + msgid "invalid specification! Bug in cc" + msgstr "ungültige Spezifikation! Fehler in cc" + +-#: gcc.c:4595 ++#: gcc.c:4598 + #, c-format + msgid "%s\n" + msgstr "%s\n" +@@ -5352,78 +5362,78 @@ + #. Catch the case where a spec string contains something like + #. '%{foo:%*}'. ie there is no * in the pattern on the left + #. hand side of the :. +-#: gcc.c:5099 ++#: gcc.c:5102 + #, c-format + msgid "spec failure: '%%*' has not been initialized by pattern match" + msgstr "Spezifikationsfehler: »%%*« wurde nicht durch Mustererkennung initialisiert" + +-#: gcc.c:5108 ++#: gcc.c:5111 + #, c-format + msgid "warning: use of obsolete %%[ operator in specs" + msgstr "Warnung: Verwendung des veralteten Operators %%[ in Spezifikation" + +-#: gcc.c:5126 ++#: gcc.c:5129 + #, c-format + msgid "Processing spec %c%s%c, which is '%s'\n" + msgstr "Verarbeite Spezifikation %c%s%c, welche »%s« ist\n" + +-#: gcc.c:5189 ++#: gcc.c:5192 + #, c-format + msgid "spec failure: unrecognized spec option '%c'" + msgstr "Spezifikationsfehler: nicht erkannte Option »%c«" + +-#: gcc.c:5268 ++#: gcc.c:5271 + #, c-format + msgid "unknown spec function `%s'" + msgstr "unbekannte Spezifikationsfunktion »%s«" + +-#: gcc.c:5287 ++#: gcc.c:5290 + #, c-format + msgid "error in args to spec function `%s'" + msgstr "Fehler in Argumenten für Spezifikationsfunktion »%s«" + +-#: gcc.c:5335 ++#: gcc.c:5338 + msgid "malformed spec function name" + msgstr "schlechter Name für Spezifikationsfunktion" + + #. ) +-#: gcc.c:5338 ++#: gcc.c:5341 + msgid "no arguments for spec function" + msgstr "keine Argumente für Spezifikationsfunktion" + +-#: gcc.c:5357 ++#: gcc.c:5360 + msgid "malformed spec function arguments" + msgstr "schlechte Argumente für Spezifikationsfunktion" + +-#: gcc.c:6083 ++#: gcc.c:6086 + msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC." + msgstr "Spezifikationsfehler: mehr als ein Argument für SYSROOT_SUFFIX_SPEC." + +-#: gcc.c:6093 ++#: gcc.c:6096 + msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC." + msgstr "Spezifikationsfehler: mehr als ein Argument für SYSROOT_HEADERS_SUFFIX_SPEC." + +-#: gcc.c:6186 ++#: gcc.c:6189 + #, c-format + msgid "unrecognized option `-%s'" + msgstr "nicht erkannte Option »-%s«" + +-#: gcc.c:6192 ++#: gcc.c:6195 + #, c-format + msgid "install: %s%s\n" + msgstr "installiere: %s%s\n" + +-#: gcc.c:6193 ++#: gcc.c:6196 + #, c-format + msgid "programs: %s\n" + msgstr "Programme: %s\n" + +-#: gcc.c:6194 ++#: gcc.c:6197 + #, c-format + msgid "libraries: %s\n" + msgstr "Bibliotheken: %s\n" + +-#: gcc.c:6251 ++#: gcc.c:6254 + msgid "" + "\n" + "For bug reporting instructions, please see:\n" +@@ -5433,50 +5443,50 @@ + "folgenden Hinweise; Fehler in der deutschen Ãœbersetzung sind an de@li.org\n" + "zu melden:\n" + +-#: gcc.c:6267 ++#: gcc.c:6270 + #, c-format + msgid "Configured with: %s\n" + msgstr "Konfiguriert mit: %s\n" + +-#: gcc.c:6281 ++#: gcc.c:6284 + #, c-format + msgid "Thread model: %s\n" + msgstr "Thread-Modell: %s\n" + +-#: gcc.c:6292 ++#: gcc.c:6295 + #, c-format + msgid "gcc version %s\n" + msgstr "gcc-Version %s\n" + +-#: gcc.c:6294 ++#: gcc.c:6297 + #, c-format + msgid "gcc driver version %s executing gcc version %s\n" + msgstr "gcc-Treiberversion %s führt gcc Version %s aus\n" + +-#: gcc.c:6302 ++#: gcc.c:6305 + msgid "no input files" + msgstr "keine Eingabedateien" + +-#: gcc.c:6324 gcc.c:6443 ++#: gcc.c:6327 gcc.c:6446 + #, c-format + msgid "%s: linker input file unused because linking not done" + msgstr "%s: Eingabedateien des Binders unbenutzt, da keine Bindung geschieht" + +-#: gcc.c:6327 ++#: gcc.c:6330 + msgid "cannot specify -o with -c or -S and multiple languages" + msgstr "-o kann nicht mit -c oder -S und mehreren Sprachen angegeben werden" + +-#: gcc.c:6362 ++#: gcc.c:6365 + #, c-format + msgid "%s: %s compiler not installed on this system" + msgstr "%s: %s-Compiler ist auf diesem System nicht installiert" + +-#: gcc.c:6483 ++#: gcc.c:6486 + #, c-format + msgid "language %s not recognized" + msgstr "Sprache %s nicht erkannt" + +-#: gcc.c:6580 ++#: gcc.c:6583 + msgid "internal gcc abort" + msgstr "interner Abbruch des gcc" + +@@ -5771,21 +5781,21 @@ + msgid "GCSE disabled" + msgstr "GCSE ausgeschaltet" + +-#: gcse.c:6124 ++#: gcse.c:6125 + msgid "NULL pointer checks disabled" + msgstr "NULL-Zeiger Tests ausgeschaltet" + + #. Return if there's nothing to do, or it is too expensive. +-#: gcse.c:8010 ++#: gcse.c:8036 + msgid "jump bypassing disabled" + msgstr "Sprungumgehungen ausgeschaltet" + +-#: gcse.c:8071 ++#: gcse.c:8097 + #, c-format + msgid "%s: %d basic blocks and %d edges/basic block" + msgstr "%s: %d Basis-Blöcke und %d Kanten/Basis-Blöcke" + +-#: gcse.c:8084 ++#: gcse.c:8110 + #, c-format + msgid "%s: %d basic blocks and %d registers" + msgstr "%s: %d Basis-Blöcke und %d Register" +@@ -5835,7 +5845,7 @@ + msgid "%s cannot be used in asm here" + msgstr "%s kann nicht hier in »asm« verwendet werden" + +-#: graph.c:403 toplev.c:1498 toplev.c:4432 f/com.c:14202 java/jcf-parse.c:883 ++#: graph.c:403 toplev.c:1498 toplev.c:4433 f/com.c:14202 java/jcf-parse.c:883 + #: java/jcf-parse.c:1029 java/lex.c:1828 objc/objc-act.c:503 + #, c-format + msgid "can't open %s: %m" +@@ -5914,7 +5924,7 @@ + msgid "function with target specific attribute(s) cannot be inlined" + msgstr "Funktion mit zielspezifischen Attributen kann nicht »inline« sein" + +-#: jump.c:1896 ++#: jump.c:1913 + msgid "%Hwill never be executed" + msgstr "%Hwird niemals ausgeführt" + +@@ -6411,7 +6421,7 @@ + msgid "can't use '%s' as a %s register" + msgstr "»%s« kann nicht als ein %s-Register verwendet werden" + +-#: regclass.c:758 config/ia64/ia64.c:4660 config/ia64/ia64.c:4667 ++#: regclass.c:758 config/ia64/ia64.c:4666 config/ia64/ia64.c:4673 + #, c-format + msgid "unknown register name: %s" + msgstr "unbekannter Registername: %s" +@@ -6456,15 +6466,15 @@ + msgid "impossible register constraint in `asm'" + msgstr "unmögliche Registerbedingung in »asm«" + +-#: reload.c:3504 ++#: reload.c:3519 + msgid "`&' constraint used with no register class" + msgstr "»&«-Bedingung ohne Registerklasse verwendet" + +-#: reload.c:3672 ++#: reload.c:3687 + msgid "unable to generate reloads for:" + msgstr "Neuladungen konnten nicht generiert werden für:" + +-#: reload.c:3673 reload.c:3887 ++#: reload.c:3688 reload.c:3902 + msgid "inconsistent operand constraints in an `asm'" + msgstr "inkonsistente Operandenbedingungen in einem »asm«" + +@@ -6866,11 +6876,11 @@ + msgid "invalid register name `%s' for register variable" + msgstr "ungültiger Registername »%s« für Registervariable" + +-#: toplev.c:3546 ++#: toplev.c:3547 + msgid "branch target register load optimization is not intended to be run twice" + msgstr "Ladeoptimierung für Zweig-Zielregister ist nicht dafür vorgesehen, mehrfach zu laufen" + +-#: toplev.c:3713 ++#: toplev.c:3714 + msgid "" + "\n" + "Target specific options:\n" +@@ -6878,12 +6888,12 @@ + "\n" + "Zielspezifische Optionen:\n" + +-#: toplev.c:3727 toplev.c:3746 ++#: toplev.c:3728 toplev.c:3747 + #, c-format + msgid " -m%-23s [undocumented]\n" + msgstr " -m%-23s [undokumentiert]\n" + +-#: toplev.c:3755 ++#: toplev.c:3756 + msgid "" + "\n" + "There are undocumented target specific options as well.\n" +@@ -6891,21 +6901,21 @@ + "\n" + "Es gibt auch undokumentierte zielspezifische Optionen.\n" + +-#: toplev.c:3757 ++#: toplev.c:3758 + msgid " They exist, but they are not documented.\n" + msgstr " Es gibt sie, aber sie sind nicht dokumentiert.\n" + +-#: toplev.c:3812 ++#: toplev.c:3813 + #, c-format + msgid "unrecognized gcc debugging option: %c" + msgstr "gcc-Debuggingoption nicht erkannt: %c" + +-#: toplev.c:3874 config/rs6000/rs6000.c:922 ++#: toplev.c:3875 config/rs6000/rs6000.c:940 config/rs6000/rs6000.c:951 + #, c-format + msgid "invalid option `%s'" + msgstr "ungültige Option »%s«" + +-#: toplev.c:3889 ++#: toplev.c:3890 + #, c-format + msgid "" + "%s%s%s version %s (%s)\n" +@@ -6916,93 +6926,93 @@ + "%s\tkompiliert von GNU-C-Version %s.\n" + "%s%s%s Version %s (%s) kompiliert von CC.\n" + +-#: toplev.c:3896 ++#: toplev.c:3897 + #, c-format + msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n" + msgstr "%s%sGGC-Heuristik: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n" + +-#: toplev.c:3948 ++#: toplev.c:3949 + msgid "options passed: " + msgstr "angegebene Optionen: " + +-#: toplev.c:3977 ++#: toplev.c:3978 + msgid "options enabled: " + msgstr "angeschaltete Optionen: " + +-#: toplev.c:4035 java/jcf-write.c:3424 ++#: toplev.c:4036 java/jcf-write.c:3424 + #, c-format + msgid "can't open %s for writing: %m" + msgstr "Datei »%s« kann nicht zum Schreiben geöffnet werden: %m" + +-#: toplev.c:4118 config/sh/sh.c:7019 ++#: toplev.c:4119 config/sh/sh.c:7020 + msgid "created and used with different settings of -fpic" + msgstr "erzeugt und mit anderen Einstellungen von -fpic verwendet" + +-#: toplev.c:4120 config/sh/sh.c:7021 ++#: toplev.c:4121 config/sh/sh.c:7022 + msgid "created and used with different settings of -fpie" + msgstr "erzeugt und mit anderen Einstellungen von -fpie verwendet" + +-#: toplev.c:4171 config/sh/sh.c:7071 ++#: toplev.c:4172 config/sh/sh.c:7072 + #, c-format + msgid "created and used with differing settings of `-m%s'" + msgstr "erzeugt und mit anderen Einstellungen von »-m%s« verwendet" + +-#: toplev.c:4174 config/sh/sh.c:7074 ++#: toplev.c:4175 config/sh/sh.c:7075 + msgid "out of memory" + msgstr "Platz im Hauptspeicher reicht nicht aus" + +-#: toplev.c:4355 ++#: toplev.c:4356 + msgid "instruction scheduling not supported on this target machine" + msgstr "Befehlsplanung wird von dieser Zielmaschine nicht unterstützt" + +-#: toplev.c:4359 ++#: toplev.c:4360 + msgid "this target machine does not have delayed branches" + msgstr "diese Zielmaschine hat keine verzögerten Zweige" + +-#: toplev.c:4373 ++#: toplev.c:4374 + #, c-format + msgid "-f%sleading-underscore not supported on this target machine" + msgstr "-f%sleading-underscore wird auf dieser Zielmaschine nicht unterstützt" + +-#: toplev.c:4422 ++#: toplev.c:4423 + #, c-format + msgid "target system does not support the \"%s\" debug format" + msgstr "Zielsystem unterstützt nicht das Testformat \"%s\"" + +-#: toplev.c:4439 ++#: toplev.c:4440 + msgid "-ffunction-sections not supported for this target" + msgstr "-ffunction-sections wird für dieses Ziel nicht unterstützt" + +-#: toplev.c:4444 ++#: toplev.c:4445 + msgid "-fdata-sections not supported for this target" + msgstr "-fdata-sections wird für dieses Ziel nicht unterstützt" + +-#: toplev.c:4451 ++#: toplev.c:4452 + msgid "-ffunction-sections disabled; it makes profiling impossible" + msgstr "-ffunction-sections ausgeschaltet; das macht Profiling unmöglich" + +-#: toplev.c:4458 ++#: toplev.c:4459 + msgid "-fprefetch-loop-arrays not supported for this target" + msgstr "-fprefetch-loop-arrays wird für dieses Ziel nicht unterstützt" + +-#: toplev.c:4464 ++#: toplev.c:4465 + msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)" + msgstr "-fprefetch-loop-arrays wird für dieses Ziel nicht unterstützt (versuchen Sie die »-march«-Schalter)" + +-#: toplev.c:4473 ++#: toplev.c:4474 + msgid "-fprefetch-loop-arrays is not supported with -Os" + msgstr "-fprefetch-loop-arrays wird nicht mit -Os unterstützt" + +-#: toplev.c:4479 ++#: toplev.c:4480 + msgid "-ffunction-sections may affect debugging on some targets" + msgstr "-ffunction-sections kann für verschiedene Ziele die Fehlersuche beeinträchtigen" + +-#: toplev.c:4581 ++#: toplev.c:4582 + #, c-format + msgid "error writing to %s: %m" + msgstr "Fehler beim Schreiben der Datei %s: %m" + +-#: toplev.c:4583 java/jcf-parse.c:902 java/jcf-write.c:3431 ++#: toplev.c:4584 java/jcf-parse.c:902 java/jcf-write.c:3431 + #, c-format + msgid "error closing %s: %m" + msgstr "Fehler beim Schließen von %s: %m" +@@ -7049,7 +7059,7 @@ + msgid "%Jfunction '%F' can never be inlined because it uses variable sized variables" + msgstr "%Jdie Funktion »%F« kann nie »inline« sein, da sie Variablen variabler Größe verwendet" + +-#: tree-inline.c:1338 tree-inline.c:1345 ++#: tree-inline.c:1338 tree-inline.c:1346 + msgid "%Jinlining failed in call to '%F': %s" + msgstr "%J»inline« beim Aufruf von »%F« gescheitert: %s" + +@@ -7061,34 +7071,34 @@ + msgid "%Jsize of return value of '%D' is larger than %wd bytes" + msgstr "%JGröße des Rückgabewertes von »%D« ist größer als %wd Bytes" + +-#: tree.c:3801 ++#: tree.c:3800 + msgid "arrays of functions are not meaningful" + msgstr "Felder von Funktionen sind sinnlos" + +-#: tree.c:3856 ++#: tree.c:3855 + msgid "function return type cannot be function" + msgstr "Rückgabetyp der Funktion kann keine Funktion sein" + +-#: tree.c:4685 ++#: tree.c:4684 + msgid "invalid initializer for bit string" + msgstr "ungültige Initialisierung für Bitstring" + +-#: tree.c:4737 ++#: tree.c:4736 + #, c-format + msgid "tree check: expected %s, have %s in %s, at %s:%d" + msgstr "Baumprüfung: %s erwartet, haben %s in %s, bei %s:%d" + +-#: tree.c:4750 ++#: tree.c:4749 + #, c-format + msgid "tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d" + msgstr "Baumprüfung: Klasse %c erwartet, haben '%c' (%s) in %s, bei %s:%d" + +-#: tree.c:4763 ++#: tree.c:4762 + #, c-format + msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d" + msgstr "Baumprüfung: auf Elt %d von tree_vec mit %d Elts in %s bei %s:%d zugegriffen" + +-#: tree.c:4775 ++#: tree.c:4774 + #, c-format + msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d" + msgstr "Baumprüfung: auf Operand %d von %s mit %d Operanden in %s bei %s:%d zugegriffen" +@@ -7141,48 +7151,48 @@ + msgid "%Jrequested alignment for '%D' is greater than implemented alignment of %d" + msgstr "%Jangeforderte Ausrichtung für »%D« ist größer als die implementierte Ausrichtung von %d" + +-#: varasm.c:3789 ++#: varasm.c:3790 + msgid "initializer for integer value is too complicated" + msgstr "Initialisierung für Ganzzahlwert ist zu kompliziert" + +-#: varasm.c:3794 ++#: varasm.c:3795 + msgid "initializer for floating value is not a floating constant" + msgstr "Initialisierung für Gleitkommawert ist keine Gleitkommakonstante" + +-#: varasm.c:3860 ++#: varasm.c:3861 + msgid "unknown set constructor type" + msgstr "unbekannter Mengenkonstruktortyp" + +-#: varasm.c:4079 ++#: varasm.c:4080 + #, c-format + msgid "invalid initial value for member `%s'" + msgstr "ungültiger Anfangswert für Element »%s«" + +-#: varasm.c:4266 varasm.c:4310 ++#: varasm.c:4267 varasm.c:4311 + msgid "%Jweak declaration of '%D' must precede definition" + msgstr "%Jschwache Deklaration von »%D« muss der Definition vorangehen" + +-#: varasm.c:4274 ++#: varasm.c:4275 + msgid "%Jweak declaration of '%D' after first use results in unspecified behavior" + msgstr "%Jschwache Deklaration von »%D« nach erster Benutzung führt zu undefiniertem Verhalten" + +-#: varasm.c:4308 ++#: varasm.c:4309 + msgid "%Jweak declaration of '%D' must be public" + msgstr "%Jschwache Deklaration von »%D« muss öffentlich sein" + +-#: varasm.c:4317 ++#: varasm.c:4318 + msgid "%Jweak declaration of '%D' not supported" + msgstr "%Jschwache Deklaration von »%D« wird nicht unterstützt" + +-#: varasm.c:4346 varasm.c:4436 ++#: varasm.c:4347 varasm.c:4437 + msgid "only weak aliases are supported in this configuration" + msgstr "in dieser Konfiguration werden nur schwache Aliase unterstützt" + +-#: varasm.c:4439 ++#: varasm.c:4440 + msgid "alias definitions not supported in this configuration; ignored" + msgstr "Alias-Definitionen werden in dieser Konfiguration nicht unterstützt; ignoriert" + +-#: varasm.c:4468 ++#: varasm.c:4469 + msgid "visibility attribute not supported in this configuration; ignored" + msgstr "Sichtbarkeitsattribute werden in dieser Konfiguration nicht unterstützt; ignoriert" + +@@ -7404,7 +7414,7 @@ + msgid "junk at end of '#pragma unused'" + msgstr "Ausschuss am Ende von '#pragma unused'" + +-#: config/darwin.c:1347 ++#: config/darwin.c:1312 + msgid "internal and protected visibility attributes not supportedin this configuration; ignored" + msgstr "interne und geschützte Sichtbarkeitsattribute werden in dieser Konfiguration nicht unterstützt; ignoriert" + +@@ -7448,7 +7458,7 @@ + msgid "bad value `%s' for -mfp-trap-mode switch" + msgstr "Falscher Wert »%s« für Schalter -mfp-trap-mode" + +-#: config/alpha/alpha.c:324 config/rs6000/rs6000.c:1088 ++#: config/alpha/alpha.c:324 config/rs6000/rs6000.c:1117 + #, c-format + msgid "bad value `%s' for -mtls-size switch" + msgstr "Falscher Wert »%s« für Schalter -mtls-size" +@@ -7488,90 +7498,90 @@ + msgid "bad value `%s' for -mmemory-latency" + msgstr "Falscher Wert »%s« für -mmemory-latency" + +-#: config/alpha/alpha.c:5425 ++#: config/alpha/alpha.c:5436 + #, c-format + msgid "invalid %%H value" + msgstr "Ungültiger %%H-Wert" + +-#: config/alpha/alpha.c:5446 ++#: config/alpha/alpha.c:5457 + #, c-format + msgid "invalid %%J value" + msgstr "Ungültiger %%J-Wert" + +-#: config/alpha/alpha.c:5462 config/ia64/ia64.c:4263 ++#: config/alpha/alpha.c:5473 config/ia64/ia64.c:4269 + #, c-format + msgid "invalid %%r value" + msgstr "Ungültiger %%r-Wert" + +-#: config/alpha/alpha.c:5472 config/rs6000/rs6000.c:9241 ++#: config/alpha/alpha.c:5483 config/rs6000/rs6000.c:9332 + #: config/xtensa/xtensa.c:2014 + #, c-format + msgid "invalid %%R value" + msgstr "Ungültiger %%R-Wert" + +-#: config/alpha/alpha.c:5478 config/rs6000/rs6000.c:9160 ++#: config/alpha/alpha.c:5489 config/rs6000/rs6000.c:9251 + #: config/xtensa/xtensa.c:1981 + #, c-format + msgid "invalid %%N value" + msgstr "Ungültiger %%N-Wert" + +-#: config/alpha/alpha.c:5486 config/rs6000/rs6000.c:9188 ++#: config/alpha/alpha.c:5497 config/rs6000/rs6000.c:9279 + #, c-format + msgid "invalid %%P value" + msgstr "Ungültiger %%P-Wert" + +-#: config/alpha/alpha.c:5494 ++#: config/alpha/alpha.c:5505 + #, c-format + msgid "invalid %%h value" + msgstr "Ungültiger %%h-Wert" + +-#: config/alpha/alpha.c:5502 config/xtensa/xtensa.c:2007 ++#: config/alpha/alpha.c:5513 config/xtensa/xtensa.c:2007 + #, c-format + msgid "invalid %%L value" + msgstr "Ungültiger %%L-Wert" + +-#: config/alpha/alpha.c:5541 config/rs6000/rs6000.c:9142 ++#: config/alpha/alpha.c:5552 config/rs6000/rs6000.c:9233 + #, c-format + msgid "invalid %%m value" + msgstr "Ungültiger %%m-Wert" + +-#: config/alpha/alpha.c:5549 config/rs6000/rs6000.c:9150 ++#: config/alpha/alpha.c:5560 config/rs6000/rs6000.c:9241 + #, c-format + msgid "invalid %%M value" + msgstr "Ungültiger %%M-Wert" + +-#: config/alpha/alpha.c:5593 ++#: config/alpha/alpha.c:5604 + #, c-format + msgid "invalid %%U value" + msgstr "Ungültiger %%U-Wert" + +-#: config/alpha/alpha.c:5605 config/alpha/alpha.c:5619 +-#: config/rs6000/rs6000.c:9249 ++#: config/alpha/alpha.c:5616 config/alpha/alpha.c:5630 ++#: config/rs6000/rs6000.c:9340 + #, c-format + msgid "invalid %%s value" + msgstr "Ungültiger %%s-Wert" + +-#: config/alpha/alpha.c:5642 ++#: config/alpha/alpha.c:5653 + #, c-format + msgid "invalid %%C value" + msgstr "Ungültiger %%C-Wert" + +-#: config/alpha/alpha.c:5679 config/rs6000/rs6000.c:8979 +-#: config/rs6000/rs6000.c:8999 ++#: config/alpha/alpha.c:5690 config/rs6000/rs6000.c:9070 ++#: config/rs6000/rs6000.c:9090 + #, c-format + msgid "invalid %%E value" + msgstr "Ungültiger %%E-Wert" + +-#: config/alpha/alpha.c:5704 config/alpha/alpha.c:5752 ++#: config/alpha/alpha.c:5715 config/alpha/alpha.c:5763 + msgid "unknown relocation unspec" + msgstr "Unbekanntes relocation unspec" + +-#: config/alpha/alpha.c:5713 config/rs6000/rs6000.c:9562 ++#: config/alpha/alpha.c:5724 config/rs6000/rs6000.c:9653 + #, c-format + msgid "invalid %%xn code" + msgstr "Ungültiger %%xn-Code" + +-#: config/alpha/alpha.c:6657 config/alpha/alpha.c:6660 config/s390/s390.c:6575 ++#: config/alpha/alpha.c:6668 config/alpha/alpha.c:6671 config/s390/s390.c:6575 + #: config/s390/s390.c:6578 + msgid "bad builtin fcode" + msgstr "Falscher eingebauter fcode" +@@ -7707,7 +7717,7 @@ + msgid "Tune expected memory latency" + msgstr "Die erwartete Speicher-Wartezeit abstimmen" + +-#: config/alpha/alpha.h:376 config/ia64/ia64.h:267 config/rs6000/sysv4.h:90 ++#: config/alpha/alpha.h:376 config/ia64/ia64.h:272 config/rs6000/sysv4.h:90 + msgid "Specify bit size of immediate TLS offsets" + msgstr "Bit-Breite des unmittelbaren TLS-Versatzes angeben" + +@@ -7726,17 +7736,17 @@ + msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\"" + msgstr "Argument des Attributes »%s« ist nicht \"ilink1\" oder \"ilink2\"" + +-#: config/arc/arc.c:1714 config/m32r/m32r.c:2352 ++#: config/arc/arc.c:1714 config/m32r/m32r.c:2349 + #, c-format + msgid "invalid operand to %%R code" + msgstr "Ungültiger Operand für %%R-Code" + +-#: config/arc/arc.c:1746 config/m32r/m32r.c:2375 ++#: config/arc/arc.c:1746 config/m32r/m32r.c:2372 + #, c-format + msgid "invalid operand to %%H/%%L code" + msgstr "Ungültiger Operand für %%H/%%L-Code" + +-#: config/arc/arc.c:1769 config/m32r/m32r.c:2446 ++#: config/arc/arc.c:1769 config/m32r/m32r.c:2443 + #, c-format + msgid "invalid operand to %%U code" + msgstr "Ungültiger Operand für %%U-Code" +@@ -7747,7 +7757,7 @@ + msgstr "Ungültiger Operand für %%V-Code" + + #. Unknown flag. +-#: config/arc/arc.c:1787 config/m32r/m32r.c:2473 config/sparc/sparc.c:7010 ++#: config/arc/arc.c:1787 config/m32r/m32r.c:2470 config/sparc/sparc.c:7152 + msgid "invalid operand output code" + msgstr "Ungültiger Operanden-Ausgabecode" + +@@ -7756,7 +7766,7 @@ + msgid "switch -mcpu=%s conflicts with -march= switch" + msgstr "Schalter -mcpu=%s steht in Konflikt mit dem Schalter -march=" + +-#: config/arm/arm.c:530 config/rs6000/rs6000.c:767 config/sparc/sparc.c:424 ++#: config/arm/arm.c:530 config/rs6000/rs6000.c:785 config/sparc/sparc.c:426 + #, c-format + msgid "bad value (%s) for %s switch" + msgstr "Falscher Wert (%s) für Schalter %s" +@@ -7839,13 +7849,13 @@ + msgid "unable to use '%s' for PIC register" + msgstr "»%s« kann nicht für PIC-Register verwendet werden" + +-#: config/arm/arm.c:2249 config/arm/arm.c:2267 config/avr/avr.c:4558 +-#: config/c4x/c4x.c:4447 config/h8300/h8300.c:4260 config/i386/i386.c:1592 +-#: config/i386/i386.c:1638 config/ip2k/ip2k.c:3169 ++#: config/arm/arm.c:2249 config/arm/arm.c:2267 config/avr/avr.c:4523 ++#: config/c4x/c4x.c:4447 config/h8300/h8300.c:4260 config/i386/i386.c:1598 ++#: config/i386/i386.c:1644 config/ip2k/ip2k.c:3169 + #: config/m68hc11/m68hc11.c:1311 config/m68k/m68k.c:345 + #: config/mcore/mcore.c:3375 config/ns32k/ns32k.c:1064 +-#: config/rs6000/rs6000.c:14866 config/sh/sh.c:6873 config/sh/sh.c:6894 +-#: config/sh/sh.c:6929 config/stormy16/stormy16.c:2073 config/v850/v850.c:2173 ++#: config/rs6000/rs6000.c:15070 config/sh/sh.c:6874 config/sh/sh.c:6895 ++#: config/sh/sh.c:6930 config/stormy16/stormy16.c:2073 config/v850/v850.c:2173 + #, c-format + msgid "`%s' attribute only applies to functions" + msgstr "Attribut »%s« gilt nur für Funktionen" +@@ -7860,7 +7870,7 @@ + msgstr "Wähler muss »immediate« sein" + + #. @@@ better error message +-#: config/arm/arm.c:11284 config/i386/i386.c:14317 config/i386/i386.c:14351 ++#: config/arm/arm.c:11284 config/i386/i386.c:14318 config/i386/i386.c:14352 + msgid "mask must be an immediate" + msgstr "Maske muss »immediate« sein" + +@@ -7996,55 +8006,55 @@ + msgid "Ignore dllimport attribute for functions" + msgstr "Attribut dllimport für Funktionen ignorieren" + +-#: config/avr/avr.c:514 ++#: config/avr/avr.c:511 + #, c-format + msgid "large frame pointer change (%d) with -mtiny-stack" + msgstr "Wechsel großer Rahmenzeiger (%d) mit -mtiny-stack" + +-#: config/avr/avr.c:1101 ++#: config/avr/avr.c:1098 + msgid "bad address, not (reg+disp):" + msgstr "Falsche Adresse, nicht (reg+disp):" + +-#: config/avr/avr.c:1109 ++#: config/avr/avr.c:1106 + msgid "internal compiler error. Bad address:" + msgstr "Interner Compiler-Fehler. Falsche Adresse:" + +-#: config/avr/avr.c:1122 ++#: config/avr/avr.c:1119 + msgid "internal compiler error. Unknown mode:" + msgstr "Interner Compiler-Fehler. Unbekannter Modus:" + +-#: config/avr/avr.c:1744 config/avr/avr.c:2405 ++#: config/avr/avr.c:1741 config/avr/avr.c:2402 + msgid "invalid insn:" + msgstr "Ungültiger Befehl:" + +-#: config/avr/avr.c:1778 config/avr/avr.c:1861 config/avr/avr.c:1910 +-#: config/avr/avr.c:1919 config/avr/avr.c:2014 config/avr/avr.c:2183 +-#: config/avr/avr.c:2439 config/avr/avr.c:2547 ++#: config/avr/avr.c:1775 config/avr/avr.c:1858 config/avr/avr.c:1907 ++#: config/avr/avr.c:1916 config/avr/avr.c:2011 config/avr/avr.c:2180 ++#: config/avr/avr.c:2436 config/avr/avr.c:2544 + msgid "incorrect insn:" + msgstr "Falscher Befehl:" + +-#: config/avr/avr.c:1938 config/avr/avr.c:2099 config/avr/avr.c:2254 +-#: config/avr/avr.c:2591 ++#: config/avr/avr.c:1935 config/avr/avr.c:2096 config/avr/avr.c:2251 ++#: config/avr/avr.c:2588 + msgid "unknown move insn:" + msgstr "Falscher Kopierbefehl:" + +-#: config/avr/avr.c:2814 ++#: config/avr/avr.c:2811 + msgid "bad shift insn:" + msgstr "Falscher Schiebe-Befehl:" + +-#: config/avr/avr.c:2927 config/avr/avr.c:3348 config/avr/avr.c:3719 ++#: config/avr/avr.c:2924 config/avr/avr.c:3345 config/avr/avr.c:3716 + msgid "internal compiler error. Incorrect shift:" + msgstr "Interner Compiler-Fehler. Falsche Verschiebung:" + +-#: config/avr/avr.c:4532 config/ip2k/ip2k.c:3144 ++#: config/avr/avr.c:4497 config/ip2k/ip2k.c:3144 + msgid "only initialized variables can be placed into program memory area" + msgstr "Nur initialisierte Variablen können im Programmspeicherbereich platziert werden" + +-#: config/avr/avr.c:4626 ++#: config/avr/avr.c:4591 + msgid "only uninitialized variables can be placed in the .noinit section" + msgstr "Nur uninitialisierte Variablen können im .noinit-Bereich platziert werden" + +-#: config/avr/avr.c:4640 ++#: config/avr/avr.c:4605 + #, c-format + msgid "MCU `%s' supported for assembler only" + msgstr "MCU »%s« nur für Assemblierung unterstützt" +@@ -9221,7 +9231,7 @@ + msgid "code model %s not supported in PIC mode" + msgstr "Codemodell %s wird im PIC-Modus nicht unterstützt" + +-#: config/i386/i386.c:1189 config/sparc/sparc.c:387 ++#: config/i386/i386.c:1189 config/sparc/sparc.c:389 + #, c-format + msgid "bad value (%s) for -mcmodel= switch" + msgstr "Falscher Wert (%s) für Schalter -mcmodel=" +@@ -9254,138 +9264,138 @@ + msgid "bad value (%s) for -march= switch" + msgstr "Falscher Wert (%s) für Schalter -march=" + +-#: config/i386/i386.c:1260 ++#: config/i386/i386.c:1266 + #, c-format + msgid "bad value (%s) for -mtune= switch" + msgstr "Falscher Wert (%s) für Schalter -mtune=" + +-#: config/i386/i386.c:1277 ++#: config/i386/i386.c:1283 + #, c-format + msgid "-mregparm=%d is not between 0 and %d" + msgstr "-mregparm=%d ist nicht zwischen 0 und %d" + +-#: config/i386/i386.c:1290 ++#: config/i386/i386.c:1296 + msgid "-malign-loops is obsolete, use -falign-loops" + msgstr "-malign-loops ist veraltet, Ersatz: -falign-loops" + +-#: config/i386/i386.c:1295 config/i386/i386.c:1308 config/i386/i386.c:1321 ++#: config/i386/i386.c:1301 config/i386/i386.c:1314 config/i386/i386.c:1327 + #, c-format + msgid "-malign-loops=%d is not between 0 and %d" + msgstr "-malign-loops=%d ist nicht zwischen 0 und %d" + +-#: config/i386/i386.c:1303 ++#: config/i386/i386.c:1309 + msgid "-malign-jumps is obsolete, use -falign-jumps" + msgstr "-malign-jumps ist veraltet, Ersatz: -falign-jumps" + +-#: config/i386/i386.c:1316 ++#: config/i386/i386.c:1322 + msgid "-malign-functions is obsolete, use -falign-functions" + msgstr "-malign-functions ist veraltet, Ersatz: -falign-functions" + +-#: config/i386/i386.c:1354 ++#: config/i386/i386.c:1360 + #, c-format + msgid "-mpreferred-stack-boundary=%d is not between %d and 12" + msgstr "-mpreferred-stack-boundary=%d ist nicht zwischen %d und 12" + +-#: config/i386/i386.c:1366 ++#: config/i386/i386.c:1372 + #, c-format + msgid "-mbranch-cost=%d is not between 0 and 5" + msgstr "-mbranch-cost=%d ist nicht zwischen 0 und 5" + +-#: config/i386/i386.c:1378 ++#: config/i386/i386.c:1384 + #, c-format + msgid "bad value (%s) for -mtls-dialect= switch" + msgstr "Falscher Wert (%s) für Schalter -mtls-dialect=" + +-#: config/i386/i386.c:1407 ++#: config/i386/i386.c:1413 + msgid "-malign-double makes no sense in the 64bit mode" + msgstr "-malign-double ist im 64-Bit-Modus sinnlos" + +-#: config/i386/i386.c:1409 ++#: config/i386/i386.c:1415 + msgid "-mrtd calling convention not supported in the 64bit mode" + msgstr "Aufrufkonvention -mrtd wird im 64-Bit-Modus nicht unterstützt" + +-#: config/i386/i386.c:1431 config/i386/i386.c:1442 ++#: config/i386/i386.c:1437 config/i386/i386.c:1448 + msgid "SSE instruction set disabled, using 387 arithmetics" + msgstr "SSE-Befehlssatz ausgeschaltet, es wird 387-Arithmetik verwendet" + +-#: config/i386/i386.c:1447 ++#: config/i386/i386.c:1453 + msgid "387 instruction set disabled, using SSE arithmetics" + msgstr "387-Befehlssatz ausgeschaltet, es wird SSE-Arithmetik verwendet" + +-#: config/i386/i386.c:1454 ++#: config/i386/i386.c:1460 + #, c-format + msgid "bad value (%s) for -mfpmath= switch" + msgstr "Falscher Wert (%s) für Schalter -mfpmath=" + +-#: config/i386/i386.c:1602 config/i386/i386.c:1613 ++#: config/i386/i386.c:1608 config/i386/i386.c:1619 + msgid "fastcall and stdcall attributes are not compatible" + msgstr "Attribute fastcall und stdcall sind nicht verträglich" + +-#: config/i386/i386.c:1606 config/i386/i386.c:1662 ++#: config/i386/i386.c:1612 config/i386/i386.c:1668 + msgid "fastcall and regparm attributes are not compatible" + msgstr "Attribute fastcall und regparm sind nicht verträglich" + +-#: config/i386/i386.c:1649 ++#: config/i386/i386.c:1655 + #, c-format + msgid "`%s' attribute requires an integer constant argument" + msgstr "Attribut »%s« benötigt eine Ganzzahlkonstante als Argument" + +-#: config/i386/i386.c:1655 ++#: config/i386/i386.c:1661 + #, c-format + msgid "argument to `%s' attribute larger than %d" + msgstr "Argument für Attribut »%s« ist größer als %d" + +-#: config/i386/i386.c:2621 ++#: config/i386/i386.c:2627 + msgid "SSE vector argument without SSE enabled changes the ABI" + msgstr "SSE-Vektorargument ohne eingeschaltetes SSE ändert das ABI" + +-#: config/i386/i386.c:2637 ++#: config/i386/i386.c:2643 + msgid "MMX vector argument without MMX enabled changes the ABI" + msgstr "MMX-Vektorargument ohne eingeschaltetes MMX ändert das ABI" + +-#: config/i386/i386.c:2865 ++#: config/i386/i386.c:2871 + msgid "SSE vector return without SSE enabled changes the ABI" + msgstr "SSE-Vektorrückgabe ohne eingeschaltetes SSE ändert das ABI" + +-#: config/i386/i386.c:6840 ++#: config/i386/i386.c:6841 + msgid "invalid UNSPEC as operand" + msgstr "ungültiges UNSPEC als Operand" + +-#: config/i386/i386.c:7098 ++#: config/i386/i386.c:7099 + msgid "extended registers have no high halves" + msgstr "erweiterte Register haben keine oberen Hälften" + +-#: config/i386/i386.c:7113 ++#: config/i386/i386.c:7114 + msgid "unsupported operand size for extended register" + msgstr "nicht unterstützte Operandengröße für erweitertes Register" + +-#: config/i386/i386.c:7428 ++#: config/i386/i386.c:7429 + msgid "operand is neither a constant nor a condition code, invalid operand code 'c'" + msgstr "Operand ist weder eine Konstante noch ein Bedingungscode, ungültiger Operandencode »c«" + +-#: config/i386/i386.c:7474 ++#: config/i386/i386.c:7475 + #, c-format + msgid "invalid operand code `%c'" + msgstr "ungültiger Operandencode »%c«" + +-#: config/i386/i386.c:7517 ++#: config/i386/i386.c:7518 + msgid "invalid constraints for operand" + msgstr "ungültige Bedingungen für Operand" + +-#: config/i386/i386.c:12031 ++#: config/i386/i386.c:12032 + msgid "unknown insn mode" + msgstr "unbekannter Befehlsmodus" + +-#: config/i386/i386.c:14119 config/i386/i386.c:14155 ++#: config/i386/i386.c:14120 config/i386/i386.c:14156 + #, c-format + msgid "selector must be an integer constant in the range 0..%i" + msgstr "Wahl muss auf Ganzzahlkonstante im Bereich 0..%i fallen" + +-#: config/i386/i386.c:14383 ++#: config/i386/i386.c:14384 + msgid "shift must be an immediate" + msgstr "Verschiebung muss direkt angegeben werden" + +-#: config/i386/i386.c:15406 ++#: config/i386/i386.c:15407 + #, c-format + msgid "`%s' incompatible attribute ignored" + msgstr "»%s«-inkompatibles Attribut wird ignoriert" +@@ -9674,7 +9684,7 @@ + #. variable, type `char *', is set to the variable part of the given + #. option if the fixed part matches. The actual option name is made + #. by appending `-m' to the specified name. +-#: config/i386/i386.h:461 config/ia64/ia64.h:269 config/rs6000/rs6000.h:449 ++#: config/i386/i386.h:461 config/ia64/ia64.h:274 config/rs6000/rs6000.h:449 + #: config/s390/s390.h:146 config/sparc/sparc.h:656 + msgid "Schedule code for given CPU" + msgstr "Code für die gegebene CPU planen" +@@ -9792,7 +9802,7 @@ + msgid "iC2.0 and iC3.0 are incompatible - using iC3.0" + msgstr "iC2.0 und iC3.0 sind unverträglich - iC3.0 wird verwendet" + +-#: config/i960/i960.c:1456 config/m68k/m68k.c:600 config/rs6000/rs6000.c:11597 ++#: config/i960/i960.c:1456 config/m68k/m68k.c:600 config/rs6000/rs6000.c:11690 + msgid "stack limit expression is not supported" + msgstr "Ausdruck der Stapelgrenze wird nicht unterstützt" + +@@ -9949,41 +9959,41 @@ + msgid "%Jaddress area attribute cannot be specified for functions" + msgstr "%JAdressbereichsattribut kann nicht für Funktionen angegeben werden" + +-#: config/ia64/ia64.c:4308 ++#: config/ia64/ia64.c:4314 + msgid "ia64_print_operand: unknown code" + msgstr "ia64_print_operand: unbekannter Code" + +-#: config/ia64/ia64.c:4648 ++#: config/ia64/ia64.c:4654 + msgid "value of -mfixed-range must have form REG1-REG2" + msgstr "Wert von -mfixed-range muss die Form REG1-REG2 haben" + +-#: config/ia64/ia64.c:4675 ++#: config/ia64/ia64.c:4681 + #, c-format + msgid "%s-%s is an empty range" + msgstr "%s-%s ist ein leerer Bereich" + +-#: config/ia64/ia64.c:4723 ++#: config/ia64/ia64.c:4729 + msgid "cannot optimize floating point division for both latency and throughput" + msgstr "Fließkommadivision kann nicht gleichzeitig auf Wartezeit und Durchsatz optimiert werden" + +-#: config/ia64/ia64.c:4729 ++#: config/ia64/ia64.c:4735 + msgid "cannot optimize integer division for both latency and throughput" + msgstr "Ganzzahldivision kann nicht gleichzeitig auf Wartezeit und Durchsatz optimiert werden" + +-#: config/ia64/ia64.c:4735 ++#: config/ia64/ia64.c:4741 + msgid "cannot optimize square root for both latency and throughput" + msgstr "Quadratwurzel kann nicht gleichzeitig auf Wartezeit und Durchsatz optimiert werden" + +-#: config/ia64/ia64.c:4741 ++#: config/ia64/ia64.c:4747 + msgid "not yet implemented: latency-optimized inline square root" + msgstr "noch nicht implementiert: Wartezeit-optimierte eingebettete Quadratwurzel" + +-#: config/ia64/ia64.c:4753 ++#: config/ia64/ia64.c:4759 + #, c-format + msgid "bad value (%s) for -mtls-size= switch" + msgstr "Falscher Wert (%s) für Schalter -mtls-size=" + +-#: config/ia64/ia64.c:4769 ++#: config/ia64/ia64.c:4775 + #, c-format + msgid "bad value (%s) for -tune= switch" + msgstr "Falscher Wert (%s) für Schalter -tune=" +@@ -9991,107 +10001,107 @@ + #. This macro defines names of command options to set and clear bits in + #. `target_flags'. Its definition is an initializer with a subgrouping for + #. each command option. +-#: config/ia64/ia64.h:172 ++#: config/ia64/ia64.h:177 + msgid "Generate big endian code" + msgstr "Big-Endian-Code erzeugen" + +-#: config/ia64/ia64.h:174 config/mcore/mcore.h:154 ++#: config/ia64/ia64.h:179 config/mcore/mcore.h:154 + msgid "Generate little endian code" + msgstr "Little-Endian-Code erzeugen" + +-#: config/ia64/ia64.h:176 ++#: config/ia64/ia64.h:181 + msgid "Generate code for GNU as" + msgstr "Code für GNU as erzeugen" + +-#: config/ia64/ia64.h:178 ++#: config/ia64/ia64.h:183 + msgid "Generate code for Intel as" + msgstr "Code für Intel as erzeugen" + +-#: config/ia64/ia64.h:180 ++#: config/ia64/ia64.h:185 + msgid "Generate code for GNU ld" + msgstr "Code für GNU ld erzeugen" + +-#: config/ia64/ia64.h:182 ++#: config/ia64/ia64.h:187 + msgid "Generate code for Intel ld" + msgstr "Code für Intel ld erzeugen" + +-#: config/ia64/ia64.h:184 ++#: config/ia64/ia64.h:189 + msgid "Generate code without GP reg" + msgstr "Code ohne GP-Register erzeugen" + +-#: config/ia64/ia64.h:186 ++#: config/ia64/ia64.h:191 + msgid "Emit stop bits before and after volatile extended asms" + msgstr "Vor und nach flüchtig erweiterten asms Stop-Bits ausgeben" + +-#: config/ia64/ia64.h:188 ++#: config/ia64/ia64.h:193 + msgid "Don't emit stop bits before and after volatile extended asms" + msgstr "Keine Stop-Bits vor und nach flüchtig erweiterten asms ausgeben" + +-#: config/ia64/ia64.h:190 ++#: config/ia64/ia64.h:195 + msgid "Emit code for Itanium (TM) processor B step" + msgstr "Code für Itanium (TM) B step ausgeben" + +-#: config/ia64/ia64.h:192 ++#: config/ia64/ia64.h:197 + msgid "Use in/loc/out register names" + msgstr "in/loc/out-Registernamen ausgeben" + +-#: config/ia64/ia64.h:194 ++#: config/ia64/ia64.h:199 + msgid "Disable use of sdata/scommon/sbss" + msgstr "Verwendung von sdata/scommon/sbss ausschalten" + +-#: config/ia64/ia64.h:196 ++#: config/ia64/ia64.h:201 + msgid "Enable use of sdata/scommon/sbss" + msgstr "Verwendung von sdata/scommon/sbss einschalten" + +-#: config/ia64/ia64.h:198 ++#: config/ia64/ia64.h:203 + msgid "gp is constant (but save/restore gp on indirect calls)" + msgstr "gp ist konstant (aber gp wird bei indirekten Aufrufen gesichert/wiederhergestellt)" + +-#: config/ia64/ia64.h:200 ++#: config/ia64/ia64.h:205 + msgid "Generate self-relocatable code" + msgstr "Selbstverschiebbaren Code erzeugen" + +-#: config/ia64/ia64.h:202 ++#: config/ia64/ia64.h:207 + msgid "Generate inline floating point division, optimize for latency" + msgstr "Eingebettete Fließkommadivision erzeugen, auf Wartezeit optimieren" + +-#: config/ia64/ia64.h:204 ++#: config/ia64/ia64.h:209 + msgid "Generate inline floating point division, optimize for throughput" + msgstr "Eingebettete Fließkommadivision erzeugen, auf Durchsatz optimieren" + +-#: config/ia64/ia64.h:206 ++#: config/ia64/ia64.h:211 + msgid "Generate inline integer division, optimize for latency" + msgstr "Eingebettete Ganzzahldivision erzeugen, auf Wartezeit optimieren" + +-#: config/ia64/ia64.h:208 ++#: config/ia64/ia64.h:213 + msgid "Generate inline integer division, optimize for throughput" + msgstr "Eingebettete Ganzzahldivision erzeugen, auf Durchsatz optimieren" + +-#: config/ia64/ia64.h:210 ++#: config/ia64/ia64.h:215 + msgid "Generate inline square root, optimize for latency" + msgstr "Eingebettete Quadratwurzel erzeugen, auf Wartezeit optimieren" + +-#: config/ia64/ia64.h:212 ++#: config/ia64/ia64.h:217 + msgid "Generate inline square root, optimize for throughput" + msgstr "Eingebettete Quadratwurzel erzeugen, auf Durchsatz optimieren" + +-#: config/ia64/ia64.h:214 ++#: config/ia64/ia64.h:219 + msgid "Enable Dwarf 2 line debug info via GNU as" + msgstr "Dwarf 2 Zeilenfehlersuchinfo über GNU as einschalten" + +-#: config/ia64/ia64.h:216 ++#: config/ia64/ia64.h:221 + msgid "Disable Dwarf 2 line debug info via GNU as" + msgstr "Dwarf 2 Zeilenfehlersuchinfo über GNU as ausschalten" + +-#: config/ia64/ia64.h:218 ++#: config/ia64/ia64.h:223 + msgid "Enable earlier placing stop bits for better scheduling" + msgstr "Frühere Stop-Bit-Platzierung für bessere Planung einschalten" + +-#: config/ia64/ia64.h:220 ++#: config/ia64/ia64.h:225 + msgid "Disable earlier placing stop bits" + msgstr "Frühere Stop-Bit-Platzierung ausschalten" + +-#: config/ia64/ia64.h:265 ++#: config/ia64/ia64.h:270 + msgid "Specify range of registers to make fixed" + msgstr "Bereich der zu fixierenden Register angeben" + +@@ -10128,7 +10138,7 @@ + msgid "PRINT_OPERAND: Unknown punctuation '%c'" + msgstr "PRINT_OPERAND: Unbekanntes Zeichen '%c'" + +-#: config/iq2000/iq2000.c:3478 config/mips/mips.c:5464 ++#: config/iq2000/iq2000.c:3478 config/mips/mips.c:5463 + #: config/xtensa/xtensa.c:1950 + msgid "PRINT_OPERAND null pointer" + msgstr "PRINT_OPERAND Null-Zeiger" +@@ -10138,12 +10148,12 @@ + msgid "invalid %%P operand" + msgstr "unbekannter Operand für %%P" + +-#: config/iq2000/iq2000.c:3555 config/rs6000/rs6000.c:9178 ++#: config/iq2000/iq2000.c:3555 config/rs6000/rs6000.c:9269 + #, c-format + msgid "invalid %%p value" + msgstr "unbekannter Wert für %%p" + +-#: config/iq2000/iq2000.c:3619 config/mips/mips.c:5594 ++#: config/iq2000/iq2000.c:3619 config/mips/mips.c:5593 + #, c-format + msgid "invalid use of %%d, %%x, or %%X" + msgstr "ungültige Verwendung von %%d, %%x oder %%X" +@@ -10199,48 +10209,48 @@ + msgid "bad value (%s) for -flush-trap=n (0= found without a %%< in assembler pattern" + msgstr "interner Fehler: %%> ohne %%< in Assemblermuster gefunden" + +-#: config/mips/mips.c:5441 ++#: config/mips/mips.c:5440 + #, c-format + msgid "internal error: %%} found without a %%{ in assembler pattern" + msgstr "interner Fehler: %%} ohne %%{ in Assemblermuster gefunden" + +-#: config/mips/mips.c:5455 ++#: config/mips/mips.c:5454 + #, c-format + msgid "PRINT_OPERAND: unknown punctuation '%c'" + msgstr "PRINT_OPERAND: unbekanntes Zeichen '%c'" + +-#: config/mips/mips.c:5484 ++#: config/mips/mips.c:5483 + #, c-format + msgid "PRINT_OPERAND, invalid insn for %%C" + msgstr "PRINT_OPERAND, ungültiger Befehl für %%C" + +-#: config/mips/mips.c:5501 ++#: config/mips/mips.c:5500 + #, c-format + msgid "PRINT_OPERAND, invalid insn for %%N" + msgstr "PRINT_OPERAND, ungültiger Befehl für %%N" + +-#: config/mips/mips.c:5510 ++#: config/mips/mips.c:5509 + #, c-format + msgid "PRINT_OPERAND, invalid insn for %%F" + msgstr "PRINT_OPERAND, ungültiger Befehl für %%F" + +-#: config/mips/mips.c:5519 ++#: config/mips/mips.c:5518 + #, c-format + msgid "PRINT_OPERAND, invalid insn for %%W" + msgstr "PRINT_OPERAND, ungültiger Befehl für %%W" + +-#: config/mips/mips.c:5625 ++#: config/mips/mips.c:5624 + msgid "PRINT_OPERAND, invalid operand for relocation" + msgstr "PRINT_OPERAND, ungültiger Operand für Auslagerung" + +-#: config/mips/mips.c:8310 ++#: config/mips/mips.c:8324 + #, c-format + msgid "can not handle inconsistent calls to `%s'" + msgstr "inkonsistente Aufrufe von »%s« nicht behandeln" + +-#: config/mips/mips.c:9316 ++#: config/mips/mips.c:9333 + msgid "the cpu name must be lower case" + msgstr "CPU-Name muss klein geschrieben sein" + +-#: config/mips/mips.c:9338 ++#: config/mips/mips.c:9355 + #, c-format + msgid "bad value (%s) for %s" + msgstr "Falscher Wert (%s) für %s" + +-#: config/mips/mips.c:9607 ++#: config/mips/mips.c:9624 + #, c-format + msgid "can't rewind temp file: %m" + msgstr "temporäre Datei konnte nicht zurückgesetzt werden: %m" + +-#: config/mips/mips.c:9611 ++#: config/mips/mips.c:9628 + #, c-format + msgid "can't write to output file: %m" + msgstr "in die Ausgabedatei kann nicht geschrieben werden: %m" + +-#: config/mips/mips.c:9614 ++#: config/mips/mips.c:9631 + #, c-format + msgid "can't read from temp file: %m" + msgstr "von der temporären Datei kann nicht gelesen werden: %m" + +-#: config/mips/mips.c:9617 ++#: config/mips/mips.c:9634 + #, c-format + msgid "can't close temp file: %m" + msgstr "die temporäre Datei kann nicht geschlossen werden: %m" +@@ -11022,7 +11032,7 @@ + + #. Output assembler code to FILE to increment profiler label # LABELNO + #. for profiling a function entry. +-#: config/mips/mips.h:2418 ++#: config/mips/mips.h:2430 + msgid "mips16 function profiling" + msgstr "Profiling für mips16-Funktionen" + +@@ -11578,167 +11588,176 @@ + msgid "junk at end of #pragma longcall" + msgstr "Ausschuss am Ende von #pragma longcall" + +-#: config/rs6000/rs6000.c:791 ++#: config/rs6000/rs6000.c:809 + msgid "-mmultiple is not supported on little endian systems" + msgstr "-mmultiple wird auf »little endian«-Systemen nicht unterstützt" + +-#: config/rs6000/rs6000.c:798 ++#: config/rs6000/rs6000.c:816 + msgid "-mstring is not supported on little endian systems" + msgstr "-mstring wird auf »little endian«-Systemen nicht unterstützt" + +-#: config/rs6000/rs6000.c:812 ++#: config/rs6000/rs6000.c:830 + #, c-format + msgid "unknown -mdebug-%s switch" + msgstr "unbekannter Schalter -mdebug-%s" + +-#: config/rs6000/rs6000.c:824 ++#: config/rs6000/rs6000.c:842 + #, c-format + msgid "unknown -mtraceback arg `%s'; expecting `full', `partial' or `none'" + msgstr "unbekanntes Argument »%s« für -mtraceback; »full«, »partial« oder »none« erwartet" + +-#: config/rs6000/rs6000.c:835 ++#: config/rs6000/rs6000.c:853 + #, c-format + msgid "Unknown switch -mlong-double-%s" + msgstr "Unbekannter Schalter -mlong-double-%s" + +-#: config/rs6000/rs6000.c:876 ++#: config/rs6000/rs6000.c:894 + msgid "AltiVec and E500 instructions cannot coexist" + msgstr "AltiVec- und E500-Befehle können nicht koexistieren" + +-#: config/rs6000/rs6000.c:1029 ++#: config/rs6000/rs6000.c:1058 + #, c-format + msgid "unknown -m%s= option specified: '%s'" + msgstr "unbekannte Option für -m%s= angegeben: »%s«" + +-#: config/rs6000/rs6000.c:1050 ++#: config/rs6000/rs6000.c:1079 + #, c-format + msgid "not configured for ABI: '%s'" + msgstr "nicht für ABI konfiguriert: »%s«" + +-#: config/rs6000/rs6000.c:1056 ++#: config/rs6000/rs6000.c:1085 + #, c-format + msgid "unknown ABI specified: '%s'" + msgstr "unbekanntes ABI angegeben: »%s«" + +-#: config/rs6000/rs6000.c:1070 ++#: config/rs6000/rs6000.c:1099 + #, c-format + msgid "unknown -malign-XXXXX option specified: '%s'" + msgstr "unbekannte Option -malign-XXXXX angegeben: »%s«" + +-#: config/rs6000/rs6000.c:3972 ++#: config/rs6000/rs6000.c:4001 + msgid "Cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them." + msgstr "Wert kann nicht in Vektorregister zurückgegeben werden, da AltiVec-Befehle ausgeschaltet sind; -maltivec schaltet sie ein." + +-#: config/rs6000/rs6000.c:4095 ++#: config/rs6000/rs6000.c:4124 + msgid "Cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them." + msgstr "Argument kann nicht in Vektorregister übergegeben werden, da AltiVec-Befehle ausgeschaltet sind; -maltivec schaltet sie ein." + +-#: config/rs6000/rs6000.c:5599 ++#: config/rs6000/rs6000.c:5604 + msgid "argument 1 must be a 5-bit signed literal" + msgstr "Argument 1 muss ein vorzeichenbehaftetes 5-Bit-Symbol sein" + +-#: config/rs6000/rs6000.c:5701 config/rs6000/rs6000.c:6357 ++#: config/rs6000/rs6000.c:5707 config/rs6000/rs6000.c:6374 + msgid "argument 2 must be a 5-bit unsigned literal" + msgstr "Argument 2 muss ein vorzeichenloses 5-Bit-Symbol sein" + +-#: config/rs6000/rs6000.c:5741 ++#: config/rs6000/rs6000.c:5747 + msgid "argument 1 of __builtin_altivec_predicate must be a constant" + msgstr "Argument 1 von __builtin_altivec_predicate muss eine Konstante sein" + +-#: config/rs6000/rs6000.c:5795 ++#: config/rs6000/rs6000.c:5801 + msgid "argument 1 of __builtin_altivec_predicate is out of range" + msgstr "Argument 1 von __builtin_altivec_predicate ist außerhalb des Wertebereiches" + +-#: config/rs6000/rs6000.c:5956 ++#: config/rs6000/rs6000.c:5962 + msgid "argument 3 must be a 4-bit unsigned literal" + msgstr "Argument 3 muss ein vorzeichenloses 4-Bit-Symbol sein" + +-#: config/rs6000/rs6000.c:6126 ++#: config/rs6000/rs6000.c:6134 + #, c-format + msgid "argument to `%s' must be a 2-bit unsigned literal" + msgstr "Argument für »%s« muss ein vorzeichenloses 2-Bit-Symbol sein" + +-#: config/rs6000/rs6000.c:6239 ++#: config/rs6000/rs6000.c:6247 + msgid "argument to dss must be a 2-bit unsigned literal" + msgstr "Argument für dss muss ein vorzeichenloses 2-Bit-Symbol sein" + +-#: config/rs6000/rs6000.c:6477 ++#: config/rs6000/rs6000.c:6261 ++#, c-format ++msgid "invalid parameter combination for `%s' AltiVec intrinsic" ++msgstr "" ++ ++#: config/rs6000/rs6000.c:6494 + msgid "argument 1 of __builtin_spe_predicate must be a constant" + msgstr "Argument 1 von __builtin_spe_predicate muss eine Konstante sein" + +-#: config/rs6000/rs6000.c:6550 ++#: config/rs6000/rs6000.c:6567 + msgid "argument 1 of __builtin_spe_predicate is out of range" + msgstr "Argument 1 von __builtin_spe_predicate ist außerhalb des Wertebereiches" + +-#: config/rs6000/rs6000.c:9008 ++#: config/rs6000/rs6000.c:9099 + #, c-format + msgid "invalid %%f value" + msgstr "ungültiger %%f-Wert" + +-#: config/rs6000/rs6000.c:9017 ++#: config/rs6000/rs6000.c:9108 + #, c-format + msgid "invalid %%F value" + msgstr "ungültiger %%F-Wert" + +-#: config/rs6000/rs6000.c:9026 ++#: config/rs6000/rs6000.c:9117 + #, c-format + msgid "invalid %%G value" + msgstr "ungültiger %%G-Wert" + +-#: config/rs6000/rs6000.c:9061 ++#: config/rs6000/rs6000.c:9152 + #, c-format + msgid "invalid %%j code" + msgstr "ungültiger %%j-Code" + +-#: config/rs6000/rs6000.c:9071 ++#: config/rs6000/rs6000.c:9162 + #, c-format + msgid "invalid %%J code" + msgstr "ungültiger %%J-Code" + +-#: config/rs6000/rs6000.c:9081 ++#: config/rs6000/rs6000.c:9172 + #, c-format + msgid "invalid %%k value" + msgstr "ungültiger %%k-Wert" + +-#: config/rs6000/rs6000.c:9101 config/xtensa/xtensa.c:2000 ++#: config/rs6000/rs6000.c:9192 config/xtensa/xtensa.c:2000 + #, c-format + msgid "invalid %%K value" + msgstr "ungültiger %%K-Wert" + +-#: config/rs6000/rs6000.c:9168 ++#: config/rs6000/rs6000.c:9259 + #, c-format + msgid "invalid %%O value" + msgstr "ungültiger %%O-Wert" + +-#: config/rs6000/rs6000.c:9215 ++#: config/rs6000/rs6000.c:9306 + #, c-format + msgid "invalid %%q value" + msgstr "ungültiger %%q-Wert" + +-#: config/rs6000/rs6000.c:9259 ++#: config/rs6000/rs6000.c:9350 + #, c-format + msgid "invalid %%S value" + msgstr "ungültiger %%S-Wert" + +-#: config/rs6000/rs6000.c:9301 ++#: config/rs6000/rs6000.c:9392 + #, c-format + msgid "invalid %%T value" + msgstr "ungültiger %%T-Wert" + +-#: config/rs6000/rs6000.c:9311 ++#: config/rs6000/rs6000.c:9402 + #, c-format + msgid "invalid %%u value" + msgstr "ungültiger %%u-Wert" + +-#: config/rs6000/rs6000.c:9320 config/xtensa/xtensa.c:1970 ++#: config/rs6000/rs6000.c:9411 config/xtensa/xtensa.c:1970 + #, c-format + msgid "invalid %%v value" + msgstr "ungültiger %%v-Wert" + +-#: config/rs6000/rs6000.c:13815 ++#: config/rs6000/rs6000.c:13913 + msgid "no profiling of 64-bit code for this ABI" + msgstr "kein Profiling von 64-bit-Code für dieses ABI" + ++#: config/rs6000/rs6000.c:14986 ++msgid "use of 'long' in AltiVec types is deprecated; use 'int'" ++msgstr "" ++ + #: config/rs6000/aix.h:184 config/rs6000/beos.h:32 + msgid "Always pass floating-point arguments in memory" + msgstr "Fließkommaargumente immer über Speicher übergeben" +@@ -11983,18 +12002,22 @@ + msgstr "Alle Bereichsgrenzen bei Aufrufbefehlen vermeiden" + + #: config/rs6000/rs6000.h:468 ++msgid "Warn about deprecated 'vector long ...' AltiVec type usage" ++msgstr "" ++ ++#: config/rs6000/rs6000.h:471 + msgid "Determine which dependences between insns are considered costly" + msgstr "Feststellen, welche Abhängigkeiten zwischen Befehlen als teuer angesehen werden" + +-#: config/rs6000/rs6000.h:470 ++#: config/rs6000/rs6000.h:473 + msgid "Specify which post scheduling nop insertion scheme to apply" + msgstr "Angeben, welches Schema zum Einfügen von nops nach der Planung angewendet werden soll" + +-#: config/rs6000/rs6000.h:472 ++#: config/rs6000/rs6000.h:475 + msgid "Specify alignment of structure fields default/natural" + msgstr "Ausrichtung der Strukturfelder default/natural angeben" + +-#: config/rs6000/rs6000.h:474 ++#: config/rs6000/rs6000.h:477 + msgid "Specify scheduling priority for dispatch slot restricted insns" + msgstr "Planungspriorität für Verteilschlitz-beschränkte Befehle angeben" + +@@ -12010,7 +12033,7 @@ + #. Number of bytes into the frame return addresses can be found. See + #. rs6000_stack_info in rs6000.c for more information on how the different + #. abi's store the return address. +-#: config/rs6000/rs6000.h:1923 ++#: config/rs6000/rs6000.h:1932 + msgid "RETURN_ADDRESS_OFFSET not supported" + msgstr "RETURN_ADDRESS_OFFSET nicht unterstützt" + +@@ -12277,28 +12300,28 @@ + msgid "enable fused multiply/add instructions" + msgstr "verschmolzene Multiplikations/Additions-Befehle einschalten" + +-#: config/sh/sh.c:5977 ++#: config/sh/sh.c:5978 + msgid "__builtin_saveregs not supported by this subtarget" + msgstr "__builtin_saveregs wird für dieses Teilziel nicht unterstützt" + +-#: config/sh/sh.c:6879 ++#: config/sh/sh.c:6880 + msgid "attribute interrupt_handler is not compatible with -m5-compact" + msgstr "Attribut interrupt_handler ist mit-m5-compact unverträglich" + + #. The sp_switch attribute only has meaning for interrupt functions. +-#: config/sh/sh.c:6901 config/sh/sh.c:6936 ++#: config/sh/sh.c:6902 config/sh/sh.c:6937 + #, c-format + msgid "`%s' attribute only applies to interrupt functions" + msgstr "Attribut »%s« bezieht sich nur auf Unterbrechungsfunktionen" + + #. The argument must be a constant string. +-#: config/sh/sh.c:6908 ++#: config/sh/sh.c:6909 + #, c-format + msgid "`%s' attribute argument not a string constant" + msgstr "Attributargument »%s« ist keine Zeichenkettenkonstante" + + #. The argument must be a constant integer. +-#: config/sh/sh.c:6943 ++#: config/sh/sh.c:6944 + #, c-format + msgid "`%s' attribute argument not an integer constant" + msgstr "Attributargument »%s« ist keine Ganzzahlkonstante" +@@ -12310,69 +12333,69 @@ + msgid "Profiling is not supported on this target." + msgstr "Profiling wird von diesem Ziel nicht unterstützt" + +-#: config/sparc/sparc.c:360 ++#: config/sparc/sparc.c:362 + #, c-format + msgid "%s is not supported by this configuration" + msgstr "%s wird von dieser Konfiguration nicht unterstützt" + +-#: config/sparc/sparc.c:367 ++#: config/sparc/sparc.c:369 + msgid "-mlong-double-64 not allowed with -m64" + msgstr "-mlong-double-64 ist mit -m64 nicht erlaubt" + +-#: config/sparc/sparc.c:392 ++#: config/sparc/sparc.c:394 + msgid "-mcmodel= is not supported on 32 bit systems" + msgstr "-mcmodel= wird auf 32-Bit-Systemen nicht unterstützt" + +-#: config/sparc/sparc.c:6818 config/sparc/sparc.c:6824 ++#: config/sparc/sparc.c:6960 config/sparc/sparc.c:6966 + #, c-format + msgid "invalid %%Y operand" + msgstr "ungültiger %%Y-Operand" + +-#: config/sparc/sparc.c:6894 ++#: config/sparc/sparc.c:7036 + #, c-format + msgid "invalid %%A operand" + msgstr "ungültiger %%A-Operand" + +-#: config/sparc/sparc.c:6904 ++#: config/sparc/sparc.c:7046 + #, c-format + msgid "invalid %%B operand" + msgstr "ungültiger %%B-Operand" + +-#: config/sparc/sparc.c:6943 ++#: config/sparc/sparc.c:7085 + #, c-format + msgid "invalid %%c operand" + msgstr "ungültiger %%c-Operand" + +-#: config/sparc/sparc.c:6944 ++#: config/sparc/sparc.c:7086 + #, c-format + msgid "invalid %%C operand" + msgstr "ungültiger %%C-Operand" + +-#: config/sparc/sparc.c:6965 ++#: config/sparc/sparc.c:7107 + #, c-format + msgid "invalid %%d operand" + msgstr "ungültiger %%d-Operand" + +-#: config/sparc/sparc.c:6966 ++#: config/sparc/sparc.c:7108 + #, c-format + msgid "invalid %%D operand" + msgstr "ungültiger %%D-Operand" + +-#: config/sparc/sparc.c:6982 ++#: config/sparc/sparc.c:7124 + #, c-format + msgid "invalid %%f operand" + msgstr "ungültiger %%f-Operand" + +-#: config/sparc/sparc.c:6996 ++#: config/sparc/sparc.c:7138 + #, c-format + msgid "invalid %%s operand" + msgstr "ungültiger %%s-Operand" + +-#: config/sparc/sparc.c:7050 ++#: config/sparc/sparc.c:7192 + msgid "long long constant not a valid immediate operand" + msgstr "»long long«-Konstante ist kein gültiger direkter Operand" + +-#: config/sparc/sparc.c:7053 ++#: config/sparc/sparc.c:7195 + msgid "floating point constant not a valid immediate operand" + msgstr "Fließkommakonstante ist kein gültiger direkter Operand" + +@@ -12855,259 +12878,259 @@ + msgid "`-gnat' misspelled as `-gant'" + msgstr "»-gnat« falsch buchstabiert als »-gant«" + +-#: cp/call.c:217 ++#: cp/call.c:219 + msgid "unable to call pointer to member function here" + msgstr "Zeiger auf Elementfunktion kann hier nicht aufgerufen werden" + +-#: cp/call.c:2228 ++#: cp/call.c:2238 + msgid "%s %D(%T, %T, %T) " + msgstr "%s %D(%T, %T, %T) " + +-#: cp/call.c:2233 ++#: cp/call.c:2243 + msgid "%s %D(%T, %T) " + msgstr "%s %D(%T, %T) " + +-#: cp/call.c:2237 ++#: cp/call.c:2247 + msgid "%s %D(%T) " + msgstr "%s %D(%T) " + +-#: cp/call.c:2241 ++#: cp/call.c:2251 + msgid "%s %T " + msgstr "%s %T " + +-#: cp/call.c:2243 ++#: cp/call.c:2253 + msgid "%J%s %+#D " + msgstr "%J%s %+#D " + +-#: cp/call.c:2245 ++#: cp/call.c:2255 + msgid "%J%s %+#D" + msgstr "%J%s %+#D" + +-#: cp/call.c:2280 ++#: cp/call.c:2290 + msgid "candidates are:" + msgstr "Kandidaten sind:" + +-#: cp/call.c:2468 ++#: cp/call.c:2478 + msgid "conversion from `%T' to `%T' is ambiguous" + msgstr "Umformung von »%T« in »%T« ist nicht eindeutig" + +-#: cp/call.c:2619 cp/call.c:2663 ++#: cp/call.c:2629 cp/call.c:2673 + msgid "no matching function for call to `%D(%A)'" + msgstr "keine passende Funktion für Aufruf von »%D(%A)«" + +-#: cp/call.c:2622 cp/call.c:2666 ++#: cp/call.c:2632 cp/call.c:2676 + msgid "call of overloaded `%D(%A)' is ambiguous" + msgstr "Aufruf des überladenen »%D(%A)« ist nicht eindeutig" + + #. It's no good looking for an overloaded operator() on a + #. pointer-to-member-function. +-#: cp/call.c:2732 ++#: cp/call.c:2742 + #, c-format + msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*" + msgstr "Zeiger auf Elementfunktion %E kann nicht ohne Objekt aufgerufen werden; Beispiele: .* oder ->*" + +-#: cp/call.c:2798 ++#: cp/call.c:2808 + msgid "no match for call to `(%T) (%A)'" + msgstr "keine Ãœbereinstimmung für Aufruf von »(%T) (%A)«" + +-#: cp/call.c:2806 ++#: cp/call.c:2816 + msgid "call of `(%T) (%A)' is ambiguous" + msgstr "Aufruf von »(%T) (%A)« ist nicht eindeutig" + +-#: cp/call.c:2839 ++#: cp/call.c:2849 + #, c-format + msgid "%s for ternary 'operator?:' in '%E ? %E : %E'" + msgstr "%s für ternären »operator?:« in »%E ? %E : %E«" + +-#: cp/call.c:2845 ++#: cp/call.c:2855 + #, c-format + msgid "%s for 'operator%s' in '%E%s'" + msgstr "%s für »operator%s« in »%E%s«" + +-#: cp/call.c:2849 ++#: cp/call.c:2859 + #, c-format + msgid "%s for 'operator[]' in '%E[%E]'" + msgstr "%s für »operator[]« in »%E[%E]«" + +-#: cp/call.c:2854 ++#: cp/call.c:2864 + #, c-format + msgid "%s for '%s' in '%s %E'" + msgstr "%s für »%s« in »%s %E«" + +-#: cp/call.c:2859 ++#: cp/call.c:2869 + #, c-format + msgid "%s for 'operator%s' in '%E %s %E'" + msgstr "%s für »operator%s« in »%E %s %E«" + +-#: cp/call.c:2862 ++#: cp/call.c:2872 + #, c-format + msgid "%s for 'operator%s' in '%s%E'" + msgstr "%s für »operator%s« in »%s%E«" + +-#: cp/call.c:2951 ++#: cp/call.c:2961 + msgid "ISO C++ forbids omitting the middle term of a ?: expression" + msgstr "ISO-C++ verbietet das Auslassen des mittleren Terms eines »?:«-Ausdruckes" + +-#: cp/call.c:3028 ++#: cp/call.c:3038 + #, c-format + msgid "`%E' has type `void' and is not a throw-expression" + msgstr "»%E« hat den Typ »void« und ist kein throw-Ausdruck" + +-#: cp/call.c:3061 cp/call.c:3265 ++#: cp/call.c:3071 cp/call.c:3275 + msgid "operands to ?: have different types" + msgstr "Operanden für ?: haben verschiedene Typen" + +-#: cp/call.c:3219 ++#: cp/call.c:3229 + msgid "enumeral mismatch in conditional expression: `%T' vs `%T'" + msgstr "Aufzählungsfehler in bedingtem Ausdruck: »%T« vs. »%T«" + +-#: cp/call.c:3226 ++#: cp/call.c:3236 + msgid "enumeral and non-enumeral type in conditional expression" + msgstr "Aufzählungs- und Nicht-Aufzählungstyp in bedingtem Ausdruck" + +-#: cp/call.c:3511 ++#: cp/call.c:3521 + msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead" + msgstr "kein »%D(int)« für Suffix »%s« deklariert, stattdessen wird Präfixoperator versucht" + +-#: cp/call.c:3560 ++#: cp/call.c:3570 + msgid "using synthesized `%#D' for copy assignment" + msgstr "künstlich erstelltes »%#D« für Kopierzuweisung" + +-#: cp/call.c:3562 ++#: cp/call.c:3572 + msgid " where cfront would use `%#D'" + msgstr " wobei cfront »%#D« verwenden würde" + +-#: cp/call.c:3585 ++#: cp/call.c:3595 + msgid "comparison between `%#T' and `%#T'" + msgstr "Vergleich zwischen »%#T« und »%#T«" + +-#: cp/call.c:3831 ++#: cp/call.c:3841 + msgid "no suitable `operator %s' for `%T'" + msgstr "kein geeignetes »operator %s« für »%T«" + +-#: cp/call.c:3848 ++#: cp/call.c:3858 + msgid "`%+#D' is private" + msgstr "»%+#D« ist privat" + +-#: cp/call.c:3850 ++#: cp/call.c:3860 + msgid "`%+#D' is protected" + msgstr "»%+#D« ist geschützt" + +-#: cp/call.c:3852 ++#: cp/call.c:3862 + msgid "`%+#D' is inaccessible" + msgstr "»%+#D« ist unzugänglich" + +-#: cp/call.c:3853 ++#: cp/call.c:3863 + msgid "within this context" + msgstr "in diesem Zusammenhang" + +-#: cp/call.c:3923 ++#: cp/call.c:3947 + msgid "invalid conversion from `%T' to `%T'" + msgstr "Ungültige Umformung von »%T« in »%T«" + +-#: cp/call.c:3925 ++#: cp/call.c:3949 + msgid " initializing argument %P of `%D'" + msgstr " Argument %P von »%D« wird initialisiert" + +-#: cp/call.c:4079 ++#: cp/call.c:4094 + msgid "cannot bind bitfield `%E' to `%T'" + msgstr "das Bitfeld »%E« kann nicht mit »%T« verbunden werden" + +-#: cp/call.c:4082 ++#: cp/call.c:4097 + msgid "cannot bind packed field `%E' to `%T'" + msgstr "das gepackte Feld »%E« kann nicht mit »%T« verbunden werden" + +-#: cp/call.c:4085 ++#: cp/call.c:4100 + msgid "cannot bind rvalue `%E' to `%T'" + msgstr "der R-Wert »%E« kann nicht mit »%T« verbunden werden" + +-#: cp/call.c:4170 ++#: cp/call.c:4185 + msgid "cannot pass objects of non-POD type `%#T' through `...'; call will abort at runtime" + msgstr "Objekte des Nicht-POD-Typs »%#T« können nicht über »...« übergeben werden; Aufruf wird zur Laufzeit abbrechen" + + #. Undefined behavior [expr.call] 5.2.2/7. +-#: cp/call.c:4196 ++#: cp/call.c:4211 + msgid "cannot receive objects of non-POD type `%#T' through `...'; call will abort at runtime" + msgstr "Objekte des Nicht-POD-Typs »%#T« können nicht über »...« empfangen werden; Aufruf wird zur Laufzeit abbrechen" + +-#: cp/call.c:4240 ++#: cp/call.c:4255 + msgid "the default argument for parameter %d of `%D' has not yet been parsed" + msgstr "das Standardargument für den Parameter %d von »%D« wurde noch nicht gelesen" + +-#: cp/call.c:4437 ++#: cp/call.c:4452 + msgid "passing `%T' as `this' argument of `%#D' discards qualifiers" + msgstr "Die Ãœbergabe von »%T« als »this«-Argument von »%#D« streicht Qualifizierer" + +-#: cp/call.c:4456 ++#: cp/call.c:4471 + msgid "`%T' is not an accessible base of `%T'" + msgstr "»%T« ist keine erreichbare Basis von »%T«" + +-#: cp/call.c:4725 ++#: cp/call.c:4740 + msgid "could not find class$ field in java interface type `%T'" + msgstr "class$-Feld konnte nicht im Java-Schnittstellentyp »%T« gefunden werden" + +-#: cp/call.c:4980 ++#: cp/call.c:4995 + msgid "call to non-function `%D'" + msgstr "Aufruf der Nicht-Funktion »%D«" + +-#: cp/call.c:5006 ++#: cp/call.c:5021 + msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'" + msgstr "Anforderung des Elements »%D« in »%E«, das vom Nicht-Aggregattyp »%T« ist" + +-#: cp/call.c:5084 ++#: cp/call.c:5099 + msgid "no matching function for call to `%T::%s(%A)%#V'" + msgstr "keine passende Funktion für Aufruf von »%T::%s(%A)%#V«" + +-#: cp/call.c:5101 ++#: cp/call.c:5116 + #, c-format + msgid "call of overloaded `%s(%A)' is ambiguous" + msgstr "Aufruf des überladenen »%s(%A)« ist mehrdeutig" + +-#: cp/call.c:5122 ++#: cp/call.c:5137 + msgid "cannot call member function `%D' without object" + msgstr "Elementfunktion »%D« kann nicht ohne Objekt aufgerufen werden" + +-#: cp/call.c:5707 ++#: cp/call.c:5722 + msgid "passing `%T' chooses `%T' over `%T'" + msgstr "Ãœbergabe von »%T« wählt »%T« (statt »%T«)" + +-#: cp/call.c:5709 cp/name-lookup.c:4155 ++#: cp/call.c:5724 cp/name-lookup.c:4137 + msgid " in call to `%D'" + msgstr " in Aufruf von »%D«" + +-#: cp/call.c:5766 ++#: cp/call.c:5781 + msgid "choosing `%D' over `%D'" + msgstr "Wahl von »%D« (statt »%D«)" + +-#: cp/call.c:5767 ++#: cp/call.c:5782 + msgid " for conversion from `%T' to `%T'" + msgstr " für Umwandlung von »%T« in »%T«" + +-#: cp/call.c:5769 ++#: cp/call.c:5784 + msgid " because conversion sequence for the argument is better" + msgstr " denn die Umwandlungsfolge für das Argument ist besser" + +-#: cp/call.c:5889 ++#: cp/call.c:5904 + msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:" + msgstr "ISO C++ besagt, dass diese mehrdeutig sind, auch wenn die schlechteste Umwandlung für das erste besser ist als die schlechteste Umwandlung für das zweite:" + +-#: cp/call.c:5893 ++#: cp/call.c:5908 + msgid "candidate 1:" + msgstr "Kandidat 1:" + +-#: cp/call.c:5894 ++#: cp/call.c:5909 + msgid "candidate 2:" + msgstr "Kandidat 2:" + +-#: cp/call.c:6003 ++#: cp/call.c:6018 + msgid "could not convert `%E' to `%T'" + msgstr "»%E« konnte nicht nach »%T« konvertiert werden" + +-#: cp/call.c:6108 ++#: cp/call.c:6123 + msgid "invalid initialization of non-const reference of type '%T' from a temporary of type '%T'" + msgstr "ungültige Initialisierung einer nicht-konstanten Referenz des Typs »%T« von temporärem Wert des Typs »%T«" + +-#: cp/call.c:6112 ++#: cp/call.c:6127 + msgid "invalid initialization of reference of type '%T' from expression of type '%T'" + msgstr "ungültige Initialisierung einer nicht-konstanten Referenz des Typs »%T« von Ausdruck des Typs »%T" + +@@ -13180,220 +13203,220 @@ + msgid "`%#T' only defines private constructors and has no friends" + msgstr "»%#T« definiert nur private Konstruktoren und hat keine »friends«" + +-#: cp/class.c:1995 ++#: cp/class.c:2038 + msgid "no unique final overrider for `%D' in `%T'" + msgstr "»%D« wurde nicht eindeutig und endgültig in »%T« überschrieben" + + #. Here we know it is a hider, and no overrider exists. +-#: cp/class.c:2441 ++#: cp/class.c:2484 + msgid "`%D' was hidden" + msgstr "»%D« war versteckt" + +-#: cp/class.c:2442 ++#: cp/class.c:2485 + msgid " by `%D'" + msgstr " von »%D«" + +-#: cp/class.c:2484 cp/decl2.c:1161 ++#: cp/class.c:2527 cp/decl2.c:1161 + msgid "`%#D' invalid; an anonymous union can only have non-static data members" + msgstr "»%#D« ungültig; eine anonyme Union kann nur nicht-statische Datentypen haben" + +-#: cp/class.c:2490 cp/decl2.c:1168 ++#: cp/class.c:2533 cp/decl2.c:1168 + msgid "private member `%#D' in anonymous union" + msgstr "privates Element »%#D« in anonymer Union" + +-#: cp/class.c:2493 cp/decl2.c:1170 ++#: cp/class.c:2536 cp/decl2.c:1170 + msgid "protected member `%#D' in anonymous union" + msgstr "geschütztes Element »%#D« in anonymer Union" + +-#: cp/class.c:2612 ++#: cp/class.c:2655 + msgid "vtable layout for class `%T' may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor" + msgstr "vtable-Anordnung für Klasse »%T« könnte ABI-unverträglich sein und sich in zukünftigen GCC-Versionen durch implizite virtuelle Destruktoren ändern" + +-#: cp/class.c:2672 ++#: cp/class.c:2715 + msgid "bit-field `%#D' with non-integral type" + msgstr "Bit-Feld »%#D« ohne eingebauten Typ" + +-#: cp/class.c:2692 ++#: cp/class.c:2735 + msgid "bit-field `%D' width not an integer constant" + msgstr "Breite des Bitfeldes »%D« ist keine Ganzzahlkonstante" + +-#: cp/class.c:2698 ++#: cp/class.c:2741 + msgid "negative width in bit-field `%D'" + msgstr "negative Breite in Bitfeld »%D«" + +-#: cp/class.c:2703 ++#: cp/class.c:2746 + msgid "zero width for bit-field `%D'" + msgstr "Breite null für Bitfeld »%D«" + +-#: cp/class.c:2709 ++#: cp/class.c:2752 + msgid "width of `%D' exceeds its type" + msgstr "Breite von »%D« übersteigt seinen Typen" + +-#: cp/class.c:2718 ++#: cp/class.c:2761 + msgid "`%D' is too small to hold all values of `%#T'" + msgstr "»%D« ist zu klein um alle Werte von »%#T« aufzunehmen" + +-#: cp/class.c:2780 ++#: cp/class.c:2823 + msgid "member `%#D' with constructor not allowed in union" + msgstr "Element »%#D« mit Konstruktor nicht erlaubt in Union" + +-#: cp/class.c:2783 ++#: cp/class.c:2826 + msgid "member `%#D' with destructor not allowed in union" + msgstr "Element »%#D« mit Destruktor nicht erlaubt in Union" + +-#: cp/class.c:2786 ++#: cp/class.c:2829 + msgid "member `%#D' with copy assignment operator not allowed in union" + msgstr "Element »%#D« mit Zuweisungsoperator ist nicht erlaubt in Union" + +-#: cp/class.c:2813 ++#: cp/class.c:2856 + msgid "multiple fields in union `%T' initialized" + msgstr "in Union »%T« werden mehrere Felder initialisiert" + +-#: cp/class.c:2879 ++#: cp/class.c:2922 + msgid "ignoring packed attribute on unpacked non-POD field `%#D'" + msgstr "»gepackt«-Attribut für ungepacktes nicht-POD-Feld »%#D« wird ignoriert" + +-#: cp/class.c:2939 ++#: cp/class.c:2982 + msgid "`%D' may not be static because it is a member of a union" + msgstr "»%D« kann nicht static sein, da es ein Union-Element ist" + +-#: cp/class.c:2944 ++#: cp/class.c:2987 + msgid "`%D' may not have reference type `%T' because it is a member of a union" + msgstr "»%D« darf keinen Referenztyp »%T« haben, da es ein Element einer Union ist" + +-#: cp/class.c:2952 ++#: cp/class.c:2995 + msgid "field `%D' in local class cannot be static" + msgstr "Feld »%D« in lokaler Klasse kann nicht statisch sein" + +-#: cp/class.c:2958 ++#: cp/class.c:3001 + msgid "field `%D' invalidly declared function type" + msgstr "Feld »%D« deklarierte ungültigerweise einen Funktionstypen" + +-#: cp/class.c:2965 ++#: cp/class.c:3008 + msgid "field `%D' invalidly declared method type" + msgstr "Feld »%D« deklarierte ungültigerweise einen Methodentypen" + +-#: cp/class.c:2998 ++#: cp/class.c:3041 + msgid "non-static reference `%#D' in class without a constructor" + msgstr "nicht-statische Referenz »%#D« in Klasse ohne Konstruktor" + +-#: cp/class.c:3041 ++#: cp/class.c:3084 + msgid "non-static const member `%#D' in class without a constructor" + msgstr "nicht-statisches const-Element »%#D« in Klasse ohne einen Konstruktor" + +-#: cp/class.c:3056 ++#: cp/class.c:3099 + msgid "field `%#D' with same name as class" + msgstr "Feld »%#D« mit gleichem Namen wie die Klasse" + +-#: cp/class.c:3074 ++#: cp/class.c:3117 + msgid "`%#T' has pointer data members" + msgstr "»%#T« hat Zeigertypen als Elemente" + +-#: cp/class.c:3078 ++#: cp/class.c:3121 + msgid " but does not override `%T(const %T&)'" + msgstr " aber überschreibt nicht »%T(const %T&)«" + +-#: cp/class.c:3080 ++#: cp/class.c:3123 + msgid " or `operator=(const %T&)'" + msgstr " oder »operator=(const %T&)«" + +-#: cp/class.c:3083 ++#: cp/class.c:3126 + msgid " but does not override `operator=(const %T&)'" + msgstr " aber überschreibt nicht »operator=(const %T&)«" + +-#: cp/class.c:3517 ++#: cp/class.c:3560 + msgid "offset of empty base `%T' may not be ABI-compliant and maychange in a future version of GCC" + msgstr "Versatz der leeren Basis »%T« könnte ABI-unverträglich sein und sich in zukünftigen GCC-Versionen ändern" + +-#: cp/class.c:3627 ++#: cp/class.c:3670 + msgid "class `%T' will be considered nearly empty in a future version of GCC" + msgstr "Klasse »%T« wird in zukünftigen GCC-Versionen als fast leer betrachtet werden" + +-#: cp/class.c:3714 ++#: cp/class.c:3757 + msgid "initializer specified for non-virtual method `%D'" + msgstr "Initialisierung für nicht-virtuelle Methode »%D« angegeben" + +-#: cp/class.c:4402 ++#: cp/class.c:4445 + msgid "offset of virtual base `%T' is not ABI-compliant and may change in a future version of GCC" + msgstr "Versatz der virtuellen Basis »%T« ist ABI-unverträglich und kann sich in zukünftigen GCC-Versionen ändern" + +-#: cp/class.c:4492 ++#: cp/class.c:4535 + msgid "direct base `%T' inaccessible in `%T' due to ambiguity" + msgstr "direkte Basis »%T« ist in »%T« durch Mehrdeutigkeit unzugänglich" + +-#: cp/class.c:4505 ++#: cp/class.c:4548 + msgid "virtual base `%T' inaccessible in `%T' due to ambiguity" + msgstr "virtuelle Basis »%T« ist in »%T« durch Mehrdeutigkeit unzugänglich" + +-#: cp/class.c:4679 ++#: cp/class.c:4722 + msgid "size assigned to `%T' may not be ABI-compliant and may change in a future version of GCC" + msgstr "»%T« zugewiesene Größe könnte ABI-unverträglich sein und sich in zukünftigen GCC-Versionen ändern" + + #. Versions of G++ before G++ 3.4 did not reset the + #. DECL_MODE. +-#: cp/class.c:4718 ++#: cp/class.c:4761 + msgid "the offset of `%D' may not be ABI-compliant and may change in a future version of GCC" + msgstr "der Versatz von »%D« könnte ABI-unverträglich sein und sich in einer zukünftigen GCC-Version ändern" + +-#: cp/class.c:4741 ++#: cp/class.c:4784 + msgid "offset of `%D' is not ABI-compliant and may change in a future version of GCC" + msgstr "Versatz von »%D« ist ABI-unverträglich und kann sich in zukünftigen GCC-Versionen ändern" + +-#: cp/class.c:4750 ++#: cp/class.c:4793 + msgid "`%D' contains empty classes which may cause base classes to be placed at different locations in a future version of GCC" + msgstr "»%D« enthält leere Klassen, die in zukünftigen GCC-Versionen die Basisklassen an andere Orte verschieben können" + +-#: cp/class.c:4809 ++#: cp/class.c:4852 + msgid "layout of classes derived from empty class `%T' may change in a future version of GCC" + msgstr "die Anordnung der von der leeren Klasse »%T« abgeleiteten Klassen könnte sich in zukünftigen GCC-Versionen ändern" + +-#: cp/class.c:4939 cp/semantics.c:2044 ++#: cp/class.c:4982 cp/semantics.c:2041 + msgid "redefinition of `%#T'" + msgstr "Redefinition von »%#T«" + +-#: cp/class.c:5109 ++#: cp/class.c:5152 + msgid "`%#T' has virtual functions but non-virtual destructor" + msgstr "»%#T« hat virtuelle Funktionen aber nicht-virtuellen Destruktor" + +-#: cp/class.c:5188 ++#: cp/class.c:5231 + msgid "trying to finish struct, but kicked out due to previous parse errors" + msgstr "struct konnte wegen Syntaxfehlern nicht beendet werden" + +-#: cp/class.c:5630 ++#: cp/class.c:5673 + #, c-format + msgid "language string `\"%s\"' not recognized" + msgstr "Sprachen-Zeichenkette »\"%s\"« nicht erkannt" + +-#: cp/class.c:5718 ++#: cp/class.c:5761 + msgid "cannot resolve overloaded function `%D' based on conversion to type `%T'" + msgstr "überladene Funktion »%D« konnte nicht durch Umwandlung in Typ »%T« aufgelöst werden" + +-#: cp/class.c:5843 ++#: cp/class.c:5886 + msgid "no matches converting function `%D' to type `%#T'" + msgstr "bei der Umwandlung der Funktion »%D« in den Typ »%#T« gab es keine Ãœbereinstimmungen" + +-#: cp/class.c:5866 ++#: cp/class.c:5909 + msgid "converting overloaded function `%D' to type `%#T' is ambiguous" + msgstr "Umwandung der überladenen Funktion »%D« in den Typ »%#T« ist mehrdeutig" + +-#: cp/class.c:5892 ++#: cp/class.c:5935 + msgid "assuming pointer to member `%D'" + msgstr "Zeiger auf Element »%D« wird angenommen" + +-#: cp/class.c:5895 ++#: cp/class.c:5938 + #, c-format + msgid "(a pointer to member can only be formed with `&%E')" + msgstr "(ein Zeiger auf ein Element kann nur mit »&%E« erzeugt werden)" + +-#: cp/class.c:5940 cp/class.c:6122 cp/class.c:6129 ++#: cp/class.c:5983 cp/class.c:6165 cp/class.c:6172 + msgid "not enough type information" + msgstr "zu wenig Typinformationen" + +-#: cp/class.c:5957 ++#: cp/class.c:6000 + msgid "argument of type `%T' does not match `%T'" + msgstr "Argument des Typs »%T« passt nicht zu »%T«" + +-#: cp/class.c:6106 ++#: cp/class.c:6149 + msgid "invalid operation on uninstantiated type" + msgstr "ungültige Operation auf nicht instanziierten Typen" + +@@ -13402,11 +13425,11 @@ + #. A name N used in a class S shall refer to the same declaration + #. in its context and when re-evaluated in the completed scope of + #. S. +-#: cp/class.c:6364 cp/decl.c:1222 cp/name-lookup.c:514 cp/pt.c:2097 ++#: cp/class.c:6407 cp/decl.c:1223 cp/name-lookup.c:514 cp/pt.c:2125 + msgid "declaration of `%#D'" + msgstr "Deklaration von »%#D«" + +-#: cp/class.c:6365 ++#: cp/class.c:6408 + msgid "changes meaning of `%D' from `%+#D'" + msgstr "verändert die Bedeutung von »%D« von »%+#D«" + +@@ -13508,141 +13531,156 @@ + msgid " candidate conversions include `%D' and `%D'" + msgstr " in Frage kommende Umwandlungen beziehen »%D« und »%D« ein" + +-#: cp/decl.c:371 ++#: cp/decl.c:372 + msgid "label `%D' used but not defined" + msgstr "Marke »%D« verwendet, aber nicht definiert" + +-#: cp/decl.c:378 ++#: cp/decl.c:379 + msgid "label `%D' defined but not used" + msgstr "Marke »%D« definiert, aber nicht verwendet" + +-#: cp/decl.c:1130 cp/decl.c:1556 ++#: cp/decl.c:1131 cp/decl.c:1570 + msgid "previous declaration of `%D'" + msgstr "vorherige Deklaration von »%D«" + +-#: cp/decl.c:1178 ++#: cp/decl.c:1179 + msgid "%Jfunction '%D' redeclared as inline" + msgstr "%JFunktion »%D« als inline redeklariert" + +-#: cp/decl.c:1179 ++#: cp/decl.c:1180 + msgid "%Jprevious declaration of '%D' with attribute noinline" + msgstr "%Jvorherige Deklaration von »%D« mit Attribut noinline" + +-#: cp/decl.c:1186 ++#: cp/decl.c:1187 + msgid "%Jfunction '%D' redeclared with attribute noinline" + msgstr "%JFunktion »%D« mit Attribut noinline redeklariert" + +-#: cp/decl.c:1188 ++#: cp/decl.c:1189 + msgid "%Jprevious declaration of '%D' was inline" + msgstr "%Jvorherige Deklaration von »%D« war inline" + +-#: cp/decl.c:1209 cp/decl.c:1247 ++#: cp/decl.c:1210 cp/decl.c:1248 + msgid "shadowing %s function `%#D'" + msgstr "überschatten der %s Funktion »%#D«" + +-#: cp/decl.c:1218 ++#: cp/decl.c:1219 + msgid "library function `%#D' redeclared as non-function `%#D'" + msgstr "Bibliotheksfunktion »%#D« als Nicht-Funktion »%#D« redeklariert" + +-#: cp/decl.c:1223 ++#: cp/decl.c:1224 + msgid "conflicts with built-in declaration `%#D'" + msgstr "steht mit eingebauter Deklaration »%#D« in Konflikt" + +-#: cp/decl.c:1242 cp/decl.c:1354 cp/decl.c:1370 ++#: cp/decl.c:1243 cp/decl.c:1355 cp/decl.c:1371 + msgid "new declaration `%#D'" + msgstr "neue Deklaration »%#D«" + +-#: cp/decl.c:1243 ++#: cp/decl.c:1244 + msgid "ambiguates built-in declaration `%#D'" + msgstr "macht eingebaute Deklaration »%#D« mehrdeutig" + +-#: cp/decl.c:1314 ++#: cp/decl.c:1315 + msgid "`%#D' redeclared as different kind of symbol" + msgstr "»%#D« als andere Symbolart redeklariert" + +-#: cp/decl.c:1317 ++#: cp/decl.c:1318 + msgid "previous declaration of `%#D'" + msgstr "vorherige Deklaration von »%#D«" + +-#: cp/decl.c:1339 ++#: cp/decl.c:1340 + msgid "declaration of template `%#D'" + msgstr "Deklaration des Templates »%#D«" + +-#: cp/decl.c:1340 cp/name-lookup.c:515 ++#: cp/decl.c:1341 cp/name-lookup.c:515 + msgid "conflicts with previous declaration `%#D'" + msgstr "steht mit der vorherigen Deklaration »%#D« in Konflikt" + +-#: cp/decl.c:1355 cp/decl.c:1371 ++#: cp/decl.c:1356 cp/decl.c:1372 + msgid "ambiguates old declaration `%#D'" + msgstr "macht alte Deklaration »%#D« mehrdeutig" + +-#: cp/decl.c:1363 ++#: cp/decl.c:1364 + msgid "declaration of C function `%#D' conflicts with" + msgstr "Deklaration der C-Funktion »%#D« steht in Konflikt mit" + +-#: cp/decl.c:1365 ++#: cp/decl.c:1366 + msgid "previous declaration `%#D' here" + msgstr "vorherige Deklaration »%#D« hier" + +-#: cp/decl.c:1381 ++#: cp/decl.c:1382 + msgid "conflicting declaration '%#D'" + msgstr "in Konflikt stehende Deklaration »%#D«" + +-#: cp/decl.c:1382 ++#: cp/decl.c:1383 + msgid "'%D' has a previous declaration as `%#D'" + msgstr "»%D« hat eine vorherige Deklaration als »%#D«" + +-#: cp/decl.c:1435 ++#. [namespace.alias] ++#. ++#. A namespace-name or namespace-alias shall not be declared as ++#. the name of any other entity in the same declarative region. ++#. A namespace-name defined at global scope shall not be ++#. declared as the name of any other entity in any glogal scope ++#. of the program. ++#: cp/decl.c:1436 ++msgid "declaration of `namespace %D' conflicts with" ++msgstr "Deklaration von »namespace %D« steht in Konflikt mit" ++ ++#: cp/decl.c:1437 ++msgid "previous declaration of `namespace %D' here" ++msgstr "vorherige Deklaration von »namespace %D« hier" ++ ++#: cp/decl.c:1449 + msgid "`%#D' previously defined here" + msgstr "»%#D« wurde vorher hier definiert" + +-#: cp/decl.c:1436 ++#: cp/decl.c:1450 + msgid "`%#D' previously declared here" + msgstr "»%#D« wurde vorher hier deklariert" + + #. Prototype decl follows defn w/o prototype. +-#: cp/decl.c:1445 ++#: cp/decl.c:1459 + msgid "prototype for `%#D'" + msgstr "Prototyp für »%#D«" + +-#: cp/decl.c:1446 ++#: cp/decl.c:1460 + msgid "%Jfollows non-prototype definition here" + msgstr "%Jfolgt Nicht-Prototyp-Definition hier" + +-#: cp/decl.c:1458 ++#: cp/decl.c:1472 + msgid "previous declaration of `%#D' with %L linkage" + msgstr "vorherige Deklaration von »%#D« mit %L-Bindung" + +-#: cp/decl.c:1460 ++#: cp/decl.c:1474 + msgid "conflicts with new declaration with %L linkage" + msgstr "steht mit neuer Deklaration mit %L-Bindung in Konflikt" + +-#: cp/decl.c:1483 cp/decl.c:1490 ++#: cp/decl.c:1497 cp/decl.c:1504 + msgid "default argument given for parameter %d of `%#D'" + msgstr "Standardargument für Parameter %d von »%#D« angegeben" + +-#: cp/decl.c:1485 cp/decl.c:1492 ++#: cp/decl.c:1499 cp/decl.c:1506 + msgid "after previous specification in `%#D'" + msgstr "nach vorheriger Spezifikation in »%#D«" + +-#: cp/decl.c:1501 ++#: cp/decl.c:1515 + msgid "`%#D' was used before it was declared inline" + msgstr "»%#D« wurde verwendet, bevor es »inline« deklariert wurde" + +-#: cp/decl.c:1502 ++#: cp/decl.c:1516 + msgid "%Jprevious non-inline declaration here" + msgstr "%Jvorherige Nicht-inline-Deklaration hier" + +-#: cp/decl.c:1555 ++#: cp/decl.c:1569 + msgid "redundant redeclaration of `%D' in same scope" + msgstr "redundante Redeklaration von »%D« im selben Gültigkeitsbereich" + +-#: cp/decl.c:1649 ++#: cp/decl.c:1663 + #, c-format + msgid "declaration of `%F' throws different exceptions" + msgstr "Deklaration von »%F« wirft andere Ausnahmen" + +-#: cp/decl.c:1651 ++#: cp/decl.c:1665 + #, c-format + msgid "than previous declaration `%F'" + msgstr "als vorherige Deklaration »%F«" +@@ -13655,492 +13693,510 @@ + #. that specialization that would cause an implicit + #. instantiation to take place, in every translation unit in + #. which such a use occurs. +-#: cp/decl.c:1798 ++#: cp/decl.c:1812 + msgid "explicit specialization of %D after first use" + msgstr "explizite Spezialisierung von %D nach erster Benutzung" + +-#: cp/decl.c:1878 ++#: cp/decl.c:1892 + msgid "%J'%D': visibility attribute ignored because it" + msgstr "%J»%D«: Sichtbarkeitsattribut ignoriert, da es" + +-#: cp/decl.c:1880 ++#: cp/decl.c:1894 + msgid "%Jconflicts with previous declaration here" + msgstr "%Jin Konflikt mit vorheriger Deklaration (hier) steht" + +-#: cp/decl.c:1974 ++#: cp/decl.c:1988 + msgid "implicit declaration of function `%#D'" + msgstr "implizite Deklaration der Funktion »%#D«" + +-#: cp/decl.c:2137 ++#: cp/decl.c:2151 + #, c-format + msgid "label `%s' referenced outside of any function" + msgstr "Marke »%s« außerhalb jeder Funktion referenziert" + +-#: cp/decl.c:2234 cp/decl.c:2258 cp/decl.c:2346 ++#: cp/decl.c:2248 cp/decl.c:2272 cp/decl.c:2360 + msgid "jump to label `%D'" + msgstr "Sprung zur Marke »%D«" + +-#: cp/decl.c:2236 cp/decl.c:2260 ++#: cp/decl.c:2250 cp/decl.c:2274 + msgid "jump to case label" + msgstr "Sprung zur case-Marke" + +-#: cp/decl.c:2239 cp/decl.c:2263 ++#: cp/decl.c:2253 cp/decl.c:2277 + msgid "%H from here" + msgstr "%H von hier" + +-#: cp/decl.c:2244 ++#: cp/decl.c:2258 + msgid " crosses initialization of `%#D'" + msgstr " überkreuzt Initialisierung von »%#D«" + +-#: cp/decl.c:2247 cp/decl.c:2362 ++#: cp/decl.c:2261 cp/decl.c:2376 + msgid " enters scope of non-POD `%#D'" + msgstr " tritt in Gültigkeitsbereich des nicht-POD »%#D« ein" + +-#: cp/decl.c:2267 cp/decl.c:2366 ++#: cp/decl.c:2281 cp/decl.c:2380 + msgid " enters try block" + msgstr " tritt in try-Block ein" + +-#: cp/decl.c:2269 cp/decl.c:2368 ++#: cp/decl.c:2283 cp/decl.c:2382 + msgid " enters catch block" + msgstr " tritt in catch-Block ein" + +-#: cp/decl.c:2347 ++#: cp/decl.c:2361 + msgid " from here" + msgstr " von hier" + + #. Can't skip init of __exception_info. +-#: cp/decl.c:2358 ++#: cp/decl.c:2372 + msgid "%J enters catch block" + msgstr "%J tritt in catch-Block ein" + +-#: cp/decl.c:2360 ++#: cp/decl.c:2374 + msgid " skips initialization of `%#D'" + msgstr " überspringt Initialisierung von »%#D«" + +-#: cp/decl.c:2394 ++#: cp/decl.c:2408 + msgid "label named wchar_t" + msgstr "Marke wurde wchar_t genannt" + +-#: cp/decl.c:2397 ++#: cp/decl.c:2411 + msgid "duplicate label `%D'" + msgstr "doppelte Marke »%D«" + +-#: cp/decl.c:2625 cp/parser.c:3182 ++#: cp/decl.c:2639 cp/parser.c:3192 + msgid "`%D' used without template parameters" + msgstr "»%D« ohne Template-Parameter verwendet" + +-#: cp/decl.c:2635 cp/decl.c:2651 cp/decl.c:2739 ++#: cp/decl.c:2649 cp/decl.c:2665 cp/decl.c:2753 + msgid "no class template named `%#T' in `%#T'" + msgstr "kein Klassentemplate namens »%#T« in »%#T«" + +-#: cp/decl.c:2672 cp/decl.c:2682 cp/decl.c:2702 ++#: cp/decl.c:2686 cp/decl.c:2696 cp/decl.c:2716 + msgid "no type named `%#T' in `%#T'" + msgstr "kein Typ namens »%#T« in »%#T«" + +-#: cp/decl.c:3429 ++#: cp/decl.c:3443 + msgid "%Jan anonymous union cannot have function members" + msgstr "%Jeine anonyme Union kann keine Funktionselemente haben" + +-#: cp/decl.c:3447 ++#: cp/decl.c:3461 + msgid "member %#D' with constructor not allowed in anonymous aggregate" + msgstr "Element »%#D« mit Konstruktor in anonymem Aggregat nicht erlaubt" + +-#: cp/decl.c:3450 ++#: cp/decl.c:3464 + msgid "member %#D' with destructor not allowed in anonymous aggregate" + msgstr "Element »%#D« mit Destruktor in anonymem Aggregat nicht erlaubt" + +-#: cp/decl.c:3453 ++#: cp/decl.c:3467 + msgid "member %#D' with copy assignment operator not allowed in anonymous aggregate" + msgstr "Element »%#D« mit Zuweisungsoperator ist in anonymem Aggregt nicht erlaubt" + +-#: cp/decl.c:3493 ++#: cp/decl.c:3507 + msgid "redeclaration of C++ built-in type `%T'" + msgstr "Redeklaration des eingebauten C++-Typs »%T«" + +-#: cp/decl.c:3531 ++#: cp/decl.c:3545 + msgid "multiple types in one declaration" + msgstr "mehrere Typen in einer Deklaration" + +-#: cp/decl.c:3557 ++#: cp/decl.c:3571 + msgid "missing type-name in typedef-declaration" + msgstr "fehlender Typname in typedef-Deklaration" + +-#: cp/decl.c:3565 ++#: cp/decl.c:3579 + msgid "ISO C++ prohibits anonymous structs" + msgstr "ISO-C++ verbietet anonyme structs" + +-#: cp/decl.c:3572 ++#: cp/decl.c:3586 + msgid "`%D' can only be specified for functions" + msgstr "»%D« kann nur für Funktionen angegeben werden" + +-#: cp/decl.c:3574 ++#: cp/decl.c:3588 + msgid "`%D' can only be specified inside a class" + msgstr "»%D« kann nur innerhalb einer Klasse angegeben werden" + +-#: cp/decl.c:3576 ++#: cp/decl.c:3590 + msgid "`%D' can only be specified for constructors" + msgstr "»%D« kann nur für Konstruktoren angegeben werden" + +-#: cp/decl.c:3579 ++#: cp/decl.c:3593 + msgid "`%D' can only be specified for objects and functions" + msgstr "»%D« kann nur für Objekte und Funktionen angegeben werden" + +-#: cp/decl.c:3721 cp/decl2.c:855 ++#: cp/decl.c:3735 cp/decl2.c:855 + msgid "typedef `%D' is initialized (use __typeof__ instead)" + msgstr "typedef »%D« ist initialisiert (stattdessen lieber __typeof__ verwenden)" + +-#: cp/decl.c:3726 ++#: cp/decl.c:3740 + msgid "function `%#D' is initialized like a variable" + msgstr "Funktion »%#D« ist wie eine Variable initialisiert" + +-#: cp/decl.c:3738 ++#: cp/decl.c:3752 + msgid "declaration of `%#D' has `extern' and is initialized" + msgstr "Deklaration von »%#D« hat »extern« und ist initialisiert" + +-#: cp/decl.c:3771 ++#: cp/decl.c:3785 + msgid "`%#D' is not a static member of `%#T'" + msgstr "»%#D« ist kein statisches Element von »%#T«" + +-#: cp/decl.c:3777 ++#: cp/decl.c:3791 + msgid "ISO C++ does not permit `%T::%D' to be defined as `%T::%D'" + msgstr "ISO-C++ erlaubt nicht, »%T::%D« als »%T::%D« zu definieren" + +-#: cp/decl.c:3788 ++#: cp/decl.c:3802 + msgid "duplicate initialization of %D" + msgstr "doppelte Initialisierung von %D" + +-#: cp/decl.c:3819 ++#: cp/decl.c:3833 + msgid "declaration of `%#D' outside of class is not definition" + msgstr "Deklaration von »%#D« außerhalb einer Klasse ist keine Definition" + +-#: cp/decl.c:3868 ++#: cp/decl.c:3882 + msgid "variable `%#D' has initializer but incomplete type" + msgstr "Variable »%#D« hat Initialisierung, aber unvollständigen Typ" + +-#: cp/decl.c:3876 cp/decl.c:4445 ++#: cp/decl.c:3890 cp/decl.c:4500 + msgid "elements of array `%#D' have incomplete type" + msgstr "Elemente des Feldes »%#D« haben unvollständigen Typ" + +-#: cp/decl.c:3892 ++#: cp/decl.c:3906 + msgid "aggregate `%#D' has incomplete type and cannot be defined" + msgstr "Aggregat »%#D« hat unvollständigen Typ und kann nicht definiert werden" + +-#: cp/decl.c:3942 ++#: cp/decl.c:3956 + msgid "`%D' declared as reference but not initialized" + msgstr "»%D« als Referenz deklariert, aber nicht initialisiert" + +-#: cp/decl.c:3948 ++#: cp/decl.c:3962 + msgid "ISO C++ forbids use of initializer list to initialize reference `%D'" + msgstr "ISO-C++ verbietet die Verwendung einer Initialisierungsliste zur Initialisierung der Referenz »%D«" + +-#: cp/decl.c:3976 ++#: cp/decl.c:3990 + msgid "cannot initialize `%T' from `%T'" + msgstr "»%T« kann nicht von »%T« initialisiert werden" + +-#: cp/decl.c:4008 ++#: cp/decl.c:4022 + msgid "initializer fails to determine size of `%D'" + msgstr "Initialisierung gibt nicht die Größe von »%D« an" + +-#: cp/decl.c:4013 ++#: cp/decl.c:4027 + msgid "array size missing in `%D'" + msgstr "Feldgröße fehlt in »%D«" + +-#: cp/decl.c:4025 ++#: cp/decl.c:4039 + msgid "zero-size array `%D'" + msgstr "Feld »%D« der Größe null" + + #. An automatic variable with an incomplete type: that is an error. + #. Don't talk about array types here, since we took care of that + #. message in grokdeclarator. +-#: cp/decl.c:4062 ++#: cp/decl.c:4076 + msgid "storage size of `%D' isn't known" + msgstr "Speichergröße von »%D« ist unbekannt" + +-#: cp/decl.c:4084 ++#: cp/decl.c:4098 + msgid "storage size of `%D' isn't constant" + msgstr "Speichergröße von »%D« ist nicht konstant" + +-#: cp/decl.c:4139 ++#: cp/decl.c:4153 + msgid "sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)" + msgstr "Entschuldigung: Semantik der statischen Daten »%#D« der inline-Funktion ist falsch (mehrere Kopien wären die Folge)" + +-#: cp/decl.c:4140 ++#: cp/decl.c:4154 + msgid "%J you can work around this by removing the initializer" + msgstr "%J dies kann durch das Löschen des Initialisierers umgangen werden" + +-#: cp/decl.c:4166 ++#: cp/decl.c:4180 + msgid "uninitialized const `%D'" + msgstr "nicht initialisiertes const »%D«" + +-#: cp/decl.c:4245 ++#: cp/decl.c:4240 ++msgid "name `%D' used in a GNU-style designated initializer for an array" ++msgstr "Name »%D« in benannter Initialisierung im GNU-Stil für ein Feld verwendet" ++ ++#: cp/decl.c:4251 ++#, c-format ++msgid "Designated initializer `%E' larger than array size" ++msgstr "" ++ ++#: cp/decl.c:4323 + msgid "brace-enclosed initializer used to initialize `%T'" + msgstr "geklammerter Initialisierer zur Initialisierung von »%T« verwendet" + +-#: cp/decl.c:4309 ++#: cp/decl.c:4387 + msgid "initializer for `%T' must be brace-enclosed" + msgstr "Initialisierung für »%T« muss geklammert sein" + +-#: cp/decl.c:4326 ++#: cp/decl.c:4404 + msgid "ISO C++ does not allow designated initializers" + msgstr "ISO-C++ erlaubt keine benannten Initialisierungen" + +-#: cp/decl.c:4330 ++#: cp/decl.c:4408 + msgid "`%T' has no non-static data member named `%D'" + msgstr "»%T« hat kein nicht-statisches Datenelement namens »%D«" + +-#: cp/decl.c:4378 +-msgid "name `%D' used in a GNU-style designated initializer for an array" +-msgstr "Name »%D« in benannter Initialisierung im GNU-Stil für ein Feld verwendet" +- +-#: cp/decl.c:4401 ++#: cp/decl.c:4456 + msgid "too many initializers for `%T'" + msgstr "zu viele Initialisierer für »%T«" + +-#: cp/decl.c:4439 ++#: cp/decl.c:4494 + msgid "variable-sized object `%D' may not be initialized" + msgstr "Objekt »%D« variabler Größe kann nicht initialisiert werden" + +-#: cp/decl.c:4450 ++#: cp/decl.c:4505 + msgid "`%D' has incomplete type" + msgstr "»%D« hat unvollständigen Typen" + +-#: cp/decl.c:4505 ++#: cp/decl.c:4560 + msgid "`%D' must be initialized by constructor, not by `{...}'" + msgstr "»%D« muss mit Konstruktor initialisiert werden, nicht mit »{...}«" + +-#: cp/decl.c:4549 ++#: cp/decl.c:4604 + msgid "structure `%D' with uninitialized const members" + msgstr "Struktur »%D« mit nicht initialisierten const-Elementen" + +-#: cp/decl.c:4551 ++#: cp/decl.c:4606 + msgid "structure `%D' with uninitialized reference members" + msgstr "Struktur »%D« mit nicht initialisierten Referenzelementen" + +-#: cp/decl.c:4732 ++#: cp/decl.c:4788 + msgid "assignment (not initialization) in declaration" + msgstr "Zuweisung (nicht Initialisierung) in Deklaration" + +-#: cp/decl.c:4749 ++#: cp/decl.c:4805 + msgid "cannot initialize `%D' to namespace `%D'" + msgstr "»%D« kann nicht zu Namespace »%D« initialisiert werden" + +-#: cp/decl.c:4803 ++#: cp/decl.c:4859 + msgid "shadowing previous type declaration of `%#D'" + msgstr "vorherige Typdeklaration von »%#D« wird überschattet" + +-#: cp/decl.c:4840 ++#: cp/decl.c:4896 + msgid "`%D' cannot be thread-local because it has non-POD type `%T'" + msgstr "»%D« kann nicht Thread-lokal sein, weil es Nicht-POD-Typen »%T« hat" + +-#: cp/decl.c:4855 ++#: cp/decl.c:4911 + msgid "`%D' is thread-local and so cannot be dynamically initialized" + msgstr "»%D« ist Thread-lokal und kann damit nicht dynamisch initialisiert werden" + +-#: cp/decl.c:5337 ++#: cp/decl.c:5406 + msgid "invalid catch parameter" + msgstr "ungültiger catch-Parameter" + +-#: cp/decl.c:5451 ++#: cp/decl.c:5520 + msgid "destructor for alien class `%T' cannot be a member" + msgstr "Destruktor für fremde Klasse »%T« kann kein Element sein" + +-#: cp/decl.c:5454 ++#: cp/decl.c:5523 + msgid "constructor for alien class `%T' cannot be a member" + msgstr "Konstruktor für fremde Klasse »%T« kann kein Element sein" + +-#: cp/decl.c:5476 ++#: cp/decl.c:5545 + msgid "`%D' declared as a `virtual' %s" + msgstr "»%D« als »virtuelles« %s deklariert" + +-#: cp/decl.c:5478 ++#: cp/decl.c:5547 + msgid "`%D' declared as an `inline' %s" + msgstr "»%D« als »inline« %s deklariert" + +-#: cp/decl.c:5480 ++#: cp/decl.c:5549 + msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration" + msgstr "Funktionsspezifizierer »const« und »volatile« an »%D« ungültig in %d-Deklaration" + +-#: cp/decl.c:5483 ++#: cp/decl.c:5552 + msgid "`%D' declared as a friend" + msgstr "»%D« als »friend« deklariert" + +-#: cp/decl.c:5489 ++#: cp/decl.c:5558 + msgid "`%D' declared with an exception specification" + msgstr "»%D« mit Ausnahmespezifikation deklariert" + +-#: cp/decl.c:5571 ++#: cp/decl.c:5640 + msgid "cannot declare `::main' to be a template" + msgstr "»::main« kann nicht als Template deklariert werden" + +-#: cp/decl.c:5573 ++#: cp/decl.c:5642 + msgid "cannot declare `::main' to be inline" + msgstr "»::main« kann nicht inline deklariert werden" + +-#: cp/decl.c:5575 ++#: cp/decl.c:5644 + msgid "cannot declare `::main' to be static" + msgstr "»::main« kann nicht statisch deklariert werden" + +-#: cp/decl.c:5578 ++#: cp/decl.c:5647 + msgid "`main' must return `int'" + msgstr "»main« muss »int« zurückgeben" + +-#: cp/decl.c:5606 ++#: cp/decl.c:5675 + msgid "non-local function `%#D' uses anonymous type" + msgstr "nicht lokale Funktion »%#D« verwendet anonymen Typen" + +-#: cp/decl.c:5609 ++#: cp/decl.c:5678 + msgid "`%#D' does not refer to the unqualified type, so it is not used for linkage" + msgstr "»%#D« verweist nicht auf den unqualifizierten Typen, also wird es nicht zum Binden verwendet" + +-#: cp/decl.c:5615 ++#: cp/decl.c:5684 + msgid "non-local function `%#D' uses local type `%T'" + msgstr "nicht lokale Funktion »%#D« verwendet lokalen Typen »%T«" + +-#: cp/decl.c:5639 ++#: cp/decl.c:5708 + msgid "%smember function `%D' cannot have `%T' method qualifier" + msgstr "%sElementfunktion »%D« kann nicht den Methodenqualifizierer »%T« haben" + +-#: cp/decl.c:5663 ++#: cp/decl.c:5732 + msgid "defining explicit specialization `%D' in friend declaration" + msgstr "Definition der expliziten Spezialisierung »%D« in friend-Deklaration" + + #. Something like `template friend void f()'. +-#: cp/decl.c:5673 ++#: cp/decl.c:5742 + msgid "invalid use of template-id `%D' in declaration of primary template" + msgstr "ungültige Verwendung der Template-ID »%D« in Deklaration des ursprünglichen Templates" + +-#: cp/decl.c:5700 ++#: cp/decl.c:5769 + msgid "default arguments are not allowed in declaration of friend template specialization `%D'" + msgstr "Standardargumente sind nicht in Deklaration der friend-Template-Spezialisierung »%D« erlaubt" + +-#: cp/decl.c:5707 ++#: cp/decl.c:5776 + msgid "`inline' is not allowed in declaration of friend template specialization `%D'" + msgstr "»inline« ist nicht in Deklaration der friend-Template-Spezialisierung »%D« erlaubt" + +-#: cp/decl.c:5765 ++#: cp/decl.c:5834 + msgid "definition of implicitly-declared `%D'" + msgstr "Definition des implizit deklarierten »%D«" + +-#: cp/decl.c:5785 cp/decl2.c:738 ++#: cp/decl.c:5854 cp/decl2.c:738 + msgid "no `%#D' member function declared in class `%T'" + msgstr "keine Elementfunktion »%#D« in Klasse »%T« deklariert" + +-#: cp/decl.c:5919 ++#: cp/decl.c:5988 + msgid "non-local variable `%#D' uses local type `%T'" + msgstr "nicht-lokale Variable »%#D« verwendet lokalen Typen »%T«" + +-#: cp/decl.c:6034 ++#: cp/decl.c:6103 + msgid "invalid in-class initialization of static data member of non-integral type `%T'" + msgstr "ungültige Initialisierung des statischen Datenelements vom nicht eingebauten Typen »%T«" + +-#: cp/decl.c:6043 ++#: cp/decl.c:6112 + msgid "ISO C++ forbids in-class initialization of non-const static member `%D'" + msgstr "ISO-C++ verbietet Initialisierung des nicht konstanten statischen Elements »%D« in der Klasse" + +-#: cp/decl.c:6046 ++#: cp/decl.c:6115 + msgid "ISO C++ forbids initialization of member constant `%D' of non-integral type `%T'" + msgstr "ISO-C++ verbietet Initialisierung der Elementkonstante »%D« vom nicht eingebauten Typen »%T«" + +-#: cp/decl.c:6065 ++#: cp/decl.c:6134 + msgid "size of array `%D' has non-integral type `%T'" + msgstr "Feldgröße von »%D« hat nicht-ganzzahligen Typen »%T«" + +-#: cp/decl.c:6067 ++#: cp/decl.c:6136 + msgid "size of array has non-integral type `%T'" + msgstr "Feldgröße hat nicht-ganzzahligen Typen »%T«" + +-#: cp/decl.c:6103 ++#: cp/decl.c:6172 + msgid "size of array `%D' is negative" + msgstr "Größe des Feldes »%D« ist negativ" + +-#: cp/decl.c:6105 ++#: cp/decl.c:6174 + msgid "size of array is negative" + msgstr "Größe des Feldes ist negativ" + +-#: cp/decl.c:6113 ++#: cp/decl.c:6182 + msgid "ISO C++ forbids zero-size array `%D'" + msgstr "ISO-C++ verbietet Feld »%D« der Größe null" + +-#: cp/decl.c:6115 ++#: cp/decl.c:6184 + msgid "ISO C++ forbids zero-size array" + msgstr "ISO-C++ verbietet Feld der Größe null" + +-#: cp/decl.c:6122 ++#: cp/decl.c:6191 + msgid "size of array `%D' is not an integral constant-expression" + msgstr "Größe des Feldes »%D« ist kein konstanter Ganzzahlausdruck" + +-#: cp/decl.c:6125 ++#: cp/decl.c:6194 + msgid "size of array is not an integral constant-expression" + msgstr "Größe des Feldes ist kein konstanter Ganzzahlausdruck" + +-#: cp/decl.c:6130 ++#: cp/decl.c:6199 + msgid "ISO C++ forbids variable-size array `%D'" + msgstr "ISO-C++ verbietet Feld »%D« variabler Größe" + +-#: cp/decl.c:6132 ++#: cp/decl.c:6201 + msgid "ISO C++ forbids variable-size array" + msgstr "ISO-C++ verbietet Feld variabler Größe" + +-#: cp/decl.c:6154 ++#: cp/decl.c:6223 + msgid "overflow in array dimension" + msgstr "Ãœberlauf in Feldgröße" + +-#: cp/decl.c:6248 ++#: cp/decl.c:6317 + msgid "declaration of `%D' as %s" + msgstr "Deklaration von »%D« als %s" + +-#: cp/decl.c:6250 ++#: cp/decl.c:6319 + #, c-format + msgid "creating %s" + msgstr "Erzeugen von %s" + +-#: cp/decl.c:6262 ++#: cp/decl.c:6331 + msgid "declaration of `%D' as multidimensional array must have bounds for all dimensions except the first" + msgstr "Deklaration von »%D« als multidimensionales Feld muss für alle Dimensionen außer der ersten Grenzen haben" + +-#: cp/decl.c:6265 ++#: cp/decl.c:6334 + msgid "multidimensional array must have bounds for all dimensions except the first" + msgstr " multidimensionales Feld muss für alle Dimensionen außer der ersten Grenzen haben" + +-#: cp/decl.c:6293 ++#: cp/decl.c:6362 + msgid "return type specification for constructor invalid" + msgstr "Angabe des Rückgabetyps für Konstruktor ist ungültig" + +-#: cp/decl.c:6300 ++#: cp/decl.c:6369 + msgid "return type specification for destructor invalid" + msgstr "Angabe des Rückgabetyps für Destruktor ist ungültig" + +-#: cp/decl.c:6306 ++#: cp/decl.c:6375 + msgid "operator `%T' declared to return `%T'" + msgstr "Operator »%T« ist deklariert, »%T« zurückzugeben" + +-#: cp/decl.c:6308 ++#: cp/decl.c:6377 + msgid "return type specified for `operator %T'" + msgstr "Rückgabetyp für »operator %T« angegeben" + +-#: cp/decl.c:6452 ++#: cp/decl.c:6400 ++msgid "unnamed variable or field declared void" ++msgstr "unbenannte Variable oder Feld als »void« deklariert" ++ ++#: cp/decl.c:6405 ++#, c-format ++msgid "variable or field `%E' declared void" ++msgstr "Variable oder Feld »%E« als »void« deklariert" ++ ++#: cp/decl.c:6408 ++msgid "variable or field declared void" ++msgstr "Variable oder Feld als »void« deklariert" ++ ++#: cp/decl.c:6547 + msgid "destructors must be member functions" + msgstr "Destruktoren müssen Elementfunktionen sein" + +-#: cp/decl.c:6471 ++#: cp/decl.c:6566 + msgid "destructor `%T' must match class name `%T'" + msgstr "Destruktor »%T« muss zu Klassenname »%T« passen" + +-#: cp/decl.c:6534 ++#: cp/decl.c:6629 + msgid "declarator-id missing; using reserved word `%D'" + msgstr "Deklarator-ID fehlt: reserviertes Wort »%D« wird verwendet" + +-#: cp/decl.c:6588 ++#: cp/decl.c:6683 + msgid "type `%T' is not derived from type `%T'" + msgstr "Typ »%T« ist nicht vom Typ »%T« abgeleitet" + + #. Parse error puts this typespec where + #. a declarator should go. +-#: cp/decl.c:6651 ++#: cp/decl.c:6746 + msgid "`%T' specified as declarator-id" + msgstr "»%T« als Deklarator-ID angegeben" + +-#: cp/decl.c:6653 ++#: cp/decl.c:6748 + msgid " perhaps you want `%T' for a constructor" + msgstr " vielleicht wollen Sie »%T« als Konstruktor" + +@@ -14148,300 +14204,292 @@ + #. decl-specifier like in + #. std::allocator alloc; + #. Handle that gracefully. +-#: cp/decl.c:6675 ++#: cp/decl.c:6770 + #, c-format + msgid "invalid use of template-name '%E' in a declarator" + msgstr "ungültige Verwendung des Template-Namens »%E« in einem Deklarator" + +-#: cp/decl.c:6695 ++#: cp/decl.c:6790 cp/decl.c:8124 + msgid "declaration of `%D' as non-function" + msgstr "Deklaration von »%D« als Nicht-Funktion" + +-#: cp/decl.c:6772 ++#: cp/decl.c:6867 + msgid "`bool' is now a keyword" + msgstr "»bool« ist jetzt ein Schlüsselwort" + +-#: cp/decl.c:6774 ++#: cp/decl.c:6869 + msgid "extraneous `%T' ignored" + msgstr "belangloses »%T« ignoriert" + +-#: cp/decl.c:6790 cp/decl.c:6834 ++#: cp/decl.c:6885 cp/decl.c:6929 + msgid "multiple declarations `%T' and `%T'" + msgstr "mehrfache Deklarationen »%T« und »%T«" + +-#: cp/decl.c:6803 ++#: cp/decl.c:6898 + msgid "ISO C++ does not support `long long'" + msgstr "ISO-C++ unterstützt nicht »long long«" + +-#: cp/decl.c:6907 cp/decl.c:6910 ++#: cp/decl.c:7002 cp/decl.c:7005 + #, c-format + msgid "ISO C++ forbids declaration of `%s' with no type" + msgstr "ISO-C++ verbietet Deklaration von »%s« ohne Typ" + +-#: cp/decl.c:6941 ++#: cp/decl.c:7036 + #, c-format + msgid "short, signed or unsigned invalid for `%s'" + msgstr "»short«, »signed« oder »unsigned« ungültig für »%s«" + +-#: cp/decl.c:6946 ++#: cp/decl.c:7041 + #, c-format + msgid "long and short specified together for `%s'" + msgstr "»long« und »short« für »%s« gleichzeitig angegeben" + +-#: cp/decl.c:6957 ++#: cp/decl.c:7052 + #, c-format + msgid "signed and unsigned given together for `%s'" + msgstr "»signed« und »unsigned« für »%s« gleichzeitig angegeben" + +-#: cp/decl.c:7066 ++#: cp/decl.c:7161 + msgid "qualifiers are not allowed on declaration of `operator %T'" + msgstr "Qualifizierer sind bei Deklaration von »operator %T« nicht erlaubt" + +-#: cp/decl.c:7088 ++#: cp/decl.c:7183 + msgid "member `%D' cannot be declared both virtual and static" + msgstr "Element »%D« kann nicht gleichzeitig virtuell und statisch deklariert werden" + +-#: cp/decl.c:7097 ++#: cp/decl.c:7192 + msgid "`%T::%D' is not a valid declarator" + msgstr "»%T::%D« ist kein gültiger Deklarator" + +-#: cp/decl.c:7109 ++#: cp/decl.c:7204 + msgid "storage class specifiers invalid in parameter declarations" + msgstr "Speicherklassenangaben sind in Parameterdeklarationen ungültig" + +-#: cp/decl.c:7113 ++#: cp/decl.c:7208 + msgid "typedef declaration invalid in parameter declaration" + msgstr "»typedef«-Deklaration in Parameterdeklaration ungültig" + +-#: cp/decl.c:7126 ++#: cp/decl.c:7221 + msgid "virtual outside class declaration" + msgstr "virtuelle Deklaration einer äußeren Klasse" + +-#: cp/decl.c:7185 ++#: cp/decl.c:7280 + #, c-format + msgid "storage class specified for %s `%s'" + msgstr "Speicherklasse für %s »%s« angegeben" + +-#: cp/decl.c:7220 ++#: cp/decl.c:7315 + #, c-format + msgid "top-level declaration of `%s' specifies `auto'" + msgstr "Deklaration höchster Ebene von »%s« gibt »auto« an" + +-#: cp/decl.c:7232 ++#: cp/decl.c:7327 + msgid "storage class specifiers invalid in friend function declarations" + msgstr "Speicherklassenangaben sind in friend-Funktionsdeklarationen ungültig" + +-#: cp/decl.c:7397 ++#: cp/decl.c:7492 + msgid "destructor cannot be static member function" + msgstr "Destruktor kann keine statische Elementfunktion sein" + +-#: cp/decl.c:7400 ++#: cp/decl.c:7495 + #, c-format + msgid "destructors may not be `%s'" + msgstr "Destruktoren dürfen nicht »%s« sein" + +-#: cp/decl.c:7421 ++#: cp/decl.c:7516 + msgid "constructor cannot be static member function" + msgstr "Konstruktor kann keine statische Elementfunktion sein" + +-#: cp/decl.c:7424 ++#: cp/decl.c:7519 + msgid "constructors cannot be declared virtual" + msgstr "Konstruktoren können nicht als virtuell deklariert werden" + +-#: cp/decl.c:7429 ++#: cp/decl.c:7524 + #, c-format + msgid "constructors may not be `%s'" + msgstr "Konstruktoren dürfen nicht »%s« sein" + +-#: cp/decl.c:7439 ++#: cp/decl.c:7534 + msgid "return value type specifier for constructor ignored" + msgstr "Typangabe des Rückgabewerts für Konstruktor ignoriert" + +-#: cp/decl.c:7458 ++#: cp/decl.c:7553 + #, c-format + msgid "can't initialize friend function `%s'" + msgstr "friend-Funktion »%s« kann nicht initialisiert werden" + + #. Cannot be both friend and virtual. +-#: cp/decl.c:7462 ++#: cp/decl.c:7557 + msgid "virtual functions cannot be friends" + msgstr "virtuelle Funktionen können keine friends sein" + +-#: cp/decl.c:7467 ++#: cp/decl.c:7562 + msgid "friend declaration not in class definition" + msgstr "friend-Deklaration nicht in Klassendefinition" + +-#: cp/decl.c:7469 ++#: cp/decl.c:7564 + #, c-format + msgid "can't define friend function `%s' in a local class definition" + msgstr "friend-Funktion »%s« kann nicht in einer lokalen Klassendefinition definiert werden" + +-#: cp/decl.c:7490 ++#: cp/decl.c:7585 + msgid "destructors may not have parameters" + msgstr "Destruktoren dürfen keine Parameter haben" + +-#: cp/decl.c:7510 cp/decl.c:7517 ++#: cp/decl.c:7605 cp/decl.c:7612 + msgid "cannot declare reference to `%#T'" + msgstr "Referenz auf »%#T« kann nicht definiert werden" + +-#: cp/decl.c:7511 ++#: cp/decl.c:7606 + msgid "cannot declare pointer to `%#T'" + msgstr "Zeiger auf »%#T« kann nicht deklariert werden" + +-#: cp/decl.c:7516 ++#: cp/decl.c:7611 + msgid "cannot declare pointer to `%#T' member" + msgstr "Zeiger auf Element von »%#T« kann nicht deklariert werden" + +-#: cp/decl.c:7655 ++#: cp/decl.c:7750 + msgid "extra qualification `%T::' on member `%s' ignored" + msgstr "zusätzliche Qualifizierung »%T::« an Element »%s« ignoriert" + +-#: cp/decl.c:7671 ++#: cp/decl.c:7766 + msgid "cannot declare member function `%T::%s' within `%T'" + msgstr "Elementfunktion »%T::%s« kann nicht in »%T« deklariert werden" + +-#: cp/decl.c:7686 ++#: cp/decl.c:7781 + msgid "cannot declare member `%T::%s' within `%T'" + msgstr "Element »%T::%s« kann nicht in »%T« deklariert werden" + +-#: cp/decl.c:7766 ++#: cp/decl.c:7861 + msgid "data member may not have variably modified type `%T'" + msgstr "Datenelement darf nicht variabel modifizierten Typ »%T« haben" + +-#: cp/decl.c:7768 ++#: cp/decl.c:7863 + msgid "parameter may not have variably modified type `%T'" + msgstr "Parameter darf nicht variabel modifizierten Typ »%T« haben" + + #. [dcl.fct.spec] The explicit specifier shall only be used in + #. declarations of constructors within a class definition. +-#: cp/decl.c:7776 ++#: cp/decl.c:7871 + msgid "only declarations of constructors can be `explicit'" + msgstr "nur Deklarationen von Konstruktoren können »explicit« sein" + +-#: cp/decl.c:7784 ++#: cp/decl.c:7879 + #, c-format + msgid "non-member `%s' cannot be declared `mutable'" + msgstr "Nicht-Element »%s« kann nicht als »mutable« deklariert sein" + +-#: cp/decl.c:7789 ++#: cp/decl.c:7884 + #, c-format + msgid "non-object member `%s' cannot be declared `mutable'" + msgstr "Nicht-Objekt-Element »%s« kann nicht als »mutable« deklariert sein" + +-#: cp/decl.c:7795 ++#: cp/decl.c:7890 + #, c-format + msgid "function `%s' cannot be declared `mutable'" + msgstr "Funktion »%s« kann nicht als »mutable« deklariert sein" + +-#: cp/decl.c:7800 ++#: cp/decl.c:7895 + #, c-format + msgid "static `%s' cannot be declared `mutable'" + msgstr "statisches »%s« kann nicht als »mutable« deklariert sein" + +-#: cp/decl.c:7805 ++#: cp/decl.c:7900 + #, c-format + msgid "const `%s' cannot be declared `mutable'" + msgstr "Konstante »%s« kann nicht als »mutable« deklariert sein" + +-#: cp/decl.c:7818 ++#: cp/decl.c:7913 + msgid "template-id `%D' used as a declarator" + msgstr "Template-ID »%D« als Deklarator verwendet" + +-#: cp/decl.c:7839 ++#: cp/decl.c:7934 + msgid "ISO C++ forbids nested type `%D' with same name as enclosing class" + msgstr "ISO-C++ verbietet geschachtelten Typen »%D« mit gleichem Namen wie umschließende Klasse" + +-#: cp/decl.c:7847 ++#: cp/decl.c:7942 + msgid "%Jtypedef name may not be a nested-name-specifier" + msgstr "%Jtypedef-Name darf kein Spezifizierer mit geschachteltem Namen sein" + +-#: cp/decl.c:7893 ++#: cp/decl.c:7988 + msgid "%Jinvalid type qualifier for non-member function type" + msgstr "%Jungültiger Typkennzeichner für Nicht-Element-Funktionstyp" + +-#: cp/decl.c:7956 ++#: cp/decl.c:8051 + msgid "type qualifiers specified for friend class declaration" + msgstr "Typkennzeichner für friend-Klassen-Deklaration angegeben" + +-#: cp/decl.c:7961 ++#: cp/decl.c:8056 + msgid "`inline' specified for friend class declaration" + msgstr "»inline« für friend-Klassen-Deklaration angegeben" + +-#: cp/decl.c:7969 ++#: cp/decl.c:8064 + msgid "template parameters cannot be friends" + msgstr "Template-Parameter können keine »friends« sein" + +-#: cp/decl.c:7971 ++#: cp/decl.c:8066 + msgid "friend declaration requires class-key, i.e. `friend class %T::%D'" + msgstr "friend-Deklaration erfordert Klassenschlüssel, z.B. »friend class %T::%D«" + +-#: cp/decl.c:7975 ++#: cp/decl.c:8070 + msgid "friend declaration requires class-key, i.e. `friend %#T'" + msgstr "friend-Deklaration erfordert Klassenschlüssel, z.B. »friend %#T«" + +-#: cp/decl.c:7988 ++#: cp/decl.c:8083 + msgid "trying to make class `%T' a friend of global scope" + msgstr "Versuch, die Klasse »%T« zu einem »friend« des globalen Gültigkeitsbereiches zu machen" + +-#: cp/decl.c:7999 ++#: cp/decl.c:8094 + msgid "invalid qualifiers on non-member function type" + msgstr "ungültige Qualifizierer an Nicht-Element-Funktionstyp" + +-#: cp/decl.c:8018 ++#: cp/decl.c:8113 + msgid "abstract declarator `%T' used as declaration" + msgstr "abstrakter Deklarator »%T« als Deklaration verwendet" + +-#: cp/decl.c:8030 +-msgid "unnamed variable or field declared void" +-msgstr "unbenannte Variable oder Feld als »void« deklariert" +- +-#: cp/decl.c:8039 +-msgid "variable or field declared void" +-msgstr "Variable oder Feld als »void« deklariert" +- +-#: cp/decl.c:8049 ++#: cp/decl.c:8139 + msgid "cannot use `::' in parameter declaration" + msgstr "»::« kann nicht in Parameterdeklaration verwendet werden" + + #. Something like struct S { int N::j; }; +-#: cp/decl.c:8094 ++#: cp/decl.c:8184 + msgid "invalid use of `::'" + msgstr "ungültige Verwendung von »::«" + +-#: cp/decl.c:8106 ++#: cp/decl.c:8196 + msgid "function `%D' cannot be declared friend" + msgstr "Funktion »%D« kann nicht als »friend« deklariert werden" + +-#: cp/decl.c:8118 ++#: cp/decl.c:8208 + msgid "can't make `%D' into a method -- not in a class" + msgstr "»%D« kann nicht zur Methode gemacht werden -- nicht in einer Klasse" + +-#: cp/decl.c:8127 ++#: cp/decl.c:8217 + msgid "function `%D' declared virtual inside a union" + msgstr "Funktion »%D« als virtuell innerhalb einer Union deklariert" + +-#: cp/decl.c:8136 ++#: cp/decl.c:8226 + msgid "`%D' cannot be declared virtual, since it is always static" + msgstr "»%D« kann nicht als virtuell deklariert werden, da es immer statisch ist" + +-#: cp/decl.c:8215 ++#: cp/decl.c:8305 + msgid "field `%D' has incomplete type" + msgstr "Feld »%D« hat unvollständigen Typen" + +-#: cp/decl.c:8217 ++#: cp/decl.c:8307 + msgid "name `%T' has incomplete type" + msgstr "Name »%T« hat unvollständigen Typen" + +-#: cp/decl.c:8226 ++#: cp/decl.c:8316 + msgid " in instantiation of template `%T'" + msgstr " in Instanziierung des Templates »%T«" + +-#: cp/decl.c:8236 ++#: cp/decl.c:8326 + #, c-format + msgid "`%s' is neither function nor member function; cannot be declared friend" + msgstr "»%s« ist weder eine Funktion noch Elementfunktion; kann nicht als »friend« deklariert werden" + +-#: cp/decl.c:8247 ++#: cp/decl.c:8337 + msgid "member functions are implicitly friends of their class" + msgstr "Elementfunktionen sind implizite »friends« ihrer Klasse" + +@@ -14457,91 +14505,91 @@ + #. the rest of the compiler does not correctly + #. handle the initialization unless the member is + #. static so we make it static below. +-#: cp/decl.c:8287 ++#: cp/decl.c:8377 + msgid "ISO C++ forbids initialization of member `%D'" + msgstr "ISO-C++ verbietet Initialisierung des Elementes »%D«" + +-#: cp/decl.c:8289 ++#: cp/decl.c:8379 + msgid "making `%D' static" + msgstr "»%D« wird statisch gemacht" + +-#: cp/decl.c:8345 ++#: cp/decl.c:8435 + #, c-format + msgid "storage class `auto' invalid for function `%s'" + msgstr "Speicherklasse »auto« ungültig für Funktion »%s«" + +-#: cp/decl.c:8347 ++#: cp/decl.c:8437 + #, c-format + msgid "storage class `register' invalid for function `%s'" + msgstr "Speicherklasse »register« ungültig für Funktion »%s«" + +-#: cp/decl.c:8349 ++#: cp/decl.c:8439 + #, c-format + msgid "storage class `__thread' invalid for function `%s'" + msgstr "Speicherklasse »__thread« ungültig für Funktion »%s«" + +-#: cp/decl.c:8360 ++#: cp/decl.c:8450 + #, c-format + msgid "storage class `static' invalid for function `%s' declared out of global scope" + msgstr "Speicherklasse »static« ungültig für außerhalb des globalen Gültigkeitsbereiches deklarierte Funktion »%s«" + +-#: cp/decl.c:8362 ++#: cp/decl.c:8452 + #, c-format + msgid "storage class `inline' invalid for function `%s' declared out of global scope" + msgstr "Speicherklasse »inline« ungültig für außerhalb des globalen Gültigkeitsbereiches deklarierte Funktion »%s«" + +-#: cp/decl.c:8369 ++#: cp/decl.c:8459 + #, c-format + msgid "virtual non-class function `%s'" + msgstr "virtuelle Nicht-Klassen-Funktion »%s«" + +-#: cp/decl.c:8400 ++#: cp/decl.c:8490 + msgid "cannot declare member function `%D' to have static linkage" + msgstr "Elementfunktion »%D« kann nicht deklariert werden, statische Bindung zu haben" + + #. FIXME need arm citation +-#: cp/decl.c:8406 ++#: cp/decl.c:8496 + msgid "cannot declare static function inside another function" + msgstr "statische Funktion innerhalb anderer Funktion kann nicht deklariert werden" + +-#: cp/decl.c:8434 ++#: cp/decl.c:8524 + msgid "`static' may not be used when defining (as opposed to declaring) a static data member" + msgstr "»static« darf nicht bei der Definition (im Gegensatz zu Deklaration) eines statischen Datenelementes verwendet werden" + +-#: cp/decl.c:8440 ++#: cp/decl.c:8530 + msgid "static member `%D' declared `register'" + msgstr "statisches Element »%D« als »register« deklariert" + +-#: cp/decl.c:8445 ++#: cp/decl.c:8535 + msgid "cannot explicitly declare member `%#D' to have extern linkage" + msgstr "Element »%#D« kann nicht explizit deklariert werden, externe Bindung zu haben" + +-#: cp/decl.c:8585 ++#: cp/decl.c:8675 + msgid "default argument for `%#D' has type `%T'" + msgstr "Standardargument für »%#D« hat Typ »%T«" + +-#: cp/decl.c:8588 ++#: cp/decl.c:8678 + msgid "default argument for parameter of type `%T' has type `%T'" + msgstr "Standardargument für Parameter des Typs »%T« hat Typ »%T«" + +-#: cp/decl.c:8605 ++#: cp/decl.c:8695 + msgid "default argument `%E' uses local variable `%D'" + msgstr "Standardargument »%E« verwendet lokale Variable »%D«" + +-#: cp/decl.c:8649 ++#: cp/decl.c:8739 + #, c-format + msgid "invalid string constant `%E'" + msgstr "ungültige Zeichenkettenkonstante »%E«" + +-#: cp/decl.c:8651 ++#: cp/decl.c:8741 + msgid "invalid integer constant in parameter list, did you forget to give parameter name?" + msgstr "ungültige Ganzzahlkonstante in Parameterliste; vergessen, den Parameternamen anzugeben?" + +-#: cp/decl.c:8689 ++#: cp/decl.c:8779 + msgid "parameter `%D' invalidly declared method type" + msgstr "Parameter »%D« deklariert ungültigerweise Methodentyp" + +-#: cp/decl.c:8713 ++#: cp/decl.c:8803 + msgid "parameter `%D' includes %s to array of unknown bound `%T'" + msgstr "Parameter »%D« bezieht %s in Feld mit unbekannter Grenze »%T« ein" + +@@ -14560,93 +14608,93 @@ + #. or implicitly defined), there's no need to worry about their + #. existence. Theoretically, they should never even be + #. instantiated, but that's hard to forestall. +-#: cp/decl.c:8872 ++#: cp/decl.c:8962 + msgid "invalid constructor; you probably meant `%T (const %T&)'" + msgstr "ungültiger Konstruktor; wahrscheinlich war »%T (const %T&)« gemeint" + +-#: cp/decl.c:9000 ++#: cp/decl.c:9090 + msgid "`%D' must be a nonstatic member function" + msgstr "»%D« muss eine nichtstatische Elementfunktion sein" + +-#: cp/decl.c:9006 ++#: cp/decl.c:9096 + msgid "`%D' must be either a non-static member function or a non-member function" + msgstr "»%D« muss entweder eine nichtstatische Elementfunktion oder eine Nicht-Element-Funktion sein" + +-#: cp/decl.c:9023 ++#: cp/decl.c:9113 + msgid "`%D' must have an argument of class or enumerated type" + msgstr "»%D« muss ein Argument von einem Klassen- oder Aufzählungstyp haben" + +-#: cp/decl.c:9058 ++#: cp/decl.c:9148 + #, c-format + msgid "conversion to %s%s will never use a type conversion operator" + msgstr "Umwandlung in %s%s wird nie einen Typumwandlungsoperator verwenden" + + #. 13.4.0.3 +-#: cp/decl.c:9065 ++#: cp/decl.c:9155 + msgid "ISO C++ prohibits overloading operator ?:" + msgstr "ISO-C++ verbietet Ãœberladen des Operators ?:" + +-#: cp/decl.c:9115 ++#: cp/decl.c:9205 + msgid "postfix `%D' must take `int' as its argument" + msgstr "Suffix-»%D« muss »int« als sein Argument nehmen" + +-#: cp/decl.c:9119 ++#: cp/decl.c:9209 + msgid "postfix `%D' must take `int' as its second argument" + msgstr "Suffix-»%D« muss »int« als sein zweites Argument nehmen" + +-#: cp/decl.c:9126 ++#: cp/decl.c:9216 + msgid "`%D' must take either zero or one argument" + msgstr "»%D« muss entweder null oder ein Argument nehmen" + +-#: cp/decl.c:9128 ++#: cp/decl.c:9218 + msgid "`%D' must take either one or two arguments" + msgstr "»%D« muss entweder ein oder zwei Argumente nehmen" + +-#: cp/decl.c:9149 ++#: cp/decl.c:9239 + msgid "prefix `%D' should return `%T'" + msgstr "Präfix-»%D« sollte »%T« zurückgeben" + +-#: cp/decl.c:9155 ++#: cp/decl.c:9245 + msgid "postfix `%D' should return `%T'" + msgstr "Suffix-»%D« sollte »%T« zurückgeben" + +-#: cp/decl.c:9164 ++#: cp/decl.c:9254 + msgid "`%D' must take `void'" + msgstr "»%D« muss »void« nehmen" + +-#: cp/decl.c:9166 cp/decl.c:9174 ++#: cp/decl.c:9256 cp/decl.c:9264 + msgid "`%D' must take exactly one argument" + msgstr "»%D« muss genau ein Argument nehmen" + +-#: cp/decl.c:9176 ++#: cp/decl.c:9266 + msgid "`%D' must take exactly two arguments" + msgstr "»%D« muss genau zwei Argumente nehmen" + +-#: cp/decl.c:9184 ++#: cp/decl.c:9274 + msgid "user-defined `%D' always evaluates both arguments" + msgstr "benutzerdefiniertes »%D« wertet immer beide Argumente aus" + +-#: cp/decl.c:9198 ++#: cp/decl.c:9288 + msgid "`%D' should return by value" + msgstr "»%D« sollte Wert zurückgeben" + +-#: cp/decl.c:9210 cp/decl.c:9213 ++#: cp/decl.c:9300 cp/decl.c:9303 + msgid "`%D' cannot have default arguments" + msgstr "»%D« kann keine Standardargumente haben" + +-#: cp/decl.c:9273 ++#: cp/decl.c:9363 + msgid "using typedef-name `%D' after `%s'" + msgstr "typedef-Name »%D« wird nach »%s« verwendet" + +-#: cp/decl.c:9279 ++#: cp/decl.c:9369 + msgid "using template type parameter `%T' after `%s'" + msgstr "Templatetyp-Parameter »%T« wird nach »%s« verwendet" + +-#: cp/decl.c:9287 ++#: cp/decl.c:9377 + msgid "`%T' referred to as `%s'" + msgstr "»%T« als »%s« verwendet" + +-#: cp/decl.c:9293 ++#: cp/decl.c:9383 + msgid "`%T' referred to as enum" + msgstr "»%T« als enum verwendet" + +@@ -14657,47 +14705,47 @@ + #. void f(class C); // No template header here + #. + #. then the required template argument is missing. +-#: cp/decl.c:9308 ++#: cp/decl.c:9398 + msgid "template argument required for `%s %T'" + msgstr "Template-Argument für »%s %T« benötigt" + +-#: cp/decl.c:9453 ++#: cp/decl.c:9543 + msgid "use of enum `%#D' without previous declaration" + msgstr "Verwendung des enum »%#D« ohne vorherige Deklaration" + +-#: cp/decl.c:9471 ++#: cp/decl.c:9561 + msgid "redeclaration of `%T' as a non-template" + msgstr "Redeklaration von »%T« als Nicht-Template" + +-#: cp/decl.c:9517 ++#: cp/decl.c:9607 + msgid "derived union `%T' invalid" + msgstr "abgeleitete Union »%T« ist ungültig" + +-#: cp/decl.c:9570 ++#: cp/decl.c:9660 + msgid "base type `%T' fails to be a struct or class type" + msgstr "Basistyp »%T« ist kein struct- oder Klassentyp" + +-#: cp/decl.c:9578 ++#: cp/decl.c:9668 + msgid "recursive type `%T' undefined" + msgstr "rekursiver Typ »%T« nicht definiert" + +-#: cp/decl.c:9580 ++#: cp/decl.c:9670 + msgid "duplicate base type `%T' invalid" + msgstr "doppelter Basistyp »%T« ungültig" + +-#: cp/decl.c:9658 ++#: cp/decl.c:9748 + msgid "Java class '%T' cannot have multiple bases" + msgstr "Java-Klasse »%T« kann nicht mehrere Basen haben" + +-#: cp/decl.c:9660 ++#: cp/decl.c:9750 + msgid "Java class '%T' cannot have virtual bases" + msgstr "Java-Klasse »%T« kann keine virtuellen Basen haben" + +-#: cp/decl.c:9700 ++#: cp/decl.c:9790 + msgid "multiple definition of `%#T'" + msgstr "mehrfache Definition von »%#T«" + +-#: cp/decl.c:9701 ++#: cp/decl.c:9791 + msgid "%Jprevious definition here" + msgstr "%Jvorherige Definition hier" + +@@ -14705,47 +14753,47 @@ + #. + #. IF no integral type can represent all the enumerator values, the + #. enumeration is ill-formed. +-#: cp/decl.c:9836 ++#: cp/decl.c:9926 + msgid "no integral type can represent all of the enumerator values for `%T'" + msgstr "kein Ganzzahltyp kann alle Aufzählungswerte für »%T« darstellen" + +-#: cp/decl.c:9926 ++#: cp/decl.c:10023 + msgid "enumerator value for `%D' not integer constant" + msgstr "Aufzählungswert für »%D« ist keine Ganzzahlkonstante" + +-#: cp/decl.c:9946 ++#: cp/decl.c:10043 + msgid "overflow in enumeration values at `%D'" + msgstr "Ãœberlauf in Aufzählungswerten bei »%D«" + +-#: cp/decl.c:10015 ++#: cp/decl.c:10112 + msgid "return type `%#T' is incomplete" + msgstr "Rückgabetyp »%#T« ist unvollständig" + +-#: cp/decl.c:10133 ++#: cp/decl.c:10230 + msgid "return type for `main' changed to `int'" + msgstr "Rückgabetyp für »main« zu »int« geändert" + +-#: cp/decl.c:10162 ++#: cp/decl.c:10259 + msgid "`%D' implicitly declared before its definition" + msgstr "»%D« vor seiner Definition implizit deklariert" + +-#: cp/decl.c:10184 cp/typeck.c:6071 ++#: cp/decl.c:10281 cp/typeck.c:6092 + msgid "`operator=' should return a reference to `*this'" + msgstr "»operator=« sollte eine Referenz auf »*this« zurück geben" + +-#: cp/decl.c:10453 ++#: cp/decl.c:10550 + msgid "parameter `%D' declared void" + msgstr "Parameter »%D« leer definiert" + +-#: cp/decl.c:10919 ++#: cp/decl.c:11016 + msgid "invalid member function declaration" + msgstr "ungültige Elementfunktionsdeklaration" + +-#: cp/decl.c:10936 ++#: cp/decl.c:11033 + msgid "`%D' is already defined in class `%T'" + msgstr "»%D« ist bereits in Klasse »%T« definiert" + +-#: cp/decl.c:11149 ++#: cp/decl.c:11246 + msgid "static member function `%#D' declared with type qualifiers" + msgstr "statische Elementfunktion »%#D« mit Typqualifizierern deklariert" + +@@ -14793,7 +14841,7 @@ + msgid "invalid use of `virtual' in template declaration of `%#D'" + msgstr "ungültige Verwendung von »virtual« in Templatedeklaration von »%#D«" + +-#: cp/decl2.c:541 cp/pt.c:2834 ++#: cp/decl2.c:541 cp/pt.c:2878 + msgid "template declaration of `%#D'" + msgstr "Templatedeklaration von »%#D«" + +@@ -14865,40 +14913,40 @@ + msgid "anonymous struct not inside named type" + msgstr "anonymes struct nicht innerhalb eines benannten Typs" + +-#: cp/decl2.c:1218 ++#: cp/decl2.c:1224 + msgid "namespace-scope anonymous aggregates must be static" + msgstr "anonymes Aggregat im Gültigkeitsbereich eines Namespace muss statisch sein" + +-#: cp/decl2.c:1225 ++#: cp/decl2.c:1231 + msgid "anonymous union with no members" + msgstr "anonyme Union ohne Element" + +-#: cp/decl2.c:1259 ++#: cp/decl2.c:1265 + msgid "`operator new' must return type `%T'" + msgstr "»operator new« muss Typ »%T« zurück geben" + +-#: cp/decl2.c:1267 ++#: cp/decl2.c:1273 + msgid "`operator new' takes type `size_t' (`%T') as first parameter" + msgstr "»operator new« nimmt Typ »size_t« (»%T«) als ersten Parameter" + +-#: cp/decl2.c:1293 ++#: cp/decl2.c:1299 + msgid "`operator delete' must return type `%T'" + msgstr "»operator delete« muss Typ »%T« zurück geben" + +-#: cp/decl2.c:1301 ++#: cp/decl2.c:1307 + msgid "`operator delete' takes type `%T' as first parameter" + msgstr "»operator delete« nimmt Typ »%T« als ersten Parameter" + +-#: cp/decl2.c:2810 ++#: cp/decl2.c:2816 + msgid "inline function `%D' used but never defined" + msgstr "inline-Funktion »%D« verwendet, aber nirgendwo definiert" + +-#: cp/decl2.c:2956 ++#: cp/decl2.c:2962 + msgid "default argument missing for parameter %P of `%+#D'" + msgstr "Standardargument fehlt für Parameter %P von »%+#D«" + + #. damn ICE suppression +-#: cp/error.c:2387 ++#: cp/error.c:2385 + #, c-format + msgid "unexpected letter `%c' in locate_error\n" + msgstr "unerwarteter Buchstabe »%c« in locate_error\n" +@@ -14925,7 +14973,7 @@ + msgid "throwing NULL, which has integral, not pointer type" + msgstr "wirft NULL, was ganzzahlig, aber kein Zeigertyp ist" + +-#: cp/except.c:598 cp/init.c:2038 ++#: cp/except.c:598 cp/init.c:2047 + msgid "`%D' should never be overloaded" + msgstr "»%D« sollte niemals überladen werden" + +@@ -15003,7 +15051,7 @@ + msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning" + msgstr "" + +-#: cp/g++spec.c:229 java/jvspec.c:415 ++#: cp/g++spec.c:232 java/jvspec.c:415 + #, c-format + msgid "argument to `%s' missing\n" + msgstr "" +@@ -15128,59 +15176,59 @@ + msgid "incomplete type `%T' does not have member `%D'" + msgstr "" + +-#: cp/init.c:1459 ++#: cp/init.c:1460 + msgid "`%D' is not a member of type `%T'" + msgstr "" + +-#: cp/init.c:1478 ++#: cp/init.c:1487 + msgid "invalid pointer to bit-field `%D'" + msgstr "" + +-#: cp/init.c:1580 ++#: cp/init.c:1589 + msgid "invalid use of non-static member function `%D'" + msgstr "ungültige Verwendung der Nicht-static-Elementfunktion »%D«" + +-#: cp/init.c:1586 cp/semantics.c:1236 ++#: cp/init.c:1595 cp/semantics.c:1236 + msgid "invalid use of non-static data member `%D'" + msgstr "ungültige Verwendung des Nicht-static-Datenelementes »%D«" + +-#: cp/init.c:1725 ++#: cp/init.c:1734 + msgid "new of array type fails to specify size" + msgstr "" + +-#: cp/init.c:1736 ++#: cp/init.c:1745 + msgid "size in array new must have integral type" + msgstr "" + +-#: cp/init.c:1742 ++#: cp/init.c:1751 + msgid "zero size array reserves no space" + msgstr "" + +-#: cp/init.c:1809 ++#: cp/init.c:1818 + msgid "new cannot be applied to a reference type" + msgstr "" + +-#: cp/init.c:1815 ++#: cp/init.c:1824 + msgid "new cannot be applied to a function type" + msgstr "" + +-#: cp/init.c:1861 ++#: cp/init.c:1870 + msgid "call to Java constructor, while `jclass' undefined" + msgstr "" + +-#: cp/init.c:1877 ++#: cp/init.c:1886 + msgid "can't find class$" + msgstr "" + +-#: cp/init.c:2004 ++#: cp/init.c:2013 + msgid "invalid type `void' for new" + msgstr "" + +-#: cp/init.c:2014 ++#: cp/init.c:2023 + msgid "uninitialized const in `new' of `%#T'" + msgstr "" + +-#: cp/init.c:2033 ++#: cp/init.c:2042 + #, c-format + msgid "call to Java constructor with `%s' undefined" + msgstr "" +@@ -15188,39 +15236,39 @@ + #. See PR 15967. This should never happen (and it is + #. fixed correctly in mainline), but on the release branch + #. we prefer this less-intrusive approacch. +-#: cp/init.c:2077 ++#: cp/init.c:2086 + msgid "no suitable or ambiguous `%D' found in class `%T'" + msgstr "kein geeignetes oder mehrdeutiges »%D« in Klasse »%T« gefunden" + +-#: cp/init.c:2083 ++#: cp/init.c:2092 + msgid "request for member `%D' is ambiguous" + msgstr "" + +-#: cp/init.c:2203 ++#: cp/init.c:2212 + msgid "ISO C++ forbids initialization in array new" + msgstr "" + +-#: cp/init.c:2677 ++#: cp/init.c:2686 + msgid "initializer ends prematurely" + msgstr "" + +-#: cp/init.c:2734 ++#: cp/init.c:2743 + msgid "cannot initialize multi-dimensional array with initializer" + msgstr "" + +-#: cp/init.c:2895 ++#: cp/init.c:2904 + msgid "possible problem detected in invocation of delete operator:" + msgstr "" + +-#: cp/init.c:2898 ++#: cp/init.c:2907 + msgid "neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined." + msgstr "" + +-#: cp/init.c:2919 ++#: cp/init.c:2928 + msgid "unknown array size in delete" + msgstr "" + +-#: cp/init.c:3184 ++#: cp/init.c:3193 + msgid "type to vector delete is neither pointer or array type" + msgstr "" + +@@ -15285,15 +15333,15 @@ + msgid "(if you use `-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)" + msgstr "" + +-#: cp/mangle.c:2037 ++#: cp/mangle.c:2050 + msgid "call_expr cannot be mangled due to a defect in the C++ ABI" + msgstr "" + +-#: cp/mangle.c:2090 ++#: cp/mangle.c:2103 + msgid "omitted middle operand to `?:' operand cannot be mangled" + msgstr "" + +-#: cp/mangle.c:2389 ++#: cp/mangle.c:2402 + msgid "the mangled name of `%D' will change in a future version of GCC" + msgstr "" + +@@ -15434,7 +15482,7 @@ + + #. It's a nested name with template parameter dependent scope. + #. This can only be using-declaration for class member. +-#: cp/name-lookup.c:2126 cp/name-lookup.c:2140 cp/name-lookup.c:3380 ++#: cp/name-lookup.c:2126 cp/name-lookup.c:2140 cp/name-lookup.c:3362 + msgid "`%T' is not a namespace" + msgstr "" + +@@ -15469,86 +15517,86 @@ + msgid "using-declaration cannot name destructor" + msgstr "" + +-#: cp/name-lookup.c:3005 ++#: cp/name-lookup.c:2984 + msgid "declaration of `%D' not in a namespace surrounding `%D'" + msgstr "" + +-#: cp/name-lookup.c:3045 ++#: cp/name-lookup.c:3024 + msgid "`%D' should have been declared inside `%D'" + msgstr "" + +-#: cp/name-lookup.c:3109 ++#: cp/name-lookup.c:3088 + msgid "namespace alias `%D' not allowed here, assuming `%D'" + msgstr "" + + #. The parser did not find it, so it's not there. +-#: cp/name-lookup.c:3224 ++#: cp/name-lookup.c:3203 + msgid "unknown namespace `%D'" + msgstr "" + +-#: cp/name-lookup.c:3374 ++#: cp/name-lookup.c:3356 + msgid "namespace `%T' undeclared" + msgstr "" + +-#: cp/name-lookup.c:3407 ++#: cp/name-lookup.c:3389 + msgid "strong using only meaningful at namespace scope" + msgstr "" + +-#: cp/name-lookup.c:3414 ++#: cp/name-lookup.c:3396 + msgid "`%D' attribute directive ignored" + msgstr "Attribut-Anweisung »%D« wird ignoriert" + +-#: cp/name-lookup.c:3547 ++#: cp/name-lookup.c:3529 + msgid "use of `%D' is ambiguous" + msgstr "" + +-#: cp/name-lookup.c:3548 ++#: cp/name-lookup.c:3530 + msgid " first declared as `%#D' here" + msgstr "" + +-#: cp/name-lookup.c:3551 ++#: cp/name-lookup.c:3533 + msgid " also declared as `%#D' here" + msgstr "" + +-#: cp/name-lookup.c:3566 ++#: cp/name-lookup.c:3548 + msgid "`%D' denotes an ambiguous type" + msgstr "" + +-#: cp/name-lookup.c:3567 ++#: cp/name-lookup.c:3549 + msgid "%J first type here" + msgstr "" + +-#: cp/name-lookup.c:3568 ++#: cp/name-lookup.c:3550 + msgid "%J other type here" + msgstr "" + + #. This happens for A::B where B is a template, and there are no + #. template arguments. +-#: cp/name-lookup.c:3633 cp/typeck.c:1792 ++#: cp/name-lookup.c:3615 cp/typeck.c:1792 + msgid "invalid use of `%D'" + msgstr "" + +-#: cp/name-lookup.c:3674 ++#: cp/name-lookup.c:3656 + msgid "`%D::%D' is not a template" + msgstr "" + +-#: cp/name-lookup.c:3691 ++#: cp/name-lookup.c:3673 + msgid "`%D' undeclared in namespace `%D'" + msgstr "" + +-#: cp/name-lookup.c:4153 ++#: cp/name-lookup.c:4135 + msgid "`%D' is not a function," + msgstr "" + +-#: cp/name-lookup.c:4154 ++#: cp/name-lookup.c:4136 + msgid " conflict with `%D'" + msgstr "" + +-#: cp/name-lookup.c:4911 ++#: cp/name-lookup.c:4893 + msgid "XXX entering pop_everything ()\n" + msgstr "" + +-#: cp/name-lookup.c:4920 ++#: cp/name-lookup.c:4902 + msgid "XXX leaving pop_everything ()\n" + msgstr "" + +@@ -15560,7 +15608,7 @@ + msgid "`%D::%D' has not been declared" + msgstr "»%D::%D« wurde nicht deklariert" + +-#: cp/parser.c:1809 cp/semantics.c:2308 ++#: cp/parser.c:1809 cp/semantics.c:2305 + msgid "`::%D' has not been declared" + msgstr "»::%D« wurde nicht deklariert" + +@@ -15584,7 +15632,7 @@ + msgid "new types may not be defined in a return type" + msgstr "" + +-#: cp/parser.c:1888 cp/pt.c:4196 ++#: cp/parser.c:1888 cp/pt.c:4238 + msgid "`%T' is not a template" + msgstr "" + +@@ -15632,179 +15680,179 @@ + msgid "typedef-name `%D' used as destructor declarator" + msgstr "" + +-#: cp/parser.c:3638 ++#: cp/parser.c:3648 + msgid "ISO C++ forbids compound-literals" + msgstr "ISO-C++ verbietet zusammengesetzte Literale" + +-#: cp/parser.c:4461 ++#: cp/parser.c:4498 + msgid "array bound forbidden after parenthesized type-id" + msgstr "Feldgrenze hinter geklammerter type-id ist verboten" + +-#: cp/parser.c:4462 ++#: cp/parser.c:4499 + msgid "try removing the parentheses around the type-id" + msgstr "" + +-#: cp/parser.c:4624 ++#: cp/parser.c:4661 + msgid "expression in new-declarator must have integral or enumeration type" + msgstr "" + +-#: cp/parser.c:4805 ++#: cp/parser.c:4842 + msgid "use of old-style cast" + msgstr "" + +-#: cp/parser.c:5550 ++#: cp/parser.c:5587 + #, c-format + msgid "case label `%E' not within a switch statement" + msgstr "" + +-#: cp/parser.c:6092 ++#: cp/parser.c:6130 + msgid "ISO C++ forbids computed gotos" + msgstr "" + +-#: cp/parser.c:6212 ++#: cp/parser.c:6250 + msgid "extra `;'" + msgstr "" + +-#: cp/parser.c:6507 ++#: cp/parser.c:6545 + msgid "mixing declarations and function-definitions is forbidden" + msgstr "" + +-#: cp/parser.c:6645 ++#: cp/parser.c:6683 + msgid "duplicate `friend'" + msgstr "doppeltes »friend«" + +-#: cp/parser.c:6794 ++#: cp/parser.c:6832 + msgid "class definition may not be declared a friend" + msgstr "" + +-#: cp/parser.c:7109 ++#: cp/parser.c:7147 + msgid "only constructors take base initializers" + msgstr "" + +-#: cp/parser.c:7160 ++#: cp/parser.c:7198 + msgid "anachronistic old-style base class initializer" + msgstr "" + +-#: cp/parser.c:7201 ++#: cp/parser.c:7239 + msgid "keyword `typename' not allowed in this context (a qualified member initializer is implicitly a type)" + msgstr "" + + #. Warn that we do not support `export'. +-#: cp/parser.c:7563 ++#: cp/parser.c:7601 + msgid "keyword `export' not implemented, and will be ignored" + msgstr "" + + #. Otherwise, emit an error about the invalid digraph, but continue + #. parsing because we got our argument list. +-#: cp/parser.c:7923 ++#: cp/parser.c:7961 + msgid "`<::' cannot begin a template-argument list" + msgstr "" + +-#: cp/parser.c:7924 ++#: cp/parser.c:7962 + msgid "`<:' is an alternate spelling for `['. Insert whitespace between `<' and `::'" + msgstr "" + +-#: cp/parser.c:7931 ++#: cp/parser.c:7969 + msgid "(if you use `-fpermissive' G++ will accept your code)" + msgstr "" + + #. Explain what went wrong. +-#: cp/parser.c:8106 ++#: cp/parser.c:8145 + msgid "non-template `%D' used as template" + msgstr "" + +-#: cp/parser.c:8107 ++#: cp/parser.c:8146 + msgid "use `%T::template %D' to indicate that it is a template" + msgstr "" + +-#: cp/parser.c:9058 ++#: cp/parser.c:9102 + msgid "using `typename' outside of template" + msgstr "" + +-#: cp/parser.c:9180 ++#: cp/parser.c:9224 + msgid "expected type-name" + msgstr "" + +-#: cp/parser.c:9239 ++#: cp/parser.c:9283 + msgid "type attributes are honored only at type definition" + msgstr "" + + #. [namespace.udecl] + #. + #. A using declaration shall not name a template-id. +-#: cp/parser.c:9622 ++#: cp/parser.c:9666 + msgid "a template-id may not appear in a using-declaration" + msgstr "" + +-#: cp/parser.c:9949 ++#: cp/parser.c:9986 + msgid "an asm-specification is not allowed on a function-definition" + msgstr "" + +-#: cp/parser.c:9951 ++#: cp/parser.c:9988 + msgid "attributes are not allowed on a function-definition" + msgstr "bei einer Funktionsdefinition sind keine Attribute erlaubt" + +-#: cp/parser.c:10084 ++#: cp/parser.c:10121 + msgid "attributes after parenthesized initializer ignored" + msgstr "Attribute hinter geklammerter Initialisierung werden ignoriert" + +-#: cp/parser.c:10540 ++#: cp/parser.c:10591 + msgid "`%T::%D' is not a type" + msgstr "»%T::%D« ist kein Typ" + +-#: cp/parser.c:11288 ++#: cp/parser.c:11341 + msgid "file ends in default argument" + msgstr "" + +-#: cp/parser.c:11344 ++#: cp/parser.c:11397 + msgid "deprecated use of default argument for parameter of non-function" + msgstr "" + +-#: cp/parser.c:11347 ++#: cp/parser.c:11400 + msgid "default arguments are only permitted for function parameters" + msgstr "" + +-#: cp/parser.c:12078 ++#: cp/parser.c:12166 + msgid "declaration of `%D' in `%D' which does not enclose `%D'" + msgstr "" + +-#: cp/parser.c:12091 ++#: cp/parser.c:12179 + msgid "extra qualification ignored" + msgstr "" + +-#: cp/parser.c:12102 ++#: cp/parser.c:12190 + msgid "an explicit specialization must be preceded by 'template <>'" + msgstr "" + +-#: cp/parser.c:12385 ++#: cp/parser.c:12473 + msgid "extra semicolon" + msgstr "" + +-#: cp/parser.c:12403 ++#: cp/parser.c:12491 + msgid "a class-key must be used when declaring a friend" + msgstr "" + +-#: cp/parser.c:12434 ++#: cp/parser.c:12522 + msgid "friend declaration does not name a class or function" + msgstr "»friend«-Deklaration benennt keine Klasse oder Funktion" + +-#: cp/parser.c:12605 ++#: cp/parser.c:12694 + msgid "pure-specifier on function-definition" + msgstr "" + +-#: cp/parser.c:12878 ++#: cp/parser.c:12967 + msgid "keyword `typename' not allowed outside of templates" + msgstr "" + +-#: cp/parser.c:12880 ++#: cp/parser.c:12969 + msgid "keyword `typename' not allowed in this context (the base class is implicitly a type)" + msgstr "" + +-#: cp/parser.c:13700 ++#: cp/parser.c:13790 + msgid "reference to `%D' is ambiguous" + msgstr "" + +-#: cp/parser.c:13874 ++#: cp/parser.c:13964 + msgid "too few template-parameter-lists" + msgstr "" + +@@ -15812,44 +15860,44 @@ + #. something like: + #. + #. template template void S::f(); +-#: cp/parser.c:13889 ++#: cp/parser.c:13979 + msgid "too many template-parameter-lists" + msgstr "" + + #. If begin_function_definition didn't like the definition, skip + #. the entire function. +-#: cp/parser.c:14185 ++#: cp/parser.c:14275 + msgid "invalid function declaration" + msgstr "ungültige Funktionsdeklaration" + + #. Issue an error message. +-#: cp/parser.c:14222 ++#: cp/parser.c:14312 + msgid "named return values are no longer supported" + msgstr "benannte Rückgabewerte werden nicht mehr unterstützt" + +-#: cp/parser.c:14561 ++#: cp/parser.c:14651 + msgid "`>>' should be `> >' within a nested template argument list" + msgstr "" + + #. If this is not a nested template argument list, the '>>' is + #. a typo for '>'. Emit an error message and continue. +-#: cp/parser.c:14569 ++#: cp/parser.c:14659 + msgid "spurious `>>', use `>' to terminate a template argument list" + msgstr "" + +-#: cp/parser.c:14574 ++#: cp/parser.c:14664 + msgid "missing `>' to terminate the template argument list" + msgstr "fehlendes '>', um Templateargumentliste zu beenden" + +-#: cp/parser.c:15062 ++#: cp/parser.c:15149 + msgid "`%s' tag used in naming `%#T'" + msgstr "" + +-#: cp/parser.c:15082 ++#: cp/parser.c:15169 + msgid "%D redeclared with different access" + msgstr "%D mit anderem Zugriff redeklariert" + +-#: cp/parser.c:15099 ++#: cp/parser.c:15186 + msgid "`template' (as a disambiguator) is only allowed within templates" + msgstr "" + +@@ -15869,81 +15917,85 @@ + msgid "enclosing class templates are not explicitly specialized" + msgstr "" + +-#: cp/pt.c:739 cp/pt.c:780 +-msgid "specializing `%#T' in different namespace" +-msgstr "" ++#: cp/pt.c:733 ++msgid "specialization of `%D' in different namespace" ++msgstr "Spezialisierung von »%D« in anderem Namespace" + +-#: cp/pt.c:740 cp/pt.c:781 ++#: cp/pt.c:734 cp/pt.c:803 + msgid " from definition of `%#D'" + msgstr "" + +-#: cp/pt.c:748 ++#: cp/pt.c:770 + msgid "specialization of `%T' after instantiation" + msgstr "" + +-#: cp/pt.c:795 ++#: cp/pt.c:802 ++msgid "specializing `%#T' in different namespace" ++msgstr "" ++ ++#: cp/pt.c:817 + msgid "specialization `%T' after instantiation `%T'" + msgstr "" + +-#: cp/pt.c:807 ++#: cp/pt.c:829 + msgid "explicit specialization of non-template `%T'" + msgstr "" + +-#: cp/pt.c:1067 ++#: cp/pt.c:1089 + msgid "specialization of %D after instantiation" + msgstr "" + +-#: cp/pt.c:1192 ++#: cp/pt.c:1220 + msgid "%s %+#D" + msgstr "" + +-#: cp/pt.c:1241 ++#: cp/pt.c:1269 + msgid "`%D' is not a function template" + msgstr "" + +-#: cp/pt.c:1389 ++#: cp/pt.c:1417 + msgid "template-id `%D' for `%+D' does not match any template declaration" + msgstr "" + +-#: cp/pt.c:1397 ++#: cp/pt.c:1425 + msgid "ambiguous template specialization `%D' for `%+D'" + msgstr "" + + #. This case handles bogus declarations like template <> + #. template void f(); +-#: cp/pt.c:1620 cp/pt.c:1694 ++#: cp/pt.c:1648 cp/pt.c:1722 + msgid "template-id `%D' in declaration of primary template" + msgstr "" + +-#: cp/pt.c:1633 ++#: cp/pt.c:1661 + msgid "template parameter list used in explicit instantiation" + msgstr "" + +-#: cp/pt.c:1639 ++#: cp/pt.c:1667 + msgid "definition provided for explicit instantiation" + msgstr "" + +-#: cp/pt.c:1645 ++#: cp/pt.c:1673 + msgid "too many template parameter lists in declaration of `%D'" + msgstr "" + +-#: cp/pt.c:1661 ++#: cp/pt.c:1689 + msgid "too few template parameter lists in declaration of `%D'" + msgstr "" + +-#: cp/pt.c:1678 ++#: cp/pt.c:1706 + msgid "explicit specialization not preceded by `template <>'" + msgstr "" + +-#: cp/pt.c:1691 ++#: cp/pt.c:1719 + msgid "partial specialization `%D' of function template" + msgstr "" + +-#: cp/pt.c:1723 ++#: cp/pt.c:1751 + msgid "default argument specified in explicit specialization" + msgstr "" + +-#: cp/pt.c:1727 ++#: cp/pt.c:1755 + msgid "template specialization with C linkage" + msgstr "" + +@@ -15955,655 +16007,672 @@ + #. program is ill-formed. + #. + #. Similar language is found in [temp.explicit]. +-#: cp/pt.c:1811 ++#: cp/pt.c:1839 + msgid "specialization of implicitly-declared special member function" + msgstr "" + +-#: cp/pt.c:1855 ++#: cp/pt.c:1883 + msgid "no member function `%D' declared in `%T'" + msgstr "" + + #. There are two many template parameter lists. +-#: cp/pt.c:2005 ++#: cp/pt.c:2033 + msgid "too many template parameter lists in declaration of `%T'" + msgstr "" + +-#: cp/pt.c:2098 ++#: cp/pt.c:2126 + msgid " shadows template parm `%#D'" + msgstr "" + +-#: cp/pt.c:2495 ++#: cp/pt.c:2523 + msgid "template parameters not used in partial specialization:" + msgstr "" + +-#: cp/pt.c:2499 ++#: cp/pt.c:2527 + msgid " `%D'" + msgstr "" + +-#: cp/pt.c:2511 ++#: cp/pt.c:2539 + msgid "partial specialization `%T' does not specialize any template arguments" + msgstr "" + +-#: cp/pt.c:2536 ++#: cp/pt.c:2564 + #, c-format + msgid "template argument `%E' involves template parameter(s)" + msgstr "" + +-#: cp/pt.c:2580 ++#: cp/pt.c:2608 + msgid "type `%T' of template argument `%E' depends on template parameter(s)" + msgstr "" + +-#: cp/pt.c:2665 ++#: cp/pt.c:2693 + msgid "no default argument for `%D'" + msgstr "" + +-#: cp/pt.c:2814 ++#: cp/pt.c:2842 + msgid "template with C linkage" +-msgstr "" ++msgstr "Template mit C-Bindung" + +-#: cp/pt.c:2817 ++#: cp/pt.c:2845 + msgid "template class without a name" +-msgstr "" ++msgstr "Templateklasse ohne Namen" + + #. [temp.mem] + #. + #. A destructor shall not be a member template. +-#: cp/pt.c:2824 ++#: cp/pt.c:2853 + msgid "destructor `%D' declared as member template" + msgstr "Destruktor »%D« als Element-Template deklariert" + +-#: cp/pt.c:2904 ++#. [basic.stc.dynamic.allocation] ++#. ++#. An allocation function can be a function ++#. template. ... Template allocation functions shall ++#. have two or more parameters. ++#: cp/pt.c:2868 ++msgid "invalid template declaration of `%D'" ++msgstr "ungültige Templatedeklaration von »%D«" ++ ++#: cp/pt.c:2948 + msgid "`%D' does not declare a template type" +-msgstr "" ++msgstr "»%D« deklariert keinen Template-Typen" + +-#: cp/pt.c:2910 ++#: cp/pt.c:2954 + msgid "template definition of non-template `%#D'" +-msgstr "" ++msgstr "Template-Definition eines Nicht-Templates »%#D«" + +-#: cp/pt.c:2951 ++#: cp/pt.c:2995 + msgid "expected %d levels of template parms for `%#D', got %d" +-msgstr "" ++msgstr "%d Ebenen von Template-Parametern für »%#D« erwartet, %d erhalten" + +-#: cp/pt.c:2963 ++#: cp/pt.c:3007 + msgid "got %d template parameters for `%#D'" +-msgstr "" ++msgstr "%d Template-Parameter für »%#D« erhalten" + +-#: cp/pt.c:2966 ++#: cp/pt.c:3010 + msgid "got %d template parameters for `%#T'" +-msgstr "" ++msgstr "%d Template-Parameter für »%#T« erhalten" + +-#: cp/pt.c:2968 ++#: cp/pt.c:3012 + #, c-format + msgid " but %d required" +-msgstr "" ++msgstr " aber %d benötigt" + +-#: cp/pt.c:3053 ++#: cp/pt.c:3097 + msgid "`%T' is not a template type" +-msgstr "" ++msgstr "»%T« ist kein Template-Typ" + +-#: cp/pt.c:3069 ++#: cp/pt.c:3113 + msgid "previous declaration `%D'" +-msgstr "" ++msgstr "vorherige Deklaration »%D«" + +-#: cp/pt.c:3070 ++#: cp/pt.c:3114 + #, c-format + msgid "used %d template parameter%s instead of %d" +-msgstr "" ++msgstr "%d Template-Parameter%.0s statt %d verwendet" + +-#: cp/pt.c:3086 ++#: cp/pt.c:3130 + msgid "template parameter `%#D'" +-msgstr "" ++msgstr "Template-Parameter »%#D«" + +-#: cp/pt.c:3087 ++#: cp/pt.c:3131 + msgid "redeclared here as `%#D'" +-msgstr "" ++msgstr "hier als »%#D« redeklariert" + + #. We have in [temp.param]: + #. + #. A template-parameter may not be given default arguments + #. by two different declarations in the same scope. +-#: cp/pt.c:3097 ++#: cp/pt.c:3141 + msgid "redefinition of default argument for `%#D'" +-msgstr "" ++msgstr "Redefinition des Standardarguments für »%#D«" + +-#: cp/pt.c:3098 ++#: cp/pt.c:3142 + msgid "%J original definition appeared here" + msgstr "%J ursprüngliche Definition trat hier auf" + +-#: cp/pt.c:3246 ++#: cp/pt.c:3288 + #, c-format + msgid "`%E' is not a valid template argument" +-msgstr "" ++msgstr "»%E« ist kein gültiges Templateargument" + +-#: cp/pt.c:3250 ++#: cp/pt.c:3292 + msgid "it must be the address of a function with external linkage" +-msgstr "" ++msgstr "es muss die Adresse einer Funktion mit externer Bindung sein" + +-#: cp/pt.c:3252 ++#: cp/pt.c:3294 + msgid "it must be the address of an object with external linkage" +-msgstr "" ++msgstr "es muss die Adresse eines Objektes mit externer Bindung sein" + +-#: cp/pt.c:3255 ++#: cp/pt.c:3297 + msgid "it must be a pointer-to-member of the form `&X::Y'" +-msgstr "" ++msgstr "es muss ein Zeiger auf ein Element der Form »&X::Y« sein" + +-#: cp/pt.c:3266 ++#: cp/pt.c:3308 + #, c-format + msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage" +-msgstr "" ++msgstr "Zeichenkettensymbol %E ist kein gültiges Templateargument, weil es die Adresse eines Objektes mit statischer Bindung ist" + +-#: cp/pt.c:3281 ++#: cp/pt.c:3323 + #, c-format + msgid "address of non-extern `%E' cannot be used as template argument" +-msgstr "" ++msgstr "Adresse des nicht externen »%E« kann nicht als Template-Argument verwendet werden" + +-#: cp/pt.c:3290 ++#: cp/pt.c:3332 + #, c-format + msgid "non-constant `%E' cannot be used as template argument" +-msgstr "" ++msgstr "Nicht-Konstante »%E« kann nicht als Template-Argument verwendet werden" + +-#: cp/pt.c:3298 ++#: cp/pt.c:3340 + msgid "type '%T' cannot be used as a value for a non-type template-parameter" +-msgstr "" ++msgstr "Typ »%T« kann nicht als Wert für Nicht-Typ-Templateparameter verwendet werden" + +-#: cp/pt.c:3301 ++#: cp/pt.c:3343 + msgid "invalid use of '%D' as a non-type template-argument" +-msgstr "" ++msgstr "ungültige Verwendung von »%D« als ein Nicht-Typ-Templateargument" + +-#: cp/pt.c:3303 ++#: cp/pt.c:3345 + #, c-format + msgid "invalid use of '%E' as a non-type template-argument" +-msgstr "" ++msgstr "ungültige Verwendung von »%E« als ein Nicht-Typ-Templateargument" + +-#: cp/pt.c:3668 ++#: cp/pt.c:3710 + #, c-format + msgid "to refer to a type member of a template parameter, use `typename %E'" +-msgstr "" ++msgstr "um auf ein Typelement eines Templateparameters zu verweisen, »typename %E« verwenden" + +-#: cp/pt.c:3681 cp/pt.c:3699 cp/pt.c:3738 ++#: cp/pt.c:3723 cp/pt.c:3741 cp/pt.c:3780 + msgid "type/value mismatch at argument %d in template parameter list for `%D'" +-msgstr "" ++msgstr "Typ/Wert des Arguments %d passt nicht in Template-Parameterliste für »%D«" + +-#: cp/pt.c:3684 ++#: cp/pt.c:3726 + msgid " expected a constant of type `%T', got `%T'" +-msgstr "" ++msgstr " Konstante des Typs »%T« erwartet, »%T« erhalten" + +-#: cp/pt.c:3688 ++#: cp/pt.c:3730 + #, c-format + msgid " expected a class template, got `%E'" +-msgstr "" ++msgstr " Klassentemplate erwartet, »%E« erhalten" + +-#: cp/pt.c:3690 ++#: cp/pt.c:3732 + #, c-format + msgid " expected a type, got `%E'" +-msgstr "" ++msgstr " einen Typ erwartet, »%E« erhalten" + +-#: cp/pt.c:3702 ++#: cp/pt.c:3744 + msgid " expected a type, got `%T'" +-msgstr "" ++msgstr " einen Typ erwartet, »%T« erhalten" + +-#: cp/pt.c:3704 ++#: cp/pt.c:3746 + msgid " expected a class template, got `%T'" +-msgstr "" ++msgstr " Klassentemplate erwartet, »%T« erhalten" + +-#: cp/pt.c:3740 ++#: cp/pt.c:3782 + msgid " expected a template of type `%D', got `%D'" +-msgstr "" ++msgstr " ein Template des Typs »%D« erwartet, »%D« erhalten" + +-#: cp/pt.c:3775 ++#: cp/pt.c:3817 + msgid "could not convert template argument `%E' to `%T'" +-msgstr "" ++msgstr "Templateargument »%E« konnte nicht in »%T« umgewandelt werden" + +-#: cp/pt.c:3815 ++#: cp/pt.c:3857 + #, c-format + msgid "wrong number of template arguments (%d, should be %d)" +-msgstr "" ++msgstr "falsche Anzahl der Templateargumente (%d, sollte %d sein)" + +-#: cp/pt.c:3819 ++#: cp/pt.c:3861 + msgid "provided for `%D'" +-msgstr "" ++msgstr "für »%D« bereitgestellt" + +-#: cp/pt.c:3847 ++#: cp/pt.c:3889 + #, c-format + msgid "template argument %d is invalid" +-msgstr "" ++msgstr "Templateargument %d ist ungültig" + +-#: cp/pt.c:4068 ++#: cp/pt.c:4110 + msgid "non-template used as template" +-msgstr "" ++msgstr "Nicht-Template als Template verwendet" + +-#: cp/pt.c:4208 ++#: cp/pt.c:4250 + msgid "non-template type `%T' used as a template" +-msgstr "" ++msgstr "Nicht-Template-Typ »%T« als Template verwendet" + +-#: cp/pt.c:4210 ++#: cp/pt.c:4252 + msgid "for template declaration `%D'" +-msgstr "" ++msgstr "Für Template-Deklaration »%D«" + +-#: cp/pt.c:4857 ++#: cp/pt.c:4899 + msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'" +-msgstr "" ++msgstr "Instanziierungstiefe für Templates überschreitet Höchstwert %d (-ftemplate-depth-NN verwenden, um dies zu erhöhen) bei Instanziierung von »%D«" + +-#: cp/pt.c:5296 ++#: cp/pt.c:5338 + msgid "ambiguous class template instantiation for `%#T'" +-msgstr "" ++msgstr "mehrdeutige Klassentemplate-Instanziierung für »%#T«" + +-#: cp/pt.c:5302 ++#: cp/pt.c:5344 + msgid "%s %+#T" +-msgstr "" ++msgstr "%s %+#T" + +-#: cp/pt.c:6308 cp/pt.c:6428 ++#: cp/pt.c:6382 + msgid "instantiation of `%D' as type `%T'" +-msgstr "" ++msgstr "Instanziierung von »%D« als Typ »%T«" + +-#: cp/pt.c:6470 ++#: cp/pt.c:6542 + msgid "invalid parameter type `%T'" +-msgstr "" ++msgstr "ungültiger Parametertyp »%T«" + +-#: cp/pt.c:6472 ++#: cp/pt.c:6544 + msgid "in declaration `%D'" +-msgstr "" ++msgstr "in Deklaration »%D«" + +-#: cp/pt.c:6546 ++#: cp/pt.c:6618 + msgid "creating pointer to member function of non-class type `%T'" +-msgstr "" ++msgstr "Erzeugung eines Zeigers auf Elementfunktion des Nicht-Klassentyps »%T«" + +-#: cp/pt.c:6685 ++#: cp/pt.c:6758 + msgid "creating array with size zero" +-msgstr "" ++msgstr "Feld der Größe null wird erzeugt" + +-#: cp/pt.c:6699 ++#: cp/pt.c:6772 + #, c-format + msgid "creating array with size zero (`%E')" +-msgstr "" ++msgstr "Feld der Größe null (»%E«) wird erzeugt" + +-#: cp/pt.c:6938 ++#: cp/pt.c:7011 + msgid "forming reference to void" +-msgstr "" ++msgstr "Referenz auf »void« wird gebildet" + +-#: cp/pt.c:6940 ++#: cp/pt.c:7013 + msgid "forming %s to reference type `%T'" +-msgstr "" ++msgstr "%s wird in Referenztyp »%T« umgeformt" + +-#: cp/pt.c:6977 ++#: cp/pt.c:7050 + msgid "creating pointer to member of non-class type `%T'" +-msgstr "" ++msgstr "Zeiger auf Element des Nicht-Klassentypen »%T« wird erzeugt" + +-#: cp/pt.c:6983 ++#: cp/pt.c:7056 + msgid "creating pointer to member reference type `%T'" +-msgstr "" ++msgstr "Zeiger auf Elementreferenztyp »%T« wird erzeugt" + +-#: cp/pt.c:7069 ++#: cp/pt.c:7142 + msgid "creating array of `%T'" +-msgstr "" ++msgstr "Feld von »%T« wird erzeugt" + +-#: cp/pt.c:7075 ++#: cp/pt.c:7148 + msgid "creating array of `%T', which is an abstract class type" +-msgstr "" ++msgstr "Feld von »%T« wird erzeugt, was ein abstrakter Klassentyp ist" + +-#: cp/pt.c:7119 ++#: cp/pt.c:7192 + msgid "`%T' is not a class, struct, or union type" +-msgstr "" ++msgstr "»%T« ist kein Klassen-, Struktur- oder Union-Typ" + +-#: cp/pt.c:7232 ++#: cp/pt.c:7305 + #, c-format + msgid "use of `%s' in template" +-msgstr "" ++msgstr "Verwendung von »%s« in Template" + +-#: cp/pt.c:7345 ++#: cp/pt.c:7418 + #, c-format + msgid "dependent-name `%E' is parsed as a non-type, but instantiation yields a type" +-msgstr "" ++msgstr "Abhängigenname »%E« wird als Nicht-Typ erkannt, aber die Instanziierung liefert Typ" + +-#: cp/pt.c:7347 ++#: cp/pt.c:7420 + #, c-format + msgid "say `typename %E' if a type is meant" +-msgstr "" ++msgstr "»typename %E« sagen, wenn ein Typ gemeint ist" ++ ++#: cp/pt.c:8589 ++msgid "`%T' is not a class or namespace" ++msgstr "»%T« ist keine Klasse oder Namensbereich" + +-#: cp/pt.c:8613 ++#: cp/pt.c:8592 ++msgid "`%D' is not a class or namespace" ++msgstr "»%D« ist keine Klasse oder Namensbereich" ++ ++#: cp/pt.c:8709 + msgid "`%T' uses anonymous type" + msgstr "»%T« verwendet anonymen Typen" + +-#: cp/pt.c:8615 ++#: cp/pt.c:8711 + msgid "`%T' uses local type `%T'" + msgstr "»%T« verwendet lokalen Typen »%T«" + +-#: cp/pt.c:8623 ++#: cp/pt.c:8719 + msgid "`%T' is a variably modified type" +-msgstr "" ++msgstr "»%T« ist ein variabel modifizierter Typ" + +-#: cp/pt.c:8634 ++#: cp/pt.c:8730 + #, c-format + msgid "integral expression `%E' is not constant" + msgstr "Integralausdruck »%E« ist nicht konstant" + +-#: cp/pt.c:8639 ++#: cp/pt.c:8735 + msgid " trying to instantiate `%D'" +-msgstr "" ++msgstr " Versuch, »%D« zu instanziieren" + +-#: cp/pt.c:9156 ++#: cp/pt.c:9252 + msgid "incomplete type unification" +-msgstr "" ++msgstr "unvollständige Typvereinigung" + +-#: cp/pt.c:10112 ++#: cp/pt.c:10211 + #, c-format + msgid "use of `%s' in template type unification" +-msgstr "" ++msgstr "Verwendung von »%s« in Templatetyp-Vereinigung" + +-#: cp/pt.c:10546 cp/pt.c:10618 ++#: cp/pt.c:10644 cp/pt.c:10716 + msgid "explicit instantiation of non-template `%#D'" +-msgstr "" ++msgstr "explizite Instanziierung des Nicht-Templates »%#D«" + +-#: cp/pt.c:10562 cp/pt.c:10613 ++#: cp/pt.c:10660 cp/pt.c:10711 + msgid "no matching template for `%D' found" +-msgstr "" ++msgstr "kein passendes Template für »%D« gefunden" + +-#: cp/pt.c:10568 ++#: cp/pt.c:10666 + msgid "explicit instantiation of `%#D'" +-msgstr "" ++msgstr "explizite Instanziierung von »%#D«" + +-#: cp/pt.c:10605 ++#: cp/pt.c:10703 + msgid "duplicate explicit instantiation of `%#D'" +-msgstr "" ++msgstr "doppelte explizite Instanziierung von »%#D«" + +-#: cp/pt.c:10627 ++#: cp/pt.c:10725 + msgid "ISO C++ forbids the use of `extern' on explicit instantiations" +-msgstr "" ++msgstr "ISO-C++ verbietet die Verwendung von »extern« bei expliziten Instanziierungen" + +-#: cp/pt.c:10631 cp/pt.c:10712 ++#: cp/pt.c:10729 cp/pt.c:10810 + msgid "storage class `%D' applied to template instantiation" +-msgstr "" ++msgstr "Speicherklasse »%D« auf Templateinstanziierung angewendet" + +-#: cp/pt.c:10684 ++#: cp/pt.c:10782 + msgid "explicit instantiation of non-template type `%T'" +-msgstr "" ++msgstr "explizite Instanziierung des Nicht-Templatetyps »%T«" + +-#: cp/pt.c:10693 ++#: cp/pt.c:10791 + msgid "explicit instantiation of `%#T' before definition of template" +-msgstr "" ++msgstr "explizite Instanziierung von »%#T« vor Definition des Templates" + +-#: cp/pt.c:10701 ++#: cp/pt.c:10799 + #, c-format + msgid "ISO C++ forbids the use of `%s' on explicit instantiations" +-msgstr "" ++msgstr "ISO-C++ verbietet die Verwendung von »%s« bei expliziten Instanziierungen" + +-#: cp/pt.c:10745 ++#: cp/pt.c:10843 + msgid "duplicate explicit instantiation of `%#T'" +-msgstr "" ++msgstr "doppelte explizite Instanziierung von »%#T«" + +-#: cp/pt.c:11126 ++#: cp/pt.c:11224 + msgid "explicit instantiation of `%D' but no definition available" +-msgstr "" ++msgstr "explizite Instanziierung von »%D«, aber keine Definition verfügbar" + +-#: cp/pt.c:11562 ++#: cp/pt.c:11660 + msgid "`%#T' is not a valid type for a template constant parameter" +-msgstr "" ++msgstr "»%#T« ist kein gültiger Typ für einen Templatekonstanten-Parameter" + + #: cp/repo.c:259 + msgid "-frepo must be used with -c" +-msgstr "" ++msgstr "-frepo muss mit -c verwendet werden" + + #: cp/repo.c:346 + #, c-format + msgid "mysterious repository information in %s" +-msgstr "" ++msgstr "rätselhafte Repository-Information in %s" + + #: cp/repo.c:361 + #, c-format + msgid "can't create repository information file `%s'" +-msgstr "" ++msgstr "Repository-Informationsdatei »%s« kann nicht erzeugt werden" + + #: cp/rtti.c:248 + msgid "cannot use typeid with -fno-rtti" +-msgstr "" ++msgstr "typeid kann nicht mit -fno-rtti verwendet werden" + + #: cp/rtti.c:254 + msgid "must #include before using typeid" +-msgstr "" ++msgstr "vor Verwendung von typeid muss #include angegeben werden" + + #: cp/rtti.c:326 + msgid "cannot create type information for type `%T' because its size is variable" +-msgstr "" ++msgstr "für Typ »%T« kann keine Typinformation erzeugt werden, weil seine Größe variabel ist" + + #: cp/rtti.c:580 cp/rtti.c:594 + msgid "dynamic_cast of `%#D' to `%#T' can never succeed" +-msgstr "" ++msgstr "dynamic_cast von »%#D« nach »%#T« kann nie erfolgreich sein" + + #: cp/rtti.c:674 + msgid "cannot dynamic_cast `%E' (of type `%#T') to type `%#T' (%s)" +-msgstr "" ++msgstr "dynamic_cast »%E« (des Typs »%#T«) in Typ »%#T« (%s) kann nicht vorgenommen werden" + + #: cp/search.c:311 + msgid "`%T' is an ambiguous base of `%T'" +-msgstr "" ++msgstr "»%T« ist mehrdeutige Basis von »%T«" + + #: cp/search.c:329 + msgid "`%T' is an inaccessible base of `%T'" +-msgstr "" ++msgstr "»%T« ist eine nicht erreichbare Basis von »%T«" + +-#: cp/search.c:1767 ++#: cp/search.c:1805 + msgid "invalid covariant return type for `%#D'" +-msgstr "" ++msgstr "ungültiger kovarianter Rückgabetyp für »%#D«" + +-#: cp/search.c:1768 cp/search.c:1774 ++#: cp/search.c:1806 cp/search.c:1812 + msgid " overriding `%#D'" +-msgstr "" ++msgstr " »%#D« wird überschrieben" + +-#: cp/search.c:1772 ++#: cp/search.c:1810 + msgid "conflicting return type specified for `%#D'" +-msgstr "" ++msgstr "in Konflikt stehende Rückgabetypen für »%#D« angegeben" + +-#: cp/search.c:1786 ++#: cp/search.c:1824 + #, c-format + msgid "looser throw specifier for `%#F'" +-msgstr "" ++msgstr "loser »throw«-Spezifizierer für »%#F«" + +-#: cp/search.c:1787 ++#: cp/search.c:1825 + #, c-format + msgid " overriding `%#F'" +-msgstr "" ++msgstr " »%#F« wird überschrieben" + + #. A static member function cannot match an inherited + #. virtual member function. +-#: cp/search.c:1877 ++#: cp/search.c:1915 + msgid "`%#D' cannot be declared" +-msgstr "" ++msgstr "»%#D« kann nicht deklariert werden" + +-#: cp/search.c:1878 ++#: cp/search.c:1916 + msgid " since `%#D' declared in base class" +-msgstr "" ++msgstr " denn »%#D« ist in Basisklasse deklariert" + +-#: cp/search.c:1955 ++#: cp/search.c:1993 + msgid "`%#D' needs a final overrider" +-msgstr "" ++msgstr "»%#D« muss ein endgültiger Ãœberschreiber sein" + + #: cp/semantics.c:1092 + #, c-format + msgid "type of asm operand `%E' could not be determined" +-msgstr "" ++msgstr "Typ des asm-Operanden »%E« konnte nicht ermittelt werden" + + #: cp/semantics.c:1233 + msgid "invalid use of member `%D' in static member function" +-msgstr "" ++msgstr "ungültige Verwendung des Elementes »%D« in statischer Elementfunktion" + + #: cp/semantics.c:1237 cp/semantics.c:1276 + msgid "from this location" +-msgstr "" ++msgstr "von dieser Stelle" + + #: cp/semantics.c:1275 + msgid "object missing in reference to `%D'" + msgstr "Objekt fehlt in Referenz auf »%D«" + +-#: cp/semantics.c:1721 ++#: cp/semantics.c:1718 + msgid "arguments to destructor are not allowed" +-msgstr "" ++msgstr "Argumente für Destruktor sind nicht erlaubt" + +-#: cp/semantics.c:1770 ++#: cp/semantics.c:1767 + msgid "`this' is unavailable for static member functions" +-msgstr "" ++msgstr "»this« ist für statische Elementfunktionen nicht verfügbar" + +-#: cp/semantics.c:1776 ++#: cp/semantics.c:1773 + msgid "invalid use of `this' in non-member function" +-msgstr "" ++msgstr "ungültige Verwendung von »this« in Nicht-Element-Funktion" + +-#: cp/semantics.c:1778 ++#: cp/semantics.c:1775 + msgid "invalid use of `this' at top level" +-msgstr "" ++msgstr "ungültige Verwendung von »this« auf höchster Ebene" + +-#: cp/semantics.c:1802 ++#: cp/semantics.c:1799 + msgid "invalid qualifying scope in pseudo-destructor name" +-msgstr "" ++msgstr "ungültiger angegebener Gültigkeitsbereich in Pseudodestruktor-Name" + +-#: cp/semantics.c:1822 ++#: cp/semantics.c:1819 + msgid "`%E' is not of type `%T'" +-msgstr "" ++msgstr "»%E« ist nicht vom Typ »%T«" + +-#: cp/semantics.c:1933 ++#: cp/semantics.c:1930 + msgid "template type parameters must use the keyword `class' or `typename'" +-msgstr "" ++msgstr "Templatetypparameter müssen das Schlüsselwort »class« oder »typename« verwenden" + +-#: cp/semantics.c:1977 ++#: cp/semantics.c:1974 + msgid "invalid use of type `%T' as a default value for a template template-parameter" +-msgstr "" ++msgstr "ungültige Verwendung des Typs »%T« als Standardwert für einen Template-Templateparameter" + +-#: cp/semantics.c:1980 ++#: cp/semantics.c:1977 + msgid "invalid use of `%D' as a default value for a template template-parameter" +-msgstr "" ++msgstr "ungültige Verwendung von »%D« als Standardwert für einen Template-Templateparameter" + +-#: cp/semantics.c:1984 ++#: cp/semantics.c:1981 + msgid "invalid default argument for a template template parameter" +-msgstr "" ++msgstr "ungültiges Standardargument für einen Template-Templateparameter" + +-#: cp/semantics.c:2019 ++#: cp/semantics.c:2016 + msgid "definition of `%#T' inside template parameter list" +-msgstr "" ++msgstr "Definition von »%#T« in Templateparameterliste" + +-#: cp/semantics.c:2030 ++#: cp/semantics.c:2027 + msgid "invalid definition of qualified type `%T'" +-msgstr "" ++msgstr "ungültige Definition des qualifizierten Typen »%T«" + +-#: cp/semantics.c:2045 ++#: cp/semantics.c:2042 + msgid "previous definition of `%#T'" +-msgstr "" ++msgstr "vorherige Definition von »%#T«" + +-#: cp/semantics.c:2249 ++#: cp/semantics.c:2246 + msgid "invalid base-class specification" +-msgstr "" ++msgstr "ungültige Spezifizierung der Basisklasse" + +-#: cp/semantics.c:2258 ++#: cp/semantics.c:2255 + msgid "base class `%T' has cv qualifiers" +-msgstr "" ++msgstr "Basisklasse »%T« hat CV-Kennzeichner" + +-#: cp/semantics.c:2290 ++#: cp/semantics.c:2287 + msgid "multiple declarators in template declaration" +-msgstr "" ++msgstr "mehrere Deklarationen in Templatedeklaration" + +-#: cp/semantics.c:2301 ++#: cp/semantics.c:2298 + msgid "incomplete type `%T' used in nested name specifier" +-msgstr "" ++msgstr "unvollständiger Typ »%T« in geschachtelter Namensangabe verwendet" + +-#: cp/semantics.c:2303 cp/typeck.c:1635 ++#: cp/semantics.c:2300 cp/typeck.c:1635 + msgid "`%D' is not a member of `%T'" +-msgstr "" ++msgstr "»%D« ist kein Element von »%T«" + +-#: cp/semantics.c:2306 ++#: cp/semantics.c:2303 + msgid "`%D' is not a member of `%D'" + msgstr "»%D« ist kein Element von »%D«" + +-#: cp/semantics.c:2431 ++#: cp/semantics.c:2428 + msgid "template parameter `%D' of type `%T' is not allowed in an integral constant expression because it is not of integral or enumeration type" +-msgstr "" ++msgstr "Templateparameter »%D« vom Typ »%T« ist in ganzzahligem Konstantenausdruck nicht erlaubt, da er nicht Ganzzahl- oder Aufzählungstyp hat" + +-#: cp/semantics.c:2584 ++#: cp/semantics.c:2572 + msgid "`%D' cannot appear in a constant-expression" + msgstr "»%D« kann nicht in Konstanten-Ausdruck auftreten" + +-#: cp/semantics.c:2593 ++#: cp/semantics.c:2580 + msgid "use of namespace `%D' as expression" +-msgstr "" ++msgstr "Verwendung des Namespace »%D« als Ausdruck" + +-#: cp/semantics.c:2598 ++#: cp/semantics.c:2585 + msgid "use of class template `%T' as expression" +-msgstr "" ++msgstr "Verwendung des Klassentemplates »%T« als Ausdruck" + + #. Ambiguous reference to base members. +-#: cp/semantics.c:2604 ++#: cp/semantics.c:2591 + msgid "request for member `%D' is ambiguous in multiple inheritance lattice" +-msgstr "" ++msgstr "Abfrage des Elementes »%D« ist im Gitter der Mehrfachvererbung mehrdeutig" + +-#: cp/semantics.c:2664 ++#: cp/semantics.c:2652 + #, c-format + msgid "use of %s from containing function" +-msgstr "" ++msgstr "Verwendung von %s von enthaltener Funktion aus" + +-#: cp/semantics.c:2667 ++#: cp/semantics.c:2655 + msgid " `%#D' declared here" +-msgstr "" ++msgstr " »%#D« hier deklariert" + +-#: cp/semantics.c:2718 ++#: cp/semantics.c:2706 + #, c-format + msgid "type of `%E' is unknown" +-msgstr "" ++msgstr "Typ von »%E« ist unbekannt" + + #: cp/tree.c:226 + #, c-format + msgid "non-lvalue in %s" +-msgstr "" ++msgstr "Nicht-L-Wert in %s" + + #: cp/tree.c:532 + msgid "`%V' qualifiers cannot be applied to `%T'" +-msgstr "" ++msgstr "»%V«-Qualifizierer können nicht auf »%T« angewendet werden" + +-#: cp/tree.c:1821 ++#: cp/tree.c:1829 + #, c-format + msgid "`%s' attribute can only be applied to Java class definitions" +-msgstr "" ++msgstr "Attribut »%s« kann nur auf Java-Klassendefinitionen angewendet werden" + +-#: cp/tree.c:1850 ++#: cp/tree.c:1858 + #, c-format + msgid "`%s' attribute can only be applied to class definitions" +-msgstr "" ++msgstr "Attribut »%s« kann nur auf Klassendefinitionen angewendet werden" + +-#: cp/tree.c:1856 ++#: cp/tree.c:1864 + #, c-format + msgid "`%s' is obsolete; g++ vtables are now COM-compatible by default" +-msgstr "" ++msgstr "»%s« ist veraltet; g++-vtables sind jetzt standardmäßig COM-verträglich" + +-#: cp/tree.c:1880 ++#: cp/tree.c:1888 + msgid "requested init_priority is not an integer constant" +-msgstr "" ++msgstr "angefordertes init_priority ist keine Ganzzahlkonstante" + +-#: cp/tree.c:1901 ++#: cp/tree.c:1909 + #, c-format + msgid "can only use `%s' attribute on file-scope definitions of objects of class type" +-msgstr "" ++msgstr "nur Attribut »%s« kann für Definitionen von Objekten eines Klassentyps im Datei-Gültigkeitsbereich verwendet werden" + +-#: cp/tree.c:1909 ++#: cp/tree.c:1917 + msgid "requested init_priority is out of range" +-msgstr "" ++msgstr "angefordertes init_priority ist außerhalb des Wertebereiches" + +-#: cp/tree.c:1919 ++#: cp/tree.c:1927 + msgid "requested init_priority is reserved for internal use" +-msgstr "" ++msgstr "angefordertes init_priority ist für interne Verwendung reserviert" + +-#: cp/tree.c:1929 ++#: cp/tree.c:1937 + #, c-format + msgid "`%s' attribute is not supported on this platform" +-msgstr "" ++msgstr "Attribut »%s« wird auf dieser Plattform nicht unterstützt" + +-#: cp/tree.c:2524 ++#: cp/tree.c:2534 + #, c-format + msgid "lang_* check: failed in %s, at %s:%d" +-msgstr "" ++msgstr "Ãœberprüfung von lang_*: in %s, bei %s:%d gescheitert" + + #: cp/typeck.c:436 cp/typeck.c:450 cp/typeck.c:542 + msgid "%s between distinct pointer types `%T' and `%T' lacks a cast" +-msgstr "" ++msgstr "%s zwischen den verschiedenen Zeigertypen »%T« und »%T« benötigt Umwandlung" + + #: cp/typeck.c:512 + #, c-format + msgid "ISO C++ forbids %s between pointer of type `void *' and pointer-to-function" +-msgstr "" ++msgstr "ISO-C++ verbietet %s zwischen Zeiger des Typs »void *« und Zeiger auf Funktion" + + #: cp/typeck.c:562 + msgid "%s between distinct pointer-to-member types `%T' and `%T' lacks a cast" +@@ -16612,7 +16681,7 @@ + #: cp/typeck.c:1234 + #, c-format + msgid "invalid application of `%s' to a member function" +-msgstr "" ++msgstr "ungültige Anwendung von »%s« auf Elementfunktion" + + #: cp/typeck.c:1267 + #, c-format +@@ -16630,11 +16699,11 @@ + + #: cp/typeck.c:1494 + msgid "deprecated conversion from string constant to `%T'" +-msgstr "" ++msgstr "veraltete Konvertierung von Zeichenkettenkonstante in »%T«" + + #: cp/typeck.c:1606 cp/typeck.c:1897 + msgid "request for member `%D' in `%E', which is of non-class type `%T'" +-msgstr "" ++msgstr "Abfrage des Elementes »%D« in »%E«, das vom Nicht-Klassentyp »%T« ist" + + #: cp/typeck.c:1633 + #, c-format +@@ -16643,81 +16712,81 @@ + + #: cp/typeck.c:1685 cp/typeck.c:1707 + msgid "invalid access to non-static data member `%D' of NULL object" +-msgstr "" ++msgstr "ungültiger Zugriff auf nicht-statisches Datenelement »%D« des NULL-Objektes" + + #: cp/typeck.c:1687 cp/typeck.c:1709 + msgid "(perhaps the `offsetof' macro was used incorrectly)" +-msgstr "" ++msgstr "(vielleicht wurde das Makro »offsetof« falsch verwendet)" + + #: cp/typeck.c:1824 + msgid "the type being destroyed is `%T', but the destructor refers to `%T'" +-msgstr "" ++msgstr "der zerstörte Typ ist »%T«, aber der Destruktor verweist auf »%T«" + + #: cp/typeck.c:1947 + msgid "`%D::%D' is not a member of `%T'" +-msgstr "" ++msgstr "»%D::%D« ist kein Element von »%T«" + + #: cp/typeck.c:1958 + msgid "`%T' is not a base of `%T'" +-msgstr "" ++msgstr "»%T« ist keine Basis von »%T«" + + #: cp/typeck.c:1977 + msgid "'%D' has no member named '%E'" +-msgstr "" ++msgstr "»%D« hat kein Element namens »%E«" + + #: cp/typeck.c:1992 + msgid "`%D' is not a member template function" +-msgstr "" ++msgstr "»%D« ist keine Elementtemplatefunktion" + + #. A pointer to incomplete type (other than cv void) can be + #. dereferenced [expr.unary.op]/1 + #: cp/typeck.c:2098 + msgid "`%T' is not a pointer-to-object type" +-msgstr "" ++msgstr "»%T« ist kein Zeiger auf Objekt" + + #: cp/typeck.c:2123 + #, c-format + msgid "invalid use of `%s' on pointer to member" +-msgstr "" ++msgstr "ungültige Verwendung von »%s« bei Zeiger auf Element" + + #: cp/typeck.c:2129 + msgid "invalid type argument" +-msgstr "" ++msgstr "ungültiges Typargument" + + #: cp/typeck.c:2235 + msgid "ISO C++ forbids subscripting non-lvalue array" +-msgstr "" ++msgstr "ISO-C++ verbietet Indizierung eines Nicht-L-Wert-Feldes" + + #: cp/typeck.c:2246 + msgid "subscripting array declared `register'" +-msgstr "" ++msgstr "Indizierung eines als »register« deklarierten Feldes" + + #: cp/typeck.c:2329 + #, c-format + msgid "object missing in use of `%E'" +-msgstr "" ++msgstr "bei Verwendung von »%E« fehlt Objekt" + + #: cp/typeck.c:2431 + msgid "ISO C++ forbids calling `::main' from within program" +-msgstr "" ++msgstr "ISO-C++ verbietet den Aufruf von »::main« vom Programm aus" + + #: cp/typeck.c:2456 + #, c-format + msgid "must use .* or ->* to call pointer-to-member function in `%E (...)'" +-msgstr "" ++msgstr ".* oder ->* muss verwendet werden, um Zeiger auf Element in »%E (...)« aufzurufen" + + #: cp/typeck.c:2469 + #, c-format + msgid "`%E' cannot be used as a function" +-msgstr "" ++msgstr "»%E« kann nicht als Funktion verwendet werden" + + #: cp/typeck.c:2562 + msgid "too many arguments to %s `%+#D'" +-msgstr "" ++msgstr "zu viele Argumente für %s »%+#D«" + + #: cp/typeck.c:2564 cp/typeck.c:2670 + msgid "at this point in file" +-msgstr "" ++msgstr "an dieser Stelle in der Datei" + + #: cp/typeck.c:2601 + msgid "parameter %P of `%D' has incomplete type `%T'" +@@ -16729,57 +16798,57 @@ + + #: cp/typeck.c:2668 + msgid "too few arguments to %s `%+#D'" +-msgstr "" ++msgstr "zu wenige Argumente für %s »%+#D«" + + #: cp/typeck.c:2815 cp/typeck.c:2825 + msgid "assuming cast to type `%T' from overloaded function" +-msgstr "" ++msgstr "Umwandlung in Typ »%T« von überladener Funktion wird angenommen" + + #: cp/typeck.c:2886 + #, c-format + msgid "division by zero in `%E / 0'" +-msgstr "" ++msgstr "Division durch Null in »%E / 0«" + + #: cp/typeck.c:2888 + #, c-format + msgid "division by zero in `%E / 0.'" +-msgstr "" ++msgstr "Division durch Null in »%E / 0.«" + + #: cp/typeck.c:2917 + #, c-format + msgid "division by zero in `%E %% 0'" +-msgstr "" ++msgstr "Division durch Null in »%E %% 0«" + + #: cp/typeck.c:2919 + #, c-format + msgid "division by zero in `%E %% 0.'" +-msgstr "" ++msgstr "Division durch Null in »%E %% 0.«" + + #: cp/typeck.c:2999 + #, c-format + msgid "%s rotate count is negative" +-msgstr "" ++msgstr "Rotationszähler %s ist negativ" + + #: cp/typeck.c:3002 + #, c-format + msgid "%s rotate count >= width of type" +-msgstr "" ++msgstr "Rotationszähler %s >= Breite des Typs" + + #: cp/typeck.c:3036 cp/typeck.c:3041 cp/typeck.c:3132 cp/typeck.c:3137 + msgid "ISO C++ forbids comparison between pointer and integer" +-msgstr "" ++msgstr "ISO-C++ verbietet Vergleich zwischen Zeiger und Ganzzahl" + + #: cp/typeck.c:3318 + msgid "comparison between types `%#T' and `%#T'" +-msgstr "" ++msgstr "Vergleich zwischen den Typen »%#T« und »%#T«" + + #: cp/typeck.c:3354 + msgid "comparison between signed and unsigned integer expressions" +-msgstr "" ++msgstr "Vergleich zwischen vorzeichenbehafteten und vorzeichenlosen Ganzzahlausdrücken" + + #: cp/typeck.c:3419 + msgid "invalid operands of types `%T' and `%T' to binary `%O'" +-msgstr "" ++msgstr "ungültige Operanden der Typen »%T« und »%T« für binäres »%O«" + + #. Some sort of arithmetic operation involving NULL was + #. performed. Note that pointer-difference and pointer-addition +@@ -16787,498 +16856,498 @@ + #. that case. + #: cp/typeck.c:3441 + msgid "NULL used in arithmetic" +-msgstr "" ++msgstr "NULL in Arithmetik verwendet" + + #: cp/typeck.c:3504 + msgid "ISO C++ forbids using pointer of type `void *' in subtraction" +-msgstr "" ++msgstr "ISO-C++ verbietet die Verwendung eines Zeigers des Typs »void *« in Subtraktion" + + #: cp/typeck.c:3506 + msgid "ISO C++ forbids using pointer to a function in subtraction" +-msgstr "" ++msgstr "ISO-C++ verbietet die Verwendung eines Zeigers auf eine Funktion in Subtraktion" + + #: cp/typeck.c:3508 + msgid "ISO C++ forbids using pointer to a method in subtraction" +-msgstr "" ++msgstr "ISO-C++ verbietet die Verwendung eines Zeigers auf Methode in Subtraktion" + + #: cp/typeck.c:3520 + msgid "invalid use of a pointer to an incomplete type in pointer arithmetic" +-msgstr "" ++msgstr "ungültige Verwendung eines Zeigers auf einen unvollständigen Typen in Zeigerarithmetik" + +-#: cp/typeck.c:3582 ++#: cp/typeck.c:3600 + #, c-format + msgid "invalid use of '%E' to form a pointer-to-member-function. Use a qualified-id." +-msgstr "" ++msgstr "ungültige Verwendung von »%E« um Zeiger auf Elementfunktion zu erzeugen. Qualifizierer-ID sollte verwendet werden" + +-#: cp/typeck.c:3588 ++#: cp/typeck.c:3606 + #, c-format + msgid "parenthesis around '%E' cannot be used to form a pointer-to-member-function" +-msgstr "" ++msgstr "Klammern um »%E« können nicht verwendet werden, einen Zeiger auf Elementfunktion zu erzeugen" + +-#: cp/typeck.c:3610 ++#: cp/typeck.c:3628 + msgid "taking address of temporary" +-msgstr "" ++msgstr "Adresse eines temporären Wertes wird ermittelt" + +-#: cp/typeck.c:3845 ++#: cp/typeck.c:3863 + #, c-format + msgid "ISO C++ forbids %sing an enum" +-msgstr "" ++msgstr "ISO-C++ verbietet %s einer Aufzählung" + +-#: cp/typeck.c:3856 ++#: cp/typeck.c:3874 + msgid "cannot %s a pointer to incomplete type `%T'" +-msgstr "" ++msgstr "Fehler bei %s eines Zeigers auf unvollständigen Typen »%T«" + +-#: cp/typeck.c:3862 ++#: cp/typeck.c:3880 + msgid "ISO C++ forbids %sing a pointer of type `%T'" +-msgstr "" ++msgstr "ISO-C++ verbietet %s eines Zeigers vom Typ »%T«" + +-#: cp/typeck.c:3887 ++#: cp/typeck.c:3905 + msgid "cast to non-reference type used as lvalue" +-msgstr "" ++msgstr "Umwandlung in als L-Wert verwendeten Nicht-Referenz-Typ" + +-#: cp/typeck.c:3921 ++#: cp/typeck.c:3939 + msgid "invalid use of `--' on bool variable `%D'" +-msgstr "" ++msgstr "ungültige Verwendung der boolschen Variable »%D«" + + #. ARM $3.4 +-#: cp/typeck.c:3952 ++#: cp/typeck.c:3970 + msgid "ISO C++ forbids taking address of function `::main'" +-msgstr "" ++msgstr "ISO-C++ verbietet das Ermitteln der Adresse der Funktion »::main«" + + #. An expression like &memfn. +-#: cp/typeck.c:4027 ++#: cp/typeck.c:4045 + msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function. Say `&%T::%D'" +-msgstr "" ++msgstr "ISO-C++ verbietet das Ermitteln der Adresse einer nicht qualifizierten oder geklammerten nicht-statischen Elementfunktion, um einen Zeiger auf Elementfunktion zu erzeugen. Stattdessen »&%T::%D« verwenden" + +-#: cp/typeck.c:4032 ++#: cp/typeck.c:4050 + msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say `&%T::%D'" +-msgstr "" ++msgstr "ISO-C++ verbietet das Ermitteln der Adresse einer gebundenen Elementfunktion, um einen Zeiger auf Elementfunktion zu erzeugen. Stattdessen »&%T::%D« verwenden" + +-#: cp/typeck.c:4060 ++#: cp/typeck.c:4078 + msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression" +-msgstr "" ++msgstr "ISO-C++ verbietet das Ermitteln der Adresse einer Umwandlung in einen Nicht-L-Wert-Ausdruck" + +-#: cp/typeck.c:4080 ++#: cp/typeck.c:4098 + msgid "unary `&'" +-msgstr "" ++msgstr "einstelliges »&«" + +-#: cp/typeck.c:4113 ++#: cp/typeck.c:4131 + msgid "attempt to take address of bit-field structure member `%D'" +-msgstr "" ++msgstr "Versuch, die Adresse des Bitfeldstrukturelements »%D« zu ermitteln" + +-#: cp/typeck.c:4227 ++#: cp/typeck.c:4245 + msgid "taking address of destructor" +-msgstr "" ++msgstr "Adresse des Destruktors wird ermittelt" + +-#: cp/typeck.c:4240 ++#: cp/typeck.c:4258 + msgid "taking address of bound pointer-to-member expression" +-msgstr "" ++msgstr "Adresse des gebundenen Zeiger-auf-Element-Ausdrucks wird ermittelt" + +-#: cp/typeck.c:4248 ++#: cp/typeck.c:4266 + msgid "cannot create pointer to reference member `%D'" +-msgstr "" ++msgstr "Zeiger auf Referenzelement »%D« kann nicht erzeugt werden" + +-#: cp/typeck.c:4311 ++#: cp/typeck.c:4329 + msgid "cannot take the address of `this', which is an rvalue expression" +-msgstr "" ++msgstr "Adresse von »this« kann nicht ermittelt werden, das ein R-Wert-Ausdruck ist" + +-#: cp/typeck.c:4330 ++#: cp/typeck.c:4348 + msgid "address requested for `%D', which is declared `register'" +-msgstr "" ++msgstr "Adresse für »%D« angefordert, was als »register« deklariert ist" + +-#: cp/typeck.c:4398 ++#: cp/typeck.c:4416 + #, c-format + msgid "%s expression list treated as compound expression" + msgstr "%s Ausdrucksliste als zusammengesetzten Ausdruck behandelt" + +-#: cp/typeck.c:4472 ++#: cp/typeck.c:4490 + msgid "%s from type `%T' to type `%T' casts away constness" +-msgstr "" ++msgstr "%s vom Typ »%T« in Typ »%T« entfernt Konstantheit" + +-#: cp/typeck.c:4674 ++#: cp/typeck.c:4692 + msgid "invalid static_cast from type `%T' to type `%T'" +-msgstr "" ++msgstr "ungültiges static_cast vom Typ »%T« in den Typ »%T«" + +-#: cp/typeck.c:4714 ++#: cp/typeck.c:4732 + msgid "invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'" +-msgstr "" ++msgstr "ungültiges reinterpret_cast eines R-Wert-Ausdrucks des Typs »%T« in Typ »%T«" + +-#: cp/typeck.c:4734 ++#: cp/typeck.c:4752 + msgid "reinterpret_cast from `%T' to `%T' loses precision" +-msgstr "" ++msgstr "reinterpret_cast von »%T« nach »%T« verliert Genauigkeit" + +-#: cp/typeck.c:4753 ++#: cp/typeck.c:4771 + msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object" +-msgstr "" ++msgstr "ISO-C++ verbietet Umwandlung zwischen Zeiger auf Funktion und Zeiger auf Objekt" + +-#: cp/typeck.c:4759 ++#: cp/typeck.c:4777 + msgid "invalid reinterpret_cast from type `%T' to type `%T'" +-msgstr "" ++msgstr "ungültiges reinterpret_cast vom Typ »%T« in Typ »%T«" + +-#: cp/typeck.c:4787 ++#: cp/typeck.c:4805 + msgid "invalid use of const_cast with type `%T', which is not a pointer, reference, nor a pointer-to-data-member type" +-msgstr "" ++msgstr "ungültige Verwendung von const_cast mit Typ »%T«, das weder Zeiger, Referenz, noch vom Typ eines Zeigers auf Datenelement ist" + +-#: cp/typeck.c:4790 ++#: cp/typeck.c:4808 + msgid "invalid use of const_cast with type `%T', which is a pointer or reference to a function type" +-msgstr "" ++msgstr "ungültige Verwendung von const_cast mit Typ »%T«, das ein Zeiger oder Referenz auf Funktionstyp ist" + +-#: cp/typeck.c:4813 ++#: cp/typeck.c:4831 + msgid "invalid const_cast of an rvalue of type `%T' to type `%T'" +-msgstr "" ++msgstr "ungültiges const_cast eines R-Wertes des Typs »%T« in Typ »%T«" + +-#: cp/typeck.c:4830 ++#: cp/typeck.c:4848 + msgid "invalid const_cast from type `%T' to type `%T'" +-msgstr "" ++msgstr "ungültiges const_cast von Typ »%T« in Typ »%T«" + +-#: cp/typeck.c:4870 cp/typeck.c:4875 ++#: cp/typeck.c:4888 cp/typeck.c:4893 + msgid "ISO C++ forbids casting to an array type `%T'" +-msgstr "" ++msgstr "ISO-C++ verbietet Umwandlung in Feldtyp »%T«" + +-#: cp/typeck.c:4883 ++#: cp/typeck.c:4901 + msgid "invalid cast to function type `%T'" +-msgstr "" ++msgstr "ungültige Umwandlung in Funktionstyp »%T«" + +-#: cp/typeck.c:4939 ++#: cp/typeck.c:4957 + msgid "cast from `%T' to `%T' discards qualifiers from pointer target type" +-msgstr "" ++msgstr "Umwandlung von »%T« in »%T« entfernt Kennzeichner von Zeiger-Ziel-Typ" + +-#: cp/typeck.c:4985 ++#: cp/typeck.c:5003 + msgid "cast from `%T' to `%T' increases required alignment of target type" +-msgstr "" ++msgstr "Umwandlung von »%T« in »%T« erhöht erforderliche Ausrichtung des Zieltyps" + +-#: cp/typeck.c:5152 ++#: cp/typeck.c:5170 + msgid " in evaluation of `%Q(%#T, %#T)'" +-msgstr "" ++msgstr " in Auswertung von »%Q(%#T, %#T)«" + +-#: cp/typeck.c:5194 ++#: cp/typeck.c:5212 + msgid "ISO C++ forbids cast to non-reference type used as lvalue" +-msgstr "" ++msgstr "ISO-C++ verbietet Umwandlung in als L-Wert verwendeten Nicht-Referenz-Typ" + +-#: cp/typeck.c:5267 ++#: cp/typeck.c:5285 + msgid "incompatible types in assignment of `%T' to `%T'" +-msgstr "" ++msgstr "unverträgliche Typen in Zuweisung von »%T« an »%T«" + +-#: cp/typeck.c:5274 ++#: cp/typeck.c:5292 + msgid "ISO C++ forbids assignment of arrays" +-msgstr "" ++msgstr "ISO-C++ verbietet Zuweisung von Feldern" + +-#: cp/typeck.c:5374 ++#: cp/typeck.c:5392 + msgid " in pointer to member function conversion" +-msgstr "" ++msgstr " in Umwandlung in Zeiger auf Elementfunktion" + +-#: cp/typeck.c:5382 ++#: cp/typeck.c:5400 + msgid " in pointer to member conversion" +-msgstr "" ++msgstr " in Umwandlung in Zeiger auf Element" + + #. This is a reinterpret cast, we choose to do nothing. +-#: cp/typeck.c:5392 cp/typeck.c:5407 ++#: cp/typeck.c:5410 cp/typeck.c:5425 + msgid "pointer to member cast via virtual base `%T'" + msgstr "Typumwandlung von Zeiger in Element über virtuelle Basis »%T«" + +-#: cp/typeck.c:5410 ++#: cp/typeck.c:5428 + msgid "pointer to member conversion via virtual base `%T'" +-msgstr "Konvertierung von Zeiger in Element über virtuelle Basis »%T«" ++msgstr "Umwandlung von Zeiger in Element über virtuelle Basis »%T«" + +-#: cp/typeck.c:5480 ++#: cp/typeck.c:5498 + msgid "invalid conversion to type `%T' from type `%T'" +-msgstr "" ++msgstr "ungültige Umwandlung in Typ »%T« von Typ »%T«" + +-#: cp/typeck.c:5636 ++#: cp/typeck.c:5657 + msgid "passing NULL used for non-pointer %s %P of `%D'" +-msgstr "" ++msgstr "Ãœbergabe von NULL für Nicht-Zeiger %s %P von `%D' verwendet" + +-#: cp/typeck.c:5639 ++#: cp/typeck.c:5660 + msgid "%s to non-pointer type `%T' from NULL" +-msgstr "" ++msgstr "%s in Nicht-Zeiger-Typ »%T« von NULL" + +-#: cp/typeck.c:5647 ++#: cp/typeck.c:5668 + msgid "passing `%T' for %s %P of `%D'" +-msgstr "" ++msgstr "Ãœbergabe von »%T« für %s %P von »%D«" + +-#: cp/typeck.c:5650 ++#: cp/typeck.c:5671 + msgid "%s to `%T' from `%T'" +-msgstr "" ++msgstr "%s nach »%T« von »%T«" + +-#: cp/typeck.c:5660 ++#: cp/typeck.c:5681 + msgid "passing negative value `%E' for %s %P of `%D'" +-msgstr "" ++msgstr "Ãœbergabe des negativen Werts »%E« für %s %P von »%D«" + +-#: cp/typeck.c:5663 ++#: cp/typeck.c:5684 + msgid "%s of negative value `%E' to `%T'" +-msgstr "" ++msgstr "%s vom negativen Wert »%E« nach »%T«" + +-#: cp/typeck.c:5751 ++#: cp/typeck.c:5772 + msgid "cannot convert `%T' to `%T' for argument `%P' to `%D'" +-msgstr "" ++msgstr "»%T« kann nicht nach »%T« für Argument »%P« nach »%D« umgewandelt werden" + +-#: cp/typeck.c:5754 ++#: cp/typeck.c:5775 + msgid "cannot convert `%T' to `%T' in %s" +-msgstr "" ++msgstr "»%T« kann nicht nach »%T« in %s umgewandelt werden" + +-#: cp/typeck.c:5831 cp/typeck.c:5833 ++#: cp/typeck.c:5852 cp/typeck.c:5854 + msgid "in passing argument %P of `%+D'" +-msgstr "" ++msgstr "bei Ãœbergabe des Arguments %P von »%+D«" + +-#: cp/typeck.c:5940 ++#: cp/typeck.c:5961 + msgid "returning reference to temporary" +-msgstr "" ++msgstr "Referenz auf temporären Wert wird zurückgegeben" + +-#: cp/typeck.c:5947 ++#: cp/typeck.c:5968 + msgid "reference to non-lvalue returned" +-msgstr "" ++msgstr "Referenz auf Nicht-L-Wert zurückgegeben" + +-#: cp/typeck.c:5959 ++#: cp/typeck.c:5980 + msgid "reference to local variable `%D' returned" +-msgstr "" ++msgstr "Referenz auf lokale Variable »%D« zurückgegeben" + +-#: cp/typeck.c:5962 ++#: cp/typeck.c:5983 + msgid "address of local variable `%D' returned" +-msgstr "" ++msgstr "Adresse der lokalen Variable »%D« zurückgegeben" + +-#: cp/typeck.c:5992 ++#: cp/typeck.c:6013 + msgid "returning a value from a destructor" +-msgstr "" ++msgstr "Wert von Destruktor zurückgegeben" + + #. If a return statement appears in a handler of the + #. function-try-block of a constructor, the program is ill-formed. +-#: cp/typeck.c:6000 ++#: cp/typeck.c:6021 + msgid "cannot return from a handler of a function-try-block of a constructor" +-msgstr "" ++msgstr "vom Behandler eines Funktions-try-Blocks eines Konstruktors kann nicht zurückgekehrt werden" + + #. You can't return a value from a constructor. +-#: cp/typeck.c:6003 ++#: cp/typeck.c:6024 + msgid "returning a value from a constructor" +-msgstr "" ++msgstr "Rückgabe eines Wertes von einem Konstruktor" + +-#: cp/typeck.c:6026 ++#: cp/typeck.c:6047 + msgid "return-statement with no value, in function returning '%T'" + msgstr "Return-Anweisung ohne Wert, in »%T« zurückgebender Funktion" + +-#: cp/typeck.c:6043 ++#: cp/typeck.c:6064 + msgid "return-statement with a value, in function returning 'void'" + msgstr "Return-Anweisung mit Wert in »void« zurückgebender Funktion" + +-#: cp/typeck.c:6065 ++#: cp/typeck.c:6086 + msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)" +-msgstr "" ++msgstr "»operator new« darf nicht NULL zurückgeben, außer es ist mit »throw()« deklariert (oder -fcheck-new ist eingeschaltet)" + + #: cp/typeck2.c:55 + msgid "type `%T' is not a base type for type `%T'" +-msgstr "" ++msgstr "Typ »%T« ist kein Basistyp für Typ »%T«" + + #: cp/typeck2.c:151 + msgid "cannot declare variable `%D' to be of type `%T'" +-msgstr "" ++msgstr "Variable »%D« kann nicht als vom Typ »%T« deklariert werden" + + #: cp/typeck2.c:154 + msgid "cannot declare parameter `%D' to be of type `%T'" +-msgstr "" ++msgstr "Parameter »%D« kann nicht als vom Typ »%T« deklariert werden" + + #: cp/typeck2.c:157 + msgid "cannot declare field `%D' to be of type `%T'" +-msgstr "" ++msgstr "Feld »%D« kann nicht als vom Typ »%T« deklariert werden" + + #: cp/typeck2.c:161 + msgid "invalid return type for member function `%#D'" +-msgstr "" ++msgstr "ungültiger Rückgabetyp für Elementfunktion »%#D«" + + #: cp/typeck2.c:163 + msgid "invalid return type for function `%#D'" +-msgstr "" ++msgstr "ungültiger Rückgabetyp für Funktion »%#D«" + + #: cp/typeck2.c:166 + msgid "cannot allocate an object of type `%T'" +-msgstr "" ++msgstr "es kann kein Objekt des Typs »%T« belegt werden" + + #: cp/typeck2.c:173 + msgid " because the following virtual functions are abstract:" +-msgstr "" ++msgstr " denn die folgenden virtuellen Funktionen sind abstrakt:" + + #: cp/typeck2.c:175 + msgid "\t%#D" +-msgstr "" ++msgstr "\t%#D" + + #: cp/typeck2.c:178 + msgid " since type `%T' has abstract virtual functions" +-msgstr "" ++msgstr " denn der Typ »%T« hat abstrakte virtuelle Funktionen" + + #: cp/typeck2.c:427 + msgid "constructor syntax used, but no constructor declared for type `%T'" +-msgstr "" ++msgstr "Konstruktorsyntax verwendet, aber kein Konstruktor für Typ »%T« deklariert" + + #: cp/typeck2.c:440 + msgid "cannot initialize arrays using this syntax" +-msgstr "" ++msgstr "mit dieser Syntax können keine Felder initialisiert werden" + +-#: cp/typeck2.c:545 ++#: cp/typeck2.c:535 + msgid "initializing array with parameter list" +-msgstr "" ++msgstr "Feld wird mit Parameterliste initialisiert" + +-#: cp/typeck2.c:600 ++#: cp/typeck2.c:590 + msgid "initializer for scalar variable requires one element" +-msgstr "" ++msgstr "Initialisierung für skalare Variable benötigt ein Element" + +-#: cp/typeck2.c:607 ++#: cp/typeck2.c:597 + msgid "braces around scalar initializer for `%T'" +-msgstr "" ++msgstr "geschweifte Klammern um skalare Initialisierung für »%T«" + +-#: cp/typeck2.c:610 ++#: cp/typeck2.c:600 + msgid "ignoring extra initializers for `%T'" +-msgstr "" ++msgstr "zusätzliche Initialisierung für »%T« wird ignoriert" + +-#: cp/typeck2.c:622 ++#: cp/typeck2.c:612 + msgid "variable-sized object of type `%T' may not be initialized" +-msgstr "" ++msgstr "Objekt variabler Größe vom Typ »%T« könnte nicht initialisiert sein" + +-#: cp/typeck2.c:632 ++#: cp/typeck2.c:622 + msgid "subobject of type `%T' must be initialized by constructor, not by `%E'" +-msgstr "" ++msgstr "Unterobjekt vom Typ »%T« muss vom Konstruktor initialisiert werden, nicht von »%E«" + +-#: cp/typeck2.c:697 ++#: cp/typeck2.c:687 + msgid "aggregate has a partly bracketed initializer" +-msgstr "" ++msgstr "Aggregat hat teilweise eckig geklammerte Initialisierung" + +-#: cp/typeck2.c:735 cp/typeck2.c:840 ++#: cp/typeck2.c:725 cp/typeck2.c:830 + msgid "non-trivial labeled initializers" +-msgstr "" ++msgstr "nicht-trivial markierte Initialisierungen" + +-#: cp/typeck2.c:752 ++#: cp/typeck2.c:742 + msgid "non-empty initializer for array of empty elements" +-msgstr "" ++msgstr "nicht-leere Initialisierung für Feld leerer Elemente" + +-#: cp/typeck2.c:806 ++#: cp/typeck2.c:796 + msgid "initializer list for object of class with virtual base classes" +-msgstr "" ++msgstr "Initialisierungliste für Objekt einer Klasse mit virtuellen Basisklassen" + +-#: cp/typeck2.c:812 ++#: cp/typeck2.c:802 + msgid "initializer list for object of class with base classes" +-msgstr "" ++msgstr "Initialisierungliste für Objekt einer Klasse mit Basisklassen" + +-#: cp/typeck2.c:818 ++#: cp/typeck2.c:808 + msgid "initializer list for object using virtual functions" +-msgstr "" ++msgstr "Initialisierungliste für virtuelle Funktionen verwendendes Objekt" + +-#: cp/typeck2.c:880 cp/typeck2.c:896 ++#: cp/typeck2.c:870 cp/typeck2.c:886 + msgid "missing initializer for member `%D'" +-msgstr "" ++msgstr "Initialisierung für Element »%D« fehlt" + +-#: cp/typeck2.c:885 ++#: cp/typeck2.c:875 + msgid "uninitialized const member `%D'" +-msgstr "" ++msgstr "nicht initialisiertes konstantes Element »%D«" + +-#: cp/typeck2.c:887 ++#: cp/typeck2.c:877 + msgid "member `%D' with uninitialized const fields" +-msgstr "" ++msgstr "Element »%D« mit nicht initialisierten konstanten Feldern" + +-#: cp/typeck2.c:890 ++#: cp/typeck2.c:880 + msgid "member `%D' is uninitialized reference" +-msgstr "" ++msgstr "Feld »%D« ist nicht initialisierte Referenz" + +-#: cp/typeck2.c:937 ++#: cp/typeck2.c:927 + msgid "index value instead of field name in union initializer" +-msgstr "" ++msgstr "Indexwert statt Feldname in Union-Initialisierung" + +-#: cp/typeck2.c:949 ++#: cp/typeck2.c:939 + msgid "no field `%D' in union being initialized" +-msgstr "" ++msgstr "kein Feld »%D« in initialisierter Union" + +-#: cp/typeck2.c:957 ++#: cp/typeck2.c:947 + msgid "union `%T' with no named members cannot be initialized" +-msgstr "" ++msgstr "Union »%T« ohne benannte Elemente kann nicht initialisiert werden" + +-#: cp/typeck2.c:993 ++#: cp/typeck2.c:983 + msgid "excess elements in aggregate initializer" +-msgstr "" ++msgstr "überschüssige Elemente in Aggregatinitialisierung" + +-#: cp/typeck2.c:1102 ++#: cp/typeck2.c:1092 + msgid "circular pointer delegation detected" +-msgstr "" ++msgstr "ringförmige Zeigerdelegation erkannt" + +-#: cp/typeck2.c:1115 ++#: cp/typeck2.c:1105 + msgid "base operand of `->' has non-pointer type `%T'" +-msgstr "" ++msgstr "Basisoperand von »->« hat Nicht-Zeiger-Typ »%T«" + +-#: cp/typeck2.c:1139 ++#: cp/typeck2.c:1129 + msgid "result of `operator->()' yields non-pointer result" +-msgstr "" ++msgstr "Ergebnis von »operator->()« ergibt Nicht-Zeiger-Ergebnis" + +-#: cp/typeck2.c:1141 ++#: cp/typeck2.c:1131 + msgid "base operand of `->' is not a pointer" +-msgstr "" ++msgstr "Basisoperand von »->« ist kein Zeiger" + +-#: cp/typeck2.c:1164 ++#: cp/typeck2.c:1154 + msgid "`%E' cannot be used as a member pointer, since it is of type `%T'" +-msgstr "" ++msgstr "»%E« kannt nicht als Elementzeiger verwendet werden, da es vom Typ »%T« ist" + +-#: cp/typeck2.c:1172 ++#: cp/typeck2.c:1162 + msgid "cannot apply member pointer `%E' to `%E', which is of non-aggregate type `%T'" +-msgstr "" ++msgstr "Elementzeiger »%E« kann nicht auf »%E« angewandt werden, da letzteres vom Nicht-Aggregat-Typ »%T« ist" + +-#: cp/typeck2.c:1182 ++#: cp/typeck2.c:1172 + msgid "member type `%T::' incompatible with object type `%T'" +-msgstr "" ++msgstr "Elementtyp »%T::« mit Objekttyp »%T« inkompatibel" + +-#: cp/typeck2.c:1398 ++#: cp/typeck2.c:1388 + msgid "call to function `%D' which throws incomplete type `%#T'" +-msgstr "" ++msgstr "Aufruf der Funktion »%D«, die unvollständigen Typen »%#T« wirft" + +-#: cp/typeck2.c:1401 ++#: cp/typeck2.c:1391 + msgid "call to function which throws incomplete type `%#T'" +-msgstr "" ++msgstr "Aufruf einer Funktion, die unvollständigen Typen »%#T« wirft" + + #. XXX Not i18n clean. +-#: cp/cp-tree.h:3756 ++#: cp/cp-tree.h:3775 + #, c-format + msgid "%s is deprecated, please see the documentation for details" +-msgstr "" ++msgstr "%s ist veraltet, siehe Dokumentation für Details" + + #: f/bad.c:388 + msgid "note:" +-msgstr "" ++msgstr "beachte:" + + #: f/bad.c:392 + msgid "warning:" +-msgstr "" ++msgstr "Warnung:" + + #: f/bad.c:396 + msgid "fatal:" +-msgstr "" ++msgstr "schwerwiegend:" + + #: f/bad.c:438 + msgid "(continued):" +-msgstr "" ++msgstr "(Fortsetzung:)" + + #: f/bad.c:488 f/bad.c:506 + msgid "[REPORT BUG!!] %" +-msgstr "" ++msgstr "[Fehler zurückmelden!!] %" + + #: f/bad.c:495 f/bad.c:527 + msgid "[REPORT BUG!!]" +-msgstr "" ++msgstr "[Fehler zurückmelden!!]" + + #: f/com.c:3125 + #, no-c-format + msgid "ASSIGN'ed label cannot fit into `%A' at %0 -- using wider sibling" +-msgstr "" ++msgstr "ASSIGN-Marke passt nicht in »%A« bei %0 -- breiteren Geschwistertypen verwenden" + + #: f/com.c:11565 + msgid "no INTEGER type can hold a pointer on this configuration" +-msgstr "" ++msgstr "kein INTEGER-Typ kann in dieser Konfiguration einen Zeiger aufnehmen" + + #: f/com.c:11839 + #, c-format + msgid "configuration: REAL, INTEGER, and LOGICAL are %d bits wide," +-msgstr "" ++msgstr "Konfiguration: REAL, INTEGER, und LOGICAL sind %d Bit breit," + + #: f/com.c:11841 + #, c-format + msgid "and pointers are %d bits wide, but g77 doesn't yet work" +-msgstr "" ++msgstr "und Zeiger sind %d Bit breit, aber g77 funktioniert noch nicht" + + #: f/com.c:11843 + msgid "properly unless they all are 32 bits wide" +-msgstr "" ++msgstr "geeignet, außer sie sind alle 32 Bit breit" + + #: f/com.c:11844 + msgid "Please keep this in mind before you report bugs." +@@ -17288,7 +17357,7 @@ + #: f/com.c:11852 + #, c-format + msgid "configuration: char * holds %d bits, but ftnlen only %d" +-msgstr "" ++msgstr "Konfiguration: char * nimmt %d Bits auf, aber ftnlen nur %d" + + #. ASSIGN 10 TO I will crash. + #: f/com.c:11861 +@@ -17297,54 +17366,56 @@ + "configuration: char * holds %d bits, but INTEGER only %d --\n" + " ASSIGN statement might fail" + msgstr "" ++"Konfiguration: char * nimmt %d Bit auf, aber INTEGER nur %d -- \n" ++" ASSIGN-Anweisung kann scheitern" + + #: f/com.c:13677 + msgid "In statement function" +-msgstr "" ++msgstr "In Anweisungsfunktion" + + #: f/com.c:13687 + msgid "Outside of any program unit:\n" +-msgstr "" ++msgstr "Außerhalb jeder Programmeinheit:\n" + + #: f/com.c:15283 + #, no-c-format + msgid "%A from %B at %0%C" +-msgstr "" ++msgstr "%A von %B bei %0%C" + + #: f/com.c:15593 + #, no-c-format + msgid "At %0, INCLUDE file %A exists, but is not readable" +-msgstr "" ++msgstr "Bei %0, INCLUDE-Datei %A existiert, aber nicht lesbar" + + #: f/com.c:15628 + #, no-c-format + msgid "At %0, INCLUDE nesting too deep" +-msgstr "" ++msgstr "bei %0, zu tiefe INCLUDE-Schachtelung" + + #: f/expr.c:8706 + #, no-c-format + msgid "Two arithmetic operators in a row at %0 and %1 -- use parentheses" +-msgstr "" ++msgstr "Zwei arithmetische Operatoren in einer Zeile bei %0 und %1 -- Klammern verwenden" + + #: f/expr.c:8756 + #, no-c-format + msgid "Operator at %0 has lower precedence than that at %1 -- use parentheses" +-msgstr "" ++msgstr "Operator bei %0 hat geringeren Vorrang als der bei %1 -- Klammern verwenden" + + #: f/expr.c:9639 + #, no-c-format + msgid "Use .EQV./.NEQV. instead of .EQ./.NE. at %0 for LOGICAL operands at %1 and %2" +-msgstr "" ++msgstr ".EQV./.NEQV. statt .EQ./.NE. bei %0 für LOGICAL-Operanden bei %1 und %2 verwenden" + + #: f/expr.c:10010 + #, no-c-format + msgid "Unsupported operand for ** at %1 -- converting to default INTEGER" +-msgstr "" ++msgstr "Nicht unterstützter Operand für ** bei %1 -- Umwandlung in Standard-INTEGER" + + #: f/g77spec.c:231 + #, c-format + msgid "overflowed output arg list for `%s'" +-msgstr "" ++msgstr "übergelaufene Ausgabeargumentliste für »%s«" + + #: f/g77spec.c:353 + msgid "" +@@ -17354,363 +17425,368 @@ + "For more information about these matters, see the file named COPYING\n" + "or type the command `info -f g77 Copying'.\n" + msgstr "" ++"GNU Fortran kommt OHNE GARANTIE, im vom Gesetz zulässigen Ausmaß.\n" ++"Sie dürfen Kopien von GNU Fortran unter\n" ++"den Bedingungen der GNU General Public License weitergeben.\n" ++"Für weitere Informationen hierüber, siehe die Datei COPYING\n" ++"oder geben Sie »info -f g77 Copying« ein.\n" + + #: f/g77spec.c:369 + msgid "--driver no longer supported" +-msgstr "" ++msgstr "--driver wird nicht mehr unterstützt" + + #: f/g77spec.c:382 + #, c-format + msgid "argument to `%s' missing" +-msgstr "" ++msgstr "Argument für »%s« fehlt" + + #: f/g77spec.c:386 + msgid "no input files; unwilling to write output files" +-msgstr "" ++msgstr "keine Eingabedateien; es werden keine Ausgabedateien geschrieben" + + #: f/implic.c:203 + #, no-c-format + msgid "Implicit declaration of `%A' at %0" +-msgstr "" ++msgstr "Implizite Deklaration von »%A« bei %0" + + #: f/lex.c:321 + #, no-c-format + msgid "Non-ISO-C-standard escape sequence `\\%A' at %0" +-msgstr "" ++msgstr "Nicht-ISO-C-standardkonforme Fluchtsequenz »\\%A« bei %0" + + #: f/lex.c:340 + #, no-c-format + msgid "Unknown escape sequence `\\%A' at %0" +-msgstr "" ++msgstr "Unbekannte Fluchtsequenz »\\%A« bei %0" + + #: f/lex.c:349 + #, no-c-format + msgid "Unterminated escape sequence `\\' at %0" +-msgstr "" ++msgstr "Nicht beendete Fluchtsequenz »\\« bei %0" + + #: f/lex.c:360 + #, no-c-format + msgid "Unknown escape sequence `\\' followed by char code 0x%A at %0" +-msgstr "" ++msgstr "Unbekannte Fluchtsequenz »\\« gefolgt von Zeichencode 0x%A bei %0" + + #: f/lex.c:388 + #, no-c-format + msgid "\\x used at %0 with no following hex digits" +-msgstr "" ++msgstr "\\x bei %0 ohne folgende Hexadezimalziffern verwendet" + + #: f/lex.c:402 + #, no-c-format + msgid "Hex escape at %0 out of range" +-msgstr "" ++msgstr "Hexadezimal-Escape bei %0 außerhalb des Wertebereiches" + + #: f/lex.c:436 + #, no-c-format + msgid "Escape sequence at %0 out of range for character" +-msgstr "" ++msgstr "Fluchtsequenz bei %0 außerhalb des Wertebereiches für Zeichen" + + #: f/lex.c:590 + msgid "hex escape out of range" +-msgstr "" ++msgstr "Hexadezimalescape außerhalb des Wertebereiches" + + #: f/lex.c:643 + #, c-format + msgid "non-ANSI-standard escape sequence, `\\%c'" +-msgstr "" ++msgstr "Nicht-ANSI-Standard-Fluchtsequenz, »\\%c«" + + #: f/lex.c:656 + #, c-format + msgid "non-ISO escape sequence `\\%c'" +-msgstr "" ++msgstr "Nicht-ISO-Fluchtsequenz »\\%c«" + + #: f/lex.c:660 + #, c-format + msgid "unknown escape sequence `\\%c'" +-msgstr "" ++msgstr "unbekannte Fluchtsequenz »\\%c«" + + #: f/lex.c:662 + #, c-format + msgid "unknown escape sequence: `\\' followed by char code 0x%x" +-msgstr "" ++msgstr "unbekannte Fluchtsequenz: »\\« gefolgt von Zeichencode 0x%x" + + #: f/lex.c:745 + msgid "badly formed directive -- no closing quote" +-msgstr "" ++msgstr "falsch geformte Anweisung -- kein schließendes Anführungszeichen" + + #: f/lex.c:809 + msgid "#-lines for entering and leaving files don't match" +-msgstr "" ++msgstr "#-Zeichen zum Betreten und Verlassen von Dateien passen nicht" + + #: f/lex.c:969 + msgid "bad directive -- missing close-quote" +-msgstr "" ++msgstr "Falsche Direktive -- schließendes Anführungszeichen fehlt" + + #: f/lex.c:1108 + msgid "invalid #ident" +-msgstr "" ++msgstr "ungültiges #ident" + + #: f/lex.c:1125 + msgid "undefined or invalid # directive" +-msgstr "" ++msgstr "nicht definierte oder ungültige #-Anweisung" + + #: f/lex.c:1180 + msgid "invalid #line" +-msgstr "" ++msgstr "ungültiges #line" + + #: f/lex.c:1236 f/lex.c:1280 + msgid "use `#line ...' instead of `# ...' in first line" +-msgstr "" ++msgstr "»#line ...« statt »# ...« in erster Zeile verwenden" + + #: f/lex.c:1290 + msgid "invalid #-line" +-msgstr "" ++msgstr "ungültige #-Zeile" + + #: f/lex.c:1383 + #, no-c-format + msgid "Null character at %0 -- line ignored" +-msgstr "" ++msgstr "Nullzeichen bei %0 -- Zeile ignoriert" + + #: f/stb.c:9177 + #, no-c-format + msgid "INCLUDE at %0 not the only statement on the source line" +-msgstr "" ++msgstr "INCLUDE bei %0 ist nicht die einzige Anweisung in der Quelltextzeile" + + #: f/ste.c:1397 f/ste.c:1744 + msgid "ASSIGNed FORMAT specifier is too small" +-msgstr "" ++msgstr "ASSIGN-Symbol von FORMAT ist zu klein" + + #. ~~~Someday handle CHARACTER*1, CHARACTER*N + #: f/ste.c:2621 + #, no-c-format + msgid "SELECT CASE on CHARACTER type (at %0) not supported -- sorry" +-msgstr "" ++msgstr "SELECT CASE on CHARACTER type (bei %0) nicht unterstützt" + + #: f/ste.c:2725 + msgid "SELECT (at %0) has duplicate cases -- check integer overflow of CASE(s)" +-msgstr "" ++msgstr "SELECT (bei %0) hat mehrere Fälle -- Ganzzahlüberlauf der CASE(s) prüfen" + + #: f/ste.c:2957 + msgid "ASSIGN to variable that is too small" +-msgstr "" ++msgstr "ASSIGN an Variable, die zu klein ist" + + #: f/ste.c:2989 + msgid "ASSIGNed GOTO target variable is too small" +-msgstr "" ++msgstr "ASSIGN GOTO-Ziel-Variable ist zu klein" + + #: f/stu.c:305 + #, no-c-format + msgid "Local adjustable symbol `%A' at %0" +-msgstr "" ++msgstr "Lokales einstallbares Symbol »%A« bei %0" + + #: f/target.c:2545 + msgid "data initializer on host with different endianness" +-msgstr "" ++msgstr "Dateninitialisierung auf Rechner mit anderer Byte-Reihenfolge" + + #: f/top.c:244 + msgid "-fvxt-not-f90 no longer supported -- try -fvxt" +-msgstr "" ++msgstr "-fvxt-not-f90 wird nicht mehr unterstützt -- -fvxt probieren" + + #: f/top.c:248 + msgid "-ff90-not-vxt no longer supported -- try -fno-vxt -ff90" +-msgstr "" ++msgstr "-ff90-not-vxt wird nicht mehr unterstützt -- -fno-vxt -ff90 probieren" + + #: f/top.c:318 + msgid "-fdebug-kludge is disabled, use normal debugging flags" +-msgstr "" ++msgstr "-fdebug-kludge ist ausgeschaltet, normale Fehlersuchoptionen verwenden" + + #: f/bad.def:39 + #, no-c-format + msgid "Missing first operand for binary operator at %0" +-msgstr "" ++msgstr "Erster Operand für binären Operator bei %0 fehlt" + + #: f/bad.def:42 + #, no-c-format + msgid "Zero-length character constant at %0" +-msgstr "" ++msgstr "Zeichenkonstante bei %0 hat Länge Null" + + #: f/bad.def:45 + #, no-c-format + msgid "Invalid token at %0 in expression or subexpression at %1" +-msgstr "" ++msgstr "Ungültiges Zeichen bei %0 in Ausdruck oder Teilausdruck bei %1" + + #: f/bad.def:48 + #, no-c-format + msgid "Missing operand for operator at %1 at end of expression at %0" +-msgstr "" ++msgstr "Operand für Operator bei %1 am Ende des Ausdrucks bei %0 fehlt" + + #: f/bad.def:51 + #, no-c-format + msgid "Label %A already defined at %1 when redefined at %0" +-msgstr "" ++msgstr "Marke %A ist bereits bei %1 bei Redefinition bei %0 definiert" + + #: f/bad.def:54 + #, no-c-format + msgid "Unrecognized character at %0 [info -f g77 M LEX]" +-msgstr "" ++msgstr "Nicht erkanntes Zeichen bei %0 [info -f g77 M LEX]" + + #: f/bad.def:57 + #, no-c-format + msgid "Label definition %A at %0 on empty statement (as of %1)" +-msgstr "" ++msgstr "Markendefinition %A bei %0 an leerer Anweisung (von %1)" + + #: f/bad.def:65 + #, no-c-format + msgid "Invalid first character at %0 [info -f g77 M LEX]" +-msgstr "" ++msgstr "Ungültiges erstes Zeichen bei %0 [info -f g77 M LEX]" + + #: f/bad.def:68 + #, no-c-format + msgid "Line too long as of %0 [info -f g77 M LEX]" +-msgstr "" ++msgstr "Zeile zu lang bei %0 [info -f g77 M LEX]" + + #: f/bad.def:71 + #, no-c-format + msgid "Non-numeric character at %0 in label field [info -f g77 M LEX]" +-msgstr "" ++msgstr "Nicht-numerisches Zeichen bei %0 in Markenfeld [info -f g77 M LEX]" + + #: f/bad.def:74 + #, no-c-format + msgid "Label number at %0 not in range 1-99999" +-msgstr "" ++msgstr "Markenzahl bei %0 nicht im Wertebereich 1-99999" + + #: f/bad.def:77 + #, no-c-format + msgid "At %0, '!' and '/*' are not valid comment delimiters" +-msgstr "" ++msgstr "Bei %0 sind '!' und '/*' keine gültigen Kommentarbegrenzungen" + + #: f/bad.def:80 + #, no-c-format + msgid "Continuation indicator at %0 must appear in column 6 [info -f g77 M LEX]" +-msgstr "" ++msgstr "Fortsetzungsanzeiger bei %0 muss in Spalte 6 auftreten [info -f g77 M LEX]" + + #: f/bad.def:83 + #, no-c-format + msgid "Label at %0 invalid with continuation line indicator at %1 [info -f g77 M LEX]" +-msgstr "" ++msgstr "Marke bei %0 ist ohne Fortsetzungszeilenanzeiger bei %1 ungültig [info -f g77 M LEX]" + + #: f/bad.def:91 + #, no-c-format + msgid "Character constant at %0 has no closing apostrophe at %1" +-msgstr "" ++msgstr "Zeichenkonstante bei %0 hat kein schließendes Hochkomma bei %1" + + #: f/bad.def:94 + #, no-c-format + msgid "Hollerith constant at %0 specified %A more characters than are present as of %1" +-msgstr "" ++msgstr "Hollerithkonstante bei %0 gab %A mehr Zeichen an als bei %1 vorhanden" + + #: f/bad.def:97 + #, no-c-format + msgid "Missing close parenthese at %0 needed to match open parenthese at %1" +-msgstr "" ++msgstr "Schließende Klammer bei %0 benötigt, um öffnende Klammer bei %1 zu schließen" + + #: f/bad.def:100 + #, no-c-format + msgid "Integer at %0 too large" +-msgstr "" ++msgstr "Ganzzahl bei %0 zu groß" + + #: f/bad.def:123 + #, no-c-format + msgid "Period at %0 not followed by digits for floating-point number or by `NOT.', `TRUE.', or `FALSE.'" +-msgstr "" ++msgstr "Punkt bei %0 wird nicht von Ziffern für Fließkommazahlen oder von »NOT.«, »TRUE.« oder »FALSE.« gefolgt" + + #: f/bad.def:126 + #, no-c-format + msgid "Missing close-period between `.%A' at %0 and %1" +-msgstr "" ++msgstr "Schließ-Punkt zwischen ».%A« bei %0 und %1 fehlt" + + #: f/bad.def:129 + #, no-c-format + msgid "Invalid exponent at %0 for real constant at %1; nondigit `%A' in exponent field" +-msgstr "" ++msgstr "Ungültiger Exponent bei %0 für Real-Konstante bei %1; Nichtziffer »%A« in Exponentenfeld" + + #: f/bad.def:132 + #, no-c-format + msgid "Missing value at %1 for real-number exponent at %0" +-msgstr "" ++msgstr "Wert bei %1 für Real-Zahl-Exponent bei %0 fehlt" + + #: f/bad.def:135 + #, no-c-format + msgid "Expected binary operator between expressions at %0 and at %1" +-msgstr "" ++msgstr "Erwarteter Binäroperator zwischen Ausdrücken bei %0 und %1" + + #: f/bad.def:253 + #, no-c-format + msgid "Semicolon at %0 is an invalid token" +-msgstr "" ++msgstr "Semikolon bei %0 ist ungültiges Symbol" + + #: f/bad.def:271 + #, no-c-format + msgid "Extraneous comma in FORMAT statement at %0" +-msgstr "" ++msgstr "Zusätzliches Komma in FORTRAN-Anweisung bei %0" + + #: f/bad.def:274 + #, no-c-format + msgid "Missing comma in FORMAT statement at %0" +-msgstr "" ++msgstr "Komma in FORTRAN-Anweisung bei %0 fehlt" + + #: f/bad.def:277 + #, no-c-format + msgid "Spurious sign in FORMAT statement at %0" +-msgstr "" ++msgstr "Falsches Vorzeichen in FORMAT-Anweisung bei %0" + + #: f/bad.def:280 + #, no-c-format + msgid "Spurious number in FORMAT statement at %0" +-msgstr "" ++msgstr "Falsche Zahl in FORMAT-Anweisung bei %0" + + #: f/bad.def:283 + #, no-c-format + msgid "Spurious text trailing number in FORMAT statement at %0" +-msgstr "" ++msgstr "Falscher Text hinter Zahl in FORMAT-Anweisung bei %0" + + #: f/bad.def:291 + #, no-c-format + msgid "Unrecognized FORMAT specifier at %0" +-msgstr "" ++msgstr "Nicht erkannte FORMAT-Angabe bei %0" + + #: f/bad.def:419 + #, no-c-format + msgid "Missing close-parenthese(s) in FORMAT statement at %0" +-msgstr "" ++msgstr "Schließende Klammer(n) in FORMAT-Anweisung bei %0 fehlt" + + #: f/bad.def:422 + #, no-c-format + msgid "Missing number following period in FORMAT statement at %0" +-msgstr "" ++msgstr "Zahl hinter Punkt in FORMAT-Anweisung bei %0 fehlt" + + #: f/bad.def:425 + #, no-c-format + msgid "Missing number following `E' in FORMAT statement at %0" +-msgstr "" ++msgstr "Zahl hinter »E« in FORMAT-Anweisung bei %0 fehlt" + + #: f/bad.def:433 + #, no-c-format + msgid "Spurious trailing comma preceding terminator at %0" +-msgstr "" ++msgstr "Falsche folgende Kommas vor Endezeichen bei %0" + + #: f/bad.def:436 + #, no-c-format + msgid "At %0, specify OPERATOR instead of ASSIGNMENT for INTERFACE statement not specifying the assignment operator (=)" +-msgstr "" ++msgstr "Bei %0, OPERATOR statt ASSIGNMENT für nicht den Zuweisungsoperator (=) angebende INTERFACE-Anweisung angeben" + + #: f/bad.def:439 + #, no-c-format + msgid "At %0, specify ASSIGNMENT instead of OPERATOR for INTERFACE statement specifying the assignment operator (=)" +-msgstr "" ++msgstr "Bei %0, OPERATOR statt ASSIGNMENT für den Zuweisungsoperator (=) angebende INTERFACE-Anweisung angeben" + + #: f/bad.def:452 + #, no-c-format + msgid "Cannot specify =initialization-expr at %0 unless `::' appears before list of objects" +-msgstr "" ++msgstr "=initialization-expr bei %0 kann nicht angegeben werden, außer »::« tritt vor der Liste der Objekte auf" + + #: f/bad.def:455 + #, no-c-format + msgid "Reference to label at %1 inconsistent with its definition at %0" +-msgstr "" ++msgstr "Referenz auf Marke bei %1 mit seiner Definition bei %0 inkonsistent" + + #: f/bad.def:458 + #, no-c-format + msgid "Reference to label at %1 inconsistent with earlier reference at %0" +-msgstr "" ++msgstr "Referenz zur Marke bei %1 widerspricht früherer Referenz bei %0" + + #: f/bad.def:461 + #, no-c-format +@@ -18773,323 +18849,260 @@ + msgid "internal error - invalid Utf8 name" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse-scan.y:880 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:949 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1290 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1351 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1555 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1777 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1786 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1797 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1808 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1820 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1835 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1852 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1854 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1935 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2106 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2168 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2320 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2332 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2339 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2346 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2357 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2359 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2397 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2399 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2401 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2422 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2424 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2426 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2442 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2444 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2465 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2467 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2469 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2497 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2499 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2501 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2503 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2521 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2523 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2534 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2545 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2556 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2567 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2578 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2591 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2595 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2597 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2610 ++#: ../../gcc/java/parse-scan.y:880 ../../gcc/java/parse.y:949 ++#: ../../gcc/java/parse.y:1290 ../../gcc/java/parse.y:1351 ++#: ../../gcc/java/parse.y:1555 ../../gcc/java/parse.y:1777 ++#: ../../gcc/java/parse.y:1786 ../../gcc/java/parse.y:1797 ++#: ../../gcc/java/parse.y:1808 ../../gcc/java/parse.y:1820 ++#: ../../gcc/java/parse.y:1835 ../../gcc/java/parse.y:1852 ++#: ../../gcc/java/parse.y:1854 ../../gcc/java/parse.y:1935 ++#: ../../gcc/java/parse.y:2106 ../../gcc/java/parse.y:2168 ++#: ../../gcc/java/parse.y:2320 ../../gcc/java/parse.y:2332 ++#: ../../gcc/java/parse.y:2339 ../../gcc/java/parse.y:2346 ++#: ../../gcc/java/parse.y:2357 ../../gcc/java/parse.y:2359 ++#: ../../gcc/java/parse.y:2397 ../../gcc/java/parse.y:2399 ++#: ../../gcc/java/parse.y:2401 ../../gcc/java/parse.y:2422 ++#: ../../gcc/java/parse.y:2424 ../../gcc/java/parse.y:2426 ++#: ../../gcc/java/parse.y:2442 ../../gcc/java/parse.y:2444 ++#: ../../gcc/java/parse.y:2465 ../../gcc/java/parse.y:2467 ++#: ../../gcc/java/parse.y:2469 ../../gcc/java/parse.y:2497 ++#: ../../gcc/java/parse.y:2499 ../../gcc/java/parse.y:2501 ++#: ../../gcc/java/parse.y:2503 ../../gcc/java/parse.y:2521 ++#: ../../gcc/java/parse.y:2523 ../../gcc/java/parse.y:2534 ++#: ../../gcc/java/parse.y:2545 ../../gcc/java/parse.y:2556 ++#: ../../gcc/java/parse.y:2567 ../../gcc/java/parse.y:2578 ++#: ../../gcc/java/parse.y:2591 ../../gcc/java/parse.y:2595 ++#: ../../gcc/java/parse.y:2597 ../../gcc/java/parse.y:2610 + msgid "Missing term" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse-scan.y:882 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:721 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:759 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:784 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:970 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1325 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1531 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1533 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1762 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1788 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1799 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1810 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1822 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1837 ++#: ../../gcc/java/parse-scan.y:882 ../../gcc/java/parse.y:721 ++#: ../../gcc/java/parse.y:759 ../../gcc/java/parse.y:784 ++#: ../../gcc/java/parse.y:970 ../../gcc/java/parse.y:1325 ++#: ../../gcc/java/parse.y:1531 ../../gcc/java/parse.y:1533 ++#: ../../gcc/java/parse.y:1762 ../../gcc/java/parse.y:1788 ++#: ../../gcc/java/parse.y:1799 ../../gcc/java/parse.y:1810 ++#: ../../gcc/java/parse.y:1822 ../../gcc/java/parse.y:1837 + msgid "';' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:719 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:757 ++#: ../../gcc/java/parse.y:719 ../../gcc/java/parse.y:757 + msgid "Missing name" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:782 ++#: ../../gcc/java/parse.y:782 + msgid "'*' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:796 ++#: ../../gcc/java/parse.y:796 + msgid "Class or interface declaration expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:833 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:835 ++#: ../../gcc/java/parse.y:833 ../../gcc/java/parse.y:835 + msgid "Missing class name" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:838 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:842 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:850 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1010 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1271 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1273 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1597 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1848 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1880 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1942 ++#: ../../gcc/java/parse.y:838 ../../gcc/java/parse.y:842 ++#: ../../gcc/java/parse.y:850 ../../gcc/java/parse.y:1010 ++#: ../../gcc/java/parse.y:1271 ../../gcc/java/parse.y:1273 ++#: ../../gcc/java/parse.y:1597 ../../gcc/java/parse.y:1848 ++#: ../../gcc/java/parse.y:1880 ../../gcc/java/parse.y:1942 + msgid "'{' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:852 ++#: ../../gcc/java/parse.y:852 + msgid "Missing super class name" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:862 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:878 ++#: ../../gcc/java/parse.y:862 ../../gcc/java/parse.y:878 + msgid "Missing interface name" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:964 ++#: ../../gcc/java/parse.y:964 + msgid "Missing variable initializer" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:981 ++#: ../../gcc/java/parse.y:981 + msgid "Invalid declaration" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:984 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1069 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2143 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2165 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2169 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2204 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2281 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2291 ++#: ../../gcc/java/parse.y:984 ../../gcc/java/parse.y:1069 ++#: ../../gcc/java/parse.y:2143 ../../gcc/java/parse.y:2165 ++#: ../../gcc/java/parse.y:2169 ../../gcc/java/parse.y:2204 ++#: ../../gcc/java/parse.y:2281 ../../gcc/java/parse.y:2291 + msgid "']' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:988 ++#: ../../gcc/java/parse.y:988 + msgid "Unbalanced ']'" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1024 ++#: ../../gcc/java/parse.y:1024 + msgid "Invalid method declaration, method name required" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1029 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1034 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1039 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2026 ++#: ../../gcc/java/parse.y:1029 ../../gcc/java/parse.y:1034 ++#: ../../gcc/java/parse.y:1039 ../../gcc/java/parse.y:2026 + msgid "Identifier expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1044 ++#: ../../gcc/java/parse.y:1044 + msgid "Invalid method declaration, return type required" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1067 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1511 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1518 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1527 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1529 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1557 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1665 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1971 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2024 ++#: ../../gcc/java/parse.y:1067 ../../gcc/java/parse.y:1511 ++#: ../../gcc/java/parse.y:1518 ../../gcc/java/parse.y:1527 ++#: ../../gcc/java/parse.y:1529 ../../gcc/java/parse.y:1557 ++#: ../../gcc/java/parse.y:1665 ../../gcc/java/parse.y:1971 ++#: ../../gcc/java/parse.y:2024 + msgid "')' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1083 ++#: ../../gcc/java/parse.y:1083 + msgid "Missing formal parameter term" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1098 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1103 ++#: ../../gcc/java/parse.y:1098 ../../gcc/java/parse.y:1103 + msgid "Missing identifier" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1123 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1132 ++#: ../../gcc/java/parse.y:1123 ../../gcc/java/parse.y:1132 + msgid "Missing class type term" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1288 ++#: ../../gcc/java/parse.y:1288 + msgid "Invalid interface type" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1475 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1644 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1646 ++#: ../../gcc/java/parse.y:1475 ../../gcc/java/parse.y:1644 ++#: ../../gcc/java/parse.y:1646 + msgid "':' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1497 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1502 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1507 ++#: ../../gcc/java/parse.y:1497 ../../gcc/java/parse.y:1502 ++#: ../../gcc/java/parse.y:1507 + msgid "Invalid expression statement" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1525 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1553 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1593 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1661 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1729 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1850 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1928 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2018 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2020 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2028 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2264 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2266 ++#: ../../gcc/java/parse.y:1525 ../../gcc/java/parse.y:1553 ++#: ../../gcc/java/parse.y:1593 ../../gcc/java/parse.y:1661 ++#: ../../gcc/java/parse.y:1729 ../../gcc/java/parse.y:1850 ++#: ../../gcc/java/parse.y:1928 ../../gcc/java/parse.y:2018 ++#: ../../gcc/java/parse.y:2020 ../../gcc/java/parse.y:2028 ++#: ../../gcc/java/parse.y:2264 ../../gcc/java/parse.y:2266 + msgid "'(' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1595 ++#: ../../gcc/java/parse.y:1595 + msgid "Missing term or ')'" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1642 ++#: ../../gcc/java/parse.y:1642 + msgid "Missing or invalid constant expression" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1663 ++#: ../../gcc/java/parse.y:1663 + msgid "Missing term and ')' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1702 ++#: ../../gcc/java/parse.y:1702 + msgid "Invalid control expression" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1704 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1706 ++#: ../../gcc/java/parse.y:1704 ../../gcc/java/parse.y:1706 + msgid "Invalid update expression" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1731 ++#: ../../gcc/java/parse.y:1731 + msgid "Invalid init statement" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1931 ++#: ../../gcc/java/parse.y:1931 + msgid "Missing term or ')' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1973 ++#: ../../gcc/java/parse.y:1973 + msgid "'class' or 'this' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1975 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1977 ++#: ../../gcc/java/parse.y:1975 ../../gcc/java/parse.y:1977 + msgid "'class' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2022 ++#: ../../gcc/java/parse.y:2022 + msgid "')' or term expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2141 ++#: ../../gcc/java/parse.y:2141 + msgid "'[' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2219 ++#: ../../gcc/java/parse.y:2219 + msgid "Field expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2276 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2286 ++#: ../../gcc/java/parse.y:2276 ../../gcc/java/parse.y:2286 + msgid "Missing term and ']' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2390 ++#: ../../gcc/java/parse.y:2390 + msgid "']' expected, invalid type expression" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2393 ++#: ../../gcc/java/parse.y:2393 + msgid "Invalid type expression" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2505 ++#: ../../gcc/java/parse.y:2505 + msgid "Invalid reference type" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2977 ++#: ../../gcc/java/parse.y:2977 + msgid "Constructor invocation must be first thing in a constructor" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2979 ++#: ../../gcc/java/parse.y:2979 + msgid "Only constructors can invoke constructors" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2987 ++#: ../../gcc/java/parse.y:2987 + #, c-format + msgid ": `%s' JDK1.1(TM) feature" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:3046 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:3048 ++#: ../../gcc/java/parse.y:3046 ../../gcc/java/parse.y:3048 + #, c-format + msgid "" + "%s.\n" + "%s" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:6909 ++#: ../../gcc/java/parse.y:6909 + #, c-format + msgid "malformed .zip archive in CLASSPATH: %s" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:6980 ++#: ../../gcc/java/parse.y:6980 + #, c-format + msgid "Can't find default package `%s'. Check the CLASSPATH environment variable and the access to the archives" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12193 ++#: ../../gcc/java/parse.y:12193 + #, c-format + msgid "missing static field `%s'" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12198 ++#: ../../gcc/java/parse.y:12198 + #, c-format + msgid "not a static field `%s'" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12241 ++#: ../../gcc/java/parse.y:12241 + #, c-format + msgid "No case for %s" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:13173 ++#: ../../gcc/java/parse.y:13173 + #, c-format + msgid "unregistered operator %s" + msgstr "" +@@ -19428,1688 +19441,1372 @@ + msgid "[super ...] must appear in a method context" + msgstr "" + +-#: objc/objc-parse.y:2701 ++#: objc/objc-parse.y:2700 + msgid "`@end' must appear in an implementation context" + msgstr "" + +-#: objc/objc-parse.y:2914 ++#: objc/objc-parse.y:2913 + msgid "method definition not in class context" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:23 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:21 + msgid "Display this information" + msgstr "Diese Informationen anzeigen" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:29 +-msgid "--param =\tSet paramter to value. See below for a complete list of parameters" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:27 ++msgid "--param =\tSet parameter to value. See below for a complete list of parameters" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:38 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:36 + msgid "-A=\tAssert the to . Putting '-' before disables the to " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:41 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:39 + msgid "Do not discard comments" + msgstr "Kommentare nicht verwerfen" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:44 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:42 + msgid "Do not discard comments in macro expansions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:47 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:45 + msgid "-D[=]\tDefine a with as its value. If just is given, is taken to be 1" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:53 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:51 + msgid "-G\tPut global and static data smaller than bytes into a special section (on some targets)" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:56 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:54 + msgid "Print the name of header files as they are used" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:65 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:57 ++msgid "-I \tAdd to the end of the main include path. -I- gives more include path control; see info documentation" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:60 ++msgid "Generate make dependencies" ++msgstr "Make-Abhängigkeiten werden erstellt" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:63 + msgid "Generate make dependencies and compile" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:74 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:66 ++msgid "-MF \tWrite dependency output to the given file" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:69 + msgid "Treat missing header files as generated files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:80 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:72 ++msgid "Like -M but ignore system header files" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:75 + msgid "Like -MD but ignore system header files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:89 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:78 ++msgid "Generate phony targets for all headers" ++msgstr "Unechte Ziele für alle Headers erzeugen" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:81 + msgid "-MQ \tAdd a MAKE-quoted target" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:95 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:84 ++msgid "-MT \tAdd an unquoted target" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:87 + msgid "-O\tSet optimization level to " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:98 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:90 + msgid "Optimize for space rather than speed" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:101 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:93 + msgid "Do not generate #line directives" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:104 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:96 + msgid "-U\tUndefine " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:107 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:99 + msgid "This switch is deprecated; use -Wextra instead" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:113 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:105 + msgid "Warn about returning structures, unions or arrays" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:119 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:108 ++msgid "Enable most warning messages" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:111 + msgid "Warn about casting functions to incompatible types" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:122 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:114 + msgid "Warn about pointer casts which increase alignment" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:125 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:117 + msgid "Warn about casts which discard qualifiers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:128 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:120 + msgid "Warn about subscripts whose type is \"char\"" + msgstr "Vor Indizes mit Typ \"char\" warnen" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:137 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:123 ++msgid "Warn about possibly nested block comments, and C++ comments spanning more than one physical line" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:126 ++msgid "Synonym for -Wcomment" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:129 + msgid "Warn about possibly confusing type conversions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:140 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:132 + msgid "Warn when all constructors and destructors are private" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:143 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:135 + msgid "Warn when a declaration is found after a statement" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:146 +-msgid "Warn if deprecated class, method, or field is used" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:138 ++msgid "Warn about deprecated compiler features" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:149 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:141 + msgid "Warn about uses of __attribute__((deprecated)) declarations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:152 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:144 + msgid "Warn when an optimization pass is disabled" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:155 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:147 + msgid "Warn about compile-time integer division by zero" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:158 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:150 + msgid "Warn about violations of Effective C++ style rules" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:161 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:153 + msgid "Warn about stray tokens after #elif and #endif" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:164 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:156 + msgid "Treat all warnings as errors" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:167 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:159 + msgid "Make implicit function declarations an error" + msgstr "Fehler bei impliziten Funktionsdeklaration erzeugen" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:170 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:162 + msgid "Print extra (possibly unwanted) warnings" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:173 +-msgid "Warn if deprecated empty statements are found" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:176 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:165 + msgid "Warn if testing floating point numbers for equality" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:179 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:168 + msgid "Warn about printf/scanf/strftime/strfmon format string anomalies" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:182 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:171 + msgid "Warn if passing too many arguments to a function for its format string" + msgstr "Bei zu vielen Argumenten für eine Funktion (anhand Formatzeichenkette) warnen" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:185 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:174 + msgid "Warn about format strings that are not literals" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:188 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:177 + msgid "Warn about possible security problems with format functions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:191 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:180 + msgid "Warn about strftime formats yielding 2-digit years" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:200 +-msgid "Enable warnings about inter-procedural problems" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:206 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:192 + msgid "Warn about implicit function declarations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:209 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:195 + msgid "Warn when a declaration does not specify a type" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:215 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:198 ++msgid "Deprecated. This switch has no effect." ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:201 + msgid "Warn about variables which are initialized to themselves." + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:218 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:204 + msgid "Warn when an inlined function cannot be inlined" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:221 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:207 + msgid "Warn about invalid uses of the \"offsetof\" macro" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:224 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:210 + msgid "Warn about PCH files that are found but not used" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:227 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:213 + msgid "-Wlarger-than-\tWarn if an object is larger than bytes" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:230 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:216 + msgid "Do not warn about using \"long long\" when -pedantic" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:233 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:219 + msgid "Warn about suspicious declarations of \"main\"" + msgstr "Vor verdächtigen Deklarationen von \"main\" warnen" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:236 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:222 + msgid "Warn about possibly missing braces around initializers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:239 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:225 + msgid "Warn about global functions without previous declarations" + msgstr "Vor globalen Funktionen ohne vorherige Deklaration warnen" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:242 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:228 + msgid "Warn about functions which might be candidates for format attributes" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:245 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:231 + msgid "Warn about functions which might be candidates for __attribute__((noreturn))" + msgstr "Vor Funktionen, die Kandidaten für __attribute__((noreturn)) sind, warnen" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:248 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:234 + msgid "Warn about global functions without prototypes" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:251 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:237 + msgid "Warn about use of multi-character character constants" + msgstr "Bei Verwendung von Zeichenkonstanten mit mehreren Zeichen warnen" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:254 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:240 + msgid "Warn about \"extern\" declarations not at file scope" + msgstr "Vor \"extern\"-Deklarationen außerhalb des Dateisichtbarkeitsbereiches warnen" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:257 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:243 + msgid "Warn when non-templatized friend functions are declared within a template" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:260 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:246 + msgid "Warn about non-virtual destructors" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:266 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:252 + msgid "Warn if a C-style cast is used in a program" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:269 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:255 + msgid "Warn if an old-style parameter definition is used" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:272 +-msgid "Warn if .class files are out of date" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:275 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:258 + msgid "Warn about overloaded virtual function names" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:278 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:261 + msgid "Warn when the packed attribute has no effect on struct layout" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:281 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:264 + msgid "Warn when padding is required to align structure members" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:284 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:267 + msgid "Warn about possibly missing parentheses" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:287 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:270 + msgid "Warn when converting the type of pointers to member functions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:290 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:273 + msgid "Warn about function pointer arithmetic" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:293 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:276 + msgid "Warn if inherited methods are unimplemented" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:296 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:279 + msgid "Warn about multiple declarations of the same object" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:299 +-msgid "Warn if modifiers are specified when not necessary" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:302 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:282 + msgid "Warn when the compiler reorders code" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:305 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:285 + msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:308 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:288 + msgid "Warn if a selector has multiple methods" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:311 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:291 + msgid "Warn about possible violations of sequence point rules" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:314 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:294 + msgid "Warn when one local variable shadows another" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:317 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:297 + msgid "Warn about signed-unsigned comparisons" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:320 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:300 + msgid "Warn when overload promotes from unsigned to signed" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:323 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:303 + msgid "Warn about code which might break strict aliasing rules" + msgstr "Vor Code warnen, der strict-aliasing-Regeln verletzen könnte" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:326 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:306 + msgid "Warn about unprototyped function declarations" + msgstr "Vor Funktionsdeklarationen ohne Prototyp warnen" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:329 +-msgid "Warn about constructs with surprising meanings" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:332 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:309 + msgid "Warn about enumerated switches, with no default, missing a case" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:335 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:312 + msgid "Warn about enumerated switches missing a \"default:\" statement" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:338 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:315 + msgid "Warn about all enumerated switches missing a specific case" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:341 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:318 + msgid "Warn when synthesis behavior differs from Cfront" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:344 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:321 + msgid "Do not suppress warnings from system headers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:347 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:324 + msgid "Warn about features not present in traditional C" + msgstr "Vor Sprachmerkmalen, die in traditionellem C nicht verfügbar sind, warnen" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:356 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:327 ++msgid "Warn if trigraphs are encountered that might affect the meaning of the program" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:333 + msgid "Warn if an undefined macro is used in an #if directive" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:359 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:336 + msgid "Warn about uninitialized automatic variables" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:362 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:339 + msgid "Warn about unrecognized pragmas" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:365 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:342 + msgid "Warn about code that will never be executed" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:368 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:345 + msgid "Enable all -Wunused- warnings" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:371 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:348 + msgid "Warn when a function is unused" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:374 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:351 + msgid "Warn when a label is unused" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:377 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:354 + msgid "Warn about macros defined in the main file that are not used" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:380 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:357 + msgid "Warn when a function parameter is unused" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:383 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:360 + msgid "Warn when an expression value is unused" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:386 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:363 + msgid "Warn when a variable is unused" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:389 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:366 + msgid "Give strings the type \"array of char\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:392 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:369 + msgid "A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:395 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:372 + msgid "-aux-info \tEmit declaration information into " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:407 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:384 + msgid "-d\tEnable dumps from specific passes of the compiler" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:410 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:387 + msgid "-dumpbase \tSet the file basename to be used for dumps" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:413 +-msgid "--CLASSPATH\tDeprecated; use --classpath instead" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:425 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:399 + msgid "Enforce class member access control semantics" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:428 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:402 + msgid "Align the start of functions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:434 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:408 + msgid "Align labels which are only reached by jumping" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:440 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:414 + msgid "Align all labels" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:446 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:420 + msgid "Align the start of loops" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:455 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:429 + msgid "Change when template instances are emitted" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:458 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:432 + msgid "Specify that arguments may alias each other and globals" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:461 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:435 + msgid "Assume arguments may alias globals but not each other" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:464 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:438 + msgid "Assume arguments alias neither each other nor globals" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:467 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:441 + msgid "Recognize the \"asm\" keyword" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:479 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:444 + msgid "Generate unwind tables that are exact at each instruction boundary" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:482 +-msgid "Do not treat local variables and COMMON blocks as if they were named in SAVE statements" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:485 +-msgid "Backslashes in character and hollerith constants are special (not C-style)" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:488 +-msgid "Delete libU77 intrinsics with bad interfaces" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:491 +-msgid "Disable libU77 intrinsics with bad interfaces" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:494 +-msgid "Enable libU77 intrinsics with bad interfaces" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:497 +-msgid "Hide libU77 intrinsics with bad interfaces" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:500 +-msgid "--bootclasspath=\tReplace system path" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:503 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:447 + msgid "Generate code to check bounds before indexing arrays" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:506 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:450 + msgid "Replace add, compare, branch with branch on count register" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:509 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:453 + msgid "Use profiling information for branch probabilities" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:512 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:456 + msgid "Perform branch target load optimization before prologue / epilogue threading" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:515 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:459 + msgid "Perform branch target load optimization after prologue / epilogue threading" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:518 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:462 + msgid "Recognize built-in functions" + msgstr "Eingebaute Funktionen erkennen" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:524 +-msgid "-fcall-saved-\tMark as being preserved across functions" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:527 +-msgid "-fcall-used-\tMark as being corrupted by function calls" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:530 +-msgid "Save registers around function calls" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:533 +-msgid "Program written in strict mixed-case" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:536 +-msgid "Compile as if program written in lowercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:539 +-msgid "Preserve case used in program" +-msgstr "Im Programm verwendete Groß-/Kleinschreibung beibehalten" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:542 +-msgid "Program written in lowercase" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:468 ++msgid "-fcall-saved-\tMark as being preserved across functions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:545 +-msgid "Program written in uppercase" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:471 ++msgid "-fcall-used-\tMark as being corrupted by function calls" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:548 +-msgid "Compile as if program written in uppercase" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:474 ++msgid "Save registers around function calls" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:551 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:477 + msgid "Check the return value of new" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:557 +-msgid "--classpath=\tSet class path" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:560 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:480 + msgid "Do not put uninitialized globals in the common section" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:566 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:483 + msgid "Allow the arguments of the '?' operator to have different types" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:569 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:486 + msgid "Reduce the size of object files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:572 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:489 + msgid "Make string literals \"const char[]\" not \"char[]\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:575 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:492 + msgid "-fconst-string-class=\tUse class for constant strings" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:578 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:495 + msgid "Perform a register copy-propagation optimization pass" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:581 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:498 + msgid "Perform cross-jumping optimization" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:584 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:501 + msgid "When running CSE, follow jumps to their targets" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:587 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:504 + msgid "When running CSE, follow conditional jumps" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:590 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:507 + msgid "Place data items into their own section" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:593 +-msgid "Emit special debugging information for COMMON and EQUIVALENCE (disabled)" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:596 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:510 + msgid "Inline member functions by default" + msgstr "Standardmäßig »inline«-Elementfunktionen" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:599 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:513 + msgid "Defer popping functions args from stack until later" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:602 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:516 + msgid "Attempt to fill delay slots of branch instructions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:605 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:519 + msgid "Delete useless null pointer checks" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:608 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:522 + msgid "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source location at the beginning of line-wrapped diagnostics" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:611 +-msgid "Allow '$' in symbol names" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:614 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:525 + msgid "Permit '$' as an identifier character" + msgstr "'$' als Bezeichnerzeichen zulassen" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:620 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:528 ++msgid "-fdump-\tDump various compiler internals to a file" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:531 + msgid "Suppress output of instruction numbers and line number notes in debugging dumps" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:626 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:537 + msgid "Perform DWARF2 duplicate elimination" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:629 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:632 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:540 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:543 + msgid "Perform unused type elimination in debug info" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:641 +-msgid "Have front end emulate COMPLEX arithmetic to avoid bugs" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:644 +-msgid "--encoding=\tChoose input encoding (defaults from your locale)" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:647 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:546 + msgid "Generate code to check exception specifications" + msgstr "Code zur Ãœberprüfung von Exception-Spezifikationen erzeugen" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:653 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:552 + msgid "Enable exception handling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:656 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:555 + msgid "-fexec-charset=\tConvert all strings and character constants to character set " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:659 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:558 + msgid "Perform a number of minor, expensive optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:668 +-msgid "f2c-compatible code can be generated" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:671 +-msgid "Delete non-FORTRAN-77 intrinsics f2c supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:674 +-msgid "Disable non-FORTRAN-77 intrinsics f2c supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:677 +-msgid "Enable non-FORTRAN-77 intrinsics f2c supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:680 +-msgid "Hide non-FORTRAN-77 intrinsics f2c supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:683 +-msgid "Unsupported; generate libf2c-calling code" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:686 +-msgid "Program is written in typical FORTRAN 66 dialect" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:689 +-msgid "Program is written in typical Unix-f77 dialect" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:692 +-msgid "Program is written in Fortran-90-ish dialect" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:695 +-msgid "Delete non-FORTRAN-77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:698 +-msgid "Disable non-FORTRAN-77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:701 +-msgid "Enable non-FORTRAN-77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:704 +-msgid "Hide non-FORTRAN-77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:716 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:567 + msgid "Assume no NaNs or infinities are generated" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:719 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:570 + msgid "-ffixed-\tMark as being unavailable to the compiler" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:725 +-msgid "ffixed-line-length-\tSet the maximum line length to " +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:728 +-msgid "Unsupported; affects code generation of arrays" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:731 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:579 + msgid "Do not store floats in registers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:734 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:582 + msgid "Scope of for-init-statement variables is local to the loop" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:737 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:585 + msgid "Copy memory address constants into registers before use" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:740 +-msgid "Always check for non gcj generated classes archives" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:743 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:588 + msgid "Copy memory operands into registers before use" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:746 +-msgid "Generate code to check subscript and substring bounds" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:749 +-msgid "Program is written in Fortran-90-ish free form" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:752 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:591 + msgid "Do not assume that standard C libraries and \"main\" exist" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:755 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:594 + msgid "Allow function addresses to be held in registers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:758 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:597 + msgid "Place each function into its own section" + msgstr "Jede Funktion in ihren eigenen Abschnitt platzieren" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:761 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:600 + msgid "Perform global common subexpression elimination" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:764 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:603 + msgid "Perform redundant load after store elimination in global common subexpression elimination" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:767 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:606 + msgid "Perform enhanced load motion during global common subexpression elimination" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:770 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:609 + msgid "Perform store motion after global common subexpression elimination" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:773 +-msgid "Enable fatal diagnostics about inter-procedural problems" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:776 +-msgid "Delete non-FORTRAN-77 intrinsics g77 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:779 +-msgid "Disable non-FORTRAN 77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:782 +-msgid "Enable non-FORTRAN 77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:785 +-msgid "Hide non-FORTRAN 77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:788 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:612 + msgid "Recognize GNU-defined keywords" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:791 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:615 + msgid "Generate code for GNU runtime environment" + msgstr "Code für die GNU-Laufzeitumgebung erzeugen" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:794 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:618 + msgid "Enable guessing of branch probabilities" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:809 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:630 + msgid "Assume normal C execution environment" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:812 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:633 + msgid "Enable support for huge objects" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:815 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:636 + msgid "Process #ident directives" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:818 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:639 + msgid "Perform conversion of conditional jumps to branchless equivalents" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:821 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:642 + msgid "Perform conversion of conditional jumps to conditional execution" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:824 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:645 + msgid "Export functions even if they can be inlined" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:827 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:648 + msgid "Emit implicit instantiations of inline templates" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:830 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:651 + msgid "Emit implicit instantiations of templates" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:833 +-msgid "Use offset tables for virtual method calls" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:836 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:654 + msgid "Do not generate .size directives" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:839 +-msgid "Initialize local vars and arrays to zero" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:657 ++msgid "Pay attention to the \"inline\" keyword" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:842 +-msgid "Pay attention to the \"inline\" keyword" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:660 ++msgid "Integrate simple functions into their callers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:851 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:666 + msgid "-finline-limit=\tLimit the size of inlined functions to " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:854 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:669 + msgid "-finput-charset= Specify the default character set for source files." + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:857 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:672 + msgid "Instrument function entry and exit with profiling calls" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:860 +-msgid "Intrinsics letters in arbitrary cases" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:863 +-msgid "Intrinsics spelled as e.g. SqRt" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:866 +-msgid "Intrinsics in lowercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:869 +-msgid "Intrinsics in uppercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:872 +-msgid "Assume native functions are implemented using JNI" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:875 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:675 + msgid "Generate code for functions even if they are fully inlined" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:878 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:678 + msgid "Emit static const variables even if they are not used" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:884 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:684 + msgid "Give external symbols a leading underscore" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:887 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:687 + msgid "Perform loop optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:890 +-msgid "Language keyword letters in arbitrary cases" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:893 +-msgid "Language keywords spelled as e.g. IOStat" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:896 +-msgid "Language keywords in lowercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:899 +-msgid "Language keywords in uppercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:902 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:690 + msgid "Set errno after built-in math functions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:905 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:693 + msgid "Report on permanent memory allocation" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:908 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:696 + msgid "Attempt to merge identical constants and constant variables" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:911 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:699 + msgid "Attempt to merge identical constants across compilation units" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:914 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:702 + msgid "-fmessage-length=\tLimit diagnostics to characters per line. 0 suppresses line-wrapping" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:917 +-msgid "Delete MIL-STD 1753 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:920 +-msgid "Disable MIL-STD 1753 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:923 +-msgid "Enable MIL-STD 1753 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:926 +-msgid "Hide MIL-STD 1753 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:929 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:705 + msgid "Force all loop invariant computations out of loops" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:932 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:708 + msgid "Don't warn about uses of Microsoft extensions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:941 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:717 + msgid "Use graph-coloring register allocation" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:944 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:720 + msgid "Generate code for NeXT (Apple Mac OS X) runtime environment" + msgstr "Code für die NeXT (Apple Mac OS X) Laufzeitumgebung erzeugen" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:947 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:723 + msgid "Assume that receivers of Objective-C messages may be nil" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:950 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:726 + msgid "Support synchronous non-call exceptions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:959 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:735 + msgid "Enable Objective-C exception and synchronization syntax" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:962 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1286 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:738 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:978 + msgid "Perform loop unrolling for all loops" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:965 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1289 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:741 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:981 + msgid "Perform loop unrolling when iteration count is known" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:968 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:744 + msgid "When possible do not generate stack frames" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:971 +-msgid "Take at least one trip through each iterative DO loop" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:974 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:747 + msgid "Recognize C++ kewords like \"compl\" and \"xor\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:977 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:750 + msgid "Do the full register move optimization pass" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:980 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:753 + msgid "Optimize sibling and tail recursive calls" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:983 +-msgid "Enable optimization of static class initialization code" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:986 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:756 + msgid "Enable optional diagnostics" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:992 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:759 + msgid "Pack structure members together without holes" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:995 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:762 + msgid "Return small aggregates in memory, not registers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1001 +-msgid "Warn about use of (only a few for now) Fortran extensions" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1004 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:768 + msgid "Perform loop peeling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1007 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:771 + msgid "Enable machine specific peephole optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1010 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:774 + msgid "Enable an RTL peephole pass before sched2" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1013 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:777 + msgid "Downgrade conformance errors to warnings" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1016 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:780 + msgid "Generate position-independent code if possible" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1019 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:783 + msgid "Generate position-independent code for executables if possible" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1022 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:786 + msgid "Generate prefetch instructions, if available, for arrays in loops" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1028 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:789 ++msgid "Treat the input file as already preprocessed" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:792 + msgid "Enable basic program profiling code" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1031 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:795 + msgid "Insert arc-based program profiling code" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1034 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:798 + msgid "Enable common options for generating profile info for profile feedback directed optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1037 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:801 + msgid "Enable common options for performing profile feedback directed optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1040 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:804 + msgid "Insert code to profile values of expressions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1046 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:810 + msgid "-frandom-seed=\tMake compile reproducible using " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1049 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:813 + msgid "Strength reduce all loop general induction variables" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1052 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:816 + msgid "Return small aggregates in registers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1055 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:819 + msgid "Enables a register move optimization" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1058 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:822 + msgid "Perform a register renaming optimization pass" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1061 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:825 + msgid "Reorder basic blocks to improve code placement" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1064 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:828 + msgid "Reorder functions to improve code placement" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1067 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:831 + msgid "Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1070 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:834 + msgid "Enable automatic template instantiation" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1073 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:837 + msgid "Add a common subexpression elimination pass after loop optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1076 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:840 + msgid "Run the loop optimizer twice" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1079 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:843 + msgid "Disable optimizations that assume default FP rounding behavior" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1082 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:846 + msgid "Generate run time type descriptor information" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1085 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:849 + msgid "Enable scheduling across basic blocks" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1088 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:852 + msgid "Allow speculative motion of non-loads" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1091 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:855 + msgid "Allow speculative motion of some loads" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1094 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:858 + msgid "Allow speculative motion of more loads" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1097 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:861 + msgid "Allow premature scheduling of queued insns" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1100 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:864 + msgid "Set dependence distance checking in premature scheduling of queued insns" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1103 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:867 + msgid "-fsched-stalled-insns-dep= Set dependence distance checking in premature scheduling of queued insns" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1106 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:870 + msgid "-fsched-stalled-insns= Set number of queued insns that can be prematurely scheduled" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1109 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:873 + msgid "-fsched-verbose=\tSet the verbosity level of the scheduler" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1112 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:876 + msgid "If scheduling post reload, do superblock scheduling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1115 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:879 + msgid "If scheduling post reload, do trace scheduling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1118 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:882 + msgid "Reschedule instructions before register allocation" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1121 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:885 + msgid "Reschedule instructions after register allocation" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1124 +-msgid "Allow appending a second underscore to externals" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1127 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:888 + msgid "Mark data as shared rather than private" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1130 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:891 + msgid "Use the same size for double as for float" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1133 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:894 + msgid "Use the narrowest integer type possible for enumeration types" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1136 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:897 + msgid "Force the underlying type for \"wchar_t\" to be \"unsigned short\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1142 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:903 + msgid "Disable optimizations observable by IEEE signaling NaNs" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1145 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:906 + msgid "When \"signed\" or \"unsigned\" is not given make the bitfield signed" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1148 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:909 + msgid "Make \"char\" signed by default" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1151 +-msgid "Do not print names of program units as they are compiled" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1154 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:912 + msgid "Convert floating point constants to single precision constants" + msgstr "Fließkommakonstanten in Konstanten einfacher Genauigkeit konvertieren" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1157 +-msgid "Internally convert most source to lowercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1160 +-msgid "Internally preserve source case" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1163 +-msgid "Internally convert most source to uppercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1169 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:918 + msgid "Insert stack checking code into the program" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1175 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:924 + msgid "-fstack-limit-register=\tTrap if the stack goes past " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1178 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:927 + msgid "-fstack-limit-symbol=\tTrap if the stack goes past symbol " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1181 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:930 + msgid "Display statistics accumulated during compilation" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1184 +-msgid "Enable assignability checks for stores into object arrays" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1187 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:933 + msgid "Perform strength reduction optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1190 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:936 + msgid "Assume strict aliasing rules apply" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1199 +-msgid "Symbol names spelled in mixed case" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1202 +-msgid "Symbol names in lowercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1205 +-msgid "Symbol names in uppercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1208 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:942 + msgid "Check for syntax errors, then stop" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1211 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:945 + msgid "-ftabstop=\tDistance between tab stops for column reporting" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1214 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:948 + msgid "-ftemplate-depth-\tSpecify maximum template instantiation depth" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1217 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:951 + msgid "Create data files needed by \"gcov\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1223 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:957 + msgid "Perform jump threading optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1226 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:960 + msgid "Report the time taken by each compiler pass" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1229 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:963 + msgid "-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tSet the default thread-local storage code generation model" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1232 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:966 + msgid "Perform superblock formation via tail duplication" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1235 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:969 + msgid "Assume floating-point operations can trap" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1238 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:972 + msgid "Trap for signed overflow in addition, subtraction and multiplication" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1241 +-msgid "Make prefix-radix non-decimal constants be typeless" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1244 +-msgid "Allow all ugly features" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1247 +-msgid "Hollerith and typeless can be passed as arguments" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1250 +-msgid "Allow ordinary copying of ASSIGN'ed vars" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1253 +-msgid "Dummy array dimensioned to (1) is assumed-size" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1256 +-msgid "Trailing comma in procedure call denotes null argument" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1259 +-msgid "Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1262 +-msgid "Initialization via DATA and PARAMETER is not type-compatible" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1265 +-msgid "Allow INTEGER and LOGICAL interchangeability" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1268 +-msgid "Append underscores to externals" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1271 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:975 + msgid "Compile whole compilation unit at a time" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1274 +-msgid "Delete libU77 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1277 +-msgid "Disable libU77 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1280 +-msgid "Enable libU77 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1283 +-msgid "Hide libU77 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1292 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:984 + msgid "Allow math optimizations that may violate IEEE or ISO standards" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1295 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:987 + msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1298 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:990 + msgid "Make \"char\" unsigned by default" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1301 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:993 + msgid "Perform loop unswitching" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1304 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:996 + msgid "Just generate unwind tables for exception handling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1310 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:999 + msgid "Use __cxa_atexit to register destructors" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1316 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1002 + msgid "Add extra commentary to assembler output" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1319 +-msgid "Print g77-specific version information and run internal tests" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1322 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1005 + msgid "Use expression value profiles in optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1325 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1008 + msgid "Discard unused virtual functions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1328 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1011 + msgid "Implement vtables using thunks" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1331 +-msgid "Program is written in VXT (Digital-like) FORTRAN" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1334 +-msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1337 +-msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1340 +-msgid "Enable non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1343 +-msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1349 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1014 + msgid "Emit common-like symbols as weak symbols" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1352 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1017 + msgid "Construct webs and split unrelated uses of single variable" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1355 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1020 + msgid "-fwide-exec-charset=\tConvert all wide strings and character constants to character set " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1358 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1023 + msgid "Generate a #line directive pointing at the current working directory" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1361 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1026 + msgid "Assume signed arithmetic overflow wraps around" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1364 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1029 + msgid "Store strings in writable data section" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1367 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1032 + msgid "Emit cross referencing information" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1370 +-msgid "Print internal debugging-related information" +-msgstr "Interne Testinformationen ausgeben" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1373 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1035 + msgid "Put zero initialized data in the bss section" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1376 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1038 + msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1379 +-msgid "Treat initial values of 0 like non-zero values" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1382 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1041 + msgid "Generate debug information in default format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1385 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1044 + msgid "Generate debug information in COFF format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1388 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1047 + msgid "Generate debug information in DWARF v2 format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1391 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1050 + msgid "Dump declarations to a .decl file" + msgstr "Deklaration in .decl-Datei ausgeben" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1394 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1053 + msgid "Generate debug information in default extended format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1397 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1056 + msgid "Generate debug information in STABS format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1400 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1059 + msgid "Generate debug information in extended STABS format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1403 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1062 + msgid "Generate debug information in VMS format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1406 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1065 + msgid "Generate debug information in XCOFF format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1409 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1068 + msgid "Generate debug information in extended XCOFF format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1412 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1071 + msgid "-idirafter \tAdd to the end of the system include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1415 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1074 + msgid "-imacros \tAccept definition of macros in " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1418 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1077 + msgid "-include \tInclude the contents of before other files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1421 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1080 + msgid "-iprefix \tSpecify as a prefix for next two options" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1424 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1083 + msgid "-isysroot \tSet to be the system root directory" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1427 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1086 + msgid "-isystem \tAdd to the start of the system include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1430 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1089 + msgid "-iwithprefix \tAdd to the end of the system include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1433 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1092 + msgid "-iwithprefixbefore \tAdd to the end of the main include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1445 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1104 + msgid "Do not search standard system include directories (those specified with -isystem will still be used)" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1448 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1107 + msgid "Do not search standard system include directories for C++" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1451 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1110 + msgid "-o \tPlace output into " + msgstr "-o \tAusgabe in schreiben" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1454 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1113 + msgid "Enable function profiling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1457 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1116 + msgid "Issue warnings needed for strict compliance to the standard" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1460 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1119 + msgid "Like -pedantic but issue them as errors" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1463 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1122 + msgid "Generate C header of platform-specific features" + msgstr "C-Header mit Plattform-spezifischen Merkmalen erzeugen" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1466 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1125 + msgid "Do not display functions compiled or elapsed time" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1469 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1128 + msgid "Remap file names when including files" + msgstr "Dateinamen beim Einfügen von Dateien neu abbilden" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1472 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1131 + msgid "Conform to the ISO 1998 C++ standard" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1475 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1134 + msgid "Conform to the ISO 1990 C standard" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1478 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1137 + msgid "Conform to the ISO 1999 C standard" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1481 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1502 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1505 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1140 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1161 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1164 + msgid "Deprecated in favor of -std=c99" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1484 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1143 + msgid "Conform to the ISO 1998 C++ standard with GNU extensions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1487 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1146 + msgid "Conform to the ISO 1990 C standard with GNU extensions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1490 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1149 + msgid "Conform to the ISO 1999 C standard with GNU extensions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1493 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1152 + msgid "Deprecated in favor of -std=gnu99" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1496 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1155 + msgid "Deprecated in favor of -std=c89" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1499 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1158 + msgid "Conform to the ISO 1990 C standard as amended in 1994" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1508 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1167 + msgid "Enable traditional preprocessing" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1511 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1170 + msgid "-trigraphs\tSupport ISO C trigraphs" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1514 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1173 + msgid "Do not predefine system-specific and GCC-specific macros" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1517 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1176 + msgid "Enable verbose output" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1523 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1179 ++msgid "Display the compiler's version" ++msgstr "Compiler-Version anzeigen" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1182 + msgid "Suppress warnings" + msgstr "" + +-#: config/i386/freebsd-aout.h:215 config/rs6000/sysv4.h:1089 ++#: config/i386/cygwin.h:29 ++msgid "mno-cygwin and mno-win32 are not compatible" ++msgstr "" ++ ++#: config/i386/cygwin.h:70 config/i386/mingw32.h:58 ++msgid "shared and mdll are not compatible" ++msgstr "" ++ ++#: config/i386/freebsd-aout.h:215 + msgid "`-p' not supported; use `-pg' and gprof(1)" + msgstr "»-p« wird nicht unterstützt; verwenden Sie »-pg« und gprof(1)" + +@@ -21121,49 +20818,62 @@ + msgid "GCC does not support -CC without using -E" + msgstr "GCC unterstützt nicht -CC ohne -E" + ++#: config/i386/sco5.h:191 ++msgid "-pg not supported on this platform" ++msgstr "-pg wird auf dieser Plattform nicht unterstützt" ++ ++#: config/i386/sco5.h:192 ++msgid "-p and -pp specified - pick one" ++msgstr "" ++ ++#: config/i386/sco5.h:266 ++msgid "-G and -static are mutually exclusive" ++msgstr "" ++ ++#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22 ++#: config/sparc/sol2-bi.h:167 config/sparc/sol2-bi.h:172 ++msgid "does not support multilib" ++msgstr "unterstützt nicht multilib" ++ + #: config/sparc/linux64.h:211 config/sparc/linux64.h:222 + #: config/sparc/netbsd-elf.h:140 config/sparc/netbsd-elf.h:159 + #: config/sparc/sol2-bi.h:195 config/sparc/sol2-bi.h:205 + msgid "may not use both -m32 and -m64" + msgstr "-m32 und -m64 können nicht zusammen angegeben werden" + +-#: config/i386/mingw32.h:58 config/i386/cygwin.h:70 +-msgid "shared and mdll are not compatible" +-msgstr "" +- +-#: config/darwin.h:215 ++#: config/darwin.h:222 + msgid "-current_version only allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:218 ++#: config/darwin.h:225 + msgid "-install_name only allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:223 ++#: config/darwin.h:230 + msgid "-bundle not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:224 ++#: config/darwin.h:231 + msgid "-bundle_loader not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:225 ++#: config/darwin.h:232 + msgid "-client_name not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:228 ++#: config/darwin.h:235 + msgid "-force_cpusubtype_ALL not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:229 ++#: config/darwin.h:236 + msgid "-force_flat_namespace not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:231 ++#: config/darwin.h:238 + msgid "-keep_private_externs not allowed with -dynamiclib" + msgstr "-keep_private_externs ist mit -dynamiclib nicht erlaubt" + +-#: config/darwin.h:232 ++#: config/darwin.h:239 + msgid "-private_bundle not allowed with -dynamiclib" + msgstr "-private_bundle ist mit -dynamiclib nicht erlaubt" + +@@ -21179,47 +20889,10 @@ + msgid "may not use both -EB and -EL" + msgstr "" + +-#: config/mips/mips.h:988 +-msgid "-pipe is not supported" +-msgstr "-pipe wird nicht unterstützt" +- +-#: java/jvspec.c:80 ada/lang-specs.h:34 gcc.c:767 +-msgid "-pg and -fomit-frame-pointer are incompatible" +-msgstr "" +- +-#: java/lang-specs.h:34 +-msgid "-fjni and -femit-class-files are incompatible" +-msgstr "" +- +-#: java/lang-specs.h:35 +-msgid "-fjni and -femit-class-file are incompatible" +-msgstr "" +- +-#: java/lang-specs.h:36 java/lang-specs.h:37 +-msgid "-femit-class-file should used along with -fsyntax-only" +-msgstr "" +- + #: treelang/lang-specs.h:52 + msgid "-pg or -p and -fomit-frame-pointer are incompatible" + msgstr "" + +-#: config/sparc/sol2-bi.h:167 config/sparc/sol2-bi.h:172 +-#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22 +-msgid "does not support multilib" +-msgstr "unterstützt nicht multilib" +- +-#: config/i386/sco5.h:191 +-msgid "-pg not supported on this platform" +-msgstr "-pg wird auf dieser Plattform nicht unterstützt" +- +-#: config/i386/sco5.h:192 +-msgid "-p and -pp specified - pick one" +-msgstr "" +- +-#: config/i386/sco5.h:266 +-msgid "-G and -static are mutually exclusive" +-msgstr "" +- + #: config/arm/arm.h:198 + msgid "-mapcs-26 and -mapcs-32 may not be used together" + msgstr "" +@@ -21236,6 +20909,14 @@ + msgid "the m210 does not have little endian support" + msgstr "" + ++#: config/mips/mips.h:988 ++msgid "-pipe is not supported" ++msgstr "-pipe wird nicht unterstützt" ++ ++#: ada/lang-specs.h:34 java/jvspec.c:80 gcc.c:767 ++msgid "-pg and -fomit-frame-pointer are incompatible" ++msgstr "" ++ + #: ada/lang-specs.h:36 + msgid "one of -c, -S, -gnatc, -gnatz, or -gnats is required for Ada" + msgstr "" +@@ -21248,8 +20929,16 @@ + msgid "-msingle-float and -msoft-float can not both be specified" + msgstr "" + +-#: config/rs6000/darwin.h:98 +-msgid " conflicting code gen style switches are used" ++#: java/lang-specs.h:34 ++msgid "-fjni and -femit-class-files are incompatible" ++msgstr "" ++ ++#: java/lang-specs.h:35 ++msgid "-fjni and -femit-class-file are incompatible" ++msgstr "" ++ ++#: java/lang-specs.h:36 java/lang-specs.h:37 ++msgid "-femit-class-file should used along with -fsyntax-only" + msgstr "" + + #: gcc.c:743 +@@ -21260,10 +20949,16 @@ + msgid "-E required when input is from standard input" + msgstr "" + +-#: config/i386/cygwin.h:29 +-msgid "mno-cygwin and mno-win32 are not compatible" ++#: config/rs6000/darwin.h:98 ++msgid " conflicting code gen style switches are used" + msgstr "" + ++#~ msgid "Preserve case used in program" ++#~ msgstr "Im Programm verwendete Groß-/Kleinschreibung beibehalten" ++ ++#~ msgid "Print internal debugging-related information" ++#~ msgstr "Interne Testinformationen ausgeben" ++ + #~ msgid "pointer to a member used in arithmetic" + #~ msgstr "Zeiger auf Element in Arithmetik verwendet" + +@@ -21351,9 +21046,6 @@ + #~ msgid "ISO C forbids parameter `%s' shadowing typedef" + #~ msgstr "ISO-C verbietet typedef verdeckenden Parameter »%s«" + +-#~ msgid "parameter `%s' points to incomplete type" +-#~ msgstr "Parameter »%s« zeigt auf unvollständigen Typen" +- + #~ msgid "parameter points to incomplete type" + #~ msgstr "Parameter zeigt auf unvollständigen Typen" + +Index: gcc/po/el.po +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/po/el.po,v +retrieving revision 1.3.8.3 +retrieving revision 1.3.8.4 +diff -u -r1.3.8.3 -r1.3.8.4 +--- gcc/po/el.po 14 Sep 2004 20:37:11 -0000 1.3.8.3 ++++ gcc/po/el.po 7 Nov 2004 19:59:12 -0000 1.3.8.4 +@@ -6,7 +6,7 @@ + msgstr "" + "Project-Id-Version: gcc 3.2\n" + "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" +-"POT-Creation-Date: 2004-07-01 11:41-0700\n" ++"POT-Creation-Date: 2004-11-04 19:12-0800\n" + "PO-Revision-Date: 2002-08-18 15:46+0100\n" + "Last-Translator: Simos Xenitellis \n" + "Language-Team: Greek \n" +@@ -34,16 +34,16 @@ + msgid "`%s' attribute only applies to function types" + msgstr "" + +-#: attribs.c:416 c-common.c:4307 c-common.c:4326 c-common.c:4344 +-#: c-common.c:4371 c-common.c:4390 c-common.c:4413 c-common.c:4436 +-#: c-common.c:4462 c-common.c:4496 c-common.c:4540 c-common.c:4568 +-#: c-common.c:4596 c-common.c:4615 c-common.c:4870 c-common.c:4892 +-#: c-common.c:4927 c-common.c:4994 c-common.c:5040 c-common.c:5098 +-#: c-common.c:5129 c-common.c:5475 c-common.c:5498 c-common.c:5537 +-#: config/arm/arm.c:2281 config/arm/arm.c:2308 config/avr/avr.c:4539 +-#: config/h8300/h8300.c:4284 config/h8300/h8300.c:4307 config/i386/i386.c:1620 +-#: config/i386/i386.c:15397 config/i386/winnt.c:86 config/ia64/ia64.c:1057 +-#: config/ip2k/ip2k.c:3151 ++#: attribs.c:416 c-common.c:4306 c-common.c:4325 c-common.c:4343 ++#: c-common.c:4370 c-common.c:4389 c-common.c:4412 c-common.c:4435 ++#: c-common.c:4461 c-common.c:4495 c-common.c:4539 c-common.c:4567 ++#: c-common.c:4595 c-common.c:4614 c-common.c:4881 c-common.c:4903 ++#: c-common.c:4938 c-common.c:5005 c-common.c:5051 c-common.c:5109 ++#: c-common.c:5140 c-common.c:5440 c-common.c:5463 c-common.c:5502 ++#: config/arm/arm.c:2281 config/arm/arm.c:2308 config/avr/avr.c:4504 ++#: config/h8300/h8300.c:4284 config/h8300/h8300.c:4307 config/i386/i386.c:1626 ++#: config/i386/i386.c:15398 config/i386/winnt.c:86 config/ia64/ia64.c:1057 ++#: config/ip2k/ip2k.c:3151 config/rs6000/rs6000.c:15035 + #, c-format + msgid "`%s' attribute ignored" + msgstr "" +@@ -119,7 +119,7 @@ + + #. We can, however, treat "undefined" any way we please. + #. Call abort to encourage the user to fix the program. +-#: builtins.c:4134 c-typeck.c:1733 ++#: builtins.c:4134 c-typeck.c:1713 + msgid "if this code is reached, the program will abort" + msgstr "" + +@@ -156,407 +156,412 @@ + msgid "target format does not support infinity" + msgstr "" + +-#: c-common.c:917 ++#: c-common.c:916 + msgid "%Hsuggest explicit braces to avoid ambiguous `else'" + msgstr "" + +-#: c-common.c:1141 ++#: c-common.c:1140 + msgid "%J'%D' is not defined outside of function scope" + msgstr "" + +-#: c-common.c:1161 ++#: c-common.c:1160 + #, c-format + msgid "string length `%d' is greater than the length `%d' ISO C%d compilers are required to support" + msgstr "" + +-#: c-common.c:1201 ++#: c-common.c:1200 + msgid "overflow in constant expression" + msgstr "" + +-#: c-common.c:1221 ++#: c-common.c:1220 + msgid "integer overflow in expression" + msgstr "" + +-#: c-common.c:1230 ++#: c-common.c:1229 + #, fuzzy + msgid "floating point overflow in expression" + msgstr "Åîáßñåóç êéíçôÞò õðïäéáóôïëÞò" + +-#: c-common.c:1236 ++#: c-common.c:1235 + #, fuzzy + msgid "vector overflow in expression" + msgstr "Åîáßñåóç êéíçôÞò õðïäéáóôïëÞò" + + #. This detects cases like converting -129 or 256 to unsigned char. +-#: c-common.c:1258 ++#: c-common.c:1257 + msgid "large integer implicitly truncated to unsigned type" + msgstr "" + +-#: c-common.c:1260 ++#: c-common.c:1259 + msgid "negative integer implicitly converted to unsigned type" + msgstr "" + +-#: c-common.c:1306 ++#: c-common.c:1305 + msgid "overflow in implicit constant conversion" + msgstr "" + +-#: c-common.c:1442 ++#: c-common.c:1441 + #, c-format + msgid "operation on `%s' may be undefined" + msgstr "" + +-#: c-common.c:1726 ++#: c-common.c:1725 + msgid "expression statement has incomplete type" + msgstr "" + +-#: c-common.c:1758 ++#: c-common.c:1757 + msgid "case label does not reduce to an integer constant" + msgstr "" + +-#: c-common.c:2088 ++#: c-common.c:2087 + #, fuzzy + msgid "invalid truth-value expression" + msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç" + +-#: c-common.c:2139 ++#: c-common.c:2138 + #, fuzzy, c-format + msgid "invalid operands to binary %s" + msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'" + +-#: c-common.c:2373 ++#: c-common.c:2372 + msgid "comparison is always false due to limited range of data type" + msgstr "" + +-#: c-common.c:2375 ++#: c-common.c:2374 + msgid "comparison is always true due to limited range of data type" + msgstr "" + +-#: c-common.c:2445 ++#: c-common.c:2444 + msgid "comparison of unsigned expression >= 0 is always true" + msgstr "" + +-#: c-common.c:2454 ++#: c-common.c:2453 + msgid "comparison of unsigned expression < 0 is always false" + msgstr "" + +-#: c-common.c:2499 ++#: c-common.c:2498 + msgid "pointer of type `void *' used in arithmetic" + msgstr "" + +-#: c-common.c:2505 ++#: c-common.c:2504 + msgid "pointer to a function used in arithmetic" + msgstr "" + +-#: c-common.c:2511 ++#: c-common.c:2510 + msgid "pointer to member function used in arithmetic" + msgstr "" + +-#: c-common.c:2600 f/com.c:14734 ++#: c-common.c:2599 f/com.c:14734 + msgid "struct type value used where scalar is required" + msgstr "" + +-#: c-common.c:2604 f/com.c:14738 ++#: c-common.c:2603 f/com.c:14738 + msgid "union type value used where scalar is required" + msgstr "" + +-#: c-common.c:2608 f/com.c:14742 ++#: c-common.c:2607 f/com.c:14742 + msgid "array type value used where scalar is required" + msgstr "" + + #. Common Ada/Pascal programmer's mistake. We always warn + #. about this since it is so bad. +-#: c-common.c:2645 ++#: c-common.c:2644 + msgid "the address of `%D', will always evaluate as `true'" + msgstr "" + +-#: c-common.c:2739 f/com.c:14874 ++#: c-common.c:2738 f/com.c:14874 + msgid "suggest parentheses around assignment used as truth value" + msgstr "" + +-#: c-common.c:2785 c-common.c:2825 ++#: c-common.c:2784 c-common.c:2824 + #, fuzzy + msgid "invalid use of `restrict'" + msgstr "ìç Ýãêõñïò áñéèìüò áðü ãñáììÝò" + +-#: c-common.c:2935 ++#: c-common.c:2934 + #, fuzzy + msgid "invalid application of `sizeof' to a function type" + msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'" + +-#: c-common.c:2945 ++#: c-common.c:2944 + #, fuzzy, c-format + msgid "invalid application of `%s' to a void type" + msgstr "ìç Ýãêõñïò ÷áñáêôÞñáò `%c' óôï ôýðï áëöáñéèìçôéêïý `%s'" + +-#: c-common.c:2951 ++#: c-common.c:2950 + #, fuzzy + msgid "invalid application of `%s' to incomplete type `%T' " + msgstr "ìç Ýãêõñïò äåýôåñïò ôåëåóôÞò óå êáôÜóôáóç óõìâáôüôçôáò `%s'" + +-#: c-common.c:2992 ++#: c-common.c:2991 + msgid "`__alignof' applied to a bit-field" + msgstr "" + +-#: c-common.c:3484 ++#: c-common.c:3483 + #, fuzzy, c-format + msgid "cannot disable built-in function `%s'" + msgstr "áäõíáìßá åêôÝëåóçò ioctl óôï `%s'" + +-#: c-common.c:3645 c-typeck.c:1974 ++#: c-common.c:3644 c-typeck.c:1954 + #, fuzzy, c-format + msgid "too few arguments to function `%s'" + msgstr "Ðñïåéäïðïßçóç: Ðïëý ëßãá ïñßóìáôá óôï åóùäïìçìÝíï `%s'" + +-#: c-common.c:3651 c-typeck.c:1835 ++#: c-common.c:3650 c-typeck.c:1815 + #, fuzzy, c-format + msgid "too many arguments to function `%s'" + msgstr "ðÜñá ðïëëÜ ïñßóìáôá" + +-#: c-common.c:3670 ++#: c-common.c:3669 + #, fuzzy, c-format + msgid "non-floating-point argument to function `%s'" + msgstr "ðÜñá ðïëëÜ ïñßóìáôá" + +-#: c-common.c:3897 ++#: c-common.c:3896 + msgid "pointers are not permitted as case values" + msgstr "" + +-#: c-common.c:3901 ++#: c-common.c:3900 + msgid "range expressions in switch statements are non-standard" + msgstr "" + +-#: c-common.c:3930 ++#: c-common.c:3929 + #, fuzzy + msgid "empty range specified" + msgstr "ìç ïñéóìÝíï" + +-#: c-common.c:3981 ++#: c-common.c:3980 + msgid "duplicate (or overlapping) case value" + msgstr "" + +-#: c-common.c:3982 ++#: c-common.c:3981 + #, fuzzy + msgid "%Jthis is the first entry overlapping that value" + msgstr "áõôüò åßíáé ï ðñþôïò ïñéóìüò" + +-#: c-common.c:3986 ++#: c-common.c:3985 + #, fuzzy + msgid "duplicate case value" + msgstr "äéðëüò áñéèìüò ìçíýìáôïò" + +-#: c-common.c:3987 ++#: c-common.c:3986 + #, fuzzy + msgid "%Jpreviously used here" + msgstr "Äåí õðÜñ÷åé ðñïçãïýìåíç êáíïíéêÞ Ýêöñáóç" + +-#: c-common.c:3991 ++#: c-common.c:3990 + msgid "multiple default labels in one switch" + msgstr "" + +-#: c-common.c:3992 ++#: c-common.c:3991 + #, fuzzy + msgid "%Jthis is the first default label" + msgstr "áõôüò åßíáé ï ðñþôïò ïñéóìüò" + +-#: c-common.c:4017 ++#: c-common.c:4016 + msgid "taking the address of a label is non-standard" + msgstr "" + +-#: c-common.c:4063 ++#: c-common.c:4062 + msgid "%Hignoring return value of `%D', declared with attribute warn_unused_result" + msgstr "" + +-#: c-common.c:4068 ++#: c-common.c:4067 + msgid "%Hignoring return value of function declared with attribute warn_unused_result" + msgstr "" + +-#: c-common.c:4649 ++#: c-common.c:4651 + #, fuzzy, c-format + msgid "unknown machine mode `%s'" + msgstr "Üãíùóôï óåô `%s'" + +-#: c-common.c:4652 ++#: c-common.c:4654 + #, fuzzy, c-format + msgid "no data type for mode `%s'" + msgstr "äåí ïñßóôçêå âáñýôçôá ãéá ôï óýìâïëï `%s'" + +-#: c-common.c:4656 ++#: c-common.c:4658 + #, fuzzy, c-format + msgid "invalid pointer mode `%s'" + msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'" + +-#: c-common.c:4663 c-common.c:5226 ++#: c-common.c:4665 c-common.c:5237 + #, fuzzy, c-format + msgid "unable to emulate '%s'" + msgstr "Äåí ìðüñåóá íá áíïßîù ôï áñ÷åßï %s" + +-#: c-common.c:4707 ++#: c-common.c:4686 ++#, c-format ++msgid "mode `%s' applied to inappropriate type" ++msgstr "" ++ ++#: c-common.c:4718 + #, fuzzy + msgid "%Jsection attribute cannot be specified for local variables" + msgstr "óõìâïëéêïß óýíäåóìïé äåí õðïóôçñßæïíôáé óôï óýóôçìá áõôü" + +-#: c-common.c:4718 ++#: c-common.c:4729 + #, fuzzy + msgid "%Jsection of '%D' conflicts with previous declaration" + msgstr "áõôüò åßíáé ï ðñþôïò ïñéóìüò" + +-#: c-common.c:4727 ++#: c-common.c:4738 + #, fuzzy + msgid "%Jsection attribute not allowed for '%D'" + msgstr "ôï `%s' åßíáé ðñüãïíïò ôïõ `%s'" + +-#: c-common.c:4733 ++#: c-common.c:4744 + #, fuzzy + msgid "%Jsection attributes are not supported for this target" + msgstr "óõìâïëéêïß óýíäåóìïé äåí õðïóôçñßæïíôáé óôï óýóôçìá áõôü" + +-#: c-common.c:4771 ++#: c-common.c:4782 + msgid "requested alignment is not a constant" + msgstr "" + +-#: c-common.c:4776 ++#: c-common.c:4787 + msgid "requested alignment is not a power of 2" + msgstr "" + +-#: c-common.c:4781 ++#: c-common.c:4792 + #, fuzzy + msgid "requested alignment is too large" + msgstr "ÊáêÞ áßôçóç ðáñáìÝôñùí" + +-#: c-common.c:4807 ++#: c-common.c:4818 + #, fuzzy + msgid "%Jalignment may not be specified for '%D'" + msgstr "ìüíï Ýíá üñéóìá ìðïñåß íá äçëùèåß" + +-#: c-common.c:4845 ++#: c-common.c:4856 + msgid "%J'%D' defined both normally and as an alias" + msgstr "" + +-#: c-common.c:4855 ++#: c-common.c:4866 + msgid "alias arg not a string" + msgstr "" + +-#: c-common.c:4898 ++#: c-common.c:4909 + msgid "visibility arg not a string" + msgstr "" + +-#: c-common.c:4911 ++#: c-common.c:4922 + msgid "visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\"" + msgstr "" + +-#: c-common.c:4937 ++#: c-common.c:4948 + msgid "tls_model arg not a string" + msgstr "" + +-#: c-common.c:4946 ++#: c-common.c:4957 + msgid "tls_model arg must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\"" + msgstr "" + +-#: c-common.c:4968 c-common.c:5014 ++#: c-common.c:4979 c-common.c:5025 + msgid "%J'%E' attribute applies only to functions" + msgstr "" + +-#: c-common.c:4973 c-common.c:5019 ++#: c-common.c:4984 c-common.c:5030 + #, fuzzy + msgid "%Jcan't set '%E' attribute after definition" + msgstr "áõôüò åßíáé ï ðñþôïò ïñéóìüò" + +-#: c-common.c:5095 ++#: c-common.c:5106 + #, fuzzy, c-format + msgid "`%s' attribute ignored for `%s'" + msgstr "ôï `%s' åßíáé ðñüãïíïò ôïõ `%s'" + +-#: c-common.c:5158 ++#: c-common.c:5169 + #, fuzzy, c-format + msgid "invalid vector type for attribute `%s'" + msgstr "ìç Ýãêõñï åßäïò áëöáñéèìçôéêïý `%s'" + +-#: c-common.c:5182 c-common.c:5214 ++#: c-common.c:5193 c-common.c:5225 + msgid "no vector mode with the size and type specified could be found" + msgstr "" + +-#: c-common.c:5316 ++#: c-common.c:5281 + msgid "nonnull attribute without arguments on a non-prototype" + msgstr "" + +-#: c-common.c:5331 ++#: c-common.c:5296 + #, c-format + msgid "nonnull argument has invalid operand number (arg %lu)" + msgstr "" + +-#: c-common.c:5350 ++#: c-common.c:5315 + #, c-format + msgid "nonnull argument with out-of-range operand number (arg %lu, operand %lu)" + msgstr "" + +-#: c-common.c:5358 ++#: c-common.c:5323 + #, c-format + msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)" + msgstr "" + +-#: c-common.c:5438 ++#: c-common.c:5403 + #, c-format + msgid "null argument where non-null required (arg %lu)" + msgstr "" + +-#: c-common.c:5509 ++#: c-common.c:5474 + #, fuzzy + msgid "cleanup arg not an identifier" + msgstr "äéðëüò ðñïóäéïñéóôÞò ìçíýìáôïò" + +-#: c-common.c:5516 ++#: c-common.c:5481 + #, fuzzy + msgid "cleanup arg not a function" + msgstr "Ôï åðþíõìï áíôéêåßìåíï äåí åßíáé áíáæçôÞóéìï" + +-#: c-common.c:5877 ++#: c-common.c:5842 + #, c-format + msgid "%s at end of input" + msgstr "%s óôï ôÝëïò ôçò åéóüäïõ" + +-#: c-common.c:5883 ++#: c-common.c:5848 + #, c-format + msgid "%s before %s'%c'" + msgstr "%s ðñéí áðü %s'%c'" + +-#: c-common.c:5885 ++#: c-common.c:5850 + #, c-format + msgid "%s before %s'\\x%x'" + msgstr "%s ðñéí áðü %s'\\x%x'" + +-#: c-common.c:5889 ++#: c-common.c:5854 + #, fuzzy, c-format + msgid "%s before string constant" + msgstr "ìç ôåñìáôéæìÝíï áëöáñéèìçôéêü óôáèåñÜò" + +-#: c-common.c:5891 ++#: c-common.c:5856 + #, c-format + msgid "%s before numeric constant" + msgstr "%s ðñéí áðü áñéèìçôéêÞ óôáèåñÜ" + + # src/request.c:37 +-#: c-common.c:5893 ++#: c-common.c:5858 + #, c-format + msgid "%s before \"%s\"" + msgstr "%s ðñéí áðü \"%s\"" + +-#: c-common.c:5895 ++#: c-common.c:5860 + #, c-format + msgid "%s before '%s' token" + msgstr "%s ðñéí áðü ôï óýìâïëï '%s'" + + #. Use `%s' to print the string in case there are any escape + #. characters in the message. +-#: c-common.c:5897 c-typeck.c:2612 c-typeck.c:4004 c-typeck.c:4019 +-#: c-typeck.c:4034 final.c:2776 final.c:2778 gcc.c:4581 rtl-error.c:109 +-#: toplev.c:1357 config/cris/cris.c:552 cp/parser.c:1848 cp/typeck.c:4155 ++#: c-common.c:5862 c-typeck.c:2592 c-typeck.c:3984 c-typeck.c:3999 ++#: c-typeck.c:4014 final.c:2776 final.c:2778 gcc.c:4584 rtl-error.c:109 ++#: toplev.c:1357 config/cris/cris.c:552 cp/parser.c:1848 cp/typeck.c:4173 + #: java/expr.c:356 java/verify.c:1456 java/verify.c:1457 java/verify.c:1472 + #, c-format + msgid "%s" + msgstr "%s" + +-#: c-convert.c:82 c-typeck.c:1211 c-typeck.c:3444 cp/typeck.c:1363 +-#: cp/typeck.c:5708 treelang/tree-convert.c:79 ++#: c-convert.c:82 c-typeck.c:1211 c-typeck.c:3424 cp/typeck.c:1363 ++#: cp/typeck.c:5729 treelang/tree-convert.c:79 + msgid "void value not ignored as it ought to be" + msgstr "" + +@@ -737,404 +742,404 @@ + msgid "%Jnon-const declaration of '%D' follows const declaration" + msgstr "" + +-#: c-decl.c:1262 ++#: c-decl.c:1267 + #, fuzzy + msgid "%Jredundant redeclaration of '%D'" + msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'" + +-#: c-decl.c:1581 ++#: c-decl.c:1586 + #, fuzzy + msgid "%Jdeclaration of '%D' shadows a parameter" + msgstr "Ç ëåéôïõñãßá äåí õðïóôçñßæåôáé" + +-#: c-decl.c:1583 ++#: c-decl.c:1588 + msgid "%Jdeclaration of '%D' shadows a global declaration" + msgstr "" + +-#: c-decl.c:1585 ++#: c-decl.c:1590 + msgid "%Jdeclaration of '%D' shadows a previous local" + msgstr "" + +-#: c-decl.c:1587 cp/name-lookup.c:969 cp/name-lookup.c:992 ++#: c-decl.c:1592 cp/name-lookup.c:969 cp/name-lookup.c:992 + #: cp/name-lookup.c:1000 + msgid "%Jshadowed declaration is here" + msgstr "" + +-#: c-decl.c:1697 ++#: c-decl.c:1702 + #, c-format + msgid "nested extern declaration of `%s'" + msgstr "" + +-#: c-decl.c:1838 objc/objc-act.c:2534 objc/objc-act.c:6794 ++#: c-decl.c:1843 objc/objc-act.c:2534 objc/objc-act.c:6794 + #, fuzzy + msgid "%Jprevious declaration of '%D'" + msgstr "ðñïçãïýìåíç áõôïíüçôç äéáêýñçîç ôïõ `%s'" + +-#: c-decl.c:1879 c-decl.c:1881 ++#: c-decl.c:1884 c-decl.c:1886 + #, c-format + msgid "implicit declaration of function `%s'" + msgstr "áõôïíüçôç äéáêýñçîç ôçò óõíÜñôçóçò `%s'" + +-#: c-decl.c:1897 ++#: c-decl.c:1902 + #, c-format + msgid "`%s' undeclared here (not in a function)" + msgstr "" + +-#: c-decl.c:1903 ++#: c-decl.c:1908 + #, c-format + msgid "`%s' undeclared (first use in this function)" + msgstr "" + +-#: c-decl.c:1908 ++#: c-decl.c:1913 + msgid "(Each undeclared identifier is reported only once" + msgstr "" + +-#: c-decl.c:1909 ++#: c-decl.c:1914 + msgid "for each function it appears in.)" + msgstr "" + +-#: c-decl.c:1962 ++#: c-decl.c:1967 + #, c-format + msgid "label %s referenced outside of any function" + msgstr "" + +-#: c-decl.c:2009 ++#: c-decl.c:2014 + #, fuzzy, c-format + msgid "duplicate label declaration `%s'" + msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'" + +-#: c-decl.c:2010 ++#: c-decl.c:2015 + #, fuzzy + msgid "%Jthis is a previous declaration" + msgstr "áõôüò åßíáé ï ðñþôïò ïñéóìüò" + +-#: c-decl.c:2045 ++#: c-decl.c:2050 + #, fuzzy + msgid "%Hduplicate label `%D'" + msgstr "äéðëü êëåéäß" + +-#: c-decl.c:2047 ++#: c-decl.c:2052 + #, fuzzy + msgid "%J`%D' previously defined here" + msgstr "Äåí õðÜñ÷åé ðñïçãïýìåíç êáíïíéêÞ Ýêöñáóç" + +-#: c-decl.c:2049 ++#: c-decl.c:2054 + #, fuzzy + msgid "%J`%D' previously declared here" + msgstr "Äåí õðÜñ÷åé ðñïçãïýìåíç êáíïíéêÞ Ýêöñáóç" + +-#: c-decl.c:2069 ++#: c-decl.c:2074 + msgid "%Htraditional C lacks a separate namespace for labels, identifier `%s' conflicts" + msgstr "" + +-#: c-decl.c:2140 ++#: c-decl.c:2145 + msgid "%H`%s' defined as wrong kind of tag" + msgstr "" + +-#: c-decl.c:2378 ++#: c-decl.c:2383 + msgid "unnamed struct/union that defines no instances" + msgstr "" + +-#: c-decl.c:2397 ++#: c-decl.c:2402 + msgid "useless keyword or type name in empty declaration" + msgstr "" + +-#: c-decl.c:2404 ++#: c-decl.c:2409 + msgid "two types specified in one empty declaration" + msgstr "" + +-#: c-decl.c:2409 c-parse.y:735 c-parse.y:737 objc/objc-parse.y:776 +-#: objc/objc-parse.y:778 objc/objc-parse.y:3017 ++#: c-decl.c:2414 c-parse.y:735 c-parse.y:737 objc/objc-parse.y:776 ++#: objc/objc-parse.y:778 objc/objc-parse.y:3016 + #, fuzzy + msgid "empty declaration" + msgstr "êåíü áëöáñéèìçôéêü" + +-#: c-decl.c:2435 ++#: c-decl.c:2440 + msgid "ISO C90 does not support `static' or type qualifiers in parameter array declarators" + msgstr "" + +-#: c-decl.c:2437 ++#: c-decl.c:2442 + msgid "ISO C90 does not support `[*]' array declarators" + msgstr "" + +-#: c-decl.c:2440 ++#: c-decl.c:2445 + msgid "GCC does not yet properly implement `[*]' array declarators" + msgstr "" + +-#: c-decl.c:2456 ++#: c-decl.c:2461 + msgid "static or type qualifiers in abstract declarator" + msgstr "" + +-#: c-decl.c:2526 ++#: c-decl.c:2531 + #, fuzzy + msgid "%J'%D' is usually a function" + msgstr "Ôï `%s' äåí åßíáé êáôÜëïãïò." + +-#: c-decl.c:2535 ++#: c-decl.c:2540 + #, c-format + msgid "typedef `%s' is initialized (use __typeof__ instead)" + msgstr "" + +-#: c-decl.c:2541 ++#: c-decl.c:2546 + #, c-format + msgid "function `%s' is initialized like a variable" + msgstr "" + + #. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE. +-#: c-decl.c:2548 ++#: c-decl.c:2553 + #, c-format + msgid "parameter `%s' is initialized" + msgstr "" + +-#: c-decl.c:2568 c-typeck.c:4254 ++#: c-decl.c:2573 c-typeck.c:4234 + msgid "variable-sized object may not be initialized" + msgstr "" + +-#: c-decl.c:2574 ++#: c-decl.c:2579 + #, c-format + msgid "variable `%s' has initializer but incomplete type" + msgstr "" + +-#: c-decl.c:2580 ++#: c-decl.c:2585 + #, c-format + msgid "elements of array `%s' have incomplete type" + msgstr "" + +-#: c-decl.c:2649 c-decl.c:5451 cp/decl.c:3761 cp/decl.c:10141 ++#: c-decl.c:2654 c-decl.c:5462 cp/decl.c:3775 cp/decl.c:10238 + msgid "%Jinline function '%D' given attribute noinline" + msgstr "" + +-#: c-decl.c:2725 ++#: c-decl.c:2730 + msgid "%Jinitializer fails to determine size of '%D'" + msgstr "" + +-#: c-decl.c:2730 ++#: c-decl.c:2735 + #, fuzzy + msgid "%Jarray size missing in '%D'" + msgstr "óöÜëìá êáôÜ ôï êëåßóéìï ôçò åéóüäïõ `%s'" + +-#: c-decl.c:2746 ++#: c-decl.c:2751 + msgid "%Jzero or negative size array '%D'" + msgstr "" + +-#: c-decl.c:2774 ++#: c-decl.c:2779 + #, fuzzy + msgid "%Jstorage size of '%D' isn't known" + msgstr "Ôï üíïìá `%s' åßíáé Üãíùóôï\n" + +-#: c-decl.c:2784 ++#: c-decl.c:2789 + #, fuzzy + msgid "%Jstorage size of '%D' isn't constant" + msgstr "Ôï üíïìá `%s' åßíáé Üãíùóôï\n" + +-#: c-decl.c:2867 ++#: c-decl.c:2872 + msgid "%Jignoring asm-specifier for non-static local variable '%D'" + msgstr "" + +-#: c-decl.c:2978 ++#: c-decl.c:2983 + msgid "ISO C forbids forward parameter declarations" + msgstr "" + +-#: c-decl.c:3160 ++#: c-decl.c:3165 + #, fuzzy + msgid "" + msgstr "((áíþíõìï))" + +-#: c-decl.c:3169 ++#: c-decl.c:3174 + #, c-format + msgid "bit-field `%s' width not an integer constant" + msgstr "" + +-#: c-decl.c:3177 ++#: c-decl.c:3182 + #, fuzzy, c-format + msgid "negative width in bit-field `%s'" + msgstr "Áñíçôéêü ðëÜôïò óôçí áðïôßìçóç" + +-#: c-decl.c:3182 ++#: c-decl.c:3187 + #, c-format + msgid "zero width for bit-field `%s'" + msgstr "" + +-#: c-decl.c:3192 ++#: c-decl.c:3197 + #, c-format + msgid "bit-field `%s' has invalid type" + msgstr "" + +-#: c-decl.c:3201 ++#: c-decl.c:3206 + #, c-format + msgid "type of bit-field `%s' is a GCC extension" + msgstr "" + +-#: c-decl.c:3210 ++#: c-decl.c:3215 + #, c-format + msgid "width of `%s' exceeds its type" + msgstr "" + +-#: c-decl.c:3220 ++#: c-decl.c:3225 + #, fuzzy, c-format + msgid "`%s' is narrower than values of its type" + msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò." + +-#: c-decl.c:3370 cp/decl.c:6805 ++#: c-decl.c:3375 cp/decl.c:6900 + msgid "`long long long' is too long for GCC" + msgstr "" + +-#: c-decl.c:3375 ++#: c-decl.c:3380 + #, fuzzy + msgid "ISO C90 does not support `long long'" + msgstr "áñ÷åßá fifo äåí õðïóôçñßæïíôáé" + +-#: c-decl.c:3384 c-decl.c:3387 cp/decl.c:6810 ++#: c-decl.c:3389 c-decl.c:3392 cp/decl.c:6905 + #, fuzzy, c-format + msgid "duplicate `%s'" + msgstr "äéðëü êëåéäß" + +-#: c-decl.c:3397 cp/decl.c:6816 ++#: c-decl.c:3402 cp/decl.c:6911 + msgid "`__thread' before `extern'" + msgstr "" + +-#: c-decl.c:3399 cp/decl.c:6818 ++#: c-decl.c:3404 cp/decl.c:6913 + msgid "`__thread' before `static'" + msgstr "" + +-#: c-decl.c:3407 cp/decl.c:6845 ++#: c-decl.c:3412 cp/decl.c:6940 + #, c-format + msgid "two or more data types in declaration of `%s'" + msgstr "" + +-#: c-decl.c:3427 cp/decl.c:6850 ++#: c-decl.c:3432 cp/decl.c:6945 + #, c-format + msgid "`%s' fails to be a typedef or built in type" + msgstr "" + +-#: c-decl.c:3466 ++#: c-decl.c:3471 + #, c-format + msgid "type defaults to `int' in declaration of `%s'" + msgstr "" + +-#: c-decl.c:3495 ++#: c-decl.c:3500 + #, c-format + msgid "both long and short specified for `%s'" + msgstr "" + +-#: c-decl.c:3499 cp/decl.c:6950 ++#: c-decl.c:3504 cp/decl.c:7045 + #, c-format + msgid "long or short specified with char for `%s'" + msgstr "" + +-#: c-decl.c:3506 cp/decl.c:6954 ++#: c-decl.c:3511 cp/decl.c:7049 + #, c-format + msgid "long or short specified with floating type for `%s'" + msgstr "" + +-#: c-decl.c:3509 ++#: c-decl.c:3514 + msgid "the only valid combination is `long double'" + msgstr "" + +-#: c-decl.c:3515 ++#: c-decl.c:3520 + #, fuzzy, c-format + msgid "both signed and unsigned specified for `%s'" + msgstr "ìç Ýãêõñïò äçëùôÞò ðåäßïõ: `%s'" + +-#: c-decl.c:3517 cp/decl.c:6943 ++#: c-decl.c:3522 cp/decl.c:7038 + #, c-format + msgid "long, short, signed or unsigned invalid for `%s'" + msgstr "" + +-#: c-decl.c:3523 cp/decl.c:6963 ++#: c-decl.c:3528 cp/decl.c:7058 + #, c-format + msgid "long, short, signed or unsigned used invalidly for `%s'" + msgstr "" + +-#: c-decl.c:3541 cp/decl.c:6984 ++#: c-decl.c:3546 cp/decl.c:7079 + #, fuzzy, c-format + msgid "complex invalid for `%s'" + msgstr "Ìç Ýãêõñç ðñïôåñáéüôçôá `%s'" + +-#: c-decl.c:3583 ++#: c-decl.c:3588 + #, fuzzy + msgid "ISO C90 does not support complex types" + msgstr "áñ÷åßá fifo äåí õðïóôçñßæïíôáé" + +-#: c-decl.c:3595 ++#: c-decl.c:3600 + msgid "ISO C does not support plain `complex' meaning `double complex'" + msgstr "" + +-#: c-decl.c:3601 c-decl.c:3613 ++#: c-decl.c:3606 c-decl.c:3618 + msgid "ISO C does not support complex integer types" + msgstr "" + +-#: c-decl.c:3643 c-decl.c:4104 cp/decl.c:7576 ++#: c-decl.c:3648 c-decl.c:4115 cp/decl.c:7671 + #, fuzzy + msgid "duplicate `const'" + msgstr "äéðëü êëåéäß" + +-#: c-decl.c:3645 c-decl.c:4108 cp/decl.c:7580 ++#: c-decl.c:3650 c-decl.c:4119 cp/decl.c:7675 + #, fuzzy + msgid "duplicate `restrict'" + msgstr "äéðëü êëåéäß" + +-#: c-decl.c:3647 c-decl.c:4106 cp/decl.c:7578 ++#: c-decl.c:3652 c-decl.c:4117 cp/decl.c:7673 + #, fuzzy + msgid "duplicate `volatile'" + msgstr "äéðëü êëåéäß" + +-#: c-decl.c:3676 cp/decl.c:7147 ++#: c-decl.c:3681 cp/decl.c:7242 + #, c-format + msgid "multiple storage classes in declaration of `%s'" + msgstr "" + +-#: c-decl.c:3686 ++#: c-decl.c:3691 + msgid "function definition declared `auto'" + msgstr "" + +-#: c-decl.c:3688 ++#: c-decl.c:3693 + msgid "function definition declared `register'" + msgstr "" + +-#: c-decl.c:3690 ++#: c-decl.c:3695 + msgid "function definition declared `typedef'" + msgstr "" + +-#: c-decl.c:3692 ++#: c-decl.c:3697 + msgid "function definition declared `__thread'" + msgstr "" + +-#: c-decl.c:3705 ++#: c-decl.c:3710 + #, c-format + msgid "storage class specified for structure field `%s'" + msgstr "" + +-#: c-decl.c:3709 cp/decl.c:7192 ++#: c-decl.c:3714 cp/decl.c:7287 + #, c-format + msgid "storage class specified for parameter `%s'" + msgstr "" + +-#: c-decl.c:3712 cp/decl.c:7194 ++#: c-decl.c:3717 cp/decl.c:7289 + msgid "storage class specified for typename" + msgstr "" + +-#: c-decl.c:3724 cp/decl.c:7209 ++#: c-decl.c:3729 cp/decl.c:7304 + #, c-format + msgid "`%s' initialized and declared `extern'" + msgstr "" + +-#: c-decl.c:3726 cp/decl.c:7212 ++#: c-decl.c:3731 cp/decl.c:7307 + #, c-format + msgid "`%s' has both `extern' and initializer" + msgstr "" + +-#: c-decl.c:3731 ++#: c-decl.c:3736 + #, c-format + msgid "file-scope declaration of `%s' specifies `auto'" + msgstr "" + +-#: c-decl.c:3736 cp/decl.c:7216 ++#: c-decl.c:3741 cp/decl.c:7311 + #, c-format + msgid "nested function `%s' declared `extern'" + msgstr "" + +-#: c-decl.c:3742 cp/decl.c:7226 ++#: c-decl.c:3747 cp/decl.c:7321 + #, c-format + msgid "function-scope `%s' implicitly auto and declared `__thread'" + msgstr "" +@@ -1142,463 +1147,463 @@ + #. Only the innermost declarator (making a parameter be of + #. array type which is converted to pointer type) + #. may have static or type qualifiers. +-#: c-decl.c:3781 c-decl.c:3974 ++#: c-decl.c:3786 c-decl.c:3979 + msgid "static or type qualifiers in non-parameter array declarator" + msgstr "" + +-#: c-decl.c:3825 ++#: c-decl.c:3830 + #, c-format + msgid "declaration of `%s' as array of voids" + msgstr "" + +-#: c-decl.c:3831 ++#: c-decl.c:3836 + #, c-format + msgid "declaration of `%s' as array of functions" + msgstr "" + +-#: c-decl.c:3836 ++#: c-decl.c:3841 + #, fuzzy + msgid "invalid use of structure with flexible array member" + msgstr "ìç Ýãêõñç þñá ôçò ìÝñáò" + +-#: c-decl.c:3855 ++#: c-decl.c:3860 + #, c-format + msgid "size of array `%s' has non-integer type" + msgstr "" + +-#: c-decl.c:3860 ++#: c-decl.c:3865 + #, c-format + msgid "ISO C forbids zero-size array `%s'" + msgstr "" + +-#: c-decl.c:3867 ++#: c-decl.c:3872 + #, c-format + msgid "size of array `%s' is negative" + msgstr "" + +-#: c-decl.c:3880 ++#: c-decl.c:3885 + #, c-format + msgid "ISO C90 forbids array `%s' whose size can't be evaluated" + msgstr "" + +-#: c-decl.c:3883 ++#: c-decl.c:3888 + #, c-format + msgid "ISO C90 forbids variable-size array `%s'" + msgstr "" + +-#: c-decl.c:3913 c-decl.c:4131 cp/decl.c:7755 ++#: c-decl.c:3918 c-decl.c:4142 cp/decl.c:7850 + #, fuzzy, c-format + msgid "size of array `%s' is too large" + msgstr "Ï êáôÜëïãïò `%s' äåí åßíáé ðñïóéôüò." + +-#: c-decl.c:3939 ++#: c-decl.c:3944 + #, fuzzy + msgid "ISO C90 does not support flexible array members" + msgstr "ìç Ýãêõñç þñá ôçò ìÝñáò" + +-#: c-decl.c:3949 ++#: c-decl.c:3954 + msgid "array type has incomplete element type" + msgstr "" + +-#: c-decl.c:3994 cp/decl.c:7347 ++#: c-decl.c:4009 cp/decl.c:7442 + #, c-format + msgid "`%s' declared as function returning a function" + msgstr "" + +-#: c-decl.c:3999 cp/decl.c:7352 ++#: c-decl.c:4014 cp/decl.c:7447 + #, c-format + msgid "`%s' declared as function returning an array" + msgstr "" + +-#: c-decl.c:4027 ++#: c-decl.c:4038 + msgid "ISO C forbids qualified void function return type" + msgstr "" + +-#: c-decl.c:4031 ++#: c-decl.c:4042 + msgid "type qualifiers ignored on function return type" + msgstr "" + +-#: c-decl.c:4060 c-decl.c:4146 c-decl.c:4270 c-decl.c:4356 ++#: c-decl.c:4071 c-decl.c:4157 c-decl.c:4281 c-decl.c:4367 + msgid "ISO C forbids qualified function types" + msgstr "" + +-#: c-decl.c:4100 cp/decl.c:7572 ++#: c-decl.c:4111 cp/decl.c:7667 + msgid "invalid type modifier within pointer declarator" + msgstr "" + +-#: c-decl.c:4181 ++#: c-decl.c:4192 + msgid "ISO C forbids const or volatile function types" + msgstr "" + +-#: c-decl.c:4201 cp/decl.c:8036 ++#: c-decl.c:4212 + #, c-format + msgid "variable or field `%s' declared void" + msgstr "" + +-#: c-decl.c:4234 ++#: c-decl.c:4245 + msgid "attributes in parameter array declarator ignored" + msgstr "" + +-#: c-decl.c:4259 ++#: c-decl.c:4270 + msgid "invalid type modifier within array declarator" + msgstr "" + +-#: c-decl.c:4304 ++#: c-decl.c:4315 + #, c-format + msgid "field `%s' declared as a function" + msgstr "" + +-#: c-decl.c:4310 ++#: c-decl.c:4321 + #, c-format + msgid "field `%s' has incomplete type" + msgstr "" + +-#: c-decl.c:4336 c-decl.c:4338 c-decl.c:4340 c-decl.c:4347 ++#: c-decl.c:4347 c-decl.c:4349 c-decl.c:4351 c-decl.c:4358 + #, fuzzy, c-format + msgid "invalid storage class for function `%s'" + msgstr "ìç Ýãêõñç ôÜîç ÷áñáêôÞñùí `%s'" + +-#: c-decl.c:4362 ++#: c-decl.c:4373 + msgid "`noreturn' function returns non-void value" + msgstr "" + +-#: c-decl.c:4377 ++#: c-decl.c:4388 + #, fuzzy + msgid "cannot inline function `main'" + msgstr "äåí åßíáé äõíáôü íá äçìéïõñãçèåß ôï áñ÷åßï fifo `%s'" + +-#: c-decl.c:4431 ++#: c-decl.c:4442 + msgid "variable previously declared `static' redeclared `extern'" + msgstr "" + +-#: c-decl.c:4440 ++#: c-decl.c:4451 + msgid "%Jvariable '%D' declared `inline'" + msgstr "" + + #. A mere warning is sure to result in improper semantics + #. at runtime. Don't bother to allow this to compile. +-#: c-decl.c:4468 cp/decl.c:5903 ++#: c-decl.c:4479 cp/decl.c:5972 + #, fuzzy + msgid "thread-local storage not supported for this target" + msgstr "óõìâïëéêïß óýíäåóìïé äåí õðïóôçñßæïíôáé óôï óýóôçìá áõôü" + +-#: c-decl.c:4529 c-decl.c:5495 ++#: c-decl.c:4540 c-decl.c:5506 + msgid "function declaration isn't a prototype" + msgstr "" + +-#: c-decl.c:4535 ++#: c-decl.c:4546 + msgid "parameter names (without types) in function declaration" + msgstr "" + +-#: c-decl.c:4563 ++#: c-decl.c:4574 + #, c-format + msgid "parameter `%s' has incomplete type" + msgstr "" + +-#: c-decl.c:4566 ++#: c-decl.c:4577 + #, fuzzy + msgid "parameter has incomplete type" + msgstr "ìç ðëÞñçò åããñáöÞ" + +-#: c-decl.c:4615 ++#: c-decl.c:4626 + msgid "\"void\" as only parameter may not be qualified" + msgstr "" + +-#: c-decl.c:4636 ++#: c-decl.c:4647 + msgid "\"void\" must be the only parameter" + msgstr "" + +-#: c-decl.c:4653 ++#: c-decl.c:4664 + msgid "%Jparameter \"%D\" has just a forward declaration" + msgstr "" + + #. The first %s will be one of 'struct', 'union', or 'enum'. +-#: c-decl.c:4681 ++#: c-decl.c:4692 + #, fuzzy, c-format + msgid "\"%s %s\" declared inside parameter list" + msgstr "óõíå÷ßæåôáé óôï ôìÞìá" + + #. The %s will be one of 'struct', 'union', or 'enum'. +-#: c-decl.c:4685 ++#: c-decl.c:4696 + #, fuzzy, c-format + msgid "anonymous %s declared inside parameter list" + msgstr "óõíå÷ßæåôáé óôï ôìÞìá" + +-#: c-decl.c:4689 ++#: c-decl.c:4700 + msgid "its scope is only this definition or declaration, which is probably not what you want" + msgstr "" + +-#: c-decl.c:4774 ++#: c-decl.c:4785 + #, fuzzy, c-format + msgid "redefinition of `union %s'" + msgstr "Ïé ïñéóìïß ðçãÞ âñßóêïíôáé óôï ÁÑ×ÅÉÏ" + +-#: c-decl.c:4776 ++#: c-decl.c:4787 + #, c-format + msgid "redefinition of `struct %s'" + msgstr "" + +-#: c-decl.c:4844 cp/decl.c:3534 ++#: c-decl.c:4855 cp/decl.c:3548 + msgid "declaration does not declare anything" + msgstr "" + +-#: c-decl.c:4889 c-decl.c:4905 ++#: c-decl.c:4900 c-decl.c:4916 + #, fuzzy + msgid "%Jduplicate member '%D'" + msgstr "äéðëüò áñéèìüò ìçíýìáôïò" + +-#: c-decl.c:4939 c-decl.c:4942 ++#: c-decl.c:4950 c-decl.c:4953 + #, fuzzy, c-format + msgid "%s defined inside parms" + msgstr "óõíå÷ßæåôáé óôï ôìÞìá" + +-#: c-decl.c:4940 c-decl.c:4943 c-decl.c:4954 ++#: c-decl.c:4951 c-decl.c:4954 c-decl.c:4965 + msgid "union" + msgstr "Ýíùóç" + +-#: c-decl.c:4940 c-decl.c:4943 ++#: c-decl.c:4951 c-decl.c:4954 + msgid "structure" + msgstr "äïìÞ" + + # src/request.c:37 +-#: c-decl.c:4953 ++#: c-decl.c:4964 + #, fuzzy, c-format + msgid "%s has no %s" + msgstr "%s óå %s" + +-#: c-decl.c:4954 ++#: c-decl.c:4965 + msgid "struct" + msgstr "äïìÞ" + +-#: c-decl.c:4955 ++#: c-decl.c:4966 + msgid "named members" + msgstr "åðþíõìá ìÝëç" + +-#: c-decl.c:4955 ++#: c-decl.c:4966 + msgid "members" + msgstr "ìÝëç" + +-#: c-decl.c:4994 ++#: c-decl.c:5005 + #, fuzzy, c-format + msgid "nested redefinition of `%s'" + msgstr "áäõíáìßá áíïßãìáôïò áñ÷åßïõ ïñéóìïý locale `%s'" + +-#: c-decl.c:5015 ++#: c-decl.c:5026 + #, fuzzy + msgid "%Jflexible array member in union" + msgstr "ìç Ýãêõñç þñá ôçò ìÝñáò" + +-#: c-decl.c:5020 ++#: c-decl.c:5031 + msgid "%Jflexible array member not at end of struct" + msgstr "" + +-#: c-decl.c:5025 ++#: c-decl.c:5036 + msgid "%Jflexible array member in otherwise empty struct" + msgstr "" + +-#: c-decl.c:5032 ++#: c-decl.c:5043 + #, fuzzy + msgid "%Jinvalid use of structure with flexible array member" + msgstr "ìç Ýãêõñç þñá ôçò ìÝñáò" + +-#: c-decl.c:5127 ++#: c-decl.c:5138 + msgid "union cannot be made transparent" + msgstr "" + + #. This enum is a named one that has been declared already. +-#: c-decl.c:5196 ++#: c-decl.c:5207 + #, c-format + msgid "redeclaration of `enum %s'" + msgstr "" + +-#: c-decl.c:5227 ++#: c-decl.c:5238 + #, fuzzy + msgid "enum defined inside parms" + msgstr "Ìç ïñéóìÝíï üíïìá %s" + +-#: c-decl.c:5260 ++#: c-decl.c:5271 + msgid "enumeration values exceed range of largest integer" + msgstr "" + +-#: c-decl.c:5363 ++#: c-decl.c:5374 + #, c-format + msgid "enumerator value for `%s' not integer constant" + msgstr "" + +-#: c-decl.c:5376 ++#: c-decl.c:5387 + msgid "overflow in enumeration values" + msgstr "" + +-#: c-decl.c:5381 ++#: c-decl.c:5392 + msgid "ISO C restricts enumerator values to range of `int'" + msgstr "" + +-#: c-decl.c:5457 ++#: c-decl.c:5468 + msgid "return type is an incomplete type" + msgstr "" + +-#: c-decl.c:5465 ++#: c-decl.c:5476 + msgid "return type defaults to `int'" + msgstr "ï åðéóôñåöüìåíïò ôýðïò ðñïêáèïñßæåôáé óå `int'" + +-#: c-decl.c:5501 ++#: c-decl.c:5512 + #, fuzzy + msgid "%Jno previous prototype for '%D'" + msgstr "äéáôÞñçóç ùñþí óôï %s" + +-#: c-decl.c:5507 ++#: c-decl.c:5518 + #, fuzzy + msgid "%J'%D' was used with no prototype before its definition" + msgstr "áõôÞ åßíáé ç èÝóç ôïõ ðñþôïõ ïñéóìïý" + +-#: c-decl.c:5514 ++#: c-decl.c:5525 + #, fuzzy + msgid "%Jno previous declaration for '%D'" + msgstr "ðñïçãïýìåíç áõôïíüçôç äéáêýñçîç ôïõ `%s'" + +-#: c-decl.c:5520 ++#: c-decl.c:5531 + #, fuzzy + msgid "%J`%D' was used with no declaration before its definition" + msgstr "áõôÞ åßíáé ç èÝóç ôïõ ðñþôïõ ïñéóìïý" + +-#: c-decl.c:5556 c-decl.c:6062 ++#: c-decl.c:5567 c-decl.c:6073 + #, fuzzy + msgid "%Jreturn type of '%D' is not `int'" + msgstr "ç åðéóôñåöüìåíç ôéìÞ ôçò `%s' äåí åßíáé `int'" + +-#: c-decl.c:5571 ++#: c-decl.c:5582 + #, fuzzy + msgid "%Jfirst argument of '%D' should be `int'" + msgstr "ôï ðñþôï üñéóìá ôçò `%s' ðñÝðåé íá åßíáé `int'" + +-#: c-decl.c:5580 ++#: c-decl.c:5591 + #, fuzzy + msgid "%Jsecond argument of '%D' should be 'char **'" + msgstr "ôï äåýôåñï üñéóìá ôçò `%s' ðñÝðåé íá åßíáé `char **'" + +-#: c-decl.c:5589 ++#: c-decl.c:5600 + #, fuzzy + msgid "%Jthird argument of '%D' should probably be 'char **'" + msgstr "ôï ôñßôï üñéóìá ôçò `%s' ðñÝðåé íá åßíáé `char **'" + +-#: c-decl.c:5599 ++#: c-decl.c:5610 + #, fuzzy + msgid "%J'%D' takes only zero or two arguments" + msgstr "ç `%s' ðáßñíåé åßôå êáíÝíá åßôå äýï ïñßóìáôá" + +-#: c-decl.c:5602 ++#: c-decl.c:5613 + #, fuzzy + msgid "%J'%D' is normally a non-static function" + msgstr "ç `%s' åßíáé óõíÞèùò ìç-óôáôéêÞ óõíÜñôçóç" + +-#: c-decl.c:5658 ++#: c-decl.c:5669 + msgid "%Jold-style parameter declarations in prototyped function definition" + msgstr "" + +-#: c-decl.c:5672 ++#: c-decl.c:5683 + #, fuzzy + msgid "%Jparameter name omitted" + msgstr "Ý÷åé ðáñáëçöèåß ôï üíïìá ôçò ðáñáìÝôñïõ" + +-#: c-decl.c:5747 ++#: c-decl.c:5758 + #, fuzzy + msgid "%Jparameter name missing from parameter list" + msgstr "ÅëëéðÞò Þ êáêïó÷çìáôéóìÝíç éäéüôçôá" + +-#: c-decl.c:5757 ++#: c-decl.c:5768 + msgid "%J\"%D\" declared as a non-parameter" + msgstr "" + +-#: c-decl.c:5762 ++#: c-decl.c:5773 + #, fuzzy + msgid "%Jmultiple parameters named \"%D\"" + msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'" + +-#: c-decl.c:5770 ++#: c-decl.c:5781 + #, fuzzy + msgid "%Jparameter \"%D\" declared void" + msgstr "ï ÷Üñôçò ÷áñáêôÞñùí `%s' ïñßóôçêå Þäç" + +-#: c-decl.c:5785 c-decl.c:5787 ++#: c-decl.c:5796 c-decl.c:5798 + #, fuzzy + msgid "%Jtype of \"%D\" defaults to \"int\"" + msgstr "ï åðéóôñåöüìåíïò ôýðïò ðñïêáèïñßæåôáé óå `int'" + +-#: c-decl.c:5801 ++#: c-decl.c:5812 + #, fuzzy + msgid "%Jparameter \"%D\" has incomplete type" + msgstr "ìç ðëÞñçò åããñáöÞ" + +-#: c-decl.c:5807 ++#: c-decl.c:5818 + msgid "%Jdeclaration for parameter \"%D\" but no such parameter" + msgstr "" + +-#: c-decl.c:5859 ++#: c-decl.c:5870 + msgid "number of arguments doesn't match prototype" + msgstr "" + +-#: c-decl.c:5860 c-decl.c:5891 c-decl.c:5898 ++#: c-decl.c:5871 c-decl.c:5902 c-decl.c:5909 + #, fuzzy + msgid "%Hprototype declaration" + msgstr "êåíü áëöáñéèìçôéêü" + +-#: c-decl.c:5889 ++#: c-decl.c:5900 + msgid "promoted argument \"%D\" doesn't match prototype" + msgstr "" + +-#: c-decl.c:5897 ++#: c-decl.c:5908 + msgid "argument \"%D\" doesn't match prototype" + msgstr "" + +-#: c-decl.c:6094 cp/decl.c:10857 ++#: c-decl.c:6105 cp/decl.c:10954 + #, fuzzy + msgid "no return statement in function returning non-void" + msgstr "`return' ÷ùñßò ôéìÞ, óå óõíÜñôçóç ðïõ åðéóôñÝöåé ìç-êåíü" + +-#: c-decl.c:6101 ++#: c-decl.c:6112 + msgid "this function may return with or without a value" + msgstr "" + + #. If we get here, declarations have been used in a for loop without + #. the C99 for loop scope. This doesn't make much sense, so don't + #. allow it. +-#: c-decl.c:6200 ++#: c-decl.c:6211 + msgid "'for' loop initial declaration used outside C99 mode" + msgstr "" + +-#: c-decl.c:6224 ++#: c-decl.c:6235 + #, c-format + msgid "'struct %s' declared in 'for' loop initial declaration" + msgstr "" + +-#: c-decl.c:6227 ++#: c-decl.c:6238 + #, c-format + msgid "'union %s' declared in 'for' loop initial declaration" + msgstr "" + +-#: c-decl.c:6230 ++#: c-decl.c:6241 + #, fuzzy, c-format + msgid "'enum %s' declared in 'for' loop initial declaration" + msgstr "%s: äéðëüò ïñéóìüò Ýêäïóçò êáôçãïñßáò" + +-#: c-decl.c:6238 ++#: c-decl.c:6249 + msgid "%Jdeclaration of non-variable '%D' in 'for' loop initial declaration" + msgstr "" + +-#: c-decl.c:6241 ++#: c-decl.c:6252 + msgid "%Jdeclaration of static variable '%D' in 'for' loop initial declaration" + msgstr "" + +-#: c-decl.c:6244 ++#: c-decl.c:6255 + msgid "%Jdeclaration of 'extern' variable '%D' in 'for' loop initial declaration" + msgstr "" + +-#: c-decl.c:6557 ++#: c-decl.c:6568 + #, fuzzy + msgid "%Jredefinition of global '%D'" + msgstr "êáíÝíáò ïñéóìüò ôïõ `UNDEFINED'" + +-#: c-decl.c:6558 ++#: c-decl.c:6569 + #, fuzzy + msgid "%J'%D' previously defined here" + msgstr "Äåí õðÜñ÷åé ðñïçãïýìåíç êáíïíéêÞ Ýêöñáóç" +@@ -2249,90 +2254,90 @@ + msgid "missing makefile target after \"%s\"" + msgstr "ÅëëéðÞò Þ êáêïó÷çìáôéóìÝíç éäéüôçôá" + +-#: c-opts.c:291 ++#: c-opts.c:299 + #, fuzzy + msgid "-I- specified twice" + msgstr "ìç ïñéóìÝíï" + +-#: c-opts.c:692 ++#: c-opts.c:700 + #, fuzzy, c-format + msgid "switch \"%s\" is no longer supported" + msgstr "áñ÷åßá fifo äåí õðïóôçñßæïíôáé" + +-#: c-opts.c:812 ++#: c-opts.c:820 + msgid "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)" + msgstr "" + +-#: c-opts.c:978 ++#: c-opts.c:986 + msgid "output filename specified twice" + msgstr "" + +-#: c-opts.c:1107 ++#: c-opts.c:1115 + msgid "-Wformat-y2k ignored without -Wformat" + msgstr "" + +-#: c-opts.c:1109 ++#: c-opts.c:1117 + msgid "-Wformat-extra-args ignored without -Wformat" + msgstr "" + +-#: c-opts.c:1111 ++#: c-opts.c:1119 + msgid "-Wformat-zero-length ignored without -Wformat" + msgstr "" + +-#: c-opts.c:1113 ++#: c-opts.c:1121 + msgid "-Wformat-nonliteral ignored without -Wformat" + msgstr "" + +-#: c-opts.c:1115 ++#: c-opts.c:1123 + msgid "-Wformat-security ignored without -Wformat" + msgstr "" + +-#: c-opts.c:1117 ++#: c-opts.c:1125 + msgid "-Wmissing-format-attribute ignored without -Wformat" + msgstr "" + +-#: c-opts.c:1131 ++#: c-opts.c:1139 + #, fuzzy, c-format + msgid "opening output file %s: %m" + msgstr "áäõíáìßá áíïßãìáôïò áñ÷åßïõ åîüäïõ `%s'" + +-#: c-opts.c:1136 ++#: c-opts.c:1144 + #, c-format + msgid "too many filenames given. Type %s --help for usage" + msgstr "" + +-#: c-opts.c:1215 ++#: c-opts.c:1223 + msgid "YYDEBUG not defined" + msgstr "" + +-#: c-opts.c:1261 ++#: c-opts.c:1269 + #, c-format + msgid "opening dependency file %s: %m" + msgstr "" + +-#: c-opts.c:1271 ++#: c-opts.c:1279 + #, c-format + msgid "closing dependency file %s: %m" + msgstr "" + +-#: c-opts.c:1274 ++#: c-opts.c:1282 + #, fuzzy, c-format + msgid "when writing output to %s: %m" + msgstr "óöÜëìá åããñáöÞò %s" + +-#: c-opts.c:1344 ++#: c-opts.c:1352 + msgid "to generate dependencies you must specify either -M or -MM" + msgstr "" + +-#: c-opts.c:1404 ++#: c-opts.c:1412 + msgid "" + msgstr "" + +-#: c-opts.c:1419 ++#: c-opts.c:1427 + msgid "" + msgstr "" + +-#: c-opts.c:1503 ++#: c-opts.c:1511 + msgid "too late for # directive to set debug directory" + msgstr "" + +@@ -2350,7 +2355,7 @@ + msgid "ISO C forbids an empty source file" + msgstr "" + +-#: c-parse.y:349 c-typeck.c:6248 objc/objc-parse.y:374 ++#: c-parse.y:349 c-typeck.c:6228 objc/objc-parse.y:374 + msgid "argument of `asm' is not a constant string" + msgstr "" + +@@ -2366,7 +2371,7 @@ + msgid "ISO C does not allow extra `;' outside of a function" + msgstr "" + +-#: c-parse.y:429 cppexp.c:1253 ++#: c-parse.y:429 cppexp.c:1257 + msgid "traditional C rejects the unary plus operator" + msgstr "" + +@@ -2444,7 +2449,7 @@ + msgid "ISO C forbids forward references to `enum' types" + msgstr "" + +-#: c-parse.y:1703 cp/parser.c:9339 objc/objc-parse.y:1755 ++#: c-parse.y:1703 cp/parser.c:9383 objc/objc-parse.y:1755 + #, fuzzy + msgid "comma at end of enumerator list" + msgstr "óêïõðßäéá óôï ôÝëïò ôïõ áñéèìïý" +@@ -2453,7 +2458,7 @@ + msgid "no semicolon at end of struct or union" + msgstr "" + +-#: c-parse.y:1732 objc/objc-parse.y:1784 objc/objc-parse.y:2847 ++#: c-parse.y:1732 objc/objc-parse.y:1784 objc/objc-parse.y:2846 + msgid "extra semicolon in struct or union specified" + msgstr "" + +@@ -2481,23 +2486,23 @@ + msgid "braced-group within expression allowed only inside a function" + msgstr "" + +-#: c-parse.y:2185 objc/objc-parse.y:2242 ++#: c-parse.y:2185 objc/objc-parse.y:2241 + msgid "empty body in an else-statement" + msgstr "" + +-#: c-parse.y:2193 objc/objc-parse.y:2250 ++#: c-parse.y:2193 objc/objc-parse.y:2249 + msgid "%Hempty body in an if-statement" + msgstr "" + +-#: c-parse.y:2273 cp/parser.c:6050 objc/objc-parse.y:2330 ++#: c-parse.y:2273 cp/parser.c:6088 objc/objc-parse.y:2329 + msgid "break statement not within loop or switch" + msgstr "" + +-#: c-parse.y:2282 cp/parser.c:6061 objc/objc-parse.y:2339 ++#: c-parse.y:2282 cp/parser.c:6099 objc/objc-parse.y:2338 + msgid "continue statement not within a loop" + msgstr "" + +-#: c-parse.y:2324 objc/objc-parse.y:2381 ++#: c-parse.y:2324 objc/objc-parse.y:2380 + msgid "ISO C forbids `goto *expr;'" + msgstr "" + +@@ -2507,11 +2512,11 @@ + #. it caused problems with the code in expand_builtin which + #. tries to verify that BUILT_IN_NEXT_ARG is being used + #. correctly. +-#: c-parse.y:2441 objc/objc-parse.y:2549 ++#: c-parse.y:2441 objc/objc-parse.y:2548 + msgid "ISO C requires a named argument before `...'" + msgstr "" + +-#: c-parse.y:2539 objc/objc-parse.y:2647 ++#: c-parse.y:2539 objc/objc-parse.y:2646 + msgid "`...' in old-style identifier list" + msgstr "" + +@@ -2529,7 +2534,7 @@ + msgid "parser stack overflow" + msgstr "Õðåñ÷åßëéóç ðßíáêá áñ÷åßïõ" + +-#: c-parse.y:2969 objc/objc-parse.y:3664 ++#: c-parse.y:2969 objc/objc-parse.y:3663 + #, c-format + msgid "syntax error at '%s' token" + msgstr "óõíôáêôéêü óöÜëìá óôï óýìâïëï '%s'" +@@ -2612,7 +2617,7 @@ + msgstr "" + + # src/request.c:37 +-#: c-pch.c:357 cpperror.c:176 gcc.c:6554 ++#: c-pch.c:357 cpperror.c:176 gcc.c:6557 + #, c-format + msgid "%s: %s" + msgstr "%s: %s" +@@ -2732,12 +2737,12 @@ + msgid "(enclose actions of previous case statements requiring destructors in their own scope.)" + msgstr "" + +-#: c-semantics.c:737 c-typeck.c:6270 cp/semantics.c:1070 ++#: c-semantics.c:737 c-typeck.c:6250 cp/semantics.c:1070 + #, c-format + msgid "%s qualifier ignored on asm" + msgstr "" + +-#: c-semantics.c:991 ++#: c-semantics.c:993 + msgid "will never be executed" + msgstr "" + +@@ -2746,7 +2751,7 @@ + msgid "`%s' has an incomplete type" + msgstr "" + +-#: c-typeck.c:145 cp/call.c:2532 ++#: c-typeck.c:145 cp/call.c:2542 + #, fuzzy + msgid "invalid use of void expression" + msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç" +@@ -2783,67 +2788,67 @@ + msgid "function return types not compatible due to `volatile'" + msgstr "" + +-#: c-typeck.c:984 c-typeck.c:2176 ++#: c-typeck.c:984 c-typeck.c:2156 + msgid "arithmetic on pointer to an incomplete type" + msgstr "" + +-#: c-typeck.c:1357 ++#: c-typeck.c:1337 + #, c-format + msgid "%s has no member named `%s'" + msgstr "" + +-#: c-typeck.c:1393 ++#: c-typeck.c:1373 + #, c-format + msgid "request for member `%s' in something not a structure or union" + msgstr "" + +-#: c-typeck.c:1422 ++#: c-typeck.c:1402 + msgid "dereferencing pointer to incomplete type" + msgstr "" + +-#: c-typeck.c:1426 ++#: c-typeck.c:1406 + msgid "dereferencing `void *' pointer" + msgstr "" + +-#: c-typeck.c:1443 cp/typeck.c:2127 ++#: c-typeck.c:1423 cp/typeck.c:2127 + #, fuzzy, c-format + msgid "invalid type argument of `%s'" + msgstr "Ç ðáñÜìåôñïò `%s' äåí åßíáé Ýãêõñç." + +-#: c-typeck.c:1461 cp/typeck.c:2152 ++#: c-typeck.c:1441 cp/typeck.c:2152 + msgid "subscript missing in array reference" + msgstr "" + +-#: c-typeck.c:1482 cp/typeck.c:2194 ++#: c-typeck.c:1462 cp/typeck.c:2194 + msgid "array subscript has type `char'" + msgstr "" + +-#: c-typeck.c:1490 c-typeck.c:1579 cp/typeck.c:2198 cp/typeck.c:2284 ++#: c-typeck.c:1470 c-typeck.c:1559 cp/typeck.c:2198 cp/typeck.c:2284 + msgid "array subscript is not an integer" + msgstr "" + +-#: c-typeck.c:1523 ++#: c-typeck.c:1503 + msgid "ISO C forbids subscripting `register' array" + msgstr "" + +-#: c-typeck.c:1525 ++#: c-typeck.c:1505 + msgid "ISO C90 forbids subscripting non-lvalue array" + msgstr "" + +-#: c-typeck.c:1558 ++#: c-typeck.c:1538 + msgid "subscript has type `char'" + msgstr "" + +-#: c-typeck.c:1574 cp/typeck.c:2279 ++#: c-typeck.c:1554 cp/typeck.c:2279 + msgid "subscripted value is neither array nor pointer" + msgstr "" + +-#: c-typeck.c:1604 ++#: c-typeck.c:1584 + #, c-format + msgid "local declaration of `%s' hides instance variable" + msgstr "" + +-#: c-typeck.c:1697 ++#: c-typeck.c:1677 + #, fuzzy + msgid "called object is not a function" + msgstr "Ôï åðþíõìï áíôéêåßìåíï äåí åßíáé áíáæçôÞóéìï" +@@ -2851,701 +2856,701 @@ + #. This situation leads to run-time undefined behavior. We can't, + #. therefore, simply error unless we can prove that all possible + #. executions of the program must execute the code. +-#: c-typeck.c:1729 ++#: c-typeck.c:1709 + msgid "function called through a non-compatible type" + msgstr "" + +-#: c-typeck.c:1787 c-typeck.c:4198 c-typeck.c:4200 c-typeck.c:4216 +-#: c-typeck.c:4237 c-typeck.c:5616 ++#: c-typeck.c:1767 c-typeck.c:4178 c-typeck.c:4180 c-typeck.c:4196 ++#: c-typeck.c:4217 c-typeck.c:5596 + #, fuzzy + msgid "initializer element is not constant" + msgstr "ìç ôåñìáôéæìÝíï áëöáñéèìçôéêü óôáèåñÜò" + +-#: c-typeck.c:1838 cp/typeck.c:2567 ++#: c-typeck.c:1818 cp/typeck.c:2567 + #, fuzzy + msgid "too many arguments to function" + msgstr "ðÜñá ðïëëÜ ïñßóìáôá" + +-#: c-typeck.c:1859 ++#: c-typeck.c:1839 + #, c-format + msgid "type of formal parameter %d is incomplete" + msgstr "" + +-#: c-typeck.c:1872 ++#: c-typeck.c:1852 + #, c-format + msgid "%s as integer rather than floating due to prototype" + msgstr "" + +-#: c-typeck.c:1875 ++#: c-typeck.c:1855 + #, c-format + msgid "%s as integer rather than complex due to prototype" + msgstr "" + +-#: c-typeck.c:1878 ++#: c-typeck.c:1858 + #, c-format + msgid "%s as complex rather than floating due to prototype" + msgstr "" + +-#: c-typeck.c:1881 ++#: c-typeck.c:1861 + #, c-format + msgid "%s as floating rather than integer due to prototype" + msgstr "" + +-#: c-typeck.c:1884 ++#: c-typeck.c:1864 + #, c-format + msgid "%s as complex rather than integer due to prototype" + msgstr "" + +-#: c-typeck.c:1887 ++#: c-typeck.c:1867 + #, c-format + msgid "%s as floating rather than complex due to prototype" + msgstr "" + +-#: c-typeck.c:1897 ++#: c-typeck.c:1877 + #, c-format + msgid "%s as `float' rather than `double' due to prototype" + msgstr "" + +-#: c-typeck.c:1915 ++#: c-typeck.c:1895 + #, c-format + msgid "%s with different width due to prototype" + msgstr "" + +-#: c-typeck.c:1941 ++#: c-typeck.c:1921 + #, c-format + msgid "%s as unsigned due to prototype" + msgstr "" + +-#: c-typeck.c:1943 ++#: c-typeck.c:1923 + #, c-format + msgid "%s as signed due to prototype" + msgstr "" + +-#: c-typeck.c:1977 cp/typeck.c:2673 ++#: c-typeck.c:1957 cp/typeck.c:2673 + #, fuzzy + msgid "too few arguments to function" + msgstr "ðïëý ëßãá ïñßóìáôá" + +-#: c-typeck.c:2017 ++#: c-typeck.c:1997 + msgid "suggest parentheses around + or - inside shift" + msgstr "" + +-#: c-typeck.c:2024 ++#: c-typeck.c:2004 + msgid "suggest parentheses around && within ||" + msgstr "" + +-#: c-typeck.c:2033 ++#: c-typeck.c:2013 + msgid "suggest parentheses around arithmetic in operand of |" + msgstr "" + +-#: c-typeck.c:2036 ++#: c-typeck.c:2016 + msgid "suggest parentheses around comparison in operand of |" + msgstr "" + +-#: c-typeck.c:2045 ++#: c-typeck.c:2025 + msgid "suggest parentheses around arithmetic in operand of ^" + msgstr "" + +-#: c-typeck.c:2048 ++#: c-typeck.c:2028 + msgid "suggest parentheses around comparison in operand of ^" + msgstr "" + +-#: c-typeck.c:2055 ++#: c-typeck.c:2035 + msgid "suggest parentheses around + or - in operand of &" + msgstr "" + +-#: c-typeck.c:2058 ++#: c-typeck.c:2038 + msgid "suggest parentheses around comparison in operand of &" + msgstr "" + +-#: c-typeck.c:2065 ++#: c-typeck.c:2045 + msgid "comparisons like X<=Y<=Z do not have their mathematical meaning" + msgstr "" + +-#: c-typeck.c:2128 ++#: c-typeck.c:2108 + msgid "pointer of type `void *' used in subtraction" + msgstr "" + +-#: c-typeck.c:2130 ++#: c-typeck.c:2110 + msgid "pointer to a function used in subtraction" + msgstr "" + +-#: c-typeck.c:2224 ++#: c-typeck.c:2204 + msgid "wrong type argument to unary plus" + msgstr "" + +-#: c-typeck.c:2237 ++#: c-typeck.c:2217 + msgid "wrong type argument to unary minus" + msgstr "" + +-#: c-typeck.c:2254 ++#: c-typeck.c:2234 + msgid "ISO C does not support `~' for complex conjugation" + msgstr "" + +-#: c-typeck.c:2260 ++#: c-typeck.c:2240 + msgid "wrong type argument to bit-complement" + msgstr "" + +-#: c-typeck.c:2268 ++#: c-typeck.c:2248 + #, fuzzy + msgid "wrong type argument to abs" + msgstr "ëÜèïò áñéèìüò ïñéóìÜôùí" + +-#: c-typeck.c:2280 ++#: c-typeck.c:2260 + msgid "wrong type argument to conjugation" + msgstr "" + +-#: c-typeck.c:2294 ++#: c-typeck.c:2274 + msgid "wrong type argument to unary exclamation mark" + msgstr "" + +-#: c-typeck.c:2337 ++#: c-typeck.c:2317 + msgid "ISO C does not support `++' and `--' on complex types" + msgstr "" + +-#: c-typeck.c:2352 c-typeck.c:2384 ++#: c-typeck.c:2332 c-typeck.c:2364 + msgid "wrong type argument to increment" + msgstr "" + +-#: c-typeck.c:2354 c-typeck.c:2386 ++#: c-typeck.c:2334 c-typeck.c:2366 + msgid "wrong type argument to decrement" + msgstr "" + +-#: c-typeck.c:2375 ++#: c-typeck.c:2355 + msgid "increment of pointer to unknown structure" + msgstr "" + +-#: c-typeck.c:2377 ++#: c-typeck.c:2357 + msgid "decrement of pointer to unknown structure" + msgstr "" + +-#: c-typeck.c:2502 ++#: c-typeck.c:2482 + #, fuzzy + msgid "invalid lvalue in unary `&'" + msgstr "ìç Ýãêõñïò ÷ñüíïò áíáðÞäçò" + +-#: c-typeck.c:2534 ++#: c-typeck.c:2514 + #, c-format + msgid "attempt to take address of bit-field structure member `%s'" + msgstr "" + +-#: c-typeck.c:2668 ++#: c-typeck.c:2648 + #, fuzzy + msgid "use of conditional expressions as lvalues is deprecated" + msgstr "ËÜèïò Ýêöñáóç óôçí áðïôßìçóç (ëÜèïò åßóïäïò): %s" + +-#: c-typeck.c:2671 ++#: c-typeck.c:2651 + msgid "use of compound expressions as lvalues is deprecated" + msgstr "" + +-#: c-typeck.c:2674 ++#: c-typeck.c:2654 + msgid "use of cast expressions as lvalues is deprecated" + msgstr "" + +-#: c-typeck.c:2689 ++#: c-typeck.c:2669 + #, c-format + msgid "%s of read-only member `%s'" + msgstr "" + +-#: c-typeck.c:2693 ++#: c-typeck.c:2673 + #, fuzzy, c-format + msgid "%s of read-only variable `%s'" + msgstr "Ìç áíáãíùñßóéìç ìåôáâëçôÞ `%s'" + +-#: c-typeck.c:2696 ++#: c-typeck.c:2676 + #, c-format + msgid "%s of read-only location" + msgstr "" + +-#: c-typeck.c:2714 ++#: c-typeck.c:2694 + #, fuzzy, c-format + msgid "cannot take address of bit-field `%s'" + msgstr "äåí åßíáé äõíáôü íá äçìéïõñãçèåß ôï áñ÷åßï fifo `%s'" + +-#: c-typeck.c:2742 treelang/treetree.c:946 ++#: c-typeck.c:2722 treelang/treetree.c:946 + #, c-format + msgid "global register variable `%s' used in nested function" + msgstr "" + +-#: c-typeck.c:2746 treelang/treetree.c:950 ++#: c-typeck.c:2726 treelang/treetree.c:950 + #, c-format + msgid "register variable `%s' used in nested function" + msgstr "" + +-#: c-typeck.c:2753 treelang/treetree.c:957 ++#: c-typeck.c:2733 treelang/treetree.c:957 + #, c-format + msgid "address of global register variable `%s' requested" + msgstr "" + +-#: c-typeck.c:2765 ++#: c-typeck.c:2745 + msgid "cannot put object with volatile field into register" + msgstr "" + +-#: c-typeck.c:2769 treelang/treetree.c:962 ++#: c-typeck.c:2749 treelang/treetree.c:962 + #, c-format + msgid "address of register variable `%s' requested" + msgstr "" + +-#: c-typeck.c:2854 ++#: c-typeck.c:2834 + msgid "signed and unsigned type in conditional expression" + msgstr "" + +-#: c-typeck.c:2861 ++#: c-typeck.c:2841 + msgid "ISO C forbids conditional expr with only one void side" + msgstr "" + +-#: c-typeck.c:2877 c-typeck.c:2884 ++#: c-typeck.c:2857 c-typeck.c:2864 + msgid "ISO C forbids conditional expr between `void *' and function pointer" + msgstr "" + +-#: c-typeck.c:2890 ++#: c-typeck.c:2870 + msgid "pointer type mismatch in conditional expression" + msgstr "" + +-#: c-typeck.c:2897 c-typeck.c:2907 ++#: c-typeck.c:2877 c-typeck.c:2887 + msgid "pointer/integer type mismatch in conditional expression" + msgstr "" + +-#: c-typeck.c:2921 ++#: c-typeck.c:2901 + msgid "type mismatch in conditional expression" + msgstr "" + +-#: c-typeck.c:2981 ++#: c-typeck.c:2961 + msgid "left-hand operand of comma expression has no effect" + msgstr "" + +-#: c-typeck.c:3012 ++#: c-typeck.c:2992 + msgid "cast specifies array type" + msgstr "" + +-#: c-typeck.c:3018 ++#: c-typeck.c:2998 + msgid "cast specifies function type" + msgstr "" + +-#: c-typeck.c:3028 ++#: c-typeck.c:3008 + msgid "ISO C forbids casting nonscalar to the same type" + msgstr "" + +-#: c-typeck.c:3046 ++#: c-typeck.c:3026 + msgid "ISO C forbids casts to union type" + msgstr "" + +-#: c-typeck.c:3054 ++#: c-typeck.c:3034 + msgid "cast to union type from type not present in union" + msgstr "" + +-#: c-typeck.c:3105 ++#: c-typeck.c:3085 + msgid "cast adds new qualifiers to function type" + msgstr "" + + #. There are qualifiers present in IN_OTYPE that are not + #. present in IN_TYPE. +-#: c-typeck.c:3110 ++#: c-typeck.c:3090 + msgid "cast discards qualifiers from pointer target type" + msgstr "" + +-#: c-typeck.c:3125 ++#: c-typeck.c:3105 + msgid "cast increases required alignment of target type" + msgstr "" + +-#: c-typeck.c:3131 cp/typeck.c:4945 ++#: c-typeck.c:3111 cp/typeck.c:4963 + msgid "cast from pointer to integer of different size" + msgstr "" + +-#: c-typeck.c:3136 ++#: c-typeck.c:3116 + msgid "cast does not match function type" + msgstr "" + +-#: c-typeck.c:3143 cp/typeck.c:4952 ++#: c-typeck.c:3123 cp/typeck.c:4970 + msgid "cast to pointer from integer of different size" + msgstr "" + +-#: c-typeck.c:3155 ++#: c-typeck.c:3135 + msgid "type-punning to incomplete type might break strict-aliasing rules" + msgstr "" + +-#: c-typeck.c:3159 ++#: c-typeck.c:3139 + msgid "dereferencing type-punned pointer will break strict-aliasing rules" + msgstr "" + +-#: c-typeck.c:3170 ++#: c-typeck.c:3150 + msgid "ISO C forbids conversion of function pointer to object pointer type" + msgstr "" + +-#: c-typeck.c:3179 ++#: c-typeck.c:3159 + msgid "ISO C forbids conversion of object pointer to function pointer type" + msgstr "" + + #. Now we have handled acceptable kinds of LHS that are not truly lvalues. + #. Reject anything strange now. +-#: c-typeck.c:3337 ++#: c-typeck.c:3317 + #, fuzzy + msgid "invalid lvalue in assignment" + msgstr "Ç ðáñÜìåôñïò êéíçôÞò õðïäéáóôïëÞò äåí åßíáé Ýãêõñç: %s" + + #. Convert new value to destination type. +-#: c-typeck.c:3346 c-typeck.c:3371 c-typeck.c:3388 cp/typeck.c:5064 +-#: cp/typeck.c:5211 cp/typeck.c:5226 ++#: c-typeck.c:3326 c-typeck.c:3351 c-typeck.c:3368 cp/typeck.c:5082 ++#: cp/typeck.c:5229 cp/typeck.c:5244 + #, fuzzy + msgid "assignment" + msgstr "ðñïóðÝñáóìá ïñßóìáôïò" + +-#: c-typeck.c:3455 ++#: c-typeck.c:3435 + #, fuzzy + msgid "cannot pass rvalue to reference parameter" + msgstr "äåí åßíáé äõíáôüí íá ãßíåé `stat' ôï locale áñ÷åßï `%s'" + +-#: c-typeck.c:3564 c-typeck.c:3640 ++#: c-typeck.c:3544 c-typeck.c:3620 + #, c-format + msgid "%s makes qualified function pointer from unqualified" + msgstr "" + +-#: c-typeck.c:3568 c-typeck.c:3620 ++#: c-typeck.c:3548 c-typeck.c:3600 + #, c-format + msgid "%s discards qualifiers from pointer target type" + msgstr "" + +-#: c-typeck.c:3574 ++#: c-typeck.c:3554 + msgid "ISO C prohibits argument conversion to union type" + msgstr "" + +-#: c-typeck.c:3612 ++#: c-typeck.c:3592 + #, c-format + msgid "ISO C forbids %s between function pointer and `void *'" + msgstr "" + +-#: c-typeck.c:3629 ++#: c-typeck.c:3609 + #, c-format + msgid "pointer targets in %s differ in signedness" + msgstr "" + +-#: c-typeck.c:3645 ++#: c-typeck.c:3625 + #, c-format + msgid "%s from incompatible pointer type" + msgstr "" + +-#: c-typeck.c:3651 c-typeck.c:4158 cp/typeck.c:1389 ++#: c-typeck.c:3631 c-typeck.c:4138 cp/typeck.c:1389 + #, fuzzy + msgid "invalid use of non-lvalue array" + msgstr "ìç Ýãêõñç þñá ôçò ìÝñáò" + +-#: c-typeck.c:3665 ++#: c-typeck.c:3645 + #, c-format + msgid "%s makes pointer from integer without a cast" + msgstr "%s ìåôáôñÝðåé áêÝñáéï óå äåßêôç ÷ùñßò ìåôáôñïðÝá" + +-#: c-typeck.c:3672 ++#: c-typeck.c:3652 + #, c-format + msgid "%s makes integer from pointer without a cast" + msgstr "" + +-#: c-typeck.c:3686 c-typeck.c:3689 ++#: c-typeck.c:3666 c-typeck.c:3669 + #, fuzzy, c-format + msgid "incompatible type for argument %d of `%s'" + msgstr "Ìç Ýãêõñç áêÝñáéá ðáñÜìåôñïò `%s'" + +-#: c-typeck.c:3693 ++#: c-typeck.c:3673 + #, c-format + msgid "incompatible type for argument %d of indirect function call" + msgstr "" + +-#: c-typeck.c:3697 ++#: c-typeck.c:3677 + #, fuzzy, c-format + msgid "incompatible types in %s" + msgstr "ìç Ýãêõñï åßäïò áëöáñéèìçôéêïý `%s'" + + #. Function name is known; supply it. +-#: c-typeck.c:3753 ++#: c-typeck.c:3733 + #, fuzzy, c-format + msgid "passing arg of `%s'" + msgstr "ôï ðÝñáóìá ôïõ ïñßóìáôïò %d áðü `%s'" + + #. Function name unknown (call through ptr). +-#: c-typeck.c:3762 ++#: c-typeck.c:3742 + #, fuzzy + msgid "passing arg of pointer to function" + msgstr "ôï ðÝñáóìá ôïõ ïñßóìáôïò %d ôïõ äåßêôç óôç óõíÜñôçóç" + + #. Function name is known; supply it. +-#: c-typeck.c:3770 ++#: c-typeck.c:3750 + #, c-format + msgid "passing arg %d of `%s'" + msgstr "ôï ðÝñáóìá ôïõ ïñßóìáôïò %d áðü `%s'" + + #. Function name unknown (call through ptr); just give arg number. +-#: c-typeck.c:3779 ++#: c-typeck.c:3759 + #, c-format + msgid "passing arg %d of pointer to function" + msgstr "ôï ðÝñáóìá ôïõ ïñßóìáôïò %d ôïõ äåßêôç óôç óõíÜñôçóç" + +-#: c-typeck.c:3836 ++#: c-typeck.c:3816 + msgid "traditional C rejects automatic aggregate initialization" + msgstr "" + + # src/request.c:263 +-#: c-typeck.c:4007 c-typeck.c:4022 c-typeck.c:4037 ++#: c-typeck.c:3987 c-typeck.c:4002 c-typeck.c:4017 + #, fuzzy, c-format + msgid "(near initialization for `%s')" + msgstr "Ôï âÞìá áñ÷éêïðïßçóçò áðÝôõ÷å" + +-#: c-typeck.c:4086 cp/typeck2.c:560 ++#: c-typeck.c:4066 cp/typeck2.c:550 + msgid "char-array initialized from wide string" + msgstr "" + +-#: c-typeck.c:4093 cp/typeck2.c:567 ++#: c-typeck.c:4073 cp/typeck2.c:557 + msgid "int-array initialized from non-wide string" + msgstr "" + +-#: c-typeck.c:4111 cp/typeck2.c:582 ++#: c-typeck.c:4091 cp/typeck2.c:572 + msgid "initializer-string for array of chars is too long" + msgstr "" + +-#: c-typeck.c:4181 ++#: c-typeck.c:4161 + msgid "array initialized from non-constant array expression" + msgstr "" + + # src/request.c:263 +-#: c-typeck.c:4232 ++#: c-typeck.c:4212 + msgid "initialization" + msgstr "áñ÷éêïðïßçóç" + +-#: c-typeck.c:4243 c-typeck.c:5621 ++#: c-typeck.c:4223 c-typeck.c:5601 + msgid "initializer element is not computable at load time" + msgstr "" + +-#: c-typeck.c:4258 cp/typeck2.c:659 ++#: c-typeck.c:4238 cp/typeck2.c:649 + #, fuzzy + msgid "invalid initializer" + msgstr "ìç Ýãêõñï ìÝãåèïò ïñéæüíôéïõ óôçëïèÝôç: %s" + +-#: c-typeck.c:4540 cp/decl.c:4484 ++#: c-typeck.c:4520 cp/decl.c:4539 + #, fuzzy + msgid "opaque vector types cannot be initialized" + msgstr "Ç ëåéôïõñãßá äåí Ý÷åé õëïðïéçèåß" + +-#: c-typeck.c:4734 ++#: c-typeck.c:4714 + #, fuzzy + msgid "extra brace group at end of initializer" + msgstr "áêïëïõèïýí óêïõðßäéá óôï ôÝëïò ôçò ãñáììÞò" + +-#: c-typeck.c:4754 ++#: c-typeck.c:4734 + msgid "missing braces around initializer" + msgstr "" + +-#: c-typeck.c:4814 ++#: c-typeck.c:4794 + msgid "braces around scalar initializer" + msgstr "" + +-#: c-typeck.c:4865 ++#: c-typeck.c:4845 + msgid "initialization of flexible array member in a nested context" + msgstr "" + +-#: c-typeck.c:4867 ++#: c-typeck.c:4847 + msgid "initialization of a flexible array member" + msgstr "" + +-#: c-typeck.c:4898 ++#: c-typeck.c:4878 + #, fuzzy + msgid "missing initializer" + msgstr "Ý÷åé ðáñáëçöèåß ôï áñ÷åßï ðñïïñéóìïý" + +-#: c-typeck.c:4920 ++#: c-typeck.c:4900 + msgid "empty scalar initializer" + msgstr "" + +-#: c-typeck.c:4925 ++#: c-typeck.c:4905 + msgid "extra elements in scalar initializer" + msgstr "" + +-#: c-typeck.c:5010 ++#: c-typeck.c:4990 + msgid "initialization designators may not nest" + msgstr "" + +-#: c-typeck.c:5031 c-typeck.c:5099 ++#: c-typeck.c:5011 c-typeck.c:5079 + msgid "array index in non-array initializer" + msgstr "" + +-#: c-typeck.c:5036 c-typeck.c:5152 ++#: c-typeck.c:5016 c-typeck.c:5132 + msgid "field name not in record or union initializer" + msgstr "" + +-#: c-typeck.c:5095 c-typeck.c:5097 ++#: c-typeck.c:5075 c-typeck.c:5077 + msgid "nonconstant array index in initializer" + msgstr "" + +-#: c-typeck.c:5101 c-typeck.c:5104 ++#: c-typeck.c:5081 c-typeck.c:5084 + msgid "array index in initializer exceeds array bounds" + msgstr "" + +-#: c-typeck.c:5115 ++#: c-typeck.c:5095 + msgid "empty index range in initializer" + msgstr "" + +-#: c-typeck.c:5124 ++#: c-typeck.c:5104 + msgid "array index range in initializer exceeds array bounds" + msgstr "" + +-#: c-typeck.c:5164 ++#: c-typeck.c:5144 + #, c-format + msgid "unknown field `%s' specified in initializer" + msgstr "" + +-#: c-typeck.c:5200 c-typeck.c:5221 c-typeck.c:5683 ++#: c-typeck.c:5180 c-typeck.c:5201 c-typeck.c:5663 + msgid "initialized field with side-effects overwritten" + msgstr "" + +-#: c-typeck.c:5891 ++#: c-typeck.c:5871 + msgid "excess elements in char array initializer" + msgstr "" + +-#: c-typeck.c:5898 c-typeck.c:5944 ++#: c-typeck.c:5878 c-typeck.c:5924 + msgid "excess elements in struct initializer" + msgstr "" + +-#: c-typeck.c:5959 ++#: c-typeck.c:5939 + msgid "non-static initialization of a flexible array member" + msgstr "" + +-#: c-typeck.c:6026 ++#: c-typeck.c:6006 + msgid "excess elements in union initializer" + msgstr "" + +-#: c-typeck.c:6047 ++#: c-typeck.c:6027 + msgid "traditional C rejects initialization of unions" + msgstr "" + +-#: c-typeck.c:6110 ++#: c-typeck.c:6090 + msgid "excess elements in array initializer" + msgstr "" + +-#: c-typeck.c:6139 ++#: c-typeck.c:6119 + msgid "excess elements in vector initializer" + msgstr "" + +-#: c-typeck.c:6161 ++#: c-typeck.c:6141 + msgid "excess elements in scalar initializer" + msgstr "" + +-#: c-typeck.c:6263 ++#: c-typeck.c:6243 + #, fuzzy + msgid "asm template is not a string constant" + msgstr "ìç ôåñìáôéæìÝíï áëöáñéèìçôéêü óôáèåñÜò" + +-#: c-typeck.c:6295 ++#: c-typeck.c:6275 + msgid "invalid lvalue in asm statement" + msgstr "" + +-#: c-typeck.c:6367 cp/typeck.c:5902 ++#: c-typeck.c:6347 cp/typeck.c:5923 + #, fuzzy + msgid "modification by `asm'" + msgstr "Ç ôñïðïðïßçóç áðÝôõ÷å" + +-#: c-typeck.c:6385 cp/typeck.c:5986 ++#: c-typeck.c:6365 cp/typeck.c:6007 + msgid "function declared `noreturn' has a `return' statement" + msgstr "" + +-#: c-typeck.c:6392 ++#: c-typeck.c:6372 + msgid "`return' with no value, in function returning non-void" + msgstr "`return' ÷ùñßò ôéìÞ, óå óõíÜñôçóç ðïõ åðéóôñÝöåé ìç-êåíü" + +-#: c-typeck.c:6398 ++#: c-typeck.c:6378 + msgid "`return' with a value, in function returning void" + msgstr "" + +-#: c-typeck.c:6402 ++#: c-typeck.c:6382 + msgid "return" + msgstr "åðéóôñïöÞ" + +-#: c-typeck.c:6454 ++#: c-typeck.c:6434 + msgid "function returns address of local variable" + msgstr "" + +-#: c-typeck.c:6509 cp/semantics.c:749 ++#: c-typeck.c:6489 cp/semantics.c:749 + msgid "switch quantity not an integer" + msgstr "" + +-#: c-typeck.c:6519 ++#: c-typeck.c:6499 + msgid "`long' switch expression not converted to `int' in ISO C" + msgstr "" + +-#: c-typeck.c:6560 cp/parser.c:5560 ++#: c-typeck.c:6540 cp/parser.c:5597 + msgid "case label not within a switch statement" + msgstr "" + +-#: c-typeck.c:6562 ++#: c-typeck.c:6542 + msgid "`default' label not within a switch statement" + msgstr "" + +-#: c-typeck.c:6714 c-typeck.c:6748 ++#: c-typeck.c:6694 c-typeck.c:6728 + msgid "division by zero" + msgstr "äéáßñåóç ìå ìçäÝí" + +-#: c-typeck.c:6793 cp/typeck.c:2953 ++#: c-typeck.c:6773 cp/typeck.c:2953 + msgid "right shift count is negative" + msgstr "" + +-#: c-typeck.c:6800 cp/typeck.c:2959 ++#: c-typeck.c:6780 cp/typeck.c:2959 + msgid "right shift count >= width of type" + msgstr "" + +-#: c-typeck.c:6821 cp/typeck.c:2978 ++#: c-typeck.c:6801 cp/typeck.c:2978 + msgid "left shift count is negative" + msgstr "" + +-#: c-typeck.c:6824 cp/typeck.c:2980 ++#: c-typeck.c:6804 cp/typeck.c:2980 + msgid "left shift count >= width of type" + msgstr "" + +-#: c-typeck.c:6845 ++#: c-typeck.c:6825 + msgid "shift count is negative" + msgstr "" + +-#: c-typeck.c:6847 ++#: c-typeck.c:6827 + msgid "shift count >= width of type" + msgstr "" + +-#: c-typeck.c:6864 cp/typeck.c:3015 ++#: c-typeck.c:6844 cp/typeck.c:3015 + msgid "comparing floating point with == or != is unsafe" + msgstr "" + +-#: c-typeck.c:6888 c-typeck.c:6894 ++#: c-typeck.c:6868 c-typeck.c:6874 + msgid "ISO C forbids comparison of `void *' with function pointer" + msgstr "" + +-#: c-typeck.c:6897 c-typeck.c:6937 c-typeck.c:6965 ++#: c-typeck.c:6877 c-typeck.c:6917 c-typeck.c:6945 + msgid "comparison of distinct pointer types lacks a cast" + msgstr "" + +-#: c-typeck.c:6911 c-typeck.c:6916 c-typeck.c:6985 c-typeck.c:6990 ++#: c-typeck.c:6891 c-typeck.c:6896 c-typeck.c:6965 c-typeck.c:6970 + msgid "comparison between pointer and integer" + msgstr "" + +-#: c-typeck.c:6932 c-typeck.c:6960 ++#: c-typeck.c:6912 c-typeck.c:6940 + msgid "ISO C forbids ordered comparisons of pointers to functions" + msgstr "" + +-#: c-typeck.c:6957 ++#: c-typeck.c:6937 + msgid "comparison of complete and incomplete pointers" + msgstr "" + +-#: c-typeck.c:6973 c-typeck.c:6980 ++#: c-typeck.c:6953 c-typeck.c:6960 + msgid "ordered comparison of pointer with integer zero" + msgstr "" + +-#: c-typeck.c:7004 cp/typeck.c:3151 ++#: c-typeck.c:6984 cp/typeck.c:3151 + #, fuzzy + msgid "unordered comparison on non-floating point argument" + msgstr "Ç ðáñÜìåôñïò êéíçôÞò õðïäéáóôïëÞò äåí åßíáé Ýãêõñç: %s" + +-#: c-typeck.c:7214 ++#: c-typeck.c:7194 + msgid "comparison between signed and unsigned" + msgstr "" + +-#: c-typeck.c:7260 cp/typeck.c:3398 ++#: c-typeck.c:7240 cp/typeck.c:3398 + msgid "comparison of promoted ~unsigned with constant" + msgstr "" + +-#: c-typeck.c:7268 cp/typeck.c:3406 ++#: c-typeck.c:7248 cp/typeck.c:3406 + msgid "comparison of promoted ~unsigned with unsigned" + msgstr "" + +@@ -3554,7 +3559,7 @@ + msgid "%Jinlining failed in call to '%F'" + msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'" + +-#: calls.c:1839 calls.c:2211 tree-inline.c:1339 tree-inline.c:1346 ++#: calls.c:1839 calls.c:2211 tree-inline.c:1339 tree-inline.c:1347 + msgid "called from here" + msgstr "" + +@@ -3615,7 +3620,7 @@ + msgid "verify_flow_info: Basic block %d succ edge is corrupted" + msgstr "" + +-#: cfg.c:909 cfgrtl.c:1971 ++#: cfg.c:909 cfgrtl.c:1983 + #, c-format + msgid "Wrong amount of branch edges after unconditional jump %i" + msgstr "" +@@ -3694,116 +3699,116 @@ + msgid "Edge from %d to %d should not be marked irreducible." + msgstr "" + +-#: cfgrtl.c:1877 ++#: cfgrtl.c:1889 + #, c-format + msgid "end insn %d for block %d not found in the insn stream" + msgstr "" + +-#: cfgrtl.c:1891 ++#: cfgrtl.c:1903 + #, c-format + msgid "insn %d is in multiple basic blocks (%d and %d)" + msgstr "" + +-#: cfgrtl.c:1903 ++#: cfgrtl.c:1915 + #, c-format + msgid "head insn %d for block %d not found in the insn stream" + msgstr "" + +-#: cfgrtl.c:1925 ++#: cfgrtl.c:1937 + msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i" + msgstr "" + +-#: cfgrtl.c:1953 ++#: cfgrtl.c:1965 + #, c-format + msgid "Missing REG_EH_REGION note in the end of bb %i" + msgstr "" + +-#: cfgrtl.c:1961 ++#: cfgrtl.c:1973 + #, c-format + msgid "Too many outgoing branch edges from bb %i" + msgstr "" + +-#: cfgrtl.c:1966 ++#: cfgrtl.c:1978 + #, c-format + msgid "Fallthru edge after unconditional jump %i" + msgstr "" + +-#: cfgrtl.c:1977 ++#: cfgrtl.c:1989 + #, c-format + msgid "Wrong amount of branch edges after conditional jump %i" + msgstr "" + +-#: cfgrtl.c:1982 ++#: cfgrtl.c:1994 + #, c-format + msgid "Call edges for non-call insn in bb %i" + msgstr "" + +-#: cfgrtl.c:1991 ++#: cfgrtl.c:2003 + #, c-format + msgid "Abnormal edges for no purpose in bb %i" + msgstr "" + +-#: cfgrtl.c:2001 ++#: cfgrtl.c:2013 + #, c-format + msgid "insn %d inside basic block %d but block_for_insn is NULL" + msgstr "" + +-#: cfgrtl.c:2005 ++#: cfgrtl.c:2017 + #, c-format + msgid "insn %d inside basic block %d but block_for_insn is %i" + msgstr "" + +-#: cfgrtl.c:2019 cfgrtl.c:2029 ++#: cfgrtl.c:2031 cfgrtl.c:2041 + #, c-format + msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d" + msgstr "" + +-#: cfgrtl.c:2042 ++#: cfgrtl.c:2054 + #, c-format + msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d" + msgstr "" + +-#: cfgrtl.c:2052 ++#: cfgrtl.c:2064 + #, c-format + msgid "in basic block %d:" + msgstr "" + +-#: cfgrtl.c:2053 ++#: cfgrtl.c:2065 + msgid "flow control insn inside a basic block" + msgstr "" + +-#: cfgrtl.c:2099 ++#: cfgrtl.c:2111 + #, c-format + msgid "missing barrier after block %i" + msgstr "" + +-#: cfgrtl.c:2112 ++#: cfgrtl.c:2124 + #, c-format + msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i" + msgstr "" + +-#: cfgrtl.c:2127 ++#: cfgrtl.c:2139 + #, c-format + msgid "verify_flow_info: Incorrect fallthru %i->%i" + msgstr "" + +-#: cfgrtl.c:2129 ++#: cfgrtl.c:2141 + msgid "wrong insn in the fallthru edge" + msgstr "" + +-#: cfgrtl.c:2146 ++#: cfgrtl.c:2158 + msgid "basic blocks not laid down consecutively" + msgstr "" + +-#: cfgrtl.c:2171 ++#: cfgrtl.c:2183 + msgid "insn outside basic block" + msgstr "" + +-#: cfgrtl.c:2179 ++#: cfgrtl.c:2191 + msgid "return not followed by barrier" + msgstr "" + +-#: cfgrtl.c:2186 ++#: cfgrtl.c:2198 + #, c-format + msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)" + msgstr "" +@@ -4039,7 +4044,7 @@ + msgid "library lib%s not found" + msgstr "Ðéèáíüí äå âñÝèçêå" + +-#: combine.c:13048 ++#: combine.c:13047 + #, c-format + msgid "" + ";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n" +@@ -4047,7 +4052,7 @@ + "\n" + msgstr "" + +-#: combine.c:13057 ++#: combine.c:13056 + #, c-format + msgid "" + "\n" +@@ -4392,66 +4397,71 @@ + msgid "token \"%s\" is not valid in preprocessor expressions" + msgstr "%s: ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç: %s" + +-#: cppexp.c:753 +-msgid "void expression between '(' and ')'" ++#: cppexp.c:751 ++msgid "missing expression between '(' and ')'" + msgstr "" + +-#: cppexp.c:756 ++#: cppexp.c:754 + msgid "#if with no expression" + msgstr "" + +-#: cppexp.c:758 ++#: cppexp.c:757 + #, c-format + msgid "operator '%s' has no right operand" + msgstr "" + +-#: cppexp.c:784 ++#: cppexp.c:762 ++#, c-format ++msgid "operator '%s' has no left operand" ++msgstr "" ++ ++#: cppexp.c:788 + msgid " ':' without preceding '?'" + msgstr "" + +-#: cppexp.c:811 ++#: cppexp.c:815 + msgid "unbalanced stack in #if" + msgstr "" + +-#: cppexp.c:830 ++#: cppexp.c:834 + #, fuzzy, c-format + msgid "impossible operator '%u'" + msgstr "RPC: Ìç óõìâáôÝò åêäüóåéò ôïõ RPC" + +-#: cppexp.c:922 ++#: cppexp.c:926 + #, fuzzy + msgid "missing ')' in expression" + msgstr "Ý÷åé ðáñáëçöèåß ç ëßóôá ìå ôéò èÝóåéò" + +-#: cppexp.c:943 ++#: cppexp.c:947 + #, fuzzy + msgid "'?' without following ':'" + msgstr "óõíôáêôéêü óöÜëìá óôïí ðñüëïãï: %s" + +-#: cppexp.c:953 ++#: cppexp.c:957 + msgid "integer overflow in preprocessor expression" + msgstr "" + +-#: cppexp.c:958 ++#: cppexp.c:962 + #, fuzzy + msgid "missing '(' in expression" + msgstr "Ý÷åé ðáñáëçöèåß ç ëßóôá ìå ôéò èÝóåéò" + +-#: cppexp.c:990 ++#: cppexp.c:994 + #, c-format + msgid "the left operand of \"%s\" changes sign when promoted" + msgstr "" + +-#: cppexp.c:995 ++#: cppexp.c:999 + #, c-format + msgid "the right operand of \"%s\" changes sign when promoted" + msgstr "" + +-#: cppexp.c:1353 ++#: cppexp.c:1357 + msgid "comma operator in operand of #if" + msgstr "" + +-#: cppexp.c:1484 ++#: cppexp.c:1488 + #, fuzzy + msgid "division by zero in #if" + msgstr "Äéáßñåóç ìå ìçäÝí óôçí áðïôßìçóç: %s" +@@ -4489,7 +4499,7 @@ + msgid "no include path in which to search for %s" + msgstr "" + +-#: cppfiles.c:956 ++#: cppfiles.c:959 + msgid "Multiple include guards may be useful for:\n" + msgstr "" + +@@ -4913,7 +4923,7 @@ + msgid "syntax error in macro parameter list" + msgstr "óõíôáêôéêü óöÜëìá óôïí ïñéóìü êëÜóçò ÷áñáêôÞñùí" + +-#: cse.c:7064 ++#: cse.c:7069 + #, c-format + msgid ";; Processing block from %d to %d, %d sets.\n" + msgstr "" +@@ -5054,12 +5064,12 @@ + + #. We can't handle floating point constants; + #. PRINT_OPERAND must handle them. +-#: final.c:3220 vmsdbgout.c:467 config/i386/i386.c:6768 ++#: final.c:3220 vmsdbgout.c:467 config/i386/i386.c:6769 + #: config/pdp11/pdp11.c:1646 + msgid "floating constant misused" + msgstr "" + +-#: final.c:3276 vmsdbgout.c:524 config/i386/i386.c:6846 ++#: final.c:3276 vmsdbgout.c:524 config/i386/i386.c:6847 + #: config/pdp11/pdp11.c:1693 + #, fuzzy + msgid "invalid expression as operand" +@@ -5081,25 +5091,25 @@ + msgid "Attempt to delete prologue/epilogue insn:" + msgstr "" + +-#: fold-const.c:2878 fold-const.c:2891 ++#: fold-const.c:2889 fold-const.c:2902 + #, c-format + msgid "comparison is always %d due to width of bit-field" + msgstr "" + +-#: fold-const.c:4093 fold-const.c:4110 ++#: fold-const.c:4110 fold-const.c:4127 + #, c-format + msgid "comparison is always %d" + msgstr "" + +-#: fold-const.c:4241 ++#: fold-const.c:4258 + msgid "`or' of unmatched not-equal tests is always 1" + msgstr "" + +-#: fold-const.c:4246 ++#: fold-const.c:4263 + msgid "`and' of mutually exclusive equal-tests is always 0" + msgstr "" + +-#: fold-const.c:8393 ++#: fold-const.c:8410 + msgid "fold check: original tree changed by fold" + msgstr "" + +@@ -5109,27 +5119,27 @@ + msgid "%Jsize of variable '%D' is too large" + msgstr "%s: ôï áñ÷åßï åßíáé ðïëý ìåãÜëï" + +-#: function.c:3742 ++#: function.c:3752 + msgid "impossible constraint in `asm'" + msgstr "" + +-#: function.c:5733 ++#: function.c:5743 + msgid "%J'%D' might be used uninitialized in this function" + msgstr "" + +-#: function.c:5740 ++#: function.c:5750 + msgid "%Jvariable '%D' might be clobbered by `longjmp' or `vfork'" + msgstr "" + +-#: function.c:5759 ++#: function.c:5769 + msgid "%Jargument '%D' might be clobbered by `longjmp' or `vfork'" + msgstr "" + +-#: function.c:6533 ++#: function.c:6543 + msgid "function returns an aggregate" + msgstr "" + +-#: function.c:6929 ++#: function.c:6939 + #, fuzzy + msgid "%Junused parameter '%D'" + msgstr "Üãíùóôïò ÷áñáêôÞñáò `%s'" +@@ -5159,74 +5169,74 @@ + msgid "Using built-in specs.\n" + msgstr "" + +-#: gcc.c:1755 ++#: gcc.c:1758 + #, fuzzy, c-format + msgid "" + "Setting spec %s to '%s'\n" + "\n" + msgstr "äçìéïõñãßá %s %s óôï %s" + +-#: gcc.c:1857 ++#: gcc.c:1860 + #, c-format + msgid "Reading specs from %s\n" + msgstr "" + +-#: gcc.c:1953 gcc.c:1972 ++#: gcc.c:1956 gcc.c:1975 + #, c-format + msgid "specs %%include syntax malformed after %ld characters" + msgstr "" + +-#: gcc.c:1980 ++#: gcc.c:1983 + #, fuzzy, c-format + msgid "could not find specs file %s\n" + msgstr "Äåí ìðüñåóá íá áíïßîù ôï áñ÷åßï %s" + +-#: gcc.c:1997 gcc.c:2005 gcc.c:2014 gcc.c:2023 ++#: gcc.c:2000 gcc.c:2008 gcc.c:2017 gcc.c:2026 + #, c-format + msgid "specs %%rename syntax malformed after %ld characters" + msgstr "" + +-#: gcc.c:2032 ++#: gcc.c:2035 + #, c-format + msgid "specs %s spec was not found to be renamed" + msgstr "" + +-#: gcc.c:2039 ++#: gcc.c:2042 + #, c-format + msgid "%s: attempt to rename spec '%s' to already defined spec '%s'" + msgstr "" + +-#: gcc.c:2044 ++#: gcc.c:2047 + #, fuzzy, c-format + msgid "rename spec %s to %s\n" + msgstr "äçìéïõñãßá %s %s óôï %s" + +-#: gcc.c:2046 ++#: gcc.c:2049 + #, c-format + msgid "" + "spec is '%s'\n" + "\n" + msgstr "" + +-#: gcc.c:2059 ++#: gcc.c:2062 + #, fuzzy, c-format + msgid "specs unknown %% command after %ld characters" + msgstr "ëßóôá ìå üëá ôá ãíùóôÜ óýíïëá ÷áñáêôÞñùí" + +-#: gcc.c:2070 gcc.c:2083 ++#: gcc.c:2073 gcc.c:2086 + #, c-format + msgid "specs file malformed after %ld characters" + msgstr "" + +-#: gcc.c:2136 ++#: gcc.c:2139 + msgid "spec file has no spec for linking" + msgstr "" + +-#: gcc.c:2641 ++#: gcc.c:2644 + msgid "-pipe not supported" + msgstr "ôï -pipe äåí õðïóôçñßæåôáé" + +-#: gcc.c:2703 ++#: gcc.c:2706 + msgid "" + "\n" + "Go ahead? (y or n) " +@@ -5234,7 +5244,7 @@ + "\n" + "Íá óõíå÷ßóåôå; (y Þ n) " + +-#: gcc.c:2829 ++#: gcc.c:2832 + #, c-format + msgid "" + "Internal error: %s (program %s)\n" +@@ -5242,69 +5252,69 @@ + "See %s for instructions." + msgstr "" + +-#: gcc.c:2847 ++#: gcc.c:2850 + #, c-format + msgid "# %s %.2f %.2f\n" + msgstr "# %s %.2f %.2f\n" + +-#: gcc.c:2980 ++#: gcc.c:2983 + #, c-format + msgid "Usage: %s [options] file...\n" + msgstr "÷ñÞóç: %s [åðéëïãÝò] áñ÷åßï...\n" + +-#: gcc.c:2981 ++#: gcc.c:2984 + msgid "Options:\n" + msgstr "ÅðéëïãÝò:\n" + +-#: gcc.c:2983 ++#: gcc.c:2986 + msgid " -pass-exit-codes Exit with highest error code from a phase\n" + msgstr " -pass-exit-codes ¸îïäïò ìå ôï õøçëüôåñï êùäéêü óöÜëìáôïò ôçò öÜóçò\n" + +-#: gcc.c:2984 ++#: gcc.c:2987 + msgid " --help Display this information\n" + msgstr " --help ÅìöÜíéóç áõôþí ôùí ðëçñïöïñéþí\n" + +-#: gcc.c:2985 ++#: gcc.c:2988 + msgid " --target-help Display target specific command line options\n" + msgstr " --target-help ÅìöÜíéóç åðéëïãÝò ãñáììþí åíôïëÞò ó÷åôéêÝò ìå ôï óôü÷ï\n" + +-#: gcc.c:2987 ++#: gcc.c:2990 + msgid " (Use '-v --help' to display command line options of sub-processes)\n" + msgstr " (×ñÞóç '-v --help' ãéá ôçí åìöÜíéóç åðéëïãþí ãñáììÞò åíôïëÞò õðïäéåñãáóéþí)\n" + +-#: gcc.c:2988 ++#: gcc.c:2991 + msgid " -dumpspecs Display all of the built in spec strings\n" + msgstr " -dumpspecs ÅìöÜíéóç üëùí ôùí ðñïêáèïñéóìÝíùí áëöáñéèìçôéêþí ôùí ðñïóäéïñéóìþí\n" + +-#: gcc.c:2989 ++#: gcc.c:2992 + msgid " -dumpversion Display the version of the compiler\n" + msgstr " -dumpversion ÅìöÜíéóç ôçò Ýêäïóçò ôïõ ìåôáãëùôôéóôÞ\n" + +-#: gcc.c:2990 ++#: gcc.c:2993 + msgid " -dumpmachine Display the compiler's target processor\n" + msgstr " -dumpmachine ÅìöÜíéóç ôïõ åðåîåñãáóôÞ óôü÷ïõ ôïõ ìåôáãëùôôéóôÞ\n" + +-#: gcc.c:2991 ++#: gcc.c:2994 + msgid " -print-search-dirs Display the directories in the compiler's search path\n" + msgstr " -print-search-dirs ÅìöÜíéóç ôùí êáôáëüãùí óôéò äéáäñïìÝò áíáæÞôçóçò ôïõ ìåôáãëùôôéóôÞ\n" + +-#: gcc.c:2992 ++#: gcc.c:2995 + msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n" + msgstr " -print-libgcc-file-name ÅìöÜíéóç ôïõ ïíüìáôïò ôçò óõíïäåõôéêÞò âéâëéïèÞêçò ôïõ ìåôáãëùôôéóôÞ\n" + +-#: gcc.c:2993 ++#: gcc.c:2996 + msgid " -print-file-name= Display the full path to library \n" + msgstr " -print-file-name=<âéâëéïè> ÅìöÜíéóç ôçò ðëÞñçò äéáäñïìÞò óôç âéâëéïèÞêç <âéâëéïè>\n" + +-#: gcc.c:2994 ++#: gcc.c:2997 + msgid " -print-prog-name= Display the full path to compiler component \n" + msgstr " -print-prog-name=<ðñüãñ> ÅìöÜíéóç ôçò ðëÞñçò äéáäñïìÞò óôï óõóôáôéêü ìåôáãëùôôéóôÞ <ðñüãñ>\n" + +-#: gcc.c:2995 ++#: gcc.c:2998 + msgid " -print-multi-directory Display the root directory for versions of libgcc\n" + msgstr " -print-multi-directory ÅìöÜíéóç ôïõ ñéæéêïý êáôáëüãïõ ãéá åêäüóåéò ôçò libgcc\n" + +-#: gcc.c:2996 ++#: gcc.c:2999 + msgid "" + " -print-multi-lib Display the mapping between command line options and\n" + " multiple library search directories\n" +@@ -5313,96 +5323,96 @@ + " åíôïëÞò êáé êáôáëüãùí áíáæÞôçóçò ðïëëáðëþí\n" + " âéâëéïèçêþí\n" + +-#: gcc.c:2999 ++#: gcc.c:3002 + #, fuzzy + msgid " -print-multi-os-directory Display the relative path to OS libraries\n" + msgstr " -print-multi-directory ÅìöÜíéóç ôïõ ñéæéêïý êáôáëüãïõ ãéá åêäüóåéò ôçò libgcc\n" + +-#: gcc.c:3000 ++#: gcc.c:3003 + msgid " -Wa, Pass comma-separated on to the assembler\n" + msgstr " -Wa,<åðéëïãÝò> ÐÝñáóìá <åðéëïãþí> äéá÷ùñéóìÝíùí ìå êüììá óôï óõíáñìïëïãçôÞ\n" + +-#: gcc.c:3001 ++#: gcc.c:3004 + msgid " -Wp, Pass comma-separated on to the preprocessor\n" + msgstr " -Wp,<åðéëïãÝò> ÐÝñáóìá <åðéëïãþí> äéá÷ùñéóìÝíùí ìå êüììá óôïí ðñï-åðåîåñãáóôÞ\n" + +-#: gcc.c:3002 ++#: gcc.c:3005 + msgid " -Wl, Pass comma-separated on to the linker\n" + msgstr " -Wl,<åðéëïãÝò> ÐÝñáóìá <åðéëïãþí> äéá÷ùñéóìÝíùí ìå êüììá óôï óõíäÝôç\n" + +-#: gcc.c:3003 ++#: gcc.c:3006 + #, fuzzy + msgid " -Xassembler Pass on to the assembler\n" + msgstr " -Xlinker <üñéóìá> ÐÝñáóìá <ïñßóìáôïò> óôï óõíäÝôç\n" + +-#: gcc.c:3004 ++#: gcc.c:3007 + #, fuzzy + msgid " -Xpreprocessor Pass on to the preprocessor\n" + msgstr " -Xlinker <üñéóìá> ÐÝñáóìá <ïñßóìáôïò> óôï óõíäÝôç\n" + +-#: gcc.c:3005 ++#: gcc.c:3008 + msgid " -Xlinker Pass on to the linker\n" + msgstr " -Xlinker <üñéóìá> ÐÝñáóìá <ïñßóìáôïò> óôï óõíäÝôç\n" + +-#: gcc.c:3006 ++#: gcc.c:3009 + msgid " -save-temps Do not delete intermediate files\n" + msgstr " -save-temps Íá ìç äéáãñáöïýí ôá åíäéÜìåóá áñ÷åßá\n" + +-#: gcc.c:3007 ++#: gcc.c:3010 + msgid " -pipe Use pipes rather than intermediate files\n" + msgstr " -pipe ×ñÞóç óùëçíþóåùí áíôß åíäéÜìåóùí áñ÷åßùí\n" + +-#: gcc.c:3008 ++#: gcc.c:3011 + msgid " -time Time the execution of each subprocess\n" + msgstr " -time ÌÝôñçóç ôïõ ÷ñüíïõ åêôÝëåóçò êÜèå õðïäéåñãáóßáò\n" + +-#: gcc.c:3009 ++#: gcc.c:3012 + msgid " -specs= Override built-in specs with the contents of \n" + msgstr " -specs=<áñ÷åßï> ×ñÞóç ôïõ ðåñéå÷ïìÝíïõ ôïõ <áñ÷åßïõ> áíôß ôùí ðñïêáèïñéóìÝíùí ðñïóäéïñéóìþí\n" + +-#: gcc.c:3010 ++#: gcc.c:3013 + msgid " -std= Assume that the input sources are for \n" + msgstr "" + " -std=<ðñüôõðï> Èåþñçóå üôé ïé ðçãÝò êþäéêá åßíáé ãéá ôï <ðñüôõðï>\n" + "\n" + +-#: gcc.c:3011 ++#: gcc.c:3014 + msgid " -B Add to the compiler's search paths\n" + msgstr " -B <êáôÜëïãïò> ÐñïóèÞêç ôïõ <êáôáëüãïõ> óôéò äéáäñïìÝò áíáæÞôçóçò ôïõ ìåôáãëùôôéóôÞ\n" + +-#: gcc.c:3012 ++#: gcc.c:3015 + msgid " -b Run gcc for target , if installed\n" + msgstr " -b <ìç÷áíÞ> ÅêôÝëåóç ôïõ gcc ãéá ôï óôü÷ï <ìç÷áíÞ>, áí åßíáé åãêáôåóôçìÝíïò\n" + +-#: gcc.c:3013 ++#: gcc.c:3016 + msgid " -V Run gcc version number , if installed\n" + msgstr " -V <Ýêäïóç> ÅêôÝëåóç ôçò Ýêäïóçò <Ýêäïóç> ôïõ gcc, áí åßíáé åãêáôåóôçìÝíç\n" + +-#: gcc.c:3014 ++#: gcc.c:3017 + msgid " -v Display the programs invoked by the compiler\n" + msgstr " -v ÅìöÜíéóç ôùí ðñïãñáììÜôùí ðïõ êáëåß ï ìåôáãëùôôéóôÞò\n" + +-#: gcc.c:3015 ++#: gcc.c:3018 + msgid " -### Like -v but options quoted and commands not executed\n" + msgstr "" + +-#: gcc.c:3016 ++#: gcc.c:3019 + msgid " -E Preprocess only; do not compile, assemble or link\n" + msgstr " -E Ðñïåðåîåñãáóßá ìüíï· ü÷é ìåôáãëþôôéóç, óõíáñìïëüãçóç Þ óýíäåóç\n" + +-#: gcc.c:3017 ++#: gcc.c:3020 + msgid " -S Compile only; do not assemble or link\n" + msgstr " -S Ìåôáãëþôôéóç ìüíï· ü÷é óõíáñìïëüãçóç Þóýíäåóç\n" + +-#: gcc.c:3018 ++#: gcc.c:3021 + msgid " -c Compile and assemble, but do not link\n" + msgstr " -c Ìåôáãëþôôéóç êáé óõíáñìïëüãçóç, ü÷éüìùò óýíäåóç\n" + +-#: gcc.c:3019 ++#: gcc.c:3022 + msgid " -o Place the output into \n" + msgstr " -o <áñ÷åßï> ÔïðïèÝôçóç ôçò åîüäïõ óôï <áñ÷åßï>\n" + +-#: gcc.c:3020 ++#: gcc.c:3023 + #, fuzzy + msgid "" + " -x Specify the language of the following input files\n" +@@ -5416,7 +5426,7 @@ + " óõìðåñéöïñÜ åýñåóçò ôçò ãëþóóáò âÜóåé ôçò åðÝêôáóçò\n" + " ôïõ áñ÷åßïõ\n" + +-#: gcc.c:3027 ++#: gcc.c:3030 + #, c-format + msgid "" + "\n" +@@ -5430,28 +5440,28 @@ + " åðéëïãÝò óå áõôÝò ôéò äéåñãáóßåò, ðñÝðåé íá ÷ñçóéìïðïéÞóåôå ôéò åðéëïãÝò\n" + " -W<ãñÜììá>.\n" + +-#: gcc.c:3148 ++#: gcc.c:3151 + #, fuzzy, c-format + msgid "`-%c' option must have argument" + msgstr "ðáñÜëçøç ïñßóìáôïò áñ÷åßïõ" + +-#: gcc.c:3170 ++#: gcc.c:3173 + #, c-format + msgid "couldn't run `%s': %s" + msgstr "" + + #. translate_options () has turned --version into -fversion. +-#: gcc.c:3356 ++#: gcc.c:3359 + #, c-format + msgid "%s (GCC) %s\n" + msgstr "%s (GCC) %s\n" + +-#: gcc.c:3358 gcov.c:424 f/g77spec.c:351 ++#: gcc.c:3361 gcov.c:424 f/g77spec.c:351 + msgid "(C)" + msgstr "" + + # src/main.c:850 +-#: gcc.c:3359 ++#: gcc.c:3362 + #, fuzzy + msgid "" + "This is free software; see the source for copying conditions. There is NO\n" +@@ -5462,75 +5472,75 @@ + "áíôéãñáöÞò. Äåí õðÜñ÷åé ÊÁÌÉÁ åããýçóç· ïýôå áêüìá ãéá ËÅÉÔÏÕÑÃÉÊÏÔÇÔÁ Þ \n" + "ÊÁÔÁËËÇËÏÔÇÔÁ ÃÉÁ ÅÍÁ ÓÕÃÊÅÊÑÉÌÅÍÏ ÓÊÏÐÏ.\n" + +-#: gcc.c:3460 ++#: gcc.c:3463 + #, fuzzy + msgid "argument to `-Xlinker' is missing" + msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá" + +-#: gcc.c:3468 ++#: gcc.c:3471 + #, fuzzy + msgid "argument to `-Xpreprocessor' is missing" + msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá" + +-#: gcc.c:3475 ++#: gcc.c:3478 + #, fuzzy + msgid "argument to `-Xassembler' is missing" + msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá" + +-#: gcc.c:3482 ++#: gcc.c:3485 + #, fuzzy + msgid "argument to `-l' is missing" + msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá" + +-#: gcc.c:3498 ++#: gcc.c:3501 + #, fuzzy + msgid "argument to `-specs' is missing" + msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá" + +-#: gcc.c:3512 ++#: gcc.c:3515 + #, fuzzy + msgid "argument to `-specs=' is missing" + msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá" + +-#: gcc.c:3549 ++#: gcc.c:3552 + #, c-format + msgid "`-%c' must come at the start of the command line" + msgstr "" + +-#: gcc.c:3558 ++#: gcc.c:3561 + #, fuzzy + msgid "argument to `-B' is missing" + msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá" + +-#: gcc.c:3735 ++#: gcc.c:3738 + msgid "warning: -pipe ignored because -save-temps specified" + msgstr "" + +-#: gcc.c:3739 ++#: gcc.c:3742 + msgid "warning: -pipe ignored because -time specified" + msgstr "" + +-#: gcc.c:3951 ++#: gcc.c:3954 + #, fuzzy + msgid "argument to `-x' is missing" + msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá" + +-#: gcc.c:3979 ++#: gcc.c:3982 + #, fuzzy, c-format + msgid "argument to `-%s' is missing" + msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá" + +-#: gcc.c:4040 ++#: gcc.c:4043 + #, c-format + msgid "warning: `-x %s' after last input file has no effect" + msgstr "" + +-#: gcc.c:4441 ++#: gcc.c:4444 + #, fuzzy + msgid "invalid specification! Bug in cc" + msgstr "Ìç Ýãêõñç ñýèìéóç èýñáò (port)" + +-#: gcc.c:4595 ++#: gcc.c:4598 + #, c-format + msgid "%s\n" + msgstr "" +@@ -5538,79 +5548,79 @@ + #. Catch the case where a spec string contains something like + #. '%{foo:%*}'. ie there is no * in the pattern on the left + #. hand side of the :. +-#: gcc.c:5099 ++#: gcc.c:5102 + #, c-format + msgid "spec failure: '%%*' has not been initialized by pattern match" + msgstr "" + +-#: gcc.c:5108 ++#: gcc.c:5111 + #, c-format + msgid "warning: use of obsolete %%[ operator in specs" + msgstr "" + +-#: gcc.c:5126 ++#: gcc.c:5129 + #, c-format + msgid "Processing spec %c%s%c, which is '%s'\n" + msgstr "" + +-#: gcc.c:5189 ++#: gcc.c:5192 + #, fuzzy, c-format + msgid "spec failure: unrecognized spec option '%c'" + msgstr "%s: ìç áíáãíùñßóéìç åðéëïãÞ `-%c'\n" + +-#: gcc.c:5268 ++#: gcc.c:5271 + #, fuzzy, c-format + msgid "unknown spec function `%s'" + msgstr "Óôç óõíÜñôçóç `%s':" + +-#: gcc.c:5287 ++#: gcc.c:5290 + #, fuzzy, c-format + msgid "error in args to spec function `%s'" + msgstr "ðÜñá ðïëëÜ ïñßóìáôá" + +-#: gcc.c:5335 ++#: gcc.c:5338 + msgid "malformed spec function name" + msgstr "" + + #. ) +-#: gcc.c:5338 ++#: gcc.c:5341 + #, fuzzy + msgid "no arguments for spec function" + msgstr "ðïëý ëßãá ïñßóìáôá" + +-#: gcc.c:5357 ++#: gcc.c:5360 + msgid "malformed spec function arguments" + msgstr "" + +-#: gcc.c:6083 ++#: gcc.c:6086 + msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC." + msgstr "" + +-#: gcc.c:6093 ++#: gcc.c:6096 + msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC." + msgstr "" + +-#: gcc.c:6186 ++#: gcc.c:6189 + #, c-format + msgid "unrecognized option `-%s'" + msgstr "ìç áíáãíùñßóçìç åðéëïãÞ `-%s'" + +-#: gcc.c:6192 ++#: gcc.c:6195 + #, c-format + msgid "install: %s%s\n" + msgstr "åãêáôÜóôáóç: %s%s\n" + +-#: gcc.c:6193 ++#: gcc.c:6196 + #, c-format + msgid "programs: %s\n" + msgstr "ðñïãñÜììáôá: %s\n" + +-#: gcc.c:6194 ++#: gcc.c:6197 + #, c-format + msgid "libraries: %s\n" + msgstr "âéâëéïèÞêåò: %s\n" + +-#: gcc.c:6251 ++#: gcc.c:6254 + msgid "" + "\n" + "For bug reporting instructions, please see:\n" +@@ -5618,51 +5628,51 @@ + "\n" + "Ãéá ïäçãßåò ãéá áíáöïñÝò óöáëìÜôùí. ðáñáêáëþ äåßôå:\n" + +-#: gcc.c:6267 ++#: gcc.c:6270 + #, c-format + msgid "Configured with: %s\n" + msgstr "¸÷åé ñõèìéóôåß ìå: %s\n" + +-#: gcc.c:6281 ++#: gcc.c:6284 + #, c-format + msgid "Thread model: %s\n" + msgstr "ÌïíôÝëï íçìÜôùí: %s\n" + +-#: gcc.c:6292 ++#: gcc.c:6295 + #, c-format + msgid "gcc version %s\n" + msgstr "Ýêäïóç gcc %s\n" + +-#: gcc.c:6294 ++#: gcc.c:6297 + #, c-format + msgid "gcc driver version %s executing gcc version %s\n" + msgstr "Ýêäïóç ïäçãïý gcc %s åêôåëåß ôçí Ýêäïóç gcc %s\n" + +-#: gcc.c:6302 ++#: gcc.c:6305 + msgid "no input files" + msgstr "äåí õðÜñ÷ïõí áñ÷åßá åéóüäïõ" + +-#: gcc.c:6324 gcc.c:6443 ++#: gcc.c:6327 gcc.c:6446 + #, c-format + msgid "%s: linker input file unused because linking not done" + msgstr "" + +-#: gcc.c:6327 ++#: gcc.c:6330 + #, fuzzy + msgid "cannot specify -o with -c or -S and multiple languages" + msgstr "äåí åßíáé äõíáôü íá ðáñáëçöèåß ï ÷ñÞóôçò êáé ç ïìÜäá" + +-#: gcc.c:6362 ++#: gcc.c:6365 + #, c-format + msgid "%s: %s compiler not installed on this system" + msgstr "%s: ï ìåôáãëùôôéóôÞò %s äåí Ý÷åé åãêáôáóôáèåß óôï óýóôçìá áõôü" + +-#: gcc.c:6483 ++#: gcc.c:6486 + #, c-format + msgid "language %s not recognized" + msgstr "" + +-#: gcc.c:6580 ++#: gcc.c:6583 + msgid "internal gcc abort" + msgstr "åóùôåñéêü óöÜëìá gcc" + +@@ -5962,22 +5972,22 @@ + msgid "GCSE disabled" + msgstr "" + +-#: gcse.c:6124 ++#: gcse.c:6125 + msgid "NULL pointer checks disabled" + msgstr "" + + #. Return if there's nothing to do, or it is too expensive. +-#: gcse.c:8010 ++#: gcse.c:8036 + #, fuzzy + msgid "jump bypassing disabled" + msgstr "Ç ëåéôïõñãßá NIS+ áðÝôõ÷å" + +-#: gcse.c:8071 ++#: gcse.c:8097 + #, c-format + msgid "%s: %d basic blocks and %d edges/basic block" + msgstr "" + +-#: gcse.c:8084 ++#: gcse.c:8110 + #, c-format + msgid "%s: %d basic blocks and %d registers" + msgstr "" +@@ -6028,7 +6038,7 @@ + msgid "%s cannot be used in asm here" + msgstr "Äåí ìðïñåß íá ôåèåß ç çìåñïìçíßá." + +-#: graph.c:403 toplev.c:1498 toplev.c:4432 f/com.c:14202 java/jcf-parse.c:883 ++#: graph.c:403 toplev.c:1498 toplev.c:4433 f/com.c:14202 java/jcf-parse.c:883 + #: java/jcf-parse.c:1029 java/lex.c:1828 objc/objc-act.c:503 + #, fuzzy, c-format + msgid "can't open %s: %m" +@@ -6109,7 +6119,7 @@ + msgid "function with target specific attribute(s) cannot be inlined" + msgstr "" + +-#: jump.c:1896 ++#: jump.c:1913 + msgid "%Hwill never be executed" + msgstr "" + +@@ -6599,7 +6609,7 @@ + msgid "can't use '%s' as a %s register" + msgstr "" + +-#: regclass.c:758 config/ia64/ia64.c:4660 config/ia64/ia64.c:4667 ++#: regclass.c:758 config/ia64/ia64.c:4666 config/ia64/ia64.c:4673 + #, fuzzy, c-format + msgid "unknown register name: %s" + msgstr "Üãíùóôïò ÷áñáêôÞñáò `%s'" +@@ -6644,16 +6654,16 @@ + msgid "impossible register constraint in `asm'" + msgstr "" + +-#: reload.c:3504 ++#: reload.c:3519 + msgid "`&' constraint used with no register class" + msgstr "" + +-#: reload.c:3672 ++#: reload.c:3687 + #, fuzzy + msgid "unable to generate reloads for:" + msgstr "Áäýíáôç ç äçìéïõñãßá äéåñãáóßáò óôïí åîõðçñåôçôÞ" + +-#: reload.c:3673 reload.c:3887 ++#: reload.c:3688 reload.c:3902 + msgid "inconsistent operand constraints in an `asm'" + msgstr "" + +@@ -7064,43 +7074,43 @@ + msgid "invalid register name `%s' for register variable" + msgstr "" + +-#: toplev.c:3546 ++#: toplev.c:3547 + msgid "branch target register load optimization is not intended to be run twice" + msgstr "" + +-#: toplev.c:3713 ++#: toplev.c:3714 + #, fuzzy + msgid "" + "\n" + "Target specific options:\n" + msgstr "äÞëùóç ðëÜôïõò" + +-#: toplev.c:3727 toplev.c:3746 ++#: toplev.c:3728 toplev.c:3747 + #, c-format + msgid " -m%-23s [undocumented]\n" + msgstr "" + +-#: toplev.c:3755 ++#: toplev.c:3756 + msgid "" + "\n" + "There are undocumented target specific options as well.\n" + msgstr "" + +-#: toplev.c:3757 ++#: toplev.c:3758 + msgid " They exist, but they are not documented.\n" + msgstr "" + +-#: toplev.c:3812 ++#: toplev.c:3813 + #, fuzzy, c-format + msgid "unrecognized gcc debugging option: %c" + msgstr "ìç áíáãíùñßóçìç åðéëïãÞ `-%c'" + +-#: toplev.c:3874 config/rs6000/rs6000.c:922 ++#: toplev.c:3875 config/rs6000/rs6000.c:940 config/rs6000/rs6000.c:951 + #, c-format + msgid "invalid option `%s'" + msgstr "ìç Ýãêõñç åðéëïãÞ `%s'" + +-#: toplev.c:3889 ++#: toplev.c:3890 + #, c-format + msgid "" + "%s%s%s version %s (%s)\n" +@@ -7108,104 +7118,104 @@ + "%s%s%s version %s (%s) compiled by CC.\n" + msgstr "" + +-#: toplev.c:3896 ++#: toplev.c:3897 + #, c-format + msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n" + msgstr "" + + # src/getopt1.c:132 + # src/getopt1.c:132 +-#: toplev.c:3948 ++#: toplev.c:3949 + #, fuzzy + msgid "options passed: " + msgstr "åðéëïãÞ %s" + + # src/getopt1.c:155 + # src/getopt1.c:155 +-#: toplev.c:3977 ++#: toplev.c:3978 + #, fuzzy + msgid "options enabled: " + msgstr "åðéëïãÞ á\n" + +-#: toplev.c:4035 java/jcf-write.c:3424 ++#: toplev.c:4036 java/jcf-write.c:3424 + #, fuzzy, c-format + msgid "can't open %s for writing: %m" + msgstr "%s: ÓöÜëìá åããñáöÞò " + +-#: toplev.c:4118 config/sh/sh.c:7019 ++#: toplev.c:4119 config/sh/sh.c:7020 + msgid "created and used with different settings of -fpic" + msgstr "" + +-#: toplev.c:4120 config/sh/sh.c:7021 ++#: toplev.c:4121 config/sh/sh.c:7022 + msgid "created and used with different settings of -fpie" + msgstr "" + +-#: toplev.c:4171 config/sh/sh.c:7071 ++#: toplev.c:4172 config/sh/sh.c:7072 + #, c-format + msgid "created and used with differing settings of `-m%s'" + msgstr "" + +-#: toplev.c:4174 config/sh/sh.c:7074 ++#: toplev.c:4175 config/sh/sh.c:7075 + msgid "out of memory" + msgstr "" + +-#: toplev.c:4355 ++#: toplev.c:4356 + #, fuzzy + msgid "instruction scheduling not supported on this target machine" + msgstr "óõìâïëéêïß óýíäåóìïé äåí õðïóôçñßæïíôáé óôï óýóôçìá áõôü" + +-#: toplev.c:4359 ++#: toplev.c:4360 + msgid "this target machine does not have delayed branches" + msgstr "" + +-#: toplev.c:4373 ++#: toplev.c:4374 + #, fuzzy, c-format + msgid "-f%sleading-underscore not supported on this target machine" + msgstr "óõìâïëéêïß óýíäåóìïé äåí õðïóôçñßæïíôáé óôï óýóôçìá áõôü" + +-#: toplev.c:4422 ++#: toplev.c:4423 + #, c-format + msgid "target system does not support the \"%s\" debug format" + msgstr "" + +-#: toplev.c:4439 ++#: toplev.c:4440 + #, fuzzy + msgid "-ffunction-sections not supported for this target" + msgstr "ôï --no-dereference (-h) äåí õðïóôçñßæåôáé óå áõôü ôï óýóôçìá" + +-#: toplev.c:4444 ++#: toplev.c:4445 + #, fuzzy + msgid "-fdata-sections not supported for this target" + msgstr "óõìâïëéêïß óýíäåóìïé äåí õðïóôçñßæïíôáé óôï óýóôçìá áõôü" + +-#: toplev.c:4451 ++#: toplev.c:4452 + msgid "-ffunction-sections disabled; it makes profiling impossible" + msgstr "" + +-#: toplev.c:4458 ++#: toplev.c:4459 + #, fuzzy + msgid "-fprefetch-loop-arrays not supported for this target" + msgstr "ôï --no-dereference (-h) äåí õðïóôçñßæåôáé óå áõôü ôï óýóôçìá" + +-#: toplev.c:4464 ++#: toplev.c:4465 + msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)" + msgstr "" + +-#: toplev.c:4473 ++#: toplev.c:4474 + #, fuzzy + msgid "-fprefetch-loop-arrays is not supported with -Os" + msgstr "ôï --no-dereference (-h) äåí õðïóôçñßæåôáé óå áõôü ôï óýóôçìá" + +-#: toplev.c:4479 ++#: toplev.c:4480 + msgid "-ffunction-sections may affect debugging on some targets" + msgstr "" + +-#: toplev.c:4581 ++#: toplev.c:4582 + #, fuzzy, c-format + msgid "error writing to %s: %m" + msgstr "óöÜëìá åããñáöÞò %s" + +-#: toplev.c:4583 java/jcf-parse.c:902 java/jcf-write.c:3431 ++#: toplev.c:4584 java/jcf-parse.c:902 java/jcf-write.c:3431 + #, fuzzy, c-format + msgid "error closing %s: %m" + msgstr "óöÜëìá áíÜãíùóçò %s" +@@ -7252,7 +7262,7 @@ + msgid "%Jfunction '%F' can never be inlined because it uses variable sized variables" + msgstr "" + +-#: tree-inline.c:1338 tree-inline.c:1345 ++#: tree-inline.c:1338 tree-inline.c:1346 + msgid "%Jinlining failed in call to '%F': %s" + msgstr "" + +@@ -7266,35 +7276,35 @@ + msgid "%Jsize of return value of '%D' is larger than %wd bytes" + msgstr "%s: ïé ôéìÝò ôïõ ðåäßïõ `%s' äåí ðñÝðåé íá åßíáé ìåãáëýôåñåò áðü %d" + +-#: tree.c:3801 ++#: tree.c:3800 + msgid "arrays of functions are not meaningful" + msgstr "" + +-#: tree.c:3856 ++#: tree.c:3855 + msgid "function return type cannot be function" + msgstr "" + +-#: tree.c:4685 ++#: tree.c:4684 + #, fuzzy + msgid "invalid initializer for bit string" + msgstr "Ç áëõóßäá ìïñöÞò äåí åßíáé Ýãêõñç: `%s'" + +-#: tree.c:4737 ++#: tree.c:4736 + #, c-format + msgid "tree check: expected %s, have %s in %s, at %s:%d" + msgstr "" + +-#: tree.c:4750 ++#: tree.c:4749 + #, c-format + msgid "tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d" + msgstr "" + +-#: tree.c:4763 ++#: tree.c:4762 + #, c-format + msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d" + msgstr "" + +-#: tree.c:4775 ++#: tree.c:4774 + #, c-format + msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d" + msgstr "" +@@ -7350,53 +7360,53 @@ + msgid "%Jrequested alignment for '%D' is greater than implemented alignment of %d" + msgstr "" + +-#: varasm.c:3789 ++#: varasm.c:3790 + msgid "initializer for integer value is too complicated" + msgstr "" + +-#: varasm.c:3794 ++#: varasm.c:3795 + msgid "initializer for floating value is not a floating constant" + msgstr "" + +-#: varasm.c:3860 ++#: varasm.c:3861 + #, fuzzy + msgid "unknown set constructor type" + msgstr "Äåí åßíáé äõíáôüí íá âñåèåß ï ôýðïò ôïõ åðåîåñãáóôÞ." + +-#: varasm.c:4079 ++#: varasm.c:4080 + #, fuzzy, c-format + msgid "invalid initial value for member `%s'" + msgstr "ìç Ýãêõñïò áñéèìüò ðåäßïõ: `%s'" + +-#: varasm.c:4266 varasm.c:4310 ++#: varasm.c:4267 varasm.c:4311 + #, fuzzy + msgid "%Jweak declaration of '%D' must precede definition" + msgstr "Ç ëåéôïõñãßá äåí õðïóôçñßæåôáé" + +-#: varasm.c:4274 ++#: varasm.c:4275 + #, fuzzy + msgid "%Jweak declaration of '%D' after first use results in unspecified behavior" + msgstr "Ç ëåéôïõñãßá äåí õðïóôçñßæåôáé" + +-#: varasm.c:4308 ++#: varasm.c:4309 + #, fuzzy + msgid "%Jweak declaration of '%D' must be public" + msgstr "Ç ëåéôïõñãßá äåí õðïóôçñßæåôáé" + +-#: varasm.c:4317 ++#: varasm.c:4318 + #, fuzzy + msgid "%Jweak declaration of '%D' not supported" + msgstr "Ç ëåéôïõñãßá äåí õðïóôçñßæåôáé" + +-#: varasm.c:4346 varasm.c:4436 ++#: varasm.c:4347 varasm.c:4437 + msgid "only weak aliases are supported in this configuration" + msgstr "" + +-#: varasm.c:4439 ++#: varasm.c:4440 + msgid "alias definitions not supported in this configuration; ignored" + msgstr "" + +-#: varasm.c:4468 ++#: varasm.c:4469 + #, fuzzy + msgid "visibility attribute not supported in this configuration; ignored" + msgstr "Ç ïéêïãÝíåéá äéåõèýíóåùí äåí õðïóôçñßæåôáé áðü ôçí ïéêïãÝíåéá ðñùôïêüëëïõ" +@@ -7626,7 +7636,7 @@ + msgid "junk at end of '#pragma unused'" + msgstr "" + +-#: config/darwin.c:1347 ++#: config/darwin.c:1312 + #, fuzzy + msgid "internal and protected visibility attributes not supportedin this configuration; ignored" + msgstr "Ç ïéêïãÝíåéá äéåõèýíóåùí äåí õðïóôçñßæåôáé áðü ôçí ïéêïãÝíåéá ðñùôïêüëëïõ" +@@ -7672,7 +7682,7 @@ + msgid "bad value `%s' for -mfp-trap-mode switch" + msgstr "" + +-#: config/alpha/alpha.c:324 config/rs6000/rs6000.c:1088 ++#: config/alpha/alpha.c:324 config/rs6000/rs6000.c:1117 + #, fuzzy, c-format + msgid "bad value `%s' for -mtls-size switch" + msgstr "ÁêáôÜëëçëç ôéìÞ óôï ai_flags" +@@ -7716,91 +7726,91 @@ + msgid "bad value `%s' for -mmemory-latency" + msgstr "" + +-#: config/alpha/alpha.c:5425 ++#: config/alpha/alpha.c:5436 + #, fuzzy, c-format + msgid "invalid %%H value" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/alpha/alpha.c:5446 ++#: config/alpha/alpha.c:5457 + #, fuzzy, c-format + msgid "invalid %%J value" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/alpha/alpha.c:5462 config/ia64/ia64.c:4263 ++#: config/alpha/alpha.c:5473 config/ia64/ia64.c:4269 + #, fuzzy, c-format + msgid "invalid %%r value" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/alpha/alpha.c:5472 config/rs6000/rs6000.c:9241 ++#: config/alpha/alpha.c:5483 config/rs6000/rs6000.c:9332 + #: config/xtensa/xtensa.c:2014 + #, fuzzy, c-format + msgid "invalid %%R value" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/alpha/alpha.c:5478 config/rs6000/rs6000.c:9160 ++#: config/alpha/alpha.c:5489 config/rs6000/rs6000.c:9251 + #: config/xtensa/xtensa.c:1981 + #, fuzzy, c-format + msgid "invalid %%N value" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/alpha/alpha.c:5486 config/rs6000/rs6000.c:9188 ++#: config/alpha/alpha.c:5497 config/rs6000/rs6000.c:9279 + #, fuzzy, c-format + msgid "invalid %%P value" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/alpha/alpha.c:5494 ++#: config/alpha/alpha.c:5505 + #, fuzzy, c-format + msgid "invalid %%h value" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/alpha/alpha.c:5502 config/xtensa/xtensa.c:2007 ++#: config/alpha/alpha.c:5513 config/xtensa/xtensa.c:2007 + #, fuzzy, c-format + msgid "invalid %%L value" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/alpha/alpha.c:5541 config/rs6000/rs6000.c:9142 ++#: config/alpha/alpha.c:5552 config/rs6000/rs6000.c:9233 + #, fuzzy, c-format + msgid "invalid %%m value" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/alpha/alpha.c:5549 config/rs6000/rs6000.c:9150 ++#: config/alpha/alpha.c:5560 config/rs6000/rs6000.c:9241 + #, fuzzy, c-format + msgid "invalid %%M value" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/alpha/alpha.c:5593 ++#: config/alpha/alpha.c:5604 + #, fuzzy, c-format + msgid "invalid %%U value" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/alpha/alpha.c:5605 config/alpha/alpha.c:5619 +-#: config/rs6000/rs6000.c:9249 ++#: config/alpha/alpha.c:5616 config/alpha/alpha.c:5630 ++#: config/rs6000/rs6000.c:9340 + #, fuzzy, c-format + msgid "invalid %%s value" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/alpha/alpha.c:5642 ++#: config/alpha/alpha.c:5653 + #, fuzzy, c-format + msgid "invalid %%C value" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/alpha/alpha.c:5679 config/rs6000/rs6000.c:8979 +-#: config/rs6000/rs6000.c:8999 ++#: config/alpha/alpha.c:5690 config/rs6000/rs6000.c:9070 ++#: config/rs6000/rs6000.c:9090 + #, fuzzy, c-format + msgid "invalid %%E value" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/alpha/alpha.c:5704 config/alpha/alpha.c:5752 ++#: config/alpha/alpha.c:5715 config/alpha/alpha.c:5763 + #, fuzzy + msgid "unknown relocation unspec" + msgstr "Äåí åßíáé äõíáôüí íá âñåèåß ï ôýðïò ôïõ åðåîåñãáóôÞ." + +-#: config/alpha/alpha.c:5713 config/rs6000/rs6000.c:9562 ++#: config/alpha/alpha.c:5724 config/rs6000/rs6000.c:9653 + #, fuzzy, c-format + msgid "invalid %%xn code" + msgstr "ìç Ýãêõñï äéêáßùìá" + +-#: config/alpha/alpha.c:6657 config/alpha/alpha.c:6660 config/s390/s390.c:6575 ++#: config/alpha/alpha.c:6668 config/alpha/alpha.c:6671 config/s390/s390.c:6575 + #: config/s390/s390.c:6578 + msgid "bad builtin fcode" + msgstr "" +@@ -7938,7 +7948,7 @@ + msgid "Tune expected memory latency" + msgstr "" + +-#: config/alpha/alpha.h:376 config/ia64/ia64.h:267 config/rs6000/sysv4.h:90 ++#: config/alpha/alpha.h:376 config/ia64/ia64.h:272 config/rs6000/sysv4.h:90 + msgid "Specify bit size of immediate TLS offsets" + msgstr "" + +@@ -7957,17 +7967,17 @@ + msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\"" + msgstr "" + +-#: config/arc/arc.c:1714 config/m32r/m32r.c:2352 ++#: config/arc/arc.c:1714 config/m32r/m32r.c:2349 + #, fuzzy, c-format + msgid "invalid operand to %%R code" + msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'" + +-#: config/arc/arc.c:1746 config/m32r/m32r.c:2375 ++#: config/arc/arc.c:1746 config/m32r/m32r.c:2372 + #, fuzzy, c-format + msgid "invalid operand to %%H/%%L code" + msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'" + +-#: config/arc/arc.c:1769 config/m32r/m32r.c:2446 ++#: config/arc/arc.c:1769 config/m32r/m32r.c:2443 + #, fuzzy, c-format + msgid "invalid operand to %%U code" + msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'" +@@ -7978,7 +7988,7 @@ + msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'" + + #. Unknown flag. +-#: config/arc/arc.c:1787 config/m32r/m32r.c:2473 config/sparc/sparc.c:7010 ++#: config/arc/arc.c:1787 config/m32r/m32r.c:2470 config/sparc/sparc.c:7152 + #, fuzzy + msgid "invalid operand output code" + msgstr "Ìç Ýãêõñïò êþäéêáò áßôçóçò" +@@ -7988,7 +7998,7 @@ + msgid "switch -mcpu=%s conflicts with -march= switch" + msgstr "" + +-#: config/arm/arm.c:530 config/rs6000/rs6000.c:767 config/sparc/sparc.c:424 ++#: config/arm/arm.c:530 config/rs6000/rs6000.c:785 config/sparc/sparc.c:426 + #, c-format + msgid "bad value (%s) for %s switch" + msgstr "" +@@ -8071,13 +8081,13 @@ + msgid "unable to use '%s' for PIC register" + msgstr "" + +-#: config/arm/arm.c:2249 config/arm/arm.c:2267 config/avr/avr.c:4558 +-#: config/c4x/c4x.c:4447 config/h8300/h8300.c:4260 config/i386/i386.c:1592 +-#: config/i386/i386.c:1638 config/ip2k/ip2k.c:3169 ++#: config/arm/arm.c:2249 config/arm/arm.c:2267 config/avr/avr.c:4523 ++#: config/c4x/c4x.c:4447 config/h8300/h8300.c:4260 config/i386/i386.c:1598 ++#: config/i386/i386.c:1644 config/ip2k/ip2k.c:3169 + #: config/m68hc11/m68hc11.c:1311 config/m68k/m68k.c:345 + #: config/mcore/mcore.c:3375 config/ns32k/ns32k.c:1064 +-#: config/rs6000/rs6000.c:14866 config/sh/sh.c:6873 config/sh/sh.c:6894 +-#: config/sh/sh.c:6929 config/stormy16/stormy16.c:2073 config/v850/v850.c:2173 ++#: config/rs6000/rs6000.c:15070 config/sh/sh.c:6874 config/sh/sh.c:6895 ++#: config/sh/sh.c:6930 config/stormy16/stormy16.c:2073 config/v850/v850.c:2173 + #, c-format + msgid "`%s' attribute only applies to functions" + msgstr "" +@@ -8093,7 +8103,7 @@ + msgstr "ç ôéìÞ ãéá ôï %s ðñÝðåé íá åßíáé áêÝñáéïò" + + #. @@@ better error message +-#: config/arm/arm.c:11284 config/i386/i386.c:14317 config/i386/i386.c:14351 ++#: config/arm/arm.c:11284 config/i386/i386.c:14318 config/i386/i386.c:14352 + #, fuzzy + msgid "mask must be an immediate" + msgstr "ç ôéìÞ ãéá ôï %s ðñÝðåé íá åßíáé áêÝñáéïò" +@@ -8230,58 +8240,58 @@ + msgid "Ignore dllimport attribute for functions" + msgstr "" + +-#: config/avr/avr.c:514 ++#: config/avr/avr.c:511 + #, c-format + msgid "large frame pointer change (%d) with -mtiny-stack" + msgstr "" + +-#: config/avr/avr.c:1101 ++#: config/avr/avr.c:1098 + msgid "bad address, not (reg+disp):" + msgstr "" + +-#: config/avr/avr.c:1109 ++#: config/avr/avr.c:1106 + msgid "internal compiler error. Bad address:" + msgstr "" + +-#: config/avr/avr.c:1122 ++#: config/avr/avr.c:1119 + msgid "internal compiler error. Unknown mode:" + msgstr "" + +-#: config/avr/avr.c:1744 config/avr/avr.c:2405 ++#: config/avr/avr.c:1741 config/avr/avr.c:2402 + #, fuzzy + msgid "invalid insn:" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/avr/avr.c:1778 config/avr/avr.c:1861 config/avr/avr.c:1910 +-#: config/avr/avr.c:1919 config/avr/avr.c:2014 config/avr/avr.c:2183 +-#: config/avr/avr.c:2439 config/avr/avr.c:2547 ++#: config/avr/avr.c:1775 config/avr/avr.c:1858 config/avr/avr.c:1907 ++#: config/avr/avr.c:1916 config/avr/avr.c:2011 config/avr/avr.c:2180 ++#: config/avr/avr.c:2436 config/avr/avr.c:2544 + #, fuzzy + msgid "incorrect insn:" + msgstr "ëÜèïò óõíèçìáôéêü" + +-#: config/avr/avr.c:1938 config/avr/avr.c:2099 config/avr/avr.c:2254 +-#: config/avr/avr.c:2591 ++#: config/avr/avr.c:1935 config/avr/avr.c:2096 config/avr/avr.c:2251 ++#: config/avr/avr.c:2588 + #, fuzzy + msgid "unknown move insn:" + msgstr "Üãíùóôï óåô `%s'" + +-#: config/avr/avr.c:2814 ++#: config/avr/avr.c:2811 + msgid "bad shift insn:" + msgstr "" + +-#: config/avr/avr.c:2927 config/avr/avr.c:3348 config/avr/avr.c:3719 ++#: config/avr/avr.c:2924 config/avr/avr.c:3345 config/avr/avr.c:3716 + msgid "internal compiler error. Incorrect shift:" + msgstr "" + +-#: config/avr/avr.c:4532 config/ip2k/ip2k.c:3144 ++#: config/avr/avr.c:4497 config/ip2k/ip2k.c:3144 + msgid "only initialized variables can be placed into program memory area" + msgstr "" + +-#: config/avr/avr.c:4626 ++#: config/avr/avr.c:4591 + msgid "only uninitialized variables can be placed in the .noinit section" + msgstr "" + +-#: config/avr/avr.c:4640 ++#: config/avr/avr.c:4605 + #, fuzzy, c-format + msgid "MCU `%s' supported for assembler only" + msgstr "áñ÷åßá fifo äåí õðïóôçñßæïíôáé" +@@ -9510,7 +9520,7 @@ + msgid "code model %s not supported in PIC mode" + msgstr "" + +-#: config/i386/i386.c:1189 config/sparc/sparc.c:387 ++#: config/i386/i386.c:1189 config/sparc/sparc.c:389 + #, c-format + msgid "bad value (%s) for -mcmodel= switch" + msgstr "" +@@ -9544,143 +9554,143 @@ + msgid "bad value (%s) for -march= switch" + msgstr "" + +-#: config/i386/i386.c:1260 ++#: config/i386/i386.c:1266 + #, c-format + msgid "bad value (%s) for -mtune= switch" + msgstr "" + +-#: config/i386/i386.c:1277 ++#: config/i386/i386.c:1283 + #, c-format + msgid "-mregparm=%d is not between 0 and %d" + msgstr "" + +-#: config/i386/i386.c:1290 ++#: config/i386/i386.c:1296 + msgid "-malign-loops is obsolete, use -falign-loops" + msgstr "" + +-#: config/i386/i386.c:1295 config/i386/i386.c:1308 config/i386/i386.c:1321 ++#: config/i386/i386.c:1301 config/i386/i386.c:1314 config/i386/i386.c:1327 + #, c-format + msgid "-malign-loops=%d is not between 0 and %d" + msgstr "" + +-#: config/i386/i386.c:1303 ++#: config/i386/i386.c:1309 + msgid "-malign-jumps is obsolete, use -falign-jumps" + msgstr "" + +-#: config/i386/i386.c:1316 ++#: config/i386/i386.c:1322 + msgid "-malign-functions is obsolete, use -falign-functions" + msgstr "" + +-#: config/i386/i386.c:1354 ++#: config/i386/i386.c:1360 + #, c-format + msgid "-mpreferred-stack-boundary=%d is not between %d and 12" + msgstr "" + +-#: config/i386/i386.c:1366 ++#: config/i386/i386.c:1372 + #, c-format + msgid "-mbranch-cost=%d is not between 0 and 5" + msgstr "" + +-#: config/i386/i386.c:1378 ++#: config/i386/i386.c:1384 + #, fuzzy, c-format + msgid "bad value (%s) for -mtls-dialect= switch" + msgstr "ÁêáôÜëëçëç ôéìÞ óôï ai_flags" + +-#: config/i386/i386.c:1407 ++#: config/i386/i386.c:1413 + msgid "-malign-double makes no sense in the 64bit mode" + msgstr "" + +-#: config/i386/i386.c:1409 ++#: config/i386/i386.c:1415 + msgid "-mrtd calling convention not supported in the 64bit mode" + msgstr "" + +-#: config/i386/i386.c:1431 config/i386/i386.c:1442 ++#: config/i386/i386.c:1437 config/i386/i386.c:1448 + msgid "SSE instruction set disabled, using 387 arithmetics" + msgstr "" + +-#: config/i386/i386.c:1447 ++#: config/i386/i386.c:1453 + msgid "387 instruction set disabled, using SSE arithmetics" + msgstr "" + +-#: config/i386/i386.c:1454 ++#: config/i386/i386.c:1460 + #, c-format + msgid "bad value (%s) for -mfpmath= switch" + msgstr "" + +-#: config/i386/i386.c:1602 config/i386/i386.c:1613 ++#: config/i386/i386.c:1608 config/i386/i386.c:1619 + msgid "fastcall and stdcall attributes are not compatible" + msgstr "" + +-#: config/i386/i386.c:1606 config/i386/i386.c:1662 ++#: config/i386/i386.c:1612 config/i386/i386.c:1668 + msgid "fastcall and regparm attributes are not compatible" + msgstr "" + +-#: config/i386/i386.c:1649 ++#: config/i386/i386.c:1655 + #, c-format + msgid "`%s' attribute requires an integer constant argument" + msgstr "" + +-#: config/i386/i386.c:1655 ++#: config/i386/i386.c:1661 + #, fuzzy, c-format + msgid "argument to `%s' attribute larger than %d" + msgstr "%s: ïé ôéìÝò ôïõ ðåäßïõ `%s' äåí ðñÝðåé íá åßíáé ìåãáëýôåñåò áðü %d" + +-#: config/i386/i386.c:2621 ++#: config/i386/i386.c:2627 + msgid "SSE vector argument without SSE enabled changes the ABI" + msgstr "" + +-#: config/i386/i386.c:2637 ++#: config/i386/i386.c:2643 + msgid "MMX vector argument without MMX enabled changes the ABI" + msgstr "" + +-#: config/i386/i386.c:2865 ++#: config/i386/i386.c:2871 + msgid "SSE vector return without SSE enabled changes the ABI" + msgstr "" + +-#: config/i386/i386.c:6840 ++#: config/i386/i386.c:6841 + #, fuzzy + msgid "invalid UNSPEC as operand" + msgstr "ìç Ýãêõñç ìåôáôüðéóç UTC" + +-#: config/i386/i386.c:7098 ++#: config/i386/i386.c:7099 + msgid "extended registers have no high halves" + msgstr "" + +-#: config/i386/i386.c:7113 ++#: config/i386/i386.c:7114 + msgid "unsupported operand size for extended register" + msgstr "" + +-#: config/i386/i386.c:7428 ++#: config/i386/i386.c:7429 + msgid "operand is neither a constant nor a condition code, invalid operand code 'c'" + msgstr "" + +-#: config/i386/i386.c:7474 ++#: config/i386/i386.c:7475 + #, fuzzy, c-format + msgid "invalid operand code `%c'" + msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'" + +-#: config/i386/i386.c:7517 ++#: config/i386/i386.c:7518 + #, fuzzy + msgid "invalid constraints for operand" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + + # src/grep.c:1133 +-#: config/i386/i386.c:12031 ++#: config/i386/i386.c:12032 + #, fuzzy + msgid "unknown insn mode" + msgstr "Üãíùóôç ìÝèïäïò êáôáëüãùí" + +-#: config/i386/i386.c:14119 config/i386/i386.c:14155 ++#: config/i386/i386.c:14120 config/i386/i386.c:14156 + #, fuzzy, c-format + msgid "selector must be an integer constant in the range 0..%i" + msgstr "ç ôéìÞ ãéá ôï %s ðñÝðåé íá åßíáé áêÝñáéïò" + +-#: config/i386/i386.c:14383 ++#: config/i386/i386.c:14384 + #, fuzzy + msgid "shift must be an immediate" + msgstr "ç ôéìÞ ãéá ôï %s ðñÝðåé íá åßíáé áêÝñáéïò" + +-#: config/i386/i386.c:15406 ++#: config/i386/i386.c:15407 + #, fuzzy, c-format + msgid "`%s' incompatible attribute ignored" + msgstr "ôï `%s' åßíáé ðñüãïíïò ôïõ `%s'" +@@ -9971,7 +9981,7 @@ + #. variable, type `char *', is set to the variable part of the given + #. option if the fixed part matches. The actual option name is made + #. by appending `-m' to the specified name. +-#: config/i386/i386.h:461 config/ia64/ia64.h:269 config/rs6000/rs6000.h:449 ++#: config/i386/i386.h:461 config/ia64/ia64.h:274 config/rs6000/rs6000.h:449 + #: config/s390/s390.h:146 config/sparc/sparc.h:656 + msgid "Schedule code for given CPU" + msgstr "" +@@ -10090,7 +10100,7 @@ + msgid "iC2.0 and iC3.0 are incompatible - using iC3.0" + msgstr "" + +-#: config/i960/i960.c:1456 config/m68k/m68k.c:600 config/rs6000/rs6000.c:11597 ++#: config/i960/i960.c:1456 config/m68k/m68k.c:600 config/rs6000/rs6000.c:11690 + #, fuzzy + msgid "stack limit expression is not supported" + msgstr "åéäéêÜ áñ÷åßá ìðëïê äåí õðïóôçñßæïíôáé" +@@ -10252,41 +10262,41 @@ + msgid "%Jaddress area attribute cannot be specified for functions" + msgstr "" + +-#: config/ia64/ia64.c:4308 ++#: config/ia64/ia64.c:4314 + msgid "ia64_print_operand: unknown code" + msgstr "" + +-#: config/ia64/ia64.c:4648 ++#: config/ia64/ia64.c:4654 + msgid "value of -mfixed-range must have form REG1-REG2" + msgstr "" + +-#: config/ia64/ia64.c:4675 ++#: config/ia64/ia64.c:4681 + #, c-format + msgid "%s-%s is an empty range" + msgstr "" + +-#: config/ia64/ia64.c:4723 ++#: config/ia64/ia64.c:4729 + msgid "cannot optimize floating point division for both latency and throughput" + msgstr "" + +-#: config/ia64/ia64.c:4729 ++#: config/ia64/ia64.c:4735 + msgid "cannot optimize integer division for both latency and throughput" + msgstr "" + +-#: config/ia64/ia64.c:4735 ++#: config/ia64/ia64.c:4741 + msgid "cannot optimize square root for both latency and throughput" + msgstr "" + +-#: config/ia64/ia64.c:4741 ++#: config/ia64/ia64.c:4747 + msgid "not yet implemented: latency-optimized inline square root" + msgstr "" + +-#: config/ia64/ia64.c:4753 ++#: config/ia64/ia64.c:4759 + #, fuzzy, c-format + msgid "bad value (%s) for -mtls-size= switch" + msgstr "ÁêáôÜëëçëç ôéìÞ óôï ai_flags" + +-#: config/ia64/ia64.c:4769 ++#: config/ia64/ia64.c:4775 + #, fuzzy, c-format + msgid "bad value (%s) for -tune= switch" + msgstr "ÁêáôÜëëçëç ôéìÞ óôï ai_flags" +@@ -10294,108 +10304,108 @@ + #. This macro defines names of command options to set and clear bits in + #. `target_flags'. Its definition is an initializer with a subgrouping for + #. each command option. +-#: config/ia64/ia64.h:172 ++#: config/ia64/ia64.h:177 + msgid "Generate big endian code" + msgstr "" + +-#: config/ia64/ia64.h:174 config/mcore/mcore.h:154 ++#: config/ia64/ia64.h:179 config/mcore/mcore.h:154 + msgid "Generate little endian code" + msgstr "" + +-#: config/ia64/ia64.h:176 ++#: config/ia64/ia64.h:181 + msgid "Generate code for GNU as" + msgstr "" + +-#: config/ia64/ia64.h:178 ++#: config/ia64/ia64.h:183 + msgid "Generate code for Intel as" + msgstr "" + +-#: config/ia64/ia64.h:180 ++#: config/ia64/ia64.h:185 + msgid "Generate code for GNU ld" + msgstr "" + +-#: config/ia64/ia64.h:182 ++#: config/ia64/ia64.h:187 + msgid "Generate code for Intel ld" + msgstr "" + +-#: config/ia64/ia64.h:184 ++#: config/ia64/ia64.h:189 + msgid "Generate code without GP reg" + msgstr "" + +-#: config/ia64/ia64.h:186 ++#: config/ia64/ia64.h:191 + msgid "Emit stop bits before and after volatile extended asms" + msgstr "" + +-#: config/ia64/ia64.h:188 ++#: config/ia64/ia64.h:193 + msgid "Don't emit stop bits before and after volatile extended asms" + msgstr "" + +-#: config/ia64/ia64.h:190 ++#: config/ia64/ia64.h:195 + msgid "Emit code for Itanium (TM) processor B step" + msgstr "" + +-#: config/ia64/ia64.h:192 ++#: config/ia64/ia64.h:197 + msgid "Use in/loc/out register names" + msgstr "" + +-#: config/ia64/ia64.h:194 ++#: config/ia64/ia64.h:199 + msgid "Disable use of sdata/scommon/sbss" + msgstr "" + +-#: config/ia64/ia64.h:196 ++#: config/ia64/ia64.h:201 + msgid "Enable use of sdata/scommon/sbss" + msgstr "" + +-#: config/ia64/ia64.h:198 ++#: config/ia64/ia64.h:203 + msgid "gp is constant (but save/restore gp on indirect calls)" + msgstr "" + +-#: config/ia64/ia64.h:200 ++#: config/ia64/ia64.h:205 + msgid "Generate self-relocatable code" + msgstr "" + +-#: config/ia64/ia64.h:202 ++#: config/ia64/ia64.h:207 + msgid "Generate inline floating point division, optimize for latency" + msgstr "" + +-#: config/ia64/ia64.h:204 ++#: config/ia64/ia64.h:209 + msgid "Generate inline floating point division, optimize for throughput" + msgstr "" + +-#: config/ia64/ia64.h:206 ++#: config/ia64/ia64.h:211 + msgid "Generate inline integer division, optimize for latency" + msgstr "" + +-#: config/ia64/ia64.h:208 ++#: config/ia64/ia64.h:213 + msgid "Generate inline integer division, optimize for throughput" + msgstr "" + +-#: config/ia64/ia64.h:210 ++#: config/ia64/ia64.h:215 + msgid "Generate inline square root, optimize for latency" + msgstr "" + +-#: config/ia64/ia64.h:212 ++#: config/ia64/ia64.h:217 + msgid "Generate inline square root, optimize for throughput" + msgstr "" + +-#: config/ia64/ia64.h:214 ++#: config/ia64/ia64.h:219 + msgid "Enable Dwarf 2 line debug info via GNU as" + msgstr "" + +-#: config/ia64/ia64.h:216 ++#: config/ia64/ia64.h:221 + msgid "Disable Dwarf 2 line debug info via GNU as" + msgstr "" + +-#: config/ia64/ia64.h:218 ++#: config/ia64/ia64.h:223 + msgid "Enable earlier placing stop bits for better scheduling" + msgstr "" + +-#: config/ia64/ia64.h:220 ++#: config/ia64/ia64.h:225 + #, fuzzy + msgid "Disable earlier placing stop bits" + msgstr "ÁêáôÜëëçëç åíôïëÞ" + +-#: config/ia64/ia64.h:265 ++#: config/ia64/ia64.h:270 + msgid "Specify range of registers to make fixed" + msgstr "" + +@@ -10433,7 +10443,7 @@ + msgid "PRINT_OPERAND: Unknown punctuation '%c'" + msgstr "" + +-#: config/iq2000/iq2000.c:3478 config/mips/mips.c:5464 ++#: config/iq2000/iq2000.c:3478 config/mips/mips.c:5463 + #: config/xtensa/xtensa.c:1950 + msgid "PRINT_OPERAND null pointer" + msgstr "" +@@ -10443,12 +10453,12 @@ + msgid "invalid %%P operand" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/iq2000/iq2000.c:3555 config/rs6000/rs6000.c:9178 ++#: config/iq2000/iq2000.c:3555 config/rs6000/rs6000.c:9269 + #, fuzzy, c-format + msgid "invalid %%p value" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/iq2000/iq2000.c:3619 config/mips/mips.c:5594 ++#: config/iq2000/iq2000.c:3619 config/mips/mips.c:5593 + #, c-format + msgid "invalid use of %%d, %%x, or %%X" + msgstr "" +@@ -10504,49 +10514,49 @@ + msgid "bad value (%s) for -flush-trap=n (0= found without a %%< in assembler pattern" + msgstr "" + +-#: config/mips/mips.c:5441 ++#: config/mips/mips.c:5440 + #, c-format + msgid "internal error: %%} found without a %%{ in assembler pattern" + msgstr "" + +-#: config/mips/mips.c:5455 ++#: config/mips/mips.c:5454 + #, c-format + msgid "PRINT_OPERAND: unknown punctuation '%c'" + msgstr "" + +-#: config/mips/mips.c:5484 ++#: config/mips/mips.c:5483 + #, c-format + msgid "PRINT_OPERAND, invalid insn for %%C" + msgstr "" + +-#: config/mips/mips.c:5501 ++#: config/mips/mips.c:5500 + #, c-format + msgid "PRINT_OPERAND, invalid insn for %%N" + msgstr "" + +-#: config/mips/mips.c:5510 ++#: config/mips/mips.c:5509 + #, c-format + msgid "PRINT_OPERAND, invalid insn for %%F" + msgstr "" + +-#: config/mips/mips.c:5519 ++#: config/mips/mips.c:5518 + #, c-format + msgid "PRINT_OPERAND, invalid insn for %%W" + msgstr "" + +-#: config/mips/mips.c:5625 ++#: config/mips/mips.c:5624 + msgid "PRINT_OPERAND, invalid operand for relocation" + msgstr "" + +-#: config/mips/mips.c:8310 ++#: config/mips/mips.c:8324 + #, fuzzy, c-format + msgid "can not handle inconsistent calls to `%s'" + msgstr "áäõíáìßá åêôÝëåóçò ioctl óôï `%s'" + +-#: config/mips/mips.c:9316 ++#: config/mips/mips.c:9333 + msgid "the cpu name must be lower case" + msgstr "" + +-#: config/mips/mips.c:9338 ++#: config/mips/mips.c:9355 + #, fuzzy, c-format + msgid "bad value (%s) for %s" + msgstr "ÁêáôÜëëçëç ôéìÞ óôï ai_flags" + +-#: config/mips/mips.c:9607 ++#: config/mips/mips.c:9624 + #, fuzzy, c-format + msgid "can't rewind temp file: %m" + msgstr "áäõíáìßá áíïßãìáôïò áñ÷åßïõ åîüäïõ" + +-#: config/mips/mips.c:9611 ++#: config/mips/mips.c:9628 + #, fuzzy, c-format + msgid "can't write to output file: %m" + msgstr "áäõíáìßá åããñáöÞò áñ÷åßùí åîüäïõ óôï `%s'" + +-#: config/mips/mips.c:9614 ++#: config/mips/mips.c:9631 + #, fuzzy, c-format + msgid "can't read from temp file: %m" + msgstr "áäõíáìßá áíïßãìáôïò áñ÷åßïõ åîüäïõ" + +-#: config/mips/mips.c:9617 ++#: config/mips/mips.c:9634 + #, fuzzy, c-format + msgid "can't close temp file: %m" + msgstr "áäõíáìßá áíïßãìáôïò áñ÷åßïõ åîüäïõ" +@@ -11350,7 +11360,7 @@ + + #. Output assembler code to FILE to increment profiler label # LABELNO + #. for profiling a function entry. +-#: config/mips/mips.h:2418 ++#: config/mips/mips.h:2430 + msgid "mips16 function profiling" + msgstr "" + +@@ -11921,174 +11931,183 @@ + msgid "junk at end of #pragma longcall" + msgstr "ìç ôåñìáôéæüìåío áëöáñéèìçôéêü" + +-#: config/rs6000/rs6000.c:791 ++#: config/rs6000/rs6000.c:809 + #, fuzzy + msgid "-mmultiple is not supported on little endian systems" + msgstr "óõìâïëéêïß óýíäåóìïé äåí õðïóôçñßæïíôáé óôï óýóôçìá áõôü" + +-#: config/rs6000/rs6000.c:798 ++#: config/rs6000/rs6000.c:816 + #, fuzzy + msgid "-mstring is not supported on little endian systems" + msgstr "ðñïåéäïðïßçóç: ôï --pid=PID äåí õðïóôçñßæåôáé óå áõôü ôï óýóôçìá" + +-#: config/rs6000/rs6000.c:812 ++#: config/rs6000/rs6000.c:830 + #, c-format + msgid "unknown -mdebug-%s switch" + msgstr "" + +-#: config/rs6000/rs6000.c:824 ++#: config/rs6000/rs6000.c:842 + #, c-format + msgid "unknown -mtraceback arg `%s'; expecting `full', `partial' or `none'" + msgstr "" + +-#: config/rs6000/rs6000.c:835 ++#: config/rs6000/rs6000.c:853 + #, c-format + msgid "Unknown switch -mlong-double-%s" + msgstr "" + +-#: config/rs6000/rs6000.c:876 ++#: config/rs6000/rs6000.c:894 + msgid "AltiVec and E500 instructions cannot coexist" + msgstr "" + +-#: config/rs6000/rs6000.c:1029 ++#: config/rs6000/rs6000.c:1058 + #, fuzzy, c-format + msgid "unknown -m%s= option specified: '%s'" + msgstr "Üãíùóôï óåô `%s'" + +-#: config/rs6000/rs6000.c:1050 ++#: config/rs6000/rs6000.c:1079 + #, c-format + msgid "not configured for ABI: '%s'" + msgstr "" + +-#: config/rs6000/rs6000.c:1056 ++#: config/rs6000/rs6000.c:1085 + #, fuzzy, c-format + msgid "unknown ABI specified: '%s'" + msgstr "Üãíùóôï óåô `%s'" + +-#: config/rs6000/rs6000.c:1070 ++#: config/rs6000/rs6000.c:1099 + #, fuzzy, c-format + msgid "unknown -malign-XXXXX option specified: '%s'" + msgstr "Üãíùóôï óåô `%s'" + +-#: config/rs6000/rs6000.c:3972 ++#: config/rs6000/rs6000.c:4001 + msgid "Cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them." + msgstr "" + +-#: config/rs6000/rs6000.c:4095 ++#: config/rs6000/rs6000.c:4124 + msgid "Cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them." + msgstr "" + +-#: config/rs6000/rs6000.c:5599 ++#: config/rs6000/rs6000.c:5604 + #, fuzzy + msgid "argument 1 must be a 5-bit signed literal" + msgstr "Ç ðáñÜìåôñïò óôï `%s' ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò" + +-#: config/rs6000/rs6000.c:5701 config/rs6000/rs6000.c:6357 ++#: config/rs6000/rs6000.c:5707 config/rs6000/rs6000.c:6374 + #, fuzzy + msgid "argument 2 must be a 5-bit unsigned literal" + msgstr "Ç ðáñÜìåôñïò óôï `%s' ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò" + +-#: config/rs6000/rs6000.c:5741 ++#: config/rs6000/rs6000.c:5747 + msgid "argument 1 of __builtin_altivec_predicate must be a constant" + msgstr "" + +-#: config/rs6000/rs6000.c:5795 ++#: config/rs6000/rs6000.c:5801 + msgid "argument 1 of __builtin_altivec_predicate is out of range" + msgstr "" + +-#: config/rs6000/rs6000.c:5956 ++#: config/rs6000/rs6000.c:5962 + #, fuzzy + msgid "argument 3 must be a 4-bit unsigned literal" + msgstr "Ç ðáñÜìåôñïò óôï `%s' ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò" + +-#: config/rs6000/rs6000.c:6126 ++#: config/rs6000/rs6000.c:6134 + #, fuzzy, c-format + msgid "argument to `%s' must be a 2-bit unsigned literal" + msgstr "Ç ðáñÜìåôñïò óôï `%s' ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò" + +-#: config/rs6000/rs6000.c:6239 ++#: config/rs6000/rs6000.c:6247 + #, fuzzy + msgid "argument to dss must be a 2-bit unsigned literal" + msgstr "Ç ðáñÜìåôñïò óôï `%s' ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò" + +-#: config/rs6000/rs6000.c:6477 ++#: config/rs6000/rs6000.c:6261 ++#, c-format ++msgid "invalid parameter combination for `%s' AltiVec intrinsic" ++msgstr "" ++ ++#: config/rs6000/rs6000.c:6494 + #, fuzzy + msgid "argument 1 of __builtin_spe_predicate must be a constant" + msgstr "Ç ðáñÜìåôñïò óôï <%s> ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò" + +-#: config/rs6000/rs6000.c:6550 ++#: config/rs6000/rs6000.c:6567 + msgid "argument 1 of __builtin_spe_predicate is out of range" + msgstr "" + +-#: config/rs6000/rs6000.c:9008 ++#: config/rs6000/rs6000.c:9099 + #, fuzzy, c-format + msgid "invalid %%f value" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/rs6000/rs6000.c:9017 ++#: config/rs6000/rs6000.c:9108 + #, fuzzy, c-format + msgid "invalid %%F value" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/rs6000/rs6000.c:9026 ++#: config/rs6000/rs6000.c:9117 + #, fuzzy, c-format + msgid "invalid %%G value" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/rs6000/rs6000.c:9061 ++#: config/rs6000/rs6000.c:9152 + #, fuzzy, c-format + msgid "invalid %%j code" + msgstr "ìç Ýãêõñï äéêáßùìá" + +-#: config/rs6000/rs6000.c:9071 ++#: config/rs6000/rs6000.c:9162 + #, fuzzy, c-format + msgid "invalid %%J code" + msgstr "ìç Ýãêõñï äéêáßùìá" + +-#: config/rs6000/rs6000.c:9081 ++#: config/rs6000/rs6000.c:9172 + #, fuzzy, c-format + msgid "invalid %%k value" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/rs6000/rs6000.c:9101 config/xtensa/xtensa.c:2000 ++#: config/rs6000/rs6000.c:9192 config/xtensa/xtensa.c:2000 + #, fuzzy, c-format + msgid "invalid %%K value" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/rs6000/rs6000.c:9168 ++#: config/rs6000/rs6000.c:9259 + #, fuzzy, c-format + msgid "invalid %%O value" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/rs6000/rs6000.c:9215 ++#: config/rs6000/rs6000.c:9306 + #, fuzzy, c-format + msgid "invalid %%q value" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/rs6000/rs6000.c:9259 ++#: config/rs6000/rs6000.c:9350 + #, fuzzy, c-format + msgid "invalid %%S value" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/rs6000/rs6000.c:9301 ++#: config/rs6000/rs6000.c:9392 + #, fuzzy, c-format + msgid "invalid %%T value" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/rs6000/rs6000.c:9311 ++#: config/rs6000/rs6000.c:9402 + #, fuzzy, c-format + msgid "invalid %%u value" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/rs6000/rs6000.c:9320 config/xtensa/xtensa.c:1970 ++#: config/rs6000/rs6000.c:9411 config/xtensa/xtensa.c:1970 + #, fuzzy, c-format + msgid "invalid %%v value" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/rs6000/rs6000.c:13815 ++#: config/rs6000/rs6000.c:13913 + msgid "no profiling of 64-bit code for this ABI" + msgstr "" + ++#: config/rs6000/rs6000.c:14986 ++msgid "use of 'long' in AltiVec types is deprecated; use 'int'" ++msgstr "" ++ + #: config/rs6000/aix.h:184 config/rs6000/beos.h:32 + #, fuzzy + msgid "Always pass floating-point arguments in memory" +@@ -12344,18 +12363,22 @@ + msgstr "ÁêáôÜëëçëç åíôïëÞ" + + #: config/rs6000/rs6000.h:468 ++msgid "Warn about deprecated 'vector long ...' AltiVec type usage" ++msgstr "" ++ ++#: config/rs6000/rs6000.h:471 + msgid "Determine which dependences between insns are considered costly" + msgstr "" + +-#: config/rs6000/rs6000.h:470 ++#: config/rs6000/rs6000.h:473 + msgid "Specify which post scheduling nop insertion scheme to apply" + msgstr "" + +-#: config/rs6000/rs6000.h:472 ++#: config/rs6000/rs6000.h:475 + msgid "Specify alignment of structure fields default/natural" + msgstr "" + +-#: config/rs6000/rs6000.h:474 ++#: config/rs6000/rs6000.h:477 + msgid "Specify scheduling priority for dispatch slot restricted insns" + msgstr "" + +@@ -12371,7 +12394,7 @@ + #. Number of bytes into the frame return addresses can be found. See + #. rs6000_stack_info in rs6000.c for more information on how the different + #. abi's store the return address. +-#: config/rs6000/rs6000.h:1923 ++#: config/rs6000/rs6000.h:1932 + msgid "RETURN_ADDRESS_OFFSET not supported" + msgstr "" + +@@ -12647,29 +12670,29 @@ + msgid "enable fused multiply/add instructions" + msgstr "ÁêáôÜëëçëç åíôïëÞ" + +-#: config/sh/sh.c:5977 ++#: config/sh/sh.c:5978 + #, fuzzy + msgid "__builtin_saveregs not supported by this subtarget" + msgstr "óõìâïëéêïß óýíäåóìïé äåí õðïóôçñßæïíôáé óôï óýóôçìá áõôü" + +-#: config/sh/sh.c:6879 ++#: config/sh/sh.c:6880 + msgid "attribute interrupt_handler is not compatible with -m5-compact" + msgstr "" + + #. The sp_switch attribute only has meaning for interrupt functions. +-#: config/sh/sh.c:6901 config/sh/sh.c:6936 ++#: config/sh/sh.c:6902 config/sh/sh.c:6937 + #, c-format + msgid "`%s' attribute only applies to interrupt functions" + msgstr "" + + #. The argument must be a constant string. +-#: config/sh/sh.c:6908 ++#: config/sh/sh.c:6909 + #, fuzzy, c-format + msgid "`%s' attribute argument not a string constant" + msgstr "ìç ôåñìáôéæìÝíï áëöáñéèìçôéêü óôáèåñÜò" + + #. The argument must be a constant integer. +-#: config/sh/sh.c:6943 ++#: config/sh/sh.c:6944 + #, c-format + msgid "`%s' attribute argument not an integer constant" + msgstr "" +@@ -12682,70 +12705,70 @@ + msgid "Profiling is not supported on this target." + msgstr "óõìâïëéêïß óýíäåóìïé äåí õðïóôçñßæïíôáé óôï óýóôçìá áõôü" + +-#: config/sparc/sparc.c:360 ++#: config/sparc/sparc.c:362 + #, fuzzy, c-format + msgid "%s is not supported by this configuration" + msgstr "Ç ïéêïãÝíåéá äéåõèýíóåùí äåí õðïóôçñßæåôáé áðü ôçí ïéêïãÝíåéá ðñùôïêüëëïõ" + +-#: config/sparc/sparc.c:367 ++#: config/sparc/sparc.c:369 + msgid "-mlong-double-64 not allowed with -m64" + msgstr "" + +-#: config/sparc/sparc.c:392 ++#: config/sparc/sparc.c:394 + #, fuzzy + msgid "-mcmodel= is not supported on 32 bit systems" + msgstr "óõìâïëéêïß óýíäåóìïé äåí õðïóôçñßæïíôáé óôï óýóôçìá áõôü" + +-#: config/sparc/sparc.c:6818 config/sparc/sparc.c:6824 ++#: config/sparc/sparc.c:6960 config/sparc/sparc.c:6966 + #, fuzzy, c-format + msgid "invalid %%Y operand" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/sparc/sparc.c:6894 ++#: config/sparc/sparc.c:7036 + #, fuzzy, c-format + msgid "invalid %%A operand" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/sparc/sparc.c:6904 ++#: config/sparc/sparc.c:7046 + #, fuzzy, c-format + msgid "invalid %%B operand" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/sparc/sparc.c:6943 ++#: config/sparc/sparc.c:7085 + #, fuzzy, c-format + msgid "invalid %%c operand" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/sparc/sparc.c:6944 ++#: config/sparc/sparc.c:7086 + #, fuzzy, c-format + msgid "invalid %%C operand" + msgstr "ìç Ýãêõñç ìåôáôüðéóç UTC" + +-#: config/sparc/sparc.c:6965 ++#: config/sparc/sparc.c:7107 + #, fuzzy, c-format + msgid "invalid %%d operand" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/sparc/sparc.c:6966 ++#: config/sparc/sparc.c:7108 + #, fuzzy, c-format + msgid "invalid %%D operand" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/sparc/sparc.c:6982 ++#: config/sparc/sparc.c:7124 + #, fuzzy, c-format + msgid "invalid %%f operand" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/sparc/sparc.c:6996 ++#: config/sparc/sparc.c:7138 + #, fuzzy, c-format + msgid "invalid %%s operand" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: config/sparc/sparc.c:7050 ++#: config/sparc/sparc.c:7192 + msgid "long long constant not a valid immediate operand" + msgstr "" + +-#: config/sparc/sparc.c:7053 ++#: config/sparc/sparc.c:7195 + msgid "floating point constant not a valid immediate operand" + msgstr "" + +@@ -13243,277 +13266,277 @@ + msgid "`-gnat' misspelled as `-gant'" + msgstr "" + +-#: cp/call.c:217 ++#: cp/call.c:219 + msgid "unable to call pointer to member function here" + msgstr "" + +-#: cp/call.c:2228 ++#: cp/call.c:2238 + msgid "%s %D(%T, %T, %T) " + msgstr "" + +-#: cp/call.c:2233 ++#: cp/call.c:2243 + msgid "%s %D(%T, %T) " + msgstr "" + +-#: cp/call.c:2237 ++#: cp/call.c:2247 + msgid "%s %D(%T) " + msgstr "" + +-#: cp/call.c:2241 ++#: cp/call.c:2251 + msgid "%s %T " + msgstr "" + +-#: cp/call.c:2243 ++#: cp/call.c:2253 + msgid "%J%s %+#D " + msgstr "" + +-#: cp/call.c:2245 ++#: cp/call.c:2255 + msgid "%J%s %+#D" + msgstr "" + +-#: cp/call.c:2280 ++#: cp/call.c:2290 + msgid "candidates are:" + msgstr "" + +-#: cp/call.c:2468 ++#: cp/call.c:2478 + #, fuzzy + msgid "conversion from `%T' to `%T' is ambiguous" + msgstr "ç ìåôáôñïðÞ áðü `%s' óå `%s' äåí õðïóôçñßæåôå" + +-#: cp/call.c:2619 cp/call.c:2663 ++#: cp/call.c:2629 cp/call.c:2673 + msgid "no matching function for call to `%D(%A)'" + msgstr "" + +-#: cp/call.c:2622 cp/call.c:2666 ++#: cp/call.c:2632 cp/call.c:2676 + msgid "call of overloaded `%D(%A)' is ambiguous" + msgstr "" + + #. It's no good looking for an overloaded operator() on a + #. pointer-to-member-function. +-#: cp/call.c:2732 ++#: cp/call.c:2742 + #, c-format + msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*" + msgstr "" + +-#: cp/call.c:2798 ++#: cp/call.c:2808 + msgid "no match for call to `(%T) (%A)'" + msgstr "" + + # src/getopt.c:813 + # src/getopt.c:813 +-#: cp/call.c:2806 ++#: cp/call.c:2816 + #, fuzzy + msgid "call of `(%T) (%A)' is ambiguous" + msgstr "%s: ç åðéëïãÞ `-W %s' åßíáé äéöïñïýìåíç\n" + +-#: cp/call.c:2839 ++#: cp/call.c:2849 + #, c-format + msgid "%s for ternary 'operator?:' in '%E ? %E : %E'" + msgstr "" + +-#: cp/call.c:2845 ++#: cp/call.c:2855 + #, c-format + msgid "%s for 'operator%s' in '%E%s'" + msgstr "" + +-#: cp/call.c:2849 ++#: cp/call.c:2859 + #, c-format + msgid "%s for 'operator[]' in '%E[%E]'" + msgstr "" + +-#: cp/call.c:2854 ++#: cp/call.c:2864 + #, fuzzy, c-format + msgid "%s for '%s' in '%s %E'" + msgstr "%s ðñéí áðü %s'%c'" + +-#: cp/call.c:2859 ++#: cp/call.c:2869 + #, c-format + msgid "%s for 'operator%s' in '%E %s %E'" + msgstr "" + +-#: cp/call.c:2862 ++#: cp/call.c:2872 + #, c-format + msgid "%s for 'operator%s' in '%s%E'" + msgstr "" + +-#: cp/call.c:2951 ++#: cp/call.c:2961 + msgid "ISO C++ forbids omitting the middle term of a ?: expression" + msgstr "" + +-#: cp/call.c:3028 ++#: cp/call.c:3038 + #, c-format + msgid "`%E' has type `void' and is not a throw-expression" + msgstr "" + +-#: cp/call.c:3061 cp/call.c:3265 ++#: cp/call.c:3071 cp/call.c:3275 + msgid "operands to ?: have different types" + msgstr "" + +-#: cp/call.c:3219 ++#: cp/call.c:3229 + msgid "enumeral mismatch in conditional expression: `%T' vs `%T'" + msgstr "" + +-#: cp/call.c:3226 ++#: cp/call.c:3236 + msgid "enumeral and non-enumeral type in conditional expression" + msgstr "" + +-#: cp/call.c:3511 ++#: cp/call.c:3521 + msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead" + msgstr "" + +-#: cp/call.c:3560 ++#: cp/call.c:3570 + msgid "using synthesized `%#D' for copy assignment" + msgstr "" + +-#: cp/call.c:3562 ++#: cp/call.c:3572 + msgid " where cfront would use `%#D'" + msgstr "" + +-#: cp/call.c:3585 ++#: cp/call.c:3595 + msgid "comparison between `%#T' and `%#T'" + msgstr "" + +-#: cp/call.c:3831 ++#: cp/call.c:3841 + #, fuzzy + msgid "no suitable `operator %s' for `%T'" + msgstr "äåí åßíáé äõíáôü íá ìåôáíïìáóôåß ôï `.' Þ ôï `..'" + +-#: cp/call.c:3848 ++#: cp/call.c:3858 + msgid "`%+#D' is private" + msgstr "" + +-#: cp/call.c:3850 ++#: cp/call.c:3860 + msgid "`%+#D' is protected" + msgstr "" + +-#: cp/call.c:3852 ++#: cp/call.c:3862 + #, fuzzy + msgid "`%+#D' is inaccessible" + msgstr "ôï `%s' åßíáé ìç-ðñïóðåëÜóéìï" + +-#: cp/call.c:3853 ++#: cp/call.c:3863 + msgid "within this context" + msgstr "" + +-#: cp/call.c:3923 ++#: cp/call.c:3947 + #, fuzzy + msgid "invalid conversion from `%T' to `%T'" + msgstr "ç ìåôáôñïðÞ áðü `%s' óå `%s' äåí õðïóôçñßæåôå" + +-#: cp/call.c:3925 ++#: cp/call.c:3949 + #, fuzzy + msgid " initializing argument %P of `%D'" + msgstr "Ìç Ýãêõñç áêÝñáéá ðáñÜìåôñïò `%s'" + +-#: cp/call.c:4079 ++#: cp/call.c:4094 + #, fuzzy + msgid "cannot bind bitfield `%E' to `%T'" + msgstr "äåí åßíáé äõíáôü íá ìåôáíïìáóôåß ôï `.' Þ ôï `..'" + +-#: cp/call.c:4082 ++#: cp/call.c:4097 + #, fuzzy + msgid "cannot bind packed field `%E' to `%T'" + msgstr "Üãíùóôïò ÷áñáêôÞñáò óôï ðåäßï `%s' ôçò êáôçãïñßáò `%s'" + +-#: cp/call.c:4085 ++#: cp/call.c:4100 + #, fuzzy + msgid "cannot bind rvalue `%E' to `%T'" + msgstr "äåí åßíáé äõíáôü íá ìåôáíïìáóôåß ôï `.' Þ ôï `..'" + +-#: cp/call.c:4170 ++#: cp/call.c:4185 + msgid "cannot pass objects of non-POD type `%#T' through `...'; call will abort at runtime" + msgstr "" + + #. Undefined behavior [expr.call] 5.2.2/7. +-#: cp/call.c:4196 ++#: cp/call.c:4211 + msgid "cannot receive objects of non-POD type `%#T' through `...'; call will abort at runtime" + msgstr "" + +-#: cp/call.c:4240 ++#: cp/call.c:4255 + msgid "the default argument for parameter %d of `%D' has not yet been parsed" + msgstr "" + +-#: cp/call.c:4437 ++#: cp/call.c:4452 + msgid "passing `%T' as `this' argument of `%#D' discards qualifiers" + msgstr "" + +-#: cp/call.c:4456 ++#: cp/call.c:4471 + #, fuzzy + msgid "`%T' is not an accessible base of `%T'" + msgstr "ôï `%s' åßíáé ðñüãïíïò ôïõ `%s'" + +-#: cp/call.c:4725 ++#: cp/call.c:4740 + msgid "could not find class$ field in java interface type `%T'" + msgstr "" + +-#: cp/call.c:4980 ++#: cp/call.c:4995 + #, fuzzy + msgid "call to non-function `%D'" + msgstr "Äåí âñÝèçêáí URL óôï %s.\n" + +-#: cp/call.c:5006 ++#: cp/call.c:5021 + msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'" + msgstr "" + +-#: cp/call.c:5084 ++#: cp/call.c:5099 + msgid "no matching function for call to `%T::%s(%A)%#V'" + msgstr "" + + # src/getopt.c:813 + # src/getopt.c:813 +-#: cp/call.c:5101 ++#: cp/call.c:5116 + #, fuzzy, c-format + msgid "call of overloaded `%s(%A)' is ambiguous" + msgstr "%s: ç åðéëïãÞ `-W %s' åßíáé äéöïñïýìåíç\n" + +-#: cp/call.c:5122 ++#: cp/call.c:5137 + msgid "cannot call member function `%D' without object" + msgstr "" + +-#: cp/call.c:5707 ++#: cp/call.c:5722 + msgid "passing `%T' chooses `%T' over `%T'" + msgstr "" + +-#: cp/call.c:5709 cp/name-lookup.c:4155 ++#: cp/call.c:5724 cp/name-lookup.c:4137 + #, fuzzy + msgid " in call to `%D'" + msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'" + +-#: cp/call.c:5766 ++#: cp/call.c:5781 + msgid "choosing `%D' over `%D'" + msgstr "" + +-#: cp/call.c:5767 ++#: cp/call.c:5782 + #, fuzzy + msgid " for conversion from `%T' to `%T'" + msgstr "ç ìåôáôñïðÞ áðü `%s' óå `%s' äåí õðïóôçñßæåôå" + +-#: cp/call.c:5769 ++#: cp/call.c:5784 + msgid " because conversion sequence for the argument is better" + msgstr "" + +-#: cp/call.c:5889 ++#: cp/call.c:5904 + msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:" + msgstr "" + +-#: cp/call.c:5893 ++#: cp/call.c:5908 + msgid "candidate 1:" + msgstr "" + +-#: cp/call.c:5894 ++#: cp/call.c:5909 + msgid "candidate 2:" + msgstr "" + +-#: cp/call.c:6003 ++#: cp/call.c:6018 + #, fuzzy + msgid "could not convert `%E' to `%T'" + msgstr "äåí åßíáé äõíáôü íá äçìéïõñãçèåß ôï %s `%s' óôï `%s'" + +-#: cp/call.c:6108 ++#: cp/call.c:6123 + msgid "invalid initialization of non-const reference of type '%T' from a temporary of type '%T'" + msgstr "" + +-#: cp/call.c:6112 ++#: cp/call.c:6127 + msgid "invalid initialization of reference of type '%T' from expression of type '%T'" + msgstr "" + +@@ -13588,225 +13611,225 @@ + msgid "`%#T' only defines private constructors and has no friends" + msgstr "" + +-#: cp/class.c:1995 ++#: cp/class.c:2038 + msgid "no unique final overrider for `%D' in `%T'" + msgstr "" + + #. Here we know it is a hider, and no overrider exists. +-#: cp/class.c:2441 ++#: cp/class.c:2484 + msgid "`%D' was hidden" + msgstr "" + +-#: cp/class.c:2442 ++#: cp/class.c:2485 + msgid " by `%D'" + msgstr " êáôÜ `%D'" + +-#: cp/class.c:2484 cp/decl2.c:1161 ++#: cp/class.c:2527 cp/decl2.c:1161 + msgid "`%#D' invalid; an anonymous union can only have non-static data members" + msgstr "" + +-#: cp/class.c:2490 cp/decl2.c:1168 ++#: cp/class.c:2533 cp/decl2.c:1168 + msgid "private member `%#D' in anonymous union" + msgstr "" + +-#: cp/class.c:2493 cp/decl2.c:1170 ++#: cp/class.c:2536 cp/decl2.c:1170 + msgid "protected member `%#D' in anonymous union" + msgstr "" + +-#: cp/class.c:2612 ++#: cp/class.c:2655 + msgid "vtable layout for class `%T' may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor" + msgstr "" + +-#: cp/class.c:2672 ++#: cp/class.c:2715 + msgid "bit-field `%#D' with non-integral type" + msgstr "" + +-#: cp/class.c:2692 ++#: cp/class.c:2735 + msgid "bit-field `%D' width not an integer constant" + msgstr "" + +-#: cp/class.c:2698 ++#: cp/class.c:2741 + #, fuzzy + msgid "negative width in bit-field `%D'" + msgstr "Áñíçôéêü ðëÜôïò óôçí áðïôßìçóç" + +-#: cp/class.c:2703 ++#: cp/class.c:2746 + msgid "zero width for bit-field `%D'" + msgstr "" + +-#: cp/class.c:2709 ++#: cp/class.c:2752 + msgid "width of `%D' exceeds its type" + msgstr "" + +-#: cp/class.c:2718 ++#: cp/class.c:2761 + msgid "`%D' is too small to hold all values of `%#T'" + msgstr "" + +-#: cp/class.c:2780 ++#: cp/class.c:2823 + msgid "member `%#D' with constructor not allowed in union" + msgstr "" + +-#: cp/class.c:2783 ++#: cp/class.c:2826 + msgid "member `%#D' with destructor not allowed in union" + msgstr "" + +-#: cp/class.c:2786 ++#: cp/class.c:2829 + msgid "member `%#D' with copy assignment operator not allowed in union" + msgstr "" + +-#: cp/class.c:2813 ++#: cp/class.c:2856 + msgid "multiple fields in union `%T' initialized" + msgstr "" + +-#: cp/class.c:2879 ++#: cp/class.c:2922 + msgid "ignoring packed attribute on unpacked non-POD field `%#D'" + msgstr "" + +-#: cp/class.c:2939 ++#: cp/class.c:2982 + #, fuzzy + msgid "`%D' may not be static because it is a member of a union" + msgstr "ôï `%s' åßíáé ðñüãïíïò ôïõ `%s'" + +-#: cp/class.c:2944 ++#: cp/class.c:2987 + msgid "`%D' may not have reference type `%T' because it is a member of a union" + msgstr "" + +-#: cp/class.c:2952 ++#: cp/class.c:2995 + msgid "field `%D' in local class cannot be static" + msgstr "" + +-#: cp/class.c:2958 ++#: cp/class.c:3001 + msgid "field `%D' invalidly declared function type" + msgstr "" + +-#: cp/class.c:2965 ++#: cp/class.c:3008 + msgid "field `%D' invalidly declared method type" + msgstr "" + +-#: cp/class.c:2998 ++#: cp/class.c:3041 + msgid "non-static reference `%#D' in class without a constructor" + msgstr "" + +-#: cp/class.c:3041 ++#: cp/class.c:3084 + msgid "non-static const member `%#D' in class without a constructor" + msgstr "" + +-#: cp/class.c:3056 ++#: cp/class.c:3099 + #, fuzzy + msgid "field `%#D' with same name as class" + msgstr "ÕðÜñ÷åé áíôéêåßìåíï ìå ôï ßäéï üíïìá" + +-#: cp/class.c:3074 ++#: cp/class.c:3117 + msgid "`%#T' has pointer data members" + msgstr "" + +-#: cp/class.c:3078 ++#: cp/class.c:3121 + msgid " but does not override `%T(const %T&)'" + msgstr "" + +-#: cp/class.c:3080 ++#: cp/class.c:3123 + msgid " or `operator=(const %T&)'" + msgstr "" + +-#: cp/class.c:3083 ++#: cp/class.c:3126 + msgid " but does not override `operator=(const %T&)'" + msgstr "" + +-#: cp/class.c:3517 ++#: cp/class.c:3560 + msgid "offset of empty base `%T' may not be ABI-compliant and maychange in a future version of GCC" + msgstr "" + +-#: cp/class.c:3627 ++#: cp/class.c:3670 + msgid "class `%T' will be considered nearly empty in a future version of GCC" + msgstr "" + +-#: cp/class.c:3714 ++#: cp/class.c:3757 + msgid "initializer specified for non-virtual method `%D'" + msgstr "" + +-#: cp/class.c:4402 ++#: cp/class.c:4445 + msgid "offset of virtual base `%T' is not ABI-compliant and may change in a future version of GCC" + msgstr "" + +-#: cp/class.c:4492 ++#: cp/class.c:4535 + msgid "direct base `%T' inaccessible in `%T' due to ambiguity" + msgstr "" + +-#: cp/class.c:4505 ++#: cp/class.c:4548 + msgid "virtual base `%T' inaccessible in `%T' due to ambiguity" + msgstr "" + +-#: cp/class.c:4679 ++#: cp/class.c:4722 + msgid "size assigned to `%T' may not be ABI-compliant and may change in a future version of GCC" + msgstr "" + + #. Versions of G++ before G++ 3.4 did not reset the + #. DECL_MODE. +-#: cp/class.c:4718 ++#: cp/class.c:4761 + msgid "the offset of `%D' may not be ABI-compliant and may change in a future version of GCC" + msgstr "" + +-#: cp/class.c:4741 ++#: cp/class.c:4784 + msgid "offset of `%D' is not ABI-compliant and may change in a future version of GCC" + msgstr "" + +-#: cp/class.c:4750 ++#: cp/class.c:4793 + msgid "`%D' contains empty classes which may cause base classes to be placed at different locations in a future version of GCC" + msgstr "" + +-#: cp/class.c:4809 ++#: cp/class.c:4852 + msgid "layout of classes derived from empty class `%T' may change in a future version of GCC" + msgstr "" + +-#: cp/class.c:4939 cp/semantics.c:2044 ++#: cp/class.c:4982 cp/semantics.c:2041 + #, fuzzy + msgid "redefinition of `%#T'" + msgstr "êáíÝíáò ïñéóìüò ôïõ `UNDEFINED'" + +-#: cp/class.c:5109 ++#: cp/class.c:5152 + msgid "`%#T' has virtual functions but non-virtual destructor" + msgstr "" + +-#: cp/class.c:5188 ++#: cp/class.c:5231 + msgid "trying to finish struct, but kicked out due to previous parse errors" + msgstr "" + +-#: cp/class.c:5630 ++#: cp/class.c:5673 + #, c-format + msgid "language string `\"%s\"' not recognized" + msgstr "" + +-#: cp/class.c:5718 ++#: cp/class.c:5761 + msgid "cannot resolve overloaded function `%D' based on conversion to type `%T'" + msgstr "" + +-#: cp/class.c:5843 ++#: cp/class.c:5886 + msgid "no matches converting function `%D' to type `%#T'" + msgstr "" + +-#: cp/class.c:5866 ++#: cp/class.c:5909 + msgid "converting overloaded function `%D' to type `%#T' is ambiguous" + msgstr "" + +-#: cp/class.c:5892 ++#: cp/class.c:5935 + msgid "assuming pointer to member `%D'" + msgstr "" + +-#: cp/class.c:5895 ++#: cp/class.c:5938 + #, c-format + msgid "(a pointer to member can only be formed with `&%E')" + msgstr "" + +-#: cp/class.c:5940 cp/class.c:6122 cp/class.c:6129 ++#: cp/class.c:5983 cp/class.c:6165 cp/class.c:6172 + #, fuzzy + msgid "not enough type information" + msgstr "åìöÜíéóç ðëçñïöïñéþí ðñïüäïõ" + +-#: cp/class.c:5957 ++#: cp/class.c:6000 + msgid "argument of type `%T' does not match `%T'" + msgstr "" + +-#: cp/class.c:6106 ++#: cp/class.c:6149 + msgid "invalid operation on uninstantiated type" + msgstr "" + +@@ -13815,12 +13838,12 @@ + #. A name N used in a class S shall refer to the same declaration + #. in its context and when re-evaluated in the completed scope of + #. S. +-#: cp/class.c:6364 cp/decl.c:1222 cp/name-lookup.c:514 cp/pt.c:2097 ++#: cp/class.c:6407 cp/decl.c:1223 cp/name-lookup.c:514 cp/pt.c:2125 + #, fuzzy + msgid "declaration of `%#D'" + msgstr "äçìéïõñãßá áñ÷åßïõ `%s'\n" + +-#: cp/class.c:6365 ++#: cp/class.c:6408 + msgid "changes meaning of `%D' from `%+#D'" + msgstr "" + +@@ -13932,148 +13955,164 @@ + msgid " candidate conversions include `%D' and `%D'" + msgstr "" + +-#: cp/decl.c:371 ++#: cp/decl.c:372 + msgid "label `%D' used but not defined" + msgstr "" + +-#: cp/decl.c:378 ++#: cp/decl.c:379 + msgid "label `%D' defined but not used" + msgstr "" + +-#: cp/decl.c:1130 cp/decl.c:1556 ++#: cp/decl.c:1131 cp/decl.c:1570 + msgid "previous declaration of `%D'" + msgstr "" + +-#: cp/decl.c:1178 ++#: cp/decl.c:1179 + #, fuzzy + msgid "%Jfunction '%D' redeclared as inline" + msgstr "Ç ëåéôïõñãßá äåí Ý÷åé õëïðïéçèåß" + +-#: cp/decl.c:1179 ++#: cp/decl.c:1180 + msgid "%Jprevious declaration of '%D' with attribute noinline" + msgstr "" + +-#: cp/decl.c:1186 ++#: cp/decl.c:1187 + msgid "%Jfunction '%D' redeclared with attribute noinline" + msgstr "" + +-#: cp/decl.c:1188 ++#: cp/decl.c:1189 + #, fuzzy + msgid "%Jprevious declaration of '%D' was inline" + msgstr "ðñïçãïýìåíç áõôïíüçôç äéáêýñçîç ôïõ `%s'" + +-#: cp/decl.c:1209 cp/decl.c:1247 ++#: cp/decl.c:1210 cp/decl.c:1248 + msgid "shadowing %s function `%#D'" + msgstr "" + +-#: cp/decl.c:1218 ++#: cp/decl.c:1219 + msgid "library function `%#D' redeclared as non-function `%#D'" + msgstr "" + +-#: cp/decl.c:1223 ++#: cp/decl.c:1224 + msgid "conflicts with built-in declaration `%#D'" + msgstr "" + +-#: cp/decl.c:1242 cp/decl.c:1354 cp/decl.c:1370 ++#: cp/decl.c:1243 cp/decl.c:1355 cp/decl.c:1371 + msgid "new declaration `%#D'" + msgstr "" + +-#: cp/decl.c:1243 ++#: cp/decl.c:1244 + msgid "ambiguates built-in declaration `%#D'" + msgstr "" + +-#: cp/decl.c:1314 ++#: cp/decl.c:1315 + msgid "`%#D' redeclared as different kind of symbol" + msgstr "" + +-#: cp/decl.c:1317 ++#: cp/decl.c:1318 + msgid "previous declaration of `%#D'" + msgstr "" + +-#: cp/decl.c:1339 ++#: cp/decl.c:1340 + msgid "declaration of template `%#D'" + msgstr "" + +-#: cp/decl.c:1340 cp/name-lookup.c:515 ++#: cp/decl.c:1341 cp/name-lookup.c:515 + msgid "conflicts with previous declaration `%#D'" + msgstr "" + +-#: cp/decl.c:1355 cp/decl.c:1371 ++#: cp/decl.c:1356 cp/decl.c:1372 + msgid "ambiguates old declaration `%#D'" + msgstr "" + +-#: cp/decl.c:1363 ++#: cp/decl.c:1364 + msgid "declaration of C function `%#D' conflicts with" + msgstr "" + +-#: cp/decl.c:1365 ++#: cp/decl.c:1366 + msgid "previous declaration `%#D' here" + msgstr "" + +-#: cp/decl.c:1381 ++#: cp/decl.c:1382 + #, fuzzy + msgid "conflicting declaration '%#D'" + msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'" + +-#: cp/decl.c:1382 ++#: cp/decl.c:1383 + #, fuzzy + msgid "'%D' has a previous declaration as `%#D'" + msgstr "áõôüò åßíáé ï ðñþôïò ïñéóìüò" + +-#: cp/decl.c:1435 ++#. [namespace.alias] ++#. ++#. A namespace-name or namespace-alias shall not be declared as ++#. the name of any other entity in the same declarative region. ++#. A namespace-name defined at global scope shall not be ++#. declared as the name of any other entity in any glogal scope ++#. of the program. ++#: cp/decl.c:1436 ++msgid "declaration of `namespace %D' conflicts with" ++msgstr "" ++ ++#: cp/decl.c:1437 ++#, fuzzy ++msgid "previous declaration of `namespace %D' here" ++msgstr "ðñïçãïýìåíç áõôïíüçôç äéáêýñçîç ôïõ `%s'" ++ ++#: cp/decl.c:1449 + msgid "`%#D' previously defined here" + msgstr "" + +-#: cp/decl.c:1436 ++#: cp/decl.c:1450 + #, fuzzy + msgid "`%#D' previously declared here" + msgstr "Äåí õðÜñ÷åé ðñïçãïýìåíç êáíïíéêÞ Ýêöñáóç" + + #. Prototype decl follows defn w/o prototype. +-#: cp/decl.c:1445 ++#: cp/decl.c:1459 + msgid "prototype for `%#D'" + msgstr "" + +-#: cp/decl.c:1446 ++#: cp/decl.c:1460 + msgid "%Jfollows non-prototype definition here" + msgstr "" + +-#: cp/decl.c:1458 ++#: cp/decl.c:1472 + msgid "previous declaration of `%#D' with %L linkage" + msgstr "" + +-#: cp/decl.c:1460 ++#: cp/decl.c:1474 + msgid "conflicts with new declaration with %L linkage" + msgstr "" + +-#: cp/decl.c:1483 cp/decl.c:1490 ++#: cp/decl.c:1497 cp/decl.c:1504 + msgid "default argument given for parameter %d of `%#D'" + msgstr "" + +-#: cp/decl.c:1485 cp/decl.c:1492 ++#: cp/decl.c:1499 cp/decl.c:1506 + #, fuzzy + msgid "after previous specification in `%#D'" + msgstr "%s: Ìç Ýãêõñç ñýèìéóç `%s'.\n" + +-#: cp/decl.c:1501 ++#: cp/decl.c:1515 + msgid "`%#D' was used before it was declared inline" + msgstr "" + +-#: cp/decl.c:1502 ++#: cp/decl.c:1516 + #, fuzzy + msgid "%Jprevious non-inline declaration here" + msgstr "ðñïçãïýìåíç áõôïíüçôç äéáêýñçîç ôïõ `%s'" + +-#: cp/decl.c:1555 ++#: cp/decl.c:1569 + msgid "redundant redeclaration of `%D' in same scope" + msgstr "" + +-#: cp/decl.c:1649 ++#: cp/decl.c:1663 + #, c-format + msgid "declaration of `%F' throws different exceptions" + msgstr "" + +-#: cp/decl.c:1651 ++#: cp/decl.c:1665 + #, c-format + msgid "than previous declaration `%F'" + msgstr "" +@@ -14086,505 +14125,523 @@ + #. that specialization that would cause an implicit + #. instantiation to take place, in every translation unit in + #. which such a use occurs. +-#: cp/decl.c:1798 ++#: cp/decl.c:1812 + msgid "explicit specialization of %D after first use" + msgstr "" + +-#: cp/decl.c:1878 ++#: cp/decl.c:1892 + msgid "%J'%D': visibility attribute ignored because it" + msgstr "" + +-#: cp/decl.c:1880 ++#: cp/decl.c:1894 + #, fuzzy + msgid "%Jconflicts with previous declaration here" + msgstr "áõôüò åßíáé ï ðñþôïò ïñéóìüò" + +-#: cp/decl.c:1974 ++#: cp/decl.c:1988 + msgid "implicit declaration of function `%#D'" + msgstr "áõôïíüçôç äéáêýñçîç ôçò óõíÜñôçóçò `%#D'" + +-#: cp/decl.c:2137 ++#: cp/decl.c:2151 + #, c-format + msgid "label `%s' referenced outside of any function" + msgstr "" + +-#: cp/decl.c:2234 cp/decl.c:2258 cp/decl.c:2346 ++#: cp/decl.c:2248 cp/decl.c:2272 cp/decl.c:2360 + msgid "jump to label `%D'" + msgstr "" + +-#: cp/decl.c:2236 cp/decl.c:2260 ++#: cp/decl.c:2250 cp/decl.c:2274 + msgid "jump to case label" + msgstr "" + +-#: cp/decl.c:2239 cp/decl.c:2263 ++#: cp/decl.c:2253 cp/decl.c:2277 + msgid "%H from here" + msgstr "" + +-#: cp/decl.c:2244 ++#: cp/decl.c:2258 + msgid " crosses initialization of `%#D'" + msgstr "" + +-#: cp/decl.c:2247 cp/decl.c:2362 ++#: cp/decl.c:2261 cp/decl.c:2376 + msgid " enters scope of non-POD `%#D'" + msgstr "" + +-#: cp/decl.c:2267 cp/decl.c:2366 ++#: cp/decl.c:2281 cp/decl.c:2380 + msgid " enters try block" + msgstr "" + +-#: cp/decl.c:2269 cp/decl.c:2368 ++#: cp/decl.c:2283 cp/decl.c:2382 + msgid " enters catch block" + msgstr "" + +-#: cp/decl.c:2347 ++#: cp/decl.c:2361 + msgid " from here" + msgstr "" + + #. Can't skip init of __exception_info. +-#: cp/decl.c:2358 ++#: cp/decl.c:2372 + msgid "%J enters catch block" + msgstr "" + +-#: cp/decl.c:2360 ++#: cp/decl.c:2374 + msgid " skips initialization of `%#D'" + msgstr "" + +-#: cp/decl.c:2394 ++#: cp/decl.c:2408 + msgid "label named wchar_t" + msgstr "" + +-#: cp/decl.c:2397 ++#: cp/decl.c:2411 + #, fuzzy + msgid "duplicate label `%D'" + msgstr "äéðëü êëåéäß" + +-#: cp/decl.c:2625 cp/parser.c:3182 ++#: cp/decl.c:2639 cp/parser.c:3192 + msgid "`%D' used without template parameters" + msgstr "" + +-#: cp/decl.c:2635 cp/decl.c:2651 cp/decl.c:2739 ++#: cp/decl.c:2649 cp/decl.c:2665 cp/decl.c:2753 + msgid "no class template named `%#T' in `%#T'" + msgstr "" + +-#: cp/decl.c:2672 cp/decl.c:2682 cp/decl.c:2702 ++#: cp/decl.c:2686 cp/decl.c:2696 cp/decl.c:2716 + msgid "no type named `%#T' in `%#T'" + msgstr "" + +-#: cp/decl.c:3429 ++#: cp/decl.c:3443 + msgid "%Jan anonymous union cannot have function members" + msgstr "" + +-#: cp/decl.c:3447 ++#: cp/decl.c:3461 + msgid "member %#D' with constructor not allowed in anonymous aggregate" + msgstr "" + +-#: cp/decl.c:3450 ++#: cp/decl.c:3464 + msgid "member %#D' with destructor not allowed in anonymous aggregate" + msgstr "" + +-#: cp/decl.c:3453 ++#: cp/decl.c:3467 + msgid "member %#D' with copy assignment operator not allowed in anonymous aggregate" + msgstr "" + +-#: cp/decl.c:3493 ++#: cp/decl.c:3507 + msgid "redeclaration of C++ built-in type `%T'" + msgstr "" + +-#: cp/decl.c:3531 ++#: cp/decl.c:3545 + msgid "multiple types in one declaration" + msgstr "" + +-#: cp/decl.c:3557 ++#: cp/decl.c:3571 + msgid "missing type-name in typedef-declaration" + msgstr "" + +-#: cp/decl.c:3565 ++#: cp/decl.c:3579 + msgid "ISO C++ prohibits anonymous structs" + msgstr "" + +-#: cp/decl.c:3572 ++#: cp/decl.c:3586 + msgid "`%D' can only be specified for functions" + msgstr "" + +-#: cp/decl.c:3574 ++#: cp/decl.c:3588 + msgid "`%D' can only be specified inside a class" + msgstr "" + +-#: cp/decl.c:3576 ++#: cp/decl.c:3590 + msgid "`%D' can only be specified for constructors" + msgstr "" + +-#: cp/decl.c:3579 ++#: cp/decl.c:3593 + msgid "`%D' can only be specified for objects and functions" + msgstr "" + +-#: cp/decl.c:3721 cp/decl2.c:855 ++#: cp/decl.c:3735 cp/decl2.c:855 + msgid "typedef `%D' is initialized (use __typeof__ instead)" + msgstr "" + +-#: cp/decl.c:3726 ++#: cp/decl.c:3740 + msgid "function `%#D' is initialized like a variable" + msgstr "" + +-#: cp/decl.c:3738 ++#: cp/decl.c:3752 + msgid "declaration of `%#D' has `extern' and is initialized" + msgstr "" + +-#: cp/decl.c:3771 ++#: cp/decl.c:3785 + #, fuzzy + msgid "`%#D' is not a static member of `%#T'" + msgstr "ôï `%s' åßíáé ðñüãïíïò ôïõ `%s'" + +-#: cp/decl.c:3777 ++#: cp/decl.c:3791 + msgid "ISO C++ does not permit `%T::%D' to be defined as `%T::%D'" + msgstr "" + + # src/request.c:263 +-#: cp/decl.c:3788 ++#: cp/decl.c:3802 + #, fuzzy + msgid "duplicate initialization of %D" + msgstr "Ôï âÞìá áñ÷éêïðïßçóçò áðÝôõ÷å" + +-#: cp/decl.c:3819 ++#: cp/decl.c:3833 + msgid "declaration of `%#D' outside of class is not definition" + msgstr "" + +-#: cp/decl.c:3868 ++#: cp/decl.c:3882 + msgid "variable `%#D' has initializer but incomplete type" + msgstr "" + +-#: cp/decl.c:3876 cp/decl.c:4445 ++#: cp/decl.c:3890 cp/decl.c:4500 + msgid "elements of array `%#D' have incomplete type" + msgstr "" + +-#: cp/decl.c:3892 ++#: cp/decl.c:3906 + msgid "aggregate `%#D' has incomplete type and cannot be defined" + msgstr "" + +-#: cp/decl.c:3942 ++#: cp/decl.c:3956 + msgid "`%D' declared as reference but not initialized" + msgstr "" + +-#: cp/decl.c:3948 ++#: cp/decl.c:3962 + msgid "ISO C++ forbids use of initializer list to initialize reference `%D'" + msgstr "" + +-#: cp/decl.c:3976 ++#: cp/decl.c:3990 + #, fuzzy + msgid "cannot initialize `%T' from `%T'" + msgstr "äåí åßíáé äõíáôü íá ìåôáíïìáóôåß ôï `.' Þ ôï `..'" + +-#: cp/decl.c:4008 ++#: cp/decl.c:4022 + msgid "initializer fails to determine size of `%D'" + msgstr "" + +-#: cp/decl.c:4013 ++#: cp/decl.c:4027 + #, fuzzy + msgid "array size missing in `%D'" + msgstr "óöÜëìá êáôÜ ôï êëåßóéìï ôçò åéóüäïõ `%s'" + +-#: cp/decl.c:4025 ++#: cp/decl.c:4039 + msgid "zero-size array `%D'" + msgstr "" + + #. An automatic variable with an incomplete type: that is an error. + #. Don't talk about array types here, since we took care of that + #. message in grokdeclarator. +-#: cp/decl.c:4062 ++#: cp/decl.c:4076 + msgid "storage size of `%D' isn't known" + msgstr "" + +-#: cp/decl.c:4084 ++#: cp/decl.c:4098 + msgid "storage size of `%D' isn't constant" + msgstr "" + +-#: cp/decl.c:4139 ++#: cp/decl.c:4153 + msgid "sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)" + msgstr "" + +-#: cp/decl.c:4140 ++#: cp/decl.c:4154 + msgid "%J you can work around this by removing the initializer" + msgstr "" + +-#: cp/decl.c:4166 ++#: cp/decl.c:4180 + #, fuzzy + msgid "uninitialized const `%D'" + msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'" + +-#: cp/decl.c:4245 ++#: cp/decl.c:4240 ++msgid "name `%D' used in a GNU-style designated initializer for an array" ++msgstr "" ++ ++#: cp/decl.c:4251 ++#, c-format ++msgid "Designated initializer `%E' larger than array size" ++msgstr "" ++ ++#: cp/decl.c:4323 + #, fuzzy + msgid "brace-enclosed initializer used to initialize `%T'" + msgstr "ìç Ýãêõñï byte Þ ëßóôá ðåäßùí" + +-#: cp/decl.c:4309 ++#: cp/decl.c:4387 + msgid "initializer for `%T' must be brace-enclosed" + msgstr "" + +-#: cp/decl.c:4326 ++#: cp/decl.c:4404 + msgid "ISO C++ does not allow designated initializers" + msgstr "" + +-#: cp/decl.c:4330 ++#: cp/decl.c:4408 + #, fuzzy + msgid "`%T' has no non-static data member named `%D'" + msgstr "ôï `%s' åßíáé ðñüãïíïò ôïõ `%s'" + +-#: cp/decl.c:4378 +-msgid "name `%D' used in a GNU-style designated initializer for an array" +-msgstr "" +- +-#: cp/decl.c:4401 ++#: cp/decl.c:4456 + #, fuzzy + msgid "too many initializers for `%T'" + msgstr "ìç Ýãêõñï byte Þ ëßóôá ðåäßùí" + +-#: cp/decl.c:4439 ++#: cp/decl.c:4494 + msgid "variable-sized object `%D' may not be initialized" + msgstr "" + +-#: cp/decl.c:4450 ++#: cp/decl.c:4505 + msgid "`%D' has incomplete type" + msgstr "" + +-#: cp/decl.c:4505 ++#: cp/decl.c:4560 + msgid "`%D' must be initialized by constructor, not by `{...}'" + msgstr "" + +-#: cp/decl.c:4549 ++#: cp/decl.c:4604 + msgid "structure `%D' with uninitialized const members" + msgstr "" + +-#: cp/decl.c:4551 ++#: cp/decl.c:4606 + msgid "structure `%D' with uninitialized reference members" + msgstr "" + +-#: cp/decl.c:4732 ++#: cp/decl.c:4788 + msgid "assignment (not initialization) in declaration" + msgstr "" + +-#: cp/decl.c:4749 ++#: cp/decl.c:4805 + msgid "cannot initialize `%D' to namespace `%D'" + msgstr "" + +-#: cp/decl.c:4803 ++#: cp/decl.c:4859 + msgid "shadowing previous type declaration of `%#D'" + msgstr "" + +-#: cp/decl.c:4840 ++#: cp/decl.c:4896 + msgid "`%D' cannot be thread-local because it has non-POD type `%T'" + msgstr "" + +-#: cp/decl.c:4855 ++#: cp/decl.c:4911 + msgid "`%D' is thread-local and so cannot be dynamically initialized" + msgstr "" + +-#: cp/decl.c:5337 ++#: cp/decl.c:5406 + #, fuzzy + msgid "invalid catch parameter" + msgstr "Ìç Ýãêõñïò ÷áñáêôÞñáò ðáñáâïëÞò" + +-#: cp/decl.c:5451 ++#: cp/decl.c:5520 + msgid "destructor for alien class `%T' cannot be a member" + msgstr "" + +-#: cp/decl.c:5454 ++#: cp/decl.c:5523 + msgid "constructor for alien class `%T' cannot be a member" + msgstr "" + +-#: cp/decl.c:5476 ++#: cp/decl.c:5545 + msgid "`%D' declared as a `virtual' %s" + msgstr "" + +-#: cp/decl.c:5478 ++#: cp/decl.c:5547 + msgid "`%D' declared as an `inline' %s" + msgstr "" + +-#: cp/decl.c:5480 ++#: cp/decl.c:5549 + msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration" + msgstr "" + +-#: cp/decl.c:5483 ++#: cp/decl.c:5552 + msgid "`%D' declared as a friend" + msgstr "" + +-#: cp/decl.c:5489 ++#: cp/decl.c:5558 + msgid "`%D' declared with an exception specification" + msgstr "" + +-#: cp/decl.c:5571 ++#: cp/decl.c:5640 + msgid "cannot declare `::main' to be a template" + msgstr "" + +-#: cp/decl.c:5573 ++#: cp/decl.c:5642 + msgid "cannot declare `::main' to be inline" + msgstr "" + +-#: cp/decl.c:5575 ++#: cp/decl.c:5644 + msgid "cannot declare `::main' to be static" + msgstr "" + +-#: cp/decl.c:5578 ++#: cp/decl.c:5647 + msgid "`main' must return `int'" + msgstr "" + +-#: cp/decl.c:5606 ++#: cp/decl.c:5675 + msgid "non-local function `%#D' uses anonymous type" + msgstr "" + +-#: cp/decl.c:5609 ++#: cp/decl.c:5678 + msgid "`%#D' does not refer to the unqualified type, so it is not used for linkage" + msgstr "" + +-#: cp/decl.c:5615 ++#: cp/decl.c:5684 + msgid "non-local function `%#D' uses local type `%T'" + msgstr "" + +-#: cp/decl.c:5639 ++#: cp/decl.c:5708 + msgid "%smember function `%D' cannot have `%T' method qualifier" + msgstr "" + +-#: cp/decl.c:5663 ++#: cp/decl.c:5732 + msgid "defining explicit specialization `%D' in friend declaration" + msgstr "" + + #. Something like `template friend void f()'. +-#: cp/decl.c:5673 ++#: cp/decl.c:5742 + msgid "invalid use of template-id `%D' in declaration of primary template" + msgstr "" + +-#: cp/decl.c:5700 ++#: cp/decl.c:5769 + msgid "default arguments are not allowed in declaration of friend template specialization `%D'" + msgstr "" + +-#: cp/decl.c:5707 ++#: cp/decl.c:5776 + msgid "`inline' is not allowed in declaration of friend template specialization `%D'" + msgstr "" + +-#: cp/decl.c:5765 ++#: cp/decl.c:5834 + msgid "definition of implicitly-declared `%D'" + msgstr "" + +-#: cp/decl.c:5785 cp/decl2.c:738 ++#: cp/decl.c:5854 cp/decl2.c:738 + msgid "no `%#D' member function declared in class `%T'" + msgstr "" + +-#: cp/decl.c:5919 ++#: cp/decl.c:5988 + msgid "non-local variable `%#D' uses local type `%T'" + msgstr "" + +-#: cp/decl.c:6034 ++#: cp/decl.c:6103 + msgid "invalid in-class initialization of static data member of non-integral type `%T'" + msgstr "" + +-#: cp/decl.c:6043 ++#: cp/decl.c:6112 + msgid "ISO C++ forbids in-class initialization of non-const static member `%D'" + msgstr "" + +-#: cp/decl.c:6046 ++#: cp/decl.c:6115 + msgid "ISO C++ forbids initialization of member constant `%D' of non-integral type `%T'" + msgstr "" + +-#: cp/decl.c:6065 ++#: cp/decl.c:6134 + #, fuzzy + msgid "size of array `%D' has non-integral type `%T'" + msgstr "Ï êáôÜëïãïò `%s' äåí åßíáé ðñïóéôüò." + +-#: cp/decl.c:6067 ++#: cp/decl.c:6136 + msgid "size of array has non-integral type `%T'" + msgstr "" + +-#: cp/decl.c:6103 ++#: cp/decl.c:6172 + msgid "size of array `%D' is negative" + msgstr "" + +-#: cp/decl.c:6105 ++#: cp/decl.c:6174 + msgid "size of array is negative" + msgstr "" + +-#: cp/decl.c:6113 ++#: cp/decl.c:6182 + msgid "ISO C++ forbids zero-size array `%D'" + msgstr "" + +-#: cp/decl.c:6115 ++#: cp/decl.c:6184 + msgid "ISO C++ forbids zero-size array" + msgstr "" + +-#: cp/decl.c:6122 ++#: cp/decl.c:6191 + msgid "size of array `%D' is not an integral constant-expression" + msgstr "" + +-#: cp/decl.c:6125 ++#: cp/decl.c:6194 + msgid "size of array is not an integral constant-expression" + msgstr "" + +-#: cp/decl.c:6130 ++#: cp/decl.c:6199 + msgid "ISO C++ forbids variable-size array `%D'" + msgstr "" + +-#: cp/decl.c:6132 ++#: cp/decl.c:6201 + msgid "ISO C++ forbids variable-size array" + msgstr "" + +-#: cp/decl.c:6154 ++#: cp/decl.c:6223 + msgid "overflow in array dimension" + msgstr "" + +-#: cp/decl.c:6248 ++#: cp/decl.c:6317 + msgid "declaration of `%D' as %s" + msgstr "" + +-#: cp/decl.c:6250 ++#: cp/decl.c:6319 + #, fuzzy, c-format + msgid "creating %s" + msgstr "äçìéïõñãßá áñ÷åßïõ `%s'\n" + +-#: cp/decl.c:6262 ++#: cp/decl.c:6331 + msgid "declaration of `%D' as multidimensional array must have bounds for all dimensions except the first" + msgstr "" + +-#: cp/decl.c:6265 ++#: cp/decl.c:6334 + msgid "multidimensional array must have bounds for all dimensions except the first" + msgstr "" + +-#: cp/decl.c:6293 ++#: cp/decl.c:6362 + msgid "return type specification for constructor invalid" + msgstr "" + +-#: cp/decl.c:6300 ++#: cp/decl.c:6369 + msgid "return type specification for destructor invalid" + msgstr "" + +-#: cp/decl.c:6306 ++#: cp/decl.c:6375 + msgid "operator `%T' declared to return `%T'" + msgstr "" + +-#: cp/decl.c:6308 ++#: cp/decl.c:6377 + msgid "return type specified for `operator %T'" + msgstr "" + +-#: cp/decl.c:6452 ++#: cp/decl.c:6400 ++msgid "unnamed variable or field declared void" ++msgstr "" ++ ++#: cp/decl.c:6405 ++#, fuzzy, c-format ++msgid "variable or field `%E' declared void" ++msgstr "ï ÷Üñôçò ÷áñáêôÞñùí `%s' ïñßóôçêå Þäç" ++ ++#: cp/decl.c:6408 ++msgid "variable or field declared void" ++msgstr "" ++ ++#: cp/decl.c:6547 + msgid "destructors must be member functions" + msgstr "" + +-#: cp/decl.c:6471 ++#: cp/decl.c:6566 + msgid "destructor `%T' must match class name `%T'" + msgstr "" + +-#: cp/decl.c:6534 ++#: cp/decl.c:6629 + msgid "declarator-id missing; using reserved word `%D'" + msgstr "" + +-#: cp/decl.c:6588 ++#: cp/decl.c:6683 + msgid "type `%T' is not derived from type `%T'" + msgstr "" + + #. Parse error puts this typespec where + #. a declarator should go. +-#: cp/decl.c:6651 ++#: cp/decl.c:6746 + msgid "`%T' specified as declarator-id" + msgstr "" + +-#: cp/decl.c:6653 ++#: cp/decl.c:6748 + msgid " perhaps you want `%T' for a constructor" + msgstr "" + +@@ -14592,309 +14649,301 @@ + #. decl-specifier like in + #. std::allocator alloc; + #. Handle that gracefully. +-#: cp/decl.c:6675 ++#: cp/decl.c:6770 + #, fuzzy, c-format + msgid "invalid use of template-name '%E' in a declarator" + msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç" + +-#: cp/decl.c:6695 ++#: cp/decl.c:6790 cp/decl.c:8124 + msgid "declaration of `%D' as non-function" + msgstr "" + +-#: cp/decl.c:6772 ++#: cp/decl.c:6867 + #, fuzzy + msgid "`bool' is now a keyword" + msgstr "Ôï `%s' äåí åßíáé êáôÜëïãïò." + +-#: cp/decl.c:6774 ++#: cp/decl.c:6869 + msgid "extraneous `%T' ignored" + msgstr "" + +-#: cp/decl.c:6790 cp/decl.c:6834 ++#: cp/decl.c:6885 cp/decl.c:6929 + #, fuzzy + msgid "multiple declarations `%T' and `%T'" + msgstr "ðïëëáðëüò áñéèìüò åðéëïãþí ôçí åíôïëÞ `s'" + +-#: cp/decl.c:6803 ++#: cp/decl.c:6898 + msgid "ISO C++ does not support `long long'" + msgstr "" + +-#: cp/decl.c:6907 cp/decl.c:6910 ++#: cp/decl.c:7002 cp/decl.c:7005 + #, c-format + msgid "ISO C++ forbids declaration of `%s' with no type" + msgstr "" + +-#: cp/decl.c:6941 ++#: cp/decl.c:7036 + #, c-format + msgid "short, signed or unsigned invalid for `%s'" + msgstr "" + +-#: cp/decl.c:6946 ++#: cp/decl.c:7041 + #, c-format + msgid "long and short specified together for `%s'" + msgstr "" + +-#: cp/decl.c:6957 ++#: cp/decl.c:7052 + #, c-format + msgid "signed and unsigned given together for `%s'" + msgstr "" + +-#: cp/decl.c:7066 ++#: cp/decl.c:7161 + msgid "qualifiers are not allowed on declaration of `operator %T'" + msgstr "" + +-#: cp/decl.c:7088 ++#: cp/decl.c:7183 + msgid "member `%D' cannot be declared both virtual and static" + msgstr "" + +-#: cp/decl.c:7097 ++#: cp/decl.c:7192 + #, fuzzy + msgid "`%T::%D' is not a valid declarator" + msgstr "Ôï `%s' äåí åßíáé êáôÜëïãïò." + +-#: cp/decl.c:7109 ++#: cp/decl.c:7204 + msgid "storage class specifiers invalid in parameter declarations" + msgstr "" + +-#: cp/decl.c:7113 ++#: cp/decl.c:7208 + msgid "typedef declaration invalid in parameter declaration" + msgstr "" + +-#: cp/decl.c:7126 ++#: cp/decl.c:7221 + msgid "virtual outside class declaration" + msgstr "" + +-#: cp/decl.c:7185 ++#: cp/decl.c:7280 + #, c-format + msgid "storage class specified for %s `%s'" + msgstr "" + +-#: cp/decl.c:7220 ++#: cp/decl.c:7315 + #, c-format + msgid "top-level declaration of `%s' specifies `auto'" + msgstr "" + +-#: cp/decl.c:7232 ++#: cp/decl.c:7327 + msgid "storage class specifiers invalid in friend function declarations" + msgstr "" + +-#: cp/decl.c:7397 ++#: cp/decl.c:7492 + msgid "destructor cannot be static member function" + msgstr "" + +-#: cp/decl.c:7400 ++#: cp/decl.c:7495 + #, c-format + msgid "destructors may not be `%s'" + msgstr "" + +-#: cp/decl.c:7421 ++#: cp/decl.c:7516 + msgid "constructor cannot be static member function" + msgstr "" + +-#: cp/decl.c:7424 ++#: cp/decl.c:7519 + msgid "constructors cannot be declared virtual" + msgstr "" + +-#: cp/decl.c:7429 ++#: cp/decl.c:7524 + #, c-format + msgid "constructors may not be `%s'" + msgstr "" + +-#: cp/decl.c:7439 ++#: cp/decl.c:7534 + msgid "return value type specifier for constructor ignored" + msgstr "" + +-#: cp/decl.c:7458 ++#: cp/decl.c:7553 + #, fuzzy, c-format + msgid "can't initialize friend function `%s'" + msgstr "Äåí Þôáí äõíáôÞ ç åýñåóç åôéêÝôôáò ãéá ìåôáãùãÞ óôï `%s'" + + #. Cannot be both friend and virtual. +-#: cp/decl.c:7462 ++#: cp/decl.c:7557 + msgid "virtual functions cannot be friends" + msgstr "" + +-#: cp/decl.c:7467 ++#: cp/decl.c:7562 + #, fuzzy + msgid "friend declaration not in class definition" + msgstr "óõíôáêôéêü óöÜëìá óôïí ïñéóìü êëÜóçò ÷áñáêôÞñùí" + +-#: cp/decl.c:7469 ++#: cp/decl.c:7564 + #, c-format + msgid "can't define friend function `%s' in a local class definition" + msgstr "" + +-#: cp/decl.c:7490 ++#: cp/decl.c:7585 + msgid "destructors may not have parameters" + msgstr "" + +-#: cp/decl.c:7510 cp/decl.c:7517 ++#: cp/decl.c:7605 cp/decl.c:7612 + #, fuzzy + msgid "cannot declare reference to `%#T'" + msgstr "áäõíáìßá áëëáãÞò óôï êáôÜëïãï %s" + +-#: cp/decl.c:7511 ++#: cp/decl.c:7606 + #, fuzzy + msgid "cannot declare pointer to `%#T'" + msgstr "äåí åßíáé äõíáôü íá äçìéïõñãçèåß ôï %s `%s' óôï `%s'" + +-#: cp/decl.c:7516 ++#: cp/decl.c:7611 + msgid "cannot declare pointer to `%#T' member" + msgstr "" + +-#: cp/decl.c:7655 ++#: cp/decl.c:7750 + msgid "extra qualification `%T::' on member `%s' ignored" + msgstr "" + +-#: cp/decl.c:7671 ++#: cp/decl.c:7766 + msgid "cannot declare member function `%T::%s' within `%T'" + msgstr "" + +-#: cp/decl.c:7686 ++#: cp/decl.c:7781 + #, fuzzy + msgid "cannot declare member `%T::%s' within `%T'" + msgstr "äåí åßíáé äõíáôü íá äçìéïõñãçèåß ôï %s `%s' óôï `%s'" + +-#: cp/decl.c:7766 ++#: cp/decl.c:7861 + msgid "data member may not have variably modified type `%T'" + msgstr "" + +-#: cp/decl.c:7768 ++#: cp/decl.c:7863 + msgid "parameter may not have variably modified type `%T'" + msgstr "" + + #. [dcl.fct.spec] The explicit specifier shall only be used in + #. declarations of constructors within a class definition. +-#: cp/decl.c:7776 ++#: cp/decl.c:7871 + msgid "only declarations of constructors can be `explicit'" + msgstr "" + +-#: cp/decl.c:7784 ++#: cp/decl.c:7879 + #, c-format + msgid "non-member `%s' cannot be declared `mutable'" + msgstr "" + +-#: cp/decl.c:7789 ++#: cp/decl.c:7884 + #, c-format + msgid "non-object member `%s' cannot be declared `mutable'" + msgstr "" + +-#: cp/decl.c:7795 ++#: cp/decl.c:7890 + #, c-format + msgid "function `%s' cannot be declared `mutable'" + msgstr "" + +-#: cp/decl.c:7800 ++#: cp/decl.c:7895 + #, c-format + msgid "static `%s' cannot be declared `mutable'" + msgstr "" + +-#: cp/decl.c:7805 ++#: cp/decl.c:7900 + #, c-format + msgid "const `%s' cannot be declared `mutable'" + msgstr "" + +-#: cp/decl.c:7818 ++#: cp/decl.c:7913 + msgid "template-id `%D' used as a declarator" + msgstr "" + +-#: cp/decl.c:7839 ++#: cp/decl.c:7934 + msgid "ISO C++ forbids nested type `%D' with same name as enclosing class" + msgstr "" + +-#: cp/decl.c:7847 ++#: cp/decl.c:7942 + msgid "%Jtypedef name may not be a nested-name-specifier" + msgstr "" + +-#: cp/decl.c:7893 ++#: cp/decl.c:7988 + msgid "%Jinvalid type qualifier for non-member function type" + msgstr "" + +-#: cp/decl.c:7956 ++#: cp/decl.c:8051 + msgid "type qualifiers specified for friend class declaration" + msgstr "" + +-#: cp/decl.c:7961 ++#: cp/decl.c:8056 + msgid "`inline' specified for friend class declaration" + msgstr "" + +-#: cp/decl.c:7969 ++#: cp/decl.c:8064 + #, fuzzy + msgid "template parameters cannot be friends" + msgstr "ï äéá÷ùñéóôÞò äå ìðïñåß íá åßíáé êåíüò" + +-#: cp/decl.c:7971 ++#: cp/decl.c:8066 + msgid "friend declaration requires class-key, i.e. `friend class %T::%D'" + msgstr "" + +-#: cp/decl.c:7975 ++#: cp/decl.c:8070 + msgid "friend declaration requires class-key, i.e. `friend %#T'" + msgstr "" + +-#: cp/decl.c:7988 ++#: cp/decl.c:8083 + msgid "trying to make class `%T' a friend of global scope" + msgstr "" + +-#: cp/decl.c:7999 ++#: cp/decl.c:8094 + msgid "invalid qualifiers on non-member function type" + msgstr "" + +-#: cp/decl.c:8018 ++#: cp/decl.c:8113 + msgid "abstract declarator `%T' used as declaration" + msgstr "" + +-#: cp/decl.c:8030 +-msgid "unnamed variable or field declared void" +-msgstr "" +- +-#: cp/decl.c:8039 +-msgid "variable or field declared void" +-msgstr "" +- +-#: cp/decl.c:8049 ++#: cp/decl.c:8139 + msgid "cannot use `::' in parameter declaration" + msgstr "" + + #. Something like struct S { int N::j; }; +-#: cp/decl.c:8094 ++#: cp/decl.c:8184 + #, fuzzy + msgid "invalid use of `::'" + msgstr "ìç Ýãêõñïò ÷ñÞóôçò" + +-#: cp/decl.c:8106 ++#: cp/decl.c:8196 + msgid "function `%D' cannot be declared friend" + msgstr "" + +-#: cp/decl.c:8118 ++#: cp/decl.c:8208 + msgid "can't make `%D' into a method -- not in a class" + msgstr "" + +-#: cp/decl.c:8127 ++#: cp/decl.c:8217 + msgid "function `%D' declared virtual inside a union" + msgstr "" + +-#: cp/decl.c:8136 ++#: cp/decl.c:8226 + msgid "`%D' cannot be declared virtual, since it is always static" + msgstr "" + +-#: cp/decl.c:8215 ++#: cp/decl.c:8305 + msgid "field `%D' has incomplete type" + msgstr "" + +-#: cp/decl.c:8217 ++#: cp/decl.c:8307 + msgid "name `%T' has incomplete type" + msgstr "" + +-#: cp/decl.c:8226 ++#: cp/decl.c:8316 + msgid " in instantiation of template `%T'" + msgstr "" + +-#: cp/decl.c:8236 ++#: cp/decl.c:8326 + #, c-format + msgid "`%s' is neither function nor member function; cannot be declared friend" + msgstr "" + +-#: cp/decl.c:8247 ++#: cp/decl.c:8337 + msgid "member functions are implicitly friends of their class" + msgstr "" + +@@ -14910,91 +14959,91 @@ + #. the rest of the compiler does not correctly + #. handle the initialization unless the member is + #. static so we make it static below. +-#: cp/decl.c:8287 ++#: cp/decl.c:8377 + msgid "ISO C++ forbids initialization of member `%D'" + msgstr "" + +-#: cp/decl.c:8289 ++#: cp/decl.c:8379 + msgid "making `%D' static" + msgstr "" + +-#: cp/decl.c:8345 ++#: cp/decl.c:8435 + #, c-format + msgid "storage class `auto' invalid for function `%s'" + msgstr "" + +-#: cp/decl.c:8347 ++#: cp/decl.c:8437 + #, c-format + msgid "storage class `register' invalid for function `%s'" + msgstr "" + +-#: cp/decl.c:8349 ++#: cp/decl.c:8439 + #, fuzzy, c-format + msgid "storage class `__thread' invalid for function `%s'" + msgstr "ìç Ýãêõñç ôÜîç ÷áñáêôÞñùí `%s'" + +-#: cp/decl.c:8360 ++#: cp/decl.c:8450 + #, c-format + msgid "storage class `static' invalid for function `%s' declared out of global scope" + msgstr "" + +-#: cp/decl.c:8362 ++#: cp/decl.c:8452 + #, c-format + msgid "storage class `inline' invalid for function `%s' declared out of global scope" + msgstr "" + +-#: cp/decl.c:8369 ++#: cp/decl.c:8459 + #, c-format + msgid "virtual non-class function `%s'" + msgstr "" + +-#: cp/decl.c:8400 ++#: cp/decl.c:8490 + msgid "cannot declare member function `%D' to have static linkage" + msgstr "" + + #. FIXME need arm citation +-#: cp/decl.c:8406 ++#: cp/decl.c:8496 + msgid "cannot declare static function inside another function" + msgstr "" + +-#: cp/decl.c:8434 ++#: cp/decl.c:8524 + msgid "`static' may not be used when defining (as opposed to declaring) a static data member" + msgstr "" + +-#: cp/decl.c:8440 ++#: cp/decl.c:8530 + msgid "static member `%D' declared `register'" + msgstr "" + +-#: cp/decl.c:8445 ++#: cp/decl.c:8535 + msgid "cannot explicitly declare member `%#D' to have extern linkage" + msgstr "" + +-#: cp/decl.c:8585 ++#: cp/decl.c:8675 + msgid "default argument for `%#D' has type `%T'" + msgstr "" + +-#: cp/decl.c:8588 ++#: cp/decl.c:8678 + msgid "default argument for parameter of type `%T' has type `%T'" + msgstr "" + +-#: cp/decl.c:8605 ++#: cp/decl.c:8695 + msgid "default argument `%E' uses local variable `%D'" + msgstr "" + +-#: cp/decl.c:8649 ++#: cp/decl.c:8739 + #, fuzzy, c-format + msgid "invalid string constant `%E'" + msgstr "ìç ôåñìáôéæìÝíï áëöáñéèìçôéêü óôáèåñÜò" + +-#: cp/decl.c:8651 ++#: cp/decl.c:8741 + msgid "invalid integer constant in parameter list, did you forget to give parameter name?" + msgstr "" + +-#: cp/decl.c:8689 ++#: cp/decl.c:8779 + msgid "parameter `%D' invalidly declared method type" + msgstr "" + +-#: cp/decl.c:8713 ++#: cp/decl.c:8803 + msgid "parameter `%D' includes %s to array of unknown bound `%T'" + msgstr "" + +@@ -15013,94 +15062,94 @@ + #. or implicitly defined), there's no need to worry about their + #. existence. Theoretically, they should never even be + #. instantiated, but that's hard to forestall. +-#: cp/decl.c:8872 ++#: cp/decl.c:8962 + msgid "invalid constructor; you probably meant `%T (const %T&)'" + msgstr "" + +-#: cp/decl.c:9000 ++#: cp/decl.c:9090 + msgid "`%D' must be a nonstatic member function" + msgstr "" + +-#: cp/decl.c:9006 ++#: cp/decl.c:9096 + msgid "`%D' must be either a non-static member function or a non-member function" + msgstr "" + +-#: cp/decl.c:9023 ++#: cp/decl.c:9113 + msgid "`%D' must have an argument of class or enumerated type" + msgstr "" + +-#: cp/decl.c:9058 ++#: cp/decl.c:9148 + #, c-format + msgid "conversion to %s%s will never use a type conversion operator" + msgstr "" + + #. 13.4.0.3 +-#: cp/decl.c:9065 ++#: cp/decl.c:9155 + msgid "ISO C++ prohibits overloading operator ?:" + msgstr "" + +-#: cp/decl.c:9115 ++#: cp/decl.c:9205 + msgid "postfix `%D' must take `int' as its argument" + msgstr "" + +-#: cp/decl.c:9119 ++#: cp/decl.c:9209 + msgid "postfix `%D' must take `int' as its second argument" + msgstr "" + +-#: cp/decl.c:9126 ++#: cp/decl.c:9216 + msgid "`%D' must take either zero or one argument" + msgstr "" + +-#: cp/decl.c:9128 ++#: cp/decl.c:9218 + msgid "`%D' must take either one or two arguments" + msgstr "" + +-#: cp/decl.c:9149 ++#: cp/decl.c:9239 + msgid "prefix `%D' should return `%T'" + msgstr "" + +-#: cp/decl.c:9155 ++#: cp/decl.c:9245 + msgid "postfix `%D' should return `%T'" + msgstr "" + +-#: cp/decl.c:9164 ++#: cp/decl.c:9254 + msgid "`%D' must take `void'" + msgstr "" + +-#: cp/decl.c:9166 cp/decl.c:9174 ++#: cp/decl.c:9256 cp/decl.c:9264 + msgid "`%D' must take exactly one argument" + msgstr "" + +-#: cp/decl.c:9176 ++#: cp/decl.c:9266 + msgid "`%D' must take exactly two arguments" + msgstr "" + +-#: cp/decl.c:9184 ++#: cp/decl.c:9274 + msgid "user-defined `%D' always evaluates both arguments" + msgstr "" + +-#: cp/decl.c:9198 ++#: cp/decl.c:9288 + msgid "`%D' should return by value" + msgstr "" + +-#: cp/decl.c:9210 cp/decl.c:9213 ++#: cp/decl.c:9300 cp/decl.c:9303 + msgid "`%D' cannot have default arguments" + msgstr "" + +-#: cp/decl.c:9273 ++#: cp/decl.c:9363 + msgid "using typedef-name `%D' after `%s'" + msgstr "" + +-#: cp/decl.c:9279 ++#: cp/decl.c:9369 + msgid "using template type parameter `%T' after `%s'" + msgstr "" + +-#: cp/decl.c:9287 ++#: cp/decl.c:9377 + #, fuzzy + msgid "`%T' referred to as `%s'" + msgstr "ôï `%s' åßíáé ðñüãïíïò ôïõ `%s'" + +-#: cp/decl.c:9293 ++#: cp/decl.c:9383 + msgid "`%T' referred to as enum" + msgstr "" + +@@ -15111,51 +15160,51 @@ + #. void f(class C); // No template header here + #. + #. then the required template argument is missing. +-#: cp/decl.c:9308 ++#: cp/decl.c:9398 + #, fuzzy + msgid "template argument required for `%s %T'" + msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'" + +-#: cp/decl.c:9453 ++#: cp/decl.c:9543 + msgid "use of enum `%#D' without previous declaration" + msgstr "" + +-#: cp/decl.c:9471 ++#: cp/decl.c:9561 + #, fuzzy + msgid "redeclaration of `%T' as a non-template" + msgstr "Ç ëåéôïõñãßá äåí õðïóôçñßæåôáé" + +-#: cp/decl.c:9517 ++#: cp/decl.c:9607 + msgid "derived union `%T' invalid" + msgstr "" + +-#: cp/decl.c:9570 ++#: cp/decl.c:9660 + msgid "base type `%T' fails to be a struct or class type" + msgstr "" + +-#: cp/decl.c:9578 ++#: cp/decl.c:9668 + msgid "recursive type `%T' undefined" + msgstr "" + +-#: cp/decl.c:9580 ++#: cp/decl.c:9670 + #, fuzzy + msgid "duplicate base type `%T' invalid" + msgstr "äéðëüò ïñéóìüò óõíüëïõ" + +-#: cp/decl.c:9658 ++#: cp/decl.c:9748 + msgid "Java class '%T' cannot have multiple bases" + msgstr "" + +-#: cp/decl.c:9660 ++#: cp/decl.c:9750 + msgid "Java class '%T' cannot have virtual bases" + msgstr "" + +-#: cp/decl.c:9700 ++#: cp/decl.c:9790 + #, fuzzy + msgid "multiple definition of `%#T'" + msgstr "áäõíáìßá áíïßãìáôïò áñ÷åßïõ ïñéóìïý locale `%s'" + +-#: cp/decl.c:9701 ++#: cp/decl.c:9791 + #, fuzzy + msgid "%Jprevious definition here" + msgstr "êáíÝíáò ïñéóìüò ôïõ `UNDEFINED'" +@@ -15164,48 +15213,48 @@ + #. + #. IF no integral type can represent all the enumerator values, the + #. enumeration is ill-formed. +-#: cp/decl.c:9836 ++#: cp/decl.c:9926 + msgid "no integral type can represent all of the enumerator values for `%T'" + msgstr "" + +-#: cp/decl.c:9926 ++#: cp/decl.c:10023 + msgid "enumerator value for `%D' not integer constant" + msgstr "" + +-#: cp/decl.c:9946 ++#: cp/decl.c:10043 + msgid "overflow in enumeration values at `%D'" + msgstr "" + +-#: cp/decl.c:10015 ++#: cp/decl.c:10112 + msgid "return type `%#T' is incomplete" + msgstr "" + +-#: cp/decl.c:10133 ++#: cp/decl.c:10230 + msgid "return type for `main' changed to `int'" + msgstr "" + +-#: cp/decl.c:10162 ++#: cp/decl.c:10259 + msgid "`%D' implicitly declared before its definition" + msgstr "" + +-#: cp/decl.c:10184 cp/typeck.c:6071 ++#: cp/decl.c:10281 cp/typeck.c:6092 + msgid "`operator=' should return a reference to `*this'" + msgstr "" + +-#: cp/decl.c:10453 ++#: cp/decl.c:10550 + msgid "parameter `%D' declared void" + msgstr "" + +-#: cp/decl.c:10919 ++#: cp/decl.c:11016 + #, fuzzy + msgid "invalid member function declaration" + msgstr "ìç Ýãêõñïò áñéèìüò áðü êåíÝò ãñáììÝò: `%s'" + +-#: cp/decl.c:10936 ++#: cp/decl.c:11033 + msgid "`%D' is already defined in class `%T'" + msgstr "" + +-#: cp/decl.c:11149 ++#: cp/decl.c:11246 + msgid "static member function `%#D' declared with type qualifiers" + msgstr "" + +@@ -15253,7 +15302,7 @@ + msgid "invalid use of `virtual' in template declaration of `%#D'" + msgstr "" + +-#: cp/decl2.c:541 cp/pt.c:2834 ++#: cp/decl2.c:541 cp/pt.c:2878 + msgid "template declaration of `%#D'" + msgstr "" + +@@ -15328,40 +15377,40 @@ + msgid "anonymous struct not inside named type" + msgstr "" + +-#: cp/decl2.c:1218 ++#: cp/decl2.c:1224 + msgid "namespace-scope anonymous aggregates must be static" + msgstr "" + +-#: cp/decl2.c:1225 ++#: cp/decl2.c:1231 + msgid "anonymous union with no members" + msgstr "" + +-#: cp/decl2.c:1259 ++#: cp/decl2.c:1265 + msgid "`operator new' must return type `%T'" + msgstr "" + +-#: cp/decl2.c:1267 ++#: cp/decl2.c:1273 + msgid "`operator new' takes type `size_t' (`%T') as first parameter" + msgstr "" + +-#: cp/decl2.c:1293 ++#: cp/decl2.c:1299 + msgid "`operator delete' must return type `%T'" + msgstr "" + +-#: cp/decl2.c:1301 ++#: cp/decl2.c:1307 + msgid "`operator delete' takes type `%T' as first parameter" + msgstr "" + +-#: cp/decl2.c:2810 ++#: cp/decl2.c:2816 + msgid "inline function `%D' used but never defined" + msgstr "" + +-#: cp/decl2.c:2956 ++#: cp/decl2.c:2962 + msgid "default argument missing for parameter %P of `%+#D'" + msgstr "" + + #. damn ICE suppression +-#: cp/error.c:2387 ++#: cp/error.c:2385 + #, c-format + msgid "unexpected letter `%c' in locate_error\n" + msgstr "" +@@ -15388,7 +15437,7 @@ + msgid "throwing NULL, which has integral, not pointer type" + msgstr "" + +-#: cp/except.c:598 cp/init.c:2038 ++#: cp/except.c:598 cp/init.c:2047 + msgid "`%D' should never be overloaded" + msgstr "" + +@@ -15469,7 +15518,7 @@ + msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning" + msgstr "" + +-#: cp/g++spec.c:229 java/jvspec.c:415 ++#: cp/g++spec.c:232 java/jvspec.c:415 + #, fuzzy, c-format + msgid "argument to `%s' missing\n" + msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá" +@@ -15604,64 +15653,64 @@ + msgid "incomplete type `%T' does not have member `%D'" + msgstr "" + +-#: cp/init.c:1459 ++#: cp/init.c:1460 + #, fuzzy + msgid "`%D' is not a member of type `%T'" + msgstr "äåí åßóôå ìÝëïò ôçò ïìÜäáò `%s'" + +-#: cp/init.c:1478 ++#: cp/init.c:1487 + #, fuzzy + msgid "invalid pointer to bit-field `%D'" + msgstr "áêáôÜëëçëïò ôýðïò äéêôýïõ :`%s'\n" + +-#: cp/init.c:1580 ++#: cp/init.c:1589 + #, fuzzy + msgid "invalid use of non-static member function `%D'" + msgstr "ìç Ýãêõñïò áñéèìüò áðü óôÞëåò: `%s'" + +-#: cp/init.c:1586 cp/semantics.c:1236 ++#: cp/init.c:1595 cp/semantics.c:1236 + #, fuzzy + msgid "invalid use of non-static data member `%D'" + msgstr "ìç Ýãêõñïò áñéèìüò áðü óôÞëåò: `%s'" + +-#: cp/init.c:1725 ++#: cp/init.c:1734 + msgid "new of array type fails to specify size" + msgstr "" + +-#: cp/init.c:1736 ++#: cp/init.c:1745 + msgid "size in array new must have integral type" + msgstr "" + +-#: cp/init.c:1742 ++#: cp/init.c:1751 + msgid "zero size array reserves no space" + msgstr "" + +-#: cp/init.c:1809 ++#: cp/init.c:1818 + msgid "new cannot be applied to a reference type" + msgstr "" + +-#: cp/init.c:1815 ++#: cp/init.c:1824 + msgid "new cannot be applied to a function type" + msgstr "" + +-#: cp/init.c:1861 ++#: cp/init.c:1870 + msgid "call to Java constructor, while `jclass' undefined" + msgstr "" + +-#: cp/init.c:1877 ++#: cp/init.c:1886 + msgid "can't find class$" + msgstr "" + +-#: cp/init.c:2004 ++#: cp/init.c:2013 + #, fuzzy + msgid "invalid type `void' for new" + msgstr "ìç Ýãêõñç êáôÜóôáóç ãéá ôçí dlopen()" + +-#: cp/init.c:2014 ++#: cp/init.c:2023 + msgid "uninitialized const in `new' of `%#T'" + msgstr "" + +-#: cp/init.c:2033 ++#: cp/init.c:2042 + #, c-format + msgid "call to Java constructor with `%s' undefined" + msgstr "" +@@ -15669,42 +15718,42 @@ + #. See PR 15967. This should never happen (and it is + #. fixed correctly in mainline), but on the release branch + #. we prefer this less-intrusive approacch. +-#: cp/init.c:2077 ++#: cp/init.c:2086 + msgid "no suitable or ambiguous `%D' found in class `%T'" + msgstr "" + + # src/getopt.c:628 + # src/getopt.c:628 +-#: cp/init.c:2083 ++#: cp/init.c:2092 + #, fuzzy + msgid "request for member `%D' is ambiguous" + msgstr "%s: ç åðéëïãÞ `%s' åßíáé áóáöÞò\n" + +-#: cp/init.c:2203 ++#: cp/init.c:2212 + msgid "ISO C++ forbids initialization in array new" + msgstr "" + +-#: cp/init.c:2677 ++#: cp/init.c:2686 + msgid "initializer ends prematurely" + msgstr "" + +-#: cp/init.c:2734 ++#: cp/init.c:2743 + msgid "cannot initialize multi-dimensional array with initializer" + msgstr "" + +-#: cp/init.c:2895 ++#: cp/init.c:2904 + msgid "possible problem detected in invocation of delete operator:" + msgstr "" + +-#: cp/init.c:2898 ++#: cp/init.c:2907 + msgid "neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined." + msgstr "" + +-#: cp/init.c:2919 ++#: cp/init.c:2928 + msgid "unknown array size in delete" + msgstr "" + +-#: cp/init.c:3184 ++#: cp/init.c:3193 + msgid "type to vector delete is neither pointer or array type" + msgstr "" + +@@ -15771,15 +15820,15 @@ + msgid "(if you use `-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)" + msgstr "" + +-#: cp/mangle.c:2037 ++#: cp/mangle.c:2050 + msgid "call_expr cannot be mangled due to a defect in the C++ ABI" + msgstr "" + +-#: cp/mangle.c:2090 ++#: cp/mangle.c:2103 + msgid "omitted middle operand to `?:' operand cannot be mangled" + msgstr "" + +-#: cp/mangle.c:2389 ++#: cp/mangle.c:2402 + msgid "the mangled name of `%D' will change in a future version of GCC" + msgstr "" + +@@ -15927,7 +15976,7 @@ + + #. It's a nested name with template parameter dependent scope. + #. This can only be using-declaration for class member. +-#: cp/name-lookup.c:2126 cp/name-lookup.c:2140 cp/name-lookup.c:3380 ++#: cp/name-lookup.c:2126 cp/name-lookup.c:2140 cp/name-lookup.c:3362 + #, fuzzy + msgid "`%T' is not a namespace" + msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï" +@@ -15965,94 +16014,94 @@ + msgid "using-declaration cannot name destructor" + msgstr "óõíôáêôéêü óöÜëìá óôïí ïñéóìü êëÜóçò ÷áñáêôÞñùí" + +-#: cp/name-lookup.c:3005 ++#: cp/name-lookup.c:2984 + msgid "declaration of `%D' not in a namespace surrounding `%D'" + msgstr "" + +-#: cp/name-lookup.c:3045 ++#: cp/name-lookup.c:3024 + msgid "`%D' should have been declared inside `%D'" + msgstr "" + +-#: cp/name-lookup.c:3109 ++#: cp/name-lookup.c:3088 + msgid "namespace alias `%D' not allowed here, assuming `%D'" + msgstr "" + + #. The parser did not find it, so it's not there. +-#: cp/name-lookup.c:3224 ++#: cp/name-lookup.c:3203 + #, fuzzy + msgid "unknown namespace `%D'" + msgstr "Üãíùóôï óåô `%s'" + +-#: cp/name-lookup.c:3374 ++#: cp/name-lookup.c:3356 + msgid "namespace `%T' undeclared" + msgstr "" + +-#: cp/name-lookup.c:3407 ++#: cp/name-lookup.c:3389 + msgid "strong using only meaningful at namespace scope" + msgstr "" + +-#: cp/name-lookup.c:3414 ++#: cp/name-lookup.c:3396 + #, fuzzy + msgid "`%D' attribute directive ignored" + msgstr "ôï `%s' åßíáé ðñüãïíïò ôïõ `%s'" + + # src/getopt.c:628 + # src/getopt.c:628 +-#: cp/name-lookup.c:3547 ++#: cp/name-lookup.c:3529 + #, fuzzy + msgid "use of `%D' is ambiguous" + msgstr "%s: ç åðéëïãÞ `%s' åßíáé áóáöÞò\n" + +-#: cp/name-lookup.c:3548 ++#: cp/name-lookup.c:3530 + msgid " first declared as `%#D' here" + msgstr "" + +-#: cp/name-lookup.c:3551 ++#: cp/name-lookup.c:3533 + msgid " also declared as `%#D' here" + msgstr "" + +-#: cp/name-lookup.c:3566 ++#: cp/name-lookup.c:3548 + msgid "`%D' denotes an ambiguous type" + msgstr "" + +-#: cp/name-lookup.c:3567 ++#: cp/name-lookup.c:3549 + msgid "%J first type here" + msgstr "" + +-#: cp/name-lookup.c:3568 ++#: cp/name-lookup.c:3550 + msgid "%J other type here" + msgstr "" + + #. This happens for A::B where B is a template, and there are no + #. template arguments. +-#: cp/name-lookup.c:3633 cp/typeck.c:1792 ++#: cp/name-lookup.c:3615 cp/typeck.c:1792 + #, fuzzy + msgid "invalid use of `%D'" + msgstr "Ìç Ýãêõñç çìåñïìçíßá `%s'." + +-#: cp/name-lookup.c:3674 ++#: cp/name-lookup.c:3656 + #, fuzzy + msgid "`%D::%D' is not a template" + msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï" + +-#: cp/name-lookup.c:3691 ++#: cp/name-lookup.c:3673 + msgid "`%D' undeclared in namespace `%D'" + msgstr "" + +-#: cp/name-lookup.c:4153 ++#: cp/name-lookup.c:4135 + #, fuzzy + msgid "`%D' is not a function," + msgstr "Ôï `%s' äåí åßíáé êáôÜëïãïò." + +-#: cp/name-lookup.c:4154 ++#: cp/name-lookup.c:4136 + msgid " conflict with `%D'" + msgstr "" + +-#: cp/name-lookup.c:4911 ++#: cp/name-lookup.c:4893 + msgid "XXX entering pop_everything ()\n" + msgstr "" + +-#: cp/name-lookup.c:4920 ++#: cp/name-lookup.c:4902 + msgid "XXX leaving pop_everything ()\n" + msgstr "" + +@@ -16066,7 +16115,7 @@ + msgid "`%D::%D' has not been declared" + msgstr "Äåí ìðïñåß íá ôåèåß ç çìåñïìçíßá." + +-#: cp/parser.c:1809 cp/semantics.c:2308 ++#: cp/parser.c:1809 cp/semantics.c:2305 + #, fuzzy + msgid "`::%D' has not been declared" + msgstr "Äåí ìðïñåß íá ôåèåß ç çìåñïìçíßá." +@@ -16094,7 +16143,7 @@ + msgid "new types may not be defined in a return type" + msgstr "" + +-#: cp/parser.c:1888 cp/pt.c:4196 ++#: cp/parser.c:1888 cp/pt.c:4238 + #, fuzzy + msgid "`%T' is not a template" + msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï" +@@ -16144,191 +16193,191 @@ + msgid "typedef-name `%D' used as destructor declarator" + msgstr "" + +-#: cp/parser.c:3638 ++#: cp/parser.c:3648 + msgid "ISO C++ forbids compound-literals" + msgstr "" + +-#: cp/parser.c:4461 ++#: cp/parser.c:4498 + msgid "array bound forbidden after parenthesized type-id" + msgstr "" + +-#: cp/parser.c:4462 ++#: cp/parser.c:4499 + msgid "try removing the parentheses around the type-id" + msgstr "" + +-#: cp/parser.c:4624 ++#: cp/parser.c:4661 + msgid "expression in new-declarator must have integral or enumeration type" + msgstr "" + +-#: cp/parser.c:4805 ++#: cp/parser.c:4842 + #, fuzzy + msgid "use of old-style cast" + msgstr "ðáëáéïý åßäïõò èÝóç" + +-#: cp/parser.c:5550 ++#: cp/parser.c:5587 + #, c-format + msgid "case label `%E' not within a switch statement" + msgstr "" + +-#: cp/parser.c:6092 ++#: cp/parser.c:6130 + msgid "ISO C++ forbids computed gotos" + msgstr "" + +-#: cp/parser.c:6212 ++#: cp/parser.c:6250 + msgid "extra `;'" + msgstr "" + +-#: cp/parser.c:6507 ++#: cp/parser.c:6545 + msgid "mixing declarations and function-definitions is forbidden" + msgstr "" + +-#: cp/parser.c:6645 ++#: cp/parser.c:6683 + #, fuzzy + msgid "duplicate `friend'" + msgstr "äéðëü êëåéäß" + +-#: cp/parser.c:6794 ++#: cp/parser.c:6832 + msgid "class definition may not be declared a friend" + msgstr "" + +-#: cp/parser.c:7109 ++#: cp/parser.c:7147 + msgid "only constructors take base initializers" + msgstr "" + +-#: cp/parser.c:7160 ++#: cp/parser.c:7198 + msgid "anachronistic old-style base class initializer" + msgstr "" + +-#: cp/parser.c:7201 ++#: cp/parser.c:7239 + msgid "keyword `typename' not allowed in this context (a qualified member initializer is implicitly a type)" + msgstr "" + + #. Warn that we do not support `export'. +-#: cp/parser.c:7563 ++#: cp/parser.c:7601 + msgid "keyword `export' not implemented, and will be ignored" + msgstr "" + + #. Otherwise, emit an error about the invalid digraph, but continue + #. parsing because we got our argument list. +-#: cp/parser.c:7923 ++#: cp/parser.c:7961 + #, fuzzy + msgid "`<::' cannot begin a template-argument list" + msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò." + +-#: cp/parser.c:7924 ++#: cp/parser.c:7962 + msgid "`<:' is an alternate spelling for `['. Insert whitespace between `<' and `::'" + msgstr "" + +-#: cp/parser.c:7931 ++#: cp/parser.c:7969 + msgid "(if you use `-fpermissive' G++ will accept your code)" + msgstr "" + + #. Explain what went wrong. +-#: cp/parser.c:8106 ++#: cp/parser.c:8145 + msgid "non-template `%D' used as template" + msgstr "" + +-#: cp/parser.c:8107 ++#: cp/parser.c:8146 + msgid "use `%T::template %D' to indicate that it is a template" + msgstr "" + +-#: cp/parser.c:9058 ++#: cp/parser.c:9102 + msgid "using `typename' outside of template" + msgstr "" + +-#: cp/parser.c:9180 ++#: cp/parser.c:9224 + #, fuzzy + msgid "expected type-name" + msgstr "%s: áíáìåíüôáí áñéèìçôéêÞ ôéìÞ." + +-#: cp/parser.c:9239 ++#: cp/parser.c:9283 + msgid "type attributes are honored only at type definition" + msgstr "" + + #. [namespace.udecl] + #. + #. A using declaration shall not name a template-id. +-#: cp/parser.c:9622 ++#: cp/parser.c:9666 + msgid "a template-id may not appear in a using-declaration" + msgstr "" + +-#: cp/parser.c:9949 ++#: cp/parser.c:9986 + msgid "an asm-specification is not allowed on a function-definition" + msgstr "" + +-#: cp/parser.c:9951 ++#: cp/parser.c:9988 + msgid "attributes are not allowed on a function-definition" + msgstr "" + +-#: cp/parser.c:10084 ++#: cp/parser.c:10121 + msgid "attributes after parenthesized initializer ignored" + msgstr "" + +-#: cp/parser.c:10540 ++#: cp/parser.c:10591 + #, fuzzy + msgid "`%T::%D' is not a type" + msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï" + + # src/grep.c:785 src/grep.c:792 + # src/grep.c:1060 src/grep.c:1067 src/grep.c:1076 +-#: cp/parser.c:11288 ++#: cp/parser.c:11341 + #, fuzzy + msgid "file ends in default argument" + msgstr "ìç Ýãêõñï üñéóìá ìÞêïõò ðåñéå÷ïìÝíïõ" + +-#: cp/parser.c:11344 ++#: cp/parser.c:11397 + msgid "deprecated use of default argument for parameter of non-function" + msgstr "" + +-#: cp/parser.c:11347 ++#: cp/parser.c:11400 + msgid "default arguments are only permitted for function parameters" + msgstr "" + +-#: cp/parser.c:12078 ++#: cp/parser.c:12166 + msgid "declaration of `%D' in `%D' which does not enclose `%D'" + msgstr "" + +-#: cp/parser.c:12091 ++#: cp/parser.c:12179 + msgid "extra qualification ignored" + msgstr "" + +-#: cp/parser.c:12102 ++#: cp/parser.c:12190 + msgid "an explicit specialization must be preceded by 'template <>'" + msgstr "" + +-#: cp/parser.c:12385 ++#: cp/parser.c:12473 + msgid "extra semicolon" + msgstr "" + +-#: cp/parser.c:12403 ++#: cp/parser.c:12491 + msgid "a class-key must be used when declaring a friend" + msgstr "" + +-#: cp/parser.c:12434 ++#: cp/parser.c:12522 + #, fuzzy + msgid "friend declaration does not name a class or function" + msgstr "óõíôáêôéêü óöÜëìá óôïí ïñéóìü êëÜóçò ÷áñáêôÞñùí" + +-#: cp/parser.c:12605 ++#: cp/parser.c:12694 + msgid "pure-specifier on function-definition" + msgstr "" + +-#: cp/parser.c:12878 ++#: cp/parser.c:12967 + msgid "keyword `typename' not allowed outside of templates" + msgstr "" + +-#: cp/parser.c:12880 ++#: cp/parser.c:12969 + msgid "keyword `typename' not allowed in this context (the base class is implicitly a type)" + msgstr "" + + # src/getopt.c:628 + # src/getopt.c:628 +-#: cp/parser.c:13700 ++#: cp/parser.c:13790 + #, fuzzy + msgid "reference to `%D' is ambiguous" + msgstr "%s: ç åðéëïãÞ `%s' åßíáé áóáöÞò\n" + +-#: cp/parser.c:13874 ++#: cp/parser.c:13964 + #, fuzzy + msgid "too few template-parameter-lists" + msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'" +@@ -16337,47 +16386,47 @@ + #. something like: + #. + #. template template void S::f(); +-#: cp/parser.c:13889 ++#: cp/parser.c:13979 + msgid "too many template-parameter-lists" + msgstr "" + + #. If begin_function_definition didn't like the definition, skip + #. the entire function. +-#: cp/parser.c:14185 ++#: cp/parser.c:14275 + #, fuzzy + msgid "invalid function declaration" + msgstr "Ìç Ýãêõñç áíôáëëáãÞ" + + #. Issue an error message. +-#: cp/parser.c:14222 ++#: cp/parser.c:14312 + #, fuzzy + msgid "named return values are no longer supported" + msgstr "áñ÷åßá fifo äåí õðïóôçñßæïíôáé" + +-#: cp/parser.c:14561 ++#: cp/parser.c:14651 + msgid "`>>' should be `> >' within a nested template argument list" + msgstr "" + + #. If this is not a nested template argument list, the '>>' is + #. a typo for '>'. Emit an error message and continue. +-#: cp/parser.c:14569 ++#: cp/parser.c:14659 + msgid "spurious `>>', use `>' to terminate a template argument list" + msgstr "" + +-#: cp/parser.c:14574 ++#: cp/parser.c:14664 + msgid "missing `>' to terminate the template argument list" + msgstr "" + +-#: cp/parser.c:15062 ++#: cp/parser.c:15149 + #, fuzzy + msgid "`%s' tag used in naming `%#T'" + msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'" + +-#: cp/parser.c:15082 ++#: cp/parser.c:15169 + msgid "%D redeclared with different access" + msgstr "" + +-#: cp/parser.c:15099 ++#: cp/parser.c:15186 + msgid "`template' (as a disambiguator) is only allowed within templates" + msgstr "" + +@@ -16398,83 +16447,87 @@ + msgid "enclosing class templates are not explicitly specialized" + msgstr "" + +-#: cp/pt.c:739 cp/pt.c:780 +-msgid "specializing `%#T' in different namespace" ++#: cp/pt.c:733 ++msgid "specialization of `%D' in different namespace" + msgstr "" + +-#: cp/pt.c:740 cp/pt.c:781 ++#: cp/pt.c:734 cp/pt.c:803 + #, fuzzy + msgid " from definition of `%#D'" + msgstr "êáíÝíáò ïñéóìüò ôïõ `UNDEFINED'" + +-#: cp/pt.c:748 ++#: cp/pt.c:770 + msgid "specialization of `%T' after instantiation" + msgstr "" + +-#: cp/pt.c:795 ++#: cp/pt.c:802 ++msgid "specializing `%#T' in different namespace" ++msgstr "" ++ ++#: cp/pt.c:817 + #, fuzzy + msgid "specialization `%T' after instantiation `%T'" + msgstr "äéðëüò ïñéóìüò óõíüëïõ" + +-#: cp/pt.c:807 ++#: cp/pt.c:829 + msgid "explicit specialization of non-template `%T'" + msgstr "" + +-#: cp/pt.c:1067 ++#: cp/pt.c:1089 + msgid "specialization of %D after instantiation" + msgstr "" + +-#: cp/pt.c:1192 ++#: cp/pt.c:1220 + msgid "%s %+#D" + msgstr "" + +-#: cp/pt.c:1241 ++#: cp/pt.c:1269 + msgid "`%D' is not a function template" + msgstr "" + +-#: cp/pt.c:1389 ++#: cp/pt.c:1417 + msgid "template-id `%D' for `%+D' does not match any template declaration" + msgstr "" + +-#: cp/pt.c:1397 ++#: cp/pt.c:1425 + msgid "ambiguous template specialization `%D' for `%+D'" + msgstr "" + + #. This case handles bogus declarations like template <> + #. template void f(); +-#: cp/pt.c:1620 cp/pt.c:1694 ++#: cp/pt.c:1648 cp/pt.c:1722 + msgid "template-id `%D' in declaration of primary template" + msgstr "" + +-#: cp/pt.c:1633 ++#: cp/pt.c:1661 + msgid "template parameter list used in explicit instantiation" + msgstr "" + +-#: cp/pt.c:1639 ++#: cp/pt.c:1667 + msgid "definition provided for explicit instantiation" + msgstr "" + +-#: cp/pt.c:1645 ++#: cp/pt.c:1673 + msgid "too many template parameter lists in declaration of `%D'" + msgstr "" + +-#: cp/pt.c:1661 ++#: cp/pt.c:1689 + msgid "too few template parameter lists in declaration of `%D'" + msgstr "" + +-#: cp/pt.c:1678 ++#: cp/pt.c:1706 + msgid "explicit specialization not preceded by `template <>'" + msgstr "" + +-#: cp/pt.c:1691 ++#: cp/pt.c:1719 + msgid "partial specialization `%D' of function template" + msgstr "" + +-#: cp/pt.c:1723 ++#: cp/pt.c:1751 + msgid "default argument specified in explicit specialization" + msgstr "" + +-#: cp/pt.c:1727 ++#: cp/pt.c:1755 + msgid "template specialization with C linkage" + msgstr "" + +@@ -16486,54 +16539,54 @@ + #. program is ill-formed. + #. + #. Similar language is found in [temp.explicit]. +-#: cp/pt.c:1811 ++#: cp/pt.c:1839 + msgid "specialization of implicitly-declared special member function" + msgstr "" + +-#: cp/pt.c:1855 ++#: cp/pt.c:1883 + msgid "no member function `%D' declared in `%T'" + msgstr "" + + #. There are two many template parameter lists. +-#: cp/pt.c:2005 ++#: cp/pt.c:2033 + msgid "too many template parameter lists in declaration of `%T'" + msgstr "" + +-#: cp/pt.c:2098 ++#: cp/pt.c:2126 + msgid " shadows template parm `%#D'" + msgstr "" + +-#: cp/pt.c:2495 ++#: cp/pt.c:2523 + msgid "template parameters not used in partial specialization:" + msgstr "" + +-#: cp/pt.c:2499 ++#: cp/pt.c:2527 + msgid " `%D'" + msgstr " `%D'" + +-#: cp/pt.c:2511 ++#: cp/pt.c:2539 + msgid "partial specialization `%T' does not specialize any template arguments" + msgstr "" + +-#: cp/pt.c:2536 ++#: cp/pt.c:2564 + #, c-format + msgid "template argument `%E' involves template parameter(s)" + msgstr "" + +-#: cp/pt.c:2580 ++#: cp/pt.c:2608 + msgid "type `%T' of template argument `%E' depends on template parameter(s)" + msgstr "" + +-#: cp/pt.c:2665 ++#: cp/pt.c:2693 + #, fuzzy + msgid "no default argument for `%D'" + msgstr "Ç ðáñÜìåôñïò `%s' äåí åßíáé Ýãêõñç." + +-#: cp/pt.c:2814 ++#: cp/pt.c:2842 + msgid "template with C linkage" + msgstr "" + +-#: cp/pt.c:2817 ++#: cp/pt.c:2845 + #, fuzzy + msgid "template class without a name" + msgstr "ìç ôåñìáôéæüìåíï üíïìá âÜñïõò" +@@ -16541,56 +16594,66 @@ + #. [temp.mem] + #. + #. A destructor shall not be a member template. +-#: cp/pt.c:2824 ++#: cp/pt.c:2853 + msgid "destructor `%D' declared as member template" + msgstr "" + +-#: cp/pt.c:2904 ++#. [basic.stc.dynamic.allocation] ++#. ++#. An allocation function can be a function ++#. template. ... Template allocation functions shall ++#. have two or more parameters. ++#: cp/pt.c:2868 ++#, fuzzy ++msgid "invalid template declaration of `%D'" ++msgstr "ìç Ýãêõñïò áñéèìüò áðü êåíÝò ãñáììÝò: `%s'" ++ ++#: cp/pt.c:2948 + msgid "`%D' does not declare a template type" + msgstr "" + +-#: cp/pt.c:2910 ++#: cp/pt.c:2954 + #, fuzzy + msgid "template definition of non-template `%#D'" + msgstr "áäõíáìßá áíïßãìáôïò áñ÷åßïõ ïñéóìïý locale `%s'" + +-#: cp/pt.c:2951 ++#: cp/pt.c:2995 + msgid "expected %d levels of template parms for `%#D', got %d" + msgstr "" + +-#: cp/pt.c:2963 ++#: cp/pt.c:3007 + msgid "got %d template parameters for `%#D'" + msgstr "" + +-#: cp/pt.c:2966 ++#: cp/pt.c:3010 + msgid "got %d template parameters for `%#T'" + msgstr "" + +-#: cp/pt.c:2968 ++#: cp/pt.c:3012 + #, c-format + msgid " but %d required" + msgstr " áëëÜ %d áðáéôïýíôáé" + +-#: cp/pt.c:3053 ++#: cp/pt.c:3097 + #, fuzzy + msgid "`%T' is not a template type" + msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï" + +-#: cp/pt.c:3069 ++#: cp/pt.c:3113 + msgid "previous declaration `%D'" + msgstr "" + +-#: cp/pt.c:3070 ++#: cp/pt.c:3114 + #, c-format + msgid "used %d template parameter%s instead of %d" + msgstr "" + +-#: cp/pt.c:3086 ++#: cp/pt.c:3130 + #, fuzzy + msgid "template parameter `%#D'" + msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'" + +-#: cp/pt.c:3087 ++#: cp/pt.c:3131 + msgid "redeclared here as `%#D'" + msgstr "" + +@@ -16598,295 +16661,305 @@ + #. + #. A template-parameter may not be given default arguments + #. by two different declarations in the same scope. +-#: cp/pt.c:3097 ++#: cp/pt.c:3141 + msgid "redefinition of default argument for `%#D'" + msgstr "" + +-#: cp/pt.c:3098 ++#: cp/pt.c:3142 + msgid "%J original definition appeared here" + msgstr "" + +-#: cp/pt.c:3246 ++#: cp/pt.c:3288 + #, fuzzy, c-format + msgid "`%E' is not a valid template argument" + msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò." + +-#: cp/pt.c:3250 ++#: cp/pt.c:3292 + msgid "it must be the address of a function with external linkage" + msgstr "" + +-#: cp/pt.c:3252 ++#: cp/pt.c:3294 + msgid "it must be the address of an object with external linkage" + msgstr "" + +-#: cp/pt.c:3255 ++#: cp/pt.c:3297 + msgid "it must be a pointer-to-member of the form `&X::Y'" + msgstr "" + +-#: cp/pt.c:3266 ++#: cp/pt.c:3308 + #, c-format + msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage" + msgstr "" + +-#: cp/pt.c:3281 ++#: cp/pt.c:3323 + #, c-format + msgid "address of non-extern `%E' cannot be used as template argument" + msgstr "" + +-#: cp/pt.c:3290 ++#: cp/pt.c:3332 + #, c-format + msgid "non-constant `%E' cannot be used as template argument" + msgstr "" + +-#: cp/pt.c:3298 ++#: cp/pt.c:3340 + msgid "type '%T' cannot be used as a value for a non-type template-parameter" + msgstr "" + + # src/grep.c:785 src/grep.c:792 + # src/grep.c:1060 src/grep.c:1067 src/grep.c:1076 +-#: cp/pt.c:3301 ++#: cp/pt.c:3343 + #, fuzzy + msgid "invalid use of '%D' as a non-type template-argument" + msgstr "ìç Ýãêõñï üñéóìá ìÞêïõò ðåñéå÷ïìÝíïõ" + + # src/grep.c:785 src/grep.c:792 + # src/grep.c:1060 src/grep.c:1067 src/grep.c:1076 +-#: cp/pt.c:3303 ++#: cp/pt.c:3345 + #, fuzzy, c-format + msgid "invalid use of '%E' as a non-type template-argument" + msgstr "ìç Ýãêõñï üñéóìá ìÞêïõò ðåñéå÷ïìÝíïõ" + +-#: cp/pt.c:3668 ++#: cp/pt.c:3710 + #, c-format + msgid "to refer to a type member of a template parameter, use `typename %E'" + msgstr "" + +-#: cp/pt.c:3681 cp/pt.c:3699 cp/pt.c:3738 ++#: cp/pt.c:3723 cp/pt.c:3741 cp/pt.c:3780 + msgid "type/value mismatch at argument %d in template parameter list for `%D'" + msgstr "" + +-#: cp/pt.c:3684 ++#: cp/pt.c:3726 + msgid " expected a constant of type `%T', got `%T'" + msgstr "" + +-#: cp/pt.c:3688 ++#: cp/pt.c:3730 + #, fuzzy, c-format + msgid " expected a class template, got `%E'" + msgstr "%s: áíáìåíüôáí áêÝñáéïò ìåôÜ ôï `%c'" + +-#: cp/pt.c:3690 ++#: cp/pt.c:3732 + #, fuzzy, c-format + msgid " expected a type, got `%E'" + msgstr "%s: áíáìåíüôáí áêÝñáéïò ìåôÜ ôï `%c'" + +-#: cp/pt.c:3702 ++#: cp/pt.c:3744 + #, fuzzy + msgid " expected a type, got `%T'" + msgstr "%s: áíáìåíüôáí áêÝñáéïò ìåôÜ ôï `%c'" + +-#: cp/pt.c:3704 ++#: cp/pt.c:3746 + msgid " expected a class template, got `%T'" + msgstr "" + +-#: cp/pt.c:3740 ++#: cp/pt.c:3782 + msgid " expected a template of type `%D', got `%D'" + msgstr "" + +-#: cp/pt.c:3775 ++#: cp/pt.c:3817 + msgid "could not convert template argument `%E' to `%T'" + msgstr "" + +-#: cp/pt.c:3815 ++#: cp/pt.c:3857 + #, fuzzy, c-format + msgid "wrong number of template arguments (%d, should be %d)" + msgstr "ëÜèïò áñéèìüò ïñéóìÜôùí" + +-#: cp/pt.c:3819 ++#: cp/pt.c:3861 + msgid "provided for `%D'" + msgstr "" + +-#: cp/pt.c:3847 ++#: cp/pt.c:3889 + #, fuzzy, c-format + msgid "template argument %d is invalid" + msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá" + +-#: cp/pt.c:4068 ++#: cp/pt.c:4110 + msgid "non-template used as template" + msgstr "" + +-#: cp/pt.c:4208 ++#: cp/pt.c:4250 + msgid "non-template type `%T' used as a template" + msgstr "" + +-#: cp/pt.c:4210 ++#: cp/pt.c:4252 + msgid "for template declaration `%D'" + msgstr "" + +-#: cp/pt.c:4857 ++#: cp/pt.c:4899 + msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'" + msgstr "" + +-#: cp/pt.c:5296 ++#: cp/pt.c:5338 + msgid "ambiguous class template instantiation for `%#T'" + msgstr "" + +-#: cp/pt.c:5302 ++#: cp/pt.c:5344 + msgid "%s %+#T" + msgstr "" + +-#: cp/pt.c:6308 cp/pt.c:6428 ++#: cp/pt.c:6382 + msgid "instantiation of `%D' as type `%T'" + msgstr "" + +-#: cp/pt.c:6470 ++#: cp/pt.c:6542 + #, fuzzy + msgid "invalid parameter type `%T'" + msgstr "Ìç Ýãêõñç ðñïôåñáéüôçôá `%s'" + +-#: cp/pt.c:6472 ++#: cp/pt.c:6544 + msgid "in declaration `%D'" + msgstr "" + +-#: cp/pt.c:6546 ++#: cp/pt.c:6618 + msgid "creating pointer to member function of non-class type `%T'" + msgstr "" + +-#: cp/pt.c:6685 ++#: cp/pt.c:6758 + msgid "creating array with size zero" + msgstr "" + +-#: cp/pt.c:6699 ++#: cp/pt.c:6772 + #, c-format + msgid "creating array with size zero (`%E')" + msgstr "" + +-#: cp/pt.c:6938 ++#: cp/pt.c:7011 + msgid "forming reference to void" + msgstr "" + +-#: cp/pt.c:6940 ++#: cp/pt.c:7013 + msgid "forming %s to reference type `%T'" + msgstr "" + +-#: cp/pt.c:6977 ++#: cp/pt.c:7050 + msgid "creating pointer to member of non-class type `%T'" + msgstr "" + +-#: cp/pt.c:6983 ++#: cp/pt.c:7056 + #, fuzzy + msgid "creating pointer to member reference type `%T'" + msgstr "äåí åßóôå ìÝëïò ôçò ïìÜäáò `%s'" + +-#: cp/pt.c:7069 ++#: cp/pt.c:7142 + #, fuzzy + msgid "creating array of `%T'" + msgstr "äçìéïõñãßá áñ÷åßïõ `%s'\n" + +-#: cp/pt.c:7075 ++#: cp/pt.c:7148 + msgid "creating array of `%T', which is an abstract class type" + msgstr "" + +-#: cp/pt.c:7119 ++#: cp/pt.c:7192 + msgid "`%T' is not a class, struct, or union type" + msgstr "" + +-#: cp/pt.c:7232 ++#: cp/pt.c:7305 + #, c-format + msgid "use of `%s' in template" + msgstr "" + +-#: cp/pt.c:7345 ++#: cp/pt.c:7418 + #, c-format + msgid "dependent-name `%E' is parsed as a non-type, but instantiation yields a type" + msgstr "" + +-#: cp/pt.c:7347 ++#: cp/pt.c:7420 + #, c-format + msgid "say `typename %E' if a type is meant" + msgstr "" + +-#: cp/pt.c:8613 ++#: cp/pt.c:8589 ++#, fuzzy ++msgid "`%T' is not a class or namespace" ++msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï" ++ ++#: cp/pt.c:8592 ++#, fuzzy ++msgid "`%D' is not a class or namespace" ++msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï" ++ ++#: cp/pt.c:8709 + msgid "`%T' uses anonymous type" + msgstr "" + +-#: cp/pt.c:8615 ++#: cp/pt.c:8711 + #, fuzzy + msgid "`%T' uses local type `%T'" + msgstr "ôï `%s' åßíáé ðñüãïíïò ôïõ `%s'" + +-#: cp/pt.c:8623 ++#: cp/pt.c:8719 + #, fuzzy + msgid "`%T' is a variably modified type" + msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï" + +-#: cp/pt.c:8634 ++#: cp/pt.c:8730 + #, fuzzy, c-format + msgid "integral expression `%E' is not constant" + msgstr "ìç ôåñìáôéæìÝíï áëöáñéèìçôéêü óôáèåñÜò" + +-#: cp/pt.c:8639 ++#: cp/pt.c:8735 + msgid " trying to instantiate `%D'" + msgstr "" + +-#: cp/pt.c:9156 ++#: cp/pt.c:9252 + #, fuzzy + msgid "incomplete type unification" + msgstr "Ìåôáãëùôôéóìüò ðñïäéáãñáöþí ôïðéêþí ñõèìßóåùí" + +-#: cp/pt.c:10112 ++#: cp/pt.c:10211 + #, c-format + msgid "use of `%s' in template type unification" + msgstr "" + +-#: cp/pt.c:10546 cp/pt.c:10618 ++#: cp/pt.c:10644 cp/pt.c:10716 + msgid "explicit instantiation of non-template `%#D'" + msgstr "" + +-#: cp/pt.c:10562 cp/pt.c:10613 ++#: cp/pt.c:10660 cp/pt.c:10711 + #, fuzzy + msgid "no matching template for `%D' found" + msgstr "Ï Ýëåã÷ïò ìïíïðáôéïý ãéá ôï `%s' âñÞêå `%s'" + +-#: cp/pt.c:10568 ++#: cp/pt.c:10666 + msgid "explicit instantiation of `%#D'" + msgstr "" + +-#: cp/pt.c:10605 ++#: cp/pt.c:10703 + #, fuzzy + msgid "duplicate explicit instantiation of `%#D'" + msgstr "äéðëüò ïñéóìüò óõíüëïõ" + +-#: cp/pt.c:10627 ++#: cp/pt.c:10725 + msgid "ISO C++ forbids the use of `extern' on explicit instantiations" + msgstr "" + +-#: cp/pt.c:10631 cp/pt.c:10712 ++#: cp/pt.c:10729 cp/pt.c:10810 + msgid "storage class `%D' applied to template instantiation" + msgstr "" + +-#: cp/pt.c:10684 ++#: cp/pt.c:10782 + msgid "explicit instantiation of non-template type `%T'" + msgstr "" + +-#: cp/pt.c:10693 ++#: cp/pt.c:10791 + msgid "explicit instantiation of `%#T' before definition of template" + msgstr "" + +-#: cp/pt.c:10701 ++#: cp/pt.c:10799 + #, c-format + msgid "ISO C++ forbids the use of `%s' on explicit instantiations" + msgstr "" + +-#: cp/pt.c:10745 ++#: cp/pt.c:10843 + #, fuzzy + msgid "duplicate explicit instantiation of `%#T'" + msgstr "äéðëüò ïñéóìüò óõíüëïõ" + +-#: cp/pt.c:11126 ++#: cp/pt.c:11224 + msgid "explicit instantiation of `%D' but no definition available" + msgstr "" + +-#: cp/pt.c:11562 ++#: cp/pt.c:11660 + #, fuzzy + msgid "`%#T' is not a valid type for a template constant parameter" + msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò." +@@ -16936,42 +17009,42 @@ + msgid "`%T' is an inaccessible base of `%T'" + msgstr "ôï `%s' åßíáé ðñüãïíïò ôïõ `%s'" + +-#: cp/search.c:1767 ++#: cp/search.c:1805 + #, fuzzy + msgid "invalid covariant return type for `%#D'" + msgstr "ìç Ýãêõñïò ÷áñáêôÞñáò `%c' óôï ôýðï áëöáñéèìçôéêïý `%s'" + +-#: cp/search.c:1768 cp/search.c:1774 ++#: cp/search.c:1806 cp/search.c:1812 + #, fuzzy + msgid " overriding `%#D'" + msgstr "áíôéãñÜöåôáé áðü ðÜíù" + +-#: cp/search.c:1772 ++#: cp/search.c:1810 + msgid "conflicting return type specified for `%#D'" + msgstr "" + +-#: cp/search.c:1786 ++#: cp/search.c:1824 + #, c-format + msgid "looser throw specifier for `%#F'" + msgstr "" + +-#: cp/search.c:1787 ++#: cp/search.c:1825 + #, fuzzy, c-format + msgid " overriding `%#F'" + msgstr "áíôéãñÜöåôáé áðü ðÜíù" + + #. A static member function cannot match an inherited + #. virtual member function. +-#: cp/search.c:1877 ++#: cp/search.c:1915 + #, fuzzy + msgid "`%#D' cannot be declared" + msgstr "Äåí ìðïñåß íá ôåèåß ç çìåñïìçíßá." + +-#: cp/search.c:1878 ++#: cp/search.c:1916 + msgid " since `%#D' declared in base class" + msgstr "" + +-#: cp/search.c:1955 ++#: cp/search.c:1993 + msgid "`%#D' needs a final overrider" + msgstr "" + +@@ -16992,124 +17065,124 @@ + msgid "object missing in reference to `%D'" + msgstr "" + +-#: cp/semantics.c:1721 ++#: cp/semantics.c:1718 + #, fuzzy + msgid "arguments to destructor are not allowed" + msgstr "%s: ïé ôéìÝò ôïõ ðåäßïõ `%s' äåí ðñÝðåé íá åßíáé ìåãáëýôåñåò áðü %d" + +-#: cp/semantics.c:1770 ++#: cp/semantics.c:1767 + msgid "`this' is unavailable for static member functions" + msgstr "" + +-#: cp/semantics.c:1776 ++#: cp/semantics.c:1773 + msgid "invalid use of `this' in non-member function" + msgstr "" + +-#: cp/semantics.c:1778 ++#: cp/semantics.c:1775 + msgid "invalid use of `this' at top level" + msgstr "" + +-#: cp/semantics.c:1802 ++#: cp/semantics.c:1799 + msgid "invalid qualifying scope in pseudo-destructor name" + msgstr "" + +-#: cp/semantics.c:1822 ++#: cp/semantics.c:1819 + #, fuzzy + msgid "`%E' is not of type `%T'" + msgstr "ôï `%s' åßíáé ðñüãïíïò ôïõ `%s'" + +-#: cp/semantics.c:1933 ++#: cp/semantics.c:1930 + msgid "template type parameters must use the keyword `class' or `typename'" + msgstr "" + +-#: cp/semantics.c:1977 ++#: cp/semantics.c:1974 + #, fuzzy + msgid "invalid use of type `%T' as a default value for a template template-parameter" + msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò." + +-#: cp/semantics.c:1980 ++#: cp/semantics.c:1977 + #, fuzzy + msgid "invalid use of `%D' as a default value for a template template-parameter" + msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò." + +-#: cp/semantics.c:1984 ++#: cp/semantics.c:1981 + #, fuzzy + msgid "invalid default argument for a template template parameter" + msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò." + +-#: cp/semantics.c:2019 ++#: cp/semantics.c:2016 + msgid "definition of `%#T' inside template parameter list" + msgstr "" + +-#: cp/semantics.c:2030 ++#: cp/semantics.c:2027 + #, fuzzy + msgid "invalid definition of qualified type `%T'" + msgstr "ìç Ýãêõñïò áñéèìüò áñ÷åßïõ óôç äÞëùóç ðåäßïõ: `%s'" + +-#: cp/semantics.c:2045 ++#: cp/semantics.c:2042 + #, fuzzy + msgid "previous definition of `%#T'" + msgstr "êáíÝíáò ïñéóìüò ôïõ `UNDEFINED'" + +-#: cp/semantics.c:2249 ++#: cp/semantics.c:2246 + #, fuzzy + msgid "invalid base-class specification" + msgstr "Ìç Ýãêõñç ñýèìéóç èýñáò (port)" + +-#: cp/semantics.c:2258 ++#: cp/semantics.c:2255 + msgid "base class `%T' has cv qualifiers" + msgstr "" + +-#: cp/semantics.c:2290 ++#: cp/semantics.c:2287 + msgid "multiple declarators in template declaration" + msgstr "" + +-#: cp/semantics.c:2301 ++#: cp/semantics.c:2298 + msgid "incomplete type `%T' used in nested name specifier" + msgstr "" + +-#: cp/semantics.c:2303 cp/typeck.c:1635 ++#: cp/semantics.c:2300 cp/typeck.c:1635 + #, fuzzy + msgid "`%D' is not a member of `%T'" + msgstr "äåí åßóôå ìÝëïò ôçò ïìÜäáò `%s'" + +-#: cp/semantics.c:2306 ++#: cp/semantics.c:2303 + #, fuzzy + msgid "`%D' is not a member of `%D'" + msgstr "äåí åßóôå ìÝëïò ôçò ïìÜäáò `%s'" + +-#: cp/semantics.c:2431 ++#: cp/semantics.c:2428 + msgid "template parameter `%D' of type `%T' is not allowed in an integral constant expression because it is not of integral or enumeration type" + msgstr "" + +-#: cp/semantics.c:2584 ++#: cp/semantics.c:2572 + #, fuzzy + msgid "`%D' cannot appear in a constant-expression" + msgstr "%s: ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç: %s" + +-#: cp/semantics.c:2593 ++#: cp/semantics.c:2580 + msgid "use of namespace `%D' as expression" + msgstr "" + +-#: cp/semantics.c:2598 ++#: cp/semantics.c:2585 + msgid "use of class template `%T' as expression" + msgstr "" + + #. Ambiguous reference to base members. +-#: cp/semantics.c:2604 ++#: cp/semantics.c:2591 + msgid "request for member `%D' is ambiguous in multiple inheritance lattice" + msgstr "" + +-#: cp/semantics.c:2664 ++#: cp/semantics.c:2652 + #, c-format + msgid "use of %s from containing function" + msgstr "" + +-#: cp/semantics.c:2667 ++#: cp/semantics.c:2655 + msgid " `%#D' declared here" + msgstr "" + +-#: cp/semantics.c:2718 ++#: cp/semantics.c:2706 + #, fuzzy, c-format + msgid "type of `%E' is unknown" + msgstr "ç åðéóôñåöüìåíç ôéìÞ ôçò `%s' äåí åßíáé `int'" +@@ -17124,44 +17197,44 @@ + msgid "`%V' qualifiers cannot be applied to `%T'" + msgstr "ôï `%s' åßíáé ðñüãïíïò ôïõ `%s'" + +-#: cp/tree.c:1821 ++#: cp/tree.c:1829 + #, c-format + msgid "`%s' attribute can only be applied to Java class definitions" + msgstr "" + +-#: cp/tree.c:1850 ++#: cp/tree.c:1858 + #, c-format + msgid "`%s' attribute can only be applied to class definitions" + msgstr "" + +-#: cp/tree.c:1856 ++#: cp/tree.c:1864 + #, c-format + msgid "`%s' is obsolete; g++ vtables are now COM-compatible by default" + msgstr "" + +-#: cp/tree.c:1880 ++#: cp/tree.c:1888 + msgid "requested init_priority is not an integer constant" + msgstr "" + +-#: cp/tree.c:1901 ++#: cp/tree.c:1909 + #, c-format + msgid "can only use `%s' attribute on file-scope definitions of objects of class type" + msgstr "" + +-#: cp/tree.c:1909 ++#: cp/tree.c:1917 + msgid "requested init_priority is out of range" + msgstr "" + +-#: cp/tree.c:1919 ++#: cp/tree.c:1927 + msgid "requested init_priority is reserved for internal use" + msgstr "" + +-#: cp/tree.c:1929 ++#: cp/tree.c:1937 + #, fuzzy, c-format + msgid "`%s' attribute is not supported on this platform" + msgstr "ðñïåéäïðïßçóç: ôï --pid=PID äåí õðïóôçñßæåôáé óå áõôü ôï óýóôçìá" + +-#: cp/tree.c:2524 ++#: cp/tree.c:2534 + #, c-format + msgid "lang_* check: failed in %s, at %s:%d" + msgstr "" +@@ -17387,273 +17460,273 @@ + msgid "invalid use of a pointer to an incomplete type in pointer arithmetic" + msgstr "" + +-#: cp/typeck.c:3582 ++#: cp/typeck.c:3600 + #, c-format + msgid "invalid use of '%E' to form a pointer-to-member-function. Use a qualified-id." + msgstr "" + +-#: cp/typeck.c:3588 ++#: cp/typeck.c:3606 + #, c-format + msgid "parenthesis around '%E' cannot be used to form a pointer-to-member-function" + msgstr "" + +-#: cp/typeck.c:3610 ++#: cp/typeck.c:3628 + msgid "taking address of temporary" + msgstr "" + +-#: cp/typeck.c:3845 ++#: cp/typeck.c:3863 + #, c-format + msgid "ISO C++ forbids %sing an enum" + msgstr "" + +-#: cp/typeck.c:3856 ++#: cp/typeck.c:3874 + msgid "cannot %s a pointer to incomplete type `%T'" + msgstr "" + +-#: cp/typeck.c:3862 ++#: cp/typeck.c:3880 + msgid "ISO C++ forbids %sing a pointer of type `%T'" + msgstr "" + +-#: cp/typeck.c:3887 ++#: cp/typeck.c:3905 + msgid "cast to non-reference type used as lvalue" + msgstr "" + +-#: cp/typeck.c:3921 ++#: cp/typeck.c:3939 + #, fuzzy + msgid "invalid use of `--' on bool variable `%D'" + msgstr "ìç Ýãêõñïò áñéèìüò áðü êåíÝò ãñáììÝò: `%s'" + + #. ARM $3.4 +-#: cp/typeck.c:3952 ++#: cp/typeck.c:3970 + msgid "ISO C++ forbids taking address of function `::main'" + msgstr "" + + #. An expression like &memfn. +-#: cp/typeck.c:4027 ++#: cp/typeck.c:4045 + msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function. Say `&%T::%D'" + msgstr "" + +-#: cp/typeck.c:4032 ++#: cp/typeck.c:4050 + msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say `&%T::%D'" + msgstr "" + +-#: cp/typeck.c:4060 ++#: cp/typeck.c:4078 + msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression" + msgstr "" + +-#: cp/typeck.c:4080 ++#: cp/typeck.c:4098 + msgid "unary `&'" + msgstr "" + +-#: cp/typeck.c:4113 ++#: cp/typeck.c:4131 + msgid "attempt to take address of bit-field structure member `%D'" + msgstr "" + +-#: cp/typeck.c:4227 ++#: cp/typeck.c:4245 + msgid "taking address of destructor" + msgstr "" + +-#: cp/typeck.c:4240 ++#: cp/typeck.c:4258 + msgid "taking address of bound pointer-to-member expression" + msgstr "" + +-#: cp/typeck.c:4248 ++#: cp/typeck.c:4266 + #, fuzzy + msgid "cannot create pointer to reference member `%D'" + msgstr "äåí åßíáé äõíáôüí íá ãßíåé `stat' ôï locale áñ÷åßï `%s'" + +-#: cp/typeck.c:4311 ++#: cp/typeck.c:4329 + msgid "cannot take the address of `this', which is an rvalue expression" + msgstr "" + +-#: cp/typeck.c:4330 ++#: cp/typeck.c:4348 + msgid "address requested for `%D', which is declared `register'" + msgstr "" + +-#: cp/typeck.c:4398 ++#: cp/typeck.c:4416 + #, fuzzy, c-format + msgid "%s expression list treated as compound expression" + msgstr "ËÜèïò Ýêöñáóç óôçí áðïôßìçóç: %s" + +-#: cp/typeck.c:4472 ++#: cp/typeck.c:4490 + msgid "%s from type `%T' to type `%T' casts away constness" + msgstr "" + +-#: cp/typeck.c:4674 ++#: cp/typeck.c:4692 + #, fuzzy + msgid "invalid static_cast from type `%T' to type `%T'" + msgstr "ìç Ýãêõñïò ÷áñáêôÞñáò `%c' óôï ôýðï áëöáñéèìçôéêïý `%s'" + +-#: cp/typeck.c:4714 ++#: cp/typeck.c:4732 + msgid "invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'" + msgstr "" + +-#: cp/typeck.c:4734 ++#: cp/typeck.c:4752 + msgid "reinterpret_cast from `%T' to `%T' loses precision" + msgstr "" + +-#: cp/typeck.c:4753 ++#: cp/typeck.c:4771 + msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object" + msgstr "" + +-#: cp/typeck.c:4759 ++#: cp/typeck.c:4777 + msgid "invalid reinterpret_cast from type `%T' to type `%T'" + msgstr "" + +-#: cp/typeck.c:4787 ++#: cp/typeck.c:4805 + msgid "invalid use of const_cast with type `%T', which is not a pointer, reference, nor a pointer-to-data-member type" + msgstr "" + +-#: cp/typeck.c:4790 ++#: cp/typeck.c:4808 + msgid "invalid use of const_cast with type `%T', which is a pointer or reference to a function type" + msgstr "" + +-#: cp/typeck.c:4813 ++#: cp/typeck.c:4831 + msgid "invalid const_cast of an rvalue of type `%T' to type `%T'" + msgstr "" + +-#: cp/typeck.c:4830 ++#: cp/typeck.c:4848 + #, fuzzy + msgid "invalid const_cast from type `%T' to type `%T'" + msgstr "ìç Ýãêõñïò ÷áñáêôÞñáò `%c' óôï ôýðï áëöáñéèìçôéêïý `%s'" + +-#: cp/typeck.c:4870 cp/typeck.c:4875 ++#: cp/typeck.c:4888 cp/typeck.c:4893 + msgid "ISO C++ forbids casting to an array type `%T'" + msgstr "" + +-#: cp/typeck.c:4883 ++#: cp/typeck.c:4901 + #, fuzzy + msgid "invalid cast to function type `%T'" + msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'" + +-#: cp/typeck.c:4939 ++#: cp/typeck.c:4957 + msgid "cast from `%T' to `%T' discards qualifiers from pointer target type" + msgstr "" + +-#: cp/typeck.c:4985 ++#: cp/typeck.c:5003 + msgid "cast from `%T' to `%T' increases required alignment of target type" + msgstr "" + +-#: cp/typeck.c:5152 ++#: cp/typeck.c:5170 + msgid " in evaluation of `%Q(%#T, %#T)'" + msgstr "" + +-#: cp/typeck.c:5194 ++#: cp/typeck.c:5212 + msgid "ISO C++ forbids cast to non-reference type used as lvalue" + msgstr "" + +-#: cp/typeck.c:5267 ++#: cp/typeck.c:5285 + msgid "incompatible types in assignment of `%T' to `%T'" + msgstr "" + +-#: cp/typeck.c:5274 ++#: cp/typeck.c:5292 + msgid "ISO C++ forbids assignment of arrays" + msgstr "" + +-#: cp/typeck.c:5374 ++#: cp/typeck.c:5392 + msgid " in pointer to member function conversion" + msgstr "" + +-#: cp/typeck.c:5382 ++#: cp/typeck.c:5400 + msgid " in pointer to member conversion" + msgstr "" + + #. This is a reinterpret cast, we choose to do nothing. +-#: cp/typeck.c:5392 cp/typeck.c:5407 ++#: cp/typeck.c:5410 cp/typeck.c:5425 + #, fuzzy + msgid "pointer to member cast via virtual base `%T'" + msgstr "äåí åßóôå ìÝëïò ôçò ïìÜäáò `%s'" + +-#: cp/typeck.c:5410 ++#: cp/typeck.c:5428 + #, fuzzy + msgid "pointer to member conversion via virtual base `%T'" + msgstr "äåí åßóôå ìÝëïò ôçò ïìÜäáò `%s'" + +-#: cp/typeck.c:5480 ++#: cp/typeck.c:5498 + msgid "invalid conversion to type `%T' from type `%T'" + msgstr "" + +-#: cp/typeck.c:5636 ++#: cp/typeck.c:5657 + msgid "passing NULL used for non-pointer %s %P of `%D'" + msgstr "" + +-#: cp/typeck.c:5639 ++#: cp/typeck.c:5660 + msgid "%s to non-pointer type `%T' from NULL" + msgstr "" + +-#: cp/typeck.c:5647 ++#: cp/typeck.c:5668 + msgid "passing `%T' for %s %P of `%D'" + msgstr "" + +-#: cp/typeck.c:5650 ++#: cp/typeck.c:5671 + msgid "%s to `%T' from `%T'" + msgstr "" + +-#: cp/typeck.c:5660 ++#: cp/typeck.c:5681 + msgid "passing negative value `%E' for %s %P of `%D'" + msgstr "" + +-#: cp/typeck.c:5663 ++#: cp/typeck.c:5684 + msgid "%s of negative value `%E' to `%T'" + msgstr "" + +-#: cp/typeck.c:5751 ++#: cp/typeck.c:5772 + msgid "cannot convert `%T' to `%T' for argument `%P' to `%D'" + msgstr "" + +-#: cp/typeck.c:5754 ++#: cp/typeck.c:5775 + #, fuzzy + msgid "cannot convert `%T' to `%T' in %s" + msgstr "äåí åßíáé äõíáôü íá äçìéïõñãçèåß ôï %s `%s' óôï `%s'" + +-#: cp/typeck.c:5831 cp/typeck.c:5833 ++#: cp/typeck.c:5852 cp/typeck.c:5854 + #, fuzzy + msgid "in passing argument %P of `%+D'" + msgstr "Ëåßðåé ðáñÜìåôñïò ãéá `%s'" + +-#: cp/typeck.c:5940 ++#: cp/typeck.c:5961 + #, fuzzy + msgid "returning reference to temporary" + msgstr "xdr_reference: ç ìíÞìç åîáíôëÞèçêå\n" + +-#: cp/typeck.c:5947 ++#: cp/typeck.c:5968 + msgid "reference to non-lvalue returned" + msgstr "" + +-#: cp/typeck.c:5959 ++#: cp/typeck.c:5980 + msgid "reference to local variable `%D' returned" + msgstr "" + +-#: cp/typeck.c:5962 ++#: cp/typeck.c:5983 + msgid "address of local variable `%D' returned" + msgstr "" + +-#: cp/typeck.c:5992 ++#: cp/typeck.c:6013 + msgid "returning a value from a destructor" + msgstr "" + + #. If a return statement appears in a handler of the + #. function-try-block of a constructor, the program is ill-formed. +-#: cp/typeck.c:6000 ++#: cp/typeck.c:6021 + msgid "cannot return from a handler of a function-try-block of a constructor" + msgstr "" + + #. You can't return a value from a constructor. +-#: cp/typeck.c:6003 ++#: cp/typeck.c:6024 + msgid "returning a value from a constructor" + msgstr "" + +-#: cp/typeck.c:6026 ++#: cp/typeck.c:6047 + #, fuzzy + msgid "return-statement with no value, in function returning '%T'" + msgstr "`return' ÷ùñßò ôéìÞ, óå óõíÜñôçóç ðïõ åðéóôñÝöåé ìç-êåíü" + +-#: cp/typeck.c:6043 ++#: cp/typeck.c:6064 + #, fuzzy + msgid "return-statement with a value, in function returning 'void'" + msgstr "`return' ÷ùñßò ôéìÞ, óå óõíÜñôçóç ðïõ åðéóôñÝöåé ìç-êåíü" + +-#: cp/typeck.c:6065 ++#: cp/typeck.c:6086 + msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)" + msgstr "" + +@@ -17710,125 +17783,125 @@ + msgid "cannot initialize arrays using this syntax" + msgstr "" + +-#: cp/typeck2.c:545 ++#: cp/typeck2.c:535 + msgid "initializing array with parameter list" + msgstr "" + +-#: cp/typeck2.c:600 ++#: cp/typeck2.c:590 + msgid "initializer for scalar variable requires one element" + msgstr "" + +-#: cp/typeck2.c:607 ++#: cp/typeck2.c:597 + msgid "braces around scalar initializer for `%T'" + msgstr "" + +-#: cp/typeck2.c:610 ++#: cp/typeck2.c:600 + msgid "ignoring extra initializers for `%T'" + msgstr "" + +-#: cp/typeck2.c:622 ++#: cp/typeck2.c:612 + msgid "variable-sized object of type `%T' may not be initialized" + msgstr "" + +-#: cp/typeck2.c:632 ++#: cp/typeck2.c:622 + msgid "subobject of type `%T' must be initialized by constructor, not by `%E'" + msgstr "" + +-#: cp/typeck2.c:697 ++#: cp/typeck2.c:687 + msgid "aggregate has a partly bracketed initializer" + msgstr "" + +-#: cp/typeck2.c:735 cp/typeck2.c:840 ++#: cp/typeck2.c:725 cp/typeck2.c:830 + msgid "non-trivial labeled initializers" + msgstr "" + +-#: cp/typeck2.c:752 ++#: cp/typeck2.c:742 + msgid "non-empty initializer for array of empty elements" + msgstr "" + +-#: cp/typeck2.c:806 ++#: cp/typeck2.c:796 + msgid "initializer list for object of class with virtual base classes" + msgstr "" + +-#: cp/typeck2.c:812 ++#: cp/typeck2.c:802 + msgid "initializer list for object of class with base classes" + msgstr "" + +-#: cp/typeck2.c:818 ++#: cp/typeck2.c:808 + msgid "initializer list for object using virtual functions" + msgstr "" + +-#: cp/typeck2.c:880 cp/typeck2.c:896 ++#: cp/typeck2.c:870 cp/typeck2.c:886 + msgid "missing initializer for member `%D'" + msgstr "" + +-#: cp/typeck2.c:885 ++#: cp/typeck2.c:875 + msgid "uninitialized const member `%D'" + msgstr "" + +-#: cp/typeck2.c:887 ++#: cp/typeck2.c:877 + msgid "member `%D' with uninitialized const fields" + msgstr "" + +-#: cp/typeck2.c:890 ++#: cp/typeck2.c:880 + msgid "member `%D' is uninitialized reference" + msgstr "" + +-#: cp/typeck2.c:937 ++#: cp/typeck2.c:927 + msgid "index value instead of field name in union initializer" + msgstr "" + +-#: cp/typeck2.c:949 ++#: cp/typeck2.c:939 + msgid "no field `%D' in union being initialized" + msgstr "" + +-#: cp/typeck2.c:957 ++#: cp/typeck2.c:947 + msgid "union `%T' with no named members cannot be initialized" + msgstr "" + +-#: cp/typeck2.c:993 ++#: cp/typeck2.c:983 + msgid "excess elements in aggregate initializer" + msgstr "" + +-#: cp/typeck2.c:1102 ++#: cp/typeck2.c:1092 + msgid "circular pointer delegation detected" + msgstr "" + +-#: cp/typeck2.c:1115 ++#: cp/typeck2.c:1105 + msgid "base operand of `->' has non-pointer type `%T'" + msgstr "" + +-#: cp/typeck2.c:1139 ++#: cp/typeck2.c:1129 + msgid "result of `operator->()' yields non-pointer result" + msgstr "" + +-#: cp/typeck2.c:1141 ++#: cp/typeck2.c:1131 + msgid "base operand of `->' is not a pointer" + msgstr "" + +-#: cp/typeck2.c:1164 ++#: cp/typeck2.c:1154 + msgid "`%E' cannot be used as a member pointer, since it is of type `%T'" + msgstr "" + +-#: cp/typeck2.c:1172 ++#: cp/typeck2.c:1162 + msgid "cannot apply member pointer `%E' to `%E', which is of non-aggregate type `%T'" + msgstr "" + +-#: cp/typeck2.c:1182 ++#: cp/typeck2.c:1172 + msgid "member type `%T::' incompatible with object type `%T'" + msgstr "" + +-#: cp/typeck2.c:1398 ++#: cp/typeck2.c:1388 + msgid "call to function `%D' which throws incomplete type `%#T'" + msgstr "" + +-#: cp/typeck2.c:1401 ++#: cp/typeck2.c:1391 + #, fuzzy + msgid "call to function which throws incomplete type `%#T'" + msgstr "ìç ðëÞñçò åããñáöÞ" + + #. XXX Not i18n clean. +-#: cp/cp-tree.h:3756 ++#: cp/cp-tree.h:3775 + #, c-format + msgid "%s is deprecated, please see the documentation for details" + msgstr "" +@@ -19407,135 +19480,92 @@ + msgid "internal error - invalid Utf8 name" + msgstr "åóùôåñéêü óöÜëìá óôï %s, ãñáììÞ %u" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse-scan.y:880 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:949 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1290 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1351 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1555 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1777 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1786 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1797 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1808 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1820 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1835 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1852 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1854 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1935 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2106 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2168 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2320 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2332 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2339 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2346 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2357 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2359 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2397 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2399 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2401 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2422 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2424 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2426 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2442 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2444 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2465 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2467 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2469 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2497 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2499 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2501 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2503 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2521 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2523 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2534 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2545 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2556 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2567 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2578 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2591 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2595 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2597 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2610 ++#: ../../gcc/java/parse-scan.y:880 ../../gcc/java/parse.y:949 ++#: ../../gcc/java/parse.y:1290 ../../gcc/java/parse.y:1351 ++#: ../../gcc/java/parse.y:1555 ../../gcc/java/parse.y:1777 ++#: ../../gcc/java/parse.y:1786 ../../gcc/java/parse.y:1797 ++#: ../../gcc/java/parse.y:1808 ../../gcc/java/parse.y:1820 ++#: ../../gcc/java/parse.y:1835 ../../gcc/java/parse.y:1852 ++#: ../../gcc/java/parse.y:1854 ../../gcc/java/parse.y:1935 ++#: ../../gcc/java/parse.y:2106 ../../gcc/java/parse.y:2168 ++#: ../../gcc/java/parse.y:2320 ../../gcc/java/parse.y:2332 ++#: ../../gcc/java/parse.y:2339 ../../gcc/java/parse.y:2346 ++#: ../../gcc/java/parse.y:2357 ../../gcc/java/parse.y:2359 ++#: ../../gcc/java/parse.y:2397 ../../gcc/java/parse.y:2399 ++#: ../../gcc/java/parse.y:2401 ../../gcc/java/parse.y:2422 ++#: ../../gcc/java/parse.y:2424 ../../gcc/java/parse.y:2426 ++#: ../../gcc/java/parse.y:2442 ../../gcc/java/parse.y:2444 ++#: ../../gcc/java/parse.y:2465 ../../gcc/java/parse.y:2467 ++#: ../../gcc/java/parse.y:2469 ../../gcc/java/parse.y:2497 ++#: ../../gcc/java/parse.y:2499 ../../gcc/java/parse.y:2501 ++#: ../../gcc/java/parse.y:2503 ../../gcc/java/parse.y:2521 ++#: ../../gcc/java/parse.y:2523 ../../gcc/java/parse.y:2534 ++#: ../../gcc/java/parse.y:2545 ../../gcc/java/parse.y:2556 ++#: ../../gcc/java/parse.y:2567 ../../gcc/java/parse.y:2578 ++#: ../../gcc/java/parse.y:2591 ../../gcc/java/parse.y:2595 ++#: ../../gcc/java/parse.y:2597 ../../gcc/java/parse.y:2610 + #, fuzzy + msgid "Missing term" + msgstr "¸÷åé ðáñáëçöèåß åíôïëÞ" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse-scan.y:882 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:721 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:759 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:784 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:970 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1325 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1531 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1533 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1762 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1788 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1799 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1810 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1822 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1837 ++#: ../../gcc/java/parse-scan.y:882 ../../gcc/java/parse.y:721 ++#: ../../gcc/java/parse.y:759 ../../gcc/java/parse.y:784 ++#: ../../gcc/java/parse.y:970 ../../gcc/java/parse.y:1325 ++#: ../../gcc/java/parse.y:1531 ../../gcc/java/parse.y:1533 ++#: ../../gcc/java/parse.y:1762 ../../gcc/java/parse.y:1788 ++#: ../../gcc/java/parse.y:1799 ../../gcc/java/parse.y:1810 ++#: ../../gcc/java/parse.y:1822 ../../gcc/java/parse.y:1837 + msgid "';' expected" + msgstr "áíáìåíüôáí ';'" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:719 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:757 ++#: ../../gcc/java/parse.y:719 ../../gcc/java/parse.y:757 + #, fuzzy + msgid "Missing name" + msgstr "¸÷åé ðáñáëçöèåß åíôïëÞ" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:782 ++#: ../../gcc/java/parse.y:782 + msgid "'*' expected" + msgstr "áíáìåíüôáí '*'" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:796 ++#: ../../gcc/java/parse.y:796 + msgid "Class or interface declaration expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:833 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:835 ++#: ../../gcc/java/parse.y:833 ../../gcc/java/parse.y:835 + #, fuzzy + msgid "Missing class name" + msgstr "¸÷åé ðáñáëçöèåß åíôïëÞ" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:838 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:842 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:850 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1010 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1271 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1273 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1597 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1848 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1880 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1942 ++#: ../../gcc/java/parse.y:838 ../../gcc/java/parse.y:842 ++#: ../../gcc/java/parse.y:850 ../../gcc/java/parse.y:1010 ++#: ../../gcc/java/parse.y:1271 ../../gcc/java/parse.y:1273 ++#: ../../gcc/java/parse.y:1597 ../../gcc/java/parse.y:1848 ++#: ../../gcc/java/parse.y:1880 ../../gcc/java/parse.y:1942 + msgid "'{' expected" + msgstr "áíáìåíüôáí '{'" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:852 ++#: ../../gcc/java/parse.y:852 + msgid "Missing super class name" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:862 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:878 ++#: ../../gcc/java/parse.y:862 ../../gcc/java/parse.y:878 + #, fuzzy + msgid "Missing interface name" + msgstr "ðáñÜëçøç ïñßóìáôïò áñ÷åßïõ" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:964 ++#: ../../gcc/java/parse.y:964 + msgid "Missing variable initializer" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:981 ++#: ../../gcc/java/parse.y:981 + #, fuzzy + msgid "Invalid declaration" + msgstr "Ìç Ýãêõñç áíôáëëáãÞ" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:984 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1069 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2143 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2165 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2169 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2204 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2281 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2291 ++#: ../../gcc/java/parse.y:984 ../../gcc/java/parse.y:1069 ++#: ../../gcc/java/parse.y:2143 ../../gcc/java/parse.y:2165 ++#: ../../gcc/java/parse.y:2169 ../../gcc/java/parse.y:2204 ++#: ../../gcc/java/parse.y:2281 ../../gcc/java/parse.y:2291 + msgid "']' expected" + msgstr "áíáìåíüôáí ']'" + +@@ -19543,181 +19573,161 @@ + # src/dfa.c:690 src/dfa.c:703 src/dfa.c:704 + # src/dfa.c:660 src/dfa.c:663 src/dfa.c:690 src/dfa.c:694 src/dfa.c:695 + # src/dfa.c:698 src/dfa.c:711 src/dfa.c:712 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:988 ++#: ../../gcc/java/parse.y:988 + #, fuzzy + msgid "Unbalanced ']'" + msgstr "Ìç éóóïñïðçìÝíï [" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1024 ++#: ../../gcc/java/parse.y:1024 + msgid "Invalid method declaration, method name required" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1029 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1034 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1039 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2026 ++#: ../../gcc/java/parse.y:1029 ../../gcc/java/parse.y:1034 ++#: ../../gcc/java/parse.y:1039 ../../gcc/java/parse.y:2026 + #, fuzzy + msgid "Identifier expected" + msgstr "ÐñïóäéïñéóôÞò áöáéñÝèçêå" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1044 ++#: ../../gcc/java/parse.y:1044 + msgid "Invalid method declaration, return type required" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1067 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1511 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1518 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1527 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1529 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1557 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1665 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1971 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2024 ++#: ../../gcc/java/parse.y:1067 ../../gcc/java/parse.y:1511 ++#: ../../gcc/java/parse.y:1518 ../../gcc/java/parse.y:1527 ++#: ../../gcc/java/parse.y:1529 ../../gcc/java/parse.y:1557 ++#: ../../gcc/java/parse.y:1665 ../../gcc/java/parse.y:1971 ++#: ../../gcc/java/parse.y:2024 + msgid "')' expected" + msgstr "áíáìåíüôáí '('" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1083 ++#: ../../gcc/java/parse.y:1083 + #, fuzzy + msgid "Missing formal parameter term" + msgstr "ÅëëéðÞò Þ êáêïó÷çìáôéóìÝíç éäéüôçôá" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1098 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1103 ++#: ../../gcc/java/parse.y:1098 ../../gcc/java/parse.y:1103 + #, fuzzy + msgid "Missing identifier" + msgstr "Ý÷åé ðáñáëçöèåß ôï áñ÷åßï ðñïïñéóìïý" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1123 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1132 ++#: ../../gcc/java/parse.y:1123 ../../gcc/java/parse.y:1132 + msgid "Missing class type term" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1288 ++#: ../../gcc/java/parse.y:1288 + #, fuzzy + msgid "Invalid interface type" + msgstr "Ìç Ýãêõñïò åîáêñéâùôÞò(verifier) åîõðçñåôïýìåíïõ" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1475 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1644 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1646 ++#: ../../gcc/java/parse.y:1475 ../../gcc/java/parse.y:1644 ++#: ../../gcc/java/parse.y:1646 + msgid "':' expected" + msgstr "áíáìåíüôáí ':'" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1497 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1502 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1507 ++#: ../../gcc/java/parse.y:1497 ../../gcc/java/parse.y:1502 ++#: ../../gcc/java/parse.y:1507 + #, fuzzy + msgid "Invalid expression statement" + msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1525 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1553 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1593 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1661 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1729 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1850 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1928 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2018 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2020 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2028 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2264 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2266 ++#: ../../gcc/java/parse.y:1525 ../../gcc/java/parse.y:1553 ++#: ../../gcc/java/parse.y:1593 ../../gcc/java/parse.y:1661 ++#: ../../gcc/java/parse.y:1729 ../../gcc/java/parse.y:1850 ++#: ../../gcc/java/parse.y:1928 ../../gcc/java/parse.y:2018 ++#: ../../gcc/java/parse.y:2020 ../../gcc/java/parse.y:2028 ++#: ../../gcc/java/parse.y:2264 ../../gcc/java/parse.y:2266 + msgid "'(' expected" + msgstr "áíáìåíüôáí '('" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1595 ++#: ../../gcc/java/parse.y:1595 + #, fuzzy + msgid "Missing term or ')'" + msgstr "Ëåßðåé ðáñÜìåôñïò ãéá `%s'" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1642 ++#: ../../gcc/java/parse.y:1642 + #, fuzzy + msgid "Missing or invalid constant expression" + msgstr "%s: ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç: %s" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1663 ++#: ../../gcc/java/parse.y:1663 + msgid "Missing term and ')' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1702 ++#: ../../gcc/java/parse.y:1702 + #, fuzzy + msgid "Invalid control expression" + msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1704 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1706 ++#: ../../gcc/java/parse.y:1704 ../../gcc/java/parse.y:1706 + #, fuzzy + msgid "Invalid update expression" + msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1731 ++#: ../../gcc/java/parse.y:1731 + #, fuzzy + msgid "Invalid init statement" + msgstr "Ìç Ýãêõñç ðáñÜìåôñïò" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1931 ++#: ../../gcc/java/parse.y:1931 + msgid "Missing term or ')' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1973 ++#: ../../gcc/java/parse.y:1973 + msgid "'class' or 'this' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1975 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1977 ++#: ../../gcc/java/parse.y:1975 ../../gcc/java/parse.y:1977 + #, fuzzy + msgid "'class' expected" + msgstr "áíáìåíüôáí ')'\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2022 ++#: ../../gcc/java/parse.y:2022 + #, fuzzy + msgid "')' or term expected" + msgstr "áíáìåíüôáí ')'\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2141 ++#: ../../gcc/java/parse.y:2141 + msgid "'[' expected" + msgstr "áíáìåíüôáí '['" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2219 ++#: ../../gcc/java/parse.y:2219 + #, fuzzy + msgid "Field expected" + msgstr "Ç èõãáôñéêÞ äéåñãáóßá ôåñìáôßóôçêå" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2276 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2286 ++#: ../../gcc/java/parse.y:2276 ../../gcc/java/parse.y:2286 + msgid "Missing term and ']' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2390 ++#: ../../gcc/java/parse.y:2390 + #, fuzzy + msgid "']' expected, invalid type expression" + msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2393 ++#: ../../gcc/java/parse.y:2393 + #, fuzzy + msgid "Invalid type expression" + msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2505 ++#: ../../gcc/java/parse.y:2505 + #, fuzzy + msgid "Invalid reference type" + msgstr "Ìç Ýãêõñç ðéóù-ðáñáðïìðÞ" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2977 ++#: ../../gcc/java/parse.y:2977 + msgid "Constructor invocation must be first thing in a constructor" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2979 ++#: ../../gcc/java/parse.y:2979 + msgid "Only constructors can invoke constructors" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2987 ++#: ../../gcc/java/parse.y:2987 + #, c-format + msgid ": `%s' JDK1.1(TM) feature" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:3046 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:3048 ++#: ../../gcc/java/parse.y:3046 ../../gcc/java/parse.y:3048 + #, c-format + msgid "" + "%s.\n" +@@ -19726,32 +19736,32 @@ + "%s.\n" + "%s" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:6909 ++#: ../../gcc/java/parse.y:6909 + #, c-format + msgid "malformed .zip archive in CLASSPATH: %s" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:6980 ++#: ../../gcc/java/parse.y:6980 + #, c-format + msgid "Can't find default package `%s'. Check the CLASSPATH environment variable and the access to the archives" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12193 ++#: ../../gcc/java/parse.y:12193 + #, fuzzy, c-format + msgid "missing static field `%s'" + msgstr "Ý÷åé ðáñáëçöèåß ç ëßóôá ìå ôá ðåäßá" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12198 ++#: ../../gcc/java/parse.y:12198 + #, fuzzy, c-format + msgid "not a static field `%s'" + msgstr "áäõíáìßá ðñïóðÝëáóçò(stat()) áñ÷åßïõ `%s': %s" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12241 ++#: ../../gcc/java/parse.y:12241 + #, fuzzy, c-format + msgid "No case for %s" + msgstr "ÓöÜëìá åðåîåñãáóßáò: %s" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:13173 ++#: ../../gcc/java/parse.y:13173 + #, fuzzy, c-format + msgid "unregistered operator %s" + msgstr "ðïôÝ äåí äçëþèçêå ôï ðñüãñáììá %d\n" +@@ -20099,1715 +20109,1396 @@ + msgid "[super ...] must appear in a method context" + msgstr "" + +-#: objc/objc-parse.y:2701 ++#: objc/objc-parse.y:2700 + msgid "`@end' must appear in an implementation context" + msgstr "" + +-#: objc/objc-parse.y:2914 ++#: objc/objc-parse.y:2913 + msgid "method definition not in class context" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:23 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:21 + #, fuzzy + msgid "Display this information" + msgstr " --help ÅìöÜíéóç áõôþí ôùí ðëçñïöïñéþí\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:29 +-msgid "--param =\tSet paramter to value. See below for a complete list of parameters" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:27 ++msgid "--param =\tSet parameter to value. See below for a complete list of parameters" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:38 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:36 + msgid "-A=\tAssert the to . Putting '-' before disables the to " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:41 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:39 + #, fuzzy + msgid "Do not discard comments" + msgstr "Ìç ôåñìáôéóìÝíç åíôïëÞ `s'" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:44 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:42 + msgid "Do not discard comments in macro expansions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:47 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:45 + msgid "-D[=]\tDefine a with as its value. If just is given, is taken to be 1" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:53 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:51 + msgid "-G\tPut global and static data smaller than bytes into a special section (on some targets)" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:56 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:54 + msgid "Print the name of header files as they are used" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:65 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:57 ++msgid "-I \tAdd to the end of the main include path. -I- gives more include path control; see info documentation" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:60 ++#, fuzzy ++msgid "Generate make dependencies" ++msgstr "äõíáìéêÝò åîáñôÞóåéò.\n" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:63 + msgid "Generate make dependencies and compile" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:74 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:66 ++msgid "-MF \tWrite dependency output to the given file" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:69 + msgid "Treat missing header files as generated files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:80 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:72 ++msgid "Like -M but ignore system header files" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:75 + msgid "Like -MD but ignore system header files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:89 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:78 ++#, fuzzy ++msgid "Generate phony targets for all headers" ++msgstr "×ñÞóç îå÷ùñéóôÞò ëáíèÜíïõóáò ìíÞìçò ãéá êÜèå ÷ñÞóôç" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:81 + msgid "-MQ \tAdd a MAKE-quoted target" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:95 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:84 ++msgid "-MT \tAdd an unquoted target" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:87 + msgid "-O\tSet optimization level to " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:98 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:90 + msgid "Optimize for space rather than speed" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:101 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:93 + msgid "Do not generate #line directives" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:104 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:96 + msgid "-U\tUndefine " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:107 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:99 + msgid "This switch is deprecated; use -Wextra instead" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:113 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:105 + msgid "Warn about returning structures, unions or arrays" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:119 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:108 ++msgid "Enable most warning messages" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:111 + msgid "Warn about casting functions to incompatible types" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:122 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:114 + msgid "Warn about pointer casts which increase alignment" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:125 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:117 + msgid "Warn about casts which discard qualifiers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:128 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:120 + msgid "Warn about subscripts whose type is \"char\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:137 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:123 ++msgid "Warn about possibly nested block comments, and C++ comments spanning more than one physical line" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:126 ++msgid "Synonym for -Wcomment" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:129 + msgid "Warn about possibly confusing type conversions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:140 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:132 + msgid "Warn when all constructors and destructors are private" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:143 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:135 + msgid "Warn when a declaration is found after a statement" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:146 +-msgid "Warn if deprecated class, method, or field is used" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:138 ++msgid "Warn about deprecated compiler features" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:149 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:141 + msgid "Warn about uses of __attribute__((deprecated)) declarations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:152 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:144 + msgid "Warn when an optimization pass is disabled" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:155 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:147 + msgid "Warn about compile-time integer division by zero" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:158 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:150 + msgid "Warn about violations of Effective C++ style rules" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:161 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:153 + msgid "Warn about stray tokens after #elif and #endif" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:164 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:156 + msgid "Treat all warnings as errors" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:167 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:159 + msgid "Make implicit function declarations an error" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:170 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:162 + msgid "Print extra (possibly unwanted) warnings" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:173 +-msgid "Warn if deprecated empty statements are found" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:165 ++msgid "Warn if testing floating point numbers for equality" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:176 +-msgid "Warn if testing floating point numbers for equality" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:179 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:168 + msgid "Warn about printf/scanf/strftime/strfmon format string anomalies" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:182 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:171 + #, fuzzy + msgid "Warn if passing too many arguments to a function for its format string" + msgstr "ðÜñá ðïëëÜ ïñßóìáôá óå áõôü ôï áëöáñéèìçôéêü ìïñöÞò" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:185 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:174 + msgid "Warn about format strings that are not literals" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:188 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:177 + msgid "Warn about possible security problems with format functions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:191 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:180 + msgid "Warn about strftime formats yielding 2-digit years" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:200 +-msgid "Enable warnings about inter-procedural problems" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:206 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:192 + msgid "Warn about implicit function declarations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:209 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:195 + msgid "Warn when a declaration does not specify a type" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:215 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:198 ++msgid "Deprecated. This switch has no effect." ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:201 + msgid "Warn about variables which are initialized to themselves." + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:218 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:204 + msgid "Warn when an inlined function cannot be inlined" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:221 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:207 + msgid "Warn about invalid uses of the \"offsetof\" macro" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:224 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:210 + msgid "Warn about PCH files that are found but not used" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:227 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:213 + msgid "-Wlarger-than-\tWarn if an object is larger than bytes" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:230 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:216 + msgid "Do not warn about using \"long long\" when -pedantic" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:233 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:219 + msgid "Warn about suspicious declarations of \"main\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:236 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:222 + msgid "Warn about possibly missing braces around initializers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:239 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:225 + msgid "Warn about global functions without previous declarations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:242 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:228 + msgid "Warn about functions which might be candidates for format attributes" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:245 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:231 + msgid "Warn about functions which might be candidates for __attribute__((noreturn))" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:248 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:234 + msgid "Warn about global functions without prototypes" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:251 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:237 + #, fuzzy + msgid "Warn about use of multi-character character constants" + msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:254 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:240 + msgid "Warn about \"extern\" declarations not at file scope" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:257 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:243 + msgid "Warn when non-templatized friend functions are declared within a template" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:260 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:246 + msgid "Warn about non-virtual destructors" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:266 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:252 + msgid "Warn if a C-style cast is used in a program" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:269 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:255 + msgid "Warn if an old-style parameter definition is used" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:272 +-msgid "Warn if .class files are out of date" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:275 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:258 + msgid "Warn about overloaded virtual function names" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:278 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:261 + msgid "Warn when the packed attribute has no effect on struct layout" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:281 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:264 + msgid "Warn when padding is required to align structure members" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:284 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:267 + msgid "Warn about possibly missing parentheses" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:287 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:270 + msgid "Warn when converting the type of pointers to member functions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:290 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:273 + msgid "Warn about function pointer arithmetic" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:293 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:276 + msgid "Warn if inherited methods are unimplemented" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:296 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:279 + msgid "Warn about multiple declarations of the same object" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:299 +-#, fuzzy +-msgid "Warn if modifiers are specified when not necessary" +-msgstr "äå ìðïñïýí íá äçëþíïíôáé áñ÷åßá üôáí ãßíåôáé ÷ñÞóç ôïõ --string" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:302 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:282 + msgid "Warn when the compiler reorders code" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:305 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:285 + msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:308 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:288 + msgid "Warn if a selector has multiple methods" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:311 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:291 + msgid "Warn about possible violations of sequence point rules" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:314 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:294 + msgid "Warn when one local variable shadows another" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:317 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:297 + msgid "Warn about signed-unsigned comparisons" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:320 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:300 + msgid "Warn when overload promotes from unsigned to signed" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:323 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:303 + msgid "Warn about code which might break strict aliasing rules" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:326 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:306 + #, fuzzy + msgid "Warn about unprototyped function declarations" + msgstr "áäõíáìßá åéóáãùãÞò óôïé÷åßï ðáñáâïëÞò `%.*s'" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:329 +-msgid "Warn about constructs with surprising meanings" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:332 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:309 + msgid "Warn about enumerated switches, with no default, missing a case" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:335 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:312 + msgid "Warn about enumerated switches missing a \"default:\" statement" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:338 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:315 + msgid "Warn about all enumerated switches missing a specific case" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:341 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:318 + msgid "Warn when synthesis behavior differs from Cfront" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:344 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:321 + #, fuzzy + msgid "Do not suppress warnings from system headers" + msgstr "Áðïóéþðçóç ðñïçäïðïéÞóåùí êáé ìçíõìÜôùí ðëçñïöüñçóçò" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:347 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:324 + msgid "Warn about features not present in traditional C" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:356 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:327 ++msgid "Warn if trigraphs are encountered that might affect the meaning of the program" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:333 + #, fuzzy + msgid "Warn if an undefined macro is used in an #if directive" + msgstr "%%%c: êáôåõèõíôÞñéïò ãñáììÞ ìç Ýãêõñç." + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:359 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:336 + msgid "Warn about uninitialized automatic variables" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:362 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:339 + msgid "Warn about unrecognized pragmas" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:365 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:342 + msgid "Warn about code that will never be executed" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:368 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:345 + msgid "Enable all -Wunused- warnings" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:371 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:348 + msgid "Warn when a function is unused" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:374 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:351 + msgid "Warn when a label is unused" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:377 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:354 + msgid "Warn about macros defined in the main file that are not used" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:380 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:357 + msgid "Warn when a function parameter is unused" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:383 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:360 + msgid "Warn when an expression value is unused" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:386 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:363 + msgid "Warn when a variable is unused" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:389 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:366 + msgid "Give strings the type \"array of char\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:392 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:369 + msgid "A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:395 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:372 + msgid "-aux-info \tEmit declaration information into " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:407 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:384 + msgid "-d\tEnable dumps from specific passes of the compiler" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:410 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:387 + msgid "-dumpbase \tSet the file basename to be used for dumps" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:413 +-msgid "--CLASSPATH\tDeprecated; use --classpath instead" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:425 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:399 + msgid "Enforce class member access control semantics" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:428 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:402 + msgid "Align the start of functions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:434 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:408 + msgid "Align labels which are only reached by jumping" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:440 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:414 + msgid "Align all labels" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:446 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:420 + msgid "Align the start of loops" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:455 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:429 + msgid "Change when template instances are emitted" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:458 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:432 + msgid "Specify that arguments may alias each other and globals" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:461 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:435 + msgid "Assume arguments may alias globals but not each other" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:464 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:438 + msgid "Assume arguments alias neither each other nor globals" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:467 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:441 + msgid "Recognize the \"asm\" keyword" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:479 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:444 + msgid "Generate unwind tables that are exact at each instruction boundary" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:482 +-msgid "Do not treat local variables and COMMON blocks as if they were named in SAVE statements" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:485 +-msgid "Backslashes in character and hollerith constants are special (not C-style)" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:488 +-msgid "Delete libU77 intrinsics with bad interfaces" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:491 +-msgid "Disable libU77 intrinsics with bad interfaces" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:494 +-msgid "Enable libU77 intrinsics with bad interfaces" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:497 +-msgid "Hide libU77 intrinsics with bad interfaces" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:500 +-msgid "--bootclasspath=\tReplace system path" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:503 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:447 + #, fuzzy + msgid "Generate code to check bounds before indexing arrays" + msgstr "×ñÞóç îå÷ùñéóôÞò ëáíèÜíïõóáò ìíÞìçò ãéá êÜèå ÷ñÞóôç" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:506 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:450 + msgid "Replace add, compare, branch with branch on count register" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:509 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:453 + msgid "Use profiling information for branch probabilities" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:512 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:456 + msgid "Perform branch target load optimization before prologue / epilogue threading" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:515 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:459 + msgid "Perform branch target load optimization after prologue / epilogue threading" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:518 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:462 + #, fuzzy + msgid "Recognize built-in functions" + msgstr "áäõíáìßá åêôÝëåóçò ioctl óôï `%s'" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:524 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:468 + msgid "-fcall-saved-\tMark as being preserved across functions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:527 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:471 + msgid "-fcall-used-\tMark as being corrupted by function calls" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:530 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:474 + msgid "Save registers around function calls" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:533 +-msgid "Program written in strict mixed-case" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:536 +-msgid "Compile as if program written in lowercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:539 +-msgid "Preserve case used in program" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:542 +-msgid "Program written in lowercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:545 +-msgid "Program written in uppercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:548 +-msgid "Compile as if program written in uppercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:551 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:477 + msgid "Check the return value of new" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:557 +-msgid "--classpath=\tSet class path" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:560 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:480 + msgid "Do not put uninitialized globals in the common section" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:566 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:483 + msgid "Allow the arguments of the '?' operator to have different types" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:569 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:486 + msgid "Reduce the size of object files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:572 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:489 + msgid "Make string literals \"const char[]\" not \"char[]\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:575 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:492 + msgid "-fconst-string-class=\tUse class for constant strings" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:578 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:495 + msgid "Perform a register copy-propagation optimization pass" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:581 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:498 + msgid "Perform cross-jumping optimization" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:584 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:501 + msgid "When running CSE, follow jumps to their targets" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:587 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:504 + msgid "When running CSE, follow conditional jumps" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:590 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:507 + msgid "Place data items into their own section" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:593 +-msgid "Emit special debugging information for COMMON and EQUIVALENCE (disabled)" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:596 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:510 + #, fuzzy + msgid "Inline member functions by default" + msgstr "Óôç óõíÜñôçóç ìÝëïò `%s':" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:599 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:513 + msgid "Defer popping functions args from stack until later" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:602 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:516 + msgid "Attempt to fill delay slots of branch instructions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:605 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:519 + msgid "Delete useless null pointer checks" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:608 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:522 + msgid "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source location at the beginning of line-wrapped diagnostics" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:611 +-msgid "Allow '$' in symbol names" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:614 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:525 + #, fuzzy + msgid "Permit '$' as an identifier character" + msgstr "ëßóôá ìå üëá ôá ãíùóôÜ óýíïëá ÷áñáêôÞñùí" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:620 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:528 ++msgid "-fdump-\tDump various compiler internals to a file" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:531 + msgid "Suppress output of instruction numbers and line number notes in debugging dumps" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:626 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:537 + msgid "Perform DWARF2 duplicate elimination" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:629 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:632 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:540 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:543 + msgid "Perform unused type elimination in debug info" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:641 +-msgid "Have front end emulate COMPLEX arithmetic to avoid bugs" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:644 +-msgid "--encoding=\tChoose input encoding (defaults from your locale)" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:647 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:546 + msgid "Generate code to check exception specifications" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:653 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:552 + msgid "Enable exception handling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:656 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:555 + msgid "-fexec-charset=\tConvert all strings and character constants to character set " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:659 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:558 + msgid "Perform a number of minor, expensive optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:668 +-msgid "f2c-compatible code can be generated" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:671 +-msgid "Delete non-FORTRAN-77 intrinsics f2c supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:674 +-msgid "Disable non-FORTRAN-77 intrinsics f2c supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:677 +-msgid "Enable non-FORTRAN-77 intrinsics f2c supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:680 +-msgid "Hide non-FORTRAN-77 intrinsics f2c supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:683 +-msgid "Unsupported; generate libf2c-calling code" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:686 +-msgid "Program is written in typical FORTRAN 66 dialect" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:689 +-msgid "Program is written in typical Unix-f77 dialect" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:692 +-msgid "Program is written in Fortran-90-ish dialect" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:695 +-msgid "Delete non-FORTRAN-77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:698 +-msgid "Disable non-FORTRAN-77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:701 +-msgid "Enable non-FORTRAN-77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:704 +-msgid "Hide non-FORTRAN-77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:716 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:567 + msgid "Assume no NaNs or infinities are generated" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:719 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:570 + msgid "-ffixed-\tMark as being unavailable to the compiler" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:725 +-msgid "ffixed-line-length-\tSet the maximum line length to " +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:728 +-msgid "Unsupported; affects code generation of arrays" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:731 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:579 + msgid "Do not store floats in registers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:734 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:582 + msgid "Scope of for-init-statement variables is local to the loop" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:737 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:585 + msgid "Copy memory address constants into registers before use" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:740 +-msgid "Always check for non gcj generated classes archives" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:743 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:588 + msgid "Copy memory operands into registers before use" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:746 +-msgid "Generate code to check subscript and substring bounds" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:749 +-msgid "Program is written in Fortran-90-ish free form" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:752 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:591 + msgid "Do not assume that standard C libraries and \"main\" exist" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:755 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:594 + msgid "Allow function addresses to be held in registers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:758 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:597 + msgid "Place each function into its own section" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:761 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:600 + msgid "Perform global common subexpression elimination" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:764 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:603 + msgid "Perform redundant load after store elimination in global common subexpression elimination" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:767 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:606 + msgid "Perform enhanced load motion during global common subexpression elimination" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:770 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:609 + msgid "Perform store motion after global common subexpression elimination" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:773 +-msgid "Enable fatal diagnostics about inter-procedural problems" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:776 +-msgid "Delete non-FORTRAN-77 intrinsics g77 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:779 +-msgid "Disable non-FORTRAN 77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:782 +-msgid "Enable non-FORTRAN 77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:785 +-msgid "Hide non-FORTRAN 77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:788 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:612 + msgid "Recognize GNU-defined keywords" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:791 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:615 + msgid "Generate code for GNU runtime environment" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:794 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:618 + msgid "Enable guessing of branch probabilities" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:809 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:630 + msgid "Assume normal C execution environment" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:812 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:633 + msgid "Enable support for huge objects" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:815 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:636 + msgid "Process #ident directives" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:818 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:639 + msgid "Perform conversion of conditional jumps to branchless equivalents" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:821 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:642 + msgid "Perform conversion of conditional jumps to conditional execution" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:824 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:645 + msgid "Export functions even if they can be inlined" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:827 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:648 + #, fuzzy + msgid "Emit implicit instantiations of inline templates" + msgstr "áäõíáìßá áíïßãìáôïò áñ÷åßïõ ïñéóìïý locale `%s'" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:830 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:651 + #, fuzzy + msgid "Emit implicit instantiations of templates" + msgstr "äéðëüò ïñéóìüò óõíüëïõ" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:833 +-msgid "Use offset tables for virtual method calls" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:836 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:654 + msgid "Do not generate .size directives" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:839 +-msgid "Initialize local vars and arrays to zero" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:657 ++msgid "Pay attention to the \"inline\" keyword" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:842 +-msgid "Pay attention to the \"inline\" keyword" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:660 ++msgid "Integrate simple functions into their callers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:851 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:666 + msgid "-finline-limit=\tLimit the size of inlined functions to " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:854 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:669 + msgid "-finput-charset= Specify the default character set for source files." + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:857 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:672 + msgid "Instrument function entry and exit with profiling calls" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:860 +-msgid "Intrinsics letters in arbitrary cases" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:863 +-msgid "Intrinsics spelled as e.g. SqRt" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:866 +-msgid "Intrinsics in lowercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:869 +-msgid "Intrinsics in uppercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:872 +-msgid "Assume native functions are implemented using JNI" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:875 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:675 + msgid "Generate code for functions even if they are fully inlined" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:878 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:678 + msgid "Emit static const variables even if they are not used" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:884 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:684 + msgid "Give external symbols a leading underscore" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:887 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:687 + msgid "Perform loop optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:890 +-msgid "Language keyword letters in arbitrary cases" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:893 +-msgid "Language keywords spelled as e.g. IOStat" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:896 +-msgid "Language keywords in lowercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:899 +-msgid "Language keywords in uppercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:902 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:690 + msgid "Set errno after built-in math functions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:905 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:693 + msgid "Report on permanent memory allocation" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:908 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:696 + msgid "Attempt to merge identical constants and constant variables" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:911 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:699 + msgid "Attempt to merge identical constants across compilation units" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:914 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:702 + msgid "-fmessage-length=\tLimit diagnostics to characters per line. 0 suppresses line-wrapping" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:917 +-msgid "Delete MIL-STD 1753 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:920 +-msgid "Disable MIL-STD 1753 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:923 +-msgid "Enable MIL-STD 1753 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:926 +-msgid "Hide MIL-STD 1753 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:929 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:705 + msgid "Force all loop invariant computations out of loops" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:932 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:708 + msgid "Don't warn about uses of Microsoft extensions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:941 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:717 + #, fuzzy + msgid "Use graph-coloring register allocation" + msgstr "Áðïôõ÷ßá äÝóìåõóçò ðüñùí óõóôÞìáôïò" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:944 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:720 + msgid "Generate code for NeXT (Apple Mac OS X) runtime environment" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:947 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:723 + msgid "Assume that receivers of Objective-C messages may be nil" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:950 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:726 + msgid "Support synchronous non-call exceptions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:959 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:735 + msgid "Enable Objective-C exception and synchronization syntax" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:962 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1286 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:738 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:978 + msgid "Perform loop unrolling for all loops" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:965 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1289 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:741 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:981 + msgid "Perform loop unrolling when iteration count is known" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:968 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:744 + msgid "When possible do not generate stack frames" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:971 +-msgid "Take at least one trip through each iterative DO loop" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:974 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:747 + msgid "Recognize C++ kewords like \"compl\" and \"xor\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:977 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:750 + msgid "Do the full register move optimization pass" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:980 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:753 + msgid "Optimize sibling and tail recursive calls" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:983 +-msgid "Enable optimization of static class initialization code" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:986 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:756 + #, fuzzy + msgid "Enable optional diagnostics" + msgstr "ÁêáôÜëëçëç åíôïëÞ" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:992 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:759 + msgid "Pack structure members together without holes" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:995 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:762 + msgid "Return small aggregates in memory, not registers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1001 +-msgid "Warn about use of (only a few for now) Fortran extensions" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1004 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:768 + msgid "Perform loop peeling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1007 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:771 + msgid "Enable machine specific peephole optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1010 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:774 + msgid "Enable an RTL peephole pass before sched2" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1013 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:777 + msgid "Downgrade conformance errors to warnings" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1016 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:780 + msgid "Generate position-independent code if possible" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1019 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:783 + msgid "Generate position-independent code for executables if possible" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1022 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:786 + msgid "Generate prefetch instructions, if available, for arrays in loops" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1028 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:789 ++msgid "Treat the input file as already preprocessed" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:792 + msgid "Enable basic program profiling code" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1031 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:795 + msgid "Insert arc-based program profiling code" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1034 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:798 + msgid "Enable common options for generating profile info for profile feedback directed optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1037 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:801 + msgid "Enable common options for performing profile feedback directed optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1040 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:804 + msgid "Insert code to profile values of expressions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1046 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:810 + msgid "-frandom-seed=\tMake compile reproducible using " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1049 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:813 + msgid "Strength reduce all loop general induction variables" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1052 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:816 + msgid "Return small aggregates in registers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1055 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:819 + msgid "Enables a register move optimization" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1058 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:822 + msgid "Perform a register renaming optimization pass" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1061 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:825 + msgid "Reorder basic blocks to improve code placement" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1064 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:828 + msgid "Reorder functions to improve code placement" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1067 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:831 + msgid "Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1070 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:834 + msgid "Enable automatic template instantiation" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1073 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:837 + msgid "Add a common subexpression elimination pass after loop optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1076 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:840 + msgid "Run the loop optimizer twice" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1079 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:843 + msgid "Disable optimizations that assume default FP rounding behavior" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1082 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:846 + msgid "Generate run time type descriptor information" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1085 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:849 + msgid "Enable scheduling across basic blocks" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1088 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:852 + msgid "Allow speculative motion of non-loads" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1091 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:855 + msgid "Allow speculative motion of some loads" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1094 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:858 + msgid "Allow speculative motion of more loads" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1097 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:861 + msgid "Allow premature scheduling of queued insns" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1100 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:864 + msgid "Set dependence distance checking in premature scheduling of queued insns" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1103 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:867 + msgid "-fsched-stalled-insns-dep= Set dependence distance checking in premature scheduling of queued insns" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1106 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:870 + msgid "-fsched-stalled-insns= Set number of queued insns that can be prematurely scheduled" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1109 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:873 + msgid "-fsched-verbose=\tSet the verbosity level of the scheduler" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1112 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:876 + msgid "If scheduling post reload, do superblock scheduling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1115 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:879 + msgid "If scheduling post reload, do trace scheduling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1118 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:882 + msgid "Reschedule instructions before register allocation" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1121 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:885 + msgid "Reschedule instructions after register allocation" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1124 +-msgid "Allow appending a second underscore to externals" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1127 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:888 + msgid "Mark data as shared rather than private" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1130 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:891 + msgid "Use the same size for double as for float" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1133 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:894 + msgid "Use the narrowest integer type possible for enumeration types" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1136 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:897 + msgid "Force the underlying type for \"wchar_t\" to be \"unsigned short\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1142 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:903 + msgid "Disable optimizations observable by IEEE signaling NaNs" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1145 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:906 + msgid "When \"signed\" or \"unsigned\" is not given make the bitfield signed" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1148 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:909 + msgid "Make \"char\" signed by default" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1151 +-msgid "Do not print names of program units as they are compiled" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1154 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:912 + msgid "Convert floating point constants to single precision constants" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1157 +-msgid "Internally convert most source to lowercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1160 +-msgid "Internally preserve source case" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1163 +-msgid "Internally convert most source to uppercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1169 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:918 + msgid "Insert stack checking code into the program" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1175 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:924 + msgid "-fstack-limit-register=\tTrap if the stack goes past " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1178 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:927 + msgid "-fstack-limit-symbol=\tTrap if the stack goes past symbol " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1181 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:930 + msgid "Display statistics accumulated during compilation" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1184 +-msgid "Enable assignability checks for stores into object arrays" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1187 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:933 + msgid "Perform strength reduction optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1190 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:936 + msgid "Assume strict aliasing rules apply" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1199 +-msgid "Symbol names spelled in mixed case" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1202 +-msgid "Symbol names in lowercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1205 +-msgid "Symbol names in uppercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1208 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:942 + msgid "Check for syntax errors, then stop" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1211 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:945 + msgid "-ftabstop=\tDistance between tab stops for column reporting" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1214 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:948 + msgid "-ftemplate-depth-\tSpecify maximum template instantiation depth" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1217 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:951 + msgid "Create data files needed by \"gcov\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1223 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:957 + msgid "Perform jump threading optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1226 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:960 + msgid "Report the time taken by each compiler pass" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1229 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:963 + msgid "-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tSet the default thread-local storage code generation model" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1232 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:966 + msgid "Perform superblock formation via tail duplication" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1235 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:969 + #, fuzzy + msgid "Assume floating-point operations can trap" + msgstr "Åîáßñåóç êéíçôÞò õðïäéáóôïëÞò" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1238 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:972 + msgid "Trap for signed overflow in addition, subtraction and multiplication" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1241 +-msgid "Make prefix-radix non-decimal constants be typeless" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1244 +-msgid "Allow all ugly features" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1247 +-msgid "Hollerith and typeless can be passed as arguments" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1250 +-msgid "Allow ordinary copying of ASSIGN'ed vars" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1253 +-msgid "Dummy array dimensioned to (1) is assumed-size" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1256 +-msgid "Trailing comma in procedure call denotes null argument" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1259 +-msgid "Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1262 +-msgid "Initialization via DATA and PARAMETER is not type-compatible" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1265 +-msgid "Allow INTEGER and LOGICAL interchangeability" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1268 +-msgid "Append underscores to externals" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1271 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:975 + msgid "Compile whole compilation unit at a time" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1274 +-msgid "Delete libU77 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1277 +-msgid "Disable libU77 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1280 +-#, fuzzy +-msgid "Enable libU77 intrinsics" +-msgstr "ÁêáôÜëëçëç åíôïëÞ" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1283 +-msgid "Hide libU77 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1292 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:984 + msgid "Allow math optimizations that may violate IEEE or ISO standards" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1295 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:987 + msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1298 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:990 + msgid "Make \"char\" unsigned by default" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1301 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:993 + msgid "Perform loop unswitching" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1304 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:996 + msgid "Just generate unwind tables for exception handling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1310 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:999 + msgid "Use __cxa_atexit to register destructors" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1316 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1002 + msgid "Add extra commentary to assembler output" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1319 +-msgid "Print g77-specific version information and run internal tests" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1322 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1005 + #, fuzzy + msgid "Use expression value profiles in optimizations" + msgstr "ËÜèïò Ýêöñáóç óôçí áðïôßìçóç: %s" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1325 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1008 + msgid "Discard unused virtual functions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1328 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1011 + msgid "Implement vtables using thunks" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1331 +-msgid "Program is written in VXT (Digital-like) FORTRAN" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1334 +-msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1337 +-msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1340 +-msgid "Enable non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1343 +-msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1349 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1014 + msgid "Emit common-like symbols as weak symbols" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1352 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1017 + msgid "Construct webs and split unrelated uses of single variable" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1355 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1020 + msgid "-fwide-exec-charset=\tConvert all wide strings and character constants to character set " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1358 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1023 + msgid "Generate a #line directive pointing at the current working directory" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1361 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1026 + msgid "Assume signed arithmetic overflow wraps around" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1364 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1029 + msgid "Store strings in writable data section" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1367 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1032 + #, fuzzy + msgid "Emit cross referencing information" + msgstr "åìöÜíéóç ðëçñïöïñéþí ðñïüäïõ" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1370 +-#, fuzzy +-msgid "Print internal debugging-related information" +-msgstr "" +-"EìöÜíéóç ðëçñïöïñéþí êÜëõøçò êþäéêá.\n" +-"\n" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1373 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1035 + msgid "Put zero initialized data in the bss section" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1376 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1038 + msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1379 +-msgid "Treat initial values of 0 like non-zero values" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1382 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1041 + msgid "Generate debug information in default format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1385 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1044 + msgid "Generate debug information in COFF format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1388 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1047 + msgid "Generate debug information in DWARF v2 format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1391 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1050 + msgid "Dump declarations to a .decl file" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1394 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1053 + msgid "Generate debug information in default extended format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1397 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1056 + msgid "Generate debug information in STABS format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1400 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1059 + msgid "Generate debug information in extended STABS format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1403 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1062 + msgid "Generate debug information in VMS format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1406 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1065 + msgid "Generate debug information in XCOFF format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1409 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1068 + msgid "Generate debug information in extended XCOFF format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1412 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1071 + msgid "-idirafter \tAdd to the end of the system include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1415 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1074 + msgid "-imacros \tAccept definition of macros in " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1418 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1077 + msgid "-include \tInclude the contents of before other files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1421 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1080 + msgid "-iprefix \tSpecify as a prefix for next two options" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1424 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1083 + msgid "-isysroot \tSet to be the system root directory" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1427 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1086 + msgid "-isystem \tAdd to the start of the system include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1430 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1089 + msgid "-iwithprefix \tAdd to the end of the system include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1433 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1092 + msgid "-iwithprefixbefore \tAdd to the end of the main include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1445 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1104 + msgid "Do not search standard system include directories (those specified with -isystem will still be used)" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1448 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1107 + msgid "Do not search standard system include directories for C++" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1451 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1110 + #, fuzzy + msgid "-o \tPlace output into " + msgstr " -o <áñ÷åßï> ÔïðïèÝôçóç ôçò åîüäïõ óôï <áñ÷åßï>\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1454 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1113 + #, fuzzy + msgid "Enable function profiling" + msgstr "áäýíáôç ç öüñôùóç äåäïìÝíùí ðñïößë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1457 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1116 + msgid "Issue warnings needed for strict compliance to the standard" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1460 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1119 + msgid "Like -pedantic but issue them as errors" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1463 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1122 + msgid "Generate C header of platform-specific features" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1466 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1125 + msgid "Do not display functions compiled or elapsed time" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1469 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1128 + #, fuzzy + msgid "Remap file names when including files" + msgstr "Ìç ïñéóìÝíï üíïìá %s" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1472 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1131 + msgid "Conform to the ISO 1998 C++ standard" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1475 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1134 + msgid "Conform to the ISO 1990 C standard" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1478 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1137 + msgid "Conform to the ISO 1999 C standard" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1481 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1502 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1505 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1140 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1161 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1164 + msgid "Deprecated in favor of -std=c99" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1484 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1143 + msgid "Conform to the ISO 1998 C++ standard with GNU extensions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1487 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1146 + msgid "Conform to the ISO 1990 C standard with GNU extensions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1490 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1149 + msgid "Conform to the ISO 1999 C standard with GNU extensions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1493 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1152 + msgid "Deprecated in favor of -std=gnu99" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1496 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1155 + msgid "Deprecated in favor of -std=c89" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1499 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1158 + msgid "Conform to the ISO 1990 C standard as amended in 1994" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1508 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1167 + msgid "Enable traditional preprocessing" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1511 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1170 + msgid "-trigraphs\tSupport ISO C trigraphs" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1514 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1173 + msgid "Do not predefine system-specific and GCC-specific macros" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1517 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1176 + msgid "Enable verbose output" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1523 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1179 ++msgid "Display the compiler's version" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1182 + #, fuzzy + msgid "Suppress warnings" + msgstr "%s: ðñïåéäïðïßçóç: " + +-#: config/i386/freebsd-aout.h:215 config/rs6000/sysv4.h:1089 ++#: config/i386/cygwin.h:29 ++msgid "mno-cygwin and mno-win32 are not compatible" ++msgstr "" ++ ++#: config/i386/cygwin.h:70 config/i386/mingw32.h:58 ++msgid "shared and mdll are not compatible" ++msgstr "" ++ ++#: config/i386/freebsd-aout.h:215 + msgid "`-p' not supported; use `-pg' and gprof(1)" + msgstr "" + +@@ -21821,6 +21512,27 @@ + msgid "GCC does not support -CC without using -E" + msgstr "áñ÷åßá fifo äåí õðïóôçñßæïíôáé" + ++#: config/i386/sco5.h:191 ++#, fuzzy ++msgid "-pg not supported on this platform" ++msgstr "ðñïåéäïðïßçóç: ôï --pid=PID äåí õðïóôçñßæåôáé óå áõôü ôï óýóôçìá" ++ ++#: config/i386/sco5.h:192 ++#, fuzzy ++msgid "-p and -pp specified - pick one" ++msgstr "ìç ïñéóìÝíï" ++ ++#: config/i386/sco5.h:266 ++#, fuzzy ++msgid "-G and -static are mutually exclusive" ++msgstr "\"Æþíç %s\" ãñáììÞ êáé åðéëïãÞ -l åßíáé áìïéâáßùò áðïêëåéüìåíá" ++ ++#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22 ++#: config/sparc/sol2-bi.h:167 config/sparc/sol2-bi.h:172 ++#, fuzzy ++msgid "does not support multilib" ++msgstr "áñ÷åßá fifo äåí õðïóôçñßæïíôáé" ++ + #: config/sparc/linux64.h:211 config/sparc/linux64.h:222 + #: config/sparc/netbsd-elf.h:140 config/sparc/netbsd-elf.h:159 + #: config/sparc/sol2-bi.h:195 config/sparc/sol2-bi.h:205 +@@ -21828,43 +21540,39 @@ + msgid "may not use both -m32 and -m64" + msgstr "äåí åßíáé äõíáôü íá ðáñáëçöèåß ï ÷ñÞóôçò êáé ç ïìÜäá" + +-#: config/i386/mingw32.h:58 config/i386/cygwin.h:70 +-msgid "shared and mdll are not compatible" +-msgstr "" +- +-#: config/darwin.h:215 ++#: config/darwin.h:222 + msgid "-current_version only allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:218 ++#: config/darwin.h:225 + msgid "-install_name only allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:223 ++#: config/darwin.h:230 + msgid "-bundle not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:224 ++#: config/darwin.h:231 + msgid "-bundle_loader not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:225 ++#: config/darwin.h:232 + msgid "-client_name not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:228 ++#: config/darwin.h:235 + msgid "-force_cpusubtype_ALL not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:229 ++#: config/darwin.h:236 + msgid "-force_flat_namespace not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:231 ++#: config/darwin.h:238 + msgid "-keep_private_externs not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:232 ++#: config/darwin.h:239 + msgid "-private_bundle not allowed with -dynamiclib" + msgstr "" + +@@ -21881,51 +21589,10 @@ + msgid "may not use both -EB and -EL" + msgstr "" + +-#: config/mips/mips.h:988 +-msgid "-pipe is not supported" +-msgstr "ôï -pipe äåí õðïóôçñßæåôáé" +- +-#: java/jvspec.c:80 ada/lang-specs.h:34 gcc.c:767 +-msgid "-pg and -fomit-frame-pointer are incompatible" +-msgstr "" +- +-#: java/lang-specs.h:34 +-msgid "-fjni and -femit-class-files are incompatible" +-msgstr "" +- +-#: java/lang-specs.h:35 +-msgid "-fjni and -femit-class-file are incompatible" +-msgstr "" +- +-#: java/lang-specs.h:36 java/lang-specs.h:37 +-msgid "-femit-class-file should used along with -fsyntax-only" +-msgstr "" +- + #: treelang/lang-specs.h:52 + msgid "-pg or -p and -fomit-frame-pointer are incompatible" + msgstr "" + +-#: config/sparc/sol2-bi.h:167 config/sparc/sol2-bi.h:172 +-#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22 +-#, fuzzy +-msgid "does not support multilib" +-msgstr "áñ÷åßá fifo äåí õðïóôçñßæïíôáé" +- +-#: config/i386/sco5.h:191 +-#, fuzzy +-msgid "-pg not supported on this platform" +-msgstr "ðñïåéäïðïßçóç: ôï --pid=PID äåí õðïóôçñßæåôáé óå áõôü ôï óýóôçìá" +- +-#: config/i386/sco5.h:192 +-#, fuzzy +-msgid "-p and -pp specified - pick one" +-msgstr "ìç ïñéóìÝíï" +- +-#: config/i386/sco5.h:266 +-#, fuzzy +-msgid "-G and -static are mutually exclusive" +-msgstr "\"Æþíç %s\" ãñáììÞ êáé åðéëïãÞ -l åßíáé áìïéâáßùò áðïêëåéüìåíá" +- + #: config/arm/arm.h:198 + #, fuzzy + msgid "-mapcs-26 and -mapcs-32 may not be used together" +@@ -21951,6 +21618,14 @@ + msgid "the m210 does not have little endian support" + msgstr "" + ++#: config/mips/mips.h:988 ++msgid "-pipe is not supported" ++msgstr "ôï -pipe äåí õðïóôçñßæåôáé" ++ ++#: ada/lang-specs.h:34 java/jvspec.c:80 gcc.c:767 ++msgid "-pg and -fomit-frame-pointer are incompatible" ++msgstr "" ++ + #: ada/lang-specs.h:36 + msgid "one of -c, -S, -gnatc, -gnatz, or -gnats is required for Ada" + msgstr "" +@@ -21964,8 +21639,16 @@ + msgid "-msingle-float and -msoft-float can not both be specified" + msgstr "" + +-#: config/rs6000/darwin.h:98 +-msgid " conflicting code gen style switches are used" ++#: java/lang-specs.h:34 ++msgid "-fjni and -femit-class-files are incompatible" ++msgstr "" ++ ++#: java/lang-specs.h:35 ++msgid "-fjni and -femit-class-file are incompatible" ++msgstr "" ++ ++#: java/lang-specs.h:36 java/lang-specs.h:37 ++msgid "-femit-class-file should used along with -fsyntax-only" + msgstr "" + + #: gcc.c:743 +@@ -21976,8 +21659,8 @@ + msgid "-E required when input is from standard input" + msgstr "" + +-#: config/i386/cygwin.h:29 +-msgid "mno-cygwin and mno-win32 are not compatible" ++#: config/rs6000/darwin.h:98 ++msgid " conflicting code gen style switches are used" + msgstr "" + + #, fuzzy +@@ -22448,10 +22131,6 @@ + #~ msgstr "Äåí ïñßóôçêå óõíôáêôéêü" + + #, fuzzy +-#~ msgid "`%T' is not a class or namespace" +-#~ msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï" +- +-#, fuzzy + #~ msgid "no type `%D' in `%T'" + #~ msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'" + +@@ -22502,6 +22181,10 @@ + #~ msgstr "åóùôåñéêü óöÜëìá óôï %s, ãñáììÞ %u" + + #, fuzzy ++#~ msgid "Warn if modifiers are specified when not necessary" ++#~ msgstr "äå ìðïñïýí íá äçëþíïíôáé áñ÷åßá üôáí ãßíåôáé ÷ñÞóç ôïõ --string" ++ ++#, fuzzy + #~ msgid "multiple declarations for method `%s'" + #~ msgstr "ðïëëáðëüò áñéèìüò åðéëïãþí ôçí åíôïëÞ `s'" + +Index: gcc/po/es.po +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/po/es.po,v +retrieving revision 1.7.8.5 +retrieving revision 1.7.8.6 +diff -u -r1.7.8.5 -r1.7.8.6 +--- gcc/po/es.po 24 Sep 2004 16:59:38 -0000 1.7.8.5 ++++ gcc/po/es.po 7 Nov 2004 19:59:18 -0000 1.7.8.6 +@@ -1,13 +1,13 @@ +-# Mensajes en español para gcc-3.4.2 ++# Mensajes en español para gcc-3.4.3 + # Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. + # Cristian Othón Martínez Vera , 2001, 2002, 2003, 2004. + # + msgid "" + msgstr "" +-"Project-Id-Version: gcc 3.4.2\n" ++"Project-Id-Version: gcc 3.4.3\n" + "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" +-"POT-Creation-Date: 2004-07-01 11:41-0700\n" +-"PO-Revision-Date: 2004-09-23 08:54-0500\n" ++"POT-Creation-Date: 2004-11-04 19:12-0800\n" ++"PO-Revision-Date: 2004-11-05 09:24-0600\n" + "Last-Translator: Cristian Othón Martínez Vera \n" + "Language-Team: Spanish \n" + "MIME-Version: 1.0\n" +@@ -34,16 +34,16 @@ + msgid "`%s' attribute only applies to function types" + msgstr "el atributo `%s' se aplica solamente a tipos de funciones" + +-#: attribs.c:416 c-common.c:4307 c-common.c:4326 c-common.c:4344 +-#: c-common.c:4371 c-common.c:4390 c-common.c:4413 c-common.c:4436 +-#: c-common.c:4462 c-common.c:4496 c-common.c:4540 c-common.c:4568 +-#: c-common.c:4596 c-common.c:4615 c-common.c:4870 c-common.c:4892 +-#: c-common.c:4927 c-common.c:4994 c-common.c:5040 c-common.c:5098 +-#: c-common.c:5129 c-common.c:5475 c-common.c:5498 c-common.c:5537 +-#: config/arm/arm.c:2281 config/arm/arm.c:2308 config/avr/avr.c:4539 +-#: config/h8300/h8300.c:4284 config/h8300/h8300.c:4307 config/i386/i386.c:1620 +-#: config/i386/i386.c:15397 config/i386/winnt.c:86 config/ia64/ia64.c:1057 +-#: config/ip2k/ip2k.c:3151 ++#: attribs.c:416 c-common.c:4306 c-common.c:4325 c-common.c:4343 ++#: c-common.c:4370 c-common.c:4389 c-common.c:4412 c-common.c:4435 ++#: c-common.c:4461 c-common.c:4495 c-common.c:4539 c-common.c:4567 ++#: c-common.c:4595 c-common.c:4614 c-common.c:4881 c-common.c:4903 ++#: c-common.c:4938 c-common.c:5005 c-common.c:5051 c-common.c:5109 ++#: c-common.c:5140 c-common.c:5440 c-common.c:5463 c-common.c:5502 ++#: config/arm/arm.c:2281 config/arm/arm.c:2308 config/avr/avr.c:4504 ++#: config/h8300/h8300.c:4284 config/h8300/h8300.c:4307 config/i386/i386.c:1626 ++#: config/i386/i386.c:15398 config/i386/winnt.c:86 config/ia64/ia64.c:1057 ++#: config/ip2k/ip2k.c:3151 config/rs6000/rs6000.c:15035 + #, c-format + msgid "`%s' attribute ignored" + msgstr "se ignora el atributo `%s'" +@@ -117,7 +117,7 @@ + + #. We can, however, treat "undefined" any way we please. + #. Call abort to encourage the user to fix the program. +-#: builtins.c:4134 c-typeck.c:1733 ++#: builtins.c:4134 c-typeck.c:1713 + msgid "if this code is reached, the program will abort" + msgstr "si se alcanza este código, el programa abortará" + +@@ -154,386 +154,391 @@ + msgid "target format does not support infinity" + msgstr "el formato objetivo no tiene soporte para infinito" + +-#: c-common.c:917 ++#: c-common.c:916 + msgid "%Hsuggest explicit braces to avoid ambiguous `else'" + msgstr "%Hsugiere llaves explícitas para evitar un `else' ambiguo" + +-#: c-common.c:1141 ++#: c-common.c:1140 + msgid "%J'%D' is not defined outside of function scope" + msgstr "%J'%D' no está definido fuera del ámbito de la función" + +-#: c-common.c:1161 ++#: c-common.c:1160 + #, c-format + msgid "string length `%d' is greater than the length `%d' ISO C%d compilers are required to support" + msgstr "la longitud de la cadena `%d' es mayor que la longitud `%d', la máxima que los compiladores ISO C%d deben soportar" + +-#: c-common.c:1201 ++#: c-common.c:1200 + msgid "overflow in constant expression" + msgstr "desbordamiento en la expresión constante" + +-#: c-common.c:1221 ++#: c-common.c:1220 + msgid "integer overflow in expression" + msgstr "desbordamiento entero en la expresión" + +-#: c-common.c:1230 ++#: c-common.c:1229 + msgid "floating point overflow in expression" + msgstr "desbordamiento de coma flotante en la expresión" + +-#: c-common.c:1236 ++#: c-common.c:1235 + msgid "vector overflow in expression" + msgstr "desbordamiento vectorial en la expresión" + + #. This detects cases like converting -129 or 256 to unsigned char. +-#: c-common.c:1258 ++#: c-common.c:1257 + msgid "large integer implicitly truncated to unsigned type" + msgstr "entero grande truncado implícitamente al tipo unsigned" + +-#: c-common.c:1260 ++#: c-common.c:1259 + msgid "negative integer implicitly converted to unsigned type" + msgstr "entero negativo truncado implícitamente al tipo unsigned" + +-#: c-common.c:1306 ++#: c-common.c:1305 + msgid "overflow in implicit constant conversion" + msgstr "desbordamiento en la conversión implícita de constante" + +-#: c-common.c:1442 ++#: c-common.c:1441 + #, c-format + msgid "operation on `%s' may be undefined" + msgstr "la operación sobre `%s' puede no estar definida" + +-#: c-common.c:1726 ++#: c-common.c:1725 + msgid "expression statement has incomplete type" + msgstr "la declaración de la expresión tiene tipo de dato incompleto" + +-#: c-common.c:1758 ++#: c-common.c:1757 + msgid "case label does not reduce to an integer constant" + msgstr "la etiqueta de `case' no se reduce a una constante entera" + +-#: c-common.c:2088 ++#: c-common.c:2087 + msgid "invalid truth-value expression" + msgstr "expresión de valor verdadero inválida" + +-#: c-common.c:2139 ++#: c-common.c:2138 + #, c-format + msgid "invalid operands to binary %s" + msgstr "operadores inválidos para el binario %s" + +-#: c-common.c:2373 ++#: c-common.c:2372 + msgid "comparison is always false due to limited range of data type" + msgstr "la comparación siempre es falsa debido al rango limitado del tipo de datos" + +-#: c-common.c:2375 ++#: c-common.c:2374 + msgid "comparison is always true due to limited range of data type" + msgstr "la comparación siempre es verdadera debido al rango limitado del tipo de datos" + +-#: c-common.c:2445 ++#: c-common.c:2444 + msgid "comparison of unsigned expression >= 0 is always true" + msgstr "la comparación de una expresión unsigned >= 0 siempre es verdadera" + +-#: c-common.c:2454 ++#: c-common.c:2453 + msgid "comparison of unsigned expression < 0 is always false" + msgstr "la comparación de una expresión unsigned < 0 siempre es falsa" + +-#: c-common.c:2499 ++#: c-common.c:2498 + msgid "pointer of type `void *' used in arithmetic" + msgstr "se usó un puntero de tipo `void *' en la aritmética" + +-#: c-common.c:2505 ++#: c-common.c:2504 + msgid "pointer to a function used in arithmetic" + msgstr "se usó un puntero a una función en la aritmética" + +-#: c-common.c:2511 ++#: c-common.c:2510 + msgid "pointer to member function used in arithmetic" + msgstr "se usó un puntero a una función miembro en la aritmética" + +-#: c-common.c:2600 f/com.c:14734 ++#: c-common.c:2599 f/com.c:14734 + msgid "struct type value used where scalar is required" + msgstr "se usa un valor de tipo struct cuando se requiere un escalar" + +-#: c-common.c:2604 f/com.c:14738 ++#: c-common.c:2603 f/com.c:14738 + msgid "union type value used where scalar is required" + msgstr "se usa un valor de tipo union cuando se requiere un escalar" + +-#: c-common.c:2608 f/com.c:14742 ++#: c-common.c:2607 f/com.c:14742 + msgid "array type value used where scalar is required" + msgstr "se usa un valor de tipo matriz cuando se requiere un escalar" + + #. Common Ada/Pascal programmer's mistake. We always warn + #. about this since it is so bad. +-#: c-common.c:2645 ++#: c-common.c:2644 + msgid "the address of `%D', will always evaluate as `true'" + msgstr "la dirección de `%D', siempre se evaluará como `true'" + +-#: c-common.c:2739 f/com.c:14874 ++#: c-common.c:2738 f/com.c:14874 + msgid "suggest parentheses around assignment used as truth value" + msgstr "se sugieren paréntesis alrededor de la asignación usada como valor verdadero" + +-#: c-common.c:2785 c-common.c:2825 ++#: c-common.c:2784 c-common.c:2824 + msgid "invalid use of `restrict'" + msgstr "uso inválido de `restrict'" + +-#: c-common.c:2935 ++#: c-common.c:2934 + msgid "invalid application of `sizeof' to a function type" + msgstr "aplicación inválida de `sizeof' a un tipo de función" + +-#: c-common.c:2945 ++#: c-common.c:2944 + #, c-format + msgid "invalid application of `%s' to a void type" + msgstr "aplicación inválida de `%s' a un tipo void" + +-#: c-common.c:2951 ++#: c-common.c:2950 + msgid "invalid application of `%s' to incomplete type `%T' " + msgstr "aplicación inválida de `%s' a un tipo de dato incompleto `%T' " + +-#: c-common.c:2992 ++#: c-common.c:2991 + msgid "`__alignof' applied to a bit-field" + msgstr "`__alignof' applicado a un campo de bits" + +-#: c-common.c:3484 ++#: c-common.c:3483 + #, c-format + msgid "cannot disable built-in function `%s'" + msgstr "no se puede desactivar la función interna `%s'" + +-#: c-common.c:3645 c-typeck.c:1974 ++#: c-common.c:3644 c-typeck.c:1954 + #, c-format + msgid "too few arguments to function `%s'" + msgstr "muy pocos argumentos para la función `%s'" + +-#: c-common.c:3651 c-typeck.c:1835 ++#: c-common.c:3650 c-typeck.c:1815 + #, c-format + msgid "too many arguments to function `%s'" + msgstr "demasiados argumentos para la función `%s'" + +-#: c-common.c:3670 ++#: c-common.c:3669 + #, c-format + msgid "non-floating-point argument to function `%s'" + msgstr "argumentos que no son de coma flotante para la función `%s'" + +-#: c-common.c:3897 ++#: c-common.c:3896 + msgid "pointers are not permitted as case values" + msgstr "no se permite usar punteros como valores case" + +-#: c-common.c:3901 ++#: c-common.c:3900 + msgid "range expressions in switch statements are non-standard" + msgstr "las expresiones de rango en las declaraciones switch no son estándard" + +-#: c-common.c:3930 ++#: c-common.c:3929 + msgid "empty range specified" + msgstr "se especificó un rango vacío" + +-#: c-common.c:3981 ++#: c-common.c:3980 + msgid "duplicate (or overlapping) case value" + msgstr "valor case duplicado (o con solapamiento de rangos)" + +-#: c-common.c:3982 ++#: c-common.c:3981 + msgid "%Jthis is the first entry overlapping that value" + msgstr "%Jesta es la primera entrada que solapa ese valor" + +-#: c-common.c:3986 ++#: c-common.c:3985 + msgid "duplicate case value" + msgstr "valor de case duplicado" + +-#: c-common.c:3987 ++#: c-common.c:3986 + msgid "%Jpreviously used here" + msgstr "%Jse usó previamente aquí" + +-#: c-common.c:3991 ++#: c-common.c:3990 + msgid "multiple default labels in one switch" + msgstr "múltiples etiquetas por defecto en un solo switch" + +-#: c-common.c:3992 ++#: c-common.c:3991 + msgid "%Jthis is the first default label" + msgstr "%Jesta es la primera etiqueta por defecto" + +-#: c-common.c:4017 ++#: c-common.c:4016 + msgid "taking the address of a label is non-standard" + msgstr "tomar la dirección de una etiqueta no es estándard" + +-#: c-common.c:4063 ++#: c-common.c:4062 + msgid "%Hignoring return value of `%D', declared with attribute warn_unused_result" + msgstr "%Hse ignora el valor de devolución de `%D', se declaró con el atributo warn_unused_result" + +-#: c-common.c:4068 ++#: c-common.c:4067 + msgid "%Hignoring return value of function declared with attribute warn_unused_result" + msgstr "%Hse ignora el valor de devolución de la función declarada con el atributo warn_unused_result" + +-#: c-common.c:4649 ++#: c-common.c:4651 + #, c-format + msgid "unknown machine mode `%s'" + msgstr "se desconoce el modo de máquina `%s'" + +-#: c-common.c:4652 ++#: c-common.c:4654 + #, c-format + msgid "no data type for mode `%s'" + msgstr "no hay tipo de datos para el modo `%s'" + +-#: c-common.c:4656 ++#: c-common.c:4658 + #, c-format + msgid "invalid pointer mode `%s'" + msgstr "modo de puntero `%s' inválido" + +-#: c-common.c:4663 c-common.c:5226 ++#: c-common.c:4665 c-common.c:5237 + #, c-format + msgid "unable to emulate '%s'" + msgstr "no se puede emular '%s'" + +-#: c-common.c:4707 ++#: c-common.c:4686 ++#, c-format ++msgid "mode `%s' applied to inappropriate type" ++msgstr "se aplicó el modo `%s' a un tipo inapropiado" ++ ++#: c-common.c:4718 + msgid "%Jsection attribute cannot be specified for local variables" + msgstr "%Jno se puede especificar el atributo de sección para las variables locales" + +-#: c-common.c:4718 ++#: c-common.c:4729 + msgid "%Jsection of '%D' conflicts with previous declaration" + msgstr "%Jla sección de '%D' causa conflictos con la declaración previa" + +-#: c-common.c:4727 ++#: c-common.c:4738 + msgid "%Jsection attribute not allowed for '%D'" + msgstr "%Jno se permite un atributo de sección para '%D'" + +-#: c-common.c:4733 ++#: c-common.c:4744 + msgid "%Jsection attributes are not supported for this target" + msgstr "%Jno se soportan atributos de sección en este objetivo" + +-#: c-common.c:4771 ++#: c-common.c:4782 + msgid "requested alignment is not a constant" + msgstr "la alineación solicitada no es una constante" + +-#: c-common.c:4776 ++#: c-common.c:4787 + msgid "requested alignment is not a power of 2" + msgstr "la alineación solicitada no es una potencia de 2" + +-#: c-common.c:4781 ++#: c-common.c:4792 + msgid "requested alignment is too large" + msgstr "la alineación solicitada es demasiado grande" + +-#: c-common.c:4807 ++#: c-common.c:4818 + msgid "%Jalignment may not be specified for '%D'" + msgstr "%Jla alineación puede no estar especificada para '%D'" + +-#: c-common.c:4845 ++#: c-common.c:4856 + msgid "%J'%D' defined both normally and as an alias" + msgstr "%J'%D' definido normalmente y como un alias" + +-#: c-common.c:4855 ++#: c-common.c:4866 + msgid "alias arg not a string" + msgstr "el argumento de alias no es una cadena" + +-#: c-common.c:4898 ++#: c-common.c:4909 + msgid "visibility arg not a string" + msgstr "el argumento de visibilidad no es una cadena" + +-#: c-common.c:4911 ++#: c-common.c:4922 + msgid "visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\"" + msgstr "el argumento de visibilidad debe ser \"default\", \"hidden\", \"protected\" o \"internal\"" + +-#: c-common.c:4937 ++#: c-common.c:4948 + msgid "tls_model arg not a string" + msgstr "el argumento de tls_model no es una cadena" + +-#: c-common.c:4946 ++#: c-common.c:4957 + msgid "tls_model arg must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\"" + msgstr "el argumento de tls_model debe ser uno de \"local-exec\", \"initial-exec\", \"local-dynamic\" ó \"global-dynamic\"" + +-#: c-common.c:4968 c-common.c:5014 ++#: c-common.c:4979 c-common.c:5025 + msgid "%J'%E' attribute applies only to functions" + msgstr "el atributo %J'%E' se aplica solamente a funciones" + +-#: c-common.c:4973 c-common.c:5019 ++#: c-common.c:4984 c-common.c:5030 + msgid "%Jcan't set '%E' attribute after definition" + msgstr "%Jno se puede establecer el atributo '%E' después de la definición" + +-#: c-common.c:5095 ++#: c-common.c:5106 + #, c-format + msgid "`%s' attribute ignored for `%s'" + msgstr "se ignora el atributo `%s' para `%s'" + +-#: c-common.c:5158 ++#: c-common.c:5169 + #, c-format + msgid "invalid vector type for attribute `%s'" + msgstr "tipo vector inválido para el atributo `%s'" + +-#: c-common.c:5182 c-common.c:5214 ++#: c-common.c:5193 c-common.c:5225 + msgid "no vector mode with the size and type specified could be found" + msgstr "no se puede encontrar un modo vector con el tamaño y tipo especificados" + +-#: c-common.c:5316 ++#: c-common.c:5281 + msgid "nonnull attribute without arguments on a non-prototype" + msgstr "atributo que no es nulo sin argumentos en uno que no es prototipo" + +-#: c-common.c:5331 ++#: c-common.c:5296 + #, c-format + msgid "nonnull argument has invalid operand number (arg %lu)" + msgstr "un argumento que no es nulo tiene un número inválido de operandos (arg %lu)" + +-#: c-common.c:5350 ++#: c-common.c:5315 + #, c-format + msgid "nonnull argument with out-of-range operand number (arg %lu, operand %lu)" + msgstr "un argumento que no es nulo con un número de operandos fuera de rango (arg %lu, operando %lu)" + +-#: c-common.c:5358 ++#: c-common.c:5323 + #, c-format + msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)" + msgstr "un argumento que no es nulo hace referencia a un operando que no es puntero (arg %lu, operando %lu)" + +-#: c-common.c:5438 ++#: c-common.c:5403 + #, c-format + msgid "null argument where non-null required (arg %lu)" + msgstr "un argumento nulo donde se requiere uno que no sea nulo (arg %lu)" + +-#: c-common.c:5509 ++#: c-common.c:5474 + msgid "cleanup arg not an identifier" + msgstr "el argumento de limpieza no es un identificador" + +-#: c-common.c:5516 ++#: c-common.c:5481 + msgid "cleanup arg not a function" + msgstr "el argumento de limpieza no es una función" + +-#: c-common.c:5877 ++#: c-common.c:5842 + #, c-format + msgid "%s at end of input" + msgstr "%s al final de la entrada" + +-#: c-common.c:5883 ++#: c-common.c:5848 + #, c-format + msgid "%s before %s'%c'" + msgstr "%s antes de %s'%c'" + +-#: c-common.c:5885 ++#: c-common.c:5850 + #, c-format + msgid "%s before %s'\\x%x'" + msgstr "%s antes de %s'\\x%x'" + +-#: c-common.c:5889 ++#: c-common.c:5854 + #, c-format + msgid "%s before string constant" + msgstr "%s antes de una constante de cadena" + +-#: c-common.c:5891 ++#: c-common.c:5856 + #, c-format + msgid "%s before numeric constant" + msgstr "%s antes de una constante numérica" + +-#: c-common.c:5893 ++#: c-common.c:5858 + #, c-format + msgid "%s before \"%s\"" + msgstr "%s antes de \"%s\"" + +-#: c-common.c:5895 ++#: c-common.c:5860 + #, c-format + msgid "%s before '%s' token" + msgstr "%s antes del elemento '%s'" + + #. Use `%s' to print the string in case there are any escape + #. characters in the message. +-#: c-common.c:5897 c-typeck.c:2612 c-typeck.c:4004 c-typeck.c:4019 +-#: c-typeck.c:4034 final.c:2776 final.c:2778 gcc.c:4581 rtl-error.c:109 +-#: toplev.c:1357 config/cris/cris.c:552 cp/parser.c:1848 cp/typeck.c:4155 ++#: c-common.c:5862 c-typeck.c:2592 c-typeck.c:3984 c-typeck.c:3999 ++#: c-typeck.c:4014 final.c:2776 final.c:2778 gcc.c:4584 rtl-error.c:109 ++#: toplev.c:1357 config/cris/cris.c:552 cp/parser.c:1848 cp/typeck.c:4173 + #: java/expr.c:356 java/verify.c:1456 java/verify.c:1457 java/verify.c:1472 + #, c-format + msgid "%s" + msgstr "%s" + +-#: c-convert.c:82 c-typeck.c:1211 c-typeck.c:3444 cp/typeck.c:1363 +-#: cp/typeck.c:5708 treelang/tree-convert.c:79 ++#: c-convert.c:82 c-typeck.c:1211 c-typeck.c:3424 cp/typeck.c:1363 ++#: cp/typeck.c:5729 treelang/tree-convert.c:79 + msgid "void value not ignored as it ought to be" + msgstr "valor void no ignorado como debería de ser" + +@@ -699,386 +704,386 @@ + msgid "%Jnon-const declaration of '%D' follows const declaration" + msgstr "%Jla declaración que no es const de '%D' a continuación de una declaración que es const" + +-#: c-decl.c:1262 ++#: c-decl.c:1267 + msgid "%Jredundant redeclaration of '%D'" + msgstr "%Jdeclaración redundante de '%D'" + +-#: c-decl.c:1581 ++#: c-decl.c:1586 + msgid "%Jdeclaration of '%D' shadows a parameter" + msgstr "%Jla declaración de '%D' oscurece un parámetro" + +-#: c-decl.c:1583 ++#: c-decl.c:1588 + msgid "%Jdeclaration of '%D' shadows a global declaration" + msgstr "%Jla declaración de '%D' oscurece una declaración global" + +-#: c-decl.c:1585 ++#: c-decl.c:1590 + msgid "%Jdeclaration of '%D' shadows a previous local" + msgstr "%Jla declaración de '%D' obscurece a una declaración local previa" + +-#: c-decl.c:1587 cp/name-lookup.c:969 cp/name-lookup.c:992 ++#: c-decl.c:1592 cp/name-lookup.c:969 cp/name-lookup.c:992 + #: cp/name-lookup.c:1000 + msgid "%Jshadowed declaration is here" + msgstr "%Jaquí está la declaración oscurecida" + +-#: c-decl.c:1697 ++#: c-decl.c:1702 + #, c-format + msgid "nested extern declaration of `%s'" + msgstr "declaración externa anidada de `%s'" + +-#: c-decl.c:1838 objc/objc-act.c:2534 objc/objc-act.c:6794 ++#: c-decl.c:1843 objc/objc-act.c:2534 objc/objc-act.c:6794 + msgid "%Jprevious declaration of '%D'" + msgstr "%Jdeclaración previa de '%D'" + +-#: c-decl.c:1879 c-decl.c:1881 ++#: c-decl.c:1884 c-decl.c:1886 + #, c-format + msgid "implicit declaration of function `%s'" + msgstr "declaración implícita de la función `%s'" + +-#: c-decl.c:1897 ++#: c-decl.c:1902 + #, c-format + msgid "`%s' undeclared here (not in a function)" + msgstr "`%s' no se declaró aquí (no en una función)" + +-#: c-decl.c:1903 ++#: c-decl.c:1908 + #, c-format + msgid "`%s' undeclared (first use in this function)" + msgstr "`%s' no se declaró aquí (primer uso en esta función)" + +-#: c-decl.c:1908 ++#: c-decl.c:1913 + msgid "(Each undeclared identifier is reported only once" + msgstr "(Cada identificador no declarado solamente se reporta una vez" + +-#: c-decl.c:1909 ++#: c-decl.c:1914 + msgid "for each function it appears in.)" + msgstr "para cada funcion en la que aparece.)" + +-#: c-decl.c:1962 ++#: c-decl.c:1967 + #, c-format + msgid "label %s referenced outside of any function" + msgstr "la etiqueta %s es referenciada fuera de cualquier función" + +-#: c-decl.c:2009 ++#: c-decl.c:2014 + #, c-format + msgid "duplicate label declaration `%s'" + msgstr "declaración de la etiqueta `%s' duplicada" + +-#: c-decl.c:2010 ++#: c-decl.c:2015 + msgid "%Jthis is a previous declaration" + msgstr "%Jesta es una declaración previa" + +-#: c-decl.c:2045 ++#: c-decl.c:2050 + msgid "%Hduplicate label `%D'" + msgstr "%Hetiqueta duplicada `%D'" + +-#: c-decl.c:2047 ++#: c-decl.c:2052 + msgid "%J`%D' previously defined here" + msgstr "%Jse definió `%D' previamente aquí" + +-#: c-decl.c:2049 ++#: c-decl.c:2054 + msgid "%J`%D' previously declared here" + msgstr "%Jse declaró `%D' previamente aquí" + +-#: c-decl.c:2069 ++#: c-decl.c:2074 + msgid "%Htraditional C lacks a separate namespace for labels, identifier `%s' conflicts" + msgstr "%HC tradicional carece de un espacio de nombres separado para etiquetas, el identificador `%s' tiene conflictos con " + +-#: c-decl.c:2140 ++#: c-decl.c:2145 + msgid "%H`%s' defined as wrong kind of tag" + msgstr "%H`%s' definido como un tipo erróneo de etiqueta" + +-#: c-decl.c:2378 ++#: c-decl.c:2383 + msgid "unnamed struct/union that defines no instances" + msgstr "struct/union sin nombre que no define ninguna instancia" + +-#: c-decl.c:2397 ++#: c-decl.c:2402 + msgid "useless keyword or type name in empty declaration" + msgstr "palabras claves inútiles o nombres de tipos en una declaración vacía" + +-#: c-decl.c:2404 ++#: c-decl.c:2409 + msgid "two types specified in one empty declaration" + msgstr "se especificaron dos tipos en una declaración vacía" + +-#: c-decl.c:2409 c-parse.y:735 c-parse.y:737 objc/objc-parse.y:776 +-#: objc/objc-parse.y:778 objc/objc-parse.y:3017 ++#: c-decl.c:2414 c-parse.y:735 c-parse.y:737 objc/objc-parse.y:776 ++#: objc/objc-parse.y:778 objc/objc-parse.y:3016 + msgid "empty declaration" + msgstr "declaración vacía" + +-#: c-decl.c:2435 ++#: c-decl.c:2440 + msgid "ISO C90 does not support `static' or type qualifiers in parameter array declarators" + msgstr "ISO C90 no tiene soporte para `static' o calificadores de tipo en los declaradores de parámetros de matrices" + +-#: c-decl.c:2437 ++#: c-decl.c:2442 + msgid "ISO C90 does not support `[*]' array declarators" + msgstr "ISO C90 no tiene soporte para declaradores de matriz `[*]'" + +-#: c-decl.c:2440 ++#: c-decl.c:2445 + msgid "GCC does not yet properly implement `[*]' array declarators" + msgstr "GCC aún no implementa adecuadamente los declaradores de matriz `[*]'" + +-#: c-decl.c:2456 ++#: c-decl.c:2461 + msgid "static or type qualifiers in abstract declarator" + msgstr "static o calificador de tipo en un declarador abstracto" + +-#: c-decl.c:2526 ++#: c-decl.c:2531 + msgid "%J'%D' is usually a function" + msgstr "%J'%D' generalmente es una función" + +-#: c-decl.c:2535 ++#: c-decl.c:2540 + #, c-format + msgid "typedef `%s' is initialized (use __typeof__ instead)" + msgstr "typedef `%s' está inicializado (utilice __typeof__ en su lugar)" + +-#: c-decl.c:2541 ++#: c-decl.c:2546 + #, c-format + msgid "function `%s' is initialized like a variable" + msgstr "la función `%s' está inicializada como una variable" + + #. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE. +-#: c-decl.c:2548 ++#: c-decl.c:2553 + #, c-format + msgid "parameter `%s' is initialized" + msgstr "el parámetro `%s' está inicializado" + +-#: c-decl.c:2568 c-typeck.c:4254 ++#: c-decl.c:2573 c-typeck.c:4234 + msgid "variable-sized object may not be initialized" + msgstr "un objeto de tamaño variable no puede ser inicializado" + +-#: c-decl.c:2574 ++#: c-decl.c:2579 + #, c-format + msgid "variable `%s' has initializer but incomplete type" + msgstr "la variable `%s' tiene un inicializador, pero es de tipo de dato incompleto" + +-#: c-decl.c:2580 ++#: c-decl.c:2585 + #, c-format + msgid "elements of array `%s' have incomplete type" + msgstr "algunos elementos de la matriz `%s' tienen tipo de dato incompleto" + +-#: c-decl.c:2649 c-decl.c:5451 cp/decl.c:3761 cp/decl.c:10141 ++#: c-decl.c:2654 c-decl.c:5462 cp/decl.c:3775 cp/decl.c:10238 + msgid "%Jinline function '%D' given attribute noinline" + msgstr "%Jse le dió a la función inline '%D' un atributo noinline" + +-#: c-decl.c:2725 ++#: c-decl.c:2730 + msgid "%Jinitializer fails to determine size of '%D'" + msgstr "%Jel inicializador no puede determinar el tamaño de '%D'" + +-#: c-decl.c:2730 ++#: c-decl.c:2735 + msgid "%Jarray size missing in '%D'" + msgstr "%Jfalta el tamaño de la matriz en '%D'" + +-#: c-decl.c:2746 ++#: c-decl.c:2751 + msgid "%Jzero or negative size array '%D'" + msgstr "%Jmatriz '%D' de tamaño cero o negativo" + +-#: c-decl.c:2774 ++#: c-decl.c:2779 + msgid "%Jstorage size of '%D' isn't known" + msgstr "%Jno se conoce el tamaño de almacenamiento de '%D'" + +-#: c-decl.c:2784 ++#: c-decl.c:2789 + msgid "%Jstorage size of '%D' isn't constant" + msgstr "%Jel tamaño de almacenamiento de '%D' no es una constante" + +-#: c-decl.c:2867 ++#: c-decl.c:2872 + msgid "%Jignoring asm-specifier for non-static local variable '%D'" + msgstr "%Jse ignora el especificador asm para la variable local no estática '%D'" + +-#: c-decl.c:2978 ++#: c-decl.c:2983 + msgid "ISO C forbids forward parameter declarations" + msgstr "ISO C prohíbe declaraciones adelantadas de parámetros" + +-#: c-decl.c:3160 ++#: c-decl.c:3165 + msgid "" + msgstr "" + +-#: c-decl.c:3169 ++#: c-decl.c:3174 + #, c-format + msgid "bit-field `%s' width not an integer constant" + msgstr "la anchura del campo de bits `%s' no es una constante entera" + +-#: c-decl.c:3177 ++#: c-decl.c:3182 + #, c-format + msgid "negative width in bit-field `%s'" + msgstr "anchura negativa en el campo de bit `%s'" + +-#: c-decl.c:3182 ++#: c-decl.c:3187 + #, c-format + msgid "zero width for bit-field `%s'" + msgstr "anchura cero para el campo de bits `%s'" + +-#: c-decl.c:3192 ++#: c-decl.c:3197 + #, c-format + msgid "bit-field `%s' has invalid type" + msgstr "el campo de bits `%s' tiene un tipo inválido" + +-#: c-decl.c:3201 ++#: c-decl.c:3206 + #, c-format + msgid "type of bit-field `%s' is a GCC extension" + msgstr "el tipo de campo de bits `%s' es una extensión de GCC" + +-#: c-decl.c:3210 ++#: c-decl.c:3215 + #, c-format + msgid "width of `%s' exceeds its type" + msgstr "la anchura de `%s' excede su tipo" + +-#: c-decl.c:3220 ++#: c-decl.c:3225 + #, c-format + msgid "`%s' is narrower than values of its type" + msgstr "`%s' es más estrecho que los valores de su tipo" + +-#: c-decl.c:3370 cp/decl.c:6805 ++#: c-decl.c:3375 cp/decl.c:6900 + msgid "`long long long' is too long for GCC" + msgstr "`long long long' es demasiado largo para GCC" + +-#: c-decl.c:3375 ++#: c-decl.c:3380 + msgid "ISO C90 does not support `long long'" + msgstr "ISO C90 no da soporte a `long long'" + +-#: c-decl.c:3384 c-decl.c:3387 cp/decl.c:6810 ++#: c-decl.c:3389 c-decl.c:3392 cp/decl.c:6905 + #, c-format + msgid "duplicate `%s'" + msgstr "`%s' duplicado" + +-#: c-decl.c:3397 cp/decl.c:6816 ++#: c-decl.c:3402 cp/decl.c:6911 + msgid "`__thread' before `extern'" + msgstr "`__thread' antes de `extern'" + +-#: c-decl.c:3399 cp/decl.c:6818 ++#: c-decl.c:3404 cp/decl.c:6913 + msgid "`__thread' before `static'" + msgstr "`__thread' antes de `static'" + +-#: c-decl.c:3407 cp/decl.c:6845 ++#: c-decl.c:3412 cp/decl.c:6940 + #, c-format + msgid "two or more data types in declaration of `%s'" + msgstr "dos o más tipos de datos en la declaración de `%s'" + +-#: c-decl.c:3427 cp/decl.c:6850 ++#: c-decl.c:3432 cp/decl.c:6945 + #, c-format + msgid "`%s' fails to be a typedef or built in type" + msgstr "`%s' falla al ser un typedef o un tipo interno del compilador" + +-#: c-decl.c:3466 ++#: c-decl.c:3471 + #, c-format + msgid "type defaults to `int' in declaration of `%s'" + msgstr "el tipo de dato por defecto es `int' en la declaración de `%s'" + +-#: c-decl.c:3495 ++#: c-decl.c:3500 + #, c-format + msgid "both long and short specified for `%s'" + msgstr "se especifica long y short al mismo tiempo para `%s'" + +-#: c-decl.c:3499 cp/decl.c:6950 ++#: c-decl.c:3504 cp/decl.c:7045 + #, c-format + msgid "long or short specified with char for `%s'" + msgstr "se especifica long ó short con char para `%s'" + +-#: c-decl.c:3506 cp/decl.c:6954 ++#: c-decl.c:3511 cp/decl.c:7049 + #, c-format + msgid "long or short specified with floating type for `%s'" + msgstr "se especifica long ó short con tipo floating para `%s'" + +-#: c-decl.c:3509 ++#: c-decl.c:3514 + msgid "the only valid combination is `long double'" + msgstr "la única combinación válida es `long double'" + +-#: c-decl.c:3515 ++#: c-decl.c:3520 + #, c-format + msgid "both signed and unsigned specified for `%s'" + msgstr "se especifica signed y unsigned al mismo tiempo para `%s'" + +-#: c-decl.c:3517 cp/decl.c:6943 ++#: c-decl.c:3522 cp/decl.c:7038 + #, c-format + msgid "long, short, signed or unsigned invalid for `%s'" + msgstr "long, short, signed ó unsigned inválidos para `%s'" + +-#: c-decl.c:3523 cp/decl.c:6963 ++#: c-decl.c:3528 cp/decl.c:7058 + #, c-format + msgid "long, short, signed or unsigned used invalidly for `%s'" + msgstr "uso inválido de long, short, signed ó unsigned para `%s'" + +-#: c-decl.c:3541 cp/decl.c:6984 ++#: c-decl.c:3546 cp/decl.c:7079 + #, c-format + msgid "complex invalid for `%s'" + msgstr "complex inválido para `%s'" + +-#: c-decl.c:3583 ++#: c-decl.c:3588 + msgid "ISO C90 does not support complex types" + msgstr "ISO C90 no tiene soporte para tipos complejos" + +-#: c-decl.c:3595 ++#: c-decl.c:3600 + msgid "ISO C does not support plain `complex' meaning `double complex'" + msgstr "ISO C no tiene soporte para `complex' simples que significan `double complex'" + +-#: c-decl.c:3601 c-decl.c:3613 ++#: c-decl.c:3606 c-decl.c:3618 + msgid "ISO C does not support complex integer types" + msgstr "ISO C no da soporte a tipos enteros complejos" + +-#: c-decl.c:3643 c-decl.c:4104 cp/decl.c:7576 ++#: c-decl.c:3648 c-decl.c:4115 cp/decl.c:7671 + msgid "duplicate `const'" + msgstr "`const' duplicado" + +-#: c-decl.c:3645 c-decl.c:4108 cp/decl.c:7580 ++#: c-decl.c:3650 c-decl.c:4119 cp/decl.c:7675 + msgid "duplicate `restrict'" + msgstr "`restrict' duplicado" + +-#: c-decl.c:3647 c-decl.c:4106 cp/decl.c:7578 ++#: c-decl.c:3652 c-decl.c:4117 cp/decl.c:7673 + msgid "duplicate `volatile'" + msgstr "`volatile' duplicado" + +-#: c-decl.c:3676 cp/decl.c:7147 ++#: c-decl.c:3681 cp/decl.c:7242 + #, c-format + msgid "multiple storage classes in declaration of `%s'" + msgstr "múltiples clases de almacenamiento en la declaración de `%s'" + +-#: c-decl.c:3686 ++#: c-decl.c:3691 + msgid "function definition declared `auto'" + msgstr "la definición de la función se declaró como `auto'" + +-#: c-decl.c:3688 ++#: c-decl.c:3693 + msgid "function definition declared `register'" + msgstr "la definición de la función se declaró como `register'" + +-#: c-decl.c:3690 ++#: c-decl.c:3695 + msgid "function definition declared `typedef'" + msgstr "la definición de la función se declaró como `typedef'" + +-#: c-decl.c:3692 ++#: c-decl.c:3697 + msgid "function definition declared `__thread'" + msgstr "la definición de la función se declaró como `__thread'" + +-#: c-decl.c:3705 ++#: c-decl.c:3710 + #, c-format + msgid "storage class specified for structure field `%s'" + msgstr "se especificó una clase de almacenamiento para el campo de la estructura `%s'" + +-#: c-decl.c:3709 cp/decl.c:7192 ++#: c-decl.c:3714 cp/decl.c:7287 + #, c-format + msgid "storage class specified for parameter `%s'" + msgstr "se especificó una clase de almacenamiento para el parámetro `%s'" + +-#: c-decl.c:3712 cp/decl.c:7194 ++#: c-decl.c:3717 cp/decl.c:7289 + msgid "storage class specified for typename" + msgstr "se especificó una clase de almacenamiento para el nombre de tipo" + +-#: c-decl.c:3724 cp/decl.c:7209 ++#: c-decl.c:3729 cp/decl.c:7304 + #, c-format + msgid "`%s' initialized and declared `extern'" + msgstr "`%s' inicializado y declarado como `extern'" + +-#: c-decl.c:3726 cp/decl.c:7212 ++#: c-decl.c:3731 cp/decl.c:7307 + #, c-format + msgid "`%s' has both `extern' and initializer" + msgstr "`%s' tiene `extern' e inicializador al mismo tiempo" + +-#: c-decl.c:3731 ++#: c-decl.c:3736 + #, c-format + msgid "file-scope declaration of `%s' specifies `auto'" + msgstr "la declaración del ámbito de fichero de `%s' especifica `auto'" + +-#: c-decl.c:3736 cp/decl.c:7216 ++#: c-decl.c:3741 cp/decl.c:7311 + #, c-format + msgid "nested function `%s' declared `extern'" + msgstr "la función anidada `%s' se declaró `extern'" + +-#: c-decl.c:3742 cp/decl.c:7226 ++#: c-decl.c:3747 cp/decl.c:7321 + #, c-format + msgid "function-scope `%s' implicitly auto and declared `__thread'" + msgstr "el ámbito de la función `%s' es implícitamente auto y declarada `__thread'" +@@ -1086,434 +1091,434 @@ + #. Only the innermost declarator (making a parameter be of + #. array type which is converted to pointer type) + #. may have static or type qualifiers. +-#: c-decl.c:3781 c-decl.c:3974 ++#: c-decl.c:3786 c-decl.c:3979 + msgid "static or type qualifiers in non-parameter array declarator" + msgstr "static o calificadores de tipo en un declarador de matriz que no es parámetro" + +-#: c-decl.c:3825 ++#: c-decl.c:3830 + #, c-format + msgid "declaration of `%s' as array of voids" + msgstr "la declaración de `%s' como una matriz de voids" + +-#: c-decl.c:3831 ++#: c-decl.c:3836 + #, c-format + msgid "declaration of `%s' as array of functions" + msgstr "la declaración de `%s' como una matriz de funciones" + +-#: c-decl.c:3836 ++#: c-decl.c:3841 + msgid "invalid use of structure with flexible array member" + msgstr "uso inválido de una estructura con un miembro de matriz flexible" + +-#: c-decl.c:3855 ++#: c-decl.c:3860 + #, c-format + msgid "size of array `%s' has non-integer type" + msgstr "el tamaño de la matriz `%s' tiene un tipo no entero" + +-#: c-decl.c:3860 ++#: c-decl.c:3865 + #, c-format + msgid "ISO C forbids zero-size array `%s'" + msgstr "ISO C prohíbe la matriz `%s' de tamaño cero" + +-#: c-decl.c:3867 ++#: c-decl.c:3872 + #, c-format + msgid "size of array `%s' is negative" + msgstr "el tamaño de la matriz `%s' es negativo" + +-#: c-decl.c:3880 ++#: c-decl.c:3885 + #, c-format + msgid "ISO C90 forbids array `%s' whose size can't be evaluated" + msgstr "ISO C90 prohíbe la matriz `%s' cuyo tamaño no se puede evaluar" + +-#: c-decl.c:3883 ++#: c-decl.c:3888 + #, c-format + msgid "ISO C90 forbids variable-size array `%s'" + msgstr "ISO C90 prohíbe la matriz `%s' de tamaño variable" + +-#: c-decl.c:3913 c-decl.c:4131 cp/decl.c:7755 ++#: c-decl.c:3918 c-decl.c:4142 cp/decl.c:7850 + #, c-format + msgid "size of array `%s' is too large" + msgstr "el tamaño de la matriz `%s' es demasiado grande" + +-#: c-decl.c:3939 ++#: c-decl.c:3944 + msgid "ISO C90 does not support flexible array members" + msgstr "ISO C90 no tiene soporte para miembros de matriz flexibles" + +-#: c-decl.c:3949 ++#: c-decl.c:3954 + msgid "array type has incomplete element type" + msgstr "el tipo matriz tiene tipo de elemento incompleto" + +-#: c-decl.c:3994 cp/decl.c:7347 ++#: c-decl.c:4009 cp/decl.c:7442 + #, c-format + msgid "`%s' declared as function returning a function" + msgstr "`%s' que es declarado como función devuelve una función" + +-#: c-decl.c:3999 cp/decl.c:7352 ++#: c-decl.c:4014 cp/decl.c:7447 + #, c-format + msgid "`%s' declared as function returning an array" + msgstr "`%s' que es declarado como función devuelve una matriz" + +-#: c-decl.c:4027 ++#: c-decl.c:4038 + msgid "ISO C forbids qualified void function return type" + msgstr "ISO C prohíbe el tipo calificado de devolución de una función void" + +-#: c-decl.c:4031 ++#: c-decl.c:4042 + msgid "type qualifiers ignored on function return type" + msgstr "se ignoran los calificadores de tipo en el tipo de devolución de la función" + +-#: c-decl.c:4060 c-decl.c:4146 c-decl.c:4270 c-decl.c:4356 ++#: c-decl.c:4071 c-decl.c:4157 c-decl.c:4281 c-decl.c:4367 + msgid "ISO C forbids qualified function types" + msgstr "ISO C prohíbe los tipos de función calificados" + +-#: c-decl.c:4100 cp/decl.c:7572 ++#: c-decl.c:4111 cp/decl.c:7667 + msgid "invalid type modifier within pointer declarator" + msgstr "modificador de tipo inválido dentro de la declaración del puntero" + +-#: c-decl.c:4181 ++#: c-decl.c:4192 + msgid "ISO C forbids const or volatile function types" + msgstr "ISO C prohíbe los tipos de función const o volatile" + +-#: c-decl.c:4201 cp/decl.c:8036 ++#: c-decl.c:4212 + #, c-format + msgid "variable or field `%s' declared void" + msgstr "variable o campo `%s' declarado void" + +-#: c-decl.c:4234 ++#: c-decl.c:4245 + msgid "attributes in parameter array declarator ignored" + msgstr "se ignoran los atributos en los declaradores de parámetros de matriz" + +-#: c-decl.c:4259 ++#: c-decl.c:4270 + msgid "invalid type modifier within array declarator" + msgstr "modificador de tipo inválido dentro de un declarador de matriz" + +-#: c-decl.c:4304 ++#: c-decl.c:4315 + #, c-format + msgid "field `%s' declared as a function" + msgstr "el campo `%s' declarado como una función" + +-#: c-decl.c:4310 ++#: c-decl.c:4321 + #, c-format + msgid "field `%s' has incomplete type" + msgstr "el campo `%s' tiene tipo de dato incompleto" + +-#: c-decl.c:4336 c-decl.c:4338 c-decl.c:4340 c-decl.c:4347 ++#: c-decl.c:4347 c-decl.c:4349 c-decl.c:4351 c-decl.c:4358 + #, c-format + msgid "invalid storage class for function `%s'" + msgstr "clase de almacenamiento inválida para la función `%s'" + +-#: c-decl.c:4362 ++#: c-decl.c:4373 + msgid "`noreturn' function returns non-void value" + msgstr "la función `no return' devuelve un valor que no es void" + +-#: c-decl.c:4377 ++#: c-decl.c:4388 + msgid "cannot inline function `main'" + msgstr "no se puede hacer inline la función `main'" + +-#: c-decl.c:4431 ++#: c-decl.c:4442 + msgid "variable previously declared `static' redeclared `extern'" + msgstr "variable previamente declarada como `static' redeclarada como `extern'" + +-#: c-decl.c:4440 ++#: c-decl.c:4451 + msgid "%Jvariable '%D' declared `inline'" + msgstr "%Jla variable '%D' se declaró como `inline'" + + #. A mere warning is sure to result in improper semantics + #. at runtime. Don't bother to allow this to compile. +-#: c-decl.c:4468 cp/decl.c:5903 ++#: c-decl.c:4479 cp/decl.c:5972 + msgid "thread-local storage not supported for this target" + msgstr "no se da soporte a almacenamiento thread-local para este objetivo" + +-#: c-decl.c:4529 c-decl.c:5495 ++#: c-decl.c:4540 c-decl.c:5506 + msgid "function declaration isn't a prototype" + msgstr "la declaración de la función no es un prototipo" + +-#: c-decl.c:4535 ++#: c-decl.c:4546 + msgid "parameter names (without types) in function declaration" + msgstr "nombres de parámetros (sin tipos) en la declaración de la función" + +-#: c-decl.c:4563 ++#: c-decl.c:4574 + #, c-format + msgid "parameter `%s' has incomplete type" + msgstr "el parámetro `%s' tiene tipo de dato incompleto" + +-#: c-decl.c:4566 ++#: c-decl.c:4577 + msgid "parameter has incomplete type" + msgstr "el parámetro tiene tipo incompleto" + +-#: c-decl.c:4615 ++#: c-decl.c:4626 + msgid "\"void\" as only parameter may not be qualified" + msgstr "no se puede calificar \"void\" si es el único parámetro" + +-#: c-decl.c:4636 ++#: c-decl.c:4647 + msgid "\"void\" must be the only parameter" + msgstr "\"void\" debe ser el único parámetro" + +-#: c-decl.c:4653 ++#: c-decl.c:4664 + msgid "%Jparameter \"%D\" has just a forward declaration" + msgstr "%Jel parámetro \"%D\" sólo tiene una declaración posterior" + + #. The first %s will be one of 'struct', 'union', or 'enum'. +-#: c-decl.c:4681 ++#: c-decl.c:4692 + #, c-format + msgid "\"%s %s\" declared inside parameter list" + msgstr "se declaró \"%s %s\" dentro de la lista de parámetros" + + #. The %s will be one of 'struct', 'union', or 'enum'. +-#: c-decl.c:4685 ++#: c-decl.c:4696 + #, c-format + msgid "anonymous %s declared inside parameter list" + msgstr "el %s anónimo se declaró dentro de una lista de parámetros" + +-#: c-decl.c:4689 ++#: c-decl.c:4700 + msgid "its scope is only this definition or declaration, which is probably not what you want" + msgstr "su ámbito es solamente esta definición o declaración, lo cual probablemente no sea lo que desea" + +-#: c-decl.c:4774 ++#: c-decl.c:4785 + #, c-format + msgid "redefinition of `union %s'" + msgstr "redefinición de `union %s'" + +-#: c-decl.c:4776 ++#: c-decl.c:4787 + #, c-format + msgid "redefinition of `struct %s'" + msgstr "redefinición de `struct %s'" + +-#: c-decl.c:4844 cp/decl.c:3534 ++#: c-decl.c:4855 cp/decl.c:3548 + msgid "declaration does not declare anything" + msgstr "la declaración no declara nada" + +-#: c-decl.c:4889 c-decl.c:4905 ++#: c-decl.c:4900 c-decl.c:4916 + msgid "%Jduplicate member '%D'" + msgstr "%Jmiembro duplicado '%D'" + +-#: c-decl.c:4939 c-decl.c:4942 ++#: c-decl.c:4950 c-decl.c:4953 + #, c-format + msgid "%s defined inside parms" + msgstr "se definió %s dentro de los parámetros" + +-#: c-decl.c:4940 c-decl.c:4943 c-decl.c:4954 ++#: c-decl.c:4951 c-decl.c:4954 c-decl.c:4965 + msgid "union" + msgstr "unión" + +-#: c-decl.c:4940 c-decl.c:4943 ++#: c-decl.c:4951 c-decl.c:4954 + msgid "structure" + msgstr "estructura" + +-#: c-decl.c:4953 ++#: c-decl.c:4964 + #, c-format + msgid "%s has no %s" + msgstr "%s no tiene %s" + +-#: c-decl.c:4954 ++#: c-decl.c:4965 + msgid "struct" + msgstr "struct" + +-#: c-decl.c:4955 ++#: c-decl.c:4966 + msgid "named members" + msgstr "miembros nombrados" + +-#: c-decl.c:4955 ++#: c-decl.c:4966 + msgid "members" + msgstr "miembros" + +-#: c-decl.c:4994 ++#: c-decl.c:5005 + #, c-format + msgid "nested redefinition of `%s'" + msgstr "redefinición anidada de `%s'" + +-#: c-decl.c:5015 ++#: c-decl.c:5026 + msgid "%Jflexible array member in union" + msgstr "%Jmiembro de matriz flexible en el union" + +-#: c-decl.c:5020 ++#: c-decl.c:5031 + msgid "%Jflexible array member not at end of struct" + msgstr "%Jel miembro de matriz flexible no está al final del struct" + +-#: c-decl.c:5025 ++#: c-decl.c:5036 + msgid "%Jflexible array member in otherwise empty struct" + msgstr "%Jel miembro de matriz flexible sería de otra manera un struct vacío" + +-#: c-decl.c:5032 ++#: c-decl.c:5043 + msgid "%Jinvalid use of structure with flexible array member" + msgstr "%Juso inválido de una estructura con un miembro de matriz flexible" + +-#: c-decl.c:5127 ++#: c-decl.c:5138 + msgid "union cannot be made transparent" + msgstr "union no se puede hacer transparente" + + #. This enum is a named one that has been declared already. +-#: c-decl.c:5196 ++#: c-decl.c:5207 + #, c-format + msgid "redeclaration of `enum %s'" + msgstr "redeclaración de `enum %s'" + +-#: c-decl.c:5227 ++#: c-decl.c:5238 + msgid "enum defined inside parms" + msgstr "enum definido dentro de los parámetros" + +-#: c-decl.c:5260 ++#: c-decl.c:5271 + msgid "enumeration values exceed range of largest integer" + msgstr "los valores de enumeración exceden el rango del entero más grande" + +-#: c-decl.c:5363 ++#: c-decl.c:5374 + #, c-format + msgid "enumerator value for `%s' not integer constant" + msgstr "el valor de enumerador para `%s' no es una constante entera" + +-#: c-decl.c:5376 ++#: c-decl.c:5387 + msgid "overflow in enumeration values" + msgstr "desbordamiento en valores de enumeración" + +-#: c-decl.c:5381 ++#: c-decl.c:5392 + msgid "ISO C restricts enumerator values to range of `int'" + msgstr "ISO C restringe los valores de enumeración al rango de `int'" + +-#: c-decl.c:5457 ++#: c-decl.c:5468 + msgid "return type is an incomplete type" + msgstr "el tipo de devolución es un tipo de dato incompleto" + +-#: c-decl.c:5465 ++#: c-decl.c:5476 + msgid "return type defaults to `int'" + msgstr "el tipo de devolución por defecto es `int'" + +-#: c-decl.c:5501 ++#: c-decl.c:5512 + msgid "%Jno previous prototype for '%D'" + msgstr "%Jno hay un prototipo previo para '%D'" + +-#: c-decl.c:5507 ++#: c-decl.c:5518 + msgid "%J'%D' was used with no prototype before its definition" + msgstr "%Jse usó '%D' sin prototipo antes de su definición" + +-#: c-decl.c:5514 ++#: c-decl.c:5525 + msgid "%Jno previous declaration for '%D'" + msgstr "%Jno hay declaración previa para '%D'" + +-#: c-decl.c:5520 ++#: c-decl.c:5531 + msgid "%J`%D' was used with no declaration before its definition" + msgstr "se usó %J`%D' sin declaración antes de su definición" + +-#: c-decl.c:5556 c-decl.c:6062 ++#: c-decl.c:5567 c-decl.c:6073 + msgid "%Jreturn type of '%D' is not `int'" + msgstr "%Jel tipo de devolución de '%D' no es `int'" + +-#: c-decl.c:5571 ++#: c-decl.c:5582 + msgid "%Jfirst argument of '%D' should be `int'" + msgstr "%Jel primer argumento de '%D' debe ser `int'" + +-#: c-decl.c:5580 ++#: c-decl.c:5591 + msgid "%Jsecond argument of '%D' should be 'char **'" + msgstr "%Jel segundo argumento de '%D' debe ser 'char **'" + +-#: c-decl.c:5589 ++#: c-decl.c:5600 + msgid "%Jthird argument of '%D' should probably be 'char **'" + msgstr "%Jel tercer argumento de '%D' debería ser 'char **'" + +-#: c-decl.c:5599 ++#: c-decl.c:5610 + msgid "%J'%D' takes only zero or two arguments" + msgstr "%J'%D' sólo toma cero o dos argumentos" + +-#: c-decl.c:5602 ++#: c-decl.c:5613 + msgid "%J'%D' is normally a non-static function" + msgstr "%J'%D' generalmente es una función no estática" + +-#: c-decl.c:5658 ++#: c-decl.c:5669 + msgid "%Jold-style parameter declarations in prototyped function definition" + msgstr "%Jdeclaraciones de parámetros de estilo antiguo en una definición de una función prototipo" + +-#: c-decl.c:5672 ++#: c-decl.c:5683 + msgid "%Jparameter name omitted" + msgstr "%Jse omitió el nombre del parámetro" + +-#: c-decl.c:5747 ++#: c-decl.c:5758 + msgid "%Jparameter name missing from parameter list" + msgstr "%Jfalta el nombre del parámetro de la lista de parámetros" + +-#: c-decl.c:5757 ++#: c-decl.c:5768 + msgid "%J\"%D\" declared as a non-parameter" + msgstr "%J\"%D\" declarado como un no-parámetro" + +-#: c-decl.c:5762 ++#: c-decl.c:5773 + msgid "%Jmultiple parameters named \"%D\"" + msgstr "%Jmúltiples parámetros nombrados \"%D\"" + +-#: c-decl.c:5770 ++#: c-decl.c:5781 + msgid "%Jparameter \"%D\" declared void" + msgstr "%Jel parámetro \"%D\" se declaró void" + +-#: c-decl.c:5785 c-decl.c:5787 ++#: c-decl.c:5796 c-decl.c:5798 + msgid "%Jtype of \"%D\" defaults to \"int\"" + msgstr "%Jel tipo de \"%D\" es \"int\" por defecto" + +-#: c-decl.c:5801 ++#: c-decl.c:5812 + msgid "%Jparameter \"%D\" has incomplete type" + msgstr "%Jel parámetro \"%D\" tiene tipo incompleto" + +-#: c-decl.c:5807 ++#: c-decl.c:5818 + msgid "%Jdeclaration for parameter \"%D\" but no such parameter" + msgstr "%Jexiste la declaración para el parámetro \"%D\" pero no hay tal parámetro" + +-#: c-decl.c:5859 ++#: c-decl.c:5870 + msgid "number of arguments doesn't match prototype" + msgstr "el número de argumentos no coinciden con el prototipo" + +-#: c-decl.c:5860 c-decl.c:5891 c-decl.c:5898 ++#: c-decl.c:5871 c-decl.c:5902 c-decl.c:5909 + msgid "%Hprototype declaration" + msgstr "%Hdeclaración vacía" + +-#: c-decl.c:5889 ++#: c-decl.c:5900 + msgid "promoted argument \"%D\" doesn't match prototype" + msgstr "el argumento promovido \"%D\" no coincide con el prototipo" + +-#: c-decl.c:5897 ++#: c-decl.c:5908 + msgid "argument \"%D\" doesn't match prototype" + msgstr "el argumento \"%D\" no coincide con el prototipo" + +-#: c-decl.c:6094 cp/decl.c:10857 ++#: c-decl.c:6105 cp/decl.c:10954 + msgid "no return statement in function returning non-void" + msgstr "no hay una declaración de devolución en una función que no devuelve void" + +-#: c-decl.c:6101 ++#: c-decl.c:6112 + msgid "this function may return with or without a value" + msgstr "esta función puede devolver con o sin un valor" + + #. If we get here, declarations have been used in a for loop without + #. the C99 for loop scope. This doesn't make much sense, so don't + #. allow it. +-#: c-decl.c:6200 ++#: c-decl.c:6211 + msgid "'for' loop initial declaration used outside C99 mode" + msgstr "se usó la declaración inicial del ciclo 'for' fuera del modo C99" + +-#: c-decl.c:6224 ++#: c-decl.c:6235 + #, c-format + msgid "'struct %s' declared in 'for' loop initial declaration" + msgstr "'struct %s' declarado en la declaración inicial del ciclo 'for'" + +-#: c-decl.c:6227 ++#: c-decl.c:6238 + #, c-format + msgid "'union %s' declared in 'for' loop initial declaration" + msgstr "'union %s' declarado en la declaración inicial del ciclo 'for'" + +-#: c-decl.c:6230 ++#: c-decl.c:6241 + #, c-format + msgid "'enum %s' declared in 'for' loop initial declaration" + msgstr "'enum %s' declarado en la declaración inicial del ciclo 'for'" + +-#: c-decl.c:6238 ++#: c-decl.c:6249 + msgid "%Jdeclaration of non-variable '%D' in 'for' loop initial declaration" + msgstr "%J declaración de '%D' que no es variable en la declaración inicial del ciclo 'for'" + +-#: c-decl.c:6241 ++#: c-decl.c:6252 + msgid "%Jdeclaration of static variable '%D' in 'for' loop initial declaration" + msgstr "%Jdeclaración de la variable static '%D' en la declaración inicial del ciclo 'for'" + +-#: c-decl.c:6244 ++#: c-decl.c:6255 + msgid "%Jdeclaration of 'extern' variable '%D' in 'for' loop initial declaration" + msgstr "%Jdeclaración de la variable 'extern' '%D' en la declaración inicial del ciclo 'for'" + +-#: c-decl.c:6557 ++#: c-decl.c:6568 + msgid "%Jredefinition of global '%D'" + msgstr "%Jredefinición de '%D' global" + +-#: c-decl.c:6558 ++#: c-decl.c:6569 + msgid "%J'%D' previously defined here" + msgstr "%Jse definió '%D' previamente aquí" + +@@ -2150,89 +2155,89 @@ + msgid "missing makefile target after \"%s\"" + msgstr "falta un fichero make objetivo después de \"%s\"" + +-#: c-opts.c:291 ++#: c-opts.c:299 + msgid "-I- specified twice" + msgstr "se especificó -I- dos veces" + +-#: c-opts.c:692 ++#: c-opts.c:700 + #, c-format + msgid "switch \"%s\" is no longer supported" + msgstr "la opción \"%s\" ya no tiene soporte" + +-#: c-opts.c:812 ++#: c-opts.c:820 + msgid "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)" + msgstr "se renombró -fhandle-exceptions a -fexceptions (y ahora está activado por defecto)" + +-#: c-opts.c:978 ++#: c-opts.c:986 + msgid "output filename specified twice" + msgstr "se especificó dos veces el nombre del fichero de salida" + +-#: c-opts.c:1107 ++#: c-opts.c:1115 + msgid "-Wformat-y2k ignored without -Wformat" + msgstr "se ignora -Wformat-y2k sin -Wformat" + +-#: c-opts.c:1109 ++#: c-opts.c:1117 + msgid "-Wformat-extra-args ignored without -Wformat" + msgstr "se ignora -Wformat-extra-args sin -Wformat" + +-#: c-opts.c:1111 ++#: c-opts.c:1119 + msgid "-Wformat-zero-length ignored without -Wformat" + msgstr "se ignora -Wformat-zero-lenght sin -Wformat" + +-#: c-opts.c:1113 ++#: c-opts.c:1121 + msgid "-Wformat-nonliteral ignored without -Wformat" + msgstr "se ignora -Wformat-nonliteral sin -Wformat" + +-#: c-opts.c:1115 ++#: c-opts.c:1123 + msgid "-Wformat-security ignored without -Wformat" + msgstr "se ignora -Wformat-security sin -Wformat" + +-#: c-opts.c:1117 ++#: c-opts.c:1125 + msgid "-Wmissing-format-attribute ignored without -Wformat" + msgstr "se ignora -Wformat-attribute sin -Wformat" + +-#: c-opts.c:1131 ++#: c-opts.c:1139 + #, c-format + msgid "opening output file %s: %m" + msgstr "abriendo el fichero de salida %s: %m" + +-#: c-opts.c:1136 ++#: c-opts.c:1144 + #, c-format + msgid "too many filenames given. Type %s --help for usage" + msgstr "demasiados nombres de ficheros. Teclee %s --help para información de modo de empleo" + +-#: c-opts.c:1215 ++#: c-opts.c:1223 + msgid "YYDEBUG not defined" + msgstr "no se definió YYDEBUG" + +-#: c-opts.c:1261 ++#: c-opts.c:1269 + #, c-format + msgid "opening dependency file %s: %m" + msgstr "abriendo el fichero de dependencias %s: %m" + +-#: c-opts.c:1271 ++#: c-opts.c:1279 + #, c-format + msgid "closing dependency file %s: %m" + msgstr "cerrando el fichero de dependencias %s: %m" + +-#: c-opts.c:1274 ++#: c-opts.c:1282 + #, c-format + msgid "when writing output to %s: %m" + msgstr "al escribir la salida a %s: %m" + +-#: c-opts.c:1344 ++#: c-opts.c:1352 + msgid "to generate dependencies you must specify either -M or -MM" + msgstr "para generar dependencias debe especificar -M ó -MM" + +-#: c-opts.c:1404 ++#: c-opts.c:1412 + msgid "" + msgstr "" + +-#: c-opts.c:1419 ++#: c-opts.c:1427 + msgid "" + msgstr "" + +-#: c-opts.c:1503 ++#: c-opts.c:1511 + msgid "too late for # directive to set debug directory" + msgstr "demasiado tarde para que la directiva # establezca el directorio de depuración" + +@@ -2249,7 +2254,7 @@ + msgid "ISO C forbids an empty source file" + msgstr "ISO C prohíbe un fichero fuente vacío" + +-#: c-parse.y:349 c-typeck.c:6248 objc/objc-parse.y:374 ++#: c-parse.y:349 c-typeck.c:6228 objc/objc-parse.y:374 + msgid "argument of `asm' is not a constant string" + msgstr "el argumento de `asm' no es una cadena constante" + +@@ -2265,7 +2270,7 @@ + msgid "ISO C does not allow extra `;' outside of a function" + msgstr "ISO C no permite ';' extra fuera de una función" + +-#: c-parse.y:429 cppexp.c:1253 ++#: c-parse.y:429 cppexp.c:1257 + msgid "traditional C rejects the unary plus operator" + msgstr "C tradicional rechaza el operador unario mas" + +@@ -2342,7 +2347,7 @@ + msgid "ISO C forbids forward references to `enum' types" + msgstr "ISO C prohíbe las declaraciones posteriores para tipos `enum'" + +-#: c-parse.y:1703 cp/parser.c:9339 objc/objc-parse.y:1755 ++#: c-parse.y:1703 cp/parser.c:9383 objc/objc-parse.y:1755 + msgid "comma at end of enumerator list" + msgstr "coma al final de la lista de enumeradores" + +@@ -2350,7 +2355,7 @@ + msgid "no semicolon at end of struct or union" + msgstr "no hay punto y coma al final del struct o union" + +-#: c-parse.y:1732 objc/objc-parse.y:1784 objc/objc-parse.y:2847 ++#: c-parse.y:1732 objc/objc-parse.y:1784 objc/objc-parse.y:2846 + msgid "extra semicolon in struct or union specified" + msgstr "se especificó un punto y coma extra en un struct o union" + +@@ -2378,23 +2383,23 @@ + msgid "braced-group within expression allowed only inside a function" + msgstr "un grupo de llaves dentro de una expresión sólo se permite dentro de una función" + +-#: c-parse.y:2185 objc/objc-parse.y:2242 ++#: c-parse.y:2185 objc/objc-parse.y:2241 + msgid "empty body in an else-statement" + msgstr "cuerpo vacío en una declaración else" + +-#: c-parse.y:2193 objc/objc-parse.y:2250 ++#: c-parse.y:2193 objc/objc-parse.y:2249 + msgid "%Hempty body in an if-statement" + msgstr "%Hcuerpo vacío en una declaración if" + +-#: c-parse.y:2273 cp/parser.c:6050 objc/objc-parse.y:2330 ++#: c-parse.y:2273 cp/parser.c:6088 objc/objc-parse.y:2329 + msgid "break statement not within loop or switch" + msgstr "la declaración break no está dentro de un ciclo o switch" + +-#: c-parse.y:2282 cp/parser.c:6061 objc/objc-parse.y:2339 ++#: c-parse.y:2282 cp/parser.c:6099 objc/objc-parse.y:2338 + msgid "continue statement not within a loop" + msgstr "la declaración continue no está dentro dentro de un ciclo" + +-#: c-parse.y:2324 objc/objc-parse.y:2381 ++#: c-parse.y:2324 objc/objc-parse.y:2380 + msgid "ISO C forbids `goto *expr;'" + msgstr "ISO C prohíbe `goto *expr;'" + +@@ -2404,11 +2409,11 @@ + #. it caused problems with the code in expand_builtin which + #. tries to verify that BUILT_IN_NEXT_ARG is being used + #. correctly. +-#: c-parse.y:2441 objc/objc-parse.y:2549 ++#: c-parse.y:2441 objc/objc-parse.y:2548 + msgid "ISO C requires a named argument before `...'" + msgstr "ISO C requiere un argumento con nombre antes de `...'" + +-#: c-parse.y:2539 objc/objc-parse.y:2647 ++#: c-parse.y:2539 objc/objc-parse.y:2646 + msgid "`...' in old-style identifier list" + msgstr "`...' en una lista de identificadores de estilo antiguo" + +@@ -2424,7 +2429,7 @@ + msgid "parser stack overflow" + msgstr "desbordamiento de la pila del decodificador" + +-#: c-parse.y:2969 objc/objc-parse.y:3664 ++#: c-parse.y:2969 objc/objc-parse.y:3663 + #, c-format + msgid "syntax error at '%s' token" + msgstr "error sintáctico en el elemento '%s'" +@@ -2506,7 +2511,7 @@ + msgid "%s: had text segment at different address" + msgstr "%s: tiene segmentos de texto en direcciones diferentes" + +-#: c-pch.c:357 cpperror.c:176 gcc.c:6554 ++#: c-pch.c:357 cpperror.c:176 gcc.c:6557 + #, c-format + msgid "%s: %s" + msgstr "%s: %s" +@@ -2614,12 +2619,12 @@ + msgid "(enclose actions of previous case statements requiring destructors in their own scope.)" + msgstr "(las acciones adjuntas de declaraciones case previas requieren destructores en su propio ámbito.)" + +-#: c-semantics.c:737 c-typeck.c:6270 cp/semantics.c:1070 ++#: c-semantics.c:737 c-typeck.c:6250 cp/semantics.c:1070 + #, c-format + msgid "%s qualifier ignored on asm" + msgstr "se ignora el calificador %s en asm" + +-#: c-semantics.c:991 ++#: c-semantics.c:993 + msgid "will never be executed" + msgstr "nunca se ejecutará" + +@@ -2628,7 +2633,7 @@ + msgid "`%s' has an incomplete type" + msgstr "`%s' tiene un tipo de dato incompleto" + +-#: c-typeck.c:145 cp/call.c:2532 ++#: c-typeck.c:145 cp/call.c:2542 + msgid "invalid use of void expression" + msgstr "uso inválido de la expresión void" + +@@ -2663,749 +2668,749 @@ + msgid "function return types not compatible due to `volatile'" + msgstr "los tipos de devolución de función no son compatibles debido a `volatile'" + +-#: c-typeck.c:984 c-typeck.c:2176 ++#: c-typeck.c:984 c-typeck.c:2156 + msgid "arithmetic on pointer to an incomplete type" + msgstr "aritmética en puntero a un tipo de dato incompleto" + +-#: c-typeck.c:1357 ++#: c-typeck.c:1337 + #, c-format + msgid "%s has no member named `%s'" + msgstr "%s no tiene un miembro llamado `%s'" + +-#: c-typeck.c:1393 ++#: c-typeck.c:1373 + #, c-format + msgid "request for member `%s' in something not a structure or union" + msgstr "petición del miembro `%s' en algo que no es estructura ó unión" + +-#: c-typeck.c:1422 ++#: c-typeck.c:1402 + msgid "dereferencing pointer to incomplete type" + msgstr "puntero deferenciado a tipo de dato incompleto" + +-#: c-typeck.c:1426 ++#: c-typeck.c:1406 + msgid "dereferencing `void *' pointer" + msgstr "deferenciando el puntero `void *'" + +-#: c-typeck.c:1443 cp/typeck.c:2127 ++#: c-typeck.c:1423 cp/typeck.c:2127 + #, c-format + msgid "invalid type argument of `%s'" + msgstr "argumento de tipo inválido de `%s'" + +-#: c-typeck.c:1461 cp/typeck.c:2152 ++#: c-typeck.c:1441 cp/typeck.c:2152 + msgid "subscript missing in array reference" + msgstr "falta subíndice en la referencia de la matriz" + +-#: c-typeck.c:1482 cp/typeck.c:2194 ++#: c-typeck.c:1462 cp/typeck.c:2194 + msgid "array subscript has type `char'" + msgstr "el subíndice de la matriz tiene tipo `char'" + +-#: c-typeck.c:1490 c-typeck.c:1579 cp/typeck.c:2198 cp/typeck.c:2284 ++#: c-typeck.c:1470 c-typeck.c:1559 cp/typeck.c:2198 cp/typeck.c:2284 + msgid "array subscript is not an integer" + msgstr "el subíndice de la matriz no es un entero" + +-#: c-typeck.c:1523 ++#: c-typeck.c:1503 + msgid "ISO C forbids subscripting `register' array" + msgstr "ISO C prohíbe el subíndice de una matriz `register'" + +-#: c-typeck.c:1525 ++#: c-typeck.c:1505 + msgid "ISO C90 forbids subscripting non-lvalue array" + msgstr "ISO C90 prohíbe el subíndice de una matriz no-lvaluada" + +-#: c-typeck.c:1558 ++#: c-typeck.c:1538 + msgid "subscript has type `char'" + msgstr "el subíndice es de tipo `char'" + +-#: c-typeck.c:1574 cp/typeck.c:2279 ++#: c-typeck.c:1554 cp/typeck.c:2279 + msgid "subscripted value is neither array nor pointer" + msgstr "el valor indicado por el subíndice no es ni matriz ni puntero" + +-#: c-typeck.c:1604 ++#: c-typeck.c:1584 + #, c-format + msgid "local declaration of `%s' hides instance variable" + msgstr "la declaración local de `%s' oculta la variable de instancia" + +-#: c-typeck.c:1697 ++#: c-typeck.c:1677 + msgid "called object is not a function" + msgstr "el objeto llamado no es una función" + + #. This situation leads to run-time undefined behavior. We can't, + #. therefore, simply error unless we can prove that all possible + #. executions of the program must execute the code. +-#: c-typeck.c:1729 ++#: c-typeck.c:1709 + msgid "function called through a non-compatible type" + msgstr "función llamada a través de un tipo de dato que no es compatible" + +-#: c-typeck.c:1787 c-typeck.c:4198 c-typeck.c:4200 c-typeck.c:4216 +-#: c-typeck.c:4237 c-typeck.c:5616 ++#: c-typeck.c:1767 c-typeck.c:4178 c-typeck.c:4180 c-typeck.c:4196 ++#: c-typeck.c:4217 c-typeck.c:5596 + msgid "initializer element is not constant" + msgstr "el elemento inicializador no es constante" + +-#: c-typeck.c:1838 cp/typeck.c:2567 ++#: c-typeck.c:1818 cp/typeck.c:2567 + msgid "too many arguments to function" + msgstr "demasiados argumentos para la función" + +-#: c-typeck.c:1859 ++#: c-typeck.c:1839 + #, c-format + msgid "type of formal parameter %d is incomplete" + msgstr "el tipo de dato del parámetro formal %d está incompleto" + +-#: c-typeck.c:1872 ++#: c-typeck.c:1852 + #, c-format + msgid "%s as integer rather than floating due to prototype" + msgstr "%s como entero en lugar de coma flotante debido al prototipo" + +-#: c-typeck.c:1875 ++#: c-typeck.c:1855 + #, c-format + msgid "%s as integer rather than complex due to prototype" + msgstr "%s como entero en lugar de complejo debido al prototipo" + +-#: c-typeck.c:1878 ++#: c-typeck.c:1858 + #, c-format + msgid "%s as complex rather than floating due to prototype" + msgstr "%s como complejo en lugar de coma flotante debido al prototipo" + +-#: c-typeck.c:1881 ++#: c-typeck.c:1861 + #, c-format + msgid "%s as floating rather than integer due to prototype" + msgstr "%s como coma flotante en lugar de entero debido al prototipo" + +-#: c-typeck.c:1884 ++#: c-typeck.c:1864 + #, c-format + msgid "%s as complex rather than integer due to prototype" + msgstr "%s como complejo en lugar de entero debido al prototipo" + +-#: c-typeck.c:1887 ++#: c-typeck.c:1867 + #, c-format + msgid "%s as floating rather than complex due to prototype" + msgstr "%s como coma flotante en lugar de complejo debido al prototipo" + +-#: c-typeck.c:1897 ++#: c-typeck.c:1877 + #, c-format + msgid "%s as `float' rather than `double' due to prototype" + msgstr "%s como `float' en lugar de `double' debido al prototipo" + +-#: c-typeck.c:1915 ++#: c-typeck.c:1895 + #, c-format + msgid "%s with different width due to prototype" + msgstr "%s con anchura diferente debido al prototipo" + +-#: c-typeck.c:1941 ++#: c-typeck.c:1921 + #, c-format + msgid "%s as unsigned due to prototype" + msgstr "%s como unsigned debido al prototipo" + +-#: c-typeck.c:1943 ++#: c-typeck.c:1923 + #, c-format + msgid "%s as signed due to prototype" + msgstr "%s como signed debido al prototipo" + +-#: c-typeck.c:1977 cp/typeck.c:2673 ++#: c-typeck.c:1957 cp/typeck.c:2673 + msgid "too few arguments to function" + msgstr "muy pocos argumentos para la función" + +-#: c-typeck.c:2017 ++#: c-typeck.c:1997 + msgid "suggest parentheses around + or - inside shift" + msgstr "se sugieren paréntesis alrededor de + o - dentro de un desplazamiento" + +-#: c-typeck.c:2024 ++#: c-typeck.c:2004 + msgid "suggest parentheses around && within ||" + msgstr "se sugieren paréntesis alrededor de && junto con ||" + +-#: c-typeck.c:2033 ++#: c-typeck.c:2013 + msgid "suggest parentheses around arithmetic in operand of |" + msgstr "se sugieren paréntesis alrededor de la aritmética para operandos de |" + +-#: c-typeck.c:2036 ++#: c-typeck.c:2016 + msgid "suggest parentheses around comparison in operand of |" + msgstr "se sugieren paréntesis alrededor de las comparaciones para operandos de |" + +-#: c-typeck.c:2045 ++#: c-typeck.c:2025 + msgid "suggest parentheses around arithmetic in operand of ^" + msgstr "se sugieren paréntesis alrededor de la aritmética para operandos de ^" + +-#: c-typeck.c:2048 ++#: c-typeck.c:2028 + msgid "suggest parentheses around comparison in operand of ^" + msgstr "se sugieren paréntesis alrededor de las comparaciones para operandos de ^" + +-#: c-typeck.c:2055 ++#: c-typeck.c:2035 + msgid "suggest parentheses around + or - in operand of &" + msgstr "se sugieren paréntesis alrededor de + o - para operandos de &" + +-#: c-typeck.c:2058 ++#: c-typeck.c:2038 + msgid "suggest parentheses around comparison in operand of &" + msgstr "se sugieren paréntesis alrededor de las comparaciones para operandos de &" + +-#: c-typeck.c:2065 ++#: c-typeck.c:2045 + msgid "comparisons like X<=Y<=Z do not have their mathematical meaning" + msgstr "las comparaciones como X<=Y<=Z no tienen su significado matemático" + +-#: c-typeck.c:2128 ++#: c-typeck.c:2108 + msgid "pointer of type `void *' used in subtraction" + msgstr "se usó un puntero de tipo `void *' en la sustracción" + +-#: c-typeck.c:2130 ++#: c-typeck.c:2110 + msgid "pointer to a function used in subtraction" + msgstr "se utilizó un puntero a una función en la sustracción" + +-#: c-typeck.c:2224 ++#: c-typeck.c:2204 + msgid "wrong type argument to unary plus" + msgstr "argumento de tipo erróneo para el incremento unario" + +-#: c-typeck.c:2237 ++#: c-typeck.c:2217 + msgid "wrong type argument to unary minus" + msgstr "argumento de tipo erróneo para el decremento unario" + +-#: c-typeck.c:2254 ++#: c-typeck.c:2234 + msgid "ISO C does not support `~' for complex conjugation" + msgstr "ISO C no tiene soporte de `~' para conjugaciones complejas" + +-#: c-typeck.c:2260 ++#: c-typeck.c:2240 + msgid "wrong type argument to bit-complement" + msgstr "argumento de tipo erróneo para complemento de bits" + +-#: c-typeck.c:2268 ++#: c-typeck.c:2248 + msgid "wrong type argument to abs" + msgstr "argumento de tipo erróneo para abs" + +-#: c-typeck.c:2280 ++#: c-typeck.c:2260 + msgid "wrong type argument to conjugation" + msgstr "argumento de tipo erróneo para la conjugación" + +-#: c-typeck.c:2294 ++#: c-typeck.c:2274 + msgid "wrong type argument to unary exclamation mark" + msgstr "argumento de tipo erróneo para el signo de exclamación unario" + +-#: c-typeck.c:2337 ++#: c-typeck.c:2317 + msgid "ISO C does not support `++' and `--' on complex types" + msgstr "ISO C no tiene soporte para `++' y `--' en tipos complejos" + +-#: c-typeck.c:2352 c-typeck.c:2384 ++#: c-typeck.c:2332 c-typeck.c:2364 + msgid "wrong type argument to increment" + msgstr "argumento de tipo erróneo para el incremento" + +-#: c-typeck.c:2354 c-typeck.c:2386 ++#: c-typeck.c:2334 c-typeck.c:2366 + msgid "wrong type argument to decrement" + msgstr "argumento de tipo erróneo para el decremento" + +-#: c-typeck.c:2375 ++#: c-typeck.c:2355 + msgid "increment of pointer to unknown structure" + msgstr "incremento de puntero a estructura desconocida" + +-#: c-typeck.c:2377 ++#: c-typeck.c:2357 + msgid "decrement of pointer to unknown structure" + msgstr "decremento de puntero a estructura desconocida" + +-#: c-typeck.c:2502 ++#: c-typeck.c:2482 + msgid "invalid lvalue in unary `&'" + msgstr "l-valor inválido en `&' unario" + +-#: c-typeck.c:2534 ++#: c-typeck.c:2514 + #, c-format + msgid "attempt to take address of bit-field structure member `%s'" + msgstr "se intentó tomar la dirección del miembro de la estructura de campos de bits `%s'" + +-#: c-typeck.c:2668 ++#: c-typeck.c:2648 + msgid "use of conditional expressions as lvalues is deprecated" + msgstr "el uso de expresiones condicionales como l-valores es obsoleto" + +-#: c-typeck.c:2671 ++#: c-typeck.c:2651 + msgid "use of compound expressions as lvalues is deprecated" + msgstr "el uso de expresiones compuestas como l-valores es obsoleto" + +-#: c-typeck.c:2674 ++#: c-typeck.c:2654 + msgid "use of cast expressions as lvalues is deprecated" + msgstr "el uso de expresiones de conversión como l-valores es obsoleto" + +-#: c-typeck.c:2689 ++#: c-typeck.c:2669 + #, c-format + msgid "%s of read-only member `%s'" + msgstr "%s del miembro de sólo lectura `%s'" + +-#: c-typeck.c:2693 ++#: c-typeck.c:2673 + #, c-format + msgid "%s of read-only variable `%s'" + msgstr "%s de la variable de sólo lectura `%s'" + +-#: c-typeck.c:2696 ++#: c-typeck.c:2676 + #, c-format + msgid "%s of read-only location" + msgstr "%s de la ubicación de sólo lectura" + +-#: c-typeck.c:2714 ++#: c-typeck.c:2694 + #, c-format + msgid "cannot take address of bit-field `%s'" + msgstr "no se puede tomar la dirección del campo de bits `%s'" + +-#: c-typeck.c:2742 treelang/treetree.c:946 ++#: c-typeck.c:2722 treelang/treetree.c:946 + #, c-format + msgid "global register variable `%s' used in nested function" + msgstr "se usó la variable de registro global `%s' en funciones anidadas" + +-#: c-typeck.c:2746 treelang/treetree.c:950 ++#: c-typeck.c:2726 treelang/treetree.c:950 + #, c-format + msgid "register variable `%s' used in nested function" + msgstr "se usó la variable de registro `%s' en funciones anidadas" + +-#: c-typeck.c:2753 treelang/treetree.c:957 ++#: c-typeck.c:2733 treelang/treetree.c:957 + #, c-format + msgid "address of global register variable `%s' requested" + msgstr "se solicitó la dirección de la variable de registro global `%s'" + +-#: c-typeck.c:2765 ++#: c-typeck.c:2745 + msgid "cannot put object with volatile field into register" + msgstr "no se puede poner objeto con campo volatile en register" + +-#: c-typeck.c:2769 treelang/treetree.c:962 ++#: c-typeck.c:2749 treelang/treetree.c:962 + #, c-format + msgid "address of register variable `%s' requested" + msgstr "se solicitó la dirección de la variable register `%s'" + +-#: c-typeck.c:2854 ++#: c-typeck.c:2834 + msgid "signed and unsigned type in conditional expression" + msgstr "tipos signed y unsigned en la expresión condicional" + +-#: c-typeck.c:2861 ++#: c-typeck.c:2841 + msgid "ISO C forbids conditional expr with only one void side" + msgstr "ISO C prohíbe una expresión condicional con sólo un lado void" + +-#: c-typeck.c:2877 c-typeck.c:2884 ++#: c-typeck.c:2857 c-typeck.c:2864 + msgid "ISO C forbids conditional expr between `void *' and function pointer" + msgstr "ISO C prohíbe expresiones condicionales entre `void *' y punteros de función" + +-#: c-typeck.c:2890 ++#: c-typeck.c:2870 + msgid "pointer type mismatch in conditional expression" + msgstr "los tipos de datos punteros no coinciden en la expresión condicional" + +-#: c-typeck.c:2897 c-typeck.c:2907 ++#: c-typeck.c:2877 c-typeck.c:2887 + msgid "pointer/integer type mismatch in conditional expression" + msgstr "los tipos de datos punteros/enteros no coinciden en la expresión condicional" + +-#: c-typeck.c:2921 ++#: c-typeck.c:2901 + msgid "type mismatch in conditional expression" + msgstr "los tipos de datos no coinciden en la expresión condicional" + +-#: c-typeck.c:2981 ++#: c-typeck.c:2961 + msgid "left-hand operand of comma expression has no effect" + msgstr "el operador del lado izquierdo de la expresión coma no tiene efecto" + +-#: c-typeck.c:3012 ++#: c-typeck.c:2992 + msgid "cast specifies array type" + msgstr "la conversión especifica el tipo matriz" + +-#: c-typeck.c:3018 ++#: c-typeck.c:2998 + msgid "cast specifies function type" + msgstr "la conversión especifica el tipo función" + +-#: c-typeck.c:3028 ++#: c-typeck.c:3008 + msgid "ISO C forbids casting nonscalar to the same type" + msgstr "ISO C prohíbe la conversión de un no escalar al mismo tipo" + +-#: c-typeck.c:3046 ++#: c-typeck.c:3026 + msgid "ISO C forbids casts to union type" + msgstr "ISO C prohíbe la conversión al tipo union" + +-#: c-typeck.c:3054 ++#: c-typeck.c:3034 + msgid "cast to union type from type not present in union" + msgstr "conversión a tipo union desde un tipo no presente en union" + +-#: c-typeck.c:3105 ++#: c-typeck.c:3085 + msgid "cast adds new qualifiers to function type" + msgstr "la conversión agrega calificadores nuevos al tipo función" + + #. There are qualifiers present in IN_OTYPE that are not + #. present in IN_TYPE. +-#: c-typeck.c:3110 ++#: c-typeck.c:3090 + msgid "cast discards qualifiers from pointer target type" + msgstr "la conversión descarta los calificadores del tipo del destino del puntero" + +-#: c-typeck.c:3125 ++#: c-typeck.c:3105 + msgid "cast increases required alignment of target type" + msgstr "la conversión incrementa la alineación requerida del tipo del destino" + +-#: c-typeck.c:3131 cp/typeck.c:4945 ++#: c-typeck.c:3111 cp/typeck.c:4963 + msgid "cast from pointer to integer of different size" + msgstr "conversión de puntero a entero de tamaño diferente" + +-#: c-typeck.c:3136 ++#: c-typeck.c:3116 + msgid "cast does not match function type" + msgstr "la conversión no coincide con el tipo de la función" + +-#: c-typeck.c:3143 cp/typeck.c:4952 ++#: c-typeck.c:3123 cp/typeck.c:4970 + msgid "cast to pointer from integer of different size" + msgstr "conversión a puntero desde un entero de tamaño diferente" + +-#: c-typeck.c:3155 ++#: c-typeck.c:3135 + msgid "type-punning to incomplete type might break strict-aliasing rules" + msgstr "el castigo de tipo a tipo incompleto puede romper las reglas de alias estricto" + +-#: c-typeck.c:3159 ++#: c-typeck.c:3139 + msgid "dereferencing type-punned pointer will break strict-aliasing rules" + msgstr "la dereferencia de punteros de tipo castigado romperá las reglas de alias estricto" + +-#: c-typeck.c:3170 ++#: c-typeck.c:3150 + msgid "ISO C forbids conversion of function pointer to object pointer type" + msgstr "ISO C prohíbe la conversión de un apuntador a función a un tipo de objeto apuntador" + +-#: c-typeck.c:3179 ++#: c-typeck.c:3159 + msgid "ISO C forbids conversion of object pointer to function pointer type" + msgstr "ISO C prohíbe la conversión de objeto apuntador a un tipo de apuntador a función" + + #. Now we have handled acceptable kinds of LHS that are not truly lvalues. + #. Reject anything strange now. +-#: c-typeck.c:3337 ++#: c-typeck.c:3317 + msgid "invalid lvalue in assignment" + msgstr "l-valor inválido en la asignación" + + #. Convert new value to destination type. +-#: c-typeck.c:3346 c-typeck.c:3371 c-typeck.c:3388 cp/typeck.c:5064 +-#: cp/typeck.c:5211 cp/typeck.c:5226 ++#: c-typeck.c:3326 c-typeck.c:3351 c-typeck.c:3368 cp/typeck.c:5082 ++#: cp/typeck.c:5229 cp/typeck.c:5244 + msgid "assignment" + msgstr "asignación" + +-#: c-typeck.c:3455 ++#: c-typeck.c:3435 + msgid "cannot pass rvalue to reference parameter" + msgstr "no se puede pasar un valor-r a un parámetro de referencia" + +-#: c-typeck.c:3564 c-typeck.c:3640 ++#: c-typeck.c:3544 c-typeck.c:3620 + #, c-format + msgid "%s makes qualified function pointer from unqualified" + msgstr "%s hace que la función calificada apunte desde una no calificada" + +-#: c-typeck.c:3568 c-typeck.c:3620 ++#: c-typeck.c:3548 c-typeck.c:3600 + #, c-format + msgid "%s discards qualifiers from pointer target type" + msgstr "%s descarta calificadores del tipo del destino del puntero" + +-#: c-typeck.c:3574 ++#: c-typeck.c:3554 + msgid "ISO C prohibits argument conversion to union type" + msgstr "ISO C prohíbe la conversión de argumentos a tipo union" + +-#: c-typeck.c:3612 ++#: c-typeck.c:3592 + #, c-format + msgid "ISO C forbids %s between function pointer and `void *'" + msgstr "ISO C prohíbe %s entre punteros a función y `void *'" + +-#: c-typeck.c:3629 ++#: c-typeck.c:3609 + #, c-format + msgid "pointer targets in %s differ in signedness" + msgstr "el puntero que apunta a %s difiere en signo" + +-#: c-typeck.c:3645 ++#: c-typeck.c:3625 + #, c-format + msgid "%s from incompatible pointer type" + msgstr "%s de tipo de puntero incompatible" + +-#: c-typeck.c:3651 c-typeck.c:4158 cp/typeck.c:1389 ++#: c-typeck.c:3631 c-typeck.c:4138 cp/typeck.c:1389 + msgid "invalid use of non-lvalue array" + msgstr "uso inválido de matriz no-lvaluada" + +-#: c-typeck.c:3665 ++#: c-typeck.c:3645 + #, c-format + msgid "%s makes pointer from integer without a cast" + msgstr "%s se crea un puntero desde un entero sin una conversión" + +-#: c-typeck.c:3672 ++#: c-typeck.c:3652 + #, c-format + msgid "%s makes integer from pointer without a cast" + msgstr "%s se crea un entero desde un puntero sin una conversión" + +-#: c-typeck.c:3686 c-typeck.c:3689 ++#: c-typeck.c:3666 c-typeck.c:3669 + #, c-format + msgid "incompatible type for argument %d of `%s'" + msgstr "tipo incompatible para el argumento %d de `%s'" + +-#: c-typeck.c:3693 ++#: c-typeck.c:3673 + #, c-format + msgid "incompatible type for argument %d of indirect function call" + msgstr "tipo incompatible para el argumento %d de la llamada indirecta a función" + +-#: c-typeck.c:3697 ++#: c-typeck.c:3677 + #, c-format + msgid "incompatible types in %s" + msgstr "tipos incompatibles en %s" + + #. Function name is known; supply it. +-#: c-typeck.c:3753 ++#: c-typeck.c:3733 + #, c-format + msgid "passing arg of `%s'" + msgstr "al pasar un argumento de `%s'" + + #. Function name unknown (call through ptr). +-#: c-typeck.c:3762 ++#: c-typeck.c:3742 + msgid "passing arg of pointer to function" + msgstr "al pasar un argumento de puntero a la función" + + #. Function name is known; supply it. +-#: c-typeck.c:3770 ++#: c-typeck.c:3750 + #, c-format + msgid "passing arg %d of `%s'" + msgstr "al pasar el argumento %d de `%s'" + + #. Function name unknown (call through ptr); just give arg number. +-#: c-typeck.c:3779 ++#: c-typeck.c:3759 + #, c-format + msgid "passing arg %d of pointer to function" + msgstr "al pasar el argumento %d del puntero a la función" + +-#: c-typeck.c:3836 ++#: c-typeck.c:3816 + msgid "traditional C rejects automatic aggregate initialization" + msgstr "C tradicional rechaza la inicialización automática de agregados" + +-#: c-typeck.c:4007 c-typeck.c:4022 c-typeck.c:4037 ++#: c-typeck.c:3987 c-typeck.c:4002 c-typeck.c:4017 + #, c-format + msgid "(near initialization for `%s')" + msgstr "(cerca de la inicialización de `%s')" + +-#: c-typeck.c:4086 cp/typeck2.c:560 ++#: c-typeck.c:4066 cp/typeck2.c:550 + msgid "char-array initialized from wide string" + msgstr "matriz de caracteres inicializada con una cadena ancha" + + # no ancha -> angosta? cfuga +-#: c-typeck.c:4093 cp/typeck2.c:567 ++#: c-typeck.c:4073 cp/typeck2.c:557 + msgid "int-array initialized from non-wide string" + msgstr "matriz de enteros inicializada con una cadena no ancha" + +-#: c-typeck.c:4111 cp/typeck2.c:582 ++#: c-typeck.c:4091 cp/typeck2.c:572 + msgid "initializer-string for array of chars is too long" + msgstr "la cadena del inicializador para la matriz de caracteres es demasiado larga" + +-#: c-typeck.c:4181 ++#: c-typeck.c:4161 + msgid "array initialized from non-constant array expression" + msgstr "matriz inicializada con una expresión matrizal que no es constante" + +-#: c-typeck.c:4232 ++#: c-typeck.c:4212 + msgid "initialization" + msgstr "inicialización" + +-#: c-typeck.c:4243 c-typeck.c:5621 ++#: c-typeck.c:4223 c-typeck.c:5601 + msgid "initializer element is not computable at load time" + msgstr "el elemento inicializador no es calculable al momento de la carga" + +-#: c-typeck.c:4258 cp/typeck2.c:659 ++#: c-typeck.c:4238 cp/typeck2.c:649 + msgid "invalid initializer" + msgstr "inicializador inválido" + +-#: c-typeck.c:4540 cp/decl.c:4484 ++#: c-typeck.c:4520 cp/decl.c:4539 + msgid "opaque vector types cannot be initialized" + msgstr "no se pueden inicializar los tipos de vector opacos" + +-#: c-typeck.c:4734 ++#: c-typeck.c:4714 + msgid "extra brace group at end of initializer" + msgstr "grupo extra de llaves al final del inicializador" + +-#: c-typeck.c:4754 ++#: c-typeck.c:4734 + msgid "missing braces around initializer" + msgstr "faltan llaves alrededor del inicializador" + +-#: c-typeck.c:4814 ++#: c-typeck.c:4794 + msgid "braces around scalar initializer" + msgstr "llaves alrededor del inicializador escalar" + +-#: c-typeck.c:4865 ++#: c-typeck.c:4845 + msgid "initialization of flexible array member in a nested context" + msgstr "inicialización de un miembro de matriz flexible en un contexto anidado" + +-#: c-typeck.c:4867 ++#: c-typeck.c:4847 + msgid "initialization of a flexible array member" + msgstr "inicialización de un miembro de matriz flexible" + +-#: c-typeck.c:4898 ++#: c-typeck.c:4878 + msgid "missing initializer" + msgstr "falta el inicializador" + +-#: c-typeck.c:4920 ++#: c-typeck.c:4900 + msgid "empty scalar initializer" + msgstr "inicializador escalar vacío" + +-#: c-typeck.c:4925 ++#: c-typeck.c:4905 + msgid "extra elements in scalar initializer" + msgstr "elementos extras en el inicializador escalar" + +-#: c-typeck.c:5010 ++#: c-typeck.c:4990 + msgid "initialization designators may not nest" + msgstr "no se pueden anidar los designadores de inicialización" + +-#: c-typeck.c:5031 c-typeck.c:5099 ++#: c-typeck.c:5011 c-typeck.c:5079 + msgid "array index in non-array initializer" + msgstr "índice de matriz en el inicializador que no es matriz" + +-#: c-typeck.c:5036 c-typeck.c:5152 ++#: c-typeck.c:5016 c-typeck.c:5132 + msgid "field name not in record or union initializer" + msgstr "el nombre del campo no está en el inicializador de record o union" + +-#: c-typeck.c:5095 c-typeck.c:5097 ++#: c-typeck.c:5075 c-typeck.c:5077 + msgid "nonconstant array index in initializer" + msgstr "índice de matriz no constante en el inicializador" + +-#: c-typeck.c:5101 c-typeck.c:5104 ++#: c-typeck.c:5081 c-typeck.c:5084 + msgid "array index in initializer exceeds array bounds" + msgstr "el índice de matriz en el inicializador excede los límites de la matriz" + +-#: c-typeck.c:5115 ++#: c-typeck.c:5095 + msgid "empty index range in initializer" + msgstr "rango de índices vacío en el inicializador" + +-#: c-typeck.c:5124 ++#: c-typeck.c:5104 + msgid "array index range in initializer exceeds array bounds" + msgstr "el rango de índices de la matriz en el inicializador excede los límites de la matriz" + +-#: c-typeck.c:5164 ++#: c-typeck.c:5144 + #, c-format + msgid "unknown field `%s' specified in initializer" + msgstr "campo `%s' desconocido especificado en el inicializador" + +-#: c-typeck.c:5200 c-typeck.c:5221 c-typeck.c:5683 ++#: c-typeck.c:5180 c-typeck.c:5201 c-typeck.c:5663 + msgid "initialized field with side-effects overwritten" + msgstr "campo inicializado con efectos laterales sobreescritos" + +-#: c-typeck.c:5891 ++#: c-typeck.c:5871 + msgid "excess elements in char array initializer" + msgstr "exceso de elementos en el inicializador de matriz de caracteres" + +-#: c-typeck.c:5898 c-typeck.c:5944 ++#: c-typeck.c:5878 c-typeck.c:5924 + msgid "excess elements in struct initializer" + msgstr "exceso de elementos en el inicializador de struct" + +-#: c-typeck.c:5959 ++#: c-typeck.c:5939 + msgid "non-static initialization of a flexible array member" + msgstr "inicialización no estática de un miembro de matriz flexible" + +-#: c-typeck.c:6026 ++#: c-typeck.c:6006 + msgid "excess elements in union initializer" + msgstr "exceso de elementos en el inicializador de union" + +-#: c-typeck.c:6047 ++#: c-typeck.c:6027 + msgid "traditional C rejects initialization of unions" + msgstr "C tradicional rechaza la inicialización de unions" + +-#: c-typeck.c:6110 ++#: c-typeck.c:6090 + msgid "excess elements in array initializer" + msgstr "exceso de elementos en el inicializador de matriz" + +-#: c-typeck.c:6139 ++#: c-typeck.c:6119 + msgid "excess elements in vector initializer" + msgstr "exceso de elementos en el inicializador de vector" + +-#: c-typeck.c:6161 ++#: c-typeck.c:6141 + msgid "excess elements in scalar initializer" + msgstr "exceso de elementos en el inicializador de escalar" + +-#: c-typeck.c:6263 ++#: c-typeck.c:6243 + msgid "asm template is not a string constant" + msgstr "la plantilla asm no es una cadena constante" + +-#: c-typeck.c:6295 ++#: c-typeck.c:6275 + msgid "invalid lvalue in asm statement" + msgstr "l-valor inválido en la declaración asm" + +-#: c-typeck.c:6367 cp/typeck.c:5902 ++#: c-typeck.c:6347 cp/typeck.c:5923 + msgid "modification by `asm'" + msgstr "modificación por `asm'" + +-#: c-typeck.c:6385 cp/typeck.c:5986 ++#: c-typeck.c:6365 cp/typeck.c:6007 + msgid "function declared `noreturn' has a `return' statement" + msgstr "la función declarada `noreturn' tiene una declaración `return'" + +-#: c-typeck.c:6392 ++#: c-typeck.c:6372 + msgid "`return' with no value, in function returning non-void" + msgstr "`return' sin valores, en una función que no devuelve void" + +-#: c-typeck.c:6398 ++#: c-typeck.c:6378 + msgid "`return' with a value, in function returning void" + msgstr "`return' con valor, en una función que devuelve void" + +-#: c-typeck.c:6402 ++#: c-typeck.c:6382 + msgid "return" + msgstr "return" + +-#: c-typeck.c:6454 ++#: c-typeck.c:6434 + msgid "function returns address of local variable" + msgstr "la función devuelve la dirección de una variable local" + +-#: c-typeck.c:6509 cp/semantics.c:749 ++#: c-typeck.c:6489 cp/semantics.c:749 + msgid "switch quantity not an integer" + msgstr "la cantidad de switch no es un entero" + +-#: c-typeck.c:6519 ++#: c-typeck.c:6499 + msgid "`long' switch expression not converted to `int' in ISO C" + msgstr "no se convierte la expresión de switch `long' a `int' en ISO C" + +-#: c-typeck.c:6560 cp/parser.c:5560 ++#: c-typeck.c:6540 cp/parser.c:5597 + msgid "case label not within a switch statement" + msgstr "la etiqueta case no se encuentra dentro de una declaración switch" + +-#: c-typeck.c:6562 ++#: c-typeck.c:6542 + msgid "`default' label not within a switch statement" + msgstr "la etiqueta `default' no está dentro de una declaración switch" + +-#: c-typeck.c:6714 c-typeck.c:6748 ++#: c-typeck.c:6694 c-typeck.c:6728 + msgid "division by zero" + msgstr "división por cero" + +-#: c-typeck.c:6793 cp/typeck.c:2953 ++#: c-typeck.c:6773 cp/typeck.c:2953 + msgid "right shift count is negative" + msgstr "la cuenta de desplazamiento a la derecha es negativa" + +-#: c-typeck.c:6800 cp/typeck.c:2959 ++#: c-typeck.c:6780 cp/typeck.c:2959 + msgid "right shift count >= width of type" + msgstr "cuenta de desplazamiento a la derecha >= anchura del tipo" + +-#: c-typeck.c:6821 cp/typeck.c:2978 ++#: c-typeck.c:6801 cp/typeck.c:2978 + msgid "left shift count is negative" + msgstr "la cuenta de desplazamiento a la izquierda es negativa" + +-#: c-typeck.c:6824 cp/typeck.c:2980 ++#: c-typeck.c:6804 cp/typeck.c:2980 + msgid "left shift count >= width of type" + msgstr "cuenta de desplazamiento a la izquierda >= anchura del tipo" + +-#: c-typeck.c:6845 ++#: c-typeck.c:6825 + msgid "shift count is negative" + msgstr "la cuenta de desplazamiento es negativa" + +-#: c-typeck.c:6847 ++#: c-typeck.c:6827 + msgid "shift count >= width of type" + msgstr "cuenta de desplazamiento >= anchura del tipo" + +-#: c-typeck.c:6864 cp/typeck.c:3015 ++#: c-typeck.c:6844 cp/typeck.c:3015 + msgid "comparing floating point with == or != is unsafe" + msgstr "no es segura la comparacion de coma flotante con == o !=" + +-#: c-typeck.c:6888 c-typeck.c:6894 ++#: c-typeck.c:6868 c-typeck.c:6874 + msgid "ISO C forbids comparison of `void *' with function pointer" + msgstr "ISO C prohíbe la comparación de `void *' con un puntero de función" + +-#: c-typeck.c:6897 c-typeck.c:6937 c-typeck.c:6965 ++#: c-typeck.c:6877 c-typeck.c:6917 c-typeck.c:6945 + msgid "comparison of distinct pointer types lacks a cast" + msgstr "la comparación de diferentes tipos de puntero carece de una conversión" + +-#: c-typeck.c:6911 c-typeck.c:6916 c-typeck.c:6985 c-typeck.c:6990 ++#: c-typeck.c:6891 c-typeck.c:6896 c-typeck.c:6965 c-typeck.c:6970 + msgid "comparison between pointer and integer" + msgstr "comparación entre puntero y entero" + +-#: c-typeck.c:6932 c-typeck.c:6960 ++#: c-typeck.c:6912 c-typeck.c:6940 + msgid "ISO C forbids ordered comparisons of pointers to functions" + msgstr "ISO C prohíbe la comparación entre punteros a funciones" + +-#: c-typeck.c:6957 ++#: c-typeck.c:6937 + msgid "comparison of complete and incomplete pointers" + msgstr "comparación de punteros completos e incompletos" + +-#: c-typeck.c:6973 c-typeck.c:6980 ++#: c-typeck.c:6953 c-typeck.c:6960 + msgid "ordered comparison of pointer with integer zero" + msgstr "comparación ordenada de puntero con el entero cero" + +-#: c-typeck.c:7004 cp/typeck.c:3151 ++#: c-typeck.c:6984 cp/typeck.c:3151 + msgid "unordered comparison on non-floating point argument" + msgstr "comparación sin orden en argumento de coma no flotante" + +-#: c-typeck.c:7214 ++#: c-typeck.c:7194 + msgid "comparison between signed and unsigned" + msgstr "comparación entre signed y unsigned" + +-#: c-typeck.c:7260 cp/typeck.c:3398 ++#: c-typeck.c:7240 cp/typeck.c:3398 + msgid "comparison of promoted ~unsigned with constant" + msgstr "comparación de un ~unsigned promovido con una constante" + +-#: c-typeck.c:7268 cp/typeck.c:3406 ++#: c-typeck.c:7248 cp/typeck.c:3406 + msgid "comparison of promoted ~unsigned with unsigned" + msgstr "comparación de un ~unsigned promovido con unsigned" + +@@ -3414,7 +3419,7 @@ + msgid "%Jinlining failed in call to '%F'" + msgstr "%Jel `inlining' falló en la llamada a '%F'" + +-#: calls.c:1839 calls.c:2211 tree-inline.c:1339 tree-inline.c:1346 ++#: calls.c:1839 calls.c:2211 tree-inline.c:1339 tree-inline.c:1347 + msgid "called from here" + msgstr "llamado desde aquí" + +@@ -3474,7 +3479,7 @@ + msgid "verify_flow_info: Basic block %d succ edge is corrupted" + msgstr "verify_flow_info: El bloque básico %d succ edge está corrupto" + +-#: cfg.c:909 cfgrtl.c:1971 ++#: cfg.c:909 cfgrtl.c:1983 + #, c-format + msgid "Wrong amount of branch edges after unconditional jump %i" + msgstr "Cantidad errónea de bordes de ramificación después del salto incondicional %i" +@@ -3553,116 +3558,116 @@ + msgid "Edge from %d to %d should not be marked irreducible." + msgstr "El borde de %d a %d no se debe marcar como irreducible." + +-#: cfgrtl.c:1877 ++#: cfgrtl.c:1889 + #, c-format + msgid "end insn %d for block %d not found in the insn stream" + msgstr "el insn final %d para el bloque %d no se encuentra en el flujo insn" + +-#: cfgrtl.c:1891 ++#: cfgrtl.c:1903 + #, c-format + msgid "insn %d is in multiple basic blocks (%d and %d)" + msgstr "insn %d está en múltiples bloques básicos (%d y %d)" + +-#: cfgrtl.c:1903 ++#: cfgrtl.c:1915 + #, c-format + msgid "head insn %d for block %d not found in the insn stream" + msgstr "la cabeza insn %d para el bloque %d no se encuentra en el flujo insn" + +-#: cfgrtl.c:1925 ++#: cfgrtl.c:1937 + msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i" + msgstr "verify_flow_info: REG_BR_PROB no coincide con la configuración %wi %i" + +-#: cfgrtl.c:1953 ++#: cfgrtl.c:1965 + #, c-format + msgid "Missing REG_EH_REGION note in the end of bb %i" + msgstr "Falta la nota REG_EH_REGION al final de bb %i" + +-#: cfgrtl.c:1961 ++#: cfgrtl.c:1973 + #, c-format + msgid "Too many outgoing branch edges from bb %i" + msgstr "Demasiados bordes de ramificación de salida de bb %i" + +-#: cfgrtl.c:1966 ++#: cfgrtl.c:1978 + #, c-format + msgid "Fallthru edge after unconditional jump %i" + msgstr "Borde de caída después del salto incondicional %i" + +-#: cfgrtl.c:1977 ++#: cfgrtl.c:1989 + #, c-format + msgid "Wrong amount of branch edges after conditional jump %i" + msgstr "Cantidad errónea de bordes de ramificación después del salto condicional %i" + +-#: cfgrtl.c:1982 ++#: cfgrtl.c:1994 + #, c-format + msgid "Call edges for non-call insn in bb %i" + msgstr "Bordes de llamada para una insn que no es llamada en bb %i" + +-#: cfgrtl.c:1991 ++#: cfgrtl.c:2003 + #, c-format + msgid "Abnormal edges for no purpose in bb %i" + msgstr "Bordes anormales sin ningún propósito en bb %i" + +-#: cfgrtl.c:2001 ++#: cfgrtl.c:2013 + #, c-format + msgid "insn %d inside basic block %d but block_for_insn is NULL" + msgstr "insn %d está dentro del bloque básico %d pero block_for_insn es NULL" + +-#: cfgrtl.c:2005 ++#: cfgrtl.c:2017 + #, c-format + msgid "insn %d inside basic block %d but block_for_insn is %i" + msgstr "insn %d está dentro del bloque básico %d pero block_for_insn es %i" + +-#: cfgrtl.c:2019 cfgrtl.c:2029 ++#: cfgrtl.c:2031 cfgrtl.c:2041 + #, c-format + msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d" + msgstr "NOTE_INSN_BASIC_BLOCK falta para el bloque %d" + +-#: cfgrtl.c:2042 ++#: cfgrtl.c:2054 + #, c-format + msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d" + msgstr "NOTE_INSN_BASIC_BLOCK %d en el medio del bloque básico %d" + +-#: cfgrtl.c:2052 ++#: cfgrtl.c:2064 + #, c-format + msgid "in basic block %d:" + msgstr "en el bloque básico %d:" + +-#: cfgrtl.c:2053 ++#: cfgrtl.c:2065 + msgid "flow control insn inside a basic block" + msgstr "control de flujo insn dentro de un bloque básico" + +-#: cfgrtl.c:2099 ++#: cfgrtl.c:2111 + #, c-format + msgid "missing barrier after block %i" + msgstr "falta una barrera después del bloque %i" + +-#: cfgrtl.c:2112 ++#: cfgrtl.c:2124 + #, c-format + msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i" + msgstr "verify_flow_info: Bloques incorrectos para el respaldo %i->%i" + +-#: cfgrtl.c:2127 ++#: cfgrtl.c:2139 + #, c-format + msgid "verify_flow_info: Incorrect fallthru %i->%i" + msgstr "verify_flow_info: Respaldo incorrecto %i->%i" + +-#: cfgrtl.c:2129 ++#: cfgrtl.c:2141 + msgid "wrong insn in the fallthru edge" + msgstr "insn erróneo en el borde del respaldo" + +-#: cfgrtl.c:2146 ++#: cfgrtl.c:2158 + msgid "basic blocks not laid down consecutively" + msgstr "los bloques básicos no están ubicados consecutivamente" + +-#: cfgrtl.c:2171 ++#: cfgrtl.c:2183 + msgid "insn outside basic block" + msgstr "insn fuera del bloque básico" + +-#: cfgrtl.c:2179 ++#: cfgrtl.c:2191 + msgid "return not followed by barrier" + msgstr "return no es seguido por una barrera" + +-#: cfgrtl.c:2186 ++#: cfgrtl.c:2198 + #, c-format + msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)" + msgstr "el número de notas bb en la cadena insn (%d) != n_basic_blocks (%d)" +@@ -3895,7 +3900,7 @@ + msgid "library lib%s not found" + msgstr "no se encuentra la biblioteca lib%s" + +-#: combine.c:13048 ++#: combine.c:13047 + #, c-format + msgid "" + ";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n" +@@ -3906,7 +3911,7 @@ + ";; %d éxitos.\n" + "\n" + +-#: combine.c:13057 ++#: combine.c:13056 + #, c-format + msgid "" + "\n" +@@ -4235,63 +4240,68 @@ + msgid "token \"%s\" is not valid in preprocessor expressions" + msgstr "el elemento \"%s\" no es válido en las expresiones del preprocesador" + +-#: cppexp.c:753 +-msgid "void expression between '(' and ')'" +-msgstr "expresión void entre '(' y ')'" ++#: cppexp.c:751 ++msgid "missing expression between '(' and ')'" ++msgstr "falta una expresión entre '(' y ')'" + +-#: cppexp.c:756 ++#: cppexp.c:754 + msgid "#if with no expression" + msgstr "#if sin expresión" + +-#: cppexp.c:758 ++#: cppexp.c:757 + #, c-format + msgid "operator '%s' has no right operand" + msgstr "el operador '%s' no tiene operando derecho" + +-#: cppexp.c:784 ++#: cppexp.c:762 ++#, c-format ++msgid "operator '%s' has no left operand" ++msgstr "el operador `%s' no tiene operando izquierdo" ++ ++#: cppexp.c:788 + msgid " ':' without preceding '?'" + msgstr " ':' sin una '?' precedente" + +-#: cppexp.c:811 ++#: cppexp.c:815 + msgid "unbalanced stack in #if" + msgstr "pila desbalanceada en #if" + +-#: cppexp.c:830 ++#: cppexp.c:834 + #, c-format + msgid "impossible operator '%u'" + msgstr "operador '%u' imposible" + +-#: cppexp.c:922 ++#: cppexp.c:926 + msgid "missing ')' in expression" + msgstr "falta un ')' en la expresión" + +-#: cppexp.c:943 ++#: cppexp.c:947 + msgid "'?' without following ':'" + msgstr "'?' sin ':' a continuación" + +-#: cppexp.c:953 ++#: cppexp.c:957 + msgid "integer overflow in preprocessor expression" + msgstr "desbordamiento entero en expresión del preprocesador" + +-#: cppexp.c:958 ++#: cppexp.c:962 + msgid "missing '(' in expression" + msgstr "falta un '(' en la expresión" + +-#: cppexp.c:990 ++#: cppexp.c:994 + #, c-format + msgid "the left operand of \"%s\" changes sign when promoted" + msgstr "el operando izquierdo de \"%s\" cambia el signo cuando es promovido" + +-#: cppexp.c:995 ++#: cppexp.c:999 + #, c-format + msgid "the right operand of \"%s\" changes sign when promoted" + msgstr "el operando derecho de \"%s\" cambia el signo cuando es promovido" + +-#: cppexp.c:1353 ++#: cppexp.c:1357 + msgid "comma operator in operand of #if" + msgstr "operador coma en operando de #if" + +-#: cppexp.c:1484 ++#: cppexp.c:1488 + msgid "division by zero in #if" + msgstr "división por cero en #if" + +@@ -4327,7 +4337,7 @@ + msgid "no include path in which to search for %s" + msgstr "no hay ruta de inclusión en la cual se pueda buscar %s" + +-#: cppfiles.c:956 ++#: cppfiles.c:959 + msgid "Multiple include guards may be useful for:\n" + msgstr "Guardias múltiples de include pueden ser útiles para:\n" + +@@ -4738,7 +4748,7 @@ + msgid "syntax error in macro parameter list" + msgstr "error de sintaxis en la lista de parámetros de macro" + +-#: cse.c:7064 ++#: cse.c:7069 + #, c-format + msgid ";; Processing block from %d to %d, %d sets.\n" + msgstr ";; Procesando el bloque de %d a %d, %d establecido.\n" +@@ -4870,12 +4880,12 @@ + + #. We can't handle floating point constants; + #. PRINT_OPERAND must handle them. +-#: final.c:3220 vmsdbgout.c:467 config/i386/i386.c:6768 ++#: final.c:3220 vmsdbgout.c:467 config/i386/i386.c:6769 + #: config/pdp11/pdp11.c:1646 + msgid "floating constant misused" + msgstr "constante de coma flotante mal usada" + +-#: final.c:3276 vmsdbgout.c:524 config/i386/i386.c:6846 ++#: final.c:3276 vmsdbgout.c:524 config/i386/i386.c:6847 + #: config/pdp11/pdp11.c:1693 + msgid "invalid expression as operand" + msgstr "expresión inválida como operando" +@@ -4896,25 +4906,25 @@ + msgid "Attempt to delete prologue/epilogue insn:" + msgstr "Se intentó borrar el insn de prólogo/epílogo" + +-#: fold-const.c:2878 fold-const.c:2891 ++#: fold-const.c:2889 fold-const.c:2902 + #, c-format + msgid "comparison is always %d due to width of bit-field" + msgstr "la comparación siempre es %d debido a la anchura del campo de bit" + +-#: fold-const.c:4093 fold-const.c:4110 ++#: fold-const.c:4110 fold-const.c:4127 + #, c-format + msgid "comparison is always %d" + msgstr "la comparación siempre es %d" + +-#: fold-const.c:4241 ++#: fold-const.c:4258 + msgid "`or' of unmatched not-equal tests is always 1" + msgstr "un `or' de pruebas no equivalentes sin coincidencia siempre es 1" + +-#: fold-const.c:4246 ++#: fold-const.c:4263 + msgid "`and' of mutually exclusive equal-tests is always 0" + msgstr "un `and' de pruebas equivalentes mutuamente exclusivas siempre es 0" + +-#: fold-const.c:8393 ++#: fold-const.c:8410 + msgid "fold check: original tree changed by fold" + msgstr "fold check: el árbol original cambió por un pliegue" + +@@ -4922,27 +4932,27 @@ + msgid "%Jsize of variable '%D' is too large" + msgstr "%Jel tamaño de la variable '%D' es demasiado grande" + +-#: function.c:3742 ++#: function.c:3752 + msgid "impossible constraint in `asm'" + msgstr "restricción imposible en `asm'" + +-#: function.c:5733 ++#: function.c:5743 + msgid "%J'%D' might be used uninitialized in this function" + msgstr "%Jpuede ser que se utilice '%D' sin inicializar en esta función" + +-#: function.c:5740 ++#: function.c:5750 + msgid "%Jvariable '%D' might be clobbered by `longjmp' or `vfork'" + msgstr "%Jla variable '%D' puede ser sobreescrita por `longjmp' o `vfork'" + +-#: function.c:5759 ++#: function.c:5769 + msgid "%Jargument '%D' might be clobbered by `longjmp' or `vfork'" + msgstr "%Jel argumento '%D' puede ser sobreescrito por `longjmp' o `vfork'" + +-#: function.c:6533 ++#: function.c:6543 + msgid "function returns an aggregate" + msgstr "la función devuelve un agregado" + +-#: function.c:6929 ++#: function.c:6939 + msgid "%Junused parameter '%D'" + msgstr "%Jparámetro '%D' sin uso" + +@@ -4970,7 +4980,7 @@ + msgid "Using built-in specs.\n" + msgstr "Usando especificaciones internas.\n" + +-#: gcc.c:1755 ++#: gcc.c:1758 + #, c-format + msgid "" + "Setting spec %s to '%s'\n" +@@ -4979,42 +4989,42 @@ + "Cambiando la especificación de %s a '%s'\n" + "\n" + +-#: gcc.c:1857 ++#: gcc.c:1860 + #, c-format + msgid "Reading specs from %s\n" + msgstr "Leyendo especificaciones de %s\n" + +-#: gcc.c:1953 gcc.c:1972 ++#: gcc.c:1956 gcc.c:1975 + #, c-format + msgid "specs %%include syntax malformed after %ld characters" + msgstr "specs sintaxis mal formada de %%include después de %ld caracteres" + +-#: gcc.c:1980 ++#: gcc.c:1983 + #, c-format + msgid "could not find specs file %s\n" + msgstr "no se puede encontrar el fichero de especificaciones %s\n" + +-#: gcc.c:1997 gcc.c:2005 gcc.c:2014 gcc.c:2023 ++#: gcc.c:2000 gcc.c:2008 gcc.c:2017 gcc.c:2026 + #, c-format + msgid "specs %%rename syntax malformed after %ld characters" + msgstr "specs sintaxis mal formada de %%rename después de %ld caracteres" + +-#: gcc.c:2032 ++#: gcc.c:2035 + #, c-format + msgid "specs %s spec was not found to be renamed" + msgstr "specs la especificación %s no se encontró para ser renombrada" + +-#: gcc.c:2039 ++#: gcc.c:2042 + #, c-format + msgid "%s: attempt to rename spec '%s' to already defined spec '%s'" + msgstr "%s: se intentó renombrar la especificación '%s' a la especificación '%s' que ya estaba definida" + +-#: gcc.c:2044 ++#: gcc.c:2047 + #, c-format + msgid "rename spec %s to %s\n" + msgstr "renombrando especificación %s a %s\n" + +-#: gcc.c:2046 ++#: gcc.c:2049 + #, c-format + msgid "" + "spec is '%s'\n" +@@ -5023,25 +5033,25 @@ + "la especificacion es '%s'\n" + "\n" + +-#: gcc.c:2059 ++#: gcc.c:2062 + #, c-format + msgid "specs unknown %% command after %ld characters" + msgstr "specs comando %% desconocido después de %ld caracteres" + +-#: gcc.c:2070 gcc.c:2083 ++#: gcc.c:2073 gcc.c:2086 + #, c-format + msgid "specs file malformed after %ld characters" + msgstr "specs fichero mal formado después de %ld caracteres" + +-#: gcc.c:2136 ++#: gcc.c:2139 + msgid "spec file has no spec for linking" + msgstr "el fichero de especificaciones no tiene especificaciones para enlazar" + +-#: gcc.c:2641 ++#: gcc.c:2644 + msgid "-pipe not supported" + msgstr "-pipe no tiene soporte" + +-#: gcc.c:2703 ++#: gcc.c:2706 + msgid "" + "\n" + "Go ahead? (y or n) " +@@ -5049,7 +5059,7 @@ + "\n" + "¿Continuar? (s ó n) " + +-#: gcc.c:2829 ++#: gcc.c:2832 + #, c-format + msgid "" + "Internal error: %s (program %s)\n" +@@ -5060,69 +5070,69 @@ + "Por favor envíe un reporte completo de error.\n" + "Vea %s para más instrucciones." + +-#: gcc.c:2847 ++#: gcc.c:2850 + #, c-format + msgid "# %s %.2f %.2f\n" + msgstr "# %s %.2f %.2f\n" + +-#: gcc.c:2980 ++#: gcc.c:2983 + #, c-format + msgid "Usage: %s [options] file...\n" + msgstr "Modo de empleo: %s [opciones] fichero...\n" + +-#: gcc.c:2981 ++#: gcc.c:2984 + msgid "Options:\n" + msgstr "Opciones:\n" + +-#: gcc.c:2983 ++#: gcc.c:2986 + msgid " -pass-exit-codes Exit with highest error code from a phase\n" + msgstr " -pass-exit-codes Salir con el código de error más alto de una fase\n" + +-#: gcc.c:2984 ++#: gcc.c:2987 + msgid " --help Display this information\n" + msgstr " --help Muestra esta información\n" + +-#: gcc.c:2985 ++#: gcc.c:2988 + msgid " --target-help Display target specific command line options\n" + msgstr " --target-help Muestra opciones de línea de comando específicas del objetivo\n" + +-#: gcc.c:2987 ++#: gcc.c:2990 + msgid " (Use '-v --help' to display command line options of sub-processes)\n" + msgstr " (Use '-v --help' para mostrar las opciones de línea de comando de los subprocesos)\n" + +-#: gcc.c:2988 ++#: gcc.c:2991 + msgid " -dumpspecs Display all of the built in spec strings\n" + msgstr " -dumpspecs Muestra todas las cadenas internas de especificación\n" + +-#: gcc.c:2989 ++#: gcc.c:2992 + msgid " -dumpversion Display the version of the compiler\n" + msgstr " -dumpversion Muestra la versión del compilador\n" + +-#: gcc.c:2990 ++#: gcc.c:2993 + msgid " -dumpmachine Display the compiler's target processor\n" + msgstr " -dumpmachine Muestra el procesador objetivo del compilador\n" + +-#: gcc.c:2991 ++#: gcc.c:2994 + msgid " -print-search-dirs Display the directories in the compiler's search path\n" + msgstr " -print-search-dirs Muestra los directorios en la ruta de búsqueda del compilador\n" + +-#: gcc.c:2992 ++#: gcc.c:2995 + msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n" + msgstr " -print-libgcc-file-name Muestra el nombre de la biblioteca que acompaña al compilador\n" + +-#: gcc.c:2993 ++#: gcc.c:2996 + msgid " -print-file-name= Display the full path to library \n" + msgstr " -print-file-name= Muestra la ruta completa a la biblioteca \n" + +-#: gcc.c:2994 ++#: gcc.c:2997 + msgid " -print-prog-name= Display the full path to compiler component \n" + msgstr " -print-prog-name= Muestra la ruta completa del programa componente del compilador \n" + +-#: gcc.c:2995 ++#: gcc.c:2998 + msgid " -print-multi-directory Display the root directory for versions of libgcc\n" + msgstr " -print-multi-directory Muestra el directorio raíz para las versiones de libgcc\n" + +-#: gcc.c:2996 ++#: gcc.c:2999 + msgid "" + " -print-multi-lib Display the mapping between command line options and\n" + " multiple library search directories\n" +@@ -5130,91 +5140,91 @@ + " -print-multi-lib Muestra el mapeo entre las opciones de línea de comando\n" + " y los múltiples directorios de la búsqueda de bibliotecas\n" + +-#: gcc.c:2999 ++#: gcc.c:3002 + msgid " -print-multi-os-directory Display the relative path to OS libraries\n" + msgstr " -print-multi-os-directory Muestra la ruta relativa para las bibliotecas del SO\n" + +-#: gcc.c:3000 ++#: gcc.c:3003 + msgid " -Wa, Pass comma-separated on to the assembler\n" + msgstr " -Wa, Pasa separadas por coma al ensamblador\n" + +-#: gcc.c:3001 ++#: gcc.c:3004 + msgid " -Wp, Pass comma-separated on to the preprocessor\n" + msgstr " -Wp, Pasa separadas por coma al preprocesador\n" + +-#: gcc.c:3002 ++#: gcc.c:3005 + msgid " -Wl, Pass comma-separated on to the linker\n" + msgstr " -Wl, Pasa separadas por coma al enlazador\n" + +-#: gcc.c:3003 ++#: gcc.c:3006 + msgid " -Xassembler Pass on to the assembler\n" + msgstr " -Xassembler Pasa el al ensamblador\n" + +-#: gcc.c:3004 ++#: gcc.c:3007 + msgid " -Xpreprocessor Pass on to the preprocessor\n" + msgstr " -Xpreprocessor Pasa el al preprocesador\n" + +-#: gcc.c:3005 ++#: gcc.c:3008 + msgid " -Xlinker Pass on to the linker\n" + msgstr " -Xlinker Pasa el al enlazador\n" + +-#: gcc.c:3006 ++#: gcc.c:3009 + msgid " -save-temps Do not delete intermediate files\n" + msgstr " -save-temps No borra los ficheros intermedios\n" + +-#: gcc.c:3007 ++#: gcc.c:3010 + msgid " -pipe Use pipes rather than intermediate files\n" + msgstr " -pipe Usa tuberías en lugar de ficheros intermedios\n" + +-#: gcc.c:3008 ++#: gcc.c:3011 + msgid " -time Time the execution of each subprocess\n" + msgstr " -time Obtiene el tiempo de ejecución de cada subproceso\n" + +-#: gcc.c:3009 ++#: gcc.c:3012 + msgid " -specs= Override built-in specs with the contents of \n" + msgstr " -specs= Sobrepone las especificaciones internas con el contenido del \n" + +-#: gcc.c:3010 ++#: gcc.c:3013 + msgid " -std= Assume that the input sources are for \n" + msgstr " -std= Asume que los ficheros de entrada son para el \n" + +-#: gcc.c:3011 ++#: gcc.c:3014 + msgid " -B Add to the compiler's search paths\n" + msgstr " -B Agrega el a las rutas de búsqueda del compilador\n" + +-#: gcc.c:3012 ++#: gcc.c:3015 + msgid " -b Run gcc for target , if installed\n" + msgstr " -b Ejecuta gcc para el objetivo , si se instaló\n" + +-#: gcc.c:3013 ++#: gcc.c:3016 + msgid " -V Run gcc version number , if installed\n" + msgstr " -V Ejecuta el gcc con número de versión , si se instaló\n" + +-#: gcc.c:3014 ++#: gcc.c:3017 + msgid " -v Display the programs invoked by the compiler\n" + msgstr " -v Muestra los programas invocados por el compilador\n" + +-#: gcc.c:3015 ++#: gcc.c:3018 + msgid " -### Like -v but options quoted and commands not executed\n" + msgstr " -### Como -v pero no se ejecutan las opciones entre comillas y los comandos\n" + +-#: gcc.c:3016 ++#: gcc.c:3019 + msgid " -E Preprocess only; do not compile, assemble or link\n" + msgstr " -E Solamente preprocesa; no compila, ensambla o enlaza\n" + +-#: gcc.c:3017 ++#: gcc.c:3020 + msgid " -S Compile only; do not assemble or link\n" + msgstr " -S Solamente compila; no ensambla o enlaza\n" + +-#: gcc.c:3018 ++#: gcc.c:3021 + msgid " -c Compile and assemble, but do not link\n" + msgstr " -c Compila y ensambla, pero no enlaza\n" + +-#: gcc.c:3019 ++#: gcc.c:3022 + msgid " -o Place the output into \n" + msgstr " -o Coloca la salida en el \n" + +-#: gcc.c:3020 ++#: gcc.c:3023 + msgid "" + " -x Specify the language of the following input files\n" + " Permissible languages include: c c++ assembler none\n" +@@ -5226,7 +5236,7 @@ + " 'none' significa revertir a la conducta habitual de\n" + " adivinar el lenguaje basado en la extensión del fichero\n" + +-#: gcc.c:3027 ++#: gcc.c:3030 + #, c-format + msgid "" + "\n" +@@ -5239,27 +5249,27 @@ + " automáticamente a los varios subprocesos invocados por %s. Para pasar\n" + " otras opciones a estos procesos se deben usar las opciones -W.\n" + +-#: gcc.c:3148 ++#: gcc.c:3151 + #, c-format + msgid "`-%c' option must have argument" + msgstr "la opción `-%c' debe tener argumentos" + +-#: gcc.c:3170 ++#: gcc.c:3173 + #, c-format + msgid "couldn't run `%s': %s" + msgstr "no se puede ejecutar `%s': %s" + + #. translate_options () has turned --version into -fversion. +-#: gcc.c:3356 ++#: gcc.c:3359 + #, c-format + msgid "%s (GCC) %s\n" + msgstr "%s (GCC) %s\n" + +-#: gcc.c:3358 gcov.c:424 f/g77spec.c:351 ++#: gcc.c:3361 gcov.c:424 f/g77spec.c:351 + msgid "(C)" + msgstr "(C)" + +-#: gcc.c:3359 ++#: gcc.c:3362 + msgid "" + "This is free software; see the source for copying conditions. There is NO\n" + "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" +@@ -5270,66 +5280,66 @@ + "PARTICULAR\n" + "\n" + +-#: gcc.c:3460 ++#: gcc.c:3463 + msgid "argument to `-Xlinker' is missing" + msgstr "falta el argumento para `-Xlinker'" + +-#: gcc.c:3468 ++#: gcc.c:3471 + msgid "argument to `-Xpreprocessor' is missing" + msgstr "falta el argumento para `-Xpreprocessor'" + +-#: gcc.c:3475 ++#: gcc.c:3478 + msgid "argument to `-Xassembler' is missing" + msgstr "falta el argumento para `-Xassembler'" + +-#: gcc.c:3482 ++#: gcc.c:3485 + msgid "argument to `-l' is missing" + msgstr "falta el argumento para `-l'" + +-#: gcc.c:3498 ++#: gcc.c:3501 + msgid "argument to `-specs' is missing" + msgstr "falta el argumento para `-specs'" + +-#: gcc.c:3512 ++#: gcc.c:3515 + msgid "argument to `-specs=' is missing" + msgstr "falta el argumento para `-specs='" + +-#: gcc.c:3549 ++#: gcc.c:3552 + #, c-format + msgid "`-%c' must come at the start of the command line" + msgstr "`-%c' debe estar al inicio de la línea de comandos" + +-#: gcc.c:3558 ++#: gcc.c:3561 + msgid "argument to `-B' is missing" + msgstr "falta el argumento para `-B'" + +-#: gcc.c:3735 ++#: gcc.c:3738 + msgid "warning: -pipe ignored because -save-temps specified" + msgstr "aviso: se ignora -pipe porque se especificó -save-temps" + +-#: gcc.c:3739 ++#: gcc.c:3742 + msgid "warning: -pipe ignored because -time specified" + msgstr "aviso: se ignora -pipe porque se especificó -time" + +-#: gcc.c:3951 ++#: gcc.c:3954 + msgid "argument to `-x' is missing" + msgstr "falta el argumento para `-x'" + +-#: gcc.c:3979 ++#: gcc.c:3982 + #, c-format + msgid "argument to `-%s' is missing" + msgstr "falta el argumento para `-%s'" + +-#: gcc.c:4040 ++#: gcc.c:4043 + #, c-format + msgid "warning: `-x %s' after last input file has no effect" + msgstr "aviso: `-x %s' después del último fichero de entrada no tiene efecto" + +-#: gcc.c:4441 ++#: gcc.c:4444 + msgid "invalid specification! Bug in cc" + msgstr "¡Especificación inválida! `Bug' en cc" + +-#: gcc.c:4595 ++#: gcc.c:4598 + #, c-format + msgid "%s\n" + msgstr "%s\n" +@@ -5337,78 +5347,78 @@ + #. Catch the case where a spec string contains something like + #. '%{foo:%*}'. ie there is no * in the pattern on the left + #. hand side of the :. +-#: gcc.c:5099 ++#: gcc.c:5102 + #, c-format + msgid "spec failure: '%%*' has not been initialized by pattern match" + msgstr "falla en spec: '%%*' no ha sido inicializado por coincidencia de patrón" + +-#: gcc.c:5108 ++#: gcc.c:5111 + #, c-format + msgid "warning: use of obsolete %%[ operator in specs" + msgstr "aviso: uso del operador obsoleto %%[ en especificación" + +-#: gcc.c:5126 ++#: gcc.c:5129 + #, c-format + msgid "Processing spec %c%s%c, which is '%s'\n" + msgstr "Procesando la especificación %c%s%c, el cual es '%s'\n" + +-#: gcc.c:5189 ++#: gcc.c:5192 + #, c-format + msgid "spec failure: unrecognized spec option '%c'" + msgstr "falla en spec: opción de especificación '%c' no reconocida" + +-#: gcc.c:5268 ++#: gcc.c:5271 + #, c-format + msgid "unknown spec function `%s'" + msgstr "función de especificación `%s' desconocida" + +-#: gcc.c:5287 ++#: gcc.c:5290 + #, c-format + msgid "error in args to spec function `%s'" + msgstr "error en los argumentos para la función de especificación `%s'" + +-#: gcc.c:5335 ++#: gcc.c:5338 + msgid "malformed spec function name" + msgstr "nombre de la función de especificación malformado" + + #. ) +-#: gcc.c:5338 ++#: gcc.c:5341 + msgid "no arguments for spec function" + msgstr "no hay argumentos para la función de especificación" + +-#: gcc.c:5357 ++#: gcc.c:5360 + msgid "malformed spec function arguments" + msgstr "argumentos de la función de especificación malformados" + +-#: gcc.c:6083 ++#: gcc.c:6086 + msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC." + msgstr "falla de especificación: más de un argumento para SYSROOT_SUFFIX_SPEC." + +-#: gcc.c:6093 ++#: gcc.c:6096 + msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC." + msgstr "falla de especificación: más de un argumento para SYSROOT_HEADERS_SUFFIX_SPEC." + +-#: gcc.c:6186 ++#: gcc.c:6189 + #, c-format + msgid "unrecognized option `-%s'" + msgstr "opción `-%s' no reconocida" + +-#: gcc.c:6192 ++#: gcc.c:6195 + #, c-format + msgid "install: %s%s\n" + msgstr "instalar: %s%s\n" + +-#: gcc.c:6193 ++#: gcc.c:6196 + #, c-format + msgid "programs: %s\n" + msgstr "programas: %s\n" + +-#: gcc.c:6194 ++#: gcc.c:6197 + #, c-format + msgid "libraries: %s\n" + msgstr "bibliotecas: %s\n" + +-#: gcc.c:6251 ++#: gcc.c:6254 + msgid "" + "\n" + "For bug reporting instructions, please see:\n" +@@ -5416,50 +5426,50 @@ + "\n" + "Para instrucciones de reporte de `bugs', por favor vea:\n" + +-#: gcc.c:6267 ++#: gcc.c:6270 + #, c-format + msgid "Configured with: %s\n" + msgstr "Configurado con: %s\n" + +-#: gcc.c:6281 ++#: gcc.c:6284 + #, c-format + msgid "Thread model: %s\n" + msgstr "Modelo de hilos: %s\n" + +-#: gcc.c:6292 ++#: gcc.c:6295 + #, c-format + msgid "gcc version %s\n" + msgstr "gcc versión %s\n" + +-#: gcc.c:6294 ++#: gcc.c:6297 + #, c-format + msgid "gcc driver version %s executing gcc version %s\n" + msgstr "controlador gcc versión %s ejecutando gcc version %s\n" + +-#: gcc.c:6302 ++#: gcc.c:6305 + msgid "no input files" + msgstr "no hay ficheros de entrada" + +-#: gcc.c:6324 gcc.c:6443 ++#: gcc.c:6327 gcc.c:6446 + #, c-format + msgid "%s: linker input file unused because linking not done" + msgstr "%s: no se usó el fichero de entrada del enlazador porque no se hizo enlace" + +-#: gcc.c:6327 ++#: gcc.c:6330 + msgid "cannot specify -o with -c or -S and multiple languages" + msgstr "no se puede especificar -o con -c ó -S y con múltiples lenguajes" + +-#: gcc.c:6362 ++#: gcc.c:6365 + #, c-format + msgid "%s: %s compiler not installed on this system" + msgstr "%s: el compilador %s no está instalado en este sistema" + +-#: gcc.c:6483 ++#: gcc.c:6486 + #, c-format + msgid "language %s not recognized" + msgstr "no se reconoce el lenguaje %s" + +-#: gcc.c:6580 ++#: gcc.c:6583 + msgid "internal gcc abort" + msgstr "aborto interno de gcc" + +@@ -5754,21 +5764,21 @@ + msgid "GCSE disabled" + msgstr "GCSE desactivado" + +-#: gcse.c:6124 ++#: gcse.c:6125 + msgid "NULL pointer checks disabled" + msgstr "revisiones para apuntador NULL desactivadas" + + #. Return if there's nothing to do, or it is too expensive. +-#: gcse.c:8010 ++#: gcse.c:8036 + msgid "jump bypassing disabled" + msgstr "omisión del salto desactivado" + +-#: gcse.c:8071 ++#: gcse.c:8097 + #, c-format + msgid "%s: %d basic blocks and %d edges/basic block" + msgstr "%s: %d bloques básicos y %d bloques borde/básicos" + +-#: gcse.c:8084 ++#: gcse.c:8110 + #, c-format + msgid "%s: %d basic blocks and %d registers" + msgstr "%s: %d bloques básicos y %d registros" +@@ -5818,7 +5828,7 @@ + msgid "%s cannot be used in asm here" + msgstr "no se puede usar %s en asm aquí" + +-#: graph.c:403 toplev.c:1498 toplev.c:4432 f/com.c:14202 java/jcf-parse.c:883 ++#: graph.c:403 toplev.c:1498 toplev.c:4433 f/com.c:14202 java/jcf-parse.c:883 + #: java/jcf-parse.c:1029 java/lex.c:1828 objc/objc-act.c:503 + #, c-format + msgid "can't open %s: %m" +@@ -5897,7 +5907,7 @@ + msgid "function with target specific attribute(s) cannot be inlined" + msgstr "la función con atributo(s) específicos del objetivo no puede ser inline" + +-#: jump.c:1896 ++#: jump.c:1913 + msgid "%Hwill never be executed" + msgstr "%Hnunca se ejecutará" + +@@ -6395,7 +6405,7 @@ + msgid "can't use '%s' as a %s register" + msgstr "no se puede usar '%s' como un registro %s" + +-#: regclass.c:758 config/ia64/ia64.c:4660 config/ia64/ia64.c:4667 ++#: regclass.c:758 config/ia64/ia64.c:4666 config/ia64/ia64.c:4673 + #, c-format + msgid "unknown register name: %s" + msgstr "nombre de registro desconocido: %s" +@@ -6440,15 +6450,15 @@ + msgid "impossible register constraint in `asm'" + msgstr "es imposible inicio la restricción de registros en `asm'" + +-#: reload.c:3504 ++#: reload.c:3519 + msgid "`&' constraint used with no register class" + msgstr "se usó la restricción `&' sin una clase de registro" + +-#: reload.c:3672 ++#: reload.c:3687 + msgid "unable to generate reloads for:" + msgstr "no se pueden generar recargas para:" + +-#: reload.c:3673 reload.c:3887 ++#: reload.c:3688 reload.c:3902 + msgid "inconsistent operand constraints in an `asm'" + msgstr "restricciones de operandos inconsistentes en un `asm'" + +@@ -6851,11 +6861,11 @@ + msgid "invalid register name `%s' for register variable" + msgstr "el nombre de registro `%s' no es válido para variable de registro" + +-#: toplev.c:3546 ++#: toplev.c:3547 + msgid "branch target register load optimization is not intended to be run twice" + msgstr "la optimización de carga de registro objetivo no se pensó para ser ejecutada dos veces" + +-#: toplev.c:3713 ++#: toplev.c:3714 + msgid "" + "\n" + "Target specific options:\n" +@@ -6863,12 +6873,12 @@ + "\n" + "Opciones específicas del objetivo:\n" + +-#: toplev.c:3727 toplev.c:3746 ++#: toplev.c:3728 toplev.c:3747 + #, c-format + msgid " -m%-23s [undocumented]\n" + msgstr " -m%-23s [sin documentar]\n" + +-#: toplev.c:3755 ++#: toplev.c:3756 + msgid "" + "\n" + "There are undocumented target specific options as well.\n" +@@ -6876,21 +6886,21 @@ + "\n" + "Además hay opciones específicas del objetivo sin documentar.\n" + +-#: toplev.c:3757 ++#: toplev.c:3758 + msgid " They exist, but they are not documented.\n" + msgstr " Existen, pero no están documentadas.\n" + +-#: toplev.c:3812 ++#: toplev.c:3813 + #, c-format + msgid "unrecognized gcc debugging option: %c" + msgstr "opción de depuración de gcc no reconocida: %c" + +-#: toplev.c:3874 config/rs6000/rs6000.c:922 ++#: toplev.c:3875 config/rs6000/rs6000.c:940 config/rs6000/rs6000.c:951 + #, c-format + msgid "invalid option `%s'" + msgstr "opción `%s' inválida" + +-#: toplev.c:3889 ++#: toplev.c:3890 + #, c-format + msgid "" + "%s%s%s version %s (%s)\n" +@@ -6901,93 +6911,93 @@ + "%s\t compilado por GNU C versión %s.\n" + "%s%s%s versión %s (%s) compilado por CC.\n" + +-#: toplev.c:3896 ++#: toplev.c:3897 + #, c-format + msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n" + msgstr "%s%sGGC heurísticas: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n" + +-#: toplev.c:3948 ++#: toplev.c:3949 + msgid "options passed: " + msgstr "opciones pasadas: " + +-#: toplev.c:3977 ++#: toplev.c:3978 + msgid "options enabled: " + msgstr "opciones activadas: " + +-#: toplev.c:4035 java/jcf-write.c:3424 ++#: toplev.c:4036 java/jcf-write.c:3424 + #, c-format + msgid "can't open %s for writing: %m" + msgstr "no se puede abrir %s para escritura: %m" + +-#: toplev.c:4118 config/sh/sh.c:7019 ++#: toplev.c:4119 config/sh/sh.c:7020 + msgid "created and used with different settings of -fpic" + msgstr "creado y usado con diferentes opciones de -fpic" + +-#: toplev.c:4120 config/sh/sh.c:7021 ++#: toplev.c:4121 config/sh/sh.c:7022 + msgid "created and used with different settings of -fpie" + msgstr "creado y usado con diferentes opciones de -fpie" + +-#: toplev.c:4171 config/sh/sh.c:7071 ++#: toplev.c:4172 config/sh/sh.c:7072 + #, c-format + msgid "created and used with differing settings of `-m%s'" + msgstr "creado y usado con diferentes opciones de `-m%s'" + +-#: toplev.c:4174 config/sh/sh.c:7074 ++#: toplev.c:4175 config/sh/sh.c:7075 + msgid "out of memory" + msgstr "memoria agotada" + +-#: toplev.c:4355 ++#: toplev.c:4356 + msgid "instruction scheduling not supported on this target machine" + msgstr "no se da soporte a la calendarización de instrucciones en este objetivo" + +-#: toplev.c:4359 ++#: toplev.c:4360 + msgid "this target machine does not have delayed branches" + msgstr "esta máquina objetivo no tiene ramificaciones retardadas" + +-#: toplev.c:4373 ++#: toplev.c:4374 + #, c-format + msgid "-f%sleading-underscore not supported on this target machine" + msgstr "no se da soporte a -f%sleading-underscore en este objetivo" + +-#: toplev.c:4422 ++#: toplev.c:4423 + #, c-format + msgid "target system does not support the \"%s\" debug format" + msgstr "el sistema objetivo no tiene soporte para el formato de depuración \"%s\"" + +-#: toplev.c:4439 ++#: toplev.c:4440 + msgid "-ffunction-sections not supported for this target" + msgstr "no se da soporte a -ffunction-sections para este objetivo" + +-#: toplev.c:4444 ++#: toplev.c:4445 + msgid "-fdata-sections not supported for this target" + msgstr "no se da soporte a -fdata-sections para este objetivo" + +-#: toplev.c:4451 ++#: toplev.c:4452 + msgid "-ffunction-sections disabled; it makes profiling impossible" + msgstr "-ffunction-sections desactivado; hace imposible el análisis de perfil" + +-#: toplev.c:4458 ++#: toplev.c:4459 + msgid "-fprefetch-loop-arrays not supported for this target" + msgstr "no se da soporte a -fprefetch-loop-arrays para este objetivo" + +-#: toplev.c:4464 ++#: toplev.c:4465 + msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)" + msgstr "no se da soporte a -fprefetch-loop-arrays para este objetivo (intente los interruptores -march)" + +-#: toplev.c:4473 ++#: toplev.c:4474 + msgid "-fprefetch-loop-arrays is not supported with -Os" + msgstr "-fprefetch-loop-arrays no tiene soporte con -Os" + +-#: toplev.c:4479 ++#: toplev.c:4480 + msgid "-ffunction-sections may affect debugging on some targets" + msgstr "-ffunction-sections podría afectar la depuración en algunos objetivos" + +-#: toplev.c:4581 ++#: toplev.c:4582 + #, c-format + msgid "error writing to %s: %m" + msgstr "error al escribir a %s: %m" + +-#: toplev.c:4583 java/jcf-parse.c:902 java/jcf-write.c:3431 ++#: toplev.c:4584 java/jcf-parse.c:902 java/jcf-write.c:3431 + #, c-format + msgid "error closing %s: %m" + msgstr "error al cerrar %s: %m" +@@ -7035,7 +7045,7 @@ + msgstr "%Jla función '%F' nunca puede ser inlined porque usa variables de tamaño variable" + + # ¿Cómo traducir inlining de forma correcta? cfuga +-#: tree-inline.c:1338 tree-inline.c:1345 ++#: tree-inline.c:1338 tree-inline.c:1346 + msgid "%Jinlining failed in call to '%F': %s" + msgstr "%Jel `inlining' falló en la llamada a '%F': %s" + +@@ -7047,34 +7057,34 @@ + msgid "%Jsize of return value of '%D' is larger than %wd bytes" + msgstr "%Jel tamaño del valor de devolución de '%D' es más grande que %wd bytes" + +-#: tree.c:3801 ++#: tree.c:3800 + msgid "arrays of functions are not meaningful" + msgstr "las matrices de funciones no tienen significado" + +-#: tree.c:3856 ++#: tree.c:3855 + msgid "function return type cannot be function" + msgstr "el tipo de devolución de función no puede ser función" + +-#: tree.c:4685 ++#: tree.c:4684 + msgid "invalid initializer for bit string" + msgstr "inicializador inválido para la cadena de bits" + +-#: tree.c:4737 ++#: tree.c:4736 + #, c-format + msgid "tree check: expected %s, have %s in %s, at %s:%d" + msgstr "revisión de árbol: se esperaba %s, se tiene %s en %s, en %s:%d" + +-#: tree.c:4750 ++#: tree.c:4749 + #, c-format + msgid "tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d" + msgstr "revisión de árbol: es esperaba la clase '%c', se tiene '%c' (%s) en %s, en %s:%d" + +-#: tree.c:4763 ++#: tree.c:4762 + #, c-format + msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d" + msgstr "revisión de árbol: acceso de elt %d de tree_vec con %d elts en %s, en %s:%d" + +-#: tree.c:4775 ++#: tree.c:4774 + #, c-format + msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d" + msgstr "revisión de árbol: acceso del operando %d de %s con %d operandos en %s, en %s:%d" +@@ -7127,48 +7137,48 @@ + msgid "%Jrequested alignment for '%D' is greater than implemented alignment of %d" + msgstr "%Jla alineación solicitada para '%D' es mayor que la alineación implementada de %d" + +-#: varasm.c:3789 ++#: varasm.c:3790 + msgid "initializer for integer value is too complicated" + msgstr "el inicializador para un valor entero es demasiado complicado" + +-#: varasm.c:3794 ++#: varasm.c:3795 + msgid "initializer for floating value is not a floating constant" + msgstr "el inicializador para un valor de coma flotante no es una constante de coma flotante" + +-#: varasm.c:3860 ++#: varasm.c:3861 + msgid "unknown set constructor type" + msgstr "conjunto de tipo constructor desconocido" + +-#: varasm.c:4079 ++#: varasm.c:4080 + #, c-format + msgid "invalid initial value for member `%s'" + msgstr "valor inicial inválido para el miembro `%s'" + +-#: varasm.c:4266 varasm.c:4310 ++#: varasm.c:4267 varasm.c:4311 + msgid "%Jweak declaration of '%D' must precede definition" + msgstr "%Jla declaración débil de '%D' debe preceder a la definición" + +-#: varasm.c:4274 ++#: varasm.c:4275 + msgid "%Jweak declaration of '%D' after first use results in unspecified behavior" + msgstr "%Jla declaración débil de '%D' después del primer uso resulta en una conducta no especificada" + +-#: varasm.c:4308 ++#: varasm.c:4309 + msgid "%Jweak declaration of '%D' must be public" + msgstr "%Jla declaración débil de '%D' debe ser public" + +-#: varasm.c:4317 ++#: varasm.c:4318 + msgid "%Jweak declaration of '%D' not supported" + msgstr "%Jla declaración débil de '%D' no tiene soporte" + +-#: varasm.c:4346 varasm.c:4436 ++#: varasm.c:4347 varasm.c:4437 + msgid "only weak aliases are supported in this configuration" + msgstr "sólo los aliases débiles tienen soporte en esta configuración" + +-#: varasm.c:4439 ++#: varasm.c:4440 + msgid "alias definitions not supported in this configuration; ignored" + msgstr "las definiciones de alias no tienen soporte en esta configuración; ignoradas" + +-#: varasm.c:4468 ++#: varasm.c:4469 + msgid "visibility attribute not supported in this configuration; ignored" + msgstr "los atributos de visibilidad no tienen soporte en esta configuración; ignorados" + +@@ -7391,7 +7401,7 @@ + msgid "junk at end of '#pragma unused'" + msgstr "basura al final de '#pragma unused'" + +-#: config/darwin.c:1347 ++#: config/darwin.c:1312 + msgid "internal and protected visibility attributes not supportedin this configuration; ignored" + msgstr "los atributos de visibilidad internal y protected no tienen soporte en esta configuración; ignorados" + +@@ -7435,7 +7445,7 @@ + msgid "bad value `%s' for -mfp-trap-mode switch" + msgstr "valor erróneo `%s' para el interruptor -mfp-trap-mode" + +-#: config/alpha/alpha.c:324 config/rs6000/rs6000.c:1088 ++#: config/alpha/alpha.c:324 config/rs6000/rs6000.c:1117 + #, c-format + msgid "bad value `%s' for -mtls-size switch" + msgstr "valor erróneo `%s' para el interruptor -mtls-size" +@@ -7475,90 +7485,90 @@ + msgid "bad value `%s' for -mmemory-latency" + msgstr "valor erróneo `%s' para -mmemory-latency" + +-#: config/alpha/alpha.c:5425 ++#: config/alpha/alpha.c:5436 + #, c-format + msgid "invalid %%H value" + msgstr "valor %%H inválido" + +-#: config/alpha/alpha.c:5446 ++#: config/alpha/alpha.c:5457 + #, c-format + msgid "invalid %%J value" + msgstr "valor %%J inválido" + +-#: config/alpha/alpha.c:5462 config/ia64/ia64.c:4263 ++#: config/alpha/alpha.c:5473 config/ia64/ia64.c:4269 + #, c-format + msgid "invalid %%r value" + msgstr "valor %%r inválido" + +-#: config/alpha/alpha.c:5472 config/rs6000/rs6000.c:9241 ++#: config/alpha/alpha.c:5483 config/rs6000/rs6000.c:9332 + #: config/xtensa/xtensa.c:2014 + #, c-format + msgid "invalid %%R value" + msgstr "valor %%R inválido" + +-#: config/alpha/alpha.c:5478 config/rs6000/rs6000.c:9160 ++#: config/alpha/alpha.c:5489 config/rs6000/rs6000.c:9251 + #: config/xtensa/xtensa.c:1981 + #, c-format + msgid "invalid %%N value" + msgstr "valor %%N inválido" + +-#: config/alpha/alpha.c:5486 config/rs6000/rs6000.c:9188 ++#: config/alpha/alpha.c:5497 config/rs6000/rs6000.c:9279 + #, c-format + msgid "invalid %%P value" + msgstr "valor %%P inválido" + +-#: config/alpha/alpha.c:5494 ++#: config/alpha/alpha.c:5505 + #, c-format + msgid "invalid %%h value" + msgstr "valor %%h inválido" + +-#: config/alpha/alpha.c:5502 config/xtensa/xtensa.c:2007 ++#: config/alpha/alpha.c:5513 config/xtensa/xtensa.c:2007 + #, c-format + msgid "invalid %%L value" + msgstr "valor %%L inválido" + +-#: config/alpha/alpha.c:5541 config/rs6000/rs6000.c:9142 ++#: config/alpha/alpha.c:5552 config/rs6000/rs6000.c:9233 + #, c-format + msgid "invalid %%m value" + msgstr "valor %%m inválido" + +-#: config/alpha/alpha.c:5549 config/rs6000/rs6000.c:9150 ++#: config/alpha/alpha.c:5560 config/rs6000/rs6000.c:9241 + #, c-format + msgid "invalid %%M value" + msgstr "valor %%M inválido" + +-#: config/alpha/alpha.c:5593 ++#: config/alpha/alpha.c:5604 + #, c-format + msgid "invalid %%U value" + msgstr "valor %%U inválido" + +-#: config/alpha/alpha.c:5605 config/alpha/alpha.c:5619 +-#: config/rs6000/rs6000.c:9249 ++#: config/alpha/alpha.c:5616 config/alpha/alpha.c:5630 ++#: config/rs6000/rs6000.c:9340 + #, c-format + msgid "invalid %%s value" + msgstr "valor %%s inválido" + +-#: config/alpha/alpha.c:5642 ++#: config/alpha/alpha.c:5653 + #, c-format + msgid "invalid %%C value" + msgstr "valor %%C inválido" + +-#: config/alpha/alpha.c:5679 config/rs6000/rs6000.c:8979 +-#: config/rs6000/rs6000.c:8999 ++#: config/alpha/alpha.c:5690 config/rs6000/rs6000.c:9070 ++#: config/rs6000/rs6000.c:9090 + #, c-format + msgid "invalid %%E value" + msgstr "valor %%E inválido" + +-#: config/alpha/alpha.c:5704 config/alpha/alpha.c:5752 ++#: config/alpha/alpha.c:5715 config/alpha/alpha.c:5763 + msgid "unknown relocation unspec" + msgstr "reubicación unspec desconocida" + +-#: config/alpha/alpha.c:5713 config/rs6000/rs6000.c:9562 ++#: config/alpha/alpha.c:5724 config/rs6000/rs6000.c:9653 + #, c-format + msgid "invalid %%xn code" + msgstr "código %%xn inválido" + +-#: config/alpha/alpha.c:6657 config/alpha/alpha.c:6660 config/s390/s390.c:6575 ++#: config/alpha/alpha.c:6668 config/alpha/alpha.c:6671 config/s390/s390.c:6575 + #: config/s390/s390.c:6578 + msgid "bad builtin fcode" + msgstr "fcode interno erróneo" +@@ -7694,7 +7704,7 @@ + msgid "Tune expected memory latency" + msgstr "Ajustar la latencia esperada de memoria" + +-#: config/alpha/alpha.h:376 config/ia64/ia64.h:267 config/rs6000/sysv4.h:90 ++#: config/alpha/alpha.h:376 config/ia64/ia64.h:272 config/rs6000/sysv4.h:90 + msgid "Specify bit size of immediate TLS offsets" + msgstr "Especificar el tamaño de bit para los desplazamientos TLS inmediatos" + +@@ -7713,17 +7723,17 @@ + msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\"" + msgstr "el argumento del atributo `%s' no es \"ilink1\" o \"ilink2\"" + +-#: config/arc/arc.c:1714 config/m32r/m32r.c:2352 ++#: config/arc/arc.c:1714 config/m32r/m32r.c:2349 + #, c-format + msgid "invalid operand to %%R code" + msgstr "operando inválido para el código %%R" + +-#: config/arc/arc.c:1746 config/m32r/m32r.c:2375 ++#: config/arc/arc.c:1746 config/m32r/m32r.c:2372 + #, c-format + msgid "invalid operand to %%H/%%L code" + msgstr "operando inválido para el código %%H%%L" + +-#: config/arc/arc.c:1769 config/m32r/m32r.c:2446 ++#: config/arc/arc.c:1769 config/m32r/m32r.c:2443 + #, c-format + msgid "invalid operand to %%U code" + msgstr "operando inválido para el código %%U" +@@ -7734,7 +7744,7 @@ + msgstr "operando inválido para el código %%V" + + #. Unknown flag. +-#: config/arc/arc.c:1787 config/m32r/m32r.c:2473 config/sparc/sparc.c:7010 ++#: config/arc/arc.c:1787 config/m32r/m32r.c:2470 config/sparc/sparc.c:7152 + msgid "invalid operand output code" + msgstr "operando inválido para el código de salida" + +@@ -7743,7 +7753,7 @@ + msgid "switch -mcpu=%s conflicts with -march= switch" + msgstr "el interruptor -mcpu=%s genera conflictos con el switch -march=" + +-#: config/arm/arm.c:530 config/rs6000/rs6000.c:767 config/sparc/sparc.c:424 ++#: config/arm/arm.c:530 config/rs6000/rs6000.c:785 config/sparc/sparc.c:426 + #, c-format + msgid "bad value (%s) for %s switch" + msgstr "valor erróneo (%s) para el interruptor %s" +@@ -7827,13 +7837,13 @@ + msgid "unable to use '%s' for PIC register" + msgstr "no se puede usar '%s' para registro PIC" + +-#: config/arm/arm.c:2249 config/arm/arm.c:2267 config/avr/avr.c:4558 +-#: config/c4x/c4x.c:4447 config/h8300/h8300.c:4260 config/i386/i386.c:1592 +-#: config/i386/i386.c:1638 config/ip2k/ip2k.c:3169 ++#: config/arm/arm.c:2249 config/arm/arm.c:2267 config/avr/avr.c:4523 ++#: config/c4x/c4x.c:4447 config/h8300/h8300.c:4260 config/i386/i386.c:1598 ++#: config/i386/i386.c:1644 config/ip2k/ip2k.c:3169 + #: config/m68hc11/m68hc11.c:1311 config/m68k/m68k.c:345 + #: config/mcore/mcore.c:3375 config/ns32k/ns32k.c:1064 +-#: config/rs6000/rs6000.c:14866 config/sh/sh.c:6873 config/sh/sh.c:6894 +-#: config/sh/sh.c:6929 config/stormy16/stormy16.c:2073 config/v850/v850.c:2173 ++#: config/rs6000/rs6000.c:15070 config/sh/sh.c:6874 config/sh/sh.c:6895 ++#: config/sh/sh.c:6930 config/stormy16/stormy16.c:2073 config/v850/v850.c:2173 + #, c-format + msgid "`%s' attribute only applies to functions" + msgstr "el atributo `%s' se aplica solamente a funciones" +@@ -7848,7 +7858,7 @@ + msgstr "el selector debe ser un inmediato" + + #. @@@ better error message +-#: config/arm/arm.c:11284 config/i386/i386.c:14317 config/i386/i386.c:14351 ++#: config/arm/arm.c:11284 config/i386/i386.c:14318 config/i386/i386.c:14352 + msgid "mask must be an immediate" + msgstr "la máscara debe ser un inmediato" + +@@ -7984,55 +7994,55 @@ + msgid "Ignore dllimport attribute for functions" + msgstr "Ignorar el atributo dllimport para las funciones" + +-#: config/avr/avr.c:514 ++#: config/avr/avr.c:511 + #, c-format + msgid "large frame pointer change (%d) with -mtiny-stack" + msgstr "cambio de puntero de marco grande (%d) con -mtiny-stack" + +-#: config/avr/avr.c:1101 ++#: config/avr/avr.c:1098 + msgid "bad address, not (reg+disp):" + msgstr "dirección errónea, no (reg+disp)" + +-#: config/avr/avr.c:1109 ++#: config/avr/avr.c:1106 + msgid "internal compiler error. Bad address:" + msgstr "error interno del compilador. Dirección errónea:" + +-#: config/avr/avr.c:1122 ++#: config/avr/avr.c:1119 + msgid "internal compiler error. Unknown mode:" + msgstr "error interno del compilador. Modo desconocido:" + +-#: config/avr/avr.c:1744 config/avr/avr.c:2405 ++#: config/avr/avr.c:1741 config/avr/avr.c:2402 + msgid "invalid insn:" + msgstr "insn inválido:" + +-#: config/avr/avr.c:1778 config/avr/avr.c:1861 config/avr/avr.c:1910 +-#: config/avr/avr.c:1919 config/avr/avr.c:2014 config/avr/avr.c:2183 +-#: config/avr/avr.c:2439 config/avr/avr.c:2547 ++#: config/avr/avr.c:1775 config/avr/avr.c:1858 config/avr/avr.c:1907 ++#: config/avr/avr.c:1916 config/avr/avr.c:2011 config/avr/avr.c:2180 ++#: config/avr/avr.c:2436 config/avr/avr.c:2544 + msgid "incorrect insn:" + msgstr "insn incorrecto:" + +-#: config/avr/avr.c:1938 config/avr/avr.c:2099 config/avr/avr.c:2254 +-#: config/avr/avr.c:2591 ++#: config/avr/avr.c:1935 config/avr/avr.c:2096 config/avr/avr.c:2251 ++#: config/avr/avr.c:2588 + msgid "unknown move insn:" + msgstr "movimiento insn desconocido:" + +-#: config/avr/avr.c:2814 ++#: config/avr/avr.c:2811 + msgid "bad shift insn:" + msgstr "desplazamiento insn erróneo:" + +-#: config/avr/avr.c:2927 config/avr/avr.c:3348 config/avr/avr.c:3719 ++#: config/avr/avr.c:2924 config/avr/avr.c:3345 config/avr/avr.c:3716 + msgid "internal compiler error. Incorrect shift:" + msgstr "error interno del compilador. Desplazamiento incorrecto:" + +-#: config/avr/avr.c:4532 config/ip2k/ip2k.c:3144 ++#: config/avr/avr.c:4497 config/ip2k/ip2k.c:3144 + msgid "only initialized variables can be placed into program memory area" + msgstr "sólo las variables inicializadas se pueden ubicar en el área de memoria del programa" + +-#: config/avr/avr.c:4626 ++#: config/avr/avr.c:4591 + msgid "only uninitialized variables can be placed in the .noinit section" + msgstr "Sólo las variables sin inicializar se pueden colocar en la sección .noinit" + +-#: config/avr/avr.c:4640 ++#: config/avr/avr.c:4605 + #, c-format + msgid "MCU `%s' supported for assembler only" + msgstr "MCU `%s' sólo tiene soporte para ensamblador" +@@ -9213,7 +9223,7 @@ + msgid "code model %s not supported in PIC mode" + msgstr "el modelo de código %s no tiene soporte en el modo PIC" + +-#: config/i386/i386.c:1189 config/sparc/sparc.c:387 ++#: config/i386/i386.c:1189 config/sparc/sparc.c:389 + #, c-format + msgid "bad value (%s) for -mcmodel= switch" + msgstr "valor erróneo (%s) para el interruptor -mcmodel=" +@@ -9246,138 +9256,138 @@ + msgid "bad value (%s) for -march= switch" + msgstr "valor erróneo (%s) para el interruptor -march=" + +-#: config/i386/i386.c:1260 ++#: config/i386/i386.c:1266 + #, c-format + msgid "bad value (%s) for -mtune= switch" + msgstr "valor erróneo (%s) para el interruptor -mtune=" + +-#: config/i386/i386.c:1277 ++#: config/i386/i386.c:1283 + #, c-format + msgid "-mregparm=%d is not between 0 and %d" + msgstr "-mregparm=%d no está entre 0 y %d" + +-#: config/i386/i386.c:1290 ++#: config/i386/i386.c:1296 + msgid "-malign-loops is obsolete, use -falign-loops" + msgstr "-malign-loops es obsoleto, use -falign-loops" + +-#: config/i386/i386.c:1295 config/i386/i386.c:1308 config/i386/i386.c:1321 ++#: config/i386/i386.c:1301 config/i386/i386.c:1314 config/i386/i386.c:1327 + #, c-format + msgid "-malign-loops=%d is not between 0 and %d" + msgstr "-malign-loops=%d no está entre 0 y %d" + +-#: config/i386/i386.c:1303 ++#: config/i386/i386.c:1309 + msgid "-malign-jumps is obsolete, use -falign-jumps" + msgstr "-malign-jumps es obsoleto, use -falign-jumps" + +-#: config/i386/i386.c:1316 ++#: config/i386/i386.c:1322 + msgid "-malign-functions is obsolete, use -falign-functions" + msgstr "-malign-functions es obsoleto, use -falign-functions" + +-#: config/i386/i386.c:1354 ++#: config/i386/i386.c:1360 + #, c-format + msgid "-mpreferred-stack-boundary=%d is not between %d and 12" + msgstr "-mpreferred-stack-boundary=%d no está entre %d y 12" + +-#: config/i386/i386.c:1366 ++#: config/i386/i386.c:1372 + #, c-format + msgid "-mbranch-cost=%d is not between 0 and 5" + msgstr "-mbranch-cost=%d no está entre 0 y 5" + +-#: config/i386/i386.c:1378 ++#: config/i386/i386.c:1384 + #, c-format + msgid "bad value (%s) for -mtls-dialect= switch" + msgstr "valor erróneo (%s) para el interruptor -mtls-dialect=" + +-#: config/i386/i386.c:1407 ++#: config/i386/i386.c:1413 + msgid "-malign-double makes no sense in the 64bit mode" + msgstr "-malign-double no tiene sentido en el modo 64bit" + +-#: config/i386/i386.c:1409 ++#: config/i386/i386.c:1415 + msgid "-mrtd calling convention not supported in the 64bit mode" + msgstr "la convención de llamadas -mrtd no tiene soporte en el modo de 64 bit" + +-#: config/i386/i386.c:1431 config/i386/i386.c:1442 ++#: config/i386/i386.c:1437 config/i386/i386.c:1448 + msgid "SSE instruction set disabled, using 387 arithmetics" + msgstr "el conjunto de instrucciones SSE está desactivado, usando la aritmética 387" + +-#: config/i386/i386.c:1447 ++#: config/i386/i386.c:1453 + msgid "387 instruction set disabled, using SSE arithmetics" + msgstr "el conjunto de instrucciones 387 está desactivado, usando la aritmética SSE" + +-#: config/i386/i386.c:1454 ++#: config/i386/i386.c:1460 + #, c-format + msgid "bad value (%s) for -mfpmath= switch" + msgstr "valor erróneo (%s) para el interruptor -mfpmath=" + +-#: config/i386/i386.c:1602 config/i386/i386.c:1613 ++#: config/i386/i386.c:1608 config/i386/i386.c:1619 + msgid "fastcall and stdcall attributes are not compatible" + msgstr "los atributos fastcall y stdcall no son compatibles" + +-#: config/i386/i386.c:1606 config/i386/i386.c:1662 ++#: config/i386/i386.c:1612 config/i386/i386.c:1668 + msgid "fastcall and regparm attributes are not compatible" + msgstr "los atributos fastcall y regparm no son compatibles" + +-#: config/i386/i386.c:1649 ++#: config/i386/i386.c:1655 + #, c-format + msgid "`%s' attribute requires an integer constant argument" + msgstr "el atributo `%s' requiere una constante entera como argumento" + +-#: config/i386/i386.c:1655 ++#: config/i386/i386.c:1661 + #, c-format + msgid "argument to `%s' attribute larger than %d" + msgstr "el argumento para el atributo `%s' es más grande que %d" + +-#: config/i386/i386.c:2621 ++#: config/i386/i386.c:2627 + msgid "SSE vector argument without SSE enabled changes the ABI" + msgstr "el argumento de vector SSE sin SSE activado cambia la ABI" + +-#: config/i386/i386.c:2637 ++#: config/i386/i386.c:2643 + msgid "MMX vector argument without MMX enabled changes the ABI" + msgstr "el argumento de vector MMX sin MMX activado cambia la ABI" + +-#: config/i386/i386.c:2865 ++#: config/i386/i386.c:2871 + msgid "SSE vector return without SSE enabled changes the ABI" + msgstr "el vector de devolución SSE sin SSE activado cambia la ABI" + +-#: config/i386/i386.c:6840 ++#: config/i386/i386.c:6841 + msgid "invalid UNSPEC as operand" + msgstr "UNSPEC inválido como operando" + +-#: config/i386/i386.c:7098 ++#: config/i386/i386.c:7099 + msgid "extended registers have no high halves" + msgstr "los registros extendidos no tiene mitades superiores" + +-#: config/i386/i386.c:7113 ++#: config/i386/i386.c:7114 + msgid "unsupported operand size for extended register" + msgstr "tamaño de operando sin soporte para el registro extendido" + +-#: config/i386/i386.c:7428 ++#: config/i386/i386.c:7429 + msgid "operand is neither a constant nor a condition code, invalid operand code 'c'" + msgstr "el operando no es una constante ni un código de condición, código de operando 'c' inválido" + +-#: config/i386/i386.c:7474 ++#: config/i386/i386.c:7475 + #, c-format + msgid "invalid operand code `%c'" + msgstr "código de operando `%c' inválido" + +-#: config/i386/i386.c:7517 ++#: config/i386/i386.c:7518 + msgid "invalid constraints for operand" + msgstr "restricciones inválidas para el operando" + +-#: config/i386/i386.c:12031 ++#: config/i386/i386.c:12032 + msgid "unknown insn mode" + msgstr "modo insn desconocido" + +-#: config/i386/i386.c:14119 config/i386/i386.c:14155 ++#: config/i386/i386.c:14120 config/i386/i386.c:14156 + #, c-format + msgid "selector must be an integer constant in the range 0..%i" + msgstr "el selector debe ser una constante entera en el rango 0..%i" + +-#: config/i386/i386.c:14383 ++#: config/i386/i386.c:14384 + msgid "shift must be an immediate" + msgstr "el desplazamiento debe ser un inmediato" + +-#: config/i386/i386.c:15406 ++#: config/i386/i386.c:15407 + #, c-format + msgid "`%s' incompatible attribute ignored" + msgstr "se ignora el atributo incompatible `%s'" +@@ -9666,7 +9676,7 @@ + #. variable, type `char *', is set to the variable part of the given + #. option if the fixed part matches. The actual option name is made + #. by appending `-m' to the specified name. +-#: config/i386/i386.h:461 config/ia64/ia64.h:269 config/rs6000/rs6000.h:449 ++#: config/i386/i386.h:461 config/ia64/ia64.h:274 config/rs6000/rs6000.h:449 + #: config/s390/s390.h:146 config/sparc/sparc.h:656 + msgid "Schedule code for given CPU" + msgstr "Código de calendarizador para el CPU dado" +@@ -9784,7 +9794,7 @@ + msgid "iC2.0 and iC3.0 are incompatible - using iC3.0" + msgstr "iC2.0 e iC3.0 son incompatibles - usando iC3.0" + +-#: config/i960/i960.c:1456 config/m68k/m68k.c:600 config/rs6000/rs6000.c:11597 ++#: config/i960/i960.c:1456 config/m68k/m68k.c:600 config/rs6000/rs6000.c:11690 + msgid "stack limit expression is not supported" + msgstr "no se da soporte a la expresión del límite de la pila" + +@@ -9942,41 +9952,41 @@ + msgid "%Jaddress area attribute cannot be specified for functions" + msgstr "%Jno se puede especificar un atributo de área de direcciones para funciones" + +-#: config/ia64/ia64.c:4308 ++#: config/ia64/ia64.c:4314 + msgid "ia64_print_operand: unknown code" + msgstr "ia64_print_operand: código desconocido" + +-#: config/ia64/ia64.c:4648 ++#: config/ia64/ia64.c:4654 + msgid "value of -mfixed-range must have form REG1-REG2" + msgstr "el valor de -mfixed-range debe ser de la forma REG1-REG2" + +-#: config/ia64/ia64.c:4675 ++#: config/ia64/ia64.c:4681 + #, c-format + msgid "%s-%s is an empty range" + msgstr "%s-%s es un rango vacío" + +-#: config/ia64/ia64.c:4723 ++#: config/ia64/ia64.c:4729 + msgid "cannot optimize floating point division for both latency and throughput" + msgstr "no se puede optimizar la división de coma flotante para latencia y salida al mismo tiempo" + +-#: config/ia64/ia64.c:4729 ++#: config/ia64/ia64.c:4735 + msgid "cannot optimize integer division for both latency and throughput" + msgstr "no se puede optimizar la división entera para latencia y salida al mismo tiempo" + +-#: config/ia64/ia64.c:4735 ++#: config/ia64/ia64.c:4741 + msgid "cannot optimize square root for both latency and throughput" + msgstr "no se puede optimizar la raíz cuadrada para latencia y salida al mismo tiempo" + +-#: config/ia64/ia64.c:4741 ++#: config/ia64/ia64.c:4747 + msgid "not yet implemented: latency-optimized inline square root" + msgstr "no se ha implementado aún: raíz cuadrada inline optimizada para latencia" + +-#: config/ia64/ia64.c:4753 ++#: config/ia64/ia64.c:4759 + #, c-format + msgid "bad value (%s) for -mtls-size= switch" + msgstr "valor erróneo (%s) para el interruptor -mtls-size=" + +-#: config/ia64/ia64.c:4769 ++#: config/ia64/ia64.c:4775 + #, c-format + msgid "bad value (%s) for -tune= switch" + msgstr "valor erróneo (%s) para el interruptor -tune=" +@@ -9984,107 +9994,107 @@ + #. This macro defines names of command options to set and clear bits in + #. `target_flags'. Its definition is an initializer with a subgrouping for + #. each command option. +-#: config/ia64/ia64.h:172 ++#: config/ia64/ia64.h:177 + msgid "Generate big endian code" + msgstr "Generar código big endian" + +-#: config/ia64/ia64.h:174 config/mcore/mcore.h:154 ++#: config/ia64/ia64.h:179 config/mcore/mcore.h:154 + msgid "Generate little endian code" + msgstr "Generar código little endian" + +-#: config/ia64/ia64.h:176 ++#: config/ia64/ia64.h:181 + msgid "Generate code for GNU as" + msgstr "Generar código para as de GNU" + +-#: config/ia64/ia64.h:178 ++#: config/ia64/ia64.h:183 + msgid "Generate code for Intel as" + msgstr "Generar código as de Intel" + +-#: config/ia64/ia64.h:180 ++#: config/ia64/ia64.h:185 + msgid "Generate code for GNU ld" + msgstr "Generar código para ld de GNU" + +-#: config/ia64/ia64.h:182 ++#: config/ia64/ia64.h:187 + msgid "Generate code for Intel ld" + msgstr "Generar código para ld de Intel" + +-#: config/ia64/ia64.h:184 ++#: config/ia64/ia64.h:189 + msgid "Generate code without GP reg" + msgstr "Generar código sin registro GP" + +-#: config/ia64/ia64.h:186 ++#: config/ia64/ia64.h:191 + msgid "Emit stop bits before and after volatile extended asms" + msgstr "Emitir bits de parada antes y después de asms extendidos con volatile" + +-#: config/ia64/ia64.h:188 ++#: config/ia64/ia64.h:193 + msgid "Don't emit stop bits before and after volatile extended asms" + msgstr "No emitir bits de parada antes y después de asms extendidos con volatile" + +-#: config/ia64/ia64.h:190 ++#: config/ia64/ia64.h:195 + msgid "Emit code for Itanium (TM) processor B step" + msgstr "Emitir código para el procesador Itanium (TM) paso B" + +-#: config/ia64/ia64.h:192 ++#: config/ia64/ia64.h:197 + msgid "Use in/loc/out register names" + msgstr "Usar nombres de registro in/loc/out" + +-#: config/ia64/ia64.h:194 ++#: config/ia64/ia64.h:199 + msgid "Disable use of sdata/scommon/sbss" + msgstr "Desactivar el uso de sdata/scommon/sbss" + +-#: config/ia64/ia64.h:196 ++#: config/ia64/ia64.h:201 + msgid "Enable use of sdata/scommon/sbss" + msgstr "Activar el uso de sdata/scommon/sbss" + +-#: config/ia64/ia64.h:198 ++#: config/ia64/ia64.h:203 + msgid "gp is constant (but save/restore gp on indirect calls)" + msgstr "gp es constante (pero hay save/restore de gp en llamadas indirectas)" + +-#: config/ia64/ia64.h:200 ++#: config/ia64/ia64.h:205 + msgid "Generate self-relocatable code" + msgstr "Generar código auto-reubicable" + +-#: config/ia64/ia64.h:202 ++#: config/ia64/ia64.h:207 + msgid "Generate inline floating point division, optimize for latency" + msgstr "Generar división de coma flotante inline, optimizada para latencia" + +-#: config/ia64/ia64.h:204 ++#: config/ia64/ia64.h:209 + msgid "Generate inline floating point division, optimize for throughput" + msgstr "Generar división de coma flotante inline, optimizada para salida" + +-#: config/ia64/ia64.h:206 ++#: config/ia64/ia64.h:211 + msgid "Generate inline integer division, optimize for latency" + msgstr "Generar división entera inline, optimizada para latencia" + +-#: config/ia64/ia64.h:208 ++#: config/ia64/ia64.h:213 + msgid "Generate inline integer division, optimize for throughput" + msgstr "Generar división entera inline, optimizada para salida" + +-#: config/ia64/ia64.h:210 ++#: config/ia64/ia64.h:215 + msgid "Generate inline square root, optimize for latency" + msgstr "Generar raíz cuadrada inline, optimizada para latencia" + +-#: config/ia64/ia64.h:212 ++#: config/ia64/ia64.h:217 + msgid "Generate inline square root, optimize for throughput" + msgstr "Generar raíz cuadrada inline, optimizada para salida" + +-#: config/ia64/ia64.h:214 ++#: config/ia64/ia64.h:219 + msgid "Enable Dwarf 2 line debug info via GNU as" + msgstr "Activar la información de la línea de depuración Dwarf 2 a través de as de GNU" + +-#: config/ia64/ia64.h:216 ++#: config/ia64/ia64.h:221 + msgid "Disable Dwarf 2 line debug info via GNU as" + msgstr "Desactivar la información de la línea de depuración Dwarf 2 a través de as de GNU" + +-#: config/ia64/ia64.h:218 ++#: config/ia64/ia64.h:223 + msgid "Enable earlier placing stop bits for better scheduling" + msgstr "Activar la ubicación temprana de bits de paro para mejor calendarización" + +-#: config/ia64/ia64.h:220 ++#: config/ia64/ia64.h:225 + msgid "Disable earlier placing stop bits" + msgstr "Desactivar la ubicación temprana de bits de paro" + +-#: config/ia64/ia64.h:265 ++#: config/ia64/ia64.h:270 + msgid "Specify range of registers to make fixed" + msgstr "Especifica el rango de registros a convertir en fijos" + +@@ -10121,7 +10131,7 @@ + msgid "PRINT_OPERAND: Unknown punctuation '%c'" + msgstr "PRINT_OPERAND: Puntuación desconocida '%c'" + +-#: config/iq2000/iq2000.c:3478 config/mips/mips.c:5464 ++#: config/iq2000/iq2000.c:3478 config/mips/mips.c:5463 + #: config/xtensa/xtensa.c:1950 + msgid "PRINT_OPERAND null pointer" + msgstr "PRINT_OPERAND puntero nulo" +@@ -10131,12 +10141,12 @@ + msgid "invalid %%P operand" + msgstr "operando %%P inválido" + +-#: config/iq2000/iq2000.c:3555 config/rs6000/rs6000.c:9178 ++#: config/iq2000/iq2000.c:3555 config/rs6000/rs6000.c:9269 + #, c-format + msgid "invalid %%p value" + msgstr "valor %%p inválido" + +-#: config/iq2000/iq2000.c:3619 config/mips/mips.c:5594 ++#: config/iq2000/iq2000.c:3619 config/mips/mips.c:5593 + #, c-format + msgid "invalid use of %%d, %%x, or %%X" + msgstr "uso inválido de %%d, %%x, o %%X" +@@ -10192,48 +10202,48 @@ + msgid "bad value (%s) for -flush-trap=n (0= found without a %%< in assembler pattern" + msgstr "error interno: se encontró %%> sin un %%< en el patrón del ensamblador" + +-#: config/mips/mips.c:5441 ++#: config/mips/mips.c:5440 + #, c-format + msgid "internal error: %%} found without a %%{ in assembler pattern" + msgstr "error interno: se encontró %%} sin un %%{ en el patrón del ensamblador" + +-#: config/mips/mips.c:5455 ++#: config/mips/mips.c:5454 + #, c-format + msgid "PRINT_OPERAND: unknown punctuation '%c'" + msgstr "PRINT_OPERAND: puntuación desconocida '%c'" + +-#: config/mips/mips.c:5484 ++#: config/mips/mips.c:5483 + #, c-format + msgid "PRINT_OPERAND, invalid insn for %%C" + msgstr "PRINT_OPERAND, insn inválido para %%C" + +-#: config/mips/mips.c:5501 ++#: config/mips/mips.c:5500 + #, c-format + msgid "PRINT_OPERAND, invalid insn for %%N" + msgstr "PRINT_OPERAND, insn inválido para %%N" + +-#: config/mips/mips.c:5510 ++#: config/mips/mips.c:5509 + #, c-format + msgid "PRINT_OPERAND, invalid insn for %%F" + msgstr "PRINT_OPERAND, insn inválido para %%F" + +-#: config/mips/mips.c:5519 ++#: config/mips/mips.c:5518 + #, c-format + msgid "PRINT_OPERAND, invalid insn for %%W" + msgstr "PRINT_OPERAND, insn inválido para %%W" + +-#: config/mips/mips.c:5625 ++#: config/mips/mips.c:5624 + msgid "PRINT_OPERAND, invalid operand for relocation" + msgstr "PRINT_OPERAND, operando inválido para la reubicación" + +-#: config/mips/mips.c:8310 ++#: config/mips/mips.c:8324 + #, c-format + msgid "can not handle inconsistent calls to `%s'" + msgstr "no se pueden manejar llamadas inconsistentes a `%s'" + +-#: config/mips/mips.c:9316 ++#: config/mips/mips.c:9333 + msgid "the cpu name must be lower case" + msgstr "el nombre de cpu debe estar en minúsculas" + +-#: config/mips/mips.c:9338 ++#: config/mips/mips.c:9355 + #, c-format + msgid "bad value (%s) for %s" + msgstr "valor erróneo (%s) para %s" + +-#: config/mips/mips.c:9607 ++#: config/mips/mips.c:9624 + #, c-format + msgid "can't rewind temp file: %m" + msgstr "no se puede rebobinar el fichero temporal: %m" + +-#: config/mips/mips.c:9611 ++#: config/mips/mips.c:9628 + #, c-format + msgid "can't write to output file: %m" + msgstr "no se puede escribir al fichero de salida: %m" + +-#: config/mips/mips.c:9614 ++#: config/mips/mips.c:9631 + #, c-format + msgid "can't read from temp file: %m" + msgstr "no se puede leer desde el fichero temporal: %m" + +-#: config/mips/mips.c:9617 ++#: config/mips/mips.c:9634 + #, c-format + msgid "can't close temp file: %m" + msgstr "no se puede cerrar el fichero temporal: %m" +@@ -11021,7 +11031,7 @@ + + #. Output assembler code to FILE to increment profiler label # LABELNO + #. for profiling a function entry. +-#: config/mips/mips.h:2418 ++#: config/mips/mips.h:2430 + msgid "mips16 function profiling" + msgstr "análisis de perfil de las funciones mips16" + +@@ -11579,167 +11589,176 @@ + msgstr "basura al final de #pragma longcall" + + # FIXME: ¿Traducción correcta al español de little endian? cfuga +-#: config/rs6000/rs6000.c:791 ++#: config/rs6000/rs6000.c:809 + msgid "-mmultiple is not supported on little endian systems" + msgstr "-mmultiple no tiene soporte en sistemas little endian" + +-#: config/rs6000/rs6000.c:798 ++#: config/rs6000/rs6000.c:816 + msgid "-mstring is not supported on little endian systems" + msgstr "-mstring no tiene soporte en sistemas little endian" + +-#: config/rs6000/rs6000.c:812 ++#: config/rs6000/rs6000.c:830 + #, c-format + msgid "unknown -mdebug-%s switch" + msgstr "interruptor -mdebug-%s desconocido" + +-#: config/rs6000/rs6000.c:824 ++#: config/rs6000/rs6000.c:842 + #, c-format + msgid "unknown -mtraceback arg `%s'; expecting `full', `partial' or `none'" + msgstr "argumento de -mtraceback `%s' desconocido; se esperaba `full', `partial' o `none'" + +-#: config/rs6000/rs6000.c:835 ++#: config/rs6000/rs6000.c:853 + #, c-format + msgid "Unknown switch -mlong-double-%s" + msgstr "Interruptor -mlong-double-%s desconocido" + +-#: config/rs6000/rs6000.c:876 ++#: config/rs6000/rs6000.c:894 + msgid "AltiVec and E500 instructions cannot coexist" + msgstr "Las instrucciones AltiVec y E500 no pueden coexistir" + +-#: config/rs6000/rs6000.c:1029 ++#: config/rs6000/rs6000.c:1058 + #, c-format + msgid "unknown -m%s= option specified: '%s'" + msgstr "opción -m%s= especificada desconocida: '%s'" + +-#: config/rs6000/rs6000.c:1050 ++#: config/rs6000/rs6000.c:1079 + #, c-format + msgid "not configured for ABI: '%s'" + msgstr "no se configuró para ABI: '%s'" + +-#: config/rs6000/rs6000.c:1056 ++#: config/rs6000/rs6000.c:1085 + #, c-format + msgid "unknown ABI specified: '%s'" + msgstr "ABI especificada desconocida: '%s'" + +-#: config/rs6000/rs6000.c:1070 ++#: config/rs6000/rs6000.c:1099 + #, c-format + msgid "unknown -malign-XXXXX option specified: '%s'" + msgstr "opción -malign-XXXXX especificada desconocida: '%s'" + +-#: config/rs6000/rs6000.c:3972 ++#: config/rs6000/rs6000.c:4001 + msgid "Cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them." + msgstr "No se puede devolver un valor en el registro vector porque las instrucciones altivec están desactivadas, use -maltivec para activarlas." + +-#: config/rs6000/rs6000.c:4095 ++#: config/rs6000/rs6000.c:4124 + msgid "Cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them." + msgstr "No se puede pasar argumentos en el registro vector porque las instrucciones altivec están desactivadas, use -maltivec para activarlas." + +-#: config/rs6000/rs6000.c:5599 ++#: config/rs6000/rs6000.c:5604 + msgid "argument 1 must be a 5-bit signed literal" + msgstr "el argumento 1 debe ser una literal con signo de 5-bit" + +-#: config/rs6000/rs6000.c:5701 config/rs6000/rs6000.c:6357 ++#: config/rs6000/rs6000.c:5707 config/rs6000/rs6000.c:6374 + msgid "argument 2 must be a 5-bit unsigned literal" + msgstr "el argumento 2 debe ser una literal sin signo de 5-bit" + +-#: config/rs6000/rs6000.c:5741 ++#: config/rs6000/rs6000.c:5747 + msgid "argument 1 of __builtin_altivec_predicate must be a constant" + msgstr "el argumento 1 de __builtin_altivec_predicate debe ser una constante" + +-#: config/rs6000/rs6000.c:5795 ++#: config/rs6000/rs6000.c:5801 + msgid "argument 1 of __builtin_altivec_predicate is out of range" + msgstr "el argumento 1 de __builtin_altivec_predicate está fuera de rango" + +-#: config/rs6000/rs6000.c:5956 ++#: config/rs6000/rs6000.c:5962 + msgid "argument 3 must be a 4-bit unsigned literal" + msgstr "el argumento 3 debe ser una literal sin signo de 4-bit" + +-#: config/rs6000/rs6000.c:6126 ++#: config/rs6000/rs6000.c:6134 + #, c-format + msgid "argument to `%s' must be a 2-bit unsigned literal" + msgstr "el argumento para `%s' debe ser una literal sin signo de 2-bit" + +-#: config/rs6000/rs6000.c:6239 ++#: config/rs6000/rs6000.c:6247 + msgid "argument to dss must be a 2-bit unsigned literal" + msgstr "el argumento para dss debe ser una literal sin signo de 2-bit" + +-#: config/rs6000/rs6000.c:6477 ++#: config/rs6000/rs6000.c:6261 ++#, c-format ++msgid "invalid parameter combination for `%s' AltiVec intrinsic" ++msgstr "combinación de parámetros inválida para el intrínseco AltiVec `%s'" ++ ++#: config/rs6000/rs6000.c:6494 + msgid "argument 1 of __builtin_spe_predicate must be a constant" + msgstr "el argumento 1 de __builtin_spe_predicate debe ser una constante" + +-#: config/rs6000/rs6000.c:6550 ++#: config/rs6000/rs6000.c:6567 + msgid "argument 1 of __builtin_spe_predicate is out of range" + msgstr "el argumento 1 de __builtin_spe_predicate está fuera de rango" + +-#: config/rs6000/rs6000.c:9008 ++#: config/rs6000/rs6000.c:9099 + #, c-format + msgid "invalid %%f value" + msgstr "valor %%f inválido" + +-#: config/rs6000/rs6000.c:9017 ++#: config/rs6000/rs6000.c:9108 + #, c-format + msgid "invalid %%F value" + msgstr "valor %%F inválido" + +-#: config/rs6000/rs6000.c:9026 ++#: config/rs6000/rs6000.c:9117 + #, c-format + msgid "invalid %%G value" + msgstr "valor %%G inválido" + +-#: config/rs6000/rs6000.c:9061 ++#: config/rs6000/rs6000.c:9152 + #, c-format + msgid "invalid %%j code" + msgstr "código %%j inválido" + +-#: config/rs6000/rs6000.c:9071 ++#: config/rs6000/rs6000.c:9162 + #, c-format + msgid "invalid %%J code" + msgstr "código %%J inválido" + +-#: config/rs6000/rs6000.c:9081 ++#: config/rs6000/rs6000.c:9172 + #, c-format + msgid "invalid %%k value" + msgstr "valor %%k inválido" + +-#: config/rs6000/rs6000.c:9101 config/xtensa/xtensa.c:2000 ++#: config/rs6000/rs6000.c:9192 config/xtensa/xtensa.c:2000 + #, c-format + msgid "invalid %%K value" + msgstr "valor %%K inválido" + +-#: config/rs6000/rs6000.c:9168 ++#: config/rs6000/rs6000.c:9259 + #, c-format + msgid "invalid %%O value" + msgstr "valor %%O inválido" + +-#: config/rs6000/rs6000.c:9215 ++#: config/rs6000/rs6000.c:9306 + #, c-format + msgid "invalid %%q value" + msgstr "valor %%q inválido" + +-#: config/rs6000/rs6000.c:9259 ++#: config/rs6000/rs6000.c:9350 + #, c-format + msgid "invalid %%S value" + msgstr "valor %%S inválido" + +-#: config/rs6000/rs6000.c:9301 ++#: config/rs6000/rs6000.c:9392 + #, c-format + msgid "invalid %%T value" + msgstr "valor %%T inválido" + +-#: config/rs6000/rs6000.c:9311 ++#: config/rs6000/rs6000.c:9402 + #, c-format + msgid "invalid %%u value" + msgstr "valor %%u inválido" + +-#: config/rs6000/rs6000.c:9320 config/xtensa/xtensa.c:1970 ++#: config/rs6000/rs6000.c:9411 config/xtensa/xtensa.c:1970 + #, c-format + msgid "invalid %%v value" + msgstr "valor %%v inválido" + +-#: config/rs6000/rs6000.c:13815 ++#: config/rs6000/rs6000.c:13913 + msgid "no profiling of 64-bit code for this ABI" + msgstr "no hay análisis de perfil del código de 64-bit para esta ABI" + ++#: config/rs6000/rs6000.c:14986 ++msgid "use of 'long' in AltiVec types is deprecated; use 'int'" ++msgstr "el uso de 'long' en tipos AltiVec es obsoleto; use 'int'" ++ + #: config/rs6000/aix.h:184 config/rs6000/beos.h:32 + msgid "Always pass floating-point arguments in memory" + msgstr "Pasar siempre los argumentos de coma flotante en memoria" +@@ -11984,18 +12003,22 @@ + msgstr "Evitar todos los límites de rango en las instrucciones de llamadas" + + #: config/rs6000/rs6000.h:468 ++msgid "Warn about deprecated 'vector long ...' AltiVec type usage" ++msgstr "Avisar sobre el uso del tipo AltiVec obsoleto 'vector long ...'" ++ ++#: config/rs6000/rs6000.h:471 + msgid "Determine which dependences between insns are considered costly" + msgstr "Determinar cuáles dependencias entre insns se consideran costosas" + +-#: config/rs6000/rs6000.h:470 ++#: config/rs6000/rs6000.h:473 + msgid "Specify which post scheduling nop insertion scheme to apply" + msgstr "Especificar cuál esquema de inserción de nop post calendarizados se debe aplicar" + +-#: config/rs6000/rs6000.h:472 ++#: config/rs6000/rs6000.h:475 + msgid "Specify alignment of structure fields default/natural" + msgstr "Especificar la alineación de los campos de estructuras default/natural" + +-#: config/rs6000/rs6000.h:474 ++#: config/rs6000/rs6000.h:477 + msgid "Specify scheduling priority for dispatch slot restricted insns" + msgstr "Especificar la prioridad de calendarización para despachar insns restringidos por ranuras" + +@@ -12011,7 +12034,7 @@ + #. Number of bytes into the frame return addresses can be found. See + #. rs6000_stack_info in rs6000.c for more information on how the different + #. abi's store the return address. +-#: config/rs6000/rs6000.h:1923 ++#: config/rs6000/rs6000.h:1932 + msgid "RETURN_ADDRESS_OFFSET not supported" + msgstr "RETURN_ADDRESS_OFFSET no tiene soporte" + +@@ -12278,28 +12301,28 @@ + msgid "enable fused multiply/add instructions" + msgstr "activar instrucciones multiply/add de corto circuito" + +-#: config/sh/sh.c:5977 ++#: config/sh/sh.c:5978 + msgid "__builtin_saveregs not supported by this subtarget" + msgstr "no se da soporte a __builtin_saveregs en este subobjetivo" + +-#: config/sh/sh.c:6879 ++#: config/sh/sh.c:6880 + msgid "attribute interrupt_handler is not compatible with -m5-compact" + msgstr "el atributo interrupt_handler no es compatible con -m5-compact" + + #. The sp_switch attribute only has meaning for interrupt functions. +-#: config/sh/sh.c:6901 config/sh/sh.c:6936 ++#: config/sh/sh.c:6902 config/sh/sh.c:6937 + #, c-format + msgid "`%s' attribute only applies to interrupt functions" + msgstr "el atributo `%s' se aplica solamente a funciones de interrupción" + + #. The argument must be a constant string. +-#: config/sh/sh.c:6908 ++#: config/sh/sh.c:6909 + #, c-format + msgid "`%s' attribute argument not a string constant" + msgstr "el argumento del atributo `%s' no es una cadena constante" + + #. The argument must be a constant integer. +-#: config/sh/sh.c:6943 ++#: config/sh/sh.c:6944 + #, c-format + msgid "`%s' attribute argument not an integer constant" + msgstr "el argumento del atributo `%s' no es una constante entera" +@@ -12311,69 +12334,69 @@ + msgid "Profiling is not supported on this target." + msgstr "No se da soporte a análisis de perfil en este objetivo." + +-#: config/sparc/sparc.c:360 ++#: config/sparc/sparc.c:362 + #, c-format + msgid "%s is not supported by this configuration" + msgstr "%s no tiene soporte en esta configuración" + +-#: config/sparc/sparc.c:367 ++#: config/sparc/sparc.c:369 + msgid "-mlong-double-64 not allowed with -m64" + msgstr "no se permite -mlong-double-64 con -m64" + +-#: config/sparc/sparc.c:392 ++#: config/sparc/sparc.c:394 + msgid "-mcmodel= is not supported on 32 bit systems" + msgstr "-mcmodel= no tiene soporte en sistemas de 32 bit" + +-#: config/sparc/sparc.c:6818 config/sparc/sparc.c:6824 ++#: config/sparc/sparc.c:6960 config/sparc/sparc.c:6966 + #, c-format + msgid "invalid %%Y operand" + msgstr "operando %%Y inválido" + +-#: config/sparc/sparc.c:6894 ++#: config/sparc/sparc.c:7036 + #, c-format + msgid "invalid %%A operand" + msgstr "operando %%A inválido" + +-#: config/sparc/sparc.c:6904 ++#: config/sparc/sparc.c:7046 + #, c-format + msgid "invalid %%B operand" + msgstr "operando %%B inválido" + +-#: config/sparc/sparc.c:6943 ++#: config/sparc/sparc.c:7085 + #, c-format + msgid "invalid %%c operand" + msgstr "operando %%c inválido" + +-#: config/sparc/sparc.c:6944 ++#: config/sparc/sparc.c:7086 + #, c-format + msgid "invalid %%C operand" + msgstr "operando %%C inválido" + +-#: config/sparc/sparc.c:6965 ++#: config/sparc/sparc.c:7107 + #, c-format + msgid "invalid %%d operand" + msgstr "operando %%d inválido" + +-#: config/sparc/sparc.c:6966 ++#: config/sparc/sparc.c:7108 + #, c-format + msgid "invalid %%D operand" + msgstr "operando %%D inválido" + +-#: config/sparc/sparc.c:6982 ++#: config/sparc/sparc.c:7124 + #, c-format + msgid "invalid %%f operand" + msgstr "operando %%f inválido" + +-#: config/sparc/sparc.c:6996 ++#: config/sparc/sparc.c:7138 + #, c-format + msgid "invalid %%s operand" + msgstr "operando %%s inválido" + +-#: config/sparc/sparc.c:7050 ++#: config/sparc/sparc.c:7192 + msgid "long long constant not a valid immediate operand" + msgstr "la constante long long no es un operando inmediato válido" + +-#: config/sparc/sparc.c:7053 ++#: config/sparc/sparc.c:7195 + msgid "floating point constant not a valid immediate operand" + msgstr "la constante de coma flotante no es un operando inmediato válido" + +@@ -12857,259 +12880,259 @@ + msgid "`-gnat' misspelled as `-gant'" + msgstr "`-gnat' mal deletreado como `-gant'" + +-#: cp/call.c:217 ++#: cp/call.c:219 + msgid "unable to call pointer to member function here" + msgstr "no se puede llamar un puntero a una función miembro aquí" + +-#: cp/call.c:2228 ++#: cp/call.c:2238 + msgid "%s %D(%T, %T, %T) " + msgstr "%s %D(%T, %T, %T) " + +-#: cp/call.c:2233 ++#: cp/call.c:2243 + msgid "%s %D(%T, %T) " + msgstr "%s %D(%T, %T) " + +-#: cp/call.c:2237 ++#: cp/call.c:2247 + msgid "%s %D(%T) " + msgstr "%s %D(%T) " + +-#: cp/call.c:2241 ++#: cp/call.c:2251 + msgid "%s %T " + msgstr "%s %T " + +-#: cp/call.c:2243 ++#: cp/call.c:2253 + msgid "%J%s %+#D " + msgstr "%J%s %+#D " + +-#: cp/call.c:2245 ++#: cp/call.c:2255 + msgid "%J%s %+#D" + msgstr "%J%s %+#D" + +-#: cp/call.c:2280 ++#: cp/call.c:2290 + msgid "candidates are:" + msgstr "los candidatos son:" + +-#: cp/call.c:2468 ++#: cp/call.c:2478 + msgid "conversion from `%T' to `%T' is ambiguous" + msgstr "la conversión de `%T' a `%T' es ambigua" + +-#: cp/call.c:2619 cp/call.c:2663 ++#: cp/call.c:2629 cp/call.c:2673 + msgid "no matching function for call to `%D(%A)'" + msgstr "no hay una función coincidente para la llamada a `%D(%A)'" + +-#: cp/call.c:2622 cp/call.c:2666 ++#: cp/call.c:2632 cp/call.c:2676 + msgid "call of overloaded `%D(%A)' is ambiguous" + msgstr "la llamada del `%D(%A)' sobrecargado es ambigua" + + #. It's no good looking for an overloaded operator() on a + #. pointer-to-member-function. +-#: cp/call.c:2732 ++#: cp/call.c:2742 + #, c-format + msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*" + msgstr "la función puntero-a-miembro %E no se puede llamar dentro de un objeto; considere utilizar .* o ->*" + +-#: cp/call.c:2798 ++#: cp/call.c:2808 + msgid "no match for call to `(%T) (%A)'" + msgstr "no hay coincidencia para la llamada a `(%T) (%A)'" + +-#: cp/call.c:2806 ++#: cp/call.c:2816 + msgid "call of `(%T) (%A)' is ambiguous" + msgstr "la llamada de `(%T) (%A)' es ambigua" + +-#: cp/call.c:2839 ++#: cp/call.c:2849 + #, c-format + msgid "%s for ternary 'operator?:' in '%E ? %E : %E'" + msgstr "%s para el 'operador?:' terniario en '%E ? %E : %E'" + +-#: cp/call.c:2845 ++#: cp/call.c:2855 + #, c-format + msgid "%s for 'operator%s' in '%E%s'" + msgstr "%s para 'operador%s' en `%E%s'" + +-#: cp/call.c:2849 ++#: cp/call.c:2859 + #, c-format + msgid "%s for 'operator[]' in '%E[%E]'" + msgstr "%s para el 'operador[]' en '%E[%E]'" + +-#: cp/call.c:2854 ++#: cp/call.c:2864 + #, c-format + msgid "%s for '%s' in '%s %E'" + msgstr "%s para '%s' en '%s %E'" + +-#: cp/call.c:2859 ++#: cp/call.c:2869 + #, c-format + msgid "%s for 'operator%s' in '%E %s %E'" + msgstr "%s para 'operador%s' en '%E %s %E'" + +-#: cp/call.c:2862 ++#: cp/call.c:2872 + #, c-format + msgid "%s for 'operator%s' in '%s%E'" + msgstr "%s para 'operador%s' en `%s%E'" + +-#: cp/call.c:2951 ++#: cp/call.c:2961 + msgid "ISO C++ forbids omitting the middle term of a ?: expression" + msgstr "ISO C++ prohíbe la omisión del término medio de una expresión ?:" + +-#: cp/call.c:3028 ++#: cp/call.c:3038 + #, c-format + msgid "`%E' has type `void' and is not a throw-expression" + msgstr "`%E' tiene tipo `void' y no es una expresión throw" + +-#: cp/call.c:3061 cp/call.c:3265 ++#: cp/call.c:3071 cp/call.c:3275 + msgid "operands to ?: have different types" + msgstr "los operandos de ?: tienen tipos diferentes" + +-#: cp/call.c:3219 ++#: cp/call.c:3229 + msgid "enumeral mismatch in conditional expression: `%T' vs `%T'" + msgstr "no coincide el enumeral en la expresión condicional: `%T' vs `%T'" + +-#: cp/call.c:3226 ++#: cp/call.c:3236 + msgid "enumeral and non-enumeral type in conditional expression" + msgstr "tipos enumeral y no enumeral en la expresión condicional" + +-#: cp/call.c:3511 ++#: cp/call.c:3521 + msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead" + msgstr "no se declaró `%D(int)' para el `%s' postfijo, intentando en su lugar el operador prefijo" + +-#: cp/call.c:3560 ++#: cp/call.c:3570 + msgid "using synthesized `%#D' for copy assignment" + msgstr "usando `%#D' sintetizado para asignación de copia" + +-#: cp/call.c:3562 ++#: cp/call.c:3572 + msgid " where cfront would use `%#D'" + msgstr " donde cfront podría usar `%#D'" + +-#: cp/call.c:3585 ++#: cp/call.c:3595 + msgid "comparison between `%#T' and `%#T'" + msgstr "comparación entre `%#T' y `%#T'" + +-#: cp/call.c:3831 ++#: cp/call.c:3841 + msgid "no suitable `operator %s' for `%T'" + msgstr "no hay un `operator %s' para `%T'" + +-#: cp/call.c:3848 ++#: cp/call.c:3858 + msgid "`%+#D' is private" + msgstr "`%+#D' es privado" + +-#: cp/call.c:3850 ++#: cp/call.c:3860 + msgid "`%+#D' is protected" + msgstr "`%+#D' está protegido" + +-#: cp/call.c:3852 ++#: cp/call.c:3862 + msgid "`%+#D' is inaccessible" + msgstr "`%+#D' es inaccesible" + +-#: cp/call.c:3853 ++#: cp/call.c:3863 + msgid "within this context" + msgstr "desde este contexto" + +-#: cp/call.c:3923 ++#: cp/call.c:3947 + msgid "invalid conversion from `%T' to `%T'" + msgstr "conversión inválida de `%T' a `%T'" + +-#: cp/call.c:3925 ++#: cp/call.c:3949 + msgid " initializing argument %P of `%D'" + msgstr " argumento de inicialización %P de `%D'" + +-#: cp/call.c:4079 ++#: cp/call.c:4094 + msgid "cannot bind bitfield `%E' to `%T'" + msgstr "no se puede unir el campo de bits `%E' a `%T'" + +-#: cp/call.c:4082 ++#: cp/call.c:4097 + msgid "cannot bind packed field `%E' to `%T'" + msgstr "no se unir el campo empacado `%E' a `%T'" + +-#: cp/call.c:4085 ++#: cp/call.c:4100 + msgid "cannot bind rvalue `%E' to `%T'" + msgstr "no se puede unir el rvalue `%E' a `%T'" + +-#: cp/call.c:4170 ++#: cp/call.c:4185 + msgid "cannot pass objects of non-POD type `%#T' through `...'; call will abort at runtime" + msgstr "no se puede pasar objetos de tipo `%#T' que no es POD a través de `...'; la llamada abortará en tiempo de ejecución" + + #. Undefined behavior [expr.call] 5.2.2/7. +-#: cp/call.c:4196 ++#: cp/call.c:4211 + msgid "cannot receive objects of non-POD type `%#T' through `...'; call will abort at runtime" + msgstr "no se puede recibir objetos de tipo `%#T' que no es POD a través de `...'; la llamada abortará en tiempo de ejecución" + +-#: cp/call.c:4240 ++#: cp/call.c:4255 + msgid "the default argument for parameter %d of `%D' has not yet been parsed" + msgstr "el argumento por defecto para el parámetro %d de `%D' no se ha decodificado aún" + +-#: cp/call.c:4437 ++#: cp/call.c:4452 + msgid "passing `%T' as `this' argument of `%#D' discards qualifiers" + msgstr "pasar `%T' como el argumento `this' de `%#D' descarta a los calificadores" + +-#: cp/call.c:4456 ++#: cp/call.c:4471 + msgid "`%T' is not an accessible base of `%T'" + msgstr "`%T' no es una base inaccesible de `%T'" + +-#: cp/call.c:4725 ++#: cp/call.c:4740 + msgid "could not find class$ field in java interface type `%T'" + msgstr "no se puede encontrar un campo class$ en el tipo de interfaz java `%T'" + +-#: cp/call.c:4980 ++#: cp/call.c:4995 + msgid "call to non-function `%D'" + msgstr "llamada a `%D' que no es función" + +-#: cp/call.c:5006 ++#: cp/call.c:5021 + msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'" + msgstr "solicitud por el miembro `%D' en `%E' el cual es del tipo no agregado `%T'" + +-#: cp/call.c:5084 ++#: cp/call.c:5099 + msgid "no matching function for call to `%T::%s(%A)%#V'" + msgstr "no se encuentra una función coincidente para la llamada a `%T::%s(%A)%#V'" + +-#: cp/call.c:5101 ++#: cp/call.c:5116 + #, c-format + msgid "call of overloaded `%s(%A)' is ambiguous" + msgstr "la llamada del `%s(%A)' sobrecargado es ambigua" + +-#: cp/call.c:5122 ++#: cp/call.c:5137 + msgid "cannot call member function `%D' without object" + msgstr "no se puede llamar a la función miembro `%D' sin un objeto" + +-#: cp/call.c:5707 ++#: cp/call.c:5722 + msgid "passing `%T' chooses `%T' over `%T'" + msgstr "pasar `%T' escoge `%T'n sobre `%T'" + +-#: cp/call.c:5709 cp/name-lookup.c:4155 ++#: cp/call.c:5724 cp/name-lookup.c:4137 + msgid " in call to `%D'" + msgstr " en la llamada a `%D'" + +-#: cp/call.c:5766 ++#: cp/call.c:5781 + msgid "choosing `%D' over `%D'" + msgstr "escogiendo `%D' sobre `%D'" + +-#: cp/call.c:5767 ++#: cp/call.c:5782 + msgid " for conversion from `%T' to `%T'" + msgstr " para la conversión de `%T' a `%T'" + +-#: cp/call.c:5769 ++#: cp/call.c:5784 + msgid " because conversion sequence for the argument is better" + msgstr " porque la secuencia de conversión para el argumento es mejor" + +-#: cp/call.c:5889 ++#: cp/call.c:5904 + msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:" + msgstr "ISO C++ dice que estos son ambiguos, aún cuando la peor conversión para el primero es mejor que la peor conversión para el segundo:" + +-#: cp/call.c:5893 ++#: cp/call.c:5908 + msgid "candidate 1:" + msgstr "candidato 1:" + +-#: cp/call.c:5894 ++#: cp/call.c:5909 + msgid "candidate 2:" + msgstr "candidato 2:" + +-#: cp/call.c:6003 ++#: cp/call.c:6018 + msgid "could not convert `%E' to `%T'" + msgstr "no se puede convertir `%E' a `%T'" + +-#: cp/call.c:6108 ++#: cp/call.c:6123 + msgid "invalid initialization of non-const reference of type '%T' from a temporary of type '%T'" + msgstr "inicialización inválida de una referencia que no es constante de tipo '%T' desde un temporal de tipo '%T'" + +-#: cp/call.c:6112 ++#: cp/call.c:6127 + msgid "invalid initialization of reference of type '%T' from expression of type '%T'" + msgstr "inicialización inválida de la referencia de tipo '%T' desde una expresión de tipo '%T'" + +@@ -13183,220 +13206,220 @@ + msgstr "`%#T' solamente define constructores privados y no tiene friends" + + # Ojo, no es impostor, sino impositor, el que impone. cfuga +-#: cp/class.c:1995 ++#: cp/class.c:2038 + msgid "no unique final overrider for `%D' in `%T'" + msgstr "no hay un impositor único final para `%D' en `%T'" + + #. Here we know it is a hider, and no overrider exists. +-#: cp/class.c:2441 ++#: cp/class.c:2484 + msgid "`%D' was hidden" + msgstr "`%D' estaba escondido" + +-#: cp/class.c:2442 ++#: cp/class.c:2485 + msgid " by `%D'" + msgstr " por `%D'" + +-#: cp/class.c:2484 cp/decl2.c:1161 ++#: cp/class.c:2527 cp/decl2.c:1161 + msgid "`%#D' invalid; an anonymous union can only have non-static data members" + msgstr "`%#D' inválido; un union anónimo sólo puede tener miembros con datos no estáticos" + +-#: cp/class.c:2490 cp/decl2.c:1168 ++#: cp/class.c:2533 cp/decl2.c:1168 + msgid "private member `%#D' in anonymous union" + msgstr "miembro privado `%#D' en union anónima" + +-#: cp/class.c:2493 cp/decl2.c:1170 ++#: cp/class.c:2536 cp/decl2.c:1170 + msgid "protected member `%#D' in anonymous union" + msgstr "miembro protegido `%#D' en union anónima" + +-#: cp/class.c:2612 ++#: cp/class.c:2655 + msgid "vtable layout for class `%T' may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor" + msgstr "la disposición vtable para la clase `%T' puede no cumplir con la ABI y puede cambiar en una versión futura de GCC debido al destructor virtual implícito" + +-#: cp/class.c:2672 ++#: cp/class.c:2715 + msgid "bit-field `%#D' with non-integral type" + msgstr "campo de bits `%#D' con tipo no entero" + +-#: cp/class.c:2692 ++#: cp/class.c:2735 + msgid "bit-field `%D' width not an integer constant" + msgstr "la anchura del campo de bits `%D' no es una constante entera" + +-#: cp/class.c:2698 ++#: cp/class.c:2741 + msgid "negative width in bit-field `%D'" + msgstr "anchura negativa en el campo de bit `%D'" + +-#: cp/class.c:2703 ++#: cp/class.c:2746 + msgid "zero width for bit-field `%D'" + msgstr "anchura cero para el campo de bits `%D'" + +-#: cp/class.c:2709 ++#: cp/class.c:2752 + msgid "width of `%D' exceeds its type" + msgstr "la anchura de `%D' excede su tipo" + +-#: cp/class.c:2718 ++#: cp/class.c:2761 + msgid "`%D' is too small to hold all values of `%#T'" + msgstr "`%D' es demasiado pequeño para guardar todos los valores de `%#T'" + +-#: cp/class.c:2780 ++#: cp/class.c:2823 + msgid "member `%#D' with constructor not allowed in union" + msgstr "no se permite el miembro `%#D' con constructor en la union" + +-#: cp/class.c:2783 ++#: cp/class.c:2826 + msgid "member `%#D' with destructor not allowed in union" + msgstr "no se permite el miembro `%#D' con destructor en la union" + +-#: cp/class.c:2786 ++#: cp/class.c:2829 + msgid "member `%#D' with copy assignment operator not allowed in union" + msgstr "no se permite el miembro `%#D' con operador de asignación de copia en la union" + +-#: cp/class.c:2813 ++#: cp/class.c:2856 + msgid "multiple fields in union `%T' initialized" + msgstr "múltiples campos inicializados en la unión `%T'" + +-#: cp/class.c:2879 ++#: cp/class.c:2922 + msgid "ignoring packed attribute on unpacked non-POD field `%#D'" + msgstr "se ignoran los atributos empacados en el campo `%#D' no empacado que no es POD" + +-#: cp/class.c:2939 ++#: cp/class.c:2982 + msgid "`%D' may not be static because it is a member of a union" + msgstr "`%D' no debe ser static porque es el miembro de una unión" + +-#: cp/class.c:2944 ++#: cp/class.c:2987 + msgid "`%D' may not have reference type `%T' because it is a member of a union" + msgstr "'%D' no puede tener el tipo de referencia `%T' porque es el miembro de una unión" + +-#: cp/class.c:2952 ++#: cp/class.c:2995 + msgid "field `%D' in local class cannot be static" + msgstr "el campo `%D' en la clase local no puede ser static" + +-#: cp/class.c:2958 ++#: cp/class.c:3001 + msgid "field `%D' invalidly declared function type" + msgstr "el campo `%D' es declarado inválidamente como un tipo de función" + +-#: cp/class.c:2965 ++#: cp/class.c:3008 + msgid "field `%D' invalidly declared method type" + msgstr "el campo `%D' es declarado inválidamente como un tipo de método" + +-#: cp/class.c:2998 ++#: cp/class.c:3041 + msgid "non-static reference `%#D' in class without a constructor" + msgstr "referencia `%#D' que no es static en una clase sin un constructor" + +-#: cp/class.c:3041 ++#: cp/class.c:3084 + msgid "non-static const member `%#D' in class without a constructor" + msgstr "miembro const `%#D' que no es static en una clase sin un constructor" + +-#: cp/class.c:3056 ++#: cp/class.c:3099 + msgid "field `%#D' with same name as class" + msgstr "campo `%#D' con el mismo nombre que la clase" + +-#: cp/class.c:3074 ++#: cp/class.c:3117 + msgid "`%#T' has pointer data members" + msgstr "`%#T' tiene miembros punteros a datos" + +-#: cp/class.c:3078 ++#: cp/class.c:3121 + msgid " but does not override `%T(const %T&)'" + msgstr " pero no se impone a `%T(const %T&)'" + +-#: cp/class.c:3080 ++#: cp/class.c:3123 + msgid " or `operator=(const %T&)'" + msgstr " o a `operator=(cont %T&)'" + +-#: cp/class.c:3083 ++#: cp/class.c:3126 + msgid " but does not override `operator=(const %T&)'" + msgstr " pero no se impone a `operator=(const %T&)'" + +-#: cp/class.c:3517 ++#: cp/class.c:3560 + msgid "offset of empty base `%T' may not be ABI-compliant and maychange in a future version of GCC" + msgstr "el desplazamiento de la base vacía `%T' puede no cumplir con la ABI y puede cambiar en una versión futura de GCC" + +-#: cp/class.c:3627 ++#: cp/class.c:3670 + msgid "class `%T' will be considered nearly empty in a future version of GCC" + msgstr "la clase `%T' se considerará casi vacía en una versión futura de GCC" + +-#: cp/class.c:3714 ++#: cp/class.c:3757 + msgid "initializer specified for non-virtual method `%D'" + msgstr "se especificó un inicializador para el método no virtual `%D'" + +-#: cp/class.c:4402 ++#: cp/class.c:4445 + msgid "offset of virtual base `%T' is not ABI-compliant and may change in a future version of GCC" + msgstr "el desplazamiento de la base virtual `%T' no cumple con la ABI y puede cambiar en una versión futura de GCC" + +-#: cp/class.c:4492 ++#: cp/class.c:4535 + msgid "direct base `%T' inaccessible in `%T' due to ambiguity" + msgstr "base directa `%T' inaccesible en `%T' debido a ambigüedad" + +-#: cp/class.c:4505 ++#: cp/class.c:4548 + msgid "virtual base `%T' inaccessible in `%T' due to ambiguity" + msgstr "base virtual `%T' inaccesible en `%T' debido a ambigüedad" + +-#: cp/class.c:4679 ++#: cp/class.c:4722 + msgid "size assigned to `%T' may not be ABI-compliant and may change in a future version of GCC" + msgstr "el tamaño asignado a `%T' puede no cumplir con la ABI y puede cambiar en una versión futura de GCC" + + #. Versions of G++ before G++ 3.4 did not reset the + #. DECL_MODE. +-#: cp/class.c:4718 ++#: cp/class.c:4761 + msgid "the offset of `%D' may not be ABI-compliant and may change in a future version of GCC" + msgstr "el desplazamiento de `%D' tal vez no cumple con la ABI y puede cambiar en una versión futura de GCC" + +-#: cp/class.c:4741 ++#: cp/class.c:4784 + msgid "offset of `%D' is not ABI-compliant and may change in a future version of GCC" + msgstr "el desplazamiento de `%D' no cumple con la ABI y puede cambiar en una versión futura de GCC" + +-#: cp/class.c:4750 ++#: cp/class.c:4793 + msgid "`%D' contains empty classes which may cause base classes to be placed at different locations in a future version of GCC" + msgstr "`%D' contiene clases vacías las cuales pueden causar que las clases base se coloquen en diferentes ubicaciones en una versión futura de GCC" + +-#: cp/class.c:4809 ++#: cp/class.c:4852 + msgid "layout of classes derived from empty class `%T' may change in a future version of GCC" + msgstr "la disposición de clases derivadas de la clase vacía `%T' puede cambiar en una versión futura de GCC" + +-#: cp/class.c:4939 cp/semantics.c:2044 ++#: cp/class.c:4982 cp/semantics.c:2041 + msgid "redefinition of `%#T'" + msgstr "redefinición de `%#T'" + +-#: cp/class.c:5109 ++#: cp/class.c:5152 + msgid "`%#T' has virtual functions but non-virtual destructor" + msgstr "`%#T' tiene funciones virtuales pero destructores no virtuales" + +-#: cp/class.c:5188 ++#: cp/class.c:5231 + msgid "trying to finish struct, but kicked out due to previous parse errors" + msgstr "se trató de terminar struct, pero fue sacado debido a errores previos de decodificación" + +-#: cp/class.c:5630 ++#: cp/class.c:5673 + #, c-format + msgid "language string `\"%s\"' not recognized" + msgstr "cadena de lenguaje `\"%s\"' no se reconocen" + +-#: cp/class.c:5718 ++#: cp/class.c:5761 + msgid "cannot resolve overloaded function `%D' based on conversion to type `%T'" + msgstr "no se puede resolver la función sobrecargada `%D' basándose en la conversión al tipo `%T'" + +-#: cp/class.c:5843 ++#: cp/class.c:5886 + msgid "no matches converting function `%D' to type `%#T'" + msgstr "no hay coincidencias al convertir la función `%D' al tipo `%#T'" + +-#: cp/class.c:5866 ++#: cp/class.c:5909 + msgid "converting overloaded function `%D' to type `%#T' is ambiguous" + msgstr "la conversión de la función sobrecargada `%D' al tipo `%#T' es ambigua" + +-#: cp/class.c:5892 ++#: cp/class.c:5935 + msgid "assuming pointer to member `%D'" + msgstr "asumiendo el puntero a miembro `%D'" + +-#: cp/class.c:5895 ++#: cp/class.c:5938 + #, c-format + msgid "(a pointer to member can only be formed with `&%E')" + msgstr "(un puntero a miembro solamente se puede formar con `&%E')" + +-#: cp/class.c:5940 cp/class.c:6122 cp/class.c:6129 ++#: cp/class.c:5983 cp/class.c:6165 cp/class.c:6172 + msgid "not enough type information" + msgstr "no hay suficiente información de tipo" + +-#: cp/class.c:5957 ++#: cp/class.c:6000 + msgid "argument of type `%T' does not match `%T'" + msgstr "el argumento de tipo `%T' no coincide con `%T'" + +-#: cp/class.c:6106 ++#: cp/class.c:6149 + msgid "invalid operation on uninstantiated type" + msgstr "operación inválida en tipo no instanciado" + +@@ -13405,11 +13428,11 @@ + #. A name N used in a class S shall refer to the same declaration + #. in its context and when re-evaluated in the completed scope of + #. S. +-#: cp/class.c:6364 cp/decl.c:1222 cp/name-lookup.c:514 cp/pt.c:2097 ++#: cp/class.c:6407 cp/decl.c:1223 cp/name-lookup.c:514 cp/pt.c:2125 + msgid "declaration of `%#D'" + msgstr "la declaración de `%#D'" + +-#: cp/class.c:6365 ++#: cp/class.c:6408 + msgid "changes meaning of `%D' from `%+#D'" + msgstr "cambia el significado de `%D' a partir de `%+#D'" + +@@ -13511,141 +13534,156 @@ + msgid " candidate conversions include `%D' and `%D'" + msgstr " las conversiones candidatas incluyen `%D' y `%D'" + +-#: cp/decl.c:371 ++#: cp/decl.c:372 + msgid "label `%D' used but not defined" + msgstr "se usa la etiqueta `%D' pero no está definida" + +-#: cp/decl.c:378 ++#: cp/decl.c:379 + msgid "label `%D' defined but not used" + msgstr "la etiqueta `%D' está definida pero no se usa" + +-#: cp/decl.c:1130 cp/decl.c:1556 ++#: cp/decl.c:1131 cp/decl.c:1570 + msgid "previous declaration of `%D'" + msgstr "declaración previa de `%D'" + +-#: cp/decl.c:1178 ++#: cp/decl.c:1179 + msgid "%Jfunction '%D' redeclared as inline" + msgstr "%Jla función '%D' es redeclarada como inline" + +-#: cp/decl.c:1179 ++#: cp/decl.c:1180 + msgid "%Jprevious declaration of '%D' with attribute noinline" + msgstr "%Jdeclaración previa de '%D' con el atributo noinline" + +-#: cp/decl.c:1186 ++#: cp/decl.c:1187 + msgid "%Jfunction '%D' redeclared with attribute noinline" + msgstr "%Jla función '%D' redeclarada con el atributo noinline" + +-#: cp/decl.c:1188 ++#: cp/decl.c:1189 + msgid "%Jprevious declaration of '%D' was inline" + msgstr "%Jla declaración previa de la función '%D' era inline" + +-#: cp/decl.c:1209 cp/decl.c:1247 ++#: cp/decl.c:1210 cp/decl.c:1248 + msgid "shadowing %s function `%#D'" + msgstr "oscureciendo la función de biblioteca `%#D'" + +-#: cp/decl.c:1218 ++#: cp/decl.c:1219 + msgid "library function `%#D' redeclared as non-function `%#D'" + msgstr "la función de biblioteca `%#D' es redeclarada como `%#D' que no es función" + +-#: cp/decl.c:1223 ++#: cp/decl.c:1224 + msgid "conflicts with built-in declaration `%#D'" + msgstr "causa conflicto con la declaración interna `%#D'" + +-#: cp/decl.c:1242 cp/decl.c:1354 cp/decl.c:1370 ++#: cp/decl.c:1243 cp/decl.c:1355 cp/decl.c:1371 + msgid "new declaration `%#D'" + msgstr "declaración nueva `%#D'" + +-#: cp/decl.c:1243 ++#: cp/decl.c:1244 + msgid "ambiguates built-in declaration `%#D'" + msgstr "hace ambigua la declaración interna `%#D'" + +-#: cp/decl.c:1314 ++#: cp/decl.c:1315 + msgid "`%#D' redeclared as different kind of symbol" + msgstr "`%#D' redeclarado como un tipo diferente de símbolo" + +-#: cp/decl.c:1317 ++#: cp/decl.c:1318 + msgid "previous declaration of `%#D'" + msgstr "declaración previa de `%#D'" + +-#: cp/decl.c:1339 ++#: cp/decl.c:1340 + msgid "declaration of template `%#D'" + msgstr "redeclaración de la plantilla `%#D'" + +-#: cp/decl.c:1340 cp/name-lookup.c:515 ++#: cp/decl.c:1341 cp/name-lookup.c:515 + msgid "conflicts with previous declaration `%#D'" + msgstr "causa conflictos con la declaración previa `%#D'" + +-#: cp/decl.c:1355 cp/decl.c:1371 ++#: cp/decl.c:1356 cp/decl.c:1372 + msgid "ambiguates old declaration `%#D'" + msgstr "hace ambigua la declaración antigua `%#D'" + +-#: cp/decl.c:1363 ++#: cp/decl.c:1364 + msgid "declaration of C function `%#D' conflicts with" + msgstr "la declaración de la función C `%#D' tiene conflictos con" + +-#: cp/decl.c:1365 ++#: cp/decl.c:1366 + msgid "previous declaration `%#D' here" + msgstr "declaración previa de `%#D' aquí" + +-#: cp/decl.c:1381 ++#: cp/decl.c:1382 + msgid "conflicting declaration '%#D'" + msgstr "declaraciones de '%#D' en conflicto" + +-#: cp/decl.c:1382 ++#: cp/decl.c:1383 + msgid "'%D' has a previous declaration as `%#D'" + msgstr "'%D' tiene una declaración previa como `%#D'" + +-#: cp/decl.c:1435 ++#. [namespace.alias] ++#. ++#. A namespace-name or namespace-alias shall not be declared as ++#. the name of any other entity in the same declarative region. ++#. A namespace-name defined at global scope shall not be ++#. declared as the name of any other entity in any glogal scope ++#. of the program. ++#: cp/decl.c:1436 ++msgid "declaration of `namespace %D' conflicts with" ++msgstr "la declaración de `namespace %D' tiene conflictos con" ++ ++#: cp/decl.c:1437 ++msgid "previous declaration of `namespace %D' here" ++msgstr "declaración previa de `namespace %D' aquí" ++ ++#: cp/decl.c:1449 + msgid "`%#D' previously defined here" + msgstr "se definió `%#D' previamente aquí" + +-#: cp/decl.c:1436 ++#: cp/decl.c:1450 + msgid "`%#D' previously declared here" + msgstr "se declaró `%#D' previamente aquí" + + #. Prototype decl follows defn w/o prototype. +-#: cp/decl.c:1445 ++#: cp/decl.c:1459 + msgid "prototype for `%#D'" + msgstr "el prototipo para '%#D'" + +-#: cp/decl.c:1446 ++#: cp/decl.c:1460 + msgid "%Jfollows non-prototype definition here" + msgstr "%Ja continuación de la definición del no prototipo aquí" + +-#: cp/decl.c:1458 ++#: cp/decl.c:1472 + msgid "previous declaration of `%#D' with %L linkage" + msgstr "declaración previa de `%#D' con el enlace %L" + +-#: cp/decl.c:1460 ++#: cp/decl.c:1474 + msgid "conflicts with new declaration with %L linkage" + msgstr "tiene conflictos con la declaración nueva con el enlace %L" + +-#: cp/decl.c:1483 cp/decl.c:1490 ++#: cp/decl.c:1497 cp/decl.c:1504 + msgid "default argument given for parameter %d of `%#D'" + msgstr "argumento por defecto dado para el parámetro %d de `%#D'" + +-#: cp/decl.c:1485 cp/decl.c:1492 ++#: cp/decl.c:1499 cp/decl.c:1506 + msgid "after previous specification in `%#D'" + msgstr "después de la especificación previa en `%#D'" + +-#: cp/decl.c:1501 ++#: cp/decl.c:1515 + msgid "`%#D' was used before it was declared inline" + msgstr "se usó `%#D' antes de que fuera declarado inline" + +-#: cp/decl.c:1502 ++#: cp/decl.c:1516 + msgid "%Jprevious non-inline declaration here" + msgstr "%Jla declaración previa no inline aquí" + +-#: cp/decl.c:1555 ++#: cp/decl.c:1569 + msgid "redundant redeclaration of `%D' in same scope" + msgstr "declaración redundante de `%D' en el mismo ámbito" + +-#: cp/decl.c:1649 ++#: cp/decl.c:1663 + #, c-format + msgid "declaration of `%F' throws different exceptions" + msgstr "la declaración de `%F' arroja excepciones diferentes" + +-#: cp/decl.c:1651 ++#: cp/decl.c:1665 + #, c-format + msgid "than previous declaration `%F'" + msgstr "que la declaración previa `%F'" +@@ -13658,492 +13696,510 @@ + #. that specialization that would cause an implicit + #. instantiation to take place, in every translation unit in + #. which such a use occurs. +-#: cp/decl.c:1798 ++#: cp/decl.c:1812 + msgid "explicit specialization of %D after first use" + msgstr "especialización explícita de %D después del primer uso" + +-#: cp/decl.c:1878 ++#: cp/decl.c:1892 + msgid "%J'%D': visibility attribute ignored because it" + msgstr "$J'%D': se ignora el atributo de visibilidad porque" + +-#: cp/decl.c:1880 ++#: cp/decl.c:1894 + msgid "%Jconflicts with previous declaration here" + msgstr "%Jcausa conflictos con la declaración previa aquí" + +-#: cp/decl.c:1974 ++#: cp/decl.c:1988 + msgid "implicit declaration of function `%#D'" + msgstr "declaración implícita de la función `%#D'" + +-#: cp/decl.c:2137 ++#: cp/decl.c:2151 + #, c-format + msgid "label `%s' referenced outside of any function" + msgstr "la etiqueta `%s' se referenció fuera de cualquier función" + +-#: cp/decl.c:2234 cp/decl.c:2258 cp/decl.c:2346 ++#: cp/decl.c:2248 cp/decl.c:2272 cp/decl.c:2360 + msgid "jump to label `%D'" + msgstr "salto a la etiqueta `%D'" + +-#: cp/decl.c:2236 cp/decl.c:2260 ++#: cp/decl.c:2250 cp/decl.c:2274 + msgid "jump to case label" + msgstr "salto a la etiqueta case" + +-#: cp/decl.c:2239 cp/decl.c:2263 ++#: cp/decl.c:2253 cp/decl.c:2277 + msgid "%H from here" + msgstr "%H desde aquí" + +-#: cp/decl.c:2244 ++#: cp/decl.c:2258 + msgid " crosses initialization of `%#D'" + msgstr " cruza la inicialización de `%#D'" + +-#: cp/decl.c:2247 cp/decl.c:2362 ++#: cp/decl.c:2261 cp/decl.c:2376 + msgid " enters scope of non-POD `%#D'" + msgstr " entra en el ámbito de `%#D' que no es POD" + +-#: cp/decl.c:2267 cp/decl.c:2366 ++#: cp/decl.c:2281 cp/decl.c:2380 + msgid " enters try block" + msgstr " entra intento de bloque" + +-#: cp/decl.c:2269 cp/decl.c:2368 ++#: cp/decl.c:2283 cp/decl.c:2382 + msgid " enters catch block" + msgstr " entra captura de bloque" + +-#: cp/decl.c:2347 ++#: cp/decl.c:2361 + msgid " from here" + msgstr " desde aquí" + + #. Can't skip init of __exception_info. +-#: cp/decl.c:2358 ++#: cp/decl.c:2372 + msgid "%J enters catch block" + msgstr "%J entra al bloque de captura" + +-#: cp/decl.c:2360 ++#: cp/decl.c:2374 + msgid " skips initialization of `%#D'" + msgstr " salta la inicialización de `%#D'" + +-#: cp/decl.c:2394 ++#: cp/decl.c:2408 + msgid "label named wchar_t" + msgstr "etiqueta nombrada wchar_t" + +-#: cp/decl.c:2397 ++#: cp/decl.c:2411 + msgid "duplicate label `%D'" + msgstr "etiqueta duplicada `%D'" + +-#: cp/decl.c:2625 cp/parser.c:3182 ++#: cp/decl.c:2639 cp/parser.c:3192 + msgid "`%D' used without template parameters" + msgstr "se usa `%D' sin parámetros de plantilla" + +-#: cp/decl.c:2635 cp/decl.c:2651 cp/decl.c:2739 ++#: cp/decl.c:2649 cp/decl.c:2665 cp/decl.c:2753 + msgid "no class template named `%#T' in `%#T'" + msgstr "no hay una plantilla de clase llamada `%#T' en `%#T'" + +-#: cp/decl.c:2672 cp/decl.c:2682 cp/decl.c:2702 ++#: cp/decl.c:2686 cp/decl.c:2696 cp/decl.c:2716 + msgid "no type named `%#T' in `%#T'" + msgstr "no hay un tipo llamado `%#T' en `%#T'" + +-#: cp/decl.c:3429 ++#: cp/decl.c:3443 + msgid "%Jan anonymous union cannot have function members" + msgstr "%Jun union anónimo no puede tener funciones miembro" + +-#: cp/decl.c:3447 ++#: cp/decl.c:3461 + msgid "member %#D' with constructor not allowed in anonymous aggregate" + msgstr "no se permite el miembro %#D' con constructor en un agregado anónimo" + +-#: cp/decl.c:3450 ++#: cp/decl.c:3464 + msgid "member %#D' with destructor not allowed in anonymous aggregate" + msgstr "no se permite el miembro %#D' con destructor en un agregado anónimo" + +-#: cp/decl.c:3453 ++#: cp/decl.c:3467 + msgid "member %#D' with copy assignment operator not allowed in anonymous aggregate" + msgstr "no se permite el miembro %#D' con operador de asignación de copia en un agregado anónimo" + +-#: cp/decl.c:3493 ++#: cp/decl.c:3507 + msgid "redeclaration of C++ built-in type `%T'" + msgstr "redeclaración del tipo interno de C++ `%T'" + +-#: cp/decl.c:3531 ++#: cp/decl.c:3545 + msgid "multiple types in one declaration" + msgstr "tipos múltiples en una declaración" + +-#: cp/decl.c:3557 ++#: cp/decl.c:3571 + msgid "missing type-name in typedef-declaration" + msgstr "falta el nombre del tipo en la declaración typedef" + +-#: cp/decl.c:3565 ++#: cp/decl.c:3579 + msgid "ISO C++ prohibits anonymous structs" + msgstr "ISO C++ prohíbe structs anónimos" + +-#: cp/decl.c:3572 ++#: cp/decl.c:3586 + msgid "`%D' can only be specified for functions" + msgstr "`%D' sólo puede ser especificado para funciones" + +-#: cp/decl.c:3574 ++#: cp/decl.c:3588 + msgid "`%D' can only be specified inside a class" + msgstr "`%D' sólo puede ser especificado dentro de una clase" + +-#: cp/decl.c:3576 ++#: cp/decl.c:3590 + msgid "`%D' can only be specified for constructors" + msgstr "`%D' sólo puede ser especificado para constructores" + +-#: cp/decl.c:3579 ++#: cp/decl.c:3593 + msgid "`%D' can only be specified for objects and functions" + msgstr "`%D' sólo puede ser especificado para objetos y funciones" + +-#: cp/decl.c:3721 cp/decl2.c:855 ++#: cp/decl.c:3735 cp/decl2.c:855 + msgid "typedef `%D' is initialized (use __typeof__ instead)" + msgstr "typedef `%D' está inicializado (utilice __typeof__ en su lugar)" + +-#: cp/decl.c:3726 ++#: cp/decl.c:3740 + msgid "function `%#D' is initialized like a variable" + msgstr "la función `%#D' está inicializada como una variable" + +-#: cp/decl.c:3738 ++#: cp/decl.c:3752 + msgid "declaration of `%#D' has `extern' and is initialized" + msgstr "la declaración de `%#D' tiene `extern' y está inicializada" + +-#: cp/decl.c:3771 ++#: cp/decl.c:3785 + msgid "`%#D' is not a static member of `%#T'" + msgstr "`%#D' no es un miembro static de `%#T'" + +-#: cp/decl.c:3777 ++#: cp/decl.c:3791 + msgid "ISO C++ does not permit `%T::%D' to be defined as `%T::%D'" + msgstr "ISO C++ no permite que `%T::%D' se defina como `%T::%D'" + +-#: cp/decl.c:3788 ++#: cp/decl.c:3802 + msgid "duplicate initialization of %D" + msgstr "inicialización duplicada de %D" + +-#: cp/decl.c:3819 ++#: cp/decl.c:3833 + msgid "declaration of `%#D' outside of class is not definition" + msgstr "la declaración de `%#D' fuera de la clase no es una definición" + +-#: cp/decl.c:3868 ++#: cp/decl.c:3882 + msgid "variable `%#D' has initializer but incomplete type" + msgstr "la variable `%#D' tiene inicializador pero de tipo de dato incompleto" + +-#: cp/decl.c:3876 cp/decl.c:4445 ++#: cp/decl.c:3890 cp/decl.c:4500 + msgid "elements of array `%#D' have incomplete type" + msgstr "algunos elementos de la matriz `%#D' tienen tipo de dato incompleto" + +-#: cp/decl.c:3892 ++#: cp/decl.c:3906 + msgid "aggregate `%#D' has incomplete type and cannot be defined" + msgstr "el agregado `%#D' tiene un tipo incompleto y no se puede definir" + +-#: cp/decl.c:3942 ++#: cp/decl.c:3956 + msgid "`%D' declared as reference but not initialized" + msgstr "`%D' declarado como referencia pero no está inicializado" + +-#: cp/decl.c:3948 ++#: cp/decl.c:3962 + msgid "ISO C++ forbids use of initializer list to initialize reference `%D'" + msgstr "ISO C++ prohíbe el uso de una lista de inicializadores para inicializar la referencia `%D'" + +-#: cp/decl.c:3976 ++#: cp/decl.c:3990 + msgid "cannot initialize `%T' from `%T'" + msgstr "no se pueden inicializar `%T' desde `%T'" + +-#: cp/decl.c:4008 ++#: cp/decl.c:4022 + msgid "initializer fails to determine size of `%D'" + msgstr "el inicializador no puede determinar el tamaño de `%D'" + +-#: cp/decl.c:4013 ++#: cp/decl.c:4027 + msgid "array size missing in `%D'" + msgstr "falta el tamaño de la matriz en `%D'" + +-#: cp/decl.c:4025 ++#: cp/decl.c:4039 + msgid "zero-size array `%D'" + msgstr "matriz `%D' de tamaño cero" + + #. An automatic variable with an incomplete type: that is an error. + #. Don't talk about array types here, since we took care of that + #. message in grokdeclarator. +-#: cp/decl.c:4062 ++#: cp/decl.c:4076 + msgid "storage size of `%D' isn't known" + msgstr "no se conoce el tamaño de almacenamiento de `%D'" + +-#: cp/decl.c:4084 ++#: cp/decl.c:4098 + msgid "storage size of `%D' isn't constant" + msgstr "el tamaño de almacenamiento de `%D' no es constante" + +-#: cp/decl.c:4139 ++#: cp/decl.c:4153 + msgid "sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)" + msgstr "perdón: la semántica de los datos static de la función inline `%#D' es errónea (terminará con múltiples copias)" + +-#: cp/decl.c:4140 ++#: cp/decl.c:4154 + msgid "%J you can work around this by removing the initializer" + msgstr "%J puede evitar esto eliminando el inicializador" + +-#: cp/decl.c:4166 ++#: cp/decl.c:4180 + msgid "uninitialized const `%D'" + msgstr "const `%D' sin inicializar" + +-#: cp/decl.c:4245 ++#: cp/decl.c:4240 ++msgid "name `%D' used in a GNU-style designated initializer for an array" ++msgstr "el nombre `%D' se utiliza en un inicializador designado en estilo GNU para una matriz" ++ ++#: cp/decl.c:4251 ++#, c-format ++msgid "Designated initializer `%E' larger than array size" ++msgstr "El inicializador designado `%E' es más grande que el tamaño de la matriz" ++ ++#: cp/decl.c:4323 + msgid "brace-enclosed initializer used to initialize `%T'" + msgstr "se utilizó un inicializador encerrado entre llaves para inicializar a `%T'" + +-#: cp/decl.c:4309 ++#: cp/decl.c:4387 + msgid "initializer for `%T' must be brace-enclosed" + msgstr "el inicializador para `%T' debe estar encerrado entre llaves" + +-#: cp/decl.c:4326 ++#: cp/decl.c:4404 + msgid "ISO C++ does not allow designated initializers" + msgstr "ISO C++ no permite inicializadores designados" + +-#: cp/decl.c:4330 ++#: cp/decl.c:4408 + msgid "`%T' has no non-static data member named `%D'" + msgstr "`%T' no tiene un dato miembro que no es static llamado `%D'" + +-#: cp/decl.c:4378 +-msgid "name `%D' used in a GNU-style designated initializer for an array" +-msgstr "el nombre `%D' se utiliza en un inicializador designado en estilo GNU para una matriz" +- +-#: cp/decl.c:4401 ++#: cp/decl.c:4456 + msgid "too many initializers for `%T'" + msgstr "demasiados inicializadores para `%T'" + +-#: cp/decl.c:4439 ++#: cp/decl.c:4494 + msgid "variable-sized object `%D' may not be initialized" + msgstr "el objeto de tamaño variable `%D' no puede ser inicializado" + +-#: cp/decl.c:4450 ++#: cp/decl.c:4505 + msgid "`%D' has incomplete type" + msgstr "`%D' tiene un tipo de dato incompleto" + +-#: cp/decl.c:4505 ++#: cp/decl.c:4560 + msgid "`%D' must be initialized by constructor, not by `{...}'" + msgstr "`%D' debe ser inicializado por un constructor, no por `{...}'" + +-#: cp/decl.c:4549 ++#: cp/decl.c:4604 + msgid "structure `%D' with uninitialized const members" + msgstr "estructura `%D' con miembros const sin inicializar" + +-#: cp/decl.c:4551 ++#: cp/decl.c:4606 + msgid "structure `%D' with uninitialized reference members" + msgstr "estructura `%D' con miembros de referencia sin inicializar" + +-#: cp/decl.c:4732 ++#: cp/decl.c:4788 + msgid "assignment (not initialization) in declaration" + msgstr "asignación (no inicialización) en la declaración" + +-#: cp/decl.c:4749 ++#: cp/decl.c:4805 + msgid "cannot initialize `%D' to namespace `%D'" + msgstr "no se pueden inicializar `%D' para el espacio de nombres `%D'" + +-#: cp/decl.c:4803 ++#: cp/decl.c:4859 + msgid "shadowing previous type declaration of `%#D'" + msgstr "oscureciendo la declaración de tipo previa de `%#D'" + +-#: cp/decl.c:4840 ++#: cp/decl.c:4896 + msgid "`%D' cannot be thread-local because it has non-POD type `%T'" + msgstr "`%D' no puede ser thread-local porque es de tipo `%T' que no es POD" + +-#: cp/decl.c:4855 ++#: cp/decl.c:4911 + msgid "`%D' is thread-local and so cannot be dynamically initialized" + msgstr "`%D' es thread-local y por lo tanto no se puede inicializar dinámicamente" + +-#: cp/decl.c:5337 ++#: cp/decl.c:5406 + msgid "invalid catch parameter" + msgstr "parámetro de captura inválido" + +-#: cp/decl.c:5451 ++#: cp/decl.c:5520 + msgid "destructor for alien class `%T' cannot be a member" + msgstr "el destructor para la clase extranjera `%T' no puede ser un miembro" + +-#: cp/decl.c:5454 ++#: cp/decl.c:5523 + msgid "constructor for alien class `%T' cannot be a member" + msgstr "el constructor para la clase extranjera `%T' no puede ser un miembro" + +-#: cp/decl.c:5476 ++#: cp/decl.c:5545 + msgid "`%D' declared as a `virtual' %s" + msgstr "`%D' fue declarado como un %s `virtual'" + +-#: cp/decl.c:5478 ++#: cp/decl.c:5547 + msgid "`%D' declared as an `inline' %s" + msgstr "`%D' fue declarado como un %s `inline'" + +-#: cp/decl.c:5480 ++#: cp/decl.c:5549 + msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration" + msgstr "especificadores de función `const' y `volatile' en `%D' inválidos en la declaración %s" + +-#: cp/decl.c:5483 ++#: cp/decl.c:5552 + msgid "`%D' declared as a friend" + msgstr "`%D' declarado como un friend" + +-#: cp/decl.c:5489 ++#: cp/decl.c:5558 + msgid "`%D' declared with an exception specification" + msgstr "`%D' declarado con una excepción de especificación" + +-#: cp/decl.c:5571 ++#: cp/decl.c:5640 + msgid "cannot declare `::main' to be a template" + msgstr "no se puede declarar `::main' como template" + +-#: cp/decl.c:5573 ++#: cp/decl.c:5642 + msgid "cannot declare `::main' to be inline" + msgstr "no se puede declarar `::main' como inline" + +-#: cp/decl.c:5575 ++#: cp/decl.c:5644 + msgid "cannot declare `::main' to be static" + msgstr "no se puede declarar `::main' como static" + +-#: cp/decl.c:5578 ++#: cp/decl.c:5647 + msgid "`main' must return `int'" + msgstr "`main' debe devolver `int'" + +-#: cp/decl.c:5606 ++#: cp/decl.c:5675 + msgid "non-local function `%#D' uses anonymous type" + msgstr "la función `%#D' que no es local usa un tipo anónimo" + +-#: cp/decl.c:5609 ++#: cp/decl.c:5678 + msgid "`%#D' does not refer to the unqualified type, so it is not used for linkage" + msgstr "`%#D' no se refiere al tipo sin calificar, así que no se usa para el enlazado" + +-#: cp/decl.c:5615 ++#: cp/decl.c:5684 + msgid "non-local function `%#D' uses local type `%T'" + msgstr "la función `%#D' que no es local utiliza el tipo local `%T'" + +-#: cp/decl.c:5639 ++#: cp/decl.c:5708 + msgid "%smember function `%D' cannot have `%T' method qualifier" + msgstr "%sfunción miembro `%D' no puede tener el calificador de método `%T'" + +-#: cp/decl.c:5663 ++#: cp/decl.c:5732 + msgid "defining explicit specialization `%D' in friend declaration" + msgstr "definiendo la especialización explícita `%D' en la declaración friend" + + #. Something like `template friend void f()'. +-#: cp/decl.c:5673 ++#: cp/decl.c:5742 + msgid "invalid use of template-id `%D' in declaration of primary template" + msgstr "uso inválido del id de plantilla `%D' en la declaración de la plantilla primaria" + +-#: cp/decl.c:5700 ++#: cp/decl.c:5769 + msgid "default arguments are not allowed in declaration of friend template specialization `%D'" + msgstr "no se permiten los argumentos por defecto en la declaración de la especialización friend de la plantilla `%D'" + +-#: cp/decl.c:5707 ++#: cp/decl.c:5776 + msgid "`inline' is not allowed in declaration of friend template specialization `%D'" + msgstr "no se permiten `inline' en la declaración de la especialización friend de la plantilla `%D'" + +-#: cp/decl.c:5765 ++#: cp/decl.c:5834 + msgid "definition of implicitly-declared `%D'" + msgstr "la definición de `%D' declarado implícitamente" + +-#: cp/decl.c:5785 cp/decl2.c:738 ++#: cp/decl.c:5854 cp/decl2.c:738 + msgid "no `%#D' member function declared in class `%T'" + msgstr "no hay una función miembro `%#D' declarada en la clase `%T'" + +-#: cp/decl.c:5919 ++#: cp/decl.c:5988 + msgid "non-local variable `%#D' uses local type `%T'" + msgstr "la variable `%#D' que no es local usa el tipo local `%T'" + +-#: cp/decl.c:6034 ++#: cp/decl.c:6103 + msgid "invalid in-class initialization of static data member of non-integral type `%T'" + msgstr "inicialización en la clase inválida para el miembro de datos static de tipo `%T' que no es integral" + +-#: cp/decl.c:6043 ++#: cp/decl.c:6112 + msgid "ISO C++ forbids in-class initialization of non-const static member `%D'" + msgstr "ISO C++ prohíbe la inicialización en la clase del miembro static `%D' que no es constante" + +-#: cp/decl.c:6046 ++#: cp/decl.c:6115 + msgid "ISO C++ forbids initialization of member constant `%D' of non-integral type `%T'" + msgstr "ISO C++ prohíbe la inicialización del miembro constante `%D' del tipo `%T' que no es entero" + +-#: cp/decl.c:6065 ++#: cp/decl.c:6134 + msgid "size of array `%D' has non-integral type `%T'" + msgstr "el tamaño de la matriz `%D' tiene un tipo `%T' que no es entero" + +-#: cp/decl.c:6067 ++#: cp/decl.c:6136 + msgid "size of array has non-integral type `%T'" + msgstr "el tamaño de la matriz tiene un tipo `%T' que no es entero" + +-#: cp/decl.c:6103 ++#: cp/decl.c:6172 + msgid "size of array `%D' is negative" + msgstr "el tamaño de la matriz `%D' es negativo" + +-#: cp/decl.c:6105 ++#: cp/decl.c:6174 + msgid "size of array is negative" + msgstr "el tamaño de la matriz es negativo" + +-#: cp/decl.c:6113 ++#: cp/decl.c:6182 + msgid "ISO C++ forbids zero-size array `%D'" + msgstr "ISO C++ prohíbe la matriz `%D' de tamaño cero" + +-#: cp/decl.c:6115 ++#: cp/decl.c:6184 + msgid "ISO C++ forbids zero-size array" + msgstr "ISO C++ prohíbe una matriz de tamaño cero" + +-#: cp/decl.c:6122 ++#: cp/decl.c:6191 + msgid "size of array `%D' is not an integral constant-expression" + msgstr "el tamaño de la matriz `%D' no es una expresion constante integral" + +-#: cp/decl.c:6125 ++#: cp/decl.c:6194 + msgid "size of array is not an integral constant-expression" + msgstr "el tamaño de la matriz no es una expresion constante integral" + +-#: cp/decl.c:6130 ++#: cp/decl.c:6199 + msgid "ISO C++ forbids variable-size array `%D'" + msgstr "ISO C++ prohíbe la matriz `%D' de tamaño variable" + +-#: cp/decl.c:6132 ++#: cp/decl.c:6201 + msgid "ISO C++ forbids variable-size array" + msgstr "ISO C++ prohíbe la matriz de tamaño variable" + +-#: cp/decl.c:6154 ++#: cp/decl.c:6223 + msgid "overflow in array dimension" + msgstr "desbordamiento en la dimensión de la matriz" + +-#: cp/decl.c:6248 ++#: cp/decl.c:6317 + msgid "declaration of `%D' as %s" + msgstr "redeclaración de `%D' como %s" + +-#: cp/decl.c:6250 ++#: cp/decl.c:6319 + #, c-format + msgid "creating %s" + msgstr "creando %s" + +-#: cp/decl.c:6262 ++#: cp/decl.c:6331 + msgid "declaration of `%D' as multidimensional array must have bounds for all dimensions except the first" + msgstr "la declaración de `%D' como una matriz multidimensional debe tener límites para todas las dimensiones excepto la primera" + +-#: cp/decl.c:6265 ++#: cp/decl.c:6334 + msgid "multidimensional array must have bounds for all dimensions except the first" + msgstr "una matriz multidimensional debe tener límites para todas las dimensiones excepto para la primera" + +-#: cp/decl.c:6293 ++#: cp/decl.c:6362 + msgid "return type specification for constructor invalid" + msgstr "la especificación del tipo de devolución para el constructor es inválido" + +-#: cp/decl.c:6300 ++#: cp/decl.c:6369 + msgid "return type specification for destructor invalid" + msgstr "la especificación del tipo de devolución para el destructor es inválido" + +-#: cp/decl.c:6306 ++#: cp/decl.c:6375 + msgid "operator `%T' declared to return `%T'" + msgstr "el operador `%T' se declaró para devolver `%T'" + +-#: cp/decl.c:6308 ++#: cp/decl.c:6377 + msgid "return type specified for `operator %T'" + msgstr "se especificó un tipo de devolución para `operator %T'" + +-#: cp/decl.c:6452 ++#: cp/decl.c:6400 ++msgid "unnamed variable or field declared void" ++msgstr "variable sin nombre o campo declarado void" ++ ++#: cp/decl.c:6405 ++#, c-format ++msgid "variable or field `%E' declared void" ++msgstr "variable o campo `%E' declarado void" ++ ++#: cp/decl.c:6408 ++msgid "variable or field declared void" ++msgstr "variable o campo declarado void" ++ ++#: cp/decl.c:6547 + msgid "destructors must be member functions" + msgstr "los destructores deben ser funciones miembro" + +-#: cp/decl.c:6471 ++#: cp/decl.c:6566 + msgid "destructor `%T' must match class name `%T'" + msgstr "el destructor `%T' debe coincidir con el nombre de la clase `%T'" + +-#: cp/decl.c:6534 ++#: cp/decl.c:6629 + msgid "declarator-id missing; using reserved word `%D'" + msgstr "falta el id del declarador; utilizando la palabra reservada `%D'" + +-#: cp/decl.c:6588 ++#: cp/decl.c:6683 + msgid "type `%T' is not derived from type `%T'" + msgstr "el tipo `%T' no es derivado del tipo `%T'" + + #. Parse error puts this typespec where + #. a declarator should go. +-#: cp/decl.c:6651 ++#: cp/decl.c:6746 + msgid "`%T' specified as declarator-id" + msgstr "`%T' especificado como id de declarador" + +-#: cp/decl.c:6653 ++#: cp/decl.c:6748 + msgid " perhaps you want `%T' for a constructor" + msgstr " tal vez quiere `%T' para un constructor" + +@@ -14151,300 +14207,292 @@ + #. decl-specifier like in + #. std::allocator alloc; + #. Handle that gracefully. +-#: cp/decl.c:6675 ++#: cp/decl.c:6770 + #, c-format + msgid "invalid use of template-name '%E' in a declarator" + msgstr "uso inválido del nombre de plantilla `%E' en un declarador" + +-#: cp/decl.c:6695 ++#: cp/decl.c:6790 cp/decl.c:8124 + msgid "declaration of `%D' as non-function" + msgstr "la declaración de `%D' como una no función" + +-#: cp/decl.c:6772 ++#: cp/decl.c:6867 + msgid "`bool' is now a keyword" + msgstr "`bool' ahora es una palabra clave" + +-#: cp/decl.c:6774 ++#: cp/decl.c:6869 + msgid "extraneous `%T' ignored" + msgstr "`%T' extra ignorado" + +-#: cp/decl.c:6790 cp/decl.c:6834 ++#: cp/decl.c:6885 cp/decl.c:6929 + msgid "multiple declarations `%T' and `%T'" + msgstr "declaraciones múltiples `%T' y `%T'" + +-#: cp/decl.c:6803 ++#: cp/decl.c:6898 + msgid "ISO C++ does not support `long long'" + msgstr "ISO C++ no da soporte a `long long'" + +-#: cp/decl.c:6907 cp/decl.c:6910 ++#: cp/decl.c:7002 cp/decl.c:7005 + #, c-format + msgid "ISO C++ forbids declaration of `%s' with no type" + msgstr "ISO C++ prohíbe la declaración de `%s' sin tipo" + +-#: cp/decl.c:6941 ++#: cp/decl.c:7036 + #, c-format + msgid "short, signed or unsigned invalid for `%s'" + msgstr "short, signed ó unsigned inválido para `%s'" + +-#: cp/decl.c:6946 ++#: cp/decl.c:7041 + #, c-format + msgid "long and short specified together for `%s'" + msgstr "long y short especificados juntos para `%s'" + +-#: cp/decl.c:6957 ++#: cp/decl.c:7052 + #, c-format + msgid "signed and unsigned given together for `%s'" + msgstr "se dieron juntos signed y unsigned para `%s'" + +-#: cp/decl.c:7066 ++#: cp/decl.c:7161 + msgid "qualifiers are not allowed on declaration of `operator %T'" + msgstr "no se permiten calificadores en la declaración de `operator %T'" + +-#: cp/decl.c:7088 ++#: cp/decl.c:7183 + msgid "member `%D' cannot be declared both virtual and static" + msgstr "el miembro `%D' no puede ser declarado como virtual y static al mismo tiempo" + +-#: cp/decl.c:7097 ++#: cp/decl.c:7192 + msgid "`%T::%D' is not a valid declarator" + msgstr "`%T::%D' no es una declaración válida" + +-#: cp/decl.c:7109 ++#: cp/decl.c:7204 + msgid "storage class specifiers invalid in parameter declarations" + msgstr "especificadores de clase de almacenamiento inválidos en las declaraciones de parámetros" + +-#: cp/decl.c:7113 ++#: cp/decl.c:7208 + msgid "typedef declaration invalid in parameter declaration" + msgstr "declaración typedef inválida en la declaración de parámetros" + +-#: cp/decl.c:7126 ++#: cp/decl.c:7221 + msgid "virtual outside class declaration" + msgstr "declaración de virtual fuera de class" + +-#: cp/decl.c:7185 ++#: cp/decl.c:7280 + #, c-format + msgid "storage class specified for %s `%s'" + msgstr "clase de almacenamiento especificada por %s `%s'" + +-#: cp/decl.c:7220 ++#: cp/decl.c:7315 + #, c-format + msgid "top-level declaration of `%s' specifies `auto'" + msgstr "la declaración del nivel superior de `%s' especifica `auto'" + +-#: cp/decl.c:7232 ++#: cp/decl.c:7327 + msgid "storage class specifiers invalid in friend function declarations" + msgstr "especificadores de clase de almacenamiento inválidos en las declaraciones de funciones friend" + +-#: cp/decl.c:7397 ++#: cp/decl.c:7492 + msgid "destructor cannot be static member function" + msgstr "el destructor no puede ser una función miembro de tipo static" + +-#: cp/decl.c:7400 ++#: cp/decl.c:7495 + #, c-format + msgid "destructors may not be `%s'" + msgstr "los destructores no pueden ser `%s'" + +-#: cp/decl.c:7421 ++#: cp/decl.c:7516 + msgid "constructor cannot be static member function" + msgstr "el constructor no puede ser una función miembro de tipo static" + +-#: cp/decl.c:7424 ++#: cp/decl.c:7519 + msgid "constructors cannot be declared virtual" + msgstr "los constructores no pueden ser declarados virtual" + +-#: cp/decl.c:7429 ++#: cp/decl.c:7524 + #, c-format + msgid "constructors may not be `%s'" + msgstr "los constructores no pueden ser `%s'" + +-#: cp/decl.c:7439 ++#: cp/decl.c:7534 + msgid "return value type specifier for constructor ignored" + msgstr "el especificador de tipo del valor devuelto para el constructor es ignorado" + +-#: cp/decl.c:7458 ++#: cp/decl.c:7553 + #, c-format + msgid "can't initialize friend function `%s'" + msgstr "no se puede inicializar la función friend `%s'" + + #. Cannot be both friend and virtual. +-#: cp/decl.c:7462 ++#: cp/decl.c:7557 + msgid "virtual functions cannot be friends" + msgstr "las funciones virtual no pueden ser friend" + +-#: cp/decl.c:7467 ++#: cp/decl.c:7562 + msgid "friend declaration not in class definition" + msgstr "la declaración friend no está en una definición de clase" + +-#: cp/decl.c:7469 ++#: cp/decl.c:7564 + #, c-format + msgid "can't define friend function `%s' in a local class definition" + msgstr "no se puede definir la función friend `%s' en una definición de clase local" + +-#: cp/decl.c:7490 ++#: cp/decl.c:7585 + msgid "destructors may not have parameters" + msgstr "los destructores no pueden tener parámetros" + +-#: cp/decl.c:7510 cp/decl.c:7517 ++#: cp/decl.c:7605 cp/decl.c:7612 + msgid "cannot declare reference to `%#T'" + msgstr "no se pueden declarar referencias a `%#T'" + +-#: cp/decl.c:7511 ++#: cp/decl.c:7606 + msgid "cannot declare pointer to `%#T'" + msgstr "no se pueden declarar punteros a `%#T'" + +-#: cp/decl.c:7516 ++#: cp/decl.c:7611 + msgid "cannot declare pointer to `%#T' member" + msgstr "no se pueden declarar un puntero al miembro `%#T'" + +-#: cp/decl.c:7655 ++#: cp/decl.c:7750 + msgid "extra qualification `%T::' on member `%s' ignored" + msgstr "se ignora la calificación extra `%T::' en el miembro `%s'" + +-#: cp/decl.c:7671 ++#: cp/decl.c:7766 + msgid "cannot declare member function `%T::%s' within `%T'" + msgstr "no se puede declarar la función miembro `%T::%s' dentro de `%T'" + +-#: cp/decl.c:7686 ++#: cp/decl.c:7781 + msgid "cannot declare member `%T::%s' within `%T'" + msgstr "no se puede declarar el miembro `%T::%s' dentro de `%T'" + +-#: cp/decl.c:7766 ++#: cp/decl.c:7861 + msgid "data member may not have variably modified type `%T'" + msgstr "los datos miembro pueden no tener el tipo modificado variablemente `%T'" + +-#: cp/decl.c:7768 ++#: cp/decl.c:7863 + msgid "parameter may not have variably modified type `%T'" + msgstr "el parámetro puede no tener el tipo modificado variablemente `%T'" + + #. [dcl.fct.spec] The explicit specifier shall only be used in + #. declarations of constructors within a class definition. +-#: cp/decl.c:7776 ++#: cp/decl.c:7871 + msgid "only declarations of constructors can be `explicit'" + msgstr "solamente las declaraciones de constructores pueden ser `explicit'" + +-#: cp/decl.c:7784 ++#: cp/decl.c:7879 + #, c-format + msgid "non-member `%s' cannot be declared `mutable'" + msgstr "el no-miembro `%s' no puede ser declarado `mutable'" + +-#: cp/decl.c:7789 ++#: cp/decl.c:7884 + #, c-format + msgid "non-object member `%s' cannot be declared `mutable'" + msgstr "el miembro no-objeto `%s' no puede ser declarado `mutable'" + +-#: cp/decl.c:7795 ++#: cp/decl.c:7890 + #, c-format + msgid "function `%s' cannot be declared `mutable'" + msgstr "la función `%s' no puede ser declarada `mutable'" + +-#: cp/decl.c:7800 ++#: cp/decl.c:7895 + #, c-format + msgid "static `%s' cannot be declared `mutable'" + msgstr "static `%s' no puede ser declarado `mutable'" + +-#: cp/decl.c:7805 ++#: cp/decl.c:7900 + #, c-format + msgid "const `%s' cannot be declared `mutable'" + msgstr "const `%s' no puede ser declarado `mutable'" + +-#: cp/decl.c:7818 ++#: cp/decl.c:7913 + msgid "template-id `%D' used as a declarator" + msgstr "el id de plantilla `%D' se usa como un declarador" + +-#: cp/decl.c:7839 ++#: cp/decl.c:7934 + msgid "ISO C++ forbids nested type `%D' with same name as enclosing class" + msgstr "ISO C++ prohíbe el tipo anidado `%D' con el mismo nombre que la clase que lo contiene" + +-#: cp/decl.c:7847 ++#: cp/decl.c:7942 + msgid "%Jtypedef name may not be a nested-name-specifier" + msgstr "%Jel nombre del typedef puede no ser un especificador de nombre anidado" + +-#: cp/decl.c:7893 ++#: cp/decl.c:7988 + msgid "%Jinvalid type qualifier for non-member function type" + msgstr "%Jcalificador de tipo inválido para el tipo de función no miembro" + +-#: cp/decl.c:7956 ++#: cp/decl.c:8051 + msgid "type qualifiers specified for friend class declaration" + msgstr "se especificaron calificadores de tipo en una declaración de clase friend" + +-#: cp/decl.c:7961 ++#: cp/decl.c:8056 + msgid "`inline' specified for friend class declaration" + msgstr "se especificó `inline' para la declaración de clase friend" + +-#: cp/decl.c:7969 ++#: cp/decl.c:8064 + msgid "template parameters cannot be friends" + msgstr "los parámetros de la plantilla no pueden ser friends" + +-#: cp/decl.c:7971 ++#: cp/decl.c:8066 + msgid "friend declaration requires class-key, i.e. `friend class %T::%D'" + msgstr "la declaración friend requere una llave de clase, p.e. `friend class %T::%D'" + +-#: cp/decl.c:7975 ++#: cp/decl.c:8070 + msgid "friend declaration requires class-key, i.e. `friend %#T'" + msgstr "la declaración friend requiere una llave de clase, p.e. `friend %#T'" + +-#: cp/decl.c:7988 ++#: cp/decl.c:8083 + msgid "trying to make class `%T' a friend of global scope" + msgstr "tratando hacer que la clase `%T' sea un friend de ámbito global" + +-#: cp/decl.c:7999 ++#: cp/decl.c:8094 + msgid "invalid qualifiers on non-member function type" + msgstr "calificadores inválidos en el tipo de función no miembro" + +-#: cp/decl.c:8018 ++#: cp/decl.c:8113 + msgid "abstract declarator `%T' used as declaration" + msgstr "el declarador abstracto `%T' se utilizó como una declaración" + +-#: cp/decl.c:8030 +-msgid "unnamed variable or field declared void" +-msgstr "variable sin nombre o campo declarado void" +- +-#: cp/decl.c:8039 +-msgid "variable or field declared void" +-msgstr "variable o campo declarado void" +- +-#: cp/decl.c:8049 ++#: cp/decl.c:8139 + msgid "cannot use `::' in parameter declaration" + msgstr "no se puede usar `::' en la declaración de parámetros" + + #. Something like struct S { int N::j; }; +-#: cp/decl.c:8094 ++#: cp/decl.c:8184 + msgid "invalid use of `::'" + msgstr "uso inválido de `::'" + +-#: cp/decl.c:8106 ++#: cp/decl.c:8196 + msgid "function `%D' cannot be declared friend" + msgstr "la función `%D' no puede ser declarada friend" + +-#: cp/decl.c:8118 ++#: cp/decl.c:8208 + msgid "can't make `%D' into a method -- not in a class" + msgstr "no se puede hacer `%D' en un método -- no está en una clase" + +-#: cp/decl.c:8127 ++#: cp/decl.c:8217 + msgid "function `%D' declared virtual inside a union" + msgstr "la función `%s' se declaró virtual dentro de un union" + +-#: cp/decl.c:8136 ++#: cp/decl.c:8226 + msgid "`%D' cannot be declared virtual, since it is always static" + msgstr "`%D' no se puede declarar virtual, ya que siempre es static" + +-#: cp/decl.c:8215 ++#: cp/decl.c:8305 + msgid "field `%D' has incomplete type" + msgstr "el campo `%D' tiene tipo de dato incompleto" + +-#: cp/decl.c:8217 ++#: cp/decl.c:8307 + msgid "name `%T' has incomplete type" + msgstr "el nombre `%T' tiene tipo de dato incompleto" + +-#: cp/decl.c:8226 ++#: cp/decl.c:8316 + msgid " in instantiation of template `%T'" + msgstr " en la instanciación de la plantilla `%T'" + +-#: cp/decl.c:8236 ++#: cp/decl.c:8326 + #, c-format + msgid "`%s' is neither function nor member function; cannot be declared friend" + msgstr "`%s' no es ni función ni función miembro; no puede ser declarado friend" + +-#: cp/decl.c:8247 ++#: cp/decl.c:8337 + msgid "member functions are implicitly friends of their class" + msgstr "las funciones miembros son implícitamente friends de su clase" + +@@ -14460,91 +14508,91 @@ + #. the rest of the compiler does not correctly + #. handle the initialization unless the member is + #. static so we make it static below. +-#: cp/decl.c:8287 ++#: cp/decl.c:8377 + msgid "ISO C++ forbids initialization of member `%D'" + msgstr "ISO C++ prohíbe la inicialización del miembro `%D'" + +-#: cp/decl.c:8289 ++#: cp/decl.c:8379 + msgid "making `%D' static" + msgstr "haciendo a `%D' static" + +-#: cp/decl.c:8345 ++#: cp/decl.c:8435 + #, c-format + msgid "storage class `auto' invalid for function `%s'" + msgstr "la clase de almacenamiento `auto' es inválida para la función `%s'" + +-#: cp/decl.c:8347 ++#: cp/decl.c:8437 + #, c-format + msgid "storage class `register' invalid for function `%s'" + msgstr "la clase de almacenamiento `register' es inválida para la función `%s'" + +-#: cp/decl.c:8349 ++#: cp/decl.c:8439 + #, c-format + msgid "storage class `__thread' invalid for function `%s'" + msgstr "la clase de almacenamiento `__thread' es inválida para la función `%s'" + +-#: cp/decl.c:8360 ++#: cp/decl.c:8450 + #, c-format + msgid "storage class `static' invalid for function `%s' declared out of global scope" + msgstr "la clase de almacenamiento `static' es inválida para la función `%s' declarada fuera del ámbito global" + +-#: cp/decl.c:8362 ++#: cp/decl.c:8452 + #, c-format + msgid "storage class `inline' invalid for function `%s' declared out of global scope" + msgstr "la clase de almacenamiento `inline' es inválida para la función `%s' declarada fuera del ámbito global" + +-#: cp/decl.c:8369 ++#: cp/decl.c:8459 + #, c-format + msgid "virtual non-class function `%s'" + msgstr "la función virtual `%s' no es clase" + +-#: cp/decl.c:8400 ++#: cp/decl.c:8490 + msgid "cannot declare member function `%D' to have static linkage" + msgstr "no se puede declarar que la función miembro `%D' tenga enlazado estático" + + #. FIXME need arm citation +-#: cp/decl.c:8406 ++#: cp/decl.c:8496 + msgid "cannot declare static function inside another function" + msgstr "no se puede declarar una función static dentro de otra función" + +-#: cp/decl.c:8434 ++#: cp/decl.c:8524 + msgid "`static' may not be used when defining (as opposed to declaring) a static data member" + msgstr "`static' puede no ser utilizado cuando se define (opuesto a la declaración) un dato miembro static" + +-#: cp/decl.c:8440 ++#: cp/decl.c:8530 + msgid "static member `%D' declared `register'" + msgstr "se declaró el miembro static `%D' como `register'" + +-#: cp/decl.c:8445 ++#: cp/decl.c:8535 + msgid "cannot explicitly declare member `%#D' to have extern linkage" + msgstr "no se puede declarar explícitamente que el miembro `%#D' tenga un enlazado externo" + +-#: cp/decl.c:8585 ++#: cp/decl.c:8675 + msgid "default argument for `%#D' has type `%T'" + msgstr "el argumento por defecto de `%#D' tiene tipo `%T'" + +-#: cp/decl.c:8588 ++#: cp/decl.c:8678 + msgid "default argument for parameter of type `%T' has type `%T'" + msgstr "el argumento por defecto para el parámetro del tipo `%T' tiene el tipo `%T'" + +-#: cp/decl.c:8605 ++#: cp/decl.c:8695 + msgid "default argument `%E' uses local variable `%D'" + msgstr "el argumento por defecto `%E' usa la variable local `%D'" + +-#: cp/decl.c:8649 ++#: cp/decl.c:8739 + #, c-format + msgid "invalid string constant `%E'" + msgstr "constante de cadena inválida `%E'" + +-#: cp/decl.c:8651 ++#: cp/decl.c:8741 + msgid "invalid integer constant in parameter list, did you forget to give parameter name?" + msgstr "constante entera inválida en la lista de parámetros, ¿olvidó proporcionar nombre(s) de parámetro(s)?" + +-#: cp/decl.c:8689 ++#: cp/decl.c:8779 + msgid "parameter `%D' invalidly declared method type" + msgstr "el parámetro `%D' se declaró inválidamente como tipo de método" + +-#: cp/decl.c:8713 ++#: cp/decl.c:8803 + msgid "parameter `%D' includes %s to array of unknown bound `%T'" + msgstr "el parámetro `%D' incluye %s para la matriz `%T' de límite desconocido" + +@@ -14563,93 +14611,93 @@ + #. or implicitly defined), there's no need to worry about their + #. existence. Theoretically, they should never even be + #. instantiated, but that's hard to forestall. +-#: cp/decl.c:8872 ++#: cp/decl.c:8962 + msgid "invalid constructor; you probably meant `%T (const %T&)'" + msgstr "constructor inválido; tal vez quiso decir `%T (const %T&)'" + +-#: cp/decl.c:9000 ++#: cp/decl.c:9090 + msgid "`%D' must be a nonstatic member function" + msgstr "`%D' debe ser una función miembro que no sea static" + +-#: cp/decl.c:9006 ++#: cp/decl.c:9096 + msgid "`%D' must be either a non-static member function or a non-member function" + msgstr "`%D' debe ser una función miembro no estático o una función no miembro" + +-#: cp/decl.c:9023 ++#: cp/decl.c:9113 + msgid "`%D' must have an argument of class or enumerated type" + msgstr "`%D' debe tener un argumento de tipo clase o enumerado" + +-#: cp/decl.c:9058 ++#: cp/decl.c:9148 + #, c-format + msgid "conversion to %s%s will never use a type conversion operator" + msgstr "la conversión a %s%s nunca usará un operador de conversión de tipo" + + #. 13.4.0.3 +-#: cp/decl.c:9065 ++#: cp/decl.c:9155 + msgid "ISO C++ prohibits overloading operator ?:" + msgstr "ISO C++ prohíbe la sobrecarga del operador ?:" + +-#: cp/decl.c:9115 ++#: cp/decl.c:9205 + msgid "postfix `%D' must take `int' as its argument" + msgstr "el postfijo `%D' debe tomar `int' como su argumento" + +-#: cp/decl.c:9119 ++#: cp/decl.c:9209 + msgid "postfix `%D' must take `int' as its second argument" + msgstr "el postfijo `%D' debe tomar `int' como su segundo argumento" + +-#: cp/decl.c:9126 ++#: cp/decl.c:9216 + msgid "`%D' must take either zero or one argument" + msgstr "`%D' debe tomar cero o un argumentos" + +-#: cp/decl.c:9128 ++#: cp/decl.c:9218 + msgid "`%D' must take either one or two arguments" + msgstr "`%D' debe tomar uno o dos argumentos" + +-#: cp/decl.c:9149 ++#: cp/decl.c:9239 + msgid "prefix `%D' should return `%T'" + msgstr "el prefijo `%D' debe regresar `%T'" + +-#: cp/decl.c:9155 ++#: cp/decl.c:9245 + msgid "postfix `%D' should return `%T'" + msgstr "el postfijo `%D' debe regresar `%T'" + +-#: cp/decl.c:9164 ++#: cp/decl.c:9254 + msgid "`%D' must take `void'" + msgstr "`%D' debe tomar `void'" + +-#: cp/decl.c:9166 cp/decl.c:9174 ++#: cp/decl.c:9256 cp/decl.c:9264 + msgid "`%D' must take exactly one argument" + msgstr "`%D' debe tomar cero o un argumentos exactamente" + +-#: cp/decl.c:9176 ++#: cp/decl.c:9266 + msgid "`%D' must take exactly two arguments" + msgstr "`%s' debe tomar cero o dos argumentos exactamente" + +-#: cp/decl.c:9184 ++#: cp/decl.c:9274 + msgid "user-defined `%D' always evaluates both arguments" + msgstr "el `%D' definido por el usuario siempre evalúa ambos argumentos" + +-#: cp/decl.c:9198 ++#: cp/decl.c:9288 + msgid "`%D' should return by value" + msgstr "`%D' debe regresar por valor" + +-#: cp/decl.c:9210 cp/decl.c:9213 ++#: cp/decl.c:9300 cp/decl.c:9303 + msgid "`%D' cannot have default arguments" + msgstr "`%D' no puede tener argumentos por defecto" + +-#: cp/decl.c:9273 ++#: cp/decl.c:9363 + msgid "using typedef-name `%D' after `%s'" + msgstr " usando el nombre de definición de tipo `%D' después de `%s'" + +-#: cp/decl.c:9279 ++#: cp/decl.c:9369 + msgid "using template type parameter `%T' after `%s'" + msgstr "usando el parámetro de tipo plantilla `%T' después de `%s'" + +-#: cp/decl.c:9287 ++#: cp/decl.c:9377 + msgid "`%T' referred to as `%s'" + msgstr "se refiere a `%T' como `%s'" + +-#: cp/decl.c:9293 ++#: cp/decl.c:9383 + msgid "`%T' referred to as enum" + msgstr "se refiere a `%T' como un enum" + +@@ -14660,47 +14708,47 @@ + #. void f(class C); // No template header here + #. + #. then the required template argument is missing. +-#: cp/decl.c:9308 ++#: cp/decl.c:9398 + msgid "template argument required for `%s %T'" + msgstr "se requiere un argumento de plantilla para `%s %T'" + +-#: cp/decl.c:9453 ++#: cp/decl.c:9543 + msgid "use of enum `%#D' without previous declaration" + msgstr "uso del enum `%#D' sin declaración previa" + +-#: cp/decl.c:9471 ++#: cp/decl.c:9561 + msgid "redeclaration of `%T' as a non-template" + msgstr "redeclaración de `%T' como algo que no es plantilla" + +-#: cp/decl.c:9517 ++#: cp/decl.c:9607 + msgid "derived union `%T' invalid" + msgstr "union derivada `%T' inválida" + +-#: cp/decl.c:9570 ++#: cp/decl.c:9660 + msgid "base type `%T' fails to be a struct or class type" + msgstr "el tipo base `%T' falla en ser un tipo struct o clase" + +-#: cp/decl.c:9578 ++#: cp/decl.c:9668 + msgid "recursive type `%T' undefined" + msgstr "tipo recursivo `%T' sin definir" + +-#: cp/decl.c:9580 ++#: cp/decl.c:9670 + msgid "duplicate base type `%T' invalid" + msgstr "tipo base duplicado `%T' inválido" + +-#: cp/decl.c:9658 ++#: cp/decl.c:9748 + msgid "Java class '%T' cannot have multiple bases" + msgstr "la clase Java '%T' no puede tener bases múltiples" + +-#: cp/decl.c:9660 ++#: cp/decl.c:9750 + msgid "Java class '%T' cannot have virtual bases" + msgstr "la clase Java '%T' no puede tener bases virtuales" + +-#: cp/decl.c:9700 ++#: cp/decl.c:9790 + msgid "multiple definition of `%#T'" + msgstr "definición múltiple de `%#T'" + +-#: cp/decl.c:9701 ++#: cp/decl.c:9791 + msgid "%Jprevious definition here" + msgstr "%Jdefinición previa aquí" + +@@ -14708,47 +14756,47 @@ + #. + #. IF no integral type can represent all the enumerator values, the + #. enumeration is ill-formed. +-#: cp/decl.c:9836 ++#: cp/decl.c:9926 + msgid "no integral type can represent all of the enumerator values for `%T'" + msgstr "ningún tipo integral puede representar todos los valores de enumerador de `%T'" + +-#: cp/decl.c:9926 ++#: cp/decl.c:10023 + msgid "enumerator value for `%D' not integer constant" + msgstr "el valor de enumerador para `%D' no es una constante entera" + +-#: cp/decl.c:9946 ++#: cp/decl.c:10043 + msgid "overflow in enumeration values at `%D'" + msgstr "desbordamiento en valores de enumeración en `%D'" + +-#: cp/decl.c:10015 ++#: cp/decl.c:10112 + msgid "return type `%#T' is incomplete" + msgstr "el tipo de devolución `%#T' es un tipo de dato incompleto" + +-#: cp/decl.c:10133 ++#: cp/decl.c:10230 + msgid "return type for `main' changed to `int'" + msgstr "el tipo de devolución para `main' cambió a `int'" + +-#: cp/decl.c:10162 ++#: cp/decl.c:10259 + msgid "`%D' implicitly declared before its definition" + msgstr "`%D' declarado implícitamente antes de su definición" + +-#: cp/decl.c:10184 cp/typeck.c:6071 ++#: cp/decl.c:10281 cp/typeck.c:6092 + msgid "`operator=' should return a reference to `*this'" + msgstr "`operator=' debe devolver una referencia a `*this'" + +-#: cp/decl.c:10453 ++#: cp/decl.c:10550 + msgid "parameter `%D' declared void" + msgstr "el parámetro `%D' se declaró void" + +-#: cp/decl.c:10919 ++#: cp/decl.c:11016 + msgid "invalid member function declaration" + msgstr "declaración de la función miembro inválida" + +-#: cp/decl.c:10936 ++#: cp/decl.c:11033 + msgid "`%D' is already defined in class `%T'" + msgstr "`%D' ya se definió en la clase `%T'" + +-#: cp/decl.c:11149 ++#: cp/decl.c:11246 + msgid "static member function `%#D' declared with type qualifiers" + msgstr "la función miembro static `%#D' es declarada con calificadores de tipo" + +@@ -14796,7 +14844,7 @@ + msgid "invalid use of `virtual' in template declaration of `%#D'" + msgstr "uso inválido de `virtual' en la declaración de plantilla de `%#D'" + +-#: cp/decl2.c:541 cp/pt.c:2834 ++#: cp/decl2.c:541 cp/pt.c:2878 + msgid "template declaration of `%#D'" + msgstr "redeclaración en plantilla de `%#D'" + +@@ -14868,40 +14916,40 @@ + msgid "anonymous struct not inside named type" + msgstr "struct anónimo no se encuentra dentro de un tipo nombrado" + +-#: cp/decl2.c:1218 ++#: cp/decl2.c:1224 + msgid "namespace-scope anonymous aggregates must be static" + msgstr "los agregados anónimos de alcance de nombre de espacio deben ser static" + +-#: cp/decl2.c:1225 ++#: cp/decl2.c:1231 + msgid "anonymous union with no members" + msgstr "union anónima sin miembros" + +-#: cp/decl2.c:1259 ++#: cp/decl2.c:1265 + msgid "`operator new' must return type `%T'" + msgstr "`operator new' debe devolver el tipo `%T'" + +-#: cp/decl2.c:1267 ++#: cp/decl2.c:1273 + msgid "`operator new' takes type `size_t' (`%T') as first parameter" + msgstr "`operator new' toma el tipo `size_t' (`%T') como primer argumento" + +-#: cp/decl2.c:1293 ++#: cp/decl2.c:1299 + msgid "`operator delete' must return type `%T'" + msgstr "`operator delete' debe devolver el tipo `%T'" + +-#: cp/decl2.c:1301 ++#: cp/decl2.c:1307 + msgid "`operator delete' takes type `%T' as first parameter" + msgstr "`operator delete' toma el tipo `%T' como primer argumento" + +-#: cp/decl2.c:2810 ++#: cp/decl2.c:2816 + msgid "inline function `%D' used but never defined" + msgstr "se usa la función inline `%D' pero nunca se definió" + +-#: cp/decl2.c:2956 ++#: cp/decl2.c:2962 + msgid "default argument missing for parameter %P of `%+#D'" + msgstr "falta el argumento por defecto para el parámetro %P de `%+#D'" + + #. damn ICE suppression +-#: cp/error.c:2387 ++#: cp/error.c:2385 + #, c-format + msgid "unexpected letter `%c' in locate_error\n" + msgstr "letra `%c' inesperada en locate_error\n" +@@ -14928,7 +14976,7 @@ + msgid "throwing NULL, which has integral, not pointer type" + msgstr "arrojando NULL, que tiene un tipo integral, que no es puntero" + +-#: cp/except.c:598 cp/init.c:2038 ++#: cp/except.c:598 cp/init.c:2047 + msgid "`%D' should never be overloaded" + msgstr "`%D' nunca se debe sobrecargar" + +@@ -15006,7 +15054,7 @@ + msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning" + msgstr "(si esta no es su intención, asegúrese que la plantilla de la función ya ha sido declarada y agregue <> aquí después del nombre de la función) -Wno-non-template-friend desactiva este aviso" + +-#: cp/g++spec.c:229 java/jvspec.c:415 ++#: cp/g++spec.c:232 java/jvspec.c:415 + #, c-format + msgid "argument to `%s' missing\n" + msgstr "falta el argumento para `%s'\n" +@@ -15131,59 +15179,59 @@ + msgid "incomplete type `%T' does not have member `%D'" + msgstr "el tipo incompleto `%T' no tiene al miembro `%D'" + +-#: cp/init.c:1459 ++#: cp/init.c:1460 + msgid "`%D' is not a member of type `%T'" + msgstr "`%D' no es un miembro de tipo `%T'" + +-#: cp/init.c:1478 ++#: cp/init.c:1487 + msgid "invalid pointer to bit-field `%D'" + msgstr "puntero inválido al campo de bit `%D'" + +-#: cp/init.c:1580 ++#: cp/init.c:1589 + msgid "invalid use of non-static member function `%D'" + msgstr "uso inválido de la función miembro no static `%D'" + +-#: cp/init.c:1586 cp/semantics.c:1236 ++#: cp/init.c:1595 cp/semantics.c:1236 + msgid "invalid use of non-static data member `%D'" + msgstr "uso inválido del dato miembro no static `%D'" + +-#: cp/init.c:1725 ++#: cp/init.c:1734 + msgid "new of array type fails to specify size" + msgstr "new de matriz falla al especificar el tamaño" + +-#: cp/init.c:1736 ++#: cp/init.c:1745 + msgid "size in array new must have integral type" + msgstr "el tamaño de la matriz nueva debe tener un tipo integral" + +-#: cp/init.c:1742 ++#: cp/init.c:1751 + msgid "zero size array reserves no space" + msgstr "la matriz de tamaño cero no reserva espacio" + +-#: cp/init.c:1809 ++#: cp/init.c:1818 + msgid "new cannot be applied to a reference type" + msgstr "new no se puede aplicar a un tipo de referencia" + +-#: cp/init.c:1815 ++#: cp/init.c:1824 + msgid "new cannot be applied to a function type" + msgstr "new no se puede aplicar a un tipo de función" + +-#: cp/init.c:1861 ++#: cp/init.c:1870 + msgid "call to Java constructor, while `jclass' undefined" + msgstr "llamado a constructor Java, mientras `jclass' está indefinido" + +-#: cp/init.c:1877 ++#: cp/init.c:1886 + msgid "can't find class$" + msgstr "no se puede encontrar class$" + +-#: cp/init.c:2004 ++#: cp/init.c:2013 + msgid "invalid type `void' for new" + msgstr "tipo `void' inválido para new" + +-#: cp/init.c:2014 ++#: cp/init.c:2023 + msgid "uninitialized const in `new' of `%#T'" + msgstr "const sin inicializar en `new' de `%#T'" + +-#: cp/init.c:2033 ++#: cp/init.c:2042 + #, c-format + msgid "call to Java constructor with `%s' undefined" + msgstr "llamado a constructor Java con `%s' sin definir" +@@ -15191,39 +15239,39 @@ + #. See PR 15967. This should never happen (and it is + #. fixed correctly in mainline), but on the release branch + #. we prefer this less-intrusive approacch. +-#: cp/init.c:2077 ++#: cp/init.c:2086 + msgid "no suitable or ambiguous `%D' found in class `%T'" + msgstr "se encontró un `%D' ambiguo o no adecuado en la clase `%T'" + +-#: cp/init.c:2083 ++#: cp/init.c:2092 + msgid "request for member `%D' is ambiguous" + msgstr "la petición para el miembro `%D' es ambigua" + +-#: cp/init.c:2203 ++#: cp/init.c:2212 + msgid "ISO C++ forbids initialization in array new" + msgstr "ISO C++ prohíbe la inicialización en la matriz new" + +-#: cp/init.c:2677 ++#: cp/init.c:2686 + msgid "initializer ends prematurely" + msgstr "el inicializador termina prematuramente" + +-#: cp/init.c:2734 ++#: cp/init.c:2743 + msgid "cannot initialize multi-dimensional array with initializer" + msgstr "no se pueden inicializar matrices multidimensionales con el inicializador" + +-#: cp/init.c:2895 ++#: cp/init.c:2904 + msgid "possible problem detected in invocation of delete operator:" + msgstr "se detectó un posible problema en la invocación del operador delete:" + +-#: cp/init.c:2898 ++#: cp/init.c:2907 + msgid "neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined." + msgstr "no se llamará ni al destructor ni al operador delete específico de la clase, aún si se declaran cuando se defina la clase." + +-#: cp/init.c:2919 ++#: cp/init.c:2928 + msgid "unknown array size in delete" + msgstr "tamaño de matriz desconocida en delete" + +-#: cp/init.c:3184 ++#: cp/init.c:3193 + msgid "type to vector delete is neither pointer or array type" + msgstr "el tipo de vector delete no es del tipo puntero ni matriz" + +@@ -15288,15 +15336,15 @@ + msgid "(if you use `-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)" + msgstr "(si utiliza `-fpermissive', G++ aceptará su código, pero permitir el uso de un nombre sin declarar es obsoleto)" + +-#: cp/mangle.c:2037 ++#: cp/mangle.c:2050 + msgid "call_expr cannot be mangled due to a defect in the C++ ABI" + msgstr "call_expr no se puede decodificar debido a un defecto en la ABI de C++" + +-#: cp/mangle.c:2090 ++#: cp/mangle.c:2103 + msgid "omitted middle operand to `?:' operand cannot be mangled" + msgstr "se omitió el operando de enmedio de `?': no se puede revolver el operando" + +-#: cp/mangle.c:2389 ++#: cp/mangle.c:2402 + msgid "the mangled name of `%D' will change in a future version of GCC" + msgstr "el nombre revuelto de `%D' cambiará en una versión futura de GCC" + +@@ -15437,7 +15485,7 @@ + + #. It's a nested name with template parameter dependent scope. + #. This can only be using-declaration for class member. +-#: cp/name-lookup.c:2126 cp/name-lookup.c:2140 cp/name-lookup.c:3380 ++#: cp/name-lookup.c:2126 cp/name-lookup.c:2140 cp/name-lookup.c:3362 + msgid "`%T' is not a namespace" + msgstr "`%T' no es un nombre de espacio" + +@@ -15472,86 +15520,86 @@ + msgid "using-declaration cannot name destructor" + msgstr "uan declaración de uso no puede nombrar al destructor" + +-#: cp/name-lookup.c:3005 ++#: cp/name-lookup.c:2984 + msgid "declaration of `%D' not in a namespace surrounding `%D'" + msgstr "la declaración de `%D' no está en un espacio de nombres alrededor de `%D'" + +-#: cp/name-lookup.c:3045 ++#: cp/name-lookup.c:3024 + msgid "`%D' should have been declared inside `%D'" + msgstr "`%D' debería ser declarado dentro de `%D'" + +-#: cp/name-lookup.c:3109 ++#: cp/name-lookup.c:3088 + msgid "namespace alias `%D' not allowed here, assuming `%D'" + msgstr "no se permite aquí el alias del espacio de nombres `%D', asumiendo que es `%D'" + + #. The parser did not find it, so it's not there. +-#: cp/name-lookup.c:3224 ++#: cp/name-lookup.c:3203 + msgid "unknown namespace `%D'" + msgstr "espacio de nombres `%D' desconocido" + +-#: cp/name-lookup.c:3374 ++#: cp/name-lookup.c:3356 + msgid "namespace `%T' undeclared" + msgstr "espacio de nombres `%T' sin declarar" + +-#: cp/name-lookup.c:3407 ++#: cp/name-lookup.c:3389 + msgid "strong using only meaningful at namespace scope" + msgstr "el uso de strong solamente tiene significado en el ámbito de espacio de nombres" + +-#: cp/name-lookup.c:3414 ++#: cp/name-lookup.c:3396 + msgid "`%D' attribute directive ignored" + msgstr "se ignora la directiva de atributo `%D'" + +-#: cp/name-lookup.c:3547 ++#: cp/name-lookup.c:3529 + msgid "use of `%D' is ambiguous" + msgstr "el uso de `%D' es ambiguo" + +-#: cp/name-lookup.c:3548 ++#: cp/name-lookup.c:3530 + msgid " first declared as `%#D' here" + msgstr " declarado inicialmente como `%#D' aquí" + +-#: cp/name-lookup.c:3551 ++#: cp/name-lookup.c:3533 + msgid " also declared as `%#D' here" + msgstr " también declarado como `%#D' aquí" + +-#: cp/name-lookup.c:3566 ++#: cp/name-lookup.c:3548 + msgid "`%D' denotes an ambiguous type" + msgstr "`%D' denota un tipo ambiguo" + +-#: cp/name-lookup.c:3567 ++#: cp/name-lookup.c:3549 + msgid "%J first type here" + msgstr "%J primer tipo aquí" + +-#: cp/name-lookup.c:3568 ++#: cp/name-lookup.c:3550 + msgid "%J other type here" + msgstr "%J otro tipo aquí" + + #. This happens for A::B where B is a template, and there are no + #. template arguments. +-#: cp/name-lookup.c:3633 cp/typeck.c:1792 ++#: cp/name-lookup.c:3615 cp/typeck.c:1792 + msgid "invalid use of `%D'" + msgstr "uso inválido de `%D'" + +-#: cp/name-lookup.c:3674 ++#: cp/name-lookup.c:3656 + msgid "`%D::%D' is not a template" + msgstr "`%D::%D' no es una plantilla" + +-#: cp/name-lookup.c:3691 ++#: cp/name-lookup.c:3673 + msgid "`%D' undeclared in namespace `%D'" + msgstr "`%D' no declarado en el espacio de nombres `%D'" + +-#: cp/name-lookup.c:4153 ++#: cp/name-lookup.c:4135 + msgid "`%D' is not a function," + msgstr "`%D' no es una función," + +-#: cp/name-lookup.c:4154 ++#: cp/name-lookup.c:4136 + msgid " conflict with `%D'" + msgstr " tiene conflicto con `%D'" + +-#: cp/name-lookup.c:4911 ++#: cp/name-lookup.c:4893 + msgid "XXX entering pop_everything ()\n" + msgstr "XXX entrando a pop_everything ()\n" + +-#: cp/name-lookup.c:4920 ++#: cp/name-lookup.c:4902 + msgid "XXX leaving pop_everything ()\n" + msgstr "XXX saliendo de pop_everything ()\n" + +@@ -15563,7 +15611,7 @@ + msgid "`%D::%D' has not been declared" + msgstr "`%D::%D' no puede ser declarado" + +-#: cp/parser.c:1809 cp/semantics.c:2308 ++#: cp/parser.c:1809 cp/semantics.c:2305 + msgid "`::%D' has not been declared" + msgstr "`::%D' no puede ser declarado" + +@@ -15587,7 +15635,7 @@ + msgid "new types may not be defined in a return type" + msgstr "no se pueden definir tipos nuevos en una devolución de tipo" + +-#: cp/parser.c:1888 cp/pt.c:4196 ++#: cp/parser.c:1888 cp/pt.c:4238 + msgid "`%T' is not a template" + msgstr "`%T' no es una plantilla" + +@@ -15635,179 +15683,179 @@ + msgid "typedef-name `%D' used as destructor declarator" + msgstr "se usa el nombre de typedef `%D' como un declarador de destructor" + +-#: cp/parser.c:3638 ++#: cp/parser.c:3648 + msgid "ISO C++ forbids compound-literals" + msgstr "ISO C++ prohíbe literales compuestos" + +-#: cp/parser.c:4461 ++#: cp/parser.c:4498 + msgid "array bound forbidden after parenthesized type-id" + msgstr "se prohíbe el límite de matriz después del id de tipo entre paréntesis" + +-#: cp/parser.c:4462 ++#: cp/parser.c:4499 + msgid "try removing the parentheses around the type-id" + msgstr "intente eliminando los paréntesis alrededor del id de tipo" + +-#: cp/parser.c:4624 ++#: cp/parser.c:4661 + msgid "expression in new-declarator must have integral or enumeration type" + msgstr "la expresión en el declarador new debe tener un tipo integral o de enumeración" + +-#: cp/parser.c:4805 ++#: cp/parser.c:4842 + msgid "use of old-style cast" + msgstr "uso de la conversión de estilo antiguo" + +-#: cp/parser.c:5550 ++#: cp/parser.c:5587 + #, c-format + msgid "case label `%E' not within a switch statement" + msgstr "la etiqueta case `%E' no se encuentra dentro de una declaración switch" + +-#: cp/parser.c:6092 ++#: cp/parser.c:6130 + msgid "ISO C++ forbids computed gotos" + msgstr "ISO C++ prohíbe gotos calculados" + +-#: cp/parser.c:6212 ++#: cp/parser.c:6250 + msgid "extra `;'" + msgstr "`;' extra" + +-#: cp/parser.c:6507 ++#: cp/parser.c:6545 + msgid "mixing declarations and function-definitions is forbidden" + msgstr "se prohibe mezclar declaraciones y definiciones de funciones" + +-#: cp/parser.c:6645 ++#: cp/parser.c:6683 + msgid "duplicate `friend'" + msgstr "`friend' duplicado" + +-#: cp/parser.c:6794 ++#: cp/parser.c:6832 + msgid "class definition may not be declared a friend" + msgstr "la definición de clase no se puede declarar como friend" + +-#: cp/parser.c:7109 ++#: cp/parser.c:7147 + msgid "only constructors take base initializers" + msgstr "solamente los constructores toman inicializadores base" + +-#: cp/parser.c:7160 ++#: cp/parser.c:7198 + msgid "anachronistic old-style base class initializer" + msgstr "inicializador de clase base de estilo antiguo anacrónico" + +-#: cp/parser.c:7201 ++#: cp/parser.c:7239 + msgid "keyword `typename' not allowed in this context (a qualified member initializer is implicitly a type)" + msgstr "no se permite la palabra clave `typename' en este contexto (un inicializador de miembro calificado implícitamente es un tipo)" + + #. Warn that we do not support `export'. +-#: cp/parser.c:7563 ++#: cp/parser.c:7601 + msgid "keyword `export' not implemented, and will be ignored" + msgstr "la palabra clave `export' no está implementada, y será ignorada" + + #. Otherwise, emit an error about the invalid digraph, but continue + #. parsing because we got our argument list. +-#: cp/parser.c:7923 ++#: cp/parser.c:7961 + msgid "`<::' cannot begin a template-argument list" + msgstr "`<::' no puede empezar una lista de argumentos de plantilla" + +-#: cp/parser.c:7924 ++#: cp/parser.c:7962 + msgid "`<:' is an alternate spelling for `['. Insert whitespace between `<' and `::'" + msgstr "`<:' es una forma alternativa para escribir `['. Inserte espacios entre `<' y `::'" + +-#: cp/parser.c:7931 ++#: cp/parser.c:7969 + msgid "(if you use `-fpermissive' G++ will accept your code)" + msgstr "(si utiliza `-fpermissive' G++ aceptará su código)" + + #. Explain what went wrong. +-#: cp/parser.c:8106 ++#: cp/parser.c:8145 + msgid "non-template `%D' used as template" + msgstr "se usa `%D' que no es plantilla como plantilla" + +-#: cp/parser.c:8107 ++#: cp/parser.c:8146 + msgid "use `%T::template %D' to indicate that it is a template" + msgstr "utilice `%T::template %D' para indicar que es una plantilla" + +-#: cp/parser.c:9058 ++#: cp/parser.c:9102 + msgid "using `typename' outside of template" + msgstr "usando `typename' fuera de la plantilla" + +-#: cp/parser.c:9180 ++#: cp/parser.c:9224 + msgid "expected type-name" + msgstr "se esperaba un nombre de tipo" + +-#: cp/parser.c:9239 ++#: cp/parser.c:9283 + msgid "type attributes are honored only at type definition" + msgstr "las definiciones de atributos solamente se honran en las definiciones de tipo" + + #. [namespace.udecl] + #. + #. A using declaration shall not name a template-id. +-#: cp/parser.c:9622 ++#: cp/parser.c:9666 + msgid "a template-id may not appear in a using-declaration" + msgstr "un id de plantilla no puede aparecer en una declaración de uso" + +-#: cp/parser.c:9949 ++#: cp/parser.c:9986 + msgid "an asm-specification is not allowed on a function-definition" + msgstr "no se permite una especificación de asm en una definición de función" + +-#: cp/parser.c:9951 ++#: cp/parser.c:9988 + msgid "attributes are not allowed on a function-definition" + msgstr "no se permiten atributos en una definición de función" + +-#: cp/parser.c:10084 ++#: cp/parser.c:10121 + msgid "attributes after parenthesized initializer ignored" + msgstr "se ignoran los atributos después del inicializador entre paréntesis" + +-#: cp/parser.c:10540 ++#: cp/parser.c:10591 + msgid "`%T::%D' is not a type" + msgstr "`%T::%D' no es un tipo" + +-#: cp/parser.c:11288 ++#: cp/parser.c:11341 + msgid "file ends in default argument" + msgstr "el fichero termina en el argumento por defecto" + +-#: cp/parser.c:11344 ++#: cp/parser.c:11397 + msgid "deprecated use of default argument for parameter of non-function" + msgstr "uso obsoleto del argumento por defecto para el parámetro de una no función" + +-#: cp/parser.c:11347 ++#: cp/parser.c:11400 + msgid "default arguments are only permitted for function parameters" + msgstr "los argumentos por defecto sólo se permiten para parámetros de función" + +-#: cp/parser.c:12078 ++#: cp/parser.c:12166 + msgid "declaration of `%D' in `%D' which does not enclose `%D'" + msgstr "la declaración de `%D' en `%D' la cual no incluye a `%D'" + +-#: cp/parser.c:12091 ++#: cp/parser.c:12179 + msgid "extra qualification ignored" + msgstr "se ignora la calificación extra" + +-#: cp/parser.c:12102 ++#: cp/parser.c:12190 + msgid "an explicit specialization must be preceded by 'template <>'" + msgstr "una especialización explícita debe ser precedida por 'template <>'" + +-#: cp/parser.c:12385 ++#: cp/parser.c:12473 + msgid "extra semicolon" + msgstr "punto y coma extra" + +-#: cp/parser.c:12403 ++#: cp/parser.c:12491 + msgid "a class-key must be used when declaring a friend" + msgstr "se debe usar una llave clase cuando se declara un friend" + +-#: cp/parser.c:12434 ++#: cp/parser.c:12522 + msgid "friend declaration does not name a class or function" + msgstr "la declaración friend no nombra una clase o función" + +-#: cp/parser.c:12605 ++#: cp/parser.c:12694 + msgid "pure-specifier on function-definition" + msgstr "especificador puro en la definición de función" + +-#: cp/parser.c:12878 ++#: cp/parser.c:12967 + msgid "keyword `typename' not allowed outside of templates" + msgstr "no se permite la palabra clave `typename' fuera de las plantillas" + +-#: cp/parser.c:12880 ++#: cp/parser.c:12969 + msgid "keyword `typename' not allowed in this context (the base class is implicitly a type)" + msgstr "no se permite la palabra clave `typename' en este contexto (la clase base implícitamente es un tipo)" + +-#: cp/parser.c:13700 ++#: cp/parser.c:13790 + msgid "reference to `%D' is ambiguous" + msgstr "la referencia a `%D' es ambigua" + +-#: cp/parser.c:13874 ++#: cp/parser.c:13964 + msgid "too few template-parameter-lists" + msgstr "muy pocas listas de parámetros de plantilla" + +@@ -15815,44 +15863,44 @@ + #. something like: + #. + #. template template void S::f(); +-#: cp/parser.c:13889 ++#: cp/parser.c:13979 + msgid "too many template-parameter-lists" + msgstr "demasiadas listas de parámetros de plantilla" + + #. If begin_function_definition didn't like the definition, skip + #. the entire function. +-#: cp/parser.c:14185 ++#: cp/parser.c:14275 + msgid "invalid function declaration" + msgstr "declaración inválida de función" + + #. Issue an error message. +-#: cp/parser.c:14222 ++#: cp/parser.c:14312 + msgid "named return values are no longer supported" + msgstr "los valores de devolución nombrados ya no tiene soporte" + +-#: cp/parser.c:14561 ++#: cp/parser.c:14651 + msgid "`>>' should be `> >' within a nested template argument list" + msgstr "`>>' debe ser `> >' dentro de una lista de argumentos plantilla anidados" + + #. If this is not a nested template argument list, the '>>' is + #. a typo for '>'. Emit an error message and continue. +-#: cp/parser.c:14569 ++#: cp/parser.c:14659 + msgid "spurious `>>', use `>' to terminate a template argument list" + msgstr "`>>' sobrante, use `>' para terminar una lista de argumentos de plantilla" + +-#: cp/parser.c:14574 ++#: cp/parser.c:14664 + msgid "missing `>' to terminate the template argument list" + msgstr "falta un `>' para terminar la lista de argumentos de plantilla" + +-#: cp/parser.c:15062 ++#: cp/parser.c:15149 + msgid "`%s' tag used in naming `%#T'" + msgstr "se usó la marca `%s' al nombrar a`%#T'" + +-#: cp/parser.c:15082 ++#: cp/parser.c:15169 + msgid "%D redeclared with different access" + msgstr "`%D' redeclarado con acceso diferente" + +-#: cp/parser.c:15099 ++#: cp/parser.c:15186 + msgid "`template' (as a disambiguator) is only allowed within templates" + msgstr "`template' (para eliminar ambigüedades) sólo se permite dentro de plantillas" + +@@ -15872,81 +15920,85 @@ + msgid "enclosing class templates are not explicitly specialized" + msgstr "las plantillas de clase contenidas no son especializadas explícitamente" + +-#: cp/pt.c:739 cp/pt.c:780 +-msgid "specializing `%#T' in different namespace" +-msgstr "especializando `%#T' en diferentes espacios de nombres" ++#: cp/pt.c:733 ++msgid "specialization of `%D' in different namespace" ++msgstr "especialización de `%D' en diferentes espacios de nombres" + +-#: cp/pt.c:740 cp/pt.c:781 ++#: cp/pt.c:734 cp/pt.c:803 + msgid " from definition of `%#D'" + msgstr " de la definición de `%#D'" + +-#: cp/pt.c:748 ++#: cp/pt.c:770 + msgid "specialization of `%T' after instantiation" + msgstr "especialización de `%T' después de la instanciación" + +-#: cp/pt.c:795 ++#: cp/pt.c:802 ++msgid "specializing `%#T' in different namespace" ++msgstr "especializando `%#T' en diferentes espacios de nombres" ++ ++#: cp/pt.c:817 + msgid "specialization `%T' after instantiation `%T'" + msgstr "especialización de `%T' después de la instanciación `%T'" + +-#: cp/pt.c:807 ++#: cp/pt.c:829 + msgid "explicit specialization of non-template `%T'" + msgstr "especialización explícita de `%T' que no es plantilla" + +-#: cp/pt.c:1067 ++#: cp/pt.c:1089 + msgid "specialization of %D after instantiation" + msgstr "especialización de %D después de la instanciación" + +-#: cp/pt.c:1192 ++#: cp/pt.c:1220 + msgid "%s %+#D" + msgstr "%s %+#D" + +-#: cp/pt.c:1241 ++#: cp/pt.c:1269 + msgid "`%D' is not a function template" + msgstr "`%D' no es una plantilla de función" + +-#: cp/pt.c:1389 ++#: cp/pt.c:1417 + msgid "template-id `%D' for `%+D' does not match any template declaration" + msgstr "el id de plantilla `%D' para `%+D' no coincide con ninguna declaración de plantilla" + +-#: cp/pt.c:1397 ++#: cp/pt.c:1425 + msgid "ambiguous template specialization `%D' for `%+D'" + msgstr "especialización de plantilla ambigua `%D' para `%+D'" + + #. This case handles bogus declarations like template <> + #. template void f(); +-#: cp/pt.c:1620 cp/pt.c:1694 ++#: cp/pt.c:1648 cp/pt.c:1722 + msgid "template-id `%D' in declaration of primary template" + msgstr "id de plantilla `%D' en la declaración de la plantilla primaria" + +-#: cp/pt.c:1633 ++#: cp/pt.c:1661 + msgid "template parameter list used in explicit instantiation" + msgstr "se usó una lista de parámetros de plantilla en una instanciación explícita" + +-#: cp/pt.c:1639 ++#: cp/pt.c:1667 + msgid "definition provided for explicit instantiation" + msgstr "se provee una definición para instanciación explícita" + +-#: cp/pt.c:1645 ++#: cp/pt.c:1673 + msgid "too many template parameter lists in declaration of `%D'" + msgstr "demasiadas listas de parámetros de plantilla en la declaración de `%D'" + +-#: cp/pt.c:1661 ++#: cp/pt.c:1689 + msgid "too few template parameter lists in declaration of `%D'" + msgstr "muy pocas listas de parámetros de plantilla en la declaración de `%D'" + +-#: cp/pt.c:1678 ++#: cp/pt.c:1706 + msgid "explicit specialization not preceded by `template <>'" + msgstr "especialización explícita no precedida por `template <>'" + +-#: cp/pt.c:1691 ++#: cp/pt.c:1719 + msgid "partial specialization `%D' of function template" + msgstr "especialización parcial `%D' de la plantilla de función" + +-#: cp/pt.c:1723 ++#: cp/pt.c:1751 + msgid "default argument specified in explicit specialization" + msgstr "se especificó un argumento por defecto en la especialización explícita" + +-#: cp/pt.c:1727 ++#: cp/pt.c:1755 + msgid "template specialization with C linkage" + msgstr "especialización de plantilla con enlace C" + +@@ -15958,106 +16010,115 @@ + #. program is ill-formed. + #. + #. Similar language is found in [temp.explicit]. +-#: cp/pt.c:1811 ++#: cp/pt.c:1839 + msgid "specialization of implicitly-declared special member function" + msgstr "especialización de la función miembro especial declarada implícitamente" + +-#: cp/pt.c:1855 ++#: cp/pt.c:1883 + msgid "no member function `%D' declared in `%T'" + msgstr "la función no miembro `%D' se declaró en `%T'" + + #. There are two many template parameter lists. +-#: cp/pt.c:2005 ++#: cp/pt.c:2033 + msgid "too many template parameter lists in declaration of `%T'" + msgstr "demasiadas listas de parámetros de plantilla en la declaración de `%T'" + +-#: cp/pt.c:2098 ++#: cp/pt.c:2126 + msgid " shadows template parm `%#D'" + msgstr " oscurece el parámetro de plantilla `%#D'" + +-#: cp/pt.c:2495 ++#: cp/pt.c:2523 + msgid "template parameters not used in partial specialization:" + msgstr "no se usan los parámetros de plantilla en la especialización parcial:" + +-#: cp/pt.c:2499 ++#: cp/pt.c:2527 + msgid " `%D'" + msgstr " `%D'" + +-#: cp/pt.c:2511 ++#: cp/pt.c:2539 + msgid "partial specialization `%T' does not specialize any template arguments" + msgstr "la especialización parcial `%T' no especializa ningún argumento de plantilla" + +-#: cp/pt.c:2536 ++#: cp/pt.c:2564 + #, c-format + msgid "template argument `%E' involves template parameter(s)" + msgstr "el argumento de plantilla `%E' involucra a el(los) parámetro(s) de plantilla" + +-#: cp/pt.c:2580 ++#: cp/pt.c:2608 + msgid "type `%T' of template argument `%E' depends on template parameter(s)" + msgstr "el tipo `%T' del argumento de plantilla `%E' depende de el(los) parámetro(s) de plantilla" + +-#: cp/pt.c:2665 ++#: cp/pt.c:2693 + msgid "no default argument for `%D'" + msgstr "no hay un argumento por defecto para `%D'" + +-#: cp/pt.c:2814 ++#: cp/pt.c:2842 + msgid "template with C linkage" + msgstr "plantilla con enlace C" + +-#: cp/pt.c:2817 ++#: cp/pt.c:2845 + msgid "template class without a name" + msgstr "clase de plantilla sin nombre" + + #. [temp.mem] + #. + #. A destructor shall not be a member template. +-#: cp/pt.c:2824 ++#: cp/pt.c:2853 + msgid "destructor `%D' declared as member template" + msgstr "se declara el destructor `%D' como una plantilla miembro" + +-#: cp/pt.c:2904 ++#. [basic.stc.dynamic.allocation] ++#. ++#. An allocation function can be a function ++#. template. ... Template allocation functions shall ++#. have two or more parameters. ++#: cp/pt.c:2868 ++msgid "invalid template declaration of `%D'" ++msgstr "declaración de la plantilla de `%D' inválida" ++ ++#: cp/pt.c:2948 + msgid "`%D' does not declare a template type" + msgstr "`%D' no declara un tipo de plantilla" + +-#: cp/pt.c:2910 ++#: cp/pt.c:2954 + msgid "template definition of non-template `%#D'" + msgstr "definición de plantilla de `%#D' que no es plantilla" + +-#: cp/pt.c:2951 ++#: cp/pt.c:2995 + msgid "expected %d levels of template parms for `%#D', got %d" + msgstr "se esperaban %d niveles de parámetros de plantilla para `%#D', se obtuvieron %d" + +-#: cp/pt.c:2963 ++#: cp/pt.c:3007 + msgid "got %d template parameters for `%#D'" + msgstr "se obtuvieron %d parámetros de plantilla para `%#D'" + +-#: cp/pt.c:2966 ++#: cp/pt.c:3010 + msgid "got %d template parameters for `%#T'" + msgstr "se obtuvieron %d parámetros de plantilla para `%#T'" + +-#: cp/pt.c:2968 ++#: cp/pt.c:3012 + #, c-format + msgid " but %d required" + msgstr " pero se requieren %d" + +-#: cp/pt.c:3053 ++#: cp/pt.c:3097 + msgid "`%T' is not a template type" + msgstr "`%T' no es un tipo plantilla" + +-#: cp/pt.c:3069 ++#: cp/pt.c:3113 + msgid "previous declaration `%D'" + msgstr "declaración previa de `%D'" + +-#: cp/pt.c:3070 ++#: cp/pt.c:3114 + #, c-format + msgid "used %d template parameter%s instead of %d" + msgstr "se usaron %d parámetro%s de plantilla en lugar de %d" + +-#: cp/pt.c:3086 ++#: cp/pt.c:3130 + msgid "template parameter `%#D'" + msgstr "parámetro de plantilla `%#D'" + +-#: cp/pt.c:3087 ++#: cp/pt.c:3131 + msgid "redeclared here as `%#D'" + msgstr "redeclarado aquí como `%#D'" + +@@ -16065,280 +16126,288 @@ + #. + #. A template-parameter may not be given default arguments + #. by two different declarations in the same scope. +-#: cp/pt.c:3097 ++#: cp/pt.c:3141 + msgid "redefinition of default argument for `%#D'" + msgstr "redefinición del argumento por defecto para `%#D'" + +-#: cp/pt.c:3098 ++#: cp/pt.c:3142 + msgid "%J original definition appeared here" + msgstr "%J la definición original apareció aquí" + +-#: cp/pt.c:3246 ++#: cp/pt.c:3288 + #, c-format + msgid "`%E' is not a valid template argument" + msgstr "`%E' no es un argumento de plantilla válido" + +-#: cp/pt.c:3250 ++#: cp/pt.c:3292 + msgid "it must be the address of a function with external linkage" + msgstr "debe ser la dirección de una función con enlace externo" + +-#: cp/pt.c:3252 ++#: cp/pt.c:3294 + msgid "it must be the address of an object with external linkage" + msgstr "debe ser la dirección de un objeto con enlace externo" + +-#: cp/pt.c:3255 ++#: cp/pt.c:3297 + msgid "it must be a pointer-to-member of the form `&X::Y'" + msgstr "debe ser un puntero-a-miembro de la forma `&X::Y'" + +-#: cp/pt.c:3266 ++#: cp/pt.c:3308 + #, c-format + msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage" + msgstr "la cadena literal %E no es un argumento válido de plantilla porque es la dirección de un objeto con enlace estático" + +-#: cp/pt.c:3281 ++#: cp/pt.c:3323 + #, c-format + msgid "address of non-extern `%E' cannot be used as template argument" + msgstr "no se puede usar la dirección de `%E' que no es externo como un argumento de plantilla" + +-#: cp/pt.c:3290 ++#: cp/pt.c:3332 + #, c-format + msgid "non-constant `%E' cannot be used as template argument" + msgstr "`%E' que no es constante no se puede usar como un argumento de plantilla" + +-#: cp/pt.c:3298 ++#: cp/pt.c:3340 + msgid "type '%T' cannot be used as a value for a non-type template-parameter" + msgstr "el tipo `%T' no se puede usar como un valor para un parámetro de plantilla que no es tipo" + +-#: cp/pt.c:3301 ++#: cp/pt.c:3343 + msgid "invalid use of '%D' as a non-type template-argument" + msgstr "uso inválido de '%D' como un argumento de plantilla que no es tipo" + +-#: cp/pt.c:3303 ++#: cp/pt.c:3345 + #, c-format + msgid "invalid use of '%E' as a non-type template-argument" + msgstr "uso inválido de '%E' como un argumento de plantilla que no es tipo" + +-#: cp/pt.c:3668 ++#: cp/pt.c:3710 + #, c-format + msgid "to refer to a type member of a template parameter, use `typename %E'" + msgstr "para hacer referencia a un tipo miembro de un parámetro de plantilla, use `typename %E'" + +-#: cp/pt.c:3681 cp/pt.c:3699 cp/pt.c:3738 ++#: cp/pt.c:3723 cp/pt.c:3741 cp/pt.c:3780 + msgid "type/value mismatch at argument %d in template parameter list for `%D'" + msgstr "no coincide el tipo/valor en el argumento %d en la lista de parámetros de plantilla para `%D'" + +-#: cp/pt.c:3684 ++#: cp/pt.c:3726 + msgid " expected a constant of type `%T', got `%T'" + msgstr " se esperaba una constante de tipo `%T', se obtuvo `%T'" + +-#: cp/pt.c:3688 ++#: cp/pt.c:3730 + #, c-format + msgid " expected a class template, got `%E'" + msgstr " se esperaba una plantilla de clase, se obtuvo `%E'" + +-#: cp/pt.c:3690 ++#: cp/pt.c:3732 + #, c-format + msgid " expected a type, got `%E'" + msgstr " se esperaba un tipo, se obtuvo `%E'" + +-#: cp/pt.c:3702 ++#: cp/pt.c:3744 + msgid " expected a type, got `%T'" + msgstr " se esperaba un tipo, se obtuvo `%T'" + +-#: cp/pt.c:3704 ++#: cp/pt.c:3746 + msgid " expected a class template, got `%T'" + msgstr " se esperaba una plantilla de clase, se obtuvo `%T'" + +-#: cp/pt.c:3740 ++#: cp/pt.c:3782 + msgid " expected a template of type `%D', got `%D'" + msgstr " se esperaba una plantilla de tipo `%D', se obtuvo `%D'" + +-#: cp/pt.c:3775 ++#: cp/pt.c:3817 + msgid "could not convert template argument `%E' to `%T'" + msgstr "no se puede convertir el argumento de plantilla `%E' a `%T'" + +-#: cp/pt.c:3815 ++#: cp/pt.c:3857 + #, c-format + msgid "wrong number of template arguments (%d, should be %d)" + msgstr "número erróneo de argumentos de plantilla (%d, debería ser %d)" + +-#: cp/pt.c:3819 ++#: cp/pt.c:3861 + msgid "provided for `%D'" + msgstr "provisto por `%D'" + +-#: cp/pt.c:3847 ++#: cp/pt.c:3889 + #, c-format + msgid "template argument %d is invalid" + msgstr "el argumento de plantilla %d es inválido" + +-#: cp/pt.c:4068 ++#: cp/pt.c:4110 + msgid "non-template used as template" + msgstr "se usa una no plantilla como plantilla" + +-#: cp/pt.c:4208 ++#: cp/pt.c:4250 + msgid "non-template type `%T' used as a template" + msgstr "se usa el tipo `%T' que no es plantilla como una plantilla" + +-#: cp/pt.c:4210 ++#: cp/pt.c:4252 + msgid "for template declaration `%D'" + msgstr "para la declaración de plantilla `%D'" + +-#: cp/pt.c:4857 ++#: cp/pt.c:4899 + msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'" + msgstr "la profundidad de instanciación de la plantilla excede el máximo de %d (use -ftemplate-depth-NN para incrementar el máximo) al instanciar `%D'" + +-#: cp/pt.c:5296 ++#: cp/pt.c:5338 + msgid "ambiguous class template instantiation for `%#T'" + msgstr "instanciación de plantilla clase ambigua para `%#T'" + +-#: cp/pt.c:5302 ++#: cp/pt.c:5344 + msgid "%s %+#T" + msgstr "%s %+#T" + +-#: cp/pt.c:6308 cp/pt.c:6428 ++#: cp/pt.c:6382 + msgid "instantiation of `%D' as type `%T'" + msgstr "instanciación de `%D' como tipo `%T'" + +-#: cp/pt.c:6470 ++#: cp/pt.c:6542 + msgid "invalid parameter type `%T'" + msgstr "tipo de parámetro `%T' inválido" + +-#: cp/pt.c:6472 ++#: cp/pt.c:6544 + msgid "in declaration `%D'" + msgstr "en la declaración `%D'" + +-#: cp/pt.c:6546 ++#: cp/pt.c:6618 + msgid "creating pointer to member function of non-class type `%T'" + msgstr "creando un puntero a función miembro del tipo `%T' que no es clase" + +-#: cp/pt.c:6685 ++#: cp/pt.c:6758 + msgid "creating array with size zero" + msgstr "creando la matriz con tamaño cero" + +-#: cp/pt.c:6699 ++#: cp/pt.c:6772 + #, c-format + msgid "creating array with size zero (`%E')" + msgstr "creando la matriz con tamaño cero (`%E')" + +-#: cp/pt.c:6938 ++#: cp/pt.c:7011 + msgid "forming reference to void" + msgstr "formando la referencia a void" + +-#: cp/pt.c:6940 ++#: cp/pt.c:7013 + msgid "forming %s to reference type `%T'" + msgstr "formando %s para referenciar al tipo `%T'" + +-#: cp/pt.c:6977 ++#: cp/pt.c:7050 + msgid "creating pointer to member of non-class type `%T'" + msgstr "creando un puntero al miembro del tipo `%T' que no es clase" + +-#: cp/pt.c:6983 ++#: cp/pt.c:7056 + msgid "creating pointer to member reference type `%T'" + msgstr "creando un puntero al miembro de referencia de tipo `%T'" + +-#: cp/pt.c:7069 ++#: cp/pt.c:7142 + msgid "creating array of `%T'" + msgstr "creando la matriz de `%T'" + +-#: cp/pt.c:7075 ++#: cp/pt.c:7148 + msgid "creating array of `%T', which is an abstract class type" + msgstr "creando la matriz de `%T', la cual es un tipo de clase abstracta" + +-#: cp/pt.c:7119 ++#: cp/pt.c:7192 + msgid "`%T' is not a class, struct, or union type" + msgstr "`%T' no es de tipo clase, struct o union" + +-#: cp/pt.c:7232 ++#: cp/pt.c:7305 + #, c-format + msgid "use of `%s' in template" + msgstr "uso de `%s' en la plantilla" + +-#: cp/pt.c:7345 ++#: cp/pt.c:7418 + #, c-format + msgid "dependent-name `%E' is parsed as a non-type, but instantiation yields a type" + msgstr "el nombre dependiente '%E' se decodifica como un no tipo, la instanciación genera un tipo" + +-#: cp/pt.c:7347 ++#: cp/pt.c:7420 + #, c-format + msgid "say `typename %E' if a type is meant" + msgstr " escriba `typename %E' si quería un tipo" + +-#: cp/pt.c:8613 ++#: cp/pt.c:8589 ++msgid "`%T' is not a class or namespace" ++msgstr "`%T' no es una clase o un espacio de nombres" ++ ++#: cp/pt.c:8592 ++msgid "`%D' is not a class or namespace" ++msgstr "`%D' no es una clase o un espacio de nombres" ++ ++#: cp/pt.c:8709 + msgid "`%T' uses anonymous type" + msgstr "`%T' usa un tipo anónimo" + +-#: cp/pt.c:8615 ++#: cp/pt.c:8711 + msgid "`%T' uses local type `%T'" + msgstr "`%T' usa el tipo local `%T'" + +-#: cp/pt.c:8623 ++#: cp/pt.c:8719 + msgid "`%T' is a variably modified type" + msgstr "`%T' es un tipo modificado variablemente" + +-#: cp/pt.c:8634 ++#: cp/pt.c:8730 + #, c-format + msgid "integral expression `%E' is not constant" + msgstr "la expresión integral `%E' no es una constante" + +-#: cp/pt.c:8639 ++#: cp/pt.c:8735 + msgid " trying to instantiate `%D'" + msgstr " tratando de instanciar `%D'" + +-#: cp/pt.c:9156 ++#: cp/pt.c:9252 + msgid "incomplete type unification" + msgstr "unificación de tipo incompleto" + +-#: cp/pt.c:10112 ++#: cp/pt.c:10211 + #, c-format + msgid "use of `%s' in template type unification" + msgstr "uso de `%s' en la unificación de tipo de la plantilla" + +-#: cp/pt.c:10546 cp/pt.c:10618 ++#: cp/pt.c:10644 cp/pt.c:10716 + msgid "explicit instantiation of non-template `%#D'" + msgstr "instanciación explícita de `%#D' que no es plantilla" + +-#: cp/pt.c:10562 cp/pt.c:10613 ++#: cp/pt.c:10660 cp/pt.c:10711 + msgid "no matching template for `%D' found" + msgstr "no se encuentra una plantilla coincidente para `%D'" + +-#: cp/pt.c:10568 ++#: cp/pt.c:10666 + msgid "explicit instantiation of `%#D'" + msgstr "instanciación explícita de `%#D'" + +-#: cp/pt.c:10605 ++#: cp/pt.c:10703 + msgid "duplicate explicit instantiation of `%#D'" + msgstr "instanciación explícita duplicada de `%#D'" + +-#: cp/pt.c:10627 ++#: cp/pt.c:10725 + msgid "ISO C++ forbids the use of `extern' on explicit instantiations" + msgstr "ISO C++ prohíbe el uso de `extern' en instanciaciones explícitas" + +-#: cp/pt.c:10631 cp/pt.c:10712 ++#: cp/pt.c:10729 cp/pt.c:10810 + msgid "storage class `%D' applied to template instantiation" + msgstr "clase de almacenamiento `%D' aplicada a la instanciación de una plantilla" + +-#: cp/pt.c:10684 ++#: cp/pt.c:10782 + msgid "explicit instantiation of non-template type `%T'" + msgstr "instanciación explícita del tipo `%T' del tipo no plantilla" + +-#: cp/pt.c:10693 ++#: cp/pt.c:10791 + msgid "explicit instantiation of `%#T' before definition of template" + msgstr "instanciación explícita de `%#T' antes de la definición de la plantilla" + +-#: cp/pt.c:10701 ++#: cp/pt.c:10799 + #, c-format + msgid "ISO C++ forbids the use of `%s' on explicit instantiations" + msgstr "ISO C++ prohíbe el uso de `%s' en las instanciaciones explícitas" + +-#: cp/pt.c:10745 ++#: cp/pt.c:10843 + msgid "duplicate explicit instantiation of `%#T'" + msgstr "instanciación explícita duplicada de `%#T'" + +-#: cp/pt.c:11126 ++#: cp/pt.c:11224 + msgid "explicit instantiation of `%D' but no definition available" + msgstr "instanciación explícita de `%D' pero no hay una definición disponible" + +-#: cp/pt.c:11562 ++#: cp/pt.c:11660 + msgid "`%#T' is not a valid type for a template constant parameter" + msgstr "`%#T' no es un tipo válido para un parámetro constante de plantilla" + +@@ -16384,39 +16453,39 @@ + msgid "`%T' is an inaccessible base of `%T'" + msgstr "`%T' es una base inaccesible de `%T'" + +-#: cp/search.c:1767 ++#: cp/search.c:1805 + msgid "invalid covariant return type for `%#D'" + msgstr "tipo de devolución covariante inválido para `%#D'" + +-#: cp/search.c:1768 cp/search.c:1774 ++#: cp/search.c:1806 cp/search.c:1812 + msgid " overriding `%#D'" + msgstr " sustituyendo `%#D'" + +-#: cp/search.c:1772 ++#: cp/search.c:1810 + msgid "conflicting return type specified for `%#D'" + msgstr "tipos de devolución en conflicto especificados para `%#D'" + +-#: cp/search.c:1786 ++#: cp/search.c:1824 + #, c-format + msgid "looser throw specifier for `%#F'" + msgstr "especificador thrown más flexible para `%#F'" + +-#: cp/search.c:1787 ++#: cp/search.c:1825 + #, c-format + msgid " overriding `%#F'" + msgstr " sustituyendo `%#F'" + + #. A static member function cannot match an inherited + #. virtual member function. +-#: cp/search.c:1877 ++#: cp/search.c:1915 + msgid "`%#D' cannot be declared" + msgstr "`%#D' no puede ser declarado" + +-#: cp/search.c:1878 ++#: cp/search.c:1916 + msgid " since `%#D' declared in base class" + msgstr " ya que se declaró `%#D' en la clase base" + +-#: cp/search.c:1955 ++#: cp/search.c:1993 + msgid "`%#D' needs a final overrider" + msgstr "`%#D' necesita un impositor final" + +@@ -16437,113 +16506,113 @@ + msgid "object missing in reference to `%D'" + msgstr "falta un objeto en la referencia a `%D'" + +-#: cp/semantics.c:1721 ++#: cp/semantics.c:1718 + msgid "arguments to destructor are not allowed" + msgstr "no se permiten argumentos para el destructor" + +-#: cp/semantics.c:1770 ++#: cp/semantics.c:1767 + msgid "`this' is unavailable for static member functions" + msgstr "`this' no está disponible para funciones miembro static" + +-#: cp/semantics.c:1776 ++#: cp/semantics.c:1773 + msgid "invalid use of `this' in non-member function" + msgstr "uso inválido de `this' en la función no miembro" + +-#: cp/semantics.c:1778 ++#: cp/semantics.c:1775 + msgid "invalid use of `this' at top level" + msgstr "uso inválido de `this' en el nivel principal" + +-#: cp/semantics.c:1802 ++#: cp/semantics.c:1799 + msgid "invalid qualifying scope in pseudo-destructor name" + msgstr "ámbito calificador inválido en el nombre del seudo-destructor" + +-#: cp/semantics.c:1822 ++#: cp/semantics.c:1819 + msgid "`%E' is not of type `%T'" + msgstr "`%E' no es de tipo `%T'" + +-#: cp/semantics.c:1933 ++#: cp/semantics.c:1930 + msgid "template type parameters must use the keyword `class' or `typename'" + msgstr "los parámetros de tipo plantilla debe usar la palabra clave `class' o `typename'" + +-#: cp/semantics.c:1977 ++#: cp/semantics.c:1974 + msgid "invalid use of type `%T' as a default value for a template template-parameter" + msgstr "uso inválido del tipo `%T' como un valor por defecto para una plantilla de parámetro de plantilla" + +-#: cp/semantics.c:1980 ++#: cp/semantics.c:1977 + msgid "invalid use of `%D' as a default value for a template template-parameter" + msgstr "uso inválido de `%D' como un valor por defecto para una plantilla de parámetro de plantilla" + +-#: cp/semantics.c:1984 ++#: cp/semantics.c:1981 + msgid "invalid default argument for a template template parameter" + msgstr "argumento por defecto inválido para una plantilla de parámetro de plantilla" + +-#: cp/semantics.c:2019 ++#: cp/semantics.c:2016 + msgid "definition of `%#T' inside template parameter list" + msgstr "la definición de `%#T' dentro de la lista de parámetros de plantilla" + +-#: cp/semantics.c:2030 ++#: cp/semantics.c:2027 + msgid "invalid definition of qualified type `%T'" + msgstr "definición inválida del tipo calificado `%T'" + +-#: cp/semantics.c:2045 ++#: cp/semantics.c:2042 + msgid "previous definition of `%#T'" + msgstr "definición previa de `%#T'" + +-#: cp/semantics.c:2249 ++#: cp/semantics.c:2246 + msgid "invalid base-class specification" + msgstr "especificación de clase base inválida" + +-#: cp/semantics.c:2258 ++#: cp/semantics.c:2255 + msgid "base class `%T' has cv qualifiers" + msgstr "la clase base `%T' tiene calificadores cv" + +-#: cp/semantics.c:2290 ++#: cp/semantics.c:2287 + msgid "multiple declarators in template declaration" + msgstr "múltiples declaradores en una declaración de plantilla" + +-#: cp/semantics.c:2301 ++#: cp/semantics.c:2298 + msgid "incomplete type `%T' used in nested name specifier" + msgstr "se utilizó el tipo incompleto `%T' en un especificador de nombre anidado" + +-#: cp/semantics.c:2303 cp/typeck.c:1635 ++#: cp/semantics.c:2300 cp/typeck.c:1635 + msgid "`%D' is not a member of `%T'" + msgstr "`%D' no es un miembro de `%T'" + +-#: cp/semantics.c:2306 ++#: cp/semantics.c:2303 + msgid "`%D' is not a member of `%D'" + msgstr "`%D' no es un miembro de `%D'" + +-#: cp/semantics.c:2431 ++#: cp/semantics.c:2428 + msgid "template parameter `%D' of type `%T' is not allowed in an integral constant expression because it is not of integral or enumeration type" + msgstr "no se permite el parámetro de plantilla `%D' de tipo `%T' en una expresión integral constante porque no es de tipo integral o de enumeración" + +-#: cp/semantics.c:2584 ++#: cp/semantics.c:2572 + msgid "`%D' cannot appear in a constant-expression" + msgstr "`%D' no puede aparece en una expresion constante" + +-#: cp/semantics.c:2593 ++#: cp/semantics.c:2580 + msgid "use of namespace `%D' as expression" + msgstr "uso del espacio de nombres `%D' como una expresión" + +-#: cp/semantics.c:2598 ++#: cp/semantics.c:2585 + msgid "use of class template `%T' as expression" + msgstr "uso de la plantilla de clase `%T' como una expresión" + + #. Ambiguous reference to base members. +-#: cp/semantics.c:2604 ++#: cp/semantics.c:2591 + msgid "request for member `%D' is ambiguous in multiple inheritance lattice" + msgstr "la petición por el miembro `%D' es ambigua en la red de herencia múltiple" + +-#: cp/semantics.c:2664 ++#: cp/semantics.c:2652 + #, c-format + msgid "use of %s from containing function" + msgstr "uso de %s desde una función contenedora" + +-#: cp/semantics.c:2667 ++#: cp/semantics.c:2655 + msgid " `%#D' declared here" + msgstr " `%#D' declarado aquí" + +-#: cp/semantics.c:2718 ++#: cp/semantics.c:2706 + #, c-format + msgid "type of `%E' is unknown" + msgstr "el tipo de '%E' es desconocido" +@@ -16557,44 +16626,44 @@ + msgid "`%V' qualifiers cannot be applied to `%T'" + msgstr "los calificadores `%V' no se pueden aplicar a `%T'" + +-#: cp/tree.c:1821 ++#: cp/tree.c:1829 + #, c-format + msgid "`%s' attribute can only be applied to Java class definitions" + msgstr "el atributo `%s' sólo se puede aplicar a definiciones de clases Java" + +-#: cp/tree.c:1850 ++#: cp/tree.c:1858 + #, c-format + msgid "`%s' attribute can only be applied to class definitions" + msgstr "el atributo `%s' sólo se puede aplicar a definiciones de clase" + +-#: cp/tree.c:1856 ++#: cp/tree.c:1864 + #, c-format + msgid "`%s' is obsolete; g++ vtables are now COM-compatible by default" + msgstr "`%s' es obsoleto; las vtables de g++ ahora son compatibles con COM por defecto" + +-#: cp/tree.c:1880 ++#: cp/tree.c:1888 + msgid "requested init_priority is not an integer constant" + msgstr "la init_priority solicitada no es una constante entera" + +-#: cp/tree.c:1901 ++#: cp/tree.c:1909 + #, c-format + msgid "can only use `%s' attribute on file-scope definitions of objects of class type" + msgstr "solo se puede usar el atributo `%s' en definiciones de rango de fichero de objetos de tipo class" + +-#: cp/tree.c:1909 ++#: cp/tree.c:1917 + msgid "requested init_priority is out of range" + msgstr "la init_priority solicitada está fuera de rango" + +-#: cp/tree.c:1919 ++#: cp/tree.c:1927 + msgid "requested init_priority is reserved for internal use" + msgstr "la init_priority solicitada está reservada para uso interno" + +-#: cp/tree.c:1929 ++#: cp/tree.c:1937 + #, c-format + msgid "`%s' attribute is not supported on this platform" + msgstr "el atributo `%s' no tiene soporte en esta plataforma" + +-#: cp/tree.c:2524 ++#: cp/tree.c:2534 + #, c-format + msgid "lang_* check: failed in %s, at %s:%d" + msgstr "revisión lang_*: falló en %s, en %s:%d" +@@ -16808,264 +16877,264 @@ + msgid "invalid use of a pointer to an incomplete type in pointer arithmetic" + msgstr "uso inválido de un puntero a un tipo incompleto en aritmética de punteros" + +-#: cp/typeck.c:3582 ++#: cp/typeck.c:3600 + #, c-format + msgid "invalid use of '%E' to form a pointer-to-member-function. Use a qualified-id." + msgstr "uso inválido de '%E' para formar una función puntero a miembro. Use un identificador calificado." + +-#: cp/typeck.c:3588 ++#: cp/typeck.c:3606 + #, c-format + msgid "parenthesis around '%E' cannot be used to form a pointer-to-member-function" + msgstr "no se pueden usar paréntesis alrededor de '%E' para formar una función puntero a miembro" + +-#: cp/typeck.c:3610 ++#: cp/typeck.c:3628 + msgid "taking address of temporary" + msgstr "tomando la dirección del temporal" + + # Esta cadena solamente funciona bien en inglés. cfuga +-#: cp/typeck.c:3845 ++#: cp/typeck.c:3863 + #, c-format + msgid "ISO C++ forbids %sing an enum" + msgstr "ISO C++ prohíbe %sing un enum" + +-#: cp/typeck.c:3856 ++#: cp/typeck.c:3874 + msgid "cannot %s a pointer to incomplete type `%T'" + msgstr "no se puede %s un puntero a un tipo incompleto `%T'" + +-#: cp/typeck.c:3862 ++#: cp/typeck.c:3880 + msgid "ISO C++ forbids %sing a pointer of type `%T'" + msgstr "ISO C++ prohíbe el %s un puntero de tipo `%T'" + +-#: cp/typeck.c:3887 ++#: cp/typeck.c:3905 + msgid "cast to non-reference type used as lvalue" + msgstr "se usa la conversión a un tipo no referenciado como un l-valor" + +-#: cp/typeck.c:3921 ++#: cp/typeck.c:3939 + msgid "invalid use of `--' on bool variable `%D'" + msgstr "uso inválido de `--' en la variable booleana `%D'" + + #. ARM $3.4 +-#: cp/typeck.c:3952 ++#: cp/typeck.c:3970 + msgid "ISO C++ forbids taking address of function `::main'" + msgstr "ISO C++ prohíbe tomar la dirección de la función `::main'" + + #. An expression like &memfn. +-#: cp/typeck.c:4027 ++#: cp/typeck.c:4045 + msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function. Say `&%T::%D'" + msgstr "ISO C++ prohíbe tomar la dirección de una función miembro no estática sin calificar o entre paréntesis para formar un puntero a la función miembro. Como `&%T::%D'" + +-#: cp/typeck.c:4032 ++#: cp/typeck.c:4050 + msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say `&%T::%D'" + msgstr "ISO C++ prohíbe tomar la dirección de una función miembro limitada para formar un puntero a la función miembro. Como `&%T::%D'" + +-#: cp/typeck.c:4060 ++#: cp/typeck.c:4078 + msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression" + msgstr "ISO C++ prohíbe tomar la dirección de una conversión a una expresión no l-valuada" + +-#: cp/typeck.c:4080 ++#: cp/typeck.c:4098 + msgid "unary `&'" + msgstr "`&' unario" + +-#: cp/typeck.c:4113 ++#: cp/typeck.c:4131 + msgid "attempt to take address of bit-field structure member `%D'" + msgstr "se intentó tomar la dirección del miembro de la estructura de campos de bits `%D'" + +-#: cp/typeck.c:4227 ++#: cp/typeck.c:4245 + msgid "taking address of destructor" + msgstr "tomando la dirección del destructor" + + # FIXME + # ¿bound se utiliza aquí como 'limitada' o 'sujeta'? Revisar el código. cfuga +-#: cp/typeck.c:4240 ++#: cp/typeck.c:4258 + msgid "taking address of bound pointer-to-member expression" + msgstr "tomando la dirección de la expresión limitada puntero-a-miembro" + +-#: cp/typeck.c:4248 ++#: cp/typeck.c:4266 + msgid "cannot create pointer to reference member `%D'" + msgstr "no se puede crear un puntero al miembro referencia `%D'" + +-#: cp/typeck.c:4311 ++#: cp/typeck.c:4329 + msgid "cannot take the address of `this', which is an rvalue expression" + msgstr "no se puede tomar la dirección de `this' que es una expresión rvalue" + +-#: cp/typeck.c:4330 ++#: cp/typeck.c:4348 + msgid "address requested for `%D', which is declared `register'" + msgstr "se solicitó la dirección de `%D', el cual se declaró como `register'" + +-#: cp/typeck.c:4398 ++#: cp/typeck.c:4416 + #, c-format + msgid "%s expression list treated as compound expression" + msgstr "se trata la lista de expresiones %s como una expresión compuesta" + +-#: cp/typeck.c:4472 ++#: cp/typeck.c:4490 + msgid "%s from type `%T' to type `%T' casts away constness" + msgstr "%s del tipo `%T' al tipo `%T' proscribe la constancia" + +-#: cp/typeck.c:4674 ++#: cp/typeck.c:4692 + msgid "invalid static_cast from type `%T' to type `%T'" + msgstr "static_cast inválido del tipo `%T' al tipo `%T'" + +-#: cp/typeck.c:4714 ++#: cp/typeck.c:4732 + msgid "invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'" + msgstr "reinterpret_cast inválido de una expresión valor-r del tipo `%T' al tipo `%T'" + +-#: cp/typeck.c:4734 ++#: cp/typeck.c:4752 + msgid "reinterpret_cast from `%T' to `%T' loses precision" + msgstr "reinterpret_cast de `%T' a `%T' pierde precisión" + +-#: cp/typeck.c:4753 ++#: cp/typeck.c:4771 + msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object" + msgstr "ISO C++ prohíbe la conversión entre entre puntero a función y puntero a objeto" + +-#: cp/typeck.c:4759 ++#: cp/typeck.c:4777 + msgid "invalid reinterpret_cast from type `%T' to type `%T'" + msgstr "reinterpret_cast inválido del tipo `%T' al tipo `%T'" + +-#: cp/typeck.c:4787 ++#: cp/typeck.c:4805 + msgid "invalid use of const_cast with type `%T', which is not a pointer, reference, nor a pointer-to-data-member type" + msgstr "uso inválido de const_cast con tipo `%T', que no es puntero, referencia, ni un tipo puntero-a-datos-miembros" + +-#: cp/typeck.c:4790 ++#: cp/typeck.c:4808 + msgid "invalid use of const_cast with type `%T', which is a pointer or reference to a function type" + msgstr "uso inválido de const_cast con tipo `%T', el cual es un puntero o referencia a un tipo de función" + +-#: cp/typeck.c:4813 ++#: cp/typeck.c:4831 + msgid "invalid const_cast of an rvalue of type `%T' to type `%T'" + msgstr "const_cast inválido de un valor-r de tipo `%T' al tipo `%T'" + +-#: cp/typeck.c:4830 ++#: cp/typeck.c:4848 + msgid "invalid const_cast from type `%T' to type `%T'" + msgstr "const_cast inválido del tipo `%T' al tipo `%T'" + +-#: cp/typeck.c:4870 cp/typeck.c:4875 ++#: cp/typeck.c:4888 cp/typeck.c:4893 + msgid "ISO C++ forbids casting to an array type `%T'" + msgstr "ISO C++ prohíbe la conversión a un tipo de matriz `%T'" + +-#: cp/typeck.c:4883 ++#: cp/typeck.c:4901 + msgid "invalid cast to function type `%T'" + msgstr "conversión inválida al tipo de función `%T'" + +-#: cp/typeck.c:4939 ++#: cp/typeck.c:4957 + msgid "cast from `%T' to `%T' discards qualifiers from pointer target type" + msgstr "la conversión de `%T' a `%T' descarta los calificadores del tipo del destino del puntero" + +-#: cp/typeck.c:4985 ++#: cp/typeck.c:5003 + msgid "cast from `%T' to `%T' increases required alignment of target type" + msgstr "la conversión de `%T' a `%T' incrementa la alineación requerida del tipo del destino" + +-#: cp/typeck.c:5152 ++#: cp/typeck.c:5170 + msgid " in evaluation of `%Q(%#T, %#T)'" + msgstr " en la evaluación de `%Q(%#T, %#T)'" + +-#: cp/typeck.c:5194 ++#: cp/typeck.c:5212 + msgid "ISO C++ forbids cast to non-reference type used as lvalue" + msgstr "ISO C++ prohíbe la conversión a un tipo no referente usado como l-valor" + +-#: cp/typeck.c:5267 ++#: cp/typeck.c:5285 + msgid "incompatible types in assignment of `%T' to `%T'" + msgstr "tipos incompatible en la asignación de `%T' a `%T'" + +-#: cp/typeck.c:5274 ++#: cp/typeck.c:5292 + msgid "ISO C++ forbids assignment of arrays" + msgstr "ISO C++ prohíbe la asignación de matrices" + +-#: cp/typeck.c:5374 ++#: cp/typeck.c:5392 + msgid " in pointer to member function conversion" + msgstr " en la conversión del puntero a función miembro" + +-#: cp/typeck.c:5382 ++#: cp/typeck.c:5400 + msgid " in pointer to member conversion" + msgstr " en la conversión del puntero a miembro" + + #. This is a reinterpret cast, we choose to do nothing. +-#: cp/typeck.c:5392 cp/typeck.c:5407 ++#: cp/typeck.c:5410 cp/typeck.c:5425 + msgid "pointer to member cast via virtual base `%T'" + msgstr "puntero a la conversión miembro a través de la base virtual `%T'" + +-#: cp/typeck.c:5410 ++#: cp/typeck.c:5428 + msgid "pointer to member conversion via virtual base `%T'" + msgstr "puntero a la conversión miembro a través de la base virtual `%T'" + +-#: cp/typeck.c:5480 ++#: cp/typeck.c:5498 + msgid "invalid conversion to type `%T' from type `%T'" + msgstr "conversión inválida del tipo `%T' a partir del tipo `%T'" + +-#: cp/typeck.c:5636 ++#: cp/typeck.c:5657 + msgid "passing NULL used for non-pointer %s %P of `%D'" + msgstr "pasando NULL usado para el no puntero %s %P de `%D'" + +-#: cp/typeck.c:5639 ++#: cp/typeck.c:5660 + msgid "%s to non-pointer type `%T' from NULL" + msgstr "%s al tipo `%T' que no es puntero desde NULL" + +-#: cp/typeck.c:5647 ++#: cp/typeck.c:5668 + msgid "passing `%T' for %s %P of `%D'" + msgstr "pasando `%T' para %s %P de `%D'" + +-#: cp/typeck.c:5650 ++#: cp/typeck.c:5671 + msgid "%s to `%T' from `%T'" + msgstr "%s a `%T' desde `%T'" + +-#: cp/typeck.c:5660 ++#: cp/typeck.c:5681 + msgid "passing negative value `%E' for %s %P of `%D'" + msgstr "pasando el valor negativo `%E' para %s %P de `%D'" + +-#: cp/typeck.c:5663 ++#: cp/typeck.c:5684 + msgid "%s of negative value `%E' to `%T'" + msgstr "%s de valor negatio `%E' a `%T'" + +-#: cp/typeck.c:5751 ++#: cp/typeck.c:5772 + msgid "cannot convert `%T' to `%T' for argument `%P' to `%D'" + msgstr "no se puede convertir `%T' a `%T' para el argumento `%P' para `%D'" + +-#: cp/typeck.c:5754 ++#: cp/typeck.c:5775 + msgid "cannot convert `%T' to `%T' in %s" + msgstr "no se puede convertir `%T' a `%T' en %s" + +-#: cp/typeck.c:5831 cp/typeck.c:5833 ++#: cp/typeck.c:5852 cp/typeck.c:5854 + msgid "in passing argument %P of `%+D'" + msgstr "en el paso del argumento %P de `%+D'" + +-#: cp/typeck.c:5940 ++#: cp/typeck.c:5961 + msgid "returning reference to temporary" + msgstr "devolviendo la referencia al temporal" + +-#: cp/typeck.c:5947 ++#: cp/typeck.c:5968 + msgid "reference to non-lvalue returned" + msgstr "se devolvió una referencia a un valor que no es l-valor" + +-#: cp/typeck.c:5959 ++#: cp/typeck.c:5980 + msgid "reference to local variable `%D' returned" + msgstr "se devolvió una referencia a la variable local `%D'" + +-#: cp/typeck.c:5962 ++#: cp/typeck.c:5983 + msgid "address of local variable `%D' returned" + msgstr "se devolvió la dirección de la variable local `%D'" + +-#: cp/typeck.c:5992 ++#: cp/typeck.c:6013 + msgid "returning a value from a destructor" + msgstr "devolviendo un valor de un destructor" + + #. If a return statement appears in a handler of the + #. function-try-block of a constructor, the program is ill-formed. +-#: cp/typeck.c:6000 ++#: cp/typeck.c:6021 + msgid "cannot return from a handler of a function-try-block of a constructor" + msgstr "no se puede regresar de un manejador de una función-intenta-bloque de un constructor" + + #. You can't return a value from a constructor. +-#: cp/typeck.c:6003 ++#: cp/typeck.c:6024 + msgid "returning a value from a constructor" + msgstr "devolviendo un valor de un constructor" + +-#: cp/typeck.c:6026 ++#: cp/typeck.c:6047 + msgid "return-statement with no value, in function returning '%T'" + msgstr "declaración return sin valores, en una función que devuelve '%T'" + +-#: cp/typeck.c:6043 ++#: cp/typeck.c:6064 + msgid "return-statement with a value, in function returning 'void'" + msgstr "declaración return con un valor, en una función que devuelve 'void'" + +-#: cp/typeck.c:6065 ++#: cp/typeck.c:6086 + msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)" + msgstr "`operator new' no debe regresar NULL a menos que se declare `throw()' (o -fcheck-new esté en efecto)" + +@@ -17117,124 +17186,124 @@ + msgid "cannot initialize arrays using this syntax" + msgstr "no se pueden inicializar matrices usando esta sintaxis" + +-#: cp/typeck2.c:545 ++#: cp/typeck2.c:535 + msgid "initializing array with parameter list" + msgstr "inicializando una matriz con una lista de parámetros" + +-#: cp/typeck2.c:600 ++#: cp/typeck2.c:590 + msgid "initializer for scalar variable requires one element" + msgstr "inicializador para una variable escalar requiere un elemento" + +-#: cp/typeck2.c:607 ++#: cp/typeck2.c:597 + msgid "braces around scalar initializer for `%T'" + msgstr "llaves alrededor del inicializador para `%T'" + +-#: cp/typeck2.c:610 ++#: cp/typeck2.c:600 + msgid "ignoring extra initializers for `%T'" + msgstr "ignorando los inicializadores extra para `%T'" + +-#: cp/typeck2.c:622 ++#: cp/typeck2.c:612 + msgid "variable-sized object of type `%T' may not be initialized" + msgstr "un objeto de tamaño variable de tipo `%T' no puede ser inicializado" + +-#: cp/typeck2.c:632 ++#: cp/typeck2.c:622 + msgid "subobject of type `%T' must be initialized by constructor, not by `%E'" + msgstr "el subobjeto de tipo `%T' debe ser inicializado por un constructor, no por `%E'" + +-#: cp/typeck2.c:697 ++#: cp/typeck2.c:687 + msgid "aggregate has a partly bracketed initializer" + msgstr "el agregado tiene un inicializador con llaves parciales" + +-#: cp/typeck2.c:735 cp/typeck2.c:840 ++#: cp/typeck2.c:725 cp/typeck2.c:830 + msgid "non-trivial labeled initializers" + msgstr "inicializadores etiquetados como no triviales" + +-#: cp/typeck2.c:752 ++#: cp/typeck2.c:742 + msgid "non-empty initializer for array of empty elements" + msgstr "inicializador no-vacío para una matriz de elementos vacíos" + +-#: cp/typeck2.c:806 ++#: cp/typeck2.c:796 + msgid "initializer list for object of class with virtual base classes" + msgstr "lista de inicializadores para un objeto de una clase con clases base virtual" + +-#: cp/typeck2.c:812 ++#: cp/typeck2.c:802 + msgid "initializer list for object of class with base classes" + msgstr "lista de inicializadores para un objeto de una clase con clases base" + +-#: cp/typeck2.c:818 ++#: cp/typeck2.c:808 + msgid "initializer list for object using virtual functions" + msgstr "lista de inicializadores para un objeto que usa funciones virtuales" + +-#: cp/typeck2.c:880 cp/typeck2.c:896 ++#: cp/typeck2.c:870 cp/typeck2.c:886 + msgid "missing initializer for member `%D'" + msgstr "falta el inicializador para el miembro `%D'" + +-#: cp/typeck2.c:885 ++#: cp/typeck2.c:875 + msgid "uninitialized const member `%D'" + msgstr "miembro const `%D' sin inicializar" + +-#: cp/typeck2.c:887 ++#: cp/typeck2.c:877 + msgid "member `%D' with uninitialized const fields" + msgstr "miembro `%D' con campos const sin inicializar" + +-#: cp/typeck2.c:890 ++#: cp/typeck2.c:880 + msgid "member `%D' is uninitialized reference" + msgstr "el miembro `%D' es una referencia sin inicializar" + +-#: cp/typeck2.c:937 ++#: cp/typeck2.c:927 + msgid "index value instead of field name in union initializer" + msgstr "valor de índice en lugar del nombre del campo en el inicializador de union" + +-#: cp/typeck2.c:949 ++#: cp/typeck2.c:939 + msgid "no field `%D' in union being initialized" + msgstr "no existe el campo `%D' en la union que se está inicializando" + +-#: cp/typeck2.c:957 ++#: cp/typeck2.c:947 + msgid "union `%T' with no named members cannot be initialized" + msgstr "no se puede inicializar la union `%T' sin miembros nombrados" + +-#: cp/typeck2.c:993 ++#: cp/typeck2.c:983 + msgid "excess elements in aggregate initializer" + msgstr "exceso de elementos en el inicializador agregado" + +-#: cp/typeck2.c:1102 ++#: cp/typeck2.c:1092 + msgid "circular pointer delegation detected" + msgstr "se detectó una delegación de puntero circular" + +-#: cp/typeck2.c:1115 ++#: cp/typeck2.c:1105 + msgid "base operand of `->' has non-pointer type `%T'" + msgstr "el operando base de `->' tiene el tipo `%T' que no es puntero" + +-#: cp/typeck2.c:1139 ++#: cp/typeck2.c:1129 + msgid "result of `operator->()' yields non-pointer result" + msgstr "el resultado de `operator->()' produce un resultado que no es puntero" + +-#: cp/typeck2.c:1141 ++#: cp/typeck2.c:1131 + msgid "base operand of `->' is not a pointer" + msgstr "el operando base de `->' no es un puntero" + +-#: cp/typeck2.c:1164 ++#: cp/typeck2.c:1154 + msgid "`%E' cannot be used as a member pointer, since it is of type `%T'" + msgstr "no se puede usar `%E' como un puntero miembro, porque es de tipo `%T'" + +-#: cp/typeck2.c:1172 ++#: cp/typeck2.c:1162 + msgid "cannot apply member pointer `%E' to `%E', which is of non-aggregate type `%T'" + msgstr "no se puede aplicar el puntero a miembro `%E' a `%E', el cual es del tipo no agregado `%T'" + +-#: cp/typeck2.c:1182 ++#: cp/typeck2.c:1172 + msgid "member type `%T::' incompatible with object type `%T'" + msgstr "el tipo de miembro `%T::' es incompatible con el tipo objeto `%T'" + +-#: cp/typeck2.c:1398 ++#: cp/typeck2.c:1388 + msgid "call to function `%D' which throws incomplete type `%#T'" + msgstr "llamada a la función `%D' la cual arroja el tipo incompleto `%#T'" + +-#: cp/typeck2.c:1401 ++#: cp/typeck2.c:1391 + msgid "call to function which throws incomplete type `%#T'" + msgstr "llamada a una función la cual arroja el tipo incompleto `%#T'" + + #. XXX Not i18n clean. +-#: cp/cp-tree.h:3756 ++#: cp/cp-tree.h:3775 + #, c-format + msgid "%s is deprecated, please see the documentation for details" + msgstr "%s es obsoleto, por favor vea la documentación para más detalles" +@@ -18796,291 +18865,228 @@ + msgid "internal error - invalid Utf8 name" + msgstr "error interno - nombre Utf8 inválido" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse-scan.y:880 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:949 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1290 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1351 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1555 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1777 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1786 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1797 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1808 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1820 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1835 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1852 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1854 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1935 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2106 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2168 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2320 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2332 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2339 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2346 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2357 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2359 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2397 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2399 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2401 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2422 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2424 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2426 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2442 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2444 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2465 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2467 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2469 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2497 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2499 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2501 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2503 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2521 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2523 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2534 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2545 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2556 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2567 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2578 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2591 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2595 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2597 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2610 ++#: ../../gcc/java/parse-scan.y:880 ../../gcc/java/parse.y:949 ++#: ../../gcc/java/parse.y:1290 ../../gcc/java/parse.y:1351 ++#: ../../gcc/java/parse.y:1555 ../../gcc/java/parse.y:1777 ++#: ../../gcc/java/parse.y:1786 ../../gcc/java/parse.y:1797 ++#: ../../gcc/java/parse.y:1808 ../../gcc/java/parse.y:1820 ++#: ../../gcc/java/parse.y:1835 ../../gcc/java/parse.y:1852 ++#: ../../gcc/java/parse.y:1854 ../../gcc/java/parse.y:1935 ++#: ../../gcc/java/parse.y:2106 ../../gcc/java/parse.y:2168 ++#: ../../gcc/java/parse.y:2320 ../../gcc/java/parse.y:2332 ++#: ../../gcc/java/parse.y:2339 ../../gcc/java/parse.y:2346 ++#: ../../gcc/java/parse.y:2357 ../../gcc/java/parse.y:2359 ++#: ../../gcc/java/parse.y:2397 ../../gcc/java/parse.y:2399 ++#: ../../gcc/java/parse.y:2401 ../../gcc/java/parse.y:2422 ++#: ../../gcc/java/parse.y:2424 ../../gcc/java/parse.y:2426 ++#: ../../gcc/java/parse.y:2442 ../../gcc/java/parse.y:2444 ++#: ../../gcc/java/parse.y:2465 ../../gcc/java/parse.y:2467 ++#: ../../gcc/java/parse.y:2469 ../../gcc/java/parse.y:2497 ++#: ../../gcc/java/parse.y:2499 ../../gcc/java/parse.y:2501 ++#: ../../gcc/java/parse.y:2503 ../../gcc/java/parse.y:2521 ++#: ../../gcc/java/parse.y:2523 ../../gcc/java/parse.y:2534 ++#: ../../gcc/java/parse.y:2545 ../../gcc/java/parse.y:2556 ++#: ../../gcc/java/parse.y:2567 ../../gcc/java/parse.y:2578 ++#: ../../gcc/java/parse.y:2591 ../../gcc/java/parse.y:2595 ++#: ../../gcc/java/parse.y:2597 ../../gcc/java/parse.y:2610 + msgid "Missing term" + msgstr "Falta el término" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse-scan.y:882 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:721 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:759 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:784 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:970 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1325 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1531 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1533 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1762 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1788 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1799 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1810 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1822 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1837 ++#: ../../gcc/java/parse-scan.y:882 ../../gcc/java/parse.y:721 ++#: ../../gcc/java/parse.y:759 ../../gcc/java/parse.y:784 ++#: ../../gcc/java/parse.y:970 ../../gcc/java/parse.y:1325 ++#: ../../gcc/java/parse.y:1531 ../../gcc/java/parse.y:1533 ++#: ../../gcc/java/parse.y:1762 ../../gcc/java/parse.y:1788 ++#: ../../gcc/java/parse.y:1799 ../../gcc/java/parse.y:1810 ++#: ../../gcc/java/parse.y:1822 ../../gcc/java/parse.y:1837 + msgid "';' expected" + msgstr "se esperaba ';'" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:719 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:757 ++#: ../../gcc/java/parse.y:719 ../../gcc/java/parse.y:757 + msgid "Missing name" + msgstr "Falta el nombre" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:782 ++#: ../../gcc/java/parse.y:782 + msgid "'*' expected" + msgstr "se esperaba '*'" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:796 ++#: ../../gcc/java/parse.y:796 + msgid "Class or interface declaration expected" + msgstr "se esperaba una declaración de clase o interfaz" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:833 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:835 ++#: ../../gcc/java/parse.y:833 ../../gcc/java/parse.y:835 + msgid "Missing class name" + msgstr "Falta el nombre de la clase" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:838 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:842 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:850 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1010 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1271 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1273 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1597 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1848 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1880 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1942 ++#: ../../gcc/java/parse.y:838 ../../gcc/java/parse.y:842 ++#: ../../gcc/java/parse.y:850 ../../gcc/java/parse.y:1010 ++#: ../../gcc/java/parse.y:1271 ../../gcc/java/parse.y:1273 ++#: ../../gcc/java/parse.y:1597 ../../gcc/java/parse.y:1848 ++#: ../../gcc/java/parse.y:1880 ../../gcc/java/parse.y:1942 + msgid "'{' expected" + msgstr "Se esperaba '{'" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:852 ++#: ../../gcc/java/parse.y:852 + msgid "Missing super class name" + msgstr "No se encuentra el nombre de la super clase" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:862 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:878 ++#: ../../gcc/java/parse.y:862 ../../gcc/java/parse.y:878 + msgid "Missing interface name" + msgstr "No se encuentra el nombre de la interfaz" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:964 ++#: ../../gcc/java/parse.y:964 + msgid "Missing variable initializer" + msgstr "Falta el inicializador de la variable" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:981 ++#: ../../gcc/java/parse.y:981 + msgid "Invalid declaration" + msgstr "Declaración inválida" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:984 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1069 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2143 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2165 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2169 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2204 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2281 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2291 ++#: ../../gcc/java/parse.y:984 ../../gcc/java/parse.y:1069 ++#: ../../gcc/java/parse.y:2143 ../../gcc/java/parse.y:2165 ++#: ../../gcc/java/parse.y:2169 ../../gcc/java/parse.y:2204 ++#: ../../gcc/java/parse.y:2281 ../../gcc/java/parse.y:2291 + msgid "']' expected" + msgstr "Se esperaba ']'" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:988 ++#: ../../gcc/java/parse.y:988 + msgid "Unbalanced ']'" + msgstr "']' desbalanceado" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1024 ++#: ../../gcc/java/parse.y:1024 + msgid "Invalid method declaration, method name required" + msgstr "Declaración de método inválida, se requiere un nombre de método" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1029 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1034 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1039 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2026 ++#: ../../gcc/java/parse.y:1029 ../../gcc/java/parse.y:1034 ++#: ../../gcc/java/parse.y:1039 ../../gcc/java/parse.y:2026 + msgid "Identifier expected" + msgstr "Se esperaba un identificador" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1044 ++#: ../../gcc/java/parse.y:1044 + msgid "Invalid method declaration, return type required" + msgstr "Declaración de método inválida, se requiere un tipo de devolución" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1067 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1511 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1518 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1527 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1529 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1557 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1665 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1971 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2024 ++#: ../../gcc/java/parse.y:1067 ../../gcc/java/parse.y:1511 ++#: ../../gcc/java/parse.y:1518 ../../gcc/java/parse.y:1527 ++#: ../../gcc/java/parse.y:1529 ../../gcc/java/parse.y:1557 ++#: ../../gcc/java/parse.y:1665 ../../gcc/java/parse.y:1971 ++#: ../../gcc/java/parse.y:2024 + msgid "')' expected" + msgstr "Se esperaba ')'" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1083 ++#: ../../gcc/java/parse.y:1083 + msgid "Missing formal parameter term" + msgstr "Falta el término de parámetro formal" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1098 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1103 ++#: ../../gcc/java/parse.y:1098 ../../gcc/java/parse.y:1103 + msgid "Missing identifier" + msgstr "Falta el identificador" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1123 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1132 ++#: ../../gcc/java/parse.y:1123 ../../gcc/java/parse.y:1132 + msgid "Missing class type term" + msgstr "Falta el término de tipo de clase" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1288 ++#: ../../gcc/java/parse.y:1288 + msgid "Invalid interface type" + msgstr "Tipo de interfaz inválido" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1475 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1644 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1646 ++#: ../../gcc/java/parse.y:1475 ../../gcc/java/parse.y:1644 ++#: ../../gcc/java/parse.y:1646 + msgid "':' expected" + msgstr "Se esperaba ':'" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1497 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1502 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1507 ++#: ../../gcc/java/parse.y:1497 ../../gcc/java/parse.y:1502 ++#: ../../gcc/java/parse.y:1507 + msgid "Invalid expression statement" + msgstr "Declaración de expresión inválida" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1525 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1553 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1593 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1661 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1729 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1850 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1928 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2018 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2020 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2028 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2264 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2266 ++#: ../../gcc/java/parse.y:1525 ../../gcc/java/parse.y:1553 ++#: ../../gcc/java/parse.y:1593 ../../gcc/java/parse.y:1661 ++#: ../../gcc/java/parse.y:1729 ../../gcc/java/parse.y:1850 ++#: ../../gcc/java/parse.y:1928 ../../gcc/java/parse.y:2018 ++#: ../../gcc/java/parse.y:2020 ../../gcc/java/parse.y:2028 ++#: ../../gcc/java/parse.y:2264 ../../gcc/java/parse.y:2266 + msgid "'(' expected" + msgstr "Se esperaba '('" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1595 ++#: ../../gcc/java/parse.y:1595 + msgid "Missing term or ')'" + msgstr "Falta término o ')'" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1642 ++#: ../../gcc/java/parse.y:1642 + msgid "Missing or invalid constant expression" + msgstr "Expresión constante faltante o inválida" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1663 ++#: ../../gcc/java/parse.y:1663 + msgid "Missing term and ')' expected" + msgstr "Faltan término y ')' esperados" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1702 ++#: ../../gcc/java/parse.y:1702 + msgid "Invalid control expression" + msgstr "Expresión de control inválida" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1704 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1706 ++#: ../../gcc/java/parse.y:1704 ../../gcc/java/parse.y:1706 + msgid "Invalid update expression" + msgstr "Expresión de actualización inválida" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1731 ++#: ../../gcc/java/parse.y:1731 + msgid "Invalid init statement" + msgstr "Declaración de inicio inválida" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1931 ++#: ../../gcc/java/parse.y:1931 + msgid "Missing term or ')' expected" + msgstr "Faltan término o ')' esperados" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1973 ++#: ../../gcc/java/parse.y:1973 + msgid "'class' or 'this' expected" + msgstr "Se esperaba 'class' o 'this'" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1975 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1977 ++#: ../../gcc/java/parse.y:1975 ../../gcc/java/parse.y:1977 + msgid "'class' expected" + msgstr "Se esperaba 'class'" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2022 ++#: ../../gcc/java/parse.y:2022 + msgid "')' or term expected" + msgstr "Se esperaba ')' o término" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2141 ++#: ../../gcc/java/parse.y:2141 + msgid "'[' expected" + msgstr "Se esperaba '['" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2219 ++#: ../../gcc/java/parse.y:2219 + msgid "Field expected" + msgstr "Se esperaba un campo" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2276 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2286 ++#: ../../gcc/java/parse.y:2276 ../../gcc/java/parse.y:2286 + msgid "Missing term and ']' expected" + msgstr "Faltan término y ']' esperados" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2390 ++#: ../../gcc/java/parse.y:2390 + msgid "']' expected, invalid type expression" + msgstr "Se esperaba ']', expresión de tipo inválida" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2393 ++#: ../../gcc/java/parse.y:2393 + msgid "Invalid type expression" + msgstr "Expresión de tipo inválida" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2505 ++#: ../../gcc/java/parse.y:2505 + msgid "Invalid reference type" + msgstr "Tipo de referencia inválido" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2977 ++#: ../../gcc/java/parse.y:2977 + msgid "Constructor invocation must be first thing in a constructor" + msgstr "La invocación del constructor debe ser el primer elemento en un constructor" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2979 ++#: ../../gcc/java/parse.y:2979 + msgid "Only constructors can invoke constructors" + msgstr "Solamente los constructores pueden invocar constructores" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2987 ++#: ../../gcc/java/parse.y:2987 + #, c-format + msgid ": `%s' JDK1.1(TM) feature" + msgstr ": `%s' es una característica de JDK1.1(MR)" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:3046 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:3048 ++#: ../../gcc/java/parse.y:3046 ../../gcc/java/parse.y:3048 + #, c-format + msgid "" + "%s.\n" +@@ -19089,32 +19095,32 @@ + "%s.\n" + "%s" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:6909 ++#: ../../gcc/java/parse.y:6909 + #, c-format + msgid "malformed .zip archive in CLASSPATH: %s" + msgstr "archivo .zip malformado en CLASSPATH: %s" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:6980 ++#: ../../gcc/java/parse.y:6980 + #, c-format + msgid "Can't find default package `%s'. Check the CLASSPATH environment variable and the access to the archives" + msgstr "No se puede encontrar el paquete por defecto `%s'. Revise la variable de ambiente CLASSPATH y el acceso a los archivos" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12193 ++#: ../../gcc/java/parse.y:12193 + #, c-format + msgid "missing static field `%s'" + msgstr "falta el campo static `%s'" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12198 ++#: ../../gcc/java/parse.y:12198 + #, c-format + msgid "not a static field `%s'" + msgstr "'%s' no es un campo static" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12241 ++#: ../../gcc/java/parse.y:12241 + #, c-format + msgid "No case for %s" + msgstr "No hay case para %s" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:13173 ++#: ../../gcc/java/parse.y:13173 + #, c-format + msgid "unregistered operator %s" + msgstr "operador %s sin registrar" +@@ -19453,1689 +19459,1373 @@ + msgid "[super ...] must appear in a method context" + msgstr "[super ...] debe aparecer en el contexto de un método" + +-#: objc/objc-parse.y:2701 ++#: objc/objc-parse.y:2700 + msgid "`@end' must appear in an implementation context" + msgstr "`@end' debe aparecer en el contexto de una implementación" + +-#: objc/objc-parse.y:2914 ++#: objc/objc-parse.y:2913 + msgid "method definition not in class context" + msgstr "la definición de método no está en el contexto de la clase" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:23 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:21 + msgid "Display this information" + msgstr "Muestra esta información" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:29 +-msgid "--param =\tSet paramter to value. See below for a complete list of parameters" +-msgstr "--param =\tEstablece el parámetro al valor. Vea a continuación para una lista completa de parámetros" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:27 ++msgid "--param =\tSet parameter to value. See below for a complete list of parameters" ++msgstr "--param =\tEstablece el parámetro al valor. Vea a continuación para una lista completa de parámetros" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:38 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:36 + msgid "-A=\tAssert the to . Putting '-' before disables the to " + msgstr "-A=\tRelaciona la uesta a la . Al colocar '-' antes de la desactiva la uesta a la " + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:41 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:39 + msgid "Do not discard comments" + msgstr "No descartar comentarios" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:44 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:42 + msgid "Do not discard comments in macro expansions" + msgstr "No descartar comentarios en expansiones de macro" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:47 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:45 + msgid "-D[=]\tDefine a with as its value. If just is given, is taken to be 1" + msgstr "-D[=]\tDefine una con como su valor. Si sólo se da la , se toma como 1" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:53 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:51 + msgid "-G\tPut global and static data smaller than bytes into a special section (on some targets)" + msgstr "-G\tColoca los datos globales y estáticos más pequeños que bytes en una sección especial (en algunos objetivos)" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:56 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:54 + msgid "Print the name of header files as they are used" + msgstr "Mostrar los nombres de los ficheros de encabezado mientras se utilizan" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:65 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:57 ++msgid "-I \tAdd to the end of the main include path. -I- gives more include path control; see info documentation" ++msgstr "-I \tAgregar el ectorio al final de la ruta de inclusión principal. -I- da más control de ruta de inclusión; vea la documentación en formato info" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:60 ++msgid "Generate make dependencies" ++msgstr "Generar dependencias de make" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:63 + msgid "Generate make dependencies and compile" + msgstr "Generar dependencias de make y compilar" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:74 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:66 ++msgid "-MF \tWrite dependency output to the given file" ++msgstr "-MF \tEscribir la salida de dependencias al fichero dado" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:69 + msgid "Treat missing header files as generated files" + msgstr "Tratar los ficheros de encabezado faltantes como ficheros generados" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:80 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:72 ++msgid "Like -M but ignore system header files" ++msgstr "Como -M pero ignora los ficheros de encabezado del sistema" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:75 + msgid "Like -MD but ignore system header files" + msgstr "Como -MD pero ignora los ficheros de encabezado del sistema" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:89 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:78 ++msgid "Generate phony targets for all headers" ++msgstr "Generar objetivos de prueba para todos los encabezados" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:81 + msgid "-MQ \tAdd a MAKE-quoted target" + msgstr "-MQ \tAgregar un objetivo tipo-MAKE" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:95 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:84 ++msgid "-MT \tAdd an unquoted target" ++msgstr "-MT \tAgregar un objetivo no citado" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:87 + msgid "-O\tSet optimization level to " + msgstr "-O\tEstablecer el nivel de optimización a " + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:98 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:90 + msgid "Optimize for space rather than speed" + msgstr "Optimizar para espacio en lugar de velocidad" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:101 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:93 + msgid "Do not generate #line directives" + msgstr "No generar directivas #line" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:104 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:96 + msgid "-U\tUndefine " + msgstr "-U\tIndefinir la " + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:107 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:99 + msgid "This switch is deprecated; use -Wextra instead" + msgstr "Esta opción es obsoleta; utilice en su lugar -Wextra" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:113 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:105 + msgid "Warn about returning structures, unions or arrays" + msgstr "Avisar sobre la devolución de estructuras, unions o matrices" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:119 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:108 ++msgid "Enable most warning messages" ++msgstr "Activar casi todos los mensajes de aviso" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:111 + msgid "Warn about casting functions to incompatible types" + msgstr "Avisar por funciones de conversión a tipos incompatibles" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:122 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:114 + msgid "Warn about pointer casts which increase alignment" + msgstr "Avisar sobre conversión de punteros que incremente la alineación" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:125 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:117 + msgid "Warn about casts which discard qualifiers" + msgstr "Avisar sobre conversiones que descartan calificadores" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:128 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:120 + msgid "Warn about subscripts whose type is \"char\"" + msgstr "Avisar sobre subíndices cuyo tipo es \"char\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:137 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:123 ++msgid "Warn about possibly nested block comments, and C++ comments spanning more than one physical line" ++msgstr "Avisar sobre la posibilidad de bloques de comentarios anidados, y comentarios de C++ que abarquen más de una línea física" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:126 ++msgid "Synonym for -Wcomment" ++msgstr "Sinónimo de -Wcomment" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:129 + msgid "Warn about possibly confusing type conversions" + msgstr "Avisar sobre la posibilidad de conversión de tipos confusas" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:140 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:132 + msgid "Warn when all constructors and destructors are private" + msgstr "Avisar cuando todos los constructores y destructores son privados" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:143 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:135 + msgid "Warn when a declaration is found after a statement" + msgstr "Avisar cuando se encuentra una declaración después de una declaración" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:146 +-msgid "Warn if deprecated class, method, or field is used" +-msgstr "Avisar si se usan clases, métodos o campos obsoletos" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:138 ++msgid "Warn about deprecated compiler features" ++msgstr "Avisar sobre características obsoletas del compilador" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:149 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:141 + msgid "Warn about uses of __attribute__((deprecated)) declarations" + msgstr "Avisar sobre usos de declaraciones __attribute__((obsoleto))" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:152 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:144 + msgid "Warn when an optimization pass is disabled" + msgstr "Avisar cuando se desactivó un paso de optimización" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:155 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:147 + msgid "Warn about compile-time integer division by zero" + msgstr "Avisar sobre la división entera por cero en tiempo de compilación" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:158 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:150 + msgid "Warn about violations of Effective C++ style rules" + msgstr "Avisar violaciones de reglas de estilo de Effective C++" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:161 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:153 + msgid "Warn about stray tokens after #elif and #endif" + msgstr "Avisar sobre elementos sobrantes después de #elif y #endif" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:164 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:156 + msgid "Treat all warnings as errors" + msgstr "Tratar todos los avisos como errores" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:167 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:159 + msgid "Make implicit function declarations an error" + msgstr "Hacer que la declaración implícita de funciones sea un error" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:170 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:162 + msgid "Print extra (possibly unwanted) warnings" + msgstr "Mostrar avisos extra (posiblemente no deseados)" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:173 +-msgid "Warn if deprecated empty statements are found" +-msgstr "Avisar si se encuentran declaraciones vacías obsoletas" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:176 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:165 + msgid "Warn if testing floating point numbers for equality" + msgstr "Avisar si se prueban números de coma flotante para equidad" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:179 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:168 + msgid "Warn about printf/scanf/strftime/strfmon format string anomalies" + msgstr "Avisar sobre anomalías de cadena de formato de printf/scanf/strftime/strfmon" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:182 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:171 + msgid "Warn if passing too many arguments to a function for its format string" + msgstr "Avisar si se pasan demasiados argumentos a una función para su cadena de formato" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:185 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:174 + msgid "Warn about format strings that are not literals" + msgstr "Avisar sobre el uso de cadenas de formato que no son literales" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:188 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:177 + msgid "Warn about possible security problems with format functions" + msgstr "Avisar sobre posibles problemas de seguridad con funciones de formato" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:191 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:180 + msgid "Warn about strftime formats yielding 2-digit years" + msgstr "Avisar sobre formatos de strftime que producen dos dígitos para el año" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:200 +-msgid "Enable warnings about inter-procedural problems" +-msgstr "Activar los avisos sobre problemas interprocedurales" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:206 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:192 + msgid "Warn about implicit function declarations" + msgstr "Avisar sobre la declaración implícita de funciones" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:209 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:195 + msgid "Warn when a declaration does not specify a type" + msgstr "Avisar cuando una declaración no especifique un tipo" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:215 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:198 ++msgid "Deprecated. This switch has no effect." ++msgstr "Obsoleto. Esta opción no tiene efecto." ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:201 + msgid "Warn about variables which are initialized to themselves." + msgstr "Avisar sobre variables que se inicialicen ellas mismas." + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:218 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:204 + msgid "Warn when an inlined function cannot be inlined" + msgstr "Avisar cuando una función inline no puede ser inline" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:221 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:207 + msgid "Warn about invalid uses of the \"offsetof\" macro" + msgstr "Avisar sobre usos inválidos de la macro \"offsetof\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:224 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:210 + msgid "Warn about PCH files that are found but not used" + msgstr "Avisar sobre ficheros PCH que se encuentran pero no se usan" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:227 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:213 + msgid "-Wlarger-than-\tWarn if an object is larger than bytes" + msgstr "-Wlarger-than-\tAvisar si un objeto es más grande que bytes" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:230 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:216 + msgid "Do not warn about using \"long long\" when -pedantic" + msgstr "No avisar sobre el uso de \"long long\" cuando se use -pedantic" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:233 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:219 + msgid "Warn about suspicious declarations of \"main\"" + msgstr "Avisar sobre declaraciones sospechosas de \"main\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:236 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:222 + msgid "Warn about possibly missing braces around initializers" + msgstr "Avisar sobre posibles llaves faltantes alrededor de los inicializadores" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:239 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:225 + msgid "Warn about global functions without previous declarations" + msgstr "Avisar sobre funciones globales sin declaraciones previas" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:242 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:228 + msgid "Warn about functions which might be candidates for format attributes" + msgstr "Avisar por funciones que pueden ser candidatas para atributos de formato" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:245 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:231 + msgid "Warn about functions which might be candidates for __attribute__((noreturn))" + msgstr "Avisar sobre funciones que pueden ser candidatas para __attribute((noreturn))" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:248 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:234 + msgid "Warn about global functions without prototypes" + msgstr "Avisar sobre funciones globales sin prototipos" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:251 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:237 + msgid "Warn about use of multi-character character constants" + msgstr "Avisar sobre el uso de constantes de carácter multicaracteres" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:254 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:240 + msgid "Warn about \"extern\" declarations not at file scope" + msgstr "Avisar sobre declaraciones \"extern\" que no están en el ámbito del fichero" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:257 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:243 + msgid "Warn when non-templatized friend functions are declared within a template" + msgstr "Avisar cuando las funciones friend sin plantillas se declaran dentro de una plantilla" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:260 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:246 + msgid "Warn about non-virtual destructors" + msgstr "Avisar sobre destructores no virtuales" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:266 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:252 + msgid "Warn if a C-style cast is used in a program" + msgstr "Avisar si se usa una conversión de estilo C en un programa" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:269 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:255 + msgid "Warn if an old-style parameter definition is used" + msgstr "Avisar si se usa un parámetro de estilo antiguo en una definición" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:272 +-msgid "Warn if .class files are out of date" +-msgstr "Avisar si los ficheros .class están desactualizados" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:275 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:258 + msgid "Warn about overloaded virtual function names" + msgstr "Avisar sobre nombres de funciones virtual sobrecargadas" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:278 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:261 + msgid "Warn when the packed attribute has no effect on struct layout" + msgstr "Avisar cuando el atributo packed no tiene efecto en la disposición de un struct" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:281 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:264 + msgid "Warn when padding is required to align structure members" + msgstr "Avisar cuando se requiere relleno para alinear a los miembros de una estructura" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:284 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:267 + msgid "Warn about possibly missing parentheses" + msgstr "Avisar sobre posibles paréntesis faltantes" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:287 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:270 + msgid "Warn when converting the type of pointers to member functions" + msgstr "Avisar cuando se convierte el tipo de punteros sobre punteros a funciones miembro" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:290 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:273 + msgid "Warn about function pointer arithmetic" + msgstr "Avisar sobre la aritmética de punteros de funciones" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:293 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:276 + msgid "Warn if inherited methods are unimplemented" + msgstr "Avisar si los métodos heredados no están implementados" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:296 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:279 + msgid "Warn about multiple declarations of the same object" + msgstr "Avisar sobre declaraciones múltiples del mismo objeto" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:299 +-msgid "Warn if modifiers are specified when not necessary" +-msgstr "Avisar si se especifican modificadores cuando no son necesarios" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:302 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:282 + msgid "Warn when the compiler reorders code" + msgstr "Avisar cuando el compilador reordene código" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:305 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:285 + msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)" + msgstr "Avisar cuando el tipo de devolución por defecto de una función cambia a \"int\" (C), o sobre tipos de devolución inconsistentes (C++)" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:308 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:288 + msgid "Warn if a selector has multiple methods" + msgstr "Avisar si un selector tiene métodos múltiples" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:311 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:291 + msgid "Warn about possible violations of sequence point rules" + msgstr "Avisar sobre posibles violaciones a las reglas de secuencia de punto" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:314 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:294 + msgid "Warn when one local variable shadows another" + msgstr "Avisar cuando una variable local oscurece otra" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:317 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:297 + msgid "Warn about signed-unsigned comparisons" + msgstr "Avisar sobre comparaciones signed-unsigned" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:320 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:300 + msgid "Warn when overload promotes from unsigned to signed" + msgstr "Avisar cuando la sobrecarga promueva de unsigned a signed" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:323 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:303 + msgid "Warn about code which might break strict aliasing rules" + msgstr "Avisar sobre código que pueda romper las reglas estrictas de aliases" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:326 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:306 + msgid "Warn about unprototyped function declarations" + msgstr "Avisar sobre declaraciones de función sin prototipo" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:329 +-msgid "Warn about constructs with surprising meanings" +-msgstr "Avisar acerca de constructores con significados sorprendentes" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:332 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:309 + msgid "Warn about enumerated switches, with no default, missing a case" + msgstr "Avisar sobre switches enumerados, sin valor por defecto, que carezcan de un case" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:335 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:312 + msgid "Warn about enumerated switches missing a \"default:\" statement" + msgstr "Avisar sobre switches enumerados que carezcan de una declaración \"default:\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:338 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:315 + msgid "Warn about all enumerated switches missing a specific case" + msgstr "Avisar sobre todos los switches enumerados que carezcan de un case específico" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:341 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:318 + msgid "Warn when synthesis behavior differs from Cfront" + msgstr "Avisar cuando el comportamiento de síntesis difiera de Cfront" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:344 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:321 + msgid "Do not suppress warnings from system headers" + msgstr "No suprimir los avisos de los encabezados del sistema" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:347 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:324 + msgid "Warn about features not present in traditional C" + msgstr "Avisar sobre características no presentes en C tradicional" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:356 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:327 ++msgid "Warn if trigraphs are encountered that might affect the meaning of the program" ++msgstr "Avisar si se encuentran trigrafos que puedan afectar el significado del programa" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:333 + msgid "Warn if an undefined macro is used in an #if directive" + msgstr "Avisar si se usa una macro indefinida en una directiva #if" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:359 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:336 + msgid "Warn about uninitialized automatic variables" + msgstr "Avisar sobre variables automáticas sin inicializar" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:362 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:339 + msgid "Warn about unrecognized pragmas" + msgstr "Avisar sobre pragmas no reconocidos" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:365 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:342 + msgid "Warn about code that will never be executed" + msgstr "Avisar sobre código que nunca se ejecutará" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:368 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:345 + msgid "Enable all -Wunused- warnings" + msgstr "Activar todos los avisos -Wunused-" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:371 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:348 + msgid "Warn when a function is unused" + msgstr "Avisar cuando no se use una función" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:374 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:351 + msgid "Warn when a label is unused" + msgstr "Avisar cuando no se use una etiqueta" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:377 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:354 + msgid "Warn about macros defined in the main file that are not used" + msgstr "Avisar sobre macros definidas en el fichero principal que no se usan" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:380 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:357 + msgid "Warn when a function parameter is unused" + msgstr "Avisar cuando no se use un parámetro de una función" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:383 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:360 + msgid "Warn when an expression value is unused" + msgstr "Avisar cuando no se use un valor de una expresión" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:386 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:363 + msgid "Warn when a variable is unused" + msgstr "Avisar cuando no se use una variable" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:389 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:366 + msgid "Give strings the type \"array of char\"" + msgstr "Dar a las cadenas el tipo \"matriz de char\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:392 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:369 + msgid "A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead" + msgstr "Un sinónimo de -std=c89. En una versión futura de GCC será sinónimo con -std=99 en lugar del actual" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:395 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:372 + msgid "-aux-info \tEmit declaration information into " + msgstr "-aux-info \tEmitir la información de declaraciones en el " + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:407 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:384 + msgid "-d\tEnable dumps from specific passes of the compiler" + msgstr "-d\tActiva los volcados de pasos específicos del compilador" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:410 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:387 + msgid "-dumpbase \tSet the file basename to be used for dumps" + msgstr "-dumpbase \tEstablecer el nombre base a usar para los volcados" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:413 +-msgid "--CLASSPATH\tDeprecated; use --classpath instead" +-msgstr "--CLASSPATH\tObsoleto; utilice en su lugar --classpath" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:425 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:399 + msgid "Enforce class member access control semantics" + msgstr "Cumplir las semánticas de control de acceso de miembros de clase" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:428 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:402 + msgid "Align the start of functions" + msgstr "Alinear el inicio de las funciones" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:434 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:408 + msgid "Align labels which are only reached by jumping" + msgstr "Alinear las etiquetas que solamente se alcanzan saltando" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:440 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:414 + msgid "Align all labels" + msgstr "Alinear todas las etiquetas" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:446 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:420 + msgid "Align the start of loops" + msgstr "Alinear el inicio de los ciclos" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:455 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:429 + msgid "Change when template instances are emitted" + msgstr "Cambiar cuando se emitan las instancias de la plantilla" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:458 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:432 + msgid "Specify that arguments may alias each other and globals" + msgstr "Especificar que los argumentos pueden ser alias de cada otro y de los globales" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:461 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:435 + msgid "Assume arguments may alias globals but not each other" + msgstr "Asumir que los argumentos pueden ser alias de globales pero no de cada otro" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:464 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:438 + msgid "Assume arguments alias neither each other nor globals" + msgstr "Asumir que los argumentos no pueden ser alias de globales o de cada otro" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:467 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:441 + msgid "Recognize the \"asm\" keyword" + msgstr "Reconocer la palabra clave \"asm\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:479 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:444 + msgid "Generate unwind tables that are exact at each instruction boundary" + msgstr "Generar tablas de desenredo que sean exactas en cada límite de instrucción" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:482 +-msgid "Do not treat local variables and COMMON blocks as if they were named in SAVE statements" +-msgstr "No tratar las variables locales y los bloques COMMON como si fueran nombrados en declaraciones SAVE" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:485 +-msgid "Backslashes in character and hollerith constants are special (not C-style)" +-msgstr "Las barras invertidas en constantes de caracter y hollerith no son especiales (no estilo C)" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:488 +-msgid "Delete libU77 intrinsics with bad interfaces" +-msgstr "Borrar los intrínsecos libU77 con interfaces erróneas" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:491 +-msgid "Disable libU77 intrinsics with bad interfaces" +-msgstr "Desactivar los intrínsecos libU77 con interfaces erróneas" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:494 +-msgid "Enable libU77 intrinsics with bad interfaces" +-msgstr "Activar los intrínsecos libU77 con interfaces erróneas" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:497 +-msgid "Hide libU77 intrinsics with bad interfaces" +-msgstr "Esconder los intrínsecos libU77 con interfaces erróneas" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:500 +-msgid "--bootclasspath=\tReplace system path" +-msgstr "--bootclasspath=\tReemplazar la ruta del sistema" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:503 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:447 + msgid "Generate code to check bounds before indexing arrays" + msgstr "Generar código para revisar los límites antes de indizar matrices" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:506 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:450 + msgid "Replace add, compare, branch with branch on count register" + msgstr "Reemplazar add, compare, branch con branch en la cuenta de registros" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:509 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:453 + msgid "Use profiling information for branch probabilities" + msgstr "Usar la información de análisis de perfil para las probabilidades de ramificación" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:512 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:456 + msgid "Perform branch target load optimization before prologue / epilogue threading" + msgstr "Realizar optimización de carga de ramificación objetivo antes del hilo prólogo / epílogo" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:515 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:459 + msgid "Perform branch target load optimization after prologue / epilogue threading" + msgstr "Realizar optimización de carga de ramificación objetivo después del hilo prólogo / epílogo" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:518 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:462 + msgid "Recognize built-in functions" + msgstr "Reconocer funciones internas" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:524 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:468 + msgid "-fcall-saved-\tMark as being preserved across functions" + msgstr "-fcall-saved-\tMarcar el como preservado entre funciones" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:527 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:471 + msgid "-fcall-used-\tMark as being corrupted by function calls" + msgstr "-fcall-used-\tMarcar el como corrupto para llamadas de función" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:530 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:474 + msgid "Save registers around function calls" + msgstr "Guardar registros alrededor de llamadas de función" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:533 +-msgid "Program written in strict mixed-case" +-msgstr "Programa escrito estrictamente con mayúsculas y minúsculas mezcladas" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:536 +-msgid "Compile as if program written in lowercase" +-msgstr "Compilar como si el programa estuviera escrito en minúsculas" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:539 +-msgid "Preserve case used in program" +-msgstr "Preservar todo el deletreo (mayúsculas/minúsculas) usado en el programa" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:542 +-msgid "Program written in lowercase" +-msgstr "Programa escrito en minúsculas" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:545 +-msgid "Program written in uppercase" +-msgstr "Programa escrito en mayúsculas" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:548 +-msgid "Compile as if program written in uppercase" +-msgstr "Compilar como si el programa estuviera escrito en mayúsculas" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:551 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:477 + msgid "Check the return value of new" + msgstr "Revisar el valor de devolución de new" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:557 +-msgid "--classpath=\tSet class path" +-msgstr "--classpath=\tEstablecer la ruta de clases" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:560 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:480 + msgid "Do not put uninitialized globals in the common section" + msgstr "No poner globales sin inicializar en la sección común" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:566 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:483 + msgid "Allow the arguments of the '?' operator to have different types" + msgstr "Permitir que los argumentos del operador '?' tengan tipos diferentes" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:569 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:486 + msgid "Reduce the size of object files" + msgstr "Reducir el tamaño de los ficheros objeto" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:572 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:489 + msgid "Make string literals \"const char[]\" not \"char[]\"" + msgstr "Hacer que las cadenas literales sean \"const char[]\" en lugar de \"char[]\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:575 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:492 + msgid "-fconst-string-class=\tUse class for constant strings" + msgstr "-fconst-string-class=\tUsar la clase para cadenas constantes" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:578 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:495 + msgid "Perform a register copy-propagation optimization pass" + msgstr "Realizar el paso de optimización de copia-propagación de registros" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:581 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:498 + msgid "Perform cross-jumping optimization" + msgstr "Realizar optimizaciones de saltos cruzados" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:584 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:501 + msgid "When running CSE, follow jumps to their targets" + msgstr "Cuando se esté ejecutando CSE, seguir a los saltos a sus objetivos" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:587 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:504 + msgid "When running CSE, follow conditional jumps" + msgstr "Cuando se esté ejecutando CSE, seguir a los saltos condicionales" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:590 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:507 + msgid "Place data items into their own section" + msgstr "Colocar los elementos de datos en su propia sección" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:593 +-msgid "Emit special debugging information for COMMON and EQUIVALENCE (disabled)" +-msgstr "Emitir información especial de depuración para COMMON y EQUIVALENCE (desactivado)" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:596 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:510 + msgid "Inline member functions by default" + msgstr "Hacer Inline por defecto a las funciones miembro" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:599 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:513 + msgid "Defer popping functions args from stack until later" + msgstr "Postergar la extracción de argumentos de funciones de la pila hasta más tarde" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:602 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:516 + msgid "Attempt to fill delay slots of branch instructions" + msgstr "Intentar rellenar las ranuras de retraso de las instrucciones de ramificación" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:605 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:519 + msgid "Delete useless null pointer checks" + msgstr "Borrar las revisiones de punteros nulos sin uso" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:608 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:522 + msgid "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source location at the beginning of line-wrapped diagnostics" + msgstr "-fdiagnostics-show-location=[once|every-line]\tIndica que tan seguido se debe emitir la ubicación del código al inicio de los diagnósticos con corte de línea" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:611 +-msgid "Allow '$' in symbol names" +-msgstr "Permitir '$' en los nombres de símbolos" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:614 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:525 + msgid "Permit '$' as an identifier character" + msgstr "Permitir '$' como un identificador de carácter" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:620 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:528 ++msgid "-fdump-\tDump various compiler internals to a file" ++msgstr "-fdump-\tVolcar varios internos del compilador a un fichero" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:531 + msgid "Suppress output of instruction numbers and line number notes in debugging dumps" + msgstr "Suprimir la salida de notas de números de instrucción y números de linea en los volcados de depuración" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:626 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:537 + msgid "Perform DWARF2 duplicate elimination" + msgstr "Realizar la eliminación de DWARF2 duplicados" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:629 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:632 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:540 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:543 + msgid "Perform unused type elimination in debug info" + msgstr "Realizar eliminación de tipos sin uso en la información de depuración" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:641 +-msgid "Have front end emulate COMPLEX arithmetic to avoid bugs" +-msgstr "Hace que el frente emule aritmética COMPLEX para evitar `bugs'" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:644 +-msgid "--encoding=\tChoose input encoding (defaults from your locale)" +-msgstr "--encoding=\tEscoger la codificación de entrada (por defecto viene del local)" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:647 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:546 + msgid "Generate code to check exception specifications" + msgstr "Generar código para revisar excepciones de especificaciones" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:653 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:552 + msgid "Enable exception handling" + msgstr "Activar el manejo de excepciones" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:656 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:555 + msgid "-fexec-charset=\tConvert all strings and character constants to character set " + msgstr "-fexec-charset=\tConvertir todas las constantes de cadenas y carácter al conjunto de caracteres " + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:659 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:558 + msgid "Perform a number of minor, expensive optimizations" + msgstr "Realizar un número de optimizaciones menores y costosas" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:668 +-msgid "f2c-compatible code can be generated" +-msgstr "Se puede generar generar código compatible con f2c" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:671 +-msgid "Delete non-FORTRAN-77 intrinsics f2c supports" +-msgstr "Borrar los intrínsecos de FORTRAN que no es 77 que soporta f2c" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:674 +-msgid "Disable non-FORTRAN-77 intrinsics f2c supports" +-msgstr "Desactivar los intrínsecos de FORTRAN que no es 77 que soporta f2c" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:677 +-msgid "Enable non-FORTRAN-77 intrinsics f2c supports" +-msgstr "Activar los intrínsecos de FORTRAN que no es 77 que soporta f2c" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:680 +-msgid "Hide non-FORTRAN-77 intrinsics f2c supports" +-msgstr "Esconder los intrínsecos de FORTRAN que no es 77 que soporta f2c" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:683 +-msgid "Unsupported; generate libf2c-calling code" +-msgstr "Sin soporte; genera código de llamada a libf2c" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:686 +-msgid "Program is written in typical FORTRAN 66 dialect" +-msgstr "El programa está escrito en el dialecto típico FORTRAN 66" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:689 +-msgid "Program is written in typical Unix-f77 dialect" +-msgstr "El programa está escrito en el dialecto típico Unix-f77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:692 +-msgid "Program is written in Fortran-90-ish dialect" +-msgstr "El programa está escrito en un dialecto cercano a Fortran-90" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:695 +-msgid "Delete non-FORTRAN-77 intrinsics F90 supports" +-msgstr "Borrar los intrínsecos de FORTRAN que no es 77 que soporta F90" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:698 +-msgid "Disable non-FORTRAN-77 intrinsics F90 supports" +-msgstr "Desactivar los intrínsecos de FORTRAN que no es 77 que soporta F90" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:701 +-msgid "Enable non-FORTRAN-77 intrinsics F90 supports" +-msgstr "Activar los intrínsecos de FORTRAN que no es 77 que soporta F90" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:704 +-msgid "Hide non-FORTRAN-77 intrinsics F90 supports" +-msgstr "Esconder los intrínsecos de FORTRAN que no es 77 que soporta F90" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:716 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:567 + msgid "Assume no NaNs or infinities are generated" + msgstr "Asumir que no se generan NaNs o infinitos" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:719 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:570 + msgid "-ffixed-\tMark as being unavailable to the compiler" + msgstr "-ffixed-\tMarca el como no disponible para el compilador" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:725 +-msgid "ffixed-line-length-\tSet the maximum line length to " +-msgstr "ffixed-line-length-\tLimita la longitud máxima de línea a " +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:728 +-msgid "Unsupported; affects code generation of arrays" +-msgstr "Sin soporte; afecta la generación de código de las matrices" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:731 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:579 + msgid "Do not store floats in registers" + msgstr "No guardar floats en registros" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:734 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:582 + msgid "Scope of for-init-statement variables is local to the loop" + msgstr "El ámbito de las variables de la declaración de inicio-de-for es local para el ciclo" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:737 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:585 + msgid "Copy memory address constants into registers before use" + msgstr "Copiar las constantes de direcciones de memoria en registros antes de usarlos" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:740 +-msgid "Always check for non gcj generated classes archives" +-msgstr "Revisar siempre por archivos de clases no generados por gcj" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:743 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:588 + msgid "Copy memory operands into registers before use" + msgstr "Copiar los operandos de memoria en registros antes de usarlos" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:746 +-msgid "Generate code to check subscript and substring bounds" +-msgstr "Generar código para revisar los límites de subíndices y subcadenas" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:749 +-msgid "Program is written in Fortran-90-ish free form" +-msgstr "El programa está escrito en una forma libre cercana a Fortran-90" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:752 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:591 + msgid "Do not assume that standard C libraries and \"main\" exist" + msgstr "No asumir que existen las bibliotecas C estándard y \"main\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:755 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:594 + msgid "Allow function addresses to be held in registers" + msgstr "Permitir que las direcciones de las funciones se conservern en registros" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:758 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:597 + msgid "Place each function into its own section" + msgstr "Colocar cada función en su propia sección" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:761 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:600 + msgid "Perform global common subexpression elimination" + msgstr "Realizar la eliminación de subexpresiones comunes globales" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:764 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:603 + msgid "Perform redundant load after store elimination in global common subexpression elimination" + msgstr "Realizar el movimiento de la carga mejorada durante la eliminación de subexpresiones comunes globales" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:767 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:606 + msgid "Perform enhanced load motion during global common subexpression elimination" + msgstr "Realizar el movimiento de la carga mejorada durante la eliminación de subexpresiones comunes globales" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:770 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:609 + msgid "Perform store motion after global common subexpression elimination" + msgstr "Realizar el movimiento de guardado después de la eliminación de subexpresiones comunes globales" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:773 +-msgid "Enable fatal diagnostics about inter-procedural problems" +-msgstr "Activar los diagnósticos fatales sobre problemas interprocedurales" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:776 +-msgid "Delete non-FORTRAN-77 intrinsics g77 supports" +-msgstr "Borrar los intrínsecos de FORTRAN que no es 77 que soporta g77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:779 +-msgid "Disable non-FORTRAN 77 intrinsics F90 supports" +-msgstr "Desactivar los intrínsecos de FORTRAN que no es 77 que soporta F90" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:782 +-msgid "Enable non-FORTRAN 77 intrinsics F90 supports" +-msgstr "Activar los intrínsecos de FORTRAN que no es 77 que soporta F90" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:785 +-msgid "Hide non-FORTRAN 77 intrinsics F90 supports" +-msgstr "Esconder los intrínsecos de FORTRAN que no es 77 que soporta F90" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:788 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:612 + msgid "Recognize GNU-defined keywords" + msgstr "Reconocer las palabras claves definidas por GNU" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:791 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:615 + msgid "Generate code for GNU runtime environment" + msgstr "Generar código para el ambiente de tiempo de ejecución GNU" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:794 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:618 + msgid "Enable guessing of branch probabilities" + msgstr "Activar la predicción de probabilidades de ramificación" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:809 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:630 + msgid "Assume normal C execution environment" + msgstr "Asumir el ambiente normal de ejecución C" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:812 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:633 + msgid "Enable support for huge objects" + msgstr "Activar el soporte para objetos enormes" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:815 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:636 + msgid "Process #ident directives" + msgstr "Procesar directivas #ident" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:818 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:639 + msgid "Perform conversion of conditional jumps to branchless equivalents" + msgstr "Realizar la conversión de saltos condicionales a equivalentes sin ramificación" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:821 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:642 + msgid "Perform conversion of conditional jumps to conditional execution" + msgstr "Realizar la conversión de saltos condicionales a ejecución condicional" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:824 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:645 + msgid "Export functions even if they can be inlined" + msgstr "Exportar funciones aún si pueden ser inline" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:827 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:648 + msgid "Emit implicit instantiations of inline templates" + msgstr "Emitir instanciaciones implícitas de plantillas inline" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:830 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:651 + msgid "Emit implicit instantiations of templates" + msgstr "Emitir instanciaciones implícitas de plantillas" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:833 +-msgid "Use offset tables for virtual method calls" +-msgstr "Utilizar tablas de desplazamiento para llamadas a métodos virtuales" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:836 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:654 + msgid "Do not generate .size directives" + msgstr "No generar directivas .size" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:839 +-msgid "Initialize local vars and arrays to zero" +-msgstr "Inicializa las variables locales y matrices a cero" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:842 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:657 + msgid "Pay attention to the \"inline\" keyword" + msgstr "Poner atención a la palabra clave \"inline\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:851 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:660 ++msgid "Integrate simple functions into their callers" ++msgstr "Integrar las funciones simples en sus invocadores" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:666 + msgid "-finline-limit=\tLimit the size of inlined functions to " + msgstr "-finline-limit=\tLimita el tamaño de las funciones inline a " + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:854 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:669 + msgid "-finput-charset= Specify the default character set for source files." + msgstr "-finput-charset= Establece el conjunto de caracteres por defecto para los ficheros fuente." + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:857 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:672 + msgid "Instrument function entry and exit with profiling calls" + msgstr "Instrumentar funciones de entrada y salida con llamadas de análisis de perfil" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:860 +-msgid "Intrinsics letters in arbitrary cases" +-msgstr "Letras de intrínsecos con mayúsculas/minúsculas indistintas" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:863 +-msgid "Intrinsics spelled as e.g. SqRt" +-msgstr "Intrínsecos deletreados como p.e. SqRt" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:866 +-msgid "Intrinsics in lowercase" +-msgstr "Intrínsecos en minúsculas" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:869 +-msgid "Intrinsics in uppercase" +-msgstr "Intrínsecos en mayúsculas" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:872 +-msgid "Assume native functions are implemented using JNI" +-msgstr "Asumir que las funciones nativas se implementan usando JNI" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:875 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:675 + msgid "Generate code for functions even if they are fully inlined" + msgstr "Generar código para las funciones aún si están completamente inline" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:878 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:678 + msgid "Emit static const variables even if they are not used" + msgstr "Emitir variables static const aún si no se usan" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:884 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:684 + msgid "Give external symbols a leading underscore" + msgstr "Dar a los símbolos externos un subrayado inicial" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:887 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:687 + msgid "Perform loop optimizations" + msgstr "Realizar optimizaciones de ciclo" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:890 +-msgid "Language keyword letters in arbitrary cases" +-msgstr "Palabras claves del lenguaje con mayúsculas/minúsculas indistintas" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:893 +-msgid "Language keywords spelled as e.g. IOStat" +-msgstr "Palabras claves del lenguaje deletreadas como p.e. IOStat" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:896 +-msgid "Language keywords in lowercase" +-msgstr "Palabras claves del lenguaje en minúsculas" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:899 +-msgid "Language keywords in uppercase" +-msgstr "Palabras claves del lenguaje en mayúsculas" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:902 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:690 + msgid "Set errno after built-in math functions" + msgstr "Establecer errno después de las funciones matemáticas internas" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:905 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:693 + msgid "Report on permanent memory allocation" + msgstr "Reportar el alojamiento en memoria permanente" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:908 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:696 + msgid "Attempt to merge identical constants and constant variables" + msgstr "Intentar mezclar constantes idénticas y variables constantes" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:911 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:699 + msgid "Attempt to merge identical constants across compilation units" + msgstr "Intentar mezclar constantes idénticas a través de las unidades de compilación" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:914 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:702 + msgid "-fmessage-length=\tLimit diagnostics to characters per line. 0 suppresses line-wrapping" + msgstr "-fmessage-length=\tLimita los diagnósticos a caracteres por línea. 0 suprime el corte de línea" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:917 +-msgid "Delete MIL-STD 1753 intrinsics" +-msgstr "Borrar los intrínsecos MIL-STD 1753" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:920 +-msgid "Disable MIL-STD 1753 intrinsics" +-msgstr "Desactivar los intrínsecos MIL-STD 1753" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:923 +-msgid "Enable MIL-STD 1753 intrinsics" +-msgstr "Activar los intrínsecos MIL-STD 1753" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:926 +-msgid "Hide MIL-STD 1753 intrinsics" +-msgstr "Esconder los intrínsecos MIL-STD 1753" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:929 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:705 + msgid "Force all loop invariant computations out of loops" + msgstr "Forzar que todas las computaciones invariantes del ciclo sean fuera del ciclo" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:932 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:708 + msgid "Don't warn about uses of Microsoft extensions" + msgstr "No avisar sobre los usos de extensiones Microsoft" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:941 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:717 + msgid "Use graph-coloring register allocation" + msgstr "Utilizar coloración de grafos para el alojamiento de registros." + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:944 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:720 + msgid "Generate code for NeXT (Apple Mac OS X) runtime environment" + msgstr "Generar código para el ambiente de tiempo de ejecución NeXT (Apple Mac OS X)" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:947 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:723 + msgid "Assume that receivers of Objective-C messages may be nil" + msgstr "Asumir que los receptores de mensajes de Objective-C pueden ser nil" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:950 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:726 + msgid "Support synchronous non-call exceptions" + msgstr "Soporte para excepciones síncronas no de llamadas" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:959 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:735 + msgid "Enable Objective-C exception and synchronization syntax" + msgstr "Activar la sintaxis de excepción y sincronización de Objective-C" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:962 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1286 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:738 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:978 + msgid "Perform loop unrolling for all loops" + msgstr "Realizar el desenrollamiento del ciclo para todos los ciclos" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:965 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1289 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:741 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:981 + msgid "Perform loop unrolling when iteration count is known" + msgstr "Realizar el desenrollamiento del ciclo cuando se conoce la cuenta de iteración" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:968 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:744 + msgid "When possible do not generate stack frames" + msgstr "Cuando sea posible no generar marcos de pila" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:971 +-msgid "Take at least one trip through each iterative DO loop" +-msgstr "Tomar al menos un viaje a través de cada ciclo DO iterativo" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:974 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:747 + msgid "Recognize C++ kewords like \"compl\" and \"xor\"" + msgstr "Reconocer palabras clave de C++ como \"compl\" y \"xor\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:977 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:750 + msgid "Do the full register move optimization pass" + msgstr "Hacer el paso completo de optimización de movimiento de registros" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:980 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:753 + msgid "Optimize sibling and tail recursive calls" + msgstr "Optimizar las llamadas recursivas hermanadas y de extremo" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:983 +-msgid "Enable optimization of static class initialization code" +-msgstr "Activar la optimización del código de inicialización de las clases static" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:986 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:756 + msgid "Enable optional diagnostics" + msgstr "Activar los diagnósticos opcionales" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:992 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:759 + msgid "Pack structure members together without holes" + msgstr "Empaqueta juntos a los miembros de la estructura sin agujeros" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:995 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:762 + msgid "Return small aggregates in memory, not registers" + msgstr "Devolver los agregados small en memoria, no en registros" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1001 +-msgid "Warn about use of (only a few for now) Fortran extensions" +-msgstr "Avisar sobre el uso de (sólo algunas por ahora) extensiones Fortran" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1004 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:768 + msgid "Perform loop peeling" + msgstr "Realizar el pelado de ciclos" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1007 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:771 + msgid "Enable machine specific peephole optimizations" + msgstr "Activar las optimizaciones de mirilla específicas de la máquina" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1010 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:774 + msgid "Enable an RTL peephole pass before sched2" + msgstr "Activa un paso de mirilla RTL antes de sched2" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1013 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:777 + msgid "Downgrade conformance errors to warnings" + msgstr "Degradar los errores de concordancia a advertencias" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1016 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:780 + msgid "Generate position-independent code if possible" + msgstr "Generar código independiente de posición si es posible" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1019 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:783 + msgid "Generate position-independent code for executables if possible" + msgstr "Generar código independiente de posición para ejecutables si es posible" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1022 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:786 + msgid "Generate prefetch instructions, if available, for arrays in loops" + msgstr "Generar instrucciones de precargado, si están disponibles, para matrices en ciclos" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1028 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:789 ++msgid "Treat the input file as already preprocessed" ++msgstr "Tratar al fichero de entrada como previamente preprocesado" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:792 + msgid "Enable basic program profiling code" + msgstr "Activar el código básico de análisis de perfil del programa" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1031 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:795 + msgid "Insert arc-based program profiling code" + msgstr "Insertar código de análisis de perfil de programa basado en arc" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1034 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:798 + msgid "Enable common options for generating profile info for profile feedback directed optimizations" + msgstr "Activar las opciones comunes para generar información de análisis de perfil para optimizaciones dirigidas por retroalimentación de perfil" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1037 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:801 + msgid "Enable common options for performing profile feedback directed optimizations" + msgstr "Activar las opciones comunes para realizar optimizaciones dirigidas por retroalimentación de perfil" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1040 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:804 + msgid "Insert code to profile values of expressions" + msgstr "Insertar código para perfilar valores de expresiones" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1046 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:810 + msgid "-frandom-seed=\tMake compile reproducible using " + msgstr "-frandom-seed=\tHacer que se pueda reproducir la compilación utilizando la " + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1049 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:813 + msgid "Strength reduce all loop general induction variables" + msgstr "Reducir la fuerza de todas las variables generales de inducción de ciclo" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1052 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:816 + msgid "Return small aggregates in registers" + msgstr "Devolver agregados small en registros" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1055 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:819 + msgid "Enables a register move optimization" + msgstr "Permite una optimización de movimiento de registros" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1058 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:822 + msgid "Perform a register renaming optimization pass" + msgstr "Realizar el paso de optimización de renombrado de registros" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1061 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:825 + msgid "Reorder basic blocks to improve code placement" + msgstr "Reordenar los bloques básicos para mejorar la ubicación del código" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1064 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:828 + msgid "Reorder functions to improve code placement" + msgstr "Reordenar las funciones para mejorar la ubicación del código" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1067 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:831 + msgid "Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime" + msgstr "Usar el modo Fix-and-Continue para indicar que los ficheros objeto se pueden intercambiar en tiempo de ejecución" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1070 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:834 + msgid "Enable automatic template instantiation" + msgstr "Activar la instanciación automática de plantillas" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1073 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:837 + msgid "Add a common subexpression elimination pass after loop optimizations" + msgstr "Ejecutar un paso de eliminación de subexpresión común después de las optimizaciones de ciclos" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1076 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:840 + msgid "Run the loop optimizer twice" + msgstr "Ejecutar el optimizador de ciclos dos veces" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1079 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:843 + msgid "Disable optimizations that assume default FP rounding behavior" + msgstr "Desactivar las optimizaciones que asumen la conducta de un FP que redondea por defecto" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1082 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:846 + msgid "Generate run time type descriptor information" + msgstr "Generar información de descriptor de tipo en tiempo de ejecución" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1085 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:849 + msgid "Enable scheduling across basic blocks" + msgstr "Activar la calendarización entre bloques básicos" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1088 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:852 + msgid "Allow speculative motion of non-loads" + msgstr "Permitir el movimiento especulativo de ninguna carga" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1091 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:855 + msgid "Allow speculative motion of some loads" + msgstr "Permitir el movimiento especulativo de algunas cargas" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1094 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:858 + msgid "Allow speculative motion of more loads" + msgstr "Permitir el movimiento especulativo de más cargas" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1097 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:861 + msgid "Allow premature scheduling of queued insns" + msgstr "Permitir la calendarización prematura de insns encoladas" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1100 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:864 + msgid "Set dependence distance checking in premature scheduling of queued insns" + msgstr "Establecer la revisión de distancia de dependencias en la calendarización prematura de insns encoladas" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1103 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:867 + msgid "-fsched-stalled-insns-dep= Set dependence distance checking in premature scheduling of queued insns" + msgstr "-fsched-stalled-insns-dep= Establecer la revisión de distancia de dependencias en la calendarización prematura de insns encoladas" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1106 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:870 + msgid "-fsched-stalled-insns= Set number of queued insns that can be prematurely scheduled" + msgstr "-fsched-stalled-insns= Establecer el número de insns encoladas que se pueden calendarizar prematuramente" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1109 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:873 + msgid "-fsched-verbose=\tSet the verbosity level of the scheduler" + msgstr "-fsched-verbose=\tEstablece el nivel de detalle del calendarizador" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1112 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:876 + msgid "If scheduling post reload, do superblock scheduling" + msgstr "Si se calendariza después de la recarga, hacer calendarización de superbloque" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1115 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:879 + msgid "If scheduling post reload, do trace scheduling" + msgstr "Si se calendariza después de la recarga, hacer trazado de calendarización" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1118 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:882 + msgid "Reschedule instructions before register allocation" + msgstr "Recalendarizar las instrucciones antes del alojamiento de registros" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1121 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:885 + msgid "Reschedule instructions after register allocation" + msgstr "Recalendarizar las instrucciones después del alojamiento de registros" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1124 +-msgid "Allow appending a second underscore to externals" +-msgstr "Permitir agregar un segundo subrayado a los externos" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1127 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:888 + msgid "Mark data as shared rather than private" + msgstr "Marcar datos como compartidos en lugar de privados" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1130 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:891 + msgid "Use the same size for double as for float" + msgstr "Usar el mismo tamaño para double que para float" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1133 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:894 + msgid "Use the narrowest integer type possible for enumeration types" + msgstr "Usar el tipo entero más estrecho posible para tipos de enumeración" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1136 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:897 + msgid "Force the underlying type for \"wchar_t\" to be \"unsigned short\"" + msgstr "Forzar que el tipo debajo de \"wchar_t\" sea \"unsigned short\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1142 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:903 + msgid "Disable optimizations observable by IEEE signaling NaNs" + msgstr "Desactivar optimizaciones observables con IEEE señalando NaNs" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1145 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:906 + msgid "When \"signed\" or \"unsigned\" is not given make the bitfield signed" + msgstr "Cuando no se proporciona \"signed\" o \"unsigned\" hacer signed el campo de bits" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1148 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:909 + msgid "Make \"char\" signed by default" + msgstr "Hacer que \"char\" sea signed por defecto" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1151 +-msgid "Do not print names of program units as they are compiled" +-msgstr "No mostrar los nombres de las unidades de programa mientras son compiladas" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1154 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:912 + msgid "Convert floating point constants to single precision constants" + msgstr "Convertir constantes de coma flotante a constantes de precisión simple" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1157 +-msgid "Internally convert most source to lowercase" +-msgstr "Convertir internamente casi todo el código a minúsculas" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1160 +-msgid "Internally preserve source case" +-msgstr "Preservar internamente las mayúsculas y minúsculas del código fuente" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1163 +-msgid "Internally convert most source to uppercase" +-msgstr "Convertir internamente casi todo el código a mayúsculas" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1169 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:918 + msgid "Insert stack checking code into the program" + msgstr "Inserta código de revisión de la pila en el programa" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1175 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:924 + msgid "-fstack-limit-register=\tTrap if the stack goes past " + msgstr "-fstack-limit-register=\tCapturar si la pila pasa del " + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1178 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:927 + msgid "-fstack-limit-symbol=\tTrap if the stack goes past symbol " + msgstr "-fstack-limit-symbol=\tCapturar si la pila pasa del símbolo " + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1181 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:930 + msgid "Display statistics accumulated during compilation" + msgstr "Mostrar las estadísticas acumuladas durante la compilación" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1184 +-msgid "Enable assignability checks for stores into object arrays" +-msgstr "Activar revisiones de asignabilidad para almacenamientos en matrices de objetos" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1187 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:933 + msgid "Perform strength reduction optimizations" + msgstr "Realizar optimizaciones de reducción de fuerza" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1190 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:936 + msgid "Assume strict aliasing rules apply" + msgstr "Asumir que se aplican las reglas estrictas de alias" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1199 +-msgid "Symbol names spelled in mixed case" +-msgstr "Nombres de símbolo deletreados con mayúsculas/minúsculas mezcladas" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1202 +-msgid "Symbol names in lowercase" +-msgstr "Nombres de símbolo en minúsculas" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1205 +-msgid "Symbol names in uppercase" +-msgstr "Nombres de símbolo en mayúsculas" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1208 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:942 + msgid "Check for syntax errors, then stop" + msgstr "Buscar errores de sintaxis, y entonces detenerse" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1211 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:945 + msgid "-ftabstop=\tDistance between tab stops for column reporting" + msgstr "-ftabstop=\tDistancia entre topes de tabulador para reportes en columnas" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1214 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:948 + msgid "-ftemplate-depth-\tSpecify maximum template instantiation depth" + msgstr "-ftemplate-depth-\tEspecificar la profundidad máxima de instanciación" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1217 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:951 + msgid "Create data files needed by \"gcov\"" + msgstr "Crear ficheros de datos necesarios para \"gcov\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1223 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:957 + msgid "Perform jump threading optimizations" + msgstr "Realizar optimizaciones de hilado de saltos" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1226 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:960 + msgid "Report the time taken by each compiler pass" + msgstr "Reportar el tiempo tomado por cada paso del compilador" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1229 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:963 + msgid "-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tSet the default thread-local storage code generation model" + msgstr "-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tIndica el modelo de generación de código por defecto para almacenamiento thread-local" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1232 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:966 + msgid "Perform superblock formation via tail duplication" + msgstr "Realizar la formación de superbloques a través de la duplicación de colas" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1235 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:969 + msgid "Assume floating-point operations can trap" + msgstr "Asumir que las operaciones de coma flotante pueden capturar" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1238 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:972 + msgid "Trap for signed overflow in addition, subtraction and multiplication" + msgstr "Atrapar desbordamientos signed en adición, sustracción y multiplicación" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1241 +-msgid "Make prefix-radix non-decimal constants be typeless" +-msgstr "Hacer que no tengan tipo las constantes con prefijo-radical que no es decimal" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1244 +-msgid "Allow all ugly features" +-msgstr "Desactiva todas las características feas" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1247 +-msgid "Hollerith and typeless can be passed as arguments" +-msgstr "Se pueden pasar las constantes hollerith y sin tipo como argumentos" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1250 +-msgid "Allow ordinary copying of ASSIGN'ed vars" +-msgstr "Permite la copia ordinaria de variables ASSIGNadas" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1253 +-msgid "Dummy array dimensioned to (1) is assumed-size" +-msgstr "La matriz falsa dimensionada a (1) es de tamaño asumido" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1256 +-msgid "Trailing comma in procedure call denotes null argument" +-msgstr "Coma al final de la llamada al procedimiento denota un argumento nulo" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1259 +-msgid "Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z" +-msgstr "Permite que REAL(Z) y AIMAG(Z) reciban DOUBLE COMPLEX Z" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1262 +-msgid "Initialization via DATA and PARAMETER is not type-compatible" +-msgstr "La inicialización a través de DATA y PARAMETER no es de tipos compatibles" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1265 +-msgid "Allow INTEGER and LOGICAL interchangeability" +-msgstr "Permite el intercambio entre INTEGER y LOGICAL" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1268 +-msgid "Append underscores to externals" +-msgstr "Agregar subrayado a los externos" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1271 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:975 + msgid "Compile whole compilation unit at a time" + msgstr "Compilar la unidad de compilación completa a la vez" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1274 +-msgid "Delete libU77 intrinsics" +-msgstr "Borrar los intrínsecos libU77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1277 +-msgid "Disable libU77 intrinsics" +-msgstr "Desactivar los intrínsecos libU77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1280 +-msgid "Enable libU77 intrinsics" +-msgstr "Activar los intrínsecos libU77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1283 +-msgid "Hide libU77 intrinsics" +-msgstr "Borrar los intrínsecos libU77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1292 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:984 + msgid "Allow math optimizations that may violate IEEE or ISO standards" + msgstr "Permitir optimizaciones matemáticas que pueden violar los estándares IEEE ó ISO" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1295 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:987 + msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned" + msgstr "Cuando no se proporciona \"signed\" o \"unsigned\" hacer unsigned el campo de bits" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1298 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:990 + msgid "Make \"char\" unsigned by default" + msgstr "Hacer que \"char\" sea unsigned por defecto" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1301 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:993 + msgid "Perform loop unswitching" + msgstr "Realizar la eliminación de opciones del ciclo" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1304 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:996 + msgid "Just generate unwind tables for exception handling" + msgstr "Sólo generar tablas de desenredo para manejo de excepciones" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1310 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:999 + msgid "Use __cxa_atexit to register destructors" + msgstr "Usar __cxa_atexit para registrar destructores" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1316 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1002 + msgid "Add extra commentary to assembler output" + msgstr "Agregar comentarios extra a la salida de ensamblador" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1319 +-msgid "Print g77-specific version information and run internal tests" +-msgstr "Imprime la información específica de la versión g77 y ejecuta pruebas internas" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1322 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1005 + msgid "Use expression value profiles in optimizations" + msgstr "Usar perfiles de valor de expresión en las optimizaciones" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1325 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1008 + msgid "Discard unused virtual functions" + msgstr "Descartar funciones virtual sin usar" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1328 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1011 + msgid "Implement vtables using thunks" + msgstr "Implementar vtables usando thunks" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1331 +-msgid "Program is written in VXT (Digital-like) FORTRAN" +-msgstr "El programa está escrito en VXT (como Digital) FORTRAN" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1334 +-msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "Borrar los intrínsecos de FORTRAN que no es 77 que soporta VXT FORTRAN" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1337 +-msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "Desactivar los intrínsecos de FORTRAN que no es 77 que soporta VXT FORTRAN" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1340 +-msgid "Enable non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "Activar los intrínsecos de FORTRAN que no es 77 que soporta VXT FORTRAN" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1343 +-msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "Esconder los intrínsecos de FORTRAN que no es 77 que soporta VXT FORTRAN" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1349 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1014 + msgid "Emit common-like symbols as weak symbols" + msgstr "Emitir símbolos comunes como símbolos débiles" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1352 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1017 + msgid "Construct webs and split unrelated uses of single variable" + msgstr "Construir redes y dividir usos no relacionados de una sola variable" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1355 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1020 + msgid "-fwide-exec-charset=\tConvert all wide strings and character constants to character set " + msgstr "-fwide-exec-charset=\tConvertir todas las cadenas anchas y constantes de cáracter al conjunto de caracteres " + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1358 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1023 + msgid "Generate a #line directive pointing at the current working directory" + msgstr "Generar una directiva #line que apunte al directorio de trabajo actual" + + # wraps around? No entiendo bien. cfuga +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1361 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1026 + msgid "Assume signed arithmetic overflow wraps around" + msgstr "Asumir que el desbordamiento aritmético con signo se envuelve" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1364 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1029 + msgid "Store strings in writable data section" + msgstr "Guardar las cadenas en la sección de datos modificables" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1367 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1032 + msgid "Emit cross referencing information" + msgstr "Emitir información de referencia cruzada" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1370 +-msgid "Print internal debugging-related information" +-msgstr "Muestra la información interna relacionada con la depuración" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1373 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1035 + msgid "Put zero initialized data in the bss section" + msgstr "Poner datos inicializados a cero en la sección bss" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1376 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1038 + msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode" + msgstr "Generar la búsqueda no estricta de clases (a través de objc_getClass()) para usarlas en el modo Zero-Link" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1379 +-msgid "Treat initial values of 0 like non-zero values" +-msgstr "Tratar los valores iniciales de 0 como valores que no son cero" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1382 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1041 + msgid "Generate debug information in default format" + msgstr "Generar información de depuración en el formato por defecto" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1385 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1044 + msgid "Generate debug information in COFF format" + msgstr "Generar información de depuración en el formato COFF" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1388 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1047 + msgid "Generate debug information in DWARF v2 format" + msgstr "Generar información de depuración en el formato DWARF v2" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1391 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1050 + msgid "Dump declarations to a .decl file" + msgstr "Volcar declaraciones a un fichero .decl" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1394 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1053 + msgid "Generate debug information in default extended format" + msgstr "Generar información de depuración en el formato extendido por defecto" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1397 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1056 + msgid "Generate debug information in STABS format" + msgstr "Generar información de depuración en el formato STABS" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1400 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1059 + msgid "Generate debug information in extended STABS format" + msgstr "Generar información de depuración en el formato STABS extendido" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1403 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1062 + msgid "Generate debug information in VMS format" + msgstr "Generar información de depuración en el formato VMS" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1406 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1065 + msgid "Generate debug information in XCOFF format" + msgstr "Generar información de depuración en el formato XCOFF" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1409 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1068 + msgid "Generate debug information in extended XCOFF format" + msgstr "Generar información de depuración en el formato XCOFF extendido" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1412 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1071 + msgid "-idirafter \tAdd to the end of the system include path" + msgstr "-idirafter \tAgregar el ectorio al final de la ruta de inclusión del sistema" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1415 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1074 + msgid "-imacros \tAccept definition of macros in " + msgstr "-imacros \tAceptar la definición de macros en el ero" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1418 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1077 + msgid "-include \tInclude the contents of before other files" + msgstr "-include \tIncluir los contenidos del antes de otros ficheros" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1421 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1080 + msgid "-iprefix \tSpecify as a prefix for next two options" + msgstr "-iprefix \tEspecificar la como un prefijo para las siguientes dos opciones" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1424 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1083 + msgid "-isysroot \tSet to be the system root directory" + msgstr "-isysroot \tEstablecer el ectorio como el directorio raíz del sistema" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1427 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1086 + msgid "-isystem \tAdd to the start of the system include path" + msgstr "-isystem \tAgregar el ectorio al inicio de la ruta de inclusión del sistema" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1430 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1089 + msgid "-iwithprefix \tAdd to the end of the system include path" + msgstr "-iwithprefix \tAgregar el ectorio al final de la ruta de inclusión del sistema" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1433 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1092 + msgid "-iwithprefixbefore \tAdd to the end of the main include path" + msgstr "-iwithprefixbefore \tAgregar el ectorio al final de la ruta de inclusión principal" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1445 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1104 + msgid "Do not search standard system include directories (those specified with -isystem will still be used)" + msgstr "No buscar directorios de inclusión del sistema por defecto (aquellos especificados con -isystem aún serán utilizados)" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1448 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1107 + msgid "Do not search standard system include directories for C++" + msgstr "No buscar directorios de inclusión del sistema por defecto para C++" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1451 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1110 + msgid "-o \tPlace output into " + msgstr "-o\tColocar la salida en el " + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1454 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1113 + msgid "Enable function profiling" + msgstr "Activar el análisis de perfil de las funciones" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1457 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1116 + msgid "Issue warnings needed for strict compliance to the standard" + msgstr "Activar los avisos necesarios para cumplir estrictamente con el estándard" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1460 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1119 + msgid "Like -pedantic but issue them as errors" + msgstr "Como -pedantic pero los muestra como errores" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1463 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1122 + msgid "Generate C header of platform-specific features" + msgstr "Generar encabezado C de características específicas de la plataforma" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1466 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1125 + msgid "Do not display functions compiled or elapsed time" + msgstr "No mostrar las funciones compiladas o el tiempo transcurrido" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1469 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1128 + msgid "Remap file names when including files" + msgstr "Remapear nombres de fichero cuando incluyen ficheros" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1472 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1131 + msgid "Conform to the ISO 1998 C++ standard" + msgstr "Conforme al estándard ISO 1998 C++" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1475 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1134 + msgid "Conform to the ISO 1990 C standard" + msgstr "Conforme al estándard ISO 1990 C" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1478 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1137 + msgid "Conform to the ISO 1999 C standard" + msgstr "Conforme al estándard ISO 1999 C" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1481 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1502 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1505 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1140 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1161 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1164 + msgid "Deprecated in favor of -std=c99" + msgstr "Obsoleto en favor de -std=c99" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1484 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1143 + msgid "Conform to the ISO 1998 C++ standard with GNU extensions" + msgstr "Conforme al estándard ISO 1998 C++ con extensiones GNU" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1487 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1146 + msgid "Conform to the ISO 1990 C standard with GNU extensions" + msgstr "Conforme al estándard ISO 1990 C con extensiones GNU" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1490 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1149 + msgid "Conform to the ISO 1999 C standard with GNU extensions" + msgstr "Conforme al estándard ISO 1999 C con extensiones GNU" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1493 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1152 + msgid "Deprecated in favor of -std=gnu99" + msgstr "Obsoleto en favor de -std=gnu99" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1496 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1155 + msgid "Deprecated in favor of -std=c89" + msgstr "Obsoleto en favor de -std=c89" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1499 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1158 + msgid "Conform to the ISO 1990 C standard as amended in 1994" + msgstr "Conforme al estándard ISO 1990 C como se enmendó en 1994" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1508 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1167 + msgid "Enable traditional preprocessing" + msgstr "Habilitar el preprocesamiento tradicional" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1511 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1170 + msgid "-trigraphs\tSupport ISO C trigraphs" + msgstr "-trigraphs\tSoporte para los trigrafos de ISO C" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1514 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1173 + msgid "Do not predefine system-specific and GCC-specific macros" + msgstr "No predefinir macros específicas del sistema y específica de GCC" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1517 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1176 + msgid "Enable verbose output" + msgstr "Activar la salida detallada" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1523 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1179 ++msgid "Display the compiler's version" ++msgstr "Muestra la versión del compilador" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1182 + msgid "Suppress warnings" + msgstr "Suprimir avisos" + +-#: config/i386/freebsd-aout.h:215 config/rs6000/sysv4.h:1089 ++#: config/i386/cygwin.h:29 ++msgid "mno-cygwin and mno-win32 are not compatible" ++msgstr "-mno-cygwin y -mno-win32 no son compatibles" ++ ++#: config/i386/cygwin.h:70 config/i386/mingw32.h:58 ++msgid "shared and mdll are not compatible" ++msgstr "shared y mdll no son compatibles." ++ ++#: config/i386/freebsd-aout.h:215 + msgid "`-p' not supported; use `-pg' and gprof(1)" + msgstr "`-p' no tiene soporte; use `-pg' y gprof(1)" + +@@ -21147,49 +20837,62 @@ + msgid "GCC does not support -CC without using -E" + msgstr "GCC no da soporte a -CC sin usar -E" + ++#: config/i386/sco5.h:191 ++msgid "-pg not supported on this platform" ++msgstr "-pg no tiene soporte en esta plataforma" ++ ++#: config/i386/sco5.h:192 ++msgid "-p and -pp specified - pick one" ++msgstr "se especificó -p y -pp - se tomó uno" ++ ++#: config/i386/sco5.h:266 ++msgid "-G and -static are mutually exclusive" ++msgstr "-G y -static son mutuamente exclusivos" ++ ++#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22 ++#: config/sparc/sol2-bi.h:167 config/sparc/sol2-bi.h:172 ++msgid "does not support multilib" ++msgstr "no tiene soporte para multilib" ++ + #: config/sparc/linux64.h:211 config/sparc/linux64.h:222 + #: config/sparc/netbsd-elf.h:140 config/sparc/netbsd-elf.h:159 + #: config/sparc/sol2-bi.h:195 config/sparc/sol2-bi.h:205 + msgid "may not use both -m32 and -m64" + msgstr "no se pueden usar -m32 y -m64 al mismo tiempo" + +-#: config/i386/mingw32.h:58 config/i386/cygwin.h:70 +-msgid "shared and mdll are not compatible" +-msgstr "shared y mdll no son compatibles." +- +-#: config/darwin.h:215 ++#: config/darwin.h:222 + msgid "-current_version only allowed with -dynamiclib" + msgstr "sólo se permite -current_version con -dynamiclib" + +-#: config/darwin.h:218 ++#: config/darwin.h:225 + msgid "-install_name only allowed with -dynamiclib" + msgstr "sólo se permite -install_name con -dynamiclib" + +-#: config/darwin.h:223 ++#: config/darwin.h:230 + msgid "-bundle not allowed with -dynamiclib" + msgstr "no se permite -bundle con -dynamiclib" + +-#: config/darwin.h:224 ++#: config/darwin.h:231 + msgid "-bundle_loader not allowed with -dynamiclib" + msgstr "no se permite -bundle_loader con -dynamiclib" + +-#: config/darwin.h:225 ++#: config/darwin.h:232 + msgid "-client_name not allowed with -dynamiclib" + msgstr "no se permite -client_name con -dynamiclib" + +-#: config/darwin.h:228 ++#: config/darwin.h:235 + msgid "-force_cpusubtype_ALL not allowed with -dynamiclib" + msgstr "no se permite -force_cpusubtype_ALL con -dynamiclib" + +-#: config/darwin.h:229 ++#: config/darwin.h:236 + msgid "-force_flat_namespace not allowed with -dynamiclib" + msgstr "no se permite -force_flat_namespace con -dynamiclib" + +-#: config/darwin.h:231 ++#: config/darwin.h:238 + msgid "-keep_private_externs not allowed with -dynamiclib" + msgstr "no se permite keep_private_externs con -dynamiclib" + +-#: config/darwin.h:232 ++#: config/darwin.h:239 + msgid "-private_bundle not allowed with -dynamiclib" + msgstr "no se permite -private_bundle con -dynamiclib" + +@@ -21205,47 +20908,10 @@ + msgid "may not use both -EB and -EL" + msgstr "no se pueden usar -EB y -EL al mismo tiempo" + +-#: config/mips/mips.h:988 +-msgid "-pipe is not supported" +-msgstr "-pipe no tiene soporte" +- +-#: java/jvspec.c:80 ada/lang-specs.h:34 gcc.c:767 +-msgid "-pg and -fomit-frame-pointer are incompatible" +-msgstr "-pg y -fomit-frame-pointer son incompatibles" +- +-#: java/lang-specs.h:34 +-msgid "-fjni and -femit-class-files are incompatible" +-msgstr "-fjni y -femit-class-files son incompatibles" +- +-#: java/lang-specs.h:35 +-msgid "-fjni and -femit-class-file are incompatible" +-msgstr "-fjni y -femit-class-file son incompatibles" +- +-#: java/lang-specs.h:36 java/lang-specs.h:37 +-msgid "-femit-class-file should used along with -fsyntax-only" +-msgstr "-femit-class-file se debe usar junto con -fsyntax-only" +- + #: treelang/lang-specs.h:52 + msgid "-pg or -p and -fomit-frame-pointer are incompatible" + msgstr "-pg ó -p y -fomit-frame-pointer son incompatibles" + +-#: config/sparc/sol2-bi.h:167 config/sparc/sol2-bi.h:172 +-#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22 +-msgid "does not support multilib" +-msgstr "no tiene soporte para multilib" +- +-#: config/i386/sco5.h:191 +-msgid "-pg not supported on this platform" +-msgstr "-pg no tiene soporte en esta plataforma" +- +-#: config/i386/sco5.h:192 +-msgid "-p and -pp specified - pick one" +-msgstr "se especificó -p y -pp - se tomó uno" +- +-#: config/i386/sco5.h:266 +-msgid "-G and -static are mutually exclusive" +-msgstr "-G y -static son mutuamente exclusivos" +- + #: config/arm/arm.h:198 + msgid "-mapcs-26 and -mapcs-32 may not be used together" + msgstr "no se pueden usar juntos -mapcs-26 y -mapcs-32" +@@ -21262,6 +20928,14 @@ + msgid "the m210 does not have little endian support" + msgstr "el m210 no tiene soporte para little endian" + ++#: config/mips/mips.h:988 ++msgid "-pipe is not supported" ++msgstr "-pipe no tiene soporte" ++ ++#: ada/lang-specs.h:34 java/jvspec.c:80 gcc.c:767 ++msgid "-pg and -fomit-frame-pointer are incompatible" ++msgstr "-pg y -fomit-frame-pointer son incompatibles" ++ + #: ada/lang-specs.h:36 + msgid "one of -c, -S, -gnatc, -gnatz, or -gnats is required for Ada" + msgstr "se requiere uno de -c, -S, -gnatc, -gnatz, o -gnats para Ada" +@@ -21274,9 +20948,17 @@ + msgid "-msingle-float and -msoft-float can not both be specified" + msgstr "-msingle-float y -msoft-float no se pueden especificar al mismo tiempo" + +-#: config/rs6000/darwin.h:98 +-msgid " conflicting code gen style switches are used" +-msgstr " se usan interruptores de estilo de generación de código en conflicto" ++#: java/lang-specs.h:34 ++msgid "-fjni and -femit-class-files are incompatible" ++msgstr "-fjni y -femit-class-files son incompatibles" ++ ++#: java/lang-specs.h:35 ++msgid "-fjni and -femit-class-file are incompatible" ++msgstr "-fjni y -femit-class-file son incompatibles" ++ ++#: java/lang-specs.h:36 java/lang-specs.h:37 ++msgid "-femit-class-file should used along with -fsyntax-only" ++msgstr "-femit-class-file se debe usar junto con -fsyntax-only" + + #: gcc.c:743 + msgid "GCC does not support -C or -CC without -E" +@@ -21286,72 +20968,315 @@ + msgid "-E required when input is from standard input" + msgstr "se requiere -E cuando la entrada es de entrada estándar" + +-#: config/i386/cygwin.h:29 +-msgid "mno-cygwin and mno-win32 are not compatible" +-msgstr "-mno-cygwin y -mno-win32 no son compatibles" ++#: config/rs6000/darwin.h:98 ++msgid " conflicting code gen style switches are used" ++msgstr " se usan interruptores de estilo de generación de código en conflicto" + +-#~ msgid "read-write constraint does not allow a register" +-#~ msgstr "la restricción lectura-escritura no permite un registro" ++#~ msgid "Warn if deprecated class, method, or field is used" ++#~ msgstr "Avisar si se usan clases, métodos o campos obsoletos" + +-#~ msgid "your function will be miscompiled" +-#~ msgstr "su función será mal compilada" ++#~ msgid "Warn if deprecated empty statements are found" ++#~ msgstr "Avisar si se encuentran declaraciones vacías obsoletas" + +-#~ msgid "neither the destructor nor the class-specific " +-#~ msgstr "ni el operador ni el operador delete " ++#~ msgid "Enable warnings about inter-procedural problems" ++#~ msgstr "Activar los avisos sobre problemas interprocedurales" + +-#~ msgid "operator delete will be called, even if they are " +-#~ msgstr "específico de la clase serán llamados, aún si se " ++#~ msgid "Warn if .class files are out of date" ++#~ msgstr "Avisar si los ficheros .class están desactualizados" + +-#~ msgid "declared when the class is defined." +-#~ msgstr "declaran cuando se defina la clase." ++#~ msgid "Warn if modifiers are specified when not necessary" ++#~ msgstr "Avisar si se especifican modificadores cuando no son necesarios" ++ ++#~ msgid "Warn about constructs with surprising meanings" ++#~ msgstr "Avisar acerca de constructores con significados sorprendentes" ++ ++#~ msgid "--CLASSPATH\tDeprecated; use --classpath instead" ++#~ msgstr "--CLASSPATH\tObsoleto; utilice en su lugar --classpath" ++ ++#~ msgid "Do not treat local variables and COMMON blocks as if they were named in SAVE statements" ++#~ msgstr "No tratar las variables locales y los bloques COMMON como si fueran nombrados en declaraciones SAVE" ++ ++#~ msgid "Backslashes in character and hollerith constants are special (not C-style)" ++#~ msgstr "Las barras invertidas en constantes de caracter y hollerith no son especiales (no estilo C)" ++ ++#~ msgid "Delete libU77 intrinsics with bad interfaces" ++#~ msgstr "Borrar los intrínsecos libU77 con interfaces erróneas" ++ ++#~ msgid "Disable libU77 intrinsics with bad interfaces" ++#~ msgstr "Desactivar los intrínsecos libU77 con interfaces erróneas" ++ ++#~ msgid "Enable libU77 intrinsics with bad interfaces" ++#~ msgstr "Activar los intrínsecos libU77 con interfaces erróneas" ++ ++#~ msgid "Hide libU77 intrinsics with bad interfaces" ++#~ msgstr "Esconder los intrínsecos libU77 con interfaces erróneas" ++ ++#~ msgid "--bootclasspath=\tReplace system path" ++#~ msgstr "--bootclasspath=\tReemplazar la ruta del sistema" ++ ++#~ msgid "Program written in strict mixed-case" ++#~ msgstr "Programa escrito estrictamente con mayúsculas y minúsculas mezcladas" ++ ++#~ msgid "Compile as if program written in lowercase" ++#~ msgstr "Compilar como si el programa estuviera escrito en minúsculas" ++ ++#~ msgid "Preserve case used in program" ++#~ msgstr "Preservar todo el deletreo (mayúsculas/minúsculas) usado en el programa" ++ ++#~ msgid "Program written in lowercase" ++#~ msgstr "Programa escrito en minúsculas" ++ ++#~ msgid "Program written in uppercase" ++#~ msgstr "Programa escrito en mayúsculas" ++ ++#~ msgid "Compile as if program written in uppercase" ++#~ msgstr "Compilar como si el programa estuviera escrito en mayúsculas" ++ ++#~ msgid "--classpath=\tSet class path" ++#~ msgstr "--classpath=\tEstablecer la ruta de clases" ++ ++#~ msgid "Emit special debugging information for COMMON and EQUIVALENCE (disabled)" ++#~ msgstr "Emitir información especial de depuración para COMMON y EQUIVALENCE (desactivado)" ++ ++#~ msgid "Allow '$' in symbol names" ++#~ msgstr "Permitir '$' en los nombres de símbolos" ++ ++#~ msgid "Have front end emulate COMPLEX arithmetic to avoid bugs" ++#~ msgstr "Hace que el frente emule aritmética COMPLEX para evitar `bugs'" ++ ++#~ msgid "--encoding=\tChoose input encoding (defaults from your locale)" ++#~ msgstr "--encoding=\tEscoger la codificación de entrada (por defecto viene del local)" ++ ++#~ msgid "f2c-compatible code can be generated" ++#~ msgstr "Se puede generar generar código compatible con f2c" ++ ++#~ msgid "Delete non-FORTRAN-77 intrinsics f2c supports" ++#~ msgstr "Borrar los intrínsecos de FORTRAN que no es 77 que soporta f2c" ++ ++#~ msgid "Disable non-FORTRAN-77 intrinsics f2c supports" ++#~ msgstr "Desactivar los intrínsecos de FORTRAN que no es 77 que soporta f2c" ++ ++#~ msgid "Enable non-FORTRAN-77 intrinsics f2c supports" ++#~ msgstr "Activar los intrínsecos de FORTRAN que no es 77 que soporta f2c" ++ ++#~ msgid "Hide non-FORTRAN-77 intrinsics f2c supports" ++#~ msgstr "Esconder los intrínsecos de FORTRAN que no es 77 que soporta f2c" ++ ++#~ msgid "Unsupported; generate libf2c-calling code" ++#~ msgstr "Sin soporte; genera código de llamada a libf2c" ++ ++#~ msgid "Program is written in typical FORTRAN 66 dialect" ++#~ msgstr "El programa está escrito en el dialecto típico FORTRAN 66" ++ ++#~ msgid "Program is written in typical Unix-f77 dialect" ++#~ msgstr "El programa está escrito en el dialecto típico Unix-f77" ++ ++#~ msgid "Program is written in Fortran-90-ish dialect" ++#~ msgstr "El programa está escrito en un dialecto cercano a Fortran-90" ++ ++#~ msgid "Delete non-FORTRAN-77 intrinsics F90 supports" ++#~ msgstr "Borrar los intrínsecos de FORTRAN que no es 77 que soporta F90" ++ ++#~ msgid "Disable non-FORTRAN-77 intrinsics F90 supports" ++#~ msgstr "Desactivar los intrínsecos de FORTRAN que no es 77 que soporta F90" ++ ++#~ msgid "Enable non-FORTRAN-77 intrinsics F90 supports" ++#~ msgstr "Activar los intrínsecos de FORTRAN que no es 77 que soporta F90" ++ ++#~ msgid "Hide non-FORTRAN-77 intrinsics F90 supports" ++#~ msgstr "Esconder los intrínsecos de FORTRAN que no es 77 que soporta F90" ++ ++#~ msgid "ffixed-line-length-\tSet the maximum line length to " ++#~ msgstr "ffixed-line-length-\tLimita la longitud máxima de línea a " ++ ++#~ msgid "Unsupported; affects code generation of arrays" ++#~ msgstr "Sin soporte; afecta la generación de código de las matrices" ++ ++#~ msgid "Always check for non gcj generated classes archives" ++#~ msgstr "Revisar siempre por archivos de clases no generados por gcj" + +-#~ msgid "-I \tAdd to the end of the main include path. -I- gives more include path control; see info documentation" +-#~ msgstr "-I \tAgregar el ectorio al final de la ruta de inclusión principal. -I- da más control de ruta de inclusión; vea la documentación en formato info" ++#~ msgid "Generate code to check subscript and substring bounds" ++#~ msgstr "Generar código para revisar los límites de subíndices y subcadenas" + +-#~ msgid "Generate make dependencies" +-#~ msgstr "Generar dependencias de make" ++#~ msgid "Program is written in Fortran-90-ish free form" ++#~ msgstr "El programa está escrito en una forma libre cercana a Fortran-90" + +-#~ msgid "-MF \tWrite dependency output to the given file" +-#~ msgstr "-MF \tEscribir la salida de dependencias al fichero dado" ++#~ msgid "Enable fatal diagnostics about inter-procedural problems" ++#~ msgstr "Activar los diagnósticos fatales sobre problemas interprocedurales" + +-#~ msgid "Like -M but ignore system header files" +-#~ msgstr "Como -M pero ignora los ficheros de encabezado del sistema" ++#~ msgid "Delete non-FORTRAN-77 intrinsics g77 supports" ++#~ msgstr "Borrar los intrínsecos de FORTRAN que no es 77 que soporta g77" + +-#~ msgid "Generate phony targets for all headers" +-#~ msgstr "Generar objetivos de prueba para todos los encabezados" ++#~ msgid "Disable non-FORTRAN 77 intrinsics F90 supports" ++#~ msgstr "Desactivar los intrínsecos de FORTRAN que no es 77 que soporta F90" + +-#~ msgid "-MT \tAdd an unquoted target" +-#~ msgstr "-MT \tAgregar un objetivo no citado" ++#~ msgid "Enable non-FORTRAN 77 intrinsics F90 supports" ++#~ msgstr "Activar los intrínsecos de FORTRAN que no es 77 que soporta F90" + +-#~ msgid "Enable most warning messages" +-#~ msgstr "Activar casi todos los mensajes de aviso" ++#~ msgid "Hide non-FORTRAN 77 intrinsics F90 supports" ++#~ msgstr "Esconder los intrínsecos de FORTRAN que no es 77 que soporta F90" + +-#~ msgid "Warn about possibly nested block comments, and C++ comments spanning more than one physical line" +-#~ msgstr "Avisar sobre la posibilidad de bloques de comentarios anidados, y comentarios de C++ que abarquen más de una línea física" ++#~ msgid "Use offset tables for virtual method calls" ++#~ msgstr "Utilizar tablas de desplazamiento para llamadas a métodos virtuales" + +-#~ msgid "Synonym for -Wcomment" +-#~ msgstr "Sinónimo de -Wcomment" ++#~ msgid "Initialize local vars and arrays to zero" ++#~ msgstr "Inicializa las variables locales y matrices a cero" + +-#~ msgid "Warn about deprecated compiler features" +-#~ msgstr "Avisar sobre características obsoletas del compilador" ++#~ msgid "Intrinsics letters in arbitrary cases" ++#~ msgstr "Letras de intrínsecos con mayúsculas/minúsculas indistintas" + +-#~ msgid "Deprecated. This switch has no effect." +-#~ msgstr "Obsoleto. Esta opción no tiene efecto." ++#~ msgid "Intrinsics spelled as e.g. SqRt" ++#~ msgstr "Intrínsecos deletreados como p.e. SqRt" + +-#~ msgid "Warn if trigraphs are encountered that might affect the meaning of the program" +-#~ msgstr "Avisar si se encuentran trigrafos que puedan afectar el significado del programa" ++#~ msgid "Intrinsics in lowercase" ++#~ msgstr "Intrínsecos en minúsculas" + +-#~ msgid "-fdump-\tDump various compiler internals to a file" +-#~ msgstr "-fdump-\tVolcar varios internos del compilador a un fichero" ++#~ msgid "Intrinsics in uppercase" ++#~ msgstr "Intrínsecos en mayúsculas" + +-#~ msgid "Integrate simple functions into their callers" +-#~ msgstr "Integrar las funciones simples en sus invocadores" ++#~ msgid "Assume native functions are implemented using JNI" ++#~ msgstr "Asumir que las funciones nativas se implementan usando JNI" + +-#~ msgid "Treat the input file as already preprocessed" +-#~ msgstr "Tratar al fichero de entrada como previamente preprocesado" ++#~ msgid "Language keyword letters in arbitrary cases" ++#~ msgstr "Palabras claves del lenguaje con mayúsculas/minúsculas indistintas" + +-#~ msgid "Display the compiler's version" +-#~ msgstr "Muestra la versión del compilador" ++#~ msgid "Language keywords spelled as e.g. IOStat" ++#~ msgstr "Palabras claves del lenguaje deletreadas como p.e. IOStat" ++ ++#~ msgid "Language keywords in lowercase" ++#~ msgstr "Palabras claves del lenguaje en minúsculas" ++ ++#~ msgid "Language keywords in uppercase" ++#~ msgstr "Palabras claves del lenguaje en mayúsculas" ++ ++#~ msgid "Delete MIL-STD 1753 intrinsics" ++#~ msgstr "Borrar los intrínsecos MIL-STD 1753" ++ ++#~ msgid "Disable MIL-STD 1753 intrinsics" ++#~ msgstr "Desactivar los intrínsecos MIL-STD 1753" ++ ++#~ msgid "Enable MIL-STD 1753 intrinsics" ++#~ msgstr "Activar los intrínsecos MIL-STD 1753" ++ ++#~ msgid "Hide MIL-STD 1753 intrinsics" ++#~ msgstr "Esconder los intrínsecos MIL-STD 1753" ++ ++#~ msgid "Take at least one trip through each iterative DO loop" ++#~ msgstr "Tomar al menos un viaje a través de cada ciclo DO iterativo" ++ ++#~ msgid "Enable optimization of static class initialization code" ++#~ msgstr "Activar la optimización del código de inicialización de las clases static" ++ ++#~ msgid "Warn about use of (only a few for now) Fortran extensions" ++#~ msgstr "Avisar sobre el uso de (sólo algunas por ahora) extensiones Fortran" ++ ++#~ msgid "Allow appending a second underscore to externals" ++#~ msgstr "Permitir agregar un segundo subrayado a los externos" ++ ++#~ msgid "Do not print names of program units as they are compiled" ++#~ msgstr "No mostrar los nombres de las unidades de programa mientras son compiladas" ++ ++#~ msgid "Internally convert most source to lowercase" ++#~ msgstr "Convertir internamente casi todo el código a minúsculas" ++ ++#~ msgid "Internally preserve source case" ++#~ msgstr "Preservar internamente las mayúsculas y minúsculas del código fuente" ++ ++#~ msgid "Internally convert most source to uppercase" ++#~ msgstr "Convertir internamente casi todo el código a mayúsculas" ++ ++#~ msgid "Enable assignability checks for stores into object arrays" ++#~ msgstr "Activar revisiones de asignabilidad para almacenamientos en matrices de objetos" ++ ++#~ msgid "Symbol names spelled in mixed case" ++#~ msgstr "Nombres de símbolo deletreados con mayúsculas/minúsculas mezcladas" ++ ++#~ msgid "Symbol names in lowercase" ++#~ msgstr "Nombres de símbolo en minúsculas" ++ ++#~ msgid "Symbol names in uppercase" ++#~ msgstr "Nombres de símbolo en mayúsculas" ++ ++#~ msgid "Make prefix-radix non-decimal constants be typeless" ++#~ msgstr "Hacer que no tengan tipo las constantes con prefijo-radical que no es decimal" ++ ++#~ msgid "Allow all ugly features" ++#~ msgstr "Desactiva todas las características feas" ++ ++#~ msgid "Hollerith and typeless can be passed as arguments" ++#~ msgstr "Se pueden pasar las constantes hollerith y sin tipo como argumentos" ++ ++#~ msgid "Allow ordinary copying of ASSIGN'ed vars" ++#~ msgstr "Permite la copia ordinaria de variables ASSIGNadas" ++ ++#~ msgid "Dummy array dimensioned to (1) is assumed-size" ++#~ msgstr "La matriz falsa dimensionada a (1) es de tamaño asumido" ++ ++#~ msgid "Trailing comma in procedure call denotes null argument" ++#~ msgstr "Coma al final de la llamada al procedimiento denota un argumento nulo" ++ ++#~ msgid "Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z" ++#~ msgstr "Permite que REAL(Z) y AIMAG(Z) reciban DOUBLE COMPLEX Z" ++ ++#~ msgid "Initialization via DATA and PARAMETER is not type-compatible" ++#~ msgstr "La inicialización a través de DATA y PARAMETER no es de tipos compatibles" ++ ++#~ msgid "Allow INTEGER and LOGICAL interchangeability" ++#~ msgstr "Permite el intercambio entre INTEGER y LOGICAL" ++ ++#~ msgid "Append underscores to externals" ++#~ msgstr "Agregar subrayado a los externos" ++ ++#~ msgid "Delete libU77 intrinsics" ++#~ msgstr "Borrar los intrínsecos libU77" ++ ++#~ msgid "Disable libU77 intrinsics" ++#~ msgstr "Desactivar los intrínsecos libU77" ++ ++#~ msgid "Enable libU77 intrinsics" ++#~ msgstr "Activar los intrínsecos libU77" ++ ++#~ msgid "Hide libU77 intrinsics" ++#~ msgstr "Borrar los intrínsecos libU77" ++ ++#~ msgid "Print g77-specific version information and run internal tests" ++#~ msgstr "Imprime la información específica de la versión g77 y ejecuta pruebas internas" ++ ++#~ msgid "Program is written in VXT (Digital-like) FORTRAN" ++#~ msgstr "El programa está escrito en VXT (como Digital) FORTRAN" ++ ++#~ msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports" ++#~ msgstr "Borrar los intrínsecos de FORTRAN que no es 77 que soporta VXT FORTRAN" ++ ++#~ msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports" ++#~ msgstr "Desactivar los intrínsecos de FORTRAN que no es 77 que soporta VXT FORTRAN" ++ ++#~ msgid "Enable non-FORTRAN-77 intrinsics VXT FORTRAN supports" ++#~ msgstr "Activar los intrínsecos de FORTRAN que no es 77 que soporta VXT FORTRAN" ++ ++#~ msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports" ++#~ msgstr "Esconder los intrínsecos de FORTRAN que no es 77 que soporta VXT FORTRAN" ++ ++#~ msgid "Print internal debugging-related information" ++#~ msgstr "Muestra la información interna relacionada con la depuración" ++ ++#~ msgid "Treat initial values of 0 like non-zero values" ++#~ msgstr "Tratar los valores iniciales de 0 como valores que no son cero" ++ ++#~ msgid "read-write constraint does not allow a register" ++#~ msgstr "la restricción lectura-escritura no permite un registro" ++ ++#~ msgid "your function will be miscompiled" ++#~ msgstr "su función será mal compilada" ++ ++#~ msgid "neither the destructor nor the class-specific " ++#~ msgstr "ni el operador ni el operador delete " ++ ++#~ msgid "operator delete will be called, even if they are " ++#~ msgstr "específico de la clase serán llamados, aún si se " ++ ++#~ msgid "declared when the class is defined." ++#~ msgstr "declaran cuando se defina la clase." + + #~ msgid "pointer to a member used in arithmetic" + #~ msgstr "se usó un puntero a un miembro en la aritmética" +@@ -22667,9 +22592,6 @@ + #~ msgid "`sigof' applied to non-aggregate expression" + #~ msgstr "`sigof' aplicado a una expresión no agregada" + +-#~ msgid "`sigof' applied to non-aggregate type" +-#~ msgstr "`sigof' aplicado a un tipo no agregado" +- + #~ msgid "storage class specifier `%s' not allowed after struct or class" + #~ msgstr "no se permite el especificador de clase de almacenamiento `%s' después de struct ó class" + +@@ -22697,9 +22619,6 @@ + #~ msgid "ISO C++ forbids array dimensions with parenthesized type in new" + #~ msgstr "ISO C++ prohíbe las dimensiones de matriz con tipos con paréntesis en new" + +-#~ msgid "`%T' is not a class or namespace" +-#~ msgstr "`%T' no es una claso o un espacio de nombres" +- + #~ msgid "ISO C++ forbids label declarations" + #~ msgstr "ISO C++ prohíbe declaraciones etiquetadas" + +@@ -23116,9 +23035,6 @@ + #~ msgid "missing binary operator" + #~ msgstr "falta un operador binario" + +-#~ msgid "operator '%s' has no left operand" +-#~ msgstr "el operador `%s' no tiene operando izquierdo" +- + #~ msgid "changing search order for system directory \"%s\"" + #~ msgstr "cambiando el orden de búsqueda para el directorio del sistema \"%s\"" + +Index: gcc/po/fr.po +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/po/fr.po,v +retrieving revision 1.7.8.10 +retrieving revision 1.7.8.11 +diff -u -r1.7.8.10 -r1.7.8.11 +--- gcc/po/fr.po 14 Sep 2004 20:37:29 -0000 1.7.8.10 ++++ gcc/po/fr.po 7 Nov 2004 19:59:27 -0000 1.7.8.11 +@@ -117,10 +117,10 @@ + # + msgid "" + msgstr "" +-"Project-Id-Version: GNU gcc 3.4.2\n" ++"Project-Id-Version: GNU gcc 3.4.3\n" + "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" +-"POT-Creation-Date: 2004-07-01 11:41-0700\n" +-"PO-Revision-Date: 2004-08-12 08:00-0500\n" ++"POT-Creation-Date: 2004-11-04 19:12-0800\n" ++"PO-Revision-Date: 2004-11-05 08:00-0500\n" + "Last-Translator: Michel Robitaille \n" + "Language-Team: French \n" + "MIME-Version: 1.0\n" +@@ -148,16 +148,16 @@ + msgid "`%s' attribute only applies to function types" + msgstr "l'attribut « %s » ne s'applique qu'à des types de fonction" + +-#: attribs.c:416 c-common.c:4307 c-common.c:4326 c-common.c:4344 +-#: c-common.c:4371 c-common.c:4390 c-common.c:4413 c-common.c:4436 +-#: c-common.c:4462 c-common.c:4496 c-common.c:4540 c-common.c:4568 +-#: c-common.c:4596 c-common.c:4615 c-common.c:4870 c-common.c:4892 +-#: c-common.c:4927 c-common.c:4994 c-common.c:5040 c-common.c:5098 +-#: c-common.c:5129 c-common.c:5475 c-common.c:5498 c-common.c:5537 +-#: config/arm/arm.c:2281 config/arm/arm.c:2308 config/avr/avr.c:4539 +-#: config/h8300/h8300.c:4284 config/h8300/h8300.c:4307 config/i386/i386.c:1620 +-#: config/i386/i386.c:15397 config/i386/winnt.c:86 config/ia64/ia64.c:1057 +-#: config/ip2k/ip2k.c:3151 ++#: attribs.c:416 c-common.c:4306 c-common.c:4325 c-common.c:4343 ++#: c-common.c:4370 c-common.c:4389 c-common.c:4412 c-common.c:4435 ++#: c-common.c:4461 c-common.c:4495 c-common.c:4539 c-common.c:4567 ++#: c-common.c:4595 c-common.c:4614 c-common.c:4881 c-common.c:4903 ++#: c-common.c:4938 c-common.c:5005 c-common.c:5051 c-common.c:5109 ++#: c-common.c:5140 c-common.c:5440 c-common.c:5463 c-common.c:5502 ++#: config/arm/arm.c:2281 config/arm/arm.c:2308 config/avr/avr.c:4504 ++#: config/h8300/h8300.c:4284 config/h8300/h8300.c:4307 config/i386/i386.c:1626 ++#: config/i386/i386.c:15398 config/i386/winnt.c:86 config/ia64/ia64.c:1057 ++#: config/ip2k/ip2k.c:3151 config/rs6000/rs6000.c:15035 + #, c-format + msgid "`%s' attribute ignored" + msgstr "attribut « %s » ignoré" +@@ -231,7 +231,7 @@ + + #. We can, however, treat "undefined" any way we please. + #. Call abort to encourage the user to fix the program. +-#: builtins.c:4134 c-typeck.c:1733 ++#: builtins.c:4134 c-typeck.c:1713 + msgid "if this code is reached, the program will abort" + msgstr "si ce code est atteint, le programme s'arrêtera" + +@@ -268,386 +268,391 @@ + msgid "target format does not support infinity" + msgstr "le format cible ne supporte pas l'infini" + +-#: c-common.c:917 ++#: c-common.c:916 + msgid "%Hsuggest explicit braces to avoid ambiguous `else'" + msgstr "%Hon vous suggère des accolades explicitement pour éviter des « else » ambiguës" + +-#: c-common.c:1141 ++#: c-common.c:1140 + msgid "%J'%D' is not defined outside of function scope" + msgstr "%J« %D » n'est pas défini à l'extérieur de la portée de la fonction" + +-#: c-common.c:1161 ++#: c-common.c:1160 + #, c-format + msgid "string length `%d' is greater than the length `%d' ISO C%d compilers are required to support" + msgstr "longueur de la chaîne « %d » plus grande que la longueur « %d » que les compilateurs ISO C%d doivent supporter" + +-#: c-common.c:1201 ++#: c-common.c:1200 + msgid "overflow in constant expression" + msgstr "débordement dans l'expression de la constante" + +-#: c-common.c:1221 ++#: c-common.c:1220 + msgid "integer overflow in expression" + msgstr "débordement d'entier dans l'expression" + +-#: c-common.c:1230 ++#: c-common.c:1229 + msgid "floating point overflow in expression" + msgstr "débordement d'un nombre en virgule flottante dans l'expression" + +-#: c-common.c:1236 ++#: c-common.c:1235 + msgid "vector overflow in expression" + msgstr "débordement du vecteur dans l'expression" + + #. This detects cases like converting -129 or 256 to unsigned char. +-#: c-common.c:1258 ++#: c-common.c:1257 + msgid "large integer implicitly truncated to unsigned type" + msgstr "grand entier implicitement tronqué pour un type non signé" + +-#: c-common.c:1260 ++#: c-common.c:1259 + msgid "negative integer implicitly converted to unsigned type" + msgstr "entier négatif implicitement converti en un type non signé" + +-#: c-common.c:1306 ++#: c-common.c:1305 + msgid "overflow in implicit constant conversion" + msgstr "débordement dans la conversion implicte de la constante" + +-#: c-common.c:1442 ++#: c-common.c:1441 + #, c-format + msgid "operation on `%s' may be undefined" + msgstr "l'opération portant sur « %s » est peut être indéfinie" + +-#: c-common.c:1726 ++#: c-common.c:1725 + msgid "expression statement has incomplete type" + msgstr "la déclaration de l'expression a un type incomplet" + +-#: c-common.c:1758 ++#: c-common.c:1757 + msgid "case label does not reduce to an integer constant" + msgstr "l'étiquette du « case » ne se réduit pas en une constante entière" + +-#: c-common.c:2088 ++#: c-common.c:2087 + msgid "invalid truth-value expression" + msgstr "expression valeur de vérité invalide" + +-#: c-common.c:2139 ++#: c-common.c:2138 + #, c-format + msgid "invalid operands to binary %s" + msgstr "opérandes invalides pour le binaire %s" + +-#: c-common.c:2373 ++#: c-common.c:2372 + msgid "comparison is always false due to limited range of data type" + msgstr "comparaison est toujours fausse en raison d'une gamme limitée de type de données" + +-#: c-common.c:2375 ++#: c-common.c:2374 + msgid "comparison is always true due to limited range of data type" + msgstr "comparaison est toujours vraie en raison d'une gamme limitée de type de données" + +-#: c-common.c:2445 ++#: c-common.c:2444 + msgid "comparison of unsigned expression >= 0 is always true" + msgstr "comparaison d'une expression non signée >=0 est toujours vraie" + +-#: c-common.c:2454 ++#: c-common.c:2453 + msgid "comparison of unsigned expression < 0 is always false" + msgstr "comparaison d'une expression non signée < 0 est toujours fausse" + +-#: c-common.c:2499 ++#: c-common.c:2498 + msgid "pointer of type `void *' used in arithmetic" + msgstr "usage en arithmétique d'un pointeur de type « void * »" + +-#: c-common.c:2505 ++#: c-common.c:2504 + msgid "pointer to a function used in arithmetic" + msgstr "usage en arithmétique d'un pointeur vers une fonction" + +-#: c-common.c:2511 ++#: c-common.c:2510 + msgid "pointer to member function used in arithmetic" + msgstr "usage en arithmétique d'un pointeur vers une fonction membre" + +-#: c-common.c:2600 f/com.c:14734 ++#: c-common.c:2599 f/com.c:14734 + msgid "struct type value used where scalar is required" + msgstr "valeur de type « struct » utilisé là où un scalaire est attendu" + +-#: c-common.c:2604 f/com.c:14738 ++#: c-common.c:2603 f/com.c:14738 + msgid "union type value used where scalar is required" + msgstr "valeur de type « union » utilisé là où un scalaire est attendu" + +-#: c-common.c:2608 f/com.c:14742 ++#: c-common.c:2607 f/com.c:14742 + msgid "array type value used where scalar is required" + msgstr "valeur de type « array » utilisé là où un scalaire est attendu" + + #. Common Ada/Pascal programmer's mistake. We always warn + #. about this since it is so bad. +-#: c-common.c:2645 ++#: c-common.c:2644 + msgid "the address of `%D', will always evaluate as `true'" + msgstr "l'adresse de « %D » sera toujours évaluée comme étant « true »" + +-#: c-common.c:2739 f/com.c:14874 ++#: c-common.c:2738 f/com.c:14874 + msgid "suggest parentheses around assignment used as truth value" + msgstr "parenthèses suggérées autour de l'affectation utilisée comme valeur de vérité" + +-#: c-common.c:2785 c-common.c:2825 ++#: c-common.c:2784 c-common.c:2824 + msgid "invalid use of `restrict'" + msgstr "usage de « restrict » invalide" + +-#: c-common.c:2935 ++#: c-common.c:2934 + msgid "invalid application of `sizeof' to a function type" + msgstr "application de « sizeof » sur un type de fonction invalide" + +-#: c-common.c:2945 ++#: c-common.c:2944 + #, c-format + msgid "invalid application of `%s' to a void type" + msgstr "application invalide de « %s » sur un type void" + +-#: c-common.c:2951 ++#: c-common.c:2950 + msgid "invalid application of `%s' to incomplete type `%T' " + msgstr "application invalide de « %s » sur un type incomplet « %T »" + +-#: c-common.c:2992 ++#: c-common.c:2991 + msgid "`__alignof' applied to a bit-field" + msgstr "« __alignof » appliqué sur un champ de bits" + +-#: c-common.c:3484 ++#: c-common.c:3483 + #, c-format + msgid "cannot disable built-in function `%s'" + msgstr "ne peut désactiver la fonction interne « %s »" + +-#: c-common.c:3645 c-typeck.c:1974 ++#: c-common.c:3644 c-typeck.c:1954 + #, c-format + msgid "too few arguments to function `%s'" + msgstr "pas assez d'arguments pour la fonction « %s »" + +-#: c-common.c:3651 c-typeck.c:1835 ++#: c-common.c:3650 c-typeck.c:1815 + #, c-format + msgid "too many arguments to function `%s'" + msgstr "trop d'arguments pour la fonction « %s »" + +-#: c-common.c:3670 ++#: c-common.c:3669 + #, c-format + msgid "non-floating-point argument to function `%s'" + msgstr "argument pour la fonction « %s » n'étant pas en virgule flottante" + +-#: c-common.c:3897 ++#: c-common.c:3896 + msgid "pointers are not permitted as case values" + msgstr "les pointeurs ne sont pas permis comme valeurs de « case »" + +-#: c-common.c:3901 ++#: c-common.c:3900 + msgid "range expressions in switch statements are non-standard" + msgstr "l'étendue des expressions dans les déclarations switch ne sont pas standard" + +-#: c-common.c:3930 ++#: c-common.c:3929 + msgid "empty range specified" + msgstr "intervalle vide spécifié" + +-#: c-common.c:3981 ++#: c-common.c:3980 + msgid "duplicate (or overlapping) case value" + msgstr "valeur du « case » duppliquée (ou en chevauchant une autre)" + +-#: c-common.c:3982 ++#: c-common.c:3981 + msgid "%Jthis is the first entry overlapping that value" + msgstr "%Jest la première entrée chevauchant cette valeur" + +-#: c-common.c:3986 ++#: c-common.c:3985 + msgid "duplicate case value" + msgstr "valeur du « case » duppliquée" + +-#: c-common.c:3987 ++#: c-common.c:3986 + msgid "%Jpreviously used here" + msgstr "%Jprécédemment utilisé ici" + +-#: c-common.c:3991 ++#: c-common.c:3990 + msgid "multiple default labels in one switch" + msgstr "plusieurs étiquettes par défaut dans un « switch »" + +-#: c-common.c:3992 ++#: c-common.c:3991 + msgid "%Jthis is the first default label" + msgstr "%Jest la première étiquette par défaut" + +-#: c-common.c:4017 ++#: c-common.c:4016 + msgid "taking the address of a label is non-standard" + msgstr "prendre l'adresse d'une étiquette n'est pas standard" + +-#: c-common.c:4063 ++#: c-common.c:4062 + msgid "%Hignoring return value of `%D', declared with attribute warn_unused_result" + msgstr "%Hvaleur à retourner « %D » ignorée, déclarée avec l'attribut warn_unused_result" + +-#: c-common.c:4068 ++#: c-common.c:4067 + msgid "%Hignoring return value of function declared with attribute warn_unused_result" + msgstr "%Hvaleur à retourner ignorée de la fonction déclarée avec l'attribut warn_unused_result" + +-#: c-common.c:4649 ++#: c-common.c:4651 + #, c-format + msgid "unknown machine mode `%s'" + msgstr "mode machine « %s » inconnu" + +-#: c-common.c:4652 ++#: c-common.c:4654 + #, c-format + msgid "no data type for mode `%s'" + msgstr "aucun type de données pour le mode « %s »" + +-#: c-common.c:4656 ++#: c-common.c:4658 + #, c-format + msgid "invalid pointer mode `%s'" + msgstr "mode pointeur invalide « %s »" + +-#: c-common.c:4663 c-common.c:5226 ++#: c-common.c:4665 c-common.c:5237 + #, c-format + msgid "unable to emulate '%s'" + msgstr "impossible d'émuler « %s »" + +-#: c-common.c:4707 ++#: c-common.c:4686 ++#, c-format ++msgid "mode `%s' applied to inappropriate type" ++msgstr "mode « %s » appliqué à un type inapproprié" ++ ++#: c-common.c:4718 + msgid "%Jsection attribute cannot be specified for local variables" + msgstr "%Jl'attribut de section ne peut être spécifié pour des variables locales" + +-#: c-common.c:4718 ++#: c-common.c:4729 + msgid "%Jsection of '%D' conflicts with previous declaration" + msgstr "%Jsection de « %D » en conflit avec une déclaration précédente" + +-#: c-common.c:4727 ++#: c-common.c:4738 + msgid "%Jsection attribute not allowed for '%D'" + msgstr "%Jattribut de section n'est pas permis pour « %D »" + +-#: c-common.c:4733 ++#: c-common.c:4744 + msgid "%Jsection attributes are not supported for this target" + msgstr "%Jattributs de section ne sont pas supportés pour la cible" + +-#: c-common.c:4771 ++#: c-common.c:4782 + msgid "requested alignment is not a constant" + msgstr "l'alignement demandé n'est pas une constante" + +-#: c-common.c:4776 ++#: c-common.c:4787 + msgid "requested alignment is not a power of 2" + msgstr "l'alignement demandé n'est pas une puissance de 2" + +-#: c-common.c:4781 ++#: c-common.c:4792 + msgid "requested alignment is too large" + msgstr "l'alignement demandé est trop grand" + +-#: c-common.c:4807 ++#: c-common.c:4818 + msgid "%Jalignment may not be specified for '%D'" + msgstr "%Jl'alignement ne peut pas être spécifié pour « %D »" + +-#: c-common.c:4845 ++#: c-common.c:4856 + msgid "%J'%D' defined both normally and as an alias" + msgstr "%J'%D défini à la fois normalement et en tant qu'alias" + +-#: c-common.c:4855 ++#: c-common.c:4866 + msgid "alias arg not a string" + msgstr "l'argument d'alias n'est pas une chaîne" + +-#: c-common.c:4898 ++#: c-common.c:4909 + msgid "visibility arg not a string" + msgstr "l'argument de visibilité n'est pas une chaîne" + +-#: c-common.c:4911 ++#: c-common.c:4922 + msgid "visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\"" + msgstr "l'argument de visibilité doit être l'un de « default » (par défaut), « hidden » (masqué), « protected » (protégé) ou « internal » (interne)" + +-#: c-common.c:4937 ++#: c-common.c:4948 + msgid "tls_model arg not a string" + msgstr "l'argument de tls_model n'est pas une chaîne" + +-#: c-common.c:4946 ++#: c-common.c:4957 + msgid "tls_model arg must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\"" + msgstr "l'argument de tls_model doit être l'un de « local-exec », « initial-exec », « local-dynamic » or « global-dynamic »" + +-#: c-common.c:4968 c-common.c:5014 ++#: c-common.c:4979 c-common.c:5025 + msgid "%J'%E' attribute applies only to functions" + msgstr "%J'%E l'attribut ne s'applique seulement qu'à des fonctions" + +-#: c-common.c:4973 c-common.c:5019 ++#: c-common.c:4984 c-common.c:5030 + msgid "%Jcan't set '%E' attribute after definition" + msgstr "%Jne peut initialiser l'attribut « %E » après définition" + +-#: c-common.c:5095 ++#: c-common.c:5106 + #, c-format + msgid "`%s' attribute ignored for `%s'" + msgstr "attribut « %s » ignoré pour « %s »" + +-#: c-common.c:5158 ++#: c-common.c:5169 + #, c-format + msgid "invalid vector type for attribute `%s'" + msgstr "type de vecteur invalide pour l'attribut « %s »" + +-#: c-common.c:5182 c-common.c:5214 ++#: c-common.c:5193 c-common.c:5225 + msgid "no vector mode with the size and type specified could be found" + msgstr "aucun mode vecteur avec la taille et le type spécifié n'a été trouvé" + +-#: c-common.c:5316 ++#: c-common.c:5281 + msgid "nonnull attribute without arguments on a non-prototype" + msgstr "attribut non nul sans argument sur un non-prototype" + +-#: c-common.c:5331 ++#: c-common.c:5296 + #, c-format + msgid "nonnull argument has invalid operand number (arg %lu)" + msgstr "un argument non nul a un nombre d'opérande invalide (argument %lu)" + +-#: c-common.c:5350 ++#: c-common.c:5315 + #, c-format + msgid "nonnull argument with out-of-range operand number (arg %lu, operand %lu)" + msgstr "un argument non nul a un nombre d'opérande hors des bornes (arg %lu, opérande %lu)" + +-#: c-common.c:5358 ++#: c-common.c:5323 + #, c-format + msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)" + msgstr "un argument non nul référence une opérande qui n'est pas un pointeur (arg %lu, opérande %lu)" + +-#: c-common.c:5438 ++#: c-common.c:5403 + #, c-format + msgid "null argument where non-null required (arg %lu)" + msgstr "argument nul là où un non-nul est requis (arg %lu)" + +-#: c-common.c:5509 ++#: c-common.c:5474 + msgid "cleanup arg not an identifier" + msgstr "argument de nettoyage n'est pas un identificateur" + +-#: c-common.c:5516 ++#: c-common.c:5481 + msgid "cleanup arg not a function" + msgstr "argument de nettoyage n'est pas une fonction" + +-#: c-common.c:5877 ++#: c-common.c:5842 + #, c-format + msgid "%s at end of input" + msgstr "%s à la fin de l'entrée" + +-#: c-common.c:5883 ++#: c-common.c:5848 + #, c-format + msgid "%s before %s'%c'" + msgstr "%s avant %s« %c »" + +-#: c-common.c:5885 ++#: c-common.c:5850 + #, c-format + msgid "%s before %s'\\x%x'" + msgstr "%s avant %s'\\x%x'" + +-#: c-common.c:5889 ++#: c-common.c:5854 + #, c-format + msgid "%s before string constant" + msgstr "%s avant une chaîne constante" + +-#: c-common.c:5891 ++#: c-common.c:5856 + #, c-format + msgid "%s before numeric constant" + msgstr "%s avant une constante numérique" + +-#: c-common.c:5893 ++#: c-common.c:5858 + #, c-format + msgid "%s before \"%s\"" + msgstr "%s avant « %s »" + +-#: c-common.c:5895 ++#: c-common.c:5860 + #, c-format + msgid "%s before '%s' token" + msgstr "%s avant un élément lexical « %s »" + + #. Use `%s' to print the string in case there are any escape + #. characters in the message. +-#: c-common.c:5897 c-typeck.c:2612 c-typeck.c:4004 c-typeck.c:4019 +-#: c-typeck.c:4034 final.c:2776 final.c:2778 gcc.c:4581 rtl-error.c:109 +-#: toplev.c:1357 config/cris/cris.c:552 cp/parser.c:1848 cp/typeck.c:4155 ++#: c-common.c:5862 c-typeck.c:2592 c-typeck.c:3984 c-typeck.c:3999 ++#: c-typeck.c:4014 final.c:2776 final.c:2778 gcc.c:4584 rtl-error.c:109 ++#: toplev.c:1357 config/cris/cris.c:552 cp/parser.c:1848 cp/typeck.c:4173 + #: java/expr.c:356 java/verify.c:1456 java/verify.c:1457 java/verify.c:1472 + #, c-format + msgid "%s" + msgstr "%s" + +-#: c-convert.c:82 c-typeck.c:1211 c-typeck.c:3444 cp/typeck.c:1363 +-#: cp/typeck.c:5708 treelang/tree-convert.c:79 ++#: c-convert.c:82 c-typeck.c:1211 c-typeck.c:3424 cp/typeck.c:1363 ++#: cp/typeck.c:5729 treelang/tree-convert.c:79 + msgid "void value not ignored as it ought to be" + msgstr "valeur void n'a pas été ignorée comme elle aurait dû l'être" + +@@ -813,386 +818,386 @@ + msgid "%Jnon-const declaration of '%D' follows const declaration" + msgstr "%Jdéclaration de non constante de « %D » suit une déclaration de constante" + +-#: c-decl.c:1262 ++#: c-decl.c:1267 + msgid "%Jredundant redeclaration of '%D'" + msgstr "%Jdéclaration redondante de « %D »" + +-#: c-decl.c:1581 ++#: c-decl.c:1586 + msgid "%Jdeclaration of '%D' shadows a parameter" + msgstr "%Jdéclaration de « %D » masque un paramètre" + +-#: c-decl.c:1583 ++#: c-decl.c:1588 + msgid "%Jdeclaration of '%D' shadows a global declaration" + msgstr "%Jdéclaration de « %D » masque une déclaration globale" + +-#: c-decl.c:1585 ++#: c-decl.c:1590 + msgid "%Jdeclaration of '%D' shadows a previous local" + msgstr "%Jdéclaration de « %D » masque la déclaration d'un local précédent" + +-#: c-decl.c:1587 cp/name-lookup.c:969 cp/name-lookup.c:992 ++#: c-decl.c:1592 cp/name-lookup.c:969 cp/name-lookup.c:992 + #: cp/name-lookup.c:1000 + msgid "%Jshadowed declaration is here" + msgstr "%Jdéclaration est masquée ici" + +-#: c-decl.c:1697 ++#: c-decl.c:1702 + #, c-format + msgid "nested extern declaration of `%s'" + msgstr "déclaration de « %s » externe imbriquée" + +-#: c-decl.c:1838 objc/objc-act.c:2534 objc/objc-act.c:6794 ++#: c-decl.c:1843 objc/objc-act.c:2534 objc/objc-act.c:6794 + msgid "%Jprevious declaration of '%D'" + msgstr "%Jdéclaration précédente de « %D »" + +-#: c-decl.c:1879 c-decl.c:1881 ++#: c-decl.c:1884 c-decl.c:1886 + #, c-format + msgid "implicit declaration of function `%s'" + msgstr "déclaration implicite de la fonction « %s »" + +-#: c-decl.c:1897 ++#: c-decl.c:1902 + #, c-format + msgid "`%s' undeclared here (not in a function)" + msgstr "« %s » non déclaré ici (hors de toute fonction)" + +-#: c-decl.c:1903 ++#: c-decl.c:1908 + #, c-format + msgid "`%s' undeclared (first use in this function)" + msgstr "« %s » non déclaré (première utilisation dans cette fonction)" + +-#: c-decl.c:1908 ++#: c-decl.c:1913 + msgid "(Each undeclared identifier is reported only once" + msgstr "(Chaque identificateur non déclaré est rapporté une seule fois" + +-#: c-decl.c:1909 ++#: c-decl.c:1914 + msgid "for each function it appears in.)" + msgstr "pour chaque fonction dans laquelle il apparaît.)" + +-#: c-decl.c:1962 ++#: c-decl.c:1967 + #, c-format + msgid "label %s referenced outside of any function" + msgstr "étiquette %s référencée à l'extérieur de toute fonction" + +-#: c-decl.c:2009 ++#: c-decl.c:2014 + #, c-format + msgid "duplicate label declaration `%s'" + msgstr "déclaration de l'étiquette « %s » en double" + +-#: c-decl.c:2010 ++#: c-decl.c:2015 + msgid "%Jthis is a previous declaration" + msgstr "%Jest la déclaration précédente" + +-#: c-decl.c:2045 ++#: c-decl.c:2050 + msgid "%Hduplicate label `%D'" + msgstr "%Hétiquette « %D » apparaît en double" + +-#: c-decl.c:2047 ++#: c-decl.c:2052 + msgid "%J`%D' previously defined here" + msgstr "%J« %D » précédemment défini ici" + +-#: c-decl.c:2049 ++#: c-decl.c:2054 + msgid "%J`%D' previously declared here" + msgstr "%J« %D » précédemment déclaré ici" + +-#: c-decl.c:2069 ++#: c-decl.c:2074 + msgid "%Htraditional C lacks a separate namespace for labels, identifier `%s' conflicts" + msgstr "%HC traditionnel manque d'un espace nom séparé pour les étiquettes, identificateur « %D » est en conflit" + +-#: c-decl.c:2140 ++#: c-decl.c:2145 + msgid "%H`%s' defined as wrong kind of tag" + msgstr "%H« %s » défini incorrectement comme une mauvais sorte d'étiquette" + +-#: c-decl.c:2378 ++#: c-decl.c:2383 + msgid "unnamed struct/union that defines no instances" + msgstr "struct/union sans nom ne définissant aucune instance" + +-#: c-decl.c:2397 ++#: c-decl.c:2402 + msgid "useless keyword or type name in empty declaration" + msgstr "mot clé ou nom de type inutile dans une déclaration vide" + +-#: c-decl.c:2404 ++#: c-decl.c:2409 + msgid "two types specified in one empty declaration" + msgstr "deux types spécifiés dans une déclaration vide" + +-#: c-decl.c:2409 c-parse.y:735 c-parse.y:737 objc/objc-parse.y:776 +-#: objc/objc-parse.y:778 objc/objc-parse.y:3017 ++#: c-decl.c:2414 c-parse.y:735 c-parse.y:737 objc/objc-parse.y:776 ++#: objc/objc-parse.y:778 objc/objc-parse.y:3016 + msgid "empty declaration" + msgstr "déclaration vide" + +-#: c-decl.c:2435 ++#: c-decl.c:2440 + msgid "ISO C90 does not support `static' or type qualifiers in parameter array declarators" + msgstr "ISO C90 ne supporte pas « static » ou les qualificateurs de type dans les déclarateurs de tableau de paramètres" + +-#: c-decl.c:2437 ++#: c-decl.c:2442 + msgid "ISO C90 does not support `[*]' array declarators" + msgstr "ISO C90 ne supporte pas « [*] » dans les déclarateurs de tableau" + +-#: c-decl.c:2440 ++#: c-decl.c:2445 + msgid "GCC does not yet properly implement `[*]' array declarators" + msgstr "GCC n'implémente pas encore correctement les déclarateurs de tableau « [*] »" + +-#: c-decl.c:2456 ++#: c-decl.c:2461 + msgid "static or type qualifiers in abstract declarator" + msgstr "static ou qualificateurs de type dans un déclarateur abstrait" + +-#: c-decl.c:2526 ++#: c-decl.c:2531 + msgid "%J'%D' is usually a function" + msgstr "%J« %D » est habituellement une fonction" + +-#: c-decl.c:2535 ++#: c-decl.c:2540 + #, c-format + msgid "typedef `%s' is initialized (use __typeof__ instead)" + msgstr "typedef « %s » est initialisé (utilisez __typeof__ à la place)" + +-#: c-decl.c:2541 ++#: c-decl.c:2546 + #, c-format + msgid "function `%s' is initialized like a variable" + msgstr "la fonction « %s » est initialisée comme une variable" + + #. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE. +-#: c-decl.c:2548 ++#: c-decl.c:2553 + #, c-format + msgid "parameter `%s' is initialized" + msgstr "le paramètre « %s » est initialisé" + +-#: c-decl.c:2568 c-typeck.c:4254 ++#: c-decl.c:2573 c-typeck.c:4234 + msgid "variable-sized object may not be initialized" + msgstr "un objet de taille variable peut ne pas être initialisé" + +-#: c-decl.c:2574 ++#: c-decl.c:2579 + #, c-format + msgid "variable `%s' has initializer but incomplete type" + msgstr "la variable « %s » est initialisée alors qu'elle est de type incomplet" + +-#: c-decl.c:2580 ++#: c-decl.c:2585 + #, c-format + msgid "elements of array `%s' have incomplete type" + msgstr "les éléments du tableau « %s » ont des types incomplets" + +-#: c-decl.c:2649 c-decl.c:5451 cp/decl.c:3761 cp/decl.c:10141 ++#: c-decl.c:2654 c-decl.c:5462 cp/decl.c:3775 cp/decl.c:10238 + msgid "%Jinline function '%D' given attribute noinline" + msgstr "%J fonction enligne « %D » a reçu l'attribut non enligne" + +-#: c-decl.c:2725 ++#: c-decl.c:2730 + msgid "%Jinitializer fails to determine size of '%D'" + msgstr "%Jinitialisateur a échoué à déterminer la taille de « %D »" + +-#: c-decl.c:2730 ++#: c-decl.c:2735 + msgid "%Jarray size missing in '%D'" + msgstr "%Jtaille du tableau est manquante dans « %D »" + +-#: c-decl.c:2746 ++#: c-decl.c:2751 + msgid "%Jzero or negative size array '%D'" + msgstr "%Jtableau « %D » de taille zéro ou négative" + +-#: c-decl.c:2774 ++#: c-decl.c:2779 + msgid "%Jstorage size of '%D' isn't known" + msgstr "%Jtaille de stockage de « %D » n'est pas connue" + +-#: c-decl.c:2784 ++#: c-decl.c:2789 + msgid "%Jstorage size of '%D' isn't constant" + msgstr "%Jtaille de stockage de « %D » n'est pas une constante" + +-#: c-decl.c:2867 ++#: c-decl.c:2872 + msgid "%Jignoring asm-specifier for non-static local variable '%D'" + msgstr "%Jspécificateur asm ignoré pour la variable locale non statique « %D »" + +-#: c-decl.c:2978 ++#: c-decl.c:2983 + msgid "ISO C forbids forward parameter declarations" + msgstr "ISO C interdit la déclaration anticipée de paramètres" + +-#: c-decl.c:3160 ++#: c-decl.c:3165 + msgid "" + msgstr "" + +-#: c-decl.c:3169 ++#: c-decl.c:3174 + #, c-format + msgid "bit-field `%s' width not an integer constant" + msgstr "la largeur du champ de bits « %s » n'est pas une constante entière" + +-#: c-decl.c:3177 ++#: c-decl.c:3182 + #, c-format + msgid "negative width in bit-field `%s'" + msgstr "largeur négative du champ de bits « %s »" + +-#: c-decl.c:3182 ++#: c-decl.c:3187 + #, c-format + msgid "zero width for bit-field `%s'" + msgstr "largeur nulle pour le champ de bits « %s »" + +-#: c-decl.c:3192 ++#: c-decl.c:3197 + #, c-format + msgid "bit-field `%s' has invalid type" + msgstr "le champ de bits « %s » a un type invalide" + +-#: c-decl.c:3201 ++#: c-decl.c:3206 + #, c-format + msgid "type of bit-field `%s' is a GCC extension" + msgstr "le type de champ de bit « %s » est une extension GCC" + +-#: c-decl.c:3210 ++#: c-decl.c:3215 + #, c-format + msgid "width of `%s' exceeds its type" + msgstr "la largeur de « %s » excède son type" + +-#: c-decl.c:3220 ++#: c-decl.c:3225 + #, c-format + msgid "`%s' is narrower than values of its type" + msgstr "« %s » est plus étroit que les valeurs de son type" + +-#: c-decl.c:3370 cp/decl.c:6805 ++#: c-decl.c:3375 cp/decl.c:6900 + msgid "`long long long' is too long for GCC" + msgstr "« long long long » est trop long pour GCC" + +-#: c-decl.c:3375 ++#: c-decl.c:3380 + msgid "ISO C90 does not support `long long'" + msgstr "ISO C90 ne permet pas « long long »" + +-#: c-decl.c:3384 c-decl.c:3387 cp/decl.c:6810 ++#: c-decl.c:3389 c-decl.c:3392 cp/decl.c:6905 + #, c-format + msgid "duplicate `%s'" + msgstr "« %s » apparaît en double" + +-#: c-decl.c:3397 cp/decl.c:6816 ++#: c-decl.c:3402 cp/decl.c:6911 + msgid "`__thread' before `extern'" + msgstr "« __thread » avant « extern »" + +-#: c-decl.c:3399 cp/decl.c:6818 ++#: c-decl.c:3404 cp/decl.c:6913 + msgid "`__thread' before `static'" + msgstr "« __thread » avant « static »" + +-#: c-decl.c:3407 cp/decl.c:6845 ++#: c-decl.c:3412 cp/decl.c:6940 + #, c-format + msgid "two or more data types in declaration of `%s'" + msgstr "deux types de données ou plus dans la déclaration de « %s »" + +-#: c-decl.c:3427 cp/decl.c:6850 ++#: c-decl.c:3432 cp/decl.c:6945 + #, c-format + msgid "`%s' fails to be a typedef or built in type" + msgstr "« %s » n'a pu devenir un typedef ou un type construit" + +-#: c-decl.c:3466 ++#: c-decl.c:3471 + #, c-format + msgid "type defaults to `int' in declaration of `%s'" + msgstr "dans la déclaration de « %s », utilisation de « int » par défaut pour le type" + +-#: c-decl.c:3495 ++#: c-decl.c:3500 + #, c-format + msgid "both long and short specified for `%s'" + msgstr "« long » et « short » spécifiés à la fois pour « %s »" + +-#: c-decl.c:3499 cp/decl.c:6950 ++#: c-decl.c:3504 cp/decl.c:7045 + #, c-format + msgid "long or short specified with char for `%s'" + msgstr "« long » ou « short » spécifié avec « char » pour « %s »" + +-#: c-decl.c:3506 cp/decl.c:6954 ++#: c-decl.c:3511 cp/decl.c:7049 + #, c-format + msgid "long or short specified with floating type for `%s'" + msgstr "« long » ou « short » spécifié avec un type flottant pour « %s »" + +-#: c-decl.c:3509 ++#: c-decl.c:3514 + msgid "the only valid combination is `long double'" + msgstr "la seule combinaison valide est « long double »" + +-#: c-decl.c:3515 ++#: c-decl.c:3520 + #, c-format + msgid "both signed and unsigned specified for `%s'" + msgstr "« %s » est à la fois signé et non signé" + +-#: c-decl.c:3517 cp/decl.c:6943 ++#: c-decl.c:3522 cp/decl.c:7038 + #, c-format + msgid "long, short, signed or unsigned invalid for `%s'" + msgstr "« long », « short », « signed » ou « unsigned » invalide pour « %s »" + +-#: c-decl.c:3523 cp/decl.c:6963 ++#: c-decl.c:3528 cp/decl.c:7058 + #, c-format + msgid "long, short, signed or unsigned used invalidly for `%s'" + msgstr "« long », « short », « signed » ou « unsigned » utilisé incorrectement pour « %s »" + +-#: c-decl.c:3541 cp/decl.c:6984 ++#: c-decl.c:3546 cp/decl.c:7079 + #, c-format + msgid "complex invalid for `%s'" + msgstr "« complex » invalide pour « %s »" + +-#: c-decl.c:3583 ++#: c-decl.c:3588 + msgid "ISO C90 does not support complex types" + msgstr "ISO C90 ne permet pas les types « complex »" + +-#: c-decl.c:3595 ++#: c-decl.c:3600 + msgid "ISO C does not support plain `complex' meaning `double complex'" + msgstr "ISO C ne permet pas d'utiliser « complex » à la place de « double complex »" + +-#: c-decl.c:3601 c-decl.c:3613 ++#: c-decl.c:3606 c-decl.c:3618 + msgid "ISO C does not support complex integer types" + msgstr "ISO C interdit le type d'entiers complexes" + +-#: c-decl.c:3643 c-decl.c:4104 cp/decl.c:7576 ++#: c-decl.c:3648 c-decl.c:4115 cp/decl.c:7671 + msgid "duplicate `const'" + msgstr "« const » apparaît en double" + +-#: c-decl.c:3645 c-decl.c:4108 cp/decl.c:7580 ++#: c-decl.c:3650 c-decl.c:4119 cp/decl.c:7675 + msgid "duplicate `restrict'" + msgstr "« restrict » apparaît en double" + +-#: c-decl.c:3647 c-decl.c:4106 cp/decl.c:7578 ++#: c-decl.c:3652 c-decl.c:4117 cp/decl.c:7673 + msgid "duplicate `volatile'" + msgstr "« volatile » apparaît en double" + +-#: c-decl.c:3676 cp/decl.c:7147 ++#: c-decl.c:3681 cp/decl.c:7242 + #, c-format + msgid "multiple storage classes in declaration of `%s'" + msgstr "multiples classes de stockage dans la déclaration de « %s »" + +-#: c-decl.c:3686 ++#: c-decl.c:3691 + msgid "function definition declared `auto'" + msgstr "définition de fonction déclaré « auto »" + +-#: c-decl.c:3688 ++#: c-decl.c:3693 + msgid "function definition declared `register'" + msgstr "définition de fonction déclarée « register »" + +-#: c-decl.c:3690 ++#: c-decl.c:3695 + msgid "function definition declared `typedef'" + msgstr "définition de fonction déclarée « typedef »" + +-#: c-decl.c:3692 ++#: c-decl.c:3697 + msgid "function definition declared `__thread'" + msgstr "définition de fonction déclarée « __thread »" + +-#: c-decl.c:3705 ++#: c-decl.c:3710 + #, c-format + msgid "storage class specified for structure field `%s'" + msgstr "classe de stockage spécifiée pour le champ de structure « %s »" + +-#: c-decl.c:3709 cp/decl.c:7192 ++#: c-decl.c:3714 cp/decl.c:7287 + #, c-format + msgid "storage class specified for parameter `%s'" + msgstr "classe de stockage spécifiée pour le paramètre « %s »" + +-#: c-decl.c:3712 cp/decl.c:7194 ++#: c-decl.c:3717 cp/decl.c:7289 + msgid "storage class specified for typename" + msgstr "classe de stockage spécifié pour un typename" + +-#: c-decl.c:3724 cp/decl.c:7209 ++#: c-decl.c:3729 cp/decl.c:7304 + #, c-format + msgid "`%s' initialized and declared `extern'" + msgstr "« %s » initialisé et déclaré « extern »" + +-#: c-decl.c:3726 cp/decl.c:7212 ++#: c-decl.c:3731 cp/decl.c:7307 + #, c-format + msgid "`%s' has both `extern' and initializer" + msgstr "« %s » a les deux « extern » et initialisateur" + +-#: c-decl.c:3731 ++#: c-decl.c:3736 + #, c-format + msgid "file-scope declaration of `%s' specifies `auto'" + msgstr "la déclaration de l'étendue de fichier « %s » spécifie « auto »" + +-#: c-decl.c:3736 cp/decl.c:7216 ++#: c-decl.c:3741 cp/decl.c:7311 + #, c-format + msgid "nested function `%s' declared `extern'" + msgstr "fonction imbriquée « %s » déclarée « extern »" + +-#: c-decl.c:3742 cp/decl.c:7226 ++#: c-decl.c:3747 cp/decl.c:7321 + #, c-format + msgid "function-scope `%s' implicitly auto and declared `__thread'" + msgstr "« %s » dans le champ de la fonction est implicitement déclaré auto, et déclaré « __thread »" +@@ -1200,434 +1205,434 @@ + #. Only the innermost declarator (making a parameter be of + #. array type which is converted to pointer type) + #. may have static or type qualifiers. +-#: c-decl.c:3781 c-decl.c:3974 ++#: c-decl.c:3786 c-decl.c:3979 + msgid "static or type qualifiers in non-parameter array declarator" + msgstr "static ou qualificateurs de type dans un déclarateur de tableau n'étant pas un paramètre" + +-#: c-decl.c:3825 ++#: c-decl.c:3830 + #, c-format + msgid "declaration of `%s' as array of voids" + msgstr "déclaration de « %s » comme un tableau de « void »" + +-#: c-decl.c:3831 ++#: c-decl.c:3836 + #, c-format + msgid "declaration of `%s' as array of functions" + msgstr "déclaration de « %s » comme un tableau de fonctions" + +-#: c-decl.c:3836 ++#: c-decl.c:3841 + msgid "invalid use of structure with flexible array member" + msgstr "utilisation invalide d'une structure ayant un membre flexible" + +-#: c-decl.c:3855 ++#: c-decl.c:3860 + #, c-format + msgid "size of array `%s' has non-integer type" + msgstr "la taille du tableau « %s » n'est pas de type entier" + +-#: c-decl.c:3860 ++#: c-decl.c:3865 + #, c-format + msgid "ISO C forbids zero-size array `%s'" + msgstr "ISO C interdit le tableau de taille zéro « %s »" + +-#: c-decl.c:3867 ++#: c-decl.c:3872 + #, c-format + msgid "size of array `%s' is negative" + msgstr "la taille du tableau « %s » est négative" + +-#: c-decl.c:3880 ++#: c-decl.c:3885 + #, c-format + msgid "ISO C90 forbids array `%s' whose size can't be evaluated" + msgstr "ISO C90 interdit le tableau « %s » dont la taille ne peut être évaluée" + +-#: c-decl.c:3883 ++#: c-decl.c:3888 + #, c-format + msgid "ISO C90 forbids variable-size array `%s'" + msgstr "ISO C90 interdit le tableau « %s » de taille variable" + +-#: c-decl.c:3913 c-decl.c:4131 cp/decl.c:7755 ++#: c-decl.c:3918 c-decl.c:4142 cp/decl.c:7850 + #, c-format + msgid "size of array `%s' is too large" + msgstr "la taille du tableau « %s » est trop grande" + +-#: c-decl.c:3939 ++#: c-decl.c:3944 + msgid "ISO C90 does not support flexible array members" + msgstr "ISO C90 interdit les tableaux ayant des membres flexibles" + +-#: c-decl.c:3949 ++#: c-decl.c:3954 + msgid "array type has incomplete element type" + msgstr "les éléments du tableau sont de type incomplet" + +-#: c-decl.c:3994 cp/decl.c:7347 ++#: c-decl.c:4009 cp/decl.c:7442 + #, c-format + msgid "`%s' declared as function returning a function" + msgstr "« %s » déclaré comme une fonction retournant une fonction" + +-#: c-decl.c:3999 cp/decl.c:7352 ++#: c-decl.c:4014 cp/decl.c:7447 + #, c-format + msgid "`%s' declared as function returning an array" + msgstr "« %s » déclaré comme une fonction retournant un tableau" + +-#: c-decl.c:4027 ++#: c-decl.c:4038 + msgid "ISO C forbids qualified void function return type" + msgstr "ISO C interdit d'utiliser un void qualifié en valeur à retourner par la fonction" + +-#: c-decl.c:4031 ++#: c-decl.c:4042 + msgid "type qualifiers ignored on function return type" + msgstr "qualificateurs de type ignorés pour le type à retourner par la fonction" + +-#: c-decl.c:4060 c-decl.c:4146 c-decl.c:4270 c-decl.c:4356 ++#: c-decl.c:4071 c-decl.c:4157 c-decl.c:4281 c-decl.c:4367 + msgid "ISO C forbids qualified function types" + msgstr "ISO C interdit les types de fonction qualifiés" + +-#: c-decl.c:4100 cp/decl.c:7572 ++#: c-decl.c:4111 cp/decl.c:7667 + msgid "invalid type modifier within pointer declarator" + msgstr "modificateur de type invalide dans la déclaration de pointeur" + +-#: c-decl.c:4181 ++#: c-decl.c:4192 + msgid "ISO C forbids const or volatile function types" + msgstr "ISO C interdit les fonction de type volatile ou constante" + +-#: c-decl.c:4201 cp/decl.c:8036 ++#: c-decl.c:4212 + #, c-format + msgid "variable or field `%s' declared void" + msgstr "variable ou champ « %s » déclaré « void »" + +-#: c-decl.c:4234 ++#: c-decl.c:4245 + msgid "attributes in parameter array declarator ignored" + msgstr "les attributs dans un déclarateur de tableau de paramètres sont ignorés" + +-#: c-decl.c:4259 ++#: c-decl.c:4270 + msgid "invalid type modifier within array declarator" + msgstr "modificateur invalide de type à l'intérieur d'un déclarateur de tableau" + +-#: c-decl.c:4304 ++#: c-decl.c:4315 + #, c-format + msgid "field `%s' declared as a function" + msgstr "champ « %s » déclaré comme une fonction" + +-#: c-decl.c:4310 ++#: c-decl.c:4321 + #, c-format + msgid "field `%s' has incomplete type" + msgstr "champ « %s » est de type incomplet" + +-#: c-decl.c:4336 c-decl.c:4338 c-decl.c:4340 c-decl.c:4347 ++#: c-decl.c:4347 c-decl.c:4349 c-decl.c:4351 c-decl.c:4358 + #, c-format + msgid "invalid storage class for function `%s'" + msgstr "classe de stockage invalide pour la fonction « %s »" + +-#: c-decl.c:4362 ++#: c-decl.c:4373 + msgid "`noreturn' function returns non-void value" + msgstr "fonction marquée « noreturn » retourne une valeur n'étant pas de type « void »" + +-#: c-decl.c:4377 ++#: c-decl.c:4388 + msgid "cannot inline function `main'" + msgstr "ne peut transformer « main » en fonction enligne" + +-#: c-decl.c:4431 ++#: c-decl.c:4442 + msgid "variable previously declared `static' redeclared `extern'" + msgstr "variable précédemment déclarée « static » redéclarée « extern »" + +-#: c-decl.c:4440 ++#: c-decl.c:4451 + msgid "%Jvariable '%D' declared `inline'" + msgstr "%Jvariable « %D » déclarée « inline »" + + #. A mere warning is sure to result in improper semantics + #. at runtime. Don't bother to allow this to compile. +-#: c-decl.c:4468 cp/decl.c:5903 ++#: c-decl.c:4479 cp/decl.c:5972 + msgid "thread-local storage not supported for this target" + msgstr "cette cible ne permet pas le stockage en local au thread" + +-#: c-decl.c:4529 c-decl.c:5495 ++#: c-decl.c:4540 c-decl.c:5506 + msgid "function declaration isn't a prototype" + msgstr "la déclaration de fonction n'est pas un prototype valide" + +-#: c-decl.c:4535 ++#: c-decl.c:4546 + msgid "parameter names (without types) in function declaration" + msgstr "noms de paramètres (sans type) dans la déclaration de fonction" + +-#: c-decl.c:4563 ++#: c-decl.c:4574 + #, c-format + msgid "parameter `%s' has incomplete type" + msgstr "le paramètre « %s » a un type incomplet" + +-#: c-decl.c:4566 ++#: c-decl.c:4577 + msgid "parameter has incomplete type" + msgstr "le paramètre a un type incomplet" + +-#: c-decl.c:4615 ++#: c-decl.c:4626 + msgid "\"void\" as only parameter may not be qualified" + msgstr "\"void\" comme seul paramètre ne peut être qualifié" + +-#: c-decl.c:4636 ++#: c-decl.c:4647 + msgid "\"void\" must be the only parameter" + msgstr "\"void\" doit être le seul paramètre" + +-#: c-decl.c:4653 ++#: c-decl.c:4664 + msgid "%Jparameter \"%D\" has just a forward declaration" + msgstr "%Jparamètre « %D » n'a qu'une déclaration anticipée" + + #. The first %s will be one of 'struct', 'union', or 'enum'. +-#: c-decl.c:4681 ++#: c-decl.c:4692 + #, c-format + msgid "\"%s %s\" declared inside parameter list" + msgstr "\"%s %s\" déclarée à l'intérieur de la liste de paramètres" + + #. The %s will be one of 'struct', 'union', or 'enum'. +-#: c-decl.c:4685 ++#: c-decl.c:4696 + #, c-format + msgid "anonymous %s declared inside parameter list" + msgstr "structure anonyme %s déclarée à l'intérieur de la liste des paramètres" + +-#: c-decl.c:4689 ++#: c-decl.c:4700 + msgid "its scope is only this definition or declaration, which is probably not what you want" + msgstr "visible uniquement depuis cette définition ou déclaration, ce qui n'est probablement pas ce que vous désirez" + +-#: c-decl.c:4774 ++#: c-decl.c:4785 + #, c-format + msgid "redefinition of `union %s'" + msgstr "redéfinition de « union %s »" + +-#: c-decl.c:4776 ++#: c-decl.c:4787 + #, c-format + msgid "redefinition of `struct %s'" + msgstr "redéfinition de « struct %s »" + +-#: c-decl.c:4844 cp/decl.c:3534 ++#: c-decl.c:4855 cp/decl.c:3548 + msgid "declaration does not declare anything" + msgstr "déclaration ne déclarant rien du tout" + +-#: c-decl.c:4889 c-decl.c:4905 ++#: c-decl.c:4900 c-decl.c:4916 + msgid "%Jduplicate member '%D'" + msgstr "%Jmembre « %D » est double" + +-#: c-decl.c:4939 c-decl.c:4942 ++#: c-decl.c:4950 c-decl.c:4953 + #, c-format + msgid "%s defined inside parms" + msgstr "%s défini à l'intérieur des paramètres" + +-#: c-decl.c:4940 c-decl.c:4943 c-decl.c:4954 ++#: c-decl.c:4951 c-decl.c:4954 c-decl.c:4965 + msgid "union" + msgstr "union" + +-#: c-decl.c:4940 c-decl.c:4943 ++#: c-decl.c:4951 c-decl.c:4954 + msgid "structure" + msgstr "structure" + +-#: c-decl.c:4953 ++#: c-decl.c:4964 + #, c-format + msgid "%s has no %s" + msgstr "%s n'a pas de %s" + +-#: c-decl.c:4954 ++#: c-decl.c:4965 + msgid "struct" + msgstr "struct" + +-#: c-decl.c:4955 ++#: c-decl.c:4966 + msgid "named members" + msgstr "membres nommés" + +-#: c-decl.c:4955 ++#: c-decl.c:4966 + msgid "members" + msgstr "membres" + +-#: c-decl.c:4994 ++#: c-decl.c:5005 + #, c-format + msgid "nested redefinition of `%s'" + msgstr "redéfinition imbriquée de « %s »" + +-#: c-decl.c:5015 ++#: c-decl.c:5026 + msgid "%Jflexible array member in union" + msgstr "%Jmembre flexible de tableau dans l'union" + +-#: c-decl.c:5020 ++#: c-decl.c:5031 + msgid "%Jflexible array member not at end of struct" + msgstr "%Jle membre flexible de tableau n'est pas à la fin de la structure" + +-#: c-decl.c:5025 ++#: c-decl.c:5036 + msgid "%Jflexible array member in otherwise empty struct" + msgstr "%Jmembre flexible de tableau dans une structure vide par ailleurs" + +-#: c-decl.c:5032 ++#: c-decl.c:5043 + msgid "%Jinvalid use of structure with flexible array member" + msgstr "%Jutilisation invalide d'une structure ayant un membre flexible" + +-#: c-decl.c:5127 ++#: c-decl.c:5138 + msgid "union cannot be made transparent" + msgstr "union ne peut pas être rendu transparente" + + #. This enum is a named one that has been declared already. +-#: c-decl.c:5196 ++#: c-decl.c:5207 + #, c-format + msgid "redeclaration of `enum %s'" + msgstr "redéclaration de « enum %s »" + +-#: c-decl.c:5227 ++#: c-decl.c:5238 + msgid "enum defined inside parms" + msgstr "enum défini à l'intérieur des paramètres" + +-#: c-decl.c:5260 ++#: c-decl.c:5271 + msgid "enumeration values exceed range of largest integer" + msgstr "valeurs d'énumération excède les bornes du plus grand entier" + +-#: c-decl.c:5363 ++#: c-decl.c:5374 + #, c-format + msgid "enumerator value for `%s' not integer constant" + msgstr "valeur de l'énumérateur pour « %s » n'est pas une constante entière" + +-#: c-decl.c:5376 ++#: c-decl.c:5387 + msgid "overflow in enumeration values" + msgstr "débordement dans les valeurs de l'énumération" + +-#: c-decl.c:5381 ++#: c-decl.c:5392 + msgid "ISO C restricts enumerator values to range of `int'" + msgstr "ISO C restreint les valeurs de l'énumérateur aux bornes d'un « int »" + +-#: c-decl.c:5457 ++#: c-decl.c:5468 + msgid "return type is an incomplete type" + msgstr "le type du retour est incomplet" + +-#: c-decl.c:5465 ++#: c-decl.c:5476 + msgid "return type defaults to `int'" + msgstr "le type du retour est « int » par défaut" + +-#: c-decl.c:5501 ++#: c-decl.c:5512 + msgid "%Jno previous prototype for '%D'" + msgstr "%Jaucun prototype précédent pour « %D »" + +-#: c-decl.c:5507 ++#: c-decl.c:5518 + msgid "%J'%D' was used with no prototype before its definition" + msgstr "%J« %D » a été utilisé sans prototype avant sa définition" + +-#: c-decl.c:5514 ++#: c-decl.c:5525 + msgid "%Jno previous declaration for '%D'" + msgstr "%Jaucune déclaration précédente pour « %D »" + +-#: c-decl.c:5520 ++#: c-decl.c:5531 + msgid "%J`%D' was used with no declaration before its definition" + msgstr "%J« %D » a été utilisé sans déclaration avant sa définition" + +-#: c-decl.c:5556 c-decl.c:6062 ++#: c-decl.c:5567 c-decl.c:6073 + msgid "%Jreturn type of '%D' is not `int'" + msgstr "%Jle type de retour de « %D » n'est pas « int »" + +-#: c-decl.c:5571 ++#: c-decl.c:5582 + msgid "%Jfirst argument of '%D' should be `int'" + msgstr "%Jle premier argument de « %D » devrait être « int »" + +-#: c-decl.c:5580 ++#: c-decl.c:5591 + msgid "%Jsecond argument of '%D' should be 'char **'" + msgstr "%Jle second argument de « %D » devrait être « char ** »" + +-#: c-decl.c:5589 ++#: c-decl.c:5600 + msgid "%Jthird argument of '%D' should probably be 'char **'" + msgstr "%Jle troisième argument de « %D » devrait probablement être « char ** »" + +-#: c-decl.c:5599 ++#: c-decl.c:5610 + msgid "%J'%D' takes only zero or two arguments" + msgstr "%J« %D » prend soit aucun argument ou soit deux arguments" + +-#: c-decl.c:5602 ++#: c-decl.c:5613 + msgid "%J'%D' is normally a non-static function" + msgstr "%J« %D » n'est pas normalement une fonction statique" + +-#: c-decl.c:5658 ++#: c-decl.c:5669 + msgid "%Jold-style parameter declarations in prototyped function definition" + msgstr "%Jdéclaration de paramètre d'ancien style dans la définition prototypée de fonction" + +-#: c-decl.c:5672 ++#: c-decl.c:5683 + msgid "%Jparameter name omitted" + msgstr "%Jnom de paramètre omis" + +-#: c-decl.c:5747 ++#: c-decl.c:5758 + msgid "%Jparameter name missing from parameter list" + msgstr "%Jnom du paramètre manquant dans la liste des paramètres" + +-#: c-decl.c:5757 ++#: c-decl.c:5768 + msgid "%J\"%D\" declared as a non-parameter" + msgstr "%J\"%D\" déclaré comme un non paramètre" + +-#: c-decl.c:5762 ++#: c-decl.c:5773 + msgid "%Jmultiple parameters named \"%D\"" + msgstr "%Jplusieurs paramètres nommés « %D »" + +-#: c-decl.c:5770 ++#: c-decl.c:5781 + msgid "%Jparameter \"%D\" declared void" + msgstr "%Jparamètre \"%D\" déclaré «void »" + +-#: c-decl.c:5785 c-decl.c:5787 ++#: c-decl.c:5796 c-decl.c:5798 + msgid "%Jtype of \"%D\" defaults to \"int\"" + msgstr "%Jtype de « %D » est « int » par défaut" + +-#: c-decl.c:5801 ++#: c-decl.c:5812 + msgid "%Jparameter \"%D\" has incomplete type" + msgstr "%Jparamètre \"%D\" a un type incomplet" + +-#: c-decl.c:5807 ++#: c-decl.c:5818 + msgid "%Jdeclaration for parameter \"%D\" but no such parameter" + msgstr "%Jdéclaration du paramètre « %D » mais pas de tel paramètre" + +-#: c-decl.c:5859 ++#: c-decl.c:5870 + msgid "number of arguments doesn't match prototype" + msgstr "le nombre d'arguments ne concorde pas avec celui du prototype" + +-#: c-decl.c:5860 c-decl.c:5891 c-decl.c:5898 ++#: c-decl.c:5871 c-decl.c:5902 c-decl.c:5909 + msgid "%Hprototype declaration" + msgstr "%Hdéclaration de prototype" + +-#: c-decl.c:5889 ++#: c-decl.c:5900 + msgid "promoted argument \"%D\" doesn't match prototype" + msgstr "argument promu \"%D\" ne concorde pas avec le prototype" + +-#: c-decl.c:5897 ++#: c-decl.c:5908 + msgid "argument \"%D\" doesn't match prototype" + msgstr "argument \"%D\" ne concorde pas avec le prototype" + +-#: c-decl.c:6094 cp/decl.c:10857 ++#: c-decl.c:6105 cp/decl.c:10954 + msgid "no return statement in function returning non-void" + msgstr "« return » manquant dans une fonction devant retourner une valeur" + +-#: c-decl.c:6101 ++#: c-decl.c:6112 + msgid "this function may return with or without a value" + msgstr "cette fonction devrait finir en retournant ou non une valeur" + + #. If we get here, declarations have been used in a for loop without + #. the C99 for loop scope. This doesn't make much sense, so don't + #. allow it. +-#: c-decl.c:6200 ++#: c-decl.c:6211 + msgid "'for' loop initial declaration used outside C99 mode" + msgstr "déclaration initiale de la boucle « for » utilisée en dehors du mode C99" + +-#: c-decl.c:6224 ++#: c-decl.c:6235 + #, c-format + msgid "'struct %s' declared in 'for' loop initial declaration" + msgstr "« struct %s » déclarée dans la déclaration initiale de la boucle « for »" + +-#: c-decl.c:6227 ++#: c-decl.c:6238 + #, c-format + msgid "'union %s' declared in 'for' loop initial declaration" + msgstr "« union %s » déclarée dans la déclaration initiale de la boucle « for »" + +-#: c-decl.c:6230 ++#: c-decl.c:6241 + #, c-format + msgid "'enum %s' declared in 'for' loop initial declaration" + msgstr "« enum %s » déclarée dans la déclaration initiale de la boucle « for »" + +-#: c-decl.c:6238 ++#: c-decl.c:6249 + msgid "%Jdeclaration of non-variable '%D' in 'for' loop initial declaration" + msgstr "%Jdéclaration de « %D » (qui n'est pas une variable) dans la déclaration initiale de « for »" + +-#: c-decl.c:6241 ++#: c-decl.c:6252 + msgid "%Jdeclaration of static variable '%D' in 'for' loop initial declaration" + msgstr "%Jdéclaration de la variable statique « %D » dans la déclaration initiale de la boucle « for »" + +-#: c-decl.c:6244 ++#: c-decl.c:6255 + msgid "%Jdeclaration of 'extern' variable '%D' in 'for' loop initial declaration" + msgstr "%Jdéclaration de la variable externe « %D » dans la déclaration initiale « for »" + +-#: c-decl.c:6557 ++#: c-decl.c:6568 + msgid "%Jredefinition of global '%D'" + msgstr "%Jredéfinition globale de « %D »" + +-#: c-decl.c:6558 ++#: c-decl.c:6569 + msgid "%J'%D' previously defined here" + msgstr "%J« %D » précédemment défini ici" + +@@ -2264,89 +2269,89 @@ + msgid "missing makefile target after \"%s\"" + msgstr "cible manquante dans le makefile après \"%s\"" + +-#: c-opts.c:291 ++#: c-opts.c:299 + msgid "-I- specified twice" + msgstr "-I- spécifié deux fois" + +-#: c-opts.c:692 ++#: c-opts.c:700 + #, c-format + msgid "switch \"%s\" is no longer supported" + msgstr "l'option « %s » n'est plus supportée" + +-#: c-opts.c:812 ++#: c-opts.c:820 + msgid "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)" + msgstr "-fhandle-exceptions a été renommé -fexceptions (et est maintenant utilisé par défaut)" + +-#: c-opts.c:978 ++#: c-opts.c:986 + msgid "output filename specified twice" + msgstr "nom du fichier de sortie spécifié deux fois" + +-#: c-opts.c:1107 ++#: c-opts.c:1115 + msgid "-Wformat-y2k ignored without -Wformat" + msgstr "-Wformat-y2k ignorée sans -Wformat" + +-#: c-opts.c:1109 ++#: c-opts.c:1117 + msgid "-Wformat-extra-args ignored without -Wformat" + msgstr "-Wformat-extra-args ignorée sans -Wformat" + +-#: c-opts.c:1111 ++#: c-opts.c:1119 + msgid "-Wformat-zero-length ignored without -Wformat" + msgstr "-Wformat-zero-length ignorée sans -Wformat" + +-#: c-opts.c:1113 ++#: c-opts.c:1121 + msgid "-Wformat-nonliteral ignored without -Wformat" + msgstr "-Wformat-nonliteral ignorée sans -Wformat" + +-#: c-opts.c:1115 ++#: c-opts.c:1123 + msgid "-Wformat-security ignored without -Wformat" + msgstr "-Wformat-security ignorée sans -Wformat" + +-#: c-opts.c:1117 ++#: c-opts.c:1125 + msgid "-Wmissing-format-attribute ignored without -Wformat" + msgstr "-Wmissing-format-attribute ignorée sans -Wformat" + +-#: c-opts.c:1131 ++#: c-opts.c:1139 + #, c-format + msgid "opening output file %s: %m" + msgstr "ouverture du fichier de sortie %s: %m" + +-#: c-opts.c:1136 ++#: c-opts.c:1144 + #, c-format + msgid "too many filenames given. Type %s --help for usage" + msgstr "trop de noms de fichiers. Taper %s --help pour en connaître l'usage" + +-#: c-opts.c:1215 ++#: c-opts.c:1223 + msgid "YYDEBUG not defined" + msgstr "YYDEBUG n'est pas défini" + +-#: c-opts.c:1261 ++#: c-opts.c:1269 + #, c-format + msgid "opening dependency file %s: %m" + msgstr "ouverture du fichier de dépendances %s: %m" + +-#: c-opts.c:1271 ++#: c-opts.c:1279 + #, c-format + msgid "closing dependency file %s: %m" + msgstr "fermeture du fichier de dépendances %s: %m" + +-#: c-opts.c:1274 ++#: c-opts.c:1282 + #, c-format + msgid "when writing output to %s: %m" + msgstr "lors de l'écriture de la sortie dans %s: %m" + +-#: c-opts.c:1344 ++#: c-opts.c:1352 + msgid "to generate dependencies you must specify either -M or -MM" + msgstr "pour générer les dépendances, vous devez spécifier -M ou -MM" + +-#: c-opts.c:1404 ++#: c-opts.c:1412 + msgid "" + msgstr "" + +-#: c-opts.c:1419 ++#: c-opts.c:1427 + msgid "" + msgstr "" + +-#: c-opts.c:1503 ++#: c-opts.c:1511 + msgid "too late for # directive to set debug directory" + msgstr "il est trop tard pour la directive # pour fixer un répertoire de mise au point" + +@@ -2364,7 +2369,7 @@ + msgid "ISO C forbids an empty source file" + msgstr "ISO C interdit un fichier source vide" + +-#: c-parse.y:349 c-typeck.c:6248 objc/objc-parse.y:374 ++#: c-parse.y:349 c-typeck.c:6228 objc/objc-parse.y:374 + msgid "argument of `asm' is not a constant string" + msgstr "l'argument de « asm » n'est pas une chaîne de constante" + +@@ -2380,7 +2385,7 @@ + msgid "ISO C does not allow extra `;' outside of a function" + msgstr "ISO C ne permet pas de « ; » additionnel en dehors d'une fonction" + +-#: c-parse.y:429 cppexp.c:1253 ++#: c-parse.y:429 cppexp.c:1257 + msgid "traditional C rejects the unary plus operator" + msgstr "le C traditionnel rejette le plus unaire" + +@@ -2458,7 +2463,7 @@ + msgid "ISO C forbids forward references to `enum' types" + msgstr "ISO C interdit les références anticipée vers un type « enum »" + +-#: c-parse.y:1703 cp/parser.c:9339 objc/objc-parse.y:1755 ++#: c-parse.y:1703 cp/parser.c:9383 objc/objc-parse.y:1755 + msgid "comma at end of enumerator list" + msgstr "virgule à la fin de liste d'énumerateurs" + +@@ -2466,7 +2471,7 @@ + msgid "no semicolon at end of struct or union" + msgstr "pas de point virgule à la fin de la structure ou de l'union" + +-#: c-parse.y:1732 objc/objc-parse.y:1784 objc/objc-parse.y:2847 ++#: c-parse.y:1732 objc/objc-parse.y:1784 objc/objc-parse.y:2846 + msgid "extra semicolon in struct or union specified" + msgstr "point virgule superflu dans la structure ou dans l'union" + +@@ -2494,23 +2499,23 @@ + msgid "braced-group within expression allowed only inside a function" + msgstr "groupe entre accolades à l'intérieur d'expression permis seulement à l'intérieur d'une fonction" + +-#: c-parse.y:2185 objc/objc-parse.y:2242 ++#: c-parse.y:2185 objc/objc-parse.y:2241 + msgid "empty body in an else-statement" + msgstr "le corps du else est vide" + +-#: c-parse.y:2193 objc/objc-parse.y:2250 ++#: c-parse.y:2193 objc/objc-parse.y:2249 + msgid "%Hempty body in an if-statement" + msgstr "%Hle corps de la déclaration du if est vide" + +-#: c-parse.y:2273 cp/parser.c:6050 objc/objc-parse.y:2330 ++#: c-parse.y:2273 cp/parser.c:6088 objc/objc-parse.y:2329 + msgid "break statement not within loop or switch" + msgstr "mot-clé « break » à l'extérieur de toute boucle ou « switch »" + +-#: c-parse.y:2282 cp/parser.c:6061 objc/objc-parse.y:2339 ++#: c-parse.y:2282 cp/parser.c:6099 objc/objc-parse.y:2338 + msgid "continue statement not within a loop" + msgstr "mot-clé « continue » à l'extérieur de toute boucle" + +-#: c-parse.y:2324 objc/objc-parse.y:2381 ++#: c-parse.y:2324 objc/objc-parse.y:2380 + msgid "ISO C forbids `goto *expr;'" + msgstr "ISO C interdit « goto *expr; »" + +@@ -2520,11 +2525,11 @@ + #. it caused problems with the code in expand_builtin which + #. tries to verify that BUILT_IN_NEXT_ARG is being used + #. correctly. +-#: c-parse.y:2441 objc/objc-parse.y:2549 ++#: c-parse.y:2441 objc/objc-parse.y:2548 + msgid "ISO C requires a named argument before `...'" + msgstr "ISO C requiert un argument nommé devant « ... »" + +-#: c-parse.y:2539 objc/objc-parse.y:2647 ++#: c-parse.y:2539 objc/objc-parse.y:2646 + msgid "`...' in old-style identifier list" + msgstr "« ... » dans une liste d'identificateurs de style ancien" + +@@ -2540,7 +2545,7 @@ + msgid "parser stack overflow" + msgstr "débordement de la pile de l'analyseur syntaxique" + +-#: c-parse.y:2969 objc/objc-parse.y:3664 ++#: c-parse.y:2969 objc/objc-parse.y:3663 + #, c-format + msgid "syntax error at '%s' token" + msgstr "erreur de syntaxe à l'élément lexical « %s »" +@@ -2622,7 +2627,7 @@ + msgid "%s: had text segment at different address" + msgstr "%s: a un segment texte à une adresse différente" + +-#: c-pch.c:357 cpperror.c:176 gcc.c:6554 ++#: c-pch.c:357 cpperror.c:176 gcc.c:6557 + #, c-format + msgid "%s: %s" + msgstr "%s : %s" +@@ -2732,13 +2737,13 @@ + msgid "(enclose actions of previous case statements requiring destructors in their own scope.)" + msgstr "(les actions dans les « case » précédents requierent des destructeurs dans leur propre champ.)" + +-#: c-semantics.c:737 c-typeck.c:6270 cp/semantics.c:1070 ++#: c-semantics.c:737 c-typeck.c:6250 cp/semantics.c:1070 + #, c-format + msgid "%s qualifier ignored on asm" + msgstr "%s qualificateur ignoré avec asm" + + # FIXME: c'est de l'assembleur ? +-#: c-semantics.c:991 ++#: c-semantics.c:993 + msgid "will never be executed" + msgstr "ne sera jamais exécuté" + +@@ -2747,7 +2752,7 @@ + msgid "`%s' has an incomplete type" + msgstr "« %s » a un type incomplet" + +-#: c-typeck.c:145 cp/call.c:2532 ++#: c-typeck.c:145 cp/call.c:2542 + msgid "invalid use of void expression" + msgstr "utilisation invalide d'expression void" + +@@ -2782,750 +2787,750 @@ + msgid "function return types not compatible due to `volatile'" + msgstr "les types retournés d'une fonction ne sont pas compatibles en raison de « volatile »" + +-#: c-typeck.c:984 c-typeck.c:2176 ++#: c-typeck.c:984 c-typeck.c:2156 + msgid "arithmetic on pointer to an incomplete type" + msgstr "arithmétique sur un pointeur vers un type incomplet" + +-#: c-typeck.c:1357 ++#: c-typeck.c:1337 + #, c-format + msgid "%s has no member named `%s'" + msgstr "%s n'a pas de membre nommé « %s »" + +-#: c-typeck.c:1393 ++#: c-typeck.c:1373 + #, c-format + msgid "request for member `%s' in something not a structure or union" + msgstr "requête du membre « %s » dans quelque chose n'étant ni une structure ni une union" + +-#: c-typeck.c:1422 ++#: c-typeck.c:1402 + msgid "dereferencing pointer to incomplete type" + msgstr "déréférencement d'un pointeur de type incomplet" + +-#: c-typeck.c:1426 ++#: c-typeck.c:1406 + msgid "dereferencing `void *' pointer" + msgstr "déréférencement d'un pointeur « void * »" + +-#: c-typeck.c:1443 cp/typeck.c:2127 ++#: c-typeck.c:1423 cp/typeck.c:2127 + #, c-format + msgid "invalid type argument of `%s'" + msgstr "type d'argument invalide pour « %s »" + +-#: c-typeck.c:1461 cp/typeck.c:2152 ++#: c-typeck.c:1441 cp/typeck.c:2152 + msgid "subscript missing in array reference" + msgstr "indice manquant dans la référence du tableau" + +-#: c-typeck.c:1482 cp/typeck.c:2194 ++#: c-typeck.c:1462 cp/typeck.c:2194 + msgid "array subscript has type `char'" + msgstr "l'indice du tableau est de type « char »" + +-#: c-typeck.c:1490 c-typeck.c:1579 cp/typeck.c:2198 cp/typeck.c:2284 ++#: c-typeck.c:1470 c-typeck.c:1559 cp/typeck.c:2198 cp/typeck.c:2284 + msgid "array subscript is not an integer" + msgstr "l'indice du tableau n'est pas un entier" + +-#: c-typeck.c:1523 ++#: c-typeck.c:1503 + msgid "ISO C forbids subscripting `register' array" + msgstr "ISO C interdit de sous-indicer des tableaux « register »" + +-#: c-typeck.c:1525 ++#: c-typeck.c:1505 + msgid "ISO C90 forbids subscripting non-lvalue array" + msgstr "ISO C90 interdit d'indicer de tableau n'étant pas membre gauche" + +-#: c-typeck.c:1558 ++#: c-typeck.c:1538 + msgid "subscript has type `char'" + msgstr "indice de type « char »" + +-#: c-typeck.c:1574 cp/typeck.c:2279 ++#: c-typeck.c:1554 cp/typeck.c:2279 + msgid "subscripted value is neither array nor pointer" + msgstr "la valeur indicée n'est ni un tableau ni un pointeur" + +-#: c-typeck.c:1604 ++#: c-typeck.c:1584 + #, c-format + msgid "local declaration of `%s' hides instance variable" + msgstr "la déclaration locale de « %s » masque l'instance d'une variable" + +-#: c-typeck.c:1697 ++#: c-typeck.c:1677 + msgid "called object is not a function" + msgstr "l'objet appelé n'est pas une fonction" + + #. This situation leads to run-time undefined behavior. We can't, + #. therefore, simply error unless we can prove that all possible + #. executions of the program must execute the code. +-#: c-typeck.c:1729 ++#: c-typeck.c:1709 + msgid "function called through a non-compatible type" + msgstr "fonction appellée à travers un type non compatible" + +-#: c-typeck.c:1787 c-typeck.c:4198 c-typeck.c:4200 c-typeck.c:4216 +-#: c-typeck.c:4237 c-typeck.c:5616 ++#: c-typeck.c:1767 c-typeck.c:4178 c-typeck.c:4180 c-typeck.c:4196 ++#: c-typeck.c:4217 c-typeck.c:5596 + msgid "initializer element is not constant" + msgstr "un élément de l'initialisation n'est pas une constante" + +-#: c-typeck.c:1838 cp/typeck.c:2567 ++#: c-typeck.c:1818 cp/typeck.c:2567 + msgid "too many arguments to function" + msgstr "trop d'arguments pour la fonction" + +-#: c-typeck.c:1859 ++#: c-typeck.c:1839 + #, c-format + msgid "type of formal parameter %d is incomplete" + msgstr "le type du paramètre formel %d est incomplet" + +-#: c-typeck.c:1872 ++#: c-typeck.c:1852 + #, c-format + msgid "%s as integer rather than floating due to prototype" + msgstr "%s est entier plutôt que flottant en raison du prototype" + +-#: c-typeck.c:1875 ++#: c-typeck.c:1855 + #, c-format + msgid "%s as integer rather than complex due to prototype" + msgstr "%s est entier plutôt que complexe en raison du prototype" + +-#: c-typeck.c:1878 ++#: c-typeck.c:1858 + #, c-format + msgid "%s as complex rather than floating due to prototype" + msgstr "%s est complexe plutôt que flottant en raison du prototype" + +-#: c-typeck.c:1881 ++#: c-typeck.c:1861 + #, c-format + msgid "%s as floating rather than integer due to prototype" + msgstr "%s est flottant plutôt qu'entier en raison du prototype" + +-#: c-typeck.c:1884 ++#: c-typeck.c:1864 + #, c-format + msgid "%s as complex rather than integer due to prototype" + msgstr "%s est complexe plutôt qu'entier en raison du prototype" + +-#: c-typeck.c:1887 ++#: c-typeck.c:1867 + #, c-format + msgid "%s as floating rather than complex due to prototype" + msgstr "%s est flottant plutôt que complexe en raison du prototype" + +-#: c-typeck.c:1897 ++#: c-typeck.c:1877 + #, c-format + msgid "%s as `float' rather than `double' due to prototype" + msgstr "%s est « float » plutôt qu'un « double » en raison du prototype" + +-#: c-typeck.c:1915 ++#: c-typeck.c:1895 + #, c-format + msgid "%s with different width due to prototype" + msgstr "%s a une largeur différente en raison du prototype" + +-#: c-typeck.c:1941 ++#: c-typeck.c:1921 + #, c-format + msgid "%s as unsigned due to prototype" + msgstr "%s est non signé en raison du prototype" + +-#: c-typeck.c:1943 ++#: c-typeck.c:1923 + #, c-format + msgid "%s as signed due to prototype" + msgstr "%s est signé en raison du prototype" + +-#: c-typeck.c:1977 cp/typeck.c:2673 ++#: c-typeck.c:1957 cp/typeck.c:2673 + msgid "too few arguments to function" + msgstr "trop peu d'arguments pour la fonction" + +-#: c-typeck.c:2017 ++#: c-typeck.c:1997 + msgid "suggest parentheses around + or - inside shift" + msgstr "parenthèses suggérées autour de + ou - à l'intérieur du décalage" + +-#: c-typeck.c:2024 ++#: c-typeck.c:2004 + msgid "suggest parentheses around && within ||" + msgstr "parenthèses suggérées autour de && à l'intérieur de ||" + +-#: c-typeck.c:2033 ++#: c-typeck.c:2013 + msgid "suggest parentheses around arithmetic in operand of |" + msgstr "parenthèses suggérées autour de l'arithmétique dans l'opérande de |" + +-#: c-typeck.c:2036 ++#: c-typeck.c:2016 + msgid "suggest parentheses around comparison in operand of |" + msgstr "parenthèses suggérées autour de la comparaison dans l'opérande de |" + +-#: c-typeck.c:2045 ++#: c-typeck.c:2025 + msgid "suggest parentheses around arithmetic in operand of ^" + msgstr "parenthèses suggérées autour de l'arithmétique dans l'opérande de ^" + +-#: c-typeck.c:2048 ++#: c-typeck.c:2028 + msgid "suggest parentheses around comparison in operand of ^" + msgstr "parenthèses suggérées autour de la comparaison dans l'opérande de ^" + +-#: c-typeck.c:2055 ++#: c-typeck.c:2035 + msgid "suggest parentheses around + or - in operand of &" + msgstr "parenthèses suggérées autour de + ou - dans l'opérande de &" + +-#: c-typeck.c:2058 ++#: c-typeck.c:2038 + msgid "suggest parentheses around comparison in operand of &" + msgstr "parenthèses suggérées autour de la comparaison dans l'opérande de &" + +-#: c-typeck.c:2065 ++#: c-typeck.c:2045 + msgid "comparisons like X<=Y<=Z do not have their mathematical meaning" + msgstr "les comparaisons telles que X<=Y<=Z n'ont pas de signification mathématique" + +-#: c-typeck.c:2128 ++#: c-typeck.c:2108 + msgid "pointer of type `void *' used in subtraction" + msgstr "pointeur de type « void * » utilisé dans une soustraction" + +-#: c-typeck.c:2130 ++#: c-typeck.c:2110 + msgid "pointer to a function used in subtraction" + msgstr "pointeur vers un fonction utilisé dans une soustraction" + +-#: c-typeck.c:2224 ++#: c-typeck.c:2204 + msgid "wrong type argument to unary plus" + msgstr "type d'argument erroné pour le plus unaire" + +-#: c-typeck.c:2237 ++#: c-typeck.c:2217 + msgid "wrong type argument to unary minus" + msgstr "type d'argument erroné pour le moins unaire" + +-#: c-typeck.c:2254 ++#: c-typeck.c:2234 + msgid "ISO C does not support `~' for complex conjugation" + msgstr "ISO C ne permet pas d'utiliser « ~ » pour le complexe conjugué" + +-#: c-typeck.c:2260 ++#: c-typeck.c:2240 + msgid "wrong type argument to bit-complement" + msgstr "type d'argument erroné pour un complément de bit" + +-#: c-typeck.c:2268 ++#: c-typeck.c:2248 + msgid "wrong type argument to abs" + msgstr "type d'argument erroné pour abs" + +-#: c-typeck.c:2280 ++#: c-typeck.c:2260 + msgid "wrong type argument to conjugation" + msgstr "type d'argument erroné pour la conjugaison" + +-#: c-typeck.c:2294 ++#: c-typeck.c:2274 + msgid "wrong type argument to unary exclamation mark" + msgstr "type d'argument erroné pour le point d'exclamation unaire" + +-#: c-typeck.c:2337 ++#: c-typeck.c:2317 + msgid "ISO C does not support `++' and `--' on complex types" + msgstr "ISO C ne permet pas « ++ » ni « -- » sur les types complexes" + +-#: c-typeck.c:2352 c-typeck.c:2384 ++#: c-typeck.c:2332 c-typeck.c:2364 + msgid "wrong type argument to increment" + msgstr "type d'argument erroné pour un incrément" + +-#: c-typeck.c:2354 c-typeck.c:2386 ++#: c-typeck.c:2334 c-typeck.c:2366 + msgid "wrong type argument to decrement" + msgstr "type d'argument erroné pour un décrément" + +-#: c-typeck.c:2375 ++#: c-typeck.c:2355 + msgid "increment of pointer to unknown structure" + msgstr "incrément d'un pointeur vers une structure inconnue" + +-#: c-typeck.c:2377 ++#: c-typeck.c:2357 + msgid "decrement of pointer to unknown structure" + msgstr "décrément d'un pointeur vers une structure inconnue" + +-#: c-typeck.c:2502 ++#: c-typeck.c:2482 + msgid "invalid lvalue in unary `&'" + msgstr "membre gauche invalide pour le « & » unaire" + +-#: c-typeck.c:2534 ++#: c-typeck.c:2514 + #, c-format + msgid "attempt to take address of bit-field structure member `%s'" + msgstr "tentative pour prendre l'adresse du membre « %s » d'une structure de champ de bits" + +-#: c-typeck.c:2668 ++#: c-typeck.c:2648 + msgid "use of conditional expressions as lvalues is deprecated" + msgstr "utilisation d'expressions conditionnelles comme lvalues est obsolète" + +-#: c-typeck.c:2671 ++#: c-typeck.c:2651 + msgid "use of compound expressions as lvalues is deprecated" + msgstr "utilisation d'expressions composées comme lvalues est obsolète" + +-#: c-typeck.c:2674 ++#: c-typeck.c:2654 + msgid "use of cast expressions as lvalues is deprecated" + msgstr "utilisation de transtypage d'expressions comme lvalues est obsolète" + +-#: c-typeck.c:2689 ++#: c-typeck.c:2669 + #, c-format + msgid "%s of read-only member `%s'" + msgstr "%s d'un membre en lecture seule « %s »" + +-#: c-typeck.c:2693 ++#: c-typeck.c:2673 + #, c-format + msgid "%s of read-only variable `%s'" + msgstr "%s d'une variable en lecture seule « %s »" + +-#: c-typeck.c:2696 ++#: c-typeck.c:2676 + #, c-format + msgid "%s of read-only location" + msgstr "%s d'une position en lecture seule" + +-#: c-typeck.c:2714 ++#: c-typeck.c:2694 + #, c-format + msgid "cannot take address of bit-field `%s'" + msgstr "ne peut prendre l'adresse du champ de bits « %s »" + +-#: c-typeck.c:2742 treelang/treetree.c:946 ++#: c-typeck.c:2722 treelang/treetree.c:946 + #, c-format + msgid "global register variable `%s' used in nested function" + msgstr "variable globale de registre « %s » utilisée dans une fonction imbriquée" + +-#: c-typeck.c:2746 treelang/treetree.c:950 ++#: c-typeck.c:2726 treelang/treetree.c:950 + #, c-format + msgid "register variable `%s' used in nested function" + msgstr "variable de registre « %s » utilisée dans une fonction imbriquée" + +-#: c-typeck.c:2753 treelang/treetree.c:957 ++#: c-typeck.c:2733 treelang/treetree.c:957 + #, c-format + msgid "address of global register variable `%s' requested" + msgstr "adresse d'une variable registre globale « %s » requise" + +-#: c-typeck.c:2765 ++#: c-typeck.c:2745 + msgid "cannot put object with volatile field into register" + msgstr "impossible de mettre un objet avec un champ volatile dans un registre" + +-#: c-typeck.c:2769 treelang/treetree.c:962 ++#: c-typeck.c:2749 treelang/treetree.c:962 + #, c-format + msgid "address of register variable `%s' requested" + msgstr "adresse d'une variable registre « %s » requise" + +-#: c-typeck.c:2854 ++#: c-typeck.c:2834 + msgid "signed and unsigned type in conditional expression" + msgstr "type signé et non signé dans une expression conditionnelle" + +-#: c-typeck.c:2861 ++#: c-typeck.c:2841 + msgid "ISO C forbids conditional expr with only one void side" + msgstr "ISO C interdit une expression conditionnelle dont un seul côté est « void »" + +-#: c-typeck.c:2877 c-typeck.c:2884 ++#: c-typeck.c:2857 c-typeck.c:2864 + msgid "ISO C forbids conditional expr between `void *' and function pointer" + msgstr "ISO C interdit une expression conditionnelle entre « void * » et un pointeur de fonction" + +-#: c-typeck.c:2890 ++#: c-typeck.c:2870 + msgid "pointer type mismatch in conditional expression" + msgstr "non concordance de type de pointeurs dans un expression conditionnelle" + +-#: c-typeck.c:2897 c-typeck.c:2907 ++#: c-typeck.c:2877 c-typeck.c:2887 + msgid "pointer/integer type mismatch in conditional expression" + msgstr "non concordance entre pointeur et entier dans une expression conditionnelle" + +-#: c-typeck.c:2921 ++#: c-typeck.c:2901 + msgid "type mismatch in conditional expression" + msgstr "non concordance de type dans une expression conditionnelle" + +-#: c-typeck.c:2981 ++#: c-typeck.c:2961 + msgid "left-hand operand of comma expression has no effect" + msgstr "l'opérande à gauche de la virgule n'a pas d'effet" + +-#: c-typeck.c:3012 ++#: c-typeck.c:2992 + msgid "cast specifies array type" + msgstr "le transtypage spécifie un type de tableau" + +-#: c-typeck.c:3018 ++#: c-typeck.c:2998 + msgid "cast specifies function type" + msgstr "le transtypage spécifie un type de fonction" + +-#: c-typeck.c:3028 ++#: c-typeck.c:3008 + msgid "ISO C forbids casting nonscalar to the same type" + msgstr "ISO C interdit le transtypage d'un type non scalaire vers lui-même" + +-#: c-typeck.c:3046 ++#: c-typeck.c:3026 + msgid "ISO C forbids casts to union type" + msgstr "ISO C interdit le transtypage vers un type union" + +-#: c-typeck.c:3054 ++#: c-typeck.c:3034 + msgid "cast to union type from type not present in union" + msgstr "transtypage vers un type union depuis un type absent de l'union" + +-#: c-typeck.c:3105 ++#: c-typeck.c:3085 + msgid "cast adds new qualifiers to function type" + msgstr "le transtypage ajoute un nouveau qualificateur au type de la fonction" + + #. There are qualifiers present in IN_OTYPE that are not + #. present in IN_TYPE. +-#: c-typeck.c:3110 ++#: c-typeck.c:3090 + msgid "cast discards qualifiers from pointer target type" + msgstr "le transtypage annule des qualificateurs du type pointeur ciblé" + +-#: c-typeck.c:3125 ++#: c-typeck.c:3105 + msgid "cast increases required alignment of target type" + msgstr "le transtypage augmente l'alignement requis pour le type ciblé" + +-#: c-typeck.c:3131 cp/typeck.c:4945 ++#: c-typeck.c:3111 cp/typeck.c:4963 + msgid "cast from pointer to integer of different size" + msgstr "transtypage d'un pointeur vers un entier de taille différente" + +-#: c-typeck.c:3136 ++#: c-typeck.c:3116 + msgid "cast does not match function type" + msgstr "le transtypage ne concorde pas avec le type de la fonction" + +-#: c-typeck.c:3143 cp/typeck.c:4952 ++#: c-typeck.c:3123 cp/typeck.c:4970 + msgid "cast to pointer from integer of different size" + msgstr "transtypage vers un pointeur depuis un entier de taille différente" + + # FIXME +-#: c-typeck.c:3155 ++#: c-typeck.c:3135 + msgid "type-punning to incomplete type might break strict-aliasing rules" + msgstr "type-punning vers un type incomplet peut briser les règles stricte d'aliases" + + # FIXME +-#: c-typeck.c:3159 ++#: c-typeck.c:3139 + msgid "dereferencing type-punned pointer will break strict-aliasing rules" + msgstr "déréférencement du pointeur type-punned brisera les strictes d'aliases" + +-#: c-typeck.c:3170 ++#: c-typeck.c:3150 + msgid "ISO C forbids conversion of function pointer to object pointer type" + msgstr "ISO C interdit la conversion d'un pointeur de fonction en un type pointeur d'objet" + +-#: c-typeck.c:3179 ++#: c-typeck.c:3159 + msgid "ISO C forbids conversion of object pointer to function pointer type" + msgstr "ISO C interdit la conversion d'un pointeur d'objet vers un type de pointeur à une fonction" + + #. Now we have handled acceptable kinds of LHS that are not truly lvalues. + #. Reject anything strange now. +-#: c-typeck.c:3337 ++#: c-typeck.c:3317 + msgid "invalid lvalue in assignment" + msgstr "membre gauche de l'affectation invalide" + + #. Convert new value to destination type. +-#: c-typeck.c:3346 c-typeck.c:3371 c-typeck.c:3388 cp/typeck.c:5064 +-#: cp/typeck.c:5211 cp/typeck.c:5226 ++#: c-typeck.c:3326 c-typeck.c:3351 c-typeck.c:3368 cp/typeck.c:5082 ++#: cp/typeck.c:5229 cp/typeck.c:5244 + msgid "assignment" + msgstr "affectation" + +-#: c-typeck.c:3455 ++#: c-typeck.c:3435 + msgid "cannot pass rvalue to reference parameter" + msgstr "impossible de passer un membre droit en paramètre par référence" + +-#: c-typeck.c:3564 c-typeck.c:3640 ++#: c-typeck.c:3544 c-typeck.c:3620 + #, c-format + msgid "%s makes qualified function pointer from unqualified" + msgstr "%s qualifie un pointeur de fonction non qualifié" + +-#: c-typeck.c:3568 c-typeck.c:3620 ++#: c-typeck.c:3548 c-typeck.c:3600 + #, c-format + msgid "%s discards qualifiers from pointer target type" + msgstr "%s annule des qualificateurs du type du pointeur cible" + +-#: c-typeck.c:3574 ++#: c-typeck.c:3554 + msgid "ISO C prohibits argument conversion to union type" + msgstr "ISO C interdit la conversion d'argument en type union" + +-#: c-typeck.c:3612 ++#: c-typeck.c:3592 + #, c-format + msgid "ISO C forbids %s between function pointer and `void *'" + msgstr "ISO C interdit %s entre pointeur de fonction et « void * »" + +-#: c-typeck.c:3629 ++#: c-typeck.c:3609 + #, c-format + msgid "pointer targets in %s differ in signedness" + msgstr "les cibles des pointeurs dans %s n'ont pas toutes de signe" + +-#: c-typeck.c:3645 ++#: c-typeck.c:3625 + #, c-format + msgid "%s from incompatible pointer type" + msgstr "%s d'un type pointeur incompatible" + +-#: c-typeck.c:3651 c-typeck.c:4158 cp/typeck.c:1389 ++#: c-typeck.c:3631 c-typeck.c:4138 cp/typeck.c:1389 + msgid "invalid use of non-lvalue array" + msgstr "utilisation invalide d'un tableau n'étant pas membre gauche" + +-#: c-typeck.c:3665 ++#: c-typeck.c:3645 + #, c-format + msgid "%s makes pointer from integer without a cast" + msgstr "%s transforme un entier en pointeur sans transtypage" + +-#: c-typeck.c:3672 ++#: c-typeck.c:3652 + #, c-format + msgid "%s makes integer from pointer without a cast" + msgstr "%s transforme un pointeur en entier sans transtypage" + +-#: c-typeck.c:3686 c-typeck.c:3689 ++#: c-typeck.c:3666 c-typeck.c:3669 + #, c-format + msgid "incompatible type for argument %d of `%s'" + msgstr "type incompatible pour l'argument n°%d de « %s »" + +-#: c-typeck.c:3693 ++#: c-typeck.c:3673 + #, c-format + msgid "incompatible type for argument %d of indirect function call" + msgstr "type incompatible pour l'argument n°%d de l'appel indirect de fonction" + +-#: c-typeck.c:3697 ++#: c-typeck.c:3677 + #, c-format + msgid "incompatible types in %s" + msgstr "type incompatibles dans %s" + + #. Function name is known; supply it. +-#: c-typeck.c:3753 ++#: c-typeck.c:3733 + #, c-format + msgid "passing arg of `%s'" + msgstr "passage des arguments de « %s »" + + #. Function name unknown (call through ptr). +-#: c-typeck.c:3762 ++#: c-typeck.c:3742 + msgid "passing arg of pointer to function" + msgstr "passage des arguments au pointeur de fonction" + + #. Function name is known; supply it. +-#: c-typeck.c:3770 ++#: c-typeck.c:3750 + #, c-format + msgid "passing arg %d of `%s'" + msgstr "passage de l'argument n°%d de « %s »" + + #. Function name unknown (call through ptr); just give arg number. +-#: c-typeck.c:3779 ++#: c-typeck.c:3759 + #, c-format + msgid "passing arg %d of pointer to function" + msgstr "passage de l'argument n°%d au pointeur de fonction" + +-#: c-typeck.c:3836 ++#: c-typeck.c:3816 + msgid "traditional C rejects automatic aggregate initialization" + msgstr "le C traditionel rejette l'initialisation automatique d'aggrégats" + +-#: c-typeck.c:4007 c-typeck.c:4022 c-typeck.c:4037 ++#: c-typeck.c:3987 c-typeck.c:4002 c-typeck.c:4017 + #, c-format + msgid "(near initialization for `%s')" + msgstr "(près de l'initialisation de « %s »)" + +-#: c-typeck.c:4086 cp/typeck2.c:560 ++#: c-typeck.c:4066 cp/typeck2.c:550 + msgid "char-array initialized from wide string" + msgstr "tableau de caractères initialisé à l'aide d'une chaîne large de caractères" + +-#: c-typeck.c:4093 cp/typeck2.c:567 ++#: c-typeck.c:4073 cp/typeck2.c:557 + msgid "int-array initialized from non-wide string" + msgstr "tableau d'entier initialisé à l'aide d'une chaîne non-large" + +-#: c-typeck.c:4111 cp/typeck2.c:582 ++#: c-typeck.c:4091 cp/typeck2.c:572 + msgid "initializer-string for array of chars is too long" + msgstr "la chaîne d'initialisation est trop longue pour le tableau de caractères" + +-#: c-typeck.c:4181 ++#: c-typeck.c:4161 + msgid "array initialized from non-constant array expression" + msgstr "tableau initialisé à l'aide de l'expression de tableau non constante" + +-#: c-typeck.c:4232 ++#: c-typeck.c:4212 + msgid "initialization" + msgstr "initialisation" + +-#: c-typeck.c:4243 c-typeck.c:5621 ++#: c-typeck.c:4223 c-typeck.c:5601 + msgid "initializer element is not computable at load time" + msgstr "un élément de l'initialisation n'est pas évaluable lors du chargement" + +-#: c-typeck.c:4258 cp/typeck2.c:659 ++#: c-typeck.c:4238 cp/typeck2.c:649 + msgid "invalid initializer" + msgstr "initialisation invalide" + +-#: c-typeck.c:4540 cp/decl.c:4484 ++#: c-typeck.c:4520 cp/decl.c:4539 + msgid "opaque vector types cannot be initialized" + msgstr "type de vecteur opaque ne peut être initialisé" + +-#: c-typeck.c:4734 ++#: c-typeck.c:4714 + msgid "extra brace group at end of initializer" + msgstr "groupe d'accolades superflu à la fin de l'initialisation" + +-#: c-typeck.c:4754 ++#: c-typeck.c:4734 + msgid "missing braces around initializer" + msgstr "accolades manquantes autour de l'initialisation" + +-#: c-typeck.c:4814 ++#: c-typeck.c:4794 + msgid "braces around scalar initializer" + msgstr "accolades autour d'une initialisation de scalaire" + +-#: c-typeck.c:4865 ++#: c-typeck.c:4845 + msgid "initialization of flexible array member in a nested context" + msgstr "initialisation d'un membre de tableau flexible dans un contexte imbriqué" + +-#: c-typeck.c:4867 ++#: c-typeck.c:4847 + msgid "initialization of a flexible array member" + msgstr "initialisation d'un membre de tableau flexible" + +-#: c-typeck.c:4898 ++#: c-typeck.c:4878 + msgid "missing initializer" + msgstr "initialisation manquante" + +-#: c-typeck.c:4920 ++#: c-typeck.c:4900 + msgid "empty scalar initializer" + msgstr "initialisation vide de scalaire" + +-#: c-typeck.c:4925 ++#: c-typeck.c:4905 + msgid "extra elements in scalar initializer" + msgstr "éléments superflus dans l'initialisation de scalaire" + +-#: c-typeck.c:5010 ++#: c-typeck.c:4990 + msgid "initialization designators may not nest" + msgstr "l'initialisation des désignateurs ne doit pas être imbriquée" + +-#: c-typeck.c:5031 c-typeck.c:5099 ++#: c-typeck.c:5011 c-typeck.c:5079 + msgid "array index in non-array initializer" + msgstr "index de tableau dans l'initialisation de quelque chose n'étant pas un tableau" + +-#: c-typeck.c:5036 c-typeck.c:5152 ++#: c-typeck.c:5016 c-typeck.c:5132 + msgid "field name not in record or union initializer" + msgstr "nom de champ dans l'initialisation de quelque chose n'étant ni un enregistrement ni une union" + +-#: c-typeck.c:5095 c-typeck.c:5097 ++#: c-typeck.c:5075 c-typeck.c:5077 + msgid "nonconstant array index in initializer" + msgstr "index de tableau non constant dans l'initialisation" + +-#: c-typeck.c:5101 c-typeck.c:5104 ++#: c-typeck.c:5081 c-typeck.c:5084 + msgid "array index in initializer exceeds array bounds" + msgstr "index de tableau hors limites lors de l'initialisation" + +-#: c-typeck.c:5115 ++#: c-typeck.c:5095 + msgid "empty index range in initializer" + msgstr "borne d'index vide lors de l'initialisation" + +-#: c-typeck.c:5124 ++#: c-typeck.c:5104 + msgid "array index range in initializer exceeds array bounds" + msgstr "plage d'index du tableau excédant les bornes lors de l'initialisation" + +-#: c-typeck.c:5164 ++#: c-typeck.c:5144 + #, c-format + msgid "unknown field `%s' specified in initializer" + msgstr "champ inconnu « %s » spécifié lors de l'initialisation" + +-#: c-typeck.c:5200 c-typeck.c:5221 c-typeck.c:5683 ++#: c-typeck.c:5180 c-typeck.c:5201 c-typeck.c:5663 + msgid "initialized field with side-effects overwritten" + msgstr "le champ initialisé par effet de bord a été écrasé" + +-#: c-typeck.c:5891 ++#: c-typeck.c:5871 + msgid "excess elements in char array initializer" + msgstr "éléments en excès dans l'initialisation de tableau de caractères" + +-#: c-typeck.c:5898 c-typeck.c:5944 ++#: c-typeck.c:5878 c-typeck.c:5924 + msgid "excess elements in struct initializer" + msgstr "éléments en excès dans l'initialisation de la structure" + +-#: c-typeck.c:5959 ++#: c-typeck.c:5939 + msgid "non-static initialization of a flexible array member" + msgstr "initialisation non statique d'un membre de tableau flexible" + +-#: c-typeck.c:6026 ++#: c-typeck.c:6006 + msgid "excess elements in union initializer" + msgstr "éléments en excès dans l'initialisation d'union" + +-#: c-typeck.c:6047 ++#: c-typeck.c:6027 + msgid "traditional C rejects initialization of unions" + msgstr "le C traditionel rejette l'initialisation d'union" + +-#: c-typeck.c:6110 ++#: c-typeck.c:6090 + msgid "excess elements in array initializer" + msgstr "éléments en excès dans l'initialisation de tableau" + +-#: c-typeck.c:6139 ++#: c-typeck.c:6119 + msgid "excess elements in vector initializer" + msgstr "éléments en excès dans l'initialisation du vecteur" + +-#: c-typeck.c:6161 ++#: c-typeck.c:6141 + msgid "excess elements in scalar initializer" + msgstr "éléments en excès dans l'initialisation d'un scalaire" + +-#: c-typeck.c:6263 ++#: c-typeck.c:6243 + msgid "asm template is not a string constant" + msgstr "le patron asm n'est pas une chaîne de constante" + +-#: c-typeck.c:6295 ++#: c-typeck.c:6275 + msgid "invalid lvalue in asm statement" + msgstr "membre gauche invalide avec asm" + +-#: c-typeck.c:6367 cp/typeck.c:5902 ++#: c-typeck.c:6347 cp/typeck.c:5923 + msgid "modification by `asm'" + msgstr "modification par « asm »" + +-#: c-typeck.c:6385 cp/typeck.c:5986 ++#: c-typeck.c:6365 cp/typeck.c:6007 + msgid "function declared `noreturn' has a `return' statement" + msgstr "fonction déclarée avec « noreturn» utilisant le mot-clé « return »" + +-#: c-typeck.c:6392 ++#: c-typeck.c:6372 + msgid "`return' with no value, in function returning non-void" + msgstr "« return » sans valeur dans une fonction retournant autre chose que void" + +-#: c-typeck.c:6398 ++#: c-typeck.c:6378 + msgid "`return' with a value, in function returning void" + msgstr "« return » avec une valeur dans une fonction retournant un void" + +-#: c-typeck.c:6402 ++#: c-typeck.c:6382 + msgid "return" + msgstr "return" + +-#: c-typeck.c:6454 ++#: c-typeck.c:6434 + msgid "function returns address of local variable" + msgstr "cette fonction retourne l'adresse d'une variable locale" + +-#: c-typeck.c:6509 cp/semantics.c:749 ++#: c-typeck.c:6489 cp/semantics.c:749 + msgid "switch quantity not an integer" + msgstr "quantité du switch n'est pas un entier" + +-#: c-typeck.c:6519 ++#: c-typeck.c:6499 + msgid "`long' switch expression not converted to `int' in ISO C" + msgstr "expression « long » du switch non convertie en « int » par ISO C" + +-#: c-typeck.c:6560 cp/parser.c:5560 ++#: c-typeck.c:6540 cp/parser.c:5597 + msgid "case label not within a switch statement" + msgstr "étiquette de « case » en dehors de tout switch" + +-#: c-typeck.c:6562 ++#: c-typeck.c:6542 + msgid "`default' label not within a switch statement" + msgstr "étiquette « default » en dehors de tout switch" + +-#: c-typeck.c:6714 c-typeck.c:6748 ++#: c-typeck.c:6694 c-typeck.c:6728 + msgid "division by zero" + msgstr "division par zéro" + +-#: c-typeck.c:6793 cp/typeck.c:2953 ++#: c-typeck.c:6773 cp/typeck.c:2953 + msgid "right shift count is negative" + msgstr "le compteur de décalage vers la droite est négatif" + +-#: c-typeck.c:6800 cp/typeck.c:2959 ++#: c-typeck.c:6780 cp/typeck.c:2959 + msgid "right shift count >= width of type" + msgstr "compteur de décalage vers la droite >= à la largeur du type" + +-#: c-typeck.c:6821 cp/typeck.c:2978 ++#: c-typeck.c:6801 cp/typeck.c:2978 + msgid "left shift count is negative" + msgstr "le compteur de décalage vers la gauche est négatif" + +-#: c-typeck.c:6824 cp/typeck.c:2980 ++#: c-typeck.c:6804 cp/typeck.c:2980 + msgid "left shift count >= width of type" + msgstr "compteur de décalage vers la gauche >= à la largeur du type" + +-#: c-typeck.c:6845 ++#: c-typeck.c:6825 + msgid "shift count is negative" + msgstr "le compteur de décalage est négatif" + +-#: c-typeck.c:6847 ++#: c-typeck.c:6827 + msgid "shift count >= width of type" + msgstr "compteur de décalage >= à la largeur du type" + +-#: c-typeck.c:6864 cp/typeck.c:3015 ++#: c-typeck.c:6844 cp/typeck.c:3015 + msgid "comparing floating point with == or != is unsafe" + msgstr "comparer des nombres flottants à l'aide de == ou != n'est pas sûr" + +-#: c-typeck.c:6888 c-typeck.c:6894 ++#: c-typeck.c:6868 c-typeck.c:6874 + msgid "ISO C forbids comparison of `void *' with function pointer" + msgstr "ISO C interdit la comparaison de « void * » avec un pointeur de fonction" + +-#: c-typeck.c:6897 c-typeck.c:6937 c-typeck.c:6965 ++#: c-typeck.c:6877 c-typeck.c:6917 c-typeck.c:6945 + msgid "comparison of distinct pointer types lacks a cast" + msgstr "il manque un transtypage pour comparer des types distincts de pointeur" + +-#: c-typeck.c:6911 c-typeck.c:6916 c-typeck.c:6985 c-typeck.c:6990 ++#: c-typeck.c:6891 c-typeck.c:6896 c-typeck.c:6965 c-typeck.c:6970 + msgid "comparison between pointer and integer" + msgstr "comparaison entre un pointeur et un entier" + +-#: c-typeck.c:6932 c-typeck.c:6960 ++#: c-typeck.c:6912 c-typeck.c:6940 + msgid "ISO C forbids ordered comparisons of pointers to functions" + msgstr "ISO C interdit les comparaisons ordonnées de pointeurs vers des fonctions" + +-#: c-typeck.c:6957 ++#: c-typeck.c:6937 + msgid "comparison of complete and incomplete pointers" + msgstr "comparaison de pointeurs complet et incomplet" + +-#: c-typeck.c:6973 c-typeck.c:6980 ++#: c-typeck.c:6953 c-typeck.c:6960 + msgid "ordered comparison of pointer with integer zero" + msgstr "comparaison ordonnée de pointeur avec le zéro entier" + +-#: c-typeck.c:7004 cp/typeck.c:3151 ++#: c-typeck.c:6984 cp/typeck.c:3151 + msgid "unordered comparison on non-floating point argument" + msgstr "comparaison non ordonnée sur un argument n'étant pas en virgule flottante" + +-#: c-typeck.c:7214 ++#: c-typeck.c:7194 + msgid "comparison between signed and unsigned" + msgstr "comparaison entre élément signé et élément non signé" + +-#: c-typeck.c:7260 cp/typeck.c:3398 ++#: c-typeck.c:7240 cp/typeck.c:3398 + msgid "comparison of promoted ~unsigned with constant" + msgstr "comparaison entre élément promu ~unsigned et une constante" + +-#: c-typeck.c:7268 cp/typeck.c:3406 ++#: c-typeck.c:7248 cp/typeck.c:3406 + msgid "comparison of promoted ~unsigned with unsigned" + msgstr "comparaison entre élément promu ~unsigned et un élément non signé" + +@@ -3533,7 +3538,7 @@ + msgid "%Jinlining failed in call to '%F'" + msgstr "%Jenlignage a échoué dans l'appel à « %F »" + +-#: calls.c:1839 calls.c:2211 tree-inline.c:1339 tree-inline.c:1346 ++#: calls.c:1839 calls.c:2211 tree-inline.c:1339 tree-inline.c:1347 + msgid "called from here" + msgstr "appelé d'ici" + +@@ -3593,7 +3598,7 @@ + msgid "verify_flow_info: Basic block %d succ edge is corrupted" + msgstr "verify_flow_info: l'arrête succ du bloc de base %d est corrompue" + +-#: cfg.c:909 cfgrtl.c:1971 ++#: cfg.c:909 cfgrtl.c:1983 + #, c-format + msgid "Wrong amount of branch edges after unconditional jump %i" + msgstr "Mauvais nombre d'arrêtes de branchement après le branchement inconditionnel %i" +@@ -3673,118 +3678,118 @@ + msgid "Edge from %d to %d should not be marked irreducible." + msgstr "Bordures à partir de %d à %d ne devraient être marquées irréductibles." + +-#: cfgrtl.c:1877 ++#: cfgrtl.c:1889 + #, c-format + msgid "end insn %d for block %d not found in the insn stream" + msgstr "fin insn %d du bloc %d n'a pas été repéré dans le flot insn" + +-#: cfgrtl.c:1891 ++#: cfgrtl.c:1903 + #, c-format + msgid "insn %d is in multiple basic blocks (%d and %d)" + msgstr "insn %d est dans de multiples blocs de base (%d et %d)" + +-#: cfgrtl.c:1903 ++#: cfgrtl.c:1915 + #, c-format + msgid "head insn %d for block %d not found in the insn stream" + msgstr "en-tête insn %d du bloc %d n'a pas été repérée dans le flot insn" + +-#: cfgrtl.c:1925 ++#: cfgrtl.c:1937 + msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i" + msgstr "verify_flow_info: REG_BR_PROB ne correspond pas à la config %wi %i" + +-#: cfgrtl.c:1953 ++#: cfgrtl.c:1965 + #, c-format + msgid "Missing REG_EH_REGION note in the end of bb %i" + msgstr "REG_EH_REGION note manquante à la fin du bb %i" + +-#: cfgrtl.c:1961 ++#: cfgrtl.c:1973 + #, c-format + msgid "Too many outgoing branch edges from bb %i" + msgstr "Trop d'arrêtes de branchement sortantes dans le bb %i" + +-#: cfgrtl.c:1966 ++#: cfgrtl.c:1978 + #, c-format + msgid "Fallthru edge after unconditional jump %i" + msgstr "Arrête fallthru après le branchement inconditionnel %i" + +-#: cfgrtl.c:1977 ++#: cfgrtl.c:1989 + #, c-format + msgid "Wrong amount of branch edges after conditional jump %i" + msgstr "Mauvais nombre d'arrêtes de branchement après le branchement conditionnel %i" + +-#: cfgrtl.c:1982 ++#: cfgrtl.c:1994 + #, c-format + msgid "Call edges for non-call insn in bb %i" + msgstr "Arrêtes d'appel pour un insn n'étant pas d'appel dans le bb %i" + +-#: cfgrtl.c:1991 ++#: cfgrtl.c:2003 + #, c-format + msgid "Abnormal edges for no purpose in bb %i" + msgstr "Arrête anormale sans but dans le bb %i" + +-#: cfgrtl.c:2001 ++#: cfgrtl.c:2013 + #, c-format + msgid "insn %d inside basic block %d but block_for_insn is NULL" + msgstr "insn %d à l'intérieur du bloc de base %d mais block_for_insn est NULL" + +-#: cfgrtl.c:2005 ++#: cfgrtl.c:2017 + #, c-format + msgid "insn %d inside basic block %d but block_for_insn is %i" + msgstr "insn %d à l'intérieur du bloc de base %d mais block_for_insn est %i" + +-#: cfgrtl.c:2019 cfgrtl.c:2029 ++#: cfgrtl.c:2031 cfgrtl.c:2041 + #, c-format + msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d" + msgstr "NOTE_INSN_BASIC_BLOCK manquant pour le bloc %d" + +-#: cfgrtl.c:2042 ++#: cfgrtl.c:2054 + #, c-format + msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d" + msgstr "NOTE_INSN_BASIC_BLOCK %d au milieu du bloc de base %d" + +-#: cfgrtl.c:2052 ++#: cfgrtl.c:2064 + #, c-format + msgid "in basic block %d:" + msgstr "dans le bloc de base %d :" + +-#: cfgrtl.c:2053 ++#: cfgrtl.c:2065 + msgid "flow control insn inside a basic block" + msgstr "insn de contrôle de flot à l'intérieur d'un bloc de base" + +-#: cfgrtl.c:2099 ++#: cfgrtl.c:2111 + #, c-format + msgid "missing barrier after block %i" + msgstr "barrière manquante après le boc %i" + +-#: cfgrtl.c:2112 ++#: cfgrtl.c:2124 + #, c-format + msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i" + msgstr "verify_flow_info: blocs incorrects pour le fallthru %i->%i" + +-#: cfgrtl.c:2127 ++#: cfgrtl.c:2139 + #, c-format + msgid "verify_flow_info: Incorrect fallthru %i->%i" + msgstr "verify_flow_info: fallthru incorrect %i->%i" + +-#: cfgrtl.c:2129 ++#: cfgrtl.c:2141 + msgid "wrong insn in the fallthru edge" + msgstr "insn erronée dans l'arrête fallthru" + +-#: cfgrtl.c:2146 ++#: cfgrtl.c:2158 + msgid "basic blocks not laid down consecutively" + msgstr "les blocs de base ne se suivent pas consécutivement" + +-#: cfgrtl.c:2171 ++#: cfgrtl.c:2183 + msgid "insn outside basic block" + msgstr "insn à l'extérieur de tout bloc de base" + +-#: cfgrtl.c:2179 ++#: cfgrtl.c:2191 + msgid "return not followed by barrier" + msgstr "return n'est pas suivi d'une barrière" + + # FIXME + # bb est une abréviation courante dans cette partie du fichier pour « basic block » +-#: cfgrtl.c:2186 ++#: cfgrtl.c:2198 + #, c-format + msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)" + msgstr "nombre de bb noté dans la chaîne d'insn (%d) != n_basic_blocks (%d)" +@@ -4027,7 +4032,7 @@ + msgid "library lib%s not found" + msgstr "bibliothèque lib%s introuvable" + +-#: combine.c:13048 ++#: combine.c:13047 + #, c-format + msgid "" + ";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n" +@@ -4038,7 +4043,7 @@ + ";; %d succès.\n" + "\n" + +-#: combine.c:13057 ++#: combine.c:13056 + #, c-format + msgid "" + "\n" +@@ -4369,63 +4374,68 @@ + msgid "token \"%s\" is not valid in preprocessor expressions" + msgstr "l'élément lexical « %s » n'est pas valide dans les expressions pour le préprocesseur" + +-#: cppexp.c:753 +-msgid "void expression between '(' and ')'" +-msgstr "expression void entre parenthèses" ++#: cppexp.c:751 ++msgid "missing expression between '(' and ')'" ++msgstr "expression manquante entre '(' et ')'" + +-#: cppexp.c:756 ++#: cppexp.c:754 + msgid "#if with no expression" + msgstr "#if sans expression" + +-#: cppexp.c:758 ++#: cppexp.c:757 + #, c-format + msgid "operator '%s' has no right operand" + msgstr "l'opérateur « %s » n'a pas d'opérande droite" + +-#: cppexp.c:784 ++#: cppexp.c:762 ++#, c-format ++msgid "operator '%s' has no left operand" ++msgstr "opérateur « %s » n'a pas d'opérande gauche" ++ ++#: cppexp.c:788 + msgid " ':' without preceding '?'" + msgstr "« : » n'est pas précédé de « ? »" + +-#: cppexp.c:811 ++#: cppexp.c:815 + msgid "unbalanced stack in #if" + msgstr "pile non balancée dans #if" + +-#: cppexp.c:830 ++#: cppexp.c:834 + #, c-format + msgid "impossible operator '%u'" + msgstr "opérateur impossible « %u »" + +-#: cppexp.c:922 ++#: cppexp.c:926 + msgid "missing ')' in expression" + msgstr "« ) » manquante dans l'expresion" + +-#: cppexp.c:943 ++#: cppexp.c:947 + msgid "'?' without following ':'" + msgstr "« ? » n'est pas suivi de « : »" + +-#: cppexp.c:953 ++#: cppexp.c:957 + msgid "integer overflow in preprocessor expression" + msgstr "débordement d'entier dans l'expresion pour le préprocesseur" + +-#: cppexp.c:958 ++#: cppexp.c:962 + msgid "missing '(' in expression" + msgstr "« ( » manquante dans l'expresion" + +-#: cppexp.c:990 ++#: cppexp.c:994 + #, c-format + msgid "the left operand of \"%s\" changes sign when promoted" + msgstr "L'opérande gauche de « %s » change de signe lors de sa promotion" + +-#: cppexp.c:995 ++#: cppexp.c:999 + #, c-format + msgid "the right operand of \"%s\" changes sign when promoted" + msgstr "L'opérande droite de « %s » change de signe lors de sa promotion" + +-#: cppexp.c:1353 ++#: cppexp.c:1357 + msgid "comma operator in operand of #if" + msgstr "opérateur virgule dans l'opérande de #if" + +-#: cppexp.c:1484 ++#: cppexp.c:1488 + msgid "division by zero in #if" + msgstr "division par zéro dans #if" + +@@ -4463,7 +4473,7 @@ + msgstr "aucun chemin d'inclusion dans lequel on pourrait repérer %s" + + # FIXME +-#: cppfiles.c:956 ++#: cppfiles.c:959 + msgid "Multiple include guards may be useful for:\n" + msgstr "De multiples balises pour les inclusions peuvent être utiles pour:\n" + +@@ -4883,7 +4893,7 @@ + msgstr "erreur de syntaxe dans la liste de paramètres macro" + + # FIXME: Initialisé, ou ensembles? +-#: cse.c:7064 ++#: cse.c:7069 + #, c-format + msgid ";; Processing block from %d to %d, %d sets.\n" + msgstr ";; traitement du bloc de %d à %d, %d initialisés.\n" +@@ -5018,12 +5028,12 @@ + + #. We can't handle floating point constants; + #. PRINT_OPERAND must handle them. +-#: final.c:3220 vmsdbgout.c:467 config/i386/i386.c:6768 ++#: final.c:3220 vmsdbgout.c:467 config/i386/i386.c:6769 + #: config/pdp11/pdp11.c:1646 + msgid "floating constant misused" + msgstr "constante flottante mal utilisée" + +-#: final.c:3276 vmsdbgout.c:524 config/i386/i386.c:6846 ++#: final.c:3276 vmsdbgout.c:524 config/i386/i386.c:6847 + #: config/pdp11/pdp11.c:1693 + msgid "invalid expression as operand" + msgstr "expression invalide comme opérande" +@@ -5044,25 +5054,25 @@ + msgid "Attempt to delete prologue/epilogue insn:" + msgstr "Tentative pour détruire le prologue/épilogue insn:" + +-#: fold-const.c:2878 fold-const.c:2891 ++#: fold-const.c:2889 fold-const.c:2902 + #, c-format + msgid "comparison is always %d due to width of bit-field" + msgstr "comparaison est toujours %d en raison de la largeur du champ de bits" + +-#: fold-const.c:4093 fold-const.c:4110 ++#: fold-const.c:4110 fold-const.c:4127 + #, c-format + msgid "comparison is always %d" + msgstr "comparaison est toujours %d" + +-#: fold-const.c:4241 ++#: fold-const.c:4258 + msgid "`or' of unmatched not-equal tests is always 1" + msgstr "« or » de tests non pairé de non égalité est troujours 1" + +-#: fold-const.c:4246 ++#: fold-const.c:4263 + msgid "`and' of mutually exclusive equal-tests is always 0" + msgstr "« and » de tests d'égalité mutuellement exclusifs est toujours 0" + +-#: fold-const.c:8393 ++#: fold-const.c:8410 + msgid "fold check: original tree changed by fold" + msgstr "vérification fold: arbre originale modifié par fold" + +@@ -5070,27 +5080,27 @@ + msgid "%Jsize of variable '%D' is too large" + msgstr "%Jtaille de la variable « %D » est trop grande" + +-#: function.c:3742 ++#: function.c:3752 + msgid "impossible constraint in `asm'" + msgstr "contrainte impossible dans « asm »" + +-#: function.c:5733 ++#: function.c:5743 + msgid "%J'%D' might be used uninitialized in this function" + msgstr "%J« %D » pourrait être utilisé sans être initialisé dans cette fonction" + +-#: function.c:5740 ++#: function.c:5750 + msgid "%Jvariable '%D' might be clobbered by `longjmp' or `vfork'" + msgstr "%Jvariable « %D » pourrait être maltraitée par un «longjmp» ou un «vfork »" + +-#: function.c:5759 ++#: function.c:5769 + msgid "%Jargument '%D' might be clobbered by `longjmp' or `vfork'" + msgstr "%Jargument « %D » pourrait être maltraitée par un «longjmp» ou un «vfork »" + +-#: function.c:6533 ++#: function.c:6543 + msgid "function returns an aggregate" + msgstr "fonction retourne un aggrégat" + +-#: function.c:6929 ++#: function.c:6939 + msgid "%Junused parameter '%D'" + msgstr "%Jparamètre « %D » inutilisé" + +@@ -5118,7 +5128,7 @@ + msgid "Using built-in specs.\n" + msgstr "Utilisation des specs internes.\n" + +-#: gcc.c:1755 ++#: gcc.c:1758 + #, c-format + msgid "" + "Setting spec %s to '%s'\n" +@@ -5127,42 +5137,42 @@ + "Initialisation des spec %s à « %s »\n" + "\n" + +-#: gcc.c:1857 ++#: gcc.c:1860 + #, c-format + msgid "Reading specs from %s\n" + msgstr "Lecture des spécification à partir de %s\n" + +-#: gcc.c:1953 gcc.c:1972 ++#: gcc.c:1956 gcc.c:1975 + #, c-format + msgid "specs %%include syntax malformed after %ld characters" + msgstr "syntaxe des specs %%include mal composée après %ld caractères" + +-#: gcc.c:1980 ++#: gcc.c:1983 + #, c-format + msgid "could not find specs file %s\n" + msgstr "ne peut repérer le fichiers des specs %s\n" + +-#: gcc.c:1997 gcc.c:2005 gcc.c:2014 gcc.c:2023 ++#: gcc.c:2000 gcc.c:2008 gcc.c:2017 gcc.c:2026 + #, c-format + msgid "specs %%rename syntax malformed after %ld characters" + msgstr "specs de la syntaxe %%rename mal composées après %ld caractères" + +-#: gcc.c:2032 ++#: gcc.c:2035 + #, c-format + msgid "specs %s spec was not found to be renamed" + msgstr "specs de la spécification %s n'a pas été trouvé pour être renommer" + +-#: gcc.c:2039 ++#: gcc.c:2042 + #, c-format + msgid "%s: attempt to rename spec '%s' to already defined spec '%s'" + msgstr "%s: tentative pour renommner la spécification « %s » à un spécification « %s » déjà définie" + +-#: gcc.c:2044 ++#: gcc.c:2047 + #, c-format + msgid "rename spec %s to %s\n" + msgstr "renommé les specs %s à %s\n" + +-#: gcc.c:2046 ++#: gcc.c:2049 + #, c-format + msgid "" + "spec is '%s'\n" +@@ -5171,25 +5181,25 @@ + "spec est « %s »\n" + "\n" + +-#: gcc.c:2059 ++#: gcc.c:2062 + #, c-format + msgid "specs unknown %% command after %ld characters" + msgstr "specs inconnus de la commande %% après %ld caractères" + +-#: gcc.c:2070 gcc.c:2083 ++#: gcc.c:2073 gcc.c:2086 + #, c-format + msgid "specs file malformed after %ld characters" + msgstr "fichier de specs mal composé après %ld caractères" + +-#: gcc.c:2136 ++#: gcc.c:2139 + msgid "spec file has no spec for linking" + msgstr "fichier de specs n'a pas de spécification pour l'édition de liens" + +-#: gcc.c:2641 ++#: gcc.c:2644 + msgid "-pipe not supported" + msgstr "-pipe n'est pas supporté" + +-#: gcc.c:2703 ++#: gcc.c:2706 + msgid "" + "\n" + "Go ahead? (y or n) " +@@ -5197,7 +5207,7 @@ + "\n" + "Aller de l'avant? (y ou n) " + +-#: gcc.c:2829 ++#: gcc.c:2832 + #, c-format + msgid "" + "Internal error: %s (program %s)\n" +@@ -5208,69 +5218,69 @@ + "SVP soumettre un rapport complet d'anomalies.\n" + "Consulter %s pour les instructions." + +-#: gcc.c:2847 ++#: gcc.c:2850 + #, c-format + msgid "# %s %.2f %.2f\n" + msgstr "# %s %.2f %.2f\n" + +-#: gcc.c:2980 ++#: gcc.c:2983 + #, c-format + msgid "Usage: %s [options] file...\n" + msgstr "Usage: %s [options] fichier...\n" + +-#: gcc.c:2981 ++#: gcc.c:2984 + msgid "Options:\n" + msgstr "Options:\n" + +-#: gcc.c:2983 ++#: gcc.c:2986 + msgid " -pass-exit-codes Exit with highest error code from a phase\n" + msgstr " -pass-exit-codes quitter avec le plus grand code d'erreur de la phase\n" + +-#: gcc.c:2984 ++#: gcc.c:2987 + msgid " --help Display this information\n" + msgstr " --help afficher l'aide mémoire\n" + +-#: gcc.c:2985 ++#: gcc.c:2988 + msgid " --target-help Display target specific command line options\n" + msgstr " --target-help afficher les options spécifiques de la ligne de commande\n" + +-#: gcc.c:2987 ++#: gcc.c:2990 + msgid " (Use '-v --help' to display command line options of sub-processes)\n" + msgstr " (Utiliser «-v --help» pour afficher les options de la ligne de commande des sous-processus)\n" + +-#: gcc.c:2988 ++#: gcc.c:2991 + msgid " -dumpspecs Display all of the built in spec strings\n" + msgstr " -dumpspecs afficher tous les construits des chaînes de specs\n" + +-#: gcc.c:2989 ++#: gcc.c:2992 + msgid " -dumpversion Display the version of the compiler\n" + msgstr " -dumpversion afficher la version du compilateur\n" + +-#: gcc.c:2990 ++#: gcc.c:2993 + msgid " -dumpmachine Display the compiler's target processor\n" + msgstr " -dumpmachine afficher le processeur ciblé par le compilateur\n" + +-#: gcc.c:2991 ++#: gcc.c:2994 + msgid " -print-search-dirs Display the directories in the compiler's search path\n" + msgstr " -print-search-dirs afficher les répertoires du chemin de recherche du compiltateur\n" + +-#: gcc.c:2992 ++#: gcc.c:2995 + msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n" + msgstr " -print-libgcc-file-name afficher le nom de la bibliothèque compagne du compilateur\n" + +-#: gcc.c:2993 ++#: gcc.c:2996 + msgid " -print-file-name= Display the full path to library \n" + msgstr " -print-file-name= afficher le chemin d'accès complet vers la bibliothèque \n" + +-#: gcc.c:2994 ++#: gcc.c:2997 + msgid " -print-prog-name= Display the full path to compiler component \n" + msgstr " -print-prog-name= afficher le chemin d'accès complet vers le composant du compilateur \n" + +-#: gcc.c:2995 ++#: gcc.c:2998 + msgid " -print-multi-directory Display the root directory for versions of libgcc\n" + msgstr " -print-multi-directory afficher la racine du répertoire des version libgcc\n" + +-#: gcc.c:2996 ++#: gcc.c:2999 + msgid "" + " -print-multi-lib Display the mapping between command line options and\n" + " multiple library search directories\n" +@@ -5279,91 +5289,91 @@ + " la ligne de commande et les multiples répertoires de\n" + " recherches des bibliothèques\n" + +-#: gcc.c:2999 ++#: gcc.c:3002 + msgid " -print-multi-os-directory Display the relative path to OS libraries\n" + msgstr " -print-multi-os-directory afficher le chemin relatif du répertoire vers les librairies de l'OS\n" + +-#: gcc.c:3000 ++#: gcc.c:3003 + msgid " -Wa, Pass comma-separated on to the assembler\n" + msgstr " -Wa, passer les séparées par des virgules à l'assembleur\n" + +-#: gcc.c:3001 ++#: gcc.c:3004 + msgid " -Wp, Pass comma-separated on to the preprocessor\n" + msgstr " -Wp, passer les séparées par des virgules au préprocesseur\n" + +-#: gcc.c:3002 ++#: gcc.c:3005 + msgid " -Wl, Pass comma-separated on to the linker\n" + msgstr " -Wl, passer les séparées par des virgules à l'éditeur de liens\n" + +-#: gcc.c:3003 ++#: gcc.c:3006 + msgid " -Xassembler Pass on to the assembler\n" + msgstr " -Xassembler passer l'ument à l'assembleur\n" + +-#: gcc.c:3004 ++#: gcc.c:3007 + msgid " -Xpreprocessor Pass on to the preprocessor\n" + msgstr " -Xpreprocessor passer l'ument au pré-processeur\n" + +-#: gcc.c:3005 ++#: gcc.c:3008 + msgid " -Xlinker Pass on to the linker\n" + msgstr " -Xlinker passer l' à l'éditeur de liens\n" + +-#: gcc.c:3006 ++#: gcc.c:3009 + msgid " -save-temps Do not delete intermediate files\n" + msgstr " -save-temps ne pas détruire les fichiers intermédiaires\n" + +-#: gcc.c:3007 ++#: gcc.c:3010 + msgid " -pipe Use pipes rather than intermediate files\n" + msgstr " -pipe utiliser des pipes au lieu de fichiers intermédiares\n" + +-#: gcc.c:3008 ++#: gcc.c:3011 + msgid " -time Time the execution of each subprocess\n" + msgstr " -time mesurer le temps d'exécution de chaque sous-processus\n" + +-#: gcc.c:3009 ++#: gcc.c:3012 + msgid " -specs= Override built-in specs with the contents of \n" + msgstr " -specs= écraser les specs internes à l'aide du contenu du \n" + +-#: gcc.c:3010 ++#: gcc.c:3013 + msgid " -std= Assume that the input sources are for \n" + msgstr " -std= Présumer que les fichiers sources respectent le \n" + +-#: gcc.c:3011 ++#: gcc.c:3014 + msgid " -B Add to the compiler's search paths\n" + msgstr " -B ajouter le aux chemins de recherche du compilateur\n" + +-#: gcc.c:3012 ++#: gcc.c:3015 + msgid " -b Run gcc for target , if installed\n" + msgstr " -b exécuter gcc pour la cible, si installé\n" + +-#: gcc.c:3013 ++#: gcc.c:3016 + msgid " -V Run gcc version number , if installed\n" + msgstr " -V exécuter le numéro de de gcc, si installée\n" + +-#: gcc.c:3014 ++#: gcc.c:3017 + msgid " -v Display the programs invoked by the compiler\n" + msgstr " -v afficher les programmes invoqués par le compilateur\n" + +-#: gcc.c:3015 ++#: gcc.c:3018 + msgid " -### Like -v but options quoted and commands not executed\n" + msgstr " -### identique à -v mais les options et les commandes entre guillemets ne sont pas exécutées\n" + +-#: gcc.c:3016 ++#: gcc.c:3019 + msgid " -E Preprocess only; do not compile, assemble or link\n" + msgstr " -E pré-traiter seulement; ne pas compiler, assembler ou éditer les liens\n" + +-#: gcc.c:3017 ++#: gcc.c:3020 + msgid " -S Compile only; do not assemble or link\n" + msgstr " -S compiler seulement; ne pas assembler ou éditer les liens\n" + +-#: gcc.c:3018 ++#: gcc.c:3021 + msgid " -c Compile and assemble, but do not link\n" + msgstr " -S compiler et assembler, mais ne pas éditer les liens\n" + +-#: gcc.c:3019 ++#: gcc.c:3022 + msgid " -o Place the output into \n" + msgstr " -o placer la sortie dans le \n" + +-#: gcc.c:3020 ++#: gcc.c:3023 + msgid "" + " -x Specify the language of the following input files\n" + " Permissible languages include: c c++ assembler none\n" +@@ -5375,7 +5385,7 @@ + " « none » signifiant d'utiliser le comportement par défaut\n" + " en tentant d'identifier le langage par l'extension du fichier\n" + +-#: gcc.c:3027 ++#: gcc.c:3030 + #, c-format + msgid "" + "\n" +@@ -5388,27 +5398,27 @@ + " passés aux divers sous-processus invoqués par %s. Afin de passer\n" + " les autres options à ces processus l'option -W doit être utilisé.\n" + +-#: gcc.c:3148 ++#: gcc.c:3151 + #, c-format + msgid "`-%c' option must have argument" + msgstr "l'option « -%c » requière un argument" + +-#: gcc.c:3170 ++#: gcc.c:3173 + #, c-format + msgid "couldn't run `%s': %s" + msgstr "impossible d'exécuter « %s » : %s" + + #. translate_options () has turned --version into -fversion. +-#: gcc.c:3356 ++#: gcc.c:3359 + #, c-format + msgid "%s (GCC) %s\n" + msgstr "%s (GCC) %s\n" + +-#: gcc.c:3358 gcov.c:424 f/g77spec.c:351 ++#: gcc.c:3361 gcov.c:424 f/g77spec.c:351 + msgid "(C)" + msgstr "©" + +-#: gcc.c:3359 ++#: gcc.c:3362 + msgid "" + "This is free software; see the source for copying conditions. There is NO\n" + "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" +@@ -5418,66 +5428,66 @@ + "GARANTIE; ni implicite pour le MARCHANDAGE ou pour un BUT PARTICULIER.\n" + "\n" + +-#: gcc.c:3460 ++#: gcc.c:3463 + msgid "argument to `-Xlinker' is missing" + msgstr "argument de «-Xlinker» est manquant" + +-#: gcc.c:3468 ++#: gcc.c:3471 + msgid "argument to `-Xpreprocessor' is missing" + msgstr "argument de « -Xpreprocessor » est manquant" + +-#: gcc.c:3475 ++#: gcc.c:3478 + msgid "argument to `-Xassembler' is missing" + msgstr "argument de « -Xassembler » est manquant" + +-#: gcc.c:3482 ++#: gcc.c:3485 + msgid "argument to `-l' is missing" + msgstr "argument pour « -l » est manquant" + +-#: gcc.c:3498 ++#: gcc.c:3501 + msgid "argument to `-specs' is missing" + msgstr "argument de « -specs » est manquant" + +-#: gcc.c:3512 ++#: gcc.c:3515 + msgid "argument to `-specs=' is missing" + msgstr "argument de «-specs=» est manquant" + +-#: gcc.c:3549 ++#: gcc.c:3552 + #, c-format + msgid "`-%c' must come at the start of the command line" + msgstr "« -%c » doit apparaître au début de la ligne de commande" + +-#: gcc.c:3558 ++#: gcc.c:3561 + msgid "argument to `-B' is missing" + msgstr "argument de « -B » est manquant" + +-#: gcc.c:3735 ++#: gcc.c:3738 + msgid "warning: -pipe ignored because -save-temps specified" + msgstr "AVERTISSEMENT: -pipe ignoré parce que -save-temps a été spécifié" + +-#: gcc.c:3739 ++#: gcc.c:3742 + msgid "warning: -pipe ignored because -time specified" + msgstr "AVERTISSEMENT: -pipe ignoré parce que -time a été spécifié" + +-#: gcc.c:3951 ++#: gcc.c:3954 + msgid "argument to `-x' is missing" + msgstr "argument pour « -x » est manquant" + +-#: gcc.c:3979 ++#: gcc.c:3982 + #, c-format + msgid "argument to `-%s' is missing" + msgstr "argument pour « -%s » est manquant" + +-#: gcc.c:4040 ++#: gcc.c:4043 + #, c-format + msgid "warning: `-x %s' after last input file has no effect" + msgstr "AVERTISSEMENT: « -x %s » après le dernier fichier d'entrée n'a pas d'effet" + +-#: gcc.c:4441 ++#: gcc.c:4444 + msgid "invalid specification! Bug in cc" + msgstr "spécification invalide! Bug dans cc." + +-#: gcc.c:4595 ++#: gcc.c:4598 + #, c-format + msgid "%s\n" + msgstr "%s\n" +@@ -5485,78 +5495,78 @@ + #. Catch the case where a spec string contains something like + #. '%{foo:%*}'. ie there is no * in the pattern on the left + #. hand side of the :. +-#: gcc.c:5099 ++#: gcc.c:5102 + #, c-format + msgid "spec failure: '%%*' has not been initialized by pattern match" + msgstr "échec du spec: « %%* » n'a pas été initialisé par concordance du patron" + +-#: gcc.c:5108 ++#: gcc.c:5111 + #, c-format + msgid "warning: use of obsolete %%[ operator in specs" + msgstr "AVERTISSEMENT: utilisation obsolète de l'opérateur %%[ dans les specs" + +-#: gcc.c:5126 ++#: gcc.c:5129 + #, c-format + msgid "Processing spec %c%s%c, which is '%s'\n" + msgstr "Traitement du spec %c%s%c, lequel est « %s »\n" + +-#: gcc.c:5189 ++#: gcc.c:5192 + #, c-format + msgid "spec failure: unrecognized spec option '%c'" + msgstr "échec de spec: option « %c » de spec non reconnue" + +-#: gcc.c:5268 ++#: gcc.c:5271 + #, c-format + msgid "unknown spec function `%s'" + msgstr "spécification de fonction inconnue « %s »:" + +-#: gcc.c:5287 ++#: gcc.c:5290 + #, c-format + msgid "error in args to spec function `%s'" + msgstr "ERREUR d'arguments pour la spécification de fonction « %s »" + +-#: gcc.c:5335 ++#: gcc.c:5338 + msgid "malformed spec function name" + msgstr "nom de spécification de fonction mal composé" + + #. ) +-#: gcc.c:5338 ++#: gcc.c:5341 + msgid "no arguments for spec function" + msgstr "aucun argument pour la spécification de fonction" + +-#: gcc.c:5357 ++#: gcc.c:5360 + msgid "malformed spec function arguments" + msgstr "arguments de spécification de fonction mal composés" + +-#: gcc.c:6083 ++#: gcc.c:6086 + msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC." + msgstr "échec de spécification: plus d'un argument à SYSROOT_SUFFIX_SPEC." + +-#: gcc.c:6093 ++#: gcc.c:6096 + msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC." + msgstr "échec de spécification: plus d'un argument à SYSROOT_HEADERS_SUFFIX_SPEC." + +-#: gcc.c:6186 ++#: gcc.c:6189 + #, c-format + msgid "unrecognized option `-%s'" + msgstr "option « -%s » non reconnue" + +-#: gcc.c:6192 ++#: gcc.c:6195 + #, c-format + msgid "install: %s%s\n" + msgstr "installés: %s%s\n" + +-#: gcc.c:6193 ++#: gcc.c:6196 + #, c-format + msgid "programs: %s\n" + msgstr "programmes: %s\n" + +-#: gcc.c:6194 ++#: gcc.c:6197 + #, c-format + msgid "libraries: %s\n" + msgstr "libraries: %s\n" + +-#: gcc.c:6251 ++#: gcc.c:6254 + msgid "" + "\n" + "For bug reporting instructions, please see:\n" +@@ -5564,50 +5574,50 @@ + "\n" + "Pour les instructons afin de rapporter des anomales, SVP consulter:\n" + +-#: gcc.c:6267 ++#: gcc.c:6270 + #, c-format + msgid "Configured with: %s\n" + msgstr "Configuré avec: %s\n" + +-#: gcc.c:6281 ++#: gcc.c:6284 + #, c-format + msgid "Thread model: %s\n" + msgstr "Modèle de thread: %s\n" + +-#: gcc.c:6292 ++#: gcc.c:6295 + #, c-format + msgid "gcc version %s\n" + msgstr "version gcc %s\n" + +-#: gcc.c:6294 ++#: gcc.c:6297 + #, c-format + msgid "gcc driver version %s executing gcc version %s\n" + msgstr "version du pilote gcc %s exécutant le version %s de gcc\n" + +-#: gcc.c:6302 ++#: gcc.c:6305 + msgid "no input files" + msgstr "pas de fichier à l'entrée" + +-#: gcc.c:6324 gcc.c:6443 ++#: gcc.c:6327 gcc.c:6446 + #, c-format + msgid "%s: linker input file unused because linking not done" + msgstr "%s: fichier d'entrée d'édition de liens n'est pas utilisé parce l'édition de lien n'a pas été faite" + +-#: gcc.c:6327 ++#: gcc.c:6330 + msgid "cannot specify -o with -c or -S and multiple languages" + msgstr "ne peut spécifier -o avec -c ou -S et de multiples langages" + +-#: gcc.c:6362 ++#: gcc.c:6365 + #, c-format + msgid "%s: %s compiler not installed on this system" + msgstr "%s: %s compilateur n'est pas installé sur ce système" + +-#: gcc.c:6483 ++#: gcc.c:6486 + #, c-format + msgid "language %s not recognized" + msgstr "language %s n'est pas reconnu" + +-#: gcc.c:6580 ++#: gcc.c:6583 + msgid "internal gcc abort" + msgstr "abandon interne de gcc" + +@@ -5905,21 +5915,21 @@ + msgid "GCSE disabled" + msgstr "GCSE désactivé" + +-#: gcse.c:6124 ++#: gcse.c:6125 + msgid "NULL pointer checks disabled" + msgstr "vérification des pointeurs NULS désactivée" + + #. Return if there's nothing to do, or it is too expensive. +-#: gcse.c:8010 ++#: gcse.c:8036 + msgid "jump bypassing disabled" + msgstr "saut d'évitement désactivé" + +-#: gcse.c:8071 ++#: gcse.c:8097 + #, c-format + msgid "%s: %d basic blocks and %d edges/basic block" + msgstr "%s: %d blocs de base et %d blocs edges/basic" + +-#: gcse.c:8084 ++#: gcse.c:8110 + #, c-format + msgid "%s: %d basic blocks and %d registers" + msgstr "%s: %d blocs basic et %d registres" +@@ -5969,7 +5979,7 @@ + msgid "%s cannot be used in asm here" + msgstr "%s ne peut être utilisé dans asm ici" + +-#: graph.c:403 toplev.c:1498 toplev.c:4432 f/com.c:14202 java/jcf-parse.c:883 ++#: graph.c:403 toplev.c:1498 toplev.c:4433 f/com.c:14202 java/jcf-parse.c:883 + #: java/jcf-parse.c:1029 java/lex.c:1828 objc/objc-act.c:503 + #, c-format + msgid "can't open %s: %m" +@@ -6049,7 +6059,7 @@ + msgstr "fonction avec des attributs spécifiques à la cible ne peut pas être enligne" + + # FIXME: c'est de l'assembleur ? +-#: jump.c:1896 ++#: jump.c:1913 + msgid "%Hwill never be executed" + msgstr "%Hne sera jamais exécuté" + +@@ -6546,7 +6556,7 @@ + msgid "can't use '%s' as a %s register" + msgstr "ne peut utiliser « %s » comme le registre %s" + +-#: regclass.c:758 config/ia64/ia64.c:4660 config/ia64/ia64.c:4667 ++#: regclass.c:758 config/ia64/ia64.c:4666 config/ia64/ia64.c:4673 + #, c-format + msgid "unknown register name: %s" + msgstr "nom de registre inconnu: %s" +@@ -6591,15 +6601,15 @@ + msgid "impossible register constraint in `asm'" + msgstr "impossible de contraindre les registres en « asm »" + +-#: reload.c:3504 ++#: reload.c:3519 + msgid "`&' constraint used with no register class" + msgstr "contrainte « & » utilisé sans classe registre" + +-#: reload.c:3672 ++#: reload.c:3687 + msgid "unable to generate reloads for:" + msgstr "incapable de générer des recharges pour:" + +-#: reload.c:3673 reload.c:3887 ++#: reload.c:3688 reload.c:3902 + msgid "inconsistent operand constraints in an `asm'" + msgstr "contrainte d'opérande inconsistente en « asm »" + +@@ -7003,11 +7013,11 @@ + msgid "invalid register name `%s' for register variable" + msgstr "nom de registre invalide « %s » pour un variable registre" + +-#: toplev.c:3546 ++#: toplev.c:3547 + msgid "branch target register load optimization is not intended to be run twice" + msgstr "optimisation du chargement du registre cible de branchement est pas prévu pour être exécuté deux fois" + +-#: toplev.c:3713 ++#: toplev.c:3714 + msgid "" + "\n" + "Target specific options:\n" +@@ -7015,12 +7025,12 @@ + "\n" + "Options spécifiques à la cible:\n" + +-#: toplev.c:3727 toplev.c:3746 ++#: toplev.c:3728 toplev.c:3747 + #, c-format + msgid " -m%-23s [undocumented]\n" + msgstr " -m%-23s [non documenté]\n" + +-#: toplev.c:3755 ++#: toplev.c:3756 + msgid "" + "\n" + "There are undocumented target specific options as well.\n" +@@ -7028,21 +7038,21 @@ + "\n" + "Il y a des options spécifiques à la cible qui ne sont pas documentés aussi.\n" + +-#: toplev.c:3757 ++#: toplev.c:3758 + msgid " They exist, but they are not documented.\n" + msgstr " Ils existent, mais ils ne sont pas documentés.\n" + +-#: toplev.c:3812 ++#: toplev.c:3813 + #, c-format + msgid "unrecognized gcc debugging option: %c" + msgstr "option gcc de mise au point non reconnue: %c" + +-#: toplev.c:3874 config/rs6000/rs6000.c:922 ++#: toplev.c:3875 config/rs6000/rs6000.c:940 config/rs6000/rs6000.c:951 + #, c-format + msgid "invalid option `%s'" + msgstr "option invalide « %s »" + +-#: toplev.c:3889 ++#: toplev.c:3890 + #, c-format + msgid "" + "%s%s%s version %s (%s)\n" +@@ -7053,93 +7063,93 @@ + "%s\tcompilé par GNU C version %s.\n" + "%s%s%s version %s (%s) compilé par CC.\n" + +-#: toplev.c:3896 ++#: toplev.c:3897 + #, c-format + msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n" + msgstr "heuristiques %s%sGGC: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n" + +-#: toplev.c:3948 ++#: toplev.c:3949 + msgid "options passed: " + msgstr "options passées: " + +-#: toplev.c:3977 ++#: toplev.c:3978 + msgid "options enabled: " + msgstr "options autorisées: " + +-#: toplev.c:4035 java/jcf-write.c:3424 ++#: toplev.c:4036 java/jcf-write.c:3424 + #, c-format + msgid "can't open %s for writing: %m" + msgstr "ne peut ouvrir %s en écriture: %m" + +-#: toplev.c:4118 config/sh/sh.c:7019 ++#: toplev.c:4119 config/sh/sh.c:7020 + msgid "created and used with different settings of -fpic" + msgstr "créé et utilisé avec des configurations différentes de -fpic" + +-#: toplev.c:4120 config/sh/sh.c:7021 ++#: toplev.c:4121 config/sh/sh.c:7022 + msgid "created and used with different settings of -fpie" + msgstr "créé et utilisé avec des configurations différentes de -fpie" + +-#: toplev.c:4171 config/sh/sh.c:7071 ++#: toplev.c:4172 config/sh/sh.c:7072 + #, c-format + msgid "created and used with differing settings of `-m%s'" + msgstr "créé et utilisé avec des configurations différentes de « -m%s »" + +-#: toplev.c:4174 config/sh/sh.c:7074 ++#: toplev.c:4175 config/sh/sh.c:7075 + msgid "out of memory" + msgstr "mémoire épuisée" + +-#: toplev.c:4355 ++#: toplev.c:4356 + msgid "instruction scheduling not supported on this target machine" + msgstr "instruction d'ordonnancement n'est pas supportée sur cette machine cible" + +-#: toplev.c:4359 ++#: toplev.c:4360 + msgid "this target machine does not have delayed branches" + msgstr "cette machine cible n'a pas de branchments avec délais" + +-#: toplev.c:4373 ++#: toplev.c:4374 + #, c-format + msgid "-f%sleading-underscore not supported on this target machine" + msgstr "-f%sleading-underscore n'est pas supporté sur cette machine cible" + +-#: toplev.c:4422 ++#: toplev.c:4423 + #, c-format + msgid "target system does not support the \"%s\" debug format" + msgstr "système cible ne supporte par le format \"%s\" de mise au point" + +-#: toplev.c:4439 ++#: toplev.c:4440 + msgid "-ffunction-sections not supported for this target" + msgstr "-ffunction-sections n'est pas supporté pour cette cible" + +-#: toplev.c:4444 ++#: toplev.c:4445 + msgid "-fdata-sections not supported for this target" + msgstr "-fdata-sections n'est pas supporté pour cette machine cible" + +-#: toplev.c:4451 ++#: toplev.c:4452 + msgid "-ffunction-sections disabled; it makes profiling impossible" + msgstr "-ffunction-sections désactivé; cela rend le profilage impossible" + +-#: toplev.c:4458 ++#: toplev.c:4459 + msgid "-fprefetch-loop-arrays not supported for this target" + msgstr "-fprefetch-loop-arrays n'est pas supporté pour cette machine cible" + +-#: toplev.c:4464 ++#: toplev.c:4465 + msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)" + msgstr "-fprefetch-loop-arrays n'est pas supporté sur cette machine cible (essayer -march options)" + +-#: toplev.c:4473 ++#: toplev.c:4474 + msgid "-fprefetch-loop-arrays is not supported with -Os" + msgstr "-fprefetch-loop-arrays n'est pas supporté avec -Os" + +-#: toplev.c:4479 ++#: toplev.c:4480 + msgid "-ffunction-sections may affect debugging on some targets" + msgstr "-ffunction-sections peut affecter la mise au point sur quelques machines cibles." + +-#: toplev.c:4581 ++#: toplev.c:4582 + #, c-format + msgid "error writing to %s: %m" + msgstr "erreur d'écriture dans %s: %m" + +-#: toplev.c:4583 java/jcf-parse.c:902 java/jcf-write.c:3431 ++#: toplev.c:4584 java/jcf-parse.c:902 java/jcf-write.c:3431 + #, c-format + msgid "error closing %s: %m" + msgstr "erreur de fermeture %s: %m" +@@ -7186,7 +7196,7 @@ + msgid "%Jfunction '%F' can never be inlined because it uses variable sized variables" + msgstr "%Jfonction « %F » ne peut être enligne parce qu'elle utilise une taille variable de variables" + +-#: tree-inline.c:1338 tree-inline.c:1345 ++#: tree-inline.c:1338 tree-inline.c:1346 + msgid "%Jinlining failed in call to '%F': %s" + msgstr "%Jl'enlignage de l'appel à « %F »: %s a échoué" + +@@ -7198,34 +7208,34 @@ + msgid "%Jsize of return value of '%D' is larger than %wd bytes" + msgstr "%Jtaille de la valeur retournée par « %D » supérieure à %wd octets" + +-#: tree.c:3801 ++#: tree.c:3800 + msgid "arrays of functions are not meaningful" + msgstr "tableaux de fonctions n'a pas grand sens" + +-#: tree.c:3856 ++#: tree.c:3855 + msgid "function return type cannot be function" + msgstr "Le type retourné d'une fonction ne peut être une fonction" + +-#: tree.c:4685 ++#: tree.c:4684 + msgid "invalid initializer for bit string" + msgstr "initialisation invalide pour une chaîne de bits" + +-#: tree.c:4737 ++#: tree.c:4736 + #, c-format + msgid "tree check: expected %s, have %s in %s, at %s:%d" + msgstr "vérification de l'arbre: attendait %s, obtenu %s dans %s, à %s:%d" + +-#: tree.c:4750 ++#: tree.c:4749 + #, c-format + msgid "tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d" + msgstr "vérification de l'arbre: attendait classe « %c », obtenu « %c » (%s) dans %s, à %s:%d" + +-#: tree.c:4763 ++#: tree.c:4762 + #, c-format + msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d" + msgstr "vérification de l'arbre: accès de elt %d de tree-vec avec %d elts dans %s, à %s:%d" + +-#: tree.c:4775 ++#: tree.c:4774 + #, c-format + msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d" + msgstr "vérification de l'arbre: opérande accédé %d de %s avec %d opérandes dans %s, à %s:%d" +@@ -7278,48 +7288,48 @@ + msgid "%Jrequested alignment for '%D' is greater than implemented alignment of %d" + msgstr "%Jrequête d'alignement pour '%D' est plus grand que l'alignement implanté de %d" + +-#: varasm.c:3789 ++#: varasm.c:3790 + msgid "initializer for integer value is too complicated" + msgstr "initialisation d'entier trop compliquée" + +-#: varasm.c:3794 ++#: varasm.c:3795 + msgid "initializer for floating value is not a floating constant" + msgstr "l'initialisation d'une valeur à virgule flottante n'est pas une constante à virgule flottante" + +-#: varasm.c:3860 ++#: varasm.c:3861 + msgid "unknown set constructor type" + msgstr "type de jeu de constructeurs inconnu" + +-#: varasm.c:4079 ++#: varasm.c:4080 + #, c-format + msgid "invalid initial value for member `%s'" + msgstr "valeur initiale invalide pour le membre « %s »" + +-#: varasm.c:4266 varasm.c:4310 ++#: varasm.c:4267 varasm.c:4311 + msgid "%Jweak declaration of '%D' must precede definition" + msgstr "%Jdéclaration faible de « %D » qui doit être précédée d'une définition" + +-#: varasm.c:4274 ++#: varasm.c:4275 + msgid "%Jweak declaration of '%D' after first use results in unspecified behavior" + msgstr "%Jdéclaration faible de « %D » après une première utilisation des résultats d'un comportement non spécifié" + +-#: varasm.c:4308 ++#: varasm.c:4309 + msgid "%Jweak declaration of '%D' must be public" + msgstr "%Jdéclaration faible de « %D » doit être publique" + +-#: varasm.c:4317 ++#: varasm.c:4318 + msgid "%Jweak declaration of '%D' not supported" + msgstr "%Jdéclaration faible de « %D » n'est pas supportée" + +-#: varasm.c:4346 varasm.c:4436 ++#: varasm.c:4347 varasm.c:4437 + msgid "only weak aliases are supported in this configuration" + msgstr "seulement les alias faibles sont supportés dans cette configuration" + +-#: varasm.c:4439 ++#: varasm.c:4440 + msgid "alias definitions not supported in this configuration; ignored" + msgstr "définitions d'alias ne sont pas supportés dans cette configuration; ignoré" + +-#: varasm.c:4468 ++#: varasm.c:4469 + msgid "visibility attribute not supported in this configuration; ignored" + msgstr "visibilité de l'attribut n'est pas supporté dans cette configuration; ignoré" + +@@ -7541,7 +7551,7 @@ + msgid "junk at end of '#pragma unused'" + msgstr "rebut à la fin de « #pragma unused »" + +-#: config/darwin.c:1347 ++#: config/darwin.c:1312 + msgid "internal and protected visibility attributes not supportedin this configuration; ignored" + msgstr "visibilité des attributs internes et protégées n'est pas supportée dans cette configuration; ignoré" + +@@ -7585,7 +7595,7 @@ + msgid "bad value `%s' for -mfp-trap-mode switch" + msgstr "valeur « %s » erronée pour l'option -mfp-trap-mode" + +-#: config/alpha/alpha.c:324 config/rs6000/rs6000.c:1088 ++#: config/alpha/alpha.c:324 config/rs6000/rs6000.c:1117 + #, c-format + msgid "bad value `%s' for -mtls-size switch" + msgstr "valeur « %s » erronée pour l'option -mtls-size" +@@ -7625,90 +7635,90 @@ + msgid "bad value `%s' for -mmemory-latency" + msgstr "valeur « %s » erronée pour -mmemory-latency" + +-#: config/alpha/alpha.c:5425 ++#: config/alpha/alpha.c:5436 + #, c-format + msgid "invalid %%H value" + msgstr "valeur %%H invalide" + +-#: config/alpha/alpha.c:5446 ++#: config/alpha/alpha.c:5457 + #, c-format + msgid "invalid %%J value" + msgstr "valeur %%J invalide" + +-#: config/alpha/alpha.c:5462 config/ia64/ia64.c:4263 ++#: config/alpha/alpha.c:5473 config/ia64/ia64.c:4269 + #, c-format + msgid "invalid %%r value" + msgstr "valeur %%r invalide" + +-#: config/alpha/alpha.c:5472 config/rs6000/rs6000.c:9241 ++#: config/alpha/alpha.c:5483 config/rs6000/rs6000.c:9332 + #: config/xtensa/xtensa.c:2014 + #, c-format + msgid "invalid %%R value" + msgstr "valeur %%R invalide" + +-#: config/alpha/alpha.c:5478 config/rs6000/rs6000.c:9160 ++#: config/alpha/alpha.c:5489 config/rs6000/rs6000.c:9251 + #: config/xtensa/xtensa.c:1981 + #, c-format + msgid "invalid %%N value" + msgstr "valeur %%N invalide" + +-#: config/alpha/alpha.c:5486 config/rs6000/rs6000.c:9188 ++#: config/alpha/alpha.c:5497 config/rs6000/rs6000.c:9279 + #, c-format + msgid "invalid %%P value" + msgstr "valeur %%P invalide" + +-#: config/alpha/alpha.c:5494 ++#: config/alpha/alpha.c:5505 + #, c-format + msgid "invalid %%h value" + msgstr "valeur %%h invalide" + +-#: config/alpha/alpha.c:5502 config/xtensa/xtensa.c:2007 ++#: config/alpha/alpha.c:5513 config/xtensa/xtensa.c:2007 + #, c-format + msgid "invalid %%L value" + msgstr "valeur %%L invalide" + +-#: config/alpha/alpha.c:5541 config/rs6000/rs6000.c:9142 ++#: config/alpha/alpha.c:5552 config/rs6000/rs6000.c:9233 + #, c-format + msgid "invalid %%m value" + msgstr "valeur %%m invalide" + +-#: config/alpha/alpha.c:5549 config/rs6000/rs6000.c:9150 ++#: config/alpha/alpha.c:5560 config/rs6000/rs6000.c:9241 + #, c-format + msgid "invalid %%M value" + msgstr "valeur %%M invalide" + +-#: config/alpha/alpha.c:5593 ++#: config/alpha/alpha.c:5604 + #, c-format + msgid "invalid %%U value" + msgstr "valeur %%U invalide" + +-#: config/alpha/alpha.c:5605 config/alpha/alpha.c:5619 +-#: config/rs6000/rs6000.c:9249 ++#: config/alpha/alpha.c:5616 config/alpha/alpha.c:5630 ++#: config/rs6000/rs6000.c:9340 + #, c-format + msgid "invalid %%s value" + msgstr "valeur %%s invalide" + +-#: config/alpha/alpha.c:5642 ++#: config/alpha/alpha.c:5653 + #, c-format + msgid "invalid %%C value" + msgstr "valeur %%C invalide" + +-#: config/alpha/alpha.c:5679 config/rs6000/rs6000.c:8979 +-#: config/rs6000/rs6000.c:8999 ++#: config/alpha/alpha.c:5690 config/rs6000/rs6000.c:9070 ++#: config/rs6000/rs6000.c:9090 + #, c-format + msgid "invalid %%E value" + msgstr "valeur %%E invalide" + +-#: config/alpha/alpha.c:5704 config/alpha/alpha.c:5752 ++#: config/alpha/alpha.c:5715 config/alpha/alpha.c:5763 + msgid "unknown relocation unspec" + msgstr "relocalisation unspec inconnue" + +-#: config/alpha/alpha.c:5713 config/rs6000/rs6000.c:9562 ++#: config/alpha/alpha.c:5724 config/rs6000/rs6000.c:9653 + #, c-format + msgid "invalid %%xn code" + msgstr "valeur %%xn invalide" + +-#: config/alpha/alpha.c:6657 config/alpha/alpha.c:6660 config/s390/s390.c:6575 ++#: config/alpha/alpha.c:6668 config/alpha/alpha.c:6671 config/s390/s390.c:6575 + #: config/s390/s390.c:6578 + msgid "bad builtin fcode" + msgstr "construit interne erroné de fcode" +@@ -7844,7 +7854,7 @@ + msgid "Tune expected memory latency" + msgstr "Ajuster la latence mémoire attendue" + +-#: config/alpha/alpha.h:376 config/ia64/ia64.h:267 config/rs6000/sysv4.h:90 ++#: config/alpha/alpha.h:376 config/ia64/ia64.h:272 config/rs6000/sysv4.h:90 + msgid "Specify bit size of immediate TLS offsets" + msgstr "Spécifier la taille de bit des décalages immédiats TLS" + +@@ -7863,17 +7873,17 @@ + msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\"" + msgstr "l'argument de l'attribut « %s » n'est pas «ilink1» ou «ilink2 »" + +-#: config/arc/arc.c:1714 config/m32r/m32r.c:2352 ++#: config/arc/arc.c:1714 config/m32r/m32r.c:2349 + #, c-format + msgid "invalid operand to %%R code" + msgstr "opérande invalide pour le code %%R" + +-#: config/arc/arc.c:1746 config/m32r/m32r.c:2375 ++#: config/arc/arc.c:1746 config/m32r/m32r.c:2372 + #, c-format + msgid "invalid operand to %%H/%%L code" + msgstr "opérande invalide pour le code %%H/%%L" + +-#: config/arc/arc.c:1769 config/m32r/m32r.c:2446 ++#: config/arc/arc.c:1769 config/m32r/m32r.c:2443 + #, c-format + msgid "invalid operand to %%U code" + msgstr "opérande invalide pour le code %%U" +@@ -7884,7 +7894,7 @@ + msgstr "opérande invalide pour le code %%V" + + #. Unknown flag. +-#: config/arc/arc.c:1787 config/m32r/m32r.c:2473 config/sparc/sparc.c:7010 ++#: config/arc/arc.c:1787 config/m32r/m32r.c:2470 config/sparc/sparc.c:7152 + msgid "invalid operand output code" + msgstr "opérande invalide pour le code de sortie" + +@@ -7893,7 +7903,7 @@ + msgid "switch -mcpu=%s conflicts with -march= switch" + msgstr "l'option -mcpu=%s est en conflit avec l'option -march= " + +-#: config/arm/arm.c:530 config/rs6000/rs6000.c:767 config/sparc/sparc.c:424 ++#: config/arm/arm.c:530 config/rs6000/rs6000.c:785 config/sparc/sparc.c:426 + #, c-format + msgid "bad value (%s) for %s switch" + msgstr "valeur (%s) erronée pour l'option %s" +@@ -7976,13 +7986,13 @@ + msgid "unable to use '%s' for PIC register" + msgstr "incapable d'utiliser « %s » pour un registre PIC" + +-#: config/arm/arm.c:2249 config/arm/arm.c:2267 config/avr/avr.c:4558 +-#: config/c4x/c4x.c:4447 config/h8300/h8300.c:4260 config/i386/i386.c:1592 +-#: config/i386/i386.c:1638 config/ip2k/ip2k.c:3169 ++#: config/arm/arm.c:2249 config/arm/arm.c:2267 config/avr/avr.c:4523 ++#: config/c4x/c4x.c:4447 config/h8300/h8300.c:4260 config/i386/i386.c:1598 ++#: config/i386/i386.c:1644 config/ip2k/ip2k.c:3169 + #: config/m68hc11/m68hc11.c:1311 config/m68k/m68k.c:345 + #: config/mcore/mcore.c:3375 config/ns32k/ns32k.c:1064 +-#: config/rs6000/rs6000.c:14866 config/sh/sh.c:6873 config/sh/sh.c:6894 +-#: config/sh/sh.c:6929 config/stormy16/stormy16.c:2073 config/v850/v850.c:2173 ++#: config/rs6000/rs6000.c:15070 config/sh/sh.c:6874 config/sh/sh.c:6895 ++#: config/sh/sh.c:6930 config/stormy16/stormy16.c:2073 config/v850/v850.c:2173 + #, c-format + msgid "`%s' attribute only applies to functions" + msgstr "attribut « %s » s'applique seulement aux fonctions" +@@ -7997,7 +8007,7 @@ + msgstr "sélecteur doit être un immédiat" + + #. @@@ better error message +-#: config/arm/arm.c:11284 config/i386/i386.c:14317 config/i386/i386.c:14351 ++#: config/arm/arm.c:11284 config/i386/i386.c:14318 config/i386/i386.c:14352 + msgid "mask must be an immediate" + msgstr "masque doit être un immédiat" + +@@ -8133,55 +8143,55 @@ + msgid "Ignore dllimport attribute for functions" + msgstr "Ignorer l'attribut dllimport pour les fonctions" + +-#: config/avr/avr.c:514 ++#: config/avr/avr.c:511 + #, c-format + msgid "large frame pointer change (%d) with -mtiny-stack" + msgstr "grand pointeur de trames change (%d) avec -mtiny-stack" + +-#: config/avr/avr.c:1101 ++#: config/avr/avr.c:1098 + msgid "bad address, not (reg+disp):" + msgstr "adresse erronée, pas (reg+disp):" + +-#: config/avr/avr.c:1109 ++#: config/avr/avr.c:1106 + msgid "internal compiler error. Bad address:" + msgstr "erreur internal du compilateur. Adresse erronée:" + +-#: config/avr/avr.c:1122 ++#: config/avr/avr.c:1119 + msgid "internal compiler error. Unknown mode:" + msgstr "erreur internal du compilateur. Mode inconnu:" + +-#: config/avr/avr.c:1744 config/avr/avr.c:2405 ++#: config/avr/avr.c:1741 config/avr/avr.c:2402 + msgid "invalid insn:" + msgstr "insn invalide:" + +-#: config/avr/avr.c:1778 config/avr/avr.c:1861 config/avr/avr.c:1910 +-#: config/avr/avr.c:1919 config/avr/avr.c:2014 config/avr/avr.c:2183 +-#: config/avr/avr.c:2439 config/avr/avr.c:2547 ++#: config/avr/avr.c:1775 config/avr/avr.c:1858 config/avr/avr.c:1907 ++#: config/avr/avr.c:1916 config/avr/avr.c:2011 config/avr/avr.c:2180 ++#: config/avr/avr.c:2436 config/avr/avr.c:2544 + msgid "incorrect insn:" + msgstr "insn incoorect:" + +-#: config/avr/avr.c:1938 config/avr/avr.c:2099 config/avr/avr.c:2254 +-#: config/avr/avr.c:2591 ++#: config/avr/avr.c:1935 config/avr/avr.c:2096 config/avr/avr.c:2251 ++#: config/avr/avr.c:2588 + msgid "unknown move insn:" + msgstr "insn de déplacement inconnu:" + +-#: config/avr/avr.c:2814 ++#: config/avr/avr.c:2811 + msgid "bad shift insn:" + msgstr "décalage insn erroné:" + +-#: config/avr/avr.c:2927 config/avr/avr.c:3348 config/avr/avr.c:3719 ++#: config/avr/avr.c:2924 config/avr/avr.c:3345 config/avr/avr.c:3716 + msgid "internal compiler error. Incorrect shift:" + msgstr "erreur internal du compilateur. Décalage incorrect:" + +-#: config/avr/avr.c:4532 config/ip2k/ip2k.c:3144 ++#: config/avr/avr.c:4497 config/ip2k/ip2k.c:3144 + msgid "only initialized variables can be placed into program memory area" + msgstr "seules les variables initialisées peuvent être placées dans la zone mémoire du programme" + +-#: config/avr/avr.c:4626 ++#: config/avr/avr.c:4591 + msgid "only uninitialized variables can be placed in the .noinit section" + msgstr "seuls les variables non initialisées peuvent être placées dans une section .noinit" + +-#: config/avr/avr.c:4640 ++#: config/avr/avr.c:4605 + #, c-format + msgid "MCU `%s' supported for assembler only" + msgstr "MCU « %s » est supporté pour l'assembleur seulement" +@@ -9358,7 +9368,7 @@ + msgid "code model %s not supported in PIC mode" + msgstr "model de code %s n'est pas supporté en mode PIC" + +-#: config/i386/i386.c:1189 config/sparc/sparc.c:387 ++#: config/i386/i386.c:1189 config/sparc/sparc.c:389 + #, c-format + msgid "bad value (%s) for -mcmodel= switch" + msgstr "valeur erronée (%s) pour l'opton -mcmodel=" +@@ -9391,138 +9401,138 @@ + msgid "bad value (%s) for -march= switch" + msgstr "valeur erronée (%s) pour l'option -march=" + +-#: config/i386/i386.c:1260 ++#: config/i386/i386.c:1266 + #, c-format + msgid "bad value (%s) for -mtune= switch" + msgstr "valeur erronée (%s) pour l'option -mtune=" + +-#: config/i386/i386.c:1277 ++#: config/i386/i386.c:1283 + #, c-format + msgid "-mregparm=%d is not between 0 and %d" + msgstr "-mregparm=%d n'est pas entre 0 et %d" + +-#: config/i386/i386.c:1290 ++#: config/i386/i386.c:1296 + msgid "-malign-loops is obsolete, use -falign-loops" + msgstr "-malign-loops est obsolète, utiliser -falign-loops" + +-#: config/i386/i386.c:1295 config/i386/i386.c:1308 config/i386/i386.c:1321 ++#: config/i386/i386.c:1301 config/i386/i386.c:1314 config/i386/i386.c:1327 + #, c-format + msgid "-malign-loops=%d is not between 0 and %d" + msgstr "-malign-loops=%d n'est pas entre 0 et %d" + +-#: config/i386/i386.c:1303 ++#: config/i386/i386.c:1309 + msgid "-malign-jumps is obsolete, use -falign-jumps" + msgstr "-malign-jumps est obsolète, utiliser -falign-loops" + +-#: config/i386/i386.c:1316 ++#: config/i386/i386.c:1322 + msgid "-malign-functions is obsolete, use -falign-functions" + msgstr "-malign-functions est obsolète, utiliser -falign-loops" + +-#: config/i386/i386.c:1354 ++#: config/i386/i386.c:1360 + #, c-format + msgid "-mpreferred-stack-boundary=%d is not between %d and 12" + msgstr "-mpreferred-stack-boundary=%d n'est pas entre %d et 12" + +-#: config/i386/i386.c:1366 ++#: config/i386/i386.c:1372 + #, c-format + msgid "-mbranch-cost=%d is not between 0 and 5" + msgstr "-mbranch-cost=%d n'est pas entre 0 et 5" + +-#: config/i386/i386.c:1378 ++#: config/i386/i386.c:1384 + #, c-format + msgid "bad value (%s) for -mtls-dialect= switch" + msgstr "valeur erronée (%s) pour l'option -mtls-dialect" + +-#: config/i386/i386.c:1407 ++#: config/i386/i386.c:1413 + msgid "-malign-double makes no sense in the 64bit mode" + msgstr "-malign-double n'a aucun sens en mode 64 bits" + +-#: config/i386/i386.c:1409 ++#: config/i386/i386.c:1415 + msgid "-mrtd calling convention not supported in the 64bit mode" + msgstr "la conversion d'appel -mrtd n'est pas supporté en mode 64 bits" + +-#: config/i386/i386.c:1431 config/i386/i386.c:1442 ++#: config/i386/i386.c:1437 config/i386/i386.c:1448 + msgid "SSE instruction set disabled, using 387 arithmetics" + msgstr "jeu d'instructions SSE désactivé, arithmétique 387 est utilisé" + +-#: config/i386/i386.c:1447 ++#: config/i386/i386.c:1453 + msgid "387 instruction set disabled, using SSE arithmetics" + msgstr "jeu d'instructions 387 désactivé, arithmétique SSE est utilisé" + +-#: config/i386/i386.c:1454 ++#: config/i386/i386.c:1460 + #, c-format + msgid "bad value (%s) for -mfpmath= switch" + msgstr "valeur erronée (%s) pour l'option -mfpmath" + +-#: config/i386/i386.c:1602 config/i386/i386.c:1613 ++#: config/i386/i386.c:1608 config/i386/i386.c:1619 + msgid "fastcall and stdcall attributes are not compatible" + msgstr "les attributs fastcall et stdcall ne sont pas compatibles" + +-#: config/i386/i386.c:1606 config/i386/i386.c:1662 ++#: config/i386/i386.c:1612 config/i386/i386.c:1668 + msgid "fastcall and regparm attributes are not compatible" + msgstr "les attributs fastcall et regparm ne sont pas compatibles" + +-#: config/i386/i386.c:1649 ++#: config/i386/i386.c:1655 + #, c-format + msgid "`%s' attribute requires an integer constant argument" + msgstr "l'attribut « %s » requiert un argument de type constante entière" + +-#: config/i386/i386.c:1655 ++#: config/i386/i386.c:1661 + #, c-format + msgid "argument to `%s' attribute larger than %d" + msgstr "l'argument pour l'attribut « %s » est plus grand que %d" + +-#: config/i386/i386.c:2621 ++#: config/i386/i386.c:2627 + msgid "SSE vector argument without SSE enabled changes the ABI" + msgstr "l'argument vecteur SSE sans autorisation SSE modifie l'ABI " + +-#: config/i386/i386.c:2637 ++#: config/i386/i386.c:2643 + msgid "MMX vector argument without MMX enabled changes the ABI" + msgstr "l'argument vecteur SSE sans autorisation MXX modifie l'ABI " + +-#: config/i386/i386.c:2865 ++#: config/i386/i386.c:2871 + msgid "SSE vector return without SSE enabled changes the ABI" + msgstr "vecteur SSE retourné sans autorisation SSE des changements de l'ABI " + +-#: config/i386/i386.c:6840 ++#: config/i386/i386.c:6841 + msgid "invalid UNSPEC as operand" + msgstr "UNSPEC invalide comme opérande" + +-#: config/i386/i386.c:7098 ++#: config/i386/i386.c:7099 + msgid "extended registers have no high halves" + msgstr "registres étendus n'a pas de demis hauts" + +-#: config/i386/i386.c:7113 ++#: config/i386/i386.c:7114 + msgid "unsupported operand size for extended register" + msgstr "taille d'opérande non supportée pour un registre étendu" + +-#: config/i386/i386.c:7428 ++#: config/i386/i386.c:7429 + msgid "operand is neither a constant nor a condition code, invalid operand code 'c'" + msgstr "l'opérande n'est ni une constante ni du code de condition, code d'opérande invalide « c »" + +-#: config/i386/i386.c:7474 ++#: config/i386/i386.c:7475 + #, c-format + msgid "invalid operand code `%c'" + msgstr "opérande invalide pour « %c »" + +-#: config/i386/i386.c:7517 ++#: config/i386/i386.c:7518 + msgid "invalid constraints for operand" + msgstr "contrainte invalide pour l'opérande" + +-#: config/i386/i386.c:12031 ++#: config/i386/i386.c:12032 + msgid "unknown insn mode" + msgstr "mode insn inconnu" + +-#: config/i386/i386.c:14119 config/i386/i386.c:14155 ++#: config/i386/i386.c:14120 config/i386/i386.c:14156 + #, c-format + msgid "selector must be an integer constant in the range 0..%i" + msgstr "le sélecteur doit être une constante entière entre les bornes 0..%i" + +-#: config/i386/i386.c:14383 ++#: config/i386/i386.c:14384 + msgid "shift must be an immediate" + msgstr "décalage doit être un immédiat" + +-#: config/i386/i386.c:15406 ++#: config/i386/i386.c:15407 + #, c-format + msgid "`%s' incompatible attribute ignored" + msgstr "attribut « %s » incompatible ignoré" +@@ -9811,7 +9821,7 @@ + #. variable, type `char *', is set to the variable part of the given + #. option if the fixed part matches. The actual option name is made + #. by appending `-m' to the specified name. +-#: config/i386/i386.h:461 config/ia64/ia64.h:269 config/rs6000/rs6000.h:449 ++#: config/i386/i386.h:461 config/ia64/ia64.h:274 config/rs6000/rs6000.h:449 + #: config/s390/s390.h:146 config/sparc/sparc.h:656 + msgid "Schedule code for given CPU" + msgstr "Ordonnancer le code pour le processeur donné" +@@ -9929,7 +9939,7 @@ + msgid "iC2.0 and iC3.0 are incompatible - using iC3.0" + msgstr "iC2.0 et iC3.0 sont incompatibles - utilise iC3.0" + +-#: config/i960/i960.c:1456 config/m68k/m68k.c:600 config/rs6000/rs6000.c:11597 ++#: config/i960/i960.c:1456 config/m68k/m68k.c:600 config/rs6000/rs6000.c:11690 + msgid "stack limit expression is not supported" + msgstr "expression limitant la pile n'est pas supportée" + +@@ -10086,41 +10096,41 @@ + msgid "%Jaddress area attribute cannot be specified for functions" + msgstr "%Jl'attribut de la zone d'adresse ne peut pas être spécifié pour des fonctiones" + +-#: config/ia64/ia64.c:4308 ++#: config/ia64/ia64.c:4314 + msgid "ia64_print_operand: unknown code" + msgstr "ia64_print_operand: code inconnu" + +-#: config/ia64/ia64.c:4648 ++#: config/ia64/ia64.c:4654 + msgid "value of -mfixed-range must have form REG1-REG2" + msgstr "valeur de -mfixed-range doit avoir la forme REG1-REG2" + +-#: config/ia64/ia64.c:4675 ++#: config/ia64/ia64.c:4681 + #, c-format + msgid "%s-%s is an empty range" + msgstr "%s-%s est une étendue vide" + +-#: config/ia64/ia64.c:4723 ++#: config/ia64/ia64.c:4729 + msgid "cannot optimize floating point division for both latency and throughput" + msgstr "ne peut optimiser la division en point flottant à la fois pour la latence et le débit" + +-#: config/ia64/ia64.c:4729 ++#: config/ia64/ia64.c:4735 + msgid "cannot optimize integer division for both latency and throughput" + msgstr "ne peut optimiser la division entière à la fois pour la latence et le débit" + +-#: config/ia64/ia64.c:4735 ++#: config/ia64/ia64.c:4741 + msgid "cannot optimize square root for both latency and throughput" + msgstr "ne peut optimiser la racine carrée à la fois pour la latence et le débit" + +-#: config/ia64/ia64.c:4741 ++#: config/ia64/ia64.c:4747 + msgid "not yet implemented: latency-optimized inline square root" + msgstr "pas encore implanté: racine carrée enligne optimisée pour la latence" + +-#: config/ia64/ia64.c:4753 ++#: config/ia64/ia64.c:4759 + #, c-format + msgid "bad value (%s) for -mtls-size= switch" + msgstr "valeur erronée (%s) pour l'option -mtls-size" + +-#: config/ia64/ia64.c:4769 ++#: config/ia64/ia64.c:4775 + #, c-format + msgid "bad value (%s) for -tune= switch" + msgstr "valeur erronée (%s) pour l'option -tune=" +@@ -10128,107 +10138,107 @@ + #. This macro defines names of command options to set and clear bits in + #. `target_flags'. Its definition is an initializer with a subgrouping for + #. each command option. +-#: config/ia64/ia64.h:172 ++#: config/ia64/ia64.h:177 + msgid "Generate big endian code" + msgstr "Générer du code de système à octets de poids fort" + +-#: config/ia64/ia64.h:174 config/mcore/mcore.h:154 ++#: config/ia64/ia64.h:179 config/mcore/mcore.h:154 + msgid "Generate little endian code" + msgstr "Générer du code de système à octets de poids faible" + +-#: config/ia64/ia64.h:176 ++#: config/ia64/ia64.h:181 + msgid "Generate code for GNU as" + msgstr "Générer du code pour GNU tel que" + +-#: config/ia64/ia64.h:178 ++#: config/ia64/ia64.h:183 + msgid "Generate code for Intel as" + msgstr "Générer du code pour Intel tel que" + +-#: config/ia64/ia64.h:180 ++#: config/ia64/ia64.h:185 + msgid "Generate code for GNU ld" + msgstr "Générer du code pour GNU ld" + +-#: config/ia64/ia64.h:182 ++#: config/ia64/ia64.h:187 + msgid "Generate code for Intel ld" + msgstr "Générer du code pour Intel ld" + +-#: config/ia64/ia64.h:184 ++#: config/ia64/ia64.h:189 + msgid "Generate code without GP reg" + msgstr "Générer du code sans registre GP" + +-#: config/ia64/ia64.h:186 ++#: config/ia64/ia64.h:191 + msgid "Emit stop bits before and after volatile extended asms" + msgstr "Produire de stop bits avant et après les asms étendus" + +-#: config/ia64/ia64.h:188 ++#: config/ia64/ia64.h:193 + msgid "Don't emit stop bits before and after volatile extended asms" + msgstr "Ne pas produire de stop bits avant et après les asms étendus" + +-#: config/ia64/ia64.h:190 ++#: config/ia64/ia64.h:195 + msgid "Emit code for Itanium (TM) processor B step" + msgstr "Produire du code pour le processeur B Itanium (TM)" + +-#: config/ia64/ia64.h:192 ++#: config/ia64/ia64.h:197 + msgid "Use in/loc/out register names" + msgstr "Utilise les noms des registres in/loc/out " + +-#: config/ia64/ia64.h:194 ++#: config/ia64/ia64.h:199 + msgid "Disable use of sdata/scommon/sbss" + msgstr "Interdire l'utilisation de sdata/scommon/sbss" + +-#: config/ia64/ia64.h:196 ++#: config/ia64/ia64.h:201 + msgid "Enable use of sdata/scommon/sbss" + msgstr "Autoriser l'utilisation de sdata/scommon/sbss" + +-#: config/ia64/ia64.h:198 ++#: config/ia64/ia64.h:203 + msgid "gp is constant (but save/restore gp on indirect calls)" + msgstr "gp est une constante (mais save/restore gp fait par appels indirects)" + +-#: config/ia64/ia64.h:200 ++#: config/ia64/ia64.h:205 + msgid "Generate self-relocatable code" + msgstr "Générer du code auto-relocalisable" + +-#: config/ia64/ia64.h:202 ++#: config/ia64/ia64.h:207 + msgid "Generate inline floating point division, optimize for latency" + msgstr "Générer la division enligne en point flottant, optimiser pour la latence" + +-#: config/ia64/ia64.h:204 ++#: config/ia64/ia64.h:209 + msgid "Generate inline floating point division, optimize for throughput" + msgstr "Générer la division en point flottant enligne, optimiser pour le débit" + +-#: config/ia64/ia64.h:206 ++#: config/ia64/ia64.h:211 + msgid "Generate inline integer division, optimize for latency" + msgstr "Générer la division entière enligne, optimiser pour la latence" + +-#: config/ia64/ia64.h:208 ++#: config/ia64/ia64.h:213 + msgid "Generate inline integer division, optimize for throughput" + msgstr "Générer la divisions entière enligne, optimiser pour le débit" + +-#: config/ia64/ia64.h:210 ++#: config/ia64/ia64.h:215 + msgid "Generate inline square root, optimize for latency" + msgstr "Générer la racine carrée enligne, optimiser pour la latence" + +-#: config/ia64/ia64.h:212 ++#: config/ia64/ia64.h:217 + msgid "Generate inline square root, optimize for throughput" + msgstr "Générer la racine carrée enligne, optimiser pour le débit" + +-#: config/ia64/ia64.h:214 ++#: config/ia64/ia64.h:219 + msgid "Enable Dwarf 2 line debug info via GNU as" + msgstr "Autoriser les infos de lignes de mise au point Dwarf 2 via GNU tel que" + +-#: config/ia64/ia64.h:216 ++#: config/ia64/ia64.h:221 + msgid "Disable Dwarf 2 line debug info via GNU as" + msgstr "Interdire les infos de lignes de mise au point Dwarf 2 via GNU tel que" + +-#: config/ia64/ia64.h:218 ++#: config/ia64/ia64.h:223 + msgid "Enable earlier placing stop bits for better scheduling" + msgstr "Autoriser l'insertion antérieure de stop bits pour un meilleur ordonnancement" + +-#: config/ia64/ia64.h:220 ++#: config/ia64/ia64.h:225 + msgid "Disable earlier placing stop bits" + msgstr "Interdire l'installation antérieure de bits d'arrêt" + +-#: config/ia64/ia64.h:265 ++#: config/ia64/ia64.h:270 + msgid "Specify range of registers to make fixed" + msgstr "spécifier l'étendue des registres pour la rendre fixe" + +@@ -10265,7 +10275,7 @@ + msgid "PRINT_OPERAND: Unknown punctuation '%c'" + msgstr "PRINT_OPERAND: ponctuation « %c » inconnue" + +-#: config/iq2000/iq2000.c:3478 config/mips/mips.c:5464 ++#: config/iq2000/iq2000.c:3478 config/mips/mips.c:5463 + #: config/xtensa/xtensa.c:1950 + msgid "PRINT_OPERAND null pointer" + msgstr "PRINT_OPERAND pointeur nul" +@@ -10275,12 +10285,12 @@ + msgid "invalid %%P operand" + msgstr "opérande %%P invalide" + +-#: config/iq2000/iq2000.c:3555 config/rs6000/rs6000.c:9178 ++#: config/iq2000/iq2000.c:3555 config/rs6000/rs6000.c:9269 + #, c-format + msgid "invalid %%p value" + msgstr "valeur %%p invalide" + +-#: config/iq2000/iq2000.c:3619 config/mips/mips.c:5594 ++#: config/iq2000/iq2000.c:3619 config/mips/mips.c:5593 + #, c-format + msgid "invalid use of %%d, %%x, or %%X" + msgstr "utilisation invalide de %%d, %%x, ou %%X" +@@ -10336,48 +10346,48 @@ + msgid "bad value (%s) for -flush-trap=n (0= found without a %%< in assembler pattern" + msgstr "erreur interne: %%> trouvé sans %%< dans le patron d'assemblage" + +-#: config/mips/mips.c:5441 ++#: config/mips/mips.c:5440 + #, c-format + msgid "internal error: %%} found without a %%{ in assembler pattern" + msgstr "erreur interne: %%} trouvé sans %%{ dans le patron d'assemblage" + +-#: config/mips/mips.c:5455 ++#: config/mips/mips.c:5454 + #, c-format + msgid "PRINT_OPERAND: unknown punctuation '%c'" + msgstr "PRINT_OPERAND: ponctuation « %c » inconnue" + +-#: config/mips/mips.c:5484 ++#: config/mips/mips.c:5483 + #, c-format + msgid "PRINT_OPERAND, invalid insn for %%C" + msgstr "PRINT_OPERAND insn invalide pour %%C" + +-#: config/mips/mips.c:5501 ++#: config/mips/mips.c:5500 + #, c-format + msgid "PRINT_OPERAND, invalid insn for %%N" + msgstr "PRINT_OPERAND insn invalide pour %%N" + +-#: config/mips/mips.c:5510 ++#: config/mips/mips.c:5509 + #, c-format + msgid "PRINT_OPERAND, invalid insn for %%F" + msgstr "PRINT_OPERAND insn invalide pour %%F" + +-#: config/mips/mips.c:5519 ++#: config/mips/mips.c:5518 + #, c-format + msgid "PRINT_OPERAND, invalid insn for %%W" + msgstr "PRINT_OPERAND insn invalide pour %%W" + +-#: config/mips/mips.c:5625 ++#: config/mips/mips.c:5624 + msgid "PRINT_OPERAND, invalid operand for relocation" + msgstr "PRINT_OPERAND, opérande invalide pour la relocalisation" + +-#: config/mips/mips.c:8310 ++#: config/mips/mips.c:8324 + #, c-format + msgid "can not handle inconsistent calls to `%s'" + msgstr "ne peut traiter des appels inconsistents à « %s »" + +-#: config/mips/mips.c:9316 ++#: config/mips/mips.c:9333 + msgid "the cpu name must be lower case" + msgstr "le nom du cpu doit être en minuscules" + +-#: config/mips/mips.c:9338 ++#: config/mips/mips.c:9355 + #, c-format + msgid "bad value (%s) for %s" + msgstr "valeur (%s) erronée pour %s" + +-#: config/mips/mips.c:9607 ++#: config/mips/mips.c:9624 + #, c-format + msgid "can't rewind temp file: %m" + msgstr "ne peut rembobiner le fichier temporaire: %m" + +-#: config/mips/mips.c:9611 ++#: config/mips/mips.c:9628 + #, c-format + msgid "can't write to output file: %m" + msgstr "ne peut écrire dans le fichier de sortie: %m" + +-#: config/mips/mips.c:9614 ++#: config/mips/mips.c:9631 + #, c-format + msgid "can't read from temp file: %m" + msgstr "ne peut lire du fichier temporaire: %m" + +-#: config/mips/mips.c:9617 ++#: config/mips/mips.c:9634 + #, c-format + msgid "can't close temp file: %m" + msgstr "ne peut fermer le fichier temporaire: %m" +@@ -11159,7 +11169,7 @@ + + #. Output assembler code to FILE to increment profiler label # LABELNO + #. for profiling a function entry. +-#: config/mips/mips.h:2418 ++#: config/mips/mips.h:2430 + msgid "mips16 function profiling" + msgstr "profilage de fonction mips16" + +@@ -11715,167 +11725,176 @@ + msgid "junk at end of #pragma longcall" + msgstr "rebut à la fin de #pragma longcall" + +-#: config/rs6000/rs6000.c:791 ++#: config/rs6000/rs6000.c:809 + msgid "-mmultiple is not supported on little endian systems" + msgstr "-mmultiple n'est pas supporté sur des système à octets de poids faible" + +-#: config/rs6000/rs6000.c:798 ++#: config/rs6000/rs6000.c:816 + msgid "-mstring is not supported on little endian systems" + msgstr "-mstring n'est pas supporté sur des système à octets de poids faible" + +-#: config/rs6000/rs6000.c:812 ++#: config/rs6000/rs6000.c:830 + #, c-format + msgid "unknown -mdebug-%s switch" + msgstr "option -mdebug-%s inconnue" + +-#: config/rs6000/rs6000.c:824 ++#: config/rs6000/rs6000.c:842 + #, c-format + msgid "unknown -mtraceback arg `%s'; expecting `full', `partial' or `none'" + msgstr "argument « %s » inconnu de l'option -mtraceback; attendu « full », « partial » ou « none »" + +-#: config/rs6000/rs6000.c:835 ++#: config/rs6000/rs6000.c:853 + #, c-format + msgid "Unknown switch -mlong-double-%s" + msgstr "option -mlong-double-%s inconnue" + +-#: config/rs6000/rs6000.c:876 ++#: config/rs6000/rs6000.c:894 + msgid "AltiVec and E500 instructions cannot coexist" + msgstr "Les instructions AltiVec et E500 ne peuvent coexister." + +-#: config/rs6000/rs6000.c:1029 ++#: config/rs6000/rs6000.c:1058 + #, c-format + msgid "unknown -m%s= option specified: '%s'" + msgstr "option -m%s= inconnue spécifiée: « %s »" + +-#: config/rs6000/rs6000.c:1050 ++#: config/rs6000/rs6000.c:1079 + #, c-format + msgid "not configured for ABI: '%s'" + msgstr "pas configuré pour ABI: « %s »" + +-#: config/rs6000/rs6000.c:1056 ++#: config/rs6000/rs6000.c:1085 + #, c-format + msgid "unknown ABI specified: '%s'" + msgstr "ABI spécifié inconnu: « %s »" + +-#: config/rs6000/rs6000.c:1070 ++#: config/rs6000/rs6000.c:1099 + #, c-format + msgid "unknown -malign-XXXXX option specified: '%s'" + msgstr "option -malign-XXXXX inconnue spécifiée: « %s »" + +-#: config/rs6000/rs6000.c:3972 ++#: config/rs6000/rs6000.c:4001 + msgid "Cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them." + msgstr "Ne peut retourner la valeur dans le registre de vecteur parce que les instructions altivec sont désactivées, utiliser -maltivec pour les autoriser" + +-#: config/rs6000/rs6000.c:4095 ++#: config/rs6000/rs6000.c:4124 + msgid "Cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them." + msgstr "Ne peut relayer l'argument dans le registre de vecteur parce que les instructions altivec sont désactivées, utiliser -maltivec pour les autoriser" + +-#: config/rs6000/rs6000.c:5599 ++#: config/rs6000/rs6000.c:5604 + msgid "argument 1 must be a 5-bit signed literal" + msgstr "argument 1 doit être un litéral signé de 5 bits" + +-#: config/rs6000/rs6000.c:5701 config/rs6000/rs6000.c:6357 ++#: config/rs6000/rs6000.c:5707 config/rs6000/rs6000.c:6374 + msgid "argument 2 must be a 5-bit unsigned literal" + msgstr "argument 2 doit être un litéral non signé de 5 bits" + +-#: config/rs6000/rs6000.c:5741 ++#: config/rs6000/rs6000.c:5747 + msgid "argument 1 of __builtin_altivec_predicate must be a constant" + msgstr "argument 1 de « __builtin_altivec_predicate » doit être une constante" + +-#: config/rs6000/rs6000.c:5795 ++#: config/rs6000/rs6000.c:5801 + msgid "argument 1 of __builtin_altivec_predicate is out of range" + msgstr "argument 1 de « __builtin_altivec_predicate » est hors limite" + +-#: config/rs6000/rs6000.c:5956 ++#: config/rs6000/rs6000.c:5962 + msgid "argument 3 must be a 4-bit unsigned literal" + msgstr "argument 3 doit être un litéral non signé de 4 bits" + +-#: config/rs6000/rs6000.c:6126 ++#: config/rs6000/rs6000.c:6134 + #, c-format + msgid "argument to `%s' must be a 2-bit unsigned literal" + msgstr "argument de « %s » doit être un litéral non signé de 2 bits" + +-#: config/rs6000/rs6000.c:6239 ++#: config/rs6000/rs6000.c:6247 + msgid "argument to dss must be a 2-bit unsigned literal" + msgstr "argument de dss doit être un litéral non signé de 2 bits" + +-#: config/rs6000/rs6000.c:6477 ++#: config/rs6000/rs6000.c:6261 ++#, c-format ++msgid "invalid parameter combination for `%s' AltiVec intrinsic" ++msgstr "combinaison invalide de paramètres pour l'intrinsèque Altivec « %s »" ++ ++#: config/rs6000/rs6000.c:6494 + msgid "argument 1 of __builtin_spe_predicate must be a constant" + msgstr "argument 1 de « __builtin_spe_predicate » doit être une constante" + +-#: config/rs6000/rs6000.c:6550 ++#: config/rs6000/rs6000.c:6567 + msgid "argument 1 of __builtin_spe_predicate is out of range" + msgstr "argument 1 de « __builtin_spe_predicate » est hors limite" + +-#: config/rs6000/rs6000.c:9008 ++#: config/rs6000/rs6000.c:9099 + #, c-format + msgid "invalid %%f value" + msgstr "valeur %%f invalide" + +-#: config/rs6000/rs6000.c:9017 ++#: config/rs6000/rs6000.c:9108 + #, c-format + msgid "invalid %%F value" + msgstr "valeur %%F invalide" + +-#: config/rs6000/rs6000.c:9026 ++#: config/rs6000/rs6000.c:9117 + #, c-format + msgid "invalid %%G value" + msgstr "valeur %%G invalide" + +-#: config/rs6000/rs6000.c:9061 ++#: config/rs6000/rs6000.c:9152 + #, c-format + msgid "invalid %%j code" + msgstr "valeur %%j invalide" + +-#: config/rs6000/rs6000.c:9071 ++#: config/rs6000/rs6000.c:9162 + #, c-format + msgid "invalid %%J code" + msgstr "valeur %%J invalide" + +-#: config/rs6000/rs6000.c:9081 ++#: config/rs6000/rs6000.c:9172 + #, c-format + msgid "invalid %%k value" + msgstr "valeur %%k invalide" + +-#: config/rs6000/rs6000.c:9101 config/xtensa/xtensa.c:2000 ++#: config/rs6000/rs6000.c:9192 config/xtensa/xtensa.c:2000 + #, c-format + msgid "invalid %%K value" + msgstr "valeur %%K invalide" + +-#: config/rs6000/rs6000.c:9168 ++#: config/rs6000/rs6000.c:9259 + #, c-format + msgid "invalid %%O value" + msgstr "valeur %%O invalide" + +-#: config/rs6000/rs6000.c:9215 ++#: config/rs6000/rs6000.c:9306 + #, c-format + msgid "invalid %%q value" + msgstr "valeur %%q invalide" + +-#: config/rs6000/rs6000.c:9259 ++#: config/rs6000/rs6000.c:9350 + #, c-format + msgid "invalid %%S value" + msgstr "valeur %%S invalide" + +-#: config/rs6000/rs6000.c:9301 ++#: config/rs6000/rs6000.c:9392 + #, c-format + msgid "invalid %%T value" + msgstr "valeur %%T invalide" + +-#: config/rs6000/rs6000.c:9311 ++#: config/rs6000/rs6000.c:9402 + #, c-format + msgid "invalid %%u value" + msgstr "valeur %%u invalide" + +-#: config/rs6000/rs6000.c:9320 config/xtensa/xtensa.c:1970 ++#: config/rs6000/rs6000.c:9411 config/xtensa/xtensa.c:1970 + #, c-format + msgid "invalid %%v value" + msgstr "valeur %%v invalide" + +-#: config/rs6000/rs6000.c:13815 ++#: config/rs6000/rs6000.c:13913 + msgid "no profiling of 64-bit code for this ABI" + msgstr "pas de profilage du code de 64 bits pour cet ABI" + ++#: config/rs6000/rs6000.c:14986 ++msgid "use of 'long' in AltiVec types is deprecated; use 'int'" ++msgstr "utilisation du type 'long' Altivec est obsolète; utilisez 'int'" ++ + #: config/rs6000/aix.h:184 config/rs6000/beos.h:32 + msgid "Always pass floating-point arguments in memory" + msgstr "Toujours passer des arguments en virgule flottante en mémoire" +@@ -12120,18 +12139,22 @@ + msgstr "Éviter toutes les limites sur les instructions d'appel" + + #: config/rs6000/rs6000.h:468 ++msgid "Warn about deprecated 'vector long ...' AltiVec type usage" ++msgstr "Avertir à propos de l'usage obsolète des types AltiVec 'vector long ...' " ++ ++#: config/rs6000/rs6000.h:471 + msgid "Determine which dependences between insns are considered costly" + msgstr "Déterminer laquelle des dépendances entre les insns qui sont considérées coûteuses" + +-#: config/rs6000/rs6000.h:470 ++#: config/rs6000/rs6000.h:473 + msgid "Specify which post scheduling nop insertion scheme to apply" + msgstr "Spécifier lequel schème de post ordonnancement d'insertion de NOP doit être appliqué" + +-#: config/rs6000/rs6000.h:472 ++#: config/rs6000/rs6000.h:475 + msgid "Specify alignment of structure fields default/natural" + msgstr "Spécifier l'alignement des champs de structure par défaut/naturel" + +-#: config/rs6000/rs6000.h:474 ++#: config/rs6000/rs6000.h:477 + msgid "Specify scheduling priority for dispatch slot restricted insns" + msgstr "Spécifier la priorité d'ordonnancement pour la répartition de fentes insns restreintes" + +@@ -12147,7 +12170,7 @@ + #. Number of bytes into the frame return addresses can be found. See + #. rs6000_stack_info in rs6000.c for more information on how the different + #. abi's store the return address. +-#: config/rs6000/rs6000.h:1923 ++#: config/rs6000/rs6000.h:1932 + msgid "RETURN_ADDRESS_OFFSET not supported" + msgstr "RETURN_ADDRESS_OFFSET n'est pas supporté" + +@@ -12414,28 +12437,28 @@ + msgid "enable fused multiply/add instructions" + msgstr "autoriser les instructions fusionnés de multiplication/addition" + +-#: config/sh/sh.c:5977 ++#: config/sh/sh.c:5978 + msgid "__builtin_saveregs not supported by this subtarget" + msgstr "__builtin_saveregs n'est pas supporté par la sous-cible" + +-#: config/sh/sh.c:6879 ++#: config/sh/sh.c:6880 + msgid "attribute interrupt_handler is not compatible with -m5-compact" + msgstr "attribut interrupt_handler n'est pas compatible avec -m5-compact" + + #. The sp_switch attribute only has meaning for interrupt functions. +-#: config/sh/sh.c:6901 config/sh/sh.c:6936 ++#: config/sh/sh.c:6902 config/sh/sh.c:6937 + #, c-format + msgid "`%s' attribute only applies to interrupt functions" + msgstr "attribut « %s » s'applique seulement à des fonctions d'interruption" + + #. The argument must be a constant string. +-#: config/sh/sh.c:6908 ++#: config/sh/sh.c:6909 + #, c-format + msgid "`%s' attribute argument not a string constant" + msgstr "l'attribut « %s » de l'argument n'est pas une contante chaîne" + + #. The argument must be a constant integer. +-#: config/sh/sh.c:6943 ++#: config/sh/sh.c:6944 + #, c-format + msgid "`%s' attribute argument not an integer constant" + msgstr "l'attribut « %s » de l'argument n'est pas une contante entière" +@@ -12447,69 +12470,69 @@ + msgid "Profiling is not supported on this target." + msgstr "le profilage n'est pas supporté sur cette cible" + +-#: config/sparc/sparc.c:360 ++#: config/sparc/sparc.c:362 + #, c-format + msgid "%s is not supported by this configuration" + msgstr "%s n'est pas supporté par cette configuration" + +-#: config/sparc/sparc.c:367 ++#: config/sparc/sparc.c:369 + msgid "-mlong-double-64 not allowed with -m64" + msgstr "-mlong-double-64 n'est pas permis avec -m64" + +-#: config/sparc/sparc.c:392 ++#: config/sparc/sparc.c:394 + msgid "-mcmodel= is not supported on 32 bit systems" + msgstr "-mcmodel= n'est pas supporté sur les systèmes de 32 bits" + +-#: config/sparc/sparc.c:6818 config/sparc/sparc.c:6824 ++#: config/sparc/sparc.c:6960 config/sparc/sparc.c:6966 + #, c-format + msgid "invalid %%Y operand" + msgstr "opérande %%Y invalide" + +-#: config/sparc/sparc.c:6894 ++#: config/sparc/sparc.c:7036 + #, c-format + msgid "invalid %%A operand" + msgstr "opérande %%A invalide" + +-#: config/sparc/sparc.c:6904 ++#: config/sparc/sparc.c:7046 + #, c-format + msgid "invalid %%B operand" + msgstr "Opérande %%B invalide" + +-#: config/sparc/sparc.c:6943 ++#: config/sparc/sparc.c:7085 + #, c-format + msgid "invalid %%c operand" + msgstr "opérande %%c invalide" + +-#: config/sparc/sparc.c:6944 ++#: config/sparc/sparc.c:7086 + #, c-format + msgid "invalid %%C operand" + msgstr "opérande %%C invalide" + +-#: config/sparc/sparc.c:6965 ++#: config/sparc/sparc.c:7107 + #, c-format + msgid "invalid %%d operand" + msgstr "opérande %%d invalide" + +-#: config/sparc/sparc.c:6966 ++#: config/sparc/sparc.c:7108 + #, c-format + msgid "invalid %%D operand" + msgstr "opérande %%D invalide" + +-#: config/sparc/sparc.c:6982 ++#: config/sparc/sparc.c:7124 + #, c-format + msgid "invalid %%f operand" + msgstr "opérande %%f invalide" + +-#: config/sparc/sparc.c:6996 ++#: config/sparc/sparc.c:7138 + #, c-format + msgid "invalid %%s operand" + msgstr "opérande %%s invalide" + +-#: config/sparc/sparc.c:7050 ++#: config/sparc/sparc.c:7192 + msgid "long long constant not a valid immediate operand" + msgstr "constante long long n'est pas une opérande immédiate valide" + +-#: config/sparc/sparc.c:7053 ++#: config/sparc/sparc.c:7195 + msgid "floating point constant not a valid immediate operand" + msgstr "constante en virgule flottante n'est pas une opérande immédiate valide" + +@@ -12992,259 +13015,259 @@ + msgid "`-gnat' misspelled as `-gant'" + msgstr "« -gnat » mal épellé comme « -gant »" + +-#: cp/call.c:217 ++#: cp/call.c:219 + msgid "unable to call pointer to member function here" + msgstr "incapable de faire l'appel avec le pointeur vers la fonction membre ici" + +-#: cp/call.c:2228 ++#: cp/call.c:2238 + msgid "%s %D(%T, %T, %T) " + msgstr "%s %D(%T, %T, %T) " + +-#: cp/call.c:2233 ++#: cp/call.c:2243 + msgid "%s %D(%T, %T) " + msgstr "%s %D(%T, %T) " + +-#: cp/call.c:2237 ++#: cp/call.c:2247 + msgid "%s %D(%T) " + msgstr "%s %D(%T) " + +-#: cp/call.c:2241 ++#: cp/call.c:2251 + msgid "%s %T " + msgstr "%s %T " + +-#: cp/call.c:2243 ++#: cp/call.c:2253 + msgid "%J%s %+#D " + msgstr "%J%s %+#D " + +-#: cp/call.c:2245 ++#: cp/call.c:2255 + msgid "%J%s %+#D" + msgstr "%J%s %+#D" + +-#: cp/call.c:2280 ++#: cp/call.c:2290 + msgid "candidates are:" + msgstr "candidats sont:" + +-#: cp/call.c:2468 ++#: cp/call.c:2478 + msgid "conversion from `%T' to `%T' is ambiguous" + msgstr "conversion de « %T » vers « %T » est ambiguë" + +-#: cp/call.c:2619 cp/call.c:2663 ++#: cp/call.c:2629 cp/call.c:2673 + msgid "no matching function for call to `%D(%A)'" + msgstr "pas de fonction concordante pour l'appel de « %D(%A) »" + +-#: cp/call.c:2622 cp/call.c:2666 ++#: cp/call.c:2632 cp/call.c:2676 + msgid "call of overloaded `%D(%A)' is ambiguous" + msgstr "appel du surchargé « %D(%A) » est ambiguë" + + #. It's no good looking for an overloaded operator() on a + #. pointer-to-member-function. +-#: cp/call.c:2732 ++#: cp/call.c:2742 + #, c-format + msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*" + msgstr "pointeur vers fonction membre %E ne peut être appelé sans un objet; utilisez .* ou ->*" + +-#: cp/call.c:2798 ++#: cp/call.c:2808 + msgid "no match for call to `(%T) (%A)'" + msgstr "pas de concordance pour l'appel de « (%T) (%A) »" + +-#: cp/call.c:2806 ++#: cp/call.c:2816 + msgid "call of `(%T) (%A)' is ambiguous" + msgstr "appel de « (%T) (%A) » est ambiguë" + +-#: cp/call.c:2839 ++#: cp/call.c:2849 + #, c-format + msgid "%s for ternary 'operator?:' in '%E ? %E : %E'" + msgstr "%s pour « operator?: » ternaire dans « %E ? %E : %E »" + +-#: cp/call.c:2845 ++#: cp/call.c:2855 + #, c-format + msgid "%s for 'operator%s' in '%E%s'" + msgstr "%s pour « operator%s » dans « %E%s »" + +-#: cp/call.c:2849 ++#: cp/call.c:2859 + #, c-format + msgid "%s for 'operator[]' in '%E[%E]'" + msgstr "%s pour « operator[] » dans « %E[%E] »" + +-#: cp/call.c:2854 ++#: cp/call.c:2864 + #, c-format + msgid "%s for '%s' in '%s %E'" + msgstr "%s pour « %s » dans « %s %E »" + +-#: cp/call.c:2859 ++#: cp/call.c:2869 + #, c-format + msgid "%s for 'operator%s' in '%E %s %E'" + msgstr "%s pour « operator%s » dans « %E %s %E »" + +-#: cp/call.c:2862 ++#: cp/call.c:2872 + #, c-format + msgid "%s for 'operator%s' in '%s%E'" + msgstr "%s pour « operator%s » dans « %s%E »" + +-#: cp/call.c:2951 ++#: cp/call.c:2961 + msgid "ISO C++ forbids omitting the middle term of a ?: expression" + msgstr "ISO C++ interdit l'omission du terme milieu de l'expression ?:" + +-#: cp/call.c:3028 ++#: cp/call.c:3038 + #, c-format + msgid "`%E' has type `void' and is not a throw-expression" + msgstr "« %E » a le type « void » et n'est pas une expression de retour de type throw" + +-#: cp/call.c:3061 cp/call.c:3265 ++#: cp/call.c:3071 cp/call.c:3275 + msgid "operands to ?: have different types" + msgstr "opérande vers ?: a différents types" + +-#: cp/call.c:3219 ++#: cp/call.c:3229 + msgid "enumeral mismatch in conditional expression: `%T' vs `%T'" + msgstr "non concordance de type énuméré dans l'expression conditionnelle: « %T » vs « %T »" + +-#: cp/call.c:3226 ++#: cp/call.c:3236 + msgid "enumeral and non-enumeral type in conditional expression" + msgstr "type énuméré et non énuméré dans l'expression conditionnelle" + +-#: cp/call.c:3511 ++#: cp/call.c:3521 + msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead" + msgstr "pas « %D(int) » déclaré pour le postfixe « %s », essaie avec l'oprateur préfixe à la place" + +-#: cp/call.c:3560 ++#: cp/call.c:3570 + msgid "using synthesized `%#D' for copy assignment" + msgstr "utilisation du synthétisé « %#D » pour l'affectaion par copie" + +-#: cp/call.c:3562 ++#: cp/call.c:3572 + msgid " where cfront would use `%#D'" + msgstr " où cfront utiliserait « %#D »" + +-#: cp/call.c:3585 ++#: cp/call.c:3595 + msgid "comparison between `%#T' and `%#T'" + msgstr "comparaison entre « %#T » et « %#T »" + +-#: cp/call.c:3831 ++#: cp/call.c:3841 + msgid "no suitable `operator %s' for `%T'" + msgstr "pas « operator %s » adapté pour « %T »" + +-#: cp/call.c:3848 ++#: cp/call.c:3858 + msgid "`%+#D' is private" + msgstr "« %+#D » est privé" + +-#: cp/call.c:3850 ++#: cp/call.c:3860 + msgid "`%+#D' is protected" + msgstr "« %+#D » est protégé" + +-#: cp/call.c:3852 ++#: cp/call.c:3862 + msgid "`%+#D' is inaccessible" + msgstr "« %+#D » et inaccessible" + +-#: cp/call.c:3853 ++#: cp/call.c:3863 + msgid "within this context" + msgstr "à l'intérieur du contexte" + +-#: cp/call.c:3923 ++#: cp/call.c:3947 + msgid "invalid conversion from `%T' to `%T'" + msgstr "conversion invalide de « %T » vers « %T »" + +-#: cp/call.c:3925 ++#: cp/call.c:3949 + msgid " initializing argument %P of `%D'" + msgstr " initialisation de l'argument %P de « %D »" + +-#: cp/call.c:4079 ++#: cp/call.c:4094 + msgid "cannot bind bitfield `%E' to `%T'" + msgstr "ne peut lier le champ de bits « %E » avec « %T »" + +-#: cp/call.c:4082 ++#: cp/call.c:4097 + msgid "cannot bind packed field `%E' to `%T'" + msgstr "ne peut lier le champs empaqueté « %E » avec « %T »" + +-#: cp/call.c:4085 ++#: cp/call.c:4100 + msgid "cannot bind rvalue `%E' to `%T'" + msgstr "ne peut lier la rvalue « %E » avec « %T »" + +-#: cp/call.c:4170 ++#: cp/call.c:4185 + msgid "cannot pass objects of non-POD type `%#T' through `...'; call will abort at runtime" + msgstr "ne peut recevoir d'objets de type non POD « %#T » through « ... »; l'appel échouera lors de l'éxecution" + + #. Undefined behavior [expr.call] 5.2.2/7. +-#: cp/call.c:4196 ++#: cp/call.c:4211 + msgid "cannot receive objects of non-POD type `%#T' through `...'; call will abort at runtime" + msgstr "ne peut recevoir d'objets de type non POD « %#T » through « ... »; l'appel échouera lors de l'éxecution" + +-#: cp/call.c:4240 ++#: cp/call.c:4255 + msgid "the default argument for parameter %d of `%D' has not yet been parsed" + msgstr "argument par défaut pour le paramètre %d de « %D » n'a pas encore été analysé" + +-#: cp/call.c:4437 ++#: cp/call.c:4452 + msgid "passing `%T' as `this' argument of `%#D' discards qualifiers" + msgstr "passant « %T» comme «cet» argument de « %#D » écarte les qualificateurs" + +-#: cp/call.c:4456 ++#: cp/call.c:4471 + msgid "`%T' is not an accessible base of `%T'" + msgstr "« %T » est une base accessible de « %T »" + +-#: cp/call.c:4725 ++#: cp/call.c:4740 + msgid "could not find class$ field in java interface type `%T'" + msgstr "ne peut repérer le champ classe$ dans le type d'interface JAVA « %T »" + +-#: cp/call.c:4980 ++#: cp/call.c:4995 + msgid "call to non-function `%D'" + msgstr "appel à une non fonction « %D »" + +-#: cp/call.c:5006 ++#: cp/call.c:5021 + msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'" + msgstr "requête du membre « %D » dans « %E », lequel n'est pas de type aggrégat « %T »" + +-#: cp/call.c:5084 ++#: cp/call.c:5099 + msgid "no matching function for call to `%T::%s(%A)%#V'" + msgstr "pas de fonction concordante pour l'appel à « %T::%s(%A)%#V »" + +-#: cp/call.c:5101 ++#: cp/call.c:5116 + #, c-format + msgid "call of overloaded `%s(%A)' is ambiguous" + msgstr "appel du surchargé « %s(%A) » est ambiguë" + +-#: cp/call.c:5122 ++#: cp/call.c:5137 + msgid "cannot call member function `%D' without object" + msgstr "ne peut appeler la fonction membre « %D » sans objet" + +-#: cp/call.c:5707 ++#: cp/call.c:5722 + msgid "passing `%T' chooses `%T' over `%T'" + msgstr "passant « %T » à choisit « %T » au lieu de « %T »" + +-#: cp/call.c:5709 cp/name-lookup.c:4155 ++#: cp/call.c:5724 cp/name-lookup.c:4137 + msgid " in call to `%D'" + msgstr " dans l'appel de « %D »" + +-#: cp/call.c:5766 ++#: cp/call.c:5781 + msgid "choosing `%D' over `%D'" + msgstr "choix de « %D » à la place de « %D »" + +-#: cp/call.c:5767 ++#: cp/call.c:5782 + msgid " for conversion from `%T' to `%T'" + msgstr " pour la conversion de « %T » vers « %T »" + +-#: cp/call.c:5769 ++#: cp/call.c:5784 + msgid " because conversion sequence for the argument is better" + msgstr " parce que la séquence de conversion pour l'argument est meilleure" + +-#: cp/call.c:5889 ++#: cp/call.c:5904 + msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:" + msgstr "ISO C++ indique qu'ils sont ambiguës même à travers la plus mauvaise conversion pour le premier que la plus mauvaise pour la seconde:" + +-#: cp/call.c:5893 ++#: cp/call.c:5908 + msgid "candidate 1:" + msgstr "candidat 1:" + +-#: cp/call.c:5894 ++#: cp/call.c:5909 + msgid "candidate 2:" + msgstr "candidat 2:" + +-#: cp/call.c:6003 ++#: cp/call.c:6018 + msgid "could not convert `%E' to `%T'" + msgstr "ne peut convertir « %E » vers « %T »" + +-#: cp/call.c:6108 ++#: cp/call.c:6123 + msgid "invalid initialization of non-const reference of type '%T' from a temporary of type '%T'" + msgstr "initialisation invalide pour une référence à un non constante de type « %T » à partir d'un type temporaire de type « %T »" + +-#: cp/call.c:6112 ++#: cp/call.c:6127 + msgid "invalid initialization of reference of type '%T' from expression of type '%T'" + msgstr "initialisation invalide de référence d'un type « %T » à partir d'une expression de type « %T »" + +@@ -13317,220 +13340,220 @@ + msgid "`%#T' only defines private constructors and has no friends" + msgstr "« %#T » définit seulement les constructeurs privés et n'a pas d'amis" + +-#: cp/class.c:1995 ++#: cp/class.c:2038 + msgid "no unique final overrider for `%D' in `%T'" + msgstr "pas d'écraseur unique final pour « %D » dans « %T »" + + #. Here we know it is a hider, and no overrider exists. +-#: cp/class.c:2441 ++#: cp/class.c:2484 + msgid "`%D' was hidden" + msgstr "« %D » était caché" + +-#: cp/class.c:2442 ++#: cp/class.c:2485 + msgid " by `%D'" + msgstr " par « %D »" + +-#: cp/class.c:2484 cp/decl2.c:1161 ++#: cp/class.c:2527 cp/decl2.c:1161 + msgid "`%#D' invalid; an anonymous union can only have non-static data members" + msgstr "« %#D » invalide; une union anonyme peut seulement avoir des données non statiques de membres" + +-#: cp/class.c:2490 cp/decl2.c:1168 ++#: cp/class.c:2533 cp/decl2.c:1168 + msgid "private member `%#D' in anonymous union" + msgstr "membre privé « %#D » dans une union anonyme" + +-#: cp/class.c:2493 cp/decl2.c:1170 ++#: cp/class.c:2536 cp/decl2.c:1170 + msgid "protected member `%#D' in anonymous union" + msgstr "membre protégé « %#D » dans une union anonyme" + +-#: cp/class.c:2612 ++#: cp/class.c:2655 + msgid "vtable layout for class `%T' may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor" + msgstr "disposition vtable pour la classe « %T » peut ne pas être compatible avec l'ABI et peut être modifié dans une version future deGCC en raison d'un destructeur virtuel implicite" + +-#: cp/class.c:2672 ++#: cp/class.c:2715 + msgid "bit-field `%#D' with non-integral type" + msgstr "largeur du champ de bits « %#D » n'est pas une constante entière" + +-#: cp/class.c:2692 ++#: cp/class.c:2735 + msgid "bit-field `%D' width not an integer constant" + msgstr "largeur du champ de bits « %D » n'est pas une constante entière" + +-#: cp/class.c:2698 ++#: cp/class.c:2741 + msgid "negative width in bit-field `%D'" + msgstr "largeur négative du champ de bits « %D »" + +-#: cp/class.c:2703 ++#: cp/class.c:2746 + msgid "zero width for bit-field `%D'" + msgstr "largeur zéro pour le champ de bits « %D »" + +-#: cp/class.c:2709 ++#: cp/class.c:2752 + msgid "width of `%D' exceeds its type" + msgstr "largeur de « %D » excède son type" + +-#: cp/class.c:2718 ++#: cp/class.c:2761 + msgid "`%D' is too small to hold all values of `%#T'" + msgstr "« %D » est trop petit pour contenir toutes les valeurs de « %#T »" + +-#: cp/class.c:2780 ++#: cp/class.c:2823 + msgid "member `%#D' with constructor not allowed in union" + msgstr "membre « %#D » avec consructeur n'est pas permis dans l'union" + +-#: cp/class.c:2783 ++#: cp/class.c:2826 + msgid "member `%#D' with destructor not allowed in union" + msgstr "membre « %#D » avec destructeur n'est pas permis dans l'union" + +-#: cp/class.c:2786 ++#: cp/class.c:2829 + msgid "member `%#D' with copy assignment operator not allowed in union" + msgstr "membre « %#D » avec opérateur d,affectation par copie n'st pas permis dans l'union" + +-#: cp/class.c:2813 ++#: cp/class.c:2856 + msgid "multiple fields in union `%T' initialized" + msgstr "champs multiples dans l'union « %T » initialisés" + +-#: cp/class.c:2879 ++#: cp/class.c:2922 + msgid "ignoring packed attribute on unpacked non-POD field `%#D'" + msgstr "attribut empaqueté ignoré sur un champ non POD non paqueté « %#D »" + +-#: cp/class.c:2939 ++#: cp/class.c:2982 + msgid "`%D' may not be static because it is a member of a union" + msgstr "« %D » peut ne pas être statique parce qu'il est membre de l'uniont" + +-#: cp/class.c:2944 ++#: cp/class.c:2987 + msgid "`%D' may not have reference type `%T' because it is a member of a union" + msgstr "« %D » peut ne pas avoir de type référencé « %T » parce qu'il est membre de l'union" + +-#: cp/class.c:2952 ++#: cp/class.c:2995 + msgid "field `%D' in local class cannot be static" + msgstr "champ « %D » dans une classe locale ne peut être statique" + +-#: cp/class.c:2958 ++#: cp/class.c:3001 + msgid "field `%D' invalidly declared function type" + msgstr "champ « %D » incorrectement validé comme un type de fonction" + +-#: cp/class.c:2965 ++#: cp/class.c:3008 + msgid "field `%D' invalidly declared method type" + msgstr "champ « %D » incorrectement validé comme un type de méthode" + +-#: cp/class.c:2998 ++#: cp/class.c:3041 + msgid "non-static reference `%#D' in class without a constructor" + msgstr "référence non statique « %#D » dans la classe sans un constructeur" + +-#: cp/class.c:3041 ++#: cp/class.c:3084 + msgid "non-static const member `%#D' in class without a constructor" + msgstr "constante non statique de membre « %#D » dans la classe sans un constructeur" + +-#: cp/class.c:3056 ++#: cp/class.c:3099 + msgid "field `%#D' with same name as class" + msgstr "champ « %#D » avec le même nom qu'une classe" + +-#: cp/class.c:3074 ++#: cp/class.c:3117 + msgid "`%#T' has pointer data members" + msgstr "« %#T » a un pointeur vers un membre de données" + +-#: cp/class.c:3078 ++#: cp/class.c:3121 + msgid " but does not override `%T(const %T&)'" + msgstr " mais n'écrase pas « %T(const %T&) »" + +-#: cp/class.c:3080 ++#: cp/class.c:3123 + msgid " or `operator=(const %T&)'" + msgstr " ou « operator=(const %T&) »" + +-#: cp/class.c:3083 ++#: cp/class.c:3126 + msgid " but does not override `operator=(const %T&)'" + msgstr " mais n'écrase pas « operator=(const %T&) »" + +-#: cp/class.c:3517 ++#: cp/class.c:3560 + msgid "offset of empty base `%T' may not be ABI-compliant and maychange in a future version of GCC" + msgstr "décalage d'une base vide « %T » peut ne pas être compatible avec l'ABI et peut être modifié dans une version future de GCC" + +-#: cp/class.c:3627 ++#: cp/class.c:3670 + msgid "class `%T' will be considered nearly empty in a future version of GCC" + msgstr "classe « %T » devra être considérée pratiquement vide dans une version future de GCC" + +-#: cp/class.c:3714 ++#: cp/class.c:3757 + msgid "initializer specified for non-virtual method `%D'" + msgstr "initialisation spécifiée pour une méthode non virtuelle « %D »" + +-#: cp/class.c:4402 ++#: cp/class.c:4445 + msgid "offset of virtual base `%T' is not ABI-compliant and may change in a future version of GCC" + msgstr "décalage relatif d'une base virtuelle « %T » n'est pas compatible avec l'ABI et peut être modifié dans une version future de GCC" + +-#: cp/class.c:4492 ++#: cp/class.c:4535 + msgid "direct base `%T' inaccessible in `%T' due to ambiguity" + msgstr "base directe « %T » inaccessible dans « %T » en raison de l'ambiguité" + +-#: cp/class.c:4505 ++#: cp/class.c:4548 + msgid "virtual base `%T' inaccessible in `%T' due to ambiguity" + msgstr "base virtuelle « %T » inaccessible dans « %T » en raison de l'ambiguité" + +-#: cp/class.c:4679 ++#: cp/class.c:4722 + msgid "size assigned to `%T' may not be ABI-compliant and may change in a future version of GCC" + msgstr "taille assignée à « %T » peut ne pas être compatible avec l'ABI et peut être modifié dans une version future de GCC" + + #. Versions of G++ before G++ 3.4 did not reset the + #. DECL_MODE. +-#: cp/class.c:4718 ++#: cp/class.c:4761 + msgid "the offset of `%D' may not be ABI-compliant and may change in a future version of GCC" + msgstr "le décalage relatif de « %D » peut ne pas être compatible avec l'ABI et peut être modifié dans une version future de GCC" + +-#: cp/class.c:4741 ++#: cp/class.c:4784 + msgid "offset of `%D' is not ABI-compliant and may change in a future version of GCC" + msgstr "le décalage relatif de « %D » peut ne pas être compatible avec l'ABI et peut être modifié dans une version future de GCC" + +-#: cp/class.c:4750 ++#: cp/class.c:4793 + msgid "`%D' contains empty classes which may cause base classes to be placed at different locations in a future version of GCC" + msgstr "« %D » contient des classes vides lesquelles peuvent placer les classes de base à une localisation différente dans une version future de GCC" + +-#: cp/class.c:4809 ++#: cp/class.c:4852 + msgid "layout of classes derived from empty class `%T' may change in a future version of GCC" + msgstr "disposition des classes est dérivés de la classe vide « %T » peut être modifiée dans une version future de GCC" + +-#: cp/class.c:4939 cp/semantics.c:2044 ++#: cp/class.c:4982 cp/semantics.c:2041 + msgid "redefinition of `%#T'" + msgstr "redéfinition de « %#T »" + +-#: cp/class.c:5109 ++#: cp/class.c:5152 + msgid "`%#T' has virtual functions but non-virtual destructor" + msgstr "« %#T » a des fonctions virtuelles mais un destructeur non virtuel" + +-#: cp/class.c:5188 ++#: cp/class.c:5231 + msgid "trying to finish struct, but kicked out due to previous parse errors" + msgstr "tentative de complétion du struct, mais a été stoppé en raison d'erreurs précédentes d'analyses syntaxiques" + +-#: cp/class.c:5630 ++#: cp/class.c:5673 + #, c-format + msgid "language string `\"%s\"' not recognized" + msgstr "chaîne du langage « \"%s\" » n'est pas reconnue" + +-#: cp/class.c:5718 ++#: cp/class.c:5761 + msgid "cannot resolve overloaded function `%D' based on conversion to type `%T'" + msgstr "ne peut résoudre la fonction surchargé « %D » basé sur la conversion vers le type « %T »" + +-#: cp/class.c:5843 ++#: cp/class.c:5886 + msgid "no matches converting function `%D' to type `%#T'" + msgstr "pas de concordance de conversion de fonction « %D » vers le type « %#T »" + +-#: cp/class.c:5866 ++#: cp/class.c:5909 + msgid "converting overloaded function `%D' to type `%#T' is ambiguous" + msgstr "conversion d'une fonction surchargée « %D » vers le type « %#T » est ambiguë" + +-#: cp/class.c:5892 ++#: cp/class.c:5935 + msgid "assuming pointer to member `%D'" + msgstr "pointeur assumé vers le membre « %D »" + +-#: cp/class.c:5895 ++#: cp/class.c:5938 + #, c-format + msgid "(a pointer to member can only be formed with `&%E')" + msgstr "(un pointeur vers un membre peut seulement être formé avec «&%E»)" + +-#: cp/class.c:5940 cp/class.c:6122 cp/class.c:6129 ++#: cp/class.c:5983 cp/class.c:6165 cp/class.c:6172 + msgid "not enough type information" + msgstr "pas assez d'information sur le type" + +-#: cp/class.c:5957 ++#: cp/class.c:6000 + msgid "argument of type `%T' does not match `%T'" + msgstr "argument de type « %T » ne concorde pas avec « %T »" + +-#: cp/class.c:6106 ++#: cp/class.c:6149 + msgid "invalid operation on uninstantiated type" + msgstr "opération invalide sur un type non instancié" + +@@ -13539,11 +13562,11 @@ + #. A name N used in a class S shall refer to the same declaration + #. in its context and when re-evaluated in the completed scope of + #. S. +-#: cp/class.c:6364 cp/decl.c:1222 cp/name-lookup.c:514 cp/pt.c:2097 ++#: cp/class.c:6407 cp/decl.c:1223 cp/name-lookup.c:514 cp/pt.c:2125 + msgid "declaration of `%#D'" + msgstr "déclaration de « %#D »" + +-#: cp/class.c:6365 ++#: cp/class.c:6408 + msgid "changes meaning of `%D' from `%+#D'" + msgstr "changements signifiant de « %D » à partir de « %+#D »" + +@@ -13645,141 +13668,156 @@ + msgid " candidate conversions include `%D' and `%D'" + msgstr " conversions de candidat inclut « %D » et « %D »" + +-#: cp/decl.c:371 ++#: cp/decl.c:372 + msgid "label `%D' used but not defined" + msgstr "étiquette « %D » utilisée mais non définie" + +-#: cp/decl.c:378 ++#: cp/decl.c:379 + msgid "label `%D' defined but not used" + msgstr "étiquette « %D » définie mais non utilisée" + +-#: cp/decl.c:1130 cp/decl.c:1556 ++#: cp/decl.c:1131 cp/decl.c:1570 + msgid "previous declaration of `%D'" + msgstr "déclaration précédente de « %D »" + +-#: cp/decl.c:1178 ++#: cp/decl.c:1179 + msgid "%Jfunction '%D' redeclared as inline" + msgstr "%Jfonction « %D » redéclarée comme étant enligne" + +-#: cp/decl.c:1179 ++#: cp/decl.c:1180 + msgid "%Jprevious declaration of '%D' with attribute noinline" + msgstr "%Jdéclaration précédente de « %D » avec l'attribut non enligne" + +-#: cp/decl.c:1186 ++#: cp/decl.c:1187 + msgid "%Jfunction '%D' redeclared with attribute noinline" + msgstr "%Jfonction « %D » redéclarée avec l'attribut non enligne" + +-#: cp/decl.c:1188 ++#: cp/decl.c:1189 + msgid "%Jprevious declaration of '%D' was inline" + msgstr "%Jdéclaration précédente de « %D » était enligne" + +-#: cp/decl.c:1209 cp/decl.c:1247 ++#: cp/decl.c:1210 cp/decl.c:1248 + msgid "shadowing %s function `%#D'" + msgstr "%s masque la fonction « %#D »" + +-#: cp/decl.c:1218 ++#: cp/decl.c:1219 + msgid "library function `%#D' redeclared as non-function `%#D'" + msgstr "fonction « %#D » de la bibliothèque redéclarée comme n'étant pas une fonction « %#D »" + +-#: cp/decl.c:1223 ++#: cp/decl.c:1224 + msgid "conflicts with built-in declaration `%#D'" + msgstr "conflits avec la déclaration interne de « %#D »" + +-#: cp/decl.c:1242 cp/decl.c:1354 cp/decl.c:1370 ++#: cp/decl.c:1243 cp/decl.c:1355 cp/decl.c:1371 + msgid "new declaration `%#D'" + msgstr "nouvelle déclaration de « %#D »" + +-#: cp/decl.c:1243 ++#: cp/decl.c:1244 + msgid "ambiguates built-in declaration `%#D'" + msgstr "ambiguités de la déclaration interne de « %#D »" + +-#: cp/decl.c:1314 ++#: cp/decl.c:1315 + msgid "`%#D' redeclared as different kind of symbol" + msgstr "« %#D » redéclaré comme une sorte différente de symbole" + +-#: cp/decl.c:1317 ++#: cp/decl.c:1318 + msgid "previous declaration of `%#D'" + msgstr "déclaration précédente de « %#D »" + +-#: cp/decl.c:1339 ++#: cp/decl.c:1340 + msgid "declaration of template `%#D'" + msgstr "déclaration du patron « %#D »" + +-#: cp/decl.c:1340 cp/name-lookup.c:515 ++#: cp/decl.c:1341 cp/name-lookup.c:515 + msgid "conflicts with previous declaration `%#D'" + msgstr "conflits avec la déclaration précédente de « %#D »" + +-#: cp/decl.c:1355 cp/decl.c:1371 ++#: cp/decl.c:1356 cp/decl.c:1372 + msgid "ambiguates old declaration `%#D'" + msgstr "ambiguités d'une vieille déclaration de « %#D »" + +-#: cp/decl.c:1363 ++#: cp/decl.c:1364 + msgid "declaration of C function `%#D' conflicts with" + msgstr "déclaration de la fonction C « %#D » en conflit avec" + +-#: cp/decl.c:1365 ++#: cp/decl.c:1366 + msgid "previous declaration `%#D' here" + msgstr "déclaration précédente de « %#D » ici" + +-#: cp/decl.c:1381 ++#: cp/decl.c:1382 + msgid "conflicting declaration '%#D'" + msgstr "déclaration conflictuelle « %#D »" + +-#: cp/decl.c:1382 ++#: cp/decl.c:1383 + msgid "'%D' has a previous declaration as `%#D'" + msgstr "« %D » a une déclaration précédente tel que « %#D »" + +-#: cp/decl.c:1435 ++#. [namespace.alias] ++#. ++#. A namespace-name or namespace-alias shall not be declared as ++#. the name of any other entity in the same declarative region. ++#. A namespace-name defined at global scope shall not be ++#. declared as the name of any other entity in any glogal scope ++#. of the program. ++#: cp/decl.c:1436 ++msgid "declaration of `namespace %D' conflicts with" ++msgstr "déclaration de « namespace %D » entre en conflit avec" ++ ++#: cp/decl.c:1437 ++msgid "previous declaration of `namespace %D' here" ++msgstr "déclaration précédente de « namespace %D » ici" ++ ++#: cp/decl.c:1449 + msgid "`%#D' previously defined here" + msgstr "« %#D » précédemment défini ici" + +-#: cp/decl.c:1436 ++#: cp/decl.c:1450 + msgid "`%#D' previously declared here" + msgstr "« %#D » précédemment déclaré ici" + + #. Prototype decl follows defn w/o prototype. +-#: cp/decl.c:1445 ++#: cp/decl.c:1459 + msgid "prototype for `%#D'" + msgstr "prototype de « %#D »" + +-#: cp/decl.c:1446 ++#: cp/decl.c:1460 + msgid "%Jfollows non-prototype definition here" + msgstr "%Jsuit la définition d'un non prototype ici" + +-#: cp/decl.c:1458 ++#: cp/decl.c:1472 + msgid "previous declaration of `%#D' with %L linkage" + msgstr "déclaration précédente de « %#D » avec le lien %L" + +-#: cp/decl.c:1460 ++#: cp/decl.c:1474 + msgid "conflicts with new declaration with %L linkage" + msgstr "conflits avec la nouvelle déclaration avec le lien %L" + +-#: cp/decl.c:1483 cp/decl.c:1490 ++#: cp/decl.c:1497 cp/decl.c:1504 + msgid "default argument given for parameter %d of `%#D'" + msgstr "argument par défaut donné pour le paramètre %d de « %#D »" + +-#: cp/decl.c:1485 cp/decl.c:1492 ++#: cp/decl.c:1499 cp/decl.c:1506 + msgid "after previous specification in `%#D'" + msgstr "après la déclaration précédente dans « %#D »" + +-#: cp/decl.c:1501 ++#: cp/decl.c:1515 + msgid "`%#D' was used before it was declared inline" + msgstr "« %#D » a été utilisé avant qu'il ne soit déclaré enligne" + +-#: cp/decl.c:1502 ++#: cp/decl.c:1516 + msgid "%Jprevious non-inline declaration here" + msgstr "%Jdéclaration précédente non enligne ici" + +-#: cp/decl.c:1555 ++#: cp/decl.c:1569 + msgid "redundant redeclaration of `%D' in same scope" + msgstr "déclaration redondante de « %D » dans la même étendue" + +-#: cp/decl.c:1649 ++#: cp/decl.c:1663 + #, c-format + msgid "declaration of `%F' throws different exceptions" + msgstr "déclaration de « %F » amène différentes exceptions" + +-#: cp/decl.c:1651 ++#: cp/decl.c:1665 + #, c-format + msgid "than previous declaration `%F'" + msgstr "qu'une précédente déclaratio « %F »" +@@ -13792,492 +13830,510 @@ + #. that specialization that would cause an implicit + #. instantiation to take place, in every translation unit in + #. which such a use occurs. +-#: cp/decl.c:1798 ++#: cp/decl.c:1812 + msgid "explicit specialization of %D after first use" + msgstr "spécialisation explicite de %D après la première utilisation" + +-#: cp/decl.c:1878 ++#: cp/decl.c:1892 + msgid "%J'%D': visibility attribute ignored because it" + msgstr "%J« %D »: attribut de visibilité ignoré en cause de lui" + +-#: cp/decl.c:1880 ++#: cp/decl.c:1894 + msgid "%Jconflicts with previous declaration here" + msgstr "%Jentre en conflit avec la déclaration précédente ici" + +-#: cp/decl.c:1974 ++#: cp/decl.c:1988 + msgid "implicit declaration of function `%#D'" + msgstr "déclaration implicite de la fonction « %#D »" + +-#: cp/decl.c:2137 ++#: cp/decl.c:2151 + #, c-format + msgid "label `%s' referenced outside of any function" + msgstr "étiquette « %s » référencée à l'extérieur de n'importe quelle fonction" + +-#: cp/decl.c:2234 cp/decl.c:2258 cp/decl.c:2346 ++#: cp/decl.c:2248 cp/decl.c:2272 cp/decl.c:2360 + msgid "jump to label `%D'" + msgstr "saut à l'étiquette « %D »" + +-#: cp/decl.c:2236 cp/decl.c:2260 ++#: cp/decl.c:2250 cp/decl.c:2274 + msgid "jump to case label" + msgstr "saut à l'étiquette du « case »" + +-#: cp/decl.c:2239 cp/decl.c:2263 ++#: cp/decl.c:2253 cp/decl.c:2277 + msgid "%H from here" + msgstr "%H à partir d'ici" + +-#: cp/decl.c:2244 ++#: cp/decl.c:2258 + msgid " crosses initialization of `%#D'" + msgstr " initialisation croisée pour « %#D »" + +-#: cp/decl.c:2247 cp/decl.c:2362 ++#: cp/decl.c:2261 cp/decl.c:2376 + msgid " enters scope of non-POD `%#D'" + msgstr " entre dans la porté d'un non POD « %#D »" + +-#: cp/decl.c:2267 cp/decl.c:2366 ++#: cp/decl.c:2281 cp/decl.c:2380 + msgid " enters try block" + msgstr " entre dans le bloc d'essais" + +-#: cp/decl.c:2269 cp/decl.c:2368 ++#: cp/decl.c:2283 cp/decl.c:2382 + msgid " enters catch block" + msgstr " entre dans le bloc d'interceptions" + +-#: cp/decl.c:2347 ++#: cp/decl.c:2361 + msgid " from here" + msgstr " à partir d'ici" + + #. Can't skip init of __exception_info. +-#: cp/decl.c:2358 ++#: cp/decl.c:2372 + msgid "%J enters catch block" + msgstr "%J entre dans le bloc d'interception" + +-#: cp/decl.c:2360 ++#: cp/decl.c:2374 + msgid " skips initialization of `%#D'" + msgstr " saut d'initialisation pour « %#D »" + +-#: cp/decl.c:2394 ++#: cp/decl.c:2408 + msgid "label named wchar_t" + msgstr "étiquette nommée wchar_t" + +-#: cp/decl.c:2397 ++#: cp/decl.c:2411 + msgid "duplicate label `%D'" + msgstr "étiquette « %D » apparaît en double" + +-#: cp/decl.c:2625 cp/parser.c:3182 ++#: cp/decl.c:2639 cp/parser.c:3192 + msgid "`%D' used without template parameters" + msgstr "« %D » utilisé sans patron de paramétres" + +-#: cp/decl.c:2635 cp/decl.c:2651 cp/decl.c:2739 ++#: cp/decl.c:2649 cp/decl.c:2665 cp/decl.c:2753 + msgid "no class template named `%#T' in `%#T'" + msgstr "pas de patron de classe nommé « %#T » in « %#T »" + +-#: cp/decl.c:2672 cp/decl.c:2682 cp/decl.c:2702 ++#: cp/decl.c:2686 cp/decl.c:2696 cp/decl.c:2716 + msgid "no type named `%#T' in `%#T'" + msgstr "pas de type nommé dans « %#T » dans « %#T »" + +-#: cp/decl.c:3429 ++#: cp/decl.c:3443 + msgid "%Jan anonymous union cannot have function members" + msgstr "%Jun UNION anonyme ne peut avoir de fonctions membres" + +-#: cp/decl.c:3447 ++#: cp/decl.c:3461 + msgid "member %#D' with constructor not allowed in anonymous aggregate" + msgstr "membre « %#D » avec constructeur n'est pas permis dans un aggrégat anonyme" + +-#: cp/decl.c:3450 ++#: cp/decl.c:3464 + msgid "member %#D' with destructor not allowed in anonymous aggregate" + msgstr "membre « %#D » avec destructeur n'est pas permis dans un aggrégat anonyme" + +-#: cp/decl.c:3453 ++#: cp/decl.c:3467 + msgid "member %#D' with copy assignment operator not allowed in anonymous aggregate" + msgstr "membre « %#D » avec opérateur d'affectation par copie n'est pas permis dans un aggrégat anonyme" + +-#: cp/decl.c:3493 ++#: cp/decl.c:3507 + msgid "redeclaration of C++ built-in type `%T'" + msgstr "redéclaration du type interne C++ « %T »" + +-#: cp/decl.c:3531 ++#: cp/decl.c:3545 + msgid "multiple types in one declaration" + msgstr "types multiples dans une déclaration" + +-#: cp/decl.c:3557 ++#: cp/decl.c:3571 + msgid "missing type-name in typedef-declaration" + msgstr "nom de type manquant dans la déclaration typedef" + +-#: cp/decl.c:3565 ++#: cp/decl.c:3579 + msgid "ISO C++ prohibits anonymous structs" + msgstr "ISO C++ interdit les structures anonymes" + +-#: cp/decl.c:3572 ++#: cp/decl.c:3586 + msgid "`%D' can only be specified for functions" + msgstr "« %D » ne peut seulement être spécifier pour les fonctions" + +-#: cp/decl.c:3574 ++#: cp/decl.c:3588 + msgid "`%D' can only be specified inside a class" + msgstr "« %D » peut seulement être spécifié à l'intérieur d'une classe" + +-#: cp/decl.c:3576 ++#: cp/decl.c:3590 + msgid "`%D' can only be specified for constructors" + msgstr "« %D » ne peut seulement être spécifié pour les constructeurs" + +-#: cp/decl.c:3579 ++#: cp/decl.c:3593 + msgid "`%D' can only be specified for objects and functions" + msgstr "« %D » ne peut seulement être spécifié pour les objets et les fonctions" + +-#: cp/decl.c:3721 cp/decl2.c:855 ++#: cp/decl.c:3735 cp/decl2.c:855 + msgid "typedef `%D' is initialized (use __typeof__ instead)" + msgstr "typedef « %D » est initialisé (use __typeof__ instead)" + +-#: cp/decl.c:3726 ++#: cp/decl.c:3740 + msgid "function `%#D' is initialized like a variable" + msgstr "fonction « %#D » est initialisée comme une variable" + +-#: cp/decl.c:3738 ++#: cp/decl.c:3752 + msgid "declaration of `%#D' has `extern' and is initialized" + msgstr "déclaration de « %#D » est externe et initialisé" + +-#: cp/decl.c:3771 ++#: cp/decl.c:3785 + msgid "`%#D' is not a static member of `%#T'" + msgstr "« %#D » n'est pas un membre statique de « %#T »" + +-#: cp/decl.c:3777 ++#: cp/decl.c:3791 + msgid "ISO C++ does not permit `%T::%D' to be defined as `%T::%D'" + msgstr "ISO C++ ne permet pas que « %T::%D » soit défini comme « %T::%D »" + +-#: cp/decl.c:3788 ++#: cp/decl.c:3802 + msgid "duplicate initialization of %D" + msgstr "initialisation en double de %D" + +-#: cp/decl.c:3819 ++#: cp/decl.c:3833 + msgid "declaration of `%#D' outside of class is not definition" + msgstr "déclaraion de « %#D » en dehors de la classe n'est pas une définition" + +-#: cp/decl.c:3868 ++#: cp/decl.c:3882 + msgid "variable `%#D' has initializer but incomplete type" + msgstr "la variable « %#D » est initialisée, mais a un type incomplet" + +-#: cp/decl.c:3876 cp/decl.c:4445 ++#: cp/decl.c:3890 cp/decl.c:4500 + msgid "elements of array `%#D' have incomplete type" + msgstr "éléments du tableau « %#D » ont un type incomplet" + +-#: cp/decl.c:3892 ++#: cp/decl.c:3906 + msgid "aggregate `%#D' has incomplete type and cannot be defined" + msgstr "aggrégat « %#D » a un type incomplet et ne peut être défini" + +-#: cp/decl.c:3942 ++#: cp/decl.c:3956 + msgid "`%D' declared as reference but not initialized" + msgstr "« %D » déclaré comme référence mais n'est pas initialisé" + +-#: cp/decl.c:3948 ++#: cp/decl.c:3962 + msgid "ISO C++ forbids use of initializer list to initialize reference `%D'" + msgstr "ISO C++ interdit l'usage de liste d'initialiseur pour initialiser la référence « %D »" + +-#: cp/decl.c:3976 ++#: cp/decl.c:3990 + msgid "cannot initialize `%T' from `%T'" + msgstr "ne peut initialiser « %T » à partir de « %T »" + +-#: cp/decl.c:4008 ++#: cp/decl.c:4022 + msgid "initializer fails to determine size of `%D'" + msgstr "l'initialisation n'a pu déterminer la taille de « %D »" + +-#: cp/decl.c:4013 ++#: cp/decl.c:4027 + msgid "array size missing in `%D'" + msgstr "taille de tableau manquante dans « %D »" + +-#: cp/decl.c:4025 ++#: cp/decl.c:4039 + msgid "zero-size array `%D'" + msgstr "tableau « %D » de taille zéro" + + #. An automatic variable with an incomplete type: that is an error. + #. Don't talk about array types here, since we took care of that + #. message in grokdeclarator. +-#: cp/decl.c:4062 ++#: cp/decl.c:4076 + msgid "storage size of `%D' isn't known" + msgstr "taille de stockage de « %D » n'est pas connue" + +-#: cp/decl.c:4084 ++#: cp/decl.c:4098 + msgid "storage size of `%D' isn't constant" + msgstr "taille de stockage de « %D » n'est pas une constante" + +-#: cp/decl.c:4139 ++#: cp/decl.c:4153 + msgid "sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)" + msgstr "désolé: sémantique de fonction enligne de données statiques « %#D » est erronée (vous obtiendrez de multiples copies)" + +-#: cp/decl.c:4140 ++#: cp/decl.c:4154 + msgid "%J you can work around this by removing the initializer" + msgstr "%J vous pouvez contourner cela en enlevant l'initialiseur" + +-#: cp/decl.c:4166 ++#: cp/decl.c:4180 + msgid "uninitialized const `%D'" + msgstr "constante « %D » non initialisée" + +-#: cp/decl.c:4245 ++#: cp/decl.c:4240 ++msgid "name `%D' used in a GNU-style designated initializer for an array" ++msgstr "nom « %D » utilisé dans un style GNU de l'initialisateur désigné pour un tableau" ++ ++#: cp/decl.c:4251 ++#, c-format ++msgid "Designated initializer `%E' larger than array size" ++msgstr "Initialisateur désigné « %E » est plus grand que la taille du tableau" ++ ++#: cp/decl.c:4323 + msgid "brace-enclosed initializer used to initialize `%T'" + msgstr "initialiseur utilisé entre accolades pour initialiser « %T »" + +-#: cp/decl.c:4309 ++#: cp/decl.c:4387 + msgid "initializer for `%T' must be brace-enclosed" + msgstr "initialiseur de « %T » doit être entre accolades" + +-#: cp/decl.c:4326 ++#: cp/decl.c:4404 + msgid "ISO C++ does not allow designated initializers" + msgstr "ISO C++ ne permet de désigner les initialiseurs" + +-#: cp/decl.c:4330 ++#: cp/decl.c:4408 + msgid "`%T' has no non-static data member named `%D'" + msgstr "« %T » n'a pas de membre de données non statique nommé « %D »" + +-#: cp/decl.c:4378 +-msgid "name `%D' used in a GNU-style designated initializer for an array" +-msgstr "nom « %D » utilisé dans un style GNU de l'initialisateur désigné pour un tableau" +- +-#: cp/decl.c:4401 ++#: cp/decl.c:4456 + msgid "too many initializers for `%T'" + msgstr "trop d'initialiseurs pour « %T »" + +-#: cp/decl.c:4439 ++#: cp/decl.c:4494 + msgid "variable-sized object `%D' may not be initialized" + msgstr "objet de taille variable « %D » peut ne pas être initialisé" + +-#: cp/decl.c:4450 ++#: cp/decl.c:4505 + msgid "`%D' has incomplete type" + msgstr "« %D » a un type incomplet" + +-#: cp/decl.c:4505 ++#: cp/decl.c:4560 + msgid "`%D' must be initialized by constructor, not by `{...}'" + msgstr "« %D » doit être initialisé par un constructeur, non pas par « {...} »" + +-#: cp/decl.c:4549 ++#: cp/decl.c:4604 + msgid "structure `%D' with uninitialized const members" + msgstr "structure « %D » avec constantes non initialisées de membres" + +-#: cp/decl.c:4551 ++#: cp/decl.c:4606 + msgid "structure `%D' with uninitialized reference members" + msgstr "structure « %D » avec références non initialisées de membres" + +-#: cp/decl.c:4732 ++#: cp/decl.c:4788 + msgid "assignment (not initialization) in declaration" + msgstr "affectation (non pas l'initialisation) dans la déclaration" + +-#: cp/decl.c:4749 ++#: cp/decl.c:4805 + msgid "cannot initialize `%D' to namespace `%D'" + msgstr "ne peut initialiser « %D » à l'espace de noms « %D »" + +-#: cp/decl.c:4803 ++#: cp/decl.c:4859 + msgid "shadowing previous type declaration of `%#D'" + msgstr "masque la déclaration précédente de « %#D »" + +-#: cp/decl.c:4840 ++#: cp/decl.c:4896 + msgid "`%D' cannot be thread-local because it has non-POD type `%T'" + msgstr "« %D » ne peut être utilisé comme un thread local parce qu'il a un non POD de type « %T »" + +-#: cp/decl.c:4855 ++#: cp/decl.c:4911 + msgid "`%D' is thread-local and so cannot be dynamically initialized" + msgstr "« %D » est un thread local et ne peut donc pas être initialisé dynamiquement" + +-#: cp/decl.c:5337 ++#: cp/decl.c:5406 + msgid "invalid catch parameter" + msgstr "paramètre d'interception invalide" + +-#: cp/decl.c:5451 ++#: cp/decl.c:5520 + msgid "destructor for alien class `%T' cannot be a member" + msgstr "destructeur pour la classe étrangère « %T » ne peut être un membre" + +-#: cp/decl.c:5454 ++#: cp/decl.c:5523 + msgid "constructor for alien class `%T' cannot be a member" + msgstr "constructeur pour la classe étrangère « %T » ne peut être un membre" + +-#: cp/decl.c:5476 ++#: cp/decl.c:5545 + msgid "`%D' declared as a `virtual' %s" + msgstr "« %D» déclaré comme « virtual » %s" + +-#: cp/decl.c:5478 ++#: cp/decl.c:5547 + msgid "`%D' declared as an `inline' %s" + msgstr "« %D» déclaré comme « inline » %s" + +-#: cp/decl.c:5480 ++#: cp/decl.c:5549 + msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration" + msgstr "spécificateurs de fonction « const» et «volatile» invalide pour « %D » dans la déclaration %s" + +-#: cp/decl.c:5483 ++#: cp/decl.c:5552 + msgid "`%D' declared as a friend" + msgstr "« %D » déclaré comme un ami" + +-#: cp/decl.c:5489 ++#: cp/decl.c:5558 + msgid "`%D' declared with an exception specification" + msgstr "« %D » déclaré avec une exception de spécification" + +-#: cp/decl.c:5571 ++#: cp/decl.c:5640 + msgid "cannot declare `::main' to be a template" + msgstr "ne peut déclarer « ::main » comme étant un patron" + +-#: cp/decl.c:5573 ++#: cp/decl.c:5642 + msgid "cannot declare `::main' to be inline" + msgstr "ne peut déclarer «::main» à être enligne" + +-#: cp/decl.c:5575 ++#: cp/decl.c:5644 + msgid "cannot declare `::main' to be static" + msgstr "ne peut déclarer « ::main » comme étant static" + +-#: cp/decl.c:5578 ++#: cp/decl.c:5647 + msgid "`main' must return `int'" + msgstr "« main» doit retourner « int »" + +-#: cp/decl.c:5606 ++#: cp/decl.c:5675 + msgid "non-local function `%#D' uses anonymous type" + msgstr "fonction non locale « %#D » utilise un type anonyme" + +-#: cp/decl.c:5609 ++#: cp/decl.c:5678 + msgid "`%#D' does not refer to the unqualified type, so it is not used for linkage" + msgstr "« %#D » ne réfère pas à un type non qualifié, aussi il n'est pas utilisé pour la liaison" + +-#: cp/decl.c:5615 ++#: cp/decl.c:5684 + msgid "non-local function `%#D' uses local type `%T'" + msgstr "fonction non locale « %#D » utilise un type local « %T »" + +-#: cp/decl.c:5639 ++#: cp/decl.c:5708 + msgid "%smember function `%D' cannot have `%T' method qualifier" + msgstr "%sfonction membre « %D » ne peut avoir « %T » comme qualificateur de méthode" + +-#: cp/decl.c:5663 ++#: cp/decl.c:5732 + msgid "defining explicit specialization `%D' in friend declaration" + msgstr "définition explicite de spécialisation « %D » dans lka déclaration ami" + + #. Something like `template friend void f()'. +-#: cp/decl.c:5673 ++#: cp/decl.c:5742 + msgid "invalid use of template-id `%D' in declaration of primary template" + msgstr "utilisation invalide du template-id « %D » dans la déclaration du patron primaire" + +-#: cp/decl.c:5700 ++#: cp/decl.c:5769 + msgid "default arguments are not allowed in declaration of friend template specialization `%D'" + msgstr "arguments par défaut ne sont pas permis dans la déclaration amie de la spécialisation du patron « %D »" + +-#: cp/decl.c:5707 ++#: cp/decl.c:5776 + msgid "`inline' is not allowed in declaration of friend template specialization `%D'" + msgstr "« inline» n'estpas permis dans la déclaration amie de la spécialisation du patron « %D »" + +-#: cp/decl.c:5765 ++#: cp/decl.c:5834 + msgid "definition of implicitly-declared `%D'" + msgstr "définition implicitement déclarée « %D »" + +-#: cp/decl.c:5785 cp/decl2.c:738 ++#: cp/decl.c:5854 cp/decl2.c:738 + msgid "no `%#D' member function declared in class `%T'" + msgstr "pas de fonction membre « %#D » déclarée dans la classe « %T »" + +-#: cp/decl.c:5919 ++#: cp/decl.c:5988 + msgid "non-local variable `%#D' uses local type `%T'" + msgstr "variable non locale « %#D » utilise un type local « %T »" + +-#: cp/decl.c:6034 ++#: cp/decl.c:6103 + msgid "invalid in-class initialization of static data member of non-integral type `%T'" + msgstr "initialisation invalide dans la class de données de membre statiques d'un non entier de type « %T »" + +-#: cp/decl.c:6043 ++#: cp/decl.c:6112 + msgid "ISO C++ forbids in-class initialization of non-const static member `%D'" + msgstr "ISO C++ interdit l'initialisation intra-classe d'un membre statique non constant « %D »" + +-#: cp/decl.c:6046 ++#: cp/decl.c:6115 + msgid "ISO C++ forbids initialization of member constant `%D' of non-integral type `%T'" + msgstr "ISO C++ interdit l'initialisation d'une membre constant « %D » d'un type non entier « %T »" + +-#: cp/decl.c:6065 ++#: cp/decl.c:6134 + msgid "size of array `%D' has non-integral type `%T'" + msgstr "taille du tableau « %D » n'est pas de type entier « %T »" + +-#: cp/decl.c:6067 ++#: cp/decl.c:6136 + msgid "size of array has non-integral type `%T'" + msgstr "taille du tableau a type non entier « %T »" + +-#: cp/decl.c:6103 ++#: cp/decl.c:6172 + msgid "size of array `%D' is negative" + msgstr "taille du tableau « %D » est négative" + +-#: cp/decl.c:6105 ++#: cp/decl.c:6174 + msgid "size of array is negative" + msgstr "taille du tableau est négative" + +-#: cp/decl.c:6113 ++#: cp/decl.c:6182 + msgid "ISO C++ forbids zero-size array `%D'" + msgstr "ISO C++ interdit les tableaux de taille zéro « %D »" + +-#: cp/decl.c:6115 ++#: cp/decl.c:6184 + msgid "ISO C++ forbids zero-size array" + msgstr "ISO C++ interdit les tableaux de taille zéro" + +-#: cp/decl.c:6122 ++#: cp/decl.c:6191 + msgid "size of array `%D' is not an integral constant-expression" + msgstr "taille du tableau « %D » n'a pas une expression de constante de type entier" + +-#: cp/decl.c:6125 ++#: cp/decl.c:6194 + msgid "size of array is not an integral constant-expression" + msgstr "taille du tableau n'est pas une expression de constante de type entier" + +-#: cp/decl.c:6130 ++#: cp/decl.c:6199 + msgid "ISO C++ forbids variable-size array `%D'" + msgstr "ISO C++ interdit les tableaus de taille variable « %D »" + +-#: cp/decl.c:6132 ++#: cp/decl.c:6201 + msgid "ISO C++ forbids variable-size array" + msgstr "ISO C++ interdit le tableau de taille variable" + +-#: cp/decl.c:6154 ++#: cp/decl.c:6223 + msgid "overflow in array dimension" + msgstr "débordement dans les dimensions du tableau" + +-#: cp/decl.c:6248 ++#: cp/decl.c:6317 + msgid "declaration of `%D' as %s" + msgstr "déclaration de « %D » comme « %s »" + +-#: cp/decl.c:6250 ++#: cp/decl.c:6319 + #, c-format + msgid "creating %s" + msgstr "création de %s" + +-#: cp/decl.c:6262 ++#: cp/decl.c:6331 + msgid "declaration of `%D' as multidimensional array must have bounds for all dimensions except the first" + msgstr "déclaration de « %D » comme tableau multidimensionel doit avoir des bornes pour chaque dimension excepté pour la première" + +-#: cp/decl.c:6265 ++#: cp/decl.c:6334 + msgid "multidimensional array must have bounds for all dimensions except the first" + msgstr "tableau multidimensionel doit avoir des bornes pour chaque dimension excepté pour la première" + +-#: cp/decl.c:6293 ++#: cp/decl.c:6362 + msgid "return type specification for constructor invalid" + msgstr "spécification de type retourné pour un constructeur est invalide" + +-#: cp/decl.c:6300 ++#: cp/decl.c:6369 + msgid "return type specification for destructor invalid" + msgstr "spécification de type retourné pour un destructeur est invalide" + +-#: cp/decl.c:6306 ++#: cp/decl.c:6375 + msgid "operator `%T' declared to return `%T'" + msgstr "opérateur « %T » déclaré comme retournant « %T »" + +-#: cp/decl.c:6308 ++#: cp/decl.c:6377 + msgid "return type specified for `operator %T'" + msgstr "type spécifié retourné pour l'opérateur « %T »" + +-#: cp/decl.c:6452 ++#: cp/decl.c:6400 ++msgid "unnamed variable or field declared void" ++msgstr "variable non nommée ou champ déclaré void" ++ ++#: cp/decl.c:6405 ++#, c-format ++msgid "variable or field `%E' declared void" ++msgstr "variable ou champ « %E » déclaré « void »" ++ ++#: cp/decl.c:6408 ++msgid "variable or field declared void" ++msgstr "variable ou champ déclaré void" ++ ++#: cp/decl.c:6547 + msgid "destructors must be member functions" + msgstr "les destructeurs doivent être des fonctions membres" + +-#: cp/decl.c:6471 ++#: cp/decl.c:6566 + msgid "destructor `%T' must match class name `%T'" + msgstr "destructeur « %T » doit concorder avec le nom de la classe « %T »" + +-#: cp/decl.c:6534 ++#: cp/decl.c:6629 + msgid "declarator-id missing; using reserved word `%D'" + msgstr "declarator-id manquant; utilisation du mot réservé « %D »" + +-#: cp/decl.c:6588 ++#: cp/decl.c:6683 + msgid "type `%T' is not derived from type `%T'" + msgstr "type « %T » n'est pas dérivé du type « %T »" + + #. Parse error puts this typespec where + #. a declarator should go. +-#: cp/decl.c:6651 ++#: cp/decl.c:6746 + msgid "`%T' specified as declarator-id" + msgstr "« %T » spécifié comme declarator-id" + +-#: cp/decl.c:6653 ++#: cp/decl.c:6748 + msgid " perhaps you want `%T' for a constructor" + msgstr " peut-être que vous voulez « %T » comme constructeur" + +@@ -14285,300 +14341,292 @@ + #. decl-specifier like in + #. std::allocator alloc; + #. Handle that gracefully. +-#: cp/decl.c:6675 ++#: cp/decl.c:6770 + #, c-format + msgid "invalid use of template-name '%E' in a declarator" + msgstr "utilisation invalide du template-name « %E » dans le déclarateur" + +-#: cp/decl.c:6695 ++#: cp/decl.c:6790 cp/decl.c:8124 + msgid "declaration of `%D' as non-function" + msgstr "déclaration de « %D » comme non-fonction" + +-#: cp/decl.c:6772 ++#: cp/decl.c:6867 + msgid "`bool' is now a keyword" + msgstr "« bool » est maintenant un mot clé" + +-#: cp/decl.c:6774 ++#: cp/decl.c:6869 + msgid "extraneous `%T' ignored" + msgstr "« %T » surperflu ignoré" + +-#: cp/decl.c:6790 cp/decl.c:6834 ++#: cp/decl.c:6885 cp/decl.c:6929 + msgid "multiple declarations `%T' and `%T'" + msgstr "multiples déclarations « %T » et « %T »" + +-#: cp/decl.c:6803 ++#: cp/decl.c:6898 + msgid "ISO C++ does not support `long long'" + msgstr "ISO C++ ne permet pas « long long »" + +-#: cp/decl.c:6907 cp/decl.c:6910 ++#: cp/decl.c:7002 cp/decl.c:7005 + #, c-format + msgid "ISO C++ forbids declaration of `%s' with no type" + msgstr "ISO C++ interdit la déclaration de « %s » sans type" + +-#: cp/decl.c:6941 ++#: cp/decl.c:7036 + #, c-format + msgid "short, signed or unsigned invalid for `%s'" + msgstr "short, signed ou unsigned est invalide pour « %s »" + +-#: cp/decl.c:6946 ++#: cp/decl.c:7041 + #, c-format + msgid "long and short specified together for `%s'" + msgstr "long et short spécifiés ensembles pour « %s »" + +-#: cp/decl.c:6957 ++#: cp/decl.c:7052 + #, c-format + msgid "signed and unsigned given together for `%s'" + msgstr "signed et unsigned donnés ensembles pour « %s »" + +-#: cp/decl.c:7066 ++#: cp/decl.c:7161 + msgid "qualifiers are not allowed on declaration of `operator %T'" + msgstr "qualificateurs ne sont pas permis dans la déclaration de « operator %T »" + +-#: cp/decl.c:7088 ++#: cp/decl.c:7183 + msgid "member `%D' cannot be declared both virtual and static" + msgstr "membre « %D » ne peut être déclaré virtuel et statique" + +-#: cp/decl.c:7097 ++#: cp/decl.c:7192 + msgid "`%T::%D' is not a valid declarator" + msgstr "« %T::%D » n'est pas un déclarateur valide" + +-#: cp/decl.c:7109 ++#: cp/decl.c:7204 + msgid "storage class specifiers invalid in parameter declarations" + msgstr "spécificateurs de classe de stockage invalides dans la déclaration des paramètres" + +-#: cp/decl.c:7113 ++#: cp/decl.c:7208 + msgid "typedef declaration invalid in parameter declaration" + msgstr "déclaration typedef invalide dans le paramètre de la déclaration" + +-#: cp/decl.c:7126 ++#: cp/decl.c:7221 + msgid "virtual outside class declaration" + msgstr "virtuel en dehors de la déclaration de classe" + +-#: cp/decl.c:7185 ++#: cp/decl.c:7280 + #, c-format + msgid "storage class specified for %s `%s'" + msgstr "classe de stockage spécifiée pour %s « %s »" + +-#: cp/decl.c:7220 ++#: cp/decl.c:7315 + #, c-format + msgid "top-level declaration of `%s' specifies `auto'" + msgstr "la déclaration hors de toute fonction de « %s » a spécifié « auto »" + +-#: cp/decl.c:7232 ++#: cp/decl.c:7327 + msgid "storage class specifiers invalid in friend function declarations" + msgstr "spécificateurs de classe de stockage invalide dans les déclarations de fonction amie" + +-#: cp/decl.c:7397 ++#: cp/decl.c:7492 + msgid "destructor cannot be static member function" + msgstr "le destructeur ne peut être une fonction membre statique" + +-#: cp/decl.c:7400 ++#: cp/decl.c:7495 + #, c-format + msgid "destructors may not be `%s'" + msgstr "destructeurs ne peut être « %s »" + +-#: cp/decl.c:7421 ++#: cp/decl.c:7516 + msgid "constructor cannot be static member function" + msgstr "le constructeur ne peut être une fonction membre statique" + +-#: cp/decl.c:7424 ++#: cp/decl.c:7519 + msgid "constructors cannot be declared virtual" + msgstr "constructeurs ne peut être déclarés virtuels" + +-#: cp/decl.c:7429 ++#: cp/decl.c:7524 + #, c-format + msgid "constructors may not be `%s'" + msgstr "constructeurs ne peuvent pas être « %s »" + +-#: cp/decl.c:7439 ++#: cp/decl.c:7534 + msgid "return value type specifier for constructor ignored" + msgstr "type de valeur retournée d'un spécificateur pour un constructeur est ignoré" + +-#: cp/decl.c:7458 ++#: cp/decl.c:7553 + #, c-format + msgid "can't initialize friend function `%s'" + msgstr "ne peut initialiser la fonction amie « %s »" + + #. Cannot be both friend and virtual. +-#: cp/decl.c:7462 ++#: cp/decl.c:7557 + msgid "virtual functions cannot be friends" + msgstr "fonctions virtuelles ne peuvent être amies" + +-#: cp/decl.c:7467 ++#: cp/decl.c:7562 + msgid "friend declaration not in class definition" + msgstr "déclaration amie n'est pas dans la définition de classe" + +-#: cp/decl.c:7469 ++#: cp/decl.c:7564 + #, c-format + msgid "can't define friend function `%s' in a local class definition" + msgstr "ne peut définir une fonction amie « %s » dans une définition locale de classe" + +-#: cp/decl.c:7490 ++#: cp/decl.c:7585 + msgid "destructors may not have parameters" + msgstr "destructeurs ne peuvent pas avoir de paramètre" + +-#: cp/decl.c:7510 cp/decl.c:7517 ++#: cp/decl.c:7605 cp/decl.c:7612 + msgid "cannot declare reference to `%#T'" + msgstr "ne peut déclarer une référence vers « %#T »" + +-#: cp/decl.c:7511 ++#: cp/decl.c:7606 + msgid "cannot declare pointer to `%#T'" + msgstr "ne peut déclarer un pointeur vers « %#T »" + +-#: cp/decl.c:7516 ++#: cp/decl.c:7611 + msgid "cannot declare pointer to `%#T' member" + msgstr "ne peut déclarer un pointeur vers le membre « %#T »" + +-#: cp/decl.c:7655 ++#: cp/decl.c:7750 + msgid "extra qualification `%T::' on member `%s' ignored" + msgstr "qualification additionnelle « %T:: » sur le membre « %s » est ignorée" + +-#: cp/decl.c:7671 ++#: cp/decl.c:7766 + msgid "cannot declare member function `%T::%s' within `%T'" + msgstr "ne peut déclarer la fonction membre « %T::%s » à l'intérieur de « %T »" + +-#: cp/decl.c:7686 ++#: cp/decl.c:7781 + msgid "cannot declare member `%T::%s' within `%T'" + msgstr "ne peut déclarer le membre « %T::%s » à l'intérieur de « %T »" + +-#: cp/decl.c:7766 ++#: cp/decl.c:7861 + msgid "data member may not have variably modified type `%T'" + msgstr "membre de données peut ne pas avoir de type « %T » modifié de manière variable" + +-#: cp/decl.c:7768 ++#: cp/decl.c:7863 + msgid "parameter may not have variably modified type `%T'" + msgstr "paramètre peut ne pas avoir de type « %T » modifié de manière variable" + + #. [dcl.fct.spec] The explicit specifier shall only be used in + #. declarations of constructors within a class definition. +-#: cp/decl.c:7776 ++#: cp/decl.c:7871 + msgid "only declarations of constructors can be `explicit'" + msgstr "seuls les déclarations de constructeurs peuvent être « explicit »" + +-#: cp/decl.c:7784 ++#: cp/decl.c:7879 + #, c-format + msgid "non-member `%s' cannot be declared `mutable'" + msgstr "le non membre « %s » ne peut être déclaré « mutable »" + +-#: cp/decl.c:7789 ++#: cp/decl.c:7884 + #, c-format + msgid "non-object member `%s' cannot be declared `mutable'" + msgstr "un membre non objet « %s » ne peut être déclaré « mutable »" + +-#: cp/decl.c:7795 ++#: cp/decl.c:7890 + #, c-format + msgid "function `%s' cannot be declared `mutable'" + msgstr "fonction « %s » ne peut être déclarée « mutable »" + +-#: cp/decl.c:7800 ++#: cp/decl.c:7895 + #, c-format + msgid "static `%s' cannot be declared `mutable'" + msgstr "static « %s » ne peut être déclaré « mutable »" + +-#: cp/decl.c:7805 ++#: cp/decl.c:7900 + #, c-format + msgid "const `%s' cannot be declared `mutable'" + msgstr "const « %s » ne peut être déclaré « mutable »" + +-#: cp/decl.c:7818 ++#: cp/decl.c:7913 + msgid "template-id `%D' used as a declarator" + msgstr "identificateur de patron « %D » utilisé comme déclarateur" + +-#: cp/decl.c:7839 ++#: cp/decl.c:7934 + msgid "ISO C++ forbids nested type `%D' with same name as enclosing class" + msgstr "ISO C++ interdit le type imbriqué « %D » avec le même nom que la classe de fermeture" + +-#: cp/decl.c:7847 ++#: cp/decl.c:7942 + msgid "%Jtypedef name may not be a nested-name-specifier" + msgstr "%Jnom du typedef peut ne pas être un nom de spécificateur imbriqué" + +-#: cp/decl.c:7893 ++#: cp/decl.c:7988 + msgid "%Jinvalid type qualifier for non-member function type" + msgstr "%Jqualificateur de type invalide pour un type de fonction non membre" + +-#: cp/decl.c:7956 ++#: cp/decl.c:8051 + msgid "type qualifiers specified for friend class declaration" + msgstr "qulificateurs de types spécifiés pour la déclaration d'une classe amie" + +-#: cp/decl.c:7961 ++#: cp/decl.c:8056 + msgid "`inline' specified for friend class declaration" + msgstr "« inline » spécifié pour la déclaration d'une classe amie" + +-#: cp/decl.c:7969 ++#: cp/decl.c:8064 + msgid "template parameters cannot be friends" + msgstr "paramètres du patron ne peuvent pas être amis" + +-#: cp/decl.c:7971 ++#: cp/decl.c:8066 + msgid "friend declaration requires class-key, i.e. `friend class %T::%D'" + msgstr "déclaration ami requiert une clé de classe, i.e. « friend class %T::%D »" + +-#: cp/decl.c:7975 ++#: cp/decl.c:8070 + msgid "friend declaration requires class-key, i.e. `friend %#T'" + msgstr "déclaration amie requiert une clé de classes, i.e. « friend %#T »" + +-#: cp/decl.c:7988 ++#: cp/decl.c:8083 + msgid "trying to make class `%T' a friend of global scope" + msgstr "tentative de rendre la classe « %T » un ami de la portée globale" + +-#: cp/decl.c:7999 ++#: cp/decl.c:8094 + msgid "invalid qualifiers on non-member function type" + msgstr "qualificteurs invalide pour un type de fonction (autre que fonction membre)" + +-#: cp/decl.c:8018 ++#: cp/decl.c:8113 + msgid "abstract declarator `%T' used as declaration" + msgstr "déclaration abstrait « %T » utilisé dans la déclaration" + +-#: cp/decl.c:8030 +-msgid "unnamed variable or field declared void" +-msgstr "variable non nommée ou champ déclaré void" +- +-#: cp/decl.c:8039 +-msgid "variable or field declared void" +-msgstr "variable ou champ déclaré void" +- +-#: cp/decl.c:8049 ++#: cp/decl.c:8139 + msgid "cannot use `::' in parameter declaration" + msgstr "ne peut utiliser «::» dans le paramètre d'un déclaration" + + #. Something like struct S { int N::j; }; +-#: cp/decl.c:8094 ++#: cp/decl.c:8184 + msgid "invalid use of `::'" + msgstr "utilisation invalide de « :: »" + +-#: cp/decl.c:8106 ++#: cp/decl.c:8196 + msgid "function `%D' cannot be declared friend" + msgstr "fonction « %D » ne peut être déclarée amie" + +-#: cp/decl.c:8118 ++#: cp/decl.c:8208 + msgid "can't make `%D' into a method -- not in a class" + msgstr "ne peut rendre « %D » dans la méthode -- n'est pas dans la classe" + +-#: cp/decl.c:8127 ++#: cp/decl.c:8217 + msgid "function `%D' declared virtual inside a union" + msgstr "fonction « %D » déclaré comme virtuelle à l'intérieur d'un agrégat" + +-#: cp/decl.c:8136 ++#: cp/decl.c:8226 + msgid "`%D' cannot be declared virtual, since it is always static" + msgstr "« %D » ne peut être déclaré virtuel, alors qu'il est toujours statique" + +-#: cp/decl.c:8215 ++#: cp/decl.c:8305 + msgid "field `%D' has incomplete type" + msgstr "champ « %D » a un type incomplet" + +-#: cp/decl.c:8217 ++#: cp/decl.c:8307 + msgid "name `%T' has incomplete type" + msgstr "nom « %T » a un type incomplet" + +-#: cp/decl.c:8226 ++#: cp/decl.c:8316 + msgid " in instantiation of template `%T'" + msgstr " dans l'instanciation du patron « %T »" + +-#: cp/decl.c:8236 ++#: cp/decl.c:8326 + #, c-format + msgid "`%s' is neither function nor member function; cannot be declared friend" + msgstr "« %s » n'est ni une fonction ni une fonction membre ; ne peut être déclaré ami" + +-#: cp/decl.c:8247 ++#: cp/decl.c:8337 + msgid "member functions are implicitly friends of their class" + msgstr "les fonctions membres sont implicitement amis de leur classe" + +@@ -14594,91 +14642,91 @@ + #. the rest of the compiler does not correctly + #. handle the initialization unless the member is + #. static so we make it static below. +-#: cp/decl.c:8287 ++#: cp/decl.c:8377 + msgid "ISO C++ forbids initialization of member `%D'" + msgstr "ISO C++ interdit l'initialisation du membre « %D »" + +-#: cp/decl.c:8289 ++#: cp/decl.c:8379 + msgid "making `%D' static" + msgstr "rendant « %D » statique" + +-#: cp/decl.c:8345 ++#: cp/decl.c:8435 + #, c-format + msgid "storage class `auto' invalid for function `%s'" + msgstr "classe de stockage « auto» invalide pour une fonction « %s »" + +-#: cp/decl.c:8347 ++#: cp/decl.c:8437 + #, c-format + msgid "storage class `register' invalid for function `%s'" + msgstr "classe de stockage « register» invalide pour une fonction « %s »" + +-#: cp/decl.c:8349 ++#: cp/decl.c:8439 + #, c-format + msgid "storage class `__thread' invalid for function `%s'" + msgstr "classe de stockage « __thread » invalide pour la fonction « %s »" + +-#: cp/decl.c:8360 ++#: cp/decl.c:8450 + #, c-format + msgid "storage class `static' invalid for function `%s' declared out of global scope" + msgstr "classe de stockage « static» invalide pour une fonction « %s » déclarée en dehors de la portée globale" + +-#: cp/decl.c:8362 ++#: cp/decl.c:8452 + #, c-format + msgid "storage class `inline' invalid for function `%s' declared out of global scope" + msgstr "classe de stockage « inline» invalide pour une fonction « %s » déclarée en dehors de la portée globale" + +-#: cp/decl.c:8369 ++#: cp/decl.c:8459 + #, c-format + msgid "virtual non-class function `%s'" + msgstr "fonction virtuelle d'une non classe « %s »" + +-#: cp/decl.c:8400 ++#: cp/decl.c:8490 + msgid "cannot declare member function `%D' to have static linkage" + msgstr "ne peut déclarer la fonction membre « %D » comme ayant un lien statique" + + #. FIXME need arm citation +-#: cp/decl.c:8406 ++#: cp/decl.c:8496 + msgid "cannot declare static function inside another function" + msgstr "ne peut déclarer une fonction statique à l'intérieur d'une autre fonction" + +-#: cp/decl.c:8434 ++#: cp/decl.c:8524 + msgid "`static' may not be used when defining (as opposed to declaring) a static data member" + msgstr "« static » ne peut pas être utilisé lors de la définition (contrairement à la déclaration) de données de membres statiques" + +-#: cp/decl.c:8440 ++#: cp/decl.c:8530 + msgid "static member `%D' declared `register'" + msgstr "mambre statique « %D» déclaré «register »" + +-#: cp/decl.c:8445 ++#: cp/decl.c:8535 + msgid "cannot explicitly declare member `%#D' to have extern linkage" + msgstr "ne peut explicitement déclarer le membre « %#D » comme ayant une liaison externe" + +-#: cp/decl.c:8585 ++#: cp/decl.c:8675 + msgid "default argument for `%#D' has type `%T'" + msgstr "argument par défaut pour « %#D » à un type « %T »" + +-#: cp/decl.c:8588 ++#: cp/decl.c:8678 + msgid "default argument for parameter of type `%T' has type `%T'" + msgstr "argument par défaut pour le paramètre de type « %T » a le type « %T »" + +-#: cp/decl.c:8605 ++#: cp/decl.c:8695 + msgid "default argument `%E' uses local variable `%D'" + msgstr "argument par défaut « %E » utiliser une variable locale « %D »" + +-#: cp/decl.c:8649 ++#: cp/decl.c:8739 + #, c-format + msgid "invalid string constant `%E'" + msgstr "constante chaîne invalide « %E »" + +-#: cp/decl.c:8651 ++#: cp/decl.c:8741 + msgid "invalid integer constant in parameter list, did you forget to give parameter name?" + msgstr "constante entière invalide dans la liste de paramètre, avez-vous oublier de donner un nom de paramètre?" + +-#: cp/decl.c:8689 ++#: cp/decl.c:8779 + msgid "parameter `%D' invalidly declared method type" + msgstr "paramètre « %D » incorrectement validé comme type de méthode" + +-#: cp/decl.c:8713 ++#: cp/decl.c:8803 + msgid "parameter `%D' includes %s to array of unknown bound `%T'" + msgstr "paramètre « %D » inclut %s au tableau de bornes inconnues « %T »" + +@@ -14697,93 +14745,93 @@ + #. or implicitly defined), there's no need to worry about their + #. existence. Theoretically, they should never even be + #. instantiated, but that's hard to forestall. +-#: cp/decl.c:8872 ++#: cp/decl.c:8962 + msgid "invalid constructor; you probably meant `%T (const %T&)'" + msgstr "constructeur invalide; vous vouliez probablement dire « %T (const %T&) »" + +-#: cp/decl.c:9000 ++#: cp/decl.c:9090 + msgid "`%D' must be a nonstatic member function" + msgstr "« %D » doit être une fonction membre non statique" + +-#: cp/decl.c:9006 ++#: cp/decl.c:9096 + msgid "`%D' must be either a non-static member function or a non-member function" + msgstr "« %D » doit être soit un membre non statique de fonction ou une fonction non membre" + +-#: cp/decl.c:9023 ++#: cp/decl.c:9113 + msgid "`%D' must have an argument of class or enumerated type" + msgstr "« %D » doit avoir un argument de classe ou de type énuméré" + +-#: cp/decl.c:9058 ++#: cp/decl.c:9148 + #, c-format + msgid "conversion to %s%s will never use a type conversion operator" + msgstr "conversion de %s%s ne sera jamais utilisé dans un type d'opérateur de conversion" + + #. 13.4.0.3 +-#: cp/decl.c:9065 ++#: cp/decl.c:9155 + msgid "ISO C++ prohibits overloading operator ?:" + msgstr "ISO C++ interdit la surcharge de l'opérateur ?:" + +-#: cp/decl.c:9115 ++#: cp/decl.c:9205 + msgid "postfix `%D' must take `int' as its argument" + msgstr "postfixe « %D» doit prendre « int » comme argument" + +-#: cp/decl.c:9119 ++#: cp/decl.c:9209 + msgid "postfix `%D' must take `int' as its second argument" + msgstr "postfixe « %D» doit prndre « int » pour son second argument" + +-#: cp/decl.c:9126 ++#: cp/decl.c:9216 + msgid "`%D' must take either zero or one argument" + msgstr "« %D » doit prendre seulement zéro ou un autre argument" + +-#: cp/decl.c:9128 ++#: cp/decl.c:9218 + msgid "`%D' must take either one or two arguments" + msgstr "« %D » doit prendre seulement un OU deux arguments" + +-#: cp/decl.c:9149 ++#: cp/decl.c:9239 + msgid "prefix `%D' should return `%T'" + msgstr "préfixe « %D » devrait retourner « %T »" + +-#: cp/decl.c:9155 ++#: cp/decl.c:9245 + msgid "postfix `%D' should return `%T'" + msgstr "postfixe « %D » devrait retourner « %T »" + +-#: cp/decl.c:9164 ++#: cp/decl.c:9254 + msgid "`%D' must take `void'" + msgstr "« %D» doit prendre « void »" + +-#: cp/decl.c:9166 cp/decl.c:9174 ++#: cp/decl.c:9256 cp/decl.c:9264 + msgid "`%D' must take exactly one argument" + msgstr "« %D » doit prendre exactement un argument" + +-#: cp/decl.c:9176 ++#: cp/decl.c:9266 + msgid "`%D' must take exactly two arguments" + msgstr "« %D » doit prendre exactemenr deux arguments" + +-#: cp/decl.c:9184 ++#: cp/decl.c:9274 + msgid "user-defined `%D' always evaluates both arguments" + msgstr "« %D » défini par l'usager évalue toujours les 2 arguments" + +-#: cp/decl.c:9198 ++#: cp/decl.c:9288 + msgid "`%D' should return by value" + msgstr "« %D » devrait retourner par valeur" + +-#: cp/decl.c:9210 cp/decl.c:9213 ++#: cp/decl.c:9300 cp/decl.c:9303 + msgid "`%D' cannot have default arguments" + msgstr "« %D » ne peut avoir d'arguments par défaut" + +-#: cp/decl.c:9273 ++#: cp/decl.c:9363 + msgid "using typedef-name `%D' after `%s'" + msgstr "utilisation d'un nom de typedef « %D » après « %s »" + +-#: cp/decl.c:9279 ++#: cp/decl.c:9369 + msgid "using template type parameter `%T' after `%s'" + msgstr "utilisation de type de patron de paramètre « %T » après « %s »" + +-#: cp/decl.c:9287 ++#: cp/decl.c:9377 + msgid "`%T' referred to as `%s'" + msgstr "« %TD » référé comme « %s »" + +-#: cp/decl.c:9293 ++#: cp/decl.c:9383 + msgid "`%T' referred to as enum" + msgstr "« %T » référé comme enum" + +@@ -14794,47 +14842,47 @@ + #. void f(class C); // No template header here + #. + #. then the required template argument is missing. +-#: cp/decl.c:9308 ++#: cp/decl.c:9398 + msgid "template argument required for `%s %T'" + msgstr "argument du patron est requis pour « %s %T »" + +-#: cp/decl.c:9453 ++#: cp/decl.c:9543 + msgid "use of enum `%#D' without previous declaration" + msgstr "utilisation de enum « %#D » sans déclaration précédente" + +-#: cp/decl.c:9471 ++#: cp/decl.c:9561 + msgid "redeclaration of `%T' as a non-template" + msgstr "redéclaration de « %T » qui n'est pas un patron" + +-#: cp/decl.c:9517 ++#: cp/decl.c:9607 + msgid "derived union `%T' invalid" + msgstr "union dérivée « %T » invalide" + +-#: cp/decl.c:9570 ++#: cp/decl.c:9660 + msgid "base type `%T' fails to be a struct or class type" + msgstr "type de base « %T » a échoué pour devenir un type de classe ou un type construit" + +-#: cp/decl.c:9578 ++#: cp/decl.c:9668 + msgid "recursive type `%T' undefined" + msgstr "type récursif « %T » non défini" + +-#: cp/decl.c:9580 ++#: cp/decl.c:9670 + msgid "duplicate base type `%T' invalid" + msgstr "duplication du type de base « %T » invalide" + +-#: cp/decl.c:9658 ++#: cp/decl.c:9748 + msgid "Java class '%T' cannot have multiple bases" + msgstr "classe Java « %T » ne peut avoir de bases multiples" + +-#: cp/decl.c:9660 ++#: cp/decl.c:9750 + msgid "Java class '%T' cannot have virtual bases" + msgstr "classe Java « %T » ne peut avoir de bases virtuelles" + +-#: cp/decl.c:9700 ++#: cp/decl.c:9790 + msgid "multiple definition of `%#T'" + msgstr "définition multiple de « %#T »" + +-#: cp/decl.c:9701 ++#: cp/decl.c:9791 + msgid "%Jprevious definition here" + msgstr "%Jdéfinition précédente ici" + +@@ -14842,47 +14890,47 @@ + #. + #. IF no integral type can represent all the enumerator values, the + #. enumeration is ill-formed. +-#: cp/decl.c:9836 ++#: cp/decl.c:9926 + msgid "no integral type can represent all of the enumerator values for `%T'" + msgstr "aucun type entier peut représenter toutes les valeurs de l'énumérateur pour « %T »" + +-#: cp/decl.c:9926 ++#: cp/decl.c:10023 + msgid "enumerator value for `%D' not integer constant" + msgstr "valeur de l'énumérateur pour « %D » n'est pas une constante entière" + +-#: cp/decl.c:9946 ++#: cp/decl.c:10043 + msgid "overflow in enumeration values at `%D'" + msgstr "débordement dans les valeurs de l'énumération à « %D »" + +-#: cp/decl.c:10015 ++#: cp/decl.c:10112 + msgid "return type `%#T' is incomplete" + msgstr "type retourné « %#T » est incomplet" + +-#: cp/decl.c:10133 ++#: cp/decl.c:10230 + msgid "return type for `main' changed to `int'" + msgstr "type retourné pour « main » est changé pour «int »" + +-#: cp/decl.c:10162 ++#: cp/decl.c:10259 + msgid "`%D' implicitly declared before its definition" + msgstr "« %D » implicitement déclaré avant sa définition" + +-#: cp/decl.c:10184 cp/typeck.c:6071 ++#: cp/decl.c:10281 cp/typeck.c:6092 + msgid "`operator=' should return a reference to `*this'" + msgstr "« operator= » devrait retourner une référence à «*ceci »" + +-#: cp/decl.c:10453 ++#: cp/decl.c:10550 + msgid "parameter `%D' declared void" + msgstr "paramètre « %D » déclaré «void »" + +-#: cp/decl.c:10919 ++#: cp/decl.c:11016 + msgid "invalid member function declaration" + msgstr "déclaration de membre de fonction invalide" + +-#: cp/decl.c:10936 ++#: cp/decl.c:11033 + msgid "`%D' is already defined in class `%T'" + msgstr "« %D » est déjà défini dans la classe « %T »" + +-#: cp/decl.c:11149 ++#: cp/decl.c:11246 + msgid "static member function `%#D' declared with type qualifiers" + msgstr "membre de fonction statique « %#D » déclaré avec des qualificateurs de tyep" + +@@ -14930,7 +14978,7 @@ + msgid "invalid use of `virtual' in template declaration of `%#D'" + msgstr "utilisation invalide de « virtual» dans la déclaration d'un patron de « %#D »" + +-#: cp/decl2.c:541 cp/pt.c:2834 ++#: cp/decl2.c:541 cp/pt.c:2878 + msgid "template declaration of `%#D'" + msgstr "déclaration du patron de « %#D »" + +@@ -15002,40 +15050,40 @@ + msgid "anonymous struct not inside named type" + msgstr "struct anonyme n'est pas l'intérieur du type nommé" + +-#: cp/decl2.c:1218 ++#: cp/decl2.c:1224 + msgid "namespace-scope anonymous aggregates must be static" + msgstr "aggrégats anonymes de champs d'espace nom doit être statique" + +-#: cp/decl2.c:1225 ++#: cp/decl2.c:1231 + msgid "anonymous union with no members" + msgstr "aggrégat anonyme sans aucun membre" + +-#: cp/decl2.c:1259 ++#: cp/decl2.c:1265 + msgid "`operator new' must return type `%T'" + msgstr "« operator new » doit retourner un type « %T »" + +-#: cp/decl2.c:1267 ++#: cp/decl2.c:1273 + msgid "`operator new' takes type `size_t' (`%T') as first parameter" + msgstr "« operator new » prend le type « size_t » (« %T ») comme premier paramètre" + +-#: cp/decl2.c:1293 ++#: cp/decl2.c:1299 + msgid "`operator delete' must return type `%T'" + msgstr "« operator delete » doit retourner le type « %T »" + +-#: cp/decl2.c:1301 ++#: cp/decl2.c:1307 + msgid "`operator delete' takes type `%T' as first parameter" + msgstr "« operator delete » prend le type « %T » comme premier paramètre" + +-#: cp/decl2.c:2810 ++#: cp/decl2.c:2816 + msgid "inline function `%D' used but never defined" + msgstr "fonction enligne « %D » utilisé mais n'a jamais été défini" + +-#: cp/decl2.c:2956 ++#: cp/decl2.c:2962 + msgid "default argument missing for parameter %P of `%+#D'" + msgstr "argument par défaut manquant pour le paramètre %P de « %+#D »" + + #. damn ICE suppression +-#: cp/error.c:2387 ++#: cp/error.c:2385 + #, c-format + msgid "unexpected letter `%c' in locate_error\n" + msgstr "lettre inattendue « %c » dans locate_error\n" +@@ -15062,7 +15110,7 @@ + msgid "throwing NULL, which has integral, not pointer type" + msgstr "retounrnant NULL (par throw), lequel est entier, pas de type pointeur" + +-#: cp/except.c:598 cp/init.c:2038 ++#: cp/except.c:598 cp/init.c:2047 + msgid "`%D' should never be overloaded" + msgstr "« %D » ne devrait jamais être surchargé" + +@@ -15140,7 +15188,7 @@ + msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning" + msgstr "(si ce n'est pas ce que vous vouliez faire, soyez sûr que le patron de la fonction a déjà été déclaré et ajouter <> après le nom de la fonction ici) -Wno-non-template-friend désactive le présent avertissement" + +-#: cp/g++spec.c:229 java/jvspec.c:415 ++#: cp/g++spec.c:232 java/jvspec.c:415 + #, c-format + msgid "argument to `%s' missing\n" + msgstr "argument pour « %s » est manquant\n" +@@ -15265,59 +15313,59 @@ + msgid "incomplete type `%T' does not have member `%D'" + msgstr "type incomplet « %T » n'a pas de membre « %D »" + +-#: cp/init.c:1459 ++#: cp/init.c:1460 + msgid "`%D' is not a member of type `%T'" + msgstr "« %D » n'est pas un membre de type « %T »" + +-#: cp/init.c:1478 ++#: cp/init.c:1487 + msgid "invalid pointer to bit-field `%D'" + msgstr "pointeur invalide pour un champ de bits « %D »" + +-#: cp/init.c:1580 ++#: cp/init.c:1589 + msgid "invalid use of non-static member function `%D'" + msgstr "utilisation invalide d'un membre non statique de fonction « %D »" + +-#: cp/init.c:1586 cp/semantics.c:1236 ++#: cp/init.c:1595 cp/semantics.c:1236 + msgid "invalid use of non-static data member `%D'" + msgstr "utilisation invalide d'un membre non statique de données « %D »" + +-#: cp/init.c:1725 ++#: cp/init.c:1734 + msgid "new of array type fails to specify size" + msgstr "new sur un type tableau a échoué dans l'évaluation de la taille" + +-#: cp/init.c:1736 ++#: cp/init.c:1745 + msgid "size in array new must have integral type" + msgstr "taille d'un nouveau tableau (new) doit avoir un type entier" + +-#: cp/init.c:1742 ++#: cp/init.c:1751 + msgid "zero size array reserves no space" + msgstr "tableau de taille zéro ne réserve pas d'espace" + +-#: cp/init.c:1809 ++#: cp/init.c:1818 + msgid "new cannot be applied to a reference type" + msgstr "new ne peut être appliqué à un type référencé" + +-#: cp/init.c:1815 ++#: cp/init.c:1824 + msgid "new cannot be applied to a function type" + msgstr "new ne peut être appliqué à un type de fonction" + +-#: cp/init.c:1861 ++#: cp/init.c:1870 + msgid "call to Java constructor, while `jclass' undefined" + msgstr "appel d'un constructeur Java, alors que « jclass » est indéfini" + +-#: cp/init.c:1877 ++#: cp/init.c:1886 + msgid "can't find class$" + msgstr "ne peut repérer class$" + +-#: cp/init.c:2004 ++#: cp/init.c:2013 + msgid "invalid type `void' for new" + msgstr "type « void » invalide pour new" + +-#: cp/init.c:2014 ++#: cp/init.c:2023 + msgid "uninitialized const in `new' of `%#T'" + msgstr "constante non initialisée dans « new» pour « %#T »" + +-#: cp/init.c:2033 ++#: cp/init.c:2042 + #, c-format + msgid "call to Java constructor with `%s' undefined" + msgstr "appel au constructeur Java avec « %s » indéfini" +@@ -15325,39 +15373,39 @@ + #. See PR 15967. This should never happen (and it is + #. fixed correctly in mainline), but on the release branch + #. we prefer this less-intrusive approacch. +-#: cp/init.c:2077 ++#: cp/init.c:2086 + msgid "no suitable or ambiguous `%D' found in class `%T'" + msgstr "« %D » non adapté ou ambiguë repéré dans la classe « %T »" + +-#: cp/init.c:2083 ++#: cp/init.c:2092 + msgid "request for member `%D' is ambiguous" + msgstr "la requête pour le membre « %D » est ambiguë" + +-#: cp/init.c:2203 ++#: cp/init.c:2212 + msgid "ISO C++ forbids initialization in array new" + msgstr "ISO C++ interdit l'initialisation d'un nouveau tableau" + +-#: cp/init.c:2677 ++#: cp/init.c:2686 + msgid "initializer ends prematurely" + msgstr "fin prématurée de l'initialisation" + +-#: cp/init.c:2734 ++#: cp/init.c:2743 + msgid "cannot initialize multi-dimensional array with initializer" + msgstr "ne peut initialiser un table multi-dimensionnel avec initialiseur" + +-#: cp/init.c:2895 ++#: cp/init.c:2904 + msgid "possible problem detected in invocation of delete operator:" + msgstr "problème possible détecté dans l'invocation de l'opérateur delete:" + +-#: cp/init.c:2898 ++#: cp/init.c:2907 + msgid "neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined." + msgstr "ni le destructeur ni l'opérateur « delete » spécifique à la classe ne sera appellé, même s'ils sont déclarés lorsque la classe est définie" + +-#: cp/init.c:2919 ++#: cp/init.c:2928 + msgid "unknown array size in delete" + msgstr "taille du tableau inconnue dans delete" + +-#: cp/init.c:3184 ++#: cp/init.c:3193 + msgid "type to vector delete is neither pointer or array type" + msgstr "type du vesteur delete n'est ni un pointeur ou un type tableau" + +@@ -15422,15 +15470,15 @@ + msgid "(if you use `-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)" + msgstr "(si vous utilisez « -fpermissive », G++ acceptera votre core, mais permettre l'utilisation d'un nom non déclaré est obsolète)" + +-#: cp/mangle.c:2037 ++#: cp/mangle.c:2050 + msgid "call_expr cannot be mangled due to a defect in the C++ ABI" + msgstr "call_expr ne peut être mutilé en raison d'un faute dans l'ABI C++" + +-#: cp/mangle.c:2090 ++#: cp/mangle.c:2103 + msgid "omitted middle operand to `?:' operand cannot be mangled" + msgstr "opérande du milieu « ?: » omise, l'opérande ne peut être mutilée" + +-#: cp/mangle.c:2389 ++#: cp/mangle.c:2402 + msgid "the mangled name of `%D' will change in a future version of GCC" + msgstr "le nom mutilé de « %D » sera modifié dans une version future de GCC" + +@@ -15571,7 +15619,7 @@ + + #. It's a nested name with template parameter dependent scope. + #. This can only be using-declaration for class member. +-#: cp/name-lookup.c:2126 cp/name-lookup.c:2140 cp/name-lookup.c:3380 ++#: cp/name-lookup.c:2126 cp/name-lookup.c:2140 cp/name-lookup.c:3362 + msgid "`%T' is not a namespace" + msgstr "« %T » n'est pas un espace de noms" + +@@ -15606,86 +15654,86 @@ + msgid "using-declaration cannot name destructor" + msgstr "utilisation de déclaration ne peut nommer le destructeur" + +-#: cp/name-lookup.c:3005 ++#: cp/name-lookup.c:2984 + msgid "declaration of `%D' not in a namespace surrounding `%D'" + msgstr "déclaration de « %D » n'est pas dans l'espace de noms entourant « %D »" + +-#: cp/name-lookup.c:3045 ++#: cp/name-lookup.c:3024 + msgid "`%D' should have been declared inside `%D'" + msgstr "« %D » devrait avoir été déclaré à l'intérieur de « %D »" + +-#: cp/name-lookup.c:3109 ++#: cp/name-lookup.c:3088 + msgid "namespace alias `%D' not allowed here, assuming `%D'" + msgstr "alias d'espace de noms « %D » n'est pas permis ici, on assume « %D »" + + #. The parser did not find it, so it's not there. +-#: cp/name-lookup.c:3224 ++#: cp/name-lookup.c:3203 + msgid "unknown namespace `%D'" + msgstr "espace de nomes inconnu « %D »" + +-#: cp/name-lookup.c:3374 ++#: cp/name-lookup.c:3356 + msgid "namespace `%T' undeclared" + msgstr "espace de noms « %T » n'est pas déclaré" + +-#: cp/name-lookup.c:3407 ++#: cp/name-lookup.c:3389 + msgid "strong using only meaningful at namespace scope" + msgstr "forte n'ayant un sens seulement sur l'étendue de l'espace nom" + +-#: cp/name-lookup.c:3414 ++#: cp/name-lookup.c:3396 + msgid "`%D' attribute directive ignored" + msgstr "« %D » attribut de directive ignoré" + +-#: cp/name-lookup.c:3547 ++#: cp/name-lookup.c:3529 + msgid "use of `%D' is ambiguous" + msgstr "utilisation de « %D » est ambiguë" + +-#: cp/name-lookup.c:3548 ++#: cp/name-lookup.c:3530 + msgid " first declared as `%#D' here" + msgstr " d'abord déclaré comme « %#D » ici" + +-#: cp/name-lookup.c:3551 ++#: cp/name-lookup.c:3533 + msgid " also declared as `%#D' here" + msgstr " aussi déclaré comme « %#D » ici" + +-#: cp/name-lookup.c:3566 ++#: cp/name-lookup.c:3548 + msgid "`%D' denotes an ambiguous type" + msgstr "« %D » dénote un type ambigu" + +-#: cp/name-lookup.c:3567 ++#: cp/name-lookup.c:3549 + msgid "%J first type here" + msgstr "%J premier type ici" + +-#: cp/name-lookup.c:3568 ++#: cp/name-lookup.c:3550 + msgid "%J other type here" + msgstr "%J autre type ici" + + #. This happens for A::B where B is a template, and there are no + #. template arguments. +-#: cp/name-lookup.c:3633 cp/typeck.c:1792 ++#: cp/name-lookup.c:3615 cp/typeck.c:1792 + msgid "invalid use of `%D'" + msgstr "utilisation invalide de « %D »" + +-#: cp/name-lookup.c:3674 ++#: cp/name-lookup.c:3656 + msgid "`%D::%D' is not a template" + msgstr "« %D::%D » n'est pas un patron" + +-#: cp/name-lookup.c:3691 ++#: cp/name-lookup.c:3673 + msgid "`%D' undeclared in namespace `%D'" + msgstr "« %D » non déclaré dans l'espace de noms « %D »" + +-#: cp/name-lookup.c:4153 ++#: cp/name-lookup.c:4135 + msgid "`%D' is not a function," + msgstr "« %D » n'est pas une fonction" + +-#: cp/name-lookup.c:4154 ++#: cp/name-lookup.c:4136 + msgid " conflict with `%D'" + msgstr " en conflit avec « %D »" + +-#: cp/name-lookup.c:4911 ++#: cp/name-lookup.c:4893 + msgid "XXX entering pop_everything ()\n" + msgstr "XXX on entre dans pop_everything ()\n" + +-#: cp/name-lookup.c:4920 ++#: cp/name-lookup.c:4902 + msgid "XXX leaving pop_everything ()\n" + msgstr "XXX on quitte pop_everything ()\n" + +@@ -15697,7 +15745,7 @@ + msgid "`%D::%D' has not been declared" + msgstr "« %D::%D » n'a pas été déclaré" + +-#: cp/parser.c:1809 cp/semantics.c:2308 ++#: cp/parser.c:1809 cp/semantics.c:2305 + msgid "`::%D' has not been declared" + msgstr "« ::%D » n'a pas été déclaré" + +@@ -15721,7 +15769,7 @@ + msgid "new types may not be defined in a return type" + msgstr "nouveaux types ne peuvent être définis dans un type à retourner" + +-#: cp/parser.c:1888 cp/pt.c:4196 ++#: cp/parser.c:1888 cp/pt.c:4238 + msgid "`%T' is not a template" + msgstr "« %T » n'est pas un patron" + +@@ -15769,179 +15817,179 @@ + msgid "typedef-name `%D' used as destructor declarator" + msgstr "nom du typdef « %D » utilisé comme déclarateur de destructeur" + +-#: cp/parser.c:3638 ++#: cp/parser.c:3648 + msgid "ISO C++ forbids compound-literals" + msgstr "ISO C++ interdit les chaînes composées" + +-#: cp/parser.c:4461 ++#: cp/parser.c:4498 + msgid "array bound forbidden after parenthesized type-id" + msgstr "les limites du tableau interdisent ce qui suit après le type-id mis entre parenthèses" + +-#: cp/parser.c:4462 ++#: cp/parser.c:4499 + msgid "try removing the parentheses around the type-id" + msgstr "essayer d'enlever les parenthèses autour du type-id" + +-#: cp/parser.c:4624 ++#: cp/parser.c:4661 + msgid "expression in new-declarator must have integral or enumeration type" + msgstr "expression dans le nouveau déclarateur doit être un type entier ou d'énumération" + +-#: cp/parser.c:4805 ++#: cp/parser.c:4842 + msgid "use of old-style cast" + msgstr "utilisation d'un vieux style de transtypage (cast)" + +-#: cp/parser.c:5550 ++#: cp/parser.c:5587 + #, c-format + msgid "case label `%E' not within a switch statement" + msgstr "étiquette du CASE « %E » n'est pas à l'intérieur de la déclaration du SWITCH" + +-#: cp/parser.c:6092 ++#: cp/parser.c:6130 + msgid "ISO C++ forbids computed gotos" + msgstr "ISO C++ interdit les gotos calculés" + +-#: cp/parser.c:6212 ++#: cp/parser.c:6250 + msgid "extra `;'" + msgstr "« ; » superflu" + +-#: cp/parser.c:6507 ++#: cp/parser.c:6545 + msgid "mixing declarations and function-definitions is forbidden" + msgstr "mélange de déclarations et de définitions de fonction est interdit" + +-#: cp/parser.c:6645 ++#: cp/parser.c:6683 + msgid "duplicate `friend'" + msgstr "« friend » apparaît en double" + +-#: cp/parser.c:6794 ++#: cp/parser.c:6832 + msgid "class definition may not be declared a friend" + msgstr "définition de classe ne peut pas être déclaré comme ami" + +-#: cp/parser.c:7109 ++#: cp/parser.c:7147 + msgid "only constructors take base initializers" + msgstr "seuls les constructeurs prennent des initialiseurs de base" + +-#: cp/parser.c:7160 ++#: cp/parser.c:7198 + msgid "anachronistic old-style base class initializer" + msgstr "ancien style anachronique d'initialiseur de classe de base" + +-#: cp/parser.c:7201 ++#: cp/parser.c:7239 + msgid "keyword `typename' not allowed in this context (a qualified member initializer is implicitly a type)" + msgstr "mot clé « typename » n'est pas permis dans ce contexte (un initialisateur de membre qualifié est implicitement un type)" + + #. Warn that we do not support `export'. +-#: cp/parser.c:7563 ++#: cp/parser.c:7601 + msgid "keyword `export' not implemented, and will be ignored" + msgstr "mot clé « export » n'est pas implanté et sera ignoré" + + #. Otherwise, emit an error about the invalid digraph, but continue + #. parsing because we got our argument list. +-#: cp/parser.c:7923 ++#: cp/parser.c:7961 + msgid "`<::' cannot begin a template-argument list" + msgstr "« <:: » ne peut pas être au début d'une liste d'un patron d'arguments" + +-#: cp/parser.c:7924 ++#: cp/parser.c:7962 + msgid "`<:' is an alternate spelling for `['. Insert whitespace between `<' and `::'" + msgstr "« <: » est une épellation alternative pour « [ ». Insérer des blancs d,espacement entre « < » et « :: »" + +-#: cp/parser.c:7931 ++#: cp/parser.c:7969 + msgid "(if you use `-fpermissive' G++ will accept your code)" + msgstr "(si vous utiliser « -fpermissive » G++ acceptera votre code)" + + #. Explain what went wrong. +-#: cp/parser.c:8106 ++#: cp/parser.c:8145 + msgid "non-template `%D' used as template" + msgstr "« %D » qui n'est pas un patron est utilisé comme patron" + +-#: cp/parser.c:8107 ++#: cp/parser.c:8146 + msgid "use `%T::template %D' to indicate that it is a template" + msgstr "utiliser « %T::template %D » pour indiquer que c'est un patron" + +-#: cp/parser.c:9058 ++#: cp/parser.c:9102 + msgid "using `typename' outside of template" + msgstr "utilisation de « typename » en dehors du patron" + +-#: cp/parser.c:9180 ++#: cp/parser.c:9224 + msgid "expected type-name" + msgstr "un nom de type attendu" + +-#: cp/parser.c:9239 ++#: cp/parser.c:9283 + msgid "type attributes are honored only at type definition" + msgstr "type d'attributs sont honorés seulement lors de la définitions de type" + + #. [namespace.udecl] + #. + #. A using declaration shall not name a template-id. +-#: cp/parser.c:9622 ++#: cp/parser.c:9666 + msgid "a template-id may not appear in a using-declaration" + msgstr "un id de patron ne peut pas apparaître dans l'utilisation de la déclaration" + +-#: cp/parser.c:9949 ++#: cp/parser.c:9986 + msgid "an asm-specification is not allowed on a function-definition" + msgstr "une spécification asm n'est pas permise dans la définition de fonction" + +-#: cp/parser.c:9951 ++#: cp/parser.c:9988 + msgid "attributes are not allowed on a function-definition" + msgstr "attributs ne sont pas permis dans la définition de fonction" + +-#: cp/parser.c:10084 ++#: cp/parser.c:10121 + msgid "attributes after parenthesized initializer ignored" + msgstr "attributs après l'initialisateur mis entre parenthèses sont ignorés" + +-#: cp/parser.c:10540 ++#: cp/parser.c:10591 + msgid "`%T::%D' is not a type" + msgstr "« %T::%D » n'est pas un type" + +-#: cp/parser.c:11288 ++#: cp/parser.c:11341 + msgid "file ends in default argument" + msgstr "fin de fichier dans l'argument par défaut" + +-#: cp/parser.c:11344 ++#: cp/parser.c:11397 + msgid "deprecated use of default argument for parameter of non-function" + msgstr "utilisation de l'argument par défaut pour un paramètre d'une non fonction" + +-#: cp/parser.c:11347 ++#: cp/parser.c:11400 + msgid "default arguments are only permitted for function parameters" + msgstr "arguments par défaut sont permis seulement pour les paramètres de fonction" + +-#: cp/parser.c:12078 ++#: cp/parser.c:12166 + msgid "declaration of `%D' in `%D' which does not enclose `%D'" + msgstr "déclaration de « %D » dans « %D » lequel n'entoure pas « %D »" + +-#: cp/parser.c:12091 ++#: cp/parser.c:12179 + msgid "extra qualification ignored" + msgstr "qualification superflue ignorée" + +-#: cp/parser.c:12102 ++#: cp/parser.c:12190 + msgid "an explicit specialization must be preceded by 'template <>'" + msgstr "spécialisation explicite doit être précédé par « template <> »" + +-#: cp/parser.c:12385 ++#: cp/parser.c:12473 + msgid "extra semicolon" + msgstr "« ; » superflu" + +-#: cp/parser.c:12403 ++#: cp/parser.c:12491 + msgid "a class-key must be used when declaring a friend" + msgstr "une clé de classe doit être utilise lors de la déclaration d'un ami" + +-#: cp/parser.c:12434 ++#: cp/parser.c:12522 + msgid "friend declaration does not name a class or function" + msgstr "déclaration amie ne nomme pas une classe ou une fonction" + +-#: cp/parser.c:12605 ++#: cp/parser.c:12694 + msgid "pure-specifier on function-definition" + msgstr "spécificateur pur lors de la définition d'une fonction" + +-#: cp/parser.c:12878 ++#: cp/parser.c:12967 + msgid "keyword `typename' not allowed outside of templates" + msgstr "mot clé « typename » n'est pas permis en dehors du patron" + +-#: cp/parser.c:12880 ++#: cp/parser.c:12969 + msgid "keyword `typename' not allowed in this context (the base class is implicitly a type)" + msgstr "mot clé « typename » n'est pas permis dans ce contexte (la classe de base est implicitement un type)" + +-#: cp/parser.c:13700 ++#: cp/parser.c:13790 + msgid "reference to `%D' is ambiguous" + msgstr "référence à « %D » est ambiguë" + +-#: cp/parser.c:13874 ++#: cp/parser.c:13964 + msgid "too few template-parameter-lists" + msgstr "trop peu de patron de listes de paramètres" + +@@ -15949,44 +15997,44 @@ + #. something like: + #. + #. template template void S::f(); +-#: cp/parser.c:13889 ++#: cp/parser.c:13979 + msgid "too many template-parameter-lists" + msgstr "trop de patron de listes de paramètres" + + #. If begin_function_definition didn't like the definition, skip + #. the entire function. +-#: cp/parser.c:14185 ++#: cp/parser.c:14275 + msgid "invalid function declaration" + msgstr "déclaration de fonction invalide" + + #. Issue an error message. +-#: cp/parser.c:14222 ++#: cp/parser.c:14312 + msgid "named return values are no longer supported" + msgstr "valeurs nommées à retourner ne sont plus supportées" + +-#: cp/parser.c:14561 ++#: cp/parser.c:14651 + msgid "`>>' should be `> >' within a nested template argument list" + msgstr "« >> » devrait être « > > » à l'intérieur du patron de la liste d'arguments" + + #. If this is not a nested template argument list, the '>>' is + #. a typo for '>'. Emit an error message and continue. +-#: cp/parser.c:14569 ++#: cp/parser.c:14659 + msgid "spurious `>>', use `>' to terminate a template argument list" + msgstr "faux « >> », utiliser « > » pour terminer la liste d'argument du patron" + +-#: cp/parser.c:14574 ++#: cp/parser.c:14664 + msgid "missing `>' to terminate the template argument list" + msgstr "« > » manquant pour terminer la liste d'argument du patron" + +-#: cp/parser.c:15062 ++#: cp/parser.c:15149 + msgid "`%s' tag used in naming `%#T'" + msgstr "étiquette « %s » utilisée dans la dénomination de « %#T »" + +-#: cp/parser.c:15082 ++#: cp/parser.c:15169 + msgid "%D redeclared with different access" + msgstr "« %#D » redéclaré avec un accès différent" + +-#: cp/parser.c:15099 ++#: cp/parser.c:15186 + msgid "`template' (as a disambiguator) is only allowed within templates" + msgstr "« template » (afin de rendre moins ambiguë) est seulement permis à l'intérieur des patron" + +@@ -16006,81 +16054,85 @@ + msgid "enclosing class templates are not explicitly specialized" + msgstr "fermetures de patrons de classe ne sont pas explicitement spécialisées" + +-#: cp/pt.c:739 cp/pt.c:780 +-msgid "specializing `%#T' in different namespace" +-msgstr "spécialisation de « %#T » dans différents espaces de noms" ++#: cp/pt.c:733 ++msgid "specialization of `%D' in different namespace" ++msgstr "spécialisation de « %D » dans différents espaces de noms" + +-#: cp/pt.c:740 cp/pt.c:781 ++#: cp/pt.c:734 cp/pt.c:803 + msgid " from definition of `%#D'" + msgstr " à partir de la définition de « %#D »" + +-#: cp/pt.c:748 ++#: cp/pt.c:770 + msgid "specialization of `%T' after instantiation" + msgstr "spécialisation de « %T » après instanciation" + +-#: cp/pt.c:795 ++#: cp/pt.c:802 ++msgid "specializing `%#T' in different namespace" ++msgstr "spécialisation de « %#T » dans différents espaces de noms" ++ ++#: cp/pt.c:817 + msgid "specialization `%T' after instantiation `%T'" + msgstr "spécialisation de « %T » après instanciation « %T »" + +-#: cp/pt.c:807 ++#: cp/pt.c:829 + msgid "explicit specialization of non-template `%T'" + msgstr "spécialisation explicite du non patron « %T »" + +-#: cp/pt.c:1067 ++#: cp/pt.c:1089 + msgid "specialization of %D after instantiation" + msgstr "spécialisation de %D après instanciation" + +-#: cp/pt.c:1192 ++#: cp/pt.c:1220 + msgid "%s %+#D" + msgstr "%s %+#D" + +-#: cp/pt.c:1241 ++#: cp/pt.c:1269 + msgid "`%D' is not a function template" + msgstr "« %D » n'est pas un patron de fonction" + +-#: cp/pt.c:1389 ++#: cp/pt.c:1417 + msgid "template-id `%D' for `%+D' does not match any template declaration" + msgstr "template-id « %D » pour « %+D » ne concorde pas avec aucune déclaration de patron" + +-#: cp/pt.c:1397 ++#: cp/pt.c:1425 + msgid "ambiguous template specialization `%D' for `%+D'" + msgstr "spécialisation de patron amibiguë « %D » pour « %+D »" + + #. This case handles bogus declarations like template <> + #. template void f(); +-#: cp/pt.c:1620 cp/pt.c:1694 ++#: cp/pt.c:1648 cp/pt.c:1722 + msgid "template-id `%D' in declaration of primary template" + msgstr "template-id « %D » dans la déclaration de patron primaire" + +-#: cp/pt.c:1633 ++#: cp/pt.c:1661 + msgid "template parameter list used in explicit instantiation" + msgstr "patron de liste de paramètres utilisé dans une instanciation explicite" + +-#: cp/pt.c:1639 ++#: cp/pt.c:1667 + msgid "definition provided for explicit instantiation" + msgstr "définition fournie pour une instanciation explicite" + +-#: cp/pt.c:1645 ++#: cp/pt.c:1673 + msgid "too many template parameter lists in declaration of `%D'" + msgstr "trop de patrons de listes de paramètres dans la déclaration de « %D »" + +-#: cp/pt.c:1661 ++#: cp/pt.c:1689 + msgid "too few template parameter lists in declaration of `%D'" + msgstr "trop peu de patrons de listes de paramètres dans la déclaration de « %D »" + +-#: cp/pt.c:1678 ++#: cp/pt.c:1706 + msgid "explicit specialization not preceded by `template <>'" + msgstr "spécialisation explicite n'est pas précédée de « template <> »" + +-#: cp/pt.c:1691 ++#: cp/pt.c:1719 + msgid "partial specialization `%D' of function template" + msgstr "spécialisation partielle « %D » du patron de fonction" + +-#: cp/pt.c:1723 ++#: cp/pt.c:1751 + msgid "default argument specified in explicit specialization" + msgstr "argument par défaut spécifié dans la spécialisation explicite" + +-#: cp/pt.c:1727 ++#: cp/pt.c:1755 + msgid "template specialization with C linkage" + msgstr "spécialisation de patron avec édition de liens C" + +@@ -16092,106 +16144,115 @@ + #. program is ill-formed. + #. + #. Similar language is found in [temp.explicit]. +-#: cp/pt.c:1811 ++#: cp/pt.c:1839 + msgid "specialization of implicitly-declared special member function" + msgstr "spécialisation d'un membre spécial d'nue fonction déclaré implicitement" + +-#: cp/pt.c:1855 ++#: cp/pt.c:1883 + msgid "no member function `%D' declared in `%T'" + msgstr "pas de membre de fonction « %D » déclaré dans « %T »" + + #. There are two many template parameter lists. +-#: cp/pt.c:2005 ++#: cp/pt.c:2033 + msgid "too many template parameter lists in declaration of `%T'" + msgstr "trop de patrons de listes de paramètres dans la déclaration de « %T »" + +-#: cp/pt.c:2098 ++#: cp/pt.c:2126 + msgid " shadows template parm `%#D'" + msgstr " masque le paramètre du patron « %#D »" + +-#: cp/pt.c:2495 ++#: cp/pt.c:2523 + msgid "template parameters not used in partial specialization:" + msgstr "paramètres du patron ne sont pas utilisés dans la spécialisation partielle:" + +-#: cp/pt.c:2499 ++#: cp/pt.c:2527 + msgid " `%D'" + msgstr " « %D »" + +-#: cp/pt.c:2511 ++#: cp/pt.c:2539 + msgid "partial specialization `%T' does not specialize any template arguments" + msgstr "spécialisation partielle « %T » ne spécialise pas aucun patron d'arguments" + +-#: cp/pt.c:2536 ++#: cp/pt.c:2564 + #, c-format + msgid "template argument `%E' involves template parameter(s)" + msgstr "patron d'argument « %E » implique des paramètres du patron" + +-#: cp/pt.c:2580 ++#: cp/pt.c:2608 + msgid "type `%T' of template argument `%E' depends on template parameter(s)" + msgstr "type « %T » du patron d'argument « %E » dépend des paramètres du patron" + +-#: cp/pt.c:2665 ++#: cp/pt.c:2693 + msgid "no default argument for `%D'" + msgstr "pas d'argument par défaut pour « %D »" + +-#: cp/pt.c:2814 ++#: cp/pt.c:2842 + msgid "template with C linkage" + msgstr "patron avec liaison C" + +-#: cp/pt.c:2817 ++#: cp/pt.c:2845 + msgid "template class without a name" + msgstr "patron de classe sans nom" + + #. [temp.mem] + #. + #. A destructor shall not be a member template. +-#: cp/pt.c:2824 ++#: cp/pt.c:2853 + msgid "destructor `%D' declared as member template" + msgstr "destructeur « %D » déclaré en tant que membre du patron" + +-#: cp/pt.c:2904 ++#. [basic.stc.dynamic.allocation] ++#. ++#. An allocation function can be a function ++#. template. ... Template allocation functions shall ++#. have two or more parameters. ++#: cp/pt.c:2868 ++msgid "invalid template declaration of `%D'" ++msgstr "déclaration de patron invalide « %D »" ++ ++#: cp/pt.c:2948 + msgid "`%D' does not declare a template type" + msgstr "« %D » ne déclare pas un type de patron" + +-#: cp/pt.c:2910 ++#: cp/pt.c:2954 + msgid "template definition of non-template `%#D'" + msgstr "définition de patron d'un non patron « %#D »" + +-#: cp/pt.c:2951 ++#: cp/pt.c:2995 + msgid "expected %d levels of template parms for `%#D', got %d" + msgstr "attendait %d niveaux de patron de paramètres pour « %#D », obtenu %d" + +-#: cp/pt.c:2963 ++#: cp/pt.c:3007 + msgid "got %d template parameters for `%#D'" + msgstr "a obtenu %d paramètres de patron pour « %#D »" + +-#: cp/pt.c:2966 ++#: cp/pt.c:3010 + msgid "got %d template parameters for `%#T'" + msgstr "a obtenu %d paramètres de patron pour « %#T »" + +-#: cp/pt.c:2968 ++#: cp/pt.c:3012 + #, c-format + msgid " but %d required" + msgstr " mais %d son requis" + +-#: cp/pt.c:3053 ++#: cp/pt.c:3097 + msgid "`%T' is not a template type" + msgstr "« %T » n'est pas un type patron" + +-#: cp/pt.c:3069 ++#: cp/pt.c:3113 + msgid "previous declaration `%D'" + msgstr "déclaration précédente de « %D »" + +-#: cp/pt.c:3070 ++#: cp/pt.c:3114 + #, c-format + msgid "used %d template parameter%s instead of %d" + msgstr "utilisé %d patrons paramètre%s au lieu de %d" + +-#: cp/pt.c:3086 ++#: cp/pt.c:3130 + msgid "template parameter `%#D'" + msgstr "patron de paramètre « %#D »" + +-#: cp/pt.c:3087 ++#: cp/pt.c:3131 + msgid "redeclared here as `%#D'" + msgstr "redéclaré ici comme « %#D »" + +@@ -16199,280 +16260,288 @@ + #. + #. A template-parameter may not be given default arguments + #. by two different declarations in the same scope. +-#: cp/pt.c:3097 ++#: cp/pt.c:3141 + msgid "redefinition of default argument for `%#D'" + msgstr "redéfinition de l'argument par défaut pour « %#D »" + +-#: cp/pt.c:3098 ++#: cp/pt.c:3142 + msgid "%J original definition appeared here" + msgstr "%J définition originale apparaît ici" + +-#: cp/pt.c:3246 ++#: cp/pt.c:3288 + #, c-format + msgid "`%E' is not a valid template argument" + msgstr "« %E » n'est pas un argument valide pour le patron" + +-#: cp/pt.c:3250 ++#: cp/pt.c:3292 + msgid "it must be the address of a function with external linkage" + msgstr "il doit être l'adresse d'une fonction avec lien externe" + +-#: cp/pt.c:3252 ++#: cp/pt.c:3294 + msgid "it must be the address of an object with external linkage" + msgstr "il doît être l'adresse d'un objet avec lien externe" + +-#: cp/pt.c:3255 ++#: cp/pt.c:3297 + msgid "it must be a pointer-to-member of the form `&X::Y'" + msgstr "il doit être un pointeur-vers-un-membre de la forme «&X::Y»" + +-#: cp/pt.c:3266 ++#: cp/pt.c:3308 + #, c-format + msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage" + msgstr "chaîne %E n'est pas un patron d'argument valide parce que c'est l'adresse d'un objet avec lien statique" + +-#: cp/pt.c:3281 ++#: cp/pt.c:3323 + #, c-format + msgid "address of non-extern `%E' cannot be used as template argument" + msgstr "adresse du non externe « %E » ne peut être utilisé comme patron d'argument" + +-#: cp/pt.c:3290 ++#: cp/pt.c:3332 + #, c-format + msgid "non-constant `%E' cannot be used as template argument" + msgstr "la non const « %E » ne peut être utilisé comme un patron d'argument" + +-#: cp/pt.c:3298 ++#: cp/pt.c:3340 + msgid "type '%T' cannot be used as a value for a non-type template-parameter" + msgstr "type « %T » ne peut être utilisé comme une valeur pour un non type de paramètre de patron" + +-#: cp/pt.c:3301 ++#: cp/pt.c:3343 + msgid "invalid use of '%D' as a non-type template-argument" + msgstr "utilisation invalide de « %D » pour un non type de paramètre de patron" + +-#: cp/pt.c:3303 ++#: cp/pt.c:3345 + #, c-format + msgid "invalid use of '%E' as a non-type template-argument" + msgstr "utilisation invalide de « %E » pour un non type de paramètre de patron" + +-#: cp/pt.c:3668 ++#: cp/pt.c:3710 + #, c-format + msgid "to refer to a type member of a template parameter, use `typename %E'" + msgstr "pour référencer un type de membre de patron de paramètres, utiliser « typename %E »" + +-#: cp/pt.c:3681 cp/pt.c:3699 cp/pt.c:3738 ++#: cp/pt.c:3723 cp/pt.c:3741 cp/pt.c:3780 + msgid "type/value mismatch at argument %d in template parameter list for `%D'" + msgstr "non concordance de type/valeur pour l'argument %d dans la liste des paramètres du patron de « %D »" + +-#: cp/pt.c:3684 ++#: cp/pt.c:3726 + msgid " expected a constant of type `%T', got `%T'" + msgstr " attendait une constante de type « %T », a obtenu « %T »" + +-#: cp/pt.c:3688 ++#: cp/pt.c:3730 + #, c-format + msgid " expected a class template, got `%E'" + msgstr " attendait un patron de classe, a obtenu « %E »" + +-#: cp/pt.c:3690 ++#: cp/pt.c:3732 + #, c-format + msgid " expected a type, got `%E'" + msgstr " attendait un type, a obtenu « %E »" + +-#: cp/pt.c:3702 ++#: cp/pt.c:3744 + msgid " expected a type, got `%T'" + msgstr " attendait un type, a obtenu « %T »" + +-#: cp/pt.c:3704 ++#: cp/pt.c:3746 + msgid " expected a class template, got `%T'" + msgstr " attendait un patron de classe, a obtenu « %T »" + +-#: cp/pt.c:3740 ++#: cp/pt.c:3782 + msgid " expected a template of type `%D', got `%D'" + msgstr " attendait un patron de type « %D », a obtenu « %D »" + +-#: cp/pt.c:3775 ++#: cp/pt.c:3817 + msgid "could not convert template argument `%E' to `%T'" + msgstr "ne peut convertir l'argument du patron « %E » vers « %T »" + +-#: cp/pt.c:3815 ++#: cp/pt.c:3857 + #, c-format + msgid "wrong number of template arguments (%d, should be %d)" + msgstr "nombre erroné d'arguments du patron (%d devrait être %d)" + +-#: cp/pt.c:3819 ++#: cp/pt.c:3861 + msgid "provided for `%D'" + msgstr "fournie pour « %D »" + +-#: cp/pt.c:3847 ++#: cp/pt.c:3889 + #, c-format + msgid "template argument %d is invalid" + msgstr "patron de l'argument %d est invalide" + +-#: cp/pt.c:4068 ++#: cp/pt.c:4110 + msgid "non-template used as template" + msgstr "non patron utilisé comme patron" + +-#: cp/pt.c:4208 ++#: cp/pt.c:4250 + msgid "non-template type `%T' used as a template" + msgstr "type non patron « %T » utilisé comme un patron" + +-#: cp/pt.c:4210 ++#: cp/pt.c:4252 + msgid "for template declaration `%D'" + msgstr "pour la déclaration du patron « %D »" + +-#: cp/pt.c:4857 ++#: cp/pt.c:4899 + msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'" + msgstr "instantiation de la profondeur du patron excède le maximum de %d (utiliser -ftemplate-depth-NN pour augmenter le maximum) lors de l'instanciation de « %D »" + +-#: cp/pt.c:5296 ++#: cp/pt.c:5338 + msgid "ambiguous class template instantiation for `%#T'" + msgstr "instanciation ambiguë de patron de classe pour « %#T »" + +-#: cp/pt.c:5302 ++#: cp/pt.c:5344 + msgid "%s %+#T" + msgstr "%s %+#T" + +-#: cp/pt.c:6308 cp/pt.c:6428 ++#: cp/pt.c:6382 + msgid "instantiation of `%D' as type `%T'" + msgstr "instanciation de « %D » comme type « %T »" + +-#: cp/pt.c:6470 ++#: cp/pt.c:6542 + msgid "invalid parameter type `%T'" + msgstr "paramètre invalide pour le type « %T »" + +-#: cp/pt.c:6472 ++#: cp/pt.c:6544 + msgid "in declaration `%D'" + msgstr "dans la déclaration de « %D »" + +-#: cp/pt.c:6546 ++#: cp/pt.c:6618 + msgid "creating pointer to member function of non-class type `%T'" + msgstr "création d'un pointeur vers le membre d'une fonction d'un type non classe « %T »" + +-#: cp/pt.c:6685 ++#: cp/pt.c:6758 + msgid "creating array with size zero" + msgstr "création d'un tableau de taille zéro" + +-#: cp/pt.c:6699 ++#: cp/pt.c:6772 + #, c-format + msgid "creating array with size zero (`%E')" + msgstr "création d'un tableau de taille zéro (« %E »)" + +-#: cp/pt.c:6938 ++#: cp/pt.c:7011 + msgid "forming reference to void" + msgstr "formation d'une référence en void" + +-#: cp/pt.c:6940 ++#: cp/pt.c:7013 + msgid "forming %s to reference type `%T'" + msgstr "formant %s pour référencer le type « %T »" + +-#: cp/pt.c:6977 ++#: cp/pt.c:7050 + msgid "creating pointer to member of non-class type `%T'" + msgstr "création d'un pointeur vers le membre d'un type non classe « %T »" + +-#: cp/pt.c:6983 ++#: cp/pt.c:7056 + msgid "creating pointer to member reference type `%T'" + msgstr "création d'un pointeur vers le membre de référence du type « %T »" + +-#: cp/pt.c:7069 ++#: cp/pt.c:7142 + msgid "creating array of `%T'" + msgstr "création du tableau « %T »" + +-#: cp/pt.c:7075 ++#: cp/pt.c:7148 + msgid "creating array of `%T', which is an abstract class type" + msgstr "création d'un tableau « %T », lequel est un type de classe abstraite" + +-#: cp/pt.c:7119 ++#: cp/pt.c:7192 + msgid "`%T' is not a class, struct, or union type" + msgstr "« %T » n'est pas une classe, struct ou un type d'union" + +-#: cp/pt.c:7232 ++#: cp/pt.c:7305 + #, c-format + msgid "use of `%s' in template" + msgstr "utilisation de « %s » dans le patron" + +-#: cp/pt.c:7345 ++#: cp/pt.c:7418 + #, c-format + msgid "dependent-name `%E' is parsed as a non-type, but instantiation yields a type" + msgstr "nom dépendant « %E » est analysé comme un non type, mais son instantiation le rend comme un type" + +-#: cp/pt.c:7347 ++#: cp/pt.c:7420 + #, c-format + msgid "say `typename %E' if a type is meant" + msgstr "utiliser « typename %E » si un type est désiré" + +-#: cp/pt.c:8613 ++#: cp/pt.c:8589 ++msgid "`%T' is not a class or namespace" ++msgstr "« %T » n'est pas une classe ou un espace de noms" ++ ++#: cp/pt.c:8592 ++msgid "`%D' is not a class or namespace" ++msgstr "« %D » n'est pas une classe ou un espace de noms" ++ ++#: cp/pt.c:8709 + msgid "`%T' uses anonymous type" + msgstr "« %T » utilise un type anonyme" + +-#: cp/pt.c:8615 ++#: cp/pt.c:8711 + msgid "`%T' uses local type `%T'" + msgstr "« %T » utilise un type local « %T »" + +-#: cp/pt.c:8623 ++#: cp/pt.c:8719 + msgid "`%T' is a variably modified type" + msgstr "« %T » est type modifié de manière variable" + +-#: cp/pt.c:8634 ++#: cp/pt.c:8730 + #, c-format + msgid "integral expression `%E' is not constant" + msgstr "expression intégrale « %E » n'est pas une constante" + +-#: cp/pt.c:8639 ++#: cp/pt.c:8735 + msgid " trying to instantiate `%D'" + msgstr " tentative d'instanciation « %D »" + +-#: cp/pt.c:9156 ++#: cp/pt.c:9252 + msgid "incomplete type unification" + msgstr "type d'unification incomplète" + +-#: cp/pt.c:10112 ++#: cp/pt.c:10211 + #, c-format + msgid "use of `%s' in template type unification" + msgstr "utilisation de « %s » dans le patron du type d'unification" + +-#: cp/pt.c:10546 cp/pt.c:10618 ++#: cp/pt.c:10644 cp/pt.c:10716 + msgid "explicit instantiation of non-template `%#D'" + msgstr "instanciation explicite d'un non patron « %#D »" + +-#: cp/pt.c:10562 cp/pt.c:10613 ++#: cp/pt.c:10660 cp/pt.c:10711 + msgid "no matching template for `%D' found" + msgstr "non concordance de patron pour « %D » repéré" + +-#: cp/pt.c:10568 ++#: cp/pt.c:10666 + msgid "explicit instantiation of `%#D'" + msgstr "instanciation explicite de « %#D »" + +-#: cp/pt.c:10605 ++#: cp/pt.c:10703 + msgid "duplicate explicit instantiation of `%#D'" + msgstr "duplication d'instanciation explicite de « %#D »" + +-#: cp/pt.c:10627 ++#: cp/pt.c:10725 + msgid "ISO C++ forbids the use of `extern' on explicit instantiations" + msgstr "ISO C++ interdit l'utilisation de « extern » sur instanciations explicites" + +-#: cp/pt.c:10631 cp/pt.c:10712 ++#: cp/pt.c:10729 cp/pt.c:10810 + msgid "storage class `%D' applied to template instantiation" + msgstr "classe de stockage « %D » appliqué à l'instanciation du patron" + +-#: cp/pt.c:10684 ++#: cp/pt.c:10782 + msgid "explicit instantiation of non-template type `%T'" + msgstr "instanciation explicite de type non patron « %T »" + +-#: cp/pt.c:10693 ++#: cp/pt.c:10791 + msgid "explicit instantiation of `%#T' before definition of template" + msgstr "instanciation explicite de « %#T » avant la définition de patron" + +-#: cp/pt.c:10701 ++#: cp/pt.c:10799 + #, c-format + msgid "ISO C++ forbids the use of `%s' on explicit instantiations" + msgstr "ISO C++ interdit l'utilisation de « %s » sur instanciations explicites" + +-#: cp/pt.c:10745 ++#: cp/pt.c:10843 + msgid "duplicate explicit instantiation of `%#T'" + msgstr "duplication d'instanciation explicite de « %#T »" + +-#: cp/pt.c:11126 ++#: cp/pt.c:11224 + msgid "explicit instantiation of `%D' but no definition available" + msgstr "instanciation explicite de « %D » mais pas de définition disponible" + +-#: cp/pt.c:11562 ++#: cp/pt.c:11660 + msgid "`%#T' is not a valid type for a template constant parameter" + msgstr "« %#T » n'a pas un type valide pour un patron de parametre de constante" + +@@ -16518,39 +16587,39 @@ + msgid "`%T' is an inaccessible base of `%T'" + msgstr "« %T » est une base inaccessible de « %T »" + +-#: cp/search.c:1767 ++#: cp/search.c:1805 + msgid "invalid covariant return type for `%#D'" + msgstr "type retourné covariant invalide pour « %#D »" + +-#: cp/search.c:1768 cp/search.c:1774 ++#: cp/search.c:1806 cp/search.c:1812 + msgid " overriding `%#D'" + msgstr " écrasant « %#D »" + +-#: cp/search.c:1772 ++#: cp/search.c:1810 + msgid "conflicting return type specified for `%#D'" + msgstr "types retournés conflictuels spécifiés pour « %#D »" + +-#: cp/search.c:1786 ++#: cp/search.c:1824 + #, c-format + msgid "looser throw specifier for `%#F'" + msgstr "a placé un spécificateur pour « %#F »" + +-#: cp/search.c:1787 ++#: cp/search.c:1825 + #, c-format + msgid " overriding `%#F'" + msgstr " écrasant « %#F »" + + #. A static member function cannot match an inherited + #. virtual member function. +-#: cp/search.c:1877 ++#: cp/search.c:1915 + msgid "`%#D' cannot be declared" + msgstr "« %#D » ne peut être déclaré" + +-#: cp/search.c:1878 ++#: cp/search.c:1916 + msgid " since `%#D' declared in base class" + msgstr " alors que « %#D » est déclaré dans la classe de base" + +-#: cp/search.c:1955 ++#: cp/search.c:1993 + msgid "`%#D' needs a final overrider" + msgstr "« %#D » a besoin d'un écraseur final" + +@@ -16571,113 +16640,113 @@ + msgid "object missing in reference to `%D'" + msgstr "objet manquant dans la référence à « %D »" + +-#: cp/semantics.c:1721 ++#: cp/semantics.c:1718 + msgid "arguments to destructor are not allowed" + msgstr "arguments au destructeur ne sont pas permis" + +-#: cp/semantics.c:1770 ++#: cp/semantics.c:1767 + msgid "`this' is unavailable for static member functions" + msgstr "« cela » n'est pas disponible pour les membres statiques de fonctions" + +-#: cp/semantics.c:1776 ++#: cp/semantics.c:1773 + msgid "invalid use of `this' in non-member function" + msgstr "utilisation invalide de « ceci » dans un non membre de fonction" + +-#: cp/semantics.c:1778 ++#: cp/semantics.c:1775 + msgid "invalid use of `this' at top level" + msgstr "utilisation invalide de « this » hors de toute fonction" + +-#: cp/semantics.c:1802 ++#: cp/semantics.c:1799 + msgid "invalid qualifying scope in pseudo-destructor name" + msgstr "étendue invalide du qualificateur dans un nom de pseudo-destructeur" + +-#: cp/semantics.c:1822 ++#: cp/semantics.c:1819 + msgid "`%E' is not of type `%T'" + msgstr "« %E » n'est pas un type « %T »" + +-#: cp/semantics.c:1933 ++#: cp/semantics.c:1930 + msgid "template type parameters must use the keyword `class' or `typename'" + msgstr "patron de type de paramètres doit utiliser le mot clé « class» ou «typename »" + +-#: cp/semantics.c:1977 ++#: cp/semantics.c:1974 + msgid "invalid use of type `%T' as a default value for a template template-parameter" + msgstr "utilisation invalide du type « %T » comme valeur par défaut pour un patron de paramètres de patron" + +-#: cp/semantics.c:1980 ++#: cp/semantics.c:1977 + msgid "invalid use of `%D' as a default value for a template template-parameter" + msgstr "utilisation invalide de « %D » comme valeur par défaut pour un patron de paramètres de patron" + +-#: cp/semantics.c:1984 ++#: cp/semantics.c:1981 + msgid "invalid default argument for a template template parameter" + msgstr "utilisation invalide d'argumenet pour un patron de paramètres de patron" + +-#: cp/semantics.c:2019 ++#: cp/semantics.c:2016 + msgid "definition of `%#T' inside template parameter list" + msgstr "définition de « %#T » à l'intérieur d'un patron de liste de paramètres" + +-#: cp/semantics.c:2030 ++#: cp/semantics.c:2027 + msgid "invalid definition of qualified type `%T'" + msgstr "définition invalide d'un type qualifié « %T »" + +-#: cp/semantics.c:2045 ++#: cp/semantics.c:2042 + msgid "previous definition of `%#T'" + msgstr "définition précédente de « %#T »" + +-#: cp/semantics.c:2249 ++#: cp/semantics.c:2246 + msgid "invalid base-class specification" + msgstr "spécification de base de classe invalide" + +-#: cp/semantics.c:2258 ++#: cp/semantics.c:2255 + msgid "base class `%T' has cv qualifiers" + msgstr "classe de base « %T » a des qualificateurs cv" + +-#: cp/semantics.c:2290 ++#: cp/semantics.c:2287 + msgid "multiple declarators in template declaration" + msgstr "déclarateurs multiples dans la déclaration de patron" + +-#: cp/semantics.c:2301 ++#: cp/semantics.c:2298 + msgid "incomplete type `%T' used in nested name specifier" + msgstr "type « %T » incomplet utilisé dans un spécificateur de noms imbriqué" + +-#: cp/semantics.c:2303 cp/typeck.c:1635 ++#: cp/semantics.c:2300 cp/typeck.c:1635 + msgid "`%D' is not a member of `%T'" + msgstr "« %D » n'est pas un membre de « %T »" + +-#: cp/semantics.c:2306 ++#: cp/semantics.c:2303 + msgid "`%D' is not a member of `%D'" + msgstr "« %D » n'est pas un membre de « %D »" + +-#: cp/semantics.c:2431 ++#: cp/semantics.c:2428 + msgid "template parameter `%D' of type `%T' is not allowed in an integral constant expression because it is not of integral or enumeration type" + msgstr "paramètre « %D » du patron du type « %T » ne sont pas permises dans une expression intégrale de constante parce qu'elle n'est pas intégral ou un type énumération" + +-#: cp/semantics.c:2584 ++#: cp/semantics.c:2572 + msgid "`%D' cannot appear in a constant-expression" + msgstr "« %D » ne peut apparaître dans une expression de constante" + +-#: cp/semantics.c:2593 ++#: cp/semantics.c:2580 + msgid "use of namespace `%D' as expression" + msgstr "utilisation d'un espace de dnomes « %D » comme expression" + +-#: cp/semantics.c:2598 ++#: cp/semantics.c:2585 + msgid "use of class template `%T' as expression" + msgstr "utilisation du patron de classe « %T » comme expression" + + #. Ambiguous reference to base members. +-#: cp/semantics.c:2604 ++#: cp/semantics.c:2591 + msgid "request for member `%D' is ambiguous in multiple inheritance lattice" + msgstr "requête du membre « %D » est ambiquë dans de mutliples héritage de treillis" + +-#: cp/semantics.c:2664 ++#: cp/semantics.c:2652 + #, c-format + msgid "use of %s from containing function" + msgstr "utilisation de %s d'un fonction contenante" + +-#: cp/semantics.c:2667 ++#: cp/semantics.c:2655 + msgid " `%#D' declared here" + msgstr " « %#D » déclaré ici" + +-#: cp/semantics.c:2718 ++#: cp/semantics.c:2706 + #, c-format + msgid "type of `%E' is unknown" + msgstr "type « %E » est inconnu" +@@ -16691,44 +16760,44 @@ + msgid "`%V' qualifiers cannot be applied to `%T'" + msgstr "qualificateur « %V » ne peut pas être appliqué à « %T »" + +-#: cp/tree.c:1821 ++#: cp/tree.c:1829 + #, c-format + msgid "`%s' attribute can only be applied to Java class definitions" + msgstr "attribut « %s » peut seulement être appliqué aux définitions de classes Java" + +-#: cp/tree.c:1850 ++#: cp/tree.c:1858 + #, c-format + msgid "`%s' attribute can only be applied to class definitions" + msgstr "attribut « %s » peut seulement être appliqué aux définitions de classes" + +-#: cp/tree.c:1856 ++#: cp/tree.c:1864 + #, c-format + msgid "`%s' is obsolete; g++ vtables are now COM-compatible by default" + msgstr "« %s » est obsolète; vtables g++ sont maintenant COM-compatibles par défaut" + +-#: cp/tree.c:1880 ++#: cp/tree.c:1888 + msgid "requested init_priority is not an integer constant" + msgstr "init_priority demandé n'est pas une constante entière" + +-#: cp/tree.c:1901 ++#: cp/tree.c:1909 + #, c-format + msgid "can only use `%s' attribute on file-scope definitions of objects of class type" + msgstr "peut seulement utiliser l'attribut « %s » sur la portée de fichier de définitions des objets de type de classe" + +-#: cp/tree.c:1909 ++#: cp/tree.c:1917 + msgid "requested init_priority is out of range" + msgstr "init_priority demandé est hors limite" + +-#: cp/tree.c:1919 ++#: cp/tree.c:1927 + msgid "requested init_priority is reserved for internal use" + msgstr "init_priority demandé est réservé pour un usage interne" + +-#: cp/tree.c:1929 ++#: cp/tree.c:1937 + #, c-format + msgid "`%s' attribute is not supported on this platform" + msgstr "attribut « %s » n'est pas supporté sur cette plate-forme" + +-#: cp/tree.c:2524 ++#: cp/tree.c:2534 + #, c-format + msgid "lang_* check: failed in %s, at %s:%d" + msgstr "vérification lang_* : éched dans %s, à %s:%d" +@@ -16942,262 +17011,262 @@ + msgid "invalid use of a pointer to an incomplete type in pointer arithmetic" + msgstr "utilisation invalide d'un pointeur vers un type incomplet dans un pointeur arithmétique" + +-#: cp/typeck.c:3582 ++#: cp/typeck.c:3600 + #, c-format + msgid "invalid use of '%E' to form a pointer-to-member-function. Use a qualified-id." + msgstr "utilisation invalide de « %E » pour former pointer-to-member-function. Utiliser un identifateur qualifié" + +-#: cp/typeck.c:3588 ++#: cp/typeck.c:3606 + #, c-format + msgid "parenthesis around '%E' cannot be used to form a pointer-to-member-function" + msgstr "parenthèses autour de « %E » ne peuvent être utilisées pour former pointer-to-member-function" + +-#: cp/typeck.c:3610 ++#: cp/typeck.c:3628 + msgid "taking address of temporary" + msgstr "prise de l'adresse du temporaire" + + # FIXME: I18N +-#: cp/typeck.c:3845 ++#: cp/typeck.c:3863 + #, c-format + msgid "ISO C++ forbids %sing an enum" + msgstr "ISO C++ interdit de %ser un enum" + +-#: cp/typeck.c:3856 ++#: cp/typeck.c:3874 + msgid "cannot %s a pointer to incomplete type `%T'" + msgstr "ne peut utiliser %s comme pointeur sur un type incomplet « %T »" + +-#: cp/typeck.c:3862 ++#: cp/typeck.c:3880 + msgid "ISO C++ forbids %sing a pointer of type `%T'" + msgstr "ISO C++ interdit %s utilisation d'un pointeur de type « %T »" + +-#: cp/typeck.c:3887 ++#: cp/typeck.c:3905 + msgid "cast to non-reference type used as lvalue" + msgstr "transtypage d'un type non référencé utilisé comme membre gauche" + +-#: cp/typeck.c:3921 ++#: cp/typeck.c:3939 + msgid "invalid use of `--' on bool variable `%D'" + msgstr "utilisation invalide de «--» sur une variable booléenne « %D »" + + #. ARM $3.4 +-#: cp/typeck.c:3952 ++#: cp/typeck.c:3970 + msgid "ISO C++ forbids taking address of function `::main'" + msgstr "ISO C++ interdit de prendre l'adresse d'une fonction «::main»" + + #. An expression like &memfn. +-#: cp/typeck.c:4027 ++#: cp/typeck.c:4045 + msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function. Say `&%T::%D'" + msgstr "ISO C++ interdit de prendre l'adress d'un membre de fonction non statique non qualifié ou entre parenthèses pour former un pointeur d'un membre de fonction. Utilisers «&%T::%D»" + +-#: cp/typeck.c:4032 ++#: cp/typeck.c:4050 + msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say `&%T::%D'" + msgstr "ISO C++ interdit de prendre l'adresse d'une borne d'un membre de fontion pour former un membre à la fonction. Disons «&%T::%D»" + +-#: cp/typeck.c:4060 ++#: cp/typeck.c:4078 + msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression" + msgstr "ISO C++ interdit de prendre l'adresse du transtypage vers une expression n'etant pas membre gauche" + +-#: cp/typeck.c:4080 ++#: cp/typeck.c:4098 + msgid "unary `&'" + msgstr "unaire « & »" + +-#: cp/typeck.c:4113 ++#: cp/typeck.c:4131 + msgid "attempt to take address of bit-field structure member `%D'" + msgstr "tentative de prise d'adresse du membre « %D » d'une structure de champ de bits" + +-#: cp/typeck.c:4227 ++#: cp/typeck.c:4245 + msgid "taking address of destructor" + msgstr "prise de l'adresse du destructeur" + +-#: cp/typeck.c:4240 ++#: cp/typeck.c:4258 + msgid "taking address of bound pointer-to-member expression" + msgstr "prise de l'adresse de la borne de l'expression d'un pointeur-vers-un membre" + +-#: cp/typeck.c:4248 ++#: cp/typeck.c:4266 + msgid "cannot create pointer to reference member `%D'" + msgstr "ne peut déclarer un pointeur vers le membre de référence « %D »" + +-#: cp/typeck.c:4311 ++#: cp/typeck.c:4329 + msgid "cannot take the address of `this', which is an rvalue expression" + msgstr "ne peut prendre l'adresse de « ceci », laquelle est une expression rvalue" + +-#: cp/typeck.c:4330 ++#: cp/typeck.c:4348 + msgid "address requested for `%D', which is declared `register'" + msgstr "adresse requise pour « %D», lequel est déclaré «register »" + +-#: cp/typeck.c:4398 ++#: cp/typeck.c:4416 + #, c-format + msgid "%s expression list treated as compound expression" + msgstr "%s liste d'expressions traitée comme une expression composée" + +-#: cp/typeck.c:4472 ++#: cp/typeck.c:4490 + msgid "%s from type `%T' to type `%T' casts away constness" + msgstr "%S à partir du « %T » vers le type « %T » provoque un transtypage sans constante" + +-#: cp/typeck.c:4674 ++#: cp/typeck.c:4692 + msgid "invalid static_cast from type `%T' to type `%T'" + msgstr "static_cast invalide du type « %T » au type « %T »" + +-#: cp/typeck.c:4714 ++#: cp/typeck.c:4732 + msgid "invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'" + msgstr "reinterpret_cast invalide d'une expression rvalue de type « %T » vers le type « %T »" + +-#: cp/typeck.c:4734 ++#: cp/typeck.c:4752 + msgid "reinterpret_cast from `%T' to `%T' loses precision" + msgstr "reinterpret_cast de « %T » vers « %T » génère une perte de précision" + +-#: cp/typeck.c:4753 ++#: cp/typeck.c:4771 + msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object" + msgstr "ISO C++ interdit le transtypage entre un pointeur de fonction et un pointeur d'objet" + +-#: cp/typeck.c:4759 ++#: cp/typeck.c:4777 + msgid "invalid reinterpret_cast from type `%T' to type `%T'" + msgstr "reinterpret_cast invalide à partir du type « %T » vers le type « %T »" + +-#: cp/typeck.c:4787 ++#: cp/typeck.c:4805 + msgid "invalid use of const_cast with type `%T', which is not a pointer, reference, nor a pointer-to-data-member type" + msgstr "utilisation invalide de const_cast avec le type « %T », lequel n'est pas un pointeur, une référence, ni un type pointeur-vers-données-membre" + +-#: cp/typeck.c:4790 ++#: cp/typeck.c:4808 + msgid "invalid use of const_cast with type `%T', which is a pointer or reference to a function type" + msgstr "utilisation invalide de const_cast avec le type « %T », lequel est un pointeur ou un référence à un type de fonction" + +-#: cp/typeck.c:4813 ++#: cp/typeck.c:4831 + msgid "invalid const_cast of an rvalue of type `%T' to type `%T'" + msgstr "const_cast invalide de la rvalue du type « %T » vers le type « %T »" + +-#: cp/typeck.c:4830 ++#: cp/typeck.c:4848 + msgid "invalid const_cast from type `%T' to type `%T'" + msgstr "const_cast invalide à partir du type « %T » vers le type « %T »" + +-#: cp/typeck.c:4870 cp/typeck.c:4875 ++#: cp/typeck.c:4888 cp/typeck.c:4893 + msgid "ISO C++ forbids casting to an array type `%T'" + msgstr "ISO C++ interdit le transtypage vers un type tableau « %T »" + +-#: cp/typeck.c:4883 ++#: cp/typeck.c:4901 + msgid "invalid cast to function type `%T'" + msgstr "transtypage invalide pour un type de fonction « %T »" + +-#: cp/typeck.c:4939 ++#: cp/typeck.c:4957 + msgid "cast from `%T' to `%T' discards qualifiers from pointer target type" + msgstr "transtypage de « %T » vers « %T » écarte les qualificateurs du type cible du pointeur" + +-#: cp/typeck.c:4985 ++#: cp/typeck.c:5003 + msgid "cast from `%T' to `%T' increases required alignment of target type" + msgstr "transtypage de « %T » vers « %T » augmente l'alignement requis pour le type ciblé" + +-#: cp/typeck.c:5152 ++#: cp/typeck.c:5170 + msgid " in evaluation of `%Q(%#T, %#T)'" + msgstr " lors de l'évaluation de « %Q(%#T, %#T) »" + +-#: cp/typeck.c:5194 ++#: cp/typeck.c:5212 + msgid "ISO C++ forbids cast to non-reference type used as lvalue" + msgstr "ISO C++ interdit le transtypage d'un type non référencé utilisé comme membre gauche" + +-#: cp/typeck.c:5267 ++#: cp/typeck.c:5285 + msgid "incompatible types in assignment of `%T' to `%T'" + msgstr "type incompatible dans l'affectation de « %T » vers « %T »" + +-#: cp/typeck.c:5274 ++#: cp/typeck.c:5292 + msgid "ISO C++ forbids assignment of arrays" + msgstr "ISO C++ interdit l'affectation de tableaux" + +-#: cp/typeck.c:5374 ++#: cp/typeck.c:5392 + msgid " in pointer to member function conversion" + msgstr " dans la conversion d'un pointeur vers un membre de fonction" + +-#: cp/typeck.c:5382 ++#: cp/typeck.c:5400 + msgid " in pointer to member conversion" + msgstr " dans la conversion d'un pointeur vers un membre" + + #. This is a reinterpret cast, we choose to do nothing. +-#: cp/typeck.c:5392 cp/typeck.c:5407 ++#: cp/typeck.c:5410 cp/typeck.c:5425 + msgid "pointer to member cast via virtual base `%T'" + msgstr "pointeur vers un membre transtypé via la base virtuelle « %T »" + +-#: cp/typeck.c:5410 ++#: cp/typeck.c:5428 + msgid "pointer to member conversion via virtual base `%T'" + msgstr "conversion de pointeur à membre à l'aide de la base virtuelle « %T »" + +-#: cp/typeck.c:5480 ++#: cp/typeck.c:5498 + msgid "invalid conversion to type `%T' from type `%T'" + msgstr "conversion invalide vers un type « %T » à partir du type « %T »" + +-#: cp/typeck.c:5636 ++#: cp/typeck.c:5657 + msgid "passing NULL used for non-pointer %s %P of `%D'" + msgstr "passage d'un NULL utilisé pour un non pointeur %s %P de « %D »" + +-#: cp/typeck.c:5639 ++#: cp/typeck.c:5660 + msgid "%s to non-pointer type `%T' from NULL" + msgstr "%s vers un type non pointeur « %T » à partir d'un NULL" + +-#: cp/typeck.c:5647 ++#: cp/typeck.c:5668 + msgid "passing `%T' for %s %P of `%D'" + msgstr "passage « %T » pour %s %P de « %D »" + +-#: cp/typeck.c:5650 ++#: cp/typeck.c:5671 + msgid "%s to `%T' from `%T'" + msgstr "%s vers « %T » à partir de « %T »" + +-#: cp/typeck.c:5660 ++#: cp/typeck.c:5681 + msgid "passing negative value `%E' for %s %P of `%D'" + msgstr "passage de valeur négative « %E » pour %s %P de « %D »" + +-#: cp/typeck.c:5663 ++#: cp/typeck.c:5684 + msgid "%s of negative value `%E' to `%T'" + msgstr "%s de valeur négative « %E » vers « %T »" + +-#: cp/typeck.c:5751 ++#: cp/typeck.c:5772 + msgid "cannot convert `%T' to `%T' for argument `%P' to `%D'" + msgstr "ne peut convertir « %T » à « %T » pour l'argument « %P » vers « %D »" + +-#: cp/typeck.c:5754 ++#: cp/typeck.c:5775 + msgid "cannot convert `%T' to `%T' in %s" + msgstr "ne peut convertir « %T » vers « %T » dans %s" + +-#: cp/typeck.c:5831 cp/typeck.c:5833 ++#: cp/typeck.c:5852 cp/typeck.c:5854 + msgid "in passing argument %P of `%+D'" + msgstr "dans le passage de l'argument %P de « %+D »" + +-#: cp/typeck.c:5940 ++#: cp/typeck.c:5961 + msgid "returning reference to temporary" + msgstr "retourné la référence vers le temporaire" + +-#: cp/typeck.c:5947 ++#: cp/typeck.c:5968 + msgid "reference to non-lvalue returned" + msgstr "une référence vers quelque chose n'étant pas un membre gauche a été retourné" + +-#: cp/typeck.c:5959 ++#: cp/typeck.c:5980 + msgid "reference to local variable `%D' returned" + msgstr "référence vers une variable locale « %D » retourné" + +-#: cp/typeck.c:5962 ++#: cp/typeck.c:5983 + msgid "address of local variable `%D' returned" + msgstr "adresse d'une variable locale « %D » retournée" + +-#: cp/typeck.c:5992 ++#: cp/typeck.c:6013 + msgid "returning a value from a destructor" + msgstr "retourné une valeur du destructeur" + + #. If a return statement appears in a handler of the + #. function-try-block of a constructor, the program is ill-formed. +-#: cp/typeck.c:6000 ++#: cp/typeck.c:6021 + msgid "cannot return from a handler of a function-try-block of a constructor" + msgstr "ne peut retourner d'un handler d'une fonction try-block d'un constructeur" + + #. You can't return a value from a constructor. +-#: cp/typeck.c:6003 ++#: cp/typeck.c:6024 + msgid "returning a value from a constructor" + msgstr "retourné une valeur d'un constructeur" + +-#: cp/typeck.c:6026 ++#: cp/typeck.c:6047 + msgid "return-statement with no value, in function returning '%T'" + msgstr "déclaration à retourner sans valeur dans une fonction retournant « %T »" + +-#: cp/typeck.c:6043 ++#: cp/typeck.c:6064 + msgid "return-statement with a value, in function returning 'void'" + msgstr "déclaration éa retourner avec une valeur dans une fonction retournant un « void »" + +-#: cp/typeck.c:6065 ++#: cp/typeck.c:6086 + msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)" + msgstr "« operator new» ne doit pas retourner NULL à moins qu'il ne soit déclaré «throw() » (ou -fcheck-new est utilisée)" + +@@ -17249,124 +17318,124 @@ + msgid "cannot initialize arrays using this syntax" + msgstr "ne peut initialiser les tableaux en utilisant la syntaxe" + +-#: cp/typeck2.c:545 ++#: cp/typeck2.c:535 + msgid "initializing array with parameter list" + msgstr "initialise le tableau avec la liste des paramètres" + +-#: cp/typeck2.c:600 ++#: cp/typeck2.c:590 + msgid "initializer for scalar variable requires one element" + msgstr "l'initialisation de variable scalaire requiert un élément" + +-#: cp/typeck2.c:607 ++#: cp/typeck2.c:597 + msgid "braces around scalar initializer for `%T'" + msgstr "accolades autour de l'initialiseur scalaire pour « %T »" + +-#: cp/typeck2.c:610 ++#: cp/typeck2.c:600 + msgid "ignoring extra initializers for `%T'" + msgstr "initialiseurs superflus pour « %T » ignorés" + +-#: cp/typeck2.c:622 ++#: cp/typeck2.c:612 + msgid "variable-sized object of type `%T' may not be initialized" + msgstr "un objet de taille variable de type « %T » peut ne pas être initialisé" + +-#: cp/typeck2.c:632 ++#: cp/typeck2.c:622 + msgid "subobject of type `%T' must be initialized by constructor, not by `%E'" + msgstr "sous-objet de type « %T » doit être initialisé par un constructeur, non pas par « %E »" + +-#: cp/typeck2.c:697 ++#: cp/typeck2.c:687 + msgid "aggregate has a partly bracketed initializer" + msgstr "aggrégat a un initialiseur partiellement entouré d'accolades" + +-#: cp/typeck2.c:735 cp/typeck2.c:840 ++#: cp/typeck2.c:725 cp/typeck2.c:830 + msgid "non-trivial labeled initializers" + msgstr "initialiseur étiqueté de manière non trivial" + +-#: cp/typeck2.c:752 ++#: cp/typeck2.c:742 + msgid "non-empty initializer for array of empty elements" + msgstr "initialiseurs non vides pour un tableau d'éléments vides" + +-#: cp/typeck2.c:806 ++#: cp/typeck2.c:796 + msgid "initializer list for object of class with virtual base classes" + msgstr "liste d'initialiseurs pour les objets de classe avec classes de base virtuelles" + +-#: cp/typeck2.c:812 ++#: cp/typeck2.c:802 + msgid "initializer list for object of class with base classes" + msgstr "liste d'initialiseurs pour les objets de classe avec classes de base" + +-#: cp/typeck2.c:818 ++#: cp/typeck2.c:808 + msgid "initializer list for object using virtual functions" + msgstr "liste d'initialiseurs pour objet utilisant des fonctions virtuelles" + +-#: cp/typeck2.c:880 cp/typeck2.c:896 ++#: cp/typeck2.c:870 cp/typeck2.c:886 + msgid "missing initializer for member `%D'" + msgstr "initialiseur manquant pour le membre « %D »" + +-#: cp/typeck2.c:885 ++#: cp/typeck2.c:875 + msgid "uninitialized const member `%D'" + msgstr "membre de constante non initialisé pour « %D »" + +-#: cp/typeck2.c:887 ++#: cp/typeck2.c:877 + msgid "member `%D' with uninitialized const fields" + msgstr "membre « %D » avec des champs de constantes non initialisée" + +-#: cp/typeck2.c:890 ++#: cp/typeck2.c:880 + msgid "member `%D' is uninitialized reference" + msgstr "membre « %D » est une référence non initialisée" + +-#: cp/typeck2.c:937 ++#: cp/typeck2.c:927 + msgid "index value instead of field name in union initializer" + msgstr "valeur index au lieu du nom de champ dans l'initialiseur d'union" + +-#: cp/typeck2.c:949 ++#: cp/typeck2.c:939 + msgid "no field `%D' in union being initialized" + msgstr "pas de champ « %D » dans l'aggrégat n'a été initialisé" + +-#: cp/typeck2.c:957 ++#: cp/typeck2.c:947 + msgid "union `%T' with no named members cannot be initialized" + msgstr "aggrégat « %T » sans mambre nommé ne peut être initialisé" + +-#: cp/typeck2.c:993 ++#: cp/typeck2.c:983 + msgid "excess elements in aggregate initializer" + msgstr "éléments en excès dans l'initialiseur d'aggrégat" + +-#: cp/typeck2.c:1102 ++#: cp/typeck2.c:1092 + msgid "circular pointer delegation detected" + msgstr "délégation de pointeur circulaire détecté" + +-#: cp/typeck2.c:1115 ++#: cp/typeck2.c:1105 + msgid "base operand of `->' has non-pointer type `%T'" + msgstr "l'opérande de base de «->» a un type non pointeur « %T »" + +-#: cp/typeck2.c:1139 ++#: cp/typeck2.c:1129 + msgid "result of `operator->()' yields non-pointer result" + msgstr "résultat de « operator->() » laisse comme résultat un non pointeur" + +-#: cp/typeck2.c:1141 ++#: cp/typeck2.c:1131 + msgid "base operand of `->' is not a pointer" + msgstr "l'opérande de base de «->» n'est pas un pointeur" + +-#: cp/typeck2.c:1164 ++#: cp/typeck2.c:1154 + msgid "`%E' cannot be used as a member pointer, since it is of type `%T'" + msgstr "« %E » ne peut être utilisé comme pointeur de membre, alors qu'il est de type « %T »" + +-#: cp/typeck2.c:1172 ++#: cp/typeck2.c:1162 + msgid "cannot apply member pointer `%E' to `%E', which is of non-aggregate type `%T'" + msgstr "ne peut appliquer un pointeur de membre « %E » à « %E », lequel n'est pas un type d'aggrégat « %T »" + +-#: cp/typeck2.c:1182 ++#: cp/typeck2.c:1172 + msgid "member type `%T::' incompatible with object type `%T'" + msgstr "type du membre « %T:: » incompatible avec le type d'objet « %T »" + +-#: cp/typeck2.c:1398 ++#: cp/typeck2.c:1388 + msgid "call to function `%D' which throws incomplete type `%#T'" + msgstr "l'appel à la fonction « %D » laquelle écarte le type incomplet « %T »" + +-#: cp/typeck2.c:1401 ++#: cp/typeck2.c:1391 + msgid "call to function which throws incomplete type `%#T'" + msgstr "l'appel à la fonction laquelle écarte le type incomplet « %T »" + + #. XXX Not i18n clean. +-#: cp/cp-tree.h:3756 ++#: cp/cp-tree.h:3775 + #, c-format + msgid "%s is deprecated, please see the documentation for details" + msgstr "%s est obsolète, SVP voir la documentation pour les détails" +@@ -18923,291 +18992,228 @@ + msgid "internal error - invalid Utf8 name" + msgstr "erreur interne - nom Utf8 invalide" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse-scan.y:880 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:949 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1290 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1351 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1555 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1777 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1786 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1797 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1808 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1820 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1835 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1852 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1854 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1935 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2106 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2168 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2320 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2332 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2339 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2346 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2357 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2359 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2397 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2399 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2401 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2422 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2424 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2426 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2442 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2444 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2465 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2467 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2469 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2497 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2499 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2501 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2503 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2521 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2523 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2534 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2545 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2556 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2567 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2578 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2591 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2595 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2597 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2610 ++#: ../../gcc/java/parse-scan.y:880 ../../gcc/java/parse.y:949 ++#: ../../gcc/java/parse.y:1290 ../../gcc/java/parse.y:1351 ++#: ../../gcc/java/parse.y:1555 ../../gcc/java/parse.y:1777 ++#: ../../gcc/java/parse.y:1786 ../../gcc/java/parse.y:1797 ++#: ../../gcc/java/parse.y:1808 ../../gcc/java/parse.y:1820 ++#: ../../gcc/java/parse.y:1835 ../../gcc/java/parse.y:1852 ++#: ../../gcc/java/parse.y:1854 ../../gcc/java/parse.y:1935 ++#: ../../gcc/java/parse.y:2106 ../../gcc/java/parse.y:2168 ++#: ../../gcc/java/parse.y:2320 ../../gcc/java/parse.y:2332 ++#: ../../gcc/java/parse.y:2339 ../../gcc/java/parse.y:2346 ++#: ../../gcc/java/parse.y:2357 ../../gcc/java/parse.y:2359 ++#: ../../gcc/java/parse.y:2397 ../../gcc/java/parse.y:2399 ++#: ../../gcc/java/parse.y:2401 ../../gcc/java/parse.y:2422 ++#: ../../gcc/java/parse.y:2424 ../../gcc/java/parse.y:2426 ++#: ../../gcc/java/parse.y:2442 ../../gcc/java/parse.y:2444 ++#: ../../gcc/java/parse.y:2465 ../../gcc/java/parse.y:2467 ++#: ../../gcc/java/parse.y:2469 ../../gcc/java/parse.y:2497 ++#: ../../gcc/java/parse.y:2499 ../../gcc/java/parse.y:2501 ++#: ../../gcc/java/parse.y:2503 ../../gcc/java/parse.y:2521 ++#: ../../gcc/java/parse.y:2523 ../../gcc/java/parse.y:2534 ++#: ../../gcc/java/parse.y:2545 ../../gcc/java/parse.y:2556 ++#: ../../gcc/java/parse.y:2567 ../../gcc/java/parse.y:2578 ++#: ../../gcc/java/parse.y:2591 ../../gcc/java/parse.y:2595 ++#: ../../gcc/java/parse.y:2597 ../../gcc/java/parse.y:2610 + msgid "Missing term" + msgstr "Terme manquant" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse-scan.y:882 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:721 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:759 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:784 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:970 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1325 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1531 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1533 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1762 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1788 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1799 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1810 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1822 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1837 ++#: ../../gcc/java/parse-scan.y:882 ../../gcc/java/parse.y:721 ++#: ../../gcc/java/parse.y:759 ../../gcc/java/parse.y:784 ++#: ../../gcc/java/parse.y:970 ../../gcc/java/parse.y:1325 ++#: ../../gcc/java/parse.y:1531 ../../gcc/java/parse.y:1533 ++#: ../../gcc/java/parse.y:1762 ../../gcc/java/parse.y:1788 ++#: ../../gcc/java/parse.y:1799 ../../gcc/java/parse.y:1810 ++#: ../../gcc/java/parse.y:1822 ../../gcc/java/parse.y:1837 + msgid "';' expected" + msgstr "«;» attendu" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:719 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:757 ++#: ../../gcc/java/parse.y:719 ../../gcc/java/parse.y:757 + msgid "Missing name" + msgstr "Nom manquant" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:782 ++#: ../../gcc/java/parse.y:782 + msgid "'*' expected" + msgstr "« * » attendu" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:796 ++#: ../../gcc/java/parse.y:796 + msgid "Class or interface declaration expected" + msgstr "Déclaration de classe ou d'interface attendue" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:833 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:835 ++#: ../../gcc/java/parse.y:833 ../../gcc/java/parse.y:835 + msgid "Missing class name" + msgstr "Nom de classe manquant" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:838 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:842 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:850 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1010 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1271 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1273 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1597 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1848 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1880 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1942 ++#: ../../gcc/java/parse.y:838 ../../gcc/java/parse.y:842 ++#: ../../gcc/java/parse.y:850 ../../gcc/java/parse.y:1010 ++#: ../../gcc/java/parse.y:1271 ../../gcc/java/parse.y:1273 ++#: ../../gcc/java/parse.y:1597 ../../gcc/java/parse.y:1848 ++#: ../../gcc/java/parse.y:1880 ../../gcc/java/parse.y:1942 + msgid "'{' expected" + msgstr "«{» attendu" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:852 ++#: ../../gcc/java/parse.y:852 + msgid "Missing super class name" + msgstr "Nom de super classe manquant" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:862 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:878 ++#: ../../gcc/java/parse.y:862 ../../gcc/java/parse.y:878 + msgid "Missing interface name" + msgstr "Nom d'interface manquant" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:964 ++#: ../../gcc/java/parse.y:964 + msgid "Missing variable initializer" + msgstr "Initialiseur de variable manquant" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:981 ++#: ../../gcc/java/parse.y:981 + msgid "Invalid declaration" + msgstr "Déclaration invalide" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:984 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1069 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2143 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2165 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2169 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2204 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2281 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2291 ++#: ../../gcc/java/parse.y:984 ../../gcc/java/parse.y:1069 ++#: ../../gcc/java/parse.y:2143 ../../gcc/java/parse.y:2165 ++#: ../../gcc/java/parse.y:2169 ../../gcc/java/parse.y:2204 ++#: ../../gcc/java/parse.y:2281 ../../gcc/java/parse.y:2291 + msgid "']' expected" + msgstr "«]» attendu" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:988 ++#: ../../gcc/java/parse.y:988 + msgid "Unbalanced ']'" + msgstr "«]» non pairé" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1024 ++#: ../../gcc/java/parse.y:1024 + msgid "Invalid method declaration, method name required" + msgstr "Déclaration de méthode invalide, nom de méthode requis" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1029 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1034 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1039 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2026 ++#: ../../gcc/java/parse.y:1029 ../../gcc/java/parse.y:1034 ++#: ../../gcc/java/parse.y:1039 ../../gcc/java/parse.y:2026 + msgid "Identifier expected" + msgstr "Identificateur attendu" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1044 ++#: ../../gcc/java/parse.y:1044 + msgid "Invalid method declaration, return type required" + msgstr "Déclaration de méthode invalide, type retourné requis" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1067 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1511 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1518 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1527 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1529 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1557 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1665 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1971 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2024 ++#: ../../gcc/java/parse.y:1067 ../../gcc/java/parse.y:1511 ++#: ../../gcc/java/parse.y:1518 ../../gcc/java/parse.y:1527 ++#: ../../gcc/java/parse.y:1529 ../../gcc/java/parse.y:1557 ++#: ../../gcc/java/parse.y:1665 ../../gcc/java/parse.y:1971 ++#: ../../gcc/java/parse.y:2024 + msgid "')' expected" + msgstr "«)» attendu" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1083 ++#: ../../gcc/java/parse.y:1083 + msgid "Missing formal parameter term" + msgstr "Paramètre term formel manquant" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1098 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1103 ++#: ../../gcc/java/parse.y:1098 ../../gcc/java/parse.y:1103 + msgid "Missing identifier" + msgstr "Identificateur manquant" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1123 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1132 ++#: ../../gcc/java/parse.y:1123 ../../gcc/java/parse.y:1132 + msgid "Missing class type term" + msgstr "Type term de classe manquant" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1288 ++#: ../../gcc/java/parse.y:1288 + msgid "Invalid interface type" + msgstr "Type d'interface invalide" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1475 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1644 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1646 ++#: ../../gcc/java/parse.y:1475 ../../gcc/java/parse.y:1644 ++#: ../../gcc/java/parse.y:1646 + msgid "':' expected" + msgstr "«:» attendu" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1497 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1502 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1507 ++#: ../../gcc/java/parse.y:1497 ../../gcc/java/parse.y:1502 ++#: ../../gcc/java/parse.y:1507 + msgid "Invalid expression statement" + msgstr "Déclaration d'expression invalide" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1525 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1553 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1593 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1661 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1729 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1850 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1928 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2018 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2020 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2028 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2264 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2266 ++#: ../../gcc/java/parse.y:1525 ../../gcc/java/parse.y:1553 ++#: ../../gcc/java/parse.y:1593 ../../gcc/java/parse.y:1661 ++#: ../../gcc/java/parse.y:1729 ../../gcc/java/parse.y:1850 ++#: ../../gcc/java/parse.y:1928 ../../gcc/java/parse.y:2018 ++#: ../../gcc/java/parse.y:2020 ../../gcc/java/parse.y:2028 ++#: ../../gcc/java/parse.y:2264 ../../gcc/java/parse.y:2266 + msgid "'(' expected" + msgstr "«(» attendu" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1595 ++#: ../../gcc/java/parse.y:1595 + msgid "Missing term or ')'" + msgstr "Terme manquant ou «)»" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1642 ++#: ../../gcc/java/parse.y:1642 + msgid "Missing or invalid constant expression" + msgstr "Expresion de constante manquante ou invalide" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1663 ++#: ../../gcc/java/parse.y:1663 + msgid "Missing term and ')' expected" + msgstr "Terme manquant et «)» attendus" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1702 ++#: ../../gcc/java/parse.y:1702 + msgid "Invalid control expression" + msgstr "Expression de contrôle invalide" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1704 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1706 ++#: ../../gcc/java/parse.y:1704 ../../gcc/java/parse.y:1706 + msgid "Invalid update expression" + msgstr "Expression de mise à jour invalide" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1731 ++#: ../../gcc/java/parse.y:1731 + msgid "Invalid init statement" + msgstr "Déclaration init invalide" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1931 ++#: ../../gcc/java/parse.y:1931 + msgid "Missing term or ')' expected" + msgstr "Terme manquant ou «)» attendu" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1973 ++#: ../../gcc/java/parse.y:1973 + msgid "'class' or 'this' expected" + msgstr "« class» ou «ceci » attendu" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1975 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1977 ++#: ../../gcc/java/parse.y:1975 ../../gcc/java/parse.y:1977 + msgid "'class' expected" + msgstr "« class » attendu" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2022 ++#: ../../gcc/java/parse.y:2022 + msgid "')' or term expected" + msgstr "«)» or terme attendu" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2141 ++#: ../../gcc/java/parse.y:2141 + msgid "'[' expected" + msgstr "«[» attendu" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2219 ++#: ../../gcc/java/parse.y:2219 + msgid "Field expected" + msgstr "Champ attendu" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2276 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2286 ++#: ../../gcc/java/parse.y:2276 ../../gcc/java/parse.y:2286 + msgid "Missing term and ']' expected" + msgstr "Terme manquant et «]» attendu" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2390 ++#: ../../gcc/java/parse.y:2390 + msgid "']' expected, invalid type expression" + msgstr "«]» attendu, type d'expression invalide" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2393 ++#: ../../gcc/java/parse.y:2393 + msgid "Invalid type expression" + msgstr "Type d'expression invalide" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2505 ++#: ../../gcc/java/parse.y:2505 + msgid "Invalid reference type" + msgstr "Type de référence invalide" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2977 ++#: ../../gcc/java/parse.y:2977 + msgid "Constructor invocation must be first thing in a constructor" + msgstr "L'invaocation d'un constructeur doit être la première chose dans un constructeur" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2979 ++#: ../../gcc/java/parse.y:2979 + msgid "Only constructors can invoke constructors" + msgstr "Seuls les constructeurs peuvent invoquer des constructeurs" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2987 ++#: ../../gcc/java/parse.y:2987 + #, c-format + msgid ": `%s' JDK1.1(TM) feature" + msgstr ": « %s » option JDK1.1(TM)" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:3046 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:3048 ++#: ../../gcc/java/parse.y:3046 ../../gcc/java/parse.y:3048 + #, c-format + msgid "" + "%s.\n" +@@ -19216,32 +19222,32 @@ + "%s.\n" + "%s" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:6909 ++#: ../../gcc/java/parse.y:6909 + #, c-format + msgid "malformed .zip archive in CLASSPATH: %s" + msgstr "archive .zip mal composée dans CLASSPATH: %s" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:6980 ++#: ../../gcc/java/parse.y:6980 + #, c-format + msgid "Can't find default package `%s'. Check the CLASSPATH environment variable and the access to the archives" + msgstr "ne peut repérer le package par défaut « %s ». Vérifier la variable d'environnement CLASSPATH et l'accès aux archives." + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12193 ++#: ../../gcc/java/parse.y:12193 + #, c-format + msgid "missing static field `%s'" + msgstr "champ statique manquant « %s »" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12198 ++#: ../../gcc/java/parse.y:12198 + #, c-format + msgid "not a static field `%s'" + msgstr "n'est pas un champ statique « %s »" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12241 ++#: ../../gcc/java/parse.y:12241 + #, c-format + msgid "No case for %s" + msgstr "Oas de case pour %s" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:13173 ++#: ../../gcc/java/parse.y:13173 + #, c-format + msgid "unregistered operator %s" + msgstr "opérator %s non enregistré" +@@ -19580,1691 +19586,1375 @@ + msgid "[super ...] must appear in a method context" + msgstr "[super ...] doit apparaître dans une méthode du contexte" + +-#: objc/objc-parse.y:2701 ++#: objc/objc-parse.y:2700 + msgid "`@end' must appear in an implementation context" + msgstr "«@end» doit appraître dans un contaxte d'implantation" + +-#: objc/objc-parse.y:2914 ++#: objc/objc-parse.y:2913 + msgid "method definition not in class context" + msgstr "méthode de définition n'est pas dans un contexte de classe" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:23 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:21 + msgid "Display this information" + msgstr "afficher l'aide-mémoire" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:29 +-msgid "--param =\tSet paramter to value. See below for a complete list of parameters" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:27 ++msgid "--param =\tSet parameter to value. See below for a complete list of parameters" + msgstr "--param =\tinitialiser le avec la valeur. Voir ci-bas pour la liste complète des paramètres" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:38 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:36 + msgid "-A=\tAssert the to . Putting '-' before disables the to " + msgstr "-A=\tassocier la à la . Placer « - » devant la désactive la à la " + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:41 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:39 + msgid "Do not discard comments" + msgstr "Ne pas éliminer les commentaires" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:44 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:42 + msgid "Do not discard comments in macro expansions" + msgstr "Ne pas éliminer les commentaires dans les expansions macro" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:47 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:45 + msgid "-D[=]\tDefine a with as its value. If just is given, is taken to be 1" + msgstr "-D[=]\tdéfinir le avec la . Si seul le est fourni, vaut 1 par défaut" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:53 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:51 + msgid "-G\tPut global and static data smaller than bytes into a special section (on some targets)" + msgstr "" + " -G placer les données globales et statiques plus\n" + " petites que d'octets dans une section\n" + " spéciale (sur certaines cibles)" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:56 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:54 + msgid "Print the name of header files as they are used" + msgstr "Afficher les noms des en-têtes de fichiers tel qu'ils sont utilisés" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:65 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:57 ++msgid "-I \tAdd to the end of the main include path. -I- gives more include path control; see info documentation" ++msgstr "-I \tajouter à la fin du chemin principal d'inclusion. -I- donne plus de contrôle sur le chemin d'inclusion; voir la documentation info" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:60 ++msgid "Generate make dependencies" ++msgstr "Générer les dépendances pour make" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:63 + msgid "Generate make dependencies and compile" + msgstr "Générer les dépendances pour make et compiler" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:74 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:66 ++msgid "-MF \tWrite dependency output to the given file" ++msgstr "-MF \técrire les dépendances en sortie dans le fichier fourni" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:69 + msgid "Treat missing header files as generated files" + msgstr "Traiter les en-têtes manquantes de fichiers comme des fichiers générés" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:80 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:72 ++msgid "Like -M but ignore system header files" ++msgstr "Identique à -M mais ignore les en-têtes de fichiers système" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:75 + msgid "Like -MD but ignore system header files" + msgstr "Identique à -MD mais ignore les en-têtes de fichiers système" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:89 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:78 ++msgid "Generate phony targets for all headers" ++msgstr "Générer les cibles bidons pour toutes les en-têtes" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:81 + msgid "-MQ \tAdd a MAKE-quoted target" + msgstr "-MQ \tajouter MAKE-quoted cible" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:95 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:84 ++msgid "-MT \tAdd an unquoted target" ++msgstr "-MT \tajouter une cible sans quote" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:87 + msgid "-O\tSet optimization level to " + msgstr "-O\tutiliser le niveau d'optimisation " + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:98 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:90 + msgid "Optimize for space rather than speed" + msgstr "Optimiser l'utilisation de l'espace plutôt que la vitesse" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:101 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:93 + msgid "Do not generate #line directives" + msgstr "Ne pas générer de directives #line" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:104 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:96 + msgid "-U\tUndefine " + msgstr "-U\tabandonner la définition " + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:107 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:99 + msgid "This switch is deprecated; use -Wextra instead" + msgstr "Cette option est obsolète; utiliser -Wextra à la place" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:113 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:105 + msgid "Warn about returning structures, unions or arrays" + msgstr "Avertir à propos de structures retournés, unions ou tableaux" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:119 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:108 ++msgid "Enable most warning messages" ++msgstr "Autoriser la plupart des messages d'avertissement" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:111 + msgid "Warn about casting functions to incompatible types" + msgstr "Avertir à propos des fonctions de transtypage avec des types incompatibles" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:122 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:114 + msgid "Warn about pointer casts which increase alignment" + msgstr "Avertir à propos des pointeurs convertis lesquels augment l'alignement" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:125 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:117 + msgid "Warn about casts which discard qualifiers" + msgstr "Avertir à propos des transtypage qui écartent les qualificateurs" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:128 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:120 + msgid "Warn about subscripts whose type is \"char\"" + msgstr "Avertir à propos des souscripts dont le type est \"char\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:137 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:123 ++msgid "Warn about possibly nested block comments, and C++ comments spanning more than one physical line" ++msgstr "Avertir à propos des blocs de commentaires imbriqués et les commentaires C++ qui s'étendent sur plus d'une ligne physique" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:126 ++msgid "Synonym for -Wcomment" ++msgstr "Synonyme pour -Wcommentaire" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:129 + msgid "Warn about possibly confusing type conversions" + msgstr "Avertir à propos des conversion confuses de types" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:140 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:132 + msgid "Warn when all constructors and destructors are private" + msgstr "Avertir lorsque tous les constructeurs et destructeurs sont privés" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:143 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:135 + msgid "Warn when a declaration is found after a statement" + msgstr "Avertir lorsqu'une déclaration est spécifiée après une déclaration" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:146 +-msgid "Warn if deprecated class, method, or field is used" +-msgstr "Avertir si une classe, une méthode ou un champ obsolète est utilisé" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:138 ++msgid "Warn about deprecated compiler features" ++msgstr "Avertir à propos des options obsolètes du compilateur" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:149 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:141 + msgid "Warn about uses of __attribute__((deprecated)) declarations" + msgstr "Avertir à propos de l'utilisation des déclarations « __attribute__ ((deprecated)) »" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:152 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:144 + msgid "Warn when an optimization pass is disabled" + msgstr "Avertir lorsque la passe d'optimisation est désactivée" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:155 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:147 + msgid "Warn about compile-time integer division by zero" + msgstr "Avertir au sujet de la division entière par zéro au moment de la compilation" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:158 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:150 + msgid "Warn about violations of Effective C++ style rules" + msgstr "Avertir à propos des violations des règles de style de Effective C++" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:161 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:153 + msgid "Warn about stray tokens after #elif and #endif" + msgstr "Avertir à propos des jetons perdus après #elif et #endif" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:164 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:156 + msgid "Treat all warnings as errors" + msgstr "Traiter tous les avertissements commes des erreurs" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:167 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:159 + msgid "Make implicit function declarations an error" + msgstr "Faire une erreur lors de déclaration de fonctions implicites" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:170 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:162 + msgid "Print extra (possibly unwanted) warnings" + msgstr "Afficher des avertissements superflus (possiblement non désirés)" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:173 +-msgid "Warn if deprecated empty statements are found" +-msgstr "Avertir si des déclarations vides obsolètes sont trouvées" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:176 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:165 + msgid "Warn if testing floating point numbers for equality" + msgstr "Avertir à propos des tests d'égalité sur des nombres flottants" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:179 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:168 + msgid "Warn about printf/scanf/strftime/strfmon format string anomalies" + msgstr "Avertir à propos des anomalies de format de chaînes pour printf/scanf/strftime/strfmon" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:182 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:171 + msgid "Warn if passing too many arguments to a function for its format string" + msgstr "Avertir lorsqu'il y a trop de passage d'arguments à une fonction pour le format de ses chaînes" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:185 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:174 + msgid "Warn about format strings that are not literals" + msgstr "Avertir à propos des chaînes de format qui n'ont pas de litérals" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:188 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:177 + msgid "Warn about possible security problems with format functions" + msgstr "Avertir à propos des problèmes possibles de sécurité avec les formats de fonction" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:191 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:180 + msgid "Warn about strftime formats yielding 2-digit years" + msgstr "Avertir à propos des formats strftime ne laissant que 2 chiffres pour l'année" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:200 +-msgid "Enable warnings about inter-procedural problems" +-msgstr "Autoriser les avertissements à propos des problèmes inter-procédural" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:206 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:192 + msgid "Warn about implicit function declarations" + msgstr "Avertir à propos des déclarations de fonctions implicites" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:209 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:195 + msgid "Warn when a declaration does not specify a type" + msgstr "Avertir lorsqu'une déclaration ne spécifie pas le type" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:215 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:198 ++msgid "Deprecated. This switch has no effect." ++msgstr "Obsolète. Cette option n'a aucun effet." ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:201 + msgid "Warn about variables which are initialized to themselves." + msgstr "Avertir au sujet des variables qui sont initialisés par elles-même" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:218 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:204 + msgid "Warn when an inlined function cannot be inlined" + msgstr "Avertir lorsque des fonctions en ligne ne peuvent être enligne" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:221 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:207 + msgid "Warn about invalid uses of the \"offsetof\" macro" + msgstr "Avertir à propos de l'utilisation invalide de macro \"offsetof\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:224 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:210 + msgid "Warn about PCH files that are found but not used" + msgstr "Avertir à propos des fichier PCH qui sont repérés mais non utilisés" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:227 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:213 + msgid "-Wlarger-than-\tWarn if an object is larger than bytes" + msgstr "-Wlarger-than-\tavertir si un objet est plus grand que d'octets" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:230 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:216 + msgid "Do not warn about using \"long long\" when -pedantic" + msgstr "Ne pas avertir à propos de l'utilisation de \"long long\" avec -pedantic" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:233 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:219 + msgid "Warn about suspicious declarations of \"main\"" + msgstr "Avertir à propos des déclarations douteuses de \"main\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:236 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:222 + msgid "Warn about possibly missing braces around initializers" + msgstr "Avertir à propos des possibles accolades manquantes autour des initialisations" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:239 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:225 + msgid "Warn about global functions without previous declarations" + msgstr "Avertir à propos des fonctions globales sans déclaration précédente" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:242 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:228 + msgid "Warn about functions which might be candidates for format attributes" + msgstr "Avertir à propos des fonctions qui pourraient être candidates pour les attributs de format" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:245 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:231 + msgid "Warn about functions which might be candidates for __attribute__((noreturn))" + msgstr "Avertir à propos des fonctions qui seraient candidates pour __attribute__((noreturn))" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:248 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:234 + msgid "Warn about global functions without prototypes" + msgstr "Avertir à propos des fonctions globales sans prototype" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:251 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:237 + msgid "Warn about use of multi-character character constants" + msgstr "Avertir à propos de l'utilisation des chaînes de multi-caractères" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:254 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:240 + msgid "Warn about \"extern\" declarations not at file scope" + msgstr "Avertir à propos des déclarations \"extern\" qui n'est pas dans l'étendue du fichier" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:257 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:243 + msgid "Warn when non-templatized friend functions are declared within a template" + msgstr "Avertir lorsque des fonctions amis sans patron sont déclarés à l'intérieur d'un patron" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:260 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:246 + msgid "Warn about non-virtual destructors" + msgstr "Avertir à propos des destructeurs non virtuels" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:266 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:252 + msgid "Warn if a C-style cast is used in a program" + msgstr "Avertir si le style de transtypage C est utilisé dans un programme" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:269 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:255 + msgid "Warn if an old-style parameter definition is used" + msgstr "Avertir lorsqu'un paramètre de style ancien de définition est utilisé" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:272 +-msgid "Warn if .class files are out of date" +-msgstr "Avertir si des fichier .class sont périmées" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:275 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:258 + msgid "Warn about overloaded virtual function names" + msgstr "Avertir à propos de la surcharge des noms de fonctions virtuelles" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:278 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:261 + msgid "Warn when the packed attribute has no effect on struct layout" + msgstr "Avertir lorsque les attributs paquetés n'ont pas d'effet sur l'organisation d'un struct" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:281 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:264 + msgid "Warn when padding is required to align structure members" + msgstr "Avertir lorsque le remplissage est requis pour aligner les membres de structure" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:284 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:267 + msgid "Warn about possibly missing parentheses" + msgstr "Avertir à propos du manque possible de parenthèses" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:287 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:270 + msgid "Warn when converting the type of pointers to member functions" + msgstr "Avertir lors de la conversion des types de pointeurs en membres de fonctions" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:290 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:273 + msgid "Warn about function pointer arithmetic" + msgstr "Avertir à propos d'arithmétique portant sur un pointeur de fonction" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:293 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:276 + msgid "Warn if inherited methods are unimplemented" + msgstr "Avertir si les méthodes héritées ne sont pas implantées" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:296 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:279 + msgid "Warn about multiple declarations of the same object" + msgstr "Avertir à propos des déclarations multiples portant sur le même objet" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:299 +-msgid "Warn if modifiers are specified when not necessary" +-msgstr "Avertir si des modificateurs sont spécifiés sans que cela ne soit nécessaires" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:302 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:282 + msgid "Warn when the compiler reorders code" + msgstr "Avertir lorsque le compilateur réordonne le code" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:305 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:285 + msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)" + msgstr "Avertir lorsque le type de fonction à retourner par défaut est \"int\" (C) ou à propos d'un type inconsisten à retourner (C++)" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:308 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:288 + msgid "Warn if a selector has multiple methods" + msgstr "Avertir si le sélecteur a de multiples méthodes" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:311 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:291 + msgid "Warn about possible violations of sequence point rules" + msgstr "Avertir à propos des violations possibles des règles de séquence de points" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:314 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:294 + msgid "Warn when one local variable shadows another" + msgstr "Avertir lorsqu'une variable locale masque une autre" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:317 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:297 + msgid "Warn about signed-unsigned comparisons" + msgstr "Avertir à propos des comparaisons signés ou non signés" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:320 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:300 + msgid "Warn when overload promotes from unsigned to signed" + msgstr "Avertir lorsque la surcharge fait la promotion d'un non signé en signé" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:323 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:303 + msgid "Warn about code which might break strict aliasing rules" + msgstr "Avertir à propos du code qui pourrait briser les règles strictes d'alias" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:326 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:306 + msgid "Warn about unprototyped function declarations" + msgstr "Avertir à propos des déclarations de fonctions sans prototype" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:329 +-msgid "Warn about constructs with surprising meanings" +-msgstr "Avertir à propos des construits ayant des sens surprenants" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:332 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:309 + msgid "Warn about enumerated switches, with no default, missing a case" + msgstr "Avertir à propos d'un switch énuméré, sans défaut ou un case est manquant" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:335 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:312 + msgid "Warn about enumerated switches missing a \"default:\" statement" + msgstr "Avertir à propos d'un switch énuméré n'ayant pas de déclaration \"default:\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:338 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:315 + msgid "Warn about all enumerated switches missing a specific case" + msgstr "Avertir à propos de tous les switch énumérés où un case spécific manque" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:341 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:318 + msgid "Warn when synthesis behavior differs from Cfront" + msgstr "Avertir lorsque le comportement de synthère diffère de Cfront" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:344 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:321 + msgid "Do not suppress warnings from system headers" + msgstr "Ne pas supprimer les avertissements pour les en-têtes système" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:347 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:324 + msgid "Warn about features not present in traditional C" + msgstr "Avertir à propos d'une option absente en C traditionnel" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:356 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:327 ++msgid "Warn if trigraphs are encountered that might affect the meaning of the program" ++msgstr "Avertir si des trigraphes sont rencontrés et qui pourraient affecter le sens du programme" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:333 + msgid "Warn if an undefined macro is used in an #if directive" + msgstr "Avertir si un macro indéfini est utilisé dans un directive #if" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:359 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:336 + msgid "Warn about uninitialized automatic variables" + msgstr "Avertir à propos des variables automatiques non initialisées" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:362 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:339 + msgid "Warn about unrecognized pragmas" + msgstr "Avertir à propos des pragmas non reconnus" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:365 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:342 + msgid "Warn about code that will never be executed" + msgstr "Avertir à propos du code qui ne sera jamais exécuté" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:368 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:345 + msgid "Enable all -Wunused- warnings" + msgstr "Autoriser tous les -Wunused- warnings" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:371 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:348 + msgid "Warn when a function is unused" + msgstr "Avertir lorsqu'une fonction est inutilisée" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:374 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:351 + msgid "Warn when a label is unused" + msgstr "Avertir lorsqu'une étiquette est inutilisée" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:377 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:354 + msgid "Warn about macros defined in the main file that are not used" + msgstr "Avertir à propos de macros définis dans le fichier principal qui ne sont pas utilisés" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:380 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:357 + msgid "Warn when a function parameter is unused" + msgstr "Avertir lorsqu'un paramètre de fonction est inutilisé" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:383 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:360 + msgid "Warn when an expression value is unused" + msgstr "Avertir lorsque la valeur d'une expression n'est pas utilisée" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:386 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:363 + msgid "Warn when a variable is unused" + msgstr "Avertir lorsque 'une variable est inutilisée" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:389 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:366 + msgid "Give strings the type \"array of char\"" + msgstr "Fournir des chaînes de type \"array of char\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:392 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:369 + msgid "A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead" + msgstr "Un synonyme pour -std=c89. Dans une version future de GCC cela deviendra synonyme de -std=c99 à la place" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:395 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:372 + msgid "-aux-info \tEmit declaration information into " + msgstr "-aux-info \tproduire une déclaration d'information dans le " + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:407 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:384 + msgid "-d\tEnable dumps from specific passes of the compiler" + msgstr "-d\tautoriser les vidanges pour des passes spécifiques du compilateur" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:410 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:387 + msgid "-dumpbase \tSet the file basename to be used for dumps" + msgstr "-dumpbase \tfixer le nom de base du fichier à utiliser pour les vidanges" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:413 +-msgid "--CLASSPATH\tDeprecated; use --classpath instead" +-msgstr "--CLASSPATH\tobsolète; utiliser --classpath à la place" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:425 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:399 + msgid "Enforce class member access control semantics" + msgstr "Forcer à la sémantique du contrôle d'accès à un membre de classe" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:428 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:402 + msgid "Align the start of functions" + msgstr "Aligner le début des fonctions" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:434 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:408 + msgid "Align labels which are only reached by jumping" + msgstr "Aligner les étiquettes qui sont seulement atteintes par sauts" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:440 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:414 + msgid "Align all labels" + msgstr "Aligner toutes les étiquettes" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:446 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:420 + msgid "Align the start of loops" + msgstr "Aligner le début des boucles" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:455 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:429 + msgid "Change when template instances are emitted" + msgstr "Changer lorsque les instances du patron sont produites" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:458 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:432 + msgid "Specify that arguments may alias each other and globals" + msgstr "Spécifier que les arguments peuvent avoir des alias l'un vers l'autre et globaux" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:461 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:435 + msgid "Assume arguments may alias globals but not each other" + msgstr "Présumer que les arguments peuvent avoir des alias globaux mais pas l'un vers l'autre" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:464 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:438 + msgid "Assume arguments alias neither each other nor globals" + msgstr "Assumer que les alias d'arguments n'en ont pas l'un vers l'autre ou globaux" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:467 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:441 + msgid "Recognize the \"asm\" keyword" + msgstr "Reconnaître le mot clé « asm »" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:479 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:444 + msgid "Generate unwind tables that are exact at each instruction boundary" + msgstr "Générer des tables étendues qui soient exactes pour chaque borne d'instruction" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:482 +-msgid "Do not treat local variables and COMMON blocks as if they were named in SAVE statements" +-msgstr "Traiter les variables locales et les blocs COMMON comme s'ils étaient nommés dans une déclaration SAVE" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:485 +-msgid "Backslashes in character and hollerith constants are special (not C-style)" +-msgstr "Barres obliques inverses dans les constantes de caractères ou d'hollerith ne sont pas particulières (pas de style C)" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:488 +-msgid "Delete libU77 intrinsics with bad interfaces" +-msgstr "Détruire les intrinsèques libU77 ayant des interfaces erronées" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:491 +-msgid "Disable libU77 intrinsics with bad interfaces" +-msgstr "Désactiver les intrinsèques libU77 ayant des interfaces erronées" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:494 +-msgid "Enable libU77 intrinsics with bad interfaces" +-msgstr "Autoriser les intrinsèques libU77 ayant des interfaces erronées" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:497 +-msgid "Hide libU77 intrinsics with bad interfaces" +-msgstr "Cacher les intrinsèques libU77 ayant des interfaces erronées" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:500 +-msgid "--bootclasspath=\tReplace system path" +-msgstr "--bootclasspath=\tremplacer le système" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:503 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:447 + msgid "Generate code to check bounds before indexing arrays" + msgstr "Générer du code pour vérifier les bornes avant d'indexer les tableaux" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:506 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:450 + msgid "Replace add, compare, branch with branch on count register" + msgstr "Remplacer add,compare,branch avec des branchements utilisant un compteur registre" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:509 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:453 + msgid "Use profiling information for branch probabilities" + msgstr "Utiliser les informations de profilage pour les probabilités de branchements" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:512 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:456 + msgid "Perform branch target load optimization before prologue / epilogue threading" + msgstr "Effectuer l'optimisation du chargement du branchement cible avant le thread prologue / epilogue" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:515 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:459 + msgid "Perform branch target load optimization after prologue / epilogue threading" + msgstr "Effectuer l'optimisation du chargement du branchement cible après le thread prologue / epilogue" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:518 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:462 + msgid "Recognize built-in functions" + msgstr "Reconnaître aucun construit dans les fonctions" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:524 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:468 + msgid "-fcall-saved-\tMark as being preserved across functions" + msgstr "-fcall-saved-\tmarquer le comme étant préservé à travers les fonctions" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:527 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:471 + msgid "-fcall-used-\tMark as being corrupted by function calls" + msgstr "-fcall-used-\tmarquer le comme étant corrompu par les appels de fonctions" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:530 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:474 + msgid "Save registers around function calls" + msgstr "Sauvegarder les registres autour des appels de fonction" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:533 +-msgid "Program written in strict mixed-case" +-msgstr "Programme écrit dans une stricte casse mélangée" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:536 +-msgid "Compile as if program written in lowercase" +-msgstr "Compiler comme si le programme était écrit en minuscules" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:539 +-msgid "Preserve case used in program" +-msgstr "Préserver la casse utilisée dans un programme" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:542 +-msgid "Program written in lowercase" +-msgstr "Programmes écrit en minuscules" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:545 +-msgid "Program written in uppercase" +-msgstr "Programme écrit en majuscules" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:548 +-msgid "Compile as if program written in uppercase" +-msgstr "Compiler comme si le programme était écrit en majuscules" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:551 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:477 + msgid "Check the return value of new" + msgstr "Vérifier la valeur retournée de new" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:557 +-msgid "--classpath=\tSet class path" +-msgstr "--classpath=\tfixer le chemin des classes" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:560 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:480 + msgid "Do not put uninitialized globals in the common section" + msgstr "Ne pas placer de globaux non initialisés dans la section commune" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:566 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:483 + msgid "Allow the arguments of the '?' operator to have different types" + msgstr "Permettre les arguments de l'opérateur « ? » d'avoir différents types" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:569 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:486 + msgid "Reduce the size of object files" + msgstr "Réduire la taille des fichiers objets" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:572 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:489 + msgid "Make string literals \"const char[]\" not \"char[]\"" + msgstr "Rendre les chaînes de mots \"const char[]\" et non pas \"char[]\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:575 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:492 + msgid "-fconst-string-class=\tUse class for constant strings" + msgstr "-fconst-string-class=\tutiliser la classe pour la chaînes de constantes" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:578 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:495 + msgid "Perform a register copy-propagation optimization pass" + msgstr "Effectuer la passe d'optimisation de la propagation-de-copie par registre" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:581 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:498 + msgid "Perform cross-jumping optimization" + msgstr "Exécuter des optimisations de sauts croisés" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:584 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:501 + msgid "When running CSE, follow jumps to their targets" + msgstr "Lorsque CSE s'exécute, suivre les sauts vers leurs cibles" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:587 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:504 + msgid "When running CSE, follow conditional jumps" + msgstr "Lorsque CSE s'exécute, suivre les sauts considitionnels vers leurs cibles" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:590 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:507 + msgid "Place data items into their own section" + msgstr "placer les items des données dans leur propre section" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:593 +-msgid "Emit special debugging information for COMMON and EQUIVALENCE (disabled)" +-msgstr "Produire des information spéciales de mise au point pour COMMON et EQUIVALENCE (désactivé)" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:596 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:510 + msgid "Inline member functions by default" + msgstr "Rendre enligne un membre de fonction par défaut" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:599 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:513 + msgid "Defer popping functions args from stack until later" + msgstr "Déférer le dépilage des arguments de fonction de la pile plus tard" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:602 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:516 + msgid "Attempt to fill delay slots of branch instructions" + msgstr "Tented de remplir de délais les fentes des instructions de branchement" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:605 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:519 + msgid "Delete useless null pointer checks" + msgstr "Détruire les vérifications de pointeurs nul inutiles" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:608 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:522 + msgid "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source location at the beginning of line-wrapped diagnostics" + msgstr "-fdiagnostics-show-location=[once|every-line]\tindiquer combien de fois les informations de localisation des sources doivent être produites au début d'un diagnostique lorsque les lignes doivent s'enrouler" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:611 +-msgid "Allow '$' in symbol names" +-msgstr "Permettre '$' dans les noms de symboles" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:614 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:525 + msgid "Permit '$' as an identifier character" + msgstr "Autoriser '$' comme identificateur de caractère" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:620 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:528 ++msgid "-fdump-\tDump various compiler internals to a file" ++msgstr "-fdump-\tvidander les divers internes du compilateur dans un fichier" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:531 + msgid "Suppress output of instruction numbers and line number notes in debugging dumps" + msgstr "Supprimer dans la sortie les numéros d'instructions et de notes de lignes dans les vidanges de mises au point" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:626 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:537 + msgid "Perform DWARF2 duplicate elimination" + msgstr "Exécuter une élimination DAWRF2 des doublons" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:629 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:632 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:540 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:543 + msgid "Perform unused type elimination in debug info" + msgstr "Effectuer l'élimination des types non utilisés dans l'information de mise au point" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:641 +-msgid "Have front end emulate COMPLEX arithmetic to avoid bugs" +-msgstr "Avoir un frontal d'émulation pour l'arithmétique COMPLEXE pour éviter les bugs" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:644 +-msgid "--encoding=\tChoose input encoding (defaults from your locale)" +-msgstr "--encoding=\tchoisir l'encodade d'entrée (par défaut provient de la locale)" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:647 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:546 + msgid "Generate code to check exception specifications" + msgstr "Générer le code pour vérifier les exceptions de spécifications" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:653 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:552 + msgid "Enable exception handling" + msgstr "Autoriser le traitement des exceptions" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:656 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:555 + msgid "-fexec-charset=\tConvert all strings and character constants to character set " + msgstr "-fexec-charset=\tconvertir toutes les chaînes et les constantes de caractères en jeu de caractères " + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:659 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:558 + msgid "Perform a number of minor, expensive optimizations" + msgstr "Effectuer un nombre mineur d'optimisations coûteuses" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:668 +-msgid "f2c-compatible code can be generated" +-msgstr "code f2c compatible peut être généré" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:671 +-msgid "Delete non-FORTRAN-77 intrinsics f2c supports" +-msgstr "Détruire les supports f2c intrinsèques non Fortran 77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:674 +-msgid "Disable non-FORTRAN-77 intrinsics f2c supports" +-msgstr "Désactiver les supports f2c intrinsèques non Fortran 77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:677 +-msgid "Enable non-FORTRAN-77 intrinsics f2c supports" +-msgstr "Autoriser les supports f2c intrinsèques non Fortran 77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:680 +-msgid "Hide non-FORTRAN-77 intrinsics f2c supports" +-msgstr "Cacher les supports f2c intrinsèques non Fortran 77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:683 +-msgid "Unsupported; generate libf2c-calling code" +-msgstr "Non supporté; générer le code d'appel libf2c" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:686 +-msgid "Program is written in typical FORTRAN 66 dialect" +-msgstr "Programme est écrit dans un dialecte typique FORTRAN 66" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:689 +-msgid "Program is written in typical Unix-f77 dialect" +-msgstr "Programme est écrit dans un dialecte typique Unix f77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:692 +-msgid "Program is written in Fortran-90-ish dialect" +-msgstr "Programme est écrit dans un dialecte Fortran 90" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:695 +-msgid "Delete non-FORTRAN-77 intrinsics F90 supports" +-msgstr "Détruire les supports F90 intrinsèques non Fortran 77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:698 +-msgid "Disable non-FORTRAN-77 intrinsics F90 supports" +-msgstr "Désactiver les supports F90 intrinsèques non Fortran 77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:701 +-msgid "Enable non-FORTRAN-77 intrinsics F90 supports" +-msgstr "Autoriser les supports F90 intrinsèques non Fortran 77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:704 +-msgid "Hide non-FORTRAN-77 intrinsics F90 supports" +-msgstr "Cacher les supports F90 intrinsèques non Fortran 77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:716 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:567 + msgid "Assume no NaNs or infinities are generated" + msgstr "Assumer qu'aucun NaNs ou infinités ne soit généré" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:719 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:570 + msgid "-ffixed-\tMark as being unavailable to the compiler" + msgstr "-ffixed-\tmarquer le comme n'étant plus disponible pour le compilateur" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:725 +-msgid "ffixed-line-length-\tSet the maximum line length to " +-msgstr "ffixed-line-limit-\tfixer la longueur maximale de la ligne à " +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:728 +-msgid "Unsupported; affects code generation of arrays" +-msgstr "Non supporté; affecte la génération de code des tableaux" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:731 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:579 + msgid "Do not store floats in registers" + msgstr "Ne pas stocker les flottants dans les registres" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:734 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:582 + msgid "Scope of for-init-statement variables is local to the loop" + msgstr "Étendue des variables for-init-statement est local à la boucle" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:737 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:585 + msgid "Copy memory address constants into registers before use" + msgstr "Copier les constantes d'adresses mémoire dans les registres avant de les utiliser" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:740 +-msgid "Always check for non gcj generated classes archives" +-msgstr "Toujours vérifier dans les archives de classes non générées gcj" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:743 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:588 + msgid "Copy memory operands into registers before use" + msgstr "Copier les opérandes mémoire dans les registres avant de les utiliser" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:746 +-msgid "Generate code to check subscript and substring bounds" +-msgstr "Générer du code pour vérifier les bornes des souscripts et des sous-chaînes" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:749 +-msgid "Program is written in Fortran-90-ish free form" +-msgstr "Programme est écrit dans un style libre Fortran 90" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:752 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:591 + msgid "Do not assume that standard C libraries and \"main\" exist" + msgstr "Ne pas assumer que les bibliothèques standards C et \"main\" existent" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:755 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:594 + msgid "Allow function addresses to be held in registers" + msgstr "Autoriser le maintien des adresses de fonction dans les registres" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:758 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:597 + msgid "Place each function into its own section" + msgstr "placer chaque fonction dans sa propre section" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:761 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:600 + msgid "Perform global common subexpression elimination" + msgstr "Exécuter l'élimination de sous-expression commune globale" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:764 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:603 + msgid "Perform redundant load after store elimination in global common subexpression elimination" + msgstr "Exécuter un stockage redondant après l'élimination de sous-expression commune globale" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:767 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:606 + msgid "Perform enhanced load motion during global common subexpression elimination" + msgstr "Exécuter un chargement amélioré lors de l'élimination de sous-expression commune globale" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:770 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:609 + msgid "Perform store motion after global common subexpression elimination" + msgstr "Exécuter un stockage après l'élimination de sous-expression commune globale" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:773 +-msgid "Enable fatal diagnostics about inter-procedural problems" +-msgstr "Autoriser les diagnostiques fatals à propos des problèmes entre procédures" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:776 +-msgid "Delete non-FORTRAN-77 intrinsics g77 supports" +-msgstr "Détruire les supports g77 intrinsèques non Fortran 77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:779 +-msgid "Disable non-FORTRAN 77 intrinsics F90 supports" +-msgstr "Désactiver les supports g77 intrinsèques non Fortran 77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:782 +-msgid "Enable non-FORTRAN 77 intrinsics F90 supports" +-msgstr "Autoriser les supports F90 intrinsèques non Fortran 77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:785 +-msgid "Hide non-FORTRAN 77 intrinsics F90 supports" +-msgstr "Cacher les supports g77 intrinsèques non Fortran 77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:788 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:612 + msgid "Recognize GNU-defined keywords" + msgstr "Reconnaître les mots clés définis GNU" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:791 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:615 + msgid "Generate code for GNU runtime environment" + msgstr "Générer du code pour l'environnement GNU d'exécution" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:794 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:618 + msgid "Enable guessing of branch probabilities" + msgstr "Autoriser l'estimation des probabilités de branchement" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:809 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:630 + msgid "Assume normal C execution environment" + msgstr "Présumer que l'environnement d'exécution C est normal" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:812 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:633 + msgid "Enable support for huge objects" + msgstr "Autoriser le support des grands objets" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:815 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:636 + msgid "Process #ident directives" + msgstr "Traiter les directive #ident" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:818 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:639 + msgid "Perform conversion of conditional jumps to branchless equivalents" + msgstr "Exécuter la conversion des sauts conditionels à des équivalents sans branchements" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:821 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:642 + msgid "Perform conversion of conditional jumps to conditional execution" + msgstr "Exécuter la conversion des sauts conditionnels à une exécution conditionnel" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:824 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:645 + msgid "Export functions even if they can be inlined" + msgstr "Exporter les fonctions même si elles peuvent être enligne" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:827 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:648 + msgid "Emit implicit instantiations of inline templates" + msgstr "Produire les instanciations explicites de patron enligne" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:830 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:651 + msgid "Emit implicit instantiations of templates" + msgstr "Produire les instanciations explicites de patron" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:833 +-msgid "Use offset tables for virtual method calls" +-msgstr "Utiliser des tables de décalage pour les appels de méthodes virtuelles" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:836 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:654 + msgid "Do not generate .size directives" + msgstr "Ne pas générer de directives .size" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:839 +-msgid "Initialize local vars and arrays to zero" +-msgstr "Initialiser les vars locales et les tableaux à zéro" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:842 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:657 + msgid "Pay attention to the \"inline\" keyword" + msgstr "Porter attention au mot clé \"inline\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:851 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:660 ++msgid "Integrate simple functions into their callers" ++msgstr "Intégrer les fonctions simples à l'intérieur des appelants" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:666 + msgid "-finline-limit=\tLimit the size of inlined functions to " + msgstr "-finline-limit=\tlimiter la taille des fonction enligne à " + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:854 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:669 + msgid "-finput-charset= Specify the default character set for source files." + msgstr "-finput-charset= spécifier le jeu de caractères par défaut pour les fichiers source" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:857 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:672 + msgid "Instrument function entry and exit with profiling calls" + msgstr "Traiter les entrées et les sorties des fonctions avec appels de profilage" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:860 +-msgid "Intrinsics letters in arbitrary cases" +-msgstr "Lettres d'instrinsèques en casse arbitraire" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:863 +-msgid "Intrinsics spelled as e.g. SqRt" +-msgstr "Intrinsèques épellées tel que SqRt" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:866 +-msgid "Intrinsics in lowercase" +-msgstr "Intrinsèques en minuscules" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:869 +-msgid "Intrinsics in uppercase" +-msgstr "Intrinsèques en majuscules" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:872 +-msgid "Assume native functions are implemented using JNI" +-msgstr "Présumer que les fonctions natives sont implantées et qu'elles utilisent JNI" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:875 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:675 + msgid "Generate code for functions even if they are fully inlined" + msgstr "Générer le code pour les fonctions même si elles sont complètement enligne" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:878 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:678 + msgid "Emit static const variables even if they are not used" + msgstr "Produire des variables constantes statiques même si elles ne sont pas utilisées" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:884 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:684 + msgid "Give external symbols a leading underscore" + msgstr "Afficher les symboles externes préfixés d'un caractère de soulignement" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:887 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:687 + msgid "Perform loop optimizations" + msgstr "Exécuter l'optimisation des boucles" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:890 +-msgid "Language keyword letters in arbitrary cases" +-msgstr "Lettres des mots clés du langage dans des casses arbitraires" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:893 +-msgid "Language keywords spelled as e.g. IOStat" +-msgstr "Mots clés du langage épellés tel que IOStat" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:896 +-msgid "Language keywords in lowercase" +-msgstr "Mots clés du langage en minuscules" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:899 +-msgid "Language keywords in uppercase" +-msgstr "Mots clés du langage en majuscules" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:902 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:690 + msgid "Set errno after built-in math functions" + msgstr "Initialiser errno après les fonctions internes mathématiques" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:905 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:693 + msgid "Report on permanent memory allocation" + msgstr "Rapporter l'allocation de mémoire permanente" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:908 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:696 + msgid "Attempt to merge identical constants and constant variables" + msgstr "Tentative de fusion de constantes identique et des variables constantes" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:911 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:699 + msgid "Attempt to merge identical constants across compilation units" + msgstr "Tentative de fusion de constantes identiques à travers des unités de compilation" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:914 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:702 + msgid "-fmessage-length=\tLimit diagnostics to characters per line. 0 suppresses line-wrapping" + msgstr "-fmessage-length=\tlimiter la longueur des diagnotiques à de caractères par ligne. 0 supprime l'enroulement de ligne" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:917 +-msgid "Delete MIL-STD 1753 intrinsics" +-msgstr "Détruire les intrinsèques MIL-STD 1753" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:920 +-msgid "Disable MIL-STD 1753 intrinsics" +-msgstr "Désactiver les intrinsèques MIL-STD 1753" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:923 +-msgid "Enable MIL-STD 1753 intrinsics" +-msgstr "Autoriser intrinsèques MIL-STD 1753" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:926 +-msgid "Hide MIL-STD 1753 intrinsics" +-msgstr "Cacher les intrinsèques MIL-STD 1753" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:929 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:705 + msgid "Force all loop invariant computations out of loops" + msgstr "Forcer pour toutes les boucles des calculs invariants en dehors des boucles" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:932 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:708 + msgid "Don't warn about uses of Microsoft extensions" + msgstr "Ne donner d'avertissement au sujet de l'utilisation des extensions de Microsoft" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:941 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:717 + msgid "Use graph-coloring register allocation" + msgstr "Utiliser l'allocation des registres par coloriage de graphe" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:944 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:720 + msgid "Generate code for NeXT (Apple Mac OS X) runtime environment" + msgstr "Générer le code pour l'environnement d'exécution du NeXT (Apple Mac OS X)" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:947 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:723 + msgid "Assume that receivers of Objective-C messages may be nil" + msgstr "Assumer que les receveur de messages Objective-C peut être NIL" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:950 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:726 + msgid "Support synchronous non-call exceptions" + msgstr "Supporter les exceptions synchrones des non appels" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:959 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:735 + msgid "Enable Objective-C exception and synchronization syntax" + msgstr "Autoriser l'exception Objective-C et la synchronisation de syntaxe" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:962 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1286 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:738 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:978 + msgid "Perform loop unrolling for all loops" + msgstr "Exécuter la boucle par désenroulement de toutes les boucles" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:965 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1289 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:741 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:981 + msgid "Perform loop unrolling when iteration count is known" + msgstr "Exécuter un dé-roulement des boucles lorsque le compteur d'itération est connu" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:968 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:744 + msgid "When possible do not generate stack frames" + msgstr "Lorsque c'est possible ne pas générer des trames de pile" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:971 +-msgid "Take at least one trip through each iterative DO loop" +-msgstr "Exécuter une dernière fois la visite à traves chaque boucle itérative DO" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:974 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:747 + msgid "Recognize C++ kewords like \"compl\" and \"xor\"" + msgstr "Reconnaître les mots clés C++ comme \"compl\" et \"xor\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:977 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:750 + msgid "Do the full register move optimization pass" + msgstr "Effectuer la passe d'optimisation complète des déplacements par les registres" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:980 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:753 + msgid "Optimize sibling and tail recursive calls" + msgstr "Optimiser sur mesure les appels enfants et récursif" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:983 +-msgid "Enable optimization of static class initialization code" +-msgstr "Autorisser l'optimisation du code d'initialisation de classe statique" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:986 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:756 + msgid "Enable optional diagnostics" + msgstr "Autoriser les diagnostiques optionnels" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:992 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:759 + msgid "Pack structure members together without holes" + msgstr "Empaqueter les membres des structures ensembles sans trous" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:995 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:762 + msgid "Return small aggregates in memory, not registers" + msgstr "Retourner les petits aggrégats en mémoire, pas dans les registres" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1001 +-msgid "Warn about use of (only a few for now) Fortran extensions" +-msgstr "Avertir à propos de l'utilisation (très peu pour l'instant) des extensions Fortran" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1004 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:768 + msgid "Perform loop peeling" + msgstr "Exécuter des réductions de boucles" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1007 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:771 + msgid "Enable machine specific peephole optimizations" + msgstr "Autoriser les optimisations des trous spécifiques à une machine" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1010 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:774 + msgid "Enable an RTL peephole pass before sched2" + msgstr "Autoriser l'exécution de la passe RTL avant sched2" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1013 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:777 + msgid "Downgrade conformance errors to warnings" + msgstr "Dégrader les erreurs de conformité en des avertissements" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1016 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:780 + msgid "Generate position-independent code if possible" + msgstr "Générer du code indépendant de la position si possible" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1019 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:783 + msgid "Generate position-independent code for executables if possible" + msgstr "Générer du code indépendant de la position pour les exécutables si possible" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1022 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:786 + msgid "Generate prefetch instructions, if available, for arrays in loops" + msgstr "Générer des instructions prérecherchées, si disponible, pour les tableaux dans les boucles" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1028 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:789 ++msgid "Treat the input file as already preprocessed" ++msgstr "Traiter le fichier d'entrée comme ayant déjà été pré-traité" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:792 + msgid "Enable basic program profiling code" + msgstr "Autoriser le code de profilage de base du programme" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1031 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:795 + msgid "Insert arc-based program profiling code" + msgstr "Insérer le code de profilage du programme de arc-based" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1034 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:798 + msgid "Enable common options for generating profile info for profile feedback directed optimizations" + msgstr "Autoriser les options communes pour la génération d'information de profile pour le feedback d'optimisation direct de profile" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1037 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:801 + msgid "Enable common options for performing profile feedback directed optimizations" + msgstr "Autoriser les options communes pour effectuer le feedback d'optimisation direct de profile" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1040 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:804 + msgid "Insert code to profile values of expressions" + msgstr "Insérer le code pour profile les expressions de valeurs" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1046 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:810 + msgid "-frandom-seed=\tMake compile reproducible using " + msgstr "-frandom-seed=\tfaire une compilation reproduisible en utilisant " + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1049 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:813 + msgid "Strength reduce all loop general induction variables" + msgstr "Renforcer la réduction de toutes les boucles par induction des variables" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1052 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:816 + msgid "Return small aggregates in registers" + msgstr "Retourner les petits aggrégats dans les registres" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1055 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:819 + msgid "Enables a register move optimization" + msgstr "Autoriser l'optimisation des déplacements par registre" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1058 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:822 + msgid "Perform a register renaming optimization pass" + msgstr "Effectuer une changement de nom de registres après une passe d'optimisation" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1061 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:825 + msgid "Reorder basic blocks to improve code placement" + msgstr "Ré-ordonner les blocs de base pour améliorer l'emplacement de code" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1064 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:828 + msgid "Reorder functions to improve code placement" + msgstr "Ré-ordonner les fonctions pour améliorer l'emplacement de code" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1067 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:831 + msgid "Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime" + msgstr "Utiliser le mode Fix-and-=Continue pour indique que des fichiers objets peuvent interchangés lors de l'éexécution" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1070 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:834 + msgid "Enable automatic template instantiation" + msgstr "Autoriser l'instanciation automatique de patron" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1073 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:837 + msgid "Add a common subexpression elimination pass after loop optimizations" + msgstr "Ajouter une passe d'élimination d'une sous-expression commune après les optimisations de boucle" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1076 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:840 + msgid "Run the loop optimizer twice" + msgstr "Exécuter l'optimiseur de boucle deux fois" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1079 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:843 + msgid "Disable optimizations that assume default FP rounding behavior" + msgstr "Interdire les optimisation qui assument un comportement d'arrondissement FP par défaut" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1082 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:846 + msgid "Generate run time type descriptor information" + msgstr "Générer l'information pour un type de descripteur lors de l'exécution" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1085 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:849 + msgid "Enable scheduling across basic blocks" + msgstr "Autoriser l'ordonnancement à travers les blocs de base" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1088 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:852 + msgid "Allow speculative motion of non-loads" + msgstr "Autoriser le mouvement spéculatif de non chargements" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1091 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:855 + msgid "Allow speculative motion of some loads" + msgstr "Autoriser le mouvement spéculatif de quelques chargements" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1094 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:858 + msgid "Allow speculative motion of more loads" + msgstr "Autoriser le mouvement spéculatif de plusieurs chargements" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1097 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:861 + msgid "Allow premature scheduling of queued insns" + msgstr "Autoriser l'ordonnancement prématuré de queues insns" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1100 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:864 + msgid "Set dependence distance checking in premature scheduling of queued insns" + msgstr "Fixer la distance de vérification de dépendance dans l'ordonnancement prématuré d'insns en queue" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1103 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:867 + msgid "-fsched-stalled-insns-dep= Set dependence distance checking in premature scheduling of queued insns" + msgstr "-fsched-stalled-insns-dep= fixer la distance de vérification de dépendance dans l'ordonnancement d'insnsn en queue" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1106 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:870 + msgid "-fsched-stalled-insns= Set number of queued insns that can be prematurely scheduled" + msgstr "-fsched-stalled-insns= fixer le nombre d'insns en queu qui peuvent être prématurément ordonnancés" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1109 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:873 + msgid "-fsched-verbose=\tSet the verbosity level of the scheduler" + msgstr "-fsched-verbose=\tnitialiser le niveau de verbosité de l'ordonnanceur" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1112 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:876 + msgid "If scheduling post reload, do superblock scheduling" + msgstr "Si l'ordonnancement fait une post recharge, faire un ordonnancement de super bloc" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1115 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:879 + msgid "If scheduling post reload, do trace scheduling" + msgstr "Si l'ordonnancement fait une post recharge, laisse une trace de l'ordonnancement" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1118 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:882 + msgid "Reschedule instructions before register allocation" + msgstr "Réordonnancer les instructions avant l'allocation de registres" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1121 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:885 + msgid "Reschedule instructions after register allocation" + msgstr "Réordonnancer les instructions après l'allocation de registres" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1124 +-msgid "Allow appending a second underscore to externals" +-msgstr "Permettre l'ajout d'un second caractère de soulignement aux externes" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1127 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:888 + msgid "Mark data as shared rather than private" + msgstr "Marquer les données comme partagées au lieu de privées" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1130 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:891 + msgid "Use the same size for double as for float" + msgstr "Utiliser la même taille pour un double que pour un flottant" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1133 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:894 + msgid "Use the narrowest integer type possible for enumeration types" + msgstr "Utiliser le type d'entier le moins large possible pour les types d'énumération" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1136 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:897 + msgid "Force the underlying type for \"wchar_t\" to be \"unsigned short\"" + msgstr "Écraser le type sous-jacent de \"wchar_t\" vers \"unsigned short\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1142 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:903 + msgid "Disable optimizations observable by IEEE signaling NaNs" + msgstr "Désactiver les optimisations observable par le signalement NaNs IEEE" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1145 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:906 + msgid "When \"signed\" or \"unsigned\" is not given make the bitfield signed" + msgstr "Lorsque \"signed\" ou \"unsigned\" n,est pas fourni rendre le champ de bits signé" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1148 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:909 + msgid "Make \"char\" signed by default" + msgstr "Rendre les « char » signés par défaut" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1151 +-msgid "Do not print names of program units as they are compiled" +-msgstr "Afficher les noms des unités de programme tels que compilées" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1154 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:912 + msgid "Convert floating point constants to single precision constants" + msgstr "Convertir les constantes en virgules flottantes en constantes de simple précision" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1157 +-msgid "Internally convert most source to lowercase" +-msgstr "Convertir de manière interne la majorité des sources en majuscules" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1160 +-msgid "Internally preserve source case" +-msgstr "Préserver à l'interne la casse des sources" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1163 +-msgid "Internally convert most source to uppercase" +-msgstr "Convertir à l'interne la majorité des sources en majuscules" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1169 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:918 + msgid "Insert stack checking code into the program" + msgstr "Insérer du code de vérificaion de la pile dans le programme" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1175 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:924 + msgid "-fstack-limit-register=\tTrap if the stack goes past " + msgstr "-fstack-limit-register=\tfaire un déroutement si la pile va au delà du " + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1178 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:927 + msgid "-fstack-limit-symbol=\tTrap if the stack goes past symbol " + msgstr "-fstack-limit-symbol=\tfaire un déroutement si la pile va au delà du symbole " + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1181 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:930 + msgid "Display statistics accumulated during compilation" + msgstr "Afficher les statistiques accumulés durant la compilation" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1184 +-msgid "Enable assignability checks for stores into object arrays" +-msgstr "Autoriser la vérificaitions des affectations dans le stockage des tableaux d'objets" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1187 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:933 + msgid "Perform strength reduction optimizations" + msgstr "Exécuter un réduction en force des optimisations" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1190 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:936 + msgid "Assume strict aliasing rules apply" + msgstr "Présumer que des règles stricts d'alias s'appliquent" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1199 +-msgid "Symbol names spelled in mixed case" +-msgstr "Noms des symboles épellés dans des casses mélangées" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1202 +-msgid "Symbol names in lowercase" +-msgstr "Noms de symboles en minuscules" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1205 +-msgid "Symbol names in uppercase" +-msgstr "Noms des symboles en majuscules" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1208 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:942 + msgid "Check for syntax errors, then stop" + msgstr "Vérifier les erreurs de syntaxes et puis stopper" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1211 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:945 + msgid "-ftabstop=\tDistance between tab stops for column reporting" + msgstr "-ftabstop=\tfixer la distance de la tabulation des colonnes dans les rapports" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1214 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:948 + msgid "-ftemplate-depth-\tSpecify maximum template instantiation depth" + msgstr "-ftemplate-depth-\tspécifier la profondeur maximale d'instanciation de patron" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1217 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:951 + msgid "Create data files needed by \"gcov\"" + msgstr "Créer les fichiers de données nécessaires à \"gcov\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1223 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:957 + msgid "Perform jump threading optimizations" + msgstr "Exécuter des optimisations de sauts de thread" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1226 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:960 + msgid "Report the time taken by each compiler pass" + msgstr "Rapporter le temps pris par chaque passe de compilation" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1229 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:963 + msgid "-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tSet the default thread-local storage code generation model" + msgstr "-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tinitialiser le modèle de génération de code par défaut de thread local" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1232 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:966 + msgid "Perform superblock formation via tail duplication" + msgstr "Exécuter la formation du super bloc via la duplication de la queue" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1235 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:969 + msgid "Assume floating-point operations can trap" + msgstr "On assume que les opérations en virgule flottante peuvent être attrappées" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1238 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:972 + msgid "Trap for signed overflow in addition, subtraction and multiplication" + msgstr "Attrapper les débordements de signe dans l'addition, la soustraction et la multiplication" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1241 +-msgid "Make prefix-radix non-decimal constants be typeless" +-msgstr "Rendre les préfixes des bases des constantes non décimales sans type" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1244 +-msgid "Allow all ugly features" +-msgstr "Permettre toutes les options laides" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1247 +-msgid "Hollerith and typeless can be passed as arguments" +-msgstr "Les Hollerith et sans type peuvent être passés comme arguments" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1250 +-msgid "Allow ordinary copying of ASSIGN'ed vars" +-msgstr "Permettre le copie ordinaire des variable affectées" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1253 +-msgid "Dummy array dimensioned to (1) is assumed-size" +-msgstr "Tableau factice dont la taille des dimensions (1) est assumée" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1256 +-msgid "Trailing comma in procedure call denotes null argument" +-msgstr "Virgule de fin dans l'appel de la procédure dénote un argument nul" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1259 +-msgid "Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z" +-msgstr "Permettre REAL(Z) et AIMAG(Z) pour les DOUBLE COMPLEX Z" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1262 +-msgid "Initialization via DATA and PARAMETER is not type-compatible" +-msgstr "Initialisation via DATA et PARAMETER n'est pas un type compatible" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1265 +-msgid "Allow INTEGER and LOGICAL interchangeability" +-msgstr "Permettre l'interchangeabilité de INTEGER et LOGICAL" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1268 +-msgid "Append underscores to externals" +-msgstr "Ajouter des caractères de soulignement aux externes" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1271 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:975 + msgid "Compile whole compilation unit at a time" + msgstr "Compiler complètement à la fois une unité de compilation" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1274 +-msgid "Delete libU77 intrinsics" +-msgstr "Détruire les intrinsèques libU77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1277 +-msgid "Disable libU77 intrinsics" +-msgstr "Désactiver les intrinsèques libU77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1280 +-msgid "Enable libU77 intrinsics" +-msgstr "Autoriser les intrinsèques libU77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1283 +-msgid "Hide libU77 intrinsics" +-msgstr "Cacher les intrinsèques libU77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1292 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:984 + msgid "Allow math optimizations that may violate IEEE or ISO standards" + msgstr "Permettre les optimisations mathématiques qui peuvent violer les standards IEEE ou ISO" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1295 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:987 + msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned" + msgstr "Lorsque \"signed\" ou \"unsigned\" n'est pas fourni rendre le champ de bits non signé" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1298 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:990 + msgid "Make \"char\" unsigned by default" + msgstr "Rendre les \"char\" non signés par défaut" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1301 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:993 + msgid "Perform loop unswitching" + msgstr "Exécuter des boucles sans branchement" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1304 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:996 + msgid "Just generate unwind tables for exception handling" + msgstr "Générer simplement des tables étendues pour le traitement des exceptions" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1310 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:999 + msgid "Use __cxa_atexit to register destructors" + msgstr "Utiliser « __cxa_atexit » pour enregistrer les destructeurs." + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1316 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1002 + msgid "Add extra commentary to assembler output" + msgstr "Ajouter des commentaires additionnels à la sortie de l'assembleur" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1319 +-msgid "Print g77-specific version information and run internal tests" +-msgstr "Afficher les informations de version spécifiques du compilateur g77, exécuter les tests internes" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1322 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1005 + msgid "Use expression value profiles in optimizations" + msgstr "Utiliser le profile de la valeur d'expression dans l'optimisation" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1325 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1008 + msgid "Discard unused virtual functions" + msgstr "Écarter les fonctions virtuelles non utilisées" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1328 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1011 + msgid "Implement vtables using thunks" + msgstr "Implanter les vtables en utilisant des thunks" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1331 +-msgid "Program is written in VXT (Digital-like) FORTRAN" +-msgstr "Programme est écrit en Fortran VXT (forme de Digital)" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1334 +-msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "Détruire les supports VXT Fortran intrinsèques non Fortran-77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1337 +-msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "Désactiver les supports VXT Fortran intrinsèques non Fortran-77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1340 +-msgid "Enable non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "Désactiver les supports VXT Fortran intrinsèques non Fortran-77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1343 +-msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "Cacher les supports VXT Fortran des intrinsèques non Fortran-77" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1349 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1014 + msgid "Emit common-like symbols as weak symbols" + msgstr "Produire les symboles communs comme des symboles faibles" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1352 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1017 + msgid "Construct webs and split unrelated uses of single variable" + msgstr "Construire une toile et séparer les utilisations de variables simples" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1355 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1020 + msgid "-fwide-exec-charset=\tConvert all wide strings and character constants to character set " + msgstr "-fwide-exec-charset=\tconvertir toutes les chaînes et les constantes larges de caractères en jeux de caractères " + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1358 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1023 + msgid "Generate a #line directive pointing at the current working directory" + msgstr "Générer une directive #line pointant sur le répertoire courant de travail" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1361 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1026 + msgid "Assume signed arithmetic overflow wraps around" + msgstr "Assumer un débordement arithmétique signé enroulé" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1364 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1029 + msgid "Store strings in writable data section" + msgstr "Stocker les chaînes dans les sections d'écriture des données" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1367 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1032 + msgid "Emit cross referencing information" + msgstr "Produire l'information des références croisées" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1370 +-msgid "Print internal debugging-related information" +-msgstr "Afficher les informations internes reliées à la mise au point" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1373 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1035 + msgid "Put zero initialized data in the bss section" + msgstr "Placer des données initialisées de zéros dans la section bss" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1376 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1038 + msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode" + msgstr "Générer un recherche molle de class (via objc_getClass()) pour l'utilisation en mode Zero-Link" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1379 +-msgid "Treat initial values of 0 like non-zero values" +-msgstr "Traiter les valeurs initiales de 0 comme des valeurs non zéros" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1382 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1041 + msgid "Generate debug information in default format" + msgstr "Générer les informations de mise au point dans le format par défaut" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1385 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1044 + msgid "Generate debug information in COFF format" + msgstr "Générer les informations de mise au point dans le format COFF" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1388 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1047 + msgid "Generate debug information in DWARF v2 format" + msgstr "Générer les informations de mise au point dans le format DWARF v2" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1391 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1050 + msgid "Dump declarations to a .decl file" + msgstr "Vidanger les déclarations dans un fichier .decl" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1394 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1053 + msgid "Generate debug information in default extended format" + msgstr "Générer les informations de mise au point dans le format étendu par défaut" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1397 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1056 + msgid "Generate debug information in STABS format" + msgstr "Générer les informations de mise au point dans le format STABS" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1400 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1059 + msgid "Generate debug information in extended STABS format" + msgstr "Générer les informations de mise au point dans le format étendu STABS" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1403 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1062 + msgid "Generate debug information in VMS format" + msgstr "Générer les informations de mise au point dans le format VMS" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1406 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1065 + msgid "Generate debug information in XCOFF format" + msgstr "Générer les information de mise au point dans le format XCOFF" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1409 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1068 + msgid "Generate debug information in extended XCOFF format" + msgstr "Générer les informations de mise au point dans le format étendu XCOFF" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1412 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1071 + msgid "-idirafter \tAdd to the end of the system include path" + msgstr "-idirafter \tajouter à la fin du chemin système d'inclusion" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1415 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1074 + msgid "-imacros \tAccept definition of macros in " + msgstr "-imacros \taccepter la définition de macros dans le " + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1418 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1077 + msgid "-include \tInclude the contents of before other files" + msgstr "-include \tinclure le contenu du avant les autres fichiers" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1421 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1080 + msgid "-iprefix \tSpecify as a prefix for next two options" + msgstr "-iprefix \tsélectionner le comme préfixer aux deux prochaines options" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1424 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1083 + msgid "-isysroot \tSet to be the system root directory" + msgstr "-isysroot \tsélectionner le comme répertoire racine du système" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1427 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1086 + msgid "-isystem \tAdd to the start of the system include path" + msgstr "-isystem \tajouter le au début du chemin d'inclusion principal" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1430 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1089 + msgid "-iwithprefix \tAdd to the end of the system include path" + msgstr "-iwithprefix \tajouter le à la fin du chemin d'inclusion principal" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1433 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1092 + msgid "-iwithprefixbefore \tAdd to the end of the main include path" + msgstr "-iwithprefixbefore \tajouter le à la fin du chemin d'inclusion principal" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1445 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1104 + msgid "Do not search standard system include directories (those specified with -isystem will still be used)" + msgstr "Ne pas rechercher les répertoires standard système d'inclusion (ceux spécifiés avec -isystem seront encore utilisés)" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1448 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1107 + msgid "Do not search standard system include directories for C++" + msgstr "Ne pas rechercher les répertoires standard système d'inclusion pour C++" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1451 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1110 + msgid "-o \tPlace output into " + msgstr "-o \tproduire la sortie dans le " + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1454 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1113 + msgid "Enable function profiling" + msgstr "Autoriser le profilage de fonction" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1457 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1116 + msgid "Issue warnings needed for strict compliance to the standard" + msgstr "Émettre les avertissements nécessaires pour être conforme au standard" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1460 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1119 + msgid "Like -pedantic but issue them as errors" + msgstr "Identique à -pedantic mais les marque comme des erreurs" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1463 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1122 + msgid "Generate C header of platform-specific features" + msgstr "Générer les en-têtes C pour les options spécifiques à la plate-forme" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1466 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1125 + msgid "Do not display functions compiled or elapsed time" + msgstr "Ne pas afficher les fonctions compilées ou le temps écoulé" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1469 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1128 + msgid "Remap file names when including files" + msgstr "Rampper les noms lors de l'inclusion des fichiers" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1472 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1131 + msgid "Conform to the ISO 1998 C++ standard" + msgstr "Conforme au standard ISO C++ de 1998" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1475 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1134 + msgid "Conform to the ISO 1990 C standard" + msgstr "Conforme au standard ISO C de 1990" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1478 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1137 + msgid "Conform to the ISO 1999 C standard" + msgstr "Conforme au standard ISO C de 1999" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1481 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1502 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1505 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1140 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1161 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1164 + msgid "Deprecated in favor of -std=c99" + msgstr "Obsolète à la faveur de l'option -std=c99" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1484 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1143 + msgid "Conform to the ISO 1998 C++ standard with GNU extensions" + msgstr "Conforme au standard ISO C++ de 1998 avec les extensions de GNU" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1487 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1146 + msgid "Conform to the ISO 1990 C standard with GNU extensions" + msgstr "Conforme au standard ISO C de 1990 avec les extensions de GNU" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1490 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1149 + msgid "Conform to the ISO 1999 C standard with GNU extensions" + msgstr "Conforme au standard ISO C de 1999 avec les extensions de GNU" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1493 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1152 + msgid "Deprecated in favor of -std=gnu99" + msgstr "Obsolète à la faveur de l'option -std=gnu99" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1496 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1155 + msgid "Deprecated in favor of -std=c89" + msgstr "Obsolète à la faveur de l'option -std=c89" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1499 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1158 + msgid "Conform to the ISO 1990 C standard as amended in 1994" + msgstr "Conforme au standard ISO C de 1990 tel amendé en 1994" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1508 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1167 + msgid "Enable traditional preprocessing" + msgstr "Autoriser le traitement traditionnel" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1511 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1170 + msgid "-trigraphs\tSupport ISO C trigraphs" + msgstr "-trigraphs\tSupporter les tri-graphes ISO C" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1514 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1173 + msgid "Do not predefine system-specific and GCC-specific macros" + msgstr "Ne pas prédéfinir les macros spécifiques au système ou à GCC" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1517 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1176 + msgid "Enable verbose output" + msgstr "Autoriser le mode bavard sur la sortie" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1523 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1179 ++msgid "Display the compiler's version" ++msgstr "Afficher la version du compilateur" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1182 + msgid "Suppress warnings" + msgstr "Supprimer les avertissements" + +-#: config/i386/freebsd-aout.h:215 config/rs6000/sysv4.h:1089 ++#: config/i386/cygwin.h:29 ++msgid "mno-cygwin and mno-win32 are not compatible" ++msgstr "mno-cygwin et mno-win32 ne sont pas compatibles" ++ ++#: config/i386/cygwin.h:70 config/i386/mingw32.h:58 ++msgid "shared and mdll are not compatible" ++msgstr "shared et mdll ne sont pas compatibles" ++ ++#: config/i386/freebsd-aout.h:215 + msgid "`-p' not supported; use `-pg' and gprof(1)" + msgstr "« -p » n'est pas supporté; utiliser « -pg » et gprof(1)" + +@@ -21276,49 +20966,62 @@ + msgid "GCC does not support -CC without using -E" + msgstr "GCC ne supporte pas -CC sans utiliser -E" + ++#: config/i386/sco5.h:191 ++msgid "-pg not supported on this platform" ++msgstr "-pg n'est pas supporté sur cette plate-forme" ++ ++#: config/i386/sco5.h:192 ++msgid "-p and -pp specified - pick one" ++msgstr "-p et -pp spécifié - n'en prendre qu'un seul" ++ ++#: config/i386/sco5.h:266 ++msgid "-G and -static are mutually exclusive" ++msgstr "-G et -static sont mutuellement exclusives" ++ ++#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22 ++#: config/sparc/sol2-bi.h:167 config/sparc/sol2-bi.h:172 ++msgid "does not support multilib" ++msgstr "ne supporte pas multilib" ++ + #: config/sparc/linux64.h:211 config/sparc/linux64.h:222 + #: config/sparc/netbsd-elf.h:140 config/sparc/netbsd-elf.h:159 + #: config/sparc/sol2-bi.h:195 config/sparc/sol2-bi.h:205 + msgid "may not use both -m32 and -m64" + msgstr "ne peut utiliser ensemble -m32 et -m64" + +-#: config/i386/mingw32.h:58 config/i386/cygwin.h:70 +-msgid "shared and mdll are not compatible" +-msgstr "shared et mdll ne sont pas compatibles" +- +-#: config/darwin.h:215 ++#: config/darwin.h:222 + msgid "-current_version only allowed with -dynamiclib" + msgstr "-current_version permis seulement avec -dynamiclib" + +-#: config/darwin.h:218 ++#: config/darwin.h:225 + msgid "-install_name only allowed with -dynamiclib" + msgstr "-install_name permis seulement avec with -dynamiclib" + +-#: config/darwin.h:223 ++#: config/darwin.h:230 + msgid "-bundle not allowed with -dynamiclib" + msgstr "-bundle n'est pas permis avec -dynamiclib" + +-#: config/darwin.h:224 ++#: config/darwin.h:231 + msgid "-bundle_loader not allowed with -dynamiclib" + msgstr "-bundle_loader n'est pas permis avec -dynamiclib" + +-#: config/darwin.h:225 ++#: config/darwin.h:232 + msgid "-client_name not allowed with -dynamiclib" + msgstr "-client_name n'est pas permis avec -dynamiclib" + +-#: config/darwin.h:228 ++#: config/darwin.h:235 + msgid "-force_cpusubtype_ALL not allowed with -dynamiclib" + msgstr "-force_cpusubtype_ALL n'est pas permis avec -dynamiclib" + +-#: config/darwin.h:229 ++#: config/darwin.h:236 + msgid "-force_flat_namespace not allowed with -dynamiclib" + msgstr "-force_flat_namespace n'est pas permis avec -dynamiclib" + +-#: config/darwin.h:231 ++#: config/darwin.h:238 + msgid "-keep_private_externs not allowed with -dynamiclib" + msgstr "-keep_private_externs n'est pas permis avec -dynamiclib" + +-#: config/darwin.h:232 ++#: config/darwin.h:239 + msgid "-private_bundle not allowed with -dynamiclib" + msgstr "-private_bundle n'est pas permis avec -dynamiclib" + +@@ -21334,47 +21037,10 @@ + msgid "may not use both -EB and -EL" + msgstr "ne peut utiliser ensemble -EB et -EL" + +-#: config/mips/mips.h:988 +-msgid "-pipe is not supported" +-msgstr "-pipe n'est pas supporté" +- +-#: java/jvspec.c:80 ada/lang-specs.h:34 gcc.c:767 +-msgid "-pg and -fomit-frame-pointer are incompatible" +-msgstr "-pg et -fomit-frame-pointer sont incompatibles" +- +-#: java/lang-specs.h:34 +-msgid "-fjni and -femit-class-files are incompatible" +-msgstr "-fjni et -femit-class-files sont incompatibles" +- +-#: java/lang-specs.h:35 +-msgid "-fjni and -femit-class-file are incompatible" +-msgstr "-fjni et -femit-class-file sont incompatibles" +- +-#: java/lang-specs.h:36 java/lang-specs.h:37 +-msgid "-femit-class-file should used along with -fsyntax-only" +-msgstr "-femit-class-file dervait être utilisé avec -fsyntax-only" +- + #: treelang/lang-specs.h:52 + msgid "-pg or -p and -fomit-frame-pointer are incompatible" + msgstr "-pg et -p et -fomit-frame-pointer sont incompatibles" + +-#: config/sparc/sol2-bi.h:167 config/sparc/sol2-bi.h:172 +-#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22 +-msgid "does not support multilib" +-msgstr "ne supporte pas multilib" +- +-#: config/i386/sco5.h:191 +-msgid "-pg not supported on this platform" +-msgstr "-pg n'est pas supporté sur cette plate-forme" +- +-#: config/i386/sco5.h:192 +-msgid "-p and -pp specified - pick one" +-msgstr "-p et -pp spécifié - n'en prendre qu'un seul" +- +-#: config/i386/sco5.h:266 +-msgid "-G and -static are mutually exclusive" +-msgstr "-G et -static sont mutuellement exclusives" +- + #: config/arm/arm.h:198 + msgid "-mapcs-26 and -mapcs-32 may not be used together" + msgstr "-mapcs-26 et -mapcs-32 ne peuvent être utilisés ensembles" +@@ -21391,6 +21057,14 @@ + msgid "the m210 does not have little endian support" + msgstr "Le m210 ne supporte pas le code pour système à octets de poids faible" + ++#: config/mips/mips.h:988 ++msgid "-pipe is not supported" ++msgstr "-pipe n'est pas supporté" ++ ++#: ada/lang-specs.h:34 java/jvspec.c:80 gcc.c:767 ++msgid "-pg and -fomit-frame-pointer are incompatible" ++msgstr "-pg et -fomit-frame-pointer sont incompatibles" ++ + #: ada/lang-specs.h:36 + msgid "one of -c, -S, -gnatc, -gnatz, or -gnats is required for Ada" + msgstr "une parmi -c, -S, -gnatc, -gnatz ou -gnats est requise pour Ada" +@@ -21403,9 +21077,17 @@ + msgid "-msingle-float and -msoft-float can not both be specified" + msgstr "-msingle-float et -msoft-float ne peuvent être spécifiés ensembles" + +-#: config/rs6000/darwin.h:98 +-msgid " conflicting code gen style switches are used" +-msgstr " code de génération de style de switches utilisées est en conflit" ++#: java/lang-specs.h:34 ++msgid "-fjni and -femit-class-files are incompatible" ++msgstr "-fjni et -femit-class-files sont incompatibles" ++ ++#: java/lang-specs.h:35 ++msgid "-fjni and -femit-class-file are incompatible" ++msgstr "-fjni et -femit-class-file sont incompatibles" ++ ++#: java/lang-specs.h:36 java/lang-specs.h:37 ++msgid "-femit-class-file should used along with -fsyntax-only" ++msgstr "-femit-class-file dervait être utilisé avec -fsyntax-only" + + #: gcc.c:743 + msgid "GCC does not support -C or -CC without -E" +@@ -21415,72 +21097,315 @@ + msgid "-E required when input is from standard input" + msgstr "-E est requis lorsque l'entrée est faite à partir de l'entrée standard" + +-#: config/i386/cygwin.h:29 +-msgid "mno-cygwin and mno-win32 are not compatible" +-msgstr "mno-cygwin et mno-win32 ne sont pas compatibles" ++#: config/rs6000/darwin.h:98 ++msgid " conflicting code gen style switches are used" ++msgstr " code de génération de style de switches utilisées est en conflit" + +-#~ msgid "read-write constraint does not allow a register" +-#~ msgstr "contrainte de lecture-éccriture ne permet pas de registre" ++#~ msgid "Warn if deprecated class, method, or field is used" ++#~ msgstr "Avertir si une classe, une méthode ou un champ obsolète est utilisé" + +-#~ msgid "your function will be miscompiled" +-#~ msgstr "votre fonction sera mal compilée" ++#~ msgid "Warn if deprecated empty statements are found" ++#~ msgstr "Avertir si des déclarations vides obsolètes sont trouvées" + +-#~ msgid "neither the destructor nor the class-specific " +-#~ msgstr "ni le destructeur ni la classe spécifique" ++#~ msgid "Enable warnings about inter-procedural problems" ++#~ msgstr "Autoriser les avertissements à propos des problèmes inter-procédural" + +-#~ msgid "operator delete will be called, even if they are " +-#~ msgstr "l'opérateur de destruction sera appellé, même s'ils sont " ++#~ msgid "Warn if .class files are out of date" ++#~ msgstr "Avertir si des fichier .class sont périmées" + +-#~ msgid "declared when the class is defined." +-#~ msgstr "déclarés lorsque la classe est définie." ++#~ msgid "Warn if modifiers are specified when not necessary" ++#~ msgstr "Avertir si des modificateurs sont spécifiés sans que cela ne soit nécessaires" ++ ++#~ msgid "Warn about constructs with surprising meanings" ++#~ msgstr "Avertir à propos des construits ayant des sens surprenants" ++ ++#~ msgid "--CLASSPATH\tDeprecated; use --classpath instead" ++#~ msgstr "--CLASSPATH\tobsolète; utiliser --classpath à la place" ++ ++#~ msgid "Do not treat local variables and COMMON blocks as if they were named in SAVE statements" ++#~ msgstr "Traiter les variables locales et les blocs COMMON comme s'ils étaient nommés dans une déclaration SAVE" ++ ++#~ msgid "Backslashes in character and hollerith constants are special (not C-style)" ++#~ msgstr "Barres obliques inverses dans les constantes de caractères ou d'hollerith ne sont pas particulières (pas de style C)" ++ ++#~ msgid "Delete libU77 intrinsics with bad interfaces" ++#~ msgstr "Détruire les intrinsèques libU77 ayant des interfaces erronées" ++ ++#~ msgid "Disable libU77 intrinsics with bad interfaces" ++#~ msgstr "Désactiver les intrinsèques libU77 ayant des interfaces erronées" ++ ++#~ msgid "Enable libU77 intrinsics with bad interfaces" ++#~ msgstr "Autoriser les intrinsèques libU77 ayant des interfaces erronées" ++ ++#~ msgid "Hide libU77 intrinsics with bad interfaces" ++#~ msgstr "Cacher les intrinsèques libU77 ayant des interfaces erronées" ++ ++#~ msgid "--bootclasspath=\tReplace system path" ++#~ msgstr "--bootclasspath=\tremplacer le système" ++ ++#~ msgid "Program written in strict mixed-case" ++#~ msgstr "Programme écrit dans une stricte casse mélangée" ++ ++#~ msgid "Compile as if program written in lowercase" ++#~ msgstr "Compiler comme si le programme était écrit en minuscules" ++ ++#~ msgid "Preserve case used in program" ++#~ msgstr "Préserver la casse utilisée dans un programme" ++ ++#~ msgid "Program written in lowercase" ++#~ msgstr "Programmes écrit en minuscules" ++ ++#~ msgid "Program written in uppercase" ++#~ msgstr "Programme écrit en majuscules" ++ ++#~ msgid "Compile as if program written in uppercase" ++#~ msgstr "Compiler comme si le programme était écrit en majuscules" ++ ++#~ msgid "--classpath=\tSet class path" ++#~ msgstr "--classpath=\tfixer le chemin des classes" ++ ++#~ msgid "Emit special debugging information for COMMON and EQUIVALENCE (disabled)" ++#~ msgstr "Produire des information spéciales de mise au point pour COMMON et EQUIVALENCE (désactivé)" ++ ++#~ msgid "Allow '$' in symbol names" ++#~ msgstr "Permettre '$' dans les noms de symboles" ++ ++#~ msgid "Have front end emulate COMPLEX arithmetic to avoid bugs" ++#~ msgstr "Avoir un frontal d'émulation pour l'arithmétique COMPLEXE pour éviter les bugs" ++ ++#~ msgid "--encoding=\tChoose input encoding (defaults from your locale)" ++#~ msgstr "--encoding=\tchoisir l'encodade d'entrée (par défaut provient de la locale)" ++ ++#~ msgid "f2c-compatible code can be generated" ++#~ msgstr "code f2c compatible peut être généré" ++ ++#~ msgid "Delete non-FORTRAN-77 intrinsics f2c supports" ++#~ msgstr "Détruire les supports f2c intrinsèques non Fortran 77" ++ ++#~ msgid "Disable non-FORTRAN-77 intrinsics f2c supports" ++#~ msgstr "Désactiver les supports f2c intrinsèques non Fortran 77" ++ ++#~ msgid "Enable non-FORTRAN-77 intrinsics f2c supports" ++#~ msgstr "Autoriser les supports f2c intrinsèques non Fortran 77" ++ ++#~ msgid "Hide non-FORTRAN-77 intrinsics f2c supports" ++#~ msgstr "Cacher les supports f2c intrinsèques non Fortran 77" ++ ++#~ msgid "Unsupported; generate libf2c-calling code" ++#~ msgstr "Non supporté; générer le code d'appel libf2c" ++ ++#~ msgid "Program is written in typical FORTRAN 66 dialect" ++#~ msgstr "Programme est écrit dans un dialecte typique FORTRAN 66" ++ ++#~ msgid "Program is written in typical Unix-f77 dialect" ++#~ msgstr "Programme est écrit dans un dialecte typique Unix f77" ++ ++#~ msgid "Program is written in Fortran-90-ish dialect" ++#~ msgstr "Programme est écrit dans un dialecte Fortran 90" ++ ++#~ msgid "Delete non-FORTRAN-77 intrinsics F90 supports" ++#~ msgstr "Détruire les supports F90 intrinsèques non Fortran 77" ++ ++#~ msgid "Disable non-FORTRAN-77 intrinsics F90 supports" ++#~ msgstr "Désactiver les supports F90 intrinsèques non Fortran 77" ++ ++#~ msgid "Enable non-FORTRAN-77 intrinsics F90 supports" ++#~ msgstr "Autoriser les supports F90 intrinsèques non Fortran 77" ++ ++#~ msgid "Hide non-FORTRAN-77 intrinsics F90 supports" ++#~ msgstr "Cacher les supports F90 intrinsèques non Fortran 77" ++ ++#~ msgid "ffixed-line-length-\tSet the maximum line length to " ++#~ msgstr "ffixed-line-limit-\tfixer la longueur maximale de la ligne à " ++ ++#~ msgid "Unsupported; affects code generation of arrays" ++#~ msgstr "Non supporté; affecte la génération de code des tableaux" ++ ++#~ msgid "Always check for non gcj generated classes archives" ++#~ msgstr "Toujours vérifier dans les archives de classes non générées gcj" + +-#~ msgid "-I \tAdd to the end of the main include path. -I- gives more include path control; see info documentation" +-#~ msgstr "-I \tajouter à la fin du chemin principal d'inclusion. -I- donne plus de contrôle sur le chemin d'inclusion; voir la documentation info" ++#~ msgid "Generate code to check subscript and substring bounds" ++#~ msgstr "Générer du code pour vérifier les bornes des souscripts et des sous-chaînes" + +-#~ msgid "Generate make dependencies" +-#~ msgstr "Générer les dépendances pour make" ++#~ msgid "Program is written in Fortran-90-ish free form" ++#~ msgstr "Programme est écrit dans un style libre Fortran 90" + +-#~ msgid "-MF \tWrite dependency output to the given file" +-#~ msgstr "-MF \técrire les dépendances en sortie dans le fichier fourni" ++#~ msgid "Enable fatal diagnostics about inter-procedural problems" ++#~ msgstr "Autoriser les diagnostiques fatals à propos des problèmes entre procédures" + +-#~ msgid "Like -M but ignore system header files" +-#~ msgstr "Identique à -M mais ignore les en-têtes de fichiers système" ++#~ msgid "Delete non-FORTRAN-77 intrinsics g77 supports" ++#~ msgstr "Détruire les supports g77 intrinsèques non Fortran 77" + +-#~ msgid "Generate phony targets for all headers" +-#~ msgstr "Générer les cibles bidons pour toutes les en-têtes" ++#~ msgid "Disable non-FORTRAN 77 intrinsics F90 supports" ++#~ msgstr "Désactiver les supports g77 intrinsèques non Fortran 77" + +-#~ msgid "-MT \tAdd an unquoted target" +-#~ msgstr "-MT \tajouter une cible sans quote" ++#~ msgid "Enable non-FORTRAN 77 intrinsics F90 supports" ++#~ msgstr "Autoriser les supports F90 intrinsèques non Fortran 77" + +-#~ msgid "Enable most warning messages" +-#~ msgstr "Autoriser la plupart des messages d'avertissement" ++#~ msgid "Hide non-FORTRAN 77 intrinsics F90 supports" ++#~ msgstr "Cacher les supports g77 intrinsèques non Fortran 77" + +-#~ msgid "Warn about possibly nested block comments, and C++ comments spanning more than one physical line" +-#~ msgstr "Avertir à propos des blocs de commentaires imbriqués et les commentaires C++ qui s'étendent sur plus d'une ligne physique" ++#~ msgid "Use offset tables for virtual method calls" ++#~ msgstr "Utiliser des tables de décalage pour les appels de méthodes virtuelles" + +-#~ msgid "Synonym for -Wcomment" +-#~ msgstr "Synonyme pour -Wcommentaire" ++#~ msgid "Initialize local vars and arrays to zero" ++#~ msgstr "Initialiser les vars locales et les tableaux à zéro" + +-#~ msgid "Warn about deprecated compiler features" +-#~ msgstr "Avertir à propose de la dépréciation des options du compilateur" ++#~ msgid "Intrinsics letters in arbitrary cases" ++#~ msgstr "Lettres d'instrinsèques en casse arbitraire" + +-#~ msgid "Deprecated. This switch has no effect." +-#~ msgstr "Obsolète. Cette option n'a aucun effet." ++#~ msgid "Intrinsics spelled as e.g. SqRt" ++#~ msgstr "Intrinsèques épellées tel que SqRt" + +-#~ msgid "Warn if trigraphs are encountered that might affect the meaning of the program" +-#~ msgstr "Avertir si des trigraphes sont rencontrés et qui pourraient affecter le sens du programme" ++#~ msgid "Intrinsics in lowercase" ++#~ msgstr "Intrinsèques en minuscules" + +-#~ msgid "-fdump-\tDump various compiler internals to a file" +-#~ msgstr "-fdump-\tvidander les divers internes du compilateur dans un fichier" ++#~ msgid "Intrinsics in uppercase" ++#~ msgstr "Intrinsèques en majuscules" + +-#~ msgid "Integrate simple functions into their callers" +-#~ msgstr "Intégrer les fonctions simples à l'intérieur des appelants" ++#~ msgid "Assume native functions are implemented using JNI" ++#~ msgstr "Présumer que les fonctions natives sont implantées et qu'elles utilisent JNI" + +-#~ msgid "Treat the input file as already preprocessed" +-#~ msgstr "Traiter le fichier d'entrée comme ayant déjà été pré-traité" ++#~ msgid "Language keyword letters in arbitrary cases" ++#~ msgstr "Lettres des mots clés du langage dans des casses arbitraires" + +-#~ msgid "Display the compiler's version" +-#~ msgstr "Afficher la version du compilateur" ++#~ msgid "Language keywords spelled as e.g. IOStat" ++#~ msgstr "Mots clés du langage épellés tel que IOStat" ++ ++#~ msgid "Language keywords in lowercase" ++#~ msgstr "Mots clés du langage en minuscules" ++ ++#~ msgid "Language keywords in uppercase" ++#~ msgstr "Mots clés du langage en majuscules" ++ ++#~ msgid "Delete MIL-STD 1753 intrinsics" ++#~ msgstr "Détruire les intrinsèques MIL-STD 1753" ++ ++#~ msgid "Disable MIL-STD 1753 intrinsics" ++#~ msgstr "Désactiver les intrinsèques MIL-STD 1753" ++ ++#~ msgid "Enable MIL-STD 1753 intrinsics" ++#~ msgstr "Autoriser intrinsèques MIL-STD 1753" ++ ++#~ msgid "Hide MIL-STD 1753 intrinsics" ++#~ msgstr "Cacher les intrinsèques MIL-STD 1753" ++ ++#~ msgid "Take at least one trip through each iterative DO loop" ++#~ msgstr "Exécuter une dernière fois la visite à traves chaque boucle itérative DO" ++ ++#~ msgid "Enable optimization of static class initialization code" ++#~ msgstr "Autorisser l'optimisation du code d'initialisation de classe statique" ++ ++#~ msgid "Warn about use of (only a few for now) Fortran extensions" ++#~ msgstr "Avertir à propos de l'utilisation (très peu pour l'instant) des extensions Fortran" ++ ++#~ msgid "Allow appending a second underscore to externals" ++#~ msgstr "Permettre l'ajout d'un second caractère de soulignement aux externes" ++ ++#~ msgid "Do not print names of program units as they are compiled" ++#~ msgstr "Afficher les noms des unités de programme tels que compilées" ++ ++#~ msgid "Internally convert most source to lowercase" ++#~ msgstr "Convertir de manière interne la majorité des sources en majuscules" ++ ++#~ msgid "Internally preserve source case" ++#~ msgstr "Préserver à l'interne la casse des sources" ++ ++#~ msgid "Internally convert most source to uppercase" ++#~ msgstr "Convertir à l'interne la majorité des sources en majuscules" ++ ++#~ msgid "Enable assignability checks for stores into object arrays" ++#~ msgstr "Autoriser la vérificaitions des affectations dans le stockage des tableaux d'objets" ++ ++#~ msgid "Symbol names spelled in mixed case" ++#~ msgstr "Noms des symboles épellés dans des casses mélangées" ++ ++#~ msgid "Symbol names in lowercase" ++#~ msgstr "Noms de symboles en minuscules" ++ ++#~ msgid "Symbol names in uppercase" ++#~ msgstr "Noms des symboles en majuscules" ++ ++#~ msgid "Make prefix-radix non-decimal constants be typeless" ++#~ msgstr "Rendre les préfixes des bases des constantes non décimales sans type" ++ ++#~ msgid "Allow all ugly features" ++#~ msgstr "Permettre toutes les options laides" ++ ++#~ msgid "Hollerith and typeless can be passed as arguments" ++#~ msgstr "Les Hollerith et sans type peuvent être passés comme arguments" ++ ++#~ msgid "Allow ordinary copying of ASSIGN'ed vars" ++#~ msgstr "Permettre le copie ordinaire des variable affectées" ++ ++#~ msgid "Dummy array dimensioned to (1) is assumed-size" ++#~ msgstr "Tableau factice dont la taille des dimensions (1) est assumée" ++ ++#~ msgid "Trailing comma in procedure call denotes null argument" ++#~ msgstr "Virgule de fin dans l'appel de la procédure dénote un argument nul" ++ ++#~ msgid "Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z" ++#~ msgstr "Permettre REAL(Z) et AIMAG(Z) pour les DOUBLE COMPLEX Z" ++ ++#~ msgid "Initialization via DATA and PARAMETER is not type-compatible" ++#~ msgstr "Initialisation via DATA et PARAMETER n'est pas un type compatible" ++ ++#~ msgid "Allow INTEGER and LOGICAL interchangeability" ++#~ msgstr "Permettre l'interchangeabilité de INTEGER et LOGICAL" ++ ++#~ msgid "Append underscores to externals" ++#~ msgstr "Ajouter des caractères de soulignement aux externes" ++ ++#~ msgid "Delete libU77 intrinsics" ++#~ msgstr "Détruire les intrinsèques libU77" ++ ++#~ msgid "Disable libU77 intrinsics" ++#~ msgstr "Désactiver les intrinsèques libU77" ++ ++#~ msgid "Enable libU77 intrinsics" ++#~ msgstr "Autoriser les intrinsèques libU77" ++ ++#~ msgid "Hide libU77 intrinsics" ++#~ msgstr "Cacher les intrinsèques libU77" ++ ++#~ msgid "Print g77-specific version information and run internal tests" ++#~ msgstr "Afficher les informations de version spécifiques du compilateur g77, exécuter les tests internes" ++ ++#~ msgid "Program is written in VXT (Digital-like) FORTRAN" ++#~ msgstr "Programme est écrit en Fortran VXT (forme de Digital)" ++ ++#~ msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports" ++#~ msgstr "Détruire les supports VXT Fortran intrinsèques non Fortran-77" ++ ++#~ msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports" ++#~ msgstr "Désactiver les supports VXT Fortran intrinsèques non Fortran-77" ++ ++#~ msgid "Enable non-FORTRAN-77 intrinsics VXT FORTRAN supports" ++#~ msgstr "Désactiver les supports VXT Fortran intrinsèques non Fortran-77" ++ ++#~ msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports" ++#~ msgstr "Cacher les supports VXT Fortran des intrinsèques non Fortran-77" ++ ++#~ msgid "Print internal debugging-related information" ++#~ msgstr "Afficher les informations internes reliées à la mise au point" ++ ++#~ msgid "Treat initial values of 0 like non-zero values" ++#~ msgstr "Traiter les valeurs initiales de 0 comme des valeurs non zéros" ++ ++#~ msgid "read-write constraint does not allow a register" ++#~ msgstr "contrainte de lecture-éccriture ne permet pas de registre" ++ ++#~ msgid "your function will be miscompiled" ++#~ msgstr "votre fonction sera mal compilée" ++ ++#~ msgid "neither the destructor nor the class-specific " ++#~ msgstr "ni le destructeur ni la classe spécifique" ++ ++#~ msgid "operator delete will be called, even if they are " ++#~ msgstr "l'opérateur de destruction sera appellé, même s'ils sont " ++ ++#~ msgid "declared when the class is defined." ++#~ msgstr "déclarés lorsque la classe est définie." + + #~ msgid "pointer to a member used in arithmetic" + #~ msgstr "usage en arithmétique d'un pointeur vers un membre" +@@ -22764,9 +22689,6 @@ + #~ msgid "`sigof' applied to non-aggregate expression" + #~ msgstr "« sigof » appliqué à une expression de non aggrégats" + +-#~ msgid "`sigof' applied to non-aggregate type" +-#~ msgstr "« sigof » appliqué à un type non aggrégat" +- + #~ msgid "storage class specifier `%s' not allowed after struct or class" + #~ msgstr "spécificateur de classe de stockages « %s » n'est pas permis après struct ou class" + +@@ -22794,9 +22716,6 @@ + #~ msgid "ISO C++ forbids array dimensions with parenthesized type in new" + #~ msgstr "ISO C++ interdit l'utilisation de parenthèses autour du type pour les dimensions de tableaux avec new" + +-#~ msgid "`%T' is not a class or namespace" +-#~ msgstr "« %T » n'est pas une classe ou un espace de noms" +- + #~ msgid "ISO C++ forbids label declarations" + #~ msgstr "ISO C++ interdit la déclaration d'étiquette" + +@@ -23148,9 +23067,6 @@ + #~ msgid "missing binary operator" + #~ msgstr "opérateur binaire manquant" + +-#~ msgid "operator '%s' has no left operand" +-#~ msgstr "opérateur « %s » n'a pas d'opérande gauche" +- + #~ msgid "changing search order for system directory \"%s\"" + #~ msgstr "modification de l'ordonnancement de recherche du répertoire système « %s »" + +Index: gcc/po/ja.po +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/po/ja.po,v +retrieving revision 1.4.8.3 +retrieving revision 1.4.8.4 +diff -u -r1.4.8.3 -r1.4.8.4 +--- gcc/po/ja.po 14 Sep 2004 20:37:54 -0000 1.4.8.3 ++++ gcc/po/ja.po 7 Nov 2004 19:59:36 -0000 1.4.8.4 +@@ -8,7 +8,7 @@ + msgstr "" + "Project-Id-Version: gcc 3.0\n" + "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" +-"POT-Creation-Date: 2004-07-01 11:41-0700\n" ++"POT-Creation-Date: 2004-11-04 19:12-0800\n" + "PO-Revision-Date: 2001-12-05 22:47+0900\n" + "Last-Translator: Daisuke Yamashita \n" + "Language-Team: Japanese \n" +@@ -36,16 +36,16 @@ + msgid "`%s' attribute only applies to function types" + msgstr "`%s' °À­¤Ï´Ø¿ô¤ËÂФ·¤Æ¤Î¤ßŬÍѤµ¤ì¤Þ¤¹" + +-#: attribs.c:416 c-common.c:4307 c-common.c:4326 c-common.c:4344 +-#: c-common.c:4371 c-common.c:4390 c-common.c:4413 c-common.c:4436 +-#: c-common.c:4462 c-common.c:4496 c-common.c:4540 c-common.c:4568 +-#: c-common.c:4596 c-common.c:4615 c-common.c:4870 c-common.c:4892 +-#: c-common.c:4927 c-common.c:4994 c-common.c:5040 c-common.c:5098 +-#: c-common.c:5129 c-common.c:5475 c-common.c:5498 c-common.c:5537 +-#: config/arm/arm.c:2281 config/arm/arm.c:2308 config/avr/avr.c:4539 +-#: config/h8300/h8300.c:4284 config/h8300/h8300.c:4307 config/i386/i386.c:1620 +-#: config/i386/i386.c:15397 config/i386/winnt.c:86 config/ia64/ia64.c:1057 +-#: config/ip2k/ip2k.c:3151 ++#: attribs.c:416 c-common.c:4306 c-common.c:4325 c-common.c:4343 ++#: c-common.c:4370 c-common.c:4389 c-common.c:4412 c-common.c:4435 ++#: c-common.c:4461 c-common.c:4495 c-common.c:4539 c-common.c:4567 ++#: c-common.c:4595 c-common.c:4614 c-common.c:4881 c-common.c:4903 ++#: c-common.c:4938 c-common.c:5005 c-common.c:5051 c-common.c:5109 ++#: c-common.c:5140 c-common.c:5440 c-common.c:5463 c-common.c:5502 ++#: config/arm/arm.c:2281 config/arm/arm.c:2308 config/avr/avr.c:4504 ++#: config/h8300/h8300.c:4284 config/h8300/h8300.c:4307 config/i386/i386.c:1626 ++#: config/i386/i386.c:15398 config/i386/winnt.c:86 config/ia64/ia64.c:1057 ++#: config/ip2k/ip2k.c:3151 config/rs6000/rs6000.c:15035 + #, c-format + msgid "`%s' attribute ignored" + msgstr "`%s' °À­¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿" +@@ -123,7 +123,7 @@ + + #. We can, however, treat "undefined" any way we please. + #. Call abort to encourage the user to fix the program. +-#: builtins.c:4134 c-typeck.c:1733 ++#: builtins.c:4134 c-typeck.c:1713 + msgid "if this code is reached, the program will abort" + msgstr "" + +@@ -161,409 +161,414 @@ + msgid "target format does not support infinity" + msgstr "¥¿¡¼¥²¥Ã¥È CPU ¤Ï interworking ¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤»¤ó" + +-#: c-common.c:917 ++#: c-common.c:916 + msgid "%Hsuggest explicit braces to avoid ambiguous `else'" + msgstr "" + +-#: c-common.c:1141 ++#: c-common.c:1140 + #, fuzzy + msgid "%J'%D' is not defined outside of function scope" + msgstr "¥é¥Ù¥ë %s ¤¬¤¢¤é¤æ¤ë´Ø¿ô¤Î³°Â¦¤Ç»²¾È¤µ¤ì¤Þ¤·¤¿" + +-#: c-common.c:1161 ++#: c-common.c:1160 + #, c-format + msgid "string length `%d' is greater than the length `%d' ISO C%d compilers are required to support" + msgstr "ʸ»úÎóĹ `%d' ¤Ï¡¢Ä¹¤µ `%d' (ISO C%d ¥³¥ó¥Ñ¥¤¥é¤Î¥µ¥Ý¡¼¥ÈÍ×·ï)¤è¤êÂ礭¤¯¤Ê¤Ã¤Æ¤¤¤Þ¤¹" + +-#: c-common.c:1201 ++#: c-common.c:1200 + msgid "overflow in constant expression" + msgstr "Äê¿ô¼°¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿" + +-#: c-common.c:1221 ++#: c-common.c:1220 + msgid "integer overflow in expression" + msgstr "¼°¤ÎÀ°¿ô¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿" + +-#: c-common.c:1230 ++#: c-common.c:1229 + msgid "floating point overflow in expression" + msgstr "¼°¤ÎÉâÆ°¾®¿ôÅÀ¿ô¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿" + +-#: c-common.c:1236 ++#: c-common.c:1235 + #, fuzzy + msgid "vector overflow in expression" + msgstr "¼°¤ÎÀ°¿ô¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿" + + #. This detects cases like converting -129 or 256 to unsigned char. +-#: c-common.c:1258 ++#: c-common.c:1257 + msgid "large integer implicitly truncated to unsigned type" + msgstr "Â礭¤ÊÀ°¿ô¤¬°ÅÌÛ¤ËÉä¹ç̵¤··¿¤ËÀÚ¤êµÍ¤á¤é¤ì¤Þ¤·¤¿" + +-#: c-common.c:1260 ++#: c-common.c:1259 + msgid "negative integer implicitly converted to unsigned type" + msgstr "Éé¤ÎÀ°¿ô¤¬°ÅÌÛ¤ËÉä¹ç̵¤··¿¤ËÊÑ´¹¤µ¤ì¤Þ¤·¤¿" + +-#: c-common.c:1306 ++#: c-common.c:1305 + msgid "overflow in implicit constant conversion" + msgstr "°ÅÌÛ¤ÎÄê¿ôÊÑ´¹¤Ç¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿" + +-#: c-common.c:1442 ++#: c-common.c:1441 + #, c-format + msgid "operation on `%s' may be undefined" + msgstr "`%s' ¤Ç¤Î±é»»¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¤È»×¤ï¤ì¤Þ¤¹" + +-#: c-common.c:1726 ++#: c-common.c:1725 + msgid "expression statement has incomplete type" + msgstr "¼°¤ÎÃæ¤Îʸ¤ËÉÔ´°Á´·¿¤¬¤¢¤ê¤Þ¤¹" + +-#: c-common.c:1758 ++#: c-common.c:1757 + msgid "case label does not reduce to an integer constant" + msgstr "case ¥é¥Ù¥ë¤òÀ°¿ôÄê¿ô¤Ë´Ô¸µ¤Ç¤­¤Þ¤»¤ó" + +-#: c-common.c:2088 ++#: c-common.c:2087 + msgid "invalid truth-value expression" + msgstr "¿¿µ¶Ãͼ°¤¬ÉÔŬÀڤǤ¹" + +-#: c-common.c:2139 ++#: c-common.c:2138 + #, c-format + msgid "invalid operands to binary %s" + msgstr "Æó¹à±é»»»Ò %s ¤¬ÉÔŬÀڤǤ¹" + +-#: c-common.c:2373 ++#: c-common.c:2372 + msgid "comparison is always false due to limited range of data type" + msgstr "¥Ç¡¼¥¿·¿¤ÎÈÏ°ÏÀ©¸Â¤Ë¤è¤Ã¤Æ¡¢Èæ³Ó¤¬¾ï¤Ë false ¤È¤Ê¤ê¤Þ¤¹" + +-#: c-common.c:2375 ++#: c-common.c:2374 + msgid "comparison is always true due to limited range of data type" + msgstr "¥Ç¡¼¥¿·¿¤ÎÈÏ°ÏÀ©¸Â¤Ë¤è¤Ã¤Æ¡¢Èæ³Ó¤¬¾ï¤Ë true ¤È¤Ê¤ê¤Þ¤¹" + +-#: c-common.c:2445 ++#: c-common.c:2444 + msgid "comparison of unsigned expression >= 0 is always true" + msgstr "Éä¹ç̵¤·¤Î¼° >= 0 ¤È¤¤¤¦Èæ³Ó¤Ï¾ï¤Ë true ¤Ç¤¹" + +-#: c-common.c:2454 ++#: c-common.c:2453 + msgid "comparison of unsigned expression < 0 is always false" + msgstr "Éä¹ç̵¤·¤Î¼° < 0 ¤È¤¤¤¦Èæ³Ó¤Ï¾ï¤Ë false ¤Ç¤¹" + +-#: c-common.c:2499 ++#: c-common.c:2498 + msgid "pointer of type `void *' used in arithmetic" + msgstr "`void *' ·¿¤Î¥Ý¥¤¥ó¥¿¤¬·×»»¤Ç»È¤ï¤ì¤Þ¤·¤¿" + +-#: c-common.c:2505 ++#: c-common.c:2504 + msgid "pointer to a function used in arithmetic" + msgstr "´Ø¿ô¥Ý¥¤¥ó¥¿¤¬·×»»¤Ç»È¤ï¤ì¤Þ¤·¤¿" + +-#: c-common.c:2511 ++#: c-common.c:2510 + #, fuzzy + msgid "pointer to member function used in arithmetic" + msgstr "´Ø¿ô¥Ý¥¤¥ó¥¿¤¬·×»»¤Ç»È¤ï¤ì¤Þ¤·¤¿" + +-#: c-common.c:2600 f/com.c:14734 ++#: c-common.c:2599 f/com.c:14734 + msgid "struct type value used where scalar is required" + msgstr "¥¹¥«¥é¡¼¤¬É¬Íפʾì½ê¤Ë¹½Â¤Âη¿¤ÎÃͤ¬»È¤ï¤ì¤Þ¤·¤¿" + +-#: c-common.c:2604 f/com.c:14738 ++#: c-common.c:2603 f/com.c:14738 + msgid "union type value used where scalar is required" + msgstr "¥¹¥«¥é¡¼¤¬É¬Íפʾì½ê¤Ë¶¦ÍÑÂη¿¤ÎÃͤ¬»È¤ï¤ì¤Þ¤·¤¿" + +-#: c-common.c:2608 f/com.c:14742 ++#: c-common.c:2607 f/com.c:14742 + msgid "array type value used where scalar is required" + msgstr "¥¹¥«¥é¡¼¤¬É¬Íפʾì½ê¤ËÇÛÎ󷿤ÎÃͤ¬»È¤ï¤ì¤Þ¤·¤¿" + + #. Common Ada/Pascal programmer's mistake. We always warn + #. about this since it is so bad. +-#: c-common.c:2645 ++#: c-common.c:2644 + msgid "the address of `%D', will always evaluate as `true'" + msgstr "" + +-#: c-common.c:2739 f/com.c:14874 ++#: c-common.c:2738 f/com.c:14874 + msgid "suggest parentheses around assignment used as truth value" + msgstr "¿¿µ¶ÃͤȤ·¤Æ»È¤ï¤ì¤ëÂåÆþ¤Î¤Þ¤ï¤ê¤Ç¤Ï¡¢´Ý³ç¸Ì¤Î»ÈÍѤò¤ª´«¤á¤·¤Þ¤¹" + +-#: c-common.c:2785 c-common.c:2825 ++#: c-common.c:2784 c-common.c:2824 + msgid "invalid use of `restrict'" + msgstr "`restrict' ¤ÎÍÑË¡¤¬ÉÔŬÀڤǤ¹" + +-#: c-common.c:2935 ++#: c-common.c:2934 + #, fuzzy + msgid "invalid application of `sizeof' to a function type" + msgstr "ISO C++ ¤Ï´Ø¿ô·¿¤Ø¤Î `sizeof' ¤ÎŬÍѤò¶Ø¤¸¤Þ¤¹" + +-#: c-common.c:2945 ++#: c-common.c:2944 + #, fuzzy, c-format + msgid "invalid application of `%s' to a void type" + msgstr "¥¤¥ó¥¹¥¿¥ó¥¹²½¤µ¤ì¤Ê¤¤·¿¤ËÂФ¹¤ë̵¸ú¤ÊÁàºî¤Ç¤¹" + +-#: c-common.c:2951 ++#: c-common.c:2950 + #, fuzzy + msgid "invalid application of `%s' to incomplete type `%T' " + msgstr "ÉÔ´°Á´¤Ê typedef `%s' ¤Î»ÈÍѤÏÉÔŬÀڤǤ¹" + +-#: c-common.c:2992 ++#: c-common.c:2991 + msgid "`__alignof' applied to a bit-field" + msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤Ë `__alignof' ¤¬Å¬ÍѤµ¤ì¤Þ¤·¤¿" + +-#: c-common.c:3484 ++#: c-common.c:3483 + #, fuzzy, c-format + msgid "cannot disable built-in function `%s'" + msgstr "ÁȤ߹þ¤ß´Ø¿ô `%s' ¤òʤ¤¤±£¤·¤Þ¤¹" + +-#: c-common.c:3645 c-typeck.c:1974 ++#: c-common.c:3644 c-typeck.c:1954 + #, c-format + msgid "too few arguments to function `%s'" + msgstr "´Ø¿ô `%s' ¤Ø¤Î°ú¿ô¤¬¾¯¤Ê¤¹¤®¤Þ¤¹" + +-#: c-common.c:3651 c-typeck.c:1835 ++#: c-common.c:3650 c-typeck.c:1815 + #, c-format + msgid "too many arguments to function `%s'" + msgstr "´Ø¿ô `%s' ¤ËÂФ¹¤ë°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹" + +-#: c-common.c:3670 ++#: c-common.c:3669 + #, fuzzy, c-format + msgid "non-floating-point argument to function `%s'" + msgstr "´Ø¿ô `%s' ¤ËÂФ¹¤ë°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹" + +-#: c-common.c:3897 ++#: c-common.c:3896 + msgid "pointers are not permitted as case values" + msgstr "case ¤ÎÃͤȤ·¤Æ¤Î¥Ý¥¤¥ó¥¿¤Ïµö¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" + +-#: c-common.c:3901 ++#: c-common.c:3900 + #, fuzzy + msgid "range expressions in switch statements are non-standard" + msgstr "ISO C ¤Ç¤Ï switch ʸ¤Ç¤ÎÈϰϼ°¤Ï¶Ø¤¸¤é¤ì¤Æ¤¤¤Þ¤¹" + +-#: c-common.c:3930 ++#: c-common.c:3929 + msgid "empty range specified" + msgstr "¶õ¤ÎÈϰϤ¬»ØÄꤵ¤ì¤Þ¤·¤¿" + +-#: c-common.c:3981 ++#: c-common.c:3980 + msgid "duplicate (or overlapping) case value" + msgstr "Æó½Å¤Î(¤¢¤ë¤¤¤Ï½ÅÊ£¤·¤Æ¤¤¤ë) case ¤ÎÃÍ" + +-#: c-common.c:3982 ++#: c-common.c:3981 + #, fuzzy + msgid "%Jthis is the first entry overlapping that value" + msgstr "¤³¤ì¤¬¤½¤ÎÃͤȽÅÊ£¤·¤¿ºÇ½é¤Î¹àÌܤǤ¹" + +-#: c-common.c:3986 ++#: c-common.c:3985 + msgid "duplicate case value" + msgstr "½ÅÊ£¤·¤¿ case ¤ÎÃÍ" + +-#: c-common.c:3987 ++#: c-common.c:3986 + #, fuzzy + msgid "%Jpreviously used here" + msgstr "Á°¤Ë¤³¤³¤Ç»È¤ï¤ì¤Þ¤·¤¿" + +-#: c-common.c:3991 ++#: c-common.c:3990 + msgid "multiple default labels in one switch" + msgstr "°ì¤Ä¤Î switch ¤ËÊ£¿ô¤Î default ¥é¥Ù¥ë¤¬¤¢¤ê¤Þ¤¹" + +-#: c-common.c:3992 ++#: c-common.c:3991 + #, fuzzy + msgid "%Jthis is the first default label" + msgstr "¤³¤ì¤¬ºÇ½é¤Î default ¥é¥Ù¥ë¤Ç¤¹" + +-#: c-common.c:4017 ++#: c-common.c:4016 + #, fuzzy + msgid "taking the address of a label is non-standard" + msgstr "°ì»þ¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥É¥ì¥¹¤ò¼è¤í¤¦¤È¤·¤Æ¤¤¤Þ¤¹" + +-#: c-common.c:4063 ++#: c-common.c:4062 + msgid "%Hignoring return value of `%D', declared with attribute warn_unused_result" + msgstr "" + +-#: c-common.c:4068 ++#: c-common.c:4067 + msgid "%Hignoring return value of function declared with attribute warn_unused_result" + msgstr "" + +-#: c-common.c:4649 ++#: c-common.c:4651 + #, c-format + msgid "unknown machine mode `%s'" + msgstr "ÉÔÌÀ¤Ê¥Þ¥·¥ó¥â¡¼¥É `%s'" + +-#: c-common.c:4652 ++#: c-common.c:4654 + #, c-format + msgid "no data type for mode `%s'" + msgstr "¥â¡¼¥É `%s' ¤ËÂФ¹¤ë¥Ç¡¼¥¿·¿¤¬¤¢¤ê¤Þ¤»¤ó" + +-#: c-common.c:4656 ++#: c-common.c:4658 + #, fuzzy, c-format + msgid "invalid pointer mode `%s'" + msgstr "̵¸ú¤Ê¼±ÊÌ»Ò `%s'" + +-#: c-common.c:4663 c-common.c:5226 ++#: c-common.c:4665 c-common.c:5237 + #, fuzzy, c-format + msgid "unable to emulate '%s'" + msgstr "¥Õ¥¡¥¤¥ë '%s' ¤ò open ¤Ç¤­¤Þ¤»¤ó" + +-#: c-common.c:4707 ++#: c-common.c:4686 ++#, fuzzy, c-format ++msgid "mode `%s' applied to inappropriate type" ++msgstr "È󽸹çÂη¿¤ËÂФ·¤ÆŬÍѤµ¤ì¤¿ `sigof'" ++ ++#: c-common.c:4718 + #, fuzzy + msgid "%Jsection attribute cannot be specified for local variables" + msgstr "section °À­¤Ï¥í¡¼¥«¥ëÊÑ¿ô¤ËÂФ·¤Æ¤Ï»ØÄê¤Ç¤­¤Þ¤»¤ó" + +-#: c-common.c:4718 ++#: c-common.c:4729 + #, fuzzy + msgid "%Jsection of '%D' conflicts with previous declaration" + msgstr "`%s' ¤Î¥»¥¯¥·¥ç¥ó¤ÏÁ°Êý¤Ç¤ËÀë¸À¤µ¤ì¤¿¤â¤Î¤È¾×Æͤ·¤Þ¤¹" + +-#: c-common.c:4727 ++#: c-common.c:4738 + #, fuzzy + msgid "%Jsection attribute not allowed for '%D'" + msgstr "¥»¥¯¥·¥ç¥ó°À­¤Ï `%s' ¤Ë¤Ï»È¤¨¤Þ¤»¤ó" + +-#: c-common.c:4733 ++#: c-common.c:4744 + #, fuzzy + msgid "%Jsection attributes are not supported for this target" + msgstr "¥»¥¯¥·¥ç¥ó°À­¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" + +-#: c-common.c:4771 ++#: c-common.c:4782 + msgid "requested alignment is not a constant" + msgstr "Í׵ᤵ¤ì¤¿¥¢¥é¥¤¥ó¥á¥ó¥È¤¬Äê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: c-common.c:4776 ++#: c-common.c:4787 + msgid "requested alignment is not a power of 2" + msgstr "Í׵ᤵ¤ì¤¿¥¢¥é¥¤¥ó¥á¥ó¥È¤¬ 2 ¤Î¤Ù¤­¾è¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: c-common.c:4781 ++#: c-common.c:4792 + msgid "requested alignment is too large" + msgstr "Í׵ᤵ¤ì¤¿¥¢¥é¥¤¥ó¥á¥ó¥È¤¬Â礭¤¹¤®¤Þ¤¹" + +-#: c-common.c:4807 ++#: c-common.c:4818 + #, fuzzy + msgid "%Jalignment may not be specified for '%D'" + msgstr "`%s' ¤ËÂФ·¤Æ¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤Ï»ØÄê¤Ç¤­¤Þ¤»¤ó" + +-#: c-common.c:4845 ++#: c-common.c:4856 + #, fuzzy + msgid "%J'%D' defined both normally and as an alias" + msgstr "`%s' ¤¬Ä̾ï¤Î¤â¤Î¤È¥¨¥¤¥ê¥¢¥¹¤È¤ÎξÊý¤ÇÄêµÁ¤µ¤ì¤Þ¤·¤¿" + +-#: c-common.c:4855 ++#: c-common.c:4866 + msgid "alias arg not a string" + msgstr "alias °ú¿ô¤¬Ê¸»úÎó¤Ç¤Ï¤Ê¤¤" + +-#: c-common.c:4898 ++#: c-common.c:4909 + #, fuzzy + msgid "visibility arg not a string" + msgstr "alias °ú¿ô¤¬Ê¸»úÎó¤Ç¤Ï¤Ê¤¤" + +-#: c-common.c:4911 ++#: c-common.c:4922 + msgid "visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\"" + msgstr "" + +-#: c-common.c:4937 ++#: c-common.c:4948 + #, fuzzy + msgid "tls_model arg not a string" + msgstr "alias °ú¿ô¤¬Ê¸»úÎó¤Ç¤Ï¤Ê¤¤" + +-#: c-common.c:4946 ++#: c-common.c:4957 + msgid "tls_model arg must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\"" + msgstr "" + +-#: c-common.c:4968 c-common.c:5014 ++#: c-common.c:4979 c-common.c:5025 + #, fuzzy + msgid "%J'%E' attribute applies only to functions" + msgstr "`%s' °À­¤Ï´Ø¿ô¤ËÂФ·¤Æ¤Î¤ßŬÍѤµ¤ì¤Þ¤¹" + +-#: c-common.c:4973 c-common.c:5019 ++#: c-common.c:4984 c-common.c:5030 + #, fuzzy + msgid "%Jcan't set '%E' attribute after definition" + msgstr "ÄêµÁ¤Î¸å¤Ç `%s' °À­¤ò¥»¥Ã¥È¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó" + +-#: c-common.c:5095 ++#: c-common.c:5106 + #, fuzzy, c-format + msgid "`%s' attribute ignored for `%s'" + msgstr "`%s' °À­¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿" + +-#: c-common.c:5158 ++#: c-common.c:5169 + #, fuzzy, c-format + msgid "invalid vector type for attribute `%s'" + msgstr "`%s' ¤Î°ú¿ô¤È¤·¤Æ̵¸ú¤Ê·¿" + +-#: c-common.c:5182 c-common.c:5214 ++#: c-common.c:5193 c-common.c:5225 + msgid "no vector mode with the size and type specified could be found" + msgstr "" + +-#: c-common.c:5316 ++#: c-common.c:5281 + #, fuzzy + msgid "nonnull attribute without arguments on a non-prototype" + msgstr "²¾°ú¿ô¤Î¿ô¤¬¥×¥í¥È¥¿¥¤¥×¤È°ìÃפ·¤Þ¤»¤ó" + +-#: c-common.c:5331 ++#: c-common.c:5296 + #, fuzzy, c-format + msgid "nonnull argument has invalid operand number (arg %lu)" + msgstr "¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤ËÉÔŬÀڤʥª¥Ú¥é¥ó¥É¿ô¤¬¤¢¤ê¤Þ¤¹" + +-#: c-common.c:5350 ++#: c-common.c:5315 + #, c-format + msgid "nonnull argument with out-of-range operand number (arg %lu, operand %lu)" + msgstr "" + +-#: c-common.c:5358 ++#: c-common.c:5323 + #, c-format + msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)" + msgstr "" + +-#: c-common.c:5438 ++#: c-common.c:5403 + #, c-format + msgid "null argument where non-null required (arg %lu)" + msgstr "" + +-#: c-common.c:5509 ++#: c-common.c:5474 + #, fuzzy + msgid "cleanup arg not an identifier" + msgstr "¼±Ê̻ҤΤʤ¤ 'defined'" + +-#: c-common.c:5516 ++#: c-common.c:5481 + #, fuzzy + msgid "cleanup arg not a function" + msgstr "¸Æ¤Ó½Ð¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Ï´Ø¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: c-common.c:5877 ++#: c-common.c:5842 + #, c-format + msgid "%s at end of input" + msgstr "ÆþÎϤκǸå¤Ë %s" + +-#: c-common.c:5883 ++#: c-common.c:5848 + #, c-format + msgid "%s before %s'%c'" + msgstr "%s ¤¬ %s'%c' ¤ÎÁ°¤Ë¤¢¤ê¤Þ¤¹" + +-#: c-common.c:5885 ++#: c-common.c:5850 + #, c-format + msgid "%s before %s'\\x%x'" + msgstr "%s ¤¬ %s'\\x%x' ¤ÎÁ°¤Ë¤¢¤ê¤Þ¤¹" + +-#: c-common.c:5889 ++#: c-common.c:5854 + #, c-format + msgid "%s before string constant" + msgstr "ʸ»úÎóÄê¿ô¤ÎÁ°¤Ë %s" + +-#: c-common.c:5891 ++#: c-common.c:5856 + #, c-format + msgid "%s before numeric constant" + msgstr "¿ôÃÍÄê¿ô¤ÎÁ°¤Ë %s" + +-#: c-common.c:5893 ++#: c-common.c:5858 + #, c-format + msgid "%s before \"%s\"" + msgstr "%s ¤¬ \"%s\" ¤ÎÁ°¤Ë¤¢¤ê¤Þ¤¹" + +-#: c-common.c:5895 ++#: c-common.c:5860 + #, c-format + msgid "%s before '%s' token" + msgstr "%s ¤¬ '%s' ¥È¡¼¥¯¥ó¤ÎÁ°¤Ë¤¢¤ê¤Þ¤¹" + + #. Use `%s' to print the string in case there are any escape + #. characters in the message. +-#: c-common.c:5897 c-typeck.c:2612 c-typeck.c:4004 c-typeck.c:4019 +-#: c-typeck.c:4034 final.c:2776 final.c:2778 gcc.c:4581 rtl-error.c:109 +-#: toplev.c:1357 config/cris/cris.c:552 cp/parser.c:1848 cp/typeck.c:4155 ++#: c-common.c:5862 c-typeck.c:2592 c-typeck.c:3984 c-typeck.c:3999 ++#: c-typeck.c:4014 final.c:2776 final.c:2778 gcc.c:4584 rtl-error.c:109 ++#: toplev.c:1357 config/cris/cris.c:552 cp/parser.c:1848 cp/typeck.c:4173 + #: java/expr.c:356 java/verify.c:1456 java/verify.c:1457 java/verify.c:1472 + #, c-format + msgid "%s" + msgstr "%s" + +-#: c-convert.c:82 c-typeck.c:1211 c-typeck.c:3444 cp/typeck.c:1363 +-#: cp/typeck.c:5708 treelang/tree-convert.c:79 ++#: c-convert.c:82 c-typeck.c:1211 c-typeck.c:3424 cp/typeck.c:1363 ++#: cp/typeck.c:5729 treelang/tree-convert.c:79 + msgid "void value not ignored as it ought to be" + msgstr "void ¤ÎÃͤ¬ËÜÍè¤Î°ÕÌ£Ä̤ê¤Ë̵»ë¤µ¤ì¤Þ¤»¤ó¤Ç¤·¤¿" + +@@ -762,409 +767,409 @@ + msgid "%Jnon-const declaration of '%D' follows const declaration" + msgstr "`%s' ¤Ï static ¤Î¸å¤ÇÈó static Àë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹" + +-#: c-decl.c:1262 ++#: c-decl.c:1267 + #, fuzzy + msgid "%Jredundant redeclaration of '%D'" + msgstr "`%s' ¤Î¾éĹ¤ÊºÆÀë¸À¤¬Æ±°ì¥¹¥³¡¼¥×Æâ¤Ë¤¢¤ê¤Þ¤¹" + +-#: c-decl.c:1581 ++#: c-decl.c:1586 + #, fuzzy + msgid "%Jdeclaration of '%D' shadows a parameter" + msgstr "`%s' ¤ÎÀë¸À¤Ï²¾°ú¿ô¤òʤ¤¤±£¤·¤Þ¤¹" + +-#: c-decl.c:1583 ++#: c-decl.c:1588 + #, fuzzy + msgid "%Jdeclaration of '%D' shadows a global declaration" + msgstr "`%s' ¤ÎÀë¸À¤Ï¥°¥í¡¼¥Ð¥ëÀë¸À¤òʤ¤¤±£¤·¤Þ¤¹" + +-#: c-decl.c:1585 ++#: c-decl.c:1590 + #, fuzzy + msgid "%Jdeclaration of '%D' shadows a previous local" + msgstr "`%s' ¤ÎÀë¸À¤ÏÁ°Êý¤Î¥í¡¼¥«¥ë¥·¥ó¥Ü¥ë¤òʤ¤¤±£¤·¤Þ¤¹" + +-#: c-decl.c:1587 cp/name-lookup.c:969 cp/name-lookup.c:992 ++#: c-decl.c:1592 cp/name-lookup.c:969 cp/name-lookup.c:992 + #: cp/name-lookup.c:1000 + msgid "%Jshadowed declaration is here" + msgstr "" + +-#: c-decl.c:1697 ++#: c-decl.c:1702 + #, c-format + msgid "nested extern declaration of `%s'" + msgstr "`%s' ¤Î extern Àë¸À¤¬¥Í¥¹¥È¤·¤Æ¤¤¤Þ¤¹" + +-#: c-decl.c:1838 objc/objc-act.c:2534 objc/objc-act.c:6794 ++#: c-decl.c:1843 objc/objc-act.c:2534 objc/objc-act.c:6794 + #, fuzzy + msgid "%Jprevious declaration of '%D'" + msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À" + +-#: c-decl.c:1879 c-decl.c:1881 ++#: c-decl.c:1884 c-decl.c:1886 + #, c-format + msgid "implicit declaration of function `%s'" + msgstr "´Ø¿ô `%s' ¤Î°ÅÌÛ¤ÎÀë¸À" + +-#: c-decl.c:1897 ++#: c-decl.c:1902 + #, c-format + msgid "`%s' undeclared here (not in a function)" + msgstr "`%s' ¤¬¤³¤³¤Ç¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó (´Ø¿ô¤ÎÃæ¤Ç¤Ï¤Ê¤¤)" + +-#: c-decl.c:1903 ++#: c-decl.c:1908 + #, c-format + msgid "`%s' undeclared (first use in this function)" + msgstr "`%s' ¤¬Àë¸À¤µ¤ì¤Æ¤¤¤Þ¤»¤ó (¤³¤Î´Ø¿ôÆâ¤ÇºÇ½é¤ËÍøÍÑ)" + +-#: c-decl.c:1908 ++#: c-decl.c:1913 + msgid "(Each undeclared identifier is reported only once" + msgstr "(̤Àë¸À¤Î³ÆÊÑ¿ô¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤½¤ì¤¬ºÇ½é¤Ë¸½¤ï¤ì¤¿¤½¤ì¤¾¤ì¤Î´Ø¿ô" + +-#: c-decl.c:1909 ++#: c-decl.c:1914 + msgid "for each function it appears in.)" + msgstr " ¤ËÂФ·¤Æ°ìÅÙ¤À¤±Êó¹ð¤µ¤ì¤Þ¤¹¡£)" + +-#: c-decl.c:1962 ++#: c-decl.c:1967 + #, c-format + msgid "label %s referenced outside of any function" + msgstr "¥é¥Ù¥ë %s ¤¬¤¢¤é¤æ¤ë´Ø¿ô¤Î³°Â¦¤Ç»²¾È¤µ¤ì¤Þ¤·¤¿" + +-#: c-decl.c:2009 ++#: c-decl.c:2014 + #, c-format + msgid "duplicate label declaration `%s'" + msgstr "¥é¥Ù¥ë¤ÎÀë¸À `%s' ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹" + +-#: c-decl.c:2010 ++#: c-decl.c:2015 + #, fuzzy + msgid "%Jthis is a previous declaration" + msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À" + +-#: c-decl.c:2045 ++#: c-decl.c:2050 + #, fuzzy + msgid "%Hduplicate label `%D'" + msgstr "½ÅÊ£¤·¤¿¥á¥ó¥Ð `%s'" + +-#: c-decl.c:2047 ++#: c-decl.c:2052 + #, fuzzy + msgid "%J`%D' previously defined here" + msgstr "`%s' ¤ÏÁ°¤Ë¤³¤³¤ÇÄêµÁ¤µ¤ì¤Þ¤·¤¿" + +-#: c-decl.c:2049 ++#: c-decl.c:2054 + #, fuzzy + msgid "%J`%D' previously declared here" + msgstr "`%s' ¤ÏÁ°¤Ë¤³¤³¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿" + +-#: c-decl.c:2069 ++#: c-decl.c:2074 + msgid "%Htraditional C lacks a separate namespace for labels, identifier `%s' conflicts" + msgstr "" + +-#: c-decl.c:2140 ++#: c-decl.c:2145 + #, fuzzy + msgid "%H`%s' defined as wrong kind of tag" + msgstr "`%s' ¤¬Ê̤Υ·¥ó¥Ü¥ë¼ï¤È¤·¤ÆºÆÀë¸À¤µ¤ì¤Þ¤·¤¿" + +-#: c-decl.c:2378 ++#: c-decl.c:2383 + msgid "unnamed struct/union that defines no instances" + msgstr "̵̾¹½Â¤ÂÎ/¶¦ÍÑÂΤ¬¡¢¤½¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤òÄêµÁ¤·¤Æ¤¤¤Þ¤»¤ó" + +-#: c-decl.c:2397 ++#: c-decl.c:2402 + msgid "useless keyword or type name in empty declaration" + msgstr "¶õ¤ÎÀë¸À¤ÎÃæ¤Ë¡¢Ìµ°ÕÌ£¤Ê¥­¡¼¥ï¡¼¥ÉËô¤Ï·¿Ì¾¤¬¤¢¤ê¤Þ¤¹" + +-#: c-decl.c:2404 ++#: c-decl.c:2409 + msgid "two types specified in one empty declaration" + msgstr "°ì¤Ä¤Î¶õ¤ÎÀë¸ÀÃæ¤Ë¡¢Æó¤Ä¤Î·¿¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹" + +-#: c-decl.c:2409 c-parse.y:735 c-parse.y:737 objc/objc-parse.y:776 +-#: objc/objc-parse.y:778 objc/objc-parse.y:3017 ++#: c-decl.c:2414 c-parse.y:735 c-parse.y:737 objc/objc-parse.y:776 ++#: objc/objc-parse.y:778 objc/objc-parse.y:3016 + msgid "empty declaration" + msgstr "¶õ¤ÎÀë¸À¤Ç¤¹" + +-#: c-decl.c:2435 ++#: c-decl.c:2440 + msgid "ISO C90 does not support `static' or type qualifiers in parameter array declarators" + msgstr "" + +-#: c-decl.c:2437 ++#: c-decl.c:2442 + #, fuzzy + msgid "ISO C90 does not support `[*]' array declarators" + msgstr "ISO C89 ¤Ï²ÄÊÑÇÛÎó¥á¥ó¥Ð¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó" + +-#: c-decl.c:2440 ++#: c-decl.c:2445 + msgid "GCC does not yet properly implement `[*]' array declarators" + msgstr "" + +-#: c-decl.c:2456 ++#: c-decl.c:2461 + #, fuzzy + msgid "static or type qualifiers in abstract declarator" + msgstr "¥Ý¥¤¥ó¥¿Àë¸À»Ò¤ËÉÔŬÀڤʷ¿½¤¾þ»Ò" + +-#: c-decl.c:2526 ++#: c-decl.c:2531 + #, fuzzy + msgid "%J'%D' is usually a function" + msgstr "`%s' ¤ÏÄ̾ï¤Ï´Ø¿ô¤Ç¤¹" + +-#: c-decl.c:2535 ++#: c-decl.c:2540 + #, fuzzy, c-format + msgid "typedef `%s' is initialized (use __typeof__ instead)" + msgstr "typedef `%s' ¤¬½é´ü²½¤µ¤ì¤Þ¤·¤¿" + +-#: c-decl.c:2541 ++#: c-decl.c:2546 + #, c-format + msgid "function `%s' is initialized like a variable" + msgstr "´Ø¿ô `%s' ¤¬ÊÑ¿ô¤Ç¤¢¤ë¤«¤Î¤è¤¦¤Ë½é´ü²½¤µ¤ì¤Þ¤·¤¿" + + #. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE. +-#: c-decl.c:2548 ++#: c-decl.c:2553 + #, c-format + msgid "parameter `%s' is initialized" + msgstr "²¾°ú¿ô `%s' ¤¬½é´ü²½¤µ¤ì¤Þ¤·¤¿" + +-#: c-decl.c:2568 c-typeck.c:4254 ++#: c-decl.c:2573 c-typeck.c:4234 + msgid "variable-sized object may not be initialized" + msgstr "²ÄÊÑĹ¥ª¥Ö¥¸¥§¥¯¥È¤Ï½é´ü²½¤µ¤ì¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦" + +-#: c-decl.c:2574 ++#: c-decl.c:2579 + #, c-format + msgid "variable `%s' has initializer but incomplete type" + msgstr "ÊÑ¿ô `%s' ¤Ë¤Ï½é´ü²½»Ò¤¬¤¢¤ê¤Þ¤¹¤¬¡¢ÉÔ´°Á´·¿¤Ç¤¹" + +-#: c-decl.c:2580 ++#: c-decl.c:2585 + #, c-format + msgid "elements of array `%s' have incomplete type" + msgstr "ÇÛÎó `%s' ¤ÎÍ×ÁǤËÉÔ´°Á´·¿¤¬¤¢¤ê¤Þ¤¹" + +-#: c-decl.c:2649 c-decl.c:5451 cp/decl.c:3761 cp/decl.c:10141 ++#: c-decl.c:2654 c-decl.c:5462 cp/decl.c:3775 cp/decl.c:10238 + msgid "%Jinline function '%D' given attribute noinline" + msgstr "" + +-#: c-decl.c:2725 ++#: c-decl.c:2730 + #, fuzzy + msgid "%Jinitializer fails to determine size of '%D'" + msgstr "½é´ü²½»Ò¤Ï `%s' ¤Î¥µ¥¤¥º¤ÎÆÃÄê¤Ë¼ºÇÔ¤·¤Þ¤·¤¿" + +-#: c-decl.c:2730 ++#: c-decl.c:2735 + #, fuzzy + msgid "%Jarray size missing in '%D'" + msgstr "`%s' ¤Ç¤ÎÇÛÎó¥µ¥¤¥º¤ò·ç¤¤¤Æ¤¤¤Þ¤¹" + +-#: c-decl.c:2746 ++#: c-decl.c:2751 + #, fuzzy + msgid "%Jzero or negative size array '%D'" + msgstr "`%s' ¤ÎÇÛÎó¥µ¥¤¥º¤¬¥¼¥íËô¤ÏÉé¤Ç¤¹" + +-#: c-decl.c:2774 ++#: c-decl.c:2779 + #, fuzzy + msgid "%Jstorage size of '%D' isn't known" + msgstr "`%s' ¤ÎÎΰ襵¥¤¥º¤¬¤ï¤«¤ê¤Þ¤»¤ó" + +-#: c-decl.c:2784 ++#: c-decl.c:2789 + #, fuzzy + msgid "%Jstorage size of '%D' isn't constant" + msgstr "`%s' ¤ÎÎΰ襵¥¤¥º¤¬°ìÄê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: c-decl.c:2867 ++#: c-decl.c:2872 + #, fuzzy + msgid "%Jignoring asm-specifier for non-static local variable '%D'" + msgstr "Èó static ¥í¡¼¥«¥ëÊÑ¿ô `%s' ¤Ø¤Î asm »ØÄê»Ò¤Ï̵»ë¤µ¤ì¤Þ¤¹" + +-#: c-decl.c:2978 ++#: c-decl.c:2983 + msgid "ISO C forbids forward parameter declarations" + msgstr "ISO C ¤ÏÁ°Êý²¾°ú¿ôÀë¸À¤ò¶Ø¤¸¤Þ¤¹" + +-#: c-decl.c:3160 ++#: c-decl.c:3165 + #, fuzzy + msgid "" + msgstr "<̵̾ %s>" + +-#: c-decl.c:3169 ++#: c-decl.c:3174 + #, c-format + msgid "bit-field `%s' width not an integer constant" + msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÎÉý¤¬À°¿ôÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: c-decl.c:3177 ++#: c-decl.c:3182 + #, c-format + msgid "negative width in bit-field `%s'" + msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÎÉý¤¬Éé¤Î¿ô¤Ç¤¹" + +-#: c-decl.c:3182 ++#: c-decl.c:3187 + #, c-format + msgid "zero width for bit-field `%s'" + msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÎÉý¤¬ 0 ¤Ç¤¹" + +-#: c-decl.c:3192 ++#: c-decl.c:3197 + #, c-format + msgid "bit-field `%s' has invalid type" + msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÏÉÔŬÀڤʷ¿¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹" + +-#: c-decl.c:3201 ++#: c-decl.c:3206 + #, fuzzy, c-format + msgid "type of bit-field `%s' is a GCC extension" + msgstr "#%s ¤Ï GCC ¤Î³ÈÄ¥¤Ç¤¹" + +-#: c-decl.c:3210 ++#: c-decl.c:3215 + #, c-format + msgid "width of `%s' exceeds its type" + msgstr "`%s' ¤ÎÉý¤Ï¤½¤Î·¿¤Î¥µ¥¤¥º¤òĶ¤¨¤Æ¤¤¤Þ¤¹" + +-#: c-decl.c:3220 ++#: c-decl.c:3225 + #, c-format + msgid "`%s' is narrower than values of its type" + msgstr "`%s' ¤Ï¤½¤Î·¿¤ÎÃͤè¤ê¤â¶¹¤¤¤Ç¤¹" + +-#: c-decl.c:3370 cp/decl.c:6805 ++#: c-decl.c:3375 cp/decl.c:6900 + msgid "`long long long' is too long for GCC" + msgstr "`long long long' ¤Ï GCC ¤Ë¤È¤Ã¤ÆŤ¹¤®¤Þ¤¹" + +-#: c-decl.c:3375 ++#: c-decl.c:3380 + #, fuzzy + msgid "ISO C90 does not support `long long'" + msgstr "ISO C89 ¤Ï `long long' ¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó" + +-#: c-decl.c:3384 c-decl.c:3387 cp/decl.c:6810 ++#: c-decl.c:3389 c-decl.c:3392 cp/decl.c:6905 + #, c-format + msgid "duplicate `%s'" + msgstr "`%s' ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹" + +-#: c-decl.c:3397 cp/decl.c:6816 ++#: c-decl.c:3402 cp/decl.c:6911 + msgid "`__thread' before `extern'" + msgstr "" + +-#: c-decl.c:3399 cp/decl.c:6818 ++#: c-decl.c:3404 cp/decl.c:6913 + msgid "`__thread' before `static'" + msgstr "" + +-#: c-decl.c:3407 cp/decl.c:6845 ++#: c-decl.c:3412 cp/decl.c:6940 + #, c-format + msgid "two or more data types in declaration of `%s'" + msgstr "`%s' ¤ÎÀë¸À¤ËÆó¤Ä°Ê¾å¤Î¥Ç¡¼¥¿·¿¤¬»ØÄꤵ¤ì¤Þ¤·¤¿" + +-#: c-decl.c:3427 cp/decl.c:6850 ++#: c-decl.c:3432 cp/decl.c:6945 + #, c-format + msgid "`%s' fails to be a typedef or built in type" + msgstr "`%s' ¤ò typedef ¤Þ¤¿¤ÏÁȤ߹þ¤ß·¿¤Ë¤Ç¤­¤Þ¤»¤ó" + +-#: c-decl.c:3466 ++#: c-decl.c:3471 + #, c-format + msgid "type defaults to `int' in declaration of `%s'" + msgstr "`%s' ¤ÎÀë¸À¤Ç·¿¤¬¥Ç¥Õ¥©¥ë¥È¤Î `int' ¤È¤µ¤ì¤Þ¤·¤¿" + +-#: c-decl.c:3495 ++#: c-decl.c:3500 + #, c-format + msgid "both long and short specified for `%s'" + msgstr "`%s' ¤ËÂФ·¤Æ long ¤È short ¤ÎξÊý¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹" + +-#: c-decl.c:3499 cp/decl.c:6950 ++#: c-decl.c:3504 cp/decl.c:7045 + #, c-format + msgid "long or short specified with char for `%s'" + msgstr "`%s' ¤ËÂФ·¤Æ char ¤È¤È¤â¤Ë long ¤Þ¤¿¤Ï short ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹" + +-#: c-decl.c:3506 cp/decl.c:6954 ++#: c-decl.c:3511 cp/decl.c:7049 + #, c-format + msgid "long or short specified with floating type for `%s'" + msgstr "`%s' ¤ËÂФ·¤ÆÉâÆ°¾®¿ô·¿¤È¤È¤â¤Ë long ¤Þ¤¿¤Ï short ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹" + +-#: c-decl.c:3509 ++#: c-decl.c:3514 + msgid "the only valid combination is `long double'" + msgstr "Í£°ì¤ÎÍ­¸ú¤ÊÁȹç¤ï¤»¤Ï `long double' ¤Ç¤¹" + +-#: c-decl.c:3515 ++#: c-decl.c:3520 + #, c-format + msgid "both signed and unsigned specified for `%s'" + msgstr "`%s' ¤ËÂФ·¤ÆÉä¹æ¤¢¤ê¤ÈÉä¹æ¤Ê¤·¤ÎξÊý¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹" + +-#: c-decl.c:3517 cp/decl.c:6943 ++#: c-decl.c:3522 cp/decl.c:7038 + #, c-format + msgid "long, short, signed or unsigned invalid for `%s'" + msgstr "`%s' ¤ËÂФ·¤Æ long, short, signed ¤Þ¤¿¤Ï unsigned ¤ÏÉÔŬÀڤǤ¹" + +-#: c-decl.c:3523 cp/decl.c:6963 ++#: c-decl.c:3528 cp/decl.c:7058 + #, c-format + msgid "long, short, signed or unsigned used invalidly for `%s'" + msgstr "`%s' ¤ËÂФ¹¤ë long, short, singed ¤ä unsigned ¤Î»ÈÍѤÏÉÔŬÀڤǤ¹" + +-#: c-decl.c:3541 cp/decl.c:6984 ++#: c-decl.c:3546 cp/decl.c:7079 + #, c-format + msgid "complex invalid for `%s'" + msgstr "`%s' ¤ËÂФ·¤Æ complex ¤ÏÉÔŬÀڤǤ¹" + +-#: c-decl.c:3583 ++#: c-decl.c:3588 + #, fuzzy + msgid "ISO C90 does not support complex types" + msgstr "ISO C89 ¤Ï complex ·¿¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó" + +-#: c-decl.c:3595 ++#: c-decl.c:3600 + msgid "ISO C does not support plain `complex' meaning `double complex'" + msgstr "ISO C ¤Ï `double complex' ¤ò°ÕÌ£¤¹¤ë̵½¤¾þ¤Î `complex' ¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó" + +-#: c-decl.c:3601 c-decl.c:3613 ++#: c-decl.c:3606 c-decl.c:3618 + msgid "ISO C does not support complex integer types" + msgstr "ISO C ¤ÏÀ°¿ô·¿¤Î complex ¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó" + +-#: c-decl.c:3643 c-decl.c:4104 cp/decl.c:7576 ++#: c-decl.c:3648 c-decl.c:4115 cp/decl.c:7671 + msgid "duplicate `const'" + msgstr "½ÅÊ£¤·¤¿ `const'" + +-#: c-decl.c:3645 c-decl.c:4108 cp/decl.c:7580 ++#: c-decl.c:3650 c-decl.c:4119 cp/decl.c:7675 + msgid "duplicate `restrict'" + msgstr "½ÅÊ£¤·¤¿¥é¥Ù¥ë `restrict'" + +-#: c-decl.c:3647 c-decl.c:4106 cp/decl.c:7578 ++#: c-decl.c:3652 c-decl.c:4117 cp/decl.c:7673 + msgid "duplicate `volatile'" + msgstr "½ÅÊ£¤·¤¿ `volatile'" + +-#: c-decl.c:3676 cp/decl.c:7147 ++#: c-decl.c:3681 cp/decl.c:7242 + #, c-format + msgid "multiple storage classes in declaration of `%s'" + msgstr "`%s' ¤ÎÀë¸À¤Ë¤ª¤¤¤ÆÊ£¿ô¤ÎÊݸ¥¯¥é¥¹" + +-#: c-decl.c:3686 ++#: c-decl.c:3691 + msgid "function definition declared `auto'" + msgstr "´Ø¿ô¤ÎÄêµÁ¤¬ `auto' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿" + +-#: c-decl.c:3688 ++#: c-decl.c:3693 + msgid "function definition declared `register'" + msgstr "´Ø¿ô¤ÎÄêµÁ¤¬ `register' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿" + +-#: c-decl.c:3690 ++#: c-decl.c:3695 + msgid "function definition declared `typedef'" + msgstr "´Ø¿ô¤ÎÄêµÁ¤¬ `typedef' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿" + +-#: c-decl.c:3692 ++#: c-decl.c:3697 + #, fuzzy + msgid "function definition declared `__thread'" + msgstr "´Ø¿ô¤ÎÄêµÁ¤¬ `typedef' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿" + +-#: c-decl.c:3705 ++#: c-decl.c:3710 + #, c-format + msgid "storage class specified for structure field `%s'" + msgstr "¹½Â¤ÂÎ¥Õ¥£¡¼¥ë¥É `%s' ¤Ë»ØÄꤵ¤ì¤¿µ­²±¥¯¥é¥¹" + +-#: c-decl.c:3709 cp/decl.c:7192 ++#: c-decl.c:3714 cp/decl.c:7287 + #, c-format + msgid "storage class specified for parameter `%s'" + msgstr "²¾°ú¿ô `%s' ¤Ç»ØÄꤵ¤ì¤¿µ­²±¥¯¥é¥¹" + +-#: c-decl.c:3712 cp/decl.c:7194 ++#: c-decl.c:3717 cp/decl.c:7289 + msgid "storage class specified for typename" + msgstr "·¿Ì¾¤ËÂФ·¤Æ»ØÄꤵ¤ì¤¿µ­²±¥¯¥é¥¹" + +-#: c-decl.c:3724 cp/decl.c:7209 ++#: c-decl.c:3729 cp/decl.c:7304 + #, c-format + msgid "`%s' initialized and declared `extern'" + msgstr "`%s' ¤¬½é´ü²½¤µ¤ì¤ë¤È¤³¤í¤Ç¡¢`extern' Àë¸À¤µ¤ì¤Þ¤·¤¿" + +-#: c-decl.c:3726 cp/decl.c:7212 ++#: c-decl.c:3731 cp/decl.c:7307 + #, c-format + msgid "`%s' has both `extern' and initializer" + msgstr "`%s' ¤Ë `extern' ¤È½é´ü²½»Ò¤ÎξÊý¤¬¤¢¤ê¤Þ¤¹" + +-#: c-decl.c:3731 ++#: c-decl.c:3736 + #, fuzzy, c-format + msgid "file-scope declaration of `%s' specifies `auto'" + msgstr "`%s' ¤Î¥È¥Ã¥×¥ì¥Ù¥ë¤ÎÀë¸À¤¬ `auto' ¤ò»ØÄꤷ¤Þ¤¹" + +-#: c-decl.c:3736 cp/decl.c:7216 ++#: c-decl.c:3741 cp/decl.c:7311 + #, c-format + msgid "nested function `%s' declared `extern'" + msgstr "¥Í¥¹¥È¤·¤¿´Ø¿ô `%s' ¤Ï `extern' ¤ËÀë¸À¤µ¤ì¤Þ¤·¤¿" + +-#: c-decl.c:3742 cp/decl.c:7226 ++#: c-decl.c:3747 cp/decl.c:7321 + #, fuzzy, c-format + msgid "function-scope `%s' implicitly auto and declared `__thread'" + msgstr "´Ø¿ô `%s' ¤ò `mutable' ¤È¤·¤Æ¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó" +@@ -1172,476 +1177,476 @@ + #. Only the innermost declarator (making a parameter be of + #. array type which is converted to pointer type) + #. may have static or type qualifiers. +-#: c-decl.c:3781 c-decl.c:3974 ++#: c-decl.c:3786 c-decl.c:3979 + #, fuzzy + msgid "static or type qualifiers in non-parameter array declarator" + msgstr "²¾°ú¿ôÀë¸À¤ÎÃæ¤Îµ­²±¥¯¥é¥¹»ØÄê»Ò¤Ï̵¸ú¤Ç¤¹" + +-#: c-decl.c:3825 ++#: c-decl.c:3830 + #, c-format + msgid "declaration of `%s' as array of voids" + msgstr "`%s' ¤ÎÀë¸À¤Ï void ¤ÎÇÛÎó" + +-#: c-decl.c:3831 ++#: c-decl.c:3836 + #, c-format + msgid "declaration of `%s' as array of functions" + msgstr "`%s' ¤ÎÀë¸À¤Ï´Ø¿ô¤ÎÇÛÎó" + +-#: c-decl.c:3836 ++#: c-decl.c:3841 + #, fuzzy + msgid "invalid use of structure with flexible array member" + msgstr "²ÄÊÑÇÛÎó¥á¥ó¥Ð¤ò½é´ü²½¤·¤Æ¤¤¤Þ¤¹" + +-#: c-decl.c:3855 ++#: c-decl.c:3860 + #, c-format + msgid "size of array `%s' has non-integer type" + msgstr "ÇÛÎó `%s' ¤ÎÂ礭¤µ¤ÏÈóÀ°¿ô·¿" + +-#: c-decl.c:3860 ++#: c-decl.c:3865 + #, c-format + msgid "ISO C forbids zero-size array `%s'" + msgstr "ISO C ¤Ï ¥µ¥¤¥º 0 ¤ÎÇÛÎó `%s' ¤ò¶Ø¤¸¤Þ¤¹" + +-#: c-decl.c:3867 ++#: c-decl.c:3872 + #, c-format + msgid "size of array `%s' is negative" + msgstr "ÇÛÎó `%s' ¤ÎÂ礭¤µ¤¬Éé¤Ç¤¹" + +-#: c-decl.c:3880 ++#: c-decl.c:3885 + #, fuzzy, c-format + msgid "ISO C90 forbids array `%s' whose size can't be evaluated" + msgstr "ISO C89 ¤Ï¥µ¥¤¥º¤¬É¾²Á¤Ç¤­¤Ê¤¤ÇÛÎó `%s' ¤ò¶Ø¤¸¤Þ¤¹" + +-#: c-decl.c:3883 ++#: c-decl.c:3888 + #, fuzzy, c-format + msgid "ISO C90 forbids variable-size array `%s'" + msgstr "ISO C89 ¤Ï²ÄÊÑĹ¥µ¥¤¥º¤ÎÇÛÎó `%s' ¤ò¶Ø¤¸¤Þ¤¹" + +-#: c-decl.c:3913 c-decl.c:4131 cp/decl.c:7755 ++#: c-decl.c:3918 c-decl.c:4142 cp/decl.c:7850 + #, c-format + msgid "size of array `%s' is too large" + msgstr "ÇÛÎó `%s' ¤ÎÂ礭¤µ¤¬Â礭¤¹¤®¤Þ¤¹" + +-#: c-decl.c:3939 ++#: c-decl.c:3944 + #, fuzzy + msgid "ISO C90 does not support flexible array members" + msgstr "ISO C89 ¤Ï²ÄÊÑÇÛÎó¥á¥ó¥Ð¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó" + +-#: c-decl.c:3949 ++#: c-decl.c:3954 + msgid "array type has incomplete element type" + msgstr "ÇÛÎó¤Î·¿¤¬ÉÔ´°Á´Í×ÁÇ·¿¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹" + +-#: c-decl.c:3994 cp/decl.c:7347 ++#: c-decl.c:4009 cp/decl.c:7442 + #, c-format + msgid "`%s' declared as function returning a function" + msgstr "`%s' ¤Ï´Ø¿ô¤òÊÖ¤¹´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹" + +-#: c-decl.c:3999 cp/decl.c:7352 ++#: c-decl.c:4014 cp/decl.c:7447 + #, c-format + msgid "`%s' declared as function returning an array" + msgstr "`%s' ¤ÏÇÛÎó¤òÊÖ¤¹´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹" + +-#: c-decl.c:4027 ++#: c-decl.c:4038 + msgid "ISO C forbids qualified void function return type" + msgstr "ISO C ¤Ï½¤¾þÉÕ¤­ void ·¿¤ÎÌá¤êÃͤò»ý¤Ä´Ø¿ô¤ò¶Ø¤¸¤Þ¤¹" + +-#: c-decl.c:4031 ++#: c-decl.c:4042 + msgid "type qualifiers ignored on function return type" + msgstr "´Ø¿ôÌá¤êÃͤη¿½¤¾þ»Ò¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿" + +-#: c-decl.c:4060 c-decl.c:4146 c-decl.c:4270 c-decl.c:4356 ++#: c-decl.c:4071 c-decl.c:4157 c-decl.c:4281 c-decl.c:4367 + msgid "ISO C forbids qualified function types" + msgstr "ISO C ¤Ï´Ø¿ô¤Î·¿½¤¾þ»Ò¤ò¶Ø¤¸¤Þ¤¹" + +-#: c-decl.c:4100 cp/decl.c:7572 ++#: c-decl.c:4111 cp/decl.c:7667 + msgid "invalid type modifier within pointer declarator" + msgstr "¥Ý¥¤¥ó¥¿Àë¸À»Ò¤ËÉÔŬÀڤʷ¿½¤¾þ»Ò" + +-#: c-decl.c:4181 ++#: c-decl.c:4192 + msgid "ISO C forbids const or volatile function types" + msgstr "ISO C ¤Ï const ¤ä volatile ¤Î´Ø¿ô·¿¤ò¶Ø¤¸¤Þ¤¹" + +-#: c-decl.c:4201 cp/decl.c:8036 ++#: c-decl.c:4212 + #, c-format + msgid "variable or field `%s' declared void" + msgstr "ÊÑ¿ô¤Þ¤¿¤ÏÎΰè `%s' ¤Ï void ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹" + +-#: c-decl.c:4234 ++#: c-decl.c:4245 + #, fuzzy + msgid "attributes in parameter array declarator ignored" + msgstr "²¾°ú¿ôÀë¸À¤ÎÃæ¤Ç `::' ¤ò»È¤¨¤Þ¤»¤ó" + +-#: c-decl.c:4259 ++#: c-decl.c:4270 + #, fuzzy + msgid "invalid type modifier within array declarator" + msgstr "¥Ý¥¤¥ó¥¿Àë¸À»Ò¤ËÉÔŬÀڤʷ¿½¤¾þ»Ò" + +-#: c-decl.c:4304 ++#: c-decl.c:4315 + #, c-format + msgid "field `%s' declared as a function" + msgstr "Îΰè `%s' ¤Ï´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹" + +-#: c-decl.c:4310 ++#: c-decl.c:4321 + #, c-format + msgid "field `%s' has incomplete type" + msgstr "Îΰè `%s' ¤ÏÉÔ´°Á´¤Ê·¿¤Ç¤¹" + +-#: c-decl.c:4336 c-decl.c:4338 c-decl.c:4340 c-decl.c:4347 ++#: c-decl.c:4347 c-decl.c:4349 c-decl.c:4351 c-decl.c:4358 + #, c-format + msgid "invalid storage class for function `%s'" + msgstr "´Ø¿ô `%s' ¤ËÂФ·¤ÆÉÔŬÀÚ¤ÊÊݸ¥¯¥é¥¹" + +-#: c-decl.c:4362 ++#: c-decl.c:4373 + msgid "`noreturn' function returns non-void value" + msgstr "`noreturn' ´Ø¿ô¤¬Èó void ÃͤòÊÖ¤·¤Æ¤¤¤Þ¤¹" + +-#: c-decl.c:4377 ++#: c-decl.c:4388 + msgid "cannot inline function `main'" + msgstr "`main' ¤ò inline ´Ø¿ô¤Ë¤Ï¤Ç¤­¤Þ¤»¤ó" + +-#: c-decl.c:4431 ++#: c-decl.c:4442 + #, fuzzy + msgid "variable previously declared `static' redeclared `extern'" + msgstr "ÊÑ¿ô¤Þ¤¿¤ÏÎΰè `%s' ¤Ï void ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹" + +-#: c-decl.c:4440 ++#: c-decl.c:4451 + #, fuzzy + msgid "%Jvariable '%D' declared `inline'" + msgstr "ÊÑ¿ô `%s' ¤¬ `inline' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿" + + #. A mere warning is sure to result in improper semantics + #. at runtime. Don't bother to allow this to compile. +-#: c-decl.c:4468 cp/decl.c:5903 ++#: c-decl.c:4479 cp/decl.c:5972 + #, fuzzy + msgid "thread-local storage not supported for this target" + msgstr "-fdata-sections ¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¼õ¤±Æþ¤ì¤é¤ì¤Þ¤»¤ó" + +-#: c-decl.c:4529 c-decl.c:5495 ++#: c-decl.c:4540 c-decl.c:5506 + msgid "function declaration isn't a prototype" + msgstr "´Ø¿ôÀë¸À¤Ï¥×¥í¥È¥¿¥¤¥×¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: c-decl.c:4535 ++#: c-decl.c:4546 + msgid "parameter names (without types) in function declaration" + msgstr "´Ø¿ôÀë¸ÀÃæ¤Ë¡Ê·¿¤Î̵¤¤¡Ë²¾°ú¿ô̾¤¬¤¢¤ê¤Þ¤¹" + +-#: c-decl.c:4563 ++#: c-decl.c:4574 + #, c-format + msgid "parameter `%s' has incomplete type" + msgstr "²¾°ú¿ô `%s' ¤ÏÉÔ´°Á´·¿¤Ç¤¹" + +-#: c-decl.c:4566 ++#: c-decl.c:4577 + msgid "parameter has incomplete type" + msgstr "²¾°ú¿ô¤¬ÉÔ´°Á´·¿¤Ç¤¹" + +-#: c-decl.c:4615 ++#: c-decl.c:4626 + msgid "\"void\" as only parameter may not be qualified" + msgstr "" + +-#: c-decl.c:4636 ++#: c-decl.c:4647 + msgid "\"void\" must be the only parameter" + msgstr "" + +-#: c-decl.c:4653 ++#: c-decl.c:4664 + #, fuzzy + msgid "%Jparameter \"%D\" has just a forward declaration" + msgstr "²¾°ú¿ô `%s' ¾¯¤·Á°Êý¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿" + + #. The first %s will be one of 'struct', 'union', or 'enum'. +-#: c-decl.c:4681 ++#: c-decl.c:4692 + #, fuzzy, c-format + msgid "\"%s %s\" declared inside parameter list" + msgstr "`%s %s' ¤Ï²¾°ú¿ô¥ê¥¹¥ÈÆâ¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿" + + #. The %s will be one of 'struct', 'union', or 'enum'. +-#: c-decl.c:4685 ++#: c-decl.c:4696 + #, fuzzy, c-format + msgid "anonymous %s declared inside parameter list" + msgstr "̵̾¹½Â¤ÂΤ¬²¾°ú¿ô¥ê¥¹¥ÈÆâ¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿" + +-#: c-decl.c:4689 ++#: c-decl.c:4700 + #, fuzzy + msgid "its scope is only this definition or declaration, which is probably not what you want" + msgstr "¤½¤Î¥¹¥³¡¼¥×¤ÏÄêµÁ¤«Àë¸À¤À¤±¤Ç¤¹¡¢¶²¤é¤¯Ë¾¤ó¤À¤³¤È¤È°Û¤Ê¤ë¤Ç¤·¤ç¤¦¡£" + +-#: c-decl.c:4774 ++#: c-decl.c:4785 + #, fuzzy, c-format + msgid "redefinition of `union %s'" + msgstr "`%s' ¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿" + +-#: c-decl.c:4776 ++#: c-decl.c:4787 + #, fuzzy, c-format + msgid "redefinition of `struct %s'" + msgstr "`%s %s' ¤ÎºÆÄêµÁ" + +-#: c-decl.c:4844 cp/decl.c:3534 ++#: c-decl.c:4855 cp/decl.c:3548 + msgid "declaration does not declare anything" + msgstr "Àë¸À¤¬²¿¤âÀë¸À¤·¤Æ¤¤¤Þ¤»¤ó" + +-#: c-decl.c:4889 c-decl.c:4905 ++#: c-decl.c:4900 c-decl.c:4916 + #, fuzzy + msgid "%Jduplicate member '%D'" + msgstr "½ÅÊ£¤·¤¿¥á¥ó¥Ð `%s'" + +-#: c-decl.c:4939 c-decl.c:4942 ++#: c-decl.c:4950 c-decl.c:4953 + #, c-format + msgid "%s defined inside parms" + msgstr "%s¤¬²¾°ú¿ôÆâ¤ÇÄêµÁ¤µ¤ì¤Þ¤·¤¿" + +-#: c-decl.c:4940 c-decl.c:4943 c-decl.c:4954 ++#: c-decl.c:4951 c-decl.c:4954 c-decl.c:4965 + msgid "union" + msgstr "¶¦ÍÑÂÎ" + +-#: c-decl.c:4940 c-decl.c:4943 ++#: c-decl.c:4951 c-decl.c:4954 + msgid "structure" + msgstr "¹½Â¤ÂÎ" + +-#: c-decl.c:4953 ++#: c-decl.c:4964 + #, c-format + msgid "%s has no %s" + msgstr "%s¤¬%s¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó" + +-#: c-decl.c:4954 ++#: c-decl.c:4965 + msgid "struct" + msgstr "¹½Â¤ÂÎ" + +-#: c-decl.c:4955 ++#: c-decl.c:4966 + msgid "named members" + msgstr "̾Á°ÉÕ¤­¥á¥ó¥Ð" + +-#: c-decl.c:4955 ++#: c-decl.c:4966 + msgid "members" + msgstr "¥á¥ó¥Ð" + +-#: c-decl.c:4994 ++#: c-decl.c:5005 + #, c-format + msgid "nested redefinition of `%s'" + msgstr "`%s' ¤Î¥Í¥¹¥È¤·¤¿ºÆÄêµÁ" + +-#: c-decl.c:5015 ++#: c-decl.c:5026 + #, fuzzy + msgid "%Jflexible array member in union" + msgstr "¶¦ÍÑÂΤ˲ÄÊÑÇÛÎó¥á¥ó¥Ð¤¬¤¢¤ê¤Þ¤¹" + +-#: c-decl.c:5020 ++#: c-decl.c:5031 + #, fuzzy + msgid "%Jflexible array member not at end of struct" + msgstr "¹½Â¤ÂΤκǸå¤Ç¤Ï¤Ê¤¤½ê¤Ë²ÄÊÑÇÛÎó¥á¥ó¥Ð¤¬¤¢¤ê¤Þ¤¹" + +-#: c-decl.c:5025 ++#: c-decl.c:5036 + #, fuzzy + msgid "%Jflexible array member in otherwise empty struct" + msgstr "¹½Â¤ÂΤ˲ÄÊÑÇÛÎó¥á¥ó¥Ð°Ê³°¤Î¥á¥ó¥Ð¤¬¤¢¤ê¤Þ¤»¤ó" + +-#: c-decl.c:5032 ++#: c-decl.c:5043 + #, fuzzy + msgid "%Jinvalid use of structure with flexible array member" + msgstr "²ÄÊÑÇÛÎó¥á¥ó¥Ð¤ò½é´ü²½¤·¤Æ¤¤¤Þ¤¹" + +-#: c-decl.c:5127 ++#: c-decl.c:5138 + msgid "union cannot be made transparent" + msgstr "¶¦ÍÑÂΤòÆ©²áŪ¤Ë¤Ç¤­¤Þ¤»¤ó" + + #. This enum is a named one that has been declared already. +-#: c-decl.c:5196 ++#: c-decl.c:5207 + #, c-format + msgid "redeclaration of `enum %s'" + msgstr "`enum %s' ¤ÎºÆÀë¸À" + +-#: c-decl.c:5227 ++#: c-decl.c:5238 + msgid "enum defined inside parms" + msgstr "²¾°ú¿ôÆâ¤Ç enum ¤¬ÄêµÁ¤µ¤ì¤Þ¤·¤¿" + +-#: c-decl.c:5260 ++#: c-decl.c:5271 + msgid "enumeration values exceed range of largest integer" + msgstr "Îóµó»Ò¤ÎÃͤ¬À°¿ô¤ÎÈϰϤκÇÂçÃͤòĶ¤¨¤Þ¤·¤¿" + +-#: c-decl.c:5363 ++#: c-decl.c:5374 + #, c-format + msgid "enumerator value for `%s' not integer constant" + msgstr "`%s' ¤ÎÎóµóÃͤ¬À°¿ôÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: c-decl.c:5376 ++#: c-decl.c:5387 + msgid "overflow in enumeration values" + msgstr "ÎóµóÃͤ¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼" + +-#: c-decl.c:5381 ++#: c-decl.c:5392 + msgid "ISO C restricts enumerator values to range of `int'" + msgstr "ISO C ¤ÏÎóµó»Ò¤ÎÃͤò `int' ¤ÎÈϰϤ˸ÂÄꤷ¤Æ¤¤¤Þ¤¹" + +-#: c-decl.c:5457 ++#: c-decl.c:5468 + msgid "return type is an incomplete type" + msgstr "Ìá¤êÃͤη¿¤¬ÉÔ´°Á´·¿¤Ç¤¹" + +-#: c-decl.c:5465 ++#: c-decl.c:5476 + msgid "return type defaults to `int'" + msgstr "Ìá¤êÃͤη¿¤ò¥Ç¥Õ¥©¥ë¥È¤Î `int' ¤È¤·¤Þ¤¹" + +-#: c-decl.c:5501 ++#: c-decl.c:5512 + #, fuzzy + msgid "%Jno previous prototype for '%D'" + msgstr "`%s' ¤ÎÁ°Êý¥×¥í¥È¥¿¥¤¥×¤¬¤¢¤ê¤Þ¤»¤ó" + +-#: c-decl.c:5507 ++#: c-decl.c:5518 + #, fuzzy + msgid "%J'%D' was used with no prototype before its definition" + msgstr "`%s' ¤Ï¤½¤ÎÄêµÁ¤ÎÁ°¤Ë¥×¥í¥È¥¿¥¤¥×¤Ê¤·¤Ç»È¤ï¤ì¤Þ¤·¤¿" + +-#: c-decl.c:5514 ++#: c-decl.c:5525 + #, fuzzy + msgid "%Jno previous declaration for '%D'" + msgstr "`%s' ¤ÎÁ°ÊýÀë¸À¤¬¤¢¤ê¤Þ¤»¤ó" + +-#: c-decl.c:5520 ++#: c-decl.c:5531 + #, fuzzy + msgid "%J`%D' was used with no declaration before its definition" + msgstr "`%s' ¤Ï¤½¤ÎÄêµÁ¤ÎÁ°¤ÇÀë¸À¤Ê¤·¤Ç»ÈÍѤµ¤ì¤Þ¤·¤¿" + +-#: c-decl.c:5556 c-decl.c:6062 ++#: c-decl.c:5567 c-decl.c:6073 + #, fuzzy + msgid "%Jreturn type of '%D' is not `int'" + msgstr "`%s' ¤ÎÌá¤êÃͤη¿¤¬ `int' ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: c-decl.c:5571 ++#: c-decl.c:5582 + #, fuzzy + msgid "%Jfirst argument of '%D' should be `int'" + msgstr "`%s' ¤ÎÂè°ì°ú¿ô¤Ï `int' ¤È¤¹¤Ù¤­¤Ç¤¹" + +-#: c-decl.c:5580 ++#: c-decl.c:5591 + #, fuzzy + msgid "%Jsecond argument of '%D' should be 'char **'" + msgstr "`%s' ¤ÎÂèÆó°ú¿ô¤Ï `char **' ¤È¤¹¤Ù¤­¤Ç¤¹" + +-#: c-decl.c:5589 ++#: c-decl.c:5600 + #, fuzzy + msgid "%Jthird argument of '%D' should probably be 'char **'" + msgstr "`%s' ¤ÎÂè»°°ú¿ô¤Ï¤ª¤½¤é¤¯ `char **' ¤È¤¹¤Ù¤­¤Ç¤·¤ç¤¦" + +-#: c-decl.c:5599 ++#: c-decl.c:5610 + #, fuzzy + msgid "%J'%D' takes only zero or two arguments" + msgstr "`%s' ¤Ï 0 ¤« 2 ¸Ä¤Î°ú¿ô¤·¤«¤È¤ê¤Þ¤»¤ó" + +-#: c-decl.c:5602 ++#: c-decl.c:5613 + #, fuzzy + msgid "%J'%D' is normally a non-static function" + msgstr "`%s' ¤ÏÄ̾Èó static ¤Ê´Ø¿ô¤Ç¤¹" + +-#: c-decl.c:5658 ++#: c-decl.c:5669 + msgid "%Jold-style parameter declarations in prototyped function definition" + msgstr "" + +-#: c-decl.c:5672 ++#: c-decl.c:5683 + #, fuzzy + msgid "%Jparameter name omitted" + msgstr "²¾°ú¿ô¤¬¾Êά¤µ¤ì¤Þ¤·¤¿" + +-#: c-decl.c:5747 ++#: c-decl.c:5758 + #, fuzzy + msgid "%Jparameter name missing from parameter list" + msgstr "²¾°ú¿ô¥ê¥¹¥È¤«¤é¤Î²¾°ú¿ô̾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹" + +-#: c-decl.c:5757 ++#: c-decl.c:5768 + #, fuzzy + msgid "%J\"%D\" declared as a non-parameter" + msgstr "`%s %s' ¤Ï²¾°ú¿ô¥ê¥¹¥ÈÆâ¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿" + +-#: c-decl.c:5762 ++#: c-decl.c:5773 + #, fuzzy + msgid "%Jmultiple parameters named \"%D\"" + msgstr "½ÅÊ£¤·¤¿²¾°ú¿ô̾ `%s'" + +-#: c-decl.c:5770 ++#: c-decl.c:5781 + #, fuzzy + msgid "%Jparameter \"%D\" declared void" + msgstr "²¾°ú¿ô `%s' ¤¬ void ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹" + +-#: c-decl.c:5785 c-decl.c:5787 ++#: c-decl.c:5796 c-decl.c:5798 + #, fuzzy + msgid "%Jtype of \"%D\" defaults to \"int\"" + msgstr "`%s' ¤Î·¿¤ò¥Ç¥Õ¥©¥ë¥È¤Î `int' ¤È¤·¤Þ¤¹" + +-#: c-decl.c:5801 ++#: c-decl.c:5812 + #, fuzzy + msgid "%Jparameter \"%D\" has incomplete type" + msgstr "²¾°ú¿ô¤¬ÉÔ´°Á´·¿¤Ç¤¹" + +-#: c-decl.c:5807 ++#: c-decl.c:5818 + #, fuzzy + msgid "%Jdeclaration for parameter \"%D\" but no such parameter" + msgstr "²¾°ú¿ô `%s' ¤ÎÀë¸À¤¬¤¢¤ê¤Þ¤¹¤¬¡¢¤½¤ó¤Ê²¾°ú¿ô¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: c-decl.c:5859 ++#: c-decl.c:5870 + msgid "number of arguments doesn't match prototype" + msgstr "²¾°ú¿ô¤Î¿ô¤¬¥×¥í¥È¥¿¥¤¥×¤È°ìÃפ·¤Þ¤»¤ó" + +-#: c-decl.c:5860 c-decl.c:5891 c-decl.c:5898 ++#: c-decl.c:5871 c-decl.c:5902 c-decl.c:5909 + #, fuzzy + msgid "%Hprototype declaration" + msgstr "¶õ¤ÎÀë¸À¤Ç¤¹" + +-#: c-decl.c:5889 ++#: c-decl.c:5900 + #, fuzzy + msgid "promoted argument \"%D\" doesn't match prototype" + msgstr "³Ê¾å¤²¤µ¤ì¤¿²¾°ú¿ô `%s' ¤Ï¥×¥í¥È¥¿¥¤¥×¤È°ìÃפ·¤Þ¤»¤ó" + +-#: c-decl.c:5897 ++#: c-decl.c:5908 + #, fuzzy + msgid "argument \"%D\" doesn't match prototype" + msgstr "²¾°ú¿ô `%s' ¤Ï¥×¥í¥È¥¿¥¤¥×¤Ë°ìÃפ·¤Þ¤»¤ó" + +-#: c-decl.c:6094 cp/decl.c:10857 ++#: c-decl.c:6105 cp/decl.c:10954 + #, fuzzy + msgid "no return statement in function returning non-void" + msgstr "Ìá¤ê·¿¤¬´Ø¿ô¤Ç¡¢`return' ¤ËÃͤ¬¤¢¤ê¤Þ¤»¤ó" + +-#: c-decl.c:6101 ++#: c-decl.c:6112 + msgid "this function may return with or without a value" + msgstr "¤³¤Î´Ø¿ô¤ÏÃͤòÊÖ¤·¤¿¤êÊÖ¤µ¤Ê¤«¤Ã¤¿¤ê¤¹¤ë¤Ç¤·¤ç¤¦" + + #. If we get here, declarations have been used in a for loop without + #. the C99 for loop scope. This doesn't make much sense, so don't + #. allow it. +-#: c-decl.c:6200 ++#: c-decl.c:6211 + #, fuzzy + msgid "'for' loop initial declaration used outside C99 mode" + msgstr "`for' ¥ë¡¼¥×¤Î½é´ü²½Àë¸À¤¬ C99 ¥â¡¼¥É°Ê³°¤Ç»È¤ï¤ì¤Þ¤·¤¿" + +-#: c-decl.c:6224 ++#: c-decl.c:6235 + #, fuzzy, c-format + msgid "'struct %s' declared in 'for' loop initial declaration" + msgstr "`%s %s' ¤¬ `for' ¥ë¡¼¥×½é´ü²½Àë¸ÀÆâ¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿" + +-#: c-decl.c:6227 ++#: c-decl.c:6238 + #, fuzzy, c-format + msgid "'union %s' declared in 'for' loop initial declaration" + msgstr "`%s %s' ¤¬ `for' ¥ë¡¼¥×½é´ü²½Àë¸ÀÆâ¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿" + +-#: c-decl.c:6230 ++#: c-decl.c:6241 + #, fuzzy, c-format + msgid "'enum %s' declared in 'for' loop initial declaration" + msgstr "`%s %s' ¤¬ `for' ¥ë¡¼¥×½é´ü²½Àë¸ÀÆâ¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿" + +-#: c-decl.c:6238 ++#: c-decl.c:6249 + #, fuzzy + msgid "%Jdeclaration of non-variable '%D' in 'for' loop initial declaration" + msgstr "ÈóÊÑ¿ô `%s' ¤ÎÀë¸À¤¬ `for' ¥ë¡¼¥×½é´ü²½Àë¸À¤ÎÃæ¤Ë¤¢¤ê¤Þ¤¹" + +-#: c-decl.c:6241 ++#: c-decl.c:6252 + #, fuzzy + msgid "%Jdeclaration of static variable '%D' in 'for' loop initial declaration" + msgstr "¥¹¥¿¥Æ¥£¥Ã¥¯ÊÑ¿ô `%s' ¤ÎÀë¸À¤¬ `for' ¥ë¡¼¥×½é´ü²½Àë¸ÀÆâ¤Ë¤¢¤ê¤Þ¤¹" + +-#: c-decl.c:6244 ++#: c-decl.c:6255 + #, fuzzy + msgid "%Jdeclaration of 'extern' variable '%D' in 'for' loop initial declaration" + msgstr "`extern' ÊÑ¿ô `%s' ¤ÎÀë¸À¤¬ `for' ¥ë¡¼¥×½é´ü²½Àë¸ÀÆâ¤Ë¤¢¤ê¤Þ¤¹" + +-#: c-decl.c:6557 ++#: c-decl.c:6568 + #, fuzzy + msgid "%Jredefinition of global '%D'" + msgstr "`%s' ¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿" + +-#: c-decl.c:6558 ++#: c-decl.c:6569 + #, fuzzy + msgid "%J'%D' previously defined here" + msgstr "`%s' ¤ÏÁ°¤Ë¤³¤³¤ÇÄêµÁ¤µ¤ì¤Þ¤·¤¿" +@@ -2284,95 +2289,95 @@ + msgid "missing makefile target after \"%s\"" + msgstr "Àµ¼°¤Ê²¾°ú¿ô¹à¤ò·ç¤¤¤Æ¤¤¤Þ¤¹" + +-#: c-opts.c:291 ++#: c-opts.c:299 + msgid "-I- specified twice" + msgstr "-I- ¤¬Æó²ó»ØÄꤵ¤ì¤Þ¤·¤¿" + +-#: c-opts.c:692 ++#: c-opts.c:700 + #, fuzzy, c-format + msgid "switch \"%s\" is no longer supported" + msgstr "-f%s ¤Ï¤â¤Ï¤ä¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó" + +-#: c-opts.c:812 ++#: c-opts.c:820 + #, fuzzy + msgid "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)" + msgstr "-fhandle-exceptions ¤Ï -fexception ¤ËÊѹ¹¤µ¤ì¤Þ¤·¤¿(¤µ¤é¤Ë¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ç¤¹)" + +-#: c-opts.c:978 ++#: c-opts.c:986 + #, fuzzy + msgid "output filename specified twice" + msgstr "½ÐÎÏ¥Õ¥¡¥¤¥ë̾¤¬Æó²ó»ØÄꤵ¤ì¤Þ¤·¤¿" + +-#: c-opts.c:1107 ++#: c-opts.c:1115 + msgid "-Wformat-y2k ignored without -Wformat" + msgstr "-Wformat-y2k ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿¡Ê-Wformat ¤¬¤¢¤ê¤Þ¤»¤ó¡Ë" + +-#: c-opts.c:1109 ++#: c-opts.c:1117 + msgid "-Wformat-extra-args ignored without -Wformat" + msgstr "-Wformat-extra-args ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿¡Ê-Wformat ¤¬¤¢¤ê¤Þ¤»¤ó¡Ë" + +-#: c-opts.c:1111 ++#: c-opts.c:1119 + #, fuzzy + msgid "-Wformat-zero-length ignored without -Wformat" + msgstr "-Wformat-extra-args ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿¡Ê-Wformat ¤¬¤¢¤ê¤Þ¤»¤ó¡Ë" + +-#: c-opts.c:1113 ++#: c-opts.c:1121 + msgid "-Wformat-nonliteral ignored without -Wformat" + msgstr "-Wformat-nonliteral ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿¡Ê-Wformat ¤¬¤¢¤ê¤Þ¤»¤ó¡Ë" + +-#: c-opts.c:1115 ++#: c-opts.c:1123 + msgid "-Wformat-security ignored without -Wformat" + msgstr "-Wformat-security ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿¡Ê-Wformat ¤¬¤¢¤ê¤Þ¤»¤ó¡Ë" + +-#: c-opts.c:1117 ++#: c-opts.c:1125 + msgid "-Wmissing-format-attribute ignored without -Wformat" + msgstr "-Wmissing-format-attribute ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿¡Ê-Wformat ¤¬¤¢¤ê¤Þ¤»¤ó¡Ë" + +-#: c-opts.c:1131 ++#: c-opts.c:1139 + #, fuzzy, c-format + msgid "opening output file %s: %m" + msgstr "½ÐÎÏ¥Õ¥¡¥¤¥ë `%s' ¤ò open ¤Ç¤­¤Þ¤»¤ó" + +-#: c-opts.c:1136 ++#: c-opts.c:1144 + #, fuzzy, c-format + msgid "too many filenames given. Type %s --help for usage" + msgstr "¥Õ¥¡¥¤¥ë̾¤¬Â¿¤¹¤®¤Þ¤¹¡£%s --help ¤È¥¿¥¤¥×¤·¤Æ»È¤¤Êý¤ò¸«¤Þ¤·¤ç¤¦" + +-#: c-opts.c:1215 ++#: c-opts.c:1223 + #, fuzzy + msgid "YYDEBUG not defined" + msgstr "YYDEBUG ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" + +-#: c-opts.c:1261 ++#: c-opts.c:1269 + #, c-format + msgid "opening dependency file %s: %m" + msgstr "" + +-#: c-opts.c:1271 ++#: c-opts.c:1279 + #, c-format + msgid "closing dependency file %s: %m" + msgstr "" + +-#: c-opts.c:1274 ++#: c-opts.c:1282 + #, fuzzy, c-format + msgid "when writing output to %s: %m" + msgstr "%s ¤Ø¤Î½ñ¤­¹þ¤ß¥¨¥é¡¼¤Ç¤¹" + +-#: c-opts.c:1344 ++#: c-opts.c:1352 + #, fuzzy + msgid "to generate dependencies you must specify either -M or -MM" + msgstr "-M ¤« -MM ¤Î¤¤¤º¤ì¤«¤òÄɲÃŪ¤Ë»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó" + +-#: c-opts.c:1404 ++#: c-opts.c:1412 + #, fuzzy + msgid "" + msgstr "<ÁȤ߹þ¤ß>" + +-#: c-opts.c:1419 ++#: c-opts.c:1427 + msgid "" + msgstr "<¥³¥Þ¥ó¥É¥é¥¤¥ó>" + +-#: c-opts.c:1503 ++#: c-opts.c:1511 + msgid "too late for # directive to set debug directory" + msgstr "" + +@@ -2389,7 +2394,7 @@ + msgid "ISO C forbids an empty source file" + msgstr "ISO C ¤Ï¶õ¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ò¶Ø¤¸¤Þ¤¹" + +-#: c-parse.y:349 c-typeck.c:6248 objc/objc-parse.y:374 ++#: c-parse.y:349 c-typeck.c:6228 objc/objc-parse.y:374 + msgid "argument of `asm' is not a constant string" + msgstr "`asm' ¤Î°ú¿ô¤¬Äê¿ôʸ»úÎó¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó " + +@@ -2405,7 +2410,7 @@ + msgid "ISO C does not allow extra `;' outside of a function" + msgstr "ISO C ¤Ç¤Ï´Ø¿ô³°¤Ç¤Î;ʬ¤Ê `;' ¤òµö¤·¤Þ¤»¤ó" + +-#: c-parse.y:429 cppexp.c:1253 ++#: c-parse.y:429 cppexp.c:1257 + msgid "traditional C rejects the unary plus operator" + msgstr "¸Å¤¤ C ¤Ç¤Ïñ¹à¥×¥é¥¹±é»»»Ò¤òµñÈݤ·¤Þ¤¹" + +@@ -2488,7 +2493,7 @@ + msgid "ISO C forbids forward references to `enum' types" + msgstr "ISO C ¤Ï `enum' ·¿¤ÎÁ°Êý»²¾È¤ò¶Ø¤¸¤Þ¤¹" + +-#: c-parse.y:1703 cp/parser.c:9339 objc/objc-parse.y:1755 ++#: c-parse.y:1703 cp/parser.c:9383 objc/objc-parse.y:1755 + msgid "comma at end of enumerator list" + msgstr "Îóµó»Ò¥ê¥¹¥È¤ÎºÇ¸å¤Ë¥«¥ó¥Þ¤¬¤¢¤ê¤Þ¤¹" + +@@ -2496,7 +2501,7 @@ + msgid "no semicolon at end of struct or union" + msgstr "struct ¤ä union ¤ÎºÇ¸å¤Ë¥»¥ß¥³¥í¥ó¤¬¤¢¤ê¤Þ¤»¤ó" + +-#: c-parse.y:1732 objc/objc-parse.y:1784 objc/objc-parse.y:2847 ++#: c-parse.y:1732 objc/objc-parse.y:1784 objc/objc-parse.y:2846 + msgid "extra semicolon in struct or union specified" + msgstr "struct ¤ä union ¤ÎÃæ¤Ç;ʬ¤Ê¥»¥ß¥³¥í¥ó¤¬»ØÄꤵ¤ì¤Þ¤·¤¿" + +@@ -2526,24 +2531,24 @@ + msgid "braced-group within expression allowed only inside a function" + msgstr "¥Ö¥ì¡¼¥¹¤Ç¤Þ¤È¤á¤é¤ì¤¿¼°¤Ï´Ø¿ô¤ÎÆ⦤ǤΤߵö¤µ¤ì¤Þ¤¹" + +-#: c-parse.y:2185 objc/objc-parse.y:2242 ++#: c-parse.y:2185 objc/objc-parse.y:2241 + msgid "empty body in an else-statement" + msgstr "else ʸ¤ÎÃæ¿È¤¬¶õ¤Ç¤¹" + +-#: c-parse.y:2193 objc/objc-parse.y:2250 ++#: c-parse.y:2193 objc/objc-parse.y:2249 + #, fuzzy + msgid "%Hempty body in an if-statement" + msgstr "else ʸ¤ÎÃæ¿È¤¬¶õ¤Ç¤¹" + +-#: c-parse.y:2273 cp/parser.c:6050 objc/objc-parse.y:2330 ++#: c-parse.y:2273 cp/parser.c:6088 objc/objc-parse.y:2329 + msgid "break statement not within loop or switch" + msgstr "break ʸ¤¬ loop ¤Þ¤¿¤Ï switch ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó" + +-#: c-parse.y:2282 cp/parser.c:6061 objc/objc-parse.y:2339 ++#: c-parse.y:2282 cp/parser.c:6099 objc/objc-parse.y:2338 + msgid "continue statement not within a loop" + msgstr "continue ʸ¤¬ loop ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó" + +-#: c-parse.y:2324 objc/objc-parse.y:2381 ++#: c-parse.y:2324 objc/objc-parse.y:2380 + msgid "ISO C forbids `goto *expr;'" + msgstr "ISO C `goto *¼°;' ¤Î½ñ¤­Êý¤ò¶Ø¤¸¤Þ¤¹" + +@@ -2553,11 +2558,11 @@ + #. it caused problems with the code in expand_builtin which + #. tries to verify that BUILT_IN_NEXT_ARG is being used + #. correctly. +-#: c-parse.y:2441 objc/objc-parse.y:2549 ++#: c-parse.y:2441 objc/objc-parse.y:2548 + msgid "ISO C requires a named argument before `...'" + msgstr "ISO C ¤Ï `...' ¤ÎÁ°¤Ë̾Á°¤ò¤Ä¤±¤é¤ì¤¿°ú¿ô¤òÍ׵ᤷ¤Þ¤¹" + +-#: c-parse.y:2539 objc/objc-parse.y:2647 ++#: c-parse.y:2539 objc/objc-parse.y:2646 + msgid "`...' in old-style identifier list" + msgstr "¸Å¤¤¥¹¥¿¥¤¥ë¤Î¼±Ê̻ҥꥹ¥È¤Ç¤Î `...'" + +@@ -2574,7 +2579,7 @@ + msgid "parser stack overflow" + msgstr "¹½Ê¸²òÀÏ´ï¤Î¥¹¥¿¥Ã¥¯¤¬°î¤ì¤Þ¤·¤¿" + +-#: c-parse.y:2969 objc/objc-parse.y:3664 ++#: c-parse.y:2969 objc/objc-parse.y:3663 + #, c-format + msgid "syntax error at '%s' token" + msgstr "'%s' ¥È¡¼¥¯¥ó¤Î½ê¤Çʸˡ¥¨¥é¡¼" +@@ -2656,7 +2661,7 @@ + msgid "%s: had text segment at different address" + msgstr "" + +-#: c-pch.c:357 cpperror.c:176 gcc.c:6554 ++#: c-pch.c:357 cpperror.c:176 gcc.c:6557 + #, c-format + msgid "%s: %s" + msgstr "%s: %s" +@@ -2780,12 +2785,12 @@ + msgid "(enclose actions of previous case statements requiring destructors in their own scope.)" + msgstr "(Á°¤Î case ʸ¤Î°Ï¤¤¹þ¤Þ¤ì¤¿Æ°ºî¤Ï¤½¤ì¼«¿È¤Î¥¹¥³¡¼¥×¤Ç¥Ç¥¹¥È¥é¥¯¥¿¤òÍ׵ᤷ¤Þ¤¹)" + +-#: c-semantics.c:737 c-typeck.c:6270 cp/semantics.c:1070 ++#: c-semantics.c:737 c-typeck.c:6250 cp/semantics.c:1070 + #, c-format + msgid "%s qualifier ignored on asm" + msgstr "asm ¤Ç¤Ï %s ½¤¾þ»Ò¤¬Ìµ»ë¤µ¤ì¤Þ¤¹" + +-#: c-semantics.c:991 ++#: c-semantics.c:993 + #, fuzzy + msgid "will never be executed" + msgstr "¸Æ¤Ó½Ð¤· %d ¤Ï°ìÅÙ¤â¼Â¹Ô¤»¤º\n" +@@ -2795,7 +2800,7 @@ + msgid "`%s' has an incomplete type" + msgstr "`%s' ¤ÏÉÔ´°Á´·¿¤Ç¤¹" + +-#: c-typeck.c:145 cp/call.c:2532 ++#: c-typeck.c:145 cp/call.c:2542 + msgid "invalid use of void expression" + msgstr "void ¼°¤ÎÉÔŬÀڤʻÈÍÑ" + +@@ -2832,766 +2837,766 @@ + msgid "function return types not compatible due to `volatile'" + msgstr "´Ø¿ô¤ÎÊÖ¤¹·¿¤¬´Ø¿ô¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó" + +-#: c-typeck.c:984 c-typeck.c:2176 ++#: c-typeck.c:984 c-typeck.c:2156 + msgid "arithmetic on pointer to an incomplete type" + msgstr "ÉÔ´°Á´·¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤ËÂФ¹¤ë±é»»" + +-#: c-typeck.c:1357 ++#: c-typeck.c:1337 + #, c-format + msgid "%s has no member named `%s'" + msgstr "%s ¤Ë `%s' ¤È¤¤¤¦Ì¾Á°¤Î¥á¥ó¥Ð¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: c-typeck.c:1393 ++#: c-typeck.c:1373 + #, c-format + msgid "request for member `%s' in something not a structure or union" + msgstr "¹½Â¤ÂΤǤⶦÍÑÂΤǤâ¤Ê¤¤²¿¤«¤Ç¡¢¥á¥ó¥Ð `%s' ¤òÍ׵ᤵ¤ì¤Þ¤·¤¿" + +-#: c-typeck.c:1422 ++#: c-typeck.c:1402 + msgid "dereferencing pointer to incomplete type" + msgstr "ÉÔ´°Á´·¿¤Î¥Ý¥¤¥ó¥¿¤Ø¤Î´ÖÀÜ»²¾È" + +-#: c-typeck.c:1426 ++#: c-typeck.c:1406 + msgid "dereferencing `void *' pointer" + msgstr "`void *' ¥Ý¥¤¥ó¥¿¤Ø¤Î´ÖÀÜ»²¾È¤Ç¤¹" + +-#: c-typeck.c:1443 cp/typeck.c:2127 ++#: c-typeck.c:1423 cp/typeck.c:2127 + #, c-format + msgid "invalid type argument of `%s'" + msgstr "`%s' ¤Î°ú¿ô¤È¤·¤Æ̵¸ú¤Ê·¿" + +-#: c-typeck.c:1461 cp/typeck.c:2152 ++#: c-typeck.c:1441 cp/typeck.c:2152 + msgid "subscript missing in array reference" + msgstr "ÇÛÎ󻲾ȤǤÎź»ú¤ò·ç¤¤¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:1482 cp/typeck.c:2194 ++#: c-typeck.c:1462 cp/typeck.c:2194 + msgid "array subscript has type `char'" + msgstr "ÇÛÎó¤Îź»ú¤¬ `char' ·¿¤Ç¤¹" + +-#: c-typeck.c:1490 c-typeck.c:1579 cp/typeck.c:2198 cp/typeck.c:2284 ++#: c-typeck.c:1470 c-typeck.c:1559 cp/typeck.c:2198 cp/typeck.c:2284 + msgid "array subscript is not an integer" + msgstr "ÇÛÎó¤Îź»ú¤¬À°¿ô·¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: c-typeck.c:1523 ++#: c-typeck.c:1503 + msgid "ISO C forbids subscripting `register' array" + msgstr "ISO C ¤Ï `register' ÇÛÎó¤Ø¤Îź»ú¤ò¶Ø¤¸¤Þ¤¹" + +-#: c-typeck.c:1525 ++#: c-typeck.c:1505 + #, fuzzy + msgid "ISO C90 forbids subscripting non-lvalue array" + msgstr "ISO C89 Èóº¸ÊÕÃÍÇÛÎó¤Ø¤Îź»ú¤ò¶Ø¤¸¤Þ¤¹" + +-#: c-typeck.c:1558 ++#: c-typeck.c:1538 + msgid "subscript has type `char'" + msgstr "ź»ú¤¬ `char' ·¿¤ò¤â¤Á¤Þ¤¹" + +-#: c-typeck.c:1574 cp/typeck.c:2279 ++#: c-typeck.c:1554 cp/typeck.c:2279 + msgid "subscripted value is neither array nor pointer" + msgstr "ź»ú¤ò¤Ä¤±¤é¤ì¤¿Ãͤ¬ÇÛÎó¤Ç¤â¥Ý¥¤¥ó¥¿¤Ç¤â¤¢¤ê¤Þ¤»¤ó" + +-#: c-typeck.c:1604 ++#: c-typeck.c:1584 + #, c-format + msgid "local declaration of `%s' hides instance variable" + msgstr "`%s' ¤Î¥í¡¼¥«¥ëÀë¸À¤Ç¡¢¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤¬±£¤µ¤ì¤Þ¤¹" + +-#: c-typeck.c:1697 ++#: c-typeck.c:1677 + msgid "called object is not a function" + msgstr "¸Æ¤Ó½Ð¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Ï´Ø¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + + #. This situation leads to run-time undefined behavior. We can't, + #. therefore, simply error unless we can prove that all possible + #. executions of the program must execute the code. +-#: c-typeck.c:1729 ++#: c-typeck.c:1709 + #, fuzzy + msgid "function called through a non-compatible type" + msgstr "sizeof ¤¬ÉÔ´°Á´¤Ê·¿¤ËŬÍѤµ¤ì¤Þ¤·¤¿" + +-#: c-typeck.c:1787 c-typeck.c:4198 c-typeck.c:4200 c-typeck.c:4216 +-#: c-typeck.c:4237 c-typeck.c:5616 ++#: c-typeck.c:1767 c-typeck.c:4178 c-typeck.c:4180 c-typeck.c:4196 ++#: c-typeck.c:4217 c-typeck.c:5596 + msgid "initializer element is not constant" + msgstr "½é´ü²½»Ò¤ÎÍ×ÁǤ¬Äê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: c-typeck.c:1838 cp/typeck.c:2567 ++#: c-typeck.c:1818 cp/typeck.c:2567 + msgid "too many arguments to function" + msgstr "´Ø¿ô¤ËÂФ¹¤ë°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹" + +-#: c-typeck.c:1859 ++#: c-typeck.c:1839 + #, c-format + msgid "type of formal parameter %d is incomplete" + msgstr "Àµ¼°¤Ê²¾°ú¿ô %d ¤Î·¿¤¬ÉÔ´°Á´¤Ç¤¹" + +-#: c-typeck.c:1872 ++#: c-typeck.c:1852 + #, c-format + msgid "%s as integer rather than floating due to prototype" + msgstr "¥×¥í¥È¥¿¥¤¥×¤Ë¤è¤ë¤È %s ¤ÏÉâÆ°¾®¿ô·¿¤Ç¤Ï¤Ê¤¯À°¿ô·¿¤È¤µ¤ì¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:1875 ++#: c-typeck.c:1855 + #, c-format + msgid "%s as integer rather than complex due to prototype" + msgstr "¥×¥í¥È¥¿¥¤¥×¤Ë¤è¤ë¤È %s ¤ÏÊ£ÁÇ¿ô¤Ç¤Ï¤Ê¤¯À°¿ô·¿¤È¤µ¤ì¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:1878 ++#: c-typeck.c:1858 + #, c-format + msgid "%s as complex rather than floating due to prototype" + msgstr "¥×¥í¥È¥¿¥¤¥×¤Ë¤è¤ë¤È %s ¤ÏÉâÆ°¾®¿ô·¿¤Ç¤Ï¤Ê¤¯Ê£ÁÇ¿ô·¿¤È¤µ¤ì¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:1881 ++#: c-typeck.c:1861 + #, c-format + msgid "%s as floating rather than integer due to prototype" + msgstr "¥×¥í¥È¥¿¥¤¥×¤Ë¤è¤ë¤È %s ¤ÏÀ°¿ô·¿¤Ç¤Ï¤Ê¤¯ÉâÆ°¾®¿ô·¿¤È¤µ¤ì¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:1884 ++#: c-typeck.c:1864 + #, c-format + msgid "%s as complex rather than integer due to prototype" + msgstr "¥×¥í¥È¥¿¥¤¥×¤Ë¤è¤ë¤È %s ¤ÏÀ°¿ô·¿¤Ç¤Ï¤Ê¤¯Ê£ÁÇ¿ô·¿¤È¤µ¤ì¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:1887 ++#: c-typeck.c:1867 + #, c-format + msgid "%s as floating rather than complex due to prototype" + msgstr "¥×¥í¥È¥¿¥¤¥×¤Ë¤è¤ë¤È %s ¤ÏÊ£ÁÇ¿ô¤Ç¤Ï¤Ê¤¯ÉâÆ°¾®¿ô·¿¤È¤µ¤ì¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:1897 ++#: c-typeck.c:1877 + #, c-format + msgid "%s as `float' rather than `double' due to prototype" + msgstr "¥×¥í¥È¥¿¥¤¥×¤Ë¤è¤ë¤È %s ¤Ï `double' ¤Ç¤Ê¤¯ `float' ¤È¤µ¤ì¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:1915 ++#: c-typeck.c:1895 + #, c-format + msgid "%s with different width due to prototype" + msgstr "%s ¤Ï¥×¥í¥È¥¿¥¤¥×¤Ç¤Î·¿¤ÎÉý¤È¤Ï°Û¤Ê¤Ã¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:1941 ++#: c-typeck.c:1921 + #, c-format + msgid "%s as unsigned due to prototype" + msgstr "¥×¥í¥È¥¿¥¤¥×¤Ë¤è¤ê %s ¤ÏÉä¹ç¤Ê¤·¤È¤µ¤ì¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:1943 ++#: c-typeck.c:1923 + #, c-format + msgid "%s as signed due to prototype" + msgstr "¥×¥í¥È¥¿¥¤¥×¤Ë¤è¤ê %s ¤ÏÉä¹çÉÕ¤­¤È¤µ¤ì¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:1977 cp/typeck.c:2673 ++#: c-typeck.c:1957 cp/typeck.c:2673 + msgid "too few arguments to function" + msgstr "´Ø¿ô¤Ø¤Î°ú¿ô¤¬¾¯¤Ê¤¹¤®¤Þ¤¹" + +-#: c-typeck.c:2017 ++#: c-typeck.c:1997 + msgid "suggest parentheses around + or - inside shift" + msgstr "¥·¥Õ¥ÈÃæ¤Î + ¤ä - ¤Î¼þ¤ê¤Ç¤Ï³ç¸Ì¤ò¤Ä¤±¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹" + +-#: c-typeck.c:2024 ++#: c-typeck.c:2004 + msgid "suggest parentheses around && within ||" + msgstr "|| ¤È¶¦¤Ë»È¤ï¤ì¤ë && ¤Î¼þ¤ê¤Ç¤Ï³ç¸Ì¤ò¤Ä¤±¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹" + +-#: c-typeck.c:2033 ++#: c-typeck.c:2013 + msgid "suggest parentheses around arithmetic in operand of |" + msgstr "·×»»¤¬ | ±é»»»Ò¤Î¹à¤È¤Ê¤ë¾ì¹ç¤Ë¤Ï³ç¸Ì¤ò¤Ä¤±¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹" + +-#: c-typeck.c:2036 ++#: c-typeck.c:2016 + msgid "suggest parentheses around comparison in operand of |" + msgstr "Èæ³Ó¤¬ | ±é»»»Ò¤Î¹à¤È¤Ê¤ë¾ì¹ç¤Ë¤Ï³ç¸Ì¤ò¤Ä¤±¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹" + +-#: c-typeck.c:2045 ++#: c-typeck.c:2025 + msgid "suggest parentheses around arithmetic in operand of ^" + msgstr "·×»»¤¬ ^ ±é»»»Ò¤Î¹à¤È¤Ê¤ë¾ì¹ç¤Ë¤Ï³ç¸Ì¤ò¤Ä¤±¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹" + +-#: c-typeck.c:2048 ++#: c-typeck.c:2028 + msgid "suggest parentheses around comparison in operand of ^" + msgstr "·×»»¤¬ ^ ±é»»»Ò¤Î¹à¤È¤Ê¤ë¾ì¹ç¤Ë¤Ï³ç¸Ì¤ò¤Ä¤±¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹" + +-#: c-typeck.c:2055 ++#: c-typeck.c:2035 + msgid "suggest parentheses around + or - in operand of &" + msgstr "& ±é»»»Ò¤Î¼þ¤ê¤Î + ¤ä - ¤Î¼þ¤ê¤Ë¤Ï³ç¸Ì¤ò¤Ä¤±¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹" + +-#: c-typeck.c:2058 ++#: c-typeck.c:2038 + msgid "suggest parentheses around comparison in operand of &" + msgstr "Èæ³Ó¤¬ & ±é»»»Ò¤Î¹à¤È¤Ê¤ë¾ì¹ç¤Ë¤Ï³ç¸Ì¤ò¤Ä¤±¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹" + +-#: c-typeck.c:2065 ++#: c-typeck.c:2045 + msgid "comparisons like X<=Y<=Z do not have their mathematical meaning" + msgstr "X<=Y<=Z ¤ÎÍͤÊÈæ³Ó¤Ï¿ô³ØŪ¤Ê°ÕÌ£¤Ç¤Î·ë²Ì¤ò¤â¤¿¤é¤·¤Þ¤»¤ó" + +-#: c-typeck.c:2128 ++#: c-typeck.c:2108 + msgid "pointer of type `void *' used in subtraction" + msgstr "`void *' ·¿¤Î¥Ý¥¤¥ó¥¿¤Îº¹¤òµá¤á¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:2130 ++#: c-typeck.c:2110 + msgid "pointer to a function used in subtraction" + msgstr "´Ø¿ô¥Ý¥¤¥ó¥¿¤Îº¹¤òµá¤á¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:2224 ++#: c-typeck.c:2204 + msgid "wrong type argument to unary plus" + msgstr "ñ¹à¥×¥é¥¹¤Ø¤Î°ú¿ô¤Î·¿¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:2237 ++#: c-typeck.c:2217 + msgid "wrong type argument to unary minus" + msgstr "ñ¹à¥Þ¥¤¥Ê¥¹¤Ø¤Î°ú¿ô¤Î·¿¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:2254 ++#: c-typeck.c:2234 + msgid "ISO C does not support `~' for complex conjugation" + msgstr "ISO C ¤ÏÊ£ÁǶ¦ÌòÍѤΠ`~' ¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó" + +-#: c-typeck.c:2260 ++#: c-typeck.c:2240 + msgid "wrong type argument to bit-complement" + msgstr "¥Ó¥Ã¥Èȿž¤Ø¤Î°ú¿ô¤Î·¿¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:2268 ++#: c-typeck.c:2248 + msgid "wrong type argument to abs" + msgstr "abs ¤Ø¤Î°ú¿ô¤Î·¿¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:2280 ++#: c-typeck.c:2260 + msgid "wrong type argument to conjugation" + msgstr "Ê£ÁǶ¦Ìò(~)¤Ø¤Î°ú¿ô¤Î·¿¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:2294 ++#: c-typeck.c:2274 + msgid "wrong type argument to unary exclamation mark" + msgstr "ñ¹à´¶Ã²Éä(!)¤Ø¤Î°ú¿ô¤Î·¿¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:2337 ++#: c-typeck.c:2317 + msgid "ISO C does not support `++' and `--' on complex types" + msgstr "ISO C ¤Ï complex ·¿¤Ç¤Î `++' ¤È `--' ¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó" + +-#: c-typeck.c:2352 c-typeck.c:2384 ++#: c-typeck.c:2332 c-typeck.c:2364 + #, fuzzy + msgid "wrong type argument to increment" + msgstr "¥Ó¥Ã¥Èȿž¤Ø¤Î°ú¿ô¤Î·¿¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:2354 c-typeck.c:2386 ++#: c-typeck.c:2334 c-typeck.c:2366 + #, fuzzy + msgid "wrong type argument to decrement" + msgstr "¥Ó¥Ã¥Èȿž¤Ø¤Î°ú¿ô¤Î·¿¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:2375 ++#: c-typeck.c:2355 + #, fuzzy + msgid "increment of pointer to unknown structure" + msgstr "ÉÔÌÀ¤Ê¹½Â¤ÂΤËÂФ¹¤ë¥Ý¥¤¥ó¥¿¤Î%s" + +-#: c-typeck.c:2377 ++#: c-typeck.c:2357 + #, fuzzy + msgid "decrement of pointer to unknown structure" + msgstr "ÉÔÌÀ¤Ê¹½Â¤ÂΤËÂФ¹¤ë¥Ý¥¤¥ó¥¿¤Î%s" + +-#: c-typeck.c:2502 ++#: c-typeck.c:2482 + msgid "invalid lvalue in unary `&'" + msgstr "ñ¹à¤Î `&' ¤Ç¤Îº¸ÊÕÃͤ¬Ìµ¸ú¤Ç¤¹" + +-#: c-typeck.c:2534 ++#: c-typeck.c:2514 + #, c-format + msgid "attempt to take address of bit-field structure member `%s'" + msgstr "¹½Â¤ÂÎ¥á¥ó¥Ð `%s' ¤Î¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤Î¥¢¥É¥ì¥¹¤ò¼èÆÀ¤·¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:2668 ++#: c-typeck.c:2648 + #, fuzzy + msgid "use of conditional expressions as lvalues is deprecated" + msgstr "ISO C ¤Ïº¸ÊÕÃͤȤ·¤Æ¤Î¾ò·ï¼°¤ÎÍøÍѤò¶Ø¤¸¤Þ¤¹" + +-#: c-typeck.c:2671 ++#: c-typeck.c:2651 + #, fuzzy + msgid "use of compound expressions as lvalues is deprecated" + msgstr "ISO C ¤Ïº¸ÊÕÃͤȤ·¤Æ¤ÎÊ£¹ç¼°¤ÎÍøÍѤò¶Ø¤¸¤Þ¤¹" + +-#: c-typeck.c:2674 ++#: c-typeck.c:2654 + #, fuzzy + msgid "use of cast expressions as lvalues is deprecated" + msgstr "ISO C ¤Ïº¸ÊÕÃͤȤ·¤Æ¤Î¥­¥ã¥¹¥È¼°¤ÎÍøÍѤò¶Ø¤¸¤Þ¤¹" + +-#: c-typeck.c:2689 ++#: c-typeck.c:2669 + #, c-format + msgid "%s of read-only member `%s'" + msgstr "%s¤¬Æɤ߹þ¤ßÀìÍÑ¥á¥ó¥Ð `%s' ¤Ë¹Ô¤ï¤ì¤Þ¤·¤¿" + +-#: c-typeck.c:2693 ++#: c-typeck.c:2673 + #, c-format + msgid "%s of read-only variable `%s'" + msgstr "%s¤¬Æɤ߹þ¤ßÀìÍÑÊÑ¿ô `%s' ¤Ë¹Ô¤ï¤ì¤Þ¤·¤¿" + +-#: c-typeck.c:2696 ++#: c-typeck.c:2676 + #, c-format + msgid "%s of read-only location" + msgstr "%s¤¬Æɤ߹þ¤ßÀìÍÑÎΰè¤Ç¹Ô¤ï¤ì¤Þ¤·¤¿" + +-#: c-typeck.c:2714 ++#: c-typeck.c:2694 + #, fuzzy, c-format + msgid "cannot take address of bit-field `%s'" + msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤Î¥¢¥É¥ì¥¹¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó" + +-#: c-typeck.c:2742 treelang/treetree.c:946 ++#: c-typeck.c:2722 treelang/treetree.c:946 + #, c-format + msgid "global register variable `%s' used in nested function" + msgstr "Âç°è¥ì¥¸¥¹¥¿ÊÑ¿ô `%s' ¤¬Æþ¤ì»Ò´Ø¿ô¤ÎÃæ¤Ç»È¤ï¤ì¤Þ¤·¤¿" + +-#: c-typeck.c:2746 treelang/treetree.c:950 ++#: c-typeck.c:2726 treelang/treetree.c:950 + #, c-format + msgid "register variable `%s' used in nested function" + msgstr "¥ì¥¸¥¹¥¿ÊÑ¿ô `%s' ¤¬Æþ¤ì»Ò´Ø¿ô¤ÎÃæ¤Ç»È¤ï¤ì¤Þ¤·¤¿" + +-#: c-typeck.c:2753 treelang/treetree.c:957 ++#: c-typeck.c:2733 treelang/treetree.c:957 + #, c-format + msgid "address of global register variable `%s' requested" + msgstr "Í׵ᤵ¤ì¤¿Âç°è¥ì¥¸¥¹¥¿ÊÑ¿ô `%s' ¤Î¥¢¥É¥ì¥¹" + +-#: c-typeck.c:2765 ++#: c-typeck.c:2745 + msgid "cannot put object with volatile field into register" + msgstr "volatile ¥Õ¥£¡¼¥ë¥É¤ò¥ì¥¸¥¹¥¿¤Ë»ý¤Ã¤Æ¤¤¤ë¤è¤¦¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤òÃÖ¤±¤Þ¤»¤ó" + +-#: c-typeck.c:2769 treelang/treetree.c:962 ++#: c-typeck.c:2749 treelang/treetree.c:962 + #, c-format + msgid "address of register variable `%s' requested" + msgstr "register ÊÑ¿ô `%s' ¤Î¥¢¥É¥ì¥¹¤¬Í׵ᤵ¤ì¤Þ¤·¤¿" + +-#: c-typeck.c:2854 ++#: c-typeck.c:2834 + msgid "signed and unsigned type in conditional expression" + msgstr "¾ò·ï¼°¤ËÉä¹çÉÕ¤­·¿¤ÈÉä¹ç̵¤··¿¤È¤¬¤¢¤ê¤Þ¤¹" + +-#: c-typeck.c:2861 ++#: c-typeck.c:2841 + msgid "ISO C forbids conditional expr with only one void side" + msgstr "ISO C ¤ÏÊÒ¦¤À¤±¤¬ void ¤È¤Ê¤ë¾ò·ï¼°¤ò¶Ø¤¸¤Þ¤¹" + +-#: c-typeck.c:2877 c-typeck.c:2884 ++#: c-typeck.c:2857 c-typeck.c:2864 + msgid "ISO C forbids conditional expr between `void *' and function pointer" + msgstr "ISO C ¤Ï `void *' ¤È´Ø¿ô¥Ý¥¤¥ó¥¿¤È¤ò¾ò·ï¼°¤È¤¹¤ë¤³¤È¤ò¶Ø¤¸¤Þ¤¹" + +-#: c-typeck.c:2890 ++#: c-typeck.c:2870 + msgid "pointer type mismatch in conditional expression" + msgstr "¾ò·ï¼°¤Ç¤Î¥Ý¥¤¥ó¥¿¤Î·¿¤¬Å¬¹ç¤·¤Þ¤»¤ó" + +-#: c-typeck.c:2897 c-typeck.c:2907 ++#: c-typeck.c:2877 c-typeck.c:2887 + msgid "pointer/integer type mismatch in conditional expression" + msgstr "¾ò·ï¼°¤Ç¥Ý¥¤¥ó¥¿·¿¤ÈÀ°¿ô·¿¤¬Å¬¹ç¤·¤Þ¤»¤ó" + +-#: c-typeck.c:2921 ++#: c-typeck.c:2901 + msgid "type mismatch in conditional expression" + msgstr "¾ò·ï¼°¤Ç¤Î·¿¤ÎÁȹç¤ï¤»¤¬Å¬¹ç¤·¤Þ¤»¤ó" + +-#: c-typeck.c:2981 ++#: c-typeck.c:2961 + msgid "left-hand operand of comma expression has no effect" + msgstr "¥«¥ó¥Þ±é»»»Ò¤Îº¸Â¦¤Î¼°¤Ë¸úÎϤ¬¤¢¤ê¤Þ¤»¤ó" + +-#: c-typeck.c:3012 ++#: c-typeck.c:2992 + msgid "cast specifies array type" + msgstr "¥­¥ã¥¹¥È¤¬ÇÛÎ󷿤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:3018 ++#: c-typeck.c:2998 + msgid "cast specifies function type" + msgstr "¥­¥ã¥¹¥È¤Ï´Ø¿ô·¿¤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:3028 ++#: c-typeck.c:3008 + msgid "ISO C forbids casting nonscalar to the same type" + msgstr "ISO C ¤ÏÈó¥¹¥«¥é¡¼¤«¤éƱ¤¸·¿¤Ø¤Î¥­¥ã¥¹¥È¤ò¶Ø¤¸¤Þ¤¹" + +-#: c-typeck.c:3046 ++#: c-typeck.c:3026 + msgid "ISO C forbids casts to union type" + msgstr "ISO C ¤Ï¶¦ÍÑÂη¿¤Ø¤Î¥­¥ã¥¹¥È¤ò¶Ø¤¸¤Þ¤¹" + +-#: c-typeck.c:3054 ++#: c-typeck.c:3034 + msgid "cast to union type from type not present in union" + msgstr "¶¦ÍÑÂΤÎÃæ¤Ë¤Ê¤¤·¿¤«¤é¶¦ÍÑÂη¿¤Ø¥­¥ã¥¹¥È¤·¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:3105 ++#: c-typeck.c:3085 + #, fuzzy + msgid "cast adds new qualifiers to function type" + msgstr "¥­¥ã¥¹¥È¤Ï´Ø¿ô·¿¤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹" + + #. There are qualifiers present in IN_OTYPE that are not + #. present in IN_TYPE. +-#: c-typeck.c:3110 ++#: c-typeck.c:3090 + msgid "cast discards qualifiers from pointer target type" + msgstr "¥­¥ã¥¹¥È¤Ë¤è¤Ã¤Æ¥Ý¥¤¥ó¥¿¤¬¼¨¤¹·¿¤«¤é½¤¾þ»Ò¤¬ÀÚ¤ê¼Î¤Æ¤é¤ì¤Þ¤¹" + +-#: c-typeck.c:3125 ++#: c-typeck.c:3105 + msgid "cast increases required alignment of target type" + msgstr "¥­¥ã¥¹¥È¤Ë¤è¤Ã¤Æ¥Ý¥¤¥ó¥¿¤¬¼¨¤¹·¿¤ÎÍ׵ᥢ¥é¥¤¥ó¥á¥ó¥È¤¬Áý²Ã¤·¤Þ¤¹" + +-#: c-typeck.c:3131 cp/typeck.c:4945 ++#: c-typeck.c:3111 cp/typeck.c:4963 + msgid "cast from pointer to integer of different size" + msgstr "¥­¥ã¥¹¥È¤Ë¤è¤Ã¤Æ¥Ý¥¤¥ó¥¿¤«¤é°Û¤Ê¤ë¥µ¥¤¥º¤ÎÀ°¿ô¤È¤Ê¤ê¤Þ¤¹" + +-#: c-typeck.c:3136 ++#: c-typeck.c:3116 + msgid "cast does not match function type" + msgstr "¥­¥ã¥¹¥È¤Ë¤è¤ë´Ø¿ô¤Î·¿¤¬Å¬¹ç¤·¤Þ¤»¤ó" + +-#: c-typeck.c:3143 cp/typeck.c:4952 ++#: c-typeck.c:3123 cp/typeck.c:4970 + msgid "cast to pointer from integer of different size" + msgstr "°Û¤Ê¤ë¥µ¥¤¥º¤ÎÀ°¿ô¤«¤é¥Ý¥¤¥ó¥¿¤Ë¥­¥ã¥¹¥È¤µ¤ì¤Þ¤·¤¿" + +-#: c-typeck.c:3155 ++#: c-typeck.c:3135 + msgid "type-punning to incomplete type might break strict-aliasing rules" + msgstr "" + +-#: c-typeck.c:3159 ++#: c-typeck.c:3139 + msgid "dereferencing type-punned pointer will break strict-aliasing rules" + msgstr "" + +-#: c-typeck.c:3170 ++#: c-typeck.c:3150 + #, fuzzy + msgid "ISO C forbids conversion of function pointer to object pointer type" + msgstr "ISO C++ ¤Ï¥Ý¥¤¥ó¥¿·×»»¤Ë¥á¥ó¥Ð´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤ò¶Ø¤¸¤Þ¤¹" + +-#: c-typeck.c:3179 ++#: c-typeck.c:3159 + #, fuzzy + msgid "ISO C forbids conversion of object pointer to function pointer type" + msgstr "ISO C ¤Ï `void *' ¤È´Ø¿ô¥Ý¥¤¥ó¥¿¤È¤ÎÈæ³Ó¤ò¶Ø¤¸¤Þ¤¹" + + #. Now we have handled acceptable kinds of LHS that are not truly lvalues. + #. Reject anything strange now. +-#: c-typeck.c:3337 ++#: c-typeck.c:3317 + msgid "invalid lvalue in assignment" + msgstr "ÂåÆþ¤È¤·¤Æ̵¸ú¤Êº¸ÊÕÃͤǤ¹" + + #. Convert new value to destination type. +-#: c-typeck.c:3346 c-typeck.c:3371 c-typeck.c:3388 cp/typeck.c:5064 +-#: cp/typeck.c:5211 cp/typeck.c:5226 ++#: c-typeck.c:3326 c-typeck.c:3351 c-typeck.c:3368 cp/typeck.c:5082 ++#: cp/typeck.c:5229 cp/typeck.c:5244 + msgid "assignment" + msgstr "ÂåÆþ" + +-#: c-typeck.c:3455 ++#: c-typeck.c:3435 + #, fuzzy + msgid "cannot pass rvalue to reference parameter" + msgstr "»²¾È·¿¤ËÂФ·¤Æ new ¤òŬÍѤǤ­¤Þ¤»¤ó" + +-#: c-typeck.c:3564 c-typeck.c:3640 ++#: c-typeck.c:3544 c-typeck.c:3620 + #, c-format + msgid "%s makes qualified function pointer from unqualified" + msgstr "%s¤Ë¤è¤ê¡¢½¤¾þ¤µ¤ì¤Ê¤¤´Ø¿ô¥Ý¥¤¥ó¥¿¤«¤é¡¢½¤¾þ¤µ¤ì¤¿´Ø¿ô¥Ý¥¤¥ó¥¿¤òºî¤ê¤Þ¤¹" + +-#: c-typeck.c:3568 c-typeck.c:3620 ++#: c-typeck.c:3548 c-typeck.c:3600 + #, c-format + msgid "%s discards qualifiers from pointer target type" + msgstr "%s¤Ë¤è¤ê¡¢¥Ý¥¤¥ó¥¿¤Î¼¨¤¹·¿¤«¤é¤Î½¤¾þ»Ò¤¬ÀÚ¤ê¼Î¤Æ¤é¤ì¤Þ¤¹" + +-#: c-typeck.c:3574 ++#: c-typeck.c:3554 + msgid "ISO C prohibits argument conversion to union type" + msgstr "ISO C ¤Ç¤Ï°ú¿ô¤«¤é¶¦ÍÑÂΤؤÎÊÑ´¹¤ò¶Ø»ß¤·¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:3612 ++#: c-typeck.c:3592 + #, c-format + msgid "ISO C forbids %s between function pointer and `void *'" + msgstr "ISO C ¤Ï´Ø¿ô¥Ý¥¤¥ó¥¿¤È `void *' ¤È¤Î%s¤ò¶Ø¤¸¤Þ¤¹" + +-#: c-typeck.c:3629 ++#: c-typeck.c:3609 + #, c-format + msgid "pointer targets in %s differ in signedness" + msgstr "%s ¤Ç¥Ý¥¤¥ó¥¿¤Î¼¨¤¹ÂоݤÎÉä¹æ¤Î̵ͭ¤¬°Û¤Ê¤ê¤Þ¤¹" + +-#: c-typeck.c:3645 ++#: c-typeck.c:3625 + #, c-format + msgid "%s from incompatible pointer type" + msgstr "¸ß´¹À­¤Î¤Ê¤¤¥Ý¥¤¥ó¥¿·¿¤«¤é¤Î%s¤Ç¤¹" + +-#: c-typeck.c:3651 c-typeck.c:4158 cp/typeck.c:1389 ++#: c-typeck.c:3631 c-typeck.c:4138 cp/typeck.c:1389 + msgid "invalid use of non-lvalue array" + msgstr "Èóº¸ÊÕÃÍÇÛÎó¤Î̵¸ú¤ÊÍøÍÑ" + +-#: c-typeck.c:3665 ++#: c-typeck.c:3645 + #, c-format + msgid "%s makes pointer from integer without a cast" + msgstr "%s¤Ë¤è¤ê¡¢¥­¥ã¥¹¥È¤Ê¤·¤ÇÀ°¿ô¤«¤é¥Ý¥¤¥ó¥¿¤òºî¤ê¤Þ¤·¤¿" + +-#: c-typeck.c:3672 ++#: c-typeck.c:3652 + #, c-format + msgid "%s makes integer from pointer without a cast" + msgstr "%s¤Ë¤è¤ê¡¢¥­¥ã¥¹¥È¤Ê¤·¤Ç¥Ý¥¤¥ó¥¿¤«¤éÀ°¿ô¤òºî¤ê¤Þ¤·¤¿" + +-#: c-typeck.c:3686 c-typeck.c:3689 ++#: c-typeck.c:3666 c-typeck.c:3669 + #, c-format + msgid "incompatible type for argument %d of `%s'" + msgstr "%d ÈÖÌܤΰú¿ô¤¬ `%s' ¤Î·¿¤È¸ß´¹À­¤¬¤¢¤ê¤Þ¤»¤ó" + +-#: c-typeck.c:3693 ++#: c-typeck.c:3673 + #, c-format + msgid "incompatible type for argument %d of indirect function call" + msgstr "´ÖÀÜŪ¤Ê´Ø¿ô¸Æ¤Ó½Ð¤·¤ÎÂè %d °ú¿ô¤ËÂФ·¤Æ¸ß´¹À­¤Î¤Ê¤¤·¿¤Ç¤¹" + +-#: c-typeck.c:3697 ++#: c-typeck.c:3677 + #, c-format + msgid "incompatible types in %s" + msgstr "%s ¤Ë¸ß´¹À­¤Î¤Ê¤¤·¿" + + #. Function name is known; supply it. +-#: c-typeck.c:3753 ++#: c-typeck.c:3733 + #, fuzzy, c-format + msgid "passing arg of `%s'" + msgstr "°ú¿ô %d ¸Ä¤Î `%s' ¤òÅϤ·¤Þ¤¹" + + #. Function name unknown (call through ptr). +-#: c-typeck.c:3762 ++#: c-typeck.c:3742 + #, fuzzy + msgid "passing arg of pointer to function" + msgstr "°ú¿ô %d ¸Ä¤Î´Ø¿ô¥Ý¥¤¥ó¥¿¤òÅϤ·¤Þ¤¹" + + #. Function name is known; supply it. +-#: c-typeck.c:3770 ++#: c-typeck.c:3750 + #, c-format + msgid "passing arg %d of `%s'" + msgstr "°ú¿ô %d ¸Ä¤Î `%s' ¤òÅϤ·¤Þ¤¹" + + #. Function name unknown (call through ptr); just give arg number. +-#: c-typeck.c:3779 ++#: c-typeck.c:3759 + #, c-format + msgid "passing arg %d of pointer to function" + msgstr "°ú¿ô %d ¸Ä¤Î´Ø¿ô¥Ý¥¤¥ó¥¿¤òÅϤ·¤Þ¤¹" + +-#: c-typeck.c:3836 ++#: c-typeck.c:3816 + msgid "traditional C rejects automatic aggregate initialization" + msgstr "¸Å¤¤ C ¤Ç¤Ï¼«Æ°Åª¤Ê½¸¹çÂΤνé´ü²½¤òµñÀ䤷¤Þ¤¹" + +-#: c-typeck.c:4007 c-typeck.c:4022 c-typeck.c:4037 ++#: c-typeck.c:3987 c-typeck.c:4002 c-typeck.c:4017 + #, c-format + msgid "(near initialization for `%s')" + msgstr "(`%s' ¤Î½é´ü²½¤ÏÉÔ´°Á´¤Ç¤¹)" + +-#: c-typeck.c:4086 cp/typeck2.c:560 ++#: c-typeck.c:4066 cp/typeck2.c:550 + msgid "char-array initialized from wide string" + msgstr "¥ï¥¤¥Éʸ»úÎ󤫤é char ¤ÎÇÛÎ󤬽é´ü²½¤µ¤ì¤Þ¤·¤¿" + +-#: c-typeck.c:4093 cp/typeck2.c:567 ++#: c-typeck.c:4073 cp/typeck2.c:557 + msgid "int-array initialized from non-wide string" + msgstr "Èó¥ï¥¤¥Éʸ»úÎ󤫤é int ¤ÎÇÛÎ󤬽é´ü²½¤µ¤ì¤Þ¤·¤¿" + +-#: c-typeck.c:4111 cp/typeck2.c:582 ++#: c-typeck.c:4091 cp/typeck2.c:572 + msgid "initializer-string for array of chars is too long" + msgstr "char ¤ÎÇÛÎó¤Ë¤È¤Ã¤Æ½é´ü²½»Òʸ»úÎó¤¬Ä¹¤¹¤®¤Þ¤¹" + +-#: c-typeck.c:4181 ++#: c-typeck.c:4161 + msgid "array initialized from non-constant array expression" + msgstr "ÈóÄê¿ôÇÛÎó¼°¤«¤éÇÛÎ󤬽é´ü²½¤µ¤ì¤Þ¤·¤¿" + +-#: c-typeck.c:4232 ++#: c-typeck.c:4212 + msgid "initialization" + msgstr "½é´ü²½" + +-#: c-typeck.c:4243 c-typeck.c:5621 ++#: c-typeck.c:4223 c-typeck.c:5601 + msgid "initializer element is not computable at load time" + msgstr "½é´ü²½»Ò¤ÎÍ×ÁÇ¤Ï¥í¡¼¥É»þ¤Ë·×»»¤µ¤ìÆÀ¤Þ¤»¤ó" + +-#: c-typeck.c:4258 cp/typeck2.c:659 ++#: c-typeck.c:4238 cp/typeck2.c:649 + msgid "invalid initializer" + msgstr "̵¸ú¤Ê½é´ü²½»Ò" + +-#: c-typeck.c:4540 cp/decl.c:4484 ++#: c-typeck.c:4520 cp/decl.c:4539 + #, fuzzy + msgid "opaque vector types cannot be initialized" + msgstr "²ÄÊÑĹ¥ª¥Ö¥¸¥§¥¯¥È¤Ï½é´ü²½¤µ¤ì¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦" + +-#: c-typeck.c:4734 ++#: c-typeck.c:4714 + msgid "extra brace group at end of initializer" + msgstr "½é´ü²½»Ò¤Î½ª¤ï¤ê¤Ë;ʬ¤Ê¥Ö¥ì¡¼¥¹¤Î¥°¥ë¡¼¥×" + +-#: c-typeck.c:4754 ++#: c-typeck.c:4734 + msgid "missing braces around initializer" + msgstr "½é´ü²½»Ò¤Î¤Þ¤ï¤ê¤Î¥Ö¥ì¡¼¥¹¤ò·ç¤¤¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:4814 ++#: c-typeck.c:4794 + msgid "braces around scalar initializer" + msgstr "¥¹¥«¥é¡¼½é´ü²½»Ò¤¬¥Ö¥ì¡¼¥¹¤Ç°Ï¤Þ¤ì¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:4865 ++#: c-typeck.c:4845 + msgid "initialization of flexible array member in a nested context" + msgstr "¥Í¥¹¥È¤·¤¿Ê¸Ì®¤Ç²ÄÊÑÇÛÎó¥á¥ó¥Ð¤ò½é´ü²½¤·¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:4867 ++#: c-typeck.c:4847 + msgid "initialization of a flexible array member" + msgstr "²ÄÊÑÇÛÎó¥á¥ó¥Ð¤ò½é´ü²½¤·¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:4898 ++#: c-typeck.c:4878 + msgid "missing initializer" + msgstr "½é´ü²½»Ò¤ò·ç¤¤¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:4920 ++#: c-typeck.c:4900 + msgid "empty scalar initializer" + msgstr "¶õ¤Î¥¹¥«¥é¡¼½é´ü²½»Ò" + +-#: c-typeck.c:4925 ++#: c-typeck.c:4905 + msgid "extra elements in scalar initializer" + msgstr "¥¹¥«¥é¡¼½é´ü²½»Ò¤Ë;ʬ¤ÊÍ×ÁÇ" + +-#: c-typeck.c:5010 ++#: c-typeck.c:4990 + msgid "initialization designators may not nest" + msgstr "½é´ü²½»Ø̾»Ò¤Ç¤Ï¥Í¥¹¥È¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó" + +-#: c-typeck.c:5031 c-typeck.c:5099 ++#: c-typeck.c:5011 c-typeck.c:5079 + msgid "array index in non-array initializer" + msgstr "ÈóÇÛÎó¤Î½é´ü²½»Ò¤ËÇÛÎ󥤥ó¥Ç¥Ã¥¯¥¹¤¬»È¤ï¤ì¤Þ¤·¤¿" + +-#: c-typeck.c:5036 c-typeck.c:5152 ++#: c-typeck.c:5016 c-typeck.c:5132 + msgid "field name not in record or union initializer" + msgstr "¥ì¥³¡¼¥É¤ä¶¦ÍÑÂΤ˥ե£¡¼¥ë¥É̾¤¬¤Ê¤¤½é´ü²½»Ò¤Ç¤¹" + +-#: c-typeck.c:5095 c-typeck.c:5097 ++#: c-typeck.c:5075 c-typeck.c:5077 + msgid "nonconstant array index in initializer" + msgstr "½é´ü²½»ÒÆâ¤ËÈóÄê¿ô¤ÎÇÛÎ󥤥ó¥Ç¥Ã¥¯¥¹¤¬¤¢¤ê¤Þ¤¹" + +-#: c-typeck.c:5101 c-typeck.c:5104 ++#: c-typeck.c:5081 c-typeck.c:5084 + msgid "array index in initializer exceeds array bounds" + msgstr "½é´ü²½»ÒÆâ¤ÎÇÛÎ󥤥ó¥Ç¥Ã¥¯¥¹¤¬ÇÛÎó¤Î¶­³¦¤òĶ¤¨¤Þ¤·¤¿" + +-#: c-typeck.c:5115 ++#: c-typeck.c:5095 + msgid "empty index range in initializer" + msgstr "½é´ü²½»ÒÆâ¤Ë¶õ¤ÎÈÏ°Ï¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬¤¢¤ê¤Þ¤¹" + +-#: c-typeck.c:5124 ++#: c-typeck.c:5104 + msgid "array index range in initializer exceeds array bounds" + msgstr "½é´ü²½»Ò¤ÎÈÏ°Ï¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬ÇÛÎó¤Î¶­³¦¤òĶ¤¨¤Þ¤·¤¿" + +-#: c-typeck.c:5164 ++#: c-typeck.c:5144 + #, c-format + msgid "unknown field `%s' specified in initializer" + msgstr "ÉÔÌÀ¤Ê¥Õ¥£¡¼¥ë¥É `%s' ¤¬½é´ü²½»Ò¤Ç»ØÄꤵ¤ì¤Þ¤·¤¿" + +-#: c-typeck.c:5200 c-typeck.c:5221 c-typeck.c:5683 ++#: c-typeck.c:5180 c-typeck.c:5201 c-typeck.c:5663 + msgid "initialized field with side-effects overwritten" + msgstr "½é´ü²½¤µ¤ì¤¿¥Õ¥£¡¼¥ë¥É¤¬ÉûºîÍѤǾå½ñ¤­¤µ¤ì¤Þ¤¹" + +-#: c-typeck.c:5891 ++#: c-typeck.c:5871 + msgid "excess elements in char array initializer" + msgstr "char ÇÛÎó½é´ü²½»ÒÆâ¤ÎÍ×ÁǤ¬Â¿¤¹¤®¤Þ¤¹" + +-#: c-typeck.c:5898 c-typeck.c:5944 ++#: c-typeck.c:5878 c-typeck.c:5924 + msgid "excess elements in struct initializer" + msgstr "¹½Â¤Âνé´ü²½»ÒÆâ¤ÎÍ×ÁǤ¬Â¿¤¹¤®¤Þ¤¹" + +-#: c-typeck.c:5959 ++#: c-typeck.c:5939 + #, fuzzy + msgid "non-static initialization of a flexible array member" + msgstr "²ÄÊÑÇÛÎó¥á¥ó¥Ð¤ò½é´ü²½¤·¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:6026 ++#: c-typeck.c:6006 + msgid "excess elements in union initializer" + msgstr "¶¦ÍÑÂνé´ü²½»ÒÆâ¤ÎÍ×ÁǤ¬Â¿¤¹¤®¤Þ¤¹" + +-#: c-typeck.c:6047 ++#: c-typeck.c:6027 + msgid "traditional C rejects initialization of unions" + msgstr "¸Å¤¤ C ¤Ï¶¦ÍÑÂΤνé´ü¤òµñÀ䤷¤Þ¤¹" + +-#: c-typeck.c:6110 ++#: c-typeck.c:6090 + msgid "excess elements in array initializer" + msgstr "ÇÛÎó½é´ü²½»ÒÆâ¤ÎÍ×ÁǤ¬Â¿¤¹¤®¤Þ¤¹" + +-#: c-typeck.c:6139 ++#: c-typeck.c:6119 + #, fuzzy + msgid "excess elements in vector initializer" + msgstr "¥¹¥«¥é¡¼½é´ü²½»ÒÆâ¤ÎÍ×ÁǤ¬Â¿¤¹¤®¤Þ¤¹" + +-#: c-typeck.c:6161 ++#: c-typeck.c:6141 + msgid "excess elements in scalar initializer" + msgstr "¥¹¥«¥é¡¼½é´ü²½»ÒÆâ¤ÎÍ×ÁǤ¬Â¿¤¹¤®¤Þ¤¹" + +-#: c-typeck.c:6263 ++#: c-typeck.c:6243 + msgid "asm template is not a string constant" + msgstr "asm ¥Æ¥ó¥×¥ì¡¼¥È¤¬Ê¸»úÎóÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: c-typeck.c:6295 ++#: c-typeck.c:6275 + msgid "invalid lvalue in asm statement" + msgstr "asm ʸ¤ÎÃæ¤Ë̵¸ú¤Êº¸ÊÕÃÍ" + +-#: c-typeck.c:6367 cp/typeck.c:5902 ++#: c-typeck.c:6347 cp/typeck.c:5923 + msgid "modification by `asm'" + msgstr "`asm' ¤Ë¤è¤ë½¤Àµ" + +-#: c-typeck.c:6385 cp/typeck.c:5986 ++#: c-typeck.c:6365 cp/typeck.c:6007 + msgid "function declared `noreturn' has a `return' statement" + msgstr "`noreturn' ¤ÎÀë¸À¤µ¤ì¤¿´Ø¿ô¤Ë `return' ʸ¤¬¤¢¤ê¤Þ¤¹" + +-#: c-typeck.c:6392 ++#: c-typeck.c:6372 + msgid "`return' with no value, in function returning non-void" + msgstr "Ìá¤ê·¿¤¬´Ø¿ô¤Ç¡¢`return' ¤ËÃͤ¬¤¢¤ê¤Þ¤»¤ó" + +-#: c-typeck.c:6398 ++#: c-typeck.c:6378 + msgid "`return' with a value, in function returning void" + msgstr "Ìá¤ê·¿¤¬ void ¤Î´Ø¿ô¤Ç¡¢`return' ¤ËÃͤ¬¤¢¤ê¤Þ¤¹" + +-#: c-typeck.c:6402 ++#: c-typeck.c:6382 + msgid "return" + msgstr "return" + +-#: c-typeck.c:6454 ++#: c-typeck.c:6434 + msgid "function returns address of local variable" + msgstr "´Ø¿ô¤¬¥í¡¼¥«¥ëÊÑ¿ô¤Î¥¢¥É¥ì¥¹¤òÊÖ¤·¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:6509 cp/semantics.c:749 ++#: c-typeck.c:6489 cp/semantics.c:749 + msgid "switch quantity not an integer" + msgstr "switch ¤ÎÆâÍƤ¬À°¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: c-typeck.c:6519 ++#: c-typeck.c:6499 + msgid "`long' switch expression not converted to `int' in ISO C" + msgstr "ISO C ¤Ç¤Ï `long' ¤Î switch ¼°¤Ï `int' ¤ËÊÑ´¹¤µ¤ì¤Þ¤»¤ó" + +-#: c-typeck.c:6560 cp/parser.c:5560 ++#: c-typeck.c:6540 cp/parser.c:5597 + msgid "case label not within a switch statement" + msgstr "case ¥é¥Ù¥ë¤¬ switch ʸ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó" + +-#: c-typeck.c:6562 ++#: c-typeck.c:6542 + msgid "`default' label not within a switch statement" + msgstr "`default' ¥é¥Ù¥ë¤¬ switch ʸ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó" + +-#: c-typeck.c:6714 c-typeck.c:6748 ++#: c-typeck.c:6694 c-typeck.c:6728 + #, fuzzy + msgid "division by zero" + msgstr "#if ¤Ç¥¼¥í½ü»»¤¬È¯À¸¤·¤Þ¤·¤¿" + +-#: c-typeck.c:6793 cp/typeck.c:2953 ++#: c-typeck.c:6773 cp/typeck.c:2953 + msgid "right shift count is negative" + msgstr "±¦¥·¥Õ¥È²ó¿ô¤¬Éé¤Î¿ô¤Ç¤¹" + +-#: c-typeck.c:6800 cp/typeck.c:2959 ++#: c-typeck.c:6780 cp/typeck.c:2959 + msgid "right shift count >= width of type" + msgstr "±¦¥·¥Õ¥È²ó¿ô >= ·¿¤ÎÉý¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:6821 cp/typeck.c:2978 ++#: c-typeck.c:6801 cp/typeck.c:2978 + msgid "left shift count is negative" + msgstr "º¸¥·¥Õ¥È²ó¿ô¤¬Éé¤Î¿ô¤Ç¤¹" + +-#: c-typeck.c:6824 cp/typeck.c:2980 ++#: c-typeck.c:6804 cp/typeck.c:2980 + msgid "left shift count >= width of type" + msgstr "º¸¥·¥Õ¥È²ó¿ô >= ·¿¤ÎÉý¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:6845 ++#: c-typeck.c:6825 + msgid "shift count is negative" + msgstr "¥·¥Õ¥È²ó¿ô¤¬Éé¤ÎÃͤǤ¹" + +-#: c-typeck.c:6847 ++#: c-typeck.c:6827 + msgid "shift count >= width of type" + msgstr "¥·¥Õ¥È²ó¿ô >= ·¿¤ÎÉý¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:6864 cp/typeck.c:3015 ++#: c-typeck.c:6844 cp/typeck.c:3015 + msgid "comparing floating point with == or != is unsafe" + msgstr "ÉâÆ°¾®¿ôÅÀ¤ÎÈæ³Ó¤Ç == ¤ä != ¤ò»È¤¦¤Î¤Ï°ÂÁ´¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: c-typeck.c:6888 c-typeck.c:6894 ++#: c-typeck.c:6868 c-typeck.c:6874 + msgid "ISO C forbids comparison of `void *' with function pointer" + msgstr "ISO C ¤Ï `void *' ¤È´Ø¿ô¥Ý¥¤¥ó¥¿¤È¤ÎÈæ³Ó¤ò¶Ø¤¸¤Þ¤¹" + +-#: c-typeck.c:6897 c-typeck.c:6937 c-typeck.c:6965 ++#: c-typeck.c:6877 c-typeck.c:6917 c-typeck.c:6945 + msgid "comparison of distinct pointer types lacks a cast" + msgstr "·¿¤¬Á´¤¯°Û¤Ê¤ë¥Ý¥¤¥ó¥¿¤ÎÈæ³Ó¤Ç¥­¥ã¥¹¥È¤ò·ç¤¤¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:6911 c-typeck.c:6916 c-typeck.c:6985 c-typeck.c:6990 ++#: c-typeck.c:6891 c-typeck.c:6896 c-typeck.c:6965 c-typeck.c:6970 + msgid "comparison between pointer and integer" + msgstr "¥Ý¥¤¥ó¥¿¤ÈÀ°¿ô¤È¤ÎÈæ³Ó¤ò¹Ô¤Ê¤Ã¤Æ¤¤¤Þ¤¹" + +-#: c-typeck.c:6932 c-typeck.c:6960 ++#: c-typeck.c:6912 c-typeck.c:6940 + msgid "ISO C forbids ordered comparisons of pointers to functions" + msgstr "ISO C ´Ø¿ô¥Ý¥¤¥ó¥¿¤Î½ç½øÈæ³Ó¤ò¶Ø¤¸¤Þ¤¹" + +-#: c-typeck.c:6957 ++#: c-typeck.c:6937 + msgid "comparison of complete and incomplete pointers" + msgstr "´°Á´¤Ê¥Ý¥¤¥ó¥¿¤ÈÉÔ´°Á´¤Ê¥Ý¥¤¥ó¥¿¤È¤ÎÈæ³Ó¤Ç¤¹" + +-#: c-typeck.c:6973 c-typeck.c:6980 ++#: c-typeck.c:6953 c-typeck.c:6960 + msgid "ordered comparison of pointer with integer zero" + msgstr "À°¿ô 0 ¤È¥Ý¥¤¥ó¥¿¤È¤Î½ç½øÈæ³Ó¤Ç¤¹" + +-#: c-typeck.c:7004 cp/typeck.c:3151 ++#: c-typeck.c:6984 cp/typeck.c:3151 + msgid "unordered comparison on non-floating point argument" + msgstr "ÈóÉâÆ°¾®¿ôÅÀ°ú¿ô¤Ç¤Î½ç½øÉÕ¤±¤é¤ì¤Ê¤¤Èæ³Ó¤Ç¤¹" + +-#: c-typeck.c:7214 ++#: c-typeck.c:7194 + msgid "comparison between signed and unsigned" + msgstr "Éä¹çÉÕ¤­¤ÈÉä¹ç̵¤·¤È¤ÎÈæ³Ó¤Ç¤¹" + +-#: c-typeck.c:7260 cp/typeck.c:3398 ++#: c-typeck.c:7240 cp/typeck.c:3398 + msgid "comparison of promoted ~unsigned with constant" + msgstr "~¤Çȿž¤µ¤ì¤¿³Ê¾å¤²Éä¹ç̵¤··¿¤ÈÄê¿ô¤È¤ÎÈæ³Ó¤Ç¤¹" + +-#: c-typeck.c:7268 cp/typeck.c:3406 ++#: c-typeck.c:7248 cp/typeck.c:3406 + msgid "comparison of promoted ~unsigned with unsigned" + msgstr "~¤Çȿž¤µ¤ì¤¿Éä¹ç̵¤··¿¤ÈÉä¹ç̵¤··¿¤È¤ÎÈæ³Ó¤Ç¤¹" + +@@ -3600,7 +3605,7 @@ + msgid "%Jinlining failed in call to '%F'" + msgstr "`%s' ¤Ø¤Î¸Æ¤Ó½Ð¤·¤Î¥¤¥ó¥é¥¤¥ó²½¤Ë¼ºÇÔ¤·¤Þ¤·¤¿" + +-#: calls.c:1839 calls.c:2211 tree-inline.c:1339 tree-inline.c:1346 ++#: calls.c:1839 calls.c:2211 tree-inline.c:1339 tree-inline.c:1347 + msgid "called from here" + msgstr "¤³¤³¤«¤é¸Æ¤Ð¤ì¤Þ¤·¤¿" + +@@ -3661,7 +3666,7 @@ + msgid "verify_flow_info: Basic block %d succ edge is corrupted" + msgstr "´ðËÜ¥Ö¥í¥Ã¥¯ %d pred edge ¥ê¥¹¥È¤¬µ¡Ç½¤·¤Æ¤¤¤Þ¤»¤ó" + +-#: cfg.c:909 cfgrtl.c:1971 ++#: cfg.c:909 cfgrtl.c:1983 + #, c-format + msgid "Wrong amount of branch edges after unconditional jump %i" + msgstr "" +@@ -3740,119 +3745,119 @@ + msgid "Edge from %d to %d should not be marked irreducible." + msgstr "" + +-#: cfgrtl.c:1877 ++#: cfgrtl.c:1889 + #, fuzzy, c-format + msgid "end insn %d for block %d not found in the insn stream" + msgstr "½ªÎ»Ì¿Îá %d(¥Ö¥í¥Ã¥¯ %d) ¤¬°ìÏ¢¤ÎÌ¿ÎáÎó¤ÎÃæ¤Ë¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£" + +-#: cfgrtl.c:1891 ++#: cfgrtl.c:1903 + #, fuzzy, c-format + msgid "insn %d is in multiple basic blocks (%d and %d)" + msgstr "Ì¿Îá %d ¤¬Ê£¿ô¤Î´ðËÜ¥Ö¥í¥Ã¥¯(%d ¤È %d)¤ÎÃæ¤Ë¤¢¤ê¤Þ¤¹" + +-#: cfgrtl.c:1903 ++#: cfgrtl.c:1915 + #, fuzzy, c-format + msgid "head insn %d for block %d not found in the insn stream" + msgstr "³«»ÏÌ¿Îá %d(¥Ö¥í¥Ã¥¯ %d) ¤¬°ìÏ¢¤ÎÌ¿ÎáÎó¤ÎÃæ¤Ë¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£" + +-#: cfgrtl.c:1925 ++#: cfgrtl.c:1937 + msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i" + msgstr "" + +-#: cfgrtl.c:1953 ++#: cfgrtl.c:1965 + #, c-format + msgid "Missing REG_EH_REGION note in the end of bb %i" + msgstr "" + +-#: cfgrtl.c:1961 ++#: cfgrtl.c:1973 + #, c-format + msgid "Too many outgoing branch edges from bb %i" + msgstr "" + +-#: cfgrtl.c:1966 ++#: cfgrtl.c:1978 + #, c-format + msgid "Fallthru edge after unconditional jump %i" + msgstr "" + +-#: cfgrtl.c:1977 ++#: cfgrtl.c:1989 + #, fuzzy, c-format + msgid "Wrong amount of branch edges after conditional jump %i" + msgstr "¾ò·ï¤Î¼Â¹Ô¤è¤ê¤Ïʬ´ô¤ÎÀ¸À®¤òÍ¥À褹¤ë" + +-#: cfgrtl.c:1982 ++#: cfgrtl.c:1994 + #, c-format + msgid "Call edges for non-call insn in bb %i" + msgstr "" + +-#: cfgrtl.c:1991 ++#: cfgrtl.c:2003 + #, c-format + msgid "Abnormal edges for no purpose in bb %i" + msgstr "" + +-#: cfgrtl.c:2001 ++#: cfgrtl.c:2013 + #, c-format + msgid "insn %d inside basic block %d but block_for_insn is NULL" + msgstr "" + +-#: cfgrtl.c:2005 ++#: cfgrtl.c:2017 + #, c-format + msgid "insn %d inside basic block %d but block_for_insn is %i" + msgstr "" + +-#: cfgrtl.c:2019 cfgrtl.c:2029 ++#: cfgrtl.c:2031 cfgrtl.c:2041 + #, c-format + msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d" + msgstr "NOTE_INSN_BASIC_BLOCK ¤¬¥Ö¥í¥Ã¥¯ %d ¤Ë¤¢¤ê¤Þ¤»¤ó" + +-#: cfgrtl.c:2042 ++#: cfgrtl.c:2054 + #, fuzzy, c-format + msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d" + msgstr "NOTE_INSN_BASIC_BLOCK %d ¤¬´ðËÜ¥Ö¥í¥Ã¥¯ %d ¤ÎÃæ¤Û¤É¤Ë¤¢¤ê¤Þ¤¹" + +-#: cfgrtl.c:2052 ++#: cfgrtl.c:2064 + #, fuzzy, c-format + msgid "in basic block %d:" + msgstr "´ðËÜ¥Ö¥í¥Ã¥¯ %d Æâ:" + +-#: cfgrtl.c:2053 ++#: cfgrtl.c:2065 + msgid "flow control insn inside a basic block" + msgstr "" + +-#: cfgrtl.c:2099 ++#: cfgrtl.c:2111 + #, c-format + msgid "missing barrier after block %i" + msgstr "" + +-#: cfgrtl.c:2112 ++#: cfgrtl.c:2124 + #, c-format + msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i" + msgstr "" + +-#: cfgrtl.c:2127 ++#: cfgrtl.c:2139 + #, c-format + msgid "verify_flow_info: Incorrect fallthru %i->%i" + msgstr "" + +-#: cfgrtl.c:2129 ++#: cfgrtl.c:2141 + msgid "wrong insn in the fallthru edge" + msgstr "" + +-#: cfgrtl.c:2146 ++#: cfgrtl.c:2158 + #, fuzzy + msgid "basic blocks not laid down consecutively" + msgstr "´ðËÜ¥Ö¥í¥Ã¥¯¤¬Ï¢Â³Åª¤ËÈÖ¹æÉÕ¤±¤é¤ì¤Æ¤¤¤Þ¤»¤ó" + +-#: cfgrtl.c:2171 ++#: cfgrtl.c:2183 + #, fuzzy + msgid "insn outside basic block" + msgstr "´ðËÜ¥Ö¥í¥Ã¥¯ %d Æâ:" + +-#: cfgrtl.c:2179 ++#: cfgrtl.c:2191 + #, fuzzy + msgid "return not followed by barrier" + msgstr "'#' ¤Ë¥Þ¥¯¥í²¾°ú¿ô̾¤¬Â³¤¤¤Æ¤¤¤Þ¤»¤ó" + +-#: cfgrtl.c:2186 ++#: cfgrtl.c:2198 + #, c-format + msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)" + msgstr "Ì¿ÎáÏ¢º¿Ãæ¤Î bb ¤Î¿ô (%d) ¤¬ n_basic_blocks (%d) ¤È°ã¤¤¤Þ¤¹" +@@ -4089,7 +4094,7 @@ + msgid "library lib%s not found" + msgstr "¥é¥¤¥Ö¥é¥ê lib%s ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó" + +-#: combine.c:13048 ++#: combine.c:13047 + #, c-format + msgid "" + ";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n" +@@ -4099,7 +4104,7 @@ + ";; ·ë¹çÅý·×: %d »î¹Ô, %d ÂåÂØ (%d ¿·¤¿¤Ê¶õ´Ö¤òÍ×µá),\n" + ";; %d À®¸ù¡£\n" + +-#: combine.c:13057 ++#: combine.c:13056 + #, c-format + msgid "" + "\n" +@@ -4443,68 +4448,72 @@ + msgid "token \"%s\" is not valid in preprocessor expressions" + msgstr "À°¿ô¤¬¥×¥ê¥×¥í¥»¥Ã¥µ¼°Æâ¤Ç¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿" + +-#: cppexp.c:753 +-#, fuzzy +-msgid "void expression between '(' and ')'" +-msgstr "¼°Ê¸¤¬Ìµ¸ú¤Ç¤¹" ++#: cppexp.c:751 ++msgid "missing expression between '(' and ')'" ++msgstr "" + +-#: cppexp.c:756 ++#: cppexp.c:754 + #, fuzzy + msgid "#if with no expression" + msgstr " throw ¤µ¤ì¤¿¼°¤ÎÃæ" + +-#: cppexp.c:758 ++#: cppexp.c:757 + #, fuzzy, c-format + msgid "operator '%s' has no right operand" + msgstr "È¿Éü»Ò `%s' ¤ÏÈóÀ°¿ô·¿¤Ç¤¹" + +-#: cppexp.c:784 ++#: cppexp.c:762 ++#, fuzzy, c-format ++msgid "operator '%s' has no left operand" ++msgstr "²¾°ú¿ô `%s' ¤ÏÉÔ´°Á´·¿¤Ç¤¹" ++ ++#: cppexp.c:788 + msgid " ':' without preceding '?'" + msgstr "" + +-#: cppexp.c:811 ++#: cppexp.c:815 + #, fuzzy + msgid "unbalanced stack in #if" + msgstr "Âбþ¤·¤Æ¤¤¤Ê¤¤ #endif" + +-#: cppexp.c:830 ++#: cppexp.c:834 + #, fuzzy, c-format + msgid "impossible operator '%u'" + msgstr "¤¢¤ê¤¨¤Ê¤¤±é»»»Ò '%s'" + +-#: cppexp.c:922 ++#: cppexp.c:926 + #, fuzzy + msgid "missing ')' in expression" + msgstr "Äê¿ô¼°¤¬·ç¤±¤Æ¤¤¤ë¤«Ìµ¸ú¤Ç¤¹" + +-#: cppexp.c:943 ++#: cppexp.c:947 + msgid "'?' without following ':'" + msgstr "" + +-#: cppexp.c:953 ++#: cppexp.c:957 + msgid "integer overflow in preprocessor expression" + msgstr "À°¿ô¤¬¥×¥ê¥×¥í¥»¥Ã¥µ¼°Æâ¤Ç¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿" + +-#: cppexp.c:958 ++#: cppexp.c:962 + #, fuzzy + msgid "missing '(' in expression" + msgstr "Äê¿ô¼°¤¬·ç¤±¤Æ¤¤¤ë¤«Ìµ¸ú¤Ç¤¹" + +-#: cppexp.c:990 ++#: cppexp.c:994 + #, c-format + msgid "the left operand of \"%s\" changes sign when promoted" + msgstr "" + +-#: cppexp.c:995 ++#: cppexp.c:999 + #, c-format + msgid "the right operand of \"%s\" changes sign when promoted" + msgstr "" + +-#: cppexp.c:1353 ++#: cppexp.c:1357 + msgid "comma operator in operand of #if" + msgstr "¥«¥ó¥Þ±é»»»Ò¤¬ #if ±é»»»Ò¤ÎÃæ¤Ë¤¢¤ê¤Þ¤¹" + +-#: cppexp.c:1484 ++#: cppexp.c:1488 + msgid "division by zero in #if" + msgstr "#if ¤Ç¥¼¥í½ü»»¤¬È¯À¸¤·¤Þ¤·¤¿" + +@@ -4540,7 +4549,7 @@ + msgid "no include path in which to search for %s" + msgstr "%s ¤ò¸«¤Ä¤±¤ë¤¿¤á¤Î¥¤¥ó¥¯¥ë¡¼¥É¥Ñ¥¹¤¬¤¢¤ê¤Þ¤»¤ó" + +-#: cppfiles.c:956 ++#: cppfiles.c:959 + msgid "Multiple include guards may be useful for:\n" + msgstr "¿½Å include ¤«¤é¤ÎÊݸͭ±×¤È¤Ê¤ë¤Ç¤·¤ç¤¦:\n" + +@@ -4957,7 +4966,7 @@ + msgid "syntax error in macro parameter list" + msgstr "\"%s\" ¤Ï¥Þ¥¯¥í²¾°ú¿ô¥ê¥¹¥È¤Ë¸½¤ì¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó" + +-#: cse.c:7064 ++#: cse.c:7069 + #, c-format + msgid ";; Processing block from %d to %d, %d sets.\n" + msgstr ";; %d ¤«¤é %d ¤Þ¤Ç¤Î½èÍý¥Ö¥í¥Ã¥¯¡¢%d ¥»¥Ã¥È¡£\n" +@@ -5093,12 +5102,12 @@ + + #. We can't handle floating point constants; + #. PRINT_OPERAND must handle them. +-#: final.c:3220 vmsdbgout.c:467 config/i386/i386.c:6768 ++#: final.c:3220 vmsdbgout.c:467 config/i386/i386.c:6769 + #: config/pdp11/pdp11.c:1646 + msgid "floating constant misused" + msgstr "ÉâÆ°¾®¿ôÄê¿ô¤ò»È¤¤Â»¤Í¤Þ¤·¤¿" + +-#: final.c:3276 vmsdbgout.c:524 config/i386/i386.c:6846 ++#: final.c:3276 vmsdbgout.c:524 config/i386/i386.c:6847 + #: config/pdp11/pdp11.c:1693 + msgid "invalid expression as operand" + msgstr "¥ª¥Ú¥é¥ó¥É¤È¤·¤Æ̵¸ú¤Ê¼°" +@@ -5119,25 +5128,25 @@ + msgid "Attempt to delete prologue/epilogue insn:" + msgstr "" + +-#: fold-const.c:2878 fold-const.c:2891 ++#: fold-const.c:2889 fold-const.c:2902 + #, fuzzy, c-format + msgid "comparison is always %d due to width of bit-field" + msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤ÎÉý¤Î¤»¤¤¤ÇÈæ³Ó¤¬¾ï¤Ë %d ¤È¤Ê¤ê¤Þ¤¹" + +-#: fold-const.c:4093 fold-const.c:4110 ++#: fold-const.c:4110 fold-const.c:4127 + #, c-format + msgid "comparison is always %d" + msgstr "Èæ³Ó¤¬¾ï¤Ë %d ¤È¤Ê¤ê¤Þ¤¹" + +-#: fold-const.c:4241 ++#: fold-const.c:4258 + msgid "`or' of unmatched not-equal tests is always 1" + msgstr "°ìÃפ·¤Ê¤¤ÃÍƱ»Î¤Ç¤ÎÈóÅù²Á¤Î `or' ¥Æ¥¹¥È¤Ï¾ï¤Ë 1 ¤Ç¤¹" + +-#: fold-const.c:4246 ++#: fold-const.c:4263 + msgid "`and' of mutually exclusive equal-tests is always 0" + msgstr "Áê¸ßÇÓ¾Ū¤ÊÃͤÎÅù²Á¤Î `and' ¥Æ¥¹¥È¤Ï¾ï¤Ë 0 ¤Ç¤¹" + +-#: fold-const.c:8393 ++#: fold-const.c:8410 + msgid "fold check: original tree changed by fold" + msgstr "" + +@@ -5146,31 +5155,31 @@ + msgid "%Jsize of variable '%D' is too large" + msgstr "ÊÑ¿ô `%s' ¤Î¥µ¥¤¥º¤¬Â礭¤¹¤®¤Þ¤¹" + +-#: function.c:3742 ++#: function.c:3752 + #, fuzzy + msgid "impossible constraint in `asm'" + msgstr "`asm' Æâ¤Ç¤Ï¥ì¥¸¥¹¥¿À©Ìó¤ò¹Ô¤Ê¤¨¤Þ¤»¤ó" + +-#: function.c:5733 ++#: function.c:5743 + #, fuzzy + msgid "%J'%D' might be used uninitialized in this function" + msgstr "`%s' ¤Ï¤³¤Î´Ø¿ôÆâ¤Ç½é´ü²½¤µ¤ì¤º¤Ë»ÈÍѤµ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹" + +-#: function.c:5740 ++#: function.c:5750 + #, fuzzy + msgid "%Jvariable '%D' might be clobbered by `longjmp' or `vfork'" + msgstr "ÊÑ¿ô `%s' ¤Ï `longjmp' ¤ä `vfork' ¤Ë¤è¤Ã¤Æ¹ó¤¤¤³¤È¤Ë¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹" + +-#: function.c:5759 ++#: function.c:5769 + #, fuzzy + msgid "%Jargument '%D' might be clobbered by `longjmp' or `vfork'" + msgstr "°ú¿ô `%s' ¤Ï `longjmp' ¤ä `vfork' ¤Ë¤è¤Ã¤Æ¹ó¤¤¤³¤È¤Ë¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹" + +-#: function.c:6533 ++#: function.c:6543 + msgid "function returns an aggregate" + msgstr "´Ø¿ô¤¬½¸¹çÂΤòÊÖ¤·¤Æ¤¤¤Þ¤¹" + +-#: function.c:6929 ++#: function.c:6939 + #, fuzzy + msgid "%Junused parameter '%D'" + msgstr "°ú¿ô `%s' ¤¬Ì¤»ÈÍѤǤ¹" +@@ -5200,7 +5209,7 @@ + msgid "Using built-in specs.\n" + msgstr "ÁȤ߹þ¤ß spec ¤ò»ÈÍÑ.\n" + +-#: gcc.c:1755 ++#: gcc.c:1758 + #, c-format + msgid "" + "Setting spec %s to '%s'\n" +@@ -5209,42 +5218,42 @@ + "spec %s ¤ò '%s' ¤ËÀßÄêÃæ\n" + "\n" + +-#: gcc.c:1857 ++#: gcc.c:1860 + #, c-format + msgid "Reading specs from %s\n" + msgstr "%s ¤«¤é spec ¤òÆɤ߹þ¤ßÃæ\n" + +-#: gcc.c:1953 gcc.c:1972 ++#: gcc.c:1956 gcc.c:1975 + #, c-format + msgid "specs %%include syntax malformed after %ld characters" + msgstr "specs ¤Î %ld ʸ»úÌܰʹߤΠ%%include ¤Î½ñ¼°¤¬ÊѤǤ¹" + +-#: gcc.c:1980 ++#: gcc.c:1983 + #, fuzzy, c-format + msgid "could not find specs file %s\n" + msgstr "spec ¥Õ¥¡¥¤¥ë %s ¤ò¸«¤Ä¤±¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿\n" + +-#: gcc.c:1997 gcc.c:2005 gcc.c:2014 gcc.c:2023 ++#: gcc.c:2000 gcc.c:2008 gcc.c:2017 gcc.c:2026 + #, c-format + msgid "specs %%rename syntax malformed after %ld characters" + msgstr "specs ¤Î %ld ʸ»úÌܰʹߤΠ%%rename ¤Î½ñ¼°¤¬ÊѤǤ¹" + +-#: gcc.c:2032 ++#: gcc.c:2035 + #, c-format + msgid "specs %s spec was not found to be renamed" + msgstr "spec ¥Õ¥¡¥¤¥ë %s ¤Ë̾Á°¤òÊѹ¹¤¹¤ë spec ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿" + +-#: gcc.c:2039 ++#: gcc.c:2042 + #, c-format + msgid "%s: attempt to rename spec '%s' to already defined spec '%s'" + msgstr "" + +-#: gcc.c:2044 ++#: gcc.c:2047 + #, c-format + msgid "rename spec %s to %s\n" + msgstr "spec %s ¤ò %s ¤Ë̾Á°¤òÊѹ¹\n" + +-#: gcc.c:2046 ++#: gcc.c:2049 + #, c-format + msgid "" + "spec is '%s'\n" +@@ -5253,25 +5262,25 @@ + "spec ¤Ï '%s' ¤Ç¤¹\n" + "\n" + +-#: gcc.c:2059 ++#: gcc.c:2062 + #, c-format + msgid "specs unknown %% command after %ld characters" + msgstr "spec ¥Õ¥¡¥¤¥ëÃæ¤Î %ld ʸ»ú¤Î¸å¤ËÉÔÌÀ¤Ê %% ¥³¥Þ¥ó¥É" + +-#: gcc.c:2070 gcc.c:2083 ++#: gcc.c:2073 gcc.c:2086 + #, c-format + msgid "specs file malformed after %ld characters" + msgstr "%ld ʸ»ú¤Î¸å¤Ë¤ª¤«¤·¤Ê spec ¥Õ¥¡¥¤¥ë" + +-#: gcc.c:2136 ++#: gcc.c:2139 + msgid "spec file has no spec for linking" + msgstr "spec ¥Õ¥¡¥¤¥ë¤Ë¥ê¥ó¥¯¤Ë´Ø¤¹¤ë spec ¤¬¤¢¤ê¤Þ¤»¤ó" + +-#: gcc.c:2641 ++#: gcc.c:2644 + msgid "-pipe not supported" + msgstr "-pipe ¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" + +-#: gcc.c:2703 ++#: gcc.c:2706 + msgid "" + "\n" + "Go ahead? (y or n) " +@@ -5279,7 +5288,7 @@ + "\n" + "³¤±¤Þ¤¹¤«? (y ¤Þ¤¿¤Ï n) " + +-#: gcc.c:2829 ++#: gcc.c:2832 + #, c-format + msgid "" + "Internal error: %s (program %s)\n" +@@ -5290,71 +5299,71 @@ + "´°Á´¤Ê¥Ð¥°¥ì¥Ý¡¼¥È¤òÁ÷¤Ã¤Æ¤¯¤À¤µ¤¤¡£\n" + "%s ¤Ë¼ê½ç¤¬½ñ¤¤¤Æ¤¢¤ê¤Þ¤¹¡£" + +-#: gcc.c:2847 ++#: gcc.c:2850 + #, c-format + msgid "# %s %.2f %.2f\n" + msgstr "# %s %.2f %.2f\n" + +-#: gcc.c:2980 ++#: gcc.c:2983 + #, c-format + msgid "Usage: %s [options] file...\n" + msgstr "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó] ¥Õ¥¡¥¤¥ë...\n" + +-#: gcc.c:2981 ++#: gcc.c:2984 + msgid "Options:\n" + msgstr "¥ª¥×¥·¥ç¥ó:\n" + +-#: gcc.c:2983 ++#: gcc.c:2986 + msgid " -pass-exit-codes Exit with highest error code from a phase\n" + msgstr "" + " -pass-exit-codes ¥Õ¥§¡¼¥º¤«¤é¤Î¥¨¥é¡¼¥³¡¼¥É¤ÎºÇÂçÃͤò exit\n" + " ¥³¡¼¥É¤È¤·¤ÆÊÖ¤¹\n" + +-#: gcc.c:2984 ++#: gcc.c:2987 + msgid " --help Display this information\n" + msgstr " --help ¤³¤Î¥Ø¥ë¥×¾ðÊó¤òɽ¼¨\n" + +-#: gcc.c:2985 ++#: gcc.c:2988 + msgid " --target-help Display target specific command line options\n" + msgstr " --target-help ¥¿¡¼¥²¥Ã¥È¸ÇÍ­¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤òɽ¼¨\n" + +-#: gcc.c:2987 ++#: gcc.c:2990 + msgid " (Use '-v --help' to display command line options of sub-processes)\n" + msgstr "(`-v --help' ¤ò»È¤¦¤È¡¢»Ò¥×¥í¥»¥¹¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤òɽ¼¨)\n" + +-#: gcc.c:2988 ++#: gcc.c:2991 + msgid " -dumpspecs Display all of the built in spec strings\n" + msgstr " -dumpspecs ÁȤ߹þ¤Þ¤ì¤¿ spec ʸ»úÎó¤òÁ´¤Æɽ¼¨\n" + +-#: gcc.c:2989 ++#: gcc.c:2992 + msgid " -dumpversion Display the version of the compiler\n" + msgstr " -dumpversion ¥³¥ó¥Ñ¥¤¥é¤Î¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨\n" + +-#: gcc.c:2990 ++#: gcc.c:2993 + msgid " -dumpmachine Display the compiler's target processor\n" + msgstr " -dumpmachine ¥³¥ó¥Ñ¥¤¥é¤Î¥¿¡¼¥²¥Ã¥È¥×¥í¥»¥Ã¥µ¤òɽ¼¨\n" + +-#: gcc.c:2991 ++#: gcc.c:2994 + msgid " -print-search-dirs Display the directories in the compiler's search path\n" + msgstr " -print-search-dirs ¥³¥ó¥Ñ¥¤¥é¤Î¥µ¡¼¥Á¥Ñ¥¹¤Ë¤¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¤òɽ¼¨\n" + +-#: gcc.c:2992 ++#: gcc.c:2995 + msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n" + msgstr " -print-libgcc-file-name ¥³¥ó¥Ñ¥¤¥é¤Î¥³¥ó¥Ñ¥Ë¥ª¥ó¥é¥¤¥Ö¥é¥ê̾¤òɽ¼¨\n" + +-#: gcc.c:2993 ++#: gcc.c:2996 + msgid " -print-file-name= Display the full path to library \n" + msgstr " -print-file-name= ¥é¥¤¥Ö¥é¥ê ¤Ø¤Î¥Õ¥ë¥Ñ¥¹¤òɽ¼¨\n" + +-#: gcc.c:2994 ++#: gcc.c:2997 + msgid " -print-prog-name= Display the full path to compiler component \n" + msgstr " -print-prog-name= ¥³¥ó¥Ñ¥¤¥é¤ÎÉôÉÊ ¤Ø¤Î¥Õ¥ë¥Ñ¥¹¤òɽ¼¨\n" + +-#: gcc.c:2995 ++#: gcc.c:2998 + msgid " -print-multi-directory Display the root directory for versions of libgcc\n" + msgstr " -print-multi-directory libgcc ¤Î¥Ð¡¼¥¸¥ç¥ó¥Ç¥£¥ì¥¯¥È¥ê¥ë¡¼¥È¤òɽ¼¨\n" + +-#: gcc.c:2996 ++#: gcc.c:2999 + msgid "" + " -print-multi-lib Display the mapping between command line options and\n" + " multiple library search directories\n" +@@ -5362,101 +5371,101 @@ + " -print-multi-lib ¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤ÈÊ£¿ô¤Î¥é¥¤¥Ö¥é¥êõº÷\n" + " ¥Ç¥£¥ì¥¯¥È¥ê¤È¤ÎÂбþ¤òɽ¼¨\n" + +-#: gcc.c:2999 ++#: gcc.c:3002 + #, fuzzy + msgid " -print-multi-os-directory Display the relative path to OS libraries\n" + msgstr " -print-multi-directory libgcc ¤Î¥Ð¡¼¥¸¥ç¥ó¥Ç¥£¥ì¥¯¥È¥ê¥ë¡¼¥È¤òɽ¼¨\n" + +-#: gcc.c:3000 ++#: gcc.c:3003 + msgid " -Wa, Pass comma-separated on to the assembler\n" + msgstr " -Wa, ¥«¥ó¥Þ¶èÀÚ¤ê¤Î ¤ò¥¢¥»¥ó¥Ö¥é¤ËÅϤ¹\n" + +-#: gcc.c:3001 ++#: gcc.c:3004 + msgid " -Wp, Pass comma-separated on to the preprocessor\n" + msgstr " -Wp, ¥«¥ó¥Þ¶èÀÚ¤ê¤Î ¤ò¥×¥ê¥×¥í¥»¥Ã¥µ¤ËÅϤ¹\n" + +-#: gcc.c:3002 ++#: gcc.c:3005 + msgid " -Wl, Pass comma-separated on to the linker\n" + msgstr " -Wl, ¥«¥ó¥Þ¶èÀÚ¤ê¤Î ¤ò¥ê¥ó¥«¤ËÅϤ¹\n" + +-#: gcc.c:3003 ++#: gcc.c:3006 + #, fuzzy + msgid " -Xassembler Pass on to the assembler\n" + msgstr " -Xlinker ¤ò¥ê¥ó¥«¤ËÅϤ¹\n" + +-#: gcc.c:3004 ++#: gcc.c:3007 + #, fuzzy + msgid " -Xpreprocessor Pass on to the preprocessor\n" + msgstr " -Xlinker ¤ò¥ê¥ó¥«¤ËÅϤ¹\n" + +-#: gcc.c:3005 ++#: gcc.c:3008 + msgid " -Xlinker Pass on to the linker\n" + msgstr " -Xlinker ¤ò¥ê¥ó¥«¤ËÅϤ¹\n" + +-#: gcc.c:3006 ++#: gcc.c:3009 + msgid " -save-temps Do not delete intermediate files\n" + msgstr " -save-temps Ãæ´Ö¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Ê¤¤\n" + +-#: gcc.c:3007 ++#: gcc.c:3010 + msgid " -pipe Use pipes rather than intermediate files\n" + msgstr " -pipe Ãæ´Ö¥Õ¥¡¥¤¥ë¤Ç¤Ï¤Ê¤¯¥Ñ¥¤¥×¤ò»È¤¦\n" + +-#: gcc.c:3008 ++#: gcc.c:3011 + msgid " -time Time the execution of each subprocess\n" + msgstr " -time »Ò¥×¥í¥»¥¹¤´¤È¤Î¼Â¹Ô»þ´Ö¤ò·×¬¤¹¤ë\n" + +-#: gcc.c:3009 ++#: gcc.c:3012 + #, fuzzy + msgid " -specs= Override built-in specs with the contents of \n" + msgstr " -specs= ÁȤ߹þ¤ß specs ¤ò ¤ÎÆâÍƤÇÃÖ¤­´¹¤¨¤ë\n" + +-#: gcc.c:3010 ++#: gcc.c:3013 + msgid " -std= Assume that the input sources are for \n" + msgstr " -std= ÆþÎÏ¥½¡¼¥¹¤ò ¤È¸«¤Ê¤¹\n" + +-#: gcc.c:3011 ++#: gcc.c:3014 + msgid " -B Add to the compiler's search paths\n" + msgstr " -B ¤ò¥³¥ó¥Ñ¥¤¥é¤Îõº÷¥Ñ¥¹¤ËÄɲ乤ë\n" + +-#: gcc.c:3012 ++#: gcc.c:3015 + msgid " -b Run gcc for target , if installed\n" + msgstr "" + " -b ¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ì¤Ð¥¿¡¼¥²¥Ã¥È ¤È¤·¤Æ\n" + " gcc ¤ò¼Â¹Ô¤¹¤ë\n" + +-#: gcc.c:3013 ++#: gcc.c:3016 + msgid " -V Run gcc version number , if installed\n" + msgstr "" + " -V ¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ì¤Ð ¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤Î\n" + " gcc ¤È¤·¤Æ¼Â¹Ô¤¹¤ë\n" + +-#: gcc.c:3014 ++#: gcc.c:3017 + msgid " -v Display the programs invoked by the compiler\n" + msgstr " -v ¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤Ã¤Æµ¯Æ°¤µ¤ì¤ë¥×¥í¥°¥é¥à¤òɽ¼¨\n" + +-#: gcc.c:3015 ++#: gcc.c:3018 + msgid " -### Like -v but options quoted and commands not executed\n" + msgstr "" + +-#: gcc.c:3016 ++#: gcc.c:3019 + msgid " -E Preprocess only; do not compile, assemble or link\n" + msgstr "" + " -E ¥×¥ê¥×¥í¥»¥¹¤Î¤ß -- ¥³¥ó¥Ñ¥¤¥ë¡¢¥¢¥»¥ó¥Ö¥ë¡¢¥ê¥ó¥¯\n" + " ¤ò¹Ô¤Ê¤ï¤Ê¤¤\n" + +-#: gcc.c:3017 ++#: gcc.c:3020 + msgid " -S Compile only; do not assemble or link\n" + msgstr " -S ¥³¥ó¥Ñ¥¤¥ë¤Î¤ß -- ¥¢¥»¥ó¥Ö¥ë¡¢¥ê¥ó¥¯¤ò¹Ô¤Ê¤ï¤Ê¤¤\n" + +-#: gcc.c:3018 ++#: gcc.c:3021 + msgid " -c Compile and assemble, but do not link\n" + msgstr " -c ¥³¥ó¥Ñ¥¤¥ë¡¢¥¢¥»¥ó¥Ö¥ë¤¹¤ë¤¬¡¢¥ê¥ó¥¯¤ò¹Ô¤Ê¤ï¤Ê¤¤\n" + +-#: gcc.c:3019 ++#: gcc.c:3022 + msgid " -o Place the output into \n" + msgstr " -o ¤Ë½ÐÎϤò¹Ô¤Ê¤¦\n" + +-#: gcc.c:3020 ++#: gcc.c:3023 + #, fuzzy + msgid "" + " -x Specify the language of the following input files\n" +@@ -5469,7 +5478,7 @@ + " 'none' ¤ò»ØÄꤹ¤ë¤È¥Õ¥¡¥¤¥ë³ÈÄ¥»Ò¤Ë¤è¤Ã¤Æ¸À¸ì¤ò\n" + " ¿äÄꤹ¤ë¡¢¥Ç¥Õ¥©¥ë¥È¤Î¿¶¤ëÉñ¤¤¤ËÌá¤ë\n" + +-#: gcc.c:3027 ++#: gcc.c:3030 + #, c-format + msgid "" + "\n" +@@ -5482,99 +5491,99 @@ + "»Ò¥×¥í¥»¥¹¤Ë¼«Æ°Åª¤ËÅϤµ¤ì¤Þ¤¹¡£¤³¤¦¤¤¤Ã¤¿¥×¥í¥»¥¹¤Ë¤½¤Î¾¤Î¥ª¥×¥·¥ç¥ó¤òÅϤ¹\n" + "¤Ë¤Ï -W ¥ª¥×¥·¥ç¥ó¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£\n" + +-#: gcc.c:3148 ++#: gcc.c:3151 + #, fuzzy, c-format + msgid "`-%c' option must have argument" + msgstr "-param ¥ª¥×¥·¥ç¥ó¤Ë°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó" + +-#: gcc.c:3170 ++#: gcc.c:3173 + #, c-format + msgid "couldn't run `%s': %s" + msgstr "" + + #. translate_options () has turned --version into -fversion. +-#: gcc.c:3356 ++#: gcc.c:3359 + #, c-format + msgid "%s (GCC) %s\n" + msgstr "" + +-#: gcc.c:3358 gcov.c:424 f/g77spec.c:351 ++#: gcc.c:3361 gcov.c:424 f/g77spec.c:351 + msgid "(C)" + msgstr "" + +-#: gcc.c:3359 ++#: gcc.c:3362 + msgid "" + "This is free software; see the source for copying conditions. There is NO\n" + "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" + "\n" + msgstr "" + +-#: gcc.c:3460 ++#: gcc.c:3463 + msgid "argument to `-Xlinker' is missing" + msgstr "`-Xlinker' ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó" + +-#: gcc.c:3468 ++#: gcc.c:3471 + #, fuzzy + msgid "argument to `-Xpreprocessor' is missing" + msgstr "`-specs' ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó" + +-#: gcc.c:3475 ++#: gcc.c:3478 + #, fuzzy + msgid "argument to `-Xassembler' is missing" + msgstr "`-Xlinker' ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó" + +-#: gcc.c:3482 ++#: gcc.c:3485 + #, fuzzy + msgid "argument to `-l' is missing" + msgstr "`-x' ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó" + +-#: gcc.c:3498 ++#: gcc.c:3501 + msgid "argument to `-specs' is missing" + msgstr "`-specs' ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó" + +-#: gcc.c:3512 ++#: gcc.c:3515 + msgid "argument to `-specs=' is missing" + msgstr "`-specs=' ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó" + +-#: gcc.c:3549 ++#: gcc.c:3552 + #, c-format + msgid "`-%c' must come at the start of the command line" + msgstr "" + +-#: gcc.c:3558 ++#: gcc.c:3561 + msgid "argument to `-B' is missing" + msgstr "`-B' ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó" + +-#: gcc.c:3735 ++#: gcc.c:3738 + #, fuzzy + msgid "warning: -pipe ignored because -save-temps specified" + msgstr "·Ù¹ð: -save-temps ¤¬»ØÄꤵ¤ì¤¿¤Î¤Ç -pipe ¤Ï̵»ë¤µ¤ì¤Þ¤¹" + +-#: gcc.c:3739 ++#: gcc.c:3742 + #, fuzzy + msgid "warning: -pipe ignored because -time specified" + msgstr "·Ù¹ð: -time ¤¬»ØÄꤵ¤ì¤¿¤Î¤Ç -pipe ¤Ï̵»ë¤µ¤ì¤Þ¤¹" + +-#: gcc.c:3951 ++#: gcc.c:3954 + msgid "argument to `-x' is missing" + msgstr "`-x' ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó" + +-#: gcc.c:3979 ++#: gcc.c:3982 + #, c-format + msgid "argument to `-%s' is missing" + msgstr "`-%s' ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó" + +-#: gcc.c:4040 ++#: gcc.c:4043 + #, fuzzy, c-format + msgid "warning: `-x %s' after last input file has no effect" + msgstr "·Ù¹ð: ºÇ¸å¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤Î¸å¤Î `-x %s' ¤Ï²¿¤â¤·¤Þ¤»¤ó" + +-#: gcc.c:4441 ++#: gcc.c:4444 + #, fuzzy + msgid "invalid specification! Bug in cc" + msgstr "̵¸ú¤Ê»ØÄê! cc ¤Î¥Ð¥°." + +-#: gcc.c:4595 ++#: gcc.c:4598 + #, c-format + msgid "%s\n" + msgstr "%s\n" +@@ -5582,80 +5591,80 @@ + #. Catch the case where a spec string contains something like + #. '%{foo:%*}'. ie there is no * in the pattern on the left + #. hand side of the :. +-#: gcc.c:5099 ++#: gcc.c:5102 + #, fuzzy, c-format + msgid "spec failure: '%%*' has not been initialized by pattern match" + msgstr "spec ¥¨¥é¡¼: '%%*' ¤Ï¥Ñ¥¿¡¼¥ó¥Þ¥Ã¥Á¤Ç½é´ü²½¤µ¤ì¤Ê¤¤¤Þ¤Þ¤Ç¤¹" + +-#: gcc.c:5108 ++#: gcc.c:5111 + #, fuzzy, c-format + msgid "warning: use of obsolete %%[ operator in specs" + msgstr "·Ù¹ð: µì¼°¤Î %%[ ±é»»»Ò¤¬ spec ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤¹" + +-#: gcc.c:5126 ++#: gcc.c:5129 + #, c-format + msgid "Processing spec %c%s%c, which is '%s'\n" + msgstr "spec %c%s%c ¤ò½èÍýÃæ, ¤³¤ì¤Ï '%s' ¤Ç¤¹\n" + +-#: gcc.c:5189 ++#: gcc.c:5192 + #, fuzzy, c-format + msgid "spec failure: unrecognized spec option '%c'" + msgstr "spec ¥¨¥é¡¼: ǧ¼±ÉÔǽ¤Ê spec ¥ª¥×¥·¥ç¥ó '%c'" + +-#: gcc.c:5268 ++#: gcc.c:5271 + #, fuzzy, c-format + msgid "unknown spec function `%s'" + msgstr "´Ø¿ô `%s' Æâ:" + +-#: gcc.c:5287 ++#: gcc.c:5290 + #, fuzzy, c-format + msgid "error in args to spec function `%s'" + msgstr "´Ø¿ô `%s' ¤ËÂФ¹¤ë°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹" + +-#: gcc.c:5335 ++#: gcc.c:5338 + #, fuzzy + msgid "malformed spec function name" + msgstr "¥­¥ã¥¹¥È¤Ï´Ø¿ô·¿¤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹" + + #. ) +-#: gcc.c:5338 ++#: gcc.c:5341 + #, fuzzy + msgid "no arguments for spec function" + msgstr "´Ø¿ô¤Ø¤Î°ú¿ô¤¬¾¯¤Ê¤¹¤®¤Þ¤¹" + +-#: gcc.c:5357 ++#: gcc.c:5360 + msgid "malformed spec function arguments" + msgstr "" + +-#: gcc.c:6083 ++#: gcc.c:6086 + msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC." + msgstr "" + +-#: gcc.c:6093 ++#: gcc.c:6096 + msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC." + msgstr "" + +-#: gcc.c:6186 ++#: gcc.c:6189 + #, c-format + msgid "unrecognized option `-%s'" + msgstr "ǧ¼±ÉÔǽ¤Ê¥ª¥×¥·¥ç¥ó `-%s'" + +-#: gcc.c:6192 ++#: gcc.c:6195 + #, c-format + msgid "install: %s%s\n" + msgstr "¥¤¥ó¥¹¥È¡¼¥ë: %s%s\n" + +-#: gcc.c:6193 ++#: gcc.c:6196 + #, c-format + msgid "programs: %s\n" + msgstr "¥×¥í¥°¥é¥à: %s\n" + +-#: gcc.c:6194 ++#: gcc.c:6197 + #, c-format + msgid "libraries: %s\n" + msgstr "¥é¥¤¥Ö¥é¥ê: %s\n" + +-#: gcc.c:6251 ++#: gcc.c:6254 + msgid "" + "\n" + "For bug reporting instructions, please see:\n" +@@ -5663,52 +5672,52 @@ + "\n" + "¥Ð¥°¥ì¥Ý¡¼¥È¤Î¼ê½ç¤Ï¡¢°Ê²¼¤ò»²¾È\n" + +-#: gcc.c:6267 ++#: gcc.c:6270 + #, c-format + msgid "Configured with: %s\n" + msgstr "¥³¥ó¥Õ¥£¥°¥ª¥×¥·¥ç¥ó: %s\n" + +-#: gcc.c:6281 ++#: gcc.c:6284 + #, c-format + msgid "Thread model: %s\n" + msgstr "¥¹¥ì¥Ã¥É¥â¥Ç¥ë: %s\n" + +-#: gcc.c:6292 ++#: gcc.c:6295 + #, c-format + msgid "gcc version %s\n" + msgstr "gcc ¥Ð¡¼¥¸¥ç¥ó %s\n" + +-#: gcc.c:6294 ++#: gcc.c:6297 + #, c-format + msgid "gcc driver version %s executing gcc version %s\n" + msgstr "gcc ¥É¥é¥¤¥Ð¥Ð¡¼¥¸¥ç¥ó %s ¼Â¹Ô gcc ¥Ð¡¼¥¸¥ç¥ó %s\n" + +-#: gcc.c:6302 ++#: gcc.c:6305 + #, fuzzy + msgid "no input files" + msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¤Þ¤»¤ó" + +-#: gcc.c:6324 gcc.c:6443 ++#: gcc.c:6327 gcc.c:6446 + #, c-format + msgid "%s: linker input file unused because linking not done" + msgstr "%s: ¥ê¥ó¥¯¤¬´°Î»¤·¤Ê¤«¤Ã¤¿¤Î¤Ç¥ê¥ó¥«¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤Ï»È¤ï¤ì¤Þ¤»¤ó¤Ç¤·¤¿" + +-#: gcc.c:6327 ++#: gcc.c:6330 + #, fuzzy + msgid "cannot specify -o with -c or -S and multiple languages" + msgstr "-c ¤ä -S ¤È°ì½ï¤Ë -o ¤ò»ØÄꤹ¤ë¤È¡¢Ê£¿ô¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Þ¤»¤ó" + +-#: gcc.c:6362 ++#: gcc.c:6365 + #, c-format + msgid "%s: %s compiler not installed on this system" + msgstr "%s: %s ¥³¥ó¥Ñ¥¤¥é¤Ï¤³¤Î¥·¥¹¥Æ¥à¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" + +-#: gcc.c:6483 ++#: gcc.c:6486 + #, c-format + msgid "language %s not recognized" + msgstr "¸À¸ì %s ¤Ïǧ¼±¤Ç¤­¤Þ¤»¤ó" + +-#: gcc.c:6580 ++#: gcc.c:6583 + #, fuzzy + msgid "internal gcc abort" + msgstr "ÆâÉô gcc ÃæÃÇ" +@@ -6001,22 +6010,22 @@ + msgid "GCSE disabled" + msgstr "" + +-#: gcse.c:6124 ++#: gcse.c:6125 + msgid "NULL pointer checks disabled" + msgstr "" + + #. Return if there's nothing to do, or it is too expensive. +-#: gcse.c:8010 ++#: gcse.c:8036 + #, fuzzy + msgid "jump bypassing disabled" + msgstr "-g ¥ª¥×¥·¥ç¥ó¤ò̵¸ú²½¤·¤Þ¤·¤¿¡£" + +-#: gcse.c:8071 ++#: gcse.c:8097 + #, fuzzy, c-format + msgid "%s: %d basic blocks and %d edges/basic block" + msgstr "GCSE ¤ò̵¸ú²½: %d > 1000 ´ðËÜ¥Ö¥í¥Ã¥¯¡¢µÚ¤Ó %d >= 20 edge/´ðËÜ¥Ö¥í¥Ã¥¯" + +-#: gcse.c:8084 ++#: gcse.c:8110 + #, fuzzy, c-format + msgid "%s: %d basic blocks and %d registers" + msgstr "GCSE ¤ò̵¸ú²½: %d ´ðËÜ¥Ö¥í¥Ã¥¯¡¢µÚ¤Ó %d ¸Ä¤Î¥ì¥¸¥¹¥¿" +@@ -6067,7 +6076,7 @@ + msgid "%s cannot be used in asm here" + msgstr "\"%s\" ¤Ï¥Þ¥¯¥í̾¤È¤·¤Æ¤Ï»È¤¨¤Þ¤»¤ó" + +-#: graph.c:403 toplev.c:1498 toplev.c:4432 f/com.c:14202 java/jcf-parse.c:883 ++#: graph.c:403 toplev.c:1498 toplev.c:4433 f/com.c:14202 java/jcf-parse.c:883 + #: java/jcf-parse.c:1029 java/lex.c:1828 objc/objc-act.c:503 + #, fuzzy, c-format + msgid "can't open %s: %m" +@@ -6147,7 +6156,7 @@ + msgid "function with target specific attribute(s) cannot be inlined" + msgstr "¥¿¡¼¥²¥Ã¥È¸Çͭ°À­Éդδؿô¤Ï inline ¤Ë¤Ç¤­¤Þ¤»¤ó" + +-#: jump.c:1896 ++#: jump.c:1913 + #, fuzzy + msgid "%Hwill never be executed" + msgstr "¸Æ¤Ó½Ð¤· %d ¤Ï°ìÅÙ¤â¼Â¹Ô¤»¤º\n" +@@ -6646,7 +6655,7 @@ + msgid "can't use '%s' as a %s register" + msgstr "'%s' ¤ò %s ¤Î¥ì¥¸¥¹¥¿¤È¤·¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó" + +-#: regclass.c:758 config/ia64/ia64.c:4660 config/ia64/ia64.c:4667 ++#: regclass.c:758 config/ia64/ia64.c:4666 config/ia64/ia64.c:4673 + #, c-format + msgid "unknown register name: %s" + msgstr "ÉÔÌÀ¤Ê¥ì¥¸¥¹¥¿Ì¾¤Ç¤¹: %s" +@@ -6691,16 +6700,16 @@ + msgid "impossible register constraint in `asm'" + msgstr "`asm' Æâ¤Ç¤Ï¥ì¥¸¥¹¥¿À©Ìó¤ò¹Ô¤Ê¤¨¤Þ¤»¤ó" + +-#: reload.c:3504 ++#: reload.c:3519 + msgid "`&' constraint used with no register class" + msgstr "`&' À©Ì󤬥쥸¥¹¥¿¥¯¥é¥¹Ìµ¤·¤Ç»È¤ï¤ì¤Þ¤·¤¿" + +-#: reload.c:3672 ++#: reload.c:3687 + #, fuzzy + msgid "unable to generate reloads for:" + msgstr "¥³¡¼¥É¤¬À¸À®¤µ¤ì¤ë CPU ¤òÁªÂò¤¹¤ë" + +-#: reload.c:3673 reload.c:3887 ++#: reload.c:3688 reload.c:3902 + msgid "inconsistent operand constraints in an `asm'" + msgstr "`asm' Æâ¤Ç¤Î¥ª¥Ú¥é¥ó¥ÉÀ©Ìó¤¬Ì·½â¤·¤Æ¤¤¤Þ¤¹" + +@@ -7120,11 +7129,11 @@ + msgid "invalid register name `%s' for register variable" + msgstr "`%s' ¤Ï¥ì¥¸¥¹¥¿ÊÑ¿ô¤È¤·¤Æ¤Ï̵¸ú¤Ê¥ì¥¸¥¹¥¿Ì¾¤Ç¤¹" + +-#: toplev.c:3546 ++#: toplev.c:3547 + msgid "branch target register load optimization is not intended to be run twice" + msgstr "" + +-#: toplev.c:3713 ++#: toplev.c:3714 + msgid "" + "\n" + "Target specific options:\n" +@@ -7132,12 +7141,12 @@ + "\n" + "¥¿¡¼¥²¥Ã¥È»ÅÍÍ¥ª¥×¥·¥ç¥ó:\n" + +-#: toplev.c:3727 toplev.c:3746 ++#: toplev.c:3728 toplev.c:3747 + #, fuzzy, c-format + msgid " -m%-23s [undocumented]\n" + msgstr " -m%-23.23s [ʸ½ñ²½¤µ¤ì¤Æ¤¤¤Ê¤¤]\n" + +-#: toplev.c:3755 ++#: toplev.c:3756 + msgid "" + "\n" + "There are undocumented target specific options as well.\n" +@@ -7145,21 +7154,21 @@ + "\n" + "ʸ½ñ²½¤µ¤ì¤Æ¤¤¤Ê¤¤¥¿¡¼¥²¥Ã¥È»ÅÍÍ¥ª¥×¥·¥ç¥ó¤â¤¢¤ê¤Þ¤¹¡£\n" + +-#: toplev.c:3757 ++#: toplev.c:3758 + msgid " They exist, but they are not documented.\n" + msgstr " ¤³¤ì¤é¤Ï¸ºß¤·¤Þ¤¹¤¬¡¢Ê¸½ñ²½¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n" + +-#: toplev.c:3812 ++#: toplev.c:3813 + #, c-format + msgid "unrecognized gcc debugging option: %c" + msgstr "ǧ¼±¤Ç¤­¤Ê¤¤ gcc ¥Ç¥Ð¥Ã¥°¥ª¥×¥·¥ç¥ó: %c" + +-#: toplev.c:3874 config/rs6000/rs6000.c:922 ++#: toplev.c:3875 config/rs6000/rs6000.c:940 config/rs6000/rs6000.c:951 + #, fuzzy, c-format + msgid "invalid option `%s'" + msgstr "̵¸ú¤Ê¥ª¥×¥·¥ç¥ó `%s'" + +-#: toplev.c:3889 ++#: toplev.c:3890 + #, c-format + msgid "" + "%s%s%s version %s (%s)\n" +@@ -7170,100 +7179,100 @@ + "%s\tcompiled by GNU C version %s.\n" + "%s%s%s version %s (%s) compiled by CC.\n" + +-#: toplev.c:3896 ++#: toplev.c:3897 + #, c-format + msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n" + msgstr "" + +-#: toplev.c:3948 ++#: toplev.c:3949 + msgid "options passed: " + msgstr "ÅϤµ¤ì¤¿¥ª¥×¥·¥ç¥ó: " + +-#: toplev.c:3977 ++#: toplev.c:3978 + msgid "options enabled: " + msgstr "Í­¸ú¥ª¥×¥·¥ç¥ó: " + +-#: toplev.c:4035 java/jcf-write.c:3424 ++#: toplev.c:4036 java/jcf-write.c:3424 + #, fuzzy, c-format + msgid "can't open %s for writing: %m" + msgstr "%s ¤ò½ñ¤­¹þ¤ßÍѤ˳«¤±¤Þ¤»¤ó¤Ç¤·¤¿" + +-#: toplev.c:4118 config/sh/sh.c:7019 ++#: toplev.c:4119 config/sh/sh.c:7020 + msgid "created and used with different settings of -fpic" + msgstr "" + +-#: toplev.c:4120 config/sh/sh.c:7021 ++#: toplev.c:4121 config/sh/sh.c:7022 + msgid "created and used with different settings of -fpie" + msgstr "" + +-#: toplev.c:4171 config/sh/sh.c:7071 ++#: toplev.c:4172 config/sh/sh.c:7072 + #, c-format + msgid "created and used with differing settings of `-m%s'" + msgstr "" + +-#: toplev.c:4174 config/sh/sh.c:7074 ++#: toplev.c:4175 config/sh/sh.c:7075 + msgid "out of memory" + msgstr "" + +-#: toplev.c:4355 ++#: toplev.c:4356 + msgid "instruction scheduling not supported on this target machine" + msgstr "Ì¿Î᥹¥±¥¸¥å¡¼¥ê¥ó¥°¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¥Þ¥·¥ó¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó" + +-#: toplev.c:4359 ++#: toplev.c:4360 + msgid "this target machine does not have delayed branches" + msgstr "¤³¤Î¥¿¡¼¥²¥Ã¥È¥Þ¥·¥ó¤ÏÃÙ±äʬ´ô¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó" + +-#: toplev.c:4373 ++#: toplev.c:4374 + #, c-format + msgid "-f%sleading-underscore not supported on this target machine" + msgstr "-f%sleading-underscore ¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¥Þ¥·¥ó¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó" + +-#: toplev.c:4422 ++#: toplev.c:4423 + #, fuzzy, c-format + msgid "target system does not support the \"%s\" debug format" + msgstr "%s ¤Ï `%%%s%c' %s ¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó" + +-#: toplev.c:4439 ++#: toplev.c:4440 + #, fuzzy + msgid "-ffunction-sections not supported for this target" + msgstr "-ffunction-sections ¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¼õ¤±Æþ¤ì¤é¤ì¤Þ¤»¤ó" + +-#: toplev.c:4444 ++#: toplev.c:4445 + #, fuzzy + msgid "-fdata-sections not supported for this target" + msgstr "-fdata-sections ¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¼õ¤±Æþ¤ì¤é¤ì¤Þ¤»¤ó" + +-#: toplev.c:4451 ++#: toplev.c:4452 + #, fuzzy + msgid "-ffunction-sections disabled; it makes profiling impossible" + msgstr "-ffunction-sections ¤¬Ìµ¸ú¤Ç¤¹ -- ¥×¥í¥Õ¥¡¥¤¥ë¤ÏÉÔ²Äǽ¤Ç¤¹" + +-#: toplev.c:4458 ++#: toplev.c:4459 + #, fuzzy + msgid "-fprefetch-loop-arrays not supported for this target" + msgstr "-fdata-sections ¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¼õ¤±Æþ¤ì¤é¤ì¤Þ¤»¤ó" + +-#: toplev.c:4464 ++#: toplev.c:4465 + #, fuzzy + msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)" + msgstr "-f%sleading-underscore ¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¥Þ¥·¥ó¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó" + +-#: toplev.c:4473 ++#: toplev.c:4474 + #, fuzzy + msgid "-fprefetch-loop-arrays is not supported with -Os" + msgstr "-mg ¤Ç¤Î¥×¥í¥Õ¥¡¥¤¥ë¤ÏÄ󶡤µ¤ì¤Þ¤»¤ó\n" + +-#: toplev.c:4479 ++#: toplev.c:4480 + #, fuzzy + msgid "-ffunction-sections may affect debugging on some targets" + msgstr "-ffunction-sections ¤Ï¥¿¡¼¥²¥Ã¥È¤Ë¤è¤Ã¤Æ¤Ï¥Ç¥Ð¥Ã¥°¤Ë±Æ¶Á¤¹¤ë¤«¤â¤·¤ì¤Þ¤»¤ó" + +-#: toplev.c:4581 ++#: toplev.c:4582 + #, fuzzy, c-format + msgid "error writing to %s: %m" + msgstr "%s ¤Ø¤Î½ñ¤­¹þ¤ß¥¨¥é¡¼¤Ç¤¹" + +-#: toplev.c:4583 java/jcf-parse.c:902 java/jcf-write.c:3431 ++#: toplev.c:4584 java/jcf-parse.c:902 java/jcf-write.c:3431 + #, fuzzy, c-format + msgid "error closing %s: %m" + msgstr "¥¨¥é¡¼¤Ë¤è¤ê %s ¤òÊĤ¸¤Þ¤¹" +@@ -7310,7 +7319,7 @@ + msgid "%Jfunction '%F' can never be inlined because it uses variable sized variables" + msgstr "" + +-#: tree-inline.c:1338 tree-inline.c:1345 ++#: tree-inline.c:1338 tree-inline.c:1346 + #, fuzzy + msgid "%Jinlining failed in call to '%F': %s" + msgstr "`%s' ¤Ø¤Î¸Æ¤Ó½Ð¤·¤Î¥¤¥ó¥é¥¤¥ó²½¤Ë¼ºÇÔ¤·¤Þ¤·¤¿" +@@ -7325,34 +7334,34 @@ + msgid "%Jsize of return value of '%D' is larger than %wd bytes" + msgstr "`%s' ¤ÎÌá¤êÃͤΥµ¥¤¥º¤¬ %d ¥Ð¥¤¥È¤è¤ê¤âÂ礭¤¯¤Ê¤ê¤Þ¤¹" + +-#: tree.c:3801 ++#: tree.c:3800 + msgid "arrays of functions are not meaningful" + msgstr "´Ø¿ô¤ÎÇÛÎó¤Ï°ÕÌ£¤¬¤¢¤ê¤Þ¤»¤ó" + +-#: tree.c:3856 ++#: tree.c:3855 + msgid "function return type cannot be function" + msgstr "´Ø¿ô¤ÎÊÖ¤¹·¿¤¬´Ø¿ô¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó" + +-#: tree.c:4685 ++#: tree.c:4684 + msgid "invalid initializer for bit string" + msgstr "̵¸ú¤Ê¥Ó¥Ã¥ÈÎó½é´ü²½»Ò¤Ç¤¹" + +-#: tree.c:4737 ++#: tree.c:4736 + #, fuzzy, c-format + msgid "tree check: expected %s, have %s in %s, at %s:%d" + msgstr "Tree ¸¡ºº: %s ¤¬¤¢¤ë¤Ù¤­½ê¤Ë %s ¤¬¤¢¤ê¤Þ¤¹(%s Æâ, %s:%d)" + +-#: tree.c:4750 ++#: tree.c:4749 + #, fuzzy, c-format + msgid "tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d" + msgstr "Tree ¸¡ºº: ¥¯¥é¥¹ '%c' ¤Î¤Ï¤º¤¬ '%c' (%s) ¤Ç¤¹(%s Æâ, %s:%d)" + +-#: tree.c:4763 ++#: tree.c:4762 + #, fuzzy, c-format + msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d" + msgstr "RTL check: ¥Ù¥¯¥È¥ë¤Î elt %d ¤òºÇ¸å¤Î elt %d (%s Ãæ)¤È°ì½ï¤Ë¥¢¥¯¥»¥¹¤·¤Þ¤¹ (%s:%d)" + +-#: tree.c:4775 ++#: tree.c:4774 + #, fuzzy, c-format + msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d" + msgstr "RTL ¸¡ºº: elt %d(%s) ¤¬ºÇ¸å¤Î elt %d(%s Ãæ) ¤È°ì½ï¤Ë¥¢¥¯¥»¥¹¤·¤Þ¤¹ (%s:%d)" +@@ -7414,51 +7423,51 @@ + msgid "%Jrequested alignment for '%D' is greater than implemented alignment of %d" + msgstr "%s ¤ËÍ׵ᤵ¤ì¤¿¥¢¥é¥¤¥ó¥á¥ó¥È¤Ï¼ÂÁõ¤µ¤ì¤¿¥¢¥é¥¤¥ó¥á¥ó¥È %d ¤è¤êÂ礭¤¤¤Ç¤¹" + +-#: varasm.c:3789 ++#: varasm.c:3790 + msgid "initializer for integer value is too complicated" + msgstr "À°¿ô¤Î½é´üÀßÄê»Ò¤ÎÃͤ¬Ê£»¨¤¹¤®¤Þ¤¹" + +-#: varasm.c:3794 ++#: varasm.c:3795 + msgid "initializer for floating value is not a floating constant" + msgstr "ÉâÆ°¾®¿ôÅÀ¿ô¤Î½é´üÀßÄê»Ò¤ÎÃͤ¬¡¢ÉâÆ°¾®¿ôÅÀÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: varasm.c:3860 ++#: varasm.c:3861 + msgid "unknown set constructor type" + msgstr "ÉÔÌÀ¤ÊÀßÄêºÑ¥³¥ó¥¹¥È¥é¥¯¥¿·¿¤Ç¤¹" + +-#: varasm.c:4079 ++#: varasm.c:4080 + #, c-format + msgid "invalid initial value for member `%s'" + msgstr "¥á¥ó¥Ð `%s' ¤ËÂФ¹¤ë̵¸ú¤Ê½é´üÃÍ" + +-#: varasm.c:4266 varasm.c:4310 ++#: varasm.c:4267 varasm.c:4311 + #, fuzzy + msgid "%Jweak declaration of '%D' must precede definition" + msgstr "`%s' ¤Î weak Àë¸À¤ÏÄêµÁ¤è¤ê¤âÀè¤Ë¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó" + +-#: varasm.c:4274 ++#: varasm.c:4275 + msgid "%Jweak declaration of '%D' after first use results in unspecified behavior" + msgstr "" + +-#: varasm.c:4308 ++#: varasm.c:4309 + #, fuzzy + msgid "%Jweak declaration of '%D' must be public" + msgstr "`%s' ¤Î weak Àë¸À¤Ï public ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó" + +-#: varasm.c:4317 ++#: varasm.c:4318 + #, fuzzy + msgid "%Jweak declaration of '%D' not supported" + msgstr "%s: '%s' ¤ÎÀë¸À¤ÏÊÑ´¹¤µ¤ì¤Þ¤»¤ó\n" + +-#: varasm.c:4346 varasm.c:4436 ++#: varasm.c:4347 varasm.c:4437 + msgid "only weak aliases are supported in this configuration" + msgstr "¸½ºß¤ÎÀßÄê¤Ç¤Ï weak alias ¤·¤«¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó" + +-#: varasm.c:4439 ++#: varasm.c:4440 + msgid "alias definitions not supported in this configuration; ignored" + msgstr "¸½ºß¤ÎÀßÄê¤Ç¤Ï alias ÄêµÁ¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó -- ̵»ë¤µ¤ì¤Þ¤·¤¿" + +-#: varasm.c:4468 ++#: varasm.c:4469 + #, fuzzy + msgid "visibility attribute not supported in this configuration; ignored" + msgstr "¸½ºß¤ÎÀßÄê¤Ç¤Ï alias ÄêµÁ¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó -- ̵»ë¤µ¤ì¤Þ¤·¤¿" +@@ -7691,7 +7700,7 @@ + msgid "junk at end of '#pragma unused'" + msgstr "'#pragma %s' ¤ÎºÇ¸å¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹" + +-#: config/darwin.c:1347 ++#: config/darwin.c:1312 + #, fuzzy + msgid "internal and protected visibility attributes not supportedin this configuration; ignored" + msgstr "¸½ºß¤ÎÀßÄê¤Ç¤Ï alias ÄêµÁ¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó -- ̵»ë¤µ¤ì¤Þ¤·¤¿" +@@ -7737,7 +7746,7 @@ + msgid "bad value `%s' for -mfp-trap-mode switch" + msgstr "-mfp-trap-mode ¥¹¥¤¥Ã¥Á¤Ë¤È¤Ã¤Æ¤ÎÉÔÀµ¤ÊÃÍ `%s'" + +-#: config/alpha/alpha.c:324 config/rs6000/rs6000.c:1088 ++#: config/alpha/alpha.c:324 config/rs6000/rs6000.c:1117 + #, fuzzy, c-format + msgid "bad value `%s' for -mtls-size switch" + msgstr "-mcpu ¥¹¥¤¥Ã¥Á¤Ë¤È¤Ã¤Æ¤ÎÉÔÀµ¤ÊÃÍ `%s'" +@@ -7779,91 +7788,91 @@ + msgid "bad value `%s' for -mmemory-latency" + msgstr "`%s' ¤Ï -mmemory-latency ¤Ë¤È¤Ã¤ÆÉÔÀµ¤ÊÃͤǤ¹" + +-#: config/alpha/alpha.c:5425 ++#: config/alpha/alpha.c:5436 + #, c-format + msgid "invalid %%H value" + msgstr "̵¸ú¤Ê %%H ÃÍ" + +-#: config/alpha/alpha.c:5446 ++#: config/alpha/alpha.c:5457 + #, fuzzy, c-format + msgid "invalid %%J value" + msgstr "̵¸ú¤Ê %%W ÃͤǤ¹" + +-#: config/alpha/alpha.c:5462 config/ia64/ia64.c:4263 ++#: config/alpha/alpha.c:5473 config/ia64/ia64.c:4269 + #, c-format + msgid "invalid %%r value" + msgstr "̵¸ú¤Ê %%r ÃÍ" + +-#: config/alpha/alpha.c:5472 config/rs6000/rs6000.c:9241 ++#: config/alpha/alpha.c:5483 config/rs6000/rs6000.c:9332 + #: config/xtensa/xtensa.c:2014 + #, c-format + msgid "invalid %%R value" + msgstr "̵¸ú¤Ê %%R ÃÍ" + +-#: config/alpha/alpha.c:5478 config/rs6000/rs6000.c:9160 ++#: config/alpha/alpha.c:5489 config/rs6000/rs6000.c:9251 + #: config/xtensa/xtensa.c:1981 + #, c-format + msgid "invalid %%N value" + msgstr "̵¸ú¤Ê %%N ÃÍ" + +-#: config/alpha/alpha.c:5486 config/rs6000/rs6000.c:9188 ++#: config/alpha/alpha.c:5497 config/rs6000/rs6000.c:9279 + #, c-format + msgid "invalid %%P value" + msgstr "̵¸ú¤Ê %%P ÃÍ" + +-#: config/alpha/alpha.c:5494 ++#: config/alpha/alpha.c:5505 + #, c-format + msgid "invalid %%h value" + msgstr "̵¸ú¤Ê %%h ÃÍ" + +-#: config/alpha/alpha.c:5502 config/xtensa/xtensa.c:2007 ++#: config/alpha/alpha.c:5513 config/xtensa/xtensa.c:2007 + #, c-format + msgid "invalid %%L value" + msgstr "̵¸ú¤Ê %%L ÃÍ" + +-#: config/alpha/alpha.c:5541 config/rs6000/rs6000.c:9142 ++#: config/alpha/alpha.c:5552 config/rs6000/rs6000.c:9233 + #, c-format + msgid "invalid %%m value" + msgstr "̵¸ú¤Ê %%m ÃÍ" + +-#: config/alpha/alpha.c:5549 config/rs6000/rs6000.c:9150 ++#: config/alpha/alpha.c:5560 config/rs6000/rs6000.c:9241 + #, c-format + msgid "invalid %%M value" + msgstr "̵¸ú¤Ê %%M ÃÍ" + +-#: config/alpha/alpha.c:5593 ++#: config/alpha/alpha.c:5604 + #, c-format + msgid "invalid %%U value" + msgstr "̵¸ú¤Ê %%U ÃÍ" + +-#: config/alpha/alpha.c:5605 config/alpha/alpha.c:5619 +-#: config/rs6000/rs6000.c:9249 ++#: config/alpha/alpha.c:5616 config/alpha/alpha.c:5630 ++#: config/rs6000/rs6000.c:9340 + #, c-format + msgid "invalid %%s value" + msgstr "̵¸ú¤Ê %%s ÃÍ" + +-#: config/alpha/alpha.c:5642 ++#: config/alpha/alpha.c:5653 + #, c-format + msgid "invalid %%C value" + msgstr "̵¸ú¤Ê %%C ÃÍ" + +-#: config/alpha/alpha.c:5679 config/rs6000/rs6000.c:8979 +-#: config/rs6000/rs6000.c:8999 ++#: config/alpha/alpha.c:5690 config/rs6000/rs6000.c:9070 ++#: config/rs6000/rs6000.c:9090 + #, c-format + msgid "invalid %%E value" + msgstr "̵¸ú¤Ê %%E ÃÍ" + +-#: config/alpha/alpha.c:5704 config/alpha/alpha.c:5752 ++#: config/alpha/alpha.c:5715 config/alpha/alpha.c:5763 + #, fuzzy + msgid "unknown relocation unspec" + msgstr "ÉÔÌÀ¤ÊÀßÄêºÑ¥³¥ó¥¹¥È¥é¥¯¥¿·¿¤Ç¤¹" + +-#: config/alpha/alpha.c:5713 config/rs6000/rs6000.c:9562 ++#: config/alpha/alpha.c:5724 config/rs6000/rs6000.c:9653 + #, c-format + msgid "invalid %%xn code" + msgstr "̵¸ú¤Ê %%xn ¥³¡¼¥É" + +-#: config/alpha/alpha.c:6657 config/alpha/alpha.c:6660 config/s390/s390.c:6575 ++#: config/alpha/alpha.c:6668 config/alpha/alpha.c:6671 config/s390/s390.c:6575 + #: config/s390/s390.c:6578 + #, fuzzy + msgid "bad builtin fcode" +@@ -8003,7 +8012,7 @@ + msgid "Tune expected memory latency" + msgstr "ͽ´ü¤µ¤ì¤ë¥á¥â¥ê¥ì¥¤¥Æ¥ó¥·¤òÄ´À°¤¹¤ë" + +-#: config/alpha/alpha.h:376 config/ia64/ia64.h:267 config/rs6000/sysv4.h:90 ++#: config/alpha/alpha.h:376 config/ia64/ia64.h:272 config/rs6000/sysv4.h:90 + msgid "Specify bit size of immediate TLS offsets" + msgstr "" + +@@ -8022,17 +8031,17 @@ + msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\"" + msgstr "" + +-#: config/arc/arc.c:1714 config/m32r/m32r.c:2352 ++#: config/arc/arc.c:1714 config/m32r/m32r.c:2349 + #, fuzzy, c-format + msgid "invalid operand to %%R code" + msgstr "%R ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É" + +-#: config/arc/arc.c:1746 config/m32r/m32r.c:2375 ++#: config/arc/arc.c:1746 config/m32r/m32r.c:2372 + #, fuzzy, c-format + msgid "invalid operand to %%H/%%L code" + msgstr "%H/%L ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É" + +-#: config/arc/arc.c:1769 config/m32r/m32r.c:2446 ++#: config/arc/arc.c:1769 config/m32r/m32r.c:2443 + #, fuzzy, c-format + msgid "invalid operand to %%U code" + msgstr "%U ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É" +@@ -8043,7 +8052,7 @@ + msgstr "%V ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É" + + #. Unknown flag. +-#: config/arc/arc.c:1787 config/m32r/m32r.c:2473 config/sparc/sparc.c:7010 ++#: config/arc/arc.c:1787 config/m32r/m32r.c:2470 config/sparc/sparc.c:7152 + msgid "invalid operand output code" + msgstr "̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É½ÐÎÏ¥³¡¼¥É" + +@@ -8052,7 +8061,7 @@ + msgid "switch -mcpu=%s conflicts with -march= switch" + msgstr "-mcpu=%s ¥¹¥¤¥Ã¥Á¤Ï -march= ¥¹¥¤¥Ã¥Á¤È¶¥¹ç¤·¤Þ¤¹" + +-#: config/arm/arm.c:530 config/rs6000/rs6000.c:767 config/sparc/sparc.c:424 ++#: config/arm/arm.c:530 config/rs6000/rs6000.c:785 config/sparc/sparc.c:426 + #, c-format + msgid "bad value (%s) for %s switch" + msgstr "ÃÍ (%s) ¤Ï %s switch ¤Ë¤È¤Ã¤ÆÀµ¤·¤¯¤¢¤ê¤Þ¤»¤ó" +@@ -8141,13 +8150,13 @@ + msgid "unable to use '%s' for PIC register" + msgstr "'%s' ¤ò PIC ¤Î¥ì¥¸¥¹¥¿¤È¤·¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó" + +-#: config/arm/arm.c:2249 config/arm/arm.c:2267 config/avr/avr.c:4558 +-#: config/c4x/c4x.c:4447 config/h8300/h8300.c:4260 config/i386/i386.c:1592 +-#: config/i386/i386.c:1638 config/ip2k/ip2k.c:3169 ++#: config/arm/arm.c:2249 config/arm/arm.c:2267 config/avr/avr.c:4523 ++#: config/c4x/c4x.c:4447 config/h8300/h8300.c:4260 config/i386/i386.c:1598 ++#: config/i386/i386.c:1644 config/ip2k/ip2k.c:3169 + #: config/m68hc11/m68hc11.c:1311 config/m68k/m68k.c:345 + #: config/mcore/mcore.c:3375 config/ns32k/ns32k.c:1064 +-#: config/rs6000/rs6000.c:14866 config/sh/sh.c:6873 config/sh/sh.c:6894 +-#: config/sh/sh.c:6929 config/stormy16/stormy16.c:2073 config/v850/v850.c:2173 ++#: config/rs6000/rs6000.c:15070 config/sh/sh.c:6874 config/sh/sh.c:6895 ++#: config/sh/sh.c:6930 config/stormy16/stormy16.c:2073 config/v850/v850.c:2173 + #, fuzzy, c-format + msgid "`%s' attribute only applies to functions" + msgstr "`%s' °À­¤Ï´Ø¿ô¤ËÂФ·¤Æ¤Î¤ßŬÍѤµ¤ì¤Þ¤¹" +@@ -8163,7 +8172,7 @@ + msgstr "¥»¥ì¥¯¥¿¤Ï¨ÃͤǤʤ±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó" + + #. @@@ better error message +-#: config/arm/arm.c:11284 config/i386/i386.c:14317 config/i386/i386.c:14351 ++#: config/arm/arm.c:11284 config/i386/i386.c:14318 config/i386/i386.c:14352 + msgid "mask must be an immediate" + msgstr "¥Þ¥¹¥¯¤Ï¨ÃͤǤʤ±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó" + +@@ -8302,62 +8311,62 @@ + msgid "Ignore dllimport attribute for functions" + msgstr "´Ø¿ô¤Î dllimport °À­¤ò̵»ë¤¹¤ë" + +-#: config/avr/avr.c:514 ++#: config/avr/avr.c:511 + #, c-format + msgid "large frame pointer change (%d) with -mtiny-stack" + msgstr "-mtiny-stack ¤Ë¤è¤ê¥é¡¼¥¸¥Õ¥ì¡¼¥à¥Ý¥¤¥ó¥¿¤¬Êѹ¹¤µ¤ì¤Þ¤¹(%d)" + +-#: config/avr/avr.c:1101 ++#: config/avr/avr.c:1098 + msgid "bad address, not (reg+disp):" + msgstr "" + +-#: config/avr/avr.c:1109 ++#: config/avr/avr.c:1106 + #, fuzzy + msgid "internal compiler error. Bad address:" + msgstr "ÆâÉô¥³¥ó¥Ñ¥¤¥é¥¨¥é¡¼." + +-#: config/avr/avr.c:1122 ++#: config/avr/avr.c:1119 + #, fuzzy + msgid "internal compiler error. Unknown mode:" + msgstr "ÆâÉô¥³¥ó¥Ñ¥¤¥é¥¨¥é¡¼." + +-#: config/avr/avr.c:1744 config/avr/avr.c:2405 ++#: config/avr/avr.c:1741 config/avr/avr.c:2402 + #, fuzzy + msgid "invalid insn:" + msgstr "̵¸ú¤Ê #line" + +-#: config/avr/avr.c:1778 config/avr/avr.c:1861 config/avr/avr.c:1910 +-#: config/avr/avr.c:1919 config/avr/avr.c:2014 config/avr/avr.c:2183 +-#: config/avr/avr.c:2439 config/avr/avr.c:2547 ++#: config/avr/avr.c:1775 config/avr/avr.c:1858 config/avr/avr.c:1907 ++#: config/avr/avr.c:1916 config/avr/avr.c:2011 config/avr/avr.c:2180 ++#: config/avr/avr.c:2436 config/avr/avr.c:2544 + msgid "incorrect insn:" + msgstr "" + +-#: config/avr/avr.c:1938 config/avr/avr.c:2099 config/avr/avr.c:2254 +-#: config/avr/avr.c:2591 ++#: config/avr/avr.c:1935 config/avr/avr.c:2096 config/avr/avr.c:2251 ++#: config/avr/avr.c:2588 + #, fuzzy + msgid "unknown move insn:" + msgstr "ÉÔÌÀ¤Ê¥ì¥¸¥¹¥¿Ì¾¤Ç¤¹: %s" + +-#: config/avr/avr.c:2814 ++#: config/avr/avr.c:2811 + msgid "bad shift insn:" + msgstr "" + +-#: config/avr/avr.c:2927 config/avr/avr.c:3348 config/avr/avr.c:3719 ++#: config/avr/avr.c:2924 config/avr/avr.c:3345 config/avr/avr.c:3716 + #, fuzzy + msgid "internal compiler error. Incorrect shift:" + msgstr "ÆâÉô¥³¥ó¥Ñ¥¤¥é¥¨¥é¡¼." + +-#: config/avr/avr.c:4532 config/ip2k/ip2k.c:3144 ++#: config/avr/avr.c:4497 config/ip2k/ip2k.c:3144 + #, fuzzy + msgid "only initialized variables can be placed into program memory area" + msgstr "¥×¥í¥°¥é¥à¥á¥â¥êÎΰèÆâ¤ËÇÛÃ֤Ǥ­¤ëÊÑ¿ô¤À¤±¤ò½é´ü²½¤·¤Þ¤·¤¿" + +-#: config/avr/avr.c:4626 ++#: config/avr/avr.c:4591 + #, fuzzy + msgid "only uninitialized variables can be placed in the .noinit section" + msgstr "8 ¥Ó¥Ã¥ÈÎΰèÆâ¤ËÇÛÃ֤Ǥ­¤ëÊÑ¿ô¤À¤±¤¬½é´ü²½¤µ¤ì¤Þ¤·¤¿" + +-#: config/avr/avr.c:4640 ++#: config/avr/avr.c:4605 + #, fuzzy, c-format + msgid "MCU `%s' supported for assembler only" + msgstr "MCU `%s' ¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó" +@@ -9608,7 +9617,7 @@ + msgid "code model %s not supported in PIC mode" + msgstr "-mcmodel= ¤Ï 32 bit ¥·¥¹¥Æ¥à¾å¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó" + +-#: config/i386/i386.c:1189 config/sparc/sparc.c:387 ++#: config/i386/i386.c:1189 config/sparc/sparc.c:389 + #, c-format + msgid "bad value (%s) for -mcmodel= switch" + msgstr "-mcmodel= ¥¹¥¤¥Ã¥Á¤Ë¤È¤Ã¤ÆÉÔÀµ¤ÊÃÍ (%s)" +@@ -9643,149 +9652,149 @@ + msgid "bad value (%s) for -march= switch" + msgstr "-march= ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)" + +-#: config/i386/i386.c:1260 ++#: config/i386/i386.c:1266 + #, fuzzy, c-format + msgid "bad value (%s) for -mtune= switch" + msgstr "-mcpu= ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)" + +-#: config/i386/i386.c:1277 ++#: config/i386/i386.c:1283 + #, c-format + msgid "-mregparm=%d is not between 0 and %d" + msgstr "-mregparm=%d ¤¬ 0 ¤«¤é %d ¤Î´Ö¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: config/i386/i386.c:1290 ++#: config/i386/i386.c:1296 + #, fuzzy + msgid "-malign-loops is obsolete, use -falign-loops" + msgstr "-malign-loops=%d ¤¬ 0 ¤«¤é %d ¤Î´Ö¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: config/i386/i386.c:1295 config/i386/i386.c:1308 config/i386/i386.c:1321 ++#: config/i386/i386.c:1301 config/i386/i386.c:1314 config/i386/i386.c:1327 + #, c-format + msgid "-malign-loops=%d is not between 0 and %d" + msgstr "-malign-loops=%d ¤¬ 0 ¤«¤é %d ¤Î´Ö¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: config/i386/i386.c:1303 ++#: config/i386/i386.c:1309 + #, fuzzy + msgid "-malign-jumps is obsolete, use -falign-jumps" + msgstr "-malign-jumps=%d ¤¬ 0 ¤«¤é %d ¤Î´Ö¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: config/i386/i386.c:1316 ++#: config/i386/i386.c:1322 + #, fuzzy + msgid "-malign-functions is obsolete, use -falign-functions" + msgstr "-malign-functions=%d ¤¬ 0 ¤«¤é %d ¤Î´Ö¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: config/i386/i386.c:1354 ++#: config/i386/i386.c:1360 + #, fuzzy, c-format + msgid "-mpreferred-stack-boundary=%d is not between %d and 12" + msgstr "-mpreferred-stack-boundary=%d ¤¬ 2 ¤«¤é 31 ¤Î´Ö¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: config/i386/i386.c:1366 ++#: config/i386/i386.c:1372 + #, c-format + msgid "-mbranch-cost=%d is not between 0 and 5" + msgstr "-mbranch-cost=%d ¤¬ 0 ¤«¤é 5 ¤Î´Ö¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: config/i386/i386.c:1378 ++#: config/i386/i386.c:1384 + #, fuzzy, c-format + msgid "bad value (%s) for -mtls-dialect= switch" + msgstr "-msdata ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)" + +-#: config/i386/i386.c:1407 ++#: config/i386/i386.c:1413 + msgid "-malign-double makes no sense in the 64bit mode" + msgstr "" + +-#: config/i386/i386.c:1409 ++#: config/i386/i386.c:1415 + #, fuzzy + msgid "-mrtd calling convention not supported in the 64bit mode" + msgstr "PIC ¥³¡¼¥ÉÀ¸À®¤Ï²Äȼ¹Իþ¥â¥Ç¥ë¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó\n" + +-#: config/i386/i386.c:1431 config/i386/i386.c:1442 ++#: config/i386/i386.c:1437 config/i386/i386.c:1448 + #, fuzzy + msgid "SSE instruction set disabled, using 387 arithmetics" + msgstr "´Ø¿ô¥Ý¥¤¥ó¥¿¤¬·×»»¤Ç»È¤ï¤ì¤Þ¤·¤¿" + +-#: config/i386/i386.c:1447 ++#: config/i386/i386.c:1453 + #, fuzzy + msgid "387 instruction set disabled, using SSE arithmetics" + msgstr "´Ø¿ô¥Ý¥¤¥ó¥¿¤¬·×»»¤Ç»È¤ï¤ì¤Þ¤·¤¿" + +-#: config/i386/i386.c:1454 ++#: config/i386/i386.c:1460 + #, fuzzy, c-format + msgid "bad value (%s) for -mfpmath= switch" + msgstr "-march= ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)" + +-#: config/i386/i386.c:1602 config/i386/i386.c:1613 ++#: config/i386/i386.c:1608 config/i386/i386.c:1619 + #, fuzzy + msgid "fastcall and stdcall attributes are not compatible" + msgstr "shared ¤È mdll ¤È¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó" + +-#: config/i386/i386.c:1606 config/i386/i386.c:1662 ++#: config/i386/i386.c:1612 config/i386/i386.c:1668 + #, fuzzy + msgid "fastcall and regparm attributes are not compatible" + msgstr "shared ¤È mdll ¤È¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó" + +-#: config/i386/i386.c:1649 ++#: config/i386/i386.c:1655 + #, fuzzy, c-format + msgid "`%s' attribute requires an integer constant argument" + msgstr "3 ¤Ä¤Î 'l' ÀÜÈø¼­¤¬À°¿ôÄê¿ô¤Ë¤Ä¤¤¤Æ¤¤¤Þ¤¹" + +-#: config/i386/i386.c:1655 ++#: config/i386/i386.c:1661 + #, fuzzy, c-format + msgid "argument to `%s' attribute larger than %d" + msgstr "ÄêµÁ¤Î¸å¤Ç `%s' °À­¤ò¥»¥Ã¥È¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó" + +-#: config/i386/i386.c:2621 ++#: config/i386/i386.c:2627 + msgid "SSE vector argument without SSE enabled changes the ABI" + msgstr "" + +-#: config/i386/i386.c:2637 ++#: config/i386/i386.c:2643 + msgid "MMX vector argument without MMX enabled changes the ABI" + msgstr "" + +-#: config/i386/i386.c:2865 ++#: config/i386/i386.c:2871 + msgid "SSE vector return without SSE enabled changes the ABI" + msgstr "" + +-#: config/i386/i386.c:6840 ++#: config/i386/i386.c:6841 + msgid "invalid UNSPEC as operand" + msgstr "¥ª¥Ú¥é¥ó¥É¤È¤·¤Æ̵¸ú¤Ê UNSPEC" + +-#: config/i386/i386.c:7098 ++#: config/i386/i386.c:7099 + msgid "extended registers have no high halves" + msgstr "" + +-#: config/i386/i386.c:7113 ++#: config/i386/i386.c:7114 + msgid "unsupported operand size for extended register" + msgstr "" + +-#: config/i386/i386.c:7428 ++#: config/i386/i386.c:7429 + msgid "operand is neither a constant nor a condition code, invalid operand code 'c'" + msgstr "" + +-#: config/i386/i386.c:7474 ++#: config/i386/i386.c:7475 + #, fuzzy, c-format + msgid "invalid operand code `%c'" + msgstr "%N ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É" + +-#: config/i386/i386.c:7517 ++#: config/i386/i386.c:7518 + #, fuzzy + msgid "invalid constraints for operand" + msgstr "¥ª¥Ú¥é¥ó¥É¤È¤·¤Æ̵¸ú¤Ê¼°" + +-#: config/i386/i386.c:12031 ++#: config/i386/i386.c:12032 + #, fuzzy + msgid "unknown insn mode" + msgstr "ÉÔÌÀ¤Ê¥Þ¥·¥ó¥â¡¼¥É `%s'" + +-#: config/i386/i386.c:14119 config/i386/i386.c:14155 ++#: config/i386/i386.c:14120 config/i386/i386.c:14156 + #, c-format + msgid "selector must be an integer constant in the range 0..%i" + msgstr "" + +-#: config/i386/i386.c:14383 ++#: config/i386/i386.c:14384 + #, fuzzy + msgid "shift must be an immediate" + msgstr "¥Þ¥¹¥¯¤Ï¨ÃͤǤʤ±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó" + +-#: config/i386/i386.c:15406 ++#: config/i386/i386.c:15407 + #, fuzzy, c-format + msgid "`%s' incompatible attribute ignored" + msgstr "`%s' °À­¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿" +@@ -10088,7 +10097,7 @@ + #. variable, type `char *', is set to the variable part of the given + #. option if the fixed part matches. The actual option name is made + #. by appending `-m' to the specified name. +-#: config/i386/i386.h:461 config/ia64/ia64.h:269 config/rs6000/rs6000.h:449 ++#: config/i386/i386.h:461 config/ia64/ia64.h:274 config/rs6000/rs6000.h:449 + #: config/s390/s390.h:146 config/sparc/sparc.h:656 + msgid "Schedule code for given CPU" + msgstr "½êÍ¿¤Î CPU ÍѤΥ³¡¼¥É¤ò¥¹¥±¥¸¥å¡¼¥ë¤¹¤ë" +@@ -10210,7 +10219,7 @@ + msgid "iC2.0 and iC3.0 are incompatible - using iC3.0" + msgstr "iC2.0 ¤È iC3.0 ¤È¤Ï¸ß´¹À­¤¬¤¢¤ê¤Þ¤»¤ó - iC3.0 ¤ò»ÈÍѤ·¤Þ¤¹" + +-#: config/i960/i960.c:1456 config/m68k/m68k.c:600 config/rs6000/rs6000.c:11597 ++#: config/i960/i960.c:1456 config/m68k/m68k.c:600 config/rs6000/rs6000.c:11690 + msgid "stack limit expression is not supported" + msgstr "¥¹¥¿¥Ã¥¯À©¸Â¼°¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó" + +@@ -10371,44 +10380,44 @@ + msgid "%Jaddress area attribute cannot be specified for functions" + msgstr "¥Ç¡¼¥¿Îΰè°À­¤ò¥í¡¼¥«¥ëÊÑ¿ô¤Ë¤Ï»ØÄê¤Ç¤­¤Þ¤»¤ó" + +-#: config/ia64/ia64.c:4308 ++#: config/ia64/ia64.c:4314 + msgid "ia64_print_operand: unknown code" + msgstr "ia64_print_operand: ÉÔÌÀ¤Ê¥³¡¼¥É¤Ç¤¹" + +-#: config/ia64/ia64.c:4648 ++#: config/ia64/ia64.c:4654 + msgid "value of -mfixed-range must have form REG1-REG2" + msgstr "-mfixed-range ¤ÎÃÍ¤Ï REG1-REG2 ·Á¼°¤ò»ý¤¿¤Í¤Ð¤Ê¤ê¤Þ¤»¤ó" + +-#: config/ia64/ia64.c:4675 ++#: config/ia64/ia64.c:4681 + #, c-format + msgid "%s-%s is an empty range" + msgstr "%s-%s ¤¬¶õ¤ÎÈϰϤǤ¹" + +-#: config/ia64/ia64.c:4723 ++#: config/ia64/ia64.c:4729 + #, fuzzy + msgid "cannot optimize floating point division for both latency and throughput" + msgstr "¥ì¥¤¥Æ¥ó¥·¤È¥¹¥ë¡¼¥×¥Ã¥ÈξÊý¤Îʬ³äºÇŬ²½¤Ï¹Ô¤Ê¤¨¤Þ¤»¤ó" + +-#: config/ia64/ia64.c:4729 ++#: config/ia64/ia64.c:4735 + #, fuzzy + msgid "cannot optimize integer division for both latency and throughput" + msgstr "¥ì¥¤¥Æ¥ó¥·¤È¥¹¥ë¡¼¥×¥Ã¥ÈξÊý¤Îʬ³äºÇŬ²½¤Ï¹Ô¤Ê¤¨¤Þ¤»¤ó" + +-#: config/ia64/ia64.c:4735 ++#: config/ia64/ia64.c:4741 + #, fuzzy + msgid "cannot optimize square root for both latency and throughput" + msgstr "¥ì¥¤¥Æ¥ó¥·¤È¥¹¥ë¡¼¥×¥Ã¥ÈξÊý¤Îʬ³äºÇŬ²½¤Ï¹Ô¤Ê¤¨¤Þ¤»¤ó" + +-#: config/ia64/ia64.c:4741 ++#: config/ia64/ia64.c:4747 + msgid "not yet implemented: latency-optimized inline square root" + msgstr "" + +-#: config/ia64/ia64.c:4753 ++#: config/ia64/ia64.c:4759 + #, fuzzy, c-format + msgid "bad value (%s) for -mtls-size= switch" + msgstr "-mabi= ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)" + +-#: config/ia64/ia64.c:4769 ++#: config/ia64/ia64.c:4775 + #, fuzzy, c-format + msgid "bad value (%s) for -tune= switch" + msgstr "-mcpu= ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)" +@@ -10416,114 +10425,114 @@ + #. This macro defines names of command options to set and clear bits in + #. `target_flags'. Its definition is an initializer with a subgrouping for + #. each command option. +-#: config/ia64/ia64.h:172 ++#: config/ia64/ia64.h:177 + msgid "Generate big endian code" + msgstr "¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¤Î¥³¡¼¥É¤òÀ¸À®" + +-#: config/ia64/ia64.h:174 config/mcore/mcore.h:154 ++#: config/ia64/ia64.h:179 config/mcore/mcore.h:154 + msgid "Generate little endian code" + msgstr "¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¤Î¥³¡¼¥É¤òÀ¸À®" + +-#: config/ia64/ia64.h:176 ++#: config/ia64/ia64.h:181 + msgid "Generate code for GNU as" + msgstr "GNU as ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë" + +-#: config/ia64/ia64.h:178 ++#: config/ia64/ia64.h:183 + msgid "Generate code for Intel as" + msgstr "Intel as ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë" + +-#: config/ia64/ia64.h:180 ++#: config/ia64/ia64.h:185 + msgid "Generate code for GNU ld" + msgstr "GNU ld ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë" + +-#: config/ia64/ia64.h:182 ++#: config/ia64/ia64.h:187 + msgid "Generate code for Intel ld" + msgstr "Intel ld ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë" + +-#: config/ia64/ia64.h:184 ++#: config/ia64/ia64.h:189 + msgid "Generate code without GP reg" + msgstr "GP ¥ì¥¸¥¹¥¿ÉÔ»ÈÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë" + +-#: config/ia64/ia64.h:186 ++#: config/ia64/ia64.h:191 + msgid "Emit stop bits before and after volatile extended asms" + msgstr "³ÈÄ¥¥¢¥»¥ó¥Ö¥ê volatile ¤ÎÁ°¸å¤Ë stop ¥Ó¥Ã¥È¤òÁ÷½Ð¤¹¤ë" + +-#: config/ia64/ia64.h:188 ++#: config/ia64/ia64.h:193 + msgid "Don't emit stop bits before and after volatile extended asms" + msgstr "³ÈÄ¥¥¢¥»¥ó¥Ö¥ê volatile ¤ÎÁ°¸å¤Ë stop ¥Ó¥Ã¥È¤òÁ÷½Ð¤¹¤ë" + +-#: config/ia64/ia64.h:190 ++#: config/ia64/ia64.h:195 + msgid "Emit code for Itanium (TM) processor B step" + msgstr "Itanium (TM) ¥×¥í¥»¥Ã¥µ B step ÍÑ¥³¡¼¥É¤òÁ÷½Ð¤¹¤ë" + +-#: config/ia64/ia64.h:192 ++#: config/ia64/ia64.h:197 + msgid "Use in/loc/out register names" + msgstr "in/loc/out ¥ì¥¸¥¹¥¿Ì¾¤ò»ÈÍѤ¹¤ë" + +-#: config/ia64/ia64.h:194 ++#: config/ia64/ia64.h:199 + msgid "Disable use of sdata/scommon/sbss" + msgstr "sdata/scommon/sbss ¤Î»ÈÍѤò̵¸ú¤Ë¤¹¤ë" + +-#: config/ia64/ia64.h:196 ++#: config/ia64/ia64.h:201 + msgid "Enable use of sdata/scommon/sbss" + msgstr "sdata/scommon/sbss ¤Î»ÈÍѤòÍ­¸ú¤Ë¤¹¤ë" + +-#: config/ia64/ia64.h:198 ++#: config/ia64/ia64.h:203 + msgid "gp is constant (but save/restore gp on indirect calls)" + msgstr "gp ¤òÄê¿ô¤È¤¹¤ë¡Êâ¡¢´ÖÀܸƤӽФ·¤Ç¤Ï gp ¤ò save/restore ¤¹¤ë¡Ë" + +-#: config/ia64/ia64.h:200 ++#: config/ia64/ia64.h:205 + msgid "Generate self-relocatable code" + msgstr "¼«¸ÊºÆÇÛÃÖ²Äǽ¥³¡¼¥É¤òÀ¸À®¤¹¤ë" + +-#: config/ia64/ia64.h:202 ++#: config/ia64/ia64.h:207 + #, fuzzy + msgid "Generate inline floating point division, optimize for latency" + msgstr "¥ì¥¤¥Æ¥ó¥·¤òºÇŬ²½¤¹¤ë¥¤¥ó¥é¥¤¥ó¶èʬ¤òÀ¸À®¤¹¤ë" + +-#: config/ia64/ia64.h:204 ++#: config/ia64/ia64.h:209 + #, fuzzy + msgid "Generate inline floating point division, optimize for throughput" + msgstr "¥¹¥ë¡¼¥×¥Ã¥È¤òºÇŬ²½¤¹¤ë¥¤¥ó¥é¥¤¥ó¶èʬ¤òÀ¸À®¤¹¤ë" + +-#: config/ia64/ia64.h:206 ++#: config/ia64/ia64.h:211 + #, fuzzy + msgid "Generate inline integer division, optimize for latency" + msgstr "¥ì¥¤¥Æ¥ó¥·¤òºÇŬ²½¤¹¤ë¥¤¥ó¥é¥¤¥ó¶èʬ¤òÀ¸À®¤¹¤ë" + +-#: config/ia64/ia64.h:208 ++#: config/ia64/ia64.h:213 + #, fuzzy + msgid "Generate inline integer division, optimize for throughput" + msgstr "¥¹¥ë¡¼¥×¥Ã¥È¤òºÇŬ²½¤¹¤ë¥¤¥ó¥é¥¤¥ó¶èʬ¤òÀ¸À®¤¹¤ë" + +-#: config/ia64/ia64.h:210 ++#: config/ia64/ia64.h:215 + #, fuzzy + msgid "Generate inline square root, optimize for latency" + msgstr "¥ì¥¤¥Æ¥ó¥·¤òºÇŬ²½¤¹¤ë¥¤¥ó¥é¥¤¥ó¶èʬ¤òÀ¸À®¤¹¤ë" + +-#: config/ia64/ia64.h:212 ++#: config/ia64/ia64.h:217 + #, fuzzy + msgid "Generate inline square root, optimize for throughput" + msgstr "¥¹¥ë¡¼¥×¥Ã¥È¤òºÇŬ²½¤¹¤ë¥¤¥ó¥é¥¤¥ó¶èʬ¤òÀ¸À®¤¹¤ë" + +-#: config/ia64/ia64.h:214 ++#: config/ia64/ia64.h:219 + msgid "Enable Dwarf 2 line debug info via GNU as" + msgstr "GNU as ¤òÄ̤¸¤¿ Dwarf2 ¤Î¹Ô¥Ç¥Ð¥Ã¥°¤òÍ­¸ú¤Ë¤¹¤ë" + +-#: config/ia64/ia64.h:216 ++#: config/ia64/ia64.h:221 + msgid "Disable Dwarf 2 line debug info via GNU as" + msgstr "GNU as ¤òÄ̤¸¤¿ Dwarf2 ¤Î¹Ô¥Ç¥Ð¥Ã¥°¤ò̵¸ú¤Ë¤¹¤ë" + +-#: config/ia64/ia64.h:218 ++#: config/ia64/ia64.h:223 + msgid "Enable earlier placing stop bits for better scheduling" + msgstr "" + +-#: config/ia64/ia64.h:220 ++#: config/ia64/ia64.h:225 + #, fuzzy + msgid "Disable earlier placing stop bits" + msgstr "ÊÂÎóÌ¿Îá¤ò̵¸ú¤Ë¤¹¤ë" + +-#: config/ia64/ia64.h:265 ++#: config/ia64/ia64.h:270 + #, fuzzy + msgid "Specify range of registers to make fixed" + msgstr "¸ÇÄꤹ¤ë¤¿¤á¤Î¥ì¥¸¥¹¥¿¤ÎÈϰϤò»ØÄꤹ¤ë" +@@ -10562,7 +10571,7 @@ + msgid "PRINT_OPERAND: Unknown punctuation '%c'" + msgstr "PRINT_OPERAND: ÉÔÌÀ¤Ê¶çÆÉÅÀ '%c'" + +-#: config/iq2000/iq2000.c:3478 config/mips/mips.c:5464 ++#: config/iq2000/iq2000.c:3478 config/mips/mips.c:5463 + #: config/xtensa/xtensa.c:1950 + msgid "PRINT_OPERAND null pointer" + msgstr "PRINT_OPERAND NULL ¥Ý¥¤¥ó¥¿" +@@ -10572,12 +10581,12 @@ + msgid "invalid %%P operand" + msgstr "̵¸ú¤Ê %P ¥ª¥Ú¥é¥ó¥É¤Ç¤¹" + +-#: config/iq2000/iq2000.c:3555 config/rs6000/rs6000.c:9178 ++#: config/iq2000/iq2000.c:3555 config/rs6000/rs6000.c:9269 + #, c-format + msgid "invalid %%p value" + msgstr "̵¸ú¤Ê %%p ÃͤǤ¹" + +-#: config/iq2000/iq2000.c:3619 config/mips/mips.c:5594 ++#: config/iq2000/iq2000.c:3619 config/mips/mips.c:5593 + #, c-format + msgid "invalid use of %%d, %%x, or %%X" + msgstr "̵¸ú¤ÊÍÑË¡¤Î of %%d, %%x, Ëô¤Ï %%X" +@@ -10634,51 +10643,51 @@ + msgid "bad value (%s) for -flush-trap=n (0= found without a %%< in assembler pattern" + msgstr "ÆâÉô¥¨¥é¡¼: ¥¢¥»¥ó¥Ö¥é¥Ñ¥¿¡¼¥ó¤Ç %%< ¤Ê¤·¤Î %%> ¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿" + +-#: config/mips/mips.c:5441 ++#: config/mips/mips.c:5440 + #, c-format + msgid "internal error: %%} found without a %%{ in assembler pattern" + msgstr "ÆâÉô¥¨¥é¡¼: ¥¢¥»¥ó¥Ö¥é¥Ñ¥¿¡¼¥ó¤Ç %%{ ¤Ê¤·¤Î %%} ¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿" + +-#: config/mips/mips.c:5455 ++#: config/mips/mips.c:5454 + #, fuzzy, c-format + msgid "PRINT_OPERAND: unknown punctuation '%c'" + msgstr "PRINT_OPERAND: ÉÔÌÀ¤Ê¶çÆÉÅÀ '%c'" + +-#: config/mips/mips.c:5484 ++#: config/mips/mips.c:5483 + #, fuzzy, c-format + msgid "PRINT_OPERAND, invalid insn for %%C" + msgstr "PRINT_OPERAND NULL ¥Ý¥¤¥ó¥¿" + +-#: config/mips/mips.c:5501 ++#: config/mips/mips.c:5500 + #, fuzzy, c-format + msgid "PRINT_OPERAND, invalid insn for %%N" + msgstr "PRINT_OPERAND NULL ¥Ý¥¤¥ó¥¿" + +-#: config/mips/mips.c:5510 ++#: config/mips/mips.c:5509 + #, fuzzy, c-format + msgid "PRINT_OPERAND, invalid insn for %%F" + msgstr "PRINT_OPERAND NULL ¥Ý¥¤¥ó¥¿" + +-#: config/mips/mips.c:5519 ++#: config/mips/mips.c:5518 + #, fuzzy, c-format + msgid "PRINT_OPERAND, invalid insn for %%W" + msgstr "PRINT_OPERAND NULL ¥Ý¥¤¥ó¥¿" + +-#: config/mips/mips.c:5625 ++#: config/mips/mips.c:5624 + msgid "PRINT_OPERAND, invalid operand for relocation" + msgstr "" + +-#: config/mips/mips.c:8310 ++#: config/mips/mips.c:8324 + #, c-format + msgid "can not handle inconsistent calls to `%s'" + msgstr "`%s' ¤Ø¤ÎÌ·½â¤·¤¿¸Æ¤Ó½Ð¤·¤òÊ᪤Ǥ­¤Þ¤»¤ó" + +-#: config/mips/mips.c:9316 ++#: config/mips/mips.c:9333 + #, fuzzy + msgid "the cpu name must be lower case" + msgstr "¥·¥ó¥Ü¥ë̾¤ò¾®Ê¸»ú¤È¤¹¤ë" + +-#: config/mips/mips.c:9338 ++#: config/mips/mips.c:9355 + #, fuzzy, c-format + msgid "bad value (%s) for %s" + msgstr "ÃÍ (%s) ¤Ï %s switch ¤Ë¤È¤Ã¤ÆÀµ¤·¤¯¤¢¤ê¤Þ¤»¤ó" + +-#: config/mips/mips.c:9607 ++#: config/mips/mips.c:9624 + #, fuzzy, c-format + msgid "can't rewind temp file: %m" + msgstr "%s ¤ò rewind ¤Ç¤­¤Þ¤»¤ó" + +-#: config/mips/mips.c:9611 ++#: config/mips/mips.c:9628 + #, fuzzy, c-format + msgid "can't write to output file: %m" + msgstr "½ÐÎÏ¥Õ¥¡¥¤¥ë `%s' ¤ò open ¤Ç¤­¤Þ¤»¤ó" + +-#: config/mips/mips.c:9614 ++#: config/mips/mips.c:9631 + #, fuzzy, c-format + msgid "can't read from temp file: %m" + msgstr "%s ¤«¤éÆɹþ¤á¤Þ¤»¤ó" + +-#: config/mips/mips.c:9617 ++#: config/mips/mips.c:9634 + #, fuzzy, c-format + msgid "can't close temp file: %m" + msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë %s ¤ò close ¤Ç¤­¤Þ¤»¤ó" +@@ -11517,7 +11526,7 @@ + + #. Output assembler code to FILE to increment profiler label # LABELNO + #. for profiling a function entry. +-#: config/mips/mips.h:2418 ++#: config/mips/mips.h:2430 + msgid "mips16 function profiling" + msgstr "mips16 ´Ø¿ô¥×¥í¥Õ¥¡¥¤¥ë" + +@@ -12109,171 +12118,180 @@ + msgid "junk at end of #pragma longcall" + msgstr "#pragma map ¤Î½ª¤ê¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹" + +-#: config/rs6000/rs6000.c:791 ++#: config/rs6000/rs6000.c:809 + msgid "-mmultiple is not supported on little endian systems" + msgstr "-mmultiple ¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥·¥¹¥Æ¥à¾å¤Ç¤Ï¼õ¤±Æþ¤ì¤é¤ì¤Þ¤»¤ó" + +-#: config/rs6000/rs6000.c:798 ++#: config/rs6000/rs6000.c:816 + msgid "-mstring is not supported on little endian systems" + msgstr "-mstring ¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥·¥¹¥Æ¥à¾å¤Ç¤Ï¼õ¤±Æþ¤ì¤é¤ì¤Þ¤»¤ó" + +-#: config/rs6000/rs6000.c:812 ++#: config/rs6000/rs6000.c:830 + #, fuzzy, c-format + msgid "unknown -mdebug-%s switch" + msgstr "ÉÔÌÀ¤Ê -mdebug-%s ¥¹¥¤¥Ã¥Á¤Ç¤¹" + +-#: config/rs6000/rs6000.c:824 ++#: config/rs6000/rs6000.c:842 + #, c-format + msgid "unknown -mtraceback arg `%s'; expecting `full', `partial' or `none'" + msgstr "" + +-#: config/rs6000/rs6000.c:835 ++#: config/rs6000/rs6000.c:853 + #, c-format + msgid "Unknown switch -mlong-double-%s" + msgstr "" + +-#: config/rs6000/rs6000.c:876 ++#: config/rs6000/rs6000.c:894 + msgid "AltiVec and E500 instructions cannot coexist" + msgstr "" + +-#: config/rs6000/rs6000.c:1029 ++#: config/rs6000/rs6000.c:1058 + #, c-format + msgid "unknown -m%s= option specified: '%s'" + msgstr "" + +-#: config/rs6000/rs6000.c:1050 ++#: config/rs6000/rs6000.c:1079 + #, c-format + msgid "not configured for ABI: '%s'" + msgstr "" + +-#: config/rs6000/rs6000.c:1056 ++#: config/rs6000/rs6000.c:1085 + #, fuzzy, c-format + msgid "unknown ABI specified: '%s'" + msgstr "ÉÔÌÀ¤Ê¥Þ¥·¥ó¥â¡¼¥É `%s'" + +-#: config/rs6000/rs6000.c:1070 ++#: config/rs6000/rs6000.c:1099 + #, c-format + msgid "unknown -malign-XXXXX option specified: '%s'" + msgstr "" + +-#: config/rs6000/rs6000.c:3972 ++#: config/rs6000/rs6000.c:4001 + msgid "Cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them." + msgstr "" + +-#: config/rs6000/rs6000.c:4095 ++#: config/rs6000/rs6000.c:4124 + msgid "Cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them." + msgstr "" + +-#: config/rs6000/rs6000.c:5599 ++#: config/rs6000/rs6000.c:5604 + msgid "argument 1 must be a 5-bit signed literal" + msgstr "" + +-#: config/rs6000/rs6000.c:5701 config/rs6000/rs6000.c:6357 ++#: config/rs6000/rs6000.c:5707 config/rs6000/rs6000.c:6374 + msgid "argument 2 must be a 5-bit unsigned literal" + msgstr "" + +-#: config/rs6000/rs6000.c:5741 ++#: config/rs6000/rs6000.c:5747 + #, fuzzy + msgid "argument 1 of __builtin_altivec_predicate must be a constant" + msgstr "`__builtin_eh_return_regno' ¤Î°ú¿ô¤ÏÄê¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó" + +-#: config/rs6000/rs6000.c:5795 ++#: config/rs6000/rs6000.c:5801 + #, fuzzy + msgid "argument 1 of __builtin_altivec_predicate is out of range" + msgstr "`__builtin_args_info' ¤Î°ú¿ô¤¬Èϰϳ°¤Ç¤¹" + +-#: config/rs6000/rs6000.c:5956 ++#: config/rs6000/rs6000.c:5962 + msgid "argument 3 must be a 4-bit unsigned literal" + msgstr "" + +-#: config/rs6000/rs6000.c:6126 ++#: config/rs6000/rs6000.c:6134 + #, fuzzy, c-format + msgid "argument to `%s' must be a 2-bit unsigned literal" + msgstr "`%s' ¤Ø¤Î°ú¿ô¤ò·ç¤¤¤Æ¤¤¤Þ¤¹" + +-#: config/rs6000/rs6000.c:6239 ++#: config/rs6000/rs6000.c:6247 + msgid "argument to dss must be a 2-bit unsigned literal" + msgstr "" + +-#: config/rs6000/rs6000.c:6477 ++#: config/rs6000/rs6000.c:6261 ++#, c-format ++msgid "invalid parameter combination for `%s' AltiVec intrinsic" ++msgstr "" ++ ++#: config/rs6000/rs6000.c:6494 + #, fuzzy + msgid "argument 1 of __builtin_spe_predicate must be a constant" + msgstr "`__builtin_eh_return_regno' ¤Î°ú¿ô¤ÏÄê¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó" + +-#: config/rs6000/rs6000.c:6550 ++#: config/rs6000/rs6000.c:6567 + #, fuzzy + msgid "argument 1 of __builtin_spe_predicate is out of range" + msgstr "`__builtin_args_info' ¤Î°ú¿ô¤¬Èϰϳ°¤Ç¤¹" + +-#: config/rs6000/rs6000.c:9008 ++#: config/rs6000/rs6000.c:9099 + #, c-format + msgid "invalid %%f value" + msgstr "̵¸ú¤Ê %%f ÃͤǤ¹" + +-#: config/rs6000/rs6000.c:9017 ++#: config/rs6000/rs6000.c:9108 + #, c-format + msgid "invalid %%F value" + msgstr "̵¸ú¤Ê %%F ÃͤǤ¹" + +-#: config/rs6000/rs6000.c:9026 ++#: config/rs6000/rs6000.c:9117 + #, c-format + msgid "invalid %%G value" + msgstr "̵¸ú¤Ê %%G ÃͤǤ¹" + +-#: config/rs6000/rs6000.c:9061 ++#: config/rs6000/rs6000.c:9152 + #, c-format + msgid "invalid %%j code" + msgstr "̵¸ú¤Ê %%j ¥³¡¼¥É¤Ç¤¹" + +-#: config/rs6000/rs6000.c:9071 ++#: config/rs6000/rs6000.c:9162 + #, c-format + msgid "invalid %%J code" + msgstr "̵¸ú¤Ê %%J ¥³¡¼¥É¤Ç¤¹" + +-#: config/rs6000/rs6000.c:9081 ++#: config/rs6000/rs6000.c:9172 + #, c-format + msgid "invalid %%k value" + msgstr "̵¸ú¤Ê %%k ÃÍ" + +-#: config/rs6000/rs6000.c:9101 config/xtensa/xtensa.c:2000 ++#: config/rs6000/rs6000.c:9192 config/xtensa/xtensa.c:2000 + #, c-format + msgid "invalid %%K value" + msgstr "̵¸ú¤Ê %%K ÃͤǤ¹" + +-#: config/rs6000/rs6000.c:9168 ++#: config/rs6000/rs6000.c:9259 + #, c-format + msgid "invalid %%O value" + msgstr "̵¸ú¤Ê %%O ÃÍ" + +-#: config/rs6000/rs6000.c:9215 ++#: config/rs6000/rs6000.c:9306 + #, c-format + msgid "invalid %%q value" + msgstr "̵¸ú¤Ê %%q ÃͤǤ¹" + +-#: config/rs6000/rs6000.c:9259 ++#: config/rs6000/rs6000.c:9350 + #, c-format + msgid "invalid %%S value" + msgstr "̵¸ú¤Ê %%S ÃÍ" + +-#: config/rs6000/rs6000.c:9301 ++#: config/rs6000/rs6000.c:9392 + #, c-format + msgid "invalid %%T value" + msgstr "̵¸ú¤Ê %%T ÃͤǤ¹" + +-#: config/rs6000/rs6000.c:9311 ++#: config/rs6000/rs6000.c:9402 + #, c-format + msgid "invalid %%u value" + msgstr "̵¸ú¤Ê %%u ÃͤǤ¹" + +-#: config/rs6000/rs6000.c:9320 config/xtensa/xtensa.c:1970 ++#: config/rs6000/rs6000.c:9411 config/xtensa/xtensa.c:1970 + #, c-format + msgid "invalid %%v value" + msgstr "̵¸ú¤Ê %%v ÃͤǤ¹" + +-#: config/rs6000/rs6000.c:13815 ++#: config/rs6000/rs6000.c:13913 + msgid "no profiling of 64-bit code for this ABI" + msgstr "" + ++#: config/rs6000/rs6000.c:14986 ++msgid "use of 'long' in AltiVec types is deprecated; use 'int'" ++msgstr "" ++ + #: config/rs6000/aix.h:184 config/rs6000/beos.h:32 + msgid "Always pass floating-point arguments in memory" + msgstr "ÉâÆ°¾®¿ôÅÀ°ú¿ô¤Ï¾ï¤Ë¥á¥â¥êÅϤ·¤È¤¹¤ë" +@@ -12539,19 +12557,23 @@ + msgstr "ÊÂÎóÌ¿Îá¤ò̵¸ú¤Ë¤¹¤ë" + + #: config/rs6000/rs6000.h:468 ++msgid "Warn about deprecated 'vector long ...' AltiVec type usage" ++msgstr "" ++ ++#: config/rs6000/rs6000.h:471 + msgid "Determine which dependences between insns are considered costly" + msgstr "" + +-#: config/rs6000/rs6000.h:470 ++#: config/rs6000/rs6000.h:473 + msgid "Specify which post scheduling nop insertion scheme to apply" + msgstr "" + +-#: config/rs6000/rs6000.h:472 ++#: config/rs6000/rs6000.h:475 + #, fuzzy + msgid "Specify alignment of structure fields default/natural" + msgstr "¹½Â¤ÂÎ¥¢¥é¥¤¥ó¥á¥ó¥È¤ÎºÇ¾®¥Ó¥Ã¥È¿ô¤ò»ØÄꤹ¤ë" + +-#: config/rs6000/rs6000.h:474 ++#: config/rs6000/rs6000.h:477 + msgid "Specify scheduling priority for dispatch slot restricted insns" + msgstr "" + +@@ -12567,7 +12589,7 @@ + #. Number of bytes into the frame return addresses can be found. See + #. rs6000_stack_info in rs6000.c for more information on how the different + #. abi's store the return address. +-#: config/rs6000/rs6000.h:1923 ++#: config/rs6000/rs6000.h:1932 + msgid "RETURN_ADDRESS_OFFSET not supported" + msgstr "RETURN_ADDRESS_OFFSET ¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" + +@@ -12862,29 +12884,29 @@ + msgid "enable fused multiply/add instructions" + msgstr "ÉâÆ°¾®¿ô¤Î¾è»»/²Ã»»Ì¿Îá¤òÀ¸À®¤¹¤ë" + +-#: config/sh/sh.c:5977 ++#: config/sh/sh.c:5978 + #, fuzzy + msgid "__builtin_saveregs not supported by this subtarget" + msgstr "__builtin_saveregs ¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" + +-#: config/sh/sh.c:6879 ++#: config/sh/sh.c:6880 + msgid "attribute interrupt_handler is not compatible with -m5-compact" + msgstr "" + + #. The sp_switch attribute only has meaning for interrupt functions. +-#: config/sh/sh.c:6901 config/sh/sh.c:6936 ++#: config/sh/sh.c:6902 config/sh/sh.c:6937 + #, fuzzy, c-format + msgid "`%s' attribute only applies to interrupt functions" + msgstr "`%s' °À­¤Ï´Ø¿ô¤ËÂФ·¤Æ¤Î¤ßŬÍѤµ¤ì¤Þ¤¹" + + #. The argument must be a constant string. +-#: config/sh/sh.c:6908 ++#: config/sh/sh.c:6909 + #, fuzzy, c-format + msgid "`%s' attribute argument not a string constant" + msgstr "asm ¥Æ¥ó¥×¥ì¡¼¥È¤¬Ê¸»úÎóÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + + #. The argument must be a constant integer. +-#: config/sh/sh.c:6943 ++#: config/sh/sh.c:6944 + #, fuzzy, c-format + msgid "`%s' attribute argument not an integer constant" + msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÎÉý¤¬À°¿ôÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" +@@ -12897,69 +12919,69 @@ + msgid "Profiling is not supported on this target." + msgstr "¥¹¥¿¥Ã¥¯À©¸Â¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" + +-#: config/sparc/sparc.c:360 ++#: config/sparc/sparc.c:362 + #, c-format + msgid "%s is not supported by this configuration" + msgstr "%s ¤Ï¤³¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó" + +-#: config/sparc/sparc.c:367 ++#: config/sparc/sparc.c:369 + msgid "-mlong-double-64 not allowed with -m64" + msgstr "-m64 »ØÄê¥â¡¼¥É¤Ç¤Ï -mlong-double-64 ¤Ïµö²Ä¤µ¤ì¤Þ¤»¤ó" + +-#: config/sparc/sparc.c:392 ++#: config/sparc/sparc.c:394 + msgid "-mcmodel= is not supported on 32 bit systems" + msgstr "-mcmodel= ¤Ï 32 bit ¥·¥¹¥Æ¥à¾å¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó" + +-#: config/sparc/sparc.c:6818 config/sparc/sparc.c:6824 ++#: config/sparc/sparc.c:6960 config/sparc/sparc.c:6966 + #, fuzzy, c-format + msgid "invalid %%Y operand" + msgstr "̵¸ú¤Ê %%Y ¥ª¥Ú¥é¥ó¥É" + +-#: config/sparc/sparc.c:6894 ++#: config/sparc/sparc.c:7036 + #, fuzzy, c-format + msgid "invalid %%A operand" + msgstr "̵¸ú¤Ê %%A ¥ª¥Ú¥é¥ó¥É" + +-#: config/sparc/sparc.c:6904 ++#: config/sparc/sparc.c:7046 + #, fuzzy, c-format + msgid "invalid %%B operand" + msgstr "̵¸ú¤Ê %%B ¥ª¥Ú¥é¥ó¥É" + +-#: config/sparc/sparc.c:6943 ++#: config/sparc/sparc.c:7085 + #, fuzzy, c-format + msgid "invalid %%c operand" + msgstr "̵¸ú¤Ê %%c ¥ª¥Ú¥é¥ó¥É" + +-#: config/sparc/sparc.c:6944 ++#: config/sparc/sparc.c:7086 + #, fuzzy, c-format + msgid "invalid %%C operand" + msgstr "̵¸ú¤Ê %%C ¥ª¥Ú¥é¥ó¥É" + +-#: config/sparc/sparc.c:6965 ++#: config/sparc/sparc.c:7107 + #, fuzzy, c-format + msgid "invalid %%d operand" + msgstr "̵¸ú¤Ê %%d ¥ª¥Ú¥é¥ó¥É" + +-#: config/sparc/sparc.c:6966 ++#: config/sparc/sparc.c:7108 + #, fuzzy, c-format + msgid "invalid %%D operand" + msgstr "̵¸ú¤Ê %%D ¥ª¥Ú¥é¥ó¥É" + +-#: config/sparc/sparc.c:6982 ++#: config/sparc/sparc.c:7124 + #, fuzzy, c-format + msgid "invalid %%f operand" + msgstr "̵¸ú¤Ê %%f ¥ª¥Ú¥é¥ó¥É" + +-#: config/sparc/sparc.c:6996 ++#: config/sparc/sparc.c:7138 + #, fuzzy, c-format + msgid "invalid %%s operand" + msgstr "̵¸ú¤Ê %P ¥ª¥Ú¥é¥ó¥É¤Ç¤¹" + +-#: config/sparc/sparc.c:7050 ++#: config/sparc/sparc.c:7192 + msgid "long long constant not a valid immediate operand" + msgstr "long long Äê¿ô¤ÏÀµ¾ï¤Ê¨ÃÍ¥ª¥Ú¥é¥ó¥É¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: config/sparc/sparc.c:7053 ++#: config/sparc/sparc.c:7195 + msgid "floating point constant not a valid immediate operand" + msgstr "ÉâÆ°¾®¿ôÄê¿ô¤ÏÀµ¾ï¤Ê¨ÃÍ¥ª¥Ú¥é¥ó¥É¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +@@ -13468,276 +13490,276 @@ + msgid "`-gnat' misspelled as `-gant'" + msgstr "" + +-#: cp/call.c:217 ++#: cp/call.c:219 + msgid "unable to call pointer to member function here" + msgstr "¤³¤³¤Ç¤Ï¥á¥ó¥Ð´Ø¿ô¥Ý¥¤¥ó¥¿¸Æ¤Ó½Ð¤·¤¬¤Ç¤­¤Þ¤»¤ó" + +-#: cp/call.c:2228 ++#: cp/call.c:2238 + msgid "%s %D(%T, %T, %T) " + msgstr "" + +-#: cp/call.c:2233 ++#: cp/call.c:2243 + msgid "%s %D(%T, %T) " + msgstr "" + +-#: cp/call.c:2237 ++#: cp/call.c:2247 + #, fuzzy + msgid "%s %D(%T) " + msgstr "<ÁȤ߹þ¤ß>" + +-#: cp/call.c:2241 ++#: cp/call.c:2251 + msgid "%s %T " + msgstr "" + +-#: cp/call.c:2243 ++#: cp/call.c:2253 + msgid "%J%s %+#D " + msgstr "" + +-#: cp/call.c:2245 ++#: cp/call.c:2255 + msgid "%J%s %+#D" + msgstr "" + +-#: cp/call.c:2280 ++#: cp/call.c:2290 + msgid "candidates are:" + msgstr "" + +-#: cp/call.c:2468 ++#: cp/call.c:2478 + #, fuzzy + msgid "conversion from `%T' to `%T' is ambiguous" + msgstr "%s: ¥ª¥×¥·¥ç¥ó `%s' ¤Ï¤¢¤¤¤Þ¤¤¤Ç¤¹\n" + +-#: cp/call.c:2619 cp/call.c:2663 ++#: cp/call.c:2629 cp/call.c:2673 + msgid "no matching function for call to `%D(%A)'" + msgstr "" + +-#: cp/call.c:2622 cp/call.c:2666 ++#: cp/call.c:2632 cp/call.c:2676 + msgid "call of overloaded `%D(%A)' is ambiguous" + msgstr "" + + #. It's no good looking for an overloaded operator() on a + #. pointer-to-member-function. +-#: cp/call.c:2732 ++#: cp/call.c:2742 + #, c-format + msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*" + msgstr "" + +-#: cp/call.c:2798 ++#: cp/call.c:2808 + msgid "no match for call to `(%T) (%A)'" + msgstr "" + +-#: cp/call.c:2806 ++#: cp/call.c:2816 + #, fuzzy + msgid "call of `(%T) (%A)' is ambiguous" + msgstr "%s: ¥ª¥×¥·¥ç¥ó `-W %s' ¤Ï¤¢¤¤¤Þ¤¤¤Ç¤¹\n" + +-#: cp/call.c:2839 ++#: cp/call.c:2849 + #, c-format + msgid "%s for ternary 'operator?:' in '%E ? %E : %E'" + msgstr "" + +-#: cp/call.c:2845 ++#: cp/call.c:2855 + #, c-format + msgid "%s for 'operator%s' in '%E%s'" + msgstr "" + +-#: cp/call.c:2849 ++#: cp/call.c:2859 + #, c-format + msgid "%s for 'operator[]' in '%E[%E]'" + msgstr "" + +-#: cp/call.c:2854 ++#: cp/call.c:2864 + #, fuzzy, c-format + msgid "%s for '%s' in '%s %E'" + msgstr "¥Õ¥£¡¼¥ë¥É '%s'('%s' Æâ) ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹" + +-#: cp/call.c:2859 ++#: cp/call.c:2869 + #, c-format + msgid "%s for 'operator%s' in '%E %s %E'" + msgstr "" + +-#: cp/call.c:2862 ++#: cp/call.c:2872 + #, c-format + msgid "%s for 'operator%s' in '%s%E'" + msgstr "" + +-#: cp/call.c:2951 ++#: cp/call.c:2961 + msgid "ISO C++ forbids omitting the middle term of a ?: expression" + msgstr "ISO C++ ¤ÏÃæ´Ö¹à¤¬¾Êά¤µ¤ì¤¿ ?: ¼°¤ò¶Ø¤¸¤Þ¤¹" + +-#: cp/call.c:3028 ++#: cp/call.c:3038 + #, c-format + msgid "`%E' has type `void' and is not a throw-expression" + msgstr "" + +-#: cp/call.c:3061 cp/call.c:3265 ++#: cp/call.c:3071 cp/call.c:3275 + msgid "operands to ?: have different types" + msgstr "" + +-#: cp/call.c:3219 ++#: cp/call.c:3229 + #, fuzzy + msgid "enumeral mismatch in conditional expression: `%T' vs `%T'" + msgstr "¾ò·ï¼°¤Ç¤Î·¿¤ÎÁȹç¤ï¤»¤¬Å¬¹ç¤·¤Þ¤»¤ó" + +-#: cp/call.c:3226 ++#: cp/call.c:3236 + #, fuzzy + msgid "enumeral and non-enumeral type in conditional expression" + msgstr "¾ò·ï¼°¤ËÉä¹çÉÕ¤­·¿¤ÈÉä¹ç̵¤··¿¤È¤¬¤¢¤ê¤Þ¤¹" + +-#: cp/call.c:3511 ++#: cp/call.c:3521 + msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead" + msgstr "" + +-#: cp/call.c:3560 ++#: cp/call.c:3570 + msgid "using synthesized `%#D' for copy assignment" + msgstr "" + +-#: cp/call.c:3562 ++#: cp/call.c:3572 + msgid " where cfront would use `%#D'" + msgstr "" + +-#: cp/call.c:3585 ++#: cp/call.c:3595 + #, fuzzy + msgid "comparison between `%#T' and `%#T'" + msgstr "Éä¹çÉÕ¤­¤ÈÉä¹ç̵¤·¤È¤ÎÈæ³Ó¤Ç¤¹" + +-#: cp/call.c:3831 ++#: cp/call.c:3841 + #, fuzzy + msgid "no suitable `operator %s' for `%T'" + msgstr "¤¢¤ê¤¨¤Ê¤¤±é»»»Ò '%s'" + +-#: cp/call.c:3848 ++#: cp/call.c:3858 + msgid "`%+#D' is private" + msgstr "" + +-#: cp/call.c:3850 ++#: cp/call.c:3860 + msgid "`%+#D' is protected" + msgstr "" + +-#: cp/call.c:3852 ++#: cp/call.c:3862 + msgid "`%+#D' is inaccessible" + msgstr "" + +-#: cp/call.c:3853 ++#: cp/call.c:3863 + msgid "within this context" + msgstr "" + +-#: cp/call.c:3923 ++#: cp/call.c:3947 + #, fuzzy + msgid "invalid conversion from `%T' to `%T'" + msgstr "NaN ¤«¤éÀ°¿ô¤Ø¤ÎÊÑ´¹¤Ç¤¹" + +-#: cp/call.c:3925 ++#: cp/call.c:3949 + #, fuzzy + msgid " initializing argument %P of `%D'" + msgstr "`%s' ¤Î°ú¿ô¤È¤·¤Æ̵¸ú¤Ê·¿" + +-#: cp/call.c:4079 ++#: cp/call.c:4094 + #, fuzzy + msgid "cannot bind bitfield `%E' to `%T'" + msgstr "%s: ¥Õ¥¡¥¤¥ë `%s' ¤ò `%s' ¤Ë¥ê¥ó¥¯¤Ç¤­¤Þ¤»¤ó: %s\n" + +-#: cp/call.c:4082 ++#: cp/call.c:4097 + #, fuzzy + msgid "cannot bind packed field `%E' to `%T'" + msgstr "%s: ¥Õ¥¡¥¤¥ë `%s' ¤ò `%s' ¤Ë¥ê¥ó¥¯¤Ç¤­¤Þ¤»¤ó: %s\n" + +-#: cp/call.c:4085 ++#: cp/call.c:4100 + #, fuzzy + msgid "cannot bind rvalue `%E' to `%T'" + msgstr "%s: ¥Õ¥¡¥¤¥ë `%s' ¤ò `%s' ¤Ë¥ê¥ó¥¯¤Ç¤­¤Þ¤»¤ó: %s\n" + +-#: cp/call.c:4170 ++#: cp/call.c:4185 + msgid "cannot pass objects of non-POD type `%#T' through `...'; call will abort at runtime" + msgstr "" + + #. Undefined behavior [expr.call] 5.2.2/7. +-#: cp/call.c:4196 ++#: cp/call.c:4211 + msgid "cannot receive objects of non-POD type `%#T' through `...'; call will abort at runtime" + msgstr "" + +-#: cp/call.c:4240 ++#: cp/call.c:4255 + msgid "the default argument for parameter %d of `%D' has not yet been parsed" + msgstr "" + +-#: cp/call.c:4437 ++#: cp/call.c:4452 + msgid "passing `%T' as `this' argument of `%#D' discards qualifiers" + msgstr "" + +-#: cp/call.c:4456 ++#: cp/call.c:4471 + msgid "`%T' is not an accessible base of `%T'" + msgstr "" + +-#: cp/call.c:4725 ++#: cp/call.c:4740 + #, fuzzy + msgid "could not find class$ field in java interface type `%T'" + msgstr "`%s' ¤Ø¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ë´ðÄ쥯¥é¥¹¤¬Àë¸À¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" + +-#: cp/call.c:4980 ++#: cp/call.c:4995 + #, fuzzy + msgid "call to non-function `%D'" + msgstr "virtual ¤ÊÈ󥯥饹´Ø¿ô `%s'" + +-#: cp/call.c:5006 ++#: cp/call.c:5021 + msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'" + msgstr "" + +-#: cp/call.c:5084 ++#: cp/call.c:5099 + msgid "no matching function for call to `%T::%s(%A)%#V'" + msgstr "" + +-#: cp/call.c:5101 ++#: cp/call.c:5116 + #, fuzzy, c-format + msgid "call of overloaded `%s(%A)' is ambiguous" + msgstr "%s: ¥ª¥×¥·¥ç¥ó `%s' ¤Ï¤¢¤¤¤Þ¤¤¤Ç¤¹\n" + +-#: cp/call.c:5122 ++#: cp/call.c:5137 + msgid "cannot call member function `%D' without object" + msgstr "" + +-#: cp/call.c:5707 ++#: cp/call.c:5722 + msgid "passing `%T' chooses `%T' over `%T'" + msgstr "" + +-#: cp/call.c:5709 cp/name-lookup.c:4155 ++#: cp/call.c:5724 cp/name-lookup.c:4137 + #, fuzzy + msgid " in call to `%D'" + msgstr "`%s' ¤Ø¤Î¸Æ¤Ó½Ð¤·¤Ï¥¤¥ó¥é¥¤¥ó²½¤Ç¤­¤Þ¤»¤ó" + +-#: cp/call.c:5766 ++#: cp/call.c:5781 + msgid "choosing `%D' over `%D'" + msgstr "" + +-#: cp/call.c:5767 ++#: cp/call.c:5782 + #, fuzzy + msgid " for conversion from `%T' to `%T'" + msgstr "NaN ¤«¤éÀ°¿ô¤Ø¤ÎÊÑ´¹¤Ç¤¹" + +-#: cp/call.c:5769 ++#: cp/call.c:5784 + msgid " because conversion sequence for the argument is better" + msgstr "" + +-#: cp/call.c:5889 ++#: cp/call.c:5904 + msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:" + msgstr "" + +-#: cp/call.c:5893 ++#: cp/call.c:5908 + msgid "candidate 1:" + msgstr "" + +-#: cp/call.c:5894 ++#: cp/call.c:5909 + msgid "candidate 2:" + msgstr "" + +-#: cp/call.c:6003 ++#: cp/call.c:6018 + #, fuzzy + msgid "could not convert `%E' to `%T'" + msgstr "0x%l.8x ¤òÎΰè¤ËÊÑ´¹¤Ç¤­¤Þ¤»¤ó" + +-#: cp/call.c:6108 ++#: cp/call.c:6123 + msgid "invalid initialization of non-const reference of type '%T' from a temporary of type '%T'" + msgstr "" + +-#: cp/call.c:6112 ++#: cp/call.c:6127 + msgid "invalid initialization of reference of type '%T' from expression of type '%T'" + msgstr "" + +@@ -13814,235 +13836,235 @@ + msgid "`%#T' only defines private constructors and has no friends" + msgstr "" + +-#: cp/class.c:1995 ++#: cp/class.c:2038 + msgid "no unique final overrider for `%D' in `%T'" + msgstr "" + + #. Here we know it is a hider, and no overrider exists. +-#: cp/class.c:2441 ++#: cp/class.c:2484 + msgid "`%D' was hidden" + msgstr "" + +-#: cp/class.c:2442 ++#: cp/class.c:2485 + msgid " by `%D'" + msgstr "" + +-#: cp/class.c:2484 cp/decl2.c:1161 ++#: cp/class.c:2527 cp/decl2.c:1161 + msgid "`%#D' invalid; an anonymous union can only have non-static data members" + msgstr "" + +-#: cp/class.c:2490 cp/decl2.c:1168 ++#: cp/class.c:2533 cp/decl2.c:1168 + msgid "private member `%#D' in anonymous union" + msgstr "" + +-#: cp/class.c:2493 cp/decl2.c:1170 ++#: cp/class.c:2536 cp/decl2.c:1170 + msgid "protected member `%#D' in anonymous union" + msgstr "" + +-#: cp/class.c:2612 ++#: cp/class.c:2655 + msgid "vtable layout for class `%T' may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor" + msgstr "" + +-#: cp/class.c:2672 ++#: cp/class.c:2715 + #, fuzzy + msgid "bit-field `%#D' with non-integral type" + msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÎÉý¤¬À°¿ôÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: cp/class.c:2692 ++#: cp/class.c:2735 + #, fuzzy + msgid "bit-field `%D' width not an integer constant" + msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÎÉý¤¬À°¿ôÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: cp/class.c:2698 ++#: cp/class.c:2741 + #, fuzzy + msgid "negative width in bit-field `%D'" + msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÎÉý¤¬Éé¤Î¿ô¤Ç¤¹" + +-#: cp/class.c:2703 ++#: cp/class.c:2746 + #, fuzzy + msgid "zero width for bit-field `%D'" + msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÎÉý¤¬ 0 ¤Ç¤¹" + +-#: cp/class.c:2709 ++#: cp/class.c:2752 + #, fuzzy + msgid "width of `%D' exceeds its type" + msgstr "`%s' ¤ÎÉý¤Ï¤½¤Î·¿¤Î¥µ¥¤¥º¤òĶ¤¨¤Æ¤¤¤Þ¤¹" + +-#: cp/class.c:2718 ++#: cp/class.c:2761 + msgid "`%D' is too small to hold all values of `%#T'" + msgstr "" + +-#: cp/class.c:2780 ++#: cp/class.c:2823 + msgid "member `%#D' with constructor not allowed in union" + msgstr "" + +-#: cp/class.c:2783 ++#: cp/class.c:2826 + msgid "member `%#D' with destructor not allowed in union" + msgstr "" + +-#: cp/class.c:2786 ++#: cp/class.c:2829 + msgid "member `%#D' with copy assignment operator not allowed in union" + msgstr "" + +-#: cp/class.c:2813 ++#: cp/class.c:2856 + #, fuzzy + msgid "multiple fields in union `%T' initialized" + msgstr "¶¦ÍÑÂνé´ü²½»ÒÆâ¤ÎÍ×ÁǤ¬Â¿¤¹¤®¤Þ¤¹" + +-#: cp/class.c:2879 ++#: cp/class.c:2922 + msgid "ignoring packed attribute on unpacked non-POD field `%#D'" + msgstr "" + +-#: cp/class.c:2939 ++#: cp/class.c:2982 + msgid "`%D' may not be static because it is a member of a union" + msgstr "" + +-#: cp/class.c:2944 ++#: cp/class.c:2987 + msgid "`%D' may not have reference type `%T' because it is a member of a union" + msgstr "" + +-#: cp/class.c:2952 ++#: cp/class.c:2995 + msgid "field `%D' in local class cannot be static" + msgstr "" + +-#: cp/class.c:2958 ++#: cp/class.c:3001 + #, fuzzy + msgid "field `%D' invalidly declared function type" + msgstr "Îΰè `%s' ¤Ï´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹" + +-#: cp/class.c:2965 ++#: cp/class.c:3008 + #, fuzzy + msgid "field `%D' invalidly declared method type" + msgstr "¥Ñ¥é¥á¥¿¤Ï¥á¥½¥Ã¥É¤Î·¿¤òÉÔÀµ¤ËÀë¸À¤·¤Þ¤·¤¿" + +-#: cp/class.c:2998 ++#: cp/class.c:3041 + msgid "non-static reference `%#D' in class without a constructor" + msgstr "" + +-#: cp/class.c:3041 ++#: cp/class.c:3084 + msgid "non-static const member `%#D' in class without a constructor" + msgstr "" + +-#: cp/class.c:3056 ++#: cp/class.c:3099 + msgid "field `%#D' with same name as class" + msgstr "" + +-#: cp/class.c:3074 ++#: cp/class.c:3117 + #, fuzzy + msgid "`%#T' has pointer data members" + msgstr "¥á¥ó¥Ð¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Î̵¸ú¤Ê `%s' ¤Î»ÈÍÑ" + +-#: cp/class.c:3078 ++#: cp/class.c:3121 + msgid " but does not override `%T(const %T&)'" + msgstr "" + +-#: cp/class.c:3080 ++#: cp/class.c:3123 + msgid " or `operator=(const %T&)'" + msgstr "" + +-#: cp/class.c:3083 ++#: cp/class.c:3126 + msgid " but does not override `operator=(const %T&)'" + msgstr "" + +-#: cp/class.c:3517 ++#: cp/class.c:3560 + msgid "offset of empty base `%T' may not be ABI-compliant and maychange in a future version of GCC" + msgstr "" + +-#: cp/class.c:3627 ++#: cp/class.c:3670 + msgid "class `%T' will be considered nearly empty in a future version of GCC" + msgstr "" + +-#: cp/class.c:3714 ++#: cp/class.c:3757 + #, fuzzy + msgid "initializer specified for non-virtual method `%D'" + msgstr "Èó´Ø¿ô `%s' ¤Î°ú¿ô¤Ë format °À­¤¬»ØÄꤵ¤ì¤Þ¤·¤¿" + +-#: cp/class.c:4402 ++#: cp/class.c:4445 + msgid "offset of virtual base `%T' is not ABI-compliant and may change in a future version of GCC" + msgstr "" + +-#: cp/class.c:4492 ++#: cp/class.c:4535 + msgid "direct base `%T' inaccessible in `%T' due to ambiguity" + msgstr "" + +-#: cp/class.c:4505 ++#: cp/class.c:4548 + msgid "virtual base `%T' inaccessible in `%T' due to ambiguity" + msgstr "" + +-#: cp/class.c:4679 ++#: cp/class.c:4722 + msgid "size assigned to `%T' may not be ABI-compliant and may change in a future version of GCC" + msgstr "" + + #. Versions of G++ before G++ 3.4 did not reset the + #. DECL_MODE. +-#: cp/class.c:4718 ++#: cp/class.c:4761 + msgid "the offset of `%D' may not be ABI-compliant and may change in a future version of GCC" + msgstr "" + +-#: cp/class.c:4741 ++#: cp/class.c:4784 + msgid "offset of `%D' is not ABI-compliant and may change in a future version of GCC" + msgstr "" + +-#: cp/class.c:4750 ++#: cp/class.c:4793 + msgid "`%D' contains empty classes which may cause base classes to be placed at different locations in a future version of GCC" + msgstr "" + +-#: cp/class.c:4809 ++#: cp/class.c:4852 + msgid "layout of classes derived from empty class `%T' may change in a future version of GCC" + msgstr "" + +-#: cp/class.c:4939 cp/semantics.c:2044 ++#: cp/class.c:4982 cp/semantics.c:2041 + #, fuzzy + msgid "redefinition of `%#T'" + msgstr "`%s' ¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿" + +-#: cp/class.c:5109 ++#: cp/class.c:5152 + #, fuzzy + msgid "`%#T' has virtual functions but non-virtual destructor" + msgstr "Èó²¾Áۥǥ¹¥È¥é¥¯¥¿¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë" + +-#: cp/class.c:5188 ++#: cp/class.c:5231 + #, fuzzy + msgid "trying to finish struct, but kicked out due to previous parse errors" + msgstr "¹½Ê¸²òÀϤ¬¹½Â¤ÂΤνª¤ê¤Ëº¹¤·³Ý¤«¤ê¤Þ¤·¤¿¤¬¡¢Á°¤Î¥¨¥é¡¼¤Î¤»¤¤¤Çʸ̮¤ò¸«¼º¤¤¤Þ¤·¤¿" + +-#: cp/class.c:5630 ++#: cp/class.c:5673 + #, c-format + msgid "language string `\"%s\"' not recognized" + msgstr "¸À¸ìʸ»úÎó `\"%s\"' ¤Ïǧ¼±¤µ¤ì¤Þ¤»¤ó" + +-#: cp/class.c:5718 ++#: cp/class.c:5761 + msgid "cannot resolve overloaded function `%D' based on conversion to type `%T'" + msgstr "" + +-#: cp/class.c:5843 ++#: cp/class.c:5886 + msgid "no matches converting function `%D' to type `%#T'" + msgstr "" + +-#: cp/class.c:5866 ++#: cp/class.c:5909 + msgid "converting overloaded function `%D' to type `%#T' is ambiguous" + msgstr "" + +-#: cp/class.c:5892 ++#: cp/class.c:5935 + #, fuzzy + msgid "assuming pointer to member `%D'" + msgstr " ¥Ý¥¤¥ó¥¿¤«¤é¥á¥ó¥Ð¤Ø¤ÎÊÑ´¹¤Ç" + +-#: cp/class.c:5895 ++#: cp/class.c:5938 + #, c-format + msgid "(a pointer to member can only be formed with `&%E')" + msgstr "" + +-#: cp/class.c:5940 cp/class.c:6122 cp/class.c:6129 ++#: cp/class.c:5983 cp/class.c:6165 cp/class.c:6172 + msgid "not enough type information" + msgstr "ÉÔ½½Ê¬¤Ê·¿¾ðÊó" + +-#: cp/class.c:5957 ++#: cp/class.c:6000 + #, fuzzy + msgid "argument of type `%T' does not match `%T'" + msgstr "²¾°ú¿ô `%s' ¤Ï¥×¥í¥È¥¿¥¤¥×¤Ë°ìÃפ·¤Þ¤»¤ó" + +-#: cp/class.c:6106 ++#: cp/class.c:6149 + msgid "invalid operation on uninstantiated type" + msgstr "¥¤¥ó¥¹¥¿¥ó¥¹²½¤µ¤ì¤Ê¤¤·¿¤ËÂФ¹¤ë̵¸ú¤ÊÁàºî¤Ç¤¹" + +@@ -14051,12 +14073,12 @@ + #. A name N used in a class S shall refer to the same declaration + #. in its context and when re-evaluated in the completed scope of + #. S. +-#: cp/class.c:6364 cp/decl.c:1222 cp/name-lookup.c:514 cp/pt.c:2097 ++#: cp/class.c:6407 cp/decl.c:1223 cp/name-lookup.c:514 cp/pt.c:2125 + #, fuzzy + msgid "declaration of `%#D'" + msgstr "`%s' ¤¬ºÆÀë¸À¤µ¤ì¤Þ¤·¤¿" + +-#: cp/class.c:6365 ++#: cp/class.c:6408 + msgid "changes meaning of `%D' from `%+#D'" + msgstr "" + +@@ -14169,173 +14191,190 @@ + msgid " candidate conversions include `%D' and `%D'" + msgstr "" + +-#: cp/decl.c:371 ++#: cp/decl.c:372 + #, fuzzy + msgid "label `%D' used but not defined" + msgstr "¥é¥Ù¥ë `%s' ¤¬»È¤ï¤ì¤Þ¤·¤¿¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" + +-#: cp/decl.c:378 ++#: cp/decl.c:379 + #, fuzzy + msgid "label `%D' defined but not used" + msgstr "¥é¥Ù¥ë `%s' ¤¬ÄêµÁ¤µ¤ì¤Þ¤·¤¿¤¬»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó" + +-#: cp/decl.c:1130 cp/decl.c:1556 ++#: cp/decl.c:1131 cp/decl.c:1570 + #, fuzzy + msgid "previous declaration of `%D'" + msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À" + +-#: cp/decl.c:1178 ++#: cp/decl.c:1179 + #, fuzzy + msgid "%Jfunction '%D' redeclared as inline" + msgstr "¥é¥¤¥Ö¥é¥ê´Ø¿ô `%s' ¤ÏÈó´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Þ¤·¤¿" + +-#: cp/decl.c:1179 ++#: cp/decl.c:1180 + #, fuzzy + msgid "%Jprevious declaration of '%D' with attribute noinline" + msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À" + +-#: cp/decl.c:1186 ++#: cp/decl.c:1187 + #, fuzzy + msgid "%Jfunction '%D' redeclared with attribute noinline" + msgstr "´Ø¿ô¤¬Â礭¤¹¤®¤Æ inline ¤Ë¤Ç¤­¤Þ¤»¤ó" + +-#: cp/decl.c:1188 ++#: cp/decl.c:1189 + #, fuzzy + msgid "%Jprevious declaration of '%D' was inline" + msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À" + +-#: cp/decl.c:1209 cp/decl.c:1247 ++#: cp/decl.c:1210 cp/decl.c:1248 + #, fuzzy + msgid "shadowing %s function `%#D'" + msgstr "¥é¥¤¥Ö¥é¥ê´Ø¿ô `%s' ¤òʤ¤¤±£¤·¤Þ¤¹" + +-#: cp/decl.c:1218 ++#: cp/decl.c:1219 + #, fuzzy + msgid "library function `%#D' redeclared as non-function `%#D'" + msgstr "¥é¥¤¥Ö¥é¥ê´Ø¿ô `%s' ¤ÏÈó´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Þ¤·¤¿" + +-#: cp/decl.c:1223 ++#: cp/decl.c:1224 + #, fuzzy + msgid "conflicts with built-in declaration `%#D'" + msgstr "`%s' ¤ÎÀë¸À¤¬Ì·½â¤·¤Æ¤¤¤Þ¤¹" + +-#: cp/decl.c:1242 cp/decl.c:1354 cp/decl.c:1370 ++#: cp/decl.c:1243 cp/decl.c:1355 cp/decl.c:1371 + #, fuzzy + msgid "new declaration `%#D'" + msgstr "`%s' ¤¬ºÆÀë¸À¤µ¤ì¤Þ¤·¤¿" + +-#: cp/decl.c:1243 ++#: cp/decl.c:1244 + #, fuzzy + msgid "ambiguates built-in declaration `%#D'" + msgstr "¥é¥Ù¥ë¤ÎÀë¸À `%s' ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹" + +-#: cp/decl.c:1314 ++#: cp/decl.c:1315 + #, fuzzy + msgid "`%#D' redeclared as different kind of symbol" + msgstr "`%s' ¤¬Ê̤Υ·¥ó¥Ü¥ë¼ï¤È¤·¤ÆºÆÀë¸À¤µ¤ì¤Þ¤·¤¿" + +-#: cp/decl.c:1317 ++#: cp/decl.c:1318 + #, fuzzy + msgid "previous declaration of `%#D'" + msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À" + +-#: cp/decl.c:1339 ++#: cp/decl.c:1340 + #, fuzzy + msgid "declaration of template `%#D'" + msgstr "`enum %s' ¤ÎºÆÀë¸À" + +-#: cp/decl.c:1340 cp/name-lookup.c:515 ++#: cp/decl.c:1341 cp/name-lookup.c:515 + #, fuzzy + msgid "conflicts with previous declaration `%#D'" + msgstr "`%s' ¤Î¥»¥¯¥·¥ç¥ó¤ÏÁ°Êý¤Ç¤ËÀë¸À¤µ¤ì¤¿¤â¤Î¤È¾×Æͤ·¤Þ¤¹" + +-#: cp/decl.c:1355 cp/decl.c:1371 ++#: cp/decl.c:1356 cp/decl.c:1372 + #, fuzzy + msgid "ambiguates old declaration `%#D'" + msgstr "¥é¥Ù¥ë¤ÎÀë¸À `%s' ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹" + +-#: cp/decl.c:1363 ++#: cp/decl.c:1364 + #, fuzzy + msgid "declaration of C function `%#D' conflicts with" + msgstr "%s: ´Ø¿ô `%s' ¤ÎÀë¸À¤¬ÊÑ´¹¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n" + +-#: cp/decl.c:1365 ++#: cp/decl.c:1366 + #, fuzzy + msgid "previous declaration `%#D' here" + msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À" + +-#: cp/decl.c:1381 ++#: cp/decl.c:1382 + #, fuzzy + msgid "conflicting declaration '%#D'" + msgstr "`%s' ¤ÎÀë¸À¤¬Ì·½â¤·¤Æ¤¤¤Þ¤¹" + +-#: cp/decl.c:1382 ++#: cp/decl.c:1383 + #, fuzzy + msgid "'%D' has a previous declaration as `%#D'" + msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À" + +-#: cp/decl.c:1435 ++#. [namespace.alias] ++#. ++#. A namespace-name or namespace-alias shall not be declared as ++#. the name of any other entity in the same declarative region. ++#. A namespace-name defined at global scope shall not be ++#. declared as the name of any other entity in any glogal scope ++#. of the program. ++#: cp/decl.c:1436 ++#, fuzzy ++msgid "declaration of `namespace %D' conflicts with" ++msgstr "`enum %s' ¤ÎºÆÀë¸À" ++ ++#: cp/decl.c:1437 ++#, fuzzy ++msgid "previous declaration of `namespace %D' here" ++msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À" ++ ++#: cp/decl.c:1449 + #, fuzzy + msgid "`%#D' previously defined here" + msgstr "`%s' ¤ÏÁ°¤Ë¤³¤³¤ÇÄêµÁ¤µ¤ì¤Þ¤·¤¿" + +-#: cp/decl.c:1436 ++#: cp/decl.c:1450 + #, fuzzy + msgid "`%#D' previously declared here" + msgstr "`%s' ¤ÏÁ°¤Ë¤³¤³¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿" + + #. Prototype decl follows defn w/o prototype. +-#: cp/decl.c:1445 ++#: cp/decl.c:1459 + #, fuzzy + msgid "prototype for `%#D'" + msgstr "`%s' ¤Î¥×¥í¥È¥¿¥¤¥×¤¬¸å¤í¤Ë¤¢¤ê¤Þ¤¹" + +-#: cp/decl.c:1446 ++#: cp/decl.c:1460 + #, fuzzy + msgid "%Jfollows non-prototype definition here" + msgstr "Èó¥×¥í¥È¥¿¥¤¥×ÄêµÁ¤¬¤³¤³¤Ë¤¢¤ê¤Þ¤¹" + +-#: cp/decl.c:1458 ++#: cp/decl.c:1472 + #, fuzzy + msgid "previous declaration of `%#D' with %L linkage" + msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À" + +-#: cp/decl.c:1460 ++#: cp/decl.c:1474 + #, fuzzy + msgid "conflicts with new declaration with %L linkage" + msgstr "`%s' ¤ÎÀë¸À¤¬Ì·½â¤·¤Æ¤¤¤Þ¤¹" + +-#: cp/decl.c:1483 cp/decl.c:1490 ++#: cp/decl.c:1497 cp/decl.c:1504 + #, fuzzy + msgid "default argument given for parameter %d of `%#D'" + msgstr "¥Þ¥¯¥í `%s' ¤Ë°ú¿ô¤¬Í¿¤¨¤é¤ì¤Þ¤·¤¿" + +-#: cp/decl.c:1485 cp/decl.c:1492 ++#: cp/decl.c:1499 cp/decl.c:1506 + #, fuzzy + msgid "after previous specification in `%#D'" + msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À" + +-#: cp/decl.c:1501 ++#: cp/decl.c:1515 + #, fuzzy + msgid "`%#D' was used before it was declared inline" + msgstr "`%s' ¤Ï¤½¤ÎÄêµÁ¤ÎÁ°¤Ë¥×¥í¥È¥¿¥¤¥×¤Ê¤·¤Ç»È¤ï¤ì¤Þ¤·¤¿" + +-#: cp/decl.c:1502 ++#: cp/decl.c:1516 + #, fuzzy + msgid "%Jprevious non-inline declaration here" + msgstr "Á°Êý¤Ç¤Î `%s' ¤Î°ÅÌÛŪ¤ÊÀë¸À" + +-#: cp/decl.c:1555 ++#: cp/decl.c:1569 + #, fuzzy + msgid "redundant redeclaration of `%D' in same scope" + msgstr "`%s' ¤Î¾éĹ¤ÊºÆÀë¸À¤¬Æ±°ì¥¹¥³¡¼¥×Æâ¤Ë¤¢¤ê¤Þ¤¹" + +-#: cp/decl.c:1649 ++#: cp/decl.c:1663 + #, fuzzy, c-format + msgid "declaration of `%F' throws different exceptions" + msgstr "`%s' ¤ÎÀë¸À¤Ï´Ø¿ô¤ÎÇÛÎó" + +-#: cp/decl.c:1651 ++#: cp/decl.c:1665 + #, fuzzy, c-format + msgid "than previous declaration `%F'" + msgstr "`%s' ¤ÎÁ°ÊýÀë¸À¤¬¤¢¤ê¤Þ¤»¤ó" +@@ -14348,226 +14387,226 @@ + #. that specialization that would cause an implicit + #. instantiation to take place, in every translation unit in + #. which such a use occurs. +-#: cp/decl.c:1798 ++#: cp/decl.c:1812 + msgid "explicit specialization of %D after first use" + msgstr "" + +-#: cp/decl.c:1878 ++#: cp/decl.c:1892 + msgid "%J'%D': visibility attribute ignored because it" + msgstr "" + +-#: cp/decl.c:1880 ++#: cp/decl.c:1894 + #, fuzzy + msgid "%Jconflicts with previous declaration here" + msgstr "`%s' ¤Î¥»¥¯¥·¥ç¥ó¤ÏÁ°Êý¤Ç¤ËÀë¸À¤µ¤ì¤¿¤â¤Î¤È¾×Æͤ·¤Þ¤¹" + +-#: cp/decl.c:1974 ++#: cp/decl.c:1988 + #, fuzzy + msgid "implicit declaration of function `%#D'" + msgstr "´Ø¿ô `%s' ¤Î°ÅÌÛ¤ÎÀë¸À" + +-#: cp/decl.c:2137 ++#: cp/decl.c:2151 + #, c-format + msgid "label `%s' referenced outside of any function" + msgstr "¥é¥Ù¥ë `%s' ¤¬´Ø¿ô¤Î³°Â¦¤Î²¿¤«¤ò»²¾È¤·¤Þ¤·¤¿" + +-#: cp/decl.c:2234 cp/decl.c:2258 cp/decl.c:2346 ++#: cp/decl.c:2248 cp/decl.c:2272 cp/decl.c:2360 + #, fuzzy + msgid "jump to label `%D'" + msgstr "case ¥é¥Ù¥ë¤Ë¥¸¥ã¥ó¥×¤·¤Æ¤¤¤Þ¤¹" + +-#: cp/decl.c:2236 cp/decl.c:2260 ++#: cp/decl.c:2250 cp/decl.c:2274 + msgid "jump to case label" + msgstr "case ¥é¥Ù¥ë¤Ë¥¸¥ã¥ó¥×¤·¤Æ¤¤¤Þ¤¹" + +-#: cp/decl.c:2239 cp/decl.c:2263 ++#: cp/decl.c:2253 cp/decl.c:2277 + #, fuzzy + msgid "%H from here" + msgstr " ¤³¤³¤«¤é" + +-#: cp/decl.c:2244 ++#: cp/decl.c:2258 + #, fuzzy + msgid " crosses initialization of `%#D'" + msgstr "(`%s' ¤Î½é´ü²½¤ÏÉÔ´°Á´¤Ç¤¹)" + +-#: cp/decl.c:2247 cp/decl.c:2362 ++#: cp/decl.c:2261 cp/decl.c:2376 + msgid " enters scope of non-POD `%#D'" + msgstr "" + +-#: cp/decl.c:2267 cp/decl.c:2366 ++#: cp/decl.c:2281 cp/decl.c:2380 + msgid " enters try block" + msgstr " try ¥Ö¥í¥Ã¥¯¤ËÆþ¤ê¤Þ¤¹" + +-#: cp/decl.c:2269 cp/decl.c:2368 ++#: cp/decl.c:2283 cp/decl.c:2382 + msgid " enters catch block" + msgstr " catch ¥Ö¥í¥Ã¥¯¤ËÆþ¤ê¤Þ¤¹" + +-#: cp/decl.c:2347 ++#: cp/decl.c:2361 + msgid " from here" + msgstr " ¤³¤³¤«¤é" + + #. Can't skip init of __exception_info. +-#: cp/decl.c:2358 ++#: cp/decl.c:2372 + #, fuzzy + msgid "%J enters catch block" + msgstr " catch ¥Ö¥í¥Ã¥¯¤ËÆþ¤ê¤Þ¤¹" + +-#: cp/decl.c:2360 ++#: cp/decl.c:2374 + #, fuzzy + msgid " skips initialization of `%#D'" + msgstr "(`%s' ¤Î½é´ü²½¤ÏÉÔ´°Á´¤Ç¤¹)" + +-#: cp/decl.c:2394 ++#: cp/decl.c:2408 + msgid "label named wchar_t" + msgstr "" + +-#: cp/decl.c:2397 ++#: cp/decl.c:2411 + #, fuzzy + msgid "duplicate label `%D'" + msgstr "½ÅÊ£¤·¤¿¥á¥ó¥Ð `%s'" + +-#: cp/decl.c:2625 cp/parser.c:3182 ++#: cp/decl.c:2639 cp/parser.c:3192 + msgid "`%D' used without template parameters" + msgstr "" + +-#: cp/decl.c:2635 cp/decl.c:2651 cp/decl.c:2739 ++#: cp/decl.c:2649 cp/decl.c:2665 cp/decl.c:2753 + msgid "no class template named `%#T' in `%#T'" + msgstr "" + +-#: cp/decl.c:2672 cp/decl.c:2682 cp/decl.c:2702 ++#: cp/decl.c:2686 cp/decl.c:2696 cp/decl.c:2716 + #, fuzzy + msgid "no type named `%#T' in `%#T'" + msgstr "`asm' Ãæ¤ËÉÔÌÀ¤Ê¥ì¥¸¥¹¥¿Ì¾ `%s' ¤¬¤¢¤ê¤Þ¤¹" + +-#: cp/decl.c:3429 ++#: cp/decl.c:3443 + msgid "%Jan anonymous union cannot have function members" + msgstr "" + +-#: cp/decl.c:3447 ++#: cp/decl.c:3461 + msgid "member %#D' with constructor not allowed in anonymous aggregate" + msgstr "" + +-#: cp/decl.c:3450 ++#: cp/decl.c:3464 + msgid "member %#D' with destructor not allowed in anonymous aggregate" + msgstr "" + +-#: cp/decl.c:3453 ++#: cp/decl.c:3467 + msgid "member %#D' with copy assignment operator not allowed in anonymous aggregate" + msgstr "" + +-#: cp/decl.c:3493 ++#: cp/decl.c:3507 + #, fuzzy + msgid "redeclaration of C++ built-in type `%T'" + msgstr "`%s' ¤¬ºÆÀë¸À¤µ¤ì¤Þ¤·¤¿" + +-#: cp/decl.c:3531 ++#: cp/decl.c:3545 + msgid "multiple types in one declaration" + msgstr "°ì¤Ä¤ÎÀë¸À¤ËÊ£¿ô¤Î·¿¤¬¤¢¤ê¤Þ¤¹" + +-#: cp/decl.c:3557 ++#: cp/decl.c:3571 + #, fuzzy + msgid "missing type-name in typedef-declaration" + msgstr "typdef Àë¸À¤Ç·¿Ì¾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹" + +-#: cp/decl.c:3565 ++#: cp/decl.c:3579 + msgid "ISO C++ prohibits anonymous structs" + msgstr "ISO C++ ¤Ï̵̾¹½Â¤ÂΤò¶Ø»ß¤·¤Æ¤¤¤Þ¤¹" + +-#: cp/decl.c:3572 ++#: cp/decl.c:3586 + #, fuzzy + msgid "`%D' can only be specified for functions" + msgstr "Èó´Ø¿ô `%s' ¤Î°ú¿ô¤Ë format °À­¤¬»ØÄꤵ¤ì¤Þ¤·¤¿" + +-#: cp/decl.c:3574 ++#: cp/decl.c:3588 + msgid "`%D' can only be specified inside a class" + msgstr "" + +-#: cp/decl.c:3576 ++#: cp/decl.c:3590 + #, fuzzy + msgid "`%D' can only be specified for constructors" + msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤ËÂФ¹¤ëÌá¤êÃͤη¿»ØÄê¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿" + +-#: cp/decl.c:3579 ++#: cp/decl.c:3593 + #, fuzzy + msgid "`%D' can only be specified for objects and functions" + msgstr "Èó´Ø¿ô `%s' ¤Î°ú¿ô¤Ë format °À­¤¬»ØÄꤵ¤ì¤Þ¤·¤¿" + +-#: cp/decl.c:3721 cp/decl2.c:855 ++#: cp/decl.c:3735 cp/decl2.c:855 + #, fuzzy + msgid "typedef `%D' is initialized (use __typeof__ instead)" + msgstr "typedef `%s' ¤¬½é´ü²½¤µ¤ì¤Þ¤·¤¿" + +-#: cp/decl.c:3726 ++#: cp/decl.c:3740 + #, fuzzy + msgid "function `%#D' is initialized like a variable" + msgstr "´Ø¿ô `%s' ¤¬ÊÑ¿ô¤Ç¤¢¤ë¤«¤Î¤è¤¦¤Ë½é´ü²½¤µ¤ì¤Þ¤·¤¿" + +-#: cp/decl.c:3738 ++#: cp/decl.c:3752 + #, fuzzy + msgid "declaration of `%#D' has `extern' and is initialized" + msgstr "`%s' ¤ÎÀë¸À¤Ë `extern' ¤¬¤Ä¤¤¤Æ¤ª¤ê¡¢½é´ü²½¤â¤µ¤ì¤Æ¤¤¤Þ¤¹" + +-#: cp/decl.c:3771 ++#: cp/decl.c:3785 + #, fuzzy + msgid "`%#D' is not a static member of `%#T'" + msgstr "static ¥Õ¥£¡¼¥ë¥É `%s' ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: cp/decl.c:3777 ++#: cp/decl.c:3791 + #, fuzzy + msgid "ISO C++ does not permit `%T::%D' to be defined as `%T::%D'" + msgstr "ISO C++ ¤Ï #if Æâ¤Î \"%s\" ¤òµö¤·¤Þ¤»¤ó" + +-#: cp/decl.c:3788 ++#: cp/decl.c:3802 + #, fuzzy + msgid "duplicate initialization of %D" + msgstr "½ÅÊ£¤·¤¿½é´ü²½»Ò" + +-#: cp/decl.c:3819 ++#: cp/decl.c:3833 + #, fuzzy + msgid "declaration of `%#D' outside of class is not definition" + msgstr "`%s' ¤Î weak Àë¸À¤ÏÄêµÁ¤è¤ê¤âÀè¤Ë¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó" + +-#: cp/decl.c:3868 ++#: cp/decl.c:3882 + #, fuzzy + msgid "variable `%#D' has initializer but incomplete type" + msgstr "ÊÑ¿ô `%s' ¤Ë¤Ï½é´ü²½»Ò¤¬¤¢¤ê¤Þ¤¹¤¬¡¢ÉÔ´°Á´·¿¤Ç¤¹" + +-#: cp/decl.c:3876 cp/decl.c:4445 ++#: cp/decl.c:3890 cp/decl.c:4500 + #, fuzzy + msgid "elements of array `%#D' have incomplete type" + msgstr "ÇÛÎó `%s' ¤ÎÍ×ÁǤËÉÔ´°Á´·¿¤¬¤¢¤ê¤Þ¤¹" + +-#: cp/decl.c:3892 ++#: cp/decl.c:3906 + #, fuzzy + msgid "aggregate `%#D' has incomplete type and cannot be defined" + msgstr "²¾°ú¿ô `%s' ¤ÏÉÔ´°Á´·¿¤Ç¤¹" + +-#: cp/decl.c:3942 ++#: cp/decl.c:3956 + #, fuzzy + msgid "`%D' declared as reference but not initialized" + msgstr "`%s' ¤¬Ê̤Υ·¥ó¥Ü¥ë¼ï¤È¤·¤ÆºÆÀë¸À¤µ¤ì¤Þ¤·¤¿" + +-#: cp/decl.c:3948 ++#: cp/decl.c:3962 + #, fuzzy + msgid "ISO C++ forbids use of initializer list to initialize reference `%D'" + msgstr "ISO C++ ¤Ï new ¤Ø¤Î½¸¹çÂνé´ü²½»Ò¤ò¶Ø¤¸¤Þ¤¹" + +-#: cp/decl.c:3976 ++#: cp/decl.c:3990 + #, fuzzy + msgid "cannot initialize `%T' from `%T'" + msgstr "friend ´Ø¿ô `%s' ¤ò½é´ü²½¤Ç¤­¤Þ¤»¤ó" + +-#: cp/decl.c:4008 ++#: cp/decl.c:4022 + #, fuzzy + msgid "initializer fails to determine size of `%D'" + msgstr "½é´ü²½»Ò¤Ï `%s' ¤Î¥µ¥¤¥º¤ÎÆÃÄê¤Ë¼ºÇÔ¤·¤Þ¤·¤¿" + +-#: cp/decl.c:4013 ++#: cp/decl.c:4027 + #, fuzzy + msgid "array size missing in `%D'" + msgstr "`%s' ¤Ç¤ÎÇÛÎó¥µ¥¤¥º¤ò·ç¤¤¤Æ¤¤¤Þ¤¹" + +-#: cp/decl.c:4025 ++#: cp/decl.c:4039 + #, fuzzy + msgid "zero-size array `%D'" + msgstr "ISO C ¤Ï ¥µ¥¤¥º 0 ¤ÎÇÛÎó `%s' ¤ò¶Ø¤¸¤Þ¤¹" +@@ -14575,333 +14614,351 @@ + #. An automatic variable with an incomplete type: that is an error. + #. Don't talk about array types here, since we took care of that + #. message in grokdeclarator. +-#: cp/decl.c:4062 ++#: cp/decl.c:4076 + #, fuzzy + msgid "storage size of `%D' isn't known" + msgstr "`%s' ¤ÎÎΰ襵¥¤¥º¤¬¤ï¤«¤ê¤Þ¤»¤ó" + +-#: cp/decl.c:4084 ++#: cp/decl.c:4098 + #, fuzzy + msgid "storage size of `%D' isn't constant" + msgstr "`%s' ¤ÎÎΰ襵¥¤¥º¤¬°ìÄê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: cp/decl.c:4139 ++#: cp/decl.c:4153 + msgid "sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)" + msgstr "" + +-#: cp/decl.c:4140 ++#: cp/decl.c:4154 + msgid "%J you can work around this by removing the initializer" + msgstr "" + +-#: cp/decl.c:4166 ++#: cp/decl.c:4180 + #, fuzzy + msgid "uninitialized const `%D'" + msgstr "friend ´Ø¿ô `%s' ¤ò½é´ü²½¤Ç¤­¤Þ¤»¤ó" + +-#: cp/decl.c:4245 ++#: cp/decl.c:4240 ++msgid "name `%D' used in a GNU-style designated initializer for an array" ++msgstr "" ++ ++#: cp/decl.c:4251 ++#, c-format ++msgid "Designated initializer `%E' larger than array size" ++msgstr "" ++ ++#: cp/decl.c:4323 + #, fuzzy + msgid "brace-enclosed initializer used to initialize `%T'" + msgstr "´ðÄ쥯¥é¥¹½é´üÀßÄê»Ò¤¬»ØÄꤵ¤ì¤Þ¤·¤¿¤¬¡¢½é´ü²½¤¹¤Ù¤­´ðÄ쥯¥é¥¹¤¬¤¢¤ê¤Þ¤»¤ó" + +-#: cp/decl.c:4309 ++#: cp/decl.c:4387 + msgid "initializer for `%T' must be brace-enclosed" + msgstr "" + +-#: cp/decl.c:4326 ++#: cp/decl.c:4404 + #, fuzzy + msgid "ISO C++ does not allow designated initializers" + msgstr "ISO C++ ¤Ï̾Á°¤Ä¤­Ìá¤êÃͤòµö²Ä¤·¤Þ¤»¤ó" + +-#: cp/decl.c:4330 ++#: cp/decl.c:4408 + #, fuzzy + msgid "`%T' has no non-static data member named `%D'" + msgstr "%s ¤Ë `%s' ¤È¤¤¤¦Ì¾Á°¤Î¥á¥ó¥Ð¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: cp/decl.c:4378 +-msgid "name `%D' used in a GNU-style designated initializer for an array" +-msgstr "" +- +-#: cp/decl.c:4401 ++#: cp/decl.c:4456 + #, fuzzy + msgid "too many initializers for `%T'" + msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë¤¬Â¿¤¹¤®¤Þ¤¹" + +-#: cp/decl.c:4439 ++#: cp/decl.c:4494 + #, fuzzy + msgid "variable-sized object `%D' may not be initialized" + msgstr "²ÄÊÑĹ¥ª¥Ö¥¸¥§¥¯¥È¤Ï½é´ü²½¤µ¤ì¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦" + +-#: cp/decl.c:4450 ++#: cp/decl.c:4505 + #, fuzzy + msgid "`%D' has incomplete type" + msgstr "`%s' ¤ÏÉÔ´°Á´·¿¤Ç¤¹" + +-#: cp/decl.c:4505 ++#: cp/decl.c:4560 + msgid "`%D' must be initialized by constructor, not by `{...}'" + msgstr "" + +-#: cp/decl.c:4549 ++#: cp/decl.c:4604 + msgid "structure `%D' with uninitialized const members" + msgstr "" + +-#: cp/decl.c:4551 ++#: cp/decl.c:4606 + msgid "structure `%D' with uninitialized reference members" + msgstr "" + +-#: cp/decl.c:4732 ++#: cp/decl.c:4788 + msgid "assignment (not initialization) in declaration" + msgstr "Àë¸À¤ÎÃæ¤ËÂåÆþ(½é´ü²½¤Ç¤Ï¤Ê¤¯)¤¬¤¢¤ê¤Þ¤¹" + +-#: cp/decl.c:4749 ++#: cp/decl.c:4805 + #, fuzzy + msgid "cannot initialize `%D' to namespace `%D'" + msgstr "friend ´Ø¿ô `%s' ¤ò½é´ü²½¤Ç¤­¤Þ¤»¤ó" + +-#: cp/decl.c:4803 ++#: cp/decl.c:4859 + #, fuzzy + msgid "shadowing previous type declaration of `%#D'" + msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À" + +-#: cp/decl.c:4840 ++#: cp/decl.c:4896 + msgid "`%D' cannot be thread-local because it has non-POD type `%T'" + msgstr "" + +-#: cp/decl.c:4855 ++#: cp/decl.c:4911 + msgid "`%D' is thread-local and so cannot be dynamically initialized" + msgstr "" + +-#: cp/decl.c:5337 ++#: cp/decl.c:5406 + msgid "invalid catch parameter" + msgstr "̵¸ú¤Ê catch ¤Î°ú¿ô" + +-#: cp/decl.c:5451 ++#: cp/decl.c:5520 + #, fuzzy + msgid "destructor for alien class `%T' cannot be a member" + msgstr "¾¤Î¥¯¥é¥¹ `%s' ¤Î¥Ç¥¹¥È¥é¥¯¥¿¤ò¡¢¥á¥ó¥Ð¤Ë¤Ï¤Ç¤­¤Þ¤»¤ó" + +-#: cp/decl.c:5454 ++#: cp/decl.c:5523 + #, fuzzy + msgid "constructor for alien class `%T' cannot be a member" + msgstr "¾¤Î¥¯¥é¥¹ `%s' ¤Î¥Ç¥¹¥È¥é¥¯¥¿¤ò¡¢¥á¥ó¥Ð¤Ë¤Ï¤Ç¤­¤Þ¤»¤ó" + +-#: cp/decl.c:5476 ++#: cp/decl.c:5545 + msgid "`%D' declared as a `virtual' %s" + msgstr "" + +-#: cp/decl.c:5478 ++#: cp/decl.c:5547 + #, fuzzy + msgid "`%D' declared as an `inline' %s" + msgstr "ÊÑ¿ô `%s' ¤¬ `inline' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿" + +-#: cp/decl.c:5480 ++#: cp/decl.c:5549 + #, fuzzy + msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration" + msgstr "²¾°ú¿ôÀë¸À¤ÎÃæ¤Îµ­²±¥¯¥é¥¹»ØÄê»Ò¤Ï̵¸ú¤Ç¤¹" + +-#: cp/decl.c:5483 ++#: cp/decl.c:5552 + #, fuzzy + msgid "`%D' declared as a friend" + msgstr "Îΰè `%s' ¤Ï´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹" + +-#: cp/decl.c:5489 ++#: cp/decl.c:5558 + #, fuzzy + msgid "`%D' declared with an exception specification" + msgstr "Îã³°»ÅÍͤθ¡ºº¤ò¤¹¤ë¥³¡¼¥É¤òÀ¸À®¤·¤Ê¤¤" + +-#: cp/decl.c:5571 ++#: cp/decl.c:5640 + msgid "cannot declare `::main' to be a template" + msgstr "`::main' ¤ò template ¤È¤·¤Æ¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó" + +-#: cp/decl.c:5573 ++#: cp/decl.c:5642 + msgid "cannot declare `::main' to be inline" + msgstr "`::main' ¤ò inline ¤È¤·¤Æ¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó" + +-#: cp/decl.c:5575 ++#: cp/decl.c:5644 + msgid "cannot declare `::main' to be static" + msgstr "`::main' ¤ò static ¤È¤·¤Æ¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó" + +-#: cp/decl.c:5578 ++#: cp/decl.c:5647 + msgid "`main' must return `int'" + msgstr "`main' ¤Ï `int' ¤òÊÖ¤µ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó" + +-#: cp/decl.c:5606 ++#: cp/decl.c:5675 + msgid "non-local function `%#D' uses anonymous type" + msgstr "" + +-#: cp/decl.c:5609 ++#: cp/decl.c:5678 + msgid "`%#D' does not refer to the unqualified type, so it is not used for linkage" + msgstr "" + +-#: cp/decl.c:5615 ++#: cp/decl.c:5684 + msgid "non-local function `%#D' uses local type `%T'" + msgstr "" + +-#: cp/decl.c:5639 ++#: cp/decl.c:5708 + msgid "%smember function `%D' cannot have `%T' method qualifier" + msgstr "" + +-#: cp/decl.c:5663 ++#: cp/decl.c:5732 + #, fuzzy + msgid "defining explicit specialization `%D' in friend declaration" + msgstr "Àë¸À¤ÎÃæ¤ËÂåÆþ(½é´ü²½¤Ç¤Ï¤Ê¤¯)¤¬¤¢¤ê¤Þ¤¹" + + #. Something like `template friend void f()'. +-#: cp/decl.c:5673 ++#: cp/decl.c:5742 + msgid "invalid use of template-id `%D' in declaration of primary template" + msgstr "" + +-#: cp/decl.c:5700 ++#: cp/decl.c:5769 + msgid "default arguments are not allowed in declaration of friend template specialization `%D'" + msgstr "" + +-#: cp/decl.c:5707 ++#: cp/decl.c:5776 + msgid "`inline' is not allowed in declaration of friend template specialization `%D'" + msgstr "" + +-#: cp/decl.c:5765 ++#: cp/decl.c:5834 + #, fuzzy + msgid "definition of implicitly-declared `%D'" + msgstr "´Ø¿ô¤ÎÄêµÁ¤¬ `auto' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿" + +-#: cp/decl.c:5785 cp/decl2.c:738 ++#: cp/decl.c:5854 cp/decl2.c:738 + #, fuzzy + msgid "no `%#D' member function declared in class `%T'" + msgstr "¥á¥ó¥Ð´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬¸Æ¤Ð¤ì¤Þ¤·¤¿¤¬¡¢¥¯¥é¥¹¥¹¥³¡¼¥×Æâ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: cp/decl.c:5919 ++#: cp/decl.c:5988 + msgid "non-local variable `%#D' uses local type `%T'" + msgstr "" + +-#: cp/decl.c:6034 ++#: cp/decl.c:6103 + msgid "invalid in-class initialization of static data member of non-integral type `%T'" + msgstr "" + +-#: cp/decl.c:6043 ++#: cp/decl.c:6112 + #, fuzzy + msgid "ISO C++ forbids in-class initialization of non-const static member `%D'" + msgstr "ISO C++ ¤Ï new ¼°¤Î½é´ü²½¤Ç¤Î `=' ¤ò¶Ø¤¸¤Þ¤¹" + +-#: cp/decl.c:6046 ++#: cp/decl.c:6115 + #, fuzzy + msgid "ISO C++ forbids initialization of member constant `%D' of non-integral type `%T'" + msgstr "ISO C++ ¤Ï new ¼°¤Î½é´ü²½¤Ç¤Î `=' ¤ò¶Ø¤¸¤Þ¤¹" + +-#: cp/decl.c:6065 ++#: cp/decl.c:6134 + #, fuzzy + msgid "size of array `%D' has non-integral type `%T'" + msgstr "ÇÛÎó `%s' ¤ÎÂ礭¤µ¤ÏÈóÀ°¿ô·¿" + +-#: cp/decl.c:6067 ++#: cp/decl.c:6136 + #, fuzzy + msgid "size of array has non-integral type `%T'" + msgstr "ÇÛÎó `%s' ¤ÎÂ礭¤µ¤ÏÈóÀ°¿ô·¿" + +-#: cp/decl.c:6103 ++#: cp/decl.c:6172 + #, fuzzy + msgid "size of array `%D' is negative" + msgstr "ÇÛÎó `%s' ¤ÎÂ礭¤µ¤¬Éé¤Ç¤¹" + +-#: cp/decl.c:6105 ++#: cp/decl.c:6174 + #, fuzzy + msgid "size of array is negative" + msgstr "ÇÛÎó `%s' ¤ÎÂ礭¤µ¤¬Éé¤Ç¤¹" + +-#: cp/decl.c:6113 ++#: cp/decl.c:6182 + #, fuzzy + msgid "ISO C++ forbids zero-size array `%D'" + msgstr "ISO C ¤Ï ¥µ¥¤¥º 0 ¤ÎÇÛÎó `%s' ¤ò¶Ø¤¸¤Þ¤¹" + +-#: cp/decl.c:6115 ++#: cp/decl.c:6184 + #, fuzzy + msgid "ISO C++ forbids zero-size array" + msgstr "ISO C ¤Ï ¥µ¥¤¥º 0 ¤ÎÇÛÎó `%s' ¤ò¶Ø¤¸¤Þ¤¹" + +-#: cp/decl.c:6122 ++#: cp/decl.c:6191 + #, fuzzy + msgid "size of array `%D' is not an integral constant-expression" + msgstr "ÇÛÎó `%s' ¤ÎÂ礭¤µ¤ÏÈóÀ°¿ô·¿" + +-#: cp/decl.c:6125 ++#: cp/decl.c:6194 + #, fuzzy + msgid "size of array is not an integral constant-expression" + msgstr "Äê¿ô¼°¤¬·ç¤±¤Æ¤¤¤ë¤«Ìµ¸ú¤Ç¤¹" + +-#: cp/decl.c:6130 ++#: cp/decl.c:6199 + #, fuzzy + msgid "ISO C++ forbids variable-size array `%D'" + msgstr "ISO C89 ¤Ï²ÄÊÑĹ¥µ¥¤¥º¤ÎÇÛÎó `%s' ¤ò¶Ø¤¸¤Þ¤¹" + +-#: cp/decl.c:6132 ++#: cp/decl.c:6201 + #, fuzzy + msgid "ISO C++ forbids variable-size array" + msgstr "ISO C89 ¤Ï²ÄÊÑĹ¥µ¥¤¥º¤ÎÇÛÎó `%s' ¤ò¶Ø¤¸¤Þ¤¹" + +-#: cp/decl.c:6154 ++#: cp/decl.c:6223 + msgid "overflow in array dimension" + msgstr "ÇÛÎó¤Î¼¡¸µ¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿" + +-#: cp/decl.c:6248 ++#: cp/decl.c:6317 + #, fuzzy + msgid "declaration of `%D' as %s" + msgstr "`%s' ¤¬ºÆÀë¸À¤µ¤ì¤Þ¤·¤¿" + +-#: cp/decl.c:6250 ++#: cp/decl.c:6319 + #, fuzzy, c-format + msgid "creating %s" + msgstr "%s ¤òºîÀ®Ãæ.\n" + +-#: cp/decl.c:6262 ++#: cp/decl.c:6331 + msgid "declaration of `%D' as multidimensional array must have bounds for all dimensions except the first" + msgstr "" + +-#: cp/decl.c:6265 ++#: cp/decl.c:6334 + msgid "multidimensional array must have bounds for all dimensions except the first" + msgstr "" + +-#: cp/decl.c:6293 ++#: cp/decl.c:6362 + #, fuzzy + msgid "return type specification for constructor invalid" + msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤ËÂФ¹¤ëÌá¤êÃͤη¿»ØÄê¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿" + +-#: cp/decl.c:6300 ++#: cp/decl.c:6369 + #, fuzzy + msgid "return type specification for destructor invalid" + msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤ËÂФ¹¤ëÌá¤êÃͤη¿»ØÄê¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿" + +-#: cp/decl.c:6306 ++#: cp/decl.c:6375 + #, fuzzy + msgid "operator `%T' declared to return `%T'" + msgstr "`operator delete' ¤ÎÌá¤ê·¿¤Ï `void' ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó" + +-#: cp/decl.c:6308 ++#: cp/decl.c:6377 + #, fuzzy + msgid "return type specified for `operator %T'" + msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤ËÂФ¹¤ëÌá¤êÃͤη¿»ØÄê¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿" + +-#: cp/decl.c:6452 ++#: cp/decl.c:6400 ++msgid "unnamed variable or field declared void" ++msgstr "̵̾ÊÑ¿ô¤ä¥Õ¥£¡¼¥ë¥É¤¬ void ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿" ++ ++#: cp/decl.c:6405 ++#, fuzzy, c-format ++msgid "variable or field `%E' declared void" ++msgstr "ÊÑ¿ô¤Þ¤¿¤ÏÎΰè `%s' ¤Ï void ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹" ++ ++#: cp/decl.c:6408 ++msgid "variable or field declared void" ++msgstr "ÊÑ¿ô¤Þ¤¿¤Ï¥Õ¥£¡¼¥ë¥É¤¬ void ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿" ++ ++#: cp/decl.c:6547 + msgid "destructors must be member functions" + msgstr "¥Ç¥¹¥È¥é¥¯¥¿¤Ï¥á¥ó¥Ð´Ø¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó" + +-#: cp/decl.c:6471 ++#: cp/decl.c:6566 + msgid "destructor `%T' must match class name `%T'" + msgstr "" + +-#: cp/decl.c:6534 ++#: cp/decl.c:6629 + msgid "declarator-id missing; using reserved word `%D'" + msgstr "" + +-#: cp/decl.c:6588 ++#: cp/decl.c:6683 + #, fuzzy + msgid "type `%T' is not derived from type `%T'" + msgstr "È¿Éü»Ò `%s' ¤ÏÇÉÀ¸·¿¤Ç¤¹" + + #. Parse error puts this typespec where + #. a declarator should go. +-#: cp/decl.c:6651 ++#: cp/decl.c:6746 + msgid "`%T' specified as declarator-id" + msgstr "" + +-#: cp/decl.c:6653 ++#: cp/decl.c:6748 + msgid " perhaps you want `%T' for a constructor" + msgstr "" + +@@ -14909,324 +14966,316 @@ + #. decl-specifier like in + #. std::allocator alloc; + #. Handle that gracefully. +-#: cp/decl.c:6675 ++#: cp/decl.c:6770 + #, fuzzy, c-format + msgid "invalid use of template-name '%E' in a declarator" + msgstr "¥Ý¥¤¥ó¥¿Àë¸À»Ò¤ËÉÔŬÀڤʷ¿½¤¾þ»Ò" + +-#: cp/decl.c:6695 ++#: cp/decl.c:6790 cp/decl.c:8124 + #, fuzzy + msgid "declaration of `%D' as non-function" + msgstr "`%s' ¤ÎÀë¸À¤Ï´Ø¿ô¤ÎÇÛÎó" + +-#: cp/decl.c:6772 ++#: cp/decl.c:6867 + msgid "`bool' is now a keyword" + msgstr "`bool' ¤Ïº£¤ä¥­¡¼¥ï¡¼¥É¤Ç¤¹" + +-#: cp/decl.c:6774 ++#: cp/decl.c:6869 + msgid "extraneous `%T' ignored" + msgstr "" + +-#: cp/decl.c:6790 cp/decl.c:6834 ++#: cp/decl.c:6885 cp/decl.c:6929 + #, fuzzy + msgid "multiple declarations `%T' and `%T'" + msgstr "¥á¥½¥Ã¥É `%s' ¤ÎÀë¸À¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹¡£" + +-#: cp/decl.c:6803 ++#: cp/decl.c:6898 + msgid "ISO C++ does not support `long long'" + msgstr "ISO C++ ¤Ï `long long' ¤ò¼õ¤±Æþ¤ì¤Þ¤»¤ó" + +-#: cp/decl.c:6907 cp/decl.c:6910 ++#: cp/decl.c:7002 cp/decl.c:7005 + #, fuzzy, c-format + msgid "ISO C++ forbids declaration of `%s' with no type" + msgstr "ISO C ¤Ï¥á¥ó¥Ð¤Î¤Ê¤¤¥á¥ó¥ÐÀë¸À¤ò¶Ø¤¸¤Þ¤¹" + +-#: cp/decl.c:6941 ++#: cp/decl.c:7036 + #, c-format + msgid "short, signed or unsigned invalid for `%s'" + msgstr "short, Éä¹ç¤Ä¤­¤Þ¤¿¤ÏÉä¹ç¤Ê¤·¤Ï `%s' ¤Ë¤È¤Ã¤Æ̵¸ú¤Ç¤¹" + +-#: cp/decl.c:6946 ++#: cp/decl.c:7041 + #, c-format + msgid "long and short specified together for `%s'" + msgstr "long ¤È short ¤¬ `%s' ¤ËÂФ·¤Æ°ì½ï¤Ë»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹" + +-#: cp/decl.c:6957 ++#: cp/decl.c:7052 + #, c-format + msgid "signed and unsigned given together for `%s'" + msgstr "Éä¹çÉÕ¤­¤ÈÉä¹ç̵¤·¤¬ `%s' ¤ËÂФ·¤Æ°ì½ï¤ËÍ¿¤¨¤é¤ì¤Æ¤¤¤Þ¤¹" + +-#: cp/decl.c:7066 ++#: cp/decl.c:7161 + #, fuzzy + msgid "qualifiers are not allowed on declaration of `operator %T'" + msgstr "`operator delete' ¤ÎÀë¸ÀÆâ¤Ë¿¤¹¤®¤ë°ú¿ô" + +-#: cp/decl.c:7088 ++#: cp/decl.c:7183 + #, fuzzy + msgid "member `%D' cannot be declared both virtual and static" + msgstr "Èó¥á¥ó¥Ð `%s' ¤ò `mutable' ¤È¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó" + +-#: cp/decl.c:7097 ++#: cp/decl.c:7192 + #, fuzzy + msgid "`%T::%D' is not a valid declarator" + msgstr "`%s' ¤ÏÀë¸À¤Î»Ï¤Þ¤ê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: cp/decl.c:7109 ++#: cp/decl.c:7204 + msgid "storage class specifiers invalid in parameter declarations" + msgstr "²¾°ú¿ôÀë¸À¤ÎÃæ¤Îµ­²±¥¯¥é¥¹»ØÄê»Ò¤Ï̵¸ú¤Ç¤¹" + +-#: cp/decl.c:7113 ++#: cp/decl.c:7208 + msgid "typedef declaration invalid in parameter declaration" + msgstr "²¾°ú¿ôÀë¸À¤ÎÃæ¤Î typedef Àë¸À¤Ï̵¸ú¤Ç¤¹" + +-#: cp/decl.c:7126 ++#: cp/decl.c:7221 + msgid "virtual outside class declaration" + msgstr "¥¯¥é¥¹Àë¸À¤Î³°Â¦¤Ç virtual »ØÄꤷ¤Æ¤¤¤Þ¤¹" + +-#: cp/decl.c:7185 ++#: cp/decl.c:7280 + #, c-format + msgid "storage class specified for %s `%s'" + msgstr "%s ¤ËÂФ¹¤ëµ­²±¥¯¥é¥¹»ØÄê»Ò `%s'" + +-#: cp/decl.c:7220 ++#: cp/decl.c:7315 + #, c-format + msgid "top-level declaration of `%s' specifies `auto'" + msgstr "`%s' ¤Î¥È¥Ã¥×¥ì¥Ù¥ë¤ÎÀë¸À¤¬ `auto' ¤ò»ØÄꤷ¤Þ¤¹" + +-#: cp/decl.c:7232 ++#: cp/decl.c:7327 + msgid "storage class specifiers invalid in friend function declarations" + msgstr "friend ´Ø¿ôÀë¸ÀÆâ¤Îµ­²±¥¯¥é¥¹»ØÄê»Ò¤Ï̵¸ú¤Ç¤¹" + +-#: cp/decl.c:7397 ++#: cp/decl.c:7492 + msgid "destructor cannot be static member function" + msgstr "¥Ç¥¹¥È¥é¥¯¥¿¤òÀÅŪ¥á¥ó¥Ð´Ø¿ô¤È¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó" + +-#: cp/decl.c:7400 ++#: cp/decl.c:7495 + #, fuzzy, c-format + msgid "destructors may not be `%s'" + msgstr "¥Ç¥¹¥È¥é¥¯¥¿¤Ï²¾°ú¿ô¤ò¼è¤ê¤Þ¤»¤ó" + +-#: cp/decl.c:7421 ++#: cp/decl.c:7516 + msgid "constructor cannot be static member function" + msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤òÀÅŪ¥á¥ó¥Ð´Ø¿ô¤È¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó" + +-#: cp/decl.c:7424 ++#: cp/decl.c:7519 + msgid "constructors cannot be declared virtual" + msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤Ï virtual Àë¸À¤Ç¤­¤Þ¤»¤ó" + +-#: cp/decl.c:7429 ++#: cp/decl.c:7524 + #, fuzzy, c-format + msgid "constructors may not be `%s'" + msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤Ï virtual Àë¸À¤Ç¤­¤Þ¤»¤ó" + +-#: cp/decl.c:7439 ++#: cp/decl.c:7534 + msgid "return value type specifier for constructor ignored" + msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤ËÂФ¹¤ëÌá¤êÃͤη¿»ØÄê¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿" + +-#: cp/decl.c:7458 ++#: cp/decl.c:7553 + #, c-format + msgid "can't initialize friend function `%s'" + msgstr "friend ´Ø¿ô `%s' ¤ò½é´ü²½¤Ç¤­¤Þ¤»¤ó" + + #. Cannot be both friend and virtual. +-#: cp/decl.c:7462 ++#: cp/decl.c:7557 + msgid "virtual functions cannot be friends" + msgstr "²¾ÁÛ´Ø¿ô¤Ï friend ¤Ë¤Ç¤­¤Þ¤»¤ó" + +-#: cp/decl.c:7467 ++#: cp/decl.c:7562 + msgid "friend declaration not in class definition" + msgstr "friend Àë¸À¤¬¥¯¥é¥¹ÄêµÁ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó" + +-#: cp/decl.c:7469 ++#: cp/decl.c:7564 + #, fuzzy, c-format + msgid "can't define friend function `%s' in a local class definition" + msgstr "friend Àë¸À¤¬¥¯¥é¥¹ÄêµÁ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó" + +-#: cp/decl.c:7490 ++#: cp/decl.c:7585 + #, fuzzy + msgid "destructors may not have parameters" + msgstr "¥Ç¥¹¥È¥é¥¯¥¿¤Ï²¾°ú¿ô¤ò¼è¤ê¤Þ¤»¤ó" + +-#: cp/decl.c:7510 cp/decl.c:7517 ++#: cp/decl.c:7605 cp/decl.c:7612 + #, fuzzy + msgid "cannot declare reference to `%#T'" + msgstr "»²¾È¤ò»²¾È¤È¤·¤ÆÀë¸À¤Ç¤­¤Þ¤»¤ó" + +-#: cp/decl.c:7511 ++#: cp/decl.c:7606 + #, fuzzy + msgid "cannot declare pointer to `%#T'" + msgstr "¥Ý¥¤¥ó¥¿¤ò»²¾È¤È¤·¤ÆÀë¸À¤Ç¤­¤Þ¤»¤ó" + +-#: cp/decl.c:7516 ++#: cp/decl.c:7611 + #, fuzzy + msgid "cannot declare pointer to `%#T' member" + msgstr "¥Ý¥¤¥ó¥¿¤ò»²¾È¤È¤·¤ÆÀë¸À¤Ç¤­¤Þ¤»¤ó" + +-#: cp/decl.c:7655 ++#: cp/decl.c:7750 + msgid "extra qualification `%T::' on member `%s' ignored" + msgstr "" + +-#: cp/decl.c:7671 ++#: cp/decl.c:7766 + msgid "cannot declare member function `%T::%s' within `%T'" + msgstr "" + +-#: cp/decl.c:7686 ++#: cp/decl.c:7781 + msgid "cannot declare member `%T::%s' within `%T'" + msgstr "" + +-#: cp/decl.c:7766 ++#: cp/decl.c:7861 + msgid "data member may not have variably modified type `%T'" + msgstr "" + +-#: cp/decl.c:7768 ++#: cp/decl.c:7863 + msgid "parameter may not have variably modified type `%T'" + msgstr "" + + #. [dcl.fct.spec] The explicit specifier shall only be used in + #. declarations of constructors within a class definition. +-#: cp/decl.c:7776 ++#: cp/decl.c:7871 + msgid "only declarations of constructors can be `explicit'" + msgstr "`explicit' ¤Ë¤Ç¤­¤ë¤Î¤Ï¡¢¥³¥ó¥¹¥È¥é¥¯¥¿¤À¤±¤Ç¤¹" + +-#: cp/decl.c:7784 ++#: cp/decl.c:7879 + #, c-format + msgid "non-member `%s' cannot be declared `mutable'" + msgstr "Èó¥á¥ó¥Ð `%s' ¤ò `mutable' ¤È¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó" + +-#: cp/decl.c:7789 ++#: cp/decl.c:7884 + #, c-format + msgid "non-object member `%s' cannot be declared `mutable'" + msgstr "È󥪥֥¸¥§¥¯¥È¥á¥ó¥Ð `%s' ¤ò `mutable' ¤È¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó" + +-#: cp/decl.c:7795 ++#: cp/decl.c:7890 + #, c-format + msgid "function `%s' cannot be declared `mutable'" + msgstr "´Ø¿ô `%s' ¤ò `mutable' ¤È¤·¤Æ¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó" + +-#: cp/decl.c:7800 ++#: cp/decl.c:7895 + #, c-format + msgid "static `%s' cannot be declared `mutable'" + msgstr "static `%s' ¤ò mutable ¤È¤·¤ÆÀë¸À¤Ç¤­¤Þ¤»¤ó" + +-#: cp/decl.c:7805 ++#: cp/decl.c:7900 + #, c-format + msgid "const `%s' cannot be declared `mutable'" + msgstr "const `%s' ¤ò `mutable' ¤È¤·¤ÆÀë¸À¤Ç¤­¤Þ¤»¤ó" + +-#: cp/decl.c:7818 ++#: cp/decl.c:7913 + #, fuzzy + msgid "template-id `%D' used as a declarator" + msgstr "²¾°ú¿ô `%s' ¾¯¤·Á°Êý¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿" + +-#: cp/decl.c:7839 ++#: cp/decl.c:7934 + msgid "ISO C++ forbids nested type `%D' with same name as enclosing class" + msgstr "" + +-#: cp/decl.c:7847 ++#: cp/decl.c:7942 + msgid "%Jtypedef name may not be a nested-name-specifier" + msgstr "" + +-#: cp/decl.c:7893 ++#: cp/decl.c:7988 + #, fuzzy + msgid "%Jinvalid type qualifier for non-member function type" + msgstr "Èó¥á¥ó¥Ð´Ø¿ô¤Ç¤Î `this' ¤Î»ÈÍѤÏ̵¸ú¤Ç¤¹" + +-#: cp/decl.c:7956 ++#: cp/decl.c:8051 + #, fuzzy + msgid "type qualifiers specified for friend class declaration" + msgstr "°ì¤Ä¤Î¶õ¤ÎÀë¸ÀÃæ¤Ë¡¢Æó¤Ä¤Î·¿¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹" + +-#: cp/decl.c:7961 ++#: cp/decl.c:8056 + #, fuzzy + msgid "`inline' specified for friend class declaration" + msgstr "¥¯¥é¥¹Àë¸À¤Î³°Â¦¤Ç virtual »ØÄꤷ¤Æ¤¤¤Þ¤¹" + +-#: cp/decl.c:7969 ++#: cp/decl.c:8064 + #, fuzzy + msgid "template parameters cannot be friends" + msgstr "Ê£»¨¤Ê¥Ñ¥é¥á¥¿¤ò¤â¤Ä´Ø¿ô¤Ï inline ¤Ë¤Ç¤­¤Þ¤»¤ó" + +-#: cp/decl.c:7971 ++#: cp/decl.c:8066 + msgid "friend declaration requires class-key, i.e. `friend class %T::%D'" + msgstr "" + +-#: cp/decl.c:7975 ++#: cp/decl.c:8070 + #, fuzzy + msgid "friend declaration requires class-key, i.e. `friend %#T'" + msgstr "friend Àë¸À¤¬¥¯¥é¥¹ÄêµÁ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó" + +-#: cp/decl.c:7988 ++#: cp/decl.c:8083 + #, fuzzy + msgid "trying to make class `%T' a friend of global scope" + msgstr "¥¯¥é¥¹ `%s' ¤òÂç°è¥¹¥³¡¼¥×¤Î friend ¤Ë¤·¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹" + +-#: cp/decl.c:7999 ++#: cp/decl.c:8094 + #, fuzzy + msgid "invalid qualifiers on non-member function type" + msgstr "Èó¥á¥ó¥Ð´Ø¿ô¤Ç¤Î `this' ¤Î»ÈÍѤÏ̵¸ú¤Ç¤¹" + +-#: cp/decl.c:8018 ++#: cp/decl.c:8113 + #, fuzzy + msgid "abstract declarator `%T' used as declaration" + msgstr "`%s' ¤ÎÀë¸À¤Ï¥°¥í¡¼¥Ð¥ëÀë¸À¤òʤ¤¤±£¤·¤Þ¤¹" + +-#: cp/decl.c:8030 +-msgid "unnamed variable or field declared void" +-msgstr "̵̾ÊÑ¿ô¤ä¥Õ¥£¡¼¥ë¥É¤¬ void ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿" +- +-#: cp/decl.c:8039 +-msgid "variable or field declared void" +-msgstr "ÊÑ¿ô¤Þ¤¿¤Ï¥Õ¥£¡¼¥ë¥É¤¬ void ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿" +- +-#: cp/decl.c:8049 ++#: cp/decl.c:8139 + msgid "cannot use `::' in parameter declaration" + msgstr "²¾°ú¿ôÀë¸À¤ÎÃæ¤Ç `::' ¤ò»È¤¨¤Þ¤»¤ó" + + #. Something like struct S { int N::j; }; +-#: cp/decl.c:8094 ++#: cp/decl.c:8184 + #, fuzzy + msgid "invalid use of `::'" + msgstr "`restrict' ¤ÎÍÑË¡¤¬ÉÔŬÀڤǤ¹" + +-#: cp/decl.c:8106 ++#: cp/decl.c:8196 + #, fuzzy + msgid "function `%D' cannot be declared friend" + msgstr "´Ø¿ô `%s' ¤ò `mutable' ¤È¤·¤Æ¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó" + +-#: cp/decl.c:8118 ++#: cp/decl.c:8208 + msgid "can't make `%D' into a method -- not in a class" + msgstr "" + +-#: cp/decl.c:8127 ++#: cp/decl.c:8217 + #, fuzzy + msgid "function `%D' declared virtual inside a union" + msgstr "Îΰè `%s' ¤Ï´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹" + +-#: cp/decl.c:8136 ++#: cp/decl.c:8226 + msgid "`%D' cannot be declared virtual, since it is always static" + msgstr "" + +-#: cp/decl.c:8215 ++#: cp/decl.c:8305 + #, fuzzy + msgid "field `%D' has incomplete type" + msgstr "Îΰè `%s' ¤ÏÉÔ´°Á´¤Ê·¿¤Ç¤¹" + +-#: cp/decl.c:8217 ++#: cp/decl.c:8307 + #, fuzzy + msgid "name `%T' has incomplete type" + msgstr "²¾°ú¿ô `%s' ¤ÏÉÔ´°Á´·¿¤Ç¤¹" + +-#: cp/decl.c:8226 ++#: cp/decl.c:8316 + #, fuzzy + msgid " in instantiation of template `%T'" + msgstr "%s: `%s' ¤Î½é´ü²½:\n" + +-#: cp/decl.c:8236 ++#: cp/decl.c:8326 + #, c-format + msgid "`%s' is neither function nor member function; cannot be declared friend" + msgstr "`%s' ¤Ï´Ø¿ô¤Ç¤â¥á¥ó¥Ð´Ø¿ô¤Ç¤â¤¢¤ê¤Þ¤»¤ó -- friend ¤È¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó" + +-#: cp/decl.c:8247 ++#: cp/decl.c:8337 + msgid "member functions are implicitly friends of their class" + msgstr "¥á¥ó¥Ð´Ø¿ô¤Ï°ÅÌÛŪ¤Ë¤½¤Î¥¯¥é¥¹¤Î friend ¤Ç¤¹" + +@@ -15242,96 +15291,96 @@ + #. the rest of the compiler does not correctly + #. handle the initialization unless the member is + #. static so we make it static below. +-#: cp/decl.c:8287 ++#: cp/decl.c:8377 + #, fuzzy + msgid "ISO C++ forbids initialization of member `%D'" + msgstr "ISO C++ ¤Ï new ¼°¤Î½é´ü²½¤Ç¤Î `=' ¤ò¶Ø¤¸¤Þ¤¹" + +-#: cp/decl.c:8289 ++#: cp/decl.c:8379 + msgid "making `%D' static" + msgstr "" + +-#: cp/decl.c:8345 ++#: cp/decl.c:8435 + #, c-format + msgid "storage class `auto' invalid for function `%s'" + msgstr "´Ø¿ô `%s' ¤ËÂФ¹¤ëµ­²±¥¯¥é¥¹ `auto' ¤Ï̵¸ú¤Ç¤¹" + +-#: cp/decl.c:8347 ++#: cp/decl.c:8437 + #, c-format + msgid "storage class `register' invalid for function `%s'" + msgstr "´Ø¿ô `%s' ¤ËÂФ¹¤ëµ­²±¥¯¥é¥¹ `register' ¤Ï̵¸ú¤Ç¤¹" + +-#: cp/decl.c:8349 ++#: cp/decl.c:8439 + #, fuzzy, c-format + msgid "storage class `__thread' invalid for function `%s'" + msgstr "´Ø¿ô `%s' ¤ËÂФ¹¤ëµ­²±¥¯¥é¥¹ `auto' ¤Ï̵¸ú¤Ç¤¹" + +-#: cp/decl.c:8360 ++#: cp/decl.c:8450 + #, c-format + msgid "storage class `static' invalid for function `%s' declared out of global scope" + msgstr "Âç°è¥¹¥³¡¼¥×³°¤Î´Ø¿ô `%s' ¤ËÂФ¹¤ëµ­²±¥¯¥é¥¹ `static' ¤Ï̵¸ú¤Ç¤¹" + +-#: cp/decl.c:8362 ++#: cp/decl.c:8452 + #, c-format + msgid "storage class `inline' invalid for function `%s' declared out of global scope" + msgstr "Âç°è¥¹¥³¡¼¥×³°¤Î´Ø¿ô `%s' ¤ËÂФ¹¤ëµ­²±¥¯¥é¥¹ `inline' ¤Ï̵¸ú¤Ç¤¹" + +-#: cp/decl.c:8369 ++#: cp/decl.c:8459 + #, c-format + msgid "virtual non-class function `%s'" + msgstr "virtual ¤ÊÈ󥯥饹´Ø¿ô `%s'" + +-#: cp/decl.c:8400 ++#: cp/decl.c:8490 + #, fuzzy + msgid "cannot declare member function `%D' to have static linkage" + msgstr "`::main' ¤ò static ¤È¤·¤Æ¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó" + + #. FIXME need arm citation +-#: cp/decl.c:8406 ++#: cp/decl.c:8496 + msgid "cannot declare static function inside another function" + msgstr "¾¤Î´Ø¿ôÆâ¤Ç static ´Ø¿ô¤òÀë¸À¤Ç¤­¤Þ¤»¤ó" + +-#: cp/decl.c:8434 ++#: cp/decl.c:8524 + msgid "`static' may not be used when defining (as opposed to declaring) a static data member" + msgstr "" + +-#: cp/decl.c:8440 ++#: cp/decl.c:8530 + #, fuzzy + msgid "static member `%D' declared `register'" + msgstr "`register' ¤ÈÀë¸À¤µ¤ì¤¿ÇÛÎó¤Ëź»ú¤ò¤Ä¤±¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹" + +-#: cp/decl.c:8445 ++#: cp/decl.c:8535 + msgid "cannot explicitly declare member `%#D' to have extern linkage" + msgstr "" + +-#: cp/decl.c:8585 ++#: cp/decl.c:8675 + #, fuzzy + msgid "default argument for `%#D' has type `%T'" + msgstr "`%s' ¤ÎÂè°ì°ú¿ô¤Ï `int' ¤È¤¹¤Ù¤­¤Ç¤¹" + +-#: cp/decl.c:8588 ++#: cp/decl.c:8678 + msgid "default argument for parameter of type `%T' has type `%T'" + msgstr "" + +-#: cp/decl.c:8605 ++#: cp/decl.c:8695 + msgid "default argument `%E' uses local variable `%D'" + msgstr "" + +-#: cp/decl.c:8649 ++#: cp/decl.c:8739 + #, fuzzy, c-format + msgid "invalid string constant `%E'" + msgstr "ÉÔÀµ¤Êʸ»úÎóÄê¿ô¤Ç¤¹" + +-#: cp/decl.c:8651 ++#: cp/decl.c:8741 + msgid "invalid integer constant in parameter list, did you forget to give parameter name?" + msgstr "²¾°ú¿ô¥ê¥¹¥È¤Ë̵¸ú¤ÊÀ°¿ôÄê¿ô¤¬¤¢¤ê¤Þ¤¹¡£²¾°ú¿ô̾¤òÍ¿¤¨Ëº¤ì¤¿¤Î¤Ç¤Ï¡©" + +-#: cp/decl.c:8689 ++#: cp/decl.c:8779 + #, fuzzy + msgid "parameter `%D' invalidly declared method type" + msgstr "¥Ñ¥é¥á¥¿¤Ï¥á¥½¥Ã¥É¤Î·¿¤òÉÔÀµ¤ËÀë¸À¤·¤Þ¤·¤¿" + +-#: cp/decl.c:8713 ++#: cp/decl.c:8803 + msgid "parameter `%D' includes %s to array of unknown bound `%T'" + msgstr "" + +@@ -15350,101 +15399,101 @@ + #. or implicitly defined), there's no need to worry about their + #. existence. Theoretically, they should never even be + #. instantiated, but that's hard to forestall. +-#: cp/decl.c:8872 ++#: cp/decl.c:8962 + msgid "invalid constructor; you probably meant `%T (const %T&)'" + msgstr "" + +-#: cp/decl.c:9000 ++#: cp/decl.c:9090 + #, fuzzy + msgid "`%D' must be a nonstatic member function" + msgstr "`this' ¤ÏÀÅŪ¥á¥ó¥Ð´Ø¿ô¤«¤é»ÈÍѤǤ­¤Þ¤»¤ó" + +-#: cp/decl.c:9006 ++#: cp/decl.c:9096 + msgid "`%D' must be either a non-static member function or a non-member function" + msgstr "" + +-#: cp/decl.c:9023 ++#: cp/decl.c:9113 + msgid "`%D' must have an argument of class or enumerated type" + msgstr "" + +-#: cp/decl.c:9058 ++#: cp/decl.c:9148 + #, c-format + msgid "conversion to %s%s will never use a type conversion operator" + msgstr "%s%s ¤Ø¤ÎÊÑ´¹¤Ç·¿ÊÑ´¹±é»»»Ò¤¬ÍøÍѤµ¤ì¤ë¤³¤È¤Ï·è¤·¤Æ¤¢¤ê¤Þ¤»¤ó" + + #. 13.4.0.3 +-#: cp/decl.c:9065 ++#: cp/decl.c:9155 + #, fuzzy + msgid "ISO C++ prohibits overloading operator ?:" + msgstr "ISO C++ ¤Ï̵̾¹½Â¤ÂΤò¶Ø»ß¤·¤Æ¤¤¤Þ¤¹" + +-#: cp/decl.c:9115 ++#: cp/decl.c:9205 + msgid "postfix `%D' must take `int' as its argument" + msgstr "" + +-#: cp/decl.c:9119 ++#: cp/decl.c:9209 + msgid "postfix `%D' must take `int' as its second argument" + msgstr "" + +-#: cp/decl.c:9126 ++#: cp/decl.c:9216 + #, fuzzy + msgid "`%D' must take either zero or one argument" + msgstr "`%s' ¤Ï 0 ¤« 2 ¸Ä¤Î°ú¿ô¤·¤«¤È¤ê¤Þ¤»¤ó" + +-#: cp/decl.c:9128 ++#: cp/decl.c:9218 + #, fuzzy + msgid "`%D' must take either one or two arguments" + msgstr "`%s' ¤Ï 0 ¤« 2 ¸Ä¤Î°ú¿ô¤·¤«¤È¤ê¤Þ¤»¤ó" + +-#: cp/decl.c:9149 ++#: cp/decl.c:9239 + msgid "prefix `%D' should return `%T'" + msgstr "" + +-#: cp/decl.c:9155 ++#: cp/decl.c:9245 + msgid "postfix `%D' should return `%T'" + msgstr "" + +-#: cp/decl.c:9164 ++#: cp/decl.c:9254 + msgid "`%D' must take `void'" + msgstr "" + +-#: cp/decl.c:9166 cp/decl.c:9174 ++#: cp/decl.c:9256 cp/decl.c:9264 + #, fuzzy + msgid "`%D' must take exactly one argument" + msgstr "`%s' ¤Ï 0 ¤« 2 ¸Ä¤Î°ú¿ô¤·¤«¤È¤ê¤Þ¤»¤ó" + +-#: cp/decl.c:9176 ++#: cp/decl.c:9266 + #, fuzzy + msgid "`%D' must take exactly two arguments" + msgstr "`%s' ¤Ï 0 ¤« 2 ¸Ä¤Î°ú¿ô¤·¤«¤È¤ê¤Þ¤»¤ó" + +-#: cp/decl.c:9184 ++#: cp/decl.c:9274 + msgid "user-defined `%D' always evaluates both arguments" + msgstr "" + +-#: cp/decl.c:9198 ++#: cp/decl.c:9288 + msgid "`%D' should return by value" + msgstr "" + +-#: cp/decl.c:9210 cp/decl.c:9213 ++#: cp/decl.c:9300 cp/decl.c:9303 + msgid "`%D' cannot have default arguments" + msgstr "" + +-#: cp/decl.c:9273 ++#: cp/decl.c:9363 + msgid "using typedef-name `%D' after `%s'" + msgstr "" + +-#: cp/decl.c:9279 ++#: cp/decl.c:9369 + #, fuzzy + msgid "using template type parameter `%T' after `%s'" + msgstr "%d ÈÖÌܤΰú¿ô¤¬ `%s' ¤Î·¿¤È¸ß´¹À­¤¬¤¢¤ê¤Þ¤»¤ó" + +-#: cp/decl.c:9287 ++#: cp/decl.c:9377 + #, fuzzy + msgid "`%T' referred to as `%s'" + msgstr "`%s' ¤Ï `%s' ¤Ë±þÅú¤·¤Þ¤»¤ó" + +-#: cp/decl.c:9293 ++#: cp/decl.c:9383 + msgid "`%T' referred to as enum" + msgstr "" + +@@ -15455,53 +15504,53 @@ + #. void f(class C); // No template header here + #. + #. then the required template argument is missing. +-#: cp/decl.c:9308 ++#: cp/decl.c:9398 + #, fuzzy + msgid "template argument required for `%s %T'" + msgstr "¥ì¥¸¥¹¥¿Ì¾¤¬ `%s' ÍѤ˻ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó" + +-#: cp/decl.c:9453 ++#: cp/decl.c:9543 + #, fuzzy + msgid "use of enum `%#D' without previous declaration" + msgstr "`%s' ¤Î¥»¥¯¥·¥ç¥ó¤ÏÁ°Êý¤Ç¤ËÀë¸À¤µ¤ì¤¿¤â¤Î¤È¾×Æͤ·¤Þ¤¹" + +-#: cp/decl.c:9471 ++#: cp/decl.c:9561 + #, fuzzy + msgid "redeclaration of `%T' as a non-template" + msgstr "`%s' ¤ÎÀë¸À¤Ï²¾°ú¿ô¤òʤ¤¤±£¤·¤Þ¤¹" + +-#: cp/decl.c:9517 ++#: cp/decl.c:9607 + msgid "derived union `%T' invalid" + msgstr "" + +-#: cp/decl.c:9570 ++#: cp/decl.c:9660 + #, fuzzy + msgid "base type `%T' fails to be a struct or class type" + msgstr "`%s' ¤ò typedef ¤Þ¤¿¤ÏÁȤ߹þ¤ß·¿¤Ë¤Ç¤­¤Þ¤»¤ó" + +-#: cp/decl.c:9578 ++#: cp/decl.c:9668 + msgid "recursive type `%T' undefined" + msgstr "" + +-#: cp/decl.c:9580 ++#: cp/decl.c:9670 + #, fuzzy + msgid "duplicate base type `%T' invalid" + msgstr "½ÅÊ£¤·¤¿ case ¤ÎÃÍ" + +-#: cp/decl.c:9658 ++#: cp/decl.c:9748 + msgid "Java class '%T' cannot have multiple bases" + msgstr "" + +-#: cp/decl.c:9660 ++#: cp/decl.c:9750 + msgid "Java class '%T' cannot have virtual bases" + msgstr "" + +-#: cp/decl.c:9700 ++#: cp/decl.c:9790 + #, fuzzy + msgid "multiple definition of `%#T'" + msgstr "`%s' ¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿" + +-#: cp/decl.c:9701 ++#: cp/decl.c:9791 + #, fuzzy + msgid "%Jprevious definition here" + msgstr "`%s' ¤ÏÁ°¤Ë¤³¤³¤ÇÄêµÁ¤µ¤ì¤Þ¤·¤¿" +@@ -15510,53 +15559,53 @@ + #. + #. IF no integral type can represent all the enumerator values, the + #. enumeration is ill-formed. +-#: cp/decl.c:9836 ++#: cp/decl.c:9926 + msgid "no integral type can represent all of the enumerator values for `%T'" + msgstr "" + +-#: cp/decl.c:9926 ++#: cp/decl.c:10023 + #, fuzzy + msgid "enumerator value for `%D' not integer constant" + msgstr "`%s' ¤ÎÎóµóÃͤ¬À°¿ôÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: cp/decl.c:9946 ++#: cp/decl.c:10043 + #, fuzzy + msgid "overflow in enumeration values at `%D'" + msgstr "ÎóµóÃͤ¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼" + +-#: cp/decl.c:10015 ++#: cp/decl.c:10112 + #, fuzzy + msgid "return type `%#T' is incomplete" + msgstr "Ìá¤êÃͤη¿¤¬ÉÔ´°Á´·¿¤Ç¤¹" + +-#: cp/decl.c:10133 ++#: cp/decl.c:10230 + msgid "return type for `main' changed to `int'" + msgstr "`main' ¤Î return ·¿¤Ï `int' ¤ËÊѤ¨¤Þ¤·¤¿" + +-#: cp/decl.c:10162 ++#: cp/decl.c:10259 + #, fuzzy + msgid "`%D' implicitly declared before its definition" + msgstr "`%s' ¤Ï¤½¤ÎÄêµÁ¤è¤ê¤â¸å¤Ç inline Àë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹" + +-#: cp/decl.c:10184 cp/typeck.c:6071 ++#: cp/decl.c:10281 cp/typeck.c:6092 + msgid "`operator=' should return a reference to `*this'" + msgstr "" + +-#: cp/decl.c:10453 ++#: cp/decl.c:10550 + #, fuzzy + msgid "parameter `%D' declared void" + msgstr "²¾°ú¿ô `%s' ¤¬ void ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹" + +-#: cp/decl.c:10919 ++#: cp/decl.c:11016 + #, fuzzy + msgid "invalid member function declaration" + msgstr "̵¸ú¤ÊÀë¸À¤Ç¤¹" + +-#: cp/decl.c:10936 ++#: cp/decl.c:11033 + msgid "`%D' is already defined in class `%T'" + msgstr "" + +-#: cp/decl.c:11149 ++#: cp/decl.c:11246 + #, fuzzy + msgid "static member function `%#D' declared with type qualifiers" + msgstr "¥Í¥¹¥È¤·¤¿´Ø¿ô `%s' ¤Ï `extern' ¤ËÀë¸À¤µ¤ì¤Þ¤·¤¿" +@@ -15608,7 +15657,7 @@ + msgid "invalid use of `virtual' in template declaration of `%#D'" + msgstr "ÉÔ´°Á´¤Ê typedef `%s' ¤Î»ÈÍѤÏÉÔŬÀڤǤ¹" + +-#: cp/decl2.c:541 cp/pt.c:2834 ++#: cp/decl2.c:541 cp/pt.c:2878 + #, fuzzy + msgid "template declaration of `%#D'" + msgstr "`%s' ¤¬ºÆÀë¸À¤µ¤ì¤Þ¤·¤¿" +@@ -15686,47 +15735,47 @@ + msgid "anonymous struct not inside named type" + msgstr "̵̾¹½Â¤ÂΤ¬Ì¾Á°¤Ä¤­·¿¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó" + +-#: cp/decl2.c:1218 ++#: cp/decl2.c:1224 + msgid "namespace-scope anonymous aggregates must be static" + msgstr "anonumous ̾Á°¶õ´Ö¤Î½¸¹çÂÎ¤Ï static ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó" + +-#: cp/decl2.c:1225 ++#: cp/decl2.c:1231 + #, fuzzy + msgid "anonymous union with no members" + msgstr "̵̾¶¦ÍÑÂΤ˥á¥ó¥Ð¤¬¤¢¤ê¤Þ¤»¤ó" + +-#: cp/decl2.c:1259 ++#: cp/decl2.c:1265 + #, fuzzy + msgid "`operator new' must return type `%T'" + msgstr "`operator delete' ¤ÎÌá¤ê·¿¤Ï `void' ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó" + +-#: cp/decl2.c:1267 ++#: cp/decl2.c:1273 + #, fuzzy + msgid "`operator new' takes type `size_t' (`%T') as first parameter" + msgstr "`operator new' ¤ÏÂè°ì°ú¿ô¤È¤·¤Æ `size_t' ¤ò¤È¤ê¤Þ¤¹" + +-#: cp/decl2.c:1293 ++#: cp/decl2.c:1299 + #, fuzzy + msgid "`operator delete' must return type `%T'" + msgstr "`operator delete' ¤ÎÌá¤ê·¿¤Ï `void' ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó" + +-#: cp/decl2.c:1301 ++#: cp/decl2.c:1307 + #, fuzzy + msgid "`operator delete' takes type `%T' as first parameter" + msgstr "`operator delete' ¤ÏÂè°ì°ú¿ô¤È¤·¤Æ `void *' ·¿¤ò¤È¤ê¤Þ¤¹" + +-#: cp/decl2.c:2810 ++#: cp/decl2.c:2816 + #, fuzzy + msgid "inline function `%D' used but never defined" + msgstr "`%s' ¤¬»È¤ï¤ì¤Þ¤·¤¿¤¬Ì¤ÄêµÁ¤Ç¤¹" + +-#: cp/decl2.c:2956 ++#: cp/decl2.c:2962 + #, fuzzy + msgid "default argument missing for parameter %P of `%+#D'" + msgstr "²¾°ú¿ô¥ê¥¹¥È¤«¤é¤Î²¾°ú¿ô̾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹" + + #. damn ICE suppression +-#: cp/error.c:2387 ++#: cp/error.c:2385 + #, c-format + msgid "unexpected letter `%c' in locate_error\n" + msgstr "" +@@ -15753,7 +15802,7 @@ + msgid "throwing NULL, which has integral, not pointer type" + msgstr "" + +-#: cp/except.c:598 cp/init.c:2038 ++#: cp/except.c:598 cp/init.c:2047 + msgid "`%D' should never be overloaded" + msgstr "" + +@@ -15839,7 +15888,7 @@ + msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning" + msgstr "¡Ê¤â¤·¤³¤ì¤¬¤¢¤Ê¤¿¤Î°Õ¿Þ¤·¤¿¤â¤Î¤Ç¤Ê¤±¤ì¤Ð¡¢´Ø¿ô¥Æ¥ó¥×¥ì¡¼¥È¤Ï´û¤ËÀë¸ÀºÑ¤Ç¤¢¤ë»ö¤ò³Îǧ¤·¡¢¤³¤³¤Î´Ø¿ô̾¤Î¸å¤í¤Ë <> ¤òÉÕ¤±Â­¤·¤Æ¤¯¤À¤µ¤¤¡Ë -Wno-non-template-friend ¤Ç¤³¤Î·Ù¹ðɽ¼¨¤ò̵¸ú¤Ë¤·¤Þ¤¹" + +-#: cp/g++spec.c:229 java/jvspec.c:415 ++#: cp/g++spec.c:232 java/jvspec.c:415 + #, c-format + msgid "argument to `%s' missing\n" + msgstr "`%s' ¤Ø¤Î°ú¿ô¤ò·ç¤¤¤Æ¤¤¤Þ¤¹\n" +@@ -15976,65 +16025,65 @@ + msgid "incomplete type `%T' does not have member `%D'" + msgstr "" + +-#: cp/init.c:1459 ++#: cp/init.c:1460 + #, fuzzy + msgid "`%D' is not a member of type `%T'" + msgstr "%s ¤Ë `%s' ¤È¤¤¤¦Ì¾Á°¤Î¥á¥ó¥Ð¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: cp/init.c:1478 ++#: cp/init.c:1487 + #, fuzzy + msgid "invalid pointer to bit-field `%D'" + msgstr "̵¸ú¤Ê¼±ÊÌ»Ò `%s'" + +-#: cp/init.c:1580 ++#: cp/init.c:1589 + #, fuzzy + msgid "invalid use of non-static member function `%D'" + msgstr "Èó¥á¥ó¥Ð´Ø¿ô¤Ç¤Î `this' ¤Î»ÈÍѤÏ̵¸ú¤Ç¤¹" + +-#: cp/init.c:1586 cp/semantics.c:1236 ++#: cp/init.c:1595 cp/semantics.c:1236 + #, fuzzy + msgid "invalid use of non-static data member `%D'" + msgstr "¥á¥ó¥Ð¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Î̵¸ú¤Ê `%s' ¤Î»ÈÍÑ" + +-#: cp/init.c:1725 ++#: cp/init.c:1734 + msgid "new of array type fails to specify size" + msgstr "ÇÛÎ󷿤Πnew ¤Ï¥µ¥¤¥º¤Î»ØÄê¤Ë¼ºÇÔ¤·¤Þ¤¹" + +-#: cp/init.c:1736 ++#: cp/init.c:1745 + msgid "size in array new must have integral type" + msgstr "ÇÛÎó new ¤Ç¤Î¥µ¥¤¥º¤Ï´°Á´¤Ê·¿¤ò»ý¤¿¤Í¤Ð¤Ê¤ê¤Þ¤»¤ó" + +-#: cp/init.c:1742 ++#: cp/init.c:1751 + msgid "zero size array reserves no space" + msgstr "¥µ¥¤¥º¥¼¥í¤ÎÇÛÎó¤Ï¶õ´Ö¤ò³ÎÊݤ·¤Þ¤»¤ó" + +-#: cp/init.c:1809 ++#: cp/init.c:1818 + msgid "new cannot be applied to a reference type" + msgstr "»²¾È·¿¤ËÂФ·¤Æ new ¤òŬÍѤǤ­¤Þ¤»¤ó" + +-#: cp/init.c:1815 ++#: cp/init.c:1824 + msgid "new cannot be applied to a function type" + msgstr "´Ø¿ô·¿¤ËÂФ·¤Æ new ¤òŬÍѤǤ­¤Þ¤»¤ó" + +-#: cp/init.c:1861 ++#: cp/init.c:1870 + msgid "call to Java constructor, while `jclass' undefined" + msgstr "Java ¥³¥ó¥¹¥È¥é¥¯¥¿¤¬¸Æ¤Ð¤ì¤Þ¤·¤¿¤¬¡¢`jclass' ¤Ï̤ÄêµÁ¤Ç¤¹" + +-#: cp/init.c:1877 ++#: cp/init.c:1886 + #, fuzzy + msgid "can't find class$" + msgstr "class$ ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó" + +-#: cp/init.c:2004 ++#: cp/init.c:2013 + msgid "invalid type `void' for new" + msgstr "new ¤ËÂФ·¤Æ̵¸ú¤Ê·¿¤Ç¤¢¤ë `void'" + +-#: cp/init.c:2014 ++#: cp/init.c:2023 + #, fuzzy + msgid "uninitialized const in `new' of `%#T'" + msgstr "½é´ü²½»Ò¤Ï `%s' ¤Î¥µ¥¤¥º¤ÎÆÃÄê¤Ë¼ºÇÔ¤·¤Þ¤·¤¿" + +-#: cp/init.c:2033 ++#: cp/init.c:2042 + #, c-format + msgid "call to Java constructor with `%s' undefined" + msgstr "Java ¥³¥ó¥¹¥È¥é¥¯¥¿¤¬¸Æ¤Ð¤ì¤Þ¤·¤¿¤¬¡¢`%s' ¤Ï̤ÄêµÁ¤Ç¤¹" +@@ -16042,41 +16091,41 @@ + #. See PR 15967. This should never happen (and it is + #. fixed correctly in mainline), but on the release branch + #. we prefer this less-intrusive approacch. +-#: cp/init.c:2077 ++#: cp/init.c:2086 + msgid "no suitable or ambiguous `%D' found in class `%T'" + msgstr "" + +-#: cp/init.c:2083 ++#: cp/init.c:2092 + #, fuzzy + msgid "request for member `%D' is ambiguous" + msgstr "Í׵ᤵ¤ì¤¿¥á¥ó¥Ð `%s' ¤Ï¿½Å·Ñ¾µ¥°¥é¥Õ¤ÎÃæ¤ÇÛ£Ëæ¤Ç¤¹" + +-#: cp/init.c:2203 ++#: cp/init.c:2212 + #, fuzzy + msgid "ISO C++ forbids initialization in array new" + msgstr "ISO C++ ¤Ï new ¼°¤Î½é´ü²½¤Ç¤Î `=' ¤ò¶Ø¤¸¤Þ¤¹" + +-#: cp/init.c:2677 ++#: cp/init.c:2686 + msgid "initializer ends prematurely" + msgstr "½é´üÀßÄê»Ò¤ÎËöÈø¤¬ËÜÍè¤è¤êÁ᤯½Ð¸½¤·¤Þ¤·¤¿" + +-#: cp/init.c:2734 ++#: cp/init.c:2743 + msgid "cannot initialize multi-dimensional array with initializer" + msgstr "¿¼¡¸µÇÛÎó¤Ï½é´ü²½»Ò¤Ç½é´ü²½¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó" + +-#: cp/init.c:2895 ++#: cp/init.c:2904 + msgid "possible problem detected in invocation of delete operator:" + msgstr "" + +-#: cp/init.c:2898 ++#: cp/init.c:2907 + msgid "neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined." + msgstr "" + +-#: cp/init.c:2919 ++#: cp/init.c:2928 + msgid "unknown array size in delete" + msgstr "delete ¤Ç¤ÎÇÛÎó¥µ¥¤¥º¤¬ÉÔÌÀ¤Ç¤¹" + +-#: cp/init.c:3184 ++#: cp/init.c:3193 + msgid "type to vector delete is neither pointer or array type" + msgstr "¥Ù¥¯¥È¥ë·¿¤Î delete ¤Ç¤¹¤¬¡¢¥Ý¥¤¥ó¥¿¤Ç¤âÇÛÎ󷿤Ǥ⤢¤ê¤Þ¤»¤ó" + +@@ -16145,16 +16194,16 @@ + msgid "(if you use `-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)" + msgstr "" + +-#: cp/mangle.c:2037 ++#: cp/mangle.c:2050 + #, fuzzy + msgid "call_expr cannot be mangled due to a defect in the C++ ABI" + msgstr "´Ø¿ô·¿¤ËÂФ·¤Æ new ¤òŬÍѤǤ­¤Þ¤»¤ó" + +-#: cp/mangle.c:2090 ++#: cp/mangle.c:2103 + msgid "omitted middle operand to `?:' operand cannot be mangled" + msgstr "" + +-#: cp/mangle.c:2389 ++#: cp/mangle.c:2402 + msgid "the mangled name of `%D' will change in a future version of GCC" + msgstr "" + +@@ -16314,7 +16363,7 @@ + + #. It's a nested name with template parameter dependent scope. + #. This can only be using-declaration for class member. +-#: cp/name-lookup.c:2126 cp/name-lookup.c:2140 cp/name-lookup.c:3380 ++#: cp/name-lookup.c:2126 cp/name-lookup.c:2140 cp/name-lookup.c:3362 + msgid "`%T' is not a namespace" + msgstr "" + +@@ -16351,96 +16400,96 @@ + msgid "using-declaration cannot name destructor" + msgstr "friend Àë¸À¤¬¥¯¥é¥¹ÄêµÁ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó" + +-#: cp/name-lookup.c:3005 ++#: cp/name-lookup.c:2984 + #, fuzzy + msgid "declaration of `%D' not in a namespace surrounding `%D'" + msgstr "`%s' ¤ÎÀë¸À¤Ë¤è¤ê `this' ¤Î¥á¥ó¥Ð¤¬Ê¤¤¤±£¤µ¤ì¤Þ¤¹" + +-#: cp/name-lookup.c:3045 ++#: cp/name-lookup.c:3024 + msgid "`%D' should have been declared inside `%D'" + msgstr "" + +-#: cp/name-lookup.c:3109 ++#: cp/name-lookup.c:3088 + msgid "namespace alias `%D' not allowed here, assuming `%D'" + msgstr "" + + #. The parser did not find it, so it's not there. +-#: cp/name-lookup.c:3224 ++#: cp/name-lookup.c:3203 + #, fuzzy + msgid "unknown namespace `%D'" + msgstr "ÉÔÌÀ¤Ê #pragma namespace %s ¤Ç¤¹" + +-#: cp/name-lookup.c:3374 ++#: cp/name-lookup.c:3356 + #, fuzzy + msgid "namespace `%T' undeclared" + msgstr "²¾°ú¿ô `%s' ¤¬ void ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹" + +-#: cp/name-lookup.c:3407 ++#: cp/name-lookup.c:3389 + msgid "strong using only meaningful at namespace scope" + msgstr "" + +-#: cp/name-lookup.c:3414 ++#: cp/name-lookup.c:3396 + #, fuzzy + msgid "`%D' attribute directive ignored" + msgstr "`%s' °À­¤Îµ¿»÷Ì¿Î᤬̵»ë¤µ¤ì¤Þ¤·¤¿" + +-#: cp/name-lookup.c:3547 ++#: cp/name-lookup.c:3529 + #, fuzzy + msgid "use of `%D' is ambiguous" + msgstr "%s: ¥ª¥×¥·¥ç¥ó `%s' ¤Ï¤¢¤¤¤Þ¤¤¤Ç¤¹\n" + +-#: cp/name-lookup.c:3548 ++#: cp/name-lookup.c:3530 + msgid " first declared as `%#D' here" + msgstr "" + +-#: cp/name-lookup.c:3551 ++#: cp/name-lookup.c:3533 + msgid " also declared as `%#D' here" + msgstr "" + +-#: cp/name-lookup.c:3566 ++#: cp/name-lookup.c:3548 + msgid "`%D' denotes an ambiguous type" + msgstr "" + +-#: cp/name-lookup.c:3567 ++#: cp/name-lookup.c:3549 + #, fuzzy + msgid "%J first type here" + msgstr " ¤³¤³¤«¤é" + +-#: cp/name-lookup.c:3568 ++#: cp/name-lookup.c:3550 + msgid "%J other type here" + msgstr "" + + #. This happens for A::B where B is a template, and there are no + #. template arguments. +-#: cp/name-lookup.c:3633 cp/typeck.c:1792 ++#: cp/name-lookup.c:3615 cp/typeck.c:1792 + #, fuzzy + msgid "invalid use of `%D'" + msgstr "`restrict' ¤ÎÍÑË¡¤¬ÉÔŬÀڤǤ¹" + +-#: cp/name-lookup.c:3674 ++#: cp/name-lookup.c:3656 + #, fuzzy + msgid "`%D::%D' is not a template" + msgstr "¥Æ¥ó¥×¥ì¡¼¥ÈÆâ¤Ç `%s' ¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹" + +-#: cp/name-lookup.c:3691 ++#: cp/name-lookup.c:3673 + msgid "`%D' undeclared in namespace `%D'" + msgstr "" + +-#: cp/name-lookup.c:4153 ++#: cp/name-lookup.c:4135 + #, fuzzy + msgid "`%D' is not a function," + msgstr "`%s' ¤ÏÄ̾ï¤Ï´Ø¿ô¤Ç¤¹" + +-#: cp/name-lookup.c:4154 ++#: cp/name-lookup.c:4136 + #, fuzzy + msgid " conflict with `%D'" + msgstr "`%s' ¤Ï `-g%s' ¤È¶¥¹ç¤¹¤ë¤¿¤á̵»ë¤µ¤ì¤Þ¤·¤¿" + +-#: cp/name-lookup.c:4911 ++#: cp/name-lookup.c:4893 + msgid "XXX entering pop_everything ()\n" + msgstr "" + +-#: cp/name-lookup.c:4920 ++#: cp/name-lookup.c:4902 + msgid "XXX leaving pop_everything ()\n" + msgstr "" + +@@ -16453,7 +16502,7 @@ + msgid "`%D::%D' has not been declared" + msgstr "" + +-#: cp/parser.c:1809 cp/semantics.c:2308 ++#: cp/parser.c:1809 cp/semantics.c:2305 + msgid "`::%D' has not been declared" + msgstr "" + +@@ -16480,7 +16529,7 @@ + msgid "new types may not be defined in a return type" + msgstr "»²¾È·¿¤ËÂФ·¤Æ new ¤òŬÍѤǤ­¤Þ¤»¤ó" + +-#: cp/parser.c:1888 cp/pt.c:4196 ++#: cp/parser.c:1888 cp/pt.c:4238 + #, fuzzy + msgid "`%T' is not a template" + msgstr "¥Æ¥ó¥×¥ì¡¼¥ÈÆâ¤Ç `%s' ¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹" +@@ -16532,191 +16581,191 @@ + msgid "typedef-name `%D' used as destructor declarator" + msgstr "" + +-#: cp/parser.c:3638 ++#: cp/parser.c:3648 + #, fuzzy + msgid "ISO C++ forbids compound-literals" + msgstr "ISO C++ ¤ÏÊ£¹ç¥ê¥Æ¥é¥ë¤ò¶Ø¤¸¤Þ¤¹" + +-#: cp/parser.c:4461 ++#: cp/parser.c:4498 + msgid "array bound forbidden after parenthesized type-id" + msgstr "" + +-#: cp/parser.c:4462 ++#: cp/parser.c:4499 + msgid "try removing the parentheses around the type-id" + msgstr "" + +-#: cp/parser.c:4624 ++#: cp/parser.c:4661 + #, fuzzy + msgid "expression in new-declarator must have integral or enumeration type" + msgstr "ÇÛÎó new ¤Ç¤Î¥µ¥¤¥º¤Ï´°Á´¤Ê·¿¤ò»ý¤¿¤Í¤Ð¤Ê¤ê¤Þ¤»¤ó" + +-#: cp/parser.c:4805 ++#: cp/parser.c:4842 + msgid "use of old-style cast" + msgstr "¸Å¤¤¥¹¥¿¥¤¥ë¤Î¥­¥ã¥¹¥È¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹" + +-#: cp/parser.c:5550 ++#: cp/parser.c:5587 + #, fuzzy, c-format + msgid "case label `%E' not within a switch statement" + msgstr "case ¥é¥Ù¥ë¤¬ switch ʸ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó" + +-#: cp/parser.c:6092 ++#: cp/parser.c:6130 + msgid "ISO C++ forbids computed gotos" + msgstr "ISO C++ ¤Ï·×»»·¿ goto ¤ò¶Ø¤¸¤Þ¤¹" + +-#: cp/parser.c:6212 ++#: cp/parser.c:6250 + msgid "extra `;'" + msgstr "" + +-#: cp/parser.c:6507 ++#: cp/parser.c:6545 + msgid "mixing declarations and function-definitions is forbidden" + msgstr "" + +-#: cp/parser.c:6645 ++#: cp/parser.c:6683 + #, fuzzy + msgid "duplicate `friend'" + msgstr "`%s' ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹" + +-#: cp/parser.c:6794 ++#: cp/parser.c:6832 + #, fuzzy + msgid "class definition may not be declared a friend" + msgstr "`%s' ¤Ï´Ø¿ô¤Ç¤â¥á¥ó¥Ð´Ø¿ô¤Ç¤â¤¢¤ê¤Þ¤»¤ó -- friend ¤È¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó" + +-#: cp/parser.c:7109 ++#: cp/parser.c:7147 + msgid "only constructors take base initializers" + msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤·¤«´ðÄì½é´ü²½»Ò¥ê¥¹¥È¤ò¤È¤ê¤Þ¤»¤ó" + +-#: cp/parser.c:7160 ++#: cp/parser.c:7198 + #, fuzzy + msgid "anachronistic old-style base class initializer" + msgstr "Á°»þÂåŪ¤Ê¸Å¤¤¥¹¥¿¥¤¥ë¤Î´ðÄ쥯¥é¥¹½é´ü²½»Ò¤Ç¤¹" + +-#: cp/parser.c:7201 ++#: cp/parser.c:7239 + msgid "keyword `typename' not allowed in this context (a qualified member initializer is implicitly a type)" + msgstr "" + + #. Warn that we do not support `export'. +-#: cp/parser.c:7563 ++#: cp/parser.c:7601 + msgid "keyword `export' not implemented, and will be ignored" + msgstr "" + + #. Otherwise, emit an error about the invalid digraph, but continue + #. parsing because we got our argument list. +-#: cp/parser.c:7923 ++#: cp/parser.c:7961 + msgid "`<::' cannot begin a template-argument list" + msgstr "" + +-#: cp/parser.c:7924 ++#: cp/parser.c:7962 + msgid "`<:' is an alternate spelling for `['. Insert whitespace between `<' and `::'" + msgstr "" + +-#: cp/parser.c:7931 ++#: cp/parser.c:7969 + msgid "(if you use `-fpermissive' G++ will accept your code)" + msgstr "" + + #. Explain what went wrong. +-#: cp/parser.c:8106 ++#: cp/parser.c:8145 + #, fuzzy + msgid "non-template `%D' used as template" + msgstr "`::main' ¤ò template ¤È¤·¤Æ¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó" + +-#: cp/parser.c:8107 ++#: cp/parser.c:8146 + msgid "use `%T::template %D' to indicate that it is a template" + msgstr "" + +-#: cp/parser.c:9058 ++#: cp/parser.c:9102 + msgid "using `typename' outside of template" + msgstr "" + +-#: cp/parser.c:9180 ++#: cp/parser.c:9224 + msgid "expected type-name" + msgstr "" + +-#: cp/parser.c:9239 ++#: cp/parser.c:9283 + msgid "type attributes are honored only at type definition" + msgstr "" + + #. [namespace.udecl] + #. + #. A using declaration shall not name a template-id. +-#: cp/parser.c:9622 ++#: cp/parser.c:9666 + msgid "a template-id may not appear in a using-declaration" + msgstr "" + +-#: cp/parser.c:9949 ++#: cp/parser.c:9986 + #, fuzzy + msgid "an asm-specification is not allowed on a function-definition" + msgstr "½é´ü²½»Ò¥ê¥¹¥È¤ÏÈó¥á¥ó¥Ð´Ø¿ô¤Ç¤Ï»È¤¨¤Þ¤»¤ó" + +-#: cp/parser.c:9951 ++#: cp/parser.c:9988 + #, fuzzy + msgid "attributes are not allowed on a function-definition" + msgstr "Âç°è register ÊÑ¿ô¤¬´Ø¿ôÄêµÁ¤Î¸å¤í¤Ë¤¢¤ê¤Þ¤¹" + +-#: cp/parser.c:10084 ++#: cp/parser.c:10121 + msgid "attributes after parenthesized initializer ignored" + msgstr "" + +-#: cp/parser.c:10540 ++#: cp/parser.c:10591 + msgid "`%T::%D' is not a type" + msgstr "" + +-#: cp/parser.c:11288 ++#: cp/parser.c:11341 + #, fuzzy + msgid "file ends in default argument" + msgstr "̵¸ú¤Ê¥Ç¥Õ¥©¥ë¥È¥Æ¥ó¥×¥ì¡¼¥È°ú¿ô" + +-#: cp/parser.c:11344 ++#: cp/parser.c:11397 + msgid "deprecated use of default argument for parameter of non-function" + msgstr "" + +-#: cp/parser.c:11347 ++#: cp/parser.c:11400 + #, fuzzy + msgid "default arguments are only permitted for function parameters" + msgstr "¥á¥½¥Ã¥É¤Ï´Ø¿ô¥Ý¥¤¥ó¥¿¤ËÊÑ´¹¤Ç¤­¤Þ¤»¤ó" + +-#: cp/parser.c:12078 ++#: cp/parser.c:12166 + msgid "declaration of `%D' in `%D' which does not enclose `%D'" + msgstr "" + +-#: cp/parser.c:12091 ++#: cp/parser.c:12179 + msgid "extra qualification ignored" + msgstr "" + +-#: cp/parser.c:12102 ++#: cp/parser.c:12190 + msgid "an explicit specialization must be preceded by 'template <>'" + msgstr "" + +-#: cp/parser.c:12385 ++#: cp/parser.c:12473 + msgid "extra semicolon" + msgstr "" + +-#: cp/parser.c:12403 ++#: cp/parser.c:12491 + msgid "a class-key must be used when declaring a friend" + msgstr "" + +-#: cp/parser.c:12434 ++#: cp/parser.c:12522 + #, fuzzy + msgid "friend declaration does not name a class or function" + msgstr "friend Àë¸À¤¬¥¯¥é¥¹ÄêµÁ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó" + +-#: cp/parser.c:12605 ++#: cp/parser.c:12694 + msgid "pure-specifier on function-definition" + msgstr "" + +-#: cp/parser.c:12878 ++#: cp/parser.c:12967 + msgid "keyword `typename' not allowed outside of templates" + msgstr "" + +-#: cp/parser.c:12880 ++#: cp/parser.c:12969 + msgid "keyword `typename' not allowed in this context (the base class is implicitly a type)" + msgstr "" + +-#: cp/parser.c:13700 ++#: cp/parser.c:13790 + #, fuzzy + msgid "reference to `%D' is ambiguous" + msgstr "%s: ¥ª¥×¥·¥ç¥ó `%s' ¤Ï¤¢¤¤¤Þ¤¤¤Ç¤¹\n" + +-#: cp/parser.c:13874 ++#: cp/parser.c:13964 + msgid "too few template-parameter-lists" + msgstr "" + +@@ -16724,49 +16773,49 @@ + #. something like: + #. + #. template template void S::f(); +-#: cp/parser.c:13889 ++#: cp/parser.c:13979 + msgid "too many template-parameter-lists" + msgstr "" + + #. If begin_function_definition didn't like the definition, skip + #. the entire function. +-#: cp/parser.c:14185 ++#: cp/parser.c:14275 + #, fuzzy + msgid "invalid function declaration" + msgstr "̵¸ú¤ÊÀë¸À¤Ç¤¹" + + #. Issue an error message. +-#: cp/parser.c:14222 ++#: cp/parser.c:14312 + #, fuzzy + msgid "named return values are no longer supported" + msgstr "--driver ¤ÏºÇÁ᥵¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó" + +-#: cp/parser.c:14561 ++#: cp/parser.c:14651 + #, fuzzy + msgid "`>>' should be `> >' within a nested template argument list" + msgstr "`>>' ¤Ï¥Æ¥ó¥×¥ì¡¼¥È¥¯¥é¥¹Ì¾¤Ï `> >' ¤È¤¹¤Ù¤­¤Ç¤¹" + + #. If this is not a nested template argument list, the '>>' is + #. a typo for '>'. Emit an error message and continue. +-#: cp/parser.c:14569 ++#: cp/parser.c:14659 + msgid "spurious `>>', use `>' to terminate a template argument list" + msgstr "" + +-#: cp/parser.c:14574 ++#: cp/parser.c:14664 + #, fuzzy + msgid "missing `>' to terminate the template argument list" + msgstr "¥Þ¥¯¥í²¾°ú¿ô¥ê¥¹¥È¤Ç¡¢')' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹" + +-#: cp/parser.c:15062 ++#: cp/parser.c:15149 + msgid "`%s' tag used in naming `%#T'" + msgstr "" + +-#: cp/parser.c:15082 ++#: cp/parser.c:15169 + #, fuzzy + msgid "%D redeclared with different access" + msgstr "`%s' ¤¬Ê̤Υ·¥ó¥Ü¥ë¼ï¤È¤·¤ÆºÆÀë¸À¤µ¤ì¤Þ¤·¤¿" + +-#: cp/parser.c:15099 ++#: cp/parser.c:15186 + msgid "`template' (as a disambiguator) is only allowed within templates" + msgstr "" + +@@ -16788,92 +16837,96 @@ + msgid "enclosing class templates are not explicitly specialized" + msgstr "" + +-#: cp/pt.c:739 cp/pt.c:780 +-msgid "specializing `%#T' in different namespace" ++#: cp/pt.c:733 ++msgid "specialization of `%D' in different namespace" + msgstr "" + +-#: cp/pt.c:740 cp/pt.c:781 ++#: cp/pt.c:734 cp/pt.c:803 + #, fuzzy + msgid " from definition of `%#D'" + msgstr "`%s' ¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿" + +-#: cp/pt.c:748 ++#: cp/pt.c:770 + #, fuzzy + msgid "specialization of `%T' after instantiation" + msgstr "`%s' ¤ÎÀë¸À¤Ë `extern' ¤¬¤Ä¤¤¤Æ¤ª¤ê¡¢½é´ü²½¤â¤µ¤ì¤Æ¤¤¤Þ¤¹" + +-#: cp/pt.c:795 ++#: cp/pt.c:802 ++msgid "specializing `%#T' in different namespace" ++msgstr "" ++ ++#: cp/pt.c:817 + msgid "specialization `%T' after instantiation `%T'" + msgstr "" + +-#: cp/pt.c:807 ++#: cp/pt.c:829 + #, fuzzy + msgid "explicit specialization of non-template `%T'" + msgstr "¥¤¥ó¥é¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤ÎÌÀ¼¨Åª¤Ê¼ÂÂβ½¤Î¤ß¤òÀ¸À®¤¹¤ë" + +-#: cp/pt.c:1067 ++#: cp/pt.c:1089 + msgid "specialization of %D after instantiation" + msgstr "" + +-#: cp/pt.c:1192 ++#: cp/pt.c:1220 + #, fuzzy + msgid "%s %+#D" + msgstr "%s: %s" + +-#: cp/pt.c:1241 ++#: cp/pt.c:1269 + #, fuzzy + msgid "`%D' is not a function template" + msgstr "¥­¥ã¥¹¥È¤Ë¤è¤ë´Ø¿ô¤Î·¿¤¬Å¬¹ç¤·¤Þ¤»¤ó" + +-#: cp/pt.c:1389 ++#: cp/pt.c:1417 + msgid "template-id `%D' for `%+D' does not match any template declaration" + msgstr "" + +-#: cp/pt.c:1397 ++#: cp/pt.c:1425 + msgid "ambiguous template specialization `%D' for `%+D'" + msgstr "" + + #. This case handles bogus declarations like template <> + #. template void f(); +-#: cp/pt.c:1620 cp/pt.c:1694 ++#: cp/pt.c:1648 cp/pt.c:1722 + #, fuzzy + msgid "template-id `%D' in declaration of primary template" + msgstr "`operator delete' ¤ÎÀë¸ÀÆâ¤Ë¿¤¹¤®¤ë°ú¿ô" + +-#: cp/pt.c:1633 ++#: cp/pt.c:1661 + #, fuzzy + msgid "template parameter list used in explicit instantiation" + msgstr "#define Ãæ¤Î²¾°ú¿ô¥ê¥¹¥È¤¬½ªÃ¼¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" + +-#: cp/pt.c:1639 ++#: cp/pt.c:1667 + msgid "definition provided for explicit instantiation" + msgstr "" + +-#: cp/pt.c:1645 ++#: cp/pt.c:1673 + #, fuzzy + msgid "too many template parameter lists in declaration of `%D'" + msgstr "%s: ·Ù¹ð: `%s' ¤ÎÀë¸À¤Ç¤Î²¾°ú¿ô¥ê¥¹¥È¤¬Â¿¤¹¤®¤Þ¤¹\n" + +-#: cp/pt.c:1661 ++#: cp/pt.c:1689 + #, fuzzy + msgid "too few template parameter lists in declaration of `%D'" + msgstr "" + "\n" + "%s: ·Ù¹ð: `%s' ¤ÎÀë¸À¤Ç¤Î²¾°ú¿ô¥ê¥¹¥È¤¬¾¯¤Ê¤¹¤®¤Þ¤¹\n" + +-#: cp/pt.c:1678 ++#: cp/pt.c:1706 + msgid "explicit specialization not preceded by `template <>'" + msgstr "" + +-#: cp/pt.c:1691 ++#: cp/pt.c:1719 + msgid "partial specialization `%D' of function template" + msgstr "" + +-#: cp/pt.c:1723 ++#: cp/pt.c:1751 + msgid "default argument specified in explicit specialization" + msgstr "" + +-#: cp/pt.c:1727 ++#: cp/pt.c:1755 + msgid "template specialization with C linkage" + msgstr "" + +@@ -16885,115 +16938,125 @@ + #. program is ill-formed. + #. + #. Similar language is found in [temp.explicit]. +-#: cp/pt.c:1811 ++#: cp/pt.c:1839 + msgid "specialization of implicitly-declared special member function" + msgstr "" + +-#: cp/pt.c:1855 ++#: cp/pt.c:1883 + #, fuzzy + msgid "no member function `%D' declared in `%T'" + msgstr "¥Í¥¹¥È¤·¤¿´Ø¿ô `%s' ¤Ï `extern' ¤ËÀë¸À¤µ¤ì¤Þ¤·¤¿" + + #. There are two many template parameter lists. +-#: cp/pt.c:2005 ++#: cp/pt.c:2033 + #, fuzzy + msgid "too many template parameter lists in declaration of `%T'" + msgstr "%s: ·Ù¹ð: `%s' ¤ÎÀë¸À¤Ç¤Î²¾°ú¿ô¥ê¥¹¥È¤¬Â¿¤¹¤®¤Þ¤¹\n" + +-#: cp/pt.c:2098 ++#: cp/pt.c:2126 + msgid " shadows template parm `%#D'" + msgstr "" + +-#: cp/pt.c:2495 ++#: cp/pt.c:2523 + msgid "template parameters not used in partial specialization:" + msgstr "" + +-#: cp/pt.c:2499 ++#: cp/pt.c:2527 + msgid " `%D'" + msgstr "" + +-#: cp/pt.c:2511 ++#: cp/pt.c:2539 + msgid "partial specialization `%T' does not specialize any template arguments" + msgstr "" + +-#: cp/pt.c:2536 ++#: cp/pt.c:2564 + #, c-format + msgid "template argument `%E' involves template parameter(s)" + msgstr "" + +-#: cp/pt.c:2580 ++#: cp/pt.c:2608 + msgid "type `%T' of template argument `%E' depends on template parameter(s)" + msgstr "" + +-#: cp/pt.c:2665 ++#: cp/pt.c:2693 + #, fuzzy + msgid "no default argument for `%D'" + msgstr "`%s' ¤Î°ú¿ô¤È¤·¤Æ̵¸ú¤Ê·¿" + +-#: cp/pt.c:2814 ++#: cp/pt.c:2842 + msgid "template with C linkage" + msgstr "" + +-#: cp/pt.c:2817 ++#: cp/pt.c:2845 + msgid "template class without a name" + msgstr "" + + #. [temp.mem] + #. + #. A destructor shall not be a member template. +-#: cp/pt.c:2824 ++#: cp/pt.c:2853 + msgid "destructor `%D' declared as member template" + msgstr "" + +-#: cp/pt.c:2904 ++#. [basic.stc.dynamic.allocation] ++#. ++#. An allocation function can be a function ++#. template. ... Template allocation functions shall ++#. have two or more parameters. ++#: cp/pt.c:2868 ++#, fuzzy ++msgid "invalid template declaration of `%D'" ++msgstr "`%s' ¤Î extern Àë¸À¤¬¥Í¥¹¥È¤·¤Æ¤¤¤Þ¤¹" ++ ++#: cp/pt.c:2948 + msgid "`%D' does not declare a template type" + msgstr "" + +-#: cp/pt.c:2910 ++#: cp/pt.c:2954 + #, fuzzy + msgid "template definition of non-template `%#D'" + msgstr "¥¤¥ó¥¹¥¿¥ó¥¹¥á¥½¥Ã¥É `%s' ¤ÎÄêµÁ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹¡£" + +-#: cp/pt.c:2951 ++#: cp/pt.c:2995 + msgid "expected %d levels of template parms for `%#D', got %d" + msgstr "" + +-#: cp/pt.c:2963 ++#: cp/pt.c:3007 + #, fuzzy + msgid "got %d template parameters for `%#D'" + msgstr "½ÅÊ£¤·¤¿²¾°ú¿ô̾ `%s'" + +-#: cp/pt.c:2966 ++#: cp/pt.c:3010 + #, fuzzy + msgid "got %d template parameters for `%#T'" + msgstr "½ÅÊ£¤·¤¿²¾°ú¿ô̾ `%s'" + +-#: cp/pt.c:2968 ++#: cp/pt.c:3012 + #, c-format + msgid " but %d required" + msgstr "" + +-#: cp/pt.c:3053 ++#: cp/pt.c:3097 + #, fuzzy + msgid "`%T' is not a template type" + msgstr "`%s' ¤ÏÉÔ´°Á´·¿¤Ç¤¹" + +-#: cp/pt.c:3069 ++#: cp/pt.c:3113 + #, fuzzy + msgid "previous declaration `%D'" + msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À" + +-#: cp/pt.c:3070 ++#: cp/pt.c:3114 + #, fuzzy, c-format + msgid "used %d template parameter%s instead of %d" + msgstr "½ÅÊ£¤·¤¿²¾°ú¿ô̾ `%s'" + +-#: cp/pt.c:3086 ++#: cp/pt.c:3130 + #, fuzzy + msgid "template parameter `%#D'" + msgstr "°ú¿ô `%s' ¤¬Ì¤»ÈÍѤǤ¹" + +-#: cp/pt.c:3087 ++#: cp/pt.c:3131 + msgid "redeclared here as `%#D'" + msgstr "" + +@@ -17001,305 +17064,313 @@ + #. + #. A template-parameter may not be given default arguments + #. by two different declarations in the same scope. +-#: cp/pt.c:3097 ++#: cp/pt.c:3141 + #, fuzzy + msgid "redefinition of default argument for `%#D'" + msgstr "`%s' ¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿" + +-#: cp/pt.c:3098 ++#: cp/pt.c:3142 + msgid "%J original definition appeared here" + msgstr "" + +-#: cp/pt.c:3246 ++#: cp/pt.c:3288 + #, fuzzy, c-format + msgid "`%E' is not a valid template argument" + msgstr "̵¸ú¤Ê¥Ç¥Õ¥©¥ë¥È¥Æ¥ó¥×¥ì¡¼¥È°ú¿ô" + +-#: cp/pt.c:3250 ++#: cp/pt.c:3292 + msgid "it must be the address of a function with external linkage" + msgstr "" + +-#: cp/pt.c:3252 ++#: cp/pt.c:3294 + msgid "it must be the address of an object with external linkage" + msgstr "" + +-#: cp/pt.c:3255 ++#: cp/pt.c:3297 + msgid "it must be a pointer-to-member of the form `&X::Y'" + msgstr "" + +-#: cp/pt.c:3266 ++#: cp/pt.c:3308 + #, c-format + msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage" + msgstr "" + +-#: cp/pt.c:3281 ++#: cp/pt.c:3323 + #, c-format + msgid "address of non-extern `%E' cannot be used as template argument" + msgstr "" + +-#: cp/pt.c:3290 ++#: cp/pt.c:3332 + #, fuzzy, c-format + msgid "non-constant `%E' cannot be used as template argument" + msgstr "const `%s' ¤ò `mutable' ¤È¤·¤ÆÀë¸À¤Ç¤­¤Þ¤»¤ó" + +-#: cp/pt.c:3298 ++#: cp/pt.c:3340 + msgid "type '%T' cannot be used as a value for a non-type template-parameter" + msgstr "" + +-#: cp/pt.c:3301 ++#: cp/pt.c:3343 + #, fuzzy + msgid "invalid use of '%D' as a non-type template-argument" + msgstr "̵¸ú¤Ê¥Ç¥Õ¥©¥ë¥È¥Æ¥ó¥×¥ì¡¼¥È°ú¿ô" + +-#: cp/pt.c:3303 ++#: cp/pt.c:3345 + #, fuzzy, c-format + msgid "invalid use of '%E' as a non-type template-argument" + msgstr "̵¸ú¤Ê¥Ç¥Õ¥©¥ë¥È¥Æ¥ó¥×¥ì¡¼¥È°ú¿ô" + +-#: cp/pt.c:3668 ++#: cp/pt.c:3710 + #, c-format + msgid "to refer to a type member of a template parameter, use `typename %E'" + msgstr "" + +-#: cp/pt.c:3681 cp/pt.c:3699 cp/pt.c:3738 ++#: cp/pt.c:3723 cp/pt.c:3741 cp/pt.c:3780 + msgid "type/value mismatch at argument %d in template parameter list for `%D'" + msgstr "" + +-#: cp/pt.c:3684 ++#: cp/pt.c:3726 + msgid " expected a constant of type `%T', got `%T'" + msgstr "" + +-#: cp/pt.c:3688 ++#: cp/pt.c:3730 + #, c-format + msgid " expected a class template, got `%E'" + msgstr "" + +-#: cp/pt.c:3690 ++#: cp/pt.c:3732 + #, fuzzy, c-format + msgid " expected a type, got `%E'" + msgstr "ͽ´ü¤·¤Ê¤¤·¿¤¬ `id' (%s) ¤Ë»ØÄꤵ¤ì¤Þ¤·¤¿" + +-#: cp/pt.c:3702 ++#: cp/pt.c:3744 + #, fuzzy + msgid " expected a type, got `%T'" + msgstr "ͽ´ü¤·¤Ê¤¤·¿¤¬ `id' (%s) ¤Ë»ØÄꤵ¤ì¤Þ¤·¤¿" + +-#: cp/pt.c:3704 ++#: cp/pt.c:3746 + msgid " expected a class template, got `%T'" + msgstr "" + +-#: cp/pt.c:3740 ++#: cp/pt.c:3782 + msgid " expected a template of type `%D', got `%D'" + msgstr "" + +-#: cp/pt.c:3775 ++#: cp/pt.c:3817 + msgid "could not convert template argument `%E' to `%T'" + msgstr "" + +-#: cp/pt.c:3815 ++#: cp/pt.c:3857 + #, c-format + msgid "wrong number of template arguments (%d, should be %d)" + msgstr "" + +-#: cp/pt.c:3819 ++#: cp/pt.c:3861 + #, fuzzy + msgid "provided for `%D'" + msgstr "`%#D' ¤Î¤¿¤á¤Î¥Ç¥¹¥È¥é¥¯¥¿¤¬É¬ÍפǤ¹" + +-#: cp/pt.c:3847 ++#: cp/pt.c:3889 + #, fuzzy, c-format + msgid "template argument %d is invalid" + msgstr "¥Þ¥¯¥í°ú¿ô \"%s\" ¤Ïʸ»úÎ󲽤µ¤ì¤Þ¤¹" + +-#: cp/pt.c:4068 ++#: cp/pt.c:4110 + msgid "non-template used as template" + msgstr "" + +-#: cp/pt.c:4208 ++#: cp/pt.c:4250 + msgid "non-template type `%T' used as a template" + msgstr "" + +-#: cp/pt.c:4210 ++#: cp/pt.c:4252 + #, fuzzy + msgid "for template declaration `%D'" + msgstr "¶õ¤ÎÀë¸À¤Ç¤¹" + +-#: cp/pt.c:4857 ++#: cp/pt.c:4899 + msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'" + msgstr "" + +-#: cp/pt.c:5296 ++#: cp/pt.c:5338 + #, fuzzy + msgid "ambiguous class template instantiation for `%#T'" + msgstr "¼«Æ°¥Æ¥ó¥×¥ì¡¼¥È¼ÂÂ⽤òÍ­¸ú¤Ë¤¹¤ë" + +-#: cp/pt.c:5302 ++#: cp/pt.c:5344 + #, fuzzy + msgid "%s %+#T" + msgstr "%s: %s" + +-#: cp/pt.c:6308 cp/pt.c:6428 ++#: cp/pt.c:6382 + #, fuzzy + msgid "instantiation of `%D' as type `%T'" + msgstr "%s: `%s' ¤Î½é´ü²½:\n" + +-#: cp/pt.c:6470 ++#: cp/pt.c:6542 + #, fuzzy + msgid "invalid parameter type `%T'" + msgstr "²¾°ú¿ô `%s' ¤Ï̵¸ú¤Ç¤¹" + +-#: cp/pt.c:6472 ++#: cp/pt.c:6544 + #, fuzzy + msgid "in declaration `%D'" + msgstr "`%s' ¤¬ºÆÀë¸À¤µ¤ì¤Þ¤·¤¿" + +-#: cp/pt.c:6546 ++#: cp/pt.c:6618 + #, fuzzy + msgid "creating pointer to member function of non-class type `%T'" + msgstr "¥á¥ó¥Ð´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬¸Æ¤Ð¤ì¤Þ¤·¤¿¤¬¡¢¥¯¥é¥¹¥¹¥³¡¼¥×Æâ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: cp/pt.c:6685 ++#: cp/pt.c:6758 + msgid "creating array with size zero" + msgstr "Â礭¤µ¥¼¥í¤ÎÇÛÎó¤òºî¤í¤¦¤È¤·¤Æ¤¤¤Þ¤¹" + +-#: cp/pt.c:6699 ++#: cp/pt.c:6772 + #, fuzzy, c-format + msgid "creating array with size zero (`%E')" + msgstr "Â礭¤µ¥¼¥í¤ÎÇÛÎó¤òºî¤í¤¦¤È¤·¤Æ¤¤¤Þ¤¹" + +-#: cp/pt.c:6938 ++#: cp/pt.c:7011 + #, fuzzy + msgid "forming reference to void" + msgstr "°ì»þ¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î»²¾È¤òÊÖ¤½¤¦¤È¤·¤Æ¤¤¤Þ¤¹" + +-#: cp/pt.c:6940 ++#: cp/pt.c:7013 + msgid "forming %s to reference type `%T'" + msgstr "" + +-#: cp/pt.c:6977 ++#: cp/pt.c:7050 + #, fuzzy + msgid "creating pointer to member of non-class type `%T'" + msgstr " ¥Ý¥¤¥ó¥¿¤«¤é¥á¥ó¥Ð¤Ø¤ÎÊÑ´¹¤Ç" + +-#: cp/pt.c:6983 ++#: cp/pt.c:7056 + #, fuzzy + msgid "creating pointer to member reference type `%T'" + msgstr " ¥Ý¥¤¥ó¥¿¤«¤é¥á¥ó¥Ð¤Ø¤ÎÊÑ´¹¤Ç" + +-#: cp/pt.c:7069 ++#: cp/pt.c:7142 + #, fuzzy + msgid "creating array of `%T'" + msgstr "°ú¿ô %d ¸Ä¤Î `%s' ¤òÅϤ·¤Þ¤¹" + +-#: cp/pt.c:7075 ++#: cp/pt.c:7148 + msgid "creating array of `%T', which is an abstract class type" + msgstr "" + +-#: cp/pt.c:7119 ++#: cp/pt.c:7192 + msgid "`%T' is not a class, struct, or union type" + msgstr "" + +-#: cp/pt.c:7232 ++#: cp/pt.c:7305 + #, c-format + msgid "use of `%s' in template" + msgstr "¥Æ¥ó¥×¥ì¡¼¥ÈÆâ¤Ç `%s' ¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹" + +-#: cp/pt.c:7345 ++#: cp/pt.c:7418 + #, c-format + msgid "dependent-name `%E' is parsed as a non-type, but instantiation yields a type" + msgstr "" + +-#: cp/pt.c:7347 ++#: cp/pt.c:7420 + #, c-format + msgid "say `typename %E' if a type is meant" + msgstr "" + +-#: cp/pt.c:8613 ++#: cp/pt.c:8589 ++msgid "`%T' is not a class or namespace" ++msgstr "" ++ ++#: cp/pt.c:8592 ++msgid "`%D' is not a class or namespace" ++msgstr "" ++ ++#: cp/pt.c:8709 + msgid "`%T' uses anonymous type" + msgstr "" + +-#: cp/pt.c:8615 ++#: cp/pt.c:8711 + msgid "`%T' uses local type `%T'" + msgstr "" + +-#: cp/pt.c:8623 ++#: cp/pt.c:8719 + msgid "`%T' is a variably modified type" + msgstr "" + +-#: cp/pt.c:8634 ++#: cp/pt.c:8730 + #, fuzzy, c-format + msgid "integral expression `%E' is not constant" + msgstr "½é´ü²½»Ò¤ÎÍ×ÁǤ¬Äê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: cp/pt.c:8639 ++#: cp/pt.c:8735 + #, fuzzy + msgid " trying to instantiate `%D'" + msgstr "%s:%d: `%s' ¤«¤é¼ÂÂ⽤µ¤ì¤Þ¤·¤¿\n" + +-#: cp/pt.c:9156 ++#: cp/pt.c:9252 + msgid "incomplete type unification" + msgstr "ÉÔ´°Á´¤Ê·¿¤Îñ°ì²½" + +-#: cp/pt.c:10112 ++#: cp/pt.c:10211 + #, c-format + msgid "use of `%s' in template type unification" + msgstr "¥Æ¥ó¥×¥ì¡¼¥È·¿Åý°ìÃæ `%s' ¤¬»ÈÍѤµ¤ì¤Þ¤·¤¿" + +-#: cp/pt.c:10546 cp/pt.c:10618 ++#: cp/pt.c:10644 cp/pt.c:10716 + #, fuzzy + msgid "explicit instantiation of non-template `%#D'" + msgstr "¥¤¥ó¥é¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤ÎÌÀ¼¨Åª¤Ê¼ÂÂβ½¤Î¤ß¤òÀ¸À®¤¹¤ë" + +-#: cp/pt.c:10562 cp/pt.c:10613 ++#: cp/pt.c:10660 cp/pt.c:10711 + msgid "no matching template for `%D' found" + msgstr "" + +-#: cp/pt.c:10568 ++#: cp/pt.c:10666 + #, fuzzy + msgid "explicit instantiation of `%#D'" + msgstr "%s: `%s' ¤Î½é´ü²½:\n" + +-#: cp/pt.c:10605 ++#: cp/pt.c:10703 + #, fuzzy + msgid "duplicate explicit instantiation of `%#D'" + msgstr "¥é¥Ù¥ë¤ÎÀë¸À `%s' ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹" + +-#: cp/pt.c:10627 ++#: cp/pt.c:10725 + #, fuzzy + msgid "ISO C++ forbids the use of `extern' on explicit instantiations" + msgstr "ISO C++ ¤Ï¸º»»¤Ë¥á¥½¥Ã¥É¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤ò¶Ø¤¸¤Þ¤¹" + +-#: cp/pt.c:10631 cp/pt.c:10712 ++#: cp/pt.c:10729 cp/pt.c:10810 + #, fuzzy + msgid "storage class `%D' applied to template instantiation" + msgstr "¼«Æ°¥Æ¥ó¥×¥ì¡¼¥È¼ÂÂ⽤òÍ­¸ú¤Ë¤¹¤ë" + +-#: cp/pt.c:10684 ++#: cp/pt.c:10782 + #, fuzzy + msgid "explicit instantiation of non-template type `%T'" + msgstr "¥¤¥ó¥é¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤ÎÌÀ¼¨Åª¤Ê¼ÂÂβ½¤Î¤ß¤òÀ¸À®¤¹¤ë" + +-#: cp/pt.c:10693 ++#: cp/pt.c:10791 + #, fuzzy + msgid "explicit instantiation of `%#T' before definition of template" + msgstr "¥¤¥ó¥é¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤ÎÌÀ¼¨Åª¤Ê¼ÂÂβ½¤Î¤ß¤òÀ¸À®¤¹¤ë" + +-#: cp/pt.c:10701 ++#: cp/pt.c:10799 + #, fuzzy, c-format + msgid "ISO C++ forbids the use of `%s' on explicit instantiations" + msgstr "ISO C++ ¤Ï¸º»»¤Ë´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤ò¶Ø¤¸¤Þ¤¹" + +-#: cp/pt.c:10745 ++#: cp/pt.c:10843 + #, fuzzy + msgid "duplicate explicit instantiation of `%#T'" + msgstr "¥é¥Ù¥ë¤ÎÀë¸À `%s' ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹" + +-#: cp/pt.c:11126 ++#: cp/pt.c:11224 + #, fuzzy + msgid "explicit instantiation of `%D' but no definition available" + msgstr "¥¤¥ó¥é¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤ÎÌÀ¼¨Åª¤Ê¼ÂÂβ½¤Î¤ß¤òÀ¸À®¤¹¤ë" + +-#: cp/pt.c:11562 ++#: cp/pt.c:11660 + #, fuzzy + msgid "`%#T' is not a valid type for a template constant parameter" + msgstr "'#' ¤Ë¥Þ¥¯¥í²¾°ú¿ô̾¤¬Â³¤¤¤Æ¤¤¤Þ¤»¤ó" +@@ -17346,42 +17417,42 @@ + msgid "`%T' is an inaccessible base of `%T'" + msgstr "" + +-#: cp/search.c:1767 ++#: cp/search.c:1805 + #, fuzzy + msgid "invalid covariant return type for `%#D'" + msgstr "`%s' ¤ËÂФ¹¤ë¥ì¥¸¥¹¥¿Ì¾¤È¤·¤Æ̵¸ú¤Ç¤¹" + +-#: cp/search.c:1768 cp/search.c:1774 ++#: cp/search.c:1806 cp/search.c:1812 + msgid " overriding `%#D'" + msgstr "" + +-#: cp/search.c:1772 ++#: cp/search.c:1810 + #, fuzzy + msgid "conflicting return type specified for `%#D'" + msgstr "`%s' ¤È·¿¤¬Ì·½â¤·¤Þ¤¹" + +-#: cp/search.c:1786 ++#: cp/search.c:1824 + #, fuzzy, c-format + msgid "looser throw specifier for `%#F'" + msgstr "`%s' ¤ËÂФ·¤Æ char ¤È¤È¤â¤Ë long ¤Þ¤¿¤Ï short ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹" + +-#: cp/search.c:1787 ++#: cp/search.c:1825 + #, c-format + msgid " overriding `%#F'" + msgstr "" + + #. A static member function cannot match an inherited + #. virtual member function. +-#: cp/search.c:1877 ++#: cp/search.c:1915 + #, fuzzy + msgid "`%#D' cannot be declared" + msgstr "const `%s' ¤ò `mutable' ¤È¤·¤ÆÀë¸À¤Ç¤­¤Þ¤»¤ó" + +-#: cp/search.c:1878 ++#: cp/search.c:1916 + msgid " since `%#D' declared in base class" + msgstr "" + +-#: cp/search.c:1955 ++#: cp/search.c:1993 + msgid "`%#D' needs a final overrider" + msgstr "" + +@@ -17404,126 +17475,126 @@ + msgid "object missing in reference to `%D'" + msgstr "ÇÛÎ󻲾ȤǤÎź»ú¤ò·ç¤¤¤Æ¤¤¤Þ¤¹" + +-#: cp/semantics.c:1721 ++#: cp/semantics.c:1718 + #, fuzzy + msgid "arguments to destructor are not allowed" + msgstr "°ú¿ô¤¬¹½Â¤ÂΤǤ¹" + +-#: cp/semantics.c:1770 ++#: cp/semantics.c:1767 + msgid "`this' is unavailable for static member functions" + msgstr "`this' ¤ÏÀÅŪ¥á¥ó¥Ð´Ø¿ô¤«¤é»ÈÍѤǤ­¤Þ¤»¤ó" + +-#: cp/semantics.c:1776 ++#: cp/semantics.c:1773 + msgid "invalid use of `this' in non-member function" + msgstr "Èó¥á¥ó¥Ð´Ø¿ô¤Ç¤Î `this' ¤Î»ÈÍѤÏ̵¸ú¤Ç¤¹" + +-#: cp/semantics.c:1778 ++#: cp/semantics.c:1775 + msgid "invalid use of `this' at top level" + msgstr "¥È¥Ã¥×¥ì¥Ù¥ë¤Ç¤Î `this' ¤Î»ÈÍѤÏ̵¸ú¤Ç¤¹" + +-#: cp/semantics.c:1802 ++#: cp/semantics.c:1799 + msgid "invalid qualifying scope in pseudo-destructor name" + msgstr "" + +-#: cp/semantics.c:1822 ++#: cp/semantics.c:1819 + #, fuzzy + msgid "`%E' is not of type `%T'" + msgstr "`%s' ¤Ï `%s' ¤Ë±þÅú¤·¤Þ¤»¤ó" + +-#: cp/semantics.c:1933 ++#: cp/semantics.c:1930 + msgid "template type parameters must use the keyword `class' or `typename'" + msgstr "¥Æ¥ó¥×¥ì¡¼¥È·¿²¾°ú¿ô¤Ë¤Ï `class' ¤ä `typename' ͽÌó¸ì¤ò»È¤ï¤Í¤Ð¤Ê¤ê¤Þ¤»¤ó" + +-#: cp/semantics.c:1977 ++#: cp/semantics.c:1974 + msgid "invalid use of type `%T' as a default value for a template template-parameter" + msgstr "" + +-#: cp/semantics.c:1980 ++#: cp/semantics.c:1977 + msgid "invalid use of `%D' as a default value for a template template-parameter" + msgstr "" + +-#: cp/semantics.c:1984 ++#: cp/semantics.c:1981 + #, fuzzy + msgid "invalid default argument for a template template parameter" + msgstr "̵¸ú¤Ê¥Ç¥Õ¥©¥ë¥È¥Æ¥ó¥×¥ì¡¼¥È°ú¿ô" + +-#: cp/semantics.c:2019 ++#: cp/semantics.c:2016 + #, fuzzy + msgid "definition of `%#T' inside template parameter list" + msgstr "`%s' ¤ÎÀë¸À¤Ï²¾°ú¿ô¥ê¥¹¥È¤Î¥·¥ó¥Ü¥ë¤òʤ¤¤±£¤·¤Þ¤¹" + +-#: cp/semantics.c:2030 ++#: cp/semantics.c:2027 + #, fuzzy + msgid "invalid definition of qualified type `%T'" + msgstr "̤ÄêµÁ¤Î·¿ `%s %s' ¤Î»ÈÍѤÏÉÔŬÀڤǤ¹" + +-#: cp/semantics.c:2045 ++#: cp/semantics.c:2042 + #, fuzzy + msgid "previous definition of `%#T'" + msgstr "`%s' ¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿" + +-#: cp/semantics.c:2249 ++#: cp/semantics.c:2246 + #, fuzzy + msgid "invalid base-class specification" + msgstr "̵¸ú¤ÊÀë¸À¤Ç¤¹" + +-#: cp/semantics.c:2258 ++#: cp/semantics.c:2255 + msgid "base class `%T' has cv qualifiers" + msgstr "" + +-#: cp/semantics.c:2290 ++#: cp/semantics.c:2287 + #, fuzzy + msgid "multiple declarators in template declaration" + msgstr "°ì¤Ä¤ÎÀë¸À¤ËÊ£¿ô¤Î·¿¤¬¤¢¤ê¤Þ¤¹" + +-#: cp/semantics.c:2301 ++#: cp/semantics.c:2298 + msgid "incomplete type `%T' used in nested name specifier" + msgstr "" + +-#: cp/semantics.c:2303 cp/typeck.c:1635 ++#: cp/semantics.c:2300 cp/typeck.c:1635 + #, fuzzy + msgid "`%D' is not a member of `%T'" + msgstr "%s ¤Ë `%s' ¤È¤¤¤¦Ì¾Á°¤Î¥á¥ó¥Ð¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: cp/semantics.c:2306 ++#: cp/semantics.c:2303 + #, fuzzy + msgid "`%D' is not a member of `%D'" + msgstr "%s ¤Ë `%s' ¤È¤¤¤¦Ì¾Á°¤Î¥á¥ó¥Ð¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: cp/semantics.c:2431 ++#: cp/semantics.c:2428 + msgid "template parameter `%D' of type `%T' is not allowed in an integral constant expression because it is not of integral or enumeration type" + msgstr "" + +-#: cp/semantics.c:2584 ++#: cp/semantics.c:2572 + #, fuzzy + msgid "`%D' cannot appear in a constant-expression" + msgstr "Äê¿ô¼°¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿" + +-#: cp/semantics.c:2593 ++#: cp/semantics.c:2580 + msgid "use of namespace `%D' as expression" + msgstr "" + +-#: cp/semantics.c:2598 ++#: cp/semantics.c:2585 + msgid "use of class template `%T' as expression" + msgstr "" + + #. Ambiguous reference to base members. +-#: cp/semantics.c:2604 ++#: cp/semantics.c:2591 + #, fuzzy + msgid "request for member `%D' is ambiguous in multiple inheritance lattice" + msgstr "Í׵ᤵ¤ì¤¿¥á¥ó¥Ð `%s' ¤Ï¿½Å·Ñ¾µ¥°¥é¥Õ¤ÎÃæ¤ÇÛ£Ëæ¤Ç¤¹" + +-#: cp/semantics.c:2664 ++#: cp/semantics.c:2652 + #, c-format + msgid "use of %s from containing function" + msgstr "" + +-#: cp/semantics.c:2667 ++#: cp/semantics.c:2655 + #, fuzzy + msgid " `%#D' declared here" + msgstr "`%s' ¤ÏÁ°¤Ë¤³¤³¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿" + +-#: cp/semantics.c:2718 ++#: cp/semantics.c:2706 + #, fuzzy, c-format + msgid "type of `%E' is unknown" + msgstr "¥ì¥¸¥¹¥¿ '%c' ¤¬ÉÔÌÀ¤Ç¤¹" +@@ -17538,44 +17609,44 @@ + msgid "`%V' qualifiers cannot be applied to `%T'" + msgstr "`%s' ¤Ï `%s' ¤Ë±þÅú¤·¤Þ¤»¤ó" + +-#: cp/tree.c:1821 ++#: cp/tree.c:1829 + #, fuzzy, c-format + msgid "`%s' attribute can only be applied to Java class definitions" + msgstr "`java_interface' °À­¤Ï Java ¥¯¥é¥¹ÄêµÁ¤ËÂФ·¤Æ¤Î¤ßÍѤ¤¤ë»ö¤¬¤Ç¤­¤Þ¤¹" + +-#: cp/tree.c:1850 ++#: cp/tree.c:1858 + #, fuzzy, c-format + msgid "`%s' attribute can only be applied to class definitions" + msgstr "`com_interface' °À­¤Ï¥¯¥é¥¹ÄêµÁ¤Ë¤Î¤ßÍѤ¤¤ë»ö¤¬¤Ç¤­¤Þ¤¹" + +-#: cp/tree.c:1856 ++#: cp/tree.c:1864 + #, c-format + msgid "`%s' is obsolete; g++ vtables are now COM-compatible by default" + msgstr "" + +-#: cp/tree.c:1880 ++#: cp/tree.c:1888 + msgid "requested init_priority is not an integer constant" + msgstr "Í׵ᤵ¤ì¤¿ init_priority ¤ÏÀ°¿ô·¿¤ÎÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: cp/tree.c:1901 ++#: cp/tree.c:1909 + #, fuzzy, c-format + msgid "can only use `%s' attribute on file-scope definitions of objects of class type" + msgstr "init_priority °À­¤Ï¥¯¥é¥¹·¿¥ª¥Ö¥¸¥§¥¯¥È¤Î¥Õ¥¡¥¤¥ë¥¹¥³¡¼¥×ÄêµÁ¤Ç¤Î¤ß»È¤¨¤Þ¤¹" + +-#: cp/tree.c:1909 ++#: cp/tree.c:1917 + msgid "requested init_priority is out of range" + msgstr "Í׵ᤵ¤ì¤¿ init_priority ¤¬Èϰϳ°¤Ç¤¹" + +-#: cp/tree.c:1919 ++#: cp/tree.c:1927 + msgid "requested init_priority is reserved for internal use" + msgstr "Í׵ᤵ¤ì¤¿ init_priority ¤ÏÆâÉô¤Ç»ÈÍѤ¹¤ë¤¿¤á¤ËͽÌ󤵤ì¤Æ¤¤¤Þ¤¹" + +-#: cp/tree.c:1929 ++#: cp/tree.c:1937 + #, fuzzy, c-format + msgid "`%s' attribute is not supported on this platform" + msgstr "init_priority °À­¤Ï¤³¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" + +-#: cp/tree.c:2524 ++#: cp/tree.c:2534 + #, fuzzy, c-format + msgid "lang_* check: failed in %s, at %s:%d" + msgstr "Tree ¸¡ºº: %s ¤¬¤¢¤ë¤Ù¤­½ê¤Ë %s ¤¬¤¢¤ê¤Þ¤¹(%s Æâ, %s:%d)" +@@ -17804,283 +17875,283 @@ + msgid "invalid use of a pointer to an incomplete type in pointer arithmetic" + msgstr "¥Ý¥¤¥ó¥¿±é»»¤ÇÉÔ´°Á´·¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤Ï̵¸ú¤Ç¤¹" + +-#: cp/typeck.c:3582 ++#: cp/typeck.c:3600 + #, c-format + msgid "invalid use of '%E' to form a pointer-to-member-function. Use a qualified-id." + msgstr "" + +-#: cp/typeck.c:3588 ++#: cp/typeck.c:3606 + #, c-format + msgid "parenthesis around '%E' cannot be used to form a pointer-to-member-function" + msgstr "" + +-#: cp/typeck.c:3610 ++#: cp/typeck.c:3628 + msgid "taking address of temporary" + msgstr "°ì»þ¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥É¥ì¥¹¤ò¼è¤í¤¦¤È¤·¤Æ¤¤¤Þ¤¹" + +-#: cp/typeck.c:3845 ++#: cp/typeck.c:3863 + #, c-format + msgid "ISO C++ forbids %sing an enum" + msgstr "ISO C++ ¤Ï enum ¤Î %s ¤ò¶Ø¤¸¤Þ¤¹" + +-#: cp/typeck.c:3856 ++#: cp/typeck.c:3874 + #, fuzzy + msgid "cannot %s a pointer to incomplete type `%T'" + msgstr "²¾°ú¿ô `%s' ¤ÏÉÔ´°Á´·¿¤ò»Ø¤·¤Æ¤¤¤Þ¤¹" + +-#: cp/typeck.c:3862 ++#: cp/typeck.c:3880 + #, fuzzy + msgid "ISO C++ forbids %sing a pointer of type `%T'" + msgstr "ISO C++ ¤Ï¸º»»¤Ë `void *' ·¿¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤ò¶Ø¤¸¤Þ¤¹" + +-#: cp/typeck.c:3887 ++#: cp/typeck.c:3905 + msgid "cast to non-reference type used as lvalue" + msgstr "º¸ÊÕÃͤȤ·¤Æ»È¤ï¤ì¤ëÈ󻲾ȷ¿¤Ø¤Î¥­¥ã¥¹¥È¤Ç¤¹" + +-#: cp/typeck.c:3921 ++#: cp/typeck.c:3939 + #, fuzzy + msgid "invalid use of `--' on bool variable `%D'" + msgstr "¥á¥ó¥Ð¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Î̵¸ú¤Ê `%s' ¤Î»ÈÍÑ" + + #. ARM $3.4 +-#: cp/typeck.c:3952 ++#: cp/typeck.c:3970 + msgid "ISO C++ forbids taking address of function `::main'" + msgstr "ISO C++ ¤Ï `::main' ´Ø¿ô¤Î¥¢¥É¥ì¥¹¤ò¼è¤ë¤³¤È¤ò¶Ø¤¸¤Þ¤¹" + + #. An expression like &memfn. +-#: cp/typeck.c:4027 ++#: cp/typeck.c:4045 + msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function. Say `&%T::%D'" + msgstr "" + +-#: cp/typeck.c:4032 ++#: cp/typeck.c:4050 + #, fuzzy + msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say `&%T::%D'" + msgstr "ISO C++ ¤ÏÈóº¸ÊÕÃͼ°¤Ø¤Î¥­¥ã¥¹¥È¤Î¥¢¥É¥ì¥¹¤ò¼è¤ë¤³¤È¤ò¶Ø¤¸¤Þ¤¹" + +-#: cp/typeck.c:4060 ++#: cp/typeck.c:4078 + msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression" + msgstr "ISO C++ ¤ÏÈóº¸ÊÕÃͼ°¤Ø¤Î¥­¥ã¥¹¥È¤Î¥¢¥É¥ì¥¹¤ò¼è¤ë¤³¤È¤ò¶Ø¤¸¤Þ¤¹" + +-#: cp/typeck.c:4080 ++#: cp/typeck.c:4098 + msgid "unary `&'" + msgstr "ñ¹à¤Î `&'" + +-#: cp/typeck.c:4113 ++#: cp/typeck.c:4131 + #, fuzzy + msgid "attempt to take address of bit-field structure member `%D'" + msgstr "¹½Â¤ÂÎ¥á¥ó¥Ð `%s' ¤Î¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤Î¥¢¥É¥ì¥¹¤ò¼èÆÀ¤·¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹" + +-#: cp/typeck.c:4227 ++#: cp/typeck.c:4245 + #, fuzzy + msgid "taking address of destructor" + msgstr "°ì»þ¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥É¥ì¥¹¤ò¼è¤í¤¦¤È¤·¤Æ¤¤¤Þ¤¹" + +-#: cp/typeck.c:4240 ++#: cp/typeck.c:4258 + #, fuzzy + msgid "taking address of bound pointer-to-member expression" + msgstr " ¥Ý¥¤¥ó¥¿¤«¤é¥á¥ó¥Ð¤Ø¤ÎÊÑ´¹¤Ç" + +-#: cp/typeck.c:4248 ++#: cp/typeck.c:4266 + #, fuzzy + msgid "cannot create pointer to reference member `%D'" + msgstr "¥Ý¥¤¥ó¥¿¤ò»²¾È¤È¤·¤ÆÀë¸À¤Ç¤­¤Þ¤»¤ó" + +-#: cp/typeck.c:4311 ++#: cp/typeck.c:4329 + msgid "cannot take the address of `this', which is an rvalue expression" + msgstr "`this' ¤Ï±¦ÊÕÃͼ°¤Ç¤¢¤ê¡¢¤½¤Î¥¢¥É¥ì¥¹¤ò¼è¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó" + +-#: cp/typeck.c:4330 ++#: cp/typeck.c:4348 + msgid "address requested for `%D', which is declared `register'" + msgstr "" + +-#: cp/typeck.c:4398 ++#: cp/typeck.c:4416 + #, fuzzy, c-format + msgid "%s expression list treated as compound expression" + msgstr "½é´ü²½»Ò¥ê¥¹¥È¤ÏÊ£¹ç¼°¤È¤·¤Æ¼è¤ê°·¤ï¤ì¤Þ¤·¤¿" + +-#: cp/typeck.c:4472 ++#: cp/typeck.c:4490 + msgid "%s from type `%T' to type `%T' casts away constness" + msgstr "" + +-#: cp/typeck.c:4674 ++#: cp/typeck.c:4692 + msgid "invalid static_cast from type `%T' to type `%T'" + msgstr "" + +-#: cp/typeck.c:4714 ++#: cp/typeck.c:4732 + msgid "invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'" + msgstr "" + +-#: cp/typeck.c:4734 ++#: cp/typeck.c:4752 + msgid "reinterpret_cast from `%T' to `%T' loses precision" + msgstr "" + +-#: cp/typeck.c:4753 ++#: cp/typeck.c:4771 + msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object" + msgstr "ISO C++ ¤Ï´Ø¿ô¥Ý¥¤¥ó¥¿¤È¥ª¥Ö¥¸¥§¥¯¥È¥Ý¥¤¥ó¥¿¤Î´Ö¤Ç¤Î¥­¥ã¥¹¥È¤ò¶Ø¤¸¤Þ¤¹" + +-#: cp/typeck.c:4759 ++#: cp/typeck.c:4777 + msgid "invalid reinterpret_cast from type `%T' to type `%T'" + msgstr "" + +-#: cp/typeck.c:4787 ++#: cp/typeck.c:4805 + msgid "invalid use of const_cast with type `%T', which is not a pointer, reference, nor a pointer-to-data-member type" + msgstr "" + +-#: cp/typeck.c:4790 ++#: cp/typeck.c:4808 + msgid "invalid use of const_cast with type `%T', which is a pointer or reference to a function type" + msgstr "" + +-#: cp/typeck.c:4813 ++#: cp/typeck.c:4831 + msgid "invalid const_cast of an rvalue of type `%T' to type `%T'" + msgstr "" + +-#: cp/typeck.c:4830 ++#: cp/typeck.c:4848 + msgid "invalid const_cast from type `%T' to type `%T'" + msgstr "" + +-#: cp/typeck.c:4870 cp/typeck.c:4875 ++#: cp/typeck.c:4888 cp/typeck.c:4893 + #, fuzzy + msgid "ISO C++ forbids casting to an array type `%T'" + msgstr "ISO C ¤Ï¶¦ÍÑÂη¿¤Ø¤Î¥­¥ã¥¹¥È¤ò¶Ø¤¸¤Þ¤¹" + +-#: cp/typeck.c:4883 ++#: cp/typeck.c:4901 + #, fuzzy + msgid "invalid cast to function type `%T'" + msgstr "´Ø¿ô `%s' ¤ËÂФ·¤ÆÉÔŬÀÚ¤ÊÊݸ¥¯¥é¥¹" + +-#: cp/typeck.c:4939 ++#: cp/typeck.c:4957 + #, fuzzy + msgid "cast from `%T' to `%T' discards qualifiers from pointer target type" + msgstr "¥­¥ã¥¹¥È¤Ë¤è¤Ã¤Æ¥Ý¥¤¥ó¥¿¤¬¼¨¤¹·¿¤«¤é½¤¾þ»Ò¤¬ÀÚ¤ê¼Î¤Æ¤é¤ì¤Þ¤¹" + +-#: cp/typeck.c:4985 ++#: cp/typeck.c:5003 + #, fuzzy + msgid "cast from `%T' to `%T' increases required alignment of target type" + msgstr "¥­¥ã¥¹¥È¤Ë¤è¤Ã¤Æ¥Ý¥¤¥ó¥¿¤¬¼¨¤¹·¿¤ÎÍ׵ᥢ¥é¥¤¥ó¥á¥ó¥È¤¬Áý²Ã¤·¤Þ¤¹" + +-#: cp/typeck.c:5152 ++#: cp/typeck.c:5170 + msgid " in evaluation of `%Q(%#T, %#T)'" + msgstr "" + +-#: cp/typeck.c:5194 ++#: cp/typeck.c:5212 + msgid "ISO C++ forbids cast to non-reference type used as lvalue" + msgstr "ISO C++ ¤Ïº¸ÊÕÃͤȤ·¤Æ»È¤ï¤ì¤ëÈ󻲾ȷ¿¤Ø¤Î¥­¥ã¥¹¥È¤ò¶Ø¤¸¤Þ¤¹" + +-#: cp/typeck.c:5267 ++#: cp/typeck.c:5285 + #, fuzzy + msgid "incompatible types in assignment of `%T' to `%T'" + msgstr "%d ÈÖÌܤΰú¿ô¤¬ `%s' ¤Î·¿¤È¸ß´¹À­¤¬¤¢¤ê¤Þ¤»¤ó" + +-#: cp/typeck.c:5274 ++#: cp/typeck.c:5292 + msgid "ISO C++ forbids assignment of arrays" + msgstr "ISO C++ ¤ÏÇÛÎó¤ÎÂåÆþ¤ò¶Ø¤¸¤Þ¤¹" + +-#: cp/typeck.c:5374 ++#: cp/typeck.c:5392 + msgid " in pointer to member function conversion" + msgstr " ¥Ý¥¤¥ó¥¿¤«¤é¥á¥ó¥Ð´Ø¿ô¤Ø¤ÎÊÑ´¹¤Ç" + +-#: cp/typeck.c:5382 ++#: cp/typeck.c:5400 + msgid " in pointer to member conversion" + msgstr " ¥Ý¥¤¥ó¥¿¤«¤é¥á¥ó¥Ð¤Ø¤ÎÊÑ´¹¤Ç" + + #. This is a reinterpret cast, we choose to do nothing. +-#: cp/typeck.c:5392 cp/typeck.c:5407 ++#: cp/typeck.c:5410 cp/typeck.c:5425 + msgid "pointer to member cast via virtual base `%T'" + msgstr "" + +-#: cp/typeck.c:5410 ++#: cp/typeck.c:5428 + #, fuzzy + msgid "pointer to member conversion via virtual base `%T'" + msgstr " ¥Ý¥¤¥ó¥¿¤«¤é¥á¥ó¥Ð¤Ø¤ÎÊÑ´¹¤Ç" + +-#: cp/typeck.c:5480 ++#: cp/typeck.c:5498 + #, fuzzy + msgid "invalid conversion to type `%T' from type `%T'" + msgstr "¥ì¥·¡¼¥Ð·¿ `%s' ¤¬Ìµ¸ú¤Ç¤¹" + +-#: cp/typeck.c:5636 ++#: cp/typeck.c:5657 + msgid "passing NULL used for non-pointer %s %P of `%D'" + msgstr "" + +-#: cp/typeck.c:5639 ++#: cp/typeck.c:5660 + msgid "%s to non-pointer type `%T' from NULL" + msgstr "" + +-#: cp/typeck.c:5647 ++#: cp/typeck.c:5668 + #, fuzzy + msgid "passing `%T' for %s %P of `%D'" + msgstr "°ú¿ô %d ¸Ä¤Î `%s' ¤òÅϤ·¤Þ¤¹" + +-#: cp/typeck.c:5650 ++#: cp/typeck.c:5671 + msgid "%s to `%T' from `%T'" + msgstr "" + +-#: cp/typeck.c:5660 ++#: cp/typeck.c:5681 + msgid "passing negative value `%E' for %s %P of `%D'" + msgstr "" + +-#: cp/typeck.c:5663 ++#: cp/typeck.c:5684 + msgid "%s of negative value `%E' to `%T'" + msgstr "" + +-#: cp/typeck.c:5751 ++#: cp/typeck.c:5772 + msgid "cannot convert `%T' to `%T' for argument `%P' to `%D'" + msgstr "" + +-#: cp/typeck.c:5754 ++#: cp/typeck.c:5775 + #, fuzzy + msgid "cannot convert `%T' to `%T' in %s" + msgstr "¥Ý¥¤¥ó¥¿·¿¤ËÊÑ´¹¤Ç¤­¤Þ¤»¤ó" + +-#: cp/typeck.c:5831 cp/typeck.c:5833 ++#: cp/typeck.c:5852 cp/typeck.c:5854 + #, fuzzy + msgid "in passing argument %P of `%+D'" + msgstr "°ú¿ô %d ¸Ä¤Î `%s' ¤òÅϤ·¤Þ¤¹" + +-#: cp/typeck.c:5940 ++#: cp/typeck.c:5961 + msgid "returning reference to temporary" + msgstr "°ì»þ¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î»²¾È¤òÊÖ¤½¤¦¤È¤·¤Æ¤¤¤Þ¤¹" + +-#: cp/typeck.c:5947 ++#: cp/typeck.c:5968 + msgid "reference to non-lvalue returned" + msgstr "Èóº¸ÊÕÃͤؤλ²¾È¤¬ÊÖ¤µ¤ì¤Þ¤·¤¿" + +-#: cp/typeck.c:5959 ++#: cp/typeck.c:5980 + #, fuzzy + msgid "reference to local variable `%D' returned" + msgstr "Èóº¸ÊÕÃͤؤλ²¾È¤¬ÊÖ¤µ¤ì¤Þ¤·¤¿" + +-#: cp/typeck.c:5962 ++#: cp/typeck.c:5983 + #, fuzzy + msgid "address of local variable `%D' returned" + msgstr "Í׵ᤵ¤ì¤¿Âç°è¥ì¥¸¥¹¥¿ÊÑ¿ô `%s' ¤Î¥¢¥É¥ì¥¹" + +-#: cp/typeck.c:5992 ++#: cp/typeck.c:6013 + msgid "returning a value from a destructor" + msgstr "¥Ç¥¹¥È¥é¥¯¥¿¤«¤éÃͤòÊÖ¤½¤¦¤È¤·¤Æ¤¤¤Þ¤¹" + + #. If a return statement appears in a handler of the + #. function-try-block of a constructor, the program is ill-formed. +-#: cp/typeck.c:6000 ++#: cp/typeck.c:6021 + msgid "cannot return from a handler of a function-try-block of a constructor" + msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤Î´Ø¿ô try ¥Ö¥í¥Ã¥¯¤Î¥Ï¥ó¥É¥é¤«¤é¤Ï return ¤Ç¤­¤Þ¤»¤ó" + + #. You can't return a value from a constructor. +-#: cp/typeck.c:6003 ++#: cp/typeck.c:6024 + msgid "returning a value from a constructor" + msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤«¤éÃͤòÊÖ¤½¤¦¤È¤·¤Æ¤¤¤Þ¤¹" + +-#: cp/typeck.c:6026 ++#: cp/typeck.c:6047 + #, fuzzy + msgid "return-statement with no value, in function returning '%T'" + msgstr "Ìá¤ê·¿¤¬´Ø¿ô¤Ç¡¢`return' ¤ËÃͤ¬¤¢¤ê¤Þ¤»¤ó" + +-#: cp/typeck.c:6043 ++#: cp/typeck.c:6064 + #, fuzzy + msgid "return-statement with a value, in function returning 'void'" + msgstr "Ìá¤ê·¿¤¬ void ¤Î´Ø¿ô¤Ç¡¢`return' ¤ËÃͤ¬¤¢¤ê¤Þ¤¹" + +-#: cp/typeck.c:6065 ++#: cp/typeck.c:6086 + msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)" + msgstr "" + +@@ -18138,136 +18209,136 @@ + msgid "cannot initialize arrays using this syntax" + msgstr "¤³¤Îʸˡ¤ò»È¤Ã¤ÆÇÛÎó¤ò½é´ü²½¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó" + +-#: cp/typeck2.c:545 ++#: cp/typeck2.c:535 + msgid "initializing array with parameter list" + msgstr "ÇÛÎó¤ò²¾°ú¿ô¥ê¥¹¥È¤Ë¤è¤Ã¤Æ½é´ü²½¤·¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹" + +-#: cp/typeck2.c:600 ++#: cp/typeck2.c:590 + msgid "initializer for scalar variable requires one element" + msgstr "¥¹¥«¥é¡¼ÊÑ¿ô¤Î½é´ü²½»Ò¤Ï°ì¤Ä¤ÎÍ×ÁǤòÍ׵ᤷ¤Þ¤¹" + +-#: cp/typeck2.c:607 ++#: cp/typeck2.c:597 + #, fuzzy + msgid "braces around scalar initializer for `%T'" + msgstr "¥¹¥«¥é¡¼½é´ü²½»Ò¤¬¥Ö¥ì¡¼¥¹¤Ç°Ï¤Þ¤ì¤Æ¤¤¤Þ¤¹" + +-#: cp/typeck2.c:610 ++#: cp/typeck2.c:600 + #, fuzzy + msgid "ignoring extra initializers for `%T'" + msgstr "(`%s' ¤Î½é´ü²½¤ÏÉÔ´°Á´¤Ç¤¹)" + +-#: cp/typeck2.c:622 ++#: cp/typeck2.c:612 + #, fuzzy + msgid "variable-sized object of type `%T' may not be initialized" + msgstr "²ÄÊÑĹ¥ª¥Ö¥¸¥§¥¯¥È¤Ï½é´ü²½¤µ¤ì¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦" + +-#: cp/typeck2.c:632 ++#: cp/typeck2.c:622 + msgid "subobject of type `%T' must be initialized by constructor, not by `%E'" + msgstr "" + +-#: cp/typeck2.c:697 ++#: cp/typeck2.c:687 + msgid "aggregate has a partly bracketed initializer" + msgstr "½¸¹çÂΤ¬ÉôʬŪ¤Ë¥Ö¥é¥±¥Ã¥È¤Î½é´ü²½»Ò¤ò»ý¤Á¤Þ¤¹" + +-#: cp/typeck2.c:735 cp/typeck2.c:840 ++#: cp/typeck2.c:725 cp/typeck2.c:830 + msgid "non-trivial labeled initializers" + msgstr "¼«ÌÀ¤Ç¤Ê¤¤¥é¥Ù¥ë¤Î¤Ä¤¤¤¿½é´ü²½»Ò¤Ç¤¹" + +-#: cp/typeck2.c:752 ++#: cp/typeck2.c:742 + msgid "non-empty initializer for array of empty elements" + msgstr "Í×ÁǤΤʤ¤ÇÛÎó¤ËÂФ¹¤ë¡¢¶õ¤Ç¤Ï¤Ê¤¤½é´ü²½»Ò¤Ç¤¹" + +-#: cp/typeck2.c:806 ++#: cp/typeck2.c:796 + msgid "initializer list for object of class with virtual base classes" + msgstr "²¾ÁÛ´ðÄ쥯¥é¥¹¤ò»ý¤Ä¥¯¥é¥¹¤Î¥ª¥Ö¥¸¥§¥¯¥ÈÍѤνé´ü²½»Ò¥ê¥¹¥È¤Ç¤¹" + +-#: cp/typeck2.c:812 ++#: cp/typeck2.c:802 + msgid "initializer list for object of class with base classes" + msgstr "´ðÄ쥯¥é¥¹¤ò»ý¤Ä¥¯¥é¥¹¤Î¥ª¥Ö¥¸¥§¥¯¥ÈÍѤνé´ü²½»Ò¥ê¥¹¥È¤Ç¤¹" + +-#: cp/typeck2.c:818 ++#: cp/typeck2.c:808 + msgid "initializer list for object using virtual functions" + msgstr "²¾ÁÛ´Ø¿ô¤ò»ÈÍѤ¹¤ë¥ª¥Ö¥¸¥§¥¯¥ÈÍѤνé´ü²½»Ò¥ê¥¹¥È¤Ç¤¹" + +-#: cp/typeck2.c:880 cp/typeck2.c:896 ++#: cp/typeck2.c:870 cp/typeck2.c:886 + #, fuzzy + msgid "missing initializer for member `%D'" + msgstr "¥á¥ó¥Ð `%s' ¤ËÂФ¹¤ë̵¸ú¤Ê½é´üÃÍ" + +-#: cp/typeck2.c:885 ++#: cp/typeck2.c:875 + #, fuzzy + msgid "uninitialized const member `%D'" + msgstr "¥á¥ó¥Ð `%s' ¤ËÂФ¹¤ë̵¸ú¤Ê½é´üÃÍ" + +-#: cp/typeck2.c:887 ++#: cp/typeck2.c:877 + #, fuzzy + msgid "member `%D' with uninitialized const fields" + msgstr "̤½é´ü²½Äê¿ô¤ò ROM ¤ËÃÖ¤«¤Ê¤¤" + +-#: cp/typeck2.c:890 ++#: cp/typeck2.c:880 + #, fuzzy + msgid "member `%D' is uninitialized reference" + msgstr "²¾°ú¿ô `%s' ¤¬½é´ü²½¤µ¤ì¤Þ¤·¤¿" + +-#: cp/typeck2.c:937 ++#: cp/typeck2.c:927 + msgid "index value instead of field name in union initializer" + msgstr "union ½é´ü²½»Ò¤¬¥Õ¥£¡¼¥ë¥É̾¤Ç¤Ï¤Ê¤¯¥¤¥ó¥Ç¥Ã¥¯¥¹ÃͤˤʤäƤ¤¤Þ¤¹" + +-#: cp/typeck2.c:949 ++#: cp/typeck2.c:939 + #, fuzzy + msgid "no field `%D' in union being initialized" + msgstr "ÉÔÌÀ¤Ê¥Õ¥£¡¼¥ë¥É `%s' ¤¬½é´ü²½»Ò¤Ç»ØÄꤵ¤ì¤Þ¤·¤¿" + +-#: cp/typeck2.c:957 ++#: cp/typeck2.c:947 + #, fuzzy + msgid "union `%T' with no named members cannot be initialized" + msgstr "Ê£»¨¤Ê¥Ñ¥é¥á¥¿¤ò¤â¤Ä´Ø¿ô¤Ï inline ¤Ë¤Ç¤­¤Þ¤»¤ó" + +-#: cp/typeck2.c:993 ++#: cp/typeck2.c:983 + msgid "excess elements in aggregate initializer" + msgstr "½¸¹çÂνé´ü²½»ÒÆâ¤Ç¤½¤ÎÍ×ÁǤ¬°î¤ì¤Þ¤·¤¿" + +-#: cp/typeck2.c:1102 ++#: cp/typeck2.c:1092 + msgid "circular pointer delegation detected" + msgstr "½Û´Ä¥Ý¥¤¥ó¥¿¤ÎÂåɽ¤ò¸¡½Ð¤·¤Þ¤·¤¿" + +-#: cp/typeck2.c:1115 ++#: cp/typeck2.c:1105 + #, fuzzy + msgid "base operand of `->' has non-pointer type `%T'" + msgstr "`->' ¤Î¥Ù¡¼¥¹¥ª¥Ú¥é¥ó¥É¤¬¥Ý¥¤¥ó¥¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: cp/typeck2.c:1139 ++#: cp/typeck2.c:1129 + msgid "result of `operator->()' yields non-pointer result" + msgstr "`operator->()'¤Î·ë²Ì¤¬Èó¥Ý¥¤¥ó¥¿¤Î·ë²Ì¤ò¤â¤¿¤é¤·¤Þ¤¹" + +-#: cp/typeck2.c:1141 ++#: cp/typeck2.c:1131 + msgid "base operand of `->' is not a pointer" + msgstr "`->' ¤Î¥Ù¡¼¥¹¥ª¥Ú¥é¥ó¥É¤¬¥Ý¥¤¥ó¥¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: cp/typeck2.c:1164 ++#: cp/typeck2.c:1154 + #, fuzzy + msgid "`%E' cannot be used as a member pointer, since it is of type `%T'" + msgstr "\"%s\" ¤Ï C++ ¤Î±é»»»Ò¤Ç¤¢¤ê¡¢¥Þ¥¯¥í̾¤È¤·¤Æ»ÈÍѤ¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó" + +-#: cp/typeck2.c:1172 ++#: cp/typeck2.c:1162 + msgid "cannot apply member pointer `%E' to `%E', which is of non-aggregate type `%T'" + msgstr "" + +-#: cp/typeck2.c:1182 ++#: cp/typeck2.c:1172 + msgid "member type `%T::' incompatible with object type `%T'" + msgstr "" + +-#: cp/typeck2.c:1398 ++#: cp/typeck2.c:1388 + msgid "call to function `%D' which throws incomplete type `%#T'" + msgstr "" + +-#: cp/typeck2.c:1401 ++#: cp/typeck2.c:1391 + #, fuzzy + msgid "call to function which throws incomplete type `%#T'" + msgstr "ÉÔ´°Á´·¿¤Ø¤ÎÊÑ´¹¤Ç¤¹" + + #. XXX Not i18n clean. +-#: cp/cp-tree.h:3756 ++#: cp/cp-tree.h:3775 + #, c-format + msgid "%s is deprecated, please see the documentation for details" + msgstr "" +@@ -19849,291 +19920,228 @@ + msgid "internal error - invalid Utf8 name" + msgstr "ÆâÉô¥¨¥é¡¼ - ̵¸ú¤Ê Utf8 ̾¤Ç¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse-scan.y:880 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:949 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1290 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1351 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1555 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1777 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1786 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1797 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1808 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1820 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1835 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1852 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1854 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1935 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2106 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2168 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2320 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2332 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2339 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2346 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2357 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2359 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2397 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2399 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2401 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2422 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2424 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2426 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2442 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2444 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2465 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2467 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2469 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2497 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2499 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2501 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2503 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2521 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2523 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2534 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2545 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2556 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2567 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2578 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2591 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2595 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2597 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2610 ++#: ../../gcc/java/parse-scan.y:880 ../../gcc/java/parse.y:949 ++#: ../../gcc/java/parse.y:1290 ../../gcc/java/parse.y:1351 ++#: ../../gcc/java/parse.y:1555 ../../gcc/java/parse.y:1777 ++#: ../../gcc/java/parse.y:1786 ../../gcc/java/parse.y:1797 ++#: ../../gcc/java/parse.y:1808 ../../gcc/java/parse.y:1820 ++#: ../../gcc/java/parse.y:1835 ../../gcc/java/parse.y:1852 ++#: ../../gcc/java/parse.y:1854 ../../gcc/java/parse.y:1935 ++#: ../../gcc/java/parse.y:2106 ../../gcc/java/parse.y:2168 ++#: ../../gcc/java/parse.y:2320 ../../gcc/java/parse.y:2332 ++#: ../../gcc/java/parse.y:2339 ../../gcc/java/parse.y:2346 ++#: ../../gcc/java/parse.y:2357 ../../gcc/java/parse.y:2359 ++#: ../../gcc/java/parse.y:2397 ../../gcc/java/parse.y:2399 ++#: ../../gcc/java/parse.y:2401 ../../gcc/java/parse.y:2422 ++#: ../../gcc/java/parse.y:2424 ../../gcc/java/parse.y:2426 ++#: ../../gcc/java/parse.y:2442 ../../gcc/java/parse.y:2444 ++#: ../../gcc/java/parse.y:2465 ../../gcc/java/parse.y:2467 ++#: ../../gcc/java/parse.y:2469 ../../gcc/java/parse.y:2497 ++#: ../../gcc/java/parse.y:2499 ../../gcc/java/parse.y:2501 ++#: ../../gcc/java/parse.y:2503 ../../gcc/java/parse.y:2521 ++#: ../../gcc/java/parse.y:2523 ../../gcc/java/parse.y:2534 ++#: ../../gcc/java/parse.y:2545 ../../gcc/java/parse.y:2556 ++#: ../../gcc/java/parse.y:2567 ../../gcc/java/parse.y:2578 ++#: ../../gcc/java/parse.y:2591 ../../gcc/java/parse.y:2595 ++#: ../../gcc/java/parse.y:2597 ../../gcc/java/parse.y:2610 + msgid "Missing term" + msgstr "¹à¤ò·ç¤¤¤Æ¤¤¤Þ¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse-scan.y:882 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:721 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:759 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:784 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:970 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1325 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1531 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1533 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1762 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1788 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1799 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1810 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1822 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1837 ++#: ../../gcc/java/parse-scan.y:882 ../../gcc/java/parse.y:721 ++#: ../../gcc/java/parse.y:759 ../../gcc/java/parse.y:784 ++#: ../../gcc/java/parse.y:970 ../../gcc/java/parse.y:1325 ++#: ../../gcc/java/parse.y:1531 ../../gcc/java/parse.y:1533 ++#: ../../gcc/java/parse.y:1762 ../../gcc/java/parse.y:1788 ++#: ../../gcc/java/parse.y:1799 ../../gcc/java/parse.y:1810 ++#: ../../gcc/java/parse.y:1822 ../../gcc/java/parse.y:1837 + msgid "';' expected" + msgstr "';' ¤¬É¬ÍפǤ¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:719 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:757 ++#: ../../gcc/java/parse.y:719 ../../gcc/java/parse.y:757 + msgid "Missing name" + msgstr "̾Á°¤ò·ç¤¤¤Æ¤¤¤Þ¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:782 ++#: ../../gcc/java/parse.y:782 + msgid "'*' expected" + msgstr "'*' ¤¬É¬ÍפǤ¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:796 ++#: ../../gcc/java/parse.y:796 + msgid "Class or interface declaration expected" + msgstr "¥¯¥é¥¹¤ä¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹Àë¸À¤¬É¬ÍפǤ¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:833 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:835 ++#: ../../gcc/java/parse.y:833 ../../gcc/java/parse.y:835 + msgid "Missing class name" + msgstr "¥¯¥é¥¹Ì¾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:838 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:842 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:850 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1010 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1271 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1273 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1597 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1848 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1880 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1942 ++#: ../../gcc/java/parse.y:838 ../../gcc/java/parse.y:842 ++#: ../../gcc/java/parse.y:850 ../../gcc/java/parse.y:1010 ++#: ../../gcc/java/parse.y:1271 ../../gcc/java/parse.y:1273 ++#: ../../gcc/java/parse.y:1597 ../../gcc/java/parse.y:1848 ++#: ../../gcc/java/parse.y:1880 ../../gcc/java/parse.y:1942 + msgid "'{' expected" + msgstr "'{' ¤¬É¬ÍפǤ¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:852 ++#: ../../gcc/java/parse.y:852 + msgid "Missing super class name" + msgstr "¥¹¡¼¥Ñ¡¼¥¯¥é¥¹Ì¾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:862 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:878 ++#: ../../gcc/java/parse.y:862 ../../gcc/java/parse.y:878 + msgid "Missing interface name" + msgstr "¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹Ì¾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:964 ++#: ../../gcc/java/parse.y:964 + msgid "Missing variable initializer" + msgstr "ÊÑ¿ô½é´ü²½»Ò¤ò·ç¤¤¤Æ¤¤¤Þ¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:981 ++#: ../../gcc/java/parse.y:981 + msgid "Invalid declaration" + msgstr "̵¸ú¤ÊÀë¸À¤Ç¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:984 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1069 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2143 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2165 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2169 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2204 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2281 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2291 ++#: ../../gcc/java/parse.y:984 ../../gcc/java/parse.y:1069 ++#: ../../gcc/java/parse.y:2143 ../../gcc/java/parse.y:2165 ++#: ../../gcc/java/parse.y:2169 ../../gcc/java/parse.y:2204 ++#: ../../gcc/java/parse.y:2281 ../../gcc/java/parse.y:2291 + msgid "']' expected" + msgstr "']' ¤¬É¬ÍפǤ¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:988 ++#: ../../gcc/java/parse.y:988 + msgid "Unbalanced ']'" + msgstr "Âбþ¤Î¤Ê¤¤ ']' ¤Ç¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1024 ++#: ../../gcc/java/parse.y:1024 + msgid "Invalid method declaration, method name required" + msgstr "̵¸ú¤Ê¥á¥½¥Ã¥ÉÀë¸À¤Ç¤¹¡£¥á¥½¥Ã¥É̾¤¬É¬ÍפǤ¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1029 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1034 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1039 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2026 ++#: ../../gcc/java/parse.y:1029 ../../gcc/java/parse.y:1034 ++#: ../../gcc/java/parse.y:1039 ../../gcc/java/parse.y:2026 + msgid "Identifier expected" + msgstr "¼±Ê̻Ҥ¬É¬ÍפǤ¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1044 ++#: ../../gcc/java/parse.y:1044 + msgid "Invalid method declaration, return type required" + msgstr "̵¸ú¤Ê¥á¥½¥Ã¥ÉÀë¸À¤Ç¤¹¡£¥á¥½¥Ã¥É̾¤¬É¬ÍפǤ¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1067 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1511 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1518 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1527 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1529 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1557 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1665 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1971 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2024 ++#: ../../gcc/java/parse.y:1067 ../../gcc/java/parse.y:1511 ++#: ../../gcc/java/parse.y:1518 ../../gcc/java/parse.y:1527 ++#: ../../gcc/java/parse.y:1529 ../../gcc/java/parse.y:1557 ++#: ../../gcc/java/parse.y:1665 ../../gcc/java/parse.y:1971 ++#: ../../gcc/java/parse.y:2024 + msgid "')' expected" + msgstr "')' ¤¬É¬ÍפǤ¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1083 ++#: ../../gcc/java/parse.y:1083 + msgid "Missing formal parameter term" + msgstr "Àµ¼°¤Ê²¾°ú¿ô¹à¤ò·ç¤¤¤Æ¤¤¤Þ¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1098 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1103 ++#: ../../gcc/java/parse.y:1098 ../../gcc/java/parse.y:1103 + msgid "Missing identifier" + msgstr "¼±Ê̻Ҥò·ç¤¤¤Æ¤¤¤Þ¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1123 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1132 ++#: ../../gcc/java/parse.y:1123 ../../gcc/java/parse.y:1132 + msgid "Missing class type term" + msgstr "¥¯¥é¥¹¥¿¥¤¥×¹à¤ò·ç¤¤¤Æ¤¤¤Þ¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1288 ++#: ../../gcc/java/parse.y:1288 + msgid "Invalid interface type" + msgstr "¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹·¿¤¬Ìµ¸ú¤Ç¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1475 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1644 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1646 ++#: ../../gcc/java/parse.y:1475 ../../gcc/java/parse.y:1644 ++#: ../../gcc/java/parse.y:1646 + msgid "':' expected" + msgstr "':' ¤¬É¬ÍפǤ¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1497 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1502 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1507 ++#: ../../gcc/java/parse.y:1497 ../../gcc/java/parse.y:1502 ++#: ../../gcc/java/parse.y:1507 + msgid "Invalid expression statement" + msgstr "¼°Ê¸¤¬Ìµ¸ú¤Ç¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1525 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1553 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1593 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1661 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1729 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1850 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1928 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2018 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2020 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2028 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2264 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2266 ++#: ../../gcc/java/parse.y:1525 ../../gcc/java/parse.y:1553 ++#: ../../gcc/java/parse.y:1593 ../../gcc/java/parse.y:1661 ++#: ../../gcc/java/parse.y:1729 ../../gcc/java/parse.y:1850 ++#: ../../gcc/java/parse.y:1928 ../../gcc/java/parse.y:2018 ++#: ../../gcc/java/parse.y:2020 ../../gcc/java/parse.y:2028 ++#: ../../gcc/java/parse.y:2264 ../../gcc/java/parse.y:2266 + msgid "'(' expected" + msgstr "'(' ¤¬É¬ÍפǤ¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1595 ++#: ../../gcc/java/parse.y:1595 + msgid "Missing term or ')'" + msgstr "¹à¤Þ¤¿¤Ï ')' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1642 ++#: ../../gcc/java/parse.y:1642 + msgid "Missing or invalid constant expression" + msgstr "Äê¿ô¼°¤¬·ç¤±¤Æ¤¤¤ë¤«Ìµ¸ú¤Ç¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1663 ++#: ../../gcc/java/parse.y:1663 + msgid "Missing term and ')' expected" + msgstr "¹à¤Èɬ¿Ü¤Î ')' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1702 ++#: ../../gcc/java/parse.y:1702 + msgid "Invalid control expression" + msgstr "̵¸ú¤ÊÀ©¸æ¼°¤Ç¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1704 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1706 ++#: ../../gcc/java/parse.y:1704 ../../gcc/java/parse.y:1706 + msgid "Invalid update expression" + msgstr "̵¸ú¤Ê¹¹¿·¼°¤Ç¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1731 ++#: ../../gcc/java/parse.y:1731 + msgid "Invalid init statement" + msgstr "̵¸ú¤Ê½é´ü²½¼°¤Ç¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1931 ++#: ../../gcc/java/parse.y:1931 + msgid "Missing term or ')' expected" + msgstr "¹à¤Þ¤¿¤Ïɬ¿Ü¤Î ')' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1973 ++#: ../../gcc/java/parse.y:1973 + msgid "'class' or 'this' expected" + msgstr "'class' ¤Þ¤¿¤Ï 'this' ¤¬É¬ÍפǤ¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1975 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1977 ++#: ../../gcc/java/parse.y:1975 ../../gcc/java/parse.y:1977 + msgid "'class' expected" + msgstr "'class' ¤¬É¬ÍפǤ¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2022 ++#: ../../gcc/java/parse.y:2022 + msgid "')' or term expected" + msgstr "')' ¤Þ¤¿¤Ï¹à¤¬É¬ÍפǤ¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2141 ++#: ../../gcc/java/parse.y:2141 + msgid "'[' expected" + msgstr "'[' ¤¬É¬ÍפǤ¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2219 ++#: ../../gcc/java/parse.y:2219 + msgid "Field expected" + msgstr "¥Õ¥£¡¼¥ë¥É¤¬É¬ÍפǤ¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2276 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2286 ++#: ../../gcc/java/parse.y:2276 ../../gcc/java/parse.y:2286 + msgid "Missing term and ']' expected" + msgstr "¹à¤Èɬ¿Ü¤Î ']' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2390 ++#: ../../gcc/java/parse.y:2390 + msgid "']' expected, invalid type expression" + msgstr "']' ¤¬É¬Íפǡ¢Ìµ¸ú¤Ê·¿É½¸½¤Ç¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2393 ++#: ../../gcc/java/parse.y:2393 + msgid "Invalid type expression" + msgstr "̵¸ú¤Ê·¿É½¸½¤Ç¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2505 ++#: ../../gcc/java/parse.y:2505 + msgid "Invalid reference type" + msgstr "̵¸ú¤Ê»²¾È·¿¤Ç¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2977 ++#: ../../gcc/java/parse.y:2977 + msgid "Constructor invocation must be first thing in a constructor" + msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤Îµ¯Æ°¤Ï¥³¥ó¥¹¥È¥é¥¯¥¿Æâ¤ÇºÇ½é¤Ë¹Ô¤Ê¤ï¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2979 ++#: ../../gcc/java/parse.y:2979 + msgid "Only constructors can invoke constructors" + msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤À¤±¤¬¥³¥ó¥¹¥È¥é¥¯¥¿¤òµ¯Æ°¤Ç¤­¤Þ¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2987 ++#: ../../gcc/java/parse.y:2987 + #, c-format + msgid ": `%s' JDK1.1(TM) feature" + msgstr ": `%s' ¤Ï JDK1.1(TM) ¤Îµ¡Ç½¤Ç¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:3046 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:3048 ++#: ../../gcc/java/parse.y:3046 ../../gcc/java/parse.y:3048 + #, c-format + msgid "" + "%s.\n" +@@ -20142,32 +20150,32 @@ + "%s.\n" + "%s" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:6909 ++#: ../../gcc/java/parse.y:6909 + #, c-format + msgid "malformed .zip archive in CLASSPATH: %s" + msgstr "CLASSPATH Æâ¤ËÊÑ¤Ê .zip ¥¢¡¼¥«¥¤¥Ö¤¬¤¢¤ê¤Þ¤¹: %s" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:6980 ++#: ../../gcc/java/parse.y:6980 + #, fuzzy, c-format + msgid "Can't find default package `%s'. Check the CLASSPATH environment variable and the access to the archives" + msgstr "¥Ç¥Õ¥©¥ë¥È¥Ñ¥Ã¥±¡¼¥¸ `%s' ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£CLASSPATH ´Ä¶­ÊÑ¿ô¤È¥¢¡¼¥«¥¤¥Ö¤Ø¤Î¥¢¥¯¥»¥¹¤ò³Î¤«¤á¤Æ¤¯¤À¤µ¤¤¡£" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12193 ++#: ../../gcc/java/parse.y:12193 + #, c-format + msgid "missing static field `%s'" + msgstr "static ¥Õ¥£¡¼¥ë¥É `%s' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12198 ++#: ../../gcc/java/parse.y:12198 + #, c-format + msgid "not a static field `%s'" + msgstr "static ¥Õ¥£¡¼¥ë¥É `%s' ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12241 ++#: ../../gcc/java/parse.y:12241 + #, c-format + msgid "No case for %s" + msgstr "%s ¤Î¤¿¤á¤Î case ¤¬¤¢¤ê¤Þ¤»¤ó" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:13173 ++#: ../../gcc/java/parse.y:13173 + #, c-format + msgid "unregistered operator %s" + msgstr "ÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤±é»»»Ò %s ¤Ç¤¹" +@@ -20511,1875 +20519,1531 @@ + msgid "[super ...] must appear in a method context" + msgstr "[super ...] ¤Ï¥á¥½¥Ã¥É¥³¥ó¥Æ¥­¥¹¥È¤Ë¸½¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó" + +-#: objc/objc-parse.y:2701 ++#: objc/objc-parse.y:2700 + msgid "`@end' must appear in an implementation context" + msgstr "`@end' ¤Ï¼ÂÁõ¥³¥ó¥Æ¥¯¥¹¥È¤Ë¸½¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó" + +-#: objc/objc-parse.y:2914 ++#: objc/objc-parse.y:2913 + msgid "method definition not in class context" + msgstr "¥á¥½¥Ã¥ÉÄêµÁ¤¬¥¯¥é¥¹¥³¥ó¥Æ¥­¥¹¥ÈÆâ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:23 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:21 + #, fuzzy + msgid "Display this information" + msgstr " --help ¤³¤Î¾ðÊó¤òɽ¼¨¤¹¤ë\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:29 +-msgid "--param =\tSet paramter to value. See below for a complete list of parameters" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:27 ++msgid "--param =\tSet parameter to value. See below for a complete list of parameters" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:38 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:36 + msgid "-A=\tAssert the to . Putting '-' before disables the to " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:41 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:39 + #, fuzzy + msgid "Do not discard comments" + msgstr "½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤¤¥³¥á¥ó¥È" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:44 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:42 + #, fuzzy + msgid "Do not discard comments in macro expansions" + msgstr "¥Ó¥Ã¥È±é»»¤Ç¤Î¨ÃÍ¥µ¥¤¥º¤òÄ´Ä䤷¤Ê¤¤" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:47 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:45 + msgid "-D[=]\tDefine a with as its value. If just is given, is taken to be 1" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:53 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:51 + #, fuzzy + msgid "-G\tPut global and static data smaller than bytes into a special section (on some targets)" + msgstr "" + " -G ¥Ð¥¤¥È¤è¤ê¾®¤µ¤ÊÂç°è¤ª¤è¤ÓÀÅŪ¥Ç¡¼¥¿¤ò\n" + " ÆÃÊ̤ʥ»¥¯¥·¥ç¥ó¤ËÃÖ¤¯ (¥¿¡¼¥²¥Ã¥È¼¡Âè)\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:56 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:54 + #, fuzzy + msgid "Print the name of header files as they are used" + msgstr "¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥×¥í¥°¥é¥àñ°Ì¤Î̾Á°¤òɽ¼¨¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:65 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:57 ++msgid "-I \tAdd to the end of the main include path. -I- gives more include path control; see info documentation" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:60 ++#, fuzzy ++msgid "Generate make dependencies" ++msgstr "ưŪ°Í¸´Ø·¸¡£\n" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:63 + #, fuzzy + msgid "Generate make dependencies and compile" + msgstr "¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¤Î¥³¡¼¥É¤òÀ¸À®" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:74 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:66 ++msgid "-MF \tWrite dependency output to the given file" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:69 + msgid "Treat missing header files as generated files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:80 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:72 ++msgid "Like -M but ignore system header files" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:75 + msgid "Like -MD but ignore system header files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:89 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:78 ++#, fuzzy ++msgid "Generate phony targets for all headers" ++msgstr "Intel as ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:81 + msgid "-MQ \tAdd a MAKE-quoted target" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:95 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:84 ++msgid "-MT \tAdd an unquoted target" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:87 + #, fuzzy + msgid "-O\tSet optimization level to " + msgstr " -O[number] ºÇŬ²½¥ì¥Ù¥ë¤ò [number] ¤ËÀßÄꤹ¤ë\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:98 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:90 + #, fuzzy + msgid "Optimize for space rather than speed" + msgstr " -Os ®ÅÙ¤è¤ê¤â¥µ¥¤¥º¤ÎºÇŬ²½¤ò¹Ô¤Ê¤¦\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:101 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:93 + #, fuzzy + msgid "Do not generate #line directives" + msgstr ".size µ¿»÷Ì¿Îá¤òÀ¸À®¤·¤Ê¤¤" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:104 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:96 + msgid "-U\tUndefine " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:107 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:99 + msgid "This switch is deprecated; use -Wextra instead" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:113 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:105 + msgid "Warn about returning structures, unions or arrays" + msgstr "¹½Â¤ÂΡ¢¶¦ÍÑÂÎËô¤ÏÇÛÎó¤òÊÖ¤¹¤â¤Î¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:119 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:108 ++msgid "Enable most warning messages" ++msgstr "Ëؤó¤É¤Î·Ù¹ð¥á¥Ã¥»¡¼¥¸¤òÍ­¸ú¤Ë¤¹¤ë" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:111 + msgid "Warn about casting functions to incompatible types" + msgstr "·¿¤Ë¸ß´¹À­¤Î¤Ê¤¤´Ø¿ô¤Î¥­¥ã¥¹¥È¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:122 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:114 + msgid "Warn about pointer casts which increase alignment" + msgstr "¥Ý¥¤¥ó¥¿¤Î¥­¥ã¥¹¥È¤Ç¥¢¥é¥¤¥ó¥á¥ó¥È¤¬Áý²Ã¤¹¤ë¤â¤Î¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:125 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:117 + msgid "Warn about casts which discard qualifiers" + msgstr "½¤¾þ»Ò¤ò¼è¤êµî¤ë¥­¥ã¥¹¥È¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:128 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:120 + #, fuzzy + msgid "Warn about subscripts whose type is \"char\"" + msgstr "ź»ú¤Î·¿¤¬ 'char' ¤Ç¤¢¤ì¤Ð·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:137 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:123 ++msgid "Warn about possibly nested block comments, and C++ comments spanning more than one physical line" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:126 ++msgid "Synonym for -Wcomment" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:129 + msgid "Warn about possibly confusing type conversions" + msgstr "·¿ÊÑ´¹¤¬º®Í𤹤ë²ÄǽÀ­¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:140 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:132 + #, fuzzy + msgid "Warn when all constructors and destructors are private" + msgstr "Á´¤Æ¤Î¥³¥ó¥¹¥È¥é¥¯¥¿/¥Ç¥¹¥È¥é¥¯¥¿¤¬ private ¤Ç¤â·Ù¹ð¤·¤Ê¤¤" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:143 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:135 + #, fuzzy + msgid "Warn when a declaration is found after a statement" + msgstr "Àë¸À¤¬·¿¤ò»ØÄꤷ¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:146 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:138 + #, fuzzy +-msgid "Warn if deprecated class, method, or field is used" +-msgstr "¿ä¾©¤µ¤ì¤Ê¤¤¶õʸ¤¬¸«¤Ä¤«¤ì¤Ð·Ù¹ð¤¹¤ë" ++msgid "Warn about deprecated compiler features" ++msgstr "¿ä¾©¤µ¤ì¤Ê¤¤¥³¥ó¥Ñ¥¤¥é¤Îµ¡Ç½¤ò¹ðÃΤ·¤Ê¤¤" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:149 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:141 + msgid "Warn about uses of __attribute__((deprecated)) declarations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:152 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:144 + msgid "Warn when an optimization pass is disabled" + msgstr "ºÇŬ²½²áÄø¤¬Ìµ¸ú²½¤µ¤ì¤¿¾ì¹ç¤Ë·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:155 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:147 + #, fuzzy + msgid "Warn about compile-time integer division by zero" + msgstr "À°¿ô¤Î¥¼¥í½ü»»¤ò¥È¥é¥Ã¥×¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:158 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:150 + msgid "Warn about violations of Effective C++ style rules" + msgstr "Effective C++ ¼°¤Î»Ø¿Ë¤«¤é¤Ï¤º¤ì¤ë¤â¤Î¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:161 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:153 + msgid "Warn about stray tokens after #elif and #endif" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:164 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:156 + msgid "Treat all warnings as errors" + msgstr "Á´¤Æ¤Î·Ù¹ð¤ò¥¨¥é¡¼¤È¤·¤Æ¼è¤ê°·¤¦" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:167 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:159 + #, fuzzy + msgid "Make implicit function declarations an error" + msgstr "°ÅÌۤδؿôÀë¸À¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:170 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:162 + msgid "Print extra (possibly unwanted) warnings" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:173 +-msgid "Warn if deprecated empty statements are found" +-msgstr "¿ä¾©¤µ¤ì¤Ê¤¤¶õʸ¤¬¸«¤Ä¤«¤ì¤Ð·Ù¹ð¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:176 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:165 + #, fuzzy + msgid "Warn if testing floating point numbers for equality" + msgstr "ÉâÆ°¾®¿ôÅÀ¿ô¤ÎÅù²Á¥Æ¥¹¥È¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:179 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:168 + #, fuzzy + msgid "Warn about printf/scanf/strftime/strfmon format string anomalies" + msgstr "printf/scanf/strftime/strfmon ·Á¼°¤ÎÊѧŪ¤Ê¤â¤Î¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:182 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:171 + #, fuzzy + msgid "Warn if passing too many arguments to a function for its format string" + msgstr "`va_start' ¤ËÂФ¹¤ë°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:185 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:174 + #, fuzzy + msgid "Warn about format strings that are not literals" + msgstr "Ê£¿ôʸ»ú¥ê¥Æ¥é¥ë¤Î»ÈÍѤ˴ؤ·¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:188 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:177 + msgid "Warn about possible security problems with format functions" + msgstr "¥»¥­¥å¥ê¥Æ¥£Åª¤ÊÌäÂê¤È¤Ê¤ê¤¦¤ë format ´Ø¿ô¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:191 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:180 + #, fuzzy + msgid "Warn about strftime formats yielding 2-digit years" + msgstr "strftime ·Á¼°¤¬Æó·å¤Çǯ¤òɽ¤·¤Æ¤¤¤ë»þ¤Î·Ù¹ð¤·¤Ê¤¤" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:200 +-#, fuzzy +-msgid "Enable warnings about inter-procedural problems" +-msgstr "inter-procedural ÌäÂê¤Ë¤Ä¤¤¤Æ¤Î·Ù¹ðɽ¼¨¤òɽ¼¨¤·¤Ê¤¤" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:206 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:192 + msgid "Warn about implicit function declarations" + msgstr "°ÅÌۤδؿôÀë¸À¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:209 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:195 + msgid "Warn when a declaration does not specify a type" + msgstr "Àë¸À¤¬·¿¤ò»ØÄꤷ¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:215 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:198 ++msgid "Deprecated. This switch has no effect." ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:201 + msgid "Warn about variables which are initialized to themselves." + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:218 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:204 + msgid "Warn when an inlined function cannot be inlined" + msgstr "¥¤¥ó¥é¥¤¥ó´Ø¿ô¤ò¥¤¥ó¥é¥¤¥ó²½¤Ç¤­¤Ê¤¤¾ì¹ç¤Ë·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:221 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:207 + #, fuzzy + msgid "Warn about invalid uses of the \"offsetof\" macro" + msgstr "#import ¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤ÎÍøÍѤ˴ؤ·¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:224 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:210 + msgid "Warn about PCH files that are found but not used" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:227 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:213 + #, fuzzy + msgid "-Wlarger-than-\tWarn if an object is larger than bytes" + msgstr " -Wlarger-than- ¥ª¥Ö¥¸¥§¥¯¥È¤¬ ¥Ð¥¤¥È¤è¤êÂ礭¤±¤ì¤Ð·Ù¹ð¤¹¤ë\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:230 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:216 + #, fuzzy + msgid "Do not warn about using \"long long\" when -pedantic" + msgstr "-pedantic »ØÄê»þ¤Ç¤â 'long long' ¤Î»ÈÍѤˤĤ¤¤Æ¤Ï·Ù¹ð¤·¤Ê¤¤" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:233 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:219 + #, fuzzy + msgid "Warn about suspicious declarations of \"main\"" + msgstr "µ¿¤ï¤·¤¤ main ¤ÎÀë¸À¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:236 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:222 + #, fuzzy + msgid "Warn about possibly missing braces around initializers" + msgstr "½é´ü²½»Ò¤Î¼þ¤ê¤Ë¥Ö¥ì¡¼¥¹¤ò·ç¤¤¤Æ¤¤¤ëÍͤǤ¢¤ì¤Ð·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:239 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:225 + #, fuzzy + msgid "Warn about global functions without previous declarations" + msgstr "»öÁ°¤ÎÀë¸À¤Ê¤·¤ÎÂç°è´Ø¿ô¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:242 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:228 + msgid "Warn about functions which might be candidates for format attributes" + msgstr "format °À­¤ò¤Î¸õÊä¤È¤Ê¤ê¤½¤¦¤Ê´Ø¿ô¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:245 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:231 + #, fuzzy + msgid "Warn about functions which might be candidates for __attribute__((noreturn))" + msgstr "noreturn °À­¤Î¸õÊä¤È¤Ê¤ê¤½¤¦¤Ê´Ø¿ô¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:248 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:234 + #, fuzzy + msgid "Warn about global functions without prototypes" + msgstr "¥×¥í¥È¥¿¥¤¥×¤Ê¤·¤ÎÂç°è´Ø¿ô¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:251 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:237 + #, fuzzy + msgid "Warn about use of multi-character character constants" + msgstr "Ê£¿ôʸ»ú¥ê¥Æ¥é¥ë¤Î»ÈÍѤ˴ؤ·¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:254 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:240 + #, fuzzy + msgid "Warn about \"extern\" declarations not at file scope" + msgstr "¥Õ¥¡¥¤¥ë¥¹¥³¡¼¥×¥ì¥Ù¥ë¤Ç¤Ê¤¤ extern ¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:257 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:243 + #, fuzzy + msgid "Warn when non-templatized friend functions are declared within a template" + msgstr "template Æâ¤ÇÈó template ¤Î friend ´Ø¿ô¤¬Àë¸À¤µ¤ì¤¿¾ì¹ç¤Ç¤â·Ù¹ð¤·¤Ê¤¤" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:260 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:246 + #, fuzzy + msgid "Warn about non-virtual destructors" + msgstr "Èó²¾Áۥǥ¹¥È¥é¥¯¥¿¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:266 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:252 + #, fuzzy + msgid "Warn if a C-style cast is used in a program" + msgstr "C ¼°¤Î¥­¥ã¥¹¥È¤¬¥×¥í¥°¥é¥à¤Ç»È¤ï¤ì¤¿¤é·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:269 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:255 + #, fuzzy + msgid "Warn if an old-style parameter definition is used" + msgstr "´Ø¿ô¤Î²¾°ú¿ô¤¬»È¤ï¤ì¤Ê¤¤¤È¤­¤Ë·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:272 +-msgid "Warn if .class files are out of date" +-msgstr ".class ¥Õ¥¡¥¤¥ë¤¬¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤è¤ê¸Å¤±¤ì¤Ð·Ù¹ð¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:275 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:258 + msgid "Warn about overloaded virtual function names" + msgstr "¥ª¡¼¥Ð¡¼¥í¡¼¥É¤µ¤ì¤¿²¾ÁÛ´Ø¿ô̾¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:278 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:261 + msgid "Warn when the packed attribute has no effect on struct layout" + msgstr "packed °À­¤¬¹½Â¤ÂÎÇÛÃ֤˱ƶÁ¤·¤Ê¤¤¾ì¹ç¤Ë·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:281 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:264 + #, fuzzy + msgid "Warn when padding is required to align structure members" + msgstr "¹½Â¤ÂÎ¥á¥ó¥Ð¤Î¥¢¥é¥¤¥ó¤Ç¡¢¥Ñ¥Ç¥£¥ó¥°¤òÍפ¹¤ë¾ì¹ç¤Ë·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:284 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:267 + #, fuzzy + msgid "Warn about possibly missing parentheses" + msgstr "³ç¸Ì¤ò·ç¤¤¤Æ¤¤¤ë²ÄǽÀ­¤¬¤¢¤ë¾ì¹ç¤Ë·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:287 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:270 + #, fuzzy + msgid "Warn when converting the type of pointers to member functions" + msgstr "¥Ý¥¤¥ó¥¿¤«¤é¥á¥ó¥Ð´Ø¿ô¤Ø¤Î·¿ÊÑ´¹¤Î¾ì¹ç¤Ç¤â·Ù¹ð¤·¤Ê¤¤" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:290 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:273 + msgid "Warn about function pointer arithmetic" + msgstr "´Ø¿ô¥Ý¥¤¥ó¥¿¤Î·×»»¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:293 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:276 + #, fuzzy + msgid "Warn if inherited methods are unimplemented" + msgstr "ÇÉÀ¸¥á¥½¥Ã¥É¤¬Ì¤¼ÂÁõ¤Î¾ì¹ç¤Ç¤â·Ù¹ð¤·¤Ê¤¤" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:296 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:279 + msgid "Warn about multiple declarations of the same object" + msgstr "Ʊ°ì¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀë¸À¤¬Ê£¿ô¤¢¤ì¤Ð·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:299 +-msgid "Warn if modifiers are specified when not necessary" +-msgstr "»ØÄꤵ¤ì¤¿½¤¾þ»Ò¤¬ÉÔÍפʤâ¤Î¤Ç¤¢¤ì¤Ð·Ù¹ð¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:302 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:282 + msgid "Warn when the compiler reorders code" + msgstr "¥³¥ó¥Ñ¥¤¥é¤¬¥³¡¼¥É¤òʤÙÂؤ¨¤ë¤È¤­¤Ë·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:305 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:285 + msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:308 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:288 + msgid "Warn if a selector has multiple methods" + msgstr "¥»¥ì¥¯¥¿¤¬Ê£¿ô¤Î¥á¥½¥Ã¥É¤ò»ý¤Ã¤Æ¤¤¤ì¤Ð·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:311 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:291 + msgid "Warn about possible violations of sequence point rules" + msgstr "ÉûºîÍÑ´°Î»ÅÀµ¬Â§¤òÇˤë²ÄǽÀ­¤¬¤¢¤ë¾ì¹ç¤Ë·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:314 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:294 + msgid "Warn when one local variable shadows another" + msgstr "¤¢¤ë¥í¡¼¥«¥ëÊÑ¿ô¤¬Â¾¤Î¤â¤Î¤òʤ¤¤±£¤¹¤È¤­¤Ë·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:317 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:297 + #, fuzzy + msgid "Warn about signed-unsigned comparisons" + msgstr "Éä¹çÉÕ¤­/Éä¹ç̵¤·¤ÎÈæ³Ó¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:320 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:300 + msgid "Warn when overload promotes from unsigned to signed" + msgstr "¥ª¡¼¥Ð¡¼¥í¡¼¥É¤¬Éä¹ç̵¤·¤«¤éÉä¹çÉÕ¤­¤Ë³Ê¾å¤²¤È¤Ê¤ë¾ì¹ç¤Ë·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:323 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:303 + #, fuzzy + msgid "Warn about code which might break strict aliasing rules" + msgstr "format °À­¤ò¤Î¸õÊä¤È¤Ê¤ê¤½¤¦¤Ê´Ø¿ô¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:326 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:306 + #, fuzzy + msgid "Warn about unprototyped function declarations" + msgstr "¥×¥í¥È¥¿¥¤¥×¤µ¤ì¤Æ¤¤¤Ê¤¤´Ø¿ôÀë¸À¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:329 +-msgid "Warn about constructs with surprising meanings" +-msgstr "²ò¼á¤Ë¸í²ò¤ò¾·¤¯¤â¤Î¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:332 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:309 + #, fuzzy + msgid "Warn about enumerated switches, with no default, missing a case" + msgstr "ÎóµóÄê¿ô¤Î switch ¤Ç case »ØÄ꤬·ç¤±¤Æ¤¤¤ë¤â¤Î¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:335 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:312 + #, fuzzy + msgid "Warn about enumerated switches missing a \"default:\" statement" + msgstr "ÎóµóÄê¿ô¤Î switch ¤Ç case »ØÄ꤬·ç¤±¤Æ¤¤¤ë¤â¤Î¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:338 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:315 + #, fuzzy + msgid "Warn about all enumerated switches missing a specific case" + msgstr "ÎóµóÄê¿ô¤Î switch ¤Ç case »ØÄ꤬·ç¤±¤Æ¤¤¤ë¤â¤Î¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:341 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:318 + #, fuzzy + msgid "Warn when synthesis behavior differs from Cfront" + msgstr "¹çÀ®¤Î¿¶¤ëÉñ¤¤¤¬ Cfront ¤È°Û¤Ê¤ë¾ì¹ç¤Ë·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:344 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:321 + msgid "Do not suppress warnings from system headers" + msgstr "¥·¥¹¥Æ¥à¥Ø¥Ã¥À¤«¤é¤Î·Ù¹ð¤òÍÞÀ©¤·¤Ê¤¤" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:347 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:324 + #, fuzzy + msgid "Warn about features not present in traditional C" + msgstr "¸Å¤¤ C ¤Ç¤Ï #elif ¤ò»È¤ï¤Ê¤¤Êý¤¬¤¤¤¤¤Ç¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:356 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:327 ++msgid "Warn if trigraphs are encountered that might affect the meaning of the program" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:333 + #, fuzzy + msgid "Warn if an undefined macro is used in an #if directive" + msgstr "̤ÄêµÁËô¤ÏÉÔÀµ¤Ê # ¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤Ç¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:359 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:336 + #, fuzzy + msgid "Warn about uninitialized automatic variables" + msgstr "½é´ü²½¤µ¤ì¤Ê¤¤¼«Æ°ÊÑ¿ô¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:362 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:339 + msgid "Warn about unrecognized pragmas" + msgstr "ǧ¼±¤Ç¤­¤Ê¤¤ pragma ¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:365 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:342 + msgid "Warn about code that will never be executed" + msgstr "¼Â¹Ô¤µ¤ì¤ë¤³¤È¤¬¤Ê¤¤¥³¡¼¥É¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:368 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:345 + msgid "Enable all -Wunused- warnings" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:371 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:348 + msgid "Warn when a function is unused" + msgstr "´Ø¿ô¤¬»È¤ï¤ì¤Ê¤¤¤È¤­¤Ë·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:374 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:351 + msgid "Warn when a label is unused" + msgstr "¥é¥Ù¥ë¤¬»È¤ï¤ì¤Ê¤¤¤È¤­¤Ë·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:377 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:354 + msgid "Warn about macros defined in the main file that are not used" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:380 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:357 + msgid "Warn when a function parameter is unused" + msgstr "´Ø¿ô¤Î²¾°ú¿ô¤¬»È¤ï¤ì¤Ê¤¤¤È¤­¤Ë·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:383 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:360 + msgid "Warn when an expression value is unused" + msgstr "¼°¤ÎÃͤ¬»È¤ï¤ì¤Ê¤¤¤È¤­¤Ë·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:386 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:363 + msgid "Warn when a variable is unused" + msgstr "ÊÑ¿ô¤¬»È¤ï¤ì¤Ê¤¤¤È¤­¤Ë·Ù¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:389 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:366 + msgid "Give strings the type \"array of char\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:392 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:369 + msgid "A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:395 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:372 + #, fuzzy + msgid "-aux-info \tEmit declaration information into " + msgstr " -aux-info Àë¸À¾ðÊó¤ò ¤Øȯ¹Ô¤¹¤ë\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:407 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:384 + #, fuzzy + msgid "-d\tEnable dumps from specific passes of the compiler" + msgstr " -d[letters] ¥³¥ó¥Ñ¥¤¥é¤Î²áÄø¤«¤é¤Î¥À¥ó¥×¤òÍ­¸ú¤Ë¤¹¤ë\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:410 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:387 + #, fuzzy + msgid "-dumpbase \tSet the file basename to be used for dumps" + msgstr " -dumpbase ²áÄø¤«¤é¤Î¥À¥ó¥×¤Ë»È¤ï¤ì¤ë̾Á°¤Î¥Ù¡¼¥¹¤È¤¹¤ë\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:413 +-msgid "--CLASSPATH\tDeprecated; use --classpath instead" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:425 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:399 + #, fuzzy + msgid "Enforce class member access control semantics" + msgstr "¥¢¥¯¥»¥¹À©¸æ¤Î°ÕÌ£¤Ë½¾¤ï¤Ê¤¤" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:428 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:402 + msgid "Align the start of functions" + msgstr "´Ø¿ô¤Î³«»Ï¤ò¥¢¥é¥¤¥ó¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:434 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:408 + msgid "Align labels which are only reached by jumping" + msgstr "¥é¥Ù¥ë¤Î¤¦¤Á¥¸¥ã¥ó¥×ÅþãÀè¤È¤Ê¤ë¤â¤Î¤À¤±¤ò¥¢¥é¥¤¥ó¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:440 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:414 + msgid "Align all labels" + msgstr "Á´¤Æ¤Î¥é¥Ù¥ë¤ò¥¢¥é¥¤¥ó¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:446 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:420 + msgid "Align the start of loops" + msgstr "¥ë¡¼¥×¤Î³«»Ï¤ò¥¢¥é¥¤¥ó¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:455 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:429 + msgid "Change when template instances are emitted" + msgstr "¥Æ¥ó¥×¥ì¡¼¥È¥¤¥ó¥¹¥¿¥ó¥¹¤¬Á÷½Ð¤µ¤ì¤¿»þ¤ËÊѹ¹¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:458 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:432 + #, fuzzy + msgid "Specify that arguments may alias each other and globals" + msgstr "°ú¿ô¤ÈÂç°è¥Ç¡¼¥¿¤ä¾¤Î°ú¿ô¤ÈÊÌ̾¤Ë¤Ê¤ê¤¦¤ë»ö¤ò»ØÄꤹ¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:461 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:435 + msgid "Assume arguments may alias globals but not each other" + msgstr "°ú¿ô¤ÈÂç°è¥Ç¡¼¥¿¤ÏÊÌ̾¤Ë¤Ê¤ê¤¦¤ë¤¬Â¾¤Î°ú¿ô¤È¤ÏÊÌ̾¤Ç¤Ï¤Ê¤¤¤È¤ß¤Ê¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:464 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:438 + #, fuzzy + msgid "Assume arguments alias neither each other nor globals" + msgstr "°ú¿ô¤¬Âç°è¥Ç¡¼¥¿¤ä¾¤Î°ú¿ô¤ÈÊÌ̾¤Ë¤Ï¤Ê¤é¤Ê¤¤¤È¤ß¤Ê¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:467 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:441 + #, fuzzy + msgid "Recognize the \"asm\" keyword" + msgstr "'asm' ͽÌó¸ì¤òǧ¼±¤µ¤»¤Ê¤¤" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:479 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:444 + #, fuzzy + msgid "Generate unwind tables that are exact at each instruction boundary" + msgstr "´¬¤­Ìᤷ¤ò¹Ô¤Ê¤¦Îã³°Êä­Íѥơ¼¥Ö¥ë¤òÀ¸À®¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:482 +-#, fuzzy +-msgid "Do not treat local variables and COMMON blocks as if they were named in SAVE statements" +-msgstr "¥í¡¼¥«¥ëÊÑ¿ô¤È COMMON ¥Ö¥í¥Ã¥¯¤ò SAVE ʸ¤Ç̾Á°ÉÕ¤±¤é¤ì¤¿¤è¤¦¤Ë¼è¤ê°·¤¦" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:485 +-#, fuzzy +-msgid "Backslashes in character and hollerith constants are special (not C-style)" +-msgstr "ʸ»ú/hollerith Äê¿ô¤Ç¤Î¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤òÆüì¤Ê¤â¤Î¤È¤·¤Ê¤¤ (C ¼°)" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:488 +-msgid "Delete libU77 intrinsics with bad interfaces" +-msgstr "libU77 intrinsic ¤òÉÔÀµ¤Ê interface ¤È¶¦¤Ëºï½ü¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:491 +-msgid "Disable libU77 intrinsics with bad interfaces" +-msgstr "libU77 intrinsic ¤òÉÔÀµ¤Ê interface ¤È¶¦¤Ë̵¸ú²½¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:494 +-#, fuzzy +-msgid "Enable libU77 intrinsics with bad interfaces" +-msgstr "libU77 intrinsic ¤òÉÔÀµ¤Ê interface ¤È¶¦¤Ë̵¸ú²½¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:497 +-msgid "Hide libU77 intrinsics with bad interfaces" +-msgstr "libU77 intrinsic ¤òÉÔÀµ¤Ê interface ¤È¶¦¤Ë±£¤¹" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:500 +-#, fuzzy +-msgid "--bootclasspath=\tReplace system path" +-msgstr "¥¯¥é¥¹¥Ñ¥¹¤òÀßÄꤷ¤Æ¥·¥¹¥Æ¥à¥Ñ¥¹¤ò±£¤¹" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:503 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:447 + #, fuzzy + msgid "Generate code to check bounds before indexing arrays" + msgstr "ÇÛÎó¤Îź»ú¤Èź»ú¶­³¦¤ò¸¡ºº¤¹¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:506 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:450 + #, fuzzy + msgid "Replace add, compare, branch with branch on count register" + msgstr "²Ã»»¡¢Èæ³Ó¥Ö¥é¥ó¥Á¤ÎÂå¤ï¤ê¤Ë¥«¥¦¥ó¥È¥ì¥¸¥¹¥¿¤Î¥Ö¥é¥ó¥Á¤ò»È¤¦" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:509 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:453 + msgid "Use profiling information for branch probabilities" + msgstr "ʬ´ô·ÐÏ©¿ä¬ÍѤΥץí¥Õ¥¡¥¤¥ë¾ðÊó¤òÍøÍѤ¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:512 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:456 + msgid "Perform branch target load optimization before prologue / epilogue threading" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:515 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:459 + msgid "Perform branch target load optimization after prologue / epilogue threading" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:518 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:462 + #, fuzzy + msgid "Recognize built-in functions" + msgstr "¤¤¤¯¤Ä¤«¤ÎÁȤ߹þ¤ß´Ø¿ô¤òǧ¼±¤µ¤»¤Ê¤¤" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:524 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:468 + #, fuzzy + msgid "-fcall-saved-\tMark as being preserved across functions" + msgstr " -fcall-saved- ¤¬´Ø¿ô¤òÄ̤¸¤ÆÊÝ»ý¤µ¤ì¤ë¤È¥Þ¡¼¥¯¤¹¤ë\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:527 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:471 + #, fuzzy + msgid "-fcall-used-\tMark as being corrupted by function calls" + msgstr " -fcall-used- ´Ø¿ô¸Æ¤Ó½Ð¤·¤ÇÇ˲õ¤µ¤ì¤ë ¤È¤·¤Æ¥Þ¡¼¥¯¤¹¤ë\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:530 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:474 + #, fuzzy + msgid "Save registers around function calls" + msgstr "´Ø¿ô¸Æ¤Ó½Ð¤·¤ÎÁ°¸å¤Ç¥ì¥¸¥¹¥¿¤ÎÊݸ¤òÍ­¸ú¤Ë¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:533 +-msgid "Program written in strict mixed-case" +-msgstr "¥×¥í¥°¥é¥à¤¬¸·Ì©¤Ë¥±¡¼¥¹º®ºß¤Ç½ñ¤«¤ì¤Æ¤¤¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:536 +-msgid "Compile as if program written in lowercase" +-msgstr "¥×¥í¥°¥é¥à¤¬±Ñ¾®Ê¸»ú¤Ç½ñ¤«¤ì¤¿Íͤ˥³¥ó¥Ñ¥¤¥ë¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:539 +-#, fuzzy +-msgid "Preserve case used in program" +-msgstr "¥×¥í¥°¥é¥à¤Ç»È¤ï¤ì¤¿ÄÖ¤ê(¤Î¥±¡¼¥¹)¤òÁ´¤ÆÊÝ»ý¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:542 +-msgid "Program written in lowercase" +-msgstr "¥×¥í¥°¥é¥à¤¬±Ñ¾®Ê¸»ú¤Ç½ñ¤«¤ì¤Æ¤¤¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:545 +-msgid "Program written in uppercase" +-msgstr "¥×¥í¥°¥é¥à¤¬±ÑÂçʸ»ú¤Ç½ñ¤«¤ì¤Æ¤¤¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:548 +-msgid "Compile as if program written in uppercase" +-msgstr "¥×¥í¥°¥é¥à¤¬±ÑÂçʸ»ú¤Ç½ñ¤«¤ì¤¿Íͤ˥³¥ó¥Ñ¥¤¥ë¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:551 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:477 + msgid "Check the return value of new" + msgstr "new ¤ÎÌá¤êÃͤò¸¡ºº¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:557 +-msgid "--classpath=\tSet class path" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:560 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:480 + #, fuzzy + msgid "Do not put uninitialized globals in the common section" + msgstr "Âç°èÊÑ¿ôÅù¤ò½é´ü²½¤µ¤ì¤Ê¤¤¥³¥â¥ó¥»¥¯¥·¥ç¥ó¤ËÃÖ¤«¤Ê¤¤" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:566 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:483 + msgid "Allow the arguments of the '?' operator to have different types" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:569 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:486 + #, fuzzy + msgid "Reduce the size of object files" + msgstr "¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤ò¾®¤µ¤¯¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:572 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:489 + #, fuzzy + msgid "Make string literals \"const char[]\" not \"char[]\"" + msgstr "ʸ»úÎó¥ê¥Æ¥é¥ë¤ò `const char[]' ¤ÎÂå¤ï¤ê¤Ë `char[]' ¤È¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:575 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:492 + msgid "-fconst-string-class=\tUse class for constant strings" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:578 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:495 + #, fuzzy + msgid "Perform a register copy-propagation optimization pass" + msgstr "ºÇŬ²½²áÄø¤Î¥ì¥¸¥¹¥¿¤Ä¤±ÊѤ¨¤ò¹Ô¤Ê¤¦" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:581 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:498 + #, fuzzy + msgid "Perform cross-jumping optimization" + msgstr "¥¸¥ã¥ó¥×ʬ´ôºÇŬ²½¤ò¹Ô¤Ê¤¦" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:584 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:501 + msgid "When running CSE, follow jumps to their targets" + msgstr "CSE ¤ÇÆ°ºî¤¹¤ë¤È¤­¡¢¤½¤ì¤é¤Î¥¿¡¼¥²¥Ã¥È¤Ø¤Î¥¸¥ã¥ó¥×¤ËÄɿ魯¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:587 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:504 + msgid "When running CSE, follow conditional jumps" + msgstr "CSE ¤ÇÆ°ºî¤¹¤ë¤È¤­¡¢¾ò·ï¥¸¥ã¥ó¥×¤ËÄɿ魯¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:590 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:507 + #, fuzzy + msgid "Place data items into their own section" + msgstr "¥Ç¡¼¥¿¹àÌܤò¤½¤ì¤é¼«¿È¤Î¥»¥¯¥·¥ç¥ó¤ËÇÛÃÖ¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:593 +-msgid "Emit special debugging information for COMMON and EQUIVALENCE (disabled)" +-msgstr "COMMON ¤ä EQUIVALENCE ÍѤÎÆÃÊ̤ʥǥХå°¾ðÊó¤òȯ¹Ô¤¹¤ë¡Ê̵¸ú²½¤µ¤ì¤Æ¤¤¤ë¡Ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:596 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:510 + #, fuzzy + msgid "Inline member functions by default" + msgstr "¥á¥ó¥Ð´Ø¿ô¤ò¥Ç¥Õ¥©¥ë¥È¤Ç¥¤¥ó¥é¥¤¥ó¤È¤·¤Ê¤¤" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:599 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:513 + msgid "Defer popping functions args from stack until later" + msgstr "´Ø¿ô°ú¿ô¤ò¥¹¥¿¥Ã¥¯¤«¤é pop ¤¹¤ë¤Î¤ò¸Æ¤Ó½Ð¤·¸å¤Þ¤ÇÃ٤餻¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:602 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:516 + msgid "Attempt to fill delay slots of branch instructions" + msgstr "ʬ´ôÌ¿Îá¤ÎÃٱ䥹¥í¥Ã¥È¤ò»È¤¦¤³¤È¤ò»î¤ß¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:605 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:519 + msgid "Delete useless null pointer checks" + msgstr "̵°ÕÌ£¤Ê null ¥Ý¥¤¥ó¥¿¸¡ºº¤òºï½ü¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:608 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:522 + #, fuzzy + msgid "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source location at the beginning of line-wrapped diagnostics" + msgstr "" + " -fdiagnostics-show-location=[once | every-line] ¿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤Î²þ¹Ô¤ÎºÝ¤Ë,\n" + " ¥½¡¼¥¹°ÌÃÖ¾ðÊ󤬹Ԥκǽé¤Ëɽ¼¨¤µ¤ì¤ëÉÑÅÙ¤ò»ØÄꤹ¤ë\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:611 +-#, fuzzy +-msgid "Allow '$' in symbol names" +-msgstr "$ ¤ò¥·¥ó¥Ü¥ë̾¤È¤·¤Æ»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:614 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:525 + #, fuzzy + msgid "Permit '$' as an identifier character" + msgstr "¥Õ¥©¡¼¥Þ¥Ã¥È¤¬¥ï¥¤¥Éʸ»úÎó¤Ç¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:620 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:528 ++msgid "-fdump-\tDump various compiler internals to a file" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:531 + msgid "Suppress output of instruction numbers and line number notes in debugging dumps" + msgstr "¥Ç¥Ð¥Ã¥°¥À¥ó¥×¤ÇÌ¿ÎáÈÖ¹æ¤È¹ÔÈÖ¹æ¥Î¡¼¥È¤Î½ÐÎϤòÍÞÀ©¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:626 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:537 + #, fuzzy + msgid "Perform DWARF2 duplicate elimination" + msgstr "ËöÈø¸Æ¤Ó½Ð¤·ºÇŬ²½¤ò¹Ô¤¦" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:629 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:632 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:540 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:543 + msgid "Perform unused type elimination in debug info" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:641 +-msgid "Have front end emulate COMPLEX arithmetic to avoid bugs" +-msgstr "COMPLEX ·×»»¤Î¥Ð¥°¤ò²óÈò¤ò¥¨¥ß¥å¥ì¡¼¥È¤¹¤ë¥Õ¥í¥ó¥È¥¨¥ó¥É¤ò»ý¤Ä" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:644 +-msgid "--encoding=\tChoose input encoding (defaults from your locale)" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:647 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:546 + #, fuzzy + msgid "Generate code to check exception specifications" + msgstr "Îã³°»ÅÍͤθ¡ºº¤ò¤¹¤ë¥³¡¼¥É¤òÀ¸À®¤·¤Ê¤¤" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:653 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:552 + msgid "Enable exception handling" + msgstr "Îã³°Ê᪤òÍ­¸ú¤Ë¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:656 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:555 + msgid "-fexec-charset=\tConvert all strings and character constants to character set " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:659 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:558 + #, fuzzy + msgid "Perform a number of minor, expensive optimizations" + msgstr "ÌÜΩ¤¿¤Ê¤¤¡¢¥³¥¹¥È¤Î¤«¤«¤ëºÇŬ²½¤ò¹Ô¤Ê¤¦" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:668 +-#, fuzzy +-msgid "f2c-compatible code can be generated" +-msgstr "f2c ¸ß´¹¥³¡¼¥É¤òÀ¸À®¤¹¤ëɬÍפ¬¤Ê¤¤" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:671 +-msgid "Delete non-FORTRAN-77 intrinsics f2c supports" +-msgstr "f2c ¤¬¥µ¥Ý¡¼¥È¤¹¤ëÈó FORTRAN-77 intrinsics ¤òºï½ü¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:674 +-msgid "Disable non-FORTRAN-77 intrinsics f2c supports" +-msgstr "f2c ¤¬¥µ¥Ý¡¼¥È¤¹¤ëÈó FORTRAN-77 intrinsics ¤ò̵¸ú²½¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:677 +-#, fuzzy +-msgid "Enable non-FORTRAN-77 intrinsics f2c supports" +-msgstr "f2c ¤¬¥µ¥Ý¡¼¥È¤¹¤ëÈó FORTRAN-77 intrinsics ¤ò̵¸ú²½¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:680 +-msgid "Hide non-FORTRAN-77 intrinsics f2c supports" +-msgstr "f2c ¤¬¥µ¥Ý¡¼¥È¤¹¤ëÈó FORTRAN-77 intrinsics ¤ò±£¤¹" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:683 +-#, fuzzy +-msgid "Unsupported; generate libf2c-calling code" +-msgstr "¥µ¥Ý¡¼¥È¤µ¤ì¤Ê¤¤ -- libf2c-calling ¥³¡¼¥É¤òÀ¸À®¤·¤Ê¤¤" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:686 +-msgid "Program is written in typical FORTRAN 66 dialect" +-msgstr "¥×¥í¥°¥é¥à¤¬Åµ·¿Åª¤Ê FORTRAN 66 Êý¸À¤Ç½ñ¤«¤ì¤Æ¤¤¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:689 +-#, fuzzy +-msgid "Program is written in typical Unix-f77 dialect" +-msgstr "¥×¥í¥°¥é¥à¤¬Åµ·¿Åª¤Ê Unix f77 Êý¸À¤Ç½ñ¤«¤ì¤Æ¤¤¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:692 +-msgid "Program is written in Fortran-90-ish dialect" +-msgstr "¥×¥í¥°¥é¥à¤¬ Fortran-90 ŪÊý¸À¤Ç½ñ¤«¤ì¤Æ¤¤¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:695 +-msgid "Delete non-FORTRAN-77 intrinsics F90 supports" +-msgstr "F90 ¤¬¥µ¥Ý¡¼¥È¤¹¤ëÈó FORTRAN-77 intrinsics ¤òºï½ü¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:698 +-msgid "Disable non-FORTRAN-77 intrinsics F90 supports" +-msgstr "F90 ¤¬¥µ¥Ý¡¼¥È¤¹¤ëÈó FORTRAN-77 intrinsics ¤ò̵¸ú²½¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:701 +-#, fuzzy +-msgid "Enable non-FORTRAN-77 intrinsics F90 supports" +-msgstr "F90 ¤¬¥µ¥Ý¡¼¥È¤¹¤ëÈó FORTRAN-77 intrinsics ¤ò̵¸ú²½¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:704 +-msgid "Hide non-FORTRAN-77 intrinsics F90 supports" +-msgstr "F90 ¤¬¥µ¥Ý¡¼¥È¤¹¤ëÈó FORTRAN-77 intrinsics ¤ò±£¤¹" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:716 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:567 + msgid "Assume no NaNs or infinities are generated" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:719 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:570 + #, fuzzy + msgid "-ffixed-\tMark as being unavailable to the compiler" + msgstr " -ffixed- ¥³¥ó¥Ñ¥¤¥é¤ËÂФ· ¤ò»ÈÍÑÉԲĤȥޡ¼¥¯¤¹¤ë\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:725 +-#, fuzzy +-msgid "ffixed-line-length-\tSet the maximum line length to " +-msgstr " -finline-limit= ¥¤¥ó¥é¥¤¥ó´Ø¿ô¤Î¥µ¥¤¥º¤ò ¤ËÀ©¸Â¤¹¤ë\n" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:728 +-#, fuzzy +-msgid "Unsupported; affects code generation of arrays" +-msgstr "¥µ¥Ý¡¼¥È¤µ¤ì¤Ê¤¤ -- ÇÛÎó¤Î¥³¡¼¥ÉÀ¸À®¤Ë±Æ¶Á¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:731 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:579 + msgid "Do not store floats in registers" + msgstr "¥ì¥¸¥¹¥¿¤ËÉâÆ°¾®¿ô¤ò³ÊǼ¤·¤Ê¤¤" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:734 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:582 + #, fuzzy + msgid "Scope of for-init-statement variables is local to the loop" + msgstr "for ½é´ü²½Ê¸¤ÎÊÑ¿ô¤ò¥¹¥³¡¼¥×³°¤Ë³ÈÂ礹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:737 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:585 + #, fuzzy + msgid "Copy memory address constants into registers before use" + msgstr "¥á¥â¥ê¥¢¥É¥ì¥¹Äê¿ô¤òÍøÍѤ¹¤ëÁ°¤Ë¥ì¥¸¥¹¥¿¤Ø¥³¥Ô¡¼¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:740 +-msgid "Always check for non gcj generated classes archives" +-msgstr "gcj ¤¬À¸À®¤·¤Æ¤¤¤Ê¤¤¥¯¥é¥¹¥¢¡¼¥«¥¤¥Ö¤ò¾ï¤Ë¸¡ºº¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:743 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:588 + #, fuzzy + msgid "Copy memory operands into registers before use" + msgstr "¥á¥â¥ê¥ª¥Ú¥é¥ó¥É¤òÍøÍѤ¹¤ëÁ°¤Ë¥ì¥¸¥¹¥¿¤Ø¥³¥Ô¡¼¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:746 +-msgid "Generate code to check subscript and substring bounds" +-msgstr "ÇÛÎó¤Îź»ú¤Èź»ú¶­³¦¤ò¸¡ºº¤¹¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:749 +-msgid "Program is written in Fortran-90-ish free form" +-msgstr "¥×¥í¥°¥é¥à¤Ï Fortran-90 Ū¥Õ¥ê¡¼¥Õ¥©¡¼¥à¤Ç½ñ¤«¤ì¤Æ¤¤¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:752 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:591 + #, fuzzy + msgid "Do not assume that standard C libraries and \"main\" exist" + msgstr "ɸ½à¥é¥¤¥Ö¥é¥ê¤ä main ¤¬Â¸ºß¤·¤Ê¤¤²ÄǽÀ­¤¬¤¢¤ë¤â¤Î¤È¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:755 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:594 + msgid "Allow function addresses to be held in registers" + msgstr "´Ø¿ô¥¢¥É¥ì¥¹¤ò¥ì¥¸¥¹¥¿¤Ë»ý¤¿¤»¤ë»ö¤òµö²Ä¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:758 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:597 + #, fuzzy + msgid "Place each function into its own section" + msgstr "³Æ¡¹¤Î´Ø¿ô¤ò¤½¤ì¼«¿È¤Î¥»¥¯¥·¥ç¥ó¤ËÇÛÃÖ¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:761 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:600 + #, fuzzy + msgid "Perform global common subexpression elimination" + msgstr "¥°¥í¡¼¥Ð¥ë¶¦ÄÌÉôʬ¼°¤ò½üµî¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:764 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:603 + #, fuzzy + msgid "Perform redundant load after store elimination in global common subexpression elimination" + msgstr "¥°¥í¡¼¥Ð¥ë¶¦ÄÌÉôʬ¼°¤ò½üµî¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:767 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:606 + #, fuzzy + msgid "Perform enhanced load motion during global common subexpression elimination" + msgstr "¥°¥í¡¼¥Ð¥ë¶¦ÄÌÉôʬ¼°¤ò½üµî¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:770 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:609 + #, fuzzy + msgid "Perform store motion after global common subexpression elimination" + msgstr "¥°¥í¡¼¥Ð¥ë¶¦ÄÌÉôʬ¼°¤ò½üµî¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:773 +-#, fuzzy +-msgid "Enable fatal diagnostics about inter-procedural problems" +-msgstr "inter-procedural ÌäÂê¤Ë¤Ä¤¤¤Æ¤ÎÃ×̿Ū¤Ê¿ÇÃÇɽ¼¨¤òɽ¼¨¤·¤Ê¤¤" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:776 +-msgid "Delete non-FORTRAN-77 intrinsics g77 supports" +-msgstr "g77 ¤¬¥µ¥Ý¡¼¥È¤¹¤ëÈó FORTRAN-77 intrinsics ¤òºï½ü¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:779 +-msgid "Disable non-FORTRAN 77 intrinsics F90 supports" +-msgstr "g77 ¤¬¥µ¥Ý¡¼¥È¤¹¤ëÈó FORTRAN-77 intrinsics ¤ò̵¸ú²½¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:782 +-#, fuzzy +-msgid "Enable non-FORTRAN 77 intrinsics F90 supports" +-msgstr "g77 ¤¬¥µ¥Ý¡¼¥È¤¹¤ëÈó FORTRAN-77 intrinsics ¤ò̵¸ú²½¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:785 +-msgid "Hide non-FORTRAN 77 intrinsics F90 supports" +-msgstr "g77 ¤¬¥µ¥Ý¡¼¥È¤¹¤ëÈó FORTRAN-77 intrinsics ¤ò±£¤¹" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:788 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:612 + #, fuzzy + msgid "Recognize GNU-defined keywords" + msgstr "GNU ÄêµÁ¤ÎͽÌó¸ì¤òǧ¼±¤µ¤»¤Ê¤¤" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:791 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:615 + msgid "Generate code for GNU runtime environment" + msgstr "GNU ¼Â¹Ô´Ä¶­ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:794 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:618 + #, fuzzy + msgid "Enable guessing of branch probabilities" + msgstr "ʬ´ô·ÐÏ©¿ä¬¤òÍ­¸ú¤Ë¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:809 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:630 + msgid "Assume normal C execution environment" + msgstr "Ä̾ï¤Î C ¼Â¹Ô´Ä¶­¤òÁ°Äó¤È¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:812 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:633 + msgid "Enable support for huge objects" + msgstr "Â礭¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤Î¥µ¥Ý¡¼¥È" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:815 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:636 + msgid "Process #ident directives" + msgstr "#ident ¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤ò½èÍý¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:818 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:639 + msgid "Perform conversion of conditional jumps to branchless equivalents" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:821 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:642 + #, fuzzy + msgid "Perform conversion of conditional jumps to conditional execution" + msgstr "¾ò·ïŪ¤Ê¼Â¹Ô¤Ø¤ÎÊѹ¹¤Î¤¿¤á¤ÎïçÃͤòÊѹ¹¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:824 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:645 + msgid "Export functions even if they can be inlined" + msgstr "¥¤¥ó¥é¥¤¥ó¤Ë¤Ç¤­¤ë´Ø¿ô¤Ç¤â export ¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:827 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:648 + #, fuzzy + msgid "Emit implicit instantiations of inline templates" + msgstr "¥¤¥ó¥é¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤ÎÌÀ¼¨Åª¤Ê¼ÂÂβ½¤Î¤ß¤òÀ¸À®¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:830 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:651 + #, fuzzy + msgid "Emit implicit instantiations of templates" + msgstr "¥¤¥ó¥é¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤ÎÌÀ¼¨Åª¤Ê¼ÂÂβ½¤Î¤ß¤òÀ¸À®¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:833 +-msgid "Use offset tables for virtual method calls" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:836 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:654 + msgid "Do not generate .size directives" + msgstr ".size µ¿»÷Ì¿Îá¤òÀ¸À®¤·¤Ê¤¤" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:839 +-msgid "Initialize local vars and arrays to zero" +-msgstr "¥í¡¼¥«¥ëÊÑ¿ô¤äÇÛÎó¤ò¥¼¥í¤Ë½é´ü²½¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:842 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:657 + #, fuzzy + msgid "Pay attention to the \"inline\" keyword" + msgstr "'inline' ¥­¡¼¥ï¡¼¥É¤ËÃí°Õ¤òʧ¤¦" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:851 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:660 ++msgid "Integrate simple functions into their callers" ++msgstr "ñ½ã¤Ê´Ø¿ô¤ò¸Æ¤Ó½Ð¤·Â¦¤ËÅý¹ç¤¹¤ë" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:666 + #, fuzzy + msgid "-finline-limit=\tLimit the size of inlined functions to " + msgstr " -finline-limit= ¥¤¥ó¥é¥¤¥ó´Ø¿ô¤Î¥µ¥¤¥º¤ò ¤ËÀ©¸Â¤¹¤ë\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:854 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:669 + msgid "-finput-charset= Specify the default character set for source files." + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:857 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:672 + #, fuzzy + msgid "Instrument function entry and exit with profiling calls" + msgstr "´Ø¿ô¤ÎÆþ¤ê¸ý/½Ð¸ý¤Ç¥×¥í¥Õ¥¡¥¤¥ë¸Æ¤Ó½Ð¤·¤òÀ¸À®¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:860 +-msgid "Intrinsics letters in arbitrary cases" +-msgstr "intrinsic ʸ»ú¤ÏǤ°Õ¤Î¥±¡¼¥¹¤È¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:863 +-msgid "Intrinsics spelled as e.g. SqRt" +-msgstr "intrinsic ¤¬Î㤨¤Ð SqRt ¤ÎÍѤËÄÖ¤é¤ì¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:866 +-#, fuzzy +-msgid "Intrinsics in lowercase" +-msgstr "intrinsic ¤ò±ÑÂçʸ»ú¤È¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:869 +-msgid "Intrinsics in uppercase" +-msgstr "intrinsic ¤ò±ÑÂçʸ»ú¤È¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:872 +-msgid "Assume native functions are implemented using JNI" +-msgstr "native ´Ø¿ô¤¬ JNI ¤òÍøÍѤ·¤Æ¼ÂÁõ¤·¤Æ¤¤¤ë¤â¤Î¤È¤ß¤Ê¤¹" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:875 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:675 + #, fuzzy + msgid "Generate code for functions even if they are fully inlined" + msgstr "Á´¤Æ¥¤¥ó¥é¥¤¥ó¤È¤µ¤ì¤¿¤È¤·¤Æ¤â´Ø¿ô¤Î¥³¡¼¥É¤òÀ¸À®¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:878 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:678 + msgid "Emit static const variables even if they are not used" + msgstr "»ÈÍѤµ¤ì¤Ê¤¤ÀÅŪÄê¿ôÊÑ¿ô¤Ç¤¢¤Ã¤Æ¤â½ÐÎϤ¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:884 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:684 + #, fuzzy + msgid "Give external symbols a leading underscore" + msgstr "³°Éô¥·¥ó¥Ü¥ë¤ËƬʸ»ú¥¢¥ó¥À¡¼¥¹¥³¥¢¤ò»ý¤¿¤»¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:887 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:687 + #, fuzzy + msgid "Perform loop optimizations" + msgstr "ËöÈø¸Æ¤Ó½Ð¤·ºÇŬ²½¤ò¹Ô¤¦" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:890 +-msgid "Language keyword letters in arbitrary cases" +-msgstr "¸À¸ìͽÌó¸ìʸ»ú¤ÏǤ°Õ¤Î¥±¡¼¥¹¤È¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:893 +-msgid "Language keywords spelled as e.g. IOStat" +-msgstr "¸À¸ìͽÌó¸ì¤¬Î㤨¤Ð IOStat ¤ÎÍѤËÄÖ¤é¤ì¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:896 +-#, fuzzy +-msgid "Language keywords in lowercase" +-msgstr "¸À¸ìͽÌó¸ì¤Ï±ÑÂçʸ»ú¤È¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:899 +-msgid "Language keywords in uppercase" +-msgstr "¸À¸ìͽÌó¸ì¤Ï±ÑÂçʸ»ú¤È¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:902 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:690 + msgid "Set errno after built-in math functions" + msgstr "ÁȤ߹þ¤ß¿ô³Ø´Ø¿ô¤Î¸å¤Ë errno ¤ò¥»¥Ã¥È¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:905 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:693 + #, fuzzy + msgid "Report on permanent memory allocation" + msgstr "¼Â¹Ô½ªÎ»»þ¤Ë±Ê³Ū¤Ë³ÎÊݤµ¤ì¤¿¥á¥â¥ê¤òÊó¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:908 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:696 + msgid "Attempt to merge identical constants and constant variables" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:911 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:699 + msgid "Attempt to merge identical constants across compilation units" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:914 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:702 + #, fuzzy + msgid "-fmessage-length=\tLimit diagnostics to characters per line. 0 suppresses line-wrapping" + msgstr " -fmessage-length= ¿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤ÎŤµ¤ò°ì¹ÔÊÕ¤ê ʸ»ú¤ËÀ©¸Â¤¹¤ë¡£ 0 ¤À¤È²þ¹Ô¤òÍÞÀ©¤¹¤ë\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:917 +-msgid "Delete MIL-STD 1753 intrinsics" +-msgstr "MIL-STD 1753 intrinsic ¤òºï½ü¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:920 +-msgid "Disable MIL-STD 1753 intrinsics" +-msgstr "MIL-STD 1753 intrinsic ¤ò̵¸ú²½¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:923 +-#, fuzzy +-msgid "Enable MIL-STD 1753 intrinsics" +-msgstr "MIL-STD 1753 intrinsic ¤ò̵¸ú²½¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:926 +-msgid "Hide MIL-STD 1753 intrinsics" +-msgstr "MIL-STD 1753 intrinsic ¤ò±£¤¹" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:929 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:705 + msgid "Force all loop invariant computations out of loops" + msgstr "¥ë¡¼¥×Ãæ¤ËÉÔÊѤʷ׻»¤ò¥ë¡¼¥×¤Î³°¤Ë°ÜÆ°¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:932 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:708 + #, fuzzy + msgid "Don't warn about uses of Microsoft extensions" + msgstr "Microsoft ³ÈÄ¥¤ÎÍøÍѤ˴ؤ·¤Æ pedantic ·Ù¹ð¤ò¹Ô¤ï¤Ê¤¤" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:941 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:717 + #, fuzzy + msgid "Use graph-coloring register allocation" + msgstr "¥ì¥¸¥¹¥¿³ÎÊݤÎÁ°¤ËÌ¿Îá¤òÊ¤Ùľ¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:944 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:720 + #, fuzzy + msgid "Generate code for NeXT (Apple Mac OS X) runtime environment" + msgstr "NeXT ¼Â¹Ô´Ä¶­ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:947 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:723 + msgid "Assume that receivers of Objective-C messages may be nil" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:950 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:726 + msgid "Support synchronous non-call exceptions" + msgstr "Ʊ´üÈó¸Æ¤Ó½Ð¤·Îã³°¤ò¥µ¥Ý¡¼¥È¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:959 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:735 + msgid "Enable Objective-C exception and synchronization syntax" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:962 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1286 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:738 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:978 + msgid "Perform loop unrolling for all loops" + msgstr "Á´¤Æ¤Î¥ë¡¼¥×¤Ç¥ë¡¼¥×Ÿ³«¤ò¹Ô¤Ê¤¦" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:965 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1289 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:741 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:981 + msgid "Perform loop unrolling when iteration count is known" + msgstr "È¿Éü²ó¿ô¤¬´ûÃΤΤȤ­¡¢¥ë¡¼¥×Ÿ³«¤ò¹Ô¤Ê¤¦" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:968 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:744 + msgid "When possible do not generate stack frames" + msgstr "²Äǽ¤Ê¾ì¹ç¡¢¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤òÀ¸À®¤·¤Ê¤¤" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:971 +-msgid "Take at least one trip through each iterative DO loop" +-msgstr "ºÇÄã¤Ç¤â°ì²ó¤Ï³ÆÈ¿Éü DO ¥ë¡¼¥×¤¬½èÍý¤µ¤ì¤ë¤È¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:974 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:747 + msgid "Recognize C++ kewords like \"compl\" and \"xor\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:977 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:750 + #, fuzzy + msgid "Do the full register move optimization pass" + msgstr "ºÇŬ²½²áÄø¤ÇºÇÂç¸Â¤Î regmove ¤ò¹Ô¤Ê¤¦" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:980 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:753 + msgid "Optimize sibling and tail recursive calls" + msgstr "sibling ¸Æ¤Ó½Ð¤·¤äËöÈøºÆµ¢¸Æ¤Ó½Ð¤·¤òºÇŬ²½¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:983 +-#, fuzzy +-msgid "Enable optimization of static class initialization code" +-msgstr "(¥¯¥é¥¹³°¤Ç¤Î½é´ü²½¤òɬÍפȤ·¤Þ¤¹)" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:986 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:756 + #, fuzzy + msgid "Enable optional diagnostics" + msgstr "¥ª¥×¥·¥ç¥ó¤Î¿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Ê¤¤" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:992 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:759 + msgid "Pack structure members together without holes" + msgstr "¹½Â¤ÂÎ¥á¥ó¥Ð¤ò·ê¤¬³«¤«¤Ê¤¤¤è¤¦¤Ë¥Ñ¥Ã¥¯¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:995 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:762 + #, fuzzy + msgid "Return small aggregates in memory, not registers" + msgstr "'¾®¤µ¤Ê' ½¸¹çÂΤò¥ì¥¸¥¹¥¿¤Ç¤Ï¤Ê¤¯¥á¥â¥ê¤Ë³ÊǼ¤·¤ÆÊÖ¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1001 +-msgid "Warn about use of (only a few for now) Fortran extensions" +-msgstr "Fortran ³ÈÄ¥(º£¤Ï¾¯¤Ê¤¤¤¬)¤Î»ÈÍѤˤĤ¤¤Æ·Ù¹ð¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1004 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:768 + #, fuzzy + msgid "Perform loop peeling" + msgstr "Á´¤Æ¤Î¥ë¡¼¥×¤Ç¥ë¡¼¥×Ÿ³«¤ò¹Ô¤Ê¤¦" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1007 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:771 + #, fuzzy + msgid "Enable machine specific peephole optimizations" + msgstr "µ¡¼ï¸ÇÍ­¤ÎÇÁ¤­·êºÇŬ²½¤òÍ­¸ú¤Ë¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1010 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:774 + #, fuzzy + msgid "Enable an RTL peephole pass before sched2" + msgstr "ÂèÆóÌ¿ÎáÇÛÃÖ¤ÎÁ°¤Ç rtl ÇÁ¤­·ê²áÄø¤òÍ­¸ú¤Ë¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1013 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:777 + msgid "Downgrade conformance errors to warnings" + msgstr "µ¬³ÊŬ¹çÀ­¥¨¥é¡¼¤ò·Ù¹ð¤Ë³Ê²¼¤²¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1016 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:780 + #, fuzzy + msgid "Generate position-independent code if possible" + msgstr "²Äǽ¤Ç¤¢¤ì¤Ð°ÌÃÖÆÈΩ¥³¡¼¥É¤òÀ¸À®¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1019 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:783 + #, fuzzy + msgid "Generate position-independent code for executables if possible" + msgstr "²Äǽ¤Ç¤¢¤ì¤Ð°ÌÃÖÆÈΩ¥³¡¼¥É¤òÀ¸À®¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1022 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:786 + msgid "Generate prefetch instructions, if available, for arrays in loops" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1028 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:789 ++msgid "Treat the input file as already preprocessed" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:792 + #, fuzzy + msgid "Enable basic program profiling code" + msgstr "¥×¥í¥°¥é¥à¤¬¥³¡¼¥É¥×¥í¥Õ¥¡¥¤¥ë¤¹¤ë¸µ¤Ë¤Ê¤ë¸Ì¤òÁÞÆþ¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1031 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:795 + #, fuzzy + msgid "Insert arc-based program profiling code" + msgstr "¥×¥í¥°¥é¥à¤¬¥³¡¼¥É¥×¥í¥Õ¥¡¥¤¥ë¤¹¤ë¸µ¤Ë¤Ê¤ë¸Ì¤òÁÞÆþ¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1034 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:798 + msgid "Enable common options for generating profile info for profile feedback directed optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1037 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:801 + msgid "Enable common options for performing profile feedback directed optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1040 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:804 + msgid "Insert code to profile values of expressions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1046 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:810 + msgid "-frandom-seed=\tMake compile reproducible using " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1049 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:813 + msgid "Strength reduce all loop general induction variables" + msgstr "¥ë¡¼¥×¤ÎÃæ¤ÎÁ´¤Æ¤Î°ìÈÌͶƳÊÑ¿ô¤ò¶¯Åٺ︺¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1052 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:816 + #, fuzzy + msgid "Return small aggregates in registers" + msgstr "'¾®¤µ¤Ê' ½¸¹çÂΤò¥ì¥¸¥¹¥¿¤Ë³ÊǼ¤·¤ÆÊÖ¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1055 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:819 + #, fuzzy + msgid "Enables a register move optimization" + msgstr "°ÜÆ°Ì¿ÎáºÇŬ²½¥ì¥¸¥¹¥¿¤òÍ­¸ú¤Ë¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1058 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:822 + #, fuzzy + msgid "Perform a register renaming optimization pass" + msgstr "ºÇŬ²½²áÄø¤Î¥ì¥¸¥¹¥¿¤Ä¤±ÊѤ¨¤ò¹Ô¤Ê¤¦" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1061 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:825 + msgid "Reorder basic blocks to improve code placement" + msgstr "¥³¡¼¥ÉÇÛÃÖ¤ò²þÁ±¤¹¤ë¤¿¤á¤Ë´ðËÜ¥Ö¥í¥Ã¥¯¤òºÆÀ°Íý¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1064 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:828 + #, fuzzy + msgid "Reorder functions to improve code placement" + msgstr "¥³¡¼¥ÉÇÛÃÖ¤ò²þÁ±¤¹¤ë¤¿¤á¤Ë´ðËÜ¥Ö¥í¥Ã¥¯¤òºÆÀ°Íý¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1067 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:831 + msgid "Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1070 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:834 + msgid "Enable automatic template instantiation" + msgstr "¼«Æ°¥Æ¥ó¥×¥ì¡¼¥È¼ÂÂ⽤òÍ­¸ú¤Ë¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1073 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:837 + #, fuzzy + msgid "Add a common subexpression elimination pass after loop optimizations" + msgstr "¥ë¡¼¥×ºÇŬ²½¸å¤Ë¶¦ÄÌÉôʬ¼°½üµî²áÄø¤ò¼Â¹Ô" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1076 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:840 + #, fuzzy + msgid "Run the loop optimizer twice" + msgstr "¥ë¡¼¥×ºÇŬ²½¤òÆó²ó¼Â¹Ô¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1079 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:843 + msgid "Disable optimizations that assume default FP rounding behavior" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1082 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:846 + #, fuzzy + msgid "Generate run time type descriptor information" + msgstr "¼Â¹Ô»þ·¿µ­½Ò¾ðÊó¤òÀ¸À®¤·¤Ê¤¤" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1085 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:849 + msgid "Enable scheduling across basic blocks" + msgstr "´ðËÜ¥Ö¥í¥Ã¥¯¤ò¸Ù¤°Ì¿ÎáÇÛÃÖ¤òÍ­¸ú¤Ë¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1088 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:852 + msgid "Allow speculative motion of non-loads" + msgstr "Èó¥í¡¼¥É¤Ç¤ÎÉԳμ¤ÊÆ°ºî¤òµö²Ä¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1091 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:855 + msgid "Allow speculative motion of some loads" + msgstr "¤¤¤¯¤Ä¤«¤Î¥í¡¼¥É¤Ç¤ÎÉԳμ¤ÊÆ°ºî¤òµö²Ä¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1094 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:858 + msgid "Allow speculative motion of more loads" + msgstr "¤è¤ê¿¤¯¤Î¥í¡¼¥É¤Ç¤ÎÉԳμ¤ÊÆ°ºî¤òµö²Ä¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1097 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:861 + msgid "Allow premature scheduling of queued insns" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1100 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:864 + msgid "Set dependence distance checking in premature scheduling of queued insns" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1103 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:867 + msgid "-fsched-stalled-insns-dep= Set dependence distance checking in premature scheduling of queued insns" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1106 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:870 + msgid "-fsched-stalled-insns= Set number of queued insns that can be prematurely scheduled" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1109 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:873 + #, fuzzy + msgid "-fsched-verbose=\tSet the verbosity level of the scheduler" + msgstr " -fsched-verbose= ¥¹¥±¥¸¥å¡¼¥é¤ÎñÁÀå¥ì¥Ù¥ë¤òÀßÄꤹ¤ë\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1112 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:876 + msgid "If scheduling post reload, do superblock scheduling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1115 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:879 + msgid "If scheduling post reload, do trace scheduling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1118 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:882 + msgid "Reschedule instructions before register allocation" + msgstr "¥ì¥¸¥¹¥¿³ÎÊݤÎÁ°¤ËÌ¿Îá¤òÊ¤Ùľ¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1121 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:885 + msgid "Reschedule instructions after register allocation" + msgstr "¥ì¥¸¥¹¥¿³ÎÊݤθå¤ÇÌ¿Îá¤òÊ¤Ùľ¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1124 +-#, fuzzy +-msgid "Allow appending a second underscore to externals" +-msgstr "³°ÉôÊÑ¿ô¤ËÆó¤ÄÌܤΥ¢¥ó¥À¡¼¥¹¥³¥¢¤òÉÕ¤±Â­¤µ¤Ê¤¤" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1127 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:888 + msgid "Mark data as shared rather than private" + msgstr "¥Ç¡¼¥¿¤ò¥×¥é¥¤¥Ù¡¼¥È¤Ç¤Ï¤Ê¤¯¶¦Í­¤µ¤ì¤ë¤è¤¦¥Þ¡¼¥¯¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1130 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:891 + msgid "Use the same size for double as for float" + msgstr "double ¤Î¥µ¥¤¥º¤ò float ¤ÈƱ¤¸¤È¤·¤Æ»ÈÍѤ¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1133 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:894 + msgid "Use the narrowest integer type possible for enumeration types" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1136 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:897 + #, fuzzy + msgid "Force the underlying type for \"wchar_t\" to be \"unsigned short\"" + msgstr "wchar_t ¤Îº¬ËÜŪ¤Ê·¿¤ò `unsigned short' ¤Èʤ¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1142 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:903 + msgid "Disable optimizations observable by IEEE signaling NaNs" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1145 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:906 + msgid "When \"signed\" or \"unsigned\" is not given make the bitfield signed" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1148 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:909 + #, fuzzy + msgid "Make \"char\" signed by default" + msgstr "'char' ¤ò¥Ç¥Õ¥©¥ë¥È¤ÇÉä¹çÉÕ¤­¤È¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1151 +-#, fuzzy +-msgid "Do not print names of program units as they are compiled" +-msgstr "¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥×¥í¥°¥é¥àñ°Ì¤Î̾Á°¤òɽ¼¨¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1154 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:912 + #, fuzzy + msgid "Convert floating point constants to single precision constants" + msgstr "ÉâÆ°¾®¿ôÅÀÄê¿ô¤òñÀºÅÙÄê¿ô¤ËÊÑ´¹¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1157 +-#, fuzzy +-msgid "Internally convert most source to lowercase" +-msgstr "ÆâÉôŪ¤ÊÊÑ´¹¤Ç¤Ï¥½¡¼¥¹¤ÎËؤó¤É¤ò±ÑÂçʸ»ú¤È¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1160 +-msgid "Internally preserve source case" +-msgstr "ÆâÉôŪ¤Ë¥½¡¼¥¹¤Î¥±¡¼¥¹¤òÊÝ»ý¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1163 +-msgid "Internally convert most source to uppercase" +-msgstr "ÆâÉôŪ¤ÊÊÑ´¹¤Ç¤Ï¥½¡¼¥¹¤ÎËؤó¤É¤ò±ÑÂçʸ»ú¤È¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1169 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:918 + msgid "Insert stack checking code into the program" + msgstr "¥×¥í¥°¥é¥à¤Ë¥¹¥¿¥Ã¥¯¶­³¦¸¡½Ð¥³¡¼¥É¤òÁÞÆþ¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1175 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:924 + msgid "-fstack-limit-register=\tTrap if the stack goes past " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1178 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:927 + msgid "-fstack-limit-symbol=\tTrap if the stack goes past symbol " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1181 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:930 + msgid "Display statistics accumulated during compilation" + msgstr "¥³¥ó¥Ñ¥¤¥ëÃæ¤ËÃßÀѤµ¤ì¤¿Åý·×¾ðÊó¤òɽ¼¨¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1184 +-msgid "Enable assignability checks for stores into object arrays" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1187 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:933 + #, fuzzy + msgid "Perform strength reduction optimizations" + msgstr "¶¯Åٺ︺ºÇŬ²½¤ò¹Ô¤Ê¤¦" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1190 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:936 + msgid "Assume strict aliasing rules apply" + msgstr "¸·Ì©¤ÊÊÌ̾µ¬Â§¤ËŬ¹ç¤¹¤ë¤È¤ß¤Ê¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1199 +-msgid "Symbol names spelled in mixed case" +-msgstr "¥·¥ó¥Ü¥ë̾¤Ï¥±¡¼¥¹º®ºß¤ÇÄÖ¤é¤ì¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1202 +-msgid "Symbol names in lowercase" +-msgstr "¥·¥ó¥Ü¥ë̾¤ò¾®Ê¸»ú¤È¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1205 +-msgid "Symbol names in uppercase" +-msgstr "¥·¥ó¥Ü¥ë̾¤òÂçʸ»ú¤È¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1208 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:942 + msgid "Check for syntax errors, then stop" + msgstr "ʸˡ¥¨¥é¡¼¤ò¸¡½Ð¤·¤Æ¡¢¤½¤³¤ÇÄä»ß¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1211 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:945 + msgid "-ftabstop=\tDistance between tab stops for column reporting" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1214 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:948 + #, fuzzy + msgid "-ftemplate-depth-\tSpecify maximum template instantiation depth" + msgstr "¥Æ¥ó¥×¥ì¡¼¥È¼ÂÂβ½¤Î¿¼¤µ¤ÎºÇÂçÃͤò»ØÄꤹ¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1217 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:951 + #, fuzzy + msgid "Create data files needed by \"gcov\"" + msgstr "gcov ¤¬É¬ÍפȤ¹¤ë¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1223 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:957 + #, fuzzy + msgid "Perform jump threading optimizations" + msgstr "¥¸¥ã¥ó¥×ʬ´ôºÇŬ²½¤ò¹Ô¤Ê¤¦" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1226 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:960 + #, fuzzy + msgid "Report the time taken by each compiler pass" + msgstr "¼Â¹Ô½ªÎ»»þ¤Ë¥³¥ó¥Ñ¥¤¥é¤Î³Æ²áÄø¤ËÍפ·¤¿»þ´Ö¤òÊó¹ð¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1229 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:963 + msgid "-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tSet the default thread-local storage code generation model" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1232 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:966 + msgid "Perform superblock formation via tail duplication" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1235 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:969 + msgid "Assume floating-point operations can trap" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1238 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:972 + #, fuzzy + msgid "Trap for signed overflow in addition, subtraction and multiplication" + msgstr "Éä¹çÉÕ¤­¤Î²Ã»»/¸º»»/¾è»»¤Ç¤Î·å¤¢¤Õ¤ì¤ò¥È¥é¥Ã¥×¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1241 +-msgid "Make prefix-radix non-decimal constants be typeless" +-msgstr "ÈóÀ°¿ôÄê¿ô¤ÎÀÜÈø´ð¿ô¤¬·¿¤Ê¤·¤Ç¤¢¤ë¤È¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1244 +-#, fuzzy +-msgid "Allow all ugly features" +-msgstr "Á´¤Æ¤Î½¹¤¤µ¡Ç½¤òµö²Ä¤·¤Ê¤¤" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1247 +-#, fuzzy +-msgid "Hollerith and typeless can be passed as arguments" +-msgstr "Hollerith ¤ä·¿¤Ê¤·Äê¿ô¤ò°ú¿ô¤È¤·¤ÆÅϤµ¤Ê¤¤" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1250 +-msgid "Allow ordinary copying of ASSIGN'ed vars" +-msgstr "ASSIGN ¤µ¤ì¤¿ÊÑ¿ô¤ÎÄ̾ï¤Î¥³¥Ô¡¼¤òµö²Ä¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1253 +-msgid "Dummy array dimensioned to (1) is assumed-size" +-msgstr "¥À¥ß¡¼ÇÛÎó¤Î¼¡¸µ¤ò (1) ¤È¤ß¤Ê¤¹" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1256 +-msgid "Trailing comma in procedure call denotes null argument" +-msgstr "¥×¥í¥·¡¼¥¸¥ã¸Æ¤Ó½Ð¤·Ãæ¤ÎϢ³¥«¥ó¥Þ¤Ç null °ú¿ô¤òɽ¸½¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1259 +-msgid "Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z" +-msgstr "DOUBLE COMPLEX Z ¤Ç¤Î REAL(Z) ¤È AIMAG(Z) ¤òµö²Ä¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1262 +-#, fuzzy +-msgid "Initialization via DATA and PARAMETER is not type-compatible" +-msgstr "DATA ¤ä PARAMETER ·Ðͳ¤Î½é´ü²½¤Ï·¿¸ß´¹¤Ç¤¢¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1265 +-msgid "Allow INTEGER and LOGICAL interchangeability" +-msgstr "INTEGER ¤È LOGICAL ¤ÏÁê¸ß¤ËÊѹ¹²Äǽ¤Ç¤¢¤ë¤È¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1268 +-#, fuzzy +-msgid "Append underscores to externals" +-msgstr "³°ÉôÊÑ¿ô¤ËÆó¤ÄÌܤΥ¢¥ó¥À¡¼¥¹¥³¥¢¤òÉÕ¤±Â­¤µ¤Ê¤¤" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1271 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:975 + #, fuzzy + msgid "Compile whole compilation unit at a time" + msgstr "ËÝÌõñ°ÌÁ´ÂΤò¥Õ¥¡¥¤¥ë¤Ë¥À¥ó¥×¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1274 +-msgid "Delete libU77 intrinsics" +-msgstr "libU77 intrinsic ¤òºï½ü¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1277 +-msgid "Disable libU77 intrinsics" +-msgstr "libU77 intrinsic ¤ò̵¸ú²½¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1280 +-#, fuzzy +-msgid "Enable libU77 intrinsics" +-msgstr "libU77 intrinsic ¤ò̵¸ú²½¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1283 +-msgid "Hide libU77 intrinsics" +-msgstr "libU77 intrinsic ¤ò±£¤¹" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1292 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:984 + msgid "Allow math optimizations that may violate IEEE or ISO standards" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1295 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:987 + msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1298 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:990 + #, fuzzy + msgid "Make \"char\" unsigned by default" + msgstr "'char' ¤ò¥Ç¥Õ¥©¥ë¥È¤ÇÉä¹ç̵¤·¤È¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1301 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:993 + #, fuzzy + msgid "Perform loop unswitching" + msgstr "Á´¤Æ¤Î¥ë¡¼¥×¤Ç¥ë¡¼¥×Ÿ³«¤ò¹Ô¤Ê¤¦" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1304 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:996 + msgid "Just generate unwind tables for exception handling" + msgstr "´¬¤­Ìᤷ¤ò¹Ô¤Ê¤¦Îã³°Êä­Íѥơ¼¥Ö¥ë¤òÀ¸À®¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1310 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:999 + #, fuzzy + msgid "Use __cxa_atexit to register destructors" + msgstr "¥Ç¥¹¥È¥é¥¯¥¿¤ÎÅÐÏ¿¤Ë __cxa_atexit ¤òÍøÍѤ¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1316 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1002 + #, fuzzy + msgid "Add extra commentary to assembler output" + msgstr ";ʬ¤Ê¥³¥á¥ó¥È¤ò¥¢¥»¥ó¥Ö¥é½ÐÎϤËÄɲ乤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1319 +-#, fuzzy +-msgid "Print g77-specific version information and run internal tests" +-msgstr "g77 ¸ÇÍ­¤Î¥³¥ó¥Ñ¥¤¥é¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɽ¼¨¡¢ÆâÉô¥Æ¥¹¥È¤Î¼Â¹Ô" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1322 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1005 + msgid "Use expression value profiles in optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1325 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1008 + msgid "Discard unused virtual functions" + msgstr "»È¤ï¤ì¤Ê¤¤²¾ÁÛ´Ø¿ô¤òÀÚ¤ê¼Î¤Æ¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1328 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1011 + msgid "Implement vtables using thunks" + msgstr "thunk ¤ò»È¤Ã¤Æ vtable ¤ò¼ÂÁõ¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1331 +-msgid "Program is written in VXT (Digital-like) FORTRAN" +-msgstr "¥×¥í¥°¥é¥à¤Ï VXT (Digital) FORTRAN ¤Ç½ñ¤«¤ì¤Æ¤¤¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1334 +-msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "VXT FORTRAN ¤¬¥µ¥Ý¡¼¥È¤¹¤ëÈó FORTRAN-77 intrinsics ¤òºï½ü¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1337 +-msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "VXT FORTRAN ¤¬¥µ¥Ý¡¼¥È¤¹¤ëÈó FORTRAN-77 intrinsics ¤ò̵¸ú²½¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1340 +-#, fuzzy +-msgid "Enable non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "VXT FORTRAN ¤¬¥µ¥Ý¡¼¥È¤¹¤ëÈó FORTRAN-77 intrinsics ¤ò̵¸ú²½¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1343 +-msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "VXT FORTRAN ¤¬¥µ¥Ý¡¼¥È¤¹¤ëÈó FORTRAN-77 intrinsics ¤ò±£¤¹" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1349 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1014 + msgid "Emit common-like symbols as weak symbols" + msgstr "¥³¥â¥ó¥·¥ó¥Ü¥ë¤ò¥¦¥£¡¼¥¯¥·¥ó¥Ü¥ë¤ÎÍͤËÀ¸À®¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1352 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1017 + msgid "Construct webs and split unrelated uses of single variable" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1355 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1020 + msgid "-fwide-exec-charset=\tConvert all wide strings and character constants to character set " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1358 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1023 + msgid "Generate a #line directive pointing at the current working directory" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1361 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1026 + msgid "Assume signed arithmetic overflow wraps around" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1364 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1029 + msgid "Store strings in writable data section" + msgstr "ʸ»úÎó¤ò½ñ¤­¹þ¤ß²Äǽ¥Ç¡¼¥¿¥»¥¯¥·¥ç¥ó¤Ë³ÊǼ¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1367 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1032 + msgid "Emit cross referencing information" + msgstr "Áê¸ß»²¾È¾ðÊó¤òÀ¸À®¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1370 +-#, fuzzy +-msgid "Print internal debugging-related information" +-msgstr "ÆâÉô¥Ç¥Ð¥Ã¥°´ØÏ¢¾ðÊó¤òɽ¼¨¤¹¤ë" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1373 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1035 + #, fuzzy + msgid "Put zero initialized data in the bss section" + msgstr "Âç°èÊÑ¿ôÅù¤ò½é´ü²½¤µ¤ì¤Ê¤¤¥³¥â¥ó¥»¥¯¥·¥ç¥ó¤ËÃÖ¤«¤Ê¤¤" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1376 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1038 + msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1379 +-msgid "Treat initial values of 0 like non-zero values" +-msgstr "0 ¤Î½é´ü²½ÃͤòÈó¥¼¥íÃͤȤ·¤Æ¼è¤ê°·¤¦" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1382 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1041 + #, fuzzy + msgid "Generate debug information in default format" + msgstr "¥Ç¥Õ¥©¥ë¥È·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1385 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1044 + #, fuzzy + msgid "Generate debug information in COFF format" + msgstr "¥Ç¥Õ¥©¥ë¥È·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1388 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1047 + #, fuzzy + msgid "Generate debug information in DWARF v2 format" + msgstr "¥Ç¥Õ¥©¥ë¥È·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1391 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1050 + #, fuzzy + msgid "Dump declarations to a .decl file" + msgstr "Àë¸À¤ò .decl ¥Õ¥¡¥¤¥ë¤Ë¥À¥ó¥×¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1394 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1053 + #, fuzzy + msgid "Generate debug information in default extended format" + msgstr "¥Ç¥Õ¥©¥ë¥È³ÈÄ¥·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1397 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1056 + #, fuzzy + msgid "Generate debug information in STABS format" + msgstr "¥Ç¥Õ¥©¥ë¥È·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1400 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1059 + #, fuzzy + msgid "Generate debug information in extended STABS format" + msgstr "¥Ç¥Õ¥©¥ë¥È³ÈÄ¥·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1403 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1062 + #, fuzzy + msgid "Generate debug information in VMS format" + msgstr "¥Ç¥Õ¥©¥ë¥È·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1406 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1065 + #, fuzzy + msgid "Generate debug information in XCOFF format" + msgstr "¥Ç¥Õ¥©¥ë¥È·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1409 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1068 + #, fuzzy + msgid "Generate debug information in extended XCOFF format" + msgstr "¥Ç¥Õ¥©¥ë¥È³ÈÄ¥·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1412 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1071 + msgid "-idirafter \tAdd to the end of the system include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1415 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1074 + msgid "-imacros \tAccept definition of macros in " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1418 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1077 + msgid "-include \tInclude the contents of before other files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1421 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1080 + msgid "-iprefix \tSpecify as a prefix for next two options" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1424 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1083 + msgid "-isysroot \tSet to be the system root directory" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1427 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1086 + msgid "-isystem \tAdd to the start of the system include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1430 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1089 + msgid "-iwithprefix \tAdd to the end of the system include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1433 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1092 + msgid "-iwithprefixbefore \tAdd to the end of the main include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1445 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1104 + msgid "Do not search standard system include directories (those specified with -isystem will still be used)" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1448 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1107 + msgid "Do not search standard system include directories for C++" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1451 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1110 + #, fuzzy + msgid "-o \tPlace output into " + msgstr " -o ½ÐÎϤò ¤Ë½ñ¤­¹þ¤à\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1454 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1113 + #, fuzzy + msgid "Enable function profiling" + msgstr "mips16 ´Ø¿ô¥×¥í¥Õ¥¡¥¤¥ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1457 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1116 + #, fuzzy + msgid "Issue warnings needed for strict compliance to the standard" + msgstr " -pedantic ¸·Ì©¤Ê ISO C ¤Ø¤ÎŬ¹ç¤ËÍפ¹¤ë·Ù¹ð¤òȯ¤¹¤ë\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1460 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1119 + msgid "Like -pedantic but issue them as errors" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1463 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1122 + #, fuzzy + msgid "Generate C header of platform-specific features" + msgstr "¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¸ÇÍ­¤Îµ¡Ç½¤Î C ¥Ø¥Ã¥À¤òÀ¸À®¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1466 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1125 + #, fuzzy + msgid "Do not display functions compiled or elapsed time" + msgstr " -quiet ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿´Ø¿ô¤ä·Ð²á»þ´Ö¤òɽ¼¨¤·¤Ê¤¤\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1469 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1128 + #, fuzzy + msgid "Remap file names when including files" + msgstr "#%s ¤Ç¤Î¥Õ¥¡¥¤¥ë̾¤¬¶õ¤Ç¤¹" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1472 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1131 + msgid "Conform to the ISO 1998 C++ standard" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1475 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1134 + msgid "Conform to the ISO 1990 C standard" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1478 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1137 + msgid "Conform to the ISO 1999 C standard" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1481 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1502 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1505 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1140 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1161 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1164 + msgid "Deprecated in favor of -std=c99" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1484 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1143 + msgid "Conform to the ISO 1998 C++ standard with GNU extensions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1487 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1146 + msgid "Conform to the ISO 1990 C standard with GNU extensions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1490 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1149 + msgid "Conform to the ISO 1999 C standard with GNU extensions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1493 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1152 + msgid "Deprecated in favor of -std=gnu99" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1496 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1155 + msgid "Deprecated in favor of -std=c89" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1499 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1158 + msgid "Conform to the ISO 1990 C standard as amended in 1994" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1508 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1167 + #, fuzzy + msgid "Enable traditional preprocessing" + msgstr "¥¹¥¿¥Ã¥¯Ãµº÷¤òÍ­¸ú¤Ë¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1511 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1170 + msgid "-trigraphs\tSupport ISO C trigraphs" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1514 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1173 + msgid "Do not predefine system-specific and GCC-specific macros" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1517 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1176 + #, fuzzy + msgid "Enable verbose output" + msgstr "¥Ç¥Ð¥Ã¥°½ÐÎϤòÍ­¸ú¤Ë¤¹¤ë" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1523 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1179 ++#, fuzzy ++msgid "Display the compiler's version" ++msgstr " -version ¥³¥ó¥Ñ¥¤¥é¤Î¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨¤¹¤ë\n" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1182 + #, fuzzy + msgid "Suppress warnings" + msgstr "%s: ·Ù¹ð: " + +-#: config/i386/freebsd-aout.h:215 config/rs6000/sysv4.h:1089 ++#: config/i386/cygwin.h:29 ++msgid "mno-cygwin and mno-win32 are not compatible" ++msgstr "mno-cygwin ¤È mno-win32 ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó" ++ ++#: config/i386/cygwin.h:70 config/i386/mingw32.h:58 ++msgid "shared and mdll are not compatible" ++msgstr "shared ¤È mdll ¤È¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó" ++ ++#: config/i386/freebsd-aout.h:215 + msgid "`-p' not supported; use `-pg' and gprof(1)" + msgstr "`-p' ¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó. `-pg' ¤È gprof(1) ¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤" + +@@ -22393,6 +22057,27 @@ + msgid "GCC does not support -CC without using -E" + msgstr "GNU C ¤Ï -E ¤òȼ¤ï¤Ê¤¤ -C ¤ò¼ÂÁõ¤·¤Æ¤¤¤Þ¤»¤ó" + ++#: config/i386/sco5.h:191 ++#, fuzzy ++msgid "-pg not supported on this platform" ++msgstr "init_priority °À­¤Ï¤³¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" ++ ++#: config/i386/sco5.h:192 ++#, fuzzy ++msgid "-p and -pp specified - pick one" ++msgstr "-I- ¤¬Æó²ó»ØÄꤵ¤ì¤Þ¤·¤¿" ++ ++#: config/i386/sco5.h:266 ++#, fuzzy ++msgid "-G and -static are mutually exclusive" ++msgstr "-pedantic ¤È -traditional ¤È¤ÏÁê¸ßÇÓ¾Ū¤Ç¤¹" ++ ++#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22 ++#: config/sparc/sol2-bi.h:167 config/sparc/sol2-bi.h:172 ++#, fuzzy ++msgid "does not support multilib" ++msgstr "%s ¤Ï %s ¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó" ++ + #: config/sparc/linux64.h:211 config/sparc/linux64.h:222 + #: config/sparc/netbsd-elf.h:140 config/sparc/netbsd-elf.h:159 + #: config/sparc/sol2-bi.h:195 config/sparc/sol2-bi.h:205 +@@ -22400,46 +22085,42 @@ + msgid "may not use both -m32 and -m64" + msgstr "-mfp64 ¤È -m4650 ¤ÎξÊý¤ò»È¤¦¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó" + +-#: config/i386/mingw32.h:58 config/i386/cygwin.h:70 +-msgid "shared and mdll are not compatible" +-msgstr "shared ¤È mdll ¤È¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó" +- +-#: config/darwin.h:215 ++#: config/darwin.h:222 + msgid "-current_version only allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:218 ++#: config/darwin.h:225 + msgid "-install_name only allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:223 ++#: config/darwin.h:230 + #, fuzzy + msgid "-bundle not allowed with -dynamiclib" + msgstr "-m64 »ØÄê¥â¡¼¥É¤Ç¤Ï -mlong-double-64 ¤Ïµö²Ä¤µ¤ì¤Þ¤»¤ó" + +-#: config/darwin.h:224 ++#: config/darwin.h:231 + #, fuzzy + msgid "-bundle_loader not allowed with -dynamiclib" + msgstr "-m64 »ØÄê¥â¡¼¥É¤Ç¤Ï -mlong-double-64 ¤Ïµö²Ä¤µ¤ì¤Þ¤»¤ó" + +-#: config/darwin.h:225 ++#: config/darwin.h:232 + #, fuzzy + msgid "-client_name not allowed with -dynamiclib" + msgstr "-m64 »ØÄê¥â¡¼¥É¤Ç¤Ï -mlong-double-64 ¤Ïµö²Ä¤µ¤ì¤Þ¤»¤ó" + +-#: config/darwin.h:228 ++#: config/darwin.h:235 + msgid "-force_cpusubtype_ALL not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:229 ++#: config/darwin.h:236 + msgid "-force_flat_namespace not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:231 ++#: config/darwin.h:238 + msgid "-keep_private_externs not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:232 ++#: config/darwin.h:239 + #, fuzzy + msgid "-private_bundle not allowed with -dynamiclib" + msgstr "-m64 »ØÄê¥â¡¼¥É¤Ç¤Ï -mlong-double-64 ¤Ïµö²Ä¤µ¤ì¤Þ¤»¤ó" +@@ -22457,53 +22138,11 @@ + msgid "may not use both -EB and -EL" + msgstr "-EB ¤È -EL ¤ÎξÊý¤ò»È¤¦¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó" + +-#: config/mips/mips.h:988 +-#, fuzzy +-msgid "-pipe is not supported" +-msgstr "-pipe ¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" +- +-#: java/jvspec.c:80 ada/lang-specs.h:34 gcc.c:767 +-msgid "-pg and -fomit-frame-pointer are incompatible" +-msgstr "-pg ¤È -fomit-frame-pointer ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó" +- +-#: java/lang-specs.h:34 +-msgid "-fjni and -femit-class-files are incompatible" +-msgstr "-fjni ¤È -femit-class-files ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó" +- +-#: java/lang-specs.h:35 +-msgid "-fjni and -femit-class-file are incompatible" +-msgstr "-fjini ¤È -femit-class-file ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó" +- +-#: java/lang-specs.h:36 java/lang-specs.h:37 +-msgid "-femit-class-file should used along with -fsyntax-only" +-msgstr "" +- + #: treelang/lang-specs.h:52 + #, fuzzy + msgid "-pg or -p and -fomit-frame-pointer are incompatible" + msgstr "-pg ¤È -fomit-frame-pointer ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó" + +-#: config/sparc/sol2-bi.h:167 config/sparc/sol2-bi.h:172 +-#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22 +-#, fuzzy +-msgid "does not support multilib" +-msgstr "%s ¤Ï %s ¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó" +- +-#: config/i386/sco5.h:191 +-#, fuzzy +-msgid "-pg not supported on this platform" +-msgstr "init_priority °À­¤Ï¤³¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" +- +-#: config/i386/sco5.h:192 +-#, fuzzy +-msgid "-p and -pp specified - pick one" +-msgstr "-I- ¤¬Æó²ó»ØÄꤵ¤ì¤Þ¤·¤¿" +- +-#: config/i386/sco5.h:266 +-#, fuzzy +-msgid "-G and -static are mutually exclusive" +-msgstr "-pedantic ¤È -traditional ¤È¤ÏÁê¸ßÇÓ¾Ū¤Ç¤¹" +- + #: config/arm/arm.h:198 + msgid "-mapcs-26 and -mapcs-32 may not be used together" + msgstr "-mapcs-26 ¤È -mapcs-32 ¤ÏƱ»þ¤Ë»È¤¨¤Þ¤»¤ó" +@@ -22520,6 +22159,15 @@ + msgid "the m210 does not have little endian support" + msgstr "m210 ¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥µ¥Ý¡¼¥È¤ò¹Ô¤Ê¤¨¤Þ¤»¤ó" + ++#: config/mips/mips.h:988 ++#, fuzzy ++msgid "-pipe is not supported" ++msgstr "-pipe ¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" ++ ++#: ada/lang-specs.h:34 java/jvspec.c:80 gcc.c:767 ++msgid "-pg and -fomit-frame-pointer are incompatible" ++msgstr "-pg ¤È -fomit-frame-pointer ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó" ++ + #: ada/lang-specs.h:36 + msgid "one of -c, -S, -gnatc, -gnatz, or -gnats is required for Ada" + msgstr "" +@@ -22534,8 +22182,16 @@ + msgid "-msingle-float and -msoft-float can not both be specified" + msgstr "-msingle-float ¤È -msoft-float ¤ò°ìÅ٤˻ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£" + +-#: config/rs6000/darwin.h:98 +-msgid " conflicting code gen style switches are used" ++#: java/lang-specs.h:34 ++msgid "-fjni and -femit-class-files are incompatible" ++msgstr "-fjni ¤È -femit-class-files ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó" ++ ++#: java/lang-specs.h:35 ++msgid "-fjni and -femit-class-file are incompatible" ++msgstr "-fjini ¤È -femit-class-file ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó" ++ ++#: java/lang-specs.h:36 java/lang-specs.h:37 ++msgid "-femit-class-file should used along with -fsyntax-only" + msgstr "" + + #: gcc.c:743 +@@ -22547,9 +22203,9 @@ + msgid "-E required when input is from standard input" + msgstr "ÆþÎϤ¬É¸½àÆþÎϤξì¹ç¤Ï -E ¤¬É¬ÍפǤ¹" + +-#: config/i386/cygwin.h:29 +-msgid "mno-cygwin and mno-win32 are not compatible" +-msgstr "mno-cygwin ¤È mno-win32 ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó" ++#: config/rs6000/darwin.h:98 ++msgid " conflicting code gen style switches are used" ++msgstr "" + + #~ msgid "__builtin_trap not supported by this target" + #~ msgstr "__builtin_trap ¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" +@@ -23314,9 +22970,6 @@ + #~ msgid "Warn when a function is declared extern, then inline" + #~ msgstr "´Ø¿ô¤¬ extern Àë¸À¤µ¤ì¤¿¸å¡¢inline ¤È¤µ¤ì¤¿¾ì¹ç¤Ë·Ù¹ð¤¹¤ë" + +-#~ msgid "Don't announce deprecation of compiler features" +-#~ msgstr "¿ä¾©¤µ¤ì¤Ê¤¤¥³¥ó¥Ñ¥¤¥é¤Îµ¡Ç½¤ò¹ðÃΤ·¤Ê¤¤" +- + #~ msgid "type name expected before `&'" + #~ msgstr "`&' ¤ÎÁ°¤Ë·¿¤Î̾Á°¤¬¤¢¤ë¤Ù¤­¤Ç¤¹" + +@@ -23819,15 +23472,222 @@ + #~ msgid "Directory name must immediately follow -I" + #~ msgstr "¥Ç¥¤¥ì¥¯¥È¥ê̾¤Ï -I ¤Î¤¹¤°¸å¤í¤Ë¤Ä¤±¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó" + ++#~ msgid "Print g77-specific compiler version info, run internal tests" ++#~ msgstr "g77 ¸ÇÍ­¤Î¥³¥ó¥Ñ¥¤¥é¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɽ¼¨¡¢ÆâÉô¥Æ¥¹¥È¤Î¼Â¹Ô" ++ ++#~ msgid "Program is written in typical FORTRAN 66 dialect" ++#~ msgstr "¥×¥í¥°¥é¥à¤¬Åµ·¿Åª¤Ê FORTRAN 66 Êý¸À¤Ç½ñ¤«¤ì¤Æ¤¤¤ë" ++ ++#~ msgid "Program is written in typical Unix f77 dialect" ++#~ msgstr "¥×¥í¥°¥é¥à¤¬Åµ·¿Åª¤Ê Unix f77 Êý¸À¤Ç½ñ¤«¤ì¤Æ¤¤¤ë" ++ + #~ msgid "Program does not use Unix-f77 dialectal features" + #~ msgstr "¥×¥í¥°¥é¥à¤¬ Unix-f77 Êý¸À¤Îµ¡Ç½¤ò»È¤Ã¤Æ¤¤¤Ê¤¤" + ++#~ msgid "Program is written in Fortran-90-ish dialect" ++#~ msgstr "¥×¥í¥°¥é¥à¤¬ Fortran-90 ŪÊý¸À¤Ç½ñ¤«¤ì¤Æ¤¤¤ë" ++ ++#~ msgid "Treat local vars and COMMON blocks as if they were named in SAVE statements" ++#~ msgstr "¥í¡¼¥«¥ëÊÑ¿ô¤È COMMON ¥Ö¥í¥Ã¥¯¤ò SAVE ʸ¤Ç̾Á°ÉÕ¤±¤é¤ì¤¿¤è¤¦¤Ë¼è¤ê°·¤¦" ++ ++#~ msgid "Allow $ in symbol names" ++#~ msgstr "$ ¤ò¥·¥ó¥Ü¥ë̾¤È¤·¤Æ»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë" ++ ++#~ msgid "f2c-compatible code need not be generated" ++#~ msgstr "f2c ¸ß´¹¥³¡¼¥É¤òÀ¸À®¤¹¤ëɬÍפ¬¤Ê¤¤" ++ ++#~ msgid "Unsupported; do not generate libf2c-calling code" ++#~ msgstr "¥µ¥Ý¡¼¥È¤µ¤ì¤Ê¤¤ -- libf2c-calling ¥³¡¼¥É¤òÀ¸À®¤·¤Ê¤¤" ++ ++#~ msgid "Unsupported; affects code-generation of arrays" ++#~ msgstr "¥µ¥Ý¡¼¥È¤µ¤ì¤Ê¤¤ -- ÇÛÎó¤Î¥³¡¼¥ÉÀ¸À®¤Ë±Æ¶Á¤¹¤ë" ++ ++#~ msgid "Program is written in Fortran-90-ish free form" ++#~ msgstr "¥×¥í¥°¥é¥à¤Ï Fortran-90 Ū¥Õ¥ê¡¼¥Õ¥©¡¼¥à¤Ç½ñ¤«¤ì¤Æ¤¤¤ë" ++ ++#~ msgid "Warn about use of (only a few for now) Fortran extensions" ++#~ msgstr "Fortran ³ÈÄ¥(º£¤Ï¾¯¤Ê¤¤¤¬)¤Î»ÈÍѤˤĤ¤¤Æ·Ù¹ð¤¹¤ë" ++ ++#~ msgid "Program is written in VXT (Digital-like) FORTRAN" ++#~ msgstr "¥×¥í¥°¥é¥à¤Ï VXT (Digital) FORTRAN ¤Ç½ñ¤«¤ì¤Æ¤¤¤ë" ++ ++#~ msgid "Disallow all ugly features" ++#~ msgstr "Á´¤Æ¤Î½¹¤¤µ¡Ç½¤òµö²Ä¤·¤Ê¤¤" ++ ++#~ msgid "Hollerith and typeless constants not passed as arguments" ++#~ msgstr "Hollerith ¤ä·¿¤Ê¤·Äê¿ô¤ò°ú¿ô¤È¤·¤ÆÅϤµ¤Ê¤¤" ++ ++#~ msgid "Allow ordinary copying of ASSIGN'ed vars" ++#~ msgstr "ASSIGN ¤µ¤ì¤¿ÊÑ¿ô¤ÎÄ̾ï¤Î¥³¥Ô¡¼¤òµö²Ä¤¹¤ë" ++ ++#~ msgid "Dummy array dimensioned to (1) is assumed-size" ++#~ msgstr "¥À¥ß¡¼ÇÛÎó¤Î¼¡¸µ¤ò (1) ¤È¤ß¤Ê¤¹" ++ ++#~ msgid "Trailing comma in procedure call denotes null argument" ++#~ msgstr "¥×¥í¥·¡¼¥¸¥ã¸Æ¤Ó½Ð¤·Ãæ¤ÎϢ³¥«¥ó¥Þ¤Ç null °ú¿ô¤òɽ¸½¤¹¤ë" ++ ++#~ msgid "Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z" ++#~ msgstr "DOUBLE COMPLEX Z ¤Ç¤Î REAL(Z) ¤È AIMAG(Z) ¤òµö²Ä¤¹¤ë" ++ ++#~ msgid "Initialization via DATA and PARAMETER is type-compatible" ++#~ msgstr "DATA ¤ä PARAMETER ·Ðͳ¤Î½é´ü²½¤Ï·¿¸ß´¹¤Ç¤¢¤ë" ++ ++#~ msgid "Allow INTEGER and LOGICAL interchangeability" ++#~ msgstr "INTEGER ¤È LOGICAL ¤ÏÁê¸ß¤ËÊѹ¹²Äǽ¤Ç¤¢¤ë¤È¤¹¤ë" ++ ++#~ msgid "Print internal debugging-related info" ++#~ msgstr "ÆâÉô¥Ç¥Ð¥Ã¥°´ØÏ¢¾ðÊó¤òɽ¼¨¤¹¤ë" ++ ++#~ msgid "Initialize local vars and arrays to zero" ++#~ msgstr "¥í¡¼¥«¥ëÊÑ¿ô¤äÇÛÎó¤ò¥¼¥í¤Ë½é´ü²½¤¹¤ë" ++ ++#~ msgid "Backslashes in character/hollerith constants not special (C-style)" ++#~ msgstr "ʸ»ú/hollerith Äê¿ô¤Ç¤Î¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤òÆüì¤Ê¤â¤Î¤È¤·¤Ê¤¤ (C ¼°)" ++ ++#~ msgid "Have front end emulate COMPLEX arithmetic to avoid bugs" ++#~ msgstr "COMPLEX ·×»»¤Î¥Ð¥°¤ò²óÈò¤ò¥¨¥ß¥å¥ì¡¼¥È¤¹¤ë¥Õ¥í¥ó¥È¥¨¥ó¥É¤ò»ý¤Ä" ++ + #~ msgid "Disable the appending of underscores to externals" + #~ msgstr "³°ÉôÊÑ¿ô¤Ë¥¢¥ó¥À¡¼¥¹¥³¥¢¤òÉÕ¤±Â­¤µ¤Ê¤¤" + ++#~ msgid "Never append a second underscore to externals" ++#~ msgstr "³°ÉôÊÑ¿ô¤ËÆó¤ÄÌܤΥ¢¥ó¥À¡¼¥¹¥³¥¢¤òÉÕ¤±Â­¤µ¤Ê¤¤" ++ ++#~ msgid "Intrinsics spelled as e.g. SqRt" ++#~ msgstr "intrinsic ¤¬Î㤨¤Ð SqRt ¤ÎÍѤËÄÖ¤é¤ì¤ë" ++ ++#~ msgid "Intrinsics in uppercase" ++#~ msgstr "intrinsic ¤ò±ÑÂçʸ»ú¤È¤¹¤ë" ++ ++#~ msgid "Intrinsics letters in arbitrary cases" ++#~ msgstr "intrinsic ʸ»ú¤ÏǤ°Õ¤Î¥±¡¼¥¹¤È¤¹¤ë" ++ ++#~ msgid "Language keywords spelled as e.g. IOStat" ++#~ msgstr "¸À¸ìͽÌó¸ì¤¬Î㤨¤Ð IOStat ¤ÎÍѤËÄÖ¤é¤ì¤ë" ++ ++#~ msgid "Language keywords in uppercase" ++#~ msgstr "¸À¸ìͽÌó¸ì¤Ï±ÑÂçʸ»ú¤È¤¹¤ë" ++ ++#~ msgid "Language keyword letters in arbitrary cases" ++#~ msgstr "¸À¸ìͽÌó¸ìʸ»ú¤ÏǤ°Õ¤Î¥±¡¼¥¹¤È¤¹¤ë" ++ ++#~ msgid "Internally convert most source to uppercase" ++#~ msgstr "ÆâÉôŪ¤ÊÊÑ´¹¤Ç¤Ï¥½¡¼¥¹¤ÎËؤó¤É¤ò±ÑÂçʸ»ú¤È¤¹¤ë" ++ ++#~ msgid "Internally preserve source case" ++#~ msgstr "ÆâÉôŪ¤Ë¥½¡¼¥¹¤Î¥±¡¼¥¹¤òÊÝ»ý¤¹¤ë" ++ ++#~ msgid "Symbol names spelled in mixed case" ++#~ msgstr "¥·¥ó¥Ü¥ë̾¤Ï¥±¡¼¥¹º®ºß¤ÇÄÖ¤é¤ì¤ë" ++ ++#~ msgid "Symbol names in uppercase" ++#~ msgstr "¥·¥ó¥Ü¥ë̾¤òÂçʸ»ú¤È¤¹¤ë" ++ ++#~ msgid "Program written in uppercase" ++#~ msgstr "¥×¥í¥°¥é¥à¤¬±ÑÂçʸ»ú¤Ç½ñ¤«¤ì¤Æ¤¤¤ë" ++ ++#~ msgid "Program written in lowercase" ++#~ msgstr "¥×¥í¥°¥é¥à¤¬±Ñ¾®Ê¸»ú¤Ç½ñ¤«¤ì¤Æ¤¤¤ë" ++ ++#~ msgid "Program written in strict mixed-case" ++#~ msgstr "¥×¥í¥°¥é¥à¤¬¸·Ì©¤Ë¥±¡¼¥¹º®ºß¤Ç½ñ¤«¤ì¤Æ¤¤¤ë" ++ ++#~ msgid "Compile as if program written in uppercase" ++#~ msgstr "¥×¥í¥°¥é¥à¤¬±ÑÂçʸ»ú¤Ç½ñ¤«¤ì¤¿Íͤ˥³¥ó¥Ñ¥¤¥ë¤¹¤ë" ++ ++#~ msgid "Compile as if program written in lowercase" ++#~ msgstr "¥×¥í¥°¥é¥à¤¬±Ñ¾®Ê¸»ú¤Ç½ñ¤«¤ì¤¿Íͤ˥³¥ó¥Ñ¥¤¥ë¤¹¤ë" ++ ++#~ msgid "Preserve all spelling (case) used in program" ++#~ msgstr "¥×¥í¥°¥é¥à¤Ç»È¤ï¤ì¤¿ÄÖ¤ê(¤Î¥±¡¼¥¹)¤òÁ´¤ÆÊÝ»ý¤¹¤ë" ++ ++#~ msgid "Delete libU77 intrinsics with bad interfaces" ++#~ msgstr "libU77 intrinsic ¤òÉÔÀµ¤Ê interface ¤È¶¦¤Ëºï½ü¤¹¤ë" ++ ++#~ msgid "Disable libU77 intrinsics with bad interfaces" ++#~ msgstr "libU77 intrinsic ¤òÉÔÀµ¤Ê interface ¤È¶¦¤Ë̵¸ú²½¤¹¤ë" ++ ++#~ msgid "Hide libU77 intrinsics with bad interfaces" ++#~ msgstr "libU77 intrinsic ¤òÉÔÀµ¤Ê interface ¤È¶¦¤Ë±£¤¹" ++ ++#~ msgid "Delete non-FORTRAN-77 intrinsics f2c supports" ++#~ msgstr "f2c ¤¬¥µ¥Ý¡¼¥È¤¹¤ëÈó FORTRAN-77 intrinsics ¤òºï½ü¤¹¤ë" ++ ++#~ msgid "Disable non-FORTRAN-77 intrinsics f2c supports" ++#~ msgstr "f2c ¤¬¥µ¥Ý¡¼¥È¤¹¤ëÈó FORTRAN-77 intrinsics ¤ò̵¸ú²½¤¹¤ë" ++ ++#~ msgid "Hide non-FORTRAN-77 intrinsics f2c supports" ++#~ msgstr "f2c ¤¬¥µ¥Ý¡¼¥È¤¹¤ëÈó FORTRAN-77 intrinsics ¤ò±£¤¹" ++ ++#~ msgid "Delete non-FORTRAN-77 intrinsics F90 supports" ++#~ msgstr "F90 ¤¬¥µ¥Ý¡¼¥È¤¹¤ëÈó FORTRAN-77 intrinsics ¤òºï½ü¤¹¤ë" ++ ++#~ msgid "Disable non-FORTRAN-77 intrinsics F90 supports" ++#~ msgstr "F90 ¤¬¥µ¥Ý¡¼¥È¤¹¤ëÈó FORTRAN-77 intrinsics ¤ò̵¸ú²½¤¹¤ë" ++ ++#~ msgid "Hide non-FORTRAN-77 intrinsics F90 supports" ++#~ msgstr "F90 ¤¬¥µ¥Ý¡¼¥È¤¹¤ëÈó FORTRAN-77 intrinsics ¤ò±£¤¹" ++ ++#~ msgid "Delete non-FORTRAN-77 intrinsics g77 supports" ++#~ msgstr "g77 ¤¬¥µ¥Ý¡¼¥È¤¹¤ëÈó FORTRAN-77 intrinsics ¤òºï½ü¤¹¤ë" ++ ++#~ msgid "Disable non-FORTRAN 77 intrinsics F90 supports" ++#~ msgstr "g77 ¤¬¥µ¥Ý¡¼¥È¤¹¤ëÈó FORTRAN-77 intrinsics ¤ò̵¸ú²½¤¹¤ë" ++ ++#~ msgid "Hide non-FORTRAN 77 intrinsics F90 supports" ++#~ msgstr "g77 ¤¬¥µ¥Ý¡¼¥È¤¹¤ëÈó FORTRAN-77 intrinsics ¤ò±£¤¹" ++ ++#~ msgid "Delete MIL-STD 1753 intrinsics" ++#~ msgstr "MIL-STD 1753 intrinsic ¤òºï½ü¤¹¤ë" ++ ++#~ msgid "Disable MIL-STD 1753 intrinsics" ++#~ msgstr "MIL-STD 1753 intrinsic ¤ò̵¸ú²½¤¹¤ë" ++ ++#~ msgid "Hide MIL-STD 1753 intrinsics" ++#~ msgstr "MIL-STD 1753 intrinsic ¤ò±£¤¹" ++ ++#~ msgid "Delete libU77 intrinsics" ++#~ msgstr "libU77 intrinsic ¤òºï½ü¤¹¤ë" ++ ++#~ msgid "Disable libU77 intrinsics" ++#~ msgstr "libU77 intrinsic ¤ò̵¸ú²½¤¹¤ë" ++ ++#~ msgid "Hide libU77 intrinsics" ++#~ msgstr "libU77 intrinsic ¤ò±£¤¹" ++ ++#~ msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports" ++#~ msgstr "VXT FORTRAN ¤¬¥µ¥Ý¡¼¥È¤¹¤ëÈó FORTRAN-77 intrinsics ¤òºï½ü¤¹¤ë" ++ ++#~ msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports" ++#~ msgstr "VXT FORTRAN ¤¬¥µ¥Ý¡¼¥È¤¹¤ëÈó FORTRAN-77 intrinsics ¤ò̵¸ú²½¤¹¤ë" ++ ++#~ msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports" ++#~ msgstr "VXT FORTRAN ¤¬¥µ¥Ý¡¼¥È¤¹¤ëÈó FORTRAN-77 intrinsics ¤ò±£¤¹" ++ ++#~ msgid "Treat initial values of 0 like non-zero values" ++#~ msgstr "0 ¤Î½é´ü²½ÃͤòÈó¥¼¥íÃͤȤ·¤Æ¼è¤ê°·¤¦" ++ ++#~ msgid "Emit special debugging information for COMMON and EQUIVALENCE (disabled)" ++#~ msgstr "COMMON ¤ä EQUIVALENCE ÍѤÎÆÃÊ̤ʥǥХå°¾ðÊó¤òȯ¹Ô¤¹¤ë¡Ê̵¸ú²½¤µ¤ì¤Æ¤¤¤ë¡Ë" ++ ++#~ msgid "Take at least one trip through each iterative DO loop" ++#~ msgstr "ºÇÄã¤Ç¤â°ì²ó¤Ï³ÆÈ¿Éü DO ¥ë¡¼¥×¤¬½èÍý¤µ¤ì¤ë¤È¤¹¤ë" ++ ++#~ msgid "Disable fatal diagnostics about inter-procedural problems" ++#~ msgstr "inter-procedural ÌäÂê¤Ë¤Ä¤¤¤Æ¤ÎÃ×̿Ū¤Ê¿ÇÃÇɽ¼¨¤òɽ¼¨¤·¤Ê¤¤" ++ ++#~ msgid "Make prefix-radix non-decimal constants be typeless" ++#~ msgstr "ÈóÀ°¿ôÄê¿ô¤ÎÀÜÈø´ð¿ô¤¬·¿¤Ê¤·¤Ç¤¢¤ë¤È¤¹¤ë" ++ + #~ msgid "Fortran-specific form of -fbounds-check" + #~ msgstr "Fortran ¸ÇÍ­¤Î -fbounds-check ¤Î·Á¼°" + ++#~ msgid "Disable warnings about inter-procedural problems" ++#~ msgstr "inter-procedural ÌäÂê¤Ë¤Ä¤¤¤Æ¤Î·Ù¹ðɽ¼¨¤òɽ¼¨¤·¤Ê¤¤" ++ ++#~ msgid "Warn about constructs with surprising meanings" ++#~ msgstr "²ò¼á¤Ë¸í²ò¤ò¾·¤¯¤â¤Î¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë" ++ + #~ msgid "Add a directory for INCLUDE searching" + #~ msgstr "INCLUDE õº÷ÍѤΥǥ£¥ì¥¯¥È¥ê¤òÄɲ乤ë" + +@@ -23951,6 +23811,12 @@ + #~ msgid "Don't put synchronization structure in each object" + #~ msgstr "Ʊ´ü¹½Â¤ÂΤò³Æ¥ª¥Ö¥¸¥§¥¯¥È¤ËÁȤßÆþ¤ì¤Ê¤¤" + ++#~ msgid "Assume native functions are implemented using JNI" ++#~ msgstr "native ´Ø¿ô¤¬ JNI ¤òÍøÍѤ·¤Æ¼ÂÁõ¤·¤Æ¤¤¤ë¤â¤Î¤È¤ß¤Ê¤¹" ++ ++#~ msgid "Set class path and suppress system path" ++#~ msgstr "¥¯¥é¥¹¥Ñ¥¹¤òÀßÄꤷ¤Æ¥·¥¹¥Æ¥à¥Ñ¥¹¤ò±£¤¹" ++ + #~ msgid "Set class path" + #~ msgstr "¥¯¥é¥¹¥Ñ¥¹¤òÀßÄꤹ¤ë" + +@@ -23966,6 +23832,18 @@ + #~ msgid "Directory where class files should be written" + #~ msgstr "¥¯¥é¥¹¥Õ¥¡¥¤¥ë¤¬½ñ¤­¹þ¤Þ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê" + ++#~ msgid "Warn if modifiers are specified when not necessary" ++#~ msgstr "»ØÄꤵ¤ì¤¿½¤¾þ»Ò¤¬ÉÔÍפʤâ¤Î¤Ç¤¢¤ì¤Ð·Ù¹ð¤¹¤ë" ++ ++#~ msgid "Warn if deprecated empty statements are found" ++#~ msgstr "¿ä¾©¤µ¤ì¤Ê¤¤¶õʸ¤¬¸«¤Ä¤«¤ì¤Ð·Ù¹ð¤¹¤ë" ++ ++#~ msgid "Warn if .class files are out of date" ++#~ msgstr ".class ¥Õ¥¡¥¤¥ë¤¬¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤è¤ê¸Å¤±¤ì¤Ð·Ù¹ð¤¹¤ë" ++ ++#~ msgid "Always check for non gcj generated classes archives" ++#~ msgstr "gcj ¤¬À¸À®¤·¤Æ¤¤¤Ê¤¤¥¯¥é¥¹¥¢¡¼¥«¥¤¥Ö¤ò¾ï¤Ë¸¡ºº¤¹¤ë" ++ + #~ msgid "Can't specify array dimension in a declaration" + #~ msgstr "ÇÛÎó¤Î¼¡¸µ¤òÀë¸À¤Ç»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó" + +@@ -24080,9 +23958,6 @@ + #~ msgid "Consider all mem refs to static data to be volatile" + #~ msgstr "ÀÅŪ¥Ç¡¼¥¿¤Ø¤Î¥á¥â¥ê»²¾È¤òÁ´¤Æ volatile ¤È¤ß¤Ê¤¹" + +-#~ msgid "Integrate simple functions into their callers" +-#~ msgstr "ñ½ã¤Ê´Ø¿ô¤ò¸Æ¤Ó½Ð¤·Â¦¤ËÅý¹ç¤¹¤ë" +- + #~ msgid "Pretend that host and target use the same FP format" + #~ msgstr "¥Û¥¹¥È¤È¥¿¡¼¥²¥Ã¥È¤¬Æ±¤¸ÉâÆ°¾®¿ô·Á¼°¤ò»È¤¦¿¶¤ëÉñ¤¤¤ò¤µ¤»¤ë" + +@@ -24125,9 +24000,6 @@ + #~ msgid "Use the smallest fitting integer to hold enums" + #~ msgstr "Îóµó·¿¤¬ÊÝ»ý¤Ç¤­¤ëºÇ¾®¤ÎÀ°¿ô·¿¤ò»ÈÍѤ¹¤ë" + +-#~ msgid "Enable most warning messages" +-#~ msgstr "Ëؤó¤É¤Î·Ù¹ð¥á¥Ã¥»¡¼¥¸¤òÍ­¸ú¤Ë¤¹¤ë" +- + #~ msgid "Warn if nested comments are detected" + #~ msgstr "Æþ¤ì»Ò¤Ë¤Ê¤Ã¤¿¥³¥á¥ó¥È¤ò¸¡½Ð¤·¤¿¤È¤­¤Ë·Ù¹ð¤¹¤ë" + +@@ -24176,9 +24048,6 @@ + #~ msgid " -ax Enable jump profiling \n" + #~ msgstr " -ax ¥¸¥ã¥ó¥×¥×¥í¥Õ¥¡¥¤¥ë¤òÍ­¸ú¤Ë¤¹¤ë\n" + +-#~ msgid " -version Display the compiler's version\n" +-#~ msgstr " -version ¥³¥ó¥Ñ¥¤¥é¤Î¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨¤¹¤ë\n" +- + #~ msgid "" + #~ "\n" + #~ "Language specific options:\n" +Index: gcc/po/nl.po +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/po/nl.po,v +retrieving revision 1.4.8.3 +retrieving revision 1.4.8.4 +diff -u -r1.4.8.3 -r1.4.8.4 +--- gcc/po/nl.po 14 Sep 2004 20:38:03 -0000 1.4.8.3 ++++ gcc/po/nl.po 7 Nov 2004 19:59:45 -0000 1.4.8.4 +@@ -9,7 +9,7 @@ + msgstr "" + "Project-Id-Version: gcc 3.3.2\n" + "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" +-"POT-Creation-Date: 2004-07-01 11:41-0700\n" ++"POT-Creation-Date: 2004-11-04 19:12-0800\n" + "PO-Revision-Date: 2003-10-26 10:40+0100\n" + "Last-Translator: Tim Van Holder \n" + "Language-Team: Dutch \n" +@@ -38,16 +38,16 @@ + msgid "`%s' attribute only applies to function types" + msgstr "het `%s' attribuut heeft enkel betekenis voor functie-types" + +-#: attribs.c:416 c-common.c:4307 c-common.c:4326 c-common.c:4344 +-#: c-common.c:4371 c-common.c:4390 c-common.c:4413 c-common.c:4436 +-#: c-common.c:4462 c-common.c:4496 c-common.c:4540 c-common.c:4568 +-#: c-common.c:4596 c-common.c:4615 c-common.c:4870 c-common.c:4892 +-#: c-common.c:4927 c-common.c:4994 c-common.c:5040 c-common.c:5098 +-#: c-common.c:5129 c-common.c:5475 c-common.c:5498 c-common.c:5537 +-#: config/arm/arm.c:2281 config/arm/arm.c:2308 config/avr/avr.c:4539 +-#: config/h8300/h8300.c:4284 config/h8300/h8300.c:4307 config/i386/i386.c:1620 +-#: config/i386/i386.c:15397 config/i386/winnt.c:86 config/ia64/ia64.c:1057 +-#: config/ip2k/ip2k.c:3151 ++#: attribs.c:416 c-common.c:4306 c-common.c:4325 c-common.c:4343 ++#: c-common.c:4370 c-common.c:4389 c-common.c:4412 c-common.c:4435 ++#: c-common.c:4461 c-common.c:4495 c-common.c:4539 c-common.c:4567 ++#: c-common.c:4595 c-common.c:4614 c-common.c:4881 c-common.c:4903 ++#: c-common.c:4938 c-common.c:5005 c-common.c:5051 c-common.c:5109 ++#: c-common.c:5140 c-common.c:5440 c-common.c:5463 c-common.c:5502 ++#: config/arm/arm.c:2281 config/arm/arm.c:2308 config/avr/avr.c:4504 ++#: config/h8300/h8300.c:4284 config/h8300/h8300.c:4307 config/i386/i386.c:1626 ++#: config/i386/i386.c:15398 config/i386/winnt.c:86 config/ia64/ia64.c:1057 ++#: config/ip2k/ip2k.c:3151 config/rs6000/rs6000.c:15035 + #, c-format + msgid "`%s' attribute ignored" + msgstr "het `%s' attribuut wordt genegeerd" +@@ -122,7 +122,7 @@ + + #. We can, however, treat "undefined" any way we please. + #. Call abort to encourage the user to fix the program. +-#: builtins.c:4134 c-typeck.c:1733 ++#: builtins.c:4134 c-typeck.c:1713 + msgid "if this code is reached, the program will abort" + msgstr "" + +@@ -159,408 +159,413 @@ + msgid "target format does not support infinity" + msgstr "doelformaat ondersteunt geen oneindige waarde" + +-#: c-common.c:917 ++#: c-common.c:916 + msgid "%Hsuggest explicit braces to avoid ambiguous `else'" + msgstr "" + + # betere vertaling voor 'function scope'? +-#: c-common.c:1141 ++#: c-common.c:1140 + #, fuzzy + msgid "%J'%D' is not defined outside of function scope" + msgstr "`%s' is niet gedefinieerd buiten een functie" + +-#: c-common.c:1161 ++#: c-common.c:1160 + #, c-format + msgid "string length `%d' is greater than the length `%d' ISO C%d compilers are required to support" + msgstr "stringlengte `%d' is groter dan `%d', de lengte die ISO C%d compilers moeten ondersteunen" + +-#: c-common.c:1201 ++#: c-common.c:1200 + msgid "overflow in constant expression" + msgstr "overflow in constante expressie" + +-#: c-common.c:1221 ++#: c-common.c:1220 + msgid "integer overflow in expression" + msgstr "integer overflow in expressie" + +-#: c-common.c:1230 ++#: c-common.c:1229 + msgid "floating point overflow in expression" + msgstr "floating-point overflow in expressie" + +-#: c-common.c:1236 ++#: c-common.c:1235 + msgid "vector overflow in expression" + msgstr "vector overflow in expressie" + + #. This detects cases like converting -129 or 256 to unsigned char. +-#: c-common.c:1258 ++#: c-common.c:1257 + msgid "large integer implicitly truncated to unsigned type" + msgstr "grote integer impliciet afgekapt naar 'unsigned' type" + +-#: c-common.c:1260 ++#: c-common.c:1259 + msgid "negative integer implicitly converted to unsigned type" + msgstr "negatieve integer impliciet omgezet naar 'unsigned' type" + +-#: c-common.c:1306 ++#: c-common.c:1305 + msgid "overflow in implicit constant conversion" + msgstr "overflow in impliciete omzetting van constante" + +-#: c-common.c:1442 ++#: c-common.c:1441 + #, c-format + msgid "operation on `%s' may be undefined" + msgstr "bewerking op `%s' is mogelijk niet gedefinieerd" + + # vertaling voor 'statement'? +-#: c-common.c:1726 ++#: c-common.c:1725 + msgid "expression statement has incomplete type" + msgstr "expressie-statement heeft onvolledig type" + +-#: c-common.c:1758 ++#: c-common.c:1757 + msgid "case label does not reduce to an integer constant" + msgstr "case-label valt niet te herleiden tot een integerconstante" + +-#: c-common.c:2088 ++#: c-common.c:2087 + msgid "invalid truth-value expression" + msgstr "ongeldige waarheidsexpressie" + +-#: c-common.c:2139 ++#: c-common.c:2138 + #, c-format + msgid "invalid operands to binary %s" + msgstr "ongeldige operanden voor binaire %s-operator" + +-#: c-common.c:2373 ++#: c-common.c:2372 + msgid "comparison is always false due to limited range of data type" + msgstr "vergelijking is altijd vals omwille van het beperkte bereik van het datatype" + +-#: c-common.c:2375 ++#: c-common.c:2374 + msgid "comparison is always true due to limited range of data type" + msgstr "vergelijking is altijd waar omwille van het beperkte bereik van het datatype" + +-#: c-common.c:2445 ++#: c-common.c:2444 + msgid "comparison of unsigned expression >= 0 is always true" + msgstr "vergelijking van 'unsigned' expressie >= 0 is altijd waar" + +-#: c-common.c:2454 ++#: c-common.c:2453 + msgid "comparison of unsigned expression < 0 is always false" + msgstr "vergelijking van 'unsigned' expressie < 0 is altijd vals" + +-#: c-common.c:2499 ++#: c-common.c:2498 + msgid "pointer of type `void *' used in arithmetic" + msgstr "pointer van type `void *' gebruikt in rekensom" + +-#: c-common.c:2505 ++#: c-common.c:2504 + msgid "pointer to a function used in arithmetic" + msgstr "pointer naar functie gebruikt in rekensom" + +-#: c-common.c:2511 ++#: c-common.c:2510 + msgid "pointer to member function used in arithmetic" + msgstr "pointer naar lid-functie gebruikt in rekensom" + +-#: c-common.c:2600 f/com.c:14734 ++#: c-common.c:2599 f/com.c:14734 + msgid "struct type value used where scalar is required" + msgstr "waarde van struct-type gebruikt waar een scalair nodig is" + +-#: c-common.c:2604 f/com.c:14738 ++#: c-common.c:2603 f/com.c:14738 + msgid "union type value used where scalar is required" + msgstr "waarde van union-type gebruikt waar een scalair nodig is" + +-#: c-common.c:2608 f/com.c:14742 ++#: c-common.c:2607 f/com.c:14742 + msgid "array type value used where scalar is required" + msgstr "waarde van array-type gebruikt waar een scalair nodig is" + + #. Common Ada/Pascal programmer's mistake. We always warn + #. about this since it is so bad. +-#: c-common.c:2645 ++#: c-common.c:2644 + msgid "the address of `%D', will always evaluate as `true'" + msgstr "" + +-#: c-common.c:2739 f/com.c:14874 ++#: c-common.c:2738 f/com.c:14874 + msgid "suggest parentheses around assignment used as truth value" + msgstr "gebruik liefst haakjes rond toewijzingen die als waarheid gebruikt worden" + +-#: c-common.c:2785 c-common.c:2825 ++#: c-common.c:2784 c-common.c:2824 + msgid "invalid use of `restrict'" + msgstr "ongeldig gebruik van `restrict'" + +-#: c-common.c:2935 ++#: c-common.c:2934 + msgid "invalid application of `sizeof' to a function type" + msgstr "ongeldige toepassing van `sizeof' op een functietype" + +-#: c-common.c:2945 ++#: c-common.c:2944 + #, c-format + msgid "invalid application of `%s' to a void type" + msgstr "ongeldige toepasing van `%s' op een void-type" + +-#: c-common.c:2951 ++#: c-common.c:2950 + #, fuzzy + msgid "invalid application of `%s' to incomplete type `%T' " + msgstr "ongeldige toepassing van `%s' op een onvolledig type" + +-#: c-common.c:2992 ++#: c-common.c:2991 + msgid "`__alignof' applied to a bit-field" + msgstr "`__alignof' toegepast op bitveld" + +-#: c-common.c:3484 ++#: c-common.c:3483 + #, c-format + msgid "cannot disable built-in function `%s'" + msgstr "ingebouwde functie `%s' kan niet uitgeschakeld worden" + +-#: c-common.c:3645 c-typeck.c:1974 ++#: c-common.c:3644 c-typeck.c:1954 + #, c-format + msgid "too few arguments to function `%s'" + msgstr "te weinig argumenten voor functie `%s'" + +-#: c-common.c:3651 c-typeck.c:1835 ++#: c-common.c:3650 c-typeck.c:1815 + #, c-format + msgid "too many arguments to function `%s'" + msgstr "teveel argumenten voor functie `%s'" + +-#: c-common.c:3670 ++#: c-common.c:3669 + #, c-format + msgid "non-floating-point argument to function `%s'" + msgstr "niet-floating-point argument voor functie `%s'" + +-#: c-common.c:3897 ++#: c-common.c:3896 + msgid "pointers are not permitted as case values" + msgstr "pointers zijn niet toegestaan als case-waarden" + +-#: c-common.c:3901 ++#: c-common.c:3900 + #, fuzzy + msgid "range expressions in switch statements are non-standard" + msgstr "ISO C verbiedt het gebruik van bereik-expressies in switch statements" + +-#: c-common.c:3930 ++#: c-common.c:3929 + msgid "empty range specified" + msgstr "leeg bereik opgegeven" + +-#: c-common.c:3981 ++#: c-common.c:3980 + msgid "duplicate (or overlapping) case value" + msgstr "herhaalde (of overlappende) case-waarde" + +-#: c-common.c:3982 ++#: c-common.c:3981 + #, fuzzy + msgid "%Jthis is the first entry overlapping that value" + msgstr "dit is de eerste waarde die die waarde overlapt" + +-#: c-common.c:3986 ++#: c-common.c:3985 + msgid "duplicate case value" + msgstr "herhaalde case-waarde" + +-#: c-common.c:3987 ++#: c-common.c:3986 + #, fuzzy + msgid "%Jpreviously used here" + msgstr "tevoren hier gebruikt" + +-#: c-common.c:3991 ++#: c-common.c:3990 + msgid "multiple default labels in one switch" + msgstr "meerdere default-labels in één switch" + +-#: c-common.c:3992 ++#: c-common.c:3991 + #, fuzzy + msgid "%Jthis is the first default label" + msgstr "dit is het eerste default-label" + +-#: c-common.c:4017 ++#: c-common.c:4016 + #, fuzzy + msgid "taking the address of a label is non-standard" + msgstr "ISO C verbiedt het nemen van het adres van een label" + +-#: c-common.c:4063 ++#: c-common.c:4062 + msgid "%Hignoring return value of `%D', declared with attribute warn_unused_result" + msgstr "" + +-#: c-common.c:4068 ++#: c-common.c:4067 + msgid "%Hignoring return value of function declared with attribute warn_unused_result" + msgstr "" + +-#: c-common.c:4649 ++#: c-common.c:4651 + #, c-format + msgid "unknown machine mode `%s'" + msgstr "onbekende machine-modus `%s'" + +-#: c-common.c:4652 ++#: c-common.c:4654 + #, c-format + msgid "no data type for mode `%s'" + msgstr "geen datatype voor modus `%s'" + +-#: c-common.c:4656 ++#: c-common.c:4658 + #, fuzzy, c-format + msgid "invalid pointer mode `%s'" + msgstr "ongeldige operand van %s" + + # Misschien beter 'emuleren' dan nabootsen? +-#: c-common.c:4663 c-common.c:5226 ++#: c-common.c:4665 c-common.c:5237 + #, c-format + msgid "unable to emulate '%s'" + msgstr "kan '%s' niet nabootsen" + +-#: c-common.c:4707 ++#: c-common.c:4686 ++#, fuzzy, c-format ++msgid "mode `%s' applied to inappropriate type" ++msgstr "parameter `%s' wijst naar een onvolledig type" ++ ++#: c-common.c:4718 + #, fuzzy + msgid "%Jsection attribute cannot be specified for local variables" + msgstr "sectie-attribuut kan niet opgegeven worden voor lokale variabelen" + +-#: c-common.c:4718 ++#: c-common.c:4729 + #, fuzzy + msgid "%Jsection of '%D' conflicts with previous declaration" + msgstr "sectie van `%s' geeft een conflict met een eerdere declaratie" + +-#: c-common.c:4727 ++#: c-common.c:4738 + #, fuzzy + msgid "%Jsection attribute not allowed for '%D'" + msgstr "sectie-attribuut niet toegestaan voor `%s'" + +-#: c-common.c:4733 ++#: c-common.c:4744 + #, fuzzy + msgid "%Jsection attributes are not supported for this target" + msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem" + +-#: c-common.c:4771 ++#: c-common.c:4782 + msgid "requested alignment is not a constant" + msgstr "gevraagd alignment is geen constante" + +-#: c-common.c:4776 ++#: c-common.c:4787 + msgid "requested alignment is not a power of 2" + msgstr "gevraagd alignment is geen macht van 2" + +-#: c-common.c:4781 ++#: c-common.c:4792 + msgid "requested alignment is too large" + msgstr "gevraagd alignment is te groot" + +-#: c-common.c:4807 ++#: c-common.c:4818 + #, fuzzy + msgid "%Jalignment may not be specified for '%D'" + msgstr "er kan geen alignment opgegeven worden voor `%s'" + +-#: c-common.c:4845 ++#: c-common.c:4856 + #, fuzzy + msgid "%J'%D' defined both normally and as an alias" + msgstr "`%s' is zowel als alias en als normale naam gedefinieerd" + +-#: c-common.c:4855 ++#: c-common.c:4866 + msgid "alias arg not a string" + msgstr "alias-argument is geen string" + + # Of moet dit vertaald worden als 'zichtbaarheidsargument is ...'? +-#: c-common.c:4898 ++#: c-common.c:4909 + msgid "visibility arg not a string" + msgstr "argument 'visibility' is geen string" + +-#: c-common.c:4911 ++#: c-common.c:4922 + msgid "visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\"" + msgstr "argument 'visibility' moet \"default\", \"hidden\", \"protected\" of \"internal\" zijn" + +-#: c-common.c:4937 ++#: c-common.c:4948 + msgid "tls_model arg not a string" + msgstr "argument 'tls_model' is geen string" + +-#: c-common.c:4946 ++#: c-common.c:4957 + msgid "tls_model arg must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\"" + msgstr "argument 'tls_model' moet \"local-exec\", \"initial-exec\", \"local-dynamic\" of \"global-dynamic\" zijn" + +-#: c-common.c:4968 c-common.c:5014 ++#: c-common.c:4979 c-common.c:5025 + #, fuzzy + msgid "%J'%E' attribute applies only to functions" + msgstr "het `%s' attribuut heeft enkel betekenis voor functies" + +-#: c-common.c:4973 c-common.c:5019 ++#: c-common.c:4984 c-common.c:5030 + #, fuzzy + msgid "%Jcan't set '%E' attribute after definition" + msgstr "kan het `%s' attribuut niet instellen na een definitie" + +-#: c-common.c:5095 ++#: c-common.c:5106 + #, c-format + msgid "`%s' attribute ignored for `%s'" + msgstr "het `%s' attribuut wordt genegeerd voor `%s'" + + # Is the %s the argument, or is it 'of' the argument? +-#: c-common.c:5158 ++#: c-common.c:5169 + #, c-format + msgid "invalid vector type for attribute `%s'" + msgstr "ongeldig vector-type voor attribuut `%s'" + +-#: c-common.c:5182 c-common.c:5214 ++#: c-common.c:5193 c-common.c:5225 + msgid "no vector mode with the size and type specified could be found" + msgstr "er kon geen vectormodus gevonden worden met de opgegeven grootte en type" + +-#: c-common.c:5316 ++#: c-common.c:5281 + msgid "nonnull attribute without arguments on a non-prototype" + msgstr "nonnull attribuut zonder argumenten gebruikt voor een niet-prototype" + +-#: c-common.c:5331 ++#: c-common.c:5296 + #, fuzzy, c-format + msgid "nonnull argument has invalid operand number (arg %lu)" + msgstr "de formaatstring heeft een niet-constant operand-nummer" + +-#: c-common.c:5350 ++#: c-common.c:5315 + #, c-format + msgid "nonnull argument with out-of-range operand number (arg %lu, operand %lu)" + msgstr "nonnull argument met operandnummer dat buiten bereik is (arg %lu, operand %lu)" + +-#: c-common.c:5358 ++#: c-common.c:5323 + #, c-format + msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)" + msgstr "nonnull argument verwijst naar niet-pointer operand (arg %lu, operand %lu)" + +-#: c-common.c:5438 ++#: c-common.c:5403 + #, c-format + msgid "null argument where non-null required (arg %lu)" + msgstr "null argument waar een niet-null argument vereist is (arg %lu)" + +-#: c-common.c:5509 ++#: c-common.c:5474 + #, fuzzy + msgid "cleanup arg not an identifier" + msgstr "`defined' zonder een naam" + +-#: c-common.c:5516 ++#: c-common.c:5481 + #, fuzzy + msgid "cleanup arg not a function" + msgstr "opgeroepen object is geen functie" + +-#: c-common.c:5877 ++#: c-common.c:5842 + #, c-format + msgid "%s at end of input" + msgstr "%s aan einde van invoer" + +-#: c-common.c:5883 ++#: c-common.c:5848 + #, fuzzy, c-format + msgid "%s before %s'%c'" + msgstr "%s voor `%s'" + +-#: c-common.c:5885 ++#: c-common.c:5850 + #, fuzzy, c-format + msgid "%s before %s'\\x%x'" + msgstr "%s voor `%s'" + +-#: c-common.c:5889 ++#: c-common.c:5854 + #, c-format + msgid "%s before string constant" + msgstr "%s voor stringconstante" + +-#: c-common.c:5891 ++#: c-common.c:5856 + #, fuzzy, c-format + msgid "%s before numeric constant" + msgstr "%s voor stringconstante" + +-#: c-common.c:5893 ++#: c-common.c:5858 + #, fuzzy, c-format + msgid "%s before \"%s\"" + msgstr "%s voor `%s'" + +-#: c-common.c:5895 ++#: c-common.c:5860 + #, fuzzy, c-format + msgid "%s before '%s' token" + msgstr "%s voor `%s'" + + #. Use `%s' to print the string in case there are any escape + #. characters in the message. +-#: c-common.c:5897 c-typeck.c:2612 c-typeck.c:4004 c-typeck.c:4019 +-#: c-typeck.c:4034 final.c:2776 final.c:2778 gcc.c:4581 rtl-error.c:109 +-#: toplev.c:1357 config/cris/cris.c:552 cp/parser.c:1848 cp/typeck.c:4155 ++#: c-common.c:5862 c-typeck.c:2592 c-typeck.c:3984 c-typeck.c:3999 ++#: c-typeck.c:4014 final.c:2776 final.c:2778 gcc.c:4584 rtl-error.c:109 ++#: toplev.c:1357 config/cris/cris.c:552 cp/parser.c:1848 cp/typeck.c:4173 + #: java/expr.c:356 java/verify.c:1456 java/verify.c:1457 java/verify.c:1472 + #, c-format + msgid "%s" + msgstr "" + +-#: c-convert.c:82 c-typeck.c:1211 c-typeck.c:3444 cp/typeck.c:1363 +-#: cp/typeck.c:5708 treelang/tree-convert.c:79 ++#: c-convert.c:82 c-typeck.c:1211 c-typeck.c:3424 cp/typeck.c:1363 ++#: cp/typeck.c:5729 treelang/tree-convert.c:79 + msgid "void value not ignored as it ought to be" + msgstr "void-waarde niet genegeerd zoals het hoort" + +@@ -758,413 +763,413 @@ + msgid "%Jnon-const declaration of '%D' follows const declaration" + msgstr "niet-static declaratie voor `%s' volgt static declaratie" + +-#: c-decl.c:1262 ++#: c-decl.c:1267 + #, fuzzy + msgid "%Jredundant redeclaration of '%D'" + msgstr "overbodige herdeclaratie van `%s' in zelfde bereik" + +-#: c-decl.c:1581 ++#: c-decl.c:1586 + #, fuzzy + msgid "%Jdeclaration of '%D' shadows a parameter" + msgstr "de declaratie van `%s' verbergt een parameter" + +-#: c-decl.c:1583 ++#: c-decl.c:1588 + #, fuzzy + msgid "%Jdeclaration of '%D' shadows a global declaration" + msgstr "de declaratie van `%s' verbergt een parameter" + +-#: c-decl.c:1585 ++#: c-decl.c:1590 + #, fuzzy + msgid "%Jdeclaration of '%D' shadows a previous local" + msgstr "de declaratie van `%s' verbergt een parameter" + +-#: c-decl.c:1587 cp/name-lookup.c:969 cp/name-lookup.c:992 ++#: c-decl.c:1592 cp/name-lookup.c:969 cp/name-lookup.c:992 + #: cp/name-lookup.c:1000 + #, fuzzy + msgid "%Jshadowed declaration is here" + msgstr "eerdere declaratie van `%s'" + +-#: c-decl.c:1697 ++#: c-decl.c:1702 + #, c-format + msgid "nested extern declaration of `%s'" + msgstr "geneste externe declaratie van `%s'" + +-#: c-decl.c:1838 objc/objc-act.c:2534 objc/objc-act.c:6794 ++#: c-decl.c:1843 objc/objc-act.c:2534 objc/objc-act.c:6794 + #, fuzzy + msgid "%Jprevious declaration of '%D'" + msgstr "eerdere declaratie van `%s'" + +-#: c-decl.c:1879 c-decl.c:1881 ++#: c-decl.c:1884 c-decl.c:1886 + #, c-format + msgid "implicit declaration of function `%s'" + msgstr "impliciete declaratie van functie `%s'" + +-#: c-decl.c:1897 ++#: c-decl.c:1902 + #, c-format + msgid "`%s' undeclared here (not in a function)" + msgstr "`%s' is hier niet gedeclareerd (niet in een functie)" + +-#: c-decl.c:1903 ++#: c-decl.c:1908 + #, c-format + msgid "`%s' undeclared (first use in this function)" + msgstr "`%s' is hier niet gedeclareerd (eerste gebruik in deze functie)" + +-#: c-decl.c:1908 ++#: c-decl.c:1913 + msgid "(Each undeclared identifier is reported only once" + msgstr "(Elke niet-gedeclareerde naam wordt slechts één" + +-#: c-decl.c:1909 ++#: c-decl.c:1914 + msgid "for each function it appears in.)" + msgstr "keer vermeld voor elke functie waarin hij staat.)" + +-#: c-decl.c:1962 ++#: c-decl.c:1967 + #, c-format + msgid "label %s referenced outside of any function" + msgstr "naar label %s gerefereerd buiten enige functie" + +-#: c-decl.c:2009 ++#: c-decl.c:2014 + #, c-format + msgid "duplicate label declaration `%s'" + msgstr "herhaalde label-declaratie `%s'" + +-#: c-decl.c:2010 ++#: c-decl.c:2015 + #, fuzzy + msgid "%Jthis is a previous declaration" + msgstr "dit is een eerdere declaratie" + +-#: c-decl.c:2045 ++#: c-decl.c:2050 + #, fuzzy + msgid "%Hduplicate label `%D'" + msgstr "herhaald label `%s'" + +-#: c-decl.c:2047 ++#: c-decl.c:2052 + #, fuzzy + msgid "%J`%D' previously defined here" + msgstr "`%s' tevoren hier gedefinieerd" + +-#: c-decl.c:2049 ++#: c-decl.c:2054 + #, fuzzy + msgid "%J`%D' previously declared here" + msgstr "`%s' tevoren hier gedeclareerd" + +-#: c-decl.c:2069 ++#: c-decl.c:2074 + msgid "%Htraditional C lacks a separate namespace for labels, identifier `%s' conflicts" + msgstr "" + +-#: c-decl.c:2140 ++#: c-decl.c:2145 + #, fuzzy + msgid "%H`%s' defined as wrong kind of tag" + msgstr "`%s' als ander soort symbool geherdeclareerd" + +-#: c-decl.c:2378 ++#: c-decl.c:2383 + msgid "unnamed struct/union that defines no instances" + msgstr "naamloze struct/union die geen instanties definieert" + +-#: c-decl.c:2397 ++#: c-decl.c:2402 + msgid "useless keyword or type name in empty declaration" + msgstr "nutteloos sleutelwoord of typenaam in lege declaratie" + +-#: c-decl.c:2404 ++#: c-decl.c:2409 + msgid "two types specified in one empty declaration" + msgstr "twee types opgegeven in één lege declaratie" + +-#: c-decl.c:2409 c-parse.y:735 c-parse.y:737 objc/objc-parse.y:776 +-#: objc/objc-parse.y:778 objc/objc-parse.y:3017 ++#: c-decl.c:2414 c-parse.y:735 c-parse.y:737 objc/objc-parse.y:776 ++#: objc/objc-parse.y:778 objc/objc-parse.y:3016 + msgid "empty declaration" + msgstr "lege declaratie" + +-#: c-decl.c:2435 ++#: c-decl.c:2440 + #, fuzzy + msgid "ISO C90 does not support `static' or type qualifiers in parameter array declarators" + msgstr "ISO C89 ondersteunt geen `static' of type-qualificaties in declaratoren van parameter arrays" + +-#: c-decl.c:2437 ++#: c-decl.c:2442 + #, fuzzy + msgid "ISO C90 does not support `[*]' array declarators" + msgstr "ISO C89 ondersteunt geen `[*]' declaratoren van arrays" + +-#: c-decl.c:2440 ++#: c-decl.c:2445 + msgid "GCC does not yet properly implement `[*]' array declarators" + msgstr "GCC heeft nog geen fatsoenlijke implementatie van `[*]' declaratoren van arrays" + +-#: c-decl.c:2456 ++#: c-decl.c:2461 + msgid "static or type qualifiers in abstract declarator" + msgstr "`static' of type-modifier in abstracte declarator" + +-#: c-decl.c:2526 ++#: c-decl.c:2531 + #, fuzzy + msgid "%J'%D' is usually a function" + msgstr "`%s' is meestal een functie" + +-#: c-decl.c:2535 ++#: c-decl.c:2540 + #, fuzzy, c-format + msgid "typedef `%s' is initialized (use __typeof__ instead)" + msgstr "typedef `%s' krijgt beginwaarde" + +-#: c-decl.c:2541 ++#: c-decl.c:2546 + #, c-format + msgid "function `%s' is initialized like a variable" + msgstr "typedef `%s' krijgt beginwaarde alsof het een variabele is" + + #. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE. +-#: c-decl.c:2548 ++#: c-decl.c:2553 + #, c-format + msgid "parameter `%s' is initialized" + msgstr "parameter `%s' krijgt beginwaarde" + +-#: c-decl.c:2568 c-typeck.c:4254 ++#: c-decl.c:2573 c-typeck.c:4234 + msgid "variable-sized object may not be initialized" + msgstr "object van variabele lengte mag geen beginwaarde krijgen" + +-#: c-decl.c:2574 ++#: c-decl.c:2579 + #, c-format + msgid "variable `%s' has initializer but incomplete type" + msgstr "variabele `%s' heeft beginwaarde, maar een onvolledig type" + +-#: c-decl.c:2580 ++#: c-decl.c:2585 + #, c-format + msgid "elements of array `%s' have incomplete type" + msgstr "elementen van array `%s' hebben een onvolledig type" + +-#: c-decl.c:2649 c-decl.c:5451 cp/decl.c:3761 cp/decl.c:10141 ++#: c-decl.c:2654 c-decl.c:5462 cp/decl.c:3775 cp/decl.c:10238 + #, fuzzy + msgid "%Jinline function '%D' given attribute noinline" + msgstr "ingebouwde functie `%s' als niet-functie gedeclareerd" + +-#: c-decl.c:2725 ++#: c-decl.c:2730 + #, fuzzy + msgid "%Jinitializer fails to determine size of '%D'" + msgstr "beginwaarde legt grootte van `%s' niet vast" + +-#: c-decl.c:2730 ++#: c-decl.c:2735 + #, fuzzy + msgid "%Jarray size missing in '%D'" + msgstr "array-grootte ontbreekt in `%s'" + +-#: c-decl.c:2746 ++#: c-decl.c:2751 + #, fuzzy + msgid "%Jzero or negative size array '%D'" + msgstr "array `%s' heeft grootte die negatief of 0 is" + +-#: c-decl.c:2774 ++#: c-decl.c:2779 + #, fuzzy + msgid "%Jstorage size of '%D' isn't known" + msgstr "opslaggrootte van `%s' is onbekend" + +-#: c-decl.c:2784 ++#: c-decl.c:2789 + #, fuzzy + msgid "%Jstorage size of '%D' isn't constant" + msgstr "opslaggrootte van `%s' is niet constant" + +-#: c-decl.c:2867 ++#: c-decl.c:2872 + #, fuzzy + msgid "%Jignoring asm-specifier for non-static local variable '%D'" + msgstr "registernaam opgegeven voor niet-registervariabele `%s'" + + # Of is 'verbiedt parameterdeclaraties op voorhand' beter? +-#: c-decl.c:2978 ++#: c-decl.c:2983 + #, fuzzy + msgid "ISO C forbids forward parameter declarations" + msgstr "ANSI C verbiedt voorwaartse declaraties van parameters" + +-#: c-decl.c:3160 ++#: c-decl.c:3165 + msgid "" + msgstr "" + +-#: c-decl.c:3169 ++#: c-decl.c:3174 + #, c-format + msgid "bit-field `%s' width not an integer constant" + msgstr "breedte van bitveld `%s' is geen integerconstante" + +-#: c-decl.c:3177 ++#: c-decl.c:3182 + #, c-format + msgid "negative width in bit-field `%s'" + msgstr "bitveld `%s' heeft een negatieve breedte" + +-#: c-decl.c:3182 ++#: c-decl.c:3187 + #, c-format + msgid "zero width for bit-field `%s'" + msgstr "bitveld `%s' heeft breedte 0" + +-#: c-decl.c:3192 ++#: c-decl.c:3197 + #, c-format + msgid "bit-field `%s' has invalid type" + msgstr "bitveld `%s' heeft een ongeldig type" + +-#: c-decl.c:3201 ++#: c-decl.c:3206 + #, c-format + msgid "type of bit-field `%s' is a GCC extension" + msgstr "" + +-#: c-decl.c:3210 ++#: c-decl.c:3215 + #, c-format + msgid "width of `%s' exceeds its type" + msgstr "breedte van `%s' overschrijdt zijn type" + +-#: c-decl.c:3220 ++#: c-decl.c:3225 + #, c-format + msgid "`%s' is narrower than values of its type" + msgstr "`%s' is smaller dan waarden van zijn type" + +-#: c-decl.c:3370 cp/decl.c:6805 ++#: c-decl.c:3375 cp/decl.c:6900 + msgid "`long long long' is too long for GCC" + msgstr "`long long long' is te lang voor GCC" + +-#: c-decl.c:3375 ++#: c-decl.c:3380 + #, fuzzy + msgid "ISO C90 does not support `long long'" + msgstr "ANSI C ondersteunt `long long' niet" + +-#: c-decl.c:3384 c-decl.c:3387 cp/decl.c:6810 ++#: c-decl.c:3389 c-decl.c:3392 cp/decl.c:6905 + #, c-format + msgid "duplicate `%s'" + msgstr "herhaalde `%s'" + +-#: c-decl.c:3397 cp/decl.c:6816 ++#: c-decl.c:3402 cp/decl.c:6911 + msgid "`__thread' before `extern'" + msgstr "`__thread' voor `extern'" + +-#: c-decl.c:3399 cp/decl.c:6818 ++#: c-decl.c:3404 cp/decl.c:6913 + msgid "`__thread' before `static'" + msgstr "`__thread' voor `static'" + +-#: c-decl.c:3407 cp/decl.c:6845 ++#: c-decl.c:3412 cp/decl.c:6940 + #, c-format + msgid "two or more data types in declaration of `%s'" + msgstr "twee of meer data types in de declaratie van `%s'" + +-#: c-decl.c:3427 cp/decl.c:6850 ++#: c-decl.c:3432 cp/decl.c:6945 + #, c-format + msgid "`%s' fails to be a typedef or built in type" + msgstr "`%s' is geen typedef of ingebouwd type" + +-#: c-decl.c:3466 ++#: c-decl.c:3471 + #, c-format + msgid "type defaults to `int' in declaration of `%s'" + msgstr "type krijgt standaardwaarde `int' in de declaratie van `%s'" + +-#: c-decl.c:3495 ++#: c-decl.c:3500 + #, c-format + msgid "both long and short specified for `%s'" + msgstr "zowel 'long' als 'short' opgegeven voor `%s'" + +-#: c-decl.c:3499 cp/decl.c:6950 ++#: c-decl.c:3504 cp/decl.c:7045 + #, c-format + msgid "long or short specified with char for `%s'" + msgstr "'long' of 'short' opgegeven bij 'char' voor `%s'" + +-#: c-decl.c:3506 cp/decl.c:6954 ++#: c-decl.c:3511 cp/decl.c:7049 + #, c-format + msgid "long or short specified with floating type for `%s'" + msgstr "'long' of 'short' opgegeven bij floating-point type voor `%s'" + +-#: c-decl.c:3509 ++#: c-decl.c:3514 + msgid "the only valid combination is `long double'" + msgstr "de enige geldige combinatie is `long double'" + +-#: c-decl.c:3515 ++#: c-decl.c:3520 + #, c-format + msgid "both signed and unsigned specified for `%s'" + msgstr "zowel 'signed' als 'unsigned' opgegeven voor `%s'" + +-#: c-decl.c:3517 cp/decl.c:6943 ++#: c-decl.c:3522 cp/decl.c:7038 + #, c-format + msgid "long, short, signed or unsigned invalid for `%s'" + msgstr "'long', 'short', 'signed' of 'unsigned' ongeldig voor `%s'" + +-#: c-decl.c:3523 cp/decl.c:6963 ++#: c-decl.c:3528 cp/decl.c:7058 + #, c-format + msgid "long, short, signed or unsigned used invalidly for `%s'" + msgstr "ongeldig gebruik van 'long', 'short', 'signed' of 'unsigned' voor `%s'" + +-#: c-decl.c:3541 cp/decl.c:6984 ++#: c-decl.c:3546 cp/decl.c:7079 + #, c-format + msgid "complex invalid for `%s'" + msgstr "'complex' ongeldig voor `%s'" + +-#: c-decl.c:3583 ++#: c-decl.c:3588 + #, fuzzy + msgid "ISO C90 does not support complex types" + msgstr "ISO C89 ondersteunt geen complexe types" + +-#: c-decl.c:3595 ++#: c-decl.c:3600 + msgid "ISO C does not support plain `complex' meaning `double complex'" + msgstr "ISO C ondersteunt simpele `complex' niet in de betekenis van `double complex'" + +-#: c-decl.c:3601 c-decl.c:3613 ++#: c-decl.c:3606 c-decl.c:3618 + #, fuzzy + msgid "ISO C does not support complex integer types" + msgstr "ANSI C ondersteunt `long long' niet" + +-#: c-decl.c:3643 c-decl.c:4104 cp/decl.c:7576 ++#: c-decl.c:3648 c-decl.c:4115 cp/decl.c:7671 + msgid "duplicate `const'" + msgstr "herhaalde `const'" + +-#: c-decl.c:3645 c-decl.c:4108 cp/decl.c:7580 ++#: c-decl.c:3650 c-decl.c:4119 cp/decl.c:7675 + msgid "duplicate `restrict'" + msgstr "herhaalde `restrict'" + +-#: c-decl.c:3647 c-decl.c:4106 cp/decl.c:7578 ++#: c-decl.c:3652 c-decl.c:4117 cp/decl.c:7673 + msgid "duplicate `volatile'" + msgstr "herhaalde `volatile'" + +-#: c-decl.c:3676 cp/decl.c:7147 ++#: c-decl.c:3681 cp/decl.c:7242 + #, c-format + msgid "multiple storage classes in declaration of `%s'" + msgstr "meerdere opslagklassen in declaratie van `%s'" + +-#: c-decl.c:3686 ++#: c-decl.c:3691 + msgid "function definition declared `auto'" + msgstr "functie-definitie als `auto' gedeclareerd" + +-#: c-decl.c:3688 ++#: c-decl.c:3693 + msgid "function definition declared `register'" + msgstr "functie-definitie als `register' gedeclareerd" + +-#: c-decl.c:3690 ++#: c-decl.c:3695 + msgid "function definition declared `typedef'" + msgstr "functie-definitie als `typdef' gedeclareerd" + +-#: c-decl.c:3692 ++#: c-decl.c:3697 + #, fuzzy + msgid "function definition declared `__thread'" + msgstr "functie-definitie als `typdef' gedeclareerd" + +-#: c-decl.c:3705 ++#: c-decl.c:3710 + #, c-format + msgid "storage class specified for structure field `%s'" + msgstr "opslagklasse opgegeven voor structure-veld `%s'" + +-#: c-decl.c:3709 cp/decl.c:7192 ++#: c-decl.c:3714 cp/decl.c:7287 + #, c-format + msgid "storage class specified for parameter `%s'" + msgstr "opslagklasse opgegeven voor parameter `%s'" + +-#: c-decl.c:3712 cp/decl.c:7194 ++#: c-decl.c:3717 cp/decl.c:7289 + msgid "storage class specified for typename" + msgstr "opslagklasse opgegeven voor typenaam" + +-#: c-decl.c:3724 cp/decl.c:7209 ++#: c-decl.c:3729 cp/decl.c:7304 + #, c-format + msgid "`%s' initialized and declared `extern'" + msgstr "`%s' krijgt beginwaarde en is als `extern' gedeclareerd" + +-#: c-decl.c:3726 cp/decl.c:7212 ++#: c-decl.c:3731 cp/decl.c:7307 + #, c-format + msgid "`%s' has both `extern' and initializer" + msgstr "`%s' heeft zowel `extern' als een beginwaarde" + +-#: c-decl.c:3731 ++#: c-decl.c:3736 + #, fuzzy, c-format + msgid "file-scope declaration of `%s' specifies `auto'" + msgstr "top-level declaratie van `%s' specifieert `auto'" + +-#: c-decl.c:3736 cp/decl.c:7216 ++#: c-decl.c:3741 cp/decl.c:7311 + #, c-format + msgid "nested function `%s' declared `extern'" + msgstr "geneste functie `%s' is als `extern' gedeclareerd" + +-#: c-decl.c:3742 cp/decl.c:7226 ++#: c-decl.c:3747 cp/decl.c:7321 + #, fuzzy, c-format + msgid "function-scope `%s' implicitly auto and declared `__thread'" + msgstr "geneste functie `%s' is als `extern' gedeclareerd" +@@ -1172,484 +1177,484 @@ + #. Only the innermost declarator (making a parameter be of + #. array type which is converted to pointer type) + #. may have static or type qualifiers. +-#: c-decl.c:3781 c-decl.c:3974 ++#: c-decl.c:3786 c-decl.c:3979 + #, fuzzy + msgid "static or type qualifiers in non-parameter array declarator" + msgstr "ongeldige type-modifier binnen pointer-declarator" + +-#: c-decl.c:3825 ++#: c-decl.c:3830 + #, c-format + msgid "declaration of `%s' as array of voids" + msgstr "`%s' wordt gedeclareerd als een array van voids" + +-#: c-decl.c:3831 ++#: c-decl.c:3836 + #, c-format + msgid "declaration of `%s' as array of functions" + msgstr "`%s' wordt gedeclareerd als een array van functies" + +-#: c-decl.c:3836 ++#: c-decl.c:3841 + #, fuzzy + msgid "invalid use of structure with flexible array member" + msgstr "ongeldig gebruik van onvolledige typedef `%s'" + +-#: c-decl.c:3855 ++#: c-decl.c:3860 + #, c-format + msgid "size of array `%s' has non-integer type" + msgstr "grootte van array `%s' is van een niet-integraal type" + +-#: c-decl.c:3860 ++#: c-decl.c:3865 + #, fuzzy, c-format + msgid "ISO C forbids zero-size array `%s'" + msgstr "ANSI C verbiedt array `%s' met lengte 0" + +-#: c-decl.c:3867 ++#: c-decl.c:3872 + #, c-format + msgid "size of array `%s' is negative" + msgstr "grootte van array `%s' is negatief" + +-#: c-decl.c:3880 ++#: c-decl.c:3885 + #, fuzzy, c-format + msgid "ISO C90 forbids array `%s' whose size can't be evaluated" + msgstr "ANSI C verbiedt array `%s', wiens grootte niet geëvalueerd kan worden" + +-#: c-decl.c:3883 ++#: c-decl.c:3888 + #, fuzzy, c-format + msgid "ISO C90 forbids variable-size array `%s'" + msgstr "ANSI C verbiedt array `%s' van variabele lengte" + +-#: c-decl.c:3913 c-decl.c:4131 cp/decl.c:7755 ++#: c-decl.c:3918 c-decl.c:4142 cp/decl.c:7850 + #, c-format + msgid "size of array `%s' is too large" + msgstr "omvang van array `%s' is te groot" + +-#: c-decl.c:3939 ++#: c-decl.c:3944 + #, fuzzy + msgid "ISO C90 does not support flexible array members" + msgstr "ANSI C ondersteun geen formaatbreedte voor strftime" + +-#: c-decl.c:3949 ++#: c-decl.c:3954 + msgid "array type has incomplete element type" + msgstr "arraytype heeft onvolledig elementtype" + +-#: c-decl.c:3994 cp/decl.c:7347 ++#: c-decl.c:4009 cp/decl.c:7442 + #, c-format + msgid "`%s' declared as function returning a function" + msgstr "`%s' gedeclareerd als een functie die een functie teruggeeft" + +-#: c-decl.c:3999 cp/decl.c:7352 ++#: c-decl.c:4014 cp/decl.c:7447 + #, c-format + msgid "`%s' declared as function returning an array" + msgstr "`%s' gedeclareerd als een functie die een array teruggeeft" + +-#: c-decl.c:4027 ++#: c-decl.c:4038 + #, fuzzy + msgid "ISO C forbids qualified void function return type" + msgstr "ANSI C verbiedt een gekwalificeerde void als teruggeefwaarde voor een functie" + +-#: c-decl.c:4031 ++#: c-decl.c:4042 + #, fuzzy + msgid "type qualifiers ignored on function return type" + msgstr "ANSI C verbiedt een gekwalificeerde void als teruggeefwaarde voor een functie" + +-#: c-decl.c:4060 c-decl.c:4146 c-decl.c:4270 c-decl.c:4356 ++#: c-decl.c:4071 c-decl.c:4157 c-decl.c:4281 c-decl.c:4367 + #, fuzzy + msgid "ISO C forbids qualified function types" + msgstr "ANSI C verbiedt een gekwalificeerd functietype" + +-#: c-decl.c:4100 cp/decl.c:7572 ++#: c-decl.c:4111 cp/decl.c:7667 + msgid "invalid type modifier within pointer declarator" + msgstr "ongeldige type-modifier binnen pointer-declarator" + +-#: c-decl.c:4181 ++#: c-decl.c:4192 + #, fuzzy + msgid "ISO C forbids const or volatile function types" + msgstr "ANSI C verbiedt 'const' of 'volatile' functietypes" + +-#: c-decl.c:4201 cp/decl.c:8036 ++#: c-decl.c:4212 + #, c-format + msgid "variable or field `%s' declared void" + msgstr "variabele of veld `%s' als void gedeclareerd" + +-#: c-decl.c:4234 ++#: c-decl.c:4245 + msgid "attributes in parameter array declarator ignored" + msgstr "attributen genegeerd in declarator van parameter-array" + +-#: c-decl.c:4259 ++#: c-decl.c:4270 + #, fuzzy + msgid "invalid type modifier within array declarator" + msgstr "ongeldige type-modifier binnen pointer-declarator" + +-#: c-decl.c:4304 ++#: c-decl.c:4315 + #, c-format + msgid "field `%s' declared as a function" + msgstr "veld `%s' als een functie gedeclareerd" + +-#: c-decl.c:4310 ++#: c-decl.c:4321 + #, c-format + msgid "field `%s' has incomplete type" + msgstr "veld `%s' heeft een onvolledig type" + +-#: c-decl.c:4336 c-decl.c:4338 c-decl.c:4340 c-decl.c:4347 ++#: c-decl.c:4347 c-decl.c:4349 c-decl.c:4351 c-decl.c:4358 + #, c-format + msgid "invalid storage class for function `%s'" + msgstr "ongeldige opslagklasse voor functie `%s'" + +-#: c-decl.c:4362 ++#: c-decl.c:4373 + msgid "`noreturn' function returns non-void value" + msgstr "`noreturn' functie geeft niet-void waarde terug" + +-#: c-decl.c:4377 ++#: c-decl.c:4388 + msgid "cannot inline function `main'" + msgstr "kan functie `main' niet inline maken" + +-#: c-decl.c:4431 ++#: c-decl.c:4442 + #, fuzzy + msgid "variable previously declared `static' redeclared `extern'" + msgstr "variabele of veld `%s' als void gedeclareerd" + +-#: c-decl.c:4440 ++#: c-decl.c:4451 + #, fuzzy + msgid "%Jvariable '%D' declared `inline'" + msgstr "variabele `%s' als inline gedeclareerd" + + #. A mere warning is sure to result in improper semantics + #. at runtime. Don't bother to allow this to compile. +-#: c-decl.c:4468 cp/decl.c:5903 ++#: c-decl.c:4479 cp/decl.c:5972 + #, fuzzy + msgid "thread-local storage not supported for this target" + msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem" + +-#: c-decl.c:4529 c-decl.c:5495 ++#: c-decl.c:4540 c-decl.c:5506 + msgid "function declaration isn't a prototype" + msgstr "functie-declaratie is geen prototype" + +-#: c-decl.c:4535 ++#: c-decl.c:4546 + msgid "parameter names (without types) in function declaration" + msgstr "parameternamen (zonder types) in functiedeclaratie" + +-#: c-decl.c:4563 ++#: c-decl.c:4574 + #, c-format + msgid "parameter `%s' has incomplete type" + msgstr "parameter `%s' heeft een onvolledig type" + +-#: c-decl.c:4566 ++#: c-decl.c:4577 + msgid "parameter has incomplete type" + msgstr "parameter heeft een onvolledig type" + +-#: c-decl.c:4615 ++#: c-decl.c:4626 + msgid "\"void\" as only parameter may not be qualified" + msgstr "" + +-#: c-decl.c:4636 ++#: c-decl.c:4647 + msgid "\"void\" must be the only parameter" + msgstr "" + +-#: c-decl.c:4653 ++#: c-decl.c:4664 + #, fuzzy + msgid "%Jparameter \"%D\" has just a forward declaration" + msgstr "parameter `%s' heeft enkel een voorwaartse declaratie" + + #. The first %s will be one of 'struct', 'union', or 'enum'. +-#: c-decl.c:4681 ++#: c-decl.c:4692 + #, fuzzy, c-format + msgid "\"%s %s\" declared inside parameter list" + msgstr "`%s %s' binnen parameterlijst gedeclareerd" + + #. The %s will be one of 'struct', 'union', or 'enum'. +-#: c-decl.c:4685 ++#: c-decl.c:4696 + #, fuzzy, c-format + msgid "anonymous %s declared inside parameter list" + msgstr "anonieme %s gedeclareerd binnen parameterlijst" + +-#: c-decl.c:4689 ++#: c-decl.c:4700 + #, fuzzy + msgid "its scope is only this definition or declaration, which is probably not what you want" + msgstr "het bereik ervan is enkel deze definitie of declaratie, wat waarschijnlijk niet de bedoeling is" + +-#: c-decl.c:4774 ++#: c-decl.c:4785 + #, c-format + msgid "redefinition of `union %s'" + msgstr "herdefinitie van `union %s'" + +-#: c-decl.c:4776 ++#: c-decl.c:4787 + #, c-format + msgid "redefinition of `struct %s'" + msgstr "herdefinitie van `struct %s'" + +-#: c-decl.c:4844 cp/decl.c:3534 ++#: c-decl.c:4855 cp/decl.c:3548 + msgid "declaration does not declare anything" + msgstr "declaratie declareert niets" + +-#: c-decl.c:4889 c-decl.c:4905 ++#: c-decl.c:4900 c-decl.c:4916 + #, fuzzy + msgid "%Jduplicate member '%D'" + msgstr "herhaald lid `%s'" + +-#: c-decl.c:4939 c-decl.c:4942 ++#: c-decl.c:4950 c-decl.c:4953 + #, fuzzy, c-format + msgid "%s defined inside parms" + msgstr "enum gedinieerd binnen parameters" + +-#: c-decl.c:4940 c-decl.c:4943 c-decl.c:4954 ++#: c-decl.c:4951 c-decl.c:4954 c-decl.c:4965 + msgid "union" + msgstr "union" + + # Of beter onvertaald laten? +-#: c-decl.c:4940 c-decl.c:4943 ++#: c-decl.c:4951 c-decl.c:4954 + msgid "structure" + msgstr "structuur" + +-#: c-decl.c:4953 ++#: c-decl.c:4964 + #, fuzzy, c-format + msgid "%s has no %s" + msgstr "%s heeft geen leden" + +-#: c-decl.c:4954 ++#: c-decl.c:4965 + msgid "struct" + msgstr "struct" + +-#: c-decl.c:4955 ++#: c-decl.c:4966 + #, fuzzy + msgid "named members" + msgstr "%s heeft geen benoemde leden" + +-#: c-decl.c:4955 ++#: c-decl.c:4966 + msgid "members" + msgstr "leden" + +-#: c-decl.c:4994 ++#: c-decl.c:5005 + #, c-format + msgid "nested redefinition of `%s'" + msgstr "geneste herdefinitie van `%s'" + +-#: c-decl.c:5015 ++#: c-decl.c:5026 + #, fuzzy + msgid "%Jflexible array member in union" + msgstr "flexibele array als lid van union" + +-#: c-decl.c:5020 ++#: c-decl.c:5031 + #, fuzzy + msgid "%Jflexible array member not at end of struct" + msgstr "flexibele array niet laatste lid van struct" + +-#: c-decl.c:5025 ++#: c-decl.c:5036 + #, fuzzy + msgid "%Jflexible array member in otherwise empty struct" + msgstr "flexibele array als lid in overigens lege struct" + +-#: c-decl.c:5032 ++#: c-decl.c:5043 + #, fuzzy + msgid "%Jinvalid use of structure with flexible array member" + msgstr "ongeldig gebruik van onvolledige typedef `%s'" + +-#: c-decl.c:5127 ++#: c-decl.c:5138 + msgid "union cannot be made transparent" + msgstr "union kan niet transparant gemaakt worden" + + #. This enum is a named one that has been declared already. +-#: c-decl.c:5196 ++#: c-decl.c:5207 + #, c-format + msgid "redeclaration of `enum %s'" + msgstr "herdeclaratie van `enum %s'" + +-#: c-decl.c:5227 ++#: c-decl.c:5238 + msgid "enum defined inside parms" + msgstr "enum gedinieerd binnen parameters" + +-#: c-decl.c:5260 ++#: c-decl.c:5271 + msgid "enumeration values exceed range of largest integer" + msgstr "enumeratiewaarden overschrijden het bereik van de grootste integer" + +-#: c-decl.c:5363 ++#: c-decl.c:5374 + #, c-format + msgid "enumerator value for `%s' not integer constant" + msgstr "enumeratiewaarde voor `%s' is geen integrale constante" + +-#: c-decl.c:5376 ++#: c-decl.c:5387 + msgid "overflow in enumeration values" + msgstr "overflow in enumeratiewaarden" + +-#: c-decl.c:5381 ++#: c-decl.c:5392 + #, fuzzy + msgid "ISO C restricts enumerator values to range of `int'" + msgstr "ANSI C beperkt enumeratiewaarden tot het bereik van het `int' type" + +-#: c-decl.c:5457 ++#: c-decl.c:5468 + #, fuzzy + msgid "return type is an incomplete type" + msgstr "type van teruggeefwaarde is onvolledig" + +-#: c-decl.c:5465 ++#: c-decl.c:5476 + #, fuzzy + msgid "return type defaults to `int'" + msgstr "teruggeefwaarde krijgt standaardtype `int'" + +-#: c-decl.c:5501 ++#: c-decl.c:5512 + #, fuzzy + msgid "%Jno previous prototype for '%D'" + msgstr "geen eerder prototype voor `%s'" + +-#: c-decl.c:5507 ++#: c-decl.c:5518 + #, fuzzy + msgid "%J'%D' was used with no prototype before its definition" + msgstr "`%s' werd voor haar definitie gebruikt zonder protoype" + +-#: c-decl.c:5514 ++#: c-decl.c:5525 + #, fuzzy + msgid "%Jno previous declaration for '%D'" + msgstr "geen eerdere declaratie voor `%s'" + +-#: c-decl.c:5520 ++#: c-decl.c:5531 + #, fuzzy + msgid "%J`%D' was used with no declaration before its definition" + msgstr "`%s' werd voor haar definitie gebruikt zonder declaratie" + +-#: c-decl.c:5556 c-decl.c:6062 ++#: c-decl.c:5567 c-decl.c:6073 + #, fuzzy + msgid "%Jreturn type of '%D' is not `int'" + msgstr "het type van de teruggeefwaarde van `%s' is niet `int'" + +-#: c-decl.c:5571 ++#: c-decl.c:5582 + #, fuzzy + msgid "%Jfirst argument of '%D' should be `int'" + msgstr "eerste argument van `%s' zou een `int' moeten zijn" + +-#: c-decl.c:5580 ++#: c-decl.c:5591 + #, fuzzy + msgid "%Jsecond argument of '%D' should be 'char **'" + msgstr "tweede argument van `%s' zou een `char **' moeten zijn" + +-#: c-decl.c:5589 ++#: c-decl.c:5600 + #, fuzzy + msgid "%Jthird argument of '%D' should probably be 'char **'" + msgstr "derde argument van `%s' zou waarschijnlijk een `char **' moeten zijn" + +-#: c-decl.c:5599 ++#: c-decl.c:5610 + #, fuzzy + msgid "%J'%D' takes only zero or two arguments" + msgstr "`%s' neemt ofwel geen, ofwel twee argumenten" + +-#: c-decl.c:5602 ++#: c-decl.c:5613 + #, fuzzy + msgid "%J'%D' is normally a non-static function" + msgstr "`%s' is gewoonlijk een niet-static funtie" + +-#: c-decl.c:5658 ++#: c-decl.c:5669 + msgid "%Jold-style parameter declarations in prototyped function definition" + msgstr "" + +-#: c-decl.c:5672 ++#: c-decl.c:5683 + #, fuzzy + msgid "%Jparameter name omitted" + msgstr "parameternaam weggelaten" + +-#: c-decl.c:5747 ++#: c-decl.c:5758 + #, fuzzy + msgid "%Jparameter name missing from parameter list" + msgstr "parameternaam ontbreekt uit parameterlijst" + +-#: c-decl.c:5757 ++#: c-decl.c:5768 + #, fuzzy + msgid "%J\"%D\" declared as a non-parameter" + msgstr "veld `%s' als een functie gedeclareerd" + +-#: c-decl.c:5762 ++#: c-decl.c:5773 + #, fuzzy + msgid "%Jmultiple parameters named \"%D\"" + msgstr "meerdere parameters hebben de naam `%s'" + +-#: c-decl.c:5770 ++#: c-decl.c:5781 + #, fuzzy + msgid "%Jparameter \"%D\" declared void" + msgstr "parameter `%s' als void gedeclareerd" + +-#: c-decl.c:5785 c-decl.c:5787 ++#: c-decl.c:5796 c-decl.c:5798 + #, fuzzy + msgid "%Jtype of \"%D\" defaults to \"int\"" + msgstr "`%s' krijgt standaardtype `int'" + +-#: c-decl.c:5801 ++#: c-decl.c:5812 + #, fuzzy + msgid "%Jparameter \"%D\" has incomplete type" + msgstr "parameter heeft een onvolledig type" + +-#: c-decl.c:5807 ++#: c-decl.c:5818 + #, fuzzy + msgid "%Jdeclaration for parameter \"%D\" but no such parameter" + msgstr "declaratie voor parameter `%s' maar er is zo geen parameter" + +-#: c-decl.c:5859 ++#: c-decl.c:5870 + msgid "number of arguments doesn't match prototype" + msgstr "aantal argumenten kom niet overeen met prototype" + +-#: c-decl.c:5860 c-decl.c:5891 c-decl.c:5898 ++#: c-decl.c:5871 c-decl.c:5902 c-decl.c:5909 + #, fuzzy + msgid "%Hprototype declaration" + msgstr "lege declaratie" + +-#: c-decl.c:5889 ++#: c-decl.c:5900 + #, fuzzy + msgid "promoted argument \"%D\" doesn't match prototype" + msgstr "gepromoveerd argument `%s' komt niet overeen met prototype" + +-#: c-decl.c:5897 ++#: c-decl.c:5908 + #, fuzzy + msgid "argument \"%D\" doesn't match prototype" + msgstr "argument `%s' komt niet overeen met prototype" + +-#: c-decl.c:6094 cp/decl.c:10857 ++#: c-decl.c:6105 cp/decl.c:10954 + #, fuzzy + msgid "no return statement in function returning non-void" + msgstr "`return' zonder waarde in een functie die een niet-void waarde teruggeeft" + +-#: c-decl.c:6101 ++#: c-decl.c:6112 + msgid "this function may return with or without a value" + msgstr "deze functie kan met of zonder waarde tergukeren" + + #. If we get here, declarations have been used in a for loop without + #. the C99 for loop scope. This doesn't make much sense, so don't + #. allow it. +-#: c-decl.c:6200 ++#: c-decl.c:6211 + #, fuzzy + msgid "'for' loop initial declaration used outside C99 mode" + msgstr "initiële declaratie voor `for' lus gebruikt buiten C99 modus" + +-#: c-decl.c:6224 ++#: c-decl.c:6235 + #, fuzzy, c-format + msgid "'struct %s' declared in 'for' loop initial declaration" + msgstr "`%s' als 'inline' gedeclareerd na de definitie" + +-#: c-decl.c:6227 ++#: c-decl.c:6238 + #, fuzzy, c-format + msgid "'union %s' declared in 'for' loop initial declaration" + msgstr "`%s' als 'inline' gedeclareerd na de definitie" + +-#: c-decl.c:6230 ++#: c-decl.c:6241 + #, fuzzy, c-format + msgid "'enum %s' declared in 'for' loop initial declaration" + msgstr "`%s' als 'inline' gedeclareerd na de definitie" + +-#: c-decl.c:6238 ++#: c-decl.c:6249 + #, fuzzy + msgid "%Jdeclaration of non-variable '%D' in 'for' loop initial declaration" + msgstr "de declaratie van `%s' verbergt een globale declaratie" + +-#: c-decl.c:6241 ++#: c-decl.c:6252 + #, fuzzy + msgid "%Jdeclaration of static variable '%D' in 'for' loop initial declaration" + msgstr "de declaratie van `%s' verbergt een globale declaratie" + +-#: c-decl.c:6244 ++#: c-decl.c:6255 + #, fuzzy + msgid "%Jdeclaration of 'extern' variable '%D' in 'for' loop initial declaration" + msgstr "de declaratie van `%s' verbergt een globale declaratie" + +-#: c-decl.c:6557 ++#: c-decl.c:6568 + #, fuzzy + msgid "%Jredefinition of global '%D'" + msgstr "herdefinitie van `%s'" + +-#: c-decl.c:6558 ++#: c-decl.c:6569 + #, fuzzy + msgid "%J'%D' previously defined here" + msgstr "`%s' tevoren hier gedefinieerd" +@@ -2306,92 +2311,92 @@ + msgid "missing makefile target after \"%s\"" + msgstr "ontbrekende witruimte na getal `%s'" + +-#: c-opts.c:291 ++#: c-opts.c:299 + msgid "-I- specified twice" + msgstr "-I- twee keer opgegeven" + +-#: c-opts.c:692 ++#: c-opts.c:700 + #, fuzzy, c-format + msgid "switch \"%s\" is no longer supported" + msgstr "-pipe wordt niet ondersteund" + +-#: c-opts.c:812 ++#: c-opts.c:820 + msgid "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)" + msgstr "" + +-#: c-opts.c:978 ++#: c-opts.c:986 + #, fuzzy + msgid "output filename specified twice" + msgstr "Bestandsnaam voor uitvoer twee keer opgegeven" + +-#: c-opts.c:1107 ++#: c-opts.c:1115 + msgid "-Wformat-y2k ignored without -Wformat" + msgstr "-Wformat-y2k genegeerd zonder -Wformat" + +-#: c-opts.c:1109 ++#: c-opts.c:1117 + msgid "-Wformat-extra-args ignored without -Wformat" + msgstr "-Wformat-extra-args genegeerd zonder -Wformat" + +-#: c-opts.c:1111 ++#: c-opts.c:1119 + #, fuzzy + msgid "-Wformat-zero-length ignored without -Wformat" + msgstr "-Wformat-extra-args genegeerd zonder -Wformat" + +-#: c-opts.c:1113 ++#: c-opts.c:1121 + msgid "-Wformat-nonliteral ignored without -Wformat" + msgstr "-Wformat-nonliteral genegeerd zonder -Wformat" + +-#: c-opts.c:1115 ++#: c-opts.c:1123 + msgid "-Wformat-security ignored without -Wformat" + msgstr "-Wformat-security genegeerd zonder -Wformat" + +-#: c-opts.c:1117 ++#: c-opts.c:1125 + msgid "-Wmissing-format-attribute ignored without -Wformat" + msgstr "-Wmissing-format-attribute genegeerd zonder -Wformat" + +-#: c-opts.c:1131 ++#: c-opts.c:1139 + #, fuzzy, c-format + msgid "opening output file %s: %m" + msgstr "kan bestand '%s' niet openen" + +-#: c-opts.c:1136 ++#: c-opts.c:1144 + #, c-format + msgid "too many filenames given. Type %s --help for usage" + msgstr "" + +-#: c-opts.c:1215 ++#: c-opts.c:1223 + msgid "YYDEBUG not defined" + msgstr "YYDEBUG niet gedefinieerd" + +-#: c-opts.c:1261 ++#: c-opts.c:1269 + #, fuzzy, c-format + msgid "opening dependency file %s: %m" + msgstr "dynamische dependencies.\n" + +-#: c-opts.c:1271 ++#: c-opts.c:1279 + #, fuzzy, c-format + msgid "closing dependency file %s: %m" + msgstr "dynamische dependencies.\n" + +-#: c-opts.c:1274 ++#: c-opts.c:1282 + #, fuzzy, c-format + msgid "when writing output to %s: %m" + msgstr "kan bestand '%s' niet openen" + +-#: c-opts.c:1344 ++#: c-opts.c:1352 + #, fuzzy + msgid "to generate dependencies you must specify either -M or -MM" + msgstr "-MG moet samen met ofwel -M, ofwel -MM gebruikt worden" + +-#: c-opts.c:1404 ++#: c-opts.c:1412 + msgid "" + msgstr "" + +-#: c-opts.c:1419 ++#: c-opts.c:1427 + msgid "" + msgstr "" + +-#: c-opts.c:1503 ++#: c-opts.c:1511 + msgid "too late for # directive to set debug directory" + msgstr "" + +@@ -2409,7 +2414,7 @@ + msgid "ISO C forbids an empty source file" + msgstr "ANSI C verbiedt een leeg bronbestand" + +-#: c-parse.y:349 c-typeck.c:6248 objc/objc-parse.y:374 ++#: c-parse.y:349 c-typeck.c:6228 objc/objc-parse.y:374 + msgid "argument of `asm' is not a constant string" + msgstr "het argument van `asm' is geen constante string" + +@@ -2427,7 +2432,7 @@ + msgid "ISO C does not allow extra `;' outside of a function" + msgstr "ANSI C staat geen extra `;' buiten een functie toe" + +-#: c-parse.y:429 cppexp.c:1253 ++#: c-parse.y:429 cppexp.c:1257 + msgid "traditional C rejects the unary plus operator" + msgstr "" + +@@ -2516,7 +2521,7 @@ + msgid "ISO C forbids forward references to `enum' types" + msgstr "ANSI C verbiedt voorwaartse referenties naar `enum' types" + +-#: c-parse.y:1703 cp/parser.c:9339 objc/objc-parse.y:1755 ++#: c-parse.y:1703 cp/parser.c:9383 objc/objc-parse.y:1755 + msgid "comma at end of enumerator list" + msgstr "komma aan het einde van enumerator-lijst" + +@@ -2524,7 +2529,7 @@ + msgid "no semicolon at end of struct or union" + msgstr "geen puntkomma aan het einde van een struct of union" + +-#: c-parse.y:1732 objc/objc-parse.y:1784 objc/objc-parse.y:2847 ++#: c-parse.y:1732 objc/objc-parse.y:1784 objc/objc-parse.y:2846 + msgid "extra semicolon in struct or union specified" + msgstr "extra puntkomma opgegeven in struct of union" + +@@ -2557,24 +2562,24 @@ + msgid "braced-group within expression allowed only inside a function" + msgstr "accolade-groep in expressie enkel toegestaan binnen een functie" + +-#: c-parse.y:2185 objc/objc-parse.y:2242 ++#: c-parse.y:2185 objc/objc-parse.y:2241 + msgid "empty body in an else-statement" + msgstr "leeg body in een else-statement" + +-#: c-parse.y:2193 objc/objc-parse.y:2250 ++#: c-parse.y:2193 objc/objc-parse.y:2249 + #, fuzzy + msgid "%Hempty body in an if-statement" + msgstr "leeg body in een else-statement" + +-#: c-parse.y:2273 cp/parser.c:6050 objc/objc-parse.y:2330 ++#: c-parse.y:2273 cp/parser.c:6088 objc/objc-parse.y:2329 + msgid "break statement not within loop or switch" + msgstr "break-statement niet in een lus of switch" + +-#: c-parse.y:2282 cp/parser.c:6061 objc/objc-parse.y:2339 ++#: c-parse.y:2282 cp/parser.c:6099 objc/objc-parse.y:2338 + msgid "continue statement not within a loop" + msgstr "continue-statement niet in een lus" + +-#: c-parse.y:2324 objc/objc-parse.y:2381 ++#: c-parse.y:2324 objc/objc-parse.y:2380 + #, fuzzy + msgid "ISO C forbids `goto *expr;'" + msgstr "ANSI C verbiedt `goto *expr;'" +@@ -2585,12 +2590,12 @@ + #. it caused problems with the code in expand_builtin which + #. tries to verify that BUILT_IN_NEXT_ARG is being used + #. correctly. +-#: c-parse.y:2441 objc/objc-parse.y:2549 ++#: c-parse.y:2441 objc/objc-parse.y:2548 + #, fuzzy + msgid "ISO C requires a named argument before `...'" + msgstr "ANSI C heeft een benoemd argument nodig vóór `...'" + +-#: c-parse.y:2539 objc/objc-parse.y:2647 ++#: c-parse.y:2539 objc/objc-parse.y:2646 + msgid "`...' in old-style identifier list" + msgstr "`...' in naamlijst in oude stijl" + +@@ -2608,7 +2613,7 @@ + msgid "parser stack overflow" + msgstr "stack overflow in parser" + +-#: c-parse.y:2969 objc/objc-parse.y:3664 ++#: c-parse.y:2969 objc/objc-parse.y:3663 + #, c-format + msgid "syntax error at '%s' token" + msgstr "" +@@ -2690,7 +2695,7 @@ + msgid "%s: had text segment at different address" + msgstr "" + +-#: c-pch.c:357 cpperror.c:176 gcc.c:6554 ++#: c-pch.c:357 cpperror.c:176 gcc.c:6557 + #, c-format + msgid "%s: %s" + msgstr "" +@@ -2816,12 +2821,12 @@ + msgid "(enclose actions of previous case statements requiring destructors in their own scope.)" + msgstr "" + +-#: c-semantics.c:737 c-typeck.c:6270 cp/semantics.c:1070 ++#: c-semantics.c:737 c-typeck.c:6250 cp/semantics.c:1070 + #, c-format + msgid "%s qualifier ignored on asm" + msgstr "" + +-#: c-semantics.c:991 ++#: c-semantics.c:993 + msgid "will never be executed" + msgstr "" + +@@ -2830,7 +2835,7 @@ + msgid "`%s' has an incomplete type" + msgstr "`%s' heeft een onvolledig type" + +-#: c-typeck.c:145 cp/call.c:2532 ++#: c-typeck.c:145 cp/call.c:2542 + msgid "invalid use of void expression" + msgstr "ongeldig gebruik van een void-expressie" + +@@ -2869,785 +2874,785 @@ + msgstr "de terugkeerwaarde van een functie kan geen funtie zijn" + + # 'Arithmetic'?? 'rekensom' is wel correct, maar het klinkt zo stom. +-#: c-typeck.c:984 c-typeck.c:2176 ++#: c-typeck.c:984 c-typeck.c:2156 + msgid "arithmetic on pointer to an incomplete type" + msgstr "rekensom met pointer naar onvolledig type" + +-#: c-typeck.c:1357 ++#: c-typeck.c:1337 + #, fuzzy, c-format + msgid "%s has no member named `%s'" + msgstr "union heeft geen lid dat `%s' heet" + +-#: c-typeck.c:1393 ++#: c-typeck.c:1373 + #, c-format + msgid "request for member `%s' in something not a structure or union" + msgstr "vraag naar lid `%s' in iets dat geen structure of union is" + +-#: c-typeck.c:1422 ++#: c-typeck.c:1402 + msgid "dereferencing pointer to incomplete type" + msgstr "dereferentie van pointer naar onvolledig type" + +-#: c-typeck.c:1426 ++#: c-typeck.c:1406 + msgid "dereferencing `void *' pointer" + msgstr "`void *' pointer wordt gederefereerd" + + # Is the %s the argument, or is it 'of' the argument? +-#: c-typeck.c:1443 cp/typeck.c:2127 ++#: c-typeck.c:1423 cp/typeck.c:2127 + #, c-format + msgid "invalid type argument of `%s'" + msgstr "ongeldig type-argument `%s'" + +-#: c-typeck.c:1461 cp/typeck.c:2152 ++#: c-typeck.c:1441 cp/typeck.c:2152 + msgid "subscript missing in array reference" + msgstr "subscript ontbreekt in array-referentie" + +-#: c-typeck.c:1482 cp/typeck.c:2194 ++#: c-typeck.c:1462 cp/typeck.c:2194 + msgid "array subscript has type `char'" + msgstr "array subscript is van het type `char'" + +-#: c-typeck.c:1490 c-typeck.c:1579 cp/typeck.c:2198 cp/typeck.c:2284 ++#: c-typeck.c:1470 c-typeck.c:1559 cp/typeck.c:2198 cp/typeck.c:2284 + msgid "array subscript is not an integer" + msgstr "array subscript is geen integer" + +-#: c-typeck.c:1523 ++#: c-typeck.c:1503 + #, fuzzy + msgid "ISO C forbids subscripting `register' array" + msgstr "ANSI C verbiedt het gebruik van subscripts bij een `register' array" + +-#: c-typeck.c:1525 ++#: c-typeck.c:1505 + #, fuzzy + msgid "ISO C90 forbids subscripting non-lvalue array" + msgstr "ANSI C verbiedt het gebruik van subscripts bij een array die geen lvalue is" + +-#: c-typeck.c:1558 ++#: c-typeck.c:1538 + msgid "subscript has type `char'" + msgstr "subscript is van het type `char'" + +-#: c-typeck.c:1574 cp/typeck.c:2279 ++#: c-typeck.c:1554 cp/typeck.c:2279 + msgid "subscripted value is neither array nor pointer" + msgstr "waarde met subscript is noch een array, noch een pointer" + +-#: c-typeck.c:1604 ++#: c-typeck.c:1584 + #, c-format + msgid "local declaration of `%s' hides instance variable" + msgstr "" + +-#: c-typeck.c:1697 ++#: c-typeck.c:1677 + msgid "called object is not a function" + msgstr "opgeroepen object is geen functie" + + #. This situation leads to run-time undefined behavior. We can't, + #. therefore, simply error unless we can prove that all possible + #. executions of the program must execute the code. +-#: c-typeck.c:1729 ++#: c-typeck.c:1709 + msgid "function called through a non-compatible type" + msgstr "" + +-#: c-typeck.c:1787 c-typeck.c:4198 c-typeck.c:4200 c-typeck.c:4216 +-#: c-typeck.c:4237 c-typeck.c:5616 ++#: c-typeck.c:1767 c-typeck.c:4178 c-typeck.c:4180 c-typeck.c:4196 ++#: c-typeck.c:4217 c-typeck.c:5596 + msgid "initializer element is not constant" + msgstr "beginwaarde-element is niet constant" + +-#: c-typeck.c:1838 cp/typeck.c:2567 ++#: c-typeck.c:1818 cp/typeck.c:2567 + msgid "too many arguments to function" + msgstr "teveel argumenten voor functie" + +-#: c-typeck.c:1859 ++#: c-typeck.c:1839 + #, c-format + msgid "type of formal parameter %d is incomplete" + msgstr "het type van formele parameter %d is onvolledig" + +-#: c-typeck.c:1872 ++#: c-typeck.c:1852 + #, c-format + msgid "%s as integer rather than floating due to prototype" + msgstr "%s als integer in plaats van floating-point ten gevolge van een prototype" + +-#: c-typeck.c:1875 ++#: c-typeck.c:1855 + #, fuzzy, c-format + msgid "%s as integer rather than complex due to prototype" + msgstr "%s als floating-point in plaats van complex ten gevolge van een prototype" + +-#: c-typeck.c:1878 ++#: c-typeck.c:1858 + #, c-format + msgid "%s as complex rather than floating due to prototype" + msgstr "%s als complex in plaats van floating-point ten gevolge van een prototype" + +-#: c-typeck.c:1881 ++#: c-typeck.c:1861 + #, c-format + msgid "%s as floating rather than integer due to prototype" + msgstr "%s als floating-point in plaats van integer ten gevolge van een prototype" + +-#: c-typeck.c:1884 ++#: c-typeck.c:1864 + #, fuzzy, c-format + msgid "%s as complex rather than integer due to prototype" + msgstr "%s als complex in plaats van floating-point ten gevolge van een prototype" + +-#: c-typeck.c:1887 ++#: c-typeck.c:1867 + #, c-format + msgid "%s as floating rather than complex due to prototype" + msgstr "%s als floating-point in plaats van complex ten gevolge van een prototype" + +-#: c-typeck.c:1897 ++#: c-typeck.c:1877 + #, c-format + msgid "%s as `float' rather than `double' due to prototype" + msgstr "%s als `float' in plaats van `double' ten gevolge van een prototype" + +-#: c-typeck.c:1915 ++#: c-typeck.c:1895 + #, c-format + msgid "%s with different width due to prototype" + msgstr "%s met andere breedte ten gevolge van prototype" + +-#: c-typeck.c:1941 ++#: c-typeck.c:1921 + #, c-format + msgid "%s as unsigned due to prototype" + msgstr "%s als unsigned ten gevolge van prototype" + +-#: c-typeck.c:1943 ++#: c-typeck.c:1923 + #, c-format + msgid "%s as signed due to prototype" + msgstr "%s als signed ten gevolge van prototype" + +-#: c-typeck.c:1977 cp/typeck.c:2673 ++#: c-typeck.c:1957 cp/typeck.c:2673 + msgid "too few arguments to function" + msgstr "te weinig argument voor functie" + +-#: c-typeck.c:2017 ++#: c-typeck.c:1997 + msgid "suggest parentheses around + or - inside shift" + msgstr "gebruik liefst haakjes rond + of - binnen een shift" + +-#: c-typeck.c:2024 ++#: c-typeck.c:2004 + msgid "suggest parentheses around && within ||" + msgstr "gebruik liefst haakjes rond && binnen ||" + +-#: c-typeck.c:2033 ++#: c-typeck.c:2013 + msgid "suggest parentheses around arithmetic in operand of |" + msgstr "gebruik liefst haakjes rond een rekensom in een operand van |" + +-#: c-typeck.c:2036 ++#: c-typeck.c:2016 + msgid "suggest parentheses around comparison in operand of |" + msgstr "gebruik liefst haakjes rond een vergelijking in een operand van |" + +-#: c-typeck.c:2045 ++#: c-typeck.c:2025 + msgid "suggest parentheses around arithmetic in operand of ^" + msgstr "gebruik liefst haakjes rond een rekensom in een operand van ^" + +-#: c-typeck.c:2048 ++#: c-typeck.c:2028 + msgid "suggest parentheses around comparison in operand of ^" + msgstr "gebruik liefst haakjes rond een vergelijking in een operand van ^" + +-#: c-typeck.c:2055 ++#: c-typeck.c:2035 + msgid "suggest parentheses around + or - in operand of &" + msgstr "gebruik liefst haakjes rond + of - in een operand van &" + +-#: c-typeck.c:2058 ++#: c-typeck.c:2038 + msgid "suggest parentheses around comparison in operand of &" + msgstr "gebruik liefst haakjes rond een vergelijking in een operand van &" + +-#: c-typeck.c:2065 ++#: c-typeck.c:2045 + msgid "comparisons like X<=Y<=Z do not have their mathematical meaning" + msgstr "vergelijkingen als 'X <= Y <= Z' hebben niet hun wiskundige betekenis" + +-#: c-typeck.c:2128 ++#: c-typeck.c:2108 + msgid "pointer of type `void *' used in subtraction" + msgstr "pointer van type `void *' gebruikt in aftrekking" + +-#: c-typeck.c:2130 ++#: c-typeck.c:2110 + msgid "pointer to a function used in subtraction" + msgstr "pointer naar functie gebruikt in aftrekking" + + # 'unary' = 'unair'? +-#: c-typeck.c:2224 ++#: c-typeck.c:2204 + msgid "wrong type argument to unary plus" + msgstr "argument van verkeerd type voor unaire plus" + +-#: c-typeck.c:2237 ++#: c-typeck.c:2217 + msgid "wrong type argument to unary minus" + msgstr "argument van verkeerd type voor unaire min" + +-#: c-typeck.c:2254 ++#: c-typeck.c:2234 + #, fuzzy + msgid "ISO C does not support `~' for complex conjugation" + msgstr "ANSI C ondersteunt het `%c' formaat niet" + +-#: c-typeck.c:2260 ++#: c-typeck.c:2240 + msgid "wrong type argument to bit-complement" + msgstr "argument van verkeerd type voor bit-complement" + +-#: c-typeck.c:2268 ++#: c-typeck.c:2248 + msgid "wrong type argument to abs" + msgstr "argument van verkeerd type voor abs" + + # OK, ik geef het op: wat is hier een goede vertaling voor 'conjugation'? +-#: c-typeck.c:2280 ++#: c-typeck.c:2260 + msgid "wrong type argument to conjugation" + msgstr "argument van verkeerd type voor vervoeging" + +-#: c-typeck.c:2294 ++#: c-typeck.c:2274 + msgid "wrong type argument to unary exclamation mark" + msgstr "argument van verkeerd type voor unair uitroepingsteken" + +-#: c-typeck.c:2337 ++#: c-typeck.c:2317 + #, fuzzy + msgid "ISO C does not support `++' and `--' on complex types" + msgstr "ANSI C ondersteunt het `%c' formaat niet" + + # Wat is beter: 'incrementeren', 'incrementering', of 'increment'? +-#: c-typeck.c:2352 c-typeck.c:2384 ++#: c-typeck.c:2332 c-typeck.c:2364 + msgid "wrong type argument to increment" + msgstr "argument van verkeerd type voor incrementeren" + +-#: c-typeck.c:2354 c-typeck.c:2386 ++#: c-typeck.c:2334 c-typeck.c:2366 + msgid "wrong type argument to decrement" + msgstr "argument van verkeerd type voor decrementeren" + +-#: c-typeck.c:2375 ++#: c-typeck.c:2355 + msgid "increment of pointer to unknown structure" + msgstr "incrementeren van pointer naar onbekend structure" + +-#: c-typeck.c:2377 ++#: c-typeck.c:2357 + msgid "decrement of pointer to unknown structure" + msgstr "decrementeren van pointer naar onbekend structure" + +-#: c-typeck.c:2502 ++#: c-typeck.c:2482 + msgid "invalid lvalue in unary `&'" + msgstr "ongeldige lvalue bij unaire `&'" + +-#: c-typeck.c:2534 ++#: c-typeck.c:2514 + #, c-format + msgid "attempt to take address of bit-field structure member `%s'" + msgstr "poging om het adres te nemen van lid `%s' van een bitveld-structure" + +-#: c-typeck.c:2668 ++#: c-typeck.c:2648 + #, fuzzy + msgid "use of conditional expressions as lvalues is deprecated" + msgstr "ANSI C verbiedt het gebruikt van voorwaardelijke expressies als lvalues" + +-#: c-typeck.c:2671 ++#: c-typeck.c:2651 + #, fuzzy + msgid "use of compound expressions as lvalues is deprecated" + msgstr "ANSI C verbiedt het gebruik van samengestelde expressies als lvalues" + +-#: c-typeck.c:2674 ++#: c-typeck.c:2654 + #, fuzzy + msgid "use of cast expressions as lvalues is deprecated" + msgstr "ANSI C verbiedt het gebruik van cast-expressies als lvalues" + +-#: c-typeck.c:2689 ++#: c-typeck.c:2669 + #, c-format + msgid "%s of read-only member `%s'" + msgstr "%s van alleen-lezen lid `%s'" + +-#: c-typeck.c:2693 ++#: c-typeck.c:2673 + #, c-format + msgid "%s of read-only variable `%s'" + msgstr "%s van alleen-lezen variabele `%s'" + +-#: c-typeck.c:2696 ++#: c-typeck.c:2676 + #, c-format + msgid "%s of read-only location" + msgstr "%s van alleen-lezen locatie" + +-#: c-typeck.c:2714 ++#: c-typeck.c:2694 + #, fuzzy, c-format + msgid "cannot take address of bit-field `%s'" + msgstr "kan adres van bitveld `%s' niet nemen" + +-#: c-typeck.c:2742 treelang/treetree.c:946 ++#: c-typeck.c:2722 treelang/treetree.c:946 + #, c-format + msgid "global register variable `%s' used in nested function" + msgstr "globale registervariabele `%s' gebruikt in geneste functie" + +-#: c-typeck.c:2746 treelang/treetree.c:950 ++#: c-typeck.c:2726 treelang/treetree.c:950 + #, c-format + msgid "register variable `%s' used in nested function" + msgstr "registervariabele `%s' gebruikt in geneste functie" + +-#: c-typeck.c:2753 treelang/treetree.c:957 ++#: c-typeck.c:2733 treelang/treetree.c:957 + #, c-format + msgid "address of global register variable `%s' requested" + msgstr "adres van globale registervariabele `%s' gevraagd" + +-#: c-typeck.c:2765 ++#: c-typeck.c:2745 + msgid "cannot put object with volatile field into register" + msgstr "een object met een volatile veld kan niet in een register geplaatst worden" + +-#: c-typeck.c:2769 treelang/treetree.c:962 ++#: c-typeck.c:2749 treelang/treetree.c:962 + #, c-format + msgid "address of register variable `%s' requested" + msgstr "adres van registervariabele `%s' gevraagd" + + # Of moet/mag 'boolean' hier vertaald worden? +-#: c-typeck.c:2854 ++#: c-typeck.c:2834 + #, fuzzy + msgid "signed and unsigned type in conditional expression" + msgstr "niet-boolean modus in voorwaardelijke expressie" + +-#: c-typeck.c:2861 ++#: c-typeck.c:2841 + #, fuzzy + msgid "ISO C forbids conditional expr with only one void side" + msgstr "ANSI C verbiedt voorwaardelijke expressies met maar één void-zijde" + +-#: c-typeck.c:2877 c-typeck.c:2884 ++#: c-typeck.c:2857 c-typeck.c:2864 + #, fuzzy + msgid "ISO C forbids conditional expr between `void *' and function pointer" + msgstr "ANSI C verbiedt voorwaardelijke expressies tussen `void *' en een functiepointer" + +-#: c-typeck.c:2890 ++#: c-typeck.c:2870 + msgid "pointer type mismatch in conditional expression" + msgstr "pointertypes in voorwaardelijke expressie komen niet overeen" + +-#: c-typeck.c:2897 c-typeck.c:2907 ++#: c-typeck.c:2877 c-typeck.c:2887 + msgid "pointer/integer type mismatch in conditional expression" + msgstr "types in voorwaardelijke expressie komen niet overeen (pointer/integer)" + +-#: c-typeck.c:2921 ++#: c-typeck.c:2901 + msgid "type mismatch in conditional expression" + msgstr "types in voorwaardelijke expressie komen niet overeen" + +-#: c-typeck.c:2981 ++#: c-typeck.c:2961 + msgid "left-hand operand of comma expression has no effect" + msgstr "linker operand van comma-expressie heeft geen effect" + +-#: c-typeck.c:3012 ++#: c-typeck.c:2992 + msgid "cast specifies array type" + msgstr "cast geeft array-type op" + +-#: c-typeck.c:3018 ++#: c-typeck.c:2998 + msgid "cast specifies function type" + msgstr "cast geeft functie-type op" + +-#: c-typeck.c:3028 ++#: c-typeck.c:3008 + #, fuzzy + msgid "ISO C forbids casting nonscalar to the same type" + msgstr "ANSI C verbiedt het casten van een niet-scalair naar hetzelfde type" + +-#: c-typeck.c:3046 ++#: c-typeck.c:3026 + #, fuzzy + msgid "ISO C forbids casts to union type" + msgstr "ANSI C verbiedt casts naar een union-type" + +-#: c-typeck.c:3054 ++#: c-typeck.c:3034 + msgid "cast to union type from type not present in union" + msgstr "cast naar union-type van een type dat geen deel uitmaakt van de union" + +-#: c-typeck.c:3105 ++#: c-typeck.c:3085 + #, fuzzy + msgid "cast adds new qualifiers to function type" + msgstr "cast geeft functie-type op" + + #. There are qualifiers present in IN_OTYPE that are not + #. present in IN_TYPE. +-#: c-typeck.c:3110 ++#: c-typeck.c:3090 + msgid "cast discards qualifiers from pointer target type" + msgstr "cast laat qualifiers van doeltype van pointer vallen" + +-#: c-typeck.c:3125 ++#: c-typeck.c:3105 + msgid "cast increases required alignment of target type" + msgstr "cast verhoogt het benodigde alignment van het doeltype" + +-#: c-typeck.c:3131 cp/typeck.c:4945 ++#: c-typeck.c:3111 cp/typeck.c:4963 + msgid "cast from pointer to integer of different size" + msgstr "cast van pointer naar integer met andere grootte" + + # 'A function type' of 'THE function type'? +-#: c-typeck.c:3136 ++#: c-typeck.c:3116 + msgid "cast does not match function type" + msgstr "cast komt niet overeen met het functietype" + +-#: c-typeck.c:3143 cp/typeck.c:4952 ++#: c-typeck.c:3123 cp/typeck.c:4970 + msgid "cast to pointer from integer of different size" + msgstr "cast naar pointer van integer met andere grootte" + +-#: c-typeck.c:3155 ++#: c-typeck.c:3135 + msgid "type-punning to incomplete type might break strict-aliasing rules" + msgstr "" + +-#: c-typeck.c:3159 ++#: c-typeck.c:3139 + msgid "dereferencing type-punned pointer will break strict-aliasing rules" + msgstr "" + +-#: c-typeck.c:3170 ++#: c-typeck.c:3150 + #, fuzzy + msgid "ISO C forbids conversion of function pointer to object pointer type" + msgstr "ANSI C verbiedt een vergelijking van `void *' met een functie-pointer" + +-#: c-typeck.c:3179 ++#: c-typeck.c:3159 + #, fuzzy + msgid "ISO C forbids conversion of object pointer to function pointer type" + msgstr "ANSI C verbiedt een vergelijking van `void *' met een functie-pointer" + + #. Now we have handled acceptable kinds of LHS that are not truly lvalues. + #. Reject anything strange now. +-#: c-typeck.c:3337 ++#: c-typeck.c:3317 + msgid "invalid lvalue in assignment" + msgstr "ongeldige lvalue in toewijzing" + + #. Convert new value to destination type. +-#: c-typeck.c:3346 c-typeck.c:3371 c-typeck.c:3388 cp/typeck.c:5064 +-#: cp/typeck.c:5211 cp/typeck.c:5226 ++#: c-typeck.c:3326 c-typeck.c:3351 c-typeck.c:3368 cp/typeck.c:5082 ++#: cp/typeck.c:5229 cp/typeck.c:5244 + msgid "assignment" + msgstr "toewijzing" + +-#: c-typeck.c:3455 ++#: c-typeck.c:3435 + msgid "cannot pass rvalue to reference parameter" + msgstr "" + +-#: c-typeck.c:3564 c-typeck.c:3640 ++#: c-typeck.c:3544 c-typeck.c:3620 + #, c-format + msgid "%s makes qualified function pointer from unqualified" + msgstr "%s maakt gekwalificeerde functiepointer van een niet gekwalificeerde" + +-#: c-typeck.c:3568 c-typeck.c:3620 ++#: c-typeck.c:3548 c-typeck.c:3600 + #, c-format + msgid "%s discards qualifiers from pointer target type" + msgstr "%s laat qualifiers van doeltype van pointer vallen" + +-#: c-typeck.c:3574 ++#: c-typeck.c:3554 + #, fuzzy + msgid "ISO C prohibits argument conversion to union type" + msgstr "ANSI C verbiedt conversie van argumenten naar union type" + +-#: c-typeck.c:3612 ++#: c-typeck.c:3592 + #, fuzzy, c-format + msgid "ISO C forbids %s between function pointer and `void *'" + msgstr "ANSI C verbiedt %s tussen functiepointer en `void *'" + + # 'signedness' = 'signed-heid'? +-#: c-typeck.c:3629 ++#: c-typeck.c:3609 + #, c-format + msgid "pointer targets in %s differ in signedness" + msgstr "doelen van pointer in %s verschillen in signedness" + +-#: c-typeck.c:3645 ++#: c-typeck.c:3625 + #, c-format + msgid "%s from incompatible pointer type" + msgstr "%s van incompatibel pointertype" + +-#: c-typeck.c:3651 c-typeck.c:4158 cp/typeck.c:1389 ++#: c-typeck.c:3631 c-typeck.c:4138 cp/typeck.c:1389 + msgid "invalid use of non-lvalue array" + msgstr "ongeldig gebruik van array die geen lvalue is" + +-#: c-typeck.c:3665 ++#: c-typeck.c:3645 + #, c-format + msgid "%s makes pointer from integer without a cast" + msgstr "%s maakt pointer van integer zonder een cast" + +-#: c-typeck.c:3672 ++#: c-typeck.c:3652 + #, c-format + msgid "%s makes integer from pointer without a cast" + msgstr "%s maakt integer van pointer zonder een cast" + +-#: c-typeck.c:3686 c-typeck.c:3689 ++#: c-typeck.c:3666 c-typeck.c:3669 + #, c-format + msgid "incompatible type for argument %d of `%s'" + msgstr "incompatibel type voor argument %d van `%s'" + +-#: c-typeck.c:3693 ++#: c-typeck.c:3673 + #, c-format + msgid "incompatible type for argument %d of indirect function call" + msgstr "incompatibel type voor argument %d van onrechtstreekse functie-oproep" + +-#: c-typeck.c:3697 ++#: c-typeck.c:3677 + #, c-format + msgid "incompatible types in %s" + msgstr "incompatibele types bij %s" + + #. Function name is known; supply it. +-#: c-typeck.c:3753 ++#: c-typeck.c:3733 + #, fuzzy, c-format + msgid "passing arg of `%s'" + msgstr "doorgeven van argument %d van `%s'" + + #. Function name unknown (call through ptr). +-#: c-typeck.c:3762 ++#: c-typeck.c:3742 + #, fuzzy + msgid "passing arg of pointer to function" + msgstr "doorgeven van argument %d van pointer naar functie" + + #. Function name is known; supply it. +-#: c-typeck.c:3770 ++#: c-typeck.c:3750 + #, c-format + msgid "passing arg %d of `%s'" + msgstr "doorgeven van argument %d van `%s'" + + #. Function name unknown (call through ptr); just give arg number. +-#: c-typeck.c:3779 ++#: c-typeck.c:3759 + #, c-format + msgid "passing arg %d of pointer to function" + msgstr "doorgeven van argument %d van pointer naar functie" + +-#: c-typeck.c:3836 ++#: c-typeck.c:3816 + msgid "traditional C rejects automatic aggregate initialization" + msgstr "" + +-#: c-typeck.c:4007 c-typeck.c:4022 c-typeck.c:4037 ++#: c-typeck.c:3987 c-typeck.c:4002 c-typeck.c:4017 + #, c-format + msgid "(near initialization for `%s')" + msgstr "(dicht bij initialisatie van `%s')" + +-#: c-typeck.c:4086 cp/typeck2.c:560 ++#: c-typeck.c:4066 cp/typeck2.c:550 + msgid "char-array initialized from wide string" + msgstr "char-array heeft wide string als beginwaarde" + +-#: c-typeck.c:4093 cp/typeck2.c:567 ++#: c-typeck.c:4073 cp/typeck2.c:557 + msgid "int-array initialized from non-wide string" + msgstr "int-array heeft niet-wide string als beginwaarde" + +-#: c-typeck.c:4111 cp/typeck2.c:582 ++#: c-typeck.c:4091 cp/typeck2.c:572 + msgid "initializer-string for array of chars is too long" + msgstr "beginwaarde-string voor array van chars is te lang" + +-#: c-typeck.c:4181 ++#: c-typeck.c:4161 + msgid "array initialized from non-constant array expression" + msgstr "array krijgt niet-constante array-expressie als beginwaarde" + +-#: c-typeck.c:4232 ++#: c-typeck.c:4212 + msgid "initialization" + msgstr "initialisatie" + +-#: c-typeck.c:4243 c-typeck.c:5621 ++#: c-typeck.c:4223 c-typeck.c:5601 + msgid "initializer element is not computable at load time" + msgstr "beginwaarde-element kan niet berekend worden tijdens het laden" + +-#: c-typeck.c:4258 cp/typeck2.c:659 ++#: c-typeck.c:4238 cp/typeck2.c:649 + msgid "invalid initializer" + msgstr "ongeldige beginwaarde" + +-#: c-typeck.c:4540 cp/decl.c:4484 ++#: c-typeck.c:4520 cp/decl.c:4539 + #, fuzzy + msgid "opaque vector types cannot be initialized" + msgstr "object van variabele lengte mag geen beginwaarde krijgen" + +-#: c-typeck.c:4734 ++#: c-typeck.c:4714 + msgid "extra brace group at end of initializer" + msgstr "extra accolade-groep aan einde van beginwaarde" + +-#: c-typeck.c:4754 ++#: c-typeck.c:4734 + msgid "missing braces around initializer" + msgstr "accolades ontbreken rond beginwaarde" + +-#: c-typeck.c:4814 ++#: c-typeck.c:4794 + msgid "braces around scalar initializer" + msgstr "accolades rond scalaire beginwaarde" + +-#: c-typeck.c:4865 ++#: c-typeck.c:4845 + msgid "initialization of flexible array member in a nested context" + msgstr "" + +-#: c-typeck.c:4867 ++#: c-typeck.c:4847 + msgid "initialization of a flexible array member" + msgstr "" + +-#: c-typeck.c:4898 ++#: c-typeck.c:4878 + msgid "missing initializer" + msgstr "beginwaarde ontbreekt" + +-#: c-typeck.c:4920 ++#: c-typeck.c:4900 + msgid "empty scalar initializer" + msgstr "lege scalaire beginwaarde" + +-#: c-typeck.c:4925 ++#: c-typeck.c:4905 + msgid "extra elements in scalar initializer" + msgstr "extra elementen in scalaire beginwaarde" + +-#: c-typeck.c:5010 ++#: c-typeck.c:4990 + msgid "initialization designators may not nest" + msgstr "" + +-#: c-typeck.c:5031 c-typeck.c:5099 ++#: c-typeck.c:5011 c-typeck.c:5079 + msgid "array index in non-array initializer" + msgstr "array-index in beginwaarde van niet-array" + +-#: c-typeck.c:5036 c-typeck.c:5152 ++#: c-typeck.c:5016 c-typeck.c:5132 + #, fuzzy + msgid "field name not in record or union initializer" + msgstr "overtollige elementen in beginwaarde van union" + +-#: c-typeck.c:5095 c-typeck.c:5097 ++#: c-typeck.c:5075 c-typeck.c:5077 + msgid "nonconstant array index in initializer" + msgstr "niet-constante array-index in beginwaarde" + +-#: c-typeck.c:5101 c-typeck.c:5104 ++#: c-typeck.c:5081 c-typeck.c:5084 + #, fuzzy + msgid "array index in initializer exceeds array bounds" + msgstr "array-index in beginwaarde van niet-array" + +-#: c-typeck.c:5115 ++#: c-typeck.c:5095 + msgid "empty index range in initializer" + msgstr "leeg indexbereik in beginwaarde" + +-#: c-typeck.c:5124 ++#: c-typeck.c:5104 + #, fuzzy + msgid "array index range in initializer exceeds array bounds" + msgstr "leeg indexbereik in beginwaarde" + +-#: c-typeck.c:5164 ++#: c-typeck.c:5144 + #, c-format + msgid "unknown field `%s' specified in initializer" + msgstr "onbekend veld `%s' opgegeven in beginwaarde" + +-#: c-typeck.c:5200 c-typeck.c:5221 c-typeck.c:5683 ++#: c-typeck.c:5180 c-typeck.c:5201 c-typeck.c:5663 + msgid "initialized field with side-effects overwritten" + msgstr "" + +-#: c-typeck.c:5891 ++#: c-typeck.c:5871 + #, fuzzy + msgid "excess elements in char array initializer" + msgstr "overtollige elementen in beginwaarde van array" + +-#: c-typeck.c:5898 c-typeck.c:5944 ++#: c-typeck.c:5878 c-typeck.c:5924 + msgid "excess elements in struct initializer" + msgstr "overtollige elementen in beginwaarde van struct" + +-#: c-typeck.c:5959 ++#: c-typeck.c:5939 + msgid "non-static initialization of a flexible array member" + msgstr "" + +-#: c-typeck.c:6026 ++#: c-typeck.c:6006 + msgid "excess elements in union initializer" + msgstr "overtollige elementen in beginwaarde van union" + +-#: c-typeck.c:6047 ++#: c-typeck.c:6027 + msgid "traditional C rejects initialization of unions" + msgstr "" + +-#: c-typeck.c:6110 ++#: c-typeck.c:6090 + msgid "excess elements in array initializer" + msgstr "overtollige elementen in beginwaarde van array" + +-#: c-typeck.c:6139 ++#: c-typeck.c:6119 + #, fuzzy + msgid "excess elements in vector initializer" + msgstr "overtollige elementen in beginwaarde van scalair" + +-#: c-typeck.c:6161 ++#: c-typeck.c:6141 + msgid "excess elements in scalar initializer" + msgstr "overtollige elementen in beginwaarde van scalair" + +-#: c-typeck.c:6263 ++#: c-typeck.c:6243 + msgid "asm template is not a string constant" + msgstr "asm-template is geen stringconstante" + +-#: c-typeck.c:6295 ++#: c-typeck.c:6275 + #, fuzzy + msgid "invalid lvalue in asm statement" + msgstr "ongeldige lvalue in toewijzing" + +-#: c-typeck.c:6367 cp/typeck.c:5902 ++#: c-typeck.c:6347 cp/typeck.c:5923 + msgid "modification by `asm'" + msgstr "aanpassing door `asm'" + +-#: c-typeck.c:6385 cp/typeck.c:5986 ++#: c-typeck.c:6365 cp/typeck.c:6007 + msgid "function declared `noreturn' has a `return' statement" + msgstr "als `noreturn' gedeclareerde functie bevat een `return' statement" + +-#: c-typeck.c:6392 ++#: c-typeck.c:6372 + msgid "`return' with no value, in function returning non-void" + msgstr "`return' zonder waarde in een functie die een niet-void waarde teruggeeft" + +-#: c-typeck.c:6398 ++#: c-typeck.c:6378 + msgid "`return' with a value, in function returning void" + msgstr "`return' met waarde in een functie die void teruggeeft" + +-#: c-typeck.c:6402 ++#: c-typeck.c:6382 + msgid "return" + msgstr "return" + +-#: c-typeck.c:6454 ++#: c-typeck.c:6434 + msgid "function returns address of local variable" + msgstr "functie geeft adres van lokale variabele terug" + +-#: c-typeck.c:6509 cp/semantics.c:749 ++#: c-typeck.c:6489 cp/semantics.c:749 + msgid "switch quantity not an integer" + msgstr "switch-waarde is geen integer" + +-#: c-typeck.c:6519 ++#: c-typeck.c:6499 + #, fuzzy + msgid "`long' switch expression not converted to `int' in ISO C" + msgstr "`long' switch-expressie wordt in ANSI C niet naar `int' geconverteerd" + +-#: c-typeck.c:6560 cp/parser.c:5560 ++#: c-typeck.c:6540 cp/parser.c:5597 + msgid "case label not within a switch statement" + msgstr "case-label niet in een switch-statement" + +-#: c-typeck.c:6562 ++#: c-typeck.c:6542 + #, fuzzy + msgid "`default' label not within a switch statement" + msgstr "default-label niet in een switch-statement" + +-#: c-typeck.c:6714 c-typeck.c:6748 ++#: c-typeck.c:6694 c-typeck.c:6728 + msgid "division by zero" + msgstr "deling door nul" + +-#: c-typeck.c:6793 cp/typeck.c:2953 ++#: c-typeck.c:6773 cp/typeck.c:2953 + msgid "right shift count is negative" + msgstr "teller van rechtse shift is negatief" + +-#: c-typeck.c:6800 cp/typeck.c:2959 ++#: c-typeck.c:6780 cp/typeck.c:2959 + msgid "right shift count >= width of type" + msgstr "teller van rechtse shift is >= breedte van het type" + +-#: c-typeck.c:6821 cp/typeck.c:2978 ++#: c-typeck.c:6801 cp/typeck.c:2978 + msgid "left shift count is negative" + msgstr "teller van links shift is negatief" + +-#: c-typeck.c:6824 cp/typeck.c:2980 ++#: c-typeck.c:6804 cp/typeck.c:2980 + msgid "left shift count >= width of type" + msgstr "teller van links shift is >= breedte van het type" + +-#: c-typeck.c:6845 ++#: c-typeck.c:6825 + msgid "shift count is negative" + msgstr "teller van shift is negatief" + +-#: c-typeck.c:6847 ++#: c-typeck.c:6827 + msgid "shift count >= width of type" + msgstr "teller van shift is >= breedte van het type" + +-#: c-typeck.c:6864 cp/typeck.c:3015 ++#: c-typeck.c:6844 cp/typeck.c:3015 + msgid "comparing floating point with == or != is unsafe" + msgstr "" + +-#: c-typeck.c:6888 c-typeck.c:6894 ++#: c-typeck.c:6868 c-typeck.c:6874 + #, fuzzy + msgid "ISO C forbids comparison of `void *' with function pointer" + msgstr "ANSI C verbiedt een vergelijking van `void *' met een functie-pointer" + +-#: c-typeck.c:6897 c-typeck.c:6937 c-typeck.c:6965 ++#: c-typeck.c:6877 c-typeck.c:6917 c-typeck.c:6945 + msgid "comparison of distinct pointer types lacks a cast" + msgstr "een cast ontbreekt bij vergelijking van ongelijke pointer-types" + +-#: c-typeck.c:6911 c-typeck.c:6916 c-typeck.c:6985 c-typeck.c:6990 ++#: c-typeck.c:6891 c-typeck.c:6896 c-typeck.c:6965 c-typeck.c:6970 + msgid "comparison between pointer and integer" + msgstr "vergelijking tussen pointer en integer" + + # 'ordered' -> 'bevolen' of 'geordend'? Waarschijnlijk het laatste. +-#: c-typeck.c:6932 c-typeck.c:6960 ++#: c-typeck.c:6912 c-typeck.c:6940 + #, fuzzy + msgid "ISO C forbids ordered comparisons of pointers to functions" + msgstr "ANSI C verbiedt geordende vergelijkingen tussen pointers naar functies" + +-#: c-typeck.c:6957 ++#: c-typeck.c:6937 + msgid "comparison of complete and incomplete pointers" + msgstr "vergelijking van volledige en onvolledige pointers" + +-#: c-typeck.c:6973 c-typeck.c:6980 ++#: c-typeck.c:6953 c-typeck.c:6960 + msgid "ordered comparison of pointer with integer zero" + msgstr "geordende vergelijking van een pointer met integer nul" + +-#: c-typeck.c:7004 cp/typeck.c:3151 ++#: c-typeck.c:6984 cp/typeck.c:3151 + #, fuzzy + msgid "unordered comparison on non-floating point argument" + msgstr "geordende vergelijking van een pointer met integer nul" + +-#: c-typeck.c:7214 ++#: c-typeck.c:7194 + msgid "comparison between signed and unsigned" + msgstr "vergelijking tussen signed en unsigned" + +-#: c-typeck.c:7260 cp/typeck.c:3398 ++#: c-typeck.c:7240 cp/typeck.c:3398 + msgid "comparison of promoted ~unsigned with constant" + msgstr "vergelijking van gepromoveerde ~unsigned met constante" + +-#: c-typeck.c:7268 cp/typeck.c:3406 ++#: c-typeck.c:7248 cp/typeck.c:3406 + msgid "comparison of promoted ~unsigned with unsigned" + msgstr "vergelijking van gepromoveerde ~unsigned met unsigned" + +@@ -3656,7 +3661,7 @@ + msgid "%Jinlining failed in call to '%F'" + msgstr "inline maken mislukt in oproep van `%s'" + +-#: calls.c:1839 calls.c:2211 tree-inline.c:1339 tree-inline.c:1346 ++#: calls.c:1839 calls.c:2211 tree-inline.c:1339 tree-inline.c:1347 + msgid "called from here" + msgstr "van hieruit opgeroepen" + +@@ -3718,7 +3723,7 @@ + msgid "verify_flow_info: Basic block %d succ edge is corrupted" + msgstr "" + +-#: cfg.c:909 cfgrtl.c:1971 ++#: cfg.c:909 cfgrtl.c:1983 + #, c-format + msgid "Wrong amount of branch edges after unconditional jump %i" + msgstr "" +@@ -3797,117 +3802,117 @@ + msgid "Edge from %d to %d should not be marked irreducible." + msgstr "" + +-#: cfgrtl.c:1877 ++#: cfgrtl.c:1889 + #, c-format + msgid "end insn %d for block %d not found in the insn stream" + msgstr "" + +-#: cfgrtl.c:1891 ++#: cfgrtl.c:1903 + #, c-format + msgid "insn %d is in multiple basic blocks (%d and %d)" + msgstr "" + +-#: cfgrtl.c:1903 ++#: cfgrtl.c:1915 + #, c-format + msgid "head insn %d for block %d not found in the insn stream" + msgstr "" + +-#: cfgrtl.c:1925 ++#: cfgrtl.c:1937 + msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i" + msgstr "" + +-#: cfgrtl.c:1953 ++#: cfgrtl.c:1965 + #, c-format + msgid "Missing REG_EH_REGION note in the end of bb %i" + msgstr "" + +-#: cfgrtl.c:1961 ++#: cfgrtl.c:1973 + #, c-format + msgid "Too many outgoing branch edges from bb %i" + msgstr "" + +-#: cfgrtl.c:1966 ++#: cfgrtl.c:1978 + #, c-format + msgid "Fallthru edge after unconditional jump %i" + msgstr "" + +-#: cfgrtl.c:1977 ++#: cfgrtl.c:1989 + #, fuzzy, c-format + msgid "Wrong amount of branch edges after conditional jump %i" + msgstr "types in voorwaardelijke expressie komen niet overeen" + +-#: cfgrtl.c:1982 ++#: cfgrtl.c:1994 + #, c-format + msgid "Call edges for non-call insn in bb %i" + msgstr "" + +-#: cfgrtl.c:1991 ++#: cfgrtl.c:2003 + #, c-format + msgid "Abnormal edges for no purpose in bb %i" + msgstr "" + +-#: cfgrtl.c:2001 ++#: cfgrtl.c:2013 + #, c-format + msgid "insn %d inside basic block %d but block_for_insn is NULL" + msgstr "" + +-#: cfgrtl.c:2005 ++#: cfgrtl.c:2017 + #, c-format + msgid "insn %d inside basic block %d but block_for_insn is %i" + msgstr "" + +-#: cfgrtl.c:2019 cfgrtl.c:2029 ++#: cfgrtl.c:2031 cfgrtl.c:2041 + #, c-format + msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d" + msgstr "" + +-#: cfgrtl.c:2042 ++#: cfgrtl.c:2054 + #, c-format + msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d" + msgstr "" + +-#: cfgrtl.c:2052 ++#: cfgrtl.c:2064 + #, c-format + msgid "in basic block %d:" + msgstr "" + +-#: cfgrtl.c:2053 ++#: cfgrtl.c:2065 + msgid "flow control insn inside a basic block" + msgstr "" + +-#: cfgrtl.c:2099 ++#: cfgrtl.c:2111 + #, c-format + msgid "missing barrier after block %i" + msgstr "" + +-#: cfgrtl.c:2112 ++#: cfgrtl.c:2124 + #, c-format + msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i" + msgstr "" + +-#: cfgrtl.c:2127 ++#: cfgrtl.c:2139 + #, c-format + msgid "verify_flow_info: Incorrect fallthru %i->%i" + msgstr "" + +-#: cfgrtl.c:2129 ++#: cfgrtl.c:2141 + msgid "wrong insn in the fallthru edge" + msgstr "" + +-#: cfgrtl.c:2146 ++#: cfgrtl.c:2158 + msgid "basic blocks not laid down consecutively" + msgstr "" + +-#: cfgrtl.c:2171 ++#: cfgrtl.c:2183 + msgid "insn outside basic block" + msgstr "" + +-#: cfgrtl.c:2179 ++#: cfgrtl.c:2191 + #, fuzzy + msgid "return not followed by barrier" + msgstr "`#' gevolgd door een integer" + +-#: cfgrtl.c:2186 ++#: cfgrtl.c:2198 + #, c-format + msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)" + msgstr "" +@@ -4149,7 +4154,7 @@ + msgid "library lib%s not found" + msgstr "Library lib%s niet gevonden" + +-#: combine.c:13048 ++#: combine.c:13047 + #, c-format + msgid "" + ";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n" +@@ -4160,7 +4165,7 @@ + ";; nodig), %d successen.\n" + "\n" + +-#: combine.c:13057 ++#: combine.c:13056 + #, c-format + msgid "" + "\n" +@@ -4513,69 +4518,74 @@ + msgid "token \"%s\" is not valid in preprocessor expressions" + msgstr "stringconstantes zijn niet toegestaan in #if-expressies" + +-#: cppexp.c:753 ++#: cppexp.c:751 + #, fuzzy +-msgid "void expression between '(' and ')'" ++msgid "missing expression between '(' and ')'" + msgstr "ongeldige expressie als operand" + +-#: cppexp.c:756 ++#: cppexp.c:754 + #, fuzzy + msgid "#if with no expression" + msgstr "modi in %s expressie komen niet overeen" + +-#: cppexp.c:758 ++#: cppexp.c:757 + #, fuzzy, c-format + msgid "operator '%s' has no right operand" + msgstr "iterator `%s' is van een niet-integraal type" + +-#: cppexp.c:784 ++#: cppexp.c:762 ++#, fuzzy, c-format ++msgid "operator '%s' has no left operand" ++msgstr "iterator `%s' is van een niet-integraal type" ++ ++#: cppexp.c:788 + msgid " ':' without preceding '?'" + msgstr "" + +-#: cppexp.c:811 ++#: cppexp.c:815 + #, fuzzy + msgid "unbalanced stack in #if" + msgstr "niet-gebalanceerde `#endif'" + +-#: cppexp.c:830 ++#: cppexp.c:834 + #, fuzzy, c-format + msgid "impossible operator '%u'" + msgstr "incompatibele operands voor %s" + +-#: cppexp.c:922 ++#: cppexp.c:926 + #, fuzzy + msgid "missing ')' in expression" + msgstr "ontbrekende index-expressie" + +-#: cppexp.c:943 ++#: cppexp.c:947 + msgid "'?' without following ':'" + msgstr "" + +-#: cppexp.c:953 ++#: cppexp.c:957 + msgid "integer overflow in preprocessor expression" + msgstr "integer-overflow in preprocessor-expressie" + +-#: cppexp.c:958 ++#: cppexp.c:962 + #, fuzzy + msgid "missing '(' in expression" + msgstr "ontbrekende index-expressie" + +-#: cppexp.c:990 ++#: cppexp.c:994 + #, c-format + msgid "the left operand of \"%s\" changes sign when promoted" + msgstr "" + +-#: cppexp.c:995 ++#: cppexp.c:999 + #, c-format + msgid "the right operand of \"%s\" changes sign when promoted" + msgstr "" + +-#: cppexp.c:1353 ++#: cppexp.c:1357 + #, fuzzy + msgid "comma operator in operand of #if" + msgstr "comma-operator in operand van `#if'" + +-#: cppexp.c:1484 ++#: cppexp.c:1488 + msgid "division by zero in #if" + msgstr "deling door nul in `#if'" + +@@ -4611,7 +4621,7 @@ + msgid "no include path in which to search for %s" + msgstr "Geen include-pad waarin %s kan gevonden worden" + +-#: cppfiles.c:956 ++#: cppfiles.c:959 + msgid "Multiple include guards may be useful for:\n" + msgstr "" + +@@ -5046,7 +5056,7 @@ + msgid "syntax error in macro parameter list" + msgstr "ongeldig karakter in naam van macro-parameter" + +-#: cse.c:7064 ++#: cse.c:7069 + #, c-format + msgid ";; Processing block from %d to %d, %d sets.\n" + msgstr "" +@@ -5188,12 +5198,12 @@ + + #. We can't handle floating point constants; + #. PRINT_OPERAND must handle them. +-#: final.c:3220 vmsdbgout.c:467 config/i386/i386.c:6768 ++#: final.c:3220 vmsdbgout.c:467 config/i386/i386.c:6769 + #: config/pdp11/pdp11.c:1646 + msgid "floating constant misused" + msgstr "floating-point constante verkeerd gebruikt" + +-#: final.c:3276 vmsdbgout.c:524 config/i386/i386.c:6846 ++#: final.c:3276 vmsdbgout.c:524 config/i386/i386.c:6847 + #: config/pdp11/pdp11.c:1693 + msgid "invalid expression as operand" + msgstr "ongeldige expressie als operand" +@@ -5214,25 +5224,25 @@ + msgid "Attempt to delete prologue/epilogue insn:" + msgstr "" + +-#: fold-const.c:2878 fold-const.c:2891 ++#: fold-const.c:2889 fold-const.c:2902 + #, fuzzy, c-format + msgid "comparison is always %d due to width of bit-field" + msgstr "vergelijking is altijd waar omwille van het beperkte bereik van het datatype" + +-#: fold-const.c:4093 fold-const.c:4110 ++#: fold-const.c:4110 fold-const.c:4127 + #, c-format + msgid "comparison is always %d" + msgstr "" + +-#: fold-const.c:4241 ++#: fold-const.c:4258 + msgid "`or' of unmatched not-equal tests is always 1" + msgstr "" + +-#: fold-const.c:4246 ++#: fold-const.c:4263 + msgid "`and' of mutually exclusive equal-tests is always 0" + msgstr "" + +-#: fold-const.c:8393 ++#: fold-const.c:8410 + msgid "fold check: original tree changed by fold" + msgstr "" + +@@ -5241,28 +5251,28 @@ + msgid "%Jsize of variable '%D' is too large" + msgstr "variabele `%s' is te groot" + +-#: function.c:3742 ++#: function.c:3752 + #, fuzzy + msgid "impossible constraint in `asm'" + msgstr "incompatibele operands voor %s" + +-#: function.c:5733 ++#: function.c:5743 + msgid "%J'%D' might be used uninitialized in this function" + msgstr "" + +-#: function.c:5740 ++#: function.c:5750 + msgid "%Jvariable '%D' might be clobbered by `longjmp' or `vfork'" + msgstr "" + +-#: function.c:5759 ++#: function.c:5769 + msgid "%Jargument '%D' might be clobbered by `longjmp' or `vfork'" + msgstr "" + +-#: function.c:6533 ++#: function.c:6543 + msgid "function returns an aggregate" + msgstr "" + +-#: function.c:6929 ++#: function.c:6939 + #, fuzzy + msgid "%Junused parameter '%D'" + msgstr "ongeldige macronaam `%.*s'" +@@ -5291,80 +5301,80 @@ + msgid "Using built-in specs.\n" + msgstr "" + +-#: gcc.c:1755 ++#: gcc.c:1758 + #, c-format + msgid "" + "Setting spec %s to '%s'\n" + "\n" + msgstr "" + +-#: gcc.c:1857 ++#: gcc.c:1860 + #, c-format + msgid "Reading specs from %s\n" + msgstr "" + +-#: gcc.c:1953 gcc.c:1972 ++#: gcc.c:1956 gcc.c:1975 + #, c-format + msgid "specs %%include syntax malformed after %ld characters" + msgstr "" + +-#: gcc.c:1980 ++#: gcc.c:1983 + #, c-format + msgid "could not find specs file %s\n" + msgstr "" + +-#: gcc.c:1997 gcc.c:2005 gcc.c:2014 gcc.c:2023 ++#: gcc.c:2000 gcc.c:2008 gcc.c:2017 gcc.c:2026 + #, c-format + msgid "specs %%rename syntax malformed after %ld characters" + msgstr "" + +-#: gcc.c:2032 ++#: gcc.c:2035 + #, c-format + msgid "specs %s spec was not found to be renamed" + msgstr "" + +-#: gcc.c:2039 ++#: gcc.c:2042 + #, c-format + msgid "%s: attempt to rename spec '%s' to already defined spec '%s'" + msgstr "" + +-#: gcc.c:2044 ++#: gcc.c:2047 + #, c-format + msgid "rename spec %s to %s\n" + msgstr "" + +-#: gcc.c:2046 ++#: gcc.c:2049 + #, c-format + msgid "" + "spec is '%s'\n" + "\n" + msgstr "" + +-#: gcc.c:2059 ++#: gcc.c:2062 + #, c-format + msgid "specs unknown %% command after %ld characters" + msgstr "" + +-#: gcc.c:2070 gcc.c:2083 ++#: gcc.c:2073 gcc.c:2086 + #, c-format + msgid "specs file malformed after %ld characters" + msgstr "" + +-#: gcc.c:2136 ++#: gcc.c:2139 + msgid "spec file has no spec for linking" + msgstr "" + +-#: gcc.c:2641 ++#: gcc.c:2644 + msgid "-pipe not supported" + msgstr "" + +-#: gcc.c:2703 ++#: gcc.c:2706 + msgid "" + "\n" + "Go ahead? (y or n) " + msgstr "" + +-#: gcc.c:2829 ++#: gcc.c:2832 + #, c-format + msgid "" + "Internal error: %s (program %s)\n" +@@ -5372,159 +5382,159 @@ + "See %s for instructions." + msgstr "" + +-#: gcc.c:2847 ++#: gcc.c:2850 + #, c-format + msgid "# %s %.2f %.2f\n" + msgstr "" + +-#: gcc.c:2980 ++#: gcc.c:2983 + #, c-format + msgid "Usage: %s [options] file...\n" + msgstr "" + +-#: gcc.c:2981 ++#: gcc.c:2984 + msgid "Options:\n" + msgstr "" + +-#: gcc.c:2983 ++#: gcc.c:2986 + msgid " -pass-exit-codes Exit with highest error code from a phase\n" + msgstr "" + +-#: gcc.c:2984 ++#: gcc.c:2987 + msgid " --help Display this information\n" + msgstr "" + +-#: gcc.c:2985 ++#: gcc.c:2988 + msgid " --target-help Display target specific command line options\n" + msgstr "" + +-#: gcc.c:2987 ++#: gcc.c:2990 + msgid " (Use '-v --help' to display command line options of sub-processes)\n" + msgstr "" + +-#: gcc.c:2988 ++#: gcc.c:2991 + msgid " -dumpspecs Display all of the built in spec strings\n" + msgstr "" + +-#: gcc.c:2989 ++#: gcc.c:2992 + msgid " -dumpversion Display the version of the compiler\n" + msgstr "" + +-#: gcc.c:2990 ++#: gcc.c:2993 + msgid " -dumpmachine Display the compiler's target processor\n" + msgstr "" + +-#: gcc.c:2991 ++#: gcc.c:2994 + msgid " -print-search-dirs Display the directories in the compiler's search path\n" + msgstr "" + +-#: gcc.c:2992 ++#: gcc.c:2995 + msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n" + msgstr "" + +-#: gcc.c:2993 ++#: gcc.c:2996 + msgid " -print-file-name= Display the full path to library \n" + msgstr "" + +-#: gcc.c:2994 ++#: gcc.c:2997 + msgid " -print-prog-name= Display the full path to compiler component \n" + msgstr "" + +-#: gcc.c:2995 ++#: gcc.c:2998 + msgid " -print-multi-directory Display the root directory for versions of libgcc\n" + msgstr "" + +-#: gcc.c:2996 ++#: gcc.c:2999 + msgid "" + " -print-multi-lib Display the mapping between command line options and\n" + " multiple library search directories\n" + msgstr "" + +-#: gcc.c:2999 ++#: gcc.c:3002 + msgid " -print-multi-os-directory Display the relative path to OS libraries\n" + msgstr "" + +-#: gcc.c:3000 ++#: gcc.c:3003 + msgid " -Wa, Pass comma-separated on to the assembler\n" + msgstr "" + +-#: gcc.c:3001 ++#: gcc.c:3004 + msgid " -Wp, Pass comma-separated on to the preprocessor\n" + msgstr "" + +-#: gcc.c:3002 ++#: gcc.c:3005 + msgid " -Wl, Pass comma-separated on to the linker\n" + msgstr "" + +-#: gcc.c:3003 ++#: gcc.c:3006 + msgid " -Xassembler Pass on to the assembler\n" + msgstr "" + +-#: gcc.c:3004 ++#: gcc.c:3007 + msgid " -Xpreprocessor Pass on to the preprocessor\n" + msgstr "" + +-#: gcc.c:3005 ++#: gcc.c:3008 + msgid " -Xlinker Pass on to the linker\n" + msgstr "" + +-#: gcc.c:3006 ++#: gcc.c:3009 + msgid " -save-temps Do not delete intermediate files\n" + msgstr "" + +-#: gcc.c:3007 ++#: gcc.c:3010 + msgid " -pipe Use pipes rather than intermediate files\n" + msgstr "" + +-#: gcc.c:3008 ++#: gcc.c:3011 + msgid " -time Time the execution of each subprocess\n" + msgstr "" + +-#: gcc.c:3009 ++#: gcc.c:3012 + msgid " -specs= Override built-in specs with the contents of \n" + msgstr "" + +-#: gcc.c:3010 ++#: gcc.c:3013 + msgid " -std= Assume that the input sources are for \n" + msgstr "" + +-#: gcc.c:3011 ++#: gcc.c:3014 + msgid " -B Add to the compiler's search paths\n" + msgstr "" + +-#: gcc.c:3012 ++#: gcc.c:3015 + msgid " -b Run gcc for target , if installed\n" + msgstr "" + +-#: gcc.c:3013 ++#: gcc.c:3016 + msgid " -V Run gcc version number , if installed\n" + msgstr "" + +-#: gcc.c:3014 ++#: gcc.c:3017 + msgid " -v Display the programs invoked by the compiler\n" + msgstr "" + +-#: gcc.c:3015 ++#: gcc.c:3018 + msgid " -### Like -v but options quoted and commands not executed\n" + msgstr "" + +-#: gcc.c:3016 ++#: gcc.c:3019 + msgid " -E Preprocess only; do not compile, assemble or link\n" + msgstr "" + +-#: gcc.c:3017 ++#: gcc.c:3020 + msgid " -S Compile only; do not assemble or link\n" + msgstr "" + +-#: gcc.c:3018 ++#: gcc.c:3021 + msgid " -c Compile and assemble, but do not link\n" + msgstr "" + +-#: gcc.c:3019 ++#: gcc.c:3022 + msgid " -o Place the output into \n" + msgstr "" + +-#: gcc.c:3020 ++#: gcc.c:3023 + msgid "" + " -x Specify the language of the following input files\n" + " Permissible languages include: c c++ assembler none\n" +@@ -5532,7 +5542,7 @@ + " guessing the language based on the file's extension\n" + msgstr "" + +-#: gcc.c:3027 ++#: gcc.c:3030 + #, c-format + msgid "" + "\n" +@@ -5541,96 +5551,96 @@ + " other options on to these processes the -W options must be used.\n" + msgstr "" + +-#: gcc.c:3148 ++#: gcc.c:3151 + #, fuzzy, c-format + msgid "`-%c' option must have argument" + msgstr "`%s' neemt ofwel geen, ofwel twee argumenten" + +-#: gcc.c:3170 ++#: gcc.c:3173 + #, c-format + msgid "couldn't run `%s': %s" + msgstr "" + + #. translate_options () has turned --version into -fversion. +-#: gcc.c:3356 ++#: gcc.c:3359 + #, c-format + msgid "%s (GCC) %s\n" + msgstr "" + +-#: gcc.c:3358 gcov.c:424 f/g77spec.c:351 ++#: gcc.c:3361 gcov.c:424 f/g77spec.c:351 + msgid "(C)" + msgstr "" + +-#: gcc.c:3359 ++#: gcc.c:3362 + msgid "" + "This is free software; see the source for copying conditions. There is NO\n" + "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" + "\n" + msgstr "" + +-#: gcc.c:3460 ++#: gcc.c:3463 + msgid "argument to `-Xlinker' is missing" + msgstr "" + +-#: gcc.c:3468 ++#: gcc.c:3471 + #, fuzzy + msgid "argument to `-Xpreprocessor' is missing" + msgstr "het argument van `asm' is geen constante string" + +-#: gcc.c:3475 ++#: gcc.c:3478 + #, fuzzy + msgid "argument to `-Xassembler' is missing" + msgstr "het argument van `asm' is geen constante string" + +-#: gcc.c:3482 ++#: gcc.c:3485 + #, fuzzy + msgid "argument to `-l' is missing" + msgstr "het argument van `asm' is geen constante string" + +-#: gcc.c:3498 ++#: gcc.c:3501 + msgid "argument to `-specs' is missing" + msgstr "" + +-#: gcc.c:3512 ++#: gcc.c:3515 + msgid "argument to `-specs=' is missing" + msgstr "" + +-#: gcc.c:3549 ++#: gcc.c:3552 + #, c-format + msgid "`-%c' must come at the start of the command line" + msgstr "" + +-#: gcc.c:3558 ++#: gcc.c:3561 + msgid "argument to `-B' is missing" + msgstr "" + +-#: gcc.c:3735 ++#: gcc.c:3738 + msgid "warning: -pipe ignored because -save-temps specified" + msgstr "" + +-#: gcc.c:3739 ++#: gcc.c:3742 + msgid "warning: -pipe ignored because -time specified" + msgstr "" + +-#: gcc.c:3951 ++#: gcc.c:3954 + msgid "argument to `-x' is missing" + msgstr "" + +-#: gcc.c:3979 ++#: gcc.c:3982 + #, c-format + msgid "argument to `-%s' is missing" + msgstr "" + +-#: gcc.c:4040 ++#: gcc.c:4043 + #, c-format + msgid "warning: `-x %s' after last input file has no effect" + msgstr "" + +-#: gcc.c:4441 ++#: gcc.c:4444 + msgid "invalid specification! Bug in cc" + msgstr "" + +-#: gcc.c:4595 ++#: gcc.c:4598 + #, c-format + msgid "%s\n" + msgstr "" +@@ -5638,131 +5648,131 @@ + #. Catch the case where a spec string contains something like + #. '%{foo:%*}'. ie there is no * in the pattern on the left + #. hand side of the :. +-#: gcc.c:5099 ++#: gcc.c:5102 + #, c-format + msgid "spec failure: '%%*' has not been initialized by pattern match" + msgstr "" + +-#: gcc.c:5108 ++#: gcc.c:5111 + #, fuzzy, c-format + msgid "warning: use of obsolete %%[ operator in specs" + msgstr "Let Op: verouderde operator %%[ gebruikt in specs" + +-#: gcc.c:5126 ++#: gcc.c:5129 + #, c-format + msgid "Processing spec %c%s%c, which is '%s'\n" + msgstr "" + +-#: gcc.c:5189 ++#: gcc.c:5192 + #, c-format + msgid "spec failure: unrecognized spec option '%c'" + msgstr "" + +-#: gcc.c:5268 ++#: gcc.c:5271 + #, fuzzy, c-format + msgid "unknown spec function `%s'" + msgstr "Ongeldige optie `%s'" + +-#: gcc.c:5287 ++#: gcc.c:5290 + #, fuzzy, c-format + msgid "error in args to spec function `%s'" + msgstr "teveel argumenten voor functie `%s'" + +-#: gcc.c:5335 ++#: gcc.c:5338 + #, fuzzy + msgid "malformed spec function name" + msgstr "cast geeft functie-type op" + + #. ) +-#: gcc.c:5338 ++#: gcc.c:5341 + #, fuzzy + msgid "no arguments for spec function" + msgstr "te weinig argument voor functie" + +-#: gcc.c:5357 ++#: gcc.c:5360 + msgid "malformed spec function arguments" + msgstr "" + +-#: gcc.c:6083 ++#: gcc.c:6086 + msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC." + msgstr "" + +-#: gcc.c:6093 ++#: gcc.c:6096 + msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC." + msgstr "" + +-#: gcc.c:6186 ++#: gcc.c:6189 + #, c-format + msgid "unrecognized option `-%s'" + msgstr "" + +-#: gcc.c:6192 ++#: gcc.c:6195 + #, c-format + msgid "install: %s%s\n" + msgstr "" + +-#: gcc.c:6193 ++#: gcc.c:6196 + #, c-format + msgid "programs: %s\n" + msgstr "" + +-#: gcc.c:6194 ++#: gcc.c:6197 + #, c-format + msgid "libraries: %s\n" + msgstr "" + +-#: gcc.c:6251 ++#: gcc.c:6254 + msgid "" + "\n" + "For bug reporting instructions, please see:\n" + msgstr "" + +-#: gcc.c:6267 ++#: gcc.c:6270 + #, c-format + msgid "Configured with: %s\n" + msgstr "" + +-#: gcc.c:6281 ++#: gcc.c:6284 + #, c-format + msgid "Thread model: %s\n" + msgstr "" + +-#: gcc.c:6292 ++#: gcc.c:6295 + #, c-format + msgid "gcc version %s\n" + msgstr "gcc versie %s\n" + +-#: gcc.c:6294 ++#: gcc.c:6297 + #, c-format + msgid "gcc driver version %s executing gcc version %s\n" + msgstr "gcc stuurprogramma versie %s voert gcc versie %s uit\n" + +-#: gcc.c:6302 ++#: gcc.c:6305 + #, fuzzy + msgid "no input files" + msgstr "Geen invoerbestanden" + +-#: gcc.c:6324 gcc.c:6443 ++#: gcc.c:6327 gcc.c:6446 + #, c-format + msgid "%s: linker input file unused because linking not done" + msgstr "" + +-#: gcc.c:6327 ++#: gcc.c:6330 + #, fuzzy + msgid "cannot specify -o with -c or -S and multiple languages" + msgstr "-EB en -EL mogen niet samen gebruikt worden" + +-#: gcc.c:6362 ++#: gcc.c:6365 + #, c-format + msgid "%s: %s compiler not installed on this system" + msgstr "%s: %s compiler niet geïnstalleerd op dit systeem" + +-#: gcc.c:6483 ++#: gcc.c:6486 + #, c-format + msgid "language %s not recognized" + msgstr "taal %s niet herkend" + +-#: gcc.c:6580 ++#: gcc.c:6583 + msgid "internal gcc abort" + msgstr "" + +@@ -6043,22 +6053,22 @@ + msgid "GCSE disabled" + msgstr "" + +-#: gcse.c:6124 ++#: gcse.c:6125 + msgid "NULL pointer checks disabled" + msgstr "" + + #. Return if there's nothing to do, or it is too expensive. +-#: gcse.c:8010 ++#: gcse.c:8036 + #, fuzzy + msgid "jump bypassing disabled" + msgstr "ingeschakelde opties: " + +-#: gcse.c:8071 ++#: gcse.c:8097 + #, c-format + msgid "%s: %d basic blocks and %d edges/basic block" + msgstr "" + +-#: gcse.c:8084 ++#: gcse.c:8110 + #, c-format + msgid "%s: %d basic blocks and %d registers" + msgstr "" +@@ -6109,7 +6119,7 @@ + msgid "%s cannot be used in asm here" + msgstr "veld `%s' als een functie gedeclareerd" + +-#: graph.c:403 toplev.c:1498 toplev.c:4432 f/com.c:14202 java/jcf-parse.c:883 ++#: graph.c:403 toplev.c:1498 toplev.c:4433 f/com.c:14202 java/jcf-parse.c:883 + #: java/jcf-parse.c:1029 java/lex.c:1828 objc/objc-act.c:503 + #, fuzzy, c-format + msgid "can't open %s: %m" +@@ -6191,7 +6201,7 @@ + msgid "function with target specific attribute(s) cannot be inlined" + msgstr "" + +-#: jump.c:1896 ++#: jump.c:1913 + msgid "%Hwill never be executed" + msgstr "" + +@@ -6680,7 +6690,7 @@ + msgid "can't use '%s' as a %s register" + msgstr "" + +-#: regclass.c:758 config/ia64/ia64.c:4660 config/ia64/ia64.c:4667 ++#: regclass.c:758 config/ia64/ia64.c:4666 config/ia64/ia64.c:4673 + #, c-format + msgid "unknown register name: %s" + msgstr "" +@@ -6725,15 +6735,15 @@ + msgid "impossible register constraint in `asm'" + msgstr "" + +-#: reload.c:3504 ++#: reload.c:3519 + msgid "`&' constraint used with no register class" + msgstr "" + +-#: reload.c:3672 ++#: reload.c:3687 + msgid "unable to generate reloads for:" + msgstr "" + +-#: reload.c:3673 reload.c:3887 ++#: reload.c:3688 reload.c:3902 + msgid "inconsistent operand constraints in an `asm'" + msgstr "" + +@@ -7147,42 +7157,42 @@ + msgid "invalid register name `%s' for register variable" + msgstr "" + +-#: toplev.c:3546 ++#: toplev.c:3547 + msgid "branch target register load optimization is not intended to be run twice" + msgstr "" + +-#: toplev.c:3713 ++#: toplev.c:3714 + msgid "" + "\n" + "Target specific options:\n" + msgstr "" + +-#: toplev.c:3727 toplev.c:3746 ++#: toplev.c:3728 toplev.c:3747 + #, c-format + msgid " -m%-23s [undocumented]\n" + msgstr "" + +-#: toplev.c:3755 ++#: toplev.c:3756 + msgid "" + "\n" + "There are undocumented target specific options as well.\n" + msgstr "" + +-#: toplev.c:3757 ++#: toplev.c:3758 + msgid " They exist, but they are not documented.\n" + msgstr "" + +-#: toplev.c:3812 ++#: toplev.c:3813 + #, c-format + msgid "unrecognized gcc debugging option: %c" + msgstr "" + +-#: toplev.c:3874 config/rs6000/rs6000.c:922 ++#: toplev.c:3875 config/rs6000/rs6000.c:940 config/rs6000/rs6000.c:951 + #, fuzzy, c-format + msgid "invalid option `%s'" + msgstr "Ongeldige optie `%s'" + +-#: toplev.c:3889 ++#: toplev.c:3890 + #, fuzzy, c-format + msgid "" + "%s%s%s version %s (%s)\n" +@@ -7192,98 +7202,98 @@ + "%s%s%s versie %s (%s) gecompileerd door GNU C versie %s.\n" + "%s%s%s versie %s (%s) gecompileerd door CC.\n" + +-#: toplev.c:3896 ++#: toplev.c:3897 + #, c-format + msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n" + msgstr "" + +-#: toplev.c:3948 ++#: toplev.c:3949 + msgid "options passed: " + msgstr "meegegeven opties: " + +-#: toplev.c:3977 ++#: toplev.c:3978 + msgid "options enabled: " + msgstr "ingeschakelde opties: " + +-#: toplev.c:4035 java/jcf-write.c:3424 ++#: toplev.c:4036 java/jcf-write.c:3424 + #, fuzzy, c-format + msgid "can't open %s for writing: %m" + msgstr "open %s" + +-#: toplev.c:4118 config/sh/sh.c:7019 ++#: toplev.c:4119 config/sh/sh.c:7020 + msgid "created and used with different settings of -fpic" + msgstr "" + +-#: toplev.c:4120 config/sh/sh.c:7021 ++#: toplev.c:4121 config/sh/sh.c:7022 + msgid "created and used with different settings of -fpie" + msgstr "" + +-#: toplev.c:4171 config/sh/sh.c:7071 ++#: toplev.c:4172 config/sh/sh.c:7072 + #, c-format + msgid "created and used with differing settings of `-m%s'" + msgstr "" + +-#: toplev.c:4174 config/sh/sh.c:7074 ++#: toplev.c:4175 config/sh/sh.c:7075 + msgid "out of memory" + msgstr "" + +-#: toplev.c:4355 ++#: toplev.c:4356 + msgid "instruction scheduling not supported on this target machine" + msgstr "instructie-scheduling wordt niet ondersteund op deze doelmachine" + +-#: toplev.c:4359 ++#: toplev.c:4360 + msgid "this target machine does not have delayed branches" + msgstr "deze doelmachine heeft geen delayed branches" + +-#: toplev.c:4373 ++#: toplev.c:4374 + #, c-format + msgid "-f%sleading-underscore not supported on this target machine" + msgstr "-f%sleading-underscore wordt niet ondersteund op deze doelmachine" + +-#: toplev.c:4422 ++#: toplev.c:4423 + #, fuzzy, c-format + msgid "target system does not support the \"%s\" debug format" + msgstr "%s ondersteunt het `%%%s%c' %s formaat niet" + +-#: toplev.c:4439 ++#: toplev.c:4440 + #, fuzzy + msgid "-ffunction-sections not supported for this target" + msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem" + +-#: toplev.c:4444 ++#: toplev.c:4445 + #, fuzzy + msgid "-fdata-sections not supported for this target" + msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem" + +-#: toplev.c:4451 ++#: toplev.c:4452 + msgid "-ffunction-sections disabled; it makes profiling impossible" + msgstr "" + +-#: toplev.c:4458 ++#: toplev.c:4459 + #, fuzzy + msgid "-fprefetch-loop-arrays not supported for this target" + msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem" + +-#: toplev.c:4464 ++#: toplev.c:4465 + #, fuzzy + msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)" + msgstr "-f%sleading-underscore wordt niet ondersteund op deze doelmachine" + +-#: toplev.c:4473 ++#: toplev.c:4474 + #, fuzzy + msgid "-fprefetch-loop-arrays is not supported with -Os" + msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem" + +-#: toplev.c:4479 ++#: toplev.c:4480 + msgid "-ffunction-sections may affect debugging on some targets" + msgstr "" + +-#: toplev.c:4581 ++#: toplev.c:4582 + #, fuzzy, c-format + msgid "error writing to %s: %m" + msgstr "kan bestand '%s' niet openen" + +-#: toplev.c:4583 java/jcf-parse.c:902 java/jcf-write.c:3431 ++#: toplev.c:4584 java/jcf-parse.c:902 java/jcf-write.c:3431 + #, fuzzy, c-format + msgid "error closing %s: %m" + msgstr "#error %s" +@@ -7330,7 +7340,7 @@ + msgid "%Jfunction '%F' can never be inlined because it uses variable sized variables" + msgstr "" + +-#: tree-inline.c:1338 tree-inline.c:1345 ++#: tree-inline.c:1338 tree-inline.c:1346 + #, fuzzy + msgid "%Jinlining failed in call to '%F': %s" + msgstr "inline maken mislukt in oproep van `%s'" +@@ -7345,34 +7355,34 @@ + msgid "%Jsize of return value of '%D' is larger than %wd bytes" + msgstr "grootte van teruggeefwaarde van `%s' is %u bytes" + +-#: tree.c:3801 ++#: tree.c:3800 + msgid "arrays of functions are not meaningful" + msgstr "arrays van functies zijn niet betekenisvol" + +-#: tree.c:3856 ++#: tree.c:3855 + msgid "function return type cannot be function" + msgstr "de terugkeerwaarde van een functie kan geen funtie zijn" + +-#: tree.c:4685 ++#: tree.c:4684 + msgid "invalid initializer for bit string" + msgstr "ongeldige beginwaarde voor bit-string" + +-#: tree.c:4737 ++#: tree.c:4736 + #, c-format + msgid "tree check: expected %s, have %s in %s, at %s:%d" + msgstr "" + +-#: tree.c:4750 ++#: tree.c:4749 + #, c-format + msgid "tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d" + msgstr "" + +-#: tree.c:4763 ++#: tree.c:4762 + #, c-format + msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d" + msgstr "" + +-#: tree.c:4775 ++#: tree.c:4774 + #, c-format + msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d" + msgstr "" +@@ -7433,52 +7443,52 @@ + msgid "%Jrequested alignment for '%D' is greater than implemented alignment of %d" + msgstr "het gevraagde alignment voor %s is groter dan het geïmplementeerde aligment van %d." + +-#: varasm.c:3789 ++#: varasm.c:3790 + msgid "initializer for integer value is too complicated" + msgstr "initializer voor integerwaarde is te ingewikkeld" + +-#: varasm.c:3794 ++#: varasm.c:3795 + msgid "initializer for floating value is not a floating constant" + msgstr "initializer voor floating-point waarde is geen floating-point constante" + +-#: varasm.c:3860 ++#: varasm.c:3861 + msgid "unknown set constructor type" + msgstr "onbekend type verzameling-constructor" + +-#: varasm.c:4079 ++#: varasm.c:4080 + #, c-format + msgid "invalid initial value for member `%s'" + msgstr "ongeldige beginwaarde voor member `%s'" + +-#: varasm.c:4266 varasm.c:4310 ++#: varasm.c:4267 varasm.c:4311 + #, fuzzy + msgid "%Jweak declaration of '%D' must precede definition" + msgstr "de zwakke declaratie van `%s' moet aan de definitie voorafgaan" + +-#: varasm.c:4274 ++#: varasm.c:4275 + #, fuzzy + msgid "%Jweak declaration of '%D' after first use results in unspecified behavior" + msgstr "de zwakke declaratie van `%s' moet aan de definitie voorafgaan" + +-#: varasm.c:4308 ++#: varasm.c:4309 + #, fuzzy + msgid "%Jweak declaration of '%D' must be public" + msgstr "de zwakke declaratie van `%s' moet publiek zijn" + +-#: varasm.c:4317 ++#: varasm.c:4318 + #, fuzzy + msgid "%Jweak declaration of '%D' not supported" + msgstr "de zwakke declaratie van `%s' moet publiek zijn" + +-#: varasm.c:4346 varasm.c:4436 ++#: varasm.c:4347 varasm.c:4437 + msgid "only weak aliases are supported in this configuration" + msgstr "enkel zwakke aliasen worden in deze configuratie ondersteund" + +-#: varasm.c:4439 ++#: varasm.c:4440 + msgid "alias definitions not supported in this configuration; ignored" + msgstr "alias-definities worden niet ondersteund in deze configuratie; genegeerd" + +-#: varasm.c:4468 ++#: varasm.c:4469 + #, fuzzy + msgid "visibility attribute not supported in this configuration; ignored" + msgstr "alias-definities worden niet ondersteund in deze configuratie; genegeerd" +@@ -7709,7 +7719,7 @@ + msgid "junk at end of '#pragma unused'" + msgstr "Brol aan einde van signature-string." + +-#: config/darwin.c:1347 ++#: config/darwin.c:1312 + #, fuzzy + msgid "internal and protected visibility attributes not supportedin this configuration; ignored" + msgstr "alias-definities worden niet ondersteund in deze configuratie; genegeerd" +@@ -7757,7 +7767,7 @@ + msgid "bad value `%s' for -mfp-trap-mode switch" + msgstr "slechte waarde `%s' voor optie -mfp-trap-mode" + +-#: config/alpha/alpha.c:324 config/rs6000/rs6000.c:1088 ++#: config/alpha/alpha.c:324 config/rs6000/rs6000.c:1117 + #, fuzzy, c-format + msgid "bad value `%s' for -mtls-size switch" + msgstr "slechte waarde `%s' voor optie -mcpu" +@@ -7800,91 +7810,91 @@ + msgid "bad value `%s' for -mmemory-latency" + msgstr "slechte waarde `%s' voor -mmeroy-latency" + +-#: config/alpha/alpha.c:5425 ++#: config/alpha/alpha.c:5436 + #, c-format + msgid "invalid %%H value" + msgstr "" + +-#: config/alpha/alpha.c:5446 ++#: config/alpha/alpha.c:5457 + #, fuzzy, c-format + msgid "invalid %%J value" + msgstr "ongeldige waarde voor %%E" + +-#: config/alpha/alpha.c:5462 config/ia64/ia64.c:4263 ++#: config/alpha/alpha.c:5473 config/ia64/ia64.c:4269 + #, c-format + msgid "invalid %%r value" + msgstr "ongeldige waarde voor %%r" + +-#: config/alpha/alpha.c:5472 config/rs6000/rs6000.c:9241 ++#: config/alpha/alpha.c:5483 config/rs6000/rs6000.c:9332 + #: config/xtensa/xtensa.c:2014 + #, c-format + msgid "invalid %%R value" + msgstr "ongeldige waarde voor %%R" + +-#: config/alpha/alpha.c:5478 config/rs6000/rs6000.c:9160 ++#: config/alpha/alpha.c:5489 config/rs6000/rs6000.c:9251 + #: config/xtensa/xtensa.c:1981 + #, c-format + msgid "invalid %%N value" + msgstr "ongeldige waarde voor %%N" + +-#: config/alpha/alpha.c:5486 config/rs6000/rs6000.c:9188 ++#: config/alpha/alpha.c:5497 config/rs6000/rs6000.c:9279 + #, c-format + msgid "invalid %%P value" + msgstr "ongeldige waarde voor %%P" + +-#: config/alpha/alpha.c:5494 ++#: config/alpha/alpha.c:5505 + #, c-format + msgid "invalid %%h value" + msgstr "ongeldige waarde voor %%h" + +-#: config/alpha/alpha.c:5502 config/xtensa/xtensa.c:2007 ++#: config/alpha/alpha.c:5513 config/xtensa/xtensa.c:2007 + #, c-format + msgid "invalid %%L value" + msgstr "ongeldige waarde voor %%L" + +-#: config/alpha/alpha.c:5541 config/rs6000/rs6000.c:9142 ++#: config/alpha/alpha.c:5552 config/rs6000/rs6000.c:9233 + #, c-format + msgid "invalid %%m value" + msgstr "ongeldige waarde voor %%m" + +-#: config/alpha/alpha.c:5549 config/rs6000/rs6000.c:9150 ++#: config/alpha/alpha.c:5560 config/rs6000/rs6000.c:9241 + #, c-format + msgid "invalid %%M value" + msgstr "ongeldige waarde voor %%M" + +-#: config/alpha/alpha.c:5593 ++#: config/alpha/alpha.c:5604 + #, c-format + msgid "invalid %%U value" + msgstr "ongeldige waarde voor %%U" + +-#: config/alpha/alpha.c:5605 config/alpha/alpha.c:5619 +-#: config/rs6000/rs6000.c:9249 ++#: config/alpha/alpha.c:5616 config/alpha/alpha.c:5630 ++#: config/rs6000/rs6000.c:9340 + #, c-format + msgid "invalid %%s value" + msgstr "ongeldige waarde voor %%s" + +-#: config/alpha/alpha.c:5642 ++#: config/alpha/alpha.c:5653 + #, c-format + msgid "invalid %%C value" + msgstr "ongeldige waarde voor %%C" + +-#: config/alpha/alpha.c:5679 config/rs6000/rs6000.c:8979 +-#: config/rs6000/rs6000.c:8999 ++#: config/alpha/alpha.c:5690 config/rs6000/rs6000.c:9070 ++#: config/rs6000/rs6000.c:9090 + #, c-format + msgid "invalid %%E value" + msgstr "ongeldige waarde voor %%E" + +-#: config/alpha/alpha.c:5704 config/alpha/alpha.c:5752 ++#: config/alpha/alpha.c:5715 config/alpha/alpha.c:5763 + #, fuzzy + msgid "unknown relocation unspec" + msgstr "onbekend type verzameling-constructor" + +-#: config/alpha/alpha.c:5713 config/rs6000/rs6000.c:9562 ++#: config/alpha/alpha.c:5724 config/rs6000/rs6000.c:9653 + #, c-format + msgid "invalid %%xn code" + msgstr "ongeldige code voor %%xn" + +-#: config/alpha/alpha.c:6657 config/alpha/alpha.c:6660 config/s390/s390.c:6575 ++#: config/alpha/alpha.c:6668 config/alpha/alpha.c:6671 config/s390/s390.c:6575 + #: config/s390/s390.c:6578 + msgid "bad builtin fcode" + msgstr "" +@@ -8022,7 +8032,7 @@ + msgid "Tune expected memory latency" + msgstr "" + +-#: config/alpha/alpha.h:376 config/ia64/ia64.h:267 config/rs6000/sysv4.h:90 ++#: config/alpha/alpha.h:376 config/ia64/ia64.h:272 config/rs6000/sysv4.h:90 + msgid "Specify bit size of immediate TLS offsets" + msgstr "" + +@@ -8041,17 +8051,17 @@ + msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\"" + msgstr "" + +-#: config/arc/arc.c:1714 config/m32r/m32r.c:2352 ++#: config/arc/arc.c:1714 config/m32r/m32r.c:2349 + #, fuzzy, c-format + msgid "invalid operand to %%R code" + msgstr "ongeldige operand voor %R-code" + +-#: config/arc/arc.c:1746 config/m32r/m32r.c:2375 ++#: config/arc/arc.c:1746 config/m32r/m32r.c:2372 + #, fuzzy, c-format + msgid "invalid operand to %%H/%%L code" + msgstr "ongeldige operand voor %H/%L-code" + +-#: config/arc/arc.c:1769 config/m32r/m32r.c:2446 ++#: config/arc/arc.c:1769 config/m32r/m32r.c:2443 + #, fuzzy, c-format + msgid "invalid operand to %%U code" + msgstr "ongeldige operand voor %U-code" +@@ -8064,7 +8074,7 @@ + # Hoe moet dit exact geïnterpreteerd worden? + # Zowel 'operand van uitvoercode' als 'code voor operanduitvoer' is mogelijk. + #. Unknown flag. +-#: config/arc/arc.c:1787 config/m32r/m32r.c:2473 config/sparc/sparc.c:7010 ++#: config/arc/arc.c:1787 config/m32r/m32r.c:2470 config/sparc/sparc.c:7152 + msgid "invalid operand output code" + msgstr "ongeldige operand voor uitvoercode" + +@@ -8073,7 +8083,7 @@ + msgid "switch -mcpu=%s conflicts with -march= switch" + msgstr "optie -mcpu=%s geeft conflicten met optie -mtune=" + +-#: config/arm/arm.c:530 config/rs6000/rs6000.c:767 config/sparc/sparc.c:424 ++#: config/arm/arm.c:530 config/rs6000/rs6000.c:785 config/sparc/sparc.c:426 + #, c-format + msgid "bad value (%s) for %s switch" + msgstr "slechte waarde (%s) foor optie %s" +@@ -8160,13 +8170,13 @@ + msgid "unable to use '%s' for PIC register" + msgstr "" + +-#: config/arm/arm.c:2249 config/arm/arm.c:2267 config/avr/avr.c:4558 +-#: config/c4x/c4x.c:4447 config/h8300/h8300.c:4260 config/i386/i386.c:1592 +-#: config/i386/i386.c:1638 config/ip2k/ip2k.c:3169 ++#: config/arm/arm.c:2249 config/arm/arm.c:2267 config/avr/avr.c:4523 ++#: config/c4x/c4x.c:4447 config/h8300/h8300.c:4260 config/i386/i386.c:1598 ++#: config/i386/i386.c:1644 config/ip2k/ip2k.c:3169 + #: config/m68hc11/m68hc11.c:1311 config/m68k/m68k.c:345 + #: config/mcore/mcore.c:3375 config/ns32k/ns32k.c:1064 +-#: config/rs6000/rs6000.c:14866 config/sh/sh.c:6873 config/sh/sh.c:6894 +-#: config/sh/sh.c:6929 config/stormy16/stormy16.c:2073 config/v850/v850.c:2173 ++#: config/rs6000/rs6000.c:15070 config/sh/sh.c:6874 config/sh/sh.c:6895 ++#: config/sh/sh.c:6930 config/stormy16/stormy16.c:2073 config/v850/v850.c:2173 + #, fuzzy, c-format + msgid "`%s' attribute only applies to functions" + msgstr "het `%s' attribuut heeft enkel betekenis voor functies" +@@ -8181,7 +8191,7 @@ + msgstr "" + + #. @@@ better error message +-#: config/arm/arm.c:11284 config/i386/i386.c:14317 config/i386/i386.c:14351 ++#: config/arm/arm.c:11284 config/i386/i386.c:14318 config/i386/i386.c:14352 + msgid "mask must be an immediate" + msgstr "" + +@@ -8321,63 +8331,63 @@ + msgid "Ignore dllimport attribute for functions" + msgstr "" + +-#: config/avr/avr.c:514 ++#: config/avr/avr.c:511 + #, c-format + msgid "large frame pointer change (%d) with -mtiny-stack" + msgstr "" + +-#: config/avr/avr.c:1101 ++#: config/avr/avr.c:1098 + msgid "bad address, not (reg+disp):" + msgstr "" + +-#: config/avr/avr.c:1109 ++#: config/avr/avr.c:1106 + #, fuzzy + msgid "internal compiler error. Bad address:" + msgstr "Interne compilerfout." + +-#: config/avr/avr.c:1122 ++#: config/avr/avr.c:1119 + #, fuzzy + msgid "internal compiler error. Unknown mode:" + msgstr "Interne compilerfout." + + # (%s = 'parameter ') +-#: config/avr/avr.c:1744 config/avr/avr.c:2405 ++#: config/avr/avr.c:1741 config/avr/avr.c:2402 + #, fuzzy + msgid "invalid insn:" + msgstr "ongeldige %s" + +-#: config/avr/avr.c:1778 config/avr/avr.c:1861 config/avr/avr.c:1910 +-#: config/avr/avr.c:1919 config/avr/avr.c:2014 config/avr/avr.c:2183 +-#: config/avr/avr.c:2439 config/avr/avr.c:2547 ++#: config/avr/avr.c:1775 config/avr/avr.c:1858 config/avr/avr.c:1907 ++#: config/avr/avr.c:1916 config/avr/avr.c:2011 config/avr/avr.c:2180 ++#: config/avr/avr.c:2436 config/avr/avr.c:2544 + msgid "incorrect insn:" + msgstr "" + +-#: config/avr/avr.c:1938 config/avr/avr.c:2099 config/avr/avr.c:2254 +-#: config/avr/avr.c:2591 ++#: config/avr/avr.c:1935 config/avr/avr.c:2096 config/avr/avr.c:2251 ++#: config/avr/avr.c:2588 + #, fuzzy + msgid "unknown move insn:" + msgstr "onbekende machine-modus `%s'" + +-#: config/avr/avr.c:2814 ++#: config/avr/avr.c:2811 + msgid "bad shift insn:" + msgstr "" + +-#: config/avr/avr.c:2927 config/avr/avr.c:3348 config/avr/avr.c:3719 ++#: config/avr/avr.c:2924 config/avr/avr.c:3345 config/avr/avr.c:3716 + #, fuzzy + msgid "internal compiler error. Incorrect shift:" + msgstr "Interne compilerfout." + +-#: config/avr/avr.c:4532 config/ip2k/ip2k.c:3144 ++#: config/avr/avr.c:4497 config/ip2k/ip2k.c:3144 + #, fuzzy + msgid "only initialized variables can be placed into program memory area" + msgstr "Enkel variabelen met beginwaarde kunnen in het 8-bit gebied geplaatst worden." + +-#: config/avr/avr.c:4626 ++#: config/avr/avr.c:4591 + #, fuzzy + msgid "only uninitialized variables can be placed in the .noinit section" + msgstr "Enkel variabelen met beginwaarde kunnen in het 8-bit gebied geplaatst worden." + +-#: config/avr/avr.c:4640 ++#: config/avr/avr.c:4605 + #, fuzzy, c-format + msgid "MCU `%s' supported for assembler only" + msgstr "-pipe wordt niet ondersteund" +@@ -9604,7 +9614,7 @@ + msgid "code model %s not supported in PIC mode" + msgstr "afrondingsmodus niet ondersteund voor VAX-floats" + +-#: config/i386/i386.c:1189 config/sparc/sparc.c:387 ++#: config/i386/i386.c:1189 config/sparc/sparc.c:389 + #, c-format + msgid "bad value (%s) for -mcmodel= switch" + msgstr "slechte waarde (%s) voor optie -mcmodel=" +@@ -9638,149 +9648,149 @@ + msgid "bad value (%s) for -march= switch" + msgstr "slechte waarde (%s) voor de -march= optie" + +-#: config/i386/i386.c:1260 ++#: config/i386/i386.c:1266 + #, fuzzy, c-format + msgid "bad value (%s) for -mtune= switch" + msgstr "slechte waarde (%s) voor de -march= optie" + +-#: config/i386/i386.c:1277 ++#: config/i386/i386.c:1283 + #, c-format + msgid "-mregparm=%d is not between 0 and %d" + msgstr "-mregparm=%d ligt niet tussen 0 en %d" + +-#: config/i386/i386.c:1290 ++#: config/i386/i386.c:1296 + #, fuzzy + msgid "-malign-loops is obsolete, use -falign-loops" + msgstr "-malign-loops=%d ligt niet tussen 0 en %d" + +-#: config/i386/i386.c:1295 config/i386/i386.c:1308 config/i386/i386.c:1321 ++#: config/i386/i386.c:1301 config/i386/i386.c:1314 config/i386/i386.c:1327 + #, c-format + msgid "-malign-loops=%d is not between 0 and %d" + msgstr "-malign-loops=%d ligt niet tussen 0 en %d" + +-#: config/i386/i386.c:1303 ++#: config/i386/i386.c:1309 + #, fuzzy + msgid "-malign-jumps is obsolete, use -falign-jumps" + msgstr "-malign-jumps=%d ligt niet tussen 0 en %d" + +-#: config/i386/i386.c:1316 ++#: config/i386/i386.c:1322 + #, fuzzy + msgid "-malign-functions is obsolete, use -falign-functions" + msgstr "-malign-functions=%d ligt niet tussen 0 en %d" + +-#: config/i386/i386.c:1354 ++#: config/i386/i386.c:1360 + #, fuzzy, c-format + msgid "-mpreferred-stack-boundary=%d is not between %d and 12" + msgstr "-mpreferred_stack_boundary=%d ligt niet tussen 2 en 31" + +-#: config/i386/i386.c:1366 ++#: config/i386/i386.c:1372 + #, c-format + msgid "-mbranch-cost=%d is not between 0 and 5" + msgstr "-mbranch-cost=%d ligt niet tussen 0 en 5" + +-#: config/i386/i386.c:1378 ++#: config/i386/i386.c:1384 + #, fuzzy, c-format + msgid "bad value (%s) for -mtls-dialect= switch" + msgstr "slechte waarde (%s) voor optie -msdata" + +-#: config/i386/i386.c:1407 ++#: config/i386/i386.c:1413 + msgid "-malign-double makes no sense in the 64bit mode" + msgstr "" + +-#: config/i386/i386.c:1409 ++#: config/i386/i386.c:1415 + #, fuzzy + msgid "-mrtd calling convention not supported in the 64bit mode" + msgstr "alias-definities worden niet ondersteund in deze configuratie; genegeerd" + +-#: config/i386/i386.c:1431 config/i386/i386.c:1442 ++#: config/i386/i386.c:1437 config/i386/i386.c:1448 + #, fuzzy + msgid "SSE instruction set disabled, using 387 arithmetics" + msgstr "pointer naar functie gebruikt in rekensom" + +-#: config/i386/i386.c:1447 ++#: config/i386/i386.c:1453 + #, fuzzy + msgid "387 instruction set disabled, using SSE arithmetics" + msgstr "pointer naar functie gebruikt in rekensom" + +-#: config/i386/i386.c:1454 ++#: config/i386/i386.c:1460 + #, fuzzy, c-format + msgid "bad value (%s) for -mfpmath= switch" + msgstr "slechte waarde (%s) voor de -march= optie" + +-#: config/i386/i386.c:1602 config/i386/i386.c:1613 ++#: config/i386/i386.c:1608 config/i386/i386.c:1619 + #, fuzzy + msgid "fastcall and stdcall attributes are not compatible" + msgstr "-pg en -fomit-frame-pointer zijn niet compatibel" + +-#: config/i386/i386.c:1606 config/i386/i386.c:1662 ++#: config/i386/i386.c:1612 config/i386/i386.c:1668 + #, fuzzy + msgid "fastcall and regparm attributes are not compatible" + msgstr "-pg en -fomit-frame-pointer zijn niet compatibel" + +-#: config/i386/i386.c:1649 ++#: config/i386/i386.c:1655 + #, c-format + msgid "`%s' attribute requires an integer constant argument" + msgstr "" + +-#: config/i386/i386.c:1655 ++#: config/i386/i386.c:1661 + #, fuzzy, c-format + msgid "argument to `%s' attribute larger than %d" + msgstr "kan het `%s' attribuut niet instellen na een definitie" + +-#: config/i386/i386.c:2621 ++#: config/i386/i386.c:2627 + msgid "SSE vector argument without SSE enabled changes the ABI" + msgstr "" + +-#: config/i386/i386.c:2637 ++#: config/i386/i386.c:2643 + msgid "MMX vector argument without MMX enabled changes the ABI" + msgstr "" + +-#: config/i386/i386.c:2865 ++#: config/i386/i386.c:2871 + msgid "SSE vector return without SSE enabled changes the ABI" + msgstr "" + +-#: config/i386/i386.c:6840 ++#: config/i386/i386.c:6841 + msgid "invalid UNSPEC as operand" + msgstr "ongeldige UNSPEC als operand" + +-#: config/i386/i386.c:7098 ++#: config/i386/i386.c:7099 + msgid "extended registers have no high halves" + msgstr "" + +-#: config/i386/i386.c:7113 ++#: config/i386/i386.c:7114 + msgid "unsupported operand size for extended register" + msgstr "" + +-#: config/i386/i386.c:7428 ++#: config/i386/i386.c:7429 + msgid "operand is neither a constant nor a condition code, invalid operand code 'c'" + msgstr "" + +-#: config/i386/i386.c:7474 ++#: config/i386/i386.c:7475 + #, fuzzy, c-format + msgid "invalid operand code `%c'" + msgstr "ongeldige operand van %s" + +-#: config/i386/i386.c:7517 ++#: config/i386/i386.c:7518 + #, fuzzy + msgid "invalid constraints for operand" + msgstr "ongeldige operand voor %P" + +-#: config/i386/i386.c:12031 ++#: config/i386/i386.c:12032 + #, fuzzy + msgid "unknown insn mode" + msgstr "onbekende machine-modus `%s'" + +-#: config/i386/i386.c:14119 config/i386/i386.c:14155 ++#: config/i386/i386.c:14120 config/i386/i386.c:14156 + #, c-format + msgid "selector must be an integer constant in the range 0..%i" + msgstr "" + +-#: config/i386/i386.c:14383 ++#: config/i386/i386.c:14384 + #, fuzzy + msgid "shift must be an immediate" + msgstr "`defined' zonder een naam" + +-#: config/i386/i386.c:15406 ++#: config/i386/i386.c:15407 + #, fuzzy, c-format + msgid "`%s' incompatible attribute ignored" + msgstr "het `%s' attribuut wordt genegeerd" +@@ -10084,7 +10094,7 @@ + #. variable, type `char *', is set to the variable part of the given + #. option if the fixed part matches. The actual option name is made + #. by appending `-m' to the specified name. +-#: config/i386/i386.h:461 config/ia64/ia64.h:269 config/rs6000/rs6000.h:449 ++#: config/i386/i386.h:461 config/ia64/ia64.h:274 config/rs6000/rs6000.h:449 + #: config/s390/s390.h:146 config/sparc/sparc.h:656 + msgid "Schedule code for given CPU" + msgstr "" +@@ -10207,7 +10217,7 @@ + msgid "iC2.0 and iC3.0 are incompatible - using iC3.0" + msgstr "" + +-#: config/i960/i960.c:1456 config/m68k/m68k.c:600 config/rs6000/rs6000.c:11597 ++#: config/i960/i960.c:1456 config/m68k/m68k.c:600 config/rs6000/rs6000.c:11690 + #, fuzzy + msgid "stack limit expression is not supported" + msgstr "-pipe wordt niet ondersteund" +@@ -10374,41 +10384,41 @@ + msgid "%Jaddress area attribute cannot be specified for functions" + msgstr "sectie-attribuut kan niet opgegeven worden voor lokale variabelen" + +-#: config/ia64/ia64.c:4308 ++#: config/ia64/ia64.c:4314 + msgid "ia64_print_operand: unknown code" + msgstr "" + +-#: config/ia64/ia64.c:4648 ++#: config/ia64/ia64.c:4654 + msgid "value of -mfixed-range must have form REG1-REG2" + msgstr "" + +-#: config/ia64/ia64.c:4675 ++#: config/ia64/ia64.c:4681 + #, fuzzy, c-format + msgid "%s-%s is an empty range" + msgstr "leeg bereik" + +-#: config/ia64/ia64.c:4723 ++#: config/ia64/ia64.c:4729 + msgid "cannot optimize floating point division for both latency and throughput" + msgstr "" + +-#: config/ia64/ia64.c:4729 ++#: config/ia64/ia64.c:4735 + msgid "cannot optimize integer division for both latency and throughput" + msgstr "" + +-#: config/ia64/ia64.c:4735 ++#: config/ia64/ia64.c:4741 + msgid "cannot optimize square root for both latency and throughput" + msgstr "" + +-#: config/ia64/ia64.c:4741 ++#: config/ia64/ia64.c:4747 + msgid "not yet implemented: latency-optimized inline square root" + msgstr "" + +-#: config/ia64/ia64.c:4753 ++#: config/ia64/ia64.c:4759 + #, fuzzy, c-format + msgid "bad value (%s) for -mtls-size= switch" + msgstr "slechte waarde (%s) voor de -march= optie" + +-#: config/ia64/ia64.c:4769 ++#: config/ia64/ia64.c:4775 + #, fuzzy, c-format + msgid "bad value (%s) for -tune= switch" + msgstr "slechte waarde (%s) voor de -march= optie" +@@ -10416,108 +10426,108 @@ + #. This macro defines names of command options to set and clear bits in + #. `target_flags'. Its definition is an initializer with a subgrouping for + #. each command option. +-#: config/ia64/ia64.h:172 ++#: config/ia64/ia64.h:177 + msgid "Generate big endian code" + msgstr "" + +-#: config/ia64/ia64.h:174 config/mcore/mcore.h:154 ++#: config/ia64/ia64.h:179 config/mcore/mcore.h:154 + msgid "Generate little endian code" + msgstr "" + +-#: config/ia64/ia64.h:176 ++#: config/ia64/ia64.h:181 + msgid "Generate code for GNU as" + msgstr "" + +-#: config/ia64/ia64.h:178 ++#: config/ia64/ia64.h:183 + msgid "Generate code for Intel as" + msgstr "" + +-#: config/ia64/ia64.h:180 ++#: config/ia64/ia64.h:185 + msgid "Generate code for GNU ld" + msgstr "" + +-#: config/ia64/ia64.h:182 ++#: config/ia64/ia64.h:187 + msgid "Generate code for Intel ld" + msgstr "" + +-#: config/ia64/ia64.h:184 ++#: config/ia64/ia64.h:189 + msgid "Generate code without GP reg" + msgstr "" + +-#: config/ia64/ia64.h:186 ++#: config/ia64/ia64.h:191 + msgid "Emit stop bits before and after volatile extended asms" + msgstr "" + +-#: config/ia64/ia64.h:188 ++#: config/ia64/ia64.h:193 + msgid "Don't emit stop bits before and after volatile extended asms" + msgstr "" + +-#: config/ia64/ia64.h:190 ++#: config/ia64/ia64.h:195 + msgid "Emit code for Itanium (TM) processor B step" + msgstr "" + +-#: config/ia64/ia64.h:192 ++#: config/ia64/ia64.h:197 + #, fuzzy + msgid "Use in/loc/out register names" + msgstr "ongeldige registernaam voor `%s'" + +-#: config/ia64/ia64.h:194 ++#: config/ia64/ia64.h:199 + msgid "Disable use of sdata/scommon/sbss" + msgstr "" + +-#: config/ia64/ia64.h:196 ++#: config/ia64/ia64.h:201 + msgid "Enable use of sdata/scommon/sbss" + msgstr "" + +-#: config/ia64/ia64.h:198 ++#: config/ia64/ia64.h:203 + msgid "gp is constant (but save/restore gp on indirect calls)" + msgstr "" + +-#: config/ia64/ia64.h:200 ++#: config/ia64/ia64.h:205 + msgid "Generate self-relocatable code" + msgstr "" + +-#: config/ia64/ia64.h:202 ++#: config/ia64/ia64.h:207 + msgid "Generate inline floating point division, optimize for latency" + msgstr "" + +-#: config/ia64/ia64.h:204 ++#: config/ia64/ia64.h:209 + msgid "Generate inline floating point division, optimize for throughput" + msgstr "" + +-#: config/ia64/ia64.h:206 ++#: config/ia64/ia64.h:211 + msgid "Generate inline integer division, optimize for latency" + msgstr "" + +-#: config/ia64/ia64.h:208 ++#: config/ia64/ia64.h:213 + msgid "Generate inline integer division, optimize for throughput" + msgstr "" + +-#: config/ia64/ia64.h:210 ++#: config/ia64/ia64.h:215 + msgid "Generate inline square root, optimize for latency" + msgstr "" + +-#: config/ia64/ia64.h:212 ++#: config/ia64/ia64.h:217 + msgid "Generate inline square root, optimize for throughput" + msgstr "" + +-#: config/ia64/ia64.h:214 ++#: config/ia64/ia64.h:219 + msgid "Enable Dwarf 2 line debug info via GNU as" + msgstr "" + +-#: config/ia64/ia64.h:216 ++#: config/ia64/ia64.h:221 + msgid "Disable Dwarf 2 line debug info via GNU as" + msgstr "" + +-#: config/ia64/ia64.h:218 ++#: config/ia64/ia64.h:223 + msgid "Enable earlier placing stop bits for better scheduling" + msgstr "" + +-#: config/ia64/ia64.h:220 ++#: config/ia64/ia64.h:225 + msgid "Disable earlier placing stop bits" + msgstr "" + +-#: config/ia64/ia64.h:265 ++#: config/ia64/ia64.h:270 + msgid "Specify range of registers to make fixed" + msgstr "" + +@@ -10555,7 +10565,7 @@ + msgid "PRINT_OPERAND: Unknown punctuation '%c'" + msgstr "" + +-#: config/iq2000/iq2000.c:3478 config/mips/mips.c:5464 ++#: config/iq2000/iq2000.c:3478 config/mips/mips.c:5463 + #: config/xtensa/xtensa.c:1950 + msgid "PRINT_OPERAND null pointer" + msgstr "" +@@ -10565,12 +10575,12 @@ + msgid "invalid %%P operand" + msgstr "ongeldige operand voor %P" + +-#: config/iq2000/iq2000.c:3555 config/rs6000/rs6000.c:9178 ++#: config/iq2000/iq2000.c:3555 config/rs6000/rs6000.c:9269 + #, c-format + msgid "invalid %%p value" + msgstr "" + +-#: config/iq2000/iq2000.c:3619 config/mips/mips.c:5594 ++#: config/iq2000/iq2000.c:3619 config/mips/mips.c:5593 + #, fuzzy, c-format + msgid "invalid use of %%d, %%x, or %%X" + msgstr "ongeldig gebruik van een void-expressie" +@@ -10626,51 +10636,51 @@ + msgid "bad value (%s) for -flush-trap=n (0= found without a %%< in assembler pattern" + msgstr "" + +-#: config/mips/mips.c:5441 ++#: config/mips/mips.c:5440 + #, c-format + msgid "internal error: %%} found without a %%{ in assembler pattern" + msgstr "" + +-#: config/mips/mips.c:5455 ++#: config/mips/mips.c:5454 + #, c-format + msgid "PRINT_OPERAND: unknown punctuation '%c'" + msgstr "" + +-#: config/mips/mips.c:5484 ++#: config/mips/mips.c:5483 + #, c-format + msgid "PRINT_OPERAND, invalid insn for %%C" + msgstr "" + +-#: config/mips/mips.c:5501 ++#: config/mips/mips.c:5500 + #, c-format + msgid "PRINT_OPERAND, invalid insn for %%N" + msgstr "" + +-#: config/mips/mips.c:5510 ++#: config/mips/mips.c:5509 + #, c-format + msgid "PRINT_OPERAND, invalid insn for %%F" + msgstr "" + +-#: config/mips/mips.c:5519 ++#: config/mips/mips.c:5518 + #, c-format + msgid "PRINT_OPERAND, invalid insn for %%W" + msgstr "" + +-#: config/mips/mips.c:5625 ++#: config/mips/mips.c:5624 + msgid "PRINT_OPERAND, invalid operand for relocation" + msgstr "" + +-#: config/mips/mips.c:8310 ++#: config/mips/mips.c:8324 + #, c-format + msgid "can not handle inconsistent calls to `%s'" + msgstr "" + +-#: config/mips/mips.c:9316 ++#: config/mips/mips.c:9333 + msgid "the cpu name must be lower case" + msgstr "" + +-#: config/mips/mips.c:9338 ++#: config/mips/mips.c:9355 + #, fuzzy, c-format + msgid "bad value (%s) for %s" + msgstr "slechte waarde (%s) foor optie %s" + +-#: config/mips/mips.c:9607 ++#: config/mips/mips.c:9624 + #, fuzzy, c-format + msgid "can't rewind temp file: %m" + msgstr "kan bestand '%s' niet openen" + +-#: config/mips/mips.c:9611 ++#: config/mips/mips.c:9628 + #, fuzzy, c-format + msgid "can't write to output file: %m" + msgstr "kan bestand '%s' niet openen" + +-#: config/mips/mips.c:9614 ++#: config/mips/mips.c:9631 + #, fuzzy, c-format + msgid "can't read from temp file: %m" + msgstr "kan bestand '%s' niet openen" + +-#: config/mips/mips.c:9617 ++#: config/mips/mips.c:9634 + #, fuzzy, c-format + msgid "can't close temp file: %m" + msgstr "close %s" +@@ -11467,7 +11477,7 @@ + + #. Output assembler code to FILE to increment profiler label # LABELNO + #. for profiling a function entry. +-#: config/mips/mips.h:2418 ++#: config/mips/mips.h:2430 + msgid "mips16 function profiling" + msgstr "" + +@@ -12039,175 +12049,184 @@ + msgid "junk at end of #pragma longcall" + msgstr "Brol aan einde van signature-string." + +-#: config/rs6000/rs6000.c:791 ++#: config/rs6000/rs6000.c:809 + msgid "-mmultiple is not supported on little endian systems" + msgstr "" + +-#: config/rs6000/rs6000.c:798 ++#: config/rs6000/rs6000.c:816 + msgid "-mstring is not supported on little endian systems" + msgstr "" + +-#: config/rs6000/rs6000.c:812 ++#: config/rs6000/rs6000.c:830 + #, c-format + msgid "unknown -mdebug-%s switch" + msgstr "" + +-#: config/rs6000/rs6000.c:824 ++#: config/rs6000/rs6000.c:842 + #, c-format + msgid "unknown -mtraceback arg `%s'; expecting `full', `partial' or `none'" + msgstr "" + +-#: config/rs6000/rs6000.c:835 ++#: config/rs6000/rs6000.c:853 + #, c-format + msgid "Unknown switch -mlong-double-%s" + msgstr "" + +-#: config/rs6000/rs6000.c:876 ++#: config/rs6000/rs6000.c:894 + msgid "AltiVec and E500 instructions cannot coexist" + msgstr "" + +-#: config/rs6000/rs6000.c:1029 ++#: config/rs6000/rs6000.c:1058 + #, fuzzy, c-format + msgid "unknown -m%s= option specified: '%s'" + msgstr "onbekende machine-modus `%s'" + +-#: config/rs6000/rs6000.c:1050 ++#: config/rs6000/rs6000.c:1079 + #, c-format + msgid "not configured for ABI: '%s'" + msgstr "" + +-#: config/rs6000/rs6000.c:1056 ++#: config/rs6000/rs6000.c:1085 + #, fuzzy, c-format + msgid "unknown ABI specified: '%s'" + msgstr "onbekende machine-modus `%s'" + +-#: config/rs6000/rs6000.c:1070 ++#: config/rs6000/rs6000.c:1099 + #, fuzzy, c-format + msgid "unknown -malign-XXXXX option specified: '%s'" + msgstr "onbekende machine-modus `%s'" + +-#: config/rs6000/rs6000.c:3972 ++#: config/rs6000/rs6000.c:4001 + msgid "Cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them." + msgstr "" + +-#: config/rs6000/rs6000.c:4095 ++#: config/rs6000/rs6000.c:4124 + msgid "Cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them." + msgstr "" + +-#: config/rs6000/rs6000.c:5599 ++#: config/rs6000/rs6000.c:5604 + #, fuzzy + msgid "argument 1 must be a 5-bit signed literal" + msgstr "argument van `%s' moet van een integraal type zijn." + +-#: config/rs6000/rs6000.c:5701 config/rs6000/rs6000.c:6357 ++#: config/rs6000/rs6000.c:5707 config/rs6000/rs6000.c:6374 + #, fuzzy + msgid "argument 2 must be a 5-bit unsigned literal" + msgstr "argument van `%s' moet van een integraal type zijn." + +-#: config/rs6000/rs6000.c:5741 ++#: config/rs6000/rs6000.c:5747 + #, fuzzy + msgid "argument 1 of __builtin_altivec_predicate must be a constant" + msgstr "argument voor `__builtin_args_info' moet een constante zijn" + +-#: config/rs6000/rs6000.c:5795 ++#: config/rs6000/rs6000.c:5801 + #, fuzzy + msgid "argument 1 of __builtin_altivec_predicate is out of range" + msgstr "argument voor `__builtin_args_info' buiten bereik" + +-#: config/rs6000/rs6000.c:5956 ++#: config/rs6000/rs6000.c:5962 + #, fuzzy + msgid "argument 3 must be a 4-bit unsigned literal" + msgstr "argument van `%s' moet van een integraal type zijn." + +-#: config/rs6000/rs6000.c:6126 ++#: config/rs6000/rs6000.c:6134 + #, fuzzy, c-format + msgid "argument to `%s' must be a 2-bit unsigned literal" + msgstr "argument van `%s' moet van een integraal type zijn." + +-#: config/rs6000/rs6000.c:6239 ++#: config/rs6000/rs6000.c:6247 + #, fuzzy + msgid "argument to dss must be a 2-bit unsigned literal" + msgstr "argument van `%s' moet van een integraal type zijn." + +-#: config/rs6000/rs6000.c:6477 ++#: config/rs6000/rs6000.c:6261 ++#, c-format ++msgid "invalid parameter combination for `%s' AltiVec intrinsic" ++msgstr "" ++ ++#: config/rs6000/rs6000.c:6494 + #, fuzzy + msgid "argument 1 of __builtin_spe_predicate must be a constant" + msgstr "argument voor `__builtin_args_info' moet een constante zijn" + +-#: config/rs6000/rs6000.c:6550 ++#: config/rs6000/rs6000.c:6567 + #, fuzzy + msgid "argument 1 of __builtin_spe_predicate is out of range" + msgstr "argument voor `__builtin_args_info' buiten bereik" + +-#: config/rs6000/rs6000.c:9008 ++#: config/rs6000/rs6000.c:9099 + #, c-format + msgid "invalid %%f value" + msgstr "" + +-#: config/rs6000/rs6000.c:9017 ++#: config/rs6000/rs6000.c:9108 + #, c-format + msgid "invalid %%F value" + msgstr "" + +-#: config/rs6000/rs6000.c:9026 ++#: config/rs6000/rs6000.c:9117 + #, c-format + msgid "invalid %%G value" + msgstr "" + +-#: config/rs6000/rs6000.c:9061 ++#: config/rs6000/rs6000.c:9152 + #, c-format + msgid "invalid %%j code" + msgstr "" + +-#: config/rs6000/rs6000.c:9071 ++#: config/rs6000/rs6000.c:9162 + #, c-format + msgid "invalid %%J code" + msgstr "" + +-#: config/rs6000/rs6000.c:9081 ++#: config/rs6000/rs6000.c:9172 + #, c-format + msgid "invalid %%k value" + msgstr "" + +-#: config/rs6000/rs6000.c:9101 config/xtensa/xtensa.c:2000 ++#: config/rs6000/rs6000.c:9192 config/xtensa/xtensa.c:2000 + #, fuzzy, c-format + msgid "invalid %%K value" + msgstr "ongeldige waarde voor %%E" + +-#: config/rs6000/rs6000.c:9168 ++#: config/rs6000/rs6000.c:9259 + #, c-format + msgid "invalid %%O value" + msgstr "ongeldige waarde voor %%O" + +-#: config/rs6000/rs6000.c:9215 ++#: config/rs6000/rs6000.c:9306 + #, fuzzy, c-format + msgid "invalid %%q value" + msgstr "ongeldige waarde voor %q" + +-#: config/rs6000/rs6000.c:9259 ++#: config/rs6000/rs6000.c:9350 + #, c-format + msgid "invalid %%S value" + msgstr "" + +-#: config/rs6000/rs6000.c:9301 ++#: config/rs6000/rs6000.c:9392 + #, c-format + msgid "invalid %%T value" + msgstr "" + +-#: config/rs6000/rs6000.c:9311 ++#: config/rs6000/rs6000.c:9402 + #, c-format + msgid "invalid %%u value" + msgstr "" + +-#: config/rs6000/rs6000.c:9320 config/xtensa/xtensa.c:1970 ++#: config/rs6000/rs6000.c:9411 config/xtensa/xtensa.c:1970 + #, c-format + msgid "invalid %%v value" + msgstr "" + +-#: config/rs6000/rs6000.c:13815 ++#: config/rs6000/rs6000.c:13913 + msgid "no profiling of 64-bit code for this ABI" + msgstr "" + ++#: config/rs6000/rs6000.c:14986 ++msgid "use of 'long' in AltiVec types is deprecated; use 'int'" ++msgstr "" ++ + #: config/rs6000/aix.h:184 config/rs6000/beos.h:32 + #, fuzzy + msgid "Always pass floating-point arguments in memory" +@@ -12465,18 +12484,22 @@ + msgstr "" + + #: config/rs6000/rs6000.h:468 ++msgid "Warn about deprecated 'vector long ...' AltiVec type usage" ++msgstr "" ++ ++#: config/rs6000/rs6000.h:471 + msgid "Determine which dependences between insns are considered costly" + msgstr "" + +-#: config/rs6000/rs6000.h:470 ++#: config/rs6000/rs6000.h:473 + msgid "Specify which post scheduling nop insertion scheme to apply" + msgstr "" + +-#: config/rs6000/rs6000.h:472 ++#: config/rs6000/rs6000.h:475 + msgid "Specify alignment of structure fields default/natural" + msgstr "" + +-#: config/rs6000/rs6000.h:474 ++#: config/rs6000/rs6000.h:477 + msgid "Specify scheduling priority for dispatch slot restricted insns" + msgstr "" + +@@ -12492,7 +12515,7 @@ + #. Number of bytes into the frame return addresses can be found. See + #. rs6000_stack_info in rs6000.c for more information on how the different + #. abi's store the return address. +-#: config/rs6000/rs6000.h:1923 ++#: config/rs6000/rs6000.h:1932 + msgid "RETURN_ADDRESS_OFFSET not supported" + msgstr "" + +@@ -12767,29 +12790,29 @@ + msgid "enable fused multiply/add instructions" + msgstr "ongeldig gebruik van `restrict'" + +-#: config/sh/sh.c:5977 ++#: config/sh/sh.c:5978 + #, fuzzy + msgid "__builtin_saveregs not supported by this subtarget" + msgstr "__builtin_saveregs wordt niet ondersteund op dit doelsysteem" + +-#: config/sh/sh.c:6879 ++#: config/sh/sh.c:6880 + msgid "attribute interrupt_handler is not compatible with -m5-compact" + msgstr "" + + #. The sp_switch attribute only has meaning for interrupt functions. +-#: config/sh/sh.c:6901 config/sh/sh.c:6936 ++#: config/sh/sh.c:6902 config/sh/sh.c:6937 + #, fuzzy, c-format + msgid "`%s' attribute only applies to interrupt functions" + msgstr "het `%s' attribuut heeft enkel betekenis voor functies" + + #. The argument must be a constant string. +-#: config/sh/sh.c:6908 ++#: config/sh/sh.c:6909 + #, fuzzy, c-format + msgid "`%s' attribute argument not a string constant" + msgstr "asm-template is geen stringconstante" + + #. The argument must be a constant integer. +-#: config/sh/sh.c:6943 ++#: config/sh/sh.c:6944 + #, fuzzy, c-format + msgid "`%s' attribute argument not an integer constant" + msgstr "herhalings-aantal is geen integerconstante" +@@ -12802,69 +12825,69 @@ + msgid "Profiling is not supported on this target." + msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem" + +-#: config/sparc/sparc.c:360 ++#: config/sparc/sparc.c:362 + #, c-format + msgid "%s is not supported by this configuration" + msgstr "" + +-#: config/sparc/sparc.c:367 ++#: config/sparc/sparc.c:369 + msgid "-mlong-double-64 not allowed with -m64" + msgstr "" + +-#: config/sparc/sparc.c:392 ++#: config/sparc/sparc.c:394 + msgid "-mcmodel= is not supported on 32 bit systems" + msgstr "" + +-#: config/sparc/sparc.c:6818 config/sparc/sparc.c:6824 ++#: config/sparc/sparc.c:6960 config/sparc/sparc.c:6966 + #, fuzzy, c-format + msgid "invalid %%Y operand" + msgstr "ongeldige operand voor %P" + +-#: config/sparc/sparc.c:6894 ++#: config/sparc/sparc.c:7036 + #, fuzzy, c-format + msgid "invalid %%A operand" + msgstr "ongeldige operand voor %P" + +-#: config/sparc/sparc.c:6904 ++#: config/sparc/sparc.c:7046 + #, fuzzy, c-format + msgid "invalid %%B operand" + msgstr "ongeldige operand voor %P" + +-#: config/sparc/sparc.c:6943 ++#: config/sparc/sparc.c:7085 + #, fuzzy, c-format + msgid "invalid %%c operand" + msgstr "ongeldige operand voor %P" + +-#: config/sparc/sparc.c:6944 ++#: config/sparc/sparc.c:7086 + #, fuzzy, c-format + msgid "invalid %%C operand" + msgstr "Ongeldige operand voor %%C" + +-#: config/sparc/sparc.c:6965 ++#: config/sparc/sparc.c:7107 + #, fuzzy, c-format + msgid "invalid %%d operand" + msgstr "ongeldige operand voor %P" + +-#: config/sparc/sparc.c:6966 ++#: config/sparc/sparc.c:7108 + #, fuzzy, c-format + msgid "invalid %%D operand" + msgstr "ongeldige operand voor %P" + +-#: config/sparc/sparc.c:6982 ++#: config/sparc/sparc.c:7124 + #, fuzzy, c-format + msgid "invalid %%f operand" + msgstr "ongeldige operand voor %P" + +-#: config/sparc/sparc.c:6996 ++#: config/sparc/sparc.c:7138 + #, fuzzy, c-format + msgid "invalid %%s operand" + msgstr "ongeldige operand voor %P" + +-#: config/sparc/sparc.c:7050 ++#: config/sparc/sparc.c:7192 + msgid "long long constant not a valid immediate operand" + msgstr "" + +-#: config/sparc/sparc.c:7053 ++#: config/sparc/sparc.c:7195 + msgid "floating point constant not a valid immediate operand" + msgstr "" + +@@ -13380,279 +13403,279 @@ + msgid "`-gnat' misspelled as `-gant'" + msgstr "" + +-#: cp/call.c:217 ++#: cp/call.c:219 + msgid "unable to call pointer to member function here" + msgstr "" + +-#: cp/call.c:2228 ++#: cp/call.c:2238 + msgid "%s %D(%T, %T, %T) " + msgstr "" + +-#: cp/call.c:2233 ++#: cp/call.c:2243 + msgid "%s %D(%T, %T) " + msgstr "" + +-#: cp/call.c:2237 ++#: cp/call.c:2247 + msgid "%s %D(%T) " + msgstr "" + +-#: cp/call.c:2241 ++#: cp/call.c:2251 + msgid "%s %T " + msgstr "" + +-#: cp/call.c:2243 ++#: cp/call.c:2253 + msgid "%J%s %+#D " + msgstr "" + +-#: cp/call.c:2245 ++#: cp/call.c:2255 + msgid "%J%s %+#D" + msgstr "" + +-#: cp/call.c:2280 ++#: cp/call.c:2290 + msgid "candidates are:" + msgstr "" + +-#: cp/call.c:2468 ++#: cp/call.c:2478 + msgid "conversion from `%T' to `%T' is ambiguous" + msgstr "" + +-#: cp/call.c:2619 cp/call.c:2663 ++#: cp/call.c:2629 cp/call.c:2673 + #, fuzzy + msgid "no matching function for call to `%D(%A)'" + msgstr "Teveel argumenten in oproep van `%s'" + +-#: cp/call.c:2622 cp/call.c:2666 ++#: cp/call.c:2632 cp/call.c:2676 + msgid "call of overloaded `%D(%A)' is ambiguous" + msgstr "" + + #. It's no good looking for an overloaded operator() on a + #. pointer-to-member-function. +-#: cp/call.c:2732 ++#: cp/call.c:2742 + #, c-format + msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*" + msgstr "" + +-#: cp/call.c:2798 ++#: cp/call.c:2808 + msgid "no match for call to `(%T) (%A)'" + msgstr "" + +-#: cp/call.c:2806 ++#: cp/call.c:2816 + msgid "call of `(%T) (%A)' is ambiguous" + msgstr "" + +-#: cp/call.c:2839 ++#: cp/call.c:2849 + #, c-format + msgid "%s for ternary 'operator?:' in '%E ? %E : %E'" + msgstr "" + +-#: cp/call.c:2845 ++#: cp/call.c:2855 + #, c-format + msgid "%s for 'operator%s' in '%E%s'" + msgstr "" + +-#: cp/call.c:2849 ++#: cp/call.c:2859 + #, c-format + msgid "%s for 'operator[]' in '%E[%E]'" + msgstr "" + +-#: cp/call.c:2854 ++#: cp/call.c:2864 + #, fuzzy, c-format + msgid "%s for '%s' in '%s %E'" + msgstr "beginwaarde ontbreekt" + +-#: cp/call.c:2859 ++#: cp/call.c:2869 + #, c-format + msgid "%s for 'operator%s' in '%E %s %E'" + msgstr "" + +-#: cp/call.c:2862 ++#: cp/call.c:2872 + #, c-format + msgid "%s for 'operator%s' in '%s%E'" + msgstr "" + +-#: cp/call.c:2951 ++#: cp/call.c:2961 + #, fuzzy + msgid "ISO C++ forbids omitting the middle term of a ?: expression" + msgstr "ANSI C verbiedt het weglaten van de middelste term van een ?: expresie" + +-#: cp/call.c:3028 ++#: cp/call.c:3038 + #, c-format + msgid "`%E' has type `void' and is not a throw-expression" + msgstr "" + +-#: cp/call.c:3061 cp/call.c:3265 ++#: cp/call.c:3071 cp/call.c:3275 + msgid "operands to ?: have different types" + msgstr "" + +-#: cp/call.c:3219 ++#: cp/call.c:3229 + #, fuzzy + msgid "enumeral mismatch in conditional expression: `%T' vs `%T'" + msgstr "types in voorwaardelijke expressie komen niet overeen" + +-#: cp/call.c:3226 ++#: cp/call.c:3236 + msgid "enumeral and non-enumeral type in conditional expression" + msgstr "" + +-#: cp/call.c:3511 ++#: cp/call.c:3521 + msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead" + msgstr "" + +-#: cp/call.c:3560 ++#: cp/call.c:3570 + msgid "using synthesized `%#D' for copy assignment" + msgstr "" + +-#: cp/call.c:3562 ++#: cp/call.c:3572 + msgid " where cfront would use `%#D'" + msgstr "" + +-#: cp/call.c:3585 ++#: cp/call.c:3595 + #, fuzzy + msgid "comparison between `%#T' and `%#T'" + msgstr "vergelijking tussen signed en unsigned" + +-#: cp/call.c:3831 ++#: cp/call.c:3841 + #, fuzzy + msgid "no suitable `operator %s' for `%T'" + msgstr "incompatibele operands voor %s" + +-#: cp/call.c:3848 ++#: cp/call.c:3858 + msgid "`%+#D' is private" + msgstr "" + +-#: cp/call.c:3850 ++#: cp/call.c:3860 + #, fuzzy + msgid "`%+#D' is protected" + msgstr "`%.*s' is niet gedefinieerd" + +-#: cp/call.c:3852 ++#: cp/call.c:3862 + #, fuzzy + msgid "`%+#D' is inaccessible" + msgstr "%s is niet addresseerbaar" + +-#: cp/call.c:3853 ++#: cp/call.c:3863 + msgid "within this context" + msgstr "" + +-#: cp/call.c:3923 ++#: cp/call.c:3947 + #, fuzzy + msgid "invalid conversion from `%T' to `%T'" + msgstr "ongeldige registernaam voor `%s'" + + # Is the %s the argument, or is it 'of' the argument? +-#: cp/call.c:3925 ++#: cp/call.c:3949 + #, fuzzy + msgid " initializing argument %P of `%D'" + msgstr "ongeldig type-argument `%s'" + +-#: cp/call.c:4079 ++#: cp/call.c:4094 + #, fuzzy + msgid "cannot bind bitfield `%E' to `%T'" + msgstr "niet-constante beginwaarde voor `%s'" + +-#: cp/call.c:4082 ++#: cp/call.c:4097 + #, fuzzy + msgid "cannot bind packed field `%E' to `%T'" + msgstr "niet-constante beginwaarde voor `%s'" + +-#: cp/call.c:4085 ++#: cp/call.c:4100 + #, fuzzy + msgid "cannot bind rvalue `%E' to `%T'" + msgstr "niet-constante beginwaarde voor `%s'" + +-#: cp/call.c:4170 ++#: cp/call.c:4185 + msgid "cannot pass objects of non-POD type `%#T' through `...'; call will abort at runtime" + msgstr "" + + #. Undefined behavior [expr.call] 5.2.2/7. +-#: cp/call.c:4196 ++#: cp/call.c:4211 + msgid "cannot receive objects of non-POD type `%#T' through `...'; call will abort at runtime" + msgstr "" + +-#: cp/call.c:4240 ++#: cp/call.c:4255 + #, fuzzy + msgid "the default argument for parameter %d of `%D' has not yet been parsed" + msgstr "argumenten aan macro `%s' gegeven" + +-#: cp/call.c:4437 ++#: cp/call.c:4452 + msgid "passing `%T' as `this' argument of `%#D' discards qualifiers" + msgstr "" + +-#: cp/call.c:4456 ++#: cp/call.c:4471 + #, fuzzy + msgid "`%T' is not an accessible base of `%T'" + msgstr "`%s' is geen bestand, pipe of tty" + +-#: cp/call.c:4725 ++#: cp/call.c:4740 + msgid "could not find class$ field in java interface type `%T'" + msgstr "" + +-#: cp/call.c:4980 ++#: cp/call.c:4995 + #, fuzzy + msgid "call to non-function `%D'" + msgstr "kan functie `main' niet inline maken" + +-#: cp/call.c:5006 ++#: cp/call.c:5021 + msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'" + msgstr "" + +-#: cp/call.c:5084 ++#: cp/call.c:5099 + #, fuzzy + msgid "no matching function for call to `%T::%s(%A)%#V'" + msgstr "Teveel argumenten in oproep van `%s'" + +-#: cp/call.c:5101 ++#: cp/call.c:5116 + #, fuzzy, c-format + msgid "call of overloaded `%s(%A)' is ambiguous" + msgstr "grootte van `%s' is %u bytes" + +-#: cp/call.c:5122 ++#: cp/call.c:5137 + msgid "cannot call member function `%D' without object" + msgstr "" + +-#: cp/call.c:5707 ++#: cp/call.c:5722 + msgid "passing `%T' chooses `%T' over `%T'" + msgstr "" + +-#: cp/call.c:5709 cp/name-lookup.c:4155 ++#: cp/call.c:5724 cp/name-lookup.c:4137 + #, fuzzy + msgid " in call to `%D'" + msgstr "kan oproep van `%s' niet inline maken" + +-#: cp/call.c:5766 ++#: cp/call.c:5781 + msgid "choosing `%D' over `%D'" + msgstr "" + +-#: cp/call.c:5767 ++#: cp/call.c:5782 + msgid " for conversion from `%T' to `%T'" + msgstr "" + +-#: cp/call.c:5769 ++#: cp/call.c:5784 + msgid " because conversion sequence for the argument is better" + msgstr "" + +-#: cp/call.c:5889 ++#: cp/call.c:5904 + msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:" + msgstr "" + +-#: cp/call.c:5893 ++#: cp/call.c:5908 + msgid "candidate 1:" + msgstr "" + +-#: cp/call.c:5894 ++#: cp/call.c:5909 + msgid "candidate 2:" + msgstr "" + + # 'regio' klinkt niet echt, maar 'streek' lijkt me nog slechter +-#: cp/call.c:6003 ++#: cp/call.c:6018 + #, fuzzy + msgid "could not convert `%E' to `%T'" + msgstr "kon 0x%l.8x niet naar een regio omzetten" + +-#: cp/call.c:6108 ++#: cp/call.c:6123 + msgid "invalid initialization of non-const reference of type '%T' from a temporary of type '%T'" + msgstr "" + +-#: cp/call.c:6112 ++#: cp/call.c:6127 + msgid "invalid initialization of reference of type '%T' from expression of type '%T'" + msgstr "" + +@@ -13727,235 +13750,235 @@ + msgid "`%#T' only defines private constructors and has no friends" + msgstr "" + +-#: cp/class.c:1995 ++#: cp/class.c:2038 + msgid "no unique final overrider for `%D' in `%T'" + msgstr "" + + #. Here we know it is a hider, and no overrider exists. +-#: cp/class.c:2441 ++#: cp/class.c:2484 + msgid "`%D' was hidden" + msgstr "" + +-#: cp/class.c:2442 ++#: cp/class.c:2485 + #, fuzzy + msgid " by `%D'" + msgstr "%s voor `%s'" + +-#: cp/class.c:2484 cp/decl2.c:1161 ++#: cp/class.c:2527 cp/decl2.c:1161 + msgid "`%#D' invalid; an anonymous union can only have non-static data members" + msgstr "" + +-#: cp/class.c:2490 cp/decl2.c:1168 ++#: cp/class.c:2533 cp/decl2.c:1168 + msgid "private member `%#D' in anonymous union" + msgstr "" + +-#: cp/class.c:2493 cp/decl2.c:1170 ++#: cp/class.c:2536 cp/decl2.c:1170 + msgid "protected member `%#D' in anonymous union" + msgstr "" + +-#: cp/class.c:2612 ++#: cp/class.c:2655 + msgid "vtable layout for class `%T' may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor" + msgstr "" + +-#: cp/class.c:2672 ++#: cp/class.c:2715 + #, fuzzy + msgid "bit-field `%#D' with non-integral type" + msgstr "breedte van bitveld `%s' is geen integerconstante" + +-#: cp/class.c:2692 ++#: cp/class.c:2735 + #, fuzzy + msgid "bit-field `%D' width not an integer constant" + msgstr "breedte van bitveld `%s' is geen integerconstante" + +-#: cp/class.c:2698 ++#: cp/class.c:2741 + #, fuzzy + msgid "negative width in bit-field `%D'" + msgstr "bitveld `%s' heeft een negatieve breedte" + +-#: cp/class.c:2703 ++#: cp/class.c:2746 + #, fuzzy + msgid "zero width for bit-field `%D'" + msgstr "bitveld `%s' heeft breedte 0" + +-#: cp/class.c:2709 ++#: cp/class.c:2752 + #, fuzzy + msgid "width of `%D' exceeds its type" + msgstr "breedte van `%s' overschrijdt zijn type" + +-#: cp/class.c:2718 ++#: cp/class.c:2761 + msgid "`%D' is too small to hold all values of `%#T'" + msgstr "" + +-#: cp/class.c:2780 ++#: cp/class.c:2823 + msgid "member `%#D' with constructor not allowed in union" + msgstr "" + +-#: cp/class.c:2783 ++#: cp/class.c:2826 + msgid "member `%#D' with destructor not allowed in union" + msgstr "" + +-#: cp/class.c:2786 ++#: cp/class.c:2829 + msgid "member `%#D' with copy assignment operator not allowed in union" + msgstr "" + +-#: cp/class.c:2813 ++#: cp/class.c:2856 + #, fuzzy + msgid "multiple fields in union `%T' initialized" + msgstr "overtollige elementen in beginwaarde van union" + +-#: cp/class.c:2879 ++#: cp/class.c:2922 + msgid "ignoring packed attribute on unpacked non-POD field `%#D'" + msgstr "" + +-#: cp/class.c:2939 ++#: cp/class.c:2982 + #, fuzzy + msgid "`%D' may not be static because it is a member of a union" + msgstr "`this' is niet beschikbaar in static member-funties" + +-#: cp/class.c:2944 ++#: cp/class.c:2987 + msgid "`%D' may not have reference type `%T' because it is a member of a union" + msgstr "" + +-#: cp/class.c:2952 ++#: cp/class.c:2995 + msgid "field `%D' in local class cannot be static" + msgstr "" + +-#: cp/class.c:2958 ++#: cp/class.c:3001 + #, fuzzy + msgid "field `%D' invalidly declared function type" + msgstr "veld `%s' als een functie gedeclareerd" + +-#: cp/class.c:2965 ++#: cp/class.c:3008 + #, fuzzy + msgid "field `%D' invalidly declared method type" + msgstr "bitveld `%s' heeft een ongeldig type" + +-#: cp/class.c:2998 ++#: cp/class.c:3041 + msgid "non-static reference `%#D' in class without a constructor" + msgstr "" + +-#: cp/class.c:3041 ++#: cp/class.c:3084 + msgid "non-static const member `%#D' in class without a constructor" + msgstr "" + +-#: cp/class.c:3056 ++#: cp/class.c:3099 + msgid "field `%#D' with same name as class" + msgstr "" + +-#: cp/class.c:3074 ++#: cp/class.c:3117 + #, fuzzy + msgid "`%#T' has pointer data members" + msgstr "%s heeft geen benoemde leden" + +-#: cp/class.c:3078 ++#: cp/class.c:3121 + msgid " but does not override `%T(const %T&)'" + msgstr "" + +-#: cp/class.c:3080 ++#: cp/class.c:3123 + msgid " or `operator=(const %T&)'" + msgstr "" + +-#: cp/class.c:3083 ++#: cp/class.c:3126 + msgid " but does not override `operator=(const %T&)'" + msgstr "" + +-#: cp/class.c:3517 ++#: cp/class.c:3560 + msgid "offset of empty base `%T' may not be ABI-compliant and maychange in a future version of GCC" + msgstr "" + +-#: cp/class.c:3627 ++#: cp/class.c:3670 + msgid "class `%T' will be considered nearly empty in a future version of GCC" + msgstr "" + +-#: cp/class.c:3714 ++#: cp/class.c:3757 + #, fuzzy + msgid "initializer specified for non-virtual method `%D'" + msgstr "geen beginwaarde voor variant-veld `%s'" + +-#: cp/class.c:4402 ++#: cp/class.c:4445 + msgid "offset of virtual base `%T' is not ABI-compliant and may change in a future version of GCC" + msgstr "" + +-#: cp/class.c:4492 ++#: cp/class.c:4535 + msgid "direct base `%T' inaccessible in `%T' due to ambiguity" + msgstr "" + +-#: cp/class.c:4505 ++#: cp/class.c:4548 + msgid "virtual base `%T' inaccessible in `%T' due to ambiguity" + msgstr "" + +-#: cp/class.c:4679 ++#: cp/class.c:4722 + msgid "size assigned to `%T' may not be ABI-compliant and may change in a future version of GCC" + msgstr "" + + #. Versions of G++ before G++ 3.4 did not reset the + #. DECL_MODE. +-#: cp/class.c:4718 ++#: cp/class.c:4761 + msgid "the offset of `%D' may not be ABI-compliant and may change in a future version of GCC" + msgstr "" + +-#: cp/class.c:4741 ++#: cp/class.c:4784 + msgid "offset of `%D' is not ABI-compliant and may change in a future version of GCC" + msgstr "" + +-#: cp/class.c:4750 ++#: cp/class.c:4793 + msgid "`%D' contains empty classes which may cause base classes to be placed at different locations in a future version of GCC" + msgstr "" + +-#: cp/class.c:4809 ++#: cp/class.c:4852 + msgid "layout of classes derived from empty class `%T' may change in a future version of GCC" + msgstr "" + +-#: cp/class.c:4939 cp/semantics.c:2044 ++#: cp/class.c:4982 cp/semantics.c:2041 + #, fuzzy + msgid "redefinition of `%#T'" + msgstr "herdefinitie van `%s'" + +-#: cp/class.c:5109 ++#: cp/class.c:5152 + msgid "`%#T' has virtual functions but non-virtual destructor" + msgstr "" + +-#: cp/class.c:5188 ++#: cp/class.c:5231 + msgid "trying to finish struct, but kicked out due to previous parse errors" + msgstr "" + +-#: cp/class.c:5630 ++#: cp/class.c:5673 + #, c-format + msgid "language string `\"%s\"' not recognized" + msgstr "" + +-#: cp/class.c:5718 ++#: cp/class.c:5761 + msgid "cannot resolve overloaded function `%D' based on conversion to type `%T'" + msgstr "" + +-#: cp/class.c:5843 ++#: cp/class.c:5886 + msgid "no matches converting function `%D' to type `%#T'" + msgstr "" + +-#: cp/class.c:5866 ++#: cp/class.c:5909 + msgid "converting overloaded function `%D' to type `%#T' is ambiguous" + msgstr "" + +-#: cp/class.c:5892 ++#: cp/class.c:5935 + #, fuzzy + msgid "assuming pointer to member `%D'" + msgstr "herhaald lid `%s'" + +-#: cp/class.c:5895 ++#: cp/class.c:5938 + #, c-format + msgid "(a pointer to member can only be formed with `&%E')" + msgstr "" + +-#: cp/class.c:5940 cp/class.c:6122 cp/class.c:6129 ++#: cp/class.c:5983 cp/class.c:6165 cp/class.c:6172 + msgid "not enough type information" + msgstr "" + +-#: cp/class.c:5957 ++#: cp/class.c:6000 + #, fuzzy + msgid "argument of type `%T' does not match `%T'" + msgstr "argument `%s' komt niet overeen met prototype" + +-#: cp/class.c:6106 ++#: cp/class.c:6149 + msgid "invalid operation on uninstantiated type" + msgstr "" + +@@ -13964,12 +13987,12 @@ + #. A name N used in a class S shall refer to the same declaration + #. in its context and when re-evaluated in the completed scope of + #. S. +-#: cp/class.c:6364 cp/decl.c:1222 cp/name-lookup.c:514 cp/pt.c:2097 ++#: cp/class.c:6407 cp/decl.c:1223 cp/name-lookup.c:514 cp/pt.c:2125 + #, fuzzy + msgid "declaration of `%#D'" + msgstr "herdeclaratie van `%s'" + +-#: cp/class.c:6365 ++#: cp/class.c:6408 + msgid "changes meaning of `%D' from `%+#D'" + msgstr "" + +@@ -14075,173 +14098,190 @@ + msgid " candidate conversions include `%D' and `%D'" + msgstr "" + +-#: cp/decl.c:371 ++#: cp/decl.c:372 + #, fuzzy + msgid "label `%D' used but not defined" + msgstr "label `%s' gebruikt maar niet gedefinieerd" + +-#: cp/decl.c:378 ++#: cp/decl.c:379 + #, fuzzy + msgid "label `%D' defined but not used" + msgstr "label `%s' gedefinieerd maar niet gebruikt" + +-#: cp/decl.c:1130 cp/decl.c:1556 ++#: cp/decl.c:1131 cp/decl.c:1570 + #, fuzzy + msgid "previous declaration of `%D'" + msgstr "eerdere declaratie van `%s'" + +-#: cp/decl.c:1178 ++#: cp/decl.c:1179 + #, fuzzy + msgid "%Jfunction '%D' redeclared as inline" + msgstr "functie `%s' geherdeclareerd als inline" + +-#: cp/decl.c:1179 ++#: cp/decl.c:1180 + #, fuzzy + msgid "%Jprevious declaration of '%D' with attribute noinline" + msgstr "eerdere declaratie van functie `%s' had het noinline attribuut" + +-#: cp/decl.c:1186 ++#: cp/decl.c:1187 + #, fuzzy + msgid "%Jfunction '%D' redeclared with attribute noinline" + msgstr "functie `%s' geherdeclareerd met noinline attribuut" + +-#: cp/decl.c:1188 ++#: cp/decl.c:1189 + #, fuzzy + msgid "%Jprevious declaration of '%D' was inline" + msgstr "eerdere declaratie van functie `%s' was inline" + +-#: cp/decl.c:1209 cp/decl.c:1247 ++#: cp/decl.c:1210 cp/decl.c:1248 + #, fuzzy + msgid "shadowing %s function `%#D'" + msgstr "bibliotheekfunctie `%s' wordt verborgen" + +-#: cp/decl.c:1218 ++#: cp/decl.c:1219 + #, fuzzy + msgid "library function `%#D' redeclared as non-function `%#D'" + msgstr "bibliotheekfunctie `%s' als niet-functie gedeclareerd" + +-#: cp/decl.c:1223 ++#: cp/decl.c:1224 + #, fuzzy + msgid "conflicts with built-in declaration `%#D'" + msgstr "conflicterende declaraties van `%s'" + +-#: cp/decl.c:1242 cp/decl.c:1354 cp/decl.c:1370 ++#: cp/decl.c:1243 cp/decl.c:1355 cp/decl.c:1371 + #, fuzzy + msgid "new declaration `%#D'" + msgstr "herdeclaratie van `%s'" + +-#: cp/decl.c:1243 ++#: cp/decl.c:1244 + #, fuzzy + msgid "ambiguates built-in declaration `%#D'" + msgstr "herhaalde label-declaratie `%s'" + +-#: cp/decl.c:1314 ++#: cp/decl.c:1315 + #, fuzzy + msgid "`%#D' redeclared as different kind of symbol" + msgstr "`%s' als ander soort symbool geherdeclareerd" + +-#: cp/decl.c:1317 ++#: cp/decl.c:1318 + #, fuzzy + msgid "previous declaration of `%#D'" + msgstr "eerdere declaratie van `%s'" + +-#: cp/decl.c:1339 ++#: cp/decl.c:1340 + #, fuzzy + msgid "declaration of template `%#D'" + msgstr "herdeclaratie van `enum %s'" + +-#: cp/decl.c:1340 cp/name-lookup.c:515 ++#: cp/decl.c:1341 cp/name-lookup.c:515 + #, fuzzy + msgid "conflicts with previous declaration `%#D'" + msgstr "sectie van `%s' geeft een conflict met een eerdere declaratie" + +-#: cp/decl.c:1355 cp/decl.c:1371 ++#: cp/decl.c:1356 cp/decl.c:1372 + #, fuzzy + msgid "ambiguates old declaration `%#D'" + msgstr "herhaalde label-declaratie `%s'" + +-#: cp/decl.c:1363 ++#: cp/decl.c:1364 + #, fuzzy + msgid "declaration of C function `%#D' conflicts with" + msgstr "impliciete declaratie van functie `%s'" + +-#: cp/decl.c:1365 ++#: cp/decl.c:1366 + #, fuzzy + msgid "previous declaration `%#D' here" + msgstr "eerdere declaratie van `%s'" + +-#: cp/decl.c:1381 ++#: cp/decl.c:1382 + #, fuzzy + msgid "conflicting declaration '%#D'" + msgstr "conflicterende declaraties van `%s'" + +-#: cp/decl.c:1382 ++#: cp/decl.c:1383 + #, fuzzy + msgid "'%D' has a previous declaration as `%#D'" + msgstr "eerdere declaratie van `%s'" + +-#: cp/decl.c:1435 ++#. [namespace.alias] ++#. ++#. A namespace-name or namespace-alias shall not be declared as ++#. the name of any other entity in the same declarative region. ++#. A namespace-name defined at global scope shall not be ++#. declared as the name of any other entity in any glogal scope ++#. of the program. ++#: cp/decl.c:1436 ++#, fuzzy ++msgid "declaration of `namespace %D' conflicts with" ++msgstr "impliciete declaratie van functie `%s'" ++ ++#: cp/decl.c:1437 ++#, fuzzy ++msgid "previous declaration of `namespace %D' here" ++msgstr "eerdere declaratie van `%s'" ++ ++#: cp/decl.c:1449 + #, fuzzy + msgid "`%#D' previously defined here" + msgstr "`%s' tevoren hier gedefinieerd" + +-#: cp/decl.c:1436 ++#: cp/decl.c:1450 + #, fuzzy + msgid "`%#D' previously declared here" + msgstr "`%s' tevoren hier gedeclareerd" + + #. Prototype decl follows defn w/o prototype. +-#: cp/decl.c:1445 ++#: cp/decl.c:1459 + #, fuzzy + msgid "prototype for `%#D'" + msgstr "prototype voor `%s' volgt" + +-#: cp/decl.c:1446 ++#: cp/decl.c:1460 + #, fuzzy + msgid "%Jfollows non-prototype definition here" + msgstr "niet-prototype definitie hier" + +-#: cp/decl.c:1458 ++#: cp/decl.c:1472 + #, fuzzy + msgid "previous declaration of `%#D' with %L linkage" + msgstr "eerdere declaratie van `%s'" + +-#: cp/decl.c:1460 ++#: cp/decl.c:1474 + #, fuzzy + msgid "conflicts with new declaration with %L linkage" + msgstr "conflicterende declaraties van `%s'" + +-#: cp/decl.c:1483 cp/decl.c:1490 ++#: cp/decl.c:1497 cp/decl.c:1504 + #, fuzzy + msgid "default argument given for parameter %d of `%#D'" + msgstr "argumenten aan macro `%s' gegeven" + +-#: cp/decl.c:1485 cp/decl.c:1492 ++#: cp/decl.c:1499 cp/decl.c:1506 + #, fuzzy + msgid "after previous specification in `%#D'" + msgstr "eerdere definitie van `%s'" + +-#: cp/decl.c:1501 ++#: cp/decl.c:1515 + #, fuzzy + msgid "`%#D' was used before it was declared inline" + msgstr "`%s' werd voor haar definitie gebruikt zonder protoype" + +-#: cp/decl.c:1502 ++#: cp/decl.c:1516 + #, fuzzy + msgid "%Jprevious non-inline declaration here" + msgstr "eerdere impliciete declaratie van `%s'" + +-#: cp/decl.c:1555 ++#: cp/decl.c:1569 + #, fuzzy + msgid "redundant redeclaration of `%D' in same scope" + msgstr "overbodige herdeclaratie van `%s' in zelfde bereik" + +-#: cp/decl.c:1649 ++#: cp/decl.c:1663 + #, fuzzy, c-format + msgid "declaration of `%F' throws different exceptions" + msgstr "`%s' wordt gedeclareerd als een array van functies" + +-#: cp/decl.c:1651 ++#: cp/decl.c:1665 + #, fuzzy, c-format + msgid "than previous declaration `%F'" + msgstr "geen eerdere declaratie voor `%s'" +@@ -14254,224 +14294,224 @@ + #. that specialization that would cause an implicit + #. instantiation to take place, in every translation unit in + #. which such a use occurs. +-#: cp/decl.c:1798 ++#: cp/decl.c:1812 + msgid "explicit specialization of %D after first use" + msgstr "" + +-#: cp/decl.c:1878 ++#: cp/decl.c:1892 + msgid "%J'%D': visibility attribute ignored because it" + msgstr "" + +-#: cp/decl.c:1880 ++#: cp/decl.c:1894 + #, fuzzy + msgid "%Jconflicts with previous declaration here" + msgstr "sectie van `%s' geeft een conflict met een eerdere declaratie" + +-#: cp/decl.c:1974 ++#: cp/decl.c:1988 + #, fuzzy + msgid "implicit declaration of function `%#D'" + msgstr "impliciete declaratie van functie `%s'" + +-#: cp/decl.c:2137 ++#: cp/decl.c:2151 + #, c-format + msgid "label `%s' referenced outside of any function" + msgstr "" + +-#: cp/decl.c:2234 cp/decl.c:2258 cp/decl.c:2346 ++#: cp/decl.c:2248 cp/decl.c:2272 cp/decl.c:2360 + #, fuzzy + msgid "jump to label `%D'" + msgstr "herhaald label `%s'" + +-#: cp/decl.c:2236 cp/decl.c:2260 ++#: cp/decl.c:2250 cp/decl.c:2274 + msgid "jump to case label" + msgstr "" + +-#: cp/decl.c:2239 cp/decl.c:2263 ++#: cp/decl.c:2253 cp/decl.c:2277 + #, fuzzy + msgid "%H from here" + msgstr "van hieruit opgeroepen" + +-#: cp/decl.c:2244 ++#: cp/decl.c:2258 + #, fuzzy + msgid " crosses initialization of `%#D'" + msgstr "(dicht bij initialisatie van `%s')" + +-#: cp/decl.c:2247 cp/decl.c:2362 ++#: cp/decl.c:2261 cp/decl.c:2376 + msgid " enters scope of non-POD `%#D'" + msgstr "" + +-#: cp/decl.c:2267 cp/decl.c:2366 ++#: cp/decl.c:2281 cp/decl.c:2380 + msgid " enters try block" + msgstr "" + +-#: cp/decl.c:2269 cp/decl.c:2368 ++#: cp/decl.c:2283 cp/decl.c:2382 + msgid " enters catch block" + msgstr "" + +-#: cp/decl.c:2347 ++#: cp/decl.c:2361 + #, fuzzy + msgid " from here" + msgstr "van hieruit opgeroepen" + + #. Can't skip init of __exception_info. +-#: cp/decl.c:2358 ++#: cp/decl.c:2372 + msgid "%J enters catch block" + msgstr "" + +-#: cp/decl.c:2360 ++#: cp/decl.c:2374 + #, fuzzy + msgid " skips initialization of `%#D'" + msgstr "(dicht bij initialisatie van `%s')" + +-#: cp/decl.c:2394 ++#: cp/decl.c:2408 + #, fuzzy + msgid "label named wchar_t" + msgstr "er is geen label dat `%s' heet" + +-#: cp/decl.c:2397 ++#: cp/decl.c:2411 + #, fuzzy + msgid "duplicate label `%D'" + msgstr "herhaald label `%s'" + +-#: cp/decl.c:2625 cp/parser.c:3182 ++#: cp/decl.c:2639 cp/parser.c:3192 + #, fuzzy + msgid "`%D' used without template parameters" + msgstr "macro `%s' gebruikt zonder argumenten" + +-#: cp/decl.c:2635 cp/decl.c:2651 cp/decl.c:2739 ++#: cp/decl.c:2649 cp/decl.c:2665 cp/decl.c:2753 + msgid "no class template named `%#T' in `%#T'" + msgstr "" + +-#: cp/decl.c:2672 cp/decl.c:2682 cp/decl.c:2702 ++#: cp/decl.c:2686 cp/decl.c:2696 cp/decl.c:2716 + msgid "no type named `%#T' in `%#T'" + msgstr "" + +-#: cp/decl.c:3429 ++#: cp/decl.c:3443 + msgid "%Jan anonymous union cannot have function members" + msgstr "" + +-#: cp/decl.c:3447 ++#: cp/decl.c:3461 + msgid "member %#D' with constructor not allowed in anonymous aggregate" + msgstr "" + +-#: cp/decl.c:3450 ++#: cp/decl.c:3464 + msgid "member %#D' with destructor not allowed in anonymous aggregate" + msgstr "" + +-#: cp/decl.c:3453 ++#: cp/decl.c:3467 + msgid "member %#D' with copy assignment operator not allowed in anonymous aggregate" + msgstr "" + +-#: cp/decl.c:3493 ++#: cp/decl.c:3507 + #, fuzzy + msgid "redeclaration of C++ built-in type `%T'" + msgstr "herdeclaratie van `%s'" + +-#: cp/decl.c:3531 ++#: cp/decl.c:3545 + msgid "multiple types in one declaration" + msgstr "" + +-#: cp/decl.c:3557 ++#: cp/decl.c:3571 + #, fuzzy + msgid "missing type-name in typedef-declaration" + msgstr "nutteloos sleutelwoord of typenaam in lege declaratie" + +-#: cp/decl.c:3565 ++#: cp/decl.c:3579 + msgid "ISO C++ prohibits anonymous structs" + msgstr "" + +-#: cp/decl.c:3572 ++#: cp/decl.c:3586 + #, fuzzy + msgid "`%D' can only be specified for functions" + msgstr "argument-formaat opgegeven voor niet-functie `%s'" + +-#: cp/decl.c:3574 ++#: cp/decl.c:3588 + msgid "`%D' can only be specified inside a class" + msgstr "" + +-#: cp/decl.c:3576 ++#: cp/decl.c:3590 + msgid "`%D' can only be specified for constructors" + msgstr "" + +-#: cp/decl.c:3579 ++#: cp/decl.c:3593 + #, fuzzy + msgid "`%D' can only be specified for objects and functions" + msgstr "argument-formaat opgegeven voor niet-functie `%s'" + +-#: cp/decl.c:3721 cp/decl2.c:855 ++#: cp/decl.c:3735 cp/decl2.c:855 + #, fuzzy + msgid "typedef `%D' is initialized (use __typeof__ instead)" + msgstr "typedef `%s' krijgt beginwaarde" + +-#: cp/decl.c:3726 ++#: cp/decl.c:3740 + #, fuzzy + msgid "function `%#D' is initialized like a variable" + msgstr "typedef `%s' krijgt beginwaarde alsof het een variabele is" + +-#: cp/decl.c:3738 ++#: cp/decl.c:3752 + #, fuzzy + msgid "declaration of `%#D' has `extern' and is initialized" + msgstr "de declaratie van `%s' is `extern' en heeft een beginwaarde" + +-#: cp/decl.c:3771 ++#: cp/decl.c:3785 + #, fuzzy + msgid "`%#D' is not a static member of `%#T'" + msgstr "`%s' is geen static veld" + +-#: cp/decl.c:3777 ++#: cp/decl.c:3791 + msgid "ISO C++ does not permit `%T::%D' to be defined as `%T::%D'" + msgstr "" + +-#: cp/decl.c:3788 ++#: cp/decl.c:3802 + #, fuzzy + msgid "duplicate initialization of %D" + msgstr "dubbele beginwaarde" + +-#: cp/decl.c:3819 ++#: cp/decl.c:3833 + #, fuzzy + msgid "declaration of `%#D' outside of class is not definition" + msgstr "de zwakke declaratie van `%s' moet aan de definitie voorafgaan" + +-#: cp/decl.c:3868 ++#: cp/decl.c:3882 + #, fuzzy + msgid "variable `%#D' has initializer but incomplete type" + msgstr "variabele `%s' heeft beginwaarde, maar een onvolledig type" + +-#: cp/decl.c:3876 cp/decl.c:4445 ++#: cp/decl.c:3890 cp/decl.c:4500 + #, fuzzy + msgid "elements of array `%#D' have incomplete type" + msgstr "elementen van array `%s' hebben een onvolledig type" + +-#: cp/decl.c:3892 ++#: cp/decl.c:3906 + #, fuzzy + msgid "aggregate `%#D' has incomplete type and cannot be defined" + msgstr "parameter `%s' heeft een onvolledig type" + +-#: cp/decl.c:3942 ++#: cp/decl.c:3956 + #, fuzzy + msgid "`%D' declared as reference but not initialized" + msgstr "`%s' als ander soort symbool geherdeclareerd" + +-#: cp/decl.c:3948 ++#: cp/decl.c:3962 + msgid "ISO C++ forbids use of initializer list to initialize reference `%D'" + msgstr "" + +-#: cp/decl.c:3976 ++#: cp/decl.c:3990 + #, fuzzy + msgid "cannot initialize `%T' from `%T'" + msgstr "niet-constante beginwaarde voor `%s'" + +-#: cp/decl.c:4008 ++#: cp/decl.c:4022 + #, fuzzy + msgid "initializer fails to determine size of `%D'" + msgstr "beginwaarde legt grootte van `%s' niet vast" + +-#: cp/decl.c:4013 ++#: cp/decl.c:4027 + #, fuzzy + msgid "array size missing in `%D'" + msgstr "array-grootte ontbreekt in `%s'" + +-#: cp/decl.c:4025 ++#: cp/decl.c:4039 + #, fuzzy + msgid "zero-size array `%D'" + msgstr "array `%s' heeft grootte die negatief of 0 is" +@@ -14479,323 +14519,341 @@ + #. An automatic variable with an incomplete type: that is an error. + #. Don't talk about array types here, since we took care of that + #. message in grokdeclarator. +-#: cp/decl.c:4062 ++#: cp/decl.c:4076 + #, fuzzy + msgid "storage size of `%D' isn't known" + msgstr "opslaggrootte van `%s' is onbekend" + +-#: cp/decl.c:4084 ++#: cp/decl.c:4098 + #, fuzzy + msgid "storage size of `%D' isn't constant" + msgstr "opslaggrootte van `%s' is niet constant" + +-#: cp/decl.c:4139 ++#: cp/decl.c:4153 + msgid "sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)" + msgstr "" + +-#: cp/decl.c:4140 ++#: cp/decl.c:4154 + msgid "%J you can work around this by removing the initializer" + msgstr "" + +-#: cp/decl.c:4166 ++#: cp/decl.c:4180 + #, fuzzy + msgid "uninitialized const `%D'" + msgstr "niet-constante beginwaarde voor `%s'" + +-#: cp/decl.c:4245 ++#: cp/decl.c:4240 ++msgid "name `%D' used in a GNU-style designated initializer for an array" ++msgstr "" ++ ++#: cp/decl.c:4251 ++#, c-format ++msgid "Designated initializer `%E' larger than array size" ++msgstr "" ++ ++#: cp/decl.c:4323 + #, fuzzy + msgid "brace-enclosed initializer used to initialize `%T'" + msgstr "geen beginwaarde voor variant-veld `%s'" + +-#: cp/decl.c:4309 ++#: cp/decl.c:4387 + msgid "initializer for `%T' must be brace-enclosed" + msgstr "" + +-#: cp/decl.c:4326 ++#: cp/decl.c:4404 + #, fuzzy + msgid "ISO C++ does not allow designated initializers" + msgstr "ANSI C staat het gebruik van `varargs.h' niet toe" + +-#: cp/decl.c:4330 ++#: cp/decl.c:4408 + #, fuzzy + msgid "`%T' has no non-static data member named `%D'" + msgstr "union heeft geen lid dat `%s' heet" + +-#: cp/decl.c:4378 +-msgid "name `%D' used in a GNU-style designated initializer for an array" +-msgstr "" +- +-#: cp/decl.c:4401 ++#: cp/decl.c:4456 + #, fuzzy + msgid "too many initializers for `%T'" + msgstr "ongeldige beginwaarde voor veld `%s'" + +-#: cp/decl.c:4439 ++#: cp/decl.c:4494 + #, fuzzy + msgid "variable-sized object `%D' may not be initialized" + msgstr "object van variabele lengte mag geen beginwaarde krijgen" + +-#: cp/decl.c:4450 ++#: cp/decl.c:4505 + #, fuzzy + msgid "`%D' has incomplete type" + msgstr "`%s' heeft een onvolledig type" + +-#: cp/decl.c:4505 ++#: cp/decl.c:4560 + msgid "`%D' must be initialized by constructor, not by `{...}'" + msgstr "" + +-#: cp/decl.c:4549 ++#: cp/decl.c:4604 + msgid "structure `%D' with uninitialized const members" + msgstr "" + +-#: cp/decl.c:4551 ++#: cp/decl.c:4606 + msgid "structure `%D' with uninitialized reference members" + msgstr "" + +-#: cp/decl.c:4732 ++#: cp/decl.c:4788 + msgid "assignment (not initialization) in declaration" + msgstr "" + +-#: cp/decl.c:4749 ++#: cp/decl.c:4805 + msgid "cannot initialize `%D' to namespace `%D'" + msgstr "" + +-#: cp/decl.c:4803 ++#: cp/decl.c:4859 + #, fuzzy + msgid "shadowing previous type declaration of `%#D'" + msgstr "eerdere declaratie van `%s'" + +-#: cp/decl.c:4840 ++#: cp/decl.c:4896 + msgid "`%D' cannot be thread-local because it has non-POD type `%T'" + msgstr "" + +-#: cp/decl.c:4855 ++#: cp/decl.c:4911 + msgid "`%D' is thread-local and so cannot be dynamically initialized" + msgstr "" + +-#: cp/decl.c:5337 ++#: cp/decl.c:5406 + msgid "invalid catch parameter" + msgstr "" + +-#: cp/decl.c:5451 ++#: cp/decl.c:5520 + msgid "destructor for alien class `%T' cannot be a member" + msgstr "" + +-#: cp/decl.c:5454 ++#: cp/decl.c:5523 + msgid "constructor for alien class `%T' cannot be a member" + msgstr "" + +-#: cp/decl.c:5476 ++#: cp/decl.c:5545 + msgid "`%D' declared as a `virtual' %s" + msgstr "" + +-#: cp/decl.c:5478 ++#: cp/decl.c:5547 + #, fuzzy + msgid "`%D' declared as an `inline' %s" + msgstr "variabele `%s' als inline gedeclareerd" + +-#: cp/decl.c:5480 ++#: cp/decl.c:5549 + msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration" + msgstr "" + +-#: cp/decl.c:5483 ++#: cp/decl.c:5552 + #, fuzzy + msgid "`%D' declared as a friend" + msgstr "veld `%s' als een functie gedeclareerd" + +-#: cp/decl.c:5489 ++#: cp/decl.c:5558 + #, fuzzy + msgid "`%D' declared with an exception specification" + msgstr "`%s' gedeclareerd als een functie die een functie teruggeeft" + +-#: cp/decl.c:5571 ++#: cp/decl.c:5640 + msgid "cannot declare `::main' to be a template" + msgstr "" + +-#: cp/decl.c:5573 ++#: cp/decl.c:5642 + msgid "cannot declare `::main' to be inline" + msgstr "" + +-#: cp/decl.c:5575 ++#: cp/decl.c:5644 + msgid "cannot declare `::main' to be static" + msgstr "" + +-#: cp/decl.c:5578 ++#: cp/decl.c:5647 + msgid "`main' must return `int'" + msgstr "" + +-#: cp/decl.c:5606 ++#: cp/decl.c:5675 + msgid "non-local function `%#D' uses anonymous type" + msgstr "" + +-#: cp/decl.c:5609 ++#: cp/decl.c:5678 + msgid "`%#D' does not refer to the unqualified type, so it is not used for linkage" + msgstr "" + +-#: cp/decl.c:5615 ++#: cp/decl.c:5684 + msgid "non-local function `%#D' uses local type `%T'" + msgstr "" + +-#: cp/decl.c:5639 ++#: cp/decl.c:5708 + msgid "%smember function `%D' cannot have `%T' method qualifier" + msgstr "" + +-#: cp/decl.c:5663 ++#: cp/decl.c:5732 + msgid "defining explicit specialization `%D' in friend declaration" + msgstr "" + + #. Something like `template friend void f()'. +-#: cp/decl.c:5673 ++#: cp/decl.c:5742 + msgid "invalid use of template-id `%D' in declaration of primary template" + msgstr "" + +-#: cp/decl.c:5700 ++#: cp/decl.c:5769 + msgid "default arguments are not allowed in declaration of friend template specialization `%D'" + msgstr "" + +-#: cp/decl.c:5707 ++#: cp/decl.c:5776 + msgid "`inline' is not allowed in declaration of friend template specialization `%D'" + msgstr "" + +-#: cp/decl.c:5765 ++#: cp/decl.c:5834 + #, fuzzy + msgid "definition of implicitly-declared `%D'" + msgstr "functie-definitie als `auto' gedeclareerd" + +-#: cp/decl.c:5785 cp/decl2.c:738 ++#: cp/decl.c:5854 cp/decl2.c:738 + msgid "no `%#D' member function declared in class `%T'" + msgstr "" + +-#: cp/decl.c:5919 ++#: cp/decl.c:5988 + msgid "non-local variable `%#D' uses local type `%T'" + msgstr "" + +-#: cp/decl.c:6034 ++#: cp/decl.c:6103 + msgid "invalid in-class initialization of static data member of non-integral type `%T'" + msgstr "" + +-#: cp/decl.c:6043 ++#: cp/decl.c:6112 + msgid "ISO C++ forbids in-class initialization of non-const static member `%D'" + msgstr "" + +-#: cp/decl.c:6046 ++#: cp/decl.c:6115 + msgid "ISO C++ forbids initialization of member constant `%D' of non-integral type `%T'" + msgstr "" + +-#: cp/decl.c:6065 ++#: cp/decl.c:6134 + #, fuzzy + msgid "size of array `%D' has non-integral type `%T'" + msgstr "grootte van array `%s' is van een niet-integraal type" + +-#: cp/decl.c:6067 ++#: cp/decl.c:6136 + #, fuzzy + msgid "size of array has non-integral type `%T'" + msgstr "grootte van array `%s' is van een niet-integraal type" + +-#: cp/decl.c:6103 ++#: cp/decl.c:6172 + #, fuzzy + msgid "size of array `%D' is negative" + msgstr "grootte van array `%s' is negatief" + +-#: cp/decl.c:6105 ++#: cp/decl.c:6174 + #, fuzzy + msgid "size of array is negative" + msgstr "grootte van array `%s' is negatief" + +-#: cp/decl.c:6113 ++#: cp/decl.c:6182 + #, fuzzy + msgid "ISO C++ forbids zero-size array `%D'" + msgstr "ANSI C verbiedt array `%s' met lengte 0" + +-#: cp/decl.c:6115 ++#: cp/decl.c:6184 + #, fuzzy + msgid "ISO C++ forbids zero-size array" + msgstr "ANSI C verbiedt array `%s' met lengte 0" + +-#: cp/decl.c:6122 ++#: cp/decl.c:6191 + #, fuzzy + msgid "size of array `%D' is not an integral constant-expression" + msgstr "grootte van array `%s' is van een niet-integraal type" + +-#: cp/decl.c:6125 ++#: cp/decl.c:6194 + #, fuzzy + msgid "size of array is not an integral constant-expression" + msgstr "ongeldig gebruik van een void-expressie" + +-#: cp/decl.c:6130 ++#: cp/decl.c:6199 + #, fuzzy + msgid "ISO C++ forbids variable-size array `%D'" + msgstr "ANSI C verbiedt array `%s' van variabele lengte" + +-#: cp/decl.c:6132 ++#: cp/decl.c:6201 + #, fuzzy + msgid "ISO C++ forbids variable-size array" + msgstr "ANSI C verbiedt array `%s' van variabele lengte" + +-#: cp/decl.c:6154 ++#: cp/decl.c:6223 + msgid "overflow in array dimension" + msgstr "" + +-#: cp/decl.c:6248 ++#: cp/decl.c:6317 + #, fuzzy + msgid "declaration of `%D' as %s" + msgstr "herdeclaratie van `%s'" + +-#: cp/decl.c:6250 ++#: cp/decl.c:6319 + #, fuzzy, c-format + msgid "creating %s" + msgstr "read %s" + +-#: cp/decl.c:6262 ++#: cp/decl.c:6331 + msgid "declaration of `%D' as multidimensional array must have bounds for all dimensions except the first" + msgstr "" + +-#: cp/decl.c:6265 ++#: cp/decl.c:6334 + msgid "multidimensional array must have bounds for all dimensions except the first" + msgstr "" + +-#: cp/decl.c:6293 ++#: cp/decl.c:6362 + msgid "return type specification for constructor invalid" + msgstr "" + +-#: cp/decl.c:6300 ++#: cp/decl.c:6369 + msgid "return type specification for destructor invalid" + msgstr "" + +-#: cp/decl.c:6306 ++#: cp/decl.c:6375 + #, fuzzy + msgid "operator `%T' declared to return `%T'" + msgstr "parameter `%s' als void gedeclareerd" + +-#: cp/decl.c:6308 ++#: cp/decl.c:6377 + #, fuzzy + msgid "return type specified for `operator %T'" + msgstr "registernaam niet opgegeven voor `%s'" + +-#: cp/decl.c:6452 ++#: cp/decl.c:6400 ++msgid "unnamed variable or field declared void" ++msgstr "" ++ ++#: cp/decl.c:6405 ++#, fuzzy, c-format ++msgid "variable or field `%E' declared void" ++msgstr "variabele of veld `%s' als void gedeclareerd" ++ ++#: cp/decl.c:6408 ++msgid "variable or field declared void" ++msgstr "" ++ ++#: cp/decl.c:6547 + msgid "destructors must be member functions" + msgstr "" + +-#: cp/decl.c:6471 ++#: cp/decl.c:6566 + msgid "destructor `%T' must match class name `%T'" + msgstr "" + +-#: cp/decl.c:6534 ++#: cp/decl.c:6629 + msgid "declarator-id missing; using reserved word `%D'" + msgstr "" + +-#: cp/decl.c:6588 ++#: cp/decl.c:6683 + #, fuzzy + msgid "type `%T' is not derived from type `%T'" + msgstr "iterator `%s' is van een afgeleid type" + + #. Parse error puts this typespec where + #. a declarator should go. +-#: cp/decl.c:6651 ++#: cp/decl.c:6746 + msgid "`%T' specified as declarator-id" + msgstr "" + +-#: cp/decl.c:6653 ++#: cp/decl.c:6748 + msgid " perhaps you want `%T' for a constructor" + msgstr "" + +@@ -14803,318 +14861,310 @@ + #. decl-specifier like in + #. std::allocator alloc; + #. Handle that gracefully. +-#: cp/decl.c:6675 ++#: cp/decl.c:6770 + #, fuzzy, c-format + msgid "invalid use of template-name '%E' in a declarator" + msgstr "ongeldig gebruik van een void-expressie" + +-#: cp/decl.c:6695 ++#: cp/decl.c:6790 cp/decl.c:8124 + #, fuzzy + msgid "declaration of `%D' as non-function" + msgstr "`%s' wordt gedeclareerd als een array van functies" + +-#: cp/decl.c:6772 ++#: cp/decl.c:6867 + msgid "`bool' is now a keyword" + msgstr "" + +-#: cp/decl.c:6774 ++#: cp/decl.c:6869 + msgid "extraneous `%T' ignored" + msgstr "" + +-#: cp/decl.c:6790 cp/decl.c:6834 ++#: cp/decl.c:6885 cp/decl.c:6929 + #, fuzzy + msgid "multiple declarations `%T' and `%T'" + msgstr "meerdere parameters hebben de naam `%s'" + +-#: cp/decl.c:6803 ++#: cp/decl.c:6898 + #, fuzzy + msgid "ISO C++ does not support `long long'" + msgstr "ANSI C ondersteunt `long long' niet" + +-#: cp/decl.c:6907 cp/decl.c:6910 ++#: cp/decl.c:7002 cp/decl.c:7005 + #, fuzzy, c-format + msgid "ISO C++ forbids declaration of `%s' with no type" + msgstr "ANSI C verbiedt lid-declaraties zonder leden" + +-#: cp/decl.c:6941 ++#: cp/decl.c:7036 + #, c-format + msgid "short, signed or unsigned invalid for `%s'" + msgstr "" + +-#: cp/decl.c:6946 ++#: cp/decl.c:7041 + #, c-format + msgid "long and short specified together for `%s'" + msgstr "" + +-#: cp/decl.c:6957 ++#: cp/decl.c:7052 + #, c-format + msgid "signed and unsigned given together for `%s'" + msgstr "" + +-#: cp/decl.c:7066 ++#: cp/decl.c:7161 + msgid "qualifiers are not allowed on declaration of `operator %T'" + msgstr "" + +-#: cp/decl.c:7088 ++#: cp/decl.c:7183 + msgid "member `%D' cannot be declared both virtual and static" + msgstr "" + +-#: cp/decl.c:7097 ++#: cp/decl.c:7192 + #, fuzzy + msgid "`%T::%D' is not a valid declarator" + msgstr "`%s' is geen iterator" + +-#: cp/decl.c:7109 ++#: cp/decl.c:7204 + msgid "storage class specifiers invalid in parameter declarations" + msgstr "" + +-#: cp/decl.c:7113 ++#: cp/decl.c:7208 + msgid "typedef declaration invalid in parameter declaration" + msgstr "" + +-#: cp/decl.c:7126 ++#: cp/decl.c:7221 + msgid "virtual outside class declaration" + msgstr "" + +-#: cp/decl.c:7185 ++#: cp/decl.c:7280 + #, c-format + msgid "storage class specified for %s `%s'" + msgstr "" + +-#: cp/decl.c:7220 ++#: cp/decl.c:7315 + #, c-format + msgid "top-level declaration of `%s' specifies `auto'" + msgstr "top-level declaratie van `%s' specifieert `auto'" + +-#: cp/decl.c:7232 ++#: cp/decl.c:7327 + msgid "storage class specifiers invalid in friend function declarations" + msgstr "" + +-#: cp/decl.c:7397 ++#: cp/decl.c:7492 + msgid "destructor cannot be static member function" + msgstr "" + +-#: cp/decl.c:7400 ++#: cp/decl.c:7495 + #, fuzzy, c-format + msgid "destructors may not be `%s'" + msgstr "structure heeft geen lid dat `%s' heet" + +-#: cp/decl.c:7421 ++#: cp/decl.c:7516 + msgid "constructor cannot be static member function" + msgstr "" + +-#: cp/decl.c:7424 ++#: cp/decl.c:7519 + msgid "constructors cannot be declared virtual" + msgstr "" + +-#: cp/decl.c:7429 ++#: cp/decl.c:7524 + #, fuzzy, c-format + msgid "constructors may not be `%s'" + msgstr "structure heeft geen lid dat `%s' heet" + +-#: cp/decl.c:7439 ++#: cp/decl.c:7534 + msgid "return value type specifier for constructor ignored" + msgstr "" + +-#: cp/decl.c:7458 ++#: cp/decl.c:7553 + #, c-format + msgid "can't initialize friend function `%s'" + msgstr "" + + #. Cannot be both friend and virtual. +-#: cp/decl.c:7462 ++#: cp/decl.c:7557 + msgid "virtual functions cannot be friends" + msgstr "" + +-#: cp/decl.c:7467 ++#: cp/decl.c:7562 + msgid "friend declaration not in class definition" + msgstr "" + +-#: cp/decl.c:7469 ++#: cp/decl.c:7564 + #, c-format + msgid "can't define friend function `%s' in a local class definition" + msgstr "" + +-#: cp/decl.c:7490 ++#: cp/decl.c:7585 + msgid "destructors may not have parameters" + msgstr "" + +-#: cp/decl.c:7510 cp/decl.c:7517 ++#: cp/decl.c:7605 cp/decl.c:7612 + #, fuzzy + msgid "cannot declare reference to `%#T'" + msgstr "kan niet derefereren, is geen pointer." + +-#: cp/decl.c:7511 ++#: cp/decl.c:7606 + #, fuzzy + msgid "cannot declare pointer to `%#T'" + msgstr "parameter `%s' wijst naar een onvolledig type" + +-#: cp/decl.c:7516 ++#: cp/decl.c:7611 + msgid "cannot declare pointer to `%#T' member" + msgstr "" + +-#: cp/decl.c:7655 ++#: cp/decl.c:7750 + msgid "extra qualification `%T::' on member `%s' ignored" + msgstr "" + +-#: cp/decl.c:7671 ++#: cp/decl.c:7766 + msgid "cannot declare member function `%T::%s' within `%T'" + msgstr "" + +-#: cp/decl.c:7686 ++#: cp/decl.c:7781 + msgid "cannot declare member `%T::%s' within `%T'" + msgstr "" + +-#: cp/decl.c:7766 ++#: cp/decl.c:7861 + msgid "data member may not have variably modified type `%T'" + msgstr "" + +-#: cp/decl.c:7768 ++#: cp/decl.c:7863 + msgid "parameter may not have variably modified type `%T'" + msgstr "" + + #. [dcl.fct.spec] The explicit specifier shall only be used in + #. declarations of constructors within a class definition. +-#: cp/decl.c:7776 ++#: cp/decl.c:7871 + msgid "only declarations of constructors can be `explicit'" + msgstr "" + +-#: cp/decl.c:7784 ++#: cp/decl.c:7879 + #, c-format + msgid "non-member `%s' cannot be declared `mutable'" + msgstr "" + +-#: cp/decl.c:7789 ++#: cp/decl.c:7884 + #, c-format + msgid "non-object member `%s' cannot be declared `mutable'" + msgstr "" + +-#: cp/decl.c:7795 ++#: cp/decl.c:7890 + #, fuzzy, c-format + msgid "function `%s' cannot be declared `mutable'" + msgstr "geneste functie `%s' is als `extern' gedeclareerd" + +-#: cp/decl.c:7800 ++#: cp/decl.c:7895 + #, c-format + msgid "static `%s' cannot be declared `mutable'" + msgstr "" + +-#: cp/decl.c:7805 ++#: cp/decl.c:7900 + #, c-format + msgid "const `%s' cannot be declared `mutable'" + msgstr "" + +-#: cp/decl.c:7818 ++#: cp/decl.c:7913 + #, fuzzy + msgid "template-id `%D' used as a declarator" + msgstr "parameter `%s' heeft enkel een voorwaartse declaratie" + +-#: cp/decl.c:7839 ++#: cp/decl.c:7934 + msgid "ISO C++ forbids nested type `%D' with same name as enclosing class" + msgstr "" + +-#: cp/decl.c:7847 ++#: cp/decl.c:7942 + msgid "%Jtypedef name may not be a nested-name-specifier" + msgstr "" + +-#: cp/decl.c:7893 ++#: cp/decl.c:7988 + #, fuzzy + msgid "%Jinvalid type qualifier for non-member function type" + msgstr "%s laat qualifiers van doeltype van pointer vallen" + +-#: cp/decl.c:7956 ++#: cp/decl.c:8051 + #, fuzzy + msgid "type qualifiers specified for friend class declaration" + msgstr "twee types opgegeven in één lege declaratie" + +-#: cp/decl.c:7961 ++#: cp/decl.c:8056 + #, fuzzy + msgid "`inline' specified for friend class declaration" + msgstr "POS mag niet opgegeven worden voor een lijst van veld-declaraties" + +-#: cp/decl.c:7969 ++#: cp/decl.c:8064 + #, fuzzy + msgid "template parameters cannot be friends" + msgstr "niet-beëindigde parameterlijst in `#define'" + +-#: cp/decl.c:7971 ++#: cp/decl.c:8066 + msgid "friend declaration requires class-key, i.e. `friend class %T::%D'" + msgstr "" + +-#: cp/decl.c:7975 ++#: cp/decl.c:8070 + msgid "friend declaration requires class-key, i.e. `friend %#T'" + msgstr "" + +-#: cp/decl.c:7988 ++#: cp/decl.c:8083 + msgid "trying to make class `%T' a friend of global scope" + msgstr "" + +-#: cp/decl.c:7999 ++#: cp/decl.c:8094 + #, fuzzy + msgid "invalid qualifiers on non-member function type" + msgstr "%s laat qualifiers van doeltype van pointer vallen" + +-#: cp/decl.c:8018 ++#: cp/decl.c:8113 + #, fuzzy + msgid "abstract declarator `%T' used as declaration" + msgstr "de declaratie van `%s' verbergt een globale declaratie" + +-#: cp/decl.c:8030 +-msgid "unnamed variable or field declared void" +-msgstr "" +- +-#: cp/decl.c:8039 +-msgid "variable or field declared void" +-msgstr "" +- +-#: cp/decl.c:8049 ++#: cp/decl.c:8139 + msgid "cannot use `::' in parameter declaration" + msgstr "" + + #. Something like struct S { int N::j; }; +-#: cp/decl.c:8094 ++#: cp/decl.c:8184 + #, fuzzy + msgid "invalid use of `::'" + msgstr "ongeldig gebruik van `restrict'" + +-#: cp/decl.c:8106 ++#: cp/decl.c:8196 + #, fuzzy + msgid "function `%D' cannot be declared friend" + msgstr "`%s' mag niet als alleen-lezen gedeclareerd worden" + +-#: cp/decl.c:8118 ++#: cp/decl.c:8208 + msgid "can't make `%D' into a method -- not in a class" + msgstr "" + +-#: cp/decl.c:8127 ++#: cp/decl.c:8217 + #, fuzzy + msgid "function `%D' declared virtual inside a union" + msgstr "veld `%s' als een functie gedeclareerd" + +-#: cp/decl.c:8136 ++#: cp/decl.c:8226 + msgid "`%D' cannot be declared virtual, since it is always static" + msgstr "" + +-#: cp/decl.c:8215 ++#: cp/decl.c:8305 + #, fuzzy + msgid "field `%D' has incomplete type" + msgstr "veld `%s' heeft een onvolledig type" + +-#: cp/decl.c:8217 ++#: cp/decl.c:8307 + #, fuzzy + msgid "name `%T' has incomplete type" + msgstr "parameter `%s' heeft een onvolledig type" + +-#: cp/decl.c:8226 ++#: cp/decl.c:8316 + msgid " in instantiation of template `%T'" + msgstr "" + +-#: cp/decl.c:8236 ++#: cp/decl.c:8326 + #, c-format + msgid "`%s' is neither function nor member function; cannot be declared friend" + msgstr "" + +-#: cp/decl.c:8247 ++#: cp/decl.c:8337 + msgid "member functions are implicitly friends of their class" + msgstr "" + +@@ -15130,95 +15180,95 @@ + #. the rest of the compiler does not correctly + #. handle the initialization unless the member is + #. static so we make it static below. +-#: cp/decl.c:8287 ++#: cp/decl.c:8377 + #, fuzzy + msgid "ISO C++ forbids initialization of member `%D'" + msgstr "(dicht bij initialisatie van `%s')" + +-#: cp/decl.c:8289 ++#: cp/decl.c:8379 + msgid "making `%D' static" + msgstr "" + +-#: cp/decl.c:8345 ++#: cp/decl.c:8435 + #, c-format + msgid "storage class `auto' invalid for function `%s'" + msgstr "" + +-#: cp/decl.c:8347 ++#: cp/decl.c:8437 + #, c-format + msgid "storage class `register' invalid for function `%s'" + msgstr "" + +-#: cp/decl.c:8349 ++#: cp/decl.c:8439 + #, fuzzy, c-format + msgid "storage class `__thread' invalid for function `%s'" + msgstr "ongeldige opslagklasse voor functie `%s'" + +-#: cp/decl.c:8360 ++#: cp/decl.c:8450 + #, c-format + msgid "storage class `static' invalid for function `%s' declared out of global scope" + msgstr "" + +-#: cp/decl.c:8362 ++#: cp/decl.c:8452 + #, c-format + msgid "storage class `inline' invalid for function `%s' declared out of global scope" + msgstr "" + +-#: cp/decl.c:8369 ++#: cp/decl.c:8459 + #, c-format + msgid "virtual non-class function `%s'" + msgstr "" + +-#: cp/decl.c:8400 ++#: cp/decl.c:8490 + msgid "cannot declare member function `%D' to have static linkage" + msgstr "" + + #. FIXME need arm citation +-#: cp/decl.c:8406 ++#: cp/decl.c:8496 + msgid "cannot declare static function inside another function" + msgstr "" + +-#: cp/decl.c:8434 ++#: cp/decl.c:8524 + msgid "`static' may not be used when defining (as opposed to declaring) a static data member" + msgstr "" + +-#: cp/decl.c:8440 ++#: cp/decl.c:8530 + #, fuzzy + msgid "static member `%D' declared `register'" + msgstr "variabele `%s' als inline gedeclareerd" + +-#: cp/decl.c:8445 ++#: cp/decl.c:8535 + msgid "cannot explicitly declare member `%#D' to have extern linkage" + msgstr "" + +-#: cp/decl.c:8585 ++#: cp/decl.c:8675 + #, fuzzy + msgid "default argument for `%#D' has type `%T'" + msgstr "eerste argument van `%s' zou een `int' moeten zijn" + +-#: cp/decl.c:8588 ++#: cp/decl.c:8678 + msgid "default argument for parameter of type `%T' has type `%T'" + msgstr "" + +-#: cp/decl.c:8605 ++#: cp/decl.c:8695 + msgid "default argument `%E' uses local variable `%D'" + msgstr "" + +-#: cp/decl.c:8649 ++#: cp/decl.c:8739 + #, fuzzy, c-format + msgid "invalid string constant `%E'" + msgstr "slechte stringconstante" + +-#: cp/decl.c:8651 ++#: cp/decl.c:8741 + msgid "invalid integer constant in parameter list, did you forget to give parameter name?" + msgstr "" + +-#: cp/decl.c:8689 ++#: cp/decl.c:8779 + #, fuzzy + msgid "parameter `%D' invalidly declared method type" + msgstr "parameter `%s' als void gedeclareerd" + +-#: cp/decl.c:8713 ++#: cp/decl.c:8803 + msgid "parameter `%D' includes %s to array of unknown bound `%T'" + msgstr "" + +@@ -15237,100 +15287,100 @@ + #. or implicitly defined), there's no need to worry about their + #. existence. Theoretically, they should never even be + #. instantiated, but that's hard to forestall. +-#: cp/decl.c:8872 ++#: cp/decl.c:8962 + msgid "invalid constructor; you probably meant `%T (const %T&)'" + msgstr "" + +-#: cp/decl.c:9000 ++#: cp/decl.c:9090 + #, fuzzy + msgid "`%D' must be a nonstatic member function" + msgstr "`this' is niet beschikbaar in static member-funties" + +-#: cp/decl.c:9006 ++#: cp/decl.c:9096 + msgid "`%D' must be either a non-static member function or a non-member function" + msgstr "" + +-#: cp/decl.c:9023 ++#: cp/decl.c:9113 + msgid "`%D' must have an argument of class or enumerated type" + msgstr "" + +-#: cp/decl.c:9058 ++#: cp/decl.c:9148 + #, c-format + msgid "conversion to %s%s will never use a type conversion operator" + msgstr "" + + #. 13.4.0.3 +-#: cp/decl.c:9065 ++#: cp/decl.c:9155 + msgid "ISO C++ prohibits overloading operator ?:" + msgstr "" + +-#: cp/decl.c:9115 ++#: cp/decl.c:9205 + msgid "postfix `%D' must take `int' as its argument" + msgstr "" + +-#: cp/decl.c:9119 ++#: cp/decl.c:9209 + msgid "postfix `%D' must take `int' as its second argument" + msgstr "" + +-#: cp/decl.c:9126 ++#: cp/decl.c:9216 + #, fuzzy + msgid "`%D' must take either zero or one argument" + msgstr "`%s' neemt ofwel geen, ofwel twee argumenten" + +-#: cp/decl.c:9128 ++#: cp/decl.c:9218 + #, fuzzy + msgid "`%D' must take either one or two arguments" + msgstr "`%s' neemt ofwel geen, ofwel twee argumenten" + +-#: cp/decl.c:9149 ++#: cp/decl.c:9239 + msgid "prefix `%D' should return `%T'" + msgstr "" + +-#: cp/decl.c:9155 ++#: cp/decl.c:9245 + msgid "postfix `%D' should return `%T'" + msgstr "" + +-#: cp/decl.c:9164 ++#: cp/decl.c:9254 + msgid "`%D' must take `void'" + msgstr "" + +-#: cp/decl.c:9166 cp/decl.c:9174 ++#: cp/decl.c:9256 cp/decl.c:9264 + #, fuzzy + msgid "`%D' must take exactly one argument" + msgstr "`%s' neemt ofwel geen, ofwel twee argumenten" + +-#: cp/decl.c:9176 ++#: cp/decl.c:9266 + #, fuzzy + msgid "`%D' must take exactly two arguments" + msgstr "`%s' neemt ofwel geen, ofwel twee argumenten" + +-#: cp/decl.c:9184 ++#: cp/decl.c:9274 + msgid "user-defined `%D' always evaluates both arguments" + msgstr "" + +-#: cp/decl.c:9198 ++#: cp/decl.c:9288 + msgid "`%D' should return by value" + msgstr "" + +-#: cp/decl.c:9210 cp/decl.c:9213 ++#: cp/decl.c:9300 cp/decl.c:9303 + msgid "`%D' cannot have default arguments" + msgstr "" + +-#: cp/decl.c:9273 ++#: cp/decl.c:9363 + msgid "using typedef-name `%D' after `%s'" + msgstr "" + +-#: cp/decl.c:9279 ++#: cp/decl.c:9369 + #, fuzzy + msgid "using template type parameter `%T' after `%s'" + msgstr "incompatibel type voor argument %d van `%s'" + +-#: cp/decl.c:9287 ++#: cp/decl.c:9377 + #, fuzzy + msgid "`%T' referred to as `%s'" + msgstr "`%s' tevoren hier gedeclareerd" + +-#: cp/decl.c:9293 ++#: cp/decl.c:9383 + #, fuzzy + msgid "`%T' referred to as enum" + msgstr "`%s' tevoren hier gedeclareerd" +@@ -15342,53 +15392,53 @@ + #. void f(class C); // No template header here + #. + #. then the required template argument is missing. +-#: cp/decl.c:9308 ++#: cp/decl.c:9398 + #, fuzzy + msgid "template argument required for `%s %T'" + msgstr "meerdere parameters hebben de naam `%s'" + +-#: cp/decl.c:9453 ++#: cp/decl.c:9543 + #, fuzzy + msgid "use of enum `%#D' without previous declaration" + msgstr "sectie van `%s' geeft een conflict met een eerdere declaratie" + +-#: cp/decl.c:9471 ++#: cp/decl.c:9561 + #, fuzzy + msgid "redeclaration of `%T' as a non-template" + msgstr "`%s' wordt gedeclareerd als een array van functies" + +-#: cp/decl.c:9517 ++#: cp/decl.c:9607 + msgid "derived union `%T' invalid" + msgstr "" + +-#: cp/decl.c:9570 ++#: cp/decl.c:9660 + #, fuzzy + msgid "base type `%T' fails to be a struct or class type" + msgstr "`%s' is geen typedef of ingebouwd type" + +-#: cp/decl.c:9578 ++#: cp/decl.c:9668 + msgid "recursive type `%T' undefined" + msgstr "" + +-#: cp/decl.c:9580 ++#: cp/decl.c:9670 + #, fuzzy + msgid "duplicate base type `%T' invalid" + msgstr "herhaalde case-waarde" + +-#: cp/decl.c:9658 ++#: cp/decl.c:9748 + msgid "Java class '%T' cannot have multiple bases" + msgstr "" + +-#: cp/decl.c:9660 ++#: cp/decl.c:9750 + msgid "Java class '%T' cannot have virtual bases" + msgstr "" + +-#: cp/decl.c:9700 ++#: cp/decl.c:9790 + #, fuzzy + msgid "multiple definition of `%#T'" + msgstr "herdefinitie van `%s'" + +-#: cp/decl.c:9701 ++#: cp/decl.c:9791 + #, fuzzy + msgid "%Jprevious definition here" + msgstr "eerdere definitie van `%s'" +@@ -15397,53 +15447,53 @@ + #. + #. IF no integral type can represent all the enumerator values, the + #. enumeration is ill-formed. +-#: cp/decl.c:9836 ++#: cp/decl.c:9926 + msgid "no integral type can represent all of the enumerator values for `%T'" + msgstr "" + +-#: cp/decl.c:9926 ++#: cp/decl.c:10023 + #, fuzzy + msgid "enumerator value for `%D' not integer constant" + msgstr "enumeratiewaarde voor `%s' is geen integrale constante" + +-#: cp/decl.c:9946 ++#: cp/decl.c:10043 + #, fuzzy + msgid "overflow in enumeration values at `%D'" + msgstr "overflow in enumeratiewaarden" + +-#: cp/decl.c:10015 ++#: cp/decl.c:10112 + #, fuzzy + msgid "return type `%#T' is incomplete" + msgstr "type van teruggeefwaarde is onvolledig" + +-#: cp/decl.c:10133 ++#: cp/decl.c:10230 + msgid "return type for `main' changed to `int'" + msgstr "" + +-#: cp/decl.c:10162 ++#: cp/decl.c:10259 + #, fuzzy + msgid "`%D' implicitly declared before its definition" + msgstr "`%s' impliciet als functie gedeclareerd" + +-#: cp/decl.c:10184 cp/typeck.c:6071 ++#: cp/decl.c:10281 cp/typeck.c:6092 + msgid "`operator=' should return a reference to `*this'" + msgstr "" + +-#: cp/decl.c:10453 ++#: cp/decl.c:10550 + #, fuzzy + msgid "parameter `%D' declared void" + msgstr "parameter `%s' als void gedeclareerd" + +-#: cp/decl.c:10919 ++#: cp/decl.c:11016 + #, fuzzy + msgid "invalid member function declaration" + msgstr "herhaalde label-declaratie `%s'" + +-#: cp/decl.c:10936 ++#: cp/decl.c:11033 + msgid "`%D' is already defined in class `%T'" + msgstr "" + +-#: cp/decl.c:11149 ++#: cp/decl.c:11246 + #, fuzzy + msgid "static member function `%#D' declared with type qualifiers" + msgstr "geneste functie `%s' is als `extern' gedeclareerd" +@@ -15494,7 +15544,7 @@ + msgid "invalid use of `virtual' in template declaration of `%#D'" + msgstr "ongeldig gebruik van onvolledige typedef `%s'" + +-#: cp/decl2.c:541 cp/pt.c:2834 ++#: cp/decl2.c:541 cp/pt.c:2878 + #, fuzzy + msgid "template declaration of `%#D'" + msgstr "herdeclaratie van `%s'" +@@ -15572,43 +15622,43 @@ + msgid "anonymous struct not inside named type" + msgstr "anonieme %s gedeclareerd binnen parameterlijst" + +-#: cp/decl2.c:1218 ++#: cp/decl2.c:1224 + msgid "namespace-scope anonymous aggregates must be static" + msgstr "" + +-#: cp/decl2.c:1225 ++#: cp/decl2.c:1231 + #, fuzzy + msgid "anonymous union with no members" + msgstr "anonieme %s gedeclareerd binnen parameterlijst" + +-#: cp/decl2.c:1259 ++#: cp/decl2.c:1265 + msgid "`operator new' must return type `%T'" + msgstr "" + +-#: cp/decl2.c:1267 ++#: cp/decl2.c:1273 + msgid "`operator new' takes type `size_t' (`%T') as first parameter" + msgstr "" + +-#: cp/decl2.c:1293 ++#: cp/decl2.c:1299 + msgid "`operator delete' must return type `%T'" + msgstr "" + +-#: cp/decl2.c:1301 ++#: cp/decl2.c:1307 + msgid "`operator delete' takes type `%T' as first parameter" + msgstr "" + +-#: cp/decl2.c:2810 ++#: cp/decl2.c:2816 + #, fuzzy + msgid "inline function `%D' used but never defined" + msgstr "label `%s' gebruikt maar niet gedefinieerd" + +-#: cp/decl2.c:2956 ++#: cp/decl2.c:2962 + #, fuzzy + msgid "default argument missing for parameter %P of `%+#D'" + msgstr "parameternaam ontbreekt uit parameterlijst" + + #. damn ICE suppression +-#: cp/error.c:2387 ++#: cp/error.c:2385 + #, c-format + msgid "unexpected letter `%c' in locate_error\n" + msgstr "" +@@ -15635,7 +15685,7 @@ + msgid "throwing NULL, which has integral, not pointer type" + msgstr "" + +-#: cp/except.c:598 cp/init.c:2038 ++#: cp/except.c:598 cp/init.c:2047 + msgid "`%D' should never be overloaded" + msgstr "" + +@@ -15721,7 +15771,7 @@ + msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning" + msgstr "" + +-#: cp/g++spec.c:229 java/jvspec.c:415 ++#: cp/g++spec.c:232 java/jvspec.c:415 + #, fuzzy, c-format + msgid "argument to `%s' missing\n" + msgstr "argument van `%s' moet van een integraal type zijn." +@@ -15860,65 +15910,65 @@ + msgid "incomplete type `%T' does not have member `%D'" + msgstr "" + +-#: cp/init.c:1459 ++#: cp/init.c:1460 + #, fuzzy + msgid "`%D' is not a member of type `%T'" + msgstr "`%s' is geen bestand, pipe of tty" + +-#: cp/init.c:1478 ++#: cp/init.c:1487 + #, fuzzy + msgid "invalid pointer to bit-field `%D'" + msgstr "bitveld `%s' heeft een negatieve breedte" + +-#: cp/init.c:1580 ++#: cp/init.c:1589 + #, fuzzy + msgid "invalid use of non-static member function `%D'" + msgstr "ongeldig gebruik van onvolledige typedef `%s'" + +-#: cp/init.c:1586 cp/semantics.c:1236 ++#: cp/init.c:1595 cp/semantics.c:1236 + #, fuzzy + msgid "invalid use of non-static data member `%D'" + msgstr "ongeldig gebruik van onvolledige typedef `%s'" + +-#: cp/init.c:1725 ++#: cp/init.c:1734 + msgid "new of array type fails to specify size" + msgstr "" + +-#: cp/init.c:1736 ++#: cp/init.c:1745 + msgid "size in array new must have integral type" + msgstr "" + +-#: cp/init.c:1742 ++#: cp/init.c:1751 + msgid "zero size array reserves no space" + msgstr "" + +-#: cp/init.c:1809 ++#: cp/init.c:1818 + msgid "new cannot be applied to a reference type" + msgstr "" + +-#: cp/init.c:1815 ++#: cp/init.c:1824 + msgid "new cannot be applied to a function type" + msgstr "" + +-#: cp/init.c:1861 ++#: cp/init.c:1870 + msgid "call to Java constructor, while `jclass' undefined" + msgstr "" + +-#: cp/init.c:1877 ++#: cp/init.c:1886 + #, fuzzy + msgid "can't find class$" + msgstr "kan %s niet vinden" + +-#: cp/init.c:2004 ++#: cp/init.c:2013 + msgid "invalid type `void' for new" + msgstr "" + +-#: cp/init.c:2014 ++#: cp/init.c:2023 + #, fuzzy + msgid "uninitialized const in `new' of `%#T'" + msgstr "beginwaarde legt grootte van `%s' niet vast" + +-#: cp/init.c:2033 ++#: cp/init.c:2042 + #, c-format + msgid "call to Java constructor with `%s' undefined" + msgstr "" +@@ -15926,41 +15976,41 @@ + #. See PR 15967. This should never happen (and it is + #. fixed correctly in mainline), but on the release branch + #. we prefer this less-intrusive approacch. +-#: cp/init.c:2077 ++#: cp/init.c:2086 + msgid "no suitable or ambiguous `%D' found in class `%T'" + msgstr "" + +-#: cp/init.c:2083 ++#: cp/init.c:2092 + #, fuzzy + msgid "request for member `%D' is ambiguous" + msgstr "grootte van `%s' is %u bytes" + +-#: cp/init.c:2203 ++#: cp/init.c:2212 + #, fuzzy + msgid "ISO C++ forbids initialization in array new" + msgstr "ANSI C verbiedt lege initialisatie-accolades" + +-#: cp/init.c:2677 ++#: cp/init.c:2686 + msgid "initializer ends prematurely" + msgstr "" + +-#: cp/init.c:2734 ++#: cp/init.c:2743 + msgid "cannot initialize multi-dimensional array with initializer" + msgstr "" + +-#: cp/init.c:2895 ++#: cp/init.c:2904 + msgid "possible problem detected in invocation of delete operator:" + msgstr "" + +-#: cp/init.c:2898 ++#: cp/init.c:2907 + msgid "neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined." + msgstr "" + +-#: cp/init.c:2919 ++#: cp/init.c:2928 + msgid "unknown array size in delete" + msgstr "" + +-#: cp/init.c:3184 ++#: cp/init.c:3193 + msgid "type to vector delete is neither pointer or array type" + msgstr "" + +@@ -16030,15 +16080,15 @@ + msgid "(if you use `-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)" + msgstr "" + +-#: cp/mangle.c:2037 ++#: cp/mangle.c:2050 + msgid "call_expr cannot be mangled due to a defect in the C++ ABI" + msgstr "" + +-#: cp/mangle.c:2090 ++#: cp/mangle.c:2103 + msgid "omitted middle operand to `?:' operand cannot be mangled" + msgstr "" + +-#: cp/mangle.c:2389 ++#: cp/mangle.c:2402 + msgid "the mangled name of `%D' will change in a future version of GCC" + msgstr "" + +@@ -16196,7 +16246,7 @@ + + #. It's a nested name with template parameter dependent scope. + #. This can only be using-declaration for class member. +-#: cp/name-lookup.c:2126 cp/name-lookup.c:2140 cp/name-lookup.c:3380 ++#: cp/name-lookup.c:2126 cp/name-lookup.c:2140 cp/name-lookup.c:3362 + #, fuzzy + msgid "`%T' is not a namespace" + msgstr "`%s' is geen iterator" +@@ -16234,97 +16284,97 @@ + msgid "using-declaration cannot name destructor" + msgstr "" + +-#: cp/name-lookup.c:3005 ++#: cp/name-lookup.c:2984 + #, fuzzy + msgid "declaration of `%D' not in a namespace surrounding `%D'" + msgstr "`%s' wordt gedeclareerd als een array van functies" + +-#: cp/name-lookup.c:3045 ++#: cp/name-lookup.c:3024 + msgid "`%D' should have been declared inside `%D'" + msgstr "" + +-#: cp/name-lookup.c:3109 ++#: cp/name-lookup.c:3088 + msgid "namespace alias `%D' not allowed here, assuming `%D'" + msgstr "" + + #. The parser did not find it, so it's not there. +-#: cp/name-lookup.c:3224 ++#: cp/name-lookup.c:3203 + #, fuzzy + msgid "unknown namespace `%D'" + msgstr "onbekende machine-modus `%s'" + +-#: cp/name-lookup.c:3374 ++#: cp/name-lookup.c:3356 + #, fuzzy + msgid "namespace `%T' undeclared" + msgstr "`%s' tevoren hier gedeclareerd" + +-#: cp/name-lookup.c:3407 ++#: cp/name-lookup.c:3389 + msgid "strong using only meaningful at namespace scope" + msgstr "" + +-#: cp/name-lookup.c:3414 ++#: cp/name-lookup.c:3396 + #, fuzzy + msgid "`%D' attribute directive ignored" + msgstr "attribuut-commando `%s' wordt genegeerd" + +-#: cp/name-lookup.c:3547 ++#: cp/name-lookup.c:3529 + #, fuzzy + msgid "use of `%D' is ambiguous" + msgstr "grootte van `%s' is %u bytes" + +-#: cp/name-lookup.c:3548 ++#: cp/name-lookup.c:3530 + msgid " first declared as `%#D' here" + msgstr "" + +-#: cp/name-lookup.c:3551 ++#: cp/name-lookup.c:3533 + msgid " also declared as `%#D' here" + msgstr "" + +-#: cp/name-lookup.c:3566 ++#: cp/name-lookup.c:3548 + msgid "`%D' denotes an ambiguous type" + msgstr "" + +-#: cp/name-lookup.c:3567 ++#: cp/name-lookup.c:3549 + #, fuzzy + msgid "%J first type here" + msgstr "van hieruit opgeroepen" + +-#: cp/name-lookup.c:3568 ++#: cp/name-lookup.c:3550 + msgid "%J other type here" + msgstr "" + + #. This happens for A::B where B is a template, and there are no + #. template arguments. +-#: cp/name-lookup.c:3633 cp/typeck.c:1792 ++#: cp/name-lookup.c:3615 cp/typeck.c:1792 + #, fuzzy + msgid "invalid use of `%D'" + msgstr "ongeldig gebruik van `restrict'" + +-#: cp/name-lookup.c:3674 ++#: cp/name-lookup.c:3656 + #, fuzzy + msgid "`%D::%D' is not a template" + msgstr "`%s' is geen iterator" + +-#: cp/name-lookup.c:3691 ++#: cp/name-lookup.c:3673 + #, fuzzy + msgid "`%D' undeclared in namespace `%D'" + msgstr "ongeldige naam `%s'" + +-#: cp/name-lookup.c:4153 ++#: cp/name-lookup.c:4135 + #, fuzzy + msgid "`%D' is not a function," + msgstr "`%s' is meestal een functie" + +-#: cp/name-lookup.c:4154 ++#: cp/name-lookup.c:4136 + #, fuzzy + msgid " conflict with `%D'" + msgstr "conflicterende types voor `%s'" + +-#: cp/name-lookup.c:4911 ++#: cp/name-lookup.c:4893 + msgid "XXX entering pop_everything ()\n" + msgstr "" + +-#: cp/name-lookup.c:4920 ++#: cp/name-lookup.c:4902 + msgid "XXX leaving pop_everything ()\n" + msgstr "" + +@@ -16338,7 +16388,7 @@ + msgid "`%D::%D' has not been declared" + msgstr "`%.*s' is niet gedefinieerd" + +-#: cp/parser.c:1809 cp/semantics.c:2308 ++#: cp/parser.c:1809 cp/semantics.c:2305 + #, fuzzy + msgid "`::%D' has not been declared" + msgstr "`%.*s' is niet gedefinieerd" +@@ -16365,7 +16415,7 @@ + msgid "new types may not be defined in a return type" + msgstr "" + +-#: cp/parser.c:1888 cp/pt.c:4196 ++#: cp/parser.c:1888 cp/pt.c:4238 + #, fuzzy + msgid "`%T' is not a template" + msgstr "`%s' is geen iterator" +@@ -16421,107 +16471,107 @@ + msgid "typedef-name `%D' used as destructor declarator" + msgstr "parameter `%s' heeft enkel een voorwaartse declaratie" + +-#: cp/parser.c:3638 ++#: cp/parser.c:3648 + #, fuzzy + msgid "ISO C++ forbids compound-literals" + msgstr "ANSI C verbiedt het gebruik van samengestelde expressies als lvalues" + +-#: cp/parser.c:4461 ++#: cp/parser.c:4498 + msgid "array bound forbidden after parenthesized type-id" + msgstr "" + +-#: cp/parser.c:4462 ++#: cp/parser.c:4499 + msgid "try removing the parentheses around the type-id" + msgstr "" + +-#: cp/parser.c:4624 ++#: cp/parser.c:4661 + msgid "expression in new-declarator must have integral or enumeration type" + msgstr "" + +-#: cp/parser.c:4805 ++#: cp/parser.c:4842 + msgid "use of old-style cast" + msgstr "" + +-#: cp/parser.c:5550 ++#: cp/parser.c:5587 + #, fuzzy, c-format + msgid "case label `%E' not within a switch statement" + msgstr "case-label niet in een switch-statement" + +-#: cp/parser.c:6092 ++#: cp/parser.c:6130 + #, fuzzy + msgid "ISO C++ forbids computed gotos" + msgstr "ANSI C verbiedt geneste functies" + +-#: cp/parser.c:6212 ++#: cp/parser.c:6250 + msgid "extra `;'" + msgstr "" + +-#: cp/parser.c:6507 ++#: cp/parser.c:6545 + msgid "mixing declarations and function-definitions is forbidden" + msgstr "" + +-#: cp/parser.c:6645 ++#: cp/parser.c:6683 + #, fuzzy + msgid "duplicate `friend'" + msgstr "herhaalde `%s'" + +-#: cp/parser.c:6794 ++#: cp/parser.c:6832 + #, fuzzy + msgid "class definition may not be declared a friend" + msgstr "`%s' mag niet als alleen-lezen gedeclareerd worden" + +-#: cp/parser.c:7109 ++#: cp/parser.c:7147 + msgid "only constructors take base initializers" + msgstr "" + +-#: cp/parser.c:7160 ++#: cp/parser.c:7198 + msgid "anachronistic old-style base class initializer" + msgstr "" + +-#: cp/parser.c:7201 ++#: cp/parser.c:7239 + msgid "keyword `typename' not allowed in this context (a qualified member initializer is implicitly a type)" + msgstr "" + + #. Warn that we do not support `export'. +-#: cp/parser.c:7563 ++#: cp/parser.c:7601 + msgid "keyword `export' not implemented, and will be ignored" + msgstr "" + + #. Otherwise, emit an error about the invalid digraph, but continue + #. parsing because we got our argument list. +-#: cp/parser.c:7923 ++#: cp/parser.c:7961 + #, fuzzy + msgid "`<::' cannot begin a template-argument list" + msgstr "`%s' is geen iterator" + +-#: cp/parser.c:7924 ++#: cp/parser.c:7962 + msgid "`<:' is an alternate spelling for `['. Insert whitespace between `<' and `::'" + msgstr "" + +-#: cp/parser.c:7931 ++#: cp/parser.c:7969 + msgid "(if you use `-fpermissive' G++ will accept your code)" + msgstr "" + + #. Explain what went wrong. +-#: cp/parser.c:8106 ++#: cp/parser.c:8145 + #, fuzzy + msgid "non-template `%D' used as template" + msgstr "parameter `%s' heeft enkel een voorwaartse declaratie" + +-#: cp/parser.c:8107 ++#: cp/parser.c:8146 + msgid "use `%T::template %D' to indicate that it is a template" + msgstr "" + +-#: cp/parser.c:9058 ++#: cp/parser.c:9102 + msgid "using `typename' outside of template" + msgstr "" + +-#: cp/parser.c:9180 ++#: cp/parser.c:9224 + #, fuzzy + msgid "expected type-name" + msgstr "ongeldige operand van %s" + +-#: cp/parser.c:9239 ++#: cp/parser.c:9283 + #, fuzzy + msgid "type attributes are honored only at type definition" + msgstr "het `%s' attribuut heeft enkel betekenis voor functies" +@@ -16529,91 +16579,91 @@ + #. [namespace.udecl] + #. + #. A using declaration shall not name a template-id. +-#: cp/parser.c:9622 ++#: cp/parser.c:9666 + #, fuzzy + msgid "a template-id may not appear in a using-declaration" + msgstr "`%s' staat niet aan het begin van een declaratie" + +-#: cp/parser.c:9949 ++#: cp/parser.c:9986 + msgid "an asm-specification is not allowed on a function-definition" + msgstr "" + +-#: cp/parser.c:9951 ++#: cp/parser.c:9988 + #, fuzzy + msgid "attributes are not allowed on a function-definition" + msgstr "globale registervariabele volgt op een functiedefinitie" + +-#: cp/parser.c:10084 ++#: cp/parser.c:10121 + #, fuzzy + msgid "attributes after parenthesized initializer ignored" + msgstr "attributen genegeerd in declarator van parameter-array" + +-#: cp/parser.c:10540 ++#: cp/parser.c:10591 + #, fuzzy + msgid "`%T::%D' is not a type" + msgstr "`%s' is geen iterator" + + # Is the %s the argument, or is it 'of' the argument? +-#: cp/parser.c:11288 ++#: cp/parser.c:11341 + #, fuzzy + msgid "file ends in default argument" + msgstr "ongeldig type-argument `%s'" + +-#: cp/parser.c:11344 ++#: cp/parser.c:11397 + #, fuzzy + msgid "deprecated use of default argument for parameter of non-function" + msgstr "argumenten aan macro `%s' gegeven" + +-#: cp/parser.c:11347 ++#: cp/parser.c:11400 + #, fuzzy + msgid "default arguments are only permitted for function parameters" + msgstr "argumenten aan macro `%s' gegeven" + +-#: cp/parser.c:12078 ++#: cp/parser.c:12166 + #, fuzzy + msgid "declaration of `%D' in `%D' which does not enclose `%D'" + msgstr "`%s' wordt gedeclareerd als een array van functies" + +-#: cp/parser.c:12091 ++#: cp/parser.c:12179 + msgid "extra qualification ignored" + msgstr "" + +-#: cp/parser.c:12102 ++#: cp/parser.c:12190 + #, fuzzy + msgid "an explicit specialization must be preceded by 'template <>'" + msgstr "impliciete declaratie van functie `%s'" + +-#: cp/parser.c:12385 ++#: cp/parser.c:12473 + msgid "extra semicolon" + msgstr "" + +-#: cp/parser.c:12403 ++#: cp/parser.c:12491 + msgid "a class-key must be used when declaring a friend" + msgstr "" + +-#: cp/parser.c:12434 ++#: cp/parser.c:12522 + #, fuzzy + msgid "friend declaration does not name a class or function" + msgstr "ingebouwde functie `%s' als niet-functie gedeclareerd" + +-#: cp/parser.c:12605 ++#: cp/parser.c:12694 + msgid "pure-specifier on function-definition" + msgstr "" + +-#: cp/parser.c:12878 ++#: cp/parser.c:12967 + msgid "keyword `typename' not allowed outside of templates" + msgstr "" + +-#: cp/parser.c:12880 ++#: cp/parser.c:12969 + msgid "keyword `typename' not allowed in this context (the base class is implicitly a type)" + msgstr "" + +-#: cp/parser.c:13700 ++#: cp/parser.c:13790 + #, fuzzy + msgid "reference to `%D' is ambiguous" + msgstr "grootte van `%s' is %u bytes" + +-#: cp/parser.c:13874 ++#: cp/parser.c:13964 + #, fuzzy + msgid "too few template-parameter-lists" + msgstr "twee of meer data types in de declaratie van `%s'" +@@ -16622,50 +16672,50 @@ + #. something like: + #. + #. template template void S::f(); +-#: cp/parser.c:13889 ++#: cp/parser.c:13979 + #, fuzzy + msgid "too many template-parameter-lists" + msgstr "meerdere opslagklassen in declaratie van `%s'" + + #. If begin_function_definition didn't like the definition, skip + #. the entire function. +-#: cp/parser.c:14185 ++#: cp/parser.c:14275 + #, fuzzy + msgid "invalid function declaration" + msgstr "lege declaratie" + + #. Issue an error message. +-#: cp/parser.c:14222 ++#: cp/parser.c:14312 + #, fuzzy + msgid "named return values are no longer supported" + msgstr "-pipe wordt niet ondersteund" + +-#: cp/parser.c:14561 ++#: cp/parser.c:14651 + msgid "`>>' should be `> >' within a nested template argument list" + msgstr "" + + #. If this is not a nested template argument list, the '>>' is + #. a typo for '>'. Emit an error message and continue. +-#: cp/parser.c:14569 ++#: cp/parser.c:14659 + msgid "spurious `>>', use `>' to terminate a template argument list" + msgstr "" + +-#: cp/parser.c:14574 ++#: cp/parser.c:14664 + #, fuzzy + msgid "missing `>' to terminate the template argument list" + msgstr "parameternaam ontbreekt uit parameterlijst" + +-#: cp/parser.c:15062 ++#: cp/parser.c:15149 + #, fuzzy + msgid "`%s' tag used in naming `%#T'" + msgstr "Ongeldige optie `%s'" + +-#: cp/parser.c:15082 ++#: cp/parser.c:15169 + #, fuzzy + msgid "%D redeclared with different access" + msgstr "`%s' als ander soort symbool geherdeclareerd" + +-#: cp/parser.c:15099 ++#: cp/parser.c:15186 + msgid "`template' (as a disambiguator) is only allowed within templates" + msgstr "" + +@@ -16686,88 +16736,93 @@ + msgid "enclosing class templates are not explicitly specialized" + msgstr "" + +-#: cp/pt.c:739 cp/pt.c:780 +-msgid "specializing `%#T' in different namespace" +-msgstr "" ++#: cp/pt.c:733 ++#, fuzzy ++msgid "specialization of `%D' in different namespace" ++msgstr "de declaratie van `%s' is `extern' en heeft een beginwaarde" + +-#: cp/pt.c:740 cp/pt.c:781 ++#: cp/pt.c:734 cp/pt.c:803 + #, fuzzy + msgid " from definition of `%#D'" + msgstr "herdefinitie van `%s'" + +-#: cp/pt.c:748 ++#: cp/pt.c:770 + #, fuzzy + msgid "specialization of `%T' after instantiation" + msgstr "de declaratie van `%s' is `extern' en heeft een beginwaarde" + +-#: cp/pt.c:795 ++#: cp/pt.c:802 ++msgid "specializing `%#T' in different namespace" ++msgstr "" ++ ++#: cp/pt.c:817 + #, fuzzy + msgid "specialization `%T' after instantiation `%T'" + msgstr "de declaratie van `%s' is `extern' en heeft een beginwaarde" + +-#: cp/pt.c:807 ++#: cp/pt.c:829 + #, fuzzy + msgid "explicit specialization of non-template `%T'" + msgstr "impliciete declaratie van functie `%s'" + +-#: cp/pt.c:1067 ++#: cp/pt.c:1089 + msgid "specialization of %D after instantiation" + msgstr "" + +-#: cp/pt.c:1192 ++#: cp/pt.c:1220 + msgid "%s %+#D" + msgstr "" + +-#: cp/pt.c:1241 ++#: cp/pt.c:1269 + #, fuzzy + msgid "`%D' is not a function template" + msgstr "`%s' is geen iterator" + +-#: cp/pt.c:1389 ++#: cp/pt.c:1417 + msgid "template-id `%D' for `%+D' does not match any template declaration" + msgstr "" + +-#: cp/pt.c:1397 ++#: cp/pt.c:1425 + msgid "ambiguous template specialization `%D' for `%+D'" + msgstr "" + + #. This case handles bogus declarations like template <> + #. template void f(); +-#: cp/pt.c:1620 cp/pt.c:1694 ++#: cp/pt.c:1648 cp/pt.c:1722 + msgid "template-id `%D' in declaration of primary template" + msgstr "" + +-#: cp/pt.c:1633 ++#: cp/pt.c:1661 + msgid "template parameter list used in explicit instantiation" + msgstr "" + +-#: cp/pt.c:1639 ++#: cp/pt.c:1667 + msgid "definition provided for explicit instantiation" + msgstr "" + +-#: cp/pt.c:1645 ++#: cp/pt.c:1673 + #, fuzzy + msgid "too many template parameter lists in declaration of `%D'" + msgstr "meerdere opslagklassen in declaratie van `%s'" + +-#: cp/pt.c:1661 ++#: cp/pt.c:1689 + #, fuzzy + msgid "too few template parameter lists in declaration of `%D'" + msgstr "twee of meer data types in de declaratie van `%s'" + +-#: cp/pt.c:1678 ++#: cp/pt.c:1706 + msgid "explicit specialization not preceded by `template <>'" + msgstr "" + +-#: cp/pt.c:1691 ++#: cp/pt.c:1719 + msgid "partial specialization `%D' of function template" + msgstr "" + +-#: cp/pt.c:1723 ++#: cp/pt.c:1751 + msgid "default argument specified in explicit specialization" + msgstr "" + +-#: cp/pt.c:1727 ++#: cp/pt.c:1755 + msgid "template specialization with C linkage" + msgstr "" + +@@ -16779,118 +16834,128 @@ + #. program is ill-formed. + #. + #. Similar language is found in [temp.explicit]. +-#: cp/pt.c:1811 ++#: cp/pt.c:1839 + #, fuzzy + msgid "specialization of implicitly-declared special member function" + msgstr "`%s' impliciet als functie gedeclareerd" + +-#: cp/pt.c:1855 ++#: cp/pt.c:1883 + #, fuzzy + msgid "no member function `%D' declared in `%T'" + msgstr "geneste functie `%s' is als `extern' gedeclareerd" + + #. There are two many template parameter lists. +-#: cp/pt.c:2005 ++#: cp/pt.c:2033 + #, fuzzy + msgid "too many template parameter lists in declaration of `%T'" + msgstr "meerdere opslagklassen in declaratie van `%s'" + +-#: cp/pt.c:2098 ++#: cp/pt.c:2126 + msgid " shadows template parm `%#D'" + msgstr "" + +-#: cp/pt.c:2495 ++#: cp/pt.c:2523 + msgid "template parameters not used in partial specialization:" + msgstr "" + +-#: cp/pt.c:2499 ++#: cp/pt.c:2527 + msgid " `%D'" + msgstr "" + +-#: cp/pt.c:2511 ++#: cp/pt.c:2539 + msgid "partial specialization `%T' does not specialize any template arguments" + msgstr "" + +-#: cp/pt.c:2536 ++#: cp/pt.c:2564 + #, c-format + msgid "template argument `%E' involves template parameter(s)" + msgstr "" + +-#: cp/pt.c:2580 ++#: cp/pt.c:2608 + msgid "type `%T' of template argument `%E' depends on template parameter(s)" + msgstr "" + + # Is the %s the argument, or is it 'of' the argument? +-#: cp/pt.c:2665 ++#: cp/pt.c:2693 + #, fuzzy + msgid "no default argument for `%D'" + msgstr "ongeldig type-argument `%s'" + +-#: cp/pt.c:2814 ++#: cp/pt.c:2842 + msgid "template with C linkage" + msgstr "" + +-#: cp/pt.c:2817 ++#: cp/pt.c:2845 + msgid "template class without a name" + msgstr "" + + #. [temp.mem] + #. + #. A destructor shall not be a member template. +-#: cp/pt.c:2824 ++#: cp/pt.c:2853 + #, fuzzy + msgid "destructor `%D' declared as member template" + msgstr "`%s %s' binnen parameterlijst gedeclareerd" + +-#: cp/pt.c:2904 ++#. [basic.stc.dynamic.allocation] ++#. ++#. An allocation function can be a function ++#. template. ... Template allocation functions shall ++#. have two or more parameters. ++#: cp/pt.c:2868 ++#, fuzzy ++msgid "invalid template declaration of `%D'" ++msgstr "herhaalde label-declaratie `%s'" ++ ++#: cp/pt.c:2948 + msgid "`%D' does not declare a template type" + msgstr "" + +-#: cp/pt.c:2910 ++#: cp/pt.c:2954 + #, fuzzy + msgid "template definition of non-template `%#D'" + msgstr "herdefinitie van `union %s'" + +-#: cp/pt.c:2951 ++#: cp/pt.c:2995 + msgid "expected %d levels of template parms for `%#D', got %d" + msgstr "" + +-#: cp/pt.c:2963 ++#: cp/pt.c:3007 + #, fuzzy + msgid "got %d template parameters for `%#D'" + msgstr "meerdere parameters hebben de naam `%s'" + +-#: cp/pt.c:2966 ++#: cp/pt.c:3010 + #, fuzzy + msgid "got %d template parameters for `%#T'" + msgstr "meerdere parameters hebben de naam `%s'" + +-#: cp/pt.c:2968 ++#: cp/pt.c:3012 + #, c-format + msgid " but %d required" + msgstr "" + +-#: cp/pt.c:3053 ++#: cp/pt.c:3097 + #, fuzzy + msgid "`%T' is not a template type" + msgstr "`%s' is geen iterator" + +-#: cp/pt.c:3069 ++#: cp/pt.c:3113 + #, fuzzy + msgid "previous declaration `%D'" + msgstr "eerdere declaratie van `%s'" + +-#: cp/pt.c:3070 ++#: cp/pt.c:3114 + #, fuzzy, c-format + msgid "used %d template parameter%s instead of %d" + msgstr "meerdere parameters hebben de naam `%s'" + +-#: cp/pt.c:3086 ++#: cp/pt.c:3130 + #, fuzzy + msgid "template parameter `%#D'" + msgstr "meerdere parameters hebben de naam `%s'" + +-#: cp/pt.c:3087 ++#: cp/pt.c:3131 + #, fuzzy + msgid "redeclared here as `%#D'" + msgstr "ongeldige naam `%s'" +@@ -16899,296 +16964,305 @@ + #. + #. A template-parameter may not be given default arguments + #. by two different declarations in the same scope. +-#: cp/pt.c:3097 ++#: cp/pt.c:3141 + #, fuzzy + msgid "redefinition of default argument for `%#D'" + msgstr "herdefinitie van `struct %s'" + +-#: cp/pt.c:3098 ++#: cp/pt.c:3142 + #, fuzzy + msgid "%J original definition appeared here" + msgstr "functie-definitie als `typdef' gedeclareerd" + +-#: cp/pt.c:3246 ++#: cp/pt.c:3288 + #, fuzzy, c-format + msgid "`%E' is not a valid template argument" + msgstr "`%s' is geen iterator" + +-#: cp/pt.c:3250 ++#: cp/pt.c:3292 + msgid "it must be the address of a function with external linkage" + msgstr "" + +-#: cp/pt.c:3252 ++#: cp/pt.c:3294 + msgid "it must be the address of an object with external linkage" + msgstr "" + +-#: cp/pt.c:3255 ++#: cp/pt.c:3297 + msgid "it must be a pointer-to-member of the form `&X::Y'" + msgstr "" + +-#: cp/pt.c:3266 ++#: cp/pt.c:3308 + #, c-format + msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage" + msgstr "" + +-#: cp/pt.c:3281 ++#: cp/pt.c:3323 + #, c-format + msgid "address of non-extern `%E' cannot be used as template argument" + msgstr "" + +-#: cp/pt.c:3290 ++#: cp/pt.c:3332 + #, c-format + msgid "non-constant `%E' cannot be used as template argument" + msgstr "" + +-#: cp/pt.c:3298 ++#: cp/pt.c:3340 + msgid "type '%T' cannot be used as a value for a non-type template-parameter" + msgstr "" + +-#: cp/pt.c:3301 ++#: cp/pt.c:3343 + msgid "invalid use of '%D' as a non-type template-argument" + msgstr "" + +-#: cp/pt.c:3303 ++#: cp/pt.c:3345 + #, c-format + msgid "invalid use of '%E' as a non-type template-argument" + msgstr "" + +-#: cp/pt.c:3668 ++#: cp/pt.c:3710 + #, c-format + msgid "to refer to a type member of a template parameter, use `typename %E'" + msgstr "" + +-#: cp/pt.c:3681 cp/pt.c:3699 cp/pt.c:3738 ++#: cp/pt.c:3723 cp/pt.c:3741 cp/pt.c:3780 + msgid "type/value mismatch at argument %d in template parameter list for `%D'" + msgstr "" + +-#: cp/pt.c:3684 ++#: cp/pt.c:3726 + msgid " expected a constant of type `%T', got `%T'" + msgstr "" + +-#: cp/pt.c:3688 ++#: cp/pt.c:3730 + #, c-format + msgid " expected a class template, got `%E'" + msgstr "" + +-#: cp/pt.c:3690 ++#: cp/pt.c:3732 + #, c-format + msgid " expected a type, got `%E'" + msgstr "" + +-#: cp/pt.c:3702 ++#: cp/pt.c:3744 + msgid " expected a type, got `%T'" + msgstr "" + +-#: cp/pt.c:3704 ++#: cp/pt.c:3746 + msgid " expected a class template, got `%T'" + msgstr "" + +-#: cp/pt.c:3740 ++#: cp/pt.c:3782 + msgid " expected a template of type `%D', got `%D'" + msgstr "" + +-#: cp/pt.c:3775 ++#: cp/pt.c:3817 + msgid "could not convert template argument `%E' to `%T'" + msgstr "" + +-#: cp/pt.c:3815 ++#: cp/pt.c:3857 + #, c-format + msgid "wrong number of template arguments (%d, should be %d)" + msgstr "" + +-#: cp/pt.c:3819 ++#: cp/pt.c:3861 + #, fuzzy + msgid "provided for `%D'" + msgstr "eerdere grant voor `%s'" + + # Ik weet het, 'alleen-lezen' is lelijk, maar het is de min of meer geijkte vertaling. +-#: cp/pt.c:3847 ++#: cp/pt.c:3889 + #, fuzzy, c-format + msgid "template argument %d is invalid" + msgstr "argument %d is alleen-lezen" + +-#: cp/pt.c:4068 ++#: cp/pt.c:4110 + msgid "non-template used as template" + msgstr "" + +-#: cp/pt.c:4208 ++#: cp/pt.c:4250 + msgid "non-template type `%T' used as a template" + msgstr "" + +-#: cp/pt.c:4210 ++#: cp/pt.c:4252 + #, fuzzy + msgid "for template declaration `%D'" + msgstr "lege declaratie" + +-#: cp/pt.c:4857 ++#: cp/pt.c:4899 + msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'" + msgstr "" + +-#: cp/pt.c:5296 ++#: cp/pt.c:5338 + msgid "ambiguous class template instantiation for `%#T'" + msgstr "" + +-#: cp/pt.c:5302 ++#: cp/pt.c:5344 + msgid "%s %+#T" + msgstr "" + +-#: cp/pt.c:6308 cp/pt.c:6428 ++#: cp/pt.c:6382 + msgid "instantiation of `%D' as type `%T'" + msgstr "" + +-#: cp/pt.c:6470 ++#: cp/pt.c:6542 + #, fuzzy + msgid "invalid parameter type `%T'" + msgstr "ongeldige operand voor %p-code" + +-#: cp/pt.c:6472 ++#: cp/pt.c:6544 + #, fuzzy + msgid "in declaration `%D'" + msgstr "herdeclaratie van `%s'" + +-#: cp/pt.c:6546 ++#: cp/pt.c:6618 + msgid "creating pointer to member function of non-class type `%T'" + msgstr "" + +-#: cp/pt.c:6685 ++#: cp/pt.c:6758 + msgid "creating array with size zero" + msgstr "" + +-#: cp/pt.c:6699 ++#: cp/pt.c:6772 + #, c-format + msgid "creating array with size zero (`%E')" + msgstr "" + +-#: cp/pt.c:6938 ++#: cp/pt.c:7011 + msgid "forming reference to void" + msgstr "" + +-#: cp/pt.c:6940 ++#: cp/pt.c:7013 + msgid "forming %s to reference type `%T'" + msgstr "" + +-#: cp/pt.c:6977 ++#: cp/pt.c:7050 + msgid "creating pointer to member of non-class type `%T'" + msgstr "" + +-#: cp/pt.c:6983 ++#: cp/pt.c:7056 + msgid "creating pointer to member reference type `%T'" + msgstr "" + +-#: cp/pt.c:7069 ++#: cp/pt.c:7142 + #, fuzzy + msgid "creating array of `%T'" + msgstr "doorgeven van argument %d van `%s'" + +-#: cp/pt.c:7075 ++#: cp/pt.c:7148 + msgid "creating array of `%T', which is an abstract class type" + msgstr "" + +-#: cp/pt.c:7119 ++#: cp/pt.c:7192 + #, fuzzy + msgid "`%T' is not a class, struct, or union type" + msgstr "`%s' is geen bestand, pipe of tty" + +-#: cp/pt.c:7232 ++#: cp/pt.c:7305 + #, c-format + msgid "use of `%s' in template" + msgstr "" + +-#: cp/pt.c:7345 ++#: cp/pt.c:7418 + #, c-format + msgid "dependent-name `%E' is parsed as a non-type, but instantiation yields a type" + msgstr "" + +-#: cp/pt.c:7347 ++#: cp/pt.c:7420 + #, c-format + msgid "say `typename %E' if a type is meant" + msgstr "" + +-#: cp/pt.c:8613 ++#: cp/pt.c:8589 ++msgid "`%T' is not a class or namespace" ++msgstr "" ++ ++#: cp/pt.c:8592 ++#, fuzzy ++msgid "`%D' is not a class or namespace" ++msgstr "`%s' is geen iterator" ++ ++#: cp/pt.c:8709 + #, fuzzy + msgid "`%T' uses anonymous type" + msgstr "`%s' is smaller dan waarden van zijn type" + +-#: cp/pt.c:8615 ++#: cp/pt.c:8711 + #, fuzzy + msgid "`%T' uses local type `%T'" + msgstr "`%c' optie gebruikt bij type `%c'" + + # Ik weet het, 'alleen-lezen' is lelijk, maar het is de min of meer geijkte vertaling. +-#: cp/pt.c:8623 ++#: cp/pt.c:8719 + #, fuzzy + msgid "`%T' is a variably modified type" + msgstr "argument %d is alleen-lezen" + +-#: cp/pt.c:8634 ++#: cp/pt.c:8730 + #, fuzzy, c-format + msgid "integral expression `%E' is not constant" + msgstr "opslaggrootte van `%s' is niet constant" + +-#: cp/pt.c:8639 ++#: cp/pt.c:8735 + msgid " trying to instantiate `%D'" + msgstr "" + +-#: cp/pt.c:9156 ++#: cp/pt.c:9252 + msgid "incomplete type unification" + msgstr "" + +-#: cp/pt.c:10112 ++#: cp/pt.c:10211 + #, c-format + msgid "use of `%s' in template type unification" + msgstr "" + +-#: cp/pt.c:10546 cp/pt.c:10618 ++#: cp/pt.c:10644 cp/pt.c:10716 + msgid "explicit instantiation of non-template `%#D'" + msgstr "" + +-#: cp/pt.c:10562 cp/pt.c:10613 ++#: cp/pt.c:10660 cp/pt.c:10711 + msgid "no matching template for `%D' found" + msgstr "" + +-#: cp/pt.c:10568 ++#: cp/pt.c:10666 + #, fuzzy + msgid "explicit instantiation of `%#D'" + msgstr "eerdere impliciete declaratie van `%s'" + +-#: cp/pt.c:10605 ++#: cp/pt.c:10703 + #, fuzzy + msgid "duplicate explicit instantiation of `%#D'" + msgstr "herhaalde definitie `%s'" + +-#: cp/pt.c:10627 ++#: cp/pt.c:10725 + msgid "ISO C++ forbids the use of `extern' on explicit instantiations" + msgstr "" + +-#: cp/pt.c:10631 cp/pt.c:10712 ++#: cp/pt.c:10729 cp/pt.c:10810 + msgid "storage class `%D' applied to template instantiation" + msgstr "" + +-#: cp/pt.c:10684 ++#: cp/pt.c:10782 + msgid "explicit instantiation of non-template type `%T'" + msgstr "" + +-#: cp/pt.c:10693 ++#: cp/pt.c:10791 + msgid "explicit instantiation of `%#T' before definition of template" + msgstr "" + +-#: cp/pt.c:10701 ++#: cp/pt.c:10799 + #, c-format + msgid "ISO C++ forbids the use of `%s' on explicit instantiations" + msgstr "" + +-#: cp/pt.c:10745 ++#: cp/pt.c:10843 + #, fuzzy + msgid "duplicate explicit instantiation of `%#T'" + msgstr "herhaalde definitie `%s'" + +-#: cp/pt.c:11126 ++#: cp/pt.c:11224 + msgid "explicit instantiation of `%D' but no definition available" + msgstr "" + +-#: cp/pt.c:11562 ++#: cp/pt.c:11660 + msgid "`%#T' is not a valid type for a template constant parameter" + msgstr "" + +@@ -17234,42 +17308,42 @@ + msgid "`%T' is an inaccessible base of `%T'" + msgstr "" + +-#: cp/search.c:1767 ++#: cp/search.c:1805 + #, fuzzy + msgid "invalid covariant return type for `%#D'" + msgstr "ongeldige registernaam voor `%s'" + +-#: cp/search.c:1768 cp/search.c:1774 ++#: cp/search.c:1806 cp/search.c:1812 + msgid " overriding `%#D'" + msgstr "" + +-#: cp/search.c:1772 ++#: cp/search.c:1810 + #, fuzzy + msgid "conflicting return type specified for `%#D'" + msgstr "conflicterende types voor `%s'" + +-#: cp/search.c:1786 ++#: cp/search.c:1824 + #, fuzzy, c-format + msgid "looser throw specifier for `%#F'" + msgstr "'long' of 'short' opgegeven bij 'char' voor `%s'" + +-#: cp/search.c:1787 ++#: cp/search.c:1825 + #, c-format + msgid " overriding `%#F'" + msgstr "" + + #. A static member function cannot match an inherited + #. virtual member function. +-#: cp/search.c:1877 ++#: cp/search.c:1915 + #, fuzzy + msgid "`%#D' cannot be declared" + msgstr "`%.*s' is niet gedefinieerd" + +-#: cp/search.c:1878 ++#: cp/search.c:1916 + msgid " since `%#D' declared in base class" + msgstr "" + +-#: cp/search.c:1955 ++#: cp/search.c:1993 + msgid "`%#D' needs a final overrider" + msgstr "" + +@@ -17292,126 +17366,126 @@ + msgid "object missing in reference to `%D'" + msgstr "array-grootte ontbreekt in `%s'" + +-#: cp/semantics.c:1721 ++#: cp/semantics.c:1718 + #, fuzzy + msgid "arguments to destructor are not allowed" + msgstr "kan het `%s' attribuut niet instellen na een definitie" + +-#: cp/semantics.c:1770 ++#: cp/semantics.c:1767 + msgid "`this' is unavailable for static member functions" + msgstr "`this' is niet beschikbaar in static member-funties" + +-#: cp/semantics.c:1776 ++#: cp/semantics.c:1773 + msgid "invalid use of `this' in non-member function" + msgstr "" + +-#: cp/semantics.c:1778 ++#: cp/semantics.c:1775 + msgid "invalid use of `this' at top level" + msgstr "ongeldig gebruik van `this' op hoogste niveau" + +-#: cp/semantics.c:1802 ++#: cp/semantics.c:1799 + #, fuzzy + msgid "invalid qualifying scope in pseudo-destructor name" + msgstr "%s laat qualifiers van doeltype van pointer vallen" + +-#: cp/semantics.c:1822 ++#: cp/semantics.c:1819 + #, fuzzy + msgid "`%E' is not of type `%T'" + msgstr "`%c' optie gebruikt bij type `%c'" + +-#: cp/semantics.c:1933 ++#: cp/semantics.c:1930 + msgid "template type parameters must use the keyword `class' or `typename'" + msgstr "" + +-#: cp/semantics.c:1977 ++#: cp/semantics.c:1974 + msgid "invalid use of type `%T' as a default value for a template template-parameter" + msgstr "" + +-#: cp/semantics.c:1980 ++#: cp/semantics.c:1977 + msgid "invalid use of `%D' as a default value for a template template-parameter" + msgstr "" + +-#: cp/semantics.c:1984 ++#: cp/semantics.c:1981 + msgid "invalid default argument for a template template parameter" + msgstr "" + +-#: cp/semantics.c:2019 ++#: cp/semantics.c:2016 + #, fuzzy + msgid "definition of `%#T' inside template parameter list" + msgstr "de declaratie van `%s' verbergt een symbool uit de parameterlijst" + +-#: cp/semantics.c:2030 ++#: cp/semantics.c:2027 + #, fuzzy + msgid "invalid definition of qualified type `%T'" + msgstr "ongeldig gebruik van het niet gedefinieerde type `%s %s'" + +-#: cp/semantics.c:2045 ++#: cp/semantics.c:2042 + #, fuzzy + msgid "previous definition of `%#T'" + msgstr "eerdere definitie van `%s'" + +-#: cp/semantics.c:2249 ++#: cp/semantics.c:2246 + #, fuzzy + msgid "invalid base-class specification" + msgstr "ongeldige linker operand van %s" + +-#: cp/semantics.c:2258 ++#: cp/semantics.c:2255 + msgid "base class `%T' has cv qualifiers" + msgstr "" + +-#: cp/semantics.c:2290 ++#: cp/semantics.c:2287 + #, fuzzy + msgid "multiple declarators in template declaration" + msgstr "meerdere opslagklassen in declaratie van `%s'" + +-#: cp/semantics.c:2301 ++#: cp/semantics.c:2298 + msgid "incomplete type `%T' used in nested name specifier" + msgstr "" + +-#: cp/semantics.c:2303 cp/typeck.c:1635 ++#: cp/semantics.c:2300 cp/typeck.c:1635 + #, fuzzy + msgid "`%D' is not a member of `%T'" + msgstr "`%s' is geen bestand, pipe of tty" + +-#: cp/semantics.c:2306 ++#: cp/semantics.c:2303 + #, fuzzy + msgid "`%D' is not a member of `%D'" + msgstr "`%s' is geen bestand, pipe of tty" + +-#: cp/semantics.c:2431 ++#: cp/semantics.c:2428 + msgid "template parameter `%D' of type `%T' is not allowed in an integral constant expression because it is not of integral or enumeration type" + msgstr "" + +-#: cp/semantics.c:2584 ++#: cp/semantics.c:2572 + #, fuzzy + msgid "`%D' cannot appear in a constant-expression" + msgstr "grootte van array `%s' is van een niet-integraal type" + +-#: cp/semantics.c:2593 ++#: cp/semantics.c:2580 + #, fuzzy + msgid "use of namespace `%D' as expression" + msgstr "modi in %s expressie komen niet overeen" + +-#: cp/semantics.c:2598 ++#: cp/semantics.c:2585 + msgid "use of class template `%T' as expression" + msgstr "" + + #. Ambiguous reference to base members. +-#: cp/semantics.c:2604 ++#: cp/semantics.c:2591 + msgid "request for member `%D' is ambiguous in multiple inheritance lattice" + msgstr "" + +-#: cp/semantics.c:2664 ++#: cp/semantics.c:2652 + #, c-format + msgid "use of %s from containing function" + msgstr "" + +-#: cp/semantics.c:2667 ++#: cp/semantics.c:2655 + #, fuzzy + msgid " `%#D' declared here" + msgstr "`%s' tevoren hier gedeclareerd" + +-#: cp/semantics.c:2718 ++#: cp/semantics.c:2706 + #, fuzzy, c-format + msgid "type of `%E' is unknown" + msgstr "opslaggrootte van `%s' is onbekend" +@@ -17425,44 +17499,44 @@ + msgid "`%V' qualifiers cannot be applied to `%T'" + msgstr "" + +-#: cp/tree.c:1821 ++#: cp/tree.c:1829 + #, fuzzy, c-format + msgid "`%s' attribute can only be applied to Java class definitions" + msgstr "het `%s' attribuut heeft enkel betekenis voor functies" + +-#: cp/tree.c:1850 ++#: cp/tree.c:1858 + #, fuzzy, c-format + msgid "`%s' attribute can only be applied to class definitions" + msgstr "het `%s' attribuut heeft enkel betekenis voor functies" + +-#: cp/tree.c:1856 ++#: cp/tree.c:1864 + #, c-format + msgid "`%s' is obsolete; g++ vtables are now COM-compatible by default" + msgstr "" + +-#: cp/tree.c:1880 ++#: cp/tree.c:1888 + msgid "requested init_priority is not an integer constant" + msgstr "" + +-#: cp/tree.c:1901 ++#: cp/tree.c:1909 + #, c-format + msgid "can only use `%s' attribute on file-scope definitions of objects of class type" + msgstr "" + +-#: cp/tree.c:1909 ++#: cp/tree.c:1917 + msgid "requested init_priority is out of range" + msgstr "" + +-#: cp/tree.c:1919 ++#: cp/tree.c:1927 + msgid "requested init_priority is reserved for internal use" + msgstr "" + +-#: cp/tree.c:1929 ++#: cp/tree.c:1937 + #, fuzzy, c-format + msgid "`%s' attribute is not supported on this platform" + msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem" + +-#: cp/tree.c:2524 ++#: cp/tree.c:2534 + #, c-format + msgid "lang_* check: failed in %s, at %s:%d" + msgstr "" +@@ -17700,285 +17774,285 @@ + msgid "invalid use of a pointer to an incomplete type in pointer arithmetic" + msgstr "rekensom met pointer naar onvolledig type" + +-#: cp/typeck.c:3582 ++#: cp/typeck.c:3600 + #, c-format + msgid "invalid use of '%E' to form a pointer-to-member-function. Use a qualified-id." + msgstr "" + +-#: cp/typeck.c:3588 ++#: cp/typeck.c:3606 + #, c-format + msgid "parenthesis around '%E' cannot be used to form a pointer-to-member-function" + msgstr "" + +-#: cp/typeck.c:3610 ++#: cp/typeck.c:3628 + msgid "taking address of temporary" + msgstr "" + +-#: cp/typeck.c:3845 ++#: cp/typeck.c:3863 + #, fuzzy, c-format + msgid "ISO C++ forbids %sing an enum" + msgstr "ANSI C verbiedt case-bereiken" + +-#: cp/typeck.c:3856 ++#: cp/typeck.c:3874 + #, fuzzy + msgid "cannot %s a pointer to incomplete type `%T'" + msgstr "parameter `%s' wijst naar een onvolledig type" + +-#: cp/typeck.c:3862 ++#: cp/typeck.c:3880 + #, fuzzy + msgid "ISO C++ forbids %sing a pointer of type `%T'" + msgstr "ANSI C verbiedt het casten van een niet-scalair naar hetzelfde type" + +-#: cp/typeck.c:3887 ++#: cp/typeck.c:3905 + msgid "cast to non-reference type used as lvalue" + msgstr "" + +-#: cp/typeck.c:3921 ++#: cp/typeck.c:3939 + #, fuzzy + msgid "invalid use of `--' on bool variable `%D'" + msgstr "ongeldig gebruik van array die geen lvalue is" + + #. ARM $3.4 +-#: cp/typeck.c:3952 ++#: cp/typeck.c:3970 + #, fuzzy + msgid "ISO C++ forbids taking address of function `::main'" + msgstr "ANSI C verbiedt het adres van een gecaste expressie" + + #. An expression like &memfn. +-#: cp/typeck.c:4027 ++#: cp/typeck.c:4045 + msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function. Say `&%T::%D'" + msgstr "" + +-#: cp/typeck.c:4032 ++#: cp/typeck.c:4050 + msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say `&%T::%D'" + msgstr "" + +-#: cp/typeck.c:4060 ++#: cp/typeck.c:4078 + #, fuzzy + msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression" + msgstr "ANSI C verbiedt het adres van een gecaste expressie" + +-#: cp/typeck.c:4080 ++#: cp/typeck.c:4098 + msgid "unary `&'" + msgstr "" + +-#: cp/typeck.c:4113 ++#: cp/typeck.c:4131 + #, fuzzy + msgid "attempt to take address of bit-field structure member `%D'" + msgstr "poging om het adres te nemen van lid `%s' van een bitveld-structure" + +-#: cp/typeck.c:4227 ++#: cp/typeck.c:4245 + msgid "taking address of destructor" + msgstr "" + +-#: cp/typeck.c:4240 ++#: cp/typeck.c:4258 + #, fuzzy + msgid "taking address of bound pointer-to-member expression" + msgstr "ongeldig gebruik van een void-expressie" + +-#: cp/typeck.c:4248 ++#: cp/typeck.c:4266 + msgid "cannot create pointer to reference member `%D'" + msgstr "" + +-#: cp/typeck.c:4311 ++#: cp/typeck.c:4329 + msgid "cannot take the address of `this', which is an rvalue expression" + msgstr "" + +-#: cp/typeck.c:4330 ++#: cp/typeck.c:4348 + msgid "address requested for `%D', which is declared `register'" + msgstr "" + + # vertaling voor 'statement'? +-#: cp/typeck.c:4398 ++#: cp/typeck.c:4416 + #, fuzzy, c-format + msgid "%s expression list treated as compound expression" + msgstr "expressie-statement heeft onvolledig type" + +-#: cp/typeck.c:4472 ++#: cp/typeck.c:4490 + msgid "%s from type `%T' to type `%T' casts away constness" + msgstr "" + +-#: cp/typeck.c:4674 ++#: cp/typeck.c:4692 + msgid "invalid static_cast from type `%T' to type `%T'" + msgstr "" + +-#: cp/typeck.c:4714 ++#: cp/typeck.c:4732 + msgid "invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'" + msgstr "" + +-#: cp/typeck.c:4734 ++#: cp/typeck.c:4752 + msgid "reinterpret_cast from `%T' to `%T' loses precision" + msgstr "" + +-#: cp/typeck.c:4753 ++#: cp/typeck.c:4771 + #, fuzzy + msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object" + msgstr "ANSI C verbiedt voorwaardelijke expressies tussen 0 en een functiepointer" + +-#: cp/typeck.c:4759 ++#: cp/typeck.c:4777 + msgid "invalid reinterpret_cast from type `%T' to type `%T'" + msgstr "" + +-#: cp/typeck.c:4787 ++#: cp/typeck.c:4805 + msgid "invalid use of const_cast with type `%T', which is not a pointer, reference, nor a pointer-to-data-member type" + msgstr "" + +-#: cp/typeck.c:4790 ++#: cp/typeck.c:4808 + msgid "invalid use of const_cast with type `%T', which is a pointer or reference to a function type" + msgstr "" + +-#: cp/typeck.c:4813 ++#: cp/typeck.c:4831 + msgid "invalid const_cast of an rvalue of type `%T' to type `%T'" + msgstr "" + +-#: cp/typeck.c:4830 ++#: cp/typeck.c:4848 + msgid "invalid const_cast from type `%T' to type `%T'" + msgstr "" + +-#: cp/typeck.c:4870 cp/typeck.c:4875 ++#: cp/typeck.c:4888 cp/typeck.c:4893 + #, fuzzy + msgid "ISO C++ forbids casting to an array type `%T'" + msgstr "ANSI C verbiedt casts naar een union-type" + +-#: cp/typeck.c:4883 ++#: cp/typeck.c:4901 + #, fuzzy + msgid "invalid cast to function type `%T'" + msgstr "ongeldige opslagklasse voor functie `%s'" + +-#: cp/typeck.c:4939 ++#: cp/typeck.c:4957 + #, fuzzy + msgid "cast from `%T' to `%T' discards qualifiers from pointer target type" + msgstr "cast laat qualifiers van doeltype van pointer vallen" + +-#: cp/typeck.c:4985 ++#: cp/typeck.c:5003 + #, fuzzy + msgid "cast from `%T' to `%T' increases required alignment of target type" + msgstr "cast verhoogt het benodigde alignment van het doeltype" + +-#: cp/typeck.c:5152 ++#: cp/typeck.c:5170 + msgid " in evaluation of `%Q(%#T, %#T)'" + msgstr "" + +-#: cp/typeck.c:5194 ++#: cp/typeck.c:5212 + #, fuzzy + msgid "ISO C++ forbids cast to non-reference type used as lvalue" + msgstr "ANSI C verbiedt casts naar een union-type" + +-#: cp/typeck.c:5267 ++#: cp/typeck.c:5285 + #, fuzzy + msgid "incompatible types in assignment of `%T' to `%T'" + msgstr "incompatibel type voor argument %d van `%s'" + +-#: cp/typeck.c:5274 ++#: cp/typeck.c:5292 + #, fuzzy + msgid "ISO C++ forbids assignment of arrays" + msgstr "ANSI C verbiedt array `%s' met lengte 0" + +-#: cp/typeck.c:5374 ++#: cp/typeck.c:5392 + msgid " in pointer to member function conversion" + msgstr "" + +-#: cp/typeck.c:5382 ++#: cp/typeck.c:5400 + msgid " in pointer to member conversion" + msgstr "" + + #. This is a reinterpret cast, we choose to do nothing. +-#: cp/typeck.c:5392 cp/typeck.c:5407 ++#: cp/typeck.c:5410 cp/typeck.c:5425 + #, fuzzy + msgid "pointer to member cast via virtual base `%T'" + msgstr "pointer naar een lid gebruikt in rekensom" + +-#: cp/typeck.c:5410 ++#: cp/typeck.c:5428 + #, fuzzy + msgid "pointer to member conversion via virtual base `%T'" + msgstr "pointer naar lid-functie gebruikt in rekensom" + +-#: cp/typeck.c:5480 ++#: cp/typeck.c:5498 + msgid "invalid conversion to type `%T' from type `%T'" + msgstr "" + +-#: cp/typeck.c:5636 ++#: cp/typeck.c:5657 + msgid "passing NULL used for non-pointer %s %P of `%D'" + msgstr "" + +-#: cp/typeck.c:5639 ++#: cp/typeck.c:5660 + msgid "%s to non-pointer type `%T' from NULL" + msgstr "" + +-#: cp/typeck.c:5647 ++#: cp/typeck.c:5668 + #, fuzzy + msgid "passing `%T' for %s %P of `%D'" + msgstr "doorgeven van argument %d van `%s'" + +-#: cp/typeck.c:5650 ++#: cp/typeck.c:5671 + msgid "%s to `%T' from `%T'" + msgstr "" + +-#: cp/typeck.c:5660 ++#: cp/typeck.c:5681 + msgid "passing negative value `%E' for %s %P of `%D'" + msgstr "" + +-#: cp/typeck.c:5663 ++#: cp/typeck.c:5684 + msgid "%s of negative value `%E' to `%T'" + msgstr "" + +-#: cp/typeck.c:5751 ++#: cp/typeck.c:5772 + msgid "cannot convert `%T' to `%T' for argument `%P' to `%D'" + msgstr "" + +-#: cp/typeck.c:5754 ++#: cp/typeck.c:5775 + msgid "cannot convert `%T' to `%T' in %s" + msgstr "" + +-#: cp/typeck.c:5831 cp/typeck.c:5833 ++#: cp/typeck.c:5852 cp/typeck.c:5854 + #, fuzzy + msgid "in passing argument %P of `%+D'" + msgstr "doorgeven van argument %d van `%s'" + +-#: cp/typeck.c:5940 ++#: cp/typeck.c:5961 + msgid "returning reference to temporary" + msgstr "" + +-#: cp/typeck.c:5947 ++#: cp/typeck.c:5968 + msgid "reference to non-lvalue returned" + msgstr "" + +-#: cp/typeck.c:5959 ++#: cp/typeck.c:5980 + #, fuzzy + msgid "reference to local variable `%D' returned" + msgstr "adres van globale registervariabele `%s' gevraagd" + +-#: cp/typeck.c:5962 ++#: cp/typeck.c:5983 + #, fuzzy + msgid "address of local variable `%D' returned" + msgstr "adres van globale registervariabele `%s' gevraagd" + +-#: cp/typeck.c:5992 ++#: cp/typeck.c:6013 + msgid "returning a value from a destructor" + msgstr "" + + #. If a return statement appears in a handler of the + #. function-try-block of a constructor, the program is ill-formed. +-#: cp/typeck.c:6000 ++#: cp/typeck.c:6021 + msgid "cannot return from a handler of a function-try-block of a constructor" + msgstr "" + + #. You can't return a value from a constructor. +-#: cp/typeck.c:6003 ++#: cp/typeck.c:6024 + msgid "returning a value from a constructor" + msgstr "" + +-#: cp/typeck.c:6026 ++#: cp/typeck.c:6047 + #, fuzzy + msgid "return-statement with no value, in function returning '%T'" + msgstr "`return' zonder waarde in een functie die een niet-void waarde teruggeeft" + +-#: cp/typeck.c:6043 ++#: cp/typeck.c:6064 + #, fuzzy + msgid "return-statement with a value, in function returning 'void'" + msgstr "`return' met waarde in een functie die void teruggeeft" + +-#: cp/typeck.c:6065 ++#: cp/typeck.c:6086 + msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)" + msgstr "" + +@@ -18033,135 +18107,135 @@ + msgid "cannot initialize arrays using this syntax" + msgstr "" + +-#: cp/typeck2.c:545 ++#: cp/typeck2.c:535 + msgid "initializing array with parameter list" + msgstr "" + +-#: cp/typeck2.c:600 ++#: cp/typeck2.c:590 + msgid "initializer for scalar variable requires one element" + msgstr "" + +-#: cp/typeck2.c:607 ++#: cp/typeck2.c:597 + #, fuzzy + msgid "braces around scalar initializer for `%T'" + msgstr "accolades rond scalaire beginwaarde" + +-#: cp/typeck2.c:610 ++#: cp/typeck2.c:600 + #, fuzzy + msgid "ignoring extra initializers for `%T'" + msgstr "niet-constante beginwaarde voor `%s'" + +-#: cp/typeck2.c:622 ++#: cp/typeck2.c:612 + #, fuzzy + msgid "variable-sized object of type `%T' may not be initialized" + msgstr "object van variabele lengte mag geen beginwaarde krijgen" + +-#: cp/typeck2.c:632 ++#: cp/typeck2.c:622 + msgid "subobject of type `%T' must be initialized by constructor, not by `%E'" + msgstr "" + +-#: cp/typeck2.c:697 ++#: cp/typeck2.c:687 + msgid "aggregate has a partly bracketed initializer" + msgstr "" + +-#: cp/typeck2.c:735 cp/typeck2.c:840 ++#: cp/typeck2.c:725 cp/typeck2.c:830 + msgid "non-trivial labeled initializers" + msgstr "" + +-#: cp/typeck2.c:752 ++#: cp/typeck2.c:742 + msgid "non-empty initializer for array of empty elements" + msgstr "" + +-#: cp/typeck2.c:806 ++#: cp/typeck2.c:796 + msgid "initializer list for object of class with virtual base classes" + msgstr "" + +-#: cp/typeck2.c:812 ++#: cp/typeck2.c:802 + msgid "initializer list for object of class with base classes" + msgstr "" + +-#: cp/typeck2.c:818 ++#: cp/typeck2.c:808 + msgid "initializer list for object using virtual functions" + msgstr "" + +-#: cp/typeck2.c:880 cp/typeck2.c:896 ++#: cp/typeck2.c:870 cp/typeck2.c:886 + #, fuzzy + msgid "missing initializer for member `%D'" + msgstr "ongeldige beginwaarde voor member `%s'" + +-#: cp/typeck2.c:885 ++#: cp/typeck2.c:875 + #, fuzzy + msgid "uninitialized const member `%D'" + msgstr "ongeldige beginwaarde voor member `%s'" + +-#: cp/typeck2.c:887 ++#: cp/typeck2.c:877 + #, fuzzy + msgid "member `%D' with uninitialized const fields" + msgstr "parameter `%s' krijgt beginwaarde" + +-#: cp/typeck2.c:890 ++#: cp/typeck2.c:880 + #, fuzzy + msgid "member `%D' is uninitialized reference" + msgstr "parameter `%s' krijgt beginwaarde" + +-#: cp/typeck2.c:937 ++#: cp/typeck2.c:927 + msgid "index value instead of field name in union initializer" + msgstr "" + +-#: cp/typeck2.c:949 ++#: cp/typeck2.c:939 + #, fuzzy + msgid "no field `%D' in union being initialized" + msgstr "onbekend veld `%s' opgegeven in beginwaarde" + +-#: cp/typeck2.c:957 ++#: cp/typeck2.c:947 + msgid "union `%T' with no named members cannot be initialized" + msgstr "" + +-#: cp/typeck2.c:993 ++#: cp/typeck2.c:983 + msgid "excess elements in aggregate initializer" + msgstr "" + +-#: cp/typeck2.c:1102 ++#: cp/typeck2.c:1092 + msgid "circular pointer delegation detected" + msgstr "" + +-#: cp/typeck2.c:1115 ++#: cp/typeck2.c:1105 + #, fuzzy + msgid "base operand of `->' has non-pointer type `%T'" + msgstr "grootte van array `%s' is van een niet-integraal type" + +-#: cp/typeck2.c:1139 ++#: cp/typeck2.c:1129 + msgid "result of `operator->()' yields non-pointer result" + msgstr "" + +-#: cp/typeck2.c:1141 ++#: cp/typeck2.c:1131 + msgid "base operand of `->' is not a pointer" + msgstr "" + +-#: cp/typeck2.c:1164 ++#: cp/typeck2.c:1154 + msgid "`%E' cannot be used as a member pointer, since it is of type `%T'" + msgstr "" + +-#: cp/typeck2.c:1172 ++#: cp/typeck2.c:1162 + msgid "cannot apply member pointer `%E' to `%E', which is of non-aggregate type `%T'" + msgstr "" + +-#: cp/typeck2.c:1182 ++#: cp/typeck2.c:1172 + msgid "member type `%T::' incompatible with object type `%T'" + msgstr "" + +-#: cp/typeck2.c:1398 ++#: cp/typeck2.c:1388 + #, fuzzy + msgid "call to function `%D' which throws incomplete type `%#T'" + msgstr "parameter `%s' wijst naar een onvolledig type" + +-#: cp/typeck2.c:1401 ++#: cp/typeck2.c:1391 + #, fuzzy + msgid "call to function which throws incomplete type `%#T'" + msgstr "parameter `%s' wijst naar een onvolledig type" + + #. XXX Not i18n clean. +-#: cp/cp-tree.h:3756 ++#: cp/cp-tree.h:3775 + #, c-format + msgid "%s is deprecated, please see the documentation for details" + msgstr "" +@@ -19730,340 +19804,277 @@ + msgid "internal error - invalid Utf8 name" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse-scan.y:880 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:949 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1290 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1351 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1555 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1777 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1786 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1797 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1808 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1820 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1835 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1852 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1854 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1935 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2106 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2168 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2320 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2332 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2339 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2346 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2357 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2359 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2397 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2399 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2401 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2422 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2424 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2426 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2442 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2444 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2465 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2467 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2469 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2497 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2499 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2501 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2503 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2521 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2523 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2534 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2545 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2556 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2567 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2578 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2591 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2595 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2597 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2610 ++#: ../../gcc/java/parse-scan.y:880 ../../gcc/java/parse.y:949 ++#: ../../gcc/java/parse.y:1290 ../../gcc/java/parse.y:1351 ++#: ../../gcc/java/parse.y:1555 ../../gcc/java/parse.y:1777 ++#: ../../gcc/java/parse.y:1786 ../../gcc/java/parse.y:1797 ++#: ../../gcc/java/parse.y:1808 ../../gcc/java/parse.y:1820 ++#: ../../gcc/java/parse.y:1835 ../../gcc/java/parse.y:1852 ++#: ../../gcc/java/parse.y:1854 ../../gcc/java/parse.y:1935 ++#: ../../gcc/java/parse.y:2106 ../../gcc/java/parse.y:2168 ++#: ../../gcc/java/parse.y:2320 ../../gcc/java/parse.y:2332 ++#: ../../gcc/java/parse.y:2339 ../../gcc/java/parse.y:2346 ++#: ../../gcc/java/parse.y:2357 ../../gcc/java/parse.y:2359 ++#: ../../gcc/java/parse.y:2397 ../../gcc/java/parse.y:2399 ++#: ../../gcc/java/parse.y:2401 ../../gcc/java/parse.y:2422 ++#: ../../gcc/java/parse.y:2424 ../../gcc/java/parse.y:2426 ++#: ../../gcc/java/parse.y:2442 ../../gcc/java/parse.y:2444 ++#: ../../gcc/java/parse.y:2465 ../../gcc/java/parse.y:2467 ++#: ../../gcc/java/parse.y:2469 ../../gcc/java/parse.y:2497 ++#: ../../gcc/java/parse.y:2499 ../../gcc/java/parse.y:2501 ++#: ../../gcc/java/parse.y:2503 ../../gcc/java/parse.y:2521 ++#: ../../gcc/java/parse.y:2523 ../../gcc/java/parse.y:2534 ++#: ../../gcc/java/parse.y:2545 ../../gcc/java/parse.y:2556 ++#: ../../gcc/java/parse.y:2567 ../../gcc/java/parse.y:2578 ++#: ../../gcc/java/parse.y:2591 ../../gcc/java/parse.y:2595 ++#: ../../gcc/java/parse.y:2597 ../../gcc/java/parse.y:2610 + #, fuzzy + msgid "Missing term" + msgstr "beginwaarde ontbreekt" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse-scan.y:882 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:721 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:759 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:784 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:970 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1325 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1531 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1533 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1762 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1788 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1799 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1810 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1822 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1837 ++#: ../../gcc/java/parse-scan.y:882 ../../gcc/java/parse.y:721 ++#: ../../gcc/java/parse.y:759 ../../gcc/java/parse.y:784 ++#: ../../gcc/java/parse.y:970 ../../gcc/java/parse.y:1325 ++#: ../../gcc/java/parse.y:1531 ../../gcc/java/parse.y:1533 ++#: ../../gcc/java/parse.y:1762 ../../gcc/java/parse.y:1788 ++#: ../../gcc/java/parse.y:1799 ../../gcc/java/parse.y:1810 ++#: ../../gcc/java/parse.y:1822 ../../gcc/java/parse.y:1837 + msgid "';' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:719 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:757 ++#: ../../gcc/java/parse.y:719 ../../gcc/java/parse.y:757 + #, fuzzy + msgid "Missing name" + msgstr "beginwaarde ontbreekt" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:782 ++#: ../../gcc/java/parse.y:782 + msgid "'*' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:796 ++#: ../../gcc/java/parse.y:796 + msgid "Class or interface declaration expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:833 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:835 ++#: ../../gcc/java/parse.y:833 ../../gcc/java/parse.y:835 + msgid "Missing class name" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:838 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:842 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:850 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1010 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1271 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1273 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1597 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1848 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1880 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1942 ++#: ../../gcc/java/parse.y:838 ../../gcc/java/parse.y:842 ++#: ../../gcc/java/parse.y:850 ../../gcc/java/parse.y:1010 ++#: ../../gcc/java/parse.y:1271 ../../gcc/java/parse.y:1273 ++#: ../../gcc/java/parse.y:1597 ../../gcc/java/parse.y:1848 ++#: ../../gcc/java/parse.y:1880 ../../gcc/java/parse.y:1942 + msgid "'{' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:852 ++#: ../../gcc/java/parse.y:852 + msgid "Missing super class name" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:862 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:878 ++#: ../../gcc/java/parse.y:862 ../../gcc/java/parse.y:878 + msgid "Missing interface name" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:964 ++#: ../../gcc/java/parse.y:964 + #, fuzzy + msgid "Missing variable initializer" + msgstr "beginwaarde ontbreekt" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:981 ++#: ../../gcc/java/parse.y:981 + #, fuzzy + msgid "Invalid declaration" + msgstr "lege declaratie" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:984 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1069 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2143 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2165 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2169 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2204 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2281 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2291 ++#: ../../gcc/java/parse.y:984 ../../gcc/java/parse.y:1069 ++#: ../../gcc/java/parse.y:2143 ../../gcc/java/parse.y:2165 ++#: ../../gcc/java/parse.y:2169 ../../gcc/java/parse.y:2204 ++#: ../../gcc/java/parse.y:2281 ../../gcc/java/parse.y:2291 + msgid "']' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:988 ++#: ../../gcc/java/parse.y:988 + #, fuzzy + msgid "Unbalanced ']'" + msgstr "niet-gebalanceerde `#endif'" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1024 ++#: ../../gcc/java/parse.y:1024 + msgid "Invalid method declaration, method name required" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1029 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1034 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1039 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2026 ++#: ../../gcc/java/parse.y:1029 ../../gcc/java/parse.y:1034 ++#: ../../gcc/java/parse.y:1039 ../../gcc/java/parse.y:2026 + msgid "Identifier expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1044 ++#: ../../gcc/java/parse.y:1044 + msgid "Invalid method declaration, return type required" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1067 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1511 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1518 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1527 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1529 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1557 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1665 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1971 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2024 ++#: ../../gcc/java/parse.y:1067 ../../gcc/java/parse.y:1511 ++#: ../../gcc/java/parse.y:1518 ../../gcc/java/parse.y:1527 ++#: ../../gcc/java/parse.y:1529 ../../gcc/java/parse.y:1557 ++#: ../../gcc/java/parse.y:1665 ../../gcc/java/parse.y:1971 ++#: ../../gcc/java/parse.y:2024 + msgid "')' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1083 ++#: ../../gcc/java/parse.y:1083 + #, fuzzy + msgid "Missing formal parameter term" + msgstr "parameternaam ontbreekt uit parameterlijst" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1098 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1103 ++#: ../../gcc/java/parse.y:1098 ../../gcc/java/parse.y:1103 + #, fuzzy + msgid "Missing identifier" + msgstr "beginwaarde ontbreekt" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1123 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1132 ++#: ../../gcc/java/parse.y:1123 ../../gcc/java/parse.y:1132 + msgid "Missing class type term" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1288 ++#: ../../gcc/java/parse.y:1288 + #, fuzzy + msgid "Invalid interface type" + msgstr "Ongeldig register voor vergelijking" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1475 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1644 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1646 ++#: ../../gcc/java/parse.y:1475 ../../gcc/java/parse.y:1644 ++#: ../../gcc/java/parse.y:1646 + msgid "':' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1497 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1502 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1507 ++#: ../../gcc/java/parse.y:1497 ../../gcc/java/parse.y:1502 ++#: ../../gcc/java/parse.y:1507 + #, fuzzy + msgid "Invalid expression statement" + msgstr "ongeldige expressie als operand" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1525 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1553 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1593 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1661 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1729 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1850 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1928 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2018 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2020 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2028 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2264 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2266 ++#: ../../gcc/java/parse.y:1525 ../../gcc/java/parse.y:1553 ++#: ../../gcc/java/parse.y:1593 ../../gcc/java/parse.y:1661 ++#: ../../gcc/java/parse.y:1729 ../../gcc/java/parse.y:1850 ++#: ../../gcc/java/parse.y:1928 ../../gcc/java/parse.y:2018 ++#: ../../gcc/java/parse.y:2020 ../../gcc/java/parse.y:2028 ++#: ../../gcc/java/parse.y:2264 ../../gcc/java/parse.y:2266 + msgid "'(' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1595 ++#: ../../gcc/java/parse.y:1595 + msgid "Missing term or ')'" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1642 ++#: ../../gcc/java/parse.y:1642 + #, fuzzy + msgid "Missing or invalid constant expression" + msgstr "overflow in constante expressie" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1663 ++#: ../../gcc/java/parse.y:1663 + msgid "Missing term and ')' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1702 ++#: ../../gcc/java/parse.y:1702 + #, fuzzy + msgid "Invalid control expression" + msgstr "Ongeldig token in expressie" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1704 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1706 ++#: ../../gcc/java/parse.y:1704 ../../gcc/java/parse.y:1706 + #, fuzzy + msgid "Invalid update expression" + msgstr "Ongeldig token in expressie" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1731 ++#: ../../gcc/java/parse.y:1731 + #, fuzzy + msgid "Invalid init statement" + msgstr "ongeldige beginwaarde" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1931 ++#: ../../gcc/java/parse.y:1931 + msgid "Missing term or ')' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1973 ++#: ../../gcc/java/parse.y:1973 + msgid "'class' or 'this' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1975 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1977 ++#: ../../gcc/java/parse.y:1975 ../../gcc/java/parse.y:1977 + msgid "'class' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2022 ++#: ../../gcc/java/parse.y:2022 + msgid "')' or term expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2141 ++#: ../../gcc/java/parse.y:2141 + msgid "'[' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2219 ++#: ../../gcc/java/parse.y:2219 + msgid "Field expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2276 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2286 ++#: ../../gcc/java/parse.y:2276 ../../gcc/java/parse.y:2286 + msgid "Missing term and ']' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2390 ++#: ../../gcc/java/parse.y:2390 + #, fuzzy + msgid "']' expected, invalid type expression" + msgstr "ongeldige waarheidsexpressie" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2393 ++#: ../../gcc/java/parse.y:2393 + #, fuzzy + msgid "Invalid type expression" + msgstr "Ongeldig token in expressie" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2505 ++#: ../../gcc/java/parse.y:2505 + #, fuzzy + msgid "Invalid reference type" + msgstr "Ongeldige modus voor gen_tst_reg" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2977 ++#: ../../gcc/java/parse.y:2977 + msgid "Constructor invocation must be first thing in a constructor" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2979 ++#: ../../gcc/java/parse.y:2979 + msgid "Only constructors can invoke constructors" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2987 ++#: ../../gcc/java/parse.y:2987 + #, c-format + msgid ": `%s' JDK1.1(TM) feature" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:3046 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:3048 ++#: ../../gcc/java/parse.y:3046 ../../gcc/java/parse.y:3048 + #, c-format + msgid "" + "%s.\n" + "%s" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:6909 ++#: ../../gcc/java/parse.y:6909 + #, c-format + msgid "malformed .zip archive in CLASSPATH: %s" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:6980 ++#: ../../gcc/java/parse.y:6980 + #, c-format + msgid "Can't find default package `%s'. Check the CLASSPATH environment variable and the access to the archives" + msgstr "" + + # 'whitespace' -> 'witruimte'? +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12193 ++#: ../../gcc/java/parse.y:12193 + #, fuzzy, c-format + msgid "missing static field `%s'" + msgstr "ontbrekende witruimte na getal `%s'" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12198 ++#: ../../gcc/java/parse.y:12198 + #, c-format + msgid "not a static field `%s'" + msgstr "`%s' is geen static veld" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12241 ++#: ../../gcc/java/parse.y:12241 + #, c-format + msgid "No case for %s" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:13173 ++#: ../../gcc/java/parse.y:13173 + #, fuzzy, c-format + msgid "unregistered operator %s" + msgstr "registernaam niet opgegeven voor `%s'" +@@ -20406,1750 +20417,1434 @@ + msgid "[super ...] must appear in a method context" + msgstr "" + +-#: objc/objc-parse.y:2701 ++#: objc/objc-parse.y:2700 + msgid "`@end' must appear in an implementation context" + msgstr "" + +-#: objc/objc-parse.y:2914 ++#: objc/objc-parse.y:2913 + msgid "method definition not in class context" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:23 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:21 + msgid "Display this information" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:29 +-msgid "--param =\tSet paramter to value. See below for a complete list of parameters" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:27 ++msgid "--param =\tSet parameter to value. See below for a complete list of parameters" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:38 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:36 + msgid "-A=\tAssert the to . Putting '-' before disables the to " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:41 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:39 + #, fuzzy + msgid "Do not discard comments" + msgstr "niet-beëindigde commentaar" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:44 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:42 + msgid "Do not discard comments in macro expansions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:47 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:45 + msgid "-D[=]\tDefine a with as its value. If just is given, is taken to be 1" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:53 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:51 + msgid "-G\tPut global and static data smaller than bytes into a special section (on some targets)" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:56 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:54 + msgid "Print the name of header files as they are used" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:65 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:57 ++msgid "-I \tAdd to the end of the main include path. -I- gives more include path control; see info documentation" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:60 ++#, fuzzy ++msgid "Generate make dependencies" ++msgstr "dynamische dependencies.\n" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:63 + #, fuzzy + msgid "Generate make dependencies and compile" + msgstr "Positie-onafhankelijke code wordt niet ondersteund. Genegeerd" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:74 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:66 ++msgid "-MF \tWrite dependency output to the given file" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:69 + msgid "Treat missing header files as generated files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:80 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:72 ++msgid "Like -M but ignore system header files" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:75 + msgid "Like -MD but ignore system header files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:89 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:78 ++msgid "Generate phony targets for all headers" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:81 + msgid "-MQ \tAdd a MAKE-quoted target" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:95 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:84 ++msgid "-MT \tAdd an unquoted target" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:87 + msgid "-O\tSet optimization level to " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:98 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:90 + msgid "Optimize for space rather than speed" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:101 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:93 + #, fuzzy + msgid "Do not generate #line directives" + msgstr "interne fout - slechte ingebouwde functie `%s'" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:104 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:96 + msgid "-U\tUndefine " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:107 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:99 + msgid "This switch is deprecated; use -Wextra instead" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:113 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:105 + msgid "Warn about returning structures, unions or arrays" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:119 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:108 ++msgid "Enable most warning messages" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:111 + #, fuzzy + msgid "Warn about casting functions to incompatible types" + msgstr "parameter wijst naar een onvolledig type" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:122 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:114 + msgid "Warn about pointer casts which increase alignment" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:125 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:117 + msgid "Warn about casts which discard qualifiers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:128 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:120 + #, fuzzy + msgid "Warn about subscripts whose type is \"char\"" + msgstr "array subscript is van het type `char'" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:137 +-msgid "Warn about possibly confusing type conversions" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:123 ++msgid "Warn about possibly nested block comments, and C++ comments spanning more than one physical line" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:140 +-msgid "Warn when all constructors and destructors are private" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:126 ++msgid "Synonym for -Wcomment" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:143 +-msgid "Warn when a declaration is found after a statement" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:129 ++msgid "Warn about possibly confusing type conversions" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:132 ++msgid "Warn when all constructors and destructors are private" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:146 +-msgid "Warn if deprecated class, method, or field is used" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:135 ++msgid "Warn when a declaration is found after a statement" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:149 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:138 ++msgid "Warn about deprecated compiler features" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:141 + msgid "Warn about uses of __attribute__((deprecated)) declarations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:152 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:144 + msgid "Warn when an optimization pass is disabled" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:155 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:147 + msgid "Warn about compile-time integer division by zero" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:158 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:150 + msgid "Warn about violations of Effective C++ style rules" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:161 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:153 + msgid "Warn about stray tokens after #elif and #endif" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:164 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:156 + msgid "Treat all warnings as errors" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:167 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:159 + #, fuzzy + msgid "Make implicit function declarations an error" + msgstr "parameternamen (zonder types) in functiedeclaratie" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:170 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:162 + msgid "Print extra (possibly unwanted) warnings" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:173 +-msgid "Warn if deprecated empty statements are found" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:176 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:165 + msgid "Warn if testing floating point numbers for equality" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:179 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:168 + #, fuzzy + msgid "Warn about printf/scanf/strftime/strfmon format string anomalies" + msgstr "formaatstring niet beëindigd" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:182 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:171 + #, fuzzy + msgid "Warn if passing too many arguments to a function for its format string" + msgstr "teveel argumenten voor functie `va_start'" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:185 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:174 + msgid "Warn about format strings that are not literals" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:188 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:177 + msgid "Warn about possible security problems with format functions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:191 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:180 + msgid "Warn about strftime formats yielding 2-digit years" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:200 +-msgid "Enable warnings about inter-procedural problems" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:206 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:192 + #, fuzzy + msgid "Warn about implicit function declarations" + msgstr "parameternamen (zonder types) in functiedeclaratie" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:209 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:195 + msgid "Warn when a declaration does not specify a type" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:215 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:198 ++msgid "Deprecated. This switch has no effect." ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:201 + msgid "Warn about variables which are initialized to themselves." + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:218 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:204 + #, fuzzy + msgid "Warn when an inlined function cannot be inlined" + msgstr "kan functie `main' niet inline maken" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:221 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:207 + #, fuzzy + msgid "Warn about invalid uses of the \"offsetof\" macro" + msgstr "lijnnummer buiten bereik in `#line'-commando" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:224 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:210 + msgid "Warn about PCH files that are found but not used" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:227 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:213 + msgid "-Wlarger-than-\tWarn if an object is larger than bytes" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:230 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:216 + msgid "Do not warn about using \"long long\" when -pedantic" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:233 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:219 + #, fuzzy + msgid "Warn about suspicious declarations of \"main\"" + msgstr "geen eerdere declaratie voor `%s'" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:236 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:222 + #, fuzzy + msgid "Warn about possibly missing braces around initializers" + msgstr "accolades ontbreken rond beginwaarde" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:239 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:225 + #, fuzzy + msgid "Warn about global functions without previous declarations" + msgstr "sectie van `%s' geeft een conflict met een eerdere declaratie" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:242 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:228 + #, fuzzy + msgid "Warn about functions which might be candidates for format attributes" + msgstr "deze functie is een mogelijke kandidaat voor het `noreturn' attribuut" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:245 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:231 + #, fuzzy + msgid "Warn about functions which might be candidates for __attribute__((noreturn))" + msgstr "deze functie is een mogelijke kandidaat voor het `noreturn' attribuut" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:248 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:234 + #, fuzzy + msgid "Warn about global functions without prototypes" + msgstr "sectie van `%s' geeft een conflict met een eerdere declaratie" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:251 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:237 + #, fuzzy + msgid "Warn about use of multi-character character constants" + msgstr "karakterconstante met meer dan één karakter" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:254 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:240 + #, fuzzy + msgid "Warn about \"extern\" declarations not at file scope" + msgstr "overbodige herdeclaratie van `%s' in zelfde bereik" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:257 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:243 + #, fuzzy + msgid "Warn when non-templatized friend functions are declared within a template" + msgstr "geneste functie `%s' is als `extern' gedeclareerd" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:260 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:246 + #, fuzzy + msgid "Warn about non-virtual destructors" + msgstr "niet-prototype definitie hier" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:266 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:252 + msgid "Warn if a C-style cast is used in a program" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:269 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:255 + msgid "Warn if an old-style parameter definition is used" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:272 +-msgid "Warn if .class files are out of date" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:275 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:258 + msgid "Warn about overloaded virtual function names" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:278 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:261 + msgid "Warn when the packed attribute has no effect on struct layout" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:281 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:264 + msgid "Warn when padding is required to align structure members" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:284 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:267 + #, fuzzy + msgid "Warn about possibly missing parentheses" + msgstr "accolades ontbreken rond beginwaarde" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:287 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:270 + msgid "Warn when converting the type of pointers to member functions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:290 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:273 + #, fuzzy + msgid "Warn about function pointer arithmetic" + msgstr "pointer naar functie gebruikt in rekensom" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:293 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:276 + msgid "Warn if inherited methods are unimplemented" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:296 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:279 + #, fuzzy + msgid "Warn about multiple declarations of the same object" + msgstr "overbodige herdeclaratie van `%s' in zelfde bereik" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:299 +-msgid "Warn if modifiers are specified when not necessary" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:302 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:282 + #, fuzzy + msgid "Warn when the compiler reorders code" + msgstr "incompatibele record-modus" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:305 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:285 + #, fuzzy + msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)" + msgstr "teruggeefwaarde krijgt standaardtype `int'" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:308 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:288 + msgid "Warn if a selector has multiple methods" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:311 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:291 + msgid "Warn about possible violations of sequence point rules" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:314 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:294 + #, fuzzy + msgid "Warn when one local variable shadows another" + msgstr "De locale variabele `insn' heeft de waarde:" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:317 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:297 + #, fuzzy + msgid "Warn about signed-unsigned comparisons" + msgstr "formaatstring niet beëindigd" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:320 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:300 + #, fuzzy + msgid "Warn when overload promotes from unsigned to signed" + msgstr "vergelijking van gepromoveerde ~unsigned met unsigned" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:323 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:303 + #, fuzzy + msgid "Warn about code which might break strict aliasing rules" + msgstr "deze functie is een mogelijke kandidaat voor het `noreturn' attribuut" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:326 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:306 + #, fuzzy + msgid "Warn about unprototyped function declarations" + msgstr "niet-prototype definitie hier" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:329 +-msgid "Warn about constructs with surprising meanings" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:332 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:309 + msgid "Warn about enumerated switches, with no default, missing a case" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:335 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:312 + msgid "Warn about enumerated switches missing a \"default:\" statement" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:338 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:315 + msgid "Warn about all enumerated switches missing a specific case" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:341 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:318 + msgid "Warn when synthesis behavior differs from Cfront" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:344 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:321 + msgid "Do not suppress warnings from system headers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:347 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:324 + msgid "Warn about features not present in traditional C" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:356 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:327 ++msgid "Warn if trigraphs are encountered that might affect the meaning of the program" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:333 + #, fuzzy + msgid "Warn if an undefined macro is used in an #if directive" + msgstr "ongedefinieerd of ongeldig #-commando" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:359 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:336 + msgid "Warn about uninitialized automatic variables" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:362 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:339 + msgid "Warn about unrecognized pragmas" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:365 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:342 + msgid "Warn about code that will never be executed" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:368 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:345 + msgid "Enable all -Wunused- warnings" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:371 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:348 + msgid "Warn when a function is unused" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:374 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:351 + msgid "Warn when a label is unused" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:377 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:354 + msgid "Warn about macros defined in the main file that are not used" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:380 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:357 + msgid "Warn when a function parameter is unused" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:383 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:360 + msgid "Warn when an expression value is unused" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:386 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:363 + msgid "Warn when a variable is unused" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:389 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:366 + msgid "Give strings the type \"array of char\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:392 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:369 + msgid "A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:395 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:372 + msgid "-aux-info \tEmit declaration information into " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:407 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:384 + msgid "-d\tEnable dumps from specific passes of the compiler" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:410 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:387 + msgid "-dumpbase \tSet the file basename to be used for dumps" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:413 +-msgid "--CLASSPATH\tDeprecated; use --classpath instead" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:425 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:399 + msgid "Enforce class member access control semantics" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:428 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:402 + #, fuzzy + msgid "Align the start of functions" + msgstr "impliciete declaratie van functie `%s'" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:434 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:408 + msgid "Align labels which are only reached by jumping" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:440 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:414 + msgid "Align all labels" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:446 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:420 + msgid "Align the start of loops" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:455 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:429 + msgid "Change when template instances are emitted" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:458 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:432 + msgid "Specify that arguments may alias each other and globals" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:461 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:435 + msgid "Assume arguments may alias globals but not each other" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:464 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:438 + msgid "Assume arguments alias neither each other nor globals" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:467 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:441 + msgid "Recognize the \"asm\" keyword" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:479 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:444 + msgid "Generate unwind tables that are exact at each instruction boundary" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:482 +-msgid "Do not treat local variables and COMMON blocks as if they were named in SAVE statements" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:485 +-msgid "Backslashes in character and hollerith constants are special (not C-style)" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:488 +-msgid "Delete libU77 intrinsics with bad interfaces" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:491 +-msgid "Disable libU77 intrinsics with bad interfaces" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:494 +-msgid "Enable libU77 intrinsics with bad interfaces" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:497 +-msgid "Hide libU77 intrinsics with bad interfaces" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:500 +-msgid "--bootclasspath=\tReplace system path" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:503 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:447 + msgid "Generate code to check bounds before indexing arrays" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:506 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:450 + msgid "Replace add, compare, branch with branch on count register" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:509 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:453 + msgid "Use profiling information for branch probabilities" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:512 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:456 + msgid "Perform branch target load optimization before prologue / epilogue threading" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:515 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:459 + msgid "Perform branch target load optimization after prologue / epilogue threading" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:518 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:462 + #, fuzzy + msgid "Recognize built-in functions" + msgstr "interne fout - slechte ingebouwde functie `%s'" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:524 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:468 + msgid "-fcall-saved-\tMark as being preserved across functions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:527 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:471 + msgid "-fcall-used-\tMark as being corrupted by function calls" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:530 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:474 + msgid "Save registers around function calls" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:533 +-msgid "Program written in strict mixed-case" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:536 +-msgid "Compile as if program written in lowercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:539 +-#, fuzzy +-msgid "Preserve case used in program" +-msgstr "misplaatste '\\' in programma" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:542 +-msgid "Program written in lowercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:545 +-msgid "Program written in uppercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:548 +-msgid "Compile as if program written in uppercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:551 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:477 + msgid "Check the return value of new" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:557 +-msgid "--classpath=\tSet class path" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:560 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:480 + msgid "Do not put uninitialized globals in the common section" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:566 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:483 + msgid "Allow the arguments of the '?' operator to have different types" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:569 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:486 + msgid "Reduce the size of object files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:572 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:489 + #, fuzzy + msgid "Make string literals \"const char[]\" not \"char[]\"" + msgstr "slechte stringconstante" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:575 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:492 + msgid "-fconst-string-class=\tUse class for constant strings" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:578 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:495 + msgid "Perform a register copy-propagation optimization pass" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:581 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:498 + msgid "Perform cross-jumping optimization" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:584 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:501 + msgid "When running CSE, follow jumps to their targets" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:587 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:504 + msgid "When running CSE, follow conditional jumps" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:590 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:507 + #, fuzzy + msgid "Place data items into their own section" + msgstr "keer vermeld voor elke functie waarin hij staat.)" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:593 +-msgid "Emit special debugging information for COMMON and EQUIVALENCE (disabled)" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:596 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:510 + #, fuzzy + msgid "Inline member functions by default" + msgstr "kan functie `main' niet inline maken" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:599 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:513 + msgid "Defer popping functions args from stack until later" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:602 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:516 + msgid "Attempt to fill delay slots of branch instructions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:605 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:519 + msgid "Delete useless null pointer checks" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:608 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:522 + msgid "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source location at the beginning of line-wrapped diagnostics" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:611 +-msgid "Allow '$' in symbol names" +-msgstr "" +- + # "brede string"? "string met brede karakters/tekens"? +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:614 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:525 + #, fuzzy + msgid "Permit '$' as an identifier character" + msgstr "formaat is een wide-character string" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:620 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:528 ++msgid "-fdump-\tDump various compiler internals to a file" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:531 + msgid "Suppress output of instruction numbers and line number notes in debugging dumps" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:626 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:537 + msgid "Perform DWARF2 duplicate elimination" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:629 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:632 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:540 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:543 + msgid "Perform unused type elimination in debug info" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:641 +-msgid "Have front end emulate COMPLEX arithmetic to avoid bugs" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:644 +-msgid "--encoding=\tChoose input encoding (defaults from your locale)" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:647 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:546 + #, fuzzy + msgid "Generate code to check exception specifications" + msgstr "`%s' gedeclareerd als een functie die een functie teruggeeft" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:653 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:552 + msgid "Enable exception handling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:656 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:555 + msgid "-fexec-charset=\tConvert all strings and character constants to character set " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:659 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:558 + msgid "Perform a number of minor, expensive optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:668 +-msgid "f2c-compatible code can be generated" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:671 +-msgid "Delete non-FORTRAN-77 intrinsics f2c supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:674 +-msgid "Disable non-FORTRAN-77 intrinsics f2c supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:677 +-msgid "Enable non-FORTRAN-77 intrinsics f2c supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:680 +-msgid "Hide non-FORTRAN-77 intrinsics f2c supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:683 +-msgid "Unsupported; generate libf2c-calling code" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:686 +-msgid "Program is written in typical FORTRAN 66 dialect" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:689 +-msgid "Program is written in typical Unix-f77 dialect" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:692 +-msgid "Program is written in Fortran-90-ish dialect" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:695 +-msgid "Delete non-FORTRAN-77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:698 +-msgid "Disable non-FORTRAN-77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:701 +-msgid "Enable non-FORTRAN-77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:704 +-msgid "Hide non-FORTRAN-77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:716 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:567 + msgid "Assume no NaNs or infinities are generated" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:719 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:570 + msgid "-ffixed-\tMark as being unavailable to the compiler" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:725 +-msgid "ffixed-line-length-\tSet the maximum line length to " +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:728 +-msgid "Unsupported; affects code generation of arrays" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:731 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:579 + msgid "Do not store floats in registers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:734 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:582 + msgid "Scope of for-init-statement variables is local to the loop" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:737 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:585 + #, fuzzy + msgid "Copy memory address constants into registers before use" + msgstr "numerieke constante zonder cijfers" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:740 +-msgid "Always check for non gcj generated classes archives" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:743 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:588 + msgid "Copy memory operands into registers before use" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:746 +-msgid "Generate code to check subscript and substring bounds" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:749 +-msgid "Program is written in Fortran-90-ish free form" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:752 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:591 + msgid "Do not assume that standard C libraries and \"main\" exist" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:755 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:594 + msgid "Allow function addresses to be held in registers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:758 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:597 + #, fuzzy + msgid "Place each function into its own section" + msgstr "keer vermeld voor elke functie waarin hij staat.)" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:761 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:600 + msgid "Perform global common subexpression elimination" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:764 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:603 + msgid "Perform redundant load after store elimination in global common subexpression elimination" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:767 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:606 + msgid "Perform enhanced load motion during global common subexpression elimination" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:770 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:609 + msgid "Perform store motion after global common subexpression elimination" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:773 +-msgid "Enable fatal diagnostics about inter-procedural problems" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:776 +-msgid "Delete non-FORTRAN-77 intrinsics g77 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:779 +-msgid "Disable non-FORTRAN 77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:782 +-msgid "Enable non-FORTRAN 77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:785 +-msgid "Hide non-FORTRAN 77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:788 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:612 + msgid "Recognize GNU-defined keywords" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:791 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:615 + msgid "Generate code for GNU runtime environment" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:794 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:618 + msgid "Enable guessing of branch probabilities" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:809 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:630 + msgid "Assume normal C execution environment" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:812 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:633 + msgid "Enable support for huge objects" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:815 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:636 + #, fuzzy + msgid "Process #ident directives" + msgstr "ongeldig preprocessing-commando" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:818 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:639 + msgid "Perform conversion of conditional jumps to branchless equivalents" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:821 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:642 + #, fuzzy + msgid "Perform conversion of conditional jumps to conditional execution" + msgstr "types in voorwaardelijke expressie komen niet overeen" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:824 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:645 + #, fuzzy + msgid "Export functions even if they can be inlined" + msgstr "de terugkeerwaarde van een functie kan geen funtie zijn" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:827 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:648 + #, fuzzy + msgid "Emit implicit instantiations of inline templates" + msgstr "impliciete declaratie van functie `%s'" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:830 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:651 + #, fuzzy + msgid "Emit implicit instantiations of templates" + msgstr "impliciete declaratie van functie `%s'" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:833 +-msgid "Use offset tables for virtual method calls" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:836 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:654 + msgid "Do not generate .size directives" + msgstr "" + +-# Is 'mode' enkel van toepassing op 'string', of ook op 'array'? +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:839 +-#, fuzzy +-msgid "Initialize local vars and arrays to zero" +-msgstr "beginwaarde is geen array of string-modus" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:842 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:657 + msgid "Pay attention to the \"inline\" keyword" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:851 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:660 ++msgid "Integrate simple functions into their callers" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:666 + msgid "-finline-limit=\tLimit the size of inlined functions to " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:854 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:669 + msgid "-finput-charset= Specify the default character set for source files." + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:857 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:672 + msgid "Instrument function entry and exit with profiling calls" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:860 +-msgid "Intrinsics letters in arbitrary cases" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:863 +-msgid "Intrinsics spelled as e.g. SqRt" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:866 +-msgid "Intrinsics in lowercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:869 +-msgid "Intrinsics in uppercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:872 +-msgid "Assume native functions are implemented using JNI" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:875 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:675 + #, fuzzy + msgid "Generate code for functions even if they are fully inlined" + msgstr "de terugkeerwaarde van een functie kan geen funtie zijn" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:878 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:678 + msgid "Emit static const variables even if they are not used" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:884 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:684 + msgid "Give external symbols a leading underscore" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:887 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:687 + #, fuzzy + msgid "Perform loop optimizations" + msgstr "lege declaratie" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:890 +-msgid "Language keyword letters in arbitrary cases" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:893 +-msgid "Language keywords spelled as e.g. IOStat" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:896 +-msgid "Language keywords in lowercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:899 +-msgid "Language keywords in uppercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:902 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:690 + #, fuzzy + msgid "Set errno after built-in math functions" + msgstr "interne fout - slechte ingebouwde functie `%s'" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:905 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:693 + msgid "Report on permanent memory allocation" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:908 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:696 + msgid "Attempt to merge identical constants and constant variables" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:911 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:699 + msgid "Attempt to merge identical constants across compilation units" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:914 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:702 + msgid "-fmessage-length=\tLimit diagnostics to characters per line. 0 suppresses line-wrapping" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:917 +-msgid "Delete MIL-STD 1753 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:920 +-msgid "Disable MIL-STD 1753 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:923 +-msgid "Enable MIL-STD 1753 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:926 +-msgid "Hide MIL-STD 1753 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:929 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:705 + msgid "Force all loop invariant computations out of loops" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:932 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:708 + #, fuzzy + msgid "Don't warn about uses of Microsoft extensions" + msgstr "teveel argumenten voor functie" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:941 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:717 + msgid "Use graph-coloring register allocation" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:944 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:720 + msgid "Generate code for NeXT (Apple Mac OS X) runtime environment" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:947 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:723 + msgid "Assume that receivers of Objective-C messages may be nil" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:950 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:726 + msgid "Support synchronous non-call exceptions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:959 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:735 + msgid "Enable Objective-C exception and synchronization syntax" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:962 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1286 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:738 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:978 + msgid "Perform loop unrolling for all loops" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:965 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1289 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:741 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:981 + msgid "Perform loop unrolling when iteration count is known" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:968 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:744 + msgid "When possible do not generate stack frames" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:971 +-msgid "Take at least one trip through each iterative DO loop" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:974 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:747 + msgid "Recognize C++ kewords like \"compl\" and \"xor\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:977 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:750 + msgid "Do the full register move optimization pass" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:980 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:753 + msgid "Optimize sibling and tail recursive calls" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:983 +-msgid "Enable optimization of static class initialization code" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:986 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:756 + msgid "Enable optional diagnostics" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:992 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:759 + msgid "Pack structure members together without holes" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:995 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:762 + msgid "Return small aggregates in memory, not registers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1001 +-msgid "Warn about use of (only a few for now) Fortran extensions" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1004 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:768 + msgid "Perform loop peeling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1007 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:771 + msgid "Enable machine specific peephole optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1010 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:774 + msgid "Enable an RTL peephole pass before sched2" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1013 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:777 + msgid "Downgrade conformance errors to warnings" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1016 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:780 + #, fuzzy + msgid "Generate position-independent code if possible" + msgstr "Positie-onafhankelijke code wordt niet ondersteund. Genegeerd" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1019 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:783 + #, fuzzy + msgid "Generate position-independent code for executables if possible" + msgstr "Positie-onafhankelijke code wordt niet ondersteund. Genegeerd" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1022 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:786 + msgid "Generate prefetch instructions, if available, for arrays in loops" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1028 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:789 ++msgid "Treat the input file as already preprocessed" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:792 + msgid "Enable basic program profiling code" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1031 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:795 + msgid "Insert arc-based program profiling code" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1034 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:798 + msgid "Enable common options for generating profile info for profile feedback directed optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1037 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:801 + msgid "Enable common options for performing profile feedback directed optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1040 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:804 + msgid "Insert code to profile values of expressions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1046 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:810 + msgid "-frandom-seed=\tMake compile reproducible using " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1049 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:813 + msgid "Strength reduce all loop general induction variables" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1052 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:816 + #, fuzzy + msgid "Return small aggregates in registers" + msgstr "te weinig argument voor functie" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1055 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:819 + msgid "Enables a register move optimization" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1058 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:822 + msgid "Perform a register renaming optimization pass" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1061 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:825 + msgid "Reorder basic blocks to improve code placement" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1064 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:828 + msgid "Reorder functions to improve code placement" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1067 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:831 + msgid "Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1070 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:834 + msgid "Enable automatic template instantiation" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1073 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:837 + msgid "Add a common subexpression elimination pass after loop optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1076 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:840 + msgid "Run the loop optimizer twice" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1079 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:843 + msgid "Disable optimizations that assume default FP rounding behavior" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1082 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:846 + msgid "Generate run time type descriptor information" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1085 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:849 + msgid "Enable scheduling across basic blocks" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1088 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:852 + msgid "Allow speculative motion of non-loads" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1091 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:855 + msgid "Allow speculative motion of some loads" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1094 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:858 + msgid "Allow speculative motion of more loads" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1097 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:861 + msgid "Allow premature scheduling of queued insns" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1100 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:864 + msgid "Set dependence distance checking in premature scheduling of queued insns" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1103 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:867 + msgid "-fsched-stalled-insns-dep= Set dependence distance checking in premature scheduling of queued insns" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1106 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:870 + msgid "-fsched-stalled-insns= Set number of queued insns that can be prematurely scheduled" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1109 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:873 + msgid "-fsched-verbose=\tSet the verbosity level of the scheduler" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1112 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:876 + msgid "If scheduling post reload, do superblock scheduling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1115 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:879 + msgid "If scheduling post reload, do trace scheduling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1118 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:882 + msgid "Reschedule instructions before register allocation" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1121 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:885 + msgid "Reschedule instructions after register allocation" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1124 +-msgid "Allow appending a second underscore to externals" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1127 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:888 + msgid "Mark data as shared rather than private" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1130 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:891 + msgid "Use the same size for double as for float" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1133 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:894 + msgid "Use the narrowest integer type possible for enumeration types" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1136 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:897 + msgid "Force the underlying type for \"wchar_t\" to be \"unsigned short\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1142 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:903 + msgid "Disable optimizations observable by IEEE signaling NaNs" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1145 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:906 + msgid "When \"signed\" or \"unsigned\" is not given make the bitfield signed" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1148 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:909 + msgid "Make \"char\" signed by default" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1151 +-msgid "Do not print names of program units as they are compiled" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1154 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:912 + #, fuzzy + msgid "Convert floating point constants to single precision constants" + msgstr "floating-point fout bij het uitschrijven van een constante" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1157 +-msgid "Internally convert most source to lowercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1160 +-msgid "Internally preserve source case" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1163 +-msgid "Internally convert most source to uppercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1169 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:918 + msgid "Insert stack checking code into the program" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1175 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:924 + msgid "-fstack-limit-register=\tTrap if the stack goes past " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1178 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:927 + msgid "-fstack-limit-symbol=\tTrap if the stack goes past symbol " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1181 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:930 + msgid "Display statistics accumulated during compilation" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1184 +-msgid "Enable assignability checks for stores into object arrays" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1187 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:933 + msgid "Perform strength reduction optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1190 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:936 + msgid "Assume strict aliasing rules apply" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1199 +-msgid "Symbol names spelled in mixed case" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1202 +-msgid "Symbol names in lowercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1205 +-msgid "Symbol names in uppercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1208 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:942 + msgid "Check for syntax errors, then stop" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1211 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:945 + msgid "-ftabstop=\tDistance between tab stops for column reporting" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1214 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:948 + msgid "-ftemplate-depth-\tSpecify maximum template instantiation depth" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1217 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:951 + msgid "Create data files needed by \"gcov\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1223 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:957 + msgid "Perform jump threading optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1226 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:960 + msgid "Report the time taken by each compiler pass" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1229 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:963 + msgid "-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tSet the default thread-local storage code generation model" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1232 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:966 + msgid "Perform superblock formation via tail duplication" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1235 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:969 + #, fuzzy + msgid "Assume floating-point operations can trap" + msgstr "floating-point constante buiten bereik" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1238 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:972 + msgid "Trap for signed overflow in addition, subtraction and multiplication" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1241 +-msgid "Make prefix-radix non-decimal constants be typeless" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1244 +-msgid "Allow all ugly features" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1247 +-msgid "Hollerith and typeless can be passed as arguments" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1250 +-msgid "Allow ordinary copying of ASSIGN'ed vars" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1253 +-msgid "Dummy array dimensioned to (1) is assumed-size" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1256 +-msgid "Trailing comma in procedure call denotes null argument" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1259 +-msgid "Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1262 +-msgid "Initialization via DATA and PARAMETER is not type-compatible" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1265 +-msgid "Allow INTEGER and LOGICAL interchangeability" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1268 +-msgid "Append underscores to externals" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1271 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:975 + msgid "Compile whole compilation unit at a time" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1274 +-msgid "Delete libU77 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1277 +-msgid "Disable libU77 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1280 +-msgid "Enable libU77 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1283 +-msgid "Hide libU77 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1292 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:984 + msgid "Allow math optimizations that may violate IEEE or ISO standards" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1295 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:987 + msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1298 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:990 + msgid "Make \"char\" unsigned by default" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1301 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:993 + msgid "Perform loop unswitching" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1304 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:996 + msgid "Just generate unwind tables for exception handling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1310 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:999 + msgid "Use __cxa_atexit to register destructors" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1316 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1002 + msgid "Add extra commentary to assembler output" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1319 +-msgid "Print g77-specific version information and run internal tests" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1322 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1005 + #, fuzzy + msgid "Use expression value profiles in optimizations" + msgstr "lege declaratie" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1325 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1008 + msgid "Discard unused virtual functions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1328 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1011 + msgid "Implement vtables using thunks" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1331 +-msgid "Program is written in VXT (Digital-like) FORTRAN" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1334 +-msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1337 +-msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1340 +-msgid "Enable non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1343 +-msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1349 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1014 + msgid "Emit common-like symbols as weak symbols" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1352 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1017 + msgid "Construct webs and split unrelated uses of single variable" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1355 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1020 + msgid "-fwide-exec-charset=\tConvert all wide strings and character constants to character set " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1358 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1023 + msgid "Generate a #line directive pointing at the current working directory" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1361 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1026 + msgid "Assume signed arithmetic overflow wraps around" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1364 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1029 + msgid "Store strings in writable data section" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1367 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1032 + msgid "Emit cross referencing information" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1370 +-msgid "Print internal debugging-related information" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1373 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1035 + msgid "Put zero initialized data in the bss section" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1376 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1038 + msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1379 +-msgid "Treat initial values of 0 like non-zero values" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1382 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1041 + msgid "Generate debug information in default format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1385 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1044 + msgid "Generate debug information in COFF format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1388 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1047 + msgid "Generate debug information in DWARF v2 format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1391 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1050 + #, fuzzy + msgid "Dump declarations to a .decl file" + msgstr "declaratie declareert niets" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1394 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1053 + msgid "Generate debug information in default extended format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1397 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1056 + msgid "Generate debug information in STABS format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1400 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1059 + msgid "Generate debug information in extended STABS format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1403 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1062 + msgid "Generate debug information in VMS format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1406 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1065 + msgid "Generate debug information in XCOFF format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1409 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1068 + msgid "Generate debug information in extended XCOFF format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1412 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1071 + msgid "-idirafter \tAdd to the end of the system include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1415 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1074 + msgid "-imacros \tAccept definition of macros in " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1418 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1077 + msgid "-include \tInclude the contents of before other files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1421 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1080 + msgid "-iprefix \tSpecify as a prefix for next two options" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1424 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1083 + msgid "-isysroot \tSet to be the system root directory" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1427 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1086 + msgid "-isystem \tAdd to the start of the system include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1430 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1089 + msgid "-iwithprefix \tAdd to the end of the system include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1433 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1092 + msgid "-iwithprefixbefore \tAdd to the end of the main include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1445 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1104 + msgid "Do not search standard system include directories (those specified with -isystem will still be used)" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1448 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1107 + msgid "Do not search standard system include directories for C++" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1451 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1110 + msgid "-o \tPlace output into " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1454 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1113 + msgid "Enable function profiling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1457 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1116 + msgid "Issue warnings needed for strict compliance to the standard" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1460 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1119 + msgid "Like -pedantic but issue them as errors" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1463 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1122 + msgid "Generate C header of platform-specific features" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1466 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1125 + msgid "Do not display functions compiled or elapsed time" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1469 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1128 + #, fuzzy + msgid "Remap file names when including files" + msgstr "lege bestandsnaam in `#%s'" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1472 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1131 + msgid "Conform to the ISO 1998 C++ standard" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1475 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1134 + msgid "Conform to the ISO 1990 C standard" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1478 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1137 + msgid "Conform to the ISO 1999 C standard" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1481 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1502 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1505 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1140 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1161 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1164 + msgid "Deprecated in favor of -std=c99" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1484 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1143 + msgid "Conform to the ISO 1998 C++ standard with GNU extensions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1487 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1146 + msgid "Conform to the ISO 1990 C standard with GNU extensions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1490 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1149 + msgid "Conform to the ISO 1999 C standard with GNU extensions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1493 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1152 + msgid "Deprecated in favor of -std=gnu99" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1496 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1155 + msgid "Deprecated in favor of -std=c89" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1499 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1158 + msgid "Conform to the ISO 1990 C standard as amended in 1994" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1508 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1167 + msgid "Enable traditional preprocessing" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1511 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1170 + msgid "-trigraphs\tSupport ISO C trigraphs" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1514 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1173 + msgid "Do not predefine system-specific and GCC-specific macros" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1517 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1176 + msgid "Enable verbose output" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1523 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1179 ++msgid "Display the compiler's version" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1182 + msgid "Suppress warnings" + msgstr "" + +-#: config/i386/freebsd-aout.h:215 config/rs6000/sysv4.h:1089 ++#: config/i386/cygwin.h:29 ++#, fuzzy ++msgid "mno-cygwin and mno-win32 are not compatible" ++msgstr "-pg en -fomit-frame-pointer zijn niet compatibel" ++ ++#: config/i386/cygwin.h:70 config/i386/mingw32.h:58 ++#, fuzzy ++msgid "shared and mdll are not compatible" ++msgstr "-pg en -fomit-frame-pointer zijn niet compatibel" ++ ++#: config/i386/freebsd-aout.h:215 + msgid "`-p' not supported; use `-pg' and gprof(1)" + msgstr "`-p' wordt niet ondersteund; gebruik `-pg' en gprof(1)" + +@@ -22163,6 +21858,26 @@ + msgid "GCC does not support -CC without using -E" + msgstr "GNU C ondersteunt -C niet wanneer -E niet gebruikt wordt" + ++#: config/i386/sco5.h:191 ++#, fuzzy ++msgid "-pg not supported on this platform" ++msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem" ++ ++#: config/i386/sco5.h:192 ++#, fuzzy ++msgid "-p and -pp specified - pick one" ++msgstr "-I- twee keer opgegeven" ++ ++#: config/i386/sco5.h:266 ++msgid "-G and -static are mutually exclusive" ++msgstr "" ++ ++#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22 ++#: config/sparc/sol2-bi.h:167 config/sparc/sol2-bi.h:172 ++#, fuzzy ++msgid "does not support multilib" ++msgstr "%s ondersteunt %s niet" ++ + #: config/sparc/linux64.h:211 config/sparc/linux64.h:222 + #: config/sparc/netbsd-elf.h:140 config/sparc/netbsd-elf.h:159 + #: config/sparc/sol2-bi.h:195 config/sparc/sol2-bi.h:205 +@@ -22170,44 +21885,39 @@ + msgid "may not use both -m32 and -m64" + msgstr "-mfp64 en -m4650 mogen niet samen gebruikt worden" + +-#: config/i386/mingw32.h:58 config/i386/cygwin.h:70 +-#, fuzzy +-msgid "shared and mdll are not compatible" +-msgstr "-pg en -fomit-frame-pointer zijn niet compatibel" +- +-#: config/darwin.h:215 ++#: config/darwin.h:222 + msgid "-current_version only allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:218 ++#: config/darwin.h:225 + msgid "-install_name only allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:223 ++#: config/darwin.h:230 + msgid "-bundle not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:224 ++#: config/darwin.h:231 + msgid "-bundle_loader not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:225 ++#: config/darwin.h:232 + msgid "-client_name not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:228 ++#: config/darwin.h:235 + msgid "-force_cpusubtype_ALL not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:229 ++#: config/darwin.h:236 + msgid "-force_flat_namespace not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:231 ++#: config/darwin.h:238 + msgid "-keep_private_externs not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:232 ++#: config/darwin.h:239 + msgid "-private_bundle not allowed with -dynamiclib" + msgstr "" + +@@ -22224,54 +21934,11 @@ + msgid "may not use both -EB and -EL" + msgstr "-EB en -EL mogen niet samen gebruikt worden" + +-#: config/mips/mips.h:988 +-#, fuzzy +-msgid "-pipe is not supported" +-msgstr "-pipe wordt niet ondersteund" +- +-#: java/jvspec.c:80 ada/lang-specs.h:34 gcc.c:767 +-msgid "-pg and -fomit-frame-pointer are incompatible" +-msgstr "-pg en -fomit-frame-pointer zijn niet compatibel" +- +-#: java/lang-specs.h:34 +-#, fuzzy +-msgid "-fjni and -femit-class-files are incompatible" +-msgstr "-fpic en -mapcs-reent zijn niet compatibel" +- +-#: java/lang-specs.h:35 +-#, fuzzy +-msgid "-fjni and -femit-class-file are incompatible" +-msgstr "-fpic en -mapcs-reent zijn niet compatibel" +- +-#: java/lang-specs.h:36 java/lang-specs.h:37 +-msgid "-femit-class-file should used along with -fsyntax-only" +-msgstr "" +- + #: treelang/lang-specs.h:52 + #, fuzzy + msgid "-pg or -p and -fomit-frame-pointer are incompatible" + msgstr "-pg en -fomit-frame-pointer zijn niet compatibel" + +-#: config/sparc/sol2-bi.h:167 config/sparc/sol2-bi.h:172 +-#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22 +-#, fuzzy +-msgid "does not support multilib" +-msgstr "%s ondersteunt %s niet" +- +-#: config/i386/sco5.h:191 +-#, fuzzy +-msgid "-pg not supported on this platform" +-msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem" +- +-#: config/i386/sco5.h:192 +-#, fuzzy +-msgid "-p and -pp specified - pick one" +-msgstr "-I- twee keer opgegeven" +- +-#: config/i386/sco5.h:266 +-msgid "-G and -static are mutually exclusive" +-msgstr "" +- + #: config/arm/arm.h:198 + msgid "-mapcs-26 and -mapcs-32 may not be used together" + msgstr "-mapcs-26 en -mapcs-32 mogen niet samen gebruikt worden" +@@ -22288,6 +21955,15 @@ + msgid "the m210 does not have little endian support" + msgstr "" + ++#: config/mips/mips.h:988 ++#, fuzzy ++msgid "-pipe is not supported" ++msgstr "-pipe wordt niet ondersteund" ++ ++#: ada/lang-specs.h:34 java/jvspec.c:80 gcc.c:767 ++msgid "-pg and -fomit-frame-pointer are incompatible" ++msgstr "-pg en -fomit-frame-pointer zijn niet compatibel" ++ + #: ada/lang-specs.h:36 + msgid "one of -c, -S, -gnatc, -gnatz, or -gnats is required for Ada" + msgstr "" +@@ -22302,8 +21978,18 @@ + msgid "-msingle-float and -msoft-float can not both be specified" + msgstr "-msingle-float en -msoft-float kunnen niet samen gebruikt worden." + +-#: config/rs6000/darwin.h:98 +-msgid " conflicting code gen style switches are used" ++#: java/lang-specs.h:34 ++#, fuzzy ++msgid "-fjni and -femit-class-files are incompatible" ++msgstr "-fpic en -mapcs-reent zijn niet compatibel" ++ ++#: java/lang-specs.h:35 ++#, fuzzy ++msgid "-fjni and -femit-class-file are incompatible" ++msgstr "-fpic en -mapcs-reent zijn niet compatibel" ++ ++#: java/lang-specs.h:36 java/lang-specs.h:37 ++msgid "-femit-class-file should used along with -fsyntax-only" + msgstr "" + + #: gcc.c:743 +@@ -22315,10 +22001,9 @@ + msgid "-E required when input is from standard input" + msgstr "-E is nodig wanneer de invoer van standaardinvoer komt" + +-#: config/i386/cygwin.h:29 +-#, fuzzy +-msgid "mno-cygwin and mno-win32 are not compatible" +-msgstr "-pg en -fomit-frame-pointer zijn niet compatibel" ++#: config/rs6000/darwin.h:98 ++msgid " conflicting code gen style switches are used" ++msgstr "" + + #~ msgid "concatenation of string literals with __FUNCTION__ is deprecated" + #~ msgstr "concatenatie van stringconstantes met __FUNCTION__ is verouderd" +@@ -22427,9 +22112,6 @@ + #~ msgid "ISO C forbids parameter `%s' shadowing typedef" + #~ msgstr "ANSI C verbiedt het verbergen van een typedef door parameter `%s'" + +-#~ msgid "parameter `%s' points to incomplete type" +-#~ msgstr "parameter `%s' wijst naar een onvolledig type" +- + #~ msgid "parameter points to incomplete type" + #~ msgstr "parameter wijst naar een onvolledig type" + +@@ -22868,10 +22550,6 @@ + #~ msgstr "ongeldige beginwaarde" + + #, fuzzy +-#~ msgid "`%D' is not a namespace" +-#~ msgstr "`%s' is geen iterator" +- +-#, fuzzy + #~ msgid "`%T' is not a class or union type" + #~ msgstr "`%s' is smaller dan waarden van zijn type" + +@@ -22987,6 +22665,11 @@ + #~ msgid "ignoring pragma: %s" + #~ msgstr "pragma wordt genegeerd: %s" + ++# Is 'mode' enkel van toepassing op 'string', of ook op 'array'? ++#, fuzzy ++#~ msgid "Initialize local vars and arrays to zero" ++#~ msgstr "beginwaarde is geen array of string-modus" ++ + #~ msgid "`%s' cannot be statically allocated" + #~ msgstr "`%s' kan niet statisch gealloceerd worden" + +Index: gcc/po/sv.po +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/po/sv.po,v +retrieving revision 1.5.8.3 +retrieving revision 1.5.8.4 +diff -u -r1.5.8.3 -r1.5.8.4 +--- gcc/po/sv.po 14 Sep 2004 20:38:12 -0000 1.5.8.3 ++++ gcc/po/sv.po 7 Nov 2004 19:59:50 -0000 1.5.8.4 +@@ -27,7 +27,7 @@ + msgstr "" + "Project-Id-Version: gcc 3.2\n" + "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" +-"POT-Creation-Date: 2004-07-01 11:41-0700\n" ++"POT-Creation-Date: 2004-11-04 19:12-0800\n" + "PO-Revision-Date: 2002-08-26 12:58+0200\n" + "Last-Translator: Dennis Björklund \n" + "Language-Team: Swedish \n" +@@ -55,16 +55,16 @@ + msgid "`%s' attribute only applies to function types" + msgstr "attributet \"%s\" fungerar bara på funktionstyper" + +-#: attribs.c:416 c-common.c:4307 c-common.c:4326 c-common.c:4344 +-#: c-common.c:4371 c-common.c:4390 c-common.c:4413 c-common.c:4436 +-#: c-common.c:4462 c-common.c:4496 c-common.c:4540 c-common.c:4568 +-#: c-common.c:4596 c-common.c:4615 c-common.c:4870 c-common.c:4892 +-#: c-common.c:4927 c-common.c:4994 c-common.c:5040 c-common.c:5098 +-#: c-common.c:5129 c-common.c:5475 c-common.c:5498 c-common.c:5537 +-#: config/arm/arm.c:2281 config/arm/arm.c:2308 config/avr/avr.c:4539 +-#: config/h8300/h8300.c:4284 config/h8300/h8300.c:4307 config/i386/i386.c:1620 +-#: config/i386/i386.c:15397 config/i386/winnt.c:86 config/ia64/ia64.c:1057 +-#: config/ip2k/ip2k.c:3151 ++#: attribs.c:416 c-common.c:4306 c-common.c:4325 c-common.c:4343 ++#: c-common.c:4370 c-common.c:4389 c-common.c:4412 c-common.c:4435 ++#: c-common.c:4461 c-common.c:4495 c-common.c:4539 c-common.c:4567 ++#: c-common.c:4595 c-common.c:4614 c-common.c:4881 c-common.c:4903 ++#: c-common.c:4938 c-common.c:5005 c-common.c:5051 c-common.c:5109 ++#: c-common.c:5140 c-common.c:5440 c-common.c:5463 c-common.c:5502 ++#: config/arm/arm.c:2281 config/arm/arm.c:2308 config/avr/avr.c:4504 ++#: config/h8300/h8300.c:4284 config/h8300/h8300.c:4307 config/i386/i386.c:1626 ++#: config/i386/i386.c:15398 config/i386/winnt.c:86 config/ia64/ia64.c:1057 ++#: config/ip2k/ip2k.c:3151 config/rs6000/rs6000.c:15035 + #, c-format + msgid "`%s' attribute ignored" + msgstr "attributet `%s' ignorerat" +@@ -138,7 +138,7 @@ + + #. We can, however, treat "undefined" any way we please. + #. Call abort to encourage the user to fix the program. +-#: builtins.c:4134 c-typeck.c:1733 ++#: builtins.c:4134 c-typeck.c:1713 + msgid "if this code is reached, the program will abort" + msgstr "" + +@@ -176,408 +176,413 @@ + msgid "target format does not support infinity" + msgstr "målprocessorn stödjer inte THUMB-instruktioner" + +-#: c-common.c:917 ++#: c-common.c:916 + msgid "%Hsuggest explicit braces to avoid ambiguous `else'" + msgstr "" + +-#: c-common.c:1141 ++#: c-common.c:1140 + #, fuzzy + msgid "%J'%D' is not defined outside of function scope" + msgstr "\"%s\" är inte definierad utanför funktions-scope" + +-#: c-common.c:1161 ++#: c-common.c:1160 + #, c-format + msgid "string length `%d' is greater than the length `%d' ISO C%d compilers are required to support" + msgstr "stränglängden \"%d\" är större än den minsta längden \"%d\" som ISO C%d kompilatorer behöver stödja" + +-#: c-common.c:1201 ++#: c-common.c:1200 + msgid "overflow in constant expression" + msgstr "spill i konstant uttryck" + +-#: c-common.c:1221 ++#: c-common.c:1220 + msgid "integer overflow in expression" + msgstr "heltalsspill i uttryck" + +-#: c-common.c:1230 ++#: c-common.c:1229 + msgid "floating point overflow in expression" + msgstr "flyttalsspill i uttryck" + +-#: c-common.c:1236 ++#: c-common.c:1235 + #, fuzzy + msgid "vector overflow in expression" + msgstr "heltalsspill i uttryck" + + #. This detects cases like converting -129 or 256 to unsigned char. +-#: c-common.c:1258 ++#: c-common.c:1257 + msgid "large integer implicitly truncated to unsigned type" + msgstr "stort heltal implicit trunkerat till unsigned typ" + +-#: c-common.c:1260 ++#: c-common.c:1259 + msgid "negative integer implicitly converted to unsigned type" + msgstr "negativt heltal implicit konverterat till unsigned typ" + +-#: c-common.c:1306 ++#: c-common.c:1305 + msgid "overflow in implicit constant conversion" + msgstr "spill i implicit constant konvertering" + +-#: c-common.c:1442 ++#: c-common.c:1441 + #, c-format + msgid "operation on `%s' may be undefined" + msgstr "operation på \"%s\" kan vara odefinierad" + +-#: c-common.c:1726 ++#: c-common.c:1725 + msgid "expression statement has incomplete type" + msgstr "uttryckssats har inkomplett typ" + +-#: c-common.c:1758 ++#: c-common.c:1757 + msgid "case label does not reduce to an integer constant" + msgstr "case-etikett reducerar inte till en heltalskonstant" + +-#: c-common.c:2088 ++#: c-common.c:2087 + msgid "invalid truth-value expression" + msgstr "ogiltigt sanningsvärdeuttryck" + +-#: c-common.c:2139 ++#: c-common.c:2138 + #, c-format + msgid "invalid operands to binary %s" + msgstr "ogiltiga operander till binär %s" + +-#: c-common.c:2373 ++#: c-common.c:2372 + msgid "comparison is always false due to limited range of data type" + msgstr "jämförelsen är alltid falsk på grund av begränsat intervall för datatypen" + +-#: c-common.c:2375 ++#: c-common.c:2374 + msgid "comparison is always true due to limited range of data type" + msgstr "jämförelsen är alltid sann på grund av begränsat intervall för datatypen" + +-#: c-common.c:2445 ++#: c-common.c:2444 + msgid "comparison of unsigned expression >= 0 is always true" + msgstr "jämförelse med unsigned-uttryck >= 0 är alltid sant" + +-#: c-common.c:2454 ++#: c-common.c:2453 + msgid "comparison of unsigned expression < 0 is always false" + msgstr "jämförelse med unsigned-uttryck < 0 är alltid falskt" + +-#: c-common.c:2499 ++#: c-common.c:2498 + msgid "pointer of type `void *' used in arithmetic" + msgstr "pekare av typen \"void *\" använd med aritmetik" + +-#: c-common.c:2505 ++#: c-common.c:2504 + msgid "pointer to a function used in arithmetic" + msgstr "pekare till funktion använd med aritmetik" + +-#: c-common.c:2511 ++#: c-common.c:2510 + msgid "pointer to member function used in arithmetic" + msgstr "pekare till medlemsfunktion använd med aritmetik" + +-#: c-common.c:2600 f/com.c:14734 ++#: c-common.c:2599 f/com.c:14734 + msgid "struct type value used where scalar is required" + msgstr "struct-värde använt där skalär krävs" + +-#: c-common.c:2604 f/com.c:14738 ++#: c-common.c:2603 f/com.c:14738 + msgid "union type value used where scalar is required" + msgstr "union-värde använt där skalär krävs" + +-#: c-common.c:2608 f/com.c:14742 ++#: c-common.c:2607 f/com.c:14742 + msgid "array type value used where scalar is required" + msgstr "fält-värde använd där skalär krävs" + + #. Common Ada/Pascal programmer's mistake. We always warn + #. about this since it is so bad. +-#: c-common.c:2645 ++#: c-common.c:2644 + msgid "the address of `%D', will always evaluate as `true'" + msgstr "" + +-#: c-common.c:2739 f/com.c:14874 ++#: c-common.c:2738 f/com.c:14874 + msgid "suggest parentheses around assignment used as truth value" + msgstr "föreslår parenteser runt tilldelning som används som sanningsvärde" + +-#: c-common.c:2785 c-common.c:2825 ++#: c-common.c:2784 c-common.c:2824 + msgid "invalid use of `restrict'" + msgstr "ogiltigt användande av \"restrict\"" + +-#: c-common.c:2935 ++#: c-common.c:2934 + #, fuzzy + msgid "invalid application of `sizeof' to a function type" + msgstr "ISO C++ förbjuder användning av \"sizeof\" på funktioner" + +-#: c-common.c:2945 ++#: c-common.c:2944 + #, fuzzy, c-format + msgid "invalid application of `%s' to a void type" + msgstr "ogiltig operation på oinstansierad typ" + +-#: c-common.c:2951 ++#: c-common.c:2950 + #, fuzzy + msgid "invalid application of `%s' to incomplete type `%T' " + msgstr "sizeof applicerat på en inkomplett typ" + +-#: c-common.c:2992 ++#: c-common.c:2991 + msgid "`__alignof' applied to a bit-field" + msgstr "" + +-#: c-common.c:3484 ++#: c-common.c:3483 + #, fuzzy, c-format + msgid "cannot disable built-in function `%s'" + msgstr "döljer inbyggd funktion \"%s\"" + +-#: c-common.c:3645 c-typeck.c:1974 ++#: c-common.c:3644 c-typeck.c:1954 + #, c-format + msgid "too few arguments to function `%s'" + msgstr "för få argument till funktionen \"%s\"" + +-#: c-common.c:3651 c-typeck.c:1835 ++#: c-common.c:3650 c-typeck.c:1815 + #, c-format + msgid "too many arguments to function `%s'" + msgstr "för många argument till funktionen \"%s\"" + +-#: c-common.c:3670 ++#: c-common.c:3669 + #, fuzzy, c-format + msgid "non-floating-point argument to function `%s'" + msgstr "för många argument till funktionen \"%s\"" + +-#: c-common.c:3897 ++#: c-common.c:3896 + msgid "pointers are not permitted as case values" + msgstr "pekare är inte tillåtna case-värden" + +-#: c-common.c:3901 ++#: c-common.c:3900 + #, fuzzy + msgid "range expressions in switch statements are non-standard" + msgstr "ISO C förbjuder intervalluttryck i switch-satser" + +-#: c-common.c:3930 ++#: c-common.c:3929 + msgid "empty range specified" + msgstr "tomt intervall angivet" + +-#: c-common.c:3981 ++#: c-common.c:3980 + msgid "duplicate (or overlapping) case value" + msgstr "dubbla (eller överlappand) case-värden" + +-#: c-common.c:3982 ++#: c-common.c:3981 + #, fuzzy + msgid "%Jthis is the first entry overlapping that value" + msgstr "detta är det första fallet som överlappar det värdet" + +-#: c-common.c:3986 ++#: c-common.c:3985 + msgid "duplicate case value" + msgstr "upprepat case-värde" + +-#: c-common.c:3987 ++#: c-common.c:3986 + #, fuzzy + msgid "%Jpreviously used here" + msgstr "tidigare använd här" + +-#: c-common.c:3991 ++#: c-common.c:3990 + msgid "multiple default labels in one switch" + msgstr "flera default-etiketter i en switch" + +-#: c-common.c:3992 ++#: c-common.c:3991 + #, fuzzy + msgid "%Jthis is the first default label" + msgstr "detta är den första default-etiketten" + +-#: c-common.c:4017 ++#: c-common.c:4016 + #, fuzzy + msgid "taking the address of a label is non-standard" + msgstr "ISO C++ förbjuder att man tar adressen till funktionen \"::main\"" + +-#: c-common.c:4063 ++#: c-common.c:4062 + msgid "%Hignoring return value of `%D', declared with attribute warn_unused_result" + msgstr "" + +-#: c-common.c:4068 ++#: c-common.c:4067 + msgid "%Hignoring return value of function declared with attribute warn_unused_result" + msgstr "" + +-#: c-common.c:4649 ++#: c-common.c:4651 + #, c-format + msgid "unknown machine mode `%s'" + msgstr "okänt maskinläge `%s'" + +-#: c-common.c:4652 ++#: c-common.c:4654 + #, c-format + msgid "no data type for mode `%s'" + msgstr "ingen datatyp för läge `%s'" + +-#: c-common.c:4656 ++#: c-common.c:4658 + #, fuzzy, c-format + msgid "invalid pointer mode `%s'" + msgstr "ogiltig operand för %V" + +-#: c-common.c:4663 c-common.c:5226 ++#: c-common.c:4665 c-common.c:5237 + #, fuzzy, c-format + msgid "unable to emulate '%s'" + msgstr "kan inte öppna fil \"%s\"" + +-#: c-common.c:4707 ++#: c-common.c:4686 ++#, fuzzy, c-format ++msgid "mode `%s' applied to inappropriate type" ++msgstr "sizeof applicerat på en inkomplett typ" ++ ++#: c-common.c:4718 + #, fuzzy + msgid "%Jsection attribute cannot be specified for local variables" + msgstr "attributet \"section\" kan inte anges för lokala variabler" + +-#: c-common.c:4718 ++#: c-common.c:4729 + #, fuzzy + msgid "%Jsection of '%D' conflicts with previous declaration" + msgstr "sektion \"%s\" står i konflikt med tidigare deklaration" + +-#: c-common.c:4727 ++#: c-common.c:4738 + #, fuzzy + msgid "%Jsection attribute not allowed for '%D'" + msgstr "attributet \"section\" är inte tillåten för \"%s\"" + +-#: c-common.c:4733 ++#: c-common.c:4744 + #, fuzzy + msgid "%Jsection attributes are not supported for this target" + msgstr "attributet \"section\" stöds inte för denna målarkitektur" + +-#: c-common.c:4771 ++#: c-common.c:4782 + msgid "requested alignment is not a constant" + msgstr "efterfrågad minnesjustering är inte konstant" + +-#: c-common.c:4776 ++#: c-common.c:4787 + msgid "requested alignment is not a power of 2" + msgstr "efterrågad minnesjustering är inte en potens av 2" + +-#: c-common.c:4781 ++#: c-common.c:4792 + msgid "requested alignment is too large" + msgstr "efterfrågad minnesjustering är för stor" + +-#: c-common.c:4807 ++#: c-common.c:4818 + #, fuzzy + msgid "%Jalignment may not be specified for '%D'" + msgstr "minnesjustering kan inte anges för \"%s\"" + +-#: c-common.c:4845 ++#: c-common.c:4856 + #, fuzzy + msgid "%J'%D' defined both normally and as an alias" + msgstr "\"%s\" är definierad både normalt och som ett alias" + +-#: c-common.c:4855 ++#: c-common.c:4866 + msgid "alias arg not a string" + msgstr "aliasargumentet är inte en sträng" + +-#: c-common.c:4898 ++#: c-common.c:4909 + #, fuzzy + msgid "visibility arg not a string" + msgstr "aliasargumentet är inte en sträng" + +-#: c-common.c:4911 ++#: c-common.c:4922 + msgid "visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\"" + msgstr "" + +-#: c-common.c:4937 ++#: c-common.c:4948 + #, fuzzy + msgid "tls_model arg not a string" + msgstr "aliasargumentet är inte en sträng" + +-#: c-common.c:4946 ++#: c-common.c:4957 + msgid "tls_model arg must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\"" + msgstr "" + +-#: c-common.c:4968 c-common.c:5014 ++#: c-common.c:4979 c-common.c:5025 + #, fuzzy + msgid "%J'%E' attribute applies only to functions" + msgstr "attributet \"%s\" fungerar bara på funktioner" + +-#: c-common.c:4973 c-common.c:5019 ++#: c-common.c:4984 c-common.c:5030 + #, fuzzy + msgid "%Jcan't set '%E' attribute after definition" + msgstr "kan inte sätta attributet \"%s\" efter definitionen" + +-#: c-common.c:5095 ++#: c-common.c:5106 + #, c-format + msgid "`%s' attribute ignored for `%s'" + msgstr "attributet `%s' ignorerat för \"%s\"" + +-#: c-common.c:5158 ++#: c-common.c:5169 + #, c-format + msgid "invalid vector type for attribute `%s'" + msgstr "ogiltigt vektortype för attribut \"%s\"" + +-#: c-common.c:5182 c-common.c:5214 ++#: c-common.c:5193 c-common.c:5225 + msgid "no vector mode with the size and type specified could be found" + msgstr "" + +-#: c-common.c:5316 ++#: c-common.c:5281 + #, fuzzy + msgid "nonnull attribute without arguments on a non-prototype" + msgstr "antalet argument matchar inte prototypen" + +-#: c-common.c:5331 ++#: c-common.c:5296 + #, fuzzy, c-format + msgid "nonnull argument has invalid operand number (arg %lu)" + msgstr "formatsträng har ett ogiltigt antal operander" + +-#: c-common.c:5350 ++#: c-common.c:5315 + #, c-format + msgid "nonnull argument with out-of-range operand number (arg %lu, operand %lu)" + msgstr "" + +-#: c-common.c:5358 ++#: c-common.c:5323 + #, c-format + msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)" + msgstr "" + +-#: c-common.c:5438 ++#: c-common.c:5403 + #, c-format + msgid "null argument where non-null required (arg %lu)" + msgstr "" + +-#: c-common.c:5509 ++#: c-common.c:5474 + #, fuzzy + msgid "cleanup arg not an identifier" + msgstr "predikat måste vara en identifierare" + +-#: c-common.c:5516 ++#: c-common.c:5481 + #, fuzzy + msgid "cleanup arg not a function" + msgstr "anropat objekt är inte en funktion" + +-#: c-common.c:5877 ++#: c-common.c:5842 + #, c-format + msgid "%s at end of input" + msgstr "%s vid slutet av indatan" + +-#: c-common.c:5883 ++#: c-common.c:5848 + #, c-format + msgid "%s before %s'%c'" + msgstr "%s före %s'%c'" + +-#: c-common.c:5885 ++#: c-common.c:5850 + #, c-format + msgid "%s before %s'\\x%x'" + msgstr "%s före %s'\\x%x'" + +-#: c-common.c:5889 ++#: c-common.c:5854 + #, c-format + msgid "%s before string constant" + msgstr "%s före strängkonstant" + +-#: c-common.c:5891 ++#: c-common.c:5856 + #, c-format + msgid "%s before numeric constant" + msgstr "%s före numerisk konstant" + +-#: c-common.c:5893 ++#: c-common.c:5858 + #, c-format + msgid "%s before \"%s\"" + msgstr "%s före \"%s\"" + +-#: c-common.c:5895 ++#: c-common.c:5860 + #, c-format + msgid "%s before '%s' token" + msgstr "%s före symbolen '%s'" + + #. Use `%s' to print the string in case there are any escape + #. characters in the message. +-#: c-common.c:5897 c-typeck.c:2612 c-typeck.c:4004 c-typeck.c:4019 +-#: c-typeck.c:4034 final.c:2776 final.c:2778 gcc.c:4581 rtl-error.c:109 +-#: toplev.c:1357 config/cris/cris.c:552 cp/parser.c:1848 cp/typeck.c:4155 ++#: c-common.c:5862 c-typeck.c:2592 c-typeck.c:3984 c-typeck.c:3999 ++#: c-typeck.c:4014 final.c:2776 final.c:2778 gcc.c:4584 rtl-error.c:109 ++#: toplev.c:1357 config/cris/cris.c:552 cp/parser.c:1848 cp/typeck.c:4173 + #: java/expr.c:356 java/verify.c:1456 java/verify.c:1457 java/verify.c:1472 + #, c-format + msgid "%s" + msgstr "%s" + +-#: c-convert.c:82 c-typeck.c:1211 c-typeck.c:3444 cp/typeck.c:1363 +-#: cp/typeck.c:5708 treelang/tree-convert.c:79 ++#: c-convert.c:82 c-typeck.c:1211 c-typeck.c:3424 cp/typeck.c:1363 ++#: cp/typeck.c:5729 treelang/tree-convert.c:79 + msgid "void value not ignored as it ought to be" + msgstr "värdet av typen void ignoreras inte vilket bör göras" + +@@ -777,412 +782,412 @@ + msgid "%Jnon-const declaration of '%D' follows const declaration" + msgstr "icke-statisk deklaration av \"%s\" följer på statisk" + +-#: c-decl.c:1262 ++#: c-decl.c:1267 + #, fuzzy + msgid "%Jredundant redeclaration of '%D'" + msgstr "redundant omdeklaration av \"%s\" i samma scope" + +-#: c-decl.c:1581 ++#: c-decl.c:1586 + #, fuzzy + msgid "%Jdeclaration of '%D' shadows a parameter" + msgstr "deklaration av \"%s\" döljer en parameter" + +-#: c-decl.c:1583 ++#: c-decl.c:1588 + #, fuzzy + msgid "%Jdeclaration of '%D' shadows a global declaration" + msgstr "deklaration av \"%s\" döljer en parameter" + + # local, det kan troligen vara både lokal variabel och lokal funktion?? +-#: c-decl.c:1585 ++#: c-decl.c:1590 + #, fuzzy + msgid "%Jdeclaration of '%D' shadows a previous local" + msgstr "deklaration av \"%s\" döljer en tidigare lokal" + +-#: c-decl.c:1587 cp/name-lookup.c:969 cp/name-lookup.c:992 ++#: c-decl.c:1592 cp/name-lookup.c:969 cp/name-lookup.c:992 + #: cp/name-lookup.c:1000 + #, fuzzy + msgid "%Jshadowed declaration is here" + msgstr "tidigare deklaration av \"%s\"" + +-#: c-decl.c:1697 ++#: c-decl.c:1702 + #, c-format + msgid "nested extern declaration of `%s'" + msgstr "nästlad extern deklaration av \"%s\"" + +-#: c-decl.c:1838 objc/objc-act.c:2534 objc/objc-act.c:6794 ++#: c-decl.c:1843 objc/objc-act.c:2534 objc/objc-act.c:6794 + #, fuzzy + msgid "%Jprevious declaration of '%D'" + msgstr "tidigare deklaration av \"%s\"" + +-#: c-decl.c:1879 c-decl.c:1881 ++#: c-decl.c:1884 c-decl.c:1886 + #, c-format + msgid "implicit declaration of function `%s'" + msgstr "implicit deklaration av funktion \"%s\"" + +-#: c-decl.c:1897 ++#: c-decl.c:1902 + #, c-format + msgid "`%s' undeclared here (not in a function)" + msgstr "\"%s\" odeklarerad här (inte i en funktion)" + +-#: c-decl.c:1903 ++#: c-decl.c:1908 + #, c-format + msgid "`%s' undeclared (first use in this function)" + msgstr "\"%s\" odeklarerad (första förekomsten i denna funktionen)" + +-#: c-decl.c:1908 ++#: c-decl.c:1913 + msgid "(Each undeclared identifier is reported only once" + msgstr "(Varje odeklarerad identifierare rapporteras bara" + +-#: c-decl.c:1909 ++#: c-decl.c:1914 + msgid "for each function it appears in.)" + msgstr "en gång för varje funktion den finns i.)" + +-#: c-decl.c:1962 ++#: c-decl.c:1967 + #, c-format + msgid "label %s referenced outside of any function" + msgstr "etikett %s är refererad till utanför en funktion" + +-#: c-decl.c:2009 ++#: c-decl.c:2014 + #, c-format + msgid "duplicate label declaration `%s'" + msgstr "dubbel deklaration av etikett \"%s\"" + +-#: c-decl.c:2010 ++#: c-decl.c:2015 + #, fuzzy + msgid "%Jthis is a previous declaration" + msgstr "detta är en tidigare deklaration" + +-#: c-decl.c:2045 ++#: c-decl.c:2050 + #, fuzzy + msgid "%Hduplicate label `%D'" + msgstr "upprepning av medlem \"%s\"" + +-#: c-decl.c:2047 ++#: c-decl.c:2052 + #, fuzzy + msgid "%J`%D' previously defined here" + msgstr "\"%s\" definierades tidigare här" + +-#: c-decl.c:2049 ++#: c-decl.c:2054 + #, fuzzy + msgid "%J`%D' previously declared here" + msgstr "\"%s\" är tidigare deklarerad här" + +-#: c-decl.c:2069 ++#: c-decl.c:2074 + msgid "%Htraditional C lacks a separate namespace for labels, identifier `%s' conflicts" + msgstr "" + +-#: c-decl.c:2140 ++#: c-decl.c:2145 + #, fuzzy + msgid "%H`%s' defined as wrong kind of tag" + msgstr "\"%s\" omdeklarerad som en annan sorts symbol" + +-#: c-decl.c:2378 ++#: c-decl.c:2383 + msgid "unnamed struct/union that defines no instances" + msgstr "odöpt struktur/union som inte har någon instans" + +-#: c-decl.c:2397 ++#: c-decl.c:2402 + msgid "useless keyword or type name in empty declaration" + msgstr "oanvändbart nyckelord eller typnamn i tom deklaration" + +-#: c-decl.c:2404 ++#: c-decl.c:2409 + msgid "two types specified in one empty declaration" + msgstr "två typer angivna i en tom deklaration" + +-#: c-decl.c:2409 c-parse.y:735 c-parse.y:737 objc/objc-parse.y:776 +-#: objc/objc-parse.y:778 objc/objc-parse.y:3017 ++#: c-decl.c:2414 c-parse.y:735 c-parse.y:737 objc/objc-parse.y:776 ++#: objc/objc-parse.y:778 objc/objc-parse.y:3016 + msgid "empty declaration" + msgstr "tom deklaration" + +-#: c-decl.c:2435 ++#: c-decl.c:2440 + #, fuzzy + msgid "ISO C90 does not support `static' or type qualifiers in parameter array declarators" + msgstr "ISO C89 stöder inte flexibla fältmedlemmar" + +-#: c-decl.c:2437 ++#: c-decl.c:2442 + #, fuzzy + msgid "ISO C90 does not support `[*]' array declarators" + msgstr "ISO C89 stöder inte flexibla fältmedlemmar" + +-#: c-decl.c:2440 ++#: c-decl.c:2445 + msgid "GCC does not yet properly implement `[*]' array declarators" + msgstr "" + +-#: c-decl.c:2456 ++#: c-decl.c:2461 + msgid "static or type qualifiers in abstract declarator" + msgstr "" + +-#: c-decl.c:2526 ++#: c-decl.c:2531 + #, fuzzy + msgid "%J'%D' is usually a function" + msgstr "\"%s\" är vanligtvis en funktion" + +-#: c-decl.c:2535 ++#: c-decl.c:2540 + #, fuzzy, c-format + msgid "typedef `%s' is initialized (use __typeof__ instead)" + msgstr "typedef \"%s\" är initierad" + +-#: c-decl.c:2541 ++#: c-decl.c:2546 + #, c-format + msgid "function `%s' is initialized like a variable" + msgstr "funktion \"%s\" är initierad som en variabel" + + #. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE. +-#: c-decl.c:2548 ++#: c-decl.c:2553 + #, c-format + msgid "parameter `%s' is initialized" + msgstr "parameter \"%s\" är initierad" + +-#: c-decl.c:2568 c-typeck.c:4254 ++#: c-decl.c:2573 c-typeck.c:4234 + msgid "variable-sized object may not be initialized" + msgstr "objekt med variabel storlek kan inte initieras" + +-#: c-decl.c:2574 ++#: c-decl.c:2579 + #, c-format + msgid "variable `%s' has initializer but incomplete type" + msgstr "variabel \"%s\" har initierare men är av inkomplett typ" + +-#: c-decl.c:2580 ++#: c-decl.c:2585 + #, c-format + msgid "elements of array `%s' have incomplete type" + msgstr "elementen i fält \"%s\" har en ofullständig typ" + +-#: c-decl.c:2649 c-decl.c:5451 cp/decl.c:3761 cp/decl.c:10141 ++#: c-decl.c:2654 c-decl.c:5462 cp/decl.c:3775 cp/decl.c:10238 + #, fuzzy + msgid "%Jinline function '%D' given attribute noinline" + msgstr "inbyggd funktion \"%s\" deklarerad som icke-funktion" + +-#: c-decl.c:2725 ++#: c-decl.c:2730 + #, fuzzy + msgid "%Jinitializer fails to determine size of '%D'" + msgstr "initierare misslyckas med att bestämma storlek på \"%s\"" + +-#: c-decl.c:2730 ++#: c-decl.c:2735 + #, fuzzy + msgid "%Jarray size missing in '%D'" + msgstr "fältstorlek saknas i \"%s\"" + +-#: c-decl.c:2746 ++#: c-decl.c:2751 + #, fuzzy + msgid "%Jzero or negative size array '%D'" + msgstr "noll eller negativ storlek på fält \"%s\"" + +-#: c-decl.c:2774 ++#: c-decl.c:2779 + #, fuzzy + msgid "%Jstorage size of '%D' isn't known" + msgstr "lagringsstorlek på \"%s\" är okänd" + +-#: c-decl.c:2784 ++#: c-decl.c:2789 + #, fuzzy + msgid "%Jstorage size of '%D' isn't constant" + msgstr "lagringsstorlek på \"%s\" är inte konstant" + +-#: c-decl.c:2867 ++#: c-decl.c:2872 + #, fuzzy + msgid "%Jignoring asm-specifier for non-static local variable '%D'" + msgstr "ignorerar asm för ickestatisk lokal variabel \"%s\"" + +-#: c-decl.c:2978 ++#: c-decl.c:2983 + msgid "ISO C forbids forward parameter declarations" + msgstr "" + +-#: c-decl.c:3160 ++#: c-decl.c:3165 + #, fuzzy + msgid "" + msgstr "" + +-#: c-decl.c:3169 ++#: c-decl.c:3174 + #, c-format + msgid "bit-field `%s' width not an integer constant" + msgstr "" + +-#: c-decl.c:3177 ++#: c-decl.c:3182 + #, c-format + msgid "negative width in bit-field `%s'" + msgstr "negativ storlek i bitfält \"%s\"" + +-#: c-decl.c:3182 ++#: c-decl.c:3187 + #, c-format + msgid "zero width for bit-field `%s'" + msgstr "Storleken noll på bitfält \"%s\"" + +-#: c-decl.c:3192 ++#: c-decl.c:3197 + #, c-format + msgid "bit-field `%s' has invalid type" + msgstr "bitfält \"%s\" har en icke godkänd typ" + +-#: c-decl.c:3201 ++#: c-decl.c:3206 + #, fuzzy, c-format + msgid "type of bit-field `%s' is a GCC extension" + msgstr "#%s är en GCC-utvidgning" + +-#: c-decl.c:3210 ++#: c-decl.c:3215 + #, c-format + msgid "width of `%s' exceeds its type" + msgstr "storleken på \"%s\" är större än sin typ" + +-#: c-decl.c:3220 ++#: c-decl.c:3225 + #, c-format + msgid "`%s' is narrower than values of its type" + msgstr "" + +-#: c-decl.c:3370 cp/decl.c:6805 ++#: c-decl.c:3375 cp/decl.c:6900 + msgid "`long long long' is too long for GCC" + msgstr "\"long long long\" är för långt för GCC" + +-#: c-decl.c:3375 ++#: c-decl.c:3380 + #, fuzzy + msgid "ISO C90 does not support `long long'" + msgstr "ISO C89 stödjer inte \"long long\"'" + +-#: c-decl.c:3384 c-decl.c:3387 cp/decl.c:6810 ++#: c-decl.c:3389 c-decl.c:3392 cp/decl.c:6905 + #, c-format + msgid "duplicate `%s'" + msgstr "flera \"%s\"" + +-#: c-decl.c:3397 cp/decl.c:6816 ++#: c-decl.c:3402 cp/decl.c:6911 + msgid "`__thread' before `extern'" + msgstr "" + +-#: c-decl.c:3399 cp/decl.c:6818 ++#: c-decl.c:3404 cp/decl.c:6913 + msgid "`__thread' before `static'" + msgstr "" + +-#: c-decl.c:3407 cp/decl.c:6845 ++#: c-decl.c:3412 cp/decl.c:6940 + #, c-format + msgid "two or more data types in declaration of `%s'" + msgstr "två eller fler datatyper i deklaration av \"%s\"" + +-#: c-decl.c:3427 cp/decl.c:6850 ++#: c-decl.c:3432 cp/decl.c:6945 + #, c-format + msgid "`%s' fails to be a typedef or built in type" + msgstr "" + +-#: c-decl.c:3466 ++#: c-decl.c:3471 + #, c-format + msgid "type defaults to `int' in declaration of `%s'" + msgstr "" + +-#: c-decl.c:3495 ++#: c-decl.c:3500 + #, c-format + msgid "both long and short specified for `%s'" + msgstr "både long och short angivet för \"%s\"" + +-#: c-decl.c:3499 cp/decl.c:6950 ++#: c-decl.c:3504 cp/decl.c:7045 + #, c-format + msgid "long or short specified with char for `%s'" + msgstr "long eller short angiven med char för \"%s\"" + +-#: c-decl.c:3506 cp/decl.c:6954 ++#: c-decl.c:3511 cp/decl.c:7049 + #, c-format + msgid "long or short specified with floating type for `%s'" + msgstr "long eller short angiven med flyttalstyp för \"%s\"" + +-#: c-decl.c:3509 ++#: c-decl.c:3514 + msgid "the only valid combination is `long double'" + msgstr "den enda giltiga kombinationen är \"long double\"" + +-#: c-decl.c:3515 ++#: c-decl.c:3520 + #, c-format + msgid "both signed and unsigned specified for `%s'" + msgstr "både signed och unsigned specificerat för \"%s\"" + +-#: c-decl.c:3517 cp/decl.c:6943 ++#: c-decl.c:3522 cp/decl.c:7038 + #, c-format + msgid "long, short, signed or unsigned invalid for `%s'" + msgstr "long, short, signed eller unsigned ogiltig för \"%s\"" + +-#: c-decl.c:3523 cp/decl.c:6963 ++#: c-decl.c:3528 cp/decl.c:7058 + #, c-format + msgid "long, short, signed or unsigned used invalidly for `%s'" + msgstr "long, short, signed eller unsigned använd felaktigt på \"%s\"" + +-#: c-decl.c:3541 cp/decl.c:6984 ++#: c-decl.c:3546 cp/decl.c:7079 + #, c-format + msgid "complex invalid for `%s'" + msgstr "complex ogiltig för \"%s\"" + +-#: c-decl.c:3583 ++#: c-decl.c:3588 + #, fuzzy + msgid "ISO C90 does not support complex types" + msgstr "ISO C89 stöder inte typen complex" + +-#: c-decl.c:3595 ++#: c-decl.c:3600 + msgid "ISO C does not support plain `complex' meaning `double complex'" + msgstr "ISO C stöder inte bara \"complex\" i meningen \"double complex\"" + +-#: c-decl.c:3601 c-decl.c:3613 ++#: c-decl.c:3606 c-decl.c:3618 + msgid "ISO C does not support complex integer types" + msgstr "ISO C stöder inte komplexa heltalstyper" + +-#: c-decl.c:3643 c-decl.c:4104 cp/decl.c:7576 ++#: c-decl.c:3648 c-decl.c:4115 cp/decl.c:7671 + msgid "duplicate `const'" + msgstr "upprepning av \"const\"" + +-#: c-decl.c:3645 c-decl.c:4108 cp/decl.c:7580 ++#: c-decl.c:3650 c-decl.c:4119 cp/decl.c:7675 + msgid "duplicate `restrict'" + msgstr "upprepning av \"restrict\"" + +-#: c-decl.c:3647 c-decl.c:4106 cp/decl.c:7578 ++#: c-decl.c:3652 c-decl.c:4117 cp/decl.c:7673 + msgid "duplicate `volatile'" + msgstr "upprepning av \"volatile\"" + +-#: c-decl.c:3676 cp/decl.c:7147 ++#: c-decl.c:3681 cp/decl.c:7242 + #, c-format + msgid "multiple storage classes in declaration of `%s'" + msgstr "flera lagringsklasser i deklaration av \"%s\"" + +-#: c-decl.c:3686 ++#: c-decl.c:3691 + msgid "function definition declared `auto'" + msgstr "funktionsdefinition deklarerad som \"auto\"" + +-#: c-decl.c:3688 ++#: c-decl.c:3693 + msgid "function definition declared `register'" + msgstr "funktionsdefinition deklarerad som \"register\"" + +-#: c-decl.c:3690 ++#: c-decl.c:3695 + msgid "function definition declared `typedef'" + msgstr "funktionsdefinition deklarerad som \"typedef\"" + +-#: c-decl.c:3692 ++#: c-decl.c:3697 + #, fuzzy + msgid "function definition declared `__thread'" + msgstr "funktionsdefinition deklarerad som \"typedef\"" + +-#: c-decl.c:3705 ++#: c-decl.c:3710 + #, c-format + msgid "storage class specified for structure field `%s'" + msgstr "lagringsklass angiven för strukturfält \"%s\"" + +-#: c-decl.c:3709 cp/decl.c:7192 ++#: c-decl.c:3714 cp/decl.c:7287 + #, c-format + msgid "storage class specified for parameter `%s'" + msgstr "lagringsklass angiven för parameter \"%s\"" + +-#: c-decl.c:3712 cp/decl.c:7194 ++#: c-decl.c:3717 cp/decl.c:7289 + msgid "storage class specified for typename" + msgstr "lagringsklass angiven för typnamn" + +-#: c-decl.c:3724 cp/decl.c:7209 ++#: c-decl.c:3729 cp/decl.c:7304 + #, c-format + msgid "`%s' initialized and declared `extern'" + msgstr "`%s' initierad och deklarerad \"extern\"" + +-#: c-decl.c:3726 cp/decl.c:7212 ++#: c-decl.c:3731 cp/decl.c:7307 + #, c-format + msgid "`%s' has both `extern' and initializer" + msgstr "\"%s\" är både \"extern\" och initierare" + +-#: c-decl.c:3731 ++#: c-decl.c:3736 + #, fuzzy, c-format + msgid "file-scope declaration of `%s' specifies `auto'" + msgstr "toppnivådeklaration av \"%s\" anger \"auto\"" + +-#: c-decl.c:3736 cp/decl.c:7216 ++#: c-decl.c:3741 cp/decl.c:7311 + #, c-format + msgid "nested function `%s' declared `extern'" + msgstr "nästlad funktion \"%s\" är deklarerad \"extern\"" + +-#: c-decl.c:3742 cp/decl.c:7226 ++#: c-decl.c:3747 cp/decl.c:7321 + #, fuzzy, c-format + msgid "function-scope `%s' implicitly auto and declared `__thread'" + msgstr "funktion \"%s\" kan inte deklareras som \"mutable\"" +@@ -1190,469 +1195,469 @@ + #. Only the innermost declarator (making a parameter be of + #. array type which is converted to pointer type) + #. may have static or type qualifiers. +-#: c-decl.c:3781 c-decl.c:3974 ++#: c-decl.c:3786 c-decl.c:3979 + #, fuzzy + msgid "static or type qualifiers in non-parameter array declarator" + msgstr "två typer angivna i en tom deklaration" + +-#: c-decl.c:3825 ++#: c-decl.c:3830 + #, c-format + msgid "declaration of `%s' as array of voids" + msgstr "deklaration av \"%s\" som ett fält med void" + +-#: c-decl.c:3831 ++#: c-decl.c:3836 + #, c-format + msgid "declaration of `%s' as array of functions" + msgstr "deklaration av \"%s\" som ett fält med funktioner" + +-#: c-decl.c:3836 ++#: c-decl.c:3841 + #, fuzzy + msgid "invalid use of structure with flexible array member" + msgstr "ISO C89 stöder inte flexibla fältmedlemmar" + +-#: c-decl.c:3855 ++#: c-decl.c:3860 + #, c-format + msgid "size of array `%s' has non-integer type" + msgstr "storlek på fält \"%s\" är inte av heltalstyp" + +-#: c-decl.c:3860 ++#: c-decl.c:3865 + #, c-format + msgid "ISO C forbids zero-size array `%s'" + msgstr "ISO C förbjuder fält \"%s\" med storlek noll" + +-#: c-decl.c:3867 ++#: c-decl.c:3872 + #, c-format + msgid "size of array `%s' is negative" + msgstr "storlek på fält \"%s\" är negativt" + +-#: c-decl.c:3880 ++#: c-decl.c:3885 + #, fuzzy, c-format + msgid "ISO C90 forbids array `%s' whose size can't be evaluated" + msgstr "ISO C89 förbjuder fält \"%s\" vars storlek inte kan beräknas" + +-#: c-decl.c:3883 ++#: c-decl.c:3888 + #, fuzzy, c-format + msgid "ISO C90 forbids variable-size array `%s'" + msgstr "ISO C89 förbjuder fält \"%s\" med variabel storlek" + +-#: c-decl.c:3913 c-decl.c:4131 cp/decl.c:7755 ++#: c-decl.c:3918 c-decl.c:4142 cp/decl.c:7850 + #, c-format + msgid "size of array `%s' is too large" + msgstr "fältet \"%s\" är för stort" + +-#: c-decl.c:3939 ++#: c-decl.c:3944 + #, fuzzy + msgid "ISO C90 does not support flexible array members" + msgstr "ISO C89 stöder inte flexibla fältmedlemmar" + +-#: c-decl.c:3949 ++#: c-decl.c:3954 + msgid "array type has incomplete element type" + msgstr "fälttyp har inkomplett elementtyp" + +-#: c-decl.c:3994 cp/decl.c:7347 ++#: c-decl.c:4009 cp/decl.c:7442 + #, c-format + msgid "`%s' declared as function returning a function" + msgstr "\"%s\" är deklarerad som en funktion som returnerar en funktion" + +-#: c-decl.c:3999 cp/decl.c:7352 ++#: c-decl.c:4014 cp/decl.c:7447 + #, c-format + msgid "`%s' declared as function returning an array" + msgstr "\"%s\" är deklarerad som en funktion som returnerar ett fält" + +-#: c-decl.c:4027 ++#: c-decl.c:4038 + msgid "ISO C forbids qualified void function return type" + msgstr "" + +-#: c-decl.c:4031 ++#: c-decl.c:4042 + msgid "type qualifiers ignored on function return type" + msgstr "" + +-#: c-decl.c:4060 c-decl.c:4146 c-decl.c:4270 c-decl.c:4356 ++#: c-decl.c:4071 c-decl.c:4157 c-decl.c:4281 c-decl.c:4367 + msgid "ISO C forbids qualified function types" + msgstr "" + +-#: c-decl.c:4100 cp/decl.c:7572 ++#: c-decl.c:4111 cp/decl.c:7667 + msgid "invalid type modifier within pointer declarator" + msgstr "" + +-#: c-decl.c:4181 ++#: c-decl.c:4192 + msgid "ISO C forbids const or volatile function types" + msgstr "" + +-#: c-decl.c:4201 cp/decl.c:8036 ++#: c-decl.c:4212 + #, c-format + msgid "variable or field `%s' declared void" + msgstr "variabel eller fält \"%s\" deklarerad som void" + +-#: c-decl.c:4234 ++#: c-decl.c:4245 + msgid "attributes in parameter array declarator ignored" + msgstr "" + +-#: c-decl.c:4259 ++#: c-decl.c:4270 + msgid "invalid type modifier within array declarator" + msgstr "" + +-#: c-decl.c:4304 ++#: c-decl.c:4315 + #, c-format + msgid "field `%s' declared as a function" + msgstr "fält \"%s\" deklarerad som en funktion" + +-#: c-decl.c:4310 ++#: c-decl.c:4321 + #, c-format + msgid "field `%s' has incomplete type" + msgstr "fält \"%s\" har en inkomplett typ" + +-#: c-decl.c:4336 c-decl.c:4338 c-decl.c:4340 c-decl.c:4347 ++#: c-decl.c:4347 c-decl.c:4349 c-decl.c:4351 c-decl.c:4358 + #, c-format + msgid "invalid storage class for function `%s'" + msgstr "ogiltig lagringsklass för funktion \"%s\"" + +-#: c-decl.c:4362 ++#: c-decl.c:4373 + msgid "`noreturn' function returns non-void value" + msgstr "\"noreturn\"-funktion returnerar ett icke-void värde" + +-#: c-decl.c:4377 ++#: c-decl.c:4388 + msgid "cannot inline function `main'" + msgstr "kan inte inline:a funktion \"main\"" + +-#: c-decl.c:4431 ++#: c-decl.c:4442 + #, fuzzy + msgid "variable previously declared `static' redeclared `extern'" + msgstr "variabel eller fält \"%s\" deklarerad som void" + +-#: c-decl.c:4440 ++#: c-decl.c:4451 + #, fuzzy + msgid "%Jvariable '%D' declared `inline'" + msgstr "variabel \"%s\" deklarerad \"inline\"" + + #. A mere warning is sure to result in improper semantics + #. at runtime. Don't bother to allow this to compile. +-#: c-decl.c:4468 cp/decl.c:5903 ++#: c-decl.c:4479 cp/decl.c:5972 + #, fuzzy + msgid "thread-local storage not supported for this target" + msgstr "-fdata-sections stöds inte för AIX" + +-#: c-decl.c:4529 c-decl.c:5495 ++#: c-decl.c:4540 c-decl.c:5506 + msgid "function declaration isn't a prototype" + msgstr "funktionsdeklaration är inte en prototyp" + +-#: c-decl.c:4535 ++#: c-decl.c:4546 + msgid "parameter names (without types) in function declaration" + msgstr "" + +-#: c-decl.c:4563 ++#: c-decl.c:4574 + #, c-format + msgid "parameter `%s' has incomplete type" + msgstr "parameter \"%s\" har en inkomplett typ" + +-#: c-decl.c:4566 ++#: c-decl.c:4577 + msgid "parameter has incomplete type" + msgstr "parameter har en inkomplett typ" + +-#: c-decl.c:4615 ++#: c-decl.c:4626 + msgid "\"void\" as only parameter may not be qualified" + msgstr "" + +-#: c-decl.c:4636 ++#: c-decl.c:4647 + #, fuzzy + msgid "\"void\" must be the only parameter" + msgstr "ogiltigt typargument" + +-#: c-decl.c:4653 ++#: c-decl.c:4664 + msgid "%Jparameter \"%D\" has just a forward declaration" + msgstr "" + + #. The first %s will be one of 'struct', 'union', or 'enum'. +-#: c-decl.c:4681 ++#: c-decl.c:4692 + #, fuzzy, c-format + msgid "\"%s %s\" declared inside parameter list" + msgstr "\"%s %s\" deklarerad inuti parameterlista" + + #. The %s will be one of 'struct', 'union', or 'enum'. +-#: c-decl.c:4685 ++#: c-decl.c:4696 + #, fuzzy, c-format + msgid "anonymous %s declared inside parameter list" + msgstr "anonym struktur deklarerad i parameterlista" + +-#: c-decl.c:4689 ++#: c-decl.c:4700 + msgid "its scope is only this definition or declaration, which is probably not what you want" + msgstr "dess scope-område är endast denna definition eller deklaration, vilket troligen inte är vad du vill." + +-#: c-decl.c:4774 ++#: c-decl.c:4785 + #, c-format + msgid "redefinition of `union %s'" + msgstr "omdefiniering av \"union %s\"" + +-#: c-decl.c:4776 ++#: c-decl.c:4787 + #, c-format + msgid "redefinition of `struct %s'" + msgstr "omdefiniering av \"struct %s\"" + +-#: c-decl.c:4844 cp/decl.c:3534 ++#: c-decl.c:4855 cp/decl.c:3548 + msgid "declaration does not declare anything" + msgstr "" + +-#: c-decl.c:4889 c-decl.c:4905 ++#: c-decl.c:4900 c-decl.c:4916 + #, fuzzy + msgid "%Jduplicate member '%D'" + msgstr "upprepning av medlem \"%s\"" + +-#: c-decl.c:4939 c-decl.c:4942 ++#: c-decl.c:4950 c-decl.c:4953 + #, c-format + msgid "%s defined inside parms" + msgstr "" + +-#: c-decl.c:4940 c-decl.c:4943 c-decl.c:4954 ++#: c-decl.c:4951 c-decl.c:4954 c-decl.c:4965 + msgid "union" + msgstr "union" + +-#: c-decl.c:4940 c-decl.c:4943 ++#: c-decl.c:4951 c-decl.c:4954 + msgid "structure" + msgstr "struktur" + +-#: c-decl.c:4953 ++#: c-decl.c:4964 + #, c-format + msgid "%s has no %s" + msgstr "%s har ingen %s" + +-#: c-decl.c:4954 ++#: c-decl.c:4965 + msgid "struct" + msgstr "struct" + +-#: c-decl.c:4955 ++#: c-decl.c:4966 + msgid "named members" + msgstr "namngivna medlemmar" + +-#: c-decl.c:4955 ++#: c-decl.c:4966 + msgid "members" + msgstr "medlemmar" + +-#: c-decl.c:4994 ++#: c-decl.c:5005 + #, c-format + msgid "nested redefinition of `%s'" + msgstr "nästlad omdefinition av \"%s\"" + +-#: c-decl.c:5015 ++#: c-decl.c:5026 + #, fuzzy + msgid "%Jflexible array member in union" + msgstr "ISO C89 stöder inte flexibla fältmedlemmar" + +-#: c-decl.c:5020 ++#: c-decl.c:5031 + msgid "%Jflexible array member not at end of struct" + msgstr "" + +-#: c-decl.c:5025 ++#: c-decl.c:5036 + msgid "%Jflexible array member in otherwise empty struct" + msgstr "" + +-#: c-decl.c:5032 ++#: c-decl.c:5043 + #, fuzzy + msgid "%Jinvalid use of structure with flexible array member" + msgstr "ISO C89 stöder inte flexibla fältmedlemmar" + +-#: c-decl.c:5127 ++#: c-decl.c:5138 + msgid "union cannot be made transparent" + msgstr "" + + #. This enum is a named one that has been declared already. +-#: c-decl.c:5196 ++#: c-decl.c:5207 + #, c-format + msgid "redeclaration of `enum %s'" + msgstr "omdeklaration av \"enum %s\"" + +-#: c-decl.c:5227 ++#: c-decl.c:5238 + msgid "enum defined inside parms" + msgstr "" + +-#: c-decl.c:5260 ++#: c-decl.c:5271 + msgid "enumeration values exceed range of largest integer" + msgstr "" + +-#: c-decl.c:5363 ++#: c-decl.c:5374 + #, c-format + msgid "enumerator value for `%s' not integer constant" + msgstr "uppräkningsvärde för \"%s\" är inte en heltalskonstant" + +-#: c-decl.c:5376 ++#: c-decl.c:5387 + msgid "overflow in enumeration values" + msgstr "överspill i uppräkningsvärden" + +-#: c-decl.c:5381 ++#: c-decl.c:5392 + msgid "ISO C restricts enumerator values to range of `int'" + msgstr "ISO C begränsar enumreringsvärden till intervallet av en \"int\"" + +-#: c-decl.c:5457 ++#: c-decl.c:5468 + msgid "return type is an incomplete type" + msgstr "returtypen är en inkomplett typ" + +-#: c-decl.c:5465 ++#: c-decl.c:5476 + msgid "return type defaults to `int'" + msgstr "returtyp sätts till \"int\"" + +-#: c-decl.c:5501 ++#: c-decl.c:5512 + #, fuzzy + msgid "%Jno previous prototype for '%D'" + msgstr "ingen tidigare prototyp för `%s'" + +-#: c-decl.c:5507 ++#: c-decl.c:5518 + #, fuzzy + msgid "%J'%D' was used with no prototype before its definition" + msgstr "\"%s\" användes utan någon prototyp innan sin definition" + +-#: c-decl.c:5514 ++#: c-decl.c:5525 + #, fuzzy + msgid "%Jno previous declaration for '%D'" + msgstr "ingen tidigare deklaration av \"%s\"" + +-#: c-decl.c:5520 ++#: c-decl.c:5531 + #, fuzzy + msgid "%J`%D' was used with no declaration before its definition" + msgstr "\"%s\" användes utan någon deklaration innan sin definition" + +-#: c-decl.c:5556 c-decl.c:6062 ++#: c-decl.c:5567 c-decl.c:6073 + #, fuzzy + msgid "%Jreturn type of '%D' is not `int'" + msgstr "returtypen på \"%s\" är inte \"int\"" + +-#: c-decl.c:5571 ++#: c-decl.c:5582 + #, fuzzy + msgid "%Jfirst argument of '%D' should be `int'" + msgstr "första argumentet till \"%s\" skall vara \"int\"" + +-#: c-decl.c:5580 ++#: c-decl.c:5591 + #, fuzzy + msgid "%Jsecond argument of '%D' should be 'char **'" + msgstr "andra argumentet till \"%s\" skall vara \"char **\"" + +-#: c-decl.c:5589 ++#: c-decl.c:5600 + #, fuzzy + msgid "%Jthird argument of '%D' should probably be 'char **'" + msgstr "tredje argumentet till \"%s2 skall troligen vara \"char **\"" + +-#: c-decl.c:5599 ++#: c-decl.c:5610 + #, fuzzy + msgid "%J'%D' takes only zero or two arguments" + msgstr "\"%s\" tar bara noll eller två argument" + +-#: c-decl.c:5602 ++#: c-decl.c:5613 + #, fuzzy + msgid "%J'%D' is normally a non-static function" + msgstr "\"%s\" är normalt en icke-statisk function" + +-#: c-decl.c:5658 ++#: c-decl.c:5669 + msgid "%Jold-style parameter declarations in prototyped function definition" + msgstr "" + +-#: c-decl.c:5672 ++#: c-decl.c:5683 + #, fuzzy + msgid "%Jparameter name omitted" + msgstr "parameternamn utlämnat" + +-#: c-decl.c:5747 ++#: c-decl.c:5758 + #, fuzzy + msgid "%Jparameter name missing from parameter list" + msgstr "parameternamn saknas i parameterlista" + +-#: c-decl.c:5757 ++#: c-decl.c:5768 + #, fuzzy + msgid "%J\"%D\" declared as a non-parameter" + msgstr "fält \"%s\" deklarerad som en funktion" + +-#: c-decl.c:5762 ++#: c-decl.c:5773 + #, fuzzy + msgid "%Jmultiple parameters named \"%D\"" + msgstr "flera parametrar med namn \"%s\"" + +-#: c-decl.c:5770 ++#: c-decl.c:5781 + #, fuzzy + msgid "%Jparameter \"%D\" declared void" + msgstr "parameter \"%s\" deklarerad som void" + +-#: c-decl.c:5785 c-decl.c:5787 ++#: c-decl.c:5796 c-decl.c:5798 + #, fuzzy + msgid "%Jtype of \"%D\" defaults to \"int\"" + msgstr "typen på \"%s\" sätts till \"int\"" + +-#: c-decl.c:5801 ++#: c-decl.c:5812 + #, fuzzy + msgid "%Jparameter \"%D\" has incomplete type" + msgstr "parameter har en inkomplett typ" + +-#: c-decl.c:5807 ++#: c-decl.c:5818 + #, fuzzy + msgid "%Jdeclaration for parameter \"%D\" but no such parameter" + msgstr "deklaration av parameter \"%s\" med det finns ingen sådan parameter" + +-#: c-decl.c:5859 ++#: c-decl.c:5870 + msgid "number of arguments doesn't match prototype" + msgstr "antalet argument matchar inte prototypen" + +-#: c-decl.c:5860 c-decl.c:5891 c-decl.c:5898 ++#: c-decl.c:5871 c-decl.c:5902 c-decl.c:5909 + #, fuzzy + msgid "%Hprototype declaration" + msgstr "tom deklaration" + +-#: c-decl.c:5889 ++#: c-decl.c:5900 + #, fuzzy + msgid "promoted argument \"%D\" doesn't match prototype" + msgstr "argument \"%s\" matchar inte prototypen" + +-#: c-decl.c:5897 ++#: c-decl.c:5908 + #, fuzzy + msgid "argument \"%D\" doesn't match prototype" + msgstr "argument \"%s\" matchar inte prototypen" + +-#: c-decl.c:6094 cp/decl.c:10857 ++#: c-decl.c:6105 cp/decl.c:10954 + msgid "no return statement in function returning non-void" + msgstr "ingen return i funktion som returnerar icke-void" + +-#: c-decl.c:6101 ++#: c-decl.c:6112 + msgid "this function may return with or without a value" + msgstr "denna funktion kan returnera med eller utan ett värde" + + #. If we get here, declarations have been used in a for loop without + #. the C99 for loop scope. This doesn't make much sense, so don't + #. allow it. +-#: c-decl.c:6200 ++#: c-decl.c:6211 + msgid "'for' loop initial declaration used outside C99 mode" + msgstr "" + +-#: c-decl.c:6224 ++#: c-decl.c:6235 + #, fuzzy, c-format + msgid "'struct %s' declared in 'for' loop initial declaration" + msgstr "\"struct %s\" är deklarerad i en for-loops init-deklaration" + +-#: c-decl.c:6227 ++#: c-decl.c:6238 + #, fuzzy, c-format + msgid "'union %s' declared in 'for' loop initial declaration" + msgstr "\"union %s\" är deklarerad i en for-loops init-deklaration" + +-#: c-decl.c:6230 ++#: c-decl.c:6241 + #, fuzzy, c-format + msgid "'enum %s' declared in 'for' loop initial declaration" + msgstr "\"enum %s\" är deklarerad i en for-loops init-deklaration" + +-#: c-decl.c:6238 ++#: c-decl.c:6249 + #, fuzzy + msgid "%Jdeclaration of non-variable '%D' in 'for' loop initial declaration" + msgstr "\"enum %s\" är deklarerad i en for-loops init-deklaration" + +-#: c-decl.c:6241 ++#: c-decl.c:6252 + #, fuzzy + msgid "%Jdeclaration of static variable '%D' in 'for' loop initial declaration" + msgstr "\"union %s\" är deklarerad i en for-loops init-deklaration" + +-#: c-decl.c:6244 ++#: c-decl.c:6255 + #, fuzzy + msgid "%Jdeclaration of 'extern' variable '%D' in 'for' loop initial declaration" + msgstr "\"union %s\" är deklarerad i en for-loops init-deklaration" + +-#: c-decl.c:6557 ++#: c-decl.c:6568 + #, fuzzy + msgid "%Jredefinition of global '%D'" + msgstr "omdefiniering av \"%s\"" + +-#: c-decl.c:6558 ++#: c-decl.c:6569 + #, fuzzy + msgid "%J'%D' previously defined here" + msgstr "\"%s\" definierades tidigare här" +@@ -2293,94 +2298,94 @@ + msgid "missing makefile target after \"%s\"" + msgstr "saknar mellanrum efter nummer \"%.*s\"" + +-#: c-opts.c:291 ++#: c-opts.c:299 + msgid "-I- specified twice" + msgstr "-I- angiven två gånger" + +-#: c-opts.c:692 ++#: c-opts.c:700 + #, fuzzy, c-format + msgid "switch \"%s\" is no longer supported" + msgstr "-f%s stödjs inte längre" + +-#: c-opts.c:812 ++#: c-opts.c:820 + msgid "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)" + msgstr "" + +-#: c-opts.c:978 ++#: c-opts.c:986 + #, fuzzy + msgid "output filename specified twice" + msgstr "Utdatafilnamn angivet två gånger" + +-#: c-opts.c:1107 ++#: c-opts.c:1115 + msgid "-Wformat-y2k ignored without -Wformat" + msgstr "-Wformat-y2k ignorerad utan -Wformat" + +-#: c-opts.c:1109 ++#: c-opts.c:1117 + msgid "-Wformat-extra-args ignored without -Wformat" + msgstr "-Wformat-extra-args ignorerad utan -Wformat" + +-#: c-opts.c:1111 ++#: c-opts.c:1119 + #, fuzzy + msgid "-Wformat-zero-length ignored without -Wformat" + msgstr "-Wformat-extra-args ignorerad utan -Wformat" + +-#: c-opts.c:1113 ++#: c-opts.c:1121 + msgid "-Wformat-nonliteral ignored without -Wformat" + msgstr "-Wformat-nonliteral ignorerad utan -Wformat" + +-#: c-opts.c:1115 ++#: c-opts.c:1123 + msgid "-Wformat-security ignored without -Wformat" + msgstr "-Wformat-security ignorerad utan -Wformat" + +-#: c-opts.c:1117 ++#: c-opts.c:1125 + msgid "-Wmissing-format-attribute ignored without -Wformat" + msgstr "-Wmissing-format-attribute ignorerad utan -Wformat" + +-#: c-opts.c:1131 ++#: c-opts.c:1139 + #, fuzzy, c-format + msgid "opening output file %s: %m" + msgstr "Kan inte öppna utdatafil \"%s\"" + +-#: c-opts.c:1136 ++#: c-opts.c:1144 + #, fuzzy, c-format + msgid "too many filenames given. Type %s --help for usage" + msgstr "För många filnamn. Skriv %s --help för användningsinformation" + +-#: c-opts.c:1215 ++#: c-opts.c:1223 + #, fuzzy + msgid "YYDEBUG not defined" + msgstr "YYDEBUG är inte definierad." + +-#: c-opts.c:1261 ++#: c-opts.c:1269 + #, c-format + msgid "opening dependency file %s: %m" + msgstr "" + +-#: c-opts.c:1271 ++#: c-opts.c:1279 + #, c-format + msgid "closing dependency file %s: %m" + msgstr "" + +-#: c-opts.c:1274 ++#: c-opts.c:1282 + #, fuzzy, c-format + msgid "when writing output to %s: %m" + msgstr "fel vid skrivning till %s" + +-#: c-opts.c:1344 ++#: c-opts.c:1352 + #, fuzzy + msgid "to generate dependencies you must specify either -M or -MM" + msgstr "du måste dessutom ange antingen -M eller -MM" + +-#: c-opts.c:1404 ++#: c-opts.c:1412 + #, fuzzy + msgid "" + msgstr "" + +-#: c-opts.c:1419 ++#: c-opts.c:1427 + msgid "" + msgstr "" + +-#: c-opts.c:1503 ++#: c-opts.c:1511 + msgid "too late for # directive to set debug directory" + msgstr "" + +@@ -2397,7 +2402,7 @@ + msgid "ISO C forbids an empty source file" + msgstr "ISO C förbjuder tomma källkodsfiler" + +-#: c-parse.y:349 c-typeck.c:6248 objc/objc-parse.y:374 ++#: c-parse.y:349 c-typeck.c:6228 objc/objc-parse.y:374 + msgid "argument of `asm' is not a constant string" + msgstr "argumentet till \"asm\" är inte en konstant sträng" + +@@ -2413,7 +2418,7 @@ + msgid "ISO C does not allow extra `;' outside of a function" + msgstr "ISO C tillåter inte extra \";\" utanför funktioner" + +-#: c-parse.y:429 cppexp.c:1253 ++#: c-parse.y:429 cppexp.c:1257 + msgid "traditional C rejects the unary plus operator" + msgstr "traditionell C hanterar inte operatorn unärt plus" + +@@ -2495,7 +2500,7 @@ + msgid "ISO C forbids forward references to `enum' types" + msgstr "" + +-#: c-parse.y:1703 cp/parser.c:9339 objc/objc-parse.y:1755 ++#: c-parse.y:1703 cp/parser.c:9383 objc/objc-parse.y:1755 + msgid "comma at end of enumerator list" + msgstr "komma i slutet av uppräkningslista" + +@@ -2503,7 +2508,7 @@ + msgid "no semicolon at end of struct or union" + msgstr "inget semikolon vid slutet av struktur eller union" + +-#: c-parse.y:1732 objc/objc-parse.y:1784 objc/objc-parse.y:2847 ++#: c-parse.y:1732 objc/objc-parse.y:1784 objc/objc-parse.y:2846 + msgid "extra semicolon in struct or union specified" + msgstr "extra semikolon i struktur eller union angivet" + +@@ -2532,24 +2537,24 @@ + msgid "braced-group within expression allowed only inside a function" + msgstr "" + +-#: c-parse.y:2185 objc/objc-parse.y:2242 ++#: c-parse.y:2185 objc/objc-parse.y:2241 + msgid "empty body in an else-statement" + msgstr "tom kropp i else-sats" + +-#: c-parse.y:2193 objc/objc-parse.y:2250 ++#: c-parse.y:2193 objc/objc-parse.y:2249 + #, fuzzy + msgid "%Hempty body in an if-statement" + msgstr "tom kropp i else-sats" + +-#: c-parse.y:2273 cp/parser.c:6050 objc/objc-parse.y:2330 ++#: c-parse.y:2273 cp/parser.c:6088 objc/objc-parse.y:2329 + msgid "break statement not within loop or switch" + msgstr "break-sats som inte är i en loop eller switch" + +-#: c-parse.y:2282 cp/parser.c:6061 objc/objc-parse.y:2339 ++#: c-parse.y:2282 cp/parser.c:6099 objc/objc-parse.y:2338 + msgid "continue statement not within a loop" + msgstr "continue-sats som inte är i en loop" + +-#: c-parse.y:2324 objc/objc-parse.y:2381 ++#: c-parse.y:2324 objc/objc-parse.y:2380 + msgid "ISO C forbids `goto *expr;'" + msgstr "ISO C förbjuder \"goto *expr;\"" + +@@ -2559,11 +2564,11 @@ + #. it caused problems with the code in expand_builtin which + #. tries to verify that BUILT_IN_NEXT_ARG is being used + #. correctly. +-#: c-parse.y:2441 objc/objc-parse.y:2549 ++#: c-parse.y:2441 objc/objc-parse.y:2548 + msgid "ISO C requires a named argument before `...'" + msgstr "ISO C kräver ett namnsatt argument före \"...\"" + +-#: c-parse.y:2539 objc/objc-parse.y:2647 ++#: c-parse.y:2539 objc/objc-parse.y:2646 + msgid "`...' in old-style identifier list" + msgstr "\"...\" i en gammaldags identifierarlista" + +@@ -2580,7 +2585,7 @@ + msgid "parser stack overflow" + msgstr "parsestack överfull" + +-#: c-parse.y:2969 objc/objc-parse.y:3664 ++#: c-parse.y:2969 objc/objc-parse.y:3663 + #, c-format + msgid "syntax error at '%s' token" + msgstr "syntaxfel vid token \"%s\"" +@@ -2663,7 +2668,7 @@ + msgid "%s: had text segment at different address" + msgstr "" + +-#: c-pch.c:357 cpperror.c:176 gcc.c:6554 ++#: c-pch.c:357 cpperror.c:176 gcc.c:6557 + #, c-format + msgid "%s: %s" + msgstr "%s: %s" +@@ -2780,12 +2785,12 @@ + msgid "(enclose actions of previous case statements requiring destructors in their own scope.)" + msgstr "" + +-#: c-semantics.c:737 c-typeck.c:6270 cp/semantics.c:1070 ++#: c-semantics.c:737 c-typeck.c:6250 cp/semantics.c:1070 + #, c-format + msgid "%s qualifier ignored on asm" + msgstr "" + +-#: c-semantics.c:991 ++#: c-semantics.c:993 + #, fuzzy + msgid "will never be executed" + msgstr "anrop %d aldrig utfört\n" +@@ -2795,7 +2800,7 @@ + msgid "`%s' has an incomplete type" + msgstr "\"%s\" har en inkomplett typ" + +-#: c-typeck.c:145 cp/call.c:2532 ++#: c-typeck.c:145 cp/call.c:2542 + msgid "invalid use of void expression" + msgstr "ogiltig användning av void-uttryck" + +@@ -2832,759 +2837,759 @@ + msgid "function return types not compatible due to `volatile'" + msgstr "funktionstyper inte riktigt kompatibla i ISO C" + +-#: c-typeck.c:984 c-typeck.c:2176 ++#: c-typeck.c:984 c-typeck.c:2156 + msgid "arithmetic on pointer to an incomplete type" + msgstr "aritmetik på pekare till inkomplett typ" + +-#: c-typeck.c:1357 ++#: c-typeck.c:1337 + #, c-format + msgid "%s has no member named `%s'" + msgstr "%s har ingen medlem med namn \"%s\"" + +-#: c-typeck.c:1393 ++#: c-typeck.c:1373 + #, c-format + msgid "request for member `%s' in something not a structure or union" + msgstr "begäran av medlem \"%s\" i något som inte är en struktur eller union" + +-#: c-typeck.c:1422 ++#: c-typeck.c:1402 + msgid "dereferencing pointer to incomplete type" + msgstr "derefererar pekare till inkomplett typ" + +-#: c-typeck.c:1426 ++#: c-typeck.c:1406 + msgid "dereferencing `void *' pointer" + msgstr "derefererar \"void *\"-pekare" + +-#: c-typeck.c:1443 cp/typeck.c:2127 ++#: c-typeck.c:1423 cp/typeck.c:2127 + #, c-format + msgid "invalid type argument of `%s'" + msgstr "ogiltigt typargument till \"%s\"" + +-#: c-typeck.c:1461 cp/typeck.c:2152 ++#: c-typeck.c:1441 cp/typeck.c:2152 + msgid "subscript missing in array reference" + msgstr "" + +-#: c-typeck.c:1482 cp/typeck.c:2194 ++#: c-typeck.c:1462 cp/typeck.c:2194 + msgid "array subscript has type `char'" + msgstr "fältindex har typen \"char\"" + +-#: c-typeck.c:1490 c-typeck.c:1579 cp/typeck.c:2198 cp/typeck.c:2284 ++#: c-typeck.c:1470 c-typeck.c:1559 cp/typeck.c:2198 cp/typeck.c:2284 + msgid "array subscript is not an integer" + msgstr "fältindex är inte ett heltal" + +-#: c-typeck.c:1523 ++#: c-typeck.c:1503 + msgid "ISO C forbids subscripting `register' array" + msgstr "" + +-#: c-typeck.c:1525 ++#: c-typeck.c:1505 + #, fuzzy + msgid "ISO C90 forbids subscripting non-lvalue array" + msgstr "ISO C++ förbjuder tilldelning av fält" + +-#: c-typeck.c:1558 ++#: c-typeck.c:1538 + msgid "subscript has type `char'" + msgstr "index har typen \"char\"" + +-#: c-typeck.c:1574 cp/typeck.c:2279 ++#: c-typeck.c:1554 cp/typeck.c:2279 + msgid "subscripted value is neither array nor pointer" + msgstr "" + +-#: c-typeck.c:1604 ++#: c-typeck.c:1584 + #, c-format + msgid "local declaration of `%s' hides instance variable" + msgstr "" + +-#: c-typeck.c:1697 ++#: c-typeck.c:1677 + msgid "called object is not a function" + msgstr "anropat objekt är inte en funktion" + + #. This situation leads to run-time undefined behavior. We can't, + #. therefore, simply error unless we can prove that all possible + #. executions of the program must execute the code. +-#: c-typeck.c:1729 ++#: c-typeck.c:1709 + #, fuzzy + msgid "function called through a non-compatible type" + msgstr "sizeof applicerat på en inkomplett typ" + +-#: c-typeck.c:1787 c-typeck.c:4198 c-typeck.c:4200 c-typeck.c:4216 +-#: c-typeck.c:4237 c-typeck.c:5616 ++#: c-typeck.c:1767 c-typeck.c:4178 c-typeck.c:4180 c-typeck.c:4196 ++#: c-typeck.c:4217 c-typeck.c:5596 + msgid "initializer element is not constant" + msgstr "" + +-#: c-typeck.c:1838 cp/typeck.c:2567 ++#: c-typeck.c:1818 cp/typeck.c:2567 + msgid "too many arguments to function" + msgstr "för många argument till funktion" + +-#: c-typeck.c:1859 ++#: c-typeck.c:1839 + #, c-format + msgid "type of formal parameter %d is incomplete" + msgstr "" + +-#: c-typeck.c:1872 ++#: c-typeck.c:1852 + #, c-format + msgid "%s as integer rather than floating due to prototype" + msgstr "" + +-#: c-typeck.c:1875 ++#: c-typeck.c:1855 + #, c-format + msgid "%s as integer rather than complex due to prototype" + msgstr "" + +-#: c-typeck.c:1878 ++#: c-typeck.c:1858 + #, c-format + msgid "%s as complex rather than floating due to prototype" + msgstr "" + +-#: c-typeck.c:1881 ++#: c-typeck.c:1861 + #, c-format + msgid "%s as floating rather than integer due to prototype" + msgstr "" + +-#: c-typeck.c:1884 ++#: c-typeck.c:1864 + #, c-format + msgid "%s as complex rather than integer due to prototype" + msgstr "%s som complex istället för heltal grund av prototyp" + +-#: c-typeck.c:1887 ++#: c-typeck.c:1867 + #, c-format + msgid "%s as floating rather than complex due to prototype" + msgstr "" + +-#: c-typeck.c:1897 ++#: c-typeck.c:1877 + #, c-format + msgid "%s as `float' rather than `double' due to prototype" + msgstr "" + +-#: c-typeck.c:1915 ++#: c-typeck.c:1895 + #, c-format + msgid "%s with different width due to prototype" + msgstr "" + +-#: c-typeck.c:1941 ++#: c-typeck.c:1921 + #, c-format + msgid "%s as unsigned due to prototype" + msgstr "%s som unsigned på grund av prototyp" + +-#: c-typeck.c:1943 ++#: c-typeck.c:1923 + #, c-format + msgid "%s as signed due to prototype" + msgstr "%s som signed på grund av prototyp" + +-#: c-typeck.c:1977 cp/typeck.c:2673 ++#: c-typeck.c:1957 cp/typeck.c:2673 + msgid "too few arguments to function" + msgstr "för få argument till funktion" + +-#: c-typeck.c:2017 ++#: c-typeck.c:1997 + msgid "suggest parentheses around + or - inside shift" + msgstr "föreslår parenteser runt + eller - inuti skift" + +-#: c-typeck.c:2024 ++#: c-typeck.c:2004 + msgid "suggest parentheses around && within ||" + msgstr "föreslår parenteser runt && inuti ||" + +-#: c-typeck.c:2033 ++#: c-typeck.c:2013 + msgid "suggest parentheses around arithmetic in operand of |" + msgstr "föreslår parenteser runt aritmetik inuti operanden till |" + +-#: c-typeck.c:2036 ++#: c-typeck.c:2016 + msgid "suggest parentheses around comparison in operand of |" + msgstr "föreslår parenteser runt jämförelse inuti operanden till |" + +-#: c-typeck.c:2045 ++#: c-typeck.c:2025 + msgid "suggest parentheses around arithmetic in operand of ^" + msgstr "föreslår parenteser runt aritmetik inuti operanden till ^" + +-#: c-typeck.c:2048 ++#: c-typeck.c:2028 + msgid "suggest parentheses around comparison in operand of ^" + msgstr "föreslår parenteser runt jämförelse inuti operanden till ^" + +-#: c-typeck.c:2055 ++#: c-typeck.c:2035 + msgid "suggest parentheses around + or - in operand of &" + msgstr "föreslår parenteser runt + eller - inuti operanden till &" + +-#: c-typeck.c:2058 ++#: c-typeck.c:2038 + msgid "suggest parentheses around comparison in operand of &" + msgstr "föreslår parenteser runt jämförelser inuti operanden till &" + +-#: c-typeck.c:2065 ++#: c-typeck.c:2045 + msgid "comparisons like X<=Y<=Z do not have their mathematical meaning" + msgstr "jämförelser som X<=Y<=Z har inte sin matematiska mening" + +-#: c-typeck.c:2128 ++#: c-typeck.c:2108 + msgid "pointer of type `void *' used in subtraction" + msgstr "pekare av typ \"void *\" använd i subtraktion" + +-#: c-typeck.c:2130 ++#: c-typeck.c:2110 + msgid "pointer to a function used in subtraction" + msgstr "pekare till funktion använd i subtraktion" + +-#: c-typeck.c:2224 ++#: c-typeck.c:2204 + msgid "wrong type argument to unary plus" + msgstr "" + +-#: c-typeck.c:2237 ++#: c-typeck.c:2217 + msgid "wrong type argument to unary minus" + msgstr "" + +-#: c-typeck.c:2254 ++#: c-typeck.c:2234 + msgid "ISO C does not support `~' for complex conjugation" + msgstr "ISO C stödjer inte ~ för komplex konjugering" + +-#: c-typeck.c:2260 ++#: c-typeck.c:2240 + msgid "wrong type argument to bit-complement" + msgstr "" + +-#: c-typeck.c:2268 ++#: c-typeck.c:2248 + msgid "wrong type argument to abs" + msgstr "fel typ på argument till abs" + +-#: c-typeck.c:2280 ++#: c-typeck.c:2260 + msgid "wrong type argument to conjugation" + msgstr "" + +-#: c-typeck.c:2294 ++#: c-typeck.c:2274 + msgid "wrong type argument to unary exclamation mark" + msgstr "" + +-#: c-typeck.c:2337 ++#: c-typeck.c:2317 + msgid "ISO C does not support `++' and `--' on complex types" + msgstr "ISO C stöder inte \"++\" och \"--\" på komplexa typer" + +-#: c-typeck.c:2352 c-typeck.c:2384 ++#: c-typeck.c:2332 c-typeck.c:2364 + #, fuzzy + msgid "wrong type argument to increment" + msgstr "fel typ på argument till %s" + +-#: c-typeck.c:2354 c-typeck.c:2386 ++#: c-typeck.c:2334 c-typeck.c:2366 + #, fuzzy + msgid "wrong type argument to decrement" + msgstr "fel typ på argument till %s" + +-#: c-typeck.c:2375 ++#: c-typeck.c:2355 + msgid "increment of pointer to unknown structure" + msgstr "" + +-#: c-typeck.c:2377 ++#: c-typeck.c:2357 + msgid "decrement of pointer to unknown structure" + msgstr "" + +-#: c-typeck.c:2502 ++#: c-typeck.c:2482 + msgid "invalid lvalue in unary `&'" + msgstr "" + +-#: c-typeck.c:2534 ++#: c-typeck.c:2514 + #, c-format + msgid "attempt to take address of bit-field structure member `%s'" + msgstr "" + +-#: c-typeck.c:2668 ++#: c-typeck.c:2648 + msgid "use of conditional expressions as lvalues is deprecated" + msgstr "" + +-#: c-typeck.c:2671 ++#: c-typeck.c:2651 + msgid "use of compound expressions as lvalues is deprecated" + msgstr "" + +-#: c-typeck.c:2674 ++#: c-typeck.c:2654 + msgid "use of cast expressions as lvalues is deprecated" + msgstr "" + +-#: c-typeck.c:2689 ++#: c-typeck.c:2669 + #, c-format + msgid "%s of read-only member `%s'" + msgstr "" + +-#: c-typeck.c:2693 ++#: c-typeck.c:2673 + #, c-format + msgid "%s of read-only variable `%s'" + msgstr "" + +-#: c-typeck.c:2696 ++#: c-typeck.c:2676 + #, c-format + msgid "%s of read-only location" + msgstr "" + +-#: c-typeck.c:2714 ++#: c-typeck.c:2694 + #, fuzzy, c-format + msgid "cannot take address of bit-field `%s'" + msgstr "kan inte ta adressen till bitfält \"%s\"" + +-#: c-typeck.c:2742 treelang/treetree.c:946 ++#: c-typeck.c:2722 treelang/treetree.c:946 + #, c-format + msgid "global register variable `%s' used in nested function" + msgstr "global registervariabel \"%s\" använd i nästlad funktion" + +-#: c-typeck.c:2746 treelang/treetree.c:950 ++#: c-typeck.c:2726 treelang/treetree.c:950 + #, c-format + msgid "register variable `%s' used in nested function" + msgstr "registervariabel \\\"%s\\\" använd i nästlad funktion" + +-#: c-typeck.c:2753 treelang/treetree.c:957 ++#: c-typeck.c:2733 treelang/treetree.c:957 + #, c-format + msgid "address of global register variable `%s' requested" + msgstr "adress på global registervariabel \"%s\" efterfrågad" + +-#: c-typeck.c:2765 ++#: c-typeck.c:2745 + msgid "cannot put object with volatile field into register" + msgstr "" + +-#: c-typeck.c:2769 treelang/treetree.c:962 ++#: c-typeck.c:2749 treelang/treetree.c:962 + #, c-format + msgid "address of register variable `%s' requested" + msgstr "adress på register variabel \"%s\" efterfrågad" + +-#: c-typeck.c:2854 ++#: c-typeck.c:2834 + msgid "signed and unsigned type in conditional expression" + msgstr "typ signed och unsigned i villkorsuttryck" + +-#: c-typeck.c:2861 ++#: c-typeck.c:2841 + msgid "ISO C forbids conditional expr with only one void side" + msgstr "" + +-#: c-typeck.c:2877 c-typeck.c:2884 ++#: c-typeck.c:2857 c-typeck.c:2864 + msgid "ISO C forbids conditional expr between `void *' and function pointer" + msgstr "" + +-#: c-typeck.c:2890 ++#: c-typeck.c:2870 + msgid "pointer type mismatch in conditional expression" + msgstr "" + +-#: c-typeck.c:2897 c-typeck.c:2907 ++#: c-typeck.c:2877 c-typeck.c:2887 + msgid "pointer/integer type mismatch in conditional expression" + msgstr "" + +-#: c-typeck.c:2921 ++#: c-typeck.c:2901 + msgid "type mismatch in conditional expression" + msgstr "typfel i villkorsuttryck" + +-#: c-typeck.c:2981 ++#: c-typeck.c:2961 + msgid "left-hand operand of comma expression has no effect" + msgstr "" + +-#: c-typeck.c:3012 ++#: c-typeck.c:2992 + msgid "cast specifies array type" + msgstr "" + +-#: c-typeck.c:3018 ++#: c-typeck.c:2998 + msgid "cast specifies function type" + msgstr "" + +-#: c-typeck.c:3028 ++#: c-typeck.c:3008 + msgid "ISO C forbids casting nonscalar to the same type" + msgstr "" + +-#: c-typeck.c:3046 ++#: c-typeck.c:3026 + msgid "ISO C forbids casts to union type" + msgstr "ISO C förbjuder typkonvertering till unionstyper" + +-#: c-typeck.c:3054 ++#: c-typeck.c:3034 + msgid "cast to union type from type not present in union" + msgstr "typkonvertering till unionstyp från typ som ej finns i unionen" + +-#: c-typeck.c:3105 ++#: c-typeck.c:3085 + #, fuzzy + msgid "cast adds new qualifiers to function type" + msgstr "typkonvertering matchar inte en funktionstyp" + + #. There are qualifiers present in IN_OTYPE that are not + #. present in IN_TYPE. +-#: c-typeck.c:3110 ++#: c-typeck.c:3090 + msgid "cast discards qualifiers from pointer target type" + msgstr "" + +-#: c-typeck.c:3125 ++#: c-typeck.c:3105 + msgid "cast increases required alignment of target type" + msgstr "" + +-#: c-typeck.c:3131 cp/typeck.c:4945 ++#: c-typeck.c:3111 cp/typeck.c:4963 + msgid "cast from pointer to integer of different size" + msgstr "typkonvertering från pekare till heltal av annan storlek" + +-#: c-typeck.c:3136 ++#: c-typeck.c:3116 + msgid "cast does not match function type" + msgstr "typkonvertering matchar inte en funktionstyp" + +-#: c-typeck.c:3143 cp/typeck.c:4952 ++#: c-typeck.c:3123 cp/typeck.c:4970 + msgid "cast to pointer from integer of different size" + msgstr "typkonvertering till pekare från heltal med annan storlek" + +-#: c-typeck.c:3155 ++#: c-typeck.c:3135 + msgid "type-punning to incomplete type might break strict-aliasing rules" + msgstr "" + +-#: c-typeck.c:3159 ++#: c-typeck.c:3139 + msgid "dereferencing type-punned pointer will break strict-aliasing rules" + msgstr "" + +-#: c-typeck.c:3170 ++#: c-typeck.c:3150 + #, fuzzy + msgid "ISO C forbids conversion of function pointer to object pointer type" + msgstr "ISO C++ förbjuder användning av pekare till medlem i pekararitmetik" + +-#: c-typeck.c:3179 ++#: c-typeck.c:3159 + #, fuzzy + msgid "ISO C forbids conversion of object pointer to function pointer type" + msgstr "ISO C förbjuder jämförelse mellan \"void *\" och funktionspekare" + + #. Now we have handled acceptable kinds of LHS that are not truly lvalues. + #. Reject anything strange now. +-#: c-typeck.c:3337 ++#: c-typeck.c:3317 + msgid "invalid lvalue in assignment" + msgstr "ogiltigt lvalue i tilldelning" + + #. Convert new value to destination type. +-#: c-typeck.c:3346 c-typeck.c:3371 c-typeck.c:3388 cp/typeck.c:5064 +-#: cp/typeck.c:5211 cp/typeck.c:5226 ++#: c-typeck.c:3326 c-typeck.c:3351 c-typeck.c:3368 cp/typeck.c:5082 ++#: cp/typeck.c:5229 cp/typeck.c:5244 + msgid "assignment" + msgstr "tilldelning" + +-#: c-typeck.c:3455 ++#: c-typeck.c:3435 + #, fuzzy + msgid "cannot pass rvalue to reference parameter" + msgstr "kan inte deklarera pekare till referenser" + +-#: c-typeck.c:3564 c-typeck.c:3640 ++#: c-typeck.c:3544 c-typeck.c:3620 + #, c-format + msgid "%s makes qualified function pointer from unqualified" + msgstr "" + +-#: c-typeck.c:3568 c-typeck.c:3620 ++#: c-typeck.c:3548 c-typeck.c:3600 + #, c-format + msgid "%s discards qualifiers from pointer target type" + msgstr "" + +-#: c-typeck.c:3574 ++#: c-typeck.c:3554 + msgid "ISO C prohibits argument conversion to union type" + msgstr "" + +-#: c-typeck.c:3612 ++#: c-typeck.c:3592 + #, c-format + msgid "ISO C forbids %s between function pointer and `void *'" + msgstr "ISO C förbjuder %s mellan funktionspekare och \"void *\"" + +-#: c-typeck.c:3629 ++#: c-typeck.c:3609 + #, c-format + msgid "pointer targets in %s differ in signedness" + msgstr "" + +-#: c-typeck.c:3645 ++#: c-typeck.c:3625 + #, c-format + msgid "%s from incompatible pointer type" + msgstr "" + +-#: c-typeck.c:3651 c-typeck.c:4158 cp/typeck.c:1389 ++#: c-typeck.c:3631 c-typeck.c:4138 cp/typeck.c:1389 + msgid "invalid use of non-lvalue array" + msgstr "" + + # fixme: vad är %s +-#: c-typeck.c:3665 ++#: c-typeck.c:3645 + #, c-format + msgid "%s makes pointer from integer without a cast" + msgstr "%s skapar pekare från heltal utan typkonvertering" + +-#: c-typeck.c:3672 ++#: c-typeck.c:3652 + #, c-format + msgid "%s makes integer from pointer without a cast" + msgstr "" + +-#: c-typeck.c:3686 c-typeck.c:3689 ++#: c-typeck.c:3666 c-typeck.c:3669 + #, c-format + msgid "incompatible type for argument %d of `%s'" + msgstr "" + +-#: c-typeck.c:3693 ++#: c-typeck.c:3673 + #, c-format + msgid "incompatible type for argument %d of indirect function call" + msgstr "" + +-#: c-typeck.c:3697 ++#: c-typeck.c:3677 + #, c-format + msgid "incompatible types in %s" + msgstr "inkompatibla typer i %s" + + #. Function name is known; supply it. +-#: c-typeck.c:3753 ++#: c-typeck.c:3733 + #, fuzzy, c-format + msgid "passing arg of `%s'" + msgstr "Saknar argument till flaggan \"%s\"" + + #. Function name unknown (call through ptr). +-#: c-typeck.c:3762 ++#: c-typeck.c:3742 + #, fuzzy + msgid "passing arg of pointer to function" + msgstr "för många argument till funktion" + + #. Function name is known; supply it. +-#: c-typeck.c:3770 ++#: c-typeck.c:3750 + #, c-format + msgid "passing arg %d of `%s'" + msgstr "" + + #. Function name unknown (call through ptr); just give arg number. +-#: c-typeck.c:3779 ++#: c-typeck.c:3759 + #, c-format + msgid "passing arg %d of pointer to function" + msgstr "" + +-#: c-typeck.c:3836 ++#: c-typeck.c:3816 + msgid "traditional C rejects automatic aggregate initialization" + msgstr "" + +-#: c-typeck.c:4007 c-typeck.c:4022 c-typeck.c:4037 ++#: c-typeck.c:3987 c-typeck.c:4002 c-typeck.c:4017 + #, c-format + msgid "(near initialization for `%s')" + msgstr "" + +-#: c-typeck.c:4086 cp/typeck2.c:560 ++#: c-typeck.c:4066 cp/typeck2.c:550 + msgid "char-array initialized from wide string" + msgstr "" + +-#: c-typeck.c:4093 cp/typeck2.c:567 ++#: c-typeck.c:4073 cp/typeck2.c:557 + msgid "int-array initialized from non-wide string" + msgstr "" + +-#: c-typeck.c:4111 cp/typeck2.c:582 ++#: c-typeck.c:4091 cp/typeck2.c:572 + msgid "initializer-string for array of chars is too long" + msgstr "" + +-#: c-typeck.c:4181 ++#: c-typeck.c:4161 + msgid "array initialized from non-constant array expression" + msgstr "" + +-#: c-typeck.c:4232 ++#: c-typeck.c:4212 + msgid "initialization" + msgstr "initiering" + +-#: c-typeck.c:4243 c-typeck.c:5621 ++#: c-typeck.c:4223 c-typeck.c:5601 + msgid "initializer element is not computable at load time" + msgstr "" + +-#: c-typeck.c:4258 cp/typeck2.c:659 ++#: c-typeck.c:4238 cp/typeck2.c:649 + msgid "invalid initializer" + msgstr "" + +-#: c-typeck.c:4540 cp/decl.c:4484 ++#: c-typeck.c:4520 cp/decl.c:4539 + #, fuzzy + msgid "opaque vector types cannot be initialized" + msgstr "objekt med variabel storlek kan inte initieras" + +-#: c-typeck.c:4734 ++#: c-typeck.c:4714 + msgid "extra brace group at end of initializer" + msgstr "" + +-#: c-typeck.c:4754 ++#: c-typeck.c:4734 + msgid "missing braces around initializer" + msgstr "" + +-#: c-typeck.c:4814 ++#: c-typeck.c:4794 + msgid "braces around scalar initializer" + msgstr "" + +-#: c-typeck.c:4865 ++#: c-typeck.c:4845 + msgid "initialization of flexible array member in a nested context" + msgstr "" + +-#: c-typeck.c:4867 ++#: c-typeck.c:4847 + msgid "initialization of a flexible array member" + msgstr "" + +-#: c-typeck.c:4898 ++#: c-typeck.c:4878 + msgid "missing initializer" + msgstr "" + +-#: c-typeck.c:4920 ++#: c-typeck.c:4900 + msgid "empty scalar initializer" + msgstr "" + +-#: c-typeck.c:4925 ++#: c-typeck.c:4905 + msgid "extra elements in scalar initializer" + msgstr "" + +-#: c-typeck.c:5010 ++#: c-typeck.c:4990 + msgid "initialization designators may not nest" + msgstr "" + +-#: c-typeck.c:5031 c-typeck.c:5099 ++#: c-typeck.c:5011 c-typeck.c:5079 + msgid "array index in non-array initializer" + msgstr "" + +-#: c-typeck.c:5036 c-typeck.c:5152 ++#: c-typeck.c:5016 c-typeck.c:5132 + msgid "field name not in record or union initializer" + msgstr "" + +-#: c-typeck.c:5095 c-typeck.c:5097 ++#: c-typeck.c:5075 c-typeck.c:5077 + msgid "nonconstant array index in initializer" + msgstr "" + +-#: c-typeck.c:5101 c-typeck.c:5104 ++#: c-typeck.c:5081 c-typeck.c:5084 + msgid "array index in initializer exceeds array bounds" + msgstr "" + +-#: c-typeck.c:5115 ++#: c-typeck.c:5095 + msgid "empty index range in initializer" + msgstr "" + +-#: c-typeck.c:5124 ++#: c-typeck.c:5104 + msgid "array index range in initializer exceeds array bounds" + msgstr "" + +-#: c-typeck.c:5164 ++#: c-typeck.c:5144 + #, c-format + msgid "unknown field `%s' specified in initializer" + msgstr "" + +-#: c-typeck.c:5200 c-typeck.c:5221 c-typeck.c:5683 ++#: c-typeck.c:5180 c-typeck.c:5201 c-typeck.c:5663 + msgid "initialized field with side-effects overwritten" + msgstr "" + +-#: c-typeck.c:5891 ++#: c-typeck.c:5871 + msgid "excess elements in char array initializer" + msgstr "" + +-#: c-typeck.c:5898 c-typeck.c:5944 ++#: c-typeck.c:5878 c-typeck.c:5924 + msgid "excess elements in struct initializer" + msgstr "" + +-#: c-typeck.c:5959 ++#: c-typeck.c:5939 + msgid "non-static initialization of a flexible array member" + msgstr "" + +-#: c-typeck.c:6026 ++#: c-typeck.c:6006 + msgid "excess elements in union initializer" + msgstr "" + +-#: c-typeck.c:6047 ++#: c-typeck.c:6027 + msgid "traditional C rejects initialization of unions" + msgstr "" + +-#: c-typeck.c:6110 ++#: c-typeck.c:6090 + msgid "excess elements in array initializer" + msgstr "" + +-#: c-typeck.c:6139 ++#: c-typeck.c:6119 + msgid "excess elements in vector initializer" + msgstr "" + +-#: c-typeck.c:6161 ++#: c-typeck.c:6141 + msgid "excess elements in scalar initializer" + msgstr "" + +-#: c-typeck.c:6263 ++#: c-typeck.c:6243 + msgid "asm template is not a string constant" + msgstr "" + +-#: c-typeck.c:6295 ++#: c-typeck.c:6275 + msgid "invalid lvalue in asm statement" + msgstr "" + +-#: c-typeck.c:6367 cp/typeck.c:5902 ++#: c-typeck.c:6347 cp/typeck.c:5923 + msgid "modification by `asm'" + msgstr "" + +-#: c-typeck.c:6385 cp/typeck.c:5986 ++#: c-typeck.c:6365 cp/typeck.c:6007 + msgid "function declared `noreturn' has a `return' statement" + msgstr "" + +-#: c-typeck.c:6392 ++#: c-typeck.c:6372 + msgid "`return' with no value, in function returning non-void" + msgstr "" + +-#: c-typeck.c:6398 ++#: c-typeck.c:6378 + msgid "`return' with a value, in function returning void" + msgstr "\"return\" med värde i funktion som returnerar void" + +-#: c-typeck.c:6402 ++#: c-typeck.c:6382 + msgid "return" + msgstr "return" + +-#: c-typeck.c:6454 ++#: c-typeck.c:6434 + msgid "function returns address of local variable" + msgstr "funktionen returnerar adress till en lokal variabel" + +-#: c-typeck.c:6509 cp/semantics.c:749 ++#: c-typeck.c:6489 cp/semantics.c:749 + msgid "switch quantity not an integer" + msgstr "switch-argument är inte ett heltal" + +-#: c-typeck.c:6519 ++#: c-typeck.c:6499 + msgid "`long' switch expression not converted to `int' in ISO C" + msgstr "" + +-#: c-typeck.c:6560 cp/parser.c:5560 ++#: c-typeck.c:6540 cp/parser.c:5597 + msgid "case label not within a switch statement" + msgstr "case-etikett är inte i en switch-sats" + +-#: c-typeck.c:6562 ++#: c-typeck.c:6542 + msgid "`default' label not within a switch statement" + msgstr "\"default\"-etikett är inte i en switch-sats" + +-#: c-typeck.c:6714 c-typeck.c:6748 ++#: c-typeck.c:6694 c-typeck.c:6728 + msgid "division by zero" + msgstr "" + +-#: c-typeck.c:6793 cp/typeck.c:2953 ++#: c-typeck.c:6773 cp/typeck.c:2953 + msgid "right shift count is negative" + msgstr "högershiftoperanden är negativ" + +-#: c-typeck.c:6800 cp/typeck.c:2959 ++#: c-typeck.c:6780 cp/typeck.c:2959 + msgid "right shift count >= width of type" + msgstr "högershiftoperanden >= storleken på typen" + +-#: c-typeck.c:6821 cp/typeck.c:2978 ++#: c-typeck.c:6801 cp/typeck.c:2978 + msgid "left shift count is negative" + msgstr "vänstershiftoperanden är negativ" + +-#: c-typeck.c:6824 cp/typeck.c:2980 ++#: c-typeck.c:6804 cp/typeck.c:2980 + msgid "left shift count >= width of type" + msgstr "vänstershiftoperanden >= storleken på typen" + +-#: c-typeck.c:6845 ++#: c-typeck.c:6825 + msgid "shift count is negative" + msgstr "shiftoperanden är negativ" + +-#: c-typeck.c:6847 ++#: c-typeck.c:6827 + msgid "shift count >= width of type" + msgstr "shiftoperanden >= storleken på typen" + +-#: c-typeck.c:6864 cp/typeck.c:3015 ++#: c-typeck.c:6844 cp/typeck.c:3015 + msgid "comparing floating point with == or != is unsafe" + msgstr "jämföra flyttal med == eller != är osäkert" + +-#: c-typeck.c:6888 c-typeck.c:6894 ++#: c-typeck.c:6868 c-typeck.c:6874 + msgid "ISO C forbids comparison of `void *' with function pointer" + msgstr "ISO C förbjuder jämförelse mellan \"void *\" och funktionspekare" + +-#: c-typeck.c:6897 c-typeck.c:6937 c-typeck.c:6965 ++#: c-typeck.c:6877 c-typeck.c:6917 c-typeck.c:6945 + msgid "comparison of distinct pointer types lacks a cast" + msgstr "" + +-#: c-typeck.c:6911 c-typeck.c:6916 c-typeck.c:6985 c-typeck.c:6990 ++#: c-typeck.c:6891 c-typeck.c:6896 c-typeck.c:6965 c-typeck.c:6970 + msgid "comparison between pointer and integer" + msgstr "jämförelse mellan pekare och heltal" + +-#: c-typeck.c:6932 c-typeck.c:6960 ++#: c-typeck.c:6912 c-typeck.c:6940 + msgid "ISO C forbids ordered comparisons of pointers to functions" + msgstr "ISO C förbjuder ordningsjämförelse på pekare till funktioner" + +-#: c-typeck.c:6957 ++#: c-typeck.c:6937 + msgid "comparison of complete and incomplete pointers" + msgstr "jämförelse av kompletta och inkompletta pekare" + +-#: c-typeck.c:6973 c-typeck.c:6980 ++#: c-typeck.c:6953 c-typeck.c:6960 + msgid "ordered comparison of pointer with integer zero" + msgstr "" + +-#: c-typeck.c:7004 cp/typeck.c:3151 ++#: c-typeck.c:6984 cp/typeck.c:3151 + msgid "unordered comparison on non-floating point argument" + msgstr "" + +-#: c-typeck.c:7214 ++#: c-typeck.c:7194 + msgid "comparison between signed and unsigned" + msgstr "jämföreslse mellan signed och unsigned" + +-#: c-typeck.c:7260 cp/typeck.c:3398 ++#: c-typeck.c:7240 cp/typeck.c:3398 + msgid "comparison of promoted ~unsigned with constant" + msgstr "" + +-#: c-typeck.c:7268 cp/typeck.c:3406 ++#: c-typeck.c:7248 cp/typeck.c:3406 + msgid "comparison of promoted ~unsigned with unsigned" + msgstr "" + +@@ -3593,7 +3598,7 @@ + msgid "%Jinlining failed in call to '%F'" + msgstr "inlining misslyckades i anrop av \"%s\"" + +-#: calls.c:1839 calls.c:2211 tree-inline.c:1339 tree-inline.c:1346 ++#: calls.c:1839 calls.c:2211 tree-inline.c:1339 tree-inline.c:1347 + msgid "called from here" + msgstr "anropad härifrån" + +@@ -3654,7 +3659,7 @@ + msgid "verify_flow_info: Basic block %d succ edge is corrupted" + msgstr "" + +-#: cfg.c:909 cfgrtl.c:1971 ++#: cfg.c:909 cfgrtl.c:1983 + #, c-format + msgid "Wrong amount of branch edges after unconditional jump %i" + msgstr "" +@@ -3733,116 +3738,116 @@ + msgid "Edge from %d to %d should not be marked irreducible." + msgstr "" + +-#: cfgrtl.c:1877 ++#: cfgrtl.c:1889 + #, c-format + msgid "end insn %d for block %d not found in the insn stream" + msgstr "" + +-#: cfgrtl.c:1891 ++#: cfgrtl.c:1903 + #, c-format + msgid "insn %d is in multiple basic blocks (%d and %d)" + msgstr "" + +-#: cfgrtl.c:1903 ++#: cfgrtl.c:1915 + #, c-format + msgid "head insn %d for block %d not found in the insn stream" + msgstr "" + +-#: cfgrtl.c:1925 ++#: cfgrtl.c:1937 + msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i" + msgstr "" + +-#: cfgrtl.c:1953 ++#: cfgrtl.c:1965 + #, c-format + msgid "Missing REG_EH_REGION note in the end of bb %i" + msgstr "" + +-#: cfgrtl.c:1961 ++#: cfgrtl.c:1973 + #, c-format + msgid "Too many outgoing branch edges from bb %i" + msgstr "" + +-#: cfgrtl.c:1966 ++#: cfgrtl.c:1978 + #, c-format + msgid "Fallthru edge after unconditional jump %i" + msgstr "" + +-#: cfgrtl.c:1977 ++#: cfgrtl.c:1989 + #, fuzzy, c-format + msgid "Wrong amount of branch edges after conditional jump %i" + msgstr "Föredra hopp framför villkorlig körning" + +-#: cfgrtl.c:1982 ++#: cfgrtl.c:1994 + #, c-format + msgid "Call edges for non-call insn in bb %i" + msgstr "" + +-#: cfgrtl.c:1991 ++#: cfgrtl.c:2003 + #, c-format + msgid "Abnormal edges for no purpose in bb %i" + msgstr "" + +-#: cfgrtl.c:2001 ++#: cfgrtl.c:2013 + #, c-format + msgid "insn %d inside basic block %d but block_for_insn is NULL" + msgstr "" + +-#: cfgrtl.c:2005 ++#: cfgrtl.c:2017 + #, c-format + msgid "insn %d inside basic block %d but block_for_insn is %i" + msgstr "" + +-#: cfgrtl.c:2019 cfgrtl.c:2029 ++#: cfgrtl.c:2031 cfgrtl.c:2041 + #, c-format + msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d" + msgstr "" + +-#: cfgrtl.c:2042 ++#: cfgrtl.c:2054 + #, c-format + msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d" + msgstr "" + +-#: cfgrtl.c:2052 ++#: cfgrtl.c:2064 + #, c-format + msgid "in basic block %d:" + msgstr "" + +-#: cfgrtl.c:2053 ++#: cfgrtl.c:2065 + msgid "flow control insn inside a basic block" + msgstr "" + +-#: cfgrtl.c:2099 ++#: cfgrtl.c:2111 + #, c-format + msgid "missing barrier after block %i" + msgstr "" + +-#: cfgrtl.c:2112 ++#: cfgrtl.c:2124 + #, c-format + msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i" + msgstr "" + +-#: cfgrtl.c:2127 ++#: cfgrtl.c:2139 + #, c-format + msgid "verify_flow_info: Incorrect fallthru %i->%i" + msgstr "" + +-#: cfgrtl.c:2129 ++#: cfgrtl.c:2141 + msgid "wrong insn in the fallthru edge" + msgstr "" + +-#: cfgrtl.c:2146 ++#: cfgrtl.c:2158 + msgid "basic blocks not laid down consecutively" + msgstr "" + +-#: cfgrtl.c:2171 ++#: cfgrtl.c:2183 + msgid "insn outside basic block" + msgstr "" + +-#: cfgrtl.c:2179 ++#: cfgrtl.c:2191 + msgid "return not followed by barrier" + msgstr "" + +-#: cfgrtl.c:2186 ++#: cfgrtl.c:2198 + #, c-format + msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)" + msgstr "" +@@ -4074,7 +4079,7 @@ + msgid "library lib%s not found" + msgstr "Hittade inte bibliotek lib%s" + +-#: combine.c:13048 ++#: combine.c:13047 + #, c-format + msgid "" + ";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n" +@@ -4082,7 +4087,7 @@ + "\n" + msgstr "" + +-#: combine.c:13057 ++#: combine.c:13056 + #, c-format + msgid "" + "\n" +@@ -4422,68 +4427,74 @@ + msgid "token \"%s\" is not valid in preprocessor expressions" + msgstr "\"%s\" är inte ett giltigt filnamn" + +-#: cppexp.c:753 +-msgid "void expression between '(' and ')'" +-msgstr "" ++#: cppexp.c:751 ++#, fuzzy ++msgid "missing expression between '(' and ')'" ++msgstr "jämföreslse mellan signed och unsigned" + +-#: cppexp.c:756 ++#: cppexp.c:754 + #, fuzzy + msgid "#if with no expression" + msgstr "#%s utan argument" + +-#: cppexp.c:758 ++#: cppexp.c:757 + #, c-format + msgid "operator '%s' has no right operand" + msgstr "" + +-#: cppexp.c:784 ++#: cppexp.c:762 ++#, fuzzy, c-format ++msgid "operator '%s' has no left operand" ++msgstr "parameter \"%s\" har en inkomplett typ" ++ ++#: cppexp.c:788 + #, fuzzy + msgid " ':' without preceding '?'" + msgstr "syntaxfel vid token \"%s\"" + +-#: cppexp.c:811 ++#: cppexp.c:815 + #, fuzzy + msgid "unbalanced stack in #if" + msgstr "obalanserad #endif" + +-#: cppexp.c:830 ++#: cppexp.c:834 + #, fuzzy, c-format + msgid "impossible operator '%u'" + msgstr "saknar mellanrum efter nummer \"%.*s\"" + +-#: cppexp.c:922 ++#: cppexp.c:926 + #, fuzzy + msgid "missing ')' in expression" + msgstr "heltalsspill i uttryck" + +-#: cppexp.c:943 ++#: cppexp.c:947 + msgid "'?' without following ':'" + msgstr "" + +-#: cppexp.c:953 ++#: cppexp.c:957 + msgid "integer overflow in preprocessor expression" + msgstr "" + +-#: cppexp.c:958 ++#: cppexp.c:962 + #, fuzzy + msgid "missing '(' in expression" + msgstr "heltalsspill i uttryck" + +-#: cppexp.c:990 ++#: cppexp.c:994 + #, c-format + msgid "the left operand of \"%s\" changes sign when promoted" + msgstr "" + +-#: cppexp.c:995 ++#: cppexp.c:999 + #, c-format + msgid "the right operand of \"%s\" changes sign when promoted" + msgstr "" + +-#: cppexp.c:1353 ++#: cppexp.c:1357 + msgid "comma operator in operand of #if" + msgstr "" + +-#: cppexp.c:1484 ++#: cppexp.c:1488 + msgid "division by zero in #if" + msgstr "" + +@@ -4519,7 +4530,7 @@ + msgid "no include path in which to search for %s" + msgstr "" + +-#: cppfiles.c:956 ++#: cppfiles.c:959 + msgid "Multiple include guards may be useful for:\n" + msgstr "" + +@@ -4936,7 +4947,7 @@ + msgid "syntax error in macro parameter list" + msgstr "parameternamn saknas i parameterlista" + +-#: cse.c:7064 ++#: cse.c:7069 + #, c-format + msgid ";; Processing block from %d to %d, %d sets.\n" + msgstr "" +@@ -5072,12 +5083,12 @@ + + #. We can't handle floating point constants; + #. PRINT_OPERAND must handle them. +-#: final.c:3220 vmsdbgout.c:467 config/i386/i386.c:6768 ++#: final.c:3220 vmsdbgout.c:467 config/i386/i386.c:6769 + #: config/pdp11/pdp11.c:1646 + msgid "floating constant misused" + msgstr "" + +-#: final.c:3276 vmsdbgout.c:524 config/i386/i386.c:6846 ++#: final.c:3276 vmsdbgout.c:524 config/i386/i386.c:6847 + #: config/pdp11/pdp11.c:1693 + msgid "invalid expression as operand" + msgstr "" +@@ -5098,25 +5109,25 @@ + msgid "Attempt to delete prologue/epilogue insn:" + msgstr "" + +-#: fold-const.c:2878 fold-const.c:2891 ++#: fold-const.c:2889 fold-const.c:2902 + #, fuzzy, c-format + msgid "comparison is always %d due to width of bit-field" + msgstr "jämförelsen är alltid sann på grund av begränsat intervall för datatypen" + +-#: fold-const.c:4093 fold-const.c:4110 ++#: fold-const.c:4110 fold-const.c:4127 + #, c-format + msgid "comparison is always %d" + msgstr "jämförelsen är alltid %d" + +-#: fold-const.c:4241 ++#: fold-const.c:4258 + msgid "`or' of unmatched not-equal tests is always 1" + msgstr "" + +-#: fold-const.c:4246 ++#: fold-const.c:4263 + msgid "`and' of mutually exclusive equal-tests is always 0" + msgstr "" + +-#: fold-const.c:8393 ++#: fold-const.c:8410 + msgid "fold check: original tree changed by fold" + msgstr "" + +@@ -5125,27 +5136,27 @@ + msgid "%Jsize of variable '%D' is too large" + msgstr "storleken på variabel \"%s\" är för stor" + +-#: function.c:3742 ++#: function.c:3752 + msgid "impossible constraint in `asm'" + msgstr "" + +-#: function.c:5733 ++#: function.c:5743 + msgid "%J'%D' might be used uninitialized in this function" + msgstr "" + +-#: function.c:5740 ++#: function.c:5750 + msgid "%Jvariable '%D' might be clobbered by `longjmp' or `vfork'" + msgstr "" + +-#: function.c:5759 ++#: function.c:5769 + msgid "%Jargument '%D' might be clobbered by `longjmp' or `vfork'" + msgstr "" + +-#: function.c:6533 ++#: function.c:6543 + msgid "function returns an aggregate" + msgstr "" + +-#: function.c:6929 ++#: function.c:6939 + #, fuzzy + msgid "%Junused parameter '%D'" + msgstr "oanvänd parameter \"%s\"" +@@ -5174,74 +5185,74 @@ + msgid "Using built-in specs.\n" + msgstr "" + +-#: gcc.c:1755 ++#: gcc.c:1758 + #, c-format + msgid "" + "Setting spec %s to '%s'\n" + "\n" + msgstr "" + +-#: gcc.c:1857 ++#: gcc.c:1860 + #, c-format + msgid "Reading specs from %s\n" + msgstr "" + +-#: gcc.c:1953 gcc.c:1972 ++#: gcc.c:1956 gcc.c:1975 + #, c-format + msgid "specs %%include syntax malformed after %ld characters" + msgstr "" + +-#: gcc.c:1980 ++#: gcc.c:1983 + #, fuzzy, c-format + msgid "could not find specs file %s\n" + msgstr "Kunde inte öppna källkodsfil %s.\n" + +-#: gcc.c:1997 gcc.c:2005 gcc.c:2014 gcc.c:2023 ++#: gcc.c:2000 gcc.c:2008 gcc.c:2017 gcc.c:2026 + #, c-format + msgid "specs %%rename syntax malformed after %ld characters" + msgstr "" + +-#: gcc.c:2032 ++#: gcc.c:2035 + #, c-format + msgid "specs %s spec was not found to be renamed" + msgstr "" + +-#: gcc.c:2039 ++#: gcc.c:2042 + #, c-format + msgid "%s: attempt to rename spec '%s' to already defined spec '%s'" + msgstr "" + +-#: gcc.c:2044 ++#: gcc.c:2047 + #, c-format + msgid "rename spec %s to %s\n" + msgstr "" + +-#: gcc.c:2046 ++#: gcc.c:2049 + #, c-format + msgid "" + "spec is '%s'\n" + "\n" + msgstr "" + +-#: gcc.c:2059 ++#: gcc.c:2062 + #, c-format + msgid "specs unknown %% command after %ld characters" + msgstr "" + +-#: gcc.c:2070 gcc.c:2083 ++#: gcc.c:2073 gcc.c:2086 + #, c-format + msgid "specs file malformed after %ld characters" + msgstr "" + +-#: gcc.c:2136 ++#: gcc.c:2139 + msgid "spec file has no spec for linking" + msgstr "specfilen har ingen spec för länkning" + +-#: gcc.c:2641 ++#: gcc.c:2644 + msgid "-pipe not supported" + msgstr "-pipe stöds inte" + +-#: gcc.c:2703 ++#: gcc.c:2706 + msgid "" + "\n" + "Go ahead? (y or n) " +@@ -5249,7 +5260,7 @@ + "\n" + "Fortsätta? (y eller n) " + +-#: gcc.c:2829 ++#: gcc.c:2832 + #, c-format + msgid "" + "Internal error: %s (program %s)\n" +@@ -5260,69 +5271,69 @@ + "Var vänlig och skicka in en felrapport.\n" + "Se %s för instruktioner." + +-#: gcc.c:2847 ++#: gcc.c:2850 + #, c-format + msgid "# %s %.2f %.2f\n" + msgstr "# %s %.2f %.2f\n" + +-#: gcc.c:2980 ++#: gcc.c:2983 + #, c-format + msgid "Usage: %s [options] file...\n" + msgstr "Användning: %s [flaggor] fil...\n" + +-#: gcc.c:2981 ++#: gcc.c:2984 + msgid "Options:\n" + msgstr "Flaggor:\n" + +-#: gcc.c:2983 ++#: gcc.c:2986 + msgid " -pass-exit-codes Exit with highest error code from a phase\n" + msgstr " -pass-exit-codes Avsluta med högsta felkoden från någon av faserna\n" + +-#: gcc.c:2984 ++#: gcc.c:2987 + msgid " --help Display this information\n" + msgstr " --help Visa den här informatationen\n" + +-#: gcc.c:2985 ++#: gcc.c:2988 + msgid " --target-help Display target specific command line options\n" + msgstr " --target-help Visa specifika kommandoradsflaggor för mål\n" + +-#: gcc.c:2987 ++#: gcc.c:2990 + msgid " (Use '-v --help' to display command line options of sub-processes)\n" + msgstr " (Använd '-v --help' för att visa kommandoradsflaggor för barnprocesser)\n" + +-#: gcc.c:2988 ++#: gcc.c:2991 + msgid " -dumpspecs Display all of the built in spec strings\n" + msgstr " -dumpspecs Visa de inbyggda spec-strängarna\n" + +-#: gcc.c:2989 ++#: gcc.c:2992 + msgid " -dumpversion Display the version of the compiler\n" + msgstr " -dumpversion Visa kompilatorns version\n" + +-#: gcc.c:2990 ++#: gcc.c:2993 + msgid " -dumpmachine Display the compiler's target processor\n" + msgstr " -dumpmachine Visa kompilatorns målprocessor\n" + +-#: gcc.c:2991 ++#: gcc.c:2994 + msgid " -print-search-dirs Display the directories in the compiler's search path\n" + msgstr " -print-search-dirs Visa katalogerna i kompilatorns sökväg\n" + +-#: gcc.c:2992 ++#: gcc.c:2995 + msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n" + msgstr " -print-libgcc-file-name Visa namnet på kompilatorns medföljande bibliotek\n" + +-#: gcc.c:2993 ++#: gcc.c:2996 + msgid " -print-file-name= Display the full path to library \n" + msgstr " -print-file-name= Visa hela sökvägen till länkbibliotek \n" + +-#: gcc.c:2994 ++#: gcc.c:2997 + msgid " -print-prog-name= Display the full path to compiler component \n" + msgstr " -print-prog-name= Visa fulla sökvägen till kompilatorkomponenten \n" + +-#: gcc.c:2995 ++#: gcc.c:2998 + msgid " -print-multi-directory Display the root directory for versions of libgcc\n" + msgstr " -print-multi-directory Visa rotkatalogen för olika versioner av libgcc\n" + +-#: gcc.c:2996 ++#: gcc.c:2999 + msgid "" + " -print-multi-lib Display the mapping between command line options and\n" + " multiple library search directories\n" +@@ -5330,97 +5341,97 @@ + " -print-multi-lib Visa mappningen mellan kommandoradsflaggor och\n" + " multipla biblioteks sökkataloger\n" + +-#: gcc.c:2999 ++#: gcc.c:3002 + #, fuzzy + msgid " -print-multi-os-directory Display the relative path to OS libraries\n" + msgstr " -print-multi-directory Visa rotkatalogen för olika versioner av libgcc\n" + +-#: gcc.c:3000 ++#: gcc.c:3003 + msgid " -Wa, Pass comma-separated on to the assembler\n" + msgstr " -Wa, Skicka kommaseparerade till assembleraren\n" + +-#: gcc.c:3001 ++#: gcc.c:3004 + msgid " -Wp, Pass comma-separated on to the preprocessor\n" + msgstr " -Wp, Skicka kommaseparerade till preprocessorn\n" + +-#: gcc.c:3002 ++#: gcc.c:3005 + msgid " -Wl, Pass comma-separated on to the linker\n" + msgstr " -Wl, Skicka kommaseparerade till länkaren\n" + +-#: gcc.c:3003 ++#: gcc.c:3006 + #, fuzzy + msgid " -Xassembler Pass on to the assembler\n" + msgstr " -Xlinker Skicka vidare till länkaren\n" + +-#: gcc.c:3004 ++#: gcc.c:3007 + #, fuzzy + msgid " -Xpreprocessor Pass on to the preprocessor\n" + msgstr " -Xlinker Skicka vidare till länkaren\n" + +-#: gcc.c:3005 ++#: gcc.c:3008 + msgid " -Xlinker Pass on to the linker\n" + msgstr " -Xlinker Skicka vidare till länkaren\n" + +-#: gcc.c:3006 ++#: gcc.c:3009 + msgid " -save-temps Do not delete intermediate files\n" + msgstr " -save-temps Radera inte temporära filer\n" + +-#: gcc.c:3007 ++#: gcc.c:3010 + msgid " -pipe Use pipes rather than intermediate files\n" + msgstr " -pipe Använd rör istället för temporära filer\n" + +-#: gcc.c:3008 ++#: gcc.c:3011 + msgid " -time Time the execution of each subprocess\n" + msgstr " -time Mät tiden det tar att exekvera varje barnprocess\n" + +-#: gcc.c:3009 ++#: gcc.c:3012 + #, fuzzy + msgid " -specs= Override built-in specs with the contents of \n" + msgstr " -specs= Använd innehållet i istället för inbyggda spec\n" + +-#: gcc.c:3010 ++#: gcc.c:3013 + msgid " -std= Assume that the input sources are for \n" + msgstr " -std= Antag att källkodsfilerna är för \n" + +-#: gcc.c:3011 ++#: gcc.c:3014 + msgid " -B Add to the compiler's search paths\n" + msgstr " -B Lägg till till kompilatorns sökvägar\n" + +-#: gcc.c:3012 ++#: gcc.c:3015 + msgid " -b Run gcc for target , if installed\n" + msgstr " -b Kör gcc för mål , om det är installerat\n" + +-#: gcc.c:3013 ++#: gcc.c:3016 + msgid " -V Run gcc version number , if installed\n" + msgstr " -V Kör gcc version , om den är installerad\n" + +-#: gcc.c:3014 ++#: gcc.c:3017 + msgid " -v Display the programs invoked by the compiler\n" + msgstr " -v Visa vilka program som körs av kompilatorn\n" + +-#: gcc.c:3015 ++#: gcc.c:3018 + msgid " -### Like -v but options quoted and commands not executed\n" + msgstr "" + +-#: gcc.c:3016 ++#: gcc.c:3019 + msgid " -E Preprocess only; do not compile, assemble or link\n" + msgstr "" + " -E Preprocessa bara; kompilera, assemblera och\n" + " länka inte\n" + +-#: gcc.c:3017 ++#: gcc.c:3020 + msgid " -S Compile only; do not assemble or link\n" + msgstr " -S Kompilera bara; assemblera och länka inte\n" + +-#: gcc.c:3018 ++#: gcc.c:3021 + msgid " -c Compile and assemble, but do not link\n" + msgstr " -c Kompilera och assemblera, men länka inte\n" + +-#: gcc.c:3019 ++#: gcc.c:3022 + msgid " -o Place the output into \n" + msgstr " -o Placera utdata i \n" + +-#: gcc.c:3020 ++#: gcc.c:3023 + #, fuzzy + msgid "" + " -x Specify the language of the following input files\n" +@@ -5433,7 +5444,7 @@ + " 'none' innebär att man använder standardmetoden,\n" + " att man gissar språk beroende på filändelse\n" + +-#: gcc.c:3027 ++#: gcc.c:3030 + #, c-format + msgid "" + "\n" +@@ -5446,98 +5457,98 @@ + "vidare till de barnprocesser som startas av %s. För att skicka med andra\n" + "flaggor till dessa processer måste flaggan -W användas.\n" + +-#: gcc.c:3148 ++#: gcc.c:3151 + #, fuzzy, c-format + msgid "`-%c' option must have argument" + msgstr "\"%s\" tar bara noll eller två argument" + +-#: gcc.c:3170 ++#: gcc.c:3173 + #, c-format + msgid "couldn't run `%s': %s" + msgstr "" + + #. translate_options () has turned --version into -fversion. +-#: gcc.c:3356 ++#: gcc.c:3359 + #, c-format + msgid "%s (GCC) %s\n" + msgstr "" + +-#: gcc.c:3358 gcov.c:424 f/g77spec.c:351 ++#: gcc.c:3361 gcov.c:424 f/g77spec.c:351 + msgid "(C)" + msgstr "" + +-#: gcc.c:3359 ++#: gcc.c:3362 + msgid "" + "This is free software; see the source for copying conditions. There is NO\n" + "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" + "\n" + msgstr "" + +-#: gcc.c:3460 ++#: gcc.c:3463 + msgid "argument to `-Xlinker' is missing" + msgstr "argument till \"-Xlinker\" saknas" + +-#: gcc.c:3468 ++#: gcc.c:3471 + #, fuzzy + msgid "argument to `-Xpreprocessor' is missing" + msgstr "argument till \"-specs\" saknas" + +-#: gcc.c:3475 ++#: gcc.c:3478 + #, fuzzy + msgid "argument to `-Xassembler' is missing" + msgstr "argument till \"-Xlinker\" saknas" + +-#: gcc.c:3482 ++#: gcc.c:3485 + #, fuzzy + msgid "argument to `-l' is missing" + msgstr "argument till \"-x\" saknas" + +-#: gcc.c:3498 ++#: gcc.c:3501 + msgid "argument to `-specs' is missing" + msgstr "argument till \"-specs\" saknas" + +-#: gcc.c:3512 ++#: gcc.c:3515 + msgid "argument to `-specs=' is missing" + msgstr "argument till \"-specs=\" saknas" + +-#: gcc.c:3549 ++#: gcc.c:3552 + #, c-format + msgid "`-%c' must come at the start of the command line" + msgstr "" + +-#: gcc.c:3558 ++#: gcc.c:3561 + msgid "argument to `-B' is missing" + msgstr "argument till \"-B\" saknas" + +-#: gcc.c:3735 ++#: gcc.c:3738 + #, fuzzy + msgid "warning: -pipe ignored because -save-temps specified" + msgstr "Varning: -pipe ignorerad eftersom -save-temps angiven" + +-#: gcc.c:3739 ++#: gcc.c:3742 + #, fuzzy + msgid "warning: -pipe ignored because -time specified" + msgstr "Varning: -pipe ignorerad eftersom -time angiven" + +-#: gcc.c:3951 ++#: gcc.c:3954 + msgid "argument to `-x' is missing" + msgstr "argument till \"-x\" saknas" + +-#: gcc.c:3979 ++#: gcc.c:3982 + #, c-format + msgid "argument to `-%s' is missing" + msgstr "argument till \"-%s\" saknas" + +-#: gcc.c:4040 ++#: gcc.c:4043 + #, c-format + msgid "warning: `-x %s' after last input file has no effect" + msgstr "" + +-#: gcc.c:4441 ++#: gcc.c:4444 + msgid "invalid specification! Bug in cc" + msgstr "" + +-#: gcc.c:4595 ++#: gcc.c:4598 + #, c-format + msgid "%s\n" + msgstr "%s\n" +@@ -5545,79 +5556,79 @@ + #. Catch the case where a spec string contains something like + #. '%{foo:%*}'. ie there is no * in the pattern on the left + #. hand side of the :. +-#: gcc.c:5099 ++#: gcc.c:5102 + #, c-format + msgid "spec failure: '%%*' has not been initialized by pattern match" + msgstr "" + +-#: gcc.c:5108 ++#: gcc.c:5111 + #, c-format + msgid "warning: use of obsolete %%[ operator in specs" + msgstr "" + +-#: gcc.c:5126 ++#: gcc.c:5129 + #, c-format + msgid "Processing spec %c%s%c, which is '%s'\n" + msgstr "" + +-#: gcc.c:5189 ++#: gcc.c:5192 + #, fuzzy, c-format + msgid "spec failure: unrecognized spec option '%c'" + msgstr "ej igenkänd flagga `-%s'" + +-#: gcc.c:5268 ++#: gcc.c:5271 + #, fuzzy, c-format + msgid "unknown spec function `%s'" + msgstr "I funktion `%s':" + +-#: gcc.c:5287 ++#: gcc.c:5290 + #, fuzzy, c-format + msgid "error in args to spec function `%s'" + msgstr "för många argument till funktionen \"%s\"" + +-#: gcc.c:5335 ++#: gcc.c:5338 + msgid "malformed spec function name" + msgstr "" + + #. ) +-#: gcc.c:5338 ++#: gcc.c:5341 + #, fuzzy + msgid "no arguments for spec function" + msgstr "för få argument till funktion" + +-#: gcc.c:5357 ++#: gcc.c:5360 + msgid "malformed spec function arguments" + msgstr "" + +-#: gcc.c:6083 ++#: gcc.c:6086 + msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC." + msgstr "" + +-#: gcc.c:6093 ++#: gcc.c:6096 + msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC." + msgstr "" + +-#: gcc.c:6186 ++#: gcc.c:6189 + #, c-format + msgid "unrecognized option `-%s'" + msgstr "ej igenkänd flagga `-%s'" + +-#: gcc.c:6192 ++#: gcc.c:6195 + #, c-format + msgid "install: %s%s\n" + msgstr "" + +-#: gcc.c:6193 ++#: gcc.c:6196 + #, c-format + msgid "programs: %s\n" + msgstr "program: %s\n" + +-#: gcc.c:6194 ++#: gcc.c:6197 + #, c-format + msgid "libraries: %s\n" + msgstr "bibliotek: %s\n" + +-#: gcc.c:6251 ++#: gcc.c:6254 + msgid "" + "\n" + "For bug reporting instructions, please see:\n" +@@ -5625,52 +5636,52 @@ + "\n" + "Instruktioner för bugrapportering, se:\n" + +-#: gcc.c:6267 ++#: gcc.c:6270 + #, c-format + msgid "Configured with: %s\n" + msgstr "" + +-#: gcc.c:6281 ++#: gcc.c:6284 + #, c-format + msgid "Thread model: %s\n" + msgstr "" + +-#: gcc.c:6292 ++#: gcc.c:6295 + #, c-format + msgid "gcc version %s\n" + msgstr "gcc version %s\n" + +-#: gcc.c:6294 ++#: gcc.c:6297 + #, c-format + msgid "gcc driver version %s executing gcc version %s\n" + msgstr "" + +-#: gcc.c:6302 ++#: gcc.c:6305 + #, fuzzy + msgid "no input files" + msgstr "Inga indatafiler" + +-#: gcc.c:6324 gcc.c:6443 ++#: gcc.c:6327 gcc.c:6446 + #, c-format + msgid "%s: linker input file unused because linking not done" + msgstr "" + +-#: gcc.c:6327 ++#: gcc.c:6330 + #, fuzzy + msgid "cannot specify -o with -c or -S and multiple languages" + msgstr "kan inte ange både -C och -o" + +-#: gcc.c:6362 ++#: gcc.c:6365 + #, c-format + msgid "%s: %s compiler not installed on this system" + msgstr "%s: kompilatorn %s är inte installerad på detta system" + +-#: gcc.c:6483 ++#: gcc.c:6486 + #, c-format + msgid "language %s not recognized" + msgstr "språk %s känns inte igen" + +-#: gcc.c:6580 ++#: gcc.c:6583 + #, fuzzy + msgid "internal gcc abort" + msgstr "Intern gcc-halt (abort)." +@@ -5961,22 +5972,22 @@ + msgid "GCSE disabled" + msgstr "" + +-#: gcse.c:6124 ++#: gcse.c:6125 + msgid "NULL pointer checks disabled" + msgstr "" + + #. Return if there's nothing to do, or it is too expensive. +-#: gcse.c:8010 ++#: gcse.c:8036 + #, fuzzy + msgid "jump bypassing disabled" + msgstr "flaggan -g är avslagen." + +-#: gcse.c:8071 ++#: gcse.c:8097 + #, c-format + msgid "%s: %d basic blocks and %d edges/basic block" + msgstr "" + +-#: gcse.c:8084 ++#: gcse.c:8110 + #, c-format + msgid "%s: %d basic blocks and %d registers" + msgstr "" +@@ -6027,7 +6038,7 @@ + msgid "%s cannot be used in asm here" + msgstr "fält \"%s\" deklarerad som en funktion" + +-#: graph.c:403 toplev.c:1498 toplev.c:4432 f/com.c:14202 java/jcf-parse.c:883 ++#: graph.c:403 toplev.c:1498 toplev.c:4433 f/com.c:14202 java/jcf-parse.c:883 + #: java/jcf-parse.c:1029 java/lex.c:1828 objc/objc-act.c:503 + #, fuzzy, c-format + msgid "can't open %s: %m" +@@ -6107,7 +6118,7 @@ + msgid "function with target specific attribute(s) cannot be inlined" + msgstr "" + +-#: jump.c:1896 ++#: jump.c:1913 + #, fuzzy + msgid "%Hwill never be executed" + msgstr "anrop %d aldrig utfört\n" +@@ -6596,7 +6607,7 @@ + msgid "can't use '%s' as a %s register" + msgstr "" + +-#: regclass.c:758 config/ia64/ia64.c:4660 config/ia64/ia64.c:4667 ++#: regclass.c:758 config/ia64/ia64.c:4666 config/ia64/ia64.c:4673 + #, c-format + msgid "unknown register name: %s" + msgstr "okänt registernamn: %s" +@@ -6641,16 +6652,16 @@ + msgid "impossible register constraint in `asm'" + msgstr "" + +-#: reload.c:3504 ++#: reload.c:3519 + msgid "`&' constraint used with no register class" + msgstr "" + +-#: reload.c:3672 ++#: reload.c:3687 + #, fuzzy + msgid "unable to generate reloads for:" + msgstr "Välj CPU att generera kod för" + +-#: reload.c:3673 reload.c:3887 ++#: reload.c:3688 reload.c:3902 + msgid "inconsistent operand constraints in an `asm'" + msgstr "" + +@@ -7065,11 +7076,11 @@ + msgid "invalid register name `%s' for register variable" + msgstr "" + +-#: toplev.c:3546 ++#: toplev.c:3547 + msgid "branch target register load optimization is not intended to be run twice" + msgstr "" + +-#: toplev.c:3713 ++#: toplev.c:3714 + msgid "" + "\n" + "Target specific options:\n" +@@ -7077,12 +7088,12 @@ + "\n" + "Speciella flaggor för målarkitektur:\n" + +-#: toplev.c:3727 toplev.c:3746 ++#: toplev.c:3728 toplev.c:3747 + #, fuzzy, c-format + msgid " -m%-23s [undocumented]\n" + msgstr " -m%-23.23s [odokumenterad]\n" + +-#: toplev.c:3755 ++#: toplev.c:3756 + msgid "" + "\n" + "There are undocumented target specific options as well.\n" +@@ -7090,21 +7101,21 @@ + "\n" + "Det finns dessutom odokumenterade flaggor speciellt för målarkitekturen.\n" + +-#: toplev.c:3757 ++#: toplev.c:3758 + msgid " They exist, but they are not documented.\n" + msgstr " De finns, men är inte dokumenterade.\n" + +-#: toplev.c:3812 ++#: toplev.c:3813 + #, c-format + msgid "unrecognized gcc debugging option: %c" + msgstr "ej igenkänd debuggningsflagga för gcc: %c" + +-#: toplev.c:3874 config/rs6000/rs6000.c:922 ++#: toplev.c:3875 config/rs6000/rs6000.c:940 config/rs6000/rs6000.c:951 + #, fuzzy, c-format + msgid "invalid option `%s'" + msgstr "Ogiltig flagga \"%s\"" + +-#: toplev.c:3889 ++#: toplev.c:3890 + #, c-format + msgid "" + "%s%s%s version %s (%s)\n" +@@ -7112,98 +7123,98 @@ + "%s%s%s version %s (%s) compiled by CC.\n" + msgstr "" + +-#: toplev.c:3896 ++#: toplev.c:3897 + #, c-format + msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n" + msgstr "" + +-#: toplev.c:3948 ++#: toplev.c:3949 + msgid "options passed: " + msgstr "" + +-#: toplev.c:3977 ++#: toplev.c:3978 + msgid "options enabled: " + msgstr "" + +-#: toplev.c:4035 java/jcf-write.c:3424 ++#: toplev.c:4036 java/jcf-write.c:3424 + #, fuzzy, c-format + msgid "can't open %s for writing: %m" + msgstr "kan inte öppna fil %s för skrivning" + +-#: toplev.c:4118 config/sh/sh.c:7019 ++#: toplev.c:4119 config/sh/sh.c:7020 + msgid "created and used with different settings of -fpic" + msgstr "" + +-#: toplev.c:4120 config/sh/sh.c:7021 ++#: toplev.c:4121 config/sh/sh.c:7022 + msgid "created and used with different settings of -fpie" + msgstr "" + +-#: toplev.c:4171 config/sh/sh.c:7071 ++#: toplev.c:4172 config/sh/sh.c:7072 + #, c-format + msgid "created and used with differing settings of `-m%s'" + msgstr "" + +-#: toplev.c:4174 config/sh/sh.c:7074 ++#: toplev.c:4175 config/sh/sh.c:7075 + #, fuzzy + msgid "out of memory" + msgstr "inget minne" + +-#: toplev.c:4355 ++#: toplev.c:4356 + msgid "instruction scheduling not supported on this target machine" + msgstr "" + +-#: toplev.c:4359 ++#: toplev.c:4360 + msgid "this target machine does not have delayed branches" + msgstr "" + +-#: toplev.c:4373 ++#: toplev.c:4374 + #, c-format + msgid "-f%sleading-underscore not supported on this target machine" + msgstr "" + +-#: toplev.c:4422 ++#: toplev.c:4423 + #, fuzzy, c-format + msgid "target system does not support the \"%s\" debug format" + msgstr "ISO C89 stöder inte \\\"%%%c\\\" i %s formatsträng" + +-#: toplev.c:4439 ++#: toplev.c:4440 + #, fuzzy + msgid "-ffunction-sections not supported for this target" + msgstr "attributet \"section\" stöds inte för denna målarkitektur" + +-#: toplev.c:4444 ++#: toplev.c:4445 + #, fuzzy + msgid "-fdata-sections not supported for this target" + msgstr "-fdata-sections stöds inte för AIX" + +-#: toplev.c:4451 ++#: toplev.c:4452 + msgid "-ffunction-sections disabled; it makes profiling impossible" + msgstr "" + +-#: toplev.c:4458 ++#: toplev.c:4459 + #, fuzzy + msgid "-fprefetch-loop-arrays not supported for this target" + msgstr "attributet \"section\" stöds inte för denna målarkitektur" + +-#: toplev.c:4464 ++#: toplev.c:4465 + msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)" + msgstr "" + +-#: toplev.c:4473 ++#: toplev.c:4474 + #, fuzzy + msgid "-fprefetch-loop-arrays is not supported with -Os" + msgstr "profilering stöds inte tillsammans med -mg\n" + +-#: toplev.c:4479 ++#: toplev.c:4480 + msgid "-ffunction-sections may affect debugging on some targets" + msgstr "" + +-#: toplev.c:4581 ++#: toplev.c:4582 + #, fuzzy, c-format + msgid "error writing to %s: %m" + msgstr "fel vid skrivning till %s" + +-#: toplev.c:4583 java/jcf-parse.c:902 java/jcf-write.c:3431 ++#: toplev.c:4584 java/jcf-parse.c:902 java/jcf-write.c:3431 + #, fuzzy, c-format + msgid "error closing %s: %m" + msgstr "fel vid stängning av %s" +@@ -7250,7 +7261,7 @@ + msgid "%Jfunction '%F' can never be inlined because it uses variable sized variables" + msgstr "" + +-#: tree-inline.c:1338 tree-inline.c:1345 ++#: tree-inline.c:1338 tree-inline.c:1346 + #, fuzzy + msgid "%Jinlining failed in call to '%F': %s" + msgstr "inlining misslyckades i anrop av \"%s\"" +@@ -7265,34 +7276,34 @@ + msgid "%Jsize of return value of '%D' is larger than %wd bytes" + msgstr "storleken på returvärdet från \"%s\" är större än %d bytes" + +-#: tree.c:3801 ++#: tree.c:3800 + msgid "arrays of functions are not meaningful" + msgstr "" + +-#: tree.c:3856 ++#: tree.c:3855 + msgid "function return type cannot be function" + msgstr "" + +-#: tree.c:4685 ++#: tree.c:4684 + msgid "invalid initializer for bit string" + msgstr "" + +-#: tree.c:4737 ++#: tree.c:4736 + #, c-format + msgid "tree check: expected %s, have %s in %s, at %s:%d" + msgstr "" + +-#: tree.c:4750 ++#: tree.c:4749 + #, c-format + msgid "tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d" + msgstr "" + +-#: tree.c:4763 ++#: tree.c:4762 + #, c-format + msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d" + msgstr "" + +-#: tree.c:4775 ++#: tree.c:4774 + #, c-format + msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d" + msgstr "" +@@ -7350,51 +7361,51 @@ + msgid "%Jrequested alignment for '%D' is greater than implemented alignment of %d" + msgstr "efterrågad minnesjustering är inte en potens av 2" + +-#: varasm.c:3789 ++#: varasm.c:3790 + msgid "initializer for integer value is too complicated" + msgstr "" + +-#: varasm.c:3794 ++#: varasm.c:3795 + msgid "initializer for floating value is not a floating constant" + msgstr "" + +-#: varasm.c:3860 ++#: varasm.c:3861 + msgid "unknown set constructor type" + msgstr "" + +-#: varasm.c:4079 ++#: varasm.c:4080 + #, c-format + msgid "invalid initial value for member `%s'" + msgstr "" + +-#: varasm.c:4266 varasm.c:4310 ++#: varasm.c:4267 varasm.c:4311 + #, fuzzy + msgid "%Jweak declaration of '%D' must precede definition" + msgstr "omdeklaration av \"%s\"" + +-#: varasm.c:4274 ++#: varasm.c:4275 + msgid "%Jweak declaration of '%D' after first use results in unspecified behavior" + msgstr "" + +-#: varasm.c:4308 ++#: varasm.c:4309 + #, fuzzy + msgid "%Jweak declaration of '%D' must be public" + msgstr "omdeklaration av \"%s\"" + +-#: varasm.c:4317 ++#: varasm.c:4318 + #, fuzzy + msgid "%Jweak declaration of '%D' not supported" + msgstr "omdeklaration av \"%s\"" + +-#: varasm.c:4346 varasm.c:4436 ++#: varasm.c:4347 varasm.c:4437 + msgid "only weak aliases are supported in this configuration" + msgstr "" + +-#: varasm.c:4439 ++#: varasm.c:4440 + msgid "alias definitions not supported in this configuration; ignored" + msgstr "" + +-#: varasm.c:4468 ++#: varasm.c:4469 + #, fuzzy + msgid "visibility attribute not supported in this configuration; ignored" + msgstr "attributet \"section\" stöds inte för denna målarkitektur" +@@ -7625,7 +7636,7 @@ + msgid "junk at end of '#pragma unused'" + msgstr "skräp vid slutet av \"#pragma %s\"" + +-#: config/darwin.c:1347 ++#: config/darwin.c:1312 + msgid "internal and protected visibility attributes not supportedin this configuration; ignored" + msgstr "" + +@@ -7670,7 +7681,7 @@ + msgid "bad value `%s' for -mfp-trap-mode switch" + msgstr "" + +-#: config/alpha/alpha.c:324 config/rs6000/rs6000.c:1088 ++#: config/alpha/alpha.c:324 config/rs6000/rs6000.c:1117 + #, fuzzy, c-format + msgid "bad value `%s' for -mtls-size switch" + msgstr "ogiltigt värde (%s) till flagga -mcpu" +@@ -7710,90 +7721,90 @@ + msgid "bad value `%s' for -mmemory-latency" + msgstr "ogiltigt värde \"%s\" till -memory-latency" + +-#: config/alpha/alpha.c:5425 ++#: config/alpha/alpha.c:5436 + #, c-format + msgid "invalid %%H value" + msgstr "" + +-#: config/alpha/alpha.c:5446 ++#: config/alpha/alpha.c:5457 + #, fuzzy, c-format + msgid "invalid %%J value" + msgstr "ogiltigt värde %%B" + +-#: config/alpha/alpha.c:5462 config/ia64/ia64.c:4263 ++#: config/alpha/alpha.c:5473 config/ia64/ia64.c:4269 + #, c-format + msgid "invalid %%r value" + msgstr "ogiltigt %%r-värde" + +-#: config/alpha/alpha.c:5472 config/rs6000/rs6000.c:9241 ++#: config/alpha/alpha.c:5483 config/rs6000/rs6000.c:9332 + #: config/xtensa/xtensa.c:2014 + #, c-format + msgid "invalid %%R value" + msgstr "ogiltigt %%R-värde" + +-#: config/alpha/alpha.c:5478 config/rs6000/rs6000.c:9160 ++#: config/alpha/alpha.c:5489 config/rs6000/rs6000.c:9251 + #: config/xtensa/xtensa.c:1981 + #, c-format + msgid "invalid %%N value" + msgstr "ogiltigt %%N-värde" + +-#: config/alpha/alpha.c:5486 config/rs6000/rs6000.c:9188 ++#: config/alpha/alpha.c:5497 config/rs6000/rs6000.c:9279 + #, c-format + msgid "invalid %%P value" + msgstr "ogiltigt %%P-värde" + +-#: config/alpha/alpha.c:5494 ++#: config/alpha/alpha.c:5505 + #, c-format + msgid "invalid %%h value" + msgstr "ogiltigt %%h-värde" + +-#: config/alpha/alpha.c:5502 config/xtensa/xtensa.c:2007 ++#: config/alpha/alpha.c:5513 config/xtensa/xtensa.c:2007 + #, c-format + msgid "invalid %%L value" + msgstr "ogiltigt %%L-värde" + +-#: config/alpha/alpha.c:5541 config/rs6000/rs6000.c:9142 ++#: config/alpha/alpha.c:5552 config/rs6000/rs6000.c:9233 + #, c-format + msgid "invalid %%m value" + msgstr "ogiltigt %%m-värde" + +-#: config/alpha/alpha.c:5549 config/rs6000/rs6000.c:9150 ++#: config/alpha/alpha.c:5560 config/rs6000/rs6000.c:9241 + #, c-format + msgid "invalid %%M value" + msgstr "ogiltigt %%M-värde" + +-#: config/alpha/alpha.c:5593 ++#: config/alpha/alpha.c:5604 + #, c-format + msgid "invalid %%U value" + msgstr "ogiltigt %%U-värde" + +-#: config/alpha/alpha.c:5605 config/alpha/alpha.c:5619 +-#: config/rs6000/rs6000.c:9249 ++#: config/alpha/alpha.c:5616 config/alpha/alpha.c:5630 ++#: config/rs6000/rs6000.c:9340 + #, c-format + msgid "invalid %%s value" + msgstr "ogiltigt %%s-värde" + +-#: config/alpha/alpha.c:5642 ++#: config/alpha/alpha.c:5653 + #, c-format + msgid "invalid %%C value" + msgstr "ogiltigt %%C-värde" + +-#: config/alpha/alpha.c:5679 config/rs6000/rs6000.c:8979 +-#: config/rs6000/rs6000.c:8999 ++#: config/alpha/alpha.c:5690 config/rs6000/rs6000.c:9070 ++#: config/rs6000/rs6000.c:9090 + #, c-format + msgid "invalid %%E value" + msgstr "ogiltigt %%E-värde" + +-#: config/alpha/alpha.c:5704 config/alpha/alpha.c:5752 ++#: config/alpha/alpha.c:5715 config/alpha/alpha.c:5763 + msgid "unknown relocation unspec" + msgstr "" + +-#: config/alpha/alpha.c:5713 config/rs6000/rs6000.c:9562 ++#: config/alpha/alpha.c:5724 config/rs6000/rs6000.c:9653 + #, c-format + msgid "invalid %%xn code" + msgstr "" + +-#: config/alpha/alpha.c:6657 config/alpha/alpha.c:6660 config/s390/s390.c:6575 ++#: config/alpha/alpha.c:6668 config/alpha/alpha.c:6671 config/s390/s390.c:6575 + #: config/s390/s390.c:6578 + msgid "bad builtin fcode" + msgstr "" +@@ -7933,7 +7944,7 @@ + msgid "Tune expected memory latency" + msgstr "" + +-#: config/alpha/alpha.h:376 config/ia64/ia64.h:267 config/rs6000/sysv4.h:90 ++#: config/alpha/alpha.h:376 config/ia64/ia64.h:272 config/rs6000/sysv4.h:90 + msgid "Specify bit size of immediate TLS offsets" + msgstr "" + +@@ -7952,17 +7963,17 @@ + msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\"" + msgstr "" + +-#: config/arc/arc.c:1714 config/m32r/m32r.c:2352 ++#: config/arc/arc.c:1714 config/m32r/m32r.c:2349 + #, fuzzy, c-format + msgid "invalid operand to %%R code" + msgstr "ogiltig operand för %R" + +-#: config/arc/arc.c:1746 config/m32r/m32r.c:2375 ++#: config/arc/arc.c:1746 config/m32r/m32r.c:2372 + #, fuzzy, c-format + msgid "invalid operand to %%H/%%L code" + msgstr "ogiltig operand för %H/%L" + +-#: config/arc/arc.c:1769 config/m32r/m32r.c:2446 ++#: config/arc/arc.c:1769 config/m32r/m32r.c:2443 + #, fuzzy, c-format + msgid "invalid operand to %%U code" + msgstr "ogiltig operand för %U" +@@ -7973,7 +7984,7 @@ + msgstr "ogiltig operand för %V" + + #. Unknown flag. +-#: config/arc/arc.c:1787 config/m32r/m32r.c:2473 config/sparc/sparc.c:7010 ++#: config/arc/arc.c:1787 config/m32r/m32r.c:2470 config/sparc/sparc.c:7152 + msgid "invalid operand output code" + msgstr "" + +@@ -7982,7 +7993,7 @@ + msgid "switch -mcpu=%s conflicts with -march= switch" + msgstr "flagga -mcpu=%s står i konflikt med flagga -march=" + +-#: config/arm/arm.c:530 config/rs6000/rs6000.c:767 config/sparc/sparc.c:424 ++#: config/arm/arm.c:530 config/rs6000/rs6000.c:785 config/sparc/sparc.c:426 + #, c-format + msgid "bad value (%s) for %s switch" + msgstr "ogiltigt värde (%s) till flagga %s" +@@ -8067,13 +8078,13 @@ + msgid "unable to use '%s' for PIC register" + msgstr "" + +-#: config/arm/arm.c:2249 config/arm/arm.c:2267 config/avr/avr.c:4558 +-#: config/c4x/c4x.c:4447 config/h8300/h8300.c:4260 config/i386/i386.c:1592 +-#: config/i386/i386.c:1638 config/ip2k/ip2k.c:3169 ++#: config/arm/arm.c:2249 config/arm/arm.c:2267 config/avr/avr.c:4523 ++#: config/c4x/c4x.c:4447 config/h8300/h8300.c:4260 config/i386/i386.c:1598 ++#: config/i386/i386.c:1644 config/ip2k/ip2k.c:3169 + #: config/m68hc11/m68hc11.c:1311 config/m68k/m68k.c:345 + #: config/mcore/mcore.c:3375 config/ns32k/ns32k.c:1064 +-#: config/rs6000/rs6000.c:14866 config/sh/sh.c:6873 config/sh/sh.c:6894 +-#: config/sh/sh.c:6929 config/stormy16/stormy16.c:2073 config/v850/v850.c:2173 ++#: config/rs6000/rs6000.c:15070 config/sh/sh.c:6874 config/sh/sh.c:6895 ++#: config/sh/sh.c:6930 config/stormy16/stormy16.c:2073 config/v850/v850.c:2173 + #, fuzzy, c-format + msgid "`%s' attribute only applies to functions" + msgstr "attributet \"%s\" fungerar bara på funktioner" +@@ -8088,7 +8099,7 @@ + msgstr "" + + #. @@@ better error message +-#: config/arm/arm.c:11284 config/i386/i386.c:14317 config/i386/i386.c:14351 ++#: config/arm/arm.c:11284 config/i386/i386.c:14318 config/i386/i386.c:14352 + msgid "mask must be an immediate" + msgstr "" + +@@ -8226,62 +8237,62 @@ + msgid "Ignore dllimport attribute for functions" + msgstr "Ignorera attributet dllimport för funktioner" + +-#: config/avr/avr.c:514 ++#: config/avr/avr.c:511 + #, c-format + msgid "large frame pointer change (%d) with -mtiny-stack" + msgstr "" + +-#: config/avr/avr.c:1101 ++#: config/avr/avr.c:1098 + msgid "bad address, not (reg+disp):" + msgstr "" + +-#: config/avr/avr.c:1109 ++#: config/avr/avr.c:1106 + #, fuzzy + msgid "internal compiler error. Bad address:" + msgstr "Internt kompilatorfel i %s, vid %s:%d" + +-#: config/avr/avr.c:1122 ++#: config/avr/avr.c:1119 + #, fuzzy + msgid "internal compiler error. Unknown mode:" + msgstr "Internt kompilatorfel i %s, vid %s:%d" + +-#: config/avr/avr.c:1744 config/avr/avr.c:2405 ++#: config/avr/avr.c:1741 config/avr/avr.c:2402 + #, fuzzy + msgid "invalid insn:" + msgstr "ogiltig #line" + +-#: config/avr/avr.c:1778 config/avr/avr.c:1861 config/avr/avr.c:1910 +-#: config/avr/avr.c:1919 config/avr/avr.c:2014 config/avr/avr.c:2183 +-#: config/avr/avr.c:2439 config/avr/avr.c:2547 ++#: config/avr/avr.c:1775 config/avr/avr.c:1858 config/avr/avr.c:1907 ++#: config/avr/avr.c:1916 config/avr/avr.c:2011 config/avr/avr.c:2180 ++#: config/avr/avr.c:2436 config/avr/avr.c:2544 + msgid "incorrect insn:" + msgstr "" + +-#: config/avr/avr.c:1938 config/avr/avr.c:2099 config/avr/avr.c:2254 +-#: config/avr/avr.c:2591 ++#: config/avr/avr.c:1935 config/avr/avr.c:2096 config/avr/avr.c:2251 ++#: config/avr/avr.c:2588 + #, fuzzy + msgid "unknown move insn:" + msgstr "okänt registernamn: %s" + +-#: config/avr/avr.c:2814 ++#: config/avr/avr.c:2811 + msgid "bad shift insn:" + msgstr "" + +-#: config/avr/avr.c:2927 config/avr/avr.c:3348 config/avr/avr.c:3719 ++#: config/avr/avr.c:2924 config/avr/avr.c:3345 config/avr/avr.c:3716 + #, fuzzy + msgid "internal compiler error. Incorrect shift:" + msgstr "Internt kompilatorfel i %s, vid %s:%d" + +-#: config/avr/avr.c:4532 config/ip2k/ip2k.c:3144 ++#: config/avr/avr.c:4497 config/ip2k/ip2k.c:3144 + #, fuzzy + msgid "only initialized variables can be placed into program memory area" + msgstr "Initiera bara variabler som kan placeras i 8-bits området." + +-#: config/avr/avr.c:4626 ++#: config/avr/avr.c:4591 + #, fuzzy + msgid "only uninitialized variables can be placed in the .noinit section" + msgstr "Initiera bara variabler som kan placeras i 8-bits området." + +-#: config/avr/avr.c:4640 ++#: config/avr/avr.c:4605 + #, fuzzy, c-format + msgid "MCU `%s' supported for assembler only" + msgstr "MCU \"%s\" stöds inte" +@@ -9515,7 +9526,7 @@ + msgid "code model %s not supported in PIC mode" + msgstr "" + +-#: config/i386/i386.c:1189 config/sparc/sparc.c:387 ++#: config/i386/i386.c:1189 config/sparc/sparc.c:389 + #, c-format + msgid "bad value (%s) for -mcmodel= switch" + msgstr "" +@@ -9550,145 +9561,145 @@ + msgid "bad value (%s) for -march= switch" + msgstr "" + +-#: config/i386/i386.c:1260 ++#: config/i386/i386.c:1266 + #, fuzzy, c-format + msgid "bad value (%s) for -mtune= switch" + msgstr "ogiltigt värde (%s) till flagga -mcpu" + +-#: config/i386/i386.c:1277 ++#: config/i386/i386.c:1283 + #, c-format + msgid "-mregparm=%d is not between 0 and %d" + msgstr "" + +-#: config/i386/i386.c:1290 ++#: config/i386/i386.c:1296 + msgid "-malign-loops is obsolete, use -falign-loops" + msgstr "" + +-#: config/i386/i386.c:1295 config/i386/i386.c:1308 config/i386/i386.c:1321 ++#: config/i386/i386.c:1301 config/i386/i386.c:1314 config/i386/i386.c:1327 + #, c-format + msgid "-malign-loops=%d is not between 0 and %d" + msgstr "" + +-#: config/i386/i386.c:1303 ++#: config/i386/i386.c:1309 + msgid "-malign-jumps is obsolete, use -falign-jumps" + msgstr "" + +-#: config/i386/i386.c:1316 ++#: config/i386/i386.c:1322 + msgid "-malign-functions is obsolete, use -falign-functions" + msgstr "" + +-#: config/i386/i386.c:1354 ++#: config/i386/i386.c:1360 + #, c-format + msgid "-mpreferred-stack-boundary=%d is not between %d and 12" + msgstr "" + +-#: config/i386/i386.c:1366 ++#: config/i386/i386.c:1372 + #, c-format + msgid "-mbranch-cost=%d is not between 0 and 5" + msgstr "" + +-#: config/i386/i386.c:1378 ++#: config/i386/i386.c:1384 + #, fuzzy, c-format + msgid "bad value (%s) for -mtls-dialect= switch" + msgstr "ogiltigt värde (%s) till flagga -mcpu" + +-#: config/i386/i386.c:1407 ++#: config/i386/i386.c:1413 + msgid "-malign-double makes no sense in the 64bit mode" + msgstr "" + +-#: config/i386/i386.c:1409 ++#: config/i386/i386.c:1415 + msgid "-mrtd calling convention not supported in the 64bit mode" + msgstr "" + +-#: config/i386/i386.c:1431 config/i386/i386.c:1442 ++#: config/i386/i386.c:1437 config/i386/i386.c:1448 + #, fuzzy + msgid "SSE instruction set disabled, using 387 arithmetics" + msgstr "pekare till funktion använd med aritmetik" + +-#: config/i386/i386.c:1447 ++#: config/i386/i386.c:1453 + #, fuzzy + msgid "387 instruction set disabled, using SSE arithmetics" + msgstr "pekare till funktion använd med aritmetik" + +-#: config/i386/i386.c:1454 ++#: config/i386/i386.c:1460 + #, fuzzy, c-format + msgid "bad value (%s) for -mfpmath= switch" + msgstr "ogiltigt värde (%s) till flagga -mcpu" + +-#: config/i386/i386.c:1602 config/i386/i386.c:1613 ++#: config/i386/i386.c:1608 config/i386/i386.c:1619 + #, fuzzy + msgid "fastcall and stdcall attributes are not compatible" + msgstr "shared och mdll är inkompatibla" + +-#: config/i386/i386.c:1606 config/i386/i386.c:1662 ++#: config/i386/i386.c:1612 config/i386/i386.c:1668 + #, fuzzy + msgid "fastcall and regparm attributes are not compatible" + msgstr "shared och mdll är inkompatibla" + +-#: config/i386/i386.c:1649 ++#: config/i386/i386.c:1655 + #, fuzzy, c-format + msgid "`%s' attribute requires an integer constant argument" + msgstr "tre \"l\"-suffix på heltalskonstant" + +-#: config/i386/i386.c:1655 ++#: config/i386/i386.c:1661 + #, fuzzy, c-format + msgid "argument to `%s' attribute larger than %d" + msgstr "kan inte sätta attributet \"%s\" efter definitionen" + +-#: config/i386/i386.c:2621 ++#: config/i386/i386.c:2627 + msgid "SSE vector argument without SSE enabled changes the ABI" + msgstr "" + +-#: config/i386/i386.c:2637 ++#: config/i386/i386.c:2643 + msgid "MMX vector argument without MMX enabled changes the ABI" + msgstr "" + +-#: config/i386/i386.c:2865 ++#: config/i386/i386.c:2871 + msgid "SSE vector return without SSE enabled changes the ABI" + msgstr "" + +-#: config/i386/i386.c:6840 ++#: config/i386/i386.c:6841 + msgid "invalid UNSPEC as operand" + msgstr "" + +-#: config/i386/i386.c:7098 ++#: config/i386/i386.c:7099 + msgid "extended registers have no high halves" + msgstr "" + +-#: config/i386/i386.c:7113 ++#: config/i386/i386.c:7114 + msgid "unsupported operand size for extended register" + msgstr "" + +-#: config/i386/i386.c:7428 ++#: config/i386/i386.c:7429 + msgid "operand is neither a constant nor a condition code, invalid operand code 'c'" + msgstr "" + +-#: config/i386/i386.c:7474 ++#: config/i386/i386.c:7475 + #, fuzzy, c-format + msgid "invalid operand code `%c'" + msgstr "ogiltig operand för %V" + +-#: config/i386/i386.c:7517 ++#: config/i386/i386.c:7518 + #, fuzzy + msgid "invalid constraints for operand" + msgstr "ogiltig %%-kod" + +-#: config/i386/i386.c:12031 ++#: config/i386/i386.c:12032 + #, fuzzy + msgid "unknown insn mode" + msgstr "okänt maskinläge `%s'" + +-#: config/i386/i386.c:14119 config/i386/i386.c:14155 ++#: config/i386/i386.c:14120 config/i386/i386.c:14156 + #, c-format + msgid "selector must be an integer constant in the range 0..%i" + msgstr "" + +-#: config/i386/i386.c:14383 ++#: config/i386/i386.c:14384 + #, fuzzy + msgid "shift must be an immediate" + msgstr "predikat måste vara en identifierare" + +-#: config/i386/i386.c:15406 ++#: config/i386/i386.c:15407 + #, fuzzy, c-format + msgid "`%s' incompatible attribute ignored" + msgstr "attributet `%s' ignorerat" +@@ -9996,7 +10007,7 @@ + #. variable, type `char *', is set to the variable part of the given + #. option if the fixed part matches. The actual option name is made + #. by appending `-m' to the specified name. +-#: config/i386/i386.h:461 config/ia64/ia64.h:269 config/rs6000/rs6000.h:449 ++#: config/i386/i386.h:461 config/ia64/ia64.h:274 config/rs6000/rs6000.h:449 + #: config/s390/s390.h:146 config/sparc/sparc.h:656 + msgid "Schedule code for given CPU" + msgstr "Schemalägg kod för en given CPU" +@@ -10118,7 +10129,7 @@ + msgid "iC2.0 and iC3.0 are incompatible - using iC3.0" + msgstr "iC2.0 och iC3.0 är imkompatible - använder iC3.0" + +-#: config/i960/i960.c:1456 config/m68k/m68k.c:600 config/rs6000/rs6000.c:11597 ++#: config/i960/i960.c:1456 config/m68k/m68k.c:600 config/rs6000/rs6000.c:11690 + msgid "stack limit expression is not supported" + msgstr "" + +@@ -10278,41 +10289,41 @@ + msgid "%Jaddress area attribute cannot be specified for functions" + msgstr "attributet \"section\" kan inte anges för lokala variabler" + +-#: config/ia64/ia64.c:4308 ++#: config/ia64/ia64.c:4314 + msgid "ia64_print_operand: unknown code" + msgstr "" + +-#: config/ia64/ia64.c:4648 ++#: config/ia64/ia64.c:4654 + msgid "value of -mfixed-range must have form REG1-REG2" + msgstr "" + +-#: config/ia64/ia64.c:4675 ++#: config/ia64/ia64.c:4681 + #, c-format + msgid "%s-%s is an empty range" + msgstr "%s-%s är ett tomt intervall" + +-#: config/ia64/ia64.c:4723 ++#: config/ia64/ia64.c:4729 + msgid "cannot optimize floating point division for both latency and throughput" + msgstr "" + +-#: config/ia64/ia64.c:4729 ++#: config/ia64/ia64.c:4735 + msgid "cannot optimize integer division for both latency and throughput" + msgstr "" + +-#: config/ia64/ia64.c:4735 ++#: config/ia64/ia64.c:4741 + msgid "cannot optimize square root for both latency and throughput" + msgstr "" + +-#: config/ia64/ia64.c:4741 ++#: config/ia64/ia64.c:4747 + msgid "not yet implemented: latency-optimized inline square root" + msgstr "" + +-#: config/ia64/ia64.c:4753 ++#: config/ia64/ia64.c:4759 + #, fuzzy, c-format + msgid "bad value (%s) for -mtls-size= switch" + msgstr "ogiltigt värde (%s) till flagga -mcpu" + +-#: config/ia64/ia64.c:4769 ++#: config/ia64/ia64.c:4775 + #, fuzzy, c-format + msgid "bad value (%s) for -tune= switch" + msgstr "ogiltigt värde (%s) till flagga -mcpu" +@@ -10320,107 +10331,107 @@ + #. This macro defines names of command options to set and clear bits in + #. `target_flags'. Its definition is an initializer with a subgrouping for + #. each command option. +-#: config/ia64/ia64.h:172 ++#: config/ia64/ia64.h:177 + msgid "Generate big endian code" + msgstr "Generera \"big endian\"-kod." + +-#: config/ia64/ia64.h:174 config/mcore/mcore.h:154 ++#: config/ia64/ia64.h:179 config/mcore/mcore.h:154 + msgid "Generate little endian code" + msgstr "Generera \"little endian\"-kod." + +-#: config/ia64/ia64.h:176 ++#: config/ia64/ia64.h:181 + msgid "Generate code for GNU as" + msgstr "Generera kod för GNU as" + +-#: config/ia64/ia64.h:178 ++#: config/ia64/ia64.h:183 + msgid "Generate code for Intel as" + msgstr "Generera kod för Intel as" + +-#: config/ia64/ia64.h:180 ++#: config/ia64/ia64.h:185 + msgid "Generate code for GNU ld" + msgstr "Generera kod för GNU ld" + +-#: config/ia64/ia64.h:182 ++#: config/ia64/ia64.h:187 + msgid "Generate code for Intel ld" + msgstr "Generera kod för Intel ld" + +-#: config/ia64/ia64.h:184 ++#: config/ia64/ia64.h:189 + msgid "Generate code without GP reg" + msgstr "" + +-#: config/ia64/ia64.h:186 ++#: config/ia64/ia64.h:191 + msgid "Emit stop bits before and after volatile extended asms" + msgstr "" + +-#: config/ia64/ia64.h:188 ++#: config/ia64/ia64.h:193 + msgid "Don't emit stop bits before and after volatile extended asms" + msgstr "" + +-#: config/ia64/ia64.h:190 ++#: config/ia64/ia64.h:195 + msgid "Emit code for Itanium (TM) processor B step" + msgstr "" + +-#: config/ia64/ia64.h:192 ++#: config/ia64/ia64.h:197 + msgid "Use in/loc/out register names" + msgstr "" + +-#: config/ia64/ia64.h:194 ++#: config/ia64/ia64.h:199 + msgid "Disable use of sdata/scommon/sbss" + msgstr "" + +-#: config/ia64/ia64.h:196 ++#: config/ia64/ia64.h:201 + msgid "Enable use of sdata/scommon/sbss" + msgstr "" + +-#: config/ia64/ia64.h:198 ++#: config/ia64/ia64.h:203 + msgid "gp is constant (but save/restore gp on indirect calls)" + msgstr "" + +-#: config/ia64/ia64.h:200 ++#: config/ia64/ia64.h:205 + msgid "Generate self-relocatable code" + msgstr "" + +-#: config/ia64/ia64.h:202 ++#: config/ia64/ia64.h:207 + msgid "Generate inline floating point division, optimize for latency" + msgstr "" + +-#: config/ia64/ia64.h:204 ++#: config/ia64/ia64.h:209 + msgid "Generate inline floating point division, optimize for throughput" + msgstr "" + +-#: config/ia64/ia64.h:206 ++#: config/ia64/ia64.h:211 + msgid "Generate inline integer division, optimize for latency" + msgstr "" + +-#: config/ia64/ia64.h:208 ++#: config/ia64/ia64.h:213 + msgid "Generate inline integer division, optimize for throughput" + msgstr "" + +-#: config/ia64/ia64.h:210 ++#: config/ia64/ia64.h:215 + msgid "Generate inline square root, optimize for latency" + msgstr "" + +-#: config/ia64/ia64.h:212 ++#: config/ia64/ia64.h:217 + msgid "Generate inline square root, optimize for throughput" + msgstr "" + +-#: config/ia64/ia64.h:214 ++#: config/ia64/ia64.h:219 + msgid "Enable Dwarf 2 line debug info via GNU as" + msgstr "" + +-#: config/ia64/ia64.h:216 ++#: config/ia64/ia64.h:221 + msgid "Disable Dwarf 2 line debug info via GNU as" + msgstr "" + +-#: config/ia64/ia64.h:218 ++#: config/ia64/ia64.h:223 + msgid "Enable earlier placing stop bits for better scheduling" + msgstr "" + +-#: config/ia64/ia64.h:220 ++#: config/ia64/ia64.h:225 + msgid "Disable earlier placing stop bits" + msgstr "" + +-#: config/ia64/ia64.h:265 ++#: config/ia64/ia64.h:270 + msgid "Specify range of registers to make fixed" + msgstr "" + +@@ -10458,7 +10469,7 @@ + msgid "PRINT_OPERAND: Unknown punctuation '%c'" + msgstr "" + +-#: config/iq2000/iq2000.c:3478 config/mips/mips.c:5464 ++#: config/iq2000/iq2000.c:3478 config/mips/mips.c:5463 + #: config/xtensa/xtensa.c:1950 + msgid "PRINT_OPERAND null pointer" + msgstr "" +@@ -10468,12 +10479,12 @@ + msgid "invalid %%P operand" + msgstr "ogiltigt %%P-värde" + +-#: config/iq2000/iq2000.c:3555 config/rs6000/rs6000.c:9178 ++#: config/iq2000/iq2000.c:3555 config/rs6000/rs6000.c:9269 + #, c-format + msgid "invalid %%p value" + msgstr "" + +-#: config/iq2000/iq2000.c:3619 config/mips/mips.c:5594 ++#: config/iq2000/iq2000.c:3619 config/mips/mips.c:5593 + #, c-format + msgid "invalid use of %%d, %%x, or %%X" + msgstr "ogiltig användning av %%d, %%x eller %%x" +@@ -10529,48 +10540,48 @@ + msgid "bad value (%s) for -flush-trap=n (0= found without a %%< in assembler pattern" + msgstr "" + +-#: config/mips/mips.c:5441 ++#: config/mips/mips.c:5440 + #, c-format + msgid "internal error: %%} found without a %%{ in assembler pattern" + msgstr "" + +-#: config/mips/mips.c:5455 ++#: config/mips/mips.c:5454 + #, c-format + msgid "PRINT_OPERAND: unknown punctuation '%c'" + msgstr "" + +-#: config/mips/mips.c:5484 ++#: config/mips/mips.c:5483 + #, fuzzy, c-format + msgid "PRINT_OPERAND, invalid insn for %%C" + msgstr "PRINT_OPERAND_ADDRESS, null-pekare" + +-#: config/mips/mips.c:5501 ++#: config/mips/mips.c:5500 + #, fuzzy, c-format + msgid "PRINT_OPERAND, invalid insn for %%N" + msgstr "PRINT_OPERAND_ADDRESS, null-pekare" + +-#: config/mips/mips.c:5510 ++#: config/mips/mips.c:5509 + #, fuzzy, c-format + msgid "PRINT_OPERAND, invalid insn for %%F" + msgstr "PRINT_OPERAND_ADDRESS, null-pekare" + +-#: config/mips/mips.c:5519 ++#: config/mips/mips.c:5518 + #, fuzzy, c-format + msgid "PRINT_OPERAND, invalid insn for %%W" + msgstr "PRINT_OPERAND_ADDRESS, null-pekare" + +-#: config/mips/mips.c:5625 ++#: config/mips/mips.c:5624 + msgid "PRINT_OPERAND, invalid operand for relocation" + msgstr "" + +-#: config/mips/mips.c:8310 ++#: config/mips/mips.c:8324 + #, c-format + msgid "can not handle inconsistent calls to `%s'" + msgstr "" + +-#: config/mips/mips.c:9316 ++#: config/mips/mips.c:9333 + msgid "the cpu name must be lower case" + msgstr "" + +-#: config/mips/mips.c:9338 ++#: config/mips/mips.c:9355 + #, fuzzy, c-format + msgid "bad value (%s) for %s" + msgstr "ogiltigt värde (%s) till flagga %s" + + # fixme: spola tillbaka är inte perfekt +-#: config/mips/mips.c:9607 ++#: config/mips/mips.c:9624 + #, fuzzy, c-format + msgid "can't rewind temp file: %m" + msgstr "kan inte spola tillbaka %s" + +-#: config/mips/mips.c:9611 ++#: config/mips/mips.c:9628 + #, fuzzy, c-format + msgid "can't write to output file: %m" + msgstr "kan inte skriva till %s" + +-#: config/mips/mips.c:9614 ++#: config/mips/mips.c:9631 + #, fuzzy, c-format + msgid "can't read from temp file: %m" + msgstr "kan inte läsa från %s" + +-#: config/mips/mips.c:9617 ++#: config/mips/mips.c:9634 + #, fuzzy, c-format + msgid "can't close temp file: %m" + msgstr "kan inte stänga %s" +@@ -11390,7 +11401,7 @@ + + #. Output assembler code to FILE to increment profiler label # LABELNO + #. for profiling a function entry. +-#: config/mips/mips.h:2418 ++#: config/mips/mips.h:2430 + msgid "mips16 function profiling" + msgstr "" + +@@ -11967,175 +11978,184 @@ + msgid "junk at end of #pragma longcall" + msgstr "skräp vid slutet av #pragma weak" + +-#: config/rs6000/rs6000.c:791 ++#: config/rs6000/rs6000.c:809 + msgid "-mmultiple is not supported on little endian systems" + msgstr "-mmultiple stöds inte på \"little endian\"-system" + +-#: config/rs6000/rs6000.c:798 ++#: config/rs6000/rs6000.c:816 + msgid "-mstring is not supported on little endian systems" + msgstr "-mstring stöds inte på \"little endian\"-system" + +-#: config/rs6000/rs6000.c:812 ++#: config/rs6000/rs6000.c:830 + #, fuzzy, c-format + msgid "unknown -mdebug-%s switch" + msgstr "Okänd flagga -mdebug-%s" + +-#: config/rs6000/rs6000.c:824 ++#: config/rs6000/rs6000.c:842 + #, c-format + msgid "unknown -mtraceback arg `%s'; expecting `full', `partial' or `none'" + msgstr "" + +-#: config/rs6000/rs6000.c:835 ++#: config/rs6000/rs6000.c:853 + #, c-format + msgid "Unknown switch -mlong-double-%s" + msgstr "" + +-#: config/rs6000/rs6000.c:876 ++#: config/rs6000/rs6000.c:894 + msgid "AltiVec and E500 instructions cannot coexist" + msgstr "" + +-#: config/rs6000/rs6000.c:1029 ++#: config/rs6000/rs6000.c:1058 + #, fuzzy, c-format + msgid "unknown -m%s= option specified: '%s'" + msgstr "okänt maskinläge `%s'" + +-#: config/rs6000/rs6000.c:1050 ++#: config/rs6000/rs6000.c:1079 + #, c-format + msgid "not configured for ABI: '%s'" + msgstr "" + +-#: config/rs6000/rs6000.c:1056 ++#: config/rs6000/rs6000.c:1085 + #, fuzzy, c-format + msgid "unknown ABI specified: '%s'" + msgstr "okänt maskinläge `%s'" + +-#: config/rs6000/rs6000.c:1070 ++#: config/rs6000/rs6000.c:1099 + #, fuzzy, c-format + msgid "unknown -malign-XXXXX option specified: '%s'" + msgstr "okänt maskinläge `%s'" + +-#: config/rs6000/rs6000.c:3972 ++#: config/rs6000/rs6000.c:4001 + msgid "Cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them." + msgstr "" + +-#: config/rs6000/rs6000.c:4095 ++#: config/rs6000/rs6000.c:4124 + msgid "Cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them." + msgstr "" + +-#: config/rs6000/rs6000.c:5599 ++#: config/rs6000/rs6000.c:5604 + #, fuzzy + msgid "argument 1 must be a 5-bit signed literal" + msgstr "första argumentet till \"%s\" skall vara \"int\"" + +-#: config/rs6000/rs6000.c:5701 config/rs6000/rs6000.c:6357 ++#: config/rs6000/rs6000.c:5707 config/rs6000/rs6000.c:6374 + #, fuzzy + msgid "argument 2 must be a 5-bit unsigned literal" + msgstr "första argumentet till \"%s\" skall vara \"int\"" + +-#: config/rs6000/rs6000.c:5741 ++#: config/rs6000/rs6000.c:5747 + #, fuzzy + msgid "argument 1 of __builtin_altivec_predicate must be a constant" + msgstr "argumentet till \"__builtin_eh_return_regno\" måste vara konstant" + +-#: config/rs6000/rs6000.c:5795 ++#: config/rs6000/rs6000.c:5801 + #, fuzzy + msgid "argument 1 of __builtin_altivec_predicate is out of range" + msgstr "argument till \"__builtin_args_info\" är utanför sitt intervall" + +-#: config/rs6000/rs6000.c:5956 ++#: config/rs6000/rs6000.c:5962 + #, fuzzy + msgid "argument 3 must be a 4-bit unsigned literal" + msgstr "första argumentet till \"%s\" skall vara \"int\"" + +-#: config/rs6000/rs6000.c:6126 ++#: config/rs6000/rs6000.c:6134 + #, fuzzy, c-format + msgid "argument to `%s' must be a 2-bit unsigned literal" + msgstr "första argumentet till \"%s\" skall vara \"int\"" + +-#: config/rs6000/rs6000.c:6239 ++#: config/rs6000/rs6000.c:6247 + #, fuzzy + msgid "argument to dss must be a 2-bit unsigned literal" + msgstr "första argumentet till \"%s\" skall vara \"int\"" + +-#: config/rs6000/rs6000.c:6477 ++#: config/rs6000/rs6000.c:6261 ++#, c-format ++msgid "invalid parameter combination for `%s' AltiVec intrinsic" ++msgstr "" ++ ++#: config/rs6000/rs6000.c:6494 + #, fuzzy + msgid "argument 1 of __builtin_spe_predicate must be a constant" + msgstr "argumentet till \"__builtin_eh_return_regno\" måste vara konstant" + +-#: config/rs6000/rs6000.c:6550 ++#: config/rs6000/rs6000.c:6567 + #, fuzzy + msgid "argument 1 of __builtin_spe_predicate is out of range" + msgstr "argument till \"__builtin_args_info\" är utanför sitt intervall" + +-#: config/rs6000/rs6000.c:9008 ++#: config/rs6000/rs6000.c:9099 + #, c-format + msgid "invalid %%f value" + msgstr "" + +-#: config/rs6000/rs6000.c:9017 ++#: config/rs6000/rs6000.c:9108 + #, c-format + msgid "invalid %%F value" + msgstr "" + +-#: config/rs6000/rs6000.c:9026 ++#: config/rs6000/rs6000.c:9117 + #, c-format + msgid "invalid %%G value" + msgstr "" + +-#: config/rs6000/rs6000.c:9061 ++#: config/rs6000/rs6000.c:9152 + #, c-format + msgid "invalid %%j code" + msgstr "" + +-#: config/rs6000/rs6000.c:9071 ++#: config/rs6000/rs6000.c:9162 + #, c-format + msgid "invalid %%J code" + msgstr "" + +-#: config/rs6000/rs6000.c:9081 ++#: config/rs6000/rs6000.c:9172 + #, c-format + msgid "invalid %%k value" + msgstr "" + +-#: config/rs6000/rs6000.c:9101 config/xtensa/xtensa.c:2000 ++#: config/rs6000/rs6000.c:9192 config/xtensa/xtensa.c:2000 + #, c-format + msgid "invalid %%K value" + msgstr "" + +-#: config/rs6000/rs6000.c:9168 ++#: config/rs6000/rs6000.c:9259 + #, c-format + msgid "invalid %%O value" + msgstr "ogiltigt %%O-värde" + +-#: config/rs6000/rs6000.c:9215 ++#: config/rs6000/rs6000.c:9306 + #, c-format + msgid "invalid %%q value" + msgstr "" + +-#: config/rs6000/rs6000.c:9259 ++#: config/rs6000/rs6000.c:9350 + #, c-format + msgid "invalid %%S value" + msgstr "" + +-#: config/rs6000/rs6000.c:9301 ++#: config/rs6000/rs6000.c:9392 + #, c-format + msgid "invalid %%T value" + msgstr "" + +-#: config/rs6000/rs6000.c:9311 ++#: config/rs6000/rs6000.c:9402 + #, c-format + msgid "invalid %%u value" + msgstr "" + +-#: config/rs6000/rs6000.c:9320 config/xtensa/xtensa.c:1970 ++#: config/rs6000/rs6000.c:9411 config/xtensa/xtensa.c:1970 + #, c-format + msgid "invalid %%v value" + msgstr "" + +-#: config/rs6000/rs6000.c:13815 ++#: config/rs6000/rs6000.c:13913 + msgid "no profiling of 64-bit code for this ABI" + msgstr "" + ++#: config/rs6000/rs6000.c:14986 ++msgid "use of 'long' in AltiVec types is deprecated; use 'int'" ++msgstr "" ++ + #: config/rs6000/aix.h:184 config/rs6000/beos.h:32 + msgid "Always pass floating-point arguments in memory" + msgstr "" +@@ -12391,18 +12411,22 @@ + msgstr "" + + #: config/rs6000/rs6000.h:468 ++msgid "Warn about deprecated 'vector long ...' AltiVec type usage" ++msgstr "" ++ ++#: config/rs6000/rs6000.h:471 + msgid "Determine which dependences between insns are considered costly" + msgstr "" + +-#: config/rs6000/rs6000.h:470 ++#: config/rs6000/rs6000.h:473 + msgid "Specify which post scheduling nop insertion scheme to apply" + msgstr "" + +-#: config/rs6000/rs6000.h:472 ++#: config/rs6000/rs6000.h:475 + msgid "Specify alignment of structure fields default/natural" + msgstr "" + +-#: config/rs6000/rs6000.h:474 ++#: config/rs6000/rs6000.h:477 + msgid "Specify scheduling priority for dispatch slot restricted insns" + msgstr "" + +@@ -12418,7 +12442,7 @@ + #. Number of bytes into the frame return addresses can be found. See + #. rs6000_stack_info in rs6000.c for more information on how the different + #. abi's store the return address. +-#: config/rs6000/rs6000.h:1923 ++#: config/rs6000/rs6000.h:1932 + msgid "RETURN_ADDRESS_OFFSET not supported" + msgstr "" + +@@ -12704,29 +12728,29 @@ + msgid "enable fused multiply/add instructions" + msgstr "Använd inte bitfältsinstruktioner" + +-#: config/sh/sh.c:5977 ++#: config/sh/sh.c:5978 + #, fuzzy + msgid "__builtin_saveregs not supported by this subtarget" + msgstr "__builtin_saveregs stöds inte på denna målarkitektur" + +-#: config/sh/sh.c:6879 ++#: config/sh/sh.c:6880 + msgid "attribute interrupt_handler is not compatible with -m5-compact" + msgstr "" + + #. The sp_switch attribute only has meaning for interrupt functions. +-#: config/sh/sh.c:6901 config/sh/sh.c:6936 ++#: config/sh/sh.c:6902 config/sh/sh.c:6937 + #, fuzzy, c-format + msgid "`%s' attribute only applies to interrupt functions" + msgstr "attributet \"%s\" fungerar bara på funktioner" + + #. The argument must be a constant string. +-#: config/sh/sh.c:6908 ++#: config/sh/sh.c:6909 + #, fuzzy, c-format + msgid "`%s' attribute argument not a string constant" + msgstr "%s före strängkonstant" + + #. The argument must be a constant integer. +-#: config/sh/sh.c:6943 ++#: config/sh/sh.c:6944 + #, fuzzy, c-format + msgid "`%s' attribute argument not an integer constant" + msgstr "case-etikett reducerar inte till en heltalskonstant" +@@ -12739,69 +12763,69 @@ + msgid "Profiling is not supported on this target." + msgstr "__builtin_saveregs stöds inte på denna målarkitektur" + +-#: config/sparc/sparc.c:360 ++#: config/sparc/sparc.c:362 + #, c-format + msgid "%s is not supported by this configuration" + msgstr "" + +-#: config/sparc/sparc.c:367 ++#: config/sparc/sparc.c:369 + msgid "-mlong-double-64 not allowed with -m64" + msgstr "" + +-#: config/sparc/sparc.c:392 ++#: config/sparc/sparc.c:394 + msgid "-mcmodel= is not supported on 32 bit systems" + msgstr "" + +-#: config/sparc/sparc.c:6818 config/sparc/sparc.c:6824 ++#: config/sparc/sparc.c:6960 config/sparc/sparc.c:6966 + #, fuzzy, c-format + msgid "invalid %%Y operand" + msgstr "ogiltig %%-kod" + +-#: config/sparc/sparc.c:6894 ++#: config/sparc/sparc.c:7036 + #, fuzzy, c-format + msgid "invalid %%A operand" + msgstr "ogiltig %%-kod" + +-#: config/sparc/sparc.c:6904 ++#: config/sparc/sparc.c:7046 + #, fuzzy, c-format + msgid "invalid %%B operand" + msgstr "ogiltigt värde %%B" + +-#: config/sparc/sparc.c:6943 ++#: config/sparc/sparc.c:7085 + #, fuzzy, c-format + msgid "invalid %%c operand" + msgstr "ogiltig %%-kod" + +-#: config/sparc/sparc.c:6944 ++#: config/sparc/sparc.c:7086 + #, fuzzy, c-format + msgid "invalid %%C operand" + msgstr "ogiltigt %%C-värde" + +-#: config/sparc/sparc.c:6965 ++#: config/sparc/sparc.c:7107 + #, fuzzy, c-format + msgid "invalid %%d operand" + msgstr "ogiltig %%-kod" + +-#: config/sparc/sparc.c:6966 ++#: config/sparc/sparc.c:7108 + #, fuzzy, c-format + msgid "invalid %%D operand" + msgstr "ogiltig %%-kod" + +-#: config/sparc/sparc.c:6982 ++#: config/sparc/sparc.c:7124 + #, fuzzy, c-format + msgid "invalid %%f operand" + msgstr "ogiltig %%-kod" + +-#: config/sparc/sparc.c:6996 ++#: config/sparc/sparc.c:7138 + #, fuzzy, c-format + msgid "invalid %%s operand" + msgstr "ogiltig %%-kod" + +-#: config/sparc/sparc.c:7050 ++#: config/sparc/sparc.c:7192 + msgid "long long constant not a valid immediate operand" + msgstr "" + +-#: config/sparc/sparc.c:7053 ++#: config/sparc/sparc.c:7195 + msgid "floating point constant not a valid immediate operand" + msgstr "" + +@@ -13302,279 +13326,279 @@ + msgid "`-gnat' misspelled as `-gant'" + msgstr "" + +-#: cp/call.c:217 ++#: cp/call.c:219 + msgid "unable to call pointer to member function here" + msgstr "" + +-#: cp/call.c:2228 ++#: cp/call.c:2238 + msgid "%s %D(%T, %T, %T) " + msgstr "" + +-#: cp/call.c:2233 ++#: cp/call.c:2243 + msgid "%s %D(%T, %T) " + msgstr "" + +-#: cp/call.c:2237 ++#: cp/call.c:2247 + #, fuzzy + msgid "%s %D(%T) " + msgstr "" + +-#: cp/call.c:2241 ++#: cp/call.c:2251 + msgid "%s %T " + msgstr "" + +-#: cp/call.c:2243 ++#: cp/call.c:2253 + msgid "%J%s %+#D " + msgstr "" + +-#: cp/call.c:2245 ++#: cp/call.c:2255 + #, fuzzy + msgid "%J%s %+#D" + msgstr "%s: %s" + +-#: cp/call.c:2280 ++#: cp/call.c:2290 + msgid "candidates are:" + msgstr "" + +-#: cp/call.c:2468 ++#: cp/call.c:2478 + #, fuzzy + msgid "conversion from `%T' to `%T' is ambiguous" + msgstr "%s: flaggan \"%s\" är tvetydig\n" + +-#: cp/call.c:2619 cp/call.c:2663 ++#: cp/call.c:2629 cp/call.c:2673 + msgid "no matching function for call to `%D(%A)'" + msgstr "" + +-#: cp/call.c:2622 cp/call.c:2666 ++#: cp/call.c:2632 cp/call.c:2676 + msgid "call of overloaded `%D(%A)' is ambiguous" + msgstr "" + + #. It's no good looking for an overloaded operator() on a + #. pointer-to-member-function. +-#: cp/call.c:2732 ++#: cp/call.c:2742 + #, c-format + msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*" + msgstr "" + +-#: cp/call.c:2798 ++#: cp/call.c:2808 + msgid "no match for call to `(%T) (%A)'" + msgstr "" + +-#: cp/call.c:2806 ++#: cp/call.c:2816 + #, fuzzy + msgid "call of `(%T) (%A)' is ambiguous" + msgstr "%s: flaggan \"%s\" är tvetydig\n" + +-#: cp/call.c:2839 ++#: cp/call.c:2849 + #, c-format + msgid "%s for ternary 'operator?:' in '%E ? %E : %E'" + msgstr "" + +-#: cp/call.c:2845 ++#: cp/call.c:2855 + #, fuzzy, c-format + msgid "%s for 'operator%s' in '%E%s'" + msgstr "%s före symbolen \"%s\"" + +-#: cp/call.c:2849 ++#: cp/call.c:2859 + #, c-format + msgid "%s for 'operator[]' in '%E[%E]'" + msgstr "" + +-#: cp/call.c:2854 ++#: cp/call.c:2864 + #, fuzzy, c-format + msgid "%s for '%s' in '%s %E'" + msgstr "%s före %s'%c'" + +-#: cp/call.c:2859 ++#: cp/call.c:2869 + #, c-format + msgid "%s for 'operator%s' in '%E %s %E'" + msgstr "" + +-#: cp/call.c:2862 ++#: cp/call.c:2872 + #, fuzzy, c-format + msgid "%s for 'operator%s' in '%s%E'" + msgstr "%s före symbolen \"%s\"" + +-#: cp/call.c:2951 ++#: cp/call.c:2961 + msgid "ISO C++ forbids omitting the middle term of a ?: expression" + msgstr "ISO C++ förbjuder uteslutande av mittersta termen i ett ?: uttryck" + +-#: cp/call.c:3028 ++#: cp/call.c:3038 + #, c-format + msgid "`%E' has type `void' and is not a throw-expression" + msgstr "" + +-#: cp/call.c:3061 cp/call.c:3265 ++#: cp/call.c:3071 cp/call.c:3275 + msgid "operands to ?: have different types" + msgstr "" + +-#: cp/call.c:3219 ++#: cp/call.c:3229 + #, fuzzy + msgid "enumeral mismatch in conditional expression: `%T' vs `%T'" + msgstr "typfel i villkorsuttryck" + +-#: cp/call.c:3226 ++#: cp/call.c:3236 + #, fuzzy + msgid "enumeral and non-enumeral type in conditional expression" + msgstr "typ signed och unsigned i villkorsuttryck" + +-#: cp/call.c:3511 ++#: cp/call.c:3521 + msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead" + msgstr "" + +-#: cp/call.c:3560 ++#: cp/call.c:3570 + msgid "using synthesized `%#D' for copy assignment" + msgstr "" + +-#: cp/call.c:3562 ++#: cp/call.c:3572 + msgid " where cfront would use `%#D'" + msgstr "" + +-#: cp/call.c:3585 ++#: cp/call.c:3595 + #, fuzzy + msgid "comparison between `%#T' and `%#T'" + msgstr "jämföreslse mellan signed och unsigned" + +-#: cp/call.c:3831 ++#: cp/call.c:3841 + #, fuzzy + msgid "no suitable `operator %s' for `%T'" + msgstr "kan inte initiera friend-funktion \"%s\"" + +-#: cp/call.c:3848 ++#: cp/call.c:3858 + msgid "`%+#D' is private" + msgstr "" + +-#: cp/call.c:3850 ++#: cp/call.c:3860 + msgid "`%+#D' is protected" + msgstr "" + +-#: cp/call.c:3852 ++#: cp/call.c:3862 + msgid "`%+#D' is inaccessible" + msgstr "" + +-#: cp/call.c:3853 ++#: cp/call.c:3863 + msgid "within this context" + msgstr "" + +-#: cp/call.c:3923 ++#: cp/call.c:3947 + #, fuzzy + msgid "invalid conversion from `%T' to `%T'" + msgstr "konvertering från NaN till int" + +-#: cp/call.c:3925 ++#: cp/call.c:3949 + #, fuzzy + msgid " initializing argument %P of `%D'" + msgstr "ogiltigt typargument till \"%s\"" + +-#: cp/call.c:4079 ++#: cp/call.c:4094 + #, fuzzy + msgid "cannot bind bitfield `%E' to `%T'" + msgstr "kan inte initiera friend-funktion \"%s\"" + +-#: cp/call.c:4082 ++#: cp/call.c:4097 + #, fuzzy + msgid "cannot bind packed field `%E' to `%T'" + msgstr "kan inte deklarera \"::main\" som en mall" + +-#: cp/call.c:4085 ++#: cp/call.c:4100 + #, fuzzy + msgid "cannot bind rvalue `%E' to `%T'" + msgstr "kan inte initiera friend-funktion \"%s\"" + +-#: cp/call.c:4170 ++#: cp/call.c:4185 + msgid "cannot pass objects of non-POD type `%#T' through `...'; call will abort at runtime" + msgstr "" + + #. Undefined behavior [expr.call] 5.2.2/7. +-#: cp/call.c:4196 ++#: cp/call.c:4211 + msgid "cannot receive objects of non-POD type `%#T' through `...'; call will abort at runtime" + msgstr "" + +-#: cp/call.c:4240 ++#: cp/call.c:4255 + #, fuzzy + msgid "the default argument for parameter %d of `%D' has not yet been parsed" + msgstr "parameternamn saknas i parameterlista" + +-#: cp/call.c:4437 ++#: cp/call.c:4452 + msgid "passing `%T' as `this' argument of `%#D' discards qualifiers" + msgstr "" + +-#: cp/call.c:4456 ++#: cp/call.c:4471 + #, fuzzy + msgid "`%T' is not an accessible base of `%T'" + msgstr "%s har ingen medlem med namn \"%s\"" + +-#: cp/call.c:4725 ++#: cp/call.c:4740 + #, fuzzy + msgid "could not find class$ field in java interface type `%T'" + msgstr "ingen superklass deklarerad i interface för \"%s\"" + +-#: cp/call.c:4980 ++#: cp/call.c:4995 + #, fuzzy + msgid "call to non-function `%D'" + msgstr "Inga anrop i funktion %s\n" + +-#: cp/call.c:5006 ++#: cp/call.c:5021 + msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'" + msgstr "" + +-#: cp/call.c:5084 ++#: cp/call.c:5099 + msgid "no matching function for call to `%T::%s(%A)%#V'" + msgstr "" + +-#: cp/call.c:5101 ++#: cp/call.c:5116 + #, fuzzy, c-format + msgid "call of overloaded `%s(%A)' is ambiguous" + msgstr "%s: flaggan \"%s\" är tvetydig\n" + +-#: cp/call.c:5122 ++#: cp/call.c:5137 + msgid "cannot call member function `%D' without object" + msgstr "" + +-#: cp/call.c:5707 ++#: cp/call.c:5722 + msgid "passing `%T' chooses `%T' over `%T'" + msgstr "" + +-#: cp/call.c:5709 cp/name-lookup.c:4155 ++#: cp/call.c:5724 cp/name-lookup.c:4137 + #, fuzzy + msgid " in call to `%D'" + msgstr "kan inte inline:a anrop till \"%s\"" + +-#: cp/call.c:5766 ++#: cp/call.c:5781 + msgid "choosing `%D' over `%D'" + msgstr "" + +-#: cp/call.c:5767 ++#: cp/call.c:5782 + #, fuzzy + msgid " for conversion from `%T' to `%T'" + msgstr "konvertering från NaN till int" + +-#: cp/call.c:5769 ++#: cp/call.c:5784 + msgid " because conversion sequence for the argument is better" + msgstr "" + +-#: cp/call.c:5889 ++#: cp/call.c:5904 + msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:" + msgstr "" + +-#: cp/call.c:5893 ++#: cp/call.c:5908 + msgid "candidate 1:" + msgstr "" + +-#: cp/call.c:5894 ++#: cp/call.c:5909 + msgid "candidate 2:" + msgstr "" + +-#: cp/call.c:6003 ++#: cp/call.c:6018 + #, fuzzy + msgid "could not convert `%E' to `%T'" + msgstr "kunde inte öppna dump-fil \"%s\"" + +-#: cp/call.c:6108 ++#: cp/call.c:6123 + msgid "invalid initialization of non-const reference of type '%T' from a temporary of type '%T'" + msgstr "" + +-#: cp/call.c:6112 ++#: cp/call.c:6127 + #, fuzzy + msgid "invalid initialization of reference of type '%T' from expression of type '%T'" + msgstr "ogiltig mottagartyp \"%s\"" +@@ -13650,232 +13674,232 @@ + msgid "`%#T' only defines private constructors and has no friends" + msgstr "" + +-#: cp/class.c:1995 ++#: cp/class.c:2038 + msgid "no unique final overrider for `%D' in `%T'" + msgstr "" + + #. Here we know it is a hider, and no overrider exists. +-#: cp/class.c:2441 ++#: cp/class.c:2484 + msgid "`%D' was hidden" + msgstr "" + +-#: cp/class.c:2442 ++#: cp/class.c:2485 + msgid " by `%D'" + msgstr "" + +-#: cp/class.c:2484 cp/decl2.c:1161 ++#: cp/class.c:2527 cp/decl2.c:1161 + msgid "`%#D' invalid; an anonymous union can only have non-static data members" + msgstr "" + +-#: cp/class.c:2490 cp/decl2.c:1168 ++#: cp/class.c:2533 cp/decl2.c:1168 + msgid "private member `%#D' in anonymous union" + msgstr "" + +-#: cp/class.c:2493 cp/decl2.c:1170 ++#: cp/class.c:2536 cp/decl2.c:1170 + msgid "protected member `%#D' in anonymous union" + msgstr "" + +-#: cp/class.c:2612 ++#: cp/class.c:2655 + msgid "vtable layout for class `%T' may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor" + msgstr "" + +-#: cp/class.c:2672 ++#: cp/class.c:2715 + #, fuzzy + msgid "bit-field `%#D' with non-integral type" + msgstr "bitfält \"%s\" har en icke godkänd typ" + +-#: cp/class.c:2692 ++#: cp/class.c:2735 + #, fuzzy + msgid "bit-field `%D' width not an integer constant" + msgstr "tre \"l\"-suffix på heltalskonstant" + +-#: cp/class.c:2698 ++#: cp/class.c:2741 + #, fuzzy + msgid "negative width in bit-field `%D'" + msgstr "negativ storlek i bitfält \"%s\"" + +-#: cp/class.c:2703 ++#: cp/class.c:2746 + #, fuzzy + msgid "zero width for bit-field `%D'" + msgstr "Storleken noll på bitfält \"%s\"" + +-#: cp/class.c:2709 ++#: cp/class.c:2752 + #, fuzzy + msgid "width of `%D' exceeds its type" + msgstr "storleken på \"%s\" är större än sin typ" + +-#: cp/class.c:2718 ++#: cp/class.c:2761 + msgid "`%D' is too small to hold all values of `%#T'" + msgstr "" + +-#: cp/class.c:2780 ++#: cp/class.c:2823 + msgid "member `%#D' with constructor not allowed in union" + msgstr "" + +-#: cp/class.c:2783 ++#: cp/class.c:2826 + msgid "member `%#D' with destructor not allowed in union" + msgstr "" + +-#: cp/class.c:2786 ++#: cp/class.c:2829 + msgid "member `%#D' with copy assignment operator not allowed in union" + msgstr "" + +-#: cp/class.c:2813 ++#: cp/class.c:2856 + msgid "multiple fields in union `%T' initialized" + msgstr "" + +-#: cp/class.c:2879 ++#: cp/class.c:2922 + msgid "ignoring packed attribute on unpacked non-POD field `%#D'" + msgstr "" + +-#: cp/class.c:2939 ++#: cp/class.c:2982 + #, fuzzy + msgid "`%D' may not be static because it is a member of a union" + msgstr "\"%s\" är normalt en icke-statisk function" + +-#: cp/class.c:2944 ++#: cp/class.c:2987 + msgid "`%D' may not have reference type `%T' because it is a member of a union" + msgstr "" + +-#: cp/class.c:2952 ++#: cp/class.c:2995 + msgid "field `%D' in local class cannot be static" + msgstr "" + +-#: cp/class.c:2958 ++#: cp/class.c:3001 + #, fuzzy + msgid "field `%D' invalidly declared function type" + msgstr "fält \"%s\" deklarerad som en funktion" + +-#: cp/class.c:2965 ++#: cp/class.c:3008 + #, fuzzy + msgid "field `%D' invalidly declared method type" + msgstr "bitfält \"%s\" har en icke godkänd typ" + +-#: cp/class.c:2998 ++#: cp/class.c:3041 + msgid "non-static reference `%#D' in class without a constructor" + msgstr "" + +-#: cp/class.c:3041 ++#: cp/class.c:3084 + msgid "non-static const member `%#D' in class without a constructor" + msgstr "" + +-#: cp/class.c:3056 ++#: cp/class.c:3099 + msgid "field `%#D' with same name as class" + msgstr "" + +-#: cp/class.c:3074 ++#: cp/class.c:3117 + msgid "`%#T' has pointer data members" + msgstr "" + +-#: cp/class.c:3078 ++#: cp/class.c:3121 + msgid " but does not override `%T(const %T&)'" + msgstr "" + +-#: cp/class.c:3080 ++#: cp/class.c:3123 + msgid " or `operator=(const %T&)'" + msgstr "" + +-#: cp/class.c:3083 ++#: cp/class.c:3126 + msgid " but does not override `operator=(const %T&)'" + msgstr "" + +-#: cp/class.c:3517 ++#: cp/class.c:3560 + msgid "offset of empty base `%T' may not be ABI-compliant and maychange in a future version of GCC" + msgstr "" + +-#: cp/class.c:3627 ++#: cp/class.c:3670 + msgid "class `%T' will be considered nearly empty in a future version of GCC" + msgstr "" + +-#: cp/class.c:3714 ++#: cp/class.c:3757 + #, fuzzy + msgid "initializer specified for non-virtual method `%D'" + msgstr "argumentformat angivet för icke-funktion \"%s\"" + +-#: cp/class.c:4402 ++#: cp/class.c:4445 + msgid "offset of virtual base `%T' is not ABI-compliant and may change in a future version of GCC" + msgstr "" + +-#: cp/class.c:4492 ++#: cp/class.c:4535 + msgid "direct base `%T' inaccessible in `%T' due to ambiguity" + msgstr "" + +-#: cp/class.c:4505 ++#: cp/class.c:4548 + msgid "virtual base `%T' inaccessible in `%T' due to ambiguity" + msgstr "" + +-#: cp/class.c:4679 ++#: cp/class.c:4722 + msgid "size assigned to `%T' may not be ABI-compliant and may change in a future version of GCC" + msgstr "" + + #. Versions of G++ before G++ 3.4 did not reset the + #. DECL_MODE. +-#: cp/class.c:4718 ++#: cp/class.c:4761 + msgid "the offset of `%D' may not be ABI-compliant and may change in a future version of GCC" + msgstr "" + +-#: cp/class.c:4741 ++#: cp/class.c:4784 + msgid "offset of `%D' is not ABI-compliant and may change in a future version of GCC" + msgstr "" + +-#: cp/class.c:4750 ++#: cp/class.c:4793 + msgid "`%D' contains empty classes which may cause base classes to be placed at different locations in a future version of GCC" + msgstr "" + +-#: cp/class.c:4809 ++#: cp/class.c:4852 + msgid "layout of classes derived from empty class `%T' may change in a future version of GCC" + msgstr "" + +-#: cp/class.c:4939 cp/semantics.c:2044 ++#: cp/class.c:4982 cp/semantics.c:2041 + #, fuzzy + msgid "redefinition of `%#T'" + msgstr "omdefiniering av \"%s\"" + +-#: cp/class.c:5109 ++#: cp/class.c:5152 + msgid "`%#T' has virtual functions but non-virtual destructor" + msgstr "" + +-#: cp/class.c:5188 ++#: cp/class.c:5231 + msgid "trying to finish struct, but kicked out due to previous parse errors" + msgstr "" + +-#: cp/class.c:5630 ++#: cp/class.c:5673 + #, c-format + msgid "language string `\"%s\"' not recognized" + msgstr "språksträng `\"%s\"' känns inte igen" + +-#: cp/class.c:5718 ++#: cp/class.c:5761 + msgid "cannot resolve overloaded function `%D' based on conversion to type `%T'" + msgstr "" + +-#: cp/class.c:5843 ++#: cp/class.c:5886 + msgid "no matches converting function `%D' to type `%#T'" + msgstr "" + +-#: cp/class.c:5866 ++#: cp/class.c:5909 + msgid "converting overloaded function `%D' to type `%#T' is ambiguous" + msgstr "" + +-#: cp/class.c:5892 ++#: cp/class.c:5935 + #, fuzzy + msgid "assuming pointer to member `%D'" + msgstr "upprepning av medlem \"%s\"" + +-#: cp/class.c:5895 ++#: cp/class.c:5938 + #, c-format + msgid "(a pointer to member can only be formed with `&%E')" + msgstr "" + +-#: cp/class.c:5940 cp/class.c:6122 cp/class.c:6129 ++#: cp/class.c:5983 cp/class.c:6165 cp/class.c:6172 + msgid "not enough type information" + msgstr "inte tillräcklig typinformation" + +-#: cp/class.c:5957 ++#: cp/class.c:6000 + #, fuzzy + msgid "argument of type `%T' does not match `%T'" + msgstr "argument \"%s\" matchar inte prototypen" + +-#: cp/class.c:6106 ++#: cp/class.c:6149 + msgid "invalid operation on uninstantiated type" + msgstr "ogiltig operation på oinstansierad typ" + +@@ -13884,12 +13908,12 @@ + #. A name N used in a class S shall refer to the same declaration + #. in its context and when re-evaluated in the completed scope of + #. S. +-#: cp/class.c:6364 cp/decl.c:1222 cp/name-lookup.c:514 cp/pt.c:2097 ++#: cp/class.c:6407 cp/decl.c:1223 cp/name-lookup.c:514 cp/pt.c:2125 + #, fuzzy + msgid "declaration of `%#D'" + msgstr "omdeklaration av \"%s\"" + +-#: cp/class.c:6365 ++#: cp/class.c:6408 + msgid "changes meaning of `%D' from `%+#D'" + msgstr "" + +@@ -14000,172 +14024,189 @@ + msgid " candidate conversions include `%D' and `%D'" + msgstr "" + +-#: cp/decl.c:371 ++#: cp/decl.c:372 + #, fuzzy + msgid "label `%D' used but not defined" + msgstr "etikett \"%s\" använd men inte definierad" + +-#: cp/decl.c:378 ++#: cp/decl.c:379 + #, fuzzy + msgid "label `%D' defined but not used" + msgstr "etikett \"%s\" definierad men inte använd" + +-#: cp/decl.c:1130 cp/decl.c:1556 ++#: cp/decl.c:1131 cp/decl.c:1570 + #, fuzzy + msgid "previous declaration of `%D'" + msgstr "tidigare deklaration av \"%s\"" + +-#: cp/decl.c:1178 ++#: cp/decl.c:1179 + #, fuzzy + msgid "%Jfunction '%D' redeclared as inline" + msgstr "biblioteksfunktion \"%s\" deklarerad som icke-funktion" + +-#: cp/decl.c:1179 ++#: cp/decl.c:1180 + #, fuzzy + msgid "%Jprevious declaration of '%D' with attribute noinline" + msgstr "implicit deklaration av funktion \"%s\"" + +-#: cp/decl.c:1186 ++#: cp/decl.c:1187 + #, fuzzy + msgid "%Jfunction '%D' redeclared with attribute noinline" + msgstr "funktionen \"%s\" deklarerades tidigare i ett block" + +-#: cp/decl.c:1188 ++#: cp/decl.c:1189 + #, fuzzy + msgid "%Jprevious declaration of '%D' was inline" + msgstr "tidigare deklaration av \"%s\"" + +-#: cp/decl.c:1209 cp/decl.c:1247 ++#: cp/decl.c:1210 cp/decl.c:1248 + #, fuzzy + msgid "shadowing %s function `%#D'" + msgstr "döljer biblioteksfunktion \"%s\"" + +-#: cp/decl.c:1218 ++#: cp/decl.c:1219 + #, fuzzy + msgid "library function `%#D' redeclared as non-function `%#D'" + msgstr "biblioteksfunktion \"%s\" deklarerad som icke-funktion" + +-#: cp/decl.c:1223 ++#: cp/decl.c:1224 + #, fuzzy + msgid "conflicts with built-in declaration `%#D'" + msgstr "motstridande deklarationer av \"%s\"" + +-#: cp/decl.c:1242 cp/decl.c:1354 cp/decl.c:1370 ++#: cp/decl.c:1243 cp/decl.c:1355 cp/decl.c:1371 + #, fuzzy + msgid "new declaration `%#D'" + msgstr "omdeklaration av \"%s\"" + +-#: cp/decl.c:1243 ++#: cp/decl.c:1244 + #, fuzzy + msgid "ambiguates built-in declaration `%#D'" + msgstr "dubbel deklaration av etikett \"%s\"" + +-#: cp/decl.c:1314 ++#: cp/decl.c:1315 + #, fuzzy + msgid "`%#D' redeclared as different kind of symbol" + msgstr "\"%s\" omdeklarerad som en annan sorts symbol" + +-#: cp/decl.c:1317 ++#: cp/decl.c:1318 + #, fuzzy + msgid "previous declaration of `%#D'" + msgstr "tidigare deklaration av \"%s\"" + +-#: cp/decl.c:1339 ++#: cp/decl.c:1340 + #, fuzzy + msgid "declaration of template `%#D'" + msgstr "omdeklaration av \"enum %s\"" + +-#: cp/decl.c:1340 cp/name-lookup.c:515 ++#: cp/decl.c:1341 cp/name-lookup.c:515 + #, fuzzy + msgid "conflicts with previous declaration `%#D'" + msgstr "sektion \"%s\" står i konflikt med tidigare deklaration" + +-#: cp/decl.c:1355 cp/decl.c:1371 ++#: cp/decl.c:1356 cp/decl.c:1372 + #, fuzzy + msgid "ambiguates old declaration `%#D'" + msgstr "dubbel deklaration av etikett \"%s\"" + +-#: cp/decl.c:1363 ++#: cp/decl.c:1364 + #, fuzzy + msgid "declaration of C function `%#D' conflicts with" + msgstr "implicit deklaration av funktion \"%s\"" + +-#: cp/decl.c:1365 ++#: cp/decl.c:1366 + #, fuzzy + msgid "previous declaration `%#D' here" + msgstr "tidigare deklaration av \"%s\"" + +-#: cp/decl.c:1381 ++#: cp/decl.c:1382 + #, fuzzy + msgid "conflicting declaration '%#D'" + msgstr "motstridande deklarationer av \"%s\"" + +-#: cp/decl.c:1382 ++#: cp/decl.c:1383 + #, fuzzy + msgid "'%D' has a previous declaration as `%#D'" + msgstr "tidigare deklaration av \"%s\"" + +-#: cp/decl.c:1435 ++#. [namespace.alias] ++#. ++#. A namespace-name or namespace-alias shall not be declared as ++#. the name of any other entity in the same declarative region. ++#. A namespace-name defined at global scope shall not be ++#. declared as the name of any other entity in any glogal scope ++#. of the program. ++#: cp/decl.c:1436 ++#, fuzzy ++msgid "declaration of `namespace %D' conflicts with" ++msgstr "implicit deklaration av funktion \"%s\"" ++ ++#: cp/decl.c:1437 ++#, fuzzy ++msgid "previous declaration of `namespace %D' here" ++msgstr "tidigare deklaration av \"%s\"" ++ ++#: cp/decl.c:1449 + #, fuzzy + msgid "`%#D' previously defined here" + msgstr "\"%s\" definierades tidigare här" + +-#: cp/decl.c:1436 ++#: cp/decl.c:1450 + #, fuzzy + msgid "`%#D' previously declared here" + msgstr "\"%s\" är tidigare deklarerad här" + + #. Prototype decl follows defn w/o prototype. +-#: cp/decl.c:1445 ++#: cp/decl.c:1459 + #, fuzzy + msgid "prototype for `%#D'" + msgstr "prototyp för \"%s\" följer" + +-#: cp/decl.c:1446 ++#: cp/decl.c:1460 + #, fuzzy + msgid "%Jfollows non-prototype definition here" + msgstr "icke-prototypdefinition here" + +-#: cp/decl.c:1458 ++#: cp/decl.c:1472 + #, fuzzy + msgid "previous declaration of `%#D' with %L linkage" + msgstr "tidigare deklaration av \"%s\"" + +-#: cp/decl.c:1460 ++#: cp/decl.c:1474 + #, fuzzy + msgid "conflicts with new declaration with %L linkage" + msgstr "motstridande deklarationer av \"%s\"" + +-#: cp/decl.c:1483 cp/decl.c:1490 ++#: cp/decl.c:1497 cp/decl.c:1504 + msgid "default argument given for parameter %d of `%#D'" + msgstr "" + +-#: cp/decl.c:1485 cp/decl.c:1492 ++#: cp/decl.c:1499 cp/decl.c:1506 + #, fuzzy + msgid "after previous specification in `%#D'" + msgstr "tidigare deklaration av \"%s\"" + +-#: cp/decl.c:1501 ++#: cp/decl.c:1515 + #, fuzzy + msgid "`%#D' was used before it was declared inline" + msgstr "\"%s\" användes utan någon prototyp innan sin definition" + +-#: cp/decl.c:1502 ++#: cp/decl.c:1516 + #, fuzzy + msgid "%Jprevious non-inline declaration here" + msgstr "tidigare implicit deklaration av \"%s\"" + +-#: cp/decl.c:1555 ++#: cp/decl.c:1569 + #, fuzzy + msgid "redundant redeclaration of `%D' in same scope" + msgstr "redundant omdeklaration av \"%s\" i samma scope" + +-#: cp/decl.c:1649 ++#: cp/decl.c:1663 + #, fuzzy, c-format + msgid "declaration of `%F' throws different exceptions" + msgstr "deklaration av \"%s\" som ett fält med funktioner" + +-#: cp/decl.c:1651 ++#: cp/decl.c:1665 + #, fuzzy, c-format + msgid "than previous declaration `%F'" + msgstr "ingen tidigare deklaration av \"%s\"" +@@ -14178,224 +14219,224 @@ + #. that specialization that would cause an implicit + #. instantiation to take place, in every translation unit in + #. which such a use occurs. +-#: cp/decl.c:1798 ++#: cp/decl.c:1812 + msgid "explicit specialization of %D after first use" + msgstr "" + +-#: cp/decl.c:1878 ++#: cp/decl.c:1892 + msgid "%J'%D': visibility attribute ignored because it" + msgstr "" + +-#: cp/decl.c:1880 ++#: cp/decl.c:1894 + #, fuzzy + msgid "%Jconflicts with previous declaration here" + msgstr "sektion \"%s\" står i konflikt med tidigare deklaration" + +-#: cp/decl.c:1974 ++#: cp/decl.c:1988 + #, fuzzy + msgid "implicit declaration of function `%#D'" + msgstr "implicit deklaration av funktion \"%s\"" + +-#: cp/decl.c:2137 ++#: cp/decl.c:2151 + #, c-format + msgid "label `%s' referenced outside of any function" + msgstr "" + +-#: cp/decl.c:2234 cp/decl.c:2258 cp/decl.c:2346 ++#: cp/decl.c:2248 cp/decl.c:2272 cp/decl.c:2360 + #, fuzzy + msgid "jump to label `%D'" + msgstr "hopp till case-etikett" + +-#: cp/decl.c:2236 cp/decl.c:2260 ++#: cp/decl.c:2250 cp/decl.c:2274 + msgid "jump to case label" + msgstr "hopp till case-etikett" + +-#: cp/decl.c:2239 cp/decl.c:2263 ++#: cp/decl.c:2253 cp/decl.c:2277 + #, fuzzy + msgid "%H from here" + msgstr " från här" + +-#: cp/decl.c:2244 ++#: cp/decl.c:2258 + #, fuzzy + msgid " crosses initialization of `%#D'" + msgstr "omdefiniering av \"%s\"" + +-#: cp/decl.c:2247 cp/decl.c:2362 ++#: cp/decl.c:2261 cp/decl.c:2376 + msgid " enters scope of non-POD `%#D'" + msgstr "" + +-#: cp/decl.c:2267 cp/decl.c:2366 ++#: cp/decl.c:2281 cp/decl.c:2380 + msgid " enters try block" + msgstr " går in i try-block" + +-#: cp/decl.c:2269 cp/decl.c:2368 ++#: cp/decl.c:2283 cp/decl.c:2382 + msgid " enters catch block" + msgstr " går in i catch-block" + +-#: cp/decl.c:2347 ++#: cp/decl.c:2361 + msgid " from here" + msgstr " från här" + + #. Can't skip init of __exception_info. +-#: cp/decl.c:2358 ++#: cp/decl.c:2372 + #, fuzzy + msgid "%J enters catch block" + msgstr " går in i catch-block" + +-#: cp/decl.c:2360 ++#: cp/decl.c:2374 + #, fuzzy + msgid " skips initialization of `%#D'" + msgstr "%s: Vid instansiering av \"%s\":\n" + +-#: cp/decl.c:2394 ++#: cp/decl.c:2408 + msgid "label named wchar_t" + msgstr "" + +-#: cp/decl.c:2397 ++#: cp/decl.c:2411 + #, fuzzy + msgid "duplicate label `%D'" + msgstr "upprepning av medlem \"%s\"" + +-#: cp/decl.c:2625 cp/parser.c:3182 ++#: cp/decl.c:2639 cp/parser.c:3192 + msgid "`%D' used without template parameters" + msgstr "" + +-#: cp/decl.c:2635 cp/decl.c:2651 cp/decl.c:2739 ++#: cp/decl.c:2649 cp/decl.c:2665 cp/decl.c:2753 + msgid "no class template named `%#T' in `%#T'" + msgstr "" + +-#: cp/decl.c:2672 cp/decl.c:2682 cp/decl.c:2702 ++#: cp/decl.c:2686 cp/decl.c:2696 cp/decl.c:2716 + msgid "no type named `%#T' in `%#T'" + msgstr "" + +-#: cp/decl.c:3429 ++#: cp/decl.c:3443 + #, fuzzy + msgid "%Jan anonymous union cannot have function members" + msgstr "anonym union deklarerad i parameterlista" + +-#: cp/decl.c:3447 ++#: cp/decl.c:3461 + msgid "member %#D' with constructor not allowed in anonymous aggregate" + msgstr "" + +-#: cp/decl.c:3450 ++#: cp/decl.c:3464 + msgid "member %#D' with destructor not allowed in anonymous aggregate" + msgstr "" + +-#: cp/decl.c:3453 ++#: cp/decl.c:3467 + msgid "member %#D' with copy assignment operator not allowed in anonymous aggregate" + msgstr "" + +-#: cp/decl.c:3493 ++#: cp/decl.c:3507 + #, fuzzy + msgid "redeclaration of C++ built-in type `%T'" + msgstr "omdeklaration av \"%s\"" + +-#: cp/decl.c:3531 ++#: cp/decl.c:3545 + msgid "multiple types in one declaration" + msgstr "" + +-#: cp/decl.c:3557 ++#: cp/decl.c:3571 + #, fuzzy + msgid "missing type-name in typedef-declaration" + msgstr "oanvändbart nyckelord eller typnamn i tom deklaration" + +-#: cp/decl.c:3565 ++#: cp/decl.c:3579 + msgid "ISO C++ prohibits anonymous structs" + msgstr "" + +-#: cp/decl.c:3572 ++#: cp/decl.c:3586 + #, fuzzy + msgid "`%D' can only be specified for functions" + msgstr "argumentformat angivet för icke-funktion \"%s\"" + +-#: cp/decl.c:3574 ++#: cp/decl.c:3588 + msgid "`%D' can only be specified inside a class" + msgstr "" + +-#: cp/decl.c:3576 ++#: cp/decl.c:3590 + msgid "`%D' can only be specified for constructors" + msgstr "" + +-#: cp/decl.c:3579 ++#: cp/decl.c:3593 + #, fuzzy + msgid "`%D' can only be specified for objects and functions" + msgstr "argumentformat angivet för icke-funktion \"%s\"" + +-#: cp/decl.c:3721 cp/decl2.c:855 ++#: cp/decl.c:3735 cp/decl2.c:855 + #, fuzzy + msgid "typedef `%D' is initialized (use __typeof__ instead)" + msgstr "typedef \"%s\" är initierad" + +-#: cp/decl.c:3726 ++#: cp/decl.c:3740 + #, fuzzy + msgid "function `%#D' is initialized like a variable" + msgstr "funktion \"%s\" är initierad som en variabel" + +-#: cp/decl.c:3738 ++#: cp/decl.c:3752 + #, fuzzy + msgid "declaration of `%#D' has `extern' and is initialized" + msgstr "deklaration av \"%s\" är \"extern\" och initierad" + +-#: cp/decl.c:3771 ++#: cp/decl.c:3785 + msgid "`%#D' is not a static member of `%#T'" + msgstr "" + +-#: cp/decl.c:3777 ++#: cp/decl.c:3791 + #, fuzzy + msgid "ISO C++ does not permit `%T::%D' to be defined as `%T::%D'" + msgstr "ISO C++ tillåter inte \"%s\" i #if" + +-#: cp/decl.c:3788 ++#: cp/decl.c:3802 + #, fuzzy + msgid "duplicate initialization of %D" + msgstr "initiering" + +-#: cp/decl.c:3819 ++#: cp/decl.c:3833 + #, fuzzy + msgid "declaration of `%#D' outside of class is not definition" + msgstr "deklaration av \"%s\" som ett fält med funktioner" + +-#: cp/decl.c:3868 ++#: cp/decl.c:3882 + #, fuzzy + msgid "variable `%#D' has initializer but incomplete type" + msgstr "variabel \"%s\" har initierare men är av inkomplett typ" + +-#: cp/decl.c:3876 cp/decl.c:4445 ++#: cp/decl.c:3890 cp/decl.c:4500 + #, fuzzy + msgid "elements of array `%#D' have incomplete type" + msgstr "elementen i fält \"%s\" har en ofullständig typ" + +-#: cp/decl.c:3892 ++#: cp/decl.c:3906 + #, fuzzy + msgid "aggregate `%#D' has incomplete type and cannot be defined" + msgstr "parameter \"%s\" har en inkomplett typ" + +-#: cp/decl.c:3942 ++#: cp/decl.c:3956 + #, fuzzy + msgid "`%D' declared as reference but not initialized" + msgstr "\"%s\" omdeklarerad som en annan sorts symbol" + +-#: cp/decl.c:3948 ++#: cp/decl.c:3962 + #, fuzzy + msgid "ISO C++ forbids use of initializer list to initialize reference `%D'" + msgstr "ISO C++ förbjuder initiering av new-uttryck med \"=\"" + +-#: cp/decl.c:3976 ++#: cp/decl.c:3990 + #, fuzzy + msgid "cannot initialize `%T' from `%T'" + msgstr "kan inte initiera friend-funktion \"%s\"" + +-#: cp/decl.c:4008 ++#: cp/decl.c:4022 + #, fuzzy + msgid "initializer fails to determine size of `%D'" + msgstr "initierare misslyckas med att bestämma storlek på \"%s\"" + +-#: cp/decl.c:4013 ++#: cp/decl.c:4027 + #, fuzzy + msgid "array size missing in `%D'" + msgstr "fältstorlek saknas i \"%s\"" + +-#: cp/decl.c:4025 ++#: cp/decl.c:4039 + #, fuzzy + msgid "zero-size array `%D'" + msgstr "ISO C förbjuder fält \"%s\" med storlek noll" +@@ -14403,329 +14444,347 @@ + #. An automatic variable with an incomplete type: that is an error. + #. Don't talk about array types here, since we took care of that + #. message in grokdeclarator. +-#: cp/decl.c:4062 ++#: cp/decl.c:4076 + #, fuzzy + msgid "storage size of `%D' isn't known" + msgstr "lagringsstorlek på \"%s\" är okänd" + +-#: cp/decl.c:4084 ++#: cp/decl.c:4098 + #, fuzzy + msgid "storage size of `%D' isn't constant" + msgstr "lagringsstorlek på \"%s\" är inte konstant" + +-#: cp/decl.c:4139 ++#: cp/decl.c:4153 + msgid "sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)" + msgstr "" + +-#: cp/decl.c:4140 ++#: cp/decl.c:4154 + msgid "%J you can work around this by removing the initializer" + msgstr "" + +-#: cp/decl.c:4166 ++#: cp/decl.c:4180 + #, fuzzy + msgid "uninitialized const `%D'" + msgstr "kan inte initiera friend-funktion \"%s\"" + +-#: cp/decl.c:4245 ++#: cp/decl.c:4240 ++msgid "name `%D' used in a GNU-style designated initializer for an array" ++msgstr "" ++ ++#: cp/decl.c:4251 ++#, c-format ++msgid "Designated initializer `%E' larger than array size" ++msgstr "" ++ ++#: cp/decl.c:4323 + #, fuzzy + msgid "brace-enclosed initializer used to initialize `%T'" + msgstr "kan inte initiera friend-funktion \"%s\"" + +-#: cp/decl.c:4309 ++#: cp/decl.c:4387 + msgid "initializer for `%T' must be brace-enclosed" + msgstr "" + +-#: cp/decl.c:4326 ++#: cp/decl.c:4404 + #, fuzzy + msgid "ISO C++ does not allow designated initializers" + msgstr "ISO C89 förbjuder konstruktor-uttryck" + +-#: cp/decl.c:4330 ++#: cp/decl.c:4408 + #, fuzzy + msgid "`%T' has no non-static data member named `%D'" + msgstr "%s har ingen medlem med namn \"%s\"" + +-#: cp/decl.c:4378 +-msgid "name `%D' used in a GNU-style designated initializer for an array" +-msgstr "" +- +-#: cp/decl.c:4401 ++#: cp/decl.c:4456 + #, fuzzy + msgid "too many initializers for `%T'" + msgstr "kan inte initiera friend-funktion \"%s\"" + +-#: cp/decl.c:4439 ++#: cp/decl.c:4494 + #, fuzzy + msgid "variable-sized object `%D' may not be initialized" + msgstr "objekt med variabel storlek kan inte initieras" + +-#: cp/decl.c:4450 ++#: cp/decl.c:4505 + #, fuzzy + msgid "`%D' has incomplete type" + msgstr "\"%s\" har en inkomplett typ" + +-#: cp/decl.c:4505 ++#: cp/decl.c:4560 + msgid "`%D' must be initialized by constructor, not by `{...}'" + msgstr "" + +-#: cp/decl.c:4549 ++#: cp/decl.c:4604 + msgid "structure `%D' with uninitialized const members" + msgstr "" + +-#: cp/decl.c:4551 ++#: cp/decl.c:4606 + msgid "structure `%D' with uninitialized reference members" + msgstr "" + +-#: cp/decl.c:4732 ++#: cp/decl.c:4788 + msgid "assignment (not initialization) in declaration" + msgstr "tilldelning (inte initieraing) i deklaration" + +-#: cp/decl.c:4749 ++#: cp/decl.c:4805 + #, fuzzy + msgid "cannot initialize `%D' to namespace `%D'" + msgstr "kan inte initiera friend-funktion \"%s\"" + +-#: cp/decl.c:4803 ++#: cp/decl.c:4859 + #, fuzzy + msgid "shadowing previous type declaration of `%#D'" + msgstr "tidigare deklaration av \"%s\"" + +-#: cp/decl.c:4840 ++#: cp/decl.c:4896 + msgid "`%D' cannot be thread-local because it has non-POD type `%T'" + msgstr "" + +-#: cp/decl.c:4855 ++#: cp/decl.c:4911 + msgid "`%D' is thread-local and so cannot be dynamically initialized" + msgstr "" + +-#: cp/decl.c:5337 ++#: cp/decl.c:5406 + msgid "invalid catch parameter" + msgstr "" + +-#: cp/decl.c:5451 ++#: cp/decl.c:5520 + #, fuzzy + msgid "destructor for alien class `%T' cannot be a member" + msgstr "destruerare kan inte vara en statisk medlemsfunktion" + +-#: cp/decl.c:5454 ++#: cp/decl.c:5523 + #, fuzzy + msgid "constructor for alien class `%T' cannot be a member" + msgstr "konstruerare kan inte vara en statisk medlemsfunktion\"" + +-#: cp/decl.c:5476 ++#: cp/decl.c:5545 + msgid "`%D' declared as a `virtual' %s" + msgstr "" + +-#: cp/decl.c:5478 ++#: cp/decl.c:5547 + #, fuzzy + msgid "`%D' declared as an `inline' %s" + msgstr "variabel \"%s\" deklarerad \"inline\"" + +-#: cp/decl.c:5480 ++#: cp/decl.c:5549 + msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration" + msgstr "" + +-#: cp/decl.c:5483 ++#: cp/decl.c:5552 + #, fuzzy + msgid "`%D' declared as a friend" + msgstr "fält \"%s\" deklarerad som en funktion" + +-#: cp/decl.c:5489 ++#: cp/decl.c:5558 + #, fuzzy + msgid "`%D' declared with an exception specification" + msgstr "\"%s\" är deklarerad som en funktion som returnerar en funktion" + +-#: cp/decl.c:5571 ++#: cp/decl.c:5640 + msgid "cannot declare `::main' to be a template" + msgstr "kan inte deklarera \"::main\" som en mall" + +-#: cp/decl.c:5573 ++#: cp/decl.c:5642 + msgid "cannot declare `::main' to be inline" + msgstr "" + +-#: cp/decl.c:5575 ++#: cp/decl.c:5644 + msgid "cannot declare `::main' to be static" + msgstr "kan inte deklarera \"::main\" som static" + +-#: cp/decl.c:5578 ++#: cp/decl.c:5647 + msgid "`main' must return `int'" + msgstr "\"main\" måste returnera \"int\"" + +-#: cp/decl.c:5606 ++#: cp/decl.c:5675 + msgid "non-local function `%#D' uses anonymous type" + msgstr "" + +-#: cp/decl.c:5609 ++#: cp/decl.c:5678 + msgid "`%#D' does not refer to the unqualified type, so it is not used for linkage" + msgstr "" + +-#: cp/decl.c:5615 ++#: cp/decl.c:5684 + msgid "non-local function `%#D' uses local type `%T'" + msgstr "" + +-#: cp/decl.c:5639 ++#: cp/decl.c:5708 + msgid "%smember function `%D' cannot have `%T' method qualifier" + msgstr "" + +-#: cp/decl.c:5663 ++#: cp/decl.c:5732 + #, fuzzy + msgid "defining explicit specialization `%D' in friend declaration" + msgstr "tilldelning (inte initieraing) i deklaration" + + #. Something like `template friend void f()'. +-#: cp/decl.c:5673 ++#: cp/decl.c:5742 + msgid "invalid use of template-id `%D' in declaration of primary template" + msgstr "" + +-#: cp/decl.c:5700 ++#: cp/decl.c:5769 + msgid "default arguments are not allowed in declaration of friend template specialization `%D'" + msgstr "" + +-#: cp/decl.c:5707 ++#: cp/decl.c:5776 + msgid "`inline' is not allowed in declaration of friend template specialization `%D'" + msgstr "" + +-#: cp/decl.c:5765 ++#: cp/decl.c:5834 + #, fuzzy + msgid "definition of implicitly-declared `%D'" + msgstr "funktionsdefinition deklarerad som \"auto\"" + +-#: cp/decl.c:5785 cp/decl2.c:738 ++#: cp/decl.c:5854 cp/decl2.c:738 + msgid "no `%#D' member function declared in class `%T'" + msgstr "" + +-#: cp/decl.c:5919 ++#: cp/decl.c:5988 + msgid "non-local variable `%#D' uses local type `%T'" + msgstr "" + +-#: cp/decl.c:6034 ++#: cp/decl.c:6103 + msgid "invalid in-class initialization of static data member of non-integral type `%T'" + msgstr "" + +-#: cp/decl.c:6043 ++#: cp/decl.c:6112 + #, fuzzy + msgid "ISO C++ forbids in-class initialization of non-const static member `%D'" + msgstr "ISO C++ förbjuder initiering av new-uttryck med \"=\"" + +-#: cp/decl.c:6046 ++#: cp/decl.c:6115 + #, fuzzy + msgid "ISO C++ forbids initialization of member constant `%D' of non-integral type `%T'" + msgstr "ISO C++ förbjuder initiering av new-uttryck med \"=\"" + +-#: cp/decl.c:6065 ++#: cp/decl.c:6134 + #, fuzzy + msgid "size of array `%D' has non-integral type `%T'" + msgstr "storlek på fält \"%s\" är inte av heltalstyp" + +-#: cp/decl.c:6067 ++#: cp/decl.c:6136 + #, fuzzy + msgid "size of array has non-integral type `%T'" + msgstr "storlek på fält \"%s\" är inte av heltalstyp" + +-#: cp/decl.c:6103 ++#: cp/decl.c:6172 + #, fuzzy + msgid "size of array `%D' is negative" + msgstr "storlek på fält \"%s\" är negativt" + +-#: cp/decl.c:6105 ++#: cp/decl.c:6174 + #, fuzzy + msgid "size of array is negative" + msgstr "storlek på fält \"%s\" är negativt" + +-#: cp/decl.c:6113 ++#: cp/decl.c:6182 + #, fuzzy + msgid "ISO C++ forbids zero-size array `%D'" + msgstr "ISO C förbjuder fält \"%s\" med storlek noll" + +-#: cp/decl.c:6115 ++#: cp/decl.c:6184 + #, fuzzy + msgid "ISO C++ forbids zero-size array" + msgstr "ISO C förbjuder fält \"%s\" med storlek noll" + +-#: cp/decl.c:6122 ++#: cp/decl.c:6191 + #, fuzzy + msgid "size of array `%D' is not an integral constant-expression" + msgstr "storlek på fält \"%s\" är inte av heltalstyp" + +-#: cp/decl.c:6125 ++#: cp/decl.c:6194 + #, fuzzy + msgid "size of array is not an integral constant-expression" + msgstr "storlek på fält \"%s\" är inte av heltalstyp" + +-#: cp/decl.c:6130 ++#: cp/decl.c:6199 + #, fuzzy + msgid "ISO C++ forbids variable-size array `%D'" + msgstr "ISO C89 förbjuder fält \"%s\" med variabel storlek" + +-#: cp/decl.c:6132 ++#: cp/decl.c:6201 + #, fuzzy + msgid "ISO C++ forbids variable-size array" + msgstr "ISO C89 förbjuder fält \"%s\" med variabel storlek" + +-#: cp/decl.c:6154 ++#: cp/decl.c:6223 + msgid "overflow in array dimension" + msgstr "" + +-#: cp/decl.c:6248 ++#: cp/decl.c:6317 + #, fuzzy + msgid "declaration of `%D' as %s" + msgstr "omdeklaration av \"%s\"" + +-#: cp/decl.c:6250 ++#: cp/decl.c:6319 + #, fuzzy, c-format + msgid "creating %s" + msgstr "Skapar %s.\n" + +-#: cp/decl.c:6262 ++#: cp/decl.c:6331 + msgid "declaration of `%D' as multidimensional array must have bounds for all dimensions except the first" + msgstr "" + +-#: cp/decl.c:6265 ++#: cp/decl.c:6334 + msgid "multidimensional array must have bounds for all dimensions except the first" + msgstr "" + +-#: cp/decl.c:6293 ++#: cp/decl.c:6362 + #, fuzzy + msgid "return type specification for constructor invalid" + msgstr "funktionskroppen för konstrueraren saknas" + +-#: cp/decl.c:6300 ++#: cp/decl.c:6369 + msgid "return type specification for destructor invalid" + msgstr "" + +-#: cp/decl.c:6306 ++#: cp/decl.c:6375 + #, fuzzy + msgid "operator `%T' declared to return `%T'" + msgstr "parameter \"%s\" deklarerad som void" + +-#: cp/decl.c:6308 ++#: cp/decl.c:6377 + #, fuzzy + msgid "return type specified for `operator %T'" + msgstr "lagringsklass angiven för parameter \"%s\"" + +-#: cp/decl.c:6452 ++#: cp/decl.c:6400 ++msgid "unnamed variable or field declared void" ++msgstr "" ++ ++#: cp/decl.c:6405 ++#, fuzzy, c-format ++msgid "variable or field `%E' declared void" ++msgstr "variabel eller fält \"%s\" deklarerad som void" ++ ++#: cp/decl.c:6408 ++msgid "variable or field declared void" ++msgstr "" ++ ++#: cp/decl.c:6547 + msgid "destructors must be member functions" + msgstr "destruerare måste vara medlemsfunktioner" + +-#: cp/decl.c:6471 ++#: cp/decl.c:6566 + msgid "destructor `%T' must match class name `%T'" + msgstr "" + +-#: cp/decl.c:6534 ++#: cp/decl.c:6629 + msgid "declarator-id missing; using reserved word `%D'" + msgstr "" + +-#: cp/decl.c:6588 ++#: cp/decl.c:6683 + msgid "type `%T' is not derived from type `%T'" + msgstr "" + + #. Parse error puts this typespec where + #. a declarator should go. +-#: cp/decl.c:6651 ++#: cp/decl.c:6746 + msgid "`%T' specified as declarator-id" + msgstr "" + +-#: cp/decl.c:6653 ++#: cp/decl.c:6748 + msgid " perhaps you want `%T' for a constructor" + msgstr "" + +@@ -14733,319 +14792,311 @@ + #. decl-specifier like in + #. std::allocator alloc; + #. Handle that gracefully. +-#: cp/decl.c:6675 ++#: cp/decl.c:6770 + #, fuzzy, c-format + msgid "invalid use of template-name '%E' in a declarator" + msgstr "ogiltig användning av void-uttryck" + +-#: cp/decl.c:6695 ++#: cp/decl.c:6790 cp/decl.c:8124 + #, fuzzy + msgid "declaration of `%D' as non-function" + msgstr "deklaration av \"%s\" som ett fält med funktioner" + +-#: cp/decl.c:6772 ++#: cp/decl.c:6867 + msgid "`bool' is now a keyword" + msgstr "\"bool\" är numera ett nyckelord" + +-#: cp/decl.c:6774 ++#: cp/decl.c:6869 + msgid "extraneous `%T' ignored" + msgstr "" + +-#: cp/decl.c:6790 cp/decl.c:6834 ++#: cp/decl.c:6885 cp/decl.c:6929 + #, fuzzy + msgid "multiple declarations `%T' and `%T'" + msgstr "multiple deklaration av metod \"%s\"" + +-#: cp/decl.c:6803 ++#: cp/decl.c:6898 + msgid "ISO C++ does not support `long long'" + msgstr "ISO C++ stödjer inte \"long long\"" + +-#: cp/decl.c:6907 cp/decl.c:6910 ++#: cp/decl.c:7002 cp/decl.c:7005 + #, fuzzy, c-format + msgid "ISO C++ forbids declaration of `%s' with no type" + msgstr "ISO C förbjuder medlemsdeklarationer utan medlemmar" + +-#: cp/decl.c:6941 ++#: cp/decl.c:7036 + #, c-format + msgid "short, signed or unsigned invalid for `%s'" + msgstr "short, signed eller unsigned är ogiltigt för \"%s\"" + +-#: cp/decl.c:6946 ++#: cp/decl.c:7041 + #, c-format + msgid "long and short specified together for `%s'" + msgstr "både long och short angivet för \"%s\"" + +-#: cp/decl.c:6957 ++#: cp/decl.c:7052 + #, c-format + msgid "signed and unsigned given together for `%s'" + msgstr "både signed och unsigned angivet för \"%s\"" + +-#: cp/decl.c:7066 ++#: cp/decl.c:7161 + msgid "qualifiers are not allowed on declaration of `operator %T'" + msgstr "" + +-#: cp/decl.c:7088 ++#: cp/decl.c:7183 + msgid "member `%D' cannot be declared both virtual and static" + msgstr "" + +-#: cp/decl.c:7097 ++#: cp/decl.c:7192 + #, fuzzy + msgid "`%T::%D' is not a valid declarator" + msgstr "\"%s\" är inte i början av deklarationen" + +-#: cp/decl.c:7109 ++#: cp/decl.c:7204 + msgid "storage class specifiers invalid in parameter declarations" + msgstr "" + +-#: cp/decl.c:7113 ++#: cp/decl.c:7208 + msgid "typedef declaration invalid in parameter declaration" + msgstr "" + +-#: cp/decl.c:7126 ++#: cp/decl.c:7221 + msgid "virtual outside class declaration" + msgstr "" + +-#: cp/decl.c:7185 ++#: cp/decl.c:7280 + #, c-format + msgid "storage class specified for %s `%s'" + msgstr "" + +-#: cp/decl.c:7220 ++#: cp/decl.c:7315 + #, c-format + msgid "top-level declaration of `%s' specifies `auto'" + msgstr "toppnivådeklaration av \"%s\" anger \"auto\"" + +-#: cp/decl.c:7232 ++#: cp/decl.c:7327 + msgid "storage class specifiers invalid in friend function declarations" + msgstr "" + +-#: cp/decl.c:7397 ++#: cp/decl.c:7492 + msgid "destructor cannot be static member function" + msgstr "destruerare kan inte vara en statisk medlemsfunktion" + +-#: cp/decl.c:7400 ++#: cp/decl.c:7495 + #, fuzzy, c-format + msgid "destructors may not be `%s'" + msgstr "destruerare behövs för \"%#D\"" + +-#: cp/decl.c:7421 ++#: cp/decl.c:7516 + msgid "constructor cannot be static member function" + msgstr "konstruerare kan inte vara en statisk medlemsfunktion\"" + +-#: cp/decl.c:7424 ++#: cp/decl.c:7519 + msgid "constructors cannot be declared virtual" + msgstr "" + +-#: cp/decl.c:7429 ++#: cp/decl.c:7524 + #, c-format + msgid "constructors may not be `%s'" + msgstr "" + +-#: cp/decl.c:7439 ++#: cp/decl.c:7534 + msgid "return value type specifier for constructor ignored" + msgstr "" + +-#: cp/decl.c:7458 ++#: cp/decl.c:7553 + #, c-format + msgid "can't initialize friend function `%s'" + msgstr "kan inte initiera friend-funktion \"%s\"" + + #. Cannot be both friend and virtual. +-#: cp/decl.c:7462 ++#: cp/decl.c:7557 + msgid "virtual functions cannot be friends" + msgstr "" + +-#: cp/decl.c:7467 ++#: cp/decl.c:7562 + msgid "friend declaration not in class definition" + msgstr "" + +-#: cp/decl.c:7469 ++#: cp/decl.c:7564 + #, fuzzy, c-format + msgid "can't define friend function `%s' in a local class definition" + msgstr "kan inte initiera friend-funktion \"%s\"" + +-#: cp/decl.c:7490 ++#: cp/decl.c:7585 + #, fuzzy + msgid "destructors may not have parameters" + msgstr "destruerare måste vara medlemsfunktioner" + +-#: cp/decl.c:7510 cp/decl.c:7517 ++#: cp/decl.c:7605 cp/decl.c:7612 + #, fuzzy + msgid "cannot declare reference to `%#T'" + msgstr "kan inte deklarera referenser till referenser" + +-#: cp/decl.c:7511 ++#: cp/decl.c:7606 + #, fuzzy + msgid "cannot declare pointer to `%#T'" + msgstr "kan inte deklarera pekare till referenser" + +-#: cp/decl.c:7516 ++#: cp/decl.c:7611 + #, fuzzy + msgid "cannot declare pointer to `%#T' member" + msgstr "kan inte deklarera pekare till referenser" + +-#: cp/decl.c:7655 ++#: cp/decl.c:7750 + msgid "extra qualification `%T::' on member `%s' ignored" + msgstr "" + +-#: cp/decl.c:7671 ++#: cp/decl.c:7766 + msgid "cannot declare member function `%T::%s' within `%T'" + msgstr "" + +-#: cp/decl.c:7686 ++#: cp/decl.c:7781 + msgid "cannot declare member `%T::%s' within `%T'" + msgstr "" + +-#: cp/decl.c:7766 ++#: cp/decl.c:7861 + msgid "data member may not have variably modified type `%T'" + msgstr "" + +-#: cp/decl.c:7768 ++#: cp/decl.c:7863 + msgid "parameter may not have variably modified type `%T'" + msgstr "" + + #. [dcl.fct.spec] The explicit specifier shall only be used in + #. declarations of constructors within a class definition. +-#: cp/decl.c:7776 ++#: cp/decl.c:7871 + msgid "only declarations of constructors can be `explicit'" + msgstr "" + +-#: cp/decl.c:7784 ++#: cp/decl.c:7879 + #, c-format + msgid "non-member `%s' cannot be declared `mutable'" + msgstr "" + +-#: cp/decl.c:7789 ++#: cp/decl.c:7884 + #, c-format + msgid "non-object member `%s' cannot be declared `mutable'" + msgstr "" + +-#: cp/decl.c:7795 ++#: cp/decl.c:7890 + #, c-format + msgid "function `%s' cannot be declared `mutable'" + msgstr "funktion \"%s\" kan inte deklareras som \"mutable\"" + +-#: cp/decl.c:7800 ++#: cp/decl.c:7895 + #, c-format + msgid "static `%s' cannot be declared `mutable'" + msgstr "" + +-#: cp/decl.c:7805 ++#: cp/decl.c:7900 + #, c-format + msgid "const `%s' cannot be declared `mutable'" + msgstr "const \"%s\" kan inte deklareras \"mutable\"" + +-#: cp/decl.c:7818 ++#: cp/decl.c:7913 + #, fuzzy + msgid "template-id `%D' used as a declarator" + msgstr "deklaration av \"%s\" döljer global deklaration" + +-#: cp/decl.c:7839 ++#: cp/decl.c:7934 + msgid "ISO C++ forbids nested type `%D' with same name as enclosing class" + msgstr "" + +-#: cp/decl.c:7847 ++#: cp/decl.c:7942 + msgid "%Jtypedef name may not be a nested-name-specifier" + msgstr "" + +-#: cp/decl.c:7893 ++#: cp/decl.c:7988 + #, fuzzy + msgid "%Jinvalid type qualifier for non-member function type" + msgstr "namn saknas på medlemsfunktion" + +-#: cp/decl.c:7956 ++#: cp/decl.c:8051 + #, fuzzy + msgid "type qualifiers specified for friend class declaration" + msgstr "två typer angivna i en tom deklaration" + +-#: cp/decl.c:7961 ++#: cp/decl.c:8056 + msgid "`inline' specified for friend class declaration" + msgstr "" + +-#: cp/decl.c:7969 ++#: cp/decl.c:8064 + #, fuzzy + msgid "template parameters cannot be friends" + msgstr "typen på parameter \"%s\" är inte deklarerad" + +-#: cp/decl.c:7971 ++#: cp/decl.c:8066 + msgid "friend declaration requires class-key, i.e. `friend class %T::%D'" + msgstr "" + +-#: cp/decl.c:7975 ++#: cp/decl.c:8070 + msgid "friend declaration requires class-key, i.e. `friend %#T'" + msgstr "" + +-#: cp/decl.c:7988 ++#: cp/decl.c:8083 + msgid "trying to make class `%T' a friend of global scope" + msgstr "" + +-#: cp/decl.c:7999 ++#: cp/decl.c:8094 + #, fuzzy + msgid "invalid qualifiers on non-member function type" + msgstr "ogiltigt format på versionsnummer" + +-#: cp/decl.c:8018 ++#: cp/decl.c:8113 + #, fuzzy + msgid "abstract declarator `%T' used as declaration" + msgstr "deklaration av \"%s\" döljer global deklaration" + +-#: cp/decl.c:8030 +-msgid "unnamed variable or field declared void" +-msgstr "" +- +-#: cp/decl.c:8039 +-msgid "variable or field declared void" +-msgstr "" +- +-#: cp/decl.c:8049 ++#: cp/decl.c:8139 + msgid "cannot use `::' in parameter declaration" + msgstr "" + + #. Something like struct S { int N::j; }; +-#: cp/decl.c:8094 ++#: cp/decl.c:8184 + #, fuzzy + msgid "invalid use of `::'" + msgstr "ogiltigt användande av \"restrict\"" + +-#: cp/decl.c:8106 ++#: cp/decl.c:8196 + #, fuzzy + msgid "function `%D' cannot be declared friend" + msgstr "funktion \"%s\" kan inte deklareras som \"mutable\"" + +-#: cp/decl.c:8118 ++#: cp/decl.c:8208 + msgid "can't make `%D' into a method -- not in a class" + msgstr "" + +-#: cp/decl.c:8127 ++#: cp/decl.c:8217 + #, fuzzy + msgid "function `%D' declared virtual inside a union" + msgstr "fält \"%s\" deklarerad som en funktion" + +-#: cp/decl.c:8136 ++#: cp/decl.c:8226 + msgid "`%D' cannot be declared virtual, since it is always static" + msgstr "" + +-#: cp/decl.c:8215 ++#: cp/decl.c:8305 + #, fuzzy + msgid "field `%D' has incomplete type" + msgstr "fält \"%s\" har en inkomplett typ" + +-#: cp/decl.c:8217 ++#: cp/decl.c:8307 + #, fuzzy + msgid "name `%T' has incomplete type" + msgstr "parameter \"%s\" har en inkomplett typ" + +-#: cp/decl.c:8226 ++#: cp/decl.c:8316 + #, fuzzy + msgid " in instantiation of template `%T'" + msgstr "%s: Vid instansiering av \"%s\":\n" + +-#: cp/decl.c:8236 ++#: cp/decl.c:8326 + #, c-format + msgid "`%s' is neither function nor member function; cannot be declared friend" + msgstr "" + +-#: cp/decl.c:8247 ++#: cp/decl.c:8337 + msgid "member functions are implicitly friends of their class" + msgstr "" + +@@ -15061,96 +15112,96 @@ + #. the rest of the compiler does not correctly + #. handle the initialization unless the member is + #. static so we make it static below. +-#: cp/decl.c:8287 ++#: cp/decl.c:8377 + #, fuzzy + msgid "ISO C++ forbids initialization of member `%D'" + msgstr "ISO C++ förbjuder initiering av new-uttryck med \"=\"" + +-#: cp/decl.c:8289 ++#: cp/decl.c:8379 + msgid "making `%D' static" + msgstr "" + +-#: cp/decl.c:8345 ++#: cp/decl.c:8435 + #, c-format + msgid "storage class `auto' invalid for function `%s'" + msgstr "" + +-#: cp/decl.c:8347 ++#: cp/decl.c:8437 + #, c-format + msgid "storage class `register' invalid for function `%s'" + msgstr "lagringsklass \"register\" ogiltig för funktion \"%s\"" + +-#: cp/decl.c:8349 ++#: cp/decl.c:8439 + #, fuzzy, c-format + msgid "storage class `__thread' invalid for function `%s'" + msgstr "lagringsklass \"register\" ogiltig för funktion \"%s\"" + +-#: cp/decl.c:8360 ++#: cp/decl.c:8450 + #, c-format + msgid "storage class `static' invalid for function `%s' declared out of global scope" + msgstr "" + +-#: cp/decl.c:8362 ++#: cp/decl.c:8452 + #, c-format + msgid "storage class `inline' invalid for function `%s' declared out of global scope" + msgstr "" + +-#: cp/decl.c:8369 ++#: cp/decl.c:8459 + #, c-format + msgid "virtual non-class function `%s'" + msgstr "" + +-#: cp/decl.c:8400 ++#: cp/decl.c:8490 + #, fuzzy + msgid "cannot declare member function `%D' to have static linkage" + msgstr "kan inte deklarera \"::main\" som static" + + #. FIXME need arm citation +-#: cp/decl.c:8406 ++#: cp/decl.c:8496 + msgid "cannot declare static function inside another function" + msgstr "kan inte deklarera en statisk funktion i en annan funktion" + +-#: cp/decl.c:8434 ++#: cp/decl.c:8524 + msgid "`static' may not be used when defining (as opposed to declaring) a static data member" + msgstr "" + +-#: cp/decl.c:8440 ++#: cp/decl.c:8530 + #, fuzzy + msgid "static member `%D' declared `register'" + msgstr "variabel \"%s\" deklarerad \"inline\"" + +-#: cp/decl.c:8445 ++#: cp/decl.c:8535 + msgid "cannot explicitly declare member `%#D' to have extern linkage" + msgstr "" + +-#: cp/decl.c:8585 ++#: cp/decl.c:8675 + #, fuzzy + msgid "default argument for `%#D' has type `%T'" + msgstr "första argumentet till \"%s\" skall vara \"int\"" + +-#: cp/decl.c:8588 ++#: cp/decl.c:8678 + msgid "default argument for parameter of type `%T' has type `%T'" + msgstr "" + +-#: cp/decl.c:8605 ++#: cp/decl.c:8695 + msgid "default argument `%E' uses local variable `%D'" + msgstr "" + +-#: cp/decl.c:8649 ++#: cp/decl.c:8739 + #, fuzzy, c-format + msgid "invalid string constant `%E'" + msgstr "ogiltig lagringsklass för funktion \"%s\"" + +-#: cp/decl.c:8651 ++#: cp/decl.c:8741 + msgid "invalid integer constant in parameter list, did you forget to give parameter name?" + msgstr "" + +-#: cp/decl.c:8689 ++#: cp/decl.c:8779 + #, fuzzy + msgid "parameter `%D' invalidly declared method type" + msgstr "parameter \"%s\" deklarerad som void" + +-#: cp/decl.c:8713 ++#: cp/decl.c:8803 + msgid "parameter `%D' includes %s to array of unknown bound `%T'" + msgstr "" + +@@ -15169,100 +15220,100 @@ + #. or implicitly defined), there's no need to worry about their + #. existence. Theoretically, they should never even be + #. instantiated, but that's hard to forestall. +-#: cp/decl.c:8872 ++#: cp/decl.c:8962 + msgid "invalid constructor; you probably meant `%T (const %T&)'" + msgstr "" + +-#: cp/decl.c:9000 ++#: cp/decl.c:9090 + #, fuzzy + msgid "`%D' must be a nonstatic member function" + msgstr "\"%s\" är normalt en icke-statisk function" + +-#: cp/decl.c:9006 ++#: cp/decl.c:9096 + msgid "`%D' must be either a non-static member function or a non-member function" + msgstr "" + +-#: cp/decl.c:9023 ++#: cp/decl.c:9113 + msgid "`%D' must have an argument of class or enumerated type" + msgstr "" + +-#: cp/decl.c:9058 ++#: cp/decl.c:9148 + #, c-format + msgid "conversion to %s%s will never use a type conversion operator" + msgstr "" + + #. 13.4.0.3 +-#: cp/decl.c:9065 ++#: cp/decl.c:9155 + msgid "ISO C++ prohibits overloading operator ?:" + msgstr "" + +-#: cp/decl.c:9115 ++#: cp/decl.c:9205 + msgid "postfix `%D' must take `int' as its argument" + msgstr "" + +-#: cp/decl.c:9119 ++#: cp/decl.c:9209 + msgid "postfix `%D' must take `int' as its second argument" + msgstr "" + +-#: cp/decl.c:9126 ++#: cp/decl.c:9216 + #, fuzzy + msgid "`%D' must take either zero or one argument" + msgstr "\"%s\" tar bara noll eller två argument" + +-#: cp/decl.c:9128 ++#: cp/decl.c:9218 + #, fuzzy + msgid "`%D' must take either one or two arguments" + msgstr "\"%s\" tar bara noll eller två argument" + +-#: cp/decl.c:9149 ++#: cp/decl.c:9239 + msgid "prefix `%D' should return `%T'" + msgstr "" + +-#: cp/decl.c:9155 ++#: cp/decl.c:9245 + msgid "postfix `%D' should return `%T'" + msgstr "" + +-#: cp/decl.c:9164 ++#: cp/decl.c:9254 + msgid "`%D' must take `void'" + msgstr "" + +-#: cp/decl.c:9166 cp/decl.c:9174 ++#: cp/decl.c:9256 cp/decl.c:9264 + #, fuzzy + msgid "`%D' must take exactly one argument" + msgstr "\"%s\" tar bara noll eller två argument" + +-#: cp/decl.c:9176 ++#: cp/decl.c:9266 + #, fuzzy + msgid "`%D' must take exactly two arguments" + msgstr "\"%s\" tar bara noll eller två argument" + +-#: cp/decl.c:9184 ++#: cp/decl.c:9274 + msgid "user-defined `%D' always evaluates both arguments" + msgstr "" + +-#: cp/decl.c:9198 ++#: cp/decl.c:9288 + msgid "`%D' should return by value" + msgstr "" + +-#: cp/decl.c:9210 cp/decl.c:9213 ++#: cp/decl.c:9300 cp/decl.c:9303 + msgid "`%D' cannot have default arguments" + msgstr "" + +-#: cp/decl.c:9273 ++#: cp/decl.c:9363 + msgid "using typedef-name `%D' after `%s'" + msgstr "" + +-#: cp/decl.c:9279 ++#: cp/decl.c:9369 + #, fuzzy + msgid "using template type parameter `%T' after `%s'" + msgstr "flera parametrar med namn \"%s\"" + +-#: cp/decl.c:9287 ++#: cp/decl.c:9377 + #, fuzzy + msgid "`%T' referred to as `%s'" + msgstr "kunde inte hitta klassen \"%s\"" + +-#: cp/decl.c:9293 ++#: cp/decl.c:9383 + msgid "`%T' referred to as enum" + msgstr "" + +@@ -15273,52 +15324,52 @@ + #. void f(class C); // No template header here + #. + #. then the required template argument is missing. +-#: cp/decl.c:9308 ++#: cp/decl.c:9398 + #, fuzzy + msgid "template argument required for `%s %T'" + msgstr "flera parametrar med namn \"%s\"" + +-#: cp/decl.c:9453 ++#: cp/decl.c:9543 + #, fuzzy + msgid "use of enum `%#D' without previous declaration" + msgstr "sektion \"%s\" står i konflikt med tidigare deklaration" + +-#: cp/decl.c:9471 ++#: cp/decl.c:9561 + #, fuzzy + msgid "redeclaration of `%T' as a non-template" + msgstr "deklaration av \"%s\" som ett fält med funktioner" + +-#: cp/decl.c:9517 ++#: cp/decl.c:9607 + msgid "derived union `%T' invalid" + msgstr "" + +-#: cp/decl.c:9570 ++#: cp/decl.c:9660 + msgid "base type `%T' fails to be a struct or class type" + msgstr "" + +-#: cp/decl.c:9578 ++#: cp/decl.c:9668 + msgid "recursive type `%T' undefined" + msgstr "" + +-#: cp/decl.c:9580 ++#: cp/decl.c:9670 + #, fuzzy + msgid "duplicate base type `%T' invalid" + msgstr "upprepat case-värde" + +-#: cp/decl.c:9658 ++#: cp/decl.c:9748 + msgid "Java class '%T' cannot have multiple bases" + msgstr "" + +-#: cp/decl.c:9660 ++#: cp/decl.c:9750 + msgid "Java class '%T' cannot have virtual bases" + msgstr "" + +-#: cp/decl.c:9700 ++#: cp/decl.c:9790 + #, fuzzy + msgid "multiple definition of `%#T'" + msgstr "omdefiniering av \"%s\"" + +-#: cp/decl.c:9701 ++#: cp/decl.c:9791 + #, fuzzy + msgid "%Jprevious definition here" + msgstr "\"%s\" definierades tidigare här" +@@ -15327,53 +15378,53 @@ + #. + #. IF no integral type can represent all the enumerator values, the + #. enumeration is ill-formed. +-#: cp/decl.c:9836 ++#: cp/decl.c:9926 + msgid "no integral type can represent all of the enumerator values for `%T'" + msgstr "" + +-#: cp/decl.c:9926 ++#: cp/decl.c:10023 + #, fuzzy + msgid "enumerator value for `%D' not integer constant" + msgstr "uppräkningsvärde för \"%s\" är inte en heltalskonstant" + +-#: cp/decl.c:9946 ++#: cp/decl.c:10043 + #, fuzzy + msgid "overflow in enumeration values at `%D'" + msgstr "överspill i uppräkningsvärden" + +-#: cp/decl.c:10015 ++#: cp/decl.c:10112 + #, fuzzy + msgid "return type `%#T' is incomplete" + msgstr "returtypen är en inkomplett typ" + +-#: cp/decl.c:10133 ++#: cp/decl.c:10230 + msgid "return type for `main' changed to `int'" + msgstr "returtypen för \"main\" ändrad till \"int\"" + +-#: cp/decl.c:10162 ++#: cp/decl.c:10259 + #, fuzzy + msgid "`%D' implicitly declared before its definition" + msgstr "\"%s\" deklarerad inline efter sin definition" + +-#: cp/decl.c:10184 cp/typeck.c:6071 ++#: cp/decl.c:10281 cp/typeck.c:6092 + msgid "`operator=' should return a reference to `*this'" + msgstr "" + +-#: cp/decl.c:10453 ++#: cp/decl.c:10550 + #, fuzzy + msgid "parameter `%D' declared void" + msgstr "parameter \"%s\" deklarerad som void" + +-#: cp/decl.c:10919 ++#: cp/decl.c:11016 + #, fuzzy + msgid "invalid member function declaration" + msgstr "dubbel deklaration av etikett \"%s\"" + +-#: cp/decl.c:10936 ++#: cp/decl.c:11033 + msgid "`%D' is already defined in class `%T'" + msgstr "" + +-#: cp/decl.c:11149 ++#: cp/decl.c:11246 + #, fuzzy + msgid "static member function `%#D' declared with type qualifiers" + msgstr "nästlad funktion \"%s\" är deklarerad \"extern\"" +@@ -15425,7 +15476,7 @@ + msgid "invalid use of `virtual' in template declaration of `%#D'" + msgstr "tidigare implicit deklaration av \"%s\"" + +-#: cp/decl2.c:541 cp/pt.c:2834 ++#: cp/decl2.c:541 cp/pt.c:2878 + #, fuzzy + msgid "template declaration of `%#D'" + msgstr "omdeklaration av \"%s\"" +@@ -15501,47 +15552,47 @@ + msgid "anonymous struct not inside named type" + msgstr "" + +-#: cp/decl2.c:1218 ++#: cp/decl2.c:1224 + msgid "namespace-scope anonymous aggregates must be static" + msgstr "" + +-#: cp/decl2.c:1225 ++#: cp/decl2.c:1231 + #, fuzzy + msgid "anonymous union with no members" + msgstr "anonym union deklarerad i parameterlista" + +-#: cp/decl2.c:1259 ++#: cp/decl2.c:1265 + #, fuzzy + msgid "`operator new' must return type `%T'" + msgstr "\"operator new\" måste returnera typ \"void *\"" + +-#: cp/decl2.c:1267 ++#: cp/decl2.c:1273 + #, fuzzy + msgid "`operator new' takes type `size_t' (`%T') as first parameter" + msgstr "\"operator new\" tar parameter av typ \"size_t\"" + +-#: cp/decl2.c:1293 ++#: cp/decl2.c:1299 + #, fuzzy + msgid "`operator delete' must return type `%T'" + msgstr "\"operator new\" måste returnera typ \"void *\"" + +-#: cp/decl2.c:1301 ++#: cp/decl2.c:1307 + #, fuzzy + msgid "`operator delete' takes type `%T' as first parameter" + msgstr "\"operator new\" tar parameter av typ \"size_t\"" + +-#: cp/decl2.c:2810 ++#: cp/decl2.c:2816 + #, fuzzy + msgid "inline function `%D' used but never defined" + msgstr "\"%s\" är använd men inte definierad" + +-#: cp/decl2.c:2956 ++#: cp/decl2.c:2962 + #, fuzzy + msgid "default argument missing for parameter %P of `%+#D'" + msgstr "parameternamn saknas i parameterlista" + + #. damn ICE suppression +-#: cp/error.c:2387 ++#: cp/error.c:2385 + #, c-format + msgid "unexpected letter `%c' in locate_error\n" + msgstr "" +@@ -15568,7 +15619,7 @@ + msgid "throwing NULL, which has integral, not pointer type" + msgstr "" + +-#: cp/except.c:598 cp/init.c:2038 ++#: cp/except.c:598 cp/init.c:2047 + msgid "`%D' should never be overloaded" + msgstr "" + +@@ -15654,7 +15705,7 @@ + msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning" + msgstr "" + +-#: cp/g++spec.c:229 java/jvspec.c:415 ++#: cp/g++spec.c:232 java/jvspec.c:415 + #, c-format + msgid "argument to `%s' missing\n" + msgstr "argument till \"%s\" saknas\n" +@@ -15790,65 +15841,65 @@ + msgid "incomplete type `%T' does not have member `%D'" + msgstr "" + +-#: cp/init.c:1459 ++#: cp/init.c:1460 + #, fuzzy + msgid "`%D' is not a member of type `%T'" + msgstr "%s har ingen medlem med namn \"%s\"" + +-#: cp/init.c:1478 ++#: cp/init.c:1487 + #, fuzzy + msgid "invalid pointer to bit-field `%D'" + msgstr "negativ storlek i bitfält \"%s\"" + +-#: cp/init.c:1580 ++#: cp/init.c:1589 + #, fuzzy + msgid "invalid use of non-static member function `%D'" + msgstr "ogiltigt användande av \"restrict\"" + +-#: cp/init.c:1586 cp/semantics.c:1236 ++#: cp/init.c:1595 cp/semantics.c:1236 + #, fuzzy + msgid "invalid use of non-static data member `%D'" + msgstr "ogiltigt användande av \"restrict\"" + +-#: cp/init.c:1725 ++#: cp/init.c:1734 + msgid "new of array type fails to specify size" + msgstr "" + +-#: cp/init.c:1736 ++#: cp/init.c:1745 + msgid "size in array new must have integral type" + msgstr "" + +-#: cp/init.c:1742 ++#: cp/init.c:1751 + msgid "zero size array reserves no space" + msgstr "" + +-#: cp/init.c:1809 ++#: cp/init.c:1818 + msgid "new cannot be applied to a reference type" + msgstr "" + +-#: cp/init.c:1815 ++#: cp/init.c:1824 + msgid "new cannot be applied to a function type" + msgstr "" + +-#: cp/init.c:1861 ++#: cp/init.c:1870 + msgid "call to Java constructor, while `jclass' undefined" + msgstr "" + +-#: cp/init.c:1877 ++#: cp/init.c:1886 + #, fuzzy + msgid "can't find class$" + msgstr "Kan inte hitta class$" + +-#: cp/init.c:2004 ++#: cp/init.c:2013 + msgid "invalid type `void' for new" + msgstr "ogiltig typ \"void\" för new" + +-#: cp/init.c:2014 ++#: cp/init.c:2023 + #, fuzzy + msgid "uninitialized const in `new' of `%#T'" + msgstr "initierare misslyckas med att bestämma storlek på \"%s\"" + +-#: cp/init.c:2033 ++#: cp/init.c:2042 + #, c-format + msgid "call to Java constructor with `%s' undefined" + msgstr "" +@@ -15856,41 +15907,41 @@ + #. See PR 15967. This should never happen (and it is + #. fixed correctly in mainline), but on the release branch + #. we prefer this less-intrusive approacch. +-#: cp/init.c:2077 ++#: cp/init.c:2086 + msgid "no suitable or ambiguous `%D' found in class `%T'" + msgstr "" + +-#: cp/init.c:2083 ++#: cp/init.c:2092 + #, fuzzy + msgid "request for member `%D' is ambiguous" + msgstr "%s: flaggan \"%s\" är tvetydig\n" + +-#: cp/init.c:2203 ++#: cp/init.c:2212 + #, fuzzy + msgid "ISO C++ forbids initialization in array new" + msgstr "ISO C++ förbjuder initiering av new-uttryck med \"=\"" + +-#: cp/init.c:2677 ++#: cp/init.c:2686 + msgid "initializer ends prematurely" + msgstr "" + +-#: cp/init.c:2734 ++#: cp/init.c:2743 + msgid "cannot initialize multi-dimensional array with initializer" + msgstr "" + +-#: cp/init.c:2895 ++#: cp/init.c:2904 + msgid "possible problem detected in invocation of delete operator:" + msgstr "" + +-#: cp/init.c:2898 ++#: cp/init.c:2907 + msgid "neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined." + msgstr "" + +-#: cp/init.c:2919 ++#: cp/init.c:2928 + msgid "unknown array size in delete" + msgstr "" + +-#: cp/init.c:3184 ++#: cp/init.c:3193 + msgid "type to vector delete is neither pointer or array type" + msgstr "" + +@@ -15959,15 +16010,15 @@ + msgid "(if you use `-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)" + msgstr "" + +-#: cp/mangle.c:2037 ++#: cp/mangle.c:2050 + msgid "call_expr cannot be mangled due to a defect in the C++ ABI" + msgstr "" + +-#: cp/mangle.c:2090 ++#: cp/mangle.c:2103 + msgid "omitted middle operand to `?:' operand cannot be mangled" + msgstr "" + +-#: cp/mangle.c:2389 ++#: cp/mangle.c:2402 + msgid "the mangled name of `%D' will change in a future version of GCC" + msgstr "" + +@@ -16126,7 +16177,7 @@ + + #. It's a nested name with template parameter dependent scope. + #. This can only be using-declaration for class member. +-#: cp/name-lookup.c:2126 cp/name-lookup.c:2140 cp/name-lookup.c:3380 ++#: cp/name-lookup.c:2126 cp/name-lookup.c:2140 cp/name-lookup.c:3362 + msgid "`%T' is not a namespace" + msgstr "" + +@@ -16163,97 +16214,97 @@ + msgid "using-declaration cannot name destructor" + msgstr "multiple deklaration av metod \"%s\"" + +-#: cp/name-lookup.c:3005 ++#: cp/name-lookup.c:2984 + #, fuzzy + msgid "declaration of `%D' not in a namespace surrounding `%D'" + msgstr "deklaration av \"%s\" som ett fält med funktioner" + +-#: cp/name-lookup.c:3045 ++#: cp/name-lookup.c:3024 + msgid "`%D' should have been declared inside `%D'" + msgstr "" + +-#: cp/name-lookup.c:3109 ++#: cp/name-lookup.c:3088 + msgid "namespace alias `%D' not allowed here, assuming `%D'" + msgstr "" + + #. The parser did not find it, so it's not there. +-#: cp/name-lookup.c:3224 ++#: cp/name-lookup.c:3203 + #, fuzzy + msgid "unknown namespace `%D'" + msgstr "okänt #pragma namespace %s" + +-#: cp/name-lookup.c:3374 ++#: cp/name-lookup.c:3356 + #, fuzzy + msgid "namespace `%T' undeclared" + msgstr "parameter \"%s\" deklarerad som void" + +-#: cp/name-lookup.c:3407 ++#: cp/name-lookup.c:3389 + msgid "strong using only meaningful at namespace scope" + msgstr "" + +-#: cp/name-lookup.c:3414 ++#: cp/name-lookup.c:3396 + #, fuzzy + msgid "`%D' attribute directive ignored" + msgstr "attributet \"%s\" ignorerat" + +-#: cp/name-lookup.c:3547 ++#: cp/name-lookup.c:3529 + #, fuzzy + msgid "use of `%D' is ambiguous" + msgstr "%s: flaggan \"%s\" är tvetydig\n" + +-#: cp/name-lookup.c:3548 ++#: cp/name-lookup.c:3530 + msgid " first declared as `%#D' here" + msgstr "" + +-#: cp/name-lookup.c:3551 ++#: cp/name-lookup.c:3533 + msgid " also declared as `%#D' here" + msgstr "" + +-#: cp/name-lookup.c:3566 ++#: cp/name-lookup.c:3548 + msgid "`%D' denotes an ambiguous type" + msgstr "" + +-#: cp/name-lookup.c:3567 ++#: cp/name-lookup.c:3549 + #, fuzzy + msgid "%J first type here" + msgstr " från här" + +-#: cp/name-lookup.c:3568 ++#: cp/name-lookup.c:3550 + #, fuzzy + msgid "%J other type here" + msgstr " från här" + + #. This happens for A::B where B is a template, and there are no + #. template arguments. +-#: cp/name-lookup.c:3633 cp/typeck.c:1792 ++#: cp/name-lookup.c:3615 cp/typeck.c:1792 + #, fuzzy + msgid "invalid use of `%D'" + msgstr "ogiltigt användande av \"restrict\"" + +-#: cp/name-lookup.c:3674 ++#: cp/name-lookup.c:3656 + #, fuzzy + msgid "`%D::%D' is not a template" + msgstr "användning ab `%s' i mall" + +-#: cp/name-lookup.c:3691 ++#: cp/name-lookup.c:3673 + msgid "`%D' undeclared in namespace `%D'" + msgstr "" + +-#: cp/name-lookup.c:4153 ++#: cp/name-lookup.c:4135 + #, fuzzy + msgid "`%D' is not a function," + msgstr "\"%s\" är vanligtvis en funktion" + +-#: cp/name-lookup.c:4154 ++#: cp/name-lookup.c:4136 + #, fuzzy + msgid " conflict with `%D'" + msgstr "\"%s\" ignorerad, i konflikt med \"-g%s\"" + +-#: cp/name-lookup.c:4911 ++#: cp/name-lookup.c:4893 + msgid "XXX entering pop_everything ()\n" + msgstr "" + +-#: cp/name-lookup.c:4920 ++#: cp/name-lookup.c:4902 + msgid "XXX leaving pop_everything ()\n" + msgstr "" + +@@ -16267,7 +16318,7 @@ + msgid "`%D::%D' has not been declared" + msgstr "const \"%s\" kan inte deklareras \"mutable\"" + +-#: cp/parser.c:1809 cp/semantics.c:2308 ++#: cp/parser.c:1809 cp/semantics.c:2305 + #, fuzzy + msgid "`::%D' has not been declared" + msgstr "const \"%s\" kan inte deklareras \"mutable\"" +@@ -16294,7 +16345,7 @@ + msgid "new types may not be defined in a return type" + msgstr "" + +-#: cp/parser.c:1888 cp/pt.c:4196 ++#: cp/parser.c:1888 cp/pt.c:4238 + #, fuzzy + msgid "`%T' is not a template" + msgstr "användning ab `%s' i mall" +@@ -16347,106 +16398,106 @@ + msgid "typedef-name `%D' used as destructor declarator" + msgstr "deklaration av \"%s\" döljer global deklaration" + +-#: cp/parser.c:3638 ++#: cp/parser.c:3648 + #, fuzzy + msgid "ISO C++ forbids compound-literals" + msgstr "ISO C++ förbjuder beräknade goto" + +-#: cp/parser.c:4461 ++#: cp/parser.c:4498 + msgid "array bound forbidden after parenthesized type-id" + msgstr "" + +-#: cp/parser.c:4462 ++#: cp/parser.c:4499 + msgid "try removing the parentheses around the type-id" + msgstr "" + +-#: cp/parser.c:4624 ++#: cp/parser.c:4661 + msgid "expression in new-declarator must have integral or enumeration type" + msgstr "" + +-#: cp/parser.c:4805 ++#: cp/parser.c:4842 + msgid "use of old-style cast" + msgstr "användning av gammaldags typkonvertering" + +-#: cp/parser.c:5550 ++#: cp/parser.c:5587 + #, fuzzy, c-format + msgid "case label `%E' not within a switch statement" + msgstr "case-etikett är inte i en switch-sats" + +-#: cp/parser.c:6092 ++#: cp/parser.c:6130 + msgid "ISO C++ forbids computed gotos" + msgstr "ISO C++ förbjuder beräknade goto" + +-#: cp/parser.c:6212 ++#: cp/parser.c:6250 + msgid "extra `;'" + msgstr "" + +-#: cp/parser.c:6507 ++#: cp/parser.c:6545 + msgid "mixing declarations and function-definitions is forbidden" + msgstr "" + +-#: cp/parser.c:6645 ++#: cp/parser.c:6683 + #, fuzzy + msgid "duplicate `friend'" + msgstr "flera \"%s\"" + +-#: cp/parser.c:6794 ++#: cp/parser.c:6832 + #, fuzzy + msgid "class definition may not be declared a friend" + msgstr "funktion \"%s\" kan inte deklareras som \"mutable\"" + +-#: cp/parser.c:7109 ++#: cp/parser.c:7147 + msgid "only constructors take base initializers" + msgstr "" + +-#: cp/parser.c:7160 ++#: cp/parser.c:7198 + msgid "anachronistic old-style base class initializer" + msgstr "" + +-#: cp/parser.c:7201 ++#: cp/parser.c:7239 + msgid "keyword `typename' not allowed in this context (a qualified member initializer is implicitly a type)" + msgstr "" + + #. Warn that we do not support `export'. +-#: cp/parser.c:7563 ++#: cp/parser.c:7601 + #, fuzzy + msgid "keyword `export' not implemented, and will be ignored" + msgstr "nyckelordet \"export\" är inte implementerat och kommer ignorerads" + + #. Otherwise, emit an error about the invalid digraph, but continue + #. parsing because we got our argument list. +-#: cp/parser.c:7923 ++#: cp/parser.c:7961 + #, fuzzy + msgid "`<::' cannot begin a template-argument list" + msgstr "ogiltigt typargument" + +-#: cp/parser.c:7924 ++#: cp/parser.c:7962 + msgid "`<:' is an alternate spelling for `['. Insert whitespace between `<' and `::'" + msgstr "" + +-#: cp/parser.c:7931 ++#: cp/parser.c:7969 + msgid "(if you use `-fpermissive' G++ will accept your code)" + msgstr "" + + #. Explain what went wrong. +-#: cp/parser.c:8106 ++#: cp/parser.c:8145 + #, fuzzy + msgid "non-template `%D' used as template" + msgstr "deklaration av \"%s\" döljer global deklaration" + +-#: cp/parser.c:8107 ++#: cp/parser.c:8146 + msgid "use `%T::template %D' to indicate that it is a template" + msgstr "" + +-#: cp/parser.c:9058 ++#: cp/parser.c:9102 + msgid "using `typename' outside of template" + msgstr "" + +-#: cp/parser.c:9180 ++#: cp/parser.c:9224 + msgid "expected type-name" + msgstr "" + +-#: cp/parser.c:9239 ++#: cp/parser.c:9283 + #, fuzzy + msgid "type attributes are honored only at type definition" + msgstr "attributet \"%s\" fungerar bara på funktioner" +@@ -16454,88 +16505,88 @@ + #. [namespace.udecl] + #. + #. A using declaration shall not name a template-id. +-#: cp/parser.c:9622 ++#: cp/parser.c:9666 + #, fuzzy + msgid "a template-id may not appear in a using-declaration" + msgstr "\"%s\" är inte i början av deklarationen" + +-#: cp/parser.c:9949 ++#: cp/parser.c:9986 + msgid "an asm-specification is not allowed on a function-definition" + msgstr "" + +-#: cp/parser.c:9951 ++#: cp/parser.c:9988 + #, fuzzy + msgid "attributes are not allowed on a function-definition" + msgstr "attributet \"%s\" fungerar bara på funktioner" + +-#: cp/parser.c:10084 ++#: cp/parser.c:10121 + msgid "attributes after parenthesized initializer ignored" + msgstr "" + +-#: cp/parser.c:10540 ++#: cp/parser.c:10591 + #, fuzzy + msgid "`%T::%D' is not a type" + msgstr "användning ab `%s' i mall" + +-#: cp/parser.c:11288 ++#: cp/parser.c:11341 + #, fuzzy + msgid "file ends in default argument" + msgstr "ogiltigt typargument till \"%s\"" + +-#: cp/parser.c:11344 ++#: cp/parser.c:11397 + msgid "deprecated use of default argument for parameter of non-function" + msgstr "" + +-#: cp/parser.c:11347 ++#: cp/parser.c:11400 + #, fuzzy + msgid "default arguments are only permitted for function parameters" + msgstr "metoder kan inte konverteras till funktionspekare" + +-#: cp/parser.c:12078 ++#: cp/parser.c:12166 + #, fuzzy + msgid "declaration of `%D' in `%D' which does not enclose `%D'" + msgstr "deklaration av \"%s\" som ett fält med funktioner" + +-#: cp/parser.c:12091 ++#: cp/parser.c:12179 + msgid "extra qualification ignored" + msgstr "" + +-#: cp/parser.c:12102 ++#: cp/parser.c:12190 + #, fuzzy + msgid "an explicit specialization must be preceded by 'template <>'" + msgstr "implicit deklaration av funktion \"%s\"" + +-#: cp/parser.c:12385 ++#: cp/parser.c:12473 + msgid "extra semicolon" + msgstr "" + +-#: cp/parser.c:12403 ++#: cp/parser.c:12491 + msgid "a class-key must be used when declaring a friend" + msgstr "" + +-#: cp/parser.c:12434 ++#: cp/parser.c:12522 + #, fuzzy + msgid "friend declaration does not name a class or function" + msgstr "inbyggd funktion \"%s\" deklarerad som icke-funktion" + +-#: cp/parser.c:12605 ++#: cp/parser.c:12694 + msgid "pure-specifier on function-definition" + msgstr "" + +-#: cp/parser.c:12878 ++#: cp/parser.c:12967 + msgid "keyword `typename' not allowed outside of templates" + msgstr "" + +-#: cp/parser.c:12880 ++#: cp/parser.c:12969 + msgid "keyword `typename' not allowed in this context (the base class is implicitly a type)" + msgstr "" + +-#: cp/parser.c:13700 ++#: cp/parser.c:13790 + #, fuzzy + msgid "reference to `%D' is ambiguous" + msgstr "%s: flaggan \"%s\" är tvetydig\n" + +-#: cp/parser.c:13874 ++#: cp/parser.c:13964 + #, fuzzy + msgid "too few template-parameter-lists" + msgstr "två eller fler datatyper i deklaration av \"%s\"" +@@ -16544,48 +16595,48 @@ + #. something like: + #. + #. template template void S::f(); +-#: cp/parser.c:13889 ++#: cp/parser.c:13979 + #, fuzzy + msgid "too many template-parameter-lists" + msgstr "flera lagringsklasser i deklaration av \"%s\"" + + #. If begin_function_definition didn't like the definition, skip + #. the entire function. +-#: cp/parser.c:14185 ++#: cp/parser.c:14275 + #, fuzzy + msgid "invalid function declaration" + msgstr "ogiltig #indent" + + #. Issue an error message. +-#: cp/parser.c:14222 ++#: cp/parser.c:14312 + #, fuzzy + msgid "named return values are no longer supported" + msgstr "--driver stödjs inte längre" + +-#: cp/parser.c:14561 ++#: cp/parser.c:14651 + msgid "`>>' should be `> >' within a nested template argument list" + msgstr "" + + #. If this is not a nested template argument list, the '>>' is + #. a typo for '>'. Emit an error message and continue. +-#: cp/parser.c:14569 ++#: cp/parser.c:14659 + msgid "spurious `>>', use `>' to terminate a template argument list" + msgstr "" + +-#: cp/parser.c:14574 ++#: cp/parser.c:14664 + msgid "missing `>' to terminate the template argument list" + msgstr "" + +-#: cp/parser.c:15062 ++#: cp/parser.c:15149 + msgid "`%s' tag used in naming `%#T'" + msgstr "" + +-#: cp/parser.c:15082 ++#: cp/parser.c:15169 + #, fuzzy + msgid "%D redeclared with different access" + msgstr "\"%s\" omdeklarerad som en annan sorts symbol" + +-#: cp/parser.c:15099 ++#: cp/parser.c:15186 + msgid "`template' (as a disambiguator) is only allowed within templates" + msgstr "" + +@@ -16606,89 +16657,94 @@ + msgid "enclosing class templates are not explicitly specialized" + msgstr "" + +-#: cp/pt.c:739 cp/pt.c:780 +-msgid "specializing `%#T' in different namespace" +-msgstr "" ++#: cp/pt.c:733 ++#, fuzzy ++msgid "specialization of `%D' in different namespace" ++msgstr "deklaration av \"%s\" är \"extern\" och initierad" + +-#: cp/pt.c:740 cp/pt.c:781 ++#: cp/pt.c:734 cp/pt.c:803 + #, fuzzy + msgid " from definition of `%#D'" + msgstr "omdefiniering av \"%s\"" + +-#: cp/pt.c:748 ++#: cp/pt.c:770 + #, fuzzy + msgid "specialization of `%T' after instantiation" + msgstr "deklaration av \"%s\" är \"extern\" och initierad" + +-#: cp/pt.c:795 ++#: cp/pt.c:802 ++msgid "specializing `%#T' in different namespace" ++msgstr "" ++ ++#: cp/pt.c:817 + #, fuzzy + msgid "specialization `%T' after instantiation `%T'" + msgstr "deklaration av \"%s\" är \"extern\" och initierad" + +-#: cp/pt.c:807 ++#: cp/pt.c:829 + #, fuzzy + msgid "explicit specialization of non-template `%T'" + msgstr "implicit deklaration av funktion \"%s\"" + +-#: cp/pt.c:1067 ++#: cp/pt.c:1089 + msgid "specialization of %D after instantiation" + msgstr "" + +-#: cp/pt.c:1192 ++#: cp/pt.c:1220 + #, fuzzy + msgid "%s %+#D" + msgstr "%s: %s" + +-#: cp/pt.c:1241 ++#: cp/pt.c:1269 + #, fuzzy + msgid "`%D' is not a function template" + msgstr "typkonvertering matchar inte en funktionstyp" + +-#: cp/pt.c:1389 ++#: cp/pt.c:1417 + msgid "template-id `%D' for `%+D' does not match any template declaration" + msgstr "" + +-#: cp/pt.c:1397 ++#: cp/pt.c:1425 + msgid "ambiguous template specialization `%D' for `%+D'" + msgstr "" + + #. This case handles bogus declarations like template <> + #. template void f(); +-#: cp/pt.c:1620 cp/pt.c:1694 ++#: cp/pt.c:1648 cp/pt.c:1722 + msgid "template-id `%D' in declaration of primary template" + msgstr "" + +-#: cp/pt.c:1633 ++#: cp/pt.c:1661 + msgid "template parameter list used in explicit instantiation" + msgstr "" + +-#: cp/pt.c:1639 ++#: cp/pt.c:1667 + msgid "definition provided for explicit instantiation" + msgstr "" + +-#: cp/pt.c:1645 ++#: cp/pt.c:1673 + #, fuzzy + msgid "too many template parameter lists in declaration of `%D'" + msgstr "flera lagringsklasser i deklaration av \"%s\"" + +-#: cp/pt.c:1661 ++#: cp/pt.c:1689 + #, fuzzy + msgid "too few template parameter lists in declaration of `%D'" + msgstr "två eller fler datatyper i deklaration av \"%s\"" + +-#: cp/pt.c:1678 ++#: cp/pt.c:1706 + msgid "explicit specialization not preceded by `template <>'" + msgstr "" + +-#: cp/pt.c:1691 ++#: cp/pt.c:1719 + msgid "partial specialization `%D' of function template" + msgstr "" + +-#: cp/pt.c:1723 ++#: cp/pt.c:1751 + msgid "default argument specified in explicit specialization" + msgstr "" + +-#: cp/pt.c:1727 ++#: cp/pt.c:1755 + msgid "template specialization with C linkage" + msgstr "" + +@@ -16700,116 +16756,126 @@ + #. program is ill-formed. + #. + #. Similar language is found in [temp.explicit]. +-#: cp/pt.c:1811 ++#: cp/pt.c:1839 + msgid "specialization of implicitly-declared special member function" + msgstr "" + +-#: cp/pt.c:1855 ++#: cp/pt.c:1883 + #, fuzzy + msgid "no member function `%D' declared in `%T'" + msgstr "nästlad funktion \"%s\" är deklarerad \"extern\"" + + #. There are two many template parameter lists. +-#: cp/pt.c:2005 ++#: cp/pt.c:2033 + #, fuzzy + msgid "too many template parameter lists in declaration of `%T'" + msgstr "flera lagringsklasser i deklaration av \"%s\"" + +-#: cp/pt.c:2098 ++#: cp/pt.c:2126 + msgid " shadows template parm `%#D'" + msgstr "" + +-#: cp/pt.c:2495 ++#: cp/pt.c:2523 + msgid "template parameters not used in partial specialization:" + msgstr "" + +-#: cp/pt.c:2499 ++#: cp/pt.c:2527 + msgid " `%D'" + msgstr "" + +-#: cp/pt.c:2511 ++#: cp/pt.c:2539 + msgid "partial specialization `%T' does not specialize any template arguments" + msgstr "" + +-#: cp/pt.c:2536 ++#: cp/pt.c:2564 + #, c-format + msgid "template argument `%E' involves template parameter(s)" + msgstr "" + +-#: cp/pt.c:2580 ++#: cp/pt.c:2608 + msgid "type `%T' of template argument `%E' depends on template parameter(s)" + msgstr "" + +-#: cp/pt.c:2665 ++#: cp/pt.c:2693 + #, fuzzy + msgid "no default argument for `%D'" + msgstr "ogiltigt typargument till \"%s\"" + +-#: cp/pt.c:2814 ++#: cp/pt.c:2842 + msgid "template with C linkage" + msgstr "" + +-#: cp/pt.c:2817 ++#: cp/pt.c:2845 + msgid "template class without a name" + msgstr "" + + #. [temp.mem] + #. + #. A destructor shall not be a member template. +-#: cp/pt.c:2824 ++#: cp/pt.c:2853 + #, fuzzy + msgid "destructor `%D' declared as member template" + msgstr "\"%s %s\" deklarerad inuti parameterlista" + +-#: cp/pt.c:2904 ++#. [basic.stc.dynamic.allocation] ++#. ++#. An allocation function can be a function ++#. template. ... Template allocation functions shall ++#. have two or more parameters. ++#: cp/pt.c:2868 ++#, fuzzy ++msgid "invalid template declaration of `%D'" ++msgstr "dubbel deklaration av etikett \"%s\"" ++ ++#: cp/pt.c:2948 + msgid "`%D' does not declare a template type" + msgstr "" + +-#: cp/pt.c:2910 ++#: cp/pt.c:2954 + #, fuzzy + msgid "template definition of non-template `%#D'" + msgstr "upprepad definition av klassmetod \"%s\"." + +-#: cp/pt.c:2951 ++#: cp/pt.c:2995 + msgid "expected %d levels of template parms for `%#D', got %d" + msgstr "" + +-#: cp/pt.c:2963 ++#: cp/pt.c:3007 + #, fuzzy + msgid "got %d template parameters for `%#D'" + msgstr "flera parametrar med namn \"%s\"" + +-#: cp/pt.c:2966 ++#: cp/pt.c:3010 + #, fuzzy + msgid "got %d template parameters for `%#T'" + msgstr "flera parametrar med namn \"%s\"" + +-#: cp/pt.c:2968 ++#: cp/pt.c:3012 + #, c-format + msgid " but %d required" + msgstr "" + +-#: cp/pt.c:3053 ++#: cp/pt.c:3097 + #, fuzzy + msgid "`%T' is not a template type" + msgstr "\"%s\" har en inkomplett typ" + +-#: cp/pt.c:3069 ++#: cp/pt.c:3113 + #, fuzzy + msgid "previous declaration `%D'" + msgstr "tidigare deklaration av \"%s\"" + +-#: cp/pt.c:3070 ++#: cp/pt.c:3114 + #, fuzzy, c-format + msgid "used %d template parameter%s instead of %d" + msgstr "flera parametrar med namn \"%s\"" + +-#: cp/pt.c:3086 ++#: cp/pt.c:3130 + #, fuzzy + msgid "template parameter `%#D'" + msgstr "oanvänd parameter \"%s\"" + +-#: cp/pt.c:3087 ++#: cp/pt.c:3131 + msgid "redeclared here as `%#D'" + msgstr "" + +@@ -16817,299 +16883,308 @@ + #. + #. A template-parameter may not be given default arguments + #. by two different declarations in the same scope. +-#: cp/pt.c:3097 ++#: cp/pt.c:3141 + #, fuzzy + msgid "redefinition of default argument for `%#D'" + msgstr "omdefiniering av \"%s\"" + +-#: cp/pt.c:3098 ++#: cp/pt.c:3142 + #, fuzzy + msgid "%J original definition appeared here" + msgstr "funktionsdefinition deklarerad som \"typedef\"" + +-#: cp/pt.c:3246 ++#: cp/pt.c:3288 + #, fuzzy, c-format + msgid "`%E' is not a valid template argument" + msgstr "ogiltigt typargument" + +-#: cp/pt.c:3250 ++#: cp/pt.c:3292 + msgid "it must be the address of a function with external linkage" + msgstr "" + +-#: cp/pt.c:3252 ++#: cp/pt.c:3294 + msgid "it must be the address of an object with external linkage" + msgstr "" + +-#: cp/pt.c:3255 ++#: cp/pt.c:3297 + msgid "it must be a pointer-to-member of the form `&X::Y'" + msgstr "" + +-#: cp/pt.c:3266 ++#: cp/pt.c:3308 + #, c-format + msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage" + msgstr "" + +-#: cp/pt.c:3281 ++#: cp/pt.c:3323 + #, c-format + msgid "address of non-extern `%E' cannot be used as template argument" + msgstr "" + +-#: cp/pt.c:3290 ++#: cp/pt.c:3332 + #, fuzzy, c-format + msgid "non-constant `%E' cannot be used as template argument" + msgstr "const \"%s\" kan inte deklareras \"mutable\"" + +-#: cp/pt.c:3298 ++#: cp/pt.c:3340 + msgid "type '%T' cannot be used as a value for a non-type template-parameter" + msgstr "" + +-#: cp/pt.c:3301 ++#: cp/pt.c:3343 + #, fuzzy + msgid "invalid use of '%D' as a non-type template-argument" + msgstr "ogiltigt typargument" + +-#: cp/pt.c:3303 ++#: cp/pt.c:3345 + #, fuzzy, c-format + msgid "invalid use of '%E' as a non-type template-argument" + msgstr "ogiltigt typargument" + +-#: cp/pt.c:3668 ++#: cp/pt.c:3710 + #, c-format + msgid "to refer to a type member of a template parameter, use `typename %E'" + msgstr "" + +-#: cp/pt.c:3681 cp/pt.c:3699 cp/pt.c:3738 ++#: cp/pt.c:3723 cp/pt.c:3741 cp/pt.c:3780 + msgid "type/value mismatch at argument %d in template parameter list for `%D'" + msgstr "" + +-#: cp/pt.c:3684 ++#: cp/pt.c:3726 + msgid " expected a constant of type `%T', got `%T'" + msgstr "" + +-#: cp/pt.c:3688 ++#: cp/pt.c:3730 + #, fuzzy, c-format + msgid " expected a class template, got `%E'" + msgstr "Oväntad typ på \"id\" (%s)" + +-#: cp/pt.c:3690 ++#: cp/pt.c:3732 + #, fuzzy, c-format + msgid " expected a type, got `%E'" + msgstr "Oväntad typ på \"id\" (%s)" + +-#: cp/pt.c:3702 ++#: cp/pt.c:3744 + #, fuzzy + msgid " expected a type, got `%T'" + msgstr "Oväntad typ på \"id\" (%s)" + +-#: cp/pt.c:3704 ++#: cp/pt.c:3746 + msgid " expected a class template, got `%T'" + msgstr "" + +-#: cp/pt.c:3740 ++#: cp/pt.c:3782 + msgid " expected a template of type `%D', got `%D'" + msgstr "" + +-#: cp/pt.c:3775 ++#: cp/pt.c:3817 + msgid "could not convert template argument `%E' to `%T'" + msgstr "" + +-#: cp/pt.c:3815 ++#: cp/pt.c:3857 + #, c-format + msgid "wrong number of template arguments (%d, should be %d)" + msgstr "" + +-#: cp/pt.c:3819 ++#: cp/pt.c:3861 + #, fuzzy + msgid "provided for `%D'" + msgstr "destruerare behövs för \"%#D\"" + +-#: cp/pt.c:3847 ++#: cp/pt.c:3889 + #, fuzzy, c-format + msgid "template argument %d is invalid" + msgstr "parameter \"%s\" är initierad" + +-#: cp/pt.c:4068 ++#: cp/pt.c:4110 + msgid "non-template used as template" + msgstr "" + +-#: cp/pt.c:4208 ++#: cp/pt.c:4250 + msgid "non-template type `%T' used as a template" + msgstr "" + +-#: cp/pt.c:4210 ++#: cp/pt.c:4252 + #, fuzzy + msgid "for template declaration `%D'" + msgstr "tom deklaration" + +-#: cp/pt.c:4857 ++#: cp/pt.c:4899 + msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'" + msgstr "" + +-#: cp/pt.c:5296 ++#: cp/pt.c:5338 + #, fuzzy + msgid "ambiguous class template instantiation for `%#T'" + msgstr "Slå på automatisk mallinstansiering" + +-#: cp/pt.c:5302 ++#: cp/pt.c:5344 + #, fuzzy + msgid "%s %+#T" + msgstr "%s: %s" + +-#: cp/pt.c:6308 cp/pt.c:6428 ++#: cp/pt.c:6382 + #, fuzzy + msgid "instantiation of `%D' as type `%T'" + msgstr "%s: Vid instansiering av \"%s\":\n" + +-#: cp/pt.c:6470 ++#: cp/pt.c:6542 + #, fuzzy + msgid "invalid parameter type `%T'" + msgstr "ogiltigt parametervärde \"%s\"" + +-#: cp/pt.c:6472 ++#: cp/pt.c:6544 + #, fuzzy + msgid "in declaration `%D'" + msgstr "omdeklaration av \"%s\"" + +-#: cp/pt.c:6546 ++#: cp/pt.c:6618 + msgid "creating pointer to member function of non-class type `%T'" + msgstr "" + +-#: cp/pt.c:6685 ++#: cp/pt.c:6758 + msgid "creating array with size zero" + msgstr "skapar ett fält med storlek noll" + +-#: cp/pt.c:6699 ++#: cp/pt.c:6772 + #, fuzzy, c-format + msgid "creating array with size zero (`%E')" + msgstr "skapar ett fält med storlek noll" + +-#: cp/pt.c:6938 ++#: cp/pt.c:7011 + #, fuzzy + msgid "forming reference to void" + msgstr "returnerar referens till en temporär" + +-#: cp/pt.c:6940 ++#: cp/pt.c:7013 + msgid "forming %s to reference type `%T'" + msgstr "" + +-#: cp/pt.c:6977 ++#: cp/pt.c:7050 + msgid "creating pointer to member of non-class type `%T'" + msgstr "" + +-#: cp/pt.c:6983 ++#: cp/pt.c:7056 + msgid "creating pointer to member reference type `%T'" + msgstr "" + +-#: cp/pt.c:7069 ++#: cp/pt.c:7142 + #, fuzzy + msgid "creating array of `%T'" + msgstr "skapar ett fält med storlek noll" + +-#: cp/pt.c:7075 ++#: cp/pt.c:7148 + msgid "creating array of `%T', which is an abstract class type" + msgstr "" + +-#: cp/pt.c:7119 ++#: cp/pt.c:7192 + msgid "`%T' is not a class, struct, or union type" + msgstr "" + +-#: cp/pt.c:7232 ++#: cp/pt.c:7305 + #, c-format + msgid "use of `%s' in template" + msgstr "användning ab `%s' i mall" + +-#: cp/pt.c:7345 ++#: cp/pt.c:7418 + #, c-format + msgid "dependent-name `%E' is parsed as a non-type, but instantiation yields a type" + msgstr "" + +-#: cp/pt.c:7347 ++#: cp/pt.c:7420 + #, c-format + msgid "say `typename %E' if a type is meant" + msgstr "" + +-#: cp/pt.c:8613 ++#: cp/pt.c:8589 ++msgid "`%T' is not a class or namespace" ++msgstr "" ++ ++#: cp/pt.c:8592 ++#, fuzzy ++msgid "`%D' is not a class or namespace" ++msgstr "ISO C förbjuder typkonvertering till unionstyper" ++ ++#: cp/pt.c:8709 + msgid "`%T' uses anonymous type" + msgstr "" + +-#: cp/pt.c:8615 ++#: cp/pt.c:8711 + #, fuzzy + msgid "`%T' uses local type `%T'" + msgstr "\"%s\" svarar inte på \"%s\"" + +-#: cp/pt.c:8623 ++#: cp/pt.c:8719 + #, fuzzy + msgid "`%T' is a variably modified type" + msgstr "\"%s\" har en inkomplett typ" + +-#: cp/pt.c:8634 ++#: cp/pt.c:8730 + #, fuzzy, c-format + msgid "integral expression `%E' is not constant" + msgstr "lagringsstorlek på \"%s\" är inte konstant" + +-#: cp/pt.c:8639 ++#: cp/pt.c:8735 + msgid " trying to instantiate `%D'" + msgstr "" + +-#: cp/pt.c:9156 ++#: cp/pt.c:9252 + msgid "incomplete type unification" + msgstr "inkomplett typunifiering" + +-#: cp/pt.c:10112 ++#: cp/pt.c:10211 + #, c-format + msgid "use of `%s' in template type unification" + msgstr "" + +-#: cp/pt.c:10546 cp/pt.c:10618 ++#: cp/pt.c:10644 cp/pt.c:10716 + msgid "explicit instantiation of non-template `%#D'" + msgstr "" + +-#: cp/pt.c:10562 cp/pt.c:10613 ++#: cp/pt.c:10660 cp/pt.c:10711 + msgid "no matching template for `%D' found" + msgstr "" + +-#: cp/pt.c:10568 ++#: cp/pt.c:10666 + #, fuzzy + msgid "explicit instantiation of `%#D'" + msgstr "%s: Vid instansiering av \"%s\":\n" + +-#: cp/pt.c:10605 ++#: cp/pt.c:10703 + #, fuzzy + msgid "duplicate explicit instantiation of `%#D'" + msgstr "dubbel deklaration av etikett \"%s\"" + +-#: cp/pt.c:10627 ++#: cp/pt.c:10725 + msgid "ISO C++ forbids the use of `extern' on explicit instantiations" + msgstr "" + +-#: cp/pt.c:10631 cp/pt.c:10712 ++#: cp/pt.c:10729 cp/pt.c:10810 + #, fuzzy + msgid "storage class `%D' applied to template instantiation" + msgstr "Slå på automatisk mallinstansiering" + +-#: cp/pt.c:10684 ++#: cp/pt.c:10782 + msgid "explicit instantiation of non-template type `%T'" + msgstr "" + +-#: cp/pt.c:10693 ++#: cp/pt.c:10791 + msgid "explicit instantiation of `%#T' before definition of template" + msgstr "" + +-#: cp/pt.c:10701 ++#: cp/pt.c:10799 + #, c-format + msgid "ISO C++ forbids the use of `%s' on explicit instantiations" + msgstr "" + +-#: cp/pt.c:10745 ++#: cp/pt.c:10843 + #, fuzzy + msgid "duplicate explicit instantiation of `%#T'" + msgstr "dubbel deklaration av etikett \"%s\"" + +-#: cp/pt.c:11126 ++#: cp/pt.c:11224 + msgid "explicit instantiation of `%D' but no definition available" + msgstr "" + +-#: cp/pt.c:11562 ++#: cp/pt.c:11660 + msgid "`%#T' is not a valid type for a template constant parameter" + msgstr "" + +@@ -17155,42 +17230,42 @@ + msgid "`%T' is an inaccessible base of `%T'" + msgstr "" + +-#: cp/search.c:1767 ++#: cp/search.c:1805 + #, fuzzy + msgid "invalid covariant return type for `%#D'" + msgstr "ogiltig mottagartyp \"%s\"" + +-#: cp/search.c:1768 cp/search.c:1774 ++#: cp/search.c:1806 cp/search.c:1812 + msgid " overriding `%#D'" + msgstr "" + +-#: cp/search.c:1772 ++#: cp/search.c:1810 + #, fuzzy + msgid "conflicting return type specified for `%#D'" + msgstr "motstridiga typer på \"%s\"" + +-#: cp/search.c:1786 ++#: cp/search.c:1824 + #, fuzzy, c-format + msgid "looser throw specifier for `%#F'" + msgstr "long eller short angiven med char för \"%s\"" + +-#: cp/search.c:1787 ++#: cp/search.c:1825 + #, c-format + msgid " overriding `%#F'" + msgstr "" + + #. A static member function cannot match an inherited + #. virtual member function. +-#: cp/search.c:1877 ++#: cp/search.c:1915 + #, fuzzy + msgid "`%#D' cannot be declared" + msgstr "const \"%s\" kan inte deklareras \"mutable\"" + +-#: cp/search.c:1878 ++#: cp/search.c:1916 + msgid " since `%#D' declared in base class" + msgstr "" + +-#: cp/search.c:1955 ++#: cp/search.c:1993 + msgid "`%#D' needs a final overrider" + msgstr "" + +@@ -17213,128 +17288,128 @@ + msgid "object missing in reference to `%D'" + msgstr "kan inte inline:a anrop till \"%s\"" + +-#: cp/semantics.c:1721 ++#: cp/semantics.c:1718 + #, fuzzy + msgid "arguments to destructor are not allowed" + msgstr "kan inte sätta attributet \"%s\" efter definitionen" + +-#: cp/semantics.c:1770 ++#: cp/semantics.c:1767 + msgid "`this' is unavailable for static member functions" + msgstr "" + +-#: cp/semantics.c:1776 ++#: cp/semantics.c:1773 + msgid "invalid use of `this' in non-member function" + msgstr "" + +-#: cp/semantics.c:1778 ++#: cp/semantics.c:1775 + msgid "invalid use of `this' at top level" + msgstr "" + +-#: cp/semantics.c:1802 ++#: cp/semantics.c:1799 + #, fuzzy + msgid "invalid qualifying scope in pseudo-destructor name" + msgstr "ogiltigt format på versionsnummer" + +-#: cp/semantics.c:1822 ++#: cp/semantics.c:1819 + #, fuzzy + msgid "`%E' is not of type `%T'" + msgstr "\"%s\" svarar inte på \"%s\"" + +-#: cp/semantics.c:1933 ++#: cp/semantics.c:1930 + msgid "template type parameters must use the keyword `class' or `typename'" + msgstr "" + +-#: cp/semantics.c:1977 ++#: cp/semantics.c:1974 + #, fuzzy + msgid "invalid use of type `%T' as a default value for a template template-parameter" + msgstr "ogiltigt typargument" + +-#: cp/semantics.c:1980 ++#: cp/semantics.c:1977 + #, fuzzy + msgid "invalid use of `%D' as a default value for a template template-parameter" + msgstr "ogiltigt typargument" + +-#: cp/semantics.c:1984 ++#: cp/semantics.c:1981 + #, fuzzy + msgid "invalid default argument for a template template parameter" + msgstr "ogiltigt typargument" + +-#: cp/semantics.c:2019 ++#: cp/semantics.c:2016 + #, fuzzy + msgid "definition of `%#T' inside template parameter list" + msgstr "deklaration av \"%s\" döljer symbol från parameterlista" + +-#: cp/semantics.c:2030 ++#: cp/semantics.c:2027 + #, fuzzy + msgid "invalid definition of qualified type `%T'" + msgstr "ogiltig operation på oinstansierad typ" + +-#: cp/semantics.c:2045 ++#: cp/semantics.c:2042 + #, fuzzy + msgid "previous definition of `%#T'" + msgstr "omdefiniering av \"%s\"" + +-#: cp/semantics.c:2249 ++#: cp/semantics.c:2246 + #, fuzzy + msgid "invalid base-class specification" + msgstr "ogiltig lagringsklass för funktion \"%s\"" + +-#: cp/semantics.c:2258 ++#: cp/semantics.c:2255 + msgid "base class `%T' has cv qualifiers" + msgstr "" + +-#: cp/semantics.c:2290 ++#: cp/semantics.c:2287 + #, fuzzy + msgid "multiple declarators in template declaration" + msgstr "flera lagringsklasser i deklaration av \"%s\"" + +-#: cp/semantics.c:2301 ++#: cp/semantics.c:2298 + msgid "incomplete type `%T' used in nested name specifier" + msgstr "" + +-#: cp/semantics.c:2303 cp/typeck.c:1635 ++#: cp/semantics.c:2300 cp/typeck.c:1635 + #, fuzzy + msgid "`%D' is not a member of `%T'" + msgstr "%s har ingen medlem med namn \"%s\"" + +-#: cp/semantics.c:2306 ++#: cp/semantics.c:2303 + #, fuzzy + msgid "`%D' is not a member of `%D'" + msgstr "%s har ingen medlem med namn \"%s\"" + +-#: cp/semantics.c:2431 ++#: cp/semantics.c:2428 + msgid "template parameter `%D' of type `%T' is not allowed in an integral constant expression because it is not of integral or enumeration type" + msgstr "" + +-#: cp/semantics.c:2584 ++#: cp/semantics.c:2572 + #, fuzzy + msgid "`%D' cannot appear in a constant-expression" + msgstr "storlek på fält \"%s\" är inte av heltalstyp" + +-#: cp/semantics.c:2593 ++#: cp/semantics.c:2580 + msgid "use of namespace `%D' as expression" + msgstr "" + +-#: cp/semantics.c:2598 ++#: cp/semantics.c:2585 + msgid "use of class template `%T' as expression" + msgstr "" + + #. Ambiguous reference to base members. +-#: cp/semantics.c:2604 ++#: cp/semantics.c:2591 + msgid "request for member `%D' is ambiguous in multiple inheritance lattice" + msgstr "" + +-#: cp/semantics.c:2664 ++#: cp/semantics.c:2652 + #, c-format + msgid "use of %s from containing function" + msgstr "" + +-#: cp/semantics.c:2667 ++#: cp/semantics.c:2655 + #, fuzzy + msgid " `%#D' declared here" + msgstr "\"%s\" är tidigare deklarerad här" + +-#: cp/semantics.c:2718 ++#: cp/semantics.c:2706 + #, fuzzy, c-format + msgid "type of `%E' is unknown" + msgstr "Register '%c' är okänt" +@@ -17349,44 +17424,44 @@ + msgid "`%V' qualifiers cannot be applied to `%T'" + msgstr "\"%s\" svarar inte på \"%s\"" + +-#: cp/tree.c:1821 ++#: cp/tree.c:1829 + #, fuzzy, c-format + msgid "`%s' attribute can only be applied to Java class definitions" + msgstr "attributet \"%s\" fungerar bara på funktioner" + +-#: cp/tree.c:1850 ++#: cp/tree.c:1858 + #, fuzzy, c-format + msgid "`%s' attribute can only be applied to class definitions" + msgstr "attributet \"%s\" fungerar bara på funktioner" + +-#: cp/tree.c:1856 ++#: cp/tree.c:1864 + #, c-format + msgid "`%s' is obsolete; g++ vtables are now COM-compatible by default" + msgstr "" + +-#: cp/tree.c:1880 ++#: cp/tree.c:1888 + msgid "requested init_priority is not an integer constant" + msgstr "" + +-#: cp/tree.c:1901 ++#: cp/tree.c:1909 + #, c-format + msgid "can only use `%s' attribute on file-scope definitions of objects of class type" + msgstr "" + +-#: cp/tree.c:1909 ++#: cp/tree.c:1917 + msgid "requested init_priority is out of range" + msgstr "" + +-#: cp/tree.c:1919 ++#: cp/tree.c:1927 + msgid "requested init_priority is reserved for internal use" + msgstr "" + +-#: cp/tree.c:1929 ++#: cp/tree.c:1937 + #, fuzzy, c-format + msgid "`%s' attribute is not supported on this platform" + msgstr "attributet \"section\" stöds inte för denna målarkitektur" + +-#: cp/tree.c:2524 ++#: cp/tree.c:2534 + #, c-format + msgid "lang_* check: failed in %s, at %s:%d" + msgstr "" +@@ -17613,280 +17688,280 @@ + msgid "invalid use of a pointer to an incomplete type in pointer arithmetic" + msgstr "" + +-#: cp/typeck.c:3582 ++#: cp/typeck.c:3600 + #, c-format + msgid "invalid use of '%E' to form a pointer-to-member-function. Use a qualified-id." + msgstr "" + +-#: cp/typeck.c:3588 ++#: cp/typeck.c:3606 + #, c-format + msgid "parenthesis around '%E' cannot be used to form a pointer-to-member-function" + msgstr "" + +-#: cp/typeck.c:3610 ++#: cp/typeck.c:3628 + msgid "taking address of temporary" + msgstr "tar adress till något temporärt" + +-#: cp/typeck.c:3845 ++#: cp/typeck.c:3863 + #, c-format + msgid "ISO C++ forbids %sing an enum" + msgstr "" + +-#: cp/typeck.c:3856 ++#: cp/typeck.c:3874 + #, fuzzy + msgid "cannot %s a pointer to incomplete type `%T'" + msgstr "parameter \"%s\" pekar på inkomplett typ" + +-#: cp/typeck.c:3862 ++#: cp/typeck.c:3880 + #, fuzzy + msgid "ISO C++ forbids %sing a pointer of type `%T'" + msgstr "ISO C++ förbjuder användning av pekare av typ \"void *\" i pekararitmetik" + +-#: cp/typeck.c:3887 ++#: cp/typeck.c:3905 + msgid "cast to non-reference type used as lvalue" + msgstr "" + +-#: cp/typeck.c:3921 ++#: cp/typeck.c:3939 + msgid "invalid use of `--' on bool variable `%D'" + msgstr "" + + #. ARM $3.4 +-#: cp/typeck.c:3952 ++#: cp/typeck.c:3970 + msgid "ISO C++ forbids taking address of function `::main'" + msgstr "ISO C++ förbjuder att man tar adressen till funktionen \"::main\"" + + #. An expression like &memfn. +-#: cp/typeck.c:4027 ++#: cp/typeck.c:4045 + #, fuzzy + msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function. Say `&%T::%D'" + msgstr "ISO C++ förbjuder användning av pekare till medlemsfunktion i pekararitmetik" + +-#: cp/typeck.c:4032 ++#: cp/typeck.c:4050 + #, fuzzy + msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say `&%T::%D'" + msgstr "ISO C++ förbjuder användning av pekare till medlemsfunktion i pekararitmetik" + +-#: cp/typeck.c:4060 ++#: cp/typeck.c:4078 + msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression" + msgstr "" + +-#: cp/typeck.c:4080 ++#: cp/typeck.c:4098 + msgid "unary `&'" + msgstr "unärt \"&\"" + +-#: cp/typeck.c:4113 ++#: cp/typeck.c:4131 + #, fuzzy + msgid "attempt to take address of bit-field structure member `%D'" + msgstr "kan inte ta adressen till bitfält \"%s\"" + +-#: cp/typeck.c:4227 ++#: cp/typeck.c:4245 + #, fuzzy + msgid "taking address of destructor" + msgstr "tar adress till något temporärt" + +-#: cp/typeck.c:4240 ++#: cp/typeck.c:4258 + msgid "taking address of bound pointer-to-member expression" + msgstr "" + +-#: cp/typeck.c:4248 ++#: cp/typeck.c:4266 + #, fuzzy + msgid "cannot create pointer to reference member `%D'" + msgstr "kan inte deklarera pekare till referenser" + +-#: cp/typeck.c:4311 ++#: cp/typeck.c:4329 + msgid "cannot take the address of `this', which is an rvalue expression" + msgstr "Kan inte ta adressen till \"this\", som är ett rvalue-uttryck" + +-#: cp/typeck.c:4330 ++#: cp/typeck.c:4348 + msgid "address requested for `%D', which is declared `register'" + msgstr "" + +-#: cp/typeck.c:4398 ++#: cp/typeck.c:4416 + #, fuzzy, c-format + msgid "%s expression list treated as compound expression" + msgstr "uttryckssats har inkomplett typ" + +-#: cp/typeck.c:4472 ++#: cp/typeck.c:4490 + msgid "%s from type `%T' to type `%T' casts away constness" + msgstr "" + +-#: cp/typeck.c:4674 ++#: cp/typeck.c:4692 + msgid "invalid static_cast from type `%T' to type `%T'" + msgstr "" + +-#: cp/typeck.c:4714 ++#: cp/typeck.c:4732 + msgid "invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'" + msgstr "" + +-#: cp/typeck.c:4734 ++#: cp/typeck.c:4752 + msgid "reinterpret_cast from `%T' to `%T' loses precision" + msgstr "" + +-#: cp/typeck.c:4753 ++#: cp/typeck.c:4771 + msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object" + msgstr "" + +-#: cp/typeck.c:4759 ++#: cp/typeck.c:4777 + msgid "invalid reinterpret_cast from type `%T' to type `%T'" + msgstr "" + +-#: cp/typeck.c:4787 ++#: cp/typeck.c:4805 + msgid "invalid use of const_cast with type `%T', which is not a pointer, reference, nor a pointer-to-data-member type" + msgstr "" + +-#: cp/typeck.c:4790 ++#: cp/typeck.c:4808 + msgid "invalid use of const_cast with type `%T', which is a pointer or reference to a function type" + msgstr "" + +-#: cp/typeck.c:4813 ++#: cp/typeck.c:4831 + msgid "invalid const_cast of an rvalue of type `%T' to type `%T'" + msgstr "" + +-#: cp/typeck.c:4830 ++#: cp/typeck.c:4848 + msgid "invalid const_cast from type `%T' to type `%T'" + msgstr "" + +-#: cp/typeck.c:4870 cp/typeck.c:4875 ++#: cp/typeck.c:4888 cp/typeck.c:4893 + #, fuzzy + msgid "ISO C++ forbids casting to an array type `%T'" + msgstr "ISO C förbjuder typkonvertering till unionstyper" + +-#: cp/typeck.c:4883 ++#: cp/typeck.c:4901 + #, fuzzy + msgid "invalid cast to function type `%T'" + msgstr "ogiltig lagringsklass för funktion \"%s\"" + +-#: cp/typeck.c:4939 ++#: cp/typeck.c:4957 + msgid "cast from `%T' to `%T' discards qualifiers from pointer target type" + msgstr "" + +-#: cp/typeck.c:4985 ++#: cp/typeck.c:5003 + msgid "cast from `%T' to `%T' increases required alignment of target type" + msgstr "" + +-#: cp/typeck.c:5152 ++#: cp/typeck.c:5170 + msgid " in evaluation of `%Q(%#T, %#T)'" + msgstr "" + +-#: cp/typeck.c:5194 ++#: cp/typeck.c:5212 + msgid "ISO C++ forbids cast to non-reference type used as lvalue" + msgstr "" + +-#: cp/typeck.c:5267 ++#: cp/typeck.c:5285 + #, fuzzy + msgid "incompatible types in assignment of `%T' to `%T'" + msgstr "inkompatibla typer i %s" + +-#: cp/typeck.c:5274 ++#: cp/typeck.c:5292 + msgid "ISO C++ forbids assignment of arrays" + msgstr "ISO C++ förbjuder tilldelning av fält" + +-#: cp/typeck.c:5374 ++#: cp/typeck.c:5392 + msgid " in pointer to member function conversion" + msgstr "" + +-#: cp/typeck.c:5382 ++#: cp/typeck.c:5400 + msgid " in pointer to member conversion" + msgstr "" + + #. This is a reinterpret cast, we choose to do nothing. +-#: cp/typeck.c:5392 cp/typeck.c:5407 ++#: cp/typeck.c:5410 cp/typeck.c:5425 + #, fuzzy + msgid "pointer to member cast via virtual base `%T'" + msgstr "pekare till en medlemsfunktion använd med aritmetik" + +-#: cp/typeck.c:5410 ++#: cp/typeck.c:5428 + #, fuzzy + msgid "pointer to member conversion via virtual base `%T'" + msgstr "pekare till medlemsfunktion använd med aritmetik" + +-#: cp/typeck.c:5480 ++#: cp/typeck.c:5498 + #, fuzzy + msgid "invalid conversion to type `%T' from type `%T'" + msgstr "ogiltig mottagartyp \"%s\"" + +-#: cp/typeck.c:5636 ++#: cp/typeck.c:5657 + msgid "passing NULL used for non-pointer %s %P of `%D'" + msgstr "" + +-#: cp/typeck.c:5639 ++#: cp/typeck.c:5660 + msgid "%s to non-pointer type `%T' from NULL" + msgstr "" + +-#: cp/typeck.c:5647 ++#: cp/typeck.c:5668 + msgid "passing `%T' for %s %P of `%D'" + msgstr "" + +-#: cp/typeck.c:5650 ++#: cp/typeck.c:5671 + msgid "%s to `%T' from `%T'" + msgstr "" + +-#: cp/typeck.c:5660 ++#: cp/typeck.c:5681 + msgid "passing negative value `%E' for %s %P of `%D'" + msgstr "" + +-#: cp/typeck.c:5663 ++#: cp/typeck.c:5684 + msgid "%s of negative value `%E' to `%T'" + msgstr "" + +-#: cp/typeck.c:5751 ++#: cp/typeck.c:5772 + msgid "cannot convert `%T' to `%T' for argument `%P' to `%D'" + msgstr "" + +-#: cp/typeck.c:5754 ++#: cp/typeck.c:5775 + #, fuzzy + msgid "cannot convert `%T' to `%T' in %s" + msgstr "kan inte konvertera till en pekartyp" + +-#: cp/typeck.c:5831 cp/typeck.c:5833 ++#: cp/typeck.c:5852 cp/typeck.c:5854 + #, fuzzy + msgid "in passing argument %P of `%+D'" + msgstr "Saknar argument till flaggan \"%s\"" + +-#: cp/typeck.c:5940 ++#: cp/typeck.c:5961 + msgid "returning reference to temporary" + msgstr "returnerar referens till en temporär" + +-#: cp/typeck.c:5947 ++#: cp/typeck.c:5968 + msgid "reference to non-lvalue returned" + msgstr "" + +-#: cp/typeck.c:5959 ++#: cp/typeck.c:5980 + #, fuzzy + msgid "reference to local variable `%D' returned" + msgstr "adress på global registervariabel \"%s\" efterfrågad" + +-#: cp/typeck.c:5962 ++#: cp/typeck.c:5983 + #, fuzzy + msgid "address of local variable `%D' returned" + msgstr "adress på global registervariabel \"%s\" efterfrågad" + +-#: cp/typeck.c:5992 ++#: cp/typeck.c:6013 + msgid "returning a value from a destructor" + msgstr "returnerar ett värde från en destruktor" + + #. If a return statement appears in a handler of the + #. function-try-block of a constructor, the program is ill-formed. +-#: cp/typeck.c:6000 ++#: cp/typeck.c:6021 + msgid "cannot return from a handler of a function-try-block of a constructor" + msgstr "" + + #. You can't return a value from a constructor. +-#: cp/typeck.c:6003 ++#: cp/typeck.c:6024 + msgid "returning a value from a constructor" + msgstr "" + +-#: cp/typeck.c:6026 ++#: cp/typeck.c:6047 + #, fuzzy + msgid "return-statement with no value, in function returning '%T'" + msgstr "\"return\" med värde i funktion som returnerar void" + +-#: cp/typeck.c:6043 ++#: cp/typeck.c:6064 + #, fuzzy + msgid "return-statement with a value, in function returning 'void'" + msgstr "\"return\" med värde i funktion som returnerar void" + +-#: cp/typeck.c:6065 ++#: cp/typeck.c:6086 + msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)" + msgstr "" + +@@ -17944,133 +18019,133 @@ + msgid "cannot initialize arrays using this syntax" + msgstr "" + +-#: cp/typeck2.c:545 ++#: cp/typeck2.c:535 + msgid "initializing array with parameter list" + msgstr "" + +-#: cp/typeck2.c:600 ++#: cp/typeck2.c:590 + msgid "initializer for scalar variable requires one element" + msgstr "" + +-#: cp/typeck2.c:607 ++#: cp/typeck2.c:597 + msgid "braces around scalar initializer for `%T'" + msgstr "" + +-#: cp/typeck2.c:610 ++#: cp/typeck2.c:600 + msgid "ignoring extra initializers for `%T'" + msgstr "" + +-#: cp/typeck2.c:622 ++#: cp/typeck2.c:612 + #, fuzzy + msgid "variable-sized object of type `%T' may not be initialized" + msgstr "objekt med variabel storlek kan inte initieras" + +-#: cp/typeck2.c:632 ++#: cp/typeck2.c:622 + msgid "subobject of type `%T' must be initialized by constructor, not by `%E'" + msgstr "" + +-#: cp/typeck2.c:697 ++#: cp/typeck2.c:687 + msgid "aggregate has a partly bracketed initializer" + msgstr "" + +-#: cp/typeck2.c:735 cp/typeck2.c:840 ++#: cp/typeck2.c:725 cp/typeck2.c:830 + msgid "non-trivial labeled initializers" + msgstr "" + +-#: cp/typeck2.c:752 ++#: cp/typeck2.c:742 + msgid "non-empty initializer for array of empty elements" + msgstr "" + +-#: cp/typeck2.c:806 ++#: cp/typeck2.c:796 + msgid "initializer list for object of class with virtual base classes" + msgstr "" + +-#: cp/typeck2.c:812 ++#: cp/typeck2.c:802 + msgid "initializer list for object of class with base classes" + msgstr "" + +-#: cp/typeck2.c:818 ++#: cp/typeck2.c:808 + msgid "initializer list for object using virtual functions" + msgstr "" + +-#: cp/typeck2.c:880 cp/typeck2.c:896 ++#: cp/typeck2.c:870 cp/typeck2.c:886 + #, fuzzy + msgid "missing initializer for member `%D'" + msgstr "saknar mellanrum efter nummer \"%.*s\"" + +-#: cp/typeck2.c:885 ++#: cp/typeck2.c:875 + #, fuzzy + msgid "uninitialized const member `%D'" + msgstr "upprepning av medlem \"%s\"" + +-#: cp/typeck2.c:887 ++#: cp/typeck2.c:877 + #, fuzzy + msgid "member `%D' with uninitialized const fields" + msgstr "parameter \"%s\" är initierad" + +-#: cp/typeck2.c:890 ++#: cp/typeck2.c:880 + #, fuzzy + msgid "member `%D' is uninitialized reference" + msgstr "parameter \"%s\" är initierad" + +-#: cp/typeck2.c:937 ++#: cp/typeck2.c:927 + msgid "index value instead of field name in union initializer" + msgstr "" + +-#: cp/typeck2.c:949 ++#: cp/typeck2.c:939 + #, fuzzy + msgid "no field `%D' in union being initialized" + msgstr "fält \"%s\" är redan initierat" + +-#: cp/typeck2.c:957 ++#: cp/typeck2.c:947 + msgid "union `%T' with no named members cannot be initialized" + msgstr "" + +-#: cp/typeck2.c:993 ++#: cp/typeck2.c:983 + msgid "excess elements in aggregate initializer" + msgstr "" + +-#: cp/typeck2.c:1102 ++#: cp/typeck2.c:1092 + msgid "circular pointer delegation detected" + msgstr "" + +-#: cp/typeck2.c:1115 ++#: cp/typeck2.c:1105 + #, fuzzy + msgid "base operand of `->' has non-pointer type `%T'" + msgstr "basoperanden till \"->\" är inte en pekare" + +-#: cp/typeck2.c:1139 ++#: cp/typeck2.c:1129 + msgid "result of `operator->()' yields non-pointer result" + msgstr "" + +-#: cp/typeck2.c:1141 ++#: cp/typeck2.c:1131 + msgid "base operand of `->' is not a pointer" + msgstr "basoperanden till \"->\" är inte en pekare" + +-#: cp/typeck2.c:1164 ++#: cp/typeck2.c:1154 + msgid "`%E' cannot be used as a member pointer, since it is of type `%T'" + msgstr "" + +-#: cp/typeck2.c:1172 ++#: cp/typeck2.c:1162 + msgid "cannot apply member pointer `%E' to `%E', which is of non-aggregate type `%T'" + msgstr "" + +-#: cp/typeck2.c:1182 ++#: cp/typeck2.c:1172 + msgid "member type `%T::' incompatible with object type `%T'" + msgstr "" + +-#: cp/typeck2.c:1398 ++#: cp/typeck2.c:1388 + #, fuzzy + msgid "call to function `%D' which throws incomplete type `%#T'" + msgstr "parameter \"%s\" pekar på inkomplett typ" + +-#: cp/typeck2.c:1401 ++#: cp/typeck2.c:1391 + #, fuzzy + msgid "call to function which throws incomplete type `%#T'" + msgstr "parameter \"%s\" pekar på inkomplett typ" + + #. XXX Not i18n clean. +-#: cp/cp-tree.h:3756 ++#: cp/cp-tree.h:3775 + #, c-format + msgid "%s is deprecated, please see the documentation for details" + msgstr "" +@@ -19628,291 +19703,228 @@ + msgid "internal error - invalid Utf8 name" + msgstr "internt fel - ogiltigt Utf8-namn" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse-scan.y:880 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:949 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1290 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1351 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1555 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1777 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1786 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1797 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1808 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1820 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1835 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1852 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1854 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1935 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2106 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2168 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2320 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2332 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2339 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2346 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2357 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2359 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2397 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2399 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2401 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2422 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2424 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2426 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2442 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2444 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2465 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2467 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2469 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2497 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2499 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2501 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2503 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2521 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2523 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2534 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2545 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2556 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2567 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2578 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2591 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2595 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2597 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2610 ++#: ../../gcc/java/parse-scan.y:880 ../../gcc/java/parse.y:949 ++#: ../../gcc/java/parse.y:1290 ../../gcc/java/parse.y:1351 ++#: ../../gcc/java/parse.y:1555 ../../gcc/java/parse.y:1777 ++#: ../../gcc/java/parse.y:1786 ../../gcc/java/parse.y:1797 ++#: ../../gcc/java/parse.y:1808 ../../gcc/java/parse.y:1820 ++#: ../../gcc/java/parse.y:1835 ../../gcc/java/parse.y:1852 ++#: ../../gcc/java/parse.y:1854 ../../gcc/java/parse.y:1935 ++#: ../../gcc/java/parse.y:2106 ../../gcc/java/parse.y:2168 ++#: ../../gcc/java/parse.y:2320 ../../gcc/java/parse.y:2332 ++#: ../../gcc/java/parse.y:2339 ../../gcc/java/parse.y:2346 ++#: ../../gcc/java/parse.y:2357 ../../gcc/java/parse.y:2359 ++#: ../../gcc/java/parse.y:2397 ../../gcc/java/parse.y:2399 ++#: ../../gcc/java/parse.y:2401 ../../gcc/java/parse.y:2422 ++#: ../../gcc/java/parse.y:2424 ../../gcc/java/parse.y:2426 ++#: ../../gcc/java/parse.y:2442 ../../gcc/java/parse.y:2444 ++#: ../../gcc/java/parse.y:2465 ../../gcc/java/parse.y:2467 ++#: ../../gcc/java/parse.y:2469 ../../gcc/java/parse.y:2497 ++#: ../../gcc/java/parse.y:2499 ../../gcc/java/parse.y:2501 ++#: ../../gcc/java/parse.y:2503 ../../gcc/java/parse.y:2521 ++#: ../../gcc/java/parse.y:2523 ../../gcc/java/parse.y:2534 ++#: ../../gcc/java/parse.y:2545 ../../gcc/java/parse.y:2556 ++#: ../../gcc/java/parse.y:2567 ../../gcc/java/parse.y:2578 ++#: ../../gcc/java/parse.y:2591 ../../gcc/java/parse.y:2595 ++#: ../../gcc/java/parse.y:2597 ../../gcc/java/parse.y:2610 + msgid "Missing term" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse-scan.y:882 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:721 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:759 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:784 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:970 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1325 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1531 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1533 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1762 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1788 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1799 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1810 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1822 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1837 ++#: ../../gcc/java/parse-scan.y:882 ../../gcc/java/parse.y:721 ++#: ../../gcc/java/parse.y:759 ../../gcc/java/parse.y:784 ++#: ../../gcc/java/parse.y:970 ../../gcc/java/parse.y:1325 ++#: ../../gcc/java/parse.y:1531 ../../gcc/java/parse.y:1533 ++#: ../../gcc/java/parse.y:1762 ../../gcc/java/parse.y:1788 ++#: ../../gcc/java/parse.y:1799 ../../gcc/java/parse.y:1810 ++#: ../../gcc/java/parse.y:1822 ../../gcc/java/parse.y:1837 + msgid "';' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:719 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:757 ++#: ../../gcc/java/parse.y:719 ../../gcc/java/parse.y:757 + msgid "Missing name" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:782 ++#: ../../gcc/java/parse.y:782 + msgid "'*' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:796 ++#: ../../gcc/java/parse.y:796 + msgid "Class or interface declaration expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:833 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:835 ++#: ../../gcc/java/parse.y:833 ../../gcc/java/parse.y:835 + msgid "Missing class name" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:838 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:842 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:850 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1010 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1271 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1273 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1597 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1848 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1880 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1942 ++#: ../../gcc/java/parse.y:838 ../../gcc/java/parse.y:842 ++#: ../../gcc/java/parse.y:850 ../../gcc/java/parse.y:1010 ++#: ../../gcc/java/parse.y:1271 ../../gcc/java/parse.y:1273 ++#: ../../gcc/java/parse.y:1597 ../../gcc/java/parse.y:1848 ++#: ../../gcc/java/parse.y:1880 ../../gcc/java/parse.y:1942 + msgid "'{' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:852 ++#: ../../gcc/java/parse.y:852 + msgid "Missing super class name" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:862 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:878 ++#: ../../gcc/java/parse.y:862 ../../gcc/java/parse.y:878 + msgid "Missing interface name" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:964 ++#: ../../gcc/java/parse.y:964 + msgid "Missing variable initializer" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:981 ++#: ../../gcc/java/parse.y:981 + msgid "Invalid declaration" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:984 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1069 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2143 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2165 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2169 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2204 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2281 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2291 ++#: ../../gcc/java/parse.y:984 ../../gcc/java/parse.y:1069 ++#: ../../gcc/java/parse.y:2143 ../../gcc/java/parse.y:2165 ++#: ../../gcc/java/parse.y:2169 ../../gcc/java/parse.y:2204 ++#: ../../gcc/java/parse.y:2281 ../../gcc/java/parse.y:2291 + msgid "']' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:988 ++#: ../../gcc/java/parse.y:988 + msgid "Unbalanced ']'" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1024 ++#: ../../gcc/java/parse.y:1024 + msgid "Invalid method declaration, method name required" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1029 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1034 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1039 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2026 ++#: ../../gcc/java/parse.y:1029 ../../gcc/java/parse.y:1034 ++#: ../../gcc/java/parse.y:1039 ../../gcc/java/parse.y:2026 + msgid "Identifier expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1044 ++#: ../../gcc/java/parse.y:1044 + msgid "Invalid method declaration, return type required" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1067 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1511 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1518 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1527 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1529 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1557 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1665 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1971 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2024 ++#: ../../gcc/java/parse.y:1067 ../../gcc/java/parse.y:1511 ++#: ../../gcc/java/parse.y:1518 ../../gcc/java/parse.y:1527 ++#: ../../gcc/java/parse.y:1529 ../../gcc/java/parse.y:1557 ++#: ../../gcc/java/parse.y:1665 ../../gcc/java/parse.y:1971 ++#: ../../gcc/java/parse.y:2024 + msgid "')' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1083 ++#: ../../gcc/java/parse.y:1083 + msgid "Missing formal parameter term" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1098 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1103 ++#: ../../gcc/java/parse.y:1098 ../../gcc/java/parse.y:1103 + msgid "Missing identifier" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1123 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1132 ++#: ../../gcc/java/parse.y:1123 ../../gcc/java/parse.y:1132 + msgid "Missing class type term" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1288 ++#: ../../gcc/java/parse.y:1288 + msgid "Invalid interface type" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1475 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1644 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1646 ++#: ../../gcc/java/parse.y:1475 ../../gcc/java/parse.y:1644 ++#: ../../gcc/java/parse.y:1646 + msgid "':' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1497 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1502 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1507 ++#: ../../gcc/java/parse.y:1497 ../../gcc/java/parse.y:1502 ++#: ../../gcc/java/parse.y:1507 + msgid "Invalid expression statement" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1525 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1553 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1593 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1661 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1729 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1850 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1928 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2018 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2020 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2028 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2264 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2266 ++#: ../../gcc/java/parse.y:1525 ../../gcc/java/parse.y:1553 ++#: ../../gcc/java/parse.y:1593 ../../gcc/java/parse.y:1661 ++#: ../../gcc/java/parse.y:1729 ../../gcc/java/parse.y:1850 ++#: ../../gcc/java/parse.y:1928 ../../gcc/java/parse.y:2018 ++#: ../../gcc/java/parse.y:2020 ../../gcc/java/parse.y:2028 ++#: ../../gcc/java/parse.y:2264 ../../gcc/java/parse.y:2266 + msgid "'(' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1595 ++#: ../../gcc/java/parse.y:1595 + msgid "Missing term or ')'" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1642 ++#: ../../gcc/java/parse.y:1642 + msgid "Missing or invalid constant expression" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1663 ++#: ../../gcc/java/parse.y:1663 + msgid "Missing term and ')' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1702 ++#: ../../gcc/java/parse.y:1702 + msgid "Invalid control expression" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1704 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1706 ++#: ../../gcc/java/parse.y:1704 ../../gcc/java/parse.y:1706 + msgid "Invalid update expression" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1731 ++#: ../../gcc/java/parse.y:1731 + msgid "Invalid init statement" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1931 ++#: ../../gcc/java/parse.y:1931 + msgid "Missing term or ')' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1973 ++#: ../../gcc/java/parse.y:1973 + msgid "'class' or 'this' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1975 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1977 ++#: ../../gcc/java/parse.y:1975 ../../gcc/java/parse.y:1977 + msgid "'class' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2022 ++#: ../../gcc/java/parse.y:2022 + msgid "')' or term expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2141 ++#: ../../gcc/java/parse.y:2141 + msgid "'[' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2219 ++#: ../../gcc/java/parse.y:2219 + msgid "Field expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2276 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2286 ++#: ../../gcc/java/parse.y:2276 ../../gcc/java/parse.y:2286 + msgid "Missing term and ']' expected" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2390 ++#: ../../gcc/java/parse.y:2390 + msgid "']' expected, invalid type expression" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2393 ++#: ../../gcc/java/parse.y:2393 + msgid "Invalid type expression" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2505 ++#: ../../gcc/java/parse.y:2505 + msgid "Invalid reference type" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2977 ++#: ../../gcc/java/parse.y:2977 + msgid "Constructor invocation must be first thing in a constructor" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2979 ++#: ../../gcc/java/parse.y:2979 + msgid "Only constructors can invoke constructors" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2987 ++#: ../../gcc/java/parse.y:2987 + #, c-format + msgid ": `%s' JDK1.1(TM) feature" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:3046 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:3048 ++#: ../../gcc/java/parse.y:3046 ../../gcc/java/parse.y:3048 + #, c-format + msgid "" + "%s.\n" +@@ -19921,32 +19933,32 @@ + "%s.\n" + "%s" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:6909 ++#: ../../gcc/java/parse.y:6909 + #, c-format + msgid "malformed .zip archive in CLASSPATH: %s" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:6980 ++#: ../../gcc/java/parse.y:6980 + #, c-format + msgid "Can't find default package `%s'. Check the CLASSPATH environment variable and the access to the archives" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12193 ++#: ../../gcc/java/parse.y:12193 + #, c-format + msgid "missing static field `%s'" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12198 ++#: ../../gcc/java/parse.y:12198 + #, c-format + msgid "not a static field `%s'" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12241 ++#: ../../gcc/java/parse.y:12241 + #, c-format + msgid "No case for %s" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:13173 ++#: ../../gcc/java/parse.y:13173 + #, c-format + msgid "unregistered operator %s" + msgstr "" +@@ -20288,1763 +20300,1448 @@ + msgid "[super ...] must appear in a method context" + msgstr "[super ...] måste stå i metodkontext" + +-#: objc/objc-parse.y:2701 ++#: objc/objc-parse.y:2700 + msgid "`@end' must appear in an implementation context" + msgstr "" + +-#: objc/objc-parse.y:2914 ++#: objc/objc-parse.y:2913 + msgid "method definition not in class context" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:23 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:21 + #, fuzzy + msgid "Display this information" + msgstr " --help Visa den här informatationen\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:29 +-msgid "--param =\tSet paramter to value. See below for a complete list of parameters" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:27 ++msgid "--param =\tSet parameter to value. See below for a complete list of parameters" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:38 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:36 + msgid "-A=\tAssert the to . Putting '-' before disables the to " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:41 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:39 + #, fuzzy + msgid "Do not discard comments" + msgstr "ej avslutad kommentar" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:44 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:42 + msgid "Do not discard comments in macro expansions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:47 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:45 + msgid "-D[=]\tDefine a with as its value. If just is given, is taken to be 1" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:53 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:51 + #, fuzzy + msgid "-G\tPut global and static data smaller than bytes into a special section (on some targets)" + msgstr "" + " -G Placera global and statisk data mindre än \n" + " bytes i en speciell sektion (vissa arkitekturer)\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:56 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:54 + #, fuzzy + msgid "Print the name of header files as they are used" + msgstr "Kompilering av include-fil begärd" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:65 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:57 ++msgid "-I \tAdd to the end of the main include path. -I- gives more include path control; see info documentation" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:60 ++#, fuzzy ++msgid "Generate make dependencies" ++msgstr "dynamiskt beroende.\n" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:63 + #, fuzzy + msgid "Generate make dependencies and compile" + msgstr "Generera \"little endian\"-kod." + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:74 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:66 ++msgid "-MF \tWrite dependency output to the given file" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:69 + msgid "Treat missing header files as generated files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:80 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:72 ++msgid "Like -M but ignore system header files" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:75 + msgid "Like -MD but ignore system header files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:89 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:78 ++#, fuzzy ++msgid "Generate phony targets for all headers" ++msgstr "Generera kod för Intel as" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:81 + msgid "-MQ \tAdd a MAKE-quoted target" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:95 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:84 ++msgid "-MT \tAdd an unquoted target" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:87 + #, fuzzy + msgid "-O\tSet optimization level to " + msgstr " -O[nummer] Sätt optimeringsnivå till [nummer]\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:98 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:90 + #, fuzzy + msgid "Optimize for space rather than speed" + msgstr " -Os Optimera för storlek istället för hastighet\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:101 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:93 + #, fuzzy + msgid "Do not generate #line directives" + msgstr "Generera inte .size-direktiv" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:104 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:96 + msgid "-U\tUndefine " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:107 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:99 + msgid "This switch is deprecated; use -Wextra instead" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:113 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:105 + msgid "Warn about returning structures, unions or arrays" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:119 +-msgid "Warn about casting functions to incompatible types" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:108 ++msgid "Enable most warning messages" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:122 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:111 ++msgid "Warn about casting functions to incompatible types" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:114 + msgid "Warn about pointer casts which increase alignment" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:125 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:117 + msgid "Warn about casts which discard qualifiers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:128 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:120 + #, fuzzy + msgid "Warn about subscripts whose type is \"char\"" + msgstr "Varna om index har typen \"char\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:137 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:123 ++msgid "Warn about possibly nested block comments, and C++ comments spanning more than one physical line" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:126 ++msgid "Synonym for -Wcomment" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:129 + msgid "Warn about possibly confusing type conversions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:140 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:132 + #, fuzzy + msgid "Warn when all constructors and destructors are private" + msgstr "Varna när ett funktionsargument är en struktur" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:143 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:135 + #, fuzzy + msgid "Warn when a declaration is found after a statement" + msgstr "Varna när en funktion är oanvänd" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:146 +-msgid "Warn if deprecated class, method, or field is used" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:138 ++msgid "Warn about deprecated compiler features" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:149 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:141 + msgid "Warn about uses of __attribute__((deprecated)) declarations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:152 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:144 + msgid "Warn when an optimization pass is disabled" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:155 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:147 + #, fuzzy + msgid "Warn about compile-time integer division by zero" + msgstr "Fånga heltalsdivision med noll" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:158 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:150 + msgid "Warn about violations of Effective C++ style rules" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:161 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:153 + msgid "Warn about stray tokens after #elif and #endif" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:164 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:156 + msgid "Treat all warnings as errors" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:167 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:159 + #, fuzzy + msgid "Make implicit function declarations an error" + msgstr "motstridande deklarationer av \"%s\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:170 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:162 + msgid "Print extra (possibly unwanted) warnings" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:173 +-msgid "Warn if deprecated empty statements are found" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:176 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:165 + msgid "Warn if testing floating point numbers for equality" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:179 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:168 + msgid "Warn about printf/scanf/strftime/strfmon format string anomalies" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:182 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:171 + #, fuzzy + msgid "Warn if passing too many arguments to a function for its format string" + msgstr "För många argument till funktionen \"va_start\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:185 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:174 + msgid "Warn about format strings that are not literals" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:188 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:177 + msgid "Warn about possible security problems with format functions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:191 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:180 + msgid "Warn about strftime formats yielding 2-digit years" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:200 +-msgid "Enable warnings about inter-procedural problems" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:206 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:192 + msgid "Warn about implicit function declarations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:209 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:195 + msgid "Warn when a declaration does not specify a type" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:215 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:198 ++msgid "Deprecated. This switch has no effect." ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:201 + msgid "Warn about variables which are initialized to themselves." + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:218 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:204 + msgid "Warn when an inlined function cannot be inlined" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:221 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:207 + msgid "Warn about invalid uses of the \"offsetof\" macro" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:224 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:210 + msgid "Warn about PCH files that are found but not used" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:227 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:213 + #, fuzzy + msgid "-Wlarger-than-\tWarn if an object is larger than bytes" + msgstr " -Wlarger-than- Varna om objekt är större än bytes\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:230 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:216 + msgid "Do not warn about using \"long long\" when -pedantic" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:233 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:219 + #, fuzzy + msgid "Warn about suspicious declarations of \"main\"" + msgstr "Varna om tveksamma deklarationer av main" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:236 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:222 + #, fuzzy + msgid "Warn about possibly missing braces around initializers" + msgstr "Varna om eventuellt saknade parenteser" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:239 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:225 + #, fuzzy + msgid "Warn about global functions without previous declarations" + msgstr "sektion \"%s\" står i konflikt med tidigare deklaration" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:242 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:228 + msgid "Warn about functions which might be candidates for format attributes" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:245 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:231 + #, fuzzy + msgid "Warn about functions which might be candidates for __attribute__((noreturn))" + msgstr "Varna om funktioner som är möjliga kandidater för attributet noreturn" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:248 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:234 + #, fuzzy + msgid "Warn about global functions without prototypes" + msgstr "Varna om aritmetik med funktionspekare" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:251 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:237 + #, fuzzy + msgid "Warn about use of multi-character character constants" + msgstr "flerteckens teckenkonstant" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:254 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:240 + #, fuzzy + msgid "Warn about \"extern\" declarations not at file scope" + msgstr "Varna om multipla deklarationer av samma objekt" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:257 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:243 + msgid "Warn when non-templatized friend functions are declared within a template" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:260 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:246 + msgid "Warn about non-virtual destructors" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:266 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:252 + msgid "Warn if a C-style cast is used in a program" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:269 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:255 + #, fuzzy + msgid "Warn if an old-style parameter definition is used" + msgstr "Varna när en funktionsparameter är oanvänd" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:272 +-msgid "Warn if .class files are out of date" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:275 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:258 + msgid "Warn about overloaded virtual function names" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:278 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:261 + msgid "Warn when the packed attribute has no effect on struct layout" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:281 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:264 + #, fuzzy + msgid "Warn when padding is required to align structure members" + msgstr "Varna när ett funktionsargument är en struktur" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:284 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:267 + #, fuzzy + msgid "Warn about possibly missing parentheses" + msgstr "Varna om eventuellt saknade parenteser" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:287 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:270 + msgid "Warn when converting the type of pointers to member functions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:290 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:273 + msgid "Warn about function pointer arithmetic" + msgstr "Varna om aritmetik med funktionspekare" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:293 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:276 + #, fuzzy + msgid "Warn if inherited methods are unimplemented" + msgstr "Varna om nästlade kommentarer upptäcks" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:296 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:279 + msgid "Warn about multiple declarations of the same object" + msgstr "Varna om multipla deklarationer av samma objekt" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:299 +-msgid "Warn if modifiers are specified when not necessary" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:302 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:282 + msgid "Warn when the compiler reorders code" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:305 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:285 + msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:308 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:288 + msgid "Warn if a selector has multiple methods" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:311 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:291 + msgid "Warn about possible violations of sequence point rules" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:314 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:294 + msgid "Warn when one local variable shadows another" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:317 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:297 + #, fuzzy + msgid "Warn about signed-unsigned comparisons" + msgstr "Varna om jämförelser mellan signed/unsigned" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:320 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:300 + msgid "Warn when overload promotes from unsigned to signed" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:323 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:303 + #, fuzzy + msgid "Warn about code which might break strict aliasing rules" + msgstr "Varna om funktioner som är möjliga kandidater för attributet noreturn" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:326 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:306 + #, fuzzy + msgid "Warn about unprototyped function declarations" + msgstr "Varna om tveksamma deklarationer av main" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:329 +-msgid "Warn about constructs with surprising meanings" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:332 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:309 + msgid "Warn about enumerated switches, with no default, missing a case" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:335 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:312 + msgid "Warn about enumerated switches missing a \"default:\" statement" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:338 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:315 + msgid "Warn about all enumerated switches missing a specific case" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:341 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:318 + msgid "Warn when synthesis behavior differs from Cfront" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:344 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:321 + msgid "Do not suppress warnings from system headers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:347 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:324 + msgid "Warn about features not present in traditional C" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:356 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:327 ++msgid "Warn if trigraphs are encountered that might affect the meaning of the program" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:333 + msgid "Warn if an undefined macro is used in an #if directive" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:359 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:336 + #, fuzzy + msgid "Warn about uninitialized automatic variables" + msgstr "Varna om aritmetik med funktionspekare" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:362 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:339 + msgid "Warn about unrecognized pragmas" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:365 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:342 + msgid "Warn about code that will never be executed" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:368 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:345 + msgid "Enable all -Wunused- warnings" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:371 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:348 + msgid "Warn when a function is unused" + msgstr "Varna när en funktion är oanvänd" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:374 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:351 + msgid "Warn when a label is unused" + msgstr "Varna när en etikett är oanvänd" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:377 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:354 + msgid "Warn about macros defined in the main file that are not used" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:380 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:357 + msgid "Warn when a function parameter is unused" + msgstr "Varna när en funktionsparameter är oanvänd" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:383 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:360 + msgid "Warn when an expression value is unused" + msgstr "Varna när ett uttrycksvärde är oanvänt" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:386 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:363 + msgid "Warn when a variable is unused" + msgstr "Varna när en variabel är oanvänd" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:389 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:366 + msgid "Give strings the type \"array of char\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:392 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:369 + msgid "A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:395 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:372 + #, fuzzy + msgid "-aux-info \tEmit declaration information into " + msgstr " -aux-info Generera deklarationsinfo till fil \n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:407 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:384 + #, fuzzy + msgid "-d\tEnable dumps from specific passes of the compiler" + msgstr " -d[bokstäver] Slå på dumpning från angivna delar av kompilatorn\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:410 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:387 + msgid "-dumpbase \tSet the file basename to be used for dumps" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:413 +-msgid "--CLASSPATH\tDeprecated; use --classpath instead" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:425 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:399 + msgid "Enforce class member access control semantics" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:428 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:402 + msgid "Align the start of functions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:434 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:408 + msgid "Align labels which are only reached by jumping" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:440 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:414 + msgid "Align all labels" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:446 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:420 + msgid "Align the start of loops" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:455 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:429 + msgid "Change when template instances are emitted" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:458 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:432 + msgid "Specify that arguments may alias each other and globals" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:461 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:435 + msgid "Assume arguments may alias globals but not each other" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:464 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:438 + msgid "Assume arguments alias neither each other nor globals" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:467 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:441 + msgid "Recognize the \"asm\" keyword" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:479 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:444 + msgid "Generate unwind tables that are exact at each instruction boundary" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:482 +-msgid "Do not treat local variables and COMMON blocks as if they were named in SAVE statements" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:485 +-msgid "Backslashes in character and hollerith constants are special (not C-style)" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:488 +-msgid "Delete libU77 intrinsics with bad interfaces" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:491 +-msgid "Disable libU77 intrinsics with bad interfaces" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:494 +-msgid "Enable libU77 intrinsics with bad interfaces" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:497 +-msgid "Hide libU77 intrinsics with bad interfaces" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:500 +-msgid "--bootclasspath=\tReplace system path" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:503 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:447 + #, fuzzy + msgid "Generate code to check bounds before indexing arrays" + msgstr "Generera kod för Intel as" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:506 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:450 + msgid "Replace add, compare, branch with branch on count register" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:509 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:453 + msgid "Use profiling information for branch probabilities" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:512 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:456 + msgid "Perform branch target load optimization before prologue / epilogue threading" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:515 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:459 + msgid "Perform branch target load optimization after prologue / epilogue threading" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:518 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:462 + #, fuzzy + msgid "Recognize built-in functions" + msgstr "Känn inte igen några inbyggda funktioner" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:524 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:468 + #, fuzzy + msgid "-fcall-saved-\tMark as being preserved across functions" + msgstr " -fcall-saved- Ange att bevaras av funktioner\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:527 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:471 + #, fuzzy + msgid "-fcall-used-\tMark as being corrupted by function calls" + msgstr " -fcall-used- Ange att förstörs av funktionsanrop\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:530 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:474 + msgid "Save registers around function calls" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:533 +-msgid "Program written in strict mixed-case" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:536 +-msgid "Compile as if program written in lowercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:539 +-msgid "Preserve case used in program" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:542 +-msgid "Program written in lowercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:545 +-msgid "Program written in uppercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:548 +-msgid "Compile as if program written in uppercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:551 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:477 + msgid "Check the return value of new" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:557 +-msgid "--classpath=\tSet class path" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:560 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:480 + msgid "Do not put uninitialized globals in the common section" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:566 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:483 + msgid "Allow the arguments of the '?' operator to have different types" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:569 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:486 + msgid "Reduce the size of object files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:572 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:489 + #, fuzzy + msgid "Make string literals \"const char[]\" not \"char[]\"" + msgstr "Markera strängar som \"const char *\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:575 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:492 + msgid "-fconst-string-class=\tUse class for constant strings" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:578 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:495 + #, fuzzy + msgid "Perform a register copy-propagation optimization pass" + msgstr "Utför optimering för svansrekursion" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:581 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:498 + #, fuzzy + msgid "Perform cross-jumping optimization" + msgstr "Utför optimering för svansrekursion" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:584 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:501 + msgid "When running CSE, follow jumps to their targets" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:587 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:504 + msgid "When running CSE, follow conditional jumps" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:590 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:507 + #, fuzzy + msgid "Place data items into their own section" + msgstr "placera varje funktion i sin egen sektion" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:593 +-msgid "Emit special debugging information for COMMON and EQUIVALENCE (disabled)" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:596 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:510 + #, fuzzy + msgid "Inline member functions by default" + msgstr "I funktion `%s':" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:599 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:513 + msgid "Defer popping functions args from stack until later" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:602 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:516 + msgid "Attempt to fill delay slots of branch instructions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:605 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:519 + msgid "Delete useless null pointer checks" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:608 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:522 + #, fuzzy + msgid "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source location at the beginning of line-wrapped diagnostics" + msgstr " -fdiagnostics-show-location=[once | every-line] Anger hur ofta källkodspositioner skall skrivas ut, som prefix, i början av utskrift vid radbrytning\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:611 +-msgid "Allow '$' in symbol names" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:525 ++msgid "Permit '$' as an identifier character" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:614 +-msgid "Permit '$' as an identifier character" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:528 ++msgid "-fdump-\tDump various compiler internals to a file" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:620 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:531 + msgid "Suppress output of instruction numbers and line number notes in debugging dumps" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:626 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:537 + #, fuzzy + msgid "Perform DWARF2 duplicate elimination" + msgstr "Utför optimering för svansrekursion" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:629 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:632 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:540 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:543 + msgid "Perform unused type elimination in debug info" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:641 +-msgid "Have front end emulate COMPLEX arithmetic to avoid bugs" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:644 +-msgid "--encoding=\tChoose input encoding (defaults from your locale)" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:647 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:546 + #, fuzzy + msgid "Generate code to check exception specifications" + msgstr "\"%s\" är deklarerad som en funktion som returnerar en funktion" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:653 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:552 + msgid "Enable exception handling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:656 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:555 + msgid "-fexec-charset=\tConvert all strings and character constants to character set " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:659 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:558 + #, fuzzy + msgid "Perform a number of minor, expensive optimizations" + msgstr "Utför optimering för svansrekursion" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:668 +-msgid "f2c-compatible code can be generated" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:671 +-msgid "Delete non-FORTRAN-77 intrinsics f2c supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:674 +-msgid "Disable non-FORTRAN-77 intrinsics f2c supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:677 +-msgid "Enable non-FORTRAN-77 intrinsics f2c supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:680 +-msgid "Hide non-FORTRAN-77 intrinsics f2c supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:683 +-msgid "Unsupported; generate libf2c-calling code" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:686 +-msgid "Program is written in typical FORTRAN 66 dialect" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:689 +-msgid "Program is written in typical Unix-f77 dialect" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:692 +-msgid "Program is written in Fortran-90-ish dialect" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:695 +-msgid "Delete non-FORTRAN-77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:698 +-msgid "Disable non-FORTRAN-77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:701 +-msgid "Enable non-FORTRAN-77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:704 +-msgid "Hide non-FORTRAN-77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:716 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:567 + msgid "Assume no NaNs or infinities are generated" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:719 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:570 + #, fuzzy + msgid "-ffixed-\tMark as being unavailable to the compiler" + msgstr " -ffixed- Markera som ej tillgängligt för kompilatorn\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:725 +-#, fuzzy +-msgid "ffixed-line-length-\tSet the maximum line length to " +-msgstr " -finline-limit= Begränsa storlek på inline-funktioner till \n" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:728 +-msgid "Unsupported; affects code generation of arrays" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:731 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:579 + msgid "Do not store floats in registers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:734 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:582 + msgid "Scope of for-init-statement variables is local to the loop" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:737 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:585 + msgid "Copy memory address constants into registers before use" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:740 +-msgid "Always check for non gcj generated classes archives" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:743 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:588 + msgid "Copy memory operands into registers before use" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:746 +-msgid "Generate code to check subscript and substring bounds" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:749 +-msgid "Program is written in Fortran-90-ish free form" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:752 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:591 + msgid "Do not assume that standard C libraries and \"main\" exist" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:755 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:594 + msgid "Allow function addresses to be held in registers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:758 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:597 + #, fuzzy + msgid "Place each function into its own section" + msgstr "placera varje funktion i sin egen sektion" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:761 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:600 + msgid "Perform global common subexpression elimination" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:764 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:603 + msgid "Perform redundant load after store elimination in global common subexpression elimination" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:767 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:606 + msgid "Perform enhanced load motion during global common subexpression elimination" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:770 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:609 + msgid "Perform store motion after global common subexpression elimination" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:773 +-msgid "Enable fatal diagnostics about inter-procedural problems" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:776 +-msgid "Delete non-FORTRAN-77 intrinsics g77 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:779 +-msgid "Disable non-FORTRAN 77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:782 +-msgid "Enable non-FORTRAN 77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:785 +-msgid "Hide non-FORTRAN 77 intrinsics F90 supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:788 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:612 + msgid "Recognize GNU-defined keywords" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:791 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:615 + msgid "Generate code for GNU runtime environment" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:794 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:618 + msgid "Enable guessing of branch probabilities" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:809 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:630 + msgid "Assume normal C execution environment" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:812 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:633 + msgid "Enable support for huge objects" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:815 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:636 + msgid "Process #ident directives" + msgstr "Hantera #ident-direktiv" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:818 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:639 + msgid "Perform conversion of conditional jumps to branchless equivalents" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:821 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:642 + #, fuzzy + msgid "Perform conversion of conditional jumps to conditional execution" + msgstr "Föredra hopp framför villkorlig körning" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:824 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:645 + msgid "Export functions even if they can be inlined" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:827 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:648 + #, fuzzy + msgid "Emit implicit instantiations of inline templates" + msgstr "%s: Vid instansiering av \"%s\":\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:830 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:651 + #, fuzzy + msgid "Emit implicit instantiations of templates" + msgstr "%s: Vid instansiering av \"%s\":\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:833 +-msgid "Use offset tables for virtual method calls" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:836 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:654 + msgid "Do not generate .size directives" + msgstr "Generera inte .size-direktiv" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:839 +-msgid "Initialize local vars and arrays to zero" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:657 ++msgid "Pay attention to the \"inline\" keyword" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:842 +-msgid "Pay attention to the \"inline\" keyword" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:660 ++msgid "Integrate simple functions into their callers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:851 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:666 + #, fuzzy + msgid "-finline-limit=\tLimit the size of inlined functions to " + msgstr " -finline-limit= Begränsa storlek på inline-funktioner till \n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:854 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:669 + msgid "-finput-charset= Specify the default character set for source files." + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:857 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:672 + msgid "Instrument function entry and exit with profiling calls" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:860 +-msgid "Intrinsics letters in arbitrary cases" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:863 +-msgid "Intrinsics spelled as e.g. SqRt" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:866 +-msgid "Intrinsics in lowercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:869 +-msgid "Intrinsics in uppercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:872 +-msgid "Assume native functions are implemented using JNI" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:875 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:675 + msgid "Generate code for functions even if they are fully inlined" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:878 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:678 + msgid "Emit static const variables even if they are not used" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:884 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:684 + #, fuzzy + msgid "Give external symbols a leading underscore" + msgstr "Externa symboler startar med en understrykning" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:887 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:687 + #, fuzzy + msgid "Perform loop optimizations" + msgstr "Utför optimering för svansrekursion" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:890 +-msgid "Language keyword letters in arbitrary cases" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:893 +-msgid "Language keywords spelled as e.g. IOStat" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:896 +-msgid "Language keywords in lowercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:899 +-msgid "Language keywords in uppercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:902 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:690 + msgid "Set errno after built-in math functions" + msgstr "Sätt errno efter inbyggda matematikfunktioner" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:905 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:693 + msgid "Report on permanent memory allocation" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:908 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:696 + msgid "Attempt to merge identical constants and constant variables" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:911 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:699 + msgid "Attempt to merge identical constants across compilation units" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:914 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:702 + #, fuzzy + msgid "-fmessage-length=\tLimit diagnostics to characters per line. 0 suppresses line-wrapping" + msgstr " -fmessage-length= Begränsa felmeddelandens längd till tecken per rad. 0 stänger av radbrytning\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:917 +-msgid "Delete MIL-STD 1753 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:920 +-msgid "Disable MIL-STD 1753 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:923 +-msgid "Enable MIL-STD 1753 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:926 +-msgid "Hide MIL-STD 1753 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:929 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:705 + msgid "Force all loop invariant computations out of loops" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:932 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:708 + #, fuzzy + msgid "Don't warn about uses of Microsoft extensions" + msgstr "Varna inte om för många argument till format-funktioner" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:941 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:717 + msgid "Use graph-coloring register allocation" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:944 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:720 + msgid "Generate code for NeXT (Apple Mac OS X) runtime environment" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:947 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:723 + msgid "Assume that receivers of Objective-C messages may be nil" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:950 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:726 + msgid "Support synchronous non-call exceptions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:959 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:735 + msgid "Enable Objective-C exception and synchronization syntax" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:962 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1286 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:738 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:978 + msgid "Perform loop unrolling for all loops" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:965 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1289 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:741 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:981 + msgid "Perform loop unrolling when iteration count is known" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:968 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:744 + msgid "When possible do not generate stack frames" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:971 +-msgid "Take at least one trip through each iterative DO loop" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:974 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:747 + msgid "Recognize C++ kewords like \"compl\" and \"xor\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:977 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:750 + msgid "Do the full register move optimization pass" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:980 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:753 + msgid "Optimize sibling and tail recursive calls" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:983 +-msgid "Enable optimization of static class initialization code" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:986 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:756 + msgid "Enable optional diagnostics" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:992 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:759 + msgid "Pack structure members together without holes" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:995 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:762 + msgid "Return small aggregates in memory, not registers" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1001 +-msgid "Warn about use of (only a few for now) Fortran extensions" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1004 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:768 + msgid "Perform loop peeling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1007 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:771 + msgid "Enable machine specific peephole optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1010 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:774 + msgid "Enable an RTL peephole pass before sched2" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1013 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:777 + msgid "Downgrade conformance errors to warnings" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1016 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:780 + #, fuzzy + msgid "Generate position-independent code if possible" + msgstr "decimalpunkt i exponent - omöjligt!" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1019 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:783 + msgid "Generate position-independent code for executables if possible" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1022 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:786 + msgid "Generate prefetch instructions, if available, for arrays in loops" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1028 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:789 ++msgid "Treat the input file as already preprocessed" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:792 + msgid "Enable basic program profiling code" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1031 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:795 + msgid "Insert arc-based program profiling code" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1034 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:798 + msgid "Enable common options for generating profile info for profile feedback directed optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1037 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:801 + msgid "Enable common options for performing profile feedback directed optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1040 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:804 + msgid "Insert code to profile values of expressions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1046 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:810 + msgid "-frandom-seed=\tMake compile reproducible using " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1049 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:813 + msgid "Strength reduce all loop general induction variables" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1052 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:816 + #, fuzzy + msgid "Return small aggregates in registers" + msgstr "Skicka argument i register" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1055 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:819 + msgid "Enables a register move optimization" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1058 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:822 + #, fuzzy + msgid "Perform a register renaming optimization pass" + msgstr "Utför optimering för svansrekursion" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1061 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:825 + msgid "Reorder basic blocks to improve code placement" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1064 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:828 + msgid "Reorder functions to improve code placement" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1067 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:831 + msgid "Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1070 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:834 + msgid "Enable automatic template instantiation" + msgstr "Slå på automatisk mallinstansiering" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1073 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:837 + msgid "Add a common subexpression elimination pass after loop optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1076 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:840 + msgid "Run the loop optimizer twice" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1079 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:843 + msgid "Disable optimizations that assume default FP rounding behavior" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1082 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:846 + msgid "Generate run time type descriptor information" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1085 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:849 + msgid "Enable scheduling across basic blocks" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1088 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:852 + msgid "Allow speculative motion of non-loads" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1091 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:855 + msgid "Allow speculative motion of some loads" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1094 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:858 + msgid "Allow speculative motion of more loads" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1097 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:861 + msgid "Allow premature scheduling of queued insns" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1100 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:864 + msgid "Set dependence distance checking in premature scheduling of queued insns" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1103 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:867 + msgid "-fsched-stalled-insns-dep= Set dependence distance checking in premature scheduling of queued insns" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1106 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:870 + msgid "-fsched-stalled-insns= Set number of queued insns that can be prematurely scheduled" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1109 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:873 + msgid "-fsched-verbose=\tSet the verbosity level of the scheduler" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1112 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:876 + msgid "If scheduling post reload, do superblock scheduling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1115 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:879 + msgid "If scheduling post reload, do trace scheduling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1118 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:882 + msgid "Reschedule instructions before register allocation" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1121 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:885 + msgid "Reschedule instructions after register allocation" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1124 +-msgid "Allow appending a second underscore to externals" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1127 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:888 + msgid "Mark data as shared rather than private" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1130 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:891 + msgid "Use the same size for double as for float" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1133 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:894 + msgid "Use the narrowest integer type possible for enumeration types" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1136 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:897 + msgid "Force the underlying type for \"wchar_t\" to be \"unsigned short\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1142 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:903 + msgid "Disable optimizations observable by IEEE signaling NaNs" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1145 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:906 + msgid "When \"signed\" or \"unsigned\" is not given make the bitfield signed" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1148 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:909 + msgid "Make \"char\" signed by default" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1151 +-msgid "Do not print names of program units as they are compiled" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1154 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:912 + #, fuzzy + msgid "Convert floating point constants to single precision constants" + msgstr "Använd flyttalsinstruktioner i hårdvara" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1157 +-msgid "Internally convert most source to lowercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1160 +-msgid "Internally preserve source case" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1163 +-msgid "Internally convert most source to uppercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1169 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:918 + msgid "Insert stack checking code into the program" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1175 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:924 + msgid "-fstack-limit-register=\tTrap if the stack goes past " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1178 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:927 + msgid "-fstack-limit-symbol=\tTrap if the stack goes past symbol " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1181 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:930 + msgid "Display statistics accumulated during compilation" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1184 +-msgid "Enable assignability checks for stores into object arrays" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1187 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:933 + #, fuzzy + msgid "Perform strength reduction optimizations" + msgstr "Utför optimering för svansrekursion" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1190 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:936 + msgid "Assume strict aliasing rules apply" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1199 +-msgid "Symbol names spelled in mixed case" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1202 +-msgid "Symbol names in lowercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1205 +-msgid "Symbol names in uppercase" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1208 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:942 + msgid "Check for syntax errors, then stop" + msgstr "Leta efter syntaxfel, stoppa sedan" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1211 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:945 + msgid "-ftabstop=\tDistance between tab stops for column reporting" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1214 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:948 + #, fuzzy + msgid "-ftemplate-depth-\tSpecify maximum template instantiation depth" + msgstr "Ange maximalt instansieringsdjup för mallar" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1217 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:951 + msgid "Create data files needed by \"gcov\"" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1223 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:957 + #, fuzzy + msgid "Perform jump threading optimizations" + msgstr "Utför optimering för svansrekursion" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1226 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:960 + msgid "Report the time taken by each compiler pass" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1229 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:963 + msgid "-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tSet the default thread-local storage code generation model" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1232 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:966 + msgid "Perform superblock formation via tail duplication" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1235 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:969 + msgid "Assume floating-point operations can trap" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1238 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:972 + msgid "Trap for signed overflow in addition, subtraction and multiplication" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1241 +-msgid "Make prefix-radix non-decimal constants be typeless" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1244 +-msgid "Allow all ugly features" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1247 +-msgid "Hollerith and typeless can be passed as arguments" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1250 +-msgid "Allow ordinary copying of ASSIGN'ed vars" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1253 +-msgid "Dummy array dimensioned to (1) is assumed-size" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1256 +-msgid "Trailing comma in procedure call denotes null argument" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1259 +-msgid "Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1262 +-msgid "Initialization via DATA and PARAMETER is not type-compatible" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1265 +-msgid "Allow INTEGER and LOGICAL interchangeability" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1268 +-msgid "Append underscores to externals" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1271 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:975 + msgid "Compile whole compilation unit at a time" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1274 +-msgid "Delete libU77 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1277 +-msgid "Disable libU77 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1280 +-msgid "Enable libU77 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1283 +-msgid "Hide libU77 intrinsics" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1292 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:984 + msgid "Allow math optimizations that may violate IEEE or ISO standards" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1295 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:987 + msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1298 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:990 + msgid "Make \"char\" unsigned by default" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1301 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:993 + msgid "Perform loop unswitching" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1304 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:996 + msgid "Just generate unwind tables for exception handling" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1310 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:999 + msgid "Use __cxa_atexit to register destructors" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1316 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1002 + msgid "Add extra commentary to assembler output" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1319 +-msgid "Print g77-specific version information and run internal tests" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1322 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1005 + msgid "Use expression value profiles in optimizations" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1325 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1008 + msgid "Discard unused virtual functions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1328 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1011 + msgid "Implement vtables using thunks" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1331 +-msgid "Program is written in VXT (Digital-like) FORTRAN" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1334 +-msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1337 +-msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1340 +-msgid "Enable non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1343 +-msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1349 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1014 + msgid "Emit common-like symbols as weak symbols" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1352 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1017 + msgid "Construct webs and split unrelated uses of single variable" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1355 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1020 + msgid "-fwide-exec-charset=\tConvert all wide strings and character constants to character set " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1358 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1023 + msgid "Generate a #line directive pointing at the current working directory" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1361 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1026 + msgid "Assume signed arithmetic overflow wraps around" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1364 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1029 + msgid "Store strings in writable data section" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1367 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1032 + msgid "Emit cross referencing information" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1370 +-#, fuzzy +-msgid "Print internal debugging-related information" +-msgstr "inte tillräcklig typinformation" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1373 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1035 + msgid "Put zero initialized data in the bss section" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1376 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1038 + msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1379 +-msgid "Treat initial values of 0 like non-zero values" +-msgstr "" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1382 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1041 + #, fuzzy + msgid "Generate debug information in default format" + msgstr "Generera kod för \"big endian\"" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1385 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1044 + msgid "Generate debug information in COFF format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1388 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1047 + msgid "Generate debug information in DWARF v2 format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1391 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1050 + msgid "Dump declarations to a .decl file" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1394 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1053 + msgid "Generate debug information in default extended format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1397 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1056 + #, fuzzy + msgid "Generate debug information in STABS format" + msgstr "Generera kod för en DLL" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1400 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1059 + msgid "Generate debug information in extended STABS format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1403 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1062 + #, fuzzy + msgid "Generate debug information in VMS format" + msgstr "Generera kod för en DLL" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1406 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1065 + msgid "Generate debug information in XCOFF format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1409 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1068 + msgid "Generate debug information in extended XCOFF format" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1412 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1071 + msgid "-idirafter \tAdd to the end of the system include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1415 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1074 + msgid "-imacros \tAccept definition of macros in " + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1418 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1077 + msgid "-include \tInclude the contents of before other files" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1421 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1080 + msgid "-iprefix \tSpecify as a prefix for next two options" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1424 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1083 + msgid "-isysroot \tSet to be the system root directory" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1427 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1086 + msgid "-isystem \tAdd to the start of the system include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1430 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1089 + msgid "-iwithprefix \tAdd to the end of the system include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1433 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1092 + msgid "-iwithprefixbefore \tAdd to the end of the main include path" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1445 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1104 + msgid "Do not search standard system include directories (those specified with -isystem will still be used)" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1448 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1107 + msgid "Do not search standard system include directories for C++" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1451 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1110 + #, fuzzy + msgid "-o \tPlace output into " + msgstr " -o Skriv utdata i \n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1454 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1113 + #, fuzzy + msgid "Enable function profiling" + msgstr " -p Slå på funktionsprofilering\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1457 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1116 + #, fuzzy + msgid "Issue warnings needed for strict compliance to the standard" + msgstr " -pedantic Ge varningar som krävs för att strikt följa ISO C\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1460 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1119 + msgid "Like -pedantic but issue them as errors" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1463 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1122 + msgid "Generate C header of platform-specific features" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1466 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1125 + #, fuzzy + msgid "Do not display functions compiled or elapsed time" + msgstr " -quiet Visa inte kompilerade funktioner eller tiden som förbrukats\n" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1469 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1128 + #, fuzzy + msgid "Remap file names when including files" + msgstr "tomt filnamn i #%s" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1472 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1131 + msgid "Conform to the ISO 1998 C++ standard" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1475 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1134 + msgid "Conform to the ISO 1990 C standard" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1478 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1137 + msgid "Conform to the ISO 1999 C standard" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1481 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1502 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1505 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1140 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1161 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1164 + msgid "Deprecated in favor of -std=c99" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1484 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1143 + msgid "Conform to the ISO 1998 C++ standard with GNU extensions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1487 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1146 + msgid "Conform to the ISO 1990 C standard with GNU extensions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1490 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1149 + msgid "Conform to the ISO 1999 C standard with GNU extensions" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1493 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1152 + msgid "Deprecated in favor of -std=gnu99" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1496 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1155 + msgid "Deprecated in favor of -std=c89" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1499 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1158 + msgid "Conform to the ISO 1990 C standard as amended in 1994" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1508 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1167 + msgid "Enable traditional preprocessing" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1511 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1170 + msgid "-trigraphs\tSupport ISO C trigraphs" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1514 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1173 + msgid "Do not predefine system-specific and GCC-specific macros" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1517 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1176 + msgid "Enable verbose output" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1523 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1179 ++#, fuzzy ++msgid "Display the compiler's version" ++msgstr " -version Visa kompilatorns version\n" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1182 + #, fuzzy + msgid "Suppress warnings" + msgstr "%s: varning: " + +-#: config/i386/freebsd-aout.h:215 config/rs6000/sysv4.h:1089 ++#: config/i386/cygwin.h:29 ++msgid "mno-cygwin and mno-win32 are not compatible" ++msgstr "mno-cygwin och mno-win32 är inkompatibla" ++ ++#: config/i386/cygwin.h:70 config/i386/mingw32.h:58 ++msgid "shared and mdll are not compatible" ++msgstr "shared och mdll är inkompatibla" ++ ++#: config/i386/freebsd-aout.h:215 + msgid "`-p' not supported; use `-pg' and gprof(1)" + msgstr "\"-p\" stödjs inte; använd \"-pg\" och gprof(1)" + +@@ -22058,6 +21755,27 @@ + msgid "GCC does not support -CC without using -E" + msgstr "GNU C stödjer inte -C utan -E" + ++#: config/i386/sco5.h:191 ++#, fuzzy ++msgid "-pg not supported on this platform" ++msgstr "attributet \"section\" stöds inte för denna målarkitektur" ++ ++#: config/i386/sco5.h:192 ++#, fuzzy ++msgid "-p and -pp specified - pick one" ++msgstr "-I- angiven två gånger" ++ ++#: config/i386/sco5.h:266 ++#, fuzzy ++msgid "-G and -static are mutually exclusive" ++msgstr "-pedantic och -traditional är ömsesidigt uteslutande" ++ ++#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22 ++#: config/sparc/sol2-bi.h:167 config/sparc/sol2-bi.h:172 ++#, fuzzy ++msgid "does not support multilib" ++msgstr "ISO C89 stöder inte typen complex" ++ + #: config/sparc/linux64.h:211 config/sparc/linux64.h:222 + #: config/sparc/netbsd-elf.h:140 config/sparc/netbsd-elf.h:159 + #: config/sparc/sol2-bi.h:195 config/sparc/sol2-bi.h:205 +@@ -22065,43 +21783,39 @@ + msgid "may not use both -m32 and -m64" + msgstr "får inte använda både -mfp64 och -m4650" + +-#: config/i386/mingw32.h:58 config/i386/cygwin.h:70 +-msgid "shared and mdll are not compatible" +-msgstr "shared och mdll är inkompatibla" +- +-#: config/darwin.h:215 ++#: config/darwin.h:222 + msgid "-current_version only allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:218 ++#: config/darwin.h:225 + msgid "-install_name only allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:223 ++#: config/darwin.h:230 + msgid "-bundle not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:224 ++#: config/darwin.h:231 + msgid "-bundle_loader not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:225 ++#: config/darwin.h:232 + msgid "-client_name not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:228 ++#: config/darwin.h:235 + msgid "-force_cpusubtype_ALL not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:229 ++#: config/darwin.h:236 + msgid "-force_flat_namespace not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:231 ++#: config/darwin.h:238 + msgid "-keep_private_externs not allowed with -dynamiclib" + msgstr "" + +-#: config/darwin.h:232 ++#: config/darwin.h:239 + msgid "-private_bundle not allowed with -dynamiclib" + msgstr "" + +@@ -22118,53 +21832,11 @@ + msgid "may not use both -EB and -EL" + msgstr "får inte använda både -EB och -EL" + +-#: config/mips/mips.h:988 +-#, fuzzy +-msgid "-pipe is not supported" +-msgstr "-pipe stöds inte." +- +-#: java/jvspec.c:80 ada/lang-specs.h:34 gcc.c:767 +-msgid "-pg and -fomit-frame-pointer are incompatible" +-msgstr "-pg och -fomit-frame-pointer är inkompatibla" +- +-#: java/lang-specs.h:34 +-msgid "-fjni and -femit-class-files are incompatible" +-msgstr "" +- +-#: java/lang-specs.h:35 +-msgid "-fjni and -femit-class-file are incompatible" +-msgstr "" +- +-#: java/lang-specs.h:36 java/lang-specs.h:37 +-msgid "-femit-class-file should used along with -fsyntax-only" +-msgstr "" +- + #: treelang/lang-specs.h:52 + #, fuzzy + msgid "-pg or -p and -fomit-frame-pointer are incompatible" + msgstr "-pg och -fomit-frame-pointer är inkompatibla" + +-#: config/sparc/sol2-bi.h:167 config/sparc/sol2-bi.h:172 +-#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22 +-#, fuzzy +-msgid "does not support multilib" +-msgstr "ISO C89 stöder inte typen complex" +- +-#: config/i386/sco5.h:191 +-#, fuzzy +-msgid "-pg not supported on this platform" +-msgstr "attributet \"section\" stöds inte för denna målarkitektur" +- +-#: config/i386/sco5.h:192 +-#, fuzzy +-msgid "-p and -pp specified - pick one" +-msgstr "-I- angiven två gånger" +- +-#: config/i386/sco5.h:266 +-#, fuzzy +-msgid "-G and -static are mutually exclusive" +-msgstr "-pedantic och -traditional är ömsesidigt uteslutande" +- + #: config/arm/arm.h:198 + msgid "-mapcs-26 and -mapcs-32 may not be used together" + msgstr "-mapcs-26 och -mapcs-32 får inte användas tillsammans" +@@ -22181,6 +21853,15 @@ + msgid "the m210 does not have little endian support" + msgstr "" + ++#: config/mips/mips.h:988 ++#, fuzzy ++msgid "-pipe is not supported" ++msgstr "-pipe stöds inte." ++ ++#: ada/lang-specs.h:34 java/jvspec.c:80 gcc.c:767 ++msgid "-pg and -fomit-frame-pointer are incompatible" ++msgstr "-pg och -fomit-frame-pointer är inkompatibla" ++ + #: ada/lang-specs.h:36 + msgid "one of -c, -S, -gnatc, -gnatz, or -gnats is required for Ada" + msgstr "" +@@ -22195,8 +21876,16 @@ + msgid "-msingle-float and -msoft-float can not both be specified" + msgstr "-msingle-float och -msoft-float kan inte båda anges." + +-#: config/rs6000/darwin.h:98 +-msgid " conflicting code gen style switches are used" ++#: java/lang-specs.h:34 ++msgid "-fjni and -femit-class-files are incompatible" ++msgstr "" ++ ++#: java/lang-specs.h:35 ++msgid "-fjni and -femit-class-file are incompatible" ++msgstr "" ++ ++#: java/lang-specs.h:36 java/lang-specs.h:37 ++msgid "-femit-class-file should used along with -fsyntax-only" + msgstr "" + + #: gcc.c:743 +@@ -22208,9 +21897,9 @@ + msgid "-E required when input is from standard input" + msgstr "-E krävs när indata tas från standard input" + +-#: config/i386/cygwin.h:29 +-msgid "mno-cygwin and mno-win32 are not compatible" +-msgstr "mno-cygwin och mno-win32 är inkompatibla" ++#: config/rs6000/darwin.h:98 ++msgid " conflicting code gen style switches are used" ++msgstr "" + + #~ msgid "concatenation of string literals with __FUNCTION__ is deprecated" + #~ msgstr "sammanslagning av strängliteraler tillsammans med __FUNCTION__ är föråldrat" +@@ -22513,10 +22202,6 @@ + #~ msgid "missing binary operator" + #~ msgstr "saknas '(' efter predikat" + +-#, fuzzy +-#~ msgid "operator '%s' has no left operand" +-#~ msgstr "parameter \"%s\" har en inkomplett typ" +- + #~ msgid "absolute file name in remap_filename" + #~ msgstr "absolut filnamn i remap_filename" + +@@ -22843,9 +22528,6 @@ + #~ msgid " -Wunused Enable unused warnings\n" + #~ msgstr " -Wunused Slå på oanvända varningar\n" + +-#~ msgid " -version Display the compiler's version\n" +-#~ msgstr " -version Visa kompilatorns version\n" +- + #~ msgid " %-23.23s [undocumented]\n" + #~ msgstr " %-23.23s [odokumenterad]\n" + +@@ -23193,10 +22875,6 @@ + #~ msgid "invalid data member initialization" + #~ msgstr "Slå på automatisk mallinstansiering" + +-#, fuzzy +-#~ msgid "`%T' is not a class or union type" +-#~ msgstr "ISO C förbjuder typkonvertering till unionstyper" +- + #~ msgid "`%s' not supported by %s" + #~ msgstr "\"%s\" stöds inte av %s" + +Index: gcc/po/tr.po +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/po/tr.po,v +retrieving revision 1.5.8.4 +retrieving revision 1.5.8.5 +diff -u -r1.5.8.4 -r1.5.8.5 +--- gcc/po/tr.po 14 Sep 2004 20:38:20 -0000 1.5.8.4 ++++ gcc/po/tr.po 7 Nov 2004 19:59:58 -0000 1.5.8.5 +@@ -6,7 +6,7 @@ + msgstr "" + "Project-Id-Version: gcc 3.4.2\n" + "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" +-"POT-Creation-Date: 2004-07-01 11:41-0700\n" ++"POT-Creation-Date: 2004-11-04 19:12-0800\n" + "PO-Revision-Date: 2004-09-14 17:59+0300\n" + "Last-Translator: Nilgün Belma Bugüner \n" + "Language-Team: Turkish \n" +@@ -35,16 +35,16 @@ + msgid "`%s' attribute only applies to function types" + msgstr "`%s' özelliÄŸi sadece iÅŸlev türlere uygulanır" + +-#: attribs.c:416 c-common.c:4307 c-common.c:4326 c-common.c:4344 +-#: c-common.c:4371 c-common.c:4390 c-common.c:4413 c-common.c:4436 +-#: c-common.c:4462 c-common.c:4496 c-common.c:4540 c-common.c:4568 +-#: c-common.c:4596 c-common.c:4615 c-common.c:4870 c-common.c:4892 +-#: c-common.c:4927 c-common.c:4994 c-common.c:5040 c-common.c:5098 +-#: c-common.c:5129 c-common.c:5475 c-common.c:5498 c-common.c:5537 +-#: config/arm/arm.c:2281 config/arm/arm.c:2308 config/avr/avr.c:4539 +-#: config/h8300/h8300.c:4284 config/h8300/h8300.c:4307 config/i386/i386.c:1620 +-#: config/i386/i386.c:15397 config/i386/winnt.c:86 config/ia64/ia64.c:1057 +-#: config/ip2k/ip2k.c:3151 ++#: attribs.c:416 c-common.c:4306 c-common.c:4325 c-common.c:4343 ++#: c-common.c:4370 c-common.c:4389 c-common.c:4412 c-common.c:4435 ++#: c-common.c:4461 c-common.c:4495 c-common.c:4539 c-common.c:4567 ++#: c-common.c:4595 c-common.c:4614 c-common.c:4881 c-common.c:4903 ++#: c-common.c:4938 c-common.c:5005 c-common.c:5051 c-common.c:5109 ++#: c-common.c:5140 c-common.c:5440 c-common.c:5463 c-common.c:5502 ++#: config/arm/arm.c:2281 config/arm/arm.c:2308 config/avr/avr.c:4504 ++#: config/h8300/h8300.c:4284 config/h8300/h8300.c:4307 config/i386/i386.c:1626 ++#: config/i386/i386.c:15398 config/i386/winnt.c:86 config/ia64/ia64.c:1057 ++#: config/ip2k/ip2k.c:3151 config/rs6000/rs6000.c:15035 + #, c-format + msgid "`%s' attribute ignored" + msgstr "`%s' özelliÄŸi yoksayıldı" +@@ -118,7 +118,7 @@ + + #. We can, however, treat "undefined" any way we please. + #. Call abort to encourage the user to fix the program. +-#: builtins.c:4134 c-typeck.c:1733 ++#: builtins.c:4134 c-typeck.c:1713 + msgid "if this code is reached, the program will abort" + msgstr "Bu kodun bitiminde uygulama çıkacak" + +@@ -155,386 +155,391 @@ + msgid "target format does not support infinity" + msgstr "hedef biçim sonsuzu desteklemiyor" + +-#: c-common.c:917 ++#: c-common.c:916 + msgid "%Hsuggest explicit braces to avoid ambiguous `else'" + msgstr "%Hanlamca belirsiz `else' den kaçınmak için kaÅŸlı ayraçlar önerilir" + +-#: c-common.c:1141 ++#: c-common.c:1140 + msgid "%J'%D' is not defined outside of function scope" + msgstr "%J iÅŸlev etki alanı dışında tanımlı olmayan '%D'" + +-#: c-common.c:1161 ++#: c-common.c:1160 + #, c-format + msgid "string length `%d' is greater than the length `%d' ISO C%d compilers are required to support" + msgstr "dizge uzunluÄŸu `%1$d' ISO C%3$d derleyiclerin desteklediÄŸi uzunluk %2$d den büyük" + +-#: c-common.c:1201 ++#: c-common.c:1200 + msgid "overflow in constant expression" + msgstr "sabit ifadesinde taÅŸma" + +-#: c-common.c:1221 ++#: c-common.c:1220 + msgid "integer overflow in expression" + msgstr "ifadede tamsayı taÅŸması" + +-#: c-common.c:1230 ++#: c-common.c:1229 + msgid "floating point overflow in expression" + msgstr "ifadede gerçel sayı taÅŸması" + +-#: c-common.c:1236 ++#: c-common.c:1235 + msgid "vector overflow in expression" + msgstr "ifadede vektör taÅŸması" + + #. This detects cases like converting -129 or 256 to unsigned char. +-#: c-common.c:1258 ++#: c-common.c:1257 + msgid "large integer implicitly truncated to unsigned type" + msgstr "büyük tamsayı örtük olarak unsigned türe indirgendi" + +-#: c-common.c:1260 ++#: c-common.c:1259 + msgid "negative integer implicitly converted to unsigned type" + msgstr "negatif tamsayı örtük olarak unsigned türe dönüştürüldü" + +-#: c-common.c:1306 ++#: c-common.c:1305 + msgid "overflow in implicit constant conversion" + msgstr "örtük sabit dönüşümünde taÅŸma" + +-#: c-common.c:1442 ++#: c-common.c:1441 + #, c-format + msgid "operation on `%s' may be undefined" + msgstr "`%s' üstündeki iÅŸlem tanımsız olabilir" + +-#: c-common.c:1726 ++#: c-common.c:1725 + msgid "expression statement has incomplete type" + msgstr "ifade deyimi boÅŸ tür içeriyor" + +-#: c-common.c:1758 ++#: c-common.c:1757 + msgid "case label does not reduce to an integer constant" + msgstr "case etiketi bir tamsayı sabite indirgenmez" + +-#: c-common.c:2088 ++#: c-common.c:2087 + msgid "invalid truth-value expression" + msgstr "doÄŸruluk-deÄŸeri ifadesi geçersiz" + +-#: c-common.c:2139 ++#: c-common.c:2138 + #, c-format + msgid "invalid operands to binary %s" + msgstr "iki terimli %s için terimler geçersiz" + +-#: c-common.c:2373 ++#: c-common.c:2372 + msgid "comparison is always false due to limited range of data type" + msgstr "veri türünün kapsadığı sınırlardan dolayı karşılaÅŸtırma sonucu daima yanlıştır" + +-#: c-common.c:2375 ++#: c-common.c:2374 + msgid "comparison is always true due to limited range of data type" + msgstr "veri türünün kapsadığı sınırlardan dolayı karşılaÅŸtırma sonucu daima doÄŸrudur" + +-#: c-common.c:2445 ++#: c-common.c:2444 + msgid "comparison of unsigned expression >= 0 is always true" + msgstr "unsigned ifade >=0 daima doÄŸrudur" + +-#: c-common.c:2454 ++#: c-common.c:2453 + msgid "comparison of unsigned expression < 0 is always false" + msgstr "unsigned ifade < 0 daima yanlıştır" + +-#: c-common.c:2499 ++#: c-common.c:2498 + msgid "pointer of type `void *' used in arithmetic" + msgstr "aritmetikte `void *' türünde gösterici kullanılmış" + +-#: c-common.c:2505 ++#: c-common.c:2504 + msgid "pointer to a function used in arithmetic" + msgstr "aritmetikte iÅŸlev göstericisi kullanılmış" + +-#: c-common.c:2511 ++#: c-common.c:2510 + msgid "pointer to member function used in arithmetic" + msgstr "aritmetikte üye iÅŸlev göstericisi kullanılmış" + +-#: c-common.c:2600 f/com.c:14734 ++#: c-common.c:2599 f/com.c:14734 + msgid "struct type value used where scalar is required" + msgstr "sayısal deÄŸer gerekirken yapı türü deÄŸer kullanılmış" + +-#: c-common.c:2604 f/com.c:14738 ++#: c-common.c:2603 f/com.c:14738 + msgid "union type value used where scalar is required" + msgstr "sayısal deÄŸer gerekirken birleÅŸik yapı türü deÄŸer kullanılmış" + +-#: c-common.c:2608 f/com.c:14742 ++#: c-common.c:2607 f/com.c:14742 + msgid "array type value used where scalar is required" + msgstr "sayısal deÄŸer gerekirken dizi türü deÄŸer kullanılmış" + + #. Common Ada/Pascal programmer's mistake. We always warn + #. about this since it is so bad. +-#: c-common.c:2645 ++#: c-common.c:2644 + msgid "the address of `%D', will always evaluate as `true'" + msgstr "`%D' nin adresi, daima `true' olarak deÄŸerlendirilecek" + +-#: c-common.c:2739 f/com.c:14874 ++#: c-common.c:2738 f/com.c:14874 + msgid "suggest parentheses around assignment used as truth value" + msgstr "atamayı sarmalayan parantezler muhtemelen doÄŸruluk deÄŸeri olarak kullanılmış" + +-#: c-common.c:2785 c-common.c:2825 ++#: c-common.c:2784 c-common.c:2824 + msgid "invalid use of `restrict'" + msgstr "`restrict' kullanımı geçersiz" + +-#: c-common.c:2935 ++#: c-common.c:2934 + msgid "invalid application of `sizeof' to a function type" + msgstr "bir iÅŸlev türüne geçersiz `sizeof' uygulaması " + +-#: c-common.c:2945 ++#: c-common.c:2944 + #, c-format + msgid "invalid application of `%s' to a void type" + msgstr "bir void türe geçersiz `%s' uygulaması" + +-#: c-common.c:2951 ++#: c-common.c:2950 + msgid "invalid application of `%s' to incomplete type `%T' " + msgstr "`%s' `%T' tamamlanmamış türe uygulanırsa geçersizdir" + +-#: c-common.c:2992 ++#: c-common.c:2991 + msgid "`__alignof' applied to a bit-field" + msgstr "`__alignof' bir bit-alanına uygulanmış" + +-#: c-common.c:3484 ++#: c-common.c:3483 + #, c-format + msgid "cannot disable built-in function `%s'" + msgstr "`%s' yerleÅŸik iÅŸlev olduÄŸundan iptal edilemez" + +-#: c-common.c:3645 c-typeck.c:1974 ++#: c-common.c:3644 c-typeck.c:1954 + #, c-format + msgid "too few arguments to function `%s'" + msgstr "`%s' iÅŸlevi için argümanlar çok az" + +-#: c-common.c:3651 c-typeck.c:1835 ++#: c-common.c:3650 c-typeck.c:1815 + #, c-format + msgid "too many arguments to function `%s'" + msgstr "`%s' iÅŸlevi için argümanlar çok fazla" + +-#: c-common.c:3670 ++#: c-common.c:3669 + #, c-format + msgid "non-floating-point argument to function `%s'" + msgstr "`%s' iÅŸlevine kayan noktalı olmayan argüman" + +-#: c-common.c:3897 ++#: c-common.c:3896 + msgid "pointers are not permitted as case values" + msgstr "case deÄŸeri olarak göstericiler kullanılamaz" + +-#: c-common.c:3901 ++#: c-common.c:3900 + msgid "range expressions in switch statements are non-standard" + msgstr "switch deyimlerinde aralık ifadeleri standartdışıdır" + +-#: c-common.c:3930 ++#: c-common.c:3929 + msgid "empty range specified" + msgstr "boÅŸ aralık belirtilmiÅŸ" + +-#: c-common.c:3981 ++#: c-common.c:3980 + msgid "duplicate (or overlapping) case value" + msgstr "yinelenmiÅŸ (ya da birbirini kapsayan) case deÄŸerleri" + +-#: c-common.c:3982 ++#: c-common.c:3981 + msgid "%Jthis is the first entry overlapping that value" + msgstr "%J bu, aynı deÄŸeri kapsayan ilk girdi" + +-#: c-common.c:3986 ++#: c-common.c:3985 + msgid "duplicate case value" + msgstr "yinelenmiÅŸ case deÄŸeri" + +-#: c-common.c:3987 ++#: c-common.c:3986 + msgid "%Jpreviously used here" + msgstr "%J önce burada kullanılmış" + +-#: c-common.c:3991 ++#: c-common.c:3990 + msgid "multiple default labels in one switch" + msgstr "tek switch'te çok sayıda öntanımlı etiket" + +-#: c-common.c:3992 ++#: c-common.c:3991 + msgid "%Jthis is the first default label" + msgstr "%J bu, ilk öntanımlı etiket" + +-#: c-common.c:4017 ++#: c-common.c:4016 + msgid "taking the address of a label is non-standard" + msgstr "bir etiket adresinin alınması standartdışıdır" + +-#: c-common.c:4063 ++#: c-common.c:4062 + msgid "%Hignoring return value of `%D', declared with attribute warn_unused_result" + msgstr "%H`%D' dönüş deÄŸeri yoksayılıyor, warn_unused_result özelliÄŸi ile bildirilmiÅŸ" + +-#: c-common.c:4068 ++#: c-common.c:4067 + msgid "%Hignoring return value of function declared with attribute warn_unused_result" + msgstr "%Hwarn_unused_result özelliÄŸi ile bildirilen iÅŸlevin dönüş deÄŸeri yoksayılıyor" + +-#: c-common.c:4649 ++#: c-common.c:4651 + #, c-format + msgid "unknown machine mode `%s'" + msgstr "'%s makina kipi bilinmiyor" + +-#: c-common.c:4652 ++#: c-common.c:4654 + #, c-format + msgid "no data type for mode `%s'" + msgstr "'%s' kipi için bir veri türü yok" + +-#: c-common.c:4656 ++#: c-common.c:4658 + #, c-format + msgid "invalid pointer mode `%s'" + msgstr "gösterici kipi olarak `%s' geçersiz" + +-#: c-common.c:4663 c-common.c:5226 ++#: c-common.c:4665 c-common.c:5237 + #, c-format + msgid "unable to emulate '%s'" + msgstr "'%s' öykünümü yapılamıyor" + +-#: c-common.c:4707 ++#: c-common.c:4686 ++#, fuzzy, c-format ++msgid "mode `%s' applied to inappropriate type" ++msgstr "küme olmayan türe `sigof' uygulanmış" ++ ++#: c-common.c:4718 + msgid "%Jsection attribute cannot be specified for local variables" + msgstr "%J bölge özelliÄŸi yerel deÄŸiÅŸkenler için belirtilmiÅŸ olamaz" + +-#: c-common.c:4718 ++#: c-common.c:4729 + msgid "%Jsection of '%D' conflicts with previous declaration" + msgstr "%J `%D' bölgesi önceki bildirimle çeliÅŸiyor" + +-#: c-common.c:4727 ++#: c-common.c:4738 + msgid "%Jsection attribute not allowed for '%D'" + msgstr "%J bölge özelliÄŸine `%D' için izin verilmez" + +-#: c-common.c:4733 ++#: c-common.c:4744 + msgid "%Jsection attributes are not supported for this target" + msgstr "%J bölge özellikleri bu hedef için desteklenmiyor" + +-#: c-common.c:4771 ++#: c-common.c:4782 + msgid "requested alignment is not a constant" + msgstr "istenen ayarlama bir sabit deÄŸil" + +-#: c-common.c:4776 ++#: c-common.c:4787 + msgid "requested alignment is not a power of 2" + msgstr "istenen ayarlama 2 nin kuvveti deÄŸil" + +-#: c-common.c:4781 ++#: c-common.c:4792 + msgid "requested alignment is too large" + msgstr "istenen ayarlama çok büyük" + +-#: c-common.c:4807 ++#: c-common.c:4818 + msgid "%Jalignment may not be specified for '%D'" + msgstr "%J hizalama `%D' için belirtilmiÅŸ olmayabilir" + +-#: c-common.c:4845 ++#: c-common.c:4856 + msgid "%J'%D' defined both normally and as an alias" + msgstr "%J `%D' hem normal hem de bir rumuz olarak tanımlanmış" + +-#: c-common.c:4855 ++#: c-common.c:4866 + msgid "alias arg not a string" + msgstr "rumuz argümanı bir dizge deÄŸil" + +-#: c-common.c:4898 ++#: c-common.c:4909 + msgid "visibility arg not a string" + msgstr "görünürlük argümanı bir dizge deÄŸil" + +-#: c-common.c:4911 ++#: c-common.c:4922 + msgid "visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\"" + msgstr "görünürlük \"default\", \"hidden\", \"protected\" veya \"internal\" deÄŸerlerinden biri olmalıdır" + +-#: c-common.c:4937 ++#: c-common.c:4948 + msgid "tls_model arg not a string" + msgstr "tls_model argümanı bir dizge deÄŸil" + +-#: c-common.c:4946 ++#: c-common.c:4957 + msgid "tls_model arg must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\"" + msgstr "tls_model \"local-exec\", \"initial-exec\", \"local-dynamic\" veya \"global-dynamic\" deÄŸerlerinden biri olmalı" + +-#: c-common.c:4968 c-common.c:5014 ++#: c-common.c:4979 c-common.c:5025 + msgid "%J'%E' attribute applies only to functions" + msgstr "%J `%E' özelliÄŸi sadece iÅŸlevlere uygulanır" + +-#: c-common.c:4973 c-common.c:5019 ++#: c-common.c:4984 c-common.c:5030 + msgid "%Jcan't set '%E' attribute after definition" + msgstr "%J `%E' özelliÄŸine tanımlandıktan sonra deÄŸer atanamaz" + +-#: c-common.c:5095 ++#: c-common.c:5106 + #, c-format + msgid "`%s' attribute ignored for `%s'" + msgstr "`%s' özelliÄŸi `%s' için yoksayıldı" + +-#: c-common.c:5158 ++#: c-common.c:5169 + #, c-format + msgid "invalid vector type for attribute `%s'" + msgstr "`%s' özelliÄŸi vektör tür geçersiz" + +-#: c-common.c:5182 c-common.c:5214 ++#: c-common.c:5193 c-common.c:5225 + msgid "no vector mode with the size and type specified could be found" + msgstr "belirtilen tür ve boyutta vektör kipi yok" + +-#: c-common.c:5316 ++#: c-common.c:5281 + msgid "nonnull attribute without arguments on a non-prototype" + msgstr "bir prototip olmayanda argümansız null olmayan özellik" + +-#: c-common.c:5331 ++#: c-common.c:5296 + #, c-format + msgid "nonnull argument has invalid operand number (arg %lu)" + msgstr "null olmayan argüman geçersiz sayıda terim içeriyor (%lu. argüman)" + +-#: c-common.c:5350 ++#: c-common.c:5315 + #, c-format + msgid "nonnull argument with out-of-range operand number (arg %lu, operand %lu)" + msgstr "null olmayan argüman kapsamdışı sayıda terim içeriyor (%lu. argüman, %lu. terim)" + +-#: c-common.c:5358 ++#: c-common.c:5323 + #, c-format + msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)" + msgstr "null olmayan argüman gösterici olmayan terime baÅŸvuruyor (%lu. argüman, %lu. terim)" + +-#: c-common.c:5438 ++#: c-common.c:5403 + #, c-format + msgid "null argument where non-null required (arg %lu)" + msgstr "null olamayan gerekiren yerde null argüman (%lu. argüman)" + +-#: c-common.c:5509 ++#: c-common.c:5474 + msgid "cleanup arg not an identifier" + msgstr "temizleme argümanı bir isim deÄŸil" + +-#: c-common.c:5516 ++#: c-common.c:5481 + msgid "cleanup arg not a function" + msgstr "temizleme argümanı bir iÅŸlev deÄŸil" + +-#: c-common.c:5877 ++#: c-common.c:5842 + #, c-format + msgid "%s at end of input" + msgstr "%s girdinin sonunda" + +-#: c-common.c:5883 ++#: c-common.c:5848 + #, c-format + msgid "%s before %s'%c'" + msgstr "%2$s'%3$c'den önce %1$s" + +-#: c-common.c:5885 ++#: c-common.c:5850 + #, c-format + msgid "%s before %s'\\x%x'" + msgstr "%2$s'\\x%3$x'den önce %1$s" + +-#: c-common.c:5889 ++#: c-common.c:5854 + #, c-format + msgid "%s before string constant" + msgstr "%s dizge sabitten önce" + +-#: c-common.c:5891 ++#: c-common.c:5856 + #, c-format + msgid "%s before numeric constant" + msgstr "sayısal sabitten önce %s" + +-#: c-common.c:5893 ++#: c-common.c:5858 + #, c-format + msgid "%s before \"%s\"" + msgstr "\"%2$s\"den önce %1$s" + +-#: c-common.c:5895 ++#: c-common.c:5860 + #, c-format + msgid "%s before '%s' token" + msgstr "'%2$s' dizgeciÄŸinden önce %1$s" + + #. Use `%s' to print the string in case there are any escape + #. characters in the message. +-#: c-common.c:5897 c-typeck.c:2612 c-typeck.c:4004 c-typeck.c:4019 +-#: c-typeck.c:4034 final.c:2776 final.c:2778 gcc.c:4581 rtl-error.c:109 +-#: toplev.c:1357 config/cris/cris.c:552 cp/parser.c:1848 cp/typeck.c:4155 ++#: c-common.c:5862 c-typeck.c:2592 c-typeck.c:3984 c-typeck.c:3999 ++#: c-typeck.c:4014 final.c:2776 final.c:2778 gcc.c:4584 rtl-error.c:109 ++#: toplev.c:1357 config/cris/cris.c:552 cp/parser.c:1848 cp/typeck.c:4173 + #: java/expr.c:356 java/verify.c:1456 java/verify.c:1457 java/verify.c:1472 + #, c-format + msgid "%s" + msgstr "%s" + +-#: c-convert.c:82 c-typeck.c:1211 c-typeck.c:3444 cp/typeck.c:1363 +-#: cp/typeck.c:5708 treelang/tree-convert.c:79 ++#: c-convert.c:82 c-typeck.c:1211 c-typeck.c:3424 cp/typeck.c:1363 ++#: cp/typeck.c:5729 treelang/tree-convert.c:79 + msgid "void value not ignored as it ought to be" + msgstr "void deÄŸer yoksayılması gerekirken yoksayılmadı" + +@@ -700,386 +705,386 @@ + msgid "%Jnon-const declaration of '%D' follows const declaration" + msgstr "%J 'const' bildirimden sonra '%D' const olmayan bildirimi" + +-#: c-decl.c:1262 ++#: c-decl.c:1267 + msgid "%Jredundant redeclaration of '%D'" + msgstr "%J `%D'nin gereksiz yeniden bildirimi" + +-#: c-decl.c:1581 ++#: c-decl.c:1586 + msgid "%Jdeclaration of '%D' shadows a parameter" + msgstr "%J `%D' bildirimi bir parametreyi gölgeliyor" + +-#: c-decl.c:1583 ++#: c-decl.c:1588 + msgid "%Jdeclaration of '%D' shadows a global declaration" + msgstr "%J `%D'bildirimi bir parametreyi gölgeliyor" + +-#: c-decl.c:1585 ++#: c-decl.c:1590 + msgid "%Jdeclaration of '%D' shadows a previous local" + msgstr "%J `%D' bildirimi bir önceki yerel bildirimi gölgeliyor" + +-#: c-decl.c:1587 cp/name-lookup.c:969 cp/name-lookup.c:992 ++#: c-decl.c:1592 cp/name-lookup.c:969 cp/name-lookup.c:992 + #: cp/name-lookup.c:1000 + msgid "%Jshadowed declaration is here" + msgstr "%J: gölgeli bildirim burada" + +-#: c-decl.c:1697 ++#: c-decl.c:1702 + #, c-format + msgid "nested extern declaration of `%s'" + msgstr "`%s'in iç içe 'extern' bildirimi" + +-#: c-decl.c:1838 objc/objc-act.c:2534 objc/objc-act.c:6794 ++#: c-decl.c:1843 objc/objc-act.c:2534 objc/objc-act.c:6794 + msgid "%Jprevious declaration of '%D'" + msgstr "%J `%D' için önceki bildirim" + +-#: c-decl.c:1879 c-decl.c:1881 ++#: c-decl.c:1884 c-decl.c:1886 + #, c-format + msgid "implicit declaration of function `%s'" + msgstr "`%s' iÅŸlevinin örtük bildirimi" + +-#: c-decl.c:1897 ++#: c-decl.c:1902 + #, c-format + msgid "`%s' undeclared here (not in a function)" + msgstr "`%s' burada bildirilmemiÅŸ (bir iÅŸlev içinde deÄŸil)" + +-#: c-decl.c:1903 ++#: c-decl.c:1908 + #, c-format + msgid "`%s' undeclared (first use in this function)" + msgstr "`%s' bildirilmemiÅŸ (bu iÅŸlevde ilk kullanımı)" + +-#: c-decl.c:1908 ++#: c-decl.c:1913 + msgid "(Each undeclared identifier is reported only once" + msgstr "(BildirilmemiÅŸ her tanıtıcı sadece bir kez raporlanır)" + +-#: c-decl.c:1909 ++#: c-decl.c:1914 + msgid "for each function it appears in.)" + msgstr "her iÅŸlev için içinde görünür.)" + +-#: c-decl.c:1962 ++#: c-decl.c:1967 + #, c-format + msgid "label %s referenced outside of any function" + msgstr "%s etiketi iÅŸlev dışı referanslı" + +-#: c-decl.c:2009 ++#: c-decl.c:2014 + #, c-format + msgid "duplicate label declaration `%s'" + msgstr "`%s' etiketi birden fazla bildirilmiÅŸ" + +-#: c-decl.c:2010 ++#: c-decl.c:2015 + msgid "%Jthis is a previous declaration" + msgstr "%J bu, bir önceden bildirimdir" + +-#: c-decl.c:2045 ++#: c-decl.c:2050 + msgid "%Hduplicate label `%D'" + msgstr "yinlenmiÅŸ etiket `%D' %H" + +-#: c-decl.c:2047 ++#: c-decl.c:2052 + msgid "%J`%D' previously defined here" + msgstr "%J `%D' evvelce burada tanımlanmış" + +-#: c-decl.c:2049 ++#: c-decl.c:2054 + msgid "%J`%D' previously declared here" + msgstr "%J `%D' evvelce burada bildirilmiÅŸ" + +-#: c-decl.c:2069 ++#: c-decl.c:2074 + msgid "%Htraditional C lacks a separate namespace for labels, identifier `%s' conflicts" + msgstr "%Hgeleneksel C etiketler için ayrı bir isim alanından yoksundur, `%s' belirteci çeliÅŸiyor" + +-#: c-decl.c:2140 ++#: c-decl.c:2145 + msgid "%H`%s' defined as wrong kind of tag" + msgstr "%H`%s' yanlış sembol çeÅŸidi olarak tanımlı" + +-#: c-decl.c:2378 ++#: c-decl.c:2383 + msgid "unnamed struct/union that defines no instances" + msgstr "ilk tanımı olmayan adsız struct/union" + +-#: c-decl.c:2397 ++#: c-decl.c:2402 + msgid "useless keyword or type name in empty declaration" + msgstr "boÅŸ bildirimde kullanışsız tür ismi ya da anahtar sözcük" + +-#: c-decl.c:2404 ++#: c-decl.c:2409 + msgid "two types specified in one empty declaration" + msgstr "bir boÅŸ bildirimde iki veri türü belirtilmiÅŸ" + +-#: c-decl.c:2409 c-parse.y:735 c-parse.y:737 objc/objc-parse.y:776 +-#: objc/objc-parse.y:778 objc/objc-parse.y:3017 ++#: c-decl.c:2414 c-parse.y:735 c-parse.y:737 objc/objc-parse.y:776 ++#: objc/objc-parse.y:778 objc/objc-parse.y:3016 + msgid "empty declaration" + msgstr "boÅŸ bildirim" + +-#: c-decl.c:2435 ++#: c-decl.c:2440 + msgid "ISO C90 does not support `static' or type qualifiers in parameter array declarators" + msgstr "ISO C90, parametre dizisi bildirimlerinde `static' ve tür niteleyicileri desteklemez" + +-#: c-decl.c:2437 ++#: c-decl.c:2442 + msgid "ISO C90 does not support `[*]' array declarators" + msgstr "ISO C90 dizi bildirimlerinde `[*]' desteklemez" + +-#: c-decl.c:2440 ++#: c-decl.c:2445 + msgid "GCC does not yet properly implement `[*]' array declarators" + msgstr "GCC `[*]' dizi bildirimlerini henüz tam desteklemiyor" + +-#: c-decl.c:2456 ++#: c-decl.c:2461 + msgid "static or type qualifiers in abstract declarator" + msgstr "kuramsal bildirimde 'static' ya da tür niteleyiciler" + +-#: c-decl.c:2526 ++#: c-decl.c:2531 + msgid "%J'%D' is usually a function" + msgstr "%J `%D' çogu kez bir iÅŸlevdir" + +-#: c-decl.c:2535 ++#: c-decl.c:2540 + #, c-format + msgid "typedef `%s' is initialized (use __typeof__ instead)" + msgstr "typedef `%s' ilkdeÄŸerli (yerine __typeof__ kullanın)" + +-#: c-decl.c:2541 ++#: c-decl.c:2546 + #, c-format + msgid "function `%s' is initialized like a variable" + msgstr "`%s' iÅŸlevi bir deÄŸiÅŸken gibi ilkdeÄŸerli" + + #. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE. +-#: c-decl.c:2548 ++#: c-decl.c:2553 + #, c-format + msgid "parameter `%s' is initialized" + msgstr "`%s' parametresi ilkdeÄŸerli" + +-#: c-decl.c:2568 c-typeck.c:4254 ++#: c-decl.c:2573 c-typeck.c:4234 + msgid "variable-sized object may not be initialized" + msgstr "deÄŸiÅŸken-uzunluklu nesne ilkdeÄŸerli olmayabilir" + +-#: c-decl.c:2574 ++#: c-decl.c:2579 + #, c-format + msgid "variable `%s' has initializer but incomplete type" + msgstr "`%s' deÄŸiÅŸkeni, veri türü tamamlanmayan bir ilkdeÄŸere sahip" + +-#: c-decl.c:2580 ++#: c-decl.c:2585 + #, c-format + msgid "elements of array `%s' have incomplete type" + msgstr "`%s' dizisinin elemanları tamamlanmayan veri türüne sahip" + +-#: c-decl.c:2649 c-decl.c:5451 cp/decl.c:3761 cp/decl.c:10141 ++#: c-decl.c:2654 c-decl.c:5462 cp/decl.c:3775 cp/decl.c:10238 + msgid "%Jinline function '%D' given attribute noinline" + msgstr "%J inline `%D' iÅŸlevine inline olmayan özellik verilmiÅŸ" + +-#: c-decl.c:2725 ++#: c-decl.c:2730 + msgid "%Jinitializer fails to determine size of '%D'" + msgstr "%J ilklendirici `%D' nin boyutunu saptamada baÅŸarısız" + +-#: c-decl.c:2730 ++#: c-decl.c:2735 + msgid "%Jarray size missing in '%D'" + msgstr "%J `%D' de dizi boyutu eksik" + +-#: c-decl.c:2746 ++#: c-decl.c:2751 + msgid "%Jzero or negative size array '%D'" + msgstr "%J `%D' dizisi sıfır ya da negatif uzunlukta" + +-#: c-decl.c:2774 ++#: c-decl.c:2779 + msgid "%Jstorage size of '%D' isn't known" + msgstr "%J `%D' nin saklama uzunluÄŸu bilinmiyor" + +-#: c-decl.c:2784 ++#: c-decl.c:2789 + msgid "%Jstorage size of '%D' isn't constant" + msgstr "%J `%D' nin saklama geniÅŸliÄŸi sabit deÄŸil" + +-#: c-decl.c:2867 ++#: c-decl.c:2872 + msgid "%Jignoring asm-specifier for non-static local variable '%D'" + msgstr "%J static olmayan yerel deÄŸiÅŸken `%D' için asm-belirtecinin yoksayılması" + +-#: c-decl.c:2978 ++#: c-decl.c:2983 + msgid "ISO C forbids forward parameter declarations" + msgstr "ISO C ileriye dönük parametre bildirimlerine izin vermez" + +-#: c-decl.c:3160 ++#: c-decl.c:3165 + msgid "" + msgstr "" + +-#: c-decl.c:3169 ++#: c-decl.c:3174 + #, c-format + msgid "bit-field `%s' width not an integer constant" + msgstr "`%s' bit alanı geniÅŸliÄŸi bir tamsayı sabit deÄŸil" + +-#: c-decl.c:3177 ++#: c-decl.c:3182 + #, c-format + msgid "negative width in bit-field `%s'" + msgstr "`%s' bit alanının uzunluÄŸu negatif" + +-#: c-decl.c:3182 ++#: c-decl.c:3187 + #, c-format + msgid "zero width for bit-field `%s'" + msgstr "bit alanı `%s' için sıfır geniÅŸlik" + +-#: c-decl.c:3192 ++#: c-decl.c:3197 + #, c-format + msgid "bit-field `%s' has invalid type" + msgstr "`%s' bit alanı geçersiz tür içeriyor" + +-#: c-decl.c:3201 ++#: c-decl.c:3206 + #, c-format + msgid "type of bit-field `%s' is a GCC extension" + msgstr "`%s' bit alanı türü bir GCC oluÅŸumudur" + +-#: c-decl.c:3210 ++#: c-decl.c:3215 + #, c-format + msgid "width of `%s' exceeds its type" + msgstr "`%s' in uzunluÄŸu türünü aşıyor" + +-#: c-decl.c:3220 ++#: c-decl.c:3225 + #, c-format + msgid "`%s' is narrower than values of its type" + msgstr "`%s'in uzunluÄŸu türünün deÄŸerinden daha kısa" + +-#: c-decl.c:3370 cp/decl.c:6805 ++#: c-decl.c:3375 cp/decl.c:6900 + msgid "`long long long' is too long for GCC" + msgstr "`long long long' GCC için çok uzun" + +-#: c-decl.c:3375 ++#: c-decl.c:3380 + msgid "ISO C90 does not support `long long'" + msgstr "ISO C90 `long long'u desteklemez" + +-#: c-decl.c:3384 c-decl.c:3387 cp/decl.c:6810 ++#: c-decl.c:3389 c-decl.c:3392 cp/decl.c:6905 + #, c-format + msgid "duplicate `%s'" + msgstr "`%s' yinelenmiÅŸ" + +-#: c-decl.c:3397 cp/decl.c:6816 ++#: c-decl.c:3402 cp/decl.c:6911 + msgid "`__thread' before `extern'" + msgstr "`extern' öncesinde `__thread'" + +-#: c-decl.c:3399 cp/decl.c:6818 ++#: c-decl.c:3404 cp/decl.c:6913 + msgid "`__thread' before `static'" + msgstr "`static' öncesinde `__thread'" + +-#: c-decl.c:3407 cp/decl.c:6845 ++#: c-decl.c:3412 cp/decl.c:6940 + #, c-format + msgid "two or more data types in declaration of `%s'" + msgstr "`%s'in bildiriminde iki veya daha fazla veri türü" + +-#: c-decl.c:3427 cp/decl.c:6850 ++#: c-decl.c:3432 cp/decl.c:6945 + #, c-format + msgid "`%s' fails to be a typedef or built in type" + msgstr "`%s' bir typedef veya yerleÅŸik veri türü olarak hatalı" + +-#: c-decl.c:3466 ++#: c-decl.c:3471 + #, c-format + msgid "type defaults to `int' in declaration of `%s'" + msgstr "`%s' bildiriminde tür `int'e öntanımlı" + +-#: c-decl.c:3495 ++#: c-decl.c:3500 + #, c-format + msgid "both long and short specified for `%s'" + msgstr "`%s' için hem long hem de short belirtilmiÅŸ" + +-#: c-decl.c:3499 cp/decl.c:6950 ++#: c-decl.c:3504 cp/decl.c:7045 + #, c-format + msgid "long or short specified with char for `%s'" + msgstr "`%s' için long veya short ile char türü deÄŸer belirtilmiÅŸ" + +-#: c-decl.c:3506 cp/decl.c:6954 ++#: c-decl.c:3511 cp/decl.c:7049 + #, c-format + msgid "long or short specified with floating type for `%s'" + msgstr "`%s' için long veya short ile gerçel sayı deÄŸer belirtilmiÅŸ" + +-#: c-decl.c:3509 ++#: c-decl.c:3514 + msgid "the only valid combination is `long double'" + msgstr "tek geçerli bileÅŸim long double'dır" + +-#: c-decl.c:3515 ++#: c-decl.c:3520 + #, c-format + msgid "both signed and unsigned specified for `%s'" + msgstr "`%s' için hem signed hem de unsigned belirtilmiÅŸ" + +-#: c-decl.c:3517 cp/decl.c:6943 ++#: c-decl.c:3522 cp/decl.c:7038 + #, c-format + msgid "long, short, signed or unsigned invalid for `%s'" + msgstr "`%s' için long, short, signed ya da unsigned geçersiz" + +-#: c-decl.c:3523 cp/decl.c:6963 ++#: c-decl.c:3528 cp/decl.c:7058 + #, c-format + msgid "long, short, signed or unsigned used invalidly for `%s'" + msgstr "`%s' için long, short, signed ya da unsigned geçersizce kullanılmış" + +-#: c-decl.c:3541 cp/decl.c:6984 ++#: c-decl.c:3546 cp/decl.c:7079 + #, c-format + msgid "complex invalid for `%s'" + msgstr "`%s' için karmaşık geçersizlik" + +-#: c-decl.c:3583 ++#: c-decl.c:3588 + msgid "ISO C90 does not support complex types" + msgstr "ISO C90 karmaşık türleri desteklemez" + +-#: c-decl.c:3595 ++#: c-decl.c:3600 + msgid "ISO C does not support plain `complex' meaning `double complex'" + msgstr "ISO C salt `complex'i `double complex' anlamında desteklemez" + +-#: c-decl.c:3601 c-decl.c:3613 ++#: c-decl.c:3606 c-decl.c:3618 + msgid "ISO C does not support complex integer types" + msgstr "ISO C karmaşık tamsayı türleri desteklemez" + +-#: c-decl.c:3643 c-decl.c:4104 cp/decl.c:7576 ++#: c-decl.c:3648 c-decl.c:4115 cp/decl.c:7671 + msgid "duplicate `const'" + msgstr "`const' yinelenmiÅŸ" + +-#: c-decl.c:3645 c-decl.c:4108 cp/decl.c:7580 ++#: c-decl.c:3650 c-decl.c:4119 cp/decl.c:7675 + msgid "duplicate `restrict'" + msgstr "`restrict' yinelenmiÅŸ" + +-#: c-decl.c:3647 c-decl.c:4106 cp/decl.c:7578 ++#: c-decl.c:3652 c-decl.c:4117 cp/decl.c:7673 + msgid "duplicate `volatile'" + msgstr "`volatile' yinelenmiÅŸ" + +-#: c-decl.c:3676 cp/decl.c:7147 ++#: c-decl.c:3681 cp/decl.c:7242 + #, c-format + msgid "multiple storage classes in declaration of `%s'" + msgstr "`%s' bildirimi içinde çok sayıda saklama sınıfı" + +-#: c-decl.c:3686 ++#: c-decl.c:3691 + msgid "function definition declared `auto'" + msgstr "iÅŸlev tanımı `auto' olarak bildirildi" + +-#: c-decl.c:3688 ++#: c-decl.c:3693 + msgid "function definition declared `register'" + msgstr "iÅŸlev tanımı `register' olarak bildirildi" + +-#: c-decl.c:3690 ++#: c-decl.c:3695 + msgid "function definition declared `typedef'" + msgstr "iÅŸlev tanımı `typedef' olarak bildirildi" + +-#: c-decl.c:3692 ++#: c-decl.c:3697 + msgid "function definition declared `__thread'" + msgstr "iÅŸlev tanımı `__thread' olarak bildirildi" + +-#: c-decl.c:3705 ++#: c-decl.c:3710 + #, c-format + msgid "storage class specified for structure field `%s'" + msgstr "`%s' yapı alan için saklama sınıfı belirtildi" + +-#: c-decl.c:3709 cp/decl.c:7192 ++#: c-decl.c:3714 cp/decl.c:7287 + #, c-format + msgid "storage class specified for parameter `%s'" + msgstr "`%s' parametresi için saklama sınıfı belirtildi" + +-#: c-decl.c:3712 cp/decl.c:7194 ++#: c-decl.c:3717 cp/decl.c:7289 + msgid "storage class specified for typename" + msgstr "veri türü ismi için saklama sınıfı belirtildi" + +-#: c-decl.c:3724 cp/decl.c:7209 ++#: c-decl.c:3729 cp/decl.c:7304 + #, c-format + msgid "`%s' initialized and declared `extern'" + msgstr "`%s' ilklendirildikten sonra `extern' olarak bildirilmiÅŸ" + +-#: c-decl.c:3726 cp/decl.c:7212 ++#: c-decl.c:3731 cp/decl.c:7307 + #, c-format + msgid "`%s' has both `extern' and initializer" + msgstr "`%s' hem `extern' olarak bildirilmiÅŸ hem de öndeÄŸer almış" + +-#: c-decl.c:3731 ++#: c-decl.c:3736 + #, c-format + msgid "file-scope declaration of `%s' specifies `auto'" + msgstr "`%s' için dosya etki alanı bildirimi `auto' belirtiyor" + +-#: c-decl.c:3736 cp/decl.c:7216 ++#: c-decl.c:3741 cp/decl.c:7311 + #, c-format + msgid "nested function `%s' declared `extern'" + msgstr "yuvalanmış iÅŸlev `%s' `extern' olarak bildirilmiÅŸ" + +-#: c-decl.c:3742 cp/decl.c:7226 ++#: c-decl.c:3747 cp/decl.c:7321 + #, c-format + msgid "function-scope `%s' implicitly auto and declared `__thread'" + msgstr "`%s' iÅŸlevinin etki alanı dolaylı olarak auto ve `__thread' bildirimli" +@@ -1087,434 +1092,434 @@ + #. Only the innermost declarator (making a parameter be of + #. array type which is converted to pointer type) + #. may have static or type qualifiers. +-#: c-decl.c:3781 c-decl.c:3974 ++#: c-decl.c:3786 c-decl.c:3979 + msgid "static or type qualifiers in non-parameter array declarator" + msgstr "parametresiz dizi bildirimi içinde 'static' veya tür niteleyiciler" + +-#: c-decl.c:3825 ++#: c-decl.c:3830 + #, c-format + msgid "declaration of `%s' as array of voids" + msgstr "`%s' void'ler dizisi olarak bildirilmiÅŸ" + +-#: c-decl.c:3831 ++#: c-decl.c:3836 + #, c-format + msgid "declaration of `%s' as array of functions" + msgstr "`%s' iÅŸlevler dizisi olarak bildirilmiÅŸ" + +-#: c-decl.c:3836 ++#: c-decl.c:3841 + msgid "invalid use of structure with flexible array member" + msgstr "esnek dizi üyeli yapı kullanımı geçersiz" + +-#: c-decl.c:3855 ++#: c-decl.c:3860 + #, c-format + msgid "size of array `%s' has non-integer type" + msgstr "`%s' dizisinin boyutu tamsayı deÄŸil" + +-#: c-decl.c:3860 ++#: c-decl.c:3865 + #, c-format + msgid "ISO C forbids zero-size array `%s'" + msgstr "ISO C sıfır boyutlu `%s' dizisini yasaklar" + +-#: c-decl.c:3867 ++#: c-decl.c:3872 + #, c-format + msgid "size of array `%s' is negative" + msgstr "`%s' dizisinin boyutu negatif" + +-#: c-decl.c:3880 ++#: c-decl.c:3885 + #, c-format + msgid "ISO C90 forbids array `%s' whose size can't be evaluated" + msgstr "ISO C90 deÄŸerlendirilemeyen boyutlu `%s' dizisini yasaklar" + +-#: c-decl.c:3883 ++#: c-decl.c:3888 + #, c-format + msgid "ISO C90 forbids variable-size array `%s'" + msgstr "ISO C90 deÄŸiÅŸken boyutlu `%s' dizisini yasaklar" + +-#: c-decl.c:3913 c-decl.c:4131 cp/decl.c:7755 ++#: c-decl.c:3918 c-decl.c:4142 cp/decl.c:7850 + #, c-format + msgid "size of array `%s' is too large" + msgstr "`%s' dizisinin boyutu çok büyük" + +-#: c-decl.c:3939 ++#: c-decl.c:3944 + msgid "ISO C90 does not support flexible array members" + msgstr "ISO C90 esnek dizi üyelerini desteklemez" + +-#: c-decl.c:3949 ++#: c-decl.c:3954 + msgid "array type has incomplete element type" + msgstr "dizi türü içi boÅŸ öğe türü içeriyor" + +-#: c-decl.c:3994 cp/decl.c:7347 ++#: c-decl.c:4009 cp/decl.c:7442 + #, c-format + msgid "`%s' declared as function returning a function" + msgstr "`%s' bir iÅŸlevle sonuçlanan bir iÅŸlev olarak bildirilmiÅŸ" + +-#: c-decl.c:3999 cp/decl.c:7352 ++#: c-decl.c:4014 cp/decl.c:7447 + #, c-format + msgid "`%s' declared as function returning an array" + msgstr "`%s' bir dizi ile sonuçlanan bir iÅŸlev olarak bildirilmiÅŸ" + +-#: c-decl.c:4027 ++#: c-decl.c:4038 + msgid "ISO C forbids qualified void function return type" + msgstr "ISO C nitelemeli 'void' iÅŸlev dönüş türünü yasaklar" + +-#: c-decl.c:4031 ++#: c-decl.c:4042 + msgid "type qualifiers ignored on function return type" + msgstr "tür niteleyicileri iÅŸlev dönen türünde yok sayıldı" + +-#: c-decl.c:4060 c-decl.c:4146 c-decl.c:4270 c-decl.c:4356 ++#: c-decl.c:4071 c-decl.c:4157 c-decl.c:4281 c-decl.c:4367 + msgid "ISO C forbids qualified function types" + msgstr "ISO C nitelemeli iÅŸlev türlerini yasaklar" + +-#: c-decl.c:4100 cp/decl.c:7572 ++#: c-decl.c:4111 cp/decl.c:7667 + msgid "invalid type modifier within pointer declarator" + msgstr "gösterici bildirimi içinde geçersiz tür deÄŸiÅŸtirici" + +-#: c-decl.c:4181 ++#: c-decl.c:4192 + msgid "ISO C forbids const or volatile function types" + msgstr "ISO C 'const' ya da 'volatile' iÅŸlev türlerini yasaklar" + +-#: c-decl.c:4201 cp/decl.c:8036 ++#: c-decl.c:4212 + #, c-format + msgid "variable or field `%s' declared void" + msgstr "`%s' deÄŸiÅŸkeni ya da alanı void olarak bildirilmiÅŸ" + +-#: c-decl.c:4234 ++#: c-decl.c:4245 + msgid "attributes in parameter array declarator ignored" + msgstr "parametre dizisi bildirimindeki özellikler yoksayıldı" + +-#: c-decl.c:4259 ++#: c-decl.c:4270 + msgid "invalid type modifier within array declarator" + msgstr "dizi bildirimi içinde geçersiz tür deÄŸiÅŸtirici" + +-#: c-decl.c:4304 ++#: c-decl.c:4315 + #, c-format + msgid "field `%s' declared as a function" + msgstr "`%s' alanı bir iÅŸlev olarak bildirilmiÅŸ" + +-#: c-decl.c:4310 ++#: c-decl.c:4321 + #, c-format + msgid "field `%s' has incomplete type" + msgstr "`%s' alanı tamamlanmamış türde" + +-#: c-decl.c:4336 c-decl.c:4338 c-decl.c:4340 c-decl.c:4347 ++#: c-decl.c:4347 c-decl.c:4349 c-decl.c:4351 c-decl.c:4358 + #, c-format + msgid "invalid storage class for function `%s'" + msgstr "`%s' iÅŸlevi için geçersiz saklama sınıfı" + +-#: c-decl.c:4362 ++#: c-decl.c:4373 + msgid "`noreturn' function returns non-void value" + msgstr "`noreturn' iÅŸlevinin sonucu void deÄŸil" + +-#: c-decl.c:4377 ++#: c-decl.c:4388 + msgid "cannot inline function `main'" + msgstr "`main' özümlenen iÅŸlev olamaz" + +-#: c-decl.c:4431 ++#: c-decl.c:4442 + msgid "variable previously declared `static' redeclared `extern'" + msgstr "evvelce `static' bildirilmiÅŸ deÄŸiÅŸken `extern' olarak yeniden bildirilmiÅŸ" + +-#: c-decl.c:4440 ++#: c-decl.c:4451 + msgid "%Jvariable '%D' declared `inline'" + msgstr "%J `inline' bildirilmiÅŸ '%D' deÄŸiÅŸkeni" + + #. A mere warning is sure to result in improper semantics + #. at runtime. Don't bother to allow this to compile. +-#: c-decl.c:4468 cp/decl.c:5903 ++#: c-decl.c:4479 cp/decl.c:5972 + msgid "thread-local storage not supported for this target" + msgstr "bu hedefte yerel evreli saklama desteklenmiyor" + +-#: c-decl.c:4529 c-decl.c:5495 ++#: c-decl.c:4540 c-decl.c:5506 + msgid "function declaration isn't a prototype" + msgstr "iÅŸlev bildirimi bir prototip deÄŸil" + +-#: c-decl.c:4535 ++#: c-decl.c:4546 + msgid "parameter names (without types) in function declaration" + msgstr "iÅŸlev bildiriminde (türleri belirtmeksizin) parametre isimleri" + +-#: c-decl.c:4563 ++#: c-decl.c:4574 + #, c-format + msgid "parameter `%s' has incomplete type" + msgstr "`%s' parametresi tamamlanmamış türde" + +-#: c-decl.c:4566 ++#: c-decl.c:4577 + msgid "parameter has incomplete type" + msgstr "parametre tamamlanmamış türde" + +-#: c-decl.c:4615 ++#: c-decl.c:4626 + msgid "\"void\" as only parameter may not be qualified" + msgstr "tek parametre olarak \"void\" yeterli olmayabilir" + +-#: c-decl.c:4636 ++#: c-decl.c:4647 + msgid "\"void\" must be the only parameter" + msgstr "\"void\" tek parametre olmalıdır" + +-#: c-decl.c:4653 ++#: c-decl.c:4664 + msgid "%Jparameter \"%D\" has just a forward declaration" + msgstr "%J `%D' parametresi tam bir ilerletme bildirimi" + + #. The first %s will be one of 'struct', 'union', or 'enum'. +-#: c-decl.c:4681 ++#: c-decl.c:4692 + #, c-format + msgid "\"%s %s\" declared inside parameter list" + msgstr "\"%s %s\" parametre listesinin içinde bildirilmiÅŸ" + + #. The %s will be one of 'struct', 'union', or 'enum'. +-#: c-decl.c:4685 ++#: c-decl.c:4696 + #, c-format + msgid "anonymous %s declared inside parameter list" + msgstr "anonim %s parametre listesinin içinde bildirilmiÅŸ" + +-#: c-decl.c:4689 ++#: c-decl.c:4700 + msgid "its scope is only this definition or declaration, which is probably not what you want" + msgstr "O sadece bu tanımın ya da bildirimin kapsamında, sizin istediÄŸiniz bu olmayabilir" + +-#: c-decl.c:4774 ++#: c-decl.c:4785 + #, c-format + msgid "redefinition of `union %s'" + msgstr "`union %s' tekrar tanımlanmış" + +-#: c-decl.c:4776 ++#: c-decl.c:4787 + #, c-format + msgid "redefinition of `struct %s'" + msgstr "`struct %s' tekrar tanımlanmış" + +-#: c-decl.c:4844 cp/decl.c:3534 ++#: c-decl.c:4855 cp/decl.c:3548 + msgid "declaration does not declare anything" + msgstr "bildirim hiçbir ÅŸey bildirmiyor" + +-#: c-decl.c:4889 c-decl.c:4905 ++#: c-decl.c:4900 c-decl.c:4916 + msgid "%Jduplicate member '%D'" + msgstr "%J yinelenmiÅŸ üye `%D'" + +-#: c-decl.c:4939 c-decl.c:4942 ++#: c-decl.c:4950 c-decl.c:4953 + #, c-format + msgid "%s defined inside parms" + msgstr "%s parametrelerin içinde tanımlanmış" + +-#: c-decl.c:4940 c-decl.c:4943 c-decl.c:4954 ++#: c-decl.c:4951 c-decl.c:4954 c-decl.c:4965 + msgid "union" + msgstr "birleÅŸik yapı" + +-#: c-decl.c:4940 c-decl.c:4943 ++#: c-decl.c:4951 c-decl.c:4954 + msgid "structure" + msgstr "yapı" + +-#: c-decl.c:4953 ++#: c-decl.c:4964 + #, c-format + msgid "%s has no %s" + msgstr "%s %s içermiyor" + +-#: c-decl.c:4954 ++#: c-decl.c:4965 + msgid "struct" + msgstr "yapı" + +-#: c-decl.c:4955 ++#: c-decl.c:4966 + msgid "named members" + msgstr "isimli üyeleri yok" + +-#: c-decl.c:4955 ++#: c-decl.c:4966 + msgid "members" + msgstr "üyeleri yok" + +-#: c-decl.c:4994 ++#: c-decl.c:5005 + #, c-format + msgid "nested redefinition of `%s'" + msgstr "`%s' içiçe yeniden tanımlanmış" + +-#: c-decl.c:5015 ++#: c-decl.c:5026 + msgid "%Jflexible array member in union" + msgstr "%J union içinde esnek dizi üye" + +-#: c-decl.c:5020 ++#: c-decl.c:5031 + msgid "%Jflexible array member not at end of struct" + msgstr "%J yapının son üyesi olmayan esnek dizi" + +-#: c-decl.c:5025 ++#: c-decl.c:5036 + msgid "%Jflexible array member in otherwise empty struct" + msgstr "%J baÅŸka türlü boÅŸ yapı içinde esnek dizi" + +-#: c-decl.c:5032 ++#: c-decl.c:5043 + msgid "%Jinvalid use of structure with flexible array member" + msgstr "%J esnek dizi üyeli yapının geçersiz kullanımı" + +-#: c-decl.c:5127 ++#: c-decl.c:5138 + msgid "union cannot be made transparent" + msgstr "birleÅŸik yapı ÅŸeffaf olamaz" + + #. This enum is a named one that has been declared already. +-#: c-decl.c:5196 ++#: c-decl.c:5207 + #, c-format + msgid "redeclaration of `enum %s'" + msgstr "`enum %s' yeniden bildirilmiÅŸ" + +-#: c-decl.c:5227 ++#: c-decl.c:5238 + msgid "enum defined inside parms" + msgstr "enum parametrelerin içinde tanımlanmış" + +-#: c-decl.c:5260 ++#: c-decl.c:5271 + msgid "enumeration values exceed range of largest integer" + msgstr "sembolik sabit grubunun deÄŸerleri en büyük tamsayının kapsamını aşıyor." + +-#: c-decl.c:5363 ++#: c-decl.c:5374 + #, c-format + msgid "enumerator value for `%s' not integer constant" + msgstr "`%s' için deÄŸer tamsayı sabit deÄŸil" + +-#: c-decl.c:5376 ++#: c-decl.c:5387 + msgid "overflow in enumeration values" + msgstr "sembolik sabit listesi deÄŸerlerinde taÅŸma" + +-#: c-decl.c:5381 ++#: c-decl.c:5392 + msgid "ISO C restricts enumerator values to range of `int'" + msgstr "ISO C sembolik sabit grubunun deÄŸerlerini `int' kapsamında sınırlar" + +-#: c-decl.c:5457 ++#: c-decl.c:5468 + msgid "return type is an incomplete type" + msgstr "dönüş türü, bir içi boÅŸ tür" + +-#: c-decl.c:5465 ++#: c-decl.c:5476 + msgid "return type defaults to `int'" + msgstr "dönen tür `int'e öntanımlı" + +-#: c-decl.c:5501 ++#: c-decl.c:5512 + msgid "%Jno previous prototype for '%D'" + msgstr "%J `%D' için önceki prototip yok" + +-#: c-decl.c:5507 ++#: c-decl.c:5518 + msgid "%J'%D' was used with no prototype before its definition" + msgstr "%J `%D' tanımlanmadan önce prototipsiz kullanılmış" + +-#: c-decl.c:5514 ++#: c-decl.c:5525 + msgid "%Jno previous declaration for '%D'" + msgstr "%J `%D' için evvelce bildirim yok" + +-#: c-decl.c:5520 ++#: c-decl.c:5531 + msgid "%J`%D' was used with no declaration before its definition" + msgstr "%J `%D' tanımından önce bildirimsiz kullanılmış" + +-#: c-decl.c:5556 c-decl.c:6062 ++#: c-decl.c:5567 c-decl.c:6073 + msgid "%Jreturn type of '%D' is not `int'" + msgstr "%J `%D' için dönen tür `int' deÄŸil" + +-#: c-decl.c:5571 ++#: c-decl.c:5582 + msgid "%Jfirst argument of '%D' should be `int'" + msgstr "%J `%D' için ilk argüman `int' olmalıydı" + +-#: c-decl.c:5580 ++#: c-decl.c:5591 + msgid "%Jsecond argument of '%D' should be 'char **'" + msgstr "%J `%D' için ikinci argüman `char **' olmalıydı" + +-#: c-decl.c:5589 ++#: c-decl.c:5600 + msgid "%Jthird argument of '%D' should probably be 'char **'" + msgstr "%J `%D' için üçüncü argüman mümkünse `char **' olmalıydı" + +-#: c-decl.c:5599 ++#: c-decl.c:5610 + msgid "%J'%D' takes only zero or two arguments" + msgstr "%J `%D' ya iki argüman alır ya da hiç almaz" + +-#: c-decl.c:5602 ++#: c-decl.c:5613 + msgid "%J'%D' is normally a non-static function" + msgstr "%J `%D' normalde bir static olmayan iÅŸlev" + +-#: c-decl.c:5658 ++#: c-decl.c:5669 + msgid "%Jold-style parameter declarations in prototyped function definition" + msgstr "%J prototipli iÅŸlev tanımında eski tarz parametre bildirimi" + +-#: c-decl.c:5672 ++#: c-decl.c:5683 + msgid "%Jparameter name omitted" + msgstr "%J parametre ismi atlandı" + +-#: c-decl.c:5747 ++#: c-decl.c:5758 + msgid "%Jparameter name missing from parameter list" + msgstr "%J parametre ismi parametre listesinde yok" + +-#: c-decl.c:5757 ++#: c-decl.c:5768 + msgid "%J\"%D\" declared as a non-parameter" + msgstr "%J \"%D\" bir parametre olarak bildirilmemiÅŸ" + +-#: c-decl.c:5762 ++#: c-decl.c:5773 + msgid "%Jmultiple parameters named \"%D\"" + msgstr "%J \"%D\" isimli çok sayıda parametre" + +-#: c-decl.c:5770 ++#: c-decl.c:5781 + msgid "%Jparameter \"%D\" declared void" + msgstr "parametre \"%D\" void olarak bildirilmiÅŸ" + +-#: c-decl.c:5785 c-decl.c:5787 ++#: c-decl.c:5796 c-decl.c:5798 + msgid "%Jtype of \"%D\" defaults to \"int\"" + msgstr "%J \"%D\" türü öntanımlı olarak `int'" + +-#: c-decl.c:5801 ++#: c-decl.c:5812 + msgid "%Jparameter \"%D\" has incomplete type" + msgstr "%J parametre \"%D\" tamamlanmamış türde" + +-#: c-decl.c:5807 ++#: c-decl.c:5818 + msgid "%Jdeclaration for parameter \"%D\" but no such parameter" + msgstr "%J parametre `%D' için bildirim var ama böyle bir parametre yok" + +-#: c-decl.c:5859 ++#: c-decl.c:5870 + msgid "number of arguments doesn't match prototype" + msgstr "argümanların sayısı prototiple uyumsuz" + +-#: c-decl.c:5860 c-decl.c:5891 c-decl.c:5898 ++#: c-decl.c:5871 c-decl.c:5902 c-decl.c:5909 + msgid "%Hprototype declaration" + msgstr "%Hprototip bildirimi" + +-#: c-decl.c:5889 ++#: c-decl.c:5900 + msgid "promoted argument \"%D\" doesn't match prototype" + msgstr "yükseltgenmiÅŸ argüman \"%D\" prototiple uyumsuz" + +-#: c-decl.c:5897 ++#: c-decl.c:5908 + msgid "argument \"%D\" doesn't match prototype" + msgstr "\"%D\" argümanı prototiple uyumsuz" + +-#: c-decl.c:6094 cp/decl.c:10857 ++#: c-decl.c:6105 cp/decl.c:10954 + msgid "no return statement in function returning non-void" + msgstr "void olmayan dönüşlü iÅŸlevde `return' deyimi yok" + +-#: c-decl.c:6101 ++#: c-decl.c:6112 + msgid "this function may return with or without a value" + msgstr "bu iÅŸlev bir deÄŸerle dönebileceÄŸi gibi dönmeyebilir de" + + #. If we get here, declarations have been used in a for loop without + #. the C99 for loop scope. This doesn't make much sense, so don't + #. allow it. +-#: c-decl.c:6200 ++#: c-decl.c:6211 + msgid "'for' loop initial declaration used outside C99 mode" + msgstr "`for' döngüsünün ilk bildirimi C99 kipinin dışında kullanılmış" + +-#: c-decl.c:6224 ++#: c-decl.c:6235 + #, c-format + msgid "'struct %s' declared in 'for' loop initial declaration" + msgstr "`struct %s' `for' döngüsünün ilk bildiriminde bildirilmiÅŸ" + +-#: c-decl.c:6227 ++#: c-decl.c:6238 + #, c-format + msgid "'union %s' declared in 'for' loop initial declaration" + msgstr "`union %s' `for' döngüsünün ilk bildiriminde bildirilmiÅŸ" + +-#: c-decl.c:6230 ++#: c-decl.c:6241 + #, c-format + msgid "'enum %s' declared in 'for' loop initial declaration" + msgstr "`enum %s' `for' döngüsünün ilk bildiriminde bildirilmiÅŸ" + +-#: c-decl.c:6238 ++#: c-decl.c:6249 + msgid "%Jdeclaration of non-variable '%D' in 'for' loop initial declaration" + msgstr "%J `for' döngüsü ilk bildirimi içinde deÄŸiÅŸken olmayan `%D' bildirimi" + +-#: c-decl.c:6241 ++#: c-decl.c:6252 + msgid "%Jdeclaration of static variable '%D' in 'for' loop initial declaration" + msgstr "%J `for' döngüsü ilk bildirimi içinde `static' deÄŸiÅŸken `%D' bildirimi" + +-#: c-decl.c:6244 ++#: c-decl.c:6255 + msgid "%Jdeclaration of 'extern' variable '%D' in 'for' loop initial declaration" + msgstr "%J `for' döngüsü ilk bildirimi içinde `extern' deÄŸiÅŸken `%D' bildirimi" + +-#: c-decl.c:6557 ++#: c-decl.c:6568 + msgid "%Jredefinition of global '%D'" + msgstr "%J global `%D'in yeniden tanımı" + +-#: c-decl.c:6558 ++#: c-decl.c:6569 + msgid "%J'%D' previously defined here" + msgstr "%J `%D' evvelce burada tanımlanmış" + +@@ -2151,89 +2156,89 @@ + msgid "missing makefile target after \"%s\"" + msgstr "\"%s\" den sonra makefile hedefi eksik" + +-#: c-opts.c:291 ++#: c-opts.c:299 + msgid "-I- specified twice" + msgstr "-I- iki kere belirtilmiÅŸ" + +-#: c-opts.c:692 ++#: c-opts.c:700 + #, c-format + msgid "switch \"%s\" is no longer supported" + msgstr "switch \"%s\" artık desteklenmiyor" + +-#: c-opts.c:812 ++#: c-opts.c:820 + msgid "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)" + msgstr "-fhandle-exceptions, -fexceptions ile deÄŸiÅŸtirilmiÅŸti (ve ÅŸimdi öntanımlı olarak böyle)" + +-#: c-opts.c:978 ++#: c-opts.c:986 + msgid "output filename specified twice" + msgstr "çıktı dosyasının ismi iki kere belirtilmiÅŸ" + +-#: c-opts.c:1107 ++#: c-opts.c:1115 + msgid "-Wformat-y2k ignored without -Wformat" + msgstr "-Wformat-y2k -Wformat'sız yoksayıldı" + +-#: c-opts.c:1109 ++#: c-opts.c:1117 + msgid "-Wformat-extra-args ignored without -Wformat" + msgstr "-Wformat-extra-args -Wformat'sız yoksayıldı" + +-#: c-opts.c:1111 ++#: c-opts.c:1119 + msgid "-Wformat-zero-length ignored without -Wformat" + msgstr "-Wformat-zero-length -Wformat'sız yoksayıldı" + +-#: c-opts.c:1113 ++#: c-opts.c:1121 + msgid "-Wformat-nonliteral ignored without -Wformat" + msgstr "-Wformat-nonliteral -Wformat'sız yoksayıldı" + +-#: c-opts.c:1115 ++#: c-opts.c:1123 + msgid "-Wformat-security ignored without -Wformat" + msgstr "-Wformat-security -Wformat'sız yoksayıldı" + +-#: c-opts.c:1117 ++#: c-opts.c:1125 + msgid "-Wmissing-format-attribute ignored without -Wformat" + msgstr "-Wmissing-format-attribute -Wformat'sız yoksayıldı" + +-#: c-opts.c:1131 ++#: c-opts.c:1139 + #, c-format + msgid "opening output file %s: %m" + msgstr "`%s' çıktı dosyasının açılması: %m" + +-#: c-opts.c:1136 ++#: c-opts.c:1144 + #, c-format + msgid "too many filenames given. Type %s --help for usage" + msgstr "çok fazla dosyaismi verildi. Kullanım bilgileri için %s --help yazınız" + +-#: c-opts.c:1215 ++#: c-opts.c:1223 + msgid "YYDEBUG not defined" + msgstr "YYDEBUG tanımlı deÄŸil" + +-#: c-opts.c:1261 ++#: c-opts.c:1269 + #, c-format + msgid "opening dependency file %s: %m" + msgstr "%s bağımlılık dosyasının açılması: %m" + +-#: c-opts.c:1271 ++#: c-opts.c:1279 + #, c-format + msgid "closing dependency file %s: %m" + msgstr "%s bağımlılık dosyasının kapatılması: %m" + +-#: c-opts.c:1274 ++#: c-opts.c:1282 + #, c-format + msgid "when writing output to %s: %m" + msgstr "çıktı %s e yazılırken: %m" + +-#: c-opts.c:1344 ++#: c-opts.c:1352 + msgid "to generate dependencies you must specify either -M or -MM" + msgstr "bağımlılıkları üretmek için ya -M ya da -MM belirtmelisiniz" + +-#: c-opts.c:1404 ++#: c-opts.c:1412 + msgid "" + msgstr "" + +-#: c-opts.c:1419 ++#: c-opts.c:1427 + msgid "" + msgstr "" + +-#: c-opts.c:1503 ++#: c-opts.c:1511 + msgid "too late for # directive to set debug directory" + msgstr "hata ayıklama dizinini belirten # yönergesi için çok geç" + +@@ -2250,7 +2255,7 @@ + msgid "ISO C forbids an empty source file" + msgstr "ISO C boÅŸ kaynak dosyalarına izin vermez" + +-#: c-parse.y:349 c-typeck.c:6248 objc/objc-parse.y:374 ++#: c-parse.y:349 c-typeck.c:6228 objc/objc-parse.y:374 + msgid "argument of `asm' is not a constant string" + msgstr "`asm' argümanı bir sabit dizge deÄŸil" + +@@ -2266,7 +2271,7 @@ + msgid "ISO C does not allow extra `;' outside of a function" + msgstr "ISO C iÅŸlevler dışında tek başına `;'e izin vermez" + +-#: c-parse.y:429 cppexp.c:1253 ++#: c-parse.y:429 cppexp.c:1257 + msgid "traditional C rejects the unary plus operator" + msgstr "geleneksel C tekil artı iÅŸlecini dışlar" + +@@ -2343,7 +2348,7 @@ + msgid "ISO C forbids forward references to `enum' types" + msgstr "ISO C sonradan bildirilmiÅŸ `enum' türüne baÅŸvuruya izin vermez" + +-#: c-parse.y:1703 cp/parser.c:9339 objc/objc-parse.y:1755 ++#: c-parse.y:1703 cp/parser.c:9383 objc/objc-parse.y:1755 + msgid "comma at end of enumerator list" + msgstr "sembolik sabitler listesinin sonunda virgül" + +@@ -2351,7 +2356,7 @@ + msgid "no semicolon at end of struct or union" + msgstr "struct ya da union tanımının sonunda ; yok" + +-#: c-parse.y:1732 objc/objc-parse.y:1784 objc/objc-parse.y:2847 ++#: c-parse.y:1732 objc/objc-parse.y:1784 objc/objc-parse.y:2846 + msgid "extra semicolon in struct or union specified" + msgstr "struct ya da union'da fazladan ; var" + +@@ -2379,23 +2384,23 @@ + msgid "braced-group within expression allowed only inside a function" + msgstr "ifade içinde parantezli gruplamalara sadece bir iÅŸlevin içinde izin verilir" + +-#: c-parse.y:2185 objc/objc-parse.y:2242 ++#: c-parse.y:2185 objc/objc-parse.y:2241 + msgid "empty body in an else-statement" + msgstr "else ifadesinin gövdesi boÅŸ" + +-#: c-parse.y:2193 objc/objc-parse.y:2250 ++#: c-parse.y:2193 objc/objc-parse.y:2249 + msgid "%Hempty body in an if-statement" + msgstr "%Hif deyiminin gövdesi boÅŸ" + +-#: c-parse.y:2273 cp/parser.c:6050 objc/objc-parse.y:2330 ++#: c-parse.y:2273 cp/parser.c:6088 objc/objc-parse.y:2329 + msgid "break statement not within loop or switch" + msgstr "break deyimi switch ya da döngü içinde deÄŸil" + +-#: c-parse.y:2282 cp/parser.c:6061 objc/objc-parse.y:2339 ++#: c-parse.y:2282 cp/parser.c:6099 objc/objc-parse.y:2338 + msgid "continue statement not within a loop" + msgstr "continue deyimi bir döngü içinde deÄŸil" + +-#: c-parse.y:2324 objc/objc-parse.y:2381 ++#: c-parse.y:2324 objc/objc-parse.y:2380 + msgid "ISO C forbids `goto *expr;'" + msgstr "ISO C `goto *expr;' kullanımına izin vermez" + +@@ -2405,11 +2410,11 @@ + #. it caused problems with the code in expand_builtin which + #. tries to verify that BUILT_IN_NEXT_ARG is being used + #. correctly. +-#: c-parse.y:2441 objc/objc-parse.y:2549 ++#: c-parse.y:2441 objc/objc-parse.y:2548 + msgid "ISO C requires a named argument before `...'" + msgstr "ISO C `...'dan önce bir isimli argüman gerektirir" + +-#: c-parse.y:2539 objc/objc-parse.y:2647 ++#: c-parse.y:2539 objc/objc-parse.y:2646 + msgid "`...' in old-style identifier list" + msgstr "eski-tarz tanıtıcı listesinde `...'" + +@@ -2425,7 +2430,7 @@ + msgid "parser stack overflow" + msgstr "ayrıştırıcı yığın taÅŸması" + +-#: c-parse.y:2969 objc/objc-parse.y:3664 ++#: c-parse.y:2969 objc/objc-parse.y:3663 + #, c-format + msgid "syntax error at '%s' token" + msgstr "'%s' dizgeciÄŸinde sözdizimi hatası" +@@ -2507,7 +2512,7 @@ + msgid "%s: had text segment at different address" + msgstr "%s: farklı adreste bir metin segmanına sahip" + +-#: c-pch.c:357 cpperror.c:176 gcc.c:6554 ++#: c-pch.c:357 cpperror.c:176 gcc.c:6557 + #, c-format + msgid "%s: %s" + msgstr "%s: %s" +@@ -2615,12 +2620,12 @@ + msgid "(enclose actions of previous case statements requiring destructors in their own scope.)" + msgstr "(önceki case deyimlerinin zarflama eylemleri kendi içerinde yıkıcıları gerektiriyor)" + +-#: c-semantics.c:737 c-typeck.c:6270 cp/semantics.c:1070 ++#: c-semantics.c:737 c-typeck.c:6250 cp/semantics.c:1070 + #, c-format + msgid "%s qualifier ignored on asm" + msgstr "asm'de %s niteleyicisi yoksayıldı" + +-#: c-semantics.c:991 ++#: c-semantics.c:993 + msgid "will never be executed" + msgstr "asla çalıştırılmayacak" + +@@ -2629,7 +2634,7 @@ + msgid "`%s' has an incomplete type" + msgstr "`%s' tamamlanmamış türde" + +-#: c-typeck.c:145 cp/call.c:2532 ++#: c-typeck.c:145 cp/call.c:2542 + msgid "invalid use of void expression" + msgstr "void deyiminin kullanımı geçersiz" + +@@ -2664,748 +2669,748 @@ + msgid "function return types not compatible due to `volatile'" + msgstr "iÅŸlevin dönen deÄŸer türü `volatile' den dolayı uyumsuz" + +-#: c-typeck.c:984 c-typeck.c:2176 ++#: c-typeck.c:984 c-typeck.c:2156 + msgid "arithmetic on pointer to an incomplete type" + msgstr "bir içi boÅŸ tür gösterici üzerinde aritmetik" + +-#: c-typeck.c:1357 ++#: c-typeck.c:1337 + #, c-format + msgid "%s has no member named `%s'" + msgstr "%s'in `%s' isimli bir üyesi yok" + +-#: c-typeck.c:1393 ++#: c-typeck.c:1373 + #, c-format + msgid "request for member `%s' in something not a structure or union" + msgstr "bir struct veya union olmayan ÅŸeyin `%s' üyesi için istek" + +-#: c-typeck.c:1422 ++#: c-typeck.c:1402 + msgid "dereferencing pointer to incomplete type" + msgstr "içi boÅŸ türe gösterici iliÅŸkilendirme" + +-#: c-typeck.c:1426 ++#: c-typeck.c:1406 + msgid "dereferencing `void *' pointer" + msgstr "`void *' gösterici iliÅŸkilendirmesi" + +-#: c-typeck.c:1443 cp/typeck.c:2127 ++#: c-typeck.c:1423 cp/typeck.c:2127 + #, c-format + msgid "invalid type argument of `%s'" + msgstr "`%s' için tür argümanı geçersiz" + +-#: c-typeck.c:1461 cp/typeck.c:2152 ++#: c-typeck.c:1441 cp/typeck.c:2152 + msgid "subscript missing in array reference" + msgstr "dizi baÅŸvurusunda altindis yok" + +-#: c-typeck.c:1482 cp/typeck.c:2194 ++#: c-typeck.c:1462 cp/typeck.c:2194 + msgid "array subscript has type `char'" + msgstr "dizi altindisi `char' türünde" + +-#: c-typeck.c:1490 c-typeck.c:1579 cp/typeck.c:2198 cp/typeck.c:2284 ++#: c-typeck.c:1470 c-typeck.c:1559 cp/typeck.c:2198 cp/typeck.c:2284 + msgid "array subscript is not an integer" + msgstr "dizi altindisi bir tamsayı deÄŸil" + +-#: c-typeck.c:1523 ++#: c-typeck.c:1503 + msgid "ISO C forbids subscripting `register' array" + msgstr "ISO C `register' dizisi altindislemesine izin vermez" + +-#: c-typeck.c:1525 ++#: c-typeck.c:1505 + msgid "ISO C90 forbids subscripting non-lvalue array" + msgstr "ISO C90 sol yansız dizi indislemesine izin vermez" + +-#: c-typeck.c:1558 ++#: c-typeck.c:1538 + msgid "subscript has type `char'" + msgstr "alt indis `char' türünde" + +-#: c-typeck.c:1574 cp/typeck.c:2279 ++#: c-typeck.c:1554 cp/typeck.c:2279 + msgid "subscripted value is neither array nor pointer" + msgstr "indisli deÄŸer ne dizi ne de bir gösterici" + +-#: c-typeck.c:1604 ++#: c-typeck.c:1584 + #, c-format + msgid "local declaration of `%s' hides instance variable" + msgstr "`%s' yerel bildirimi gerçekleme deÄŸiÅŸkenini gizliyor" + +-#: c-typeck.c:1697 ++#: c-typeck.c:1677 + msgid "called object is not a function" + msgstr "çaÄŸrılan nesne bir iÅŸlev deÄŸil" + + #. This situation leads to run-time undefined behavior. We can't, + #. therefore, simply error unless we can prove that all possible + #. executions of the program must execute the code. +-#: c-typeck.c:1729 ++#: c-typeck.c:1709 + msgid "function called through a non-compatible type" + msgstr "uyumlu olmayan türde iÅŸlev çaÄŸrısı" + +-#: c-typeck.c:1787 c-typeck.c:4198 c-typeck.c:4200 c-typeck.c:4216 +-#: c-typeck.c:4237 c-typeck.c:5616 ++#: c-typeck.c:1767 c-typeck.c:4178 c-typeck.c:4180 c-typeck.c:4196 ++#: c-typeck.c:4217 c-typeck.c:5596 + msgid "initializer element is not constant" + msgstr "ilklendirici öğe bir sabit deÄŸil" + +-#: c-typeck.c:1838 cp/typeck.c:2567 ++#: c-typeck.c:1818 cp/typeck.c:2567 + msgid "too many arguments to function" + msgstr "iÅŸlev için çok fazla argüman belirtildi" + +-#: c-typeck.c:1859 ++#: c-typeck.c:1839 + #, c-format + msgid "type of formal parameter %d is incomplete" + msgstr "%d biçimsel parametre türü tamamlanmayan türde" + +-#: c-typeck.c:1872 ++#: c-typeck.c:1852 + #, c-format + msgid "%s as integer rather than floating due to prototype" + msgstr "%sması prototipten dolayı bir gerçel sayıdan çok bir tamsayı" + +-#: c-typeck.c:1875 ++#: c-typeck.c:1855 + #, c-format + msgid "%s as integer rather than complex due to prototype" + msgstr "%sması prototipten dolayı bir karmaşık sayıdan çok bir tamsayı" + +-#: c-typeck.c:1878 ++#: c-typeck.c:1858 + #, c-format + msgid "%s as complex rather than floating due to prototype" + msgstr "%sması prototipten dolayı bir gerçel sayıdan çok bir karmaşık sayı" + +-#: c-typeck.c:1881 ++#: c-typeck.c:1861 + #, c-format + msgid "%s as floating rather than integer due to prototype" + msgstr "%sması prototipten dolayı bir tamsayıdan çok bir gerçel sayı" + +-#: c-typeck.c:1884 ++#: c-typeck.c:1864 + #, c-format + msgid "%s as complex rather than integer due to prototype" + msgstr "%sması prototipten dolayı bir tamsayıdan çok bir karmaşık sayı" + +-#: c-typeck.c:1887 ++#: c-typeck.c:1867 + #, c-format + msgid "%s as floating rather than complex due to prototype" + msgstr "%sması prototipten dolayı bir karmaşık sayıdan çok bir gerçel sayı" + +-#: c-typeck.c:1897 ++#: c-typeck.c:1877 + #, c-format + msgid "%s as `float' rather than `double' due to prototype" + msgstr "%sması prototipten dolayı bir «double»dan çok bir «float»" + +-#: c-typeck.c:1915 ++#: c-typeck.c:1895 + #, c-format + msgid "%s with different width due to prototype" + msgstr "prototipten dolayı farklı geniÅŸlikle %sması" + +-#: c-typeck.c:1941 ++#: c-typeck.c:1921 + #, c-format + msgid "%s as unsigned due to prototype" + msgstr "%sması prototipten dolayı unsigned" + +-#: c-typeck.c:1943 ++#: c-typeck.c:1923 + #, c-format + msgid "%s as signed due to prototype" + msgstr "%sması prototipten dolayı signed" + +-#: c-typeck.c:1977 cp/typeck.c:2673 ++#: c-typeck.c:1957 cp/typeck.c:2673 + msgid "too few arguments to function" + msgstr "iÅŸlev için çok az argüman belirtildi" + +-#: c-typeck.c:2017 ++#: c-typeck.c:1997 + msgid "suggest parentheses around + or - inside shift" + msgstr "shift içindeki + ya da - çevresinde parantezler önerilir" + +-#: c-typeck.c:2024 ++#: c-typeck.c:2004 + msgid "suggest parentheses around && within ||" + msgstr "|| içindeki && çevresinde parantezler önerilir" + +-#: c-typeck.c:2033 ++#: c-typeck.c:2013 + msgid "suggest parentheses around arithmetic in operand of |" + msgstr "| iÅŸlemimindeki aritmetik çevresinde parantezler önerilir" + +-#: c-typeck.c:2036 ++#: c-typeck.c:2016 + msgid "suggest parentheses around comparison in operand of |" + msgstr "| iÅŸlemimindeki karşılaÅŸtırma çevresinde parantezler önerilir" + +-#: c-typeck.c:2045 ++#: c-typeck.c:2025 + msgid "suggest parentheses around arithmetic in operand of ^" + msgstr "^ iÅŸlemimindeki aritmetik çevresinde parantezler önerilir" + +-#: c-typeck.c:2048 ++#: c-typeck.c:2028 + msgid "suggest parentheses around comparison in operand of ^" + msgstr "^ iÅŸlemimindeki karşılaÅŸtırma çevresinde parantezler önerilir" + +-#: c-typeck.c:2055 ++#: c-typeck.c:2035 + msgid "suggest parentheses around + or - in operand of &" + msgstr "& iÅŸlemimindeki + veya - çevresinde parantezler önerilir" + +-#: c-typeck.c:2058 ++#: c-typeck.c:2038 + msgid "suggest parentheses around comparison in operand of &" + msgstr "& iÅŸlemimindeki karşılaÅŸtırma çevresinde parantezler önerilir" + +-#: c-typeck.c:2065 ++#: c-typeck.c:2045 + msgid "comparisons like X<=Y<=Z do not have their mathematical meaning" + msgstr "X<=Y<=Z gibi bir karşılaÅŸtıma matematiksel olarak anlamlı deÄŸil" + +-#: c-typeck.c:2128 ++#: c-typeck.c:2108 + msgid "pointer of type `void *' used in subtraction" + msgstr "çıkartmada `void *' türünde gösterici kullanılmış" + +-#: c-typeck.c:2130 ++#: c-typeck.c:2110 + msgid "pointer to a function used in subtraction" + msgstr "çıkartmada iÅŸlev göstericisi kullanılmış" + +-#: c-typeck.c:2224 ++#: c-typeck.c:2204 + msgid "wrong type argument to unary plus" + msgstr "tekil artı iÅŸleminde yanlış tür argümanı" + +-#: c-typeck.c:2237 ++#: c-typeck.c:2217 + msgid "wrong type argument to unary minus" + msgstr "tekil eksi iÅŸleminde yanlış tür argümanı" + +-#: c-typeck.c:2254 ++#: c-typeck.c:2234 + msgid "ISO C does not support `~' for complex conjugation" + msgstr "ISO C karmaşık sayıların mantıksal çarpımında `~' desteklemez" + +-#: c-typeck.c:2260 ++#: c-typeck.c:2240 + msgid "wrong type argument to bit-complement" + msgstr "bit-tümler için yanlış tür argümanı" + +-#: c-typeck.c:2268 ++#: c-typeck.c:2248 + msgid "wrong type argument to abs" + msgstr "mutlak deÄŸer için yanlış tür argümanı" + +-#: c-typeck.c:2280 ++#: c-typeck.c:2260 + msgid "wrong type argument to conjugation" + msgstr "mantıksal çarpım için yanlış tür argümanı" + +-#: c-typeck.c:2294 ++#: c-typeck.c:2274 + msgid "wrong type argument to unary exclamation mark" + msgstr "tekil tümleyen için yanlış tür argümanı" + +-#: c-typeck.c:2337 ++#: c-typeck.c:2317 + msgid "ISO C does not support `++' and `--' on complex types" + msgstr "ISO C karmaşık sayı türlerinde `++' ve `--' desteklemez" + +-#: c-typeck.c:2352 c-typeck.c:2384 ++#: c-typeck.c:2332 c-typeck.c:2364 + msgid "wrong type argument to increment" + msgstr "arttırımda yanlış türde argüman" + +-#: c-typeck.c:2354 c-typeck.c:2386 ++#: c-typeck.c:2334 c-typeck.c:2366 + msgid "wrong type argument to decrement" + msgstr "eksiltmede yanlış türde argüman" + +-#: c-typeck.c:2375 ++#: c-typeck.c:2355 + msgid "increment of pointer to unknown structure" + msgstr "bilinmeyen yapı göstericisinde arttırma" + +-#: c-typeck.c:2377 ++#: c-typeck.c:2357 + msgid "decrement of pointer to unknown structure" + msgstr "bilinmeyen yapı göstericisinde eksiltme" + +-#: c-typeck.c:2502 ++#: c-typeck.c:2482 + msgid "invalid lvalue in unary `&'" + msgstr "tekil `&' için geçersiz soldeÄŸer" + +-#: c-typeck.c:2534 ++#: c-typeck.c:2514 + #, c-format + msgid "attempt to take address of bit-field structure member `%s'" + msgstr "bit-alanı yapının `%s' üyesinin adresi alınmaya çalışılıyor" + +-#: c-typeck.c:2668 ++#: c-typeck.c:2648 + msgid "use of conditional expressions as lvalues is deprecated" + msgstr "sol taraf deÄŸeri olarak koÅŸullu ifadeler artık geçersiz" + +-#: c-typeck.c:2671 ++#: c-typeck.c:2651 + msgid "use of compound expressions as lvalues is deprecated" + msgstr "sol taraf deÄŸeri olarak birleÅŸik ifadeler artık geçersiz" + +-#: c-typeck.c:2674 ++#: c-typeck.c:2654 + msgid "use of cast expressions as lvalues is deprecated" + msgstr "sol taraf deÄŸeri olarak tür dönüşüm ifadeleri artık geçersiz" + +-#: c-typeck.c:2689 ++#: c-typeck.c:2669 + #, c-format + msgid "%s of read-only member `%s'" + msgstr "salt-okunur üye `%2$s' için %1$s" + +-#: c-typeck.c:2693 ++#: c-typeck.c:2673 + #, c-format + msgid "%s of read-only variable `%s'" + msgstr "salt-okunur deÄŸiÅŸken `%2$s' için %1$s" + +-#: c-typeck.c:2696 ++#: c-typeck.c:2676 + #, c-format + msgid "%s of read-only location" + msgstr "salt-okunur konumun %s" + +-#: c-typeck.c:2714 ++#: c-typeck.c:2694 + #, c-format + msgid "cannot take address of bit-field `%s'" + msgstr "`%s' bit-alanının adresi alınamıyor" + +-#: c-typeck.c:2742 treelang/treetree.c:946 ++#: c-typeck.c:2722 treelang/treetree.c:946 + #, c-format + msgid "global register variable `%s' used in nested function" + msgstr "genel yazmaç deÄŸiÅŸkeni `%s' yuvalanmış iÅŸlevde kullanılmış" + +-#: c-typeck.c:2746 treelang/treetree.c:950 ++#: c-typeck.c:2726 treelang/treetree.c:950 + #, c-format + msgid "register variable `%s' used in nested function" + msgstr "yazmaç deÄŸiÅŸkeni `%s' yuvalanmış iÅŸlevde kullanılmış" + +-#: c-typeck.c:2753 treelang/treetree.c:957 ++#: c-typeck.c:2733 treelang/treetree.c:957 + #, c-format + msgid "address of global register variable `%s' requested" + msgstr "`%s' genel yazmaç deÄŸiÅŸkeninin adresi istenmiÅŸ" + +-#: c-typeck.c:2765 ++#: c-typeck.c:2745 + msgid "cannot put object with volatile field into register" + msgstr "gelgeç alanlı nesne yazmaça konulamaz" + +-#: c-typeck.c:2769 treelang/treetree.c:962 ++#: c-typeck.c:2749 treelang/treetree.c:962 + #, c-format + msgid "address of register variable `%s' requested" + msgstr "`%s' yazmaç deÄŸiÅŸkeninin adresi istendi" + +-#: c-typeck.c:2854 ++#: c-typeck.c:2834 + msgid "signed and unsigned type in conditional expression" + msgstr "koÅŸullu ifadede signed ve unsigned türler" + +-#: c-typeck.c:2861 ++#: c-typeck.c:2841 + msgid "ISO C forbids conditional expr with only one void side" + msgstr "ISO C tek taraflı void tür içeren koÅŸullu ifadelere izin vermez" + +-#: c-typeck.c:2877 c-typeck.c:2884 ++#: c-typeck.c:2857 c-typeck.c:2864 + msgid "ISO C forbids conditional expr between `void *' and function pointer" + msgstr "ISO C `void *' ve iÅŸlev göstericisi arasında koÅŸullu ifadelere izin vermez" + +-#: c-typeck.c:2890 ++#: c-typeck.c:2870 + msgid "pointer type mismatch in conditional expression" + msgstr "koÅŸullu ifade içinde gösterici türü uyumsuzluÄŸu" + +-#: c-typeck.c:2897 c-typeck.c:2907 ++#: c-typeck.c:2877 c-typeck.c:2887 + msgid "pointer/integer type mismatch in conditional expression" + msgstr "koÅŸullu ifadede gösterici/tamsayı tür uyumsuzluÄŸu" + +-#: c-typeck.c:2921 ++#: c-typeck.c:2901 + msgid "type mismatch in conditional expression" + msgstr "ÅŸartlı ifade içinde tür uyumsuzluÄŸu" + +-#: c-typeck.c:2981 ++#: c-typeck.c:2961 + msgid "left-hand operand of comma expression has no effect" + msgstr "virgüllü ifadenin sol terimi etkisiz" + +-#: c-typeck.c:3012 ++#: c-typeck.c:2992 + msgid "cast specifies array type" + msgstr "tür dönüşümü dizi belirtiyor" + +-#: c-typeck.c:3018 ++#: c-typeck.c:2998 + msgid "cast specifies function type" + msgstr "tür dönüşümü iÅŸlev belirtiyor" + +-#: c-typeck.c:3028 ++#: c-typeck.c:3008 + msgid "ISO C forbids casting nonscalar to the same type" + msgstr "ISO C skalar olmayandan aynı türe dönüşüme izin vermez" + +-#: c-typeck.c:3046 ++#: c-typeck.c:3026 + msgid "ISO C forbids casts to union type" + msgstr "ISO C union türe dönüşüme izin vermez" + +-#: c-typeck.c:3054 ++#: c-typeck.c:3034 + msgid "cast to union type from type not present in union" + msgstr "union içinde mevcut olmayan türden union türe dönüşüm" + +-#: c-typeck.c:3105 ++#: c-typeck.c:3085 + msgid "cast adds new qualifiers to function type" + msgstr "tür dönüşümü, iÅŸlev türüne yeni niteleyiciler ekliyor" + + #. There are qualifiers present in IN_OTYPE that are not + #. present in IN_TYPE. +-#: c-typeck.c:3110 ++#: c-typeck.c:3090 + msgid "cast discards qualifiers from pointer target type" + msgstr "tür dönüşümü, gösterici hedef türünden niteleyicileri iptal ediyor" + +-#: c-typeck.c:3125 ++#: c-typeck.c:3105 + msgid "cast increases required alignment of target type" + msgstr "tür dönüşümü hedef türün gerekli hizalamasını azaltıyor" + +-#: c-typeck.c:3131 cp/typeck.c:4945 ++#: c-typeck.c:3111 cp/typeck.c:4963 + msgid "cast from pointer to integer of different size" + msgstr "göstericiden farklı tamsayı türlere dönüşüm" + +-#: c-typeck.c:3136 ++#: c-typeck.c:3116 + msgid "cast does not match function type" + msgstr "tür dönüşümü iÅŸlev türüyle uyumsuz" + +-#: c-typeck.c:3143 cp/typeck.c:4952 ++#: c-typeck.c:3123 cp/typeck.c:4970 + msgid "cast to pointer from integer of different size" + msgstr "farklı boyuttaki tamsayı türden göstericye dönüşüm" + +-#: c-typeck.c:3155 ++#: c-typeck.c:3135 + msgid "type-punning to incomplete type might break strict-aliasing rules" + msgstr "içi boÅŸ türle tür tanımı yapmak adlandırma kurallarının katılığı ile baÄŸdaÅŸmaz" + +-#: c-typeck.c:3159 ++#: c-typeck.c:3139 + msgid "dereferencing type-punned pointer will break strict-aliasing rules" + msgstr "türü tanımlanmış göstericinin iliÅŸkilendirilmesi adlandırmanın deÄŸiÅŸmezliÄŸi kurallarını bozacak" + +-#: c-typeck.c:3170 ++#: c-typeck.c:3150 + msgid "ISO C forbids conversion of function pointer to object pointer type" + msgstr "ISO C iÅŸlev göstericisinin nesne göstericisine dönüştürülmesini yasaklar" + +-#: c-typeck.c:3179 ++#: c-typeck.c:3159 + msgid "ISO C forbids conversion of object pointer to function pointer type" + msgstr "ISO C nesne göstericisinin iÅŸlev göstericisine dönüştürülmesini yasaklar" + + #. Now we have handled acceptable kinds of LHS that are not truly lvalues. + #. Reject anything strange now. +-#: c-typeck.c:3337 ++#: c-typeck.c:3317 + msgid "invalid lvalue in assignment" + msgstr "atama içinde sol taraf geçersiz" + + #. Convert new value to destination type. +-#: c-typeck.c:3346 c-typeck.c:3371 c-typeck.c:3388 cp/typeck.c:5064 +-#: cp/typeck.c:5211 cp/typeck.c:5226 ++#: c-typeck.c:3326 c-typeck.c:3351 c-typeck.c:3368 cp/typeck.c:5082 ++#: cp/typeck.c:5229 cp/typeck.c:5244 + msgid "assignment" + msgstr "atama" + +-#: c-typeck.c:3455 ++#: c-typeck.c:3435 + msgid "cannot pass rvalue to reference parameter" + msgstr "saÄŸdeÄŸer, baÅŸvuru parametresine aktarılamaz" + +-#: c-typeck.c:3564 c-typeck.c:3640 ++#: c-typeck.c:3544 c-typeck.c:3620 + #, c-format + msgid "%s makes qualified function pointer from unqualified" + msgstr "%s nitelemeyenden niteleyen iÅŸlev göstericisi yapıyor" + +-#: c-typeck.c:3568 c-typeck.c:3620 ++#: c-typeck.c:3548 c-typeck.c:3600 + #, c-format + msgid "%s discards qualifiers from pointer target type" + msgstr "%s gösterici hedef türündeki niteleyicileri iptal ediyor" + +-#: c-typeck.c:3574 ++#: c-typeck.c:3554 + msgid "ISO C prohibits argument conversion to union type" + msgstr "ISO C union türe argüman dönüşümünü yasaklar" + +-#: c-typeck.c:3612 ++#: c-typeck.c:3592 + #, c-format + msgid "ISO C forbids %s between function pointer and `void *'" + msgstr "ISO C de iÅŸlev göstericisi ile `void *' arasında %s yasaktır" + +-#: c-typeck.c:3629 ++#: c-typeck.c:3609 + #, c-format + msgid "pointer targets in %s differ in signedness" + msgstr "gösterici hedefleri %s içinde farklı signed'lıkta" + +-#: c-typeck.c:3645 ++#: c-typeck.c:3625 + #, c-format + msgid "%s from incompatible pointer type" + msgstr "%s uyumsuz gösterici türünde" + +-#: c-typeck.c:3651 c-typeck.c:4158 cp/typeck.c:1389 ++#: c-typeck.c:3631 c-typeck.c:4138 cp/typeck.c:1389 + msgid "invalid use of non-lvalue array" + msgstr "soldeÄŸersiz dizi kullanımı geçersiz" + +-#: c-typeck.c:3665 ++#: c-typeck.c:3645 + #, c-format + msgid "%s makes pointer from integer without a cast" + msgstr "%s sırasında bir tür dönüşümü olmaksızın tamsayıdan gösterici yapılıyor" + +-#: c-typeck.c:3672 ++#: c-typeck.c:3652 + #, c-format + msgid "%s makes integer from pointer without a cast" + msgstr "%s bir tür dönüşümü olmaksızın göstericiden tamsayı yapılıyor" + +-#: c-typeck.c:3686 c-typeck.c:3689 ++#: c-typeck.c:3666 c-typeck.c:3669 + #, c-format + msgid "incompatible type for argument %d of `%s'" + msgstr "`%2$s'nın %1$d. argümanı için tür uyumsuz" + +-#: c-typeck.c:3693 ++#: c-typeck.c:3673 + #, c-format + msgid "incompatible type for argument %d of indirect function call" + msgstr "dolaylı iÅŸlev çaÄŸrısının %d. argümanı için tür uyumsuz" + +-#: c-typeck.c:3697 ++#: c-typeck.c:3677 + #, c-format + msgid "incompatible types in %s" + msgstr "%s içinde uyumsuz türler" + + #. Function name is known; supply it. +-#: c-typeck.c:3753 ++#: c-typeck.c:3733 + #, c-format + msgid "passing arg of `%s'" + msgstr "`%s' iÅŸlevinin argümanının aktarılması" + + #. Function name unknown (call through ptr). +-#: c-typeck.c:3762 ++#: c-typeck.c:3742 + msgid "passing arg of pointer to function" + msgstr "iÅŸlev göstericisi olan argümanın aktarılması" + + #. Function name is known; supply it. +-#: c-typeck.c:3770 ++#: c-typeck.c:3750 + #, c-format + msgid "passing arg %d of `%s'" + msgstr "`%2$s' iÅŸlevinin %1$d. argümanının aktarılması" + + #. Function name unknown (call through ptr); just give arg number. +-#: c-typeck.c:3779 ++#: c-typeck.c:3759 + #, c-format + msgid "passing arg %d of pointer to function" + msgstr "iÅŸlev göstericisi olarak %d. argümanın aktarılması" + +-#: c-typeck.c:3836 ++#: c-typeck.c:3816 + msgid "traditional C rejects automatic aggregate initialization" + msgstr "geleneksel C otomatik küme ilklendirmesini reddeder" + +-#: c-typeck.c:4007 c-typeck.c:4022 c-typeck.c:4037 ++#: c-typeck.c:3987 c-typeck.c:4002 c-typeck.c:4017 + #, c-format + msgid "(near initialization for `%s')" + msgstr "(%s için near ilklendirme)" + +-#: c-typeck.c:4086 cp/typeck2.c:560 ++#: c-typeck.c:4066 cp/typeck2.c:550 + msgid "char-array initialized from wide string" + msgstr "karakter dizisinin ilklendiricisi olarak geniÅŸ dizge kullanılmış" + +-#: c-typeck.c:4093 cp/typeck2.c:567 ++#: c-typeck.c:4073 cp/typeck2.c:557 + msgid "int-array initialized from non-wide string" + msgstr "tamsayı dizisinin ilklendiricisi olarak geniÅŸ-olmayan dizge kullanılmış" + +-#: c-typeck.c:4111 cp/typeck2.c:582 ++#: c-typeck.c:4091 cp/typeck2.c:572 + msgid "initializer-string for array of chars is too long" + msgstr "karakter dizisi için dizge-ilklendirici çok uzun" + +-#: c-typeck.c:4181 ++#: c-typeck.c:4161 + msgid "array initialized from non-constant array expression" + msgstr "dizinin ilklendiricisi olarak sabit olmayan dizi ifadesi kullanılmış" + +-#: c-typeck.c:4232 ++#: c-typeck.c:4212 + msgid "initialization" + msgstr "ilklendirme" + +-#: c-typeck.c:4243 c-typeck.c:5621 ++#: c-typeck.c:4223 c-typeck.c:5601 + msgid "initializer element is not computable at load time" + msgstr "baÅŸlangıç öğesi yükleme sırasında hesaplanabilir deÄŸil" + +-#: c-typeck.c:4258 cp/typeck2.c:659 ++#: c-typeck.c:4238 cp/typeck2.c:649 + msgid "invalid initializer" + msgstr "geçersiz ilklendirici" + +-#: c-typeck.c:4540 cp/decl.c:4484 ++#: c-typeck.c:4520 cp/decl.c:4539 + msgid "opaque vector types cannot be initialized" + msgstr "opak vektör türleri ilklendirilemez" + +-#: c-typeck.c:4734 ++#: c-typeck.c:4714 + msgid "extra brace group at end of initializer" + msgstr "ilklendiricinin sonunda fazladan parantezli grup" + +-#: c-typeck.c:4754 ++#: c-typeck.c:4734 + msgid "missing braces around initializer" + msgstr "ilklendiriciyi çevreleyen parantezler yok" + +-#: c-typeck.c:4814 ++#: c-typeck.c:4794 + msgid "braces around scalar initializer" + msgstr "skalar ilklendiriciyi kuÅŸatan parantezler" + +-#: c-typeck.c:4865 ++#: c-typeck.c:4845 + msgid "initialization of flexible array member in a nested context" + msgstr "içiçe baÄŸlam içinde esnek dizi üyesi ilklendirmesi" + +-#: c-typeck.c:4867 ++#: c-typeck.c:4847 + msgid "initialization of a flexible array member" + msgstr "esnek dizi üyesi ilklendirmesi" + +-#: c-typeck.c:4898 ++#: c-typeck.c:4878 + msgid "missing initializer" + msgstr "ilklendirici yok" + +-#: c-typeck.c:4920 ++#: c-typeck.c:4900 + msgid "empty scalar initializer" + msgstr "skalar ilklendirici boÅŸ" + +-#: c-typeck.c:4925 ++#: c-typeck.c:4905 + msgid "extra elements in scalar initializer" + msgstr "skalar ilklendiricide fazladan öğeler" + +-#: c-typeck.c:5010 ++#: c-typeck.c:4990 + msgid "initialization designators may not nest" + msgstr "ilklendirme tasarlayıcılar yuvalanamayabilir" + +-#: c-typeck.c:5031 c-typeck.c:5099 ++#: c-typeck.c:5011 c-typeck.c:5079 + msgid "array index in non-array initializer" + msgstr "dizi-olmayan ilklendiricide dizi indisi" + +-#: c-typeck.c:5036 c-typeck.c:5152 ++#: c-typeck.c:5016 c-typeck.c:5132 + msgid "field name not in record or union initializer" + msgstr "alan ismi kayıt ya da union ilklendiricisinde kullanılmamış" + +-#: c-typeck.c:5095 c-typeck.c:5097 ++#: c-typeck.c:5075 c-typeck.c:5077 + msgid "nonconstant array index in initializer" + msgstr "ilklendiricide sabit-olmayan dizi indeksi" + +-#: c-typeck.c:5101 c-typeck.c:5104 ++#: c-typeck.c:5081 c-typeck.c:5084 + msgid "array index in initializer exceeds array bounds" + msgstr "ilklendiricideki dizi indeksi dizi sınırlarının dışında" + +-#: c-typeck.c:5115 ++#: c-typeck.c:5095 + msgid "empty index range in initializer" + msgstr "ilklendiricide indeks aralığı boÅŸ" + +-#: c-typeck.c:5124 ++#: c-typeck.c:5104 + msgid "array index range in initializer exceeds array bounds" + msgstr "ilklendiricideki dizi indeksi aralığı dizi sınırlarını aşıyor" + +-#: c-typeck.c:5164 ++#: c-typeck.c:5144 + #, c-format + msgid "unknown field `%s' specified in initializer" + msgstr "ilklendiricide bilinmeyen `%s' alanı belirtilmiÅŸ" + +-#: c-typeck.c:5200 c-typeck.c:5221 c-typeck.c:5683 ++#: c-typeck.c:5180 c-typeck.c:5201 c-typeck.c:5663 + msgid "initialized field with side-effects overwritten" + msgstr "yan-etkili ilklendirilmiÅŸ alanın üzerine yazıldı" + +-#: c-typeck.c:5891 ++#: c-typeck.c:5871 + msgid "excess elements in char array initializer" + msgstr "karakter dizisi ilklendiricide gereÄŸinden fazla öğe" + +-#: c-typeck.c:5898 c-typeck.c:5944 ++#: c-typeck.c:5878 c-typeck.c:5924 + msgid "excess elements in struct initializer" + msgstr "struct ilklendiricide gereÄŸinden fazla öğe" + +-#: c-typeck.c:5959 ++#: c-typeck.c:5939 + msgid "non-static initialization of a flexible array member" + msgstr "esnek dizi üyesinin satatik olmayan ilklendirmesi" + +-#: c-typeck.c:6026 ++#: c-typeck.c:6006 + msgid "excess elements in union initializer" + msgstr "union ilklendiricide gereÄŸinden fazla öğe" + +-#: c-typeck.c:6047 ++#: c-typeck.c:6027 + msgid "traditional C rejects initialization of unions" + msgstr "geleneksel C union ilklendirmesini reddeder" + +-#: c-typeck.c:6110 ++#: c-typeck.c:6090 + msgid "excess elements in array initializer" + msgstr "dizi ilklendiricide gereÄŸinden fazla öğe" + +-#: c-typeck.c:6139 ++#: c-typeck.c:6119 + msgid "excess elements in vector initializer" + msgstr "vektör ilklendiricide gereÄŸinden fazla öğe" + +-#: c-typeck.c:6161 ++#: c-typeck.c:6141 + msgid "excess elements in scalar initializer" + msgstr "skalar ilklendiricide gereÄŸinden fazla öğe" + +-#: c-typeck.c:6263 ++#: c-typeck.c:6243 + msgid "asm template is not a string constant" + msgstr "asm ÅŸablon bir dizge sabit deÄŸil" + +-#: c-typeck.c:6295 ++#: c-typeck.c:6275 + msgid "invalid lvalue in asm statement" + msgstr "asm deyiminde geçersiz sol taraf" + +-#: c-typeck.c:6367 cp/typeck.c:5902 ++#: c-typeck.c:6347 cp/typeck.c:5923 + msgid "modification by `asm'" + msgstr "`asm' tarafından deÄŸiÅŸiklik" + +-#: c-typeck.c:6385 cp/typeck.c:5986 ++#: c-typeck.c:6365 cp/typeck.c:6007 + msgid "function declared `noreturn' has a `return' statement" + msgstr "`noreturn' olarak bildirilmiÅŸ iÅŸlev `return' deyimi içeriyor" + +-#: c-typeck.c:6392 ++#: c-typeck.c:6372 + msgid "`return' with no value, in function returning non-void" + msgstr "geridönüş deÄŸeri void olmayan iÅŸlevde `return' deÄŸer içermiyor" + +-#: c-typeck.c:6398 ++#: c-typeck.c:6378 + msgid "`return' with a value, in function returning void" + msgstr "void dönüşlü iÅŸlevde `return' deyimi deÄŸer içeriyor" + +-#: c-typeck.c:6402 ++#: c-typeck.c:6382 + msgid "return" + msgstr "dönüş deÄŸeri" + +-#: c-typeck.c:6454 ++#: c-typeck.c:6434 + msgid "function returns address of local variable" + msgstr "iÅŸlev yerel deÄŸiÅŸkenin adresi ile dönüyor" + +-#: c-typeck.c:6509 cp/semantics.c:749 ++#: c-typeck.c:6489 cp/semantics.c:749 + msgid "switch quantity not an integer" + msgstr "switch büyüklüğü bir tamsayı deÄŸil" + +-#: c-typeck.c:6519 ++#: c-typeck.c:6499 + msgid "`long' switch expression not converted to `int' in ISO C" + msgstr "ISO C'de `long' switch ifadesi `int'e dönüştürülmez" + +-#: c-typeck.c:6560 cp/parser.c:5560 ++#: c-typeck.c:6540 cp/parser.c:5597 + msgid "case label not within a switch statement" + msgstr "case etiketi bir switch deyimi içinde deÄŸil" + +-#: c-typeck.c:6562 ++#: c-typeck.c:6542 + msgid "`default' label not within a switch statement" + msgstr "`default' etiketi bir switch deyimi içinde deÄŸil" + +-#: c-typeck.c:6714 c-typeck.c:6748 ++#: c-typeck.c:6694 c-typeck.c:6728 + msgid "division by zero" + msgstr "sıfırla bölme" + +-#: c-typeck.c:6793 cp/typeck.c:2953 ++#: c-typeck.c:6773 cp/typeck.c:2953 + msgid "right shift count is negative" + msgstr "saÄŸa kaydırma sayısı negatif" + +-#: c-typeck.c:6800 cp/typeck.c:2959 ++#: c-typeck.c:6780 cp/typeck.c:2959 + msgid "right shift count >= width of type" + msgstr "saÄŸa kaydırma sayısı türünden büyük yada eÅŸit" + +-#: c-typeck.c:6821 cp/typeck.c:2978 ++#: c-typeck.c:6801 cp/typeck.c:2978 + msgid "left shift count is negative" + msgstr "sola kaydırma sayısı negatif" + +-#: c-typeck.c:6824 cp/typeck.c:2980 ++#: c-typeck.c:6804 cp/typeck.c:2980 + msgid "left shift count >= width of type" + msgstr "sola kaydırma sayısı türünden büyük ya da eÅŸit" + +-#: c-typeck.c:6845 ++#: c-typeck.c:6825 + msgid "shift count is negative" + msgstr "kaydırma sayısı negatif" + +-#: c-typeck.c:6847 ++#: c-typeck.c:6827 + msgid "shift count >= width of type" + msgstr "kaydırma sayısı türünden büyük ya da eÅŸit" + +-#: c-typeck.c:6864 cp/typeck.c:3015 ++#: c-typeck.c:6844 cp/typeck.c:3015 + msgid "comparing floating point with == or != is unsafe" + msgstr "== veya != ile karşılaÅŸtırma gerçel sayılarda güvenli deÄŸil" + +-#: c-typeck.c:6888 c-typeck.c:6894 ++#: c-typeck.c:6868 c-typeck.c:6874 + msgid "ISO C forbids comparison of `void *' with function pointer" + msgstr "ISO C `void *' ile iÅŸlev göstericisinin karşılaÅŸtırılmasına izin vermez" + +-#: c-typeck.c:6897 c-typeck.c:6937 c-typeck.c:6965 ++#: c-typeck.c:6877 c-typeck.c:6917 c-typeck.c:6945 + msgid "comparison of distinct pointer types lacks a cast" + msgstr "belirgin gösterici türlerinin karşılaÅŸtırması bir tür dönüşümü gerektirir" + +-#: c-typeck.c:6911 c-typeck.c:6916 c-typeck.c:6985 c-typeck.c:6990 ++#: c-typeck.c:6891 c-typeck.c:6896 c-typeck.c:6965 c-typeck.c:6970 + msgid "comparison between pointer and integer" + msgstr "gösterici türü ile tamsayı türü arasında karşılaÅŸtırma" + +-#: c-typeck.c:6932 c-typeck.c:6960 ++#: c-typeck.c:6912 c-typeck.c:6940 + msgid "ISO C forbids ordered comparisons of pointers to functions" + msgstr "ISO C iÅŸlev göstericilerinin sıralı karşılaÅŸtırmalarına izin vermez" + +-#: c-typeck.c:6957 ++#: c-typeck.c:6937 + msgid "comparison of complete and incomplete pointers" + msgstr "tamamlanmış ve içi boÅŸ göstericilerin karşılaÅŸtırılması" + +-#: c-typeck.c:6973 c-typeck.c:6980 ++#: c-typeck.c:6953 c-typeck.c:6960 + msgid "ordered comparison of pointer with integer zero" + msgstr "tamsayı sıfır ile göstercinin sıralı karşılaÅŸtırması" + +-#: c-typeck.c:7004 cp/typeck.c:3151 ++#: c-typeck.c:6984 cp/typeck.c:3151 + msgid "unordered comparison on non-floating point argument" + msgstr "gerçel sayı olmayan argümanlar arasında düzenlenmemiÅŸ karşılaÅŸtırma" + +-#: c-typeck.c:7214 ++#: c-typeck.c:7194 + msgid "comparison between signed and unsigned" + msgstr "signed ile unsigned arasında karşılaÅŸtırma" + +-#: c-typeck.c:7260 cp/typeck.c:3398 ++#: c-typeck.c:7240 cp/typeck.c:3398 + msgid "comparison of promoted ~unsigned with constant" + msgstr "sabitle yükseltgenmiÅŸ ~unsigned karşılaÅŸtırması" + +-#: c-typeck.c:7268 cp/typeck.c:3406 ++#: c-typeck.c:7248 cp/typeck.c:3406 + msgid "comparison of promoted ~unsigned with unsigned" + msgstr "unsigned ile ~unsigned'a yükseltgenmiÅŸ türlerin karşılaÅŸtırması" + +@@ -3413,7 +3418,7 @@ + msgid "%Jinlining failed in call to '%F'" + msgstr "%J `%F' çaÄŸrısında satıriçine alma baÅŸarısız" + +-#: calls.c:1839 calls.c:2211 tree-inline.c:1339 tree-inline.c:1346 ++#: calls.c:1839 calls.c:2211 tree-inline.c:1339 tree-inline.c:1347 + msgid "called from here" + msgstr " buradan çaÄŸrıldı" + +@@ -3473,7 +3478,7 @@ + msgid "verify_flow_info: Basic block %d succ edge is corrupted" + msgstr "verify_flow_info: %d. temel bloÄŸun ardıl kenarı bozuk" + +-#: cfg.c:909 cfgrtl.c:1971 ++#: cfg.c:909 cfgrtl.c:1983 + #, c-format + msgid "Wrong amount of branch edges after unconditional jump %i" + msgstr "KoÅŸulsuz jump %i den sonraki dal kenarlarının miktarı yanlış" +@@ -3552,116 +3557,116 @@ + msgid "Edge from %d to %d should not be marked irreducible." + msgstr "%d den %d e kadar kenar indirgenemez olarak imlenmemeli." + +-#: cfgrtl.c:1877 ++#: cfgrtl.c:1889 + #, c-format + msgid "end insn %d for block %d not found in the insn stream" + msgstr "%2$d. bloÄŸunun son komutu %1$d komut akışı içinde yok." + +-#: cfgrtl.c:1891 ++#: cfgrtl.c:1903 + #, c-format + msgid "insn %d is in multiple basic blocks (%d and %d)" + msgstr "komut %d birden fazla temel bloÄŸun içinde (%d ve %d)" + +-#: cfgrtl.c:1903 ++#: cfgrtl.c:1915 + #, c-format + msgid "head insn %d for block %d not found in the insn stream" + msgstr "%2$d. bloÄŸun ilk komutu %1$d komut akışı içinde yok." + +-#: cfgrtl.c:1925 ++#: cfgrtl.c:1937 + msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i" + msgstr "verify_flow_info: REG_BR_PROB ile cfg %wi %i eÅŸleÅŸmiyor" + +-#: cfgrtl.c:1953 ++#: cfgrtl.c:1965 + #, c-format + msgid "Missing REG_EH_REGION note in the end of bb %i" + msgstr "bb %i'nin sonunda REG_EH_REGION bilgisi eksik" + +-#: cfgrtl.c:1961 ++#: cfgrtl.c:1973 + #, c-format + msgid "Too many outgoing branch edges from bb %i" + msgstr "bb %i'den çıkan dal kenarı çok fazla" + +-#: cfgrtl.c:1966 ++#: cfgrtl.c:1978 + #, c-format + msgid "Fallthru edge after unconditional jump %i" + msgstr "koÅŸulsuz jump %i den sonra ardcıl kenar" + +-#: cfgrtl.c:1977 ++#: cfgrtl.c:1989 + #, c-format + msgid "Wrong amount of branch edges after conditional jump %i" + msgstr "koÅŸullu jump %i den sonraki dal kenarlarını miktarı yanlış" + +-#: cfgrtl.c:1982 ++#: cfgrtl.c:1994 + #, c-format + msgid "Call edges for non-call insn in bb %i" + msgstr "bb %i içindeki çaÄŸrı olmayan komut için çaÄŸrı kenarları" + +-#: cfgrtl.c:1991 ++#: cfgrtl.c:2003 + #, c-format + msgid "Abnormal edges for no purpose in bb %i" + msgstr "bb %i içinde normaldışı amaçsız kenar sayısı " + +-#: cfgrtl.c:2001 ++#: cfgrtl.c:2013 + #, c-format + msgid "insn %d inside basic block %d but block_for_insn is NULL" + msgstr "komut %d %d. temel bloÄŸun içinde ama block_for_insn NULL" + +-#: cfgrtl.c:2005 ++#: cfgrtl.c:2017 + #, c-format + msgid "insn %d inside basic block %d but block_for_insn is %i" + msgstr "komut %d %d. temel bloÄŸun içinde ama block_for_insn %i" + +-#: cfgrtl.c:2019 cfgrtl.c:2029 ++#: cfgrtl.c:2031 cfgrtl.c:2041 + #, c-format + msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d" + msgstr "NOTE_INSN_BASIC_BLOCK %d. blok için eksik" + +-#: cfgrtl.c:2042 ++#: cfgrtl.c:2054 + #, c-format + msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d" + msgstr "%d. NOTE_INSN_BASIC_BLOCK %d. temel bloÄŸun ortasında" + +-#: cfgrtl.c:2052 ++#: cfgrtl.c:2064 + #, c-format + msgid "in basic block %d:" + msgstr "%d. temel blok içinde:" + +-#: cfgrtl.c:2053 ++#: cfgrtl.c:2065 + msgid "flow control insn inside a basic block" + msgstr "akış kontrol komutu bir temel bloÄŸun içinde" + +-#: cfgrtl.c:2099 ++#: cfgrtl.c:2111 + #, c-format + msgid "missing barrier after block %i" + msgstr "%i. bloktan sonraki sınır eksik" + +-#: cfgrtl.c:2112 ++#: cfgrtl.c:2124 + #, c-format + msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i" + msgstr "verify_flow_info: ardcıl %i->%i için blok sayısı yanlış" + +-#: cfgrtl.c:2127 ++#: cfgrtl.c:2139 + #, c-format + msgid "verify_flow_info: Incorrect fallthru %i->%i" + msgstr "verify_flow_info: ardcıl %i->%i yanlış" + +-#: cfgrtl.c:2129 ++#: cfgrtl.c:2141 + msgid "wrong insn in the fallthru edge" + msgstr "ardcıl kenarda yanlış komut" + +-#: cfgrtl.c:2146 ++#: cfgrtl.c:2158 + msgid "basic blocks not laid down consecutively" + msgstr "temel bloklar ardışık numaralı deÄŸil" + +-#: cfgrtl.c:2171 ++#: cfgrtl.c:2183 + msgid "insn outside basic block" + msgstr "komut temel bloÄŸun dışında" + +-#: cfgrtl.c:2179 ++#: cfgrtl.c:2191 + msgid "return not followed by barrier" + msgstr "return'den sonra sınır gelmiyor" + +-#: cfgrtl.c:2186 ++#: cfgrtl.c:2198 + #, c-format + msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)" + msgstr "komut zinciri (%d) içindeki bb notlarının sayısı != n_basic_blocks (%d)" +@@ -3894,7 +3899,7 @@ + msgid "library lib%s not found" + msgstr "lib%s kitaplığı bulunamadı" + +-#: combine.c:13048 ++#: combine.c:13047 + #, c-format + msgid "" + ";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n" +@@ -3905,7 +3910,7 @@ + ";; %d baÅŸarı.\n" + "\n" + +-#: combine.c:13057 ++#: combine.c:13056 + #, c-format + msgid "" + "\n" +@@ -4234,63 +4239,69 @@ + msgid "token \"%s\" is not valid in preprocessor expressions" + msgstr "\"%s\" dizgeciÄŸi öniÅŸlemci ifadelerinde geçersizdir" + +-#: cppexp.c:753 +-msgid "void expression between '(' and ')'" ++#: cppexp.c:751 ++#, fuzzy ++msgid "missing expression between '(' and ')'" + msgstr "'(' ve ')' arasında void ifade" + +-#: cppexp.c:756 ++#: cppexp.c:754 + msgid "#if with no expression" + msgstr "#if ifadesiz" + +-#: cppexp.c:758 ++#: cppexp.c:757 + #, c-format + msgid "operator '%s' has no right operand" + msgstr "`%s' iÅŸlecinin saÄŸ tarafı yok" + +-#: cppexp.c:784 ++#: cppexp.c:762 ++#, c-format ++msgid "operator '%s' has no left operand" ++msgstr "`%s' iÅŸlemiminin sol tarafı yok" ++ ++#: cppexp.c:788 + msgid " ':' without preceding '?'" + msgstr "':' den önce '?' yok" + +-#: cppexp.c:811 ++#: cppexp.c:815 + msgid "unbalanced stack in #if" + msgstr "#if ifadesinde karşılıksız yığın" + +-#: cppexp.c:830 ++#: cppexp.c:834 + #, c-format + msgid "impossible operator '%u'" + msgstr "iÅŸleç '%u' imkansız" + +-#: cppexp.c:922 ++#: cppexp.c:926 + msgid "missing ')' in expression" + msgstr "ifadede ')' eksik" + +-#: cppexp.c:943 ++#: cppexp.c:947 + msgid "'?' without following ':'" + msgstr "'?' dan sonra ':' yok" + +-#: cppexp.c:953 ++#: cppexp.c:957 + msgid "integer overflow in preprocessor expression" + msgstr "öniÅŸlemci ifadesinde tamsayı taÅŸması" + +-#: cppexp.c:958 ++#: cppexp.c:962 + msgid "missing '(' in expression" + msgstr "ifadede '(' eksik" + +-#: cppexp.c:990 ++#: cppexp.c:994 + #, c-format + msgid "the left operand of \"%s\" changes sign when promoted" + msgstr "\"%s\"in soldaki terimi yükseltgenirken iÅŸaret deÄŸiÅŸtiriyor" + +-#: cppexp.c:995 ++#: cppexp.c:999 + #, c-format + msgid "the right operand of \"%s\" changes sign when promoted" + msgstr "\"%s\"in saÄŸdaki terimi yükseltgenirken iÅŸaret deÄŸiÅŸtiriyor" + +-#: cppexp.c:1353 ++#: cppexp.c:1357 + msgid "comma operator in operand of #if" + msgstr "#if'in teriminde virgül" + +-#: cppexp.c:1484 ++#: cppexp.c:1488 + msgid "division by zero in #if" + msgstr "#if içinde sıfırla bölme" + +@@ -4326,7 +4337,7 @@ + msgid "no include path in which to search for %s" + msgstr "%s için aranacaklar içinde baÅŸlık dosyaları yolu yok" + +-#: cppfiles.c:956 ++#: cppfiles.c:959 + msgid "Multiple include guards may be useful for:\n" + msgstr "Çoklu include önlemleri aÅŸağıdakiler için kullanışlı olabilir:\n" + +@@ -4737,7 +4748,7 @@ + msgid "syntax error in macro parameter list" + msgstr "makro parametre listesinde sözdizimi hatası" + +-#: cse.c:7064 ++#: cse.c:7069 + #, c-format + msgid ";; Processing block from %d to %d, %d sets.\n" + msgstr ";; %d den %d ye kadar, %d kümelik blok iÅŸleniyor.\n" +@@ -4869,12 +4880,12 @@ + + #. We can't handle floating point constants; + #. PRINT_OPERAND must handle them. +-#: final.c:3220 vmsdbgout.c:467 config/i386/i386.c:6768 ++#: final.c:3220 vmsdbgout.c:467 config/i386/i386.c:6769 + #: config/pdp11/pdp11.c:1646 + msgid "floating constant misused" + msgstr "gerçel sayı sabitler desteklenmiyor" + +-#: final.c:3276 vmsdbgout.c:524 config/i386/i386.c:6846 ++#: final.c:3276 vmsdbgout.c:524 config/i386/i386.c:6847 + #: config/pdp11/pdp11.c:1693 + msgid "invalid expression as operand" + msgstr "veri öğesi olarak ifade geçersiz" +@@ -4895,25 +4906,25 @@ + msgid "Attempt to delete prologue/epilogue insn:" + msgstr "Önsöz/sonsöz komutlarını silmeye çalışır" + +-#: fold-const.c:2878 fold-const.c:2891 ++#: fold-const.c:2889 fold-const.c:2902 + #, c-format + msgid "comparison is always %d due to width of bit-field" + msgstr "karşılaÅŸtırma bit alanının geniÅŸliÄŸinden dolayı daima %d" + +-#: fold-const.c:4093 fold-const.c:4110 ++#: fold-const.c:4110 fold-const.c:4127 + #, c-format + msgid "comparison is always %d" + msgstr "karşılaÅŸtırma sonucu daima %d" + +-#: fold-const.c:4241 ++#: fold-const.c:4258 + msgid "`or' of unmatched not-equal tests is always 1" + msgstr "eÅŸleÅŸmeyenlerin eÅŸitsizlik testlerininin `or' sonucu daima 1 dir" + +-#: fold-const.c:4246 ++#: fold-const.c:4263 + msgid "`and' of mutually exclusive equal-tests is always 0" + msgstr "baÄŸdaÅŸmayanların eÅŸitlik testlerinin `and' sonucu daima 0 dır" + +-#: fold-const.c:8393 ++#: fold-const.c:8410 + msgid "fold check: original tree changed by fold" + msgstr "fold sınaması: özgün aÄŸaç fold tarafından deÄŸiÅŸtirildi" + +@@ -4921,27 +4932,27 @@ + msgid "%Jsize of variable '%D' is too large" + msgstr "%J `%D' deÄŸiÅŸkeni çok geniÅŸ" + +-#: function.c:3742 ++#: function.c:3752 + msgid "impossible constraint in `asm'" + msgstr "`asm' içindeki koÅŸul mümkün deÄŸil" + +-#: function.c:5733 ++#: function.c:5743 + msgid "%J'%D' might be used uninitialized in this function" + msgstr "%J `%D' bu iÅŸlevde ilklendirilmeden kullanılmış olmalı" + +-#: function.c:5740 ++#: function.c:5750 + msgid "%Jvariable '%D' might be clobbered by `longjmp' or `vfork'" + msgstr "%J deÄŸiÅŸken `%D' `longjmp' ya da `vfork' tarafından taşırılmış olabilir" + +-#: function.c:5759 ++#: function.c:5769 + msgid "%Jargument '%D' might be clobbered by `longjmp' or `vfork'" + msgstr "%J argüman `%D' `longjmp' ya da `vfork' tarafından taşırılmış olabilir" + +-#: function.c:6533 ++#: function.c:6543 + msgid "function returns an aggregate" + msgstr "iÅŸlev bir küme ile dönüyor" + +-#: function.c:6929 ++#: function.c:6939 + msgid "%Junused parameter '%D'" + msgstr "%J parametre `%D' kullanılmamış" + +@@ -4969,7 +4980,7 @@ + msgid "Using built-in specs.\n" + msgstr "YerleÅŸik özellikler kullanılıyor.\n" + +-#: gcc.c:1755 ++#: gcc.c:1758 + #, c-format + msgid "" + "Setting spec %s to '%s'\n" +@@ -4978,42 +4989,42 @@ + "Özelik %s '%s' e ayarlanıyor\n" + "\n" + +-#: gcc.c:1857 ++#: gcc.c:1860 + #, c-format + msgid "Reading specs from %s\n" + msgstr "Özellikler %s'den okunuyor\n" + +-#: gcc.c:1953 gcc.c:1972 ++#: gcc.c:1956 gcc.c:1975 + #, c-format + msgid "specs %%include syntax malformed after %ld characters" + msgstr "specs %%include sözdizimi %ld karakterden sonra bozuk" + +-#: gcc.c:1980 ++#: gcc.c:1983 + #, c-format + msgid "could not find specs file %s\n" + msgstr "özellik dosyası %s bulunamadı\n" + +-#: gcc.c:1997 gcc.c:2005 gcc.c:2014 gcc.c:2023 ++#: gcc.c:2000 gcc.c:2008 gcc.c:2017 gcc.c:2026 + #, c-format + msgid "specs %%rename syntax malformed after %ld characters" + msgstr "specs %%rename sözdizimi %ld karakterden sonra bozuk" + +-#: gcc.c:2032 ++#: gcc.c:2035 + #, c-format + msgid "specs %s spec was not found to be renamed" + msgstr "ismi deÄŸiÅŸecek specs %s özelliÄŸi yok" + +-#: gcc.c:2039 ++#: gcc.c:2042 + #, c-format + msgid "%s: attempt to rename spec '%s' to already defined spec '%s'" + msgstr "%s: '%s' belirtiminin ismi zaten '%s' belirtiminde kullanılmış" + +-#: gcc.c:2044 ++#: gcc.c:2047 + #, c-format + msgid "rename spec %s to %s\n" + msgstr "spec %s ismi %s yapılıyor\n" + +-#: gcc.c:2046 ++#: gcc.c:2049 + #, c-format + msgid "" + "spec is '%s'\n" +@@ -5022,25 +5033,25 @@ + "özellik '%s'\n" + "\n" + +-#: gcc.c:2059 ++#: gcc.c:2062 + #, c-format + msgid "specs unknown %% command after %ld characters" + msgstr "%ld. karakterden sonra bilinmeyen specs %% komutu" + +-#: gcc.c:2070 gcc.c:2083 ++#: gcc.c:2073 gcc.c:2086 + #, c-format + msgid "specs file malformed after %ld characters" + msgstr "%ld. karakterden sonra özellikler dosyası bozuk" + +-#: gcc.c:2136 ++#: gcc.c:2139 + msgid "spec file has no spec for linking" + msgstr "özellik dosyası birleÅŸtirilecek özellik içermiyor" + +-#: gcc.c:2641 ++#: gcc.c:2644 + msgid "-pipe not supported" + msgstr "-pipe desteklenmiyor" + +-#: gcc.c:2703 ++#: gcc.c:2706 + msgid "" + "\n" + "Go ahead? (y or n) " +@@ -5048,7 +5059,7 @@ + "\n" + "Haydi!? (e / h) " + +-#: gcc.c:2829 ++#: gcc.c:2832 + #, c-format + msgid "" + "Internal error: %s (program %s)\n" +@@ -5059,69 +5070,69 @@ + "Lütfen ayrıntılı bir hata raporu hazırlayın.\n" + "Ä°ÅŸlemler için %s adresine bakın." + +-#: gcc.c:2847 ++#: gcc.c:2850 + #, c-format + msgid "# %s %.2f %.2f\n" + msgstr "# %s %.2f %.2f\n" + +-#: gcc.c:2980 ++#: gcc.c:2983 + #, c-format + msgid "Usage: %s [options] file...\n" + msgstr "Kullanımı: %s [seçenekler] DOSYA...\n" + +-#: gcc.c:2981 ++#: gcc.c:2984 + msgid "Options:\n" + msgstr "Seçenekler:\n" + +-#: gcc.c:2983 ++#: gcc.c:2986 + msgid " -pass-exit-codes Exit with highest error code from a phase\n" + msgstr " -pass-exit-codes Bir safhada en yüksek hata kodu ile çıkar\n" + +-#: gcc.c:2984 ++#: gcc.c:2987 + msgid " --help Display this information\n" + msgstr " --help Bu yardım iletisini gösterir\n" + +-#: gcc.c:2985 ++#: gcc.c:2988 + msgid " --target-help Display target specific command line options\n" + msgstr " --target-help Hedefe özel komut satırı seçeneklerini gösterir\n" + +-#: gcc.c:2987 ++#: gcc.c:2990 + msgid " (Use '-v --help' to display command line options of sub-processes)\n" + msgstr " (Ast süreçlerin komut satırı seçenekleri için '-v --help' kullanın)\n" + +-#: gcc.c:2988 ++#: gcc.c:2991 + msgid " -dumpspecs Display all of the built in spec strings\n" + msgstr " -dumpspecs Bütün yerleÅŸik spec dizgelerini gösterir\n" + +-#: gcc.c:2989 ++#: gcc.c:2992 + msgid " -dumpversion Display the version of the compiler\n" + msgstr " -dumpversion Derleyicinin sürümünü gösterir\n" + +-#: gcc.c:2990 ++#: gcc.c:2993 + msgid " -dumpmachine Display the compiler's target processor\n" + msgstr " -dumpmachine Derleyicilerin hedef iÅŸlemcisini gösterir\n" + +-#: gcc.c:2991 ++#: gcc.c:2994 + msgid " -print-search-dirs Display the directories in the compiler's search path\n" + msgstr " -print-search-dirs Derleyicinin arama yolundaki dizinlerini gösterir\n" + +-#: gcc.c:2992 ++#: gcc.c:2995 + msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n" + msgstr " -print-libgcc-file-name Derleyiciyle eÅŸleÅŸen kitaplığın ismini gösterir\n" + +-#: gcc.c:2993 ++#: gcc.c:2996 + msgid " -print-file-name= Display the full path to library \n" + msgstr " -print-file-name= kitaplığının tam dosya yolunu gösterir\n" + +-#: gcc.c:2994 ++#: gcc.c:2997 + msgid " -print-prog-name= Display the full path to compiler component \n" + msgstr " -print-prog-name= Derleyici elemanı un tam dosya yolunu gösterir\n" + +-#: gcc.c:2995 ++#: gcc.c:2998 + msgid " -print-multi-directory Display the root directory for versions of libgcc\n" + msgstr " -print-multi-directory libgcc sürümünün kök dizinini gösterir\n" + +-#: gcc.c:2996 ++#: gcc.c:2999 + msgid "" + " -print-multi-lib Display the mapping between command line options and\n" + " multiple library search directories\n" +@@ -5129,95 +5140,95 @@ + " -print-multi-lib Komut satırı seçenekleri ile kitaplık arama dizinleri\n" + " arasındaki eÅŸleÅŸmeleri gösterir\n" + +-#: gcc.c:2999 ++#: gcc.c:3002 + msgid " -print-multi-os-directory Display the relative path to OS libraries\n" + msgstr " -print-multi-os-directory Ä°S kitaplıklarının göreli dosya yolunu gösterir\n" + +-#: gcc.c:3000 ++#: gcc.c:3003 + msgid " -Wa, Pass comma-separated on to the assembler\n" + msgstr "" + " -Wa, Virgül ayraçlı listesini çeviriciye\n" + " gönderir\n" + +-#: gcc.c:3001 ++#: gcc.c:3004 + msgid " -Wp, Pass comma-separated on to the preprocessor\n" + msgstr " -Wp, Virgül ayraçlı listesini öniÅŸlemciye gönderir\n" + +-#: gcc.c:3002 ++#: gcc.c:3005 + msgid " -Wl, Pass comma-separated on to the linker\n" + msgstr " -Wl, Virgül ayraçlı i baÄŸlayıcıya gönderir\n" + +-#: gcc.c:3003 ++#: gcc.c:3006 + msgid " -Xassembler Pass on to the assembler\n" + msgstr " -Xassembler Çeviriciye ümanı gönderir\n" + +-#: gcc.c:3004 ++#: gcc.c:3007 + msgid " -Xpreprocessor Pass on to the preprocessor\n" + msgstr " -Xpreprocessor ÖniÅŸlemciye ümanı gönderir\n" + +-#: gcc.c:3005 ++#: gcc.c:3008 + msgid " -Xlinker Pass on to the linker\n" + msgstr " -Xlinker BaÄŸlayıcıya ümanı gönderir\n" + +-#: gcc.c:3006 ++#: gcc.c:3009 + msgid " -save-temps Do not delete intermediate files\n" + msgstr " -save-temps Aracı dosyaları silmez\n" + +-#: gcc.c:3007 ++#: gcc.c:3010 + msgid " -pipe Use pipes rather than intermediate files\n" + msgstr " -pipe Aracı dosyalardan ziyade veri yolları kullanılır\n" + +-#: gcc.c:3008 ++#: gcc.c:3011 + msgid " -time Time the execution of each subprocess\n" + msgstr " -time Alt iÅŸlemlerin çalıştırılma zamanlaması\n" + +-#: gcc.c:3009 ++#: gcc.c:3012 + msgid " -specs= Override built-in specs with the contents of \n" + msgstr " -specs= YerleÅŸik özellikler yerine dakilere zorlar\n" + +-#: gcc.c:3010 ++#: gcc.c:3013 + msgid " -std= Assume that the input sources are for \n" + msgstr "" + " -std= Girdi kaynaklarının bu da olduÄŸu\n" + " varsayılır\n" + +-#: gcc.c:3011 ++#: gcc.c:3014 + msgid " -B Add to the compiler's search paths\n" + msgstr " -B Derleyicilerin arama dosya yoluna i ekler\n" + +-#: gcc.c:3012 ++#: gcc.c:3015 + msgid " -b Run gcc for target , if installed\n" + msgstr " -b gcc kurulmuÅŸsa hedef için çalıştırılır\n" + +-#: gcc.c:3013 ++#: gcc.c:3016 + msgid " -V Run gcc version number , if installed\n" + msgstr " -V gcc'nin kurulmuÅŸsa sürümü çalıştırılır\n" + +-#: gcc.c:3014 ++#: gcc.c:3017 + msgid " -v Display the programs invoked by the compiler\n" + msgstr " -v Derleyicinin çalıştırdığı programları gösterir\n" + +-#: gcc.c:3015 ++#: gcc.c:3018 + msgid " -### Like -v but options quoted and commands not executed\n" + msgstr " -### -v gibi ama tırnaklı ve virgüllü seçenekler kullanılmaz\n" + +-#: gcc.c:3016 ++#: gcc.c:3019 + msgid " -E Preprocess only; do not compile, assemble or link\n" + msgstr " -E Sadece öniÅŸlem; derleme, çeviri ve ilintileme yapılmaz\n" + +-#: gcc.c:3017 ++#: gcc.c:3020 + msgid " -S Compile only; do not assemble or link\n" + msgstr " -S Sadece derleme; çevirme ve baÄŸlama yapılmaz\n" + +-#: gcc.c:3018 ++#: gcc.c:3021 + msgid " -c Compile and assemble, but do not link\n" + msgstr " -c Derler ve çevirir ancak baÄŸlamaz\n" + +-#: gcc.c:3019 ++#: gcc.c:3022 + msgid " -o Place the output into \n" + msgstr " -o DOSYA Çıktıyı DOSYAya yazar\n" + +-#: gcc.c:3020 ++#: gcc.c:3023 + msgid "" + " -x Specify the language of the following input files\n" + " Permissible languages include: c c++ assembler none\n" +@@ -5229,7 +5240,7 @@ + " 'none' dilin girdi dosyasının uzantısından\n" + " saptanacağı öntanımlı durum belirtilmiÅŸ olur\n" + +-#: gcc.c:3027 ++#: gcc.c:3030 + #, c-format + msgid "" + "\n" +@@ -5245,27 +5256,27 @@ + "Çeviri hatalarını adresine bildiriniz.\n" + "\n" + +-#: gcc.c:3148 ++#: gcc.c:3151 + #, c-format + msgid "`-%c' option must have argument" + msgstr "`-%c' seçeneÄŸinde argüman eksik" + +-#: gcc.c:3170 ++#: gcc.c:3173 + #, c-format + msgid "couldn't run `%s': %s" + msgstr "`%s' çalıştırılamadı: %s" + + #. translate_options () has turned --version into -fversion. +-#: gcc.c:3356 ++#: gcc.c:3359 + #, c-format + msgid "%s (GCC) %s\n" + msgstr "%s (GCC) %s\n" + +-#: gcc.c:3358 gcov.c:424 f/g77spec.c:351 ++#: gcc.c:3361 gcov.c:424 f/g77spec.c:351 + msgid "(C)" + msgstr "©" + +-#: gcc.c:3359 ++#: gcc.c:3362 + msgid "" + "This is free software; see the source for copying conditions. There is NO\n" + "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" +@@ -5275,66 +5286,66 @@ + "Hiçbir garantisi yoktur; hatta SATILABÄ°LÄ°RLİĞİ veya ÅžAHSÄ° KULLANIMINIZA\n" + "UYGUNLUÄžU için bile garanti verilmez.\n" + +-#: gcc.c:3460 ++#: gcc.c:3463 + msgid "argument to `-Xlinker' is missing" + msgstr "`-Xlinker' için argüman belirtilmemiÅŸ" + +-#: gcc.c:3468 ++#: gcc.c:3471 + msgid "argument to `-Xpreprocessor' is missing" + msgstr "`-Xpreprocessor' için argüman belirtilmemiÅŸ" + +-#: gcc.c:3475 ++#: gcc.c:3478 + msgid "argument to `-Xassembler' is missing" + msgstr "`-Xassembler' için argüman belirtilmemiÅŸ" + +-#: gcc.c:3482 ++#: gcc.c:3485 + msgid "argument to `-l' is missing" + msgstr "`-l' için argüman belirtilmemiÅŸ" + +-#: gcc.c:3498 ++#: gcc.c:3501 + msgid "argument to `-specs' is missing" + msgstr "`-specs' için argüman belirtilmemiÅŸ" + +-#: gcc.c:3512 ++#: gcc.c:3515 + msgid "argument to `-specs=' is missing" + msgstr "`-specs=' için argüman belirtilmemiÅŸ" + +-#: gcc.c:3549 ++#: gcc.c:3552 + #, c-format + msgid "`-%c' must come at the start of the command line" + msgstr "`-%c' komut satırının başında olmalı" + +-#: gcc.c:3558 ++#: gcc.c:3561 + msgid "argument to `-B' is missing" + msgstr "`-B' için argüman belirtilmemiÅŸ" + +-#: gcc.c:3735 ++#: gcc.c:3738 + msgid "warning: -pipe ignored because -save-temps specified" + msgstr "Uyarı: -save-temps belirtildiÄŸinden -pipe yoksayıldı" + +-#: gcc.c:3739 ++#: gcc.c:3742 + msgid "warning: -pipe ignored because -time specified" + msgstr "Uyarı: -time belirtildiÄŸinden -pipe yoksayıldı" + +-#: gcc.c:3951 ++#: gcc.c:3954 + msgid "argument to `-x' is missing" + msgstr "`-x' için argüman belirtilmemiÅŸ" + +-#: gcc.c:3979 ++#: gcc.c:3982 + #, c-format + msgid "argument to `-%s' is missing" + msgstr "`-%s' için argüman belirtilmemiÅŸ" + +-#: gcc.c:4040 ++#: gcc.c:4043 + #, c-format + msgid "warning: `-x %s' after last input file has no effect" + msgstr "Uyarı: son girdi dosyasından sonraki `-x %s' etkisiz" + +-#: gcc.c:4441 ++#: gcc.c:4444 + msgid "invalid specification! Bug in cc" + msgstr "özellik geçersiz! cc'de yazılım hatası." + +-#: gcc.c:4595 ++#: gcc.c:4598 + #, c-format + msgid "%s\n" + msgstr "%s\n" +@@ -5342,78 +5353,78 @@ + #. Catch the case where a spec string contains something like + #. '%{foo:%*}'. ie there is no * in the pattern on the left + #. hand side of the :. +-#: gcc.c:5099 ++#: gcc.c:5102 + #, c-format + msgid "spec failure: '%%*' has not been initialized by pattern match" + msgstr "özellik aksaması: '%%*' kalıp eÅŸleÅŸtirerek ilklendirilemedi" + +-#: gcc.c:5108 ++#: gcc.c:5111 + #, c-format + msgid "warning: use of obsolete %%[ operator in specs" + msgstr "Uyarı: spec'lerde %%[ iÅŸleci artık kullanılmıyor" + +-#: gcc.c:5126 ++#: gcc.c:5129 + #, c-format + msgid "Processing spec %c%s%c, which is '%s'\n" + msgstr "'%4$s' %1$c%2$s%3$c özelliÄŸi iÅŸleniyor\n" + +-#: gcc.c:5189 ++#: gcc.c:5192 + #, c-format + msgid "spec failure: unrecognized spec option '%c'" + msgstr "Özellik aksaması: özellik seçeneÄŸi '%c' anlaşılamadı" + +-#: gcc.c:5268 ++#: gcc.c:5271 + #, c-format + msgid "unknown spec function `%s'" + msgstr "bilinmeyen `%s' spec iÅŸlevi" + +-#: gcc.c:5287 ++#: gcc.c:5290 + #, c-format + msgid "error in args to spec function `%s'" + msgstr "`%s' spec iÅŸlevi için argümanlar hatalı" + +-#: gcc.c:5335 ++#: gcc.c:5338 + msgid "malformed spec function name" + msgstr "bozuk spec iÅŸlevi ismi" + + #. ) +-#: gcc.c:5338 ++#: gcc.c:5341 + msgid "no arguments for spec function" + msgstr "spec iÅŸlevi için argüman belirtilmedi" + +-#: gcc.c:5357 ++#: gcc.c:5360 + msgid "malformed spec function arguments" + msgstr "belirtim iÅŸlevi argümanları bozuk" + +-#: gcc.c:6083 ++#: gcc.c:6086 + msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC." + msgstr "belirtim baÅŸarısızlığı: SYSROOT_SUFFIX_SPEC için argüman sayısı birden fazla." + +-#: gcc.c:6093 ++#: gcc.c:6096 + msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC." + msgstr "belirtim baÅŸarısızlığı: SYSROOT_HEADERS_SUFFIX_SPEC için argüman sayısı birden fazla.." + +-#: gcc.c:6186 ++#: gcc.c:6189 + #, c-format + msgid "unrecognized option `-%s'" + msgstr "`-%s' seçeneÄŸi bilinmiyor" + +-#: gcc.c:6192 ++#: gcc.c:6195 + #, c-format + msgid "install: %s%s\n" + msgstr "kurulum: %s%s\n" + +-#: gcc.c:6193 ++#: gcc.c:6196 + #, c-format + msgid "programs: %s\n" + msgstr "programlar: %s\n" + +-#: gcc.c:6194 ++#: gcc.c:6197 + #, c-format + msgid "libraries: %s\n" + msgstr "kitaplıklar: %s\n" + +-#: gcc.c:6251 ++#: gcc.c:6254 + msgid "" + "\n" + "For bug reporting instructions, please see:\n" +@@ -5421,52 +5432,52 @@ + "\n" + "Hata raporlama iÅŸlemleri için:\n" + +-#: gcc.c:6267 ++#: gcc.c:6270 + #, c-format + msgid "Configured with: %s\n" + msgstr "" + "%s\n" + "seçenekleriyle yapılandırıldı.\n" + +-#: gcc.c:6281 ++#: gcc.c:6284 + #, c-format + msgid "Thread model: %s\n" + msgstr "Evre modeli: %s\n" + +-#: gcc.c:6292 ++#: gcc.c:6295 + #, c-format + msgid "gcc version %s\n" + msgstr "gcc %s sürümü\n" + +-#: gcc.c:6294 ++#: gcc.c:6297 + #, c-format + msgid "gcc driver version %s executing gcc version %s\n" + msgstr "gcc sürücüsü %s sürümü gcc %s sürümünü çalıştırıyor\n" + +-#: gcc.c:6302 ++#: gcc.c:6305 + msgid "no input files" + msgstr "girdi dosyası yok" + +-#: gcc.c:6324 gcc.c:6443 ++#: gcc.c:6327 gcc.c:6446 + #, c-format + msgid "%s: linker input file unused because linking not done" + msgstr "%s: birleÅŸtirme yapılmadığından birleÅŸtirici girdi dosyası kullanılmadı" + +-#: gcc.c:6327 ++#: gcc.c:6330 + msgid "cannot specify -o with -c or -S and multiple languages" + msgstr "-o, -c ile veya -S ve çoklu dillerle belirtilemez" + +-#: gcc.c:6362 ++#: gcc.c:6365 + #, c-format + msgid "%s: %s compiler not installed on this system" + msgstr "%s: %s derleyici bu sitemde kurulu deÄŸil" + +-#: gcc.c:6483 ++#: gcc.c:6486 + #, c-format + msgid "language %s not recognized" + msgstr "dil %s tanınmıyor" + +-#: gcc.c:6580 ++#: gcc.c:6583 + msgid "internal gcc abort" + msgstr "dahili gcc çıkışı" + +@@ -5761,21 +5772,21 @@ + msgid "GCSE disabled" + msgstr "GCSE iptal edildi" + +-#: gcse.c:6124 ++#: gcse.c:6125 + msgid "NULL pointer checks disabled" + msgstr "boÅŸ gösterici sınamaları iptal edildi" + + #. Return if there's nothing to do, or it is too expensive. +-#: gcse.c:8010 ++#: gcse.c:8036 + msgid "jump bypassing disabled" + msgstr "jump kestirmesi iptal edildi" + +-#: gcse.c:8071 ++#: gcse.c:8097 + #, c-format + msgid "%s: %d basic blocks and %d edges/basic block" + msgstr "%s: %d temel blok ve %d kenar/temel blok" + +-#: gcse.c:8084 ++#: gcse.c:8110 + #, c-format + msgid "%s: %d basic blocks and %d registers" + msgstr "%s: %d temel blok ve %d yazmaç" +@@ -5825,7 +5836,7 @@ + msgid "%s cannot be used in asm here" + msgstr "%s burada asm içinde kullanılamaz" + +-#: graph.c:403 toplev.c:1498 toplev.c:4432 f/com.c:14202 java/jcf-parse.c:883 ++#: graph.c:403 toplev.c:1498 toplev.c:4433 f/com.c:14202 java/jcf-parse.c:883 + #: java/jcf-parse.c:1029 java/lex.c:1828 objc/objc-act.c:503 + #, c-format + msgid "can't open %s: %m" +@@ -5904,7 +5915,7 @@ + msgid "function with target specific attribute(s) cannot be inlined" + msgstr "hedefe özel öznitelikler bulunan iÅŸlevler özümlenemez" + +-#: jump.c:1896 ++#: jump.c:1913 + msgid "%Hwill never be executed" + msgstr "%Hasla çalıştırılmayacak" + +@@ -6403,7 +6414,7 @@ + msgid "can't use '%s' as a %s register" + msgstr "'%s' bir %s yazmacı olarak kullanılamıyor" + +-#: regclass.c:758 config/ia64/ia64.c:4660 config/ia64/ia64.c:4667 ++#: regclass.c:758 config/ia64/ia64.c:4666 config/ia64/ia64.c:4673 + #, c-format + msgid "unknown register name: %s" + msgstr "bilinmeyen yazmaç ismi: %s" +@@ -6448,15 +6459,15 @@ + msgid "impossible register constraint in `asm'" + msgstr "`asm' içindeki yazmaç ÅŸartı mümkün deÄŸil" + +-#: reload.c:3504 ++#: reload.c:3519 + msgid "`&' constraint used with no register class" + msgstr "`&' ÅŸartı yazmaç sınıfsız kullanılmış" + +-#: reload.c:3672 ++#: reload.c:3687 + msgid "unable to generate reloads for:" + msgstr "aÅŸağıdakiler için yeniden yüklemeler üretilemiyor:" + +-#: reload.c:3673 reload.c:3887 ++#: reload.c:3688 reload.c:3902 + msgid "inconsistent operand constraints in an `asm'" + msgstr "bir `asm' içindeki terim ÅŸartı çeliÅŸkili" + +@@ -6858,11 +6869,11 @@ + msgid "invalid register name `%s' for register variable" + msgstr "yazmaç deÄŸiÅŸkeni için yazmaç ismi `%s' geçersiz" + +-#: toplev.c:3546 ++#: toplev.c:3547 + msgid "branch target register load optimization is not intended to be run twice" + msgstr "dallanma hedef yazmacı yük eniyilemesi iki kere çalışacak ÅŸekilde tasarlanmadı" + +-#: toplev.c:3713 ++#: toplev.c:3714 + msgid "" + "\n" + "Target specific options:\n" +@@ -6870,12 +6881,12 @@ + "\n" + "Hedefe özel seçenekler:\n" + +-#: toplev.c:3727 toplev.c:3746 ++#: toplev.c:3728 toplev.c:3747 + #, c-format + msgid " -m%-23s [undocumented]\n" + msgstr " -m%-23.23s [belgelenmedi]\n" + +-#: toplev.c:3755 ++#: toplev.c:3756 + msgid "" + "\n" + "There are undocumented target specific options as well.\n" +@@ -6883,21 +6894,21 @@ + "\n" + "Halen belgelenememiÅŸ hedefe özel seçenekler var.\n" + +-#: toplev.c:3757 ++#: toplev.c:3758 + msgid " They exist, but they are not documented.\n" + msgstr " Var fakat daha belgelendirilmedi.\n" + +-#: toplev.c:3812 ++#: toplev.c:3813 + #, c-format + msgid "unrecognized gcc debugging option: %c" + msgstr "tanınmayan gcc hata ayıklama seçeneÄŸi: %c" + +-#: toplev.c:3874 config/rs6000/rs6000.c:922 ++#: toplev.c:3875 config/rs6000/rs6000.c:940 config/rs6000/rs6000.c:951 + #, c-format + msgid "invalid option `%s'" + msgstr "`%s' seçeneÄŸi geçersiz" + +-#: toplev.c:3889 ++#: toplev.c:3890 + #, c-format + msgid "" + "%s%s%s version %s (%s)\n" +@@ -6908,93 +6919,93 @@ + "%s\tGNU C sürüm %s tarafından derlendi.\n" + "%s%s%s sürüm %s (%s) CC tarafından derlendi.\n" + +-#: toplev.c:3896 ++#: toplev.c:3897 + #, c-format + msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n" + msgstr "%s%sGGC yaklaşımları: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n" + +-#: toplev.c:3948 ++#: toplev.c:3949 + msgid "options passed: " + msgstr "belirtilen seçenekler: " + +-#: toplev.c:3977 ++#: toplev.c:3978 + msgid "options enabled: " + msgstr "etkin seçenekler: " + +-#: toplev.c:4035 java/jcf-write.c:3424 ++#: toplev.c:4036 java/jcf-write.c:3424 + #, c-format + msgid "can't open %s for writing: %m" + msgstr "%s yazmak için açılamıyor: %m" + +-#: toplev.c:4118 config/sh/sh.c:7019 ++#: toplev.c:4119 config/sh/sh.c:7020 + msgid "created and used with different settings of -fpic" + msgstr "-fpic'in farklı ayarları ile oluÅŸturulup kullanıldı" + +-#: toplev.c:4120 config/sh/sh.c:7021 ++#: toplev.c:4121 config/sh/sh.c:7022 + msgid "created and used with different settings of -fpie" + msgstr "-fpie'in farklı ayarları ile oluÅŸturulup kullanıldı" + +-#: toplev.c:4171 config/sh/sh.c:7071 ++#: toplev.c:4172 config/sh/sh.c:7072 + #, c-format + msgid "created and used with differing settings of `-m%s'" + msgstr "`-m%s''in farklı ayarları ile oluÅŸturulup kullanıldı" + +-#: toplev.c:4174 config/sh/sh.c:7074 ++#: toplev.c:4175 config/sh/sh.c:7075 + msgid "out of memory" + msgstr "bellek yetersiz" + +-#: toplev.c:4355 ++#: toplev.c:4356 + msgid "instruction scheduling not supported on this target machine" + msgstr "bu hedef makina için iÅŸlem zamanlaması desteklenmiyor" + +-#: toplev.c:4359 ++#: toplev.c:4360 + msgid "this target machine does not have delayed branches" + msgstr "bu hedef makina gecikmeli dallanmalara sahip deÄŸil" + +-#: toplev.c:4373 ++#: toplev.c:4374 + #, c-format + msgid "-f%sleading-underscore not supported on this target machine" + msgstr "bu hedef makinada -f%sleading-underscore desteklenmiyor" + +-#: toplev.c:4422 ++#: toplev.c:4423 + #, c-format + msgid "target system does not support the \"%s\" debug format" + msgstr "hedef sistem \"%s\" hata ayıklama biçimini desteklemiyor" + +-#: toplev.c:4439 ++#: toplev.c:4440 + msgid "-ffunction-sections not supported for this target" + msgstr "bu hedefte -ffunction-sections desteklenmiyor" + +-#: toplev.c:4444 ++#: toplev.c:4445 + msgid "-fdata-sections not supported for this target" + msgstr "bu hedefte -fdata-sections desteklenmiyor" + +-#: toplev.c:4451 ++#: toplev.c:4452 + msgid "-ffunction-sections disabled; it makes profiling impossible" + msgstr "-ffunction-sections iptal edildi; ayrımlamayı mümkün kılmıyor" + +-#: toplev.c:4458 ++#: toplev.c:4459 + msgid "-fprefetch-loop-arrays not supported for this target" + msgstr "bu hedefte -fprefetch-loop-arrays desteklenmiyor" + +-#: toplev.c:4464 ++#: toplev.c:4465 + msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)" + msgstr "-fprefetch-loop-arrays bu hedef için desteklenmiyor (-march seçeneÄŸini deneyin)" + +-#: toplev.c:4473 ++#: toplev.c:4474 + msgid "-fprefetch-loop-arrays is not supported with -Os" + msgstr "-fprefetch-loop-arrays, -Os ile desteklenmiyor" + +-#: toplev.c:4479 ++#: toplev.c:4480 + msgid "-ffunction-sections may affect debugging on some targets" + msgstr "-ffunction-sections bazı hedeflerde hata ayıklamayı etkileyebilir" + +-#: toplev.c:4581 ++#: toplev.c:4582 + #, c-format + msgid "error writing to %s: %m" + msgstr "%s e yazarken hata: %m" + +-#: toplev.c:4583 java/jcf-parse.c:902 java/jcf-write.c:3431 ++#: toplev.c:4584 java/jcf-parse.c:902 java/jcf-write.c:3431 + #, c-format + msgid "error closing %s: %m" + msgstr "%s kapatılırken hata: %m" +@@ -7041,7 +7052,7 @@ + msgid "%Jfunction '%F' can never be inlined because it uses variable sized variables" + msgstr "%J '%F' iÅŸlevi deÄŸiÅŸken boyutlu deÄŸiÅŸkenler kullandığından satıriçine alınamaz" + +-#: tree-inline.c:1338 tree-inline.c:1345 ++#: tree-inline.c:1338 tree-inline.c:1346 + msgid "%Jinlining failed in call to '%F': %s" + msgstr "%J `%F' çaÄŸrısındaki özümleme baÅŸarısız: %s" + +@@ -7053,34 +7064,34 @@ + msgid "%Jsize of return value of '%D' is larger than %wd bytes" + msgstr "%J `%D' için dönen deÄŸerin geniÅŸliÄŸi %wd bayttan büyük" + +-#: tree.c:3801 ++#: tree.c:3800 + msgid "arrays of functions are not meaningful" + msgstr "iÅŸlev dizileri anlamlı deÄŸil" + +-#: tree.c:3856 ++#: tree.c:3855 + msgid "function return type cannot be function" + msgstr "iÅŸlevin dönen deÄŸer türü iÅŸlev olamaz" + +-#: tree.c:4685 ++#: tree.c:4684 + msgid "invalid initializer for bit string" + msgstr "bit dizge için ilklendirici geçersiz" + +-#: tree.c:4737 ++#: tree.c:4736 + #, c-format + msgid "tree check: expected %s, have %s in %s, at %s:%d" + msgstr "AÄŸaç denetimi: %4$s:%5$d: %3$s iÅŸlevinde '%1$s' umulurken, '%2$s' var" + +-#: tree.c:4750 ++#: tree.c:4749 + #, c-format + msgid "tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d" + msgstr "AÄŸaç denetimi: %5$s:%6$d: %4$s iÅŸlevinde sınıf '%1$c' umulurken, '%2$c' (%3$s) var" + +-#: tree.c:4763 ++#: tree.c:4762 + #, c-format + msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d" + msgstr "aÄŸaç denetimi: %4$s:%5$d: %3$s iÅŸlevindeki %2$d öğeli vektörün %1$d. öğesine eriÅŸildi" + +-#: tree.c:4775 ++#: tree.c:4774 + #, c-format + msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d" + msgstr "aÄŸaç denetimi: %5$s:%6$d: %4$s'in %3$d terimi ile %2$s'in %1$d. terimine eriÅŸildi" +@@ -7133,48 +7144,48 @@ + msgid "%Jrequested alignment for '%D' is greater than implemented alignment of %d" + msgstr "`%D' için istenen hizalama yerleÅŸik hizalama %d den daha büyük" + +-#: varasm.c:3789 ++#: varasm.c:3790 + msgid "initializer for integer value is too complicated" + msgstr "tamsayı öndeÄŸer fazla karmaşık" + +-#: varasm.c:3794 ++#: varasm.c:3795 + msgid "initializer for floating value is not a floating constant" + msgstr "gerçel sayı öndeÄŸer bir gerçel sayı sabit deÄŸil" + +-#: varasm.c:3860 ++#: varasm.c:3861 + msgid "unknown set constructor type" + msgstr "bilinmeyen set constructor türü" + +-#: varasm.c:4079 ++#: varasm.c:4080 + #, c-format + msgid "invalid initial value for member `%s'" + msgstr "üye `%s' için öndeÄŸer geçersiz" + +-#: varasm.c:4266 varasm.c:4310 ++#: varasm.c:4267 varasm.c:4311 + msgid "%Jweak declaration of '%D' must precede definition" + msgstr "%J `%D' zayıf bildirimi tanımından önce olmalı" + +-#: varasm.c:4274 ++#: varasm.c:4275 + msgid "%Jweak declaration of '%D' after first use results in unspecified behavior" + msgstr "%J `%D' zayıf bildiriminin ilk kullanımdan sonra olması tanımlanmamış davranışa yol açar" + +-#: varasm.c:4308 ++#: varasm.c:4309 + msgid "%Jweak declaration of '%D' must be public" + msgstr "%J `%D' zayıf bildirimi 'public' olmalı" + +-#: varasm.c:4317 ++#: varasm.c:4318 + msgid "%Jweak declaration of '%D' not supported" + msgstr "%J `%D' zayıf bildirimi desteklenmiyor" + +-#: varasm.c:4346 varasm.c:4436 ++#: varasm.c:4347 varasm.c:4437 + msgid "only weak aliases are supported in this configuration" + msgstr "bu yapılandırmada sadece zayıf takma adlar destekleniyor" + +-#: varasm.c:4439 ++#: varasm.c:4440 + msgid "alias definitions not supported in this configuration; ignored" + msgstr "takma ad tanımlamaları bu yapılandırmada desteklenmiyor; yoksayıldı" + +-#: varasm.c:4468 ++#: varasm.c:4469 + msgid "visibility attribute not supported in this configuration; ignored" + msgstr "görünürlük bu yapılandırmada desteklenmiyor; yoksayıldı" + +@@ -7445,7 +7456,7 @@ + msgid "junk at end of '#pragma unused'" + msgstr "'#pragma unused' sonunda karışıklık" + +-#: config/darwin.c:1347 ++#: config/darwin.c:1312 + msgid "internal and protected visibility attributes not supportedin this configuration; ignored" + msgstr "dahili ve korumalı görünürlük öznitelikleri bu yapılandırmada desteklenmiyor; yoksayıldı" + +@@ -7489,7 +7500,7 @@ + msgid "bad value `%s' for -mfp-trap-mode switch" + msgstr "-mfp-trap-mode seçeneÄŸi için `%s' deÄŸeri hatalı" + +-#: config/alpha/alpha.c:324 config/rs6000/rs6000.c:1088 ++#: config/alpha/alpha.c:324 config/rs6000/rs6000.c:1117 + #, c-format + msgid "bad value `%s' for -mtls-size switch" + msgstr "-mtls-size seçeneÄŸi için `%s' deÄŸeri hatalı" +@@ -7529,90 +7540,90 @@ + msgid "bad value `%s' for -mmemory-latency" + msgstr "-mmemory-latency için deÄŸer `%s' hatalı" + +-#: config/alpha/alpha.c:5425 ++#: config/alpha/alpha.c:5436 + #, c-format + msgid "invalid %%H value" + msgstr "%%H deÄŸeri geçersiz" + +-#: config/alpha/alpha.c:5446 ++#: config/alpha/alpha.c:5457 + #, c-format + msgid "invalid %%J value" + msgstr "%%J deÄŸeri geçersiz" + +-#: config/alpha/alpha.c:5462 config/ia64/ia64.c:4263 ++#: config/alpha/alpha.c:5473 config/ia64/ia64.c:4269 + #, c-format + msgid "invalid %%r value" + msgstr "%%r deÄŸeri geçersiz" + +-#: config/alpha/alpha.c:5472 config/rs6000/rs6000.c:9241 ++#: config/alpha/alpha.c:5483 config/rs6000/rs6000.c:9332 + #: config/xtensa/xtensa.c:2014 + #, c-format + msgid "invalid %%R value" + msgstr "%%R deÄŸeri geçersiz" + +-#: config/alpha/alpha.c:5478 config/rs6000/rs6000.c:9160 ++#: config/alpha/alpha.c:5489 config/rs6000/rs6000.c:9251 + #: config/xtensa/xtensa.c:1981 + #, c-format + msgid "invalid %%N value" + msgstr "%%N deÄŸeri geçersiz" + +-#: config/alpha/alpha.c:5486 config/rs6000/rs6000.c:9188 ++#: config/alpha/alpha.c:5497 config/rs6000/rs6000.c:9279 + #, c-format + msgid "invalid %%P value" + msgstr "%%P deÄŸeri geçersiz" + +-#: config/alpha/alpha.c:5494 ++#: config/alpha/alpha.c:5505 + #, c-format + msgid "invalid %%h value" + msgstr "%%h deÄŸeri geçersiz" + +-#: config/alpha/alpha.c:5502 config/xtensa/xtensa.c:2007 ++#: config/alpha/alpha.c:5513 config/xtensa/xtensa.c:2007 + #, c-format + msgid "invalid %%L value" + msgstr "%%L deÄŸeri geçersiz" + +-#: config/alpha/alpha.c:5541 config/rs6000/rs6000.c:9142 ++#: config/alpha/alpha.c:5552 config/rs6000/rs6000.c:9233 + #, c-format + msgid "invalid %%m value" + msgstr "%%m deÄŸeri geçersiz" + +-#: config/alpha/alpha.c:5549 config/rs6000/rs6000.c:9150 ++#: config/alpha/alpha.c:5560 config/rs6000/rs6000.c:9241 + #, c-format + msgid "invalid %%M value" + msgstr "%%M deÄŸeri geçersiz" + +-#: config/alpha/alpha.c:5593 ++#: config/alpha/alpha.c:5604 + #, c-format + msgid "invalid %%U value" + msgstr "%%U deÄŸeri geçersiz" + +-#: config/alpha/alpha.c:5605 config/alpha/alpha.c:5619 +-#: config/rs6000/rs6000.c:9249 ++#: config/alpha/alpha.c:5616 config/alpha/alpha.c:5630 ++#: config/rs6000/rs6000.c:9340 + #, c-format + msgid "invalid %%s value" + msgstr "%%s deÄŸeri geçersiz" + +-#: config/alpha/alpha.c:5642 ++#: config/alpha/alpha.c:5653 + #, c-format + msgid "invalid %%C value" + msgstr "%%C deÄŸeri geçersiz" + +-#: config/alpha/alpha.c:5679 config/rs6000/rs6000.c:8979 +-#: config/rs6000/rs6000.c:8999 ++#: config/alpha/alpha.c:5690 config/rs6000/rs6000.c:9070 ++#: config/rs6000/rs6000.c:9090 + #, c-format + msgid "invalid %%E value" + msgstr "%%E deÄŸeri geçersiz" + +-#: config/alpha/alpha.c:5704 config/alpha/alpha.c:5752 ++#: config/alpha/alpha.c:5715 config/alpha/alpha.c:5763 + msgid "unknown relocation unspec" + msgstr "bilinmeyen yerdeÄŸiÅŸim belirtilmemiÅŸ" + +-#: config/alpha/alpha.c:5713 config/rs6000/rs6000.c:9562 ++#: config/alpha/alpha.c:5724 config/rs6000/rs6000.c:9653 + #, c-format + msgid "invalid %%xn code" + msgstr "%%xn deÄŸeri geçersiz" + +-#: config/alpha/alpha.c:6657 config/alpha/alpha.c:6660 config/s390/s390.c:6575 ++#: config/alpha/alpha.c:6668 config/alpha/alpha.c:6671 config/s390/s390.c:6575 + #: config/s390/s390.c:6578 + msgid "bad builtin fcode" + msgstr "hatalı yerleÅŸik fcode" +@@ -7748,7 +7759,7 @@ + msgid "Tune expected memory latency" + msgstr "Beklenen bellek gecikmesini ayarlar" + +-#: config/alpha/alpha.h:376 config/ia64/ia64.h:267 config/rs6000/sysv4.h:90 ++#: config/alpha/alpha.h:376 config/ia64/ia64.h:272 config/rs6000/sysv4.h:90 + msgid "Specify bit size of immediate TLS offsets" + msgstr "Dolaysız TLS konumlarının bit geniÅŸliÄŸi belirtilir" + +@@ -7767,17 +7778,17 @@ + msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\"" + msgstr "`%s' özniteliÄŸinin argümanı \"ilink1\" ya da \"ilink2\" deÄŸildir" + +-#: config/arc/arc.c:1714 config/m32r/m32r.c:2352 ++#: config/arc/arc.c:1714 config/m32r/m32r.c:2349 + #, c-format + msgid "invalid operand to %%R code" + msgstr "%%R kodu için terim geçersiz" + +-#: config/arc/arc.c:1746 config/m32r/m32r.c:2375 ++#: config/arc/arc.c:1746 config/m32r/m32r.c:2372 + #, c-format + msgid "invalid operand to %%H/%%L code" + msgstr "%%H/%%L kodu için terim geçersiz" + +-#: config/arc/arc.c:1769 config/m32r/m32r.c:2446 ++#: config/arc/arc.c:1769 config/m32r/m32r.c:2443 + #, c-format + msgid "invalid operand to %%U code" + msgstr "%%U kodu için terim geçersiz" +@@ -7788,7 +7799,7 @@ + msgstr "%%V kodu için terim geçersiz" + + #. Unknown flag. +-#: config/arc/arc.c:1787 config/m32r/m32r.c:2473 config/sparc/sparc.c:7010 ++#: config/arc/arc.c:1787 config/m32r/m32r.c:2470 config/sparc/sparc.c:7152 + msgid "invalid operand output code" + msgstr "çıkış kodu için geçersiz veri öğesi" + +@@ -7797,7 +7808,7 @@ + msgid "switch -mcpu=%s conflicts with -march= switch" + msgstr "switch -mcpu=%s ile -march= seçenekleri çeliÅŸiyor" + +-#: config/arm/arm.c:530 config/rs6000/rs6000.c:767 config/sparc/sparc.c:424 ++#: config/arm/arm.c:530 config/rs6000/rs6000.c:785 config/sparc/sparc.c:426 + #, c-format + msgid "bad value (%s) for %s switch" + msgstr "%s seçeneÄŸi için deÄŸer (%s) hatalı" +@@ -7880,13 +7891,13 @@ + msgid "unable to use '%s' for PIC register" + msgstr "PIC yazmacı için '%s' kullanılamıyor" + +-#: config/arm/arm.c:2249 config/arm/arm.c:2267 config/avr/avr.c:4558 +-#: config/c4x/c4x.c:4447 config/h8300/h8300.c:4260 config/i386/i386.c:1592 +-#: config/i386/i386.c:1638 config/ip2k/ip2k.c:3169 ++#: config/arm/arm.c:2249 config/arm/arm.c:2267 config/avr/avr.c:4523 ++#: config/c4x/c4x.c:4447 config/h8300/h8300.c:4260 config/i386/i386.c:1598 ++#: config/i386/i386.c:1644 config/ip2k/ip2k.c:3169 + #: config/m68hc11/m68hc11.c:1311 config/m68k/m68k.c:345 + #: config/mcore/mcore.c:3375 config/ns32k/ns32k.c:1064 +-#: config/rs6000/rs6000.c:14866 config/sh/sh.c:6873 config/sh/sh.c:6894 +-#: config/sh/sh.c:6929 config/stormy16/stormy16.c:2073 config/v850/v850.c:2173 ++#: config/rs6000/rs6000.c:15070 config/sh/sh.c:6874 config/sh/sh.c:6895 ++#: config/sh/sh.c:6930 config/stormy16/stormy16.c:2073 config/v850/v850.c:2173 + #, c-format + msgid "`%s' attribute only applies to functions" + msgstr "`%s' özniteliÄŸi sadece iÅŸlevlere uygulanır" +@@ -7901,7 +7912,7 @@ + msgstr "seçici bir ÅŸimdiki deÄŸer olmalı" + + #. @@@ better error message +-#: config/arm/arm.c:11284 config/i386/i386.c:14317 config/i386/i386.c:14351 ++#: config/arm/arm.c:11284 config/i386/i386.c:14318 config/i386/i386.c:14352 + msgid "mask must be an immediate" + msgstr "mask bir dolaysız deÄŸer olmalı" + +@@ -8037,55 +8048,55 @@ + msgid "Ignore dllimport attribute for functions" + msgstr "Ä°ÅŸlevler için dllimport özelliÄŸi yoksayılır" + +-#: config/avr/avr.c:514 ++#: config/avr/avr.c:511 + #, c-format + msgid "large frame pointer change (%d) with -mtiny-stack" + msgstr "-mtiny-stack ile büyük çerçeve göstericisi deÄŸiÅŸikliÄŸi (%d)" + +-#: config/avr/avr.c:1101 ++#: config/avr/avr.c:1098 + msgid "bad address, not (reg+disp):" + msgstr "hatalı adres, (reg+disp) deÄŸil:" + +-#: config/avr/avr.c:1109 ++#: config/avr/avr.c:1106 + msgid "internal compiler error. Bad address:" + msgstr "Derleyici iç hatası. Hatalı adres:" + +-#: config/avr/avr.c:1122 ++#: config/avr/avr.c:1119 + msgid "internal compiler error. Unknown mode:" + msgstr "Derleyici iç hatası. Bilinmeyen kip:" + +-#: config/avr/avr.c:1744 config/avr/avr.c:2405 ++#: config/avr/avr.c:1741 config/avr/avr.c:2402 + msgid "invalid insn:" + msgstr "geçersiz komut:" + +-#: config/avr/avr.c:1778 config/avr/avr.c:1861 config/avr/avr.c:1910 +-#: config/avr/avr.c:1919 config/avr/avr.c:2014 config/avr/avr.c:2183 +-#: config/avr/avr.c:2439 config/avr/avr.c:2547 ++#: config/avr/avr.c:1775 config/avr/avr.c:1858 config/avr/avr.c:1907 ++#: config/avr/avr.c:1916 config/avr/avr.c:2011 config/avr/avr.c:2180 ++#: config/avr/avr.c:2436 config/avr/avr.c:2544 + msgid "incorrect insn:" + msgstr "yanlış komut:" + +-#: config/avr/avr.c:1938 config/avr/avr.c:2099 config/avr/avr.c:2254 +-#: config/avr/avr.c:2591 ++#: config/avr/avr.c:1935 config/avr/avr.c:2096 config/avr/avr.c:2251 ++#: config/avr/avr.c:2588 + msgid "unknown move insn:" + msgstr "bilinmeyen taşıma komutu:" + +-#: config/avr/avr.c:2814 ++#: config/avr/avr.c:2811 + msgid "bad shift insn:" + msgstr "hatalı kaydırma komutu:" + +-#: config/avr/avr.c:2927 config/avr/avr.c:3348 config/avr/avr.c:3719 ++#: config/avr/avr.c:2924 config/avr/avr.c:3345 config/avr/avr.c:3716 + msgid "internal compiler error. Incorrect shift:" + msgstr "Derleyici iç hatası. Yanlış kaydırma:" + +-#: config/avr/avr.c:4532 config/ip2k/ip2k.c:3144 ++#: config/avr/avr.c:4497 config/ip2k/ip2k.c:3144 + msgid "only initialized variables can be placed into program memory area" + msgstr "program bellek alanına sadece ilklendirilmiÅŸ deÄŸiÅŸkenler yerleÅŸtirilebilir" + +-#: config/avr/avr.c:4626 ++#: config/avr/avr.c:4591 + msgid "only uninitialized variables can be placed in the .noinit section" + msgstr ".noinit alanına sadece ilklendirilmiÅŸ deÄŸiÅŸkenler yerleÅŸtirilebilir" + +-#: config/avr/avr.c:4640 ++#: config/avr/avr.c:4605 + #, c-format + msgid "MCU `%s' supported for assembler only" + msgstr "MCU `%s' sadece sembolik çevirici için desteklenir" +@@ -9270,7 +9281,7 @@ + msgid "code model %s not supported in PIC mode" + msgstr "PIC kipinde %s kod modeli desteklenmiyor" + +-#: config/i386/i386.c:1189 config/sparc/sparc.c:387 ++#: config/i386/i386.c:1189 config/sparc/sparc.c:389 + #, c-format + msgid "bad value (%s) for -mcmodel= switch" + msgstr "-mcmodel= seçeneÄŸinin deÄŸeri (%s) hatalı" +@@ -9303,138 +9314,138 @@ + msgid "bad value (%s) for -march= switch" + msgstr "-march= seçeneÄŸinin deÄŸeri (%s) hatalı" + +-#: config/i386/i386.c:1260 ++#: config/i386/i386.c:1266 + #, c-format + msgid "bad value (%s) for -mtune= switch" + msgstr "-mtune= seçeneÄŸinin deÄŸeri (%s) hatalı" + +-#: config/i386/i386.c:1277 ++#: config/i386/i386.c:1283 + #, c-format + msgid "-mregparm=%d is not between 0 and %d" + msgstr "-mregparm=%d 0 ile %d arasında deÄŸil" + +-#: config/i386/i386.c:1290 ++#: config/i386/i386.c:1296 + msgid "-malign-loops is obsolete, use -falign-loops" + msgstr "-malign-loops artık kullanılmıyor yerine -falign-loops kullanın" + +-#: config/i386/i386.c:1295 config/i386/i386.c:1308 config/i386/i386.c:1321 ++#: config/i386/i386.c:1301 config/i386/i386.c:1314 config/i386/i386.c:1327 + #, c-format + msgid "-malign-loops=%d is not between 0 and %d" + msgstr "-malign-loops=%d 0 ile %d arasında deÄŸil" + +-#: config/i386/i386.c:1303 ++#: config/i386/i386.c:1309 + msgid "-malign-jumps is obsolete, use -falign-jumps" + msgstr "-malign-jumps eskidir, yerine -falign-jumps kullanın" + +-#: config/i386/i386.c:1316 ++#: config/i386/i386.c:1322 + msgid "-malign-functions is obsolete, use -falign-functions" + msgstr "-malign-functions artık kullanılmıyor, yerine -falign-functions kullanın" + +-#: config/i386/i386.c:1354 ++#: config/i386/i386.c:1360 + #, c-format + msgid "-mpreferred-stack-boundary=%d is not between %d and 12" + msgstr "-mpreferred-stack-boundary=%d %d ile 12 arasında deÄŸil" + +-#: config/i386/i386.c:1366 ++#: config/i386/i386.c:1372 + #, c-format + msgid "-mbranch-cost=%d is not between 0 and 5" + msgstr "-mbranch-cost=%d 0 ile 5 arasında deÄŸil" + +-#: config/i386/i386.c:1378 ++#: config/i386/i386.c:1384 + #, c-format + msgid "bad value (%s) for -mtls-dialect= switch" + msgstr "-mtls-dialect= seçeneÄŸinin deÄŸeri (%s) hatalı" + +-#: config/i386/i386.c:1407 ++#: config/i386/i386.c:1413 + msgid "-malign-double makes no sense in the 64bit mode" + msgstr "-malign-double 64bitlik kipte iÅŸ yapmaz" + +-#: config/i386/i386.c:1409 ++#: config/i386/i386.c:1415 + msgid "-mrtd calling convention not supported in the 64bit mode" + msgstr "64bitlik kipte -mrtd çaÄŸrı uzlaşımı desteklenmiyor" + +-#: config/i386/i386.c:1431 config/i386/i386.c:1442 ++#: config/i386/i386.c:1437 config/i386/i386.c:1448 + msgid "SSE instruction set disabled, using 387 arithmetics" + msgstr "SSE komut kümesi iptal edildi, 387 aritmetiÄŸi kullanılıyor" + +-#: config/i386/i386.c:1447 ++#: config/i386/i386.c:1453 + msgid "387 instruction set disabled, using SSE arithmetics" + msgstr "387 komut kümesi iptal edildi, SSE aritmetiÄŸi kullanılıyor" + +-#: config/i386/i386.c:1454 ++#: config/i386/i386.c:1460 + #, c-format + msgid "bad value (%s) for -mfpmath= switch" + msgstr "-mfpmath= seçeneÄŸinin deÄŸeri (%s) hatalı" + +-#: config/i386/i386.c:1602 config/i386/i386.c:1613 ++#: config/i386/i386.c:1608 config/i386/i386.c:1619 + msgid "fastcall and stdcall attributes are not compatible" + msgstr "fastcall ve stdcall öznitelikleri uyumsuz" + +-#: config/i386/i386.c:1606 config/i386/i386.c:1662 ++#: config/i386/i386.c:1612 config/i386/i386.c:1668 + msgid "fastcall and regparm attributes are not compatible" + msgstr "fastcall ve regparm nitelikleri uyumlu deÄŸil" + +-#: config/i386/i386.c:1649 ++#: config/i386/i386.c:1655 + #, c-format + msgid "`%s' attribute requires an integer constant argument" + msgstr "`%s' özniteliÄŸi bir tamsayı sabit argüman gerektirir" + +-#: config/i386/i386.c:1655 ++#: config/i386/i386.c:1661 + #, c-format + msgid "argument to `%s' attribute larger than %d" + msgstr "`%s' özniteliÄŸine argüman %d den büyük" + +-#: config/i386/i386.c:2621 ++#: config/i386/i386.c:2627 + msgid "SSE vector argument without SSE enabled changes the ABI" + msgstr "SSE etkinleÅŸtirilmeksizin, SSE vektör argümanı ABI'yi deÄŸitirir" + +-#: config/i386/i386.c:2637 ++#: config/i386/i386.c:2643 + msgid "MMX vector argument without MMX enabled changes the ABI" + msgstr "MMX etkinleÅŸtirilmeksizin, MMX vektör argümanı ABI'yi deÄŸitirir" + +-#: config/i386/i386.c:2865 ++#: config/i386/i386.c:2871 + msgid "SSE vector return without SSE enabled changes the ABI" + msgstr "SSE vektörü, SSE, ABI deÄŸiÅŸikliklerini etkinleÅŸtirmeden dönüyor" + +-#: config/i386/i386.c:6840 ++#: config/i386/i386.c:6841 + msgid "invalid UNSPEC as operand" + msgstr "veri öğesi olarak UNSPEC geçersiz" + +-#: config/i386/i386.c:7098 ++#: config/i386/i386.c:7099 + msgid "extended registers have no high halves" + msgstr "ek yazmaçların yüksek yarıları yok" + +-#: config/i386/i386.c:7113 ++#: config/i386/i386.c:7114 + msgid "unsupported operand size for extended register" + msgstr "ek yazmaç için desteklenmeyen terim boyutu" + +-#: config/i386/i386.c:7428 ++#: config/i386/i386.c:7429 + msgid "operand is neither a constant nor a condition code, invalid operand code 'c'" + msgstr "terim ne bir sabit ne de bir koÅŸul kodu, geçersiz terim kodu 'c'" + +-#: config/i386/i386.c:7474 ++#: config/i386/i386.c:7475 + #, c-format + msgid "invalid operand code `%c'" + msgstr "terim kodu `%c' geçersiz" + +-#: config/i386/i386.c:7517 ++#: config/i386/i386.c:7518 + msgid "invalid constraints for operand" + msgstr "kısıtlar terim için geçersiz" + +-#: config/i386/i386.c:12031 ++#: config/i386/i386.c:12032 + msgid "unknown insn mode" + msgstr "bilinmeyen komut kipi" + +-#: config/i386/i386.c:14119 config/i386/i386.c:14155 ++#: config/i386/i386.c:14120 config/i386/i386.c:14156 + #, c-format + msgid "selector must be an integer constant in the range 0..%i" + msgstr "seçici 0..%i aralığında bir tamsayı sabit olmalı" + +-#: config/i386/i386.c:14383 ++#: config/i386/i386.c:14384 + msgid "shift must be an immediate" + msgstr "shift bir dolaysız deÄŸer olmalı" + +-#: config/i386/i386.c:15406 ++#: config/i386/i386.c:15407 + #, c-format + msgid "`%s' incompatible attribute ignored" + msgstr "`%s' uyumusuz özelliÄŸi yoksayıldı" +@@ -9743,7 +9754,7 @@ + #. variable, type `char *', is set to the variable part of the given + #. option if the fixed part matches. The actual option name is made + #. by appending `-m' to the specified name. +-#: config/i386/i386.h:461 config/ia64/ia64.h:269 config/rs6000/rs6000.h:449 ++#: config/i386/i386.h:461 config/ia64/ia64.h:274 config/rs6000/rs6000.h:449 + #: config/s390/s390.h:146 config/sparc/sparc.h:656 + msgid "Schedule code for given CPU" + msgstr "Verilen MÄ°B için kodu zamanlar" +@@ -9865,7 +9876,7 @@ + msgid "iC2.0 and iC3.0 are incompatible - using iC3.0" + msgstr "iC2.0 ve iC3.0 uyumsuz - iC3.0 kullanılıyor" + +-#: config/i960/i960.c:1456 config/m68k/m68k.c:600 config/rs6000/rs6000.c:11597 ++#: config/i960/i960.c:1456 config/m68k/m68k.c:600 config/rs6000/rs6000.c:11690 + msgid "stack limit expression is not supported" + msgstr "yığın sınırlama ifadesi desteklenmiyor" + +@@ -10022,41 +10033,41 @@ + msgid "%Jaddress area attribute cannot be specified for functions" + msgstr "%J adres alanı özelliÄŸi iÅŸlevler için belirtilemez" + +-#: config/ia64/ia64.c:4308 ++#: config/ia64/ia64.c:4314 + msgid "ia64_print_operand: unknown code" + msgstr "ia64_print_operand: bilinmeyen kod" + +-#: config/ia64/ia64.c:4648 ++#: config/ia64/ia64.c:4654 + msgid "value of -mfixed-range must have form REG1-REG2" + msgstr "-mfixed-range için deÄŸer YAZMAÇ1-YAZMAÇ2 ÅŸeklinde olmalı" + +-#: config/ia64/ia64.c:4675 ++#: config/ia64/ia64.c:4681 + #, c-format + msgid "%s-%s is an empty range" + msgstr "%s-%s aralığı boÅŸ" + +-#: config/ia64/ia64.c:4723 ++#: config/ia64/ia64.c:4729 + msgid "cannot optimize floating point division for both latency and throughput" + msgstr "Kayan noktalı bölme hem iÅŸ geçiÅŸi hem de gecikme için eniyilenemez" + +-#: config/ia64/ia64.c:4729 ++#: config/ia64/ia64.c:4735 + msgid "cannot optimize integer division for both latency and throughput" + msgstr "tamsayı bölme hem iÅŸ geçiÅŸi hem de gecikme için eniyilenemez" + +-#: config/ia64/ia64.c:4735 ++#: config/ia64/ia64.c:4741 + msgid "cannot optimize square root for both latency and throughput" + msgstr "karekök hem iÅŸ geçiÅŸi hem de gecikme için eniyilenemez" + +-#: config/ia64/ia64.c:4741 ++#: config/ia64/ia64.c:4747 + msgid "not yet implemented: latency-optimized inline square root" + msgstr "henüz gerçeklenmedi: gecikme eniyilemeli satıriçi karekök alma" + +-#: config/ia64/ia64.c:4753 ++#: config/ia64/ia64.c:4759 + #, c-format + msgid "bad value (%s) for -mtls-size= switch" + msgstr "-mtls-size= seçeneÄŸinin deÄŸeri (%s) hatalı" + +-#: config/ia64/ia64.c:4769 ++#: config/ia64/ia64.c:4775 + #, c-format + msgid "bad value (%s) for -tune= switch" + msgstr "-tune= seçeneÄŸinin deÄŸeri (%s) hatalı" +@@ -10064,107 +10075,107 @@ + #. This macro defines names of command options to set and clear bits in + #. `target_flags'. Its definition is an initializer with a subgrouping for + #. each command option. +-#: config/ia64/ia64.h:172 ++#: config/ia64/ia64.h:177 + msgid "Generate big endian code" + msgstr "Büyük ilkli kod üretilir" + +-#: config/ia64/ia64.h:174 config/mcore/mcore.h:154 ++#: config/ia64/ia64.h:179 config/mcore/mcore.h:154 + msgid "Generate little endian code" + msgstr "Küçük ilkli kod üretilir" + +-#: config/ia64/ia64.h:176 ++#: config/ia64/ia64.h:181 + msgid "Generate code for GNU as" + msgstr "Kod GNU as için üretilir" + +-#: config/ia64/ia64.h:178 ++#: config/ia64/ia64.h:183 + msgid "Generate code for Intel as" + msgstr "Kod Intel as için üretilir" + +-#: config/ia64/ia64.h:180 ++#: config/ia64/ia64.h:185 + msgid "Generate code for GNU ld" + msgstr "Kod GNU ld için üretilir" + +-#: config/ia64/ia64.h:182 ++#: config/ia64/ia64.h:187 + msgid "Generate code for Intel ld" + msgstr "Kod Intel ld için üretilir" + +-#: config/ia64/ia64.h:184 ++#: config/ia64/ia64.h:189 + msgid "Generate code without GP reg" + msgstr "GP yazmaçsız kod üretilir" + +-#: config/ia64/ia64.h:186 ++#: config/ia64/ia64.h:191 + msgid "Emit stop bits before and after volatile extended asms" + msgstr "DeÄŸiÅŸken uzatılmış asmlerden önce ve sonra durma bitleri üretir" + +-#: config/ia64/ia64.h:188 ++#: config/ia64/ia64.h:193 + msgid "Don't emit stop bits before and after volatile extended asms" + msgstr "DeÄŸiÅŸken uzatılmış asmlerden önce ve sonra durma bitleri üretir" + +-#: config/ia64/ia64.h:190 ++#: config/ia64/ia64.h:195 + msgid "Emit code for Itanium (TM) processor B step" + msgstr "Itanium (TM) iÅŸlemcisi B adımı için kod üretir" + +-#: config/ia64/ia64.h:192 ++#: config/ia64/ia64.h:197 + msgid "Use in/loc/out register names" + msgstr "in/loc/out yazmaç isimleri kullanılır" + +-#: config/ia64/ia64.h:194 ++#: config/ia64/ia64.h:199 + msgid "Disable use of sdata/scommon/sbss" + msgstr "sdata/scommon/sbss kullanımı iptal edilir" + +-#: config/ia64/ia64.h:196 ++#: config/ia64/ia64.h:201 + msgid "Enable use of sdata/scommon/sbss" + msgstr "sdata/scommon/sbss kullanımı etkinleÅŸtirilir" + +-#: config/ia64/ia64.h:198 ++#: config/ia64/ia64.h:203 + msgid "gp is constant (but save/restore gp on indirect calls)" + msgstr "gp sabittir (ancak dolaylı çaÄŸrılarda gp kaydedilmesi/alınması yapılır)" + +-#: config/ia64/ia64.h:200 ++#: config/ia64/ia64.h:205 + msgid "Generate self-relocatable code" + msgstr "KendiliÄŸinden konum deÄŸiÅŸtirebilen kod üretilir" + +-#: config/ia64/ia64.h:202 ++#: config/ia64/ia64.h:207 + msgid "Generate inline floating point division, optimize for latency" + msgstr "Satıriçi kayan noktalı bölme üretir, geciktirme için eniyilenir" + +-#: config/ia64/ia64.h:204 ++#: config/ia64/ia64.h:209 + msgid "Generate inline floating point division, optimize for throughput" + msgstr "Satıriçi kayan noktalı bölme üretir, iÅŸ geçiÅŸi için eniyilenir" + +-#: config/ia64/ia64.h:206 ++#: config/ia64/ia64.h:211 + msgid "Generate inline integer division, optimize for latency" + msgstr "Satıriçi tamsayı bölme üretir, geciktirme için eniyilenir" + +-#: config/ia64/ia64.h:208 ++#: config/ia64/ia64.h:213 + msgid "Generate inline integer division, optimize for throughput" + msgstr "Satıriçi tamsayı bölme üretir, iÅŸ geçiÅŸi için eniyilenir" + +-#: config/ia64/ia64.h:210 ++#: config/ia64/ia64.h:215 + msgid "Generate inline square root, optimize for latency" + msgstr "Satıriçi karekök üretir, geciktirme için eniyilenir" + +-#: config/ia64/ia64.h:212 ++#: config/ia64/ia64.h:217 + msgid "Generate inline square root, optimize for throughput" + msgstr "Satıriçi karekök üretir, iÅŸ geçiÅŸi için eniyilenir" + +-#: config/ia64/ia64.h:214 ++#: config/ia64/ia64.h:219 + msgid "Enable Dwarf 2 line debug info via GNU as" + msgstr "GNU as yoluyla Dwarf 2 hata ayıklama satır bilgilerini etkinleÅŸtirir" + +-#: config/ia64/ia64.h:216 ++#: config/ia64/ia64.h:221 + msgid "Disable Dwarf 2 line debug info via GNU as" + msgstr "GNU as yoluyla Dwarf 2 hata ayıklama satır bilgilerini etkisizleÅŸtirir" + +-#: config/ia64/ia64.h:218 ++#: config/ia64/ia64.h:223 + msgid "Enable earlier placing stop bits for better scheduling" + msgstr "Daha iyi zamanlama için stop bitlerinin daha önce yerleÅŸtirilmesi etkin olur" + +-#: config/ia64/ia64.h:220 ++#: config/ia64/ia64.h:225 + msgid "Disable earlier placing stop bits" + msgstr "Stop bitlerinin daha önce yerleÅŸtirilmesi iptal edilir" + +-#: config/ia64/ia64.h:265 ++#: config/ia64/ia64.h:270 + msgid "Specify range of registers to make fixed" + msgstr "Belirlemek için yazmaç aralığı belirtilir" + +@@ -10201,7 +10212,7 @@ + msgid "PRINT_OPERAND: Unknown punctuation '%c'" + msgstr "PRINT_OPERAND: '%c' noktalaması bilinmiyor" + +-#: config/iq2000/iq2000.c:3478 config/mips/mips.c:5464 ++#: config/iq2000/iq2000.c:3478 config/mips/mips.c:5463 + #: config/xtensa/xtensa.c:1950 + msgid "PRINT_OPERAND null pointer" + msgstr "PRINT_OPERAND boÅŸ gösterici" +@@ -10211,12 +10222,12 @@ + msgid "invalid %%P operand" + msgstr "%%P terimi geçersiz" + +-#: config/iq2000/iq2000.c:3555 config/rs6000/rs6000.c:9178 ++#: config/iq2000/iq2000.c:3555 config/rs6000/rs6000.c:9269 + #, c-format + msgid "invalid %%p value" + msgstr "%%p deÄŸeri geçersiz" + +-#: config/iq2000/iq2000.c:3619 config/mips/mips.c:5594 ++#: config/iq2000/iq2000.c:3619 config/mips/mips.c:5593 + #, c-format + msgid "invalid use of %%d, %%x, or %%X" + msgstr "%%d, %%x, ya da %%X kullanımı geçersiz" +@@ -10272,48 +10283,48 @@ + msgid "bad value (%s) for -flush-trap=n (0= found without a %%< in assembler pattern" + msgstr "iç hata: üretici maskı içinde %%> için bir %%< bulunamadı" + +-#: config/mips/mips.c:5441 ++#: config/mips/mips.c:5440 + #, c-format + msgid "internal error: %%} found without a %%{ in assembler pattern" + msgstr "iç hata: üretici maskı içinde %%} için bir %%{ bulunamadı" + +-#: config/mips/mips.c:5455 ++#: config/mips/mips.c:5454 + #, c-format + msgid "PRINT_OPERAND: unknown punctuation '%c'" + msgstr "PRINT_OPERAND: '%c' noktalaması bilinmiyor" + +-#: config/mips/mips.c:5484 ++#: config/mips/mips.c:5483 + #, c-format + msgid "PRINT_OPERAND, invalid insn for %%C" + msgstr "PRINT_OPERAND, %%C için geçersiz komut" + +-#: config/mips/mips.c:5501 ++#: config/mips/mips.c:5500 + #, c-format + msgid "PRINT_OPERAND, invalid insn for %%N" + msgstr "PRINT_OPERAND, %%N için geçersiz komut" + +-#: config/mips/mips.c:5510 ++#: config/mips/mips.c:5509 + #, c-format + msgid "PRINT_OPERAND, invalid insn for %%F" + msgstr "PRINT_OPERAND, %%F için geçersiz komut" + +-#: config/mips/mips.c:5519 ++#: config/mips/mips.c:5518 + #, c-format + msgid "PRINT_OPERAND, invalid insn for %%W" + msgstr "PRINT_OPERAND, %%W için geçersiz komut" + +-#: config/mips/mips.c:5625 ++#: config/mips/mips.c:5624 + msgid "PRINT_OPERAND, invalid operand for relocation" + msgstr "PRINT_OPERAND, yerdeÄŸiÅŸtirme için terim geçersiz" + +-#: config/mips/mips.c:8310 ++#: config/mips/mips.c:8324 + #, c-format + msgid "can not handle inconsistent calls to `%s'" + msgstr "çeliÅŸkili `%s' çaÄŸrıları elde edilemez" + +-#: config/mips/mips.c:9316 ++#: config/mips/mips.c:9333 + msgid "the cpu name must be lower case" + msgstr "iÅŸlemci ismi küçük harflerle yazılmalıdır" + +-#: config/mips/mips.c:9338 ++#: config/mips/mips.c:9355 + #, c-format + msgid "bad value (%s) for %s" + msgstr "%2$s için deÄŸer (%1$s) hatalı" + +-#: config/mips/mips.c:9607 ++#: config/mips/mips.c:9624 + #, c-format + msgid "can't rewind temp file: %m" + msgstr "geçici dosyada baÅŸa dönülemiyor: %m" + +-#: config/mips/mips.c:9611 ++#: config/mips/mips.c:9628 + #, c-format + msgid "can't write to output file: %m" + msgstr "çıktı dosyasına yazılamıyor: %m" + +-#: config/mips/mips.c:9614 ++#: config/mips/mips.c:9631 + #, c-format + msgid "can't read from temp file: %m" + msgstr "geçici dosya okunamıyor: %m" + +-#: config/mips/mips.c:9617 ++#: config/mips/mips.c:9634 + #, c-format + msgid "can't close temp file: %m" + msgstr "geçici dosya kapatılamıyor: %m" +@@ -11095,7 +11106,7 @@ + + #. Output assembler code to FILE to increment profiler label # LABELNO + #. for profiling a function entry. +-#: config/mips/mips.h:2418 ++#: config/mips/mips.h:2430 + msgid "mips16 function profiling" + msgstr "mips16 iÅŸlev ayrımlama" + +@@ -11651,167 +11662,176 @@ + msgid "junk at end of #pragma longcall" + msgstr "'#pragma longcall' sonunda karışıklık" + +-#: config/rs6000/rs6000.c:791 ++#: config/rs6000/rs6000.c:809 + msgid "-mmultiple is not supported on little endian systems" + msgstr "-mmultiple küçük ilkli bayt sıralaması kullanılan sistemlerde desteklenmez" + +-#: config/rs6000/rs6000.c:798 ++#: config/rs6000/rs6000.c:816 + msgid "-mstring is not supported on little endian systems" + msgstr "-mstring küçük ilkli bayt sıralaması kullanılan sistemlerde desteklenmez" + +-#: config/rs6000/rs6000.c:812 ++#: config/rs6000/rs6000.c:830 + #, c-format + msgid "unknown -mdebug-%s switch" + msgstr "-mdebug-%s seçeneÄŸi bilinmiyor" + +-#: config/rs6000/rs6000.c:824 ++#: config/rs6000/rs6000.c:842 + #, c-format + msgid "unknown -mtraceback arg `%s'; expecting `full', `partial' or `none'" + msgstr "-mtraceback ile verilen `%s' bilinmiyor; `full', `partial' ya da `none' olabilir" + +-#: config/rs6000/rs6000.c:835 ++#: config/rs6000/rs6000.c:853 + #, c-format + msgid "Unknown switch -mlong-double-%s" + msgstr "-mlong-double-%s seçeneÄŸi bilinmiyor" + +-#: config/rs6000/rs6000.c:876 ++#: config/rs6000/rs6000.c:894 + msgid "AltiVec and E500 instructions cannot coexist" + msgstr "AltiVec ve E500 komutları birarada kullanılamaz" + +-#: config/rs6000/rs6000.c:1029 ++#: config/rs6000/rs6000.c:1058 + #, c-format + msgid "unknown -m%s= option specified: '%s'" + msgstr "bilinmeyen -m%s= seçeneÄŸi belirtilmiÅŸ: '%s'" + +-#: config/rs6000/rs6000.c:1050 ++#: config/rs6000/rs6000.c:1079 + #, c-format + msgid "not configured for ABI: '%s'" + msgstr "ABI için yapılandırılmadı: '%s'" + +-#: config/rs6000/rs6000.c:1056 ++#: config/rs6000/rs6000.c:1085 + #, c-format + msgid "unknown ABI specified: '%s'" + msgstr "bilinmeyen ABI belirtilmiÅŸ: '%s'" + +-#: config/rs6000/rs6000.c:1070 ++#: config/rs6000/rs6000.c:1099 + #, c-format + msgid "unknown -malign-XXXXX option specified: '%s'" + msgstr "bilinmeyen -malign-XXXXX seçeneÄŸi belirtilmiÅŸ: '%s'" + +-#: config/rs6000/rs6000.c:3972 ++#: config/rs6000/rs6000.c:4001 + msgid "Cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them." + msgstr "Altivec komutları kullanılamadığından vektör yazmacındaki deÄŸer döndürülemez, komutları etkinleÅŸtirmek için -maltivec kullanın." + +-#: config/rs6000/rs6000.c:4095 ++#: config/rs6000/rs6000.c:4124 + msgid "Cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them." + msgstr "Altivec komutları kullanılamadığından argüman vektör yazmacına aktarılamaz, komutları etkinleÅŸtirmek için -maltivec kullanın." + +-#: config/rs6000/rs6000.c:5599 ++#: config/rs6000/rs6000.c:5604 + msgid "argument 1 must be a 5-bit signed literal" + msgstr "1. argüman 5 bitlik bir iÅŸaretli sabit olmalı" + +-#: config/rs6000/rs6000.c:5701 config/rs6000/rs6000.c:6357 ++#: config/rs6000/rs6000.c:5707 config/rs6000/rs6000.c:6374 + msgid "argument 2 must be a 5-bit unsigned literal" + msgstr "2. argüman 5 bitlik bir iÅŸaretsiz sabit olmalı" + +-#: config/rs6000/rs6000.c:5741 ++#: config/rs6000/rs6000.c:5747 + msgid "argument 1 of __builtin_altivec_predicate must be a constant" + msgstr "`__builtin_altivec_predicate'in 1. argümanı bir sabit olmalı" + +-#: config/rs6000/rs6000.c:5795 ++#: config/rs6000/rs6000.c:5801 + msgid "argument 1 of __builtin_altivec_predicate is out of range" + msgstr "`__builtin_altivec_predicate'in 1. argümanı kapsamdışı" + +-#: config/rs6000/rs6000.c:5956 ++#: config/rs6000/rs6000.c:5962 + msgid "argument 3 must be a 4-bit unsigned literal" + msgstr "3. argüman 4 bitlik bir iÅŸaretsiz sabit olmalı" + +-#: config/rs6000/rs6000.c:6126 ++#: config/rs6000/rs6000.c:6134 + #, c-format + msgid "argument to `%s' must be a 2-bit unsigned literal" + msgstr "`%s' argümanı 2 bitlik iÅŸaretsiz bir sabit olmalı" + +-#: config/rs6000/rs6000.c:6239 ++#: config/rs6000/rs6000.c:6247 + msgid "argument to dss must be a 2-bit unsigned literal" + msgstr "dss argümanı 2 bitlik iÅŸaretsiz bir sabit olmalı" + +-#: config/rs6000/rs6000.c:6477 ++#: config/rs6000/rs6000.c:6261 ++#, c-format ++msgid "invalid parameter combination for `%s' AltiVec intrinsic" ++msgstr "" ++ ++#: config/rs6000/rs6000.c:6494 + msgid "argument 1 of __builtin_spe_predicate must be a constant" + msgstr "__builtin_spe_predicate'in 1. argümanı bir sabit olmalı" + +-#: config/rs6000/rs6000.c:6550 ++#: config/rs6000/rs6000.c:6567 + msgid "argument 1 of __builtin_spe_predicate is out of range" + msgstr "__builtin_spe_predicate'in 1. argümanı kapsamdışı" + +-#: config/rs6000/rs6000.c:9008 ++#: config/rs6000/rs6000.c:9099 + #, c-format + msgid "invalid %%f value" + msgstr "%%f deÄŸeri geçersiz" + +-#: config/rs6000/rs6000.c:9017 ++#: config/rs6000/rs6000.c:9108 + #, c-format + msgid "invalid %%F value" + msgstr "%%F deÄŸeri geçersiz" + +-#: config/rs6000/rs6000.c:9026 ++#: config/rs6000/rs6000.c:9117 + #, c-format + msgid "invalid %%G value" + msgstr "%%G deÄŸeri geçersiz" + +-#: config/rs6000/rs6000.c:9061 ++#: config/rs6000/rs6000.c:9152 + #, c-format + msgid "invalid %%j code" + msgstr "%%j kodu geçersiz" + +-#: config/rs6000/rs6000.c:9071 ++#: config/rs6000/rs6000.c:9162 + #, c-format + msgid "invalid %%J code" + msgstr "%%J kodu geçersiz" + +-#: config/rs6000/rs6000.c:9081 ++#: config/rs6000/rs6000.c:9172 + #, c-format + msgid "invalid %%k value" + msgstr "%%k deÄŸeri geçersiz" + +-#: config/rs6000/rs6000.c:9101 config/xtensa/xtensa.c:2000 ++#: config/rs6000/rs6000.c:9192 config/xtensa/xtensa.c:2000 + #, c-format + msgid "invalid %%K value" + msgstr "%%K deÄŸeri geçersiz" + +-#: config/rs6000/rs6000.c:9168 ++#: config/rs6000/rs6000.c:9259 + #, c-format + msgid "invalid %%O value" + msgstr "%%O deÄŸeri geçersiz" + +-#: config/rs6000/rs6000.c:9215 ++#: config/rs6000/rs6000.c:9306 + #, c-format + msgid "invalid %%q value" + msgstr "%%q deÄŸeri geçersiz" + +-#: config/rs6000/rs6000.c:9259 ++#: config/rs6000/rs6000.c:9350 + #, c-format + msgid "invalid %%S value" + msgstr "%%S deÄŸeri geçersiz" + +-#: config/rs6000/rs6000.c:9301 ++#: config/rs6000/rs6000.c:9392 + #, c-format + msgid "invalid %%T value" + msgstr "%%T deÄŸeri geçersiz" + +-#: config/rs6000/rs6000.c:9311 ++#: config/rs6000/rs6000.c:9402 + #, c-format + msgid "invalid %%u value" + msgstr "%%u deÄŸeri geçersiz" + +-#: config/rs6000/rs6000.c:9320 config/xtensa/xtensa.c:1970 ++#: config/rs6000/rs6000.c:9411 config/xtensa/xtensa.c:1970 + #, c-format + msgid "invalid %%v value" + msgstr "%%v deÄŸeri geçersiz" + +-#: config/rs6000/rs6000.c:13815 ++#: config/rs6000/rs6000.c:13913 + msgid "no profiling of 64-bit code for this ABI" + msgstr "bu ABI için 64 bitlik profilleme kodu yok" + ++#: config/rs6000/rs6000.c:14986 ++msgid "use of 'long' in AltiVec types is deprecated; use 'int'" ++msgstr "" ++ + #: config/rs6000/aix.h:184 config/rs6000/beos.h:32 + msgid "Always pass floating-point arguments in memory" + msgstr "Bellekteki kayan noktalı argümanlar daima aktarılır" +@@ -12056,18 +12076,23 @@ + msgstr "ÇaÄŸrı komutlarında tüm kapsam sınırları engellenir" + + #: config/rs6000/rs6000.h:468 ++#, fuzzy ++msgid "Warn about deprecated 'vector long ...' AltiVec type usage" ++msgstr "EskimiÅŸ derleyici özellikleri hakkında uyarmaz" ++ ++#: config/rs6000/rs6000.h:471 + msgid "Determine which dependences between insns are considered costly" + msgstr "" + +-#: config/rs6000/rs6000.h:470 ++#: config/rs6000/rs6000.h:473 + msgid "Specify which post scheduling nop insertion scheme to apply" + msgstr "" + +-#: config/rs6000/rs6000.h:472 ++#: config/rs6000/rs6000.h:475 + msgid "Specify alignment of structure fields default/natural" + msgstr "Yapı alanlarının hizalaması default/natural olarak belirtilir" + +-#: config/rs6000/rs6000.h:474 ++#: config/rs6000/rs6000.h:477 + msgid "Specify scheduling priority for dispatch slot restricted insns" + msgstr "" + +@@ -12083,7 +12108,7 @@ + #. Number of bytes into the frame return addresses can be found. See + #. rs6000_stack_info in rs6000.c for more information on how the different + #. abi's store the return address. +-#: config/rs6000/rs6000.h:1923 ++#: config/rs6000/rs6000.h:1932 + msgid "RETURN_ADDRESS_OFFSET not supported" + msgstr "RETURN_ADDRESS_OFFSET desteklenmiyor" + +@@ -12350,28 +12375,28 @@ + msgid "enable fused multiply/add instructions" + msgstr "" + +-#: config/sh/sh.c:5977 ++#: config/sh/sh.c:5978 + msgid "__builtin_saveregs not supported by this subtarget" + msgstr "__builtin_saveregs bu alt hedef tarafından desteklenmiyor" + +-#: config/sh/sh.c:6879 ++#: config/sh/sh.c:6880 + msgid "attribute interrupt_handler is not compatible with -m5-compact" + msgstr "özellik kesme yakalayıcı -m5-compact ile uyumlu deÄŸil" + + #. The sp_switch attribute only has meaning for interrupt functions. +-#: config/sh/sh.c:6901 config/sh/sh.c:6936 ++#: config/sh/sh.c:6902 config/sh/sh.c:6937 + #, c-format + msgid "`%s' attribute only applies to interrupt functions" + msgstr "`%s' özniteliÄŸi sadece sistem kesmesi iÅŸlevlerine uygulanır" + + #. The argument must be a constant string. +-#: config/sh/sh.c:6908 ++#: config/sh/sh.c:6909 + #, c-format + msgid "`%s' attribute argument not a string constant" + msgstr "`%s' öznitelik argümanı bir dizge sabit deÄŸil" + + #. The argument must be a constant integer. +-#: config/sh/sh.c:6943 ++#: config/sh/sh.c:6944 + #, c-format + msgid "`%s' attribute argument not an integer constant" + msgstr "`%s' öznitelik argümanı bir tamsayı sabit deÄŸil" +@@ -12383,69 +12408,69 @@ + msgid "Profiling is not supported on this target." + msgstr "Ayrımsama bu hedefte desteklenmiyor." + +-#: config/sparc/sparc.c:360 ++#: config/sparc/sparc.c:362 + #, c-format + msgid "%s is not supported by this configuration" + msgstr "%s bu yapılandırma ile desteklenmiyor" + +-#: config/sparc/sparc.c:367 ++#: config/sparc/sparc.c:369 + msgid "-mlong-double-64 not allowed with -m64" + msgstr "-mlong-double-64 ile -m64 birarada izin verilmez" + +-#: config/sparc/sparc.c:392 ++#: config/sparc/sparc.c:394 + msgid "-mcmodel= is not supported on 32 bit systems" + msgstr "`-mcmodel=' 32bit sistemlerde desteklenmiyor" + +-#: config/sparc/sparc.c:6818 config/sparc/sparc.c:6824 ++#: config/sparc/sparc.c:6960 config/sparc/sparc.c:6966 + #, c-format + msgid "invalid %%Y operand" + msgstr "geçersiz %%Y terimi" + +-#: config/sparc/sparc.c:6894 ++#: config/sparc/sparc.c:7036 + #, c-format + msgid "invalid %%A operand" + msgstr "geçersiz %%A terimi" + +-#: config/sparc/sparc.c:6904 ++#: config/sparc/sparc.c:7046 + #, c-format + msgid "invalid %%B operand" + msgstr "geçersiz %%B terimi" + +-#: config/sparc/sparc.c:6943 ++#: config/sparc/sparc.c:7085 + #, c-format + msgid "invalid %%c operand" + msgstr "geçersiz %%c terimi" + +-#: config/sparc/sparc.c:6944 ++#: config/sparc/sparc.c:7086 + #, c-format + msgid "invalid %%C operand" + msgstr "geçersiz %%C terimi" + +-#: config/sparc/sparc.c:6965 ++#: config/sparc/sparc.c:7107 + #, c-format + msgid "invalid %%d operand" + msgstr "geçersiz %%d terimi" + +-#: config/sparc/sparc.c:6966 ++#: config/sparc/sparc.c:7108 + #, c-format + msgid "invalid %%D operand" + msgstr "geçersiz %%D terimi" + +-#: config/sparc/sparc.c:6982 ++#: config/sparc/sparc.c:7124 + #, c-format + msgid "invalid %%f operand" + msgstr "geçersiz %%f terimi" + +-#: config/sparc/sparc.c:6996 ++#: config/sparc/sparc.c:7138 + #, c-format + msgid "invalid %%s operand" + msgstr "geçersiz %%s terimi" + +-#: config/sparc/sparc.c:7050 ++#: config/sparc/sparc.c:7192 + msgid "long long constant not a valid immediate operand" + msgstr "long long sabit geçerli bir anlık terim deÄŸil" + +-#: config/sparc/sparc.c:7053 ++#: config/sparc/sparc.c:7195 + msgid "floating point constant not a valid immediate operand" + msgstr "gerçel sayı sabit geçerli bir dolaysız veri öğesi deÄŸil" + +@@ -12930,259 +12955,259 @@ + msgid "`-gnat' misspelled as `-gant'" + msgstr "`-gnat' yerine `-gant' kullanılmış" + +-#: cp/call.c:217 ++#: cp/call.c:219 + msgid "unable to call pointer to member function here" + msgstr "buradan üye iÅŸlev göstericisi çaÄŸrılamaz" + +-#: cp/call.c:2228 ++#: cp/call.c:2238 + msgid "%s %D(%T, %T, %T) " + msgstr "%s %D(%T, %T, %T) " + +-#: cp/call.c:2233 ++#: cp/call.c:2243 + msgid "%s %D(%T, %T) " + msgstr "%s %D(%T, %T) " + +-#: cp/call.c:2237 ++#: cp/call.c:2247 + msgid "%s %D(%T) " + msgstr "%s %D(%T) " + +-#: cp/call.c:2241 ++#: cp/call.c:2251 + msgid "%s %T " + msgstr "%s %T " + +-#: cp/call.c:2243 ++#: cp/call.c:2253 + msgid "%J%s %+#D " + msgstr "" + +-#: cp/call.c:2245 ++#: cp/call.c:2255 + msgid "%J%s %+#D" + msgstr "%J %s %+#D" + +-#: cp/call.c:2280 ++#: cp/call.c:2290 + msgid "candidates are:" + msgstr "adaylar:" + +-#: cp/call.c:2468 ++#: cp/call.c:2478 + msgid "conversion from `%T' to `%T' is ambiguous" + msgstr "`%T' den `%T' ye dönüşüm belirsiz" + +-#: cp/call.c:2619 cp/call.c:2663 ++#: cp/call.c:2629 cp/call.c:2673 + msgid "no matching function for call to `%D(%A)'" + msgstr "`%D(%A)' çaÄŸrısı ile eÅŸleÅŸen bir iÅŸlev yok" + +-#: cp/call.c:2622 cp/call.c:2666 ++#: cp/call.c:2632 cp/call.c:2676 + msgid "call of overloaded `%D(%A)' is ambiguous" + msgstr "aşırı yüklü `%D(%A)' çaÄŸrısı belirsiz" + + #. It's no good looking for an overloaded operator() on a + #. pointer-to-member-function. +-#: cp/call.c:2732 ++#: cp/call.c:2742 + #, c-format + msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*" + msgstr "üye iÅŸlev %E nesnesiz çaÄŸrılamaz; .* or ->* kullanımı önerilir" + +-#: cp/call.c:2798 ++#: cp/call.c:2808 + msgid "no match for call to `(%T) (%A)'" + msgstr "`(%T) (%A)' çaÄŸrısı için eÅŸleÅŸme yok" + +-#: cp/call.c:2806 ++#: cp/call.c:2816 + msgid "call of `(%T) (%A)' is ambiguous" + msgstr "`(%T) (%A)' çaÄŸrısı belirsiz" + +-#: cp/call.c:2839 ++#: cp/call.c:2849 + #, c-format + msgid "%s for ternary 'operator?:' in '%E ? %E : %E'" + msgstr "'%2$E ? %3$E : %4$E' içinde üç terimli ?: iÅŸleci için %1$s" + +-#: cp/call.c:2845 ++#: cp/call.c:2855 + #, c-format + msgid "%s for 'operator%s' in '%E%s'" + msgstr "'%3$E%4$s' içinde %2$s iÅŸleci için %1$s" + +-#: cp/call.c:2849 ++#: cp/call.c:2859 + #, c-format + msgid "%s for 'operator[]' in '%E[%E]'" + msgstr "'%2$E[%3$E]' içinde [] iÅŸleci için %1$s" + +-#: cp/call.c:2854 ++#: cp/call.c:2864 + #, c-format + msgid "%s for '%s' in '%s %E'" + msgstr "'%3$s %4$E' içinde '%2$s' için %1$s" + +-#: cp/call.c:2859 ++#: cp/call.c:2869 + #, c-format + msgid "%s for 'operator%s' in '%E %s %E'" + msgstr "'%3$E %4$s %5$E' içinde %2$s iÅŸleci için %1$s" + +-#: cp/call.c:2862 ++#: cp/call.c:2872 + #, c-format + msgid "%s for 'operator%s' in '%s%E'" + msgstr "'%3$s%4$E' içinde %2$s iÅŸleci için %1$s" + +-#: cp/call.c:2951 ++#: cp/call.c:2961 + msgid "ISO C++ forbids omitting the middle term of a ?: expression" + msgstr "ISO C++ bir ?: ifadesinde eksik orta terime izin vermez" + +-#: cp/call.c:3028 ++#: cp/call.c:3038 + #, c-format + msgid "`%E' has type `void' and is not a throw-expression" + msgstr "`%E' `void' türünde ve bir yakalama-ifadesi deÄŸil" + +-#: cp/call.c:3061 cp/call.c:3265 ++#: cp/call.c:3071 cp/call.c:3275 + msgid "operands to ?: have different types" + msgstr "?: için iÅŸlemimleri farklı türde" + +-#: cp/call.c:3219 ++#: cp/call.c:3229 + msgid "enumeral mismatch in conditional expression: `%T' vs `%T'" + msgstr "ÅŸartlı ifade içinde enum uyumsuzluÄŸu: `%T' vs `%T'" + +-#: cp/call.c:3226 ++#: cp/call.c:3236 + msgid "enumeral and non-enumeral type in conditional expression" + msgstr "ÅŸartlı ifade içinde enum ve enum olmayan türler" + +-#: cp/call.c:3511 ++#: cp/call.c:3521 + msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead" + msgstr "sonek `%s' için `%D(int)' bildirimi yok, yerine önek iÅŸleci deneniyor" + +-#: cp/call.c:3560 ++#: cp/call.c:3570 + msgid "using synthesized `%#D' for copy assignment" + msgstr "kopya ataması için bireÅŸimli `%#D' kullanılıyor" + +-#: cp/call.c:3562 ++#: cp/call.c:3572 + msgid " where cfront would use `%#D'" + msgstr " (cfront'un `%#D' kullanması gerektiÄŸi yerde)" + +-#: cp/call.c:3585 ++#: cp/call.c:3595 + msgid "comparison between `%#T' and `%#T'" + msgstr "`%#T' ile `%#T' arasında karşılaÅŸtırma" + +-#: cp/call.c:3831 ++#: cp/call.c:3841 + msgid "no suitable `operator %s' for `%T'" + msgstr "`%T' için `operator %s' uygun deÄŸil" + +-#: cp/call.c:3848 ++#: cp/call.c:3858 + msgid "`%+#D' is private" + msgstr "`%+#D' private'dir" + +-#: cp/call.c:3850 ++#: cp/call.c:3860 + msgid "`%+#D' is protected" + msgstr "`%+#D' protected'dır" + +-#: cp/call.c:3852 ++#: cp/call.c:3862 + msgid "`%+#D' is inaccessible" + msgstr "`%+#D' eriÅŸilebilir deÄŸil" + +-#: cp/call.c:3853 ++#: cp/call.c:3863 + msgid "within this context" + msgstr "bu baÄŸlamda" + +-#: cp/call.c:3923 ++#: cp/call.c:3947 + msgid "invalid conversion from `%T' to `%T'" + msgstr "`%T' den `%T' ye dönüşüm geçersiz" + +-#: cp/call.c:3925 ++#: cp/call.c:3949 + msgid " initializing argument %P of `%D'" + msgstr " `%D' nin %P. argümanının ilklendirilmesi" + +-#: cp/call.c:4079 ++#: cp/call.c:4094 + msgid "cannot bind bitfield `%E' to `%T'" + msgstr "`%E' bitalanı `%T' ye baÄŸlanamaz" + +-#: cp/call.c:4082 ++#: cp/call.c:4097 + msgid "cannot bind packed field `%E' to `%T'" + msgstr "`%E' paketli alanı `%T'ye baÄŸlanamaz" + +-#: cp/call.c:4085 ++#: cp/call.c:4100 + msgid "cannot bind rvalue `%E' to `%T'" + msgstr "saÄŸ taraf deÄŸeri `%E', `%T' ye baÄŸlanamaz" + +-#: cp/call.c:4170 ++#: cp/call.c:4185 + msgid "cannot pass objects of non-POD type `%#T' through `...'; call will abort at runtime" + msgstr "POD olmayan `%#T' türünün nesneleri `...' üzerinden aktarılamaz; çalışma anında çaÄŸrı çıkış yaptıracak" + + #. Undefined behavior [expr.call] 5.2.2/7. +-#: cp/call.c:4196 ++#: cp/call.c:4211 + msgid "cannot receive objects of non-POD type `%#T' through `...'; call will abort at runtime" + msgstr "POD olmayan `%#T' türünün nesneleri `...' üzerinden alınamaz; çalışma anında çaÄŸrı çıkış yaptıracak" + +-#: cp/call.c:4240 ++#: cp/call.c:4255 + msgid "the default argument for parameter %d of `%D' has not yet been parsed" + msgstr "%d parametresi için öntanımlı argüman, `%D' için henüz çözümlenmedi" + +-#: cp/call.c:4437 ++#: cp/call.c:4452 + msgid "passing `%T' as `this' argument of `%#D' discards qualifiers" + msgstr "niteleyicileri iptal eden `%#D'nin `this' argümanı olarak `%T aktarılıyor" + +-#: cp/call.c:4456 ++#: cp/call.c:4471 + msgid "`%T' is not an accessible base of `%T'" + msgstr "`%T', `%T' tabanında eriÅŸilebilir deÄŸil" + +-#: cp/call.c:4725 ++#: cp/call.c:4740 + msgid "could not find class$ field in java interface type `%T'" + msgstr "`%T' türündeki java arabiriminde class$ alanı bulunamadı" + +-#: cp/call.c:4980 ++#: cp/call.c:4995 + msgid "call to non-function `%D'" + msgstr "iÅŸlev olmayan `%D' ye çaÄŸrı" + +-#: cp/call.c:5006 ++#: cp/call.c:5021 + msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'" + msgstr "bir nesne alarak oluÅŸmayan `%3$T' türündeki `%2$E'nin üyesi `%D' için istek" + +-#: cp/call.c:5084 ++#: cp/call.c:5099 + msgid "no matching function for call to `%T::%s(%A)%#V'" + msgstr "`%T::%s(%A)%#V' çaÄŸrısı ile eÅŸleÅŸen iÅŸlev yok" + +-#: cp/call.c:5101 ++#: cp/call.c:5116 + #, c-format + msgid "call of overloaded `%s(%A)' is ambiguous" + msgstr "aşırı yüklü `%s(%A)' çaÄŸrısı belirsiz" + +-#: cp/call.c:5122 ++#: cp/call.c:5137 + msgid "cannot call member function `%D' without object" + msgstr "üye iÅŸlev `%D' nesne olmaksızın çaÄŸrılamaz" + +-#: cp/call.c:5707 ++#: cp/call.c:5722 + msgid "passing `%T' chooses `%T' over `%T'" + msgstr "`%T' `%T'yi `%T' üzerinden seçerek aktarılıyor" + +-#: cp/call.c:5709 cp/name-lookup.c:4155 ++#: cp/call.c:5724 cp/name-lookup.c:4137 + msgid " in call to `%D'" + msgstr " `%D' çaÄŸrısında" + +-#: cp/call.c:5766 ++#: cp/call.c:5781 + msgid "choosing `%D' over `%D'" + msgstr "`%D' `%D' üzerinden seçiliyor" + +-#: cp/call.c:5767 ++#: cp/call.c:5782 + msgid " for conversion from `%T' to `%T'" + msgstr " (`%T' den `%T' ye dönüşüm için)" + +-#: cp/call.c:5769 ++#: cp/call.c:5784 + msgid " because conversion sequence for the argument is better" + msgstr " çünkü argüman için dönüşüm süreci daha iyi" + +-#: cp/call.c:5889 ++#: cp/call.c:5904 + msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:" + msgstr "Ä°lkinin en kötü dönüşümü ikincisinden daha iyi olsa bile ISO C++ bunlar belirsizdir der " + +-#: cp/call.c:5893 ++#: cp/call.c:5908 + msgid "candidate 1:" + msgstr "1. aday:" + +-#: cp/call.c:5894 ++#: cp/call.c:5909 + msgid "candidate 2:" + msgstr "2. aday:" + +-#: cp/call.c:6003 ++#: cp/call.c:6018 + msgid "could not convert `%E' to `%T'" + msgstr "`%E' den `%T' ye dönüşüm yapılamaz" + +-#: cp/call.c:6108 ++#: cp/call.c:6123 + msgid "invalid initialization of non-const reference of type '%T' from a temporary of type '%T'" + msgstr "`%T' türündeki sabit olmayan referansın geçici `%T' türünden ilklendirilmesi geçersiz" + +-#: cp/call.c:6112 ++#: cp/call.c:6127 + msgid "invalid initialization of reference of type '%T' from expression of type '%T'" + msgstr "`%T' türündeki referansın `%T' türü ifadeden ilklendirilmesi geçersiz" + +@@ -13255,220 +13280,220 @@ + msgid "`%#T' only defines private constructors and has no friends" + msgstr "`%#T' sadece private kurucular tanımlıyor ve kardeÅŸleri yok" + +-#: cp/class.c:1995 ++#: cp/class.c:2038 + msgid "no unique final overrider for `%D' in `%T'" + msgstr "`%D' için `%T' içinde eÅŸsiz bir son deÄŸiÅŸtirici yok" + + #. Here we know it is a hider, and no overrider exists. +-#: cp/class.c:2441 ++#: cp/class.c:2484 + msgid "`%D' was hidden" + msgstr "`%D'" + +-#: cp/class.c:2442 ++#: cp/class.c:2485 + msgid " by `%D'" + msgstr " `%D' tarafından gizlendi" + +-#: cp/class.c:2484 cp/decl2.c:1161 ++#: cp/class.c:2527 cp/decl2.c:1161 + msgid "`%#D' invalid; an anonymous union can only have non-static data members" + msgstr "`%#D' geçersiz; bir anonim birleÅŸik yapı sadece statik olmayan veri üyeleri içerebilir" + +-#: cp/class.c:2490 cp/decl2.c:1168 ++#: cp/class.c:2533 cp/decl2.c:1168 + msgid "private member `%#D' in anonymous union" + msgstr "anonim union içinde private üye `%#D'" + +-#: cp/class.c:2493 cp/decl2.c:1170 ++#: cp/class.c:2536 cp/decl2.c:1170 + msgid "protected member `%#D' in anonymous union" + msgstr "anonim union içinde protected üye `%#D'" + +-#: cp/class.c:2612 ++#: cp/class.c:2655 + msgid "vtable layout for class `%T' may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor" + msgstr "sınıf `%T' için vtable yerleÅŸimi ABI-uyumlu olamaz ve bu GCC'nin gelecek sürümünde deÄŸiÅŸebilir" + +-#: cp/class.c:2672 ++#: cp/class.c:2715 + msgid "bit-field `%#D' with non-integral type" + msgstr "tümleyen olmayan tür ile bit-alanı `%#D'" + +-#: cp/class.c:2692 ++#: cp/class.c:2735 + msgid "bit-field `%D' width not an integer constant" + msgstr "bit alanı `%D' için geniÅŸlik bir tamsayı sabit deÄŸil" + +-#: cp/class.c:2698 ++#: cp/class.c:2741 + msgid "negative width in bit-field `%D'" + msgstr "bit alanı `%D' içindeki geniÅŸlik negatif" + +-#: cp/class.c:2703 ++#: cp/class.c:2746 + msgid "zero width for bit-field `%D'" + msgstr "bit alanı `%D' için sıfır geniÅŸlik" + +-#: cp/class.c:2709 ++#: cp/class.c:2752 + msgid "width of `%D' exceeds its type" + msgstr "`%D' türünün geniÅŸliÄŸini aşıyor" + +-#: cp/class.c:2718 ++#: cp/class.c:2761 + msgid "`%D' is too small to hold all values of `%#T'" + msgstr "`%D' `%#T'nin tüm deÄŸerlerini tutmak için çok küçük" + +-#: cp/class.c:2780 ++#: cp/class.c:2823 + msgid "member `%#D' with constructor not allowed in union" + msgstr "union içinde kuruculu üye `%#D' olamaz" + +-#: cp/class.c:2783 ++#: cp/class.c:2826 + msgid "member `%#D' with destructor not allowed in union" + msgstr "union içinde yıkıcılı üye `%#D' olamaz" + +-#: cp/class.c:2786 ++#: cp/class.c:2829 + msgid "member `%#D' with copy assignment operator not allowed in union" + msgstr "union içinde kopya atama iÅŸleçli üye `%#D' olamaz" + +-#: cp/class.c:2813 ++#: cp/class.c:2856 + msgid "multiple fields in union `%T' initialized" + msgstr "birleÅŸik yapı `%T' içindeki çoklu alanlar ilklendirildi" + +-#: cp/class.c:2879 ++#: cp/class.c:2922 + msgid "ignoring packed attribute on unpacked non-POD field `%#D'" + msgstr "" + +-#: cp/class.c:2939 ++#: cp/class.c:2982 + msgid "`%D' may not be static because it is a member of a union" + msgstr "`%D' bir birleÅŸik yapını üyesi olduÄŸundan static olmamalıdır" + +-#: cp/class.c:2944 ++#: cp/class.c:2987 + msgid "`%D' may not have reference type `%T' because it is a member of a union" + msgstr "`%D' bir birleÅŸik yapının üyesi olduÄŸundan `%T' türünde bir referansa sahip deÄŸil" + +-#: cp/class.c:2952 ++#: cp/class.c:2995 + msgid "field `%D' in local class cannot be static" + msgstr "yerel sınıf içindeki alan `%D' static olamaz" + +-#: cp/class.c:2958 ++#: cp/class.c:3001 + msgid "field `%D' invalidly declared function type" + msgstr "alan `%D' ile geçersiz olarak iÅŸlev türü bildirildi" + +-#: cp/class.c:2965 ++#: cp/class.c:3008 + msgid "field `%D' invalidly declared method type" + msgstr "alan `%D' ile geçersiz olarak yöntem türü bildirildi" + +-#: cp/class.c:2998 ++#: cp/class.c:3041 + msgid "non-static reference `%#D' in class without a constructor" + msgstr "bir kurucusuz sınıf içinde static olmayan baÅŸvuru `%#D'" + +-#: cp/class.c:3041 ++#: cp/class.c:3084 + msgid "non-static const member `%#D' in class without a constructor" + msgstr "bir kurucusuz sınıf içinde static olmayan sabit üye `%#D'" + +-#: cp/class.c:3056 ++#: cp/class.c:3099 + msgid "field `%#D' with same name as class" + msgstr "alan `%#D' sınıf ile aynı isimde" + +-#: cp/class.c:3074 ++#: cp/class.c:3117 + msgid "`%#T' has pointer data members" + msgstr "`%#T' gösterici veri üyeleri içeriyor" + +-#: cp/class.c:3078 ++#: cp/class.c:3121 + msgid " but does not override `%T(const %T&)'" + msgstr " ama `%T(const %T&)' ye deÄŸiÅŸtirilmiyor" + +-#: cp/class.c:3080 ++#: cp/class.c:3123 + msgid " or `operator=(const %T&)'" + msgstr " ya da `operator=(const %T&)'" + +-#: cp/class.c:3083 ++#: cp/class.c:3126 + msgid " but does not override `operator=(const %T&)'" + msgstr " ama `operator=(const %T&)' ye deÄŸiÅŸtirilmiyor" + +-#: cp/class.c:3517 ++#: cp/class.c:3560 + msgid "offset of empty base `%T' may not be ABI-compliant and maychange in a future version of GCC" + msgstr "boÅŸ taban `%T' nin göreli konumu ABI-uyumlu olamaz ve bu GCC'nin gelecek sürümünde deÄŸiÅŸebilir" + +-#: cp/class.c:3627 ++#: cp/class.c:3670 + msgid "class `%T' will be considered nearly empty in a future version of GCC" + msgstr "sınıf `%T' GCC'nin gelecek sürümünde kısmen boÅŸ sayılacak" + +-#: cp/class.c:3714 ++#: cp/class.c:3757 + msgid "initializer specified for non-virtual method `%D'" + msgstr "sanal olmayan yöntem `%D' için ilklendirici belirtilmiÅŸ" + +-#: cp/class.c:4402 ++#: cp/class.c:4445 + msgid "offset of virtual base `%T' is not ABI-compliant and may change in a future version of GCC" + msgstr "sanal taban `%T' nin göreli konumu ABI-uyumlu deÄŸil ve bu GCC'nin gelecek sürümünde deÄŸiÅŸebilir" + +-#: cp/class.c:4492 ++#: cp/class.c:4535 + msgid "direct base `%T' inaccessible in `%T' due to ambiguity" + msgstr "doÄŸrudan taban `%T' belirsizlikten dolayı `%T' içinde eriÅŸilebilir deÄŸil" + +-#: cp/class.c:4505 ++#: cp/class.c:4548 + msgid "virtual base `%T' inaccessible in `%T' due to ambiguity" + msgstr "sanal taban `%T' belirsizlikten dolayı `%T' içinde eriÅŸilebilir deÄŸil" + +-#: cp/class.c:4679 ++#: cp/class.c:4722 + msgid "size assigned to `%T' may not be ABI-compliant and may change in a future version of GCC" + msgstr "`%T' ye atanan boyut ABI-uyumlu olmamalı ve bu GCC'nin gelecek sürümünde deÄŸiÅŸebilir" + + #. Versions of G++ before G++ 3.4 did not reset the + #. DECL_MODE. +-#: cp/class.c:4718 ++#: cp/class.c:4761 + msgid "the offset of `%D' may not be ABI-compliant and may change in a future version of GCC" + msgstr "`%D' nin göreli konumu ABI-uyumlu olmayabilir ve bu GCC'nin gelecek sürümünde deÄŸiÅŸebilir" + +-#: cp/class.c:4741 ++#: cp/class.c:4784 + msgid "offset of `%D' is not ABI-compliant and may change in a future version of GCC" + msgstr "`%D' nin göreli konumu ABI-uyumlu deÄŸil ve bu GCC'nin gelecek sürümünde deÄŸiÅŸebilir" + +-#: cp/class.c:4750 ++#: cp/class.c:4793 + msgid "`%D' contains empty classes which may cause base classes to be placed at different locations in a future version of GCC" + msgstr "`%D' GCC'nin gelecek sürümünde taban sınıfların farklı yere konmasına sebep olabilecek boÅŸ sınıfları içeriyor" + +-#: cp/class.c:4809 ++#: cp/class.c:4852 + msgid "layout of classes derived from empty class `%T' may change in a future version of GCC" + msgstr "sınıfların yerleÅŸimi GCC'nin gelecek sürümünde deÄŸiÅŸebilecek olan boÅŸ sınıf `%T' den türetilmiÅŸ" + +-#: cp/class.c:4939 cp/semantics.c:2044 ++#: cp/class.c:4982 cp/semantics.c:2041 + msgid "redefinition of `%#T'" + msgstr "`%#T' yeniden tanımlanmış" + +-#: cp/class.c:5109 ++#: cp/class.c:5152 + msgid "`%#T' has virtual functions but non-virtual destructor" + msgstr "`%#T' sanal olmayan kurucuyla sanal iÅŸlevler içeriyor" + +-#: cp/class.c:5188 ++#: cp/class.c:5231 + msgid "trying to finish struct, but kicked out due to previous parse errors" + msgstr "yapı tamamlanmaya çalışılırken önceki ayrıştırma hatalarından dolayı kesildi" + +-#: cp/class.c:5630 ++#: cp/class.c:5673 + #, c-format + msgid "language string `\"%s\"' not recognized" + msgstr "dil dizgesi `\"%s\"' tanınmıyor" + +-#: cp/class.c:5718 ++#: cp/class.c:5761 + msgid "cannot resolve overloaded function `%D' based on conversion to type `%T'" + msgstr "aşırı yüklü `%D' `%T' türünün dönüşümüne tabanlı olarak çözümlenemiyor" + +-#: cp/class.c:5843 ++#: cp/class.c:5886 + msgid "no matches converting function `%D' to type `%#T'" + msgstr "iÅŸlev `%D'nin `%#T' türüne dönüşümü için eÅŸleÅŸme yok" + +-#: cp/class.c:5866 ++#: cp/class.c:5909 + msgid "converting overloaded function `%D' to type `%#T' is ambiguous" + msgstr "aşırı yüklü iÅŸlev `%D'nin `%#T' türüne dönüşümü belirsiz" + +-#: cp/class.c:5892 ++#: cp/class.c:5935 + msgid "assuming pointer to member `%D'" + msgstr "üye `%D'ye gösterici varsayılıyor" + +-#: cp/class.c:5895 ++#: cp/class.c:5938 + #, c-format + msgid "(a pointer to member can only be formed with `&%E')" + msgstr "(bir üye göstericisi sadece `&%E' ile ÅŸekillendirilebilir)" + +-#: cp/class.c:5940 cp/class.c:6122 cp/class.c:6129 ++#: cp/class.c:5983 cp/class.c:6165 cp/class.c:6172 + msgid "not enough type information" + msgstr "tür bilgisi yetersiz" + +-#: cp/class.c:5957 ++#: cp/class.c:6000 + msgid "argument of type `%T' does not match `%T'" + msgstr "`%T' türündeki argüman `%T' ile uyumsuz" + +-#: cp/class.c:6106 ++#: cp/class.c:6149 + msgid "invalid operation on uninstantiated type" + msgstr "gerçeklenmemiÅŸ tür üzerindeki iÅŸlem geçersiz" + +@@ -13477,11 +13502,11 @@ + #. A name N used in a class S shall refer to the same declaration + #. in its context and when re-evaluated in the completed scope of + #. S. +-#: cp/class.c:6364 cp/decl.c:1222 cp/name-lookup.c:514 cp/pt.c:2097 ++#: cp/class.c:6407 cp/decl.c:1223 cp/name-lookup.c:514 cp/pt.c:2125 + msgid "declaration of `%#D'" + msgstr "`%#D' yeniden bildirimi" + +-#: cp/class.c:6365 ++#: cp/class.c:6408 + msgid "changes meaning of `%D' from `%+#D'" + msgstr "`%D' nin (`%+#D' deki) anlamı deÄŸiÅŸiyor" + +@@ -13583,141 +13608,158 @@ + msgid " candidate conversions include `%D' and `%D'" + msgstr " aday dönüşümler `%D' ve `%D' içeriyor " + +-#: cp/decl.c:371 ++#: cp/decl.c:372 + msgid "label `%D' used but not defined" + msgstr "etiket `%D' tanımlanmadan kullanılmış" + +-#: cp/decl.c:378 ++#: cp/decl.c:379 + msgid "label `%D' defined but not used" + msgstr "etiket `%D' tanımlanmış ama kullanılmamış" + +-#: cp/decl.c:1130 cp/decl.c:1556 ++#: cp/decl.c:1131 cp/decl.c:1570 + msgid "previous declaration of `%D'" + msgstr "`%D'in önceki bildirimi" + +-#: cp/decl.c:1178 ++#: cp/decl.c:1179 + msgid "%Jfunction '%D' redeclared as inline" + msgstr "%J iÅŸlev `%D' 'inline' olarak yeniden bildirilmiÅŸ" + +-#: cp/decl.c:1179 ++#: cp/decl.c:1180 + msgid "%Jprevious declaration of '%D' with attribute noinline" + msgstr "%J `%D'nin önceki bildirimi 'inline' olmayan öznitelikli" + +-#: cp/decl.c:1186 ++#: cp/decl.c:1187 + msgid "%Jfunction '%D' redeclared with attribute noinline" + msgstr "%J `%D' iÅŸlevinin yeniden bildirimi inline olmayan öznitelikli" + +-#: cp/decl.c:1188 ++#: cp/decl.c:1189 + msgid "%Jprevious declaration of '%D' was inline" + msgstr "%J `%D' nin önceki bildirimi 'inline' idi" + +-#: cp/decl.c:1209 cp/decl.c:1247 ++#: cp/decl.c:1210 cp/decl.c:1248 + msgid "shadowing %s function `%#D'" + msgstr "%s iÅŸlev `%#D' yi gölgeliyor" + +-#: cp/decl.c:1218 ++#: cp/decl.c:1219 + msgid "library function `%#D' redeclared as non-function `%#D'" + msgstr "kitaplık iÅŸlevi `%#D' iÅŸlev olmayan `%#D' olarak yeniden bildirildi" + +-#: cp/decl.c:1223 ++#: cp/decl.c:1224 + msgid "conflicts with built-in declaration `%#D'" + msgstr "`%#D' yerleÅŸik bildirimiyle çeliÅŸiyor" + +-#: cp/decl.c:1242 cp/decl.c:1354 cp/decl.c:1370 ++#: cp/decl.c:1243 cp/decl.c:1355 cp/decl.c:1371 + msgid "new declaration `%#D'" + msgstr "yeni bildirim `%#D'" + +-#: cp/decl.c:1243 ++#: cp/decl.c:1244 + msgid "ambiguates built-in declaration `%#D'" + msgstr "`%#D' yerleÅŸik bildirimi belirsizleÅŸiyor" + +-#: cp/decl.c:1314 ++#: cp/decl.c:1315 + msgid "`%#D' redeclared as different kind of symbol" + msgstr "`%#D' farklı bir sembol çeÅŸidi olarak tekrar bildirilmiÅŸ" + +-#: cp/decl.c:1317 ++#: cp/decl.c:1318 + msgid "previous declaration of `%#D'" + msgstr "`%#D'in önceki bildirimi" + +-#: cp/decl.c:1339 ++#: cp/decl.c:1340 + msgid "declaration of template `%#D'" + msgstr "ÅŸablon bildirimi `%#D'" + +-#: cp/decl.c:1340 cp/name-lookup.c:515 ++#: cp/decl.c:1341 cp/name-lookup.c:515 + msgid "conflicts with previous declaration `%#D'" + msgstr "`%#D' önceki bildirimiyle çeliÅŸiyor" + +-#: cp/decl.c:1355 cp/decl.c:1371 ++#: cp/decl.c:1356 cp/decl.c:1372 + msgid "ambiguates old declaration `%#D'" + msgstr "`%#D' eski bildirimi belirsizleÅŸiyor" + +-#: cp/decl.c:1363 ++#: cp/decl.c:1364 + msgid "declaration of C function `%#D' conflicts with" + msgstr "C iÅŸlevi `%#D' bildirimi ile" + +-#: cp/decl.c:1365 ++#: cp/decl.c:1366 + msgid "previous declaration `%#D' here" + msgstr "`%#D'nin önceki bildirimi ile burada çeliÅŸiyor" + +-#: cp/decl.c:1381 ++#: cp/decl.c:1382 + msgid "conflicting declaration '%#D'" + msgstr "'%#D' bildirimi çeliÅŸiyor" + +-#: cp/decl.c:1382 ++#: cp/decl.c:1383 + msgid "'%D' has a previous declaration as `%#D'" + msgstr "'%D' öncesinde `%#D' olarak bir bildirim var" + +-#: cp/decl.c:1435 ++#. [namespace.alias] ++#. ++#. A namespace-name or namespace-alias shall not be declared as ++#. the name of any other entity in the same declarative region. ++#. A namespace-name defined at global scope shall not be ++#. declared as the name of any other entity in any glogal scope ++#. of the program. ++#: cp/decl.c:1436 ++#, fuzzy ++msgid "declaration of `namespace %D' conflicts with" ++msgstr "C işlevi `%#D' bildirimi ile" ++ ++#: cp/decl.c:1437 ++#, fuzzy ++msgid "previous declaration of `namespace %D' here" ++msgstr "`%#D'nin önceki bildirimi ile burada çelişiyor" ++ ++#: cp/decl.c:1449 + msgid "`%#D' previously defined here" + msgstr "`%#D' evvelce burada tanımlanmış" + +-#: cp/decl.c:1436 ++#: cp/decl.c:1450 + msgid "`%#D' previously declared here" + msgstr "`%#D' evvelce burada bildirilmiş" + + #. Prototype decl follows defn w/o prototype. +-#: cp/decl.c:1445 ++#: cp/decl.c:1459 + msgid "prototype for `%#D'" + msgstr "`%#D' için prototip" + +-#: cp/decl.c:1446 ++#: cp/decl.c:1460 + msgid "%Jfollows non-prototype definition here" + msgstr "%j burada prototip olmayan tanımdan sonra" + +-#: cp/decl.c:1458 ++#: cp/decl.c:1472 + msgid "previous declaration of `%#D' with %L linkage" + msgstr "%L ilintili `%#D' önceki bildirimi" + +-#: cp/decl.c:1460 ++#: cp/decl.c:1474 + msgid "conflicts with new declaration with %L linkage" + msgstr "%L ilintili yeni bildirim ile çelişiyor" + +-#: cp/decl.c:1483 cp/decl.c:1490 ++#: cp/decl.c:1497 cp/decl.c:1504 + msgid "default argument given for parameter %d of `%#D'" + msgstr "`%#D' nin %d. parametresi için verilen öntanımlı argüman" + +-#: cp/decl.c:1485 cp/decl.c:1492 ++#: cp/decl.c:1499 cp/decl.c:1506 + msgid "after previous specification in `%#D'" + msgstr "`%#D' içindeki önceki özellikten sonra" + +-#: cp/decl.c:1501 ++#: cp/decl.c:1515 + msgid "`%#D' was used before it was declared inline" + msgstr "`%#D' inline olarak bildirilmeden önce" + +-#: cp/decl.c:1502 ++#: cp/decl.c:1516 + msgid "%Jprevious non-inline declaration here" + msgstr "%J önceki inline olmayan bildirimi burada" + +-#: cp/decl.c:1555 ++#: cp/decl.c:1569 + msgid "redundant redeclaration of `%D' in same scope" + msgstr "aynı bağlamda `%D'nin yeniden bildirimi anlamsız" + +-#: cp/decl.c:1649 ++#: cp/decl.c:1663 + #, c-format + msgid "declaration of `%F' throws different exceptions" + msgstr "`%F' bildirimi farklı olağandışılıkları yakalıyor" + +-#: cp/decl.c:1651 ++#: cp/decl.c:1665 + #, c-format + msgid "than previous declaration `%F'" + msgstr "`%F'in önceki bildiriminden" +@@ -13730,492 +13772,510 @@ + #. that specialization that would cause an implicit + #. instantiation to take place, in every translation unit in + #. which such a use occurs. +-#: cp/decl.c:1798 ++#: cp/decl.c:1812 + msgid "explicit specialization of %D after first use" + msgstr "ilk kullanımından sonra %D'nin doğrudan özelleştirilmesi" + +-#: cp/decl.c:1878 ++#: cp/decl.c:1892 + msgid "%J'%D': visibility attribute ignored because it" + msgstr "%J'%D': visibility attribute ignored because it" + +-#: cp/decl.c:1880 ++#: cp/decl.c:1894 + msgid "%Jconflicts with previous declaration here" + msgstr "%J `%#D' burada önceki bildirimiyle çelişiyor" + +-#: cp/decl.c:1974 ++#: cp/decl.c:1988 + msgid "implicit declaration of function `%#D'" + msgstr "işlev `%#D' nin örtük bildirimi" + +-#: cp/decl.c:2137 ++#: cp/decl.c:2151 + #, c-format + msgid "label `%s' referenced outside of any function" + msgstr "`%s' etiketi her işlevin dışına referanslı" + +-#: cp/decl.c:2234 cp/decl.c:2258 cp/decl.c:2346 ++#: cp/decl.c:2248 cp/decl.c:2272 cp/decl.c:2360 + msgid "jump to label `%D'" + msgstr "etiket `%D' ye sıçrama" + +-#: cp/decl.c:2236 cp/decl.c:2260 ++#: cp/decl.c:2250 cp/decl.c:2274 + msgid "jump to case label" + msgstr "case etiketine jump" + +-#: cp/decl.c:2239 cp/decl.c:2263 ++#: cp/decl.c:2253 cp/decl.c:2277 + msgid "%H from here" + msgstr "%H buradan" + +-#: cp/decl.c:2244 ++#: cp/decl.c:2258 + msgid " crosses initialization of `%#D'" + msgstr " `%#D' ilklendirmesi çaprazlanıyor" + +-#: cp/decl.c:2247 cp/decl.c:2362 ++#: cp/decl.c:2261 cp/decl.c:2376 + msgid " enters scope of non-POD `%#D'" + msgstr " POD olmayan `%#D' bağlamına giriyor" + +-#: cp/decl.c:2267 cp/decl.c:2366 ++#: cp/decl.c:2281 cp/decl.c:2380 + msgid " enters try block" + msgstr " blok denemesine giriliyor" + +-#: cp/decl.c:2269 cp/decl.c:2368 ++#: cp/decl.c:2283 cp/decl.c:2382 + msgid " enters catch block" + msgstr " tuzak bloğu giriyor" + +-#: cp/decl.c:2347 ++#: cp/decl.c:2361 + msgid " from here" + msgstr " buradan" + + #. Can't skip init of __exception_info. +-#: cp/decl.c:2358 ++#: cp/decl.c:2372 + msgid "%J enters catch block" + msgstr "%J tuzak bloğu giriyor" + +-#: cp/decl.c:2360 ++#: cp/decl.c:2374 + msgid " skips initialization of `%#D'" + msgstr " `%#D' ilklendirmesi atlanyor" + +-#: cp/decl.c:2394 ++#: cp/decl.c:2408 + msgid "label named wchar_t" + msgstr "wchar_t isimli etiket" + +-#: cp/decl.c:2397 ++#: cp/decl.c:2411 + msgid "duplicate label `%D'" + msgstr "yinlenmiş etiket `%D'" + +-#: cp/decl.c:2625 cp/parser.c:3182 ++#: cp/decl.c:2639 cp/parser.c:3192 + msgid "`%D' used without template parameters" + msgstr "`%D' şablon parametreleri olmaksızın kullanılmış" + +-#: cp/decl.c:2635 cp/decl.c:2651 cp/decl.c:2739 ++#: cp/decl.c:2649 cp/decl.c:2665 cp/decl.c:2753 + msgid "no class template named `%#T' in `%#T'" + msgstr "`%#T' isimli sınıf şablonu `%#T' içinde yok" + +-#: cp/decl.c:2672 cp/decl.c:2682 cp/decl.c:2702 ++#: cp/decl.c:2686 cp/decl.c:2696 cp/decl.c:2716 + msgid "no type named `%#T' in `%#T'" + msgstr "`%#T' içindeki `%#T' ismindeki tür bilinmiyor" + +-#: cp/decl.c:3429 ++#: cp/decl.c:3443 + msgid "%Jan anonymous union cannot have function members" + msgstr "%J bir anonim birleşik yapı, işlev üyeler barındıramaz" + +-#: cp/decl.c:3447 ++#: cp/decl.c:3461 + msgid "member %#D' with constructor not allowed in anonymous aggregate" + msgstr "kuruculu üye %#D' anonim kümeleme içinde kullanılamaz" + +-#: cp/decl.c:3450 ++#: cp/decl.c:3464 + msgid "member %#D' with destructor not allowed in anonymous aggregate" + msgstr "yıkıcılı üye %#D' anonim kümeleme içinde kullanılamaz" + +-#: cp/decl.c:3453 ++#: cp/decl.c:3467 + msgid "member %#D' with copy assignment operator not allowed in anonymous aggregate" + msgstr "kopya atama işleçli üye %#D' anonim kümeleme içinde kullanılamaz" + +-#: cp/decl.c:3493 ++#: cp/decl.c:3507 + msgid "redeclaration of C++ built-in type `%T'" + msgstr "C++ yerleşik türü `%T' için yeniden bildirim" + +-#: cp/decl.c:3531 ++#: cp/decl.c:3545 + msgid "multiple types in one declaration" + msgstr "bir bildirimde birden fazla tür bidirilmiş" + +-#: cp/decl.c:3557 ++#: cp/decl.c:3571 + msgid "missing type-name in typedef-declaration" + msgstr "typedef bildiriminde tür ismi eksik" + +-#: cp/decl.c:3565 ++#: cp/decl.c:3579 + msgid "ISO C++ prohibits anonymous structs" + msgstr "ISO C++ anonim yapıları (struct) yasaklar" + +-#: cp/decl.c:3572 ++#: cp/decl.c:3586 + msgid "`%D' can only be specified for functions" + msgstr "`%D' sadece işlevler için belirtilebilir" + +-#: cp/decl.c:3574 ++#: cp/decl.c:3588 + msgid "`%D' can only be specified inside a class" + msgstr "`%D' sadece bir sınıf içinde belirtilebilir" + +-#: cp/decl.c:3576 ++#: cp/decl.c:3590 + msgid "`%D' can only be specified for constructors" + msgstr "`%D' sadece kurucular için belirtilebilir" + +-#: cp/decl.c:3579 ++#: cp/decl.c:3593 + msgid "`%D' can only be specified for objects and functions" + msgstr "`%D' sadece işlevler ve nesneler için belirtilebilir" + +-#: cp/decl.c:3721 cp/decl2.c:855 ++#: cp/decl.c:3735 cp/decl2.c:855 + msgid "typedef `%D' is initialized (use __typeof__ instead)" + msgstr "typedef `%D' ilklendirilmiş (yerine __typeof__ kullanın)" + +-#: cp/decl.c:3726 ++#: cp/decl.c:3740 + msgid "function `%#D' is initialized like a variable" + msgstr "`%D' işlevi bir değişken gibi ilklendirilmiş" + +-#: cp/decl.c:3738 ++#: cp/decl.c:3752 + msgid "declaration of `%#D' has `extern' and is initialized" + msgstr "`%#D' hem `extern' olarak bildirilmiş hem de ilklendirilmiş" + +-#: cp/decl.c:3771 ++#: cp/decl.c:3785 + msgid "`%#D' is not a static member of `%#T'" + msgstr "`%#D' `%#T'nin bir static üyesi değildir" + +-#: cp/decl.c:3777 ++#: cp/decl.c:3791 + msgid "ISO C++ does not permit `%T::%D' to be defined as `%T::%D'" + msgstr "ISO C++ `%T::%D' nin `%T::%D' olarak tanımlanmasına izin vermez" + +-#: cp/decl.c:3788 ++#: cp/decl.c:3802 + msgid "duplicate initialization of %D" + msgstr "%D nin yinelenmiş ilklendirmesi" + +-#: cp/decl.c:3819 ++#: cp/decl.c:3833 + msgid "declaration of `%#D' outside of class is not definition" + msgstr "sınıf dışında `%#D' bildirimi bir tanımlama değil" + +-#: cp/decl.c:3868 ++#: cp/decl.c:3882 + msgid "variable `%#D' has initializer but incomplete type" + msgstr "`%#D' değişkeni ilklendirilmiş ama içi boş türde" + +-#: cp/decl.c:3876 cp/decl.c:4445 ++#: cp/decl.c:3890 cp/decl.c:4500 + msgid "elements of array `%#D' have incomplete type" + msgstr "`%#D' dizisinin elemanları içi boş türde" + +-#: cp/decl.c:3892 ++#: cp/decl.c:3906 + msgid "aggregate `%#D' has incomplete type and cannot be defined" + msgstr "küme `%#D' içi boş türde ve tanımlı olamaz" + +-#: cp/decl.c:3942 ++#: cp/decl.c:3956 + msgid "`%D' declared as reference but not initialized" + msgstr "`%D' referans olarak bildirilmiş ama ilklendirilmemiş" + +-#: cp/decl.c:3948 ++#: cp/decl.c:3962 + msgid "ISO C++ forbids use of initializer list to initialize reference `%D'" + msgstr "ISO C++ referans`%D' ilklendiren ilklendirici listesi kullanımına izin vermez" + +-#: cp/decl.c:3976 ++#: cp/decl.c:3990 + msgid "cannot initialize `%T' from `%T'" + msgstr "`%T' `%T' den ilklendirilemez" + +-#: cp/decl.c:4008 ++#: cp/decl.c:4022 + msgid "initializer fails to determine size of `%D'" + msgstr "ilklendirici `%D' nin boyutunu saptayamıyor" + +-#: cp/decl.c:4013 ++#: cp/decl.c:4027 + msgid "array size missing in `%D'" + msgstr "`%D' de dizi boyutu eksik" + +-#: cp/decl.c:4025 ++#: cp/decl.c:4039 + msgid "zero-size array `%D'" + msgstr "sıfır boyutlu dizi `%D'" + + #. An automatic variable with an incomplete type: that is an error. + #. Don't talk about array types here, since we took care of that + #. message in grokdeclarator. +-#: cp/decl.c:4062 ++#: cp/decl.c:4076 + msgid "storage size of `%D' isn't known" + msgstr "`%D' nin saklama uzunluğu bilinmiyor" + +-#: cp/decl.c:4084 ++#: cp/decl.c:4098 + msgid "storage size of `%D' isn't constant" + msgstr "`%D' nin saklama genişliği sabit değil" + +-#: cp/decl.c:4139 ++#: cp/decl.c:4153 + msgid "sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)" + msgstr "özür: özümleme işlevi static verisi `%#D' nin cevabı yanlış (sizi çoklu kopyalara sürükleyecek)" + +-#: cp/decl.c:4140 ++#: cp/decl.c:4154 + msgid "%J you can work around this by removing the initializer" + msgstr "%J bunu ilklendiricileri kaldırarak aşabilirsiniz" + +-#: cp/decl.c:4166 ++#: cp/decl.c:4180 + msgid "uninitialized const `%D'" + msgstr "ilklendirilmemiş sabit `%D'" + +-#: cp/decl.c:4245 ++#: cp/decl.c:4240 ++msgid "name `%D' used in a GNU-style designated initializer for an array" ++msgstr "`%D' ismi bir dizi için bir GNU tarzı ilklendirici içinde kullanılmış" ++ ++#: cp/decl.c:4251 ++#, c-format ++msgid "Designated initializer `%E' larger than array size" ++msgstr "" ++ ++#: cp/decl.c:4323 + msgid "brace-enclosed initializer used to initialize `%T'" + msgstr "`%T' ilklendirmesinde ilklendirici {} içinde kullanılmış" + +-#: cp/decl.c:4309 ++#: cp/decl.c:4387 + msgid "initializer for `%T' must be brace-enclosed" + msgstr "`%T' ilklendiricisi {} içinde olmalı" + +-#: cp/decl.c:4326 ++#: cp/decl.c:4404 + msgid "ISO C++ does not allow designated initializers" + msgstr "ISO C++ tasarlanmış ilkendiricilere izin vermez" + +-#: cp/decl.c:4330 ++#: cp/decl.c:4408 + msgid "`%T' has no non-static data member named `%D'" + msgstr "`%T' `%D' isminde bir statik olmayan üye içermiyor" + +-#: cp/decl.c:4378 +-msgid "name `%D' used in a GNU-style designated initializer for an array" +-msgstr "`%D' ismi bir dizi için bir GNU tarzı ilklendirici içinde kullanılmış" +- +-#: cp/decl.c:4401 ++#: cp/decl.c:4456 + msgid "too many initializers for `%T'" + msgstr "`%T' için ilklendirici sayısı çok fazla" + +-#: cp/decl.c:4439 ++#: cp/decl.c:4494 + msgid "variable-sized object `%D' may not be initialized" + msgstr "değişken-uzunluklu nesne `%D' ilklendirilmiş olmayabilir" + +-#: cp/decl.c:4450 ++#: cp/decl.c:4505 + msgid "`%D' has incomplete type" + msgstr "`%s' içi boş türde" + +-#: cp/decl.c:4505 ++#: cp/decl.c:4560 + msgid "`%D' must be initialized by constructor, not by `{...}'" + msgstr "`%D'bir kurucu ile ilklendirilmeli, `{...}' ile değil" + +-#: cp/decl.c:4549 ++#: cp/decl.c:4604 + msgid "structure `%D' with uninitialized const members" + msgstr "ilklendirmesiz sabit üyelerle `%D' yapısı" + +-#: cp/decl.c:4551 ++#: cp/decl.c:4606 + msgid "structure `%D' with uninitialized reference members" + msgstr "ilklendirmesiz referans üyelerle `%D' yapısı" + +-#: cp/decl.c:4732 ++#: cp/decl.c:4788 + msgid "assignment (not initialization) in declaration" + msgstr "bildirim içinde atama (ilklendirme değil)" + +-#: cp/decl.c:4749 ++#: cp/decl.c:4805 + msgid "cannot initialize `%D' to namespace `%D'" + msgstr "`%D' isim alanı `%D' olarak ilklendirilemez" + +-#: cp/decl.c:4803 ++#: cp/decl.c:4859 + msgid "shadowing previous type declaration of `%#D'" + msgstr "`%#D'in önceki gölgeleyen tür bildirimi" + +-#: cp/decl.c:4840 ++#: cp/decl.c:4896 + msgid "`%D' cannot be thread-local because it has non-POD type `%T'" + msgstr "`%D' yerel evreli olamaz çünkü POD olmayan %T' türünde" + +-#: cp/decl.c:4855 ++#: cp/decl.c:4911 + msgid "`%D' is thread-local and so cannot be dynamically initialized" + msgstr "`%D' yerel evreli olduğundan özdevimli ilklendirilemez" + +-#: cp/decl.c:5337 ++#: cp/decl.c:5406 + msgid "invalid catch parameter" + msgstr "yakalama parametresi geçersiz" + +-#: cp/decl.c:5451 ++#: cp/decl.c:5520 + msgid "destructor for alien class `%T' cannot be a member" + msgstr "yabancı sınıf `%T' için yıkıcı, bir üye olamaz" + +-#: cp/decl.c:5454 ++#: cp/decl.c:5523 + msgid "constructor for alien class `%T' cannot be a member" + msgstr "yabancı sınıf `%T' için kurucu, bir üye olamaz" + +-#: cp/decl.c:5476 ++#: cp/decl.c:5545 + msgid "`%D' declared as a `virtual' %s" + msgstr "`%D' bir `virtual' %s olarak bildirilmiş" + +-#: cp/decl.c:5478 ++#: cp/decl.c:5547 + msgid "`%D' declared as an `inline' %s" + msgstr "`%D' alanı bir `inline' %s olarak bildirilmiş" + +-#: cp/decl.c:5480 ++#: cp/decl.c:5549 + msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration" + msgstr "%s bildirimindeki `const' ve `volatile' işlev belirteçleri `%D' için geçersiz" + +-#: cp/decl.c:5483 ++#: cp/decl.c:5552 + msgid "`%D' declared as a friend" + msgstr "`%D' bir kardeş olarak bildirilmiş" + +-#: cp/decl.c:5489 ++#: cp/decl.c:5558 + msgid "`%D' declared with an exception specification" + msgstr "`%D' bir olağandışılık özelliğiyle bildirilmiş" + +-#: cp/decl.c:5571 ++#: cp/decl.c:5640 + msgid "cannot declare `::main' to be a template" + msgstr "`::main' bir şablon olarak bildirilemez" + +-#: cp/decl.c:5573 ++#: cp/decl.c:5642 + msgid "cannot declare `::main' to be inline" + msgstr "`::main' inline olarak bildirilemez" + +-#: cp/decl.c:5575 ++#: cp/decl.c:5644 + msgid "cannot declare `::main' to be static" + msgstr "::main' «static» olarak bildirilemez" + +-#: cp/decl.c:5578 ++#: cp/decl.c:5647 + msgid "`main' must return `int'" + msgstr "`main', `int' döndürmeli" + +-#: cp/decl.c:5606 ++#: cp/decl.c:5675 + msgid "non-local function `%#D' uses anonymous type" + msgstr "yerel olmayan işlev `%#D' anonim tür kullanıyor" + +-#: cp/decl.c:5609 ++#: cp/decl.c:5678 + msgid "`%#D' does not refer to the unqualified type, so it is not used for linkage" + msgstr "`%#D' niteliksiz türe başvurmuyor, bu durumda ilintileme için kullanılmamıştır" + +-#: cp/decl.c:5615 ++#: cp/decl.c:5684 + msgid "non-local function `%#D' uses local type `%T'" + msgstr "yerel olmayan işlev `%#D' yerel tür `%T' kullanıyor" + +-#: cp/decl.c:5639 ++#: cp/decl.c:5708 + msgid "%smember function `%D' cannot have `%T' method qualifier" + msgstr "%smember function `%D', `%T' yöntem niteleyicisini içeremez" + +-#: cp/decl.c:5663 ++#: cp/decl.c:5732 + msgid "defining explicit specialization `%D' in friend declaration" + msgstr "kardeş bildirimlerde doğrudan özelleştirme `%D' tanımlanıyor" + + #. Something like `template friend void f()'. +-#: cp/decl.c:5673 ++#: cp/decl.c:5742 + msgid "invalid use of template-id `%D' in declaration of primary template" + msgstr "birincil şablon bildiriminde şablon kimliği `%D' kullanımı geçersiz" + +-#: cp/decl.c:5700 ++#: cp/decl.c:5769 + msgid "default arguments are not allowed in declaration of friend template specialization `%D'" + msgstr "kardeş şablon özelleştirmesi `%D' bildiriminde öntanımlı argümalar kullanılamaz" + +-#: cp/decl.c:5707 ++#: cp/decl.c:5776 + msgid "`inline' is not allowed in declaration of friend template specialization `%D'" + msgstr "kardeş şablon özelleştirmesi `%D' bildiriminde `inline' kullanılamaz" + +-#: cp/decl.c:5765 ++#: cp/decl.c:5834 + msgid "definition of implicitly-declared `%D'" + msgstr "dolaylı bildirimli `%D' tanımı" + +-#: cp/decl.c:5785 cp/decl2.c:738 ++#: cp/decl.c:5854 cp/decl2.c:738 + msgid "no `%#D' member function declared in class `%T'" + msgstr "sınıf `%T' içinde bildirilmiş `%#D' diye bir üye işlev yok" + +-#: cp/decl.c:5919 ++#: cp/decl.c:5988 + msgid "non-local variable `%#D' uses local type `%T'" + msgstr "yerel olmayan değişken`%#D' yerel tür `%T' kullanıyor" + +-#: cp/decl.c:6034 ++#: cp/decl.c:6103 + msgid "invalid in-class initialization of static data member of non-integral type `%T'" + msgstr "tümleyen olmayan `%T türündeki statik veri üyesinin sınıf içi ilklendirmesi geçersiz" + +-#: cp/decl.c:6043 ++#: cp/decl.c:6112 + msgid "ISO C++ forbids in-class initialization of non-const static member `%D'" + msgstr "ISO C++ sabit olmayan statik üye `%D' nin sınıf içi ilklendirmesine izin vermez" + +-#: cp/decl.c:6046 ++#: cp/decl.c:6115 + msgid "ISO C++ forbids initialization of member constant `%D' of non-integral type `%T'" + msgstr "ISO C++ tümleyen olmayan `%T türündeki üye sabiti `%D' nin ilklendirilmesine izin vermez" + +-#: cp/decl.c:6065 ++#: cp/decl.c:6134 + msgid "size of array `%D' has non-integral type `%T'" + msgstr "`%D' dizisinin boyutu `%T' türünde" + +-#: cp/decl.c:6067 ++#: cp/decl.c:6136 + msgid "size of array has non-integral type `%T'" + msgstr "dizi boyutu `%T' türünde" + +-#: cp/decl.c:6103 ++#: cp/decl.c:6172 + msgid "size of array `%D' is negative" + msgstr "`%D' dizisinin boyutu negatif" + +-#: cp/decl.c:6105 ++#: cp/decl.c:6174 + msgid "size of array is negative" + msgstr "dizi boyutu negatif" + +-#: cp/decl.c:6113 ++#: cp/decl.c:6182 + msgid "ISO C++ forbids zero-size array `%D'" + msgstr "ISO C++ da sıfır boyutlu dizi `%D' yasaktır" + +-#: cp/decl.c:6115 ++#: cp/decl.c:6184 + msgid "ISO C++ forbids zero-size array" + msgstr "ISO C++ da sıfır boyutlu dizi yasaktır" + +-#: cp/decl.c:6122 ++#: cp/decl.c:6191 + msgid "size of array `%D' is not an integral constant-expression" + msgstr "`%D' dizisinin boyutu bir tümleyen sabitli ifade değil" + +-#: cp/decl.c:6125 ++#: cp/decl.c:6194 + msgid "size of array is not an integral constant-expression" + msgstr "dizi boyutu bir tümleyen sabitli ifade değil" + +-#: cp/decl.c:6130 ++#: cp/decl.c:6199 + msgid "ISO C++ forbids variable-size array `%D'" + msgstr "ISO C++ da değişken boyutlu dizi `%D' yasaktır" + +-#: cp/decl.c:6132 ++#: cp/decl.c:6201 + msgid "ISO C++ forbids variable-size array" + msgstr "ISO C++ da değişken boyutlu dizi yasaktır" + +-#: cp/decl.c:6154 ++#: cp/decl.c:6223 + msgid "overflow in array dimension" + msgstr "dizi boyutunda taşma" + +-#: cp/decl.c:6248 ++#: cp/decl.c:6317 + msgid "declaration of `%D' as %s" + msgstr "`%D' %s olarak bildirilmiş" + +-#: cp/decl.c:6250 ++#: cp/decl.c:6319 + #, c-format + msgid "creating %s" + msgstr "%s oluşturuluyor" + +-#: cp/decl.c:6262 ++#: cp/decl.c:6331 + msgid "declaration of `%D' as multidimensional array must have bounds for all dimensions except the first" + msgstr "çok boyutlu dizi olarak `%D' bildiriminde ilki dışında tüm boyutlar sınırlanmış olmalıdır" + +-#: cp/decl.c:6265 ++#: cp/decl.c:6334 + msgid "multidimensional array must have bounds for all dimensions except the first" + msgstr "çok boyutlu dizi bildiriminde ilki dışında tüm boyutlar sınırlanmış olmalıdır" + +-#: cp/decl.c:6293 ++#: cp/decl.c:6362 + msgid "return type specification for constructor invalid" + msgstr "kurucu için dönen değer tür özelliği geçersiz" + +-#: cp/decl.c:6300 ++#: cp/decl.c:6369 + msgid "return type specification for destructor invalid" + msgstr "yıkıcı için dönen değer tür özelliği geçersiz" + +-#: cp/decl.c:6306 ++#: cp/decl.c:6375 + msgid "operator `%T' declared to return `%T'" + msgstr "işleç `%T' dönüş `%T' ye bildirimli" + +-#: cp/decl.c:6308 ++#: cp/decl.c:6377 + msgid "return type specified for `operator %T'" + msgstr "`operator %T' için dönüş türü belirtilmiş" + +-#: cp/decl.c:6452 ++#: cp/decl.c:6400 ++msgid "unnamed variable or field declared void" ++msgstr "adsız değişken ya da alan void olarak bildirilmiş" ++ ++#: cp/decl.c:6405 ++#, fuzzy, c-format ++msgid "variable or field `%E' declared void" ++msgstr "`%s' değişkeni ya da alanı void olarak bildirilmiş" ++ ++#: cp/decl.c:6408 ++msgid "variable or field declared void" ++msgstr "değişken ya da alan void olarak bildirilmiş" ++ ++#: cp/decl.c:6547 + msgid "destructors must be member functions" + msgstr "yıkıcılar üye işlevler olmalıdır" + +-#: cp/decl.c:6471 ++#: cp/decl.c:6566 + msgid "destructor `%T' must match class name `%T'" + msgstr "yıkıcı `%T' sınıf ismi `%T' ile eşleşmeli" + +-#: cp/decl.c:6534 ++#: cp/decl.c:6629 + msgid "declarator-id missing; using reserved word `%D'" + msgstr "bildirmci kimliği eksik; saklı yedek sözcük `%D' kullanılıyor" + +-#: cp/decl.c:6588 ++#: cp/decl.c:6683 + msgid "type `%T' is not derived from type `%T'" + msgstr "tür `%T' `%T' türünden türetilmemiş" + + #. Parse error puts this typespec where + #. a declarator should go. +-#: cp/decl.c:6651 ++#: cp/decl.c:6746 + msgid "`%T' specified as declarator-id" + msgstr "`%T' bildirici kimliği olarak belirtilmiş" + +-#: cp/decl.c:6653 ++#: cp/decl.c:6748 + msgid " perhaps you want `%T' for a constructor" + msgstr " ihtimal ki bir kurucu için `%T' istiyorsunuz" + +@@ -14223,300 +14283,292 @@ + #. decl-specifier like in + #. std::allocator alloc; + #. Handle that gracefully. +-#: cp/decl.c:6675 ++#: cp/decl.c:6770 + #, c-format + msgid "invalid use of template-name '%E' in a declarator" + msgstr "bir bildirim içinde şablon ismi `%E' kullanımı geçersiz" + +-#: cp/decl.c:6695 ++#: cp/decl.c:6790 cp/decl.c:8124 + msgid "declaration of `%D' as non-function" + msgstr "`%D' nin işlev olmayan olarak bildirimi" + +-#: cp/decl.c:6772 ++#: cp/decl.c:6867 + msgid "`bool' is now a keyword" + msgstr "bool' şimdi bir anahtar sözcüktür" + +-#: cp/decl.c:6774 ++#: cp/decl.c:6869 + msgid "extraneous `%T' ignored" + msgstr "fazlalık `%T' yoksayıldı" + +-#: cp/decl.c:6790 cp/decl.c:6834 ++#: cp/decl.c:6885 cp/decl.c:6929 + msgid "multiple declarations `%T' and `%T'" + msgstr "`%T' ve `%T' çoklu bildirimleri" + +-#: cp/decl.c:6803 ++#: cp/decl.c:6898 + msgid "ISO C++ does not support `long long'" + msgstr "ISO C++, `long long' desteklemiyor" + +-#: cp/decl.c:6907 cp/decl.c:6910 ++#: cp/decl.c:7002 cp/decl.c:7005 + #, c-format + msgid "ISO C++ forbids declaration of `%s' with no type" + msgstr "ISO C++ da türsüz `%s' bildirimine izin verilmez" + +-#: cp/decl.c:6941 ++#: cp/decl.c:7036 + #, c-format + msgid "short, signed or unsigned invalid for `%s'" + msgstr "`%s' için 'short', 'signed' veya 'unsigned' geçersiz" + +-#: cp/decl.c:6946 ++#: cp/decl.c:7041 + #, c-format + msgid "long and short specified together for `%s'" + msgstr "`%s' için 'long' ve 'short' birlikte belirtilmiş" + +-#: cp/decl.c:6957 ++#: cp/decl.c:7052 + #, c-format + msgid "signed and unsigned given together for `%s'" + msgstr "`%s' için 'signed' ve 'unsigned' birlikte verilmiş" + +-#: cp/decl.c:7066 ++#: cp/decl.c:7161 + msgid "qualifiers are not allowed on declaration of `operator %T'" + msgstr "`operator %T' bildiriminde niteleyicilere izin verilmez" + +-#: cp/decl.c:7088 ++#: cp/decl.c:7183 + msgid "member `%D' cannot be declared both virtual and static" + msgstr "üye `%D', hem virtual hem de static olarak bildirilemez" + +-#: cp/decl.c:7097 ++#: cp/decl.c:7192 + msgid "`%T::%D' is not a valid declarator" + msgstr "`%T::%D' geçerli bir bildirici değil" + +-#: cp/decl.c:7109 ++#: cp/decl.c:7204 + msgid "storage class specifiers invalid in parameter declarations" + msgstr "saklatım öbeği belirteçleri parametre bildirimi içinde geçersiz" + +-#: cp/decl.c:7113 ++#: cp/decl.c:7208 + msgid "typedef declaration invalid in parameter declaration" + msgstr "«typedef» bildirimi parametre bildirimi içinde geçersiz" + +-#: cp/decl.c:7126 ++#: cp/decl.c:7221 + msgid "virtual outside class declaration" + msgstr "sanal dış öbek bildirimi" + +-#: cp/decl.c:7185 ++#: cp/decl.c:7280 + #, c-format + msgid "storage class specified for %s `%s'" + msgstr "%s için saklatım öbeği `%s' belirtilmiş" + +-#: cp/decl.c:7220 ++#: cp/decl.c:7315 + #, c-format + msgid "top-level declaration of `%s' specifies `auto'" + msgstr "`%s' için tepe-seviye bildirimi `auto' belirtiyor" + +-#: cp/decl.c:7232 ++#: cp/decl.c:7327 + msgid "storage class specifiers invalid in friend function declarations" + msgstr "saklatım öbeği belirteçleri dost işlev bildirimleri içinde geçersiz" + +-#: cp/decl.c:7397 ++#: cp/decl.c:7492 + msgid "destructor cannot be static member function" + msgstr "yıkıcı, statik üye işlevi olamaz" + +-#: cp/decl.c:7400 ++#: cp/decl.c:7495 + #, c-format + msgid "destructors may not be `%s'" + msgstr "yıkıcılar `%s' olmayabilir" + +-#: cp/decl.c:7421 ++#: cp/decl.c:7516 + msgid "constructor cannot be static member function" + msgstr "kurucu, statik üye işlevi olamaz" + +-#: cp/decl.c:7424 ++#: cp/decl.c:7519 + msgid "constructors cannot be declared virtual" + msgstr "kurucular virtual olarak bildirilemez" + +-#: cp/decl.c:7429 ++#: cp/decl.c:7524 + #, c-format + msgid "constructors may not be `%s'" + msgstr "kurucular `%s' olmayabilir" + +-#: cp/decl.c:7439 ++#: cp/decl.c:7534 + msgid "return value type specifier for constructor ignored" + msgstr "kurucu için dönen değer tür belirteci yoksayıldı" + +-#: cp/decl.c:7458 ++#: cp/decl.c:7553 + #, c-format + msgid "can't initialize friend function `%s'" + msgstr "kardeş işlev `%s' ilklendirilemiyor" + + #. Cannot be both friend and virtual. +-#: cp/decl.c:7462 ++#: cp/decl.c:7557 + msgid "virtual functions cannot be friends" + msgstr "sanal işlevler kardeş işlev olamaz" + +-#: cp/decl.c:7467 ++#: cp/decl.c:7562 + msgid "friend declaration not in class definition" + msgstr "kardeş bildirimi sınıf bildiriminde değil" + +-#: cp/decl.c:7469 ++#: cp/decl.c:7564 + #, c-format + msgid "can't define friend function `%s' in a local class definition" + msgstr "yerel sınıf tanımı içinde kardeş işlev `%s' tanımlanamaz" + +-#: cp/decl.c:7490 ++#: cp/decl.c:7585 + msgid "destructors may not have parameters" + msgstr "yıkıcılar parametre almaz" + +-#: cp/decl.c:7510 cp/decl.c:7517 ++#: cp/decl.c:7605 cp/decl.c:7612 + msgid "cannot declare reference to `%#T'" + msgstr "`%#T' ye referans bildirilemez" + +-#: cp/decl.c:7511 ++#: cp/decl.c:7606 + msgid "cannot declare pointer to `%#T'" + msgstr "`%#T' türüne gösterici bildirilemez" + +-#: cp/decl.c:7516 ++#: cp/decl.c:7611 + msgid "cannot declare pointer to `%#T' member" + msgstr "`%#T' üyeye gösterici bildirilemez" + +-#: cp/decl.c:7655 ++#: cp/decl.c:7750 + msgid "extra qualification `%T::' on member `%s' ignored" + msgstr "fazladan niteleme `%T::' üye `%s' üzerinde yoksayıldı" + +-#: cp/decl.c:7671 ++#: cp/decl.c:7766 + msgid "cannot declare member function `%T::%s' within `%T'" + msgstr "üye işlev `%T::%s' `%T' içinde bildirilemez" + +-#: cp/decl.c:7686 ++#: cp/decl.c:7781 + msgid "cannot declare member `%T::%s' within `%T'" + msgstr "üye `%T::%s' `%T' içinde bildirilemez" + +-#: cp/decl.c:7766 ++#: cp/decl.c:7861 + msgid "data member may not have variably modified type `%T'" + msgstr "veri üyesi değişkene göre değişen `%T' türünde olamaz" + +-#: cp/decl.c:7768 ++#: cp/decl.c:7863 + msgid "parameter may not have variably modified type `%T'" + msgstr "parametre değişkene göre değişen `%T' türünde olamaz" + + #. [dcl.fct.spec] The explicit specifier shall only be used in + #. declarations of constructors within a class definition. +-#: cp/decl.c:7776 ++#: cp/decl.c:7871 + msgid "only declarations of constructors can be `explicit'" + msgstr "sadece kurucuların bildirimleri `explicit' olabilir" + +-#: cp/decl.c:7784 ++#: cp/decl.c:7879 + #, c-format + msgid "non-member `%s' cannot be declared `mutable'" + msgstr "üye olmayan `%s', `mutable' olarak bildirilemez" + +-#: cp/decl.c:7789 ++#: cp/decl.c:7884 + #, c-format + msgid "non-object member `%s' cannot be declared `mutable'" + msgstr "nesne olmayan `%s' `mutable' olarak bildirilemez" + +-#: cp/decl.c:7795 ++#: cp/decl.c:7890 + #, c-format + msgid "function `%s' cannot be declared `mutable'" + msgstr "işlev `%s' `mutable' olarak bildirilemez" + +-#: cp/decl.c:7800 ++#: cp/decl.c:7895 + #, c-format + msgid "static `%s' cannot be declared `mutable'" + msgstr "static `%s' `mutable' olarak bildirilemez" + +-#: cp/decl.c:7805 ++#: cp/decl.c:7900 + #, c-format + msgid "const `%s' cannot be declared `mutable'" + msgstr "const `%s' `mutable' olarak bildirilemez" + +-#: cp/decl.c:7818 ++#: cp/decl.c:7913 + msgid "template-id `%D' used as a declarator" + msgstr "şablon kimliği `%D' bir bildirici olarak kullanılmış" + +-#: cp/decl.c:7839 ++#: cp/decl.c:7934 + msgid "ISO C++ forbids nested type `%D' with same name as enclosing class" + msgstr "ISO C++ zarflayan sınıf ile aynı isimde yuvalanmış tür `%D' ye izin vermez" + +-#: cp/decl.c:7847 ++#: cp/decl.c:7942 + msgid "%Jtypedef name may not be a nested-name-specifier" + msgstr "%J typedef ismi sınıf nitelemeli olmaz" + +-#: cp/decl.c:7893 ++#: cp/decl.c:7988 + msgid "%Jinvalid type qualifier for non-member function type" + msgstr "%J üyesiz işlev türleri için tür niteleyici geçersiz" + +-#: cp/decl.c:7956 ++#: cp/decl.c:8051 + msgid "type qualifiers specified for friend class declaration" + msgstr "kardeş sınıf bildirimi için tür niteleyiciler belirtilmiş" + +-#: cp/decl.c:7961 ++#: cp/decl.c:8056 + msgid "`inline' specified for friend class declaration" + msgstr "hardeş sınıf bildirimi için `inline' belirtilmiş" + +-#: cp/decl.c:7969 ++#: cp/decl.c:8064 + msgid "template parameters cannot be friends" + msgstr "şablon parametreleri kardeşler olamaz" + +-#: cp/decl.c:7971 ++#: cp/decl.c:8066 + msgid "friend declaration requires class-key, i.e. `friend class %T::%D'" + msgstr "friend bildirimi sınıf anahtarı gerektirir, `friend class %T::%D' gibi" + +-#: cp/decl.c:7975 ++#: cp/decl.c:8070 + msgid "friend declaration requires class-key, i.e. `friend %#T'" + msgstr "kardeş bildirimi `friend %#T' gibi bir sınıf anahtarı gerektirir" + +-#: cp/decl.c:7988 ++#: cp/decl.c:8083 + msgid "trying to make class `%T' a friend of global scope" + msgstr "sınıf `%T' genel bağlamın kardeşi yapılmaya çalışılıyor" + +-#: cp/decl.c:7999 ++#: cp/decl.c:8094 + msgid "invalid qualifiers on non-member function type" + msgstr "üyesiz işlev türünde geçersiz niteleyici" + +-#: cp/decl.c:8018 ++#: cp/decl.c:8113 + msgid "abstract declarator `%T' used as declaration" + msgstr "mutlak bildirimci `%T' bildirim olarak kullanılmış" + +-#: cp/decl.c:8030 +-msgid "unnamed variable or field declared void" +-msgstr "adsız değişken ya da alan void olarak bildirilmiş" +- +-#: cp/decl.c:8039 +-msgid "variable or field declared void" +-msgstr "değişken ya da alan void olarak bildirilmiş" +- +-#: cp/decl.c:8049 ++#: cp/decl.c:8139 + msgid "cannot use `::' in parameter declaration" + msgstr "parametre bildiriminde `::' kullanılamaz" + + #. Something like struct S { int N::j; }; +-#: cp/decl.c:8094 ++#: cp/decl.c:8184 + msgid "invalid use of `::'" + msgstr "`::' kullanımı geçersiz" + +-#: cp/decl.c:8106 ++#: cp/decl.c:8196 + msgid "function `%D' cannot be declared friend" + msgstr "işlev `%D' kardeş olarak bildirilemez" + +-#: cp/decl.c:8118 ++#: cp/decl.c:8208 + msgid "can't make `%D' into a method -- not in a class" + msgstr "bir yöntem içinde `%D' yapılamaz -- sınıf içinde değil" + +-#: cp/decl.c:8127 ++#: cp/decl.c:8217 + msgid "function `%D' declared virtual inside a union" + msgstr "işlev `%D' bir birleşik yapı içinde virtual olarak bildirilmiş" + +-#: cp/decl.c:8136 ++#: cp/decl.c:8226 + msgid "`%D' cannot be declared virtual, since it is always static" + msgstr "`%D' daima static olduğundan sanal bildirilemez" + +-#: cp/decl.c:8215 ++#: cp/decl.c:8305 + msgid "field `%D' has incomplete type" + msgstr "`%D' alanı içi boş türde" + +-#: cp/decl.c:8217 ++#: cp/decl.c:8307 + msgid "name `%T' has incomplete type" + msgstr "isim `%T' içi boş türde" + +-#: cp/decl.c:8226 ++#: cp/decl.c:8316 + msgid " in instantiation of template `%T'" + msgstr " şablon `%T' gerçeklemesinde" + +-#: cp/decl.c:8236 ++#: cp/decl.c:8326 + #, c-format + msgid "`%s' is neither function nor member function; cannot be declared friend" + msgstr "`%s' ne işlev ne de üye işlev; kardeş olarak bildirilemez" + +-#: cp/decl.c:8247 ++#: cp/decl.c:8337 + msgid "member functions are implicitly friends of their class" + msgstr "üye işlevler sınıflarının örtük kardeşleridir" + +@@ -14532,91 +14584,91 @@ + #. the rest of the compiler does not correctly + #. handle the initialization unless the member is + #. static so we make it static below. +-#: cp/decl.c:8287 ++#: cp/decl.c:8377 + msgid "ISO C++ forbids initialization of member `%D'" + msgstr "ISO C++ üye `%D' ilklendirmesine izin vermez" + +-#: cp/decl.c:8289 ++#: cp/decl.c:8379 + msgid "making `%D' static" + msgstr "`%D' static yapılıyor" + +-#: cp/decl.c:8345 ++#: cp/decl.c:8435 + #, c-format + msgid "storage class `auto' invalid for function `%s'" + msgstr "saklama sınıfı `auto' `%s' işlevi için geçersiz" + +-#: cp/decl.c:8347 ++#: cp/decl.c:8437 + #, c-format + msgid "storage class `register' invalid for function `%s'" + msgstr "saklama sınıfı `register' `%s' işlevi için geçersiz" + +-#: cp/decl.c:8349 ++#: cp/decl.c:8439 + #, c-format + msgid "storage class `__thread' invalid for function `%s'" + msgstr "saklama sınıfı `__thread' `%s' işlevi için geçersiz" + +-#: cp/decl.c:8360 ++#: cp/decl.c:8450 + #, c-format + msgid "storage class `static' invalid for function `%s' declared out of global scope" + msgstr "saklama sınıfı `static' genel kapsam dışı bildirilmiş işlev `%s' için geçersiz" + +-#: cp/decl.c:8362 ++#: cp/decl.c:8452 + #, c-format + msgid "storage class `inline' invalid for function `%s' declared out of global scope" + msgstr "`inline' saklama sınıfı, genel kapsam dışında bildirilen `%s' işlevi için geçersiz" + +-#: cp/decl.c:8369 ++#: cp/decl.c:8459 + #, c-format + msgid "virtual non-class function `%s'" + msgstr "sanal sınıf olmayan işlev `%s'" + +-#: cp/decl.c:8400 ++#: cp/decl.c:8490 + msgid "cannot declare member function `%D' to have static linkage" + msgstr "üye işlev `%D' static ilintilemeli olarak bildirilemez" + + #. FIXME need arm citation +-#: cp/decl.c:8406 ++#: cp/decl.c:8496 + msgid "cannot declare static function inside another function" + msgstr "statik işlev diğer bir işlevin içinde bildirilemez" + +-#: cp/decl.c:8434 ++#: cp/decl.c:8524 + msgid "`static' may not be used when defining (as opposed to declaring) a static data member" + msgstr "`static' bir statik veri üyesini tanımlarken (bildirime zıt olarak) kullanılamayabilir" + +-#: cp/decl.c:8440 ++#: cp/decl.c:8530 + msgid "static member `%D' declared `register'" + msgstr "statik üye `%D' `register' olarak bildirilmiş" + +-#: cp/decl.c:8445 ++#: cp/decl.c:8535 + msgid "cannot explicitly declare member `%#D' to have extern linkage" + msgstr "üye `%#D' extern ilintilemeye sahip olacak şekilde doğrudan bildirilemez" + +-#: cp/decl.c:8585 ++#: cp/decl.c:8675 + msgid "default argument for `%#D' has type `%T'" + msgstr "`%#D' için öntanımlı argüman `%T' türünde" + +-#: cp/decl.c:8588 ++#: cp/decl.c:8678 + msgid "default argument for parameter of type `%T' has type `%T'" + msgstr "`%T' türündeki parametrenin öntanımlı argümanı `%T' türünde" + +-#: cp/decl.c:8605 ++#: cp/decl.c:8695 + msgid "default argument `%E' uses local variable `%D'" + msgstr "öntanımlı argüman `%E' yerel değişken `%D' yi kullanıyor" + +-#: cp/decl.c:8649 ++#: cp/decl.c:8739 + #, c-format + msgid "invalid string constant `%E'" + msgstr "geçersiz dizge sabit `%E'" + +-#: cp/decl.c:8651 ++#: cp/decl.c:8741 + msgid "invalid integer constant in parameter list, did you forget to give parameter name?" + msgstr "parametre listesindeki tamsayı sabit geçersiz, parametre ismi vermeyi unuttunuz mu?" + +-#: cp/decl.c:8689 ++#: cp/decl.c:8779 + msgid "parameter `%D' invalidly declared method type" + msgstr "parametre `%D' geçersiz olarak yöntem türünde bildirilmiş" + +-#: cp/decl.c:8713 ++#: cp/decl.c:8803 + msgid "parameter `%D' includes %s to array of unknown bound `%T'" + msgstr "parametre `%D' bilinmeyen `%T' sınırlı diziye %s içeriyor" + +@@ -14635,93 +14687,93 @@ + #. or implicitly defined), there's no need to worry about their + #. existence. Theoretically, they should never even be + #. instantiated, but that's hard to forestall. +-#: cp/decl.c:8872 ++#: cp/decl.c:8962 + msgid "invalid constructor; you probably meant `%T (const %T&)'" + msgstr "kurucu geçersiz; `%T (const %T&)' anlamında kullandınız galiba" + +-#: cp/decl.c:9000 ++#: cp/decl.c:9090 + msgid "`%D' must be a nonstatic member function" + msgstr "`%D' static olmayan bir üye işlev olmalıdır" + +-#: cp/decl.c:9006 ++#: cp/decl.c:9096 + msgid "`%D' must be either a non-static member function or a non-member function" + msgstr "`%D' ya bir statik olmayan işlev ya da üye olmayan işlev olmalıdır" + +-#: cp/decl.c:9023 ++#: cp/decl.c:9113 + msgid "`%D' must have an argument of class or enumerated type" + msgstr "`%D' bir sınıf argümanına sahip olmalı ya da enum türünde olmalı" + +-#: cp/decl.c:9058 ++#: cp/decl.c:9148 + #, c-format + msgid "conversion to %s%s will never use a type conversion operator" + msgstr "%s%s e dönüşüm asla bir tür dönüşüm işleci kullanmayacak" + + #. 13.4.0.3 +-#: cp/decl.c:9065 ++#: cp/decl.c:9155 + msgid "ISO C++ prohibits overloading operator ?:" + msgstr "ISO C++ işleci ?: nın aşırı yüklenmesini yasaklar" + +-#: cp/decl.c:9115 ++#: cp/decl.c:9205 + msgid "postfix `%D' must take `int' as its argument" + msgstr "sonek `%D' argüman olarak `int' almalı" + +-#: cp/decl.c:9119 ++#: cp/decl.c:9209 + msgid "postfix `%D' must take `int' as its second argument" + msgstr "sonek `%D' ikinci argümanı olarak `int' almalı" + +-#: cp/decl.c:9126 ++#: cp/decl.c:9216 + msgid "`%D' must take either zero or one argument" + msgstr "`%D' ya hiç argüman almamalı ya da bir argüman almalı" + +-#: cp/decl.c:9128 ++#: cp/decl.c:9218 + msgid "`%D' must take either one or two arguments" + msgstr "`%D' ya bir ya da iki argüman almalı" + +-#: cp/decl.c:9149 ++#: cp/decl.c:9239 + msgid "prefix `%D' should return `%T'" + msgstr "önek `%D' `%T' döndürmeli" + +-#: cp/decl.c:9155 ++#: cp/decl.c:9245 + msgid "postfix `%D' should return `%T'" + msgstr "sonek `%D' `%T' ile dönmeli" + +-#: cp/decl.c:9164 ++#: cp/decl.c:9254 + msgid "`%D' must take `void'" + msgstr "`%D' `void' almalı" + +-#: cp/decl.c:9166 cp/decl.c:9174 ++#: cp/decl.c:9256 cp/decl.c:9264 + msgid "`%D' must take exactly one argument" + msgstr "`%D' kesinlikle bir argüman almalı" + +-#: cp/decl.c:9176 ++#: cp/decl.c:9266 + msgid "`%D' must take exactly two arguments" + msgstr "`%D' kesinlikle iki argüman almalı" + +-#: cp/decl.c:9184 ++#: cp/decl.c:9274 + msgid "user-defined `%D' always evaluates both arguments" + msgstr "kullanıcı tanımlı `%D' daima her iki argümanıyla birlikte değerlendirilir" + +-#: cp/decl.c:9198 ++#: cp/decl.c:9288 + msgid "`%D' should return by value" + msgstr "`%D' değeriyle döndürülmeli" + +-#: cp/decl.c:9210 cp/decl.c:9213 ++#: cp/decl.c:9300 cp/decl.c:9303 + msgid "`%D' cannot have default arguments" + msgstr "`%D' öntanımlı argümanlara sahip olamaz" + +-#: cp/decl.c:9273 ++#: cp/decl.c:9363 + msgid "using typedef-name `%D' after `%s'" + msgstr "typedef-ismi `%D' `%s' den sonra kullanılıyor" + +-#: cp/decl.c:9279 ++#: cp/decl.c:9369 + msgid "using template type parameter `%T' after `%s'" + msgstr "`%s' den sonra şablon tür parametresi `%T' kullanımı" + +-#: cp/decl.c:9287 ++#: cp/decl.c:9377 + msgid "`%T' referred to as `%s'" + msgstr "`%T' `%s' olarak ilişkilendirilmiş" + +-#: cp/decl.c:9293 ++#: cp/decl.c:9383 + msgid "`%T' referred to as enum" + msgstr "`%T' enum olarak ilişkilendirilmiş" + +@@ -14732,47 +14784,47 @@ + #. void f(class C); // No template header here + #. + #. then the required template argument is missing. +-#: cp/decl.c:9308 ++#: cp/decl.c:9398 + msgid "template argument required for `%s %T'" + msgstr "şablon argüman `%s %T' için gereklidir" + +-#: cp/decl.c:9453 ++#: cp/decl.c:9543 + msgid "use of enum `%#D' without previous declaration" + msgstr "önceden bildirilmeksizin enum `%#D' kullanımı" + +-#: cp/decl.c:9471 ++#: cp/decl.c:9561 + msgid "redeclaration of `%T' as a non-template" + msgstr "bir şablonsuz olarak `%T' türünde yeniden bildirimi" + +-#: cp/decl.c:9517 ++#: cp/decl.c:9607 + msgid "derived union `%T' invalid" + msgstr "türetilmiş union `%T' geçersiz" + +-#: cp/decl.c:9570 ++#: cp/decl.c:9660 + msgid "base type `%T' fails to be a struct or class type" + msgstr "taban tür `%T' bir yapı veya sınıf türü olarak hatalı" + +-#: cp/decl.c:9578 ++#: cp/decl.c:9668 + msgid "recursive type `%T' undefined" + msgstr "özyinelemeli tür `%T' tanımsız" + +-#: cp/decl.c:9580 ++#: cp/decl.c:9670 + msgid "duplicate base type `%T' invalid" + msgstr "yinelenmiş taban türü `%T' geçersiz" + +-#: cp/decl.c:9658 ++#: cp/decl.c:9748 + msgid "Java class '%T' cannot have multiple bases" + msgstr "'%T' Java sınıfı çoklu tabanlara sahip olamaz" + +-#: cp/decl.c:9660 ++#: cp/decl.c:9750 + msgid "Java class '%T' cannot have virtual bases" + msgstr "Jaban sınıfı `%T' sanal tabanlara sahip olamaz" + +-#: cp/decl.c:9700 ++#: cp/decl.c:9790 + msgid "multiple definition of `%#T'" + msgstr "`%#T' çoklu tanımları" + +-#: cp/decl.c:9701 ++#: cp/decl.c:9791 + msgid "%Jprevious definition here" + msgstr "%J önceden burada tanımlı" + +@@ -14780,47 +14832,47 @@ + #. + #. IF no integral type can represent all the enumerator values, the + #. enumeration is ill-formed. +-#: cp/decl.c:9836 ++#: cp/decl.c:9926 + msgid "no integral type can represent all of the enumerator values for `%T'" + msgstr "`%T' için tüm sembolik sabit değerlerini temsil edebilen bir tümleyen tür yok" + +-#: cp/decl.c:9926 ++#: cp/decl.c:10023 + msgid "enumerator value for `%D' not integer constant" + msgstr "`%D' için sembolik sabitin değeri tamsayı sabit değil" + +-#: cp/decl.c:9946 ++#: cp/decl.c:10043 + msgid "overflow in enumeration values at `%D'" + msgstr "`%D' de sembolik sabit listesi değerlerinde taşma" + +-#: cp/decl.c:10015 ++#: cp/decl.c:10112 + msgid "return type `%#T' is incomplete" + msgstr "dönüş türü `%#T' bir içi boş tür" + +-#: cp/decl.c:10133 ++#: cp/decl.c:10230 + msgid "return type for `main' changed to `int'" + msgstr "`main' için dönen tür `int' olarak değişti" + +-#: cp/decl.c:10162 ++#: cp/decl.c:10259 + msgid "`%D' implicitly declared before its definition" + msgstr "`%D' tanımından önce dolaylı olarak bildirilmiş" + +-#: cp/decl.c:10184 cp/typeck.c:6071 ++#: cp/decl.c:10281 cp/typeck.c:6092 + msgid "`operator=' should return a reference to `*this'" + msgstr "`operator=' `*this'e bir referans döndürmeli" + +-#: cp/decl.c:10453 ++#: cp/decl.c:10550 + msgid "parameter `%D' declared void" + msgstr "parametre `%D' void olarak bildirilmiş" + +-#: cp/decl.c:10919 ++#: cp/decl.c:11016 + msgid "invalid member function declaration" + msgstr "geçersiz üye işlev bildirimi" + +-#: cp/decl.c:10936 ++#: cp/decl.c:11033 + msgid "`%D' is already defined in class `%T'" + msgstr "`%D' zaten sınıf `%T' içinde tanımlı" + +-#: cp/decl.c:11149 ++#: cp/decl.c:11246 + msgid "static member function `%#D' declared with type qualifiers" + msgstr "statik üye işlev `%#D' tür niteleyicilerle bildirilmiş" + +@@ -14868,7 +14920,7 @@ + msgid "invalid use of `virtual' in template declaration of `%#D'" + msgstr "`%#D' şablon bildiriminde geçersiz `virtual' kullanımı" + +-#: cp/decl2.c:541 cp/pt.c:2834 ++#: cp/decl2.c:541 cp/pt.c:2878 + msgid "template declaration of `%#D'" + msgstr "`%#D' şablon bildirimi" + +@@ -14940,40 +14992,40 @@ + msgid "anonymous struct not inside named type" + msgstr "anonim yapı isimli türün içinde değil" + +-#: cp/decl2.c:1218 ++#: cp/decl2.c:1224 + msgid "namespace-scope anonymous aggregates must be static" + msgstr "isim alanı bağlamındaki anonim kümeler static olmalıdır" + +-#: cp/decl2.c:1225 ++#: cp/decl2.c:1231 + msgid "anonymous union with no members" + msgstr "üyesiz anonim birleşik yapı" + +-#: cp/decl2.c:1259 ++#: cp/decl2.c:1265 + msgid "`operator new' must return type `%T'" + msgstr "`operator new' `%T' türünde dönmeli" + +-#: cp/decl2.c:1267 ++#: cp/decl2.c:1273 + msgid "`operator new' takes type `size_t' (`%T') as first parameter" + msgstr "`operator new' ilk parametreyi `size_t' (`%T') türünde alır" + +-#: cp/decl2.c:1293 ++#: cp/decl2.c:1299 + msgid "`operator delete' must return type `%T'" + msgstr "`operator delete' `%T' türünde dönmeli" + +-#: cp/decl2.c:1301 ++#: cp/decl2.c:1307 + msgid "`operator delete' takes type `%T' as first parameter" + msgstr "`operator delete' ilk parametreyi `%T'` türünde alır" + +-#: cp/decl2.c:2810 ++#: cp/decl2.c:2816 + msgid "inline function `%D' used but never defined" + msgstr "özümlenen işlev `%D' tanımlanmadan kullanılmış" + +-#: cp/decl2.c:2956 ++#: cp/decl2.c:2962 + msgid "default argument missing for parameter %P of `%+#D'" + msgstr "parametre %P (`%+#D' nin) için öntanımlı argüman eksik" + + #. damn ICE suppression +-#: cp/error.c:2387 ++#: cp/error.c:2385 + #, c-format + msgid "unexpected letter `%c' in locate_error\n" + msgstr "locate_error içinde umulmayan `%c' harfi\n" +@@ -15000,7 +15052,7 @@ + msgid "throwing NULL, which has integral, not pointer type" + msgstr "tümleyen, gösterici olmayan NULL yakalanıyor" + +-#: cp/except.c:598 cp/init.c:2038 ++#: cp/except.c:598 cp/init.c:2047 + msgid "`%D' should never be overloaded" + msgstr "`%D' asla aşırı yüklü olmamalı" + +@@ -15078,7 +15130,7 @@ + msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning" + msgstr "(eğer istediğiniz bu değilse, işlev şablonunun zaten bildirilmiş olduğundan emin olduktan sonra burada işlev isminden sonra bir <> ekleyin)-Wno-non-template-friend bu uyarıyı iptal eder" + +-#: cp/g++spec.c:229 java/jvspec.c:415 ++#: cp/g++spec.c:232 java/jvspec.c:415 + #, c-format + msgid "argument to `%s' missing\n" + msgstr "`%s' için argüman eksik\n" +@@ -15203,59 +15255,59 @@ + msgid "incomplete type `%T' does not have member `%D'" + msgstr "içi boş tür `%T' üye `%D' yi içermiyor" + +-#: cp/init.c:1459 ++#: cp/init.c:1460 + msgid "`%D' is not a member of type `%T'" + msgstr "`%D' `%T' türünde bir üye değil" + +-#: cp/init.c:1478 ++#: cp/init.c:1487 + msgid "invalid pointer to bit-field `%D'" + msgstr "`%D' bit alanı göstericisi geçersiz" + +-#: cp/init.c:1580 ++#: cp/init.c:1589 + msgid "invalid use of non-static member function `%D'" + msgstr "static olmayan üye işlev `%D' kullanımı geçersiz" + +-#: cp/init.c:1586 cp/semantics.c:1236 ++#: cp/init.c:1595 cp/semantics.c:1236 + msgid "invalid use of non-static data member `%D'" + msgstr "static olmayan veri üyesi `%D' kullanımı geçersiz" + +-#: cp/init.c:1725 ++#: cp/init.c:1734 + msgid "new of array type fails to specify size" + msgstr "dizi türünde new boyut belirtmede başarısız" + +-#: cp/init.c:1736 ++#: cp/init.c:1745 + msgid "size in array new must have integral type" + msgstr "array new içindeki boyut bütünleyici türde olmalı" + +-#: cp/init.c:1742 ++#: cp/init.c:1751 + msgid "zero size array reserves no space" + msgstr "sıfır boyutlu dizi için yer ayrılmaz" + +-#: cp/init.c:1809 ++#: cp/init.c:1818 + msgid "new cannot be applied to a reference type" + msgstr "new bir referans türe uygulanamaz" + +-#: cp/init.c:1815 ++#: cp/init.c:1824 + msgid "new cannot be applied to a function type" + msgstr "new bir işlev türe uygulanamaz" + +-#: cp/init.c:1861 ++#: cp/init.c:1870 + msgid "call to Java constructor, while `jclass' undefined" + msgstr "`jclass' tanımlanmamışken Java kurucusuna çağrı" + +-#: cp/init.c:1877 ++#: cp/init.c:1886 + msgid "can't find class$" + msgstr "class$ bulunamıyor" + +-#: cp/init.c:2004 ++#: cp/init.c:2013 + msgid "invalid type `void' for new" + msgstr "new için `void' türü geçersiz" + +-#: cp/init.c:2014 ++#: cp/init.c:2023 + msgid "uninitialized const in `new' of `%#T'" + msgstr "`%#T' nin `new' u içinde ilklendirilmemiş sabit" + +-#: cp/init.c:2033 ++#: cp/init.c:2042 + #, c-format + msgid "call to Java constructor with `%s' undefined" + msgstr "`%s' li Java kurucusuna çağrı tanımsız" +@@ -15263,39 +15315,39 @@ + #. See PR 15967. This should never happen (and it is + #. fixed correctly in mainline), but on the release branch + #. we prefer this less-intrusive approacch. +-#: cp/init.c:2077 ++#: cp/init.c:2086 + msgid "no suitable or ambiguous `%D' found in class `%T'" + msgstr "kullanışsız ya da belirsiz `%D' `%T' sınıfında bulundu" + +-#: cp/init.c:2083 ++#: cp/init.c:2092 + msgid "request for member `%D' is ambiguous" + msgstr "üye `%D' için istek belirsiz" + +-#: cp/init.c:2203 ++#: cp/init.c:2212 + msgid "ISO C++ forbids initialization in array new" + msgstr "ISO C++ da array new içinde ilklendirmeye izin verilmez" + +-#: cp/init.c:2677 ++#: cp/init.c:2686 + msgid "initializer ends prematurely" + msgstr "ilklendirici erken sonlanıyor" + +-#: cp/init.c:2734 ++#: cp/init.c:2743 + msgid "cannot initialize multi-dimensional array with initializer" + msgstr "çok boyutlu diziler ilklendiricilerle ilklendirilemez" + +-#: cp/init.c:2895 ++#: cp/init.c:2904 + msgid "possible problem detected in invocation of delete operator:" + msgstr "silme işlecinin çağrısında bir sorun saptandı:" + +-#: cp/init.c:2898 ++#: cp/init.c:2907 + msgid "neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined." + msgstr "Sınıf tanımlanırken bilfdirilmiş olsa bile, ne yıkıcı ne de sınıda özel silme işleci çağrılır." + +-#: cp/init.c:2919 ++#: cp/init.c:2928 + msgid "unknown array size in delete" + msgstr "delete içindeki dizi boyutu bilinmiyor" + +-#: cp/init.c:3184 ++#: cp/init.c:3193 + msgid "type to vector delete is neither pointer or array type" + msgstr "vektör silme işlemi için tür ne gösterici ne de dizi" + +@@ -15360,15 +15412,15 @@ + msgid "(if you use `-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)" + msgstr "(`-fpermissive' kullanırsanız, G++ kodunuzu kabul edecek ama artık bildirilmemiş isim kullanılmasına izin verilmiyor)" + +-#: cp/mangle.c:2037 ++#: cp/mangle.c:2050 + msgid "call_expr cannot be mangled due to a defect in the C++ ABI" + msgstr "çağrı ifadesi C++ ABI'deki bir bozukluktan dolayı anlamlandırılamıyor" + +-#: cp/mangle.c:2090 ++#: cp/mangle.c:2103 + msgid "omitted middle operand to `?:' operand cannot be mangled" + msgstr "`?:' için ortadaki terim olmadığından yorumlanamadı" + +-#: cp/mangle.c:2389 ++#: cp/mangle.c:2402 + msgid "the mangled name of `%D' will change in a future version of GCC" + msgstr "`D' nin anlamlandırılmış ismi GCC'nin gelecek sürümünde değişecek" + +@@ -15509,7 +15561,7 @@ + + #. It's a nested name with template parameter dependent scope. + #. This can only be using-declaration for class member. +-#: cp/name-lookup.c:2126 cp/name-lookup.c:2140 cp/name-lookup.c:3380 ++#: cp/name-lookup.c:2126 cp/name-lookup.c:2140 cp/name-lookup.c:3362 + msgid "`%T' is not a namespace" + msgstr "`%T' bir isim alanı değil" + +@@ -15544,86 +15596,86 @@ + msgid "using-declaration cannot name destructor" + msgstr "using bildirimi yıkıcıyı isimlendiremez" + +-#: cp/name-lookup.c:3005 ++#: cp/name-lookup.c:2984 + msgid "declaration of `%D' not in a namespace surrounding `%D'" + msgstr "`%D' bildirimi `%D' yi kuşatan isim alanının içinde değil" + +-#: cp/name-lookup.c:3045 ++#: cp/name-lookup.c:3024 + msgid "`%D' should have been declared inside `%D'" + msgstr "`%D' zaten `%D' içinde bildirilmişti" + +-#: cp/name-lookup.c:3109 ++#: cp/name-lookup.c:3088 + msgid "namespace alias `%D' not allowed here, assuming `%D'" + msgstr "burada isim alanı rumuzu `%D' kullanılamaz, `%D' varsayılıyor" + + #. The parser did not find it, so it's not there. +-#: cp/name-lookup.c:3224 ++#: cp/name-lookup.c:3203 + msgid "unknown namespace `%D'" + msgstr "bilinmeyen isim alanı `%D'" + +-#: cp/name-lookup.c:3374 ++#: cp/name-lookup.c:3356 + msgid "namespace `%T' undeclared" + msgstr "isim alanı `%T' bildirimsiz" + +-#: cp/name-lookup.c:3407 ++#: cp/name-lookup.c:3389 + msgid "strong using only meaningful at namespace scope" + msgstr "kesin kullanım sadece isimalanı kapsamında anlamlıdır" + +-#: cp/name-lookup.c:3414 ++#: cp/name-lookup.c:3396 + msgid "`%D' attribute directive ignored" + msgstr "`%D' özellik yönergesi yoksayıldı" + +-#: cp/name-lookup.c:3547 ++#: cp/name-lookup.c:3529 + msgid "use of `%D' is ambiguous" + msgstr "`%D' kullanımı belirsiz" + +-#: cp/name-lookup.c:3548 ++#: cp/name-lookup.c:3530 + msgid " first declared as `%#D' here" + msgstr " ilk defa burada `%#D' olarak bildirilmiş" + +-#: cp/name-lookup.c:3551 ++#: cp/name-lookup.c:3533 + msgid " also declared as `%#D' here" + msgstr " ayrıca burada da `%#D' olarak bildirilmiş" + +-#: cp/name-lookup.c:3566 ++#: cp/name-lookup.c:3548 + msgid "`%D' denotes an ambiguous type" + msgstr "`%D' bir belirsiz tür gösteriyor" + +-#: cp/name-lookup.c:3567 ++#: cp/name-lookup.c:3549 + msgid "%J first type here" + msgstr "%J ilk tür burada" + +-#: cp/name-lookup.c:3568 ++#: cp/name-lookup.c:3550 + msgid "%J other type here" + msgstr "%J diğer tür burada" + + #. This happens for A::B where B is a template, and there are no + #. template arguments. +-#: cp/name-lookup.c:3633 cp/typeck.c:1792 ++#: cp/name-lookup.c:3615 cp/typeck.c:1792 + msgid "invalid use of `%D'" + msgstr "`%D' kullanımı geçersiz" + +-#: cp/name-lookup.c:3674 ++#: cp/name-lookup.c:3656 + msgid "`%D::%D' is not a template" + msgstr "`%D::%D' bir şablon değil" + +-#: cp/name-lookup.c:3691 ++#: cp/name-lookup.c:3673 + msgid "`%D' undeclared in namespace `%D'" + msgstr "`%D' isim alanı `%D' içinde bildirimsiz" + +-#: cp/name-lookup.c:4153 ++#: cp/name-lookup.c:4135 + msgid "`%D' is not a function," + msgstr "`%D' bir işlev değil," + +-#: cp/name-lookup.c:4154 ++#: cp/name-lookup.c:4136 + msgid " conflict with `%D'" + msgstr " `%D' ile çelişiyor" + +-#: cp/name-lookup.c:4911 ++#: cp/name-lookup.c:4893 + msgid "XXX entering pop_everything ()\n" + msgstr "XXX, pop_everything () işlevine giriyor\n" + +-#: cp/name-lookup.c:4920 ++#: cp/name-lookup.c:4902 + msgid "XXX leaving pop_everything ()\n" + msgstr "XXX, pop_everything () işlevini bırakıyor\n" + +@@ -15635,7 +15687,7 @@ + msgid "`%D::%D' has not been declared" + msgstr "`%D::%D' bildirilmemişti" + +-#: cp/parser.c:1809 cp/semantics.c:2308 ++#: cp/parser.c:1809 cp/semantics.c:2305 + msgid "`::%D' has not been declared" + msgstr "`::%D' bildirilmemişti" + +@@ -15659,7 +15711,7 @@ + msgid "new types may not be defined in a return type" + msgstr "new türleri bir dönüş türünde tanımlanamaz" + +-#: cp/parser.c:1888 cp/pt.c:4196 ++#: cp/parser.c:1888 cp/pt.c:4238 + msgid "`%T' is not a template" + msgstr "`%T' bir şablon değil" + +@@ -15707,179 +15759,179 @@ + msgid "typedef-name `%D' used as destructor declarator" + msgstr "typedef ismi `%D' yıkıcı bildiricisi olarak kullanılmış" + +-#: cp/parser.c:3638 ++#: cp/parser.c:3648 + msgid "ISO C++ forbids compound-literals" + msgstr "ISO C++ da birleşik sabitlere izin verilmez" + +-#: cp/parser.c:4461 ++#: cp/parser.c:4498 + msgid "array bound forbidden after parenthesized type-id" + msgstr "parantezli tür kimliğinden sonra dizi sınırı yasak" + +-#: cp/parser.c:4462 ++#: cp/parser.c:4499 + msgid "try removing the parentheses around the type-id" + msgstr "tür kimliğini sarmalayan parantezleri kaldırmayı deneyin" + +-#: cp/parser.c:4624 ++#: cp/parser.c:4661 + msgid "expression in new-declarator must have integral or enumeration type" + msgstr "new bildirimli ifade bütünleyici ya da numaralama türünde olmalı" + +-#: cp/parser.c:4805 ++#: cp/parser.c:4842 + msgid "use of old-style cast" + msgstr "eski tarz tür dönüşümü" + +-#: cp/parser.c:5550 ++#: cp/parser.c:5587 + #, c-format + msgid "case label `%E' not within a switch statement" + msgstr "case etiketi `%E' bir switch deyimi içinde değil" + +-#: cp/parser.c:6092 ++#: cp/parser.c:6130 + msgid "ISO C++ forbids computed gotos" + msgstr "ISO C++ hesaplanmış goto'lara izin vermez" + +-#: cp/parser.c:6212 ++#: cp/parser.c:6250 + msgid "extra `;'" + msgstr "`;' fazla" + +-#: cp/parser.c:6507 ++#: cp/parser.c:6545 + msgid "mixing declarations and function-definitions is forbidden" + msgstr "karışık bildirimler ve işlev tanımları yasaktır" + +-#: cp/parser.c:6645 ++#: cp/parser.c:6683 + msgid "duplicate `friend'" + msgstr "`friend' yinelenmiş" + +-#: cp/parser.c:6794 ++#: cp/parser.c:6832 + msgid "class definition may not be declared a friend" + msgstr "sınıf tanımı kardeş olarak bildirilemez" + +-#: cp/parser.c:7109 ++#: cp/parser.c:7147 + msgid "only constructors take base initializers" + msgstr "temel ilklendiricileri sadece kurucular alır" + +-#: cp/parser.c:7160 ++#: cp/parser.c:7198 + msgid "anachronistic old-style base class initializer" + msgstr "artık tarih olmuş eski tarz temel sınıf ilklendiricisi" + +-#: cp/parser.c:7201 ++#: cp/parser.c:7239 + msgid "keyword `typename' not allowed in this context (a qualified member initializer is implicitly a type)" + msgstr "`typename' anahtar sözcüğüne bu bağlamda izin verilmez (bir nitelikli üye ilklendirici örtük türde)" + + #. Warn that we do not support `export'. +-#: cp/parser.c:7563 ++#: cp/parser.c:7601 + msgid "keyword `export' not implemented, and will be ignored" + msgstr "`export' anahtar sözcüğü gerçekleştirilmedi, ve yoksayılacak" + + #. Otherwise, emit an error about the invalid digraph, but continue + #. parsing because we got our argument list. +-#: cp/parser.c:7923 ++#: cp/parser.c:7961 + msgid "`<::' cannot begin a template-argument list" + msgstr "`<::' bir şablon argüman listesi başlatamaz" + +-#: cp/parser.c:7924 ++#: cp/parser.c:7962 + msgid "`<:' is an alternate spelling for `['. Insert whitespace between `<' and `::'" + msgstr "`<:', `[' için diğer gösterimdir. `<' ile `::' arasında boşluk bırakın" + +-#: cp/parser.c:7931 ++#: cp/parser.c:7969 + msgid "(if you use `-fpermissive' G++ will accept your code)" + msgstr "(`-fpermissive' kullanırsanız G++ kodunuzu kabul edecek)" + + #. Explain what went wrong. +-#: cp/parser.c:8106 ++#: cp/parser.c:8145 + msgid "non-template `%D' used as template" + msgstr "şablon olarak şablon olmayan `%D' kullanılmış" + +-#: cp/parser.c:8107 ++#: cp/parser.c:8146 + msgid "use `%T::template %D' to indicate that it is a template" + msgstr "bir şablon olduğunu belirtmek için `%T::template %D' kullanın" + +-#: cp/parser.c:9058 ++#: cp/parser.c:9102 + msgid "using `typename' outside of template" + msgstr "şablon dışında `typename' kullanımı" + +-#: cp/parser.c:9180 ++#: cp/parser.c:9224 + msgid "expected type-name" + msgstr "burada tür ismi umuluyordu" + +-#: cp/parser.c:9239 ++#: cp/parser.c:9283 + msgid "type attributes are honored only at type definition" + msgstr "tür öznitelikleri sadece tür tanımlarında uygulanabilir" + + #. [namespace.udecl] + #. + #. A using declaration shall not name a template-id. +-#: cp/parser.c:9622 ++#: cp/parser.c:9666 + msgid "a template-id may not appear in a using-declaration" + msgstr "using bildiriminde bir şablon kimliği bulunamaz" + +-#: cp/parser.c:9949 ++#: cp/parser.c:9986 + msgid "an asm-specification is not allowed on a function-definition" + msgstr "bir işlev tanımında bir asm belirtimine izin verilmez" + +-#: cp/parser.c:9951 ++#: cp/parser.c:9988 + msgid "attributes are not allowed on a function-definition" + msgstr "bir işlev tanımıda özniteliklere izin verilmez" + +-#: cp/parser.c:10084 ++#: cp/parser.c:10121 + msgid "attributes after parenthesized initializer ignored" + msgstr "parantezli ilklendiriciden sonraki öznitelikler yoksayıldı" + +-#: cp/parser.c:10540 ++#: cp/parser.c:10591 + msgid "`%T::%D' is not a type" + msgstr "`%T::%D' bir tür değil" + +-#: cp/parser.c:11288 ++#: cp/parser.c:11341 + msgid "file ends in default argument" + msgstr "öntanımlı argüman içinde dosya sonu" + +-#: cp/parser.c:11344 ++#: cp/parser.c:11397 + msgid "deprecated use of default argument for parameter of non-function" + msgstr "işlev olmayanın parametresi için öntanımlı argüman kullanımı artık geçersiz" + +-#: cp/parser.c:11347 ++#: cp/parser.c:11400 + msgid "default arguments are only permitted for function parameters" + msgstr "Öntanımlı argümanlara sadece işlev parametresi olarak izin verilir" + +-#: cp/parser.c:12078 ++#: cp/parser.c:12166 + msgid "declaration of `%D' in `%D' which does not enclose `%D'" + msgstr "`%D' bildirimi `%D' içinde ve bu `%D' yi kapsamıyor" + +-#: cp/parser.c:12091 ++#: cp/parser.c:12179 + msgid "extra qualification ignored" + msgstr "fazladan niteleme yoksayıldı" + +-#: cp/parser.c:12102 ++#: cp/parser.c:12190 + msgid "an explicit specialization must be preceded by 'template <>'" + msgstr "doğrudan özelleştirme `template <>' tarafından öncelenmeli" + +-#: cp/parser.c:12385 ++#: cp/parser.c:12473 + msgid "extra semicolon" + msgstr "`;' fazla" + +-#: cp/parser.c:12403 ++#: cp/parser.c:12491 + msgid "a class-key must be used when declaring a friend" + msgstr "bir kardeş bildirilirken bir sınıf anahtarı kullanılmalıdır" + +-#: cp/parser.c:12434 ++#: cp/parser.c:12522 + msgid "friend declaration does not name a class or function" + msgstr "kardeş bildirimi bir sınıf veya işlevi isimlendirmiyor" + +-#: cp/parser.c:12605 ++#: cp/parser.c:12694 + msgid "pure-specifier on function-definition" + msgstr "işlev tanımında saf belirteç" + +-#: cp/parser.c:12878 ++#: cp/parser.c:12967 + msgid "keyword `typename' not allowed outside of templates" + msgstr "şablon dışında `typename' kullanımına izin verilmez" + +-#: cp/parser.c:12880 ++#: cp/parser.c:12969 + msgid "keyword `typename' not allowed in this context (the base class is implicitly a type)" + msgstr "`typename' anahtar sözcüğüne bu bağlamda izin verilmez (bir taban sınıf örtük türde)" + +-#: cp/parser.c:13700 ++#: cp/parser.c:13790 + msgid "reference to `%D' is ambiguous" + msgstr "`%D' ile ilişkilendirme belirsiz" + +-#: cp/parser.c:13874 ++#: cp/parser.c:13964 + msgid "too few template-parameter-lists" + msgstr "şablon parametresi listesi çok az" + +@@ -15887,44 +15939,44 @@ + #. something like: + #. + #. template template void S::f(); +-#: cp/parser.c:13889 ++#: cp/parser.c:13979 + msgid "too many template-parameter-lists" + msgstr "şablon parametresi listesi çok fazla" + + #. If begin_function_definition didn't like the definition, skip + #. the entire function. +-#: cp/parser.c:14185 ++#: cp/parser.c:14275 + msgid "invalid function declaration" + msgstr "işlev bildirimi geçersiz" + + #. Issue an error message. +-#: cp/parser.c:14222 ++#: cp/parser.c:14312 + msgid "named return values are no longer supported" + msgstr "isimli dönüş değerleri artık desteklenmiyor" + +-#: cp/parser.c:14561 ++#: cp/parser.c:14651 + msgid "`>>' should be `> >' within a nested template argument list" + msgstr "alt şablon argüman listesindeki `>>', `> >' olmalıydı" + + #. If this is not a nested template argument list, the '>>' is + #. a typo for '>'. Emit an error message and continue. +-#: cp/parser.c:14569 ++#: cp/parser.c:14659 + msgid "spurious `>>', use `>' to terminate a template argument list" + msgstr "sahte `>>', bir şablon argüman listesini sonlandırmak için `>' kullanın" + +-#: cp/parser.c:14574 ++#: cp/parser.c:14664 + msgid "missing `>' to terminate the template argument list" + msgstr "şablon argüman listesini sonlandıracak '>' eksik" + +-#: cp/parser.c:15062 ++#: cp/parser.c:15149 + msgid "`%s' tag used in naming `%#T'" + msgstr "`%s' etiketi `%#T' isimlemesinde kullanılmış" + +-#: cp/parser.c:15082 ++#: cp/parser.c:15169 + msgid "%D redeclared with different access" + msgstr "`%D' farklı erişimle tekrar bildirilmiş" + +-#: cp/parser.c:15099 ++#: cp/parser.c:15186 + msgid "`template' (as a disambiguator) is only allowed within templates" + msgstr "" + +@@ -15944,81 +15996,86 @@ + msgid "enclosing class templates are not explicitly specialized" + msgstr "sınıf şablonlarının zarflanması doğrudan özelleştirilmiyor" + +-#: cp/pt.c:739 cp/pt.c:780 +-msgid "specializing `%#T' in different namespace" ++#: cp/pt.c:733 ++#, fuzzy ++msgid "specialization of `%D' in different namespace" + msgstr " `%#T' farklı isim alanında özelleştiriliyor" + +-#: cp/pt.c:740 cp/pt.c:781 ++#: cp/pt.c:734 cp/pt.c:803 + msgid " from definition of `%#D'" + msgstr " `%#D' bildiriminden" + +-#: cp/pt.c:748 ++#: cp/pt.c:770 + msgid "specialization of `%T' after instantiation" + msgstr "gerçeklemeden sonra `%T' özelleştirmesi" + +-#: cp/pt.c:795 ++#: cp/pt.c:802 ++msgid "specializing `%#T' in different namespace" ++msgstr " `%#T' farklı isim alanında özelleştiriliyor" ++ ++#: cp/pt.c:817 + msgid "specialization `%T' after instantiation `%T'" + msgstr "%T' özelleştirmesi, `%T' gerçeklemesinden sonra" + +-#: cp/pt.c:807 ++#: cp/pt.c:829 + msgid "explicit specialization of non-template `%T'" + msgstr "şablon olmayan `%T' örtük özelleştirmesi" + +-#: cp/pt.c:1067 ++#: cp/pt.c:1089 + msgid "specialization of %D after instantiation" + msgstr "gerçeklemeden sonra %D özelleştirmesi" + +-#: cp/pt.c:1192 ++#: cp/pt.c:1220 + msgid "%s %+#D" + msgstr "%s %+#D" + +-#: cp/pt.c:1241 ++#: cp/pt.c:1269 + msgid "`%D' is not a function template" + msgstr "`%D' bir işlev şablonu değil" + +-#: cp/pt.c:1389 ++#: cp/pt.c:1417 + msgid "template-id `%D' for `%+D' does not match any template declaration" + msgstr "şablon kimliği `%D', `%+D' için hiçbir şablon bildirimi ile eşleşmiyor" + +-#: cp/pt.c:1397 ++#: cp/pt.c:1425 + msgid "ambiguous template specialization `%D' for `%+D'" + msgstr "şablon özelleştirmesi `%D', `%+D' için belirsiz" + + #. This case handles bogus declarations like template <> + #. template void f(); +-#: cp/pt.c:1620 cp/pt.c:1694 ++#: cp/pt.c:1648 cp/pt.c:1722 + msgid "template-id `%D' in declaration of primary template" + msgstr "birincil şablon bildiriminde şablon kimliği `%D'" + +-#: cp/pt.c:1633 ++#: cp/pt.c:1661 + msgid "template parameter list used in explicit instantiation" + msgstr "şablon parametre listesi doğrudan gerçekleme içinde kullanılmış" + +-#: cp/pt.c:1639 ++#: cp/pt.c:1667 + msgid "definition provided for explicit instantiation" + msgstr "tanım doğrudan gerçekleme için üretilmiş" + +-#: cp/pt.c:1645 ++#: cp/pt.c:1673 + msgid "too many template parameter lists in declaration of `%D'" + msgstr "`%D' bildiriminde şablon parametresi listesi çok fazla" + +-#: cp/pt.c:1661 ++#: cp/pt.c:1689 + msgid "too few template parameter lists in declaration of `%D'" + msgstr "`%D' bildiriminde şablon parametresi listesi çok az" + +-#: cp/pt.c:1678 ++#: cp/pt.c:1706 + msgid "explicit specialization not preceded by `template <>'" + msgstr "doğrudan özelleştirme `template <>' tarafından öncelenmiyor" + +-#: cp/pt.c:1691 ++#: cp/pt.c:1719 + msgid "partial specialization `%D' of function template" + msgstr "işlev şablonunun `%D' kısmî özelleştirmesi" + +-#: cp/pt.c:1723 ++#: cp/pt.c:1751 + msgid "default argument specified in explicit specialization" + msgstr "doğrudan özelleştirme içinde öntanımlı argüman belirtilmiş" + +-#: cp/pt.c:1727 ++#: cp/pt.c:1755 + msgid "template specialization with C linkage" + msgstr "C ilintileme ile şablon özelleştirmesi" + +@@ -16030,106 +16087,116 @@ + #. program is ill-formed. + #. + #. Similar language is found in [temp.explicit]. +-#: cp/pt.c:1811 ++#: cp/pt.c:1839 + msgid "specialization of implicitly-declared special member function" + msgstr "örtük bildirimli özel üye işlev özelleştirmesi" + +-#: cp/pt.c:1855 ++#: cp/pt.c:1883 + msgid "no member function `%D' declared in `%T'" + msgstr "`%T' içinde bildirilmiş `%D' diye bir üye işlev yok" + + #. There are two many template parameter lists. +-#: cp/pt.c:2005 ++#: cp/pt.c:2033 + msgid "too many template parameter lists in declaration of `%T'" + msgstr "`%T' bildiriminde şablon parametresi listesi çok fazla" + +-#: cp/pt.c:2098 ++#: cp/pt.c:2126 + msgid " shadows template parm `%#D'" + msgstr " şablon parametresi `%#D' gölgeleniyor" + +-#: cp/pt.c:2495 ++#: cp/pt.c:2523 + msgid "template parameters not used in partial specialization:" + msgstr "kısmî özelleştirmede kullanılmayan şablon parametreleri:" + +-#: cp/pt.c:2499 ++#: cp/pt.c:2527 + msgid " `%D'" + msgstr " `%D'" + +-#: cp/pt.c:2511 ++#: cp/pt.c:2539 + msgid "partial specialization `%T' does not specialize any template arguments" + msgstr "kısmî özelleştirme `%T' hiç bir şablon argümanını özelleştirmiyor" + +-#: cp/pt.c:2536 ++#: cp/pt.c:2564 + #, c-format + msgid "template argument `%E' involves template parameter(s)" + msgstr "şablon argümanı `%E' şablon parametre(ler)ini içine alıyor" + +-#: cp/pt.c:2580 ++#: cp/pt.c:2608 + msgid "type `%T' of template argument `%E' depends on template parameter(s)" + msgstr "tür `%T' (şablon argümanı `%E' nin türü) şablon parametre(ler)ine bağımlı oluyor" + +-#: cp/pt.c:2665 ++#: cp/pt.c:2693 + msgid "no default argument for `%D'" + msgstr "`%D' için öntanımlı argüman yok" + +-#: cp/pt.c:2814 ++#: cp/pt.c:2842 + msgid "template with C linkage" + msgstr "C ilintilemeli şablon" + +-#: cp/pt.c:2817 ++#: cp/pt.c:2845 + msgid "template class without a name" + msgstr "bir ismi olmayan şablon sınıfı" + + #. [temp.mem] + #. + #. A destructor shall not be a member template. +-#: cp/pt.c:2824 ++#: cp/pt.c:2853 + msgid "destructor `%D' declared as member template" + msgstr "yıkıcı `%D' bir üye şablonu olarak bildirilmiş" + +-#: cp/pt.c:2904 ++#. [basic.stc.dynamic.allocation] ++#. ++#. An allocation function can be a function ++#. template. ... Template allocation functions shall ++#. have two or more parameters. ++#: cp/pt.c:2868 ++#, fuzzy ++msgid "invalid template declaration of `%D'" ++msgstr "geçersiz üye şablonu bildirimi `%D'" ++ ++#: cp/pt.c:2948 + msgid "`%D' does not declare a template type" + msgstr "`%D' bir şablon türü bildirmiyor" + +-#: cp/pt.c:2910 ++#: cp/pt.c:2954 + msgid "template definition of non-template `%#D'" + msgstr "şablon olmayan `%#D' nin şablon bildirimi" + +-#: cp/pt.c:2951 ++#: cp/pt.c:2995 + msgid "expected %d levels of template parms for `%#D', got %d" + msgstr "%d seviye umulurken `%#D' için şablon parametresi seviyesi olarak %d seviye alındı, " + +-#: cp/pt.c:2963 ++#: cp/pt.c:3007 + msgid "got %d template parameters for `%#D'" + msgstr "%d şablon parametresi alındı (`%#D' için)" + +-#: cp/pt.c:2966 ++#: cp/pt.c:3010 + msgid "got %d template parameters for `%#T'" + msgstr "%d şablon parametresi alındı (`%#T' için)" + +-#: cp/pt.c:2968 ++#: cp/pt.c:3012 + #, c-format + msgid " but %d required" + msgstr " ama %d gerekiyordu" + +-#: cp/pt.c:3053 ++#: cp/pt.c:3097 + msgid "`%T' is not a template type" + msgstr "`%T' bir şablon türü değil" + +-#: cp/pt.c:3069 ++#: cp/pt.c:3113 + msgid "previous declaration `%D'" + msgstr "`%D' önceki bildirimi" + +-#: cp/pt.c:3070 ++#: cp/pt.c:3114 + #, c-format + msgid "used %d template parameter%s instead of %d" + msgstr "%3$d yerine %1$d şablon parametresi kullanılmış %2$s" + +-#: cp/pt.c:3086 ++#: cp/pt.c:3130 + msgid "template parameter `%#D'" + msgstr "şablon parametresi `%#D'" + +-#: cp/pt.c:3087 ++#: cp/pt.c:3131 + msgid "redeclared here as `%#D'" + msgstr "burada yeniden `%#D' olarak bildirilmiş" + +@@ -16137,280 +16204,289 @@ + #. + #. A template-parameter may not be given default arguments + #. by two different declarations in the same scope. +-#: cp/pt.c:3097 ++#: cp/pt.c:3141 + msgid "redefinition of default argument for `%#D'" + msgstr "`%#D' nin öntanımlı argümanının yeniden tanımlanması" + +-#: cp/pt.c:3098 ++#: cp/pt.c:3142 + msgid "%J original definition appeared here" + msgstr "%J özgün tanımı burada göründü" + +-#: cp/pt.c:3246 ++#: cp/pt.c:3288 + #, c-format + msgid "`%E' is not a valid template argument" + msgstr "`%E' geçerli bir şablon argümanı değil" + +-#: cp/pt.c:3250 ++#: cp/pt.c:3292 + msgid "it must be the address of a function with external linkage" + msgstr "o dış ilintilemeli bir işlevin adresi olmalı" + +-#: cp/pt.c:3252 ++#: cp/pt.c:3294 + msgid "it must be the address of an object with external linkage" + msgstr "o dış ilintilemeli bir nesnenin adresi olmalı" + +-#: cp/pt.c:3255 ++#: cp/pt.c:3297 + msgid "it must be a pointer-to-member of the form `&X::Y'" + msgstr "o `&X::Y' şeklinde bir üye göstericisi olmalı" + +-#: cp/pt.c:3266 ++#: cp/pt.c:3308 + #, c-format + msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage" + msgstr "statik ilintilemeli bir nesnenin adresi olduğundan, dizge sabiti %E geçerli bir şablon argümanı değil" + +-#: cp/pt.c:3281 ++#: cp/pt.c:3323 + #, c-format + msgid "address of non-extern `%E' cannot be used as template argument" + msgstr "extern olmayan`%E' nin adresi şablon argümanı olarak kullanılamaz" + +-#: cp/pt.c:3290 ++#: cp/pt.c:3332 + #, c-format + msgid "non-constant `%E' cannot be used as template argument" + msgstr "sabit olmayan `%E' şablon argümanı olarak kullanılamaz" + +-#: cp/pt.c:3298 ++#: cp/pt.c:3340 + msgid "type '%T' cannot be used as a value for a non-type template-parameter" + msgstr "`%T' türü bir türsüz şablon parametresinin değeri olarak kullanılamaz" + +-#: cp/pt.c:3301 ++#: cp/pt.c:3343 + msgid "invalid use of '%D' as a non-type template-argument" + msgstr "türsüz şablon argümanı olarak '%D' kullanımı geçersiz" + +-#: cp/pt.c:3303 ++#: cp/pt.c:3345 + #, c-format + msgid "invalid use of '%E' as a non-type template-argument" + msgstr "türsüz şablon argümanı olarak '%E' kullanımı geçersiz" + +-#: cp/pt.c:3668 ++#: cp/pt.c:3710 + #, c-format + msgid "to refer to a type member of a template parameter, use `typename %E'" + msgstr "bir şablon parametresinin bir tür üyesine başvuru yapmak için `typename %E' kullanın" + +-#: cp/pt.c:3681 cp/pt.c:3699 cp/pt.c:3738 ++#: cp/pt.c:3723 cp/pt.c:3741 cp/pt.c:3780 + msgid "type/value mismatch at argument %d in template parameter list for `%D'" + msgstr "şablon parametre listesindeki %d. argümanda (`%D' için) tür/değer çelişkisi" + +-#: cp/pt.c:3684 ++#: cp/pt.c:3726 + msgid " expected a constant of type `%T', got `%T'" + msgstr " `%T' türünde bir sabit umulurken `%T' alındı" + +-#: cp/pt.c:3688 ++#: cp/pt.c:3730 + #, c-format + msgid " expected a class template, got `%E'" + msgstr " bir sınıf şablonu umulurken `%E' alındı" + +-#: cp/pt.c:3690 ++#: cp/pt.c:3732 + #, c-format + msgid " expected a type, got `%E'" + msgstr " bir tür umulurken `%E' alındı " + +-#: cp/pt.c:3702 ++#: cp/pt.c:3744 + msgid " expected a type, got `%T'" + msgstr " bir tür umulurken `%T' alındı" + +-#: cp/pt.c:3704 ++#: cp/pt.c:3746 + msgid " expected a class template, got `%T'" + msgstr " bir sınıf şablonu umulurken `%T' alındı" + +-#: cp/pt.c:3740 ++#: cp/pt.c:3782 + msgid " expected a template of type `%D', got `%D'" + msgstr " `%D' türünde bir şablon umulurken `%D' alındı" + +-#: cp/pt.c:3775 ++#: cp/pt.c:3817 + msgid "could not convert template argument `%E' to `%T'" + msgstr "şablon argümanı `%E' `%T' ye dönüştürülemedi" + +-#: cp/pt.c:3815 ++#: cp/pt.c:3857 + #, c-format + msgid "wrong number of template arguments (%d, should be %d)" + msgstr "yanlış sayıda şablon argümanı (%d yerine %d olmalıydı)" + +-#: cp/pt.c:3819 ++#: cp/pt.c:3861 + msgid "provided for `%D'" + msgstr "`%D' için sağlanmış" + +-#: cp/pt.c:3847 ++#: cp/pt.c:3889 + #, c-format + msgid "template argument %d is invalid" + msgstr "şablon argümanı %d geçersiz" + +-#: cp/pt.c:4068 ++#: cp/pt.c:4110 + msgid "non-template used as template" + msgstr "şablon olarak şablon olmayan kullanılmış" + +-#: cp/pt.c:4208 ++#: cp/pt.c:4250 + msgid "non-template type `%T' used as a template" + msgstr "şablon olarak şablon olmayan tür `%T' kullanılmış" + +-#: cp/pt.c:4210 ++#: cp/pt.c:4252 + msgid "for template declaration `%D'" + msgstr "şablon bildirimi `%D' için" + +-#: cp/pt.c:4857 ++#: cp/pt.c:4899 + msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'" + msgstr "%d lik en büyük şablon gerçekleme derinliği `%D' gerçeklemesinde aşılıyor (en büyük değeri arttırmak için -ftemplate-depth-NN kullanın)" + +-#: cp/pt.c:5296 ++#: cp/pt.c:5338 + msgid "ambiguous class template instantiation for `%#T'" + msgstr "`%#T' için sınıf şablonu gerçeklemesi belirsiz" + +-#: cp/pt.c:5302 ++#: cp/pt.c:5344 + msgid "%s %+#T" + msgstr "%s %+#T" + +-#: cp/pt.c:6308 cp/pt.c:6428 ++#: cp/pt.c:6382 + msgid "instantiation of `%D' as type `%T'" + msgstr "`%D' gerçeklemesi `%T' türünde" + +-#: cp/pt.c:6470 ++#: cp/pt.c:6542 + msgid "invalid parameter type `%T'" + msgstr "geçersiz parametre türü `%T'" + +-#: cp/pt.c:6472 ++#: cp/pt.c:6544 + msgid "in declaration `%D'" + msgstr "`%D' bildiriminde" + +-#: cp/pt.c:6546 ++#: cp/pt.c:6618 + msgid "creating pointer to member function of non-class type `%T'" + msgstr "sınıf olmayan `%T' türünde üye işlev göstericisi oluşturulması" + +-#: cp/pt.c:6685 ++#: cp/pt.c:6758 + msgid "creating array with size zero" + msgstr "dizi sıfır uzunlukta oluşturuluyor" + +-#: cp/pt.c:6699 ++#: cp/pt.c:6772 + #, c-format + msgid "creating array with size zero (`%E')" + msgstr "sıfır boyutlu dizi oluşturuluyor (`%E')" + +-#: cp/pt.c:6938 ++#: cp/pt.c:7011 + msgid "forming reference to void" + msgstr "void'e referans oluşturuluyor" + +-#: cp/pt.c:6940 ++#: cp/pt.c:7013 + msgid "forming %s to reference type `%T'" + msgstr "%s tür `%T'ye referans oluşturuyor" + +-#: cp/pt.c:6977 ++#: cp/pt.c:7050 + msgid "creating pointer to member of non-class type `%T'" + msgstr "sınıf olmayan `%T' türünde üye göstericisisi oluşturulması" + +-#: cp/pt.c:6983 ++#: cp/pt.c:7056 + msgid "creating pointer to member reference type `%T'" + msgstr "`%T' üye referans türünde gösterici oluşturulması" + +-#: cp/pt.c:7069 ++#: cp/pt.c:7142 + msgid "creating array of `%T'" + msgstr "`%T' dizisi oluşturulması" + +-#: cp/pt.c:7075 ++#: cp/pt.c:7148 + msgid "creating array of `%T', which is an abstract class type" + msgstr "mutlak sınıf türünde olan `%T' dizininin oluşturulması" + +-#: cp/pt.c:7119 ++#: cp/pt.c:7192 + msgid "`%T' is not a class, struct, or union type" + msgstr "`%T' bir class, struct, veya union türünde değil" + +-#: cp/pt.c:7232 ++#: cp/pt.c:7305 + #, c-format + msgid "use of `%s' in template" + msgstr "şablonda `%s' kullanımı" + +-#: cp/pt.c:7345 ++#: cp/pt.c:7418 + #, c-format + msgid "dependent-name `%E' is parsed as a non-type, but instantiation yields a type" + msgstr "`%E' bağımlı ismi bir tür olarak çözümlenmedi ama gerçekleme onun bir tür olmasını istiyor" + +-#: cp/pt.c:7347 ++#: cp/pt.c:7420 + #, c-format + msgid "say `typename %E' if a type is meant" + msgstr "eğer bu bir türdür anlamında kullandıysanız `typename %E' deyin" + +-#: cp/pt.c:8613 ++#: cp/pt.c:8589 ++msgid "`%T' is not a class or namespace" ++msgstr "`%T' bir sınıf ya da isim alanı değil" ++ ++#: cp/pt.c:8592 ++#, fuzzy ++msgid "`%D' is not a class or namespace" ++msgstr "`%T' bir sınıf ya da isim alanı değil" ++ ++#: cp/pt.c:8709 + msgid "`%T' uses anonymous type" + msgstr "`%T' anonim tür kullanıyor" + +-#: cp/pt.c:8615 ++#: cp/pt.c:8711 + msgid "`%T' uses local type `%T'" + msgstr "`%T' yerel tür `%T' kullanıyor" + +-#: cp/pt.c:8623 ++#: cp/pt.c:8719 + msgid "`%T' is a variably modified type" + msgstr "`%T' değişkene göre değişen türde" + +-#: cp/pt.c:8634 ++#: cp/pt.c:8730 + #, c-format + msgid "integral expression `%E' is not constant" + msgstr "bütünleyen ifade `%E' bir sabit değil" + +-#: cp/pt.c:8639 ++#: cp/pt.c:8735 + msgid " trying to instantiate `%D'" + msgstr " `%D' gerçeklenmeye çalışılıyor" + +-#: cp/pt.c:9156 ++#: cp/pt.c:9252 + msgid "incomplete type unification" + msgstr "tamamlanmamış tür birleştirme" + +-#: cp/pt.c:10112 ++#: cp/pt.c:10211 + #, c-format + msgid "use of `%s' in template type unification" + msgstr "şablon türü birleştirmede `%s' kullanımı" + +-#: cp/pt.c:10546 cp/pt.c:10618 ++#: cp/pt.c:10644 cp/pt.c:10716 + msgid "explicit instantiation of non-template `%#D'" + msgstr "şablon olmayan `%#D' nin doğrudan gerçeklenmesi" + +-#: cp/pt.c:10562 cp/pt.c:10613 ++#: cp/pt.c:10660 cp/pt.c:10711 + msgid "no matching template for `%D' found" + msgstr "`%D' için eşleşen bir şablon yok" + +-#: cp/pt.c:10568 ++#: cp/pt.c:10666 + msgid "explicit instantiation of `%#D'" + msgstr "`%#D' nin doğrudan gerçeklenmesi" + +-#: cp/pt.c:10605 ++#: cp/pt.c:10703 + msgid "duplicate explicit instantiation of `%#D'" + msgstr "yinelenmiş doğrudan `%#D' gerçeklemesi" + +-#: cp/pt.c:10627 ++#: cp/pt.c:10725 + msgid "ISO C++ forbids the use of `extern' on explicit instantiations" + msgstr "ISO C++ doğrudan gerçeklemelerde `extern' kullanımına izin vermez" + +-#: cp/pt.c:10631 cp/pt.c:10712 ++#: cp/pt.c:10729 cp/pt.c:10810 + msgid "storage class `%D' applied to template instantiation" + msgstr "saklama sınıfı `%D' şablon gerçeklemesine uygulanmış" + +-#: cp/pt.c:10684 ++#: cp/pt.c:10782 + msgid "explicit instantiation of non-template type `%T'" + msgstr "şablon olmayan tür `%T' nin doğrudan gerçeklenmesi" + +-#: cp/pt.c:10693 ++#: cp/pt.c:10791 + msgid "explicit instantiation of `%#T' before definition of template" + msgstr "şablon tanımından önce `%T' nin doğrudan gerçeklenmesi" + +-#: cp/pt.c:10701 ++#: cp/pt.c:10799 + #, c-format + msgid "ISO C++ forbids the use of `%s' on explicit instantiations" + msgstr "ISO C++ doğrudan gerçeklemelerde `%s' kullanımına izin vermez" + +-#: cp/pt.c:10745 ++#: cp/pt.c:10843 + msgid "duplicate explicit instantiation of `%#T'" + msgstr "yinelenmiş doğrudan `%#T' gerçeklemesi" + +-#: cp/pt.c:11126 ++#: cp/pt.c:11224 + msgid "explicit instantiation of `%D' but no definition available" + msgstr "bir tanımlama olmadan `%D' nin doğrudan gerçeklenmesi" + +-#: cp/pt.c:11562 ++#: cp/pt.c:11660 + msgid "`%#T' is not a valid type for a template constant parameter" + msgstr "`%#T' bir şablon sabiti parametresi için geçerli bir tür değildir" + +@@ -16456,39 +16532,39 @@ + msgid "`%T' is an inaccessible base of `%T'" + msgstr "`%T', `%T' nin bir erişilemeyen tabanıdır" + +-#: cp/search.c:1767 ++#: cp/search.c:1805 + msgid "invalid covariant return type for `%#D'" + msgstr "`%#D' için ortak değişen dönüş türü geçersiz" + +-#: cp/search.c:1768 cp/search.c:1774 ++#: cp/search.c:1806 cp/search.c:1812 + msgid " overriding `%#D'" + msgstr " `%#D' değiştiriliyor" + +-#: cp/search.c:1772 ++#: cp/search.c:1810 + msgid "conflicting return type specified for `%#D'" + msgstr "`%D' için çelişen dönüş türü belirtilmiş" + +-#: cp/search.c:1786 ++#: cp/search.c:1824 + #, c-format + msgid "looser throw specifier for `%#F'" + msgstr "`%#F' için throw belirteci daha gevşek" + +-#: cp/search.c:1787 ++#: cp/search.c:1825 + #, c-format + msgid " overriding `%#F'" + msgstr " `%#F' değiştiriliyor" + + #. A static member function cannot match an inherited + #. virtual member function. +-#: cp/search.c:1877 ++#: cp/search.c:1915 + msgid "`%#D' cannot be declared" + msgstr "`%#D' bildirilemez" + +-#: cp/search.c:1878 ++#: cp/search.c:1916 + msgid " since `%#D' declared in base class" + msgstr " `%#D' taban sınıfta bildirildiğinden" + +-#: cp/search.c:1955 ++#: cp/search.c:1993 + msgid "`%#D' needs a final overrider" + msgstr "`%#D' bir son değiştirici gerektiriyor" + +@@ -16509,113 +16585,113 @@ + msgid "object missing in reference to `%D'" + msgstr "`%D' ile ilişkilendirmede nesne eksik" + +-#: cp/semantics.c:1721 ++#: cp/semantics.c:1718 + msgid "arguments to destructor are not allowed" + msgstr "yıkıcıların argümanı olmaz" + +-#: cp/semantics.c:1770 ++#: cp/semantics.c:1767 + msgid "`this' is unavailable for static member functions" + msgstr "statik üye işlevlerde `this' kullanılmaz" + +-#: cp/semantics.c:1776 ++#: cp/semantics.c:1773 + msgid "invalid use of `this' in non-member function" + msgstr "üye olmayan işlevde `this' kullanımı geçersiz" + +-#: cp/semantics.c:1778 ++#: cp/semantics.c:1775 + msgid "invalid use of `this' at top level" + msgstr "tepe seviyede `this' kullanımı geçersiz" + +-#: cp/semantics.c:1802 ++#: cp/semantics.c:1799 + msgid "invalid qualifying scope in pseudo-destructor name" + msgstr "yarı-yıkıcı ismi içinde geçersiz niteleme kapsamı" + +-#: cp/semantics.c:1822 ++#: cp/semantics.c:1819 + msgid "`%E' is not of type `%T'" + msgstr "`%E' `%T' türünde değil" + +-#: cp/semantics.c:1933 ++#: cp/semantics.c:1930 + msgid "template type parameters must use the keyword `class' or `typename'" + msgstr "şablon türü parametrelerde `class' ya da `typename' sözcükleri kullanılmalı" + +-#: cp/semantics.c:1977 ++#: cp/semantics.c:1974 + msgid "invalid use of type `%T' as a default value for a template template-parameter" + msgstr "bir şablonun şablon parametresinin öntanımlı değeri olarak `%T' türünün kullanımı geçersiz" + +-#: cp/semantics.c:1980 ++#: cp/semantics.c:1977 + msgid "invalid use of `%D' as a default value for a template template-parameter" + msgstr "bir şablonun şablon parametresinin öntanımlı değeri olarak `%D' kullanımı geçersiz" + +-#: cp/semantics.c:1984 ++#: cp/semantics.c:1981 + msgid "invalid default argument for a template template parameter" + msgstr "bir şablonun şablon parametresinin öntanımlı argümanı geçersiz" + +-#: cp/semantics.c:2019 ++#: cp/semantics.c:2016 + msgid "definition of `%#T' inside template parameter list" + msgstr "şablon parametre listesinde `%#T' tanımı" + +-#: cp/semantics.c:2030 ++#: cp/semantics.c:2027 + msgid "invalid definition of qualified type `%T'" + msgstr "nitelikli tür `%T' tanımı geçersiz" + +-#: cp/semantics.c:2045 ++#: cp/semantics.c:2042 + msgid "previous definition of `%#T'" + msgstr "`%#T' nin önceki bildirimi" + +-#: cp/semantics.c:2249 ++#: cp/semantics.c:2246 + msgid "invalid base-class specification" + msgstr "ana sınıf belirtimi geçersiz" + +-#: cp/semantics.c:2258 ++#: cp/semantics.c:2255 + msgid "base class `%T' has cv qualifiers" + msgstr "taban sınıf `%T' cv niteleyiciler içeriyor" + +-#: cp/semantics.c:2290 ++#: cp/semantics.c:2287 + msgid "multiple declarators in template declaration" + msgstr "şablon bildiriminde çoklu bildiriciler" + +-#: cp/semantics.c:2301 ++#: cp/semantics.c:2298 + msgid "incomplete type `%T' used in nested name specifier" + msgstr "içi boş `%T' türü alt isim belirtecinde kullanılmış" + +-#: cp/semantics.c:2303 cp/typeck.c:1635 ++#: cp/semantics.c:2300 cp/typeck.c:1635 + msgid "`%D' is not a member of `%T'" + msgstr "`%D' `%T' nin bir üyesi değil" + +-#: cp/semantics.c:2306 ++#: cp/semantics.c:2303 + msgid "`%D' is not a member of `%D'" + msgstr "`%D', `%D' nin bir üyesi değil" + +-#: cp/semantics.c:2431 ++#: cp/semantics.c:2428 + msgid "template parameter `%D' of type `%T' is not allowed in an integral constant expression because it is not of integral or enumeration type" + msgstr "`%D' şablon parametresi `%T' türündeyse bütünleyen ya da sıralı türde olmadığından bir bütünleyen sabit ifadesinde kullanılmaz" + +-#: cp/semantics.c:2584 ++#: cp/semantics.c:2572 + msgid "`%D' cannot appear in a constant-expression" + msgstr "`%D' bir sabit ifadesinde bulunamaz" + +-#: cp/semantics.c:2593 ++#: cp/semantics.c:2580 + msgid "use of namespace `%D' as expression" + msgstr "isim alanı `%D' nin ifade olarak kullanımı" + +-#: cp/semantics.c:2598 ++#: cp/semantics.c:2585 + msgid "use of class template `%T' as expression" + msgstr "sınıf şablonu `%T' nin ifade olarak kullanımı" + + #. Ambiguous reference to base members. +-#: cp/semantics.c:2604 ++#: cp/semantics.c:2591 + msgid "request for member `%D' is ambiguous in multiple inheritance lattice" + msgstr "üye `%D' için istek çoklu kalıt kafesi içinde belirsiz" + +-#: cp/semantics.c:2664 ++#: cp/semantics.c:2652 + #, c-format + msgid "use of %s from containing function" + msgstr "içeren işlevden %s kullanımı" + +-#: cp/semantics.c:2667 ++#: cp/semantics.c:2655 + msgid " `%#D' declared here" + msgstr " `%#D' burada bildirilmiş" + +-#: cp/semantics.c:2718 ++#: cp/semantics.c:2706 + #, c-format + msgid "type of `%E' is unknown" + msgstr "`%E' türü bilinmiyor" +@@ -16629,44 +16705,44 @@ + msgid "`%V' qualifiers cannot be applied to `%T'" + msgstr "`%V' niteleyicisi `%T' ye uygulanamaz" + +-#: cp/tree.c:1821 ++#: cp/tree.c:1829 + #, c-format + msgid "`%s' attribute can only be applied to Java class definitions" + msgstr "`%s' özniteliği sadece Java sınıf tanımlarında uygulanabilir" + +-#: cp/tree.c:1850 ++#: cp/tree.c:1858 + #, c-format + msgid "`%s' attribute can only be applied to class definitions" + msgstr "`%s' özniteliği sadece sınıf tanımlarında uygulanabilir" + +-#: cp/tree.c:1856 ++#: cp/tree.c:1864 + #, c-format + msgid "`%s' is obsolete; g++ vtables are now COM-compatible by default" + msgstr "`%s' artık kullanılmıyor; g++ vtables şimdi öntanımlı olarak COM-uyumludur" + +-#: cp/tree.c:1880 ++#: cp/tree.c:1888 + msgid "requested init_priority is not an integer constant" + msgstr "istenen init_priority bir tamsayı sabit değil" + +-#: cp/tree.c:1901 ++#: cp/tree.c:1909 + #, c-format + msgid "can only use `%s' attribute on file-scope definitions of objects of class type" + msgstr "`%s' özniteliği sadece sınıf türünün nesnelerinin dosya bağlamı tanımlarında kullanılabilir" + +-#: cp/tree.c:1909 ++#: cp/tree.c:1917 + msgid "requested init_priority is out of range" + msgstr "istenen init_priority kapsamdışı" + +-#: cp/tree.c:1919 ++#: cp/tree.c:1927 + msgid "requested init_priority is reserved for internal use" + msgstr "istenen init_priority iç kullanım için ayrılmıştır" + +-#: cp/tree.c:1929 ++#: cp/tree.c:1937 + #, c-format + msgid "`%s' attribute is not supported on this platform" + msgstr "bu hedefte `%s' özniteliği desteklenmiyor" + +-#: cp/tree.c:2524 ++#: cp/tree.c:2534 + #, c-format + msgid "lang_* check: failed in %s, at %s:%d" + msgstr "lang_* denetimi: %2$s:%3$d: %1$s içinde başarısız" +@@ -16880,261 +16956,261 @@ + msgid "invalid use of a pointer to an incomplete type in pointer arithmetic" + msgstr "gösterici aritmetiğinde tamamlanmamış türe gösterici kullanımı geçersiz" + +-#: cp/typeck.c:3582 ++#: cp/typeck.c:3600 + #, c-format + msgid "invalid use of '%E' to form a pointer-to-member-function. Use a qualified-id." + msgstr "'%E' kullanımı üye işleve göstrge biçiminde geçersiz. Bir nitelikli kimlik kullanın." + +-#: cp/typeck.c:3588 ++#: cp/typeck.c:3606 + #, c-format + msgid "parenthesis around '%E' cannot be used to form a pointer-to-member-function" + msgstr "parantez içene alınmış '%E' üye işleve gösterici biçiminde kullanılamaz" + +-#: cp/typeck.c:3610 ++#: cp/typeck.c:3628 + msgid "taking address of temporary" + msgstr "geçicinin adresi alınıyor" + +-#: cp/typeck.c:3845 ++#: cp/typeck.c:3863 + #, c-format + msgid "ISO C++ forbids %sing an enum" + msgstr "ISO C++ bir enum'um %s-lenmesine izin vermez" + +-#: cp/typeck.c:3856 ++#: cp/typeck.c:3874 + msgid "cannot %s a pointer to incomplete type `%T'" + msgstr "içi boş `%T' türüne bir gösterici %s yapılamaz" + +-#: cp/typeck.c:3862 ++#: cp/typeck.c:3880 + msgid "ISO C++ forbids %sing a pointer of type `%T'" + msgstr "ISO C++ da bir `%T' türünde göstericiye %s için izin verilmez" + +-#: cp/typeck.c:3887 ++#: cp/typeck.c:3905 + msgid "cast to non-reference type used as lvalue" + msgstr "sol yan olarak kullanılmış referans olmayan türe dönüşüm" + +-#: cp/typeck.c:3921 ++#: cp/typeck.c:3939 + msgid "invalid use of `--' on bool variable `%D'" + msgstr "bool değişken `%D' üstünde `--' kullanımı geçersiz" + + #. ARM $3.4 +-#: cp/typeck.c:3952 ++#: cp/typeck.c:3970 + msgid "ISO C++ forbids taking address of function `::main'" + msgstr "ISO C++ `::main' işlevinin adresinin alınmasına izin vermez" + + #. An expression like &memfn. +-#: cp/typeck.c:4027 ++#: cp/typeck.c:4045 + msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function. Say `&%T::%D'" + msgstr "ISO C++ üye işleve bir gösterici şekillendirecek bir niteliksiz ya da parantezli statik olmayan üye işlevin adresinin alınmasına izin vermez. `&%T::%D' denebilir." + +-#: cp/typeck.c:4032 ++#: cp/typeck.c:4050 + msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say `&%T::%D'" + msgstr "ISO C++ üye işleve bir gösterici şekillendirecek bir sınır üye işlevin adresinin alınmasına izin vermez. `&%T::%D' denebilir" + +-#: cp/typeck.c:4060 ++#: cp/typeck.c:4078 + msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression" + msgstr "ISO C++ bir sol yan olmayan ifadeye dönüşüm adresi alınmasına izin vermez" + +-#: cp/typeck.c:4080 ++#: cp/typeck.c:4098 + msgid "unary `&'" + msgstr "tekil `&'" + +-#: cp/typeck.c:4113 ++#: cp/typeck.c:4131 + msgid "attempt to take address of bit-field structure member `%D'" + msgstr "bit-alanı yapının `%D' üyesinin adresi alınmaya çalışılıyor" + +-#: cp/typeck.c:4227 ++#: cp/typeck.c:4245 + msgid "taking address of destructor" + msgstr "yıkıcı adresinin alınması" + +-#: cp/typeck.c:4240 ++#: cp/typeck.c:4258 + msgid "taking address of bound pointer-to-member expression" + msgstr "üyeye göstericili ifadenin sınır adresi alınıyor" + +-#: cp/typeck.c:4248 ++#: cp/typeck.c:4266 + msgid "cannot create pointer to reference member `%D'" + msgstr "referans üyesi `%D' için gösterici oluşturulamaz" + +-#: cp/typeck.c:4311 ++#: cp/typeck.c:4329 + msgid "cannot take the address of `this', which is an rvalue expression" + msgstr "bir sağ yan ifade olarak `this'in adresi alınamaz" + +-#: cp/typeck.c:4330 ++#: cp/typeck.c:4348 + msgid "address requested for `%D', which is declared `register'" + msgstr "`register' olarak bildirilmiş `%D' için adres isteği" + +-#: cp/typeck.c:4398 ++#: cp/typeck.c:4416 + #, c-format + msgid "%s expression list treated as compound expression" + msgstr "%s ifade listesi bileşik ifade olarak ele alınıyor" + +-#: cp/typeck.c:4472 ++#: cp/typeck.c:4490 + msgid "%s from type `%T' to type `%T' casts away constness" + msgstr "`%T' türünden `%T' türüne %s const'suz dışı dönüşüme sebep oluyor" + +-#: cp/typeck.c:4674 ++#: cp/typeck.c:4692 + msgid "invalid static_cast from type `%T' to type `%T'" + msgstr "`%T' türünden `%T' türüne durağan tür dönüşümü geçersiz" + +-#: cp/typeck.c:4714 ++#: cp/typeck.c:4732 + msgid "invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'" + msgstr "`%T' türündeki bir sağ taraf değerinin `%T' türüne yeniden yorumlamalı dönüşümü geçersiz" + +-#: cp/typeck.c:4734 ++#: cp/typeck.c:4752 + msgid "reinterpret_cast from `%T' to `%T' loses precision" + msgstr "`%T' den `%T' ye yeniden yorumlamalı tür dönüşümü hassasiyet kaybı oluşturuyor" + +-#: cp/typeck.c:4753 ++#: cp/typeck.c:4771 + msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object" + msgstr "ISO C++ işlev ve nesne göstericileri arasında dönüşüme izin vermez" + +-#: cp/typeck.c:4759 ++#: cp/typeck.c:4777 + msgid "invalid reinterpret_cast from type `%T' to type `%T'" + msgstr "`%T' türünden `%T' türüne yeniden yorumlamalı dönüşüm geçersiz" + +-#: cp/typeck.c:4787 ++#: cp/typeck.c:4805 + msgid "invalid use of const_cast with type `%T', which is not a pointer, reference, nor a pointer-to-data-member type" + msgstr "ne bir gösterici ne de bir veri üyesi göstericili olan `%T' türü ile const_cast kullanımı geçersiz" + +-#: cp/typeck.c:4790 ++#: cp/typeck.c:4808 + msgid "invalid use of const_cast with type `%T', which is a pointer or reference to a function type" + msgstr "bir gösterici ya da bir işlev türüne referans `%T' türü ile const_cast kullanımı geçersiz" + +-#: cp/typeck.c:4813 ++#: cp/typeck.c:4831 + msgid "invalid const_cast of an rvalue of type `%T' to type `%T'" + msgstr "`%T' türündeki bir sağ taraf değerinden `%T' türüne const_cast geçersiz" + +-#: cp/typeck.c:4830 ++#: cp/typeck.c:4848 + msgid "invalid const_cast from type `%T' to type `%T'" + msgstr "`%T' türünden `%T' türüne const_cast geçersiz" + +-#: cp/typeck.c:4870 cp/typeck.c:4875 ++#: cp/typeck.c:4888 cp/typeck.c:4893 + msgid "ISO C++ forbids casting to an array type `%T'" + msgstr "ISO C++ da `%T' dizi türüne dönüşüme izin verilmez" + +-#: cp/typeck.c:4883 ++#: cp/typeck.c:4901 + msgid "invalid cast to function type `%T'" + msgstr "`%T' işlev türüne dönüşüm geçersiz" + +-#: cp/typeck.c:4939 ++#: cp/typeck.c:4957 + msgid "cast from `%T' to `%T' discards qualifiers from pointer target type" + msgstr "`%T' türünden `%T' türüne dönüşüm, gösterici hedef türünden niteleyicileri iptal ediyor" + +-#: cp/typeck.c:4985 ++#: cp/typeck.c:5003 + msgid "cast from `%T' to `%T' increases required alignment of target type" + msgstr "`%T' türünden `%T' türüne dönüşüm hedef türün hizalama gereksinimini arttırıyor" + +-#: cp/typeck.c:5152 ++#: cp/typeck.c:5170 + msgid " in evaluation of `%Q(%#T, %#T)'" + msgstr " `%Q(%#T, %#T)' nin gelişiminde" + +-#: cp/typeck.c:5194 ++#: cp/typeck.c:5212 + msgid "ISO C++ forbids cast to non-reference type used as lvalue" + msgstr "ISO C++ sol taraf değeri olarak kullanılmış referanssız türe dönüşüme izin vermez" + +-#: cp/typeck.c:5267 ++#: cp/typeck.c:5285 + msgid "incompatible types in assignment of `%T' to `%T'" + msgstr "`%T' den `%T' ye değer atamada uyumsuz türler" + +-#: cp/typeck.c:5274 ++#: cp/typeck.c:5292 + msgid "ISO C++ forbids assignment of arrays" + msgstr "ISO C++ dizilerin değer atanarak bildirimine izin vermez" + +-#: cp/typeck.c:5374 ++#: cp/typeck.c:5392 + msgid " in pointer to member function conversion" + msgstr " üye işleve gösterici dönüşümünde" + +-#: cp/typeck.c:5382 ++#: cp/typeck.c:5400 + msgid " in pointer to member conversion" + msgstr " üyeye gösterici dönüşümünde" + + #. This is a reinterpret cast, we choose to do nothing. +-#: cp/typeck.c:5392 cp/typeck.c:5407 ++#: cp/typeck.c:5410 cp/typeck.c:5425 + msgid "pointer to member cast via virtual base `%T'" + msgstr "sanal taban `%T' üzerinden üye göstericisine dönüşüm" + +-#: cp/typeck.c:5410 ++#: cp/typeck.c:5428 + msgid "pointer to member conversion via virtual base `%T'" + msgstr "sanal taban `%T' üzerinden üye göstericisine dönüşüm" + +-#: cp/typeck.c:5480 ++#: cp/typeck.c:5498 + msgid "invalid conversion to type `%T' from type `%T'" + msgstr "tür `%T' nin `%T' den dönüşümü geçersiz" + +-#: cp/typeck.c:5636 ++#: cp/typeck.c:5657 + msgid "passing NULL used for non-pointer %s %P of `%D'" + msgstr "`%D' işlevinin %P. argümanında göstericisiz %s için kullanılan NULL'un aktarılmasında" + +-#: cp/typeck.c:5639 ++#: cp/typeck.c:5660 + msgid "%s to non-pointer type `%T' from NULL" + msgstr "NULL'dan gösterici olmayan `%T' türüne %s" + +-#: cp/typeck.c:5647 ++#: cp/typeck.c:5668 + msgid "passing `%T' for %s %P of `%D'" + msgstr "`%D' işlevinin %P. argümanında %s için `%T'nin aktarılmasında" + +-#: cp/typeck.c:5650 ++#: cp/typeck.c:5671 + msgid "%s to `%T' from `%T'" + msgstr "`%T' nin `%T' den %s" + +-#: cp/typeck.c:5660 ++#: cp/typeck.c:5681 + msgid "passing negative value `%E' for %s %P of `%D'" + msgstr "`%D' işlevinin %P. argümanında %s için `%T' negatif değerinin aktarılmasında" + +-#: cp/typeck.c:5663 ++#: cp/typeck.c:5684 + msgid "%s of negative value `%E' to `%T'" + msgstr "%s `%E' nin `%T' için negatif değeridir" + +-#: cp/typeck.c:5751 ++#: cp/typeck.c:5772 + msgid "cannot convert `%T' to `%T' for argument `%P' to `%D'" + msgstr "`%T' `%T' ye argüman `%P' den `%D' ye için dönüştürülemez" + +-#: cp/typeck.c:5754 ++#: cp/typeck.c:5775 + msgid "cannot convert `%T' to `%T' in %s" + msgstr " `%T' `%T' ye %s içinde dönüştürülemez" + +-#: cp/typeck.c:5831 cp/typeck.c:5833 ++#: cp/typeck.c:5852 cp/typeck.c:5854 + msgid "in passing argument %P of `%+D'" + msgstr "`%+D' nin %P. argümanının aktarılmasında" + +-#: cp/typeck.c:5940 ++#: cp/typeck.c:5961 + msgid "returning reference to temporary" + msgstr "geçiciye referans dönüyor" + +-#: cp/typeck.c:5947 ++#: cp/typeck.c:5968 + msgid "reference to non-lvalue returned" + msgstr "sağ yansız dönüşlüye referans" + +-#: cp/typeck.c:5959 ++#: cp/typeck.c:5980 + msgid "reference to local variable `%D' returned" + msgstr "yerel değişken `%D' ye referansa döndürüldü" + +-#: cp/typeck.c:5962 ++#: cp/typeck.c:5983 + msgid "address of local variable `%D' returned" + msgstr "yerel değişken `%D' adresi döndürüldü" + +-#: cp/typeck.c:5992 ++#: cp/typeck.c:6013 + msgid "returning a value from a destructor" + msgstr "bir yıkıcıdan değer dönüyor" + + #. If a return statement appears in a handler of the + #. function-try-block of a constructor, the program is ill-formed. +-#: cp/typeck.c:6000 ++#: cp/typeck.c:6021 + msgid "cannot return from a handler of a function-try-block of a constructor" + msgstr "bir kurucunun bir işlev deneme bloğunun bir tutamağından döndürülemez" + + #. You can't return a value from a constructor. +-#: cp/typeck.c:6003 ++#: cp/typeck.c:6024 + msgid "returning a value from a constructor" + msgstr "kurucudan bir değer döndürülemez" + +-#: cp/typeck.c:6026 ++#: cp/typeck.c:6047 + msgid "return-statement with no value, in function returning '%T'" + msgstr "'%T' döndüren işlevde değer içermeyen `return' deyimi" + +-#: cp/typeck.c:6043 ++#: cp/typeck.c:6064 + msgid "return-statement with a value, in function returning 'void'" + msgstr "'void' dönüşlü işlevde değer içeren `return' deyimi" + +-#: cp/typeck.c:6065 ++#: cp/typeck.c:6086 + msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)" + msgstr "`operator new', `throw()' olarak bildirilmedikçe NULL dönmemeli (ya da -fcheck-new etkisindedir)" + +@@ -17186,124 +17262,124 @@ + msgid "cannot initialize arrays using this syntax" + msgstr "bu sözdizimi kullanılarak diziler ilklendirilemez" + +-#: cp/typeck2.c:545 ++#: cp/typeck2.c:535 + msgid "initializing array with parameter list" + msgstr "dizi parametre listesi ile ilklendiriliyor" + +-#: cp/typeck2.c:600 ++#: cp/typeck2.c:590 + msgid "initializer for scalar variable requires one element" + msgstr "skalar değişken ilklendiricisi bir öğe gerektirir" + +-#: cp/typeck2.c:607 ++#: cp/typeck2.c:597 + msgid "braces around scalar initializer for `%T'" + msgstr "`%T' için skalar ilklendiriciyi kuşatan parantezler" + +-#: cp/typeck2.c:610 ++#: cp/typeck2.c:600 + msgid "ignoring extra initializers for `%T'" + msgstr "`%T' için fazladan ilklendiricilerin yoksayılması" + +-#: cp/typeck2.c:622 ++#: cp/typeck2.c:612 + msgid "variable-sized object of type `%T' may not be initialized" + msgstr "`%T' türünden değişken-uzunluklu nesne ilklendirilmiş olmayabilir" + +-#: cp/typeck2.c:632 ++#: cp/typeck2.c:622 + msgid "subobject of type `%T' must be initialized by constructor, not by `%E'" + msgstr "`%T' türündeki alt nesne kurucu tarafından ilklendirilmiş olmalı, `%E' tarafından değil" + +-#: cp/typeck2.c:697 ++#: cp/typeck2.c:687 + msgid "aggregate has a partly bracketed initializer" + msgstr "küme kısmen köşeli parantezli ilklendirici içeriyor" + +-#: cp/typeck2.c:735 cp/typeck2.c:840 ++#: cp/typeck2.c:725 cp/typeck2.c:830 + msgid "non-trivial labeled initializers" + msgstr "anlamsız olmayan etiketli ilklendiriciler" + +-#: cp/typeck2.c:752 ++#: cp/typeck2.c:742 + msgid "non-empty initializer for array of empty elements" + msgstr "boş öğeler dizisi için boş olmayan ilklendirici" + +-#: cp/typeck2.c:806 ++#: cp/typeck2.c:796 + msgid "initializer list for object of class with virtual base classes" + msgstr "sanal taban sınıflarla sınıf nesnesi için öndeğer listesi" + +-#: cp/typeck2.c:812 ++#: cp/typeck2.c:802 + msgid "initializer list for object of class with base classes" + msgstr "taban sınıflarla sınıf nesnesi için öndeğer listesi" + +-#: cp/typeck2.c:818 ++#: cp/typeck2.c:808 + msgid "initializer list for object using virtual functions" + msgstr "sanal işlevler kullanan nesne için ilklendirici listesi" + +-#: cp/typeck2.c:880 cp/typeck2.c:896 ++#: cp/typeck2.c:870 cp/typeck2.c:886 + msgid "missing initializer for member `%D'" + msgstr "üye `%D' için ilklendirici eksik" + +-#: cp/typeck2.c:885 ++#: cp/typeck2.c:875 + msgid "uninitialized const member `%D'" + msgstr "ilklendirilmemiş sabit üyesi `%D'" + +-#: cp/typeck2.c:887 ++#: cp/typeck2.c:877 + msgid "member `%D' with uninitialized const fields" + msgstr "üye `%D' ilklendirilmemiş sabit alanlı" + +-#: cp/typeck2.c:890 ++#: cp/typeck2.c:880 + msgid "member `%D' is uninitialized reference" + msgstr "üye `%D' ilklendirilmemiş referanstır" + +-#: cp/typeck2.c:937 ++#: cp/typeck2.c:927 + msgid "index value instead of field name in union initializer" + msgstr "birleşik yapı ilklendiricideki alan isminin yerine index değeri" + +-#: cp/typeck2.c:949 ++#: cp/typeck2.c:939 + msgid "no field `%D' in union being initialized" + msgstr "birleşik yapı ilklendirmesinde `%D' diye bir alan yok" + +-#: cp/typeck2.c:957 ++#: cp/typeck2.c:947 + msgid "union `%T' with no named members cannot be initialized" + msgstr "union `%T' isimli üyeler yokken ilklendirilemez" + +-#: cp/typeck2.c:993 ++#: cp/typeck2.c:983 + msgid "excess elements in aggregate initializer" + msgstr "küme ilklendiricide gereğinden fazla öğe" + +-#: cp/typeck2.c:1102 ++#: cp/typeck2.c:1092 + msgid "circular pointer delegation detected" + msgstr "döngüsel gösterici görevlendirmesi saptandı" + +-#: cp/typeck2.c:1115 ++#: cp/typeck2.c:1105 + msgid "base operand of `->' has non-pointer type `%T'" + msgstr "`->' için taban terim bir gösterici olmayan `%T' türünde" + +-#: cp/typeck2.c:1139 ++#: cp/typeck2.c:1129 + msgid "result of `operator->()' yields non-pointer result" + msgstr "`operator->()' gösterici olmayan sonuç veriyor" + +-#: cp/typeck2.c:1141 ++#: cp/typeck2.c:1131 + msgid "base operand of `->' is not a pointer" + msgstr "`->' için taban terim bir gösterici değil" + +-#: cp/typeck2.c:1164 ++#: cp/typeck2.c:1154 + msgid "`%E' cannot be used as a member pointer, since it is of type `%T'" + msgstr "`%E', `%T' türünde olduğundan bir üye göstericisi olarak kullanılamaz" + +-#: cp/typeck2.c:1172 ++#: cp/typeck2.c:1162 + msgid "cannot apply member pointer `%E' to `%E', which is of non-aggregate type `%T'" + msgstr "üye göstericisi `%E' kümeleme türü olmayan `%T' türündeki `%E' ye uygulanamaz" + +-#: cp/typeck2.c:1182 ++#: cp/typeck2.c:1172 + msgid "member type `%T::' incompatible with object type `%T'" + msgstr "üye türü `%T::' nesne türü `%T' ile uyumsuz" + +-#: cp/typeck2.c:1398 ++#: cp/typeck2.c:1388 + msgid "call to function `%D' which throws incomplete type `%#T'" + msgstr "içi boş tür `%#T' yakalanırken `%D' işlevine çağrı" + +-#: cp/typeck2.c:1401 ++#: cp/typeck2.c:1391 + msgid "call to function which throws incomplete type `%#T'" + msgstr "içi boş tür `%#T' yakalanırken işleve çağrı" + + #. XXX Not i18n clean. +-#: cp/cp-tree.h:3756 ++#: cp/cp-tree.h:3775 + #, c-format + msgid "%s is deprecated, please see the documentation for details" + msgstr "%s artık kullanılmıyor, lütfen ayrıntılar için belgelere bakınız" +@@ -18854,291 +18930,228 @@ + msgid "internal error - invalid Utf8 name" + msgstr "iç hata - Utf8 ismi geçersiz" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse-scan.y:880 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:949 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1290 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1351 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1555 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1777 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1786 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1797 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1808 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1820 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1835 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1852 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1854 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1935 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2106 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2168 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2320 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2332 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2339 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2346 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2357 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2359 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2397 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2399 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2401 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2422 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2424 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2426 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2442 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2444 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2465 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2467 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2469 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2497 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2499 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2501 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2503 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2521 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2523 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2534 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2545 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2556 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2567 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2578 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2591 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2595 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2597 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2610 ++#: ../../gcc/java/parse-scan.y:880 ../../gcc/java/parse.y:949 ++#: ../../gcc/java/parse.y:1290 ../../gcc/java/parse.y:1351 ++#: ../../gcc/java/parse.y:1555 ../../gcc/java/parse.y:1777 ++#: ../../gcc/java/parse.y:1786 ../../gcc/java/parse.y:1797 ++#: ../../gcc/java/parse.y:1808 ../../gcc/java/parse.y:1820 ++#: ../../gcc/java/parse.y:1835 ../../gcc/java/parse.y:1852 ++#: ../../gcc/java/parse.y:1854 ../../gcc/java/parse.y:1935 ++#: ../../gcc/java/parse.y:2106 ../../gcc/java/parse.y:2168 ++#: ../../gcc/java/parse.y:2320 ../../gcc/java/parse.y:2332 ++#: ../../gcc/java/parse.y:2339 ../../gcc/java/parse.y:2346 ++#: ../../gcc/java/parse.y:2357 ../../gcc/java/parse.y:2359 ++#: ../../gcc/java/parse.y:2397 ../../gcc/java/parse.y:2399 ++#: ../../gcc/java/parse.y:2401 ../../gcc/java/parse.y:2422 ++#: ../../gcc/java/parse.y:2424 ../../gcc/java/parse.y:2426 ++#: ../../gcc/java/parse.y:2442 ../../gcc/java/parse.y:2444 ++#: ../../gcc/java/parse.y:2465 ../../gcc/java/parse.y:2467 ++#: ../../gcc/java/parse.y:2469 ../../gcc/java/parse.y:2497 ++#: ../../gcc/java/parse.y:2499 ../../gcc/java/parse.y:2501 ++#: ../../gcc/java/parse.y:2503 ../../gcc/java/parse.y:2521 ++#: ../../gcc/java/parse.y:2523 ../../gcc/java/parse.y:2534 ++#: ../../gcc/java/parse.y:2545 ../../gcc/java/parse.y:2556 ++#: ../../gcc/java/parse.y:2567 ../../gcc/java/parse.y:2578 ++#: ../../gcc/java/parse.y:2591 ../../gcc/java/parse.y:2595 ++#: ../../gcc/java/parse.y:2597 ../../gcc/java/parse.y:2610 + msgid "Missing term" + msgstr "Terim eksik" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse-scan.y:882 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:721 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:759 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:784 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:970 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1325 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1531 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1533 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1762 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1788 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1799 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1810 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1822 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1837 ++#: ../../gcc/java/parse-scan.y:882 ../../gcc/java/parse.y:721 ++#: ../../gcc/java/parse.y:759 ../../gcc/java/parse.y:784 ++#: ../../gcc/java/parse.y:970 ../../gcc/java/parse.y:1325 ++#: ../../gcc/java/parse.y:1531 ../../gcc/java/parse.y:1533 ++#: ../../gcc/java/parse.y:1762 ../../gcc/java/parse.y:1788 ++#: ../../gcc/java/parse.y:1799 ../../gcc/java/parse.y:1810 ++#: ../../gcc/java/parse.y:1822 ../../gcc/java/parse.y:1837 + msgid "';' expected" + msgstr "';' gerekli" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:719 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:757 ++#: ../../gcc/java/parse.y:719 ../../gcc/java/parse.y:757 + msgid "Missing name" + msgstr "İsim eksik" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:782 ++#: ../../gcc/java/parse.y:782 + msgid "'*' expected" + msgstr "'*' gerekli" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:796 ++#: ../../gcc/java/parse.y:796 + msgid "Class or interface declaration expected" + msgstr "Sınıf ya da arabirim bildirimi gerekli" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:833 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:835 ++#: ../../gcc/java/parse.y:833 ../../gcc/java/parse.y:835 + msgid "Missing class name" + msgstr "Sınıf ismi yok" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:838 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:842 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:850 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1010 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1271 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1273 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1597 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1848 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1880 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1942 ++#: ../../gcc/java/parse.y:838 ../../gcc/java/parse.y:842 ++#: ../../gcc/java/parse.y:850 ../../gcc/java/parse.y:1010 ++#: ../../gcc/java/parse.y:1271 ../../gcc/java/parse.y:1273 ++#: ../../gcc/java/parse.y:1597 ../../gcc/java/parse.y:1848 ++#: ../../gcc/java/parse.y:1880 ../../gcc/java/parse.y:1942 + msgid "'{' expected" + msgstr "'{' gerekli" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:852 ++#: ../../gcc/java/parse.y:852 + msgid "Missing super class name" + msgstr "Süper sınıf ismi eksik" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:862 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:878 ++#: ../../gcc/java/parse.y:862 ../../gcc/java/parse.y:878 + msgid "Missing interface name" + msgstr "Arabirim ismi yok" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:964 ++#: ../../gcc/java/parse.y:964 + msgid "Missing variable initializer" + msgstr "Değişken ilklendirici eksik" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:981 ++#: ../../gcc/java/parse.y:981 + msgid "Invalid declaration" + msgstr "Geçersiz bildirim" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:984 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1069 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2143 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2165 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2169 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2204 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2281 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2291 ++#: ../../gcc/java/parse.y:984 ../../gcc/java/parse.y:1069 ++#: ../../gcc/java/parse.y:2143 ../../gcc/java/parse.y:2165 ++#: ../../gcc/java/parse.y:2169 ../../gcc/java/parse.y:2204 ++#: ../../gcc/java/parse.y:2281 ../../gcc/java/parse.y:2291 + msgid "']' expected" + msgstr "']' gerekli" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:988 ++#: ../../gcc/java/parse.y:988 + msgid "Unbalanced ']'" + msgstr "karşılıksız ']'" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1024 ++#: ../../gcc/java/parse.y:1024 + msgid "Invalid method declaration, method name required" + msgstr "Yöntem bildirimi geçersiz, yöntem ismi gerekiyor" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1029 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1034 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1039 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2026 ++#: ../../gcc/java/parse.y:1029 ../../gcc/java/parse.y:1034 ++#: ../../gcc/java/parse.y:1039 ../../gcc/java/parse.y:2026 + msgid "Identifier expected" + msgstr "Tanıtıcı gerekli" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1044 ++#: ../../gcc/java/parse.y:1044 + msgid "Invalid method declaration, return type required" + msgstr "Yöntem bildirimi geçersiz, return türü gerekli" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1067 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1511 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1518 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1527 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1529 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1557 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1665 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1971 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2024 ++#: ../../gcc/java/parse.y:1067 ../../gcc/java/parse.y:1511 ++#: ../../gcc/java/parse.y:1518 ../../gcc/java/parse.y:1527 ++#: ../../gcc/java/parse.y:1529 ../../gcc/java/parse.y:1557 ++#: ../../gcc/java/parse.y:1665 ../../gcc/java/parse.y:1971 ++#: ../../gcc/java/parse.y:2024 + msgid "')' expected" + msgstr "')' gerekli" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1083 ++#: ../../gcc/java/parse.y:1083 + msgid "Missing formal parameter term" + msgstr "Biçimsel parametre terimi eksik" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1098 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1103 ++#: ../../gcc/java/parse.y:1098 ../../gcc/java/parse.y:1103 + msgid "Missing identifier" + msgstr "Tanıtıcı eksik" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1123 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1132 ++#: ../../gcc/java/parse.y:1123 ../../gcc/java/parse.y:1132 + msgid "Missing class type term" + msgstr "class tür terimi eksik" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1288 ++#: ../../gcc/java/parse.y:1288 + msgid "Invalid interface type" + msgstr "Geçersiz arabirim türü" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1475 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1644 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1646 ++#: ../../gcc/java/parse.y:1475 ../../gcc/java/parse.y:1644 ++#: ../../gcc/java/parse.y:1646 + msgid "':' expected" + msgstr "':' gerekli" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1497 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1502 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1507 ++#: ../../gcc/java/parse.y:1497 ../../gcc/java/parse.y:1502 ++#: ../../gcc/java/parse.y:1507 + msgid "Invalid expression statement" + msgstr "Geçersiz ifade satırı" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1525 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1553 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1593 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1661 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1729 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1850 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1928 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2018 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2020 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2028 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2264 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2266 ++#: ../../gcc/java/parse.y:1525 ../../gcc/java/parse.y:1553 ++#: ../../gcc/java/parse.y:1593 ../../gcc/java/parse.y:1661 ++#: ../../gcc/java/parse.y:1729 ../../gcc/java/parse.y:1850 ++#: ../../gcc/java/parse.y:1928 ../../gcc/java/parse.y:2018 ++#: ../../gcc/java/parse.y:2020 ../../gcc/java/parse.y:2028 ++#: ../../gcc/java/parse.y:2264 ../../gcc/java/parse.y:2266 + msgid "'(' expected" + msgstr "'(' gerekli" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1595 ++#: ../../gcc/java/parse.y:1595 + msgid "Missing term or ')'" + msgstr "Terim ya da ')' eksik" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1642 ++#: ../../gcc/java/parse.y:1642 + msgid "Missing or invalid constant expression" + msgstr "Geçersiz ya da eksik sabit ifadesi" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1663 ++#: ../../gcc/java/parse.y:1663 + msgid "Missing term and ')' expected" + msgstr "Terim eksik ve ')' gerekli" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1702 ++#: ../../gcc/java/parse.y:1702 + msgid "Invalid control expression" + msgstr "Geçersiz denetim ifadesi" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1704 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1706 ++#: ../../gcc/java/parse.y:1704 ../../gcc/java/parse.y:1706 + msgid "Invalid update expression" + msgstr "Geçersiz güncelleme ifadesi" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1731 ++#: ../../gcc/java/parse.y:1731 + msgid "Invalid init statement" + msgstr "Geçersiz ilklendirme satırı" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1931 ++#: ../../gcc/java/parse.y:1931 + msgid "Missing term or ')' expected" + msgstr "Terim eksik ya da ')' gerekli" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1973 ++#: ../../gcc/java/parse.y:1973 + msgid "'class' or 'this' expected" + msgstr "'class' ya da 'this' gerekli" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1975 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:1977 ++#: ../../gcc/java/parse.y:1975 ../../gcc/java/parse.y:1977 + msgid "'class' expected" + msgstr "'class' gerekli" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2022 ++#: ../../gcc/java/parse.y:2022 + msgid "')' or term expected" + msgstr "')' ya da terim gerekli" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2141 ++#: ../../gcc/java/parse.y:2141 + msgid "'[' expected" + msgstr "'[' gerekli" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2219 ++#: ../../gcc/java/parse.y:2219 + msgid "Field expected" + msgstr "Alan gerekli" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2276 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2286 ++#: ../../gcc/java/parse.y:2276 ../../gcc/java/parse.y:2286 + msgid "Missing term and ']' expected" + msgstr "Terim eksik ve ']' gerekli" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2390 ++#: ../../gcc/java/parse.y:2390 + msgid "']' expected, invalid type expression" + msgstr "']' gerekli ve tür ifadesi geçersiz" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2393 ++#: ../../gcc/java/parse.y:2393 + msgid "Invalid type expression" + msgstr "Geçersiz tür ifadesi" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2505 ++#: ../../gcc/java/parse.y:2505 + msgid "Invalid reference type" + msgstr "Geçersiz referans türü" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2977 ++#: ../../gcc/java/parse.y:2977 + msgid "Constructor invocation must be first thing in a constructor" + msgstr "Constructor çağrısı bir kurucu içindeki ilk şey olmalı" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2979 ++#: ../../gcc/java/parse.y:2979 + msgid "Only constructors can invoke constructors" + msgstr "Sadece kurucular birbirini çağırabilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:2987 ++#: ../../gcc/java/parse.y:2987 + #, c-format + msgid ": `%s' JDK1.1(TM) feature" + msgstr ": `%s' JDK1.1(TM) özelliği" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:3046 +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:3048 ++#: ../../gcc/java/parse.y:3046 ../../gcc/java/parse.y:3048 + #, c-format + msgid "" + "%s.\n" +@@ -19147,32 +19160,32 @@ + "%s.\n" + "%s" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:6909 ++#: ../../gcc/java/parse.y:6909 + #, c-format + msgid "malformed .zip archive in CLASSPATH: %s" + msgstr "CLASSPATH içinde bozuk .zip arşivi: %s" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:6980 ++#: ../../gcc/java/parse.y:6980 + #, c-format + msgid "Can't find default package `%s'. Check the CLASSPATH environment variable and the access to the archives" + msgstr "Öntanımlı `%s' paketi bulunamıyor. CLASSPATH ortam değişkenini ve arşivlere erişimi kontrol ediniz" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12193 ++#: ../../gcc/java/parse.y:12193 + #, c-format + msgid "missing static field `%s'" + msgstr "statik alan `%s' eksik" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12198 ++#: ../../gcc/java/parse.y:12198 + #, c-format + msgid "not a static field `%s'" + msgstr "`%s' bir statik alan değil" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:12241 ++#: ../../gcc/java/parse.y:12241 + #, c-format + msgid "No case for %s" + msgstr "%s için uygun bir case yok" + +-#: /home/mitchell/gcc-3.4.1-20040625/gcc-3.4.1-20040625/gcc/java/parse.y:13173 ++#: ../../gcc/java/parse.y:13173 + #, c-format + msgid "unregistered operator %s" + msgstr "%s işleci tanınmıyor" +@@ -19511,1798 +19524,1426 @@ + msgid "[super ...] must appear in a method context" + msgstr "[super ...] bir yöntem bağlamında görünmeli" + +-#: objc/objc-parse.y:2701 ++#: objc/objc-parse.y:2700 + msgid "`@end' must appear in an implementation context" + msgstr "`@end' bir oluşum bağlamında görünmeli" + +-#: objc/objc-parse.y:2914 ++#: objc/objc-parse.y:2913 + msgid "method definition not in class context" + msgstr "yöntem tanımı sınıf bağlamında değil" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:23 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:21 + msgid "Display this information" + msgstr "Bu yardım iletisi gösterilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:29 +-msgid "--param =\tSet paramter to value. See below for a complete list of parameters" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:27 ++#, fuzzy ++msgid "--param =\tSet parameter to value. See below for a complete list of parameters" + msgstr "--param =\tParametreye değer atanır. Parametrelerin tam listesi aşağıdadır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:38 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:36 + msgid "-A=\tAssert the to . Putting '-' before disables the to " + msgstr "-A=\tSoruya yanıt olumlanır. dan önce '-' konursa soruya yanıt iptal edilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:41 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:39 + msgid "Do not discard comments" + msgstr "Açıklamalar iptal edilmez" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:44 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:42 + msgid "Do not discard comments in macro expansions" + msgstr "Makro yorumlamalarında açıklamalar iptal edilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:47 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:45 + msgid "-D[=]\tDefine a with as its value. If just is given, is taken to be 1" + msgstr "-D[=]\t, değeriyle tanımlanır. Değer verilmezse 1 kabul edilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:53 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:51 + msgid "-G\tPut global and static data smaller than bytes into a special section (on some targets)" + msgstr "-G SAYI\tGlobal ve static verileri SAYI bayttan daha küçükse (bazı hedeflerdeki) bir özel bölüme koyar" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:56 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:54 + msgid "Print the name of header files as they are used" + msgstr "Başlık dosyalarının isimleri kullanılmış olarak basılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:65 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:57 ++msgid "-I \tAdd to the end of the main include path. -I- gives more include path control; see info documentation" ++msgstr "-I DİZİN\tDİZİN ana başlık dosyaları yolunun sonuna eklenir. -I- daha iyidir; bilgi sayfalarına bakınız" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:60 ++msgid "Generate make dependencies" ++msgstr "make bağımlılıkları üretilir" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:63 + msgid "Generate make dependencies and compile" + msgstr "Make bağımlılıklarını üretir ve derler" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:74 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:66 ++msgid "-MF \tWrite dependency output to the given file" ++msgstr "-MF DOSYA\tBağımlılık çıktıları belirtilen dosyaya yazılır" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:69 + msgid "Treat missing header files as generated files" + msgstr "Kayıp başlık dosyaları üretilen dosyalar olarak ele alınır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:80 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:72 ++msgid "Like -M but ignore system header files" ++msgstr "-M gibi, ancak sistem başlık dosyaları yoksayılır" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:75 + msgid "Like -MD but ignore system header files" + msgstr "-MD gibi, ancak sistem başlık dosyaları yoksayılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:89 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:78 ++#, fuzzy ++msgid "Generate phony targets for all headers" ++msgstr "Kod Intel as için üretilir" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:81 + msgid "-MQ \tAdd a MAKE-quoted target" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:95 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:84 ++msgid "-MT \tAdd an unquoted target" ++msgstr "" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:87 + msgid "-O\tSet optimization level to " + msgstr "-O[SAYI]\tEniyileme seviyesi SAYI olarak ayarlanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:98 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:90 + msgid "Optimize for space rather than speed" + msgstr "Hızdan çok boyut eniyilemesi yapılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:101 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:93 + msgid "Do not generate #line directives" + msgstr "#satır yönergeleri üretilmez" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:104 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:96 + msgid "-U\tUndefine " + msgstr "-U\t tanımsız yapılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:107 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:99 + msgid "This switch is deprecated; use -Wextra instead" + msgstr "Eski kullanım: yerine -Wextra kullanın" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:113 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:105 + msgid "Warn about returning structures, unions or arrays" + msgstr "Dönen yapı, birleşim ve diziler hakkında uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:119 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:108 ++msgid "Enable most warning messages" ++msgstr "Uyarı sıklığı iletileri etkinleştirilir" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:111 + msgid "Warn about casting functions to incompatible types" + msgstr "İşlevlerin uyumsuz türlere dönüştürülmesi durumunda uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:122 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:114 + msgid "Warn about pointer casts which increase alignment" + msgstr "Hizalamayı arttıran gösterici tür dönüşümlerinde uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:125 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:117 + msgid "Warn about casts which discard qualifiers" + msgstr "Niteleyicileri iptal eden tür dönüşümleri hakkında uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:128 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:120 + msgid "Warn about subscripts whose type is \"char\"" + msgstr "Türü \"char\" olan dizi indisleri hakkında uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:137 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:123 ++msgid "Warn about possibly nested block comments, and C++ comments spanning more than one physical line" ++msgstr "İç içe açıklama satırları ile bir fiziksel satırdan fazla olan C++ açıklamalarında uyarır" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:126 ++msgid "Synonym for -Wcomment" ++msgstr "-Wcomment ile aynı" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:129 + msgid "Warn about possibly confusing type conversions" + msgstr "Tür dönüşümlerinin olası karışıklığı hakkında uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:140 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:132 + msgid "Warn when all constructors and destructors are private" + msgstr "Tüm kurucu/yıkıcılar private olduğunda uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:143 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:135 + msgid "Warn when a declaration is found after a statement" + msgstr "Bir deyimden sonra gelen bir bildirimde uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:146 +-msgid "Warn if deprecated class, method, or field is used" +-msgstr "Eski tip sınıf, yöntem ya da alan bulunduğunda uyarır" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:138 ++msgid "Warn about deprecated compiler features" ++msgstr "Eskimiş derleyici özellikleri hakkında uyarmaz" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:149 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:141 + msgid "Warn about uses of __attribute__((deprecated)) declarations" + msgstr "__attribute__((eskidi)) bildirimlerinde uyarı verir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:152 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:144 + msgid "Warn when an optimization pass is disabled" + msgstr "Bir eniyileme aşaması iptal edildiğinde uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:155 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:147 + msgid "Warn about compile-time integer division by zero" + msgstr "Derleme anı sıfırla tamsayı bölme taşması için uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:158 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:150 + msgid "Warn about violations of Effective C++ style rules" + msgstr "Effective C++ tarzı kuralların çelişkilerinde uyarmaz" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:161 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:153 + msgid "Warn about stray tokens after #elif and #endif" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:164 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:156 + msgid "Treat all warnings as errors" + msgstr "Tüm uyarıların hata olduğu varsayılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:167 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:159 + msgid "Make implicit function declarations an error" + msgstr "İşlevlerin dolaylı bildirimlerinde hata verir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:170 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:162 + msgid "Print extra (possibly unwanted) warnings" + msgstr "Fazladan (istenmeyen) uyarılar basılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:173 +-msgid "Warn if deprecated empty statements are found" +-msgstr "Eski tip boş deyimler bulunduğunda uyarır" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:176 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:165 + msgid "Warn if testing floating point numbers for equality" + msgstr "Gerçek sayıların eşitlik sınamalarında uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:179 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:168 + msgid "Warn about printf/scanf/strftime/strfmon format string anomalies" + msgstr "printf/scanf/strftime/strfmon biçim dizgesi bozukluklarında uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:182 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:171 + msgid "Warn if passing too many arguments to a function for its format string" + msgstr "bir işleve biçim dizgesinde çok fazla argüman aktarılırsa uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:185 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:174 + msgid "Warn about format strings that are not literals" + msgstr "Bir sabit olmayan biçim dizgelerinde uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:188 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:177 + msgid "Warn about possible security problems with format functions" + msgstr "" + "biçimleme işlevleriyle ilgili olası güvenlik\n" + " sorunları hakkında uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:191 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:180 + msgid "Warn about strftime formats yielding 2-digit years" + msgstr "2 haneli yıllara yer veren strftime biçimlerde uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:200 +-msgid "Enable warnings about inter-procedural problems" +-msgstr "Yordamlar arası sorunlar hakkındaki uyarılar verilir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:206 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:192 + msgid "Warn about implicit function declarations" + msgstr "İşlevlerin dolaylı bildirimlerinde uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:209 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:195 + msgid "Warn when a declaration does not specify a type" + msgstr "Bir bildirimde tür belirtilmemişse uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:215 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:198 ++msgid "Deprecated. This switch has no effect." ++msgstr "Eski. Bu seçenek etkisizdir." ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:201 + msgid "Warn about variables which are initialized to themselves." + msgstr "Kendileriyle ilklendirilmiş değişkenlerde uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:218 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:204 + msgid "Warn when an inlined function cannot be inlined" + msgstr "Bir özümlemeli işlev özümlenemediğinde uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:221 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:207 + msgid "Warn about invalid uses of the \"offsetof\" macro" + msgstr "\"offsetof\" makrosunun geçersiz kullanımlarında uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:224 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:210 + msgid "Warn about PCH files that are found but not used" + msgstr "Kullanılmayan PCH dosyaları bulunduğunda uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:227 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:213 + msgid "-Wlarger-than-\tWarn if an object is larger than bytes" + msgstr "-Wlarger-than-SAYI\tBir nesne SAYI bayttan büyükse uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:230 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:216 + msgid "Do not warn about using \"long long\" when -pedantic" + msgstr "-pedantic ile \"long long\" kullanımı hakkında uyarmaz" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:233 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:219 + msgid "Warn about suspicious declarations of \"main\"" + msgstr "Kuşkulu \"main\" bildirimleri hakkında uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:236 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:222 + msgid "Warn about possibly missing braces around initializers" + msgstr "İlklendiricileri çevreleyen parantezler yoksa uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:239 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:225 + msgid "Warn about global functions without previous declarations" + msgstr "Önceden bildirilmemiş genel işlevler hakkında uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:242 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:228 + msgid "Warn about functions which might be candidates for format attributes" + msgstr "" + "biçim öznitelikleri için aday olabilecek işlevler\n" + " hakkında uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:245 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:231 + msgid "Warn about functions which might be candidates for __attribute__((noreturn))" + msgstr "__attribute__((noreturn)) özelliğine aday olabilecek işlevler hakkında uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:248 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:234 + msgid "Warn about global functions without prototypes" + msgstr "Prototipsiz genel işlevler hakkında uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:251 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:237 + msgid "Warn about use of multi-character character constants" + msgstr "Çoklu karakter sabitlerinin kullanımı hakkında uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:254 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:240 + msgid "Warn about \"extern\" declarations not at file scope" + msgstr "Dosya etki alanı içinde olmayan \"extern\" bildirimlerinde uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:257 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:243 + msgid "Warn when non-templatized friend functions are declared within a template" + msgstr "Şablonlanmış olmayan kardeş işlevler bir şablonla bildirildiğinde uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:260 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:246 + msgid "Warn about non-virtual destructors" + msgstr "Sanal olmayan yıkıcılar hakkında uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:266 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:252 + msgid "Warn if a C-style cast is used in a program" + msgstr "Bir yazılımda C tarzı tür dönüşümü kullanılmışsa uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:269 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:255 + msgid "Warn if an old-style parameter definition is used" + msgstr "Bir eski tarz parametre tanımı kullanılmamışsa uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:272 +-msgid "Warn if .class files are out of date" +-msgstr ".class dosyaları güncel değilse uyarır" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:275 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:258 + msgid "Warn about overloaded virtual function names" + msgstr "Aşırı yüklü sanal işlev isimleri hakkında uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:278 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:261 + msgid "Warn when the packed attribute has no effect on struct layout" + msgstr "Paketli öznitelik yapı yerleşiminde etkisizse uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:281 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:264 + msgid "Warn when padding is required to align structure members" + msgstr "Yapı üyelerini hizalamak için adımlama gerekliyse uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:284 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:267 + msgid "Warn about possibly missing parentheses" + msgstr "Olası eksik parantezler hakkında uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:287 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:270 + msgid "Warn when converting the type of pointers to member functions" + msgstr "Üye işlev göstericilerinin tür dönüşümlerinde uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:290 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:273 + msgid "Warn about function pointer arithmetic" + msgstr "İşlev gösterici aritmetiği hakkında uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:293 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:276 + msgid "Warn if inherited methods are unimplemented" + msgstr "Kalıt yöntemler oluşturulmamışsa uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:296 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:279 + msgid "Warn about multiple declarations of the same object" + msgstr "Aynı nesne birden fazla bildirilmişse uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:299 +-msgid "Warn if modifiers are specified when not necessary" +-msgstr "Değiştiriciler gereksizken belirtilmişse uyarır" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:302 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:282 + msgid "Warn when the compiler reorders code" + msgstr "Derleyici kodu yeniden sıralarken uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:305 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:285 + msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)" + msgstr "bir işlevin dönen türünün \"int\"e öntanımlılığında (C) ya da belirsiz dönüş türlerinde (C++) uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:308 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:288 + msgid "Warn if a selector has multiple methods" + msgstr "Bir seçici çoklu yöntemlere sahipse uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:311 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:291 + msgid "Warn about possible violations of sequence point rules" + msgstr "" + "Ardışık nokta kurallarının olası çelişkileri\n" + " hakkında uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:314 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:294 + msgid "Warn when one local variable shadows another" + msgstr "Bir yerel değişken bir diğerini gölgeliyorsa uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:317 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:297 + msgid "Warn about signed-unsigned comparisons" + msgstr "signed/unsigned karşılaştırmalarında uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:320 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:300 + msgid "Warn when overload promotes from unsigned to signed" + msgstr "" + "unsigned'dan signed'a yükseltmelerin aşırı\n" + " yüklemesinde uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:323 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:303 + msgid "Warn about code which might break strict aliasing rules" + msgstr "Adlandırma kurallarının değişmezliğini bozabilen kod varsa uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:326 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:306 + msgid "Warn about unprototyped function declarations" + msgstr "Prototipsiz işlev bildirimlerinde uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:329 +-msgid "Warn about constructs with surprising meanings" +-msgstr "Yapılar hakkında sürpriz niteliğinde uyarı verilir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:332 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:309 + msgid "Warn about enumerated switches, with no default, missing a case" + msgstr "" + "Numaralı switch'lerde case eksikse veya\n" + " default yoksa uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:335 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:312 + msgid "Warn about enumerated switches missing a \"default:\" statement" + msgstr "Numaralı switch'lerde \"default:\" yoksa uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:338 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:315 + msgid "Warn about all enumerated switches missing a specific case" + msgstr "Numaralı switch'lerde belli bir case eksikse uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:341 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:318 + msgid "Warn when synthesis behavior differs from Cfront" + msgstr "Sentezleme davranışı Cfront'dan farklıysa uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:344 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:321 + msgid "Do not suppress warnings from system headers" + msgstr "Sistem başlık dosyalarından gelen uyarılar engellenmez" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:347 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:324 + msgid "Warn about features not present in traditional C" + msgstr "Geleneksel C'de olmayan özelliklerde uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:356 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:327 ++msgid "Warn if trigraphs are encountered that might affect the meaning of the program" ++msgstr "Yazılımın anlamını etkileyebilecek üçlü harfler saptanırsa uyarır" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:333 + msgid "Warn if an undefined macro is used in an #if directive" + msgstr "#if yönergesinde tanımsız yapılmış makro kullanılmışsa uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:359 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:336 + msgid "Warn about uninitialized automatic variables" + msgstr "İlklendirilmemiş otomatik değişkenler hakkında uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:362 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:339 + msgid "Warn about unrecognized pragmas" + msgstr "tanımlanamayan #pragma'lar hakkında uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:365 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:342 + msgid "Warn about code that will never be executed" + msgstr "Hiç çalışmayacak kod hakkında uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:368 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:345 + msgid "Enable all -Wunused- warnings" + msgstr "-Wunused- uyarılarının tamamı etkinleştirilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:371 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:348 + msgid "Warn when a function is unused" + msgstr "Bir işlev kullanılmamışsa uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:374 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:351 + msgid "Warn when a label is unused" + msgstr "Bir etiket kullanılmamışsa uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:377 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:354 + msgid "Warn about macros defined in the main file that are not used" + msgstr "Ana dosyada kullanılmamış olan makro tanımlarında uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:380 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:357 + msgid "Warn when a function parameter is unused" + msgstr "Bir işlev parametresi kullanılmamışsa uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:383 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:360 + msgid "Warn when an expression value is unused" + msgstr "Bir ifade değeri kullanılmamışsa uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:386 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:363 + msgid "Warn when a variable is unused" + msgstr "Bir değişken kullanılmamışsa uyarır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:389 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:366 + msgid "Give strings the type \"array of char\"" + msgstr "Dizgeler \"char dizileri\" türünde verilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:392 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:369 + msgid "A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead" + msgstr "-std=c89 karşılığı bir isim. GCCnin ileri sürümleri -std=c99 yerine eşanlamlıları ile gelebilecek " + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:395 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:372 + msgid "-aux-info \tEmit declaration information into " + msgstr "-aux-info DOSYA\tBildirim bilgileri DOSYAda gösterilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:407 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:384 + msgid "-d\tEnable dumps from specific passes of the compiler" + msgstr "-d[HARFLER]\tBelirli derleyici aşamalarının dökümlenmesi etkinleştirilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:410 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:387 + msgid "-dumpbase \tSet the file basename to be used for dumps" + msgstr "-dumpbase DOSYA\tDerleyici aşamalarının dökümleneceği DOSYA" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:413 +-msgid "--CLASSPATH\tDeprecated; use --classpath instead" +-msgstr "--CLASSPATH\t eski kullanım; yerine --classpath kullanın" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:425 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:399 + msgid "Enforce class member access control semantics" + msgstr "Sınıf üyesi erişim denetimi kurallarına uyulur" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:428 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:402 + msgid "Align the start of functions" + msgstr "İşlevlerin başlangıcı hizalanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:434 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:408 + msgid "Align labels which are only reached by jumping" + msgstr "" + "Sadece atlanarak ulaşılabilen hedefler bayt\n" + " sınırlarına ayarlanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:440 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:414 + msgid "Align all labels" + msgstr "Tüm dallanma hedefleri bayt sınırlarına ayarlanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:446 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:420 + msgid "Align the start of loops" + msgstr "Döngü başlangıçları bayt sınırlarına ayarlanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:455 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:429 + msgid "Change when template instances are emitted" + msgstr "Şablon gerçeklemeleri yayınlandığında değiştirilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:458 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:432 + msgid "Specify that arguments may alias each other and globals" + msgstr "Argümanların bir diğerinin ya da globallerin takma adı olabileceği varsayılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:461 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:435 + msgid "Assume arguments may alias globals but not each other" + msgstr "" + "Argümanların globallerden başkasına takma ad\n" + " olamayacağı varsayılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:464 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:438 + msgid "Assume arguments alias neither each other nor globals" + msgstr "Argümanların bir diğerine ya da globallere takma ad olmadığı varsayılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:467 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:441 + msgid "Recognize the \"asm\" keyword" + msgstr "\"asm\" anahtar sözcüğü tanınır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:479 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:444 + msgid "Generate unwind tables that are exact at each instruction boundary" + msgstr "Birbirlerini etkilemeyenlerin tablosu her komutun tam sınırında oluşturulur" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:482 +-msgid "Do not treat local variables and COMMON blocks as if they were named in SAVE statements" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:447 ++msgid "Generate code to check bounds before indexing arrays" + msgstr "" +-"Yerel değişkenler ve COMMON blokları SAVE\n" +-" deyimlerinde adlandırılmış olarak değerlendirilmez." ++"Diziler indislenmeden önce sınrlarını\n" ++" denetleyecek kod üretilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:485 +-msgid "Backslashes in character and hollerith constants are special (not C-style)" +-msgstr "" +-"Tersbölüler ve karakter/hollerith sabitler özeldir\n" +-" (C-tarzı)" ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:450 ++msgid "Replace add, compare, branch with branch on count register" ++msgstr "Ekleme, karşılaştırma, dallanma sayaç yazmacı üzerinden dallanma ile değiştirilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:488 +-msgid "Delete libU77 intrinsics with bad interfaces" +-msgstr "Hatalı arabirimli libU77 yerleşikleri silinir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:491 +-msgid "Disable libU77 intrinsics with bad interfaces" +-msgstr "Hatalı arabirimli libU77 yerleşikleri iptal edilir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:494 +-msgid "Enable libU77 intrinsics with bad interfaces" +-msgstr "Hatalı arabirimli libU77 yerleşikleri etkin olur" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:497 +-msgid "Hide libU77 intrinsics with bad interfaces" +-msgstr "Hatalı arabirimli libU77 yerleşikleri gizlenir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:500 +-msgid "--bootclasspath=\tReplace system path" +-msgstr "--bootclasspath=\tSistem dosya yolu ile değiştirilir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:503 +-msgid "Generate code to check bounds before indexing arrays" +-msgstr "" +-"Diziler indislenmeden önce sınrlarını\n" +-" denetleyecek kod üretilir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:506 +-msgid "Replace add, compare, branch with branch on count register" +-msgstr "Ekleme, karşılaştırma, dallanma sayaç yazmacı üzerinden dallanma ile değiştirilir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:509 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:453 + msgid "Use profiling information for branch probabilities" + msgstr "" + "Dallanma olasılıkları için ayrımlama bilgileri\n" + " kullanılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:512 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:456 + msgid "Perform branch target load optimization before prologue / epilogue threading" + msgstr "Ön ve ard evreleme öncesi dal hedefli yük eniyilemesi uygulanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:515 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:459 + msgid "Perform branch target load optimization after prologue / epilogue threading" + msgstr "Ön ve ard evreleme sonrası dal hedefli yük eniyilemesi uygulanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:518 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:462 + msgid "Recognize built-in functions" + msgstr "Yerleşik işlevler tanınır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:524 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:468 + msgid "-fcall-saved-\tMark as being preserved across functions" + msgstr "-fcall-saved-YAZMAÇ\tYAZMAÇ işlevlere karşı korunmuş olarak imlenir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:527 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:471 + msgid "-fcall-used-\tMark as being corrupted by function calls" + msgstr "-fcall-used-YAZMAÇ\tYAZMAÇ işlev çağrıları tarafından bozulmuş olarak imlenir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:530 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:474 + msgid "Save registers around function calls" + msgstr "İşlev çağrıları civarındaki yazmaçlar kaydedilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:533 +-msgid "Program written in strict mixed-case" +-msgstr "Program BüyükKüçük harflerle yazılmıştır" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:536 +-msgid "Compile as if program written in lowercase" +-msgstr "Program küçük harflerle yazılmış olarak derlenir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:539 +-msgid "Preserve case used in program" +-msgstr "Programda harf büyüklüklerine dokunulmaz" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:542 +-msgid "Program written in lowercase" +-msgstr "Program küçük harflerle yazılmıştır" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:545 +-msgid "Program written in uppercase" +-msgstr "Program büyük harflerle yazılmıştır" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:548 +-msgid "Compile as if program written in uppercase" +-msgstr "Program büyük harflerle yazılmış olarak derlenir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:551 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:477 + msgid "Check the return value of new" + msgstr "new işlemiminin dönen değeri denetlenir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:557 +-msgid "--classpath=\tSet class path" +-msgstr "--classpath=\tSınıf dosya yolunu ayarlar" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:560 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:480 + msgid "Do not put uninitialized globals in the common section" + msgstr "İlklendirilmemiş global'ler ortak bölüme konmaz" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:566 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:483 + msgid "Allow the arguments of the '?' operator to have different types" + msgstr "? işlecinin argümanlarında farklı türlere izin verilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:569 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:486 + msgid "Reduce the size of object files" + msgstr "Nesne dosyalarını küçültür" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:572 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:489 + msgid "Make string literals \"const char[]\" not \"char[]\"" + msgstr "Dizge sabitler \"char[]\" değil \"const char[]\" yapılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:575 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:492 + msgid "-fconst-string-class=\tUse class for constant strings" + msgstr "-fconst-string-class=İSİM\tSabit dizgeleri için İSİM sınıfı kullanılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:578 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:495 + msgid "Perform a register copy-propagation optimization pass" + msgstr "Yazmaç kopyalama girişimi eniyileme aşaması uygulanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:581 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:498 + msgid "Perform cross-jumping optimization" + msgstr "Çapraz atlama eniyilemesi uygulanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:584 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:501 + msgid "When running CSE, follow jumps to their targets" + msgstr "" + "Ortak alt ifade elemesi sırasında onların\n" + " hedeflerine dallanmalar izlenir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:587 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:504 + msgid "When running CSE, follow conditional jumps" + msgstr "" + "Ortak alt ifade elemesi sırasında koşullu\n" + " dallanmalar izlenir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:590 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:507 + msgid "Place data items into their own section" + msgstr "Veri öğelerini kendi bölümlerine yerleştirir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:593 +-msgid "Emit special debugging information for COMMON and EQUIVALENCE (disabled)" +-msgstr "" +-"COMMON ve EQUIVALENCE için özel hata ayıklama\n" +-" bilgileri yayınlanır (iptal edildi)" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:596 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:510 + msgid "Inline member functions by default" + msgstr "Öntanımlı olarak üye işlevler satıriçidir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:599 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:513 + msgid "Defer popping functions args from stack until later" + msgstr "Yığından işlev argümanlarının çekilmesini erteler" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:602 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:516 + msgid "Attempt to fill delay slots of branch instructions" + msgstr "" + "Dallanma komutlarının gecikme yuvalarını doldurmaya\n" + " çalışır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:605 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:519 + msgid "Delete useless null pointer checks" + msgstr "Kullanışsız boş gösterici denetimlerini siler" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:608 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:522 + msgid "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source location at the beginning of line-wrapped diagnostics" + msgstr "-fdiagnostics-show-location=[once|every-line]\tSatır sarmalaması başlangıcında, önek olarak, kaynak konumu bilgisinin ne sıklıkta gösterileceği belirtilir. once: bir kere, every-line: her satırda" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:611 +-msgid "Allow '$' in symbol names" +-msgstr "Sembol isimlerinde '$' kullanımına izin verilir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:614 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:525 + msgid "Permit '$' as an identifier character" + msgstr "Bir belirteç karakteri olarak '$' kullanılabilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:620 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:528 ++msgid "-fdump-\tDump various compiler internals to a file" ++msgstr "-fdump-TÜR\tBelirtilen derleyici iç oluşumları bir dosyaya dökümlenir" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:531 + msgid "Suppress output of instruction numbers and line number notes in debugging dumps" + msgstr "" + "Hata ayıklama dökümlerinde satır numarası ve komut\n" + " numarası bilgilerinın çıktılanması engellenir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:626 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:537 + msgid "Perform DWARF2 duplicate elimination" + msgstr "DWARF2 yinelenmiş elemesi uygulanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:629 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:632 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:540 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:543 + msgid "Perform unused type elimination in debug info" + msgstr "Hata ayıklama bilgilerinde kullanılmamış tür elemesi uygulanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:641 +-msgid "Have front end emulate COMPLEX arithmetic to avoid bugs" +-msgstr "" +-"Hatalara sebep olmamak için COMPLEX aritmetiği\n" +-" emüle edilir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:644 +-msgid "--encoding=\tChoose input encoding (defaults from your locale)" +-msgstr "--encoding=\tGirdi kodlaması seçilir (öntanımlısı yerelden gelir)" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:647 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:546 + msgid "Generate code to check exception specifications" + msgstr "Olağandışılık belirtimlerini denetleyecek kod üretilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:653 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:552 + msgid "Enable exception handling" + msgstr "Olağandışılıkların yakalanması etkinleştirilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:656 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:555 + msgid "-fexec-charset=\tConvert all strings and character constants to character set " + msgstr "-fexec-charset=KRK-KÜME\tTüm dizgeler ve karakter sabitleri KRK-KÜME karakter kümesine dönüştürülür" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:659 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:558 + msgid "Perform a number of minor, expensive optimizations" + msgstr "Masraflı eniyilemelerden birkaçını uygular" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:668 +-msgid "f2c-compatible code can be generated" +-msgstr "f2c uyumlu kod üretililemez" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:671 +-msgid "Delete non-FORTRAN-77 intrinsics f2c supports" +-msgstr "" +-"FORTRAN-77 olmayan yerleşiklerin f2c destekleri\n" +-" silinir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:674 +-msgid "Disable non-FORTRAN-77 intrinsics f2c supports" +-msgstr "" +-"FORTRAN-77 olmayan yerleşiklerin f2c destekleri\n" +-" iptal edilir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:677 +-msgid "Enable non-FORTRAN-77 intrinsics f2c supports" +-msgstr "" +-"FORTRAN-77 olmayan yerleşiklerin f2c destekleri\n" +-" etkin olur" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:680 +-msgid "Hide non-FORTRAN-77 intrinsics f2c supports" +-msgstr "" +-"FORTRAN-77 olmayan yerleşiklerin f2c destekleri\n" +-" gizlenir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:683 +-msgid "Unsupported; generate libf2c-calling code" +-msgstr "Desteklenmiyor; libf2c çağrı kodu üretilir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:686 +-msgid "Program is written in typical FORTRAN 66 dialect" +-msgstr "Program tipik FORTRAN 66 dilinde yazılmıştır" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:689 +-msgid "Program is written in typical Unix-f77 dialect" +-msgstr "Program tipik Unix-f77 dilinde yazılmıştır" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:692 +-msgid "Program is written in Fortran-90-ish dialect" +-msgstr "Program tipik Fortran-90 dilinde yazılmıştır" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:695 +-msgid "Delete non-FORTRAN-77 intrinsics F90 supports" +-msgstr "" +-"FORTRAN-77 olmayan yerleşiklerin F90 destekleri\n" +-" silinir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:698 +-msgid "Disable non-FORTRAN-77 intrinsics F90 supports" +-msgstr "" +-"FORTRAN-77 olmayan yerleşiklerin F90 destekleri\n" +-" iptal edilir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:701 +-msgid "Enable non-FORTRAN-77 intrinsics F90 supports" +-msgstr "" +-"FORTRAN-77 olmayan yerleşiklerin F90 destekleri\n" +-" etkin olur" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:704 +-msgid "Hide non-FORTRAN-77 intrinsics F90 supports" +-msgstr "" +-"FORTRAN-77 olmayan yerleşiklerin F90 destekleri\n" +-" gizlenir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:716 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:567 + msgid "Assume no NaNs or infinities are generated" + msgstr "NaNların ya da sonsuzların üretilmediği varsayılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:719 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:570 + msgid "-ffixed-\tMark as being unavailable to the compiler" + msgstr "-ffixed-YAZMAÇ\tDerleyiciye YAZMAÇ yok denir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:725 +-msgid "ffixed-line-length-\tSet the maximum line length to " +-msgstr "ffixed-line-length-\tAzami satır uzunluğu 'ya ayarlanır" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:728 +-msgid "Unsupported; affects code generation of arrays" +-msgstr "Desteklenmiyor; dizilerin kod üretimi etkilenir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:731 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:579 + msgid "Do not store floats in registers" + msgstr "Gerçel sayılar yazmaçlarda saklanmaz" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:734 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:582 + msgid "Scope of for-init-statement variables is local to the loop" + msgstr "For döngüsü başlatma satırındaki değişkenlerin etki alanı döngüye yereldir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:737 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:585 + msgid "Copy memory address constants into registers before use" + msgstr "Kullanmadan önce bellek adres sabitlerini yazmaçlara kopyalar" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:740 +-msgid "Always check for non gcj generated classes archives" +-msgstr "" +-"gcj üretimi olmayan sınıfların arşivleri daima\n" +-" denetlenir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:743 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:588 + msgid "Copy memory operands into registers before use" + msgstr "Kullanmadan önce bellek terimlerini yazmaçlara kopyalar" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:746 +-msgid "Generate code to check subscript and substring bounds" +-msgstr "Dizi indislerini denetleyecek kod üretilir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:749 +-msgid "Program is written in Fortran-90-ish free form" +-msgstr "Program Fortran-90'ca serbest biçimde yazılmış" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:752 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:591 + msgid "Do not assume that standard C libraries and \"main\" exist" + msgstr "Standart kitaplıkların ve \"main\" işlevinin varolduğu varsayılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:755 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:594 + msgid "Allow function addresses to be held in registers" + msgstr "Yazmaçlarda tutulan işlev adreslerine izin verilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:758 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:597 + msgid "Place each function into its own section" + msgstr "Her işlev kendi bölümüne yerleştirilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:761 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:600 + msgid "Perform global common subexpression elimination" + msgstr "Global ortak alt ifade elemesi uygulanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:764 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:603 + msgid "Perform redundant load after store elimination in global common subexpression elimination" + msgstr "Genel ortak alt ifade elemesinde saklama elemesinden sonra gereğinden fazla yük uygulanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:767 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:606 + msgid "Perform enhanced load motion during global common subexpression elimination" + msgstr "Global ortak alt ifade elemesi sırasında genişletilmiş yük hareketi uygulanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:770 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:609 + msgid "Perform store motion after global common subexpression elimination" + msgstr "Global ortak alt ifade elemesinden sonra saklama hareketi uygulanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:773 +-msgid "Enable fatal diagnostics about inter-procedural problems" +-msgstr "" +-"Yordamlar arası sorunlar hakkındaki ölümcül tanılar\n" +-" etkin olur" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:776 +-msgid "Delete non-FORTRAN-77 intrinsics g77 supports" +-msgstr "" +-"FORTRAN-77 olmayan yerleşiklerin g77 destekleri\n" +-" silinir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:779 +-msgid "Disable non-FORTRAN 77 intrinsics F90 supports" +-msgstr "" +-"FORTRAN-77 olmayan yerleşiklerin g77 destekleri\n" +-" iptal edilir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:782 +-msgid "Enable non-FORTRAN 77 intrinsics F90 supports" +-msgstr "" +-"FORTRAN-77 olmayan yerleşiklerin g77 destekleri\n" +-" etkin olur" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:785 +-msgid "Hide non-FORTRAN 77 intrinsics F90 supports" +-msgstr "" +-"FORTRAN-77 olmayan yerleşiklerin g77 destekleri\n" +-" gizlenir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:788 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:612 + msgid "Recognize GNU-defined keywords" + msgstr "GNU tanımlı anahtar sözcükler tanınır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:791 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:615 + msgid "Generate code for GNU runtime environment" + msgstr "Kod GNU çalışma ortamı için üretilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:794 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:618 + msgid "Enable guessing of branch probabilities" + msgstr "Dallanma olasılıklarının tahmini etkinleştirilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:809 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:630 + msgid "Assume normal C execution environment" + msgstr "Normal C çalıştırma ortamı var sayılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:812 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:633 + msgid "Enable support for huge objects" + msgstr "Dev nesneler için destek etkinleştirilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:815 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:636 + msgid "Process #ident directives" + msgstr "#ident yönergeleri işlenir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:818 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:639 + msgid "Perform conversion of conditional jumps to branchless equivalents" + msgstr "" + "Dallanmasız karşılıklara koşullu atlama dönüşümü\n" + " uygulanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:821 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:642 + msgid "Perform conversion of conditional jumps to conditional execution" + msgstr "" + "Koşullu çalıştırmaya koşullu atlama dönüşümü\n" + " uygulanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:824 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:645 + msgid "Export functions even if they can be inlined" + msgstr "Özümlenebilir olsalar bile işlevler ihracedilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:827 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:648 + msgid "Emit implicit instantiations of inline templates" + msgstr "Satıriçi şablonların doğrudan gerçeklenmesi sağlanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:830 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:651 + msgid "Emit implicit instantiations of templates" + msgstr "Şablonlarının doğrudan gerçeklenmesi sağlanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:833 +-msgid "Use offset tables for virtual method calls" +-msgstr "" +-"Sanal yöntem çağrıları için adresleme tabloları\n" +-" kullanılır" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:836 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:654 + msgid "Do not generate .size directives" + msgstr ".size yönergeleri üretilmez" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:839 +-msgid "Initialize local vars and arrays to zero" +-msgstr "Yerel değişkenler ve diziler sıfır ile ilklendirilir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:842 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:657 + msgid "Pay attention to the \"inline\" keyword" + msgstr "\"inline\" anahtar sözcüğüne dikkat edilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:851 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:660 ++msgid "Integrate simple functions into their callers" ++msgstr "Basit işlevler onları çağıranların içine gömülür" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:666 + msgid "-finline-limit=\tLimit the size of inlined functions to " + msgstr "-finline-limit=SAYI\tSatıriçi kod içeren işlevlerin uzunluğu SAYI ile sınırlanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:854 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:669 + msgid "-finput-charset= Specify the default character set for source files." + msgstr "-finput-charset=KRK-KÜME Kaynak dosyaları için öntanımlı karakter kümesi." + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:857 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:672 + msgid "Instrument function entry and exit with profiling calls" + msgstr "İşlev giriş ve çıkışı ayrımlama çağrılarıyla yapılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:860 +-msgid "Intrinsics letters in arbitrary cases" +-msgstr "Yerleşikler gelişigüzel yazılmıştır" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:863 +-msgid "Intrinsics spelled as e.g. SqRt" +-msgstr "Yerleşikler SqRt tarzında hecelenir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:866 +-msgid "Intrinsics in lowercase" +-msgstr "Yerleşikler küçük harfle yazılmıştır" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:869 +-msgid "Intrinsics in uppercase" +-msgstr "Yerleşikler büyük harfle yazılmıştır" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:872 +-msgid "Assume native functions are implemented using JNI" +-msgstr "Yerli işlevlerin JNI kullanarak oluştuğu varsayılır" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:875 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:675 + msgid "Generate code for functions even if they are fully inlined" + msgstr "Tamamı satıriçi kod içerse bile işlevler için kod üretilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:878 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:678 + msgid "Emit static const variables even if they are not used" + msgstr "" + "Kullanılmamış bile olsa statik sabit değişkenler\n" + " içerilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:884 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:684 + msgid "Give external symbols a leading underscore" + msgstr "Alt çizgi ile başlayan dış semboller verilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:887 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:687 + msgid "Perform loop optimizations" + msgstr "Döngü eniyilemeleri uygulanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:890 +-msgid "Language keyword letters in arbitrary cases" +-msgstr "Dil anahtar sözcükleri gelişigüzel yazılmıştır" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:893 +-msgid "Language keywords spelled as e.g. IOStat" +-msgstr "Dil anahtar sözcükleri IOStat tarzı hecelenir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:896 +-msgid "Language keywords in lowercase" +-msgstr "Dil anahtar sözcükleri küçük harflerle yazılmıştır" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:899 +-msgid "Language keywords in uppercase" +-msgstr "Dil anahtar sözcükleri büyük harflerle yazılmıştır" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:902 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:690 + msgid "Set errno after built-in math functions" + msgstr "" + "Yerleşik matematik işlevlerinden sonra ERRNO\n" + " kullanılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:905 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:693 + msgid "Report on permanent memory allocation" + msgstr "Ayrılan kalıcı bellek miktarı raporlanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:908 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:696 + msgid "Attempt to merge identical constants and constant variables" + msgstr "" + "Özdeş sabitler ve sabit değişkenler katıştırılmaya\n" + " çalışılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:911 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:699 + msgid "Attempt to merge identical constants across compilation units" + msgstr "" + "Özdeş sabitler derleme birimlerine karşın\n" + " katıştırılmaya çalışılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:914 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:702 + msgid "-fmessage-length=\tLimit diagnostics to characters per line. 0 suppresses line-wrapping" + msgstr "-fmessage-length=SAYI\tTanı iletilerinin uzunluğu her satırda SAYI karakterle sınırlanır. 0 satır sarmalamayı engeller" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:917 +-msgid "Delete MIL-STD 1753 intrinsics" +-msgstr "MIL-STD 1753 yerleşikleri silinir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:920 +-msgid "Disable MIL-STD 1753 intrinsics" +-msgstr "MIL-STD 1753 yerleşikleri iptal edilir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:923 +-msgid "Enable MIL-STD 1753 intrinsics" +-msgstr "MIL-STD 1753 yerleşikleri etkin olur" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:926 +-msgid "Hide MIL-STD 1753 intrinsics" +-msgstr "MIL-STD 1753 yerleşikleri gizlenir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:929 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:705 + msgid "Force all loop invariant computations out of loops" + msgstr "" + "Döngülerdeki döngü dışına taşınacak olan değişimsiz\n" + " hesaplama etkinleştirir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:932 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:708 + msgid "Don't warn about uses of Microsoft extensions" + msgstr "Microsoft oluşumlarının kullanımı hakkındaki uyarılar verilmez" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:941 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:717 + msgid "Use graph-coloring register allocation" + msgstr "Çizim renklendiren yazmaç tahsisi kullanılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:944 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:720 + msgid "Generate code for NeXT (Apple Mac OS X) runtime environment" + msgstr "Kod NeXT (Apple Mac OS X) çalışma ortamı için üretilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:947 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:723 + msgid "Assume that receivers of Objective-C messages may be nil" + msgstr "Objective-C iletileri alıcılarının nil olabileceği varsayılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:950 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:726 + msgid "Support synchronous non-call exceptions" + msgstr "Eşzamanlı çağrısız olağandışılıklar desteklenir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:959 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:735 + msgid "Enable Objective-C exception and synchronization syntax" + msgstr "Objective-C olağandışılık ve eşzamanlama sözdizimi etkinleştirilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:962 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1286 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:738 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:978 + msgid "Perform loop unrolling for all loops" + msgstr "Tüm döngülere ters döngüleme uygulanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:965 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1289 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:741 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:981 + msgid "Perform loop unrolling when iteration count is known" + msgstr "Yineleme sayısı bilindiğinde ters döngüleme uygulanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:968 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:744 + msgid "When possible do not generate stack frames" + msgstr "Mümkün olduğunca yığın çerçeveleri üretilmez" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:971 +-msgid "Take at least one trip through each iterative DO loop" +-msgstr "Her yinelemeli DO döngüsü en azından bir tur atar" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:974 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:747 + msgid "Recognize C++ kewords like \"compl\" and \"xor\"" + msgstr "\"compl\" ve \"xor\" benzeri C++ anahtar sözcükleri tanınır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:977 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:750 + msgid "Do the full register move optimization pass" + msgstr "Baştan sona yazmaç taşıma eniyilemesi yapar" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:980 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:753 + msgid "Optimize sibling and tail recursive calls" + msgstr "Kardeş ve kuyruk özyinelemeli çağrılar eniyilenir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:983 +-msgid "Enable optimization of static class initialization code" +-msgstr "Statik sınıf ilklendirme kodunun eniyilemesi yapılır" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:986 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:756 + msgid "Enable optional diagnostics" + msgstr "Seçimlik teşhisler yapılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:992 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:759 + msgid "Pack structure members together without holes" + msgstr "Yapı üyelerini birlikte deliksiz paketler" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:995 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:762 + msgid "Return small aggregates in memory, not registers" + msgstr "Yazmaçlardaki değil bellekteki küçük kümeler döndürülür" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1001 +-msgid "Warn about use of (only a few for now) Fortran extensions" +-msgstr "" +-"Fortran uzantılarının kullanımı hakkında uyarır\n" +-" (şimdilik hepsinde değil)" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1004 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:768 + msgid "Perform loop peeling" + msgstr "Döngü soyması uygulanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1007 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:771 + msgid "Enable machine specific peephole optimizations" + msgstr "Makinaya özel gözlem deliği eniyilemesi etkinleştirilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1010 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:774 + msgid "Enable an RTL peephole pass before sched2" + msgstr "sched2 çalıştırılmadan önce bir rtl gözlem deliği aşaması etkinleştirilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1013 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:777 + msgid "Downgrade conformance errors to warnings" + msgstr "Uyumluluk hatalarını uyarılara indirger" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1016 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:780 + msgid "Generate position-independent code if possible" + msgstr "Mümkünse, konumdan bağımsız kod üretilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1019 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:783 + msgid "Generate position-independent code for executables if possible" + msgstr "Mümkünse, çalıştırılabilirler için konumdan bağımsız kod üretilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1022 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:786 + msgid "Generate prefetch instructions, if available, for arrays in loops" + msgstr "" + "Mümkünse, döngülerdeki diziler için önalım\n" + " komutları üretilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1028 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:789 ++msgid "Treat the input file as already preprocessed" ++msgstr "Girdi dosyaları evvelce önişlemden geçirilmiş kabul edilir" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:792 + msgid "Enable basic program profiling code" + msgstr "Temel program profil çıkarma kodu etkinleştirilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1031 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:795 + msgid "Insert arc-based program profiling code" + msgstr "arc-tabanlı yazılım ayrımlama kodu yerleştirilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1034 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:798 + msgid "Enable common options for generating profile info for profile feedback directed optimizations" + msgstr "Ayrımlama geribeslemesi yönlendirmeli eniyilemelerin ayrımlama bilgileri üretimi için ortak seçenekler etkinleştirilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1037 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:801 + msgid "Enable common options for performing profile feedback directed optimizations" + msgstr "Ayrımlama geribeslemesi yönlendirmeli eniyilemelerin uygulanması için ortak seçenekler etkinleştirilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1040 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:804 + msgid "Insert code to profile values of expressions" + msgstr "Kod, ifade ayrımlama değerlerine yerleştirilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1046 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:810 + msgid "-frandom-seed=\tMake compile reproducible using " + msgstr "-frandom-seed=DİZGE\tDİZGE kullanılarak derleme yeniden türetilebilir yapılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1049 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:813 + msgid "Strength reduce all loop general induction variables" + msgstr "" + "Tüm döngülerdeki genel başlatma değişkenlerinin\n" + " gücünü azaltır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1052 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:816 + msgid "Return small aggregates in registers" + msgstr "Yazmaçlardaki küçük kümeler döndürülür" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1055 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:819 + msgid "Enables a register move optimization" + msgstr "Bir yazmaç taşıma eniyilemesi etkinleştirilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1058 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:822 + msgid "Perform a register renaming optimization pass" + msgstr "Yazmaç isimlendirme eniyilemesi aşaması uygulanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1061 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:825 + msgid "Reorder basic blocks to improve code placement" + msgstr "" + "Kod yerleşimini iyileştirecek temel blokları\n" + " yeniden sıralar" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1064 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:828 + msgid "Reorder functions to improve code placement" + msgstr "" + "Kod yerleşimini iyileştirecek işlevleri\n" + " yeniden sıralar" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1067 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:831 + msgid "Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime" + msgstr "Nesne dosyalarının çalışma anında takaslanabileceğini belirten Fix-and-Continue kipi kullanılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1070 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:834 + msgid "Enable automatic template instantiation" + msgstr "Otomatik şablon gerçeklemesi etkinleştirilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1073 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:837 + msgid "Add a common subexpression elimination pass after loop optimizations" + msgstr "Döngü eniyilemesinden sonra bir ortak alt ifade eleme aşaması eklenir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1076 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:840 + msgid "Run the loop optimizer twice" + msgstr "Döngü eniyilemesi iki kere çalıştırılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1079 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:843 + msgid "Disable optimizations that assume default FP rounding behavior" + msgstr "Kayan nokta yuvarlama davranışını öntanımlı varsayan eniyilemeler yapılmaz" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1082 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:846 + msgid "Generate run time type descriptor information" + msgstr "Çalışma anı tür tanımlayıcı bilgisi üretilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1085 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:849 + msgid "Enable scheduling across basic blocks" + msgstr "Temel bloklar arasında zamanlama etkinleştirilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1088 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:852 + msgid "Allow speculative motion of non-loads" + msgstr "Yük oluşturmayanların tahmini hareketine izin verilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1091 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:855 + msgid "Allow speculative motion of some loads" + msgstr "Bazı yüklerin tahmini hareketine izin verilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1094 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:858 + msgid "Allow speculative motion of more loads" + msgstr "Fazla yüklerin tahmini hareketine izin verilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1097 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:861 + msgid "Allow premature scheduling of queued insns" + msgstr "Kuyruklanmış komutların erken zamanlanmasına izin verilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1100 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:864 + msgid "Set dependence distance checking in premature scheduling of queued insns" + msgstr "Kuyruklanmış komutların erken zamanlanmasında bağımlılık aralığı denetimi yapılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1103 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:867 + msgid "-fsched-stalled-insns-dep= Set dependence distance checking in premature scheduling of queued insns" + msgstr "-fsched-stalled-insns-dep=SAYI Kuyruklanmış komutların erken zamanlanmasında bağımlılık aralığı denetimi yapılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1106 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:870 + msgid "-fsched-stalled-insns= Set number of queued insns that can be prematurely scheduled" + msgstr "-fsched-stalled-insns=SAYI Erken zamanlanabilen kuyruklanmış komutların sayısı" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1109 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:873 + msgid "-fsched-verbose=\tSet the verbosity level of the scheduler" + msgstr "-fsched-verbose=SAYI\tZamanlama için ayrıntı düzeyi belirtilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1112 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:876 + msgid "If scheduling post reload, do superblock scheduling" + msgstr "Sonradan yeniden yükleme zamanlaması varsa süper blok zamanlaması yapılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1115 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:879 + msgid "If scheduling post reload, do trace scheduling" + msgstr "Sonradan yeniden yükleme zamanlaması varsa izleme zamanlaması yapılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1118 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:882 + msgid "Reschedule instructions before register allocation" + msgstr "Yazmaç tahsisinden önce komutları yeniden zamanlar" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1121 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:885 + msgid "Reschedule instructions after register allocation" + msgstr "Yazmaç tahsisinden sonra komutları yeniden zamanlar" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1124 +-msgid "Allow appending a second underscore to externals" +-msgstr "external'lara ikinci altçizgi eklenebilir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1127 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:888 + msgid "Mark data as shared rather than private" + msgstr "Veriyi özelden çok paylaşımlı olarak imler" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1130 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:891 + msgid "Use the same size for double as for float" + msgstr "double türler için de float tür uzunluğu kullanılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1133 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:894 + msgid "Use the narrowest integer type possible for enumeration types" + msgstr "Sıralı sabit türleri için mümkün en dar tamsayı türü kullanılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1136 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:897 + msgid "Force the underlying type for \"wchar_t\" to be \"unsigned short\"" + msgstr "\"wchar_t\" için temel tür olarak \"unsigned short\"a zorlar" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1142 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:903 + msgid "Disable optimizations observable by IEEE signaling NaNs" + msgstr "" + "IEEE sinyalleme NaNları tarafından farkedilebilen\n" + " eniyilemeler iptal edilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1145 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:906 + msgid "When \"signed\" or \"unsigned\" is not given make the bitfield signed" + msgstr "\"signed\" veya \"unsigned\" verilmezse bit alanı signed yapılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1148 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:909 + msgid "Make \"char\" signed by default" + msgstr "Öntanımlı olarak \"char\" signed yapılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1151 +-msgid "Do not print names of program units as they are compiled" +-msgstr "Yazılım birimlerini isimleri derlendiğinde basılmaz" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1154 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:912 + msgid "Convert floating point constants to single precision constants" + msgstr "Kayan noktalı sabitler tek duyarlıklı sabitlere dönüştürülür" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1157 +-msgid "Internally convert most source to lowercase" +-msgstr "Küçük harfe dönüşüm içerden yapılır" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1160 +-msgid "Internally preserve source case" +-msgstr "İçerde harf büyüklüğü korunur" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1163 +-msgid "Internally convert most source to uppercase" +-msgstr "Büyük harfe dönüşüm içerden yapılır" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1169 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:918 + msgid "Insert stack checking code into the program" + msgstr "Programa yığın denetimi kodu yerleştirilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1175 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:924 + msgid "-fstack-limit-register=\tTrap if the stack goes past " + msgstr "-fstack-limit-register=YAZMAÇ\tYığıt YAZMAÇı aşarsa yakalanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1178 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:927 + msgid "-fstack-limit-symbol=\tTrap if the stack goes past symbol " + msgstr "-fstack-limit-symbol=İSİM\tYığıt İSİM sembolünü aşarsa yakalanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1181 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:930 + msgid "Display statistics accumulated during compilation" + msgstr "Derleme sırasında toplanan istatistikler gösterilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1184 +-msgid "Enable assignability checks for stores into object arrays" +-msgstr "" +-"Nesne dizileri içinde saklamalar için atanabilirlik\n" +-" sınamaları etkin olur" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1187 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:933 + msgid "Perform strength reduction optimizations" + msgstr "Güç azaltma eniyilemesi uygulanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1190 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:936 + msgid "Assume strict aliasing rules apply" + msgstr "Sıkı takma ad kuralları uygulanacağı varsayılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1199 +-msgid "Symbol names spelled in mixed case" +-msgstr "Sembol isimlerin BüyükKüçük harflerle yazılmıştır" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1202 +-msgid "Symbol names in lowercase" +-msgstr "Sembol isimleri küçük harflerle yazılmıştır" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1205 +-msgid "Symbol names in uppercase" +-msgstr "Sembol isimleri büyük harflerle yazılmıştır" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1208 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:942 + msgid "Check for syntax errors, then stop" + msgstr "Sözdizimi denetimi yaptıktan sonra durur" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1211 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:945 + msgid "-ftabstop=\tDistance between tab stops for column reporting" + msgstr "-ftabstop=SAYI\tSütunlu raporlama için sekmeler arası mesafe" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1214 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:948 + msgid "-ftemplate-depth-\tSpecify maximum template instantiation depth" + msgstr "-ftemplate-depth-SAYI\tAzami şablon gerçekleme derinliği belirtilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1217 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:951 + msgid "Create data files needed by \"gcov\"" + msgstr "\"gcov\" için gereken veri dosyaları oluşturulur" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1223 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:957 + msgid "Perform jump threading optimizations" + msgstr "Atlama evresi oluşturma eniyilemesi uygulanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1226 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:960 + msgid "Report the time taken by each compiler pass" + msgstr "Her derleme aşaması için harcanan zaman raporlanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1229 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:963 + msgid "-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tSet the default thread-local storage code generation model" + msgstr "-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tÖntanımlı yerel-evreli saklama kodu üretim modeli belirtilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1232 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:966 + msgid "Perform superblock formation via tail duplication" + msgstr "Kuyruk tekrarı üzerinden süperblok oluşumu uygulanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1235 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:969 + msgid "Assume floating-point operations can trap" + msgstr "Kayan nokta işlemlerinin yakalanabileceği varsayılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1238 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:972 + msgid "Trap for signed overflow in addition, subtraction and multiplication" + msgstr "Toplama, çıkartma, çarpmada signed taşması için kapan kurulur" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1241 +-msgid "Make prefix-radix non-decimal constants be typeless" +-msgstr "Ondalık olmayan taban önekli sabitler türsüz yapılır" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1244 +-msgid "Allow all ugly features" +-msgstr "Tüm salak özellikler etkin olur" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1247 +-msgid "Hollerith and typeless can be passed as arguments" +-msgstr "" +-"Hollerith ve türsüz sabitler argüman olarak\n" +-" kullanılabilir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1250 +-msgid "Allow ordinary copying of ASSIGN'ed vars" +-msgstr "" +-"ASSIGN'lı değişkenlerin olağan kopyalamasına izin\n" +-" verilir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1253 +-msgid "Dummy array dimensioned to (1) is assumed-size" +-msgstr "Yapay dizi üstindisi (1) kabul edilir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1256 +-msgid "Trailing comma in procedure call denotes null argument" +-msgstr "Yordam çağrılarında son virgül null argüman sayılır" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1259 +-msgid "Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z" +-msgstr "" +-"DOUBLE COMPLEX Z nin REAL(Z) ve AIMAG(Z) olarak\n" +-" verilmesine izin verilir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1262 +-msgid "Initialization via DATA and PARAMETER is not type-compatible" +-msgstr "DATA ve PARAMETER üzerinden ilklendirme tür uyumlu değildir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1265 +-msgid "Allow INTEGER and LOGICAL interchangeability" +-msgstr "INTEGER ve LOGICAL aradönüşümlerine izin verilir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1268 +-msgid "Append underscores to externals" +-msgstr "external'lara altçizgiler eklenir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1271 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:975 + msgid "Compile whole compilation unit at a time" + msgstr "Derleme biriminin tamamı bir defada derlenir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1274 +-msgid "Delete libU77 intrinsics" +-msgstr "libU77 yerleşikleri silinir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1277 +-msgid "Disable libU77 intrinsics" +-msgstr "libU77 yerleşikleri iptal edilir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1280 +-msgid "Enable libU77 intrinsics" +-msgstr "libU77 yerleşikleri etkin olur" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1283 +-msgid "Hide libU77 intrinsics" +-msgstr "libU77 yerleşikleri gizlenir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1292 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:984 + msgid "Allow math optimizations that may violate IEEE or ISO standards" + msgstr "IEEE veya ISO standartlarını bozabilen matematiksel eniyilemelere izin verilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1295 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:987 + msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned" + msgstr "\"signed\" veya \"unsigned\" verilmediğinde bit alanı unsigned yapılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1298 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:990 + msgid "Make \"char\" unsigned by default" + msgstr "Öntanımlı olarak \"char\" unsigned yapılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1301 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:993 + msgid "Perform loop unswitching" + msgstr "Döngü anahtarlamaması uygulanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1304 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:996 + msgid "Just generate unwind tables for exception handling" + msgstr "" + "Olağandışılıkların yakalanması için birbirlerini\n" + " etkilemeyenlerin tablosu oluşturulur" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1310 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:999 + msgid "Use __cxa_atexit to register destructors" + msgstr "Yazmaç yıkıcılara __cxa_atexit kullanılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1316 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1002 + msgid "Add extra commentary to assembler output" + msgstr "Çevirici çıktısına fazladan açıklama ekler" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1319 +-msgid "Print g77-specific version information and run internal tests" +-msgstr "g77'ye özel sürüm bilgisini gösterir ve iç testleri yapar" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1322 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1005 + msgid "Use expression value profiles in optimizations" + msgstr "Eniyilemelerde ifade değeri ayrımlaması kullanılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1325 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1008 + msgid "Discard unused virtual functions" + msgstr "Kullanılmayan sanal işlevler iptal edilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1328 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1011 + msgid "Implement vtables using thunks" + msgstr "İşlev gösterici tablosu aşılarla oluşturulur" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1331 +-msgid "Program is written in VXT (Digital-like) FORTRAN" +-msgstr "Program VXT (Digital-benzeri) FORTRAN da yazılmış" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1334 +-msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "" +-"FORTRAN-77 olmayan yerleşiklerin VXT FORTRAN\n" +-" destekleri silinir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1337 +-msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "" +-"FORTRAN-77 olmayan yerleşiklerin VXT FORTRAN\n" +-" destekleri iptal edilir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1340 +-msgid "Enable non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "" +-"FORTRAN-77 olmayan yerleşiklerin VXT FORTRAN\n" +-" destekleri etkin olur" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1343 +-msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports" +-msgstr "" +-"FORTRAN-77 olmayan yerleşiklerin VXT FORTRAN\n" +-" destekleri gizlenir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1349 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1014 + msgid "Emit common-like symbols as weak symbols" + msgstr "Benzer semboller zayıf semboller olarak ele alınır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1352 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1017 + msgid "Construct webs and split unrelated uses of single variable" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1355 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1020 + msgid "-fwide-exec-charset=\tConvert all wide strings and character constants to character set " + msgstr "-fwide-exec-charset=KRK-KÜMESİ\tTüm geniş karakterli dizgeler ve sabitler KRK-KÜMESİne dönüştürülür" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1358 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1023 + msgid "Generate a #line directive pointing at the current working directory" + msgstr "O anki çalışma dizinini betimleyen bir #line yönergesi üretilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1361 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1026 + msgid "Assume signed arithmetic overflow wraps around" + msgstr "" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1364 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1029 + msgid "Store strings in writable data section" + msgstr "Dizgeler yazılabilir veri bölümünde saklanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1367 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1032 + msgid "Emit cross referencing information" + msgstr "Çapraz referans bilgisi yayınlanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1370 +-msgid "Print internal debugging-related information" +-msgstr "İç hata ayıklama bilgilerini gösterir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1373 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1035 + msgid "Put zero initialized data in the bss section" + msgstr "bss bölümüne sıfır ilklendirmeli veri yerleştirilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1376 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1038 + msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode" + msgstr "Zero-Link kipinde kullanmak için çılgın sınıf araması (via objc_getClass()) üretilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1379 +-msgid "Treat initial values of 0 like non-zero values" +-msgstr "" +-"0 değerli olanlar içerde sıfır değerli olmayanlar\n" +-" gibi değerlendirilir" +- +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1382 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1041 + msgid "Generate debug information in default format" + msgstr "Öntanımlı biçimde hata ayıklama bilgisi üretir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1385 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1044 + msgid "Generate debug information in COFF format" + msgstr "COFF biçiminde hata ayıklama bilgisi üretir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1388 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1047 + msgid "Generate debug information in DWARF v2 format" + msgstr "DWARF v2 biçiminde hata ayıklama bilgisi üretir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1391 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1050 + msgid "Dump declarations to a .decl file" + msgstr "Bildirimler bir .decl dosyasına dökümlenir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1394 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1053 + msgid "Generate debug information in default extended format" + msgstr "Öntanımlı gelişmiş biçimde hata ayıklama bilgisi üretir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1397 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1056 + msgid "Generate debug information in STABS format" + msgstr "STABS biçiminde hata ayıklama bilgisi üretir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1400 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1059 + msgid "Generate debug information in extended STABS format" + msgstr "Gelişmiş STABS biçiminde hata ayıklama bilgisi üretir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1403 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1062 + msgid "Generate debug information in VMS format" + msgstr "VMS biçiminde hata ayıklama bilgisi üretir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1406 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1065 + msgid "Generate debug information in XCOFF format" + msgstr "XCOFF biçiminde hata ayıklama bilgisi üretir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1409 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1068 + msgid "Generate debug information in extended XCOFF format" + msgstr "Gelişmiş XCOFF biçiminde hata ayıklama bilgisi üretir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1412 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1071 + msgid "-idirafter \tAdd to the end of the system include path" + msgstr "-idirafter DİZİN\tDİZİN sistem başlık dosyaları arama yolunun sonuna eklenir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1415 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1074 + msgid "-imacros \tAccept definition of macros in " + msgstr "-imacros DOSYA\tDOSYAdaki makro tanımları kabul edilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1418 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1077 + msgid "-include \tInclude the contents of before other files" + msgstr "-include DOSYA\tDOSYAnın içeriği diğer dosyaların başlangıcına eklenir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1421 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1080 + msgid "-iprefix \tSpecify as a prefix for next two options" + msgstr "-iprefix YOL\tYOL sonraki iki seçenek için önek olur" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1424 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1083 + msgid "-isysroot \tSet to be the system root directory" + msgstr "-isysroot DİZİN\tDİZİN sistemin kök dizini kabul edilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1427 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1086 + msgid "-isystem \tAdd to the start of the system include path" + msgstr "-isystem DİZİN\tDİZİN sistem başlık dosyaları arama yolunun başına eklenir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1430 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1089 + msgid "-iwithprefix \tAdd to the end of the system include path" + msgstr "-iwithprefix DİZİN\tDİZİN sistem başlık dosyaları arama yolunun sonuna eklenir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1433 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1092 + msgid "-iwithprefixbefore \tAdd to the end of the main include path" + msgstr "-iwithprefixbefore DİZİN\tDİZİN ana başlık dosyaları arama yolunun sonuna eklenir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1445 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1104 + msgid "Do not search standard system include directories (those specified with -isystem will still be used)" + msgstr "Standart sistem başlık dosyaları dizinleri aranmaz (-isystem ile belirtilenler hariç) " + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1448 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1107 + msgid "Do not search standard system include directories for C++" + msgstr "C++ için standart sistem başlık dosyaları dizinleri aranmaz" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1451 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1110 + msgid "-o \tPlace output into " + msgstr "-o DOSYA\tÇıktı DOSYAya yazılır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1454 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1113 + msgid "Enable function profiling" + msgstr "İşlev ayrımlama etkinleştirilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1457 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1116 + msgid "Issue warnings needed for strict compliance to the standard" + msgstr "Standarda tam uyum için gereken uyarılar üretilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1460 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1119 + msgid "Like -pedantic but issue them as errors" + msgstr "-pedantic gibidir ancak uyarılar hata olarak ele alınır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1463 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1122 + msgid "Generate C header of platform-specific features" + msgstr "Platforma özel niteliklerin C başlıklarını üretir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1466 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1125 + msgid "Do not display functions compiled or elapsed time" + msgstr "Derlenen işlevler ve geçen zaman gösterilmez" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1469 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1128 + msgid "Remap file names when including files" + msgstr "Dosyalar içerildiğinde dosya isimleri yeniden eşlenir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1472 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1131 + msgid "Conform to the ISO 1998 C++ standard" + msgstr "ISO 1998 C++ standardı uygulanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1475 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1134 + msgid "Conform to the ISO 1990 C standard" + msgstr "ISO 1990 C standardı uygulanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1478 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1137 + msgid "Conform to the ISO 1999 C standard" + msgstr "ISO 1999 C standardı uygulanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1481 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1502 +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1505 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1140 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1161 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1164 + msgid "Deprecated in favor of -std=c99" + msgstr "-std=c99 eskidi" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1484 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1143 + msgid "Conform to the ISO 1998 C++ standard with GNU extensions" + msgstr "ISO 1998 C++ standardı GNU oluşumlarıyla uygulanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1487 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1146 + msgid "Conform to the ISO 1990 C standard with GNU extensions" + msgstr "ISO 1990 C standardı GNU oluşumlarıyla uygulanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1490 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1149 + msgid "Conform to the ISO 1999 C standard with GNU extensions" + msgstr "ISO 1999 C standardı GNU oluşumlarıyla uygulanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1493 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1152 + msgid "Deprecated in favor of -std=gnu99" + msgstr "-std=gnu99 eskidi" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1496 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1155 + msgid "Deprecated in favor of -std=c89" + msgstr "-std=c89 eskidi" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1499 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1158 + msgid "Conform to the ISO 1990 C standard as amended in 1994" + msgstr "ISO 1990 C standardı 1994 düzeltmesiyle uygulanır" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1508 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1167 + msgid "Enable traditional preprocessing" + msgstr "Geleneksel önişlemi etkinleştirir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1511 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1170 + msgid "-trigraphs\tSupport ISO C trigraphs" + msgstr "-trigraphs\tISO C üçlü harfleri desteklenir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1514 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1173 + msgid "Do not predefine system-specific and GCC-specific macros" + msgstr "Sisteme özel ve GCCye özel makrolar önceden tanımlı yapılmaz" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1517 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1176 + msgid "Enable verbose output" + msgstr "Ayrıntılı bilgi verilir" + +-#: /home/mitchell/gcc-3.4.1-20040625/objdir/gcc/options.c:1523 ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1179 ++msgid "Display the compiler's version" ++msgstr "Derleyicinin sürüm bilgileri gösterilir" ++ ++#: /home/mitchell/obj/gcc-3.4/gcc/options.c:1182 + msgid "Suppress warnings" + msgstr "Uyarılar engellenir" + +-#: config/i386/freebsd-aout.h:215 config/rs6000/sysv4.h:1089 ++#: config/i386/cygwin.h:29 ++msgid "mno-cygwin and mno-win32 are not compatible" ++msgstr "mno-cygwin ve mno-win32 uyumsuz" ++ ++#: config/i386/cygwin.h:70 config/i386/mingw32.h:58 ++msgid "shared and mdll are not compatible" ++msgstr "shared ve mdll uyumsuz" ++ ++#: config/i386/freebsd-aout.h:215 + msgid "`-p' not supported; use `-pg' and gprof(1)" + msgstr "`-p' desteklenmiyor; `-pg' ve gprof(1) kullanın" + +@@ -21314,49 +20955,62 @@ + msgid "GCC does not support -CC without using -E" + msgstr "GCC -E kulanılmaksızın -CC desteklemez" + ++#: config/i386/sco5.h:191 ++msgid "-pg not supported on this platform" ++msgstr "-pg bu platformda desteklenmiyor" ++ ++#: config/i386/sco5.h:192 ++msgid "-p and -pp specified - pick one" ++msgstr "-p ve -pp belirtilmiş - birini seçin" ++ ++#: config/i386/sco5.h:266 ++msgid "-G and -static are mutually exclusive" ++msgstr "-G ve -static birlikte kullanılamaz" ++ ++#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22 ++#: config/sparc/sol2-bi.h:167 config/sparc/sol2-bi.h:172 ++msgid "does not support multilib" ++msgstr "multilib desteklenmiyor" ++ + #: config/sparc/linux64.h:211 config/sparc/linux64.h:222 + #: config/sparc/netbsd-elf.h:140 config/sparc/netbsd-elf.h:159 + #: config/sparc/sol2-bi.h:195 config/sparc/sol2-bi.h:205 + msgid "may not use both -m32 and -m64" + msgstr "-m32 ve -m64 birlikte kullanılamaz" + +-#: config/i386/mingw32.h:58 config/i386/cygwin.h:70 +-msgid "shared and mdll are not compatible" +-msgstr "shared ve mdll uyumsuz" +- +-#: config/darwin.h:215 ++#: config/darwin.h:222 + msgid "-current_version only allowed with -dynamiclib" + msgstr "-current_version sadece -dynamiclib ile kullanılabilir" + +-#: config/darwin.h:218 ++#: config/darwin.h:225 + msgid "-install_name only allowed with -dynamiclib" + msgstr "-install_name sadece -dynamiclib ile kullanılabilir" + +-#: config/darwin.h:223 ++#: config/darwin.h:230 + msgid "-bundle not allowed with -dynamiclib" + msgstr "-bundle ile -dynamiclib birarada izin verilmez" + +-#: config/darwin.h:224 ++#: config/darwin.h:231 + msgid "-bundle_loader not allowed with -dynamiclib" + msgstr "-bundle_loader ile -dynamiclib birarada izin verilmez" + +-#: config/darwin.h:225 ++#: config/darwin.h:232 + msgid "-client_name not allowed with -dynamiclib" + msgstr "-client_name ile -dynamiclib birarada izin verilmez" + +-#: config/darwin.h:228 ++#: config/darwin.h:235 + msgid "-force_cpusubtype_ALL not allowed with -dynamiclib" + msgstr "-force_cpusubtype_ALL ile -dynamiclib birarada izin verilmez" + +-#: config/darwin.h:229 ++#: config/darwin.h:236 + msgid "-force_flat_namespace not allowed with -dynamiclib" + msgstr "-force_flat_namespace ile -dynamiclib birarada izin verilmez" + +-#: config/darwin.h:231 ++#: config/darwin.h:238 + msgid "-keep_private_externs not allowed with -dynamiclib" + msgstr "-keep_private_externs ile -dynamiclib birarada izin verilmez" + +-#: config/darwin.h:232 ++#: config/darwin.h:239 + msgid "-private_bundle not allowed with -dynamiclib" + msgstr "-private_bundle ile -dynamiclib birarada izin verilmez" + +@@ -21372,47 +21026,10 @@ + msgid "may not use both -EB and -EL" + msgstr "-EB ve -EL birlikte kullanılamayabilir" + +-#: config/mips/mips.h:988 +-msgid "-pipe is not supported" +-msgstr "-pipe desteklenmiyor." +- +-#: java/jvspec.c:80 ada/lang-specs.h:34 gcc.c:767 +-msgid "-pg and -fomit-frame-pointer are incompatible" +-msgstr "-pg ve -fomit-frame-pointer uyumsuz" +- +-#: java/lang-specs.h:34 +-msgid "-fjni and -femit-class-files are incompatible" +-msgstr "-fjni ve -femit-class-files uyumsuz" +- +-#: java/lang-specs.h:35 +-msgid "-fjni and -femit-class-file are incompatible" +-msgstr "-fjni ve -femit-class-file uyumsuz" +- +-#: java/lang-specs.h:36 java/lang-specs.h:37 +-msgid "-femit-class-file should used along with -fsyntax-only" +-msgstr "-femit-class-file -fsyntax-only ile birlikte kullanılmalı" +- + #: treelang/lang-specs.h:52 + msgid "-pg or -p and -fomit-frame-pointer are incompatible" + msgstr "-pg veya -p ve -fomit-frame-pointer uyumsuz" + +-#: config/sparc/sol2-bi.h:167 config/sparc/sol2-bi.h:172 +-#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22 +-msgid "does not support multilib" +-msgstr "multilib desteklenmiyor" +- +-#: config/i386/sco5.h:191 +-msgid "-pg not supported on this platform" +-msgstr "-pg bu platformda desteklenmiyor" +- +-#: config/i386/sco5.h:192 +-msgid "-p and -pp specified - pick one" +-msgstr "-p ve -pp belirtilmiş - birini seçin" +- +-#: config/i386/sco5.h:266 +-msgid "-G and -static are mutually exclusive" +-msgstr "-G ve -static birlikte kullanılamaz" +- + #: config/arm/arm.h:198 + msgid "-mapcs-26 and -mapcs-32 may not be used together" + msgstr "-mapcs-26 ve -mapcs-32 birlikte kullanılamayabilir" +@@ -21429,6 +21046,14 @@ + msgid "the m210 does not have little endian support" + msgstr "m210 küçük ilkli bayt sıralamasının desteklemez" + ++#: config/mips/mips.h:988 ++msgid "-pipe is not supported" ++msgstr "-pipe desteklenmiyor." ++ ++#: ada/lang-specs.h:34 java/jvspec.c:80 gcc.c:767 ++msgid "-pg and -fomit-frame-pointer are incompatible" ++msgstr "-pg ve -fomit-frame-pointer uyumsuz" ++ + #: ada/lang-specs.h:36 + msgid "one of -c, -S, -gnatc, -gnatz, or -gnats is required for Ada" + msgstr "Ada için -c, -S, -gnatc, -gnatz, ve -gnats seçeneklerinden biri gerekir" +@@ -21441,9 +21066,17 @@ + msgid "-msingle-float and -msoft-float can not both be specified" + msgstr "-msingle-float ve -msoft-float birlikte belirtilemez." + +-#: config/rs6000/darwin.h:98 +-msgid " conflicting code gen style switches are used" +-msgstr " çelişen code gen tarzı switch'ler kullanılmış" ++#: java/lang-specs.h:34 ++msgid "-fjni and -femit-class-files are incompatible" ++msgstr "-fjni ve -femit-class-files uyumsuz" ++ ++#: java/lang-specs.h:35 ++msgid "-fjni and -femit-class-file are incompatible" ++msgstr "-fjni ve -femit-class-file uyumsuz" ++ ++#: java/lang-specs.h:36 java/lang-specs.h:37 ++msgid "-femit-class-file should used along with -fsyntax-only" ++msgstr "-femit-class-file -fsyntax-only ile birlikte kullanılmalı" + + #: gcc.c:743 + msgid "GCC does not support -C or -CC without -E" +@@ -21453,60 +21086,367 @@ + msgid "-E required when input is from standard input" + msgstr "Standart girdiden girdi alınırken -E gereklidir" + +-#: config/i386/cygwin.h:29 +-msgid "mno-cygwin and mno-win32 are not compatible" +-msgstr "mno-cygwin ve mno-win32 uyumsuz" ++#: config/rs6000/darwin.h:98 ++msgid " conflicting code gen style switches are used" ++msgstr " çelişen code gen tarzı switch'ler kullanılmış" + +-#~ msgid "neither the destructor nor the class-specific " +-#~ msgstr "sınıf tanımlanırken bildirilmiş olsalar bile " ++#~ msgid "Warn if deprecated class, method, or field is used" ++#~ msgstr "Eski tip sınıf, yöntem ya da alan bulunduğunda uyarır" + +-#~ msgid "operator delete will be called, even if they are " +-#~ msgstr "ne yıkıcı ne de sınıfa özel " ++#~ msgid "Warn if deprecated empty statements are found" ++#~ msgstr "Eski tip boş deyimler bulunduğunda uyarır" + +-#~ msgid "declared when the class is defined." +-#~ msgstr "silme işleci çağrılabilir." ++#~ msgid "Enable warnings about inter-procedural problems" ++#~ msgstr "Yordamlar arası sorunlar hakkındaki uyarılar verilir" ++ ++#~ msgid "Warn if .class files are out of date" ++#~ msgstr ".class dosyaları güncel değilse uyarır" ++ ++#~ msgid "Warn if modifiers are specified when not necessary" ++#~ msgstr "Değiştiriciler gereksizken belirtilmişse uyarır" + +-#~ msgid "-I \tAdd to the end of the main include path. -I- gives more include path control; see info documentation" +-#~ msgstr "-I DİZİN\tDİZİN ana başlık dosyaları yolunun sonuna eklenir. -I- daha iyidir; bilgi sayfalarına bakınız" ++#~ msgid "Warn about constructs with surprising meanings" ++#~ msgstr "Yapılar hakkında sürpriz niteliğinde uyarı verilir" + +-#~ msgid "Generate make dependencies" +-#~ msgstr "make bağımlılıkları üretilir" ++#~ msgid "--CLASSPATH\tDeprecated; use --classpath instead" ++#~ msgstr "--CLASSPATH\t eski kullanım; yerine --classpath kullanın" + +-#~ msgid "-MF \tWrite dependency output to the given file" +-#~ msgstr "-MF DOSYA\tBağımlılık çıktıları belirtilen dosyaya yazılır" ++#~ msgid "Do not treat local variables and COMMON blocks as if they were named in SAVE statements" ++#~ msgstr "" ++#~ "Yerel değişkenler ve COMMON blokları SAVE\n" ++#~ " deyimlerinde adlandırılmış olarak değerlendirilmez." ++ ++#~ msgid "Backslashes in character and hollerith constants are special (not C-style)" ++#~ msgstr "" ++#~ "Tersbölüler ve karakter/hollerith sabitler özeldir\n" ++#~ " (C-tarzı)" + +-#~ msgid "Like -M but ignore system header files" +-#~ msgstr "-M gibi, ancak sistem başlık dosyaları yoksayılır" ++#~ msgid "Delete libU77 intrinsics with bad interfaces" ++#~ msgstr "Hatalı arabirimli libU77 yerleşikleri silinir" + +-#~ msgid "Enable most warning messages" +-#~ msgstr "Uyarı sıklığı iletileri etkinleştirilir" ++#~ msgid "Disable libU77 intrinsics with bad interfaces" ++#~ msgstr "Hatalı arabirimli libU77 yerleşikleri iptal edilir" + +-#~ msgid "Warn about possibly nested block comments, and C++ comments spanning more than one physical line" +-#~ msgstr "İç içe açıklama satırları ile bir fiziksel satırdan fazla olan C++ açıklamalarında uyarır" ++#~ msgid "Enable libU77 intrinsics with bad interfaces" ++#~ msgstr "Hatalı arabirimli libU77 yerleşikleri etkin olur" + +-#~ msgid "Synonym for -Wcomment" +-#~ msgstr "-Wcomment ile aynı" ++#~ msgid "Hide libU77 intrinsics with bad interfaces" ++#~ msgstr "Hatalı arabirimli libU77 yerleşikleri gizlenir" + +-#~ msgid "Warn about deprecated compiler features" +-#~ msgstr "Eskimiş derleyici özellikleri hakkında uyarmaz" ++#~ msgid "--bootclasspath=\tReplace system path" ++#~ msgstr "--bootclasspath=\tSistem dosya yolu ile değiştirilir" + +-#~ msgid "Deprecated. This switch has no effect." +-#~ msgstr "Eski. Bu seçenek etkisizdir." ++#~ msgid "Program written in strict mixed-case" ++#~ msgstr "Program BüyükKüçük harflerle yazılmıştır" + +-#~ msgid "Warn if trigraphs are encountered that might affect the meaning of the program" +-#~ msgstr "Yazılımın anlamını etkileyebilecek üçlü harfler saptanırsa uyarır" ++#~ msgid "Compile as if program written in lowercase" ++#~ msgstr "Program küçük harflerle yazılmış olarak derlenir" + +-#~ msgid "-fdump-\tDump various compiler internals to a file" +-#~ msgstr "-fdump-TÜR\tBelirtilen derleyici iç oluşumları bir dosyaya dökümlenir" ++#~ msgid "Preserve case used in program" ++#~ msgstr "Programda harf büyüklüklerine dokunulmaz" + +-#~ msgid "Integrate simple functions into their callers" +-#~ msgstr "Basit işlevler onları çağıranların içine gömülür" ++#~ msgid "Program written in lowercase" ++#~ msgstr "Program küçük harflerle yazılmıştır" + +-#~ msgid "Treat the input file as already preprocessed" +-#~ msgstr "Girdi dosyaları evvelce önişlemden geçirilmiş kabul edilir" ++#~ msgid "Program written in uppercase" ++#~ msgstr "Program büyük harflerle yazılmıştır" + +-#~ msgid "Display the compiler's version" +-#~ msgstr "Derleyicinin sürüm bilgileri gösterilir" ++#~ msgid "Compile as if program written in uppercase" ++#~ msgstr "Program büyük harflerle yazılmış olarak derlenir" ++ ++#~ msgid "--classpath=\tSet class path" ++#~ msgstr "--classpath=\tSınıf dosya yolunu ayarlar" ++ ++#~ msgid "Emit special debugging information for COMMON and EQUIVALENCE (disabled)" ++#~ msgstr "" ++#~ "COMMON ve EQUIVALENCE için özel hata ayıklama\n" ++#~ " bilgileri yayınlanır (iptal edildi)" ++ ++#~ msgid "Allow '$' in symbol names" ++#~ msgstr "Sembol isimlerinde '$' kullanımına izin verilir" ++ ++#~ msgid "Have front end emulate COMPLEX arithmetic to avoid bugs" ++#~ msgstr "" ++#~ "Hatalara sebep olmamak için COMPLEX aritmetiği\n" ++#~ " emüle edilir" ++ ++#~ msgid "--encoding=\tChoose input encoding (defaults from your locale)" ++#~ msgstr "--encoding=\tGirdi kodlaması seçilir (öntanımlısı yerelden gelir)" ++ ++#~ msgid "f2c-compatible code can be generated" ++#~ msgstr "f2c uyumlu kod üretililemez" ++ ++#~ msgid "Delete non-FORTRAN-77 intrinsics f2c supports" ++#~ msgstr "" ++#~ "FORTRAN-77 olmayan yerleşiklerin f2c destekleri\n" ++#~ " silinir" ++ ++#~ msgid "Disable non-FORTRAN-77 intrinsics f2c supports" ++#~ msgstr "" ++#~ "FORTRAN-77 olmayan yerleşiklerin f2c destekleri\n" ++#~ " iptal edilir" ++ ++#~ msgid "Enable non-FORTRAN-77 intrinsics f2c supports" ++#~ msgstr "" ++#~ "FORTRAN-77 olmayan yerleşiklerin f2c destekleri\n" ++#~ " etkin olur" ++ ++#~ msgid "Hide non-FORTRAN-77 intrinsics f2c supports" ++#~ msgstr "" ++#~ "FORTRAN-77 olmayan yerleşiklerin f2c destekleri\n" ++#~ " gizlenir" ++ ++#~ msgid "Unsupported; generate libf2c-calling code" ++#~ msgstr "Desteklenmiyor; libf2c çağrı kodu üretilir" ++ ++#~ msgid "Program is written in typical FORTRAN 66 dialect" ++#~ msgstr "Program tipik FORTRAN 66 dilinde yazılmıştır" ++ ++#~ msgid "Program is written in typical Unix-f77 dialect" ++#~ msgstr "Program tipik Unix-f77 dilinde yazılmıştır" ++ ++#~ msgid "Program is written in Fortran-90-ish dialect" ++#~ msgstr "Program tipik Fortran-90 dilinde yazılmıştır" ++ ++#~ msgid "Delete non-FORTRAN-77 intrinsics F90 supports" ++#~ msgstr "" ++#~ "FORTRAN-77 olmayan yerleşiklerin F90 destekleri\n" ++#~ " silinir" ++ ++#~ msgid "Disable non-FORTRAN-77 intrinsics F90 supports" ++#~ msgstr "" ++#~ "FORTRAN-77 olmayan yerleşiklerin F90 destekleri\n" ++#~ " iptal edilir" ++ ++#~ msgid "Enable non-FORTRAN-77 intrinsics F90 supports" ++#~ msgstr "" ++#~ "FORTRAN-77 olmayan yerleşiklerin F90 destekleri\n" ++#~ " etkin olur" ++ ++#~ msgid "Hide non-FORTRAN-77 intrinsics F90 supports" ++#~ msgstr "" ++#~ "FORTRAN-77 olmayan yerleşiklerin F90 destekleri\n" ++#~ " gizlenir" ++ ++#~ msgid "ffixed-line-length-\tSet the maximum line length to " ++#~ msgstr "ffixed-line-length-\tAzami satır uzunluğu 'ya ayarlanır" ++ ++#~ msgid "Unsupported; affects code generation of arrays" ++#~ msgstr "Desteklenmiyor; dizilerin kod üretimi etkilenir" ++ ++#~ msgid "Always check for non gcj generated classes archives" ++#~ msgstr "" ++#~ "gcj üretimi olmayan sınıfların arşivleri daima\n" ++#~ " denetlenir" ++ ++#~ msgid "Generate code to check subscript and substring bounds" ++#~ msgstr "Dizi indislerini denetleyecek kod üretilir" ++ ++#~ msgid "Program is written in Fortran-90-ish free form" ++#~ msgstr "Program Fortran-90'ca serbest biçimde yazılmış" ++ ++#~ msgid "Enable fatal diagnostics about inter-procedural problems" ++#~ msgstr "" ++#~ "Yordamlar arası sorunlar hakkındaki ölümcül tanılar\n" ++#~ " etkin olur" ++ ++#~ msgid "Delete non-FORTRAN-77 intrinsics g77 supports" ++#~ msgstr "" ++#~ "FORTRAN-77 olmayan yerleşiklerin g77 destekleri\n" ++#~ " silinir" ++ ++#~ msgid "Disable non-FORTRAN 77 intrinsics F90 supports" ++#~ msgstr "" ++#~ "FORTRAN-77 olmayan yerleşiklerin g77 destekleri\n" ++#~ " iptal edilir" ++ ++#~ msgid "Enable non-FORTRAN 77 intrinsics F90 supports" ++#~ msgstr "" ++#~ "FORTRAN-77 olmayan yerleşiklerin g77 destekleri\n" ++#~ " etkin olur" ++ ++#~ msgid "Hide non-FORTRAN 77 intrinsics F90 supports" ++#~ msgstr "" ++#~ "FORTRAN-77 olmayan yerleşiklerin g77 destekleri\n" ++#~ " gizlenir" ++ ++#~ msgid "Use offset tables for virtual method calls" ++#~ msgstr "" ++#~ "Sanal yöntem çağrıları için adresleme tabloları\n" ++#~ " kullanılır" ++ ++#~ msgid "Initialize local vars and arrays to zero" ++#~ msgstr "Yerel değişkenler ve diziler sıfır ile ilklendirilir" ++ ++#~ msgid "Intrinsics letters in arbitrary cases" ++#~ msgstr "Yerleşikler gelişigüzel yazılmıştır" ++ ++#~ msgid "Intrinsics spelled as e.g. SqRt" ++#~ msgstr "Yerleşikler SqRt tarzında hecelenir" ++ ++#~ msgid "Intrinsics in lowercase" ++#~ msgstr "Yerleşikler küçük harfle yazılmıştır" ++ ++#~ msgid "Intrinsics in uppercase" ++#~ msgstr "Yerleşikler büyük harfle yazılmıştır" ++ ++#~ msgid "Assume native functions are implemented using JNI" ++#~ msgstr "Yerli işlevlerin JNI kullanarak oluştuğu varsayılır" ++ ++#~ msgid "Language keyword letters in arbitrary cases" ++#~ msgstr "Dil anahtar sözcükleri gelişigüzel yazılmıştır" ++ ++#~ msgid "Language keywords spelled as e.g. IOStat" ++#~ msgstr "Dil anahtar sözcükleri IOStat tarzı hecelenir" ++ ++#~ msgid "Language keywords in lowercase" ++#~ msgstr "Dil anahtar sözcükleri küçük harflerle yazılmıştır" ++ ++#~ msgid "Language keywords in uppercase" ++#~ msgstr "Dil anahtar sözcükleri büyük harflerle yazılmıştır" ++ ++#~ msgid "Delete MIL-STD 1753 intrinsics" ++#~ msgstr "MIL-STD 1753 yerleşikleri silinir" ++ ++#~ msgid "Disable MIL-STD 1753 intrinsics" ++#~ msgstr "MIL-STD 1753 yerleşikleri iptal edilir" ++ ++#~ msgid "Enable MIL-STD 1753 intrinsics" ++#~ msgstr "MIL-STD 1753 yerleşikleri etkin olur" ++ ++#~ msgid "Hide MIL-STD 1753 intrinsics" ++#~ msgstr "MIL-STD 1753 yerleşikleri gizlenir" ++ ++#~ msgid "Take at least one trip through each iterative DO loop" ++#~ msgstr "Her yinelemeli DO döngüsü en azından bir tur atar" ++ ++#~ msgid "Enable optimization of static class initialization code" ++#~ msgstr "Statik sınıf ilklendirme kodunun eniyilemesi yapılır" ++ ++#~ msgid "Warn about use of (only a few for now) Fortran extensions" ++#~ msgstr "" ++#~ "Fortran uzantılarının kullanımı hakkında uyarır\n" ++#~ " (şimdilik hepsinde değil)" ++ ++#~ msgid "Allow appending a second underscore to externals" ++#~ msgstr "external'lara ikinci altçizgi eklenebilir" ++ ++#~ msgid "Do not print names of program units as they are compiled" ++#~ msgstr "Yazılım birimlerini isimleri derlendiğinde basılmaz" ++ ++#~ msgid "Internally convert most source to lowercase" ++#~ msgstr "Küçük harfe dönüşüm içerden yapılır" ++ ++#~ msgid "Internally preserve source case" ++#~ msgstr "İçerde harf büyüklüğü korunur" ++ ++#~ msgid "Internally convert most source to uppercase" ++#~ msgstr "Büyük harfe dönüşüm içerden yapılır" ++ ++#~ msgid "Enable assignability checks for stores into object arrays" ++#~ msgstr "" ++#~ "Nesne dizileri içinde saklamalar için atanabilirlik\n" ++#~ " sınamaları etkin olur" ++ ++#~ msgid "Symbol names spelled in mixed case" ++#~ msgstr "Sembol isimlerin BüyükKüçük harflerle yazılmıştır" ++ ++#~ msgid "Symbol names in lowercase" ++#~ msgstr "Sembol isimleri küçük harflerle yazılmıştır" ++ ++#~ msgid "Symbol names in uppercase" ++#~ msgstr "Sembol isimleri büyük harflerle yazılmıştır" ++ ++#~ msgid "Make prefix-radix non-decimal constants be typeless" ++#~ msgstr "Ondalık olmayan taban önekli sabitler türsüz yapılır" ++ ++#~ msgid "Allow all ugly features" ++#~ msgstr "Tüm salak özellikler etkin olur" ++ ++#~ msgid "Hollerith and typeless can be passed as arguments" ++#~ msgstr "" ++#~ "Hollerith ve türsüz sabitler argüman olarak\n" ++#~ " kullanılabilir" ++ ++#~ msgid "Allow ordinary copying of ASSIGN'ed vars" ++#~ msgstr "" ++#~ "ASSIGN'lı değişkenlerin olağan kopyalamasına izin\n" ++#~ " verilir" ++ ++#~ msgid "Dummy array dimensioned to (1) is assumed-size" ++#~ msgstr "Yapay dizi üstindisi (1) kabul edilir" ++ ++#~ msgid "Trailing comma in procedure call denotes null argument" ++#~ msgstr "Yordam çağrılarında son virgül null argüman sayılır" ++ ++#~ msgid "Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z" ++#~ msgstr "" ++#~ "DOUBLE COMPLEX Z nin REAL(Z) ve AIMAG(Z) olarak\n" ++#~ " verilmesine izin verilir" ++ ++#~ msgid "Initialization via DATA and PARAMETER is not type-compatible" ++#~ msgstr "DATA ve PARAMETER üzerinden ilklendirme tür uyumlu değildir" ++ ++#~ msgid "Allow INTEGER and LOGICAL interchangeability" ++#~ msgstr "INTEGER ve LOGICAL aradönüşümlerine izin verilir" ++ ++#~ msgid "Append underscores to externals" ++#~ msgstr "external'lara altçizgiler eklenir" ++ ++#~ msgid "Delete libU77 intrinsics" ++#~ msgstr "libU77 yerleşikleri silinir" ++ ++#~ msgid "Disable libU77 intrinsics" ++#~ msgstr "libU77 yerleşikleri iptal edilir" ++ ++#~ msgid "Enable libU77 intrinsics" ++#~ msgstr "libU77 yerleşikleri etkin olur" ++ ++#~ msgid "Hide libU77 intrinsics" ++#~ msgstr "libU77 yerleşikleri gizlenir" ++ ++#~ msgid "Print g77-specific version information and run internal tests" ++#~ msgstr "g77'ye özel sürüm bilgisini gösterir ve iç testleri yapar" ++ ++#~ msgid "Program is written in VXT (Digital-like) FORTRAN" ++#~ msgstr "Program VXT (Digital-benzeri) FORTRAN da yazılmış" ++ ++#~ msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports" ++#~ msgstr "" ++#~ "FORTRAN-77 olmayan yerleşiklerin VXT FORTRAN\n" ++#~ " destekleri silinir" ++ ++#~ msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports" ++#~ msgstr "" ++#~ "FORTRAN-77 olmayan yerleşiklerin VXT FORTRAN\n" ++#~ " destekleri iptal edilir" ++ ++#~ msgid "Enable non-FORTRAN-77 intrinsics VXT FORTRAN supports" ++#~ msgstr "" ++#~ "FORTRAN-77 olmayan yerleşiklerin VXT FORTRAN\n" ++#~ " destekleri etkin olur" ++ ++#~ msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports" ++#~ msgstr "" ++#~ "FORTRAN-77 olmayan yerleşiklerin VXT FORTRAN\n" ++#~ " destekleri gizlenir" ++ ++#~ msgid "Print internal debugging-related information" ++#~ msgstr "İç hata ayıklama bilgilerini gösterir" ++ ++#~ msgid "Treat initial values of 0 like non-zero values" ++#~ msgstr "" ++#~ "0 değerli olanlar içerde sıfır değerli olmayanlar\n" ++#~ " gibi değerlendirilir" ++ ++#~ msgid "neither the destructor nor the class-specific " ++#~ msgstr "sınıf tanımlanırken bildirilmiş olsalar bile " ++ ++#~ msgid "operator delete will be called, even if they are " ++#~ msgstr "ne yıkıcı ne de sınıfa özel " ++ ++#~ msgid "declared when the class is defined." ++#~ msgstr "silme işleci çağrılabilir." + + #~ msgid "concatenation of string literals with __FUNCTION__ is deprecated" + #~ msgstr "__FUNCTION__ ile dizge sabitlerin birleştirilmesi özelliği eski kullanım" +@@ -22833,9 +22773,6 @@ + #~ msgid "`sigof' applied to non-aggregate expression" + #~ msgstr "küme olmayan ifadeye `sigof' uygulanmış" + +-#~ msgid "`sigof' applied to non-aggregate type" +-#~ msgstr "küme olmayan türe `sigof' uygulanmış" +- + #~ msgid "qualified name does not name a class" + #~ msgstr "nitelenmiş isim bir sınıf ismi değil" + +@@ -22866,9 +22803,6 @@ + #~ msgid "ISO C++ forbids array dimensions with parenthesized type in new" + #~ msgstr "ISO C++ new içinde parantezli dizi indislemeye izin vermez" + +-#~ msgid "`%T' is not a class or namespace" +-#~ msgstr "`%T' bir sınıf ya da isim alanı değil" +- + #~ msgid "ISO C++ forbids label declarations" + #~ msgstr "ISO C++ etiket bildirimlerine izin vermez" + +@@ -23305,9 +23239,6 @@ + #~ msgid "missing binary operator" + #~ msgstr "iki terimli işlemimi eksik" + +-#~ msgid "operator '%s' has no left operand" +-#~ msgstr "`%s' işlemiminin sol tarafı yok" +- + #~ msgid "changing search order for system directory \"%s\"" + #~ msgstr "sistem dizini \"%s\" için arama sırası" + +Index: gcc/testsuite/ChangeLog +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/testsuite/ChangeLog,v +retrieving revision 1.3389.2.305 +retrieving revision 1.3389.2.357 +diff -u -r1.3389.2.305 -r1.3389.2.357 +--- gcc/testsuite/ChangeLog 5 Nov 2004 03:34:09 -0000 1.3389.2.305 ++++ gcc/testsuite/ChangeLog 9 Feb 2005 02:21:28 -0000 1.3389.2.357 +@@ -1,3 +1,280 @@ ++2005-02-08 Mark Mitchell ++ ++ PR c++/19733 ++ * g++.dg/parse/crash23.C: New test. ++ ++2005-02-03 Richard Guenther ++ ++ PR middle-end/19775 ++ ++ * gcc.dg/builtins-10.c: Disable test for ++ invalid transformation and one test we no ++ longer optimize. ++ * gcc.dg/builtins-47.c: New testcase. ++ ++2005-02-01 Alexandre Oliva ++ ++ * g++.dg/parse/typename7.C: Adjust error messages. ++ ++2005-01-26 Ulrich Weigand ++ ++ Backport from mainline: ++ * gcc.dg/20041216-1.c: New test. ++ ++2005-01-24 Eric Botcazou ++ ++ * gcc.c-torture/compile/20050113-1.c: XFAIL on SPARC. ++ ++2005-01-24 Jakub Jelinek ++ ++ PR middle-end/19551 ++ * gcc.c-torture/execute/20050121-1.c: New test. ++ ++2005-01-24 David Billinghurst (David.Billinghurst@riotinto.com) ++ ++ PR other/16403 ++ * lib/g++.exp (g++_version): Tweak regexp for version ++ * lib/g77.exp (g77_version): Likewise ++ * lib/objc.exp (objc_version): Likewise ++ ++2005-01-19 Kriang Lerdsuwanakij ++ ++ PR c++/19258 ++ * g++.dg/lookup/friend6.C: New test. ++ ++2005-01-19 Jakub Jelinek ++ ++ PR rtl-optimization/15139 ++ * gcc.dg/20050111-2.c: New test. ++ ++ PR c/17297 ++ * gcc.c-torture/compile/20050113-1.c: New testcase. ++ ++ PR middle-end/19164 ++ * gcc.dg/20050113-1.c: New testcase. ++ ++2005-01-18 Eric Botcazou ++ ++ * g++.dg/debug/typedef3.C: New test. ++ ++2005-01-18 Eric Botcazou ++ ++ * gcc.dg/short-compare-1.c: New test. ++ * gcc.dg/short-compare-2.c: Likewise. ++ ++2005-01-15 Jakub Jelinek ++ ++ PR c++/19263 ++ * g++.dg/init/vector1.C: New test. ++ ++2005-01-07 Jakub Jelinek ++ ++ * gcc.c-torture/execute/20050107-1.c: New test. ++ ++2005-01-06 Laurent GUERBY ++ ++ Backport from mainline: ++ ++ 2004-11-23 John David Anglin ++ ++ * ada/acats/run_acats (LD_LIBRARY_PATH): Add previous LD_LIBRARY_PATH ++ to LD_LIBRARY_PATH. Export LD_LIBRARY_PATH. ++ ++ 2004-04-24 Laurent GUERBY ++ Ulrich Weigand ++ ++ * ada/acats/run_all.sh: Define $target variable. ++ ++ 2004-04-24 Laurent GUERBY ++ ++ * ada/acats/run_all.sh: Handle cd2a83c, cd2a91c (target_bit) ++ and ad8011a (target_insn). ++ * ada/acats/support/macro.dfs: Likewise. ++ * ada/acats/support/impbit.adb: New file. ++ ++2005-01-06 Jakub Jelinek ++ ++ * gcc.c-torture/compile/20050105-1.c: New test. ++ ++2005-01-02 Andreas Jaeger ++ ++ * gcc.dg/pr12092-1.c: Do not run on x86_64. ++ ++2005-01-02 Roger Sayle ++ Andrew Pinski ++ ++ PR rtl-optimization/12092 ++ * gcc.dg/pr12092-1.c: New test case. ++ ++2004-12-28 Jakub Jelinek ++ ++ PR c++/18384, c++/18327 ++ * g++.dg/init/array18.C: New test. ++ ++2004-12-23 Alexandre Oliva ++ ++ PR target/16819 ++ * gcc.dg/empty2.c: New. ++ ++2004-12-23 Alexandre Oliva ++ ++ * g++.dg/template/spec19.C: New. ++ ++2004-12-23 Alexandre Oliva ++ ++ * g++.dg/parse/typename5.C: Adjust for new error. ++ * g++.dg/parse/typename7.C: New. ++ ++2004-12-20 Andrew Pinski ++ ++ PR other/19093 ++ * g++.dg/opt/max1.C: Fix for 64bit targets. ++ ++2004-12-19 Roger Sayle ++ ++ PR middle-end/19068 ++ * g++.dg/opt/max1.C: New test case. ++ ++2004-12-18 Jakub Jelinek ++ ++ * gcc.c-torture/execute/20041218-1.c: New test. ++ ++2004-12-17 Nathan Sidwell ++ ++ PR c++/18975 ++ * g++.dg/other/synth1.C: New. ++ ++2004-12-17 Jakub Jelinek ++ ++ * gcc.c-torture/execute/20041213-1.c: Move... ++ * gcc.c-torture/execute/ieee/20041213-1.c: ...to here. ++ ++2004-12-16 Roger Sayle ++ ++ PR middle-end/18493 ++ * gcc.dg/switch-4.c: New test case. ++ ++2004-12-16 Wolfgang Bangerth ++ ++ * g++.dg/other/complex1.C: New test. ++ ++2004-12-15 Alan Modra ++ ++ * g++.dg/opt/inline9.C: New test. ++ ++2004-12-15 Eric Botcazou ++ ++ * cpp/pragma-once-1.c: New test. ++ * cpp/pragma-once-1b.h: Likewise. ++ * cpp/pragma-once-1c.h: Likewise. ++ * cpp/pragma-once-1d.h: Likewise. ++ * cpp/inc/pragma-once-1a.h: Likewise. ++ ++2004-12-15 Eric Botcazou ++ ++ * gcc.dg/ftrapv-2.c: New test. ++ ++2004-12-14 Jakub Jelinek ++ ++ PR middle-end/18951 ++ * gcc.c-torture/execute/20041213-1.c: New test. ++ ++2004-12-13 Richard Henderson ++ ++ * gcc.dg/i386-sse-10.c: Fix typo in options. ++ ++2004-12-10 Volker Reichelt ++ ++ PR c++/18731 ++ * g++.dg/parser/struct-1.C: New test. ++ * g++.dg/parser/struct-2.C: New test. ++ * g++.dg/parser/struct-3.C: New test. ++ ++2004-12-09 Nathan Sidwell ++ ++ PR c++/16681 ++ * g++.dg/init/array15.C: New. ++ * g++.dg/init/array16.C: New. ++ ++2004-12-08 Kriang Lerdsuwanakij ++ ++ PR c++/18100 ++ * g++.dg/lookup/name-clash4.C: New test. ++ ++2004-12-07 Volker Reichelt ++ ++ * g++.dg/other/unreachable-1.C: New test. ++ ++2004-12-04 Kriang Lerdsuwanakij ++ ++ PR c++/17011, c++/17971 ++ * g++.dg/template/error15.C: Adjust expected error. ++ * g++.dg/template/instantiate3.C: Likewise. ++ ++2004-12-02 Kriang Lerdsuwanakij ++ ++ PR c++/18123 ++ * g++.dg/parse/enum2.C: New test. ++ ++2004-12-02 Alan Modra ++ ++ PR target/16952 ++ * gcc.dg/ppc-eabi.c: New. ++ ++2004-12-01 Nathan Sidwell ++ ++ PR c++/17431 ++ * g++.dg/overload/arg1.C: New. ++ * g++.dg/overload/arg2.C: New. ++ * g++.dg/overload/arg3.C: New. ++ * g++.dg/overload/arg4.C: New. ++ ++2004-11-30 Jakub Jelinek ++ ++ * gcc.c-torture/execute/20041126-1.c: New test. ++ ++2004-11-27 Falk Hueffner ++ ++ * gcc.dg/loop-6.c: New test. ++ ++2004-11-24 Uros Bizjak ++ ++ * gcc.dg/pr18614-1.c: New test. ++ ++2004-11-23 Eric Botcazou ++ ++ * gcc.dg/setjmp-2.c: New test. ++ ++2004-11-16 Joseph S. Myers ++ ++ PR c/18498 ++ * gcc.dg/bitfld-13.c: New test. ++ ++2004-11-12 Mark Mitchell ++ ++ PR c++/18389 ++ * g++.dg/parse/cond1.C: New test. ++ ++ PR c++/18436 ++ * g++.dg/template/call3.C: New test. ++ ++ PR c++/18407 ++ * g++.dg/template/ptrmem11.C: New test. ++ ++2004-11-12 Eric Botcazou ++ ++ * gcc.c-torture/execute/20041112-1.c: New test. ++ ++2004-11-10 Joseph S. Myers ++ ++ PR c/18322 ++ * gcc.dg/func-outside-1.c, gcc.dg/func-outside-2.c: Correct ++ expected diagnostic location. ++ ++2004-11-10 Eric Botcazou ++ ++ * gcc.dg/union-2.c: New test. ++ + 2004-11-04 Release Manager + + * GCC 3.4.3 released. +Index: gcc/testsuite/ada/acats/run_acats +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/testsuite/ada/acats/run_acats,v +retrieving revision 1.5 +retrieving revision 1.5.4.1 +diff -u -r1.5 -r1.5.4.1 +--- gcc/testsuite/ada/acats/run_acats 8 Jan 2004 15:19:36 -0000 1.5 ++++ gcc/testsuite/ada/acats/run_acats 7 Jan 2005 18:52:40 -0000 1.5.4.1 +@@ -14,6 +14,7 @@ + + PATH=$BASE:$ROOT:$PATH + ADA_INCLUDE_PATH=$BASE/ada/rts ++LD_LIBRARY_PATH=$ADA_INCLUDE_PATH:$LD_LIBRARY_PATH + ADA_OBJECTS_PATH=$ADA_INCLUDE_PATH + + if [ ! -d $ADA_INCLUDE_PATH ]; then +@@ -33,7 +34,7 @@ + + GCC_DRIVER="$BASE/xgcc" + GCC="$BASE/xgcc -B$BASE/" +-export PATH ADA_INCLUDE_PATH ADA_OBJECTS_PATH GCC_DRIVER GCC ++export PATH ADA_INCLUDE_PATH ADA_OBJECTS_PATH GCC_DRIVER GCC LD_LIBRARY_PATH + + echo '#!/bin/sh' > host_gnatchop + echo PATH=`dirname $host_gnatchop`:'$PATH' >> host_gnatchop +Index: gcc/testsuite/ada/acats/run_all.sh +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/testsuite/ada/acats/run_all.sh,v +retrieving revision 1.14 +retrieving revision 1.14.4.1 +diff -u -r1.14 -r1.14.4.1 +--- gcc/testsuite/ada/acats/run_all.sh 13 Jan 2004 11:48:46 -0000 1.14 ++++ gcc/testsuite/ada/acats/run_all.sh 7 Jan 2005 18:52:40 -0000 1.14.4.1 +@@ -71,10 +71,12 @@ + + display " === acats configuration ===" + ++target=`$GCC -dumpmachine` ++ + display target gcc is $GCC + display `$GCC -v 2>&1` + display host=`gcc -dumpmachine` +-display target=`$GCC -dumpmachine` ++display target=$target + display `type gnatmake` + gnatls -v >> $dir/acats.log + display "" +@@ -88,9 +90,32 @@ + + cp $testdir/support/*.ada $testdir/support/*.a $testdir/support/*.tst $dir/support + ++# Find out the size in bit of an address on the target ++target_gnatmake $testdir/support/impbit.adb >> $dir/acats.log 2>&1 ++target_run $dir/support/impbit > $dir/support/impbit.out 2>&1 ++target_bit=`cat $dir/support/impbit.out` ++echo target_bit="$target_bit" >> $dir/acats.log ++ ++# Find out a suitable asm statement ++# Adapted from configure.ac gcc_cv_as_dwarf2_debug_line ++case "$target" in ++ ia64*-*-* | s390*-*-*) ++ target_insn="nop 0" ++ ;; ++ mmix-*-*) ++ target_insn="swym 0" ++ ;; ++ *) ++ target_insn="nop" ++ ;; ++esac ++echo target_insn="$target_insn" >> $dir/acats.log ++ + sed -e "s,ACATS4GNATDIR,$dir,g" \ + < $testdir/support/impdef.a > $dir/support/impdef.a + sed -e "s,ACATS4GNATDIR,$dir,g" \ ++ -e "s,ACATS4GNATBIT,$target_bit,g" \ ++ -e "s,ACATS4GNATINSN,$target_insn,g" \ + < $testdir/support/macro.dfs > $dir/support/MACRO.DFS + sed -e "s,ACATS4GNATDIR,$dir,g" \ + < $testdir/support/tsttests.dat > $dir/support/TSTTESTS.DAT +Index: gcc/testsuite/ada/acats/support/impbit.adb +=================================================================== +RCS file: gcc/testsuite/ada/acats/support/impbit.adb +diff -N gcc/testsuite/ada/acats/support/impbit.adb +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/ada/acats/support/impbit.adb 7 Jan 2005 18:52:41 -0000 1.1.44.1 +@@ -0,0 +1,6 @@ ++with System; ++with Ada.Text_IO; ++procedure Impbit is ++begin ++ Ada.Text_IO.Put_Line (System.Address'Size'Img); ++end Impbit; +Index: gcc/testsuite/ada/acats/support/macro.dfs +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/testsuite/ada/acats/support/macro.dfs,v +retrieving revision 1.1 +retrieving revision 1.1.12.1 +diff -u -r1.1 -r1.1.12.1 +--- gcc/testsuite/ada/acats/support/macro.dfs 27 Oct 2003 11:28:49 -0000 1.1 ++++ gcc/testsuite/ada/acats/support/macro.dfs 7 Jan 2005 18:52:41 -0000 1.1.12.1 +@@ -99,7 +99,7 @@ + -- AN INTEGER LITERAL WHOSE VALUE IS THE MINIMUM NUMBER OF BITS + -- SUFFICIENT TO HOLD ANY VALUE OF AN ACCESS TYPE. + -- USED IN: CD2A83C BD2A02A +-ACC_SIZE 32 ++ACC_SIZE ACATS4GNATBIT + + -- $ALIGNMENT + -- A VALUE THAT IS LEGITIMATE FOR USE IN A RECORD ALIGNMENT CLAUSE. +@@ -220,7 +220,7 @@ + -- MACHINE_CODE. IF THE IMPLEMENTATION DOES NOT SUPPORT MACHINE + -- CODE THEN USE THE ADA NULL STATEMENT (I.E. NULL; ). + -- USED IN: AD8011A BD8001A BD8002A BD8004A BD8004B +-MACHINE_CODE_STATEMENT Asm_Insn'(Asm ("nop")); ++MACHINE_CODE_STATEMENT Asm_Insn'(Asm ("ACATS4GNATINSN")); + + -- $MAX_INT + -- AN INTEGER LITERAL WHOSE VALUE IS SYSTEM.MAX_INT. +@@ -271,7 +271,7 @@ + -- AN INTEGER LITERAL WHOSE VALUE IS THE NUMBER OF BITS REQUIRED TO + -- HOLD A TASK OBJECT. + -- USED IN: CD2A91C +-TASK_SIZE 32 ++TASK_SIZE ACATS4GNATBIT + + -- $TASK_STORAGE_SIZE + -- THE NUMBER OF STORAGE UNITS REQUIRED FOR A TASK ACTIVATION. +Index: gcc/testsuite/g++.dg/debug/typedef3.C +=================================================================== +RCS file: gcc/testsuite/g++.dg/debug/typedef3.C +diff -N gcc/testsuite/g++.dg/debug/typedef3.C +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/g++.dg/debug/typedef3.C 18 Jan 2005 21:39:38 -0000 1.1.2.1 +@@ -0,0 +1,19 @@ ++// PR debug/16261 ++// { dg-do compile } ++ ++namespace N ++{ ++ struct A {}; ++ typedef A B; ++} ++ ++void foo() ++{ ++ struct C ++ { ++ C(N::B) {} ++ }; ++ ++ N::B b; ++ C c(b); ++} +Index: gcc/testsuite/g++.dg/init/array15.C +=================================================================== +RCS file: gcc/testsuite/g++.dg/init/array15.C +diff -N gcc/testsuite/g++.dg/init/array15.C +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/g++.dg/init/array15.C 9 Dec 2004 12:21:32 -0000 1.1.2.1 +@@ -0,0 +1,46 @@ ++// { dg-do run } ++ ++// Copyright (C) 2004 Free Software Foundation, Inc. ++// Contributed by Nathan Sidwell 8 Dec 2004 ++ ++// PR 16681 too much memory used ++// Origin: Matt LaFary ++ ++struct foo { ++ unsigned char buffer[4111222]; ++ foo() ; ++ bool check () const; ++}; ++ ++foo::foo () ++ : buffer() ++{} ++ ++bool foo::check () const ++{ ++ for (unsigned ix = sizeof (buffer); ix--;) ++ if (buffer[ix]) ++ return false; ++ return true; ++} ++ ++void *operator new (__SIZE_TYPE__ size, void *p) ++{ ++ return p; ++} ++ ++char heap[5000000]; ++ ++int main () ++{ ++ for (unsigned ix = sizeof (heap); ix--;) ++ heap[ix] = ix; ++ ++ foo *f = new (heap) foo (); ++ ++ if (!f->check ()) ++ return 1; ++ return 0; ++} ++ ++ +Index: gcc/testsuite/g++.dg/init/array16.C +=================================================================== +RCS file: gcc/testsuite/g++.dg/init/array16.C +diff -N gcc/testsuite/g++.dg/init/array16.C +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/g++.dg/init/array16.C 9 Dec 2004 12:21:32 -0000 1.1.2.1 +@@ -0,0 +1,106 @@ ++// { dg-do run } ++ ++// Copyright (C) 2004 Free Software Foundation, Inc. ++// Contributed by Nathan Sidwell 8 Dec 2004 ++ ++// PR 16681 too much memory used ++// Origin: Matt LaFary ++ ++ ++struct elt ++{ ++ static int count; ++ static elt*ptr; ++ static int abort; ++ char c; ++ ++ elt (); ++ ~elt (); ++ ++}; ++ ++int elt::count; ++elt *elt::ptr; ++int elt::abort; ++ ++elt::elt () ++ :c () ++{ ++ if (count >= 0) ++ { ++ if (!ptr) ++ ptr = this; ++ if (count == 100) ++ throw 2; ++ if (this != ptr) ++ abort = 1; ++ count++; ++ ptr++; ++ } ++} ++ ++elt::~elt () ++{ ++ if (count >= 0) ++ { ++ ptr--; ++ count--; ++ if (ptr != this) ++ abort = 2; ++ } ++} ++ ++struct foo { ++ elt buffer[4111222]; ++ foo() ; ++ bool check () const; ++}; ++ ++foo::foo () ++ : buffer() ++{} ++ ++bool foo::check () const ++{ ++ for (unsigned ix = sizeof (buffer)/ sizeof (buffer[0]); ix--;) ++ if (buffer[ix].c) ++ return false; ++ return true; ++} ++ ++void *operator new (__SIZE_TYPE__ size, void *p) ++{ ++ return p; ++} ++ ++char heap[5000000]; ++ ++int main () ++{ ++ for (unsigned ix = sizeof (heap); ix--;) ++ heap[ix] = ix; ++ ++ try ++ { ++ foo *f = new (heap) foo (); ++ return 1; ++ } ++ catch (...) ++ { ++ if (elt::count) ++ return 2; ++ if (elt::abort) ++ return elt::abort + 3; ++ } ++ ++ for (unsigned ix = sizeof (heap); ix--;) ++ heap[ix] = ix; ++ ++ elt::count = -1; ++ foo *f = new (heap) foo (); ++ if (!f->check ()) ++ return 3; ++ return 0; ++} ++ ++ +Index: gcc/testsuite/g++.dg/init/array18.C +=================================================================== +RCS file: gcc/testsuite/g++.dg/init/array18.C +diff -N gcc/testsuite/g++.dg/init/array18.C +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/g++.dg/init/array18.C 28 Dec 2004 20:57:56 -0000 1.1.2.1 +@@ -0,0 +1,4 @@ ++// { dg-do compile } ++// { dg-options "" } ++double a[0] = { }; ++const double b[0][1] = { }; +Index: gcc/testsuite/g++.dg/init/vector1.C +=================================================================== +RCS file: gcc/testsuite/g++.dg/init/vector1.C +diff -N gcc/testsuite/g++.dg/init/vector1.C +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/g++.dg/init/vector1.C 14 Jan 2005 23:51:38 -0000 1.1.2.1 +@@ -0,0 +1,78 @@ ++// PR c++/19263 ++// { dg-do run } ++// { dg-options "-O2" } ++ ++typedef signed char v8qi __attribute__ ((vector_size (8))); ++ ++extern "C" void abort (void); ++ ++static unsigned char S[16]; ++ ++struct A ++{ ++ int i; ++ v8qi j, k; ++ int l; ++}; ++ ++void ++foo (unsigned char v) ++{ ++ A a = { 1, { v, v, v, v, v, v, v, v }, ++ { v + 1, v + 1, v + 1, v + 1, v + 1, v + 1, v + 1, v + 1 }, 3 }; ++ v8qi *s = (v8qi *) &S[0]; ++ *s = a.j; ++ s[1] = a.k; ++} ++ ++void ++bar (unsigned char v) ++{ ++ v8qi val8 = { v, v, v, v, v, v, v, v }; ++ v8qi *s = (v8qi *) &S[0]; ++ *s = val8; ++} ++ ++int n = 5, cnt; ++ ++int ++num (void) ++{ ++ ++cnt; ++ return n; ++} ++ ++void ++baz (void) ++{ ++ static A a = { 0, { num (), num (), num (), num (), 6, 6, 6, 6 }, ++ { 7, 7, 7, 7, 8, 8, 8, 8 }, 0 }; ++ v8qi *s = (v8qi *) &S[0]; ++ *s = a.j; ++ s[1] = a.k; ++} ++ ++int ++main () ++{ ++ int i; ++ foo (1); ++ for (i = 0; i < 8; ++i) ++ if (S[i] != 1) ++ abort (); ++ for (; i < 16; ++i) ++ if (S[i] != 2) ++ abort (); ++ bar (3); ++ for (i = 0; i < 8; ++i) ++ if (S[i] != 3) ++ abort (); ++ return 0; ++ baz (); ++ if (cnt != 4) ++ abort (); ++ for (i = 0; i < 16; ++i) ++ if (S[i] != 5 + (i / 4)) ++ abort (); ++ return 0; ++} +Index: gcc/testsuite/g++.dg/lookup/friend6.C +=================================================================== +RCS file: gcc/testsuite/g++.dg/lookup/friend6.C +diff -N gcc/testsuite/g++.dg/lookup/friend6.C +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/g++.dg/lookup/friend6.C 19 Jan 2005 14:46:35 -0000 1.1.10.1 +@@ -0,0 +1,15 @@ ++// { dg-do compile } ++ ++// Origin: Matt Austern ++ ++// PR c++/19258: Wrong lookup scope for friend defined in class. ++ ++class X { ++ template friend int ff(T*, int y=anX.x) { return y; } ++ int f() { return ff(&anX); } ++ ++ static X anX; ++ int x; ++}; ++ ++X dummy; +Index: gcc/testsuite/g++.dg/lookup/name-clash4.C +=================================================================== +RCS file: gcc/testsuite/g++.dg/lookup/name-clash4.C +diff -N gcc/testsuite/g++.dg/lookup/name-clash4.C +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/g++.dg/lookup/name-clash4.C 8 Dec 2004 10:53:29 -0000 1.1.2.1 +@@ -0,0 +1,12 @@ ++// { dg-do compile } ++ ++// Origin: Volker Reichelt ++ ++// PR c++/18100: Invalid nested type. ++ ++struct A ++{ ++ template struct A {}; // { dg-error "same name" } ++}; ++ ++A::A<0> a; // { dg-error "not a template" } +Index: gcc/testsuite/g++.dg/opt/inline9.C +=================================================================== +RCS file: gcc/testsuite/g++.dg/opt/inline9.C +diff -N gcc/testsuite/g++.dg/opt/inline9.C +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/g++.dg/opt/inline9.C 15 Dec 2004 19:17:57 -0000 1.1.2.1 +@@ -0,0 +1,29 @@ ++// PR c++/17972 ++// Origin: Michal Ostrowski ++// Testcase by Alan Modra ++// { dg-do run } ++// { dg-options "-O" } ++// { dg-options "-O -mtune=i686" { target i?86-*-* } } ++ ++struct thread_info ++{ ++ short preempt_count; ++} x; ++ ++static inline struct thread_info *cti (void) __attribute__ ((const)); ++static inline struct thread_info *cti (void) ++{ ++ return &x; ++} ++ ++void fn (void) __attribute__ ((noinline)); ++void fn (void) ++{ ++ ++cti()->preempt_count; ++} ++ ++int main (void) ++{ ++ fn (); ++ return 0; ++} +Index: gcc/testsuite/g++.dg/opt/max1.C +=================================================================== +RCS file: gcc/testsuite/g++.dg/opt/max1.C +diff -N gcc/testsuite/g++.dg/opt/max1.C +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/g++.dg/opt/max1.C 20 Dec 2004 21:09:37 -0000 1.1.2.2 +@@ -0,0 +1,29 @@ ++/* PR middle-end/19068 */ ++/* Test case by Andrew Pinski */ ++/* { dg-do run } */ ++/* { dg-options "-O2" } */ ++ ++extern "C" void abort (void); ++ ++long fff[10]; ++ ++void f(long a) ++{ ++ int i; ++ a = *((long*)(a+1+sizeof(long))) >? *((long*)(a+1)); ++ ++ for(i=0;i<10;i++) ++ fff[i] = a; ++} ++ ++int main(void) ++{ ++ int i; ++ long a[2] = {10,5}; ++ f((long)(&a)-1); ++ for(i = 0;i<10;i++) ++ if (fff[i]!=10) ++ abort (); ++ return 0; ++} ++ +Index: gcc/testsuite/g++.dg/other/complex1.C +=================================================================== +RCS file: gcc/testsuite/g++.dg/other/complex1.C +diff -N gcc/testsuite/g++.dg/other/complex1.C +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/g++.dg/other/complex1.C 16 Dec 2004 10:23:32 -0000 1.1.2.1 +@@ -0,0 +1,28 @@ ++// PR middle-end/18882 ++// Origin: Petr Mikulik ++// Testcase by Wolfgang Bangerth ++ ++// { dg-do run } ++// { dg-options "" } ++ ++extern "C" void abort (); ++ ++struct C { ++ __complex__ long double c; ++}; ++ ++void foo() ++{ ++ C x = {2+2i}; ++ ++ int n = 1; ++ C y = (n==1) ? x : (C){3+3i}; ++ if (__imag__ y.c != 2) ++ abort (); ++} ++ ++int main(void) ++{ ++ foo (); ++ return 0; ++} +Index: gcc/testsuite/g++.dg/other/synth1.C +=================================================================== +RCS file: gcc/testsuite/g++.dg/other/synth1.C +diff -N gcc/testsuite/g++.dg/other/synth1.C +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/g++.dg/other/synth1.C 17 Dec 2004 16:19:23 -0000 1.1.2.1 +@@ -0,0 +1,31 @@ ++// Copyright (C) 2004 Free Software Foundation, Inc. ++// Contributed by Nathan Sidwell 17 Dec 2004 ++ ++// PR 18975: Rejects legal ++// Origin: Wolfgang Roehrl ++ ++struct PTR ++{ ++ PTR (); ++ PTR (PTR&); ++ PTR& operator= (PTR&); ++ ++private: ++ PTR (const PTR&); ++ PTR& operator= (const PTR&); ++}; ++ ++ ++struct XYZ ++{ ++ XYZ (PTR& p) : ptr(p) {} ++ ++ mutable PTR ptr; ++}; ++ ++ ++XYZ f1 (); ++ ++ ++XYZ f2 (void) { return f1(); } ++void f3 (XYZ& dst, const XYZ& src) { dst = src; } +Index: gcc/testsuite/g++.dg/other/unreachable1.C +=================================================================== +RCS file: gcc/testsuite/g++.dg/other/unreachable1.C +diff -N gcc/testsuite/g++.dg/other/unreachable1.C +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/g++.dg/other/unreachable1.C 7 Dec 2004 07:54:00 -0000 1.1.2.1 +@@ -0,0 +1,11 @@ ++// PR middle-end/17827 ++// Origin: Andre Woebbeking ++// Testcase by Volker Reichelt ++// { dg-do compile } ++ ++void foo() ++{ ++ if (false) ++ if (int i=0) ++ int j=i; ++} +Index: gcc/testsuite/g++.dg/overload/arg1.C +=================================================================== +RCS file: gcc/testsuite/g++.dg/overload/arg1.C +diff -N gcc/testsuite/g++.dg/overload/arg1.C +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/g++.dg/overload/arg1.C 1 Dec 2004 12:58:17 -0000 1.1.2.1 +@@ -0,0 +1,23 @@ ++// { dg-do compile } ++ ++// Copyright (C) 2004 Free Software Foundation, Inc. ++// Contributed by Nathan Sidwell 30 Nov 2004 ++ ++// PR 17431. copy ctor from user conv ++// Origin: Volker Reichelt ++ ++struct A {}; ++ ++struct B : A ++{ ++ B(int); // { dg-error "" "" } ++ B(B &); // { dg-error "" "" } ++ B(A); // { dg-error "" "" } ++}; ++ ++void foo(B); ++ ++void bar() ++{ ++ foo(0); // { dg-error "no matching function|initializing" "" } ++} +Index: gcc/testsuite/g++.dg/overload/arg2.C +=================================================================== +RCS file: gcc/testsuite/g++.dg/overload/arg2.C +diff -N gcc/testsuite/g++.dg/overload/arg2.C +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/g++.dg/overload/arg2.C 1 Dec 2004 12:58:17 -0000 1.1.2.1 +@@ -0,0 +1,22 @@ ++// { dg-do compile } ++ ++// Copyright (C) 2004 Free Software Foundation, Inc. ++// Contributed by Nathan Sidwell 30 Nov 2004 ++ ++// PR 17431. copy ctor from user conv ++// Origin: Volker Reichelt ++ ++struct A {}; ++ ++struct B : A ++{ ++ B(int); ++ B(A); ++}; ++ ++void foo(B); ++ ++void bar() ++{ ++ foo(0); ++} +Index: gcc/testsuite/g++.dg/overload/arg3.C +=================================================================== +RCS file: gcc/testsuite/g++.dg/overload/arg3.C +diff -N gcc/testsuite/g++.dg/overload/arg3.C +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/g++.dg/overload/arg3.C 1 Dec 2004 12:58:17 -0000 1.1.2.1 +@@ -0,0 +1,22 @@ ++// { dg-do compile } ++ ++// Copyright (C) 2004 Free Software Foundation, Inc. ++// Contributed by Nathan Sidwell 30 Nov 2004 ++ ++// PR 17431. copy ctor from user conv ++// Origin: Volker Reichelt ++ ++struct A {}; ++ ++struct B : A ++{ ++ B(int); // { dg-error "" "" } ++ B(B&); // { dg-error "" "" } ++}; ++ ++void foo(B); ++ ++void bar() ++{ ++ foo(0); // { dg-error "no matching function|initializing" "" } ++} +Index: gcc/testsuite/g++.dg/overload/arg4.C +=================================================================== +RCS file: gcc/testsuite/g++.dg/overload/arg4.C +diff -N gcc/testsuite/g++.dg/overload/arg4.C +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/g++.dg/overload/arg4.C 1 Dec 2004 12:58:17 -0000 1.1.2.1 +@@ -0,0 +1,30 @@ ++// { dg-do compile } ++ ++// Copyright (C) 2004 Free Software Foundation, Inc. ++// Contributed by Nathan Sidwell 30 Nov 2004 ++ ++// PR 17431. copy ctor from user conv ++// Origin: Volker Reichelt ++ ++struct A {}; ++ ++struct B : A ++{ ++ B(int); // { dg-error "" "" } ++ B(B&); // { dg-error "" "" } ++ B(A); // { dg-error "" "" } ++}; ++ ++struct C ++{ ++ operator B () const; ++}; ++ ++ ++void foo(B); ++ ++void bar() ++{ ++ C c; ++ foo(c); // { dg-error "no matching function|initializing" "" } ++} +Index: gcc/testsuite/g++.dg/parse/cond1.C +=================================================================== +RCS file: gcc/testsuite/g++.dg/parse/cond1.C +diff -N gcc/testsuite/g++.dg/parse/cond1.C +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/g++.dg/parse/cond1.C 12 Nov 2004 21:57:31 -0000 1.1.2.1 +@@ -0,0 +1,6 @@ ++// PR c++/18389 ++ ++void foo() ++{ ++ for (; struct A {}; ); // { dg-error "" } ++} +Index: gcc/testsuite/g++.dg/parse/crash23.C +=================================================================== +RCS file: gcc/testsuite/g++.dg/parse/crash23.C +diff -N gcc/testsuite/g++.dg/parse/crash23.C +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/g++.dg/parse/crash23.C 9 Feb 2005 02:21:36 -0000 1.1.2.1 +@@ -0,0 +1,12 @@ ++// PR c++/19733 ++ ++struct A {}; ++typedef int I; ++void foo() { ++ A().~A; // { dg-error "" } ++ A().A::~A; // { dg-error "" } ++ (int().I::~I, 3); // { dg-error "" } ++ int().I::~I; // { dg-error "" } ++} ++ ++ +Index: gcc/testsuite/g++.dg/parse/enum2.C +=================================================================== +RCS file: gcc/testsuite/g++.dg/parse/enum2.C +diff -N gcc/testsuite/g++.dg/parse/enum2.C +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/g++.dg/parse/enum2.C 2 Dec 2004 11:51:33 -0000 1.1.2.1 +@@ -0,0 +1,7 @@ ++// { dg-do compile } ++ ++// Origin: Volker Reichelt ++ ++// PR c++/18123: ICE pushing tag from invalid template. ++ ++template enum E { e }; // { dg-error "template declaration" } +Index: gcc/testsuite/g++.dg/parse/struct-1.C +=================================================================== +RCS file: gcc/testsuite/g++.dg/parse/struct-1.C +diff -N gcc/testsuite/g++.dg/parse/struct-1.C +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/g++.dg/parse/struct-1.C 10 Dec 2004 16:13:47 -0000 1.1.2.1 +@@ -0,0 +1,4 @@ ++// Origin: Volker Reichelt ++// PR c++/18731 ++ ++template struct T::A {}; // { dg-error "invalid class name" } +Index: gcc/testsuite/g++.dg/parse/struct-2.C +=================================================================== +RCS file: gcc/testsuite/g++.dg/parse/struct-2.C +diff -N gcc/testsuite/g++.dg/parse/struct-2.C +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/g++.dg/parse/struct-2.C 10 Dec 2004 16:13:47 -0000 1.1.2.1 +@@ -0,0 +1,7 @@ ++// Origin: Volker Reichelt ++// PR c++/18731 ++ ++template struct A ++{ ++ struct T::B {}; // { dg-error "invalid class name" } ++}; +Index: gcc/testsuite/g++.dg/parse/struct-3.C +=================================================================== +RCS file: gcc/testsuite/g++.dg/parse/struct-3.C +diff -N gcc/testsuite/g++.dg/parse/struct-3.C +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/g++.dg/parse/struct-3.C 10 Dec 2004 16:13:47 -0000 1.1.2.1 +@@ -0,0 +1,10 @@ ++// Origin: Volker Reichelt ++// PR c++/18731 ++ ++struct A ++{ ++ struct B; ++ typedef B C; ++}; ++ ++struct A::C {}; // { dg-error "invalid class name" } +Index: gcc/testsuite/g++.dg/parse/typename5.C +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/testsuite/g++.dg/parse/typename5.C,v +retrieving revision 1.2 +retrieving revision 1.2.4.1 +diff -u -r1.2 -r1.2.4.1 +--- gcc/testsuite/g++.dg/parse/typename5.C 15 Dec 2003 06:28:22 -0000 1.2 ++++ gcc/testsuite/g++.dg/parse/typename5.C 23 Dec 2004 16:25:50 -0000 1.2.4.1 +@@ -8,5 +8,5 @@ + + template struct B + { +- typedef A C; // { dg-error "declared|invalid|no type" } ++ typedef A C; // { dg-error "declared|invalid|no type|expected" } + }; +Index: gcc/testsuite/g++.dg/parse/typename7.C +=================================================================== +RCS file: gcc/testsuite/g++.dg/parse/typename7.C +diff -N gcc/testsuite/g++.dg/parse/typename7.C +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/g++.dg/parse/typename7.C 1 Feb 2005 07:04:00 -0000 1.1.10.2 +@@ -0,0 +1,31 @@ ++// { dg-do compile } ++ ++// Origin: Volker Reichelt and ++// Alexandre Oliva ++ ++// PR c++/18757: ICE in get_innermost_template_args ++ ++struct A ++{ ++ template void foo(int); ++ template void bar(T t) { ++ this->foo(t); } // { dg-error "expected|parse error|no matching" } ++ template void bad(T t) { ++ foo(t); } // { dg-error "expected|parse error" } ++}; ++ ++template ++struct B ++{ ++ void bar(T t) { ++ A().bar(t); } // { dg-error "expected|parse error|no matching" } ++ void bad(T t) { ++ B::bar(t); } // { dg-error "invalid|not a template" } ++}; ++ ++void baz() ++{ ++ A().bar(0); ++ A().bad(0); ++ B().bar(0); ++} +Index: gcc/testsuite/g++.dg/template/call3.C +=================================================================== +RCS file: gcc/testsuite/g++.dg/template/call3.C +diff -N gcc/testsuite/g++.dg/template/call3.C +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/g++.dg/template/call3.C 12 Nov 2004 21:57:31 -0000 1.1.2.1 +@@ -0,0 +1,15 @@ ++// PR c++/18436 ++ ++void foo(int); ++ ++struct A ++{ ++ static void foo(A); ++}; ++ ++template struct B : T ++{ ++ B() { foo(T()); } ++}; ++ ++B b; +Index: gcc/testsuite/g++.dg/template/error15.C +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/testsuite/g++.dg/template/error15.C,v +retrieving revision 1.1.2.1 +retrieving revision 1.1.2.2 +diff -u -r1.1.2.1 -r1.1.2.2 +--- gcc/testsuite/g++.dg/template/error15.C 11 Aug 2004 22:14:44 -0000 1.1.2.1 ++++ gcc/testsuite/g++.dg/template/error15.C 4 Dec 2004 06:55:00 -0000 1.1.2.2 +@@ -11,14 +11,14 @@ + + A a; // { dg-error "" } + +- void f(const A * a1 = &a); ++ void f(const A * a1 = &a); // { dg-error "this location" } + + void g(void); + }; + + template + void B::g(void) { +- f(); // { dg-error "" } ++ f(); + } + +-template class B; // { dg-error "" } ++template class B; +Index: gcc/testsuite/g++.dg/template/instantiate3.C +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/testsuite/g++.dg/template/instantiate3.C,v +retrieving revision 1.2 +retrieving revision 1.2.20.1 +diff -u -r1.2 -r1.2.20.1 +--- gcc/testsuite/g++.dg/template/instantiate3.C 28 Dec 2002 07:48:08 -0000 1.2 ++++ gcc/testsuite/g++.dg/template/instantiate3.C 4 Dec 2004 06:55:00 -0000 1.2.20.1 +@@ -10,7 +10,7 @@ + struct ACE_Cleanup_Adapter + { + TYPE &object () +- { return object_; } // { dg-error "undeclared|reported" } ++ { return object_; } // { dg-error "invalid" } + TYPE object_; // { dg-error "incomplete type" } + }; + +Index: gcc/testsuite/g++.dg/template/ptrmem11.C +=================================================================== +RCS file: gcc/testsuite/g++.dg/template/ptrmem11.C +diff -N gcc/testsuite/g++.dg/template/ptrmem11.C +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/g++.dg/template/ptrmem11.C 12 Nov 2004 21:57:31 -0000 1.1.2.1 +@@ -0,0 +1,19 @@ ++// PR c++/18407 ++ ++template ++struct the_base{ ++ template void foo() { } ++}; ++ ++template ++struct derivedT: the_base > { ++ typedef the_base > parent; ++ void ice(){ ++ this->parent::template foo< &derivedT::ice>(); ++ } ++}; ++ ++int main() { ++ derivedT dT; ++ dT.ice(); ++} +Index: gcc/testsuite/g++.dg/template/spec19.C +=================================================================== +RCS file: gcc/testsuite/g++.dg/template/spec19.C +diff -N gcc/testsuite/g++.dg/template/spec19.C +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/g++.dg/template/spec19.C 23 Dec 2004 20:06:11 -0000 1.1.2.1 +@@ -0,0 +1,23 @@ ++// PR c++/18962 ++ ++template ++class Class ++{ ++public: ++ template ++ void function( const Class& ); ++}; ++ ++template<> ++template ++void Class::function( const Class& param ) ++{ ++ param; // make sure we use the argument list from the definition. ++} ++ ++int main() ++{ ++ Class instance; ++ Class param; ++ instance.function( param ); ++} +Index: gcc/testsuite/gcc.c-torture/compile/20050105-1.c +=================================================================== +RCS file: gcc/testsuite/gcc.c-torture/compile/20050105-1.c +diff -N gcc/testsuite/gcc.c-torture/compile/20050105-1.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.c-torture/compile/20050105-1.c 5 Jan 2005 23:47:02 -0000 1.1.2.1 +@@ -0,0 +1,5 @@ ++void bar (struct S *); ++void foo (void *x) ++{ ++ bar ((struct S *) x); ++} +Index: gcc/testsuite/gcc.c-torture/compile/20050113-1.c +=================================================================== +RCS file: gcc/testsuite/gcc.c-torture/compile/20050113-1.c +diff -N gcc/testsuite/gcc.c-torture/compile/20050113-1.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.c-torture/compile/20050113-1.c 24 Jan 2005 12:18:09 -0000 1.1.2.2 +@@ -0,0 +1,17 @@ ++/* PR c/17297 */ ++/* { dg-xfail-if "PR target/12916" { "sparc*-*-*" } { "*" } { "" } } */ ++ ++typedef float V2SF __attribute__ ((vector_size (8))); ++ ++int test0 (V2SF, V2SF); ++ ++int ++main (void) ++{ ++ V2SF a = (V2SF) {1.0f/0.0f - 1.0f/0.0f, 1.0f/0.0f - 1.0f/0.0f}; ++ V2SF b = (V2SF) {567.345, 1984.0}; ++ int i; ++ ++ i = test0 (a, b); ++ return i; ++} +Index: gcc/testsuite/gcc.c-torture/execute/20030916-1.c +=================================================================== +RCS file: gcc/testsuite/gcc.c-torture/execute/20030916-1.c +diff -N gcc/testsuite/gcc.c-torture/execute/20030916-1.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.c-torture/execute/20030916-1.c 6 Jan 2005 19:12:04 -0000 1.1.2.1 +@@ -0,0 +1,35 @@ ++/* "i" overflows in f(). Check that x[i] is not treated as a giv. */ ++#include ++ ++#if CHAR_BIT == 8 ++ ++void f (unsigned int *x) ++{ ++ unsigned char i; ++ int j; ++ ++ i = 0x10; ++ for (j = 0; j < 0x10; j++) ++ { ++ i += 0xe8; ++ x[i] = 0; ++ i -= 0xe7; ++ } ++} ++ ++int main () ++{ ++ unsigned int x[256]; ++ int i; ++ ++ for (i = 0; i < 256; i++) ++ x[i] = 1; ++ f (x); ++ for (i = 0; i < 256; i++) ++ if (x[i] != (i >= 0x08 && i < 0xf8)) ++ abort (); ++ exit (0); ++} ++#else ++int main () { exit (0); } ++#endif +Index: gcc/testsuite/gcc.c-torture/execute/20030916-1.x +=================================================================== +RCS file: gcc/testsuite/gcc.c-torture/execute/20030916-1.x +diff -N gcc/testsuite/gcc.c-torture/execute/20030916-1.x +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.c-torture/execute/20030916-1.x 6 Jan 2005 19:12:04 -0000 1.1.2.1 +@@ -0,0 +1,2 @@ ++set additional_flags "-freduce-all-givs" ++return 0 +Index: gcc/testsuite/gcc.c-torture/execute/20041112-1.c +=================================================================== +RCS file: gcc/testsuite/gcc.c-torture/execute/20041112-1.c +diff -N gcc/testsuite/gcc.c-torture/execute/20041112-1.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.c-torture/execute/20041112-1.c 12 Nov 2004 09:11:38 -0000 1.1.2.1 +@@ -0,0 +1,40 @@ ++/* This was failing on Alpha because the comparison (p != -1) was rewritten ++ as (p+1 != 0) and p+1 isn't allowed to wrap for pointers. */ ++ ++extern void abort(void); ++ ++typedef __SIZE_TYPE__ size_t; ++ ++int global; ++ ++static void *foo(int p) ++{ ++ if (p == 0) ++ { ++ global++; ++ return &global; ++ } ++ ++ return (void *)(size_t)-1; ++} ++ ++int bar(void) ++{ ++ void *p; ++ ++ p = foo(global); ++ if (p != (void *)(size_t)-1) ++ return 1; ++ ++ global++; ++ return 0; ++} ++ ++int main(void) ++{ ++ global = 1; ++ if (bar () != 0) ++ abort(); ++ ++ return 0; ++} +Index: gcc/testsuite/gcc.c-torture/execute/20041126-1.c +=================================================================== +RCS file: gcc/testsuite/gcc.c-torture/execute/20041126-1.c +diff -N gcc/testsuite/gcc.c-torture/execute/20041126-1.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.c-torture/execute/20041126-1.c 30 Nov 2004 15:07:47 -0000 1.1.4.1 +@@ -0,0 +1,26 @@ ++extern int abs (int); ++extern void abort (void); ++ ++void ++check (int *p) ++{ ++ int i; ++ for (i = 0; i < 5; ++i) ++ if (p[i]) ++ abort (); ++ for (; i < 10; ++i) ++ if (p[i] != i + 1) ++ abort (); ++} ++ ++int ++main (void) ++{ ++ int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; ++ int i; ++ ++ for (i = -5; i < 0; i++) ++ a[abs (i - 10) - 11] = 0; ++ check (a); ++ return 0; ++} +Index: gcc/testsuite/gcc.c-torture/execute/20041218-1.c +=================================================================== +RCS file: gcc/testsuite/gcc.c-torture/execute/20041218-1.c +diff -N gcc/testsuite/gcc.c-torture/execute/20041218-1.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.c-torture/execute/20041218-1.c 18 Dec 2004 07:58:12 -0000 1.1.2.1 +@@ -0,0 +1,117 @@ ++/* PR rtl-optimization/16968 */ ++/* Testcase by Jakub Jelinek */ ++ ++struct T ++{ ++ unsigned int b, c, *d; ++ unsigned char e; ++}; ++struct S ++{ ++ unsigned int a; ++ struct T f; ++}; ++struct U ++{ ++ struct S g, h; ++}; ++struct V ++{ ++ unsigned int i; ++ struct U j; ++}; ++ ++extern void exit (int); ++extern void abort (void); ++ ++void * ++dummy1 (void *x) ++{ ++ return ""; ++} ++ ++void * ++dummy2 (void *x, void *y) ++{ ++ exit (0); ++} ++ ++struct V * ++baz (unsigned int x) ++{ ++ static struct V v; ++ __builtin_memset (&v, 0x55, sizeof (v)); ++ return &v; ++} ++ ++int ++check (void *x, struct S *y) ++{ ++ if (y->a || y->f.b || y->f.c || y->f.d || y->f.e) ++ abort (); ++ return 1; ++} ++ ++static struct V * ++bar (unsigned int x, void *y) ++{ ++ const struct T t = { 0, 0, (void *) 0, 0 }; ++ struct V *u; ++ void *v; ++ v = dummy1 (y); ++ if (!v) ++ return (void *) 0; ++ ++ u = baz (sizeof (struct V)); ++ u->i = x; ++ u->j.g.a = 0; ++ u->j.g.f = t; ++ u->j.h.a = 0; ++ u->j.h.f = t; ++ ++ if (!check (v, &u->j.g) || !check (v, &u->j.h)) ++ return (void *) 0; ++ return u; ++} ++ ++int ++foo (unsigned int *x, unsigned int y, void **z) ++{ ++ void *v; ++ unsigned int i, j; ++ ++ *z = v = (void *) 0; ++ ++ for (i = 0; i < y; i++) ++ { ++ struct V *c; ++ ++ j = *x; ++ ++ switch (j) ++ { ++ case 1: ++ c = bar (j, x); ++ break; ++ default: ++ c = 0; ++ break; ++ } ++ if (c) ++ v = dummy2 (v, c); ++ else ++ return 1; ++ } ++ ++ *z = v; ++ return 0; ++} ++ ++int ++main (void) ++{ ++ unsigned int one = 1; ++ void *p; ++ foo (&one, 1, &p); ++ abort (); ++} +Index: gcc/testsuite/gcc.c-torture/execute/20050107-1.c +=================================================================== +RCS file: gcc/testsuite/gcc.c-torture/execute/20050107-1.c +diff -N gcc/testsuite/gcc.c-torture/execute/20050107-1.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.c-torture/execute/20050107-1.c 7 Jan 2005 19:59:05 -0000 1.1.2.1 +@@ -0,0 +1,25 @@ ++typedef enum { C = 1, D = 2 } B; ++extern void abort (void); ++ ++struct S ++{ ++ B __attribute__ ((mode (byte))) a; ++ B __attribute__ ((mode (byte))) b; ++}; ++ ++void ++foo (struct S *x) ++{ ++ if (x->a != C || x->b != D) ++ abort (); ++} ++ ++int ++main (void) ++{ ++ struct S s; ++ s.a = C; ++ s.b = D; ++ foo (&s); ++ return 0; ++} +Index: gcc/testsuite/gcc.c-torture/execute/20050121-1.c +=================================================================== +RCS file: gcc/testsuite/gcc.c-torture/execute/20050121-1.c +diff -N gcc/testsuite/gcc.c-torture/execute/20050121-1.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.c-torture/execute/20050121-1.c 24 Jan 2005 09:10:53 -0000 1.1.2.1 +@@ -0,0 +1,63 @@ ++/* PR middle-end/19551 */ ++ ++extern void abort (); ++ ++#define T(type, name) \ ++__attribute__((pure)) _Complex type \ ++foo_##name (int x) \ ++{ \ ++ _Complex type r; \ ++ __real r = x + 1; \ ++ __imag r = x - 1; \ ++ return r; \ ++} \ ++ \ ++void \ ++bar_##name (type *x) \ ++{ \ ++ *x = __real foo_##name (5); \ ++} \ ++ \ ++void \ ++baz_##name (type *x) \ ++{ \ ++ *x = __imag foo_##name (5); \ ++} ++ ++typedef long double ldouble_t; ++typedef long long llong; ++ ++T (float, float) ++T (double, double) ++T (long double, ldouble_t) ++T (char, char) ++T (short, short) ++T (int, int) ++T (long, long) ++T (long long, llong) ++#undef T ++ ++int ++main (void) ++{ ++#define T(type, name) \ ++ { \ ++ type var = 0; \ ++ bar_##name (&var); \ ++ if (var != 6) \ ++ abort (); \ ++ var = 0; \ ++ baz_##name (&var); \ ++ if (var != 4) \ ++ abort (); \ ++ } ++ T (float, float) ++ T (double, double) ++ T (long double, ldouble_t) ++ T (char, char) ++ T (short, short) ++ T (int, int) ++ T (long, long) ++ T (long long, llong) ++ return 0; ++} +Index: gcc/testsuite/gcc.c-torture/execute/ieee/20041213-1.c +=================================================================== +RCS file: gcc/testsuite/gcc.c-torture/execute/ieee/20041213-1.c +diff -N gcc/testsuite/gcc.c-torture/execute/ieee/20041213-1.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.c-torture/execute/ieee/20041213-1.c 17 Dec 2004 16:11:09 -0000 1.1.2.1 +@@ -0,0 +1,17 @@ ++extern double sqrt (double); ++extern void abort (void); ++int once; ++ ++double foo (void) ++{ ++ if (once++) ++ abort (); ++ return 0.0 / 0.0; ++} ++ ++double x; ++int main (void) ++{ ++ x = sqrt (foo ()); ++ return 0; ++} +Index: gcc/testsuite/gcc.dg/20041216-1.c +=================================================================== +RCS file: gcc/testsuite/gcc.dg/20041216-1.c +diff -N gcc/testsuite/gcc.dg/20041216-1.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.dg/20041216-1.c 27 Jan 2005 02:02:06 -0000 1.1.2.1 +@@ -0,0 +1,23 @@ ++/* This test case would get an unresolved symbol during link ++ because stabs referred to an optimized-away literal pool ++ entry. */ ++ ++/* { dg-do run { target s390*-*-* } } */ ++/* { dg-options "-O2 -fno-omit-frame-pointer -gstabs" } */ ++ ++int main (void) ++{ ++ static char buf[4096]; ++ char *p; ++ ++ do ++ { ++ p = buf; ++ asm volatile ("" : : : "memory", "0", "1", "2", "3", "4", "5", "6", ++ "7", "8", "9", "10", "12"); ++ } ++ while (*p); ++ ++ return 0; ++} ++ +Index: gcc/testsuite/gcc.dg/20050111-2.c +=================================================================== +RCS file: gcc/testsuite/gcc.dg/20050111-2.c +diff -N gcc/testsuite/gcc.dg/20050111-2.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.dg/20050111-2.c 19 Jan 2005 11:18:18 -0000 1.1.2.1 +@@ -0,0 +1,21 @@ ++/* PR rtl-optimization/15139 */ ++/* { dg-do compile } */ ++/* { dg-options "-O2 -funroll-loops" } */ ++ ++void ++foo (double **a, double **z) ++{ ++ long int i, j; ++ double d = -1.0; ++ ++ for (i = 0; i < 6; i++) ++ for (j = 0; j < 5; j++) ++ d = z[i][j] > d ? z[i][j] : d; ++ ++ for (i = 0; i < 6; i++) ++ for (j = 0; j < 5; j++) ++ z[i][j] /= d; ++ ++ for (i = 0; i < 5; i++) ++ a[i][j] = z[i][j]; ++} +Index: gcc/testsuite/gcc.dg/20050113-1.c +=================================================================== +RCS file: gcc/testsuite/gcc.dg/20050113-1.c +diff -N gcc/testsuite/gcc.dg/20050113-1.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.dg/20050113-1.c 19 Jan 2005 09:44:48 -0000 1.1.2.1 +@@ -0,0 +1,6 @@ ++/* PR middle-end/19164 */ ++/* { dg-do compile { target i?86-*-* x86_64-*-* } } */ ++/* { dg-options "-mmmx" } */ ++ ++typedef short int V __attribute__ ((vector_size (8))); ++static V v = (V) 0x00FF00FF00FF00FFLL; /* { dg-error "is not constant" } */ +Index: gcc/testsuite/gcc.dg/attr-mode-2.c +=================================================================== +RCS file: gcc/testsuite/gcc.dg/attr-mode-2.c +diff -N gcc/testsuite/gcc.dg/attr-mode-2.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.dg/attr-mode-2.c 10 Dec 2004 19:23:25 -0000 1.1.2.1 +@@ -0,0 +1,22 @@ ++/* PR c/18282 */ ++/* { dg-do compile } */ ++/* { dg-options "" } */ ++ ++typedef int tword __attribute__((mode(word))); ++ ++typedef enum { B1 = 1 } B; ++typedef enum { C1 = 1 } C __attribute__ ((mode(QI))); ++typedef enum { D1 = 1 } __attribute__ ((mode(word))) D; ++ ++B __attribute__ ((mode (QI))) bqi; ++B __attribute__ ((mode (word))) bword; ++ ++int sqi[sizeof (bqi) == 1 ? 1 : -1]; ++int sword[sizeof (bword) == sizeof(tword) ? 1 : -1]; ++int sc[sizeof (C) == 1 ? 1 : -1]; ++int sd[sizeof (D) == sizeof(tword) ? 1 : -1]; ++ ++int aqi[__alignof (bqi) == 1 ? 1 : -1]; ++int aword[__alignof (bword) == __alignof(tword) ? 1 : -1]; ++int ac[__alignof (C) == 1 ? 1 : -1]; ++int ad[__alignof (D) == __alignof(tword) ? 1 : -1]; +Index: gcc/testsuite/gcc.dg/bitfld-13.c +=================================================================== +RCS file: gcc/testsuite/gcc.dg/bitfld-13.c +diff -N gcc/testsuite/gcc.dg/bitfld-13.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.dg/bitfld-13.c 16 Nov 2004 19:55:47 -0000 1.1.2.1 +@@ -0,0 +1,14 @@ ++/* Test invalid bit-field types: bug 18498. */ ++/* { dg-do compile } */ ++/* { dg-options "" } */ ++ ++int ++main(void) ++{ ++ struct X { ++ int s[20] : 1; /* { dg-error "error: bit-field `s' has invalid type" } */ ++ int *p : 2; /* { dg-error "error: bit-field `p' has invalid type" } */ ++ int (*f)(float) : 3; /* { dg-error "error: bit-field `f' has invalid type" } */ ++ } x; ++ return 0; ++} +Index: gcc/testsuite/gcc.dg/builtins-10.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/testsuite/gcc.dg/builtins-10.c,v +retrieving revision 1.1 +retrieving revision 1.1.22.1 +diff -u -r1.1 -r1.1.22.1 +--- gcc/testsuite/gcc.dg/builtins-10.c 8 Apr 2003 23:24:38 -0000 1.1 ++++ gcc/testsuite/gcc.dg/builtins-10.c 3 Feb 2005 17:47:33 -0000 1.1.22.1 +@@ -14,11 +14,12 @@ + extern double log(double); + extern double sqrt(double); + extern double pow(double,double); ++extern double fabs(double); + + void test(double x) + { +- if (sqrt(pow(x,4.0)) != x*x) +- link_error (); ++ /*if (sqrt(pow(x,4.0)) != x*x) ++ link_error ();*/ + + if (pow(sqrt(x),4.0) != x*x) + link_error (); +@@ -29,7 +30,7 @@ + + void test2(double x, double y, double z) + { +- if (sqrt(pow(x,y)) != pow(x,y*0.5)) ++ if (sqrt(pow(x,y)) != pow(fabs(x),y*0.5)) + link_error (); + + if (log(pow(x,y)) != y*log(x)) +Index: gcc/testsuite/gcc.dg/builtins-47.c +=================================================================== +RCS file: gcc/testsuite/gcc.dg/builtins-47.c +diff -N gcc/testsuite/gcc.dg/builtins-47.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.dg/builtins-47.c 3 Feb 2005 17:47:33 -0000 1.1.2.1 +@@ -0,0 +1,16 @@ ++/* { dg-do run } */ ++/* { dg-options "-ffast-math" } */ ++ ++extern double sqrt (double); ++extern double pow (double, double); ++extern void abort (void); ++ ++int main () ++{ ++ double x = -1.0; ++ if (sqrt (pow (x, 2)) != 1.0) ++ abort(); ++ if (sqrt (x*x) != 1.0) ++ abort(); ++ return 0; ++} +Index: gcc/testsuite/gcc.dg/empty2.c +=================================================================== +RCS file: gcc/testsuite/gcc.dg/empty2.c +diff -N gcc/testsuite/gcc.dg/empty2.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.dg/empty2.c 23 Dec 2004 21:39:03 -0000 1.2.2.1 +@@ -0,0 +1,15 @@ ++/* { dg-do compile } */ ++ ++double d=0; ++ ++struct A {} a; /* { dg-warning "(has no members)" } */ ++ ++void foo(struct A x) ++{ ++ d=0; ++} ++ ++void bar() ++{ ++ if (d) foo(a); ++} +Index: gcc/testsuite/gcc.dg/ftrapv-2.c +=================================================================== +RCS file: gcc/testsuite/gcc.dg/ftrapv-2.c +diff -N gcc/testsuite/gcc.dg/ftrapv-2.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.dg/ftrapv-2.c 15 Dec 2004 12:34:40 -0000 1.1.2.1 +@@ -0,0 +1,107 @@ ++/* Copyright (C) 2004 Free Software Foundation. ++ ++ PR other/18665 ++ Verify that -ftrapv doesn't produce bogus results ++ on 64-bit platforms. ++ ++ Written by Eric Botcazou */ ++ ++/* { dg-do run } */ ++/* { dg-options "-ftrapv" } */ ++ ++extern void abort(void); ++ ++int __attribute__((noinline)) ++iabsv(int a) ++{ ++ return abs(a); ++} ++ ++int __attribute__((noinline)) ++iaddv(int a, int b) ++{ ++ return a + b; ++} ++ ++int __attribute__((noinline)) ++isubv(int a, int b) ++{ ++ return a - b; ++} ++ ++int __attribute__((noinline)) ++imulv(int a, int b) ++{ ++ return a * b; ++} ++ ++int __attribute__((noinline)) ++inegv(int a) ++{ ++ return -a; ++} ++ ++long __attribute__((noinline)) ++labsv(long a) ++{ ++ return abs(a); ++} ++ ++long __attribute__((noinline)) ++laddv(long a, long b) ++{ ++ return a + b; ++} ++ ++long __attribute__((noinline)) ++lsubv(long a, long b) ++{ ++ return a - b; ++} ++ ++long __attribute__((noinline)) ++lmulv(long a, long b) ++{ ++ return a * b; ++} ++ ++long __attribute__((noinline)) ++lnegv(long a) ++{ ++ return -a; ++} ++ ++int main(void) ++{ ++ if (iabsv (-1) != 1) ++ abort (); ++ ++ if (iaddv (2,-3) != -1) ++ abort (); ++ ++ if (isubv (2,3) != -1) ++ abort (); ++ ++ if (imulv (-2,3) != -6) ++ abort (); ++ ++ if (inegv (-1) != 1) ++ abort (); ++ ++ if (labsv (-1L) != 1L) ++ abort (); ++ ++ if (laddv (2L,-3L) != -1L) ++ abort (); ++ ++ if (lsubv (2L,3L) != -1L) ++ abort (); ++ ++ if (lmulv (-2L,3L) != -6L) ++ abort (); ++ ++ if (lnegv (-1L) != 1L) ++ abort (); ++ ++ return 0; ++} +Index: gcc/testsuite/gcc.dg/func-outside-1.c +=================================================================== +RCS file: gcc/testsuite/gcc.dg/func-outside-1.c +diff -N gcc/testsuite/gcc.dg/func-outside-1.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.dg/func-outside-1.c 10 Nov 2004 19:46:33 -0000 1.2.4.1 +@@ -0,0 +1,9 @@ ++/* Test for rejection of __func__ outside a function (GNU extensions ++ are OK there). Test with no special options. */ ++/* Origin: Joseph Myers */ ++/* { dg-do compile } */ ++/* { dg-options "" } */ ++ ++const char *a = __func__; /* { dg-warning "warning: '__func__' is not defined outside of function scope" "undef" } */ ++const char *b = __FUNCTION__; ++const char *c = __PRETTY_FUNCTION__; +Index: gcc/testsuite/gcc.dg/func-outside-2.c +=================================================================== +RCS file: gcc/testsuite/gcc.dg/func-outside-2.c +diff -N gcc/testsuite/gcc.dg/func-outside-2.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.dg/func-outside-2.c 10 Nov 2004 19:46:33 -0000 1.2.4.1 +@@ -0,0 +1,9 @@ ++/* Test for rejection of __func__ outside a function (GNU extensions ++ are OK there). Test with -pedantic-errors. */ ++/* Origin: Joseph Myers */ ++/* { dg-do compile } */ ++/* { dg-options "-pedantic-errors" } */ ++ ++const char *a = __func__; /* { dg-error "error: '__func__' is not defined outside of function scope" "undef" } */ ++const char *b = __FUNCTION__; ++const char *c = __PRETTY_FUNCTION__; +Index: gcc/testsuite/gcc.dg/i386-sse-10.c +=================================================================== +RCS file: gcc/testsuite/gcc.dg/i386-sse-10.c +diff -N gcc/testsuite/gcc.dg/i386-sse-10.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.dg/i386-sse-10.c 14 Dec 2004 05:33:01 -0000 1.1.2.2 +@@ -0,0 +1,34 @@ ++/* PR 17930 */ ++/* { dg-do run { target i?86-*-* x86_64-*-* } } */ ++/* { dg-options "-O1 -msse2 -mfpmath=sse -mno-accumulate-outgoing-args" } */ ++ ++#include "i386-cpuid.h" ++ ++typedef _Complex double complex_16; ++ ++void NOINLINE ++test (complex_16 a[5][5]) ++{ ++ int i, j, k; ++ complex_16 x; ++ ++ for (j = 0; j < 5; j++) ++ for (i = 0; i < 5; i++) ++ { ++ for (k = 0; k < j - 1; ++k) ++ x = a[k][i] * ~a[k][j]; ++ a[j][i] = x; ++ } ++} ++ ++int main() ++{ ++ static complex_16 work[5][5]; ++ unsigned long cpu_facilities; ++ ++ cpu_facilities = i386_cpuid (); ++ if (cpu_facilities & bit_SSE2) ++ test (work); ++ ++ return 0; ++} +Index: gcc/testsuite/gcc.dg/loop-6.c +=================================================================== +RCS file: gcc/testsuite/gcc.dg/loop-6.c +diff -N gcc/testsuite/gcc.dg/loop-6.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.dg/loop-6.c 27 Nov 2004 16:51:39 -0000 1.1.2.1 +@@ -0,0 +1,25 @@ ++/* PR optimization/18577 */ ++/* Origin: Falk Hueffner */ ++ ++/* { dg-do run } */ ++/* { dg-options "-O2 -funroll-all-loops" } */ ++ ++static float tfcos12[3]; ++__attribute__((noinline)) double f(double x) { return x; } ++int g; ++ ++int main(void) ++{ ++ int i, j; ++ for (i = 0; i < 1; i++) ++ tfcos12[i] = 0.5; ++ ++ for (i = 0; i < 1; i++) ++ { ++ tfcos12[i] = 0.5 * f(i); ++ for (j = 0; j < 12; j++) ++ g++; ++ } ++ ++ return 0; ++} +Index: gcc/testsuite/gcc.dg/ppc-eabi.c +=================================================================== +RCS file: gcc/testsuite/gcc.dg/ppc-eabi.c +diff -N gcc/testsuite/gcc.dg/ppc-eabi.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.dg/ppc-eabi.c 2 Dec 2004 06:34:21 -0000 1.1.2.1 +@@ -0,0 +1,4 @@ ++/* PR target/16952 */ ++/* { dg-do compile { target powerpc*-*-linux* } } */ ++/* { dg-options "-m32 -meabi -mrelocatable" } */ ++char *s = "boo"; +Index: gcc/testsuite/gcc.dg/pr12092-1.c +=================================================================== +RCS file: gcc/testsuite/gcc.dg/pr12092-1.c +diff -N gcc/testsuite/gcc.dg/pr12092-1.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.dg/pr12092-1.c 2 Jan 2005 21:34:06 -0000 1.1.2.2 +@@ -0,0 +1,12 @@ ++/* PR rtl-optimization/12092 */ ++/* Test case reduced by Andrew Pinski */ ++/* { dg-do compile { target i?86-*-* } } */ ++/* { dg-options "-O2 -mtune=i486 -march=pentium4 -fprefetch-loop-arrays" } */ ++ ++void DecodeAC(int index,int *matrix) ++{ ++ int *mptr; ++ ++ for(mptr=matrix+index;mptr */ ++/* { dg-do run { target i?86-*-linux* x86_64-*-linux* } } */ ++/* { dg-options "-O -fomit-frame-pointer -march=i386" { target i?86-*-linux* } } */ ++/* { dg-options "-O -fomit-frame-pointer -m32 -march=i386" { target x86_64-*-linux* } } */ ++ ++#include ++#include ++#include ++ ++static jmp_buf segv_jmpbuf; ++ ++static void segv_handler(int seg) ++{ ++ __builtin_longjmp(segv_jmpbuf, 1); ++} ++ ++static int is_addressable(void *p, size_t size) ++{ ++ volatile char * volatile cp = (volatile char *)p; ++ volatile int ret; ++ struct sigaction sa, origsa; ++ sigset_t mask; ++ ++ sa.sa_handler = segv_handler; ++ sa.sa_flags = 0; ++ sigfillset(&sa.sa_mask); ++ sigaction(SIGSEGV, &sa, &origsa); ++ sigprocmask(SIG_SETMASK, NULL, &mask); ++ ++ if (__builtin_setjmp(segv_jmpbuf) == 0) { ++ while(size--) ++ *cp++; ++ ret = 1; ++ } else ++ ret = 0; ++ ++ sigaction(SIGSEGV, &origsa, NULL); ++ sigprocmask(SIG_SETMASK, &mask, NULL); ++ ++ return ret; ++} ++ ++int main(int argc, char **argv) ++{ ++ is_addressable(0x0, 1); ++ return 0; ++} +Index: gcc/testsuite/gcc.dg/short-compare-1.c +=================================================================== +RCS file: gcc/testsuite/gcc.dg/short-compare-1.c +diff -N gcc/testsuite/gcc.dg/short-compare-1.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.dg/short-compare-1.c 18 Jan 2005 08:33:28 -0000 1.1.2.1 +@@ -0,0 +1,21 @@ ++/* PR rtl-optimization/19296 */ ++/* Origin: Falk Hueffner */ ++ ++/* { dg-do run } */ ++/* { dg-options "-O" } */ ++/* { dg-options "-O -mtune=i686" { target i?86-*-* } } */ ++/* { dg-options "-O -m32 -mtune=i686" { target x86_64-*-* } } */ ++ ++extern void abort(void); ++ ++void f(unsigned short ad) ++{ ++ if (ad >= 0x4000 && ad < 0xc000) ++ abort(); ++} ++ ++int main(void) ++{ ++ f(0xff00); ++ return 0; ++} +Index: gcc/testsuite/gcc.dg/short-compare-2.c +=================================================================== +RCS file: gcc/testsuite/gcc.dg/short-compare-2.c +diff -N gcc/testsuite/gcc.dg/short-compare-2.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.dg/short-compare-2.c 18 Jan 2005 08:33:28 -0000 1.1.2.1 +@@ -0,0 +1,22 @@ ++/* PR rtl-optimization/19296 */ ++/* Origin: Falk Hueffner */ ++/* Testcase by Andrew Pinski */ ++ ++/* { dg-do run } */ ++/* { dg-options "-O" } */ ++/* { dg-options "-O -mtune=i686" { target i?86-*-* } } */ ++/* { dg-options "-O -m32 -mtune=i686" { target x86_64-*-* } } */ ++ ++extern void abort(); ++ ++void f(unsigned short ad) ++{ ++ if ((short) (ad - 0x4000) >= 0) ++ abort(); ++} ++ ++int main(void) ++{ ++ f(0xc000); ++ return 0; ++} +Index: gcc/testsuite/gcc.dg/switch-4.c +=================================================================== +RCS file: gcc/testsuite/gcc.dg/switch-4.c +diff -N gcc/testsuite/gcc.dg/switch-4.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.dg/switch-4.c 16 Dec 2004 14:42:49 -0000 1.1.22.1 +@@ -0,0 +1,10 @@ ++/* PR middle-end/18493 */ ++/* { dg-do link } */ ++ ++int main() { ++goto bug; ++switch(0) { ++bug: return 0; ++} ++} ++ +Index: gcc/testsuite/gcc.dg/union-2.c +=================================================================== +RCS file: gcc/testsuite/gcc.dg/union-2.c +diff -N gcc/testsuite/gcc.dg/union-2.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.dg/union-2.c 10 Nov 2004 17:29:11 -0000 1.1.2.1 +@@ -0,0 +1,28 @@ ++/* This used to segfault on SPARC 64-bit at runtime because ++ the stack pointer was clobbered by the function call. */ ++ ++/* { dg-do run } */ ++ ++#include ++ ++union U ++{ ++ long l1[2]; ++}; ++ ++union U u; ++ ++void foo (int z, ...) ++{ ++ int i; ++ va_list ap; ++ va_start(ap,z); ++ i = va_arg(ap, int); ++ va_end(ap); ++} ++ ++int main(void) ++{ ++ foo (1, 1, 1, 1, 1, u); ++ return 0; ++} +Index: gcc/testsuite/gcc.dg/cpp/empty-include.c +=================================================================== +RCS file: gcc/testsuite/gcc.dg/cpp/empty-include.c +diff -N gcc/testsuite/gcc.dg/cpp/empty-include.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.dg/cpp/empty-include.c 2 Dec 2004 02:32:21 -0000 1.1.4.1 +@@ -0,0 +1,13 @@ ++/* ++ * Copyright 2004 Free Software Foundation, Inc. ++ * Contributed and written by Nathanael Nerode. ++ * ++ * GCC 3.4 would attempt to open stdin as the included file ++ * (PR 17610), causing a sort of hang. ++ * ++ * We should get an error. ++ */ ++ ++/* {dg-do preprocess} */ ++#include "" /* { dg-error "empty" "error on empty filename in include" } */ ++int x; /* Otherwise we have an empty file and get more errors. */ +Index: gcc/testsuite/gcc.dg/cpp/pragma-once-1.c +=================================================================== +RCS file: gcc/testsuite/gcc.dg/cpp/pragma-once-1.c +diff -N gcc/testsuite/gcc.dg/cpp/pragma-once-1.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.dg/cpp/pragma-once-1.c 15 Dec 2004 13:41:27 -0000 1.1.2.1 +@@ -0,0 +1,8 @@ ++/* PR preprocessor/15167 */ ++/* Origin: Roland Meub */ ++ ++/* { dg-do compile } */ ++/* { dg-options "-I." } */ ++ ++#include "inc/pragma-once-1a.h" ++#include "pragma-once-1d.h" +Index: gcc/testsuite/gcc.dg/cpp/pragma-once-1b.h +=================================================================== +RCS file: gcc/testsuite/gcc.dg/cpp/pragma-once-1b.h +diff -N gcc/testsuite/gcc.dg/cpp/pragma-once-1b.h +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.dg/cpp/pragma-once-1b.h 15 Dec 2004 13:41:27 -0000 1.1.2.1 +@@ -0,0 +1,8 @@ ++#ifndef _B_H_ ++#define _B_H_ ++ ++#pragma once ++ ++#include "pragma-once-1c.h" ++ ++#endif +Index: gcc/testsuite/gcc.dg/cpp/pragma-once-1c.h +=================================================================== +RCS file: gcc/testsuite/gcc.dg/cpp/pragma-once-1c.h +diff -N gcc/testsuite/gcc.dg/cpp/pragma-once-1c.h +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.dg/cpp/pragma-once-1c.h 15 Dec 2004 13:41:27 -0000 1.1.2.1 +@@ -0,0 +1,6 @@ ++#ifndef _C_H_ ++#define _C_H_ ++ ++#include "pragma-once-1b.h" ++ ++#endif +Index: gcc/testsuite/gcc.dg/cpp/pragma-once-1d.h +=================================================================== +RCS file: gcc/testsuite/gcc.dg/cpp/pragma-once-1d.h +diff -N gcc/testsuite/gcc.dg/cpp/pragma-once-1d.h +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.dg/cpp/pragma-once-1d.h 15 Dec 2004 13:41:27 -0000 1.1.2.1 +@@ -0,0 +1,6 @@ ++#ifndef _D_H_ ++#define _D_H_ ++ ++#include "pragma-once-1b.h" ++ ++#endif +Index: gcc/testsuite/gcc.dg/cpp/inc/pragma-once-1a.h +=================================================================== +RCS file: gcc/testsuite/gcc.dg/cpp/inc/pragma-once-1a.h +diff -N gcc/testsuite/gcc.dg/cpp/inc/pragma-once-1a.h +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/testsuite/gcc.dg/cpp/inc/pragma-once-1a.h 15 Dec 2004 13:41:28 -0000 1.1.2.1 +@@ -0,0 +1,6 @@ ++#ifndef _A_H_ ++#define _A_H_ ++ ++#include "../pragma-once-1b.h" ++ ++#endif +Index: gcc/testsuite/lib/g++.exp +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/testsuite/lib/g++.exp,v +retrieving revision 1.35.4.1 +retrieving revision 1.35.4.2 +diff -u -r1.35.4.1 -r1.35.4.2 +--- gcc/testsuite/lib/g++.exp 25 Oct 2004 09:22:44 -0000 1.35.4.1 ++++ gcc/testsuite/lib/g++.exp 24 Jan 2005 05:05:04 -0000 1.35.4.2 +@@ -49,7 +49,7 @@ + set tmp [remote_exec host "$compiler -v"] + set status [lindex $tmp 0]; + set output [lindex $tmp 1]; +- regexp "version\[^\n\r\]*" $output version ++ regexp " version \[^\n\r\]*" $output version + if { $status == 0 && [info exists version] } then { + if [is_remote host] { + clone_output "$compiler $version\n" +Index: gcc/testsuite/lib/g77.exp +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/testsuite/lib/Attic/g77.exp,v +retrieving revision 1.17.4.1 +retrieving revision 1.17.4.2 +diff -u -r1.17.4.1 -r1.17.4.2 +--- gcc/testsuite/lib/g77.exp 25 Oct 2004 09:22:44 -0000 1.17.4.1 ++++ gcc/testsuite/lib/g77.exp 24 Jan 2005 05:05:04 -0000 1.17.4.2 +@@ -50,7 +50,7 @@ + set tmp [remote_exec host "$compiler -v"] + set status [lindex $tmp 0]; + set output [lindex $tmp 1]; +- regexp "version\[^\n\r\]*" $output version ++ regexp " version \[^\n\r\]*" $output version + if { $status == 0 && [info exists version] } then { + if [is_remote host] { + clone_output "$compiler $version\n" +Index: gcc/testsuite/lib/objc.exp +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/testsuite/lib/objc.exp,v +retrieving revision 1.20.4.1 +retrieving revision 1.20.4.2 +diff -u -r1.20.4.1 -r1.20.4.2 +--- gcc/testsuite/lib/objc.exp 25 Oct 2004 09:22:44 -0000 1.20.4.1 ++++ gcc/testsuite/lib/objc.exp 24 Jan 2005 05:05:04 -0000 1.20.4.2 +@@ -56,7 +56,7 @@ + set tmp [remote_exec host "$compiler -v"] + set status [lindex $tmp 0]; + set output [lindex $tmp 1]; +- regexp "version\[^\n\r\]*" $output version ++ regexp " version \[^\n\r\]*" $output version + if { $status == 0 && [info exists version] } then { + clone_output "$compiler_name $version\n" + } else { +Index: libf2c/ChangeLog +=================================================================== +RCS file: /cvs/gcc/gcc/libf2c/Attic/ChangeLog,v +retrieving revision 1.202.2.7 +retrieving revision 1.202.2.8 +diff -u -r1.202.2.7 -r1.202.2.8 +--- libf2c/ChangeLog 5 Nov 2004 03:34:29 -0000 1.202.2.7 ++++ libf2c/ChangeLog 5 Jan 2005 06:53:51 -0000 1.202.2.8 +@@ -1,3 +1,8 @@ ++2005-01-05 Eric Botcazou ++ ++ PR libf2c/17636 ++ * libI77/err.c (f__nowwriting): Call fseek if end-of-file. ++ + 2004-11-04 Release Manager + + * GCC 3.4.3 released. +Index: libf2c/libI77/err.c +=================================================================== +RCS file: /cvs/gcc/gcc/libf2c/libI77/Attic/err.c,v +retrieving revision 1.12 +retrieving revision 1.12.54.1 +diff -u -r1.12 -r1.12.54.1 +--- libf2c/libI77/err.c 2 Jun 2002 13:01:11 -0000 1.12 ++++ libf2c/libI77/err.c 5 Jan 2005 06:53:52 -0000 1.12.54.1 +@@ -239,7 +239,13 @@ + extern char *f__w_mode[]; + + if (x->urw & 2) +- goto done; ++ { ++ /* Not required according to C99 7.19.5.3, but ++ this really helps on Solaris. */ ++ if (feof (x->ufd)) ++ FSEEK (x->ufd, 0, SEEK_END); ++ goto done; ++ } + if (!x->ufnm) + goto cantwrite; + ufmt = x->url ? 0 : x->ufmt; +Index: libjava/ChangeLog +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/ChangeLog,v +retrieving revision 1.2562.2.26 +retrieving revision 1.2562.2.28 +diff -u -r1.2562.2.26 -r1.2562.2.28 +--- libjava/ChangeLog 5 Nov 2004 03:34:39 -0000 1.2562.2.26 ++++ libjava/ChangeLog 17 Jan 2005 20:57:03 -0000 1.2562.2.28 +@@ -1,3 +1,21 @@ ++2005-01-17 Andrew Haley ++ ++ * java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): In the case ++ of virtual dispatch, if we have no method index, and no code ++ pointer, look a method up by name. ++ ++2005-01-17 Tom Tromey ++ ++ * testsuite/libjava.jni/iface.c: New file. ++ * testsuite/libjava.jni/iface.out: New file. ++ * testsuite/libjava.jni/iface.java: New file. ++ ++2004-12-06 Tom Tromey ++ ++ For PR java/14853: ++ * testsuite/libjava.compile/PR14853.java: New file. ++ * testsuite/libjava.compile/PR14853.xfail: New file. ++ + 2004-11-04 Release Manager + + * GCC 3.4.3 released. +Index: libjava/java/lang/reflect/natMethod.cc +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/java/lang/reflect/natMethod.cc,v +retrieving revision 1.36.6.1 +retrieving revision 1.36.6.2 +diff -u -r1.36.6.1 -r1.36.6.2 +--- libjava/java/lang/reflect/natMethod.cc 26 Feb 2004 15:21:11 -0000 1.36.6.1 ++++ libjava/java/lang/reflect/natMethod.cc 17 Jan 2005 20:57:04 -0000 1.36.6.2 +@@ -1,6 +1,6 @@ + // natMethod.cc - Native code for Method class. + +-/* Copyright (C) 1998, 1999, 2000, 2001 , 2002, 2003 Free Software Foundation ++/* Copyright (C) 1998, 1999, 2000, 2001 , 2002, 2003, 2005 Free Software Foundation + + This file is part of libgcj. + +@@ -464,7 +464,7 @@ + break; + } + +- void *ncode; ++ void *ncode = meth->ncode; + + // FIXME: If a vtable index is -1 at this point it is invalid, so we + // have to use the ncode. +@@ -473,16 +473,25 @@ + // vtable entries, but _Jv_isVirtualMethod() doesn't know that. We + // could solve this problem by allocating a vtable index for methods + // in final classes. +- if (is_virtual_call +- && ! Modifier::isFinal (meth->accflags) +- && (_Jv_ushort)-1 != meth->index) +- { ++ if (is_virtual_call) ++ { + _Jv_VTable *vtable = *(_Jv_VTable **) obj; +- ncode = vtable->get_method (meth->index); +- } +- else +- { +- ncode = meth->ncode; ++ if ((_Jv_ushort)-1 == meth->index) ++ { ++ if (ncode == NULL) ++ // We have no vtable index, and we have no code pointer. ++ // Look method up by name. ++ ncode = _Jv_LookupInterfaceMethod (vtable->clas, ++ meth->name, ++ meth->signature); ++ } ++ else ++ { ++ // We have an index. If METH is not final, use virtual ++ // dispatch. ++ if (! Modifier::isFinal (meth->accflags)) ++ ncode = vtable->get_method (meth->index); ++ } + } + + try +Index: libjava/testsuite/libjava.compile/PR14853.java +=================================================================== +RCS file: libjava/testsuite/libjava.compile/PR14853.java +diff -N libjava/testsuite/libjava.compile/PR14853.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ libjava/testsuite/libjava.compile/PR14853.java 8 Dec 2004 17:29:02 -0000 1.1.2.1 +@@ -0,0 +1,17 @@ ++class tt ++{ ++ static final tt tt1 = new tt(); ++ tt() ++ { ++ } ++} ++ ++public class PR14853 ++{ ++ public static void main (String[] args) ++ { ++ // This is an invalid assignment. gcj would get confused in ++ // definite assignment when compiling to object code. ++ tt.tt1 = new tt(); ++ } ++} +Index: libjava/testsuite/libjava.compile/PR14853.xfail +=================================================================== +RCS file: libjava/testsuite/libjava.compile/PR14853.xfail +diff -N libjava/testsuite/libjava.compile/PR14853.xfail +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ libjava/testsuite/libjava.compile/PR14853.xfail 8 Dec 2004 17:29:02 -0000 1.1.2.1 +@@ -0,0 +1 @@ ++shouldfail +Index: libjava/testsuite/libjava.jni/iface.c +=================================================================== +RCS file: libjava/testsuite/libjava.jni/iface.c +diff -N libjava/testsuite/libjava.jni/iface.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ libjava/testsuite/libjava.jni/iface.c 17 Jan 2005 20:57:04 -0000 1.1.10.1 +@@ -0,0 +1,40 @@ ++#include ++#include ++#include ++ ++void check (JNIEnv *); ++ ++void check(JNIEnv *env) ++{ ++ if ((*env)->ExceptionCheck(env) != JNI_FALSE) ++ { ++ fprintf(stderr, "UNEXPECTED EXCEPTION\n"); ++ exit(-1); ++ } ++} ++ ++void ++Java_iface_doCalls (JNIEnv *env, jobject self, jobject other) ++{ ++ jclass iface_class, comparable_class; ++ jmethodID iface_meth, comparable_meth; ++ jvalue args[1]; ++ ++ iface_class = (*env)->FindClass(env, "iface"); ++ check (env); ++ comparable_class = (*env)->FindClass (env, "mycomp"); ++ check (env); ++ ++ iface_meth = (*env)->GetMethodID (env, iface_class, "compareTo", ++ "(Ljava/lang/Object;)I"); ++ check (env); ++ comparable_meth = (*env)->GetMethodID (env, comparable_class, "compareTo", ++ "(Ljava/lang/Object;)I"); ++ check (env); ++ ++ args[0].l = other; ++ (*env)->CallObjectMethodA (env, self, iface_meth, args); ++ check (env); ++ (*env)->CallObjectMethodA (env, self, comparable_meth, args); ++ check (env); ++} +Index: libjava/testsuite/libjava.jni/iface.java +=================================================================== +RCS file: libjava/testsuite/libjava.jni/iface.java +diff -N libjava/testsuite/libjava.jni/iface.java +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ libjava/testsuite/libjava.jni/iface.java 17 Jan 2005 20:57:04 -0000 1.1.10.1 +@@ -0,0 +1,27 @@ ++// JNI calls via an interface method were broken in a couple releases. ++ ++interface mycomp ++{ ++ int compareTo(Object x); ++} ++ ++public class iface implements mycomp ++{ ++ static ++ { ++ System.loadLibrary("iface"); ++ } ++ ++ public int compareTo (Object x) ++ { ++ System.out.println ("hi maude"); ++ return 3; ++ } ++ ++ public native void doCalls(Object x); ++ ++ public static void main (String[] args) ++ { ++ new iface().doCalls(args); ++ } ++} +Index: libjava/testsuite/libjava.jni/iface.out +=================================================================== +RCS file: libjava/testsuite/libjava.jni/iface.out +diff -N libjava/testsuite/libjava.jni/iface.out +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ libjava/testsuite/libjava.jni/iface.out 17 Jan 2005 20:57:04 -0000 1.1.10.1 +@@ -0,0 +1,2 @@ ++hi maude ++hi maude +Index: libobjc/ChangeLog +=================================================================== +RCS file: /cvs/gcc/gcc/libobjc/ChangeLog,v +retrieving revision 1.106.2.6 +retrieving revision 1.106.2.7 +diff -u -r1.106.2.6 -r1.106.2.7 +--- libobjc/ChangeLog 5 Nov 2004 03:34:48 -0000 1.106.2.6 ++++ libobjc/ChangeLog 20 Dec 2004 22:34:18 -0000 1.106.2.7 +@@ -1,3 +1,11 @@ ++2004-12-20 Andrew Pinski ++ ++ PR libobjc/12035 ++ * gc.c: Remove definition of LOGWL, modWORDSZ, and divWORDSZ since ++ they are not used. ++ Include limits.h and stdlib.h. ++ Define BITS_PER_WORD. ++ + 2004-11-04 Release Manager + + * GCC 3.4.3 released. +Index: libobjc/gc.c +=================================================================== +RCS file: /cvs/gcc/gcc/libobjc/gc.c,v +retrieving revision 1.6 +retrieving revision 1.6.16.1 +diff -u -r1.6 -r1.6.16.1 +--- libobjc/gc.c 23 May 2003 20:04:58 -0000 1.6 ++++ libobjc/gc.c 20 Dec 2004 22:34:18 -0000 1.6.16.1 +@@ -31,26 +31,17 @@ + + #include + #include ++#include + + #if OBJC_WITH_GC + + #include ++#include + + /* gc_typed.h uses the following but doesn't declare them */ + typedef GC_word word; + typedef GC_signed_word signed_word; +- +-#if BITS_PER_WORD == 32 +-# define LOGWL 5 +-# define modWORDSZ(n) ((n) & 0x1f) /* n mod size of word */ +-#endif +- +-#if BITS_PER_WORD == 64 +-# define LOGWL 6 +-# define modWORDSZ(n) ((n) & 0x3f) /* n mod size of word */ +-#endif +- +-#define divWORDSZ(n) ((n) >> LOGWL) /* divide n by size of word */ ++#define BITS_PER_WORD (CHAR_BIT * sizeof (word)) + + #include + +Index: libstdc++-v3/ChangeLog +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/ChangeLog,v +retrieving revision 1.2224.2.194 +retrieving revision 1.2224.2.215 +diff -u -r1.2224.2.194 -r1.2224.2.215 +--- libstdc++-v3/ChangeLog 5 Nov 2004 03:34:51 -0000 1.2224.2.194 ++++ libstdc++-v3/ChangeLog 8 Feb 2005 18:44:30 -0000 1.2224.2.215 +@@ -1,3855 +1,55 @@ +-2004-11-04 Release Manager ++2005-02-08 Mark Mitchell + +- * GCC 3.4.3 released. ++ * config/linker-map.gnu (GLIBCXX_3.4): Add _ZNSdC* and _ZNSdD*. + +-2004-10-29 Chris Jefferson ++2005-02-02 Paolo Carlini + +- * include/bit/stl_algo.h (find_first_of(,,,,pred)): +- Remove invalid EqualOpConcept. +- * testsuite/25_algorithms/find_first_of/concept_check_1.cc: New. ++ PR libstdc++/19642 ++ * config/locale/generic/c_locale.h (__convert_from_v): Switch only ++ LC_NUMERIC, and only when actually != "C". + +-2004-10-28 Paolo Carlini ++2005-01-31 Brad Spencer + +- * include/bits/basic_string.tcc (_M_mutate): Do not reallocate +- unnecessarily when _M_rep() == &_S_empty_rep() and __new_size +- == capacity() (== 0): is ok to just leave everything unchanged. +- +-2004-10-28 Paolo Carlini +- +- PR libstdc++/16612 +- * include/bits/basic_string.h (_M_dispose, _M_refcopy, +- basic_string()): When _GLIBCXX_FULLY_DYNAMIC_STRING is defined, +- don't deal with _S_empty_rep. +- * include/bits/basic_string.tcc (_S_construct, _M_destroy, +- _M_leak_hard, _M_mutate): Likewise. +- * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): New. +- * acconfig.h: Add corresponding undef. +- * configure.ac: Use GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING. +- * docs/html/configopts.html: Document --enable-fully-dynamic-string. +- * aclocal.m4: Regenerate. +- * configure: Likewise. +- * config.h.in: Likewise. +- +-2004-10-28 Paolo Carlini +- +- * README: Remove obsolete entry about include/c_shadow. +- +-2004-10-25 Eric Botcazou +- +- PR other/18138 +- * testsuite/lib/libstdc++.exp: Accept more than one multilib libgcc. +- +-2004-10-14 Paolo Carlini +- +- * include/std/std_memory.h (__get_temporary_buffer): Don't use +- INT_MAX, prefer numeric_limits::max(), ok on 64-bit +- platforms too. +- * testsuite/20_util/auto_ptr/assign_neg.cc: Adjust dg-error +- line numbers. +- +-2004-10-11 Joachim Kuebart +- Paolo Carlini +- +- * src/allocator.cc (__pool_alloc_base::_M_allocate_chunk): +- Deal properly with exceptions thrown by ::operator new(size_t). +- * testsuite/ext/pool_allocator/allocate_chunk.cc: New. +- +- * include/ext/pool_allocator.h: Include . +- +-2004-10-10 Paolo Carlini +- +- * config/locale/gnu/monetary_members.cc (_S_construct_pattern): +- Give __ret a default value, thus avoiding spurious warnings. +- +- * testsuite/performance/27_io/filebuf_sgetn_unbuf.cc: Open either +- words or linux.words, otherwise exit. +- * testsuite/performance/27_io/ifstream_getline.cc: Slighlty tweak. +- +-2004-10-10 Paolo Carlini +- +- * include/bits/sstream.tcc (seekpos): In case of success, just +- return __sp. +- +-2004-10-07 Roger Sayle +- +- PR libstdc++/17850 +- * configure.ac: Newlib does not provide strtold. +- * configure: Regenerate. +- +-2004-10-05 Paolo Carlini +- +- PR libstdc++/10975 (DR 453) +- * include/bits/sstream.tcc (seekoff): Don't fail if __beg == 0 +- and __off == 0. +- * docs/html/ext/howto.html: Add an entry for DR 453. +- * testsuite/27_io/basic_stringbuf/seekoff/char/10975.cc: New. +- * testsuite/27_io/basic_istream/tellg/char/1.cc: Tweak consistently. +- * testsuite/27_io/basic_ostream/tellp/char/1.cc: Likewise. +- * testsuite/27_io/basic_ostream/tellp/char/2.cc: Likewise. +- * testsuite/27_io/basic_istream/seekg/char/2346-fstream.cc: Fix and +- move to... +- * testsuite/27_io/basic_istream/seekp/char/2346-fstream.cc: ... here. +- * testsuite/27_io/basic_istream/seekg/char/2346-sstream.cc: Fix and +- move to... +- * testsuite/27_io/basic_istream/seekp/char/2346-sstream.cc: ... here. +- +-2004-10-05 Ulrich Weigand +- +- * configure.host (abi_baseline_pair): Define for s390-*-linux* and +- s390x-*-linux*. +- * config/abi/s390-linux-gnu/baseline_symbols.txt: Add missing symbols. +- * config/abi/s390x-linux-gnu/baseline_symbols.txt: New file. +- +-2004-10-04 Roger Sayle +- Eric Botcazou +- +- PR libstdc++/17505 +- * config/linker-map.gnu: Synchronize the current list of stub +- functions from libmath. +- +-2004-10-04 Benjamin Kosnik +- +- * configure.ac (libtool_VERSION): To 6:3:0. +- * configure: Regnerate. +- * testsuite/testsuite_abi.cc (check_version): Add 3.4.3. +- +-2004-10-03 Roger Sayle +- +- * config/locale/generic/c_locale.cc (__convert_to_v): Use +- _GLIBCXX_HAVE_STRTOF instead _GLIBCXX_USE_C99 to check for strtof. +- Likewise, use _GLIBCXX_HAVE_STRTOLD instead of _GLIBCXX_USE_C99 +- to check for presence of strtold. +- +-2004-10-02 Paolo Carlini +- +- * include/std/std_sstream.h (basic_stringbuf(ios_base::openmode)): +- Don't use _M_stringbuf_init, keep the pointers null, per 27.7.1.1. +- (str()): Slightly tweak, protect from pptr() == 0. +- (_M_update_egptr()): Likewise. +- * include/bits/sstream.tcc (ssekoff, seekpos): In order to check +- for an empty buffer use __beg instead of _M_string.capacity(). +- * testsuite/27_io/basic_stringbuf/cons/char/1.cc: New. +- +- * testsuite/27_io/basic_filebuf/cons/char/1.cc: New. +- * testsuite/27_io/basic_streambuf/cons/char/1.cc: Update. +- +-2004-10-02 Paolo Carlini +- Benjamin Kosnik +- +- * testsuite/testsuite_io.h (class constraint_buf): New, extended +- and templatized version of constraint_filebuf; add typedefs for +- streambuf/stringbuf/filebuf and wchar_t counterparts. +- +-2004-09-27 Benjamin Kosnik +- +- PR libstdc++/16848 +- * include/Makefile.am (ext_headers): Remove demangle.h. +- * include/Makefile.in: Regenerate. +- * include/ext/demangle.h: Remove. +- +-2004-09-24 H.J. Lu +- +- PR libstdc++/17469 +- * testsuite/lib/libstdc++.exp: Don't use global ld_library_path. +- +-2004-09-24 Paolo Carlini +- Magnus Fromreide +- +- * include/bits/boost_concept_check.h (struct _SequenceConcept): +- Remove wrong requirement, i.e., not present in Table 67. +- +-2004-09-20 Jonathan Wakely +- +- * testsuite/23_containers/{set,multiset}/14340.cc: Fix typos in +- instantiation of set and multiset (functor param given as int). +- +-2004-09-20 Jonathan Wakely +- +- * include/bits/stl_algo.h (remove): Remove too restrictive +- concept-check. +- +-2004-09-19 Paolo Carlini +- +- * include/bits/fstream.tcc (xsgetn): Slightly tweak conditional, +- as per Nathan's original suggestion. +- +-2004-09-19 Nathan Myers +- +- * include/bits/fstream.tcc (xsgetn): Slightly tweak the recent fix +- for 11722: copy can replace move; the common case is __avail == 0. +- +-2004-09-19 Paolo Carlini +- +- PR libstdc++/11722 +- * include/std/std_fstream.h (xsgetn): Declare only. +- * include/bits/fstream.tcc (xsgetn): Define, optimize for the +- always_noconv() case: when __n > __buflen, copy the available +- buffer and issue a direct read. +- * testsuite/performance/27_io/filebuf_sgetn_unbuf.cc: New. +- +- * include/bits/fstream.tcc (xsputn): Minor tweak, reorder a +- conditional. +- +-2004-09-17 Paolo Carlini +- +- * src/localename.cc (locale::_Impl::_Impl): Slightly improve +- the algorithm used to name the categories. +- +-2004-09-13 Paolo Carlini +- +- * include/bits/locale_facets.tcc (time_get<>::_M_extract_via_format, +- case 'S'): Allow for at least one leap-second (as per C99, 7.23.1 +- and 7.23.3.5), two if !_GLIBCXX_USE_C99. +- * testsuite/22_locale/time_get/get_time/char/4.cc: New. +- * testsuite/22_locale/time_get/get_time/wchar_t/4.cc: Likewise. +- +-2004-09-08 Benjamin Kosnik +- Simon Richter +- +- PR libstdc++/16715 +- * include/bits/istream.tcc: Add extern template for iostream +- char and wchar_t instantiations. +- +-2004-09-08 Benjamin Kosnik +- Leland Wang +- +- PR libstdc++/17259 +- * include/ext/ropeimpl.h (rope::_S_compare): Use +- _Rope_constants::_S_leaf. +- +-2004-09-06 Release Manager +- +- * GCC 3.4.2 released. +- +-2004-08-30 Benjamin Kosnik +- +- * include/ext/pool_allocator.h: Rename __pool_base to +- __pool_alloc_base. +- * src/allocator.cc: Same. +- * config/linker-map.gnu: Same. +- +-2004-08-28 Paolo Carlini +- +- PR libstdc++/17038 (partial) +- * include/bits/locale_facets.tcc (time_put<>::do_put): Increase +- __maxlen to 128. +- * config/locale/generic/time_members.cc (_M_put): Always null +- terminate __s. +- * config/locale/gnu/time_members.cc (_M_put): Likewise. +- * testsuite/22_locale/time_put/put/char/17038.cc: New. +- * testsuite/22_locale/time_put/put/wchar_t/17038.cc: New. +- +-2004-08-27 Matthias Klose +- +- * configure.host: For mips*-*-linux* update cpu_include_dir +- after atomicity_dir is set. +- +-2004-08-27 Matthias Klose +- +- * config/abi/arm-linux-gnu/baseline_symbols.txt: New. +- * config/abi/mips-linux-gnu/baseline_symbols.txt: Update to 3.4.0. +- * configure.host: Set abi_baseline_pair for arm*-*-linux* and +- mips*-*-linux*. +- +-2004-08-22 Matthias Klose +- +- * config/abi/m68k-linux-gnu/baseline_symbols.txt: New. +- * config/abi/sparc-linux-gnu/baseline_symbols.txt: Update to 3.4.0. +- +-2004-08-22 Paolo Carlini +- +- * include/bits/locale_facets.tcc (num_put<>::do_put(bool)): Cast +- to a signed type, long according to the resolution of DR 359. +- * testsuite/22_locale/num_put/put/char/9.cc: New. +- * testsuite/22_locale/num_put/put/wchar_t/9.cc: New. +- +- * include/bits/locale_facets.tcc (num_put<>::do_put(const void*)): +- Simplify a bit: no need to clear showpos. +- +-2004-08-20 Matthias Klose +- +- * config/abi/s390-linux-gnu/baseline_symbols.txt: New. +- +-2004-08-20 Paolo Carlini +- +- * config/abi/x86_64-linux-gnu/32/baseline_symbols.txt: Add 32 bit +- baseline. +- +-2004-08-20 Paolo Carlini +- +- * config/abi/x86_64-linux-gnu/baseline_symbols.txt: Fix it. +- +-2004-08-19 Paolo Carlini +- +- * testsuite/performance/20_util/allocator/insert.cc: For std::map +- instantiate the allocator for a correct pair type. +- * testsuite/performance/20_util/allocator/insert_insert.cc: Likewise. +- * testsuite/performance/20_util/allocator/map_mt_find.cc: Likewise. +- * testsuite/performance/20_util/allocator/map_thread.cc: Likewise. +- * testsuite/performance/20_util/allocator/producer_consumer.cc: +- Likewise. +- +- * testsuite/performance/20_util/allocator/list_sort_search.cc: Very +- minor formatting fixes. +- +-2004-08-19 Paolo Carlini +- +- * config/abi/x86_64-linux-gnu/baseline_symbols.txt: Update to 3.4.0. +- +-2004-08-18 Matthias Klose +- +- * config/abi/hppa-linux-gnu/baseline_symbols.txt: Update to 3.4.0. +- * config/abi/i386-linux-gnu/baseline_symbols.txt: New. +- * config/abi/powerpc-linux-gnu/baseline_symbols.txt: New. +- +-2004-08-17 Paolo Carlini +- +- * config/abi/alpha-linux-gnu/baseline_symbols.txt: Update to 3.4.0. +- +-2004-08-17 Paolo Carlini +- +- * config/abi/ia64-linux-gnu/baseline_symbols.txt: Update to 3.4.0. +- +-2004-08-17 Benjamin Kosnik +- +- * config/abi/i486-linux-gnu/baseline_symbols.txt: Update to 3.4.0. +- +-2004-08-16 Paolo Carlini +- +- * config/locale/generic/c_locale.h (__convert_from_v): Don't +- use a default for __prec, assume __prec >= 0 and simplify. +- * config/locale/gnu/c_locale.h (__convert_from_v): Likewise. +- * include/bits/locale_facets.tcc (money_put<>::do_put(long double)): +- Pass format "%.*Lf" + precision == 0, equivalent to "%.0Lf". +- +-2004-08-13 Paolo Carlini +- +- * src/debug.cc (_Error_formatter::_M_print_string): Fix thinko, +- memmove is not needed, memcpy suffices. +- +-2004-08-12 Paolo Carlini +- Petur Runolfsson +- +- PR libstdc++/16959 +- * src/ios_init.cc (ios_base::sync_with_stdio): Make sure the +- standard streams are constructed. +- * testsuite/27_io/ios_base/sync_with_stdio/16959.cc: New. +- +-2004-08-08 Jonathan Wakely +- Paolo Carlini +- +- * src/debug.cc (_Error_formatter::_M_print_string): In order +- to print individual words from __string, _M_format_word can't +- be called since may be just sprintf, thus ignoring completely +- __n: instead, use memmove and append '\0' by hand. +- +-2004-07-30 Paolo Carlini +- Petur Runolfsson +- +- PR libstdc++/12658 (continued) +- * src/locale_init.cc (locale::locale, locale::global): Use +- a single locale_mutex instead of two separate mutexes. +- +-2004-07-30 Paolo Carlini +- +- * testsuite/22_locale/locale/cons/12658_thread.cc: Xfail: due to +- a bug in glibcs older than 2004-07-16, it can unpredictably fail +- irrespective of the correctness of libstdc++. +- +-2004-07-30 Benjamin Kosnik +- +- * src/locale_init.cc: Use __gnu_cxx::lock. +- +-2004-07-30 Paolo Carlini +- +- * testsuite/22_locale/num_put/put/char/14220.cc: Increase the value +- of precision: 10 is too small to actually trigger the bug. +- * testsuite/22_locale/num_put/put/wchar_t/14220.c: Likewise. +- +-2004-07-30 Paolo Carlini +- +- * docs/html/ext/lwg-active.html, lwg-defects.html: Import Revision 31. +- +-2004-07-29 Paolo Carlini +- +- PR libstdc++/16813 +- * include/debug/map.h (insert(_InputIterator, _InputIterator)): +- Fix typo. +- * testsuite/23_containers/map/insert/16813.cc: New. +- +-2004-07-20 Danny Smith +- +- * include/c_std/std_cwchar.h (wcsstr): Correct signature. +- +-2004-07-19 Benjamin Kosnik +- +- PR libstdc++/15488 +- * testsuite/lib/libstdc++.exp (v3-copy-files): Revert. +- +-2004-07-17 Richard Sandiford +- +- PR bootstrap/16469 +- * scripts/create_testsuite_files: Pass -print to find. +- +-2004-07-15 Paolo Carlini +- +- * docs/html/ext/lwg-active.html, lwg-defects.html: Import Revision 30. +- * docs/html/ext/howto.html: Tweak entries for DRs 167/253/389/402. +- +-2004-07-15 Jakub Jelinek +- +- PR libstdc++/14697 +- * acinclude.m4 (glibcxx_shared_libgcc): Correct +- glibcxx_shared_libgcc test for multilibs. +- * configure: Rebuilt. +- +-2004-07-14 Paolo Carlini +- +- * include/bits/locale_facets.tcc (time_get<>::do_get_time, +- time_get<>::do_get_date): Use only once _M_extract_via_format, +- instead of going through "%X"/"%x" and calling it two times +- (+ using widen). +- +-2004-07-14 Paolo Carlini +- +- PR libstdc++/16401 +- * include/bits/sstream.tcc (overflow): When reallocating _M_string +- use an exponential grow policy. +- * testsuite/27_io/basic_stringbuf/overflow/char/1.cc: New. +- * testsuite/performance/27_io/stringbuf_overflow.cc: New. +- +-2004-07-12 Benjamin Kosnik +- +- * include/bits/concurrence.h: Tweak comments. +- +-2004-07-12 Benjamin Kosnik +- Per Bothner +- Mohan Embar +- +- PR libstdc++/16248 +- * include/bits/concurrence.h (__glibcxx_mutex_type): New. +- (__glibcxx_mutex): Encapsulate mutex init function into type for +- threaded configurations without __GTHREAD_MUTEX_INIT. +- (lock::lock): Make device member a reference. +- (lock::~lock): Same. +- * include/ext/pool_allocator.h (__pool_base::_M_get_mutex): Change +- to mutex_type. +- * src/allocator.cc: Same. +- +-2004-07-12 Brad Spencer +- +- * include/ext/mt_allocator.h: Handle allocations at static +- initialization that happen before _S_options is (automatically) +- constructed; set _S_init even if _M_force_new is true. +- +-2004-07-12 Paul Brook +- +- * include/bits/concurrence.h: Still create mutex object when +- single-threaded. +- +-2004-07-12 Benjamin Kosnik +- +- * include/bits/concurrence.h (__gnu_cxx::lock): New. +- * include/ext/pool_allocator.h (__pool_base::_Lock::_S_lock): Remove. +- (__pool_base::_M_get_mutex): New. +- * include/bits/allocator.h: Tweak. +- * src/allocator.cc (__pool_base::_M_get_free_list): Correct offset. +- +- * src/allocator.cc: Move all instantiations... +- * src/allocator-inst.cc: ...here. +- +-2004-07-12 Benjamin Kosnik +- +- * include/ext/pool_allocator.h: Qualify __throw_bad_alloc. +- (__pool_base): Remove unused template parameter. Add +- protected. Move lock data into __pool_base::_Lock. Remove static +- on member functions. +- (__pool_base::_M_get_free_list): New. +- (__pool_alloc): Move _S_force new here. +- * src/allocator.cc: Move out of line __pool_base definitions here. +- * config/linker-map.gnu: Export bits from __pool_base. +- +-2004-07-07 Benjamin Kosnik +- +- * configure.ac (libtool_VERSION): To 6:2:0. ++ * crossconfig.m4: Repair Solaris cross bits for strtold and strtof. + * configure: Regenerated. + +- * testsuite/testsuite_abi.cc (check_version): Add 3.4.2. +- +-2004-07-07 Aaron W. LaFramboise +- +- PR libstdc++/16411 +- * config/linker-map.gnu: Add stdio_sync_filebuf::file exports. +- +-2004-07-06 Anssi Hannula +- +- PR libstdc++/15928 +- * crossconfig.m4: Add in bits for djgpp. +- * configure: Regenerate. +- +-2004-07-06 Paolo Carlini +- +- PR libstdc++/16210 +- * acinclude.m4 (GLIBCXX_ENABLE_LONG_LONG): Do not check for the +- availability of strto(u)ll, not used anymore in the iostreams. +- * aclocal.m4: Regenerate. +- * configure: Regenerate. +- +-2004-07-06 Paolo Carlini +- +- * include/bits/cpp_type_traits.h: Move the additions to +- namespace __gnu_internal outside of namespace std; trivial +- formatting fixes. +- +-2004-07-06 Paolo Carlini +- +- * docs/html/17_intro/contribute.html: Update some links. +- * docs/html/17_intro/porting-howto.html: Likewise. +- * docs/html/17_intro/porting-howto.xml: Likewise. +- * docs/html/18_support/howto.html: Likewise. +- * docs/html/21_strings/howto.html: Likewise. +- * docs/html/27_io/howto.html: Likewise. +- * docs/html/configopts.html: Likewise. +- * docs/html/ext/howto.html: Likewise. +- * docs/html/faq/index.html: Likewise. +- * docs/html/install.html: Don't mention 2.x compilers. +- +-2004-07-01 Release Manager +- +- * GCC 3.4.1 released. +- +-2004-06-28 Benjamin Kosnik +- +- * include/debug/safe_base.h (__gnu_debug::_Safe_sequence_base): +- Revert -Weffc++ changes that defined copy ctory and or assignment +- operator. +- * libsupc++/tinfo.cc (__upcast_result): Same. +- +-2004-06-25 Benjamin Kosnik +- +- PR libstdc++/16182 +- * linkage.m4 (GLIBCXX_CHECK_BUILTIN_MATH_DEC): Revert to +- AC_DEFINE_UNQUOTED. +- * configure: Regenerate. +- +-2004-06-25 Benjamin Kosnik +- +- * include/debug/formatter.h (__gnu_debug::_Error_formatter): +- Remove copy constructor and assignment operator. +- +-2004-06-23 Paolo Carlini +- +- PR libstdc++/16154 +- * include/bits/boost_concept_check.h (struct _TrivialIteratorConcept): +- Don't require the _DefaultConstructibleConcept. +- (struct _ForwardIteratorConcept): Require it here. +- +-2004-06-21 Loren J. Rittle +- +- * config/linker-map.gnu: Use wildcards for +- __basic_file::sys_open(FILE*, _Ios_Openmode). +- +-2004-06-18 Paolo Carlini +- +- * include/ext/mt_allocator (__mt_alloc<>::_Tune): Add _M_align, +- the alignment requested. +- (__mt_alloc<>::_Tune::_Tune): Tweak consistently. +- (__mt_alloc<>::allocate): Use it instead of sizeof(_Block_record). +- (__mt_alloc<>::deallocate): Likewise. +- +-2004-06-18 Paolo Carlini +- +- PR libstdc++/16020 +- * include/debug/safe_base.h +- (_Safe_sequence_base::_Safe_sequence_base(const _Safe_sequence_base&), +- _Safe_sequence_base::operator=): Provide definitions. +- * testsuite/23_containers/bitset/cons/16020.cc: New. +- +-2004-06-18 Paolo Carlini +- +- * include/ext/rope (rope(_CharT, const allocator_type&)): Fix +- to use _Data_allocate. +- * include/ext/ropeimpl.h (rope<>::_S_leaf_concat_char_iter): Likewise. +- (rope<>::_S_substring): Likewise. +- (rope<>::rope(size_t, _CharT, const allocator_type&)): Likewise. +- (rope<>::c_str()): Likewise. +- (rope<>::replace_with_c_str()): Likewise. +- +- * include/ext/ropeimpl.h (_Rope_iterator_base<>::_S_setbuf): +- Correctly qualify _S_leaf, _S_function, etc., with _Rope_constants::, +- not _RopeRep. +- (_Rope_iterator_base<>::_S_setcache): Likewise. +- (_Rope_iterator_base<>::_S_setcache_for_incr): Likewise. +- (rope<>::_S_substring): Likewise. +- (rope<>::_S_dump): Likewise. +- (rope<>::_S_fetch_ptr): Likewise. +- (rope<>::_S_compare): Likewise. +- (rope<>::replace_with_c_str()): Likewise. +- +- * testsuite/ext/rope.cc: Rename to testsuite/ext/rope/1.cc. +- * testsuite/ext/rope/2.cc: New. +- +-2004-06-18 Paolo Carlini +- Matt Austern +- +- * testsuite/ext/rope/3.cc: New. +- +-2004-06-17 Paolo Carlini +- +- * include/bits/locale_facets.tcc (time_get<>::_M_extract_name): +- Don't use the 'magic number' 10 in the computation of __minlen; +- never access __name past __minlen; in the loop over __i3, don't +- decrease __nmatches and increase __i3 at once, only either of +- the two; tidy. +- +-2004-06-17 Paolo Carlini +- +- * include/ext/pool_allocator.h: Convert to a global free-list, +- as per the original SGI/HP design: move the implementation +- details to struct __pool_base, from which __pool_alloc derives. +- * src/allocator.cc: Instantiate __pool_base. +- +-2004-06-11 Paolo Carlini +- +- PR libstdc++/15775 +- * include/bits/stl_deque.h: Consistently with stl_set.h, define +- pointer as allocator's pointer, likewise for reference, +- const_pointer, and const_reference. +- * include/bits/stl_list.h: Likewise. +- * include/bits/stl_map.h: Likewise. +- * include/bits/stl_multimap.h: Likewise. +- * include/bits/stl_vector.h: Likewise. +- +-2004-06-11 Dhruv Matani +- Paolo Carlini +- +- * testsuite/testsuite_performance.h +- (resource_counter::allocated_memory): Make it return the right +- number of bytes requested by the allocators/application. This is +- the sbrk+mmaped memory. +- +-2004-06-10 Benjamin Kosnik +- +- * crossconfig.m4: Remove signbit, signbitf, signbitl. +- * linkage.m4: Comment LIBMATHOBJS, tweak others. AC_DEFINES for +- builtin math functions instead of AC_DEFINE_UNQUOTED. +- * configure: Regenerate. +- +-2004-06-10 Benjamin Kosnik +- +- * docs/doxygen/filter.sed: Rename _GLIBCXX_STD to std. +- * docs/doxygen/mainpage.html: Remove links. +- +-2004-06-08 Jason Merrill +- +- * config/linker-map.gnu: Use wildcards for +- __basic_file::{xsgetn,xsputn,seekoff,xsputn_2}. +- +-2004-05-31 Benjamin Kosnik +- +- * config/linker-map.gnu (GLIBCXX_3.4.1): Add. +- * testsuite/testsuite_abi.cc: Same. +- * configure.ac (libtool_VERSION): Bump to 6:1:0. +- * configure: Regenerate. +- * aclocal.m4: Regenerate. +- +-2004-05-31 Richard B. Kreckel +- Benjamin Kosnik +- +- PR libstdc++/14600 +- * include/ext/stdio_sync_filebuf.h (stdio_sync_filebuf::file): New. +- * include/ext/stdio_filebuf.h (stdio_filebuf::file): New. +- * config/io/basic_file_stdio.cc (__basic_file::file): New. +- * config/io/basic_file_stdio.h: Define. +- +-2004-05-30 Benjamin Kosnik +- +- PR libstdc++/15675 +- * docs/html/documentation.html: Update doxygen links for 3.4.0. +- +-2004-05-30 Jan Beulich +- +- * scripts/create_testsuite_files: Tweak. +- +-2004-05-30 Paolo Carlini +- +- * include/ext/mt_allocator.h:(__mt_alloc::allocate): Minor +- tweaks. +- +-2004-05-30 Dhruv Matani +- +- * include/ext/mt_allocator.h:(__mt_alloc::allocate): Re-write +- allocation loop which removes blocks from the global free list +- from O(N) to O(1) when the required blocks are <= the number +- available. +- +-2004-05-30 Paolo Carlini +- +- * include/ext/mt_allocator.h (__mt_alloc<>::deallocate): +- Consistently update __bin._M_free[0]. +- (__mt_alloc<>::allocate): When __bin._M_first[0] != NULL use +- __bin._M_free[0] to simplify the while loop (i.e., the number +- of iterations becomes known at the outset). +- +-2004-05-30 Paolo Carlini +- +- * include/ext/mt_allocator.h (__mt_alloc<>::deallocate): +- The critical section is actually very small, only two assignments. +- +-2004-05-30 Paolo Carlini +- +- * include/ext/mt_allocator.h (__mt_alloc<>::allocate): Factor out +- some duplicated code. +- (__mt_alloc<>::_Bin_record): Spare the space of _M_free and _M_used +- in the single threaded case. ++2005-01-26 Paolo Carlini + +-2004-05-30 Paolo Carlini ++ * include/std/std_complex.h: Remove usages of the dead ++ _GLIBCXX_BUGGY_COMPLEX macro. + +- * include/ext/mt_allocator.h (__mt_alloc<>::deallocate): +- Rearrange arithmetic to avoid computing two divisions at +- each deallocation. ++2005-01-21 Volker Reichelt + +-2004-05-30 Paolo Carlini ++ PR libstdc++/19510 ++ * include/bits/stl_list.h (_List_iterator): Initialize _M_node ++ in constructor. ++ (_List_const_iterator): Likewise. ++ * include/bits/stl_tree.h (_Rb_tree_iterator): Likewise. ++ (_Rb_tree_const_iterator): Likewise. + +- * include/ext/mt_allocator.h (__mt_alloc<>::_S_initialize): +- Streamline the second half, wrapping it in a single +- '#ifdef __GTHREADS if (__gthread_active_p())' and avoiding +- conditionals inside loops. +- +-2004-05-30 Paolo Carlini +- +- * include/ext/mt_allocator.h: Uglify consistently names of +- variables, members and classes; tidy. +- +-2004-05-30 Dhruv Matani +- +- * include/ext/mt_allocator.h (__mt_alloc<>::deallocate): +- Deallocation loop rewrote. +- +-2004-05-30 Paolo Carlini +- +- * include/ext/mt_allocator.h (__mt_alloc<>::allocate, +- __mt_alloc<>::deallocate): Protect two instances of +- block->thread_id with __GTHREADS. +- +-2004-05-30 Paolo Carlini +- +- * include/ext/mt_allocator.h (__mt_alloc<>::tune): +- Add _M_min_bin, the size in bytes of the smallest bin. +- (__mt_alloc<>::tune()): Tweak accordingly. +- (__mt_alloc<>::tune(size_t, ...)): Likewise. +- (__mt_alloc<>::block_record): Change to a union: members next +- and thread_id are never used at the same time. +- (__mt_alloc<>::allocate): Update consistently. +- (__mt_alloc<>::deallocate): Likewise. +- (__mt_alloc<>::_S_initialize): Update setups of _S_binmap and +- _S_bin_size for the configurable _M_min_size. +- +-2004-05-30 Paolo Carlini +- +- * include/ext/mt_allocator.h (__mt_alloc<>::allocate, +- __mt_alloc<>::deallocate): Avoid redundant conditionals. +- +-2004-05-27 Paolo Carlini +- +- PR libstdc++/15565 +- * include/bits/locale_facets.tcc (__int_to_char(unsigned long), +- __int_to_char(unsigned long long)): Showpos is not relevant +- for unsigned types. +- * testsuite/22_locale/num_put/put/char/15565.cc: New. +- * testsuite/22_locale/num_put/put/wchar_t/15565.cc: New. +- +- * testsuite/22_locale/num_put/put/wchar_t/1.cc: Use L for the fill +- char. +- * testsuite/22_locale/num_put/put/wchar_t/2.cc: Likewise. +- * testsuite/22_locale/num_put/put/wchar_t/3.cc: Likewise. +- * testsuite/22_locale/num_put/put/wchar_t/4.cc: Likewise. +- * testsuite/22_locale/num_put/put/wchar_t/5.cc: Likewise. +- * testsuite/22_locale/num_put/put/wchar_t/6.cc: Likewise. +- * testsuite/22_locale/num_put/put/wchar_t/8.cc: Likewise. +- +-2004-05-25 Paolo Carlini +- +- * include/bits/istream.tcc (ignore): Correctly deal with +- n == numeric_limits::max(). +- * testsuite/27_io/basic_istream/ignore/char/2.cc: New. +- +- * include/bits/istream.tcc (basic_istream<>::getline): Prefer +- '_M_gcount + 1 < __n' to '--__n; _M_gcount < __n', just in case +- __n == numeric_limits<>::min(). +- +- * include/bits/istream.tcc: Minor tweaks. +- +- * testsuite/21_strings/basic_string/inserters_extractors/char/10.cc: +- Tighten. +- * testsuite/21_strings/basic_string/inserters_extractors/char/11.cc: +- Likewise. +- * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc: +- Likewise. +- * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc: +- Likewise. +- * testsuite/27_io/basic_istream/getline/char/5.cc: Likewise. +- +-2004-05-25 Paolo Carlini +- +- * include/bits/istream.tcc (ignore): Remove redundant line. +- (readsome): Tidy, closely following 27.6.1.3, p30. +- +-2004-05-25 Paolo Carlini +- +- * include/bits/istream.tcc (operator>>(basic_istream<>&, +- basic_string<>&)): Use a temporary buffer, thus avoiding +- reallocation for common case. +- * testsuite/21_strings/basic_string/inserters_extractors/char/11.cc: +- New. +- * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc: +- Likewise. +- +- * include/bits/istream.tcc: Const-ification of a few variables. +- +- * include/bits/ostream.tcc: Trivial formatting fixes and +- const-ification of some variables. +- +-2004-05-25 Benjamin Kosnik +- +- PR libstdc++/15489 +- * scripts/create_testsuite_files: Revert xtype change, add +- non-GNU bits to do the same thing. +- +-2004-05-24 Benjamin Kosnik +- +- PR libstdc++/12854 +- Fixups for -Weffc++. +- * include/bits/basic_string.h (basic_string::operator=): Return +- pointer to this instead of result of assign. Although redundant, +- this doesn't impact resultant codegen. +- +- * include/bits/locale_facets.h (__numpunct_cache): Declare +- assignment opxserator and copy constructor private. +- (__timepunct_cache): Same. +- (__moneypunct_cache): Same. +- (collate): Use member initialization list for _M_c_locale_collate. +- * config/locale/gnu/messages_members.h: Same. +- * config/locale/gnu/time_members.h (__timepunct): Same. +- * src/codecvt.cc: Use member initialization list to initialize +- _M_c_locale_codecvt. +- * src/ctype.cc: Same, with _M_c_locale_ctype and _M_narrow_ok. +- * config/os/gnu-linux/ctype_noninline.h: Same. +- * src/locale.cc (_Impl): Same. +- * src/locale_init.cc: Same. +- * src/localename.cc: Same. +- +- * include/bits/basic_ios.h (basic_ios): Complete member +- initialization list. +- * include/bits/istream.tcc (basic_istream::sentry): Same. +- * include/bits/ostream.tcc (basic_ostream::sentry): Same. +- * include/bits/fstream.tcc (basic_filebuf): Add _M_lock and +- _M_pback to member initialization list. +- * include/std/std_streambuf.h: Same. +- * include/std/std_sstream.h: Same, for _M_mode. +- * src/ios.cc (ios_base): Same. +- +- * include/ext/rope: Make derived classes match exception +- +- specifications. Add copy constructors and assignment operators. +- +- * include/debug/safe_base.h (_Safe_sequence_base): Declare copy +- constructor and assignment operator protected. +- (_Safe_iterator_base): Same. +- * include/debug/formatter.h (_Error_formatter): Define copy +- constructor and assignment operator. +- +- * include/backward/strstream: Declare assignment operator and copy +- constructor private. +- +-2004-05-24 Benjamin Kosnik +- +- * testsuite/testsuite_hooks.h (func_callback): Declare copy +- constructor and assignment operator private. +- * testsuite/23_containers/deque/cons/clear_allocator.cc: Match +- exception specifications of base class. +- * testsuite/23_containers/list/cons/clear_allocator.cc: Same. +- * testsuite/23_containers/vector/cons/clear_allocator.cc: Same. +- * testsuite/23_containers/vector/bool/clear_allocator.cc: New. +- +-2004-05-24 Benjamin Kosnik +- +- * libsupc++/cxxabi.h: Remove duplicated and useless public and +- private keywords in class declarations. Format. Use +- stddef.h. Expose declarations to "C" compilation. +- * libsupc++/tinfo.cc (__upcast_result): Add copy constructor and +- assignment operator. +- (__dyncast_result): Same. +- * libsupc++/vec.cc (uncatch_exception): Same, use member +- initialization list. +- +-2004-05-22 Benjamin Kosnik +- +- * testsuite/abi_check.cc: Add unistd.h. +- +-2004-05-21 Matthias Klose +- +- * docs/doxygen/run_doxygen: Bump required version. +- +-2004-05-21 Benjamin Kosnik +- +- * docs/html/abi.html (libgcc_s): Additions suggested by Matthias Klose. +- * docs/doxygen/Intro.3: Subtractions suggested by Phil Edwards. +- +-2004-05-21 Benjamin Kosnik +- +- PR libstdc++/15123 +- PR libstdc++/13928 +- * docs/doxygen/Intro.3: Remove Allocators.3. +- Add new extension headers, extension namespace list. +- * docs/doxygen/run_doxygen (problematic): Remove Allocators.3 +- Rename GLIBCXXSTD names to std::. Rename __gnu_debug to +- __gnu_debug::. Remove __policy_ renames. +- * docs/doxygen/guide.html: Add dot note. +- * docs/doxygen/stdheader.cc: Edit, add files. +- * docs/doxygen/user.cfg.in: Regenerate with Doxygen 1.3.7. +- +-2004-05-19 Jan Beulich +- +- PR libstdc++/15489 +- * scripts/create_testsuite_files: Also find source files through +- symbolic links. +- +-2004-05-19 Jan Beulich +- +- PR libstdc++/15488 +- * testsuite/lib/libstdc++.exp: Make test files writable. +- +-2004-05-18 Jonathan Wakely +- +- * include/ext/stdio_filebuf.h: Update comments to reflect PR 11691. +- +-2004-05-18 Benjamin Kosnik +- +- * testsuite/testsuite_hooks.h (__gnu_test::conversion): New class. +- * testsuite/23_containers/deque/14340.cc: New. +- * testsuite/23_containers/list/14340.cc: New. +- * testsuite/23_containers/map/14340.cc: New. +- * testsuite/23_containers/multimap/14340.cc: New. +- * testsuite/23_containers/multiset/14340.cc: New. +- * testsuite/23_containers/set/14340.cc: New. +- * testsuite/23_containers/vector/14340.cc: New. +- +-2004-05-18 Douglas Gregor +- +- PR libstdc++/14340 +- * include/debug/safe_iterator.h (_Safe_iterator converting +- constructor): Only allow declaration to instantiate when the +- incoming _Safe_iterator has exactly the right iterator type. +- +-2004-05-18 Jonathan Wakely +- +- * include/ext/enc_filebuf.h: Move concept-check macro to class scope. +- +-2004-05-17 Jonathan Wakely +- +- * include/bits/boost_concept_check.h: Fix old attribute syntax. +- * testsuite/23_containers/map/modifiers/swap.cc: Define operator< +- to pass concept-checks. +- * testsuite/23_containers/multimap/modifiers/swap.cc: Same. +- * testsuite/23_containers/set/modifiers/swap.cc: Same. +- * testsuite/23_containers/multiset/modifiers/swap.cc: Same. +- +-2004-05-15 Benjamin Kosnik +- +- PR libstdc++/15046 +- * crossconfig.m4: Add C99 math bits for linux crosses. +- * configure: Regenerate. +- +-2004-05-15 Simon Marshall +- Benjamin Kosnik +- +- PR libstdc++/15090 +- * include/bits/locale_facets.h: Fix for -fno-for-scope. +- * include/debug/safe_sequence.h: Same. +- * include/debug/safe_iterator.tcc: Same. +- * src/debug.cc: Same. +- * src/locale.cc: Same. +- * src/locale_init.cc: Same. +- * src/localename.cc: Same. +- * config/locale/gnu/ctype_members.cc: Same. +- * config/locale/gnu/numeric_members.cc: Same. +- * testsuite/testsuite_abi.cc: Same. +- * testsuite/testsuite_hooks.cc: Same. +- +-2004-05-15 Jonathan Wakely +- +- * docs/html/abi.html: Document effect of -fabi-version on value +- of __GXX_ABI_VERSION, and that it's defined in c-cppbuiltin.c. +- Fix markup. +- +-2004-05-15 Benjamin Kosnik +- +- * docs/html/abi.html: New. +- * docs/html/abi.txt: Remove. +- * docs/html/documentation.html: Add link. +- * testsuite/Makefile.am: Add files. +- * testsuite/Makefile.in: Regenerated. +- * testsuite/abi_check.cc: Move and modify code into... +- * testsuite/testsuite_abi.cc: Add. +- * testsuite/testsuite_abi.h: Add. +- +- * docs/html/17_intro/TODO: Update. +- * include/bits/stl_pair.h: Format. +- +-2004-05-14 Paolo Carlini +- Ivan Godard +- +- PR libstdc++/15361 +- * include/std/std_bitset.h (_Base_bitset<_Nw>::_M_do_find_next): Fix. +- * testsuite/23_containers/bitset/ext/15361.cc: New. +- +-2004-05-14 Paolo Carlini ++ * testsuite/23_containers/map/operators/1_neg.cc: Adjust line numbers. ++ * testsuite/23_containers/set/operators/1_neg.cc: Likewise. + +- PR libstdc++/14775 +- * acconfig.h: Rename _GLIBCXX_MEM_LIMITS to _GLIBCXX_RES_LIMITS. +- * acinclude.m4 (GLIBCXX_CHECK_SETRLIMIT): Call +- GLIBCXX_CHECK_SETRLIMIT_ancilliary for FSIZE too, adjust define +- to _GLIBCXX_RES_LIMITS. +- (GLIBCXX_CHECK_SETRLIMIT_ancilliary): Rename HAVE_MEMLIMIT_* to +- HAVE_LIMIT_*. +- * testsuite/testsuite_hooks.h: Declare set_file_limit. +- * testsuite/testsuite_hooks.cc: Define it, using getrlimit +- and setrlimit(RLIMIT_FSIZE). +- * testsuite/27_io/fpos/14775.cc: New. +- * config.h.in: Regenerate. +- * configure: Likewise. ++2005-01-18 Paolo Carlini + +-2004-05-13 Benjamin Kosnik ++ * include/bits/stl_tree.h: Add a few missing std:: qualifications. + +- PR libstdc++/15074 +- * docs/html/faq/index.html: Update docs for libsupc++ usage. ++2005-01-16 Jonathan Wakely + +-2004-05-13 Benjamin Kosnik ++ * include/ext/rope: Qualify calls to std::copy() by sequence_buffer. ++ * testsuite/ext/rope/4.cc: Add. + +- PR libstdc++/15412 +- * include/bits/stl_threads.h (_GLIBCXX_mutex): Move to namespace +- __gnu_internal. +- (_GLIBCXX_mutex_address): Same. +- (_GLIBCXX_once): Same. +- (_GLIBCXX_mutex_init): Same. +- (_GLIBCXX_mutex_address_init): Same. +- +-2004-05-09 Paolo Carlini ++2005-01-12 Paolo Carlini + +- * testsuite/21_strings/basic_string/inserters_extractors/char/10.cc: +- New. +- * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc: +- Likewise. +- * testsuite/27_io/basic_istream/getline/char/5.cc: Likewise. ++ * include/bits/stl_algobase.h (lexicographical_compare): ++ Fix concept check. + +-2004-05-09 Paolo Carlini ++2005-01-02 Chris Jefferson + +- PR libstdc++/15002 (continued again) +- * include/bits/istream.tcc (getline(basic_istream<>&, +- basic_string<>&, _CharT)): Use a temporary buffer, thus +- avoiding reallocation for common case. ++ * include/bits/stl_algobase.h (mismatch): Correct concept check. + +- * include/bits/basic_string.tcc (_S_construct(_InIterator, +- _InIterator, const _Alloc&, input_iterator_tag)): Tweak size +- of temporary buffer to a power of two. ++2005-01-01 Paolo Carlini + +- * testsuite/27_io/basic_istream/getline/char/4.cc: Add comment. +- +-2004-05-09 Paolo Carlini +- Petur Runolfsson +- +- PR libstdc++/15002 (continued) +- * include/bits/istream.tcc (basic_istream<>::getline(char_type*, +- streamsize, char_type)): Use traits::find/copy in a loop to speed +- up greatly the function in the common case (I/O buffer size >> 1). +- +-2004-05-09 Paolo Carlini +- +- * testsuite/27_io/basic_istream/getline/char/4.cc: New. +- +- * include/bits/istream.tcc (getline(basic_istream<>&, +- basic_string<>&, _CharT)): Change to use sgetc()/snextc() instead +- of sbumpc(), consistently with the other functions, thus also +- dealing correctly with the case of exceeded string::max_size(). +- +-2004-05-06 Matthias Klose +- +- * include/backward/iterator.h: Add GPL copyright info, +- with exception clause. +- * include/bits/boost_concept_check.h: Likewise. +- * include +- * libsupc++/tinfo.h: Likewise. +- * po/string_literals.cc: Likewise. +- +-2004-05-02 Paolo Carlini +- +- * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Add pool_allocator. +- * aclocal.m4: Regenerate. +- * configure: Regenerate. +- * config/allocator/pool_allocator_base.h: New. +- * include/ext/pool_allocator.h: Convert to a standard-conforming +- allocator. +- * src/allocator.cc: Tweak instantiations. +- * testsuite/performance/20_util/allocator/insert.cc: Add __pool_alloc. +- * testsuite/performance/20_util/allocator/insert_insert.cc: Ditto. +- * testsuite/performance/20_util/allocator/list_sort_search.cc: Ditto. +- * testsuite/performance/20_util/allocator/map_mt_find.cc: Ditto. +- * testsuite/performance/20_util/allocator/map_thread.cc: Ditto. +- * testsuite/performance/20_util/allocator/producer_consumer.cc: Ditto. +- +-2004-04-30 Paolo Carlini +- +- PR libstdc++/14220 +- * include/bits/locale_facets.tcc (num_put<>::_M_insert_float): +- Don't clip the precision passed down to __convert_from_v: +- 22.2.2.2.2 nowhere says so. +- * testsuite/22_locale/num_put/put/char/14220.cc: New. +- * testsuite/22_locale/num_put/put/wchar_t/14220.c: Likewise. +- +-2004-04-29 Benjamin Kosnik +- +- * testsuite/27_io/basic_istream/extractors_character/char/9555-ic.cc: +- Clarify assertion, set test variable to false before assert. +- * testsuite/27_io/basic_istringstream/str/char/1.cc: Same. +- * testsuite/27_io/basic_stringstream/str/char/1.cc: Same. +- * testsuite/27_io/ios_base/storage/2.cc: Same. +- +- * testsuite/27_io/basic_filebuf/imbue/char/13171-4.cc: Fix +- function returns. +- * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Same. +- * testsuite/27_io/fpos/14320-3.cc: Same. +- +- * testsuite/27_io/basic_filebuf/2.cc: Instantiate in namespace std. +- * testsuite/27_io/fpos/1.cc: Same. +- * testsuite/27_io/basic_stringstream/2.cc: Same. +- * testsuite/27_io/basic_stringbuf/4.cc: Same. +- * testsuite/27_io/basic_stringbuf/1.cc: Same. +- * testsuite/27_io/basic_stringbuf/2.cc: Same. +- * testsuite/27_io/basic_streambuf/2.cc: Same. +- * testsuite/27_io/basic_ostringstream/2.cc: Same. +- * testsuite/27_io/basic_ostream/2.cc: Same. +- * testsuite/27_io/basic_ofstream/2.cc: Same. +- * testsuite/27_io/basic_istringstream/2.cc: Same. +- * testsuite/27_io/basic_istream/2.cc: Same. +- * testsuite/27_io/basic_iostream/2.cc: Same. +- * testsuite/27_io/basic_ios/2.cc: Same. +- * testsuite/27_io/basic_ifstream/2.cc: Same. +- * testsuite/27_io/basic_fstream/2.cc: Same. +- * testsuite/ext/stdio_filebuf/char/1.cc: Same, in namespace __gnu_cxx. +- +- * testsuite/21_strings/basic_string/capacity/1.cc: Don't compare +- unsigned against zero. +- * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc: Same. +- * testsuite/21_strings/basic_string/capacity/char/1.cc: Same. +- +- * testsuite/18_support/new_delete_placement.cc: Initialize +- variables before first use. +- * testsuite/21_strings/char_traits/requirements/wchar_t/1.cc: Same. +- * testsuite/21_strings/char_traits/requirements/char/1.cc: Same. +- * testsuite/21_strings/char_traits/requirements/short/1.cc: Same. +- * testsuite/27_io/basic_istream/seekg/char/exceptions_badbit_throw.cc: +- Same. +- * testsuite/27_io/basic_ostream/inserters_arithmetic/char/exceptions_badbit_throw.cc: Same. +- * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc: +- Same. +- * testsuite/27_io/basic_ostream/inserters_arithmetic/char/exceptions_failbit_throw.cc: Same. +- * testsuite/27_io/types/2.cc: Same. +- +- * testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc: Fix temporary +- file name. +- +-2004-04-29 Benjamin Kosnik +- +- Fixups for EDG front end. +- * include/ext/rope: Instead of non-existent function +- _Data_allocate, use allocator's allocate. Use this. +- (namespace _Rope_constants): Move _S_max_rope_depth, and _Tag +- enumerations from _Rope_RopeRep here. +- * include/ext/ropeimpl.h: Same. +- * src/ext-inst.cc (_S_min_len): Fix up definition. +- +- * config/locale/gnu/ctype_members.cc: Qualify base class members +- with this. +- * config/locale/generic/ctype_members.cc: Same. +- * config/locale/gnu/messages_members.h: Same. +- * config/locale/generic/messages_members.h: Same. +- * src/ctype.cc: Same. +- * include/bits/codecvt.h: Same. +- +- * include/bits/boost_concept_check.h: Declare. +- (__error_type_must_be_an_unsigned_integer_type): Remove this. +- (__error_type_must_be_an_integer_type): Remove this. +- (__error_type_must_be_a_signed_integer_type): Remove this. +- +- * config/io/basic_file_stdio.cc (__basic_file::sys_open): Remove cast. +- +- * libsupc++/eh_alloc.cc (__cxa_free_exception): Add exception +- specification to definition. +- (__cxa_allocate_exception): Same. +- * libsupc++/eh_catch.cc (__cxa_begin_catch): Same. +- * libsupc++/eh_globals.cc (__cxa_get_globals_fast): Same. +- (__cxa_get_globals): Same. +- +- * libsupc++/del_op.cc: Add comment about freestanding. +- +-2004-04-29 Dhruv Matani +- +- * include/ext/malloc_allocator.h: Fixed the construct function to +- call global placement new instead of assignment. Added a check +- after the return from malloc to check whether returned pointer is +- NULL, and if so, throw std::bad_alloc(). +- * include/ext/debug_allocator.h: Added a check in the deallocate +- function to check whether the user has passed a NULL pointer or +- not. +- +-2004-04-29 Benjamin Kosnik +- +- * docs/html/20_util/allocator.html: Add bitmap_allocator links. +- +-2004-04-29 Dhruv Matani +- +- * include/ext/bitmap_allocator.h: (_Bit_scan_forward) -> Made this +- function call __builtin_ctz instead of the while loop. +- (allocate) -> If condition has __builtin_expect. +- (deallocate) -> Ditto. +- Renamed a few left-over variables and typedefs according to the +- C++STYLE mentioned in the documentation. +- Protected calls to __gthread* by __gthread_active_p(), whose value +- is cached in the local variable __threads_active. +- +-2004-04-29 Felix Yen +- +- * testsuite/performance/20_util/allocator/producer_consumer.cc: +- Use linear algorithm for producer. +- +-2004-04-29 Paolo Carlini +- +- PR libstdc++/14975 +- * include/bits/fstream.tcc (basic_filebuf::imbue): Zero _M_codecvt +- in case of error. +- * testsuite/27_io/basic_filebuf/imbue/char/14975-1.cc: New. +- * testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc: New. +- +-2004-04-26 Paolo Carlini +- +- * include/bits/istream.tcc: Fix comment. +- +-2004-04-26 Paolo Carlini +- +- * src/locale.cc (locale::operator==): When _M_impl == __rhs._M_impl +- avoid constructing unnecessarily this->name(). +- +-2004-04-24 Loren J. Rittle +- +- * testsuite/thread/pthread7-rope.cc: Update comment to reflect test. +- +-2004-04-24 Paolo Carlini +- +- * testsuite/thread/pthread7-rope.cc: Fix, unpredictably, depending +- on allocator behavior, the memory pointed by data2 may well be not +- trashed. +- +-2004-04-24 Paolo Carlini +- +- * config/locale/generic/time_members.cc +- (__timepunct::_M_initialize_timepunct, +- __timepunct::_M_initialize_timepunct): The correct +- _M_amonth07 in the "C" locale is "Jul" and L"Jul", respectively. +- * config/locale/gnu/time_members.cc +- (__timepunct::_M_initialize_timepunct, +- __timepunct::_M_initialize_timepunct): Ditto. +- * testsuite/22_locale/time_get/get_monthname/char/4.cc: New. +- * testsuite/22_locale/time_get/get_monthname/wchar_t/4.cc: New. +- +-2004-04-24 Paolo Carlini +- Petur Runolfsson +- +- * testsuite/performance/27_io/filebuf_sputn_unbuf.cc: New, +- adapted from libstdc++/11378. +- +-2004-04-24 Paolo Carlini +- Andrew Pinski +- +- * include/bits/basic_string.tcc (_M_mutate): Don't compute +- __src unnecessarily. +- +-2004-04-24 Paolo Carlini +- +- PR libstdc++/15002 (partial) +- * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe): +- Special case __n2 == 1, not calling traits_type::assign/copy. +- +-2004-04-24 Matthias Klose +- +- Jonathan Wakely +- * docs/html/configopts.html: Fix reference to allocator config option. +- +-2004-04-23 Daniel Jacobowitz +- +- PR libstdc++/15047, libstdc++/11610 +- * testsuite/lib/libstdc++.exp (v3-copy-files): Use remote_download. +- (libstdc++_init): Don't pass outdir to v3-copy-files. +- +-2004-04-23 Paolo Carlini +- +- * config/locale/gnu/monetary_members.cc +- (moneypunct::_M_initialize_moneypunct): Prefer +- _NL_MONETARY_DECIMAL_POINT_WC, _NL_MONETARY_THOUSANDS_SEP_WC, +- and __MON_GROUPING to _NL_NUMERIC_DECIMAL_POINT_WC, +- _NL_NUMERIC_THOUSANDS_SEP_WC, and GROUPING. +- * config/locale/gnu/numeric_members.cc +- (numpunct::_M_initialize_numpunct): Prefer DECIMAL_POINT +- and THOUSANDS_SEP to the deprecated RADIXCHAR and THOUSEP. +- +-2004-04-21 Chavdar Botev +- +- PR libstdc++/14245 +- * include/bits/basic_string.tcc +- (basic_string::basic_string(const basic_string&)): Pass to +- _Rep::_M_grab the actual allocator of the string being constructed +- not the default constructed one. +- +-2004-04-21 Paolo Carlini +- Petur Runolfsson +- +- PR libstdc++/12077 +- * include/ext/stdio_sync_filebuf.h (showmanyc): Remove, there's +- no way to find out the conversion used by the underlying FILE*. +- * testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc: New. +- * testsuite/27_io/objects/char/9.cc: Tweak. +- +-2004-04-18 Release Manager +- +- * GCC 3.4.0 released. +- +-2004-04-17 Benjamin Kosnik +- +- * include/bits/stl_bvector.h: Use _M_impl._M_start. +- +-2004-04-16 Benjamin Kosnik +- +- * include/bits/c++config (_GLIBCXX_STD): New. +- * src/list.cc: Use it. +- * include/std/std_bitset.h: Same. +- * include/bits/vector.tcc: Same. +- * include/bits/stl_set.h: Same. +- * include/bits/stl_multiset.h: Same. +- * include/bits/stl_multimap.h: Same. +- * include/bits/stl_map.h: Same. +- * include/bits/stl_list.h: Same. +- * include/bits/stl_vector.h: Same. +- * include/bits/stl_bvector.h: Same. +- * include/bits/stl_deque.h: Same. +- * include/bits/deque.tcc: Same. +- * include/bits/list.tcc: Same. +- * include/debug/vector: Same. +- * include/debug/set.h: Same. +- * include/debug/multiset.h: Same. +- * include/debug/multimap.h: Same. +- * include/debug/map.h: Same. +- * include/debug/list: Same. +- * include/debug/deque: Same. +- * include/debug/bitset: Same. +- * include/debug/formatter.h (__gnu_debug): Remove using directive. +- Add using declaration for std::type_info. +- * include/debug/safe_iterator.h: Add using declaration for +- std::iterator_traits and std::pair. +- * src/debug_list.cc: New. +- * src/Makefile.am: Add debug_list.cc. +- * src/Makefile.in: Regenerate. +- * config/linker-map.gnu: Add _List_node_base exports for std and +- __gnu_norm. +- +- * include/bits/stl_bvector.h (_Bvector_base): Use _Bvector_impl +- idiom that other containers use. +- * testsuite/23_containers/vector/bool/clear_allocator.cc: New. +- +-2004-04-14 Zack Weinberg +- +- * testsuite/Makefile.am: Add definition of AM_CXXFLAGS. +- Change definition of CXX to use $(shell) instead of backticks. +- * testsuite/Makefile.in: Regenerate. +- +-2004-04-09 Andreas Schwab +- +- * testsuite/lib/prune.exp (prune_g++_output): Ignore errata +- warning from IA64 assembler. +- +-2004-03-30 Benjamin Kosnik +- +- PR libstdc++/14783 +- * include/bits/stl_tree.h: Adjust initialization list order. +- +-2004-03-26 Benjamin Kosnik +- +- libstdc++ PR/13598 +- * config/locale/ieee_1003.1-2001/codecvt_specializations.h +- (__enc_traits::_M_destroy): New. +- (__enc_traits::~__enc_traits): Use it. +- (__enc_traits::operator=): Use _M_destroy, _M_init. +- (__enc_traits::__enc_traits): Same. +- +-2004-03-26 Petur Runolfsson +- +- * testsuite/ext/enc_filebuf/char/13598.cc: New. +- +-2004-03-25 Gawain Bolton +- +- * include/bits/stl_tree.h (_Rb_tree_impl): Add _Node_allocator +- default argument in constructors. +- (_Rb_tree::_M_empty_initialize): Remove. +- +-2004-03-25 Benjamin Kosnik +- +- * testsuite/23_containers/map/operators/1_neg.cc: Adjust line numbers. +- * testsuite/23_containers/set/operators/1_neg.cc: Same. +- +-2004-03-25 Dhruv Matani +- +- * include/bits/cpp_type_traits.h: Changed __is_pod +- completely. Now, it does not use any of the previous type_traits +- to detect the pod types, and it also detects function pointers as +- POD types. +- +- * include/bits/stl_tree.h: Introduced a new class _Rb_tree_impl, +- which encapsulates the internal implementation of an rb_tree. Made +- the allocator a base class of this class instead of the rb_tree, +- which was not conforming. This _Rb_tree_impl class is also +- specialized on whether the _Compare parameter is a POD type or +- not. If so, then it maintains the comparison function as a data +- member, otherwise it makes the _Compare parameter a base class of +- itself. Also, _M_key_compare is now a function instead of a data +- member, so that the above trick can work properly. Delegated the +- initialization of the other data members to this newly created +- class. Also, now other member functions of rb_tree must refer to +- _M_key_compare as _M_impl._M_key_compare(). The other data members +- (*) can be referenced to as _M_impl.(*), where +- (*) includes _M_header, and _M_node_count. +- +-2004-03-25 Dhruv Matani +- +- * include/bits/stl_list.h: Created a _List_impl class and made it +- derive from the allocator, instead of the list deriving from the +- allocator class, which was not conformant. Changed all references +- from this->_M_node to this->_M_impl._M_node * bits/list.tcc: Same +- as above (changed all references to the concerned variables). +- +-2004-03-25 Dhruv Matani +- +- * include/bits/stl_deque.h: Created a _Deque_impl class and made +- it derive from the allocator, instead of the deque deriving from +- the allocator class, which was not conformant. Changed all +- references to the _M_start, _M_finish, _M_map, and _M_map_size to +- _M_impl.*. +- (_Deque_base<_Tp,_Alloc>::~_Deque_base()): Added this-> +- qualification in 2 places where it was missing. +- (_Deque_base<_Tp,_Alloc>::_M_initialize_map(size_t)): Same as +- above. +- * include/bits/deque.tcc: Same as above (changed all references to +- the concerned variables). +- +-2004-03-25 Dhruv Matani +- +- * include/bits/stl_vector.h: Created a _Vector_impl class and made +- it derive from the allocator, instead of the _Vector_base class, +- deriving from the allocator which was not conformant. Changed all +- references to the _M_start, _M_finish, and _M_end_of_storage to +- _M_impl.*. +- * include/bits/vector.tcc: Same as above (changed all references +- to the concerned variables). +- +-2004-03-25 Dhruv Matani +- +- * testsuite/23_containers/deque/cons/clear_allocator.cc: New. +- * testsuite/23_containers/list/cons/clear_allocator.cc: New. +- * testsuite/23_containers/vector/cons/clear_allocator.cc: New. +- +-2004-03-23 Benjamin Kosnik +- +- * include/bits/locale_facets.h: Tweaks for 80 column. +- (__numpunct_cache::_M_cache): Move to locale_facets.tcc. +- (__moneypunct_cache::_M_cache): Same. +- (num_get): Don't inherit from __num_base. +- (num_put): Same. +- (money_get): Don't inherit from money_base. +- (money_put): Same. +- (__timepunct::_M_am_pm_format): New. +- (time_get::_M_extract_num): Return iterator, use ios_base as argument. +- (time_get::_M_extract_name): Same. +- (time_get::_M_extract_via_format): Same. +- * include/bits/locale_facets.tcc: Tweaks for 80 column. +- Use _M_getloc instead of getloc. +- * testsuite/22_locale/money_put/put/char/9780-3.cc: New. +- * testsuite/22_locale/num_put/put/char/9780-2.cc: New. +- * testsuite/22_locale/time_put/put/char/9780-1.cc: New. +- +-2004-03-22 Hans-Peter Nilsson +- +- PR target/14676 +- * config/cpu/cris/atomicity.h (__atomic_add): Remove "static +- inline" and attribute-unused. Qualify parameter __mem with +- "volatile". +- (__exchange_and_add): Ditto. Add back memory clobber to asm. +- +-2004-03-19 Peter Schmid +- +- PR libstdc++/14647 +- * include/backward/bvector.h (bit_vector): Allocator is in std +- namespace. +- +-2004-03-20 Paolo Carlini +- +- * include/std/std_valarray.h: Document DR389 [Ready]. +- * docs/html/ext/howto.html: Add an entry for DR389. +- +-2004-03-19 Paolo Carlini +- +- PR libstdc++/14648 +- * include/ext/ropeimpl.h (rope<>::_S_apply_to_pieces): Fix +- memory allocation/deallocation calls. +- * testsuite/ext/14648.cc: New. +- +-2004-03-17 Benjamin Kosnik +- +- Revert. +- * configure.ac (AC_PREREQ): Use 2.57. +- (AM_INIT_AUTOMAKE): Remove -Wno-override. +- +-2004-03-17 David Billinghurst +- +- PR bootstrap/14207 +- Revert patch of 2004-02-17, as it breaks mips-sgi-irix6.5 -o32 +- (Almost certainly a target issue) +- * include/bits/locale_facets.tcc (num_get<>::_M_extract_float, +- num_get<>::_M_extract_int, money_get<>::do_get): Simplify +- grouping fidelity conditional. +- +-2004-03-17 Benjamin Kosnik +- +- Revert dg-require-iconv changes. +- * testsuite/22_locale/collate/compare/wchar_t/2.cc: Revert. +- * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc: Same. +- * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc: Same. +- * testsuite/22_locale/collate/hash/wchar_t/2.cc: Same. +- * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc: Same. +- * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc: Same. +- * testsuite/22_locale/collate/transform/wchar_t/2.cc: Same. +- * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc: Same. +- * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc: +- +-2004-03-16 Benjamin Kosnik +- +- * Merge from mainline. +- +-2004-03-16 Benjamin Kosnik +- +- * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Default setting is +- new_allocator for all hosts. +- * configure: Regenerate. +- +-2004-03-16 Paolo Carlini +- +- * testsuite/22_locale/num_put/put/char/4.cc: Fix for 64-bit pointers. +- * testsuite/22_locale/num_put/put/wchar_t/4.cc: Likewise. +- +-2004-03-15 Paolo Carlini +- +- * include/bits/locale_facets.tcc (money_get<>::_M_extract): +- Adjust the logic underlying the parsing of symbol to deal +- correctly with an optional sign component (i.e., when either +- negative_sign or positive_sign is empty) +- * testsuite/22_locale/money_get/get/char/19.cc: New. +- * testsuite/22_locale/money_get/get/wchar_t/19.cc: New. +- +-2004-03-15 Paolo Carlini +- +- * include/bits/locale_facets.tcc (money_get<>::_M_extract): +- Do not accept an incomplete currency symbol. +- * testsuite/22_locale/money_get/get/char/18.cc: New. +- * testsuite/22_locale/money_get/get/wchar_t/18.cc: New. +- +-2004-03-13 Benjamin Kosnik +- +- * config/allocator: New. +- * config/allocator/bitmap_allocator_base.h: New. +- * config/allocator/malloc_allocator_base.h: New. +- * config/allocator/mt_allocator_base.h: New. +- * config/allocator/new_allocator_base.h: New. +- * include/bits/allocator.h: Include c++allocator.h. +- * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): New. +- * aclocal.m4: Regenerate. +- * configure.ac: Use GLIBCXX_ENABLE_ALLOCATOR. +- * configure: Regenerate. +- * include/Makefile.am (host_headers_extra): Add c++allocator.h. +- * include/Makefile.in: Regenerate. +- * docs/html/configopts.html: Add enable-libstdcxx-allocator. +- +-2004-03-12 Benjamin Kosnik +- +- * include/bits/allocator.h: Revert. +- +-2004-03-12 Paolo Carlini +- +- * docs/html/ext/howto.html: Add entry for DR 253 [Ready]. +- * include/bits/gslice_array.h: Add comment about DR 253. +- * include/bits/indirect_array.h: Likewise. +- * include/bits/mask_array.h: Likewise. +- * include/bits/slice_array.h: Likewise. +- +-2004-03-12 Benjamin Kosnik +- +- * testsuite/20_util/allocator/14176.cc: New. +- * include/ext/mt_allocator.h: Formatting fixes. +- +-2004-03-11 Dhruv Matani +- +- * include/Makefile.am (ext_headers): Add +- ${ext_srcdir}/bitmap_allocator.h . +- * include/Makefile.in: Regenerate. +- * docs/html/ext/ballocator_doc.txt: New file. +- * include/ext/bitmap_allocator.h: New file. +- * testsuite/performance/20_util/allocator/list_sort_search.cc: Add +- test. +- * testsuite/performance/20_util/allocator/map_mt_find.cc: Likewise. +- * testsuite/performance/20_util/allocator/producer_consumer.cc: Add +- test for the bitmap_allocator<>. +- * testsuite/performance/20_util/allocator/insert.cc: Likewise. +- * testsuite/performance/20_util/allocator/insert_insert.cc: Likewise. +- * testsuite/performance/20_util/allocator/map_thread.cc: Likewise. +- +-2004-03-11 Paolo Carlini +- +- * include/std/std_complex.h (pow(const complex&, const _Tp&), +- pow(const _Tp&, const complex&), pow(const complex&, +- const complex&)): Fully qualify with std:: a few calls. +- * testsuite/26_numerics/complex/13450.cc: Minor tweak. +- +-2004-03-11 Steven Bosscher +- +- PR libstdc++/11706 +- * include/c_std/cmath.tcc (__cmath_power): Define inline. +- +-2004-03-10 Kelley Cook +- +- * configure.ac: Bump AC_PREREQ to 2.59. +- +-2004-03-10 Paolo Carlini +- +- * testsuite/26_numerics/valarray_subset_assignment.cc: Fix typos. +- +-2004-03-10 Paul Kienzle +- Paolo Carlini +- +- PR libstdc++/13450 +- * include/std/std_complex.h (pow(const complex&, const _Tp&), +- pow(const _Tp&, const complex&)): Use cmath pow only when safe. +- * testsuite/26_numerics/complex/13450.cc: New. +- +- * testsuite/26_numerics/cmath/overloads.C: Rename to overloads.cc. +- * testsuite/26_numerics/complex/pow.C: Rename to pow.cc and fix. +- +-2004-03-10 Jerry Quinn +- +- PR libstdc++/3247 +- * include/bits/gslice_array.h (gslice_array()): Make public. +- (operator=(gslice_array)): Make public. Implement. +- * include/bits/indirect_array.h (indirect_array()): Make public. +- * include/bits/mask_array.h (mask_array()): Make public. +- (operator=(mask_array)): Make public. Implement. +- * include/bits/valarray_array.tcc (__valarray_copy): +- Comment. Add versions for gslice_array and mask_array. +- * testsuite/26_numerics/valarray_subset_assignment.cc: New test. +- +-2004-03-09 Benjamin Kosnik +- +- * testsuite/23_containers/deque/modifiers/swap.cc: Add in bits for +- non-weak systems. +- * testsuite/23_containers/vector/modifiers/swap.cc: Same. +- * testsuite/23_containers/set/modifiers/swap.cc: Same. +- * testsuite/23_containers/multiset/modifiers/swap.cc: Same. +- * testsuite/23_containers/multimap/modifiers/swap.cc: Same. +- * testsuite/23_containers/map/modifiers/swap.cc: Same. +- * testsuite/23_containers/list/modifiers/swap.cc: Same. +- +- * testsuite/22_locale/locale/cons/12658_thread.cc: Catch exceptions. +- +-2004-03-08 Benjamin Kosnik +- +- PR c++/13658 +- * testsuite/23_containers/deque/modifiers/swap.cc: New. +- * testsuite/23_containers/list/modifiers/swap.cc: New. +- * testsuite/23_containers/map/modifiers/swap.cc: New. +- * testsuite/23_containers/multimap/modifiers/swap.cc: New. +- * testsuite/23_containers/multiset/modifiers/swap.cc: New. +- * testsuite/23_containers/set/modifiers/swap.cc: New. +- * testsuite/23_containers/vector/modifiers/swap.cc: New. +- +-2004-03-08 Petur Runolfsson +- +- PR libstdc++/12658 +- * testsuite/22_locale/locale/cons/12658_thread.cc: New. +- +-2004-03-08 Paolo Carlini +- +- * docs/html/ext/howto.html: Add entry for DR 103 [WP]. +- * include/bits/stl_multiset.h: Add comment about DR 103. +- * include/bits/stl_set.h: Likewise. +- +-2004-03-08 Paolo Carlini +- +- * include/bits/locale_facets.tcc (money_get<>::_M_extract): +- The value _space_ indicates that at least one space is required +- at that position. +- * testsuite/22_locale/money_get/get/char/17.cc: New. +- * testsuite/22_locale/money_get/get/wchar_t/17.cc: New. +- +- * testsuite/22_locale/money_get/get/char/7.cc: Minor tweaks. +- * testsuite/22_locale/money_get/get/wchar_t/7.cc: Likewise. +- +- * include/bits/locale_facets.tcc (money_get<>::do_get(long_double&)): +- Remove redundant conditional on __str.size(). +- +-2004-03-08 Benjamin Kosnik +- +- * include/bits/allocator.h: Switch defaults to mt_alloc. +- +-2004-03-06 Benjamin Kosnik +- +- * include/ext/mt_allocator.h (_S_initialize): If +- !__GTHREAD_MUTEX_INIT, then initialize _S_thread_freelist_mutex. +- +-2004-03-06 Benjamin Kosnik +- +- PR libstdc++/12658 +- * src/locale_init.cc (locale::locale): Lock critical regions with +- external mutexes. +- (locale::global): Same. +- * include/bits/concurrence.h (__glibcxx_mutex_define_initialized): +- Add in once bits for cases without __GTHREAD_MUTEX_INIT. +- (__glibcxx_mutex_lock): Same. +- +- * config/cpu/generic/atomicity.h: Remove +- _GLIBCXX_NEED_GENERIC_MUTEX, use concurrence.h. +- * src/misc-inst.cc: Move all locking bits out of this file. +- +- * config/os/hpux/os_defines.h: Remove _GLIBCXX_INST_ATOMICITY_LOCK. +- * src/misc-inst.cc: Same. +- * config/cpu/hppa/atomicity.h: Same. +- +- * config/linker-map.gnu: Remove types in the signature of atomic +- exports, as they may vary. +- +-2004-03-06 Paolo Carlini +- +- * include/bits/locale_facets.tcc: Tweak the comment preceding +- has_facet: doesn't throw. +- +-2004-03-06 Paolo Carlini +- +- * testsuite/22_locale/money_get/get/char/1.cc: Clean up. +- * testsuite/22_locale/money_get/get/char/2.cc: Likewise. +- * testsuite/22_locale/money_get/get/char/3.cc: Likewise. +- * testsuite/22_locale/money_get/get/char/4.cc: Likewise. +- * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise. +- * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise. +- * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise. +- * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise. +- +-2004-03-06 Paolo Carlini +- +- * include/bits/locale_facets.tcc (num_get<>::_M_extract_float, +- num_get<>::_M_extract_int, num_get<>::do_get(bool&), +- __pad<>::_S_pad): Prefer plain operator== to traits::eq(). +- * testsuite/testsuite_character.h (struct __gnu_test::character): +- Provide operator==. +- * testsuite/testsuite_hooks.h (struct __gnu_test::pod_char): +- Likewise. +- +-2004-03-05 Paolo Carlini +- +- * testsuite/27_io/fpos/14320-2.cc: Remove xfail. +- +-2004-03-04 Benjamin Kosnik +- +- * testsuite/23_containers/multiset/insert/1.cc: Test result string. +- +- * testsuite/23_containers/bitset/invalidation/1.cc: Main always +- returns 0. +- * testsuite/23_containers/deque/invalidation/4.cc: Same. +- * testsuite/23_containers/list/invalidation/1.cc: Same. +- * testsuite/23_containers/list/invalidation/2.cc: Same. +- * testsuite/23_containers/list/invalidation/3.cc: Same. +- * testsuite/23_containers/list/invalidation/4.cc: Same. +- * testsuite/23_containers/map/invalidation/2.cc: Same. +- * testsuite/23_containers/multimap/invalidation/1.cc: Same. +- * testsuite/23_containers/multimap/invalidation/2.cc: Same. +- * testsuite/23_containers/multiset/invalidation/1.cc: Same. +- * testsuite/23_containers/multiset/invalidation/2.cc: Same. +- * testsuite/23_containers/set/invalidation/1.cc: Same. +- * testsuite/23_containers/set/invalidation/2.cc: Same. +- * testsuite/23_containers/vector/invalidation/1.cc: Same. +- * testsuite/23_containers/vector/invalidation/2.cc: Same. +- * testsuite/23_containers/vector/invalidation/3.cc: Same. +- * testsuite/23_containers/vector/invalidation/4.cc: Same. +- +-2004-03-04 Paolo Carlini +- +- * scripts/testsuite_flags.in: Add "-D_GLIBCXX_ASSERT" to +- CXXFLAGS_save. +- * testsuite/lib/libstdc++.exp: Don't add it conditionally to +- DEFAULT_CXXFLAGS. +- * testsuite/18_support/numeric_limits.cc: Remove "-D_GLIBCXX_ASSERT" +- from the dg-options. +- * testsuite/23_containers/vector/invalidation/1.cc: Likewise. +- * testsuite/23_containers/vector/invalidation/2.cc: Likewise. +- * testsuite/23_containers/vector/invalidation/3.cc: Likewise. +- * testsuite/23_containers/vector/invalidation/4.cc: Likewise. +- * testsuite/23_containers/vector/resize/1.cc: Likewise. +- * testsuite/26_numerics/complex_value.cc: Likewise. +- * testsuite/27_io/ios_base/storage/1.cc: Likewise. +- * testsuite/27_io/ios_base/storage/2.cc: Likewise. +- * testsuite/27_io/ios_base/storage/3.cc: Likewise. +- * testsuite/27_io/manipulators/standard/char/2.cc: Likewise. +- * testsuite/27_io/objects/char/5.cc: Likewise. +- * testsuite/27_io/objects/wchar_t/5.cc: Likewise. +- * testsuite/backward/11460.cc: Likewise. +- * testsuite/thread/pthread7-rope.cc: Likewise. +- +- * testsuite/21_strings/basic_string/compare/char/1.cc: Add +- missing test variable. +- * testsuite/21_strings/basic_string/compare/wchar_t/1.cc: Add +- missing test variable. +- +-2004-03-04 Benjamin Kosnik +- +- * testsuite/20_util/allocator/1.cc: Provide explicit +- instantiations for non-weak systems. +- * testsuite/20_util/binders.cc: Same. +- * testsuite/20_util/allocator/8230.cc: Same. +- * testsuite/20_util/allocator/10378.cc: Same. +- * testsuite/22_locale/ctype/is/wchar_t/2.cc: Same. +- * testsuite/22_locale/ctype/is/char/2.cc: Same. +- * testsuite/thread/pthread7-rope.cc: Same. +- * testsuite/thread/pthread6.cc: Same. +- * testsuite/thread/pthread5.cc: Same. +- * testsuite/thread/pthread4.cc: Same. +- * testsuite/thread/pthread1.cc: Same. +- * testsuite/ext/rope.cc: Same. +- * testsuite/ext/hash_set.cc: Same. +- * testsuite/ext/hash_map.cc: Same. +- * testsuite/ext/concept_checks.cc: Same. +- * testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc: Same. +- * testsuite/25_algorithms/unique/2.cc: Same. +- * testsuite/25_algorithms/unique/1.cc: Same. +- * testsuite/25_algorithms/rotate.cc: Same. +- * testsuite/25_algorithms/min_max.cc: Same. +- * testsuite/25_algorithms/equal.cc: Same. +- * testsuite/24_iterators/rel_ops.cc: Same. +- * testsuite/24_iterators/iterator.cc: Same. +- * testsuite/24_iterators/insert_iterator.cc: Same. +- * testsuite/24_iterators/front_insert_iterator.cc: Same. +- * testsuite/24_iterators/back_insert_iterator.cc: Same. +- * testsuite/23_containers/vector/resize/1.cc: Same. +- * testsuite/23_containers/vector/modifiers/2.cc: Same. +- * testsuite/23_containers/vector/modifiers/1.cc: Same. +- * testsuite/23_containers/vector/invalidation/4.cc: Same. +- * testsuite/23_containers/vector/invalidation/3.cc: Same. +- * testsuite/23_containers/vector/invalidation/2.cc: Same. +- * testsuite/23_containers/vector/invalidation/1.cc: Same. +- * testsuite/23_containers/vector/element_access/1.cc: Same. +- * testsuite/23_containers/vector/cons/6513.cc: Same. +- * testsuite/23_containers/vector/cons/3.cc: Same. +- * testsuite/23_containers/vector/cons/2.cc: Same. +- * testsuite/23_containers/vector/cons/1.cc: Same. +- * testsuite/23_containers/vector/capacity/8230.cc: Same. +- * testsuite/23_containers/vector/capacity/1.cc: Same. +- * testsuite/23_containers/vector/bool/6886.cc: Same. +- * testsuite/23_containers/stack/members/7158.cc: Same. +- * testsuite/23_containers/set/invalidation/2.cc: Same. +- * testsuite/23_containers/set/invalidation/1.cc: Same. +- * testsuite/23_containers/queue/members/7157.cc: Same. +- * testsuite/23_containers/priority_queue/members/7161.cc: Same. +- * testsuite/23_containers/multiset/invalidation/2.cc: Same. +- * testsuite/23_containers/multiset/invalidation/2.cc: Same. +- * testsuite/23_containers/multiset/insert/1.cc: Same. +- * testsuite/23_containers/multimap/invalidation/2.cc: Same. +- * testsuite/23_containers/multimap/invalidation/2.cc: Same. +- * testsuite/23_containers/map/operators/1.cc: Same. +- * testsuite/23_containers/map/invalidation/2.cc: Same. +- * testsuite/23_containers/map/invalidation/1.cc: Same. +- * testsuite/23_containers/map/insert/1.cc: Same. +- * testsuite/23_containers/list/operators/4.cc: Same. +- * testsuite/23_containers/list/operators/3.cc: Same. +- * testsuite/23_containers/list/operators/2.cc: Same. +- * testsuite/23_containers/list/operators/1.cc: Same. +- * testsuite/23_containers/list/modifiers/3.cc: Same. +- * testsuite/23_containers/list/modifiers/2.cc: Same. +- * testsuite/23_containers/list/modifiers/1.cc: Same. +- * testsuite/23_containers/list/invalidation/4.cc: Same. +- * testsuite/23_containers/list/invalidation/3.cc: Same. +- * testsuite/23_containers/list/invalidation/2.cc: Same. +- * testsuite/23_containers/list/invalidation/1.cc: Same. +- * testsuite/23_containers/list/cons/9.cc: Same. +- * testsuite/23_containers/list/cons/8.cc: Same. +- * testsuite/23_containers/list/cons/7.cc: Same. +- * testsuite/23_containers/list/cons/6.cc: Same. +- * testsuite/23_containers/list/cons/5.cc: Same. +- * testsuite/23_containers/list/cons/4.cc: Same. +- * testsuite/23_containers/list/cons/3.cc: Same. +- * testsuite/23_containers/list/cons/2.cc: Same. +- * testsuite/23_containers/list/cons/1.cc: Same. +- * testsuite/23_containers/list/capacity/1.cc: Same. +- * testsuite/23_containers/deque/operators/1.cc: Same. +- * testsuite/23_containers/deque/invalidation/4.cc: Same. +- * testsuite/23_containers/deque/invalidation/3.cc: Same. +- * testsuite/23_containers/deque/invalidation/2.cc: Same. +- * testsuite/23_containers/deque/invalidation/1.cc: Same. +- * testsuite/23_containers/deque/cons/2.cc: Same. +- * testsuite/23_containers/deque/cons/1.cc: Same. +- +- * src/allocator.cc: Add char, wchar_t instantiations +- to match extern template declarations in memory.h. +- +-2004-03-03 Paolo Carlini +- +- * include/bits/locale_facets.tcc (money_put<>::_M_insert): +- Fix warning regression. +- +-2004-03-03 Paolo Carlini +- +- * include/bits/locale_facets.tcc (money_put<>::_M_insert): +- Deal properly with empty __digits and negative frac_digits, +- clean-up a bit. +- +-2004-03-03 Jonathan Wakely +- +- * docs/html/documentation.html: Regenerate. +- +-2004-03-02 Paolo Carlini +- +- PR libstdc++/14320 +- * include/bits/postypes.h (class streamoff): Remove, now +- streamoff is just typedef a 64 bit signed integer type. +- (class fpos): Tweak consistently. +- * testsuite/27_io/fpos/14320-1.cc: New. +- * testsuite/27_io/fpos/14320-2.cc: New. +- * testsuite/27_io/fpos/14320-3.cc: New. +- * testsuite/27_io/fpos/14320-4.cc: New. +- * testsuite/27_io/fpos/14320-5.cc: New. +- * testsuite/27_io/fpos/mbstate_t/4_neg.cc: xfail for now. +- +-2004-03-02 Paolo Carlini +- +- * include/bits/locale_facets.tcc (money_get<>::_M_extract): +- Reorganize a bit the main parsing loop, thus early detecting +- an empty value component. +- * testsuite/22_locale/money_get/get/char/16.cc: New. +- * testsuite/22_locale/money_get/get/wchar_t/16.cc: New. +- +-2004-03-02 Benjamin Kosnik +- +- Support automake 1.8.2 +- * configure.ac (AM_INIT_AUTOMAKE): Add -Wno-override. +- * po/Makefile.am (EXTRA_DIST): New. +- * po/Makefile.in: Regenerate. +- * Makefile.in: Same. +- * include/Makefile.in: Same. +- * libmath/Makefile.in: Same. +- * libsupc++/Makefile.in: Same. +- * src/Makefile.in: Same. +- * testsuite/Makefile.in: Same. +- +- * include/Makefile.am (${host_builddir}/gthr-posix.h): Use +- __GXX_WEAK__ instead of SUPPORTS_WEAK. +- (${host_builddir}/gthr-default.h): Same. +- (${host_builddir}/gthr.h): Same. +- * acinclude.m4 (GLIBCXX_ENABLE_THREAD): Remove +- _GLIBCXX_SUPPORTS_WEAK, as this behavior can be modified via +- -fno-weak. +- * aclocal.m4: Regenerate. +- * acconfig.h: Remove _GLIBCXX_SUPPORTS_WEAK. +- * config.h.in: Regenerate. +- * configure: Same. +- +-2004-03-01 Benjamin Kosnik +- +- Support autoconf 2.59 +- * acinclude.m4: Quote correctly. +- * aclocal.m4: Regenerate. +- * linkage.m4: Same. +- +-2004-03-01 Benjamin Kosnik +- +- * docs/html/test.html: Add multilib RUNTESTFLAGS example. +- +- * docs/html/18_support/howto.html: Add bit about writing to +- stderr, mostly by Zack. +- +-2004-03-01 Paolo Carlini +- +- * include/bits/locale_facets.tcc (money_get<>::_M_extract, +- money_get<>::do_get(string_type&)): ... and two more. +- +-2004-03-01 Paolo Carlini +- +- * include/bits/locale_facets.tcc (money_get<>::_M_extract): +- Fix thinkos in the switch from string_type& to string& as last +- argument. +- +-2004-03-01 Paolo Carlini +- +- * include/bits/locale_facets.tcc (num_get<>::_M_extract_float): +- Also when parsing exponent sign, first look for thousands_sep +- and decimal_point; tweak a bit. +- * testsuite/22_locale/num_get/get/char/15.cc: New. +- * testsuite/22_locale/num_get/get/wchar_t/15.cc: New. +- +- * include/bits/locale_facets.tcc (num_get<>::_M_extract_float, +- num_get<>::_M_extract_int): Reorder some conditionals. +- +-2004-03-01 Paolo Carlini +- +- * include/bits/locale_facets.tcc (money_get<>::_M_extract): +- Consistently with numpunct, enforce the requirements in +- 22.2.6.3, p3 for the thousands separators; tweak a bit. +- * testsuite/22_locale/money_get/get/char/15.cc: New. +- * testsuite/22_locale/money_get/get/wchar_t/15.cc: New. +- +-2004-03-01 David Billinghurst +- +- * testsuite/lib/libstdc++.exp (v3-list-tests): Use +- testsuite_files from correct multilib blddir when running +- testsuite. +- +-2004-02-29 Phil Edwards +- +- * testsuite/Makefile.am (check-abi, check-abi-verbose): Copy +- the summary file to the logfile. +- * testsuite/Makefile.in: Regenerate. +- +-2004-02-28 John David Anglin +- +- * config/cpu/hppa/atomicity.h (__atomic_add): Make first argument +- volatile. +- * config/os/hpux/os_defines.h (_GLIBCXX_INST_ATOMICITY_LOCK): Use +- __GXX_WEAK__ instead of _GLIBCXX_SUPPORTS_WEAK. +- +-2004-02-28 Paolo Carlini +- +- * include/bits/locale_facets.tcc (num_get<>::_M_extract_float): +- According to 22.2.3.1, p2, 'units' may be followed by 'e' with +- no 'decimal-point' in the middle: in this case too we must fix +- up __found_grouping; slightly tweak. +- * testsuite/22_locale/num_get/get/char/14.cc: New. +- * testsuite/22_locale/num_get/get/wchar_t/14.cc: New. +- +-2004-02-27 Eric Christopher +- Phil Edwards +- +- * testsuite/22_locale/collate/compare/wchar_t/2.cc, +- testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc, +- testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc, +- testsuite/22_locale/collate/hash/wchar_t/2.cc, +- testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc, +- testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc, +- testsuite/22_locale/collate/transform/wchar_t/2.cc, +- testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc, +- testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc: +- Use dg-require-iconv. +- * testsuite/lib/libstdc++.exp: Load target-supports.exp. +- +-2004-02-27 Phil Edwards +- Eric Christopher +- +- * testsuite/config/default.exp: Update with comments. +- (${tool}_target_compile): New wrapper routine. +- * testsuite/lib/dg-options.exp: New file, with dg-require-iconv. +- * testsuite/lib/libstdc++.exp: Update with comments and cosmetic +- fixes. +- (load_gcc_lib, v3track): New routines. +- (v3-init): Rename to libstdc++_init. +- * testsuite/libstdc++-dg/normal.exp: No longer call v3-init. +- Move DEFAULT_CXXFLAGS handling into libstdc++_init. +- +-2004-02-27 Benjamin Kosnik +- +- * config/cpu/hppa/atomicity.h: Include c++config.h to get defines. +- +- * src/misc-inst.cc (_S_atomicity_lock): Move to __gnu_cxx. +- +- * config/os/irix/irix5.2/atomicity.h: Merge.. +- * config/os/irix/irix6.5/atomicity.h: Merge.. +- * config/os/irix/atomicity.h: ...into this. +- * config/os/irix/atomic_word.h: New. +- * configure.host: Set atomic_word_dir for irix. +- +- * hppa/atomicity.h: Change __Atomicity_lock to _Atomicity_lock. +- * i386/atomicity.h: Same. +- * m68k/atomicity.h: Same. +- * sparc/atomicity.h: Same. +- +-2004-02-27 David Edelsohn +- +- * config/os/aix/atomicity.h: Use __gnu_cxx namespace. Remove +- static, and inline keywords. +- +-2004-02-27 Paolo Carlini +- +- * include/bits/locale_facets.tcc (num_get<>::_M_extract_float, +- num_get<>::_M_extract_int, money_get<>::_M_extract): If appropriate, +- call reserve on the __tmp_gruping string. +- (num_get<>::_M_extract_float): Don't append unnecessarily a +- char() to the returned string. +- * include/bits/locale_facets.tcc: Trivial reformattings. +- +-2004-02-27 Paolo Carlini +- +- * include/bits/locale_facets.h (money_get<>::_M_extract): +- Change signature: now takes a plain string&. +- * include/bits/locale_facets.tcc (money_get<>::_M_extract): +- Update consistently the definition; use the moneypunct cache +- to parse the value; use swap to change __units. +- (money_get<>::do_get(long double&)): Update call of _M_extract, +- avoid ctype::narrow, not correct wrt the standard. +- (money_get<>::do_get(string_type&)): Likewise, update call +- of _M_extract, use ctype::widen. +- * src/locale-inst.cc: Tweak instantiations of _M_extract. +- +-2004-02-26 Ian Lance Taylor +- +- * testsuite/demangle/abi_examples/01.cc: Expect error -2. +- * testsuite/demangle/abi_examples/02.cc: Likewise. +- * testsuite/demangle/regression/cw-11.cc: Likewise. +- * testsuite/demangle/regression/cw-16.cc: Change two expected +- results to match libiberty demangler output. +- +-2004-02-26 Benjamin Kosnik +- +- PR libstdc++/10246 +- * libsupc++/Makefile.am: Use libiberty demangler. +- (c_sources): Add cp-demangle.c. +- * libsupc++/Makefile.in: Regenerate. +- * src/Makefile.am (sources): Remove demangle.cc. +- * src/Makefile.in: Regenerate. +- * include/Makefile.am (bits_headers): Move demangle.h. +- (ext_headers): ...here. +- * include/Makefile.in: Regenerate. +- * include/bits/demangle.h: Move... +- * include/ext/demangle.h: ...here. +- * src/demangle.cc: Remove. +- +-2004-02-26 Benjamin Kosnik +- +- * include/bits/demangle.h: Add type template parameter to all +- templates with just an Allocator template parameter. +- +-2004-02-25 Benjamin Kosnik +- +- * include/bits/atomicity.h: New, forward declarations for __atomic_add +- and __exchange_and_add. +- * config/cpu/generic/atomic_word.h: New, typdef for atomic word. +- * config/cpu/cris/atomic_word.h: Same. +- * config/cpu/sparc/atomic_word.h: Same. +- * include/bits/ios_base.h (_Callback_list::_M_remove_reference): +- Qualifiy with __gnu_cxx. +- (_Callback_list::_M_add_reference): Same. +- * include/bits/locale_classes.h (locale::facet::_M_add_reference): Add. +- (locale::facet::_M_remove_reference): Same. +- (locale::_Impl::_M_add_reference): Add. +- (locale::_Impl::_M_remove_reference): Same. +- * include/bits/basic_string.h (basic_string::_Rep::_M_refcopy): Same. +- (basic_string::_Rep::_M_dispose): Same. +- * src/ios.cc (ios_base::xalloc): Same. +- * src/ios_init.cc (ios_base::Init::Init): Same. +- (ios_base::Init::~Init): Same. +- * src/locale.cc (locale::id::_M_id): Same. +- * config/cpu/i486/atomicity.h: Use __gnu_cxx namespace. Remove +- static, and inline keywords. +- * config/cpu/alpha/atomicity.h: Same. +- * config/cpu/cris/atomicity.h: Same. +- * config/cpu/generic/atomicity.h: Same. +- * config/cpu/hppa/atomicity.h: Same. +- * config/cpu/i386/atomicity.h: Same. +- * config/cpu/ia64/atomicity.h: Same. +- * config/cpu/m68k/atomicity.h: Same. +- * config/cpu/mips/atomicity.h: Same. +- * config/cpu/powerpc/atomicity.h: Same. +- * config/cpu/s390/atomicity.h: Same. +- * config/cpu/sparc/atomicity.h: Same. +- +- * src/Makefile.am (host_sources): Add atomicity.cc. +- (atomicity.cc): New rule. +- * src/Makefile.in: Regenerate. +- * include/Makefile.am (host_headers): Remove host atomicity.h. +- (host_headers): Add atomic_word.h. +- (bits_headers): Add bits atomicity.h. +- Change ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR. +- * include/Makefile.in: Regenerate. +- * configure.host (atomic_word_dir): Add. +- * configure.ac: Substitute ATOMIC_WORD_SRCDIR. Change +- ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR. +- * configure: Regenerate. +- * config/linker-map.gnu: Export __exchange_and_add, and __atomic_add. +- +- * testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust line numbers. +- * testsuite/27_io/ios_base/cons/copy_neg.cc: Same. +- +-2004-02-25 Jonathan Wakely +- +- * docs/html/20_util/howto.html, docs/html/20_util/allocator.html, +- docs/html/ext/howto.html, docs/html/ext/mt_allocator.html: +- Fix markup, more tags. +- +-2004-02-25 Carlo Wood +- +- * bits/demangle.h +- namespace __gnu_cxx::demangler +- (session::qualifier_list_Allocator): Add +- (session::M_qualifier_list_alloc): Add +- (session::decode_type_with_postfix): +- Use M_qualifier_list_alloc instead of calling operator new/delete. +- +-2004-02-24 Paolo Carlini +- +- PR libstdc++/14252 +- * include/bits/postypes.h (class streamoff): Add operator++(), +- operator++(int), operator--() and operator--(int). +- * testsuite/27_io/fpos/14252.cc: New. +- +-2004-02-24 Richard Sandiford +- +- * include/bits/locale_facets.tcc (num_get::_M_extract_int): Fix bounds +- error in handling of hex constants. +- +-2004-02-24 Paolo Carlini +- +- * include/bits/locale_facets.tcc (money_put<>::_M_insert): +- Prefer basic_string::append to operator+= and a temporary. +- +-2004-02-23 Benjamin Kosnik +- +- * libsupc++/vterminate.cc (__gnu_cxx::__verbose_terminate_handler): +- Only use fputs, not write. +- +-2004-02-23 Benjamin Kosnik +- +- * include/ext/malloc_allocator.h: Add operators ==, !=. +- * include/ext/new_allocator.h: Add operators ==, !=. +- * include/ext/mt_allocator.h (__mt_alloc::tune): New. +- (__mt_alloc::_S_get_options): New. +- (__mt_alloc::_S_set_options): New. +- (__mt_alloc::_S_thread_key_destr): To _S_destroy_thread_key. +- (__mt_alloc::_S_no_of_bins): To _S_bin_size. +- Move functions out of line, simplify, format. +- * src/allocator.cc: Simplify explicit instantiations. +- * include/bits/allocator.h: Tweak. +- +-2004-02-22 Paolo Carlini +- +- * include/bits/locale_facets.tcc (money_put<>::_M_insert): +- Restructure formatting of value component, first dealing with +- the non-decimal digits; use reserve. +- +-2004-02-22 Paolo Carlini +- +- * include/bits/locale_facets.h (class money_get): Inherit +- from money_base too; tweak declaration of _M_extract, now +- parameterized on _Intl too. +- * include/bits/locale_facets.tcc (money_get<>::_M_extract): +- Update definition to use the cache; call reserve on __res to +- avoid multiple reallocations; fix parsing of sign component +- according to 22.2.6.1.2, p3. +- (money_get<>::do_get(long double&), +- money_get<>::do_get(string_type&)): Update calls of _M_extract. +- * src/locale-inst.cc: Add instantiations of +- money_get::_M_extract and money_get::_M_extract. +- * testsuite/22_locale/money_get/get/char/14.cc: New. +- * testsuite/22_locale/money_get/get/wchar_t/14.cc: Ditto. +- +-2004-02-21 Mark Mitchell +- +- * libsupc++/vterminate.cc +- (__gnu_cxx::__verbose_terminate_handler): Guard against recursive +- calls to terminate. +- * src/demangle.cc (__cxa_demangle): Wrap in try-catch block. +- +- * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do +- not set RLIMIT_AS on HP-UX. +- +-2004-02-21 Mark Mitchell +- +- * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do +- not set RLIMIT_AS on HP-UX. +- +-2004-02-21 Paolo Carlini +- +- * include/bits/locale_facets.h (class money_base): Add { _S_minus, +- _S_zero, _S_end } enum, _S_atoms. +- (struct __moneypunct_cache<>): Parameterize on _Intl too; add +- _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, +- _M_negative_sign_size, _M_atoms; tweak constructor consistently. +- (__moneypunct_cache<>::~__moneypunct_cache): Update. +- (__moneypunct_cache<>::_M_cache): Fill the cache. +- (class moneypunct): Tweak __cache_type typedef. +- (class money_put): Inherit from money_base too; tweak declaration +- of _M_insert, now parameterized on _Intl. +- * include/bits/locale_facets.tcc +- (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. +- (money_put<>::_M_insert): Update definition to use the cache; +- call reserve on __res to avoid multiple reallocations. +- (money_put<>::do_put(long double), +- money_put<>::do_put(const string_type&): Update calls of _M_insert. +- * config/locale/generic/monetary_members.cc +- (moneypunct::_M_initialize_moneypunct, +- moneypunct::_M_initialize_moneypunct, +- moneypunct::_M_initialize_moneypunct, +- moneypunct::_M_initialize_moneypunct): Update. +- * config/locale/gnu/monetary_members.cc: Likewise. +- * config/locale/gnu/monetary_members.cc +- (moneypunct::~moneypunct(), +- moneypunct::~moneypunct()): Likewise. +- * src/globals_locale.cc: Tweak fake_money_cache_c. +- * src/locale-inst.cc: Add instantiations for +- money_put::_M_insert and money_put::_M_insert and +- __moneypunct_cache, __moneypunct_cache. +- * src/locale_facets.cc: Define money_base::_S_atoms. +- * src/locale_init.cc: Update placement new of +- __moneypunct_cache, __moneypunct_cache, +- __moneypunct_cache, __moneypunct_cache. +- +- * config/locale/generic/numeric_members.cc: Clean up. +- * config/locale/gnu/numeric_members.cc: Likewise. +- * testsuite/22_locale/money_put/put/char/1.cc: Likewise. +- * testsuite/22_locale/money_put/put/char/2.cc: Likewise. +- * testsuite/22_locale/money_put/put/char/3.cc: Likewise. +- * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. +- * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. +- * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. +- +-2004-02-20 Mark Mitchell +- +- * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc: Open +- FIFO for writing with ios_base::in|ios_base::out. +- * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise. +- * testsuite/27_io/objects/char/7.cc: Likewise. +- * testsuite/27_io/objects/char/9661-1.cc: Open FIFO for writing +- with "r+". +- +-2004-02-19 David Edelsohn +- +- * 22_locale/collate/compare/wchar_t/2.cc: Change input-charset +- from iso-8859-1 to ISO8859-1. +- * 22_locale/collate/compare/wchar_t/wrapped_env.cc: Same. +- * 22_locale/collate/compare/wchar_t/wrapped_locale.cc: Same. +- * 22_locale/collate/hash/wchar_t/2.cc: Same. +- * 22_locale/collate/hash/wchar_t/wrapped_env.cc: Same. +- * 22_locale/collate/hash/wchar_t/wrapped_locale.cc: Same. +- * 22_locale/collate/transform/wchar_t/2.cc: Same. +- * 22_locale/collate/transform/wchar_t/wrapped_env.cc: Same. +- * 22_locale/collate/transform/wchar_t/wrapped_locale.cc: Same. +- +-2004-02-18 Paolo Carlini +- +- * include/bits/locale_facets.h (money_get<>::_M_extract): +- New, helper for do_get. +- (money_put<>::_M_insert): Likewise, for do_put. +- * include/bits/locale_facets.tcc (money_get<>::_M_extract, +- money_put<>::_M_insert): Define. +- (money_get<>::do_get(long double&), money_get<>::do_get( +- string_type&), money_put::do_put(long double), +- money_put::do_put(const string_type&)): Use the helpers. +- +-2004-02-18 Paolo Carlini +- +- * config/io/basic_file_stdio.cc (__gnu_internal::xwritev): +- Rewrite, avoiding recursion. +- (__gnu_internal::xwrite): Minor tweaks. +- +-2004-02-17 Stefan Olsson +- +- * include/ext/mt_allocator.h: Removed the last +- pointer. Deallocated blocks are now added to the front of +- freelists as proposed by Felix Yen. This gives roughly 10% +- performance boost and saves some memory. +- * docs/html/ext/mt_allocator.html: Change due to that deallocated +- blocks now are added to the front of freelists. The reason to this +- approach is also explained. +- +-2004-02-17 Paolo Carlini +- +- * include/bits/locale_facets.tcc (num_get<>::_M_extract_float, +- num_get<>::_M_extract_int, money_get<>::do_get): Simplify +- grouping fidelity conditional. +- +-2004-02-16 Paolo Carlini +- +- * testsuite/27_io/basic_filebuf/overflow/char/13858.cc: +- Qualify exception with std::. +- * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Ditto. +- * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto. +- * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto. +- * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto. +- * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto. +- +-2004-02-16 Paolo Carlini +- +- * testsuite/ext/enc_filebuf/char/13189.cc: Don't check +- for now that the catch block is not reached. +- * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Likewise. +- +-2004-02-16 Paolo Carlini +- +- * include/bits/locale_facets.tcc (money_get::do_get(string_type&)): +- Fix parsing of the remaining sign characters. +- * 22_locale/money_get/get/char/2.cc: Tweak: now, correctly, +- the input is scanned 'til eof. +- * 22_locale/money_get/get/char/4.cc: Likewise. +- * 22_locale/money_get/get/wchar_t/2.cc: Likewise. +- * 22_locale/money_get/get/wchar_t/4.cc: Likewise. +- * 22_locale/money_get/get/char/8.cc: Tweak: override do_neg_format, +- not do_pos_format: the former is the only one that matters during +- input. +- * 22_locale/money_get/get/wchar_t/8.cc: Likewise. +- +- * 22_locale/money_get/get/char/6.cc: Minor tweak. +- * 22_locale/money_get/get/wchar_t/6.cc: Likewise. +- +-2004-02-15 David Asher +- +- PR libstdc++/11352 +- * include/bits/locale_facets.tcc (__pad<>::_S_pad): Don't +- access __olds beyond __oldlen. +- +-2004-02-14 Paolo Carlini +- +- * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Make +- sure the exception is actually thrown. +- * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto. +- * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto. +- * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto. +- +-2004-02-14 Paolo Carlini +- +- PR libstdc++/13858 +- * include/bits/fstream.tcc (basic_filebuf<>::_M_convert_to_external): +- In case of conversion errors, throw ios_failure; simplify. +- * testsuite/27_io/basic_filebuf/overflow/char/13858.cc: New. +- * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto. +- * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Tweak, +- previously we didn't throw in case of conversion errors, instead +- just returned eof(). +- * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto. +- * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto. +- * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto. +- +- * include/bits/fstream.tcc (basic_filebuf<>::overflow): +- Trivial simplification of a conditional. +- +-2004-02-12 Paolo Carlini +- +- PR libstdc++/13731 (final part: writev) +- * config/io/basic_file_stdio.cc (__gnu_internal::xwritev): +- New, a wrapper around writev() handling partial writes. +- (__basic_file::xwrite): Move to __gnu_internal and make +- static. +- (__basic_file::xsputn): Update call. +- (__basic_file::xsputn_2): Likewise. +- * config/io/basic_file_stdio.h (__basic_file::xwrite): +- Don't declare, now static. +- +-2004-02-11 Stefan Olsson +- +- * docs/html/ext/mt_allocator.html: New. +- +-2004-02-11 Benjamin Kosnik +- +- * docs/html/20_util/allocator.html: New file, consolidate +- allocator information here. Revamp. +- * docs/html/documentation.html: Change links. +- * docs/html/20_util/howto.html: Same. +- * docs/html/ext/howto.html: Same. +- +-2004-02-11 Paolo Carlini +- +- PR libstdc++/13731 (first part: write) +- * config/io/basic_file_stdio.h (__basic_file::xwrite): +- New, declare. +- * config/io/basic_file_stdio.cc (__basic_file::xwrite): +- Define it: a wrapper around write() handling partial write. +- (__basic_file::xsputn): Use it. +- (__basic_file::xsputn_2): Likewise. +- +-2004-02-11 Paolo Carlini +- Petur Runolfsson +- +- PR libstdc++/14078 +- * include/std/std_istream.h (operator>>(__istream_type& (*) +- (__istream_type&)), operator>>(__ios_type& (*)(__ios_type&)), +- operator>>(ios_base& (*)(ios_base&))): Declare inline. +- * include/std/std_ostream.h (operator<<(__ostream_type& (*) +- (__ostream_type&)), operator<<(__ios_type& (*)(__ios_type&)), +- operator<<(ios_base& (*) (ios_base&))): Likewise. +- * testsuite/performance/27_io/fmtflags_manipulators.cc: New. +- +-2004-02-10 Loren J. Rittle +- +- PR libstdc++/14098 +- * config/linker-map.gnu: Add typeinfo and typeinfo name for +- __gnu_cxx::stdio_sync_filebuf >. +- +- PR libstdc++/14097 +- * config/linker-map.gnu: Add typeinfo and typeinfo name for +- __gnu_cxx::stdio_filebuf >. +- +-2004-02-09 Loren J. Rittle +- +- * include/ext/pool_allocator.h: Include c++config.h. +- +-2004-02-09 Stefan Olsson +- +- * include/ext/mt_allocator.h: thread_id is unused in non threaded +- applications and now has a ifdef to remove it completely on +- compilers without thread support. Include stdlib.h due to a +- compiler warning on getenv(). +- +-2004-02-09 Paul Brook +- +- * libstdc++-v3/configure.host: Explicitly check for atomicity.h file. +- +-2004-02-09 Paolo Carlini +- +- PR libstdc++/14071 +- * src/locale_init.cc (locale::global(const locale&)): Use +- locale::name() in order to decide whether calling setlocale. +- * testsuite/22_locale/locale/global_locale_objects/14071.cc: New. +- +- * include/bits/locale_classes.h (locale::_Impl::_M_check_same_name()): +- Avoid computing &= unnecessarily. +- +-2004-02-09 James E Wilson +- +- PR libstdc++/5625 +- * libsuspc++/eh_personality.cc (PERSONALITY_FUNCTION): Use +- __builtin_extend_pointer. +- +-2004-02-09 Paolo Carlini +- +- PR libstdc++/14072 +- * include/bits/basic_ios.tcc (basic_ios<>::_M_cache_locale): +- Don't leave dangling pointers. +- * testsuite/27_io/basic_ios/imbue/14072.cc: New. +- * testsuite/22_locale/numpunct/members/pod/2.cc: Tweak, the num_put +- facet is needed in the final test. +- +-2004-02-09 Bernardo Innocenti +- +- * crossconfig.m4: Don't enable _GLIBCXX_USE_LFS on *-uclinux*. +- * configure: Regenerate. +- +-2004-02-08 Richard Henderson +- +- PR libstdc++/14026 +- * libsupc++/eh_catch.cc (__cxa_begin_catch): Don't adjust +- uncaughtExceptions during nested catch rethrow. +- * testsuite/18_support/14026.cc: New. +- +-2004-02-08 Paolo Carlini +- +- * include/bits/basic_string.tcc (assign(const _CharT*, size_type)): +- When working in place remember to set the state to sharable +- (otherwise, _M_mutate does it). +- +-2004-02-08 Bernardo Innocenti +- +- * include/bits/allocator.h, include/bits/basic_ios.h, +- include/bits/basic_ios.tcc, include/bits/basic_string.h, +- include/bits/basic_string.tcc, include/bits/boost_concept_check.h, +- include/bits/char_traits.h, include/bits/codecvt.h, +- include/bits/concurrence.h, include/bits/cpp_type_traits.h, +- include/bits/demangle.h, include/bits/deque.tcc, +- include/bits/fstream.tcc, include/bits/functexcept.h, +- include/bits/gslice.h, include/bits/gslice_array.h, +- include/bits/indirect_array.h, include/bits/ios_base.h, +- include/bits/istream.tcc, include/bits/list.tcc, +- include/bits/locale_classes.h, include/bits/locale_facets.h, +- include/bits/locale_facets.tcc, include/bits/localefwd.h, +- include/bits/mask_array.h, include/bits/ostream.tcc, +- include/bits/postypes.h, include/bits/slice_array.h, +- include/bits/sstream.tcc, include/bits/stl_algo.h, +- include/bits/stl_algobase.h, include/bits/stl_bvector.h, +- include/bits/stl_construct.h, include/bits/stl_deque.h, +- include/bits/stl_function.h, include/bits/stl_heap.h, +- include/bits/stl_iterator.h, include/bits/stl_iterator_base_funcs.h, +- include/bits/stl_list.h, include/bits/stl_map.h, +- include/bits/stl_multimap.h, include/bits/stl_multiset.h, +- include/bits/stl_numeric.h, include/bits/stl_pair.h, +- include/bits/stl_queue.h, include/bits/stl_raw_storage_iter.h, +- include/bits/stl_relops.h, include/bits/stl_set.h, +- include/bits/stl_stack.h, include/bits/stl_tempbuf.h, +- include/bits/stl_threads.h, include/bits/stl_tree.h, +- include/bits/stl_uninitialized.h, include/bits/stl_vector.h, +- include/bits/stream_iterator.h, include/bits/streambuf.tcc, +- include/bits/streambuf_iterator.h,include/bits/stringfwd.h, +- include/bits/type_traits.h, include/bits/valarray_after.h, +- include/bits/valarray_array.h, include/bits/valarray_array.tcc, +- include/bits/valarray_before.h, include/bits/vector.tcc: Remove +- trailing whitespace. +- +-2004-02-06 Paolo Carlini +- +- * include/bits/basic_string.h: Fix comment. +- +-2004-02-06 Paolo Carlini +- +- * include/bits/stl_construct.h: Wrap overlong lines, reformat +- according to the coding standards. +- * include/bits/stl_pair.h: Likewise. +- * include/bits/stl_raw_storage_iter.h: Likewise. +- * include/bits/stl_stack.h: Likewise. +- * include/bits/stl_uninitialized.h: Likewise. +- * include/bits/stream_iterator.h: Likewise. +- * include/bits/streambuf_iterator.h: Likewise. +- * include/bits/type_traits.h: Likewise. +- +-2004-02-06 Paolo Carlini +- +- * testsuite/27_io/basic_filebuf/open/char/9507.cc: +- Adjust timings. +- +-2004-02-05 Loren J. Rittle +- +- * scripts/check_performance: Support PCH. +- +- * scripts/check_performance (CXX): Add -DNOTHREAD. +- * testsuite/performance/20_util/allocator/insert.cc: Integrate +- threaded tests from insert_insert.cc. Tweak iterations, +- remove special cases. +- * testsuite/performance/20_util/allocator/insert_insert.cc: +- Make all tests single-threaded. Tweak iterations. +- * testsuite/performance/20_util/allocator/map_thread.cc: +- Tweak iterations. +- * testsuite/performance/20_util/allocator/producer_consumer.cc: +- Likewise. +- +-2004-02-05 Geoffrey Keating +- +- PR 12179 +- * .cvsignore: New. +- * acinclude.m4 (GLIBCXX_EXPORT_INSTALL_INFO): Use 'gcc', not +- 'gcc-lib'. Add comment about poorly-named variables. +- * aclocal.m4: Regenerate. +- * configure: Regenerate. +- +-2004-02-05 Paolo Carlini +- +- * include/bits/locale_facets.tcc (money_get::do_get(string_type&)): +- Thousands-sep are always optional; thousands-sep are not allowed +- after the decimal_point. +- * testsuite/22_locale/money_get/get/char/12.cc: New. +- * testsuite/22_locale/money_get/get/char/13.cc: New. +- * testsuite/22_locale/money_get/get/wchar_t/12.cc: New. +- * testsuite/22_locale/money_get/get/wchar_t/13.cc: New. +- +- * testsuite/22_locale/money_get/get/char/1.cc: Clean-up. +- * testsuite/22_locale/money_get/get/char/2.cc: Likewise. +- * testsuite/22_locale/money_get/get/char/3.cc: Likewise. +- * testsuite/22_locale/money_get/get/char/4.cc: Likewise. +- * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise. +- * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise. +- * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise. +- * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise. +- +- * testsuite/22_locale/money_get/get/char/9.cc: Fix citation from +- the standard. +- * testsuite/22_locale/money_get/get/wchar_t/9.cc: Likewise. +- +-2004-02-05 Richard Sandiford +- +- * config/os/irix/irix6.5/os_defines.h (_GLIBCXX_FIONREAD_TAKES_OFF_T): +- Define. +- * config/io/basic_file_stdio.cc (__basic_file::showmanyc): Use +- it to decide whether FIONREAD should take an off_t or int argument. +- +-2004-02-05 Paolo Carlini +- +- * include/bits/stl_function.h: Minor formatting changes. +- +-2004-02-04 Zack Weinberg +- +- Revert previous change to config/abi/*/baseline_symbols.txt. +- +-2004-02-04 Benjamin Kosnik +- Zack Weinberg +- +- * config/io/basic_file_stdio.cc (__gnu_internal::fopen_mode): +- New function. +- (__basic_file::sys_open, __basic_file::open): Use it. +- (__basic_file::_M_open_mode): Delete. +- * config/io/basic_file_stdio.cc: Delete declaration of _M_open_mode. +- +- * testsuite/27_io/basic_filebuf/close/char/9964.cc +- * testsuite/27_io/basic_filebuf/open/char/9507.cc: +- Correct flags to filebuf::open calls. +- +- * config/abi/alpha-freebsd5/baseline_symbols.txt +- * config/abi/alpha-linux-gnu/baseline_symbols.txt +- * config/abi/hppa-linux-gnu/baseline_symbols.txt +- * config/abi/i386-freebsd4/baseline_symbols.txt +- * config/abi/i386-freebsd5/baseline_symbols.txt +- * config/abi/i486-linux-gnu/baseline_symbols.txt +- * config/abi/ia64-linux-gnu/baseline_symbols.txt +- * config/abi/mips-linux-gnu/baseline_symbols.txt +- * config/abi/sparc-freebsd5/baseline_symbols.txt +- * config/abi/sparc-linux-gnu/baseline_symbols.txt +- * config/abi/x86_64-linux-gnu/baseline_symbols.txt: +- Remove entry for __basic_file::_M_open_mode. +- +-2004-02-04 Loren J. Rittle +- +- * testsuite/performance/20_util/allocator/insert.cc (main): Tweak. +- +-2004-02-04 Felix Yen +- +- * testsuite/performance/20_util/producer_consumer.cc: New. +- * testsuite/performance/20_util/allocator/insert_insert.cc: Two loops. +- +-2004-02-04 Benjamin Kosnik +- +- * testsuite/performance/20_util/allocator.cc: Move to.. +- * testsuite/performance/20_util/allocator/insert.cc: ...here. +- * testsuite/performance/20_util/allocator_thread.cc: Move to... +- * testsuite/performance/20_util/allocator/insert_insert.cc: ...here. +- * testsuite/performance/20_util/allocator_map_thread.cc: Move to... +- * testsuite/performance/20_util/allocator/map_thread.cc: ...here. +- +-2004-02-04 Jonathan Wakely +- +- * docs/html/faq/index.html: Recommend using LD_LIBRARY_PATH. +- * docs/html/faq/index.txt: Regenerate. +- +-2004-02-04 Dhruv Matani +- +- * include/ext/debug_allocator.h: _M_extra now stands for the +- number of extra objects instead of the number of extra bytes. +- (debug_allocator::allocate): Adjust. +- (debug_allocator::deallocate): Adjust. +- +- * include/ext/pool_allocator.h: Fix typo. +- +-2004-02-03 Felix Yen +- Benjamin Kosnik +- +- * testsuite/performance/20_util/allocator.cc: Add map, +- deque, set tests. +- * testsuite/performance/20_util/allocator_thread.cc: Same. +- +-2004-02-03 Paolo Carlini +- +- * include/bits/basic_string.h (insert(iterator)): Remove, +- non-standard and already scheduled for removal. +- +-2004-02-03 Paolo Carlini +- +- * include/bits/stl_iterator_base_funcs.h: Minor formatting +- and indentation tweaks. +- * include/bits/stl_iterator_base_types.h: Likewise. +- * include/bits/stl_list.h: Likewise. +- * include/bits/stl_map.h: Likewise. +- * include/bits/stl_tempbuf.h: Likewise. +- +-2004-02-02 Jerry Quinn +- +- * include/bits/gslice.h, include/bits/gslice_array.h, +- include/bits/indirect_array.h, include/bits/mask_array.h, +- include/bits/slice_array.h, include/bits/stl_numeric.h, +- include/std/std_valarray.h: Update copyright years. +- +-2004-02-02 Jerry Quinn +- +- * include/bits/gslice.h (gslice): Document. +- * include/bits/gslice_array.h (gslice_array): Document. +- * include/bits/indirect_array (indirect_array): Document. +- * include/bits/mask_array (mask_array): Document. +- * include/bits/slice_array.h (slice,slice_array): Document. +- * include/bits/stl_numeric.h (accumulate, inner_product, partial_sum, +- adjacent_difference): Document +- * include/std/std_valarray.h (valarray): Document. +- +-2004-02-02 Benjamin Kosnik +- +- * docs/html/19_diagnostics/howto.html: Move verbose terminate +- documentation... +- * docs/html/18_support/howto.html: Here. +- * docs/html/documentation.html: Add reference here. +- +-2004-02-02 Paolo Carlini +- +- * config/locale/gnu/c++locale_internal.h: Remove prototypes +- of no longer used GLIBC thread locale functions. +- +-2004-02-02 Eric Christopher +- Zack Weinberg +- +- * testsuite/22_locale/collate/compare/wchar_t/2.cc: Remove xfail. Use +- -finput-charset. +- * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc: Ditto. +- * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc: Ditto +- * testsuite/22_locale/collate/hash/wchar_t/2.cc: Ditto. +- * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc: Ditto. +- * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc: Ditto. +- * testsuite/22_locale/collate/transform/wchar_t/2.cc: Ditto. +- * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc: Ditto. +- * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc: +- Ditto. +- +-2004-02-02 Paolo Carlini +- +- * include/bits/stl_function.h: Additional minor tweaks. +- * include/bits/stl_multiset.h: Likewise. +- +- * include/bits/stl_queue.h: Minor tweaks. +- +-2004-02-02 Paolo Carlini +- +- PR libstdc++/13976 (continued) +- * include/ext/malloc_allocator.h (malloc_allocator::deallocate): +- Make the second parameter unnamed, to void unused parameter +- warnings. +- * include/ext/new_allocator.h (new_allocator::deallocate): Ditto. +- +-2004-02-02 Paolo Carlini +- +- PR libstdc++/13976 +- * include/ext/malloc_allocator.h (malloc_allocator::allocate): +- Make the second parameter unnamed, to void unused parameter +- warnings. +- * include/ext/mt_allocator.h (__mt_alloc::allocate): Ditto. +- * include/ext/new_allocator.h (new_allocator::allocate): Ditto. +- +-2004-02-01 Paolo Carlini +- +- * include/bits/stl_algo.h: Additional minor tweaks. +- * include/bits/stl_map.h: Likewise. +- * include/bits/stl_multimap.h: Likewise. +- * include/bits/stl_multiset.h: Likewise. +- * include/bits/stl_set.h: Likewise. +- * include/bits/stl_tree.h: Likewise. +- +-2004-02-01 Paolo Carlini +- +- * include/bits/vector.tcc (vector::_M_insert_aux(iterator)): +- Remove, unused. +- +-2004-02-01 Paolo Carlini +- +- * include/bits/stl_function.h: Additional minor tweaks. +- +-2004-02-01 Paolo Carlini +- +- * include/bits/deque.tcc: Wrap overlong lines, constify +- a few variables, reformat according to the coding standards. +- * include/bits/list.tcc: Likewise. +- * include/bits/stl_deque.h: Likewise. +- * include/bits/stl_function.h: Likewise. +- * include/bits/stl_iterator.h: Likewise. +- * include/bits/stl_iterator_base_funcs.h: Likewise. +- * include/bits/stl_iterator_base_types.h: Likewise. +- * include/bits/stl_list.h: Likewise. +- * include/bits/stl_map.h: Likewise. +- * include/bits/stl_multimap.h: Likewise. +- * include/bits/stl_multiset.h: Likewise. +- * include/bits/stl_relops.h: Likewise. +- * include/bits/stl_set.h: Likewise. +- +-2004-02-01 Paolo Carlini +- +- * include/bits/stl_bvector.h: Wrap overlong lines, constify +- a few variables, reformat according to the coding standards. +- * include/bits/stl_tree.h: Likewise. +- +-2004-01-31 Paolo Carlini +- +- * include/bits/stl_algo.h: Minor additional reformat, add +- copyright year. +- * include/bits/stl_algobase.h: Add copyright year. +- +-2004-01-31 Paolo Carlini +- +- * include/bits/stl_algo.h: Wrap overlong lines, constify +- a few variables, reformat according to the coding standards. +- * include/bits/stl_algobase.h: Likewise. +- * include/bits/stl_heap.h: Likewise. +- +-2004-01-31 Paolo Carlini +- +- * include/bits/basic_string.h (_Rep::operator[]): Remove, unused. +- +- * include/bits/basic_string.h: Fix two comments. +- +-2004-01-31 Per Bothner +- +- * include/ext/mt_allocator.h +- (__mt_alloc::_S_thread_freelist_mutex): Guard with +- __GTHREAD_MUTEX_INIT. +- +-2004-01-31 Paolo Carlini +- +- * include/bits/basic_string.tcc (_Rep::_S_create): Minor tweak. +- +-2004-01-30 Paolo Carlini +- +- * testsuite/21_strings/basic_string/cons/char/6.cc: New. +- * testsuite/21_strings/basic_string/cons/wchar_t/6.cc: New. +- * testsuite/performance/21_strings/string_cons_input_iterator.cc: New. +- +-2004-01-30 Felix Yen +- +- * testsuite/performance/20_util/allocator_thread.cc (do_loop): +- Don't use clear, but instead assign. Use insert. +- +-2004-01-30 Benjamin Kosnik +- +- * src/demangle.cc: Add instantiations. +- * src/Makefile.am: Remove special rules for demangle.lo, demangle.o. +- * src/Makefile.in: Regenerate. +- +-2004-01-30 David Edelsohn +- +- * src/allocator.cc: Protect _S_get_thread_id() and +- _S_thread_key_destr() with #ifdef __GTHREADS. +- +-2004-01-30 Paolo Carlini +- +- Reshuffle performance testsuite. +- * testsuite/performance/allocator.cc, allocator_map_thread.cc, +- allocator_thread.cc, complex_norm.cc, container_benchmark.cc, +- cout_insert_int.cc, filebuf_copy.cc, filebuf_sputc.cc, +- fstream_seek_write.cc, ifstream_extract_float.cc, +- ifstream_extract_int.cc, ifstream_getline.cc, is_wchar_t.cc, +- list_create_fill_sort.cc, map_create_fill.cc, +- narrow_widen_char.cc, narrow_widen_wchar_t.cc, +- ofstream_insert_float.cc, ofstream_insert_int.cc, +- string_append.cc, wchar_t_in.cc, wchar_t_length.cc, +- wchar_t_out.cc: Split into... +- * testsuite/performance/20_util/allocator.cc: New. +- * testsuite/performance/20_util/allocator_map_thread.cc: New. +- * testsuite/performance/20_util/allocator_thread.cc: New. +- * testsuite/performance/21_strings/string_append: New. +- * testsuite/performance/22_locale/is_wchar_t.cc: New. +- * testsuite/performance/22_locale/narrow_widen_char.cc: New. +- * testsuite/performance/22_locale/narrow_widen_wchar_t.cc: New. +- * testsuite/performance/22_locale/wchar_t_in.cc: New. +- * testsuite/performance/22_locale/wchar_t_length.cc: New. +- * testsuite/performance/22_locale/wchar_t_out.cc: New. +- * testsuite/performance/23_containers/container_benchmark.cc: New. +- * testsuite/performance/23_containers/list_create_fill_sort.cc: New. +- * testsuite/performance/23_containers/map_create_fill.cc: New. +- * testsuite/performance/26_numerics/complex_norm.cc: New. +- * testsuite/performance/27_io/cout_insert_int.cc: New. +- * testsuite/performance/27_io/filebuf_copy.cc: New. +- * testsuite/performance/27_io/filebuf_sputc.cc: New. +- * testsuite/performance/27_io/fstream_seek_write.cc: New. +- * testsuite/performance/27_io/ifstream_extract_float.cc: New. +- * testsuite/performance/27_io/ifstream_extract_int.cc: New. +- * testsuite/performance/27_io/ifstream_getline.cc: New. +- * testsuite/performance/27_io/ofstream_insert_float.cc: New. +- * testsuite/performance/27_io/ofstream_insert_int.cc: New. +- +-2004-01-30 Paolo Carlini +- +- * include/bits/basic_string.tcc (_Rep::_S_create): +- Never allocate a string bigger than max_size(); always keep +- __capacity and __size in sync to avoid memory leaks at +- deallocation time. +- +-2004-01-30 Paolo Carlini +- +- * include/bits/basic_string.tcc (_S_construct(_InIterator, +- _InIterator, const _Alloc&, input_iterator_tag)): Simplify +- the double loop, streamline. +- +- * include/bits/basic_string.tcc: Very minor tweaks. +- +-2004-01-30 Loren J. Rittle +- +- * scripts/check_performance: Only compile with $THREAD_FLAG +- when test is marked to require it. Allow multiple +- compilations/executions of marked tests. +- * testsuite/testsuite_performance.h (report_performance): +- Report dynamic thread support status. +- (report_header): Likewise. +- * testsuite/performance/allocator.cc: Stabilize iteration +- count. Support more allocators. Mark each allocator test to +- run and report independently. +- * testsuite/performance/allocator_map_thread.cc: Likewise. +- * testsuite/performance/allocator_thread.cc: Likewise. +- +-2004-01-29 Stephen M. Webb +- +- * config/local/generic/c_locale.h: Change ::malloc() to new char[]. +- * config/local/gnu/c_locale.h: Change ::malloc() to new char[]. +- * include/bits/stl_tempbuf.h: Convert _Temporary_buffer to use +- std::get_temporary_buffer() instead of duplicating its code. +- Update to C++STYLE conventions. +- * include/std/std_memory.h (get_temporary_buffer): Use ::operator +- new() instead of std::malloc(). +- (return_temporary_buffer): Use ::operator delete() instead of +- std::free(). +- +-2004-01-29 Benjamin Kosnik +- +- * include/bits/allocator.h: Temporary switch to new_allocator as +- the default to unjam bootstraps. +- +-2004-01-28 Benjamin Kosnik +- +- * include/Makefile.am (bits_headers): Remove allocator_traits.h. +- * include/Makefile.in: Regenerate. +- * include/bits/allocator_traits.h: Remove. +- * include/bits/allocator.h: Remove allocator_traits.h include, and +- relevant comments. +- (allocator): Empty base class, inherit from the underlying allocator. +- * src/allocator-inst.cc: Move __pool_alloc instantiation to... +- * src/allocator.cc: ...here. New. For the underlying allocators. +- Add __mt_alloc, __pool_alloc, new_allocator, malloc_allocator bits. +- * config/linker-map.gnu: Remove __pool_alloc bits. +- * src/Makefile.am (sources): Add allocator.cc. +- * src/Makefile.in: Regenerate. +- * testsuite/20_util/allocator/1.cc: Split second test into... +- * testsuite/20_util/allocator/8230.cc: ...this. +- * include/bits/stl_bvector.h (__gnu_norm): Change bit_vector +- typedef to use std::allocatore. Format. +- * include/ext/pool_allocator.h: Remove allocator_traits.h include, +- _Alloc_traits. +- * include/ext/mt_allocator.h (__gnu_cxx): Qualify +- __throw_bad_alloc calls. Don't include . +- * include/ext/malloc_allocator.h: Remove include. +- * include/ext/new_allocator.h (new_allocator): Same. +- * include/ext/ropeimpl.h (__gnu_cxx): Remove __alloc using +- declaration. Switch __alloc to _Alloc. +- * include/ext/hashtable.h: Remove __alloc. +- * include/backward/alloc.h: Only inject allocator, not +- implementation details. +- +- * include/ext/mt_allocator.h: Replace free with delete. +- +-2004-01-28 Benjamin Kosnik +- +- * src/globals_io.cc: Change to __gnu_internal namespace. +- * src/globals_locale.cc: Same. +- * src/locale_init.cc: Same. +- * src/ios_init.cc: Same. +- +-2004-01-28 Stefan Olsson +- +- * include/ext/mt_allocator.h: Replaced all malloc() calls with +- operator new(). Added support for the env variable +- GLIBCXX_FORCE_NEW (this required the _S_init call to be the first +- one in allocate() as well). Fix typos. +- +-2004-01-28 Paolo Carlini +- +- * include/bits/basic_string.h (_S_create(size_t, +- const _Alloc&): Change signature to take two size_type +- arguments. +- * include/bits/basic_string.tcc (_S_construct(_InIterator, +- _InIterator, const _Alloc&, input_iterator_tag)): Update +- call, tweak a bit. +- (_S_construct(_InIterator, _InIterator, const _Alloc&, +- forward_iterator_tag)): Likewise. +- (_S_construct(size_type, _CharT, const _Alloc&)): Likewise. +- (_M_mutate(size_type, size_type, size_type)): Don't +- implement the exponential growth policy, demand it to +- _S_create, update call and simplify. +- (_M_clone(const _Alloc&, size_type)): Likewise. +- (_S_create(size_type, size_type, const _Alloc&)): Implement +- the growth policy, simplify otherwise. +- +- * include/bits/basic_string.h (_Rep::operator[]): Tweak +- signature to take a size_type, consistently with the other +- members. +- +-2004-01-27 Benjamin Kosnik +- +- * testsuite/27_io/ios_base/storage/11584.cc: Correct new and +- delete declarations, add include and test variable. +- +-2003-01-27 Jerry Quinn +- +- * include/bits/codecvt.h, include/bits/locale_facets.h, +- include/bits/postypes.h, include/bits/stl_bvector.h, +- include/bits/stl_multiset.h, include/bits/stl_set.h, +- include/bits/stream_iterator.h, include/bits/streambuf_iterator.h, +- include/std/std_complex.h: Document. +- +-2004-01-27 Jerry Quinn +- +- PR libstdc++/11584 +- * include/bits/ios_base.h (ios_base::_M_grow_words): Add +- iword/pword selector. +- (ios_base::iword, ios_base::pword): Use it. +- * src/ios.cc (ios_base::_M_grow_words): Clear _M_word_zero +- iword or pword member on alloc failure. +- * testsuite/27_io/ios_base/storage/11584.cc: New test. +- +-2004-01-27 Ulrich Weigand +- PJ Darcy +- +- * configure.host: Add support for *-tpf. +- * crossconfig.m4: Likewise. +- * configure: Regenerate. +- * config/os/tpf: New directory. +- * config/os/tpf/os_defines.h: New file. +- * config/os/tpf/ctype_base.h: Likewise. +- * config/os/tpf/ctype_inline.h: Likewise. +- * config/os/tpf/ctype_noninline.h: Likewise. +- +-2004-01-27 Paolo Carlini +- +- PR libstdc++/13884 +- * include/bits/sstream.tcc: Guard use of extern template. +- +-2004-01-27 Paolo Carlini +- +- * include/bits/basic_string.tcc +- (basic_string(const basic_string&, size_type, size_type), +- basic_string(const basic_string&, size_type, size_type, +- const _Alloc&)): Avoid unnecessarily constructing iterators. +- +-2004-01-26 Paolo Carlini +- +- * config/locale/generic/c_locale.cc: Fix throw messages +- to use the __N marker. +- * config/locale/gnu/c_locale.cc: Likewise. +- * config/locale/ieee_1003.1-2001/codecvt_specializations.h: +- Likewise. +- * docs/html/17_intro/C++STYLE: Likewise. +- * include/bits/basic_ios.tcc: Likewise. +- * include/bits/fstream.tcc: Likewise. +- * include/bits/vector.tcc: Likewise. +- * include/ext/ropeimpl.h: Likewise. +- * include/std/std_bitset.h: Likewise. +- * src/ios.cc: Likewise. +- * src/locale.cc: Likewise. +- * src/localename.cc: Likewise. +- +-2004-01-26 Paolo Carlini +- +- * include/bits/basic_string.h (_M_replace_aux): Use the +- __N marker in throw message. +- * include/bits/basic_string.tcc (assign(const _CharT*, +- size_type), insert(size_type, const _CharT*, size_type), +- replace(size_type, size_type, const _CharT*, size_type), +- reserve, _Rep::_S_create, resize, _M_replace_dispatch): +- Likewise. +- +- * include/bits/basic_string.h, include/bits/basic_string.tcc: +- Fold overlong lines, minor formatting changes. +- +-2004-01-26 Paolo Carlini +- +- * include/bits/basic_string.h (replace(iterator, iterator, +- const basic_string&)): Remove _GLIBCXX_DEBUG_PEDASSERT. +- (replace(iterator, iterator, const _CharT*)): Ditto. +- (replace(iterator, iterator, const _CharT*, size_type)): +- Add missing _GLIBCXX_DEBUG_PEDASSERT. +- +-2004-01-26 Paolo Carlini +- +- * include/bits/basic_string.tcc (replace(size_type, +- size_type, const _CharT*, size_type)): Implement optimized +- in-place algorithm for non-overlapping ranges. +- * testsuite/21_strings/basic_string/replace/char/6.cc: New. +- * testsuite/21_strings/basic_string/replace/wchar_t/6.cc: New. +- +- * include/bits/basic_string.tcc (insert(size_type, +- const _CharT*, size_type)): Tweak slightly. +- +-2004-01-26 Andreas Schwab +- +- * config/locale/gnu/monetary_members.cc: Restore locale before +- rethrowing exception. +- +-2004-01-25 Paolo Carlini +- +- * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe): +- Define inline here. +- * include/bits/basic_string.tcc (_M_replace_aux, _M_replace_safe): +- Move inline. +- +- * include/bits/basic_string.tcc: Very minor tweaks. +- +-2004-01-25 Paolo Carlini +- +- * testsuite/performance/string_append.cc: Increase number +- of iterations. +- +-2004-01-25 Paolo Carlini +- +- * include/bits/basic_string.h (erase(size_type, size_type), +- erase(iterator), erase(iterator, iterator)): Call _M_replace_safe +- instead, thus avoiding redundant check for length_error. +- +- * include/bits/basic_string.h: Tweak some comments. +- +-2004-01-24 Paolo Carlini +- +- * include/bits/basic_string.tcc (operator+(const _CharT*, +- const basic_string&)): No need to go through the append +- taking two iterators. +- +-2004-01-24 Paolo Carlini +- +- * include/bits/basic_string.tcc (rfind(_CharT, size_type)): +- Revert last change to use std::min: machine language is worse. +- (find_last_of(const _CharT*, size_type, size_type)): Ditto. +- (find_last_not_of(const _CharT*, size_type, size_type)): Ditto. +- (find_last_not_of(_CharT, size_type)): Ditto. +- +- * include/bits/basic_string.tcc (insert(size_type, const _CharT*, +- size_type)): Discard the value returned by _M_check. +- (replace(size_type, size_type, const _CharT*, size_type)): Ditto. +- (append(const basic_string&, size_type, size_type)): Ditto. +- (copy(_CharT*, size_type, size_type)): Ditto. +- (compare(size_type, size_type, const basic_string&)): Ditto. +- (compare(size_type, size_type, const basic_string&, +- size_type, size_type)): Ditto. +- (compare(size_type, size_type, const _CharT*)): Ditto. +- (compare(size_type, size_type, const _CharT*, size_type)): Ditto. +- +-2004-01-24 Paolo Carlini +- +- * include/bits/basic_string.h (insert(size_type, +- const basic_string&, size_type, size_type)): Define inline here. +- * include/bits/basic_string.tcc (insert(size_type, +- const basic_string&, size_type, size_type)): Move inline. +- +-2004-01-24 Paolo Carlini +- +- * include/bits/basic_string.h (assign(const basic_string&, +- size_type, size_type)): Define inline here. +- (replace(size_type, size_type, const basic_string&, +- size_type, size_type)): Ditto. +- (_M_replace_dispatch(iterator, iterator, _InputIterator, +- _InputIterator, __false_type)): Only declare. +- (_M_replace(iterator, iterator, _InputIterator, +- _InputIterator)): Remove. +- * include/bits/basic_string.tcc (assign(const basic_string&, +- size_type, size_type)): Move inline. +- (replace(size_type, size_type, const basic_string&, +- size_type, size_type)): Ditto. +- (_M_replace_dispatch(iterator, iterator, _InputIterator, +- _InputIterator, __false_type)): Define, now does also what +- _M_replace did before. +- * src/string-inst.cc (_M_replace): Don't instantiate. +- +- * include/bits/basic_string.tcc (find(const _CharT*, +- size_type, size_type)): Tidy. +- (rfind(_CharT, size_type)): Ditto. +- (find_first_not_of(const _CharT*, size_type, size_type)): Ditto. +- (find_first_not_of(_CharT, size_type)): Ditto. +- (find_last_not_of(const _CharT*, size_type, size_type)): Ditto. +- (find_last_not_of(_CharT, size_type)): Ditto. +- +-2004-01-23 Paolo Carlini +- +- PR libstdc++/13838 +- * include/debug/bitset (operator|=): Fix typo. +- * testsuite/23_containers/bitset/operations/13838.cc: New. +- +-2004-01-23 Paolo Carlini +- +- * include/bits/basic_string.tcc (insert(size_type, +- const _CharT*, size_type __n)): Fix length_error check. +- (replace(size_type, size_type, const _CharT*, size_type): +- Ditto; call _M_replace_safe. +- (_M_replace_aux(size_type, size_type, size_type, _CharT): +- Fix length_error check. +- (_M_replace(iterator, iterator, _InputIterator, +- _InputIterator)): Ditto, tweak. +- (_M_replace_safe(size_type, size_type, const _CharT*, +- size_type)): Remove length_error check. +- +- * include/bits/basic_string.tcc (append(const basic_string&), +- append(const basic_string&, size_type, size_type)): Tweak +- comment. +- +- * include/bits/basic_string.tcc (copy(_CharT*, size_type, +- size_type)): If __n == 0 don't call traits::copy. +- +-2004-01-23 Stefan Olsson +- +- * include/ext/mt_allocator.h: Reduce lock contention. +- +-2004-01-23 Paolo Carlini +- +- PR libstdc++/13831 +- * include/bits/fstream.tcc (underflow): Remove unused +- variable. +- * include/bits/streambuf_iterator.h (equal): Ditto. +- * include/bits/locale_facets.h (_M_convert_from_char): +- Ditto. +- +-2004-01-23 Kaveh R. Ghazi +- +- PR c/13814 +- * config/linker-map.gnu (nan): Delete. +- * libmath/mathconf.h (NAN, nan): Delete. +- * linkage.m4 (nan): Don't check for it. +- * libmath/nan.c: Delete file. +- +- * config.h.in, configure: Regenerate. +- +-2004-01-23 Paolo Carlini +- +- * include/bits/basic_string.h (push_back(_CharT)): +- Call _M_replace_aux. +- (insert(size_type, const basic_string&)): Trivial tweak. +- (insert(size_type, size_type, _CharT)): Call _M_replace_aux. +- (insert(iterator, _CharT)): Ditto. +- (erase(size_type, size_type)): Ditto. +- (erase(iterator)): Ditto. +- (erase(iterator, iterator)): Ditto. +- (replace(size_type, size_type, size_type, _CharT)): Ditto. +- +-2004-01-23 Loren J. Rittle +- +- libstdc++/13823 +- * testsuite/performance/allocator_map_thread.cc: New test. +- +-2004-01-22 Paolo Carlini +- +- * include/bits/locale_facets.tcc +- (money_put::do_put(..., long double)): Use the basic_string +- constructor for char arrays, not that for C-strings, to pass +- __digits to do_put(..., const string_type&): __ws isn't +- null-terminated. +- +-2004-01-22 Paolo Carlini +- +- * include/bits/basic_string.h (_M_replace_safe): Change +- signatures to take size_types and const _CharT*. +- (_M_replace_aux): Likewise, takes size_types instead of +- iterators. +- (append(size_type, _CharT)): Update call. +- (assign(size_type, _CharT)): Ditto. +- (replace(iterator, iterator, size_type, _CharT)): Ditto. +- (_M_replace_dispatch(iterator, iterator, _Integer, +- _Integer, __true_type)): Ditto. +- * include/bits/basic_string.tcc (assign(const _CharT*, +- size_type)): Ditto. +- (insert(size_type, const _CharT*, size_type)): Ditto. +- (replace(size_type, size_type, const _CharT*, +- size_type)): Ditto. +- (_M_replace(iterator, iterator, _InputIterator, +- _InputIterator)): Ditto. +- (append(const basic_string&)): Ditto. +- (append(const basic_string&, size_type, size_type): Ditto. +- (append(const _CharT*, size_type): Ditto. +- (_M_replace_safe, _M_replace_safe): Change definitions +- accordingly, simplify. +- * string-inst.cc (_M_replace_safe): Don't instantiate. +- +-2004-01-21 Paolo Carlini +- +- * include/bits/basic_string.tcc (append(const basic_string&)): +- Revert previous change. +- (append(const basic_string&, size_type, size_type)): Revert +- previous change, use _M_check and _M_limit. +- +-2004-01-21 Paolo Carlini +- +- * include/bits/basic_string.h (_M_check): Change to return +- a checked __pos and take an additional const char* argument. +- (_M_fold): Rename to _M_limit, change to return a size_type, +- corresponding to the __off limited to the actual length. +- (insert(size_type, size_type, _CharT)): Update call, call +- replace. +- (insert(iterator, _CharT)): Call replace(iterator, iterator, +- size_type, _CharT) instead. +- (erase(size_type, size_type)): Update calls. +- (replace(size_type, size_type, size_type, _CharT)): Ditto. +- (substr(size_type, size_type)): Use _M_check. +- * include/bits/basic_string.tcc (basic_string(const basic_string&, +- size_type, size_type)): Update calls. +- (basic_string(const basic_string&, size_type, size_type, +- const _Alloc&)): Ditto. +- (assign(const basic_string&, size_type, size_type)): Use the +- new _M_check and _M_limit. +- (insert(size_type, const basic_string&, size_type, size_type): +- Ditto. +- (insert(size_type, const _CharT*, size_type)): Ditto. +- (replace(size_type, size_type, const _CharT*, size_type): Ditto. +- (replace(size_type, size_type, const basic_string&, +- size_type, size_type)): Ditto. +- (append(const basic_string&)): Ditto. +- (append(const basic_string&, size_type, size_type)): Ditto. +- (copy(_CharT*, size_type, size_type)): Ditto. +- (compare(size_type, size_type, const basic_string&)): Ditto. +- (compare(size_type, size_type, const basic_string&,size_type, +- size_type)): Ditto. +- (compare(size_type, size_type, const _CharT*)): Ditto. +- (compare(size_type, size_type, const _CharT*, size_type)): Ditto. +- +-2004-01-19 Stefan Olsson +- +- * include/ext/mt_allocator.h: If a thread, when it dies, still has +- memory on it's freelist this memory is not returned to global +- list. Simplification of deallocate so that memory is always +- returned to the calling thread id's freelist instead of to +- global. Fix typos. Add volatile where appropriate. +- +-2004-01-19 Loren J. Rittle +- +- * testsuite/ext/stdio_filebuf/char/10063-2.cc: Treat unbuffered. +- * testsuite/ext/stdio_filebuf/char/10063-3.cc: New test. Like -2 but +- use __gnu_cxx::stdio_sync_filebuf instead; allow buffered stream. +- +-2004-01-19 Paolo Carlini +- +- * src/debug.cc: Make sure all the names are prefixed with +- double (or single) underscore. +- +-2004-01-19 Paolo Carlini +- +- * src/debug.cc: Trivial formatting change. +- +-2004-01-19 Paolo Carlini +- +- * include/bits/basic_string.tcc (_S_construct(size_type, +- _CharT, const _Alloc&)): Remove redundant try/catch. +- (_M_mutate(size_type, size_type, size_type)): Ditto. +- (_M_clone(const _Alloc&, size_type)): Ditto. +- +-2004-01-18 Paolo Carlini +- +- * include/bits/basic_string.h (c_str()): Simplify, due to +- 21.3.4 the internal representation is always kept null-terminated. +- * include/bits/basic_string.tcc (_M_clone): Null-terminate. +- * testsuite/21_strings/basic_string/element_access/char/4.cc: New. +- * testsuite/21_strings/basic_string/element_access/wchar_t/4.cc: +- Ditto. +- +-2004-01-18 Paolo Carlini +- +- * include/bits/basic_string.h (append(size_type, _CharT)): +- Moved inline, just call _M_replace_aux, no source iterators at +- risk of being clobbered. +- (assign(size_type, _CharT)): Call directly _M_replace_aux. +- (_M_replace(iterator, iterator, _InputIterator, _InputIterator, +- input_iterator_tag)): Remove fifth unused argument. +- (_M_replace_dispatch(iterator, iterator, _InputIterator, +- _InputIterator, __false_type)): Update call. +- * include/bits/basic_string.tcc (replace(size_type, size_type, +- const _CharT*, size_type)): Update call. +- (_M_replace_aux(iterator, iterator, size_type, _CharT)): Tweak +- throw string literal. +- (_M_replace_safe(iterator, iterator, _ForwardIterator, +- _ForwardIterator)): Likewise. +- (_M_replace(iterator, iterator, _InputIterator, _InputIterator, +- input_iterator_tag)): Remove fifth unused argument. +- (append(size_type __n, _CharT __c)): Move inline. +- * src/string-inst.cc (S::_M_replace(S::iterator, S::iterator, +- const C*, const C*, input_iterator_tag)): Remove fifth unused +- argument. +- +-2004-01-16 Benjamin Kosnik +- +- * testsuite/ext/enc_filebuf/char/13189.cc: Fix guards. +- * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Same. +- +-2004-01-16 Danny Smith +- +- * testsuite/testsuite_hooks.cc (try_mkfifo): Avoid calling +- mkfifo for mingw32. +- +-2004-01-15 Stefan Olsson +- +- * include/ext/mt_allocator.h: Reuse thread id's as soon as +- possible by changing the behaviour of thread_freelist to do +- push_front when threads die instead of push_back. +- +-2004-01-14 Paolo Carlini +- +- * include/bits/locale_facets.h (struct __numpunct_cache): +- Add member _M_grouping_size, caching the length of _M_grouping. +- (__numpunct_cache<>::_M_cache): Assign the latter. +- (__verify_grouping): Move declaration... +- * include/bits/locale_facets.tcc (__verify_grouping): +- ... here, change signature to take a const char* and a size_t +- for the grouping; not a template anymore. +- (__add_grouping, num_put::_M_group_int, num_put::_M_group_float): +- Likewise change signature and tweak consistently. +- (num_get::_M_extract_float, num_get::_M_extract_int, +- num_put::_M_insert_int, num_put::_M_insert_float, +- money_get::do_get(string_type&), money_get::do_put(string_type)): +- Update callers. +- * config/locale/generic/numeric_members.cc +- (numpunct<>::_M_initialize_numpunct): Assign the new member. +- * config/locale/gnu/numeric_members.cc +- (numpunct<>::_M_initialize_numpunct): Likewise. +- * src/locale-inst.cc (__add_grouping): Tweak signature. +- (__verify_grouping): Don't instantiate, not a template anymore. +- +- * include/bits/locale_facets.h: Rename _M_truename_len -> +- _M_truename_size, _M_falsename_len -> _M_falsename_size. +- * include/bits/locale_facets.tcc: Likewise. +- * config/locale/generic/numeric_members.cc: Likewise. +- * config/locale/gnu/numeric_members.cc: Likewise. +- +-2004-01-14 Stefan Olsson +- +- * include/ext/mt_allocator.h: Fixups. +- * testsuite/performance/allocator.cc: Enable __mt_alloc tests. +- * testsuite/performance/allocator_thread.cc: Same. +- +-2004-01-13 Benjamin Kosnik +- +- * testsuite/performance/ifstream_extract_float.cc: Add higher +- precision tests. +- * testsuite/performance/ofstream_insert_float.cc: Same. +- +-2004-01-13 Paolo Carlini +- +- * src/locale-misc-inst.cc (__convert_from_v(long), +- __convert_from_v(unsigned long), __convert_from_v(long long), +- __convert_from_v(unsigned long long)): Remove, unused. +- +-2004-01-13 Benjamin Kosnik +- +- * testsuite/performance/ifstream_extract_float.cc: New. +- * testsuite/performance/ofstream_insert_float.cc: Float generation +- matches above. +- +- * 20_util/auto_ptr.cc, auto_ptr_neg.cc: Break into... +- * 20_util/auto_ptr/1.cc: ...this. +- * 20_util/auto_ptr/2.cc: Same. +- * 20_util/auto_ptr/3.cc: Same. +- * 20_util/auto_ptr/3946.cc: Same. +- * 20_util/auto_ptr/4.cc: Same. +- * 20_util/auto_ptr/5.cc: Same. +- * 20_util/auto_ptr/6.cc: Same. +- * 20_util/auto_ptr/7.cc: Same. +- * 20_util/auto_ptr/assign_neg.cc +- * 20_util/pairs.cc: Break into... +- * 20_util/pair/1.cc: ...this. +- * 20_util/pair/2.cc: Same. +- * 20_util/pair/3.cc: Same. +- * 20_util/pair/4.cc: Same. +- +-2004-01-13 Paolo Carlini +- +- * include/bits/locale_facets.tcc (num_get::do_get(void*&)): +- Set correctly just basefield, the only group that matters. +- +-2004-01-13 Paolo Carlini +- +- * include/ext/rope (_Rope_rep_alloc_base): Eliminate. +- (_Rope_rep_base): Inherit directly from the rope allocator; +- use rebinding instead of _Alloc_traits; pick up data member +- from _Rope_rep_alloc_base. +- (_Rope_alloc_base): Eliminate. +- (_Rope_base): Inherit directly from the rope allocator; use +- rebinding instead of _Alloc_traits; pick up data member from +- _Rope_alloc_base. +- (rope::_S_new_RopeLeaf, rope::_S_new_RopeConcatenation, +- rope::_S_new_RopeFunction, rope::_S_new_RopeSubstring): Tweak. +- +-2004-01-13 Paolo Carlini +- +- PR libstdc++/13650 +- * include/bits/basic_string.tcc (compare(size_type, size_type, +- const _CharT*, size_type)): Implement correctly the resolution +- of DR 5: basically, s is a char array, -not- a C string. +- * include/bits/basic_string.h: Tweak some comments. +- * testsuite/21_strings/basic_string/compare/char/13650.cc: New. +- * testsuite/21_strings/basic_string/compare/wchar_t/13650.cc: New. +- +-2004-01-12 Andreas Tobler +- +- * testsuite/lib/libstdc++.exp: Set LD_LIBRARY_PATH_32 for +- Solaris. +- +-2004-01-12 Paolo Carlini +- +- * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc: +- Use try_mkfifo. +- * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc: +- Likewise. +- +-2004-01-12 Paolo Carlini +- +- * include/bits/locale_facets.h (struct __numpunct_cache): +- Add members _M_truename_len and _M_falsename_len, caching +- the lengths of _M_truename and _M_falsename. +- (__numpunct_cache<>::_M_cache): Assign the latter. +- * include/bits/locale_facets.tcc (num_get::do_get(bool&), +- num_put::do_put(bool)): Use the new members, thus avoiding +- computing string lengths again and again. +- * config/locale/generic/numeric_members.cc +- (numpunct<>::_M_initialize_numpunct): Assign the new members. +- * config/locale/gnu/numeric_members.cc +- (numpunct<>::_M_initialize_numpunct): Likewise. +- +-2004-01-12 Mark Mitchell +- +- * testsuite/testsuite_hooks.h (__gnu_test::try_mkfifo): Declare it. +- * testsuite/testsuite_hooks.cc (__gnu_test::try_mkfifo): Define +- it. +- * testsuite/27_io/basic_filebuf/close/char/4879.cc: Use try_mkfifo +- and remove Cygwin XFAIL. +- * testsuite/27_io/basic_filebuf/close/char/9964.cc: Likewise. +- * testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise. +- * testsuite/27_io/basic_filebuf/open/char/9507.cc: Likewise. +- * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc: +- Likewise. +- * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise. +- * testsuite/27_io/objects/char/7.cc: Likewise. +- * testsuite/27_io/objects/char/9661-1.cc: Likewise. +- * testsuite/27_io/objects/wchar_t/7.cc: Likewise. +- * testsuite/27_io/objects/wchar_t/9661-1.cc: Likewise. +- +-2004-01-11 Gabriel Dos Reis +- +- * include/std/std_complex.h (std::complex<>::real): Return a +- reference. Add non-const overload. +- (std::complex<>::real): Likewise. +- (std::real): Likewise. +- (std::imag): Likewise. +- (std::operator+): Tidy. +- (std::operator-): Likewise. +- (std::operator*): Likewise. +- (std::operator/): Likewise. +- (std::operator>>): Likewise. +- +-2004-01-11 Paolo Carlini +- +- PR libstdc++/13582 +- * include/bits/fstream.tcc (imbue): Exploit the external +- buffer to imbue 'on the fly' a new locale and convert its +- remainder with the new codecvt facet. +- (underflow): Tweak slightly to deal with this special case. +- * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc: New. +- * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc: Ditto. +- * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Ditto. +- * testsuite/27_io/objects/wchar_t/13582-1_xin.cc: Ditto. +- * testsuite/27_io/objects/wchar_t/13582-1_xin.in: Ditto. +- +-2004-01-10 Paolo Carlini +- +- * docs/html/ext/lwg-active.html, docs/html/ext/lwg-defects.html: +- Import Revision 28. +- +-2004-01-10 Paolo Carlini +- +- PR libstdc++/13630 +- * include/bits/locale_classes.h (class locale): Fix category +- typedef. +- * testsuite/22_locale/locale/13630.cc: Add. +- +-2004-01-10 Giovanni Bajo +- +- * include/bits/locale_facets.h: Make a name really dependent. This +- will be needed when Core Issue 224 is implemented. +- +-2004-01-09 Paolo Carlini +- +- * testsuite/performance/allocator.cc: Demangle typeid(obj).name(). +- * testsuite/performance/allocator_thread.cc: Likewise. +- +-2004-01-07 Benjamin Kosnik +- +- * crossconfig.m4: Add LFS, io bits to linux cross config. +- * acconfig.h: Remove obsolete bits, reorder. +- * config.h.in: Regenerate. +- * aclocal.m4: Same. +- * configure: Same. +- +-2004-01-07 Gawain Bolton +- +- * include/bits/stl_list.h: +- * include/bits/list.tc: +- * src/list.cc: +- Performance enhancements for destructor, push_front(), +- push_back(), pop_front(), pop_back(), sort() +- Eliminated static_casts where possible. +- Moved code out of header files into new src/list.cc +- implementation file for library where possible. +- Remove inheritance from iterator class and create separate +- classes for non-constant and constant iterators. +- * include/bits/stl_tree.h (_Rb_tree class): +- * src/tree.cc: +- Only erase contents in destructor. +- Eliminate unnecessary initialization in assignment operator. +- Optimize for the nominal case by not checking whether +- container is empty in clear(). +- Re-order test in _M_insert() to improve performance. +- Move initialization of new node's left & right pointers to +- src/tree.cc to where new node's colour is initialized +- and to reduce the amount of inline code. +- Use _M_leftmost() and _M_end() to improve readability where +- appropriate. +- Create separate classes for non-constant and constant +- iterators to clarify code, avoid extra template parameters and +- casting away constness. +- +-2004-01-07 Benjamin Kosnik +- +- * src/Makefile.am (sources): Add list.cc, tree.cc. +- * src/stl_tree.cc: Move to... +- * src/tree.cc: ...here. +- * src/list.cc: Add. +- * config/linker-map.gnu: Tweaks. +- * testsuite/23_containers/map/operators/1_neg.cc: Add excess errors. +- * testsuite/23_containers/set/operators/1_neg.cc: Add excess errors. +- +- * bits/stl_vector.h: Column wrap comments. +- +-2004-01-07 Loren J. Rittle +- +- (re-open) PR libstdc++/12658 +- * src/locale_init.cc (locale::locale): Remove ill-scoped mutex. +- (locale::global): Likewise. +- +-2004-01-07 Paolo Carlini +- +- * testsuite/27_io/basic_istream/extractors_other/char/9318-in.cc: +- Remove redundant #include. +- * testsuite/27_io/basic_ostream/endl/char/1.cc: Likewise. +- * testsuite/27_io/basic_ostream/ends/char/1.cc: Likewise, +- re-enable normal testing. +- * testsuite/27_io/basic_ostream/ends/char/2.cc: Remove redundant +- #include. +- * testsuite/27_io/basic_ostream/flush/char/1.cc: Likewise. +- * testsuite/27_io/basic_ostream/inserters_character/char/1.cc: +- Likewise. +- * testsuite/27_io/basic_ostream/inserters_character/char/2.cc: +- Likewise. +- * testsuite/27_io/basic_ostream/inserters_character/char/3.cc: +- Likewise. +- * testsuite/27_io/basic_ostream/inserters_character/char/4.cc: +- Likewise. +- * testsuite/27_io/basic_ostream/inserters_character/char/5.cc: +- Likewise. +- * testsuite/27_io/basic_ostream/inserters_character/char/6.cc: +- Likewise. +- * testsuite/27_io/basic_ostream/inserters_character/char/8.cc: +- Likewise. +- * testsuite/27_io/basic_ostream/inserters_character/wchar_t/7.cc: +- More properly, #include . +- * testsuite/27_io/basic_ostream/inserters_character/wchar_t/8.cc: +- Remove redundant #include. +- * testsuite/27_io/basic_ostream/inserters_other/char/2.cc: Likewise. +- * testsuite/27_io/basic_ostream/inserters_other/char/3.cc: Remove +- redundant DejaGnu directive. +- * testsuite/27_io/basic_ostream/inserters_other/char/4.cc: Remove +- redundant #include. +- +-2004-01-06 Benjamin Kosnik +- Stefan Olsson +- +- * scripts/check_performance: Use -pthread. +- * testsuite/performance/allocator.cc: Tweaks, add list. +- * testsuite/performance/allocator_thread.cc: New. +- +-2004-01-06 Jerry Quinn +- +- * include/bits/locale_facets.h: Document public classes and +- functions. +- * include/bits/locale_facets.tcc (time_get::_M_extract_via_format): +- Add comment. +- +-2004-01-06 Paolo Carlini +- +- * testsuite/27_io/basic_istream/extractors_other/char/1.cc: +- Remove redundant #includes. +- * testsuite/27_io/basic_istream/extractors_other/char/2.cc: +- Likewise. +- * testsuite/27_io/basic_istream/extractors_other/char/3.cc: +- Likewise. +- * testsuite/27_io/basic_istream/get/char/1.cc: Likewise. +- * testsuite/27_io/basic_istream/get/char/2.cc: Likewise. +- * testsuite/27_io/basic_istream/getline/char/1.cc: Likewise. +- * testsuite/27_io/basic_istream/getline/char/2.cc: Likewise. +- * testsuite/27_io/basic_istream/getline/char/3.cc: Likewise. +- * testsuite/27_io/basic_istream/ignore/char/1.cc: Likewise. +- * testsuite/27_io/basic_istream/ignore/char/6360.cc: Likewise. +- * testsuite/27_io/basic_istream/ignore/char/7220.cc: Likewise. +- * testsuite/27_io/basic_istream/peek/char/1.cc: Likewise. +- * testsuite/27_io/basic_istream/peek/char/6414.cc: Likewise. +- * testsuite/27_io/basic_istream/putback/char/1.cc: Likewise. +- * testsuite/27_io/basic_istream/read/char/1.cc: Likewise. +- * testsuite/27_io/basic_istream/read/char/2.cc: Likewise. +- * testsuite/27_io/basic_istream/read/char/3.cc: Likewise. +- * testsuite/27_io/basic_istream/readsome/char/6746-1.cc: +- Likewise. +- * testsuite/27_io/basic_istream/readsome/char/6746-2.cc: +- Likewise. +- * testsuite/27_io/basic_istream/readsome/char/8258.cc: +- Likewise. +- * testsuite/27_io/basic_istream/seekg/char/2346-fstream.cc: +- Likewise. +- * testsuite/27_io/basic_istream/seekg/char/2346-sstream.cc: +- Likewise. +- * testsuite/27_io/basic_istream/seekg/char/8348-1.cc: Likewise. +- * testsuite/27_io/basic_istream/seekg/char/8348-2.cc: Likewise. +- * testsuite/27_io/basic_istream/tellg/char/8348.cc: Likewise. +- +-2004-01-04 Paolo Carlini +- +- * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc: +- Remove redundant #includes. +- * testsuite/27_io/basic_istream/extractors_arithmetic/char/02.cc: +- Likewise. +- * testsuite/27_io/basic_istream/extractors_arithmetic/char/03.cc: +- Likewise. +- * testsuite/27_io/basic_istream/extractors_arithmetic/char/06.cc: +- Likewise. +- * testsuite/27_io/basic_istream/extractors_arithmetic/char/07.cc: +- Likewise. +- * testsuite/27_io/basic_istream/extractors_arithmetic/char/08.cc: +- Likewise. +- * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc: +- Likewise. +- * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc: +- Likewise. +- * testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc: +- Likewise. +- * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc: +- Likewise. +- * testsuite/27_io/basic_ostream/inserters_arithmetic/char/1.cc: +- Likewise. +- * testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc: +- Likewise. +- * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc: +- Likewise. +- +-2004-01-04 Mark Mitchell +- +- PR c++/12226 +- * testsuite/27_io/basic_filebuf/4.cc: Remove use of invalid copy +- constructor. +- * testsuite/27_io/basic_fstream/4.cc: Likewise. +- * testsuite/27_io/basic_ifstream/4.cc: Likewise. +- * testsuite/27_io/basic_ios/4.cc: Likewise. +- * testsuite/27_io/basic_iostream/4.cc: Likewise. +- * testsuite/27_io/basic_istream/4.cc: Likewise. +- * testsuite/27_io/basic_istingstream/4.cc: Likewise. +- * testsuite/27_io/basic_ofstream/4.cc: Likewise. +- * testsuite/27_io/basic_ostream/4.cc: Likewise. +- * testsuite/27_io/basic_ostringstream/4.cc: Likewise. +- * testsuite/27_io/basic_stringbuf/5.cc: Likewise. +- * testsuite/27_io/basic_stringstream/4.cc: Likewise. +- +-2004-01-04 Paolo Carlini +- +- * config/locale/generic/numeric_members.cc (_M_initialize_numpunct): +- Avoid unnecessarily zero terminating _M_atoms_out and _M_atoms_in; +- always use double underscored names. +- * config/locale/gnu/numeric_members.cc (_M_initialize_numpunct): +- Likewise. +- * include/bits/locale_facets.h (struct __numpunct_cache): +- Dimension _M_atoms_out and _M_atoms_in one position smaller. +- (__numpunct_cache<>::_M_cache): Don't zero terminate _M_atoms_out +- and _M_atoms_in. ++ * testsuite/ext/enc_filebuf/char/13189.cc: Fix, first include ++ testsuite_hooks.h, to know whether including ext/enc_filebuf.h. ++ * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Likewise. +Index: libstdc++-v3/ChangeLog-2004 +=================================================================== +RCS file: libstdc++-v3/ChangeLog-2004 +diff -N libstdc++-v3/ChangeLog-2004 +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ libstdc++-v3/ChangeLog-2004 1 Jan 2005 23:18:46 -0000 1.1.2.1 +@@ -0,0 +1,3957 @@ ++2004-12-29 Jonathan Wakely ++ ++ * include/bits/vector.tcc (erase(iterator, iterator), ++ operator=, _M_assign_aux(_ForwardIterator, _ForwardIterator, ++ forward_iterator_tag)): Qualify all calls to std::copy(). ++ ++2004-12-23 Paolo Carlini ++ ++ Minimal fixes for -fno-exceptions. ++ * testsuite/testsuite_abi.cc (get_symbol, examine_symbol, ++ create_symbols): Use __throw_exception_again, instead of ++ plain throw. ++ * testsuite/testsuite_hooks.cc (verify_demangle, ++ run_tests_wrapped_locale, run_tests_wrapped_env): Likewise. ++ (try_named_locale): Wrap the whole catch in __EXCEPTIONS. ++ ++2004-12-06 Paolo Carlini ++ ++ PR libstdc++/18837 ++ * testsuite/testsuite_performance.h: Fix mallinfo macros for ++ hpux. ++ ++2004-12-06 Volker Reichelt ++ ++ * config/locale/ieee_1003.1-2001/codecvt_specializations.h ++ (do_out, do_unshift, do_in): Remove redundant typedef. ++ ++2004-11-24 Jonathan Wakely ++ ++ * docs/html/ext/howto.html: Fix incorrect link. ++ * docs/html/documentation.html: Regenerate. ++ ++2004-11-18 Paolo Carlini ++ ++ * include/bits/locale_facets.tcc (time_get<>::do_get_weekday, ++ time_get<>::do_get_monthname): Absolutely avoid dereferencing ++ end iterators. ++ ++ * include/bits/locale_facets.tcc (time_get<>::_M_extract_name): ++ Minor tweak. ++ ++2004-11-16 Jonathan Wakely ++ ++ * docs/html/19_diagnostics/howto.html: Document change from ++ _GLIBCPP_CONCEPT_CHECKS to _GLIBCXX_CONCEPT_CHECKS in 3.4. ++ ++2004-11-08 Benjamin Kosnik ++ Doug Gregor ++ ++ PR libstdc++/17664 ++ * src/debug.cc : Just use one mutex. ++ ++2004-11-08 Benjamin Kosnik ++ Lothar Werzinger ++ ++ PR libstdc++/17664 ++ * src/debug.cc: Include concurrence, use mutexes. ++ (_Safe_iterator_base::_M_attach): Here. ++ (_Safe_iterator_base::_M_detach): Here. ++ ++2004-11-08 Benjamin Kosnik ++ ++ PR libstdc++/17922 ++ * include/bits/ios_base.h : Add enum values. ++ * testsuite/testsuite_hooks.h (bitmask_operators): Add function. ++ * testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc: New. ++ * testsuite/27_io/ios_base/types/fmtflags/case_label.cc: New. ++ * testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc: New. ++ * testsuite/27_io/ios_base/types/iostate/case_label.cc: New. ++ * testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc: New. ++ * testsuite/27_io/ios_base/types/openmode/case_label.cc: New. ++ * testsuite/27_io/ios_base/types/seekdir/case_label.cc: New. ++ ++ * config/io/c_io_stdio.h (__ios_flags): Mark deprecated. ++ * src/ios.cc: Same. ++ ++ * testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust line numbers. ++ * testsuite/27_io/ios_base/cons/copy_neg.cc: Same. ++ ++2004-11-08 Momchil Velikov ++ ++ PR libstdc++/18185 ++ * libsupc++/eh_globals.cc (get_globals_dtor): Delete unhandled ++ exceptions. ++ * testsuite/thread/18185.cc: New. ++ ++2004-11-07 Paolo Carlini ++ Andrea Arcangeli ++ ++ * config/io/basic_file_stdio.cc (__basic_file<>::close)): Don't ++ call unnecessarily sync, that is fflush: the library, since 3.4.0 ++ does not use buffered fread/fwrite. ++ * include/bits/fstream.tcc (basic_filebuf<>::overflow): Likewise. ++ ++2004-11-07 Paolo Carlini ++ Kenneth C. Schalk ++ ++ PR libstdc++/17215 ++ * config/io/basic_file_stdio.cc (__basic_file::close()): ++ Check the return value of fclose/sync, loop on EINTR. ++ (__basic_file::sys_open): Likewise, for sync. ++ ++2004-11-04 Release Manager ++ ++ * GCC 3.4.3 released. ++ ++2004-10-29 Chris Jefferson ++ ++ * include/bit/stl_algo.h (find_first_of(,,,,pred)): ++ Remove invalid EqualOpConcept. ++ * testsuite/25_algorithms/find_first_of/concept_check_1.cc: New. ++ ++2004-10-28 Paolo Carlini ++ ++ * include/bits/basic_string.tcc (_M_mutate): Do not reallocate ++ unnecessarily when _M_rep() == &_S_empty_rep() and __new_size ++ == capacity() (== 0): is ok to just leave everything unchanged. ++ ++2004-10-28 Paolo Carlini ++ ++ PR libstdc++/16612 ++ * include/bits/basic_string.h (_M_dispose, _M_refcopy, ++ basic_string()): When _GLIBCXX_FULLY_DYNAMIC_STRING is defined, ++ don't deal with _S_empty_rep. ++ * include/bits/basic_string.tcc (_S_construct, _M_destroy, ++ _M_leak_hard, _M_mutate): Likewise. ++ * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): New. ++ * acconfig.h: Add corresponding undef. ++ * configure.ac: Use GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING. ++ * docs/html/configopts.html: Document --enable-fully-dynamic-string. ++ * aclocal.m4: Regenerate. ++ * configure: Likewise. ++ * config.h.in: Likewise. ++ ++2004-10-28 Paolo Carlini ++ ++ * README: Remove obsolete entry about include/c_shadow. ++ ++2004-10-25 Eric Botcazou ++ ++ PR other/18138 ++ * testsuite/lib/libstdc++.exp: Accept more than one multilib libgcc. ++ ++2004-10-14 Paolo Carlini ++ ++ * include/std/std_memory.h (__get_temporary_buffer): Don't use ++ INT_MAX, prefer numeric_limits::max(), ok on 64-bit ++ platforms too. ++ * testsuite/20_util/auto_ptr/assign_neg.cc: Adjust dg-error ++ line numbers. ++ ++2004-10-11 Joachim Kuebart ++ Paolo Carlini ++ ++ * src/allocator.cc (__pool_alloc_base::_M_allocate_chunk): ++ Deal properly with exceptions thrown by ::operator new(size_t). ++ * testsuite/ext/pool_allocator/allocate_chunk.cc: New. ++ ++ * include/ext/pool_allocator.h: Include . ++ ++2004-10-10 Paolo Carlini ++ ++ * config/locale/gnu/monetary_members.cc (_S_construct_pattern): ++ Give __ret a default value, thus avoiding spurious warnings. ++ ++ * testsuite/performance/27_io/filebuf_sgetn_unbuf.cc: Open either ++ words or linux.words, otherwise exit. ++ * testsuite/performance/27_io/ifstream_getline.cc: Slighlty tweak. ++ ++2004-10-10 Paolo Carlini ++ ++ * include/bits/sstream.tcc (seekpos): In case of success, just ++ return __sp. ++ ++2004-10-07 Roger Sayle ++ ++ PR libstdc++/17850 ++ * configure.ac: Newlib does not provide strtold. ++ * configure: Regenerate. ++ ++2004-10-05 Paolo Carlini ++ ++ PR libstdc++/10975 (DR 453) ++ * include/bits/sstream.tcc (seekoff): Don't fail if __beg == 0 ++ and __off == 0. ++ * docs/html/ext/howto.html: Add an entry for DR 453. ++ * testsuite/27_io/basic_stringbuf/seekoff/char/10975.cc: New. ++ * testsuite/27_io/basic_istream/tellg/char/1.cc: Tweak consistently. ++ * testsuite/27_io/basic_ostream/tellp/char/1.cc: Likewise. ++ * testsuite/27_io/basic_ostream/tellp/char/2.cc: Likewise. ++ * testsuite/27_io/basic_istream/seekg/char/2346-fstream.cc: Fix and ++ move to... ++ * testsuite/27_io/basic_istream/seekp/char/2346-fstream.cc: ... here. ++ * testsuite/27_io/basic_istream/seekg/char/2346-sstream.cc: Fix and ++ move to... ++ * testsuite/27_io/basic_istream/seekp/char/2346-sstream.cc: ... here. ++ ++2004-10-05 Ulrich Weigand ++ ++ * configure.host (abi_baseline_pair): Define for s390-*-linux* and ++ s390x-*-linux*. ++ * config/abi/s390-linux-gnu/baseline_symbols.txt: Add missing symbols. ++ * config/abi/s390x-linux-gnu/baseline_symbols.txt: New file. ++ ++2004-10-04 Roger Sayle ++ Eric Botcazou ++ ++ PR libstdc++/17505 ++ * config/linker-map.gnu: Synchronize the current list of stub ++ functions from libmath. ++ ++2004-10-04 Benjamin Kosnik ++ ++ * configure.ac (libtool_VERSION): To 6:3:0. ++ * configure: Regnerate. ++ * testsuite/testsuite_abi.cc (check_version): Add 3.4.3. ++ ++2004-10-03 Roger Sayle ++ ++ * config/locale/generic/c_locale.cc (__convert_to_v): Use ++ _GLIBCXX_HAVE_STRTOF instead _GLIBCXX_USE_C99 to check for strtof. ++ Likewise, use _GLIBCXX_HAVE_STRTOLD instead of _GLIBCXX_USE_C99 ++ to check for presence of strtold. ++ ++2004-10-02 Paolo Carlini ++ ++ * include/std/std_sstream.h (basic_stringbuf(ios_base::openmode)): ++ Don't use _M_stringbuf_init, keep the pointers null, per 27.7.1.1. ++ (str()): Slightly tweak, protect from pptr() == 0. ++ (_M_update_egptr()): Likewise. ++ * include/bits/sstream.tcc (ssekoff, seekpos): In order to check ++ for an empty buffer use __beg instead of _M_string.capacity(). ++ * testsuite/27_io/basic_stringbuf/cons/char/1.cc: New. ++ ++ * testsuite/27_io/basic_filebuf/cons/char/1.cc: New. ++ * testsuite/27_io/basic_streambuf/cons/char/1.cc: Update. ++ ++2004-10-02 Paolo Carlini ++ Benjamin Kosnik ++ ++ * testsuite/testsuite_io.h (class constraint_buf): New, extended ++ and templatized version of constraint_filebuf; add typedefs for ++ streambuf/stringbuf/filebuf and wchar_t counterparts. ++ ++2004-09-27 Benjamin Kosnik ++ ++ PR libstdc++/16848 ++ * include/Makefile.am (ext_headers): Remove demangle.h. ++ * include/Makefile.in: Regenerate. ++ * include/ext/demangle.h: Remove. ++ ++2004-09-24 H.J. Lu ++ ++ PR libstdc++/17469 ++ * testsuite/lib/libstdc++.exp: Don't use global ld_library_path. ++ ++2004-09-24 Paolo Carlini ++ Magnus Fromreide ++ ++ * include/bits/boost_concept_check.h (struct _SequenceConcept): ++ Remove wrong requirement, i.e., not present in Table 67. ++ ++2004-09-20 Jonathan Wakely ++ ++ * testsuite/23_containers/{set,multiset}/14340.cc: Fix typos in ++ instantiation of set and multiset (functor param given as int). ++ ++2004-09-20 Jonathan Wakely ++ ++ * include/bits/stl_algo.h (remove): Remove too restrictive ++ concept-check. ++ ++2004-09-19 Paolo Carlini ++ ++ * include/bits/fstream.tcc (xsgetn): Slightly tweak conditional, ++ as per Nathan's original suggestion. ++ ++2004-09-19 Nathan Myers ++ ++ * include/bits/fstream.tcc (xsgetn): Slightly tweak the recent fix ++ for 11722: copy can replace move; the common case is __avail == 0. ++ ++2004-09-19 Paolo Carlini ++ ++ PR libstdc++/11722 ++ * include/std/std_fstream.h (xsgetn): Declare only. ++ * include/bits/fstream.tcc (xsgetn): Define, optimize for the ++ always_noconv() case: when __n > __buflen, copy the available ++ buffer and issue a direct read. ++ * testsuite/performance/27_io/filebuf_sgetn_unbuf.cc: New. ++ ++ * include/bits/fstream.tcc (xsputn): Minor tweak, reorder a ++ conditional. ++ ++2004-09-17 Paolo Carlini ++ ++ * src/localename.cc (locale::_Impl::_Impl): Slightly improve ++ the algorithm used to name the categories. ++ ++2004-09-13 Paolo Carlini ++ ++ * include/bits/locale_facets.tcc (time_get<>::_M_extract_via_format, ++ case 'S'): Allow for at least one leap-second (as per C99, 7.23.1 ++ and 7.23.3.5), two if !_GLIBCXX_USE_C99. ++ * testsuite/22_locale/time_get/get_time/char/4.cc: New. ++ * testsuite/22_locale/time_get/get_time/wchar_t/4.cc: Likewise. ++ ++2004-09-08 Benjamin Kosnik ++ Simon Richter ++ ++ PR libstdc++/16715 ++ * include/bits/istream.tcc: Add extern template for iostream ++ char and wchar_t instantiations. ++ ++2004-09-08 Benjamin Kosnik ++ Leland Wang ++ ++ PR libstdc++/17259 ++ * include/ext/ropeimpl.h (rope::_S_compare): Use ++ _Rope_constants::_S_leaf. ++ ++2004-09-06 Release Manager ++ ++ * GCC 3.4.2 released. ++ ++2004-08-30 Benjamin Kosnik ++ ++ * include/ext/pool_allocator.h: Rename __pool_base to ++ __pool_alloc_base. ++ * src/allocator.cc: Same. ++ * config/linker-map.gnu: Same. ++ ++2004-08-28 Paolo Carlini ++ ++ PR libstdc++/17038 (partial) ++ * include/bits/locale_facets.tcc (time_put<>::do_put): Increase ++ __maxlen to 128. ++ * config/locale/generic/time_members.cc (_M_put): Always null ++ terminate __s. ++ * config/locale/gnu/time_members.cc (_M_put): Likewise. ++ * testsuite/22_locale/time_put/put/char/17038.cc: New. ++ * testsuite/22_locale/time_put/put/wchar_t/17038.cc: New. ++ ++2004-08-27 Matthias Klose ++ ++ * configure.host: For mips*-*-linux* update cpu_include_dir ++ after atomicity_dir is set. ++ ++2004-08-27 Matthias Klose ++ ++ * config/abi/arm-linux-gnu/baseline_symbols.txt: New. ++ * config/abi/mips-linux-gnu/baseline_symbols.txt: Update to 3.4.0. ++ * configure.host: Set abi_baseline_pair for arm*-*-linux* and ++ mips*-*-linux*. ++ ++2004-08-22 Matthias Klose ++ ++ * config/abi/m68k-linux-gnu/baseline_symbols.txt: New. ++ * config/abi/sparc-linux-gnu/baseline_symbols.txt: Update to 3.4.0. ++ ++2004-08-22 Paolo Carlini ++ ++ * include/bits/locale_facets.tcc (num_put<>::do_put(bool)): Cast ++ to a signed type, long according to the resolution of DR 359. ++ * testsuite/22_locale/num_put/put/char/9.cc: New. ++ * testsuite/22_locale/num_put/put/wchar_t/9.cc: New. ++ ++ * include/bits/locale_facets.tcc (num_put<>::do_put(const void*)): ++ Simplify a bit: no need to clear showpos. ++ ++2004-08-20 Matthias Klose ++ ++ * config/abi/s390-linux-gnu/baseline_symbols.txt: New. ++ ++2004-08-20 Paolo Carlini ++ ++ * config/abi/x86_64-linux-gnu/32/baseline_symbols.txt: Add 32 bit ++ baseline. ++ ++2004-08-20 Paolo Carlini ++ ++ * config/abi/x86_64-linux-gnu/baseline_symbols.txt: Fix it. ++ ++2004-08-19 Paolo Carlini ++ ++ * testsuite/performance/20_util/allocator/insert.cc: For std::map ++ instantiate the allocator for a correct pair type. ++ * testsuite/performance/20_util/allocator/insert_insert.cc: Likewise. ++ * testsuite/performance/20_util/allocator/map_mt_find.cc: Likewise. ++ * testsuite/performance/20_util/allocator/map_thread.cc: Likewise. ++ * testsuite/performance/20_util/allocator/producer_consumer.cc: ++ Likewise. ++ ++ * testsuite/performance/20_util/allocator/list_sort_search.cc: Very ++ minor formatting fixes. ++ ++2004-08-19 Paolo Carlini ++ ++ * config/abi/x86_64-linux-gnu/baseline_symbols.txt: Update to 3.4.0. ++ ++2004-08-18 Matthias Klose ++ ++ * config/abi/hppa-linux-gnu/baseline_symbols.txt: Update to 3.4.0. ++ * config/abi/i386-linux-gnu/baseline_symbols.txt: New. ++ * config/abi/powerpc-linux-gnu/baseline_symbols.txt: New. ++ ++2004-08-17 Paolo Carlini ++ ++ * config/abi/alpha-linux-gnu/baseline_symbols.txt: Update to 3.4.0. ++ ++2004-08-17 Paolo Carlini ++ ++ * config/abi/ia64-linux-gnu/baseline_symbols.txt: Update to 3.4.0. ++ ++2004-08-17 Benjamin Kosnik ++ ++ * config/abi/i486-linux-gnu/baseline_symbols.txt: Update to 3.4.0. ++ ++2004-08-16 Paolo Carlini ++ ++ * config/locale/generic/c_locale.h (__convert_from_v): Don't ++ use a default for __prec, assume __prec >= 0 and simplify. ++ * config/locale/gnu/c_locale.h (__convert_from_v): Likewise. ++ * include/bits/locale_facets.tcc (money_put<>::do_put(long double)): ++ Pass format "%.*Lf" + precision == 0, equivalent to "%.0Lf". ++ ++2004-08-13 Paolo Carlini ++ ++ * src/debug.cc (_Error_formatter::_M_print_string): Fix thinko, ++ memmove is not needed, memcpy suffices. ++ ++2004-08-12 Paolo Carlini ++ Petur Runolfsson ++ ++ PR libstdc++/16959 ++ * src/ios_init.cc (ios_base::sync_with_stdio): Make sure the ++ standard streams are constructed. ++ * testsuite/27_io/ios_base/sync_with_stdio/16959.cc: New. ++ ++2004-08-08 Jonathan Wakely ++ Paolo Carlini ++ ++ * src/debug.cc (_Error_formatter::_M_print_string): In order ++ to print individual words from __string, _M_format_word can't ++ be called since may be just sprintf, thus ignoring completely ++ __n: instead, use memmove and append '\0' by hand. ++ ++2004-07-30 Paolo Carlini ++ Petur Runolfsson ++ ++ PR libstdc++/12658 (continued) ++ * src/locale_init.cc (locale::locale, locale::global): Use ++ a single locale_mutex instead of two separate mutexes. ++ ++2004-07-30 Paolo Carlini ++ ++ * testsuite/22_locale/locale/cons/12658_thread.cc: Xfail: due to ++ a bug in glibcs older than 2004-07-16, it can unpredictably fail ++ irrespective of the correctness of libstdc++. ++ ++2004-07-30 Benjamin Kosnik ++ ++ * src/locale_init.cc: Use __gnu_cxx::lock. ++ ++2004-07-30 Paolo Carlini ++ ++ * testsuite/22_locale/num_put/put/char/14220.cc: Increase the value ++ of precision: 10 is too small to actually trigger the bug. ++ * testsuite/22_locale/num_put/put/wchar_t/14220.c: Likewise. ++ ++2004-07-30 Paolo Carlini ++ ++ * docs/html/ext/lwg-active.html, lwg-defects.html: Import Revision 31. ++ ++2004-07-29 Paolo Carlini ++ ++ PR libstdc++/16813 ++ * include/debug/map.h (insert(_InputIterator, _InputIterator)): ++ Fix typo. ++ * testsuite/23_containers/map/insert/16813.cc: New. ++ ++2004-07-20 Danny Smith ++ ++ * include/c_std/std_cwchar.h (wcsstr): Correct signature. ++ ++2004-07-19 Benjamin Kosnik ++ ++ PR libstdc++/15488 ++ * testsuite/lib/libstdc++.exp (v3-copy-files): Revert. ++ ++2004-07-17 Richard Sandiford ++ ++ PR bootstrap/16469 ++ * scripts/create_testsuite_files: Pass -print to find. ++ ++2004-07-15 Paolo Carlini ++ ++ * docs/html/ext/lwg-active.html, lwg-defects.html: Import Revision 30. ++ * docs/html/ext/howto.html: Tweak entries for DRs 167/253/389/402. ++ ++2004-07-15 Jakub Jelinek ++ ++ PR libstdc++/14697 ++ * acinclude.m4 (glibcxx_shared_libgcc): Correct ++ glibcxx_shared_libgcc test for multilibs. ++ * configure: Rebuilt. ++ ++2004-07-14 Paolo Carlini ++ ++ * include/bits/locale_facets.tcc (time_get<>::do_get_time, ++ time_get<>::do_get_date): Use only once _M_extract_via_format, ++ instead of going through "%X"/"%x" and calling it two times ++ (+ using widen). ++ ++2004-07-14 Paolo Carlini ++ ++ PR libstdc++/16401 ++ * include/bits/sstream.tcc (overflow): When reallocating _M_string ++ use an exponential grow policy. ++ * testsuite/27_io/basic_stringbuf/overflow/char/1.cc: New. ++ * testsuite/performance/27_io/stringbuf_overflow.cc: New. ++ ++2004-07-12 Benjamin Kosnik ++ ++ * include/bits/concurrence.h: Tweak comments. ++ ++2004-07-12 Benjamin Kosnik ++ Per Bothner ++ Mohan Embar ++ ++ PR libstdc++/16248 ++ * include/bits/concurrence.h (__glibcxx_mutex_type): New. ++ (__glibcxx_mutex): Encapsulate mutex init function into type for ++ threaded configurations without __GTHREAD_MUTEX_INIT. ++ (lock::lock): Make device member a reference. ++ (lock::~lock): Same. ++ * include/ext/pool_allocator.h (__pool_base::_M_get_mutex): Change ++ to mutex_type. ++ * src/allocator.cc: Same. ++ ++2004-07-12 Brad Spencer ++ ++ * include/ext/mt_allocator.h: Handle allocations at static ++ initialization that happen before _S_options is (automatically) ++ constructed; set _S_init even if _M_force_new is true. ++ ++2004-07-12 Paul Brook ++ ++ * include/bits/concurrence.h: Still create mutex object when ++ single-threaded. ++ ++2004-07-12 Benjamin Kosnik ++ ++ * include/bits/concurrence.h (__gnu_cxx::lock): New. ++ * include/ext/pool_allocator.h (__pool_base::_Lock::_S_lock): Remove. ++ (__pool_base::_M_get_mutex): New. ++ * include/bits/allocator.h: Tweak. ++ * src/allocator.cc (__pool_base::_M_get_free_list): Correct offset. ++ ++ * src/allocator.cc: Move all instantiations... ++ * src/allocator-inst.cc: ...here. ++ ++2004-07-12 Benjamin Kosnik ++ ++ * include/ext/pool_allocator.h: Qualify __throw_bad_alloc. ++ (__pool_base): Remove unused template parameter. Add ++ protected. Move lock data into __pool_base::_Lock. Remove static ++ on member functions. ++ (__pool_base::_M_get_free_list): New. ++ (__pool_alloc): Move _S_force new here. ++ * src/allocator.cc: Move out of line __pool_base definitions here. ++ * config/linker-map.gnu: Export bits from __pool_base. ++ ++2004-07-07 Benjamin Kosnik ++ ++ * configure.ac (libtool_VERSION): To 6:2:0. ++ * configure: Regenerated. ++ ++ * testsuite/testsuite_abi.cc (check_version): Add 3.4.2. ++ ++2004-07-07 Aaron W. LaFramboise ++ ++ PR libstdc++/16411 ++ * config/linker-map.gnu: Add stdio_sync_filebuf::file exports. ++ ++2004-07-06 Anssi Hannula ++ ++ PR libstdc++/15928 ++ * crossconfig.m4: Add in bits for djgpp. ++ * configure: Regenerate. ++ ++2004-07-06 Paolo Carlini ++ ++ PR libstdc++/16210 ++ * acinclude.m4 (GLIBCXX_ENABLE_LONG_LONG): Do not check for the ++ availability of strto(u)ll, not used anymore in the iostreams. ++ * aclocal.m4: Regenerate. ++ * configure: Regenerate. ++ ++2004-07-06 Paolo Carlini ++ ++ * include/bits/cpp_type_traits.h: Move the additions to ++ namespace __gnu_internal outside of namespace std; trivial ++ formatting fixes. ++ ++2004-07-06 Paolo Carlini ++ ++ * docs/html/17_intro/contribute.html: Update some links. ++ * docs/html/17_intro/porting-howto.html: Likewise. ++ * docs/html/17_intro/porting-howto.xml: Likewise. ++ * docs/html/18_support/howto.html: Likewise. ++ * docs/html/21_strings/howto.html: Likewise. ++ * docs/html/27_io/howto.html: Likewise. ++ * docs/html/configopts.html: Likewise. ++ * docs/html/ext/howto.html: Likewise. ++ * docs/html/faq/index.html: Likewise. ++ * docs/html/install.html: Don't mention 2.x compilers. ++ ++2004-07-01 Release Manager ++ ++ * GCC 3.4.1 released. ++ ++2004-06-28 Benjamin Kosnik ++ ++ * include/debug/safe_base.h (__gnu_debug::_Safe_sequence_base): ++ Revert -Weffc++ changes that defined copy ctory and or assignment ++ operator. ++ * libsupc++/tinfo.cc (__upcast_result): Same. ++ ++2004-06-25 Benjamin Kosnik ++ ++ PR libstdc++/16182 ++ * linkage.m4 (GLIBCXX_CHECK_BUILTIN_MATH_DEC): Revert to ++ AC_DEFINE_UNQUOTED. ++ * configure: Regenerate. ++ ++2004-06-25 Benjamin Kosnik ++ ++ * include/debug/formatter.h (__gnu_debug::_Error_formatter): ++ Remove copy constructor and assignment operator. ++ ++2004-06-23 Paolo Carlini ++ ++ PR libstdc++/16154 ++ * include/bits/boost_concept_check.h (struct _TrivialIteratorConcept): ++ Don't require the _DefaultConstructibleConcept. ++ (struct _ForwardIteratorConcept): Require it here. ++ ++2004-06-21 Loren J. Rittle ++ ++ * config/linker-map.gnu: Use wildcards for ++ __basic_file::sys_open(FILE*, _Ios_Openmode). ++ ++2004-06-18 Paolo Carlini ++ ++ * include/ext/mt_allocator (__mt_alloc<>::_Tune): Add _M_align, ++ the alignment requested. ++ (__mt_alloc<>::_Tune::_Tune): Tweak consistently. ++ (__mt_alloc<>::allocate): Use it instead of sizeof(_Block_record). ++ (__mt_alloc<>::deallocate): Likewise. ++ ++2004-06-18 Paolo Carlini ++ ++ PR libstdc++/16020 ++ * include/debug/safe_base.h ++ (_Safe_sequence_base::_Safe_sequence_base(const _Safe_sequence_base&), ++ _Safe_sequence_base::operator=): Provide definitions. ++ * testsuite/23_containers/bitset/cons/16020.cc: New. ++ ++2004-06-18 Paolo Carlini ++ ++ * include/ext/rope (rope(_CharT, const allocator_type&)): Fix ++ to use _Data_allocate. ++ * include/ext/ropeimpl.h (rope<>::_S_leaf_concat_char_iter): Likewise. ++ (rope<>::_S_substring): Likewise. ++ (rope<>::rope(size_t, _CharT, const allocator_type&)): Likewise. ++ (rope<>::c_str()): Likewise. ++ (rope<>::replace_with_c_str()): Likewise. ++ ++ * include/ext/ropeimpl.h (_Rope_iterator_base<>::_S_setbuf): ++ Correctly qualify _S_leaf, _S_function, etc., with _Rope_constants::, ++ not _RopeRep. ++ (_Rope_iterator_base<>::_S_setcache): Likewise. ++ (_Rope_iterator_base<>::_S_setcache_for_incr): Likewise. ++ (rope<>::_S_substring): Likewise. ++ (rope<>::_S_dump): Likewise. ++ (rope<>::_S_fetch_ptr): Likewise. ++ (rope<>::_S_compare): Likewise. ++ (rope<>::replace_with_c_str()): Likewise. ++ ++ * testsuite/ext/rope.cc: Rename to testsuite/ext/rope/1.cc. ++ * testsuite/ext/rope/2.cc: New. ++ ++2004-06-18 Paolo Carlini ++ Matt Austern ++ ++ * testsuite/ext/rope/3.cc: New. ++ ++2004-06-17 Paolo Carlini ++ ++ * include/bits/locale_facets.tcc (time_get<>::_M_extract_name): ++ Don't use the 'magic number' 10 in the computation of __minlen; ++ never access __name past __minlen; in the loop over __i3, don't ++ decrease __nmatches and increase __i3 at once, only either of ++ the two; tidy. ++ ++2004-06-17 Paolo Carlini ++ ++ * include/ext/pool_allocator.h: Convert to a global free-list, ++ as per the original SGI/HP design: move the implementation ++ details to struct __pool_base, from which __pool_alloc derives. ++ * src/allocator.cc: Instantiate __pool_base. ++ ++2004-06-11 Paolo Carlini ++ ++ PR libstdc++/15775 ++ * include/bits/stl_deque.h: Consistently with stl_set.h, define ++ pointer as allocator's pointer, likewise for reference, ++ const_pointer, and const_reference. ++ * include/bits/stl_list.h: Likewise. ++ * include/bits/stl_map.h: Likewise. ++ * include/bits/stl_multimap.h: Likewise. ++ * include/bits/stl_vector.h: Likewise. ++ ++2004-06-11 Dhruv Matani ++ Paolo Carlini ++ ++ * testsuite/testsuite_performance.h ++ (resource_counter::allocated_memory): Make it return the right ++ number of bytes requested by the allocators/application. This is ++ the sbrk+mmaped memory. ++ ++2004-06-10 Benjamin Kosnik ++ ++ * crossconfig.m4: Remove signbit, signbitf, signbitl. ++ * linkage.m4: Comment LIBMATHOBJS, tweak others. AC_DEFINES for ++ builtin math functions instead of AC_DEFINE_UNQUOTED. ++ * configure: Regenerate. ++ ++2004-06-10 Benjamin Kosnik ++ ++ * docs/doxygen/filter.sed: Rename _GLIBCXX_STD to std. ++ * docs/doxygen/mainpage.html: Remove links. ++ ++2004-06-08 Jason Merrill ++ ++ * config/linker-map.gnu: Use wildcards for ++ __basic_file::{xsgetn,xsputn,seekoff,xsputn_2}. ++ ++2004-05-31 Benjamin Kosnik ++ ++ * config/linker-map.gnu (GLIBCXX_3.4.1): Add. ++ * testsuite/testsuite_abi.cc: Same. ++ * configure.ac (libtool_VERSION): Bump to 6:1:0. ++ * configure: Regenerate. ++ * aclocal.m4: Regenerate. ++ ++2004-05-31 Richard B. Kreckel ++ Benjamin Kosnik ++ ++ PR libstdc++/14600 ++ * include/ext/stdio_sync_filebuf.h (stdio_sync_filebuf::file): New. ++ * include/ext/stdio_filebuf.h (stdio_filebuf::file): New. ++ * config/io/basic_file_stdio.cc (__basic_file::file): New. ++ * config/io/basic_file_stdio.h: Define. ++ ++2004-05-30 Benjamin Kosnik ++ ++ PR libstdc++/15675 ++ * docs/html/documentation.html: Update doxygen links for 3.4.0. ++ ++2004-05-30 Jan Beulich ++ ++ * scripts/create_testsuite_files: Tweak. ++ ++2004-05-30 Paolo Carlini ++ ++ * include/ext/mt_allocator.h:(__mt_alloc::allocate): Minor ++ tweaks. ++ ++2004-05-30 Dhruv Matani ++ ++ * include/ext/mt_allocator.h:(__mt_alloc::allocate): Re-write ++ allocation loop which removes blocks from the global free list ++ from O(N) to O(1) when the required blocks are <= the number ++ available. ++ ++2004-05-30 Paolo Carlini ++ ++ * include/ext/mt_allocator.h (__mt_alloc<>::deallocate): ++ Consistently update __bin._M_free[0]. ++ (__mt_alloc<>::allocate): When __bin._M_first[0] != NULL use ++ __bin._M_free[0] to simplify the while loop (i.e., the number ++ of iterations becomes known at the outset). ++ ++2004-05-30 Paolo Carlini ++ ++ * include/ext/mt_allocator.h (__mt_alloc<>::deallocate): ++ The critical section is actually very small, only two assignments. ++ ++2004-05-30 Paolo Carlini ++ ++ * include/ext/mt_allocator.h (__mt_alloc<>::allocate): Factor out ++ some duplicated code. ++ (__mt_alloc<>::_Bin_record): Spare the space of _M_free and _M_used ++ in the single threaded case. ++ ++2004-05-30 Paolo Carlini ++ ++ * include/ext/mt_allocator.h (__mt_alloc<>::deallocate): ++ Rearrange arithmetic to avoid computing two divisions at ++ each deallocation. ++ ++2004-05-30 Paolo Carlini ++ ++ * include/ext/mt_allocator.h (__mt_alloc<>::_S_initialize): ++ Streamline the second half, wrapping it in a single ++ '#ifdef __GTHREADS if (__gthread_active_p())' and avoiding ++ conditionals inside loops. ++ ++2004-05-30 Paolo Carlini ++ ++ * include/ext/mt_allocator.h: Uglify consistently names of ++ variables, members and classes; tidy. ++ ++2004-05-30 Dhruv Matani ++ ++ * include/ext/mt_allocator.h (__mt_alloc<>::deallocate): ++ Deallocation loop rewrote. ++ ++2004-05-30 Paolo Carlini ++ ++ * include/ext/mt_allocator.h (__mt_alloc<>::allocate, ++ __mt_alloc<>::deallocate): Protect two instances of ++ block->thread_id with __GTHREADS. ++ ++2004-05-30 Paolo Carlini ++ ++ * include/ext/mt_allocator.h (__mt_alloc<>::tune): ++ Add _M_min_bin, the size in bytes of the smallest bin. ++ (__mt_alloc<>::tune()): Tweak accordingly. ++ (__mt_alloc<>::tune(size_t, ...)): Likewise. ++ (__mt_alloc<>::block_record): Change to a union: members next ++ and thread_id are never used at the same time. ++ (__mt_alloc<>::allocate): Update consistently. ++ (__mt_alloc<>::deallocate): Likewise. ++ (__mt_alloc<>::_S_initialize): Update setups of _S_binmap and ++ _S_bin_size for the configurable _M_min_size. ++ ++2004-05-30 Paolo Carlini ++ ++ * include/ext/mt_allocator.h (__mt_alloc<>::allocate, ++ __mt_alloc<>::deallocate): Avoid redundant conditionals. ++ ++2004-05-27 Paolo Carlini ++ ++ PR libstdc++/15565 ++ * include/bits/locale_facets.tcc (__int_to_char(unsigned long), ++ __int_to_char(unsigned long long)): Showpos is not relevant ++ for unsigned types. ++ * testsuite/22_locale/num_put/put/char/15565.cc: New. ++ * testsuite/22_locale/num_put/put/wchar_t/15565.cc: New. ++ ++ * testsuite/22_locale/num_put/put/wchar_t/1.cc: Use L for the fill ++ char. ++ * testsuite/22_locale/num_put/put/wchar_t/2.cc: Likewise. ++ * testsuite/22_locale/num_put/put/wchar_t/3.cc: Likewise. ++ * testsuite/22_locale/num_put/put/wchar_t/4.cc: Likewise. ++ * testsuite/22_locale/num_put/put/wchar_t/5.cc: Likewise. ++ * testsuite/22_locale/num_put/put/wchar_t/6.cc: Likewise. ++ * testsuite/22_locale/num_put/put/wchar_t/8.cc: Likewise. ++ ++2004-05-25 Paolo Carlini ++ ++ * include/bits/istream.tcc (ignore): Correctly deal with ++ n == numeric_limits::max(). ++ * testsuite/27_io/basic_istream/ignore/char/2.cc: New. ++ ++ * include/bits/istream.tcc (basic_istream<>::getline): Prefer ++ '_M_gcount + 1 < __n' to '--__n; _M_gcount < __n', just in case ++ __n == numeric_limits<>::min(). ++ ++ * include/bits/istream.tcc: Minor tweaks. ++ ++ * testsuite/21_strings/basic_string/inserters_extractors/char/10.cc: ++ Tighten. ++ * testsuite/21_strings/basic_string/inserters_extractors/char/11.cc: ++ Likewise. ++ * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc: ++ Likewise. ++ * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc: ++ Likewise. ++ * testsuite/27_io/basic_istream/getline/char/5.cc: Likewise. ++ ++2004-05-25 Paolo Carlini ++ ++ * include/bits/istream.tcc (ignore): Remove redundant line. ++ (readsome): Tidy, closely following 27.6.1.3, p30. ++ ++2004-05-25 Paolo Carlini ++ ++ * include/bits/istream.tcc (operator>>(basic_istream<>&, ++ basic_string<>&)): Use a temporary buffer, thus avoiding ++ reallocation for common case. ++ * testsuite/21_strings/basic_string/inserters_extractors/char/11.cc: ++ New. ++ * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc: ++ Likewise. ++ ++ * include/bits/istream.tcc: Const-ification of a few variables. ++ ++ * include/bits/ostream.tcc: Trivial formatting fixes and ++ const-ification of some variables. ++ ++2004-05-25 Benjamin Kosnik ++ ++ PR libstdc++/15489 ++ * scripts/create_testsuite_files: Revert xtype change, add ++ non-GNU bits to do the same thing. ++ ++2004-05-24 Benjamin Kosnik ++ ++ PR libstdc++/12854 ++ Fixups for -Weffc++. ++ * include/bits/basic_string.h (basic_string::operator=): Return ++ pointer to this instead of result of assign. Although redundant, ++ this doesn't impact resultant codegen. ++ ++ * include/bits/locale_facets.h (__numpunct_cache): Declare ++ assignment opxserator and copy constructor private. ++ (__timepunct_cache): Same. ++ (__moneypunct_cache): Same. ++ (collate): Use member initialization list for _M_c_locale_collate. ++ * config/locale/gnu/messages_members.h: Same. ++ * config/locale/gnu/time_members.h (__timepunct): Same. ++ * src/codecvt.cc: Use member initialization list to initialize ++ _M_c_locale_codecvt. ++ * src/ctype.cc: Same, with _M_c_locale_ctype and _M_narrow_ok. ++ * config/os/gnu-linux/ctype_noninline.h: Same. ++ * src/locale.cc (_Impl): Same. ++ * src/locale_init.cc: Same. ++ * src/localename.cc: Same. ++ ++ * include/bits/basic_ios.h (basic_ios): Complete member ++ initialization list. ++ * include/bits/istream.tcc (basic_istream::sentry): Same. ++ * include/bits/ostream.tcc (basic_ostream::sentry): Same. ++ * include/bits/fstream.tcc (basic_filebuf): Add _M_lock and ++ _M_pback to member initialization list. ++ * include/std/std_streambuf.h: Same. ++ * include/std/std_sstream.h: Same, for _M_mode. ++ * src/ios.cc (ios_base): Same. ++ ++ * include/ext/rope: Make derived classes match exception ++ ++ specifications. Add copy constructors and assignment operators. ++ ++ * include/debug/safe_base.h (_Safe_sequence_base): Declare copy ++ constructor and assignment operator protected. ++ (_Safe_iterator_base): Same. ++ * include/debug/formatter.h (_Error_formatter): Define copy ++ constructor and assignment operator. ++ ++ * include/backward/strstream: Declare assignment operator and copy ++ constructor private. ++ ++2004-05-24 Benjamin Kosnik ++ ++ * testsuite/testsuite_hooks.h (func_callback): Declare copy ++ constructor and assignment operator private. ++ * testsuite/23_containers/deque/cons/clear_allocator.cc: Match ++ exception specifications of base class. ++ * testsuite/23_containers/list/cons/clear_allocator.cc: Same. ++ * testsuite/23_containers/vector/cons/clear_allocator.cc: Same. ++ * testsuite/23_containers/vector/bool/clear_allocator.cc: New. ++ ++2004-05-24 Benjamin Kosnik ++ ++ * libsupc++/cxxabi.h: Remove duplicated and useless public and ++ private keywords in class declarations. Format. Use ++ stddef.h. Expose declarations to "C" compilation. ++ * libsupc++/tinfo.cc (__upcast_result): Add copy constructor and ++ assignment operator. ++ (__dyncast_result): Same. ++ * libsupc++/vec.cc (uncatch_exception): Same, use member ++ initialization list. ++ ++2004-05-22 Benjamin Kosnik ++ ++ * testsuite/abi_check.cc: Add unistd.h. ++ ++2004-05-21 Matthias Klose ++ ++ * docs/doxygen/run_doxygen: Bump required version. ++ ++2004-05-21 Benjamin Kosnik ++ ++ * docs/html/abi.html (libgcc_s): Additions suggested by Matthias Klose. ++ * docs/doxygen/Intro.3: Subtractions suggested by Phil Edwards. ++ ++2004-05-21 Benjamin Kosnik ++ ++ PR libstdc++/15123 ++ PR libstdc++/13928 ++ * docs/doxygen/Intro.3: Remove Allocators.3. ++ Add new extension headers, extension namespace list. ++ * docs/doxygen/run_doxygen (problematic): Remove Allocators.3 ++ Rename GLIBCXXSTD names to std::. Rename __gnu_debug to ++ __gnu_debug::. Remove __policy_ renames. ++ * docs/doxygen/guide.html: Add dot note. ++ * docs/doxygen/stdheader.cc: Edit, add files. ++ * docs/doxygen/user.cfg.in: Regenerate with Doxygen 1.3.7. ++ ++2004-05-19 Jan Beulich ++ ++ PR libstdc++/15489 ++ * scripts/create_testsuite_files: Also find source files through ++ symbolic links. ++ ++2004-05-19 Jan Beulich ++ ++ PR libstdc++/15488 ++ * testsuite/lib/libstdc++.exp: Make test files writable. ++ ++2004-05-18 Jonathan Wakely ++ ++ * include/ext/stdio_filebuf.h: Update comments to reflect PR 11691. ++ ++2004-05-18 Benjamin Kosnik ++ ++ * testsuite/testsuite_hooks.h (__gnu_test::conversion): New class. ++ * testsuite/23_containers/deque/14340.cc: New. ++ * testsuite/23_containers/list/14340.cc: New. ++ * testsuite/23_containers/map/14340.cc: New. ++ * testsuite/23_containers/multimap/14340.cc: New. ++ * testsuite/23_containers/multiset/14340.cc: New. ++ * testsuite/23_containers/set/14340.cc: New. ++ * testsuite/23_containers/vector/14340.cc: New. ++ ++2004-05-18 Douglas Gregor ++ ++ PR libstdc++/14340 ++ * include/debug/safe_iterator.h (_Safe_iterator converting ++ constructor): Only allow declaration to instantiate when the ++ incoming _Safe_iterator has exactly the right iterator type. ++ ++2004-05-18 Jonathan Wakely ++ ++ * include/ext/enc_filebuf.h: Move concept-check macro to class scope. ++ ++2004-05-17 Jonathan Wakely ++ ++ * include/bits/boost_concept_check.h: Fix old attribute syntax. ++ * testsuite/23_containers/map/modifiers/swap.cc: Define operator< ++ to pass concept-checks. ++ * testsuite/23_containers/multimap/modifiers/swap.cc: Same. ++ * testsuite/23_containers/set/modifiers/swap.cc: Same. ++ * testsuite/23_containers/multiset/modifiers/swap.cc: Same. ++ ++2004-05-15 Benjamin Kosnik ++ ++ PR libstdc++/15046 ++ * crossconfig.m4: Add C99 math bits for linux crosses. ++ * configure: Regenerate. ++ ++2004-05-15 Simon Marshall ++ Benjamin Kosnik ++ ++ PR libstdc++/15090 ++ * include/bits/locale_facets.h: Fix for -fno-for-scope. ++ * include/debug/safe_sequence.h: Same. ++ * include/debug/safe_iterator.tcc: Same. ++ * src/debug.cc: Same. ++ * src/locale.cc: Same. ++ * src/locale_init.cc: Same. ++ * src/localename.cc: Same. ++ * config/locale/gnu/ctype_members.cc: Same. ++ * config/locale/gnu/numeric_members.cc: Same. ++ * testsuite/testsuite_abi.cc: Same. ++ * testsuite/testsuite_hooks.cc: Same. ++ ++2004-05-15 Jonathan Wakely ++ ++ * docs/html/abi.html: Document effect of -fabi-version on value ++ of __GXX_ABI_VERSION, and that it's defined in c-cppbuiltin.c. ++ Fix markup. ++ ++2004-05-15 Benjamin Kosnik ++ ++ * docs/html/abi.html: New. ++ * docs/html/abi.txt: Remove. ++ * docs/html/documentation.html: Add link. ++ * testsuite/Makefile.am: Add files. ++ * testsuite/Makefile.in: Regenerated. ++ * testsuite/abi_check.cc: Move and modify code into... ++ * testsuite/testsuite_abi.cc: Add. ++ * testsuite/testsuite_abi.h: Add. ++ ++ * docs/html/17_intro/TODO: Update. ++ * include/bits/stl_pair.h: Format. ++ ++2004-05-14 Paolo Carlini ++ Ivan Godard ++ ++ PR libstdc++/15361 ++ * include/std/std_bitset.h (_Base_bitset<_Nw>::_M_do_find_next): Fix. ++ * testsuite/23_containers/bitset/ext/15361.cc: New. ++ ++2004-05-14 Paolo Carlini ++ ++ PR libstdc++/14775 ++ * acconfig.h: Rename _GLIBCXX_MEM_LIMITS to _GLIBCXX_RES_LIMITS. ++ * acinclude.m4 (GLIBCXX_CHECK_SETRLIMIT): Call ++ GLIBCXX_CHECK_SETRLIMIT_ancilliary for FSIZE too, adjust define ++ to _GLIBCXX_RES_LIMITS. ++ (GLIBCXX_CHECK_SETRLIMIT_ancilliary): Rename HAVE_MEMLIMIT_* to ++ HAVE_LIMIT_*. ++ * testsuite/testsuite_hooks.h: Declare set_file_limit. ++ * testsuite/testsuite_hooks.cc: Define it, using getrlimit ++ and setrlimit(RLIMIT_FSIZE). ++ * testsuite/27_io/fpos/14775.cc: New. ++ * config.h.in: Regenerate. ++ * configure: Likewise. ++ ++2004-05-13 Benjamin Kosnik ++ ++ PR libstdc++/15074 ++ * docs/html/faq/index.html: Update docs for libsupc++ usage. ++ ++2004-05-13 Benjamin Kosnik ++ ++ PR libstdc++/15412 ++ * include/bits/stl_threads.h (_GLIBCXX_mutex): Move to namespace ++ __gnu_internal. ++ (_GLIBCXX_mutex_address): Same. ++ (_GLIBCXX_once): Same. ++ (_GLIBCXX_mutex_init): Same. ++ (_GLIBCXX_mutex_address_init): Same. ++ ++2004-05-09 Paolo Carlini ++ ++ * testsuite/21_strings/basic_string/inserters_extractors/char/10.cc: ++ New. ++ * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc: ++ Likewise. ++ * testsuite/27_io/basic_istream/getline/char/5.cc: Likewise. ++ ++2004-05-09 Paolo Carlini ++ ++ PR libstdc++/15002 (continued again) ++ * include/bits/istream.tcc (getline(basic_istream<>&, ++ basic_string<>&, _CharT)): Use a temporary buffer, thus ++ avoiding reallocation for common case. ++ ++ * include/bits/basic_string.tcc (_S_construct(_InIterator, ++ _InIterator, const _Alloc&, input_iterator_tag)): Tweak size ++ of temporary buffer to a power of two. ++ ++ * testsuite/27_io/basic_istream/getline/char/4.cc: Add comment. ++ ++2004-05-09 Paolo Carlini ++ Petur Runolfsson ++ ++ PR libstdc++/15002 (continued) ++ * include/bits/istream.tcc (basic_istream<>::getline(char_type*, ++ streamsize, char_type)): Use traits::find/copy in a loop to speed ++ up greatly the function in the common case (I/O buffer size >> 1). ++ ++2004-05-09 Paolo Carlini ++ ++ * testsuite/27_io/basic_istream/getline/char/4.cc: New. ++ ++ * include/bits/istream.tcc (getline(basic_istream<>&, ++ basic_string<>&, _CharT)): Change to use sgetc()/snextc() instead ++ of sbumpc(), consistently with the other functions, thus also ++ dealing correctly with the case of exceeded string::max_size(). ++ ++2004-05-06 Matthias Klose ++ ++ * include/backward/iterator.h: Add GPL copyright info, ++ with exception clause. ++ * include/bits/boost_concept_check.h: Likewise. ++ * include ++ * libsupc++/tinfo.h: Likewise. ++ * po/string_literals.cc: Likewise. ++ ++2004-05-02 Paolo Carlini ++ ++ * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Add pool_allocator. ++ * aclocal.m4: Regenerate. ++ * configure: Regenerate. ++ * config/allocator/pool_allocator_base.h: New. ++ * include/ext/pool_allocator.h: Convert to a standard-conforming ++ allocator. ++ * src/allocator.cc: Tweak instantiations. ++ * testsuite/performance/20_util/allocator/insert.cc: Add __pool_alloc. ++ * testsuite/performance/20_util/allocator/insert_insert.cc: Ditto. ++ * testsuite/performance/20_util/allocator/list_sort_search.cc: Ditto. ++ * testsuite/performance/20_util/allocator/map_mt_find.cc: Ditto. ++ * testsuite/performance/20_util/allocator/map_thread.cc: Ditto. ++ * testsuite/performance/20_util/allocator/producer_consumer.cc: Ditto. ++ ++2004-04-30 Paolo Carlini ++ ++ PR libstdc++/14220 ++ * include/bits/locale_facets.tcc (num_put<>::_M_insert_float): ++ Don't clip the precision passed down to __convert_from_v: ++ 22.2.2.2.2 nowhere says so. ++ * testsuite/22_locale/num_put/put/char/14220.cc: New. ++ * testsuite/22_locale/num_put/put/wchar_t/14220.c: Likewise. ++ ++2004-04-29 Benjamin Kosnik ++ ++ * testsuite/27_io/basic_istream/extractors_character/char/9555-ic.cc: ++ Clarify assertion, set test variable to false before assert. ++ * testsuite/27_io/basic_istringstream/str/char/1.cc: Same. ++ * testsuite/27_io/basic_stringstream/str/char/1.cc: Same. ++ * testsuite/27_io/ios_base/storage/2.cc: Same. ++ ++ * testsuite/27_io/basic_filebuf/imbue/char/13171-4.cc: Fix ++ function returns. ++ * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Same. ++ * testsuite/27_io/fpos/14320-3.cc: Same. ++ ++ * testsuite/27_io/basic_filebuf/2.cc: Instantiate in namespace std. ++ * testsuite/27_io/fpos/1.cc: Same. ++ * testsuite/27_io/basic_stringstream/2.cc: Same. ++ * testsuite/27_io/basic_stringbuf/4.cc: Same. ++ * testsuite/27_io/basic_stringbuf/1.cc: Same. ++ * testsuite/27_io/basic_stringbuf/2.cc: Same. ++ * testsuite/27_io/basic_streambuf/2.cc: Same. ++ * testsuite/27_io/basic_ostringstream/2.cc: Same. ++ * testsuite/27_io/basic_ostream/2.cc: Same. ++ * testsuite/27_io/basic_ofstream/2.cc: Same. ++ * testsuite/27_io/basic_istringstream/2.cc: Same. ++ * testsuite/27_io/basic_istream/2.cc: Same. ++ * testsuite/27_io/basic_iostream/2.cc: Same. ++ * testsuite/27_io/basic_ios/2.cc: Same. ++ * testsuite/27_io/basic_ifstream/2.cc: Same. ++ * testsuite/27_io/basic_fstream/2.cc: Same. ++ * testsuite/ext/stdio_filebuf/char/1.cc: Same, in namespace __gnu_cxx. ++ ++ * testsuite/21_strings/basic_string/capacity/1.cc: Don't compare ++ unsigned against zero. ++ * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc: Same. ++ * testsuite/21_strings/basic_string/capacity/char/1.cc: Same. ++ ++ * testsuite/18_support/new_delete_placement.cc: Initialize ++ variables before first use. ++ * testsuite/21_strings/char_traits/requirements/wchar_t/1.cc: Same. ++ * testsuite/21_strings/char_traits/requirements/char/1.cc: Same. ++ * testsuite/21_strings/char_traits/requirements/short/1.cc: Same. ++ * testsuite/27_io/basic_istream/seekg/char/exceptions_badbit_throw.cc: ++ Same. ++ * testsuite/27_io/basic_ostream/inserters_arithmetic/char/exceptions_badbit_throw.cc: Same. ++ * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc: ++ Same. ++ * testsuite/27_io/basic_ostream/inserters_arithmetic/char/exceptions_failbit_throw.cc: Same. ++ * testsuite/27_io/types/2.cc: Same. ++ ++ * testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc: Fix temporary ++ file name. ++ ++2004-04-29 Benjamin Kosnik ++ ++ Fixups for EDG front end. ++ * include/ext/rope: Instead of non-existent function ++ _Data_allocate, use allocator's allocate. Use this. ++ (namespace _Rope_constants): Move _S_max_rope_depth, and _Tag ++ enumerations from _Rope_RopeRep here. ++ * include/ext/ropeimpl.h: Same. ++ * src/ext-inst.cc (_S_min_len): Fix up definition. ++ ++ * config/locale/gnu/ctype_members.cc: Qualify base class members ++ with this. ++ * config/locale/generic/ctype_members.cc: Same. ++ * config/locale/gnu/messages_members.h: Same. ++ * config/locale/generic/messages_members.h: Same. ++ * src/ctype.cc: Same. ++ * include/bits/codecvt.h: Same. ++ ++ * include/bits/boost_concept_check.h: Declare. ++ (__error_type_must_be_an_unsigned_integer_type): Remove this. ++ (__error_type_must_be_an_integer_type): Remove this. ++ (__error_type_must_be_a_signed_integer_type): Remove this. ++ ++ * config/io/basic_file_stdio.cc (__basic_file::sys_open): Remove cast. ++ ++ * libsupc++/eh_alloc.cc (__cxa_free_exception): Add exception ++ specification to definition. ++ (__cxa_allocate_exception): Same. ++ * libsupc++/eh_catch.cc (__cxa_begin_catch): Same. ++ * libsupc++/eh_globals.cc (__cxa_get_globals_fast): Same. ++ (__cxa_get_globals): Same. ++ ++ * libsupc++/del_op.cc: Add comment about freestanding. ++ ++2004-04-29 Dhruv Matani ++ ++ * include/ext/malloc_allocator.h: Fixed the construct function to ++ call global placement new instead of assignment. Added a check ++ after the return from malloc to check whether returned pointer is ++ NULL, and if so, throw std::bad_alloc(). ++ * include/ext/debug_allocator.h: Added a check in the deallocate ++ function to check whether the user has passed a NULL pointer or ++ not. ++ ++2004-04-29 Benjamin Kosnik ++ ++ * docs/html/20_util/allocator.html: Add bitmap_allocator links. ++ ++2004-04-29 Dhruv Matani ++ ++ * include/ext/bitmap_allocator.h: (_Bit_scan_forward) -> Made this ++ function call __builtin_ctz instead of the while loop. ++ (allocate) -> If condition has __builtin_expect. ++ (deallocate) -> Ditto. ++ Renamed a few left-over variables and typedefs according to the ++ C++STYLE mentioned in the documentation. ++ Protected calls to __gthread* by __gthread_active_p(), whose value ++ is cached in the local variable __threads_active. ++ ++2004-04-29 Felix Yen ++ ++ * testsuite/performance/20_util/allocator/producer_consumer.cc: ++ Use linear algorithm for producer. ++ ++2004-04-29 Paolo Carlini ++ ++ PR libstdc++/14975 ++ * include/bits/fstream.tcc (basic_filebuf::imbue): Zero _M_codecvt ++ in case of error. ++ * testsuite/27_io/basic_filebuf/imbue/char/14975-1.cc: New. ++ * testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc: New. ++ ++2004-04-26 Paolo Carlini ++ ++ * include/bits/istream.tcc: Fix comment. ++ ++2004-04-26 Paolo Carlini ++ ++ * src/locale.cc (locale::operator==): When _M_impl == __rhs._M_impl ++ avoid constructing unnecessarily this->name(). ++ ++2004-04-24 Loren J. Rittle ++ ++ * testsuite/thread/pthread7-rope.cc: Update comment to reflect test. ++ ++2004-04-24 Paolo Carlini ++ ++ * testsuite/thread/pthread7-rope.cc: Fix, unpredictably, depending ++ on allocator behavior, the memory pointed by data2 may well be not ++ trashed. ++ ++2004-04-24 Paolo Carlini ++ ++ * config/locale/generic/time_members.cc ++ (__timepunct::_M_initialize_timepunct, ++ __timepunct::_M_initialize_timepunct): The correct ++ _M_amonth07 in the "C" locale is "Jul" and L"Jul", respectively. ++ * config/locale/gnu/time_members.cc ++ (__timepunct::_M_initialize_timepunct, ++ __timepunct::_M_initialize_timepunct): Ditto. ++ * testsuite/22_locale/time_get/get_monthname/char/4.cc: New. ++ * testsuite/22_locale/time_get/get_monthname/wchar_t/4.cc: New. ++ ++2004-04-24 Paolo Carlini ++ Petur Runolfsson ++ ++ * testsuite/performance/27_io/filebuf_sputn_unbuf.cc: New, ++ adapted from libstdc++/11378. ++ ++2004-04-24 Paolo Carlini ++ Andrew Pinski ++ ++ * include/bits/basic_string.tcc (_M_mutate): Don't compute ++ __src unnecessarily. ++ ++2004-04-24 Paolo Carlini ++ ++ PR libstdc++/15002 (partial) ++ * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe): ++ Special case __n2 == 1, not calling traits_type::assign/copy. ++ ++2004-04-24 Matthias Klose ++ ++ Jonathan Wakely ++ * docs/html/configopts.html: Fix reference to allocator config option. ++ ++2004-04-23 Daniel Jacobowitz ++ ++ PR libstdc++/15047, libstdc++/11610 ++ * testsuite/lib/libstdc++.exp (v3-copy-files): Use remote_download. ++ (libstdc++_init): Don't pass outdir to v3-copy-files. ++ ++2004-04-23 Paolo Carlini ++ ++ * config/locale/gnu/monetary_members.cc ++ (moneypunct::_M_initialize_moneypunct): Prefer ++ _NL_MONETARY_DECIMAL_POINT_WC, _NL_MONETARY_THOUSANDS_SEP_WC, ++ and __MON_GROUPING to _NL_NUMERIC_DECIMAL_POINT_WC, ++ _NL_NUMERIC_THOUSANDS_SEP_WC, and GROUPING. ++ * config/locale/gnu/numeric_members.cc ++ (numpunct::_M_initialize_numpunct): Prefer DECIMAL_POINT ++ and THOUSANDS_SEP to the deprecated RADIXCHAR and THOUSEP. ++ ++2004-04-21 Chavdar Botev ++ ++ PR libstdc++/14245 ++ * include/bits/basic_string.tcc ++ (basic_string::basic_string(const basic_string&)): Pass to ++ _Rep::_M_grab the actual allocator of the string being constructed ++ not the default constructed one. ++ ++2004-04-21 Paolo Carlini ++ Petur Runolfsson ++ ++ PR libstdc++/12077 ++ * include/ext/stdio_sync_filebuf.h (showmanyc): Remove, there's ++ no way to find out the conversion used by the underlying FILE*. ++ * testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc: New. ++ * testsuite/27_io/objects/char/9.cc: Tweak. ++ ++2004-04-18 Release Manager ++ ++ * GCC 3.4.0 released. ++ ++2004-04-17 Benjamin Kosnik ++ ++ * include/bits/stl_bvector.h: Use _M_impl._M_start. ++ ++2004-04-16 Benjamin Kosnik ++ ++ * include/bits/c++config (_GLIBCXX_STD): New. ++ * src/list.cc: Use it. ++ * include/std/std_bitset.h: Same. ++ * include/bits/vector.tcc: Same. ++ * include/bits/stl_set.h: Same. ++ * include/bits/stl_multiset.h: Same. ++ * include/bits/stl_multimap.h: Same. ++ * include/bits/stl_map.h: Same. ++ * include/bits/stl_list.h: Same. ++ * include/bits/stl_vector.h: Same. ++ * include/bits/stl_bvector.h: Same. ++ * include/bits/stl_deque.h: Same. ++ * include/bits/deque.tcc: Same. ++ * include/bits/list.tcc: Same. ++ * include/debug/vector: Same. ++ * include/debug/set.h: Same. ++ * include/debug/multiset.h: Same. ++ * include/debug/multimap.h: Same. ++ * include/debug/map.h: Same. ++ * include/debug/list: Same. ++ * include/debug/deque: Same. ++ * include/debug/bitset: Same. ++ * include/debug/formatter.h (__gnu_debug): Remove using directive. ++ Add using declaration for std::type_info. ++ * include/debug/safe_iterator.h: Add using declaration for ++ std::iterator_traits and std::pair. ++ * src/debug_list.cc: New. ++ * src/Makefile.am: Add debug_list.cc. ++ * src/Makefile.in: Regenerate. ++ * config/linker-map.gnu: Add _List_node_base exports for std and ++ __gnu_norm. ++ ++ * include/bits/stl_bvector.h (_Bvector_base): Use _Bvector_impl ++ idiom that other containers use. ++ * testsuite/23_containers/vector/bool/clear_allocator.cc: New. ++ ++2004-04-14 Zack Weinberg ++ ++ * testsuite/Makefile.am: Add definition of AM_CXXFLAGS. ++ Change definition of CXX to use $(shell) instead of backticks. ++ * testsuite/Makefile.in: Regenerate. ++ ++2004-04-09 Andreas Schwab ++ ++ * testsuite/lib/prune.exp (prune_g++_output): Ignore errata ++ warning from IA64 assembler. ++ ++2004-03-30 Benjamin Kosnik ++ ++ PR libstdc++/14783 ++ * include/bits/stl_tree.h: Adjust initialization list order. ++ ++2004-03-26 Benjamin Kosnik ++ ++ libstdc++ PR/13598 ++ * config/locale/ieee_1003.1-2001/codecvt_specializations.h ++ (__enc_traits::_M_destroy): New. ++ (__enc_traits::~__enc_traits): Use it. ++ (__enc_traits::operator=): Use _M_destroy, _M_init. ++ (__enc_traits::__enc_traits): Same. ++ ++2004-03-26 Petur Runolfsson ++ ++ * testsuite/ext/enc_filebuf/char/13598.cc: New. ++ ++2004-03-25 Gawain Bolton ++ ++ * include/bits/stl_tree.h (_Rb_tree_impl): Add _Node_allocator ++ default argument in constructors. ++ (_Rb_tree::_M_empty_initialize): Remove. ++ ++2004-03-25 Benjamin Kosnik ++ ++ * testsuite/23_containers/map/operators/1_neg.cc: Adjust line numbers. ++ * testsuite/23_containers/set/operators/1_neg.cc: Same. ++ ++2004-03-25 Dhruv Matani ++ ++ * include/bits/cpp_type_traits.h: Changed __is_pod ++ completely. Now, it does not use any of the previous type_traits ++ to detect the pod types, and it also detects function pointers as ++ POD types. ++ ++ * include/bits/stl_tree.h: Introduced a new class _Rb_tree_impl, ++ which encapsulates the internal implementation of an rb_tree. Made ++ the allocator a base class of this class instead of the rb_tree, ++ which was not conforming. This _Rb_tree_impl class is also ++ specialized on whether the _Compare parameter is a POD type or ++ not. If so, then it maintains the comparison function as a data ++ member, otherwise it makes the _Compare parameter a base class of ++ itself. Also, _M_key_compare is now a function instead of a data ++ member, so that the above trick can work properly. Delegated the ++ initialization of the other data members to this newly created ++ class. Also, now other member functions of rb_tree must refer to ++ _M_key_compare as _M_impl._M_key_compare(). The other data members ++ (*) can be referenced to as _M_impl.(*), where ++ (*) includes _M_header, and _M_node_count. ++ ++2004-03-25 Dhruv Matani ++ ++ * include/bits/stl_list.h: Created a _List_impl class and made it ++ derive from the allocator, instead of the list deriving from the ++ allocator class, which was not conformant. Changed all references ++ from this->_M_node to this->_M_impl._M_node * bits/list.tcc: Same ++ as above (changed all references to the concerned variables). ++ ++2004-03-25 Dhruv Matani ++ ++ * include/bits/stl_deque.h: Created a _Deque_impl class and made ++ it derive from the allocator, instead of the deque deriving from ++ the allocator class, which was not conformant. Changed all ++ references to the _M_start, _M_finish, _M_map, and _M_map_size to ++ _M_impl.*. ++ (_Deque_base<_Tp,_Alloc>::~_Deque_base()): Added this-> ++ qualification in 2 places where it was missing. ++ (_Deque_base<_Tp,_Alloc>::_M_initialize_map(size_t)): Same as ++ above. ++ * include/bits/deque.tcc: Same as above (changed all references to ++ the concerned variables). ++ ++2004-03-25 Dhruv Matani ++ ++ * include/bits/stl_vector.h: Created a _Vector_impl class and made ++ it derive from the allocator, instead of the _Vector_base class, ++ deriving from the allocator which was not conformant. Changed all ++ references to the _M_start, _M_finish, and _M_end_of_storage to ++ _M_impl.*. ++ * include/bits/vector.tcc: Same as above (changed all references ++ to the concerned variables). ++ ++2004-03-25 Dhruv Matani ++ ++ * testsuite/23_containers/deque/cons/clear_allocator.cc: New. ++ * testsuite/23_containers/list/cons/clear_allocator.cc: New. ++ * testsuite/23_containers/vector/cons/clear_allocator.cc: New. ++ ++2004-03-23 Benjamin Kosnik ++ ++ * include/bits/locale_facets.h: Tweaks for 80 column. ++ (__numpunct_cache::_M_cache): Move to locale_facets.tcc. ++ (__moneypunct_cache::_M_cache): Same. ++ (num_get): Don't inherit from __num_base. ++ (num_put): Same. ++ (money_get): Don't inherit from money_base. ++ (money_put): Same. ++ (__timepunct::_M_am_pm_format): New. ++ (time_get::_M_extract_num): Return iterator, use ios_base as argument. ++ (time_get::_M_extract_name): Same. ++ (time_get::_M_extract_via_format): Same. ++ * include/bits/locale_facets.tcc: Tweaks for 80 column. ++ Use _M_getloc instead of getloc. ++ * testsuite/22_locale/money_put/put/char/9780-3.cc: New. ++ * testsuite/22_locale/num_put/put/char/9780-2.cc: New. ++ * testsuite/22_locale/time_put/put/char/9780-1.cc: New. ++ ++2004-03-22 Hans-Peter Nilsson ++ ++ PR target/14676 ++ * config/cpu/cris/atomicity.h (__atomic_add): Remove "static ++ inline" and attribute-unused. Qualify parameter __mem with ++ "volatile". ++ (__exchange_and_add): Ditto. Add back memory clobber to asm. ++ ++2004-03-19 Peter Schmid ++ ++ PR libstdc++/14647 ++ * include/backward/bvector.h (bit_vector): Allocator is in std ++ namespace. ++ ++2004-03-20 Paolo Carlini ++ ++ * include/std/std_valarray.h: Document DR389 [Ready]. ++ * docs/html/ext/howto.html: Add an entry for DR389. ++ ++2004-03-19 Paolo Carlini ++ ++ PR libstdc++/14648 ++ * include/ext/ropeimpl.h (rope<>::_S_apply_to_pieces): Fix ++ memory allocation/deallocation calls. ++ * testsuite/ext/14648.cc: New. ++ ++2004-03-17 Benjamin Kosnik ++ ++ Revert. ++ * configure.ac (AC_PREREQ): Use 2.57. ++ (AM_INIT_AUTOMAKE): Remove -Wno-override. ++ ++2004-03-17 David Billinghurst ++ ++ PR bootstrap/14207 ++ Revert patch of 2004-02-17, as it breaks mips-sgi-irix6.5 -o32 ++ (Almost certainly a target issue) ++ * include/bits/locale_facets.tcc (num_get<>::_M_extract_float, ++ num_get<>::_M_extract_int, money_get<>::do_get): Simplify ++ grouping fidelity conditional. ++ ++2004-03-17 Benjamin Kosnik ++ ++ Revert dg-require-iconv changes. ++ * testsuite/22_locale/collate/compare/wchar_t/2.cc: Revert. ++ * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc: Same. ++ * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc: Same. ++ * testsuite/22_locale/collate/hash/wchar_t/2.cc: Same. ++ * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc: Same. ++ * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc: Same. ++ * testsuite/22_locale/collate/transform/wchar_t/2.cc: Same. ++ * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc: Same. ++ * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc: ++ ++2004-03-16 Benjamin Kosnik ++ ++ * Merge from mainline. ++ ++2004-03-16 Benjamin Kosnik ++ ++ * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Default setting is ++ new_allocator for all hosts. ++ * configure: Regenerate. ++ ++2004-03-16 Paolo Carlini ++ ++ * testsuite/22_locale/num_put/put/char/4.cc: Fix for 64-bit pointers. ++ * testsuite/22_locale/num_put/put/wchar_t/4.cc: Likewise. ++ ++2004-03-15 Paolo Carlini ++ ++ * include/bits/locale_facets.tcc (money_get<>::_M_extract): ++ Adjust the logic underlying the parsing of symbol to deal ++ correctly with an optional sign component (i.e., when either ++ negative_sign or positive_sign is empty) ++ * testsuite/22_locale/money_get/get/char/19.cc: New. ++ * testsuite/22_locale/money_get/get/wchar_t/19.cc: New. ++ ++2004-03-15 Paolo Carlini ++ ++ * include/bits/locale_facets.tcc (money_get<>::_M_extract): ++ Do not accept an incomplete currency symbol. ++ * testsuite/22_locale/money_get/get/char/18.cc: New. ++ * testsuite/22_locale/money_get/get/wchar_t/18.cc: New. ++ ++2004-03-13 Benjamin Kosnik ++ ++ * config/allocator: New. ++ * config/allocator/bitmap_allocator_base.h: New. ++ * config/allocator/malloc_allocator_base.h: New. ++ * config/allocator/mt_allocator_base.h: New. ++ * config/allocator/new_allocator_base.h: New. ++ * include/bits/allocator.h: Include c++allocator.h. ++ * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): New. ++ * aclocal.m4: Regenerate. ++ * configure.ac: Use GLIBCXX_ENABLE_ALLOCATOR. ++ * configure: Regenerate. ++ * include/Makefile.am (host_headers_extra): Add c++allocator.h. ++ * include/Makefile.in: Regenerate. ++ * docs/html/configopts.html: Add enable-libstdcxx-allocator. ++ ++2004-03-12 Benjamin Kosnik ++ ++ * include/bits/allocator.h: Revert. ++ ++2004-03-12 Paolo Carlini ++ ++ * docs/html/ext/howto.html: Add entry for DR 253 [Ready]. ++ * include/bits/gslice_array.h: Add comment about DR 253. ++ * include/bits/indirect_array.h: Likewise. ++ * include/bits/mask_array.h: Likewise. ++ * include/bits/slice_array.h: Likewise. ++ ++2004-03-12 Benjamin Kosnik ++ ++ * testsuite/20_util/allocator/14176.cc: New. ++ * include/ext/mt_allocator.h: Formatting fixes. ++ ++2004-03-11 Dhruv Matani ++ ++ * include/Makefile.am (ext_headers): Add ++ ${ext_srcdir}/bitmap_allocator.h . ++ * include/Makefile.in: Regenerate. ++ * docs/html/ext/ballocator_doc.txt: New file. ++ * include/ext/bitmap_allocator.h: New file. ++ * testsuite/performance/20_util/allocator/list_sort_search.cc: Add ++ test. ++ * testsuite/performance/20_util/allocator/map_mt_find.cc: Likewise. ++ * testsuite/performance/20_util/allocator/producer_consumer.cc: Add ++ test for the bitmap_allocator<>. ++ * testsuite/performance/20_util/allocator/insert.cc: Likewise. ++ * testsuite/performance/20_util/allocator/insert_insert.cc: Likewise. ++ * testsuite/performance/20_util/allocator/map_thread.cc: Likewise. ++ ++2004-03-11 Paolo Carlini ++ ++ * include/std/std_complex.h (pow(const complex&, const _Tp&), ++ pow(const _Tp&, const complex&), pow(const complex&, ++ const complex&)): Fully qualify with std:: a few calls. ++ * testsuite/26_numerics/complex/13450.cc: Minor tweak. ++ ++2004-03-11 Steven Bosscher ++ ++ PR libstdc++/11706 ++ * include/c_std/cmath.tcc (__cmath_power): Define inline. ++ ++2004-03-10 Kelley Cook ++ ++ * configure.ac: Bump AC_PREREQ to 2.59. ++ ++2004-03-10 Paolo Carlini ++ ++ * testsuite/26_numerics/valarray_subset_assignment.cc: Fix typos. ++ ++2004-03-10 Paul Kienzle ++ Paolo Carlini ++ ++ PR libstdc++/13450 ++ * include/std/std_complex.h (pow(const complex&, const _Tp&), ++ pow(const _Tp&, const complex&)): Use cmath pow only when safe. ++ * testsuite/26_numerics/complex/13450.cc: New. ++ ++ * testsuite/26_numerics/cmath/overloads.C: Rename to overloads.cc. ++ * testsuite/26_numerics/complex/pow.C: Rename to pow.cc and fix. ++ ++2004-03-10 Jerry Quinn ++ ++ PR libstdc++/3247 ++ * include/bits/gslice_array.h (gslice_array()): Make public. ++ (operator=(gslice_array)): Make public. Implement. ++ * include/bits/indirect_array.h (indirect_array()): Make public. ++ * include/bits/mask_array.h (mask_array()): Make public. ++ (operator=(mask_array)): Make public. Implement. ++ * include/bits/valarray_array.tcc (__valarray_copy): ++ Comment. Add versions for gslice_array and mask_array. ++ * testsuite/26_numerics/valarray_subset_assignment.cc: New test. ++ ++2004-03-09 Benjamin Kosnik ++ ++ * testsuite/23_containers/deque/modifiers/swap.cc: Add in bits for ++ non-weak systems. ++ * testsuite/23_containers/vector/modifiers/swap.cc: Same. ++ * testsuite/23_containers/set/modifiers/swap.cc: Same. ++ * testsuite/23_containers/multiset/modifiers/swap.cc: Same. ++ * testsuite/23_containers/multimap/modifiers/swap.cc: Same. ++ * testsuite/23_containers/map/modifiers/swap.cc: Same. ++ * testsuite/23_containers/list/modifiers/swap.cc: Same. ++ ++ * testsuite/22_locale/locale/cons/12658_thread.cc: Catch exceptions. ++ ++2004-03-08 Benjamin Kosnik ++ ++ PR c++/13658 ++ * testsuite/23_containers/deque/modifiers/swap.cc: New. ++ * testsuite/23_containers/list/modifiers/swap.cc: New. ++ * testsuite/23_containers/map/modifiers/swap.cc: New. ++ * testsuite/23_containers/multimap/modifiers/swap.cc: New. ++ * testsuite/23_containers/multiset/modifiers/swap.cc: New. ++ * testsuite/23_containers/set/modifiers/swap.cc: New. ++ * testsuite/23_containers/vector/modifiers/swap.cc: New. ++ ++2004-03-08 Petur Runolfsson ++ ++ PR libstdc++/12658 ++ * testsuite/22_locale/locale/cons/12658_thread.cc: New. ++ ++2004-03-08 Paolo Carlini ++ ++ * docs/html/ext/howto.html: Add entry for DR 103 [WP]. ++ * include/bits/stl_multiset.h: Add comment about DR 103. ++ * include/bits/stl_set.h: Likewise. ++ ++2004-03-08 Paolo Carlini ++ ++ * include/bits/locale_facets.tcc (money_get<>::_M_extract): ++ The value _space_ indicates that at least one space is required ++ at that position. ++ * testsuite/22_locale/money_get/get/char/17.cc: New. ++ * testsuite/22_locale/money_get/get/wchar_t/17.cc: New. ++ ++ * testsuite/22_locale/money_get/get/char/7.cc: Minor tweaks. ++ * testsuite/22_locale/money_get/get/wchar_t/7.cc: Likewise. ++ ++ * include/bits/locale_facets.tcc (money_get<>::do_get(long_double&)): ++ Remove redundant conditional on __str.size(). ++ ++2004-03-08 Benjamin Kosnik ++ ++ * include/bits/allocator.h: Switch defaults to mt_alloc. ++ ++2004-03-06 Benjamin Kosnik ++ ++ * include/ext/mt_allocator.h (_S_initialize): If ++ !__GTHREAD_MUTEX_INIT, then initialize _S_thread_freelist_mutex. ++ ++2004-03-06 Benjamin Kosnik ++ ++ PR libstdc++/12658 ++ * src/locale_init.cc (locale::locale): Lock critical regions with ++ external mutexes. ++ (locale::global): Same. ++ * include/bits/concurrence.h (__glibcxx_mutex_define_initialized): ++ Add in once bits for cases without __GTHREAD_MUTEX_INIT. ++ (__glibcxx_mutex_lock): Same. ++ ++ * config/cpu/generic/atomicity.h: Remove ++ _GLIBCXX_NEED_GENERIC_MUTEX, use concurrence.h. ++ * src/misc-inst.cc: Move all locking bits out of this file. ++ ++ * config/os/hpux/os_defines.h: Remove _GLIBCXX_INST_ATOMICITY_LOCK. ++ * src/misc-inst.cc: Same. ++ * config/cpu/hppa/atomicity.h: Same. ++ ++ * config/linker-map.gnu: Remove types in the signature of atomic ++ exports, as they may vary. ++ ++2004-03-06 Paolo Carlini ++ ++ * include/bits/locale_facets.tcc: Tweak the comment preceding ++ has_facet: doesn't throw. ++ ++2004-03-06 Paolo Carlini ++ ++ * testsuite/22_locale/money_get/get/char/1.cc: Clean up. ++ * testsuite/22_locale/money_get/get/char/2.cc: Likewise. ++ * testsuite/22_locale/money_get/get/char/3.cc: Likewise. ++ * testsuite/22_locale/money_get/get/char/4.cc: Likewise. ++ * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise. ++ * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise. ++ * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise. ++ * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise. ++ ++2004-03-06 Paolo Carlini ++ ++ * include/bits/locale_facets.tcc (num_get<>::_M_extract_float, ++ num_get<>::_M_extract_int, num_get<>::do_get(bool&), ++ __pad<>::_S_pad): Prefer plain operator== to traits::eq(). ++ * testsuite/testsuite_character.h (struct __gnu_test::character): ++ Provide operator==. ++ * testsuite/testsuite_hooks.h (struct __gnu_test::pod_char): ++ Likewise. ++ ++2004-03-05 Paolo Carlini ++ ++ * testsuite/27_io/fpos/14320-2.cc: Remove xfail. ++ ++2004-03-04 Benjamin Kosnik ++ ++ * testsuite/23_containers/multiset/insert/1.cc: Test result string. ++ ++ * testsuite/23_containers/bitset/invalidation/1.cc: Main always ++ returns 0. ++ * testsuite/23_containers/deque/invalidation/4.cc: Same. ++ * testsuite/23_containers/list/invalidation/1.cc: Same. ++ * testsuite/23_containers/list/invalidation/2.cc: Same. ++ * testsuite/23_containers/list/invalidation/3.cc: Same. ++ * testsuite/23_containers/list/invalidation/4.cc: Same. ++ * testsuite/23_containers/map/invalidation/2.cc: Same. ++ * testsuite/23_containers/multimap/invalidation/1.cc: Same. ++ * testsuite/23_containers/multimap/invalidation/2.cc: Same. ++ * testsuite/23_containers/multiset/invalidation/1.cc: Same. ++ * testsuite/23_containers/multiset/invalidation/2.cc: Same. ++ * testsuite/23_containers/set/invalidation/1.cc: Same. ++ * testsuite/23_containers/set/invalidation/2.cc: Same. ++ * testsuite/23_containers/vector/invalidation/1.cc: Same. ++ * testsuite/23_containers/vector/invalidation/2.cc: Same. ++ * testsuite/23_containers/vector/invalidation/3.cc: Same. ++ * testsuite/23_containers/vector/invalidation/4.cc: Same. ++ ++2004-03-04 Paolo Carlini ++ ++ * scripts/testsuite_flags.in: Add "-D_GLIBCXX_ASSERT" to ++ CXXFLAGS_save. ++ * testsuite/lib/libstdc++.exp: Don't add it conditionally to ++ DEFAULT_CXXFLAGS. ++ * testsuite/18_support/numeric_limits.cc: Remove "-D_GLIBCXX_ASSERT" ++ from the dg-options. ++ * testsuite/23_containers/vector/invalidation/1.cc: Likewise. ++ * testsuite/23_containers/vector/invalidation/2.cc: Likewise. ++ * testsuite/23_containers/vector/invalidation/3.cc: Likewise. ++ * testsuite/23_containers/vector/invalidation/4.cc: Likewise. ++ * testsuite/23_containers/vector/resize/1.cc: Likewise. ++ * testsuite/26_numerics/complex_value.cc: Likewise. ++ * testsuite/27_io/ios_base/storage/1.cc: Likewise. ++ * testsuite/27_io/ios_base/storage/2.cc: Likewise. ++ * testsuite/27_io/ios_base/storage/3.cc: Likewise. ++ * testsuite/27_io/manipulators/standard/char/2.cc: Likewise. ++ * testsuite/27_io/objects/char/5.cc: Likewise. ++ * testsuite/27_io/objects/wchar_t/5.cc: Likewise. ++ * testsuite/backward/11460.cc: Likewise. ++ * testsuite/thread/pthread7-rope.cc: Likewise. ++ ++ * testsuite/21_strings/basic_string/compare/char/1.cc: Add ++ missing test variable. ++ * testsuite/21_strings/basic_string/compare/wchar_t/1.cc: Add ++ missing test variable. ++ ++2004-03-04 Benjamin Kosnik ++ ++ * testsuite/20_util/allocator/1.cc: Provide explicit ++ instantiations for non-weak systems. ++ * testsuite/20_util/binders.cc: Same. ++ * testsuite/20_util/allocator/8230.cc: Same. ++ * testsuite/20_util/allocator/10378.cc: Same. ++ * testsuite/22_locale/ctype/is/wchar_t/2.cc: Same. ++ * testsuite/22_locale/ctype/is/char/2.cc: Same. ++ * testsuite/thread/pthread7-rope.cc: Same. ++ * testsuite/thread/pthread6.cc: Same. ++ * testsuite/thread/pthread5.cc: Same. ++ * testsuite/thread/pthread4.cc: Same. ++ * testsuite/thread/pthread1.cc: Same. ++ * testsuite/ext/rope.cc: Same. ++ * testsuite/ext/hash_set.cc: Same. ++ * testsuite/ext/hash_map.cc: Same. ++ * testsuite/ext/concept_checks.cc: Same. ++ * testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc: Same. ++ * testsuite/25_algorithms/unique/2.cc: Same. ++ * testsuite/25_algorithms/unique/1.cc: Same. ++ * testsuite/25_algorithms/rotate.cc: Same. ++ * testsuite/25_algorithms/min_max.cc: Same. ++ * testsuite/25_algorithms/equal.cc: Same. ++ * testsuite/24_iterators/rel_ops.cc: Same. ++ * testsuite/24_iterators/iterator.cc: Same. ++ * testsuite/24_iterators/insert_iterator.cc: Same. ++ * testsuite/24_iterators/front_insert_iterator.cc: Same. ++ * testsuite/24_iterators/back_insert_iterator.cc: Same. ++ * testsuite/23_containers/vector/resize/1.cc: Same. ++ * testsuite/23_containers/vector/modifiers/2.cc: Same. ++ * testsuite/23_containers/vector/modifiers/1.cc: Same. ++ * testsuite/23_containers/vector/invalidation/4.cc: Same. ++ * testsuite/23_containers/vector/invalidation/3.cc: Same. ++ * testsuite/23_containers/vector/invalidation/2.cc: Same. ++ * testsuite/23_containers/vector/invalidation/1.cc: Same. ++ * testsuite/23_containers/vector/element_access/1.cc: Same. ++ * testsuite/23_containers/vector/cons/6513.cc: Same. ++ * testsuite/23_containers/vector/cons/3.cc: Same. ++ * testsuite/23_containers/vector/cons/2.cc: Same. ++ * testsuite/23_containers/vector/cons/1.cc: Same. ++ * testsuite/23_containers/vector/capacity/8230.cc: Same. ++ * testsuite/23_containers/vector/capacity/1.cc: Same. ++ * testsuite/23_containers/vector/bool/6886.cc: Same. ++ * testsuite/23_containers/stack/members/7158.cc: Same. ++ * testsuite/23_containers/set/invalidation/2.cc: Same. ++ * testsuite/23_containers/set/invalidation/1.cc: Same. ++ * testsuite/23_containers/queue/members/7157.cc: Same. ++ * testsuite/23_containers/priority_queue/members/7161.cc: Same. ++ * testsuite/23_containers/multiset/invalidation/2.cc: Same. ++ * testsuite/23_containers/multiset/invalidation/2.cc: Same. ++ * testsuite/23_containers/multiset/insert/1.cc: Same. ++ * testsuite/23_containers/multimap/invalidation/2.cc: Same. ++ * testsuite/23_containers/multimap/invalidation/2.cc: Same. ++ * testsuite/23_containers/map/operators/1.cc: Same. ++ * testsuite/23_containers/map/invalidation/2.cc: Same. ++ * testsuite/23_containers/map/invalidation/1.cc: Same. ++ * testsuite/23_containers/map/insert/1.cc: Same. ++ * testsuite/23_containers/list/operators/4.cc: Same. ++ * testsuite/23_containers/list/operators/3.cc: Same. ++ * testsuite/23_containers/list/operators/2.cc: Same. ++ * testsuite/23_containers/list/operators/1.cc: Same. ++ * testsuite/23_containers/list/modifiers/3.cc: Same. ++ * testsuite/23_containers/list/modifiers/2.cc: Same. ++ * testsuite/23_containers/list/modifiers/1.cc: Same. ++ * testsuite/23_containers/list/invalidation/4.cc: Same. ++ * testsuite/23_containers/list/invalidation/3.cc: Same. ++ * testsuite/23_containers/list/invalidation/2.cc: Same. ++ * testsuite/23_containers/list/invalidation/1.cc: Same. ++ * testsuite/23_containers/list/cons/9.cc: Same. ++ * testsuite/23_containers/list/cons/8.cc: Same. ++ * testsuite/23_containers/list/cons/7.cc: Same. ++ * testsuite/23_containers/list/cons/6.cc: Same. ++ * testsuite/23_containers/list/cons/5.cc: Same. ++ * testsuite/23_containers/list/cons/4.cc: Same. ++ * testsuite/23_containers/list/cons/3.cc: Same. ++ * testsuite/23_containers/list/cons/2.cc: Same. ++ * testsuite/23_containers/list/cons/1.cc: Same. ++ * testsuite/23_containers/list/capacity/1.cc: Same. ++ * testsuite/23_containers/deque/operators/1.cc: Same. ++ * testsuite/23_containers/deque/invalidation/4.cc: Same. ++ * testsuite/23_containers/deque/invalidation/3.cc: Same. ++ * testsuite/23_containers/deque/invalidation/2.cc: Same. ++ * testsuite/23_containers/deque/invalidation/1.cc: Same. ++ * testsuite/23_containers/deque/cons/2.cc: Same. ++ * testsuite/23_containers/deque/cons/1.cc: Same. ++ ++ * src/allocator.cc: Add char, wchar_t instantiations ++ to match extern template declarations in memory.h. ++ ++2004-03-03 Paolo Carlini ++ ++ * include/bits/locale_facets.tcc (money_put<>::_M_insert): ++ Fix warning regression. ++ ++2004-03-03 Paolo Carlini ++ ++ * include/bits/locale_facets.tcc (money_put<>::_M_insert): ++ Deal properly with empty __digits and negative frac_digits, ++ clean-up a bit. ++ ++2004-03-03 Jonathan Wakely ++ ++ * docs/html/documentation.html: Regenerate. ++ ++2004-03-02 Paolo Carlini ++ ++ PR libstdc++/14320 ++ * include/bits/postypes.h (class streamoff): Remove, now ++ streamoff is just typedef a 64 bit signed integer type. ++ (class fpos): Tweak consistently. ++ * testsuite/27_io/fpos/14320-1.cc: New. ++ * testsuite/27_io/fpos/14320-2.cc: New. ++ * testsuite/27_io/fpos/14320-3.cc: New. ++ * testsuite/27_io/fpos/14320-4.cc: New. ++ * testsuite/27_io/fpos/14320-5.cc: New. ++ * testsuite/27_io/fpos/mbstate_t/4_neg.cc: xfail for now. ++ ++2004-03-02 Paolo Carlini ++ ++ * include/bits/locale_facets.tcc (money_get<>::_M_extract): ++ Reorganize a bit the main parsing loop, thus early detecting ++ an empty value component. ++ * testsuite/22_locale/money_get/get/char/16.cc: New. ++ * testsuite/22_locale/money_get/get/wchar_t/16.cc: New. ++ ++2004-03-02 Benjamin Kosnik ++ ++ Support automake 1.8.2 ++ * configure.ac (AM_INIT_AUTOMAKE): Add -Wno-override. ++ * po/Makefile.am (EXTRA_DIST): New. ++ * po/Makefile.in: Regenerate. ++ * Makefile.in: Same. ++ * include/Makefile.in: Same. ++ * libmath/Makefile.in: Same. ++ * libsupc++/Makefile.in: Same. ++ * src/Makefile.in: Same. ++ * testsuite/Makefile.in: Same. ++ ++ * include/Makefile.am (${host_builddir}/gthr-posix.h): Use ++ __GXX_WEAK__ instead of SUPPORTS_WEAK. ++ (${host_builddir}/gthr-default.h): Same. ++ (${host_builddir}/gthr.h): Same. ++ * acinclude.m4 (GLIBCXX_ENABLE_THREAD): Remove ++ _GLIBCXX_SUPPORTS_WEAK, as this behavior can be modified via ++ -fno-weak. ++ * aclocal.m4: Regenerate. ++ * acconfig.h: Remove _GLIBCXX_SUPPORTS_WEAK. ++ * config.h.in: Regenerate. ++ * configure: Same. ++ ++2004-03-01 Benjamin Kosnik ++ ++ Support autoconf 2.59 ++ * acinclude.m4: Quote correctly. ++ * aclocal.m4: Regenerate. ++ * linkage.m4: Same. ++ ++2004-03-01 Benjamin Kosnik ++ ++ * docs/html/test.html: Add multilib RUNTESTFLAGS example. ++ ++ * docs/html/18_support/howto.html: Add bit about writing to ++ stderr, mostly by Zack. ++ ++2004-03-01 Paolo Carlini ++ ++ * include/bits/locale_facets.tcc (money_get<>::_M_extract, ++ money_get<>::do_get(string_type&)): ... and two more. ++ ++2004-03-01 Paolo Carlini ++ ++ * include/bits/locale_facets.tcc (money_get<>::_M_extract): ++ Fix thinkos in the switch from string_type& to string& as last ++ argument. ++ ++2004-03-01 Paolo Carlini ++ ++ * include/bits/locale_facets.tcc (num_get<>::_M_extract_float): ++ Also when parsing exponent sign, first look for thousands_sep ++ and decimal_point; tweak a bit. ++ * testsuite/22_locale/num_get/get/char/15.cc: New. ++ * testsuite/22_locale/num_get/get/wchar_t/15.cc: New. ++ ++ * include/bits/locale_facets.tcc (num_get<>::_M_extract_float, ++ num_get<>::_M_extract_int): Reorder some conditionals. ++ ++2004-03-01 Paolo Carlini ++ ++ * include/bits/locale_facets.tcc (money_get<>::_M_extract): ++ Consistently with numpunct, enforce the requirements in ++ 22.2.6.3, p3 for the thousands separators; tweak a bit. ++ * testsuite/22_locale/money_get/get/char/15.cc: New. ++ * testsuite/22_locale/money_get/get/wchar_t/15.cc: New. ++ ++2004-03-01 David Billinghurst ++ ++ * testsuite/lib/libstdc++.exp (v3-list-tests): Use ++ testsuite_files from correct multilib blddir when running ++ testsuite. ++ ++2004-02-29 Phil Edwards ++ ++ * testsuite/Makefile.am (check-abi, check-abi-verbose): Copy ++ the summary file to the logfile. ++ * testsuite/Makefile.in: Regenerate. ++ ++2004-02-28 John David Anglin ++ ++ * config/cpu/hppa/atomicity.h (__atomic_add): Make first argument ++ volatile. ++ * config/os/hpux/os_defines.h (_GLIBCXX_INST_ATOMICITY_LOCK): Use ++ __GXX_WEAK__ instead of _GLIBCXX_SUPPORTS_WEAK. ++ ++2004-02-28 Paolo Carlini ++ ++ * include/bits/locale_facets.tcc (num_get<>::_M_extract_float): ++ According to 22.2.3.1, p2, 'units' may be followed by 'e' with ++ no 'decimal-point' in the middle: in this case too we must fix ++ up __found_grouping; slightly tweak. ++ * testsuite/22_locale/num_get/get/char/14.cc: New. ++ * testsuite/22_locale/num_get/get/wchar_t/14.cc: New. ++ ++2004-02-27 Eric Christopher ++ Phil Edwards ++ ++ * testsuite/22_locale/collate/compare/wchar_t/2.cc, ++ testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc, ++ testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc, ++ testsuite/22_locale/collate/hash/wchar_t/2.cc, ++ testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc, ++ testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc, ++ testsuite/22_locale/collate/transform/wchar_t/2.cc, ++ testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc, ++ testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc: ++ Use dg-require-iconv. ++ * testsuite/lib/libstdc++.exp: Load target-supports.exp. ++ ++2004-02-27 Phil Edwards ++ Eric Christopher ++ ++ * testsuite/config/default.exp: Update with comments. ++ (${tool}_target_compile): New wrapper routine. ++ * testsuite/lib/dg-options.exp: New file, with dg-require-iconv. ++ * testsuite/lib/libstdc++.exp: Update with comments and cosmetic ++ fixes. ++ (load_gcc_lib, v3track): New routines. ++ (v3-init): Rename to libstdc++_init. ++ * testsuite/libstdc++-dg/normal.exp: No longer call v3-init. ++ Move DEFAULT_CXXFLAGS handling into libstdc++_init. ++ ++2004-02-27 Benjamin Kosnik ++ ++ * config/cpu/hppa/atomicity.h: Include c++config.h to get defines. ++ ++ * src/misc-inst.cc (_S_atomicity_lock): Move to __gnu_cxx. ++ ++ * config/os/irix/irix5.2/atomicity.h: Merge.. ++ * config/os/irix/irix6.5/atomicity.h: Merge.. ++ * config/os/irix/atomicity.h: ...into this. ++ * config/os/irix/atomic_word.h: New. ++ * configure.host: Set atomic_word_dir for irix. ++ ++ * hppa/atomicity.h: Change __Atomicity_lock to _Atomicity_lock. ++ * i386/atomicity.h: Same. ++ * m68k/atomicity.h: Same. ++ * sparc/atomicity.h: Same. ++ ++2004-02-27 David Edelsohn ++ ++ * config/os/aix/atomicity.h: Use __gnu_cxx namespace. Remove ++ static, and inline keywords. ++ ++2004-02-27 Paolo Carlini ++ ++ * include/bits/locale_facets.tcc (num_get<>::_M_extract_float, ++ num_get<>::_M_extract_int, money_get<>::_M_extract): If appropriate, ++ call reserve on the __tmp_gruping string. ++ (num_get<>::_M_extract_float): Don't append unnecessarily a ++ char() to the returned string. ++ * include/bits/locale_facets.tcc: Trivial reformattings. ++ ++2004-02-27 Paolo Carlini ++ ++ * include/bits/locale_facets.h (money_get<>::_M_extract): ++ Change signature: now takes a plain string&. ++ * include/bits/locale_facets.tcc (money_get<>::_M_extract): ++ Update consistently the definition; use the moneypunct cache ++ to parse the value; use swap to change __units. ++ (money_get<>::do_get(long double&)): Update call of _M_extract, ++ avoid ctype::narrow, not correct wrt the standard. ++ (money_get<>::do_get(string_type&)): Likewise, update call ++ of _M_extract, use ctype::widen. ++ * src/locale-inst.cc: Tweak instantiations of _M_extract. ++ ++2004-02-26 Ian Lance Taylor ++ ++ * testsuite/demangle/abi_examples/01.cc: Expect error -2. ++ * testsuite/demangle/abi_examples/02.cc: Likewise. ++ * testsuite/demangle/regression/cw-11.cc: Likewise. ++ * testsuite/demangle/regression/cw-16.cc: Change two expected ++ results to match libiberty demangler output. ++ ++2004-02-26 Benjamin Kosnik ++ ++ PR libstdc++/10246 ++ * libsupc++/Makefile.am: Use libiberty demangler. ++ (c_sources): Add cp-demangle.c. ++ * libsupc++/Makefile.in: Regenerate. ++ * src/Makefile.am (sources): Remove demangle.cc. ++ * src/Makefile.in: Regenerate. ++ * include/Makefile.am (bits_headers): Move demangle.h. ++ (ext_headers): ...here. ++ * include/Makefile.in: Regenerate. ++ * include/bits/demangle.h: Move... ++ * include/ext/demangle.h: ...here. ++ * src/demangle.cc: Remove. ++ ++2004-02-26 Benjamin Kosnik ++ ++ * include/bits/demangle.h: Add type template parameter to all ++ templates with just an Allocator template parameter. ++ ++2004-02-25 Benjamin Kosnik ++ ++ * include/bits/atomicity.h: New, forward declarations for __atomic_add ++ and __exchange_and_add. ++ * config/cpu/generic/atomic_word.h: New, typdef for atomic word. ++ * config/cpu/cris/atomic_word.h: Same. ++ * config/cpu/sparc/atomic_word.h: Same. ++ * include/bits/ios_base.h (_Callback_list::_M_remove_reference): ++ Qualifiy with __gnu_cxx. ++ (_Callback_list::_M_add_reference): Same. ++ * include/bits/locale_classes.h (locale::facet::_M_add_reference): Add. ++ (locale::facet::_M_remove_reference): Same. ++ (locale::_Impl::_M_add_reference): Add. ++ (locale::_Impl::_M_remove_reference): Same. ++ * include/bits/basic_string.h (basic_string::_Rep::_M_refcopy): Same. ++ (basic_string::_Rep::_M_dispose): Same. ++ * src/ios.cc (ios_base::xalloc): Same. ++ * src/ios_init.cc (ios_base::Init::Init): Same. ++ (ios_base::Init::~Init): Same. ++ * src/locale.cc (locale::id::_M_id): Same. ++ * config/cpu/i486/atomicity.h: Use __gnu_cxx namespace. Remove ++ static, and inline keywords. ++ * config/cpu/alpha/atomicity.h: Same. ++ * config/cpu/cris/atomicity.h: Same. ++ * config/cpu/generic/atomicity.h: Same. ++ * config/cpu/hppa/atomicity.h: Same. ++ * config/cpu/i386/atomicity.h: Same. ++ * config/cpu/ia64/atomicity.h: Same. ++ * config/cpu/m68k/atomicity.h: Same. ++ * config/cpu/mips/atomicity.h: Same. ++ * config/cpu/powerpc/atomicity.h: Same. ++ * config/cpu/s390/atomicity.h: Same. ++ * config/cpu/sparc/atomicity.h: Same. ++ ++ * src/Makefile.am (host_sources): Add atomicity.cc. ++ (atomicity.cc): New rule. ++ * src/Makefile.in: Regenerate. ++ * include/Makefile.am (host_headers): Remove host atomicity.h. ++ (host_headers): Add atomic_word.h. ++ (bits_headers): Add bits atomicity.h. ++ Change ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR. ++ * include/Makefile.in: Regenerate. ++ * configure.host (atomic_word_dir): Add. ++ * configure.ac: Substitute ATOMIC_WORD_SRCDIR. Change ++ ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR. ++ * configure: Regenerate. ++ * config/linker-map.gnu: Export __exchange_and_add, and __atomic_add. ++ ++ * testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust line numbers. ++ * testsuite/27_io/ios_base/cons/copy_neg.cc: Same. ++ ++2004-02-25 Jonathan Wakely ++ ++ * docs/html/20_util/howto.html, docs/html/20_util/allocator.html, ++ docs/html/ext/howto.html, docs/html/ext/mt_allocator.html: ++ Fix markup, more tags. ++ ++2004-02-25 Carlo Wood ++ ++ * bits/demangle.h ++ namespace __gnu_cxx::demangler ++ (session::qualifier_list_Allocator): Add ++ (session::M_qualifier_list_alloc): Add ++ (session::decode_type_with_postfix): ++ Use M_qualifier_list_alloc instead of calling operator new/delete. ++ ++2004-02-24 Paolo Carlini ++ ++ PR libstdc++/14252 ++ * include/bits/postypes.h (class streamoff): Add operator++(), ++ operator++(int), operator--() and operator--(int). ++ * testsuite/27_io/fpos/14252.cc: New. ++ ++2004-02-24 Richard Sandiford ++ ++ * include/bits/locale_facets.tcc (num_get::_M_extract_int): Fix bounds ++ error in handling of hex constants. ++ ++2004-02-24 Paolo Carlini ++ ++ * include/bits/locale_facets.tcc (money_put<>::_M_insert): ++ Prefer basic_string::append to operator+= and a temporary. ++ ++2004-02-23 Benjamin Kosnik ++ ++ * libsupc++/vterminate.cc (__gnu_cxx::__verbose_terminate_handler): ++ Only use fputs, not write. ++ ++2004-02-23 Benjamin Kosnik ++ ++ * include/ext/malloc_allocator.h: Add operators ==, !=. ++ * include/ext/new_allocator.h: Add operators ==, !=. ++ * include/ext/mt_allocator.h (__mt_alloc::tune): New. ++ (__mt_alloc::_S_get_options): New. ++ (__mt_alloc::_S_set_options): New. ++ (__mt_alloc::_S_thread_key_destr): To _S_destroy_thread_key. ++ (__mt_alloc::_S_no_of_bins): To _S_bin_size. ++ Move functions out of line, simplify, format. ++ * src/allocator.cc: Simplify explicit instantiations. ++ * include/bits/allocator.h: Tweak. ++ ++2004-02-22 Paolo Carlini ++ ++ * include/bits/locale_facets.tcc (money_put<>::_M_insert): ++ Restructure formatting of value component, first dealing with ++ the non-decimal digits; use reserve. ++ ++2004-02-22 Paolo Carlini ++ ++ * include/bits/locale_facets.h (class money_get): Inherit ++ from money_base too; tweak declaration of _M_extract, now ++ parameterized on _Intl too. ++ * include/bits/locale_facets.tcc (money_get<>::_M_extract): ++ Update definition to use the cache; call reserve on __res to ++ avoid multiple reallocations; fix parsing of sign component ++ according to 22.2.6.1.2, p3. ++ (money_get<>::do_get(long double&), ++ money_get<>::do_get(string_type&)): Update calls of _M_extract. ++ * src/locale-inst.cc: Add instantiations of ++ money_get::_M_extract and money_get::_M_extract. ++ * testsuite/22_locale/money_get/get/char/14.cc: New. ++ * testsuite/22_locale/money_get/get/wchar_t/14.cc: Ditto. ++ ++2004-02-21 Mark Mitchell ++ ++ * libsupc++/vterminate.cc ++ (__gnu_cxx::__verbose_terminate_handler): Guard against recursive ++ calls to terminate. ++ * src/demangle.cc (__cxa_demangle): Wrap in try-catch block. ++ ++ * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do ++ not set RLIMIT_AS on HP-UX. ++ ++2004-02-21 Mark Mitchell ++ ++ * testsuite/testsuite_hooks.cc (__gnu_test::set_memory_limits): Do ++ not set RLIMIT_AS on HP-UX. ++ ++2004-02-21 Paolo Carlini ++ ++ * include/bits/locale_facets.h (class money_base): Add { _S_minus, ++ _S_zero, _S_end } enum, _S_atoms. ++ (struct __moneypunct_cache<>): Parameterize on _Intl too; add ++ _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, ++ _M_negative_sign_size, _M_atoms; tweak constructor consistently. ++ (__moneypunct_cache<>::~__moneypunct_cache): Update. ++ (__moneypunct_cache<>::_M_cache): Fill the cache. ++ (class moneypunct): Tweak __cache_type typedef. ++ (class money_put): Inherit from money_base too; tweak declaration ++ of _M_insert, now parameterized on _Intl. ++ * include/bits/locale_facets.tcc ++ (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. ++ (money_put<>::_M_insert): Update definition to use the cache; ++ call reserve on __res to avoid multiple reallocations. ++ (money_put<>::do_put(long double), ++ money_put<>::do_put(const string_type&): Update calls of _M_insert. ++ * config/locale/generic/monetary_members.cc ++ (moneypunct::_M_initialize_moneypunct, ++ moneypunct::_M_initialize_moneypunct, ++ moneypunct::_M_initialize_moneypunct, ++ moneypunct::_M_initialize_moneypunct): Update. ++ * config/locale/gnu/monetary_members.cc: Likewise. ++ * config/locale/gnu/monetary_members.cc ++ (moneypunct::~moneypunct(), ++ moneypunct::~moneypunct()): Likewise. ++ * src/globals_locale.cc: Tweak fake_money_cache_c. ++ * src/locale-inst.cc: Add instantiations for ++ money_put::_M_insert and money_put::_M_insert and ++ __moneypunct_cache, __moneypunct_cache. ++ * src/locale_facets.cc: Define money_base::_S_atoms. ++ * src/locale_init.cc: Update placement new of ++ __moneypunct_cache, __moneypunct_cache, ++ __moneypunct_cache, __moneypunct_cache. ++ ++ * config/locale/generic/numeric_members.cc: Clean up. ++ * config/locale/gnu/numeric_members.cc: Likewise. ++ * testsuite/22_locale/money_put/put/char/1.cc: Likewise. ++ * testsuite/22_locale/money_put/put/char/2.cc: Likewise. ++ * testsuite/22_locale/money_put/put/char/3.cc: Likewise. ++ * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. ++ * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. ++ * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. ++ ++2004-02-20 Mark Mitchell ++ ++ * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc: Open ++ FIFO for writing with ios_base::in|ios_base::out. ++ * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise. ++ * testsuite/27_io/objects/char/7.cc: Likewise. ++ * testsuite/27_io/objects/char/9661-1.cc: Open FIFO for writing ++ with "r+". ++ ++2004-02-19 David Edelsohn ++ ++ * 22_locale/collate/compare/wchar_t/2.cc: Change input-charset ++ from iso-8859-1 to ISO8859-1. ++ * 22_locale/collate/compare/wchar_t/wrapped_env.cc: Same. ++ * 22_locale/collate/compare/wchar_t/wrapped_locale.cc: Same. ++ * 22_locale/collate/hash/wchar_t/2.cc: Same. ++ * 22_locale/collate/hash/wchar_t/wrapped_env.cc: Same. ++ * 22_locale/collate/hash/wchar_t/wrapped_locale.cc: Same. ++ * 22_locale/collate/transform/wchar_t/2.cc: Same. ++ * 22_locale/collate/transform/wchar_t/wrapped_env.cc: Same. ++ * 22_locale/collate/transform/wchar_t/wrapped_locale.cc: Same. ++ ++2004-02-18 Paolo Carlini ++ ++ * include/bits/locale_facets.h (money_get<>::_M_extract): ++ New, helper for do_get. ++ (money_put<>::_M_insert): Likewise, for do_put. ++ * include/bits/locale_facets.tcc (money_get<>::_M_extract, ++ money_put<>::_M_insert): Define. ++ (money_get<>::do_get(long double&), money_get<>::do_get( ++ string_type&), money_put::do_put(long double), ++ money_put::do_put(const string_type&)): Use the helpers. ++ ++2004-02-18 Paolo Carlini ++ ++ * config/io/basic_file_stdio.cc (__gnu_internal::xwritev): ++ Rewrite, avoiding recursion. ++ (__gnu_internal::xwrite): Minor tweaks. ++ ++2004-02-17 Stefan Olsson ++ ++ * include/ext/mt_allocator.h: Removed the last ++ pointer. Deallocated blocks are now added to the front of ++ freelists as proposed by Felix Yen. This gives roughly 10% ++ performance boost and saves some memory. ++ * docs/html/ext/mt_allocator.html: Change due to that deallocated ++ blocks now are added to the front of freelists. The reason to this ++ approach is also explained. ++ ++2004-02-17 Paolo Carlini ++ ++ * include/bits/locale_facets.tcc (num_get<>::_M_extract_float, ++ num_get<>::_M_extract_int, money_get<>::do_get): Simplify ++ grouping fidelity conditional. ++ ++2004-02-16 Paolo Carlini ++ ++ * testsuite/27_io/basic_filebuf/overflow/char/13858.cc: ++ Qualify exception with std::. ++ * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Ditto. ++ * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto. ++ * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto. ++ * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto. ++ * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto. ++ ++2004-02-16 Paolo Carlini ++ ++ * testsuite/ext/enc_filebuf/char/13189.cc: Don't check ++ for now that the catch block is not reached. ++ * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Likewise. ++ ++2004-02-16 Paolo Carlini ++ ++ * include/bits/locale_facets.tcc (money_get::do_get(string_type&)): ++ Fix parsing of the remaining sign characters. ++ * 22_locale/money_get/get/char/2.cc: Tweak: now, correctly, ++ the input is scanned 'til eof. ++ * 22_locale/money_get/get/char/4.cc: Likewise. ++ * 22_locale/money_get/get/wchar_t/2.cc: Likewise. ++ * 22_locale/money_get/get/wchar_t/4.cc: Likewise. ++ * 22_locale/money_get/get/char/8.cc: Tweak: override do_neg_format, ++ not do_pos_format: the former is the only one that matters during ++ input. ++ * 22_locale/money_get/get/wchar_t/8.cc: Likewise. ++ ++ * 22_locale/money_get/get/char/6.cc: Minor tweak. ++ * 22_locale/money_get/get/wchar_t/6.cc: Likewise. ++ ++2004-02-15 David Asher ++ ++ PR libstdc++/11352 ++ * include/bits/locale_facets.tcc (__pad<>::_S_pad): Don't ++ access __olds beyond __oldlen. ++ ++2004-02-14 Paolo Carlini ++ ++ * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Make ++ sure the exception is actually thrown. ++ * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto. ++ * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto. ++ * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto. ++ ++2004-02-14 Paolo Carlini ++ ++ PR libstdc++/13858 ++ * include/bits/fstream.tcc (basic_filebuf<>::_M_convert_to_external): ++ In case of conversion errors, throw ios_failure; simplify. ++ * testsuite/27_io/basic_filebuf/overflow/char/13858.cc: New. ++ * testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc: Ditto. ++ * testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Tweak, ++ previously we didn't throw in case of conversion errors, instead ++ just returned eof(). ++ * testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc: Ditto. ++ * testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc: Ditto. ++ * testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Ditto. ++ ++ * include/bits/fstream.tcc (basic_filebuf<>::overflow): ++ Trivial simplification of a conditional. ++ ++2004-02-12 Paolo Carlini ++ ++ PR libstdc++/13731 (final part: writev) ++ * config/io/basic_file_stdio.cc (__gnu_internal::xwritev): ++ New, a wrapper around writev() handling partial writes. ++ (__basic_file::xwrite): Move to __gnu_internal and make ++ static. ++ (__basic_file::xsputn): Update call. ++ (__basic_file::xsputn_2): Likewise. ++ * config/io/basic_file_stdio.h (__basic_file::xwrite): ++ Don't declare, now static. ++ ++2004-02-11 Stefan Olsson ++ ++ * docs/html/ext/mt_allocator.html: New. ++ ++2004-02-11 Benjamin Kosnik ++ ++ * docs/html/20_util/allocator.html: New file, consolidate ++ allocator information here. Revamp. ++ * docs/html/documentation.html: Change links. ++ * docs/html/20_util/howto.html: Same. ++ * docs/html/ext/howto.html: Same. ++ ++2004-02-11 Paolo Carlini ++ ++ PR libstdc++/13731 (first part: write) ++ * config/io/basic_file_stdio.h (__basic_file::xwrite): ++ New, declare. ++ * config/io/basic_file_stdio.cc (__basic_file::xwrite): ++ Define it: a wrapper around write() handling partial write. ++ (__basic_file::xsputn): Use it. ++ (__basic_file::xsputn_2): Likewise. ++ ++2004-02-11 Paolo Carlini ++ Petur Runolfsson ++ ++ PR libstdc++/14078 ++ * include/std/std_istream.h (operator>>(__istream_type& (*) ++ (__istream_type&)), operator>>(__ios_type& (*)(__ios_type&)), ++ operator>>(ios_base& (*)(ios_base&))): Declare inline. ++ * include/std/std_ostream.h (operator<<(__ostream_type& (*) ++ (__ostream_type&)), operator<<(__ios_type& (*)(__ios_type&)), ++ operator<<(ios_base& (*) (ios_base&))): Likewise. ++ * testsuite/performance/27_io/fmtflags_manipulators.cc: New. ++ ++2004-02-10 Loren J. Rittle ++ ++ PR libstdc++/14098 ++ * config/linker-map.gnu: Add typeinfo and typeinfo name for ++ __gnu_cxx::stdio_sync_filebuf >. ++ ++ PR libstdc++/14097 ++ * config/linker-map.gnu: Add typeinfo and typeinfo name for ++ __gnu_cxx::stdio_filebuf >. ++ ++2004-02-09 Loren J. Rittle ++ ++ * include/ext/pool_allocator.h: Include c++config.h. ++ ++2004-02-09 Stefan Olsson ++ ++ * include/ext/mt_allocator.h: thread_id is unused in non threaded ++ applications and now has a ifdef to remove it completely on ++ compilers without thread support. Include stdlib.h due to a ++ compiler warning on getenv(). ++ ++2004-02-09 Paul Brook ++ ++ * libstdc++-v3/configure.host: Explicitly check for atomicity.h file. ++ ++2004-02-09 Paolo Carlini ++ ++ PR libstdc++/14071 ++ * src/locale_init.cc (locale::global(const locale&)): Use ++ locale::name() in order to decide whether calling setlocale. ++ * testsuite/22_locale/locale/global_locale_objects/14071.cc: New. ++ ++ * include/bits/locale_classes.h (locale::_Impl::_M_check_same_name()): ++ Avoid computing &= unnecessarily. ++ ++2004-02-09 James E Wilson ++ ++ PR libstdc++/5625 ++ * libsuspc++/eh_personality.cc (PERSONALITY_FUNCTION): Use ++ __builtin_extend_pointer. ++ ++2004-02-09 Paolo Carlini ++ ++ PR libstdc++/14072 ++ * include/bits/basic_ios.tcc (basic_ios<>::_M_cache_locale): ++ Don't leave dangling pointers. ++ * testsuite/27_io/basic_ios/imbue/14072.cc: New. ++ * testsuite/22_locale/numpunct/members/pod/2.cc: Tweak, the num_put ++ facet is needed in the final test. ++ ++2004-02-09 Bernardo Innocenti ++ ++ * crossconfig.m4: Don't enable _GLIBCXX_USE_LFS on *-uclinux*. ++ * configure: Regenerate. ++ ++2004-02-08 Richard Henderson ++ ++ PR libstdc++/14026 ++ * libsupc++/eh_catch.cc (__cxa_begin_catch): Don't adjust ++ uncaughtExceptions during nested catch rethrow. ++ * testsuite/18_support/14026.cc: New. ++ ++2004-02-08 Paolo Carlini ++ ++ * include/bits/basic_string.tcc (assign(const _CharT*, size_type)): ++ When working in place remember to set the state to sharable ++ (otherwise, _M_mutate does it). ++ ++2004-02-08 Bernardo Innocenti ++ ++ * include/bits/allocator.h, include/bits/basic_ios.h, ++ include/bits/basic_ios.tcc, include/bits/basic_string.h, ++ include/bits/basic_string.tcc, include/bits/boost_concept_check.h, ++ include/bits/char_traits.h, include/bits/codecvt.h, ++ include/bits/concurrence.h, include/bits/cpp_type_traits.h, ++ include/bits/demangle.h, include/bits/deque.tcc, ++ include/bits/fstream.tcc, include/bits/functexcept.h, ++ include/bits/gslice.h, include/bits/gslice_array.h, ++ include/bits/indirect_array.h, include/bits/ios_base.h, ++ include/bits/istream.tcc, include/bits/list.tcc, ++ include/bits/locale_classes.h, include/bits/locale_facets.h, ++ include/bits/locale_facets.tcc, include/bits/localefwd.h, ++ include/bits/mask_array.h, include/bits/ostream.tcc, ++ include/bits/postypes.h, include/bits/slice_array.h, ++ include/bits/sstream.tcc, include/bits/stl_algo.h, ++ include/bits/stl_algobase.h, include/bits/stl_bvector.h, ++ include/bits/stl_construct.h, include/bits/stl_deque.h, ++ include/bits/stl_function.h, include/bits/stl_heap.h, ++ include/bits/stl_iterator.h, include/bits/stl_iterator_base_funcs.h, ++ include/bits/stl_list.h, include/bits/stl_map.h, ++ include/bits/stl_multimap.h, include/bits/stl_multiset.h, ++ include/bits/stl_numeric.h, include/bits/stl_pair.h, ++ include/bits/stl_queue.h, include/bits/stl_raw_storage_iter.h, ++ include/bits/stl_relops.h, include/bits/stl_set.h, ++ include/bits/stl_stack.h, include/bits/stl_tempbuf.h, ++ include/bits/stl_threads.h, include/bits/stl_tree.h, ++ include/bits/stl_uninitialized.h, include/bits/stl_vector.h, ++ include/bits/stream_iterator.h, include/bits/streambuf.tcc, ++ include/bits/streambuf_iterator.h,include/bits/stringfwd.h, ++ include/bits/type_traits.h, include/bits/valarray_after.h, ++ include/bits/valarray_array.h, include/bits/valarray_array.tcc, ++ include/bits/valarray_before.h, include/bits/vector.tcc: Remove ++ trailing whitespace. ++ ++2004-02-06 Paolo Carlini ++ ++ * include/bits/basic_string.h: Fix comment. ++ ++2004-02-06 Paolo Carlini ++ ++ * include/bits/stl_construct.h: Wrap overlong lines, reformat ++ according to the coding standards. ++ * include/bits/stl_pair.h: Likewise. ++ * include/bits/stl_raw_storage_iter.h: Likewise. ++ * include/bits/stl_stack.h: Likewise. ++ * include/bits/stl_uninitialized.h: Likewise. ++ * include/bits/stream_iterator.h: Likewise. ++ * include/bits/streambuf_iterator.h: Likewise. ++ * include/bits/type_traits.h: Likewise. ++ ++2004-02-06 Paolo Carlini ++ ++ * testsuite/27_io/basic_filebuf/open/char/9507.cc: ++ Adjust timings. ++ ++2004-02-05 Loren J. Rittle ++ ++ * scripts/check_performance: Support PCH. ++ ++ * scripts/check_performance (CXX): Add -DNOTHREAD. ++ * testsuite/performance/20_util/allocator/insert.cc: Integrate ++ threaded tests from insert_insert.cc. Tweak iterations, ++ remove special cases. ++ * testsuite/performance/20_util/allocator/insert_insert.cc: ++ Make all tests single-threaded. Tweak iterations. ++ * testsuite/performance/20_util/allocator/map_thread.cc: ++ Tweak iterations. ++ * testsuite/performance/20_util/allocator/producer_consumer.cc: ++ Likewise. ++ ++2004-02-05 Geoffrey Keating ++ ++ PR 12179 ++ * .cvsignore: New. ++ * acinclude.m4 (GLIBCXX_EXPORT_INSTALL_INFO): Use 'gcc', not ++ 'gcc-lib'. Add comment about poorly-named variables. ++ * aclocal.m4: Regenerate. ++ * configure: Regenerate. ++ ++2004-02-05 Paolo Carlini ++ ++ * include/bits/locale_facets.tcc (money_get::do_get(string_type&)): ++ Thousands-sep are always optional; thousands-sep are not allowed ++ after the decimal_point. ++ * testsuite/22_locale/money_get/get/char/12.cc: New. ++ * testsuite/22_locale/money_get/get/char/13.cc: New. ++ * testsuite/22_locale/money_get/get/wchar_t/12.cc: New. ++ * testsuite/22_locale/money_get/get/wchar_t/13.cc: New. ++ ++ * testsuite/22_locale/money_get/get/char/1.cc: Clean-up. ++ * testsuite/22_locale/money_get/get/char/2.cc: Likewise. ++ * testsuite/22_locale/money_get/get/char/3.cc: Likewise. ++ * testsuite/22_locale/money_get/get/char/4.cc: Likewise. ++ * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise. ++ * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise. ++ * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise. ++ * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise. ++ ++ * testsuite/22_locale/money_get/get/char/9.cc: Fix citation from ++ the standard. ++ * testsuite/22_locale/money_get/get/wchar_t/9.cc: Likewise. ++ ++2004-02-05 Richard Sandiford ++ ++ * config/os/irix/irix6.5/os_defines.h (_GLIBCXX_FIONREAD_TAKES_OFF_T): ++ Define. ++ * config/io/basic_file_stdio.cc (__basic_file::showmanyc): Use ++ it to decide whether FIONREAD should take an off_t or int argument. ++ ++2004-02-05 Paolo Carlini ++ ++ * include/bits/stl_function.h: Minor formatting changes. ++ ++2004-02-04 Zack Weinberg ++ ++ Revert previous change to config/abi/*/baseline_symbols.txt. ++ ++2004-02-04 Benjamin Kosnik ++ Zack Weinberg ++ ++ * config/io/basic_file_stdio.cc (__gnu_internal::fopen_mode): ++ New function. ++ (__basic_file::sys_open, __basic_file::open): Use it. ++ (__basic_file::_M_open_mode): Delete. ++ * config/io/basic_file_stdio.cc: Delete declaration of _M_open_mode. ++ ++ * testsuite/27_io/basic_filebuf/close/char/9964.cc ++ * testsuite/27_io/basic_filebuf/open/char/9507.cc: ++ Correct flags to filebuf::open calls. ++ ++ * config/abi/alpha-freebsd5/baseline_symbols.txt ++ * config/abi/alpha-linux-gnu/baseline_symbols.txt ++ * config/abi/hppa-linux-gnu/baseline_symbols.txt ++ * config/abi/i386-freebsd4/baseline_symbols.txt ++ * config/abi/i386-freebsd5/baseline_symbols.txt ++ * config/abi/i486-linux-gnu/baseline_symbols.txt ++ * config/abi/ia64-linux-gnu/baseline_symbols.txt ++ * config/abi/mips-linux-gnu/baseline_symbols.txt ++ * config/abi/sparc-freebsd5/baseline_symbols.txt ++ * config/abi/sparc-linux-gnu/baseline_symbols.txt ++ * config/abi/x86_64-linux-gnu/baseline_symbols.txt: ++ Remove entry for __basic_file::_M_open_mode. ++ ++2004-02-04 Loren J. Rittle ++ ++ * testsuite/performance/20_util/allocator/insert.cc (main): Tweak. ++ ++2004-02-04 Felix Yen ++ ++ * testsuite/performance/20_util/producer_consumer.cc: New. ++ * testsuite/performance/20_util/allocator/insert_insert.cc: Two loops. ++ ++2004-02-04 Benjamin Kosnik ++ ++ * testsuite/performance/20_util/allocator.cc: Move to.. ++ * testsuite/performance/20_util/allocator/insert.cc: ...here. ++ * testsuite/performance/20_util/allocator_thread.cc: Move to... ++ * testsuite/performance/20_util/allocator/insert_insert.cc: ...here. ++ * testsuite/performance/20_util/allocator_map_thread.cc: Move to... ++ * testsuite/performance/20_util/allocator/map_thread.cc: ...here. ++ ++2004-02-04 Jonathan Wakely ++ ++ * docs/html/faq/index.html: Recommend using LD_LIBRARY_PATH. ++ * docs/html/faq/index.txt: Regenerate. ++ ++2004-02-04 Dhruv Matani ++ ++ * include/ext/debug_allocator.h: _M_extra now stands for the ++ number of extra objects instead of the number of extra bytes. ++ (debug_allocator::allocate): Adjust. ++ (debug_allocator::deallocate): Adjust. ++ ++ * include/ext/pool_allocator.h: Fix typo. ++ ++2004-02-03 Felix Yen ++ Benjamin Kosnik ++ ++ * testsuite/performance/20_util/allocator.cc: Add map, ++ deque, set tests. ++ * testsuite/performance/20_util/allocator_thread.cc: Same. ++ ++2004-02-03 Paolo Carlini ++ ++ * include/bits/basic_string.h (insert(iterator)): Remove, ++ non-standard and already scheduled for removal. ++ ++2004-02-03 Paolo Carlini ++ ++ * include/bits/stl_iterator_base_funcs.h: Minor formatting ++ and indentation tweaks. ++ * include/bits/stl_iterator_base_types.h: Likewise. ++ * include/bits/stl_list.h: Likewise. ++ * include/bits/stl_map.h: Likewise. ++ * include/bits/stl_tempbuf.h: Likewise. ++ ++2004-02-02 Jerry Quinn ++ ++ * include/bits/gslice.h, include/bits/gslice_array.h, ++ include/bits/indirect_array.h, include/bits/mask_array.h, ++ include/bits/slice_array.h, include/bits/stl_numeric.h, ++ include/std/std_valarray.h: Update copyright years. ++ ++2004-02-02 Jerry Quinn ++ ++ * include/bits/gslice.h (gslice): Document. ++ * include/bits/gslice_array.h (gslice_array): Document. ++ * include/bits/indirect_array (indirect_array): Document. ++ * include/bits/mask_array (mask_array): Document. ++ * include/bits/slice_array.h (slice,slice_array): Document. ++ * include/bits/stl_numeric.h (accumulate, inner_product, partial_sum, ++ adjacent_difference): Document ++ * include/std/std_valarray.h (valarray): Document. ++ ++2004-02-02 Benjamin Kosnik ++ ++ * docs/html/19_diagnostics/howto.html: Move verbose terminate ++ documentation... ++ * docs/html/18_support/howto.html: Here. ++ * docs/html/documentation.html: Add reference here. ++ ++2004-02-02 Paolo Carlini ++ ++ * config/locale/gnu/c++locale_internal.h: Remove prototypes ++ of no longer used GLIBC thread locale functions. ++ ++2004-02-02 Eric Christopher ++ Zack Weinberg ++ ++ * testsuite/22_locale/collate/compare/wchar_t/2.cc: Remove xfail. Use ++ -finput-charset. ++ * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc: Ditto. ++ * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc: Ditto ++ * testsuite/22_locale/collate/hash/wchar_t/2.cc: Ditto. ++ * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc: Ditto. ++ * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc: Ditto. ++ * testsuite/22_locale/collate/transform/wchar_t/2.cc: Ditto. ++ * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc: Ditto. ++ * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc: ++ Ditto. ++ ++2004-02-02 Paolo Carlini ++ ++ * include/bits/stl_function.h: Additional minor tweaks. ++ * include/bits/stl_multiset.h: Likewise. ++ ++ * include/bits/stl_queue.h: Minor tweaks. ++ ++2004-02-02 Paolo Carlini ++ ++ PR libstdc++/13976 (continued) ++ * include/ext/malloc_allocator.h (malloc_allocator::deallocate): ++ Make the second parameter unnamed, to void unused parameter ++ warnings. ++ * include/ext/new_allocator.h (new_allocator::deallocate): Ditto. ++ ++2004-02-02 Paolo Carlini ++ ++ PR libstdc++/13976 ++ * include/ext/malloc_allocator.h (malloc_allocator::allocate): ++ Make the second parameter unnamed, to void unused parameter ++ warnings. ++ * include/ext/mt_allocator.h (__mt_alloc::allocate): Ditto. ++ * include/ext/new_allocator.h (new_allocator::allocate): Ditto. ++ ++2004-02-01 Paolo Carlini ++ ++ * include/bits/stl_algo.h: Additional minor tweaks. ++ * include/bits/stl_map.h: Likewise. ++ * include/bits/stl_multimap.h: Likewise. ++ * include/bits/stl_multiset.h: Likewise. ++ * include/bits/stl_set.h: Likewise. ++ * include/bits/stl_tree.h: Likewise. ++ ++2004-02-01 Paolo Carlini ++ ++ * include/bits/vector.tcc (vector::_M_insert_aux(iterator)): ++ Remove, unused. ++ ++2004-02-01 Paolo Carlini ++ ++ * include/bits/stl_function.h: Additional minor tweaks. ++ ++2004-02-01 Paolo Carlini ++ ++ * include/bits/deque.tcc: Wrap overlong lines, constify ++ a few variables, reformat according to the coding standards. ++ * include/bits/list.tcc: Likewise. ++ * include/bits/stl_deque.h: Likewise. ++ * include/bits/stl_function.h: Likewise. ++ * include/bits/stl_iterator.h: Likewise. ++ * include/bits/stl_iterator_base_funcs.h: Likewise. ++ * include/bits/stl_iterator_base_types.h: Likewise. ++ * include/bits/stl_list.h: Likewise. ++ * include/bits/stl_map.h: Likewise. ++ * include/bits/stl_multimap.h: Likewise. ++ * include/bits/stl_multiset.h: Likewise. ++ * include/bits/stl_relops.h: Likewise. ++ * include/bits/stl_set.h: Likewise. ++ ++2004-02-01 Paolo Carlini ++ ++ * include/bits/stl_bvector.h: Wrap overlong lines, constify ++ a few variables, reformat according to the coding standards. ++ * include/bits/stl_tree.h: Likewise. ++ ++2004-01-31 Paolo Carlini ++ ++ * include/bits/stl_algo.h: Minor additional reformat, add ++ copyright year. ++ * include/bits/stl_algobase.h: Add copyright year. ++ ++2004-01-31 Paolo Carlini ++ ++ * include/bits/stl_algo.h: Wrap overlong lines, constify ++ a few variables, reformat according to the coding standards. ++ * include/bits/stl_algobase.h: Likewise. ++ * include/bits/stl_heap.h: Likewise. ++ ++2004-01-31 Paolo Carlini ++ ++ * include/bits/basic_string.h (_Rep::operator[]): Remove, unused. ++ ++ * include/bits/basic_string.h: Fix two comments. ++ ++2004-01-31 Per Bothner ++ ++ * include/ext/mt_allocator.h ++ (__mt_alloc::_S_thread_freelist_mutex): Guard with ++ __GTHREAD_MUTEX_INIT. ++ ++2004-01-31 Paolo Carlini ++ ++ * include/bits/basic_string.tcc (_Rep::_S_create): Minor tweak. ++ ++2004-01-30 Paolo Carlini ++ ++ * testsuite/21_strings/basic_string/cons/char/6.cc: New. ++ * testsuite/21_strings/basic_string/cons/wchar_t/6.cc: New. ++ * testsuite/performance/21_strings/string_cons_input_iterator.cc: New. ++ ++2004-01-30 Felix Yen ++ ++ * testsuite/performance/20_util/allocator_thread.cc (do_loop): ++ Don't use clear, but instead assign. Use insert. ++ ++2004-01-30 Benjamin Kosnik ++ ++ * src/demangle.cc: Add instantiations. ++ * src/Makefile.am: Remove special rules for demangle.lo, demangle.o. ++ * src/Makefile.in: Regenerate. ++ ++2004-01-30 David Edelsohn ++ ++ * src/allocator.cc: Protect _S_get_thread_id() and ++ _S_thread_key_destr() with #ifdef __GTHREADS. ++ ++2004-01-30 Paolo Carlini ++ ++ Reshuffle performance testsuite. ++ * testsuite/performance/allocator.cc, allocator_map_thread.cc, ++ allocator_thread.cc, complex_norm.cc, container_benchmark.cc, ++ cout_insert_int.cc, filebuf_copy.cc, filebuf_sputc.cc, ++ fstream_seek_write.cc, ifstream_extract_float.cc, ++ ifstream_extract_int.cc, ifstream_getline.cc, is_wchar_t.cc, ++ list_create_fill_sort.cc, map_create_fill.cc, ++ narrow_widen_char.cc, narrow_widen_wchar_t.cc, ++ ofstream_insert_float.cc, ofstream_insert_int.cc, ++ string_append.cc, wchar_t_in.cc, wchar_t_length.cc, ++ wchar_t_out.cc: Split into... ++ * testsuite/performance/20_util/allocator.cc: New. ++ * testsuite/performance/20_util/allocator_map_thread.cc: New. ++ * testsuite/performance/20_util/allocator_thread.cc: New. ++ * testsuite/performance/21_strings/string_append: New. ++ * testsuite/performance/22_locale/is_wchar_t.cc: New. ++ * testsuite/performance/22_locale/narrow_widen_char.cc: New. ++ * testsuite/performance/22_locale/narrow_widen_wchar_t.cc: New. ++ * testsuite/performance/22_locale/wchar_t_in.cc: New. ++ * testsuite/performance/22_locale/wchar_t_length.cc: New. ++ * testsuite/performance/22_locale/wchar_t_out.cc: New. ++ * testsuite/performance/23_containers/container_benchmark.cc: New. ++ * testsuite/performance/23_containers/list_create_fill_sort.cc: New. ++ * testsuite/performance/23_containers/map_create_fill.cc: New. ++ * testsuite/performance/26_numerics/complex_norm.cc: New. ++ * testsuite/performance/27_io/cout_insert_int.cc: New. ++ * testsuite/performance/27_io/filebuf_copy.cc: New. ++ * testsuite/performance/27_io/filebuf_sputc.cc: New. ++ * testsuite/performance/27_io/fstream_seek_write.cc: New. ++ * testsuite/performance/27_io/ifstream_extract_float.cc: New. ++ * testsuite/performance/27_io/ifstream_extract_int.cc: New. ++ * testsuite/performance/27_io/ifstream_getline.cc: New. ++ * testsuite/performance/27_io/ofstream_insert_float.cc: New. ++ * testsuite/performance/27_io/ofstream_insert_int.cc: New. ++ ++2004-01-30 Paolo Carlini ++ ++ * include/bits/basic_string.tcc (_Rep::_S_create): ++ Never allocate a string bigger than max_size(); always keep ++ __capacity and __size in sync to avoid memory leaks at ++ deallocation time. ++ ++2004-01-30 Paolo Carlini ++ ++ * include/bits/basic_string.tcc (_S_construct(_InIterator, ++ _InIterator, const _Alloc&, input_iterator_tag)): Simplify ++ the double loop, streamline. ++ ++ * include/bits/basic_string.tcc: Very minor tweaks. ++ ++2004-01-30 Loren J. Rittle ++ ++ * scripts/check_performance: Only compile with $THREAD_FLAG ++ when test is marked to require it. Allow multiple ++ compilations/executions of marked tests. ++ * testsuite/testsuite_performance.h (report_performance): ++ Report dynamic thread support status. ++ (report_header): Likewise. ++ * testsuite/performance/allocator.cc: Stabilize iteration ++ count. Support more allocators. Mark each allocator test to ++ run and report independently. ++ * testsuite/performance/allocator_map_thread.cc: Likewise. ++ * testsuite/performance/allocator_thread.cc: Likewise. ++ ++2004-01-29 Stephen M. Webb ++ ++ * config/local/generic/c_locale.h: Change ::malloc() to new char[]. ++ * config/local/gnu/c_locale.h: Change ::malloc() to new char[]. ++ * include/bits/stl_tempbuf.h: Convert _Temporary_buffer to use ++ std::get_temporary_buffer() instead of duplicating its code. ++ Update to C++STYLE conventions. ++ * include/std/std_memory.h (get_temporary_buffer): Use ::operator ++ new() instead of std::malloc(). ++ (return_temporary_buffer): Use ::operator delete() instead of ++ std::free(). ++ ++2004-01-29 Benjamin Kosnik ++ ++ * include/bits/allocator.h: Temporary switch to new_allocator as ++ the default to unjam bootstraps. ++ ++2004-01-28 Benjamin Kosnik ++ ++ * include/Makefile.am (bits_headers): Remove allocator_traits.h. ++ * include/Makefile.in: Regenerate. ++ * include/bits/allocator_traits.h: Remove. ++ * include/bits/allocator.h: Remove allocator_traits.h include, and ++ relevant comments. ++ (allocator): Empty base class, inherit from the underlying allocator. ++ * src/allocator-inst.cc: Move __pool_alloc instantiation to... ++ * src/allocator.cc: ...here. New. For the underlying allocators. ++ Add __mt_alloc, __pool_alloc, new_allocator, malloc_allocator bits. ++ * config/linker-map.gnu: Remove __pool_alloc bits. ++ * src/Makefile.am (sources): Add allocator.cc. ++ * src/Makefile.in: Regenerate. ++ * testsuite/20_util/allocator/1.cc: Split second test into... ++ * testsuite/20_util/allocator/8230.cc: ...this. ++ * include/bits/stl_bvector.h (__gnu_norm): Change bit_vector ++ typedef to use std::allocatore. Format. ++ * include/ext/pool_allocator.h: Remove allocator_traits.h include, ++ _Alloc_traits. ++ * include/ext/mt_allocator.h (__gnu_cxx): Qualify ++ __throw_bad_alloc calls. Don't include . ++ * include/ext/malloc_allocator.h: Remove include. ++ * include/ext/new_allocator.h (new_allocator): Same. ++ * include/ext/ropeimpl.h (__gnu_cxx): Remove __alloc using ++ declaration. Switch __alloc to _Alloc. ++ * include/ext/hashtable.h: Remove __alloc. ++ * include/backward/alloc.h: Only inject allocator, not ++ implementation details. ++ ++ * include/ext/mt_allocator.h: Replace free with delete. ++ ++2004-01-28 Benjamin Kosnik ++ ++ * src/globals_io.cc: Change to __gnu_internal namespace. ++ * src/globals_locale.cc: Same. ++ * src/locale_init.cc: Same. ++ * src/ios_init.cc: Same. ++ ++2004-01-28 Stefan Olsson ++ ++ * include/ext/mt_allocator.h: Replaced all malloc() calls with ++ operator new(). Added support for the env variable ++ GLIBCXX_FORCE_NEW (this required the _S_init call to be the first ++ one in allocate() as well). Fix typos. ++ ++2004-01-28 Paolo Carlini ++ ++ * include/bits/basic_string.h (_S_create(size_t, ++ const _Alloc&): Change signature to take two size_type ++ arguments. ++ * include/bits/basic_string.tcc (_S_construct(_InIterator, ++ _InIterator, const _Alloc&, input_iterator_tag)): Update ++ call, tweak a bit. ++ (_S_construct(_InIterator, _InIterator, const _Alloc&, ++ forward_iterator_tag)): Likewise. ++ (_S_construct(size_type, _CharT, const _Alloc&)): Likewise. ++ (_M_mutate(size_type, size_type, size_type)): Don't ++ implement the exponential growth policy, demand it to ++ _S_create, update call and simplify. ++ (_M_clone(const _Alloc&, size_type)): Likewise. ++ (_S_create(size_type, size_type, const _Alloc&)): Implement ++ the growth policy, simplify otherwise. ++ ++ * include/bits/basic_string.h (_Rep::operator[]): Tweak ++ signature to take a size_type, consistently with the other ++ members. ++ ++2004-01-27 Benjamin Kosnik ++ ++ * testsuite/27_io/ios_base/storage/11584.cc: Correct new and ++ delete declarations, add include and test variable. ++ ++2003-01-27 Jerry Quinn ++ ++ * include/bits/codecvt.h, include/bits/locale_facets.h, ++ include/bits/postypes.h, include/bits/stl_bvector.h, ++ include/bits/stl_multiset.h, include/bits/stl_set.h, ++ include/bits/stream_iterator.h, include/bits/streambuf_iterator.h, ++ include/std/std_complex.h: Document. ++ ++2004-01-27 Jerry Quinn ++ ++ PR libstdc++/11584 ++ * include/bits/ios_base.h (ios_base::_M_grow_words): Add ++ iword/pword selector. ++ (ios_base::iword, ios_base::pword): Use it. ++ * src/ios.cc (ios_base::_M_grow_words): Clear _M_word_zero ++ iword or pword member on alloc failure. ++ * testsuite/27_io/ios_base/storage/11584.cc: New test. ++ ++2004-01-27 Ulrich Weigand ++ PJ Darcy ++ ++ * configure.host: Add support for *-tpf. ++ * crossconfig.m4: Likewise. ++ * configure: Regenerate. ++ * config/os/tpf: New directory. ++ * config/os/tpf/os_defines.h: New file. ++ * config/os/tpf/ctype_base.h: Likewise. ++ * config/os/tpf/ctype_inline.h: Likewise. ++ * config/os/tpf/ctype_noninline.h: Likewise. ++ ++2004-01-27 Paolo Carlini ++ ++ PR libstdc++/13884 ++ * include/bits/sstream.tcc: Guard use of extern template. ++ ++2004-01-27 Paolo Carlini ++ ++ * include/bits/basic_string.tcc ++ (basic_string(const basic_string&, size_type, size_type), ++ basic_string(const basic_string&, size_type, size_type, ++ const _Alloc&)): Avoid unnecessarily constructing iterators. ++ ++2004-01-26 Paolo Carlini ++ ++ * config/locale/generic/c_locale.cc: Fix throw messages ++ to use the __N marker. ++ * config/locale/gnu/c_locale.cc: Likewise. ++ * config/locale/ieee_1003.1-2001/codecvt_specializations.h: ++ Likewise. ++ * docs/html/17_intro/C++STYLE: Likewise. ++ * include/bits/basic_ios.tcc: Likewise. ++ * include/bits/fstream.tcc: Likewise. ++ * include/bits/vector.tcc: Likewise. ++ * include/ext/ropeimpl.h: Likewise. ++ * include/std/std_bitset.h: Likewise. ++ * src/ios.cc: Likewise. ++ * src/locale.cc: Likewise. ++ * src/localename.cc: Likewise. ++ ++2004-01-26 Paolo Carlini ++ ++ * include/bits/basic_string.h (_M_replace_aux): Use the ++ __N marker in throw message. ++ * include/bits/basic_string.tcc (assign(const _CharT*, ++ size_type), insert(size_type, const _CharT*, size_type), ++ replace(size_type, size_type, const _CharT*, size_type), ++ reserve, _Rep::_S_create, resize, _M_replace_dispatch): ++ Likewise. ++ ++ * include/bits/basic_string.h, include/bits/basic_string.tcc: ++ Fold overlong lines, minor formatting changes. ++ ++2004-01-26 Paolo Carlini ++ ++ * include/bits/basic_string.h (replace(iterator, iterator, ++ const basic_string&)): Remove _GLIBCXX_DEBUG_PEDASSERT. ++ (replace(iterator, iterator, const _CharT*)): Ditto. ++ (replace(iterator, iterator, const _CharT*, size_type)): ++ Add missing _GLIBCXX_DEBUG_PEDASSERT. ++ ++2004-01-26 Paolo Carlini ++ ++ * include/bits/basic_string.tcc (replace(size_type, ++ size_type, const _CharT*, size_type)): Implement optimized ++ in-place algorithm for non-overlapping ranges. ++ * testsuite/21_strings/basic_string/replace/char/6.cc: New. ++ * testsuite/21_strings/basic_string/replace/wchar_t/6.cc: New. ++ ++ * include/bits/basic_string.tcc (insert(size_type, ++ const _CharT*, size_type)): Tweak slightly. ++ ++2004-01-26 Andreas Schwab ++ ++ * config/locale/gnu/monetary_members.cc: Restore locale before ++ rethrowing exception. ++ ++2004-01-25 Paolo Carlini ++ ++ * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe): ++ Define inline here. ++ * include/bits/basic_string.tcc (_M_replace_aux, _M_replace_safe): ++ Move inline. ++ ++ * include/bits/basic_string.tcc: Very minor tweaks. ++ ++2004-01-25 Paolo Carlini ++ ++ * testsuite/performance/string_append.cc: Increase number ++ of iterations. ++ ++2004-01-25 Paolo Carlini ++ ++ * include/bits/basic_string.h (erase(size_type, size_type), ++ erase(iterator), erase(iterator, iterator)): Call _M_replace_safe ++ instead, thus avoiding redundant check for length_error. ++ ++ * include/bits/basic_string.h: Tweak some comments. ++ ++2004-01-24 Paolo Carlini ++ ++ * include/bits/basic_string.tcc (operator+(const _CharT*, ++ const basic_string&)): No need to go through the append ++ taking two iterators. ++ ++2004-01-24 Paolo Carlini ++ ++ * include/bits/basic_string.tcc (rfind(_CharT, size_type)): ++ Revert last change to use std::min: machine language is worse. ++ (find_last_of(const _CharT*, size_type, size_type)): Ditto. ++ (find_last_not_of(const _CharT*, size_type, size_type)): Ditto. ++ (find_last_not_of(_CharT, size_type)): Ditto. ++ ++ * include/bits/basic_string.tcc (insert(size_type, const _CharT*, ++ size_type)): Discard the value returned by _M_check. ++ (replace(size_type, size_type, const _CharT*, size_type)): Ditto. ++ (append(const basic_string&, size_type, size_type)): Ditto. ++ (copy(_CharT*, size_type, size_type)): Ditto. ++ (compare(size_type, size_type, const basic_string&)): Ditto. ++ (compare(size_type, size_type, const basic_string&, ++ size_type, size_type)): Ditto. ++ (compare(size_type, size_type, const _CharT*)): Ditto. ++ (compare(size_type, size_type, const _CharT*, size_type)): Ditto. ++ ++2004-01-24 Paolo Carlini ++ ++ * include/bits/basic_string.h (insert(size_type, ++ const basic_string&, size_type, size_type)): Define inline here. ++ * include/bits/basic_string.tcc (insert(size_type, ++ const basic_string&, size_type, size_type)): Move inline. ++ ++2004-01-24 Paolo Carlini ++ ++ * include/bits/basic_string.h (assign(const basic_string&, ++ size_type, size_type)): Define inline here. ++ (replace(size_type, size_type, const basic_string&, ++ size_type, size_type)): Ditto. ++ (_M_replace_dispatch(iterator, iterator, _InputIterator, ++ _InputIterator, __false_type)): Only declare. ++ (_M_replace(iterator, iterator, _InputIterator, ++ _InputIterator)): Remove. ++ * include/bits/basic_string.tcc (assign(const basic_string&, ++ size_type, size_type)): Move inline. ++ (replace(size_type, size_type, const basic_string&, ++ size_type, size_type)): Ditto. ++ (_M_replace_dispatch(iterator, iterator, _InputIterator, ++ _InputIterator, __false_type)): Define, now does also what ++ _M_replace did before. ++ * src/string-inst.cc (_M_replace): Don't instantiate. ++ ++ * include/bits/basic_string.tcc (find(const _CharT*, ++ size_type, size_type)): Tidy. ++ (rfind(_CharT, size_type)): Ditto. ++ (find_first_not_of(const _CharT*, size_type, size_type)): Ditto. ++ (find_first_not_of(_CharT, size_type)): Ditto. ++ (find_last_not_of(const _CharT*, size_type, size_type)): Ditto. ++ (find_last_not_of(_CharT, size_type)): Ditto. ++ ++2004-01-23 Paolo Carlini ++ ++ PR libstdc++/13838 ++ * include/debug/bitset (operator|=): Fix typo. ++ * testsuite/23_containers/bitset/operations/13838.cc: New. ++ ++2004-01-23 Paolo Carlini ++ ++ * include/bits/basic_string.tcc (insert(size_type, ++ const _CharT*, size_type __n)): Fix length_error check. ++ (replace(size_type, size_type, const _CharT*, size_type): ++ Ditto; call _M_replace_safe. ++ (_M_replace_aux(size_type, size_type, size_type, _CharT): ++ Fix length_error check. ++ (_M_replace(iterator, iterator, _InputIterator, ++ _InputIterator)): Ditto, tweak. ++ (_M_replace_safe(size_type, size_type, const _CharT*, ++ size_type)): Remove length_error check. ++ ++ * include/bits/basic_string.tcc (append(const basic_string&), ++ append(const basic_string&, size_type, size_type)): Tweak ++ comment. ++ ++ * include/bits/basic_string.tcc (copy(_CharT*, size_type, ++ size_type)): If __n == 0 don't call traits::copy. ++ ++2004-01-23 Stefan Olsson ++ ++ * include/ext/mt_allocator.h: Reduce lock contention. ++ ++2004-01-23 Paolo Carlini ++ ++ PR libstdc++/13831 ++ * include/bits/fstream.tcc (underflow): Remove unused ++ variable. ++ * include/bits/streambuf_iterator.h (equal): Ditto. ++ * include/bits/locale_facets.h (_M_convert_from_char): ++ Ditto. ++ ++2004-01-23 Kaveh R. Ghazi ++ ++ PR c/13814 ++ * config/linker-map.gnu (nan): Delete. ++ * libmath/mathconf.h (NAN, nan): Delete. ++ * linkage.m4 (nan): Don't check for it. ++ * libmath/nan.c: Delete file. ++ ++ * config.h.in, configure: Regenerate. ++ ++2004-01-23 Paolo Carlini ++ ++ * include/bits/basic_string.h (push_back(_CharT)): ++ Call _M_replace_aux. ++ (insert(size_type, const basic_string&)): Trivial tweak. ++ (insert(size_type, size_type, _CharT)): Call _M_replace_aux. ++ (insert(iterator, _CharT)): Ditto. ++ (erase(size_type, size_type)): Ditto. ++ (erase(iterator)): Ditto. ++ (erase(iterator, iterator)): Ditto. ++ (replace(size_type, size_type, size_type, _CharT)): Ditto. ++ ++2004-01-23 Loren J. Rittle ++ ++ libstdc++/13823 ++ * testsuite/performance/allocator_map_thread.cc: New test. ++ ++2004-01-22 Paolo Carlini ++ ++ * include/bits/locale_facets.tcc ++ (money_put::do_put(..., long double)): Use the basic_string ++ constructor for char arrays, not that for C-strings, to pass ++ __digits to do_put(..., const string_type&): __ws isn't ++ null-terminated. ++ ++2004-01-22 Paolo Carlini ++ ++ * include/bits/basic_string.h (_M_replace_safe): Change ++ signatures to take size_types and const _CharT*. ++ (_M_replace_aux): Likewise, takes size_types instead of ++ iterators. ++ (append(size_type, _CharT)): Update call. ++ (assign(size_type, _CharT)): Ditto. ++ (replace(iterator, iterator, size_type, _CharT)): Ditto. ++ (_M_replace_dispatch(iterator, iterator, _Integer, ++ _Integer, __true_type)): Ditto. ++ * include/bits/basic_string.tcc (assign(const _CharT*, ++ size_type)): Ditto. ++ (insert(size_type, const _CharT*, size_type)): Ditto. ++ (replace(size_type, size_type, const _CharT*, ++ size_type)): Ditto. ++ (_M_replace(iterator, iterator, _InputIterator, ++ _InputIterator)): Ditto. ++ (append(const basic_string&)): Ditto. ++ (append(const basic_string&, size_type, size_type): Ditto. ++ (append(const _CharT*, size_type): Ditto. ++ (_M_replace_safe, _M_replace_safe): Change definitions ++ accordingly, simplify. ++ * string-inst.cc (_M_replace_safe): Don't instantiate. ++ ++2004-01-21 Paolo Carlini ++ ++ * include/bits/basic_string.tcc (append(const basic_string&)): ++ Revert previous change. ++ (append(const basic_string&, size_type, size_type)): Revert ++ previous change, use _M_check and _M_limit. ++ ++2004-01-21 Paolo Carlini ++ ++ * include/bits/basic_string.h (_M_check): Change to return ++ a checked __pos and take an additional const char* argument. ++ (_M_fold): Rename to _M_limit, change to return a size_type, ++ corresponding to the __off limited to the actual length. ++ (insert(size_type, size_type, _CharT)): Update call, call ++ replace. ++ (insert(iterator, _CharT)): Call replace(iterator, iterator, ++ size_type, _CharT) instead. ++ (erase(size_type, size_type)): Update calls. ++ (replace(size_type, size_type, size_type, _CharT)): Ditto. ++ (substr(size_type, size_type)): Use _M_check. ++ * include/bits/basic_string.tcc (basic_string(const basic_string&, ++ size_type, size_type)): Update calls. ++ (basic_string(const basic_string&, size_type, size_type, ++ const _Alloc&)): Ditto. ++ (assign(const basic_string&, size_type, size_type)): Use the ++ new _M_check and _M_limit. ++ (insert(size_type, const basic_string&, size_type, size_type): ++ Ditto. ++ (insert(size_type, const _CharT*, size_type)): Ditto. ++ (replace(size_type, size_type, const _CharT*, size_type): Ditto. ++ (replace(size_type, size_type, const basic_string&, ++ size_type, size_type)): Ditto. ++ (append(const basic_string&)): Ditto. ++ (append(const basic_string&, size_type, size_type)): Ditto. ++ (copy(_CharT*, size_type, size_type)): Ditto. ++ (compare(size_type, size_type, const basic_string&)): Ditto. ++ (compare(size_type, size_type, const basic_string&,size_type, ++ size_type)): Ditto. ++ (compare(size_type, size_type, const _CharT*)): Ditto. ++ (compare(size_type, size_type, const _CharT*, size_type)): Ditto. ++ ++2004-01-19 Stefan Olsson ++ ++ * include/ext/mt_allocator.h: If a thread, when it dies, still has ++ memory on it's freelist this memory is not returned to global ++ list. Simplification of deallocate so that memory is always ++ returned to the calling thread id's freelist instead of to ++ global. Fix typos. Add volatile where appropriate. ++ ++2004-01-19 Loren J. Rittle ++ ++ * testsuite/ext/stdio_filebuf/char/10063-2.cc: Treat unbuffered. ++ * testsuite/ext/stdio_filebuf/char/10063-3.cc: New test. Like -2 but ++ use __gnu_cxx::stdio_sync_filebuf instead; allow buffered stream. ++ ++2004-01-19 Paolo Carlini ++ ++ * src/debug.cc: Make sure all the names are prefixed with ++ double (or single) underscore. ++ ++2004-01-19 Paolo Carlini ++ ++ * src/debug.cc: Trivial formatting change. ++ ++2004-01-19 Paolo Carlini ++ ++ * include/bits/basic_string.tcc (_S_construct(size_type, ++ _CharT, const _Alloc&)): Remove redundant try/catch. ++ (_M_mutate(size_type, size_type, size_type)): Ditto. ++ (_M_clone(const _Alloc&, size_type)): Ditto. ++ ++2004-01-18 Paolo Carlini ++ ++ * include/bits/basic_string.h (c_str()): Simplify, due to ++ 21.3.4 the internal representation is always kept null-terminated. ++ * include/bits/basic_string.tcc (_M_clone): Null-terminate. ++ * testsuite/21_strings/basic_string/element_access/char/4.cc: New. ++ * testsuite/21_strings/basic_string/element_access/wchar_t/4.cc: ++ Ditto. ++ ++2004-01-18 Paolo Carlini ++ ++ * include/bits/basic_string.h (append(size_type, _CharT)): ++ Moved inline, just call _M_replace_aux, no source iterators at ++ risk of being clobbered. ++ (assign(size_type, _CharT)): Call directly _M_replace_aux. ++ (_M_replace(iterator, iterator, _InputIterator, _InputIterator, ++ input_iterator_tag)): Remove fifth unused argument. ++ (_M_replace_dispatch(iterator, iterator, _InputIterator, ++ _InputIterator, __false_type)): Update call. ++ * include/bits/basic_string.tcc (replace(size_type, size_type, ++ const _CharT*, size_type)): Update call. ++ (_M_replace_aux(iterator, iterator, size_type, _CharT)): Tweak ++ throw string literal. ++ (_M_replace_safe(iterator, iterator, _ForwardIterator, ++ _ForwardIterator)): Likewise. ++ (_M_replace(iterator, iterator, _InputIterator, _InputIterator, ++ input_iterator_tag)): Remove fifth unused argument. ++ (append(size_type __n, _CharT __c)): Move inline. ++ * src/string-inst.cc (S::_M_replace(S::iterator, S::iterator, ++ const C*, const C*, input_iterator_tag)): Remove fifth unused ++ argument. ++ ++2004-01-16 Benjamin Kosnik ++ ++ * testsuite/ext/enc_filebuf/char/13189.cc: Fix guards. ++ * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Same. ++ ++2004-01-16 Danny Smith ++ ++ * testsuite/testsuite_hooks.cc (try_mkfifo): Avoid calling ++ mkfifo for mingw32. ++ ++2004-01-15 Stefan Olsson ++ ++ * include/ext/mt_allocator.h: Reuse thread id's as soon as ++ possible by changing the behaviour of thread_freelist to do ++ push_front when threads die instead of push_back. ++ ++2004-01-14 Paolo Carlini ++ ++ * include/bits/locale_facets.h (struct __numpunct_cache): ++ Add member _M_grouping_size, caching the length of _M_grouping. ++ (__numpunct_cache<>::_M_cache): Assign the latter. ++ (__verify_grouping): Move declaration... ++ * include/bits/locale_facets.tcc (__verify_grouping): ++ ... here, change signature to take a const char* and a size_t ++ for the grouping; not a template anymore. ++ (__add_grouping, num_put::_M_group_int, num_put::_M_group_float): ++ Likewise change signature and tweak consistently. ++ (num_get::_M_extract_float, num_get::_M_extract_int, ++ num_put::_M_insert_int, num_put::_M_insert_float, ++ money_get::do_get(string_type&), money_get::do_put(string_type)): ++ Update callers. ++ * config/locale/generic/numeric_members.cc ++ (numpunct<>::_M_initialize_numpunct): Assign the new member. ++ * config/locale/gnu/numeric_members.cc ++ (numpunct<>::_M_initialize_numpunct): Likewise. ++ * src/locale-inst.cc (__add_grouping): Tweak signature. ++ (__verify_grouping): Don't instantiate, not a template anymore. ++ ++ * include/bits/locale_facets.h: Rename _M_truename_len -> ++ _M_truename_size, _M_falsename_len -> _M_falsename_size. ++ * include/bits/locale_facets.tcc: Likewise. ++ * config/locale/generic/numeric_members.cc: Likewise. ++ * config/locale/gnu/numeric_members.cc: Likewise. ++ ++2004-01-14 Stefan Olsson ++ ++ * include/ext/mt_allocator.h: Fixups. ++ * testsuite/performance/allocator.cc: Enable __mt_alloc tests. ++ * testsuite/performance/allocator_thread.cc: Same. ++ ++2004-01-13 Benjamin Kosnik ++ ++ * testsuite/performance/ifstream_extract_float.cc: Add higher ++ precision tests. ++ * testsuite/performance/ofstream_insert_float.cc: Same. ++ ++2004-01-13 Paolo Carlini ++ ++ * src/locale-misc-inst.cc (__convert_from_v(long), ++ __convert_from_v(unsigned long), __convert_from_v(long long), ++ __convert_from_v(unsigned long long)): Remove, unused. ++ ++2004-01-13 Benjamin Kosnik ++ ++ * testsuite/performance/ifstream_extract_float.cc: New. ++ * testsuite/performance/ofstream_insert_float.cc: Float generation ++ matches above. ++ ++ * 20_util/auto_ptr.cc, auto_ptr_neg.cc: Break into... ++ * 20_util/auto_ptr/1.cc: ...this. ++ * 20_util/auto_ptr/2.cc: Same. ++ * 20_util/auto_ptr/3.cc: Same. ++ * 20_util/auto_ptr/3946.cc: Same. ++ * 20_util/auto_ptr/4.cc: Same. ++ * 20_util/auto_ptr/5.cc: Same. ++ * 20_util/auto_ptr/6.cc: Same. ++ * 20_util/auto_ptr/7.cc: Same. ++ * 20_util/auto_ptr/assign_neg.cc ++ * 20_util/pairs.cc: Break into... ++ * 20_util/pair/1.cc: ...this. ++ * 20_util/pair/2.cc: Same. ++ * 20_util/pair/3.cc: Same. ++ * 20_util/pair/4.cc: Same. ++ ++2004-01-13 Paolo Carlini ++ ++ * include/bits/locale_facets.tcc (num_get::do_get(void*&)): ++ Set correctly just basefield, the only group that matters. ++ ++2004-01-13 Paolo Carlini ++ ++ * include/ext/rope (_Rope_rep_alloc_base): Eliminate. ++ (_Rope_rep_base): Inherit directly from the rope allocator; ++ use rebinding instead of _Alloc_traits; pick up data member ++ from _Rope_rep_alloc_base. ++ (_Rope_alloc_base): Eliminate. ++ (_Rope_base): Inherit directly from the rope allocator; use ++ rebinding instead of _Alloc_traits; pick up data member from ++ _Rope_alloc_base. ++ (rope::_S_new_RopeLeaf, rope::_S_new_RopeConcatenation, ++ rope::_S_new_RopeFunction, rope::_S_new_RopeSubstring): Tweak. ++ ++2004-01-13 Paolo Carlini ++ ++ PR libstdc++/13650 ++ * include/bits/basic_string.tcc (compare(size_type, size_type, ++ const _CharT*, size_type)): Implement correctly the resolution ++ of DR 5: basically, s is a char array, -not- a C string. ++ * include/bits/basic_string.h: Tweak some comments. ++ * testsuite/21_strings/basic_string/compare/char/13650.cc: New. ++ * testsuite/21_strings/basic_string/compare/wchar_t/13650.cc: New. ++ ++2004-01-12 Andreas Tobler ++ ++ * testsuite/lib/libstdc++.exp: Set LD_LIBRARY_PATH_32 for ++ Solaris. ++ ++2004-01-12 Paolo Carlini ++ ++ * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc: ++ Use try_mkfifo. ++ * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc: ++ Likewise. ++ ++2004-01-12 Paolo Carlini ++ ++ * include/bits/locale_facets.h (struct __numpunct_cache): ++ Add members _M_truename_len and _M_falsename_len, caching ++ the lengths of _M_truename and _M_falsename. ++ (__numpunct_cache<>::_M_cache): Assign the latter. ++ * include/bits/locale_facets.tcc (num_get::do_get(bool&), ++ num_put::do_put(bool)): Use the new members, thus avoiding ++ computing string lengths again and again. ++ * config/locale/generic/numeric_members.cc ++ (numpunct<>::_M_initialize_numpunct): Assign the new members. ++ * config/locale/gnu/numeric_members.cc ++ (numpunct<>::_M_initialize_numpunct): Likewise. ++ ++2004-01-12 Mark Mitchell ++ ++ * testsuite/testsuite_hooks.h (__gnu_test::try_mkfifo): Declare it. ++ * testsuite/testsuite_hooks.cc (__gnu_test::try_mkfifo): Define ++ it. ++ * testsuite/27_io/basic_filebuf/close/char/4879.cc: Use try_mkfifo ++ and remove Cygwin XFAIL. ++ * testsuite/27_io/basic_filebuf/close/char/9964.cc: Likewise. ++ * testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise. ++ * testsuite/27_io/basic_filebuf/open/char/9507.cc: Likewise. ++ * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc: ++ Likewise. ++ * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise. ++ * testsuite/27_io/objects/char/7.cc: Likewise. ++ * testsuite/27_io/objects/char/9661-1.cc: Likewise. ++ * testsuite/27_io/objects/wchar_t/7.cc: Likewise. ++ * testsuite/27_io/objects/wchar_t/9661-1.cc: Likewise. ++ ++2004-01-11 Gabriel Dos Reis ++ ++ * include/std/std_complex.h (std::complex<>::real): Return a ++ reference. Add non-const overload. ++ (std::complex<>::real): Likewise. ++ (std::real): Likewise. ++ (std::imag): Likewise. ++ (std::operator+): Tidy. ++ (std::operator-): Likewise. ++ (std::operator*): Likewise. ++ (std::operator/): Likewise. ++ (std::operator>>): Likewise. ++ ++2004-01-11 Paolo Carlini ++ ++ PR libstdc++/13582 ++ * include/bits/fstream.tcc (imbue): Exploit the external ++ buffer to imbue 'on the fly' a new locale and convert its ++ remainder with the new codecvt facet. ++ (underflow): Tweak slightly to deal with this special case. ++ * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc: New. ++ * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc: Ditto. ++ * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Ditto. ++ * testsuite/27_io/objects/wchar_t/13582-1_xin.cc: Ditto. ++ * testsuite/27_io/objects/wchar_t/13582-1_xin.in: Ditto. ++ ++2004-01-10 Paolo Carlini ++ ++ * docs/html/ext/lwg-active.html, docs/html/ext/lwg-defects.html: ++ Import Revision 28. ++ ++2004-01-10 Paolo Carlini ++ ++ PR libstdc++/13630 ++ * include/bits/locale_classes.h (class locale): Fix category ++ typedef. ++ * testsuite/22_locale/locale/13630.cc: Add. ++ ++2004-01-10 Giovanni Bajo ++ ++ * include/bits/locale_facets.h: Make a name really dependent. This ++ will be needed when Core Issue 224 is implemented. ++ ++2004-01-09 Paolo Carlini ++ ++ * testsuite/performance/allocator.cc: Demangle typeid(obj).name(). ++ * testsuite/performance/allocator_thread.cc: Likewise. ++ ++2004-01-07 Benjamin Kosnik ++ ++ * crossconfig.m4: Add LFS, io bits to linux cross config. ++ * acconfig.h: Remove obsolete bits, reorder. ++ * config.h.in: Regenerate. ++ * aclocal.m4: Same. ++ * configure: Same. ++ ++2004-01-07 Gawain Bolton ++ ++ * include/bits/stl_list.h: ++ * include/bits/list.tc: ++ * src/list.cc: ++ Performance enhancements for destructor, push_front(), ++ push_back(), pop_front(), pop_back(), sort() ++ Eliminated static_casts where possible. ++ Moved code out of header files into new src/list.cc ++ implementation file for library where possible. ++ Remove inheritance from iterator class and create separate ++ classes for non-constant and constant iterators. ++ * include/bits/stl_tree.h (_Rb_tree class): ++ * src/tree.cc: ++ Only erase contents in destructor. ++ Eliminate unnecessary initialization in assignment operator. ++ Optimize for the nominal case by not checking whether ++ container is empty in clear(). ++ Re-order test in _M_insert() to improve performance. ++ Move initialization of new node's left & right pointers to ++ src/tree.cc to where new node's colour is initialized ++ and to reduce the amount of inline code. ++ Use _M_leftmost() and _M_end() to improve readability where ++ appropriate. ++ Create separate classes for non-constant and constant ++ iterators to clarify code, avoid extra template parameters and ++ casting away constness. ++ ++2004-01-07 Benjamin Kosnik ++ ++ * src/Makefile.am (sources): Add list.cc, tree.cc. ++ * src/stl_tree.cc: Move to... ++ * src/tree.cc: ...here. ++ * src/list.cc: Add. ++ * config/linker-map.gnu: Tweaks. ++ * testsuite/23_containers/map/operators/1_neg.cc: Add excess errors. ++ * testsuite/23_containers/set/operators/1_neg.cc: Add excess errors. ++ ++ * bits/stl_vector.h: Column wrap comments. ++ ++2004-01-07 Loren J. Rittle ++ ++ (re-open) PR libstdc++/12658 ++ * src/locale_init.cc (locale::locale): Remove ill-scoped mutex. ++ (locale::global): Likewise. ++ ++2004-01-07 Paolo Carlini ++ ++ * testsuite/27_io/basic_istream/extractors_other/char/9318-in.cc: ++ Remove redundant #include. ++ * testsuite/27_io/basic_ostream/endl/char/1.cc: Likewise. ++ * testsuite/27_io/basic_ostream/ends/char/1.cc: Likewise, ++ re-enable normal testing. ++ * testsuite/27_io/basic_ostream/ends/char/2.cc: Remove redundant ++ #include. ++ * testsuite/27_io/basic_ostream/flush/char/1.cc: Likewise. ++ * testsuite/27_io/basic_ostream/inserters_character/char/1.cc: ++ Likewise. ++ * testsuite/27_io/basic_ostream/inserters_character/char/2.cc: ++ Likewise. ++ * testsuite/27_io/basic_ostream/inserters_character/char/3.cc: ++ Likewise. ++ * testsuite/27_io/basic_ostream/inserters_character/char/4.cc: ++ Likewise. ++ * testsuite/27_io/basic_ostream/inserters_character/char/5.cc: ++ Likewise. ++ * testsuite/27_io/basic_ostream/inserters_character/char/6.cc: ++ Likewise. ++ * testsuite/27_io/basic_ostream/inserters_character/char/8.cc: ++ Likewise. ++ * testsuite/27_io/basic_ostream/inserters_character/wchar_t/7.cc: ++ More properly, #include . ++ * testsuite/27_io/basic_ostream/inserters_character/wchar_t/8.cc: ++ Remove redundant #include. ++ * testsuite/27_io/basic_ostream/inserters_other/char/2.cc: Likewise. ++ * testsuite/27_io/basic_ostream/inserters_other/char/3.cc: Remove ++ redundant DejaGnu directive. ++ * testsuite/27_io/basic_ostream/inserters_other/char/4.cc: Remove ++ redundant #include. ++ ++2004-01-06 Benjamin Kosnik ++ Stefan Olsson ++ ++ * scripts/check_performance: Use -pthread. ++ * testsuite/performance/allocator.cc: Tweaks, add list. ++ * testsuite/performance/allocator_thread.cc: New. ++ ++2004-01-06 Jerry Quinn ++ ++ * include/bits/locale_facets.h: Document public classes and ++ functions. ++ * include/bits/locale_facets.tcc (time_get::_M_extract_via_format): ++ Add comment. ++ ++2004-01-06 Paolo Carlini ++ ++ * testsuite/27_io/basic_istream/extractors_other/char/1.cc: ++ Remove redundant #includes. ++ * testsuite/27_io/basic_istream/extractors_other/char/2.cc: ++ Likewise. ++ * testsuite/27_io/basic_istream/extractors_other/char/3.cc: ++ Likewise. ++ * testsuite/27_io/basic_istream/get/char/1.cc: Likewise. ++ * testsuite/27_io/basic_istream/get/char/2.cc: Likewise. ++ * testsuite/27_io/basic_istream/getline/char/1.cc: Likewise. ++ * testsuite/27_io/basic_istream/getline/char/2.cc: Likewise. ++ * testsuite/27_io/basic_istream/getline/char/3.cc: Likewise. ++ * testsuite/27_io/basic_istream/ignore/char/1.cc: Likewise. ++ * testsuite/27_io/basic_istream/ignore/char/6360.cc: Likewise. ++ * testsuite/27_io/basic_istream/ignore/char/7220.cc: Likewise. ++ * testsuite/27_io/basic_istream/peek/char/1.cc: Likewise. ++ * testsuite/27_io/basic_istream/peek/char/6414.cc: Likewise. ++ * testsuite/27_io/basic_istream/putback/char/1.cc: Likewise. ++ * testsuite/27_io/basic_istream/read/char/1.cc: Likewise. ++ * testsuite/27_io/basic_istream/read/char/2.cc: Likewise. ++ * testsuite/27_io/basic_istream/read/char/3.cc: Likewise. ++ * testsuite/27_io/basic_istream/readsome/char/6746-1.cc: ++ Likewise. ++ * testsuite/27_io/basic_istream/readsome/char/6746-2.cc: ++ Likewise. ++ * testsuite/27_io/basic_istream/readsome/char/8258.cc: ++ Likewise. ++ * testsuite/27_io/basic_istream/seekg/char/2346-fstream.cc: ++ Likewise. ++ * testsuite/27_io/basic_istream/seekg/char/2346-sstream.cc: ++ Likewise. ++ * testsuite/27_io/basic_istream/seekg/char/8348-1.cc: Likewise. ++ * testsuite/27_io/basic_istream/seekg/char/8348-2.cc: Likewise. ++ * testsuite/27_io/basic_istream/tellg/char/8348.cc: Likewise. ++ ++2004-01-04 Paolo Carlini ++ ++ * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc: ++ Remove redundant #includes. ++ * testsuite/27_io/basic_istream/extractors_arithmetic/char/02.cc: ++ Likewise. ++ * testsuite/27_io/basic_istream/extractors_arithmetic/char/03.cc: ++ Likewise. ++ * testsuite/27_io/basic_istream/extractors_arithmetic/char/06.cc: ++ Likewise. ++ * testsuite/27_io/basic_istream/extractors_arithmetic/char/07.cc: ++ Likewise. ++ * testsuite/27_io/basic_istream/extractors_arithmetic/char/08.cc: ++ Likewise. ++ * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc: ++ Likewise. ++ * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc: ++ Likewise. ++ * testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc: ++ Likewise. ++ * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc: ++ Likewise. ++ * testsuite/27_io/basic_ostream/inserters_arithmetic/char/1.cc: ++ Likewise. ++ * testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc: ++ Likewise. ++ * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc: ++ Likewise. ++ ++2004-01-04 Mark Mitchell ++ ++ PR c++/12226 ++ * testsuite/27_io/basic_filebuf/4.cc: Remove use of invalid copy ++ constructor. ++ * testsuite/27_io/basic_fstream/4.cc: Likewise. ++ * testsuite/27_io/basic_ifstream/4.cc: Likewise. ++ * testsuite/27_io/basic_ios/4.cc: Likewise. ++ * testsuite/27_io/basic_iostream/4.cc: Likewise. ++ * testsuite/27_io/basic_istream/4.cc: Likewise. ++ * testsuite/27_io/basic_istingstream/4.cc: Likewise. ++ * testsuite/27_io/basic_ofstream/4.cc: Likewise. ++ * testsuite/27_io/basic_ostream/4.cc: Likewise. ++ * testsuite/27_io/basic_ostringstream/4.cc: Likewise. ++ * testsuite/27_io/basic_stringbuf/5.cc: Likewise. ++ * testsuite/27_io/basic_stringstream/4.cc: Likewise. ++ ++2004-01-04 Paolo Carlini ++ ++ * config/locale/generic/numeric_members.cc (_M_initialize_numpunct): ++ Avoid unnecessarily zero terminating _M_atoms_out and _M_atoms_in; ++ always use double underscored names. ++ * config/locale/gnu/numeric_members.cc (_M_initialize_numpunct): ++ Likewise. ++ * include/bits/locale_facets.h (struct __numpunct_cache): ++ Dimension _M_atoms_out and _M_atoms_in one position smaller. ++ (__numpunct_cache<>::_M_cache): Don't zero terminate _M_atoms_out ++ and _M_atoms_in. +Index: libstdc++-v3/configure +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/configure,v +retrieving revision 1.373.4.21 +retrieving revision 1.373.4.22 +diff -u -r1.373.4.21 -r1.373.4.22 +--- libstdc++-v3/configure 28 Oct 2004 21:52:02 -0000 1.373.4.21 ++++ libstdc++-v3/configure 1 Feb 2005 06:29:28 -0000 1.373.4.22 +@@ -1,9 +1,8 @@ + #! /bin/sh + # Guess values for system-dependent variables and create Makefiles. +-# Generated by GNU Autoconf 2.57 for package-unused version-unused. ++# Generated by GNU Autoconf 2.59 for package-unused version-unused. + # +-# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 +-# Free Software Foundation, Inc. ++# Copyright (C) 2003 Free Software Foundation, Inc. + # This configure script is free software; the Free Software Foundation + # gives unlimited permission to copy, distribute and modify it. + ## --------------------- ## +@@ -20,9 +19,10 @@ + elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix + fi ++DUALCASE=1; export DUALCASE # for MKS sh + + # Support unset when possible. +-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then ++if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset + else + as_unset=false +@@ -41,7 +41,7 @@ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME + do +- if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then ++ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var +@@ -218,16 +218,17 @@ + if mkdir -p . 2>/dev/null; then + as_mkdir_p=: + else ++ test -d ./-p && rmdir ./-p + as_mkdir_p=false + fi + + as_executable_p="test -f" + + # Sed expression to map a string onto a valid CPP name. +-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" ++as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + + # Sed expression to map a string onto a valid variable name. +-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" ++as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + + # IFS +@@ -667,7 +668,7 @@ + + # Be sure to have absolute paths. + for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ +- localstatedir libdir includedir oldincludedir infodir mandir ++ localstatedir libdir includedir oldincludedir infodir mandir + do + eval ac_val=$`echo $ac_var` + case $ac_val in +@@ -707,10 +708,10 @@ + # Try the directory containing this script, then its parent. + ac_confdir=`(dirname "$0") 2>/dev/null || + $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +- X"$0" : 'X\(//\)[^/]' \| \ +- X"$0" : 'X\(//\)$' \| \ +- X"$0" : 'X\(/\)' \| \ +- . : '\(.\)' 2>/dev/null || ++ X"$0" : 'X\(//\)[^/]' \| \ ++ X"$0" : 'X\(//\)$' \| \ ++ X"$0" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || + echo X"$0" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } +@@ -794,9 +795,9 @@ + cat <<_ACEOF + Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX +- [$ac_default_prefix] ++ [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX +- [PREFIX] ++ [PREFIX] + + By default, \`make install' will install all the files in + \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +@@ -952,12 +953,45 @@ + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; + esac +-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be +-# absolute. +-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` +-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` +-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` +-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` ++ ++# Do not use `cd foo && pwd` to compute absolute paths, because ++# the directories may not exist. ++case `pwd` in ++.) ac_abs_builddir="$ac_dir";; ++*) ++ case "$ac_dir" in ++ .) ac_abs_builddir=`pwd`;; ++ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; ++ *) ac_abs_builddir=`pwd`/"$ac_dir";; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_builddir=${ac_top_builddir}.;; ++*) ++ case ${ac_top_builddir}. in ++ .) ac_abs_top_builddir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; ++ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_srcdir=$ac_srcdir;; ++*) ++ case $ac_srcdir in ++ .) ac_abs_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; ++ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_srcdir=$ac_top_srcdir;; ++*) ++ case $ac_top_srcdir in ++ .) ac_abs_top_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; ++ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; ++ esac;; ++esac + + cd $ac_dir + # Check for guested configure; otherwise get Cygnus style configure. +@@ -968,7 +1002,7 @@ + echo + $SHELL $ac_srcdir/configure --help=recursive + elif test -f $ac_srcdir/configure.ac || +- test -f $ac_srcdir/configure.in; then ++ test -f $ac_srcdir/configure.in; then + echo + $ac_configure --help + else +@@ -982,10 +1016,9 @@ + if $ac_init_version; then + cat <<\_ACEOF + package-unused configure version-unused +-generated by GNU Autoconf 2.57 ++generated by GNU Autoconf 2.59 + +-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 +-Free Software Foundation, Inc. ++Copyright (C) 2003 Free Software Foundation, Inc. + This configure script is free software; the Free Software Foundation + gives unlimited permission to copy, distribute and modify it. + _ACEOF +@@ -997,7 +1030,7 @@ + running configure, to aid debugging if configure makes a mistake. + + It was created by package-unused $as_me version-unused, which was +-generated by GNU Autoconf 2.57. Invocation command line was ++generated by GNU Autoconf 2.59. Invocation command line was + + $ $0 $@ + +@@ -1074,19 +1107,19 @@ + 2) + ac_configure_args1="$ac_configure_args1 '$ac_arg'" + if test $ac_must_keep_next = true; then +- ac_must_keep_next=false # Got value, back to normal. ++ ac_must_keep_next=false # Got value, back to normal. + else +- case $ac_arg in +- *=* | --config-cache | -C | -disable-* | --disable-* \ +- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ +- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ +- | -with-* | --with-* | -without-* | --without-* | --x) +- case "$ac_configure_args0 " in +- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; +- esac +- ;; +- -* ) ac_must_keep_next=true ;; +- esac ++ case $ac_arg in ++ *=* | --config-cache | -C | -disable-* | --disable-* \ ++ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ ++ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ ++ | -with-* | --with-* | -without-* | --without-* | --x) ++ case "$ac_configure_args0 " in ++ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; ++ esac ++ ;; ++ -* ) ac_must_keep_next=true ;; ++ esac + fi + ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" + # Get rid of the leading space. +@@ -1120,12 +1153,12 @@ + case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in + *ac_space=\ *) + sed -n \ +- "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; +- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ++ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; ++ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" + ;; + *) + sed -n \ +- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ++ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; + } +@@ -1154,7 +1187,7 @@ + for ac_var in $ac_subst_files + do + eval ac_val=$`echo $ac_var` +- echo "$ac_var='"'"'$ac_val'"'"'" ++ echo "$ac_var='"'"'$ac_val'"'"'" + done | sort + echo + fi +@@ -1173,7 +1206,7 @@ + echo "$as_me: caught signal $ac_signal" + echo "$as_me: exit $exit_status" + } >&5 +- rm -f core core.* *.core && ++ rm -f core *.core && + rm -rf conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status + ' 0 +@@ -1253,7 +1286,7 @@ + # value. + ac_cache_corrupted=false + for ac_var in `(set) 2>&1 | +- sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do ++ sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val="\$ac_cv_env_${ac_var}_value" +@@ -1270,13 +1303,13 @@ + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then +- { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 ++ { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 + echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} +- { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 ++ { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 + echo "$as_me: former value: $ac_old_val" >&2;} +- { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 ++ { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 + echo "$as_me: current value: $ac_new_val" >&2;} +- ac_cache_corrupted=: ++ ac_cache_corrupted=: + fi;; + esac + # Pass precious variables to config.status. +@@ -1580,6 +1613,7 @@ + # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag + # AFS /usr/afsws/bin/install, which mishandles nonexistent args + # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" ++# OS/2's system install, which has a completely different semantic + # ./install, which can be erroneously created by make from ./install.sh. + echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 + echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 +@@ -1596,6 +1630,7 @@ + case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ++ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. +@@ -1603,20 +1638,20 @@ + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do +- if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then +- if test $ac_prog = install && +- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then +- # AIX install. It has an incompatible calling convention. +- : +- elif test $ac_prog = install && +- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then +- # program-specific install script used by HP pwplus--don't use. +- : +- else +- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" +- break 3 +- fi +- fi ++ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then ++ if test $ac_prog = install && ++ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ++ # AIX install. It has an incompatible calling convention. ++ : ++ elif test $ac_prog = install && ++ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ++ # program-specific install script used by HP pwplus--don't use. ++ : ++ else ++ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" ++ break 3 ++ fi ++ fi + done + done + ;; +@@ -1760,7 +1795,7 @@ + + echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 + echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 +-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` ++set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` + if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +@@ -2337,7 +2372,6 @@ + (exit $ac_status); } + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -2371,7 +2405,6 @@ + EXEEXT= + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -2391,8 +2424,8 @@ + # Try to create an executable without -o first, disregard a.out. + # It will help us diagnose broken compilers, and finding out an intuition + # of exeext. +-echo "$as_me:$LINENO: checking for C compiler default output" >&5 +-echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6 ++echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 ++echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 + ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 + (eval $ac_link_default) 2>&5 +@@ -2412,23 +2445,23 @@ + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) +- ;; ++ ;; + conftest.$ac_ext ) +- # This is the source file. +- ;; ++ # This is the source file. ++ ;; + [ab].out ) +- # We found the default executable, but exeext='' is most +- # certainly right. +- break;; ++ # We found the default executable, but exeext='' is most ++ # certainly right. ++ break;; + *.* ) +- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` +- # FIXME: I believe we export ac_cv_exeext for Libtool, +- # but it would be cool to find out if it's true. Does anybody +- # maintain Libtool? --akim. +- export ac_cv_exeext +- break;; ++ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` ++ # FIXME: I believe we export ac_cv_exeext for Libtool, ++ # but it would be cool to find out if it's true. Does anybody ++ # maintain Libtool? --akim. ++ export ac_cv_exeext ++ break;; + * ) +- break;; ++ break;; + esac + done + else +@@ -2502,8 +2535,8 @@ + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` +- export ac_cv_exeext +- break;; ++ export ac_cv_exeext ++ break;; + * ) break;; + esac + done +@@ -2529,7 +2562,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -2580,7 +2612,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -2600,11 +2631,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -2617,7 +2658,7 @@ + + ac_compiler_gnu=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_c_compiler_gnu=$ac_compiler_gnu + + fi +@@ -2633,7 +2674,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -2650,11 +2690,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -2667,7 +2717,7 @@ + + ac_cv_prog_cc_g=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 + echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 +@@ -2694,7 +2744,6 @@ + ac_cv_prog_cc_stdc=no + ac_save_CC=$CC + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -2722,6 +2771,16 @@ + va_end (v); + return s; + } ++ ++/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has ++ function prototypes and stuff, but not '\xHH' hex character constants. ++ These don't provoke an error unfortunately, instead are silently treated ++ as 'x'. The following induces an error, until -std1 is added to get ++ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an ++ array size at least. It's necessary to write '\x00'==0 to get something ++ that's true only with -std1. */ ++int osf4_cc_array ['\x00' == 0 ? 1 : -1]; ++ + int test (int i, double x); + struct s1 {int (*f) (int a);}; + struct s2 {int (*f) (double a);}; +@@ -2748,11 +2807,21 @@ + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -2765,7 +2834,7 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext ++rm -f conftest.err conftest.$ac_objext + done + rm -f conftest.$ac_ext conftest.$ac_objext + CC=$ac_save_CC +@@ -2793,19 +2862,28 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + for ac_declaration in \ +- ''\ +- '#include ' \ ++ '' \ + 'extern "C" void std::exit (int) throw (); using std::exit;' \ + 'extern "C" void std::exit (int); using std::exit;' \ + 'extern "C" void exit (int) throw ();' \ +@@ -2813,14 +2891,13 @@ + 'void exit (int);' + do + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ +-#include + $ac_declaration ++#include + int + main () + { +@@ -2831,11 +2908,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -2848,9 +2935,8 @@ + + continue + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -2867,11 +2953,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -2883,7 +2979,7 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done + rm -f conftest* + if test -n "$ac_declaration"; then +@@ -2897,7 +2993,7 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -3023,7 +3119,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -3043,11 +3138,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -3060,7 +3165,7 @@ + + ac_compiler_gnu=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_cxx_compiler_gnu=$ac_compiler_gnu + + fi +@@ -3076,7 +3181,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -3093,11 +3197,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -3110,7 +3224,7 @@ + + ac_cv_prog_cxx_g=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 + echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6 +@@ -3130,8 +3244,7 @@ + fi + fi + for ac_declaration in \ +- ''\ +- '#include ' \ ++ '' \ + 'extern "C" void std::exit (int) throw (); using std::exit;' \ + 'extern "C" void std::exit (int); using std::exit;' \ + 'extern "C" void exit (int) throw ();' \ +@@ -3139,14 +3252,13 @@ + 'void exit (int);' + do + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ +-#include + $ac_declaration ++#include + int + main () + { +@@ -3157,11 +3269,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -3174,9 +3296,8 @@ + + continue + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -3193,11 +3314,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -3209,7 +3340,7 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done + rm -f conftest* + if test -n "$ac_declaration"; then +@@ -4273,7 +4404,7 @@ + case $host in + *-*-irix6*) + # Find out which ABI we are using. +- echo '#line 4276 "configure"' > conftest.$ac_ext ++ echo '#line 4407 "configure"' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +@@ -4397,7 +4528,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -4414,11 +4544,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -4431,7 +4571,8 @@ + + lt_cv_cc_needs_belf=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -4480,13 +4621,13 @@ + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ +- "s/'/'\\\\''/g; +- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ++ "s/'/'\\\\''/g; ++ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n \ +- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ++ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; + } | +@@ -4573,7 +4714,6 @@ + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -4584,7 +4724,7 @@ + #else + # include + #endif +- Syntax error ++ Syntax error + _ACEOF + if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +@@ -4596,6 +4736,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_cxx_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag + else + ac_cpp_err= + fi +@@ -4616,7 +4757,6 @@ + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -4634,6 +4774,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_cxx_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag + else + ac_cpp_err= + fi +@@ -4680,7 +4821,6 @@ + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -4691,7 +4831,7 @@ + #else + # include + #endif +- Syntax error ++ Syntax error + _ACEOF + if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +@@ -4703,6 +4843,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_cxx_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag + else + ac_cpp_err= + fi +@@ -4723,7 +4864,6 @@ + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -4741,6 +4881,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_cxx_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag + else + ac_cpp_err= + fi +@@ -4877,7 +5018,7 @@ + # + # Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style. + cat > conftest.$ac_ext << EOF +-#line 4880 "configure" ++#line 5021 "configure" + struct S { ~S(); }; + void bar(); + void foo() +@@ -5070,7 +5211,6 @@ + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5081,7 +5221,7 @@ + #else + # include + #endif +- Syntax error ++ Syntax error + _ACEOF + if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +@@ -5093,6 +5233,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -5113,7 +5254,6 @@ + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5131,6 +5271,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -5177,7 +5318,6 @@ + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5188,7 +5328,7 @@ + #else + # include + #endif +- Syntax error ++ Syntax error + _ACEOF + if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +@@ -5200,6 +5340,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -5220,7 +5361,6 @@ + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5238,6 +5378,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -5298,7 +5439,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5319,11 +5459,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -5336,12 +5486,11 @@ + + ac_cv_header_stdc=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + + if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5363,7 +5512,6 @@ + if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5388,7 +5536,6 @@ + : + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5400,9 +5547,9 @@ + # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) + #else + # define ISLOWER(c) \ +- (('a' <= (c) && (c) <= 'i') \ +- || ('j' <= (c) && (c) <= 'r') \ +- || ('s' <= (c) && (c) <= 'z')) ++ (('a' <= (c) && (c) <= 'i') \ ++ || ('j' <= (c) && (c) <= 'r') \ ++ || ('s' <= (c) && (c) <= 'z')) + # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) + #endif + +@@ -5413,7 +5560,7 @@ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) +- || toupper (i) != TOUPPER (i)) ++ || toupper (i) != TOUPPER (i)) + exit(2); + exit (0); + } +@@ -5438,7 +5585,7 @@ + ( exit $ac_status ) + ac_cv_header_stdc=no + fi +-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + fi + fi +@@ -5463,7 +5610,7 @@ + + + for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ +- inttypes.h stdint.h unistd.h ++ inttypes.h stdint.h unistd.h + do + as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` + echo "$as_me:$LINENO: checking for $ac_header" >&5 +@@ -5472,7 +5619,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5484,11 +5630,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -5501,7 +5657,7 @@ + + eval "$as_ac_Header=no" + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -5550,7 +5706,6 @@ + case x${target_os} in + xlinux* | xgnu* | xkfreebsd*-gnu | xknetbsd*-gnu) + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5578,7 +5733,6 @@ + enable_clocale_flag=generic + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5629,7 +5783,7 @@ + ( exit $ac_status ) + enable_clocale_flag=generic + fi +-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + fi + +@@ -5788,7 +5942,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5799,11 +5952,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -5816,7 +5979,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -5824,7 +5987,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5842,6 +6004,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -5861,33 +6024,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -5898,7 +6060,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -5928,7 +6090,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5952,11 +6113,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -5968,7 +6139,8 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + if test "$ac_cv_search_gettext" = no; then + for ac_lib in intl; do + LIBS="-l$ac_lib $ac_func_search_save_LIBS" +@@ -5978,7 +6150,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6002,11 +6173,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6019,7 +6200,8 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + done + fi + LIBS=$ac_func_search_save_LIBS +@@ -6199,7 +6381,6 @@ + echo "$as_me:$LINENO: checking for ISO C99 support in " >&5 + echo $ECHO_N "checking for ISO C99 support in ... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6216,11 +6397,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6233,9 +6424,8 @@ + + ac_c99_math=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6252,11 +6442,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6269,9 +6469,8 @@ + + ac_c99_math=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6288,11 +6487,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6305,9 +6514,8 @@ + + ac_c99_math=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6324,11 +6532,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6341,9 +6559,8 @@ + + ac_c99_math=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6360,11 +6577,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6377,9 +6604,8 @@ + + ac_c99_math=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6396,11 +6622,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6413,9 +6649,8 @@ + + ac_c99_math=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6432,11 +6667,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6449,9 +6694,8 @@ + + ac_c99_math=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6468,11 +6712,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6485,9 +6739,8 @@ + + ac_c99_math=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6504,11 +6757,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6521,9 +6784,8 @@ + + ac_c99_math=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6540,11 +6802,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6557,9 +6829,8 @@ + + ac_c99_math=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6576,11 +6847,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6593,9 +6874,8 @@ + + ac_c99_math=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6612,11 +6892,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6629,7 +6919,7 @@ + + ac_c99_math=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_c99_math" >&5 + echo "${ECHO_T}$ac_c99_math" >&6 + +@@ -6645,7 +6935,6 @@ + echo "$as_me:$LINENO: checking for ISO C99 support in " >&5 + echo $ECHO_N "checking for ISO C99 support in ... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6662,11 +6951,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6679,9 +6978,8 @@ + + ac_c99_stdio=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6702,11 +7000,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6719,9 +7027,8 @@ + + ac_c99_stdio=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6742,11 +7049,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6759,9 +7076,8 @@ + + ac_c99_stdio=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6782,11 +7098,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6799,9 +7125,8 @@ + + ac_c99_stdio=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6822,11 +7147,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6839,7 +7174,7 @@ + + ac_c99_stdio=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_c99_stdio" >&5 + echo "${ECHO_T}$ac_c99_stdio" >&6 + +@@ -6852,7 +7187,6 @@ + else + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6869,11 +7203,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6886,7 +7230,7 @@ + + ac_c99_lldiv_t=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + + fi + +@@ -6896,7 +7240,6 @@ + echo "$as_me:$LINENO: checking for ISO C99 support in " >&5 + echo $ECHO_N "checking for ISO C99 support in ... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6913,11 +7256,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6930,9 +7283,8 @@ + + ac_c99_stdlib=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6949,11 +7301,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6966,9 +7328,8 @@ + + ac_c99_stdlib=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6985,11 +7346,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -7002,9 +7373,8 @@ + + ac_c99_stdlib=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -7021,11 +7391,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -7038,9 +7418,8 @@ + + ac_c99_stdlib=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -7057,11 +7436,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -7074,9 +7463,8 @@ + + ac_c99_stdlib=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -7093,11 +7481,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -7110,7 +7508,7 @@ + + ac_c99_stdlib=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + if test x"$ac_c99_lldiv_t" = x"no"; then + ac_c99_stdlib=no; + fi; +@@ -7123,7 +7521,6 @@ + echo "$as_me:$LINENO: checking for additional ISO C99 support in " >&5 + echo $ECHO_N "checking for additional ISO C99 support in ... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -7140,11 +7537,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -7157,9 +7564,8 @@ + + ac_c99_wchar=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -7176,11 +7582,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -7193,9 +7609,8 @@ + + ac_c99_wchar=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -7212,11 +7627,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -7229,7 +7654,7 @@ + + ac_c99_wchar=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_c99_wchar" >&5 + echo "${ECHO_T}$ac_c99_wchar" >&6 + +@@ -7490,7 +7915,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -7501,11 +7925,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -7518,7 +7952,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -7526,7 +7960,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -7544,6 +7977,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -7563,33 +7997,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -7600,7 +8033,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -7643,7 +8076,6 @@ + echo $ECHO_N "checking for g++ that supports -ffunction-sections -fdata-sections... $ECHO_C" >&6 + CXXFLAGS='-Werror -ffunction-sections -fdata-sections' + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -7660,11 +8092,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -7677,7 +8119,7 @@ + + ac_fdsections=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS="$ac_save_CXXFLAGS" + else +@@ -7755,7 +8197,6 @@ + ac_sectionLDflags=yes + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -7790,7 +8231,7 @@ + ( exit $ac_status ) + ac_sectionLDflags=no + fi +-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" +@@ -7831,7 +8272,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -7855,11 +8295,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -7872,7 +8322,8 @@ + + ac_cv_lib_m_sin=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_m_sin" >&5 +@@ -7902,7 +8353,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -7923,11 +8373,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -7940,7 +8400,7 @@ + + glibcxx_cv_func_isinf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -7970,21 +8430,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -8015,11 +8482,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -8032,7 +8509,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -8062,7 +8540,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -8083,11 +8560,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -8100,7 +8587,7 @@ + + glibcxx_cv_func__isinf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -8130,21 +8617,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -8175,11 +8669,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -8192,7 +8696,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -8225,7 +8730,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -8246,11 +8750,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -8263,7 +8777,7 @@ + + glibcxx_cv_func_isnan_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -8293,21 +8807,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -8338,11 +8859,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -8355,7 +8886,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -8385,7 +8917,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -8406,11 +8937,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -8423,7 +8964,7 @@ + + glibcxx_cv_func__isnan_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -8453,21 +8994,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -8498,11 +9046,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -8515,7 +9073,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -8548,7 +9107,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -8569,11 +9127,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -8586,7 +9154,7 @@ + + glibcxx_cv_func_finite_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -8616,21 +9184,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -8661,11 +9236,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -8678,7 +9263,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -8708,7 +9294,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -8729,11 +9314,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -8746,7 +9341,7 @@ + + glibcxx_cv_func__finite_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -8776,21 +9371,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -8821,11 +9423,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -8838,7 +9450,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -8871,7 +9484,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -8888,11 +9500,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -8905,7 +9527,7 @@ + + glibcxx_cv_func_copysign_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -8935,21 +9557,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -8980,11 +9609,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -8997,7 +9636,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -9027,7 +9667,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -9044,11 +9683,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -9061,7 +9710,7 @@ + + glibcxx_cv_func__copysign_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -9091,21 +9740,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -9136,11 +9792,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -9153,7 +9819,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -9186,7 +9853,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -9203,11 +9869,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -9220,7 +9896,7 @@ + + glibcxx_cv_func_sincos_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -9250,21 +9926,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -9295,11 +9978,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -9312,7 +10005,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -9342,7 +10036,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -9359,11 +10052,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -9376,7 +10079,7 @@ + + glibcxx_cv_func__sincos_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -9406,21 +10109,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -9451,11 +10161,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -9468,7 +10188,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -9501,7 +10222,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -9522,11 +10242,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -9539,7 +10269,7 @@ + + glibcxx_cv_func_fpclass_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -9569,21 +10299,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -9614,11 +10351,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -9631,7 +10378,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -9661,7 +10409,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -9682,11 +10429,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -9699,7 +10456,7 @@ + + glibcxx_cv_func__fpclass_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -9729,21 +10486,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -9774,11 +10538,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -9791,7 +10565,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -9824,7 +10599,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -9845,11 +10619,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -9862,7 +10646,7 @@ + + glibcxx_cv_func_qfpclass_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -9892,21 +10676,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -9937,11 +10728,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -9954,7 +10755,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -9984,7 +10786,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -10005,11 +10806,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10022,7 +10833,7 @@ + + glibcxx_cv_func__qfpclass_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -10052,21 +10863,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -10097,11 +10915,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10114,7 +10942,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -10147,7 +10976,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -10164,11 +10992,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10181,7 +11019,7 @@ + + glibcxx_cv_func_hypot_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -10211,21 +11049,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -10256,11 +11101,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10273,7 +11128,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -10303,7 +11159,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -10320,11 +11175,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10337,7 +11202,7 @@ + + glibcxx_cv_func__hypot_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -10367,21 +11232,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -10412,11 +11284,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10429,7 +11311,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -10461,7 +11344,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -10480,11 +11362,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10497,7 +11389,7 @@ + + glibcxx_cv_func_float_trig_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -10534,21 +11426,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -10579,11 +11478,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10596,7 +11505,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -10626,7 +11536,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -10643,11 +11552,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10660,7 +11579,7 @@ + + glibcxx_cv_func_float_round_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -10688,21 +11607,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -10733,11 +11659,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10750,7 +11686,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -10782,7 +11719,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -10803,11 +11739,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10820,7 +11766,7 @@ + + glibcxx_cv_func_expf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -10850,21 +11796,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -10895,11 +11848,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10912,7 +11875,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -10942,7 +11906,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -10963,11 +11926,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10980,7 +11953,7 @@ + + glibcxx_cv_func__expf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -11010,21 +11983,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -11055,11 +12035,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -11072,7 +12062,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -11105,7 +12096,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -11126,11 +12116,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -11143,7 +12143,7 @@ + + glibcxx_cv_func_isnanf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -11173,21 +12173,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -11218,11 +12225,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -11235,7 +12252,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -11265,7 +12283,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -11286,11 +12303,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -11303,7 +12330,7 @@ + + glibcxx_cv_func__isnanf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -11333,21 +12360,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -11378,11 +12412,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -11395,7 +12439,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -11428,7 +12473,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -11449,11 +12493,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -11466,7 +12520,7 @@ + + glibcxx_cv_func_isinff_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -11496,21 +12550,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -11541,11 +12602,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -11558,7 +12629,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -11588,7 +12660,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -11609,11 +12680,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -11626,7 +12707,7 @@ + + glibcxx_cv_func__isinff_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -11656,21 +12737,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -11701,11 +12789,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -11718,7 +12816,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -11751,7 +12850,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -11768,11 +12866,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -11785,7 +12893,7 @@ + + glibcxx_cv_func_atan2f_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -11815,21 +12923,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -11860,11 +12975,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -11877,7 +13002,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -11907,7 +13033,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -11924,11 +13049,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -11941,7 +13076,7 @@ + + glibcxx_cv_func__atan2f_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -11971,21 +13106,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -12016,11 +13158,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -12033,7 +13185,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -12066,7 +13219,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -12087,11 +13239,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -12104,7 +13266,7 @@ + + glibcxx_cv_func_fabsf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -12134,21 +13296,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -12179,11 +13348,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -12196,7 +13375,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -12226,7 +13406,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -12247,11 +13426,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -12264,7 +13453,7 @@ + + glibcxx_cv_func__fabsf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -12294,21 +13483,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -12339,11 +13535,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -12356,7 +13562,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -12389,7 +13596,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -12406,11 +13612,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -12423,7 +13639,7 @@ + + glibcxx_cv_func_fmodf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -12453,21 +13669,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -12498,11 +13721,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -12515,7 +13748,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -12545,7 +13779,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -12562,11 +13795,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -12579,7 +13822,7 @@ + + glibcxx_cv_func__fmodf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -12609,21 +13852,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -12654,11 +13904,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -12671,7 +13931,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -12704,7 +13965,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -12721,11 +13981,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -12738,7 +14008,7 @@ + + glibcxx_cv_func_frexpf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -12768,21 +14038,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -12813,11 +14090,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -12830,7 +14117,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -12860,7 +14148,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -12877,11 +14164,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -12894,7 +14191,7 @@ + + glibcxx_cv_func__frexpf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -12924,21 +14221,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -12969,11 +14273,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -12986,7 +14300,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -13019,7 +14334,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -13036,11 +14350,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -13053,7 +14377,7 @@ + + glibcxx_cv_func_hypotf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -13083,21 +14407,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -13128,11 +14459,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -13145,7 +14486,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -13175,7 +14517,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -13192,11 +14533,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -13209,7 +14560,7 @@ + + glibcxx_cv_func__hypotf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -13239,21 +14590,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -13284,11 +14642,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -13301,7 +14669,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -13334,7 +14703,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -13351,11 +14719,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -13368,7 +14746,7 @@ + + glibcxx_cv_func_ldexpf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -13398,21 +14776,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -13443,11 +14828,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -13460,7 +14855,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -13490,7 +14886,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -13507,11 +14902,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -13524,7 +14929,7 @@ + + glibcxx_cv_func__ldexpf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -13554,21 +14959,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -13599,11 +15011,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -13616,7 +15038,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -13649,7 +15072,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -13670,11 +15092,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -13687,7 +15119,7 @@ + + glibcxx_cv_func_logf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -13717,21 +15149,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -13762,11 +15201,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -13779,7 +15228,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -13809,7 +15259,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -13830,11 +15279,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -13847,7 +15306,7 @@ + + glibcxx_cv_func__logf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -13877,21 +15336,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -13922,11 +15388,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -13939,7 +15415,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -13972,7 +15449,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -13993,11 +15469,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -14010,7 +15496,7 @@ + + glibcxx_cv_func_log10f_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -14040,21 +15526,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -14085,11 +15578,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -14102,7 +15605,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -14132,7 +15636,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -14153,11 +15656,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -14170,7 +15683,7 @@ + + glibcxx_cv_func__log10f_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -14200,21 +15713,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -14245,11 +15765,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -14262,7 +15792,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -14295,7 +15826,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -14312,11 +15842,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -14329,7 +15869,7 @@ + + glibcxx_cv_func_modff_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -14359,21 +15899,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -14404,11 +15951,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -14421,7 +15978,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -14451,7 +16009,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -14468,11 +16025,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -14485,7 +16052,7 @@ + + glibcxx_cv_func__modff_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -14515,21 +16082,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -14560,11 +16134,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -14577,7 +16161,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -14610,7 +16195,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -14627,11 +16211,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -14644,7 +16238,7 @@ + + glibcxx_cv_func_powf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -14674,21 +16268,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -14719,11 +16320,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -14736,7 +16347,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -14766,7 +16378,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -14783,11 +16394,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -14800,7 +16421,7 @@ + + glibcxx_cv_func__powf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -14830,21 +16451,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -14875,11 +16503,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -14892,7 +16530,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -14925,7 +16564,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -14946,11 +16584,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -14963,7 +16611,7 @@ + + glibcxx_cv_func_sqrtf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -14993,21 +16641,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -15038,11 +16693,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -15055,7 +16720,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -15085,7 +16751,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -15106,11 +16771,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -15123,7 +16798,7 @@ + + glibcxx_cv_func__sqrtf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -15153,21 +16828,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -15198,11 +16880,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -15215,7 +16907,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -15248,7 +16941,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -15265,11 +16957,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -15282,7 +16984,7 @@ + + glibcxx_cv_func_sincosf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -15312,21 +17014,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -15357,11 +17066,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -15374,7 +17093,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -15404,7 +17124,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -15421,11 +17140,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -15438,7 +17167,7 @@ + + glibcxx_cv_func__sincosf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -15468,21 +17197,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -15513,11 +17249,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -15530,7 +17276,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -15563,7 +17310,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -15584,11 +17330,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -15601,7 +17357,7 @@ + + glibcxx_cv_func_finitef_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -15631,21 +17387,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -15676,11 +17439,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -15693,7 +17466,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -15723,7 +17497,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -15744,11 +17517,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -15761,7 +17544,7 @@ + + glibcxx_cv_func__finitef_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -15791,21 +17574,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -15836,11 +17626,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -15853,7 +17653,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -15885,7 +17686,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -15904,11 +17704,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -15921,7 +17731,7 @@ + + glibcxx_cv_func_long_double_trig_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -15958,21 +17768,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -16003,11 +17820,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -16020,7 +17847,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -16050,7 +17878,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -16067,11 +17894,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -16084,7 +17921,7 @@ + + glibcxx_cv_func_long_double_round_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -16112,21 +17949,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -16157,11 +18001,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -16174,7 +18028,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -16206,7 +18061,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -16227,11 +18081,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -16244,7 +18108,7 @@ + + glibcxx_cv_func_isnanl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -16274,21 +18138,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -16319,11 +18190,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -16336,7 +18217,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -16366,7 +18248,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -16387,11 +18268,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -16404,7 +18295,7 @@ + + glibcxx_cv_func__isnanl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -16434,21 +18325,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -16479,11 +18377,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -16496,7 +18404,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -16529,7 +18438,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -16550,11 +18458,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -16567,7 +18485,7 @@ + + glibcxx_cv_func_isinfl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -16597,21 +18515,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -16642,11 +18567,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -16659,7 +18594,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -16689,7 +18625,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -16710,11 +18645,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -16727,7 +18672,7 @@ + + glibcxx_cv_func__isinfl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -16757,21 +18702,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -16802,11 +18754,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -16819,7 +18781,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -16852,7 +18815,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -16869,11 +18831,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -16886,7 +18858,7 @@ + + glibcxx_cv_func_copysignl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -16916,21 +18888,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -16961,11 +18940,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -16978,7 +18967,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -17008,7 +18998,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -17025,11 +19014,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -17042,7 +19041,7 @@ + + glibcxx_cv_func__copysignl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -17072,21 +19071,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -17117,11 +19123,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -17134,7 +19150,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -17167,7 +19184,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -17184,11 +19200,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -17201,7 +19227,7 @@ + + glibcxx_cv_func_atan2l_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -17231,21 +19257,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -17276,11 +19309,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -17293,7 +19336,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -17323,7 +19367,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -17340,11 +19383,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -17357,7 +19410,7 @@ + + glibcxx_cv_func__atan2l_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -17387,21 +19440,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -17432,11 +19492,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -17449,7 +19519,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -17482,7 +19553,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -17503,11 +19573,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -17520,7 +19600,7 @@ + + glibcxx_cv_func_expl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -17550,21 +19630,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -17595,11 +19682,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -17612,7 +19709,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -17642,7 +19740,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -17663,11 +19760,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -17680,7 +19787,7 @@ + + glibcxx_cv_func__expl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -17710,21 +19817,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -17755,11 +19869,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -17772,7 +19896,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -17805,7 +19930,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -17826,11 +19950,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -17843,7 +19977,7 @@ + + glibcxx_cv_func_fabsl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -17873,21 +20007,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -17918,11 +20059,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -17935,7 +20086,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -17965,7 +20117,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -17986,11 +20137,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -18003,7 +20164,7 @@ + + glibcxx_cv_func__fabsl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -18033,21 +20194,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -18078,11 +20246,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -18095,7 +20273,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -18128,7 +20307,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -18145,11 +20323,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -18162,7 +20350,7 @@ + + glibcxx_cv_func_fmodl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -18192,21 +20380,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -18237,11 +20432,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -18254,7 +20459,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -18284,7 +20490,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -18301,11 +20506,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -18318,7 +20533,7 @@ + + glibcxx_cv_func__fmodl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -18348,21 +20563,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -18393,11 +20615,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -18410,7 +20642,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -18443,7 +20676,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -18460,11 +20692,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -18477,7 +20719,7 @@ + + glibcxx_cv_func_frexpl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -18507,21 +20749,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -18552,11 +20801,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -18569,7 +20828,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -18599,7 +20859,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -18616,11 +20875,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -18633,7 +20902,7 @@ + + glibcxx_cv_func__frexpl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -18663,21 +20932,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -18708,11 +20984,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -18725,7 +21011,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -18758,7 +21045,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -18775,11 +21061,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -18792,7 +21088,7 @@ + + glibcxx_cv_func_hypotl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -18822,21 +21118,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -18867,11 +21170,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -18884,7 +21197,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -18914,7 +21228,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -18931,11 +21244,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -18948,7 +21271,7 @@ + + glibcxx_cv_func__hypotl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -18978,21 +21301,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -19023,11 +21353,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -19040,7 +21380,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -19073,7 +21414,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -19090,11 +21430,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -19107,7 +21457,7 @@ + + glibcxx_cv_func_ldexpl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -19137,21 +21487,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -19182,11 +21539,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -19199,7 +21566,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -19229,7 +21597,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -19246,11 +21613,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -19263,7 +21640,7 @@ + + glibcxx_cv_func__ldexpl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -19293,21 +21670,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -19338,11 +21722,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -19355,7 +21749,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -19388,7 +21783,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -19409,11 +21803,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -19426,7 +21830,7 @@ + + glibcxx_cv_func_logl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -19456,21 +21860,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -19501,11 +21912,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -19518,7 +21939,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -19548,7 +21970,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -19569,11 +21990,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -19586,7 +22017,7 @@ + + glibcxx_cv_func__logl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -19616,21 +22047,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -19661,11 +22099,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -19678,7 +22126,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -19711,7 +22160,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -19732,11 +22180,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -19749,7 +22207,7 @@ + + glibcxx_cv_func_log10l_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -19779,21 +22237,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -19824,11 +22289,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -19841,7 +22316,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -19871,7 +22347,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -19892,11 +22367,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -19909,7 +22394,7 @@ + + glibcxx_cv_func__log10l_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -19939,21 +22424,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -19984,11 +22476,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -20001,7 +22503,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -20034,7 +22537,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -20051,11 +22553,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -20068,7 +22580,7 @@ + + glibcxx_cv_func_modfl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -20098,21 +22610,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -20143,11 +22662,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -20160,7 +22689,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -20190,7 +22720,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -20207,11 +22736,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -20224,7 +22763,7 @@ + + glibcxx_cv_func__modfl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -20254,21 +22793,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -20299,11 +22845,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -20316,7 +22872,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -20349,7 +22906,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -20366,11 +22922,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -20383,7 +22949,7 @@ + + glibcxx_cv_func_powl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -20413,21 +22979,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -20458,11 +23031,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -20475,7 +23058,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -20505,7 +23089,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -20522,11 +23105,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -20539,7 +23132,7 @@ + + glibcxx_cv_func__powl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -20569,21 +23162,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -20614,11 +23214,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -20631,7 +23241,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -20664,7 +23275,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -20685,11 +23295,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -20702,7 +23322,7 @@ + + glibcxx_cv_func_sqrtl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -20732,21 +23352,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -20777,11 +23404,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -20794,7 +23431,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -20824,7 +23462,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -20845,11 +23482,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -20862,7 +23509,7 @@ + + glibcxx_cv_func__sqrtl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -20892,21 +23539,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -20937,11 +23591,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -20954,7 +23618,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -20987,7 +23652,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -21004,11 +23668,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -21021,7 +23695,7 @@ + + glibcxx_cv_func_sincosl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -21051,21 +23725,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -21096,11 +23777,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -21113,7 +23804,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -21143,7 +23835,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -21160,11 +23851,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -21177,7 +23878,7 @@ + + glibcxx_cv_func__sincosl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -21207,21 +23908,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -21252,11 +23960,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -21269,7 +23987,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -21302,7 +24021,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -21323,11 +24041,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -21340,7 +24068,7 @@ + + glibcxx_cv_func_finitel_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -21370,21 +24098,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -21415,11 +24150,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -21432,7 +24177,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -21462,7 +24208,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -21483,11 +24228,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -21500,7 +24255,7 @@ + + glibcxx_cv_func__finitel_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -21530,21 +24285,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -21575,11 +24337,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -21592,7 +24364,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -21625,7 +24398,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -21644,11 +24416,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -21661,7 +24443,7 @@ + + glibcxx_cv_func__float_trig_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -21698,21 +24480,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -21743,11 +24532,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -21760,7 +24559,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -21790,7 +24590,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -21807,11 +24606,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -21824,7 +24633,7 @@ + + glibcxx_cv_func__float_round_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -21852,21 +24661,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -21897,11 +24713,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -21914,7 +24740,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -21945,7 +24772,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -21964,11 +24790,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -21981,7 +24817,7 @@ + + glibcxx_cv_func__long_double_trig_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -22018,21 +24854,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -22063,11 +24906,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -22080,7 +24933,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -22110,7 +24964,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -22127,11 +24980,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -22144,7 +25007,7 @@ + + glibcxx_cv_func__long_double_round_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -22172,21 +25035,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -22217,11 +25087,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -22234,7 +25114,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -22270,7 +25151,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -22287,11 +25167,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -22304,7 +25194,7 @@ + + glibcxx_cv_func___builtin_abs_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -22331,7 +25221,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -22348,11 +25237,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -22365,7 +25264,8 @@ + + glibcxx_cv_func___builtin_abs_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -22399,7 +25299,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -22416,11 +25315,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -22433,7 +25342,7 @@ + + glibcxx_cv_func___builtin_fabsf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -22460,7 +25369,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -22477,11 +25385,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -22494,7 +25412,8 @@ + + glibcxx_cv_func___builtin_fabsf_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -22528,7 +25447,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -22545,11 +25463,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -22562,7 +25490,7 @@ + + glibcxx_cv_func___builtin_fabs_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -22589,7 +25517,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -22606,11 +25533,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -22623,7 +25560,8 @@ + + glibcxx_cv_func___builtin_fabs_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -22657,7 +25595,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -22674,11 +25611,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -22691,7 +25638,7 @@ + + glibcxx_cv_func___builtin_fabsl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -22718,7 +25665,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -22735,11 +25681,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -22752,7 +25708,8 @@ + + glibcxx_cv_func___builtin_fabsl_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -22786,7 +25743,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -22803,11 +25759,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -22820,7 +25786,7 @@ + + glibcxx_cv_func___builtin_labs_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -22847,7 +25813,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -22864,11 +25829,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -22881,7 +25856,8 @@ + + glibcxx_cv_func___builtin_labs_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -22916,7 +25892,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -22933,11 +25908,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -22950,7 +25935,7 @@ + + glibcxx_cv_func___builtin_sqrtf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -22977,7 +25962,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -22994,11 +25978,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -23011,7 +26005,8 @@ + + glibcxx_cv_func___builtin_sqrtf_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -23045,7 +26040,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -23062,11 +26056,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -23079,7 +26083,7 @@ + + glibcxx_cv_func___builtin_sqrt_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -23106,7 +26110,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -23123,11 +26126,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -23140,7 +26153,8 @@ + + glibcxx_cv_func___builtin_sqrt_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -23174,7 +26188,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -23191,11 +26204,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -23208,7 +26231,7 @@ + + glibcxx_cv_func___builtin_sqrtl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -23235,7 +26258,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -23252,11 +26274,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -23269,7 +26301,8 @@ + + glibcxx_cv_func___builtin_sqrtl_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -23304,7 +26337,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -23321,11 +26353,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -23338,7 +26380,7 @@ + + glibcxx_cv_func___builtin_sinf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -23365,7 +26407,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -23382,11 +26423,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -23399,7 +26450,8 @@ + + glibcxx_cv_func___builtin_sinf_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -23433,7 +26485,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -23450,11 +26501,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -23467,7 +26528,7 @@ + + glibcxx_cv_func___builtin_sin_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -23494,7 +26555,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -23511,11 +26571,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -23528,7 +26598,8 @@ + + glibcxx_cv_func___builtin_sin_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -23562,7 +26633,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -23579,11 +26649,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -23596,7 +26676,7 @@ + + glibcxx_cv_func___builtin_sinl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -23623,7 +26703,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -23640,11 +26719,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -23657,7 +26746,8 @@ + + glibcxx_cv_func___builtin_sinl_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -23692,7 +26782,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -23709,11 +26798,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -23726,7 +26825,7 @@ + + glibcxx_cv_func___builtin_cosf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -23753,7 +26852,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -23770,11 +26868,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -23787,7 +26895,8 @@ + + glibcxx_cv_func___builtin_cosf_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -23821,7 +26930,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -23838,11 +26946,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -23855,7 +26973,7 @@ + + glibcxx_cv_func___builtin_cos_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -23882,7 +27000,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -23899,11 +27016,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -23916,7 +27043,8 @@ + + glibcxx_cv_func___builtin_cos_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -23950,7 +27078,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -23967,11 +27094,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -23984,7 +27121,7 @@ + + glibcxx_cv_func___builtin_cosl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -24011,7 +27148,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -24028,11 +27164,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -24045,7 +27191,8 @@ + + glibcxx_cv_func___builtin_cosl_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -24078,7 +27225,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -24096,11 +27242,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -24113,7 +27269,8 @@ + + ac_cv_lib_m_main=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_m_main" >&5 +@@ -24142,21 +27299,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -24187,11 +27351,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -24204,7 +27378,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -24234,21 +27409,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -24279,11 +27461,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -24296,7 +27488,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -24326,21 +27519,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -24371,11 +27571,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -24388,7 +27598,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -24419,21 +27630,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -24464,11 +27682,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -24481,7 +27709,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -24509,7 +27738,6 @@ + echo "$as_me:$LINENO: checking for mbstate_t" >&5 + echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -24526,11 +27754,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -24543,7 +27781,7 @@ + + have_mbstate_t=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $have_mbstate_t" >&5 + echo "${ECHO_T}$have_mbstate_t" >&6 + if test x"$have_mbstate_t" = xyes; then +@@ -24571,7 +27809,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -24582,11 +27819,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -24599,7 +27846,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -24607,7 +27854,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -24625,6 +27871,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -24644,33 +27891,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -24681,7 +27927,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -24715,7 +27961,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -24726,11 +27971,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -24743,7 +27998,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -24751,7 +28006,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -24769,6 +28023,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -24788,33 +28043,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -24825,7 +28079,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -24853,7 +28107,6 @@ + echo "$as_me:$LINENO: checking for WCHAR_MIN and WCHAR_MAX" >&5 + echo $ECHO_N "checking for WCHAR_MIN and WCHAR_MAX... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -24870,11 +28123,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -24887,7 +28150,7 @@ + + has_wchar_minmax=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $has_wchar_minmax" >&5 + echo "${ECHO_T}$has_wchar_minmax" >&6 + +@@ -24896,7 +28159,6 @@ + echo "$as_me:$LINENO: checking for WEOF" >&5 + echo $ECHO_N "checking for WEOF... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -24915,11 +28177,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -24932,7 +28204,7 @@ + + has_weof=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $has_weof" >&5 + echo "${ECHO_T}$has_weof" >&6 + +@@ -24958,21 +28230,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -25003,11 +28282,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -25020,7 +28309,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -25101,21 +28391,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -25146,11 +28443,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -25163,7 +28470,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -25200,21 +28508,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -25245,11 +28560,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -25262,7 +28587,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -25303,7 +28629,6 @@ + echo "$as_me:$LINENO: checking iconv.h usability" >&5 + echo $ECHO_N "checking iconv.h usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -25314,11 +28639,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -25331,7 +28666,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -25339,7 +28674,6 @@ + echo "$as_me:$LINENO: checking iconv.h presence" >&5 + echo $ECHO_N "checking iconv.h presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -25357,6 +28691,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -25376,33 +28711,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: iconv.h: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: iconv.h: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: iconv.h: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: iconv.h: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: iconv.h: present but cannot be compiled" >&5 + echo "$as_me: WARNING: iconv.h: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: iconv.h: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: iconv.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: iconv.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: iconv.h: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: iconv.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: iconv.h: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: iconv.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -25439,7 +28773,6 @@ + echo "$as_me:$LINENO: checking langinfo.h usability" >&5 + echo $ECHO_N "checking langinfo.h usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -25450,11 +28783,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -25467,7 +28810,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -25475,7 +28818,6 @@ + echo "$as_me:$LINENO: checking langinfo.h presence" >&5 + echo $ECHO_N "checking langinfo.h presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -25493,6 +28835,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -25512,33 +28855,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: langinfo.h: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: langinfo.h: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: langinfo.h: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: langinfo.h: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: langinfo.h: present but cannot be compiled" >&5 + echo "$as_me: WARNING: langinfo.h: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: langinfo.h: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: langinfo.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: langinfo.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: langinfo.h: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: langinfo.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: langinfo.h: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: langinfo.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -25577,7 +28919,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -25601,11 +28942,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -25618,7 +28969,8 @@ + + ac_cv_lib_iconv_iconv=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_iconv_iconv" >&5 +@@ -25648,21 +29000,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -25693,11 +29052,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -25710,7 +29079,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -25779,7 +29149,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -25796,11 +29165,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -25813,7 +29192,7 @@ + + glibcxx_cv_func_strtold_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -25842,21 +29221,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -25887,11 +29273,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -25904,7 +29300,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -25935,7 +29332,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -25952,11 +29348,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -25969,7 +29375,7 @@ + + glibcxx_cv_func_strtof_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -25998,21 +29404,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -26043,11 +29456,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -26060,7 +29483,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -26097,7 +29521,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -26108,11 +29531,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -26125,7 +29558,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -26133,7 +29566,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -26151,6 +29583,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -26170,33 +29603,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -26207,7 +29639,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -26233,7 +29665,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -26252,11 +29683,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -26269,7 +29710,8 @@ + + glibcxx_cv_POLL=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -26291,7 +29733,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -26310,11 +29751,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -26327,7 +29778,8 @@ + + glibcxx_cv_S_ISREG=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -26341,7 +29793,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -26360,11 +29811,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -26377,7 +29838,8 @@ + + glibcxx_cv_S_IFREG=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -26412,7 +29874,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -26423,11 +29884,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -26440,7 +29911,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -26448,7 +29919,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -26466,6 +29936,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -26485,33 +29956,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -26522,7 +29992,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -26548,7 +30018,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -26566,11 +30035,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -26583,7 +30062,8 @@ + + glibcxx_cv_WRITEV=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -26602,7 +30082,6 @@ + else + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -26619,11 +30098,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -26636,7 +30125,7 @@ + + glibcxx_cv_INT64_T=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + + fi + +@@ -26670,7 +30159,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -26693,11 +30181,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -26710,7 +30208,8 @@ + + glibcxx_cv_LFS=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -26743,7 +30242,6 @@ + echo "$as_me:$LINENO: checking locale.h usability" >&5 + echo $ECHO_N "checking locale.h usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -26754,11 +30252,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -26771,7 +30279,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -26779,7 +30287,6 @@ + echo "$as_me:$LINENO: checking locale.h presence" >&5 + echo $ECHO_N "checking locale.h presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -26797,6 +30304,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -26816,33 +30324,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: locale.h: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: locale.h: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: locale.h: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: locale.h: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: locale.h: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: locale.h: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: locale.h: present but cannot be compiled" >&5 + echo "$as_me: WARNING: locale.h: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: locale.h: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: locale.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: locale.h: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: locale.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: locale.h: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: locale.h: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: locale.h: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: locale.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: locale.h: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: locale.h: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: locale.h: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: locale.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -26872,7 +30379,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -26889,11 +30395,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -26906,7 +30422,8 @@ + + ac_cv_val_LC_MESSAGES=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_val_LC_MESSAGES" >&5 + echo "${ECHO_T}$ac_cv_val_LC_MESSAGES" >&6 +@@ -26923,7 +30440,6 @@ + + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -26943,11 +30459,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -26963,7 +30489,7 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + + if test x$gcc_no_link = xyes; then + if test "x${ac_cv_func_mmap_fixed_mapped+set}" != xset; then +@@ -26989,7 +30515,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -27000,11 +30525,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -27017,7 +30552,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -27025,7 +30560,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -27043,6 +30577,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -27062,33 +30597,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -27099,7 +30633,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -27129,21 +30663,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -27174,11 +30715,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -27191,7 +30742,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -27212,7 +30764,6 @@ + ac_cv_func_mmap_fixed_mapped=no + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -27320,9 +30871,9 @@ + data2 = (char *) malloc (2 * pagesize); + if (!data2) + exit (1); +- data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1); ++ data2 += (pagesize - ((long) data2 & (pagesize - 1))) & (pagesize - 1); + if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, +- MAP_PRIVATE | MAP_FIXED, fd, 0L)) ++ MAP_PRIVATE | MAP_FIXED, fd, 0L)) + exit (1); + for (i = 0; i < pagesize; ++i) + if (*(data + i) != *(data2 + i)) +@@ -27365,7 +30916,7 @@ + ( exit $ac_status ) + ac_cv_func_mmap_fixed_mapped=no + fi +-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + fi + echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5 +@@ -27577,7 +31128,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -27588,11 +31138,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -27605,7 +31165,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -27613,7 +31173,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -27631,6 +31190,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -27650,33 +31210,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -27687,7 +31246,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -27730,7 +31289,6 @@ + echo $ECHO_N "checking for g++ that supports -ffunction-sections -fdata-sections... $ECHO_C" >&6 + CXXFLAGS='-Werror -ffunction-sections -fdata-sections' + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -27747,11 +31305,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -27764,7 +31332,7 @@ + + ac_fdsections=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS="$ac_save_CXXFLAGS" + else +@@ -27805,7 +31373,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -27829,11 +31396,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -27846,7 +31423,8 @@ + + ac_cv_lib_m_sin=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_m_sin" >&5 +@@ -27876,7 +31454,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -27897,11 +31474,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -27914,7 +31501,7 @@ + + glibcxx_cv_func_isinf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -27944,21 +31531,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -27989,11 +31583,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -28006,7 +31610,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -28036,7 +31641,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -28057,11 +31661,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -28074,7 +31688,7 @@ + + glibcxx_cv_func__isinf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -28104,21 +31718,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -28149,11 +31770,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -28166,7 +31797,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -28199,7 +31831,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -28220,11 +31851,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -28237,7 +31878,7 @@ + + glibcxx_cv_func_isnan_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -28267,21 +31908,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -28312,11 +31960,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -28329,7 +31987,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -28359,7 +32018,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -28380,11 +32038,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -28397,7 +32065,7 @@ + + glibcxx_cv_func__isnan_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -28427,21 +32095,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -28472,11 +32147,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -28489,7 +32174,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -28522,7 +32208,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -28543,11 +32228,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -28560,7 +32255,7 @@ + + glibcxx_cv_func_finite_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -28590,21 +32285,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -28635,11 +32337,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -28652,7 +32364,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -28682,7 +32395,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -28703,11 +32415,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -28720,7 +32442,7 @@ + + glibcxx_cv_func__finite_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -28750,21 +32472,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -28795,11 +32524,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -28812,7 +32551,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -28845,7 +32585,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -28862,11 +32601,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -28879,7 +32628,7 @@ + + glibcxx_cv_func_copysign_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -28909,21 +32658,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -28954,11 +32710,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -28971,7 +32737,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -29001,7 +32768,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -29018,11 +32784,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -29035,7 +32811,7 @@ + + glibcxx_cv_func__copysign_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -29065,21 +32841,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -29110,11 +32893,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -29127,7 +32920,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -29160,7 +32954,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -29177,11 +32970,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -29194,7 +32997,7 @@ + + glibcxx_cv_func_sincos_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -29224,21 +33027,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -29269,11 +33079,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -29286,7 +33106,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -29316,7 +33137,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -29333,11 +33153,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -29350,7 +33180,7 @@ + + glibcxx_cv_func__sincos_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -29380,21 +33210,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -29425,11 +33262,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -29442,7 +33289,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -29475,7 +33323,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -29496,11 +33343,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -29513,7 +33370,7 @@ + + glibcxx_cv_func_fpclass_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -29543,21 +33400,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -29588,11 +33452,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -29605,7 +33479,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -29635,7 +33510,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -29656,11 +33530,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -29673,7 +33557,7 @@ + + glibcxx_cv_func__fpclass_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -29703,21 +33587,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -29748,11 +33639,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -29765,7 +33666,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -29798,7 +33700,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -29819,11 +33720,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -29836,7 +33747,7 @@ + + glibcxx_cv_func_qfpclass_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -29866,21 +33777,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -29911,11 +33829,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -29928,7 +33856,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -29958,7 +33887,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -29979,11 +33907,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -29996,7 +33934,7 @@ + + glibcxx_cv_func__qfpclass_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -30026,21 +33964,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -30071,11 +34016,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -30088,7 +34043,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -30121,7 +34077,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -30138,11 +34093,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -30155,7 +34120,7 @@ + + glibcxx_cv_func_hypot_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -30185,21 +34150,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -30230,11 +34202,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -30247,7 +34229,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -30277,7 +34260,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -30294,11 +34276,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -30311,7 +34303,7 @@ + + glibcxx_cv_func__hypot_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -30341,21 +34333,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -30386,11 +34385,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -30403,7 +34412,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -30435,7 +34445,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -30454,11 +34463,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -30471,7 +34490,7 @@ + + glibcxx_cv_func_float_trig_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -30508,21 +34527,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -30553,11 +34579,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -30570,7 +34606,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -30600,7 +34637,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -30617,11 +34653,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -30634,7 +34680,7 @@ + + glibcxx_cv_func_float_round_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -30662,21 +34708,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -30707,11 +34760,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -30724,7 +34787,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -30756,7 +34820,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -30777,11 +34840,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -30794,7 +34867,7 @@ + + glibcxx_cv_func_expf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -30824,21 +34897,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -30869,11 +34949,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -30886,7 +34976,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -30916,7 +35007,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -30937,11 +35027,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -30954,7 +35054,7 @@ + + glibcxx_cv_func__expf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -30984,21 +35084,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -31029,11 +35136,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -31046,7 +35163,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -31079,7 +35197,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -31100,11 +35217,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -31117,7 +35244,7 @@ + + glibcxx_cv_func_isnanf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -31147,21 +35274,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -31192,11 +35326,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -31209,7 +35353,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -31239,7 +35384,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -31260,11 +35404,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -31277,7 +35431,7 @@ + + glibcxx_cv_func__isnanf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -31307,21 +35461,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -31352,11 +35513,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -31369,7 +35540,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -31402,7 +35574,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -31423,11 +35594,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -31440,7 +35621,7 @@ + + glibcxx_cv_func_isinff_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -31470,21 +35651,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -31515,11 +35703,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -31532,7 +35730,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -31562,7 +35761,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -31583,11 +35781,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -31600,7 +35808,7 @@ + + glibcxx_cv_func__isinff_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -31630,21 +35838,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -31675,11 +35890,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -31692,7 +35917,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -31725,7 +35951,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -31742,11 +35967,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -31759,7 +35994,7 @@ + + glibcxx_cv_func_atan2f_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -31789,21 +36024,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -31834,11 +36076,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -31851,7 +36103,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -31881,7 +36134,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -31898,11 +36150,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -31915,7 +36177,7 @@ + + glibcxx_cv_func__atan2f_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -31945,21 +36207,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -31990,11 +36259,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -32007,7 +36286,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -32040,7 +36320,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -32061,11 +36340,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -32078,7 +36367,7 @@ + + glibcxx_cv_func_fabsf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -32108,21 +36397,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -32153,11 +36449,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -32170,7 +36476,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -32200,7 +36507,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -32221,11 +36527,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -32238,7 +36554,7 @@ + + glibcxx_cv_func__fabsf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -32268,21 +36584,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -32313,11 +36636,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -32330,7 +36663,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -32363,7 +36697,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -32380,11 +36713,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -32397,7 +36740,7 @@ + + glibcxx_cv_func_fmodf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -32427,21 +36770,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -32472,11 +36822,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -32489,7 +36849,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -32519,7 +36880,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -32536,11 +36896,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -32553,7 +36923,7 @@ + + glibcxx_cv_func__fmodf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -32583,21 +36953,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -32628,11 +37005,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -32645,7 +37032,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -32678,7 +37066,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -32695,11 +37082,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -32712,7 +37109,7 @@ + + glibcxx_cv_func_frexpf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -32742,21 +37139,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -32787,11 +37191,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -32804,7 +37218,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -32834,7 +37249,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -32851,11 +37265,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -32868,7 +37292,7 @@ + + glibcxx_cv_func__frexpf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -32898,21 +37322,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -32943,11 +37374,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -32960,7 +37401,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -32993,7 +37435,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -33010,11 +37451,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -33027,7 +37478,7 @@ + + glibcxx_cv_func_hypotf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -33057,21 +37508,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -33102,11 +37560,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -33119,7 +37587,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -33149,7 +37618,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -33166,11 +37634,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -33183,7 +37661,7 @@ + + glibcxx_cv_func__hypotf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -33213,21 +37691,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -33258,11 +37743,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -33275,7 +37770,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -33308,7 +37804,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -33325,11 +37820,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -33342,7 +37847,7 @@ + + glibcxx_cv_func_ldexpf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -33372,21 +37877,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -33417,11 +37929,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -33434,7 +37956,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -33464,7 +37987,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -33481,11 +38003,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -33498,7 +38030,7 @@ + + glibcxx_cv_func__ldexpf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -33528,21 +38060,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -33573,11 +38112,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -33590,7 +38139,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -33623,7 +38173,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -33644,11 +38193,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -33661,7 +38220,7 @@ + + glibcxx_cv_func_logf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -33691,21 +38250,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -33736,11 +38302,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -33753,7 +38329,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -33783,7 +38360,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -33804,11 +38380,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -33821,7 +38407,7 @@ + + glibcxx_cv_func__logf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -33851,21 +38437,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -33896,11 +38489,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -33913,7 +38516,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -33946,7 +38550,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -33967,11 +38570,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -33984,7 +38597,7 @@ + + glibcxx_cv_func_log10f_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -34014,21 +38627,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -34059,11 +38679,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -34076,7 +38706,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -34106,7 +38737,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -34127,11 +38757,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -34144,7 +38784,7 @@ + + glibcxx_cv_func__log10f_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -34174,21 +38814,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -34219,11 +38866,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -34236,7 +38893,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -34269,7 +38927,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -34286,11 +38943,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -34303,7 +38970,7 @@ + + glibcxx_cv_func_modff_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -34333,21 +39000,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -34378,11 +39052,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -34395,7 +39079,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -34425,7 +39110,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -34442,11 +39126,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -34459,7 +39153,7 @@ + + glibcxx_cv_func__modff_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -34489,21 +39183,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -34534,11 +39235,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -34551,7 +39262,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -34584,7 +39296,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -34601,11 +39312,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -34618,7 +39339,7 @@ + + glibcxx_cv_func_powf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -34648,21 +39369,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -34693,11 +39421,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -34710,7 +39448,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -34740,7 +39479,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -34757,11 +39495,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -34774,7 +39522,7 @@ + + glibcxx_cv_func__powf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -34804,21 +39552,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -34849,11 +39604,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -34866,7 +39631,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -34899,7 +39665,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -34920,11 +39685,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -34937,7 +39712,7 @@ + + glibcxx_cv_func_sqrtf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -34967,21 +39742,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -35012,11 +39794,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -35029,7 +39821,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -35059,7 +39852,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -35080,11 +39872,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -35097,7 +39899,7 @@ + + glibcxx_cv_func__sqrtf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -35127,21 +39929,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -35172,11 +39981,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -35189,7 +40008,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -35222,7 +40042,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -35239,11 +40058,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -35256,7 +40085,7 @@ + + glibcxx_cv_func_sincosf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -35286,21 +40115,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -35331,11 +40167,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -35348,7 +40194,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -35378,7 +40225,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -35395,11 +40241,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -35412,7 +40268,7 @@ + + glibcxx_cv_func__sincosf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -35442,21 +40298,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -35487,11 +40350,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -35504,7 +40377,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -35537,7 +40411,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -35558,11 +40431,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -35575,7 +40458,7 @@ + + glibcxx_cv_func_finitef_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -35605,21 +40488,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -35650,11 +40540,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -35667,7 +40567,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -35697,7 +40598,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -35718,11 +40618,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -35735,7 +40645,7 @@ + + glibcxx_cv_func__finitef_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -35765,21 +40675,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -35810,11 +40727,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -35827,7 +40754,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -35859,7 +40787,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -35878,11 +40805,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -35895,7 +40832,7 @@ + + glibcxx_cv_func_long_double_trig_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -35932,21 +40869,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -35977,11 +40921,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -35994,7 +40948,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -36024,7 +40979,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -36041,11 +40995,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -36058,7 +41022,7 @@ + + glibcxx_cv_func_long_double_round_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -36086,21 +41050,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -36131,11 +41102,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -36148,7 +41129,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -36180,7 +41162,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -36201,11 +41182,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -36218,7 +41209,7 @@ + + glibcxx_cv_func_isnanl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -36248,21 +41239,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -36293,11 +41291,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -36310,7 +41318,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -36340,7 +41349,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -36361,11 +41369,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -36378,7 +41396,7 @@ + + glibcxx_cv_func__isnanl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -36408,21 +41426,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -36453,11 +41478,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -36470,7 +41505,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -36503,7 +41539,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -36524,11 +41559,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -36541,7 +41586,7 @@ + + glibcxx_cv_func_isinfl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -36571,21 +41616,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -36616,11 +41668,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -36633,7 +41695,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -36663,7 +41726,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -36684,11 +41746,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -36701,7 +41773,7 @@ + + glibcxx_cv_func__isinfl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -36731,21 +41803,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -36776,11 +41855,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -36793,7 +41882,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -36826,7 +41916,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -36843,11 +41932,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -36860,7 +41959,7 @@ + + glibcxx_cv_func_copysignl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -36890,21 +41989,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -36935,11 +42041,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -36952,7 +42068,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -36982,7 +42099,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -36999,11 +42115,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -37016,7 +42142,7 @@ + + glibcxx_cv_func__copysignl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -37046,21 +42172,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -37091,11 +42224,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -37108,7 +42251,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -37141,7 +42285,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -37158,11 +42301,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -37175,7 +42328,7 @@ + + glibcxx_cv_func_atan2l_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -37205,21 +42358,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -37250,11 +42410,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -37267,7 +42437,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -37297,7 +42468,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -37314,11 +42484,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -37331,7 +42511,7 @@ + + glibcxx_cv_func__atan2l_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -37361,21 +42541,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -37406,11 +42593,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -37423,7 +42620,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -37456,7 +42654,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -37477,11 +42674,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -37494,7 +42701,7 @@ + + glibcxx_cv_func_expl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -37524,21 +42731,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -37569,11 +42783,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -37586,7 +42810,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -37616,7 +42841,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -37637,11 +42861,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -37654,7 +42888,7 @@ + + glibcxx_cv_func__expl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -37684,21 +42918,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -37729,11 +42970,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -37746,7 +42997,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -37779,7 +43031,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -37800,11 +43051,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -37817,7 +43078,7 @@ + + glibcxx_cv_func_fabsl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -37847,21 +43108,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -37892,11 +43160,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -37909,7 +43187,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -37939,7 +43218,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -37960,11 +43238,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -37977,7 +43265,7 @@ + + glibcxx_cv_func__fabsl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -38007,21 +43295,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -38052,11 +43347,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -38069,7 +43374,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -38102,7 +43408,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -38119,11 +43424,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -38136,7 +43451,7 @@ + + glibcxx_cv_func_fmodl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -38166,21 +43481,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -38211,11 +43533,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -38228,7 +43560,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -38258,7 +43591,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -38275,11 +43607,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -38292,7 +43634,7 @@ + + glibcxx_cv_func__fmodl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -38322,21 +43664,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -38367,11 +43716,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -38384,7 +43743,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -38417,7 +43777,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -38434,11 +43793,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -38451,7 +43820,7 @@ + + glibcxx_cv_func_frexpl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -38481,21 +43850,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -38526,11 +43902,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -38543,7 +43929,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -38573,7 +43960,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -38590,11 +43976,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -38607,7 +44003,7 @@ + + glibcxx_cv_func__frexpl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -38637,21 +44033,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -38682,11 +44085,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -38699,7 +44112,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -38732,7 +44146,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -38749,11 +44162,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -38766,7 +44189,7 @@ + + glibcxx_cv_func_hypotl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -38796,21 +44219,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -38841,11 +44271,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -38858,7 +44298,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -38888,7 +44329,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -38905,11 +44345,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -38922,7 +44372,7 @@ + + glibcxx_cv_func__hypotl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -38952,21 +44402,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -38997,11 +44454,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -39014,7 +44481,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -39047,7 +44515,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -39064,11 +44531,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -39081,7 +44558,7 @@ + + glibcxx_cv_func_ldexpl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -39111,21 +44588,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -39156,11 +44640,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -39173,7 +44667,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -39203,7 +44698,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -39220,11 +44714,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -39237,7 +44741,7 @@ + + glibcxx_cv_func__ldexpl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -39267,21 +44771,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -39312,11 +44823,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -39329,7 +44850,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -39362,7 +44884,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -39383,11 +44904,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -39400,7 +44931,7 @@ + + glibcxx_cv_func_logl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -39430,21 +44961,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -39475,11 +45013,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -39492,7 +45040,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -39522,7 +45071,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -39543,11 +45091,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -39560,7 +45118,7 @@ + + glibcxx_cv_func__logl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -39590,21 +45148,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -39635,11 +45200,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -39652,7 +45227,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -39685,7 +45261,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -39706,11 +45281,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -39723,7 +45308,7 @@ + + glibcxx_cv_func_log10l_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -39753,21 +45338,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -39798,11 +45390,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -39815,7 +45417,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -39845,7 +45448,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -39866,11 +45468,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -39883,7 +45495,7 @@ + + glibcxx_cv_func__log10l_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -39913,21 +45525,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -39958,11 +45577,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -39975,7 +45604,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -40008,7 +45638,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -40025,11 +45654,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -40042,7 +45681,7 @@ + + glibcxx_cv_func_modfl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -40072,21 +45711,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -40117,11 +45763,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -40134,7 +45790,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -40164,7 +45821,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -40181,11 +45837,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -40198,7 +45864,7 @@ + + glibcxx_cv_func__modfl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -40228,21 +45894,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -40273,11 +45946,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -40290,7 +45973,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -40323,7 +46007,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -40340,11 +46023,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -40357,7 +46050,7 @@ + + glibcxx_cv_func_powl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -40387,21 +46080,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -40432,11 +46132,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -40449,7 +46159,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -40479,7 +46190,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -40496,11 +46206,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -40513,7 +46233,7 @@ + + glibcxx_cv_func__powl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -40543,21 +46263,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -40588,11 +46315,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -40605,7 +46342,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -40638,7 +46376,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -40659,11 +46396,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -40676,7 +46423,7 @@ + + glibcxx_cv_func_sqrtl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -40706,21 +46453,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -40751,11 +46505,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -40768,7 +46532,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -40798,7 +46563,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -40819,11 +46583,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -40836,7 +46610,7 @@ + + glibcxx_cv_func__sqrtl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -40866,21 +46640,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -40911,11 +46692,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -40928,7 +46719,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -40961,7 +46753,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -40978,11 +46769,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -40995,7 +46796,7 @@ + + glibcxx_cv_func_sincosl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -41025,21 +46826,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -41070,11 +46878,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -41087,7 +46905,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -41117,7 +46936,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -41134,11 +46952,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -41151,7 +46979,7 @@ + + glibcxx_cv_func__sincosl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -41181,21 +47009,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -41226,11 +47061,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -41243,7 +47088,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -41276,7 +47122,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -41297,11 +47142,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -41314,7 +47169,7 @@ + + glibcxx_cv_func_finitel_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -41344,21 +47199,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -41389,11 +47251,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -41406,7 +47278,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -41436,7 +47309,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -41457,11 +47329,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -41474,7 +47356,7 @@ + + glibcxx_cv_func__finitel_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -41504,21 +47386,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -41549,11 +47438,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -41566,7 +47465,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -41599,7 +47499,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -41618,11 +47517,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -41635,7 +47544,7 @@ + + glibcxx_cv_func__float_trig_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -41672,21 +47581,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -41717,11 +47633,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -41734,7 +47660,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -41764,7 +47691,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -41781,11 +47707,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -41798,7 +47734,7 @@ + + glibcxx_cv_func__float_round_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -41826,21 +47762,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -41871,11 +47814,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -41888,7 +47841,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -41919,7 +47873,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -41938,11 +47891,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -41955,7 +47918,7 @@ + + glibcxx_cv_func__long_double_trig_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -41992,21 +47955,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -42037,11 +48007,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -42054,7 +48034,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -42084,7 +48065,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -42101,11 +48081,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -42118,7 +48108,7 @@ + + glibcxx_cv_func__long_double_round_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -42146,21 +48136,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -42191,11 +48188,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -42208,7 +48215,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -42244,7 +48252,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -42261,11 +48268,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -42278,7 +48295,7 @@ + + glibcxx_cv_func___builtin_abs_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -42305,7 +48322,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -42322,11 +48338,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -42339,7 +48365,8 @@ + + glibcxx_cv_func___builtin_abs_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -42373,7 +48400,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -42390,11 +48416,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -42407,7 +48443,7 @@ + + glibcxx_cv_func___builtin_fabsf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -42434,7 +48470,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -42451,11 +48486,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -42468,7 +48513,8 @@ + + glibcxx_cv_func___builtin_fabsf_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -42502,7 +48548,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -42519,11 +48564,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -42536,7 +48591,7 @@ + + glibcxx_cv_func___builtin_fabs_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -42563,7 +48618,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -42580,11 +48634,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -42597,7 +48661,8 @@ + + glibcxx_cv_func___builtin_fabs_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -42631,7 +48696,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -42648,11 +48712,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -42665,7 +48739,7 @@ + + glibcxx_cv_func___builtin_fabsl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -42692,7 +48766,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -42709,11 +48782,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -42726,7 +48809,8 @@ + + glibcxx_cv_func___builtin_fabsl_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -42760,7 +48844,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -42777,11 +48860,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -42794,7 +48887,7 @@ + + glibcxx_cv_func___builtin_labs_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -42821,7 +48914,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -42838,11 +48930,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -42855,7 +48957,8 @@ + + glibcxx_cv_func___builtin_labs_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -42890,7 +48993,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -42907,11 +49009,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -42924,7 +49036,7 @@ + + glibcxx_cv_func___builtin_sqrtf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -42951,7 +49063,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -42968,11 +49079,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -42985,7 +49106,8 @@ + + glibcxx_cv_func___builtin_sqrtf_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -43019,7 +49141,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -43036,11 +49157,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -43053,7 +49184,7 @@ + + glibcxx_cv_func___builtin_sqrt_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -43080,7 +49211,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -43097,11 +49227,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -43114,7 +49254,8 @@ + + glibcxx_cv_func___builtin_sqrt_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -43148,7 +49289,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -43165,11 +49305,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -43182,7 +49332,7 @@ + + glibcxx_cv_func___builtin_sqrtl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -43209,7 +49359,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -43226,11 +49375,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -43243,7 +49402,8 @@ + + glibcxx_cv_func___builtin_sqrtl_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -43278,7 +49438,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -43295,11 +49454,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -43312,7 +49481,7 @@ + + glibcxx_cv_func___builtin_sinf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -43339,7 +49508,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -43356,11 +49524,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -43373,7 +49551,8 @@ + + glibcxx_cv_func___builtin_sinf_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -43407,7 +49586,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -43424,11 +49602,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -43441,7 +49629,7 @@ + + glibcxx_cv_func___builtin_sin_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -43468,7 +49656,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -43485,11 +49672,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -43502,7 +49699,8 @@ + + glibcxx_cv_func___builtin_sin_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -43536,7 +49734,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -43553,11 +49750,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -43570,7 +49777,7 @@ + + glibcxx_cv_func___builtin_sinl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -43597,7 +49804,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -43614,11 +49820,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -43631,7 +49847,8 @@ + + glibcxx_cv_func___builtin_sinl_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -43666,7 +49883,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -43683,11 +49899,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -43700,7 +49926,7 @@ + + glibcxx_cv_func___builtin_cosf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -43727,7 +49953,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -43744,11 +49969,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -43761,7 +49996,8 @@ + + glibcxx_cv_func___builtin_cosf_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -43795,7 +50031,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -43812,11 +50047,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -43829,7 +50074,7 @@ + + glibcxx_cv_func___builtin_cos_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -43856,7 +50101,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -43873,11 +50117,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -43890,7 +50144,8 @@ + + glibcxx_cv_func___builtin_cos_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -43924,7 +50179,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -43941,11 +50195,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -43958,7 +50222,7 @@ + + glibcxx_cv_func___builtin_cosl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -43985,7 +50249,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -44002,11 +50265,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -44019,7 +50292,8 @@ + + glibcxx_cv_func___builtin_cosl_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -44052,7 +50326,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -44070,11 +50343,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -44087,7 +50370,8 @@ + + ac_cv_lib_m_main=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_m_main" >&5 +@@ -44116,21 +50400,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -44161,11 +50452,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -44178,7 +50479,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -44208,21 +50510,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -44253,11 +50562,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -44270,7 +50589,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -44300,21 +50620,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -44345,11 +50672,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -44362,7 +50699,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -44393,21 +50731,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -44438,11 +50783,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -44455,7 +50810,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -44483,7 +50839,6 @@ + echo "$as_me:$LINENO: checking for mbstate_t" >&5 + echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -44500,11 +50855,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -44517,7 +50882,7 @@ + + have_mbstate_t=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $have_mbstate_t" >&5 + echo "${ECHO_T}$have_mbstate_t" >&6 + if test x"$have_mbstate_t" = xyes; then +@@ -44545,7 +50910,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -44556,11 +50920,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -44573,7 +50947,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -44581,7 +50955,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -44599,6 +50972,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -44618,33 +50992,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -44655,7 +51028,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -44689,7 +51062,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -44700,11 +51072,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -44717,7 +51099,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -44725,7 +51107,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -44743,6 +51124,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -44762,33 +51144,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -44799,7 +51180,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -44827,7 +51208,6 @@ + echo "$as_me:$LINENO: checking for WCHAR_MIN and WCHAR_MAX" >&5 + echo $ECHO_N "checking for WCHAR_MIN and WCHAR_MAX... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -44844,11 +51224,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -44861,7 +51251,7 @@ + + has_wchar_minmax=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $has_wchar_minmax" >&5 + echo "${ECHO_T}$has_wchar_minmax" >&6 + +@@ -44870,7 +51260,6 @@ + echo "$as_me:$LINENO: checking for WEOF" >&5 + echo $ECHO_N "checking for WEOF... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -44889,11 +51278,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -44906,7 +51305,7 @@ + + has_weof=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $has_weof" >&5 + echo "${ECHO_T}$has_weof" >&6 + +@@ -44932,21 +51331,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -44977,11 +51383,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -44994,7 +51410,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -45075,21 +51492,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -45120,11 +51544,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -45137,7 +51571,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -45174,21 +51609,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -45219,11 +51661,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -45236,7 +51688,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -45277,7 +51730,6 @@ + echo "$as_me:$LINENO: checking iconv.h usability" >&5 + echo $ECHO_N "checking iconv.h usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -45288,11 +51740,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -45305,7 +51767,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -45313,7 +51775,6 @@ + echo "$as_me:$LINENO: checking iconv.h presence" >&5 + echo $ECHO_N "checking iconv.h presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -45331,6 +51792,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -45350,33 +51812,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: iconv.h: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: iconv.h: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: iconv.h: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: iconv.h: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: iconv.h: present but cannot be compiled" >&5 + echo "$as_me: WARNING: iconv.h: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: iconv.h: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: iconv.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: iconv.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: iconv.h: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: iconv.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: iconv.h: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: iconv.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -45413,7 +51874,6 @@ + echo "$as_me:$LINENO: checking langinfo.h usability" >&5 + echo $ECHO_N "checking langinfo.h usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -45424,11 +51884,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -45441,7 +51911,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -45449,7 +51919,6 @@ + echo "$as_me:$LINENO: checking langinfo.h presence" >&5 + echo $ECHO_N "checking langinfo.h presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -45467,6 +51936,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -45486,33 +51956,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: langinfo.h: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: langinfo.h: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: langinfo.h: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: langinfo.h: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: langinfo.h: present but cannot be compiled" >&5 + echo "$as_me: WARNING: langinfo.h: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: langinfo.h: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: langinfo.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: langinfo.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: langinfo.h: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: langinfo.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: langinfo.h: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: langinfo.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -45551,7 +52020,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -45575,11 +52043,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -45592,7 +52070,8 @@ + + ac_cv_lib_iconv_iconv=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_iconv_iconv" >&5 +@@ -45622,21 +52101,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -45667,11 +52153,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -45684,7 +52180,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -45753,7 +52250,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -45770,11 +52266,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -45787,7 +52293,7 @@ + + glibcxx_cv_func_strtold_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -45816,21 +52322,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -45861,11 +52374,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -45878,7 +52401,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -45909,7 +52433,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -45926,11 +52449,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -45943,7 +52476,7 @@ + + glibcxx_cv_func_strtof_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -45972,21 +52505,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -46017,11 +52557,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -46034,7 +52584,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -46071,7 +52622,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -46082,11 +52632,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -46099,7 +52659,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -46107,7 +52667,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -46125,6 +52684,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -46144,33 +52704,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -46181,7 +52740,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -46207,7 +52766,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -46226,11 +52784,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -46243,7 +52811,8 @@ + + glibcxx_cv_POLL=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -46265,7 +52834,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -46284,11 +52852,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -46301,7 +52879,8 @@ + + glibcxx_cv_S_ISREG=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -46315,7 +52894,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -46334,11 +52912,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -46351,7 +52939,8 @@ + + glibcxx_cv_S_IFREG=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -46386,7 +52975,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -46397,11 +52985,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -46414,7 +53012,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -46422,7 +53020,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -46440,6 +53037,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -46459,33 +53057,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -46496,7 +53093,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -46522,7 +53119,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -46540,11 +53136,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -46557,7 +53163,8 @@ + + glibcxx_cv_WRITEV=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -46575,7 +53182,6 @@ + + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -46595,11 +53201,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -46615,7 +53231,7 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + + cat >>confdefs.h <<\_ACEOF + #define HAVE_MMAP 1 +@@ -46663,7 +53279,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -46674,11 +53289,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -46691,7 +53316,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -46699,7 +53324,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -46717,6 +53341,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -46736,33 +53361,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -46773,7 +53397,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -46815,7 +53439,6 @@ + echo $ECHO_N "checking for g++ that supports -ffunction-sections -fdata-sections... $ECHO_C" >&6 + CXXFLAGS='-Werror -ffunction-sections -fdata-sections' + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -46832,11 +53455,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -46849,7 +53482,7 @@ + + ac_fdsections=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS="$ac_save_CXXFLAGS" + else +@@ -46927,7 +53560,6 @@ + ac_sectionLDflags=yes + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -46962,7 +53594,7 @@ + ( exit $ac_status ) + ac_sectionLDflags=no + fi +-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" +@@ -47003,7 +53635,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -47027,11 +53658,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -47044,7 +53685,8 @@ + + ac_cv_lib_m_sin=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_m_sin" >&5 +@@ -47074,7 +53716,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -47095,11 +53736,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -47112,7 +53763,7 @@ + + glibcxx_cv_func_isinf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -47142,21 +53793,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -47187,11 +53845,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -47204,7 +53872,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -47234,7 +53903,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -47255,11 +53923,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -47272,7 +53950,7 @@ + + glibcxx_cv_func__isinf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -47302,21 +53980,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -47347,11 +54032,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -47364,7 +54059,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -47397,7 +54093,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -47418,11 +54113,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -47435,7 +54140,7 @@ + + glibcxx_cv_func_isnan_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -47465,21 +54170,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -47510,11 +54222,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -47527,7 +54249,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -47557,7 +54280,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -47578,11 +54300,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -47595,7 +54327,7 @@ + + glibcxx_cv_func__isnan_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -47625,21 +54357,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -47670,11 +54409,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -47687,7 +54436,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -47720,7 +54470,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -47741,11 +54490,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -47758,7 +54517,7 @@ + + glibcxx_cv_func_finite_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -47788,21 +54547,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -47833,11 +54599,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -47850,7 +54626,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -47880,7 +54657,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -47901,11 +54677,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -47918,7 +54704,7 @@ + + glibcxx_cv_func__finite_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -47948,21 +54734,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -47993,11 +54786,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -48010,7 +54813,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -48043,7 +54847,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -48060,11 +54863,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -48077,7 +54890,7 @@ + + glibcxx_cv_func_copysign_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -48107,21 +54920,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -48152,11 +54972,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -48169,7 +54999,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -48199,7 +55030,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -48216,11 +55046,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -48233,7 +55073,7 @@ + + glibcxx_cv_func__copysign_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -48263,21 +55103,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -48308,11 +55155,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -48325,7 +55182,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -48358,7 +55216,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -48375,11 +55232,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -48392,7 +55259,7 @@ + + glibcxx_cv_func_sincos_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -48422,21 +55289,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -48467,11 +55341,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -48484,7 +55368,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -48514,7 +55399,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -48531,11 +55415,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -48548,7 +55442,7 @@ + + glibcxx_cv_func__sincos_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -48578,21 +55472,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -48623,11 +55524,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -48640,7 +55551,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -48673,7 +55585,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -48694,11 +55605,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -48711,7 +55632,7 @@ + + glibcxx_cv_func_fpclass_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -48741,21 +55662,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -48786,11 +55714,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -48803,7 +55741,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -48833,7 +55772,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -48854,11 +55792,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -48871,7 +55819,7 @@ + + glibcxx_cv_func__fpclass_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -48901,21 +55849,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -48946,11 +55901,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -48963,7 +55928,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -48996,7 +55962,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -49017,11 +55982,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -49034,7 +56009,7 @@ + + glibcxx_cv_func_qfpclass_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -49064,21 +56039,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -49109,11 +56091,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -49126,7 +56118,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -49156,7 +56149,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -49177,11 +56169,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -49194,7 +56196,7 @@ + + glibcxx_cv_func__qfpclass_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -49224,21 +56226,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -49269,11 +56278,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -49286,7 +56305,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -49319,7 +56339,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -49336,11 +56355,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -49353,7 +56382,7 @@ + + glibcxx_cv_func_hypot_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -49383,21 +56412,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -49428,11 +56464,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -49445,7 +56491,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -49475,7 +56522,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -49492,11 +56538,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -49509,7 +56565,7 @@ + + glibcxx_cv_func__hypot_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -49539,21 +56595,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -49584,11 +56647,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -49601,7 +56674,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -49633,7 +56707,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -49652,11 +56725,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -49669,7 +56752,7 @@ + + glibcxx_cv_func_float_trig_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -49706,21 +56789,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -49751,11 +56841,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -49768,7 +56868,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -49798,7 +56899,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -49815,11 +56915,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -49832,7 +56942,7 @@ + + glibcxx_cv_func_float_round_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -49860,21 +56970,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -49905,11 +57022,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -49922,7 +57049,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -49954,7 +57082,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -49975,11 +57102,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -49992,7 +57129,7 @@ + + glibcxx_cv_func_expf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -50022,21 +57159,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -50067,11 +57211,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -50084,7 +57238,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -50114,7 +57269,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -50135,11 +57289,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -50152,7 +57316,7 @@ + + glibcxx_cv_func__expf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -50182,21 +57346,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -50227,11 +57398,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -50244,7 +57425,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -50277,7 +57459,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -50298,11 +57479,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -50315,7 +57506,7 @@ + + glibcxx_cv_func_isnanf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -50345,21 +57536,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -50390,11 +57588,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -50407,7 +57615,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -50437,7 +57646,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -50458,11 +57666,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -50475,7 +57693,7 @@ + + glibcxx_cv_func__isnanf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -50505,21 +57723,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -50550,11 +57775,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -50567,7 +57802,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -50600,7 +57836,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -50621,11 +57856,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -50638,7 +57883,7 @@ + + glibcxx_cv_func_isinff_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -50668,21 +57913,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -50713,11 +57965,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -50730,7 +57992,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -50760,7 +58023,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -50781,11 +58043,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -50798,7 +58070,7 @@ + + glibcxx_cv_func__isinff_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -50828,21 +58100,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -50873,11 +58152,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -50890,7 +58179,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -50923,7 +58213,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -50940,11 +58229,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -50957,7 +58256,7 @@ + + glibcxx_cv_func_atan2f_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -50987,21 +58286,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -51032,11 +58338,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -51049,7 +58365,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -51079,7 +58396,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -51096,11 +58412,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -51113,7 +58439,7 @@ + + glibcxx_cv_func__atan2f_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -51143,21 +58469,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -51188,11 +58521,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -51205,7 +58548,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -51238,7 +58582,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -51259,11 +58602,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -51276,7 +58629,7 @@ + + glibcxx_cv_func_fabsf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -51306,21 +58659,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -51351,11 +58711,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -51368,7 +58738,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -51398,7 +58769,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -51419,11 +58789,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -51436,7 +58816,7 @@ + + glibcxx_cv_func__fabsf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -51466,21 +58846,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -51511,11 +58898,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -51528,7 +58925,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -51561,7 +58959,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -51578,11 +58975,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -51595,7 +59002,7 @@ + + glibcxx_cv_func_fmodf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -51625,21 +59032,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -51670,11 +59084,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -51687,7 +59111,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -51717,7 +59142,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -51734,11 +59158,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -51751,7 +59185,7 @@ + + glibcxx_cv_func__fmodf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -51781,21 +59215,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -51826,11 +59267,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -51843,7 +59294,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -51876,7 +59328,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -51893,11 +59344,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -51910,7 +59371,7 @@ + + glibcxx_cv_func_frexpf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -51940,21 +59401,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -51985,11 +59453,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -52002,7 +59480,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -52032,7 +59511,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -52049,11 +59527,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -52066,7 +59554,7 @@ + + glibcxx_cv_func__frexpf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -52096,21 +59584,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -52141,11 +59636,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -52158,7 +59663,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -52191,7 +59697,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -52208,11 +59713,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -52225,7 +59740,7 @@ + + glibcxx_cv_func_hypotf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -52255,21 +59770,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -52300,11 +59822,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -52317,7 +59849,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -52347,7 +59880,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -52364,11 +59896,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -52381,7 +59923,7 @@ + + glibcxx_cv_func__hypotf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -52411,21 +59953,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -52456,11 +60005,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -52473,7 +60032,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -52506,7 +60066,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -52523,11 +60082,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -52540,7 +60109,7 @@ + + glibcxx_cv_func_ldexpf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -52570,21 +60139,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -52615,11 +60191,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -52632,7 +60218,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -52662,7 +60249,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -52679,11 +60265,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -52696,7 +60292,7 @@ + + glibcxx_cv_func__ldexpf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -52726,21 +60322,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -52771,11 +60374,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -52788,7 +60401,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -52821,7 +60435,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -52842,11 +60455,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -52859,7 +60482,7 @@ + + glibcxx_cv_func_logf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -52889,21 +60512,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -52934,11 +60564,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -52951,7 +60591,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -52981,7 +60622,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -53002,11 +60642,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -53019,7 +60669,7 @@ + + glibcxx_cv_func__logf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -53049,21 +60699,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -53094,11 +60751,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -53111,7 +60778,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -53144,7 +60812,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -53165,11 +60832,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -53182,7 +60859,7 @@ + + glibcxx_cv_func_log10f_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -53212,21 +60889,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -53257,11 +60941,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -53274,7 +60968,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -53304,7 +60999,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -53325,11 +61019,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -53342,7 +61046,7 @@ + + glibcxx_cv_func__log10f_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -53372,21 +61076,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -53417,11 +61128,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -53434,7 +61155,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -53467,7 +61189,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -53484,11 +61205,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -53501,7 +61232,7 @@ + + glibcxx_cv_func_modff_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -53531,21 +61262,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -53576,11 +61314,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -53593,7 +61341,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -53623,7 +61372,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -53640,11 +61388,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -53657,7 +61415,7 @@ + + glibcxx_cv_func__modff_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -53687,21 +61445,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -53732,11 +61497,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -53749,7 +61524,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -53782,7 +61558,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -53799,11 +61574,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -53816,7 +61601,7 @@ + + glibcxx_cv_func_powf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -53846,21 +61631,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -53891,11 +61683,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -53908,7 +61710,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -53938,7 +61741,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -53955,11 +61757,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -53972,7 +61784,7 @@ + + glibcxx_cv_func__powf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -54002,21 +61814,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -54047,11 +61866,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -54064,7 +61893,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -54097,7 +61927,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -54118,11 +61947,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -54135,7 +61974,7 @@ + + glibcxx_cv_func_sqrtf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -54165,21 +62004,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -54210,11 +62056,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -54227,7 +62083,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -54257,7 +62114,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -54278,11 +62134,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -54295,7 +62161,7 @@ + + glibcxx_cv_func__sqrtf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -54325,21 +62191,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -54370,11 +62243,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -54387,7 +62270,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -54420,7 +62304,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -54437,11 +62320,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -54454,7 +62347,7 @@ + + glibcxx_cv_func_sincosf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -54484,21 +62377,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -54529,11 +62429,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -54546,7 +62456,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -54576,7 +62487,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -54593,11 +62503,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -54610,7 +62530,7 @@ + + glibcxx_cv_func__sincosf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -54640,21 +62560,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -54685,11 +62612,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -54702,7 +62639,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -54735,7 +62673,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -54756,11 +62693,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -54773,7 +62720,7 @@ + + glibcxx_cv_func_finitef_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -54803,21 +62750,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -54848,11 +62802,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -54865,7 +62829,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -54895,7 +62860,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -54916,11 +62880,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -54933,7 +62907,7 @@ + + glibcxx_cv_func__finitef_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -54963,21 +62937,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -55008,11 +62989,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -55025,7 +63016,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -55057,7 +63049,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -55076,11 +63067,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -55093,7 +63094,7 @@ + + glibcxx_cv_func_long_double_trig_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -55130,21 +63131,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -55175,11 +63183,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -55192,7 +63210,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -55222,7 +63241,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -55239,11 +63257,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -55256,7 +63284,7 @@ + + glibcxx_cv_func_long_double_round_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -55284,21 +63312,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -55329,11 +63364,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -55346,7 +63391,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -55378,7 +63424,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -55399,11 +63444,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -55416,7 +63471,7 @@ + + glibcxx_cv_func_isnanl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -55446,21 +63501,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -55491,11 +63553,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -55508,7 +63580,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -55538,7 +63611,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -55559,11 +63631,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -55576,7 +63658,7 @@ + + glibcxx_cv_func__isnanl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -55606,21 +63688,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -55651,11 +63740,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -55668,7 +63767,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -55701,7 +63801,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -55722,11 +63821,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -55739,7 +63848,7 @@ + + glibcxx_cv_func_isinfl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -55769,21 +63878,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -55814,11 +63930,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -55831,7 +63957,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -55861,7 +63988,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -55882,11 +64008,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -55899,7 +64035,7 @@ + + glibcxx_cv_func__isinfl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -55929,21 +64065,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -55974,11 +64117,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -55991,7 +64144,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -56024,7 +64178,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -56041,11 +64194,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -56058,7 +64221,7 @@ + + glibcxx_cv_func_copysignl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -56088,21 +64251,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -56133,11 +64303,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -56150,7 +64330,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -56180,7 +64361,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -56197,11 +64377,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -56214,7 +64404,7 @@ + + glibcxx_cv_func__copysignl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -56244,21 +64434,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -56289,11 +64486,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -56306,7 +64513,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -56339,7 +64547,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -56356,11 +64563,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -56373,7 +64590,7 @@ + + glibcxx_cv_func_atan2l_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -56403,21 +64620,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -56448,11 +64672,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -56465,7 +64699,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -56495,7 +64730,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -56512,11 +64746,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -56529,7 +64773,7 @@ + + glibcxx_cv_func__atan2l_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -56559,21 +64803,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -56604,11 +64855,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -56621,7 +64882,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -56654,7 +64916,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -56675,11 +64936,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -56692,7 +64963,7 @@ + + glibcxx_cv_func_expl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -56722,21 +64993,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -56767,11 +65045,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -56784,7 +65072,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -56814,7 +65103,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -56835,11 +65123,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -56852,7 +65150,7 @@ + + glibcxx_cv_func__expl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -56882,21 +65180,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -56927,11 +65232,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -56944,7 +65259,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -56977,7 +65293,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -56998,11 +65313,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -57015,7 +65340,7 @@ + + glibcxx_cv_func_fabsl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -57045,21 +65370,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -57090,11 +65422,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -57107,7 +65449,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -57137,7 +65480,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -57158,11 +65500,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -57175,7 +65527,7 @@ + + glibcxx_cv_func__fabsl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -57205,21 +65557,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -57250,11 +65609,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -57267,7 +65636,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -57300,7 +65670,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -57317,11 +65686,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -57334,7 +65713,7 @@ + + glibcxx_cv_func_fmodl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -57364,21 +65743,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -57409,11 +65795,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -57426,7 +65822,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -57456,7 +65853,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -57473,11 +65869,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -57490,7 +65896,7 @@ + + glibcxx_cv_func__fmodl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -57520,21 +65926,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -57565,11 +65978,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -57582,7 +66005,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -57615,7 +66039,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -57632,11 +66055,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -57649,7 +66082,7 @@ + + glibcxx_cv_func_frexpl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -57679,21 +66112,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -57724,11 +66164,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -57741,7 +66191,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -57771,7 +66222,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -57788,11 +66238,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -57805,7 +66265,7 @@ + + glibcxx_cv_func__frexpl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -57835,21 +66295,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -57880,11 +66347,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -57897,7 +66374,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -57930,7 +66408,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -57947,11 +66424,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -57964,7 +66451,7 @@ + + glibcxx_cv_func_hypotl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -57994,21 +66481,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -58039,11 +66533,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -58056,7 +66560,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -58086,7 +66591,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -58103,11 +66607,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -58120,7 +66634,7 @@ + + glibcxx_cv_func__hypotl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -58150,21 +66664,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -58195,11 +66716,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -58212,7 +66743,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -58245,7 +66777,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -58262,11 +66793,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -58279,7 +66820,7 @@ + + glibcxx_cv_func_ldexpl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -58309,21 +66850,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -58354,11 +66902,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -58371,7 +66929,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -58401,7 +66960,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -58418,11 +66976,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -58435,7 +67003,7 @@ + + glibcxx_cv_func__ldexpl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -58465,21 +67033,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -58510,11 +67085,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -58527,7 +67112,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -58560,7 +67146,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -58581,11 +67166,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -58598,7 +67193,7 @@ + + glibcxx_cv_func_logl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -58628,21 +67223,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -58673,11 +67275,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -58690,7 +67302,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -58720,7 +67333,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -58741,11 +67353,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -58758,7 +67380,7 @@ + + glibcxx_cv_func__logl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -58788,21 +67410,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -58833,11 +67462,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -58850,7 +67489,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -58883,7 +67523,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -58904,11 +67543,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -58921,7 +67570,7 @@ + + glibcxx_cv_func_log10l_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -58951,21 +67600,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -58996,11 +67652,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -59013,7 +67679,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -59043,7 +67710,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -59064,11 +67730,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -59081,7 +67757,7 @@ + + glibcxx_cv_func__log10l_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -59111,21 +67787,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -59156,11 +67839,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -59173,7 +67866,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -59206,7 +67900,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -59223,11 +67916,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -59240,7 +67943,7 @@ + + glibcxx_cv_func_modfl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -59270,21 +67973,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -59315,11 +68025,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -59332,7 +68052,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -59362,7 +68083,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -59379,11 +68099,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -59396,7 +68126,7 @@ + + glibcxx_cv_func__modfl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -59426,21 +68156,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -59471,11 +68208,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -59488,7 +68235,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -59521,7 +68269,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -59538,11 +68285,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -59555,7 +68312,7 @@ + + glibcxx_cv_func_powl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -59585,21 +68342,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -59630,11 +68394,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -59647,7 +68421,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -59677,7 +68452,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -59694,11 +68468,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -59711,7 +68495,7 @@ + + glibcxx_cv_func__powl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -59741,21 +68525,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -59786,11 +68577,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -59803,7 +68604,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -59836,7 +68638,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -59857,11 +68658,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -59874,7 +68685,7 @@ + + glibcxx_cv_func_sqrtl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -59904,21 +68715,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -59949,11 +68767,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -59966,7 +68794,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -59996,7 +68825,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -60017,11 +68845,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -60034,7 +68872,7 @@ + + glibcxx_cv_func__sqrtl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -60064,21 +68902,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -60109,11 +68954,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -60126,7 +68981,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -60159,7 +69015,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -60176,11 +69031,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -60193,7 +69058,7 @@ + + glibcxx_cv_func_sincosl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -60223,21 +69088,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -60268,11 +69140,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -60285,7 +69167,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -60315,7 +69198,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -60332,11 +69214,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -60349,7 +69241,7 @@ + + glibcxx_cv_func__sincosl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -60379,21 +69271,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -60424,11 +69323,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -60441,7 +69350,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -60474,7 +69384,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -60495,11 +69404,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -60512,7 +69431,7 @@ + + glibcxx_cv_func_finitel_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -60542,21 +69461,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -60587,11 +69513,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -60604,7 +69540,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -60634,7 +69571,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -60655,11 +69591,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -60672,7 +69618,7 @@ + + glibcxx_cv_func__finitel_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -60702,21 +69648,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -60747,11 +69700,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -60764,7 +69727,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -60797,7 +69761,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -60816,11 +69779,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -60833,7 +69806,7 @@ + + glibcxx_cv_func__float_trig_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -60870,21 +69843,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -60915,11 +69895,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -60932,7 +69922,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -60962,7 +69953,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -60979,11 +69969,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -60996,7 +69996,7 @@ + + glibcxx_cv_func__float_round_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -61024,21 +70024,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -61069,11 +70076,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -61086,7 +70103,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -61117,7 +70135,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -61136,11 +70153,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -61153,7 +70180,7 @@ + + glibcxx_cv_func__long_double_trig_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -61190,21 +70217,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -61235,11 +70269,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -61252,7 +70296,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -61282,7 +70327,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -61299,11 +70343,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -61316,7 +70370,7 @@ + + glibcxx_cv_func__long_double_round_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -61344,21 +70398,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -61389,11 +70450,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -61406,7 +70477,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -61442,7 +70514,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -61459,11 +70530,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -61476,7 +70557,7 @@ + + glibcxx_cv_func___builtin_abs_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -61503,7 +70584,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -61520,11 +70600,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -61537,7 +70627,8 @@ + + glibcxx_cv_func___builtin_abs_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -61571,7 +70662,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -61588,11 +70678,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -61605,7 +70705,7 @@ + + glibcxx_cv_func___builtin_fabsf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -61632,7 +70732,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -61649,11 +70748,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -61666,7 +70775,8 @@ + + glibcxx_cv_func___builtin_fabsf_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -61700,7 +70810,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -61717,11 +70826,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -61734,7 +70853,7 @@ + + glibcxx_cv_func___builtin_fabs_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -61761,7 +70880,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -61778,11 +70896,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -61795,7 +70923,8 @@ + + glibcxx_cv_func___builtin_fabs_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -61829,7 +70958,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -61846,11 +70974,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -61863,7 +71001,7 @@ + + glibcxx_cv_func___builtin_fabsl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -61890,7 +71028,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -61907,11 +71044,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -61924,7 +71071,8 @@ + + glibcxx_cv_func___builtin_fabsl_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -61958,7 +71106,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -61975,11 +71122,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -61992,7 +71149,7 @@ + + glibcxx_cv_func___builtin_labs_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -62019,7 +71176,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -62036,11 +71192,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -62053,7 +71219,8 @@ + + glibcxx_cv_func___builtin_labs_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -62088,7 +71255,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -62105,11 +71271,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -62122,7 +71298,7 @@ + + glibcxx_cv_func___builtin_sqrtf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -62149,7 +71325,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -62166,11 +71341,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -62183,7 +71368,8 @@ + + glibcxx_cv_func___builtin_sqrtf_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -62217,7 +71403,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -62234,11 +71419,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -62251,7 +71446,7 @@ + + glibcxx_cv_func___builtin_sqrt_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -62278,7 +71473,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -62295,11 +71489,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -62312,7 +71516,8 @@ + + glibcxx_cv_func___builtin_sqrt_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -62346,7 +71551,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -62363,11 +71567,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -62380,7 +71594,7 @@ + + glibcxx_cv_func___builtin_sqrtl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -62407,7 +71621,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -62424,11 +71637,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -62441,7 +71664,8 @@ + + glibcxx_cv_func___builtin_sqrtl_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -62476,7 +71700,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -62493,11 +71716,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -62510,7 +71743,7 @@ + + glibcxx_cv_func___builtin_sinf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -62537,7 +71770,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -62554,11 +71786,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -62571,7 +71813,8 @@ + + glibcxx_cv_func___builtin_sinf_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -62605,7 +71848,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -62622,11 +71864,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -62639,7 +71891,7 @@ + + glibcxx_cv_func___builtin_sin_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -62666,7 +71918,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -62683,11 +71934,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -62700,7 +71961,8 @@ + + glibcxx_cv_func___builtin_sin_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -62734,7 +71996,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -62751,11 +72012,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -62768,7 +72039,7 @@ + + glibcxx_cv_func___builtin_sinl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -62795,7 +72066,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -62812,11 +72082,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -62829,7 +72109,8 @@ + + glibcxx_cv_func___builtin_sinl_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -62864,7 +72145,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -62881,11 +72161,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -62898,7 +72188,7 @@ + + glibcxx_cv_func___builtin_cosf_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -62925,7 +72215,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -62942,11 +72231,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -62959,7 +72258,8 @@ + + glibcxx_cv_func___builtin_cosf_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -62993,7 +72293,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -63010,11 +72309,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -63027,7 +72336,7 @@ + + glibcxx_cv_func___builtin_cos_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -63054,7 +72363,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -63071,11 +72379,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -63088,7 +72406,8 @@ + + glibcxx_cv_func___builtin_cos_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -63122,7 +72441,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -63139,11 +72457,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -63156,7 +72484,7 @@ + + glibcxx_cv_func___builtin_cosl_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -63183,7 +72511,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -63200,11 +72527,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -63217,7 +72554,8 @@ + + glibcxx_cv_func___builtin_cosl_link=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -63250,7 +72588,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -63268,11 +72605,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -63285,7 +72632,8 @@ + + ac_cv_lib_m_main=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_m_main" >&5 +@@ -63314,21 +72662,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -63359,11 +72714,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -63376,7 +72741,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -63406,21 +72772,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -63451,11 +72824,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -63468,7 +72851,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -63498,21 +72882,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -63543,11 +72934,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -63560,7 +72961,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -63591,21 +72993,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -63636,11 +73045,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -63653,7 +73072,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -63681,7 +73101,6 @@ + echo "$as_me:$LINENO: checking for mbstate_t" >&5 + echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -63698,11 +73117,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -63715,7 +73144,7 @@ + + have_mbstate_t=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $have_mbstate_t" >&5 + echo "${ECHO_T}$have_mbstate_t" >&6 + if test x"$have_mbstate_t" = xyes; then +@@ -63743,7 +73172,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -63754,11 +73182,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -63771,7 +73209,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -63779,7 +73217,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -63797,6 +73234,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -63816,33 +73254,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -63853,7 +73290,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -63887,7 +73324,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -63898,11 +73334,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -63915,7 +73361,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -63923,7 +73369,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -63941,6 +73386,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -63960,33 +73406,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -63997,7 +73442,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -64025,7 +73470,6 @@ + echo "$as_me:$LINENO: checking for WCHAR_MIN and WCHAR_MAX" >&5 + echo $ECHO_N "checking for WCHAR_MIN and WCHAR_MAX... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -64042,11 +73486,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -64059,7 +73513,7 @@ + + has_wchar_minmax=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $has_wchar_minmax" >&5 + echo "${ECHO_T}$has_wchar_minmax" >&6 + +@@ -64068,7 +73522,6 @@ + echo "$as_me:$LINENO: checking for WEOF" >&5 + echo $ECHO_N "checking for WEOF... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -64087,11 +73540,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -64104,7 +73567,7 @@ + + has_weof=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $has_weof" >&5 + echo "${ECHO_T}$has_weof" >&6 + +@@ -64130,21 +73593,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -64175,11 +73645,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -64192,7 +73672,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -64273,21 +73754,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -64318,11 +73806,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -64335,7 +73833,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -64372,21 +73871,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -64417,11 +73923,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -64434,7 +73950,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -64475,7 +73992,6 @@ + echo "$as_me:$LINENO: checking iconv.h usability" >&5 + echo $ECHO_N "checking iconv.h usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -64486,11 +74002,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -64503,7 +74029,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -64511,7 +74037,6 @@ + echo "$as_me:$LINENO: checking iconv.h presence" >&5 + echo $ECHO_N "checking iconv.h presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -64529,6 +74054,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -64548,33 +74074,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: iconv.h: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: iconv.h: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: iconv.h: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: iconv.h: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: iconv.h: present but cannot be compiled" >&5 + echo "$as_me: WARNING: iconv.h: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: iconv.h: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: iconv.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: iconv.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: iconv.h: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: iconv.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: iconv.h: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: iconv.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -64611,7 +74136,6 @@ + echo "$as_me:$LINENO: checking langinfo.h usability" >&5 + echo $ECHO_N "checking langinfo.h usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -64622,11 +74146,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -64639,7 +74173,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -64647,7 +74181,6 @@ + echo "$as_me:$LINENO: checking langinfo.h presence" >&5 + echo $ECHO_N "checking langinfo.h presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -64665,6 +74198,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -64684,33 +74218,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: langinfo.h: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: langinfo.h: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: langinfo.h: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: langinfo.h: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: langinfo.h: present but cannot be compiled" >&5 + echo "$as_me: WARNING: langinfo.h: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: langinfo.h: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: langinfo.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: langinfo.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: langinfo.h: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: langinfo.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: langinfo.h: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: langinfo.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -64749,7 +74282,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -64773,11 +74305,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -64790,7 +74332,8 @@ + + ac_cv_lib_iconv_iconv=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_iconv_iconv" >&5 +@@ -64820,21 +74363,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -64865,11 +74415,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -64882,7 +74442,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -64951,7 +74512,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -64968,11 +74528,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -64985,7 +74555,7 @@ + + glibcxx_cv_func_strtold_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -65014,21 +74584,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -65059,11 +74636,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -65076,7 +74663,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -65107,7 +74695,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -65124,11 +74711,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -65141,7 +74738,7 @@ + + glibcxx_cv_func_strtof_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -65170,21 +74767,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -65215,11 +74819,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -65232,7 +74846,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -65260,7 +74875,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -65279,11 +74893,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -65296,7 +74920,8 @@ + + glibcxx_cv_S_ISREG=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -65310,7 +74935,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -65329,11 +74953,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -65346,7 +74980,8 @@ + + glibcxx_cv_S_IFREG=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -65404,7 +75039,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -65415,11 +75049,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -65432,7 +75076,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -65440,7 +75084,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -65458,6 +75101,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -65477,33 +75121,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -65514,7 +75157,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -65587,7 +75230,6 @@ + ac_sectionLDflags=yes + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -65622,7 +75264,7 @@ + ( exit $ac_status ) + ac_sectionLDflags=no + fi +-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" +@@ -65660,7 +75302,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -65678,11 +75319,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -65695,7 +75346,8 @@ + + ac_cv_lib_m_main=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_m_main" >&5 +@@ -65724,21 +75376,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -65769,11 +75428,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -65786,7 +75455,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -65816,21 +75486,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -65861,11 +75538,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -65878,7 +75565,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -65908,21 +75596,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -65953,11 +75648,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -65970,7 +75675,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -66001,21 +75707,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -66046,11 +75759,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -66063,7 +75786,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -66091,7 +75815,6 @@ + echo "$as_me:$LINENO: checking for mbstate_t" >&5 + echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -66108,11 +75831,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -66125,7 +75858,7 @@ + + have_mbstate_t=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $have_mbstate_t" >&5 + echo "${ECHO_T}$have_mbstate_t" >&6 + if test x"$have_mbstate_t" = xyes; then +@@ -66153,7 +75886,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -66164,11 +75896,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -66181,7 +75923,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -66189,7 +75931,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -66207,6 +75948,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -66226,33 +75968,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -66263,7 +76004,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -66297,7 +76038,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -66308,11 +76048,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -66325,7 +76075,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -66333,7 +76083,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -66351,6 +76100,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -66370,33 +76120,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -66407,7 +76156,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -66435,7 +76184,6 @@ + echo "$as_me:$LINENO: checking for WCHAR_MIN and WCHAR_MAX" >&5 + echo $ECHO_N "checking for WCHAR_MIN and WCHAR_MAX... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -66452,11 +76200,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -66469,7 +76227,7 @@ + + has_wchar_minmax=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $has_wchar_minmax" >&5 + echo "${ECHO_T}$has_wchar_minmax" >&6 + +@@ -66478,7 +76236,6 @@ + echo "$as_me:$LINENO: checking for WEOF" >&5 + echo $ECHO_N "checking for WEOF... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -66497,11 +76254,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -66514,7 +76281,7 @@ + + has_weof=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $has_weof" >&5 + echo "${ECHO_T}$has_weof" >&6 + +@@ -66540,21 +76307,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -66585,11 +76359,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -66602,7 +76386,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -66683,21 +76468,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -66728,11 +76520,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -66745,7 +76547,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -66782,21 +76585,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -66827,11 +76637,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -66844,7 +76664,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -66885,7 +76706,6 @@ + echo "$as_me:$LINENO: checking iconv.h usability" >&5 + echo $ECHO_N "checking iconv.h usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -66896,11 +76716,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -66913,7 +76743,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -66921,7 +76751,6 @@ + echo "$as_me:$LINENO: checking iconv.h presence" >&5 + echo $ECHO_N "checking iconv.h presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -66939,6 +76768,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -66958,33 +76788,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: iconv.h: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: iconv.h: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: iconv.h: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: iconv.h: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: iconv.h: present but cannot be compiled" >&5 + echo "$as_me: WARNING: iconv.h: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: iconv.h: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: iconv.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: iconv.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: iconv.h: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: iconv.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: iconv.h: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: iconv.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -67021,7 +76850,6 @@ + echo "$as_me:$LINENO: checking langinfo.h usability" >&5 + echo $ECHO_N "checking langinfo.h usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -67032,11 +76860,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -67049,7 +76887,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -67057,7 +76895,6 @@ + echo "$as_me:$LINENO: checking langinfo.h presence" >&5 + echo $ECHO_N "checking langinfo.h presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -67075,6 +76912,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -67094,33 +76932,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: langinfo.h: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: langinfo.h: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: langinfo.h: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: langinfo.h: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: langinfo.h: present but cannot be compiled" >&5 + echo "$as_me: WARNING: langinfo.h: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: langinfo.h: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: langinfo.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: langinfo.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: langinfo.h: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: langinfo.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: langinfo.h: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: langinfo.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -67159,7 +76996,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -67183,11 +77019,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -67200,7 +77046,8 @@ + + ac_cv_lib_iconv_iconv=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_iconv_iconv" >&5 +@@ -67230,21 +77077,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -67275,11 +77129,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -67292,7 +77156,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -67542,7 +77407,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -67553,11 +77417,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -67570,7 +77444,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -67578,7 +77452,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -67596,6 +77469,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -67615,33 +77489,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -67652,7 +77525,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -67725,7 +77598,6 @@ + ac_sectionLDflags=yes + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -67760,7 +77632,7 @@ + ( exit $ac_status ) + ac_sectionLDflags=no + fi +-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" +@@ -67798,7 +77670,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -67816,11 +77687,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -67833,7 +77714,8 @@ + + ac_cv_lib_m_main=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_m_main" >&5 +@@ -67862,21 +77744,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -67907,11 +77796,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -67924,7 +77823,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -67954,21 +77854,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -67999,11 +77906,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -68016,7 +77933,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -68046,21 +77964,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -68091,11 +78016,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -68108,7 +78043,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -68139,21 +78075,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -68184,11 +78127,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -68201,7 +78154,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -68229,7 +78183,6 @@ + echo "$as_me:$LINENO: checking for mbstate_t" >&5 + echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -68246,11 +78199,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -68263,7 +78226,7 @@ + + have_mbstate_t=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $have_mbstate_t" >&5 + echo "${ECHO_T}$have_mbstate_t" >&6 + if test x"$have_mbstate_t" = xyes; then +@@ -68291,7 +78254,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -68302,11 +78264,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -68319,7 +78291,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -68327,7 +78299,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -68345,6 +78316,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -68364,33 +78336,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -68401,7 +78372,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -68435,7 +78406,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -68446,11 +78416,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -68463,7 +78443,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -68471,7 +78451,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -68489,6 +78468,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -68508,33 +78488,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -68545,7 +78524,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -68573,7 +78552,6 @@ + echo "$as_me:$LINENO: checking for WCHAR_MIN and WCHAR_MAX" >&5 + echo $ECHO_N "checking for WCHAR_MIN and WCHAR_MAX... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -68590,11 +78568,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -68607,7 +78595,7 @@ + + has_wchar_minmax=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $has_wchar_minmax" >&5 + echo "${ECHO_T}$has_wchar_minmax" >&6 + +@@ -68616,7 +78604,6 @@ + echo "$as_me:$LINENO: checking for WEOF" >&5 + echo $ECHO_N "checking for WEOF... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -68635,11 +78622,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -68652,7 +78649,7 @@ + + has_weof=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $has_weof" >&5 + echo "${ECHO_T}$has_weof" >&6 + +@@ -68678,21 +78675,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -68723,11 +78727,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -68740,7 +78754,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -68821,21 +78836,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -68866,11 +78888,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -68883,7 +78915,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -68920,21 +78953,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -68965,11 +79005,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -68982,7 +79032,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -69023,7 +79074,6 @@ + echo "$as_me:$LINENO: checking iconv.h usability" >&5 + echo $ECHO_N "checking iconv.h usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -69034,11 +79084,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -69051,7 +79111,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -69059,7 +79119,6 @@ + echo "$as_me:$LINENO: checking iconv.h presence" >&5 + echo $ECHO_N "checking iconv.h presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -69077,6 +79136,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -69096,33 +79156,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: iconv.h: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: iconv.h: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: iconv.h: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: iconv.h: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: iconv.h: present but cannot be compiled" >&5 + echo "$as_me: WARNING: iconv.h: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: iconv.h: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: iconv.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: iconv.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: iconv.h: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: iconv.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: iconv.h: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: iconv.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -69159,7 +79218,6 @@ + echo "$as_me:$LINENO: checking langinfo.h usability" >&5 + echo $ECHO_N "checking langinfo.h usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -69170,11 +79228,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -69187,7 +79255,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -69195,7 +79263,6 @@ + echo "$as_me:$LINENO: checking langinfo.h presence" >&5 + echo $ECHO_N "checking langinfo.h presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -69213,6 +79280,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -69232,33 +79300,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: langinfo.h: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: langinfo.h: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: langinfo.h: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: langinfo.h: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: langinfo.h: present but cannot be compiled" >&5 + echo "$as_me: WARNING: langinfo.h: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: langinfo.h: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: langinfo.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: langinfo.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: langinfo.h: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: langinfo.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: langinfo.h: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: langinfo.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -69297,7 +79364,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -69321,11 +79387,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -69338,7 +79414,8 @@ + + ac_cv_lib_iconv_iconv=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_iconv_iconv" >&5 +@@ -69368,21 +79445,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -69413,11 +79497,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -69430,7 +79524,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -69556,7 +79651,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -69567,11 +79661,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -69584,7 +79688,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -69592,7 +79696,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -69610,6 +79713,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -69629,33 +79733,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -69666,7 +79769,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -69739,7 +79842,6 @@ + ac_sectionLDflags=yes + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -69774,7 +79876,7 @@ + ( exit $ac_status ) + ac_sectionLDflags=no + fi +-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" +@@ -69812,7 +79914,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -69830,11 +79931,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -69847,7 +79958,8 @@ + + ac_cv_lib_m_main=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_m_main" >&5 +@@ -69876,21 +79988,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -69921,11 +80040,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -69938,7 +80067,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -69968,21 +80098,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -70013,11 +80150,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -70030,7 +80177,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -70060,21 +80208,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -70105,11 +80260,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -70122,7 +80287,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -70153,21 +80319,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -70198,11 +80371,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -70215,7 +80398,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -70243,7 +80427,6 @@ + echo "$as_me:$LINENO: checking for mbstate_t" >&5 + echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -70260,11 +80443,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -70277,7 +80470,7 @@ + + have_mbstate_t=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $have_mbstate_t" >&5 + echo "${ECHO_T}$have_mbstate_t" >&6 + if test x"$have_mbstate_t" = xyes; then +@@ -70305,7 +80498,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -70316,11 +80508,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -70333,7 +80535,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -70341,7 +80543,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -70359,6 +80560,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -70378,33 +80580,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -70415,7 +80616,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -70449,7 +80650,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -70460,11 +80660,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -70477,7 +80687,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -70485,7 +80695,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -70503,6 +80712,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -70522,33 +80732,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -70559,7 +80768,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -70587,7 +80796,6 @@ + echo "$as_me:$LINENO: checking for WCHAR_MIN and WCHAR_MAX" >&5 + echo $ECHO_N "checking for WCHAR_MIN and WCHAR_MAX... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -70604,11 +80812,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -70621,7 +80839,7 @@ + + has_wchar_minmax=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $has_wchar_minmax" >&5 + echo "${ECHO_T}$has_wchar_minmax" >&6 + +@@ -70630,7 +80848,6 @@ + echo "$as_me:$LINENO: checking for WEOF" >&5 + echo $ECHO_N "checking for WEOF... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -70649,11 +80866,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -70666,7 +80893,7 @@ + + has_weof=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $has_weof" >&5 + echo "${ECHO_T}$has_weof" >&6 + +@@ -70692,21 +80919,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -70737,11 +80971,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -70754,7 +80998,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -70835,21 +81080,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -70880,11 +81132,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -70897,7 +81159,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -70934,21 +81197,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -70979,11 +81249,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -70996,7 +81276,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -71037,7 +81318,6 @@ + echo "$as_me:$LINENO: checking iconv.h usability" >&5 + echo $ECHO_N "checking iconv.h usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -71048,11 +81328,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -71065,7 +81355,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -71073,7 +81363,6 @@ + echo "$as_me:$LINENO: checking iconv.h presence" >&5 + echo $ECHO_N "checking iconv.h presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -71091,6 +81380,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -71110,33 +81400,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: iconv.h: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: iconv.h: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: iconv.h: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: iconv.h: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: iconv.h: present but cannot be compiled" >&5 + echo "$as_me: WARNING: iconv.h: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: iconv.h: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: iconv.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: iconv.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: iconv.h: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: iconv.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: iconv.h: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: iconv.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -71173,7 +81462,6 @@ + echo "$as_me:$LINENO: checking langinfo.h usability" >&5 + echo $ECHO_N "checking langinfo.h usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -71184,11 +81472,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -71201,7 +81499,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -71209,7 +81507,6 @@ + echo "$as_me:$LINENO: checking langinfo.h presence" >&5 + echo $ECHO_N "checking langinfo.h presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -71227,6 +81524,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -71246,33 +81544,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: langinfo.h: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: langinfo.h: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: langinfo.h: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: langinfo.h: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: langinfo.h: present but cannot be compiled" >&5 + echo "$as_me: WARNING: langinfo.h: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: langinfo.h: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: langinfo.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: langinfo.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: langinfo.h: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: langinfo.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: langinfo.h: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: langinfo.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -71311,7 +81608,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -71335,11 +81631,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -71352,7 +81658,8 @@ + + ac_cv_lib_iconv_iconv=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_iconv_iconv" >&5 +@@ -71382,21 +81689,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -71427,11 +81741,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -71444,7 +81768,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -71527,7 +81852,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -71538,11 +81862,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -71555,7 +81889,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -71563,7 +81897,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -71581,6 +81914,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -71600,33 +81934,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -71637,7 +81970,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -71663,7 +81996,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -71682,11 +82014,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -71699,7 +82041,8 @@ + + glibcxx_cv_POLL=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -71721,7 +82064,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -71740,11 +82082,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -71757,7 +82109,8 @@ + + glibcxx_cv_S_ISREG=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -71771,7 +82124,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -71790,11 +82142,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -71807,7 +82169,8 @@ + + glibcxx_cv_S_IFREG=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -71842,7 +82205,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -71853,11 +82215,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -71870,7 +82242,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -71878,7 +82250,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -71896,6 +82267,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -71915,33 +82287,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -71952,7 +82323,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -71978,7 +82349,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -71996,11 +82366,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -72013,7 +82393,8 @@ + + glibcxx_cv_WRITEV=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi + +@@ -72284,7 +82665,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -72295,11 +82675,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -72312,7 +82702,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -72320,7 +82710,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -72338,6 +82727,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -72357,33 +82747,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -72394,7 +82783,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -72465,7 +82854,6 @@ + ac_sectionLDflags=yes + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -72500,7 +82888,7 @@ + ( exit $ac_status ) + ac_sectionLDflags=no + fi +-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" +@@ -72538,7 +82926,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -72556,11 +82943,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -72573,7 +82970,8 @@ + + ac_cv_lib_m_main=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_m_main" >&5 +@@ -72602,21 +83000,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -72647,11 +83052,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -72664,7 +83079,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -72694,21 +83110,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -72739,11 +83162,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -72756,7 +83189,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -72786,21 +83220,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -72831,11 +83272,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -72848,7 +83299,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -72879,21 +83331,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -72924,11 +83383,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -72941,7 +83410,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -72969,7 +83439,6 @@ + echo "$as_me:$LINENO: checking for mbstate_t" >&5 + echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -72986,11 +83455,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -73003,7 +83482,7 @@ + + have_mbstate_t=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $have_mbstate_t" >&5 + echo "${ECHO_T}$have_mbstate_t" >&6 + if test x"$have_mbstate_t" = xyes; then +@@ -73031,7 +83510,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -73042,11 +83520,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -73059,7 +83547,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -73067,7 +83555,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -73085,6 +83572,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -73104,33 +83592,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -73141,7 +83628,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -73175,7 +83662,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -73186,11 +83672,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -73203,7 +83699,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -73211,7 +83707,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -73229,6 +83724,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -73248,33 +83744,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -73285,7 +83780,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -73313,7 +83808,6 @@ + echo "$as_me:$LINENO: checking for WCHAR_MIN and WCHAR_MAX" >&5 + echo $ECHO_N "checking for WCHAR_MIN and WCHAR_MAX... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -73330,11 +83824,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -73347,7 +83851,7 @@ + + has_wchar_minmax=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $has_wchar_minmax" >&5 + echo "${ECHO_T}$has_wchar_minmax" >&6 + +@@ -73356,7 +83860,6 @@ + echo "$as_me:$LINENO: checking for WEOF" >&5 + echo $ECHO_N "checking for WEOF... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -73375,11 +83878,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -73392,7 +83905,7 @@ + + has_weof=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $has_weof" >&5 + echo "${ECHO_T}$has_weof" >&6 + +@@ -73418,21 +83931,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -73463,11 +83983,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -73480,7 +84010,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -73561,21 +84092,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -73606,11 +84144,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -73623,7 +84171,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -73660,21 +84209,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -73705,11 +84261,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -73722,7 +84288,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -73763,7 +84330,6 @@ + echo "$as_me:$LINENO: checking iconv.h usability" >&5 + echo $ECHO_N "checking iconv.h usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -73774,11 +84340,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -73791,7 +84367,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -73799,7 +84375,6 @@ + echo "$as_me:$LINENO: checking iconv.h presence" >&5 + echo $ECHO_N "checking iconv.h presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -73817,6 +84392,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -73836,33 +84412,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: iconv.h: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: iconv.h: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: iconv.h: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: iconv.h: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: iconv.h: present but cannot be compiled" >&5 + echo "$as_me: WARNING: iconv.h: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: iconv.h: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: iconv.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: iconv.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: iconv.h: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: iconv.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: iconv.h: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: iconv.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -73899,7 +84474,6 @@ + echo "$as_me:$LINENO: checking langinfo.h usability" >&5 + echo $ECHO_N "checking langinfo.h usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -73910,11 +84484,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -73927,7 +84511,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -73935,7 +84519,6 @@ + echo "$as_me:$LINENO: checking langinfo.h presence" >&5 + echo $ECHO_N "checking langinfo.h presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -73953,6 +84536,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -73972,33 +84556,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: langinfo.h: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: langinfo.h: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: langinfo.h: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: langinfo.h: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: langinfo.h: present but cannot be compiled" >&5 + echo "$as_me: WARNING: langinfo.h: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: langinfo.h: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: langinfo.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: langinfo.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: langinfo.h: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: langinfo.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: langinfo.h: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: langinfo.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -74037,7 +84620,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -74061,11 +84643,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -74078,7 +84670,8 @@ + + ac_cv_lib_iconv_iconv=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_iconv_iconv" >&5 +@@ -74108,21 +84701,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -74153,11 +84753,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -74170,7 +84780,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -74249,7 +84860,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -74260,11 +84870,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -74277,7 +84897,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -74285,7 +84905,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -74303,6 +84922,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -74322,33 +84942,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -74359,7 +84978,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -74432,7 +85051,6 @@ + ac_sectionLDflags=yes + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -74467,7 +85085,7 @@ + ( exit $ac_status ) + ac_sectionLDflags=no + fi +-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" +@@ -74505,7 +85123,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -74523,11 +85140,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -74540,7 +85167,8 @@ + + ac_cv_lib_m_main=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_m_main" >&5 +@@ -74569,21 +85197,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -74614,11 +85249,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -74631,7 +85276,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -74661,21 +85307,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -74706,11 +85359,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -74723,7 +85386,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -74753,21 +85417,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -74798,11 +85469,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -74815,7 +85496,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -74846,21 +85528,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -74891,11 +85580,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -74908,7 +85607,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -74936,7 +85636,6 @@ + echo "$as_me:$LINENO: checking for mbstate_t" >&5 + echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -74953,11 +85652,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -74970,7 +85679,7 @@ + + have_mbstate_t=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $have_mbstate_t" >&5 + echo "${ECHO_T}$have_mbstate_t" >&6 + if test x"$have_mbstate_t" = xyes; then +@@ -74998,7 +85707,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -75009,11 +85717,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -75026,7 +85744,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -75034,7 +85752,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -75052,6 +85769,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -75071,33 +85789,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -75108,7 +85825,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -75142,7 +85859,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -75153,11 +85869,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -75170,7 +85896,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -75178,7 +85904,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -75196,6 +85921,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -75215,33 +85941,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -75252,7 +85977,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -75280,7 +86005,6 @@ + echo "$as_me:$LINENO: checking for WCHAR_MIN and WCHAR_MAX" >&5 + echo $ECHO_N "checking for WCHAR_MIN and WCHAR_MAX... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -75297,11 +86021,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -75314,7 +86048,7 @@ + + has_wchar_minmax=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $has_wchar_minmax" >&5 + echo "${ECHO_T}$has_wchar_minmax" >&6 + +@@ -75323,7 +86057,6 @@ + echo "$as_me:$LINENO: checking for WEOF" >&5 + echo $ECHO_N "checking for WEOF... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -75342,11 +86075,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -75359,7 +86102,7 @@ + + has_weof=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $has_weof" >&5 + echo "${ECHO_T}$has_weof" >&6 + +@@ -75385,21 +86128,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -75430,11 +86180,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -75447,7 +86207,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -75528,21 +86289,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -75573,11 +86341,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -75590,7 +86368,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -75627,21 +86406,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -75672,11 +86458,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -75689,7 +86485,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -75730,7 +86527,6 @@ + echo "$as_me:$LINENO: checking iconv.h usability" >&5 + echo $ECHO_N "checking iconv.h usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -75741,11 +86537,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -75758,7 +86564,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -75766,7 +86572,6 @@ + echo "$as_me:$LINENO: checking iconv.h presence" >&5 + echo $ECHO_N "checking iconv.h presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -75784,6 +86589,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -75803,33 +86609,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: iconv.h: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: iconv.h: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: iconv.h: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: iconv.h: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: iconv.h: present but cannot be compiled" >&5 + echo "$as_me: WARNING: iconv.h: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: iconv.h: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: iconv.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: iconv.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: iconv.h: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: iconv.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: iconv.h: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: iconv.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -75866,7 +86671,6 @@ + echo "$as_me:$LINENO: checking langinfo.h usability" >&5 + echo $ECHO_N "checking langinfo.h usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -75877,11 +86681,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -75894,7 +86708,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -75902,7 +86716,6 @@ + echo "$as_me:$LINENO: checking langinfo.h presence" >&5 + echo $ECHO_N "checking langinfo.h presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -75920,6 +86733,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -75939,33 +86753,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: langinfo.h: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: langinfo.h: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: langinfo.h: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: langinfo.h: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: langinfo.h: present but cannot be compiled" >&5 + echo "$as_me: WARNING: langinfo.h: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: langinfo.h: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: langinfo.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: langinfo.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: langinfo.h: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: langinfo.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: langinfo.h: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: langinfo.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -76004,7 +86817,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -76028,11 +86840,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -76045,7 +86867,8 @@ + + ac_cv_lib_iconv_iconv=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_iconv_iconv" >&5 +@@ -76075,21 +86898,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -76120,11 +86950,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -76137,7 +86977,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -76298,7 +87139,6 @@ + ac_sectionLDflags=yes + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -76333,7 +87173,7 @@ + ( exit $ac_status ) + ac_sectionLDflags=no + fi +-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" +@@ -76371,7 +87211,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -76389,11 +87228,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -76406,7 +87255,8 @@ + + ac_cv_lib_m_main=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_m_main" >&5 +@@ -76435,21 +87285,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -76480,11 +87337,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -76497,7 +87364,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -76527,21 +87395,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -76572,11 +87447,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -76589,7 +87474,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -76619,21 +87505,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -76664,11 +87557,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -76681,7 +87584,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -76712,21 +87616,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -76757,11 +87668,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -76774,7 +87695,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -76802,7 +87724,6 @@ + echo "$as_me:$LINENO: checking for mbstate_t" >&5 + echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -76819,11 +87740,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -76836,7 +87767,7 @@ + + have_mbstate_t=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $have_mbstate_t" >&5 + echo "${ECHO_T}$have_mbstate_t" >&6 + if test x"$have_mbstate_t" = xyes; then +@@ -76864,7 +87795,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -76875,11 +87805,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -76892,7 +87832,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -76900,7 +87840,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -76918,6 +87857,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -76937,33 +87877,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -76974,7 +87913,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -77008,7 +87947,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -77019,11 +87957,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -77036,7 +87984,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -77044,7 +87992,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -77062,6 +88009,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -77081,33 +88029,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -77118,7 +88065,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -77146,7 +88093,6 @@ + echo "$as_me:$LINENO: checking for WCHAR_MIN and WCHAR_MAX" >&5 + echo $ECHO_N "checking for WCHAR_MIN and WCHAR_MAX... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -77163,11 +88109,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -77180,7 +88136,7 @@ + + has_wchar_minmax=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $has_wchar_minmax" >&5 + echo "${ECHO_T}$has_wchar_minmax" >&6 + +@@ -77189,7 +88145,6 @@ + echo "$as_me:$LINENO: checking for WEOF" >&5 + echo $ECHO_N "checking for WEOF... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -77208,11 +88163,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -77225,7 +88190,7 @@ + + has_weof=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $has_weof" >&5 + echo "${ECHO_T}$has_weof" >&6 + +@@ -77251,21 +88216,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -77296,11 +88268,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -77313,7 +88295,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -77394,21 +88377,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -77439,11 +88429,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -77456,7 +88456,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -77493,21 +88494,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -77538,11 +88546,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -77555,7 +88573,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -77596,7 +88615,6 @@ + echo "$as_me:$LINENO: checking iconv.h usability" >&5 + echo $ECHO_N "checking iconv.h usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -77607,11 +88625,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -77624,7 +88652,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -77632,7 +88660,6 @@ + echo "$as_me:$LINENO: checking iconv.h presence" >&5 + echo $ECHO_N "checking iconv.h presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -77650,6 +88677,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -77669,33 +88697,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: iconv.h: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: iconv.h: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: iconv.h: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: iconv.h: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: iconv.h: present but cannot be compiled" >&5 + echo "$as_me: WARNING: iconv.h: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: iconv.h: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: iconv.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: iconv.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: iconv.h: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: iconv.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: iconv.h: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: iconv.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -77732,7 +88759,6 @@ + echo "$as_me:$LINENO: checking langinfo.h usability" >&5 + echo $ECHO_N "checking langinfo.h usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -77743,11 +88769,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -77760,7 +88796,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -77768,7 +88804,6 @@ + echo "$as_me:$LINENO: checking langinfo.h presence" >&5 + echo $ECHO_N "checking langinfo.h presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -77786,6 +88821,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -77805,33 +88841,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: langinfo.h: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: langinfo.h: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: langinfo.h: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: langinfo.h: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: langinfo.h: present but cannot be compiled" >&5 + echo "$as_me: WARNING: langinfo.h: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: langinfo.h: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: langinfo.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: langinfo.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: langinfo.h: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: langinfo.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: langinfo.h: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: langinfo.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -77870,7 +88905,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -77894,11 +88928,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -77911,7 +88955,8 @@ + + ac_cv_lib_iconv_iconv=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_iconv_iconv" >&5 +@@ -77941,21 +88986,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -77986,11 +89038,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -78003,7 +89065,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -78376,7 +89439,6 @@ + echo "$as_me:$LINENO: checking for mbstate_t" >&5 + echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -78393,11 +89455,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -78410,7 +89482,7 @@ + + have_mbstate_t=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $have_mbstate_t" >&5 + echo "${ECHO_T}$have_mbstate_t" >&6 + if test x"$have_mbstate_t" = xyes; then +@@ -78438,7 +89510,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -78449,11 +89520,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -78466,7 +89547,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -78474,7 +89555,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -78492,6 +89572,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -78511,33 +89592,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -78548,7 +89628,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -78582,7 +89662,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -78593,11 +89672,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -78610,7 +89699,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -78618,7 +89707,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -78636,6 +89724,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -78655,33 +89744,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -78692,7 +89780,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -78720,7 +89808,6 @@ + echo "$as_me:$LINENO: checking for WCHAR_MIN and WCHAR_MAX" >&5 + echo $ECHO_N "checking for WCHAR_MIN and WCHAR_MAX... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -78737,11 +89824,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -78754,7 +89851,7 @@ + + has_wchar_minmax=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $has_wchar_minmax" >&5 + echo "${ECHO_T}$has_wchar_minmax" >&6 + +@@ -78763,7 +89860,6 @@ + echo "$as_me:$LINENO: checking for WEOF" >&5 + echo $ECHO_N "checking for WEOF... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -78782,11 +89878,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -78799,7 +89905,7 @@ + + has_weof=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $has_weof" >&5 + echo "${ECHO_T}$has_weof" >&6 + +@@ -78825,21 +89931,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -78870,11 +89983,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -78887,7 +90010,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -78968,21 +90092,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -79013,11 +90144,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -79030,7 +90171,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -79067,21 +90209,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -79112,11 +90261,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -79129,7 +90288,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -79170,7 +90330,6 @@ + echo "$as_me:$LINENO: checking iconv.h usability" >&5 + echo $ECHO_N "checking iconv.h usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -79181,11 +90340,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -79198,7 +90367,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -79206,7 +90375,6 @@ + echo "$as_me:$LINENO: checking iconv.h presence" >&5 + echo $ECHO_N "checking iconv.h presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -79224,6 +90392,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -79243,33 +90412,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: iconv.h: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: iconv.h: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: iconv.h: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: iconv.h: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: iconv.h: present but cannot be compiled" >&5 + echo "$as_me: WARNING: iconv.h: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: iconv.h: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: iconv.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: iconv.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: iconv.h: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: iconv.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: iconv.h: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: iconv.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -79306,7 +90474,6 @@ + echo "$as_me:$LINENO: checking langinfo.h usability" >&5 + echo $ECHO_N "checking langinfo.h usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -79317,11 +90484,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -79334,7 +90511,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -79342,7 +90519,6 @@ + echo "$as_me:$LINENO: checking langinfo.h presence" >&5 + echo $ECHO_N "checking langinfo.h presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -79360,6 +90536,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -79379,33 +90556,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: langinfo.h: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: langinfo.h: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: langinfo.h: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: langinfo.h: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: langinfo.h: present but cannot be compiled" >&5 + echo "$as_me: WARNING: langinfo.h: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: langinfo.h: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: langinfo.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: langinfo.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: langinfo.h: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: langinfo.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: langinfo.h: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: langinfo.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -79444,7 +90620,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -79468,11 +90643,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -79485,7 +90670,8 @@ + + ac_cv_lib_iconv_iconv=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_iconv_iconv" >&5 +@@ -79515,21 +90701,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -79560,11 +90753,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -79577,7 +90780,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -79735,14 +90939,19 @@ + + ;; + esac +- cat >>confdefs.h <<\_ACEOF ++ case "$target" in ++ *-*-solaris2.10) ++ # These two C99 functions are present only in Solaris >= 10 ++ cat >>confdefs.h <<\_ACEOF + #define HAVE_STRTOF 1 + _ACEOF + +- cat >>confdefs.h <<\_ACEOF ++ cat >>confdefs.h <<\_ACEOF + #define HAVE_STRTOLD 1 + _ACEOF + ++ ;; ++ esac + cat >>confdefs.h <<\_ACEOF + #define HAVE_MMAP 1 + _ACEOF +@@ -79794,7 +91003,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -79805,11 +91013,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -79822,7 +91040,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -79830,7 +91048,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -79848,6 +91065,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -79867,33 +91085,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -79904,7 +91121,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -79977,7 +91194,6 @@ + ac_sectionLDflags=yes + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -80012,7 +91228,7 @@ + ( exit $ac_status ) + ac_sectionLDflags=no + fi +-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" +@@ -80050,7 +91266,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -80068,11 +91283,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -80085,7 +91310,8 @@ + + ac_cv_lib_m_main=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_m_main" >&5 +@@ -80114,21 +91340,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -80159,11 +91392,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -80176,7 +91419,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -80206,21 +91450,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -80251,11 +91502,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -80268,7 +91529,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -80298,21 +91560,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -80343,11 +91612,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -80360,7 +91639,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -80391,21 +91671,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -80436,11 +91723,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -80453,7 +91750,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -80481,7 +91779,6 @@ + echo "$as_me:$LINENO: checking for mbstate_t" >&5 + echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -80498,11 +91795,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -80515,7 +91822,7 @@ + + have_mbstate_t=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $have_mbstate_t" >&5 + echo "${ECHO_T}$have_mbstate_t" >&6 + if test x"$have_mbstate_t" = xyes; then +@@ -80543,7 +91850,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -80554,11 +91860,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -80571,7 +91887,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -80579,7 +91895,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -80597,6 +91912,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -80616,33 +91932,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -80653,7 +91968,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -80687,7 +92002,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -80698,11 +92012,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -80715,7 +92039,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -80723,7 +92047,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -80741,6 +92064,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -80760,33 +92084,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -80797,7 +92120,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -80825,7 +92148,6 @@ + echo "$as_me:$LINENO: checking for WCHAR_MIN and WCHAR_MAX" >&5 + echo $ECHO_N "checking for WCHAR_MIN and WCHAR_MAX... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -80842,11 +92164,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -80859,7 +92191,7 @@ + + has_wchar_minmax=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $has_wchar_minmax" >&5 + echo "${ECHO_T}$has_wchar_minmax" >&6 + +@@ -80868,7 +92200,6 @@ + echo "$as_me:$LINENO: checking for WEOF" >&5 + echo $ECHO_N "checking for WEOF... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -80887,11 +92218,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -80904,7 +92245,7 @@ + + has_weof=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $has_weof" >&5 + echo "${ECHO_T}$has_weof" >&6 + +@@ -80930,21 +92271,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -80975,11 +92323,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -80992,7 +92350,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -81073,21 +92432,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -81118,11 +92484,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -81135,7 +92511,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -81172,21 +92549,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -81217,11 +92601,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -81234,7 +92628,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -81275,7 +92670,6 @@ + echo "$as_me:$LINENO: checking iconv.h usability" >&5 + echo $ECHO_N "checking iconv.h usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -81286,11 +92680,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -81303,7 +92707,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -81311,7 +92715,6 @@ + echo "$as_me:$LINENO: checking iconv.h presence" >&5 + echo $ECHO_N "checking iconv.h presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -81329,6 +92732,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -81348,33 +92752,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: iconv.h: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: iconv.h: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: iconv.h: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: iconv.h: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: iconv.h: present but cannot be compiled" >&5 + echo "$as_me: WARNING: iconv.h: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: iconv.h: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: iconv.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: iconv.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: iconv.h: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: iconv.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: iconv.h: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: iconv.h: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: iconv.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -81411,7 +92814,6 @@ + echo "$as_me:$LINENO: checking langinfo.h usability" >&5 + echo $ECHO_N "checking langinfo.h usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -81422,11 +92824,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -81439,7 +92851,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -81447,7 +92859,6 @@ + echo "$as_me:$LINENO: checking langinfo.h presence" >&5 + echo $ECHO_N "checking langinfo.h presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -81465,6 +92876,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -81484,33 +92896,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: langinfo.h: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: langinfo.h: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: langinfo.h: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: langinfo.h: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: langinfo.h: present but cannot be compiled" >&5 + echo "$as_me: WARNING: langinfo.h: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: langinfo.h: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: langinfo.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: langinfo.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: langinfo.h: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: langinfo.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: langinfo.h: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: langinfo.h: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: langinfo.h: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: langinfo.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -81549,7 +92960,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -81573,11 +92983,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -81590,7 +93010,8 @@ + + ac_cv_lib_iconv_iconv=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_iconv_iconv" >&5 +@@ -81620,21 +93041,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -81665,11 +93093,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -81682,7 +93120,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -82219,7 +93658,6 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -82236,11 +93674,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -82253,7 +93701,8 @@ + + glibcxx_shared_libgcc=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + if test $glibcxx_shared_libgcc = no; then + cat > conftest.c <conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -82289,11 +93737,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -82305,7 +93763,8 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + fi + fi +@@ -82408,7 +93867,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -82419,11 +93877,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -82436,7 +93904,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -82444,7 +93912,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -82462,6 +93929,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -82481,33 +93949,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ----------------------------------------- ## ++## Report this to the package-unused lists. ## ++## ----------------------------------------- ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -82518,7 +93985,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -82541,7 +94008,6 @@ + # Can't do these in a loop, else the resulting syntax is wrong. + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -82561,11 +94027,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -82578,7 +94054,7 @@ + + glibcxx_mresult=0 + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + + cat >>confdefs.h <<_ACEOF + #define HAVE_LIMIT_DATA $glibcxx_mresult +@@ -82587,7 +94063,6 @@ + + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -82607,11 +94082,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -82624,7 +94109,7 @@ + + glibcxx_mresult=0 + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + + cat >>confdefs.h <<_ACEOF + #define HAVE_LIMIT_RSS $glibcxx_mresult +@@ -82633,7 +94118,6 @@ + + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -82653,11 +94137,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -82670,7 +94164,7 @@ + + glibcxx_mresult=0 + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + + cat >>confdefs.h <<_ACEOF + #define HAVE_LIMIT_VMEM $glibcxx_mresult +@@ -82679,7 +94173,6 @@ + + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -82699,11 +94192,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -82716,7 +94219,7 @@ + + glibcxx_mresult=0 + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + + cat >>confdefs.h <<_ACEOF + #define HAVE_LIMIT_AS $glibcxx_mresult +@@ -82725,7 +94228,6 @@ + + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -82745,11 +94247,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -82762,7 +94274,7 @@ + + glibcxx_mresult=0 + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + + cat >>confdefs.h <<_ACEOF + #define HAVE_LIMIT_FSIZE $glibcxx_mresult +@@ -82776,7 +94288,6 @@ + else + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -82797,11 +94308,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -82814,7 +94335,7 @@ + + ac_setrlimit=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + + fi + +@@ -82853,7 +94374,6 @@ + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -82870,11 +94390,21 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_cxx_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -82887,7 +94417,7 @@ + + glibcxx_cv_func_setenv_use=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -82916,21 +94446,28 @@ + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -82961,11 +94498,21 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -82978,7 +94525,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -83161,13 +94709,13 @@ + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ +- "s/'/'\\\\''/g; +- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ++ "s/'/'\\\\''/g; ++ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n \ +- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ++ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; + } | +@@ -83364,13 +94912,13 @@ + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ +- "s/'/'\\\\''/g; +- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ++ "s/'/'\\\\''/g; ++ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n \ +- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ++ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; + } | +@@ -83400,13 +94948,13 @@ + # trailing colons and then remove the whole line if VPATH becomes empty + # (actually we leave an empty line to preserve line numbers). + if test "x$srcdir" = x.; then +- ac_vpsub='/^[ ]*VPATH[ ]*=/{ ++ ac_vpsub='/^[ ]*VPATH[ ]*=/{ + s/:*\$(srcdir):*/:/; + s/:*\${srcdir}:*/:/; + s/:*@srcdir@:*/:/; +-s/^\([^=]*=[ ]*\):*/\1/; ++s/^\([^=]*=[ ]*\):*/\1/; + s/:*$//; +-s/^[^=]*=[ ]*$//; ++s/^[^=]*=[ ]*$//; + }' + fi + +@@ -83417,7 +94965,7 @@ + for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_i=`echo "$ac_i" | +- sed 's/\$U\././;s/\.o$//;s/\.obj$//'` ++ sed 's/\$U\././;s/\.o$//;s/\.obj$//'` + # 2. Add them. + ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' +@@ -83531,9 +95079,10 @@ + elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix + fi ++DUALCASE=1; export DUALCASE # for MKS sh + + # Support unset when possible. +-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then ++if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset + else + as_unset=false +@@ -83552,7 +95101,7 @@ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME + do +- if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then ++ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var +@@ -83731,16 +95280,17 @@ + if mkdir -p . 2>/dev/null; then + as_mkdir_p=: + else ++ test -d ./-p && rmdir ./-p + as_mkdir_p=false + fi + + as_executable_p="test -f" + + # Sed expression to map a string onto a valid CPP name. +-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" ++as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + + # Sed expression to map a string onto a valid variable name. +-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" ++as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + + # IFS +@@ -83767,7 +95317,7 @@ + cat >&5 <<_CSEOF + + This file was extended by package-unused $as_me version-unused, which was +-generated by GNU Autoconf 2.57. Invocation command line was ++generated by GNU Autoconf 2.59. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS +@@ -83811,9 +95361,9 @@ + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] +- instantiate the configuration file FILE ++ instantiate the configuration file FILE + --header=FILE[:TEMPLATE] +- instantiate the configuration header FILE ++ instantiate the configuration header FILE + + Configuration files: + $config_files +@@ -83830,11 +95380,10 @@ + cat >>$CONFIG_STATUS <<_ACEOF + ac_cs_version="\\ + package-unused config.status version-unused +-configured by $0, generated by GNU Autoconf 2.57, ++configured by $0, generated by GNU Autoconf 2.59, + with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" + +-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 +-Free Software Foundation, Inc. ++Copyright (C) 2003 Free Software Foundation, Inc. + This config.status script is free software; the Free Software Foundation + gives unlimited permission to copy, distribute and modify it." + srcdir=$srcdir +@@ -84210,9 +95759,9 @@ + (echo ':t + /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed + if test -z "$ac_sed_cmds"; then +- ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" ++ ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" + else +- ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" ++ ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" + fi + ac_sed_frag=`expr $ac_sed_frag + 1` + ac_beg=$ac_end +@@ -84230,21 +95779,21 @@ + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case $ac_file in + - | *:- | *:-:* ) # input from stdin +- cat >$tmp/stdin +- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` +- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; ++ cat >$tmp/stdin ++ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ++ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` +- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; ++ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + * ) ac_file_in=$ac_file.in ;; + esac + + # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. + ac_dir=`(dirname "$ac_file") 2>/dev/null || + $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +- X"$ac_file" : 'X\(//\)[^/]' \| \ +- X"$ac_file" : 'X\(//\)$' \| \ +- X"$ac_file" : 'X\(/\)' \| \ +- . : '\(.\)' 2>/dev/null || ++ X"$ac_file" : 'X\(//\)[^/]' \| \ ++ X"$ac_file" : 'X\(//\)$' \| \ ++ X"$ac_file" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || + echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } +@@ -84260,10 +95809,10 @@ + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || + $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +- X"$as_dir" : 'X\(//\)[^/]' \| \ +- X"$as_dir" : 'X\(//\)$' \| \ +- X"$as_dir" : 'X\(/\)' \| \ +- . : '\(.\)' 2>/dev/null || ++ X"$as_dir" : 'X\(//\)[^/]' \| \ ++ X"$as_dir" : 'X\(//\)$' \| \ ++ X"$as_dir" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || + echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } +@@ -84301,12 +95850,45 @@ + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; + esac +-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be +-# absolute. +-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` +-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` +-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` +-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` ++ ++# Do not use `cd foo && pwd` to compute absolute paths, because ++# the directories may not exist. ++case `pwd` in ++.) ac_abs_builddir="$ac_dir";; ++*) ++ case "$ac_dir" in ++ .) ac_abs_builddir=`pwd`;; ++ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; ++ *) ac_abs_builddir=`pwd`/"$ac_dir";; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_builddir=${ac_top_builddir}.;; ++*) ++ case ${ac_top_builddir}. in ++ .) ac_abs_top_builddir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; ++ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_srcdir=$ac_srcdir;; ++*) ++ case $ac_srcdir in ++ .) ac_abs_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; ++ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_srcdir=$ac_top_srcdir;; ++*) ++ case $ac_top_srcdir in ++ .) ac_abs_top_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; ++ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; ++ esac;; ++esac + + + case $INSTALL in +@@ -84328,7 +95910,7 @@ + configure_input="$ac_file. " + fi + configure_input=$configure_input"Generated from `echo $ac_file_in | +- sed 's,.*/,,'` by configure." ++ sed 's,.*/,,'` by configure." + + # First look for the input files in the build tree, otherwise in the + # src tree. +@@ -84337,24 +95919,24 @@ + case $f in + -) echo $tmp/stdin ;; + [\\/$]*) +- # Absolute (can't be DOS-style, as IFS=:) +- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 ++ # Absolute (can't be DOS-style, as IFS=:) ++ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 + echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } +- echo $f;; ++ echo "$f";; + *) # Relative +- if test -f "$f"; then +- # Build tree +- echo $f +- elif test -f "$srcdir/$f"; then +- # Source tree +- echo $srcdir/$f +- else +- # /dev/null tree +- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 ++ if test -f "$f"; then ++ # Build tree ++ echo "$f" ++ elif test -f "$srcdir/$f"; then ++ # Source tree ++ echo "$srcdir/$f" ++ else ++ # /dev/null tree ++ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 + echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } +- fi;; ++ fi;; + esac + done` || { (exit 1); exit 1; } + _ACEOF +@@ -84401,12 +95983,12 @@ + # NAME is the cpp macro being defined and VALUE is the value it is being given. + # + # ac_d sets the value in "#define NAME VALUE" lines. +-ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' +-ac_dB='[ ].*$,\1#\2' ++ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' ++ac_dB='[ ].*$,\1#\2' + ac_dC=' ' + ac_dD=',;t' + # ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". +-ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ++ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' + ac_uB='$,\1#\2define\3' + ac_uC=' ' + ac_uD=',;t' +@@ -84415,11 +95997,11 @@ + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case $ac_file in + - | *:- | *:-:* ) # input from stdin +- cat >$tmp/stdin +- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` +- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; ++ cat >$tmp/stdin ++ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ++ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` +- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; ++ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + * ) ac_file_in=$ac_file.in ;; + esac + +@@ -84433,28 +96015,29 @@ + case $f in + -) echo $tmp/stdin ;; + [\\/$]*) +- # Absolute (can't be DOS-style, as IFS=:) +- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 ++ # Absolute (can't be DOS-style, as IFS=:) ++ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 + echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } +- echo $f;; ++ # Do quote $f, to prevent DOS paths from being IFS'd. ++ echo "$f";; + *) # Relative +- if test -f "$f"; then +- # Build tree +- echo $f +- elif test -f "$srcdir/$f"; then +- # Source tree +- echo $srcdir/$f +- else +- # /dev/null tree +- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 ++ if test -f "$f"; then ++ # Build tree ++ echo "$f" ++ elif test -f "$srcdir/$f"; then ++ # Source tree ++ echo "$srcdir/$f" ++ else ++ # /dev/null tree ++ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 + echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } +- fi;; ++ fi;; + esac + done` || { (exit 1); exit 1; } + # Remove the trailing spaces. +- sed 's/[ ]*$//' $ac_file_inputs >$tmp/in ++ sed 's/[ ]*$//' $ac_file_inputs >$tmp/in + + _ACEOF + +@@ -84477,9 +96060,9 @@ + s,[\\$`],\\&,g + t clear + : clear +-s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp ++s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp + t end +-s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp ++s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp + : end + _ACEOF + # If some macros were called several times there might be several times +@@ -84493,13 +96076,13 @@ + # example, in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + cat >>conftest.undefs <<\_ACEOF +-s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, ++s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, + _ACEOF + + # Break up conftest.defines because some shells have a limit on the size + # of here documents, and old seds have small limits too (100 cmds). + echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS +-echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS ++echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS + echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS + echo ' :' >>$CONFIG_STATUS + rm -f conftest.tail +@@ -84508,7 +96091,7 @@ + # Write a limited-size here document to $tmp/defines.sed. + echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS + # Speed up: don't consider the non `#define' lines. +- echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS ++ echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS + # Work around the forget-to-reset-the-flag bug. + echo 't clr' >>$CONFIG_STATUS + echo ': clr' >>$CONFIG_STATUS +@@ -84535,7 +96118,7 @@ + # Write a limited-size here document to $tmp/undefs.sed. + echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS + # Speed up: don't consider the non `#undef' +- echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS ++ echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS + # Work around the forget-to-reset-the-flag bug. + echo 't clr' >>$CONFIG_STATUS + echo ': clr' >>$CONFIG_STATUS +@@ -84569,10 +96152,10 @@ + else + ac_dir=`(dirname "$ac_file") 2>/dev/null || + $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +- X"$ac_file" : 'X\(//\)[^/]' \| \ +- X"$ac_file" : 'X\(//\)$' \| \ +- X"$ac_file" : 'X\(/\)' \| \ +- . : '\(.\)' 2>/dev/null || ++ X"$ac_file" : 'X\(//\)[^/]' \| \ ++ X"$ac_file" : 'X\(//\)$' \| \ ++ X"$ac_file" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || + echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } +@@ -84588,10 +96171,10 @@ + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || + $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +- X"$as_dir" : 'X\(//\)[^/]' \| \ +- X"$as_dir" : 'X\(//\)$' \| \ +- X"$as_dir" : 'X\(/\)' \| \ +- . : '\(.\)' 2>/dev/null || ++ X"$as_dir" : 'X\(//\)[^/]' \| \ ++ X"$as_dir" : 'X\(//\)$' \| \ ++ X"$as_dir" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || + echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } +@@ -84623,10 +96206,10 @@ + done + echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null || + $as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +- X$ac_file : 'X\(//\)[^/]' \| \ +- X$ac_file : 'X\(//\)$' \| \ +- X$ac_file : 'X\(/\)' \| \ +- . : '\(.\)' 2>/dev/null || ++ X$ac_file : 'X\(//\)[^/]' \| \ ++ X$ac_file : 'X\(//\)$' \| \ ++ X$ac_file : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || + echo X$ac_file | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } +@@ -84645,16 +96228,41 @@ + ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_dir=`(dirname "$ac_dest") 2>/dev/null || + $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +- X"$ac_dest" : 'X\(//\)[^/]' \| \ +- X"$ac_dest" : 'X\(//\)$' \| \ +- X"$ac_dest" : 'X\(/\)' \| \ +- . : '\(.\)' 2>/dev/null || ++ X"$ac_dest" : 'X\(//\)[^/]' \| \ ++ X"$ac_dest" : 'X\(//\)$' \| \ ++ X"$ac_dest" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || + echo X"$ac_dest" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` ++ { if $as_mkdir_p; then ++ mkdir -p "$ac_dir" ++ else ++ as_dir="$ac_dir" ++ as_dirs= ++ while test ! -d "$as_dir"; do ++ as_dirs="$as_dir $as_dirs" ++ as_dir=`(dirname "$as_dir") 2>/dev/null || ++$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$as_dir" : 'X\(//\)[^/]' \| \ ++ X"$as_dir" : 'X\(//\)$' \| \ ++ X"$as_dir" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || ++echo X"$as_dir" | ++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } ++ /^X\(\/\/\)[^/].*/{ s//\1/; q; } ++ /^X\(\/\/\)$/{ s//\1/; q; } ++ /^X\(\/\).*/{ s//\1/; q; } ++ s/.*/./; q'` ++ done ++ test ! -n "$as_dirs" || mkdir $as_dirs ++ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 ++echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} ++ { (exit 1); exit 1; }; }; } ++ + ac_builddir=. + + if test "$ac_dir" != .; then +@@ -84680,12 +96288,45 @@ + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; + esac +-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be +-# absolute. +-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` +-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` +-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` +-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` ++ ++# Do not use `cd foo && pwd` to compute absolute paths, because ++# the directories may not exist. ++case `pwd` in ++.) ac_abs_builddir="$ac_dir";; ++*) ++ case "$ac_dir" in ++ .) ac_abs_builddir=`pwd`;; ++ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; ++ *) ac_abs_builddir=`pwd`/"$ac_dir";; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_builddir=${ac_top_builddir}.;; ++*) ++ case ${ac_top_builddir}. in ++ .) ac_abs_top_builddir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; ++ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_srcdir=$ac_srcdir;; ++*) ++ case $ac_srcdir in ++ .) ac_abs_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; ++ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_srcdir=$ac_top_srcdir;; ++*) ++ case $ac_top_srcdir in ++ .) ac_abs_top_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; ++ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; ++ esac;; ++esac + + + { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 +Index: libstdc++-v3/crossconfig.m4 +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/crossconfig.m4,v +retrieving revision 1.11.4.5 +retrieving revision 1.11.4.6 +diff -u -r1.11.4.5 -r1.11.4.6 +--- libstdc++-v3/crossconfig.m4 7 Jul 2004 01:23:49 -0000 1.11.4.5 ++++ libstdc++-v3/crossconfig.m4 1 Feb 2005 06:31:23 -0000 1.11.4.6 +@@ -392,8 +392,13 @@ + AC_DEFINE(HAVE___BUILTIN_SINF) + ;; + esac +- AC_DEFINE(HAVE_STRTOF) +- AC_DEFINE(HAVE_STRTOLD) ++ case "$target" in ++ *-*-solaris2.10) ++ # These two C99 functions are present only in Solaris >= 10 ++ AC_DEFINE(HAVE_STRTOF) ++ AC_DEFINE(HAVE_STRTOLD) ++ ;; ++ esac + AC_DEFINE(HAVE_MMAP) + AC_DEFINE(HAVE_COPYSIGN) + AC_DEFINE(HAVE_ISNAN) +Index: libstdc++-v3/config/linker-map.gnu +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/config/linker-map.gnu,v +retrieving revision 1.52.4.11 +retrieving revision 1.52.4.12 +diff -u -r1.52.4.11 -r1.52.4.12 +--- libstdc++-v3/config/linker-map.gnu 5 Oct 2004 05:42:33 -0000 1.52.4.11 ++++ libstdc++-v3/config/linker-map.gnu 8 Feb 2005 18:44:32 -0000 1.52.4.12 +@@ -102,6 +102,10 @@ + # operator delete[](void*, std::nothrow_t const&) + _ZdaPvRKSt9nothrow_t; + ++ # std::basic_iostream constructors, destructors ++ _ZNSdC*; ++ _ZNSdD*; ++ + # std::locale destructors + _ZNSt6localeD*; + +Index: libstdc++-v3/config/io/basic_file_stdio.cc +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/config/io/basic_file_stdio.cc,v +retrieving revision 1.25.4.6 +retrieving revision 1.25.4.7 +diff -u -r1.25.4.6 -r1.25.4.7 +--- libstdc++-v3/config/io/basic_file_stdio.cc 31 May 2004 21:18:54 -0000 1.25.4.6 ++++ libstdc++-v3/config/io/basic_file_stdio.cc 8 Nov 2004 00:41:14 -0000 1.25.4.7 +@@ -189,10 +189,17 @@ + __basic_file* __ret = NULL; + if (!this->is_open() && __file) + { +- _M_cfile = __file; +- _M_cfile_created = false; +- this->sync(); +- __ret = this; ++ int __err; ++ errno = 0; ++ do ++ __err = this->sync(); ++ while (__err && errno == EINTR); ++ if (!__err) ++ { ++ _M_cfile = __file; ++ _M_cfile_created = false; ++ __ret = this; ++ } + } + return __ret; + } +@@ -252,12 +259,21 @@ + __basic_file* __ret = static_cast<__basic_file*>(NULL); + if (this->is_open()) + { ++ int __err = 0; + if (_M_cfile_created) +- fclose(_M_cfile); +- else +- this->sync(); ++ { ++ // In general, no need to zero errno in advance if checking ++ // for error first. However, C89/C99 (at variance with IEEE ++ // 1003.1, f.i.) do not mandate that fclose must set errno ++ // upon error. ++ errno = 0; ++ do ++ __err = fclose(_M_cfile); ++ while (__err && errno == EINTR); ++ } + _M_cfile = 0; +- __ret = this; ++ if (!__err) ++ __ret = this; + } + return __ret; + } +Index: libstdc++-v3/config/io/c_io_stdio.h +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/config/io/c_io_stdio.h,v +retrieving revision 1.7 +retrieving revision 1.7.10.1 +diff -u -r1.7 -r1.7.10.1 +--- libstdc++-v3/config/io/c_io_stdio.h 16 Oct 2003 22:37:48 -0000 1.7 ++++ libstdc++-v3/config/io/c_io_stdio.h 8 Nov 2004 18:02:00 -0000 1.7.10.1 +@@ -1,6 +1,6 @@ + // underlying io library -*- C++ -*- + +-// Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc. ++// Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the +@@ -43,6 +43,7 @@ + // for basic_file.h + typedef FILE __c_file; + ++ // XXX GLIBCXX_ABI Deprecated + // for ios_base.h + struct __ios_flags + { +Index: libstdc++-v3/config/locale/generic/c_locale.h +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/config/locale/generic/c_locale.h,v +retrieving revision 1.11.10.2 +retrieving revision 1.11.10.3 +diff -u -r1.11.10.2 -r1.11.10.3 +--- libstdc++-v3/config/locale/generic/c_locale.h 16 Aug 2004 16:03:24 -0000 1.11.10.2 ++++ libstdc++-v3/config/locale/generic/c_locale.h 2 Feb 2005 16:46:40 -0000 1.11.10.3 +@@ -59,18 +59,26 @@ + const char* __fmt, + _Tv __v, const __c_locale&, int __prec) + { +- char* __old = std::setlocale(LC_ALL, NULL); +- char* __sav = new char[std::strlen(__old) + 1]; +- std::strcpy(__sav, __old); +- std::setlocale(LC_ALL, "C"); ++ char* __old = std::setlocale(LC_NUMERIC, NULL); ++ char* __sav = NULL; ++ if (std::strcmp(__old, "C")) ++ { ++ __sav = new char[std::strlen(__old) + 1]; ++ std::strcpy(__sav, __old); ++ std::setlocale(LC_NUMERIC, "C"); ++ } + + #ifdef _GLIBCXX_USE_C99 + const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v); + #else + const int __ret = std::sprintf(__out, __fmt, __prec, __v); + #endif +- std::setlocale(LC_ALL, __sav); +- delete [] __sav; ++ ++ if (__sav) ++ { ++ std::setlocale(LC_NUMERIC, __sav); ++ delete [] __sav; ++ } + return __ret; + } + } +Index: libstdc++-v3/config/locale/ieee_1003.1-2001/codecvt_specializations.h +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/config/locale/ieee_1003.1-2001/Attic/codecvt_specializations.h,v +retrieving revision 1.11.10.2 +retrieving revision 1.11.10.3 +diff -u -r1.11.10.2 -r1.11.10.3 +--- libstdc++-v3/config/locale/ieee_1003.1-2001/codecvt_specializations.h 30 Mar 2004 19:09:40 -0000 1.11.10.2 ++++ libstdc++-v3/config/locale/ieee_1003.1-2001/codecvt_specializations.h 6 Dec 2004 16:18:35 -0000 1.11.10.3 +@@ -281,7 +281,6 @@ + result __ret = codecvt_base::error; + if (__state._M_good()) + { +- typedef state_type::__desc_type __desc_type; + const __desc_type* __desc = __state._M_get_out_descriptor(); + const size_t __fmultiple = sizeof(intern_type); + size_t __fbytes = __fmultiple * (__from_end - __from); +@@ -303,7 +302,8 @@ + if (__int_bom) + { + size_t __size = __from_end - __from; +- intern_type* __cfixed = static_cast(__builtin_alloca(sizeof(intern_type) * (__size + 1))); ++ intern_type* __cfixed = static_cast ++ (__builtin_alloca(sizeof(intern_type) * (__size + 1))); + __cfixed[0] = static_cast(__int_bom); + char_traits::copy(__cfixed + 1, __from, __size); + __cfrom = reinterpret_cast(__cfixed); +@@ -348,7 +348,6 @@ + result __ret = codecvt_base::error; + if (__state._M_good()) + { +- typedef state_type::__desc_type __desc_type; + const __desc_type* __desc = __state._M_get_in_descriptor(); + const size_t __tmultiple = sizeof(intern_type); + size_t __tlen = __tmultiple * (__to_end - __to); +@@ -386,7 +385,6 @@ + result __ret = codecvt_base::error; + if (__state._M_good()) + { +- typedef state_type::__desc_type __desc_type; + const __desc_type* __desc = __state._M_get_in_descriptor(); + const size_t __fmultiple = sizeof(extern_type); + size_t __flen = __fmultiple * (__from_end - __from); +@@ -408,7 +406,8 @@ + if (__ext_bom) + { + size_t __size = __from_end - __from; +- extern_type* __cfixed = static_cast(__builtin_alloca(sizeof(extern_type) * (__size + 1))); ++ extern_type* __cfixed = static_cast ++ (__builtin_alloca(sizeof(extern_type) * (__size + 1))); + __cfixed[0] = static_cast(__ext_bom); + char_traits::copy(__cfixed + 1, __from, __size); + __cfrom = reinterpret_cast(__cfixed); +Index: libstdc++-v3/docs/html/documentation.html +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/docs/html/documentation.html,v +retrieving revision 1.39.4.3 +retrieving revision 1.39.4.4 +diff -u -r1.39.4.3 -r1.39.4.4 +--- libstdc++-v3/docs/html/documentation.html 30 May 2004 16:12:09 -0000 1.39.4.3 ++++ libstdc++-v3/docs/html/documentation.html 24 Nov 2004 18:19:51 -0000 1.39.4.4 +@@ -229,7 +229,7 @@ +
  1. __mt_alloc
  2. +
  3. Compile-time checks
  4. +
  5. LWG Issues
  6. +-
  7. Demangling
  8. ++
  9. Demangling
  10. + + + +Index: libstdc++-v3/docs/html/19_diagnostics/howto.html +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/docs/html/19_diagnostics/howto.html,v +retrieving revision 1.21.4.1 +retrieving revision 1.21.4.2 +diff -u -r1.21.4.1 -r1.21.4.2 +--- libstdc++-v3/docs/html/19_diagnostics/howto.html 18 Mar 2004 17:36:38 -0000 1.21.4.1 ++++ libstdc++-v3/docs/html/19_diagnostics/howto.html 16 Nov 2004 12:42:54 -0000 1.21.4.2 +@@ -110,11 +110,14 @@ + object file. The checks are also cleaner and easier to read and + understand. +

    +-

    For GCC 3.0 and 3.1 they are off by default. They can be enabled at +- configure time with ++

    They are off by default for all versions of GCC from 3.0 to 3.4 (the ++ latest release at the time of writing). ++ They can be enabled at configure time with + --enable-concept-checks. +- For 3.1 you can instead #define _GLIBCPP_CONCEPT_CHECKS to enable them +- on a per-translation-unit basis. ++ You can enable them on a per-translation-unit basis with ++ #define _GLIBCXX_CONCEPT_CHECKS for GCC 3.4 and higher ++ (or with #define _GLIBCPP_CONCEPT_CHECKS for versions ++ 3.1, 3.2 and 3.3). +

    +

    Return to top of page or + to the FAQ. +Index: libstdc++-v3/docs/html/ext/howto.html +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/docs/html/ext/howto.html,v +retrieving revision 1.42.4.7 +retrieving revision 1.42.4.8 +diff -u -r1.42.4.7 -r1.42.4.8 +--- libstdc++-v3/docs/html/ext/howto.html 5 Oct 2004 19:49:58 -0000 1.42.4.7 ++++ libstdc++-v3/docs/html/ext/howto.html 24 Nov 2004 18:19:50 -0000 1.42.4.8 +@@ -53,7 +53,7 @@ +

  11. __mt_alloc
  12. +
  13. Compile-time checks
  14. +
  15. LWG Issues
  16. +-
  17. Demangling
  18. ++
  19. Demangling
  20. + + +
    +Index: libstdc++-v3/include/bits/c++config +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/include/bits/c++config,v +retrieving revision 1.982.2.294 +retrieving revision 1.982.2.386 +diff -u -r1.982.2.294 -r1.982.2.386 +--- libstdc++-v3/include/bits/c++config 5 Nov 2004 00:16:35 -0000 1.982.2.294 ++++ libstdc++-v3/include/bits/c++config 9 Feb 2005 00:16:09 -0000 1.982.2.386 +@@ -35,7 +35,7 @@ + #include + + // The current version of the C++ library in compressed ISO date format. +-#define __GLIBCXX__ 20041105 ++#define __GLIBCXX__ 20050209 + + // Allow use of "export template." This is currently not a feature + // that g++ supports. +Index: libstdc++-v3/include/bits/fstream.tcc +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/include/bits/fstream.tcc,v +retrieving revision 1.116.4.7 +retrieving revision 1.116.4.8 +diff -u -r1.116.4.7 -r1.116.4.8 +--- libstdc++-v3/include/bits/fstream.tcc 19 Sep 2004 11:26:46 -0000 1.116.4.7 ++++ libstdc++-v3/include/bits/fstream.tcc 8 Nov 2004 00:41:15 -0000 1.116.4.8 +@@ -396,8 +396,7 @@ + // Convert pending sequence to external representation, + // and output. + if (_M_convert_to_external(this->pbase(), +- this->pptr() - this->pbase()) +- && (!__testeof || !_M_file.sync())) ++ this->pptr() - this->pbase())) + { + _M_set_buffer(0); + __ret = traits_type::not_eof(__c); +@@ -792,7 +791,6 @@ + { + // Make sure that the internal buffer resyncs its idea of + // the file position with the external file. +- // NB: _M_file.sync() will be called within. + int __ret = 0; + if (this->pbase() < this->pptr()) + { +Index: libstdc++-v3/include/bits/ios_base.h +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/include/bits/ios_base.h,v +retrieving revision 1.37.4.2 +retrieving revision 1.37.4.3 +diff -u -r1.37.4.2 -r1.37.4.3 +--- libstdc++-v3/include/bits/ios_base.h 18 Mar 2004 17:36:49 -0000 1.37.4.2 ++++ libstdc++-v3/include/bits/ios_base.h 8 Nov 2004 18:02:00 -0000 1.37.4.3 +@@ -52,7 +52,28 @@ + // as permitted (but not required) in the standard, in order to provide + // better type safety in iostream calls. A side effect is that + // expressions involving them are no longer compile-time constants. +- enum _Ios_Fmtflags { _S_ios_fmtflags_end = 1L << 16 }; ++ enum _Ios_Fmtflags ++ { ++ _S_boolalpha = 1L << 0, ++ _S_dec = 1L << 1, ++ _S_fixed = 1L << 2, ++ _S_hex = 1L << 3, ++ _S_internal = 1L << 4, ++ _S_left = 1L << 5, ++ _S_oct = 1L << 6, ++ _S_right = 1L << 7, ++ _S_scientific = 1L << 8, ++ _S_showbase = 1L << 9, ++ _S_showpoint = 1L << 10, ++ _S_showpos = 1L << 11, ++ _S_skipws = 1L << 12, ++ _S_unitbuf = 1L << 13, ++ _S_uppercase = 1L << 14, ++ _S_adjustfield = _S_left | _S_right | _S_internal, ++ _S_basefield = _S_dec | _S_oct | _S_hex, ++ _S_floatfield = _S_scientific | _S_fixed, ++ _S_ios_fmtflags_end = 1L << 16 ++ }; + + inline _Ios_Fmtflags + operator&(_Ios_Fmtflags __a, _Ios_Fmtflags __b) +@@ -66,15 +87,15 @@ + operator^(_Ios_Fmtflags __a, _Ios_Fmtflags __b) + { return _Ios_Fmtflags(static_cast(__a) ^ static_cast(__b)); } + +- inline _Ios_Fmtflags ++ inline _Ios_Fmtflags& + operator|=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) + { return __a = __a | __b; } + +- inline _Ios_Fmtflags ++ inline _Ios_Fmtflags& + operator&=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) + { return __a = __a & __b; } + +- inline _Ios_Fmtflags ++ inline _Ios_Fmtflags& + operator^=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) + { return __a = __a ^ __b; } + +@@ -83,7 +104,16 @@ + { return _Ios_Fmtflags(~static_cast(__a)); } + + +- enum _Ios_Openmode { _S_ios_openmode_end = 1L << 16 }; ++ enum _Ios_Openmode ++ { ++ _S_app = 1L << 0, ++ _S_ate = 1L << 1, ++ _S_bin = 1L << 2, ++ _S_in = 1L << 3, ++ _S_out = 1L << 4, ++ _S_trunc = 1L << 5, ++ _S_ios_openmode_end = 1L << 16 ++ }; + + inline _Ios_Openmode + operator&(_Ios_Openmode __a, _Ios_Openmode __b) +@@ -97,15 +127,15 @@ + operator^(_Ios_Openmode __a, _Ios_Openmode __b) + { return _Ios_Openmode(static_cast(__a) ^ static_cast(__b)); } + +- inline _Ios_Openmode ++ inline _Ios_Openmode& + operator|=(_Ios_Openmode& __a, _Ios_Openmode __b) + { return __a = __a | __b; } + +- inline _Ios_Openmode ++ inline _Ios_Openmode& + operator&=(_Ios_Openmode& __a, _Ios_Openmode __b) + { return __a = __a & __b; } + +- inline _Ios_Openmode ++ inline _Ios_Openmode& + operator^=(_Ios_Openmode& __a, _Ios_Openmode __b) + { return __a = __a ^ __b; } + +@@ -114,7 +144,14 @@ + { return _Ios_Openmode(~static_cast(__a)); } + + +- enum _Ios_Iostate { _S_ios_iostate_end = 1L << 16 }; ++ enum _Ios_Iostate ++ { ++ _S_goodbit = 0, ++ _S_badbit = 1L << 0, ++ _S_eofbit = 1L << 1, ++ _S_failbit = 1L << 2, ++ _S_ios_iostate_end = 1L << 16 ++ }; + + inline _Ios_Iostate + operator&(_Ios_Iostate __a, _Ios_Iostate __b) +@@ -128,15 +165,15 @@ + operator^(_Ios_Iostate __a, _Ios_Iostate __b) + { return _Ios_Iostate(static_cast(__a) ^ static_cast(__b)); } + +- inline _Ios_Iostate ++ inline _Ios_Iostate& + operator|=(_Ios_Iostate& __a, _Ios_Iostate __b) + { return __a = __a | __b; } + +- inline _Ios_Iostate ++ inline _Ios_Iostate& + operator&=(_Ios_Iostate& __a, _Ios_Iostate __b) + { return __a = __a & __b; } + +- inline _Ios_Iostate ++ inline _Ios_Iostate& + operator^=(_Ios_Iostate& __a, _Ios_Iostate __b) + { return __a = __a ^ __b; } + +@@ -144,7 +181,13 @@ + operator~(_Ios_Iostate __a) + { return _Ios_Iostate(~static_cast(__a)); } + +- enum _Ios_Seekdir { _S_ios_seekdir_end = 1L << 16 }; ++ enum _Ios_Seekdir ++ { ++ _S_beg = 0, ++ _S_cur = SEEK_CUR, ++ _S_end = SEEK_END, ++ _S_ios_seekdir_end = 1L << 16 ++ }; + + // 27.4.2 Class ios_base + /** +Index: libstdc++-v3/include/bits/locale_facets.tcc +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/include/bits/locale_facets.tcc,v +retrieving revision 1.166.2.18 +retrieving revision 1.166.2.19 +diff -u -r1.166.2.18 -r1.166.2.19 +--- libstdc++-v3/include/bits/locale_facets.tcc 13 Sep 2004 23:43:24 -0000 1.166.2.18 ++++ libstdc++-v3/include/bits/locale_facets.tcc 18 Nov 2004 10:50:19 -0000 1.166.2.19 +@@ -2002,8 +2002,7 @@ + for (size_t __i2 = 1; __i2 < __nmatches; ++__i2) + __minlen = std::min(__minlen, + __traits_type::length(__names[__matches[__i2]])); +- ++__pos; +- ++__beg; ++ ++__beg, ++__pos; + if (__pos < __minlen && __beg != __end) + for (size_t __i3 = 0; __i3 < __nmatches;) + { +@@ -2020,8 +2019,7 @@ + if (__nmatches == 1) + { + // Make sure found name is completely extracted. +- ++__pos; +- ++__beg; ++ ++__beg, ++__pos; + __name = __names[__matches[0]]; + const size_t __len = __traits_type::length(__name); + while (__pos < __len && __beg != __end && __name[__pos] == *__beg) +@@ -2094,7 +2092,7 @@ + // __days array with the same index points to a day, and that + // day's abbreviated form. + // NB: Also assumes that an abbreviated name is a subset of the name. +- if (!__err) ++ if (!__err && __beg != __end) + { + size_t __pos = __traits_type::length(__days[__tmpwday]); + __tp._M_days(__days); +@@ -2109,9 +2107,10 @@ + if (__len != __pos) + __err |= ios_base::failbit; + } +- if (!__err) +- __tm->tm_wday = __tmpwday; + } ++ if (!__err) ++ __tm->tm_wday = __tmpwday; ++ + if (__beg == __end) + __err |= ios_base::eofbit; + return __beg; +@@ -2139,7 +2138,7 @@ + // __months array with the same index points to a month, and that + // month's abbreviated form. + // NB: Also assumes that an abbreviated name is a subset of the name. +- if (!__err) ++ if (!__err && __beg != __end) + { + size_t __pos = __traits_type::length(__months[__tmpmon]); + __tp._M_months(__months); +@@ -2154,9 +2153,9 @@ + if (__len != __pos) + __err |= ios_base::failbit; + } +- if (!__err) +- __tm->tm_mon = __tmpmon; + } ++ if (!__err) ++ __tm->tm_mon = __tmpmon; + + if (__beg == __end) + __err |= ios_base::eofbit; +Index: libstdc++-v3/include/bits/stl_algobase.h +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/include/bits/stl_algobase.h,v +retrieving revision 1.27.6.1 +retrieving revision 1.27.6.3 +diff -u -r1.27.6.1 -r1.27.6.3 +--- libstdc++-v3/include/bits/stl_algobase.h 18 Mar 2004 17:36:55 -0000 1.27.6.1 ++++ libstdc++-v3/include/bits/stl_algobase.h 12 Jan 2005 19:52:13 -0000 1.27.6.3 +@@ -1,6 +1,6 @@ + // Bits and pieces used in algorithms -*- C++ -*- + +-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. ++// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the +@@ -617,9 +617,8 @@ + // concept requirements + __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>) + __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>) +- __glibcxx_function_requires(_EqualityComparableConcept< +- typename iterator_traits<_InputIterator1>::value_type>) +- __glibcxx_function_requires(_EqualityComparableConcept< ++ __glibcxx_function_requires(_EqualOpConcept< ++ typename iterator_traits<_InputIterator1>::value_type, + typename iterator_traits<_InputIterator2>::value_type>) + __glibcxx_requires_valid_range(__first1, __last1); + +@@ -747,10 +746,12 @@ + // concept requirements + __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>) + __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>) +- __glibcxx_function_requires(_LessThanComparableConcept< +- typename iterator_traits<_InputIterator1>::value_type>) +- __glibcxx_function_requires(_LessThanComparableConcept< ++ __glibcxx_function_requires(_LessThanOpConcept< ++ typename iterator_traits<_InputIterator1>::value_type, + typename iterator_traits<_InputIterator2>::value_type>) ++ __glibcxx_function_requires(_LessThanOpConcept< ++ typename iterator_traits<_InputIterator2>::value_type, ++ typename iterator_traits<_InputIterator1>::value_type>) + __glibcxx_requires_valid_range(__first1, __last1); + __glibcxx_requires_valid_range(__first2, __last2); + +Index: libstdc++-v3/include/bits/stl_list.h +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/include/bits/stl_list.h,v +retrieving revision 1.34.4.4 +retrieving revision 1.34.4.5 +diff -u -r1.34.4.4 -r1.34.4.5 +--- libstdc++-v3/include/bits/stl_list.h 11 Jun 2004 18:44:58 -0000 1.34.4.4 ++++ libstdc++-v3/include/bits/stl_list.h 21 Jan 2005 16:21:34 -0000 1.34.4.5 +@@ -1,6 +1,6 @@ + // List implementation -*- C++ -*- + +-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. ++// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the +@@ -119,7 +119,8 @@ + typedef _Tp* pointer; + typedef _Tp& reference; + +- _List_iterator() { } ++ _List_iterator() ++ : _M_node() { } + + _List_iterator(_List_node_base* __x) + : _M_node(__x) { } +@@ -195,7 +196,8 @@ + typedef const _Tp* pointer; + typedef const _Tp& reference; + +- _List_const_iterator() { } ++ _List_const_iterator() ++ : _M_node() { } + + _List_const_iterator(const _List_node_base* __x) + : _M_node(__x) { } +Index: libstdc++-v3/include/bits/stl_tree.h +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/include/bits/stl_tree.h,v +retrieving revision 1.30.4.3 +retrieving revision 1.30.4.5 +diff -u -r1.30.4.3 -r1.30.4.5 +--- libstdc++-v3/include/bits/stl_tree.h 30 Mar 2004 21:45:53 -0000 1.30.4.3 ++++ libstdc++-v3/include/bits/stl_tree.h 21 Jan 2005 16:21:37 -0000 1.30.4.5 +@@ -1,6 +1,6 @@ + // RB tree implementation -*- C++ -*- + +-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. ++// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the +@@ -161,7 +161,8 @@ + typedef _Rb_tree_node_base::_Base_ptr _Base_ptr; + typedef _Rb_tree_node<_Tp>* _Link_type; + +- _Rb_tree_iterator() { } ++ _Rb_tree_iterator() ++ : _M_node() { } + + _Rb_tree_iterator(_Link_type __x) + : _M_node(__x) { } +@@ -231,7 +232,8 @@ + typedef _Rb_tree_node_base::_Const_Base_ptr _Base_ptr; + typedef const _Rb_tree_node<_Tp>* _Link_type; + +- _Rb_tree_const_iterator() { } ++ _Rb_tree_const_iterator() ++ : _M_node() { } + + _Rb_tree_const_iterator(_Link_type __x) + : _M_node(__x) { } +@@ -702,7 +704,7 @@ + const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __y) + { + return __x.size() == __y.size() +- && equal(__x.begin(), __x.end(), __y.begin()); ++ && std::equal(__x.begin(), __x.end(), __y.begin()); + } + + template& __x, + const _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>& __y) + { +- return lexicographical_compare(__x.begin(), __x.end(), +- __y.begin(), __y.end()); ++ return std::lexicographical_compare(__x.begin(), __x.end(), ++ __y.begin(), __y.end()); + } + + template:: + erase(iterator __first, iterator __last) + { +- iterator __i(copy(__last, end(), __first)); ++ iterator __i(std::copy(__last, end(), __first)); + std::_Destroy(__i, end()); + this->_M_impl._M_finish = this->_M_impl._M_finish - (__last - __first); + return __first; +@@ -143,7 +143,7 @@ + } + else if (size() >= __xlen) + { +- iterator __i(copy(__x.begin(), __x.end(), begin())); ++ iterator __i(std::copy(__x.begin(), __x.end(), begin())); + std::_Destroy(__i, end()); + } + else +@@ -209,7 +209,7 @@ + } + else if (size() >= __len) + { +- iterator __new_finish(copy(__first, __last, this->_M_impl._M_start)); ++ iterator __new_finish(std::copy(__first, __last, this->_M_impl._M_start)); + std::_Destroy(__new_finish, end()); + this->_M_impl._M_finish = __new_finish.base(); + } +Index: libstdc++-v3/include/ext/rope +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/include/ext/rope,v +retrieving revision 1.15.4.3 +retrieving revision 1.15.4.4 +diff -u -r1.15.4.3 -r1.15.4.4 +--- libstdc++-v3/include/ext/rope 18 Jun 2004 10:28:08 -0000 1.15.4.3 ++++ libstdc++-v3/include/ext/rope 16 Jan 2005 22:08:43 -0000 1.15.4.4 +@@ -1,6 +1,6 @@ + // SGI's rope class -*- C++ -*- + +-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. ++// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the +@@ -152,7 +152,7 @@ + sequence_buffer(const sequence_buffer& __x) { + _M_prefix = __x._M_prefix; + _M_buf_count = __x._M_buf_count; +- copy(__x._M_buffer, __x._M_buffer + __x._M_buf_count, _M_buffer); ++ std::copy(__x._M_buffer, __x._M_buffer + __x._M_buf_count, _M_buffer); + } + sequence_buffer(sequence_buffer& __x) { + __x.flush(); +@@ -169,7 +169,7 @@ + sequence_buffer& operator= (const sequence_buffer& __x) { + _M_prefix = __x._M_prefix; + _M_buf_count = __x._M_buf_count; +- copy(__x._M_buffer, __x._M_buffer + __x._M_buf_count, _M_buffer); ++ std::copy(__x._M_buffer, __x._M_buffer + __x._M_buf_count, _M_buffer); + return *this; + } + void push_back(value_type __x) +Index: libstdc++-v3/include/std/std_complex.h +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/include/std/std_complex.h,v +retrieving revision 1.11.4.2 +retrieving revision 1.11.4.3 +diff -u -r1.11.4.2 -r1.11.4.3 +--- libstdc++-v3/include/std/std_complex.h 11 Mar 2004 18:33:36 -0000 1.11.4.2 ++++ libstdc++-v3/include/std/std_complex.h 26 Jan 2005 11:07:32 -0000 1.11.4.3 +@@ -1,6 +1,6 @@ + // The template and inlines for the -*- C++ -*- complex number classes. + +-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 ++// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 + // Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free +@@ -736,9 +736,7 @@ + typedef float value_type; + + complex(float = 0.0f, float = 0.0f); +-#ifdef _GLIBCXX_BUGGY_COMPLEX +- complex(const complex& __z) : _M_value(__z._M_value) { } +-#endif ++ + explicit complex(const complex&); + explicit complex(const complex&); + +@@ -892,10 +890,8 @@ + public: + typedef double value_type; + +- complex(double =0.0, double =0.0); +-#ifdef _GLIBCXX_BUGGY_COMPLEX +- complex(const complex& __z) : _M_value(__z._M_value) { } +-#endif ++ complex(double = 0.0, double = 0.0); ++ + complex(const complex&); + explicit complex(const complex&); + +@@ -1049,9 +1045,7 @@ + typedef long double value_type; + + complex(long double = 0.0L, long double = 0.0L); +-#ifdef _GLIBCXX_BUGGY_COMPLEX +- complex(const complex& __z) : _M_value(__z._M_value) { } +-#endif ++ + complex(const complex&); + complex(const complex&); + +Index: libstdc++-v3/libsupc++/eh_globals.cc +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/libsupc++/eh_globals.cc,v +retrieving revision 1.4.16.1 +retrieving revision 1.4.16.2 +diff -u -r1.4.16.1 -r1.4.16.2 +--- libstdc++-v3/libsupc++/eh_globals.cc 30 Apr 2004 04:20:24 -0000 1.4.16.1 ++++ libstdc++-v3/libsupc++/eh_globals.cc 8 Nov 2004 17:41:19 -0000 1.4.16.2 +@@ -48,7 +48,17 @@ + get_globals_dtor (void *ptr) + { + if (ptr) +- std::free (ptr); ++ { ++ __cxa_exception *exn, *next; ++ exn = ((__cxa_eh_globals *) ptr)->caughtExceptions; ++ while (exn) ++ { ++ next = exn->nextException; ++ _Unwind_DeleteException (&exn->unwindHeader); ++ exn = next; ++ } ++ std::free (ptr); ++ } + } + + static void +Index: libstdc++-v3/src/debug.cc +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/src/debug.cc,v +retrieving revision 1.3.10.4 +retrieving revision 1.3.10.5 +diff -u -r1.3.10.4 -r1.3.10.5 +--- libstdc++-v3/src/debug.cc 13 Aug 2004 16:31:00 -0000 1.3.10.4 ++++ libstdc++-v3/src/debug.cc 8 Nov 2004 21:10:14 -0000 1.3.10.5 +@@ -37,9 +37,15 @@ + #include + #include + #include ++#include + + using namespace std; + ++namespace __gnu_internal ++{ ++ __glibcxx_mutex_define_initialized(iterator_base_mutex); ++} // namespace __gnu_internal ++ + namespace __gnu_debug + { + const char* _S_debug_messages[] = +@@ -188,6 +194,7 @@ + // Attach to the new sequence (if there is one) + if (__seq) + { ++ __gnu_cxx::lock sentry(__gnu_internal::iterator_base_mutex); + _M_sequence = __seq; + _M_version = _M_sequence->_M_version; + _M_prior = 0; +@@ -212,6 +219,7 @@ + _Safe_iterator_base:: + _M_detach() + { ++ __gnu_cxx::lock sentry(__gnu_internal::iterator_base_mutex); + if (_M_sequence) + { + // Remove us from this sequence's list +Index: libstdc++-v3/src/ios.cc +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/src/ios.cc,v +retrieving revision 1.52.4.4 +retrieving revision 1.52.4.5 +diff -u -r1.52.4.4 -r1.52.4.5 +--- libstdc++-v3/src/ios.cc 24 May 2004 20:49:54 -0000 1.52.4.4 ++++ libstdc++-v3/src/ios.cc 8 Nov 2004 18:02:01 -0000 1.52.4.5 +@@ -37,8 +37,9 @@ + #include + + namespace std +-{ +- // Definitions for static const data members of __ios_flags. ++{ ++ // XXX GLIBCXX_ABI Deprecated ++ // Definitions for static const data members of __ios_flags. + const __ios_flags::__int_type __ios_flags::_S_boolalpha; + const __ios_flags::__int_type __ios_flags::_S_dec; + const __ios_flags::__int_type __ios_flags::_S_fixed; +Index: libstdc++-v3/testsuite/testsuite_abi.cc +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/testsuite/testsuite_abi.cc,v +retrieving revision 1.2.2.5 +retrieving revision 1.2.2.6 +diff -u -r1.2.2.5 -r1.2.2.6 +--- libstdc++-v3/testsuite/testsuite_abi.cc 5 Oct 2004 04:59:29 -0000 1.2.2.5 ++++ libstdc++-v3/testsuite/testsuite_abi.cc 23 Dec 2004 21:53:36 -0000 1.2.2.6 +@@ -262,7 +262,7 @@ + { + ostringstream os; + os << "get_symbol failed for symbol " << mangled; +- throw symbol_error(os.str()); ++ __throw_exception_again symbol_error(os.str()); + } + } + +@@ -276,7 +276,7 @@ + sym.print(); + } + catch(...) +- { throw; } ++ { __throw_exception_again; } + } + + void +@@ -419,7 +419,7 @@ + { + ostringstream os; + os << "create_symbols failed for file " << file; +- throw runtime_error(os.str()); ++ __throw_exception_again runtime_error(os.str()); + } + return s; + } +Index: libstdc++-v3/testsuite/testsuite_hooks.cc +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/testsuite/testsuite_hooks.cc,v +retrieving revision 1.19.2.3 +retrieving revision 1.19.2.4 +diff -u -r1.19.2.3 -r1.19.2.4 +--- libstdc++-v3/testsuite/testsuite_hooks.cc 15 May 2004 21:17:59 -0000 1.19.2.3 ++++ libstdc++-v3/testsuite/testsuite_hooks.cc 23 Dec 2004 21:53:36 -0000 1.19.2.4 +@@ -137,7 +137,7 @@ + + std::string w(wanted); + if (w != s) +- throw std::runtime_error(s); ++ __throw_exception_again std::runtime_error(std::string(s)); + } + + +@@ -184,7 +184,8 @@ + VERIFY( preLC_ALL == postLC_ALL ); + } + else +- throw environment_variable(string("LC_ALL for ") + string(name)); ++ __throw_exception_again ++ environment_variable(string("LC_ALL for ") + string(name)); + } + + void +@@ -209,7 +210,8 @@ + setenv(env, oldENV ? oldENV : "", 1); + } + else +- throw environment_variable(string(env) + string(" to ") + string(name)); ++ __throw_exception_again ++ environment_variable(string(env) + string(" to ") + string(name)); + #endif + } + +@@ -220,6 +222,7 @@ + { + return std::locale(name); + } ++#ifdef __EXCEPTIONS + catch (std::runtime_error& ex) + { + // Thrown by generic and gnu implemenation if named locale fails. +@@ -228,6 +231,7 @@ + else + throw; + } ++#endif + } + + int +Index: libstdc++-v3/testsuite/testsuite_hooks.h +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/testsuite/testsuite_hooks.h,v +retrieving revision 1.25.4.4 +retrieving revision 1.25.4.5 +diff -u -r1.25.4.4 -r1.25.4.5 +--- libstdc++-v3/testsuite/testsuite_hooks.h 24 May 2004 18:36:45 -0000 1.25.4.4 ++++ libstdc++-v3/testsuite/testsuite_hooks.h 8 Nov 2004 18:02:02 -0000 1.25.4.5 +@@ -103,6 +103,23 @@ + void + verify_demangle(const char* mangled, const char* wanted); + ++ // 17.3.2.1.2 - Bitmask types [lib.bitmask.types] ++ // bitmask_operators ++ template ++ void ++ bitmask_operators() ++ { ++ bitmask_type a; ++ bitmask_type b; ++ a | b; ++ a & b; ++ a ^ b; ++ ~b; ++ a |= b; // set ++ a &= ~b; // clear ++ a ^= b; ++ } ++ + // Simple callback structure for variable numbers of tests (all with + // same signature). Assume all unit tests are of the signature + // void test01(); +Index: libstdc++-v3/testsuite/testsuite_performance.h +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/testsuite/testsuite_performance.h,v +retrieving revision 1.11.4.2 +retrieving revision 1.11.4.3 +diff -u -r1.11.4.2 -r1.11.4.3 +--- libstdc++-v3/testsuite/testsuite_performance.h 11 Jun 2004 18:44:57 -0000 1.11.4.2 ++++ libstdc++-v3/testsuite/testsuite_performance.h 6 Dec 2004 16:50:44 -0000 1.11.4.3 +@@ -1,7 +1,7 @@ + // -*- C++ -*- + // Testing performance utilities for the C++ library testsuite. + // +-// Copyright (C) 2003 Free Software Foundation, Inc. ++// Copyright (C) 2003, 2004 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the +@@ -56,7 +56,7 @@ + return m; + } + } +-#else ++#elif !defined (__hpux__) + extern "C" + { + struct mallinfo +Index: libstdc++-v3/testsuite/23_containers/map/operators/1_neg.cc +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/testsuite/23_containers/map/operators/1_neg.cc,v +retrieving revision 1.3.4.1 +retrieving revision 1.3.4.2 +diff -u -r1.3.4.1 -r1.3.4.2 +--- libstdc++-v3/testsuite/23_containers/map/operators/1_neg.cc 30 Mar 2004 18:22:17 -0000 1.3.4.1 ++++ libstdc++-v3/testsuite/23_containers/map/operators/1_neg.cc 21 Jan 2005 16:21:38 -0000 1.3.4.2 +@@ -41,5 +41,5 @@ + test &= itr == mapByName.end(); // { dg-error "no" } + } + +-// { dg-error "candidates are" "" { target *-*-* } 209 } +-// { dg-error "candidates are" "" { target *-*-* } 213 } ++// { dg-error "candidates are" "" { target *-*-* } 210 } ++// { dg-error "candidates are" "" { target *-*-* } 214 } +Index: libstdc++-v3/testsuite/23_containers/set/operators/1_neg.cc +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/testsuite/23_containers/set/operators/1_neg.cc,v +retrieving revision 1.3.4.1 +retrieving revision 1.3.4.2 +diff -u -r1.3.4.1 -r1.3.4.2 +--- libstdc++-v3/testsuite/23_containers/set/operators/1_neg.cc 30 Mar 2004 18:22:17 -0000 1.3.4.1 ++++ libstdc++-v3/testsuite/23_containers/set/operators/1_neg.cc 21 Jan 2005 16:21:39 -0000 1.3.4.2 +@@ -39,6 +39,5 @@ + test &= itr == setByName.end(); // { dg-error "no" } + } + +-// { dg-error "candidates are" "" { target *-*-* } 282 } +-// { dg-error "candidates are" "" { target *-*-* } 286 } +- ++// { dg-error "candidates are" "" { target *-*-* } 284 } ++// { dg-error "candidates are" "" { target *-*-* } 288 } +Index: libstdc++-v3/testsuite/27_io/ios_base/cons/assign_neg.cc +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/testsuite/27_io/ios_base/cons/assign_neg.cc,v +retrieving revision 1.8.4.1 +retrieving revision 1.8.4.2 +diff -u -r1.8.4.1 -r1.8.4.2 +--- libstdc++-v3/testsuite/27_io/ios_base/cons/assign_neg.cc 18 Mar 2004 17:37:57 -0000 1.8.4.1 ++++ libstdc++-v3/testsuite/27_io/ios_base/cons/assign_neg.cc 8 Nov 2004 18:02:02 -0000 1.8.4.2 +@@ -41,5 +41,5 @@ + io1 = io2; + } + // { dg-error "within this context" "" { target *-*-* } 41 } +-// { dg-error "is private" "" { target *-*-* } 741 } ++// { dg-error "is private" "" { target *-*-* } 784 } + // { dg-error "operator=" "" { target *-*-* } 0 } +Index: libstdc++-v3/testsuite/27_io/ios_base/cons/copy_neg.cc +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/testsuite/27_io/ios_base/cons/copy_neg.cc,v +retrieving revision 1.8.4.1 +retrieving revision 1.8.4.2 +diff -u -r1.8.4.1 -r1.8.4.2 +--- libstdc++-v3/testsuite/27_io/ios_base/cons/copy_neg.cc 18 Mar 2004 17:37:58 -0000 1.8.4.1 ++++ libstdc++-v3/testsuite/27_io/ios_base/cons/copy_neg.cc 8 Nov 2004 18:02:02 -0000 1.8.4.2 +@@ -41,5 +41,5 @@ + test_base io2 = io1; + } + // { dg-error "within this context" "" { target *-*-* } 41 } +-// { dg-error "is private" "" { target *-*-* } 738 } ++// { dg-error "is private" "" { target *-*-* } 781 } + // { dg-error "copy constructor" "" { target *-*-* } 0 } +Index: libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc +=================================================================== +RCS file: libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc +diff -N libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc 8 Nov 2004 18:02:03 -0000 1.1.4.1 +@@ -0,0 +1,39 @@ ++// { dg-do compile } ++// -*- C++ -*- ++ ++// Copyright (C) 2004 Free Software Foundation, Inc. ++ ++// This library 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. ++ ++// This library 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 this library; see the file COPYING. If not, write to ++// the Free Software Foundation, 59 Temple Place - Suite 330, Boston, ++// MA 02111-1307, USA. ++ ++// As a special exception, you may use this file as part of a free ++// software library without restriction. Specifically, if other files ++// instantiate templates or use macros or inline functions from this ++// file, or you compile this file and link it with other files to ++// produce an executable, this file does not by itself cause the ++// resulting executable to be covered by the GNU General Public ++// License. This exception does not however invalidate any other ++// reasons why the executable file might be covered by the GNU General ++// Public License. ++ ++// Benjamin Kosnik ++ ++#include ++#include ++ ++int main() ++{ ++ __gnu_test::bitmask_operators(); ++}; +Index: libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/case_label.cc +=================================================================== +RCS file: libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/case_label.cc +diff -N libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/case_label.cc +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/case_label.cc 8 Nov 2004 18:02:03 -0000 1.1.4.1 +@@ -0,0 +1,84 @@ ++// { dg-do compile } ++// { dg-options "-Wall" { target *-*-* } } ++// -*- C++ -*- ++ ++// Copyright (C) 2004 Free Software Foundation, Inc. ++ ++// This library 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. ++ ++// This library 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 this library; see the file COPYING. If not, write to ++// the Free Software Foundation, 59 Temple Place - Suite 330, Boston, ++// MA 02111-1307, USA. ++ ++// As a special exception, you may use this file as part of a free ++// software library without restriction. Specifically, if other files ++// instantiate templates or use macros or inline functions from this ++// file, or you compile this file and link it with other files to ++// produce an executable, this file does not by itself cause the ++// resulting executable to be covered by the GNU General Public ++// License. This exception does not however invalidate any other ++// reasons why the executable file might be covered by the GNU General ++// Public License. ++ ++// Benjamin Kosnik ++ ++#include ++ ++// PR libstdc++/17922 ++// -Wall ++typedef std::ios_base::fmtflags bitmask_type; ++ ++void ++case_labels(bitmask_type b) ++{ ++ switch (b) ++ { ++ case std::ios_base::boolalpha: ++ break; ++ case std::ios_base::dec: ++ break; ++ case std::ios_base::fixed: ++ break; ++ case std::ios_base::hex: ++ break; ++ case std::ios_base::internal: ++ break; ++ case std::ios_base::left: ++ break; ++ case std::ios_base::oct: ++ break; ++ case std::ios_base::right: ++ break; ++ case std::ios_base::scientific: ++ break; ++ case std::ios_base::showbase: ++ break; ++ case std::ios_base::showpoint: ++ break; ++ case std::ios_base::showpos: ++ break; ++ case std::ios_base::skipws: ++ break; ++ case std::ios_base::unitbuf: ++ break; ++ case std::ios_base::uppercase: ++ break; ++ case std::ios_base::adjustfield: ++ break; ++ case std::ios_base::basefield: ++ break; ++ case std::ios_base::floatfield: ++ break; ++ case std::_S_ios_fmtflags_end: ++ break; ++ } ++} +Index: libstdc++-v3/testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc +=================================================================== +RCS file: libstdc++-v3/testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc +diff -N libstdc++-v3/testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ libstdc++-v3/testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc 8 Nov 2004 18:02:03 -0000 1.1.4.1 +@@ -0,0 +1,39 @@ ++// { dg-do compile } ++// -*- C++ -*- ++ ++// Copyright (C) 2004 Free Software Foundation, Inc. ++ ++// This library 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. ++ ++// This library 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 this library; see the file COPYING. If not, write to ++// the Free Software Foundation, 59 Temple Place - Suite 330, Boston, ++// MA 02111-1307, USA. ++ ++// As a special exception, you may use this file as part of a free ++// software library without restriction. Specifically, if other files ++// instantiate templates or use macros or inline functions from this ++// file, or you compile this file and link it with other files to ++// produce an executable, this file does not by itself cause the ++// resulting executable to be covered by the GNU General Public ++// License. This exception does not however invalidate any other ++// reasons why the executable file might be covered by the GNU General ++// Public License. ++ ++// Benjamin Kosnik ++ ++#include ++#include ++ ++int main() ++{ ++ __gnu_test::bitmask_operators(); ++}; +Index: libstdc++-v3/testsuite/27_io/ios_base/types/iostate/case_label.cc +=================================================================== +RCS file: libstdc++-v3/testsuite/27_io/ios_base/types/iostate/case_label.cc +diff -N libstdc++-v3/testsuite/27_io/ios_base/types/iostate/case_label.cc +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ libstdc++-v3/testsuite/27_io/ios_base/types/iostate/case_label.cc 8 Nov 2004 18:02:03 -0000 1.1.4.1 +@@ -0,0 +1,56 @@ ++// { dg-do compile } ++// { dg-options "-Wall" { target *-*-* } } ++// -*- C++ -*- ++ ++// Copyright (C) 2004 Free Software Foundation, Inc. ++ ++// This library 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. ++ ++// This library 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 this library; see the file COPYING. If not, write to ++// the Free Software Foundation, 59 Temple Place - Suite 330, Boston, ++// MA 02111-1307, USA. ++ ++// As a special exception, you may use this file as part of a free ++// software library without restriction. Specifically, if other files ++// instantiate templates or use macros or inline functions from this ++// file, or you compile this file and link it with other files to ++// produce an executable, this file does not by itself cause the ++// resulting executable to be covered by the GNU General Public ++// License. This exception does not however invalidate any other ++// reasons why the executable file might be covered by the GNU General ++// Public License. ++ ++// Benjamin Kosnik ++ ++#include ++ ++// PR libstdc++/17922 ++// -Wall ++typedef std::ios_base::iostate bitmask_type; ++ ++void ++case_labels(bitmask_type b) ++{ ++ switch (b) ++ { ++ case std::ios_base::goodbit: ++ break; ++ case std::ios_base::badbit: ++ break; ++ case std::ios_base::eofbit: ++ break; ++ case std::ios_base::failbit: ++ break; ++ case std::_S_ios_iostate_end: ++ break; ++ } ++} +Index: libstdc++-v3/testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc +=================================================================== +RCS file: libstdc++-v3/testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc +diff -N libstdc++-v3/testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ libstdc++-v3/testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc 8 Nov 2004 18:02:03 -0000 1.1.4.1 +@@ -0,0 +1,39 @@ ++// { dg-do compile } ++// -*- C++ -*- ++ ++// Copyright (C) 2004 Free Software Foundation, Inc. ++ ++// This library 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. ++ ++// This library 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 this library; see the file COPYING. If not, write to ++// the Free Software Foundation, 59 Temple Place - Suite 330, Boston, ++// MA 02111-1307, USA. ++ ++// As a special exception, you may use this file as part of a free ++// software library without restriction. Specifically, if other files ++// instantiate templates or use macros or inline functions from this ++// file, or you compile this file and link it with other files to ++// produce an executable, this file does not by itself cause the ++// resulting executable to be covered by the GNU General Public ++// License. This exception does not however invalidate any other ++// reasons why the executable file might be covered by the GNU General ++// Public License. ++ ++// Benjamin Kosnik ++ ++#include ++#include ++ ++int main() ++{ ++ __gnu_test::bitmask_operators(); ++}; +Index: libstdc++-v3/testsuite/27_io/ios_base/types/openmode/case_label.cc +=================================================================== +RCS file: libstdc++-v3/testsuite/27_io/ios_base/types/openmode/case_label.cc +diff -N libstdc++-v3/testsuite/27_io/ios_base/types/openmode/case_label.cc +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ libstdc++-v3/testsuite/27_io/ios_base/types/openmode/case_label.cc 8 Nov 2004 18:02:03 -0000 1.1.4.1 +@@ -0,0 +1,60 @@ ++// { dg-do compile } ++// { dg-options "-Wall" { target *-*-* } } ++// -*- C++ -*- ++ ++// Copyright (C) 2004 Free Software Foundation, Inc. ++ ++// This library 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. ++ ++// This library 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 this library; see the file COPYING. If not, write to ++// the Free Software Foundation, 59 Temple Place - Suite 330, Boston, ++// MA 02111-1307, USA. ++ ++// As a special exception, you may use this file as part of a free ++// software library without restriction. Specifically, if other files ++// instantiate templates or use macros or inline functions from this ++// file, or you compile this file and link it with other files to ++// produce an executable, this file does not by itself cause the ++// resulting executable to be covered by the GNU General Public ++// License. This exception does not however invalidate any other ++// reasons why the executable file might be covered by the GNU General ++// Public License. ++ ++// Benjamin Kosnik ++ ++#include ++ ++// PR libstdc++/17922 ++// -Wall ++typedef std::ios_base::openmode bitmask_type; ++ ++void ++case_labels(bitmask_type b) ++{ ++ switch (b) ++ { ++ case std::ios_base::app: ++ break; ++ case std::ios_base::ate: ++ break; ++ case std::ios_base::binary: ++ break; ++ case std::ios_base::in: ++ break; ++ case std::ios_base::out: ++ break; ++ case std::ios_base::trunc: ++ break; ++ case std::_S_ios_openmode_end: ++ break; ++ } ++} +Index: libstdc++-v3/testsuite/27_io/ios_base/types/seekdir/case_label.cc +=================================================================== +RCS file: libstdc++-v3/testsuite/27_io/ios_base/types/seekdir/case_label.cc +diff -N libstdc++-v3/testsuite/27_io/ios_base/types/seekdir/case_label.cc +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ libstdc++-v3/testsuite/27_io/ios_base/types/seekdir/case_label.cc 8 Nov 2004 18:02:04 -0000 1.1.4.1 +@@ -0,0 +1,54 @@ ++// { dg-do compile } ++// { dg-options "-Wall" { target *-*-* } } ++// -*- C++ -*- ++ ++// Copyright (C) 2004 Free Software Foundation, Inc. ++ ++// This library 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. ++ ++// This library 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 this library; see the file COPYING. If not, write to ++// the Free Software Foundation, 59 Temple Place - Suite 330, Boston, ++// MA 02111-1307, USA. ++ ++// As a special exception, you may use this file as part of a free ++// software library without restriction. Specifically, if other files ++// instantiate templates or use macros or inline functions from this ++// file, or you compile this file and link it with other files to ++// produce an executable, this file does not by itself cause the ++// resulting executable to be covered by the GNU General Public ++// License. This exception does not however invalidate any other ++// reasons why the executable file might be covered by the GNU General ++// Public License. ++ ++// Benjamin Kosnik ++ ++#include ++ ++// PR libstdc++/17922 ++// -Wall ++typedef std::ios_base::seekdir test_type; ++ ++void ++case_labels(test_type b) ++{ ++ switch (b) ++ { ++ case std::ios_base::beg: ++ break; ++ case std::ios_base::cur: ++ break; ++ case std::ios_base::end: ++ break; ++ case std::_S_ios_fmtflags_end: ++ break; ++ } ++} +Index: libstdc++-v3/testsuite/ext/enc_filebuf/char/13189.cc +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/testsuite/ext/enc_filebuf/char/13189.cc,v +retrieving revision 1.2.10.2 +retrieving revision 1.2.10.3 +diff -u -r1.2.10.2 -r1.2.10.3 +--- libstdc++-v3/testsuite/ext/enc_filebuf/char/13189.cc 18 Mar 2004 17:38:08 -0000 1.2.10.2 ++++ libstdc++-v3/testsuite/ext/enc_filebuf/char/13189.cc 1 Jan 2005 23:18:46 -0000 1.2.10.3 +@@ -1,4 +1,4 @@ +-// Copyright (C) 2003, 2004 Free Software Foundation ++// Copyright (C) 2003, 2004, 2005 Free Software Foundation + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the +@@ -16,10 +16,10 @@ + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + ++#include + #ifdef _GLIBCXX_USE___ENC_TRAITS + #include + #endif +-#include + + void test01() + { +Index: libstdc++-v3/testsuite/ext/enc_filebuf/wchar_t/13189.cc +=================================================================== +RCS file: /cvs/gcc/gcc/libstdc++-v3/testsuite/ext/enc_filebuf/wchar_t/13189.cc,v +retrieving revision 1.2.10.2 +retrieving revision 1.2.10.3 +diff -u -r1.2.10.2 -r1.2.10.3 +--- libstdc++-v3/testsuite/ext/enc_filebuf/wchar_t/13189.cc 18 Mar 2004 17:38:09 -0000 1.2.10.2 ++++ libstdc++-v3/testsuite/ext/enc_filebuf/wchar_t/13189.cc 1 Jan 2005 23:18:47 -0000 1.2.10.3 +@@ -1,4 +1,4 @@ +-// Copyright (C) 2003, 2004 Free Software Foundation ++// Copyright (C) 2003, 2004, 2005 Free Software Foundation + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the +@@ -16,10 +16,10 @@ + // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, + // USA. + ++#include + #ifdef _GLIBCXX_USE___ENC_TRAITS + #include + #endif +-#include + + void test01() + { +Index: libstdc++-v3/testsuite/ext/rope/4.cc +=================================================================== +RCS file: libstdc++-v3/testsuite/ext/rope/4.cc +diff -N libstdc++-v3/testsuite/ext/rope/4.cc +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ libstdc++-v3/testsuite/ext/rope/4.cc 16 Jan 2005 22:08:43 -0000 1.1.2.1 +@@ -0,0 +1,40 @@ ++// Copyright (C) 2005 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library 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. ++ ++// This library 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 this library; see the file COPYING. If not, write to the Free ++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ++// USA. ++ ++// sequence_buffer (SGI extension) ++ ++#include ++#include ++#include ++ ++void test01() ++{ ++ bool test __attribute__((unused)) = true; ++ ++ __gnu_cxx::crope r1("wibble"); ++ __gnu_cxx::crope r2; ++ std::copy( r1.begin(), r1.end(), ++ __gnu_cxx::sequence_buffer<__gnu_cxx::crope>(r2) ); ++ VERIFY( r1 == r2 ); ++} ++ ++int main() ++{ ++ test01(); ++ return 0; ++} +Index: libstdc++-v3/testsuite/thread/18185.cc +=================================================================== +RCS file: libstdc++-v3/testsuite/thread/18185.cc +diff -N libstdc++-v3/testsuite/thread/18185.cc +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ libstdc++-v3/testsuite/thread/18185.cc 8 Nov 2004 17:41:20 -0000 1.1.4.1 +@@ -0,0 +1,53 @@ ++// ++// Copyright (C) 2004 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library 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. ++// ++// This library 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 this library; see the file COPYING. If not, write to the Free ++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ++// USA. ++ ++// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* } } ++// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* } } ++// { dg-options "-pthreads" { target *-*-solaris* } } ++ ++#include ++#include ++#include ++ ++static void * ++foo (void *p) ++{ ++ typedef std::char_traits traits_type; ++ typedef __gnu_cxx::new_allocator allocator_type; ++ typedef std::basic_string string_type; ++ try ++ { ++ throw string_type("leak"); ++ } ++ catch (const string_type&) ++ { ++ pthread_exit (0); ++ } ++} ++ ++// c++/18185 ++// This used to leak memory. ++int ++main () ++{ ++ pthread_t t; ++ int j = pthread_create (&t, 0, foo, 0); ++ int i = pthread_join (t, 0); ++ return 0; ++} +Index: maintainer-scripts/ChangeLog +=================================================================== +RCS file: /cvs/gcc/gcc/maintainer-scripts/ChangeLog,v +retrieving revision 1.88.4.9 +retrieving revision 1.88.4.10 +diff -u -r1.88.4.9 -r1.88.4.10 +--- maintainer-scripts/ChangeLog 5 Nov 2004 03:34:55 -0000 1.88.4.9 ++++ maintainer-scripts/ChangeLog 10 Nov 2004 20:17:33 -0000 1.88.4.10 +@@ -1,3 +1,7 @@ ++2004-11-10 Mark Mitchell ++ ++ * gcc_release: Check "-p" argument more carefully. ++ + 2004-11-04 Release Manager + + * GCC 3.4.3 released. +Index: maintainer-scripts/gcc_release +=================================================================== +RCS file: /cvs/gcc/gcc/maintainer-scripts/gcc_release,v +retrieving revision 1.44.8.5 +retrieving revision 1.44.8.6 +diff -u -r1.44.8.5 -r1.44.8.6 +--- maintainer-scripts/gcc_release 21 May 2004 13:07:43 -0000 1.44.8.5 ++++ maintainer-scripts/gcc_release 10 Nov 2004 20:17:33 -0000 1.44.8.6 +@@ -535,7 +535,7 @@ + FTP_PATH=~ftp/pub/gcc + PATH=~:/usr/local/bin:$PATH;; + p) OLD_TARS="${OLD_TARS} ${OPTARG}" +- if [ -d ${OPTARG} ]; then ++ if [ ! -f ${OPTARG} ]; then + error "-p argument must name a tarball" + fi;; + \?) usage;; --- gcc-3.4-3.4.3.orig/debian/patches/pr19311.dpatch +++ gcc-3.4-3.4.3/debian/patches/pr19311.dpatch @@ -0,0 +1,219 @@ +#! /bin/sh -e + +# DP: Proposed patch to fix PR19311 + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +From: Kriang Lerdsuwanakij +Sender: gcc-patches-owner@gcc.gnu.org +To: Mark Mitchell +Cc: gcc-patches@gcc.gnu.org +Subject: Re: [C++ PATCH for 3.4/4.0] Fix PR19311 (ICE overload resolution + for pmf function argument) +Date: Thu, 20 Jan 2005 21:57:23 +0700 + +Mark Mitchell wrote: + +> Kriang Lerdsuwanakij wrote: +> +>> Hi +>> +>> These patches fix PR19311 regression in 3.4/4.0. Function overloading +>> logic for pointer-to-member function argument fails to deal with +>> NON_DEPENDENT_EXPR and produces ICE. +>> +>> The regression was caused by my work to build non-dependent SCOPE_REF. +>> The intention was to have enough type to catch invalid usage of pmf +>> during parsing rather than during instantiation. The SCOPE_REF tree +>> was used to also allow access checking when the template is +>> instantiated. +>> However access checking of non-dependent SCOPE_REF has been broken +>> for quite a long time (see PR16617). +> +> +>> The patch for 4.0 has one additional hunk for unary_complex_lvalue. +> +> +> I don't understand that hunk; why do we need to make the +> transformations in unary_complex_lvalue when in a template? +> +> After your patch, do we ever still set PTRMEM_OK_P on an ADDR_EXPR? +> If not, you need to update PTRMEM_OK_P and the documentation for it. +> +> Other than that, the patch looks OK to me. If you can answer the +> questions above, I'll approve the patch. +> +I believe the condition type_dependent_expression_p I put inside +unary_complex_lvalue is safe since only the type information is used +for operator overloading which can affect the transformation result. +About PTRMEM_OK_P, it is still set inside build_x_unary_op. + +I have an alternate version in the attachment, applicable to 3.4 and +mainline in case you prefer this one. In this version, rather than +changing unary_complex_lvalue, I change its caller, build_unary_op, +to deal with ADDR_EXPR to OFFSET_REF in template. PTRMEM_OK_P is also +correctly set. It's tested, no regression. + +--Kriang + + +2005-01-?? Kriang Lerdsuwanakij + + PR c++/19311 + * init.c (build_offset_ref): Don't build non-dependent SCOPE_REF. + * pt.c (build_non_dependent_expr): Don't build NON_DEPENDENT_EXPR + for OFFSET_TYPE. + * typeck.c (build_x_unary_op): Don't build non-dependent SCOPE_REF. + Also set PTRMEM_OK_P for NON_DEPENDENT_EXPR. + (build_unary_op): Handle building ADDR_EXPR of OFFSET_REF inside + template. + +2005-01-?? Kriang Lerdsuwanakij + + PR c++/19311 + * g++.dg/template/non-dependent11.C: New test. + + + +--- gcc/cp/init.c.orig 2005-03-03 10:40:41.416552896 +0100 ++++ gcc/cp/init.c 2005-03-03 10:57:13.280777512 +0100 +@@ -1462,14 +1462,6 @@ + return error_mark_node; + } + +- if (processing_template_decl) +- { +- if (TREE_CODE (orig_name) == TEMPLATE_ID_EXPR) +- return build_min (SCOPE_REF, TREE_TYPE (member), type, orig_name); +- else +- return build_min (SCOPE_REF, TREE_TYPE (member), type, name); +- } +- + if (TREE_CODE (member) == TYPE_DECL) + { + TREE_USED (member) = 1; +--- gcc/cp/pt.c.orig 2005-03-03 10:40:41.458546512 +0100 ++++ gcc/cp/pt.c 2005-03-03 10:57:13.318771736 +0100 +@@ -12279,7 +12279,8 @@ + if (TREE_CODE (inner_expr) == OVERLOAD + || TREE_CODE (inner_expr) == FUNCTION_DECL + || TREE_CODE (inner_expr) == TEMPLATE_DECL +- || TREE_CODE (inner_expr) == TEMPLATE_ID_EXPR) ++ || TREE_CODE (inner_expr) == TEMPLATE_ID_EXPR ++ || TREE_CODE (inner_expr) == OFFSET_REF) + return expr; + /* Preserve string constants; conversions from string constants to + "char *" are allowed, even though normally a "const char *" +--- gcc/cp/typeck.c.orig 2004-08-02 03:56:29.000000000 +0200 ++++ gcc/cp/typeck.c 2005-03-03 10:59:43.170990736 +0100 +@@ -3549,23 +3549,6 @@ + if (type_dependent_expression_p (xarg)) + return build_min_nt (code, xarg, NULL_TREE); + +- /* For non-dependent pointer-to-member, the SCOPE_REF will be +- processed during template substitution. Just compute the +- right type here and build an ADDR_EXPR around it for +- diagnostics. */ +- if (code == ADDR_EXPR && TREE_CODE (xarg) == SCOPE_REF) +- { +- tree type; +- if (TREE_TYPE (xarg) == unknown_type_node) +- type = unknown_type_node; +- else if (TREE_CODE (TREE_TYPE (xarg)) == FUNCTION_TYPE) +- type = build_pointer_type (TREE_TYPE (xarg)); +- else +- type = build_ptrmem_type (TREE_OPERAND (xarg, 0), +- TREE_TYPE (xarg)); +- return build_min (code, type, xarg, NULL_TREE); +- } +- + xarg = build_non_dependent_expr (xarg); + } + +@@ -3627,13 +3610,13 @@ + else if (TREE_CODE (xarg) == TARGET_EXPR) + warning ("taking address of temporary"); + exp = build_unary_op (ADDR_EXPR, xarg, 0); +- if (TREE_CODE (exp) == ADDR_EXPR) +- PTRMEM_OK_P (exp) = ptrmem; + } + + if (processing_template_decl && exp != error_mark_node) +- return build_min_non_dep (code, exp, orig_expr, +- /*For {PRE,POST}{INC,DEC}REMENT_EXPR*/NULL_TREE); ++ exp = build_min_non_dep (code, exp, orig_expr, ++ /*For {PRE,POST}{INC,DEC}REMENT_EXPR*/NULL_TREE); ++ if (TREE_CODE (exp) == ADDR_EXPR) ++ PTRMEM_OK_P (exp) = ptrmem; + return exp; + } + +@@ -4095,6 +4078,7 @@ + is an error. */ + else if (TREE_CODE (argtype) != FUNCTION_TYPE + && TREE_CODE (argtype) != METHOD_TYPE ++ && TREE_CODE (arg) != OFFSET_REF + && !lvalue_or_else (arg, "unary `&'")) + return error_mark_node; + +@@ -4109,7 +4093,11 @@ + expression so we can just form an ADDR_EXPR with the + correct type. */ + || processing_template_decl) +- addr = build_address (arg); ++ { ++ addr = build_address (arg); ++ if (TREE_CODE (arg) == OFFSET_REF) ++ PTRMEM_OK_P (addr) = PTRMEM_OK_P (arg); ++ } + else if (TREE_CODE (TREE_OPERAND (arg, 1)) == BASELINK) + { + tree fn = BASELINK_FUNCTIONS (TREE_OPERAND (arg, 1)); + + + +diff -cprN gcc-main-save/gcc/testsuite/g++.dg/template/non-dependent11.C gcc-main-new/gcc/testsuite/g++.dg/template/non-dependent11.C +*** gcc-main-save/gcc/testsuite/g++.dg/template/non-dependent11.C Thu Jan 1 07:00:00 1970 +--- gcc-main-new/gcc/testsuite/g++.dg/template/non-dependent11.C Sun Jan 16 23:04:04 2005 +*************** +*** 0 **** +--- 1,18 ---- ++ // { dg-do compile } ++ ++ // Origin: Jakub Jelinek ++ // Wolfgang Bangerth ++ ++ // PR c++/19311: Non-dependent address to member as function argument. ++ ++ template void foo (R (T::*x) ()); ++ template void foo (R (T::*x) (C)); ++ ++ template struct I { ++ int o (); ++ int o () const; ++ }; ++ ++ template void bar (void) { ++ foo > (&I<1>::o); ++ } --- gcc-3.4-3.4.3.orig/debian/patches/libffi-mips.dpatch +++ gcc-3.4-3.4.3/debian/patches/libffi-mips.dpatch @@ -0,0 +1,94 @@ +#! /bin/sh -e + +# DP: libffi mips update + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p1 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p1 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- src/libffi/src/mips/ffi.c.old 2004-05-12 21:41:01.000000000 +0200 ++++ src/libffi/src/mips/ffi.c 2004-05-12 21:42:52.000000000 +0200 +@@ -27,6 +27,7 @@ + #include + + #include ++#include + + #if _MIPS_SIM == _ABIN32 + #define FIX_ARGP \ +@@ -91,7 +92,7 @@ static void ffi_prep_args(char *stack, + FIX_ARGP; + } + +-#if _MIPS_SIM == _ABIO32 ++#if _MIPS_SIM == _MIPS_SIM_ABI32 + #define OFFSET 0 + #else + #define OFFSET sizeof(int) +@@ -145,7 +146,7 @@ static void ffi_prep_args(char *stack, + } + else + { +-#if _MIPS_SIM == _ABIO32 ++#if _MIPS_SIM == _MIPS_SIM_ABI32 + memcpy(argp, *p_argv, z); + #else + { +@@ -266,7 +267,7 @@ ffi_status ffi_prep_cif_machdep(ffi_cif + { + cif->flags = 0; + +-#if _MIPS_SIM == _ABIO32 ++#if _MIPS_SIM == _MIPS_SIM_ABI32 + /* Set the flags necessary for O32 processing */ + + if (cif->rtype->type != FFI_TYPE_STRUCT) +@@ -440,7 +441,7 @@ void ffi_call(ffi_cif *cif, void (*fn)() + + switch (cif->abi) + { +-#if _MIPS_SIM == _ABIO32 ++#if _MIPS_SIM == _MIPS_SIM_ABI32 + case FFI_O32: + ffi_call_O32(ffi_prep_args, &ecif, cif->bytes, + cif->flags, ecif.rvalue, fn); +--- src/libffi/src/mips/ffitarget.h.old 2004-05-12 21:39:33.000000000 +0200 ++++ src/libffi/src/mips/ffitarget.h 2004-05-12 21:40:33.000000000 +0200 +@@ -26,9 +26,7 @@ + #ifndef LIBFFI_TARGET_H + #define LIBFFI_TARGET_H + +-#ifndef LIBFFI_ASM + #include +-#endif + + #if !defined(_MIPS_SIM) + -- something is very wrong -- +@@ -36,7 +34,7 @@ + # if (_MIPS_SIM==_ABIN32 && defined(_ABIN32)) || (_MIPS_SIM==_ABI64 && defined(_ABI64)) + # define FFI_MIPS_N32 + # else +-# if _MIPS_SIM==_ABIO32 && defined(_ABIO32) ++# if _MIPS_SIM==_MIPS_SIM_ABI32 + # define FFI_MIPS_O32 + # else + -- this is an unsupported platform -- --- gcc-3.4-3.4.3.orig/debian/patches/gpc-profiled.dpatch +++ gcc-3.4-3.4.3/debian/patches/gpc-profiled.dpatch @@ -0,0 +1,53 @@ +#! /bin/sh -e + +# DP: Do not build the gpc runtime using -fprofile-generate/-use. + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# append the patch here and adjust the -p? flag in the patch calls. + +--- gcc/p/rts/Makefile.in~ 2004-05-16 17:27:49.000000000 +0200 ++++ gcc/p/rts/Makefile.in 2004-05-16 18:24:47.000000000 +0200 +@@ -33,6 +33,7 @@ + CC=@CC@ + PC=`echo $(CC) | $(GCC2GPC)` + CFLAGS=-O2 ++override CFLAGS := $(shell echo $(CFLAGS) | sed 's/-fprofile[a-z-]*//') + PFLAGS= + AR=@AR@ + AR_FLAGS=rc + +--- gcc/p/Make-lang.in~ 2004-05-16 17:27:49.000000000 +0200 ++++ gcc/p/Make-lang.in 2004-05-16 18:43:14.000000000 +0200 +@@ -1180,6 +1180,10 @@ + $(srcdir)/p/script/mkdir-p stage4/p/rts + -mv $(GPCSTAGESTUFF) stage4/p + -mv $(RTSSTAGESTUFF) stage4/p/rts ++pascal.stageprofile: stageprofile-start ++ -mv p/*$(objext) stageprofile/p ++pascal.stagefeedback: stageprofile-start ++ -mv p/*$(objext) stagefeedback/p + + # Maintenance hooks: + --- gcc-3.4-3.4.3.orig/debian/patches/fastjar-update.dpatch +++ gcc-3.4-3.4.3/debian/patches/fastjar-update.dpatch @@ -0,0 +1,1181 @@ +#! /bin/sh -e + +# DP: Implement fastjar -u (PR 7854). + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +diff -urN fastjar.old/Makefile.am fastjar/Makefile.am +--- fastjar.old/Makefile.am 2004-04-15 01:49:37.000000000 +0200 ++++ fastjar/Makefile.am 2004-05-30 17:30:34.000000000 +0200 +@@ -46,10 +46,11 @@ + LIBIBERTY = ../libiberty/libiberty.a + + bin_PROGRAMS = jar grepjar +-jar_SOURCES = jartool.c dostime.c compress.c pushback.c jartool.h \ +-zipfile.h dostime.h compress.h pushback.h ++jar_SOURCES = jartool.c dostime.c compress.c pushback.c shift.c jartool.h \ ++zipfile.h dostime.h compress.h pushback.h shift.h + jar_LDADD = $(ZLIBS) $(LIBIBERTY) + jar_DEPENDENCIES = $(ZDEPS) $(LIBIBERTY) ++jar_CPPFLAGS = $(AM_CPPFLAGS) -DWITH_SHIFT_DOWN + + grepjar_SOURCES = jargrep.c dostime.c compress.c pushback.c jartool.h \ + zipfile.h dostime.h compress.h pushback.h +diff -urN fastjar.old/Makefile.in fastjar/Makefile.in +--- fastjar.old/Makefile.in 2004-04-19 04:23:04.000000000 +0200 ++++ fastjar/Makefile.in 2004-05-30 17:33:00.000000000 +0200 +@@ -165,11 +165,12 @@ + LIBIBERTY = ../libiberty/libiberty.a + + bin_PROGRAMS = jar grepjar +-jar_SOURCES = jartool.c dostime.c compress.c pushback.c jartool.h \ +-zipfile.h dostime.h compress.h pushback.h ++jar_SOURCES = jartool.c dostime.c compress.c pushback.c shift.c jartool.h \ ++zipfile.h dostime.h compress.h pushback.h shift.h + + jar_LDADD = $(ZLIBS) $(LIBIBERTY) + jar_DEPENDENCIES = $(ZDEPS) $(LIBIBERTY) ++jar_CPPFLAGS = -DWITH_SHIFT_DOWN + + grepjar_SOURCES = jargrep.c dostime.c compress.c pushback.c jartool.h \ + zipfile.h dostime.h compress.h pushback.h +@@ -217,8 +218,9 @@ + compress.$(OBJEXT) pushback.$(OBJEXT) + grepjar_OBJECTS = $(am_grepjar_OBJECTS) + grepjar_LDFLAGS = +-am_jar_OBJECTS = jartool.$(OBJEXT) dostime.$(OBJEXT) compress.$(OBJEXT) \ +- pushback.$(OBJEXT) ++am_jar_OBJECTS = jar-jartool.$(OBJEXT) jar-dostime.$(OBJEXT) \ ++ jar-compress.$(OBJEXT) jar-pushback.$(OBJEXT) \ ++ jar-shift.$(OBJEXT) + jar_OBJECTS = $(am_jar_OBJECTS) + jar_LDFLAGS = + +@@ -329,6 +331,36 @@ + .c.obj: + $(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` + ++jar-jartool.o: jartool.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jar_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jar-jartool.o `test -f 'jartool.c' || echo '$(srcdir)/'`jartool.c ++ ++jar-jartool.obj: jartool.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jar_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jar-jartool.obj `if test -f 'jartool.c'; then $(CYGPATH_W) 'jartool.c'; else $(CYGPATH_W) '$(srcdir)/jartool.c'; fi` ++ ++jar-dostime.o: dostime.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jar_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jar-dostime.o `test -f 'dostime.c' || echo '$(srcdir)/'`dostime.c ++ ++jar-dostime.obj: dostime.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jar_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jar-dostime.obj `if test -f 'dostime.c'; then $(CYGPATH_W) 'dostime.c'; else $(CYGPATH_W) '$(srcdir)/dostime.c'; fi` ++ ++jar-compress.o: compress.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jar_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jar-compress.o `test -f 'compress.c' || echo '$(srcdir)/'`compress.c ++ ++jar-compress.obj: compress.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jar_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jar-compress.obj `if test -f 'compress.c'; then $(CYGPATH_W) 'compress.c'; else $(CYGPATH_W) '$(srcdir)/compress.c'; fi` ++ ++jar-pushback.o: pushback.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jar_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jar-pushback.o `test -f 'pushback.c' || echo '$(srcdir)/'`pushback.c ++ ++jar-pushback.obj: pushback.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jar_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jar-pushback.obj `if test -f 'pushback.c'; then $(CYGPATH_W) 'pushback.c'; else $(CYGPATH_W) '$(srcdir)/pushback.c'; fi` ++ ++jar-shift.o: shift.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jar_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jar-shift.o `test -f 'shift.c' || echo '$(srcdir)/'`shift.c ++ ++jar-shift.obj: shift.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(jar_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o jar-shift.obj `if test -f 'shift.c'; then $(CYGPATH_W) 'shift.c'; else $(CYGPATH_W) '$(srcdir)/shift.c'; fi` ++ + .texi.info: + @rm -f $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9] + $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ +diff -urN fastjar.old/compress.c fastjar/compress.c +--- fastjar.old/compress.c 2002-01-03 05:57:56.000000000 +0100 ++++ fastjar/compress.c 2004-05-30 17:30:34.000000000 +0200 +@@ -74,6 +74,7 @@ + /* + compress.c - code for handling deflation + Copyright (C) 1999 Bryan Burns ++ Copyright (C) 2004 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 +@@ -109,8 +110,12 @@ + #include "jartool.h" + #include "pushback.h" + #include "compress.h" ++#include "shift.h" ++ ++int write_data (int, void *, size_t, struct zipentry *); + + extern int seekable; ++extern off_t end_of_entries; + + static z_stream zs; + +@@ -133,7 +138,36 @@ + } + } + +-int compress_file(int in_fd, int out_fd, struct zipentry *ze){ ++int ++write_data (int fd, void *buf, size_t len, struct zipentry *ze) ++{ ++#ifdef WITH_SHIFT_DOWN ++ struct zipentry *next = NULL; ++ off_t here = lseek (fd, 0, SEEK_CUR); ++ /* ++ * If we are updating and there is not enough space before the next ++ * entry, expand the file. ++ */ ++ if (ze) ++ { ++ next = ze->next_entry; ++ if (next && here + len >= next->offset) ++ { ++ if (shift_down (fd, next->offset, (here + len) - next->offset, next)) ++ { ++ perror ("can't expand file"); ++ exit (1); ++ } ++ } ++ } ++#endif /* WITH_SHIFT_DOWN */ ++ ++ return write (fd, buf, len); ++} ++ ++int compress_file(int in_fd, int out_fd, struct zipentry *ze, ++ struct zipentry *existing) ++{ + Bytef in_buff[RDSZ]; + Bytef out_buff[RDSZ]; + unsigned int rdamt, wramt; +@@ -183,10 +217,11 @@ + /* If the output buffer is full, dump it to disk */ + if(zs.avail_out == 0){ + +- if(write(out_fd, out_buff, RDSZ) != RDSZ){ +- perror("write"); +- exit(1); +- } ++ if (write_data (out_fd, out_buff, RDSZ, existing) != RDSZ) ++ { ++ perror("write"); ++ exit(1); ++ } + + /* clear the output buffer */ + zs.next_out = out_buff; +@@ -201,10 +236,11 @@ + + wramt = RDSZ - zs.avail_out; + +- if(write(out_fd, out_buff, wramt) != (int)wramt){ +- perror("write"); +- exit(1); +- } ++ if (write_data (out_fd, out_buff, wramt, existing) != (int)wramt) ++ { ++ perror("write"); ++ exit(1); ++ } + /* clear the output buffer */ + zs.next_out = out_buff; + zs.avail_out = (uInt)RDSZ; +@@ -215,10 +251,11 @@ + while(deflate(&zs, Z_FINISH) == Z_OK){ + wramt = RDSZ - zs.avail_out; + +- if(write(out_fd, out_buff, wramt) != (int)wramt){ +- perror("write"); +- exit(1); +- } ++ if (write_data (out_fd, out_buff, wramt, existing) != (int)wramt) ++ { ++ perror("write"); ++ exit(1); ++ } + + zs.next_out = out_buff; + zs.avail_out = (uInt)RDSZ; +@@ -228,10 +265,11 @@ + if(zs.avail_out != RDSZ){ + wramt = RDSZ - zs.avail_out; + +- if(write(out_fd, out_buff, wramt) != (int)wramt){ +- perror("write"); +- exit(1); +- } ++ if (write_data (out_fd, out_buff, wramt, existing) != (int)wramt) ++ { ++ perror("write"); ++ exit(1); ++ } + } + + /* update fastjar's entry information */ +diff -urN fastjar.old/compress.h fastjar/compress.h +--- fastjar.old/compress.h 2000-12-14 19:45:35.000000000 +0100 ++++ fastjar/compress.h 2004-05-30 17:30:34.000000000 +0200 +@@ -46,7 +46,7 @@ + void init_compression(void); + + /* Compresses the file specified by in_fd and appends it to out_fd */ +-int compress_file(int in_fd, int out_fd, struct zipentry *ze); ++int compress_file(int, int, struct zipentry *, struct zipentry *); + + /* Frees memory used by compression function */ + void end_compression(void); +diff -urN fastjar.old/fastjar.texi fastjar/fastjar.texi +--- fastjar.old/fastjar.texi 2003-08-13 23:04:12.000000000 +0200 ++++ fastjar/fastjar.texi 2004-05-30 17:32:33.000000000 +0200 +@@ -125,8 +125,7 @@ + Extract named (or all) files from archive. + + @item -u +-Update existing archive. This option is disabled due to bugs (currently +-fails with exit status 1 and does nothing). ++Update existing archive. + + @end table + +diff -urN fastjar.old/jartool.c fastjar/jartool.c +--- fastjar.old/jartool.c 2004-01-07 19:46:04.000000000 +0100 ++++ fastjar/jartool.c 2004-05-30 17:30:34.000000000 +0200 +@@ -1,6 +1,6 @@ + /* + jartool.c - main functions for fastjar utility +- Copyright (C) 2002 Free Software Foundation ++ Copyright (C) 2002, 2004 Free Software Foundation + Copyright (C) 1999, 2000, 2001 Bryan Burns + + This program is free software; you can redistribute it and/or +@@ -238,6 +238,7 @@ + #include "dostime.h" + #include "pushback.h" + #include "compress.h" ++#include "shift.h" + + /* Some systems have mkdir that takes a single argument. */ + #ifdef MKDIR_TAKES_ONE_ARG +@@ -273,15 +274,18 @@ + int consume(pb_file *, int); + int list_jar(int, char**, int); + int extract_jar(int, char**, int); +-int add_file_to_jar(int, int, const char*, struct stat*); +-int add_to_jar(int, const char*); +-int add_to_jar_with_dir(int, const char*, const char*); ++int add_file_to_jar(int, int, const char*, struct stat*, int); ++int add_to_jar(int, const char*, int); ++int add_to_jar_with_dir(int, const char*, const char*, int); + int create_central_header(int); +-int make_manifest(int, const char*); ++int make_manifest(int, const char*, int); ++int read_entries (int); + static void init_args(char **, int); + static char *get_next_arg (void); + static char *jt_strdup (char*); + static void expand_options (int *argcp, char ***argvp); ++static inline struct zipentry *find_entry (const char *); ++static inline int looks_like_dir (const char *); + + /* global variables */ + ub1 file_header[30]; +@@ -305,6 +309,12 @@ + + int number_of_entries; /* number of entries in the linked list */ + ++/* What we go by. */ ++const char *progname; ++ ++/* The offset of the end of the last zip entry. */ ++ub4 end_of_entries; ++ + /* This is used to mark options with no short value. */ + #define LONG_OPT(Num) ((Num) + 128) + +@@ -340,6 +350,8 @@ + int new_argc; + char **new_argv; + ++ progname = argv[0]; ++ + do_compress = TRUE; + verbose = FALSE; + +@@ -418,15 +430,11 @@ + new_argv[new_argc] = NULL; + + if(action == ACTION_NONE){ +- fprintf(stderr, "One of options -{ctxu} must be specified.\n"); ++ fprintf(stderr, "%s: one of options -{ctxu} must be specified.\n", ++ progname); + usage(argv[0]); + } + +- if(action == ACTION_UPDATE){ +- fprintf(stderr, "%s: `-u' mode unimplemented.\n", argv[0]); +- exit(1); +- } +- + /* Verify unsupported combinations and warn of the use of non + standard features */ + if(verbose && use_explicit_list_only) +@@ -435,7 +443,8 @@ + fprintf (stderr, "Warning: using non standard '-@' option\n"); + if(read_names_from_stdin + && (action != ACTION_CREATE && action != ACTION_UPDATE)){ +- fprintf(stderr, "Option '-@' is supported only with '-c' or '-u'.\n"); ++ fprintf(stderr, "%s: option '-@' is supported only with '-c' or '-u'.\n", ++ progname); + usage(argv[0]); + } + +@@ -445,8 +454,8 @@ + jarfd = open(jarfile, O_CREAT | O_BINARY | O_WRONLY | O_TRUNC, 0666); + + if(jarfd < 0){ +- fprintf(stderr, "Error opening %s for writing!\n", jarfile); +- perror(jarfile); ++ fprintf(stderr, "%s: error opening %s for writing: %s\n", progname, ++ jarfile, strerror (errno)); + exit(1); + } + +@@ -470,8 +479,8 @@ + jarfd = open(jarfile, O_RDONLY | O_BINARY); + + if(jarfd < 0){ +- fprintf(stderr, "Error opening %s for reading!\n", jarfile); +- perror(jarfile); ++ fprintf(stderr, "%s: error opening %s for reading: %s\n", progname, ++ jarfile, strerror (errno)); + exit(1); + } + +@@ -484,28 +493,51 @@ + } + } + ++ if (action == ACTION_UPDATE) ++ { ++ if (!jarfile) ++ { ++ fprintf (stderr, "%s: `-u' mode requires a file name\n", ++ argv[0]); ++ exit (1); ++ } ++ ++ if ((jarfd = open (jarfile, O_RDWR | O_BINARY)) < 0) ++ { ++ fprintf (stderr, "Error opening %s for reading!\n", jarfile); ++ perror (jarfile); ++ exit (1); ++ } ++ ++ /* Assert that jarfd is seekable. */ ++ if (lseek (jarfd, 0, SEEK_CUR) == -1) ++ { ++ fprintf (stderr, "%s: %s is not seekable\n", argv[0], jarfile); ++ exit (1); ++ } ++ ++ seekable = TRUE; ++ } ++ + if(action == ACTION_CREATE || action == ACTION_UPDATE){ + const char *arg; + init_headers(); + +- if((action == ACTION_UPDATE) && jarfile) { +- if((jarfd = open(jarfile, O_RDWR | O_BINARY)) < 0) { +- fprintf(stderr, "Error opening %s for reading!\n", jarfile); +- perror(jarfile); +- exit(1); +- } +- } +- + if(do_compress) + init_compression(); +- ++ ++ if (action == ACTION_UPDATE) ++ { ++ if (read_entries (jarfd)) ++ exit (1); ++ } + + /* Add the META-INF/ directory and the manifest */ + if(manifest && mfile) +- make_manifest(jarfd, mfile); +- else if(manifest) +- make_manifest(jarfd, NULL); +- ++ make_manifest(jarfd, mfile, action == ACTION_UPDATE); ++ else if(manifest && action == ACTION_CREATE) ++ make_manifest(jarfd, NULL, FALSE); ++ + init_args (new_argv, 0); + /* now we add the files to the archive */ + while ((arg = get_next_arg ())){ +@@ -514,17 +546,19 @@ + const char *dir_to_change = get_next_arg (); + const char *file_to_add = get_next_arg (); + if (!dir_to_change || !file_to_add) { +- fprintf(stderr, "Error: missing argument for -C.\n"); +- exit(1); +- } +- if (add_to_jar_with_dir(jarfd, dir_to_change, file_to_add)) { +- fprintf(stderr, +- "Error adding %s (in directory %s) to jar archive!\n", +- file_to_add, dir_to_change); ++ fprintf(stderr, "%s: error: missing argument for -C.\n", progname); + exit(1); + } ++ if (add_to_jar_with_dir(jarfd, dir_to_change, file_to_add, ++ action == ACTION_UPDATE)) ++ { ++ fprintf(stderr, ++ "Error adding %s (in directory %s) to jar archive!\n", ++ file_to_add, dir_to_change); ++ exit(1); ++ } + } else { +- if(add_to_jar(jarfd, arg)){ ++ if(add_to_jar(jarfd, arg, action == ACTION_UPDATE)){ + fprintf(stderr, "Error adding %s to jar archive!\n", arg); + exit(1); + } +@@ -533,11 +567,20 @@ + /* de-initialize the compression DS */ + if(do_compress) + end_compression(); ++ ++ if (action == ACTION_UPDATE) ++ lseek (jarfd, end_of_entries, SEEK_SET); + + create_central_header(jarfd); +- +- if (close(jarfd) != 0) { +- fprintf(stderr, "Error closing jar archive!\n"); ++ ++ /* Check if the file shrunk when we updated it. */ ++ if (action == ACTION_UPDATE) ++ ftruncate (jarfd, lseek (jarfd, 0, SEEK_CUR)); ++ ++ if (jarfd != STDIN_FILENO && close(jarfd) != 0) { ++ fprintf(stderr, "%s: error closing jar archive: %s\n", ++ progname, strerror (errno)); ++ exit (1); + } + } else if(action == ACTION_LIST){ + list_jar(jarfd, &new_argv[0], new_argc); +@@ -688,7 +731,175 @@ + number_of_entries++; + } + +-int make_manifest(int jfd, const char *mf_name){ ++static inline struct zipentry * ++find_entry (const char *fname) ++{ ++ struct zipentry *ze; ++ ++ for (ze = ziptail; ze; ze = ze->next_entry) ++ { ++ if (!strcmp (ze->filename, fname)) ++ return ze; ++ } ++ return NULL; ++} ++ ++ ++static inline int ++looks_like_dir (const char *fname) ++{ ++ struct zipentry *ze; ++ size_t len = strlen (fname); ++ ++ for (ze = ziptail; ze; ze = ze->next_entry) ++ { ++ if (strlen (ze->filename) > len ++ && !strncmp (fname, ze->filename, len) ++ && ze->filename[len] == '/') ++ return 1; ++ } ++ return 0; ++} ++ ++ ++/* ++ * Read the zip entries of an existing file, building `ziplist' as we go. ++ */ ++int read_entries (int fd) ++{ ++ struct zipentry *ze; ++ ub1 intbuf[4]; ++ ub1 header[46]; ++ ub2 len; ++ ub2 count, i; ++ off_t offset; ++ ++ if (lseek (fd, -22, SEEK_END) == -1) ++ { ++ fprintf (stderr, "%s: %s: can't seek file\n", progname, jarfile); ++ return 1; ++ } ++ ++ if (read (fd, intbuf, 4) < 4) ++ { ++ perror (progname); ++ return 1; ++ } ++ /* Is there a zipfile comment? */ ++ while (UNPACK_UB4(intbuf, 0) != 0x06054b50) ++ { ++ if (lseek (fd, -5, SEEK_CUR) == -1 || ++ read (fd, intbuf, 4) != 4) ++ { ++ fprintf (stderr, "%s: can't find end of central directory: %s\n", ++ progname, strerror (errno)); ++ return 1; ++ } ++ } ++ ++ /* Skip disk numbers. */ ++ if (lseek (fd, 6, SEEK_CUR) == -1) ++ { ++ perror (progname); ++ return 1; ++ } ++ ++ /* Number of entries in the central directory. */ ++ if (read (fd, intbuf, 2) != 2) ++ { ++ perror (progname); ++ return 1; ++ } ++ count = UNPACK_UB2(intbuf, 0); ++ ++ if (lseek (fd, 4, SEEK_CUR) == -1) ++ { ++ perror (progname); ++ return 1; ++ } ++ ++ /* Offset where the central directory begins. */ ++ if (read (fd, intbuf, 4) != 4) ++ { ++ perror (progname); ++ return 1; ++ } ++ offset = UNPACK_UB4(intbuf, 0); ++ end_of_entries = offset; ++ ++ if (lseek (fd, offset, SEEK_SET) != offset) ++ { ++ perror (progname); ++ return 1; ++ } ++ ++ if (read (fd, header, 46) != 46) ++ { ++ fprintf (stderr, "%s: %s: unexpected end of file\n", ++ progname, jarfile); ++ return 1; ++ } ++ ++ for (i = 0; i < count; i++) ++ { ++ if (UNPACK_UB4(header, 0) != 0x02014b50) ++ { ++ fprintf (stderr, "%s: can't find central directory header\n", ++ progname); ++ return 1; ++ } ++ ze = (struct zipentry *) malloc (sizeof (struct zipentry)); ++ if (!ze) ++ { ++ perror (progname); ++ return 1; ++ } ++ memset (ze, 0, sizeof (struct zipentry)); ++ ze->flags = UNPACK_UB2(header, CEN_FLAGS); ++ ze->mod_time = UNPACK_UB2(header, CEN_MODTIME); ++ ze->mod_date = UNPACK_UB2(header, CEN_MODDATE); ++ ze->crc = UNPACK_UB4(header, CEN_CRC); ++ ze->usize = UNPACK_UB4(header, CEN_USIZE); ++ ze->csize = UNPACK_UB4(header, CEN_CSIZE); ++ ze->offset = UNPACK_UB4(header, CEN_OFFSET); ++ ze->compressed = (header[CEN_COMP] || header[CEN_COMP+1]); ++ len = UNPACK_UB2(header, CEN_FNLEN); ++ ze->filename = (char *) malloc ((len+1) * sizeof (char)); ++ if (!ze->filename) ++ { ++ perror (progname); ++ return 1; ++ } ++ if (read (fd, ze->filename, len) != len) ++ { ++ fprintf (stderr, "%s: %s: unexpected end of file\n", ++ progname, jarfile); ++ return 1; ++ } ++ len = UNPACK_UB4(header, CEN_EFLEN); ++ len += UNPACK_UB4(header, CEN_COMLEN); ++ if (lseek (fd, len, SEEK_CUR) == -1) ++ { ++ perror (progname); ++ return 1; ++ } ++ add_entry (ze); ++ if (i < count - 1) ++ { ++ if (read (fd, header, 46) != 46) ++ { ++ fprintf (stderr, "%s: %s: unexpected end of file\n", ++ progname, jarfile); ++ return 1; ++ } ++ } ++ } ++ ++ lseek (fd, 0, SEEK_SET); ++ return 0; ++} ++ ++int make_manifest(int jfd, const char *mf_name, int updating){ + time_t current_time; + int nlen; /* length of file name */ + int mod_time; /* file modification time */ +@@ -812,7 +1023,7 @@ + exit(1); + } + +- if(add_file_to_jar(jfd, mfd, "META-INF/MANIFEST.MF", &statbuf)){ ++ if(add_file_to_jar(jfd, mfd, "META-INF/MANIFEST.MF", &statbuf, updating)){ + perror("error writing to jar"); + exit(1); + } +@@ -823,9 +1034,16 @@ + } + + /* Implements -C by wrapping add_to_jar. new_dir is the directory +- to switch to. */ ++ to switch to. ++ ++ `updating', if nonzero, will indicate that we are updating an ++ existing file, and will need to take special care. If set, we will ++ also expect that the linked list of zip entries will be filled in ++ with the jar file's current contents. ++ */ + int +-add_to_jar_with_dir (int fd, const char* new_dir, const char* file) ++add_to_jar_with_dir (int fd, const char* new_dir, const char* file, ++ const int updating) + { + int retval; + char old_dir[MAXPATHLEN]; +@@ -837,7 +1055,7 @@ + perror(new_dir); + return 1; + } +- retval=add_to_jar(fd, file); ++ retval=add_to_jar(fd, file, updating); + if (chdir(old_dir) == -1) { + perror(old_dir); + return 1; +@@ -846,11 +1064,13 @@ + } + + int +-add_to_jar (int fd, const char *file) { ++add_to_jar (int fd, const char *file, const int updating) ++{ + struct stat statbuf; + DIR *dir; + struct dirent *de; + zipentry *ze; ++ zipentry *existing = NULL; + int stat_return; + + /* This is a quick compatibility fix -- Simon Weijgers +@@ -917,9 +1137,6 @@ + PACK_UB2(file_header, LOC_FNLEN, nlen); + PACK_UB4(file_header, LOC_MODTIME, mod_time); + +- if(verbose) +- printf("adding: %s (in=%d) (out=%d) (stored 0%%)\n", fullname, 0, 0); +- + ze = (zipentry*)malloc(sizeof(zipentry)); + if(ze == NULL){ + perror("malloc"); +@@ -936,10 +1153,36 @@ + ze->mod_date = (ub2)((mod_time & 0xffff0000) >> 16); + ze->compressed = FALSE; + +- add_entry(ze); ++ if (updating) ++ { ++ if ((existing = find_entry (ze->filename)) != NULL) ++ { ++ if (existing->usize != 0) ++ { ++ /* XXX overwriting non-directory with directory? */ ++ fprintf (stderr, "%s: %s: can't overwrite non-directory with directory\n", ++ progname, fullname); ++ return 1; ++ } ++ } ++ if (lseek (fd, end_of_entries, SEEK_SET) == -1) ++ { ++ fprintf (stderr, "%s %d\n", __FILE__, __LINE__); ++ perror ("lseek"); ++ return 1; ++ } ++ } ++ ++ if (!existing) ++ { ++ add_entry (ze); ++ write (fd, file_header, 30); ++ write (fd, fullname, nlen); ++ end_of_entries = lseek (fd, 0, SEEK_CUR); + +- write(fd, file_header, 30); +- write(fd, fullname, nlen); ++ if (verbose) ++ printf ("adding: %s (in=%d) (out=%d) (stored 0%%)\n", fullname, 0, 0); ++ } + + while(!use_explicit_list_only && (de = readdir(dir)) != NULL){ + if(de->d_name[0] == '.') +@@ -953,7 +1196,7 @@ + + strcpy(t_ptr, de->d_name); + +- if (add_to_jar(fd, fullname)) { ++ if (add_to_jar(fd, fullname, updating)) { + fprintf(stderr, "Error adding file to jar!\n"); + return 1; + } +@@ -971,7 +1214,7 @@ + return 1; + } + +- if(add_file_to_jar(fd, add_fd, file, &statbuf)){ ++ if(add_file_to_jar(fd, add_fd, file, &statbuf, updating)){ + fprintf(stderr, "Error adding file to jar!\n"); + return 1; + } +@@ -982,8 +1225,9 @@ + return 0; + } + +-int add_file_to_jar(int jfd, int ffd, const char *fname, struct stat *statbuf){ +- ++int add_file_to_jar(int jfd, int ffd, const char *fname, struct stat *statbuf, ++ const int updating) ++{ + unsigned short file_name_length; + unsigned long mod_time; + ub1 rd_buff[RDSZ]; +@@ -991,6 +1235,18 @@ + off_t offset = 0; + int rdamt; + struct zipentry *ze; ++ struct zipentry *existing = NULL; ++ ++ if (updating) ++ { ++ existing = find_entry (fname); ++ if (existing && looks_like_dir (fname)) ++ { ++ fprintf (stderr, "%s: %s is a directory in the archive\n", ++ progname, fname); ++ return 1; ++ } ++ } + + mod_time = unix2dostime(&(statbuf->st_mtime)); + file_name_length = strlen(fname); +@@ -1045,13 +1301,29 @@ + + ze->csize = statbuf->st_size; + ze->usize = ze->csize; +- ze->offset = lseek(jfd, 0, SEEK_CUR); ++ ++ if (existing) ++ ze->offset = existing->offset; ++ else if (updating) ++ ze->offset = end_of_entries; ++ else ++ ze->offset = lseek(jfd, 0, SEEK_CUR); ++ + if(do_compress) + ze->compressed = TRUE; + else + ze->compressed = FALSE; +- +- add_entry(ze); ++ ++ if (!existing) ++ add_entry(ze); ++ if (updating && lseek (jfd, ze->offset, SEEK_SET) < 0) ++ { ++ perror ("lseek"); ++ return 1; ++ } ++ ++ /* We can safely write the header here, since it will be the same size ++ as before */ + + /* Write the local header */ + write(jfd, file_header, 30); +@@ -1061,14 +1333,31 @@ + + + if(verbose){ +- printf("adding: %s ", fname); ++ if (existing) ++ printf ("updating: %s ", fname); ++ else ++ printf("adding: %s ", fname); + fflush(stdout); + } + + if(do_compress){ + /* compress the file */ +- compress_file(ffd, jfd, ze); ++ compress_file(ffd, jfd, ze, existing); + } else { ++ /* If we are not writing the last entry, make space for it. */ ++ if (existing && existing->next_entry) ++ { ++ if (ze->usize > existing->usize) ++ { ++ if (shift_down (jfd, existing->next_entry->offset, ++ ze->usize - existing->usize, existing->next_entry)) ++ { ++ fprintf (stderr, "%s: %s\n", progname, strerror (errno)); ++ return 1; ++ } ++ } ++ } ++ + /* Write the contents of the file (uncompressed) to the zip file */ + /* calculate the CRC as we go along */ + ze->crc = crc32(0L, Z_NULL, 0); +@@ -1112,12 +1401,42 @@ + /* Sun's jar tool will only allow a data descriptor if the entry is + compressed, but we'll save 16 bytes/entry if we only use it when + we can't seek back on the file */ ++ /* Technically, you CAN'T have a data descriptor unless the data ++ part has an obvious end, which DEFLATED does. Otherwise, there ++ would not be any way to determine where the data descriptor is. ++ Store an uncompressed file that ends with 0x504b0708, and see. ++ -- csm */ + + if(write(jfd, data_descriptor, 16) != 16){ + perror("write"); + return 0; + } + } ++ ++ if (existing) ++ { ++ int dd = (existing->flags & (1 << 3)) ? 12 : 0; ++ if (existing->next_entry && ze->csize < existing->csize + dd) ++ { ++ if (shift_up (jfd, existing->next_entry->offset, ++ existing->csize + dd - ze->csize, ++ existing->next_entry)) ++ { ++ perror (progname); ++ return 1; ++ } ++ } ++ /* Replace the existing entry data with this entry's. */ ++ existing->csize = ze->csize; ++ existing->usize = ze->usize; ++ existing->crc = ze->crc; ++ existing->mod_time = ze->mod_time; ++ existing->mod_date = ze->mod_date; ++ free (ze->filename); ++ free (ze); ++ } ++ else if (updating) ++ end_of_entries = lseek (jfd, 0, SEEK_CUR); + + if(verbose) + printf("(in=%d) (out=%d) (%s %d%%)\n", +@@ -1890,7 +2209,7 @@ + { + printf("jar (%s) %s\n\n", PACKAGE, VERSION); + printf("Copyright 1999, 2000, 2001 Bryan Burns\n"); +- printf("Copyright 2002 Free Software Foundation\n"); ++ printf("Copyright 2002, 2004 Free Software Foundation\n"); + printf("\ + This is free software; see the source for copying conditions. There is NO\n\ + warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"); +diff -urN fastjar.old/jartool.h fastjar/jartool.h +--- fastjar.old/jartool.h 2000-12-09 04:08:23.000000000 +0100 ++++ fastjar/jartool.h 2004-05-30 17:30:34.000000000 +0200 +@@ -52,6 +52,10 @@ + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + ++#ifndef __FASTJAR_JARTOOL_H__ ++#define __FASTJAR_JARTOOL_H__ ++ ++#include + #include "config.h" + + #define ACTION_NONE 0 +@@ -104,9 +108,12 @@ + ub4 usize; + ub4 offset; + ub1 compressed; ++ ub2 flags; + char *filename; + + struct zipentry *next_entry; + }; + + typedef struct zipentry zipentry; ++ ++#endif /* __FASTJAR_JARTOOL_H__ */ +diff -urN fastjar.old/shift.c fastjar/shift.c +--- fastjar.old/shift.c 1970-01-01 01:00:00.000000000 +0100 ++++ fastjar/shift.c 2004-05-30 17:30:34.000000000 +0200 +@@ -0,0 +1,166 @@ ++/* shift.c -- utilities to move regions of data in a file. ++ Copyright (C) 2004 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 ++the Free Software Foundation; either version 2 of the License, or (at ++your option) any later version. ++ ++This program 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 this program; if not, write to the Free Software ++Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, ++USA. */ ++ ++ ++#include ++#include ++#include ++#include "jartool.h" ++#include "shift.h" ++ ++#define BUFFER_SIZE 1024 ++ ++#define MIN(a, b) ((a) < (b) ? (a) : (b)) ++ ++/* ++ * Shift the contents of a file up by `amount' bytes, starting at `begin'. ++ * The file is not truncated, data from `amount' to `begin - amount' is ++ * overwritten. The current file pointer of `fd' is preserved. Note that ++ * this might be past the new "end" of the file. ++ * ++ * If this function is passed a `struct zipentry', then all `offset' ++ * fields from that entry down the list that are greater than or equal ++ * to `begin' will be decreased by `amount'. ++ * ++ * fd - The file descriptor. ++ * begin - The offset of the first byte that should be shifted. ++ * amount - The number of bytes to shift by. ++ * ze - A pointer into a list of zip entries that should be updated ++ * to reflect the modified offset. ++ */ ++int ++shift_up (int fd, off_t begin, off_t amount, struct zipentry *ze) ++{ ++ extern off_t end_of_entries; ++ int len, moved = 0; ++ ub1 buffer[BUFFER_SIZE]; ++ off_t where, end, save; ++ ++ if (amount <= 0) ++ return 0; ++ ++ if ((save = lseek (fd, 0, SEEK_CUR)) == -1) ++ return 1; ++ if ((end = lseek (fd, 0, SEEK_END)) == -1) ++ return 1; ++ if (end < begin) ++ return 0; ++ ++ where = begin; ++ ++ do ++ { ++ if (lseek (fd, where, SEEK_SET) < 0) ++ return 1; ++ if ((len = read (fd, buffer, BUFFER_SIZE)) < 0) ++ return 1; ++ if (len == 0) ++ break; ++ if (lseek (fd, where - amount, SEEK_SET) < 0) ++ return 1; ++ if (write (fd, buffer, len) < 0) ++ return 1; ++ where += len; ++ } ++ while (where < end); ++ ++ for (; ze; ze = ze->next_entry) ++ { ++ if (ze->offset >= begin) ++ { ++ ze->offset -= amount; ++ moved = 1; ++ } ++ } ++ if (moved) ++ end_of_entries -= amount; ++ ++ if (lseek (fd, save, SEEK_SET) == -1) ++ return 1; ++ return 0; ++} ++ ++/* ++ * Shift the contents of this file down by `amount' bytes, extending the ++ * end of file, starting at `begin'. This function will preserve the ++ * current file pointer of `fd'. Naturally, this function will fail if ++ * `fd' is not seekable. ++ * ++ * If this function is passed a `struct zipentry', then all `offset' ++ * fields from that entry down the list that are greater than or equal ++ * to `begin' will be increased by `amount'. ++ * ++ * fd - The file descriptor. ++ * begin - The offset of the first byte that should be shifted. ++ * amount - The number of bytes to shift by. ++ * ze - A pointer into a list of zip entries that should be updated ++ * to reflect the modified offset. ++ */ ++int ++shift_down (int fd, off_t begin, off_t amount, struct zipentry *ze) ++{ ++ extern off_t end_of_entries; ++ int off, len, moved = 0; ++ ub1 buffer[BUFFER_SIZE]; ++ off_t where, save; ++ ++ if (amount <= 0) ++ return 0; ++ ++ if ((save = lseek (fd, 0, SEEK_CUR)) == -1) ++ return 1; ++ if ((where = lseek (fd, 0, SEEK_END)) == -1) ++ return 1; ++ if (where < begin) ++ return 0; ++ off = (where - begin) % BUFFER_SIZE; ++ if (off == 0) ++ where -= BUFFER_SIZE; ++ else ++ where -= off; ++ ++ do ++ { ++ if (lseek (fd, where, SEEK_SET) < 0) ++ return 1; ++ if ((len = read (fd, buffer, BUFFER_SIZE)) < 0) ++ return 1; ++ if (lseek (fd, where + amount, SEEK_SET) < 0) ++ return 1; ++ if (write (fd, buffer, len) < 0) ++ return 1; ++ where -= BUFFER_SIZE; ++ } ++ while (where >= begin); ++ ++ for (; ze; ze = ze->next_entry) ++ { ++ if (ze->offset >= begin) ++ { ++ ze->offset += amount; ++ moved = 1; ++ } ++ } ++ if (moved) ++ end_of_entries += amount; ++ ++ if (lseek (fd, save, SEEK_SET) == -1) ++ return 1; ++ ++ return 0; ++} +diff -urN fastjar.old/shift.h fastjar/shift.h +--- fastjar.old/shift.h 1970-01-01 01:00:00.000000000 +0100 ++++ fastjar/shift.h 2004-05-30 17:30:34.000000000 +0200 +@@ -0,0 +1,29 @@ ++/* shift.h -- utilities to move regions of data in a file. ++ Copyright (C) 2004 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 ++the Free Software Foundation; either version 2 of the License, or (at ++your option) any later version. ++ ++This program 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 this program; if not, write to the Free Software ++Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, ++USA. */ ++ ++ ++#ifndef __FASTJAR_SHIFT_H__ ++#define __FASTJAR_SHIFT_H__ ++ ++#include ++#include "jartool.h" ++ ++int shift_down (int, off_t, off_t, struct zipentry *); ++int shift_up (int, off_t, off_t, struct zipentry *); ++ ++#endif /* __FASTJAR_SHIFT_H__ */ +diff -urN fastjar.old/zipfile.h fastjar/zipfile.h +--- fastjar.old/zipfile.h 2000-12-09 04:08:23.000000000 +0100 ++++ fastjar/zipfile.h 2004-05-30 17:30:34.000000000 +0200 +@@ -47,6 +47,7 @@ + #define LOC_FNLEN 26 /* filename length */ + #define LOC_EFLEN 28 /* extra-field length */ + ++#define CEN_FLAGS 8 + #define CEN_COMP 10 /* compression method */ + #define CEN_MODTIME 12 + #define CEN_MODDATE 14 --- gcc-3.4-3.4.3.orig/debian/patches/kbsd-gnu.dpatch +++ gcc-3.4-3.4.3/debian/patches/kbsd-gnu.dpatch @@ -0,0 +1,470 @@ +#! /bin/sh -e + +# Description: GNU/k*BSD support +# Author: Robert Millan +# Status: libtool bits are merged in upstream 3.5 branch, rest is pending. + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p1 < $0 + for i in libffi libf2c libjava/libltdl libobjc libstdc++-v3 zlib; do + (set -x ; cd ${dir}/${i} ; autoreconf --force) + done + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p1 < $0 + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# append the patch here and adjust the -p? flag in the patch calls. + +diff -Nur src.old/gcc/config/i386/kfreebsd-gnu.h src/gcc/config/i386/kfreebsd-gnu.h +--- src.old/gcc/config/i386/kfreebsd-gnu.h 1970-01-01 01:00:00.000000000 +0100 ++++ src/gcc/config/i386/kfreebsd-gnu.h 2004-05-22 02:37:45.000000000 +0200 +@@ -0,0 +1,26 @@ ++/* Definitions for Intel 386 running kFreeBSD-based GNU systems with ELF format ++ Copyright (C) 2004 ++ Free Software Foundation, Inc. ++ Contributed by Robert Millan. ++ ++This file is part of GCC. ++ ++GCC 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. ++ ++GCC 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 GCC; see the file COPYING. If not, write to ++the Free Software Foundation, 59 Temple Place - Suite 330, ++Boston, MA 02111-1307, USA. */ ++ ++#undef LINK_EMULATION ++#define LINK_EMULATION "elf_i386_fbsd" ++#undef REG_NAME ++#define REG_NAME(reg) sc_ ## reg +diff -Nur src.old/gcc/config/i386/knetbsd-gnu.h src/gcc/config/i386/knetbsd-gnu.h +--- src.old/gcc/config/i386/knetbsd-gnu.h 1970-01-01 01:00:00.000000000 +0100 ++++ src/gcc/config/i386/knetbsd-gnu.h 2004-05-22 02:37:45.000000000 +0200 +@@ -0,0 +1,24 @@ ++/* Definitions for Intel 386 running kNetBSD-based GNU systems with ELF format ++ Copyright (C) 2004 ++ Free Software Foundation, Inc. ++ Contributed by Robert Millan. ++ ++This file is part of GCC. ++ ++GCC 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. ++ ++GCC 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 GCC; see the file COPYING. If not, write to ++the Free Software Foundation, 59 Temple Place - Suite 330, ++Boston, MA 02111-1307, USA. */ ++ ++#undef REG_NAME ++#define REG_NAME(reg) sc_ ## reg +diff -Nur src.old/gcc/config/i386/linux.h src/gcc/config/i386/linux.h +--- src.old/gcc/config/i386/linux.h 2003-11-29 04:08:10.000000000 +0100 ++++ src/gcc/config/i386/linux.h 2004-05-22 02:37:45.000000000 +0200 +@@ -108,24 +108,30 @@ + + /* If ELF is the default format, we should not use /lib/elf. */ + ++#ifndef LINK_EMULATION ++# define LINK_EMULATION "elf_i386" ++#endif ++#ifndef DYNAMIC_LINKER ++# ifdef USE_GNULIBC_1 ++# define DYNAMIC_LINKER "/lib/ld-linux.so.1" ++# else ++# define DYNAMIC_LINKER "/lib/ld-linux.so.2" ++# endif ++#endif ++ ++#undef SUBTARGET_EXTRA_SPECS ++#define SUBTARGET_EXTRA_SPECS \ ++ { "link_emulation", LINK_EMULATION },\ ++ { "dynamic_linker", DYNAMIC_LINKER } ++ + #undef LINK_SPEC +-#ifdef USE_GNULIBC_1 +-#define LINK_SPEC "-m elf_i386 %{shared:-shared} \ +- %{!shared: \ +- %{!ibcs: \ +- %{!static: \ +- %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.1}} \ +- %{static:-static}}}" +-#else +-#define LINK_SPEC "-m elf_i386 %{shared:-shared} \ ++#define LINK_SPEC "-m %(link_emulation) %{shared:-shared} \ + %{!shared: \ + %{!ibcs: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ ++ %{!dynamic-linker:-dynamic-linker %(dynamic_linker)}} \ + %{static:-static}}}" +-#endif + + /* A C statement (sans semicolon) to output to the stdio stream + FILE the assembler definition of uninitialized global DECL named +@@ -217,6 +223,8 @@ + #include + #include + ++#define REG_NAME(reg) reg ++ + #define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS) \ + do { \ + unsigned char *pc_ = (CONTEXT)->ra; \ +@@ -245,28 +253,28 @@ + else \ + break; \ + \ +- new_cfa_ = sc_->esp; \ ++ new_cfa_ = sc_->REG_NAME(esp); \ + (FS)->cfa_how = CFA_REG_OFFSET; \ + (FS)->cfa_reg = 4; \ + (FS)->cfa_offset = new_cfa_ - (long) (CONTEXT)->cfa; \ + \ + /* The SVR4 register numbering macros aren't usable in libgcc. */ \ + (FS)->regs.reg[0].how = REG_SAVED_OFFSET; \ +- (FS)->regs.reg[0].loc.offset = (long)&sc_->eax - new_cfa_; \ ++ (FS)->regs.reg[0].loc.offset = (long)&sc_->REG_NAME(eax) - new_cfa_; \ + (FS)->regs.reg[3].how = REG_SAVED_OFFSET; \ +- (FS)->regs.reg[3].loc.offset = (long)&sc_->ebx - new_cfa_; \ ++ (FS)->regs.reg[3].loc.offset = (long)&sc_->REG_NAME(ebx) - new_cfa_; \ + (FS)->regs.reg[1].how = REG_SAVED_OFFSET; \ +- (FS)->regs.reg[1].loc.offset = (long)&sc_->ecx - new_cfa_; \ ++ (FS)->regs.reg[1].loc.offset = (long)&sc_->REG_NAME(ecx) - new_cfa_; \ + (FS)->regs.reg[2].how = REG_SAVED_OFFSET; \ +- (FS)->regs.reg[2].loc.offset = (long)&sc_->edx - new_cfa_; \ ++ (FS)->regs.reg[2].loc.offset = (long)&sc_->REG_NAME(edx) - new_cfa_; \ + (FS)->regs.reg[6].how = REG_SAVED_OFFSET; \ +- (FS)->regs.reg[6].loc.offset = (long)&sc_->esi - new_cfa_; \ ++ (FS)->regs.reg[6].loc.offset = (long)&sc_->REG_NAME(esi) - new_cfa_; \ + (FS)->regs.reg[7].how = REG_SAVED_OFFSET; \ +- (FS)->regs.reg[7].loc.offset = (long)&sc_->edi - new_cfa_; \ ++ (FS)->regs.reg[7].loc.offset = (long)&sc_->REG_NAME(edi) - new_cfa_; \ + (FS)->regs.reg[5].how = REG_SAVED_OFFSET; \ +- (FS)->regs.reg[5].loc.offset = (long)&sc_->ebp - new_cfa_; \ ++ (FS)->regs.reg[5].loc.offset = (long)&sc_->REG_NAME(ebp) - new_cfa_; \ + (FS)->regs.reg[8].how = REG_SAVED_OFFSET; \ +- (FS)->regs.reg[8].loc.offset = (long)&sc_->eip - new_cfa_; \ ++ (FS)->regs.reg[8].loc.offset = (long)&sc_->REG_NAME(eip) - new_cfa_; \ + (FS)->retaddr_column = 8; \ + goto SUCCESS; \ + } while (0) +diff -Nur src.old/gcc/config/kfreebsd-gnu.h src/gcc/config/kfreebsd-gnu.h +--- src.old/gcc/config/kfreebsd-gnu.h 1970-01-01 01:00:00.000000000 +0100 ++++ src/gcc/config/kfreebsd-gnu.h 2004-05-22 02:37:45.000000000 +0200 +@@ -0,0 +1,36 @@ ++/* Definitions for kFreeBSD-based GNU systems with ELF format ++ Copyright (C) 2004 ++ Free Software Foundation, Inc. ++ Contributed by Robert Millan. ++ ++This file is part of GCC. ++ ++GCC 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. ++ ++GCC 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 GCC; see the file COPYING. If not, write to ++the Free Software Foundation, 59 Temple Place - Suite 330, ++Boston, MA 02111-1307, USA. */ ++ ++#undef LINUX_TARGET_OS_CPP_BUILTINS ++#define LINUX_TARGET_OS_CPP_BUILTINS() \ ++ do \ ++ { \ ++ builtin_define ("__FreeBSD_kernel__"); \ ++ builtin_define ("__GLIBC__"); \ ++ builtin_define_std ("unix"); \ ++ builtin_assert ("system=unix"); \ ++ builtin_assert ("system=posix"); \ ++ } \ ++ while (0) ++ ++#undef DYNAMIC_LINKER ++#define DYNAMIC_LINKER "/lib/ld.so.1" +diff -Nur src.old/gcc/config/knetbsd-gnu.h src/gcc/config/knetbsd-gnu.h +--- src.old/gcc/config/knetbsd-gnu.h 1970-01-01 01:00:00.000000000 +0100 ++++ src/gcc/config/knetbsd-gnu.h 2004-05-22 02:37:45.000000000 +0200 +@@ -0,0 +1,36 @@ ++/* Definitions for kNetBSD-based GNU systems with ELF format ++ Copyright (C) 2004 ++ Free Software Foundation, Inc. ++ Contributed by Robert Millan. ++ ++This file is part of GCC. ++ ++GCC 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. ++ ++GCC 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 GCC; see the file COPYING. If not, write to ++the Free Software Foundation, 59 Temple Place - Suite 330, ++Boston, MA 02111-1307, USA. */ ++ ++#undef LINUX_TARGET_OS_CPP_BUILTINS ++#define LINUX_TARGET_OS_CPP_BUILTINS() \ ++ do \ ++ { \ ++ builtin_define ("__NetBSD_kernel__"); \ ++ builtin_define ("__GLIBC__"); \ ++ builtin_define_std ("unix"); \ ++ builtin_assert ("system=unix"); \ ++ builtin_assert ("system=posix"); \ ++ } \ ++ while (0) ++ ++#undef DYNAMIC_LINKER ++#define DYNAMIC_LINKER "/lib/ld.so.1" +diff -Nur src.old/gcc/config/linux.h src/gcc/config/linux.h +--- src.old/gcc/config/linux.h 2003-11-29 04:08:10.000000000 +0100 ++++ src/gcc/config/linux.h 2004-05-22 02:37:45.000000000 +0200 +@@ -97,6 +97,7 @@ + %{!p:%{!pg:%{!g*:-lc} %{g*:-lg}}}}" + #endif + ++#ifndef LINUX_TARGET_OS_CPP_BUILTINS + #define LINUX_TARGET_OS_CPP_BUILTINS() \ + do { \ + builtin_define ("__gnu_linux__"); \ +@@ -106,6 +107,7 @@ + builtin_assert ("system=unix"); \ + builtin_assert ("system=posix"); \ + } while (0) ++#endif + + #if !defined(USE_GNULIBC_1) && defined(HAVE_LD_EH_FRAME_HDR) + #define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " +diff -Nur src.old/gcc/config.gcc src/gcc/config.gcc +--- src.old/gcc/config.gcc 2004-05-22 01:09:22.000000000 +0200 ++++ src/gcc/config.gcc 2004-05-22 02:41:54.000000000 +0200 +@@ -428,21 +428,10 @@ + esac + fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h" + ;; +-*-*-kfreebsd*-gnu) +- # Must come before *-*-gnu* +- xm_defines=POSIX # needed for cross-compiling from FreeBSD? +- extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o" +- # GNU tools are the only tools. +- gas=yes +- gnu_ld=yes +- case ${enable_threads} in +- "" | yes | posix) thread_file='posix' ;; +- esac +- ;; + *-*-linux*libc1* | *-*-linux*aout*) + # Avoid the generic linux case. + ;; +-*-*-linux*) ++*-*-linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu) + # Must come before *-*-gnu* (because of *-*-linux-gnu* systems). + extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o" + gas=yes +@@ -988,23 +977,21 @@ + thread_file='single' + fi + ;; +-i[34567]86-*-linux*) # Intel 80386's running GNU/Linux ++i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu) ++ # Intel 80386's running GNU/* + # with ELF format using glibc 2 +- # aka GNU/Linux C library 6 + tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h i386/linux.h" + tmake_file="t-slibgcc-elf-ver t-linux i386/t-crtstuff" ++ case ${target} in ++ i[34567]86-*-knetbsd*-gnu) tm_file="${tm_file} knetbsd-gnu.h i386/knetbsd-gnu.h" ;; ++ i[34567]86-*-kfreebsd*-gnu) tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu.h" ;; ++ esac + ;; + x86_64-*-linux*) + tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h \ + i386/x86-64.h i386/linux64.h" + tmake_file="t-slibgcc-elf-ver t-linux i386/t-linux64" + ;; +-i[34567]86-*-kfreebsd*-gnu) # must be before i[34567]86-*-gnu* +- tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h i386/linux.h kfreebsdgnu.h i386/kfreebsdgnu.h" +- tmake_file="t-slibgcc-elf-ver t-kfreebsd-gnu i386/t-crtstuff" +- float_format=i386 +- use_fixproto=no +- ;; + i[34567]86-*-gnu*) + ;; + i[34567]86-pc-msdosdjgpp*) +diff -Nur src.old/libtool.m4 src/libtool.m4 +--- src.old/libtool.m4 2003-11-19 06:29:32.000000000 +0100 ++++ src/libtool.m4 2004-05-22 02:37:46.000000000 +0200 +@@ -621,7 +621,7 @@ + lt_cv_deplibs_check_method=pass_all + ;; + +-freebsd* ) ++freebsd* | kfreebsd*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) +@@ -689,7 +689,7 @@ + lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` + ;; + +-netbsd*) ++netbsd* | knetbsd*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'] + else +diff -Nur src.old/ltcf-c.sh src/ltcf-c.sh +--- src.old/ltcf-c.sh 2003-11-19 06:29:32.000000000 +0100 ++++ src/ltcf-c.sh 2004-05-22 02:37:46.000000000 +0200 +@@ -175,7 +175,7 @@ + $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags' + ;; + +- netbsd*) ++ netbsd* | knetbsd*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= +@@ -442,7 +442,7 @@ + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. +- freebsd*) ++ freebsd* | kfreebsd*-gnu) + archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes +@@ -489,7 +489,7 @@ + link_all_deplibs=yes + ;; + +- netbsd*) ++ netbsd* | knetbsd*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else +diff -Nur src.old/ltcf-cxx.sh src/ltcf-cxx.sh +--- src.old/ltcf-cxx.sh 2003-11-19 06:29:32.000000000 +0100 ++++ src/ltcf-cxx.sh 2004-05-22 02:37:46.000000000 +0200 +@@ -289,7 +289,7 @@ + # C++ shared libraries reported to be fairly broken before switch to ELF + ld_shlibs=no + ;; +- freebsd*) ++ freebsd* | kfreebsd*-gnu) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + ld_shlibs=yes +@@ -449,7 +449,7 @@ + ;; + esac + ;; +- netbsd*) ++ netbsd* | knetbsd*-gnu) + # NetBSD uses g++ - do we need to do anything? + ;; + osf3*) +@@ -804,7 +804,7 @@ + ;; + esac + ;; +- freebsd*) ++ freebsd* | kfreebsd*-gnu) + # FreeBSD uses GNU C++ + ;; + gnu*) +diff -Nur src.old/ltcf-gcj.sh src/ltcf-gcj.sh +--- src.old/ltcf-gcj.sh 2003-11-19 06:29:32.000000000 +0100 ++++ src/ltcf-gcj.sh 2004-05-22 02:37:46.000000000 +0200 +@@ -178,7 +178,7 @@ + $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags' + ;; + +- netbsd*) ++ netbsd* | knetbsd*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= +@@ -445,7 +445,7 @@ + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. +- freebsd*) ++ freebsd* | kfreebsd*-gnu) + archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes +@@ -476,7 +476,7 @@ + link_all_deplibs=yes + ;; + +- netbsd*) ++ netbsd* | knetbsd*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else +diff -Nur src.old/ltconfig src/ltconfig +--- src.old/ltconfig 2004-03-05 22:05:41.000000000 +0100 ++++ src/ltconfig 2004-05-22 02:37:46.000000000 +0200 +@@ -1168,6 +1168,17 @@ + hardcode_into_libs=yes + ;; + ++kfreebsd*-gnu | knetbsd*-gnu) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ ;; ++ + hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. --- gcc-3.4-3.4.3.orig/debian/patches/link-libs.dpatch +++ gcc-3.4-3.4.3/debian/patches/link-libs.dpatch @@ -0,0 +1,134 @@ +#! /bin/sh -e + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p1 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p1 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +diff -u ./gcc/config/t-slibgcc-elf-ver~ ./gcc/config/t-slibgcc-elf-ver +--- ./gcc/config/t-slibgcc-elf-ver~ 2003-01-26 12:35:07.000000000 +0100 ++++ ./gcc/config/t-slibgcc-elf-ver 2004-05-28 17:23:02.856048856 +0200 +@@ -14,6 +14,7 @@ + SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \ + -Wl,--soname=$(SHLIB_SONAME) \ + -Wl,--version-script=$(SHLIB_MAP) \ ++ -Wl,-O1 \ + -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) $(SHLIB_LC) && \ + rm -f $(SHLIB_SOLINK) && \ + if [ -f $(SHLIB_NAME) ]; then \ +diff -u ./libf2c/Makefile.in~ ./libf2c/Makefile.in +--- ./libf2c/Makefile.in~ 2003-07-04 21:53:54.000000000 +0200 ++++ ./libf2c/Makefile.in 2004-05-28 17:17:35.334839648 +0200 +@@ -154,6 +154,7 @@ + $(LIBTOOL) --mode=link $(CC) -o $@ \ + -version-info $(VERSION_MAJOR):$(VERSION_MINOR):$(VERSION_SUB) \ + -rpath $(glibcpp_toolexeclibdir) \ ++ -Wl,-O1 \ + -objectlist s-libe77 \ + -objectlist s-libf77 \ + -objectlist s-libi77 \ +diff -u ./libffi/Makefile.am~ ./libffi/Makefile.am +--- ./libffi/Makefile.am~ 2004-05-23 13:59:17.000000000 +0200 ++++ ./libffi/Makefile.am 2004-05-28 17:18:54.254841984 +0200 +@@ -179,7 +179,7 @@ + + AM_CFLAGS = -fexceptions + +-libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` ++libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` -Wl,-O1 + + INCLUDES = -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src + +diff -u ./libffi/Makefile.in~ ./libffi/Makefile.in +--- ./libffi/Makefile.in~ 2004-05-23 13:59:17.000000000 +0200 ++++ ./libffi/Makefile.in 2004-05-28 17:19:33.776833728 +0200 +@@ -223,7 +223,7 @@ + + AM_CFLAGS = -fexceptions + +-libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` ++libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` -Wl,-O1 + + INCLUDES = -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +diff -u ./libjava/Makefile.in~ ./libjava/Makefile.in +--- ./libjava/Makefile.in~ 2004-05-23 13:59:17.000000000 +0200 ++++ ./libjava/Makefile.in 2004-05-28 17:14:23.595988384 +0200 +@@ -162,7 +162,7 @@ + + GCJCOMPILE = $(LIBTOOL) --tag=GCJ --mode=compile $(GCJ_WITH_FLAGS) -fclasspath= -fbootclasspath=$(here) $(JC1FLAGS) -MD -MT $@ -MF $(@:.lo=.d) -c + GCJLINK = $(LIBTOOL) --tag=GCJ --mode=link $(GCJ) -L$(here) $(JC1FLAGS) $(LDFLAGS) -o $@ +-LIBLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXX) -L$(here) $(JC1FLAGS) $(LDFLAGS) -o $@ ++LIBLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXX) -L$(here) $(JC1FLAGS) $(LDFLAGS) -Wl,-O1 -o $@ + + LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) + +diff -u ./libjava/Makefile.am~ ./libjava/Makefile.am +--- ./libjava/Makefile.am~ 2004-05-23 13:59:17.000000000 +0200 ++++ ./libjava/Makefile.am 2004-05-28 17:13:58.076867880 +0200 +@@ -67,7 +67,7 @@ + + GCJCOMPILE = $(LIBTOOL) --tag=GCJ --mode=compile $(GCJ_WITH_FLAGS) -fclasspath= -fbootclasspath=$(here) $(JC1FLAGS) -MD -MT $@ -MF $(@:.lo=.d) -c + GCJLINK = $(LIBTOOL) --tag=GCJ --mode=link $(GCJ) -L$(here) $(JC1FLAGS) $(LDFLAGS) -o $@ +-LIBLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXX) -L$(here) $(JC1FLAGS) $(LDFLAGS) -o $@ ++LIBLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXX) -L$(here) $(JC1FLAGS) $(LDFLAGS) -Wl,-O1 -o $@ + + ## We define this because otherwise libtool can be run with different + ## values of `CXX' and will then get confused and fail to work. So, +diff -u ./libobjc/Makefile.in~ ./libobjc/Makefile.in +--- ./libobjc/Makefile.in~ 2004-05-23 13:59:17.000000000 +0200 ++++ ./libobjc/Makefile.in 2004-05-28 17:16:18.398535744 +0200 +@@ -264,11 +264,13 @@ + libobjc.la: $(OBJS) + $(LIBTOOL_LINK) $(CC) -o $@ $(OBJS) \ + -rpath $(glibcpp_toolexeclibdir) \ ++ -Wl,-O1 \ + -version-info $(LIBOBJC_VERSION) + + libobjc_gc.la: $(OBJS_GC) + $(LIBTOOL_LINK) $(CC) -o $@ $(OBJS_GC) \ + -rpath $(glibcpp_toolexeclibdir) \ ++ -Wl,-O1 \ + -version-info $(LIBOBJC_GC_VERSION) + + # +diff -u ./libstdc++-v3/src/Makefile.am~ ./libstdc++-v3/src/Makefile.am +--- ./libstdc++-v3/src/Makefile.am~ 2004-05-28 13:18:10.000000000 +0200 ++++ ./libstdc++-v3/src/Makefile.am 2004-05-28 13:19:11.000000000 +0200 +@@ -148,6 +148,7 @@ + libstdc___la_DEPENDENCIES = ${version_dep} $(libstdc___la_LIBADD) + + libstdc___la_LDFLAGS = \ ++ -Wl,-O1 \ + -version-info $(libtool_VERSION) ${version_arg} -lm + + +diff -u ./libstdc++-v3/src/Makefile.in~ ./libstdc++-v3/src/Makefile.in +--- ./libstdc++-v3/src/Makefile.in~ 2004-05-28 13:18:10.000000000 +0200 ++++ ./libstdc++-v3/src/Makefile.in 2004-05-28 13:19:55.000000000 +0200 +@@ -305,6 +305,7 @@ + libstdc___la_DEPENDENCIES = ${version_dep} $(libstdc___la_LIBADD) + + libstdc___la_LDFLAGS = \ ++ -Wl,-O1 \ + -version-info $(libtool_VERSION) ${version_arg} -lm + + --- gcc-3.4-3.4.3.orig/debian/patches/gccbug-posix.dpatch +++ gcc-3.4-3.4.3/debian/patches/gccbug-posix.dpatch @@ -0,0 +1,86 @@ +#! /bin/sh -e + +# DP: Make gccbug POSIX compliant (patch by David Weinehall) +# DP: http://www.opengroup.org/onlinepubs/009695399/utilities/test.html + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- gcc/gccbug.in~ 2004-06-15 04:43:16.000000000 +0200 ++++ gcc/gccbug.in 2004-07-04 23:51:38.000000000 +0200 +@@ -165,7 +165,7 @@ + ;; + -f | --file) if [ $# -eq 1 ]; then echo "$USAGE"; $REMOVE_TEMP; exit 1; fi + shift ; IN_FILE="$1" +- if [ "$IN_FILE" != "-" -a ! -r "$IN_FILE" ]; then ++ if [ "$IN_FILE" != "-" ] && [ ! -r "$IN_FILE" ]; then + echo "$COMMAND: cannot read $IN_FILE" + $REMOVE_TEMP + exit 1 +@@ -237,7 +237,7 @@ + # Catch some signals. ($xs kludge needed by Sun /bin/sh) + xs=0 + trap '$REMOVE_TEMP; exit $xs' 0 +-trap 'echo "$COMMAND: Aborting ..."; $REMOVE_TEMP; xs=1; exit' 1 3 13 15 ++trap 'echo "$COMMAND: Aborting ..."; $REMOVE_TEMP; xs=1; exit' HUP QUIT PIPE TERM + + # If they told us to use a specific file, then do so. + if [ -n "$IN_FILE" ]; then +@@ -258,16 +258,16 @@ + fi + else + +- if [ -n "$PR_FORM" -a -z "$PRINT_INTERN" ]; then ++ if [ -n "$PR_FORM" ] && [ -z "$PRINT_INTERN" ]; then + # If their PR_FORM points to a bogus entry, then bail. +- if [ ! -f "$PR_FORM" -o ! -r "$PR_FORM" -o ! -s "$PR_FORM" ]; then ++ if [ ! -f "$PR_FORM" ] || [ ! -r "$PR_FORM" ] || [ ! -s "$PR_FORM" ]; then + echo "$COMMAND: can't seem to read your template file (\`$PR_FORM'), ignoring PR_FORM" + sleep 1 + PRINT_INTERN=bad_prform + fi + fi + +- if [ -n "$PR_FORM" -a -z "$PRINT_INTERN" ]; then ++ if [ -n "$PR_FORM" ] && [ -z "$PRINT_INTERN" ]; then + cp $PR_FORM $TEMP || + ( echo "$COMMAND: could not copy $PR_FORM" ; xs=1; exit ) + else +@@ -359,7 +359,7 @@ + done + fi + +- if [ "$PRINT" = true -o "$PRINT_INTERN" = true ]; then ++ if [ "$PRINT" = true ] || [ "$PRINT_INTERN" = true ]; then + cat $TEMP + xs=0; exit + fi +@@ -467,7 +467,7 @@ + CNT=`expr $CNT + 1` + fi + +- [ $CNT -lt 6 -a -z "$BATCH" ] && ++ [ $CNT -lt 6 ] && [ -z "$BATCH" ] && + echo "Errors were found with the problem report." + + while true; do --- gcc-3.4-3.4.3.orig/debian/patches/libjava-mips.dpatch +++ gcc-3.4-3.4.3/debian/patches/libjava-mips.dpatch @@ -0,0 +1,40 @@ +#! /bin/sh -e + +# DP: libjava-mips patch from Thiemo Seufer + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# append the patch here and adjust the -p? flag in the patch calls. + +--- libjava/include/mips-signal.h.old 2003-10-22 18:35:16.000000000 +0200 ++++ libjava/include/mips-signal.h 2003-12-13 18:29:53.000000000 +0100 +@@ -80,7 +80,7 @@ + kact.k_sa_handler = catch_segv; \ + kact.k_sa_flags = SA_SIGINFO | SA_NODEFER; \ + sigemptyset (&kact.k_sa_mask); \ +- syscall (SYS_sigaction, SIGSEGV, &kact, NULL); \ ++ syscall (__NR_sigaction, SIGSEGV, &kact, NULL); \ + } \ + while (0) + --- gcc-3.4-3.4.3.orig/debian/patches/multiarch-include.dpatch +++ gcc-3.4-3.4.3/debian/patches/multiarch-include.dpatch @@ -0,0 +1,107 @@ +#! /bin/sh -e + +# DP: multiarch-include.dpatch by Stephen Frost +# DP: updated for gcc-3.4 by Matthias Klose +# DP: +# DP: Adds the multiarch include directory (/usr/include/TARGET_ALIAS) +# DP: to the system include paths. + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +diff -urN gcc.old/Makefile.in gcc/Makefile.in +--- gcc.old/Makefile.in 2004-06-17 23:56:58.000000000 +0200 ++++ gcc/Makefile.in 2004-07-10 01:44:11.000000000 +0200 +@@ -2324,6 +2324,7 @@ + -DLOCAL_INCLUDE_DIR=\"$(local_includedir)\" \ + -DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \ + -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \ ++ -DTARGET_MACHINE=\"$(target_alias)\" \ + @TARGET_SYSTEM_ROOT_DEFINE@ + + LIBCPP_OBJS = cpplib.o cpplex.o cppmacro.o cppexp.o cppfiles.o cpptrad.o \ +diff -urN gcc.old/config/i386/t-linux64 gcc/config/i386/t-linux64 +--- gcc.old/config/i386/t-linux64 2002-11-28 15:47:02.000000000 +0100 ++++ gcc/config/i386/t-linux64 2004-07-10 01:44:11.000000000 +0200 +@@ -6,7 +6,7 @@ + + MULTILIB_OPTIONS = m64/m32 + MULTILIB_DIRNAMES = 64 32 +-MULTILIB_OSDIRNAMES = ../lib64 ../lib ++MULTILIB_OSDIRNAMES = x86_64-linux i486-linux + + LIBGCC = stmp-multilib + INSTALL_LIBGCC = install-multilib +diff -urN gcc.old/config/t-linux gcc/config/t-linux +--- gcc.old/config/t-linux 2003-09-23 20:55:57.000000000 +0200 ++++ gcc/config/t-linux 2004-07-10 01:48:41.000000000 +0200 +@@ -11,3 +11,10 @@ + LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-glibc.c \ + $(srcdir)/unwind-sjlj.c $(srcdir)/gthr-gnat.c $(srcdir)/unwind-c.c + LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c gthr-gnat.c ++ ++MULTILIB_OPTIONS = m32 ++MULTILIB_DIRNAMES = 32 ++MULTILIB_OSDIRNAMES = $TARGET_ARCH ++ ++LIBGCC = stmp-multilib ++INSTALL_LIBGCC = install-multilib +diff -urN gcc.old/cppdefault.c gcc/cppdefault.c +--- gcc.old/cppdefault.c 2003-03-01 15:31:12.000000000 +0100 ++++ gcc/cppdefault.c 2004-07-10 01:46:34.000000000 +0200 +@@ -29,6 +29,14 @@ + #define STANDARD_INCLUDE_DIR "/usr/include" + #endif + ++#ifndef MULTIARCH_STANDARD_INCLUDE_DIR ++#define MULTIARCH_STANDARD_INCLUDE_DIR STANDARD_INCLUDE_DIR "/" TARGET_MACHINE ++#endif ++ ++#ifndef MULTIARCH_LOCAL_INCLUDE_DIR ++#define MULTIARCH_LOCAL_INCLUDE_DIR LOCAL_INCLUDE_DIR "/" TARGET_MACHINE ++#endif ++ + #ifndef STANDARD_INCLUDE_COMPONENT + #define STANDARD_INCLUDE_COMPONENT 0 + #endif +@@ -62,6 +70,10 @@ + /* /usr/local/include comes before the fixincluded header files. */ + { LOCAL_INCLUDE_DIR, 0, 0, 1, 1 }, + #endif ++#ifdef MULTIARCH_LOCAL_INCLUDE_DIR ++ /* /usr/local/include/$target_alias comes before the fixincluded header files. */ ++ { MULTIARCH_LOCAL_INCLUDE_DIR, 0, 0, 1, 1 }, ++#endif + #ifdef PREFIX_INCLUDE_DIR + { PREFIX_INCLUDE_DIR, 0, 0, 1, 0 }, + #endif +@@ -81,6 +93,9 @@ + /* Some systems have an extra dir of include files. */ + { SYSTEM_INCLUDE_DIR, 0, 0, 0, 1 }, + #endif ++#ifdef MULTIARCH_STANDARD_INCLUDE_DIR ++ { MULTIARCH_STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT, 0, 0, 1 }, ++#endif + #ifdef STANDARD_INCLUDE_DIR + /* /usr/include comes dead last. */ + { STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT, 0, 0, 1 }, --- gcc-3.4-3.4.3.orig/debian/patches/gcc-textdomain.dpatch +++ gcc-3.4-3.4.3/debian/patches/gcc-textdomain.dpatch @@ -0,0 +1,60 @@ +#! /bin/sh -e + +# DP: Set gettext's domain and textdomain to the versioned package name. + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + + +--- gcc/Makefile.in~ 2004-07-21 22:42:58.000000000 +0200 ++++ gcc/Makefile.in 2004-07-21 22:43:37.000000000 +0200 +@@ -2311,6 +2311,7 @@ + intl.o: intl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) intl.h Makefile + $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ + -DLOCALEDIR=\"$(localedir)\" \ ++ -DPACKAGE=\"$(PACKAGE)\" \ + -c $(srcdir)/intl.c $(OUTPUT_OPTION) + + # +@@ -3848,7 +3848,7 @@ + GMSGFMT = @GMSGFMT@ + MSGMERGE = msgmerge + +-PACKAGE = @PACKAGE@ ++PACKAGE = $(shell echo @PACKAGE@|sed '$(program_transform_name)') + CATALOGS = @CATALOGS@ + + .PHONY: build- install- build-po install-po update-po +--- gcc/intl.c~ 2004-07-21 22:42:58.000000000 +0200 ++++ gcc/intl.c 2004-07-21 22:43:37.000000000 +0200 +@@ -41,8 +41,8 @@ + setlocale (LC_ALL, ""); + #endif + +- (void) bindtextdomain ("gcc", LOCALEDIR); +- (void) textdomain ("gcc"); ++ (void) bindtextdomain (PACKAGE, LOCALEDIR); ++ (void) textdomain (PACKAGE); + } + + #if defined HAVE_WCHAR_H && defined HAVE_WORKING_MBSTOWCS && defined HAVE_WCSWIDTH --- gcc-3.4-3.4.3.orig/debian/patches/gcc-3.4.diff8 +++ gcc-3.4-3.4.3/debian/patches/gcc-3.4.diff8 @@ -0,0 +1,580 @@ +diff -ru gcc-3.4.0.orig/gcc/config/sol2.h gcc-3.4.0/gcc/config/sol2.h +--- gcc-3.4.0.orig/gcc/config/sol2.h 2004-05-19 22:01:51.000000000 +0200 ++++ gcc-3.4.0/gcc/config/sol2.h 2004-05-19 22:04:45.000000000 +0200 +@@ -203,7 +203,7 @@ + long size = getpagesize (); \ + long mask = ~(size-1); \ + char *page = (char *) (((long) addr) & mask); \ +- char *end = (char *) ((((long) (addr + TRAMPOLINE_SIZE)) & mask) + size); \ ++ char *end = (char *) ((((long) (addr + TRAMPOLINE_SIZE-1)) & mask) + size); \ + \ + if (mprotect (page, end - page, 7 /* STACK_PROT_RWX */) < 0) \ + perror ("mprotect of trampoline code"); \ +Only in gcc-3.4.0/gcc/config: sol2.h~ +diff -ru gcc-3.4.0.orig/gcc/dbxout.c gcc-3.4.0/gcc/dbxout.c +--- gcc-3.4.0.orig/gcc/dbxout.c 2004-05-19 22:09:33.000000000 +0200 ++++ gcc-3.4.0/gcc/dbxout.c 2004-05-19 22:12:41.000000000 +0200 +@@ -1462,7 +1462,7 @@ + fputs ("@s", asmfile); + CHARS (2); + print_wide_int (BITS_PER_UNIT * int_size_in_bytes (type)); +- fputs (";-20;", asmfile); ++ fputs (";-20", asmfile); + CHARS (4); + } + else +@@ -1484,7 +1484,7 @@ + fputs ("@s", asmfile); + CHARS (2); + print_wide_int (BITS_PER_UNIT * int_size_in_bytes (type)); +- fputs (";-16;", asmfile); ++ fputs (";-16", asmfile); + CHARS (4); + } + else /* Define as enumeral type (False, True) */ +Only in gcc-3.4.0/gcc: dbxout.c~ +diff -ru gcc-3.4.0.orig/gcc/dwarf2out.c gcc-3.4.0/gcc/dwarf2out.c +--- gcc-3.4.0.orig/gcc/dwarf2out.c 2004-05-19 21:59:36.000000000 +0200 ++++ gcc-3.4.0/gcc/dwarf2out.c 2004-05-19 22:03:12.000000000 +0200 +@@ -8607,6 +8607,9 @@ + case VIEW_CONVERT_EXPR: + case SAVE_EXPR: + case MODIFY_EXPR: ++#ifdef GPC ++ case UNSAVE_EXPR: ++#endif + return loc_descriptor_from_tree (TREE_OPERAND (loc, 0), addressp); + + case COMPONENT_REF: +@@ -8809,6 +8812,15 @@ + add_loc_descr (&ret, new_loc_descr (op, 0, 0)); + break; + ++#ifdef GPC ++ case MIN_EXPR: ++ loc = build (COND_EXPR, TREE_TYPE (loc), ++ build (GT_EXPR, integer_type_node, ++ TREE_OPERAND (loc, 0), TREE_OPERAND (loc, 1)), ++ TREE_OPERAND (loc, 1), TREE_OPERAND (loc, 0)); ++ goto cond_expr; ++#endif ++ + case MAX_EXPR: + loc = build (COND_EXPR, TREE_TYPE (loc), + build (LT_EXPR, integer_type_node, +@@ -8818,6 +8830,9 @@ + /* ... fall through ... */ + + case COND_EXPR: ++#ifdef GPC ++ cond_expr: ++#endif + { + dw_loc_descr_ref lhs + = loc_descriptor_from_tree (TREE_OPERAND (loc, 1), 0); +@@ -8848,6 +8863,21 @@ + } + break; + ++#ifdef GPC ++ case REAL_CST: ++ case FLOAT_EXPR: ++ case FIX_TRUNC_EXPR: ++ case FIX_CEIL_EXPR: ++ case FIX_FLOOR_EXPR: ++ case FIX_ROUND_EXPR: ++ case RDIV_EXPR: ++ /* In Pascal it's possible for array bounds to contain floating point ++ expressions (e.g., p/test/emil11c.pas). I don't know if it's ++ possible to represent them in dwarf2, but it doesn't seem terribly ++ important since this occurs quite rarely. -- Frank */ ++ return 0; ++#endif ++ + case EXPR_WITH_FILE_LOCATION: + return loc_descriptor_from_tree (EXPR_WFL_NODE (loc), addressp); + +diff -ru gcc-3.4.0.orig/gcc/expr.c gcc-3.4.0/gcc/expr.c +--- gcc-3.4.0.orig/gcc/expr.c 2004-05-19 21:59:36.000000000 +0200 ++++ gcc-3.4.0/gcc/expr.c 2004-05-19 22:03:12.000000000 +0200 +@@ -19,6 +19,9 @@ + Software Foundation, 59 Temple Place - Suite 330, Boston, MA + 02111-1307, USA. */ + ++ ++/* @@ PATCHED FOR GPC @@ */ ++ + #include "config.h" + #include "system.h" + #include "coretypes.h" +@@ -5077,13 +5080,36 @@ + return; + } + ++#ifndef GPC + domain_min = convert (sizetype, TYPE_MIN_VALUE (domain)); + domain_max = convert (sizetype, TYPE_MAX_VALUE (domain)); ++#else /* GPC */ ++ domain_min = convert (sbitsizetype, TYPE_MIN_VALUE (domain)); ++ domain_max = convert (sbitsizetype, TYPE_MAX_VALUE (domain)); ++ ++ /* Align the set. */ ++ if (set_alignment) ++ domain_min = size_binop (BIT_AND_EXPR, domain_min, sbitsize_int (-(int) set_alignment)); ++ ++#endif /* GPC */ + bitlength = size_binop (PLUS_EXPR, +- size_diffop (domain_max, domain_min), ++ size_binop (MINUS_EXPR, domain_max, domain_min), ++#ifndef GPC + ssize_int (1)); +- ++#else /* GPC */ ++ sbitsize_int (1)); ++#endif /* GPC */ ++ ++#ifdef GPC ++ if (TREE_INT_CST_HIGH (bitlength)) { ++ error ("set size too big for host integers"); ++ return; ++ } ++#endif /* GPC */ + nbits = tree_low_cst (bitlength, 1); ++#ifdef GPC ++ bitlength = convert (sizetype, bitlength); ++#endif /* GPC */ + + /* For "small" sets, or "medium-sized" (up to 32 bytes) sets that + are "complicated" (more than one range), initialize (the +@@ -5091,7 +5117,9 @@ + if (GET_MODE (target) != BLKmode || nbits <= 2 * BITS_PER_WORD + || (nbytes <= 32 && TREE_CHAIN (elt) != NULL_TREE)) + { ++#ifndef GPC + unsigned int set_word_size = TYPE_ALIGN (TREE_TYPE (exp)); ++#endif /* not GPC */ + enum machine_mode mode = mode_for_size (set_word_size, MODE_INT, 1); + char *bit_buffer = alloca (nbits); + HOST_WIDE_INT word = 0; +@@ -5104,10 +5132,14 @@ + { + if (bit_buffer[ibit]) + { ++#ifndef GPC + if (BYTES_BIG_ENDIAN) +- word |= (1 << (set_word_size - 1 - bit_pos)); ++#else /* GPC */ ++ if (set_words_big_endian) ++#endif /* GPC */ ++ word |= (((HOST_WIDE_INT)1) << (set_word_size - 1 - bit_pos)); + else +- word |= 1 << bit_pos; ++ word |= ((HOST_WIDE_INT)1) << bit_pos; + } + + bit_pos++; ibit++; +@@ -5169,13 +5201,23 @@ + endbit = startbit; + } + ++#ifndef GPC + startbit = convert (sizetype, startbit); + endbit = convert (sizetype, endbit); ++#endif /* not GPC */ + if (! integer_zerop (domain_min)) + { ++#ifdef GPC ++ startbit = convert (sbitsizetype, startbit); ++ endbit = convert (sbitsizetype, endbit); ++#endif /* GPC */ + startbit = size_binop (MINUS_EXPR, startbit, domain_min); + endbit = size_binop (MINUS_EXPR, endbit, domain_min); + } ++#ifdef GPC ++ startbit = convert (sizetype, startbit); ++ endbit = convert (sizetype, endbit); ++#endif /* GPC */ + startbit_rtx = expand_expr (startbit, NULL_RTX, MEM, + EXPAND_CONST_ADDRESS); + endbit_rtx = expand_expr (endbit, NULL_RTX, MEM, +@@ -5541,8 +5583,18 @@ + index, then convert to sizetype and multiply by the size of the + array element. */ + if (low_bound != 0 && ! integer_zerop (low_bound)) ++#ifdef GPC ++ /* I think that address arithmetic should always be done on sizetype or ++ its variants -- for Pascal signed seems to be the correct choice (and ++ generates slightly better code). -- Waldek */ ++ index = convert (sizetype, convert (bitsizetype, ++ size_binop (MINUS_EXPR, ++ convert (sbitsizetype, index), ++ convert (sbitsizetype, low_bound)))); ++#else + index = fold (build (MINUS_EXPR, TREE_TYPE (index), + index, low_bound)); ++#endif + + /* If the index has a self-referential type, pass it to a + WITH_RECORD_EXPR; if the component size is, pass our +diff -ru gcc-3.4.0.orig/gcc/fold-const.c gcc-3.4.0/gcc/fold-const.c +--- gcc-3.4.0.orig/gcc/fold-const.c 2004-05-19 21:59:36.000000000 +0200 ++++ gcc-3.4.0/gcc/fold-const.c 2004-05-19 22:03:12.000000000 +0200 +@@ -19,6 +19,9 @@ + Software Foundation, 59 Temple Place - Suite 330, Boston, MA + 02111-1307, USA. */ + ++ ++/* @@ PATCHED FOR GPC @@ */ ++ + /*@@ This file should be rewritten to use an arbitrary precision + @@ representation for "struct tree_int_cst" and "struct tree_real_cst". + @@ Perhaps the routines could also be used for bc/dc, and made a lib. +@@ -225,6 +228,17 @@ + && TYPE_IS_SIZETYPE (TREE_TYPE (t)))) + return overflow; + ++#ifdef GPC ++ /* Sign extension for unsigned types (sizetype) seems quite wrong. ++ Though the previous comment says otherwise, but according to the ++ GCC ChangeLog entry of 2000-10-20, I suppose it was meant only ++ to allow for overflows, not to sign extension, for sizetypes. ++ The problem shows, e.g., when converting a bitsizetype to ++ sizetype where the value doesn't fit in ssizetype. -- Frank */ ++ if (!TREE_UNSIGNED (TREE_TYPE (t))) ++ { ++#endif ++ + /* If the value's sign bit is set, extend the sign. */ + if (prec != 2 * HOST_BITS_PER_WIDE_INT + && (prec > HOST_BITS_PER_WIDE_INT +@@ -247,6 +261,10 @@ + } + } + ++#ifdef GPC ++ } ++#endif ++ + /* Return nonzero if signed overflow occurred. */ + return + ((overflow | (low ^ TREE_INT_CST_LOW (t)) | (high ^ TREE_INT_CST_HIGH (t))) +@@ -1343,10 +1361,14 @@ + } + + TREE_OVERFLOW (t) ++#ifndef GPC + = ((notrunc + ? (!uns || is_sizetype) && overflow + : (force_fit_type (t, (!uns || is_sizetype) && overflow) + && ! no_overflow)) ++#else /* GPC */ ++ = ((notrunc ? overflow : force_fit_type (t, overflow)) ++#endif /* GPC */ + | TREE_OVERFLOW (arg1) + | TREE_OVERFLOW (arg2)); + +diff -ru gcc-3.4.0.orig/gcc/function.c gcc-3.4.0/gcc/function.c +--- gcc-3.4.0.orig/gcc/function.c 2004-05-19 21:59:36.000000000 +0200 ++++ gcc-3.4.0/gcc/function.c 2004-05-19 22:08:25.000000000 +0200 +@@ -38,6 +38,8 @@ + This function changes the DECL_RTL to be a stack slot instead of a reg + then scans all the RTL instructions so far generated to correct them. */ + ++/* @@ PATCHED FOR GPC @@ */ ++ + #include "config.h" + #include "system.h" + #include "coretypes.h" +@@ -6962,8 +6964,13 @@ + tramp = round_trampoline_addr (XEXP (tramp, 0)); + #ifdef TRAMPOLINE_TEMPLATE + blktramp = replace_equiv_address (initial_trampoline, tramp); ++#ifndef GPC + emit_block_move (blktramp, initial_trampoline, + GEN_INT (TRAMPOLINE_SIZE), BLOCK_OP_NORMAL); ++#else ++ emit_block_move (blktramp, initial_trampoline, ++ GEN_INT (TRAMPOLINE_SIZE), BLOCK_OP_NO_LIBCALL); ++#endif + #endif + trampolines_created = 1; + INITIALIZE_TRAMPOLINE (tramp, XEXP (DECL_RTL (function), 0), context); +Only in gcc-3.4.0/gcc: function.c~ +diff -ru gcc-3.4.0.orig/gcc/integrate.c gcc-3.4.0/gcc/integrate.c +--- gcc-3.4.0.orig/gcc/integrate.c 2004-05-19 21:59:36.000000000 +0200 ++++ gcc-3.4.0/gcc/integrate.c 2004-05-19 22:03:12.000000000 +0200 +@@ -1341,6 +1341,30 @@ + { + rtx copy, pattern, set; + ++#ifdef GPC ++ /* CALL_PLACEHOLDERs within inline functions seem to cause ++ trouble in Pascal (fjf709.pas). References to formal ++ parameters of the inline function might get confused. So ++ replace the CALL_PLACEHOLDER by the normal calling code ++ here, at the cost of avoiding this particular combination ++ of optimizations (inlining and tail recursion/sibling ++ calls) -- though I'm not actually sure if it should be done ++ at all; the C frontend also seems to do only inlining in a ++ similar situation, and this might be good enough already. ++ ++ I don't understand all the backend does here, and I'm not ++ even sure if the real bug is in the fontend or backend, or ++ whether this is a fix or a work-around ... -- Frank */ ++ if (GET_CODE (insn) == CALL_INSN ++ && GET_CODE (PATTERN (insn)) == CALL_PLACEHOLDER) ++ { ++ rtx tmp = PREV_INSN (insn); ++ replace_call_placeholder (insn, sibcall_use_normal); ++ insn = tmp; ++ continue; ++ } ++#endif ++ + map->orig_asm_operands_vector = 0; + + switch (GET_CODE (insn)) +diff -ru gcc-3.4.0.orig/gcc/stor-layout.c gcc-3.4.0/gcc/stor-layout.c +--- gcc-3.4.0.orig/gcc/stor-layout.c 2004-05-19 21:59:36.000000000 +0200 ++++ gcc-3.4.0/gcc/stor-layout.c 2004-05-19 22:38:36.000000000 +0200 +@@ -20,6 +20,8 @@ + 02111-1307, USA. */ + + ++/* @@ PATCHED FOR GPC 20040512 @@ */ ++ + #include "config.h" + #include "system.h" + #include "coretypes.h" +@@ -59,6 +61,20 @@ + called only by a front end. */ + static int reference_types_internal = 0; + ++#ifdef GPC ++/* The word size of a bitstring or (power-)set value, in bits. ++ Must be non-zero. ++ May be overridden by front-ends. */ ++unsigned int set_word_size = BITS_PER_UNIT; ++ ++/* If non-zero, bits in (power-)sets start with the highest bit. ++ May be overridden by front-ends. ++ In order to be backward-compatible, the Chill frontend should ++ initialize this to BYTES_BIG_ENDIAN. */ ++unsigned int set_words_big_endian = 0; ++ ++#endif /* GPC */ ++ + static void finalize_record_size (record_layout_info); + static void finalize_type_size (tree); + static void place_union_field (record_layout_info, tree); +@@ -1655,7 +1671,11 @@ + + if (maxvalue - minvalue == 1 + && (maxvalue == 1 || maxvalue == 0)) ++#ifndef GPC + element_size = integer_one_node; ++#else /* GPC */ ++ element_size = bitsize_int(1); ++#endif /* GPC */ + } + + /* If neither bound is a constant and sizetype is signed, make +@@ -1760,6 +1780,7 @@ + abort (); + else + { ++#ifndef GPC + #ifndef SET_WORD_SIZE + #define SET_WORD_SIZE BITS_PER_WORD + #endif +@@ -1778,9 +1799,47 @@ + + TYPE_SIZE (type) = bitsize_int (rounded_size); + TYPE_SIZE_UNIT (type) = size_int (rounded_size / BITS_PER_UNIT); ++#else /* GPC */ ++ int alignment = set_alignment ? set_alignment : set_word_size; ++ tree lower_bound = convert (sbitsizetype, ++ TYPE_MIN_VALUE (TYPE_DOMAIN (type))); ++ tree upper_bound = convert (sbitsizetype, ++ TYPE_MAX_VALUE (TYPE_DOMAIN (type))); ++ tree size_in_bits, rounded_size; ++ if (set_alignment) ++ { ++ lower_bound = round_down (lower_bound, alignment); ++ } ++ size_in_bits = size_binop (PLUS_EXPR, ++ size_binop (MINUS_EXPR, ++ upper_bound, ++ lower_bound), ++ sbitsize_int(1)); ++ rounded_size = round_up (size_in_bits, alignment); ++ ++ if ( TREE_INT_CST_HIGH (rounded_size) ++ || TREE_INT_CST_LOW (rounded_size) > (unsigned) alignment) ++ { ++ TYPE_MODE (type) = BLKmode; ++ } ++ else ++ { ++ TYPE_MODE (type) = mode_for_size (alignment, MODE_INT, 1); ++ } ++ ++ TYPE_SIZE (type) = convert (bitsizetype, rounded_size); ++ TYPE_SIZE_UNIT (type) = convert (sizetype, ++ size_binop ( CEIL_DIV_EXPR, ++ rounded_size, ++ sbitsize_int (BITS_PER_UNIT))); ++#endif /* GPC */ + TYPE_ALIGN (type) = alignment; + TYPE_USER_ALIGN (type) = 0; ++#ifndef GPC + TYPE_PRECISION (type) = size_in_bits; ++#else /* GPC */ ++ TYPE_PRECISION (type) = TREE_INT_CST_LOW (size_in_bits); ++#endif /* GPC */ + } + break; + +Only in gcc-3.4.0/gcc: stor-layout.c~ +diff -ru gcc-3.4.0.orig/gcc/tree.c gcc-3.4.0/gcc/tree.c +--- gcc-3.4.0.orig/gcc/tree.c 2004-05-19 21:59:36.000000000 +0200 ++++ gcc-3.4.0/gcc/tree.c 2004-05-19 22:03:12.000000000 +0200 +@@ -19,6 +19,8 @@ + Software Foundation, 59 Temple Place - Suite 330, Boston, MA + 02111-1307, USA. */ + ++/* @@ PATCHED FOR GPC @@ */ ++ + /* This file contains the low level primitives for operating on tree nodes, + including allocation, list operations, interning of identifiers, + construction of data type nodes and statement nodes, +@@ -4649,10 +4651,18 @@ + = tree_low_cst (TYPE_MIN_VALUE (TYPE_DOMAIN (TREE_TYPE (init))), 0); + tree non_const_bits = NULL_TREE; + ++#ifdef GPC ++ /* Align the set. */ ++ if (set_alignment) ++ /* Note: `domain_min -= domain_min % set_alignment' would be wrong for negative ++ numbers (rounding towards 0, while we have to round towards -inf). */ ++ domain_min &= -(int) set_alignment; ++#endif /* GPC */ ++ + for (i = 0; i < bit_size; i++) + buffer[i] = 0; + +- for (vals = TREE_OPERAND (init, 1); ++ for (vals = CONSTRUCTOR_ELTS (init); + vals != NULL_TREE; vals = TREE_CHAIN (vals)) + { + if (!host_integerp (TREE_VALUE (vals), 0) +@@ -4670,7 +4680,10 @@ + + if (lo_index < 0 || lo_index >= bit_size + || hi_index < 0 || hi_index >= bit_size) +- abort (); ++ { ++ error ("invalid set initializer"); ++ return NULL_TREE; ++ } + for (; lo_index <= hi_index; lo_index++) + buffer[lo_index] = 1; + } +@@ -4681,7 +4694,7 @@ + = tree_low_cst (TREE_VALUE (vals), 0) - domain_min; + if (index < 0 || index >= bit_size) + { +- error ("invalid initializer for bit string"); ++ error ("invalid set initializer"); + return NULL_TREE; + } + buffer[index] = 1; +@@ -4699,9 +4712,14 @@ + get_set_constructor_bytes (tree init, unsigned char *buffer, int wd_size) + { + int i; ++#ifdef GPC ++ int bit_size = wd_size * BITS_PER_UNIT; ++ unsigned int bit_pos = 0; ++#else /* not GPC */ + int set_word_size = BITS_PER_UNIT; + int bit_size = wd_size * set_word_size; + int bit_pos = 0; ++#endif /* not GPC */ + unsigned char *bytep = buffer; + char *bit_buffer = alloca (bit_size); + tree non_const_bits = get_set_constructor_bits (init, bit_buffer, bit_size); +@@ -4711,6 +4729,24 @@ + + for (i = 0; i < bit_size; i++) + { ++#ifdef GPC ++ if (bit_buffer[i]) ++ { ++ int k = bit_pos / BITS_PER_UNIT; ++ if (WORDS_BIG_ENDIAN) ++ k = set_word_size / BITS_PER_UNIT - 1 - k; ++ if (set_words_big_endian) ++ bytep[k] |= (1 << (BITS_PER_UNIT - 1 - bit_pos % BITS_PER_UNIT)); ++ else ++ bytep[k] |= (1 << (bit_pos % BITS_PER_UNIT)); ++ } ++ bit_pos++; ++ if (bit_pos >= set_word_size) ++ { ++ bit_pos = 0; ++ bytep += set_word_size / BITS_PER_UNIT; ++ } ++#else /* not GPC */ + if (bit_buffer[i]) + { + if (BYTES_BIG_ENDIAN) +@@ -4721,6 +4757,7 @@ + bit_pos++; + if (bit_pos >= set_word_size) + bit_pos = 0, bytep++; ++#endif /* not GPC */ + } + return non_const_bits; + } +Only in gcc-3.4.0/gcc: tree.def~ +diff -ru gcc-3.4.0.orig/gcc/tree.h gcc-3.4.0/gcc/tree.h +--- gcc-3.4.0.orig/gcc/tree.h 2004-05-19 21:59:36.000000000 +0200 ++++ gcc-3.4.0/gcc/tree.h 2004-05-19 22:03:12.000000000 +0200 +@@ -22,6 +22,9 @@ + #ifndef GCC_TREE_H + #define GCC_TREE_H + ++ ++/* @@ PATCHED FOR GPC @@ */ ++ + #include "machmode.h" + #include "version.h" + #include "input.h" +@@ -2463,6 +2466,14 @@ + + /* If nonzero, the alignment of a bitstring or (power-)set value, in bits. */ + extern unsigned int set_alignment; ++#ifdef GPC ++ ++/* The word size of a bitstring or (power-)set value, in bits. */ ++extern unsigned int set_word_size; ++ ++/* If non-zero, bits in (power-)sets start with the highest bit. */ ++extern unsigned int set_words_big_endian; ++#endif /* GPC */ + + /* Concatenate two lists (chains of TREE_LIST nodes) X and Y + by making the last node in X point to Y. +diff -ru gcc-3.4.0.orig/gcc/version.c gcc-3.4.0/gcc/version.c +--- gcc-3.4.0.orig/gcc/version.c 2004-05-19 21:59:36.000000000 +0200 ++++ gcc-3.4.0/gcc/version.c 2004-05-19 22:03:12.000000000 +0200 +@@ -14,4 +14,8 @@ + forward us bugs reported to you, if you determine that they are + not bugs in your modifications.) */ + ++#ifdef GPC ++const char bug_report_url[] = ""; ++#else + const char bug_report_url[] = ""; ++#endif --- gcc-3.4-3.4.3.orig/debian/patches/gpc-update27i.diff +++ gcc-3.4-3.4.3/debian/patches/gpc-update27i.diff @@ -0,0 +1,8255 @@ +diff -ru gpc-20040516.orig/p/config-lang.in gpc-20040516/p/config-lang.in +--- gpc-20040516.orig/p/config-lang.in 2004-05-13 00:48:32.000000000 +0200 ++++ gpc-20040516/p/config-lang.in 2004-07-06 19:08:51.000000000 +0200 +@@ -28,19 +28,50 @@ + stagestuff="gpc\$(exeext) gpc-cross\$(exeext) gpc1\$(exeext) gpcpp\$(exeext) libgpc.a" + gtfiles="\$(srcdir)/p/gpc.h \$(srcdir)/p/declarations.c \$(srcdir)/p/module.c \$(srcdir)/p/predef.c" + ++echo "in p/config-lang.in" ++echo "srcdir=$srcdir" ++echo "pwd=`pwd`" ++ ++( ++if [ -f "$srcdir/version.c" ] ++then ++ MY_SRCDIR="$srcdir" ++ gcc_version_h="gcc-version.h" ++else ++ MY_SRCDIR="$srcdir/gcc" ++ gcc_version_h="gcc/gcc-version.h" ++ [ -d gcc ] || mkdir gcc ++fi ++ ++# Check if running first time ++if [ -r "$gcc_version_h" ] ; then ++ echo "Not first time" ++ exit ++fi ++echo "First time" ++ ++srcdir="$MY_SRCDIR" ++ + version=`grep version_string "$srcdir/version.c" | sed -e 's/[^"]*"//;s/[ "].*//'` + mainversion="$version" + gcc3=n + if echo $version | grep '2\.9' > /dev/null || echo $version | grep '3\.[1-9]' > /dev/null; then +- echo '#define EGCS' > gcc-version.h ++ echo '#define EGCS' > "$gcc_version_h" + if echo $version | grep '2\.95\.[3-9]' > /dev/null || echo $version | grep '3\.[1-9]' > /dev/null; then +- echo '#define GCC_2_95_3' >> gcc-version.h ++ echo '#define GCC_2_95_3' >> "$gcc_version_h" + fi + if echo $version | grep '2\.9[6-9]' > /dev/null || echo $version | grep '3\.[1-9]' > /dev/null; then + gcc3=y +- echo '#define EGCS97' >> gcc-version.h ++ echo '#define EGCS97' >> "$gcc_version_h" + if echo $version | grep '3\.[3-9]' > /dev/null; then +- echo '#define GCC_3_3' >> gcc-version.h ++ echo '#define GCC_3_3' >> "$gcc_version_h" ++ if echo $version | grep '^3\.[4-9]' > /dev/null; then ++ echo '#define GCC_3_4' >> "$gcc_version_h" ++ if echo $version | grep '^3\.[5-9]' > /dev/null; then ++ echo '#define GCC_3_5' >> "$gcc_version_h" ++ fi ++ fi ++ + # echo "" >&2 + # echo "***" >&2 + # echo "*** Detected GCC version $mainversion." >&2 +@@ -56,7 +87,7 @@ + fi + fi + else +- echo "/* empty */" > gcc-version.h ++ echo "/* empty */" > "$gcc_version_h" + fi + + for x in 2.95.1 2.95.2 2.95.3 2.95.3-5 2.95.3-6 2.95.3-8 2.95.4; do +@@ -119,3 +150,5 @@ + echo "# empty" > "$srcdir/p/Makefile.in" + fi + fi ++) || exit 1 ++ +diff -ru gpc-20040516.orig/p/cpp_predef.h gpc-20040516/p/cpp_predef.h +--- gpc-20040516.orig/p/cpp_predef.h 2004-07-06 19:20:30.000000000 +0200 ++++ gpc-20040516/p/cpp_predef.h 2004-07-06 19:08:51.000000000 +0200 +@@ -0,0 +1 @@ ++#define GPC_CPP_PREDEFINES CPP_PREDEFINES +diff -ru gpc-20040516.orig/p/declarations.c gpc-20040516/p/declarations.c +--- gpc-20040516.orig/p/declarations.c 2004-05-12 02:39:11.000000000 +0200 ++++ gpc-20040516/p/declarations.c 2004-07-06 19:12:30.000000000 +0200 +@@ -214,13 +214,14 @@ + static tree shadow_one_level PARAMS ((tree, tree)); + static int resolve_forward_decl PARAMS ((tree)); + static tree get_parm_info PARAMS ((tree, int)); +-static tree lookup_name_current_level PARAMS ((tree)); + static tree lookup_c_type PARAMS ((const char *)); + static tree make_real PARAMS ((double)); + static tree gpc_builtin_function PARAMS ((const char *, const char *, int, tree, tree)); + #if defined (EGCS97) && !defined (GCC_3_3) + static void mark_binding_level PARAMS ((void *)); + #endif ++static tree mangle_name PARAMS ((tree)); ++static int same_imported PARAMS ((tree, tree)); + + /* Nonzero if we are currently in the global binding level. */ + int +@@ -228,7 +229,7 @@ + { + if (size_volatile) + return -1; +- return current_binding_level == global_binding_level; ++ return pascal_global_bindings_p (); + } + + int +@@ -479,6 +480,36 @@ + return get_identifier (copy); + } + ++static tree ++mangle_name (name) ++ tree name; ++{ ++ assert (current_module); ++ return pascal_mangle_names(NULL, IDENTIFIER_POINTER (name)); ++} ++ ++tree ++pascal_mangle_names(object_name, name) ++ const char * object_name; ++ const char * name; ++{ ++ static long serial_no = 0; ++ char serial_str[22]; ++ const char * object_sep; ++ const char * mn = IDENTIFIER_POINTER (current_module->assembler_name); ++ sprintf(serial_str, "%ld", serial_no++); ++ if (!object_name) ++ { ++ object_name = ""; ++ object_sep = ""; ++ } ++ else ++ object_sep = "_"; ++ return get_identifier (ACONCAT (( ++ mn, "_S", serial_str, object_sep, object_name, "_", ++ name, NULL))); ++} ++ + /* Parameters. */ + + tree +@@ -766,17 +797,60 @@ + return error_mark_node; + } + ++int ++same_imported (x, y) ++ tree x, y; ++{ ++ tree tx = TREE_TYPE (x); ++ tree ty = TREE_TYPE (y); ++ if (TREE_CODE (x) != TREE_CODE (y)) ++ return 0; ++ if (TREE_CODE (x) != CONST_DECL && ++ TYPE_MAIN_VARIANT (tx) != TYPE_MAIN_VARIANT (ty)) ++ return 0; ++ switch (TREE_CODE (x)) ++ { ++ case TYPE_DECL: ++ if (PASCAL_TYPE_BINDABLE (tx) != PASCAL_TYPE_BINDABLE (ty)) ++ return 0; ++ /* FALLTHROUGH */ ++ case CONST_DECL: ++ /* @@@@@@@ We should really compare _values_ -- below we ++ check if we have the same expression */ ++ if (DECL_INITIAL (x) == DECL_INITIAL (y)) ++ return 1; ++ break; ++ case FUNCTION_DECL: ++ case VAR_DECL: ++ /* @@ Not clear what to do if user specifies the same linker ++ name for two objects (different normal Pascal declarations ++ never give the same linker name). */ ++ if (DECL_EXTERNAL (x) && DECL_EXTERNAL (y) && ++ DECL_ASSEMBLER_NAME (x) == DECL_ASSEMBLER_NAME (y)) ++ return 1; ++ break; ++ default: ++ return 0; ++ } ++ return 0; ++} ++ + /* Record a decl-node X as belonging to the current lexical scope. + Check for errors (such as redeclarations in the same scope). + Returns either X or a forward decl. If a forward decl is returned, + it may have been smashed to agree with what X says. */ ++ ++ + tree + pushdecl (x) + tree x; + { +- tree t, name = DECL_NAME (x); +- ++ tree t; ++ tree name = DECL_NAME (x); ++ int weak = 0; + CHK_EM (TREE_TYPE (x)); ++ assert (!PASCAL_DECL_WEAK (x)); ++ assert (!PASCAL_DECL_IMPORTED (x)); + + /* @@ Can happen when called from the backend. */ + if (!name) +@@ -795,12 +869,17 @@ + warning ("local external declaration of `%s'", IDENTIFIER_NAME (name)); + + t = lookup_name_current_level (name); +- + /* Overloading an operator is ok. The decl is a dummy placeholder. + No need to replace it with another one. */ + if (t && TREE_CODE (t) == OPERATOR_DECL && TREE_CODE (x) == OPERATOR_DECL) + return t; + ++ if (t && PASCAL_DECL_WEAK (t)) ++ { ++ t = NULL_TREE; ++ weak = 1; ++ } ++ + if (t && (TREE_CODE (t) != FUNCTION_DECL || TREE_CODE (x) != FUNCTION_DECL + || DECL_INITIAL (t) || !comptypes (TREE_TYPE (x), TREE_TYPE (t)))) + { +@@ -867,6 +946,7 @@ + } + + /* Install the new declaration. */ ++ if (!weak) + t = IDENTIFIER_VALUE (name); + IDENTIFIER_VALUE (name) = x; + +@@ -894,6 +974,61 @@ + return x; + } + ++tree ++pushdecl_import (x, is_weak) ++ tree x; ++ int is_weak; ++{ ++ tree name = DECL_NAME (x); ++ tree old = lookup_name_current_level (name); ++ int old_weak = 0; ++ assert (!PASCAL_DECL_WEAK (x)); ++ ++ if (old && PASCAL_DECL_WEAK (old)) ++ { ++ old = 0; ++ old_weak = 1; ++ } ++ ++ /* `uses' do not override declarations from current module/unit */ ++ if (old && is_weak) ++ return old; ++ ++ /* Overloading an operator is ok. The decl is a dummy placeholder. ++ No need to replace it with another one. */ ++ if (old && TREE_CODE (old) == OPERATOR_DECL && TREE_CODE (x) == OPERATOR_DECL) ++ return old; ++ ++ /* If the same thing is imported multiple times we just ignore ++ second declaration, unless it is principal identifier of ++ a constant */ ++ if (old && PASCAL_DECL_IMPORTED (old) && same_imported (old, x)) ++ { ++ if (TREE_CODE (x) == CONST_DECL && PASCAL_CST_PRINCIPAL_ID (x)) ++ { ++ old = 0; ++ old_weak = 1; ++ } ++ else ++ return old; ++ } ++ ++ if (old) ++ { ++ error_with_decl (x, "redeclaration of `%s'"); ++ error_with_decl (old, " previous declaration"); ++ return old; ++ } ++ ++ if (!old_weak) ++ old = IDENTIFIER_VALUE (name); ++ if (old) ++ current_binding_level->shadowed = ++ tree_cons (name, old, current_binding_level->shadowed); ++ PASCAL_DECL_WEAK (x) = is_weak; ++ return pushdecl_nocheck (x); ++} ++ + /* Record a decl-node X as belonging to the current lexical scope + uncondionally and without any errors etc. (unlike pushdecl). + For module imports and implicit declarations. */ +@@ -1043,7 +1178,7 @@ + } + + /* Similar to `lookup_name' but look only at current scope. */ +-static tree ++tree + lookup_name_current_level (name) + tree name; + { +@@ -1078,9 +1213,19 @@ + return; + if (co->warn_id_case && IDENTIFIER_SPELLING_FILE (id)) + { ++#ifndef GCC_3_4 + warning_with_file_and_line (filename, line, "capitalisation of `%s' doesn't match", spelling); + warning_with_file_and_line (IDENTIFIER_SPELLING_FILE (id), IDENTIFIER_SPELLING_LINENO (id), + " previous capitalisation `%s'", IDENTIFIER_SPELLING (id)); ++#else ++ location_t loc_aux; ++ loc_aux.file = filename; ++ loc_aux.line = line; ++ warning ("%Hcapitalisation of identifier `%s' doesn't match", &loc_aux, spelling); ++ loc_aux.file = IDENTIFIER_SPELLING_FILE (id); ++ loc_aux.line = IDENTIFIER_SPELLING_LINENO (id); ++ warning ("%H previous capitalisation `%s'", &loc_aux, IDENTIFIER_SPELLING (id)); ++#endif + } + } + IDENTIFIER_SPELLING (id) = PERMANENT_STRING (spelling); +@@ -1168,6 +1313,33 @@ + } + + tree ++build_qualified_id (interface_id, id) ++ tree interface_id, id; ++{ ++ tree qid = get_identifier (ACONCAT ( ++ (IDENTIFIER_POINTER (interface_id), ++ ".", ++ (IDENTIFIER_POINTER (id)), ++ NULL))); ++ PASCAL_QUALIFIED_ID (qid) = 1; ++ return qid; ++} ++ ++tree ++build_qualified_or_component_acces (id1, id2) ++ tree id1, id2; ++{ ++ tree decl = lookup_name (id1); ++ if (decl && (TREE_CODE (decl) != NAMESPACE_DECL)) ++ { ++ decl = check_identifier(id1); ++ return build_component_ref (undo_schema_dereference (decl), id2); ++ } ++ else ++ return check_identifier (build_qualified_id (id1, id2)); ++} ++ ++tree + check_identifier (id) + tree id; + { +@@ -1300,6 +1472,11 @@ + { + tree endlink; + ++#ifndef EGCS97 ++ /* Make identifier nodes long enough for the language-specific slots. */ ++ set_identifier_size (sizeof (struct lang_identifier)); ++#endif ++ + #if defined (EGCS97) && !defined (GCC_3_3) + ggc_add_tree_root (pascal_global_trees, PTI_MAX); + ggc_add_root (¤t_binding_level, 1, sizeof (current_binding_level), mark_binding_level); +@@ -2056,7 +2233,7 @@ + else if (DECL_EXTERNAL (d)) + SET_DECL_ASSEMBLER_NAME (d, de_capitalize (name)); + else +- SET_DECL_ASSEMBLER_NAME (d, name); ++ SET_DECL_ASSEMBLER_NAME (d, mangle_name (name)); + + rest_of_decl_compilation (d, 0, !DECL_CONTEXT (d), 1 /* for GPC */); + +@@ -2233,12 +2410,12 @@ + + /* Compare two routine declarations. If arguments is NULL_TREE, it is not checked. */ + void +-check_routine_decl (arguments, restype, resvar, structor, old, filename, lineno) ++check_routine_decl (arguments, restype, resvar, structor, old, filename, line) + tree arguments, restype, resvar; + int structor; + tree old; + filename_t filename; +- int lineno; ++ int line; + { + int mismatch = 0; + if (arguments) +@@ -2267,7 +2444,15 @@ + { + /* Say `routine' since there might be a mismatch in whether it's + supposed to be a procedure, function or structor. */ +- error_with_file_and_line (filename, lineno, "routine definition does not match previous declaration"); ++#ifndef GCC_3_4 ++ error_with_file_and_line (filename, line, "routine definition does not match previous declaration"); ++#else ++ location_t loc_aux; ++ loc_aux.file = filename; ++ loc_aux.line = line; ++ error ("%Hroutine definition does not match previous declaration", ++ &loc_aux); ++#endif + error_with_decl (old, " previous declaration"); + } + } +@@ -2313,11 +2498,14 @@ + + if (old && (!was_forward || TREE_CODE (old) != FUNCTION_DECL || DECL_INITIAL (old))) + { ++ if (!PASCAL_DECL_WEAK (old)) ++ { + error ("redeclaration of `%s'", IDENTIFIER_NAME (name)); + error_with_decl (old, " previous declaration"); +- old = NULL_TREE; + redeclaration = 1; + } ++ old = NULL_TREE; ++ } + + if (old) + { +@@ -2390,7 +2578,7 @@ + if (!PASCAL_METHOD_HEADING (foobar) /*&& !current_module->main_program*/ + && !(old && DECL_EXTERNAL (old))) + TREE_PUBLIC (decl) = 0; +- SET_DECL_ASSEMBLER_NAME (decl, DECL_NAME (decl)); ++ SET_DECL_ASSEMBLER_NAME (decl, mangle_name (DECL_NAME (decl))); + } + + if (is_extern && local) +@@ -2421,7 +2609,13 @@ + SET_DECL_LANG_OPERATOR_DECL (decl, operator_decl); + + if (local) ++ { ++#ifdef GCC_3_4 ++ DECL_CONTEXT (decl) = current_function_decl; ++ SET_DECL_ASSEMBLER_NAME (decl, NULL); ++#endif + push_function_context (); ++ } + + current_function_decl = decl; + +@@ -2456,7 +2650,11 @@ + DECL_ARGUMENTS (decl) = getdecls (); + + /* Initialize the RTL code for the function. */ ++#ifndef GCC_3_4 + init_function_start (decl, input_filename, lineno); ++#else ++ init_function_start (decl) ; ++#endif + + /* Set up parameters and prepare for return. */ + expand_function_start (decl, 0); +@@ -2549,7 +2747,11 @@ + #else + make_decl_rtl (decl, NULL); + #endif ++#ifndef GCC_3_4 + init_function_start (decl, input_filename, lineno); ++#else ++ init_function_start (decl); ++#endif + #ifndef EGCS97 + /* To avoid crashing when compiling a unit with `-O3', see obstack_empty_p in tree.c:restore_tree_status() */ + preserve_initializer (); +@@ -2598,7 +2800,11 @@ + } + + /* Generate rtl for function exit. */ ++#ifndef GCC_3_4 + expand_function_end (input_filename, lineno, 0); ++#else ++ expand_function_end (); ++#endif + + #ifndef EGCS97 + /* So we can tell if jump_optimize sets it to 1. */ +@@ -2659,7 +2865,9 @@ + tree v = convert (r, build_int_2 (c, 0)); + PASCAL_TREE_FRESH_CST (v) = 1; + DECL_INITIAL (decl) = TREE_VALUE (id) = v; ++ PASCAL_CST_PRINCIPAL_ID (decl) = 1; + pushdecl (decl); ++ handle_autoexport (TREE_PURPOSE (id)); + if (!TREE_CHAIN (id)) + TYPE_MAX_VALUE (r) = v; + } +@@ -2860,7 +3068,9 @@ + tree list; + { + for (; list; list = TREE_CHAIN (list)) ++ { + IDENTIFIER_VALUE (TREE_PURPOSE (list)) = TREE_VALUE (list); ++ } + } + + tree +@@ -3081,17 +3291,37 @@ + TREE_STATIC (d) = !!(qualifiers & VQ_STATIC); + if (TREE_STATIC (d) + DECL_EXTERNAL (d) + DECL_REGISTER (d) > 1) + error ("multiple storage classes in variable declaration"); ++ { ++ tree assembler_name0 = 0; + if (pascal_global_bindings_p ()) + { +- TREE_PUBLIC (d) = !TREE_STATIC (d) && !DECL_REGISTER (d) && +- (DECL_EXTERNAL (d) || !current_module->implementation || assembler_name); ++ TREE_PUBLIC (d) = !TREE_STATIC (d) && !DECL_REGISTER (d) ++ && (DECL_EXTERNAL (d) || !current_module->implementation ++ || assembler_name); ++ if (TREE_PUBLIC (d) && !assembler_name && !DECL_EXTERNAL (d)) ++ assembler_name0 = mangle_name(TREE_VALUE (v)); + TREE_STATIC (d) = !DECL_EXTERNAL (d); + } + else + TREE_PUBLIC (d) = DECL_EXTERNAL (d); + DECL_COMMON (d) = !TREE_PUBLIC (d); +- SET_DECL_ASSEMBLER_NAME (d, assembler_name ? check_assembler_name (assembler_name) +- : (qualifiers & VQ_EXTERNAL) ? de_capitalize (TREE_VALUE (v)) : TREE_VALUE (v)); ++ if (assembler_name0) ++ SET_DECL_ASSEMBLER_NAME (d, assembler_name0); ++ else ++ { ++ tree new_name = assembler_name; ++ if (new_name) ++ new_name = check_assembler_name (new_name); ++ else if (qualifiers & VQ_EXTERNAL) ++ new_name = de_capitalize (TREE_VALUE (v)); ++ else ++#ifdef GCC_3_4 ++ if (pascal_global_bindings_p ()) ++#endif ++ new_name = TREE_VALUE (v); ++ SET_DECL_ASSEMBLER_NAME (d, new_name); ++ } ++ } + pascal_decl_attributes (&d, attributes); + if (DECL_EXTERNAL (d) || TREE_STATIC (d)) + { +diff -ru gpc-20040516.orig/p/expressions.c gpc-20040516/p/expressions.c +--- gpc-20040516.orig/p/expressions.c 2004-05-12 01:37:37.000000000 +0200 ++++ gpc-20040516/p/expressions.c 2004-07-06 19:08:51.000000000 +0200 +@@ -855,7 +855,7 @@ + build_array_ref (sval, build_binary_op (PLUS_EXPR, len1, integer_one_node, 0)), NOP_EXPR, exp2)); + else + expand_expr_stmt (build_memcpy ( +- build (PLUS_EXPR, cstring_type_node, str_addr, len1, 0), ++ build (PLUS_EXPR, cstring_type_node, str_addr, len1), + build1 (ADDR_EXPR, cstring_type_node, PASCAL_STRING_VALUE (exp2)), len2)); + + /* Save the combined length of strings */ +@@ -1438,10 +1438,17 @@ + if (TREE_CODE (factor) == STRING_CST) + { + tree length = build_int_2 (TREE_STRING_LENGTH (factor) - 1, 0); ++#ifndef GCC_3_4 + factor = build (CONSTRUCTOR, build_pascal_string_schema (length), NULL_TREE, + tree_cons (NULL_TREE, length, + tree_cons (NULL_TREE, length, + build_tree_list (NULL_TREE, factor)))); ++#else ++ factor = build_constructor (build_pascal_string_schema (length), ++ tree_cons (NULL_TREE, length, ++ tree_cons (NULL_TREE, length, ++ build_tree_list (NULL_TREE, factor)))); ++#endif + /* Make this a valid lvalue for taking addresses. */ + TREE_CONSTANT (factor) = 1; + TREE_STATIC (factor) = 1; +@@ -1867,7 +1874,9 @@ + case NEGATE_EXPR: + case ABS_EXPR: + case FLOAT_EXPR: ++#ifndef GCC_3_4 + case FFS_EXPR: ++#endif + /* These don't change whether an object is non-zero or zero. */ + return truthvalue_conversion (TREE_OPERAND (expr, 0)); + +@@ -2108,7 +2117,9 @@ + break; + + case BIT_AND_EXPR: ++#ifndef GCC_3_4 + case BIT_ANDTC_EXPR: ++#endif + case BIT_IOR_EXPR: + case BIT_XOR_EXPR: + if (code0 == INTEGER_TYPE && code1 == INTEGER_TYPE) +@@ -3121,14 +3132,20 @@ + return error_mark_node; + } + if (TREE_CODE (pointer) == ADDR_EXPR ++#ifndef GCC_3_4 + && !flag_volatile ++#endif + && (TREE_TYPE (TREE_OPERAND (pointer, 0)) == t)) + return TREE_OPERAND (pointer, 0); + + ref = build1 (INDIRECT_REF, t, pointer); + TREE_READONLY (ref) = TYPE_READONLY (t); + TREE_THIS_VOLATILE (ref) = TYPE_VOLATILE (t); +- TREE_SIDE_EFFECTS (ref) = TYPE_VOLATILE (t) || TREE_SIDE_EFFECTS (pointer) || flag_volatile; ++ TREE_SIDE_EFFECTS (ref) = TYPE_VOLATILE (t) || TREE_SIDE_EFFECTS (pointer) ++#ifndef GCC_3_4 ++ || flag_volatile ++#endif ++ ; + prediscriminate_schema (ref); + return ref; + } +diff -ru gpc-20040516.orig/p/gbe.h gpc-20040516/p/gbe.h +--- gpc-20040516.orig/p/gbe.h 2004-04-08 14:30:41.000000000 +0200 ++++ gpc-20040516/p/gbe.h 2004-07-06 19:08:51.000000000 +0200 +@@ -102,6 +102,17 @@ + #endif + + #include "system.h" ++#ifdef GCC_3_4 ++#define CONCAT2(a,b) a##b ++#define STRINGX(s) #s ++#define lineno input_line ++#define warning_with_decl(x, y) (warning ("%H" y, &DECL_SOURCE_LOCATION (x), \ ++ DECL_NAME (x)?IDENTIFIER_POINTER (DECL_NAME (x)):0)) ++#define error_with_decl(x, y) (error("%H" y, &DECL_SOURCE_LOCATION (x), \ ++ DECL_NAME (x)?IDENTIFIER_POINTER (DECL_NAME (x)):0)) ++#include "coretypes.h" ++#include "tm.h" ++#endif + #include + #include "tree.h" + #ifdef EGCS97 +diff -ru gpc-20040516.orig/p/gpc.c gpc-20040516/p/gpc.c +--- gpc-20040516.orig/p/gpc.c 2004-01-01 00:25:07.000000000 +0100 ++++ gpc-20040516/p/gpc.c 2004-07-06 19:08:51.000000000 +0200 +@@ -95,6 +95,13 @@ + #endif + #include "config.h" + #include "system.h" ++#ifdef GCC_3_4 ++#include "coretypes.h" ++#include "multilib.h" /* before tm.h */ ++#include "tm.h" ++#else ++#include "multilib.h" ++#endif + #include + #if ! defined( SIGCHLD ) && defined( SIGCLD ) + # define SIGCHLD SIGCLD +@@ -161,6 +168,16 @@ + + #define lang_specific_extra_outfiles 0 + ++#ifndef EGCS97 ++#undef bool ++#define bool int ++#undef false ++#define false 0 ++#undef true ++#define true 1 ++#define ISIDNUM(c) (isalnum(c)||(c) == '_') ++#endif ++ + extern int lang_specific_pre_link PARAMS ((void)); + int + lang_specific_pre_link () +@@ -234,7 +251,7 @@ + #include + #endif + #if defined (HAVE_DECL_GETRUSAGE) && !HAVE_DECL_GETRUSAGE +-extern int getrusage PARAMS ((int, struct rusage *)); ++extern int getrusage (int, struct rusage *); + #endif + + #ifdef EGCS97 +@@ -335,6 +352,14 @@ + + #endif + ++#ifndef GCC_3_4 ++static const struct { ++ const char *name, *value; ++} configure_default_options[1] = { {NULL, NULL} }; ++#define IS_ABSOLUTE_PATH(STR) IS_ABSOLUTE_PATHNAME (STR) ++#endif ++ ++ + #ifndef VMS + /* FIXME: the location independence code for VMS is hairier than this, + and hasn't been written. */ +@@ -345,8 +370,10 @@ + + static const char dir_separator_str[] = { DIR_SEPARATOR, 0 }; + ++#ifndef GCC_3_3 + #define obstack_chunk_alloc xmalloc + #define obstack_chunk_free free ++#endif + + #ifndef GET_ENVIRONMENT + #define GET_ENVIRONMENT(VAR,NAME) do { (VAR) = getenv (NAME); } while (0) +@@ -434,11 +461,37 @@ + + static int report_times; + ++/* Nonzero means place this string before uses of /, so that include ++ and library files can be found in an alternate location. */ ++ ++#ifdef TARGET_SYSTEM_ROOT ++static const char *target_system_root = TARGET_SYSTEM_ROOT; ++#else ++static const char *target_system_root = 0; ++#endif ++ ++/* Nonzero means pass the updated target_system_root to the compiler. */ ++ ++static int target_system_root_changed; ++ ++/* Nonzero means append this string to target_system_root. */ ++ ++static const char *target_sysroot_suffix = 0; ++ ++/* Nonzero means append this string to target_system_root for headers. */ ++ ++static const char *target_sysroot_hdrs_suffix = 0; ++ + /* Nonzero means write "temp" files in source directory + and use the source file's name in them, and don't delete them. */ + + static int save_temps_flag; + ++/* Nonzero means use pipes to communicate between subprocesses. ++ Overridden by either of the above two flags. */ ++ ++static int use_pipes; ++ + /* The compiler version. */ + + static const char *compiler_version; +@@ -503,74 +556,79 @@ + /* Forward declaration for prototypes. */ + struct path_prefix; + +-static void init_spec PARAMS ((void)); ++static void init_spec (void); + #if !defined (GCC_3_3) && !defined (VMS) +-static char **split_directories PARAMS ((const char *, int *)); +-static void free_split_directories PARAMS ((char **)); +-static char *make_relative_prefix PARAMS ((const char *, const char *, const char *)); +-#endif +-static void store_arg PARAMS ((const char *, int, int)); +-static char *load_specs PARAMS ((const char *)); +-static void read_specs PARAMS ((const char *, int)); +-static void set_spec PARAMS ((const char *, const char *)); +-static struct compiler *lookup_compiler PARAMS ((const char *, size_t, const char *)); +-static char *build_search_list PARAMS ((struct path_prefix *, const char *, int)); +-static void putenv_from_prefixes PARAMS ((struct path_prefix *, const char *)); +-static int access_check PARAMS ((const char *, int)); +-static char *find_a_file PARAMS ((struct path_prefix *, const char *, +- int, int)); +-static void add_prefix PARAMS ((struct path_prefix *, const char *, +- const char *, int, int, int *, int)); +-static void translate_options PARAMS ((int *, const char *const **)); +-static char *skip_whitespace PARAMS ((char *)); +-static void delete_if_ordinary PARAMS ((const char *)); +-static void delete_temp_files PARAMS ((void)); +-static void delete_failure_queue PARAMS ((void)); +-static void clear_failure_queue PARAMS ((void)); +-static int check_live_switch PARAMS ((int, int)); +-static const char *handle_braces PARAMS ((const char *)); +-static const struct spec_function *lookup_spec_function PARAMS ((const char *)); +-static const char *eval_spec_function PARAMS ((const char *, const char *)); +-static const char *handle_spec_function PARAMS ((const char *)); +-static char *save_string PARAMS ((const char *, int)); +-static void set_collect_gcc_options PARAMS ((void)); +-static int do_spec_1 PARAMS ((const char *, int, const char *)); +-static int do_spec_2 PARAMS ((const char *)); +-static void do_self_spec PARAMS ((const char *)); +-static const char *find_file PARAMS ((const char *)); +-static int is_directory PARAMS ((const char *, const char *, int)); +-static void validate_switches PARAMS ((const char *)); +-static void validate_all_switches PARAMS ((void)); +-static void give_switch PARAMS ((int, int, int)); +-static int used_arg PARAMS ((const char *, int)); +-static int default_arg PARAMS ((const char *, int)); +-static void set_multilib_dir PARAMS ((void)); +-static void print_multilib_info PARAMS ((void)); +-static void perror_with_name PARAMS ((const char *)); +-static void pfatal_pexecute PARAMS ((const char *, const char *)) +- ATTRIBUTE_NORETURN; +-static void notice PARAMS ((const char *, ...)) +- ATTRIBUTE_PRINTF_1; +-static void display_help PARAMS ((void)); +-static void add_preprocessor_option PARAMS ((const char *, int)); +-static void add_assembler_option PARAMS ((const char *, int)); +-static void add_linker_option PARAMS ((const char *, int)); +-static void process_command PARAMS ((int, const char *const *)); +-static int execute PARAMS ((void)); +-static void alloc_args PARAMS ((void)); +-static void clear_args PARAMS ((void)); +-static void fatal_error PARAMS ((int)); ++static char **split_directories (const char *, int *); ++static void free_split_directories (char **); ++static char *make_relative_prefix (const char *, const char *, const char *); ++#endif ++static void store_arg (const char *, int, int); ++static char *load_specs (const char *); ++static void read_specs (const char *, int); ++static void set_spec (const char *, const char *); ++static struct compiler *lookup_compiler (const char *, size_t, const char *); ++static char *build_search_list (struct path_prefix *, const char *, int); ++static void putenv_from_prefixes (struct path_prefix *, const char *); ++static int access_check (const char *, int); ++static char *find_a_file (struct path_prefix *, const char *, int, int); ++static void add_prefix (struct path_prefix *, const char *, const char *, ++ int, int, int *, int); ++static void add_sysrooted_prefix (struct path_prefix *, const char *, ++ const char *, int, int, int *, int); ++static void translate_options (int *, const char *const **); ++static char *skip_whitespace (char *); ++static void delete_if_ordinary (const char *); ++static void delete_temp_files (void); ++static void delete_failure_queue (void); ++static void clear_failure_queue (void); ++static int check_live_switch (int, int); ++static const char *handle_braces (const char *); ++static inline bool input_suffix_matches (const char *, const char *); ++static inline bool switch_matches (const char *, const char *, int); ++static inline void mark_matching_switches (const char *, const char *, int); ++static inline void process_marked_switches (void); ++static const char *process_brace_body (const char *, const char *, const char *, int, int); ++static const struct spec_function *lookup_spec_function (const char *); ++static const char *eval_spec_function (const char *, const char *); ++static const char *handle_spec_function (const char *); ++static char *save_string (const char *, int); ++static void set_collect_gcc_options (void); ++static int do_spec_1 (const char *, int, const char *); ++static int do_spec_2 (const char *); ++static void do_option_spec (const char *, const char *); ++static void do_self_spec (const char *); ++static const char *find_file (const char *); ++static int is_directory (const char *, const char *, int); ++static const char *validate_switches (const char *); ++static void validate_all_switches (void); ++static inline void validate_switches_from_spec (const char *); ++static void give_switch (int, int); ++static int used_arg (const char *, int); ++static int default_arg (const char *, int); ++static void set_multilib_dir (void); ++static void print_multilib_info (void); ++static void perror_with_name (const char *); ++static void pfatal_pexecute (const char *, const char *) ATTRIBUTE_NORETURN; ++static void notice (const char *, ...) ATTRIBUTE_PRINTF_1; ++static void display_help (void); ++static void add_preprocessor_option (const char *, int); ++static void add_assembler_option (const char *, int); ++static void add_linker_option (const char *, int); ++static void process_command (int, const char **); ++static int execute (void); ++static void alloc_args (void); ++static void clear_args (void); ++static void fatal_error (int); + #ifdef ENABLE_SHARED_LIBGCC +-static void init_gcc_specs PARAMS ((struct obstack *, +- const char *, const char *, +- const char *)); ++static void init_gcc_specs (struct obstack *, const char *, const char *, ++ const char *); + #endif + #if defined(HAVE_TARGET_OBJECT_SUFFIX) || defined(HAVE_TARGET_EXECUTABLE_SUFFIX) +-static const char *convert_filename PARAMS ((const char *, int, int)); ++static const char *convert_filename (const char *, int, int); + #endif + +-static const char *if_exists_spec_function PARAMS ((int, const char **)); +-static const char *if_exists_else_spec_function PARAMS ((int, const char **)); ++static const char *if_exists_spec_function (int, const char **); ++static const char *if_exists_else_spec_function (int, const char **); + + /* The Specs Language + +@@ -605,6 +663,12 @@ + with a file name chosen once per compilation, without regard + to any appended suffix (which was therefore treated just like + ordinary text), making such attacks more likely to succeed. ++ %|SUFFIX ++ like %g, but if -pipe is in effect, expands simply to "-". ++ %mSUFFIX ++ like %g, but if -pipe is in effect, expands to nothing. (We have both ++ %| and %m to accommodate differences between system assemblers; see ++ the AS_NEEDS_DASH_FOR_PIPED_INPUT target macro.) + %uSUFFIX + like %g, but generates a new temporary file name even if %uSUFFIX + was already seen. +@@ -633,6 +697,7 @@ + %w marks the argument containing or following the %w as the + "output file" of this compilation. This puts the argument + into the sequence of arguments that %o will substitute later. ++ %V indicates that this compilation produces no "output file". + %W{...} + like %{...} but mark last argument supplied within + as a file to be deleted on failure. +@@ -651,12 +716,9 @@ + except that %g, %u, and %U do not currently support additional + SUFFIX characters following %O as they would following, for + example, `.o'. +- %p substitutes the standard macro predefinitions for the +- current target machine. Use this when running cpp. +- %P like %p, but puts `__' before and after the name of each macro. +- (Except macros that already have __.) +- This is for ANSI C. +- %I Substitute a -iprefix option made from GCC_EXEC_PREFIX. ++ %I Substitute any of -iprefix (made from GCC_EXEC_PREFIX), -isysroot ++ (made from TARGET_SYSTEM_ROOT), and -isystem (made from COMPILER_PATH ++ and -B options) as necessary. + %s current argument is the name of a library or startup file of some sort. + Search for that file in a standard list of directories + and substitute the full name found. +@@ -667,12 +729,6 @@ + %X Output the accumulated linker options specified by compilations. + %Y Output the accumulated assembler options specified by compilations. + %Z Output the accumulated preprocessor options specified by compilations. +- %v1 Substitute the major version number of GCC. +- (For version 2.5.3, this is 2.) +- %v2 Substitute the minor version number of GCC. +- (For version 2.5.3, this is 5.) +- %v3 Substitute the patch level number of GCC. +- (For version 2.5.3, this is 3.) + %a process ASM_SPEC as a spec. + This allows config.h to specify part of the spec for running as. + %A process ASM_FINAL_SPEC as a spec. A capital A is actually +@@ -690,10 +746,15 @@ + %C process CPP_SPEC as a spec. + %1 process CC1_SPEC as a spec. + %2 process CC1PLUS_SPEC as a spec. +- %| output "-" if the input for the current command is coming from a pipe. + %* substitute the variable part of a matched option. (See below.) + Note that each comma in the substituted string is replaced by + a single space. ++ %= 0; i--) + { +@@ -1895,7 +2040,12 @@ + #endif + , + "-lgcc", +- "-lgcc_eh"); ++ "-lgcc_eh" ++#ifdef USE_LIBUNWIND_EXCEPTIONS ++ " -lunwind" ++#endif ++ ); ++ + p += 5; + in_sep = 0; + } +@@ -1911,7 +2061,11 @@ + #endif + , + "libgcc.a%s", +- "libgcc_eh.a%s"); ++ "libgcc_eh.a%s" ++#ifdef USE_LIBUNWIND_EXCEPTIONS ++ " -lunwind" ++#endif ++ ); + p += 10; + in_sep = 0; + } +@@ -1951,9 +2105,7 @@ + current spec. */ + + static void +-set_spec (name, spec) +- const char *name; +- const char *spec; ++set_spec (const char *name, const char *spec) + { + struct spec_list *sl; + const char *old_spec; +@@ -1981,7 +2133,7 @@ + if (!sl) + { + /* Not found - make it. */ +- sl = (struct spec_list *) xmalloc (sizeof (struct spec_list)); ++ sl = xmalloc (sizeof (struct spec_list)); + sl->name = xstrdup (name); + sl->name_len = name_len; + sl->ptr_spec = &sl->ptr; +@@ -2003,7 +2155,7 @@ + + /* Free the old spec. */ + if (old_spec && sl->alloc_p) +- free ((PTR) old_spec); ++ free ((void *) old_spec); + + sl->alloc_p = 1; + } +@@ -2050,16 +2202,16 @@ + /* Allocate the argument vector. */ + + static void +-alloc_args () ++alloc_args (void) + { + argbuf_length = 10; +- argbuf = (const char **) xmalloc (argbuf_length * sizeof (const char *)); ++ argbuf = xmalloc (argbuf_length * sizeof (const char *)); + } + + /* Clear out the vector of arguments (after a command is executed). */ + + static void +-clear_args () ++clear_args (void) + { + argbuf_index = 0; + } +@@ -2072,14 +2224,10 @@ + and the file should be deleted if this compilation fails. */ + + static void +-store_arg (arg, delete_always, delete_failure) +- const char *arg; +- int delete_always, delete_failure; ++store_arg (const char *arg, int delete_always, int delete_failure) + { + if (argbuf_index + 1 == argbuf_length) +- argbuf +- = (const char **) xrealloc (argbuf, +- (argbuf_length *= 2) * sizeof (const char *)); ++ argbuf = xrealloc (argbuf, (argbuf_length *= 2) * sizeof (const char *)); + + argbuf[argbuf_index++] = arg; + argbuf[argbuf_index] = 0; +@@ -2093,8 +2241,7 @@ + a single \n. */ + + static char * +-load_specs (filename) +- const char *filename; ++load_specs (const char *filename) + { + int desc; + int readlen; +@@ -2158,9 +2305,7 @@ + Anything invalid in the file is a fatal error. */ + + static void +-read_specs (filename, main_p) +- const char *filename; +- int main_p; ++read_specs (const char *filename, int main_p) + { + char *buffer; + char *p; +@@ -2302,7 +2447,7 @@ + + set_spec (p2, *(sl->ptr_spec)); + if (sl->alloc_p) +- free ((PTR) *(sl->ptr_spec)); ++ free ((void *) *(sl->ptr_spec)); + + *(sl->ptr_spec) = ""; + sl->alloc_p = 0; +@@ -2372,9 +2517,8 @@ + { + /* Add this pair to the vector. */ + compilers +- = ((struct compiler *) +- xrealloc (compilers, +- (n_compilers + 2) * sizeof (struct compiler))); ++ = xrealloc (compilers, ++ (n_compilers + 2) * sizeof (struct compiler)); + + compilers[n_compilers].suffix = suffix; + compilers[n_compilers].spec = spec; +@@ -2430,10 +2574,7 @@ + otherwise delete it in any case. */ + + void +-record_temp_file (filename, always_delete, fail_delete) +- const char *filename; +- int always_delete; +- int fail_delete; ++record_temp_file (const char *filename, int always_delete, int fail_delete) + { + char *const name = xstrdup (filename); + +@@ -2444,7 +2585,7 @@ + if (! strcmp (name, temp->name)) + goto already1; + +- temp = (struct temp_file *) xmalloc (sizeof (struct temp_file)); ++ temp = xmalloc (sizeof (struct temp_file)); + temp->next = always_delete_queue; + temp->name = name; + always_delete_queue = temp; +@@ -2459,7 +2600,7 @@ + if (! strcmp (name, temp->name)) + goto already2; + +- temp = (struct temp_file *) xmalloc (sizeof (struct temp_file)); ++ temp = xmalloc (sizeof (struct temp_file)); + temp->next = failure_delete_queue; + temp->name = name; + failure_delete_queue = temp; +@@ -2471,8 +2612,7 @@ + /* Delete all the temporary files whose names we previously recorded. */ + + static void +-delete_if_ordinary (name) +- const char *name; ++delete_if_ordinary (const char *name) + { + struct stat st; + #ifdef DEBUG +@@ -2494,7 +2634,7 @@ + } + + static void +-delete_temp_files () ++delete_temp_files (void) + { + struct temp_file *temp; + +@@ -2524,7 +2664,7 @@ + /* Delete all the files to be deleted on error. */ + + static void +-delete_failure_queue () ++delete_failure_queue (void) + { + struct temp_file *temp; + +@@ -2533,7 +2673,7 @@ + } + + static void +-clear_failure_queue () ++clear_failure_queue (void) + { + failure_delete_queue = 0; + } +@@ -2545,10 +2685,8 @@ + It is also used by the --print-search-dirs flag. */ + + static char * +-build_search_list (paths, prefix, check_dir_p) +- struct path_prefix *paths; +- const char *prefix; +- int check_dir_p; ++build_search_list (struct path_prefix *paths, const char *prefix, ++ int check_dir_p) + { + int suffix_len = (machine_suffix) ? strlen (machine_suffix) : 0; + int just_suffix_len +@@ -2607,9 +2745,7 @@ + for collect. */ + + static void +-putenv_from_prefixes (paths, env_var) +- struct path_prefix *paths; +- const char *env_var; ++putenv_from_prefixes (struct path_prefix *paths, const char *env_var) + { + putenv (build_search_list (paths, env_var, 1)); + } +@@ -2858,9 +2994,7 @@ + except that it never considers directories to be executable. */ + + static int +-access_check (name, mode) +- const char *name; +- int mode; ++access_check (const char *name, int mode) + { + if (mode == X_OK) + { +@@ -2879,10 +3013,8 @@ + Return 0 if not found, otherwise return its name, allocated with malloc. */ + + static char * +-find_a_file (pprefix, name, mode, multilib) +- struct path_prefix *pprefix; +- const char *name; +- int mode, multilib; ++find_a_file (struct path_prefix *pprefix, const char *name, int mode, ++ int multilib) + { + char *temp; + const char *const file_suffix = +@@ -2924,7 +3056,7 @@ + + /* Determine the filename to execute (special case for absolute paths). */ + +- if (IS_ABSOLUTE_PATHNAME (name)) ++ if (IS_ABSOLUTE_PATH (name)) + { + if (access (name, mode) == 0) + { +@@ -3042,7 +3174,7 @@ + PREFIX_PRIORITY_LAST + }; + +-/* Add an entry for PREFIX in PLIST. The PLIST is kept in assending ++/* Add an entry for PREFIX in PLIST. The PLIST is kept in ascending + order according to PRIORITY. Within each PRIORITY, new entries are + appended. + +@@ -3057,15 +3189,9 @@ + 2 means try both machine_suffix and just_machine_suffix. */ + + static void +-add_prefix (pprefix, prefix, component, priority, require_machine_suffix, +- warn, os_multilib) +- struct path_prefix *pprefix; +- const char *prefix; +- const char *component; +- /* enum prefix_priority */ int priority; +- int require_machine_suffix; +- int *warn; +- int os_multilib; ++add_prefix (struct path_prefix *pprefix, const char *prefix, ++ const char *component, /* enum prefix_priority */ int priority, ++ int require_machine_suffix, int *warn, int os_multilib) + { + struct prefix_list *pl, **prev; + int len; +@@ -3075,14 +3201,14 @@ + prev = &(*prev)->next) + ; + +- /* Keep track of the longest prefix */ ++ /* Keep track of the longest prefix. */ + + prefix = update_path (prefix, component); + len = strlen (prefix); + if (len > pprefix->max_len) + pprefix->max_len = len; + +- pl = (struct prefix_list *) xmalloc (sizeof (struct prefix_list)); ++ pl = xmalloc (sizeof (struct prefix_list)); + pl->prefix = prefix; + pl->require_machine_suffix = require_machine_suffix; + pl->used_flag_ptr = warn; +@@ -3091,11 +3217,36 @@ + if (warn) + *warn = 0; + +- /* Insert after PREV */ ++ /* Insert after PREV. */ + pl->next = (*prev); + (*prev) = pl; + } + ++/* Same as add_prefix, but prepending target_system_root to prefix. */ ++static void ++add_sysrooted_prefix (struct path_prefix *pprefix, const char *prefix, ++ const char *component, ++ /* enum prefix_priority */ int priority, ++ int require_machine_suffix, int *warn, int os_multilib) ++{ ++ if (!IS_ABSOLUTE_PATH (prefix)) ++ abort (); ++ ++ if (target_system_root) ++ { ++ if (target_sysroot_suffix) ++ prefix = concat (target_sysroot_suffix, prefix, NULL); ++ prefix = concat (target_system_root, prefix, NULL); ++ ++ /* We have to override this because GCC's notion of sysroot ++ moves along with GCC. */ ++ component = "GCC"; ++ } ++ ++ add_prefix (pprefix, prefix, component, priority, ++ require_machine_suffix, warn, os_multilib); ++} ++ + /* Execute the command specified by the arguments on the current line of spec. + When using pipes, this includes several piped-together commands + with `|' between them. +@@ -3103,7 +3254,7 @@ + Return 0 if successful, -1 if failed. */ + + static int +-execute () ++execute (void) + { + int i; + int n_commands; /* # of command. */ +@@ -3126,7 +3277,7 @@ + n_commands++; + + /* Get storage for each command. */ +- commands = (struct command *) alloca (n_commands * sizeof (struct command)); ++ commands = alloca (n_commands * sizeof (struct command)); + + /* Split argbuf into its separate piped processes, + and record info about each one. +@@ -3196,7 +3347,14 @@ + } + fflush (stderr); + if (verbose_only_flag != 0) ++ { ++ /* verbose_only_flag should act as if the spec was ++ executed, so increment execution_count before ++ returning. This prevents spurious warnings about ++ unused linker input files, etc. */ ++ execution_count++; + return 0; ++ } + #ifdef DEBUG + notice ("\nGo ahead? (y or n) "); + fflush (stderr); +@@ -3211,7 +3369,7 @@ + } + + #ifdef ENABLE_VALGRIND_CHECKING +- /* Run the each command through valgrind. To simplifiy prepending the ++ /* Run the each command through valgrind. To simplify prepending the + path to valgrind and the option "-q" (for quiet operation unless + something triggers), we allocate a separate argv array. */ + +@@ -3259,7 +3417,7 @@ + pfatal_pexecute (errmsg_fmt, errmsg_arg); + + if (string != commands[i].prog) +- free ((PTR) string); ++ free ((void *) string); + } + + execution_count++; +@@ -3361,7 +3519,7 @@ + 0 when initialized + 1 if the switch is true in a conditional spec, + -1 if false (overridden by a later switch) +- -2 if this switch should be ignored (used in %{ Pass comma-separated on to the assembler\n"), stdout); + fputs (_(" -Wp, Pass comma-separated on to the preprocessor\n"), stdout); + fputs (_(" -Wl, Pass comma-separated on to the linker\n"), stdout); ++ fputs (_(" -Xassembler Pass on to the assembler\n"), stdout); ++ fputs (_(" -Xpreprocessor Pass on to the preprocessor\n"), stdout); + fputs (_(" -Xlinker Pass on to the linker\n"), stdout); + fputs (_(" -save-temps Do not delete intermediate files\n"), stdout); + fputs (_(" -pipe Use pipes rather than intermediate files\n"), stdout); +@@ -3531,18 +3694,14 @@ + } + + static void +-add_preprocessor_option (option, len) +- const char *option; +- int len; ++add_preprocessor_option (const char *option, int len) + { + n_preprocessor_options++; + + if (! preprocessor_options) +- preprocessor_options +- = (char **) xmalloc (n_preprocessor_options * sizeof (char *)); ++ preprocessor_options = xmalloc (n_preprocessor_options * sizeof (char *)); + else +- preprocessor_options +- = (char **) xrealloc (preprocessor_options, ++ preprocessor_options = xrealloc (preprocessor_options, + n_preprocessor_options * sizeof (char *)); + + preprocessor_options [n_preprocessor_options - 1] = +@@ -3550,36 +3709,28 @@ + } + + static void +-add_assembler_option (option, len) +- const char *option; +- int len; ++add_assembler_option (const char *option, int len) + { + n_assembler_options++; + + if (! assembler_options) +- assembler_options +- = (char **) xmalloc (n_assembler_options * sizeof (char *)); ++ assembler_options = xmalloc (n_assembler_options * sizeof (char *)); + else +- assembler_options +- = (char **) xrealloc (assembler_options, ++ assembler_options = xrealloc (assembler_options, + n_assembler_options * sizeof (char *)); + + assembler_options [n_assembler_options - 1] = save_string (option, len); + } + + static void +-add_linker_option (option, len) +- const char *option; +- int len; ++add_linker_option (const char *option, int len) + { + n_linker_options++; + + if (! linker_options) +- linker_options +- = (char **) xmalloc (n_linker_options * sizeof (char *)); ++ linker_options = xmalloc (n_linker_options * sizeof (char *)); + else +- linker_options +- = (char **) xrealloc (linker_options, ++ linker_options = xrealloc (linker_options, + n_linker_options * sizeof (char *)); + + linker_options [n_linker_options - 1] = save_string (option, len); +@@ -3589,9 +3740,7 @@ + Store its length in `n_switches'. */ + + static void +-process_command (argc, argv) +- int argc; +- const char *const *argv; ++process_command (int argc, const char **argv) + { + int i; + const char *temp; +@@ -3687,34 +3836,55 @@ + /* Set up the default search paths. If there is no GCC_EXEC_PREFIX, + see if we can create it from the pathname specified in argv[0]. */ + ++ gcc_libexec_prefix = standard_libexec_prefix; + #ifndef VMS + /* FIXME: make_relative_prefix doesn't yet work for VMS. */ + if (!gcc_exec_prefix) + { + gcc_exec_prefix = make_relative_prefix (argv[0], standard_bindir_prefix, + standard_exec_prefix); ++ gcc_libexec_prefix = make_relative_prefix (argv[0], ++ standard_bindir_prefix, ++ standard_libexec_prefix); + if (gcc_exec_prefix) + putenv (concat ("GCC_EXEC_PREFIX=", gcc_exec_prefix, NULL)); + } ++ else ++ gcc_libexec_prefix = make_relative_prefix (gcc_exec_prefix, ++ standard_exec_prefix, ++ standard_libexec_prefix); ++#else + #endif + + if (gcc_exec_prefix) + { + int len = strlen (gcc_exec_prefix); +- ++#ifndef GCC_3_4 + if (len > (int) sizeof ("/lib/gcc-lib/") - 1 ++#else ++ if (len > (int) sizeof ("/lib/gcc/") - 1 ++#endif + && (IS_DIR_SEPARATOR (gcc_exec_prefix[len-1]))) + { ++#ifndef GCC_3_4 + temp = gcc_exec_prefix + len - sizeof ("/lib/gcc-lib/") + 1; ++#else ++ temp = gcc_exec_prefix + len - sizeof ("/lib/gcc/") + 1; ++#endif + if (IS_DIR_SEPARATOR (*temp) + && strncmp (temp + 1, "lib", 3) == 0 +- && IS_DIR_SEPARATOR (temp[4]) ++ && IS_DIR_SEPARATOR (temp[5]) ++#ifndef GCC_3_4 + && strncmp (temp + 5, "gcc-lib", 7) == 0) + len -= sizeof ("/lib/gcc-lib/") - 1; ++#else ++ && strncmp (temp + 5, "gcc", 3) == 0) ++ len -= sizeof ("/lib/gcc/") - 1; ++#endif + } + + set_std_prefix (gcc_exec_prefix, len); +- add_prefix (&exec_prefixes, gcc_exec_prefix, "GCC", ++ add_prefix (&exec_prefixes, gcc_libexec_prefix, "GCC", + PREFIX_PRIORITY_LAST, 0, NULL, 0); + add_prefix (&startfile_prefixes, gcc_exec_prefix, "GCC", + PREFIX_PRIORITY_LAST, 0, NULL, 0); +@@ -3727,7 +3897,7 @@ + if (temp) + { + const char *startp, *endp; +- char *nstore = (char *) alloca (strlen (temp) + 3); ++ char *nstore = alloca (strlen (temp) + 3); + + startp = endp = temp; + while (1) +@@ -3762,7 +3932,7 @@ + if (temp && *cross_compile == '0') + { + const char *startp, *endp; +- char *nstore = (char *) alloca (strlen (temp) + 3); ++ char *nstore = alloca (strlen (temp) + 3); + + startp = endp = temp; + while (1) +@@ -3795,7 +3965,7 @@ + if (temp && *cross_compile == '0') + { + const char *startp, *endp; +- char *nstore = (char *) alloca (strlen (temp) + 3); ++ char *nstore = alloca (strlen (temp) + 3); + + startp = endp = temp; + while (1) +@@ -3829,11 +3999,11 @@ + #endif + + /* Convert new-style -- options to old-style. */ +- translate_options (&argc, &argv); ++ translate_options (&argc, (const char *const **) &argv); + + #ifdef LANG_SPECIFIC_DRIVER + /* Do language-specific adjustment/addition of flags. */ +- lang_specific_driver (&argc, &argv, &added_libraries); ++ lang_specific_driver (&argc, (const char *const **) &argv, &added_libraries); + #endif + + /* Scan argv twice. Here, the first time, just count how many switches +@@ -3866,8 +4036,8 @@ + { + /* translate_options () has turned --version into -fversion. */ + printf (_("%s %s, based on gcc-%s\n"), programname, GPC_RELEASE_STRING, version_string); +- fputs (_("Copyright (C) 1987-2004 Free Software Foundation, Inc.\n"), +- stdout); ++ printf ("Copyright %s 2004 Free Software Foundation, Inc.\n", ++ _("(C)")); + fputs (_("This is free software; see the source for copying conditions. There is NO\n\ + warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n"), + stdout); +@@ -3974,6 +4144,20 @@ + n_infiles++; + i++; + } ++ else if (strcmp (argv[i], "-Xpreprocessor") == 0) ++ { ++ if (i + 1 == argc) ++ fatal ("argument to `-Xpreprocessor' is missing"); ++ ++ add_preprocessor_option (argv[i+1], strlen (argv[i+1])); ++ } ++ else if (strcmp (argv[i], "-Xassembler") == 0) ++ { ++ if (i + 1 == argc) ++ fatal ("argument to `-Xassembler' is missing"); ++ ++ add_assembler_option (argv[i+1], strlen (argv[i+1])); ++ } + else if (strcmp (argv[i], "-l") == 0) + { + if (i + 1 == argc) +@@ -3991,8 +4175,7 @@ + } + else if (strcmp (argv[i], "-specs") == 0) + { +- struct user_specs *user = (struct user_specs *) +- xmalloc (sizeof (struct user_specs)); ++ struct user_specs *user = xmalloc (sizeof (struct user_specs)); + if (++i >= argc) + fatal ("argument to `-specs' is missing"); + +@@ -4006,8 +4189,7 @@ + } + else if (strncmp (argv[i], "-specs=", 7) == 0) + { +- struct user_specs *user = (struct user_specs *) +- xmalloc (sizeof (struct user_specs)); ++ struct user_specs *user = xmalloc (sizeof (struct user_specs)); + if (strlen (argv[i]) == 7) + fatal ("argument to `-specs=' is missing"); + +@@ -4021,6 +4203,13 @@ + } + else if (strcmp (argv[i], "-time") == 0) + report_times = 1; ++ else if (strcmp (argv[i], "-pipe") == 0) ++ { ++ /* -pipe has to go into the switches array as well as ++ setting a flag. */ ++ use_pipes = 1; ++ n_switches++; ++ } + else if (strcmp (argv[i], "-###") == 0) + { + /* This is similar to -v except that there is no execution +@@ -4176,8 +4365,7 @@ + for (j = 0; j < ARRAY_SIZE (modify_target); j++) + if (! strcmp (argv[i], modify_target[j].sw)) + { +- char *new_name +- = (char *) xmalloc (strlen (modify_target[j].str) ++ char *new_name = xmalloc (strlen (modify_target[j].str) + + strlen (spec_machine)); + const char *p, *r; + char *q; +@@ -4223,8 +4411,20 @@ + } + } + +- if (have_c && have_o && lang_n_infiles > 1) +- fatal ("cannot specify -o with -c or -S and multiple compilations"); ++ combine_inputs = (have_c && have_o && lang_n_infiles > 1); ++ ++ if ((save_temps_flag || report_times) && use_pipes) ++ { ++ /* -save-temps overrides -pipe, so that temp files are produced */ ++ if (save_temps_flag) ++ error ("warning: -pipe ignored because -save-temps specified"); ++ /* -time overrides -pipe because we can't get correct stats when ++ multiple children are running at once. */ ++ else if (report_times) ++ error ("warning: -pipe ignored because -time specified"); ++ ++ use_pipes = 0; ++ } + + /* Set up the search paths before we go looking for config files. */ + +@@ -4233,17 +4433,21 @@ + /* Use 2 as fourth arg meaning try just the machine as a suffix, + as well as trying the machine and the version. */ + #ifndef OS2 +- add_prefix (&exec_prefixes, standard_exec_prefix, "GCC", ++ add_prefix (&exec_prefixes, standard_libexec_prefix, "GCC", + PREFIX_PRIORITY_LAST, 1, warn_std_ptr, 0); ++ add_prefix (&exec_prefixes, standard_libexec_prefix, "BINUTILS", ++ PREFIX_PRIORITY_LAST, 2, warn_std_ptr, 0); + add_prefix (&exec_prefixes, standard_exec_prefix, "BINUTILS", + PREFIX_PRIORITY_LAST, 2, warn_std_ptr, 0); + add_prefix (&exec_prefixes, standard_exec_prefix_1, "BINUTILS", + PREFIX_PRIORITY_LAST, 2, warn_std_ptr, 0); ++ add_prefix (&exec_prefixes, standard_exec_prefix_2, "BINUTILS", ++ PREFIX_PRIORITY_LAST, 2, warn_std_ptr, 0); + #endif + + add_prefix (&startfile_prefixes, standard_exec_prefix, "BINUTILS", + PREFIX_PRIORITY_LAST, 1, warn_std_ptr, 0); +- add_prefix (&startfile_prefixes, standard_exec_prefix_1, "BINUTILS", ++ add_prefix (&startfile_prefixes, standard_exec_prefix_2, "BINUTILS", + PREFIX_PRIORITY_LAST, 1, warn_std_ptr, 0); + + tooldir_prefix = concat (tooldir_base_prefix, spec_machine, +@@ -4256,7 +4460,7 @@ + directories, so that we can search both the user specified directory + and the standard place. */ + +- if (!IS_ABSOLUTE_PATHNAME (tooldir_prefix)) ++ if (!IS_ABSOLUTE_PATH (tooldir_prefix)) + { + if (gcc_exec_prefix) + { +@@ -4286,14 +4490,31 @@ + concat (tooldir_prefix, "lib", dir_separator_str, NULL), + "BINUTILS", PREFIX_PRIORITY_LAST, 0, NULL, 1); + ++#if defined(TARGET_SYSTEM_ROOT_RELOCATABLE) && !defined(VMS) ++ /* If the normal TARGET_SYSTEM_ROOT is inside of $exec_prefix, ++ then consider it to relocate with the rest of the GCC installation ++ if GCC_EXEC_PREFIX is set. ++ ``make_relative_prefix'' is not compiled for VMS, so don't call it. */ ++ if (target_system_root && gcc_exec_prefix) ++ { ++ char *tmp_prefix = make_relative_prefix (argv[0], ++ standard_bindir_prefix, ++ target_system_root); ++ if (tmp_prefix && access_check (tmp_prefix, F_OK) == 0) ++ { ++ target_system_root = tmp_prefix; ++ target_system_root_changed = 1; ++ } ++ } ++#endif ++ + /* More prefixes are enabled in main, after we read the specs file + and determine whether this is cross-compilation or not. */ + + /* Then create the space for the vectors and scan again. */ + +- switches = ((struct switchstr *) +- xmalloc ((n_switches + 1) * sizeof (struct switchstr))); +- infiles = (struct infile *) xmalloc ((n_infiles + 1) * sizeof (struct infile)); ++ switches = xmalloc ((n_switches + 1) * sizeof (struct switchstr)); ++ infiles = xmalloc ((n_infiles + 1) * sizeof (struct infile)); + n_switches = 0; + n_infiles = 0; + last_language_n_infiles = -1; +@@ -4375,6 +4596,16 @@ + infiles[n_infiles].language = "*"; + infiles[n_infiles++].name = argv[++i]; + } ++ else if (strcmp (argv[i], "-Xassembler") == 0) ++ { ++ infiles[n_infiles].language = "*"; ++ infiles[n_infiles++].name = argv[++i]; ++ } ++ else if (strcmp (argv[i], "-Xpreprocessor") == 0) ++ { ++ infiles[n_infiles].language = "*"; ++ infiles[n_infiles++].name = argv[++i]; ++ } + else if (strcmp (argv[i], "-l") == 0) + { /* POSIX allows separation of -l and the lib arg; + canonicalize by concatenating -l with its arg */ +@@ -4392,17 +4623,6 @@ + ; + else if (strcmp (argv[i], "-time") == 0) + ; +- else if ((save_temps_flag || report_times) +- && strcmp (argv[i], "-pipe") == 0) +- { +- /* -save-temps overrides -pipe, so that temp files are produced */ +- if (save_temps_flag) +- error ("warning: -pipe ignored because -save-temps specified"); +- /* -time overrides -pipe because we can't get correct stats when +- multiple children are running at once. */ +- else if (report_times) +- error ("warning: -pipe ignored because -time specified"); +- } + else if (strcmp (argv[i], "-###") == 0) + ; + else if (argv[i][0] == '-' && argv[i][1] != 0) +@@ -4443,7 +4663,7 @@ + if (i + n_args >= argc) + fatal ("argument to `-%s' is missing", p); + switches[n_switches].args +- = (const char **) xmalloc ((n_args + 1) * sizeof(const char *)); ++ = xmalloc ((n_args + 1) * sizeof(const char *)); + while (j < n_args) + switches[n_switches].args[j++] = argv[++i]; + /* Null-terminate the vector. */ +@@ -4453,13 +4673,12 @@ + { + /* On some systems, ld cannot handle some options without + a space. So split the option from its argument. */ +- char *part1 = (char *) xmalloc (2); ++ char *part1 = xmalloc (2); + part1[0] = c; + part1[1] = '\0'; + + switches[n_switches].part1 = part1; +- switches[n_switches].args +- = (const char **) xmalloc (2 * sizeof (const char *)); ++ switches[n_switches].args = xmalloc (2 * sizeof (const char *)); + switches[n_switches].args[0] = xstrdup (p+1); + switches[n_switches].args[1] = 0; + } +@@ -4469,10 +4688,11 @@ + switches[n_switches].live_cond = SWITCH_OK; + switches[n_switches].validated = 0; + switches[n_switches].ordering = 0; +- /* These are always valid, since gcc.c itself understands it. */ ++ /* These are always valid, since gcc.c itself understands them. */ + if (!strcmp (p, "save-temps") + || !strcmp (p, "static-libgcc") +- || !strcmp (p, "shared-libgcc")) ++ || !strcmp (p, "shared-libgcc") ++ || !strcmp (p, "pipe")) + switches[n_switches].validated = 1; + else + { +@@ -4539,11 +4759,11 @@ + infiles[n_infiles].name = 0; + } + +-/* Store switches not filtered out by %{ 0 && !strcmp (argbuf[argbuf_index - 1], "|")) + { +- for (i = 0; i < n_switches; i++) +- if (!strcmp (switches[i].part1, "pipe")) +- break; +- + /* A `|' before the newline means use a pipe here, + but only if -pipe was specified. + Otherwise, execute now and don't pass the `|' as an arg. */ +- if (i < n_switches) ++ if (use_pipes) + { + input_from_pipe = 1; +- switches[i].validated = 1; + break; + } + else +@@ -4878,7 +5154,7 @@ + { + struct prefix_list *pl = startfile_prefixes.plist; + size_t bufsize = 100; +- char *buffer = (char *) xmalloc (bufsize); ++ char *buffer = xmalloc (bufsize); + int idx; + + for (; pl; pl = pl->next) +@@ -4889,7 +5165,7 @@ + /* Relative directories always come from -B, + and it is better not to use them for searching + at run time. In particular, stage1 loses. */ +- if (!IS_ABSOLUTE_PATHNAME (pl->prefix)) ++ if (!IS_ABSOLUTE_PATH (pl->prefix)) + continue; + #endif + /* Try subdirectory if there is one. */ +@@ -4906,7 +5182,7 @@ + >= bufsize) + bufsize = (strlen (pl->prefix) + + strlen (machine_suffix)) * 2 + 1; +- buffer = (char *) xrealloc (buffer, bufsize); ++ buffer = xrealloc (buffer, bufsize); + strcpy (buffer, pl->prefix); + strcat (buffer, machine_suffix); + if (is_directory (buffer, multilib_dir, 1)) +@@ -4948,7 +5224,7 @@ + /* Remove slash from machine_suffix. */ + if (strlen (machine_suffix) >= bufsize) + bufsize = strlen (machine_suffix) * 2 + 1; +- buffer = (char *) xrealloc (buffer, bufsize); ++ buffer = xrealloc (buffer, bufsize); + strcpy (buffer, machine_suffix); + idx = strlen (buffer); + if (IS_DIR_SEPARATOR (buffer[idx - 1])) +@@ -4969,7 +5245,7 @@ + /* Remove slash from pl->prefix. */ + if (strlen (pl->prefix) >= bufsize) + bufsize = strlen (pl->prefix) * 2 + 1; +- buffer = (char *) xrealloc (buffer, bufsize); ++ buffer = xrealloc (buffer, bufsize); + strcpy (buffer, pl->prefix); + idx = strlen (buffer); + if (IS_DIR_SEPARATOR (buffer[idx - 1])) +@@ -4992,7 +5268,7 @@ + char *buf; + while (*p != 0 && *p != '\n') + p++; +- buf = (char *) alloca (p - q + 1); ++ buf = alloca (p - q + 1); + strncpy (buf, q, p - q); + buf[p - q] = 0; + error ("%s", buf); +@@ -5006,7 +5282,7 @@ + char *buf; + while (*p != 0 && *p != '\n') + p++; +- buf = (char *) alloca (p - q + 1); ++ buf = alloca (p - q + 1); + strncpy (buf, q, p - q); + buf[p - q] = 0; + notice ("%s\n", buf); +@@ -5019,10 +5295,10 @@ + { + struct stat st; + +- /* If save_temps_flag is off, and the HOST_BIT_BUCKET is defined, +- and it is not a directory, and it is writable, use it. +- Otherwise, fall through and treat this like any other +- temporary file. */ ++ /* If save_temps_flag is off, and the HOST_BIT_BUCKET is ++ defined, and it is not a directory, and it is ++ writable, use it. Otherwise, treat this like any ++ other temporary file. */ + + if ((!save_temps_flag) + && (stat (HOST_BIT_BUCKET, &st) == 0) && (!S_ISDIR (st.st_mode)) +@@ -5035,9 +5311,45 @@ + break; + } + } ++ goto create_temp_file; ++ case '|': ++ if (use_pipes) ++#ifdef GCC_3_4 ++ { ++ obstack_1grow (&obstack, '-'); ++ delete_this_arg = 0; ++ arg_going = 1; ++ ++ /* consume suffix */ ++ while (*p == '.' || ISALPHA ((unsigned char) *p)) ++ p++; ++ if (p[0] == '%' && p[1] == 'O') ++ p += 2; ++ ++ break; ++ } ++ goto create_temp_file; ++#else ++ do_spec_1 ("-", 0, NULL); ++ break; ++#endif ++ ++ case 'm': ++ if (use_pipes) ++ { ++ /* consume suffix */ ++ while (*p == '.' || ISALPHA ((unsigned char) *p)) ++ p++; ++ if (p[0] == '%' && p[1] == 'O') ++ p += 2; ++ ++ break; ++ } ++ goto create_temp_file; + case 'g': + case 'u': + case 'U': ++ create_temp_file: + { + struct temp_name *t; + int suffix_length; +@@ -5058,7 +5370,7 @@ + else + { + saved_suffix +- = (char *) xmalloc (suffix_length ++ = xmalloc (suffix_length + + strlen (TARGET_OBJECT_SUFFIX)); + strncpy (saved_suffix, suffix, suffix_length); + strcpy (saved_suffix + suffix_length, +@@ -5121,7 +5433,7 @@ + for (t = temp_names; t; t = t->next) + if (t->length == suffix_length + && strncmp (t->suffix, suffix, suffix_length) == 0 +- && t->unique == (c != 'g')) ++ && t->unique == (c == 'u' || c == 'U' || c == 'j')) + break; + + /* Make a new association if needed. %u and %j +@@ -5130,7 +5442,7 @@ + { + if (t == 0) + { +- t = (struct temp_name *) xmalloc (sizeof (struct temp_name)); ++ t = xmalloc (sizeof (struct temp_name)); + t->next = temp_names; + temp_names = t; + } +@@ -5142,7 +5454,7 @@ + } + else + t->suffix = save_string (suffix, suffix_length); +- t->unique = (c != 'g'); ++ t->unique = (c == 'u' || c == 'U' || c == 'j'); + temp_filename = make_temp_file (t->suffix); + temp_filename_length = strlen (temp_filename); + t->filename = temp_filename; +@@ -5159,8 +5471,16 @@ + break; + + case 'i': ++ if (combine_inputs) ++ { ++ for (i = 0; (int) i < n_infiles; i++) ++ store_arg (infiles[i].name, 0, 0); ++ } ++ else ++ { + obstack_grow (&obstack, input_filename, input_filename_length); + arg_going = 1; ++ } + break; + + case 'I': +@@ -5176,6 +5496,18 @@ + do_spec_1 (" ", 0, NULL); + } + ++ if (target_system_root_changed || ++ (target_system_root && target_sysroot_hdrs_suffix)) ++ { ++ do_spec_1 ("-isysroot", 1, NULL); ++ /* Make this a separate argument. */ ++ do_spec_1 (" ", 0, NULL); ++ do_spec_1 (target_system_root, 1, NULL); ++ if (target_sysroot_hdrs_suffix) ++ do_spec_1 (target_sysroot_hdrs_suffix, 1, NULL); ++ do_spec_1 (" ", 0, NULL); ++ } ++ + for (; pl; pl = pl->next) + { + do_spec_1 ("-isystem", 1, NULL); +@@ -5207,6 +5539,10 @@ + this_is_library_file = 1; + break; + ++ case 'V': ++ outfiles[input_file_number] = NULL; ++ break; ++ + case 'w': + this_is_output_file = 1; + break; +@@ -5247,6 +5583,18 @@ + p = handle_braces (p + 1); + if (p == 0) + return -1; ++ /* End any pending argument. */ ++ if (arg_going) ++ { ++ obstack_1grow (&obstack, 0); ++ string = obstack_finish (&obstack); ++ if (this_is_library_file) ++ string = find_file (string); ++ store_arg (string, delete_this_arg, this_is_output_file); ++ if (this_is_output_file) ++ outfiles[input_file_number] = string; ++ arg_going = 0; ++ } + /* If any args were output, mark the last one for deletion + on failure. */ + if (argbuf_index != cur_index) +@@ -5555,6 +5903,19 @@ + } + break; + ++ case 'R': ++ /* We assume there is a directory ++ separator at the end of this string. */ ++ if (target_system_root) ++ { ++ obstack_grow (&obstack, target_system_root, ++ strlen (target_system_root)); ++ if (target_sysroot_suffix) ++ obstack_grow (&obstack, target_sysroot_suffix, ++ strlen (target_sysroot_suffix)); ++ } ++ break; ++ + case 'S': + value = do_spec_1 (startfile_spec, 0, NULL); + if (value != 0) +@@ -5590,6 +5951,32 @@ + } + break; + ++ /* Henceforth ignore the option(s) matching the pattern ++ after the %<. */ ++ case '<': ++ { ++ unsigned len = 0; ++ int have_wildcard = 0; ++ int i; ++ ++ while (p[len] && p[len] != ' ' && p[len] != '\t') ++ len++; ++ ++ if (p[len-1] == '*') ++ have_wildcard = 1; ++ ++ for (i = 0; i < n_switches; i++) ++ if (!strncmp (switches[i].part1, p, len - have_wildcard) ++ && (have_wildcard || switches[i].part1[len] == '\0')) ++ { ++ switches[i].live_cond = SWITCH_IGNORE; ++ switches[i].validated = 1; ++ } ++ ++ p += len; ++ } ++ break; ++ + case '*': + if (soft_matched_part) + { +@@ -5645,7 +6032,7 @@ + } + else + { +- char *x = (char *) alloca (strlen (name) * 2 + 1); ++ char *x = alloca (strlen (name) * 2 + 1); + char *buf = x; + const char *y = name; + int flag = 0; +@@ -5748,11 +6135,6 @@ + } + break; + +- case '|': +- if (input_from_pipe) +- do_spec_1 ("-", 0, NULL); +- break; +- + default: + error ("spec failure: unrecognized spec option '%c'", c); + break; +@@ -5763,7 +6145,7 @@ + /* Backslash: treat next character as ordinary. */ + c = *p++; + +- /* fall through */ ++ /* Fall through. */ + default: + /* Ordinary character: put it into the current argument. */ + obstack_1grow (&obstack, c); +@@ -5790,8 +6172,7 @@ + /* Look up a spec function. */ + + static const struct spec_function * +-lookup_spec_function (name) +- const char *name; ++lookup_spec_function (const char *name) + { + static const struct spec_function * const spec_function_tables[] = + { +@@ -5814,8 +6195,7 @@ + /* Evaluate a spec function. */ + + static const char * +-eval_spec_function (func, args) +- const char *func, *args; ++eval_spec_function (const char *func, const char *args) + { + const struct spec_function *sf; + const char *funcval; +@@ -5887,8 +6267,7 @@ + NULL if no processing is required. */ + + static const char * +-handle_spec_function (p) +- const char *p; ++handle_spec_function (const char *p) + { + char *func, *args; + const char *endp, *funcval; +@@ -5943,273 +6322,305 @@ + return p; + } + +-/* Return 0 if we call do_spec_1 and that returns -1. */ ++/* Inline subroutine of handle_braces. Returns true if the current ++ input suffix matches the atom bracketed by ATOM and END_ATOM. */ ++static inline bool ++input_suffix_matches (const char *atom, const char *end_atom) ++{ ++ return (input_suffix ++ && !strncmp (input_suffix, atom, end_atom - atom) ++ && input_suffix[end_atom - atom] == '\0'); ++} + +-static const char * +-handle_braces (p) +- const char *p; ++/* Inline subroutine of handle_braces. Returns true if a switch ++ matching the atom bracketed by ATOM and END_ATOM appeared on the ++ command line. */ ++static inline bool ++switch_matches (const char *atom, const char *end_atom, int starred) + { +- const char *filter, *body = NULL, *endbody = NULL; +- int pipe_p = 0; +- int true_once = 0; /* If, in %{a|b:d}, at least one of a,b was seen. */ +- int negate; +- int suffix; +- int include_blanks = 1; +- int elide_switch = 0; +- int ordered = 0; +- +- if (*p == '^') +- { +- /* A '^' after the open-brace means to not give blanks before args. */ +- include_blanks = 0; +- ++p; +- } +- +- if (*p == '|') +- { +- /* A `|' after the open-brace means, +- if the test fails, output a single minus sign rather than nothing. +- This is used in %{|!pipe:...}. */ +- pipe_p = 1; +- ++p; +- } +- +- if (*p == '<') +- { +- /* A `<' after the open-brace means that the switch should be +- removed from the command-line. */ +- elide_switch = 1; +- ++p; +- } +- +-next_member: +- negate = suffix = 0; ++ int i; ++ int len = end_atom - atom; ++ int plen = starred ? len : -1; + +- if (*p == '!') +- /* A `!' after the open-brace negates the condition: +- succeed if the specified switch is not present. */ +- negate = 1, ++p; ++ for (i = 0; i < n_switches; i++) ++ if (!strncmp (switches[i].part1, atom, len) ++ && (starred || switches[i].part1[len] == '\0') ++ && check_live_switch (i, plen)) ++ return true; ++ ++ return false; ++} ++ ++/* Inline subroutine of handle_braces. Mark all of the switches which ++ match ATOM (extends to END_ATOM; STARRED indicates whether there ++ was a star after the atom) for later processing. */ ++static inline void ++mark_matching_switches (const char *atom, const char *end_atom, int starred) ++{ ++ int i; ++ int len = end_atom - atom; ++ int plen = starred ? len : -1; + +- if (*p == '.') +- /* A `.' after the open-brace means test against the current suffix. */ +- { +- if (pipe_p) +- abort (); ++ for (i = 0; i < n_switches; i++) ++ if (!strncmp (switches[i].part1, atom, len) ++ && (starred || switches[i].part1[len] == '\0') ++ && check_live_switch (i, plen)) ++ switches[i].ordering = 1; ++} + +- suffix = 1; +- ++p; +- } ++/* Inline subroutine of handle_braces. Process all the currently ++ marked switches through give_switch, and clear the marks. */ ++static inline void ++process_marked_switches (void) ++{ ++ int i; + +- if (elide_switch && (negate || pipe_p || suffix)) ++ for (i = 0; i < n_switches; i++) ++ if (switches[i].ordering == 1) + { +- /* It doesn't make sense to mix elision with other flags. We +- could fatal() here, but the standard seems to be to abort. */ +- abort (); ++ switches[i].ordering = 0; ++ give_switch (i, 0); + } ++} + +- next_ampersand: +- filter = p; +- while (*p != ':' && *p != '}' && *p != '|' && *p != '&') +- p++; +- +- if (*p == '|' && (pipe_p || ordered)) +- abort (); ++/* Handle a %{ ... } construct. P points just inside the leading {. ++ Returns a pointer one past the end of the brace block, or 0 ++ if we call do_spec_1 and that returns -1. */ + +- if (!body) +- { +- if (*p != '}' && *p != '&') +- { +- int count = 1; +- const char *q = p; ++static const char * ++handle_braces (const char *p) ++{ ++ const char *atom, *end_atom; ++ const char *d_atom = NULL, *d_end_atom = NULL; + +- while (*q++ != ':') +- continue; +- body = q; ++ bool a_is_suffix; ++ bool a_is_starred; ++ bool a_is_negated; ++ bool a_matched; ++ ++ bool a_must_be_last = false; ++ bool ordered_set = false; ++ bool disjunct_set = false; ++ bool disj_matched = false; ++ bool disj_starred = true; ++ bool n_way_choice = false; ++ bool n_way_matched = false; ++ bool pipe_p = false; + +- while (count > 0) +- { +- if (*q == '{') +- count++; +- else if (*q == '}') +- count--; +- else if (*q == 0) +- fatal ("mismatched braces in specs"); +- q++; +- } +- endbody = q; +- } +- else +- body = p, endbody = p + 1; +- } ++#define SKIP_WHITE() do { while (*p == ' ' || *p == '\t') p++; } while (0) + +- if (suffix) ++ do + { +- int found = (input_suffix != 0 +- && (long) strlen (input_suffix) == (long) (p - filter) +- && strncmp (input_suffix, filter, p - filter) == 0); +- +- if (body[0] == '}') ++ if (a_must_be_last) ++ abort (); ++ if (*p == '|') ++ { ++ /* A `|' after the open-brace means, if the test fails, ++ output a single minus sign rather than nothing. ++ This is used in %{|!pipe:...}. */ ++ a_must_be_last = pipe_p = true; ++ p++; ++ } ++ ++ /* Scan one "atom" (S in the description above of %{}, possibly ++ with !, ., or * modifiers). */ ++ a_matched = a_is_suffix = a_is_starred = a_is_negated = false; ++ ++ SKIP_WHITE(); ++ if (*p == '!') ++ p++, a_is_negated = true; ++ ++ SKIP_WHITE(); ++ if (*p == '.') ++ p++, a_is_suffix = true; ++ ++ atom = p; ++ while (ISIDNUM(*p) || *p == '-' || *p == '+' || *p == '=' ++ || *p == ',' || *p == '.' || *p == '@' || *p == '$') ++ p++; ++ end_atom = p; ++ ++ if (*p == '*') ++ p++, a_is_starred = 1; ++ ++ SKIP_WHITE(); ++ if (*p == '&' || *p == '}') ++ { ++ /* Substitute the switch(es) indicated by the current atom. */ ++ ordered_set = true; ++ if (disjunct_set || n_way_choice || a_is_negated || a_is_suffix ++ || atom == end_atom) + abort (); + +- if (negate != found +- && do_spec_1 (save_string (body, endbody-body-1), 0, NULL) < 0) +- return 0; ++ mark_matching_switches (atom, end_atom, a_is_starred); ++ ++ if (*p == '}') ++ process_marked_switches (); + } +- else if (p[-1] == '*' && (p[0] == '}' || p[0] == '&')) ++ else if (*p == '|' || *p == ':') + { +- /* Substitute all matching switches as separate args. */ +- int i; ++ /* Substitute some text if the current atom appears as a switch ++ or suffix. */ ++ disjunct_set = true; ++ if (ordered_set) ++ abort (); + +- for (i = 0; i < n_switches; i++) +- if (!strncmp (switches[i].part1, filter, p - 1 - filter) +- && check_live_switch (i, p - 1 - filter)) +- { +- if (elide_switch) ++ if (atom == end_atom) + { +- switches[i].live_cond = SWITCH_IGNORE; +- switches[i].validated = 1; +- } +- else +- ordered = 1, switches[i].ordering = 1; +- } ++ if (!n_way_choice || disj_matched || *p == '|' ++ || a_is_negated || a_is_suffix || a_is_starred) ++ abort (); ++ ++ /* An empty term may appear as the last choice of an ++ N-way choice set; it means "otherwise". */ ++ a_must_be_last = true; ++ disj_matched = !n_way_matched; ++ disj_starred = false; + } + else + { +- /* Test for presence of the specified switch. */ +- int i; +- int present = 0; ++ if (a_is_suffix && a_is_starred) ++ abort (); + +- /* If name specified ends in *, as in {x*:...}, +- check for %* and handle that case. */ +- if (p[-1] == '*' && !negate) +- { +- int substitution; +- const char *r = body; ++ if (!a_is_starred) ++ disj_starred = false; + +- /* First see whether we have %*. */ +- substitution = 0; +- while (r < endbody) +- { +- if (*r == '%' && r[1] == '*') +- substitution = 1; +- r++; +- } +- /* If we do, handle that case. */ +- if (substitution) +- { +- /* Substitute all matching switches as separate args. +- But do this by substituting for %* +- in the text that follows the colon. */ +- +- unsigned hard_match_len = p - filter - 1; +- char *string = save_string (body, endbody - body - 1); ++ /* Don't bother testing this atom if we already have a ++ match. */ ++ if (!disj_matched && !n_way_matched) ++ { ++ if (a_is_suffix) ++ a_matched = input_suffix_matches (atom, end_atom); ++ else ++ a_matched = switch_matches (atom, end_atom, a_is_starred); + +- for (i = 0; i < n_switches; i++) +- if (!strncmp (switches[i].part1, filter, hard_match_len) +- && check_live_switch (i, -1)) ++ if (a_matched != a_is_negated) + { +- do_spec_1 (string, 0, &switches[i].part1[hard_match_len]); +- /* Pass any arguments this switch has. */ +- give_switch (i, 1, 1); +- suffix_subst = NULL; ++ disj_matched = true; ++ d_atom = atom; ++ d_end_atom = end_atom; + } +- +- /* We didn't match. Try again. */ +- if (*p++ == '|') +- goto next_member; +- return endbody; + } + } + +- /* If name specified ends in *, as in {x*:...}, +- check for presence of any switch name starting with x. */ +- if (p[-1] == '*') ++ if (*p == ':') + { +- for (i = 0; i < n_switches; i++) +- { +- unsigned hard_match_len = p - filter - 1; +- +- if (!strncmp (switches[i].part1, filter, hard_match_len) +- && check_live_switch (i, hard_match_len)) +- { +- present = 1; +- break; ++ /* Found the body, that is, the text to substitute if the ++ current disjunction matches. */ ++ p = process_brace_body (p + 1, d_atom, d_end_atom, disj_starred, ++ disj_matched && !n_way_matched); ++ if (p == 0) ++ return 0; ++ ++ /* If we have an N-way choice, reset state for the next ++ disjunction. */ ++ if (*p == ';') ++ { ++ n_way_choice = true; ++ n_way_matched |= disj_matched; ++ disj_matched = false; ++ disj_starred = true; ++ d_atom = d_end_atom = NULL; + } + } + } +- /* Otherwise, check for presence of exact name specified. */ + else ++ abort (); ++ if (pipe_p && /* use_pipes */ ! (n_way_matched || disj_matched) ) + { +- for (i = 0; i < n_switches; i++) +- { +- if (!strncmp (switches[i].part1, filter, p - filter) +- && switches[i].part1[p - filter] == 0 +- && check_live_switch (i, -1)) +- { +- present = 1; +- break; +- } ++ /* Here if a %{|...} conditional fails: output a minus sign, ++ which means "standard output" or "standard input". */ ++ do_spec_1 ("-", 0, NULL); + } + } ++ while (*p++ != '}'); + +- /* If it is as desired (present for %{s...}, absent for %{!s...}) +- then substitute either the switch or the specified +- conditional text. */ +- if (present != negate) +- { +- if (elide_switch) ++ return p; ++ ++#undef SKIP_WHITE ++} ++ ++/* Subroutine of handle_braces. Scan and process a brace substitution body ++ (X in the description of %{} syntax). P points one past the colon; ++ ATOM and END_ATOM bracket the first atom which was found to be true ++ (present) in the current disjunction; STARRED indicates whether all ++ the atoms in the current disjunction were starred (for syntax validation); ++ MATCHED indicates whether the disjunction matched or not, and therefore ++ whether or not the body is to be processed through do_spec_1 or just ++ skipped. Returns a pointer to the closing } or ;, or 0 if do_spec_1 ++ returns -1. */ ++ ++static const char * ++process_brace_body (const char *p, const char *atom, const char *end_atom, ++ int starred, int matched) ++{ ++ const char *body, *end_body; ++ unsigned int nesting_level; ++ bool have_subst = false; ++ ++ /* Locate the closing } or ;, honoring nested braces. ++ Trim trailing whitespace. */ ++ body = p; ++ nesting_level = 1; ++ for (;;) + { +- switches[i].live_cond = SWITCH_IGNORE; +- switches[i].validated = 1; +- } +- else if (ordered || *p == '&') +- ordered = 1, switches[i].ordering = 1; ++ if (*p == '{') ++ nesting_level++; + else if (*p == '}') +- give_switch (i, 0, include_blanks); +- else +- /* Even if many alternatives are matched, only output once. */ +- true_once = 1; +- } +- else if (pipe_p) + { +- /* Here if a %{|...} conditional fails: output a minus sign, +- which means "standard output" or "standard input". */ +- do_spec_1 ("-", 0, NULL); +- return endbody; ++ if (!--nesting_level) ++ break; + } +- } ++ else if (*p == ';' && nesting_level == 1) ++ break; ++ else if (*p == '%' && p[1] == '*' && nesting_level == 1) ++ have_subst = true; ++ else if (*p == '\0') ++ abort (); ++ p++; ++ } ++ ++ end_body = p; ++ while (end_body[-1] == ' ' || end_body[-1] == '\t') ++ end_body--; + +- /* We didn't match; try again. */ +- if (*p++ == '|') +- goto next_member; ++ if (have_subst && !starred) ++ abort (); + +- if (p[-1] == '&') ++ if (matched) ++ { ++ /* Copy the substitution body to permanent storage and execute it. ++ If have_subst is false, this is a simple matter of running the ++ body through do_spec_1... */ ++ char *string = save_string (body, end_body - body); ++ if (!have_subst) + { +- body = 0; +- goto next_ampersand; ++ if (do_spec_1 (string, 0, NULL) < 0) ++ return 0; + } +- +- if (ordered) ++ else + { ++ /* ... but if have_subst is true, we have to process the ++ body once for each matching switch, with %* set to the ++ variant part of the switch. */ ++ unsigned int hard_match_len = end_atom - atom; + int i; +- /* Doing this set of switches later preserves their command-line +- ordering. This is needed for e.g. -U, -D and -A. */ ++ + for (i = 0; i < n_switches; i++) +- if (switches[i].ordering == 1) ++ if (!strncmp (switches[i].part1, atom, hard_match_len) ++ && check_live_switch (i, hard_match_len)) + { +- switches[i].ordering = 0; +- give_switch (i, 0, include_blanks); ++ if (do_spec_1 (string, 0, ++ &switches[i].part1[hard_match_len]) < 0) ++ return 0; ++ /* Pass any arguments this switch has. */ ++ give_switch (i, 1); ++ suffix_subst = NULL; + } + } +- /* Process the spec just once, regardless of match count. */ +- else if (true_once) +- { +- if (do_spec_1 (save_string (body, endbody - body - 1), +- 0, NULL) < 0) +- return 0; + } + +- return endbody; ++ return p; + } + + /* Return 0 iff switch number SWITCHNUM is obsoleted by a later switch +@@ -6221,9 +6632,7 @@ + with the "no-", similarly for a switch with the "no-" prefix. */ + + static int +-check_live_switch (switchnum, prefix_length) +- int switchnum; +- int prefix_length; ++check_live_switch (int switchnum, int prefix_length) + { + const char *name = switches[switchnum].part1; + int i; +@@ -6294,16 +6703,10 @@ + the vector of switches gcc received, which is `switches'. + This cannot fail since it never finishes a command line. + +- If OMIT_FIRST_WORD is nonzero, then we omit .part1 of the argument. +- +- If INCLUDE_BLANKS is nonzero, then we include blanks before each argument +- of the switch. */ ++ If OMIT_FIRST_WORD is nonzero, then we omit .part1 of the argument. */ + + static void +-give_switch (switchnum, omit_first_word, include_blanks) +- int switchnum; +- int omit_first_word; +- int include_blanks; ++give_switch (int switchnum, int omit_first_word) + { + if (switches[switchnum].live_cond == SWITCH_IGNORE) + return; +@@ -6321,7 +6724,6 @@ + { + const char *arg = *p; + +- if (include_blanks) + do_spec_1 (" ", 0, NULL); + if (suffix_subst) + { +@@ -6354,8 +6756,7 @@ + Return the absolute file name found. If nothing is found, return NAME. */ + + static const char * +-find_file (name) +- const char *name; ++find_file (const char *name) + { + char *newname; + +@@ -6380,14 +6781,11 @@ + limit. */ + + static int +-is_directory (path1, path2, linker) +- const char *path1; +- const char *path2; +- int linker; ++is_directory (const char *path1, const char *path2, int linker) + { + int len1 = strlen (path1); + int len2 = strlen (path2); +- char *path = (char *) alloca (3 + len1 + len2); ++ char *path = alloca (3 + len1 + len2); + char *cp; + struct stat st; + +@@ -6425,8 +6823,7 @@ + the input file named FILENAME. */ + + void +-set_input (filename) +- const char *filename; ++set_input (const char *filename) + { + const char *p; + +@@ -6467,8 +6864,7 @@ + /* On fatal signals, delete all the temporary files. */ + + static void +-fatal_error (signum) +- int signum; ++fatal_error (int signum) + { + signal (signum, SIG_DFL); + delete_failure_queue (); +@@ -6478,16 +6874,15 @@ + kill (getpid (), signum); + } + +-extern int main PARAMS ((int, const char *const *)); ++extern int main (int, const char **); + + int +-main (argc, argv) +- int argc; +- const char *const *argv; ++main (int argc, const char **argv) + { + size_t i; + int value; + int linker_was_run = 0; ++ int num_linker_inputs = 0; + char *explicit_link_files; + char *specs_file; + const char *p; +@@ -6598,18 +6993,11 @@ + + process_command (argc, argv); + +- /* Process DRIVER_SELF_SPECS, adding any new options to the end +- of the command line. */ +- +- for (i = 0; i < ARRAY_SIZE (driver_self_specs); i++) +- do_self_spec (driver_self_specs[i]); +- + /* Initialize the vector of specs to just the default. + This means one element containing 0s, as a terminator. */ + +- compilers = (struct compiler *) xmalloc (sizeof default_compilers); +- memcpy ((char *) compilers, (char *) default_compilers, +- sizeof default_compilers); ++ compilers = xmalloc (sizeof default_compilers); ++ memcpy (compilers, default_compilers, sizeof default_compilers); + n_compilers = n_default_compilers; + + /* Read specs from a file if there is one. */ +@@ -6627,9 +7015,8 @@ + + /* We need to check standard_exec_prefix/just_machine_suffix/specs + for any override of as, ld and libraries. */ +- specs_file = (char *) alloca (strlen (standard_exec_prefix) +- + strlen (just_machine_suffix) +- + sizeof ("specs")); ++ specs_file = alloca (strlen (standard_exec_prefix) ++ + strlen (just_machine_suffix) + sizeof ("specs")); + + strcpy (specs_file, standard_exec_prefix); + strcat (specs_file, just_machine_suffix); +@@ -6637,40 +7024,92 @@ + if (access (specs_file, R_OK) == 0) + read_specs (specs_file, TRUE); + ++ /* Process any configure-time defaults specified for the command line ++ options, via OPTION_DEFAULT_SPECS. */ ++ for (i = 0; i < ARRAY_SIZE (option_default_specs); i++) ++ do_option_spec (option_default_specs[i].name, ++ option_default_specs[i].spec); ++ ++ /* Process DRIVER_SELF_SPECS, adding any new options to the end ++ of the command line. */ ++ ++ for (i = 0; i < ARRAY_SIZE (driver_self_specs); i++) ++ do_self_spec (driver_self_specs[i]); ++ + #ifdef GPC + init_automake_temp_file (argc, argv); + check_amtmpfile_switch (); + #endif + +- /* If not cross-compiling, look for startfiles in the standard places. +- Similarly, don't add the standard prefixes if startfile handling +- will be under control of startfile_prefix_spec. */ +- if (*cross_compile == '0' && *startfile_prefix_spec == 0) ++ /* If not cross-compiling, look for executables in the standard ++ places. */ ++ if (*cross_compile == '0') + { + if (*md_exec_prefix) + { + add_prefix (&exec_prefixes, md_exec_prefix, "GCC", + PREFIX_PRIORITY_LAST, 0, NULL, 0); +- add_prefix (&startfile_prefixes, md_exec_prefix, "GCC", +- PREFIX_PRIORITY_LAST, 0, NULL, 0); ++ } + } + +- if (*md_startfile_prefix) +- add_prefix (&startfile_prefixes, md_startfile_prefix, "GCC", ++ /* Process sysroot_suffix_spec. */ ++ if (*sysroot_suffix_spec != 0 ++ && do_spec_2 (sysroot_suffix_spec) == 0) ++ { ++ if (argbuf_index > 1) ++ error ("spec failure: more than one arg to SYSROOT_SUFFIX_SPEC."); ++ else if (argbuf_index == 1) ++ target_sysroot_suffix = xstrdup (argbuf[argbuf_index -1]); ++ } ++ ++ /* Process sysroot_hdrs_suffix_spec. */ ++ if (*sysroot_hdrs_suffix_spec != 0 ++ && do_spec_2 (sysroot_hdrs_suffix_spec) == 0) ++ { ++ if (argbuf_index > 1) ++ error ("spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC."); ++ else if (argbuf_index == 1) ++ target_sysroot_hdrs_suffix = xstrdup (argbuf[argbuf_index -1]); ++ } ++ ++ /* Look for startfiles in the standard places. */ ++ if (*startfile_prefix_spec != 0 ++ && do_spec_2 (startfile_prefix_spec) == 0 ++ && do_spec_1 (" ", 0, NULL) == 0) ++ { ++ int ndx; ++ for (ndx = 0; ndx < argbuf_index; ndx++) ++ add_sysrooted_prefix (&startfile_prefixes, argbuf[ndx], "BINUTILS", + PREFIX_PRIORITY_LAST, 0, NULL, 1); ++ } ++ /* We should eventually get rid of all these and stick to ++ startfile_prefix_spec exclusively. */ ++ else if (*cross_compile == '0' || target_system_root) ++ { ++ if (*md_exec_prefix) ++ add_sysrooted_prefix (&startfile_prefixes, md_exec_prefix, "GCC", ++ PREFIX_PRIORITY_LAST, 0, NULL, 1); ++ ++ if (*md_startfile_prefix) ++ add_sysrooted_prefix (&startfile_prefixes, md_startfile_prefix, ++ "GCC", PREFIX_PRIORITY_LAST, 0, NULL, 1); + + if (*md_startfile_prefix_1) +- add_prefix (&startfile_prefixes, md_startfile_prefix_1, "GCC", +- PREFIX_PRIORITY_LAST, 0, NULL, 1); ++ add_sysrooted_prefix (&startfile_prefixes, md_startfile_prefix_1, ++ "GCC", PREFIX_PRIORITY_LAST, 0, NULL, 1); + + /* If standard_startfile_prefix is relative, base it on + standard_exec_prefix. This lets us move the installed tree + as a unit. If GCC_EXEC_PREFIX is defined, base +- standard_startfile_prefix on that as well. */ +- if (IS_ABSOLUTE_PATHNAME (standard_startfile_prefix)) +- add_prefix (&startfile_prefixes, standard_startfile_prefix, "BINUTILS", ++ standard_startfile_prefix on that as well. ++ ++ If the prefix is relative, only search it for native compilers; ++ otherwise we will search a directory containing host libraries. */ ++ if (IS_ABSOLUTE_PATH (standard_startfile_prefix)) ++ add_sysrooted_prefix (&startfile_prefixes, ++ standard_startfile_prefix, "BINUTILS", + PREFIX_PRIORITY_LAST, 0, NULL, 1); +- else ++ else if (*cross_compile == '0') + { + if (gcc_exec_prefix) + add_prefix (&startfile_prefixes, +@@ -6684,34 +7123,15 @@ + NULL, PREFIX_PRIORITY_LAST, 0, NULL, 1); + } + +- add_prefix (&startfile_prefixes, standard_startfile_prefix_1, ++ add_sysrooted_prefix (&startfile_prefixes, standard_startfile_prefix_1, + "BINUTILS", PREFIX_PRIORITY_LAST, 0, NULL, 1); +- add_prefix (&startfile_prefixes, standard_startfile_prefix_2, ++ add_sysrooted_prefix (&startfile_prefixes, standard_startfile_prefix_2, + "BINUTILS", PREFIX_PRIORITY_LAST, 0, NULL, 1); + #if 0 /* Can cause surprises, and one can use -B./ instead. */ + add_prefix (&startfile_prefixes, "./", NULL, + PREFIX_PRIORITY_LAST, 1, NULL, 0); + #endif + } +- else +- { +- if (!IS_ABSOLUTE_PATHNAME (standard_startfile_prefix) +- && gcc_exec_prefix) +- add_prefix (&startfile_prefixes, +- concat (gcc_exec_prefix, machine_suffix, +- standard_startfile_prefix, NULL), +- "BINUTILS", PREFIX_PRIORITY_LAST, 0, NULL, 1); +- } +- +- if (*startfile_prefix_spec != 0 +- && do_spec_2 (startfile_prefix_spec) == 0 +- && do_spec_1 (" ", 0, NULL) == 0) +- { +- int ndx; +- for (ndx = 0; ndx < argbuf_index; ndx++) +- add_prefix (&startfile_prefixes, argbuf[ndx], "BINUTILS", +- PREFIX_PRIORITY_LAST, 0, NULL, 1); +- } + + /* Process any user specified specs in the order given on the command + line. */ +@@ -6865,14 +7285,35 @@ + + i = n_infiles; + i += lang_specific_extra_outfiles; +- outfiles = (const char **) xcalloc (i, sizeof (char *)); ++ outfiles = xcalloc (i, sizeof (char *)); + + /* Record which files were specified explicitly as link input. */ + + explicit_link_files = xcalloc (1, n_infiles); + ++ if (combine_inputs) ++ { ++ int lang_n_infiles = 0; + for (i = 0; (int) i < n_infiles; i++) + { ++ const char *name = infiles[i].name; ++ struct compiler *compiler ++ = lookup_compiler (name, strlen (name), infiles[i].language); ++ if (compiler == NULL) ++ error ("%s: linker input file unused because linking not done", ++ name); ++ else if (lang_n_infiles > 0 && compiler != input_file_compiler) ++ fatal ("cannot specify -o with -c or -S and multiple languages"); ++ else ++ { ++ lang_n_infiles++; ++ input_file_compiler = compiler; ++ } ++ } ++ } ++ ++ for (i = 0; (int) i < (combine_inputs ? 1 : n_infiles); i++) ++ { + int this_file_error = 0; + + /* Tell do_spec what to substitute for %i. */ +@@ -6886,6 +7327,7 @@ + + /* Figure out which compiler from the file's suffix. */ + ++ if (! combine_inputs) + input_file_compiler + = lookup_compiler (infiles[i].name, input_filename_length, + infiles[i].language); +@@ -6941,9 +7383,15 @@ + error_count++; + } + ++ /* Determine if there are any linker input files. */ ++ num_linker_inputs = 0; ++ for (i = 0; (int) i < n_infiles; i++) ++ if (explicit_link_files[i] || outfiles[i] != NULL) ++ num_linker_inputs++; ++ + /* Run ld to link all the compiler output files. */ + +- if (error_count == 0) ++ if (num_linker_inputs > 0 && error_count == 0) + { + int tmp = execution_count; + +@@ -7000,10 +7448,7 @@ + or 0 if this file is to be passed to the linker. */ + + static struct compiler * +-lookup_compiler (name, length, language) +- const char *name; +- size_t length; +- const char *language; ++lookup_compiler (const char *name, size_t length, const char *language) + { + struct compiler *cp; + +@@ -7069,9 +7514,7 @@ + } + + static char * +-save_string (s, len) +- const char *s; +- int len; ++save_string (const char *s, int len) + { + char *result = xmalloc (len + 1); + +@@ -7081,8 +7524,7 @@ + } + + void +-pfatal_with_name (name) +- const char *name; ++pfatal_with_name (const char *name) + { + perror_with_name (name); + delete_temp_files (); +@@ -7090,16 +7532,13 @@ + } + + static void +-perror_with_name (name) +- const char *name; ++perror_with_name (const char *name) + { + error ("%s: %s", name, xstrerror (errno)); + } + + static void +-pfatal_pexecute (errmsg_fmt, errmsg_arg) +- const char *errmsg_fmt; +- const char *errmsg_arg; ++pfatal_pexecute (const char *errmsg_fmt, const char *errmsg_arg) + { + if (errmsg_arg) + { +@@ -7116,136 +7555,153 @@ + pfatal_with_name (errmsg_fmt); + } + +-/* Output an error message and exit */ ++/* Output an error message and exit. */ + + void +-fancy_abort () ++fancy_abort (void) + { + fatal ("internal gpc abort"); + } + +-/* Output an error message and exit */ ++/* Output an error message and exit. */ + + void +-fatal VPARAMS ((const char *msgid, ...)) ++fatal (const char *msgid, ...) + { +- VA_OPEN (ap, msgid); +- VA_FIXEDARG (ap, const char *, msgid); ++ va_list ap; ++ ++ va_start (ap, msgid); + + fprintf (stderr, "%s: ", programname); + vfprintf (stderr, _(msgid), ap); +- VA_CLOSE (ap); ++ va_end (ap); + fprintf (stderr, "\n"); + delete_temp_files (); + safe_exit (1); + } + + void +-error VPARAMS ((const char *msgid, ...)) ++error (const char *msgid, ...) + { +- VA_OPEN (ap, msgid); +- VA_FIXEDARG (ap, const char *, msgid); ++ va_list ap; + ++ va_start (ap, msgid); + fprintf (stderr, "%s: ", programname); + vfprintf (stderr, _(msgid), ap); +- VA_CLOSE (ap); ++ va_end (ap); + + fprintf (stderr, "\n"); + } + + static void +-notice VPARAMS ((const char *msgid, ...)) ++notice (const char *msgid, ...) + { +- VA_OPEN (ap, msgid); +- VA_FIXEDARG (ap, const char *, msgid); ++ va_list ap; + ++ va_start (ap, msgid); + vfprintf (stderr, _(msgid), ap); +- VA_CLOSE (ap); ++ va_end (ap); ++} ++ ++static inline void ++validate_switches_from_spec (const char *spec) ++{ ++ const char *p = spec; ++ char c; ++ while ((c = *p++)) ++ if (c == '%' && (*p == '{' || *p == '<' || (*p == 'W' && *++p == '{'))) ++ /* We have a switch spec. */ ++ p = validate_switches (p + 1); + } + + static void +-validate_all_switches () ++validate_all_switches (void) + { + struct compiler *comp; +- const char *p; +- char c; + struct spec_list *spec; + + for (comp = compilers; comp->spec; comp++) +- { +- p = comp->spec; +- while ((c = *p++)) +- if (c == '%' && (*p == '{' || (*p == 'W' && *++p == '{'))) +- /* We have a switch spec. */ +- validate_switches (p + 1); +- } ++ validate_switches_from_spec (comp->spec); + + /* Look through the linked list of specs read from the specs file. */ + for (spec = specs; spec; spec = spec->next) +- { +- p = *(spec->ptr_spec); +- while ((c = *p++)) +- if (c == '%' && (*p == '{' || (*p == 'W' && *++p == '{'))) +- /* We have a switch spec. */ +- validate_switches (p + 1); +- } ++ validate_switches_from_spec (*spec->ptr_spec); + +- p = link_command_spec; +- while ((c = *p++)) +- if (c == '%' && (*p == '{' || (*p == 'W' && *++p == '{'))) +- /* We have a switch spec. */ +- validate_switches (p + 1); ++ validate_switches_from_spec (link_command_spec); + } + + /* Look at the switch-name that comes after START + and mark as valid all supplied switches that match it. */ + +-static void +-validate_switches (start) +- const char *start; ++static const char * ++validate_switches (const char *start) + { + const char *p = start; +- const char *filter; ++ const char *atom; ++ size_t len; + int i; +- int suffix; ++ bool suffix = false; ++ bool starred = false; + +- if (*p == '|') +- ++p; ++#define SKIP_WHITE() do { while (*p == ' ' || *p == '\t') p++; } while (0) + + next_member: ++ SKIP_WHITE (); ++ + if (*p == '!') +- ++p; ++ p++; + +- suffix = 0; ++ SKIP_WHITE (); + if (*p == '.') +- suffix = 1, ++p; ++ suffix = true, p++; + +- filter = p; +- while (*p != ':' && *p != '}' && *p != '|' && *p != '&') ++ atom = p; ++ while (ISIDNUM (*p) || *p == '-' || *p == '+' || *p == '=' ++ || *p == ',' || *p == '.' || *p == '@') + p++; ++ len = p - atom; + +- if (suffix) +- ; +- else if (p[-1] == '*') ++ if (*p == '*') ++ starred = true, p++; ++ ++ SKIP_WHITE (); ++ ++ if (!suffix) + { + /* Mark all matching switches as valid. */ + for (i = 0; i < n_switches; i++) +- if (!strncmp (switches[i].part1, filter, p - filter - 1)) ++ if (!strncmp (switches[i].part1, atom, len) ++ && (starred || switches[i].part1[len] == 0)) + switches[i].validated = 1; + } +- else ++ ++ if (*p) p++; ++ if (*p && (p[-1] == '|' || p[-1] == '&')) ++ goto next_member; ++ ++ if (*p && p[-1] == ':') + { +- /* Mark an exact matching switch as valid. */ +- for (i = 0; i < n_switches; i++) ++ while (*p && *p != ';' && *p != '}') + { +- if (!strncmp (switches[i].part1, filter, p - filter) +- && switches[i].part1[p - filter] == 0) +- switches[i].validated = 1; ++ if (*p == '%') ++ { ++ p++; ++ if (*p == '{' || *p == '<') ++ p = validate_switches (p+1); ++ else if (p[0] == 'W' && p[1] == '{') ++ p = validate_switches (p+2); + } ++ else ++ p++; + } + +- if (*p++ == '|' || p[-1] == '&') ++ if (*p) p++; ++ if (*p && p[-1] == ';') + goto next_member; ++ } ++ ++ return p; ++#undef SKIP_WHITE + } + + struct mdswitchstr +@@ -7261,9 +7717,7 @@ + canonicalize the switches to keep only the ones we care about. */ + + static int +-used_arg (p, len) +- const char *p; +- int len; ++used_arg (const char *p, int len) + { + struct mswitchstr + { +@@ -7289,8 +7743,7 @@ + if (*q == ';') + cnt++; + +- matches = +- (struct mswitchstr *) alloca ((sizeof (struct mswitchstr)) * cnt); ++ matches = alloca ((sizeof (struct mswitchstr)) * cnt); + i = 0; + q = multilib_matches; + while (*q != '\0') +@@ -7322,8 +7775,7 @@ + xmalloc from calling fatal, and prevents us from re-executing this + block of code. */ + mswitches +- = (struct mswitchstr *) +- xmalloc (sizeof (struct mswitchstr) ++ = xmalloc (sizeof (struct mswitchstr) + * (n_mdswitches + (n_switches ? n_switches : 1))); + for (i = 0; i < n_switches; i++) + { +@@ -7401,9 +7853,7 @@ + } + + static int +-default_arg (p, len) +- const char *p; +- int len; ++default_arg (const char *p, int len) + { + int i; + +@@ -7426,7 +7876,7 @@ + will be used. */ + + static void +-set_multilib_dir () ++set_multilib_dir (void) + { + const char *p; + unsigned int this_path_len; +@@ -7452,9 +7902,7 @@ + { + int i = 0; + +- mdswitches +- = (struct mdswitchstr *) xmalloc (sizeof (struct mdswitchstr) +- * n_mdswitches); ++ mdswitches = xmalloc (sizeof (struct mdswitchstr) * n_mdswitches); + for (start = multilib_defaults; *start != '\0'; start = end + 1) + { + while (*start == ' ' || *start == '\t') +@@ -7661,7 +8109,7 @@ + the exclusions. */ + + static void +-print_multilib_info () ++print_multilib_info (void) + { + const char *p = multilib_select; + const char *last_path = 0, *this_path; +@@ -7909,12 +8357,10 @@ + (whose name has been expanded with %s). */ + + static const char * +-if_exists_spec_function (argc, argv) +- int argc; +- const char **argv; ++if_exists_spec_function (int argc, const char **argv) + { + /* Must have only one argument. */ +- if (argc == 1 && IS_ABSOLUTE_PATHNAME (argv[0]) && ! access (argv[0], R_OK)) ++ if (argc == 1 && IS_ABSOLUTE_PATH (argv[0]) && ! access (argv[0], R_OK)) + return argv[0]; + + return NULL; +@@ -7926,15 +8372,13 @@ + is returned if the first argument does not exist. */ + + static const char * +-if_exists_else_spec_function (argc, argv) +- int argc; +- const char **argv; ++if_exists_else_spec_function (int argc, const char **argv) + { + /* Must have exactly two arguments. */ + if (argc != 2) + return NULL; + +- if (IS_ABSOLUTE_PATHNAME (argv[0]) && ! access (argv[0], R_OK)) ++ if (IS_ABSOLUTE_PATH (argv[0]) && ! access (argv[0], R_OK)) + return argv[0]; + + return argv[1]; +@@ -7978,7 +8422,7 @@ + } + if (!new_argc) + return; +- argv = (const char **) xmalloc ((argc + new_argc + 1) * sizeof (const char *)); ++ argv = (const char **) xmalloc ((argc + new_argc+1) * sizeof (const char *)); + memcpy (argv, *argvp, argc * sizeof (const char *)); + memcpy (argv + argc, new_argv, new_argc * sizeof (const char *)); + argv [argc + new_argc] = NULL; +@@ -8236,7 +8680,7 @@ + { + printf("\ + GNU Pascal version %s, based on gcc-%s.\n\ +-Copyright (C) 1987-2004 Free Software Foundation, Inc.\n\ ++Copyright (C) 1987-2003 Free Software Foundation, Inc.\n\ + \n\ + GNU Pascal is free software; you can redistribute it and/or modify\n\ + it under the terms of the GNU General Public License as published by\n\ +@@ -8359,6 +8803,7 @@ + } + #endif + ++#ifndef GCC_3_4 + #ifndef HAVE_PUTENV + void + putenv (str) +@@ -8398,6 +8843,7 @@ + sizeof (char *) * (num_envs+1)); + } + #endif ++#endif + + #ifndef EGCS + /* We need to provide a type for gcc_uint64_t. */ +diff -ru gpc-20040516.orig/p/gpc.h gpc-20040516/p/gpc.h +--- gpc-20040516.orig/p/gpc.h 2004-05-12 17:05:19.000000000 +0200 ++++ gpc-20040516/p/gpc.h 2004-07-06 19:12:30.000000000 +0200 +@@ -166,10 +166,16 @@ + }; + #undef DEFTREECODE + ++#ifndef GCC_3_4 + #define NUMBER_OF_OPERANDS(code) \ + (((code) == SAVE_EXPR || (code) == WITH_CLEANUP_EXPR) ? 1 \ + : ((code) == METHOD_CALL_EXPR) ? 3 \ + : tree_code_length[(int) (code)]) ++#else ++#define NUMBER_OF_OPERANDS(code) \ ++ (((code) == SAVE_EXPR || (code) == WITH_CLEANUP_EXPR) ? 1 \ ++ : tree_code_length[(int) (code)]) ++#endif + + typedef HOST_WIDE_INT gpi_int; + +@@ -188,9 +194,12 @@ + #define INTERFACE_TABLE(NODE) (AS_INTERFACE_NAME_NODE (NODE)->table) + #define INTERFACE_CHECKSUM(NODE) (AS_INTERFACE_NAME_NODE (NODE)->checksum) + ++typedef enum {IMPORT_USES, IMPORT_QUALIFIED, IMPORT_ISO} import_type; ++ + struct tree_import GTY(()) + { + struct tree_common common; ++ gpi_int qualified; + tree interface; + tree import_qualifier; + tree filename; +@@ -198,6 +207,7 @@ + }; + #define AS_IMPORT_NODE(NODE) ((struct tree_import *) IMPORT_NODE_CHECK (NODE)) + #define IMPORT_INTERFACE(NODE) (AS_IMPORT_NODE (NODE)->interface) ++#define PASCAL_TREE_QUALIFIED(NODE) (AS_IMPORT_NODE (NODE)->qualified) + #define IMPORT_QUALIFIER(NODE) (AS_IMPORT_NODE (NODE)->import_qualifier) + #define IMPORT_FILENAME(NODE) (AS_IMPORT_NODE (NODE)->filename) + +@@ -359,7 +369,7 @@ + #define PASCAL_TREE_IGNORABLE(t) TREE_LANG_FLAG_2 (t) + + /* `Qualified' import. Used in IMPORT_NODE nodes. */ +-#define PASCAL_TREE_QUALIFIED(t) TREE_LANG_FLAG_2 (t) ++/* #define PASCAL_TREE_QUALIFIED(t) TREE_LANG_FLAG_2 (t) */ + + /* Set if the parameter is a value parameter passed by reference. + This is necessary for undiscriminated strings/schemata and +@@ -411,9 +421,19 @@ + /* Set for `const' parameters. Used in *_TYPE and some TREE_LIST nodes. */ + #define PASCAL_CONST_PARM(type) TREE_LANG_FLAG_6 (type) + ++/* Set if identifier is a qualified identifer (only for identifiers) */ ++#define PASCAL_QUALIFIED_ID(id) TREE_LANG_FLAG_6 (id) ++ + /* GPC specific decl node extensions. */ + +-/* Decl flags 0, 1, 2 are still available. */ ++/* Decl flag 0 is still available. */ ++ ++/* Set for declarations imported from other modules/units */ ++#define PASCAL_DECL_IMPORTED(NODE) DECL_LANG_FLAG_1 (NODE) ++ ++/* Set if declaration is imported via `uses' (so it can be ++ overriden). */ ++#define PASCAL_DECL_WEAK(NODE) DECL_LANG_FLAG_2 (NODE) + + /* Borland Pascal allows a "typed constant" to be used as an initialized + variable and does not even warn if a value is written to it (because +@@ -459,6 +479,10 @@ + Used in VAR_DECL nodes. */ + #define PASCAL_FOR_LOOP_COUNTER(decl) DECL_LANG_FLAG_7 (decl) + ++/* Set if a declaration represents principal identifier of a constant ++ (see EP 6.10.2) */ ++#define PASCAL_CST_PRINCIPAL_ID(decl) DECL_LANG_FLAG_7 (decl) ++ + struct lang_decl GTY(()) + { + tree info; +@@ -1021,7 +1045,11 @@ + extern int is_pascal_option PARAMS ((const char *)); + extern int process_pascal_directive PARAMS ((char *, int)); + extern void activate_options PARAMS ((struct options *, int)); ++#ifndef GCC_3_4 + extern void pascal_init_options PARAMS ((void)); ++#else ++extern unsigned int pascal_init_options (unsigned int argc, const char **argv); ++#endif + extern void do_deferred_options PARAMS ((void)); + extern void error_or_warning PARAMS ((int, const char *)); + extern void dialect_msg PARAMS ((int, unsigned long, const char *, const char *, const char *)); +@@ -1096,12 +1124,16 @@ + extern void set_block PARAMS ((tree)); + extern void check_duplicate_id PARAMS ((tree)); + extern tree lookup_name PARAMS ((tree)); ++extern tree lookup_name_current_level PARAMS ((tree)); + extern void set_identifier_spelling PARAMS ((tree, const char *, const char *, int)); + extern tree make_identifier PARAMS ((const char *, int)); + extern tree get_identifier_with_spelling PARAMS ((const char *, const char *)); + extern tree get_unique_identifier PARAMS ((const char *)); ++extern tree build_qualified_id PARAMS ((tree, tree)); ++extern tree build_qualified_or_component_acces PARAMS ((tree, tree)); + extern tree check_identifier PARAMS ((tree)); + extern tree de_capitalize PARAMS ((tree)); ++extern tree pascal_mangle_names PARAMS ((const char *, const char *)); + extern tree build_formal_param PARAMS ((tree, tree, int, int)); + extern tree build_procedural_type PARAMS ((tree, tree)); + extern tree build_formal_param_list PARAMS ((tree)); +@@ -1110,6 +1142,7 @@ + extern void pushlevel_expand PARAMS ((void)); + extern tree poplevel_expand PARAMS ((int, int)); + extern tree pushdecl PARAMS ((tree)); ++extern tree pushdecl_import PARAMS ((tree, int)); + extern tree pushdecl_nocheck PARAMS ((tree)); + extern void pushlevel PARAMS ((int)); + extern tree start_struct PARAMS ((enum tree_code)); +@@ -1233,6 +1266,7 @@ + extern tree check_set_bounds PARAMS ((tree, tree)); + extern tree build_set_type PARAMS ((tree, int)); + extern tree pascal_build_set_type PARAMS ((tree)); ++extern tree build_pascal_pointer_type PARAMS ((tree)); + extern tree convert_to_cstring PARAMS ((tree)); + extern tree string_may_be_char PARAMS ((tree, int)); + extern tree char_may_be_string PARAMS ((tree)); +@@ -1369,7 +1403,7 @@ + extern void start_module_interface PARAMS ((void)); + extern void start_unit_implementation PARAMS ((void)); + extern void finalize_module PARAMS ((int)); +-extern void import_interface PARAMS ((tree, tree, int, tree)); ++extern void import_interface PARAMS ((tree, tree, import_type, tree)); + extern void export_interface PARAMS ((tree, tree)); + extern void do_extra_import PARAMS ((void)); + extern int is_gpi_special_node PARAMS ((tree)); +@@ -1394,9 +1428,13 @@ + extern void yyerror PARAMS ((const char *)); + extern void yyerror_id PARAMS ((tree, const YYLTYPE *)); + extern int peek_token PARAMS ((int)); ++extern void set_old_input_filename PARAMS ((const char *)); + extern int yylex PARAMS ((void)); +-extern void init_lex PARAMS ((void)); ++extern void pascal_init_lex PARAMS ((const char *)); + extern void discard_input PARAMS ((void)); ++#ifdef GCC_3_4 ++extern FILE * finput; ++#endif + + /* Put all global tree node variables here (don't use static ones) */ + +@@ -1405,7 +1443,9 @@ + /* Types */ + #define byte_integer_type_node PGT(0) + #define byte_unsigned_type_node PGT(1) ++#ifndef GCC_3_4 + #define boolean_type_node PGT(2) ++#endif + #define cboolean_type_node PGT(3) + #define byte_boolean_type_node PGT(4) + #define short_boolean_type_node PGT(5) +@@ -1418,7 +1458,9 @@ + #define pascal_size_type_node PGT(12) + #define ptrsize_unsigned_type_node PGT(13) + #define ptrsize_integer_type_node PGT(14) ++#ifndef GCC_3_4 + #define integer_ptr_type_node PGT(15) ++#endif + #define untyped_file_type_node PGT(16) + #define text_type_node PGT(17) + #define any_file_type_node PGT(18) +@@ -1437,8 +1479,10 @@ + + /* Constants */ + #define integer_maxint_node PGT(31) ++#ifndef GCC_3_4 + #define boolean_false_node PGT(32) + #define boolean_true_node PGT(33) ++#endif + #define char_max_node PGT(34) + #define real_max_node PGT(35) + #define real_min_node PGT(36) +diff -ru gpc-20040516.orig/p/gpc-lex.c gpc-20040516/p/gpc-lex.c +--- gpc-20040516.orig/p/gpc-lex.c 2004-05-15 01:43:11.000000000 +0200 ++++ gpc-20040516/p/gpc-lex.c 2004-07-06 19:08:51.000000000 +0200 +@@ -27,10 +27,6 @@ + #include "gpc.h" + #undef FLEX_SCANNER + +-#ifdef MULTIBYTE_CHARS +-#include +-#endif +- + #define LEX_SEMANTIC_VALUES 1 + #define LEX_INVALID (-1) + #define LEX_WHITESPACE (-1) +@@ -211,28 +207,23 @@ + while (getc (finput) != EOF) ; + } + +-/* Initialize the lexical analyzer. */ ++#ifndef EGCS + void + init_lex () + { +-#ifndef EGCS /* otherwise done in lang_init */ +- add_pascal_tree_codes (); +-#endif +- +-#ifndef EGCS97 +- /* Make identifier nodes long enough for the language-specific slots. */ +- set_identifier_size (sizeof (struct lang_identifier)); ++ /* Empty, required by 2.8.1 */ ++} + #endif + ++/* Initialize the lexical analyzer. */ ++void ++pascal_init_lex (filename) ++ const char * filename; ++{ + /* Start it at 0, because check_newline is called at the very beginning + and will increment it to 1. */ + lineno = 0; + +-#ifdef MULTIBYTE_CHARS +- /* Change to the native locale for multibyte conversions. */ +- setlocale (LC_CTYPE, ""); +-#endif +- + #ifdef HAVE_SIGALRM + /* Periodically trigger the output of progress messages. */ + if (flag_progress_messages || flag_progress_bar) +@@ -247,7 +238,7 @@ + } + #endif + +- InitLex ("???", finput, 0); ++ InitLex (filename, finput, 0); + } + + static void +@@ -301,23 +292,40 @@ + process_pascal_directive (s, q - s); + } + ++char * old_input_filename; ++ ++void set_old_input_filename (s) ++ const char * s; ++{ ++ old_input_filename = save_string(s); ++} ++ + void + SetFileName (v) + int v; + { + input_filename = NewPos.SrcName; ++#ifndef EGCS97 + if (!main_input_filename) + main_input_filename = input_filename; ++#endif + if (v == 1) + { + /* Pushing to a new file. */ + struct file_stack *p = (struct file_stack *) xmalloc (sizeof (struct file_stack)); ++#ifndef GCC_3_4 + input_file_stack->line = LexPos.Line; +- p->next = input_file_stack; + p->name = input_filename; ++#else ++ p->location.line = LexPos.Line; ++ p->location.file = old_input_filename; ++#endif ++ p->next = input_file_stack; + input_file_stack = p; + input_file_stack_tick++; + #ifdef EGCS97 ++ /* Can use backend only afer initialization (see err1.pas) */ ++ if (main_input_filename) + (*debug_hooks->start_source_file) (LexPos.Line, input_filename); + #else + debug_start_source_file (input_filename); +@@ -326,26 +334,41 @@ + else if (v == 2) + { + /* Popping out of a file. */ ++#ifndef GCC_3_4 + if (input_file_stack->next) ++#else ++ if (input_file_stack) ++#endif + { + struct file_stack *p = input_file_stack; + input_file_stack = p->next; +- free (p); + input_file_stack_tick++; + #ifdef EGCS97 ++#ifndef GCC_3_4 + (*debug_hooks->end_source_file) (input_file_stack->line); + #else ++ (*debug_hooks->end_source_file) (p->location.line); ++#endif ++#else + debug_end_source_file (input_file_stack->line); + #endif ++ free (p); + } + else + error ("#-lines for entering and leaving files don't match"); + } +- ++#ifdef EGCS97 ++ if (!main_input_filename) ++ main_input_filename = input_filename; ++#endif + /* Now that we've pushed or popped the input stack, + update the name in the top element. */ ++#ifndef GCC_3_4 + if (input_file_stack) + input_file_stack->name = input_filename; ++#else ++ old_input_filename = input_filename; ++#endif + } + + /* Hooks for parse.y: error handling. */ +@@ -356,14 +379,28 @@ + const char *s = LexSem.TokenString; + char buf[200]; + syntax_errors++; ++#ifndef GCC_3_4 + strcpy (buf, string); ++#else ++ strcpy (buf, "%H"); ++ strcat (buf, string); ++#endif + if (!s) + strcat (buf, " at end of input"); + else if (s[0] < 0x20 || (unsigned char) s[0] >= 0x7f) + sprintf (buf + strlen (buf), " before character #%i", (unsigned char) s[0]); + else + strcat (buf, " before `%s'"); ++#ifndef GCC_3_4 + error_with_file_and_line (lexer_filename, lexer_lineno, buf, s); ++#else ++ { ++ location_t loc_aux; ++ loc_aux.file = lexer_filename; ++ loc_aux.line = lexer_lineno; ++ error (buf, &loc_aux, s); ++ } ++#endif + } + + void +@@ -372,8 +409,17 @@ + const YYLTYPE *location; + { + syntax_errors++; ++#ifndef GCC_3_4 + error_with_file_and_line (location->last_file, location->last_line, + "syntax error before `%s'", IDENTIFIER_NAME (id)); ++#else ++ { ++ location_t loc_aux; ++ loc_aux.file = location->last_file; ++ loc_aux.line = location->last_line; ++ error ("%Hsyntax error before `%s'", &loc_aux, IDENTIFIER_NAME (id)); ++ } ++#endif + } + + static int get_token PARAMS ((void)); +diff -ru gpc-20040516.orig/p/gpcpp.c gpc-20040516/p/gpcpp.c +--- gpc-20040516.orig/p/gpcpp.c 2004-01-01 00:07:10.000000000 +0100 ++++ gpc-20040516/p/gpcpp.c 2004-07-06 19:08:51.000000000 +0200 +@@ -5763,16 +5763,10 @@ + + /* Print error message and increment count of errors. */ + static void +-error VPARAMS ((const char *msg, ...)) ++error (const char *msg, ...) + { +-#ifndef ANSI_PROTOTYPES +- const char *msg; +-#endif + va_list args; +- VA_START (args, msg); +-#ifndef ANSI_PROTOTYPES +- msg = va_arg (ap, const char *); +-#endif ++ va_start (args, msg); + verror (msg, args); + va_end (args); + } +@@ -5818,16 +5812,10 @@ + + /* Print warning. */ + static void +-warning VPARAMS ((const char *msg, ...)) ++warning (const char *msg, ...) + { +-#ifndef ANSI_PROTOTYPES +- const char *msgid; +-#endif + va_list args; +- VA_START (args, msg); +-#ifndef ANSI_PROTOTYPES +- msg = va_arg (ap, const char *); +-#endif ++ va_start (args, msg); + vwarning (msg, args); + va_end (args); + } +@@ -5857,20 +5845,12 @@ + } + + static void +-error_with_line VPARAMS ((int line, const char *msg, ...)) ++error_with_line (int line, const char *msg, ...) + { + int i; + FILE_BUF *ip = NULL; +-#ifndef ANSI_PROTOTYPES +- int line; +- const char *msgid; +-#endif + va_list args; +- VA_START (args, msg); +-#ifndef ANSI_PROTOTYPES +- line = va_arg (ap, int); +- msg = va_arg (ap, const char *); +-#endif ++ va_start (args, msg); + print_containing_files (); + for (i = indepth; i >= 0; i--) + if (instack[i].fname != NULL) { +@@ -5887,16 +5867,10 @@ + + /* Print an error or warning message. */ + static void +-pedwarn VPARAMS ((const char *msg, ...)) ++pedwarn (const char *msg, ...) + { +-#ifndef ANSI_PROTOTYPES +- const char *msgid; +-#endif + va_list args; +- VA_START (args, msg); +-#ifndef ANSI_PROTOTYPES +- msg = va_arg (ap, const char *); +-#endif ++ va_start (args, msg); + if (pedantic_errors) + verror (msg, args); + else +@@ -5907,13 +5881,8 @@ + /* Report a warning (or an error if pedantic_errors) + giving specified file name and line number, not current. */ + static void +-pedwarn_with_file_and_line VPARAMS ((const char *file, int line, const char *msg, ...)) ++pedwarn_with_file_and_line (const char *file, int line, const char *msg, ...) + { +-#ifndef ANSI_PROTOTYPES +- const char *file; +- int line; +- const char *msgid; +-#endif + va_list args; + if (!pedantic_errors && inhibit_warnings) + return; +@@ -5923,12 +5892,7 @@ + errors++; + if (!pedantic_errors) + fprintf (stderr, "warning: "); +- VA_START (args, msg); +-#ifndef ANSI_PROTOTYPES +- file = va_arg (ap, const char *); +- line = va_arg (ap, int); +- msg = va_arg (ap, const char *); +-#endif ++ va_start (args, msg); + vfprintf (stderr, msg, args); + va_end (args); + fprintf (stderr, "\n"); +@@ -6368,17 +6332,11 @@ + static + #endif + void +-fatal VPARAMS ((const char *msg, ...)) ++fatal (const char *msg, ...) + { + va_list args; +-#ifndef ANSI_PROTOTYPES +- const char *msgid; +-#endif + fprintf (stderr, "%s: ", progname); +- VA_START (args, msg); +-#ifndef ANSI_PROTOTYPES +- msgid = va_arg (ap, const char *); +-#endif ++ va_start (args, msg); + vfprintf (stderr, msg, args); + va_end (args); + fprintf (stderr, "\n"); +diff -ru gpc-20040516.orig/p/lang.c gpc-20040516/p/lang.c +--- gpc-20040516.orig/p/lang.c 2004-05-15 01:37:50.000000000 +0200 ++++ gpc-20040516/p/lang.c 2004-07-06 22:55:02.000000000 +0200 +@@ -201,32 +201,7 @@ + } + } + +-#ifdef GCC_3_3 +-#define error_function_changed() (last_error_function != current_function_decl) +-#define record_last_error_function() (last_error_function = current_function_decl) +-static tree last_error_function = NULL; +-#endif +- + /* Our function to print out name of current routine that caused an error. */ +-#ifdef EGCS97 +- +-/* @@ Why is this function static in ../diagnostic.c? */ +-static void output_buffer_to_stream PARAMS ((output_buffer *)); +-static void +-output_buffer_to_stream (buffer) +- output_buffer *buffer; +-{ +- const char *text = output_finalize_message (buffer); +- fputs (text, output_buffer_attached_stream (buffer)); +- output_clear_message_text (buffer); +-} +- +-static void pascal_print_error_function PARAMS ((diagnostic_context *, const char *)); +-static void +-pascal_print_error_function (context, file) +- diagnostic_context *context; +- const char *file; +-#else + #define error_function_changed() (last_error_function != current_function_decl) + #define record_last_error_function() (last_error_function = current_function_decl) + #define output_add_string(X, S) fprintf (stderr, S) +@@ -236,6 +211,13 @@ + #define _(S) S + #endif + static tree last_error_function = NULL; ++#ifdef EGCS97 ++static void pascal_print_error_function PARAMS ((diagnostic_context *, const char *)); ++static void ++pascal_print_error_function (context, file) ++ diagnostic_context *context; ++ const char *file; ++#else + static void pascal_print_error_function PARAMS ((const char *)); + static void + pascal_print_error_function (file) +@@ -244,17 +226,8 @@ + { + if (error_function_changed ()) + { +-#ifdef EGCS97 +- char *prefix = file ? ACONCAT ((file, ": ", NULL)) : NULL; +-#ifndef GCC_3_3 +- output_state os; +- os = output_buffer_state (context); +-#endif +- output_set_prefix ((output_buffer *) context, prefix); +-#else + if (file) + fprintf (stderr, "%s: ", file); +-#endif + if (!current_function_decl || EM (current_function_decl)) + output_add_string ((output_buffer *) context, _("At top level:")); + else +@@ -297,20 +270,16 @@ + } + output_add_newline ((output_buffer *) context); + record_last_error_function (); +-#ifdef EGCS97 +- output_buffer_to_stream ((output_buffer *) context); +-#ifndef GCC_3_3 +- output_buffer_state (context) = os; +-#endif +-#endif + } + } + ++#ifndef EGCS97 + void + lang_init_options () + { + pascal_init_options (); + } ++#endif + + #ifndef GCC_3_3 + /* Tree code classes. */ +@@ -433,6 +402,29 @@ + fprintf (stderr, "-D%s -D__%s -D__%s__ ", s, s, s); + } + ++int ++c_lex (t) ++ tree * t; ++{ ++ return 0; ++} ++ ++void ++cpp_define (r, s) ++ void * r; ++ const char * s; ++{ ++ builtin_define_std (s); ++} ++ ++void ++cpp_assert (pfile, str) ++ void *pfile; ++ const char *str; ++{ ++} ++ ++ + #define preprocessing_asm_p() 0 + #define preprocessing_trad_p() 0 + #define c_language (-1) +@@ -442,6 +434,80 @@ + #define flag_isoc99 0 + #endif + ++#ifdef GCC_3_4 ++#include "options.h" ++#include "opts.h" ++ ++static int saved_lineno; ++static char * saved_filename = 0; ++ ++bool ++pascal_post_options (const char **pfilename) ++{ ++ char * filename = num_in_fnames>0?in_fnames[0]: 0 /* "-" */; ++#if 1 ++ filename = init_parse (filename); ++ /* The beginning of the file is a new line; check for `#'. ++ With luck, we discover the real source file's name from that ++ and put it in input_filename. */ ++ main_input_filename = 0; ++ lineno = 1; ++ /* With luck, we discover the real source file name from a line directive ++ at the beginning of the file and put it in input_filename. */ ++ set_old_input_filename (filename?filename:"???"); ++ peek_token (0); ++ saved_lineno = lineno; ++ ++ lineno = 0; ++ *pfilename = main_input_filename?main_input_filename:filename; ++#else ++ *pfilename = dump_base_name?dump_base_name:filename; ++#endif ++ saved_filename = filename; ++ return false; ++} ++ ++pascal_handle_option (size_t scode, const char *arg, int value) ++{ ++ enum opt_code code = (enum opt_code) scode; ++ const char * pp[2]; ++ switch (code) ++ { ++ default: ++ break; ++ assert (0); ++#include "handle-opts.c" ++ } ++ return 1; ++} ++ ++static size_t pascal_tree_size (enum tree_code); ++static size_t ++pascal_tree_size (enum tree_code code) ++{ ++ switch (code) ++ { ++ case INTERFACE_NAME_NODE: return sizeof (struct tree_inn); ++ case IMPORT_NODE: return sizeof (struct tree_import); ++ default: ++ assert (0); ++ } ++ /* NOTREACHED */ ++} ++ ++ ++bool ++lang_init_3_4 (void) ++{ ++ if (saved_filename) { ++ lang_init (saved_filename); ++ } else { ++ lang_init (main_input_filename); ++ } ++ return true; ++} ++#endif ++ + #ifdef EGCS97 + const char * + lang_init (filename) +@@ -459,9 +525,17 @@ + So we just turn it off here. */ + debug_no_type_hash = 1; + ++#ifndef EGCS ++ pascal_init_lex (input_filename); ++#endif ++ + #ifdef EGCS97 + init_decl_processing (); ++ ++#ifndef GCC_3_4 + filename = init_parse (filename); ++#endif ++ + #ifndef GCC_3_3 + decl_printable_name = pascal_decl_name; + #endif +@@ -507,9 +581,12 @@ + /* @@ Backend bug: TARGET_OS_CPP_BUILTINS on some targets uses it + though it's a C specific flag. */ + #define flag_iso 1 +- +- TARGET_CPU_CPP_BUILTINS (); +- TARGET_OS_CPP_BUILTINS (); ++ { ++ extern void rs6000_cpu_cpp_builtins PARAMS ((void *)); ++ void * pfile = 0; ++ TARGET_CPU_CPP_BUILTINS (); ++ TARGET_OS_CPP_BUILTINS (); ++ } + #endif + /* The following is no joke! The difference between what the + preprocessor and the compiler think of BYTES_BIG_ENDIAN is +@@ -543,17 +620,15 @@ + } + #endif + +-#ifdef EGCS +- /* In gcc-2.8.1, init_tree_codes() has not been called yet. +- Do it in init_lex instead. */ + #ifndef GCC_3_3 + add_pascal_tree_codes (); + #endif +-#endif + ++#ifndef GCC_3_4 + /* With luck, we discover the real source file name from a line directive + at the beginning of the file and put it in input_filename. */ + peek_token (0); ++#endif + + #ifdef EGCS97 + if (main_input_filename) +@@ -678,7 +753,7 @@ + setvbuf (finput, (char *) xmalloc (IO_BUFFER_SIZE), _IOFBF, IO_BUFFER_SIZE); + #endif + #endif +- init_lex (); ++ pascal_init_lex (filename); + #if USE_CPPLIB + yy_cur = "\n"; + yy_lim = yy_cur + 1; +@@ -1115,7 +1190,17 @@ + #undef LANG_HOOKS_NAME + #define LANG_HOOKS_NAME "GNU Pascal" + #undef LANG_HOOKS_INIT ++#ifndef GCC_3_4 + #define LANG_HOOKS_INIT lang_init ++#else ++#define LANG_HOOKS_INIT lang_init_3_4 ++#undef LANG_HOOKS_TREE_SIZE ++#define LANG_HOOKS_TREE_SIZE pascal_tree_size ++#undef LANG_HOOKS_HANDLE_OPTION ++#define LANG_HOOKS_HANDLE_OPTION pascal_handle_option ++#undef LANG_HOOKS_POST_OPTIONS ++#define LANG_HOOKS_POST_OPTIONS pascal_post_options ++#endif + #undef LANG_HOOKS_DECODE_OPTION + #define LANG_HOOKS_DECODE_OPTION lang_decode_option + #undef LANG_HOOKS_INIT_OPTIONS +@@ -1157,6 +1242,9 @@ + #undef LANG_HOOKS_COMMON_ATTRIBUTE_TABLE + #define LANG_HOOKS_COMMON_ATTRIBUTE_TABLE gpc_attribute_table + ++#undef LANG_HOOKS_HASH_TYPES ++#define LANG_HOOKS_HASH_TYPES false ++ + static void + pascal_parse (debug) + int debug; +Only in gpc-20040516/p: lang.c.orig +diff -ru gpc-20040516.orig/p/lang.opt gpc-20040516/p/lang.opt +--- gpc-20040516.orig/p/lang.opt 2004-07-06 19:20:23.000000000 +0200 ++++ gpc-20040516/p/lang.opt 2004-07-06 19:08:51.000000000 +0200 +@@ -0,0 +1,474 @@ ++; Options for the Pascal front end. ++; Copyright (C) 2003 Free Software Foundation, Inc. ++; ++; This file is part of GCC. ++; ++; GCC 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. ++; ++; GCC 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 GCC; see the file COPYING. If not, write to the Free ++; Software Foundation, 59 Temple Place - Suite 330, Boston, MA ++; 02111-1307, USA. ++ ++; See c.opt for a description of this file's format. ++ ++; Please try to keep this file in ASCII collating order. ++ ++Language ++Pascal ++ ++famtmpfile= ++Pascal Joined RejectNegative ++(Internal switch used for automake) ++ ++fassertions ++Pascal ++Enable assertion checking (default) ++ ++fautobuild ++Pascal ++Automatically compile all units/modules/`{$L ...}' files and link the object files provided ++ ++fautolink ++Pascal ++Automatically link object files provided by units/modules or `{$L ...}' (default) ++ ++fautomake-gcc= ++Pascal Joined RejectNegative ++Set the C compiler invoked by automake ++ ++fautomake-g++= ++Pascal Joined RejectNegative ++Set the C++ compiler invoked by automake ++ ++fautomake-gpc= ++Pascal Joined RejectNegative ++Set the Pascal compiler invoked by automake ++ ++fautomake ++Pascal ++Automatically compile changed units/modules/`{$L ...}' files and link the object files provided ++ ++fbig-endian ++Pascal RejectNegative ++Tell GPC that the system is big-endian (for those targets where it can vary) ++ ++fborland-pascal ++Pascal RejectNegative ++Try to emulate Borland Pascal, version 7.0 ++ ++fcidefine= ++Pascal Joined RejectNegative ++Define a case-insensitive macro ++ ++fclassic-pascal-level-0 ++Pascal RejectNegative ++Reject conformant arrays and anything besides ISO 7185 Pascal ++ ++fclassic-pascal ++Pascal RejectNegative ++Reject anything besides ISO 7185 Pascal ++ ++fcsdefine= ++Pascal Joined RejectNegative ++Define a case-sensitive macro ++ ++fcstrings-as-strings ++Pascal ++Treat CStrings as strings ++ ++fdebug-automake ++Pascal RejectNegative ++(For GPC developers.) Give additional information about the actions of automake ++ ++fdebug-gpi ++Pascal RejectNegative ++(For GPC developers.) Show what is written to and read from GPI files (huge output!) ++ ++fdebug-info ++Pascal ++Inhibit `-g' options (temporary work-around, this option may disappear in the future) ++ ++fdebug-source ++Pascal RejectNegative ++Output the source while it is processed ++ ++fdebug-tree= ++Pascal Joined RejectNegative ++(For GPC developers.) Show the internal representation of a given tree node (name or address) ++ ++fdefault-paths ++Pascal ++Do not add a default path to the unit and object path ++ ++fdelphi-comments ++Pascal ++Allow Delphi style `//' comments (default) ++ ++fdelphi ++Pascal RejectNegative ++Try to emulate Borland Pascal, version 7.0, with some Delphi extensions ++ ++fdisable-keyword= ++Pascal Joined RejectNegative ++Disable a keyword, independently of dialect defaults ++ ++fdouble-quoted-strings ++Pascal ++Allow strings enclosed in \"\" (default) ++ ++fenable-keyword= ++Pascal Joined RejectNegative ++Enable a keyword, independently of dialect defaults ++ ++fexact-compare-strings ++Pascal ++Do not blank-pad strings for comparisons ++ ++fexecutable-file-name= ++Pascal Joined RejectNegative ++ ++ ++fexecutable-file-name ++Pascal RejectNegative ++Name for the output file, if specified; otherwise derive from main source file name ++ ++fexecutable-path ++Pascal ++Create the executable file in the directory where the main source is (default) ++ ++fexecutable-path= ++Pascal Joined RejectNegative ++Path where to create the executable file ++ ++fextended-pascal ++Pascal RejectNegative ++Reject anything besides ISO 10206 Extended Pascal ++ ++fextended-syntax ++Pascal ++same as `--ignore-function-results --pointer-arithmetic --cstrings-as-strings -Wno-absolute' (same as `{$X+}') ++ ++ffield-widths= ++Pascal Joined RejectNegative ++ ++ ++ffield-widths ++Pascal ++Optional colon-separated list of default field widths for Integer, Real, Boolean, LongInt, LongReal ++ ++fgnu-pascal ++Pascal RejectNegative ++Undo the effect of previous dialect options, allow all features again ++ ++fgpc-main= ++Pascal Joined RejectNegative ++External name for the program's entry point (default ++ `main') ++ ++fgpi-destination-path= ++Pascal Joined RejectNegative ++(Internal switch used for automake) ++ ++fignore-function-results ++Pascal ++Do not complain when a function is called like a procedure ++ ++fignore-garbage-after-dot ++Pascal ++Ignore anything after the terminating `.' (default in `--borland-pascal') ++ ++fignore-packed ++Pascal ++Ignore `packed' in the source code (default in `--borland-pascal') ++ ++fimplementation-only ++Pascal RejectNegative ++Do not produce a GPI file; only compile the implementation part ++ ++finit-modules= ++Pascal Joined RejectNegative ++Initialize the named modules in addition to those imported regularly; kind of a kludge ++ ++finterface-only ++Pascal RejectNegative ++Compile only the interface part of a unit/module and exit (creates `.gpi' file, no `.o' file) ++ ++fio-checking ++Pascal ++Check I/O operations automatically (same as `{$I+}') (default) ++ ++flittle-endian ++Pascal RejectNegative ++Tell GPC that the system is little-endian (for those targets where it can vary) ++ ++flongjmp-all-nonlocal-labels ++Pascal ++Use `longjmp' for all nonlocal labels ++ ++fmac-pascal ++Pascal RejectNegative ++Support (some features of) traditional Macintosh Pascal compilers ++ ++fmacros ++Pascal ++Expand macros (default) ++ ++fmaximum-field-alignment= ++Pascal Joined RejectNegative ++Set the maximum field alignment in bits if `pack-struct' is in effect ++ ++fmethods-always-virtual ++Pascal ++Make all methods virtual (default in `--mac-pascal') ++ ++fmixed-comments ++Pascal ++Allow comments like `{ ... *)' as required in ISO Pascal (default in ISO 7185/10206 Pascal mode) ++ ++fnested-comments ++Pascal ++Allow nested comments like `{ { } }' and `(* (* *) *)' ++ ++fobject-destination-path ++Pascal ++Create additional object files (e.g. of C files, not Pascal units) in the current directory (default) ++ ++fobject-destination-path= ++Pascal Joined RejectNegative ++Path where to create additional object files (e.g. of C files, not Pascal units) ++ ++fobject-pascal ++Pascal RejectNegative ++Reject anything besides (the implemented parts of) ANSI draft Object Pascal ++ ++fobject-path ++Pascal ++Forget about directories where to look for additional object (and source) files ++ ++fobject-path= ++Pascal Joined RejectNegative ++Directories where to look for additional object (and source) files ++ ++fpascal-sc ++Pascal RejectNegative ++Be strict about the implemented Pascal-SC extensions ++ ++fpedantic ++Pascal ++Reject everything not allowed in some dialect, e.g. redefinition of its keywords ++ ++fpointer-arithmetic ++Pascal ++Enable pointer arithmetic ++ ++fprint-needed-options ++Pascal RejectNegative ++Print the needed options ++ ++fprogress-bar ++Pascal ++Output number of processed lines while compiling ++ ++fprogress-messages ++Pascal ++Output source file names and line numbers while compiling ++ ++frange-checking ++Pascal ++Do automatic range checks (same as `{$R+}') (default) ++ ++fread-base-specifier ++Pascal ++In read statements, allow input base specifier `n#' (default) ++ ++fread-hex ++Pascal ++In read statements, allow hexadecimal input with `$' (default) ++ ++fread-white-space ++Pascal ++In read statements, require whitespace after numbers ++ ++fsetlimit= ++Pascal Joined RejectNegative ++Define the range for `set of Integer' etc. ++ ++fshort-circuit ++Pascal ++Guarantee short-circuit Boolean evaluation (default; same as `{$B-}') ++ ++fstack-checking ++Pascal ++Enable stack checking (same as `{$S+}') ++ ++fstandard-pascal-level-0 ++Pascal RejectNegative ++Synonym for `--classic-pascal-level-0' ++ ++fstandard-pascal ++Pascal RejectNegative ++Synonym for `--classic-pascal' ++ ++fsun-pascal ++Pascal RejectNegative ++Support (a few features of) Sun Pascal ++ ++ftransparent-file-names ++Pascal ++Derive external file names from variable names ++ ++ftruncate-strings ++Pascal ++Truncate strings being assigned to other strings of too short capacity. ++ ++ftyped-address ++Pascal ++Make the result of the address operator typed (same as `{$T+}', default) ++ ++fucsd-pascal ++Pascal RejectNegative ++Try to emulate UCSD Pascal ++ ++funit-destination-path ++Pascal ++Create object and GPI files of Pascal units in the current directory (default) ++ ++funit-destination-path= ++Pascal Joined RejectNegative ++Path where to create object and GPI files of Pascal units ++ ++funit-path ++Pascal ++Forget about directories where to look for unit/module sources ++ ++funit-path= ++Pascal Joined RejectNegative ++Directories where to look for unit/module sources ++ ++fuses= ++Pascal Joined RejectNegative ++Add an implicit `uses' clause ++ ++fvax-pascal ++Pascal RejectNegative ++Support (a few features of) VAX Pascal ++ ++fwrite-capital-exponent ++Pascal ++Write real exponents with a capital `E' ++ ++fwrite-clip-strings ++Pascal ++In write statements, truncate strings exceeding their field width (`Write (SomeLongString ++ 3)') ++ ++fwrite-real-blank ++Pascal ++Output a blank in front of positive reals in exponential form (default) ++ ++Wabsolute ++Pascal ++Warn about variables at absolute adresses and `absolute' variable with non-constant addresses (default) ++ ++Wall ++Pascal ++ ++ ++Wcomment ++Pascal ++ ++ ++Wfloat-equal ++Pascal ++Warn about `=' and `<>' comparisons of real numbers ++ ++Widentifier-case-local ++Pascal ++Warn about an identifier written with varying case within one program/module/unit ++ ++Widentifier-case ++Pascal ++Warn about an identifier written with varying case ++ ++Wimplicit-abstract ++Pascal ++Warn when an object type not declared `abstract' contains an abstract method (default) ++ ++Wimplicit-io ++Pascal ++Warn when `Input' or `Output' are used implicitly ++ ++Winherited-abstract ++Pascal ++Warn when an abstract object type inherits from a non-abstract one (default) ++ ++Winterface-file-name ++Pascal ++Warn when a unit/module interface differs from the file name ++ ++Wlocal-external ++Pascal ++Warn about local `external' declarations ++ ++Wmissing-declarations ++Pascal ++ ++ ++Wmissing-prototypes ++Pascal ++ ++ ++Wmixed-comments ++Pascal ++Warn about mixed comments like `{ ... *)' ++ ++Wnear-far ++Pascal ++Warn about use of useless `near' or `far' directives (default) ++ ++Wnested-comments ++Pascal ++Warn about nested comments like `{ { } }' ++ ++Wobject-assignment ++Pascal ++Warn when when assigning objects or declaring them as value parameters or function results (default) ++ ++Wpointer-arith ++Pascal ++ ++ ++Wsemicolon ++Pascal ++Warn about a semicolon after `then', `else' or `do' (default) ++ ++Wtyped-const ++Pascal ++Warn about misuse of typed constants as initialized variables (default) ++ ++Wundef ++Pascal ++ ++ ++Wunderscore ++Pascal ++Warn about double/leading/trailing underscores in identifiers ++ ++Wwarnings ++Pascal ++Enable warnings (same as `{$W+}') ++ ++Wwrite-strings ++Pascal ++ ++ ++; This comment is to ensure we retain the blank line above. +diff -ru gpc-20040516.orig/p/Make-lang.in gpc-20040516/p/Make-lang.in +--- gpc-20040516.orig/p/Make-lang.in 2004-05-14 23:51:21.000000000 +0200 ++++ gpc-20040516/p/Make-lang.in 2004-07-06 22:55:02.000000000 +0200 +@@ -52,7 +52,12 @@ + # `' for gcc-3.x + GPC_GCC_2_=2 + GPC_GCC_28_=8 ++GPC_GCC_34_PPQ_=foo ++GPC_GCC_34_PPP=$(GPC_GCC_34_PPQ_$(target_noncanonical)) ++GPC_GCC_34_PP_=34 ++GPC_GCC_34_=$(GPC_GCC_34_PP_$(GPC_GCC_34_PPP)) + GCC_VERSION_FOR_GPC=$(GPC_GCC_2_$(BACKEND))$(GPC_GCC_28_$(gcc_version)) ++GCC_VERSION_FOR_GPC34=$(GPC_GCC_34_)$(GCC_VERSION_FOR_GPC) + GPC_GCC_VERSION_28=$(version) + GPC_GCC_VERSION_2=$(gcc_version) + GPC_GCC_VERSION_=$(gcc_version) +@@ -91,11 +96,14 @@ + GPC_HOST_28=$(host) + GPC_HOST_2=$(host_canonical) + GPC_HOST_=$(host_canonical) +-GPC_HOST=$(GPC_HOST_$(GCC_VERSION_FOR_GPC)) ++GPC_HOST_34=$(host) ++GPC_HOST=$(GPC_HOST_$(GCC_VERSION_FOR_GPC34)) ++ + GPC_BUILD_28=$(build) + GPC_BUILD_2=$(build_canonical) + GPC_BUILD_=$(build_canonical) +-GPC_BUILD=$(GPC_BUILD_$(GCC_VERSION_FOR_GPC)) ++GPC_BUILD_34=$(build) ++GPC_BUILD=$(GPC_BUILD_$(GCC_VERSION_FOR_GPC34)) + + # gcc<3 doesn't set $(STAMP) and $(man1ext). + # gcc-3 does, but it should not matter to set them here again. +@@ -161,7 +169,11 @@ + GPC_INSTALL_NAME=`t='$(program_transform_name)'; echo gpc | sed $$t` + + # Actual names to use when installing a cross-compiler. +-GPC_CROSS_NAME=`t='$(program_transform_cross_name)'; echo gpc | sed $$t` ++GPC_CROSS_NAME_=`t='$(program_transform_cross_name)'; echo gpc | sed $$t` ++ ++GPC_CROSS_NAME_34=$(target_noncanonical)`t='$(program_transform_name)'; echo gpc | sed $$t` ++ ++GPC_CROSS_NAME=$(GPC_CROSS_NAME_$(GPC_GCC_34_)) + + # The GPC to use for compiling libgpc.a + # Usually the one we just built. +@@ -205,18 +217,32 @@ + HOST="$(GPC_HOST)" + + # Flags to pass when building the RTS. +-RTS_FLAGS_TO_PASS=\ ++RTS_FLAGS_TO_PASS_ALL=\ + GCC_VERSION="$(GPC_GCC_VERSION)" \ + SHELL="$(SHELL)" \ + CFLAGS="$(CFLAGS)" \ + PFLAGS="$(PFLAGS)" \ +- AR="$(AR_FOR_TARGET)" \ + AR_FLAGS="$(AR_FLAGS)" \ +- RANLIB="$(RANLIB_FOR_TARGET)" \ +- RANLIB_TEST="$(RANLIB_TEST_FOR_TARGET)" \ + RTSFLAGS="$(RTSFLAGS)" \ + DESTDIR="../.." + ++RTS_FLAGS_TO_PASS_28=\ ++ AR="$(AR)" \ ++ RANLIB="$(RANLIB)" \ ++ RANLIB_TEST="$(RANLIB_TEST)" ++ ++RTS_FLAGS_TO_PASS_=\ ++ AR="$(AR_FOR_TARGET)" \ ++ RANLIB="$(RANLIB_FOR_TARGET)" \ ++ RANLIB_TEST="$(RANLIB_TEST_FOR_TARGET)" ++ ++RTS_FLAGS_TO_PASS_2=$(RTS_FLAGS_TO_PASS_) ++ ++RTS_FLAGS_TO_PASS_34=$(RTS_FLAGS_TO_PASS_) ++ ++RTS_FLAGS_TO_PASS=$(RTS_FLAGS_TO_PASS_ALL) \ ++ $(RTS_FLAGS_TO_PASS_$(GCC_VERSION_FOR_GPC)) ++ + # Flags to pass when running the test suite. + TEST_FLAGS_TO_PASS=\ + MASK="$(MASK)" \ +@@ -377,8 +403,8 @@ + MAKEINFO_ES=LANG=es_ES LC_ALL=es_ES $(MAKEINFO) $(MAKEINFOFLAGS) $(GPC_DOC_DIRS_ES) + + # Define the names for selecting Pascal in LANGUAGES. +-Pascal pascal: xgpc$(exeext) gpc1$(exeext) gpcpp$(exeext) gpc-run pascal.utils \ +- pascal.rts specs pascal.generated-files pascal.docdemos ++Pascal pascal: xgpc$(exeext) gpc1$(exeext) gpcpp$(exeext) gpc-run \ ++ specs pascal.generated-files pascal.docdemos + + # Tell GNU make to ignore these if they exist. + .PHONY: Pascal pascal +@@ -511,6 +537,10 @@ + + pascal.generated-manpages: + ++pascal.man: ++ ++pascal.srcman: ++ + pascal.docdemos: p/stamp-docdemos + p/stamp-docdemos: $(GPC_TEXI_EN) + rm -rf p/docdemos +@@ -546,7 +576,9 @@ + GPC_GBE_H=$(CONFIG_H) system.h tree.h input.h rtl.h flags.h output.h expr.h \ + except.h function.h convert.h toplev.h $(GPC_GCC_VERSION_H) + P_H=$(GPC_GBE_H) p/gpc.h p/p-tree.def p/predef.h $(srcdir)/p/parse.h p/gbe.h +-ALL_GPC_FLAGS=$(ALL_CFLAGS) $(ALL_CPPFLAGS) $(GPC_ALL_WARNINGS) $(INCLUDES) -DGPC -I$(srcdir)/p ++ALL_GPC_FLAGS=$(ALL_CFLAGS) $(ALL_CPPFLAGS) $(GPC_ALL_WARNINGS) $(INCLUDES) \ ++ -DGPC -DGPC_UNITS_DIR=\"$(libsubdir)/units\" -I$(srcdir)/p ++ + + # Headers and flags for patched backend files. + GPC_BE_H=$(GPC_GBE_H) defaults.h machmode.h machmode.def real.h recog.h \ +@@ -569,7 +601,7 @@ + p/typecheck.o p/types.o p/convert.o p/dbxout.o p/dwarf2out.o \ + p/expr.o p/fold-const.o p/function.o p/integrate.o p/optabs.o \ + p/stor-layout.o p/toplev.o p/tree.o p/stmt.o p/emit-rtl.o \ +- p/version.o ++ p/version.o $(C_TARGET_OBJS) + + # Exclude patched files from language-independent object file list. + # Not necessary for gcc-3 since for a library (libbackend.a), the linker does this automatically. +@@ -607,9 +639,15 @@ + p/gpc-lex.o: p/gpc-lex.c $(srcdir)/p/pascal-lex.c $(P_H) + $(CC) -o $@ -c $(ALL_GPC_FLAGS) $< + +-p/lang.o: p/lang.c $(P_H) ++p/handle-opts.c: $(srcdir)/p/opts.sum $(srcdir)/p/mkopts2.pl ++ perl $(srcdir)/p/mkopts2.pl $(srcdir)/p/opts.sum > "$@" ++ ++p/lang.o: p/lang.c $(P_H) p/handle-opts.c + $(CC) -o $@ -c $(ALL_GPC_FLAGS) $< + ++$(srcdir)/p/lang.opt: $(srcdir)/p/opts.sum $(srcdir)/p/mk_lang_opt ++ $(srcdir)/p/mk_lang_opt < $(srcdir)/p/opts.sum > "$@" ++ + p/module.o: p/module.c $(P_H) p/version.h + $(CC) -o $@ -c $(ALL_GPC_FLAGS) -DTARGET_NAME=\"$(target_alias)\" $< + +@@ -683,6 +721,9 @@ + $(srcdir)/p/pascal-lex.c: $(srcdir)/p/pascal-lex.l + cd $(srcdir)/p && $(GPC_LEX) $(GPC_LEXFLAGS) -opascal-lex.c pascal-lex.l + ++p/version.o: version.c $(GPC_BE_H) ++ $(CC) -o $@ -c $(ALL_GPC_GBE_FLAGS) $< ++ + $(srcdir)/p/parse.c $(srcdir)/p/parse.h: $(srcdir)/p/parse.y + echo "expect 16 shift/reduce and 30 reduce/reduce conflicts" >&2 + cd $(srcdir)/p && $(BISON) $(BISONFLAGS) -o parse.c parse.y +@@ -728,9 +769,9 @@ + # Build hooks: + + pascal.all.build: xgpc$(exeext) +-pascal.all.cross: gpc-cross$(exeext) ++pascal.all.cross: gpc-cross$(exeext) pascal.rts pascal.utils + pascal.start.encap: +-pascal.rest.encap: ++pascal.rest.encap: pascal.rts pascal.utils + + pascal.info: $(srcdir)/p/doc/info/gpc.info \ + $(srcdir)/p/doc/info/gpcs.info \ +@@ -870,6 +911,10 @@ + rm -f $(DESTDIR)$(libsubdir)/gpcpp$(exeext) + $(INSTALL_PROGRAM) gpcpp$(exeext) $(DESTDIR)$(libsubdir)/gpcpp$(exeext) + ++install-gpcpp34: pascal.install-dir gpcpp$(exeext) ++ rm -f $(DESTDIR)$(libexecsubdir)/gpcpp$(exeext) ++ $(INSTALL_PROGRAM) gpcpp$(exeext) $(DESTDIR)$(libexecsubdir)/gpcpp$(exeext) ++ + # Install the driver program as $(target)-gpc + # and also as either gpc (if native) or $(tooldir)/bin/gpc. + pascal.install-common: pascal.install-dir xgpc$(exeext) gpc-run +@@ -897,9 +942,7 @@ + rm -f $(DESTDIR)$(libsubdir)/libgpc.a; \ + $(INSTALL_DATA) libgpc.a $(DESTDIR)$(libsubdir)/libgpc.a && \ + chmod a-x $(DESTDIR)$(libsubdir)/libgpc.a || exit 1; \ +- if $(RANLIB_TEST_FOR_TARGET); then \ +- $(RANLIB_FOR_TARGET) $(DESTDIR)$(libsubdir)/libgpc.a || exit 1; \ +- fi; \ ++ $(RANLIB_FOR_TARGET) $(DESTDIR)$(libsubdir)/libgpc.a; \ + fi + for f in .. $(GPC_EXTRA_INSTALL_LIBS); do \ + if [ x"$$f" != x.. ]; then \ +@@ -1020,6 +1063,8 @@ + done + chmod a-x $(DESTDIR)$(infodir)/gpc-es.info* $(DESTDIR)$(infodir)/gpcs-es.info* + ++pascal.install-compiler34: ++ + # Install gpc1 et.al. + # Do *not* overwrite files if they exist. + pascal.install-compiler: pascal.install-dir pascal +@@ -1046,8 +1091,8 @@ + chmod a-x $(DESTDIR)$(libsubdir)/specs || exit 1; \ + fi; exit 0 + +-pascal.install-normal: pascal.install-common pascal.install-compiler \ +- install-gpcpp pascal.install-utils pascal.install-lib pascal.install-man \ ++pascal.install-normal: pascal.install-common pascal.install-compiler$(GPC_GCC_34_) \ ++ install-gpcpp$(GPC_GCC_34_) pascal.install-utils pascal.install-lib pascal.install-man \ + pascal.install-info pascal.install-units pascal.install-doc + + # This target will install GPC into an existing GCC installation, +@@ -1166,7 +1211,8 @@ + + RTSSTAGESTUFF=p/rts/*.o p/rts/*.lo p/rts/*.gpi p/rts/*.gpd \ + p/rts/config.cache p/rts/config.log p/rts/config.status p/rts/Makefile \ +- p/rts/rts-config.h p/rts/rts-config.inc p/rts/needed-options ++ p/rts/rts-config.h p/rts/rts-config.inc p/rts/needed-options \ ++ p/rts/stamp-error-gpi + + pascal.stage1: + $(srcdir)/p/script/mkdir-p stage1/p/rts +Only in gpc-20040516/p: Make-lang.in.orig +diff -ru gpc-20040516.orig/p/mk_lang_opt gpc-20040516/p/mk_lang_opt +--- gpc-20040516.orig/p/mk_lang_opt 2004-07-06 19:20:15.000000000 +0200 ++++ gpc-20040516/p/mk_lang_opt 2004-07-06 19:08:51.000000000 +0200 +@@ -0,0 +1,34 @@ ++#!/bin/sh ++cat <<'EOF' ++; Options for the Pascal front end. ++; Copyright (C) 2003 Free Software Foundation, Inc. ++; ++; This file is part of GCC. ++; ++; GCC 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. ++; ++; GCC 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 GCC; see the file COPYING. If not, write to the Free ++; Software Foundation, 59 Temple Place - Suite 330, Boston, MA ++; 02111-1307, USA. ++ ++; See c.opt for a description of this file's format. ++ ++; Please try to keep this file in ASCII collating order. ++ ++Language ++Pascal ++ ++EOF ++ ++sed 's,:,:Pascal ,' | tr : '\001' | sort | tr '\001' : | sed 's, :,:,;s,$,:,' | tr : '\n' ++ ++echo "; This comment is to ensure we retain the blank line above." +diff -ru gpc-20040516.orig/p/mkopts2.pl gpc-20040516/p/mkopts2.pl +--- gpc-20040516.orig/p/mkopts2.pl 2004-07-06 19:20:07.000000000 +0200 ++++ gpc-20040516/p/mkopts2.pl 2004-07-06 19:08:51.000000000 +0200 +@@ -0,0 +1,22 @@ ++#!/usr/bin/perl ++ ++while(<>) { ++ chop; ++ s/:.*//; ++ $pl = $_; ++ $ol = $_; ++ $nl = $ol; ++ $nl =~ s/^(.)/\1no-/; ++ $pl =~ tr/+=-/___/; ++ print " case OPT_$pl:\n"; ++ if(/=$/) { ++ print " pp[0] = ACONCAT ((\"-$ol\", arg, NULL));\n"; ++ } else { ++ print " if (value)\n"; ++ print " pp[0] = \"-$ol\";\n"; ++ print " else\n"; ++ print " pp[0] = \"-$nl\";\n"; ++ } ++ print " pascal_decode_option(1, pp);\n"; ++ print " break;\n\n"; ++} +diff -ru gpc-20040516.orig/p/module.c gpc-20040516/p/module.c +--- gpc-20040516.orig/p/module.c 2004-05-12 02:42:02.000000000 +0200 ++++ gpc-20040516/p/module.c 2004-07-06 19:12:30.000000000 +0200 +@@ -114,7 +114,7 @@ + static char *locate_interface_source PARAMS ((const char *, const char *, const char *)); + static MEMFILE *gpi_open PARAMS ((tree, const char *, const char *, int, gpi_int *, gpi_int *, gpi_int *)); + static tree load_gpi_file PARAMS ((tree, const char *, int)); +-static void import_node PARAMS ((tree, tree)); ++static void import_node PARAMS ((tree, tree, tree, import_type)); + static void load_own_interface PARAMS ((int)); + static module_t find_module PARAMS ((tree, int)); + static void module_expand_exported_ranges PARAMS ((tree)); +@@ -124,6 +124,7 @@ + static void start_chunk PARAMS ((FILE *, int, gpi_int)); + static void store_string_chunk PARAMS ((FILE *, int, const char *)); + static inline void store_string PARAMS ((const char *)); ++static tree dequalify_id PARAMS ((tree)); + static void store_tree PARAMS ((tree, FILE *, tree, int)); + static int get_node_id PARAMS ((tree)); + static void store_node PARAMS ((tree)); +@@ -453,6 +454,7 @@ + int kind; + { + const char *n; ++ const char * current_module_name = 0; + if (kind == 1) + chk_dialect ("units are", U_B_D_M_PASCAL); + else if (kind == 2 || kind == 3) +@@ -468,20 +470,16 @@ + id = get_identifier ("noname"); + } + current_module = find_module (id, 1); ++ current_module->assembler_name = NULL; + if (kind == 0) + { + string_list *link_file; + for (link_file = current_module->link_files; link_file; link_file = link_file->next) + add_to_automake_temp_file (link_file->string); +- n = "init_pascal_main_program"; + current_module->main_program = current_module->implementation = 1; ++ current_module_name = "_p__M0"; ++ current_module->assembler_name = get_identifier (current_module_name); + } +- else +- n = ACONCAT (("init_", IDENTIFIER_POINTER (current_module->name), NULL)); +- current_module->initializers = build_tree_list (NULL_TREE, get_identifier (n)); +- n = ACONCAT (("fini_", IDENTIFIER_POINTER (current_module->name), NULL)); +- current_module->finalizer = build_implicit_routine_decl (get_identifier (n), +- void_type_node, build_tree_list (NULL_TREE, void_type_node), ER_STATIC); + if (par) + { + tree t; +@@ -496,13 +494,25 @@ + && TREE_VALUE (t) && list_length (TREE_VALUE (t)) == 1) + { + current_module->assembler_name = check_assembler_name (TREE_VALUE (TREE_VALUE (t))); +- n = ACONCAT (("init_", IDENTIFIER_POINTER (current_module->assembler_name), +- "_", IDENTIFIER_POINTER (current_module->name), NULL)); +- current_module->initializers = build_tree_list (NULL_TREE, get_identifier (n)); ++ current_module_name = IDENTIFIER_POINTER (current_module->assembler_name); + } + else + error ("unknown module attribute `%s'", IDENTIFIER_NAME (TREE_PURPOSE (t))); + } ++ if (!current_module->assembler_name) ++ { ++ char name_len[23]; ++ const char * mname = IDENTIFIER_POINTER (current_module->name); ++ sprintf (name_len, "%ld_", (long)strlen (mname)); ++ current_module_name = ACONCAT (("_p__M", name_len, mname, NULL)); ++ current_module->assembler_name = get_identifier (current_module_name); ++ } ++ n = ACONCAT ((current_module_name, "_init", NULL)); ++ current_module->initializers = build_tree_list (NULL_TREE, get_identifier (n)); ++ n = ACONCAT ((current_module_name, "_fini", NULL)); ++ current_module->finalizer = build_implicit_routine_decl (get_identifier (n), ++ void_type_node, build_tree_list (NULL_TREE, void_type_node), ER_STATIC); ++ + if (kind != 0) + pushlevel (0); + /* Unit autoexport */ +@@ -637,12 +647,22 @@ + + NAME is an IDENTIFIER_NODE of the exported interface name. + +- EXPORT_LIST is a TREE_LIST: ++ EXPORT_LIST is a TREE_LIST containig: ++ export "all" marker (TREE_PURPOSE == NULL_TREE, TREE_VALUE == NULL_TREE) ++ explicit exports ++ end of explictit exports marker (TREE_PURPOSE == integer_zero_node, ++ TREE_VALUE == NULL_TREE) ++ implicit ("all") exports ++ ++ normal export entries: + TREE_READONLY: protected + TREE_PURPOSE: Export renaming (new name) or NULL_TREE. + TREE_VALUE: IDENTIFIER_NODE of the exported name + or TREE_LIST if exporting a range (TREE_PURPOSE..TREE_VALUE) +- or NULL_TREE for "all" */ ++ ++ Later in `module_expand_exported_ranges' we replace TREE_LIST ++ representing range by NULL_TREE and we add entries for values. */ ++ + void + export_interface (name, export_list) + tree name, export_list; +@@ -666,8 +686,14 @@ + So the explicit exports take precendence. This is a bit fragile. */ + for (t = export_list; t && TREE_VALUE (t); t = TREE_CHAIN (t)) ; + if (t) +- current_module->autoexport = chainon (current_module->autoexport, +- build_tree_list (tree_last (export_list), build_tree_list (export_list, name))); ++ { ++ tree last = tree_last (export_list); ++ /* Mark end of explicit exports */ ++ TREE_CHAIN (last) = build_tree_list (integer_zero_node , NULL_TREE); ++ last = TREE_CHAIN (last); ++ current_module->autoexport = chainon (current_module->autoexport, ++ build_tree_list (last, build_tree_list (export_list, name))); ++ } + } + + /* Import module/unit interfaces specified on the command line via `--uses=...'. */ +@@ -715,7 +741,7 @@ + } + else + file_name = NULL_TREE; +- import_interface (interface_name, NULL_TREE, 0, file_name); ++ import_interface (interface_name, NULL_TREE, IMPORT_USES, file_name); + while (*p + && !((*p >= 'A' && *p <= 'Z') + || (*p >= 'a' && *p <= 'z') +@@ -1612,6 +1638,16 @@ + return 0; + } + ++static tree ++dequalify_id (id) ++ tree id; ++{ ++ char * str = IDENTIFIER_POINTER (id); ++ assert (str = strchr (str, '.')); ++ str++; ++ return get_identifier (str); ++} ++ + static void + store_tree (name, s, main_node, autoexport_flag) + tree name; +@@ -1623,6 +1659,7 @@ + gpi_int main_node_id, checksum; + tree main_node_end, t, *tt; + char *main_exported; ++ int autoexporting = 0; + + /* How many nodes will be stored (approx.; will be extended when necessary) */ + wb.size = list_length (main_node) + 1024 + NUM_SPECIAL_NODES; +@@ -1684,8 +1721,8 @@ + t = TREE_CHAIN (t); + } + +- /* Due to the autoexporting of enum type values, the main list may +- contain duplicates. Remove them here. */ ++ /* Due to the autoexporting of enum type values and operators, the main ++ list may contain duplicates. Remove them here. */ + main_exported = alloca (wb.size * sizeof (char)); + memset (main_exported, 0, wb.size * sizeof (char)); + tt = &TREE_CHAIN (main_node); +@@ -1694,12 +1731,17 @@ + int flag = 1; + tree id = TREE_VALUE (*tt), rename = TREE_PURPOSE (*tt); + if (!id) +- flag = 0; ++ { ++ flag = 0; ++ if (rename == integer_zero_node) ++ autoexporting = 1; ++ } + else if (TREE_CODE (id) != IMPORT_NODE) + { + int c1 = get_node_id (id); + int c2 = get_node_id (rename); + assert (TREE_CODE (id) == IDENTIFIER_NODE); ++ assert (!rename || !autoexporting); + if (id) + { + tree value = IDENTIFIER_VALUE (id); +@@ -1712,17 +1754,40 @@ + error ("exporting unknown identifier `%s'", IDENTIFIER_NAME (id)); + } + if (rename) +- TREE_VALUE (*tt) = rename; ++ { ++ TREE_VALUE (*tt) = rename; ++ if (value && TREE_CODE (value) == CONST_DECL ++ && PASCAL_CST_PRINCIPAL_ID (value)) ++ { ++ tree nd = build_decl (CONST_DECL, rename, ++ TREE_TYPE (value)); ++ DECL_INITIAL (nd) = DECL_INITIAL (value); ++ value = nd; ++ get_node_id (value); ++ FLUSH_NODES; ++ } ++ } ++ else if (PASCAL_QUALIFIED_ID (id)) ++ { ++ id = dequalify_id (id); ++ c1 = get_node_id (id); ++ while (wb.count > n) ++ FLUSH_NODES; ++ TREE_VALUE (*tt) = id; ++ } + TREE_PURPOSE (*tt) = value; + } +- if (rename && main_exported[c2]) ++ if (rename && main_exported[c2] == 1) + { + error ("duplicate exported identifier `%s' due to renaming", IDENTIFIER_NAME (rename)); + TREE_VALUE (*tt) = NULL_TREE; + } +- if (!TREE_VALUE (*tt) || !TREE_PURPOSE (*tt) || main_exported[c1]) ++ if (id && !rename && !autoexporting && main_exported[c1] == 1) ++ error ("duplicate exported identifier `%s'", IDENTIFIER_NAME (id)); ++ if (!TREE_VALUE (*tt) || !TREE_PURPOSE (*tt) || ++ (main_exported[c1] && autoexporting)) + flag = 0; +- main_exported[c1] = 1; ++ main_exported[c1] = rename ? 2 : 1; + main_exported[c2] = 1; + } + if (flag) +@@ -1888,6 +1953,8 @@ + else + DECL_EXTERNAL (t) = 1; /* not for module interface so init_any won't ignore it */ + } ++ PASCAL_DECL_WEAK (t) = 0; ++ PASCAL_DECL_IMPORTED (t) = 1; + rest_of_decl_compilation (t, NULL, 1, 1); + } + /* Support `private' for object fields/methods */ +@@ -2082,7 +2149,11 @@ + { + int i, l = NUMBER_OF_OPERANDS (code); + store_node (TREE_TYPE (t)); ++#ifndef GCC_3_4 + for (i = (code == CONSTRUCTOR) ? 1 : 0; i < l; i++) ++#else ++ for (i = 0; i < l; i++) ++#endif + store_node (TREE_OPERAND (t, i)); + class_done = 1; + break; +@@ -2113,10 +2184,14 @@ + break; + + case IMPORT_NODE: ++ { ++ gpi_int q = PASCAL_TREE_QUALIFIED (t); + store_node (IMPORT_INTERFACE (t)); + store_node (IMPORT_QUALIFIER (t)); + store_node (IMPORT_FILENAME (t)); ++ STORE_ANY (q); + break; ++ } + + case TREE_LIST: + { +@@ -2133,23 +2208,6 @@ + } + + case ENUMERAL_TYPE: +- /* For directly or indirectly exported enumerated types, mark their +- values here for exporting in the main list(!), but only in +- autoexported interfaces (EP, 6.11.2, note 2). +- Not storing TYPE_VALUES (t) directly causes the values not be +- connected with the type in an importing interface. Therefore, it +- will not automatically re-export the values again (BP behaves +- the same way). (fjf628.pas) */ +- if (wb.autoexport_flag) +- { +- tree item; +- for (item = TYPE_VALUES (t); item; item = TREE_CHAIN (item)) +- wb.append_additional_globals_to_export = +- TREE_CHAIN (wb.append_additional_globals_to_export) = +- build_tree_list (NULL_TREE, TREE_PURPOSE (item)); +- } +- /* FALLTHROUGH */ +- case VOID_TYPE: + case REAL_TYPE: + case COMPLEX_TYPE: + case BOOLEAN_TYPE: +@@ -2158,6 +2216,12 @@ + store_node (TREE_TYPE (t)); + store_node (TYPE_MIN_VALUE (t)); + store_node (TYPE_MAX_VALUE (t)); ++ if (code == ENUMERAL_TYPE) ++ store_node (TYPE_VALUES (t)); ++ break; ++ ++ case VOID_TYPE: ++ store_node (TREE_TYPE (t)); + break; + + case SET_TYPE: +@@ -2580,7 +2644,11 @@ + { + int i, l = NUMBER_OF_OPERANDS (code); + TREE_TYPE (t) = load_node (); ++#ifndef GCC_3_4 + for (i = (code == CONSTRUCTOR) ? 1 : 0; i < l; i++) ++#else ++ for (i = 0; i < l; i++) ++#endif + TREE_OPERAND (t, i) = load_node (); + break; + } +@@ -2631,10 +2699,15 @@ + } + + case IMPORT_NODE: ++ { ++ gpi_int q; + IMPORT_INTERFACE (t) = load_node (); + IMPORT_QUALIFIER (t) = load_node (); + IMPORT_FILENAME (t) = load_node (); ++ LOAD_ANY (q); ++ PASCAL_TREE_QUALIFIED (t) = q; + break; ++ } + + case TREE_LIST: + { +@@ -2652,7 +2725,6 @@ + break; + } + +- case VOID_TYPE: + case REAL_TYPE: + case COMPLEX_TYPE: + case BOOLEAN_TYPE: +@@ -2663,7 +2735,14 @@ + TYPE_MIN_VALUE (t) = load_node (); + TYPE_MAX_VALUE (t) = load_node (); + if (code == ENUMERAL_TYPE) +- TYPE_STUB_DECL (t) = build_decl (TYPE_DECL, NULL_TREE, t); ++ { ++ TYPE_VALUES (t) = load_node (); ++ TYPE_STUB_DECL (t) = build_decl (TYPE_DECL, NULL_TREE, t); ++ } ++ break; ++ ++ case VOID_TYPE: ++ TREE_TYPE (t) = load_node (); + break; + + case SET_TYPE: +@@ -2853,6 +2932,10 @@ + TREE_TYPE (t) = load_node (); + break; + ++ case OPERATOR_DECL: ++ TREE_TYPE (t) = void_type_node; ++ break; ++ + default: + break; + } +@@ -3458,19 +3541,49 @@ + return temp; + } + ++ + /* Activate a node during import */ + static void +-import_node (item, rename) ++import_node (item, rename, interface, qualified) + tree item, rename; ++ tree interface; ++ import_type qualified; + { + tree value = TREE_PURPOSE (item); ++ int no_principal = (rename && TREE_CODE (value) == CONST_DECL); ++ rename = rename ? rename : TREE_VALUE (item); + if (TREE_CODE (TREE_VALUE (item)) == IMPORT_NODE) + return; + TREE_READONLY (value) |= TREE_READONLY (item); + if (TREE_CODE (value) == FUNCTION_DECL && DECL_LANG_OPERATOR_DECL (value)) + operators_defined = 1; +- pushdecl_nocheck (value); +- IDENTIFIER_VALUE (rename ? rename : TREE_VALUE (item)) = value; ++ if (qualified == IMPORT_ISO || qualified == IMPORT_USES) ++ { ++ tree decl1 = interface ? copy_node (value) : value; ++ DECL_NAME (decl1) = rename; ++ PASCAL_DECL_WEAK (decl1) = 0; ++ PASCAL_DECL_IMPORTED (decl1) = 1; ++ if (no_principal) ++ PASCAL_CST_PRINCIPAL_ID (decl1) = 0; ++ IDENTIFIER_VALUE (rename) = pushdecl_import (decl1, ++ qualified == IMPORT_USES); ++ } ++ if (interface) ++ { ++ tree qdecl = copy_node(value); ++ tree qid = get_identifier (ACONCAT (( ++ IDENTIFIER_POINTER (interface), ++ ".", ++ IDENTIFIER_POINTER (rename), ++ NULL))); ++ PASCAL_DECL_WEAK (qdecl) = 0; ++ PASCAL_DECL_IMPORTED (qdecl) = 1; ++ DECL_NAME (qdecl) = qid; ++ if (no_principal) ++ PASCAL_CST_PRINCIPAL_ID (qdecl) = 0; ++ pushdecl_import (qdecl, 0); ++ IDENTIFIER_VALUE (qid) = qdecl; ++ } + TREE_USED (item) = 1; + } + +@@ -3500,7 +3613,7 @@ + t = TREE_PURPOSE (ename); + if (TREE_CODE (t) == FUNCTION_DECL && PASCAL_FORWARD_DECLARATION (t)) + set_forward_decl (t, 1); +- import_node (ename, NULL_TREE); ++ import_node (ename, NULL_TREE, NULL_TREE, IMPORT_ISO); + } + current_module->initializers = itab_get_initializers (interface_name); /* @@ use any interface name */ + } +@@ -3528,11 +3641,16 @@ + void + import_interface (interface, import_qualifier, qualified, filename) + tree interface, import_qualifier; +- int qualified; ++ import_type qualified; + tree filename; + { + tree exported_name_list, imported, exported, ename, iname; ++ tree import_decl; + struct predef *pd; ++#ifndef EGCS97 ++ struct obstack *ambient_obstack = current_obstack; ++ current_obstack = &permanent_obstack; ++#endif + + if (filename && TREE_CODE (filename) != STRING_CST) + { +@@ -3549,20 +3667,25 @@ + error ("self-dependent module or unit"); + return; + } +- +- for (imported = current_module->imports; imported; imported = TREE_CHAIN (imported)) +- if (interface == IMPORT_INTERFACE (TREE_VALUE (imported))) ++ import_decl = lookup_name_current_level (interface); ++ if (import_decl && TREE_CODE (import_decl) == NAMESPACE_DECL) + { +- error ("interface `%s' has already been imported", IDENTIFIER_NAME (interface)); ++ error ("interface `%s' has already been imported", ++ IDENTIFIER_NAME (interface)); + return; + } ++ import_decl = build_decl(NAMESPACE_DECL, interface, void_type_node); ++ pushdecl (import_decl); ++ for (imported = current_module->imports; imported; imported = TREE_CHAIN (imported)) ++ if (interface == IMPORT_INTERFACE (TREE_VALUE (imported))) ++ break; + + if (!imported) + { + tree t = make_node (IMPORT_NODE); + IMPORT_INTERFACE (t) = interface; + IMPORT_QUALIFIER (t) = import_qualifier; +- PASCAL_TREE_QUALIFIED (t) = !!qualified; ++ PASCAL_TREE_QUALIFIED (t) = qualified; + IMPORT_FILENAME (t) = filename; + imported = build_tree_list (NULL_TREE, t); + current_module->imports = chainon (current_module->imports, imported); +@@ -3590,6 +3713,7 @@ + for (exported = exported_interface_list; exported; exported = TREE_CHAIN (exported)) + if (TREE_VALUE (exported) == interface) + break; ++ + if (!exported) + { + const char *gpi_source; +@@ -3598,14 +3722,11 @@ + else + gpi_source = NULL; + exported = load_gpi_file (interface, gpi_source, 0); +- exported_interface_list = tree_cons (NULL_TREE, interface, exported_interface_list); ++ exported_interface_list = tree_cons (TREE_PURPOSE (exported), interface, exported_interface_list); + } + exported_name_list = TREE_PURPOSE (exported); + } + +- if (qualified) +- warning ("`qualified' not yet supported -- ignored"); +- + for (ename = exported_name_list; ename; ename = TREE_CHAIN (ename)) + TREE_USED (ename) = 0; + if (import_qualifier) +@@ -3616,7 +3737,7 @@ + ename = TREE_CHAIN (ename); + /* Activate this name and resolve possible import renaming. */ + if (ename) +- import_node (ename, TREE_VALUE (iname)); ++ import_node (ename, TREE_VALUE (iname), interface, qualified); + else + error ("interface `%s' does not export `%s'", + IDENTIFIER_NAME (interface), IDENTIFIER_NAME (TREE_PURPOSE (iname))); +@@ -3626,7 +3747,10 @@ + if (!(import_qualifier && TREE_PURPOSE (import_qualifier))) + for (ename = exported_name_list; ename; ename = TREE_CHAIN (ename)) + if (!TREE_USED (ename)) +- import_node (ename, NULL_TREE); ++ import_node (ename, NULL_TREE, interface, qualified); ++#ifndef EGCS97 ++ current_obstack = ambient_obstack; ++#endif + } + + /* Replace the exported TREE_LISTs denoting ranges by the actual identifier +@@ -3658,8 +3782,21 @@ + { + if (tree_int_cst_equal (TREE_VALUE (item), DECL_INITIAL (tlow))) + export_it = 1; +- if (export_it) +- exported = tree_cons (NULL_TREE, TREE_PURPOSE (item), exported); ++ if (export_it) ++ { ++ tree id = TREE_PURPOSE (item); ++ tree tid = lookup_name (id); ++ if ( !tid || TREE_CODE (tid) != CONST_DECL ++ || DECL_INITIAL (tid) != TREE_VALUE (item) ++ || !PASCAL_CST_PRINCIPAL_ID (tid)) ++ { ++ error ("Can not export range value %s", ++ IDENTIFIER_POINTER (id)); ++ error (" principal identifier not in scope"); ++ } ++ else ++ exported = tree_cons (NULL_TREE, id, exported); ++ } + if (tree_int_cst_equal (TREE_VALUE (item), DECL_INITIAL (thigh))) + { + if (!export_it) +diff -ru gpc-20040516.orig/p/objects.c gpc-20040516/p/objects.c +--- gpc-20040516.orig/p/objects.c 2004-05-12 17:08:07.000000000 +0200 ++++ gpc-20040516/p/objects.c 2004-07-06 19:08:51.000000000 +0200 +@@ -385,7 +385,12 @@ + PASCAL_METHOD (method) = 1; + TREE_PROTECTED (method) = protected_private == 1; + TREE_PRIVATE (method) = protected_private == 2; +- SET_DECL_ASSEMBLER_NAME (method, assembler_name ? check_assembler_name (assembler_name) : method_name); ++ if (assembler_name) ++ assembler_name = check_assembler_name (assembler_name); ++ else ++ assembler_name = pascal_mangle_names (object_name, ++ IDENTIFIER_POINTER (name)); ++ SET_DECL_ASSEMBLER_NAME (method, assembler_name); + DECL_LANG_SPECIFIC (method) = allocate_decl_lang_specific (); + DECL_LANG_PARMS (method) = TREE_PURPOSE (TREE_OPERAND (h, 1)); + DECL_LANG_RESULT_VARIABLE (method) = (TREE_CHAIN (heading) && TREE_PRIVATE (TREE_CHAIN (heading))) ? NULL_TREE : TREE_CHAIN (heading); +diff -ru gpc-20040516.orig/p/options.c gpc-20040516/p/options.c +--- gpc-20040516.orig/p/options.c 2004-05-14 16:38:19.000000000 +0200 ++++ gpc-20040516/p/options.c 2004-07-06 19:08:51.000000000 +0200 +@@ -27,6 +27,10 @@ + #include "gpc-options.h" + #include "p/version.h" + ++#ifdef GCC_3_4 ++#include "options.h" ++#endif ++ + /* An array with all long Pascal command-line switches. */ + static const struct + { +@@ -890,8 +894,13 @@ + + /* This initialization is run once per compilation just before command-line + options are processed. */ ++#ifndef GCC_3_4 + void + pascal_init_options () ++#else ++unsigned int ++pascal_init_options (unsigned int argc, const char * * argv) ++#endif + { + const char *const *option; + char *p, *q, *r; +@@ -901,10 +910,14 @@ + version number there, let's at least output it here ... */ + /* Great! toplev.h doesn't even export version_flag, so check for + it again. :-/ At least it exports save_arg[cv] ... */ ++#ifndef GCC_3_4 + int version_flag = 0, i; + for (i = 1; i < save_argc; i++) + if (!strcmp (save_argv[i], "-version")) + version_flag = 1; ++#else ++ const char * * save_argv = argv; ++#endif + if (version_flag) + fprintf (stderr, "GNU Pascal version is actually %s, based on gcc-%s\n", GPC_RELEASE_STRING, version_string); + +@@ -920,6 +933,7 @@ + /* Initialize the default paths, using the directory we are living in. */ + string_append (&default_unit_path, getenv ("GPC_UNIT_PATH"), path_separator_str); + string_append (&default_object_path, getenv ("GPC_OBJECT_PATH"), path_separator_str); ++#ifndef GCC_3_4 + p = save_string (save_argv[0]); + q = p + strlen (p) - 1; + while (q >= p && !IS_DIR_SEPARATOR (*q)) +@@ -933,6 +947,10 @@ + string_append (&default_unit_path, p, path_separator_str); + } + free (p); ++#else ++ string_append (&default_unit_path, GPC_UNITS_DIR, path_separator_str); ++ return CL_Pascal; ++#endif + } + + void +diff -ru gpc-20040516.orig/p/opts.sum gpc-20040516/p/opts.sum +--- gpc-20040516.orig/p/opts.sum 2004-07-06 19:20:03.000000000 +0200 ++++ gpc-20040516/p/opts.sum 2004-07-06 19:08:51.000000000 +0200 +@@ -0,0 +1,111 @@ ++Wall:: ++Wcomment:: ++Wmissing-declarations:: ++Wmissing-prototypes:: ++Wpointer-arith:: ++Wundef:: ++Wwrite-strings:: ++fexecutable-file-name=:Joined RejectNegative: ++ffield-widths=:Joined RejectNegative: ++Wabsolute::Warn about variables at absolute adresses and `absolute' variable with non-constant addresses (default) ++Wfloat-equal::Warn about `=' and `<>' comparisons of real numbers ++Widentifier-case-local::Warn about an identifier written with varying case within one program/module/unit ++Widentifier-case::Warn about an identifier written with varying case ++Wimplicit-abstract::Warn when an object type not declared `abstract' contains an abstract method (default) ++Wimplicit-io::Warn when `Input' or `Output' are used implicitly ++Winherited-abstract::Warn when an abstract object type inherits from a non-abstract one (default) ++Winterface-file-name::Warn when a unit/module interface differs from the file name ++Wlocal-external::Warn about local `external' declarations ++Wmixed-comments::Warn about mixed comments like `{ ... *)' ++Wnear-far::Warn about use of useless `near' or `far' directives (default) ++Wnested-comments::Warn about nested comments like `{ { } }' ++Wobject-assignment::Warn when when assigning objects or declaring them as value parameters or function results (default) ++Wsemicolon::Warn about a semicolon after `then', `else' or `do' (default) ++Wtyped-const::Warn about misuse of typed constants as initialized variables (default) ++Wunderscore::Warn about double/leading/trailing underscores in identifiers ++Wwarnings::Enable warnings (same as `{$W+}') ++fassertions::Enable assertion checking (default) ++fautobuild::Automatically compile all units/modules/`{$L ...}' files and link the object files provided ++fautolink::Automatically link object files provided by units/modules or `{$L ...}' (default) ++fautomake::Automatically compile changed units/modules/`{$L ...}' files and link the object files provided ++fcstrings-as-strings::Treat CStrings as strings ++fdelphi-comments::Allow Delphi style `//' comments (default) ++fdouble-quoted-strings::Allow strings enclosed in \"\" (default) ++fexact-compare-strings::Do not blank-pad strings for comparisons ++fextended-syntax::same as `--ignore-function-results --pointer-arithmetic --cstrings-as-strings -Wno-absolute' (same as `{$X+}') ++ffield-widths::Optional colon-separated list of default field widths for Integer, Real, Boolean, LongInt, LongReal ++fignore-function-results::Do not complain when a function is called like a procedure ++fignore-garbage-after-dot::Ignore anything after the terminating `.' (default in `--borland-pascal') ++fignore-packed::Ignore `packed' in the source code (default in `--borland-pascal') ++fio-checking::Check I/O operations automatically (same as `{$I+}') (default) ++flongjmp-all-nonlocal-labels::Use `longjmp' for all nonlocal labels ++fmacros::Expand macros (default) ++fmethods-always-virtual::Make all methods virtual (default in `--mac-pascal') ++fmixed-comments::Allow comments like `{ ... *)' as required in ISO Pascal (default in ISO 7185/10206 Pascal mode) ++fnested-comments::Allow nested comments like `{ { } }' and `(* (* *) *)' ++fpedantic::Reject everything not allowed in some dialect, e.g. redefinition of its keywords ++fpointer-arithmetic::Enable pointer arithmetic ++fprogress-bar::Output number of processed lines while compiling ++fprogress-messages::Output source file names and line numbers while compiling ++frange-checking::Do automatic range checks (same as `{$R+}') (default) ++fread-base-specifier::In read statements, allow input base specifier `n#' (default) ++fread-hex::In read statements, allow hexadecimal input with `$' (default) ++fread-white-space::In read statements, require whitespace after numbers ++fshort-circuit::Guarantee short-circuit Boolean evaluation (default; same as `{$B-}') ++fstack-checking::Enable stack checking (same as `{$S+}') ++ftransparent-file-names::Derive external file names from variable names ++ftruncate-strings::Truncate strings being assigned to other strings of too short capacity. ++ftyped-address::Make the result of the address operator typed (same as `{$T+}', default) ++fwrite-capital-exponent::Write real exponents with a capital `E' ++fwrite-clip-strings::In write statements, truncate strings exceeding their field width (`Write (SomeLongString : 3)') ++fwrite-real-blank::Output a blank in front of positive reals in exponential form (default) ++fbig-endian:RejectNegative:Tell GPC that the system is big-endian (for those targets where it can vary) ++fborland-pascal:RejectNegative:Try to emulate Borland Pascal, version 7.0 ++fclassic-pascal-level-0:RejectNegative:Reject conformant arrays and anything besides ISO 7185 Pascal ++fclassic-pascal:RejectNegative:Reject anything besides ISO 7185 Pascal ++fdebug-automake:RejectNegative:(For GPC developers.) Give additional information about the actions of automake ++fdebug-gpi:RejectNegative:(For GPC developers.) Show what is written to and read from GPI files (huge output!) ++fdebug-source:RejectNegative:Output the source while it is processed ++fdelphi:RejectNegative:Try to emulate Borland Pascal, version 7.0, with some Delphi extensions ++fexecutable-file-name:RejectNegative:Name for the output file, if specified; otherwise derive from main source file name ++fextended-pascal:RejectNegative:Reject anything besides ISO 10206 Extended Pascal ++fgnu-pascal:RejectNegative:Undo the effect of previous dialect options, allow all features again ++fimplementation-only:RejectNegative:Do not produce a GPI file; only compile the implementation part ++finterface-only:RejectNegative:Compile only the interface part of a unit/module and exit (creates `.gpi' file, no `.o' file) ++flittle-endian:RejectNegative:Tell GPC that the system is little-endian (for those targets where it can vary) ++fmac-pascal:RejectNegative:Support (some features of) traditional Macintosh Pascal compilers ++fdebug-info::Inhibit `-g' options (temporary work-around, this option may disappear in the future) ++fdefault-paths::Do not add a default path to the unit and object path ++fexecutable-path::Create the executable file in the directory where the main source is (default) ++fobject-destination-path::Create additional object files (e.g. of C files, not Pascal units) in the current directory (default) ++fobject-path::Forget about directories where to look for additional object (and source) files ++funit-destination-path::Create object and GPI files of Pascal units in the current directory (default) ++funit-path::Forget about directories where to look for unit/module sources ++fobject-pascal:RejectNegative:Reject anything besides (the implemented parts of) ANSI draft Object Pascal ++fpascal-sc:RejectNegative:Be strict about the implemented Pascal-SC extensions ++fprint-needed-options:RejectNegative:Print the needed options ++fstandard-pascal-level-0:RejectNegative:Synonym for `--classic-pascal-level-0' ++fstandard-pascal:RejectNegative:Synonym for `--classic-pascal' ++fsun-pascal:RejectNegative:Support (a few features of) Sun Pascal ++fucsd-pascal:RejectNegative:Try to emulate UCSD Pascal ++fvax-pascal:RejectNegative:Support (a few features of) VAX Pascal ++famtmpfile=:Joined RejectNegative:(Internal switch used for automake) ++fautomake-g++=:Joined RejectNegative:Set the C++ compiler invoked by automake ++fautomake-gcc=:Joined RejectNegative:Set the C compiler invoked by automake ++fautomake-gpc=:Joined RejectNegative:Set the Pascal compiler invoked by automake ++fcidefine=:Joined RejectNegative:Define a case-insensitive macro ++fcsdefine=:Joined RejectNegative:Define a case-sensitive macro ++fdebug-tree=:Joined RejectNegative:(For GPC developers.) Show the internal representation of a given tree node (name or address) ++fdisable-keyword=:Joined RejectNegative:Disable a keyword, independently of dialect defaults ++fenable-keyword=:Joined RejectNegative:Enable a keyword, independently of dialect defaults ++fexecutable-path=:Joined RejectNegative:Path where to create the executable file ++fgpc-main=:Joined RejectNegative:External name for the program's entry point (default: `main') ++fgpi-destination-path=:Joined RejectNegative:(Internal switch used for automake) ++finit-modules=:Joined RejectNegative:Initialize the named modules in addition to those imported regularly; kind of a kludge ++fmaximum-field-alignment=:Joined RejectNegative:Set the maximum field alignment in bits if `pack-struct' is in effect ++fobject-destination-path=:Joined RejectNegative:Path where to create additional object files (e.g. of C files, not Pascal units) ++fobject-path=:Joined RejectNegative:Directories where to look for additional object (and source) files ++fsetlimit=:Joined RejectNegative:Define the range for `set of Integer' etc. ++funit-destination-path=:Joined RejectNegative:Path where to create object and GPI files of Pascal units ++funit-path=:Joined RejectNegative:Directories where to look for unit/module sources ++fuses=:Joined RejectNegative:Add an implicit `uses' clause +diff -ru gpc-20040516.orig/p/parse.y gpc-20040516/p/parse.y +--- gpc-20040516.orig/p/parse.y 2004-05-12 17:04:56.000000000 +0200 ++++ gpc-20040516/p/parse.y 2004-07-06 19:12:30.000000000 +0200 +@@ -77,6 +77,8 @@ + static int parentheses_count = 0; + static tree iso_no_parentheses PARAMS ((tree)); + ++static int in_uses = 0; ++ + enum { od_none, od_uses, od_label, od_const, od_type, od_var, od_routine }; + static int check_decl_order PARAMS ((int, int)); + +@@ -86,7 +88,17 @@ + union yyGLRStackItem; + static void locations PARAMS ((YYLTYPE *, const union yyGLRStackItem*, int)); + #define YYLLOC_DEFAULT(DEST, SRC, N) locations (&DEST, SRC, N) ++#ifndef GCC_3_4 + #define LOCATION_NOTE(LOC) if (current_function_decl) emit_line_note ((LOC).first_file, (LOC).first_line) ++#else ++#define LOCATION_NOTE(LOC) if (current_function_decl) \ ++ { \ ++ location_t loc_aux; \ ++ loc_aux.file = (LOC).first_file; \ ++ loc_aux.line = (LOC).first_line; \ ++ emit_line_note (loc_aux); \ ++ } ++#endif + #define COPYLOC(D, S) (* (YYLTYPE *) memcpy (&(D), &(S), sizeof (YYLTYPE))) + + #define YYASSERT assert +@@ -113,6 +125,9 @@ + - put all the look-ahead tokens needed in the precedence in one single + `%nonassoc' declaration. */ + ++%nonassoc prec_id ++%nonassoc '.' ++ + /* Dangling else */ + %nonassoc prec_if + +@@ -127,7 +142,8 @@ + p_else + + /* higher than prec_import */ +- p_uses p_implementation p_constructor p_destructor p_operator ++ p_uses p_initialization p_implementation p_constructor p_destructor ++ p_operator + + /* higher than prec_lower_than_error */ + error +@@ -216,6 +232,7 @@ + optional_variable_directive_list subrange_type object_section conformant_array + operator_symbol initializer_expression typename_or_string255 asm_clobbers term + id_list factor attrib id_list_limited id_list1 intconst caret_letter id null ++ qualified_id_access typename_1 new_quid + err + + /* Unimplemented ISO initializers +@@ -368,7 +385,7 @@ + + optional_unit_implementation: + { chk_dialect ("units without `implementation' part are", U_M_PASCAL); } +- | p_implementation declarations_and_uses optional_unit_init_and_final_part { } ++ | p_implementation optional_import_part1 declarations_and_uses optional_unit_init_and_final_part { } + ; + + module: +@@ -543,25 +560,40 @@ + ; + + export_list_item: +- new_identifier optional_rename ++ new_quid optional_rename + { $$ = build_tree_list ($2, $1); } +- | new_identifier LEX_RANGE new_identifier ++ | new_quid LEX_RANGE new_quid + { $$ = build_tree_list (NULL_TREE, build_tree_list ($1, $3)); } +- | i_protected new_identifier optional_rename ++ | i_protected new_quid optional_rename + { $$ = build_tree_list ($3, $2); TREE_READONLY ($$) = 1; } + ; + ++new_quid: ++ new_identifier ++ | new_identifier '.' new_identifier ++ { $$ = build_qualified_id ($1,$3);} ++ ; ++ + optional_rename: + null + | LEX_RENAME new_identifier + { $$ = $2; } + ; + +-optional_import_part: ++ ++extra_import_part: + /* empty */ + { do_extra_import (); } +- | { do_extra_import (); } +- p_import import_specification_list ';' %prec prec_import ++ ; ++ ++optional_import_part1: ++ /* empty */ ++ | ++ p_import { in_uses = 0 } import_specification_list ';' %prec prec_import ++ ; ++ ++optional_import_part: ++ extra_import_part optional_import_part1 + ; + + import_specification_list: +@@ -572,7 +604,7 @@ + ; + + uses_part: +- p_uses uses_list ';' ++ p_uses { in_uses = 1 } uses_list ';' + { $$ = od_uses; } + ; + +@@ -585,7 +617,8 @@ + + import_specification: + new_identifier optional_access_qualifier optional_import_qualifier optional_unit_filename +- { import_interface ($1, $3, $2, $4); } ++ { import_interface ($1, $3, ($2 == 1) ? IMPORT_QUALIFIED : ++ (in_uses ? IMPORT_USES : IMPORT_ISO), $4); } + ; + + optional_access_qualifier: +@@ -829,7 +862,7 @@ + ; + + typename: +- id ++ typename_1 + { + tree decl = lookup_name ($1); + $$ = error_mark_node; +@@ -842,6 +875,12 @@ + } + ; + ++typename_1: ++ id ++ | id '.' id ++ { $$ = build_qualified_id ($1,$3);} ++ ; ++ + actual_schema_discriminants: + '(' discriminant_expression_list ')' + { chk_dialect ("schema/string discriminants are", E_O_PASCAL); $$ = $2; } +@@ -916,15 +955,15 @@ + /* Pointers */ + new_pointer_type: + '@' pointer_domain_type +- { $$ = EM ($2) ? error_mark_node : build_pointer_type ($2); } ++ { $$ = EM ($2) ? error_mark_node : build_pascal_pointer_type ($2); } + | '^' pointer_domain_type +- { $$ = EM ($2) ? error_mark_node : build_pointer_type ($2); } ++ { $$ = EM ($2) ? error_mark_node : build_pascal_pointer_type ($2); } + | LEX_CARET_WHITE pointer_domain_type +- { $$ = EM ($2) ? error_mark_node : build_pointer_type ($2); } ++ { $$ = EM ($2) ? error_mark_node : build_pascal_pointer_type ($2); } + | pointer_char p_const pointer_domain_type + { + chk_dialect ("pointers to `const' types are", GNU_PASCAL); +- $$ = EM ($3) ? error_mark_node : build_pointer_type (p_build_type_variant ($3, 1, TYPE_VOLATILE ($3))); ++ $$ = EM ($3) ? error_mark_node : build_pascal_pointer_type (p_build_type_variant ($3, 1, TYPE_VOLATILE ($3))); + } + ; + +@@ -1551,6 +1590,7 @@ + { declare_routine ($1, $3, 0); } + | routine_or_method_heading ';' optional_routine_directive_list + { $$ = start_routine ($1, $3); } ++ optional_import_part1 + any_declaration_part + { + do_setjmp (); +@@ -2330,8 +2370,14 @@ + | variable_or_routine_access_no_builtin_function + ; + +-variable_or_routine_access_no_builtin_function: ++qualified_id_access: + identifier ++ | id '.' new_identifier ++ { $$ = build_qualified_or_component_acces ($1, $3); } ++ ; ++ ++variable_or_routine_access_no_builtin_function: ++ qualified_id_access + | p_inherited new_identifier + { $$ = build_inherited_method ($2); } + | variable_or_routine_access_no_parentheses '.' new_identifier +@@ -2638,7 +2684,7 @@ + + identifier: + id +- { $$ = check_identifier ($1); } ++ { $$ = check_identifier ($1); } %prec prec_id + ; + + id: +@@ -2809,7 +2855,16 @@ + parser in the right places causes some conflicts (especially assignments + with nontrivial expressions on their left side are problematic). */ + if (current_function_decl) ++#ifndef GCC_3_4 + emit_line_note (dest->first_file, dest->first_line); ++#else ++ { ++ location_t loc_aux; ++ loc_aux.file = dest->first_file; ++ loc_aux.line = dest->first_line; ++ emit_line_note (loc_aux); ++ } ++#endif + } + dest->option_id = 0; + for (i = 1; i <= n; i++) +diff -ru gpc-20040516.orig/p/p-tree.def gpc-20040516/p/p-tree.def +--- gpc-20040516.orig/p/p-tree.def 2004-01-01 00:11:33.000000000 +0100 ++++ gpc-20040516/p/p-tree.def 2004-07-06 19:08:51.000000000 +0200 +@@ -38,4 +38,5 @@ + DEFTREECODE (POWER_EXPR, "power_expr", "2", 2) + DEFTREECODE (POW_EXPR, "pow_expr", "2", 2) + DEFTREECODE (SYMDIFF_EXPR, "symdiff_expr", "2", 2) ++DEFTREECODE (NAMESPACE_DECL, "namespace_decl", "d", 0) + #endif +diff -ru gpc-20040516.orig/p/rts/endian.pas gpc-20040516/p/rts/endian.pas +--- gpc-20040516.orig/p/rts/endian.pas 2004-01-01 00:23:28.000000000 +0100 ++++ gpc-20040516/p/rts/endian.pas 2004-07-06 19:08:51.000000000 +0200 +@@ -30,7 +30,7 @@ + + {$gnu-pascal,I-} + +-unit Endian; attribute (name = 'GPC'); ++unit Endian; attribute (name = '_p__rts_Endian'); + + interface + +diff -ru gpc-20040516.orig/p/rts/error.pas gpc-20040516/p/rts/error.pas +--- gpc-20040516.orig/p/rts/error.pas 2004-05-12 16:31:05.000000000 +0200 ++++ gpc-20040516/p/rts/error.pas 2004-07-06 19:08:51.000000000 +0200 +@@ -31,7 +31,7 @@ + + {$gnu-pascal,I-} + +-unit Error; attribute (name = 'GPC'); ++unit Error; attribute (name = '_p__rts_Error'); + + interface + +diff -ru gpc-20040516.orig/p/rts/filename.pas gpc-20040516/p/rts/filename.pas +--- gpc-20040516.orig/p/rts/filename.pas 2004-05-07 16:48:07.000000000 +0200 ++++ gpc-20040516/p/rts/filename.pas 2004-07-06 19:08:51.000000000 +0200 +@@ -31,7 +31,7 @@ + + {$gnu-pascal,I-} + +-unit FileName; attribute (name = 'GPC'); ++unit FileName; attribute (name = '_p__rts_FileName'); + + interface + +diff -ru gpc-20040516.orig/p/rts/files.pas gpc-20040516/p/rts/files.pas +--- gpc-20040516.orig/p/rts/files.pas 2004-05-07 16:48:09.000000000 +0200 ++++ gpc-20040516/p/rts/files.pas 2004-07-06 19:08:51.000000000 +0200 +@@ -31,7 +31,7 @@ + + {$gnu-pascal,I-} + +-unit Files; attribute (name = 'GPC'); ++unit Files; attribute (name = '_p__rts_Files'); + + interface + +diff -ru gpc-20040516.orig/p/rts/getopt.pas gpc-20040516/p/rts/getopt.pas +--- gpc-20040516.orig/p/rts/getopt.pas 2004-05-07 16:48:11.000000000 +0200 ++++ gpc-20040516/p/rts/getopt.pas 2004-07-06 19:08:51.000000000 +0200 +@@ -30,7 +30,7 @@ + + {$gnu-pascal,I-} + +-unit GetOpt; attribute (name = 'GPC'); ++unit GetOpt; attribute (name = '_p__rts_GetOpt'); + + interface + +diff -ru gpc-20040516.orig/p/rts/heap.pas gpc-20040516/p/rts/heap.pas +--- gpc-20040516.orig/p/rts/heap.pas 2004-04-08 14:34:05.000000000 +0200 ++++ gpc-20040516/p/rts/heap.pas 2004-07-06 19:08:51.000000000 +0200 +@@ -31,7 +31,7 @@ + + {$gnu-pascal,I-} + +-unit Heap; attribute (name = 'GPC'); ++unit Heap; attribute (name = '_p__rts_Heap'); + + interface + +diff -ru gpc-20040516.orig/p/rts/init.pas gpc-20040516/p/rts/init.pas +--- gpc-20040516.orig/p/rts/init.pas 2004-05-07 16:48:14.000000000 +0200 ++++ gpc-20040516/p/rts/init.pas 2004-07-06 19:08:51.000000000 +0200 +@@ -30,7 +30,7 @@ + + {$gnu-pascal,I-} + +-unit Init; attribute (name = 'GPC'); ++unit Init; attribute (name = '_p__rts_Init'); + + interface + +@@ -264,7 +264,7 @@ + if InitProc <> nil then InitProc^ + end; + +-procedure InitInit; external name 'init_GPC_Init'; ++procedure InitInit; external name '_p__rts_Init_init'; + + procedure GPC_Initialize (ArgumentCount: Integer; Arguments, StartEnvironment: PCStrings; Options: Integer); + begin +diff -ru gpc-20040516.orig/p/rts/Makefile.in gpc-20040516/p/rts/Makefile.in +--- gpc-20040516.orig/p/rts/Makefile.in 2004-05-13 15:56:28.000000000 +0200 ++++ gpc-20040516/p/rts/Makefile.in 2004-07-06 19:08:51.000000000 +0200 +@@ -190,7 +190,7 @@ + $(GPCLIB): $(OBJS) + -rm -f $(GPCLIB) + $(AR) $(AR_FLAGS) $(GPCLIB) $(OBJS) +- if $(RANLIB_TEST); then $(RANLIB) $(GPCLIB); else true; fi ++ -$(RANLIB) $(GPCLIB) + + # That's a way to do an `if' that even a stupid make understands ... + sharedlib. sharedlib.no sharedlib.@with_shared$(DUMMY)@: +diff -ru gpc-20040516.orig/p/rts/math.pas gpc-20040516/p/rts/math.pas +--- gpc-20040516.orig/p/rts/math.pas 2004-05-12 16:47:11.000000000 +0200 ++++ gpc-20040516/p/rts/math.pas 2004-07-06 19:08:51.000000000 +0200 +@@ -33,7 +33,7 @@ + + {$gnu-pascal,I-} + +-unit Math; attribute (name = 'GPC'); ++unit Math; attribute (name = '_p__rts_Math'); + + interface + +diff -ru gpc-20040516.orig/p/rts/move.pas gpc-20040516/p/rts/move.pas +--- gpc-20040516.orig/p/rts/move.pas 2004-01-01 00:23:08.000000000 +0100 ++++ gpc-20040516/p/rts/move.pas 2004-07-06 19:08:51.000000000 +0200 +@@ -31,7 +31,7 @@ + + {$gnu-pascal,I-} + +-unit Move; attribute (name = 'GPC'); ++unit Move; attribute (name = '_p__rts_Move'); + + interface + +diff -ru gpc-20040516.orig/p/rts/numtodec.pas gpc-20040516/p/rts/numtodec.pas +--- gpc-20040516.orig/p/rts/numtodec.pas 2004-01-01 00:23:06.000000000 +0100 ++++ gpc-20040516/p/rts/numtodec.pas 2004-07-06 19:08:51.000000000 +0200 +@@ -33,7 +33,7 @@ + + {$gnu-pascal,I-} + +-unit NumToDec; attribute (name = 'GPC'); ++unit NumToDec; attribute (name = '_p__rts_NumToDec'); + + interface + +diff -ru gpc-20040516.orig/p/rts/random.pas gpc-20040516/p/rts/random.pas +--- gpc-20040516.orig/p/rts/random.pas 2004-05-08 14:34:20.000000000 +0200 ++++ gpc-20040516/p/rts/random.pas 2004-07-06 19:08:51.000000000 +0200 +@@ -31,7 +31,7 @@ + + {$gnu-pascal,I-} + +-unit Random; attribute (name = 'GPC'); ++unit Random; attribute (name = '_p__rts_Random'); + + interface + +diff -ru gpc-20040516.orig/p/rts/rtsc.pas gpc-20040516/p/rts/rtsc.pas +--- gpc-20040516.orig/p/rts/rtsc.pas 2004-05-15 21:54:02.000000000 +0200 ++++ gpc-20040516/p/rts/rtsc.pas 2004-07-06 19:08:51.000000000 +0200 +@@ -40,7 +40,7 @@ + + {$gnu-pascal,I-} + +-unit RTSC; attribute (name = 'GPC'); ++unit RTSC; attribute (name = '_p__rts_RTSC'); + + interface + +diff -ru gpc-20040516.orig/p/rts/sets.pas gpc-20040516/p/rts/sets.pas +--- gpc-20040516.orig/p/rts/sets.pas 2004-01-01 00:22:52.000000000 +0100 ++++ gpc-20040516/p/rts/sets.pas 2004-07-06 19:08:51.000000000 +0200 +@@ -40,7 +40,7 @@ + + {$gnu-pascal,I-} { @@ $R- } + +-unit Sets; attribute (name = 'GPC'); ++unit Sets; attribute (name = '_p__rts_Sets'); + + interface + +diff -ru gpc-20040516.orig/p/rts/string1.pas gpc-20040516/p/rts/string1.pas +--- gpc-20040516.orig/p/rts/string1.pas 2004-05-07 16:47:39.000000000 +0200 ++++ gpc-20040516/p/rts/string1.pas 2004-07-06 19:08:51.000000000 +0200 +@@ -32,7 +32,7 @@ + + {$gnu-pascal,I-} + +-unit String1; attribute (name = 'GPC'); ++unit String1; attribute (name = '_p__rts_String1'); + + interface + +diff -ru gpc-20040516.orig/p/rts/string2.pas gpc-20040516/p/rts/string2.pas +--- gpc-20040516.orig/p/rts/string2.pas 2004-05-07 16:48:19.000000000 +0200 ++++ gpc-20040516/p/rts/string2.pas 2004-07-06 19:08:51.000000000 +0200 +@@ -31,7 +31,7 @@ + + {$gnu-pascal,I-} + +-unit String2; attribute (name = 'GPC'); ++unit String2; attribute (name = '_p__rts_String2'); + + interface + +diff -ru gpc-20040516.orig/p/rts/time.pas gpc-20040516/p/rts/time.pas +--- gpc-20040516.orig/p/rts/time.pas 2004-05-07 16:48:27.000000000 +0200 ++++ gpc-20040516/p/rts/time.pas 2004-07-06 19:08:51.000000000 +0200 +@@ -31,7 +31,7 @@ + + {$gnu-pascal,I-} + +-unit Time; attribute (name = 'GPC'); ++unit Time; attribute (name = '_p__rts_Time'); + + interface + +diff -ru gpc-20040516.orig/p/statements.c gpc-20040516/p/statements.c +--- gpc-20040516.orig/p/statements.c 2004-05-12 02:43:34.000000000 +0200 ++++ gpc-20040516/p/statements.c 2004-07-06 19:08:51.000000000 +0200 +@@ -89,7 +89,16 @@ + /* Generate the ASM_OPERANDS insn; store into the TREE_VALUEs of OUTPUTS + some trees for where the values were actually stored. */ + if (outputs || inputs || clobbers) ++#ifndef GCC_3_4 + expand_asm_operands (string, outputs, inputs, clobbers, vol, input_filename, lineno); ++#else ++ { ++ location_t loc_aux; ++ loc_aux.file = input_filename; ++ loc_aux.line = lineno; ++ expand_asm_operands (string, outputs, inputs, clobbers, vol, loc_aux); ++ } ++#endif + else + /* @@ GCC since 20021213 wants: + expand_asm (string, vol); +@@ -103,7 +112,7 @@ + for (i = 0, tail = outputs; tail; tail = TREE_CHAIN (tail), i++) + if (o[i] != TREE_VALUE (tail)) + { +- expand_expr (build_modify_expr (o[i], NOP_EXPR, TREE_VALUE (tail)), 0, VOIDmode, 0); ++ expand_expr_stmt (build_modify_expr (o[i], NOP_EXPR, TREE_VALUE (tail))); + free_temp_slots (); + } + +@@ -814,7 +823,11 @@ + } + + if (TREE_CODE (thing) == VAR_DECL && !DECL_ARTIFICIAL (thing)) ++#ifndef GCC_3_4 + emit_line_note (DECL_SOURCE_FILE (thing), DECL_SOURCE_LINE (thing)); ++#else ++ emit_line_note (DECL_SOURCE_LOCATION (thing)); ++#endif + switch (TREE_CODE (type)) + { + case ARRAY_TYPE: +@@ -1392,9 +1405,19 @@ + check_forward_decls (1); + check_external_objects (current_module->parms); + /* According to the standard the program name is in a separate name +- space, so we use the special name `pascal_main_program'. */ ++ space, so we build a special name for main program. */ ++ /* Does not work when compiled by 2.95.3 + start_implicit_routine (NULL_TREE, get_identifier_with_spelling +- ("pascal_main_program", "main program"), void_type_node, NULL_TREE); ++ (ACONCAT ((IDENTIFIER_POINTER (current_module->assembler_name), ++ "_main_program", NULL)), ++ "main program"), void_type_node, NULL_TREE); ++*/ ++ { ++ char * n = ACONCAT ((IDENTIFIER_POINTER (current_module->assembler_name), ++ "_main_program", NULL)); ++ start_implicit_routine (NULL_TREE, get_identifier_with_spelling ++ (n, "main program"), void_type_node, NULL_TREE); ++ } + do_setjmp (); + } + +@@ -1475,7 +1498,9 @@ + call_no_args (TREE_VALUE (current_module->initializers), 1); + + /* Call the Pascal main program. */ +- call_no_args (get_identifier ("pascal_main_program"), 0); ++ call_no_args (get_identifier ( ACONCAT (( ++ IDENTIFIER_POINTER (current_module->assembler_name), ++ "_main_program" , NULL))), 0); + + /* Call the RTS finalization routine. */ + call_no_args (get_identifier ("_p_finalize"), 1); +@@ -1521,20 +1546,69 @@ + initializers; initializers = TREE_CHAIN (initializers)) + call_no_args (TREE_VALUE (initializers), 1); + ++#define SKIP_WHITE() do { while (*p == ' ' || *p == '\t') p++; } while (0) ++ ++#ifndef EGCS97 ++#define ISIDNUM(c) (isalnum(c)||(c) == '_') ++#endif ++ + if (extra_inits) + { + char *buffer = alloca (strlen (extra_inits) + 1), *p = extra_inits; ++ char module_name_len[23]; + while (*p) + { + char *q = buffer, *name; + tree t; +- while (*p && *p != ',' && *p != ':') ++ SKIP_WHITE(); ++ if (*p == '\'') ++ { ++ p++; ++ while (*p) ++ { ++ if (*p == '\'') ++ { ++ if (*(p+1) == '\'') ++ p++; ++ else ++ break; ++ } ++ *q++ = *p++; ++ } ++ *q = 0; ++ if (*p != '\'') ++ error ("unterminated string in `--init-modules'"); ++ else ++ { ++ p++; ++ } ++ name = ACONCAT ((buffer, "_init", NULL)); ++ } ++ else ++ { ++ while (*p && ISIDNUM (*p)) ++ { + if (q == buffer) ++ { ++ if (*p <= '9' && *p >= '0') ++ error("invalid char in name in `--init-modules'"); + *q++ = TOUPPER (*p++); ++ } + else + *q++ = TOLOWER (*p++); ++ } + *q = 0; +- name = ACONCAT (("init_", buffer, NULL)); ++ sprintf(module_name_len, "%ld_", (long)strlen(buffer)); ++ name = ACONCAT (("_p__M", module_name_len, buffer, "_init", NULL)); ++ } ++ SKIP_WHITE (); ++ if (*p && *p != ',' && *p != ':') ++ { ++ error ("invalid char in name in `--init-modules'"); ++ while (*p && *p != ',' && *p != ':') p++; ++ } ++ if (*p) ++ p++; + /* Don't call our own constructor recursively. This check + is redundant currently, since the run_condition flag + prevents the recursion, anyway, but relying on this +@@ -1545,8 +1619,6 @@ + t = TREE_CHAIN (t); + if (!t) + call_no_args (get_identifier (name), 1); +- if (*p) +- p++; + } + } + extra_inits_used = 1; +diff -ru gpc-20040516.orig/p/test/chief18.pas gpc-20040516/p/test/chief18.pas +--- gpc-20040516.orig/p/test/chief18.pas 2004-07-06 19:16:15.000000000 +0200 ++++ gpc-20040516/p/test/chief18.pas 2002-11-16 21:36:27.000000000 +0100 +@@ -0,0 +1,14 @@ ++{ Qualified identifiers } ++ ++Program Chief18; ++ ++uses ++ one in 'chief18u.pas', ++ two in 'chief18v.pas'; ++ ++begin ++ if positive ( 42 ) and neutral ( 0 ) and negative ( -137 ) then ++ writeln ( 'OK' ) ++ else ++ writeln ( 'failed' ) ++end. +diff -ru gpc-20040516.orig/p/test/dialec5.pas gpc-20040516/p/test/dialec5.pas +--- gpc-20040516.orig/p/test/dialec5.pas 2004-05-14 23:56:16.000000000 +0200 ++++ gpc-20040516/p/test/dialec5.pas 2004-07-06 19:08:51.000000000 +0200 +@@ -8,7 +8,8 @@ + GPC; + {$ifdef HAVE_CRT} + CRT; +- Turbo3; { uses CRT } ++ Turbo3(LowVideo => Turbo3_LowVideo, ++ HighVideo => Turbo3_HighVideo); { uses CRT } + {$endif} + Dos; + DosUnix; +@@ -33,10 +34,14 @@ + {$endif} + Strings; + StringUtils; +- System; ++ System (MaxLongInt => System_MaxLongInt, ++ MemAvail => System_MemAvail, { Memavail is in Turbo3 } ++ MaxAvail => System_MaxAvail); { ditto } + TFDD; + Trap; +- WinDos; ++ WinDos (FindFirst => WinDos_FindFirst, ++ FindNext => WinDos_FindNext, ++ FindClose => WinDos_FindClose); + Dialec5u; + + begin +diff -ru gpc-20040516.orig/p/test/err1.pas gpc-20040516/p/test/err1.pas +--- gpc-20040516.orig/p/test/err1.pas 2004-07-06 19:19:33.000000000 +0200 ++++ gpc-20040516/p/test/err1.pas 2004-07-06 19:08:51.000000000 +0200 +@@ -0,0 +1,3 @@ ++# 1 "error1.pas" 1 ++{ FLAG -x Preprocessed-Pascal } ++{ WRONG } +diff -ru gpc-20040516.orig/p/test/fjf260a.pas gpc-20040516/p/test/fjf260a.pas +--- gpc-20040516.orig/p/test/fjf260a.pas 2004-07-06 19:16:15.000000000 +0200 ++++ gpc-20040516/p/test/fjf260a.pas 2002-11-16 21:32:20.000000000 +0100 +@@ -0,0 +1,14 @@ ++{ Qualified identifiers } ++ ++program fjf260a; ++ ++uses fjf260u; ++ ++procedure foo; ++begin ++ writeln ('OK') ++end; ++ ++begin ++ foo ++end. +diff -ru gpc-20040516.orig/p/test/fjf260b.pas gpc-20040516/p/test/fjf260b.pas +--- gpc-20040516.orig/p/test/fjf260b.pas 2004-07-06 19:16:15.000000000 +0200 ++++ gpc-20040516/p/test/fjf260b.pas 2002-11-16 21:32:17.000000000 +0100 +@@ -0,0 +1,9 @@ ++{ Qualified identifiers } ++ ++program fjf260b; ++ ++uses fjf260v, fjf260w; ++ ++begin ++ foo ++end. +diff -ru gpc-20040516.orig/p/test/fjf561.pas gpc-20040516/p/test/fjf561.pas +--- gpc-20040516.orig/p/test/fjf561.pas 2002-09-23 09:39:12.000000000 +0200 ++++ gpc-20040516/p/test/fjf561.pas 2004-07-06 19:08:51.000000000 +0200 +@@ -3,5 +3,5 @@ + uses fjf561u; + + begin +- WriteLn (fjf561u) ++ WriteLn (fjf561u) { WRONG } + end. +diff -ru gpc-20040516.orig/p/test/fjf561u.pas gpc-20040516/p/test/fjf561u.pas +--- gpc-20040516.orig/p/test/fjf561u.pas 2002-09-23 09:39:12.000000000 +0200 ++++ gpc-20040516/p/test/fjf561u.pas 2004-07-06 19:08:51.000000000 +0200 +@@ -3,7 +3,7 @@ + interface + + const +- fjf561u = 'OK'; ++ fjf561u = 'failed'; + + implementation + +diff -ru gpc-20040516.orig/p/test/fjf921a.pas gpc-20040516/p/test/fjf921a.pas +--- gpc-20040516.orig/p/test/fjf921a.pas 2004-07-06 19:16:15.000000000 +0200 ++++ gpc-20040516/p/test/fjf921a.pas 2004-04-07 20:14:29.000000000 +0200 +@@ -0,0 +1,7 @@ ++program fjf921a; ++ ++import fjf921m; { WRONG } ++ ++begin ++ ++end. +diff -ru gpc-20040516.orig/p/test/fjf921b.pas gpc-20040516/p/test/fjf921b.pas +--- gpc-20040516.orig/p/test/fjf921b.pas 2004-07-06 19:16:15.000000000 +0200 ++++ gpc-20040516/p/test/fjf921b.pas 2004-04-07 20:41:25.000000000 +0200 +@@ -0,0 +1,7 @@ ++program fjf921b; ++ ++import fjf921n; ++ ++begin ++ WriteLn (a) ++end. +diff -ru gpc-20040516.orig/p/test/fjf921c2.pas gpc-20040516/p/test/fjf921c2.pas +--- gpc-20040516.orig/p/test/fjf921c2.pas 2004-07-06 19:16:15.000000000 +0200 ++++ gpc-20040516/p/test/fjf921c2.pas 2004-04-07 20:39:00.000000000 +0200 +@@ -0,0 +1,7 @@ ++program fjf921c2; ++ ++import fjf921o; ++ ++begin ++ WriteLn ('failed ', a) { WRONG } ++end. +diff -ru gpc-20040516.orig/p/test/fjf921c.pas gpc-20040516/p/test/fjf921c.pas +--- gpc-20040516.orig/p/test/fjf921c.pas 2004-07-06 19:16:15.000000000 +0200 ++++ gpc-20040516/p/test/fjf921c.pas 2004-04-07 20:38:36.000000000 +0200 +@@ -0,0 +1,7 @@ ++program fjf921c; ++ ++import fjf921o; ++ ++begin ++ if b = c then WriteLn (b) else WriteLn ('failed') ++end. +diff -ru gpc-20040516.orig/p/test/fjf921d.pas gpc-20040516/p/test/fjf921d.pas +--- gpc-20040516.orig/p/test/fjf921d.pas 2004-07-06 19:16:15.000000000 +0200 ++++ gpc-20040516/p/test/fjf921d.pas 2004-04-13 19:26:42.000000000 +0200 +@@ -0,0 +1,7 @@ ++program fjf921d; ++ ++import fjf921p; ++ ++begin ++ if b = a then WriteLn (b) else WriteLn ('failed') ++end. +diff -ru gpc-20040516.orig/p/test/fjf921e2.pas gpc-20040516/p/test/fjf921e2.pas +--- gpc-20040516.orig/p/test/fjf921e2.pas 2004-07-06 19:16:15.000000000 +0200 ++++ gpc-20040516/p/test/fjf921e2.pas 2004-04-15 03:23:38.000000000 +0200 +@@ -0,0 +1,7 @@ ++program fjf921e2; ++ ++import fjf921q; ++ ++begin ++ WriteLn ('failed ', a) { WRONG } ++end. +diff -ru gpc-20040516.orig/p/test/fjf921e.pas gpc-20040516/p/test/fjf921e.pas +--- gpc-20040516.orig/p/test/fjf921e.pas 2004-07-06 19:16:15.000000000 +0200 ++++ gpc-20040516/p/test/fjf921e.pas 2004-04-15 03:23:26.000000000 +0200 +@@ -0,0 +1,7 @@ ++program fjf921e; ++ ++import fjf921q; ++ ++begin ++ WriteLn (b) ++end. +diff -ru gpc-20040516.orig/p/test/fjf921f.pas gpc-20040516/p/test/fjf921f.pas +--- gpc-20040516.orig/p/test/fjf921f.pas 2004-07-06 19:16:15.000000000 +0200 ++++ gpc-20040516/p/test/fjf921f.pas 2004-05-05 11:36:35.000000000 +0200 +@@ -0,0 +1,7 @@ ++program fjf921f; ++ ++import fjf921r2; ++ ++begin ++ if b = Succ (a) then WriteLn ('OK') else WriteLn ('failed') ++end. +diff -ru gpc-20040516.orig/p/test/fjf921g2.pas gpc-20040516/p/test/fjf921g2.pas +--- gpc-20040516.orig/p/test/fjf921g2.pas 2004-07-06 19:16:15.000000000 +0200 ++++ gpc-20040516/p/test/fjf921g2.pas 2004-05-05 11:29:44.000000000 +0200 +@@ -0,0 +1,7 @@ ++program fjf921g2; ++ ++import fjf921s2; ++ ++begin ++ WriteLn ('failed ', Ord (c)) { WRONG } ++end. +diff -ru gpc-20040516.orig/p/test/fjf921g.pas gpc-20040516/p/test/fjf921g.pas +--- gpc-20040516.orig/p/test/fjf921g.pas 2004-07-06 19:16:15.000000000 +0200 ++++ gpc-20040516/p/test/fjf921g.pas 2004-05-05 11:29:28.000000000 +0200 +@@ -0,0 +1,7 @@ ++program fjf921g; ++ ++import fjf921s2; ++ ++begin ++ if b = Succ (a) then WriteLn ('OK') else WriteLn ('failed') ++end. +diff -ru gpc-20040516.orig/p/test/fjf921h.pas gpc-20040516/p/test/fjf921h.pas +--- gpc-20040516.orig/p/test/fjf921h.pas 2004-07-06 19:16:15.000000000 +0200 ++++ gpc-20040516/p/test/fjf921h.pas 2004-05-05 11:31:16.000000000 +0200 +@@ -0,0 +1,6 @@ ++program fjf921h; ++ ++import fjf921t2; { WRONG } ++ ++begin ++end. +diff -ru gpc-20040516.orig/p/test/fjf921i2.pas gpc-20040516/p/test/fjf921i2.pas +--- gpc-20040516.orig/p/test/fjf921i2.pas 2004-07-06 19:16:15.000000000 +0200 ++++ gpc-20040516/p/test/fjf921i2.pas 2004-07-06 19:59:23.000000000 +0200 +@@ -0,0 +1,8 @@ ++{ FLAG --extended-pascal } ++program fjf921i2; ++ ++import fjf921u; ++ ++begin ++ WriteLn ('failed') { WRONG since `Output' is not implicitly accessble } ++end. +Only in gpc-20040516/p/test: fjf921i2.pas~ +diff -ru gpc-20040516.orig/p/test/fjf921i.pas gpc-20040516/p/test/fjf921i.pas +--- gpc-20040516.orig/p/test/fjf921i.pas 2004-07-06 19:16:15.000000000 +0200 ++++ gpc-20040516/p/test/fjf921i.pas 2004-05-05 11:32:32.000000000 +0200 +@@ -0,0 +1,7 @@ ++program fjf921i; ++ ++import fjf921u; ++ ++begin ++ WriteLn (Output, 'OK') ++end. +diff -ru gpc-20040516.orig/p/test/fjf921j2.pas gpc-20040516/p/test/fjf921j2.pas +--- gpc-20040516.orig/p/test/fjf921j2.pas 2004-07-06 19:16:15.000000000 +0200 ++++ gpc-20040516/p/test/fjf921j2.pas 2004-07-06 20:11:03.000000000 +0200 +@@ -0,0 +1,8 @@ ++{ FLAG --extended-pascal } ++program fjf921j2; ++ ++import fjf921v; ++ ++begin ++ WriteLn (Output, 'failed') { WRONG } ++end. +Only in gpc-20040516/p/test: fjf921j2.pas~ +diff -ru gpc-20040516.orig/p/test/fjf921j3.pas gpc-20040516/p/test/fjf921j3.pas +--- gpc-20040516.orig/p/test/fjf921j3.pas 2004-07-06 19:16:15.000000000 +0200 ++++ gpc-20040516/p/test/fjf921j3.pas 2004-07-06 20:00:03.000000000 +0200 +@@ -0,0 +1,8 @@ ++{ FLAG --extended-pascal } ++program fjf921j3; ++ ++import fjf921v; ++ ++begin ++ WriteLn ('failed') { WRONG since `Output' is not implicitly accessble } ++end. +Only in gpc-20040516/p/test: fjf921j3.pas~ +diff -ru gpc-20040516.orig/p/test/fjf921j.pas gpc-20040516/p/test/fjf921j.pas +--- gpc-20040516.orig/p/test/fjf921j.pas 2004-07-06 19:16:15.000000000 +0200 ++++ gpc-20040516/p/test/fjf921j.pas 2004-05-05 11:33:32.000000000 +0200 +@@ -0,0 +1,7 @@ ++program fjf921j; ++ ++import fjf921v; ++ ++begin ++ WriteLn (Foo, 'OK') ++end. +diff -ru gpc-20040516.orig/p/test/fjf921k.pas gpc-20040516/p/test/fjf921k.pas +--- gpc-20040516.orig/p/test/fjf921k.pas 2004-07-06 19:16:15.000000000 +0200 ++++ gpc-20040516/p/test/fjf921k.pas 2004-05-05 11:35:00.000000000 +0200 +@@ -0,0 +1,6 @@ ++program fjf921k; ++ ++import fjf921w; { WRONG } ++ ++begin ++end. +diff -ru gpc-20040516.orig/p/test/gpcu_c_c.c gpc-20040516/p/test/gpcu_c_c.c +--- gpc-20040516.orig/p/test/gpcu_c_c.c 2004-03-23 09:04:32.000000000 +0100 ++++ gpc-20040516/p/test/gpcu_c_c.c 2004-07-06 19:08:51.000000000 +0200 +@@ -32,7 +32,7 @@ + + /* External declarations we use from the Pascal code */ + +-extern void init_Gpcu_c_unit (); ++extern void _p__M11_Gpcu_c_unit_init (); + + extern int pascal_unit_variable; + extern void pascal_unit_routine (); +@@ -56,7 +56,7 @@ + + printf ("Calling the Pascal initializers.\n"); + fflush (stdout); +- init_Gpcu_c_unit (); ++ _p__M11_Gpcu_c_unit_init (); + + printf ("Back in C `main'.\n"); + printf ("Incrementing pascal_unit_variable.\n"); +diff -ru gpc-20040516.orig/p/test/grp1.pas gpc-20040516/p/test/grp1.pas +--- gpc-20040516.orig/p/test/grp1.pas 2004-07-06 19:16:15.000000000 +0200 ++++ gpc-20040516/p/test/grp1.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -0,0 +1,12 @@ ++{$extended-pascal} ++program grp1(input, output); ++ ++{Undetected import error. Type identifer 't1' imported through grp1b ++does not denote the same type as type identifier 't1' imported through ++grp1a.} ++ ++import grp1a; grp1b; { WRONG } ++ ++begin ++writeln('FAIL'); ++end. +diff -ru gpc-20040516.orig/p/test/kurzw1.pas gpc-20040516/p/test/kurzw1.pas +--- gpc-20040516.orig/p/test/kurzw1.pas 2004-07-06 19:16:15.000000000 +0200 ++++ gpc-20040516/p/test/kurzw1.pas 2002-11-16 21:31:15.000000000 +0100 +@@ -0,0 +1,19 @@ ++{ Qualified identifiers } ++ ++program kurzw1; ++ ++uses kurzw1u; ++ ++procedure foo (i : integer); ++begin ++ if i = 42 then WriteLn ('OK') else WriteLn ('failed') ++end; ++ ++procedure bar; ++begin ++ foo (42) ++end; ++ ++begin ++ bar ++end. +diff -ru gpc-20040516.orig/p/test/mod10.pas gpc-20040516/p/test/mod10.pas +--- gpc-20040516.orig/p/test/mod10.pas 2004-07-06 19:16:15.000000000 +0200 ++++ gpc-20040516/p/test/mod10.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -0,0 +1,10 @@ ++program Test(output); ++ ++import ++ ModT10A qualified in 'mod10a.pas'; ++ ModT10B qualified in 'mod10b.pas'; { `qualified' not yet supported } ++ ++begin ++ i := -9; { WRONG } ++ writeln('failed'); ++end. +diff -ru gpc-20040516.orig/p/test/mod13.pas gpc-20040516/p/test/mod13.pas +--- gpc-20040516.orig/p/test/mod13.pas 2004-07-06 19:17:58.000000000 +0200 ++++ gpc-20040516/p/test/mod13.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -0,0 +1,16 @@ ++program qualid1(Output); ++import mod13u; mod13v; ++var fail : boolean; ++begin ++ fail := false; ++ if (v1 <> 1) or (v2 <> 2) then begin ++ writeln('failed1'); ++ fail := true; ++ end; ++ if f1 or f2 then begin ++ writeln('failed2'); ++ fail := true; ++ end; ++ if not fail then writeln('OK') ++end ++. +diff -ru gpc-20040516.orig/p/test/mod13u1.pas gpc-20040516/p/test/mod13u1.pas +--- gpc-20040516.orig/p/test/mod13u1.pas 2004-07-06 19:17:58.000000000 +0200 ++++ gpc-20040516/p/test/mod13u1.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -0,0 +1,13 @@ ++module mod13u1; ++export mod13u1=(v2, f2); ++var v2 : integer; ++function f2: boolean; ++end; ++function f2: boolean; ++begin ++ f2 := true ++end; ++to begin do ++ v2 := 12; ++end. ++ +diff -ru gpc-20040516.orig/p/test/mod13u.pas gpc-20040516/p/test/mod13u.pas +--- gpc-20040516.orig/p/test/mod13u.pas 2004-07-06 19:17:58.000000000 +0200 ++++ gpc-20040516/p/test/mod13u.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -0,0 +1,14 @@ ++module mod13u; ++export mod13u=(v1, f1); ++var v1 : integer; ++function f1: boolean; ++end; ++import mod13u1; ++function f1: boolean; ++begin ++ f1 := (not f2) or (v2<>12) ++end; ++to begin do ++ v1 := 1; ++end. ++ +diff -ru gpc-20040516.orig/p/test/mod13v1.pas gpc-20040516/p/test/mod13v1.pas +--- gpc-20040516.orig/p/test/mod13v1.pas 2004-07-06 19:17:58.000000000 +0200 ++++ gpc-20040516/p/test/mod13v1.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -0,0 +1,13 @@ ++module mod13v1; ++export mod13v1=(v1, f1); ++var v1 : integer; ++function f1: boolean; ++end; ++function f1: boolean; ++begin ++ f1:= true ++end; ++to begin do ++ v1:=11; ++end. ++ +diff -ru gpc-20040516.orig/p/test/mod13v.pas gpc-20040516/p/test/mod13v.pas +--- gpc-20040516.orig/p/test/mod13v.pas 2004-07-06 19:17:58.000000000 +0200 ++++ gpc-20040516/p/test/mod13v.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -0,0 +1,14 @@ ++module mod13v; ++export mod13v=(v2, f2); ++var v2 : integer; ++function f2: boolean; ++end; ++import mod13v1; ++function f2: boolean; ++begin ++ f2:= (not f1) or (v1<>11) ++end; ++to begin do ++ v2:=2; ++end. ++ +diff -ru gpc-20040516.orig/p/test/mod14.pas gpc-20040516/p/test/mod14.pas +--- gpc-20040516.orig/p/test/mod14.pas 2004-07-06 19:17:58.000000000 +0200 ++++ gpc-20040516/p/test/mod14.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -0,0 +1,64 @@ ++program mod14(Output); ++{ FLAG -Wno-warnings } ++import mod14u; ++procedure p0; external name '_p__M6_Mod14v_S0_Pf'; ++procedure p1; external name '_p__M6_Mod14v_S1_myob1_Pb'; ++procedure p2; external name '_p__M6_Mod14v_S2_myob1_P'; ++procedure p3; external name '_p__M6_Mod14v_S3_myob1_Q'; ++function f5 (u, v: integer): integer; ++ external name '_p__M6_Mod14v_S5_Foo_op_Integer_Integer'; ++function f6 (u: integer; v: integer): integer; ++ external name '_p__M6_Mod14v_S6_Foo_op_Myob1_Integer'; ++var ++v7: integer; external name '_p__M6_Mod14v_S7_Ob1a'; ++v8: integer; external name '_p__M6_Mod14v_S8_Ob1b'; ++v9: integer; external name '_p__M6_Mod14v_S9_Ob1c'; ++v10: integer; external name '_p__M6_Mod14v_S10_Va'; ++v11: integer; external name '_p__M6_Mod14v_S11_Vb'; ++v12: integer; external name '_p__M6_Mod14v_S12_Vc'; ++ ++procedure p14; external name '_p__M6_Mod14v_S14_myob2_R'; ++procedure p15; external name '_p__M6_Mod14v_S15_myob2_Q'; ++procedure p16; external name '_p__M6_Mod14v_S16_myob2_P'; ++procedure p17; external name '_p__M6_Mod14v_S17_myob2_S'; ++ ++procedure p19; external name '_p__M6_Mod14v_S19_myob3_P0'; ++procedure p20; external name '_p__M6_Mod14v_S20_myob3_P'; ++procedure p21; external name '_p__M6_Mod14v_S21_myob3_Q'; ++procedure p22; external name '_p__M6_Mod14v_S22_myob3_R'; ++procedure p23; external name '_p__M6_Mod14v_S23_myob3_S'; ++ ++function f25 (u, v: integer): integer; ++ external name '_p__M6_Mod14v_S25_Foo_op_Myob2_Myob3'; ++ ++procedure p26 (function f(u, v: integer): integer); ++ external name '_p__M6_Mod14v_S26_Take'; ++ ++begin ++p26(f25); ++p26(f6); ++p26(f5); ++p23; ++p22; ++p21; ++p20; ++p19; ++p17; ++p16; ++p15; ++p14; ++p3; ++p2; ++p1; ++p0; ++v10 := 5; ++v11 := f5 (v7, v10); ++v12 := f5 (v8, v11); ++v10 := f5 (v9, 7); ++if (v10 = 7) and (v12 = 5) then ++ writeln('OK') ++else ++ writeln('failed') ++end ++. ++ +diff -ru gpc-20040516.orig/p/test/mod14u.pas gpc-20040516/p/test/mod14u.pas +--- gpc-20040516.orig/p/test/mod14u.pas 2004-07-06 19:17:58.000000000 +0200 ++++ gpc-20040516/p/test/mod14u.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -0,0 +1,7 @@ ++module mod14u; ++export mod14u=(dummy); ++const dummy = 'dummy'; ++end; ++import mod14v; ++end ++. +diff -ru gpc-20040516.orig/p/test/mod14v.pas gpc-20040516/p/test/mod14v.pas +--- gpc-20040516.orig/p/test/mod14v.pas 2004-07-06 19:17:58.000000000 +0200 ++++ gpc-20040516/p/test/mod14v.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -0,0 +1,102 @@ ++module mod14v; ++export mod14v=(dummy2); ++const dummy2='dummy2'; ++procedure pf; forward; ++type ++myob1 = object ++ procedure pb; ++ procedure p; virtual; ++ procedure q; virtual; ++end; ++ ++operator foo_op (u, v: integer) w : integer; ++ ++operator foo_op (u: myob1; v: integer) w : integer; ++ ++var ob1a, ob1b, ob1c : myob1; ++ ++var va, vb , vc : integer; ++ ++type ++myob2 = object (myob1) ++ ptr : ^myob3; ++ procedure p0; ++ procedure r; virtual; ++ procedure q; virtual; ++ procedure p; virtual; ++ procedure s; ++end; ++myob3 = object (myob2) ++ procedure p0; ++ procedure p; virtual; ++ procedure q; virtual; ++ procedure r; virtual; ++ procedure s; ++end; ++ ++operator foo_op (u: myob2; v: myob3) w : myob3; ++ ++procedure take(procedure p); ++end; ++{ implementation } ++procedure take(procedure p); ++begin ++end; ++operator foo_op (u: myob2; v : myob3) w : myob3; ++begin ++ w := u.ptr^ ++end; ++operator foo_op (u: myob1; v: integer) w : integer; ++begin ++ w := v ++end; ++operator foo_op (u, v: integer) w : integer; ++begin ++ w := v ++end; ++procedure pf; ++begin ++end; ++procedure myob1.pb; ++begin ++end; ++procedure myob1.p; ++begin ++end; ++procedure myob1.q; ++begin ++end; ++procedure myob2.p0; ++begin ++end; ++procedure myob2.p; ++begin ++end; ++procedure myob2.q; ++begin ++end; ++procedure myob2.s; ++begin ++end; ++procedure myob2.r; ++begin ++end; ++ ++procedure myob3.p0; ++begin ++end; ++procedure myob3.p; ++begin ++end; ++procedure myob3.q; ++begin ++end; ++procedure myob3.s; ++begin ++end; ++procedure myob3.r; ++begin ++end; ++ ++end ++. +diff -ru gpc-20040516.orig/p/test/mod15a.pas gpc-20040516/p/test/mod15a.pas +--- gpc-20040516.orig/p/test/mod15a.pas 2004-07-06 19:17:58.000000000 +0200 ++++ gpc-20040516/p/test/mod15a.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -0,0 +1,8 @@ ++program mod15a; ++ import e1 qualified in 'mod15m.pas'; ++var x : integer; ++begin ++ x := 1; ++ writeln('OK') ++end ++. +diff -ru gpc-20040516.orig/p/test/mod15b.pas gpc-20040516/p/test/mod15b.pas +--- gpc-20040516.orig/p/test/mod15b.pas 2004-07-06 19:17:58.000000000 +0200 ++++ gpc-20040516/p/test/mod15b.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -0,0 +1,7 @@ ++program mod15b; ++ import e1 qualified in 'mod15m.pas'; ++begin ++ e1.x := 1; ++ e1.f(1) ++end ++. +diff -ru gpc-20040516.orig/p/test/mod15c.pas gpc-20040516/p/test/mod15c.pas +--- gpc-20040516.orig/p/test/mod15c.pas 2004-07-06 19:17:58.000000000 +0200 ++++ gpc-20040516/p/test/mod15c.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -0,0 +1,13 @@ ++program mod15c; ++const x = 'OK'; ++procedure p1; ++ import e1 in 'mod15m.pas'; ++begin ++ x := 1; ++ f(1) ++end; ++begin ++ writeln(x) ++end ++. ++ +diff -ru gpc-20040516.orig/p/test/mod15d.pas gpc-20040516/p/test/mod15d.pas +--- gpc-20040516.orig/p/test/mod15d.pas 2004-07-06 19:17:58.000000000 +0200 ++++ gpc-20040516/p/test/mod15d.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -0,0 +1,14 @@ ++program mod15d; ++const x = 'OK'; ++procedure p1; ++ import e1 in 'mod15m.pas'; ++begin ++ x := 1; ++ f(2) ++end; ++begin ++ p1; ++ e1.x := 3; { WRONG } ++end ++. ++ +diff -ru gpc-20040516.orig/p/test/mod15e.pas gpc-20040516/p/test/mod15e.pas +--- gpc-20040516.orig/p/test/mod15e.pas 2004-07-06 19:17:58.000000000 +0200 ++++ gpc-20040516/p/test/mod15e.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -0,0 +1,18 @@ ++program mod15e; ++const x = 'Dummy'; ++procedure p1; ++ import e1 in 'mod15m.pas'; ++begin ++ x := 1; ++end; ++procedure p2; ++ import e1 in 'mod15m.pas'; ++begin ++ f(1) ++end; ++begin ++ p1; ++ p2 ++end ++. ++ +diff -ru gpc-20040516.orig/p/test/mod15f.pas gpc-20040516/p/test/mod15f.pas +--- gpc-20040516.orig/p/test/mod15f.pas 2004-07-06 19:17:58.000000000 +0200 ++++ gpc-20040516/p/test/mod15f.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -0,0 +1,8 @@ ++program mod15f; ++ import e1 qualified in 'mod15m.pas'; ++var e1 : integer; { WRONG } ++begin ++ writeln('failed') ++end ++. ++ +diff -ru gpc-20040516.orig/p/test/mod15g.pas gpc-20040516/p/test/mod15g.pas +--- gpc-20040516.orig/p/test/mod15g.pas 2004-07-06 19:17:58.000000000 +0200 ++++ gpc-20040516/p/test/mod15g.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -0,0 +1,8 @@ ++program mod15g; ++ import e1 qualified in 'mod15m.pas'; ++begin ++ e1 := 1; { WRONG } ++ writeln('failed') ++end ++. ++ +diff -ru gpc-20040516.orig/p/test/mod15h.pas gpc-20040516/p/test/mod15h.pas +--- gpc-20040516.orig/p/test/mod15h.pas 2004-07-06 19:17:58.000000000 +0200 ++++ gpc-20040516/p/test/mod15h.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -0,0 +1,8 @@ ++program mod1; ++ import e1 only(x) in 'mod15m.pas'; ++begin ++ x := 1; ++ e1.f(2) { WRONG } ++end ++. ++ +diff -ru gpc-20040516.orig/p/test/mod15m.pas gpc-20040516/p/test/mod15m.pas +--- gpc-20040516.orig/p/test/mod15m.pas 2004-07-06 19:17:58.000000000 +0200 ++++ gpc-20040516/p/test/mod15m.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -0,0 +1,15 @@ ++module m15m; ++ export e1 = (x, f); ++ var x : integer; ++ procedure f(y : integer); ++end; ++procedure f(y : integer); ++begin ++ if x = y then ++ writeln('OK') ++ else ++ writeln('failed') ++end; ++end ++. ++ +diff -ru gpc-20040516.orig/p/test/mod16a.pas gpc-20040516/p/test/mod16a.pas +--- gpc-20040516.orig/p/test/mod16a.pas 2004-07-06 19:17:58.000000000 +0200 ++++ gpc-20040516/p/test/mod16a.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -0,0 +1,6 @@ ++program mod16a(output); ++import mod16m; mod16m1; ++begin ++ writeln('OK') ++end ++. +diff -ru gpc-20040516.orig/p/test/mod16b.pas gpc-20040516/p/test/mod16b.pas +--- gpc-20040516.orig/p/test/mod16b.pas 2004-07-06 19:18:40.000000000 +0200 ++++ gpc-20040516/p/test/mod16b.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -0,0 +1,6 @@ ++program mod16b(output); ++import mod16m; mod16m1 only (ci => ce); { WRONG } ++begin ++ writeln('failed') ++end ++. +diff -ru gpc-20040516.orig/p/test/mod16c.pas gpc-20040516/p/test/mod16c.pas +--- gpc-20040516.orig/p/test/mod16c.pas 2004-07-06 19:18:40.000000000 +0200 ++++ gpc-20040516/p/test/mod16c.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -0,0 +1,6 @@ ++program mod16c(output); ++import mod16m; mod16m1 only (te => ts); { WRONG } ++begin ++ writeln('failed') ++end ++. +diff -ru gpc-20040516.orig/p/test/mod16d.pas gpc-20040516/p/test/mod16d.pas +--- gpc-20040516.orig/p/test/mod16d.pas 2004-07-06 19:18:40.000000000 +0200 ++++ gpc-20040516/p/test/mod16d.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -0,0 +1,6 @@ ++program mod16d(output); ++import mod16m; mod16m1 only (ve => vs); { WRONG } ++begin ++ writeln('failed') ++end ++. +diff -ru gpc-20040516.orig/p/test/mod16e.pas gpc-20040516/p/test/mod16e.pas +--- gpc-20040516.orig/p/test/mod16e.pas 2004-07-06 19:18:40.000000000 +0200 ++++ gpc-20040516/p/test/mod16e.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -0,0 +1,6 @@ ++program mod16e(output); ++import mod16m; mod16m1 only (pe => ps); { WRONG } ++begin ++ writeln('failed') ++end ++. +diff -ru gpc-20040516.orig/p/test/mod16m1.pas gpc-20040516/p/test/mod16m1.pas +--- gpc-20040516.orig/p/test/mod16m1.pas 2004-07-06 19:18:40.000000000 +0200 ++++ gpc-20040516/p/test/mod16m1.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -0,0 +1,6 @@ ++module mod16m1; ++ export mod16m1 = (ci, ce, te, ts, ve, vs, pe, ps); ++ import mod16m; ++end; ++end ++. +diff -ru gpc-20040516.orig/p/test/mod16m.pas gpc-20040516/p/test/mod16m.pas +--- gpc-20040516.orig/p/test/mod16m.pas 2004-07-06 19:18:40.000000000 +0200 ++++ gpc-20040516/p/test/mod16m.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -0,0 +1,19 @@ ++module mod16m; ++ export mod16m = (ci, ce, te, ts, ve, vs, pe, ps); ++type te = (a, b, c, d); ++ tc = (ca, ce, cf); ++ ts = set of tc; ++const ci = 15; ++var ve : te; ++ vs : ts; ++procedure pe (x : te); ++procedure ps (x : ts); ++end; ++procedure pe; ++begin ++end; ++procedure ps; ++begin ++end; ++end ++. +diff -ru gpc-20040516.orig/p/test/mod17a.pas gpc-20040516/p/test/mod17a.pas +--- gpc-20040516.orig/p/test/mod17a.pas 2004-07-06 23:01:29.000000000 +0200 ++++ gpc-20040516/p/test/mod17a.pas 2004-05-24 18:07:41.000000000 +0200 +@@ -0,0 +1,5 @@ ++program mod17a; ++ import mod17v2; {WRONG} ++begin ++end ++. +diff -ru gpc-20040516.orig/p/test/mod17b.pas gpc-20040516/p/test/mod17b.pas +--- gpc-20040516.orig/p/test/mod17b.pas 2004-07-06 23:01:29.000000000 +0200 ++++ gpc-20040516/p/test/mod17b.pas 2004-05-24 19:29:05.000000000 +0200 +@@ -0,0 +1,5 @@ ++program mod17b; ++ import mod17v4; {WRONG} ++begin ++end ++. +diff -ru gpc-20040516.orig/p/test/mod17c.pas gpc-20040516/p/test/mod17c.pas +--- gpc-20040516.orig/p/test/mod17c.pas 2004-07-06 23:01:29.000000000 +0200 ++++ gpc-20040516/p/test/mod17c.pas 2004-05-24 19:28:55.000000000 +0200 +@@ -0,0 +1,5 @@ ++program mod17c; ++ import mod17v6; {WRONG} ++begin ++end ++. +diff -ru gpc-20040516.orig/p/test/mod17d.pas gpc-20040516/p/test/mod17d.pas +--- gpc-20040516.orig/p/test/mod17d.pas 2004-07-06 23:01:29.000000000 +0200 ++++ gpc-20040516/p/test/mod17d.pas 2004-05-24 20:09:57.000000000 +0200 +@@ -0,0 +1,6 @@ ++program mod17c (Output); ++ import mod17w3; ++begin ++ writeln ('OK') ++end ++. +diff -ru gpc-20040516.orig/p/test/mod17v1.pas gpc-20040516/p/test/mod17v1.pas +--- gpc-20040516.orig/p/test/mod17v1.pas 2004-07-06 23:01:29.000000000 +0200 ++++ gpc-20040516/p/test/mod17v1.pas 2004-05-24 18:35:32.000000000 +0200 +@@ -0,0 +1,6 @@ ++module mod17v1; ++ export mod17v1 = (a => a, b); ++ type t = (a, b); ++end; ++end ++. +diff -ru gpc-20040516.orig/p/test/mod17v2.pas gpc-20040516/p/test/mod17v2.pas +--- gpc-20040516.orig/p/test/mod17v2.pas 2004-07-06 23:01:29.000000000 +0200 ++++ gpc-20040516/p/test/mod17v2.pas 2004-05-24 18:35:16.000000000 +0200 +@@ -0,0 +1,6 @@ ++module mod17v2; ++ export mod17v2 = (a .. b); { WRONG } ++ import mod17v1; ++end; ++end ++. +diff -ru gpc-20040516.orig/p/test/mod17v3.pas gpc-20040516/p/test/mod17v3.pas +--- gpc-20040516.orig/p/test/mod17v3.pas 2004-07-06 23:01:29.000000000 +0200 ++++ gpc-20040516/p/test/mod17v3.pas 2004-05-24 18:39:14.000000000 +0200 +@@ -0,0 +1,6 @@ ++module mod17v3; ++ export mod17v3 = (a => c, b => d); ++ type t = (a, b); ++end; ++end ++. +diff -ru gpc-20040516.orig/p/test/mod17v4.pas gpc-20040516/p/test/mod17v4.pas +--- gpc-20040516.orig/p/test/mod17v4.pas 2004-07-06 23:01:29.000000000 +0200 ++++ gpc-20040516/p/test/mod17v4.pas 2004-05-24 18:38:54.000000000 +0200 +@@ -0,0 +1,8 @@ ++module mod17v2; ++ export mod17v4 = (a .. b); { WRONG } ++ import mod17v3; ++ const a = c; ++ b = d; ++end; ++end ++. +diff -ru gpc-20040516.orig/p/test/mod17v5.pas gpc-20040516/p/test/mod17v5.pas +--- gpc-20040516.orig/p/test/mod17v5.pas 2004-07-06 23:01:29.000000000 +0200 ++++ gpc-20040516/p/test/mod17v5.pas 2004-05-24 19:27:30.000000000 +0200 +@@ -0,0 +1,6 @@ ++module mod17v5; ++ export mod17v5 = (a, b); ++ type t = (a, b); ++end; ++end ++. +diff -ru gpc-20040516.orig/p/test/mod17v6.pas gpc-20040516/p/test/mod17v6.pas +--- gpc-20040516.orig/p/test/mod17v6.pas 2004-07-06 23:01:29.000000000 +0200 ++++ gpc-20040516/p/test/mod17v6.pas 2004-05-24 19:28:17.000000000 +0200 +@@ -0,0 +1,6 @@ ++module mod17v6; ++ export mod17v6 = (mod17v5.a .. mod17v5.b); { WRONG } ++ import qualified mod17v5; ++end; ++end ++. +diff -ru gpc-20040516.orig/p/test/mod17w1.pas gpc-20040516/p/test/mod17w1.pas +--- gpc-20040516.orig/p/test/mod17w1.pas 2004-07-06 23:01:29.000000000 +0200 ++++ gpc-20040516/p/test/mod17w1.pas 2004-05-24 20:26:24.000000000 +0200 +@@ -0,0 +1,10 @@ ++module mod17w1; ++ export mod17w1 = (wa => wa, wb); ++ w1i2 = (mod17v5.a, mod17v5.b); ++ w1i3 = (wa); ++ w1i4 = (wb => bb); ++ import mod17v5 qualified; ++ type t = (wa, wb); ++end; ++end ++. +diff -ru gpc-20040516.orig/p/test/mod17w2.pas gpc-20040516/p/test/mod17w2.pas +--- gpc-20040516.orig/p/test/mod17w2.pas 2004-07-06 23:01:29.000000000 +0200 ++++ gpc-20040516/p/test/mod17w2.pas 2004-05-24 20:08:58.000000000 +0200 +@@ -0,0 +1,9 @@ ++module mod17w2; ++ export mod17w2 = (wa .. wb); ++ w2i2 = (a .. b); ++ w2i3 = (wb); ++ w2i4 = (wa => a, wb => b); ++ import mod17w1; w1i2 in 'mod17w1.pas'; w1i3 in 'mod17w1.pas'; ++end; ++end ++. +diff -ru gpc-20040516.orig/p/test/mod17w3.pas gpc-20040516/p/test/mod17w3.pas +--- gpc-20040516.orig/p/test/mod17w3.pas 2004-07-06 23:01:29.000000000 +0200 ++++ gpc-20040516/p/test/mod17w3.pas 2004-05-24 20:08:38.000000000 +0200 +@@ -0,0 +1,8 @@ ++module mod17w3; ++ export mod17w3 = (wa => foo); ++ w3i2 = (a .. b); ++ import w1i3 in 'mod17w1.pas'; w2i3 in 'mod17w2.pas'; ++ w2i4 in 'mod17w2.pas'; ++end; ++end ++. +diff -ru gpc-20040516.orig/p/test/mod9.pas gpc-20040516/p/test/mod9.pas +--- gpc-20040516.orig/p/test/mod9.pas 2004-07-06 19:16:15.000000000 +0200 ++++ gpc-20040516/p/test/mod9.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -0,0 +1,9 @@ ++program Test(output); ++ ++import ++ ModT9A in 'mod9a.pas'; ++ ModT9B in 'mod9b.pas'; { WRONG: `i' declared two times. } ++ ++begin ++ writeln('failed'); ++end. +diff -ru gpc-20040516.orig/p/test/pipetes2.pas gpc-20040516/p/test/pipetes2.pas +--- gpc-20040516.orig/p/test/pipetes2.pas 2004-05-14 23:56:23.000000000 +0200 ++++ gpc-20040516/p/test/pipetes2.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -28,7 +28,7 @@ + if Copy (s, Length (s) - 3) = '.out' then s := Copy (s, 1, Length (s) - 4) + '.exe'; + {$endif} + {$local I-} +- Pipe (ToInput, f, f, s, Parameters, GetCEnvironment, Process, nil); ++ MakePipe (ToInput, f, f, s, Parameters, GetCEnvironment, Process, nil); + {$endlocal} + if InOutRes <> 0 then + begin +diff -ru gpc-20040516.orig/p/test/pipetest.pas gpc-20040516/p/test/pipetest.pas +--- gpc-20040516.orig/p/test/pipetest.pas 2004-05-14 23:56:32.000000000 +0200 ++++ gpc-20040516/p/test/pipetest.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -67,7 +67,7 @@ + {$endif} + + {$local I-} +- Pipe (ToInput, FromOutput, FromStdErr, '', Null, GetCEnvironment, Process, DemoProcedure); ++ MakePipe (ToInput, FromOutput, FromStdErr, '', Null, GetCEnvironment, Process, DemoProcedure); + {$endlocal} + if InOutRes <> 0 then + begin +diff -ru gpc-20040516.orig/p/test/test_run gpc-20040516/p/test/test_run +--- gpc-20040516.orig/p/test/test_run 2004-05-15 20:44:11.000000000 +0200 ++++ gpc-20040516/p/test/test_run 2004-07-06 19:11:13.000000000 +0200 +@@ -89,7 +89,7 @@ + exit 1 + fi + +-echo "program Dummy; begin WriteLn ('1723') end." > dummy.pas ++echo "program Dummy(Output); begin WriteLn ('1723') end." > dummy.pas + NEEDED_OPTIONS="`$PC $PFLAGS --print-needed-options dummy.pas 3>&2 2>&1 1>&3`" + if $echon "$NEEDED_OPTIONS" | grep '^[^-]' > /dev/null; then + echo "$0: fatal: \`--print-needed-options' yields:" >&2 +Only in gpc-20040516.orig/p/test/todo: chief18.pas +diff -ru gpc-20040516.orig/p/test/todo/contourbug.pas gpc-20040516/p/test/todo/contourbug.pas +--- gpc-20040516.orig/p/test/todo/contourbug.pas 2002-11-16 21:35:42.000000000 +0100 ++++ gpc-20040516/p/test/todo/contourbug.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -4,7 +4,7 @@ + + program CountourBug; + +-{ Running this program with the command line: ++(* Running this program with the command line: + + gpc --gnu-pascal --stack-checking -S contourbug.pas + +@@ -41,7 +41,7 @@ + to the `goto' and to what GPC does internally with strings. It can + be reproduced in C, using local variables of variable size and a + certain way of using `{ ... }' groups. +-} ++*) + + + procedure p (str: string); +Only in gpc-20040516.orig/p/test/todo: fjf260a.pas +Only in gpc-20040516.orig/p/test/todo: fjf260b.pas +Only in gpc-20040516.orig/p/test/todo: fjf921a.pas +Only in gpc-20040516.orig/p/test/todo: fjf921b.pas +Only in gpc-20040516.orig/p/test/todo: fjf921c2.pas +Only in gpc-20040516.orig/p/test/todo: fjf921c.pas +Only in gpc-20040516.orig/p/test/todo: fjf921d.pas +Only in gpc-20040516.orig/p/test/todo: fjf921e2.pas +Only in gpc-20040516.orig/p/test/todo: fjf921e.pas +Only in gpc-20040516.orig/p/test/todo: fjf921f.pas +Only in gpc-20040516.orig/p/test/todo: fjf921g2.pas +Only in gpc-20040516.orig/p/test/todo: fjf921g.pas +Only in gpc-20040516.orig/p/test/todo: fjf921h.pas +Only in gpc-20040516.orig/p/test/todo: fjf921i2.pas +Only in gpc-20040516.orig/p/test/todo: fjf921i.pas +Only in gpc-20040516.orig/p/test/todo: fjf921j2.pas +Only in gpc-20040516.orig/p/test/todo: fjf921j3.pas +Only in gpc-20040516.orig/p/test/todo: fjf921j.pas +Only in gpc-20040516.orig/p/test/todo: fjf921k.pas +Only in gpc-20040516.orig/p/test/todo: grp1.pas +Only in gpc-20040516.orig/p/test/todo: kurzw1.pas +Only in gpc-20040516.orig/p/test/todo: mod10.pas +Only in gpc-20040516.orig/p/test/todo: mod9.pas +diff -ru gpc-20040516.orig/p/typecheck.c gpc-20040516/p/typecheck.c +--- gpc-20040516.orig/p/typecheck.c 2004-05-12 01:50:17.000000000 +0200 ++++ gpc-20040516/p/typecheck.c 2004-07-06 19:11:13.000000000 +0200 +@@ -1595,8 +1595,9 @@ + && PASCAL_TYPE_DISCRIMINATED_STRING (TREE_TYPE (TREE_OPERAND (TREE_VALUE (init), 0)))) + { + int constant = TREE_CONSTANT (TREE_VALUE (init)); +- TREE_VALUE (init) = build1 (ADDR_EXPR, cstring_type_node, TREE_VALUE ( +- TREE_CHAIN (TREE_CHAIN (TREE_OPERAND (TREE_OPERAND (TREE_VALUE (init), 0), 1))))); ++ tree t = CONSTRUCTOR_ELTS (TREE_OPERAND (TREE_VALUE (init), 0)); ++ TREE_VALUE (init) = build1 (ADDR_EXPR, cstring_type_node, ++ TREE_VALUE ( TREE_CHAIN (TREE_CHAIN (t)))); + TREE_CONSTANT (TREE_VALUE (init)) = constant; + return 0; + } +@@ -1742,7 +1743,11 @@ + { + int i = 0, l = NUMBER_OF_OPERANDS (code); + if (code == CONSTRUCTOR) ++#ifndef GCC_3_4 + i = 1 + !TREE_OPERAND (type_or_expr, 1); ++#else ++ i = !TREE_OPERAND (type_or_expr, 0); ++#endif + for (; i < l; i++) + if (contains_discriminant (TREE_OPERAND (type_or_expr, i), fields)) + return 1; +@@ -1819,7 +1824,7 @@ + tree t; + expr = copy_node (expr); + TREE_OPERAND (expr, 0) = re_fold (TREE_OPERAND (expr, 0), fields, &foreign_discr); +- for (t = TREE_OPERAND (expr, 0); t; t = TREE_CHAIN (t)) ++ for (t = TREE_OPERAND (expr, 1); t; t = TREE_CHAIN (t)) + TREE_VALUE (t) = re_fold (TREE_VALUE (t), fields, &foreign_discr); + if (!foreign_discr) + return fold (expr); +@@ -1834,10 +1839,15 @@ + { + int i = 0, l = tree_code_length[(int) code]; + expr = copy_node (expr); ++#ifndef GCC_3_4 + if (code == METHOD_CALL_EXPR) + l = 3; + else if (code == CONSTRUCTOR) + i = 1 + !TREE_OPERAND (expr, 1); ++#else ++ if (code == CONSTRUCTOR) ++ i = !TREE_OPERAND (expr, 0); ++#endif + for (; i < l; i++) + TREE_OPERAND (expr, i) = re_fold (TREE_OPERAND (expr, i), fields, &foreign_discr); + if (!foreign_discr) +@@ -3289,7 +3299,11 @@ + && TREE_CODE (constructor_max_index) == INTEGER_CST + && !tree_int_cst_lt (constructor_max_index, constructor_unfilled_index)) + error_or_warning (co->pascal_dialect & E_O_PASCAL, "too few initializers for array"); ++#ifndef GCC_3_4 + constructor = build (CONSTRUCTOR, constructor_type, NULL_TREE, nreverse (constructor_elements)); ++#else ++ constructor = build_constructor (constructor_type, nreverse (constructor_elements)); ++#endif + if (constructor_constant) + TREE_CONSTANT (constructor) = 1; + if (constructor_constant && constructor_simple) +diff -ru gpc-20040516.orig/p/types.c gpc-20040516/p/types.c +--- gpc-20040516.orig/p/types.c 2004-05-16 15:52:02.000000000 +0200 ++++ gpc-20040516/p/types.c 2004-07-06 19:11:13.000000000 +0200 +@@ -764,6 +764,18 @@ + return expr; + } + ++/* Since pascal declaration gives a new type we have to defeat ++ caching in `build_pointer_type' */ ++ ++tree ++build_pascal_pointer_type (to_type) ++ tree to_type; ++{ ++ if (TYPE_POINTER_TO (to_type)) ++ to_type = build_type_copy (to_type); ++ return build_pointer_type (to_type); ++} ++ + /* Each variable length string looks like: + + String = record +@@ -950,7 +962,11 @@ + { + int i = 0, l = NUMBER_OF_OPERANDS (code); + if (code == CONSTRUCTOR) ++#ifndef GCC_3_4 + i = 1 + !TREE_OPERAND (expr, 1); ++#else ++ i = !TREE_OPERAND (expr, 0); ++#endif + for (; i < l; i++) + TREE_OPERAND (expr, i) = maybe_schema_discriminant (TREE_OPERAND (expr, i)); + } +diff -ru gpc-20040516.orig/p/units/dos.pas gpc-20040516/p/units/dos.pas +--- gpc-20040516.orig/p/units/dos.pas 2004-01-01 00:09:21.000000000 +0100 ++++ gpc-20040516/p/units/dos.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -62,7 +62,7 @@ + get the built-in meaning by using `GPC_AnyFile'. } + export Dos = all (DosAnyFile => AnyFile, FSearch, FExpand, FSplit, GetEnv); + +-import GPC; System; ++import GPC (MaxLongInt => Orig_GPC_Maxlongint); System; + + type + GPC_AnyFile = AnyFile; +diff -ru gpc-20040516.orig/p/units/gpc-in-c.h gpc-20040516/p/units/gpc-in-c.h +--- gpc-20040516.orig/p/units/gpc-in-c.h 2004-03-23 09:05:25.000000000 +0100 ++++ gpc-20040516/p/units/gpc-in-c.h 2004-07-06 19:11:13.000000000 +0200 +@@ -66,7 +66,8 @@ + and run the constructors of the mentioned unit/module and all + units/modules used by it. + */ +-extern void init_pascal_main_program (); ++#define init_pascal_main_program() _p__M0_init () ++extern void _p__M0_init (); + + /* + _p_finalize() (also part of GPC's Run Time System) should be +diff -ru gpc-20040516.orig/p/units/pipes.pas gpc-20040516/p/units/pipes.pas +--- gpc-20040516.orig/p/units/pipes.pas 2004-05-14 23:54:25.000000000 +0200 ++++ gpc-20040516/p/units/pipes.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -142,7 +142,7 @@ + IOSelectRead) while writing the Input data (under Dos, there + simply won't be any data then, but checking for data doesn't do + any harm). Please see pipedemo.pas for an example. } +-procedure Pipe (var ToInputFile, FromOutputFile, FromStdErrFile: AnyFile; const ProcessName: String; protected var Parameters: TPStrings; ProcessEnvironment: PCStrings; var Process: PPipeProcess; ChildProc: TProcedure); attribute (iocritical); ++procedure MakePipe (var ToInputFile, FromOutputFile, FromStdErrFile: AnyFile; const ProcessName: String; protected var Parameters: TPStrings; ProcessEnvironment: PCStrings; var Process: PPipeProcess; ChildProc: TProcedure); attribute (iocritical); + + { Waits for a process created by Pipe as determined in the Process + record. (Process is Dispose'd of afterwards.) Returns True if +@@ -317,7 +317,7 @@ + SetTFDD (f, OpenProc, SelectFunc, SelectProc, ReadFunc, WriteFunc, FlushProc, PipeTFDDClose, DoneProc, p) + end; + +-procedure Pipe (var ToInputFile, FromOutputFile, FromStdErrFile: AnyFile; const ProcessName: String; protected var Parameters: TPStrings; ProcessEnvironment: PCStrings; var Process: PPipeProcess; ChildProc: TProcedure); ++procedure MakePipe (var ToInputFile, FromOutputFile, FromStdErrFile: AnyFile; const ProcessName: String; protected var Parameters: TPStrings; ProcessEnvironment: PCStrings; var Process: PPipeProcess; ChildProc: TProcedure); + var + ParameterCount, i: Cardinal; + PipeStdIn, PipeStdOut, PipeStdErr: Integer; +@@ -542,7 +542,7 @@ + Reset (f) + end; + +-procedure Pipe (var ToInputFile, FromOutputFile, FromStdErrFile: AnyFile; const ProcessName: String; protected var Parameters: TPStrings; ProcessEnvironment: PCStrings; var Process: PPipeProcess; ChildProc: TProcedure); ++procedure MakePipe (var ToInputFile, FromOutputFile, FromStdErrFile: AnyFile; const ProcessName: String; protected var Parameters: TPStrings; ProcessEnvironment: PCStrings; var Process: PPipeProcess; ChildProc: TProcedure); + var + i: Cardinal; + PipeData: PPipeData; +diff -ru gpc-20040516.orig/p/units/printer.pas gpc-20040516/p/units/printer.pas +--- gpc-20040516.orig/p/units/printer.pas 2004-05-14 23:55:01.000000000 +0200 ++++ gpc-20040516/p/units/printer.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -126,7 +126,7 @@ + begin + { @@ Check status in Close } + WritePrinter := 0; +- Pipe (Data.f^, Data.SpoolerOutput^, Data.SpoolerOutput^, PrinterCommand^, PrinterArguments^, GetCEnvironment, Process, nil); { this also makes sure this function won't be called again for this file } ++ MakePipe (Data.f^, Data.SpoolerOutput^, Data.SpoolerOutput^, PrinterCommand^, PrinterArguments^, GetCEnvironment, Process, nil); { this also makes sure this function won't be called again for this file } + if InOutRes <> 0 then Exit; + Process^.Signal := PrinterPipeSignal; + Process^.Seconds := PrinterPipeSeconds; +diff -ru gpc-20040516.orig/p/units/turbo3.pas gpc-20040516/p/units/turbo3.pas +--- gpc-20040516.orig/p/units/turbo3.pas 2004-01-01 00:08:10.000000000 +0100 ++++ gpc-20040516/p/units/turbo3.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -43,8 +43,7 @@ + + interface + +-import GPC; +- System (MemAvail => System_MemAvail, ++import System (MemAvail => System_MemAvail, + MaxAvail => System_MaxAvail); + CRT (LowVideo => CRT_LowVideo, + HighVideo => CRT_HighVideo); +@@ -63,6 +62,7 @@ + procedure HighVideo; attribute (name = '_p_HighVideo3'); + + implementation ++import GPC only (AssignTFDD); + + function Kbd_Read (var PrivateData; var Buffer; Size: SizeType) = BytesRead: SizeType; + var +diff -ru gpc-20040516.orig/p/units/windos.pas gpc-20040516/p/units/windos.pas +--- gpc-20040516.orig/p/units/windos.pas 2004-01-01 00:08:07.000000000 +0100 ++++ gpc-20040516/p/units/windos.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -74,10 +74,10 @@ + {$endif} + CStringGetEnv => GetEnvVar); + +-import GPC; System; Dos (FindFirst => Dos_FindFirst, ++import GPC(MaxLongInt => Orig_GPC_Maxlongint); System; ++ Dos (FindFirst => Dos_FindFirst, + FindNext => Dos_FindNext, + FindClose => Dos_FindClose); +- + const + { File attribute constants } + faReadOnly = ReadOnly; +diff -ru gpc-20040516.orig/p/utils/gpidump.pas gpc-20040516/p/utils/gpidump.pas +--- gpc-20040516.orig/p/utils/gpidump.pas 2004-05-12 12:03:06.000000000 +0200 ++++ gpc-20040516/p/utils/gpidump.pas 2004-07-06 19:11:13.000000000 +0200 +@@ -26,7 +26,7 @@ + + program GPIDump; + +-uses GPC, StringUtils; ++import GPC; StringUtils; + + var + Verbose, Hex: Boolean; +@@ -752,7 +752,9 @@ + case TreeCode of + SAVE_EXPR, + WITH_CLEANUP_EXPR: a := 1; ++ {$ifndef GCC_3_4} + METHOD_CALL_EXPR: a := 3; ++ {$endif} + else a := TreeCodes[TreeCode].Arguments + end; + for i := 1 + Ord (TreeCode = CONSTRUCTOR) to a do +@@ -779,7 +781,8 @@ + IMPORT_NODE: begin + Ref ('interface'); + OptRef ('qualifier'); +- OptRef ('filename') ++ OptRef ('filename'); ++ var qualifued : Integer = GetNumber (Pos1); + end; + TREE_LIST: for i := 1 to GetNumber (Pos1) do + begin +diff -ru gpc-20040516.orig/p/utils/mk-t-inc gpc-20040516/p/utils/mk-t-inc +--- gpc-20040516.orig/p/utils/mk-t-inc 2004-01-01 00:07:59.000000000 +0100 ++++ gpc-20040516/p/utils/mk-t-inc 2004-07-06 19:11:13.000000000 +0200 +@@ -71,6 +71,9 @@ + echo '{$define EGCS97}' + if echo $version | grep '3\.[3-9]' > /dev/null; then + echo '{$define GCC_3_3}' ++ if echo $version | grep '3\.[4-9]' > /dev/null; then ++ echo '{$define GCC_3_4}' ++ fi + fi + fi + fi --- gcc-3.4-3.4.3.orig/debian/patches/ada-gcc-lib.dpatch +++ gcc-3.4-3.4.3/debian/patches/ada-gcc-lib.dpatch @@ -0,0 +1,43 @@ +#! /bin/sh -e + +# DP: Change /usr/lib/gcc-lib to /usr/lib/gcc so that the compiler +# DP: finds symboloc links to shared libraries. + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + + +--- gcc/ada/Makefile.adalib~ 2004-07-25 19:59:36.000000000 +0200 ++++ gcc/ada/Makefile.adalib 2004-07-25 19:59:44.000000000 +0200 +@@ -53,9 +53,9 @@ + + target = $(shell $(CC) -dumpmachine) + version = $(shell $(CC) -dumpversion) +-ADA_INCLUDE_PATH = $(GNAT_ROOT)lib/gcc-lib/$(target)/$(version)/adainclude/ +-GCC_INCLUDE_PATH = $(GNAT_ROOT)lib/gcc-lib/$(target)/$(version)/gcc-include/ +-ADA_OBJECTS_PATH = $(GNAT_ROOT)lib/gcc-lib/$(target)/$(version)/adalib/ ++ADA_INCLUDE_PATH = $(GNAT_ROOT)lib/gcc/$(target)/$(version)/adainclude/ ++GCC_INCLUDE_PATH = $(GNAT_ROOT)lib/gcc/$(target)/$(version)/gcc-include/ ++ADA_OBJECTS_PATH = $(GNAT_ROOT)lib/gcc/$(target)/$(version)/adalib/ + + vpath %.adb $(ADA_INCLUDE_PATH) + vpath %.ads $(ADA_INCLUDE_PATH) + --- gcc-3.4-3.4.3.orig/debian/patches/gpc-lang-update.dpatch +++ gcc-3.4-3.4.3/debian/patches/gpc-lang-update.dpatch @@ -0,0 +1,52 @@ +#! /bin/sh -e + +# DP: Hack p/lang.c to work around bootstrap failures on alpha and mips. + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- gcc/p/lang.c.old 2004-07-30 06:00:30.000000000 +0000 ++++ gcc/p/lang.c 2004-07-30 15:01:48.000000000 +0000 +@@ -34,6 +34,22 @@ + #include "gtype-p.h" + #endif + ++#ifdef GCC_3_4 ++#ifndef c_dialect_cxx ++/* mips and alpha use these macros ... */ ++typedef enum c_language_kind ++{ ++ clk_c = 0, /* C90, C94 or C99 */ ++ clk_objc = 1, /* clk_c with ObjC features. */ ++ clk_cxx = 2, /* ANSI/ISO C++ */ ++ clk_objcxx = 3 /* clk_cxx with ObjC features. */ ++} ++c_language_kind; ++#define c_dialect_cxx() (c_language & clk_cxx) ++#define c_dialect_objc() (c_language & clk_objc) ++#endif ++#endif ++ + /* The following functions are not called from GPC, but needed by + the backend. Depending on the GCC version, they're simply called + as extern, so we can't make them static (yet). */ --- gcc-3.4-3.4.3.orig/debian/patches/cross-configure.dpatch +++ gcc-3.4-3.4.3/debian/patches/cross-configure.dpatch @@ -0,0 +1,48 @@ +#! /bin/sh -e + +# DP: fix configure script to handle both --program-prefix and --program-suffix +# DP: and not to override binutils detected by autoconf + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- configure.in.orig 2004-02-06 10:03:08.000000000 +0300 ++++ configure.in 2004-03-10 00:39:05.000000000 +0300 +@@ -2103,7 +2103,10 @@ + AC_SUBST(RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE) + + # Fix up target tools. +-if test "x${build}" = "x${host}" ; then ++# This is not needed for Debian: binutils are built separately, and ++# USUAL_*_FOR_TARGET macros do cause problems for cross-compiler build ++#if test "x${build}" = "x${host}" ; then ++if false; then + # In this case, the newly built tools can and should be used, + # so we override the results of the autoconf tests. + # This should really only happen when the tools are actually being built, +--- configure.orig 2004-02-06 10:03:08.000000000 +0300 ++++ configure 2004-03-10 00:39:18.000000000 +0300 +@@ -4006,7 +4006,10 @@ + + + # Fix up target tools. +-if test "x${build}" = "x${host}" ; then ++# This is not needed for Debian: binutils are built separately, and ++# USUAL_*_FOR_TARGET macros do cause problems for cross-compiler build ++#if test "x${build}" = "x${host}" ; then ++if false; then + # In this case, the newly built tools can and should be used, + # so we override the results of the autoconf tests. + # This should really only happen when the tools are actually being built, --- gcc-3.4-3.4.3.orig/debian/patches/i386-biarch.dpatch +++ gcc-3.4-3.4.3/debian/patches/i386-biarch.dpatch @@ -0,0 +1,386 @@ +#! /bin/sh -e + +# DP: biarch patches for i386/x86_64 + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p1 < $0 + cd ${dir}libjava && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p1 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + + +diff -Nurp src.orig/gcc/config/i386/biarch.h src/gcc/config/i386/biarch.h +--- src.orig/gcc/config/i386/biarch.h 1969-12-31 19:00:00.000000000 -0500 ++++ src/gcc/config/i386/biarch.h 2004-08-03 22:01:00.000000000 -0400 +@@ -0,0 +1,26 @@ ++/* Make configure files to produce biarch compiler defaulting to 32bit mode. ++ This file must be included very first, while the OS specific file later ++ to overwrite otherwise wrong defaults. ++ Copyright (C) 2001, 2004 Free Software Foundation, Inc. ++ Contributed by Bo Thorsen . ++ ++This file is part of GCC. ++ ++GCC 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. ++ ++GCC 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 GCC; see the file COPYING. If not, write to ++the Free Software Foundation, 59 Temple Place - Suite 330, ++Boston, MA 02111-1307, USA. */ ++ ++#define TARGET_64BIT_DEFAULT 0 ++#define TARGET_BI_ARCH 1 ++#define DRIVER_SELF_SPECS "%{m64:%{!mtune:-mtune=x86-64}}" +diff -Nurp src.orig/gcc/config/i386/linux.h src/gcc/config/i386/linux.h +--- src.orig/gcc/config/i386/linux.h 2004-08-03 22:07:21.000000000 -0400 ++++ src/gcc/config/i386/linux.h 2004-08-03 22:01:00.000000000 -0400 +@@ -182,6 +182,7 @@ Boston, MA 02111-1307, USA. */ + } \ + } while (0) + ++#ifdef __i386__ + /* Used by crtstuff.c to initialize the base of data-relative relocations. + These are GOT relative on x86, so return the pic register. */ + #ifdef __PIC__ +@@ -201,6 +202,7 @@ Boston, MA 02111-1307, USA. */ + "addl\t$_GLOBAL_OFFSET_TABLE_+[.-.LPR%=],%0" \ + : "=d"(BASE)) + #endif ++#endif + + #undef NEED_INDICATE_EXEC_STACK + #define NEED_INDICATE_EXEC_STACK 1 +diff -Nurp src.orig/gcc/config/i386/linux64.h src/gcc/config/i386/linux64.h +--- src.orig/gcc/config/i386/linux64.h 2004-08-03 22:07:21.000000000 -0400 ++++ src/gcc/config/i386/linux64.h 2004-08-03 22:09:04.000000000 -0400 +@@ -19,8 +19,11 @@ along with GCC; see the file COPYING. I + the Free Software Foundation, 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + ++#ifndef TARGET_VERSION + #define TARGET_VERSION fprintf (stderr, " (x86-64 Linux/ELF)"); ++#endif + ++#undef TARGET_OS_CPP_BUILTINS + #define TARGET_OS_CPP_BUILTINS() \ + do \ + { \ +@@ -55,6 +58,7 @@ Boston, MA 02111-1307, USA. */ + done. */ + + #undef LINK_SPEC ++#if TARGET_64BIT_DEFAULT + #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \ + %{shared:-shared} \ + %{!shared: \ +@@ -63,8 +67,22 @@ Boston, MA 02111-1307, USA. */ + %{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ + %{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \ + %{static:-static}}" ++#else ++#define LINK_SPEC "%{m64:-m elf_x86_64} %{!m64:-m elf_i386} \ ++ %{shared:-shared} \ ++ %{!shared: \ ++ %{!static: \ ++ %{rdynamic:-export-dynamic} \ ++ %{!m64:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ ++ %{m64:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \ ++ %{static:-static}}" ++#endif + ++#if TARGET_64BIT_DEFAULT + #define MULTILIB_DEFAULTS { "m64" } ++#else ++#define MULTILIB_DEFAULTS { "m32" } ++#endif + + #undef NEED_INDICATE_EXEC_STACK + #define NEED_INDICATE_EXEC_STACK 1 +@@ -79,6 +97,7 @@ Boston, MA 02111-1307, USA. */ + #include + #endif + ++#undef MD_FALLBACK_FRAME_STATE_FOR + #ifdef __x86_64__ + #define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS) \ + do { \ +diff -Nurp src.orig/gcc/config/i386/x86-64.h src/gcc/config/i386/x86-64.h +--- src.orig/gcc/config/i386/x86-64.h 2004-08-03 22:07:21.000000000 -0400 ++++ src/gcc/config/i386/x86-64.h 2004-08-03 22:01:00.000000000 -0400 +@@ -47,9 +47,15 @@ Boston, MA 02111-1307, USA. */ + #undef CC1_SPEC + #define CC1_SPEC "%(cc1_cpu) %{profile:-p}" + ++#if TARGET_64BIT_DEFAULT + #undef ASM_SPEC + #define ASM_SPEC "%{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} \ + %{Wa,*:%*} %{m32:--32} %{!m32:--64}" ++#else ++#undef ASM_SPEC ++#define ASM_SPEC "%{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} \ ++ %{Wa,*:%*} %{!m64:--32} %{m64:--64}" ++#endif + + #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \ + asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN) +diff -Nurp src.orig/gcc/config.gcc src/gcc/config.gcc +--- src.orig/gcc/config.gcc 2004-08-03 22:07:21.000000000 -0400 ++++ src/gcc/config.gcc 2004-08-03 22:07:53.000000000 -0400 +@@ -991,8 +991,10 @@ i[34567]86-*-linux*libc1) # Intel 80386' + i[34567]86-*-linux*) # Intel 80386's running GNU/Linux + # with ELF format using glibc 2 + # aka GNU/Linux C library 6 +- tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h i386/linux.h" +- tmake_file="t-slibgcc-elf-ver t-linux i386/t-crtstuff" ++ tm_file="i386/biarch.h ${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h \ ++ svr4.h linux.h i386/linux.h i386/x86-64.h i386/linux64.h" ++ tmake_file="t-slibgcc-elf-ver t-linux i386/t-linux64" ++ need_64bit_hwint=yes + ;; + x86_64-*-linux*) + tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h \ +diff -Nurp src.orig/libffi/Makefile.am src/libffi/Makefile.am +--- src.orig/libffi/Makefile.am 2004-08-03 22:07:21.000000000 -0400 ++++ src/libffi/Makefile.am 2004-08-03 22:01:00.000000000 -0400 +@@ -90,7 +90,7 @@ noinst_LTLIBRARIES = libffi_convenience. + + TARGET_SRC_MIPS_IRIX = src/mips/ffi.c src/mips/o32.S src/mips/n32.S + TARGET_SRC_MIPS_LINUX = src/mips/ffi.c src/mips/o32.S +-TARGET_SRC_X86 = src/x86/ffi.c src/x86/sysv.S ++TARGET_SRC_X86 = src/x86/ffi64.c src/x86/unix64.S src/x86/ffi.c src/x86/sysv.S + TARGET_SRC_X86_WIN32 = src/x86/ffi.c src/x86/win32.S + TARGET_SRC_SPARC = src/sparc/ffi.c src/sparc/v8.S src/sparc/v9.S + TARGET_SRC_ALPHA = src/alpha/ffi.c src/alpha/osf.S +diff -Nurp src.orig/libffi/Makefile.in src/libffi/Makefile.in +--- src.orig/libffi/Makefile.in 2004-08-03 22:07:21.000000000 -0400 ++++ src/libffi/Makefile.in 2004-08-03 22:01:00.000000000 -0400 +@@ -174,7 +174,7 @@ noinst_LTLIBRARIES = libffi_convenience. + + TARGET_SRC_MIPS_IRIX = src/mips/ffi.c src/mips/o32.S src/mips/n32.S + TARGET_SRC_MIPS_LINUX = src/mips/ffi.c src/mips/o32.S +-TARGET_SRC_X86 = src/x86/ffi.c src/x86/sysv.S ++TARGET_SRC_X86 = src/x86/ffi64.c src/x86/unix64.S src/x86/ffi.c src/x86/sysv.S + TARGET_SRC_X86_WIN32 = src/x86/ffi.c src/x86/win32.S + TARGET_SRC_SPARC = src/sparc/ffi.c src/sparc/v8.S src/sparc/v9.S + TARGET_SRC_ALPHA = src/alpha/ffi.c src/alpha/osf.S +@@ -301,7 +301,7 @@ libffi_convenience_la_LIBADD = + @MIPS_IRIX_TRUE@src/mips/n32.lo + @X86_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo src/prep_cif.lo \ + @X86_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \ +-@X86_TRUE@src/x86/ffi.lo src/x86/sysv.lo ++@X86_TRUE@src/x86/ffi64.lo src/x86/unix64.lo src/x86/ffi.lo src/x86/sysv.lo + @IA64_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo src/prep_cif.lo \ + @IA64_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \ + @IA64_TRUE@src/ia64/ffi.lo src/ia64/unix.lo +@@ -357,8 +357,8 @@ libffi_la_LIBADD = + @MIPS_IRIX_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \ + @MIPS_IRIX_TRUE@src/mips/ffi.lo src/mips/o32.lo src/mips/n32.lo + @X86_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo src/types.lo \ +-@X86_TRUE@src/raw_api.lo src/java_raw_api.lo src/x86/ffi.lo \ +-@X86_TRUE@src/x86/sysv.lo ++@X86_TRUE@src/raw_api.lo src/java_raw_api.lo src/x86/ffi64.lo src/x86/unix64.lo \ ++@X86_TRUE@src/x86/ffi.lo src/x86/sysv.lo + @IA64_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \ + @IA64_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \ + @IA64_TRUE@src/ia64/ffi.lo src/ia64/unix.lo +diff -Nurp src.orig/libffi/Makefile.am src/libffi/Makefile.am +--- src.orig/libffi/src/x86/ffitarget.h 2004-08-03 22:07:21.000000000 -0400 ++++ src/libffi/src/x86/ffitarget.h 2004-08-03 22:01:00.000000000 -0400 +@@ -33,6 +33,11 @@ + #define X86 + #endif + ++#if defined (X86) && defined (__x86_64__) ++#undef X86 ++#define X86_64 ++#endif ++ + /* ---- Generic type definitions ----------------------------------------- */ + + #ifndef LIBFFI_ASM +diff -Nurp src.orig/libjava/configure.in src/libjava/configure.in +--- src.orig/libjava/configure.in 2004-08-03 22:07:21.000000000 -0400 ++++ src/libjava/configure.in 2004-08-03 22:01:00.000000000 -0400 +@@ -674,16 +674,17 @@ else + AC_DEFINE(HAVE_DLADDR, 1, [Define if you have dladdr()]) + fi + ]) +- if test x"$build" = x"$host"; then +- AC_CHECK_FILES(/proc/self/exe, [ +- AC_DEFINE(HAVE_PROC_SELF_EXE, 1, [Define if you have /proc/self/exe])]) +- else +- case $host in +- *-linux*) +- AC_DEFINE(HAVE_PROC_SELF_EXE, 1, [Define if you have /proc/self/exe]) +- ;; +- esac +- fi ++ case $host in ++ *-linux*) ++ AC_DEFINE(HAVE_PROC_SELF_EXE, 1, [Define if you have /proc/self/exe]) ++ ;; ++ *) ++ if test x"$build" = x"$host"; then ++ AC_CHECK_FILES(/proc/self/exe, [ ++ AC_DEFINE(HAVE_PROC_SELF_EXE, 1, [Define if you have /proc/self/exe])]) ++ fi ++ ;; ++ esac + + AM_ICONV + AM_LC_MESSAGES +diff -Nurp src.orig/libjava/include/i386-signal.h src/libjava/include/i386-signal.h +--- src.orig/libjava/include/i386-signal.h 2004-08-03 22:07:21.000000000 -0400 ++++ src/libjava/include/i386-signal.h 2004-08-03 22:01:00.000000000 -0400 +@@ -11,6 +11,10 @@ details. */ + + + #ifndef JAVA_SIGNAL_H ++#ifdef __x86_64__ ++#include "x86_64-signal.h" ++#else ++ + #define JAVA_SIGNAL_H 1 + + #include +@@ -163,6 +167,6 @@ while (0) + * Also, there is at the present time no unwind info in the + * linuxthreads library's signal handlers and so we can't unwind + * through them anyway. */ +- ++#endif /* ! __x86_64__ */ + #endif /* JAVA_SIGNAL_H */ + +diff -Nurp src.orig/libjava/sysdep/i386/locks.h src/libjava/sysdep/i386/locks.h +--- src.orig/libjava/sysdep/i386/locks.h 2004-08-03 22:07:21.000000000 -0400 ++++ src/libjava/sysdep/i386/locks.h 2004-08-03 22:01:00.000000000 -0400 +@@ -24,10 +24,17 @@ compare_and_swap(volatile obj_addr_t *ad + obj_addr_t new_val) + { + char result; +- __asm__ __volatile__("lock; cmpxchgl %2, %0; setz %1" +- : "=m"(*addr), "=q"(result) ++#ifdef __x86_64__ ++ __asm__ __volatile__("lock; cmpxchgq %2, %0; setz %1" ++ : "=m"(*(addr)), "=q"(result) + : "r" (new_val), "a"(old), "m"(*addr) + : "memory"); ++#else ++ __asm__ __volatile__("lock; cmpxchgl %2, %0; setz %1" ++ : "=m"(*(addr)), "=q"(result) ++ : "r" (new_val), "a"(old), "m"(*addr) ++ : "memory"); ++#endif + return (bool) result; + } + +diff -Nurp src.orig/libtool.m4 src/libtool.m4 +--- src.orig/libtool.m4 2004-08-03 22:07:21.000000000 -0400 ++++ src/libtool.m4 2004-08-03 22:01:00.000000000 -0400 +@@ -189,14 +189,14 @@ ia64-*-hpux*) + rm -rf conftest* + ;; + +-x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) ++i[[3456]]86-*-linux*|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case "`/usr/bin/file conftest.o`" in + *32-bit*) + case $host in +- x86_64-*linux*) ++ i[[3456]]86-*-linux*|x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) +@@ -212,7 +212,7 @@ x86_64-*linux*|ppc*-*linux*|powerpc*-*li + ;; + *64-bit*) + case $host in +- x86_64-*linux*) ++ i[[3456]]86-*-linux*|x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) +--- src/config-ml.in.orig 2004-08-04 16:21:33.000000000 -0400 ++++ src/config-ml.in 2004-08-04 16:26:39.000000000 -0400 +@@ -296,6 +296,31 @@ + done + fi + ;; ++i[34567]86-*-*) ++ case " $multidirs " in ++ *" 64 "*) ++ ac_configure_args="${ac_configure_args} --host=x86_64-linux" ++ # Setting $host this late is a hack. Some directories can't ++ # handle it, so disable them for now. ++ old_multidirs="${multidirs}" ++ multidirs="" ++ for x in ${old_multidirs}; do ++ case "$x" in ++ *64* ) case ${ml_realsrcdir} in ++ *"libstdc++-v3" ) multidirs="${multidirs} ${x}" ;; ++ *"libf2c" ) multidirs="${multidirs} ${x}" ;; ++ *"libobjc" ) multidirs="${multidirs} ${x}" ;; ++ *"libiberty" ) multidirs="${multidirs} ${x}" ;; ++ *"zlib" ) multidirs="${multidirs} ${x}" ;; ++ *) : ;; ++ esac ++ ;; ++ *) multidirs="${multidirs} ${x}" ;; ++ esac ++ done ++ ;; ++ esac ++ ;; + m68*-*-*) + if [ x$enable_softfloat = xno ] + then +@@ -858,9 +883,20 @@ + fi + fi + ++ ml_configure_args= ++ for arg in ${ac_configure_args} ++ do ++ case $arg in ++ *CC=*) ml_configure_args=${ml_config_env} ;; ++ *CXX=*) ml_configure_args=${ml_config_env} ;; ++ *GCJ=*) ml_configure_args=${ml_config_env} ;; ++ *) ;; ++ esac ++ done ++ + if eval ${ml_config_env} ${ml_config_shell} ${ml_recprog} \ + --with-multisubdir=${ml_dir} --with-multisrctop=${multisrctop} \ +- ${ac_configure_args} ${ml_srcdiroption} ; then ++ ${ac_configure_args} ${ml_configure_args} ${ml_srcdiroption} ; then + true + else + exit 1 --- gcc-3.4-3.4.3.orig/debian/patches/libltdl.dpatch +++ gcc-3.4-3.4.3/debian/patches/libltdl.dpatch @@ -0,0 +1,182 @@ +#! /bin/sh -e + +# DP: * libltdl.dpatch: Search the versioned extension, when loading a shared +# DP: library (i.e. gij looks for .so.5 for loading additional libraries +# DP: like the GTK based AWT peers. + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +Index: libltdl/acinclude.m4 +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/libltdl/acinclude.m4,v +retrieving revision 1.4.8.1 +diff -u -r1.4.8.1 acinclude.m4 +--- libjava/libltdl/acinclude.m4 24 Jun 2004 05:31:44 -0000 1.4.8.1 ++++ libjava/libltdl/acinclude.m4 7 Sep 2004 18:14:54 -0000 +@@ -6091,6 +6091,9 @@ + if test -n "$libltdl_cv_shlibext"; then + AC_DEFINE_UNQUOTED(LTDL_SHLIB_EXT, "$libltdl_cv_shlibext", + [Define to the extension used for shared libraries, say, ".so".]) ++ libltdl_cv_shlibversionext=.so.`grep -v '^\#' ${srcdir}/../libtool-version | awk -F: '{ print $'1' }'` ++ AC_DEFINE_UNQUOTED(LTDL_SHLIB_VERSION_EXT, "$libltdl_cv_shlibversionext", ++ [Define to the versioned extension used for shared libraries, say, ".so.5".]) + fi + ])# AC_LTDL_SHLIBEXT + +Index: libltdl/config-h.in +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/libltdl/config-h.in,v +retrieving revision 1.3.16.1 +diff -u -r1.3.16.1 config-h.in +--- libjava/libltdl/config-h.in 24 Jun 2004 05:31:45 -0000 1.3.16.1 ++++ libjava/libltdl/config-h.in 7 Sep 2004 18:14:54 -0000 +@@ -158,6 +158,10 @@ + /* Define to the extension used for shared libraries, say, ".so". */ + #undef LTDL_SHLIB_EXT + ++/* Define to the versioned extension used for shared libraries, say, ".so.5". ++ */ ++#undef LTDL_SHLIB_VERSION_EXT ++ + /* Define to the system default library search path. */ + #undef LTDL_SYSSEARCHPATH + +Index: libltdl/configure +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/libltdl/configure,v +retrieving revision 1.10.8.1 +diff -u -r1.10.8.1 configure +--- libjava/libltdl/configure 24 Jun 2004 05:31:46 -0000 1.10.8.1 ++++ libjava/libltdl/configure 7 Sep 2004 18:15:01 -0000 +@@ -19623,6 +19623,12 @@ + #define LTDL_SHLIB_EXT "$libltdl_cv_shlibext" + _ACEOF + ++ libltdl_cv_shlibversionext=.so.`grep -v '^\#' ${srcdir}/../libtool-version | awk -F: '{ print $'1' }'` ++ ++cat >>confdefs.h <<_ACEOF ++#define LTDL_SHLIB_VERSION_EXT "$libltdl_cv_shlibversionext" ++_ACEOF ++ + fi + + +Index: libltdl/ltdl.c +=================================================================== +RCS file: /cvs/gcc/gcc/libjava/libltdl/ltdl.c,v +retrieving revision 1.7 +diff -u -r1.7 ltdl.c +--- libjava/libltdl/ltdl.c 25 Dec 2003 19:33:06 -0000 1.7 ++++ libjava/libltdl/ltdl.c 7 Sep 2004 18:15:02 -0000 +@@ -859,6 +859,7 @@ + static const char objdir[] = LTDL_OBJDIR; + static const char archive_ext[] = LTDL_ARCHIVE_EXT; + #ifdef LTDL_SHLIB_EXT ++static const char shlib_version_ext[] = LTDL_SHLIB_VERSION_EXT; + static const char shlib_ext[] = LTDL_SHLIB_EXT; + #endif + #ifdef LTDL_SYSSEARCHPATH +@@ -2388,17 +2389,14 @@ + cur = *handle; + if (filename) + { +- /* Comment out the check of file permissions using access. +- This call seems to always return -1 with error EACCES. +- */ + /* We need to catch missing file errors early so that +- file_not_found() can detect what happened. ++ file_not_found() can detect what happened. */ + if (access (filename, R_OK) != 0) + { + LT_DLMUTEX_SETERROR (LT_DLSTRERROR (FILE_NOT_FOUND)); + ++errors; + goto done; +- } */ ++ } + + cur->info.filename = lt_estrdup (filename); + if (!cur->info.filename) +@@ -3425,10 +3423,11 @@ + return 0; + } + +-/* If FILENAME has an ARCHIVE_EXT or SHLIB_EXT extension, try to +- open the FILENAME as passed. Otherwise try appending ARCHIVE_EXT, +- and if a file is still not found try again with SHLIB_EXT appended +- instead. */ ++/* If FILENAME has an ARCHIVE_EXT, SHLIB_VERSION_EXT or SHLIB_EXT ++ extension, try to open the FILENAME as passed. Otherwise try ++ appending ARCHIVE_EXT, and if a file is still not found try again ++ with SHLIB_VERSION_EXT appended. If the file is still not found, ++ try again with SHLIB_EXT appended. */ + lt_dlhandle + lt_dlopenext (filename) + const char *filename; +@@ -3453,6 +3452,7 @@ + to try appending additional extensions. */ + if (ext && ((strcmp (ext, archive_ext) == 0) + #ifdef LTDL_SHLIB_EXT ++ || (strcmp (ext, shlib_version_ext) == 0) + || (strcmp (ext, shlib_ext) == 0) + #endif + )) +@@ -3460,6 +3460,29 @@ + return lt_dlopen (filename); + } + ++#ifdef LTDL_SHLIB_EXT ++ /* First try appending SHLIB_VERSION_EXT. */ ++ tmp = LT_EMALLOC (char, len + LT_STRLEN (shlib_version_ext) + 1); ++ if (!tmp) ++ return 0; ++ ++ strcpy (tmp, filename); ++ strcat(tmp, shlib_version_ext); ++ errors = try_dlopen (&handle, tmp); ++ ++ /* As before, if the file was found but loading failed, return now ++ with the current error message. */ ++ if (handle || ((errors > 0) && !file_not_found ())) ++ { ++ LT_DLFREE (tmp); ++ return handle; ++ } ++ else ++ { ++ LT_DLFREE (tmp); ++ } ++#endif ++ + /* First try appending ARCHIVE_EXT. */ + tmp = LT_EMALLOC (char, len + LT_STRLEN (archive_ext) + 1); + if (!tmp) +@@ -3482,7 +3505,7 @@ + + #ifdef LTDL_SHLIB_EXT + /* Try appending SHLIB_EXT. */ +- if (LT_STRLEN (shlib_ext) > LT_STRLEN (archive_ext)) ++ if (LT_STRLEN (shlib_ext) > LT_STRLEN (shlib_version_ext)) + { + LT_DLFREE (tmp); + tmp = LT_EMALLOC (char, len + LT_STRLEN (shlib_ext) + 1); --- gcc-3.4-3.4.3.orig/debian/patches/disable-gnat-testsuite.dpatch +++ gcc-3.4-3.4.3/debian/patches/disable-gnat-testsuite.dpatch @@ -0,0 +1,41 @@ +#! /bin/sh -e + +# DP: disable the gnat testsuite. on ia64 the kernel "hangs" for unaligned +# DP: memory accesses. + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- gcc/ada/Make-lang.in~ 2004-09-01 22:07:42.000000000 +0200 ++++ gcc/ada/Make-lang.in 2004-10-12 05:42:39.000000000 +0200 +@@ -915,9 +915,7 @@ + ACATSDIR = $(TESTSUITEDIR)/ada/acats + + check-gnat: +- test -d $(ACATSDIR) || mkdir -p $(ACATSDIR) +- testdir=`cd ${srcdir}/${ACATSDIR}; ${PWD_COMMAND}`; \ +- export testdir; cd $(ACATSDIR); $${testdir}/run_acats $(CHAPTERS) ++ echo "gnat testsuite disabled" + + .PHONY: check-gnat + --- gcc-3.4-3.4.3.orig/debian/patches/gpc-dwarf2out-update.dpatch +++ gcc-3.4-3.4.3/debian/patches/gpc-dwarf2out-update.dpatch @@ -0,0 +1,38 @@ +#! /bin/sh -e + +# DP: GPC update to build with gcc-3.4.3 + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- gcc/dwarf2out.c~ 2004-10-18 08:43:40.000000000 +0200 ++++ gcc/dwarf2out.c 2004-10-18 09:06:45.000000000 +0200 +@@ -8866,10 +8866,6 @@ + #ifdef GPC + case REAL_CST: + case FLOAT_EXPR: +- case FIX_TRUNC_EXPR: +- case FIX_CEIL_EXPR: +- case FIX_FLOOR_EXPR: +- case FIX_ROUND_EXPR: + case RDIV_EXPR: + /* In Pascal it's possible for array bounds to contain floating point + expressions (e.g., p/test/emil11c.pas). I don't know if it's --- gcc-3.4-3.4.3.orig/debian/patches/amd64-biarch.dpatch +++ gcc-3.4-3.4.3/debian/patches/amd64-biarch.dpatch @@ -0,0 +1,88 @@ +#! /bin/sh -e + +# DP: biarch patches for i386/x86_64 + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + + +--- gcc/config/i386/t-linux64~ 2002-11-28 14:47:02.000000000 +0000 ++++ gcc/config/i386/t-linux64 2004-07-24 07:40:21.716247432 +0000 +@@ -6,7 +6,7 @@ + + MULTILIB_OPTIONS = m64/m32 + MULTILIB_DIRNAMES = 64 32 +-MULTILIB_OSDIRNAMES = ../lib64 ../lib ++MULTILIB_OSDIRNAMES = ../lib ../lib32 + + LIBGCC = stmp-multilib + INSTALL_LIBGCC = install-multilib +--- config-ml.in~ 2003-07-04 19:53:34.000000000 +0000 ++++ config-ml.in 2004-07-24 14:13:02.871407408 +0000 +@@ -500,6 +500,46 @@ + ;; + esac + ;; ++x86_64*-*-*) ++ case " $multidirs " in ++ *" 32 "*) ++ # We will not be able to create libraries with -m32 if ++ # we cannot even link a trivial program. It usually ++ # indicates the 32bit libraries are missing. ++ if echo 'main() {}' > conftest.c && ++ ${CC-gcc} -m32 conftest.c -o conftest; then ++ echo Enable only libstdc++. ++ old_multidirs="${multidirs}" ++ multidirs="" ++ for x in ${old_multidirs}; do ++ case "$x" in ++ *32* ) case ${ml_realsrcdir} in ++ *"libstdc++-v3" ) multidirs="${multidirs} ${x}" ;; ++ *"libf2c" ) multidirs="${multidirs} ${x}" ;; ++ *"libobjc" ) multidirs="${multidirs} ${x}" ;; ++ *"libiberty" ) multidirs="${multidirs} ${x}" ;; ++ *"zlib" ) multidirs="${multidirs} ${x}" ;; ++ *) : ;; ++ esac ++ ;; ++ *) multidirs="${multidirs} ${x}" ;; ++ esac ++ done ++ else ++ echo Could not link program with -m32, disabling it. ++ old_multidirs="${multidirs}" ++ multidirs="" ++ for x in ${old_multidirs}; do ++ case "$x" in ++ *m32* ) : ;; ++ *) multidirs="${multidirs} ${x}" ;; ++ esac ++ done ++ fi ++ rm -f conftest.c conftest ++ ;; ++ esac ++ ;; + esac + + # Remove extraneous blanks from multidirs. --- gcc-3.4-3.4.3.orig/debian/patches/libstdc++-soname.dpatch +++ gcc-3.4-3.4.3/debian/patches/libstdc++-soname.dpatch @@ -0,0 +1,49 @@ +#! /bin/sh -e + +# DP: change libstdc++'s soname. + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- libstdc++-v3/configure.ac~ 2004-07-17 10:57:12.000000000 +0200 ++++ libstdc++-v3/configure.ac 2004-07-17 14:00:41.000000000 +0200 +@@ -13,7 +13,7 @@ + ### am handles this now? ORIGINAL_LD_FOR_MULTILIBS=$LD + + # For libtool versioning info, format is CURRENT:REVISION:AGE +-libtool_VERSION=6:3:0 ++libtool_VERSION=60:3:0 + AC_SUBST(libtool_VERSION) + + # Find the rest of the source tree framework. +--- libstdc++-v3/configure~ 2004-07-17 10:57:12.000000000 +0200 ++++ libstdc++-v3/configure 2004-07-17 14:01:13.000000000 +0200 +@@ -1340,7 +1340,7 @@ + ### am handles this now? ORIGINAL_LD_FOR_MULTILIBS=$LD + + # For libtool versioning info, format is CURRENT:REVISION:AGE +-libtool_VERSION=6:3:0 ++libtool_VERSION=60:3:0 + + + # Find the rest of the source tree framework. --- gcc-3.4-3.4.3.orig/debian/patches/cxx-abi-version-1.dpatch +++ gcc-3.4-3.4.3/debian/patches/cxx-abi-version-1.dpatch @@ -0,0 +1,37 @@ +#! /bin/sh -e + +# DP: set the C++ ABI version to 1 (compatible with gcc-3.3) + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- gcc/toplev.c~ 2004-08-19 12:08:25.000000000 +0200 ++++ gcc/toplev.c 2004-08-19 16:53:06.000000000 +0200 +@@ -1014,7 +1014,7 @@ + Additional positive integers will be assigned as new versions of + the ABI become the default version of the ABI. */ + +-int flag_abi_version = 2; ++int flag_abi_version = 1; + + /* The user symbol prefix after having resolved same. */ + const char *user_label_prefix; --- gcc-3.4-3.4.3.orig/debian/patches/libstdc++-mips-atomic.dpatch +++ gcc-3.4-3.4.3/debian/patches/libstdc++-mips-atomic.dpatch @@ -0,0 +1,88 @@ +#! /bin/sh -e + +# DP: Fix libstdc++ atomic ops for mips/mipsel + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- libstdc++-v3/config/cpu/mips/atomicity.h.old 2004-03-18 18:36:29.000000000 +0100 ++++ libstdc++-v3/config/cpu/mips/atomicity.h 2004-10-26 16:40:09.000000000 +0200 +@@ -39,43 +39,25 @@ namespace __gnu_cxx + + __asm__ __volatile__ + ("/* Inline exchange & add */\n\t" +- "1:\n\t" + ".set push\n\t" +-#if _MIPS_SIM == _ABIO32 + ".set mips2\n\t" +-#endif +- "ll %0,%3\n\t" +- "addu %1,%4,%0\n\t" +- "sc %1,%2\n\t" ++ ".set noreorder\n\t" ++ ".set nomacro\n" ++ "1:\tll %0,(%2)\n\t" ++ "addu %1,%3,%0\n\t" ++ "sc %1,(%2)\n\t" ++ ".set reorder\n\t" ++ "beqzl %1,1b\n\t" + ".set pop\n\t" +- "beqz %1,1b\n\t" +- "/* End exchange & add */" +- : "=&r"(__result), "=&r"(__tmp), "=m"(*__mem) +- : "m" (*__mem), "r"(__val)); +- ++ "/* End exchange & add */\n" ++ : "=&r"(__result), "=&r"(__tmp), "+r"(__mem) ++ : "r"(__val) ++ : "memory"); ++ + return __result; + } + + void +- __attribute__ ((__unused__)) + __atomic_add(volatile _Atomic_word* __mem, int __val) +- { +- _Atomic_word __result; +- +- __asm__ __volatile__ +- ("/* Inline atomic add */\n\t" +- "1:\n\t" +- ".set push\n\t" +-#if _MIPS_SIM == _ABIO32 +- ".set mips2\n\t" +-#endif +- "ll %0,%2\n\t" +- "addu %0,%3,%0\n\t" +- "sc %0,%1\n\t" +- ".set pop\n\t" +- "beqz %0,1b\n\t" +- "/* End atomic add */" +- : "=&r"(__result), "=m"(*__mem) +- : "m" (*__mem), "r"(__val)); +- } ++ { __exchange_and_add(__mem, __val); } + } // namespace __gnu_cxx + + --- gcc-3.4-3.4.3.orig/debian/patches/sparc-biarch.dpatch +++ gcc-3.4-3.4.3/debian/patches/sparc-biarch.dpatch @@ -0,0 +1,59 @@ +#! /bin/sh -e +# 10_newpatch.dpatch by +# +# DP: Enable biarch support for the 32bit sparc compiler + +if [ $# -eq 3 ] && [ "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 + +--- gcc/config/sparc/linux64.h 2003-03-13 08:40:33.000000000 +0000 ++++ gcc/config/sparc/linux64.h 2003-03-13 08:46:18.000000000 +0000 +@@ -37,8 +37,8 @@ + + MASK_STACK_BIAS + MASK_APP_REGS + MASK_FPU + MASK_LONG_DOUBLE_128) + #endif + +-#undef ASM_CPU_DEFAULT_SPEC +-#define ASM_CPU_DEFAULT_SPEC "-Av9a" ++#undef ASM_CPU64_DEFAULT_SPEC ++#define ASM_CPU64_DEFAULT_SPEC "-Av9a" + + #ifdef SPARC_BI_ARCH + +--- gcc/config.gcc 2003-03-13 08:40:33.000000000 +0000 ++++ gcc/config.gcc 2003-03-13 08:48:27.000000000 +0000 +@@ -2383,8 +2383,18 @@ + gnu_ld=yes + ;; + sparc-*-linux*) # SPARC's running GNU/Linux, libc6 ++ # If cpu is specified, assume we want a 32/64 compiler ++ if test x$with_cpu = x; then + tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux.h" + tmake_file="t-slibgcc-elf-ver t-linux sparc/t-crtfm" ++ else ++ tmake_file="t-slibgcc-elf-ver t-linux sparc/t-linux64 sparc/t-crtfm" ++ tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux64.h" ++ float_format=sparc ++ need_64bit_hwint=yes ++ fi ++ #tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux.h" ++ #tmake_file="t-slibgcc-elf-ver t-linux sparc/t-crtfm" + ;; + sparc-*-lynxos*) + if test x$gas = xyes + --- gcc-3.4-3.4.3.orig/debian/patches/powerpc-config-ml.dpatch +++ gcc-3.4-3.4.3/debian/patches/powerpc-config-ml.dpatch @@ -0,0 +1,62 @@ +#! /bin/sh -e + +# powerpc-config-ml.dpatch by Matthias Klose +# +# DP: disable some biarch libraries for powerpc64 build + +if [ $# -eq 3 ] && [ "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 + +--- config-ml.in 2004-01-05 00:41:14.000000000 +0000 ++++ config-ml.in~ 2004-11-14 14:13:30.409034784 +0000 +@@ -489,6 +489,36 @@ + esac + done + fi ++ case " $multidirs " in ++ *" 64 "*) ++ # We will not be able to create libraries with -mabi=64 if ++ # we cannot even link a trivial program. It usually ++ # indicates the 64bit libraries are missing. ++ echo Check ${CC-gcc} -m64 ... ++ if echo 'main() {}' > conftest.c && ++ ${CC-gcc} -v -m64 conftest.c -o conftest; then ++ : ++ else ++ echo Could not link program with -m64, disabling it. ++ old_multidirs="${multidirs}" ++ multidirs="" ++ for x in ${old_multidirs}; do ++ case "$x" in ++ *64* ) case ${ml_realsrcdir} in ++ *"libstdc++-v3" ) multidirs="${multidirs} ${x}" ;; ++ *"libf2c" ) multidirs="${multidirs} ${x}" ;; ++ *"libobjc" ) multidirs="${multidirs} ${x}" ;; ++ *"libiberty" ) multidirs="${multidirs} ${x}" ;; ++ *"zlib" ) multidirs="${multidirs} ${x}" ;; ++ *) : ;; ++ esac ;; ++ *) multidirs="${multidirs} ${x}" ;; ++ esac ++ done ++ fi ++ rm -f conftest.c conftest ++ ;; ++ esac + ;; + sparc*-*-*) + case " $multidirs " in --- gcc-3.4-3.4.3.orig/debian/patches/boehm-gc-nocheck.dpatch +++ gcc-3.4-3.4.3/debian/patches/boehm-gc-nocheck.dpatch @@ -0,0 +1,39 @@ +#! /bin/sh -e + +# DP: Disable the boehm-gc testsuite. Hangs forever on this architecture + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- boehm-gc/Makefile.in~ 2004-06-20 16:24:06.000000000 +0200 ++++ boehm-gc/Makefile.in 2004-06-23 09:43:42.000000000 +0200 +@@ -662,7 +662,8 @@ + test "$$failed" -eq 0; \ + else :; fi + check-am: $(check_PROGRAMS) +- $(MAKE) $(AM_MAKEFLAGS) check-TESTS ++ : # $(MAKE) $(AM_MAKEFLAGS) check-TESTS ++ @echo target $@ disabled for Debian build. + check: check-recursive + all-am: Makefile $(LTLIBRARIES) all-multi + installdirs: installdirs-recursive --- gcc-3.4-3.4.3.orig/debian/patches/autoreconf.dpatch +++ gcc-3.4-3.4.3/debian/patches/autoreconf.dpatch @@ -0,0 +1,40 @@ +#! /bin/sh -e + +# DP: autoreconf several directories for proper mipsen libtool support + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + for i in libf2c libjava/libltdl libobjc libstdc++-v3 zlib; do + (cd ${dir}/${i} ; autoreconf --force) + done + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + echo unable to unpatch autoreconf. + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- libtool.m4~ 2004-09-09 19:06:00.000000000 +0900 ++++ libtool.m4 2004-09-09 19:10:12.000000000 +0900 +@@ -680,7 +680,7 @@ + # This must be Linux ELF. + linux-gnu*) + case $host_cpu in +- alpha* | mips* | hppa* | i*86 | powerpc* | sparc* | ia64* | sh* ) ++ alpha* | m32r* | mips* | hppa* | i*86 | ia64* | powerpc* | sh* | sparc* ) + lt_cv_deplibs_check_method=pass_all ;; + *) + # glibc up to 2.1.1 does not perform some relocations on ARM --- gcc-3.4-3.4.3.orig/debian/patches/m32r-gotoff.dpatch +++ gcc-3.4-3.4.3/debian/patches/m32r-gotoff.dpatch @@ -0,0 +1,76 @@ +#! /bin/sh -e +# +# +# DP: Bug fix of static variable access with GOTOFF + +if [ $# -eq 3 ] && [ "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 + +--- gcc-3.4.1/gcc/config/m32r/m32r.c.orig 2004-09-09 18:26:50.000000000 +0900 ++++ gcc-3.4.1/gcc/config/m32r/m32r.c 2004-09-09 18:27:30.000000000 +0900 +@@ -2207,6 +2207,15 @@ + else + address = reg; + ++ current_function_uses_pic_offset_table = 1; ++ if (GET_CODE (orig) == LABEL_REF ++ || GET_CODE (orig) == SYMBOL_REF && SYMBOL_REF_LOCAL_P (orig)) ++ { ++ emit_insn (gen_gotoff_load_addr (reg, orig)); ++ emit_insn (gen_addsi3 (reg, reg, pic_offset_table_rtx)); ++ return reg; ++ } ++ + emit_insn (gen_pic_load_addr (address, orig)); + + emit_insn (gen_addsi3 (address, address, pic_offset_table_rtx)); +@@ -2214,8 +2223,7 @@ + + RTX_UNCHANGING_P (pic_ref) = 1; + insn = emit_move_insn (reg, pic_ref); +- current_function_uses_pic_offset_table = 1; + #if 0 + /* Put a REG_EQUAL note on this insn, so that it can be optimized + by loop. */ + +--- gcc-3.4.1/gcc/config/m32r/m32r.md.orig 2004-09-09 18:26:50.000000000 +0900 ++++ gcc-3.4.1/gcc/config/m32r/m32r.md 2004-09-09 18:27:30.000000000 +0900 +@@ -31,7 +31,8 @@ + [(UNSPEC_LOAD_SDA_BASE 2) + (UNSPEC_SET_CBIT 3) + (UNSPEC_PIC_LOAD_ADDR 4) +- (UNSPEC_GET_PC 5)]) ++ (UNSPEC_GET_PC 5) ++ (UNSPEC_GOTOFF 6)]) + + ;; Insn type. Used to default other attribute values. + (define_attr "type" +@@ -2711,7 +2712,15 @@ + "ld24 %0,%#%1" + [(set_attr "type" "int4")]) + ++(define_insn "gotoff_load_addr" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (unspec:SI [(match_operand 1 "" "")] UNSPEC_GOTOFF))] ++ "flag_pic" ++ "seth %0,%#shigh(%1@GOTOFF)\;add3 %0,%0,low(%1@GOTOFF)" ++ [(set_attr "type" "int4") ++ (set_attr "length" "8")]) ++ + ;; Load program counter insns. + + (define_insn "get_pc" --- gcc-3.4-3.4.3.orig/debian/patches/m32r-fixes.dpatch +++ gcc-3.4-3.4.3/debian/patches/m32r-fixes.dpatch @@ -0,0 +1,89 @@ +#! /bin/sh -e +# +# +# DP: fix for shared libgcc + +if [ $# -eq 3 ] && [ "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p2 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p2 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 + +--- gcc-3.4-3.4.2/src/gcc/config.gcc.orig 2004-04-22 00:12:35.000000000 +0900 ++++ gcc-3.4-3.4.2/src/gcc/config.gcc 2004-11-17 21:23:21.000000000 +0900 +@@ -1304,7 +1304,7 @@ + m32r-*-linux*) + tm_file="dbxelf.h elfos.h svr4.h linux.h ${tm_file} m32r/linux.h" + extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" +- tmake_file="m32r/t-linux" ++ tmake_file="t-slibgcc-elf-ver m32r/t-linux" + gnu_ld=yes + use_fixproto=yes + if test x$enable_threads = xyes; then +@@ -1314,7 +1314,7 @@ + m32rle-*-linux*) + tm_file="dbxelf.h elfos.h svr4.h linux.h m32r/little.h ${tm_file} m32r/linux.h" + extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" +- tmake_file="m32r/t-linux" ++ tmake_file="t-slibgcc-elf-ver m32r/t-linux" + gnu_ld=yes + use_fixproto=yes + if test x$enable_threads = xyes; then +--- gcc-3.4-3.4.2/src/gcc/config/m32r/t-linux.orig 2003-12-31 19:33:02.000000000 +0900 ++++ gcc-3.4-3.4.2/src/gcc/config/m32r/t-linux 2004-11-17 21:18:50.000000000 +0900 +@@ -23,7 +23,6 @@ + # to produce a shared library, but since we don't know ahead of time when + # we will be doing that, we just always use -fpic when compiling the + # routines in initfini.c. +-# -fpic currently isn't supported for the m32r. + + CRTSTUFF_T_CFLAGS_S = -fPIC + +@@ -40,3 +39,12 @@ + CROSS_LIBGCC1 = + LIBGCC1_TEST = + ++# Override t-slibgcc-elf-ver to export some libgcc symbols with ++# the symbol versions that glibc used. ++SHLIB_MAPFILES += $(srcdir)/libgcc-std.ver \ ++ $(srcdir)/config/m32r/libgcc-glibc.ver ++ ++# Use unwind-dw2-fde-glibc ++LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-glibc.c \ ++ $(srcdir)/unwind-sjlj.c $(srcdir)/gthr-gnat.c $(srcdir)/unwind-c.c ++LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c gthr-gnat.c +--- /dev/null 2004-11-01 19:04:23.000000000 +0900 ++++ gcc-3.4-3.4.2/src/gcc/config/m32r/libgcc-glibc.ver 2004-11-17 21:11:56.000000000 +0900 +@@ -0,0 +1,21 @@ ++# In order to work around the very problems that force us to now generally ++# create a libgcc.so, glibc reexported a number of routines from libgcc.a. ++# By now choosing the same version tags for these specific routines, we ++# maintain enough binary compatibility to allow future versions of glibc ++# to defer implementation of these routines to libgcc.so via DT_AUXILIARY. ++ ++# Note that we cannot use the default libgcc-glibc.ver file on m32r, ++# because GLIBC_2.0 does not exist on this architecture, as the first ++# ever glibc release on the platform was GLIBC_2.3. ++ ++%inherit GCC_3.0 GLIBC_2.3 ++GLIBC_2.3 { ++ __register_frame ++ __register_frame_table ++ __deregister_frame ++ __register_frame_info ++ __deregister_frame_info ++ __frame_state_for ++ __register_frame_info_table ++} ++ --- gcc-3.4-3.4.3.orig/debian/patches/m32r-libffi.dpatch +++ gcc-3.4-3.4.3/debian/patches/m32r-libffi.dpatch @@ -0,0 +1,873 @@ +#! /bin/sh -e +# +# +# DP: Author: Kazuhiro Inaoka +# DP: libffi implementation + +if [ $# -eq 3 ] && [ "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p1 < $0 + cd ${dir}libffi && autoconf + ;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 + +--- gcc-3.4.1/libffi/Makefile.am.orig 2004-11-02 22:25:42.000000000 +0900 ++++ gcc-3.4.1/libffi/Makefile.am 2004-11-12 12:20:22.000000000 +0900 +@@ -9,6 +9,7 @@ EXTRA_DIST = LICENSE ChangeLog.v1 \ + src/arm/ffi.c src/arm/sysv.S src/arm/ffitarget.h \ + src/mips/ffi.c src/mips/n32.S src/mips/o32.S \ + src/mips/ffitarget.h \ ++ src/m32r/ffi.c src/m32r/sysv.S src/m32r/ffitarget.h \ + src/m68k/ffi.c src/m68k/sysv.S src/m68k/ffitarget.h \ + src/pa/ffi.c src/pa/linux.S src/pa/ffitarget.h \ + src/powerpc/ffi.c src/powerpc/sysv.S \ +@@ -25,7 +26,6 @@ EXTRA_DIST = LICENSE ChangeLog.v1 \ + src/x86/ffi.c src/x86/sysv.S src/x86/win32.S \ + src/x86/ffi64.c src/x86/unix64.S src/x86/ffitarget.h + +- + VPATH = @srcdir@:@srcdir@/src:@srcdir@/src/@TARGETDIR@ + + ## ################################################################ +@@ -105,6 +105,7 @@ TARGET_SRC_S390 = src/s390/sysv.S src/s + TARGET_SRC_X86_64 = src/x86/ffi64.c src/x86/unix64.S src/x86/ffi.c src/x86/sysv.S + TARGET_SRC_SH = src/sh/sysv.S src/sh/ffi.c + TARGET_SRC_SH64 = src/sh64/sysv.S src/sh64/ffi.c ++TARGET_SRC_M32R = src/m32r/sysv.S src/m32r/ffi.c + + ##libffi_la_SOURCES = src/debug.c src/prep_cif.c src/types.c $(TARGET_SRC_@TARGET@) + ## Work around automake deficiency +@@ -178,6 +179,10 @@ if PA + libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_PA) + libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_PA) + endif ++if M32R ++libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_M32R) ++libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_M32R) ++endif + + AM_CFLAGS = -Wall -g -fexceptions + +--- gcc-3.4.1/libffi/Makefile.in.orig 2004-11-12 16:52:34.000000000 +0900 ++++ gcc-3.4.1/libffi/Makefile.in 2004-11-12 16:57:15.000000000 +0900 +@@ -95,26 +95,7 @@ AUTOMAKE_OPTIONS = cygnus + + SUBDIRS = include testsuite + +-EXTRA_DIST = LICENSE ChangeLog.v1 \ +- src/alpha/ffi.c src/alpha/osf.S src/alpha/ffitarget.h \ +- src/arm/ffi.c src/arm/sysv.S src/arm/ffitarget.h \ +- src/mips/ffi.c src/mips/n32.S src/mips/o32.S \ +- src/mips/ffitarget.h \ +- src/m68k/ffi.c src/m68k/sysv.S src/m68k/ffitarget.h \ +- src/pa/ffi.c src/pa/linux.S src/pa/ffitarget.h \ +- src/powerpc/ffi.c src/powerpc/sysv.S \ +- src/powerpc/linux64.S src/powerpc/linux64_closure.S \ +- src/powerpc/ppc_closure.S src/powerpc/asm.h \ +- src/powerpc/aix.S src/powerpc/darwin.S \ +- src/powerpc/aix_closure.S src/powerpc/darwin_closure.S \ +- src/powerpc/ffi_darwin.c src/powerpc/ffitarget.h \ +- src/s390/ffi.c src/s390/sysv.S src/s390/ffitarget.h \ +- src/sh/ffi.c src/sh/sysv.S src/sh/ffitarget.h \ +- src/sh64/ffi.c src/sh64/sysv.S src/sh64/ffitarget.h \ +- src/sparc/v8.S src/sparc/v9.S src/sparc/ffitarget.h \ +- src/sparc/ffi.c \ +- src/x86/ffi.c src/x86/sysv.S src/x86/win32.S \ +- src/x86/ffi64.c src/x86/unix64.S src/x86/ffitarget.h ++EXTRA_DIST = LICENSE ChangeLog.v1 src/alpha/ffi.c src/alpha/osf.S src/alpha/ffitarget.h src/arm/ffi.c src/arm/sysv.S src/arm/ffitarget.h src/mips/ffi.c src/mips/n32.S src/mips/o32.S src/mips/ffitarget.h src/m32r/ffi.c src/m32r/sysv.S src/m32r/ffitarget.h src/m68k/ffi.c src/m68k/sysv.S src/m68k/ffitarget.h src/pa/ffi.c src/pa/linux.S src/pa/ffitarget.h src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/linux64.S src/powerpc/linux64_closure.S src/powerpc/ppc_closure.S src/powerpc/asm.h src/powerpc/aix.S src/powerpc/darwin.S src/powerpc/aix_closure.S src/powerpc/darwin_closure.S src/powerpc/ffi_darwin.c src/powerpc/ffitarget.h src/s390/ffi.c src/s390/sysv.S src/s390/ffitarget.h src/sh/ffi.c src/sh/sysv.S src/sh/ffitarget.h src/sh64/ffi.c src/sh64/sysv.S src/sh64/ffitarget.h src/sparc/v8.S src/sparc/v9.S src/sparc/ffitarget.h src/sparc/ffi.c src/x86/ffi.c src/x86/sysv.S src/x86/win32.S src/x86/ffi64.c src/x86/unix64.S src/x86/ffitarget.h + + + VPATH = @srcdir@:@srcdir@/src:@srcdir@/src/@TARGETDIR@ +@@ -122,41 +103,7 @@ VPATH = @srcdir@:@srcdir@/src:@srcdir@/s + # Work around what appears to be a GNU make bug handling MAKEFLAGS + # values defined in terms of make variables, as is the case for CC and + # friends when we are called from the top level Makefile. +-AM_MAKEFLAGS = \ +- "AR_FLAGS=$(AR_FLAGS)" \ +- "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ +- "CFLAGS=$(CFLAGS)" \ +- "CXXFLAGS=$(CXXFLAGS)" \ +- "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ +- "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ +- "INSTALL=$(INSTALL)" \ +- "INSTALL_DATA=$(INSTALL_DATA)" \ +- "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ +- "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ +- "JC1FLAGS=$(JC1FLAGS)" \ +- "LDFLAGS=$(LDFLAGS)" \ +- "LIBCFLAGS=$(LIBCFLAGS)" \ +- "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ +- "MAKE=$(MAKE)" \ +- "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ +- "PICFLAG=$(PICFLAG)" \ +- "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ +- "RUNTESTFLAGS=$(RUNTESTFLAGS)" \ +- "SHELL=$(SHELL)" \ +- "exec_prefix=$(exec_prefix)" \ +- "infodir=$(infodir)" \ +- "libdir=$(libdir)" \ +- "prefix=$(prefix)" \ +- "AR=$(AR)" \ +- "AS=$(AS)" \ +- "CC=$(CC)" \ +- "CXX=$(CXX)" \ +- "LD=$(LD)" \ +- "LIBCFLAGS=$(LIBCFLAGS)" \ +- "NM=$(NM)" \ +- "PICFLAG=$(PICFLAG)" \ +- "RANLIB=$(RANLIB)" \ +- "DESTDIR=$(DESTDIR)" ++AM_MAKEFLAGS = "AR_FLAGS=$(AR_FLAGS)" "CC_FOR_BUILD=$(CC_FOR_BUILD)" "CFLAGS=$(CFLAGS)" "CXXFLAGS=$(CXXFLAGS)" "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" "INSTALL=$(INSTALL)" "INSTALL_DATA=$(INSTALL_DATA)" "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" "JC1FLAGS=$(JC1FLAGS)" "LDFLAGS=$(LDFLAGS)" "LIBCFLAGS=$(LIBCFLAGS)" "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" "MAKE=$(MAKE)" "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" "PICFLAG=$(PICFLAG)" "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" "RUNTESTFLAGS=$(RUNTESTFLAGS)" "SHELL=$(SHELL)" "exec_prefix=$(exec_prefix)" "infodir=$(infodir)" "libdir=$(libdir)" "prefix=$(prefix)" "AR=$(AR)" "AS=$(AS)" "CC=$(CC)" "CXX=$(CXX)" "LD=$(LD)" "LIBCFLAGS=$(LIBCFLAGS)" "NM=$(NM)" "PICFLAG=$(PICFLAG)" "RANLIB=$(RANLIB)" "DESTDIR=$(DESTDIR)" + + + MAKEOVERRIDES = +@@ -189,44 +136,46 @@ TARGET_SRC_S390 = src/s390/sysv.S src/s3 + TARGET_SRC_X86_64 = src/x86/ffi64.c src/x86/unix64.S src/x86/ffi.c src/x86/sysv.S + TARGET_SRC_SH = src/sh/sysv.S src/sh/ffi.c + TARGET_SRC_SH64 = src/sh64/sysv.S src/sh64/ffi.c ++TARGET_SRC_M32R = src/m32r/sysv.S src/m32r/ffi.c + +-libffi_la_common_SOURCES = src/debug.c src/prep_cif.c src/types.c \ +- src/raw_api.c src/java_raw_api.c ++libffi_la_common_SOURCES = src/debug.c src/prep_cif.c src/types.c src/raw_api.c src/java_raw_api.c + +-@MIPS_IRIX_TRUE@libffi_la_SOURCES = @MIPS_IRIX_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_IRIX) +-@MIPS_LINUX_TRUE@libffi_la_SOURCES = @MIPS_LINUX_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_LINUX) +-@X86_TRUE@libffi_la_SOURCES = @X86_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_X86) +-@X86_WIN32_TRUE@libffi_la_SOURCES = @X86_WIN32_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_X86_WIN32) +-@SPARC_TRUE@libffi_la_SOURCES = @SPARC_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_SPARC) +-@ALPHA_TRUE@libffi_la_SOURCES = @ALPHA_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_ALPHA) +-@IA64_TRUE@libffi_la_SOURCES = @IA64_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_IA64) +-@M68K_TRUE@libffi_la_SOURCES = @M68K_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_M68K) +-@PA_TRUE@libffi_la_SOURCES = @PA_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_PA) +-@POWERPC_TRUE@libffi_la_SOURCES = @POWERPC_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC) +-@POWERPC_AIX_TRUE@libffi_la_SOURCES = @POWERPC_AIX_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC_AIX) +-@POWERPC_DARWIN_TRUE@libffi_la_SOURCES = @POWERPC_DARWIN_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC_DARWIN) +-@ARM_TRUE@libffi_la_SOURCES = @ARM_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_ARM) +-@S390_TRUE@libffi_la_SOURCES = @S390_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_S390) +-@X86_64_TRUE@libffi_la_SOURCES = @X86_64_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_X86_64) +-@SH_TRUE@libffi_la_SOURCES = @SH_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_SH) +-@SH64_TRUE@libffi_la_SOURCES = @SH64_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_SH64) +-@MIPS_IRIX_TRUE@libffi_convenience_la_SOURCES = @MIPS_IRIX_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_IRIX) +-@MIPS_LINUX_TRUE@libffi_convenience_la_SOURCES = @MIPS_LINUX_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_LINUX) +-@X86_TRUE@libffi_convenience_la_SOURCES = @X86_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_X86) +-@X86_WIN32_TRUE@libffi_convenience_la_SOURCES = @X86_WIN32_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_X86_WIN32) +-@SPARC_TRUE@libffi_convenience_la_SOURCES = @SPARC_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_SPARC) +-@ALPHA_TRUE@libffi_convenience_la_SOURCES = @ALPHA_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_ALPHA) +-@IA64_TRUE@libffi_convenience_la_SOURCES = @IA64_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_IA64) +-@M68K_TRUE@libffi_convenience_la_SOURCES = @M68K_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_M68K) +-@PA_TRUE@libffi_convenience_la_SOURCES = @PA_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_PA) +-@POWERPC_TRUE@libffi_convenience_la_SOURCES = @POWERPC_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC) +-@POWERPC_AIX_TRUE@libffi_convenience_la_SOURCES = @POWERPC_AIX_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC_AIX) +-@POWERPC_DARWIN_TRUE@libffi_convenience_la_SOURCES = @POWERPC_DARWIN_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC_DARWIN) +-@ARM_TRUE@libffi_convenience_la_SOURCES = @ARM_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_ARM) +-@S390_TRUE@libffi_convenience_la_SOURCES = @S390_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_S390) +-@X86_64_TRUE@libffi_convenience_la_SOURCES = @X86_64_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_X86_64) +-@SH_TRUE@libffi_convenience_la_SOURCES = @SH_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_SH) +-@SH64_TRUE@libffi_convenience_la_SOURCES = @SH64_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_SH64) ++@MIPS_IRIX_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_IRIX) ++@MIPS_LINUX_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_LINUX) ++@X86_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_X86) ++@X86_WIN32_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_X86_WIN32) ++@SPARC_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_SPARC) ++@ALPHA_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_ALPHA) ++@IA64_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_IA64) ++@M68K_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_M68K) ++@POWERPC_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC) ++@POWERPC_AIX_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC_AIX) ++@POWERPC_DARWIN_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC_DARWIN) ++@ARM_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_ARM) ++@S390_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_S390) ++@X86_64_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_X86_64) ++@SH_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_SH) ++@SH64_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_SH64) ++@PA_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_PA) ++@M32R_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_M32R) ++@MIPS_IRIX_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_IRIX) ++@MIPS_LINUX_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_LINUX) ++@X86_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_X86) ++@X86_WIN32_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_X86_WIN32) ++@SPARC_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_SPARC) ++@ALPHA_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_ALPHA) ++@IA64_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_IA64) ++@M68K_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_M68K) ++@POWERPC_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC) ++@POWERPC_AIX_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC_AIX) ++@POWERPC_DARWIN_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC_DARWIN) ++@ARM_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_ARM) ++@S390_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_S390) ++@X86_64_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_X86_64) ++@SH_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_SH) ++@SH64_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_SH64) ++@PA_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_PA) ++@M32R_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_M32R) + + AM_CFLAGS = -Wall -g -fexceptions + +@@ -246,122 +195,43 @@ LDFLAGS = @LDFLAGS@ + LIBS = @LIBS@ + libffi_convenience_la_LDFLAGS = + libffi_convenience_la_LIBADD = +-@X86_64_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo \ +-@X86_64_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \ +-@X86_64_TRUE@src/java_raw_api.lo src/x86/ffi64.lo src/x86/unix64.lo \ +-@X86_64_TRUE@src/x86/ffi.lo src/x86/sysv.lo +-@M68K_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo src/prep_cif.lo \ +-@M68K_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \ +-@M68K_TRUE@src/m68k/ffi.lo src/m68k/sysv.lo +-@POWERPC_DARWIN_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo \ +-@POWERPC_DARWIN_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \ +-@POWERPC_DARWIN_TRUE@src/java_raw_api.lo src/powerpc/ffi_darwin.lo \ +-@POWERPC_DARWIN_TRUE@src/powerpc/darwin.lo \ +-@POWERPC_DARWIN_TRUE@src/powerpc/darwin_closure.lo +-@ALPHA_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo \ +-@ALPHA_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \ +-@ALPHA_TRUE@src/java_raw_api.lo src/alpha/ffi.lo src/alpha/osf.lo +-@ARM_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo src/prep_cif.lo \ +-@ARM_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \ +-@ARM_TRUE@src/arm/sysv.lo src/arm/ffi.lo +-@PA_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo src/prep_cif.lo \ +-@PA_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \ +-@PA_TRUE@src/pa/ffi.lo src/pa/linux.lo +-@POWERPC_AIX_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo \ +-@POWERPC_AIX_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \ +-@POWERPC_AIX_TRUE@src/java_raw_api.lo src/powerpc/ffi_darwin.lo \ +-@POWERPC_AIX_TRUE@src/powerpc/aix.lo src/powerpc/aix_closure.lo +-@POWERPC_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo \ +-@POWERPC_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \ +-@POWERPC_TRUE@src/java_raw_api.lo src/powerpc/ffi.lo \ +-@POWERPC_TRUE@src/powerpc/sysv.lo src/powerpc/ppc_closure.lo \ +-@POWERPC_TRUE@src/powerpc/linux64.lo src/powerpc/linux64_closure.lo +-@MIPS_LINUX_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo \ +-@MIPS_LINUX_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \ +-@MIPS_LINUX_TRUE@src/java_raw_api.lo src/mips/ffi.lo src/mips/o32.lo +-@SH_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo src/prep_cif.lo \ +-@SH_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo src/sh/sysv.lo \ +-@SH_TRUE@src/sh/ffi.lo +-@X86_WIN32_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo \ +-@X86_WIN32_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \ +-@X86_WIN32_TRUE@src/java_raw_api.lo src/x86/ffi.lo src/x86/win32.lo +-@SPARC_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo \ +-@SPARC_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \ +-@SPARC_TRUE@src/java_raw_api.lo src/sparc/ffi.lo src/sparc/v8.lo \ +-@SPARC_TRUE@src/sparc/v9.lo +-@SH64_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo src/prep_cif.lo \ +-@SH64_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \ +-@SH64_TRUE@src/sh64/sysv.lo src/sh64/ffi.lo +-@S390_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo src/prep_cif.lo \ +-@S390_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \ +-@S390_TRUE@src/s390/sysv.lo src/s390/ffi.lo +-@MIPS_IRIX_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo \ +-@MIPS_IRIX_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \ +-@MIPS_IRIX_TRUE@src/java_raw_api.lo src/mips/ffi.lo src/mips/o32.lo \ +-@MIPS_IRIX_TRUE@src/mips/n32.lo +-@X86_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo src/prep_cif.lo \ +-@X86_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \ +-@X86_TRUE@src/x86/ffi.lo src/x86/sysv.lo +-@IA64_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo src/prep_cif.lo \ +-@IA64_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \ +-@IA64_TRUE@src/ia64/ffi.lo src/ia64/unix.lo ++@SH_TRUE@libffi_convenience_la_OBJECTS = ++@IA64_TRUE@libffi_convenience_la_OBJECTS = ++@X86_TRUE@libffi_convenience_la_OBJECTS = ++@POWERPC_TRUE@libffi_convenience_la_OBJECTS = ++@MIPS_IRIX_TRUE@libffi_convenience_la_OBJECTS = ++@MIPS_LINUX_TRUE@libffi_convenience_la_OBJECTS = ++@SPARC_TRUE@libffi_convenience_la_OBJECTS = ++@POWERPC_AIX_TRUE@libffi_convenience_la_OBJECTS = ++@ARM_TRUE@libffi_convenience_la_OBJECTS = ++@ALPHA_TRUE@libffi_convenience_la_OBJECTS = ++@M32R_TRUE@libffi_convenience_la_OBJECTS = ++@S390_TRUE@libffi_convenience_la_OBJECTS = ++@PA_TRUE@libffi_convenience_la_OBJECTS = ++@M68K_TRUE@libffi_convenience_la_OBJECTS = ++@SH64_TRUE@libffi_convenience_la_OBJECTS = ++@X86_WIN32_TRUE@libffi_convenience_la_OBJECTS = ++@X86_64_TRUE@libffi_convenience_la_OBJECTS = ++@POWERPC_DARWIN_TRUE@libffi_convenience_la_OBJECTS = + libffi_la_LIBADD = +-@X86_64_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \ +-@X86_64_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \ +-@X86_64_TRUE@src/x86/ffi64.lo src/x86/unix64.lo src/x86/ffi.lo \ +-@X86_64_TRUE@src/x86/sysv.lo +-@M68K_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \ +-@M68K_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \ +-@M68K_TRUE@src/m68k/ffi.lo src/m68k/sysv.lo +-@POWERPC_DARWIN_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \ +-@POWERPC_DARWIN_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \ +-@POWERPC_DARWIN_TRUE@src/powerpc/ffi_darwin.lo src/powerpc/darwin.lo \ +-@POWERPC_DARWIN_TRUE@src/powerpc/darwin_closure.lo +-@ALPHA_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \ +-@ALPHA_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \ +-@ALPHA_TRUE@src/alpha/ffi.lo src/alpha/osf.lo +-@ARM_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo src/types.lo \ +-@ARM_TRUE@src/raw_api.lo src/java_raw_api.lo src/arm/sysv.lo \ +-@ARM_TRUE@src/arm/ffi.lo +-@PA_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo src/types.lo \ +-@PA_TRUE@src/raw_api.lo src/java_raw_api.lo src/pa/linux.lo \ +-@PA_TRUE@src/pa/ffi.lo +-@POWERPC_AIX_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \ +-@POWERPC_AIX_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \ +-@POWERPC_AIX_TRUE@src/powerpc/ffi_darwin.lo src/powerpc/aix.lo \ +-@POWERPC_AIX_TRUE@src/powerpc/aix_closure.lo +-@POWERPC_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \ +-@POWERPC_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \ +-@POWERPC_TRUE@src/powerpc/ffi.lo src/powerpc/sysv.lo \ +-@POWERPC_TRUE@src/powerpc/ppc_closure.lo src/powerpc/linux64.lo \ +-@POWERPC_TRUE@src/powerpc/linux64_closure.lo +-@MIPS_LINUX_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \ +-@MIPS_LINUX_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \ +-@MIPS_LINUX_TRUE@src/mips/ffi.lo src/mips/o32.lo +-@SH_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo src/types.lo \ +-@SH_TRUE@src/raw_api.lo src/java_raw_api.lo src/sh/sysv.lo \ +-@SH_TRUE@src/sh/ffi.lo +-@X86_WIN32_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \ +-@X86_WIN32_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \ +-@X86_WIN32_TRUE@src/x86/ffi.lo src/x86/win32.lo +-@SPARC_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \ +-@SPARC_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \ +-@SPARC_TRUE@src/sparc/ffi.lo src/sparc/v8.lo src/sparc/v9.lo +-@SH64_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \ +-@SH64_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \ +-@SH64_TRUE@src/sh64/sysv.lo src/sh64/ffi.lo +-@S390_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \ +-@S390_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \ +-@S390_TRUE@src/s390/sysv.lo src/s390/ffi.lo +-@MIPS_IRIX_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \ +-@MIPS_IRIX_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \ +-@MIPS_IRIX_TRUE@src/mips/ffi.lo src/mips/o32.lo src/mips/n32.lo +-@X86_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo src/types.lo \ +-@X86_TRUE@src/raw_api.lo src/java_raw_api.lo src/x86/ffi.lo \ +-@X86_TRUE@src/x86/sysv.lo +-@IA64_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \ +-@IA64_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \ +-@IA64_TRUE@src/ia64/ffi.lo src/ia64/unix.lo ++@SH_TRUE@libffi_la_OBJECTS = ++@IA64_TRUE@libffi_la_OBJECTS = ++@X86_TRUE@libffi_la_OBJECTS = ++@POWERPC_TRUE@libffi_la_OBJECTS = ++@MIPS_IRIX_TRUE@libffi_la_OBJECTS = ++@MIPS_LINUX_TRUE@libffi_la_OBJECTS = ++@SPARC_TRUE@libffi_la_OBJECTS = ++@POWERPC_AIX_TRUE@libffi_la_OBJECTS = ++@ARM_TRUE@libffi_la_OBJECTS = ++@ALPHA_TRUE@libffi_la_OBJECTS = ++@M32R_TRUE@libffi_la_OBJECTS = ++@S390_TRUE@libffi_la_OBJECTS = ++@PA_TRUE@libffi_la_OBJECTS = ++@M68K_TRUE@libffi_la_OBJECTS = ++@SH64_TRUE@libffi_la_OBJECTS = ++@X86_WIN32_TRUE@libffi_la_OBJECTS = ++@X86_64_TRUE@libffi_la_OBJECTS = ++@POWERPC_DARWIN_TRUE@libffi_la_OBJECTS = + CFLAGS = @CFLAGS@ + COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) + LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +@@ -526,7 +396,7 @@ maintainer-clean-recursive: + dot_seen=no; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ +- test "$$subdir" = "." && dot_seen=yes; \ ++ test "$$subdir" != "." || dot_seen=yes; \ + done; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ + target=`echo $@ | sed s/-recursive//`; \ +@@ -568,7 +438,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCE + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)fficonfig.h.in$$unique$(LISP)$$tags" \ +- || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags fficonfig.h.in $$unique $(LISP) -o $$here/TAGS) ++ || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags fficonfig.h.in $$unique $(LISP)) + + mostlyclean-tags: + +@@ -618,9 +488,10 @@ distdir: $(DISTFILES) + mkdir $(distdir) + -chmod 777 $(distdir) + $(mkinstalldirs) $(distdir)/src/alpha $(distdir)/src/arm \ +- $(distdir)/src/m68k $(distdir)/src/mips $(distdir)/src/pa \ +- $(distdir)/src/powerpc $(distdir)/src/s390 $(distdir)/src/sh \ +- $(distdir)/src/sh64 $(distdir)/src/sparc $(distdir)/src/x86 ++ $(distdir)/src/m32r $(distdir)/src/m68k $(distdir)/src/mips \ ++ $(distdir)/src/pa $(distdir)/src/powerpc $(distdir)/src/s390 \ ++ $(distdir)/src/sh $(distdir)/src/sh64 $(distdir)/src/sparc \ ++ $(distdir)/src/x86 + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ +--- gcc-3.4.1/libffi/configure.in.orig 2004-11-02 22:25:28.000000000 +0900 ++++ gcc-3.4.1/libffi/configure.in 2004-11-12 12:14:04.000000000 +0900 +@@ -88,6 +88,7 @@ x86_64-*-linux*) TARGET=X86_64; TARGETDI + sh-*-linux* | sh[[34]]*-*-linux*) TARGET=SH; TARGETDIR=sh;; + sh64-*-linux* | sh5*-*-linux*) TARGET=SH64; TARGETDIR=sh64;; + hppa-*-linux* | parisc-*-linux*) TARGET=PA; TARGETDIR=pa;; ++m32r*-*-linux* ) TARGET=M32R; TARGETDIR=m32r;; + esac + + AC_SUBST(AM_RUNTESTFLAGS) +@@ -113,6 +114,7 @@ AM_CONDITIONAL(X86_64, test x$TARGET = x + AM_CONDITIONAL(SH, test x$TARGET = xSH) + AM_CONDITIONAL(SH64, test x$TARGET = xSH64) + AM_CONDITIONAL(PA, test x$TARGET = xPA) ++AM_CONDITIONAL(M32R, test x$TARGET = xM32R) + + case x$TARGET in + xMIPS*) TARGET=MIPS ;; +--- gcc-3.4.1/libffi/src/m32r/ffi.c 1970-01-01 09:00:00.000000000 +0900 ++++ gcc-3.4.1/libffi/src/m32r/ffi.c 2004-10-22 11:16:10.000000000 +0900 +@@ -0,0 +1,246 @@ ++/* ----------------------------------------------------------------------- ++ ffi.c - Copyright (c) 2004 Renesas Technology ++ ++ M32R Foreign Function Interface ++ ++ Permission is hereby granted, free of charge, to any person obtaining ++ a copy of this software and associated documentation files (the ++ ``Software''), to deal in the Software without restriction, including ++ without limitation the rights to use, copy, modify, merge, publish, ++ distribute, sublicense, and/or sell copies of the Software, and to ++ permit persons to whom the Software is furnished to do so, subject to ++ the following conditions: ++ ++ The above copyright notice and this permission notice shall be included ++ in all copies or substantial portions of the Software. ++ ++ THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS ++ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ++ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. ++ IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR ++ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ++ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ++ OTHER DEALINGS IN THE SOFTWARE. ++ ----------------------------------------------------------------------- */ ++ ++#include ++#include ++ ++#include ++ ++/* ffi_prep_args is called by the assembly routine once stack space ++ has been allocated for the function's arguments */ ++ ++/*@-exportheader@*/ ++void ffi_prep_args(char *stack, extended_cif *ecif) ++/*@=exportheader@*/ ++{ ++ register unsigned int i; ++ register int tmp; ++ register unsigned int avn; ++ register void **p_argv; ++ register char *argp; ++ register ffi_type **p_arg; ++ ++ tmp = 0; ++ argp = stack; ++ ++ if ( ecif->cif->rtype->type == FFI_TYPE_STRUCT && ecif->cif->rtype->size > 8 ) { ++ *(void **) argp = ecif->rvalue; ++ argp += 4; ++ } ++ ++ avn = ecif->cif->nargs; ++ p_argv = ecif->avalue; ++ ++ for (i = ecif->cif->nargs, p_arg = ecif->cif->arg_types; ++ (i != 0) && (avn != 0); ++ i--, p_arg++) ++ { ++ size_t z; ++ ++ /* Align if necessary */ ++ if (((*p_arg)->alignment - 1) & (unsigned) argp) { ++ argp = (char *) ALIGN(argp, (*p_arg)->alignment); ++ } ++ ++ if (avn != 0) ++ { ++ avn--; ++ z = (*p_arg)->size; ++ if (z < sizeof(int)) ++ { ++ z = sizeof(int); ++ switch ((*p_arg)->type) ++ { ++ case FFI_TYPE_SINT8: ++ *(signed int *) argp = (signed int)*(SINT8 *)(* p_argv); ++ break; ++ ++ case FFI_TYPE_UINT8: ++ *(unsigned int *) argp = (unsigned int)*(UINT8 *)(* p_argv); ++ break; ++ ++ case FFI_TYPE_SINT16: ++ *(signed int *) argp = (signed int)*(SINT16 *)(* p_argv); ++ break; ++ ++ case FFI_TYPE_UINT16: ++ *(unsigned int *) argp = (unsigned int)*(UINT16 *)(* p_argv); ++ break; ++ ++ case FFI_TYPE_STRUCT: ++ z = (*p_arg)->size; ++ if ( (*p_arg)->alignment != 1 ) ++ memcpy(argp, *p_argv, z); ++ else ++ memcpy(argp + 4 - z, *p_argv, z); ++ z = sizeof(int); ++ break; ++ ++ default: ++ FFI_ASSERT(0); ++ } ++ } ++ else if (z == sizeof(int)) ++ { ++ *(unsigned int *) argp = (unsigned int)*(UINT32 *)(* p_argv); ++ } ++ else ++ { ++ if ( (*p_arg)->type == FFI_TYPE_STRUCT ) ++ { ++ if ( z > 8 ) ++ { ++ *(unsigned int *) argp = (unsigned int)(void *)(* p_argv); ++ z = sizeof(void *); ++ } ++ else ++ { ++ memcpy(argp, *p_argv, z); ++ z = 8; ++ } ++ } ++ else ++ { /* double or long long 64bit */ ++ memcpy(argp, *p_argv, z); ++ } ++ } ++ p_argv++; ++ argp += z; ++ } ++ } ++ ++ return; ++} ++ ++/* Perform machine dependent cif processing */ ++ffi_status ffi_prep_cif_machdep(ffi_cif *cif) ++{ ++ /* Set the return type flag */ ++ switch (cif->rtype->type) ++ { ++ case FFI_TYPE_VOID: ++ cif->flags = (unsigned) cif->rtype->type; ++ break; ++ ++ case FFI_TYPE_STRUCT: ++ if (cif->rtype->size <= 4) ++ { ++ cif->flags = FFI_TYPE_INT; ++ } ++ else if (cif->rtype->size <= 8) ++ { ++ cif->flags = FFI_TYPE_DOUBLE; ++ } ++ else ++ { ++ cif->flags = (unsigned) cif->rtype->type; ++ } ++ break; ++ ++ case FFI_TYPE_SINT64: ++ case FFI_TYPE_UINT64: ++ case FFI_TYPE_DOUBLE: ++ cif->flags = FFI_TYPE_DOUBLE; ++ break; ++ ++ case FFI_TYPE_FLOAT: ++ default: ++ cif->flags = FFI_TYPE_INT; ++ break; ++ } ++ ++ return FFI_OK; ++} ++ ++/*@-declundef@*/ ++/*@-exportheader@*/ ++extern void ffi_call_SYSV(void (*)(char *, extended_cif *), ++ /*@out@*/ extended_cif *, ++ unsigned, unsigned, ++ /*@out@*/ unsigned *, ++ void (*fn)()); ++/*@=declundef@*/ ++/*@=exportheader@*/ ++ ++void ffi_call(/*@dependent@*/ ffi_cif *cif, ++ void (*fn)(), ++ /*@out@*/ void *rvalue, ++ /*@dependent@*/ void **avalue) ++{ ++ extended_cif ecif; ++ ++ ecif.cif = cif; ++ ecif.avalue = avalue; ++ ++ /* If the return value is a struct and we don't have a return */ ++ /* value address then we need to make one */ ++ ++ if ((rvalue == NULL) && ++ (cif->rtype->type == FFI_TYPE_STRUCT)) ++ { ++ /*@-sysunrecog@*/ ++ ecif.rvalue = alloca(cif->rtype->size); ++ /*@=sysunrecog@*/ ++ } ++ else ++ ecif.rvalue = rvalue; ++ ++ ++ switch (cif->abi) ++ { ++ case FFI_SYSV: ++ /*@-usedef@*/ ++ ffi_call_SYSV(ffi_prep_args, &ecif, cif->bytes, ++ cif->flags, ecif.rvalue, fn); ++ if ( cif->rtype->type == FFI_TYPE_STRUCT ) ++ { ++ int size = cif->rtype->size; ++ int align = cif->rtype->alignment; ++ if (size < 4) ++ { ++ if ( align == 1 ) ++ *(unsigned long *)(ecif.rvalue) <<= (4 - size)*8; ++ } ++ else if ( 4 < size && size < 8 ) ++ { ++ if ( align == 1 ) ++ { ++ memcpy(ecif.rvalue, ecif.rvalue + 8-size, size); ++ } ++ else if (align == 2) ++ { ++ if (size & 1) size += 1; ++ if (size != 8) ++ memcpy(ecif.rvalue, ecif.rvalue + 8-size, size); ++ } ++ } ++ } ++ /*@=usedef@*/ ++ break; ++ default: ++ FFI_ASSERT(0); ++ break; ++ } ++} +--- gcc-3.4.1/libffi/src/m32r/ffitarget.h 1970-01-01 09:00:00.000000000 +0900 ++++ gcc-3.4.1/libffi/src/m32r/ffitarget.h 2004-10-22 10:22:24.000000000 +0900 +@@ -0,0 +1,48 @@ ++/* -----------------------------------------------------------------*-C-*- ++ ffitarget.h - Copyright (c) 2004 Renesas Technology. ++ Target configuration macros for M32R. ++ ++ Permission is hereby granted, free of charge, to any person obtaining ++ a copy of this software and associated documentation files (the ++ ``Software''), to deal in the Software without restriction, including ++ without limitation the rights to use, copy, modify, merge, publish, ++ distribute, sublicense, and/or sell copies of the Software, and to ++ permit persons to whom the Software is furnished to do so, subject to ++ the following conditions: ++ ++ The above copyright notice and this permission notice shall be included ++ in all copies or substantial portions of the Software. ++ ++ THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS ++ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ++ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. ++ IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR ++ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ++ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ++ OTHER DEALINGS IN THE SOFTWARE. ++ ++ ----------------------------------------------------------------------- */ ++ ++#ifndef LIBFFI_TARGET_H ++#define LIBFFI_TARGET_H ++ ++/* ---- Generic type definitions ----------------------------------------- */ ++ ++#ifndef LIBFFI_ASM ++typedef unsigned long ffi_arg; ++typedef signed long ffi_sarg; ++ ++typedef enum ffi_abi { ++ FFI_FIRST_ABI = 0, ++ FFI_SYSV, ++ FFI_DEFAULT_ABI = FFI_SYSV, ++ FFI_LAST_ABI = FFI_DEFAULT_ABI + 1 ++} ffi_abi; ++#endif ++ ++#define FFI_CLOSURES 1 ++#define FFI_TRAMPOLINE_SIZE 24 ++#define FFI_NATIVE_RAW_API 0 ++ ++#endif ++ +--- gcc-3.4.1/libffi/src/m32r/sysv.S 1970-01-01 09:00:00.000000000 +0900 ++++ gcc-3.4.1/libffi/src/m32r/sysv.S 2004-10-22 10:22:24.000000000 +0900 +@@ -0,0 +1,122 @@ ++/* ----------------------------------------------------------------------- ++ sysv.S - Copyright (c) 2004 Renesas Technology ++ ++ M32R Foreign Function Interface ++ ++ Permission is hereby granted, free of charge, to any person obtaining ++ a copy of this software and associated documentation files (the ++ ``Software''), to deal in the Software without restriction, including ++ without limitation the rights to use, copy, modify, merge, publish, ++ distribute, sublicense, and/or sell copies of the Software, and to ++ permit persons to whom the Software is furnished to do so, subject to ++ the following conditions: ++ ++ The above copyright notice and this permission notice shall be included ++ in all copies or substantial portions of the Software. ++ ++ THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS ++ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ++ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. ++ IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR ++ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ++ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ++ OTHER DEALINGS IN THE SOFTWARE. ++ ----------------------------------------------------------------------- */ ++ ++#define LIBFFI_ASM ++#include ++#include ++#ifdef HAVE_MACHINE_ASM_H ++#include ++#else ++/* XXX these lose for some platforms, I'm sure. */ ++#define CNAME(x) x ++#define ENTRY(x) .globl CNAME(x)! .type CNAME(x),%function! CNAME(x): ++#endif ++ ++.text ++ ++ /* R0: ffi_prep_args */ ++ /* R1: &ecif */ ++ /* R2: cif->bytes */ ++ /* R3: fig->flags */ ++ /* sp+0: ecif.rvalue */ ++ /* sp+4: fn */ ++ ++ /* This assumes we are using gas. */ ++ENTRY(ffi_call_SYSV) ++ /* Save registers */ ++ push fp ++ push lr ++ push r3 ++ push r2 ++ push r1 ++ push r0 ++ mv fp, sp ++ ++ /* Make room for all of the new args. */ ++ sub sp, r2 ++ ++ /* Place all of the ffi_prep_args in position */ ++ mv lr, r0 ++ mv r0, sp ++ /* R1 already set */ ++ ++ /* And call */ ++ jl lr ++ ++ /* move first 4 parameters in registers */ ++ ld r0, @(0,sp) ++ ld r1, @(4,sp) ++ ld r2, @(8,sp) ++ ld r3, @(12,sp) ++ ++ /* and adjust stack */ ++ ld lr, @(8,fp) ++ cmpi lr, #16 ++ bc adjust_stack ++ ldi lr, #16 ++adjust_stack: ++ add sp, lr ++ ++ /* call function */ ++ ld lr, @(28,fp) ++ jl lr ++ ++ /* Remove the space we pushed for the args */ ++ mv sp, fp ++ ++ /* Load R2 with the pointer to storage for the return value */ ++ ld r2, @(24,sp) ++ ++ /* Load R3 with the return type code */ ++ ld r3, @(12,sp) ++ ++ /* If the return value pointer is NULL, assume no return value. */ ++ beqz r2, epilogue ++ ++/* return INT */ ++ ldi r4, #FFI_TYPE_INT ++ bne r3, r4, return_double ++ st r0, @r2 ++ bra epilogue ++ ++return_double: ++/* return DOUBLE or LONGDOUBLE */ ++ ldi r4, #FFI_TYPE_DOUBLE ++ bne r3, r4, epilogue ++ st r0, @r2 ++ st r1, @(4,r2) ++ ++epilogue: ++ pop r0 ++ pop r1 ++ pop r2 ++ pop r3 ++ pop lr ++ pop fp ++ jmp lr ++ ++.ffi_call_SYSV_end: ++ .size CNAME(ffi_call_SYSV),.ffi_call_SYSV_end-CNAME(ffi_call_SYSV) ++ +--- gcc-3.4.1/libffi/src/types.c 2004-03-12 10:35:31.000000000 +0900 ++++ gcc-3.4.1/libffi/src/types.c 2004-10-22 10:22:24.000000000 +0900 +@@ -53,7 +53,7 @@ FFI_INTEGRAL_TYPEDEF(pointer, 4, 4, FFI_ + + #endif + +-#if defined X86 || defined X86_WIN32 || defined ARM || defined M68K ++#if defined X86 || defined X86_WIN32 || defined ARM || defined M68K || defined M32R + + FFI_INTEGRAL_TYPEDEF(uint64, 8, 4, FFI_TYPE_UINT64); + FFI_INTEGRAL_TYPEDEF(sint64, 8, 4, FFI_TYPE_SINT64); +@@ -76,7 +76,7 @@ FFI_INTEGRAL_TYPEDEF(sint64, 8, 8, FFI_T + FFI_INTEGRAL_TYPEDEF(double, 8, 4, FFI_TYPE_DOUBLE); + FFI_INTEGRAL_TYPEDEF(longdouble, 12, 4, FFI_TYPE_LONGDOUBLE); + +-#elif defined ARM || defined SH || defined POWERPC_AIX || defined POWERPC_DARWIN ++#elif defined ARM || defined SH || defined M32R || defined POWERPC_AIX || defined POWERPC_DARWIN + + FFI_INTEGRAL_TYPEDEF(double, 8, 4, FFI_TYPE_DOUBLE); + FFI_INTEGRAL_TYPEDEF(longdouble, 8, 4, FFI_TYPE_LONGDOUBLE); --- gcc-3.4-3.4.3.orig/debian/patches/m32r-stack.dpatch +++ gcc-3.4-3.4.3/debian/patches/m32r-stack.dpatch @@ -0,0 +1,36 @@ +#! /bin/sh -e +# +# +# DP: Author: NIIBE Yutaka +# DP: Status: Not yet in CVS +# DP: Stack protection support + +if [ $# -eq 3 ] && [ "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 + +2004-11-12 NIIBE Yutaka + + * config/m32r/linux.h (TARGET_ASM_FILE_END): Defined for stack + protection. + +--- gcc-3.4.2/gcc/config/m32r/linux.h.orig 2003-12-31 19:33:02.000000000 +0900 ++++ gcc-3.4.2/gcc/config/m32r/linux.h 2004-11-12 11:32:02.000000000 +0900 +@@ -102,3 +102,4 @@ + + #define TARGET_OS_CPP_BUILTINS() LINUX_TARGET_OS_CPP_BUILTINS() + ++#define TARGET_ASM_FILE_END file_end_indicate_exec_stack --- gcc-3.4-3.4.3.orig/debian/patches/m32r-limits.dpatch +++ gcc-3.4-3.4.3/debian/patches/m32r-limits.dpatch @@ -0,0 +1,32 @@ +#! /bin/sh -e +# +# +# DP: Author: NIIBE Yutaka +# DP: Status: experimental, only tested for Debian m32r + +if [ $# -eq 3 ] && [ "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 + +--- gcc-3.4.3/gcc/config/m32r/t-linux~ 2004-11-24 22:17:07.000000000 +0900 ++++ gcc-3.4.3/gcc/config/m32r/t-linux 2004-11-24 22:18:51.000000000 +0900 +@@ -48,3 +48,6 @@ SHLIB_MAPFILES += $(srcdir)/config/m32r/ + LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-glibc.c \ + $(srcdir)/unwind-sjlj.c $(srcdir)/gthr-gnat.c $(srcdir)/unwind-c.c + LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c gthr-gnat.c ++ ++# We're GNU system, where GNU C library is native C library. ++CROSS_SYSTEM_HEADER_DIR = $(gcc_tooldir)/include --- gcc-3.4-3.4.3.orig/debian/gij-wrapper +++ gcc-3.4-3.4.3/debian/gij-wrapper @@ -0,0 +1,88 @@ +#!/usr/bin/perl -w +# +# Starts the GNU Java interpreter. +# +# Command-line arguments should be in the style of Sun's Java runtime; +# these will be converted to gij arguments before being passed to the +# gij itself. +# +# The Debian JNI module directory and any other specified JNI +# directories will be included on the JNI search path. +# +# Copyright (C) 2002-2003 by Ben Burton +# Based on the original gij-wrapper-3.2 shell script. + +use strict; + +# The real Java runtime: +my $javaRuntime = '/usr/bin/gij-3.4'; + +# The debian JNI module directory: +my $debianJNIDir = '/usr/lib/jni'; + +# The command-line arguments to pass to the real Java runtime: +my @commandLine; + +# The full JNI search path to use: +my $JNIPath = ''; + +# Build the command-line from the arguments given. +my $parsingOptions = 1; +foreach my $arg (@ARGV) { + if (not $parsingOptions) { + # We're done parsing options; just copy all remaining arguments directly. + push @commandLine, $arg; + next; + } + + # Try to interpret Sun-style options. + if ($arg eq '-version') { + push @commandLine, '--version'; + } elsif ($arg eq '-h' or $arg eq '-help') { + push @commandLine, '--help'; + } elsif ($arg eq '-cp' or $arg eq '--cp') { + push @commandLine, '-cp'; + } elsif ($arg eq '-classpath' or $arg eq '--classpath') { + push @commandLine, '-classpath'; + } elsif ($arg =~ /^-Djava.library.path=(.+)$/) { + # A component of the JNI search path has been given. + if ($JNIPath) { + $JNIPath = $JNIPath . ':' . $1; + } else { + $JNIPath = $1; + } + } elsif ($arg eq '-jar' or $arg =~ /^-D/) { + # Copy the argument directly. + push @commandLine, $arg; + } elsif ($arg =~ /^-/) { + # An unrecognised option has been passed - just drop it. + } else { + # Some non-option argument has been given. + # Stop parsing options at this point. + push @commandLine, $arg; + $parsingOptions = 0; + } +} + +# Add the debian JNI module directory to the JNI search path if it's not +# already there. +if ($JNIPath !~ /(^|:)$debianJNIDir($|:)/) { + if ($JNIPath) { + $JNIPath = $JNIPath . ':' . $debianJNIDir; + } else { + $JNIPath = $debianJNIDir; + } +} + +# Use environment variable $LTDL_LIBRARY_PATH to store the JNI path, +# since gij uses libltdl to dlopen JNI modules. +if ($ENV{LTDL_LIBRARY_PATH}) { + $ENV{LTDL_LIBRARY_PATH} = $ENV{LTDL_LIBRARY_PATH} . ':' . $JNIPath; +} else { + $ENV{LTDL_LIBRARY_PATH} = $JNIPath; +} + +# Call the real Java runtime. +my @fullCommandLine = ( $javaRuntime ); +push @fullCommandLine, @commandLine; +exec @fullCommandLine or exit(1); --- gcc-3.4-3.4.3.orig/debian/README.Bugs +++ gcc-3.4-3.4.3/debian/README.Bugs @@ -0,0 +1,304 @@ +Reporting Bugs in the Debian/GNU GNU Compiler Setup +=================================================== + +Before reporting a bug, please +------------------------------ + +- Check that the behaviour really is a bug. Have a look into some + ANSI standards document. + +- Check the list of well known bugs: http://gcc.gnu.org/bugs.html#known + +- Try to reproduce the bug with a current GCC development snapshot. For + Debian GNU/Linux you can get a recent development snapshot from the + gcc-snapshot package in the unstable distribution. + See: http://packages.debian.org/gcc-snapshot + +- Try to find out if the bug is a regression (an older GCC version does + not show the bug). + +- Check if the bug is already reported in the bug tracking systems. + + Debian: http://bugs.debian.org/debian-gcc@lists.debian.org + Upstream: http://gcc.gnu.org/bugzilla/ + + +Where to report a bug +--------------------- + +Report bugs found in the packaging of GCC to the Debian bug tracking system. +See http://www.debian.org/Bugs/ for instructions (or use the reportbug +script). + +Debian's current policy is to closely follow the upstream development and +only apply a minimal set of patches (which are summarized in the README.Debian +document). + +If you think you have found an upstream bug, you did check the section +above ("Before reporting a bug") and are able to provide a complete bug +report (see below "How to report a bug"), then you may help the Debian +GCC package maintainers, if you report the bug upstream and then submit +a bug report to the Debian BTS and tell us the upstream report number. +This way you are able to follow the upstream bug handling as well. If in +doubt, report the bug to the Debian BTS (but read "How to report a bug" +below. + + +How to report a bug +------------------- + +There are complete instructions in the gcc info manual (found in the +gcc-doc package), section Bugs. + +The manual can be read using `M-x info' in Emacs, or if the GNU info +program is installed on your system by `info --node "(gcc)Bugs"'. Or see +the file BUGS included with the gcc source code. + +Online bug reporting instructions can be found at + + http://gcc.gnu.org/bugs.html + +[Some paragraphs taken from the above URL] + +The main purpose of a bug report is to enable us to fix the bug. The +most important prerequisite for this is that the report must be +complete and self-contained, which we explain in detail below. + +Before you report a bug, please check the list of well-known bugs and, +if possible in any way, try a current development snapshot. + +Summarized bug reporting instructions +------------------------------------- + +What we need + +Please include in your bug report all of the following items, the +first three of which can be obtained from the output of gcc -v: + + * the exact version of GCC; + * the system type; + * the options given when GCC was configured/built; + * the complete command line that triggers the bug; + * the compiler output (error messages, warnings, etc.); and + * the preprocessed file (*.i*) that triggers the bug, generated by + adding -save-temps to the complete compilation command, or, in + the case of a bug report for the GNAT front end, a complete set + of source files (see below). + +What we do not want + + * A source file that #includes header files that are left out + of the bug report (see above) + * That source file and a collection of header files. + * An attached archive (tar, zip, shar, whatever) containing all + (or some :-) of the above. + * A code snippet that won't cause the compiler to produce the + exact output mentioned in the bug report (e.g., a snippet with + just a few lines around the one that apparently triggers the + bug, with some pieces replaced with ellipses or comments for + extra obfuscation :-) + * The location (URL) of the package that failed to build (we won't + download it, anyway, since you've already given us what we need + to duplicate the bug, haven't you? :-) + * An error that occurs only some of the times a certain file is + compiled, such that retrying a sufficient number of times + results in a successful compilation; this is a symptom of a + hardware problem, not of a compiler bug (sorry) + * E-mail messages that complement previous, incomplete bug + reports. Post a new, self-contained, full bug report instead, if + possible as a follow-up to the original bug report + * Assembly files (*.s) produced by the compiler, or any binary files, + such as object files, executables, core files, or precompiled + header files + * Duplicate bug reports, or reports of bugs already fixed in the + development tree, especially those that have already been + reported as fixed last week :-) + * Bugs in the assembler, the linker or the C library. These are + separate projects, with separate mailing lists and different bug + reporting procedures + * Bugs in releases or snapshots of GCC not issued by the GNU + Project. Report them to whoever provided you with the release + * Questions about the correctness or the expected behavior of + certain constructs that are not GCC extensions. Ask them in + forums dedicated to the discussion of the programming language + + +Known Bugs and Non-Bugs +----------------------- + +[Please see /usr/share/doc/gcc/FAQ or http://gcc.gnu.org/faq.html first] + + +C++ exceptions don't work with C libraries +------------------------------------------ + +[Taken from the closed bug report #22769] C++ exceptions don't work +with C libraries, if the C code wasn't designed to be thrown through. +A solution could be to translate all C libraries with -fexceptions. +Mostly trying to throw an exception in a callback function (qsort, +Tcl command callbacks, etc ...). Example: + + #include + #include + + class A {}; + + static + int SortCondition(void const*, void const*) + { + printf("throwing 'sortcondition' exception\n"); + throw A(); + } + + int main(int argc, char *argv[]) + { + int list[2]; + + try { + SortCondition(NULL,NULL); + } catch (A) { + printf("caught test-sortcondition exception\n"); + } + try { + qsort(&list, sizeof(list)/sizeof(list[0]),sizeof(list[0]), + &SortCondition); + } catch (A) { + printf("caught real-sortcondition exception\n"); + } + return 0; +} + +Andrew Macleod responded: + +When compiled with the table driven exception handling, exception can only +be thrown through functions which have been compiled with the table driven EH. +If a function isn't compiled that way, then we do not have the frame +unwinding information required to restore the registers when unwinding. + +I believe the setjmp/longjmp mechanism will throw through things like this, +but its produces much messier code. (-fsjlj-exceptions) + +The C compiler does support exceptions, you just have to turn them on +with -fexceptions. + +Your main options are to: + a) Don't use callbacks, or at least don't throw through them. + b) Get the source and compile the library with -fexceptions (You have to + explicitly turn on exceptions in the C compiler) + c) always use -fsjlj-exceptions (boo, bad choice :-) + + +g++: "undefined reference" to static const array in class +--------------------------------------------------------- + +The following code compiles under GNU C++ 2.7.2 with correct results, +but produces the same linker error with GNU C++ 2.95.2. +Alexandre Oliva responded: + +All of them are correct. A static data member *must* be defined +outside the class body even if it is initialized within the class +body, but no diagnostic is required if the definition is missing. It +turns out that some releases do emit references to the missing symbol, +while others optimize it away. + +#include + +class Test +{ + public: + Test(const char *q); + protected: + static const unsigned char Jam_signature[4] = "JAM"; +}; + +Test::Test(const char *q) +{ + if (memcmp(q, Jam_signature, sizeof(Jam_signature)) != 0) + cerr << "Hello world!\n"; +} + +int main(void) +{ + Test::Test("JAM"); + return 0; +} + +g++: g++ causes passing non const ptr to ptr to a func with const arg + to cause an error (not a bug) +--------------------------------------------------------------------- + +Example: + +#include +void test(const char **b){ + printf ("%s\n",*b); +} +int main(void){ + char *test1="aoeu"; + test(&test1); +} + +make const +g++ const.cc -o const +const.cc: In function `int main()': +const.cc:7: passing `char **' as argument 1 of `test(const char **)' adds cv-quals without intervening `const' +make: *** [const] Error 1 + +Answer from "Martin v. Loewis" : + +> ok... maybe I missed something.. I haven't really kept up with the latest in +> C++ news. But I've never heard anything even remotly close to passing a non +> const var into a const arg being an error before. + +Thanks for your bug report. This is a not a bug in the compiler, but +in your code. The standard, in 4.4/4, puts it that way + +# A conversion can add cv-qualifiers at levels other than the first in +# multi-level pointers, subject to the following rules: +# Two pointer types T1 and T2 are similar if there exists a type T and +# integer n > 0 such that: +# T1 is cv(1,0) pointer to cv(1,1) pointer to ... cv(1,n-1) +# pointer to cv(1,n) T +# and +# T2 is cv(2,0) pointer to cv(2,1) pointer to ... cv(2,n-1) +# pointer to cv(2,n) T +# where each cv(i,j) is const, volatile, const volatile, or +# nothing. The n-tuple of cv-qualifiers after the first in a pointer +# type, e.g., cv(1,1) , cv(1,2) , ... , cv(1,n) in the pointer type +# T1, is called the cv-qualification signature of the pointer type. An +# expression of type T1 can be converted to type T2 if and only if the +# following conditions are satisfied: +# - the pointer types are similar. +# - for every j > 0, if const is in cv(1,j) then const is in cv(2,j) , +# and similarly for volatile. +# - if the cv(1,j) and cv(2,j) are different, then const is in every +# cv(2,k) for 0 < k < j. + +It is the last rule that your code violates. The standard gives then +the following example as a rationale: + +# [Note: if a program could assign a pointer of type T** to a pointer +# of type const T** (that is, if line //1 below was allowed), a +# program could inadvertently modify a const object (as it is done on +# line //2). For example, +# int main() { +# const char c = 'c'; +# char* pc; +# const char** pcc = &pc; //1: not allowed +# *pcc = &c; +# *pc = 'C'; //2: modifies a const object +# } +# - end note] + +If you question this line of reasoning, please discuss it in one of +the public C++ fora first, eg. comp.lang.c++.moderated, or +comp.std.c++. + + +cpp removes blank lines +----------------------- + +With the new cpp, you need to add -traditional to the "cpp -P" args, else +blank lines get removed. + +[EDIT ME: scan Debian bug reports and write some nice summaries ...] --- gcc-3.4-3.4.3.orig/debian/README.treelang +++ gcc-3.4-3.4.3/debian/README.treelang @@ -0,0 +1,11 @@ +Treelang documentation +====================== + +The treelang compiler is called via the `gcc-3.4' command (or via +`gcc', when `gcc-3.4' is the default gcc compiler). + +Documentation for treelang is provided in info format only. You +can read docs in the info format with emacs, xemacs or the info +command: + + info treelang-3.4 --- gcc-3.4-3.4.3.orig/debian/README.libstdc++-baseline.in +++ gcc-3.4-3.4.3/debian/README.libstdc++-baseline.in @@ -0,0 +1,2 @@ +The libstdc++ baseline file is a list of symbols exported by the +libstdc++ library. --- gcc-3.4-3.4.3.orig/debian/README +++ gcc-3.4-3.4.3/debian/README @@ -0,0 +1,66 @@ + The Debian GNU Compiler Collection setup + ======================================== + +Please see the README.Debian in /usr/share/doc/gcc, contained in the +gcc package for a description of the setup of the different compiler +versions. + + +Notes on GCC 3.4 in the sarge distribution +------------------------------------------ + +[package maintainers: when using GCC 3.4 for package building, please + check that your packages still work on platforms with GCC changes + specific for these platforms (hppa, m68k, mips, mipsel, sparc). ] + +GCC 3.4 is included in sarge as a newer compiler version, the system +compiler for sarge is GCC 3.3 (the transition to a newer system compiler +is a post sarge issue). Due to some incompatibilities between +3.3 and 3.4 care should be taken, when some code built by both versions +is linked together (most likely linking against a shared library found +in Debian): + +- C++ code compiled by g++-3.3 and g++-3.4 is not compatible. Applications + using C++ libraries have to make sure that these libraries are rebuilt. + +- On i386, the compiler is built as a biarch compiler (can generated code + for amd64). To use it, call gcc-3.4 -m64. Packages containing the 64bit + versions of libraries and library development files need to be installed + separately (i.e. lib64gcc1, amd64-libs, ...). + gcc-3.4 -m64 turns on the common subset for all x86-64 architectures, + specifying -march=k8 turns on k8/opteron specific features, -march=nocona + turns on some P4/64 Nocona specific features. + +- On hppa and m68k the exception handling changed from SJLJ to Dwarf2 based + exception handling. This affects C++ and code, which implements it's own + handling. If a library or binary ends up linked against libgcc1 _and_ + libgcc2, something probably won't work. + +- The implementation of the MIPS ABIs has changed. As a result, the code + generated for certain MIPS targets will not be binary compatible with + earlier releases. See http://gcc.gnu.org/gcc-3.4/mips-abi.html + +- The implementation of the SPARC ABIs has changed. As a result, the code + generated will not be binary compatible with earlier releases in certain + cases. See http://gcc.gnu.org/gcc-3.4/sparc-abi.html + +Maintainers of these packages +----------------------------- + +Matthias Klose +Ray Dassen +Jeff Bailey (hurd-i386) +Joel Baker (netbsd-i386) +Philip Blundell (arm-linux) +Ben Collins (sparc-linux) +Randolph Chung (ia64-linux) +Falk Hueffner (alpha-linux) +Dan Jacobowitz (powerpc-linux) +Thiemo Seufer (mips*-linux) +Ryan Murray (mips*-linux) +Matt Taggart (hppa-linux) +Gerhard Tonn (s390-linux) +Roman Zippel (m68k-linux) +Ludovic Brenta (gnat) + +=============================================================================== --- gcc-3.4-3.4.3.orig/debian/dummy-man.1 +++ gcc-3.4-3.4.3/debian/dummy-man.1 @@ -0,0 +1,29 @@ +.TH @NAME@ 1 "May 24, 2003" @name@ "Debian Free Documentation" +.SH NAME +@name@ \- A program with a man page covered by the GFDL with invariant sections +.SH SYNOPSIS +@name@ [\fB\s-1OPTION\s0\fR] ... [\fI\s-1ARGS\s0\fR...] + +.SH DESCRIPTION + +\fB@name@\fR is documented by a man page, which is covered by the "GNU +Free Documentation License" (GFDL) containing invariant sections. +.P +In November 2002, version 1.2 of the GNU Free Documentation License (GNU +FDL) was released by the Free Software Foundation after a long period +of consultation. Unfortunately, some concerns raised by members of the +Debian Project were not addressed, and as such the GNU FDL can apply +to works that do not pass the Debian Free Software Guidelines (DFSG), +and may thus only be included in the non-free component of the Debian +archive, not the Debian distribution itself. + +.SH "SEE ALSO" +.BR http://gcc.gnu.org/onlinedocs/ +for the complete documentation, +.BR http://lists.debian.org/debian-legal/2003/debian-legal-200304/msg00307.html +for a proposed statement of Debian with respect to the GFDL, +.BR gfdl(7) + +.SH AUTHOR +This manual page was written by the Debian GCC maintainers, +for the Debian GNU/Linux system. --- gcc-3.4-3.4.3.orig/debian/TODO +++ gcc-3.4-3.4.3/debian/TODO @@ -0,0 +1,19 @@ +#94955: recheck on mips and 3.3 +#177303: clarify and forward +#180486: update info for 3.3.1 and 3.4 and forward + +- Clean up the sprawl of debian/rules. I'm sure there are neater + ways to do some of it; perhaps split it up into some more files? + Partly done. + +- Build the shared Ada libraries. Be sure, that you they can be used at all... + +- Link the Ada tools with the shared Ada library. + +- The following bugs are still open; please step forward and have a look + at http://bugs.debian.org/debian-gcc@lists.debian.org + Never finished. + +Help needed for the following reports: + +[Needs to be updated] --- gcc-3.4-3.4.3.orig/debian/locale-gen +++ gcc-3.4-3.4.3/debian/locale-gen @@ -0,0 +1,43 @@ +#!/bin/sh + +LOCPATH=`pwd`/locales +export LOCPATH + +[ -d $LOCPATH ] || mkdir -p $LOCPATH + +umask 022 + +echo "Generating locales..." +while read locale charset; do + case $locale in \#*) continue;; esac + [ -n "$locale" -a -n "$charset" ] || continue + echo -n " `echo $locale | sed 's/\([^.\@]*\).*/\1/'`" + echo -n ".$charset" + echo -n `echo $locale | sed 's/\([^\@]*\)\(\@.*\)*/\2/'` + echo -n '...' + if [ -f $LOCPATH/$locale ]; then + input=$locale + else + input=`echo $locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'` + fi + localedef -i $input -c -f $charset $LOCPATH/$locale #-A /etc/locale.alias + echo ' done'; \ +done <= 2.3.2.ds1-16) --- gcc-3.4-3.4.3.orig/debian/gcc-cross.postinst +++ gcc-3.4-3.4.3/debian/gcc-cross.postinst @@ -0,0 +1,7 @@ +#!/bin/sh + +update-alternatives --quiet \ + --install /usr/bin/cross-gcc cross-gcc /usr/bin/cross-gcc-ver 15 \ + --slave /usr/share/man/man1/cross-gcc.1.gz cross-gcc.1.gz /usr/share/man/man1/cross-gcc-ver.1.gz + +exit 0 --- gcc-3.4-3.4.3.orig/debian/copyright +++ gcc-3.4-3.4.3/debian/copyright @@ -0,0 +1,523 @@ +This is the Debian GNU/Linux prepackaged version of the GCC compiler +collection, containing C, C++, Objective-C, Fortran-77, Java, Chill +and Pascal compilers, and the libstdc++ support library. + +The compilers are split into several binary packages: gcc (which has +support for C, g++ (which supports C++), gobjc (which supports +Objective C), g77 (supports Fortran77), gij, gcj (supports Java), chill +(supports Chill) and gpc (supports Pascal). A version of libstdc++-v3 +is also provided. + +Documentation is provided in the packages cpp-3.4-doc, gcc-3.4-doc, +gcj-3.4-doc, g77-3.4-doc and gpc-2.1-3.4-doc. + +This package was put together by the Debian GCC maintainers +, with sources obtained from: + + [NOTE: the current prereleases obtained from the CVS archive] + ftp://gcc.gnu.org/pub/gcc/releases/gcc-3.4.0.tar.bz2 + + http://gnu-pascal.de/alpha/ + +Changes: See changelog.Debian.gz + +GCC is Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, +1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 +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 the +Free Software Foundation; either version 2, or (at your option) any +later version. + +This program 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 this program; if not, write to the Free Software +Foundation, 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. + +On Debian GNU/Linux systems, the complete text of the GNU General +Public License can be found in `/usr/share/common-licenses/GPL'. + +The libstdc++-v3 library is licensed under the terms of the GNU General +Public License, with this special exception: + + As a special exception, you may use this file as part of a free software + library without restriction. Specifically, if other files instantiate + templates or use macros or inline functions from this file, or you compile + this file and link it with other files to produce an executable, this + file does not by itself cause the resulting executable to be covered by + the GNU General Public License. This exception does not however + invalidate any other reasons why the executable file might be covered by + the GNU General Public License. + +gpc is copyright Free Software Foundation, and is licensed under the +GNU General Public License which on Debian GNU/Linux systems can be +found as `/usr/share/common-licenses/GPL'. + +The libgcj library is licensed under the terms of the GNU General +Public License, with this special exception: + + As a special exception, if you link this library with other files + to produce an executable, this library does not by itself cause + the resulting executable to be covered by the GNU General Public + License. This exception does not however invalidate any other + reasons why the executable file might be covered by the GNU + General Public License. + +gcc/libgcc2.c (source for libgcc) has the following addition: + + In addition to the permissions in the GNU General Public License, + the Free Software Foundation gives you unlimited permission to + link the compiled version of this file into combinations with + other programs, and to distribute those combinations without any + restriction coming from the use of this file. (The General Public + License restrictions do apply in other respects; for example, they + cover modification of the file, and distribution when not linked + into a combine executable.) + +gcc/unwind-libunwind.c (source for libgcc) has the following addition: + + As a special exception, if you link this library with other files, + some of which are compiled with GCC, to produce an executable, + this library does not by itself cause the resulting executable to + be covered by the GNU General Public License. This exception does + not however invalidate any other reasons why the executable file + might be covered by the GNU General Public License. + + +The documentation is licensed under the GNU Free Documentation License +(v1.2), appended at the end of this file. + + +GNU Free Documentation License +****************************** + + Version 1.2, November 2002 + Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + 0. PREAMBLE + + The purpose of this License is to make a manual, textbook, or other + functional and useful document "free" in the sense of freedom: to + assure everyone the effective freedom to copy and redistribute it, + with or without modifying it, either commercially or + noncommercially. Secondarily, this License preserves for the + author and publisher a way to get credit for their work, while not + being considered responsible for modifications made by others. + + This License is a kind of "copyleft", which means that derivative + works of the document must themselves be free in the same sense. + It complements the GNU General Public License, which is a copyleft + license designed for free software. + + We have designed this License in order to use it for manuals for + free software, because free software needs free documentation: a + free program should come with manuals providing the same freedoms + that the software does. But this License is not limited to + software manuals; it can be used for any textual work, regardless + of subject matter or whether it is published as a printed book. + We recommend this License principally for works whose purpose is + instruction or reference. + + 1. APPLICABILITY AND DEFINITIONS + + This License applies to any manual or other work, in any medium, + that contains a notice placed by the copyright holder saying it + can be distributed under the terms of this License. Such a notice + grants a world-wide, royalty-free license, unlimited in duration, + to use that work under the conditions stated herein. The + "Document", below, refers to any such manual or work. Any member + of the public is a licensee, and is addressed as "you". You + accept the license if you copy, modify or distribute the work in a + way requiring permission under copyright law. + + A "Modified Version" of the Document means any work containing the + Document or a portion of it, either copied verbatim, or with + modifications and/or translated into another language. + + A "Secondary Section" is a named appendix or a front-matter section + of the Document that deals exclusively with the relationship of the + publishers or authors of the Document to the Document's overall + subject (or to related matters) and contains nothing that could + fall directly within that overall subject. (Thus, if the Document + is in part a textbook of mathematics, a Secondary Section may not + explain any mathematics.) The relationship could be a matter of + historical connection with the subject or with related matters, or + of legal, commercial, philosophical, ethical or political position + regarding them. + + The "Invariant Sections" are certain Secondary Sections whose + titles are designated, as being those of Invariant Sections, in + the notice that says that the Document is released under this + License. If a section does not fit the above definition of + Secondary then it is not allowed to be designated as Invariant. + The Document may contain zero Invariant Sections. If the Document + does not identify any Invariant Sections then there are none. + + The "Cover Texts" are certain short passages of text that are + listed, as Front-Cover Texts or Back-Cover Texts, in the notice + that says that the Document is released under this License. A + Front-Cover Text may be at most 5 words, and a Back-Cover Text may + be at most 25 words. + + A "Transparent" copy of the Document means a machine-readable copy, + represented in a format whose specification is available to the + general public, that is suitable for revising the document + straightforwardly with generic text editors or (for images + composed of pixels) generic paint programs or (for drawings) some + widely available drawing editor, and that is suitable for input to + text formatters or for automatic translation to a variety of + formats suitable for input to text formatters. A copy made in an + otherwise Transparent file format whose markup, or absence of + markup, has been arranged to thwart or discourage subsequent + modification by readers is not Transparent. An image format is + not Transparent if used for any substantial amount of text. A + copy that is not "Transparent" is called "Opaque". + + Examples of suitable formats for Transparent copies include plain + ASCII without markup, Texinfo input format, LaTeX input format, + SGML or XML using a publicly available DTD, and + standard-conforming simple HTML, PostScript or PDF designed for + human modification. Examples of transparent image formats include + PNG, XCF and JPG. Opaque formats include proprietary formats that + can be read and edited only by proprietary word processors, SGML or + XML for which the DTD and/or processing tools are not generally + available, and the machine-generated HTML, PostScript or PDF + produced by some word processors for output purposes only. + + The "Title Page" means, for a printed book, the title page itself, + plus such following pages as are needed to hold, legibly, the + material this License requires to appear in the title page. For + works in formats which do not have any title page as such, "Title + Page" means the text near the most prominent appearance of the + work's title, preceding the beginning of the body of the text. + + A section "Entitled XYZ" means a named subunit of the Document + whose title either is precisely XYZ or contains XYZ in parentheses + following text that translates XYZ in another language. (Here XYZ + stands for a specific section name mentioned below, such as + "Acknowledgements", "Dedications", "Endorsements", or "History".) + To "Preserve the Title" of such a section when you modify the + Document means that it remains a section "Entitled XYZ" according + to this definition. + + The Document may include Warranty Disclaimers next to the notice + which states that this License applies to the Document. These + Warranty Disclaimers are considered to be included by reference in + this License, but only as regards disclaiming warranties: any other + implication that these Warranty Disclaimers may have is void and + has no effect on the meaning of this License. + + 2. VERBATIM COPYING + + You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License + applies to the Document are reproduced in all copies, and that you + add no other conditions whatsoever to those of this License. You + may not use technical measures to obstruct or control the reading + or further copying of the copies you make or distribute. However, + you may accept compensation in exchange for copies. If you + distribute a large enough number of copies you must also follow + the conditions in section 3. + + You may also lend copies, under the same conditions stated above, + and you may publicly display copies. + + 3. COPYING IN QUANTITY + + If you publish printed copies (or copies in media that commonly + have printed covers) of the Document, numbering more than 100, and + the Document's license notice requires Cover Texts, you must + enclose the copies in covers that carry, clearly and legibly, all + these Cover Texts: Front-Cover Texts on the front cover, and + Back-Cover Texts on the back cover. Both covers must also clearly + and legibly identify you as the publisher of these copies. The + front cover must present the full title with all words of the + title equally prominent and visible. You may add other material + on the covers in addition. Copying with changes limited to the + covers, as long as they preserve the title of the Document and + satisfy these conditions, can be treated as verbatim copying in + other respects. + + If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto + adjacent pages. + + If you publish or distribute Opaque copies of the Document + numbering more than 100, you must either include a + machine-readable Transparent copy along with each Opaque copy, or + state in or with each Opaque copy a computer-network location from + which the general network-using public has access to download + using public-standard network protocols a complete Transparent + copy of the Document, free of added material. If you use the + latter option, you must take reasonably prudent steps, when you + begin distribution of Opaque copies in quantity, to ensure that + this Transparent copy will remain thus accessible at the stated + location until at least one year after the last time you + distribute an Opaque copy (directly or through your agents or + retailers) of that edition to the public. + + It is requested, but not required, that you contact the authors of + the Document well before redistributing any large number of + copies, to give them a chance to provide you with an updated + version of the Document. + + 4. MODIFICATIONS + + You may copy and distribute a Modified Version of the Document + under the conditions of sections 2 and 3 above, provided that you + release the Modified Version under precisely this License, with + the Modified Version filling the role of the Document, thus + licensing distribution and modification of the Modified Version to + whoever possesses a copy of it. In addition, you must do these + things in the Modified Version: + + A. Use in the Title Page (and on the covers, if any) a title + distinct from that of the Document, and from those of + previous versions (which should, if there were any, be listed + in the History section of the Document). You may use the + same title as a previous version if the original publisher of + that version gives permission. + + B. List on the Title Page, as authors, one or more persons or + entities responsible for authorship of the modifications in + the Modified Version, together with at least five of the + principal authors of the Document (all of its principal + authors, if it has fewer than five), unless they release you + from this requirement. + + C. State on the Title page the name of the publisher of the + Modified Version, as the publisher. + + D. Preserve all the copyright notices of the Document. + + E. Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. + + F. Include, immediately after the copyright notices, a license + notice giving the public permission to use the Modified + Version under the terms of this License, in the form shown in + the Addendum below. + + G. Preserve in that license notice the full lists of Invariant + Sections and required Cover Texts given in the Document's + license notice. + + H. Include an unaltered copy of this License. + + I. Preserve the section Entitled "History", Preserve its Title, + and add to it an item stating at least the title, year, new + authors, and publisher of the Modified Version as given on + the Title Page. If there is no section Entitled "History" in + the Document, create one stating the title, year, authors, + and publisher of the Document as given on its Title Page, + then add an item describing the Modified Version as stated in + the previous sentence. + + J. Preserve the network location, if any, given in the Document + for public access to a Transparent copy of the Document, and + likewise the network locations given in the Document for + previous versions it was based on. These may be placed in + the "History" section. You may omit a network location for a + work that was published at least four years before the + Document itself, or if the original publisher of the version + it refers to gives permission. + + K. For any section Entitled "Acknowledgements" or "Dedications", + Preserve the Title of the section, and preserve in the + section all the substance and tone of each of the contributor + acknowledgements and/or dedications given therein. + + L. Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section + titles. + + M. Delete any section Entitled "Endorsements". Such a section + may not be included in the Modified Version. + + N. Do not retitle any existing section to be Entitled + "Endorsements" or to conflict in title with any Invariant + Section. + + O. Preserve any Warranty Disclaimers. + + If the Modified Version includes new front-matter sections or + appendices that qualify as Secondary Sections and contain no + material copied from the Document, you may at your option + designate some or all of these sections as invariant. To do this, + add their titles to the list of Invariant Sections in the Modified + Version's license notice. These titles must be distinct from any + other section titles. + + You may add a section Entitled "Endorsements", provided it contains + nothing but endorsements of your Modified Version by various + parties--for example, statements of peer review or that the text + has been approved by an organization as the authoritative + definition of a standard. + + You may add a passage of up to five words as a Front-Cover Text, + and a passage of up to 25 words as a Back-Cover Text, to the end + of the list of Cover Texts in the Modified Version. Only one + passage of Front-Cover Text and one of Back-Cover Text may be + added by (or through arrangements made by) any one entity. If the + Document already includes a cover text for the same cover, + previously added by you or by arrangement made by the same entity + you are acting on behalf of, you may not add another; but you may + replace the old one, on explicit permission from the previous + publisher that added the old one. + + The author(s) and publisher(s) of the Document do not by this + License give permission to use their names for publicity for or to + assert or imply endorsement of any Modified Version. + + 5. COMBINING DOCUMENTS + + You may combine the Document with other documents released under + this License, under the terms defined in section 4 above for + modified versions, provided that you include in the combination + all of the Invariant Sections of all of the original documents, + unmodified, and list them all as Invariant Sections of your + combined work in its license notice, and that you preserve all + their Warranty Disclaimers. + + The combined work need only contain one copy of this License, and + multiple identical Invariant Sections may be replaced with a single + copy. If there are multiple Invariant Sections with the same name + but different contents, make the title of each such section unique + by adding at the end of it, in parentheses, the name of the + original author or publisher of that section if known, or else a + unique number. Make the same adjustment to the section titles in + the list of Invariant Sections in the license notice of the + combined work. + + In the combination, you must combine any sections Entitled + "History" in the various original documents, forming one section + Entitled "History"; likewise combine any sections Entitled + "Acknowledgements", and any sections Entitled "Dedications". You + must delete all sections Entitled "Endorsements." + + 6. COLLECTIONS OF DOCUMENTS + + You may make a collection consisting of the Document and other + documents released under this License, and replace the individual + copies of this License in the various documents with a single copy + that is included in the collection, provided that you follow the + rules of this License for verbatim copying of each of the + documents in all other respects. + + You may extract a single document from such a collection, and + distribute it individually under this License, provided you insert + a copy of this License into the extracted document, and follow + this License in all other respects regarding verbatim copying of + that document. + + 7. AGGREGATION WITH INDEPENDENT WORKS + + A compilation of the Document or its derivatives with other + separate and independent documents or works, in or on a volume of + a storage or distribution medium, is called an "aggregate" if the + copyright resulting from the compilation is not used to limit the + legal rights of the compilation's users beyond what the individual + works permit. When the Document is included an aggregate, this + License does not apply to the other works in the aggregate which + are not themselves derivative works of the Document. + + If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one half + of the entire aggregate, the Document's Cover Texts may be placed + on covers that bracket the Document within the aggregate, or the + electronic equivalent of covers if the Document is in electronic + form. Otherwise they must appear on printed covers that bracket + the whole aggregate. + + 8. TRANSLATION + + Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section + 4. Replacing Invariant Sections with translations requires special + permission from their copyright holders, but you may include + translations of some or all Invariant Sections in addition to the + original versions of these Invariant Sections. You may include a + translation of this License, and all the license notices in the + Document, and any Warrany Disclaimers, provided that you also + include the original English version of this License and the + original versions of those notices and disclaimers. In case of a + disagreement between the translation and the original version of + this License or a notice or disclaimer, the original version will + prevail. + + If a section in the Document is Entitled "Acknowledgements", + "Dedications", or "History", the requirement (section 4) to + Preserve its Title (section 1) will typically require changing the + actual title. + + 9. TERMINATION + + You may not copy, modify, sublicense, or distribute the Document + except as expressly provided for under this License. Any other + attempt to copy, modify, sublicense or distribute the Document is + void, and will automatically terminate your rights under this + License. However, parties who have received copies, or rights, + from you under this License will not have their licenses + terminated so long as such parties remain in full compliance. + + 10. FUTURE REVISIONS OF THIS LICENSE + + The Free Software Foundation may publish new, revised versions of + the GNU Free Documentation License from time to time. Such new + versions will be similar in spirit to the present version, but may + differ in detail to address new problems or concerns. See + `http://www.gnu.org/copyleft/'. + + Each version of the License is given a distinguishing version + number. If the Document specifies that a particular numbered + version of this License "or any later version" applies to it, you + have the option of following the terms and conditions either of + that specified version or of any later version that has been + published (not as a draft) by the Free Software Foundation. If + the Document does not specify a version number of this License, + you may choose any version ever published (not as a draft) by the + Free Software Foundation. + +ADDENDUM: How to use this License for your documents +==================================================== + + To use this License in a document you have written, include a copy of +the License in the document and put the following copyright and license +notices just after the title page: + + Copyright (C) YEAR YOUR NAME. + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.2 + or any later version published by the Free Software Foundation; + with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. + A copy of the license is included in the section entitled ``GNU + Free Documentation License''. + + If you have Invariant Sections, Front-Cover Texts and Back-Cover +Texts, replace the "with...Texts." line with this: + + with the Invariant Sections being LIST THEIR TITLES, with + the Front-Cover Texts being LIST, and with the Back-Cover Texts + being LIST. + + If you have Invariant Sections without Cover Texts, or some other +combination of the three, merge those two alternatives to suit the +situation. + + If your document contains nontrivial examples of program code, we +recommend releasing these examples in parallel under your choice of +free software license, such as the GNU General Public License, to +permit their use in free software. --- gcc-3.4-3.4.3.orig/debian/cpp-BV-doc.postinst +++ gcc-3.4-3.4.3/debian/cpp-BV-doc.postinst @@ -0,0 +1,12 @@ +#! /bin/sh -e + +case "$1" in + configure) + install-info --quiet --section "Development" "Development" \ + /usr/share/info/cpp-@BV@.info.gz + + install-info --quiet --section "Development" "Development" \ + /usr/share/info/cppinternals-@BV@.info.gz +esac + +#DEBHELPER# --- gcc-3.4-3.4.3.orig/debian/cpp-BV-doc.prerm +++ gcc-3.4-3.4.3/debian/cpp-BV-doc.prerm @@ -0,0 +1,6 @@ +#! /bin/sh -e + +install-info --quiet --remove cpp-@BV@ +install-info --quiet --remove cppinternals-@BV@ + +#DEBHELPER# --- gcc-3.4-3.4.3.orig/debian/g77-BV-doc.doc-base +++ gcc-3.4-3.4.3/debian/g77-BV-doc.doc-base @@ -0,0 +1,14 @@ +Document: g77-@BV@ +Title: The GNU Fortran 77 Compiler +Author: Various +Abstract: This manual documents how to run, install and port `g77', as well as + its new features and incompatibilities, and how to report bugs. +Section: Apps/Programming + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/fortran/g77.html +Files: /usr/share/doc/gcc-@BV@-base/fortran/g77.html + +Format: info +Index: /usr/share/info/g77-@BV@.info.gz +Files: /usr/share/info/g77-@BV@* --- gcc-3.4-3.4.3.orig/debian/g77-BV-doc.postinst +++ gcc-3.4-3.4.3/debian/g77-BV-doc.postinst @@ -0,0 +1,10 @@ +#! /bin/sh -e + +case "$1" in + configure) + install-info --quiet --section "Development" "Development" \ + --description="The GNU Fortran 77 compiler (Version @BV@)." \ + /usr/share/info/g77-@BV@.info +esac + +#DEBHELPER# --- gcc-3.4-3.4.3.orig/debian/g77-BV-doc.prerm +++ gcc-3.4-3.4.3/debian/g77-BV-doc.prerm @@ -0,0 +1,5 @@ +#! /bin/sh -e + +install-info --quiet --remove g77-@BV@ + +#DEBHELPER# --- gcc-3.4-3.4.3.orig/debian/gcc-BV-doc.postinst +++ gcc-3.4-3.4.3/debian/gcc-BV-doc.postinst @@ -0,0 +1,9 @@ +#! /bin/sh -e + +install-info --quiet --section "Development" "Development" \ + /usr/share/info/gcc-@BV@.info.gz + +install-info --quiet --section "Development" "Development" \ + /usr/share/info/gccint-@BV@.info.gz + +#DEBHELPER# --- gcc-3.4-3.4.3.orig/debian/rules2 +++ gcc-3.4-3.4.3/debian/rules2 @@ -0,0 +1,1190 @@ +#! /usr/bin/make -f +# -*- makefile -*- + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +include debian/rules.defs +include debian/rules.parameters + +# some tools +SHELL = /bin/bash -e # brace expansion in rules file +IR = install -m 644 # Install regular file +IP = install -m 755 # Install program +IS = install -m 755 # Install script + +#number of jobs to run for build +ifneq ($(USE_NJOBS),) + NJOBS = -j$(shell if [ -f /proc/cpuinfo ]; \ + then echo `cat /proc/cpuinfo | grep 'processor' | wc -l`; \ + else echo 1; fi) +endif + +# kernel-specific ulimit hack +ifeq ($(DEB_HOST_GNU_SYSTEM),linux) + ULIMIT = if [ -e /proc/meminfo ]; then \ + m=`awk '/^((Mem|Swap)Free|Cached)/{m+=$$2}END{print int(m*.9)}' \ + /proc/meminfo`; \ + else \ + m=`vmstat --free --swap-free --kilobytes|awk '{m+=$$2}END{print int(m*.9)}'`; \ + fi; \ + ulimit -m $$m; \ + echo "Limited memory for test runs to `ulimit -m`kB" +else + ULIMIT = true +endif + +# the recipient for the test summaries. Send with: debian/rules mail-summary +S_EMAIL = gcc@packages.debian.org gcc-testresults@gcc.gnu.org + +CPPFLAGS = +CFLAGS = -g -O2 $(CPPFLAGS) +LDFLAGS = +BOOT_CFLAGS = -O2 $(CPPFLAGS) +ifeq ($(with_ada),yes) + CC = gnatgcc $(CPPFLAGS) +else + CC = cc $(CPPFLAGS) +endif + +ifeq ($(DEB_HOST_ARCH), $(findstring $(DEB_HOST_ARCH),m68k)) + STAGE1_CFLAGS = STAGE1_CFLAGS="-g -O" +endif + +ifdef DEB_CROSS + CFLAGS = $(BOOT_CFLAGS) +endif + +docdir = usr/share/doc + +# PF is the installation prefix for the package without the leading slash. +# It's "usr" for gcc releases +PF = usr + +ifeq ($(with_multiarch),yes) + libdir = lib/$(DEB_TARGET_GNU_TYPE) +else + libdir = lib +endif +# /usr/libexec doesn't follow the FHS +libexecdir = $(PF)/$(libdir) +buildlibdir = $(builddir)/$(TARGET_ALIAS) +gcc_lib_dir = $(PF)/$(libdir)/gcc/$(TARGET_ALIAS)/$(VER) +gcc_lexec_dir = $(libexecdir)/gcc/$(TARGET_ALIAS)/$(VER) + +ifndef DEB_CROSS + cxx_inc_dir = $(PF)/include/c++/$(BASE_VERSION) +else + cxx_inc_dir = $(PF)/$(TARGET_ALIAS)/include/c++/$(BASE_VERSION) +endif + +CONFARGS = -v \ + --enable-languages=$(shell echo $(enabled_languages) | tr -s ' ' ',') \ + --prefix=/$(PF) \ + --libexecdir=/$(libexecdir) \ + --with-gxx-include-dir=/$(cxx_inc_dir) \ + --enable-shared \ + --with-system-zlib \ + --enable-nls \ + --without-included-gettext + +ifeq ($(versioned_packages),yes) + CONFARGS += --program-suffix=-$(BASE_VERSION) +endif + +ifneq ($(with_sysroot),) + CONFARGS += --with-sysroot=$(with_sysroot) +endif + +ifeq ($(with_cxa_atexit),yes) + CONFARGS += --enable-__cxa_atexit +else + CONFARGS += --disable-__cxa_atexit +endif + +ifeq ($(with_cxx),yes) + CONFARGS += --enable-libstdcxx-allocator=mt # auto pool new mt + ifeq ($(force_gnu_locales),yes) + CONFARGS += --enable-clocale=gnu + endif + ifeq ($(with_debug),yes) + CONFARGS += --enable-libstdcxx-debug + endif +endif + +ifeq ($(with_java),yes) + CONFARGS += --enable-java-gc=boehm --enable-java-awt=gtk +endif +with_nls := yes + +ifeq ($(with_objc)-$(with_objc_gc),yes-yes) + CONFARGS += --enable-objc-gc +endif + +ifeq ($(DEB_TARGET_GNU_TYPE),powerpc-linux) + ifeq ($(biarch),yes) + CONFARGS += --disable-softfloat --with-cpu=default32 + else + CONFARGS += --disable-multilib + endif +endif + +ifeq ($(DEB_TARGET_GNU_CPU), $(findstring $(DEB_TARGET_GNU_CPU),powerpc64)) + CONFARGS += --disable-softfloat +endif + +ifeq ($(DEB_TARGET_GNU_CPU),$(findstring $(DEB_TARGET_GNU_CPU),m68k)) + CONFARGS += --disable-werror +endif + +ifeq ($(with_treelang),yes) + CONFARGS += --disable-werror +endif + +ifeq ($(DEB_TARGET_GNU_CPU)-$(biarch),sparc-yes) + CONFARGS += --with-cpu=v7 +endif + +ifeq ($(DEB_TARGET_GNU_TYPE),ia64-linux) + CONFARGS += --with-system-libunwind +endif + +ifndef DEB_CROSS + CONFARGS += $(TARGET_ALIAS) +else + CONFARGS += \ + --program-prefix=$(TARGET_ALIAS)- \ + --includedir=/$(PF)/$(DEB_TARGET_GNU_TYPE)/include \ + --build=$(DEB_BUILD_GNU_TYPE) \ + --host=$(DEB_HOST_GNU_TYPE) \ + --target=$(TARGET_ALIAS) +endif + +bootstrap_target = profiledbootstrap + +# no profiledbootstrap on the following architectures +# - m68k: we're happy that it builds at all +# - ia64: doesn't work, see PR16108 +no_profiled_bs_archs := ia64 m68k +ifeq ($(DEB_TARGET_GNU_CPU), $(findstring $(DEB_TARGET_GNU_CPU),$(no_profiled_bs_archs))) + bootstrap_target = bootstrap-lean +endif + +bootstrap_target = bootstrap-lean + +# Increase the timeout for one testrun on slow architectures +ifeq ($(DEB_TARGET_GNU_CPU), $(findstring $(DEB_TARGET_GNU_CPU),arm hppa m68k)) + DEJAGNU_TIMEOUT=600 +else + DEJAGNU_TIMEOUT=450 +endif +ifeq ($(DEB_TARGET_GNU_SYSTEM),gnu) + DEJAGNU_TIMEOUT=900 +endif + +default: build + +configure: $(configure_dependencies) + +$(configure_dummy_stamp): + touch $(configure_dummy_stamp) + +$(configure_stamp): + dh_testdir + : # give information about the build process + @echo "-------------------------- Build process variables --------------------------" + @echo "Package source: $(PKGSOURCE)" + @echo "Version: $(VER)" + @echo "Base Debian version: $(DPKGVER)" + @echo -e "Configured with: $(foreach i,$(CONFARGS),$(i)\n\t)" +ifdef DEB_CROSS + @echo "Building cross compiler for $(DEB_TARGET_ARCH)" +endif + @echo "Using shell $(SHELL)" + @echo "Architecture: $(DEB_TARGET_ARCH) (GNU: $(TARGET_ALIAS))" + @echo "CPPFLAGS: $(CPPFLAGS)" + @echo "CFLAGS: $(CFLAGS)" + @echo "LDFLAGS: $(LDFLAGS)" + @echo "BOOT_CFLAGS: $(BOOT_CFLAGS)" + @echo "DEBIAN_BUILDARCH: $(DEBIAN_BUILDARCH)" + @echo "Install prefix: /$(PF)" +ifeq ($(with_cxx),yes) + @echo "Will build the C++ compiler" +else + @echo "Will not build the C++ compiler: $(with_cxx)" +endif +ifeq ($(with_objc),yes) + @echo "Will build the ObjC compiler." + ifeq ($(with_objc_gc),yes) + @echo "Will build the extra ObjC runtime for garbage collection." + else + @echo "Will not build the extra ObjC runtime for garbage collection." + endif +else + @echo "Will not build the ObjC compiler: $(with_objc)" +endif +ifeq ($(with_fortran),yes) + @echo "Will build the Fortran77 compiler." +else + @echo "Will not build the Fortran77 compiler: $(with_fortran)" +endif +ifeq ($(with_java),yes) + @echo "Will build the Java compiler." +else + @echo "Will not build the Java compiler: $(with_java)" +endif +ifeq ($(with_libffi),yes) + @echo "Will build the FFI library." +else + @echo "Will not build the FFI library: $(with_libffi)" +endif +ifeq ($(with_pascal),yes) + @echo "Will build the Pascal compiler." +else + @echo "Will not build the Pascal compiler: $(with_pascal)" +endif +ifeq ($(with_ada),yes) + @echo "Will build the Ada compiler." + ifeq ($(with_libgnat),yes) + @echo "Will build the shared Ada libraries." + else + @echo "Will not build the shared Ada libraries." + endif +else + @echo "Will not build the Ada compiler: $(with_ada)" +endif +ifeq ($(with_treelang),yes) + @echo "Will build the Treelang compiler." +else + @echo "Will not build the Treelang compiler: $(with_treelang)" +endif +ifeq ($(with_check),yes) + @echo "Will run the testsuite." +else + @echo "Will not run the testsuite: $(with_check)" +endif + @echo "-----------------------------------------------------------------------------" + @echo "" + rm -f $(configure_stamp) $(build_stamp) + : # generate debian/README.Debian + cat debian/README $(patch_stamp) > debian/README.Debian + + -chmod 755 $(srcdir)/gcc/p/mk_lang_opt + + rm -rf $(builddir) + mkdir $(builddir) + +# the echo "" | ... needed for the gpc question + : # configure + cd $(builddir) \ + && echo "" | PATH=$(PWD)/bin:$$PATH CC="$(CC)" \ + ../src/configure $(CONFARGS) + +#ifeq ($(with_ada),yes) +# cd $(srcdir)/gcc/ada && touch treeprs.ads [es]info.h nmake.ad[bs] +#endif +ifeq ($(with_ada)-$(with_ada_bootstrap_workaround),yes-yes) + cd $(srcdir); \ + uudecode $(PWD)/debian/patches/ada-generated.uue; \ + tar xvfj ada-generated.tar.bz2; \ + rm ada-generated.tar.bz2; \ + for f in gcc/ada/{nmake.ads,nmake.adb,treeprs.ads,sinfo.h,einfo.h}; \ + do \ + touch $$f; \ + done +endif + +ifndef DEB_CROSS + ifneq ($(with_java),yes) + ifeq ($(with_fastjar),yes) + rm -rf $(builddir)/fastjar + mkdir -p $(builddir)/fastjar + cd $(builddir)/fastjar \ + && CC="$(CC)" CFLAGS="$(CFLAGS)" \ + ../../src/fastjar/configure $(CONFARGS) + endif + endif +endif + touch $(configure_stamp) + +build: $(build_dependencies) + +$(build_dummy_stamp): + touch $(build_dummy_stamp) + +$(build_stamp): $(configure_stamp) + dh_testdir + rm -f bootstrap-protocol +ifndef DEB_CROSS + : # build native compiler + ( \ + set +e; \ + PATH=$(PWD)/bin:$$PATH \ + $(MAKE) -C $(builddir) $(NJOBS) $(bootstrap_target) \ + CC="$(CC)" \ + CFLAGS="$(CFLAGS)" \ + BOOT_CFLAGS="$(BOOT_CFLAGS)" \ + LDFLAGS="$(LDFLAGS)" \ + $(STAGE1_CFLAGS) \ + ; \ + echo $$? > status; \ + ) 2>&1 | tee bootstrap-protocol + s=`cat status`; rm -f status; test $$s -eq 0 + +#ifneq (,$(findstring $(DEB_HOST_ARCH),i386)) +# : # build libstdc++ optimized for i486 and above +# mv $(buildlibdir)/libstdc++-v3 $(buildlibdir)/libstdc++-v3-default +# $(MAKE) -C $(builddir) $(NJOBS) \ +# CFLAGS_FOR_TARGET='-O2 -march=i486 $$(CFLAGS)' \ +# CXXFLAGS='-g -O2 -march=i486' \ +# configure-target-libstdc++-v3 +# $(MAKE) -C $(builddir) $(NJOBS) \ +# CFLAGS_FOR_TARGET='-O2 -march=i486 $$(CFLAGS)' \ +# CXXFLAGS='-g -O2 -march=i486' \ +# all-target-libstdc++-v3 +# mv $(buildlibdir)/libstdc++-v3 $(buildlibdir)/libstdc++-v3-i486 +# mv $(buildlibdir)/libstdc++-v3-default $(buildlibdir)/libstdc++-v3 +#endif + + : # fix '*.la' and '*.lai' files + for i in $$(find $(buildlibdir) -name '*.la' -o -name '*.lai'); do \ + libdir=$$(sed -n "s,^libdir='\(.*\)'.*,\1,p" $$i); \ + [ -z "$$libdir" ] && continue; \ + libdir=$$(realpath -s $$libdir); \ + sed "s,^libdir='\(.*\)'.*,libdir='$$libdir'," $$i > $$i.new; \ + if diff -u $$i $$i.new; then \ + rm -f $$i.new; \ + else \ + echo "$$i: path normalized"; \ + touch -r $$i $$i.new; \ + mv -f $$i.new $$i; \ + fi; \ + done + + ifeq ($(with_java),yes) + : # work around libtool bug including /usr/lib/. in rpath + sed 's/^hardcode_libdir_flag_spec=.*/hardcode_libdir_flag_spec=/' \ + $(buildlibdir)/libjava/libtool > $(buildlibdir)/libjava/libtool.new + mv $(buildlibdir)/libjava/libtool $(buildlibdir)/libjava/libtool.old + mv $(buildlibdir)/libjava/libtool.new $(buildlibdir)/libjava/libtool + chmod 755 $(buildlibdir)/libjava/libtool + touch -r $(buildlibdir)/libjava/libtool.old \ + $(buildlibdir)/libjava/libtool + rm -f $(buildlibdir)/libjava{/,/.libs/}{gij,jv-convert,rmic,rmiregistry} + $(MAKE) -C $(buildlibdir)/libjava + endif + + ifneq ($(with_java),yes) + ifeq ($(with_fastjar),yes) + $(MAKE) -C $(builddir)/fastjar + endif + endif +else + : # build cross compiler for $(TARGET_ALIAS) + ( \ + set +e; \ + PATH=$(PWD)/bin:$$PATH \ + $(MAKE) -C $(builddir) $(NJOBS) \ + CC="$(CC)" \ + CFLAGS="$(CFLAGS)" \ + BOOT_CFLAGS="$(BOOT_CFLAGS)" \ + LDFLAGS="$(LDFLAGS)" \ + ; \ + echo $$? > status; \ + ) 2>&1 | tee bootstrap-protocol + s=`cat status`; rm -f status; test $$s -eq 0 +endif + -chmod 755 $(srcdir)/contrib/warn_summary + if [ -x $(srcdir)/contrib/warn_summary ]; then \ + rm -f bootstrap-summary; \ + $(srcdir)/contrib/warn_summary bootstrap-protocol \ + > bootstrap-summary; \ + fi + +ifeq ($(with_ada),yes) + ifeq ($(with_libgnat),yes) + # In 3.3, the Ada part of GCC does not support parallel builds, + # don't pass the \$(NJOBS) parameter from the make command lines. + + # Build the static and shared libraries + rm -f $(builddir)/gcc/ada/rts/*.{o,ali} + LD_LIBRARY_PATH=$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}$(builddir)/gcc:$(builddir)/gcc/ada/rts \ + PATH=$(PWD)/bin:$$PATH \ + $(MAKE) -C $(builddir)/gcc gnatlib-shared \ + LIBRARY_VERSION=$(GNAT_SONAME) + mkdir -p $(builddir)/gcc/ada/rts/obj + + # Move the object files away lest the tools include them in their + # executables. We want to link against libgnat.so instead. + mv $(builddir)/gcc/ada/rts/*.o $(builddir)/gcc/ada/rts/obj + ln -sf libgnat-$(BASE_VERSION).so.1 \ + $(builddir)/gcc/ada/rts/libgnat-$(BASE_VERSION).so + ln -sf libgnarl-$(BASE_VERSION).so.1 \ + $(builddir)/gcc/ada/rts/libgnarl-$(BASE_VERSION).so + ln -sf libgnat-$(BASE_VERSION).so.1 $(builddir)/gcc/ada/rts/libgnat.so + ln -sf libgnarl-$(BASE_VERSION).so.1 $(builddir)/gcc/ada/rts/libgnarl.so + + # Build gnatmake and gnatlink. + LD_LIBRARY_PATH=$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}$(builddir)/gcc:$(builddir)/gcc/ada/rts \ + PATH=$(PWD)/bin:$$PATH \ + $(MAKE) -C $(builddir)/gcc/ada \ + ADA_INCLUDES="-I- -I../rts" \ + CC="../../xgcc -B../../" \ + CFLAGS="-O2" \ + GNATMAKE="../../gnatmake" \ + GNATLINK="../../gnatlink" \ + GNATBIND="../../gnatbind -C" \ + STAGE_PREFIX="../../" \ + LIBGNAT="-L../rts -lgnat" \ + LN_S="ln -sf" \ + gnattools1 + + # Use gnatmake, gnatbind and gnatlink to build the other tools. + LD_LIBRARY_PATH=$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}$(builddir)/gcc:$(builddir)/gcc/ada/rts \ + PATH=$(PWD)/bin:$$PATH \ + $(MAKE) -C $(builddir)/gcc/ada \ + ADA_INCLUDES="-I- -I../rts" \ + CC="../../xgcc -B../../" \ + CFLAGS="-O2" \ + GNATMAKE="../../gnatmake" \ + GNATLINK="../../gnatlink" \ + GNATBIND="../../gnatbind" \ + STAGE_PREFIX="../../" \ + LIBGNAT="-L../rts -lgnat" \ + LN_S="ln -sf" \ + gnattools2 + else + LD_LIBRARY_PATH=$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}$(builddir)/gcc:$(builddir)/gcc/ada/rts \ + PATH=$(PWD)/bin:$$PATH \ + $(MAKE) -C $(builddir)/gcc $(NJOBS) gnatlib gnattools + endif +endif + + touch $(build_stamp) + +$(configure_hppa64_stamp): $(build_stamp) + dh_testdir + rm -f $(configure_hppa64_stamp) $(build_hppa64_stamp) + rm -rf $(builddir_hppa64) + mkdir $(builddir_hppa64) + : # configure + cd $(builddir_hppa64) && \ + PATH=$(PWD)/bin:$$PATH \ + CC="$(builddir)/gcc/xgcc -B$(builddir)/gcc/" \ + ../src/configure \ + --enable-languages=c \ + --prefix=/$(PF) \ + --libexecdir=/$(libexecdir) \ + --disable-shared \ + --disable-nls \ + --disable-threads \ + --with-as=/usr/bin/hppa64-linux-as \ + --with-ld=/usr/bin/hppa64-linux-ld \ + --includedir=/$(PF)/hppa64-linux/include \ + --host=hppa-linux \ + --build=hppa-linux \ + --target=hppa64-linux + touch $(configure_hppa64_stamp) + +$(build_hppa64_stamp): $(configure_hppa64_stamp) + PATH=$(PWD)/bin:$$PATH \ + $(MAKE) -C $(builddir_hppa64) $(NJOBS) \ + CC="$(builddir)/gcc/xgcc -B$(builddir)/gcc/" \ + CFLAGS="$(CFLAGS)" \ + BOOT_CFLAGS="$(BOOT_CFLAGS)" LDFLAGS="$(LDFLAGS)" + touch $(build_hppa64_stamp) + +MANUALS = \ + $(srcdir)/gcc/doc/cpp.texi \ + $(srcdir)/gcc/doc/cppinternals.texi \ + $(srcdir)/gcc/doc/gcc.texi \ + $(srcdir)/gcc/doc/gccint.texi +ifeq ($(with_fortran),yes) + MANUALS += $(srcdir)/gcc/f/g77.texi +endif +ifeq ($(with_java),yes) + MANUALS += $(srcdir)/gcc/java/gcj.texi +endif +ifeq ($(with_treelang),yes) + MANUALS += $(srcdir)/gcc/treelang/treelang.texi +endif +ifeq ($(with_ada),yes) + MANUALS += \ + $(builddir)/gcc/doc/gnat_ugn_unw.texi \ + $(srcdir)/gcc/ada/gnat_rm.texi \ + $(srcdir)/gcc/ada/gnat-style.texi +endif +ifeq ($(with_pascal),yes) + MANUALS += \ + $(srcdir)/gcc/p/doc/en/gpc.texi \ + $(srcdir)/gcc/p/doc/en/gpcs.texi +endif + +html-docs: $(build_html_stamp) +#$(build_html_stamp): html-texi2html +#$(build_html_stamp): html-makeinfo +$(build_html_stamp): html-makeinfo-nosplit + +html-texi2html: + rm -rf html + mkdir html + for manual in $(MANUALS); do \ + outname=`basename $${manual} .texi`; \ + echo "generating $$outname ..."; \ + texi2html -number -split chapter \ + -I $(srcdir)/gcc/doc/include \ + -I $(srcdir)/gcc/p/doc \ + -I $(srcdir)/gcc/p/doc/generated \ + -I `dirname $${manual}` \ + -subdir html \ + $${manual}; \ + done + +html-makeinfo: + rm -rf html + mkdir html + cd html && \ + for manual in $(MANUALS); do \ + manual=`find $(srcdir) -name $${file}.texi`; \ + outname=`basename $${manual} .texi`; \ + echo "generating $$outname ..."; \ + if [ "$${manual}" ]; then \ + makeinfo --html --number-sections \ + -I $(srcdir)/gcc/doc/include -I `dirname $${manual}` \ + -I $(srcdir)/gcc/p/doc \ + -I $(srcdir)/gcc/p/doc/generated \ + -o $${outname} \ + $${manual}; \ + fi; \ + done + +html-makeinfo-nosplit: + rm -rf html + mkdir html + cd html && \ + for manual in $(MANUALS); do \ + outname=`basename $${manual} .texi`.html; \ + echo "generating $$outname ..."; \ + makeinfo --html --number-sections --no-split \ + -I $(srcdir)/gcc/doc/include -I `dirname $${manual}` \ + -I $(srcdir)/gcc/p/doc \ + -I $(srcdir)/gcc/p/doc/generated \ + -o $${outname} \ + $${manual}; \ + done + +# start the script only on architectures known to have slow autobilders ... +logwatch_archs := arm hppa m68k mips mipsel sparc +ifeq ($(DEB_HOST_GNU_CPU), $(findstring $(DEB_HOST_GNU_CPU),$(logwatch_archs))) + start_logwatch = yes +endif +ifeq ($(DEB_HOST_GNU_SYSTEM),gnu) + start_logwatch = yes +endif + +ifeq ($(biarch),yes) + uname_m := $(shell uname -m) + ifeq ($(uname_m), $(findstring $(uname_m),ppc64 sparc64 s390x)) + DEJAGNU_RUNTESTFLAGS = RUNTESTFLAGS="--target_board 'unix unix/-m64'" + endif +endif +ifeq ($(biarch_ia32),yes) + uname_m := $(shell uname -m) + ifeq ($(uname_m), $(findstring $(uname_m),x86_64)) + DEJAGNU_RUNTESTFLAGS = RUNTESTFLAGS="--target_board 'unix unix/-m32'" + endif +endif + +check: $(check_stamp) #$(check_inst_stamp) +$(check_stamp): $(build_stamp) + rm -f test-protocol + + : # build locales needed by libstdc++ testsuite + rm -rf locales + mkdir locales + chmod +x debian/locale-gen + debian/locale-gen + + : # work around PR17369 + sed 's,^export LD_LIBRARY_PATH.*,export LD_LIBRARY_PATH=$(builddir)/gcc:$(builddir)/gcc/ada/rts,' \ + $(builddir)/gcc/Makefile > $(builddir)/gcc/Makefile.new + touch -r $(builddir)/gcc/Makefile $(builddir)/gcc/Makefile.new + mv -f $(builddir)/gcc/Makefile.new $(builddir)/gcc/Makefile + +ifeq ($(start_logwatch),yes) + : # start logwatch script for regular output during test runs + chmod +x debian/logwatch.sh + -debian/logwatch.sh -t 900 -p $(builddir)/logwatch.pid \ + -m '\ntestsuite still running ...\n' \ + test-protocol \ + $(builddir)/gcc/testsuite/{gcc,g++,g77,objc}.log \ + $(builddir)/gcc/testsuite/ada/acats/acats.log \ + $(builddir)/gcc/p/test/test_log \ + $(buildlibdir)/libstdc++-v3/testsuite/libstdc++-v3.log \ + $(buildlibdir)/libjava/testsuite/libjava.log \ + $(buildlibdir)/libmudflap/testsuite/libmudflap.log \ + & +endif + +ifeq ($(with_ada)-$(DEB_HOST_ARCH),yes-ia64) + chmod +x debian/acats-killer.sh + -debian/acats-killer.sh \ + $(builddir)/gcc/testsuite/ada/acats/acats.log \ + $(builddir)/gcc/testsuite/g++.log \ + & +endif + + echo "Running testsuite ..." + -$(ULIMIT); \ + unset LANG LC_ALL LC_CTYPE LC_NUMERIC LC_TIME LC_MONETARY LC_MESSAGES; \ + EXTRA_TEST_PFLAGS=-g0 \ + $(DEJAGNU_RUNTESTFLAGS) \ + DEJAGNU_TIMEOUT=$(DEJAGNU_TIMEOUT) \ + LOCPATH=$(PWD)/locales \ + LD_LIBRARY_PATH=$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}$(builddir)/gcc:$(builddir)/gcc/ada/rts \ + $(MAKE) -C $(builddir) -k check 2>&1 | tee test-protocol + + -ps aux | fgrep logwatch | fgrep -v fgrep + if [ -f $(builddir)/logwatch.pid ]; then \ + kill -1 `cat $(builddir)/logwatch.pid`; \ + else \ + true; \ + fi + -ps aux | fgrep logwatch | fgrep -v fgrep + + -chmod 755 $(srcdir)/contrib/test_summary + if [ -x $(srcdir)/contrib/test_summary ]; then \ + rm -f test-summary; \ + ( \ + cd $(builddir); \ + echo '' > ts-include; \ + echo '' >> ts-include; \ + if [ -f $(builddir)/gcc/.bad_compare ]; then \ + echo 'Bootstrap comparision failure:' >> ts-include; \ + cat $(builddir)/gcc/.bad_compare >> ts-include; \ + echo '' >> ts-include; \ + echo '' >> ts-include; \ + fi; \ + echo "Build Dependencies:" >> ts-include; \ + dpkg -l binutils `echo '$(LIBC_DEP)' | awk '{print $$1}'` \ + >> ts-include; \ + echo '' >> ts-include; \ + cat ../$(patch_stamp) >> ts-include; \ + BOOT_CFLAGS="$(BOOT_CFLAGS)" \ + $(srcdir)/contrib/test_summary \ + -i ts-include -m "$(S_EMAIL)" \ + ) > raw-test-summary; \ + if [ -n "$(testsuite_tarball)" ]; then \ + echo "Test suite used: $(testsuite_srcdir)" > test-summary; \ + echo " Do not interpret the results on its own" >> test-summary; \ + echo " but compare them with the results from" >> test-summary; \ + echo " the gcc-snapshot package." >> test-summary; \ + fi; \ + sed -n '/^Mail/s/.*"\([^"][^"]*\)".*/\1/p' raw-test-summary \ + >> test-summary; \ + awk '/^cat/, /^EOF/' raw-test-summary | grep -v EOF >> test-summary; \ + if [ -f bootstrap-summary -a "$(bootstrap_target)" != profiledbootstrap ]; then \ + echo '' >> test-summary; \ + cat bootstrap-summary >> test-summary; \ + fi; \ + echo 'BEGIN test-summary'; \ + cat test-summary; \ + echo 'END test-summary'; \ + fi + + touch $(check_stamp) + +$(check_inst_stamp): $(check_stamp) + rm -f test-inst-protocol + +ifeq ($(start_logwatch),yes) + : # start logwatch script for regular output during test runs + chmod +x debian/logwatch.sh + -debian/logwatch.sh -t 900 -p $(builddir)/logwatch-inst.pid \ + -m '\ntestsuite (3.3) still running ...\n' \ + test-inst-protocol \ + check-inst/{gcc,g++,g77,objc}.log \ + & +endif + + rm -rf check-inst + mkdir check-inst + + echo "Running testsuite ..." + -$(ULIMIT) ; \ + DEJAGNU_TIMEOUT=$(DEJAGNU_TIMEOUT) \ + LOCPATH=$(PWD)/locales \ + cd check-inst && $(srcdir)/contrib/test_installed \ + --with-gcc=gcc-3.3 --with-g++=g++-3.3 --with-g77=g77-3.3 \ + 2>&1 | tee test-inst-protocol + + -ps aux | fgrep logwatch | fgrep -v fgrep + if [ -f $(builddir)/logwatch-inst.pid ]; then \ + kill -1 `cat $(builddir)/logwatch-inst.pid`; \ + else \ + true; \ + fi + -ps aux | fgrep logwatch | fgrep -v fgrep + + -chmod 755 $(srcdir)/contrib/test_summary + if [ -x $(srcdir)/contrib/test_summary ]; then \ + rm -f test-inst-summary; \ + ( \ + cd check-inst; \ + echo '' > ts-include; \ + echo '' >> ts-include; \ + echo "Build Dependencies:" >> ts-include; \ + dpkg -l g++-3.3 binutils `echo '$(LIBC_DEP)' | awk '{print $$1}'` \ + >> ts-include; \ + echo '' >> ts-include; \ + echo 'Results for the installed GCC-3.3 compilers' >> ts-include; \ + $(srcdir)/contrib/test_summary \ + -i ts-include -m "$(S_EMAIL)" \ + ) > raw-test-inst-summary; \ + sed -n '/^Mail/s/.*"\([^"][^"]*\)".*/\1/p' raw-test-inst-summary \ + >> test-inst-summary; \ + awk '/^cat/, /^EOF/' raw-test-inst-summary \ + | grep -v EOF >> test-inst-summary; \ + echo 'BEGIN test-installed-summary'; \ + cat test-inst-summary; \ + echo 'END test-installed-summary'; \ + fi + + chmod 755 debian/reduce-test-diff.awk + if diff -u test-inst-summary test-summary \ + | debian/reduce-test-diff.awk > diff-summary; \ + then \ + mv -f diff-summary testsuite-comparision; \ + else \ + ( \ + echo "WARNING: New failures in gcc-3.4 compared to gcc-3.3"; \ + echo ''; \ + cat diff-summary; \ + ) > testsuite-comparision; \ + rm -f diff-summary; \ + fi + touch $(check_inst_stamp) + +clean: debian/control + dh_testdir + rm -f pxxx status + rm -f *-summary *-protocol testsuite-comparision summary-diff +ifeq ($(with_pascal),yes) + -rm -f $(srcdir)/gcc/p/doc/*info + rm -f $(srcdir)/gcc/p/test/{fjf51,fjf141aa,fjf199aa,magic,?,knownbugs/a.out} +endif + if [ -f $(srcdir)/gcc/p/config-lang.in.debian ]; then \ + mv -f $(srcdir)/gcc/p/config-lang.in.debian $(srcdir)/gcc/p/config-lang.in; \ + else true; fi + rm -f $(srcdir)/gcc/po/*.gmo + rm -f debian/lib{ffi,g2c,gcc,gcj,objc,stdc++}{-v3,[0-9]}*.{{pre,post}{inst,rm},shlibs} + for f in debian/*-BV*; do \ + f2=$$(echo $$f \ + | sed 's/BV/$(BASE_VERSION)/;s/PV/$(GPC_BASE_VERSION)/'); \ + rm -f $$f2; \ + done + rm -f debian/shlibs.local + rm -f debian/*.debhelper + -[ -d debian/bugs ] && $(MAKE) -C debian/bugs clean + rm -f debian/README.libstdc++-baseline + rm -rf bin locales + rm -rf check-inst + rm -rf $(unwind_dir).tar.gz $(unwind_dir) $(d)-unwind + rm -rf protector* + dh_clean + +# ----------------------------------------------------------------------------- +# some abbrevations for the package names and directories; +# p_XXX is the package name, d_XXX is the package directory +# these macros are only used in the binary-* targets. + +ifeq ($(versioned_packages),yes) + pkg_ver := -$(BASE_VERSION) + gpc_pkg_ver := -$(GPC_BASE_VERSION)$(pkg_ver) +endif + +p_base = gcc$(pkg_ver)-base +ifndef DEB_CROSS + p_gcc = gcc$(pkg_ver) + p_cpp = cpp$(pkg_ver) + p_cppd = cpp$(pkg_ver)-doc + p_cxx = g++$(pkg_ver) + p_doc = gcc$(pkg_ver)-doc +else + p_cpp = cpp$(pkg_ver)$(cross_bin_arch) + p_gcc = gcc$(pkg_ver)$(cross_bin_arch) + p_cxx = g++$(pkg_ver)$(cross_bin_arch) +endif +p_hppa64 = gcc$(pkg_ver)-hppa64 + +d = debian/tmp +d_base = debian/$(p_base) +d_gcc = debian/$(p_gcc) +d_cpp = debian/$(p_cpp) +d_cppd = debian/$(p_cppd) +d_cxx = debian/$(p_cxx) +d_doc = debian/$(p_doc) +d_hppa64= debian/$(p_hppa64) + +# --------------------------------------------------------------------------- + +ifndef DEB_CROSS +# ---------------------------------------- +# native target + +include debian/rules.d/binary-base.mk +include debian/rules.d/binary-libgcc.mk + +ifeq ($(with_cdev),yes) + include debian/rules.d/binary-cpp.mk +endif + +ifeq ($(with_proto),yes) + include debian/rules.d/binary-proto.mk +endif + +ifeq ($(with_fixincl),yes) + include debian/rules.d/binary-fixincl.mk +endif + +ifeq ($(with_objc),yes) + include debian/rules.d/binary-objc.mk +endif +ifeq ($(with_libobjc),yes) + include debian/rules.d/binary-libobjc.mk +endif + +# include before cxx +include debian/rules.d/binary-java.mk +ifeq ($(with_fastjar),yes) + include debian/rules.d/binary-fastjar.mk +endif + +ifeq ($(with_libffi),yes) + include debian/rules.d/binary-libffi.mk +endif + +ifeq ($(with_cxxdev),yes) + include debian/rules.d/binary-cxx.mk +endif +ifeq ($(with_cxx),yes) + include debian/rules.d/binary-libstdcxx.mk +endif + +ifeq ($(with_fortran),yes) + include debian/rules.d/binary-fortran.mk +endif + +ifeq ($(with_ada),yes) + include debian/rules.d/binary-ada.mk +endif + +ifeq ($(with_treelang),yes) + include debian/rules.d/binary-treelang.mk +endif + +ifeq ($(with_pascal),yes) + include debian/rules.d/binary-pascal.mk +endif + +ifeq ($(with_libnof),yes) + ifeq ($(DEB_TARGET_GNU_CPU),powerpc) + include debian/rules.d/binary-nof.mk + endif +endif + +# gcc must be moved/built after g77 and g++ +ifeq ($(with_cdev),yes) + include debian/rules.d/binary-gcc.mk +endif + +ifeq ($(with_hppa64),yes) + include debian/rules.d/binary-hppa64.mk +endif + +else +# ---------------------------------------- +# cross target + +ifeq ($(with_libgcc),yes) + include debian/rules.d/binary-libgcc-cross.mk +endif + +ifeq ($(with_cdev),yes) + include debian/rules.d/binary-cpp-cross.mk +endif + +ifeq ($(with_cxxdev),yes) + include debian/rules.d/binary-cxx-cross.mk +endif +ifeq ($(with_cxx),yes) + include debian/rules.d/binary-libstdcxx-cross.mk +endif + +ifeq ($(with_libnof), yes) + ifeq ($(DEB_TARGET_GNU_CPU),powerpc) + include debian/rules.d/binary-nof-cross.mk + endif +endif + +ifeq ($(with_cdev),yes) + include debian/rules.d/binary-gcc-cross.mk +endif + +endif + +# ---------------------------------------------------------------------- +install: $(install_dependencies) + +$(install_dummy_stamp): $(build_dummy_stamp) + touch $(install_dummy_stamp) + +$(install_stamp): $(build_stamp) + dh_testdir + dh_testroot + dh_clean -k -N$(p_hppa64) + if [ -f $(binary_stamp)-hppa64 ]; then \ + mv $(binary_stamp)-hppa64 saved-stamp; \ + rm -f $(binary_stamp)*; \ + mv saved-stamp $(binary_stamp)-hppa64; \ + else \ + rm -f $(binary_stamp)*; \ + fi + +#ifeq ($(with_java),yes) +# : # a "fix" +# [ -f $(buildlibdir)/boehm-gc/.libs/libgcjgc.lai ] \ +# || sed -e 's/^installed=no/installed=yes/' \ +# $(buildlibdir)/boehm-gc/libgcjgc.la \ +# > $(buildlibdir)/boehm-gc/.libs/libgcjgc.lai +# [ -f $(buildlibdir)/libjava/.libs/libgcj.lai ] \ +# || sed -e 's/^installed=no/installed=yes/' \ +# $(buildlibdir)/libjava/libgcj.la \ +# > $(buildlibdir)/libjava/.libs/libgcj.lai +#endif + + : # Install directories + rm -rf $(d) + mkdir -p $(d)/$(libdir) $(d)/$(PF) + +ifeq ($(DEB_TARGET_GNU_CPU), $(findstring $(DEB_TARGET_GNU_CPU),powerpc64)) + : # link lib to lib64 and usr/lib to usr/lib64 + : # (this works when CONFARGS contains '--disable-multilib') + ln -s lib $(d)/lib64 + mkdir -p $(d)/usr/lib + ln -s lib $(d)/usr/lib64 +endif + + : # Install everything + PATH=$(PWD)/bin:$$PATH \ + $(MAKE) -C $(builddir) \ + CFLAGS="$(CFLAGS)" \ + LDFLAGS="$(LDFLAGS)" \ + BOOT_CFLAGS="$(BOOT_CFLAGS)" \ + DESTDIR=$(PWD)/$(d) \ + infodir=/$(PF)/share/info \ + mandir=/$(PF)/share/man \ + install + +# wondering, why this is necessary, the installation of the gnat tools +# is tried from the general install above, but fails with: +# install: cannot create regular file `/debian/tmp/usr/bin/gnatbl': No such file or directory +#ifeq ($(with_ada),yes) +# : # Install Ada components +# PATH=$(PWD)/bin:$$PATH \ +# $(MAKE) -C $(builddir)/gcc \ +# CFLAGS="$(CFLAGS)" \ +# LDFLAGS="$(LDFLAGS)" \ +# BOOT_CFLAGS="$(BOOT_CFLAGS)" \ +# INSTALL="$(INSTALL)" \ +# prefix=$(PWD)/$(d)/$(PF) \ +# infodir=$(PWD)/$(d)/$(PF)/share/info \ +# mandir=$(PWD)/$(d)/$(PF)/share/man \ +# gxx_include_dir=$(PWD)/$(d)/$(cxx_inc_dir) \ +# ada.install-common +#endif + +ifneq ($(with_java),yes) + ifeq ($(with_fastjar),yes) + : # Install fastjar + $(MAKE) -C $(builddir)/fastjar \ + DESTDIR=$(PWD)/$(d) \ + infodir=/$(PF)/share/info \ + mandir=/$(PF)/share/man \ + install + endif +endif + + : # fix '*.la' and '*.lai' files + for i in $$(find $(d) -name '*.la' -o -name '*.lai'); do \ + libdir=$$(sed -n "s,^libdir='\(.*\)'.*,\1,p" $$i); \ + [ -z "$$libdir" ] && continue; \ + libdir=$$(realpath -s $$libdir); \ + sed "s,^libdir='\(.*\)'.*,libdir='$$libdir'," $$i > $$i.new; \ + if diff -u $$i $$i.new; then \ + rm -f $$i.new; \ + else \ + echo "$$i: path normalized"; \ + touch -r $$i $$i.new; \ + mv -f $$i.new $$i; \ + fi; \ + done + +ifneq ($(with_libgnat),yes) + rm -f $(d)/$(gcc_lib_dir)/adalib/lib*.so* +endif + +ifeq ($(GFDL_INVARIANT_FREE),yes) + for i in gcc gcov; do \ + I=`echo $$i | tr a-z A-Z`; \ + sed -e "s/@NAME@/$$I$(pkg_ver)/g" -e "s/@name@/$$i$(pkg_ver)/g" \ + debian/dummy-man.1 > $(d)/$(PF)/share/man/man1/$$i.1; \ + done + cp -p debian/gccbug.1 $(d)/$(PF)/share/man/man1/$(TP)gccbug$(pkg_ver) + + ifeq ($(with_fortran),yes) + for i in g77; do \ + I=`echo $$i | tr a-z A-Z`; \ + sed -e "s/@NAME@/$$I$(pkg_ver)/g" -e "s/@name@/$$i$(pkg_ver)/g" \ + debian/dummy-man.1 > $(d)/$(PF)/share/man/man1/$$i.1; \ + done + endif + ifeq ($(with_java),yes) + for i in gcj gcjh gij jv-convert jv-scan jcf-dump rmic rmiregistry; \ + do \ + I=`echo $$i | tr a-z A-Z`; \ + sed -e "s/@NAME@/$$I$(pkg_ver)/g" -e "s/@name@/$$i$(pkg_ver)/g" \ + debian/dummy-man.1 > $(d)/$(PF)/share/man/man1/$$i.1; \ + done + endif +endif + +ifeq ($(with_pascal),yes) + : # gpc is already versioned with the gcc version. + mv $(d)/$(PF)/bin/gpc$(pkg_ver) $(d)/$(PF)/bin/gpc + mv $(d)/$(PF)/share/man/man1/gpc$(pkg_ver).1 \ + $(d)/$(PF)/share/man/man1/gpc.1 +endif +ifeq ($(versioned_packages),yes) + ifeq ($(with_pascal),yes) + ifeq ($(GFDL_INVARIANT_FREE),yes-XXXX) + for i in binobj gpc gpc-run gpidump; do \ + I=`echo $$i | tr a-z A-Z`; \ + sed -e "s/@NAME@/$$I$(gpc_pkg_ver)/g" \ + -e "s/@name@/$$i$(gpc_pkg_ver)/g" \ + debian/dummy-man.1 > $(d)/$(PF)/share/man/man1/$$i.1; \ + done + endif + ifeq ($(with_gpidump),yes) + : # rename files (versioned gpc binaries) + for i in binobj gpc gpc-run gpidump; do \ + mv $(d)/$(PF)/bin/$$i $(d)/$(PF)/bin/$$i$(gpc_pkg_ver); \ + done + : # rename files (versioned gpc man pages) + for i in binobj gpc gpc-run gpidump; do \ + mv $(d)/$(PF)/share/man/man1/$$i.1 \ + $(d)/$(PF)/share/man/man1/$$i$(gpc_pkg_ver).1; \ + done + else + : # rename files (versioned gpc binaries) + for i in binobj gpc gpc-run; do \ + mv $(d)/$(PF)/bin/$$i $(d)/$(PF)/bin/$$i$(gpc_pkg_ver); \ + done + : # rename files (versioned gpc man pages) + for i in binobj gpc gpc-run; do \ + mv $(d)/$(PF)/share/man/man1/$$i.1 \ + $(d)/$(PF)/share/man/man1/$$i$(gpc_pkg_ver).1; \ + done + endif + endif +endif + +# ifeq ($(with_ada),yes) +# : # rename files (versioned ada binaries) +# for i in ; do \ +# mv $(d)/$(PF)/bin/$$i $(d)/$(PF)/bin/$$i-$(GNAT_VERSION); \ +# mv $(d)/$(PF)/share/man/man1/$$i.1 \ +# $(d)/$(PF)/share/man/man1/$$i-$(GNAT_VERSION).1; \ +# done +# for i in $(GNAT_TOOLS); do \ +# mv $(d)/$(PF)/bin/$$i $(d)/$(PF)/bin/$$i-$(GNAT_VERSION); \ +# done +# endif + +ifneq ($(with_libgcc),yes) + : # needed for dependency of other shared libs + echo 'libgcc_s $(GCC_SONAME) $(p_lgcc) (>= $(DEB_SOVERSION))' \ + > debian/shlibs.local +endif + +ifdef DEB_CROSS + ifeq ($(DEB_TARGET_ARCH),s390) + : # s390 64bit stuff happens to be in s390x-linux/lib64/ + mkdir -p $(d)/$(PF)/s390-linux/lib64 + cp -a $(d)/$(PF)/s390x-linux/lib64/* $(d)/$(PF)/s390-linux/lib64/ + endif +endif + + chmod 755 debian/dh_* + touch $(install_stamp) + +$(install_hppa64_stamp): $(build_hppa64_stamp) + dh_testdir + dh_testroot + rm -rf $(d_hppa64) + mkdir -p $(d_hppa64)/$(PF) + + PATH=$(PWD)/bin:$$PATH \ + $(MAKE) -C $(builddir_hppa64) \ + CC="$(CC)" \ + CFLAGS="$(CFLAGS)" \ + BOOT_CFLAGS="$(BOOT_CFLAGS)" \ + LDFLAGS="$(LDFLAGS)" \ + DESTDIR=$(PWD)/$(d_hppa64) \ + install + +# TODO: multiarch support ... + : # provide as and ld links + ln -sf ../../../../bin/hppa64-linux-as \ + $(d_hppa64)/$(PF)/lib/gcc/hppa64-linux/$(VER)/as + ln -sf ../../../../bin/hppa64-linux-ld \ + $(d_hppa64)/$(PF)/lib/gcc/hppa64-linux/$(VER)/ld + + rm -f $(d_hppa64)/$(PF)/bin/hppa64-linux-gcc-$(VER) + mv $(d_hppa64)/$(PF)/bin/hppa64-linux-gcc \ + $(d_hppa64)/$(PF)/bin/hppa64-linux-gcc$(pkg_ver) + mv $(d_hppa64)/$(PF)/bin/hppa64-linux-cpp \ + $(d_hppa64)/$(PF)/bin/hppa64-linux-cpp$(pkg_ver) + + : # remove files not needed + rm -rf $(d_hppa64)/$(PF)/info + rm -rf $(d_hppa64)/$(PF)/man + rm -f $(d_hppa64)/$(PF)/lib/libiberty.a + rm -f $(d_hppa64)/$(PF)/bin/*{protoize,gcov,gccbug} + + rm -rf $(d_hppa64)/$(PF)/hppa64-linux/include + rm -rf $(d_hppa64)/$(PF)/hppa64-linux/lib + -rmdir $(d_hppa64)/$(PF)/hppa64-linux + + touch $(install_hppa64_stamp) + +# ---------------------------------------------------------------------- +# Build architecture-dependent files here. +#binary-arch: build install $(foreach i,$(arch_binaries),$(binary_stamp)-$(i)) +binary-arch: $(foreach i,$(arch_binaries),$(binary_stamp)-$(i)) +ifeq ($(with_check),yes) + @echo Done +# : # Send Email about sucessfull build. +# # cat raw-test-summary | sh; echo "Sent mail to $(S_EMAIL)" +endif + +# ---------------------------------------------------------------------- +# Build architecture-independent files here. +#binary-indep: build install $(foreach i,$(indep_binaries),$(binary_stamp)-$(i)) +binary-indep: $(foreach i,$(indep_binaries),$(binary_stamp)-$(i)) + +source diff: + @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary --- gcc-3.4-3.4.3.orig/debian/gcc-BV-doc.prerm +++ gcc-3.4-3.4.3/debian/gcc-BV-doc.prerm @@ -0,0 +1,6 @@ +#! /bin/sh -e + +install-info --quiet --remove gcc-@BV@ +install-info --quiet --remove gccint-@BV@ + +#DEBHELPER# --- gcc-3.4-3.4.3.orig/debian/gcj-BV.postinst +++ gcc-3.4-3.4.3/debian/gcj-BV.postinst @@ -0,0 +1,20 @@ +#! /bin/sh -e + +update-alternatives --quiet \ + --install /usr/bin/javac javac /usr/bin/gcj-wrapper-@BV@ 33 \ + --slave /usr/share/man/man1/javac.1.gz \ + javac.1.gz /usr/share/man/man1/gcj-wrapper-@BV@.1.gz \ + --slave /usr/bin/javah javah /usr/bin/gcjh-wrapper-@BV@ \ + --slave /usr/share/man/man1/javah.1.gz javah.1.gz \ + /usr/share/man/man1/gcjh-wrapper-@BV@.1.gz \ +|| true + +if [ -f /usr/share/info/gcj-@BV@.info.gz ]; then + install-info --quiet --section "Development" "Development" \ + /usr/share/info/gcj-@BV@.info.gz +else + # GFDL invariant free + true +fi + +#DEBHELPER# --- gcc-3.4-3.4.3.orig/debian/cross-unwind/path_max.patch +++ gcc-3.4-3.4.3/debian/cross-unwind/path_max.patch @@ -0,0 +1,21 @@ +--- src.orig/os-linux.h 2004-11-04 00:08:07.000000000 +0300 ++++ src/os-linux.h 2005-01-04 22:56:46.000000000 +0300 +@@ -26,6 +26,8 @@ + #ifndef os_linux_h + #define os_linux_h + ++#include ++ + struct map_iterator + { + off_t offset; +--- src.orig/ptrace/_UPT_find_proc_info.c 2004-11-04 00:08:07.000000000 +0300 ++++ src/ptrace/_UPT_find_proc_info.c 2005-01-04 23:37:34.000000000 +0300 +@@ -35,6 +35,7 @@ + #if UNW_TARGET_IA64 + + #include "elf64.h" ++#include + + static unw_word_t + find_gp (struct UPT_info *ui, Elf64_Phdr *pdyn, Elf64_Addr load_base) --- gcc-3.4-3.4.3.orig/debian/cross-unwind/Gcursor_i.h +++ gcc-3.4-3.4.3/debian/cross-unwind/Gcursor_i.h @@ -0,0 +1,33 @@ +#ifndef cursor_i_h +#define cursor_i_h + +/* + * DO NOT MODIFY + * + * This file was generated by ./a.out. + * + */ + +#define IP_OFF 8 /* 0x8 */ +#define PR_OFF 24 /* 0x18 */ +#define BSP_OFF 32 /* 0x20 */ +#define PSP_OFF 48 /* 0x30 */ +#define PFS_LOC_OFF 152 /* 0x98 */ +#define RNAT_LOC_OFF 168 /* 0xa8 */ +#define UNAT_LOC_OFF 328 /* 0x148 */ +#define LC_LOC_OFF 360 /* 0x168 */ +#define FPSR_LOC_OFF 376 /* 0x178 */ +#define B1_LOC_OFF 392 /* 0x188 */ +#define B2_LOC_OFF 408 /* 0x198 */ +#define B3_LOC_OFF 424 /* 0x1a8 */ +#define B4_LOC_OFF 440 /* 0x1b8 */ +#define B5_LOC_OFF 456 /* 0x1c8 */ +#define F2_LOC_OFF 472 /* 0x1d8 */ +#define F3_LOC_OFF 488 /* 0x1e8 */ +#define F4_LOC_OFF 504 /* 0x1f8 */ +#define F5_LOC_OFF 520 /* 0x208 */ +#define FR_LOC_OFF 536 /* 0x218 */ +#define LOC_SIZE 16 /* 0x10 */ +#define SIGCONTEXT_ADDR_OFF 824 /* 0x338 */ + +#endif /* cursor_i_h */ --- gcc-3.4-3.4.3.orig/debian/cross-unwind/Lcursor_i.h +++ gcc-3.4-3.4.3/debian/cross-unwind/Lcursor_i.h @@ -0,0 +1,33 @@ +#ifndef cursor_i_h +#define cursor_i_h + +/* + * DO NOT MODIFY + * + * This file was generated by ./a.out. + * + */ + +#define IP_OFF 8 /* 0x8 */ +#define PR_OFF 24 /* 0x18 */ +#define BSP_OFF 32 /* 0x20 */ +#define PSP_OFF 48 /* 0x30 */ +#define PFS_LOC_OFF 104 /* 0x68 */ +#define RNAT_LOC_OFF 112 /* 0x70 */ +#define UNAT_LOC_OFF 192 /* 0xc0 */ +#define LC_LOC_OFF 208 /* 0xd0 */ +#define FPSR_LOC_OFF 216 /* 0xd8 */ +#define B1_LOC_OFF 224 /* 0xe0 */ +#define B2_LOC_OFF 232 /* 0xe8 */ +#define B3_LOC_OFF 240 /* 0xf0 */ +#define B4_LOC_OFF 248 /* 0xf8 */ +#define B5_LOC_OFF 256 /* 0x100 */ +#define F2_LOC_OFF 264 /* 0x108 */ +#define F3_LOC_OFF 272 /* 0x110 */ +#define F4_LOC_OFF 280 /* 0x118 */ +#define F5_LOC_OFF 288 /* 0x120 */ +#define FR_LOC_OFF 296 /* 0x128 */ +#define LOC_SIZE 8 /* 0x8 */ +#define SIGCONTEXT_ADDR_OFF 456 /* 0x1c8 */ + +#endif /* cursor_i_h */ --- gcc-3.4-3.4.3.orig/debian/cross-unwind/README +++ gcc-3.4-3.4.3/debian/cross-unwind/README @@ -0,0 +1,10 @@ +Files in this directory are used to cross-compile libunwind while building +cross-gcc for ia64 target. Libunwind source can't cross-compile as-is because +it builds tools to generate two header files that are used later in build +process, and this procedure can't handle cross-compiling case properly. + +Fixing build procedure seems too hard because autotools don't seem to +support this case. + +So, as a temporary solution, files are pre-built on ia64 host and provided +in this directory. --- gcc-3.4-3.4.3.orig/debian/rules.defs +++ gcc-3.4-3.4.3/debian/rules.defs @@ -0,0 +1,657 @@ +# -*- makefile -*- +# definitions used in more than one Makefile / rules file + +SHELL = /bin/bash -e # brace expansion used in rules file +PWD := $(shell pwd) +srcdir = $(PWD)/src +builddir = $(PWD)/build +builddir_hppa64 = $(PWD)/build-hppa64 +stampdir = stamps + +lib64 = lib64 + +# version of default gcc compiler (e.g. 3.3 or 3.4) +BUILD_CC_VERSION:= $(shell gcc -dumpversion | sed 's/\([0-9]*\.[0-9]*\)\(.*\)/\1/') + +# architecture dependent variables +DEB_BUILD_GNU_TYPE := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) + +DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH) +DEB_HOST_GNU_CPU := $(shell dpkg-architecture -qDEB_HOST_GNU_CPU) +DEB_HOST_GNU_SYSTEM := $(shell dpkg-architecture -qDEB_HOST_GNU_SYSTEM) +DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) + +# allow debian/target to be used instead of GCC_TARGET - this was requested +# by toolchain-source maintainer +ifndef GCC_TARGET +DEBIAN_TARGET_FILE := $(strip $(shell cat debian/target 2>/dev/null)) +ifneq ($(DEBIAN_TARGET_FILE),) +GCC_TARGET := $(DEBIAN_TARGET_FILE) +endif +endif + +DEB_TARGET_ARCH := $(shell dpkg-architecture -f \ + -a$(GCC_TARGET) -qDEB_HOST_ARCH 2>/dev/null) +DEB_TARGET_GNU_CPU := $(shell dpkg-architecture -f \ + -a$(DEB_TARGET_ARCH) -qDEB_HOST_GNU_CPU 2>/dev/null) +DEB_TARGET_GNU_SYSTEM := $(shell dpkg-architecture -f \ + -a$(DEB_TARGET_ARCH) -qDEB_HOST_GNU_SYSTEM 2>/dev/null) +DEB_TARGET_GNU_TYPE := $(shell dpkg-architecture -f \ + -a$(DEB_TARGET_ARCH) -qDEB_HOST_GNU_TYPE 2>/dev/null) + +# --------------------------------------------------------------------------- +# which binary packages are built? + +# cross compiler support. If GCC_TARGET is set, then it's the architecture +# we build for. + +ifeq ($(DEB_TARGET_ARCH),) +$(error GCC_TARGET value "$(GCC_TARGET)" is not a valid Debian architecture) +endif + +ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_TARGET_GNU_TYPE)) + DEB_CROSS = yes + # TP: Target Prefix. Used primarily as a prefix for cross tool + # names (e.g. powerpc-linux-gcc). + # TS: Target Suffix. Used primarily at the end of cross compiler + # package names (e.g. gcc-powerpc). + # LS: Library Suffix. Used primarily at the end of cross compiler + # library package names (e.g. libgcc-powerpc-cross). + DEB_TARGET_ALIAS ?= $(DEB_TARGET_GNU_TYPE) + TP = $(DEB_TARGET_GNU_TYPE)- + TS = -$(DEB_TARGET_ALIAS) + LS = -$(DEB_TARGET_ARCH)-cross +endif + +ifeq ($(DEB_CROSS),yes) + TARGET_ALIAS := $(DEB_TARGET_ALIAS) +else + TARGET_ALIAS := $(DEB_TARGET_GNU_TYPE) + # overwrite ix86 CPU defaults + ifeq ($(TARGET_ALIAS),i386-linux) + TARGET_ALIAS := i486-linux + endif + ifeq ($(TARGET_ALIAS),i386-gnu) + TARGET_ALIAS := i586-gnu + endif + ifeq ($(TARGET_ALIAS),i386-kfreebsd-gnu) + TARGET_ALIAS := i486-kfreebsd-gnu + endif + ifeq ($(TARGET_ALIAS),i386-knetbsd-gnu) + TARGET_ALIAS := i486-knetbsd-gnu + endif +endif + +printarch: + @echo DEB_TARGET_ARCH: $(DEB_TARGET_ARCH) + @echo DEB_TARGET_GNU_CPU: $(DEB_TARGET_GNU_CPU) + @echo DEB_TARGET_GNU_SYSTEM: $(DEB_TARGET_GNU_SYSTEM) + @echo GCC_TARGET: $(GCC_TARGET) + @echo TP: $(TP) + @echo TS: $(TS) + +# The name of the source package +PKGSOURCE := $(shell dpkg-parsechangelog | awk '/^Source:/ {print $$2;exit 0}') + +versioned_packages := yes + +ifdef DEB_CROSS + cross_bin_arch := -$(TARGET_ALIAS) + cross_lib_arch := -$(DEB_TARGET_ARCH)-cross +endif + +# Don't include docs with GFDL invariant sections -------------------- +GFDL_INVARIANT_FREE := no + +# -------------------- +# Configuration of components + +# common things -------------------- +# build common packages, where package names don't differ in different +# gcc versions (fastjar, fixincludes, libgcj-common) ... +with_common_pkgs := no + +# ... and some libraries, which do not change (libffi2, libg2c, libobjc1). +with_common_libs := built from gcc-3.3 + +# Build common_pkgs and common_libs for amd64/gcc-3.4 +ifeq ($(DEB_TARGET_GNU_CPU),x86_64) + ifneq ($(BUILD_CC_VERSION),3.3) + with_common_pkgs := yes + with_common_libs := yes + endif +endif + +#no_common_libs := s390 +#ifeq ($(DEB_TARGET_GNU_CPU), $(findstring $(DEB_TARGET_GNU_CPU),$(no_common_libs))) +# with_common_libs := no +#endif + +with_dev := yes + +#no_dummy_cpus := ia64 i386 hppa s390 sparc +#with_base_only := yes +#ifeq ($(DEB_TARGET_GNU_CPU), $(findstring $(DEB_TARGET_GNU_CPU),$(no_dummy_cpus))) +# with_base_only := no +# with_common_libs := yes +# with_common_pkgs := yes +#else +# with_common_libs := no +# with_common_pkgs := no +# with_dev := no +#endif + +# multiarch -------------------- +with_multiarch := no + +# "old" arm ABI (with 3.5, we get a new one) -------------------- +ifeq ($(DEB_TARGET_GNU_CPU),arm) + with_oldarmabi := yes +endif + +# C -------------------- +enabled_languages := c +# Build all packages needed for C development +ifeq ($(with_base_only),yes) + with_cdev := no +else + ifeq ($(with_dev),yes) + with_cdev := yes + else + with_cdev := no + endif +endif + +# C++ -------------------- +ifeq ($(with_base_only),yes) + with_cxx := no +else + with_cxx := yes +endif +no_cxx_cpus := avr +ifeq ($(DEB_TARGET_GNU_CPU), $(findstring $(DEB_TARGET_GNU_CPU),$(no_cxx_cpus))) + with_cxx := disabled for architecture $(DEB_TARGET_GNU_CPU) +endif +ifeq (c++, $(findstring c++,$(WITHOUT_LANG))) + with_cxx := disabled by environment +endif +# Build all packages needed for C++ development +ifeq ($(with_cxx)-$(with_dev),yes-yes) + with_cxxdev := yes +else + with_cxxdev := no +endif + +ifeq ($(with_cxx),yes) + enabled_languages += c++ +endif + +ifeq ($(with_common_pkgs)-$(with_cxx),yes-yes) + with_libcxx := yes +else + with_libcxx := no +endif + +# debugging versions of libstdc++ +ifeq ($(with_cxxdev),yes) + with_debug := yes +else + with_debug := no +endif +debug_no_cpus := +ifeq ($(DEB_TARGET_GNU_CPU), $(findstring $(DEB_TARGET_GNU_CPU),$(debug_no_cpus))) + with_debug := disabled for architecure $(DEB_TARGET_GNU_CPU) +endif + +# building with the old ABI +ifeq ($(DEB_TARGET_ARCH), $(findstring $(DEB_TARGET_ARCH),amd64 arm)) + with_libcxx := yes +endif + + +# __cxa_atexit ------------- +# The __cxa_atexit API does not exist in some libc version (NetBSD) +with_cxa_atexit := yes + +no_cxa_systems := netbsd-elf-gnu +ifeq ($(DEB_TARGET_GNU_SYSTEM), $(findstring $(DEB_TARGET_GNU_SYSTEM),$(no_cxa_systems))) + with_cxa_atexit := disabled for $(DEB_TARGET_GNU_SYSTEM) +endif + +# Java -------------------- +# java converted for V3 C++ ABI for some archs +ifeq ($(with_base_only),yes) + with_java := no +else + with_java := yes +endif + +java_no_cpus := mips mipsel m32r +java_no_systems := hurd-i386 kfreebsd-gnu knetbsd-gnu netbsd-elf-gnu +ifeq ($(DEB_TARGET_GNU_CPU), $(findstring $(DEB_TARGET_GNU_CPU),$(java_no_cpus))) + with_java := disabled for architecture $(DEB_TARGET_GNU_CPU) +endif +ifeq ($(DEB_TARGET_GNU_SYSTEM), $(findstring $(DEB_TARGET_GNU_SYSTEM),$(java_no_systems))) + with_java := disabled for $(DEB_TARGET_GNU_SYSTEM) +endif +ifeq ($(DEB_TARGET_ARCH),hurd-i386) + with_java := disabled for architecure $(DEB_TARGET_ARCH) +endif +ifdef DEB_CROSS + with_java := disabled for cross compiler package +endif +ifeq (java, $(findstring java,$(WITHOUT_LANG))) + with_java := disabled by environment +endif +ifneq ($(with_cxx),yes) + with_java := disabled, because C++ disabled: $(with_cxx) +endif + +# Build all packages needed for Java development (gcj, libgcj-dev) +ifeq ($(with_java)-$(with_dev),yes-yes) + with_javadev := yes +else + with_javadev := no +endif +ifeq ($(with_java),yes) + with_libgcj := yes +else + with_libgcj := no +endif + +ifeq ($(with_java),yes) + enabled_languages += java +endif + +# fastjar ------------------- +#ifeq ($(with_common_pkgs)-$(with_java),yes-yes) +#ifeq ($(with_java),yes) +# ifdef DEB_CROSS +# with_fastjar := disabled for cross compiler package +# else +# with_fastjar := yes +# endif +#else +# with_fastjar := no +#endif + +ifdef DEB_CROSS + with_fastjar := disabled for cross compiler package +else + with_fastjar := yes +endif +with_fastjar := built from gcc-4.0 sources + +# libffi ------------------- +# build with another soname. +#ifeq ($(with_common_libs),yes) + with_libffi := yes + no_ffi_cpus := + no_ffi_systems := hurd-i386 kfreebsd-gnu knetbsd-gnu netbsd-elf-gnu + ifneq ($(with_java),yes) + ifeq ($(DEB_TARGET_GNU_CPU), $(findstring $(DEB_TARGET_GNU_CPU),$(no_ffi_cpus))) + with_libffi := disabled for architecure $(DEB_TARGET_GNU_CPU) + endif + ifeq ($(DEB_TARGET_GNU_SYSTEM), $(findstring $(DEB_TARGET_GNU_SYSTEM),$(no_ffi_systems))) + with_libffi := disabled for $(DEB_TARGET_GNU_SYSTEM) + endif + ifeq ($(DEB_TARGET_ARCH),hurd-i386) + with_libffi := disabled for architecure $(DEB_TARGET_ARCH) + endif + endif + ifdef DEB_CROSS + with_libffi := disabled for cross compiler package + endif +#endif + +# Fortran -------------------- +ifeq ($(with_base_only),yes) + with_fortran := no +else + with_fortran := yes +endif + +ifdef DEB_CROSS + with_fortran := disabled for cross compiler package +endif +ifeq (f77, $(findstring f77,$(WITHOUT_LANG))) + with_fortran := disabled by environment +endif + +# Build all packages needed for Fortran development +ifeq ($(with_fortran)-$(with_dev),yes-yes) + with_fdev := yes +else + with_fdev := no +endif + +ifeq ($(with_common_libs)-$(with_fortran),yes-yes) + ifeq ($(DEB_TARGET_GNU_CPU),$(findstring $(DEB_TARGET_GNU_CPU),mipsel)) + with_libg2c := disable on mipsel for gcc-3.4 + else + with_libg2c := yes + endif +else + with_libg2c := no +endif + +ifeq ($(with_fortran),yes) + enabled_languages += f77 +endif + +# protoize -------------------- +ifeq ($(with_common_pkgs),yes) + with_proto := yes + ifdef DEB_CROSS + with_proto := disabled for cross compiler package + endif +else + with_proto := no +endif +#ifeq ($(with_proto),yes) +# enabled_languages += proto +#endif + +# fixincludes -------------------- +ifeq ($(with_common_pkgs),yes) + with_fixincl := yes + ifdef DEB_CROSS + with_fixincl := disabled for cross compiler package + endif +else + with_fixincl := no +endif + +# Pascal -------------------- +with_pascal := yes +ifneq ($(with_dev),yes) + with_pascal := no +endif + +pascal_no_systems := netbsd-elf-gnu +ifeq ($(DEB_TARGET_GNU_SYSTEM),$(findstring $(DEB_TARGET_GNU_SYSTEM),$(pascal_no_systems))) + with_pascal := disabled for $(DEB_TARGET_GNU_SYSTEM) +endif +with_gpidump := yes +ifeq ($(DEB_TARGET_GNU_CPU),$(findstring $(DEB_TARGET_GNU_CPU),mips mipsel)) + with_gpidump := disabled for architecture $(DEB_TARGET_GNU_CPU) +endif +pascal_version := 20030830 +ifeq (pascal, $(findstring pascal,$(WITHOUT_LANG))) + with_pascal := disabled by environment +endif +ifdef DEB_CROSS + with_pascal := disabled for cross compiler package +endif +ifeq ($(with_pascal),yes) + enabled_languages += pascal +endif + +# ObjC -------------------- +ifeq ($(with_base_only),yes) + with_objc := no +else + with_objc := yes +endif +# the ObjC runtime with garbage collection enabled needs the Boehm GC +with_objc_gc := yes + +# disable ObjC garbage collection library (needs libgc) +libgc_no_cpus := avr +libgc_no_systems := kfreebsd-gnu knetbsd-gnu +ifeq ($(DEB_TARGET_GNU_CPU),$(findstring $(DEB_TARGET_GNU_CPU),$(libgc_no_cpus))) + with_objc_gc := disabled for architecture $(DEB_TARGET_GNU_CPU) +endif +ifeq ($(DEB_TARGET_GNU_SYSTEM),$(findstring $(DEB_TARGET_GNU_SYSTEM),$(libgc_no_systems))) + with_objc_gc := disabled for $(DEB_TARGET_GNU_SYSTEM) +endif +with_objc_gc := disabled for gcc-3.4 +ifdef DEB_CROSS + with_objc := disabled for cross compiler package +endif +ifeq (objc, $(findstring objc,$(WITHOUT_LANG))) + with_objc := disabled by environment +endif + +ifneq ($(with_objc),yes) + with_objc_gc := $(with_objc) +endif + +# Build all packages needed for Objective-C development +ifeq ($(with_objc)-$(with_dev),yes-yes) + with_objcdev := yes +else + with_objcdev := no +endif +ifeq ($(with_common_libs)-$(with_objc),yes-yes) + with_libobjc := yes +else + with_libobjc := no +endif + +ifeq ($(with_objc),yes) + enabled_languages += objc +endif + +# Ada -------------------- +with_ada := yes +ifneq ($(with_dev),yes) + with_ada := no +endif + +with_libgnat := yes +ada_no_cpus := arm m68k m32r +ada_no_systems := hurd-i386 kfreebsd-gnu knetbsd-gnu netbsd-elf-gnu +ifeq ($(DEB_TARGET_GNU_CPU), $(findstring $(DEB_TARGET_GNU_CPU),$(ada_no_cpus))) + with_ada := disabled for architecure $(DEB_TARGET_GNU_CPU) +endif +ifeq ($(DEB_TARGET_ARCH),hurd-i386) + with_ada := disabled for architecure $(DEB_TARGET_ARCH) +endif +ifeq ($(DEB_TARGET_GNU_SYSTEM), $(findstring $(DEB_TARGET_GNU_SYSTEM),$(ada_no_systems))) + with_ada := disabled for $(DEB_TARGET_GNU_SYSTEM) +endif +ifeq (ada, $(findstring ada,$(WITHOUT_LANG))) + with_ada := disabled by environment +endif +ifdef DEB_CROSS + with_ada := disabled for cross compiler package +endif + +# needed for 3.4 on alpha, but not for release tarballs +ifeq ($(DEB_HOST_GNU_CPU),$(findstring $(DEB_HOST_GNU_CPU),alpha)) + with_ada_bootstrap_workaround := yes +endif + +ifeq ($(with_ada),yes) + enabled_languages += ada + libada_no_cpus := alpha mips mipsel powerpc s390 sparc m32r + ifeq ($(DEB_TARGET_GNU_CPU), $(findstring $(DEB_TARGET_GNU_CPU),$(libada_no_cpus))) + with_libgnat := disabled for architecure $(DEB_TARGET_GNU_CPU) + endif +else + with_libgnat := $(with_ada) +endif + +# treelang -------------------- +ifeq ($(with_base_only),yes) + with_treelang := no +else + ifeq ($(with_dev),yes) + with_treelang := yes + else + with_treelang := no + endif +endif +tl_no_cpus := powerpc +ifeq ($(DEB_TARGET_GNU_CPU), $(findstring $(DEB_TARGET_GNU_CPU),$(tl_no_cpus))) + with_treelang := disabled for architecure $(DEB_TARGET_GNU_CPU) +endif +ifdef DEB_CROSS + with_treelang := disabled for cross compiler package +endif +ifeq (treelang, $(findstring treelang,$(WITHOUT_LANG))) + with_treelang := disabled by environment +endif + +ifeq ($(with_treelang),yes) + enabled_languages += treelang +endif + +# Shared libgcc -------------------- +with_libgcc := yes +with_shared_libgcc := yes + +#ifeq ($(with_common_libs),yes) +# with_libgcc := yes +#else +# with_libgcc := no +# with_shared_libgcc := no +#endif + +with_libgcc := built from gcc-4.0 sources + +# run testsuite -------------------- +with_check := yes +# If you don't want to run the gcc testsuite, set `with_check' to `no' +#with_check := disabled by hand +ifeq ($(with_base_only),yes) + with_check := no +endif +ifdef DEB_CROSS + with_check := disabled for cross compiler package +endif +check_no_systems := hurd-i386 kfreebsd-gnu knetbsd-gnu +ifeq ($(DEB_TARGET_GNU_SYSTEM), $(findstring $(DEB_TARGET_GNU_SYSTEM),$(check_no_systems))) + with_check := disabled for $(DEB_TARGET_GNU_SYSTEM) +endif +check_no_cpus := # arm m68k +ifeq ($(DEB_TARGET_GNU_CPU), $(findstring $(DEB_TARGET_GNU_CPU),$(check_no_cpus))) + with_check := disabled for architecure $(DEB_TARGET_GNU_CPU) +endif +ifeq ($(DEB_TARGET_ARCH),hurd-i386) + with_check := disabled for architecure $(DEB_TARGET_ARCH) +endif +ifneq ($(WITHOUT_CHECK),) + with_check := disabled by environment +endif + +# powerpc nof libraries -------------------- +with_libnof := no + +biarch := no + +with_lib64gcc := no +with_lib64cxx := no +with_lib64objc := no +with_lib64ffi := no +with_lib64gcj := no +with_lib64g2c := no + +# i386/x86_64 build +ifeq ($(DEB_TARGET_GNU_TYPE),i386-linux) + biarch := yes + with_lib64gcc := yes + with_lib64cxx := yes + # These should be included but are postponed until after Sarge. + #with_lib64objc:= yes + #with_lib64ffi := yes + #with_lib64gcj := yes + #with_lib64g2c := yes + with_lib64gcc := built from the gcc-4.0 sources + with_lib64cxx := built from the gcc-4.0 sources +endif + +ifeq ($(DEB_TARGET_ARCH),amd64) + biarch_ia32 := yes + with_oldcxxabi := yes +endif +#ifeq ($(DEB_TARGET_ARCH),ia64) +# biarch_ia32 := yes +#endif + +# hppa64 build -------------------- +with_hppa64 := no +ifeq ($(DEB_TARGET_GNU_CPU),hppa) + ifneq ($(DEB_CROSS),yes) + with_hppa64 := yes + endif +endif + +# powerpc64 build -------------------- +ifeq ($(DEB_TARGET_GNU_CPU),XXXpowerpcXXX) + biarch := yes + with_lib64gcc := yes + ifeq ($(TARGET_ALIAS),powerpc-linux) + TARGET_ALIAS := powerpc64-linux + endif + with_lib64gcc := built from the gcc-4.0 sources +endif + +# sparc64 build -------------------- +ifeq ($(DEB_TARGET_GNU_CPU),sparc) + biarch := yes + with_lib64gcc := yes + with_lib64cxx := yes + with_lib64gcc := built from the gcc-4.0 sources + with_lib64cxx := built from the gcc-4.0 sources +endif + +# s390x build -------------------- +ifeq ($(DEB_TARGET_GNU_CPU),s390) + biarch := yes + with_lib64gcc := yes + with_lib64cxx := yes + with_lib64gcc := built from the gcc-4.0 sources + with_lib64cxx := built from the gcc-4.0 sources +endif + +# GNU locales +force_gnu_locales := yes +locale_no_systems := kfreebsd-gnu knetbsd-gnu netbsd-elf-gnu +ifeq ($(DEB_TARGET_GNU_SYSTEM), $(findstring $(DEB_TARGET_GNU_SYSTEM),$(locale_no_systems))) + force_gnu_locales := disabled for $(DEB_TARGET_GNU_SYSTEM) +endif + +unpack_stamp := $(stampdir)/01-unpack-stamp +patch_stamp := $(stampdir)/02-patch-stamp +control_stamp := $(stampdir)/03-control-stamp +configure_stamp := $(stampdir)/04-configure-stamp +build_stamp := $(stampdir)/05-build-stamp +build_html_stamp := $(stampdir)/05-build-html-stamp +build_doxygen_stamp := $(stampdir)/05-build-doxygen-stamp +check_stamp := $(stampdir)/06-check-stamp +check_inst_stamp := $(stampdir)/06-check-inst-stamp +install_stamp := $(stampdir)/07-install-stamp +binary_stamp := $(stampdir)/08-binary-stamp + +configure_dummy_stamp := $(stampdir)/04-configure-dummy-stamp +build_dummy_stamp := $(stampdir)/05-build-dummy-stamp +install_dummy_stamp := $(stampdir)/07-install-dummy-stamp + +configure_hppa64_stamp := $(stampdir)/04-configure-hppa64-stamp +build_hppa64_stamp := $(stampdir)/05-build-hppa64-stamp +install_hppa64_stamp := $(stampdir)/07-install-hppa64-stamp + +ifeq ($(with_base_only),yes) + control_dependencies = $(patch_stamp) + configure_dependencies = $(configure_dummy_stamp) + build_dependencies = $(build_dummy_stamp) + install_dependencies = $(install_dummy_stamp) +else + control_dependencies = $(patch_stamp) + configure_dependencies = $(configure_stamp) + build_dependencies = $(build_stamp) + ifeq ($(with_check),yes) + build_dependencies += check + endif + install_dependencies = $(install_stamp) +endif + +ifeq ($(with_hppa64),yes) + build_dependencies += $(build_hppa64_stamp) + install_dependencies += $(install_hppa64_stamp) +endif + +stamp-dir: + mkdir -p $(stampdir) --- gcc-3.4-3.4.3.orig/debian/gcj-BV.prerm +++ gcc-3.4-3.4.3/debian/gcj-BV.prerm @@ -0,0 +1,13 @@ +#! /bin/sh -e + +update-alternatives --remove javac /usr/bin/gcj-wrapper-@BV@ >/dev/null 2>&1 \ + || true + +if [ -f /usr/share/info/gcj-@BV@.info.gz ]; then + install-info --quiet --remove gcj-@BV@ +else + # GFDL invariant free + true +fi + +#DEBHELPER# --- gcc-3.4-3.4.3.orig/debian/gij-BV.postinst +++ gcc-3.4-3.4.3/debian/gij-BV.postinst @@ -0,0 +1,10 @@ +#! /bin/sh -e + +update-alternatives --quiet \ + --install /usr/bin/java java /usr/bin/gij-wrapper-@BV@ 33 \ + --slave /usr/share/man/man1/java.1.gz java.1.gz /usr/share/man/man1/gij-wrapper-@BV@.1.gz \ +|| true + +#DEBHELPER# + +exit 0 --- gcc-3.4-3.4.3.orig/debian/gij-BV.prerm +++ gcc-3.4-3.4.3/debian/gij-BV.prerm @@ -0,0 +1,7 @@ +#! /bin/sh -e + +update-alternatives --remove java /usr/bin/gij-wrapper-@BV@ >/dev/null 2>&1 || true + +#DEBHELPER# + +exit 0 --- gcc-3.4-3.4.3.orig/debian/gnat-BV-doc.postinst +++ gcc-3.4-3.4.3/debian/gnat-BV-doc.postinst @@ -0,0 +1,16 @@ +#! /bin/sh -e + +case "$1" in + configure) + install-info --quiet --section "Development" "Development" \ + --description="GNAT (GNU Ada) User's Guide for Unix Platforms." \ + /usr/share/info/gnat_ugn_unw-@BV@.info + install-info --quiet --section "Development" "Development" \ + --description="GNAT (GNU Ada) Reference Manual." \ + /usr/share/info/gnat_rm-@BV@.info + install-info --quiet --section "Development" "Development" \ + --description="GNAT Coding Style." \ + /usr/share/info/gnat-style-@BV@.info +esac + +#DEBHELPER# --- gcc-3.4-3.4.3.orig/debian/gnat-BV-doc.prerm +++ gcc-3.4-3.4.3/debian/gnat-BV-doc.prerm @@ -0,0 +1,7 @@ +#! /bin/sh -e + +install-info --quiet --remove gnat_ugn_unw-@BV@ +install-info --quiet --remove gnat_rm-@BV@ +install-info --quiet --remove gnat-style-@BV@ + +#DEBHELPER# --- gcc-3.4-3.4.3.orig/debian/gpc-PV-BV-doc.postinst +++ gcc-3.4-3.4.3/debian/gpc-PV-BV-doc.postinst @@ -0,0 +1,12 @@ +#! /bin/sh -e + +if [ -f /usr/share/info/gpc-@PV@-@BV@.info.gz ]; then + install-info --quiet --section "Development" "Development" \ + --description="The GNU Pascal compiler." \ + /usr/share/info/gpc-@PV@-@BV@.info +else + # GFDL invariant free + true +fi + +#DEBHELPER# --- gcc-3.4-3.4.3.orig/debian/gpc-PV-BV-doc.prerm +++ gcc-3.4-3.4.3/debian/gpc-PV-BV-doc.prerm @@ -0,0 +1,10 @@ +#! /bin/sh -e + +if [ -f /usr/share/info/gpc-@PV@-@BV@.info.gz ]; then + install-info --quiet --remove gpc-@PV@-@BV@ +else + # GFDL invariant free + true +fi + +#DEBHELPER# --- gcc-3.4-3.4.3.orig/debian/treelang-BV.doc-base +++ gcc-3.4-3.4.3/debian/treelang-BV.doc-base @@ -0,0 +1,15 @@ +Document: treelang-@BV@ +Title: The GNU Treelang Compiler +Author: Tim Josling +Abstract: This file documents the use and the internals of the GNU Treelang + compiler. At the moment this manual is not incorporated into the main + GCC manual as it is too incomplete. +Section: Apps/Programming + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/treelang/treelang.html +Files: /usr/share/doc/gcc-@BV@-base/treelang/treelang.html + +Format: info +Index: /usr/share/info/treelang-@BV@.info.gz +Files: /usr/share/info/treelang-@BV@* --- gcc-3.4-3.4.3.orig/debian/treelang-BV.postinst +++ gcc-3.4-3.4.3/debian/treelang-BV.postinst @@ -0,0 +1,15 @@ +#! /bin/sh -e + +case "$1" in + configure) + if [ -f /usr/share/info/treelang-@BV@.info.gz ]; then + install-info --quiet --section "Development" "Development" \ + --description="The GNU Treelang compiler." \ + /usr/share/info/treelang-@BV@.info + else + # GFDL invariant free + true + fi +esac + +#DEBHELPER# --- gcc-3.4-3.4.3.orig/debian/treelang-BV.prerm +++ gcc-3.4-3.4.3/debian/treelang-BV.prerm @@ -0,0 +1,10 @@ +#! /bin/sh -e + +if [ -f /usr/share/info/treelang-@BV@.info.gz ]; then + install-info --quiet --remove treelang-@BV@ +else + # GFDL invariant free + true +fi + +#DEBHELPER# --- gcc-3.4-3.4.3.orig/debian/gcj-BV.doc-base +++ gcc-3.4-3.4.3/debian/gcj-BV.doc-base @@ -0,0 +1,15 @@ +Document: gcj-@BV@ +Title: The GNU Ahead-of-time Compiler for the Java Language +Author: Various +Abstract: This manual describes how to use gcj, the GNU compiler for + the Java programming language. gcj can generate both .class files and + object files, and it can read both Java source code and .class files. +Section: Apps/Programming + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/java/gcj.html +Files: /usr/share/doc/gcc-@BV@-base/java/gcj.html + +Format: info +Index: /usr/share/info/gcj-@BV@.info.gz +Files: /usr/share/info/gcj-@BV@* --- gcc-3.4-3.4.3.orig/debian/cpp-BV-doc.doc-base.cpp +++ gcc-3.4-3.4.3/debian/cpp-BV-doc.doc-base.cpp @@ -0,0 +1,16 @@ +Document: cpp-@BV@ +Title: The GNU C preprocessor +Author: Various +Abstract: The C preprocessor is a "macro processor" that is used automatically + by the C compiler to transform your program before actual compilation. + It is called a macro processor because it allows you to define "macros", + which are brief abbreviations for longer constructs. +Section: Apps/Programming + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/cpp.html +Files: /usr/share/doc/gcc-@BV@-base/cpp.html + +Format: info +Index: /usr/share/info/cpp-@BV@.info.gz +Files: /usr/share/info/cpp-@BV@* --- gcc-3.4-3.4.3.orig/debian/cpp-BV-doc.doc-base.cppint +++ gcc-3.4-3.4.3/debian/cpp-BV-doc.doc-base.cppint @@ -0,0 +1,17 @@ +Document: cppinternals-@BV@ +Title: The GNU C preprocessor (internals) +Author: Various +Abstract: This brief manual documents the internals of cpplib, and + explains some of the tricky issues. It is intended that, along with + the comments in the source code, a reasonably competent C programmer + should be able to figure out what the code is doing, and why things + have been implemented the way they have. +Section: Apps/Programming + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/cppinternals.html +Files: /usr/share/doc/gcc-@BV@-base/cppinternals.html + +Format: info +Index: /usr/share/info/cppinternals-@BV@.info.gz +Files: /usr/share/info/cppinternals-@BV@* --- gcc-3.4-3.4.3.orig/debian/gcc-BV-doc.doc-base.gcc +++ gcc-3.4-3.4.3/debian/gcc-BV-doc.doc-base.gcc @@ -0,0 +1,14 @@ +Document: gcc-@BV@ +Title: The GNU C and C++ compiler +Author: Various +Abstract: This manual documents how to run, install and port the GNU compiler, + as well as its new features and incompatibilities, and how to report bugs. +Section: Apps/Programming + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/gcc.html +Files: /usr/share/doc/gcc-@BV@-base/gcc.html + +Format: info +Index: /usr/share/info/gcc-@BV@.info.gz +Files: /usr/share/info/gcc-@BV@* --- gcc-3.4-3.4.3.orig/debian/gcc-BV-doc.doc-base.gccint +++ gcc-3.4-3.4.3/debian/gcc-BV-doc.doc-base.gccint @@ -0,0 +1,17 @@ +Document: gccint-@BV@ +Title: Internals of the GNU C and C++ compiler +Author: Various +Abstract: This manual documents the internals of the GNU compilers, + including how to port them to new targets and some information about + how to write front ends for new languages. It corresponds to GCC + version @BV@.x. The use of the GNU compilers is documented in a + separate manual. +Section: Apps/Programming + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/gccint.html +Files: /usr/share/doc/gcc-@BV@-base/gccint.html + +Format: info +Index: /usr/share/info/gccint-@BV@.info.gz +Files: /usr/share/info/gccint-@BV@* --- gcc-3.4-3.4.3.orig/debian/gnat-BV-doc.doc-base.rm +++ gcc-3.4-3.4.3/debian/gnat-BV-doc.doc-base.rm @@ -0,0 +1,16 @@ +Document: gnat_rm-@BV@ +Title: GNAT (GNU Ada) Reference Manual +Author: Various +Abstract: This manual contains useful information in writing programs + using the GNAT compiler. It includes information on implementation + dependent characteristics of GNAT, including all the information + required by Annex M of the standard. +Section: Apps/Programming + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/Ada/gnat_rm.html +Files: /usr/share/doc/gcc-@BV@-base/Ada/gnat_rm.html + +Format: info +Index: /usr/share/info/gnat_rm-@BV@.info.gz +Files: /usr/share/info/gnat_rm-@BV@* --- gcc-3.4-3.4.3.orig/debian/gnat-BV-doc.doc-base.style +++ gcc-3.4-3.4.3/debian/gnat-BV-doc.doc-base.style @@ -0,0 +1,16 @@ +Document: gnat-style-@BV@ +Title: GNAT Coding Style +Author: Various +Abstract: Most of GNAT is written in Ada using a consistent style to + ensure readability of the code. This document has been written to + help maintain this consistent style, while having a large group of + developers work on the compiler. +Section: Apps/Programming + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/Ada/gnat-style.html +Files: /usr/share/doc/gcc-@BV@-base/Ada/gnat-style.html + +Format: info +Index: /usr/share/info/gnat-style-@BV@.info.gz +Files: /usr/share/info/gnat-style-@BV@* --- gcc-3.4-3.4.3.orig/debian/gnat-BV-doc.doc-base.ug +++ gcc-3.4-3.4.3/debian/gnat-BV-doc.doc-base.ug @@ -0,0 +1,16 @@ +Document: gnat_ugn_unw-@BV@ +Title: GNAT User's Guide for Unix Platforms +Author: Various +Abstract: This guide describes the use of GNAT, a compiler and + software development toolset for the full Ada 95 programming language. + It describes the features of the compiler and tools, and details how + to use them to build Ada 95 applications. +Section: Apps/Programming + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/Ada/gnat_ugn_unw.html +Files: /usr/share/doc/gcc-@BV@-base/Ada/gnat_ugn_unw.html + +Format: info +Index: /usr/share/info/gnat_ugn_unw-@BV@.info.gz +Files: /usr/share/info/gnat_ugn_unw-@BV@* --- gcc-3.4-3.4.3.orig/debian/gpc-PV-BV-doc.doc-base.gpc +++ gcc-3.4-3.4.3/debian/gpc-PV-BV-doc.doc-base.gpc @@ -0,0 +1,15 @@ +Document: gpc-@PV@-@BV@-doc +Title: The GNU Pascal Compiler +Author: Various +Abstract: This manual documents how to run, install and maintain the + GNU Pascal compiler (GPC), as well as its new features and + incompatibilities, and how to report bugs. +Section: Apps/Programming + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/pascal/gpc.html +Files: /usr/share/doc/gcc-@BV@-base/pascal/gpc.html + +Format: info +Index: /usr/share/info/gpc-@PV@-@BV@.info.gz +Files: /usr/share/info/gpc-@PV@-@BV@* --- gcc-3.4-3.4.3.orig/debian/gpc-PV-BV-doc.doc-base.gpcs +++ gcc-3.4-3.4.3/debian/gpc-PV-BV-doc.doc-base.gpcs @@ -0,0 +1,23 @@ +Document: gpcs-@PV@-@BV@-doc +Title: The GNU Pascal Coding Standards +Author: Various +Abstract: The GNU Pascal Coding Standards were designed by a group of + GNU Pascal project volunteers. The aim of this document is extending + the GNU Coding Standards with specific information relating Pascal + programming. As a matter of fact, the information contained in the + GNU Coding Standards mainly pertains to programs written in the C + language. On the other hand, they also explain many of the rules and + principles that are useful for writing portable, robust and reliable + programs. Most of those general topics could be shared with this + document with just a few specific notes, thus cross references are + provided which will lead you to the more extensive information + contained in the GNU Coding Standards. +Section: Apps/Programming + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/pascal/gpcs.html +Files: /usr/share/doc/gcc-@BV@-base/pascal/gpcs.html + +Format: info +Index: /usr/share/info/gpcs-@PV@-@BV@.info.gz +Files: /usr/share/info/gpcs-@PV@-@BV@* --- gcc-3.4-3.4.3.orig/debian/README.Debian +++ gcc-3.4-3.4.3/debian/README.Debian @@ -0,0 +1,174 @@ + The Debian GNU Compiler Collection setup + ======================================== + +Please see the README.Debian in /usr/share/doc/gcc, contained in the +gcc package for a description of the setup of the different compiler +versions. + + +Notes on GCC 3.4 in the sarge distribution +------------------------------------------ + +[package maintainers: when using GCC 3.4 for package building, please + check that your packages still work on platforms with GCC changes + specific for these platforms (hppa, m68k, mips, mipsel, sparc). ] + +GCC 3.4 is included in sarge as a newer compiler version, the system +compiler for sarge is GCC 3.3 (the transition to a newer system compiler +is a post sarge issue). Due to some incompatibilities between +3.3 and 3.4 care should be taken, when some code built by both versions +is linked together (most likely linking against a shared library found +in Debian): + +- C++ code compiled by g++-3.3 and g++-3.4 is not compatible. Applications + using C++ libraries have to make sure that these libraries are rebuilt. + +- On i386, the compiler is built as a biarch compiler (can generated code + for amd64). To use it, call gcc-3.4 -m64. Packages containing the 64bit + versions of libraries and library development files need to be installed + separately (i.e. lib64gcc1, amd64-libs, ...). + gcc-3.4 -m64 turns on the common subset for all x86-64 architectures, + specifying -march=k8 turns on k8/opteron specific features, -march=nocona + turns on some P4/64 Nocona specific features. + +- On hppa and m68k the exception handling changed from SJLJ to Dwarf2 based + exception handling. This affects C++ and code, which implements it's own + handling. If a library or binary ends up linked against libgcc1 _and_ + libgcc2, something probably won't work. + +- The implementation of the MIPS ABIs has changed. As a result, the code + generated for certain MIPS targets will not be binary compatible with + earlier releases. See http://gcc.gnu.org/gcc-3.4/mips-abi.html + +- The implementation of the SPARC ABIs has changed. As a result, the code + generated will not be binary compatible with earlier releases in certain + cases. See http://gcc.gnu.org/gcc-3.4/sparc-abi.html + +Maintainers of these packages +----------------------------- + +Matthias Klose +Ray Dassen +Jeff Bailey (hurd-i386) +Joel Baker (netbsd-i386) +Philip Blundell (arm-linux) +Ben Collins (sparc-linux) +Randolph Chung (ia64-linux) +Falk Hueffner (alpha-linux) +Dan Jacobowitz (powerpc-linux) +Thiemo Seufer (mips*-linux) +Ryan Murray (mips*-linux) +Matt Taggart (hppa-linux) +Gerhard Tonn (s390-linux) +Roman Zippel (m68k-linux) +Ludovic Brenta (gnat) + +=============================================================================== + +Patches that Debian applied in this version: + +cvs-updates: + CVS updates from the 3.4 branch upto 20050209 + +gcc-version: + Add "(Debian )" to the gcc version string + +gcc-textdomain: + Set gettext's domain and textdomain to the versioned package name. + +rename-info-files: + Allow transformations on info file names. Reference the + transformed info file names in the texinfo files. + +libstdc++-pic: + Build and install libstdc++_pic.a library. + +libstdc++-doclink: + adjust hrefs to point to the local documentation + +amd64-specs: + On x86-64 use 64bits mode assembly except with -m32. + +gccbug: + Use sensible-editor instead of vi as fallback editor + +gccbug-posix: + Make gccbug POSIX compliant (patch by David Weinehall) + http://www.opengroup.org/onlinepubs/009695399/utilities/test.html + +hppa-toplevel: + For hppa-linux enable libgcj and dependent libs in the toplevel directory + +hppa-libffi: + libffi support for hppa + +hppa-libjava: + Enable libjava support for hppa + +hppa-libjava-update: + MD_FALLBACK_FRAME_STATE_FOR definition for pa32-linux + +fastjar-update: + Implement fastjar -u (PR 7854). + +java-gui-branch: + Michael Koch + Backport AWT, Swing and GTK peer from java-gui-branch (20040906). + +boehm-gc-nocheck: + Disable the boehm-gc testsuite. Hangs forever on this architecture + +libltdl: + * libltdl.dpatch: Search the versioned extension, when loading a shared + library (i.e. gij looks for .so.5 for loading additional libraries + like the GTK based AWT peers. + +pr19311: + Proposed patch to fix PR19311 + +gcj-without-rpath: + don't define runtime link path for java binaries and libraries + +libffi-soversion: + Install libffi with soversion 3. + +ada-link-lib: + - Install the shared Ada libraries as '.so.1', not '.so' to conform + to the Debian policy. + - Don't include a runtime link path (-rpath), when linking binaries. + - Build the shared libraries on hppa-linux. + +ada-gcc-name: + use gcc-3.4 instead of gcc as the command name. + +gpc-3.x: + The gpc patch from the gpc tarball. + +gpc-updates: + Updates from gpc-20030820. + +gpc-parse: + generated gcc/p/parse.[ch] files (using bison-1.875c). + +gpc-dwarf2out-update: + GPC update to build with gcc-3.4.3 + +gpc-names: + versioned gpc names + +gpc-profiled: + Do not build the gpc runtime using -fprofile-generate/-use. + +gpc-lang-update: + Hack p/lang.c to work around bootstrap failures on alpha and mips. + +cpu-default-i486: + generate code for architecture i486, tuned for i686 by default. + +i386-biarch: + biarch patches for i386/x86_64 + +link-libs: + +reporting: + Add Debian URL for bug reporting isntructions. --- gcc-3.4-3.4.3.orig/debian/NEWS.sarge +++ gcc-3.4-3.4.3/debian/NEWS.sarge @@ -0,0 +1,38 @@ +gcc-3.4 (3.4.1-1) unstable; urgency=medium + + Notes on GCC 3.4 in the sarge distribution + ------------------------------------------ + + [package maintainers: when using GCC 3.4 for package building, please + check that your packages still work on platforms with GCC changes + specific for these platforms (hppa, m68k, mips, mipsel, sparc). ] + + GCC 3.4 is included in sarge as a newer compiler version, the system + compiler for sarge is GCC 3.3 (the transition to a newer system compiler + is a post sarge issue). Due to some incompatibilities between + 3.3 and 3.4 care should be taken, when some code built by both versions + is linked together (most likely linking against a shared library found + in Debian): + + - C++ code compiled by g++-3.3 and g++-3.4 is not compatible. Applications + using C++ libraries have to make sure that these libraries are rebuilt. + + - On hppa and m68k the exception handling changed from SJLJ to Dwarf2 based + exception handling. This affects C++ and code, which implements it's own + handling. If a library or binary ends up linked against libgcc1 _and_ + libgcc2, something probably won't work. + + - The implementation of the MIPS ABIs has changed. As a result, the code + generated for certain MIPS targets will not be binary compatible with + earlier releases. See http://gcc.gnu.org/gcc-3.4/mips-abi.html + + - The implementation of the SPARC ABIs has changed. As a result, the code + generated will not be binary compatible with earlier releases in certain + cases. See http://gcc.gnu.org/gcc-3.4/sparc-abi.html + + - On i386, the compiler is built as a biarch compiler (can generated code + for amd64). To use it, call gcc-3.4 -m64. Packages containing the 64bit + versions of libraries and library development files need to be installed + separately (i.e. lib64gcc1, amd64-libs, ...). + + -- Matthias Klose Sat, 10 Jul 2004 11:21:26 +0200 --- gcc-3.4-3.4.3.orig/debian/gcc-BV-hppa64.postinst +++ gcc-3.4-3.4.3/debian/gcc-BV-hppa64.postinst @@ -0,0 +1,14 @@ +#! /bin/sh -e + +prio=`echo @BV@ | sed 's/\.//g'` + +update-alternatives --quiet \ + --install /usr/bin/hppa64-linux-gcc \ + hppa64-linux-gcc \ + /usr/bin/hppa64-linux-gcc-@BV@ \ + $prio \ + || true + +#DEBHELPER# + +exit 0 --- gcc-3.4-3.4.3.orig/debian/gcc-BV-hppa64.prerm +++ gcc-3.4-3.4.3/debian/gcc-BV-hppa64.prerm @@ -0,0 +1,10 @@ +#! /bin/sh -e + +if [ "$1" != "upgrade" ]; then + update-alternatives \ + --remove hppa64-linux-gcc /usr/bin/hppa64-linux-gcc-@BV@ >/dev/null 2>&1 || true +fi + +#DEBHELPER# + +exit 0 --- gcc-3.4-3.4.3.orig/debian/testswing.java +++ gcc-3.4-3.4.3/debian/testswing.java @@ -0,0 +1,312 @@ +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import java.awt.event.*; +import java.awt.font.*; +import java.util.*; +import javax.swing.*; + +public class testswing +{ + final JFrame frame; + + protected static class ButtonModelStatePrinter + implements javax.swing.event.ChangeListener + { + final String title; + public ButtonModelStatePrinter(final String t) + { + title = t; + } + public void stateChanged(javax.swing.event.ChangeEvent e) + { + if (e.getSource() instanceof ButtonModel) + { + ButtonModel b = (ButtonModel) e.getSource(); + String state = new String(); + state += (" " + (b.isArmed() ? "+" : "-") + "armed"); + state += (" " + (b.isPressed() ? "+" : "-") + "pressed"); + state += (" " + (b.isRollover() ? "+" : "-") + "rollover"); + state += (" " + (b.isSelected() ? "+" : "-") + "selected"); + System.err.println("[" + title + "] button state: " + state); + } + else + { + System.err.println("got weird changevent from " + e.getSource()); + } + } + } + + public static JCheckBox mkCheckbox(String label) + { + JCheckBox c = new JCheckBox(label); + c.setFont(new Font("Luxi", Font.PLAIN, 14)); + c.addChangeListener(new ButtonModelStatePrinter(label)); + return c; + } + + public static JRadioButton mkRadio(String label) + { + JRadioButton c = new JRadioButton(label); + c.setFont(new Font("Luxi", Font.PLAIN, 14)); + c.addChangeListener(new ButtonModelStatePrinter(label)); + return c; + } + + public static JSlider mkSlider() + { + JSlider a = new JSlider(); + a.setPaintTrack(true); + a.setPaintTicks(true); + a.setMajorTickSpacing(30); + a.setInverted(false); + return a; + } + + public static JList mkList(Object[] elts) + { + JList list = new JList(elts); + list.setFont(new Font("Luxi", Font.PLAIN, 14)); + return list; + } + + public static JTabbedPane mkTabs(String[] names) + { + JTabbedPane tabs = new JTabbedPane(); + for (int i = 0; i < names.length; ++i) + { + tabs.addTab(names[i], mkButton(names[i])); + } + return tabs; + } + + + public static JButton mkButton(String title) + { + JButton b = new JButton(title); + b.setMargin(new Insets(5,5,5,5)); + b.setFont(new Font("Luxi", Font.PLAIN, 14)); + b.addChangeListener(new ButtonModelStatePrinter(title)); + return b; + } + + public static JToggleButton mkToggle(String title) + { + JToggleButton b = new JToggleButton(title); + b.setMargin(new Insets(5,5,5,5)); + b.setFont(new Font("Luxi", Font.PLAIN, 14)); + b.getModel().addChangeListener(new ButtonModelStatePrinter(title)); + return b; + } + + public static JPanel mkPanel(JComponent[] inners) + { + JPanel p = new JPanel(); + for (int i = 0; i < inners.length; ++i) + { + p.add(inners[i]); + } + return p; + } + + private static class CheckCellRenderer + extends JCheckBox implements ListCellRenderer + { + public Component getListCellRendererComponent(JList list, + Object value, + int index, + boolean isSelected, + boolean cellHasFocus) + { + setSelected(isSelected); + setText(value.toString()); + setFont(new Font("Luxi", Font.PLAIN, 14)); + return this; + } + } + + private static class LabelCellRenderer + extends DefaultListCellRenderer + { + public Component getListCellRendererComponent(JList list, + Object value, + int index, + boolean isSelected, + boolean cellHasFocus) + { + Component c = super.getListCellRendererComponent(list, value, index, + isSelected, cellHasFocus); + c.setFont(new Font("Luxi Mono", Font.PLAIN, 10)); + return c; + } + } + + public static JScrollBar mkScrollBar() + { + JScrollBar scrollbar = new JScrollBar(); + return scrollbar; + } + + public static JPanel mkViewportBox(final JComponent inner) + { + final JViewport port = new JViewport(); + port.setView(inner); + JButton left = mkButton("left"); + JButton right = mkButton("right"); + + left.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + Point p = port.getViewPosition(); + port.setViewPosition(new Point(p.x - 10, p.y)); + } + }); + + right.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + Point p = port.getViewPosition(); + port.setViewPosition(new Point(p.x + 10, p.y)); + } + }); + + return mkPanel(new JComponent[] {port, left, right}); + } + + public static JScrollPane mkScrollPane(JComponent inner) + { + return new JScrollPane(inner, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); + } + + public static JPanel mkListPanel(Object[] elts) + { + final DefaultListModel mod = new DefaultListModel(); + final JList list1 = new JList(mod); + final JList list2 = new JList(mod); + + list2.setSelectionModel(list1.getSelectionModel()); + for (int i = 0; i < elts.length; ++i) + mod.addElement(elts[i]); + list1.setCellRenderer(new LabelCellRenderer()); + list2.setCellRenderer(new CheckCellRenderer()); + + JButton add = mkButton("add element"); + add.addActionListener(new ActionListener() + { + int i = 0; + public void actionPerformed(ActionEvent e) + { + mod.addElement("new element " + i); + ++i; + } + }); + + JButton del = mkButton("delete selected"); + del.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + for (int i = 0; i < mod.getSize(); ++i) + if (list1.isSelectedIndex(i)) + mod.remove(i); + } + }); + + return mkPanel(new JComponent[] {list1, //mkScrollPane(list1), + list2, //mkScrollPane(list2), + mkPanel(new JComponent[] {add, del})}); + } + + + public static JButton mkDisposerButton(final JFrame c) + { + JButton close = mkButton("close"); + close.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + c.dispose(); + } + }); + return close; + } + + public void addCase(testcase c) + { + c.connectTo(this); + } + + class testcase + implements ActionListener + { + JFrame frame; + JComponent inner; + String name; + + testcase(String n, JComponent i) + { + frame = null; + name = n; + inner = i; + } + + public void connectTo(testswing t) + { + JButton b = mkButton(name); + b.addActionListener(this); + t.frame.getContentPane().add(b); + } + + public void actionPerformed(ActionEvent e) + { + frame = new JFrame(); + frame.getContentPane().setLayout(new BorderLayout()); + frame.getContentPane().add(inner, BorderLayout.CENTER); + frame.getContentPane().add(mkDisposerButton(frame), BorderLayout.SOUTH); + frame.pack(); + frame.show(); + } + } + + public testswing () + { + frame = new JFrame (); + Container cp = frame.getContentPane(); + cp.setLayout(new FlowLayout()); + this.addCase(new testcase("Buttons", mkPanel(new JComponent[] {mkButton("mango"), + mkButton("guava"), + mkButton("lemon")}))); + this.addCase(new testcase("Toggles", mkToggle("cool and refreshing"))); + this.addCase(new testcase("Checkbox", mkCheckbox("ice cold"))); + this.addCase(new testcase("Radio", mkRadio("delicious"))); + this.addCase(new testcase("Slider", mkSlider())); + this.addCase(new testcase("List", mkListPanel(new String[] { "hello", "this", "is", "a", "list"}))); + this.addCase(new testcase("Scrollbar", mkScrollBar())); + this.addCase(new testcase("Viewport", mkViewportBox(mkButton("View Me!")))); + this.addCase(new testcase("ScrollPane", mkScrollPane(mkButton("Scroll Me!")))); + this.addCase(new testcase("TabPane", mkTabs(new String[] {"happy", "sad", "indifferent"}))); + + JButton exitDisposer = mkDisposerButton(frame); + exitDisposer.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + System.exit(1); + } + }); + + frame.getContentPane().add(exitDisposer); + frame.pack (); + frame.show (); + } + + public static void main(String args[]) + { + testswing t = new testswing (); + } + +} --- gcc-3.4-3.4.3.orig/debian/libgcj5-common.preinst.in +++ gcc-3.4-3.4.3/debian/libgcj5-common.preinst.in @@ -0,0 +1,13 @@ +#! /bin/sh -e + +# replace libgcjX-common doc dir by symlink + +p=libgcj5-common +if [ -d /usr/share/doc/$p -a ! -h /usr/share/doc/$p ]; then + rm -rf /usr/share/doc/$p + ln -s gcc-3.4-base /usr/share/doc/$p +fi + +#DEBHELPER# + +exit 0 --- gcc-3.4-3.4.3.orig/debian/watch +++ gcc-3.4-3.4.3/debian/watch @@ -0,0 +1,2 @@ +version=2 +ftp://gcc.gnu.org/pub/gcc/releases/gcc-(3\.4[\d\.]*) 3.4.1 uupdate --- gcc-3.4-3.4.3.orig/debian/rules.unpack +++ gcc-3.4-3.4.3/debian/rules.unpack @@ -0,0 +1,93 @@ +# -*- makefile -*- +# rules to unpack the source tarballs in $(srcdir); if the source dir already +# exists, the rule exits with an error to prevent deletion of modified +# source files. It has to be deleted manually. + +gcc_srcdir := gcc-3.4.3 +#gcc_srcdir := gcc-20041101 +gcc_tarball := $(gcc_srcdir).tar.bz2 + +gpc_srcdir := gpc-20040516 +gpc_tarball := gpc-20040516.tar.gz + +#testsuite_srcdir := testsuite-3.3-20030118 +#testsuite_tarball := $(testsuite_srcdir).tar.bz2 + +tarballs = $(gcc_tarball) +ifeq ($(with_check),yes) + tarballs += $(testsuite_tarball) +endif +ifeq ($(with_pascal),yes) + tarballs += $(gpc_tarball) +endif + +unpack_stamps = $(foreach i,$(tarballs),$(unpack_stamp)-$(i)) + +unpack: stamp-dir $(unpack_stamp) debian-chmod +$(unpack_stamp): $(unpack_stamps) +$(unpack_stamp): $(foreach p,$(debian_tarballs),unpacked-$(p)) + echo -e "\nBuilt from Debian source package $(PKGSOURCE)-$(SOURCE_VERSION)" \ + > pxxx + echo -e "Integrated upstream packages in this version:\n" >> pxxx + for i in $(tarballs); do echo " $$i" >> pxxx; done + mv -f pxxx $@ + +debian-chmod: + @chmod 755 debian/dh_* + +# --------------------------------------------------------------------------- +$(unpack_stamp)-$(gcc_tarball): $(gcc_tarball) + : # unpack gcc tarball + -mkdir $(stampdir) + if [ -d $(srcdir) ]; then \ + echo >&2 "Source directory $(srcdir) exists. Delete by hand"; \ + false; \ + fi + rm -rf $(gcc_srcdir) + case $(gcc_tarball) in \ + *.bz2) tar -x --bzip2 -f $(gcc_tarball);; \ + *.gz) tar -x --gzip -f $(gcc_tarball);; \ + *) false; \ + esac + mv $(gcc_srcdir) $(srcdir) + echo "$(gcc_tarball) unpacked." > $@ + +# --------------------------------------------------------------------------- +$(unpack_stamp)-$(gpc_tarball): $(gpc_tarball) + : # unpack gpc tarball + -mkdir $(stampdir) + if [ -d $(srcdir)/gcc/p ]; then \ + echo >&2 "Source directory $(srcdir)/gcc/p exists. Delete by hand";\ + false; \ + fi + #rm -rf $(gpc_srcdir) + rm -rf p + case $(gpc_tarball) in \ + *.bz2) tar -x --bzip2 -f $(gpc_tarball);; \ + *.gz) tar -x --gzip -f $(gpc_tarball);; \ + *) false; \ + esac + if [ -d p ]; then \ + mv p $(srcdir)/gcc/. ; \ + else \ + mv $(gpc_srcdir)/p $(srcdir)/gcc/. ; \ + rmdir $(gpc_srcdir); \ + fi + echo "$(gpc_tarball) unpacked." > $@ + +# --------------------------------------------------------------------------- +$(unpack_stamp)-$(testsuite_tarball): $(testsuite_tarball) + : # unpack testsuite tarball + -mkdir $(stampdir) + rm -rf $(testsuite_srcdir) + case $(testsuite_tarball) in \ + *.bz2) tar -x -p --bzip2 -f $(testsuite_tarball);; \ + *.gz) tar -x -p --gzip -f $(testsuite_tarball);; \ + *) false; \ + esac + for t in gcc libjava libstdc++-v3; do \ + rm -rf $(srcdir)/$$t/testsuite; \ + mv $(testsuite_srcdir)/$$t/testsuite $(srcdir)/$$t/.; \ + done + rm -rf $(testsuite_srcdir) + echo "$(testsuite_tarball) unpacked." > $@ --- gcc-3.4-3.4.3.orig/debian/control +++ gcc-3.4-3.4.3/debian/control @@ -0,0 +1,614 @@ +Source: gcc-3.4 +Section: devel +Priority: optional +Maintainer: Debian GCC maintainers +Uploaders: Matthias Klose , Gerhard Tonn +Standards-Version: 3.6.1 +Build-Depends: libc6.1-dev (>= 2.3.2.ds1-16) [alpha ia64] | libc0.3-dev (>= 2.3.2.ds1-16) | libc0.1-dev (>= 2.3.2.ds1-16) | libc12-dev (>= 2.3.2.ds1-16) | libc6-dev (>= 2.3.2.ds1-16), libc6-dev-sparc64 [sparc], libc6-dev-s390x [s390], amd64-libs-dev [i386], ia32-libs-dev [amd64], libunwind7-dev (>= 0.98.3-3ubuntu1) [ia64], libatomic-ops-dev [ia64], m4, autoconf2.13, autoconf, automake1.4, automake1.7, libtool, autotools-dev, gawk, dejagnu (>= 1.4.3) [!hurd-i386 !kfreebsd-gnu !knetbsd-gnu], expect (>= 5.38.0) [!hurd-i386 !kfreebsd-gnu !knetbsd-gnu], bzip2, binutils (>= 2.15-5) | binutils-multiarch (>= 2.15-5), binutils-hppa64 [hppa], debhelper (>= 4.1), gperf (>= 2.7-3), bison (>= 1:1.875a-1) | bison (<< 1:1.50), flex, gettext, texinfo (>= 4.3), zlib1g-dev, libgc-dev [!avr !kfreebsd-gnu !knetbsd-gnu], xlibs-dev, gnat-3.3 [!arm !m68k !m32r !hurd-i386 !kfreebsd-gnu !knetbsd-gnu !netbsd-elf-gnu] | gnat-3.4 [!arm !m68k !m32r !hurd-i386 !kfreebsd-gnu !knetbsd-gnu !netbsd-elf-gnu] | gnat [i386 powerpc sparc], libncurses5-dev [!netbsd-elf-gnu], libgmp3-dev, tetex-bin [!netbsd-elf-gnu], locales [!kfreebsd-gnu !knetbsd-gnu !netbsd-elf-gnu !hurd-i386], procps [!hurd-i386 !kfreebsd-gnu !knetbsd-gnu], help2man [!netbsd-elf-gnu], sharutils, libgtk2.0-dev (>= 2.4.4-2) [!mips !mipsel !m32r !hurd-i386 !kfreebsd-gnu !knetbsd-gnu !netbsd-elf-gnu], libart-2.0-dev [!mips !mipsel !m32r !hurd-i386 !kfreebsd-gnu !knetbsd-gnu !netbsd-elf-gnu], g++-3.3 [!amd64], g77-3.3 [!amd64], gobjc-3.3 [!amd64], realpath (>= 1.9.12) +Build-Depends-Indep: doxygen (>= 1.3.9.1), graphviz (>= 2.0) + +Package: gcc-3.4-base +Architecture: any +Section: devel +Priority: optional +Description: The GNU Compiler Collection (base package) + This package contains files common to all languages and libraries + contained in the GNU Compiler Collection (GCC). + +Package: libgcc1 +Architecture: any +Section: libs +Priority: required +Depends: ${shlibs:Depends} +Description: GCC support library + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. + +Package: libgcc2 +Architecture: any +Section: libs +Priority: optional +Depends: ${shlibs:Depends} +Description: GCC support library + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. + +Package: lib64gcc1 +Architecture: any +Section: libs +Priority: optional +Depends: ${shlibs:Depends} +Conflicts: libgcc1 (<= 1:3.3-0pre9) +Description: GCC support library (64bit) + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. + +Package: lib32gcc1 +Architecture: any +Section: libs +Priority: optional +Depends: ia32-libs (>= 0.5ubuntu2) +Conflicts: ia32-libs-openoffice.org (<= 1ubuntu2) +Replaces: ia32-libs-openoffice.org (<= 1ubuntu2) +Description: GCC support library (ia32) + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. + +Package: gcc-3.4 +Architecture: any +Section: devel +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), libgcc1 (>= 1:3.4.3-9ubuntu4), ${shlibs:Depends}, cpp-3.4 (>= 3.4.3-9ubuntu4), cpp-3.4 (<< 3.4.5), binutils (>= 2.15-5) +Recommends: libc6-dev (>= 2.3.2.ds1-16) +Conflicts: gcc-3.2 (<= 1:3.2.3-0pre8) +Suggests: gcc-3.4-doc (>= 3.4.3-9ubuntu4), amd64-libs-dev +Provides: c-compiler +Description: The GNU C compiler + This is the GNU C compiler, a fairly portable optimizing compiler for C. + . + ABIs changed between gcc-3.3 and gcc-3.4 on some architectures (hppa, m68k, + mips, mipsel, sparc). Please read /usr/share/doc/gcc-3.4/README.Debian + for more details. + +Package: gcc-3.4-hppa64 +Architecture: hppa +Section: devel +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), gcc-3.4-base (<< 3.4.5), libc6-dev (>= 2.3.2.ds1-12), ${shlibs:Depends} +Conflicts: gcc-3.3-hppa64 (<= 1:3.3.4-5), gcc-3.5-hppa64 (<= 3.5-0pre1) +Description: The GNU C compiler (cross compiler for hppa64) + This is the GNU C compiler, a fairly portable optimizing compiler for C. + +Package: cpp-3.4 +Architecture: any +Section: interpreters +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), gcc-3.4-base (<< 3.4.5), ${shlibs:Depends} +Description: The GNU C preprocessor + A macro processor that is used automatically by the GNU C compiler + to transform programs before actual compilation. + . + This package has been separated from gcc for the benefit of those who + require the preprocessor but not the compiler. + +Package: cpp-3.4-doc +Architecture: all +Section: doc +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4) +Replaces: cpp (<= 1:2.93.12) +Description: Documentation for the GNU C preprocessor (cpp) + Documentation for the GNU C preprocessor in info format. + +Package: g++-3.4 +Architecture: any +Section: devel +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), ${shlibs:Depends}, gcc-3.4 (>= 3.4.3-9ubuntu4), gcc-3.4 (<< 3.4.5), libstdc++6-dev (>= 3.4.3-9ubuntu4) +Replaces: gcc (<= 2.7.2.3-3) +Provides: c++-compiler +Suggests: gcc-3.4-doc (>= 3.4.3-9ubuntu4) +Description: The GNU C++ compiler + This is the GNU C++ compiler, a fairly portable optimizing compiler for C++. + . + ABIs changed between gcc-3.3 and gcc-3.4 on some architectures (hppa, m68k, + mips, mipsel, sparc). Please read /usr/share/doc/gcc-3.4/README.Debian + for more details. Do not mix code compiled with g++-3.3 and g++-3.4. + +Package: protoize +Architecture: any +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), ${shlibs:Depends}, gcc-3.4 (>= 3.4.3-9ubuntu4), gcc-3.4 (<< 3.4.5) +Description: Create/remove ANSI prototypes from C code + "protoize" can be used to add prototypes to a program, thus converting + the program to ANSI C in one respect. The companion program "unprotoize" + does the reverse: it removes argument types from any prototypes + that are found. + +Package: gobjc-3.4 +Architecture: any +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), ${shlibs:Depends}, libobjc1 (>= 1:3.3.4-4), gcc-3.4 (>= 3.4.3-9ubuntu4), gcc-3.4 (<< 3.4.5) +Suggests: gcc-3.4-doc (>= 3.4.3-9ubuntu4) +Provides: objc-compiler +Description: The GNU Objective-C compiler + This is the GNU Objective-C compiler, which compiles + Objective-C on platforms supported by the gcc compiler. It uses the + gcc backend to generate optimized code. + +Package: libobjc1 +Section: libs +Architecture: any +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), ${shlibs:Depends} +Description: Runtime library for GNU Objective-C applications + Library needed for GNU ObjC applications linked against the shared library. + +Package: lib64objc1 +Section: libs +Architecture: any +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), ${shlibs:Depends} +Description: Runtime library for GNU Objective-C applications (64bit) + Library needed for GNU ObjC applications linked against the shared library. + +Package: g77-3.4 +Architecture: any +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), libg2c0-dev (>= 1:3.3.4-4), ${shlibs:Depends}, gcc-3.4 (>= 3.4.3-9ubuntu4), gcc-3.4 (<< 3.4.5) +Provides: fortran77-compiler +Suggests: g77-3.4-doc +Conflicts: g77-2.95 (<= 1:2.95.4-19), g77-3.0 (<= 1:3.0.4-16), g77-3.2 (<= 1:3.2.3-9), g77-3.3 (<= 1:3.3.4-3) +Description: The GNU Fortran 77 compiler + This is the GNU g77 Fortran compiler, which compiles + Fortran 77 on platforms supported by the gcc compiler. It uses the + gcc backend to generate optimized code. + +Package: g77-3.4-doc +Architecture: all +Section: doc +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4) +Replaces: g77 (<= 1:2.91.58-3) +Description: Documentation for the GNU Fortran compiler (g77) + Documentation for the GNU Fortran 77 compiler in info format. + +Package: libg2c0 +Section: libs +Architecture: any +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), ${shlibs:Depends} +Description: Runtime library for GNU Fortran 77 applications + Library needed for GNU Fortran 77 applications linked against the + shared library. + +Package: libg2c0-dev +Section: libdevel +Architecture: any +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), libg2c0 (>= 1:3.4.3-9ubuntu4), ${shlibs:Depends} +Conflicts: g77-2.95 (<= 1:2.95.4-19), g77-3.0 (<= 1:3.0.4-16), g77-3.2 (<= 1:3.2.3-9), g77-3.3 (<= 1:3.3.3-0pre3) +Description: GNU Fortran 77 library development + Headers and static libraries for g2c. + +Package: lib64g2c0 +Section: libs +Architecture: any +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), ${shlibs:Depends} +Description: Runtime library for GNU Fortran 77 applications (64bit) + Library needed for GNU Fortran 77 applications linked against the + shared library. + +Package: gcj-3.4 +Architecture: any +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), ${shlibs:Depends}, libgcj5-common (>= 3.4.3-9ubuntu4), java-common, g++-3.4 (>= 3.4.3-9ubuntu4), g++-3.4 (<< 3.4.5) +Recommends: fastjar, gij-3.4 (>= 3.4.3-9ubuntu4), libgcj5-dev (>= 3.4.3-9ubuntu4) +Provides: java-compiler +Suggests: libgcj5-awt (>= 3.4.3-9ubuntu4) +Description: The GNU compiler for Java(TM) + GCJ is a front end to the GCC compiler which can natively compile both + Java(tm) source and bytecode files. The compiler can also generate class + files. + +Package: gij-3.4 +Priority: optional +Architecture: any +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), libgcj5 (>= 3.4.3-9ubuntu4), ${shlibs:Depends} +Suggests: fastjar, gcj-3.4 (>= 3.4.3-9ubuntu4), libgcj5-awt (>= 3.4.3-9ubuntu4) +Provides: java-virtual-machine, java1-runtime +Description: The GNU Java bytecode interpreter + GIJ is not limited to interpreting bytecode. It includes a class loader which + can dynamically load shared objects, so it is possible to give it the name + of a class which has been compiled and put into a shared library on the + class path. + +Package: libgcj-common +Section: libs +Architecture: all +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3) +Conflicts: classpath (<= 0.04-4), libgcj3 (<< 1:3.2-0pre2) +Description: Java runtime library (common files) + This package contains files shared by classpath and libgcj libraries. + +Package: libgcj5 +Section: libs +Architecture: any +Priority: optional +Depends: libgcj-common, ${shlibs:Depends} +Recommends: libgcj5-common (>= 3.4.3-9ubuntu4) +Description: Java runtime library for use with gcj + This is the runtime that goes along with the gcj front end to + gcc. libgcj includes parts of the Java Class Libraries, plus glue to + connect the libraries to the compiler and the underlying OS. + +Package: libgcj5-common +Section: libs +Architecture: all +Priority: optional +Depends: libgcj5 (>= 3.4.3) +Conflicts: libgcj5 (<< 3.4.0-1) +Replaces: libgcj5 (<< 3.4.0-1) +Description: Java runtime library for use with gcj (jar files) + This is the jar file that goes along with the gcj front end to gcc. + +Package: libgcj5-awt +Section: libs +Architecture: any +Priority: optional +Depends: libgcj5 (>= 3.4.3-9ubuntu4), ${shlibs:Depends} +Conflicts: libgcj5 (<< 3.4.0-2), libgcj-awt5 +Replaces: libgcj5 (<< 3.4.0-2), libgcj-awt5 +Description: AWT peer runtime libraries for use with gcj + These are runtime libraries holding the AWT peer implementations + for libgcj (currently only the GTK based peer library). + +Package: lib64gcj5 +Section: libs +Architecture: any +Priority: optional +Depends: libgcj-common, ${shlibs:Depends} +Description: Java runtime library for use with gcj (64bit) + This is the runtime that goes along with the gcj front end to + gcc. libgcj includes parts of the Java Class Libraries, plus glue to + connect the libraries to the compiler and the underlying OS. + +Package: lib64gcj5-awt +Section: libs +Architecture: any +Priority: optional +Depends: libgcj5 (>= 3.4.3-9ubuntu4), ${shlibs:Depends} +Conflicts: lib64gcj5 (<< 3.4.0-2), lib64gcj-awt5 +Replaces: lib64gcj5 (<< 3.4.0-2), lib64gcj-awt5 +Description: AWT peer runtime libraries for use with gcj (64bit) + These are runtime libraries holding the AWT peer implementations + for libgcj (currently only the GTK based peer library). + +Package: libgcj5-dev +Section: libdevel +Architecture: any +Priority: optional +Depends: gcj-3.4 (>= 3.4.3-9ubuntu4), libgcj5 (>= 3.4.3-9ubuntu4), libgcj5-common (>= 3.4.3-9ubuntu4), libgcj5-awt (>= 3.4.3-9ubuntu4), libc6-dev (>= 2.3.2.ds1-16), zlib1g-dev, ${shlibs:Depends} +Conflicts: libgcj2-dev, libgcj3-dev, libgcj4-dev +Provides: libgcj-dev +Description: Java development headers and static library for use with gcj + This is the development headers and static libraries that go along + with the gcj front end to gcc. libgcj includes parts of the Java Class + Libraries, plus glue to connect the libraries to the compiler and the + underlying OS. + +Package: fastjar +Section: devel +Architecture: any +Priority: optional +Depends: ${shlibs:Depends} +Description: Jar creation utility + Replacement for Suns .jar creation program. It is written in C + instead of java and is tons faster. It is currently not complete. + +Package: libffi3 +Section: libs +Architecture: any +Priority: optional +Depends: gcc-3.4-base, ${shlibs:Depends} +Description: Foreign Function Interface library runtime + A foreign function interface is the popular name for the interface that + allows code written in one language to call code written in another + language. + +Package: lib64ffi3 +Section: libs +Architecture: any +Priority: optional +Depends: gcc-3.4-base, ${shlibs:Depends} +Description: Foreign Function Interface library runtime (64bit) + A foreign function interface is the popular name for the interface that + allows code written in one language to call code written in another + language. + +Package: libffi3-dev +Section: libdevel +Architecture: any +Priority: optional +Depends: gcc-3.4-base, libffi3 (>= 1:3.4.3-9ubuntu4), libc6-dev (>= 2.3.2.ds1-16) +Recommends: gcc-3.4 +Conflicts: libffi1-dev, libffi2-dev +Description: Foreign Function Interface library (development files) + This package contains the headers and static library files necessary for + building building programs which use libffi. + . + Use this package together with gcc-3.4. + . + A foreign function interface is the popular name for the interface that + allows code written in one language to call code written in another + language. + +Package: libstdc++6 +Architecture: any +Section: libs +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), ${shlibs:Depends} +Description: The GNU Standard C++ Library v3 + This package contains an additional runtime library for C++ programs + built with the GNU compiler. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. + +Package: libstdc++6-0 +Architecture: amd64 arm +Section: base +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), ${shlibs:Depends} +Description: The GNU Standard C++ Library v3 + This package contains an additional runtime library for C++ programs + built with the GNU compiler. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. + +Package: lib32stdc++6 +Architecture: any +Section: libs +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), lib32gcc1 +Description: The GNU Standard C++ Library v3 (ia32) + This package contains an additional runtime library for C++ programs + built with the GNU compiler. + +Package: lib32stdc++6-0 +Architecture: any +Section: libs +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), lib32gcc1 +Description: The GNU Standard C++ Library v3 (ia32) + This package contains an additional runtime library for C++ programs + built with the GNU compiler. + +Package: lib64stdc++6 +Architecture: any +Section: libs +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), ${shlibs:Depends} +Description: The GNU Standard C++ Library v3 (64bit) + This package contains an additional runtime library for C++ programs + built with the GNU compiler. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. + +Package: libstdc++6-dev +Architecture: any +Section: libdevel +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), libstdc++6 (>= 3.4.3-9ubuntu4), libc6-dev (>= 2.3.2.ds1-16), g++-3.4 (>= 3.4.3-9ubuntu4) +Conflicts: libg++27-dev, libg++272-dev (<< 2.7.2.8-1), libstdc++2.8-dev, libg++2.8-dev, libstdc++2.9-dev, libstdc++2.9-glibc2.1-dev, libstdc++2.10-dev (<< 1:2.95.3-2), libstdc++3.0-dev +Suggests: libstdc++6-doc, stl-manual +Provides: libstdc++-dev +Description: The GNU Standard C++ Library v3 (development files) + This package contains the headers and static library files necessary for + building C++ programs which use libstdc++. Be advised that this only works + with the GNU C++ compiler (version 3.0), and no earlier library will work it. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. + +Package: libstdc++6-0-dev +Architecture: amd64 arm +Section: libdevel +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), libstdc++6-0 (>= 3.4.3-9ubuntu4), libc6-dev (>= 2.3.2.ds1-16), g++-3.4 (>= 3.4.3-9ubuntu4) +Conflicts: libg++27-dev, libg++272-dev (<< 2.7.2.8-1), libstdc++2.8-dev, libg++2.8-dev, libstdc++2.9-dev, libstdc++2.9-glibc2.1-dev, libstdc++2.10-dev (<< 1:2.95.3-2), libstdc++3.0-dev, libstdc++6-dev (<< 3.4.1-2) +Suggests: libstdc++6-doc, stl-manual +Provides: libstdc++-dev +Description: The GNU Standard C++ Library v3 (development files) + This package contains the headers and static library files necessary for + building C++ programs which use libstdc++. Be advised that this only works + with the GNU C++ compiler (version 3.0), and no earlier library will work it. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. + +Package: libstdc++6-pic +Architecture: any +Section: libdevel +Priority: extra +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), libstdc++6 (>= 3.4.3-9ubuntu4), libstdc++6-dev (>= 3.4.3-9ubuntu4) +Description: The GNU Standard C++ Library v3 (shared library subset kit) + This is used to develop subsets of the libstdc++ shared libraries for + use on custom installation floppies and in embedded systems. + . + Unless you are making one of those, you will not need this package. + +Package: libstdc++6-0-pic +Architecture: amd64 arm +Section: libdevel +Priority: extra +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), libstdc++6-0 (>= 3.4.3-9ubuntu4), libstdc++6-0-dev (>= 3.4.3-9ubuntu4) +Description: The GNU Standard C++ Library v3 (shared library subset kit) + This is used to develop subsets of the libstdc++ shared libraries for + use on custom installation floppies and in embedded systems. + . + Unless you are making one of those, you will not need this package. + +Package: libstdc++6-dbg +Architecture: any +Section: libdevel +Priority: extra +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), libstdc++6 (>= 3.4.3-9ubuntu4) +Recommends: libstdc++6-dev (>= 3.4.3-9ubuntu4) +Conflicts: libstdc++5-dbg, libstdc++5-3.3-dbg, libstdc++6-4.0-dbg +Description: The GNU Standard C++ Library v3 (debugging files) + This package contains the shared library of libstdc++ compiled with + debugging symbols. + +Package: libstdc++6-0-dbg +Architecture: amd64 arm +Section: libdevel +Priority: extra +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), libstdc++6-0 (>= 3.4.3-9ubuntu4) +Recommends: libstdc++6-0-dev (>= 3.4.3-9ubuntu4) +Conflicts: libstdc++5-dbg, libstdc++5-3.3-dbg, libstdc++6-dbg (<< 3.4.1-2), libstdc++6-4.0-dbg +Description: The GNU Standard C++ Library v3 (debugging files) + This package contains the shared library of libstdc++ compiled with + debugging symbols. + +Package: libstdc++6-doc +Architecture: all +Section: doc +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4) +Conflicts: libstdc++5-doc, libstdc++5-3.3-doc +Description: The GNU Standard C++ Library v3 (documentation files) + This package contains documentation files for the GNU stdc++ library. + . + One set is the distribution documentation, the other set is the + source documentation including a namespace list, class hierarchy, + alphabetical list, compound list, file list, namespace members, + compound members and file members. + +Package: gnat-3.4 +Architecture: any +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), ${shlibs:Depends}, gcc-3.4 (>= 3.4.3-9ubuntu4), gcc-3.4 (<< 3.4.5) +Suggests: gnat-3.4-doc, ada-reference-manual +Provides: ada-compiler +Conflicts: gnat, gnat-3.1, gnat-3.2, gnat-3.3 +Provides: gnat +Description: The GNU Ada compiler + This is the GNU Ada compiler, which compiles Ada on platforms supported + by the gcc compiler. It uses the gcc backend to generate optimized code. + +Package: libgnat-3.4 +Section: libs +Architecture: any +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), ${shlibs:Depends} +Description: Runtime library for GNU Ada applications + Library needed for GNU Ada applications linked against the shared library. + +Package: lib64gnat-3.4 +Section: libs +Architecture: any +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), ${shlibs:Depends} +Description: Runtime library for GNU Ada applications + Library needed for GNU Ada applications linked against the shared library. + +Package: gnat-3.4-doc +Architecture: all +Section: doc +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4) +Suggests: gnat-3.4 +Description: Documentation for the GNU Ada compiler (gnat) + Documentation for the GNU Ada compiler in info format. + +Package: gpc-2.1-3.4 +Architecture: any +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), ${shlibs:Depends}, gcc-3.4 (>= 3.4.3-9ubuntu4), gcc-3.4 (<< 3.4.5) +Recommends: libgmp3-dev, libncurses5-dev +Suggests: gpc-2.1-3.4-doc (>= 3.4.3-9ubuntu4) +Provides: pascal-compiler +Description: The GNU Pascal compiler + This is the GNU Pascal compiler, which compiles Pascal on platforms supported + by the gcc compiler. It uses the gcc backend to generate optimized code. + . + WARNING: the integration of gpc into gcc-3.x is still in an experimental + stage. For production use, please use gpc or gpc-2.95. + +Package: gpc-2.1-3.4-doc +Architecture: all +Section: doc +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4) +Replaces: gpc (<= 2.91.58-3) +Suggests: gpc-2.1-3.4 +Description: Documentation for the GNU Pascal compiler (gpc) + Documentation for the GNU Pascal compiler in info format. + . + WARNING: the integration of gpc into gcc-3.x is still in an experimental + stage. For production use, please use gpc or gpc-2.95. + +Package: treelang-3.4 +Architecture: any +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), ${shlibs:Depends}, gcc-3.4 (>= 3.4.3-9ubuntu4), gcc-3.4 (<< 3.4.5) +Description: The GNU Treelang compiler + Treelang is a sample language, useful only to help people understand how + to implement a new language front end to GCC. It is not a useful + language in itself other than as an example or basis for building a new + language. Therefore only language developers are likely to have an + interest in it. + +Package: gcc-3.4-soft-float +Architecture: arm +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), ${shlibs:Depends}, gcc-3.4 (>= 3.4.3-9ubuntu4), gcc-3.4 (<< 3.4.5) +Replaces: gcc-soft-float-ss (<< 3.4.5) +Description: The soft-floating-point gcc libraries (arm) + These are versions of basic static libraries such as libgcc.a compiled + with the -msoft-float option, for CPUs without a floating-point unit. + +Package: fixincludes +Architecture: any +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), ${shlibs:Depends}, gcc-3.4 (>= 3.4.3-9ubuntu4), gcc-3.4 (<< 3.4.5) +Description: Fix non-ANSI header files + FixIncludes was created to fix non-ANSI system header files. Many + system manufacturers supply proprietary headers that are not ANSI compliant. + The GNU compilers cannot compile non-ANSI headers. Consequently, the + FixIncludes shell script was written to fix the header files. + . + Not all packages with header files are installed at gccs build time + +Package: gcc-3.4-doc +Architecture: all +Section: doc +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4) +Conflicts: gcc-docs (<< 2.95.2) +Replaces: gcc (<=2.7.2.3-4.3), gcc-docs (<< 2.95.2) +Description: Documentation for the GNU compilers (gcc, gobjc, g++) + Documentation for the GNU compilers in info format. + +Package: gcc-3.4-nof +Architecture: powerpc +Priority: optional +Depends: gcc-3.4-base (>= 3.4.3-9ubuntu4), ${shlibs:Depends}, gcc-3.4 (>= 3.4.3-9ubuntu4), gcc-3.4 (<< 3.4.5) +Conflicts: gcc-3.2-nof +Description: The no-floating-point gcc libraries (powerpc) + These are versions of basic static libraries such as libgcc.a compiled + with the -msoft-float option, for CPUs without a floating-point unit. --- gcc-3.4-3.4.3.orig/debian/NEWS.gcc +++ gcc-3.4-3.4.3/debian/NEWS.gcc @@ -0,0 +1,1789 @@ + +GCC 3.4 Release Series - Changes, New Features, and Fixes +========================================================= + +The latest release in the 3.4 release series is GCC 3.4.3. + +Caveats +======= + +- GNU Make is now required to build GCC. + +- With -nostdinc the preprocessor used to ignore both standard include + paths and include paths contained in environment variables. It was + neither documented nor intended that environment variable paths be + ignored, so this has been corrected. + +- GCC no longer accepts the options -fvolatile, -fvolatile-global and + -fvolatile-static. It is unlikely that they worked correctly in any + 3.x release. + +- GCC no longer ships . Use instead. + +- Support for all the systems obsoleted in GCC 3.3 has been removed + from GCC 3.4. See below for a list of systems which are obsoleted in + this release. + +- GCC now requires an ISO C90 (ANSI C89) C compiler to build. K&R C + compilers will not work. + +- The implementation of the MIPS ABIs has changed. As a result, the + code generated for certain MIPS targets will not be binary compatible + with earlier releases. + +- In previous releases, the MIPS port had a fake "hilo" register with + the user-visible name accum. This register has been removed. + +- The implementation of the SPARC ABIs has changed. As a result, the + code generated will not be binary compatible with earlier releases in + certain cases. + +- The configure option --enable-threads=pthreads has been removed; use + --enable-threads=posix instead, which should have the same effect. + +- Code size estimates used by inlining heuristics for C, Objective-C, + C++ and Java have been redesigned significantly. As a result the + parameters of -finline-insns, --param max-inline-insns-single and + --param max-inline-insns-auto need to be reconsidered. + +- --param max-inline-slope and --param min-inline-insns have been + removed; they are not needed for the new bottom-up inlining + heuristics. + +- The new unit-at-a-time compilation scheme has several compatibility + issues: + + - The order in which functions, variables, and top-level asm + statements are emitted may have changed. Code relying on some + particular ordering needs to be updated. The majority of such + top-level asm statements can be replaced by section attributes. + + - Unreferenced static variables and functions are removed. This may + result in undefined references when an asm statement refers to the + variable/function directly. In that case either the + variable/function shall be listed in asm statement operand or in the + case of top-level asm statements the attribute used shall be used to + force function/variable to be always output and considered as a + possibly used by unknown code. + + For variables the attribute is accepted only by GCC 3.4 and newer, + while for earlier versions it is sufficient to use unused to silence + warnings about the variables not being referenced. To keep code + portable across different GCC versions, you can use appropriate + preprocessor conditionals. + + - Static functions now can use non-standard passing conventions that + may break asm statements calling functions directly. Again the + attribute used shall be used to prevent this behavior. + + As a temporary workaround, -fno-unit-at-a-time can be used, but this + scheme may not be supported by future releases of GCC. + +- GCC 3.4 automatically places zero-initialized variables in the .bss + section on some operating systems. Versions of GNU Emacs up to (and + including) 21.3 will not work correctly when using this optimization; + you can use -fno-zero-initialized-in-bss to disable it. + + +General Optimizer Improvements +============================== + +- Usability of the profile feedback and coverage testing has been + improved. + + - Performance of profiled programs has been improved by faster + profile merging code. + - Better use of the profile feedback for optimization (loop + unrolling and loop peeling). + - File locking support allowing fork() calls and parallel runs of + profiled programs. + - Coverage file format has been redesigned. + - gcov coverage tool has been improved. + - make profiledbootstrap available to build a faster compiler. + + Experiments made on i386 hardware showed an 11% speedup on -O0 and + a 7.5% speedup on -O2 compilation of a large C++ testcase. + + - New value profiling pass enabled via -fprofile-values + - New value profile transformations pass enabled via -fvpt aims to + optimize some code sequences by exploiting knowledge about value + ranges or other properties of the operands. At the moment a + conversion of expensive divisions into cheaper operations has been + implemented. + - New -fprofile-generate and -fprofile-use command line options to + simplify the use of profile feedback. + +- A new unit-at-a-time compilation scheme for C, Objective-C, C++ and + Java which is enabled via -funit-at-a-time (and implied by -O2). In + this scheme a whole file is parsed first and optimized later. The + following basic inter-procedural optimizations are implemented: + + - Removal of unreachable functions and variables + - Discovery of local functions (functions with static linkage whose + address is never taken) + - On i386, these local functions use register parameter passing + conventions. + - Reordering of functions in topological order of the call graph to + enable better propagation of optimizing hints (such as the stack + alignments needed by functions) in the back end. + - Call graph based out-of-order inlining heuristics which allows to + limit overall compilation unit growth (--param inline-unit-growth). + + Overall, the unit-at-a-time scheme produces a 1.3% improvement for + the SPECint2000 benchmark on the i386 architecture (AMD Athlon CPU). + +- More realistic code size estimates used by inlining for C, + Objective-C, C++ and Java. The growth of large functions can now be + limited via --param large-function-insns and --param + large-function-growth. + +- A new cfg-level loop optimizer pass replaces the old loop unrolling + pass and adds two other loop transformations -- loop peeling and loop + unswitching -- and also uses the profile feedback to limit code + growth. (The three optimizations are enabled by -funroll-loops, + -fpeel-loops and -funswitch-loops flags, respectively). + + The old loop unroller still can be enabled by -fold-unroll-loops and + may produce better code in some cases, especially when the webizer + optimization pass is not run. + +- A new web construction pass enabled via -fweb (and implied by -O3) + improves the quality of register allocation, CSE, first scheduling + pass and some other optimization passes by avoiding re-use of pseudo + registers with non-overlapping live ranges. The pass almost always + improves code quality but does make debugging difficult and thus is + not enabled by default by -O2 + + The pass is especially effective as cleanup after code duplication + passes, such as the loop unroller or the tracer. + +- Experimental implementations of superblock or trace scheduling in + the second scheduling pass can be enabled via -fsched2-use-superblocks + and -fsched2-use-traces, respectively. + + +New Languages and Language specific improvements +================================================ + +Ada +--- + +- The Ada front end has been updated to include numerous bug fixes and + enhancements. These include: + + - Improved project file support + - Additional set of warnings about potential wrong code + - Improved error messages + - Improved code generation + - Improved cross reference information + - Improved inlining + - Better run-time check elimination + - Better error recovery + - More efficient implementation of unbounded strings + - Added features in GNAT.Sockets, + - GNAT.OS_Lib, GNAT.Debug_Pools, ... + - New GNAT.xxxx packages (e.g. GNAT.Strings, + - GNAT.Exception_Action) + - New pragmas + - New -gnatS switch replacing gnatpsta + - Implementation of new Ada features (in particular limited with, + limited aggregates) + + +C/Objective-C/C++ +----------------- + +- Precompiled headers are now supported. Precompiled headers can + dramatically speed up compilation of some projects. There are some + known defects in the current precompiled header implementation that + will result in compiler crashes in relatively rare situations. + Therefore, precompiled headers should be considered a "technology + preview" in this release. Read the manual for details about how to + use precompiled headers. + +- File handling in the preprocessor has been rewritten. GCC no longer + gets confused by symlinks and hardlinks, and now has a correct + implementation of #import and #pragma once. These two directives have + therefore been un-deprecated. + +- The undocumented extension that allowed C programs to have a label + at the end of a compound statement, which has been deprecated since + GCC 3.0, has been removed. + +- The cast-as-lvalue extension has been removed for C++ and deprecated + for C and Objective-C. In particular, code like this: + + int i; + (char) i = 5; + + or this: + + char *p; + ((int *) p)++; + + is no longer accepted for C++ and will not be accepted for C and + Objective-C in a future version. + +- The conditional-expression-as-lvalue extension has been deprecated + for C and Objective-C. In particular, code like this: + + int a, b, c; + (a ? b : c) = 2; + + will not be accepted for C and Objective-C in a future version. + +- The compound-expression-as-lvalue extension has been deprecated for + C and Objective-C. In particular, code like this: + + int a, b; + (a, b) = 2; + + will not be accepted for C and Objective-C in a future version. A + possible non-intrusive workaround is the following: + + (*(a, &b)) = 2; + +- Several built-in functions such as __builtin_popcount for counting + bits, finding the highest and lowest bit in a word, and parity have + been added. + +- The -fwritable-strings option has been deprecated and will be + removed. + +- Many C math library functions are now recognized as built-ins and + optimized. + +- The C, C++, and Objective-C compilers can now handle source files + written in any character encoding supported by the host C library. + The default input character set is taken from the current locale, and + may be overridden with the -finput-charset command line option. In + the future we will add support for inline encoding markers. + + +C++ +--- + +- G++ is now much closer to full conformance to the ISO/ANSI C++ + standard. This means, among other things, that a lot of invalid + constructs which used to be accepted in previous versions will now be + rejected. It is very likely that existing C++ code will need to be + fixed. This document lists some of the most common issues. + +- A hand-written recursive-descent C++ parser has replaced the + YACC-derived C++ parser from previous GCC releases. The new parser + contains much improved infrastructure needed for better parsing of C++ + source codes, handling of extensions, and clean separation (where + possible) between proper semantics analysis and parsing. The new + parser fixes many bugs that were found in the old parser. + +- You must now use the typename and template keywords to disambiguate + dependent names, as required by the C++ standard. + + struct K { + typedef int mytype_t; + }; + + template struct A { + template struct B { + void callme(void); + }; + + template void bar(void) + { + // Use 'typename' to tell the parser that T1::mytype_t names + // a type. This is needed because the name is dependent (in + // this case, on template parameter T1). + typename T1::mytype_t x; + x = 0; + } + }; + + template void template_func(void) + { + // Use 'template' to prefix member templates within + // dependent types (a has type A, which depends on + // the template parameter T). + A a; + a.template bar<0>(); + + // Use 'template' to tell the parser that B is a nested + // template class (dependent on template parameter T), and + // 'typename' because the whole A::B is + // the name of a type (again, dependent). + typename A::template B b; + b.callme(); + } + + void non_template_func(void) + { + // Outside of any template class or function, no names can be + // dependent, so the use of the keyword 'typename' and 'template' + // is not needed (and actually forbidden). + A a; + a.bar<0>(); + A::B b; + b.callme(); + } + +- In a template definition, unqualified names will no longer find + members of a dependent base. For example, + + template struct B { + int m; + int n; + int f (); + int g (); + }; + int n; + int g (); + template struct C : B { + void g () + { + m = 0; // error + f (); // error + n = 0; // ::n is modified + g (); // ::g is called + } + }; + + You must make the names dependent by prefixing them with + this->. Here is the corrected definition of C::g, + + template void C::g () + { + this->m = 0; + this->f (); + this->n = 0 + this->g (); + } + +- In templates, all non-dependent names are now looked up and bound at + definition time (while parsing the code), instead of later when the + template is instantiated. For instance: + + void foo(int); + + template struct A { + static void bar(void) { + foo('a'); + } + }; + + void foo(char); + + int main() + { + A<0>::bar(); // Calls foo(int), used to call foo(char). + } + + +- In an explicit instantiation of a class template, you must use class + or struct before the template-id: + + + template + class A {}; + + template A<0>; // error, not accepted anymore + template class A<0>; // OK + +- The "named return value" and "implicit typename" extensions have + been removed. + +- Default arguments in function types have been deprecated and will be + removed. + +- ARM-style name-injection of friend declarations has been deprecated + and will be removed. For example: + + struct S { + friend void f(); + }; + + void g() { f(); } + + will not be accepted by future versions of G++; instead a + declaration of "f" will need to be present outside of the scope of "S". + +- Covariant returns are implemented for all but varadic functions that + require an adjustment. + +- When -pedantic is used, G++ now issues errors about spurious + semicolons. For example, + + namespace N {}; // Invalid semicolon. + void f() {}; // Invalid semicolon. + +- G++ no longer accepts attributes for a declarator after the + initializer associated with that declarator. For example, + + X x(1) __attribute__((...)); + is no longer accepted. Instead, use: + + X x __attribute__((...)) (1); + +- Inside the scope of a template class, the name of the class itself + can be treated as either a class or a template. So GCC used to accept + the class name as argument of type template, and template template + parameter. However this is not C++ standard compliant. Now the name + is not treated as a valid template template argument unless you + qualify the name by its scope. For example, the code below no longer + compiles. + + template